在前几篇文章里有给各位说明了如何使用改进算法和低功耗设计方法,实现高速低功耗的AES ASIC设计。但因篇幅太大,在此本人总结了几个重点,再向各位介绍一下,以此说明ALPU采用AES128 ASIC的设计在加密系统中是何等的明智。
在介绍之前,我们先要了解一个名称:T盒算法。
什么是T盒算法呢?T盒算法是AES的改进算法,假设加密过程中轮变化的输入为a,输出为d,则:上式中SRD(S盒)由有限域GF(28)中的乘法逆变换和GF(2)中的仿射变换复合而成,符号代表有限域GF(28)中的加法运算,符号 代表有限域GF(28)中的乘法运算。
该实现方案中T0~T3,每个表都包含了256个双字,一共占用4KByte的空间。在每次循环迭代中,只要通过4次表查询和4次异或运算,就能快速地得到一次轮操作中一列的运算结果。改进算法有效降低了关键时序路径的传输延迟,能够明显的提高ASIC工作频率。通过4次表查询和4次异或运算,就能快速地得到一次轮操作中一列的运算结果,同时在满足时序约束的前提下,通过动态功耗管理和时钟门控等方法,根据芯片的工作状态关闭模块的功能操作并关闭时钟网络,达到了降低功耗的目的。
采用T盒算法,设计的数据吞吐率可以提高13.8%,同时采用功耗优化方案后,normal模式下功耗下降了10.7%,在idle模式时更低。该实现方案适用于ECB,CBC等运行模式。采用这种方案,同样也可以使得CMOS功耗变得更低。
该方案采用了以下两种低功耗设计方法。
1)动态功耗管理
动态功耗管理是一种系统级低功耗设计方法,降低功耗的主要思路是根据芯片工作状态改变功耗管理模式,从而在保证性能的基础上降低功耗。在不同模式下,时钟的频率可以进行调整,一些空闲模块甚至整个芯片的时钟也可能会被停止。还可以通过调整芯片的电压,进一步降低功耗。由于工作库的限制,本文没有对动态电压管理作进一步的研究。
本文采用动态功耗管理,分为normal和idle两种功耗模式。有开始(START)信号时,芯片由idle模式进入normal模式,开始对明文分组加密。经过初始密钥加法和10次轮变换,输出密文分组,并产生结束(STOP)信号,使芯片返回idle模式。因此设计了一个鉴相器产生idle模式的控制信号(EN)。电路由与非门和基本RS触发器组成(图1),对输入信号(开始和结束)的上升沿感应,由D触发器输出EN。具有结构简单的特点,并对噪声的影响有很好的抑制作用,并能有效地去除毛刺。
2)时钟门控
EN有关闭和打开ASIC内部模块的作用,但这样不是最佳的,因为EN只是关闭了内部模块的功能操作,而并没有把模块内的时钟网络关闭,也就是说时钟网络依然处于激活状态,而时钟网络造成的功耗占总功耗的很大部分,只有关闭时钟网络才能同时达到关闭模块功能和降低功耗的目的。
采用时钟门控技术可以达到关闭时钟网络的目的。以图2(a)中所示电路为例,仿真生成的波形如图2(b)所示。可以看到只有在EN信号为1和时钟信号CLK上跳同时发生,ENCLK才会从0变为1,激活时钟网络。在其他时刻,时钟网络是关闭的。插入的时钟门控单元不仅能通过关闭时钟网络而明显的降低功耗外,还有其他几个重要的功能:
①D触发器的时钟输入端口对毛刺敏感,门控单元能有效地滤除信号EN的毛刺,从而确保进入D触发器时钟端口的ENCLK信号不会出现毛刺,避免因竞争而导致触发器发生错误的状态变化。
②锁存器的插入增加了ENL信号的延时。
③对于n位寄存器组,n条反馈连线和n个多路选择器被一个门控单元所取代,不仅带来面 积上的节省,降低后端布线的拥塞,同时又进一步降低了功耗。
采用此种方式,可实现最高工作频率410MHz,数据吞吐率5.23Gbps,功耗为58 mW,完全解决了AES ASIC的功耗高的问题
关注微信号,惊喜等你来
x