Page 79 - 《软件学报》2025年第10期
P. 79

4476                                                      软件学报  2025  年第  36  卷第  10  期


                 源. 此外, 在设计存储阵列的单元组合规则和数据访存逻辑过程中同样充分考虑了                          IP  核的硬件特点, 每组存储单
                 元的单地址位上可容纳         8  个长度为  23  比特的多项式系数, 仅占用       2.5  个  BRAM  资源, 在满足可重构的基础上有
                 效节约了存储资源的消耗.
                  4.2   核心运算模块对比分析
                    本文首先对核心的多项式运算模块进行了部署和测试, 对比文献包括纯硬件实现和软硬结合实现两种类型,
                 具体内容如表     3  所示, 其中时间与面积乘积       (area-time product, ATP) 中的时间数据统一使用    NTT  运算与  PWM
                 (point-wise multiplication, PWM) 运算的时钟周期数之和, 同时以本文的数据为基底, 将对比文献的            ATP  数据进行
                 等比例缩减, 从而更加清晰地体现数据差异. 从整体上看, 本文设计的硬件模块在运算性能方面具有较大的优势,
                 根据  ATP  结果可知, 在  LUT  和  DSP  两种硬件资源的消耗量上也达到了较好的平衡. 同时文献                 [33] 中的  NTT  运
                 算、PWM   运算、PWA    运算  (point-wise addition, PWA) 分别对应  3  个不同的硬件单元, 因此如果按照上述的统一
                 规则来算, 文献    [33] 设计的核心运算模块对应的真实          ATP  值要比表   3  中的数据更高. 对于    BRAM  数据, 不同的设
                 计思想对应不同的存储资源消耗, 本文的存储资源面向整个数字签名算法的所有运算过程, 而软硬结合设计模式
                 还可以利用软核中的存储空间, 如文献            [32] 中提到的  L2  缓存. 此外, 本文使用了大量的寄存器资源实现多功能置
                 换网络, 在确保运算正确性的同时消耗了过多的               FF  资源, 其他设计方案中不存在这一过程. 因此为了公平起见, 本
                 文主要列举了与多项式运算过程关系更加密切的                 LUT  和  DSP  两种硬件资源的数据对比, 并重点对最新的纯硬件
                 实现方案   [26] 和性能最优的软硬结合方案       [30] 两项工作对比分析.


                                                表 3 多项式运算模块性能对比

                                                     Area source           Cycle count      Area × Time
                   文献     测试平台       单元数量
                                                LUT    BRAM     DSP    NTT/INTT   PWM      LUT     DSP
                   [26]    Artix-7      4      1 919     2       8       256       64      0.49    0.63
                   [25]   Zynq-7000     1      2 386     1       8       264       260     0.99    1.02
                   [32]   Zynq-7000     1      6 639     3      16       265       73      1.78    1.32
                   [24]    Artix-7      2       524      1      17      533/536    85      0.26    2.59
                   [33]    Artix-7      1       799      4.5     2       1 405     269     1.06    0.82
                   [30]    Artix-7     32      25 674    6      64        32       32      1.31    1.00
                   本文      Artix-7     32      19 664    18     64        32       32      1.00    1.00

                    本文和文献     [30] 都设计了基于流水线思想的高性能脉动阵列单元, 有效提升了多项式运算的速率, 区别在于
                 文献  [30] 针对  Kyber 和  Dilithium  两个算法设计核心运算单元, 因此对前      3  列蝴蝶单元的寄存器网络和数据流通
                 路径进行了针对性的设计, 分别用以支持             TNTT  算法  (truncated-NTT) 对应的  3  阶段  PWM  运算过程. 根据  LUT
                 的  ATP  的数据对比可知, 这种设计模式提升了硬件模块运算过程的可扩展性, 但同时也增加了面积消耗, 并在一
                 定程度上降低了硬件资源的复用率, 核心原因在于: 如第                 3.2  节所述, 由于  Dilithium  的参数集支持标准数论变换
                 过程, 在硬件层面的      PWM  运算和  NTT  运算满足同构设计的要求, 而文献          [30] 中前  3  列专用化蝴蝶单元所额外消
                 耗的硬件资源仅在       Kyber 算法的  PWM  运算过程中发挥作用. 此外, 从两个算法对应的              MLWE  实例化结构来看,
                 Kyber 算法的运算量要远低于       Dilithium  算法, 在采样速率比较接近的条件下, 核心的多项式运算单元对于两个算
                                                   4×8 结构的脉动阵列单元已超过了          Kyber 算法的正常加速需求, 更适
                 法的性能提升幅度有较大的差异. 这意味着
                 合作为   Dilithium  算法的专用化运算模块. 相比之下, 文献       [26] 对应的  ATP  的数值最低, 说明核心运算模块的综合
                 性能更加均衡, 主要原因在于针对          Dilithium  算法进行了专用化的设计, 使用       4  个蝴蝶单元设计流水线结构的核心
                 运算单元; 其次, 分析了运算模块和采样模块之间的数据依赖关系, 设计了级联结构的                          Keccak  核用于生成采样运
                 算所需的随机比特流, 使得多项式的采样模块和运算模块的输入输出速率大致处于相互匹配的状态, 在状态机层
                 面降低了核心运算的无效等待时间, 这也意味着硬件资源在大多数时钟周期下都得到了有效利用.
                    进一步将上述两篇文献共同与本文进行对比分析, 根据                 RTL  基础设计原则之一“面积与速度互换”可知, 文献            [26]
                 提出的纯硬件设计方案更好地平衡了面积和时间两个方面的资源消耗, 具有更好的综合性能, 在实际部署过程中
   74   75   76   77   78   79   80   81   82   83   84