论文部分内容阅读
随着摩尔定律的逐渐失效,软件加速方案对性能的提升遇到了瓶颈。特别是对于具有计算密集型和数据密集型特点的新兴应用,用中央处理器(CPU)实现的软件方案已经无法满足新兴应用的需求。而硬件加速技术可以解决新兴应用的需求,因为硬件加速方案可以提供足够的计算资源,并且对控制流的支持较少。本文的研究重心是硬件加速,而椭圆曲线密码(ECC)算法和卷积神经网络(CNN)都有计算量大和复杂度高的特点,特别适合作为硬件加速的研究对象。并且椭圆曲线算法的模运算和点运算的操作数数据长度大,通常为256-bit,属于高数据长度的计算任务,具有计算密集型的特点;卷积神经网络的卷积计算是由大量重复的乘法和加法组成,属于重复运算量大的计算任务,具有数据密集型的特点。椭圆曲线算法和卷积神经网络作为两种不同类型的计算任务,是作为硬件加速研究对象的最佳选择。在信息安全和深度学习两大新兴应用中,椭圆曲线密码算法ECC和卷积神经网络CNN作为运用较多、较热门的密码算法和网络类型,研究他们的硬件加速技术具有重要的研究意义和应用价值。本文针对椭圆曲线算法和卷积神经网络的硬件加速方案的几个关键问题进行研究。本文的主要研究工作和创新点如下。(1)以低功耗为设计目标,分析归纳现有研究中的椭圆曲线算法硬件架构的优缺点,并以此为基础提出了基于加法器的低功耗架构。减少硬件资源的消耗可以降低功耗,在低功耗架构中,减少加法器的使用可以降低功耗。首先,在保证性能不变的前提下,优化交错模乘算法使得加法器从三个减少到两个,优化二进制模逆算法使得加法器从四个减少到两个。然后,通过硬件复用技术使得模运算仅使用两个加法器,模运算包括模加、模减、模乘、模逆。最后,为了充分利用加法器,使用流水线技术优化点加运算和倍点运算算法,优化其中的模运算算子调度顺序,提高点乘运算的效率。为了使得本文提出的低功耗架构具备更高的安全性能,使用抗简单功耗分析攻击(SPA)的点乘算法。该架构在Xilinx Virtex-4上实现,与其他架构相比,本文的低功耗架构节省了 17.58%-74.80%Slices资源。(2)以高性能为设计目标,研究和分析现有的椭圆曲线算法硬件架构的优缺点,提出基于半字乘法器的高性能架构。首先,因为模逆是较复杂和耗时的一种运算,点加和倍点运算选择在仿射-雅克比坐标下实现以避免模逆运算。为了高效地实现特定素域下的模乘运算,采用乘法和快速模约减相结合的方法。乘法运算采用Karatsuba-Ofman算法来实现,并且提出基于一个半字(half-word)乘法器的乘法结构。该乘法结构只需要消耗三个时钟周期就可以实现全字(full-word)乘法操作,而传统的乘法结构则需要消耗六个时钟周期。在国密算法SM2中,针对特定素数SCA-256提出了两阶快速模约减算法。该算法使得约减后的中间值为0≤Z<2p,而不是传统算法的0≤Z<14p,避免了为了得到0≤Z<p的迭代减法运算。采用流水线设计,优化点加运算和点乘运算的算子调度顺序,充分利用乘法器,提高点乘运算的效率。为了进行性能验证和对比,该架构在Xilinx Virtex-6,Virtex-5和Virtex-4上实现。实验表明,本文的高性能架构的性能是其他架构的性能的3.18-7.58倍。(3)分析归纳现有研究工作中的卷积神经网络硬件架构的优缺点,提出可重构卷积神经网络硬件加速架构,并且提出基于roofline model的设计空间探索方法以充分发挥该架构的性能。现有的基于FPGA的卷积神经网络硬件加速研究工作有许多不足之处,例如他们的架构的可重构/可配置性不强和没有提出有效的方法来充分发挥加速器的性能。首先,本文设计了基于处理单元(PE)阵列的可重构四层卷积加速引擎,充分地利用了 FPGA提供的DSP计算资源。然后,研究卷积神经网络的计算划分和循环展开,并且进一步研究不同循环展开下的数据存储模式和数据传输方式,提出混合固定的数据存储模式。最后,给出该架构的rooflinemodel,并提出设计空间探索两步法以获得更好的卷积性能和更低的数据传输功耗。该加速器在Xilinx Zynq-7000 SoC ZC706评估板上实现。实验结果表明,本文的卷积神经网络硬件加速架构在可重构、性能、功耗、DSP利用率等方面的整体性能远大于其他的加速器。