低功耗设计技术(1)陈虎2004年5月主要内容•低功耗的基本理论•降低功耗的手段–电路级–逻辑级–体系结构级–软件•总线的低功耗技术–总线编码–总线编码的效果–总线拆分•微处理器的功耗特征–基本理论–Pentium–Alpha21264–StrongARM110–TIC6102–基于Leon的SoC–系统级功耗评估–总结低功耗的基本理论2shortleakPACVfAVIfVI动态功耗:电压(平方),频率,电容,翻转率2max()thresholdVVfV降低电压将导致频率(性能)下降,需要降低门限电压exp()()thresholdleakqVIkT降低门限电压将导致静态电流(功耗)增加结论:降低电压并不能完全解决问题功耗和延时的折衷(E-E0)*(D-D0)=γ*E0D0(γ=0.2~0.4)提示:电路固有其复杂性特征,综合工具只能在功耗和性能之间取得折衷降低功耗的手段降低功耗的主要手段•电路级:–可变电压(门限电压和工作电压)–变频率(需要快速PLL支持,或专门的时钟多路开关)–优化的定制设计(降低时钟负载,晶体管尺寸优化等)–减少存储器的功耗(减少漏电流)–异步电路(完全取消时钟)–半频(时钟的上升沿和下降沿可用于同步事件,从而将主频降低一半)–半偏移时钟(时钟仅在工作电压的一半)需要定制电路的设计技术!?降低功耗的主要手段•逻辑级–门控时钟(最多可以减少60%)–电路设计优化,降低信号翻转率•逻辑电路优化•时序电路优化(FSM的分解)–布局优化•均衡整个时钟树分布,时钟树中的缓冲数目减少了约40%,线和单元电容减少了约20%。•减少时钟线电容:–采用双倍线间距布置时钟线–集中寄存器于特定区域•优化单元布局以最小化时钟树–面向功耗优化的综合(减少8%左右)–多频率降低功耗的主要手段•并行处理(降低主频)•总线和Cache的优化•软硬件划分(选择合适的实现手段:专用硬件,DSP软件,CPU的软件?)•指令级功耗优化(选取最小功耗的指令集合来实现应用)•控制-数据流变换(用于数字信号处理的专用电路)降低功耗的主要手段•动态功耗管理–指允许系统进入睡眠状态的控制方法,主要用于控制微处理器,硬盘和手持式设备。•应用算法•编译技术总线的低功耗技术两种基本的总线编码方式()()()()()()(,0)2(,)(,1)2ttttttNbHBINVNbHINV方案:(1)()(1)()()()(,0)(,)(,1)ttttttBbbsBINCbOtherwiseINC方案:当连续两个地址的Hamming距离小于N/2时,保持地址输出(INV=0),否则将INV设置为1,并输出地址的反当地址保持递增时,加入的INC信号为1,地址保持不变,否则INC为1,输出新的地址微处理器的地址特征与总线编码•微处理器发出的地址流:–指令流(很好的顺序性,63%)–数据流(顺序性较差,仅11%)–两者合并后为57%。•顺序性很好的指令流,INC方法较好•顺序性差的数据流,INV方案较好•额外的SEL信号区分指令流和数据流:在指令流时采用INC方案,在数据流时采用INV方案。基于字典的自适应编码•N位数据被分为了三个区域,[N-1,WI],[WI-1,WO],[WO-1,0](N=32,WO=6,WI=3),[WO-1,0]为固定传输区域•以[WI-1,WO]作为访问字典的地址,并将字典中的数据与[N-1,WI]的数据比较,–如果相同:•设置状态线为1,•不传输[N-1,WI]位的数据。•解码端使用字典中的数据作为总线结果–如果不同:•设置状态线为0,•传输[N-1,WI]的数据,•编解码双方都将更新字典其他总线编码方式•在地址总线方面,还包括Gray码,T0-XOR码,偏移表示,金字塔码等等。•在数据总线方面,还包括BITS,码表编码,基于概率的映射等等。•这些算法目的是减少总线上的信号翻转率,但是过于复杂的编解码方案可能导致额外的功耗,甚至有超过在总线上节省的功耗。基于AHB总线编码的实际案例•有两个主要特点:–每个字节都有相应的INV标志位来单独编解码。–外存包括两个体一个为8位的数据存储器,一个为1位的INV标志存储器。•在随机测试向量下,对于32位(16b,8b),可以节约19%(5%,1%)的功耗•对于两维卷积运算的应用(32位),则可以节约22%的功耗•可能存在的问题:–在外存上保持AHB上的编码模式,可能会导致外围存储器的访问功耗增加,而且不利于其他部件共享。–没有讨论对于地址总线的低功耗优化。总线编码的性能开销•应用背景:–8051的8位程序总线的数据部分采用了INV方案,地址部分采用了INC方案。–编解码模块可以通过程序控制来决定是否使用。•在没有使用总线编码方案时,总线主频20MHZ,采用了总线编码方案后,总线主频60ns(16.7MHZ)。•对多个典型程序测试表明,在使用编解码模块时,虽然程序的执行时间延长了20%,但是总的能量功耗下降了23%(功率下降了36%)。总线拆分技术•三态总线被分为两段BUS1和BUS2,通过双向缓冲连接。–当总线通信的主/从设备从属于同一个总线段时,双向缓冲将被截断。–此时总线的驱动将减少。与双总线相比,该方案仅有一套总线控制系统。•根据系统中各个部件之间的通信比例划分总线的思想却是值得借鉴的。微处理器的功耗特征微处理器内部结构与功耗的关系•不同应用背景(如SpecInt和SpecFP)可能会导致功耗指标(MIPS/W)结果不同。这说明,对处理器的功耗评估非常依赖于测试程序的选择。•在Cache的测试中,固定了行和组相联的数目,变化行的尺寸。结果表明,当行的尺寸增加时(从2倍到16倍),其性能提高不过4%,但是功耗却至少增加了2倍。•对内部资源的功耗分析表明,当内部资源(如FIFO队列长度,转移预测表大小)数目增加时,其功耗与性能基本同时增加,这说明增加内部资源的功耗效果很显著。微处理器体系结构与功耗的关系•采用功耗-延时积的方式来综合评判处理器的功耗和性能。•三种处理器模型:–无流水线的RISC处理器–有五级流水线的RISC处理器–带超标量(静态调度)的超标量处理器•结论:–带流水线的处理器较无流水线处理器的性能有大幅度提升,而且功耗开销增长较小–超标量体系结构由于并行性不能全部发挥,所以其性能提升有限,而且功耗增长很快。–从延时-功耗积的角度看,带流水线的RISC处理器具有更好的结果。Pentium处理器的功耗特征•时钟系统(包括时钟产生器,时钟缓冲,时钟分布树,锁存器等)•数据路径(包括执行部件,总线,寄存器文件)•片上存储器(Cache,转移缓冲)•控制与I/OAlpha21264的功耗特征DEC的21264于1998年研制成功,基本参数:0.35工艺,15.2M个晶体管,2.2V,600MHZ,6路超标量乱序执行,64KBL1指令Cache和64KBL1数据Cache,平均功耗72W(最大95W),平均电流32.7Amps。•条件时钟。•低电压偏移总线(low-swingbuses),采用200mV的差分偏移总线实现64位总线,功耗由原先的1.5W降低到15mW。21264的功耗主要集中于时钟网络(32%),其乱序执行的指令提交控制逻辑也占据了相当大的功耗(接近20%)。StrongARM110的低功耗设计策略电路/逻辑级:采用了1.5V的电压,其中门限电压为0.35V。从2V降低到1.5V时,功耗降低了44%,主频降低了25%。当工作电压低于1.5V时,主频降低就非常快了。采用了差分边缘触发锁存器(DifferentialEdge-TriggeredLatch)。采用了条件时钟(以ScaledClockBuffer来匹配不同的时钟负载)体系结构级:采用5级流水线,因为更深的流水线不利于低层次优化。采用单发射,以减少指令调度的功耗。采用双时钟。内核时钟从88~287MHZ,外部时钟66MHZ。在处理器写出时,数据通过基于FIFO的写缓冲来同步两个时钟。在处理器读入时(填充Cache),整个芯片通过外部时钟同步,这样处理器在等待外部数据时的主频降低到原先的三分之一。VLIWDSP(TIC6201)的功耗特征•TIC6201每个周期可以并行执行8条指令,内部流水线分为9级,包含了三个重要部分:–取指令(地址产生,地址发送,等待指令,接受指令包四级)–译码(指令分派,指令译码)–执行(五级指令流水线)。VLIWDSP(TIC6201)的功耗特征•在取指和指令分派阶段,高的指令并行度在VLIW的DSP上具有更好的功耗效率•在译码和执行阶段,指令的功耗基本与每周期指令数无关,而仅与程序本身确定的操作相关。•加法只需要经过执行1流水线,乘法则经过执行1和2流水线。而执行2的功耗非常低,这说明乘法指令的功耗较加法指令功耗只增加了一点。•存储器访问的load/store指令则需要经过执行3-5级流水线,而这部分的功耗非常高,这说明load/store指令对功耗的需求要高于一般的算术运算指令。基于Leon处理器的SoC的功耗特征LEON处理器占据了44%,存储器控制器占据了14%,AHB总线功耗为9%两个UART的功耗占据了10%,定时器功耗也达到8%。一个系统级功耗评估结果——体系结构系统结构:StrongARMSA1100处理器,L2Cache,FLASH,SRAM,传感器,DC-DC转换,电池等一个系统级功耗评估结果——功耗模型功耗模型:ARMulator负责执行应用程序和模拟L1Cache,并获得节拍精度的运行轨迹。其运行轨迹将送入处理器和L1Cache的功耗模型中。当L1Cache不命中需要访问外部存储器时,其地址和数据将送入L2Cache或外部存储器(都在片外)的模型中,同时通过互联功耗模型和L2Cache,外部存储器的功耗模型进行功耗统计。同时考虑到DC-DC转换器件和电池的非理想特征,也为其建立了功耗模型。一个系统级功耗评估结果——四种存储器体系结构BFLASH为BurstFlush,BSRAM为BurstSRAM,BDRAM为BurstBDRAM。一个系统级功耗评估结果——性能和功耗的折衷原始设计的性能瓶颈在于数据存储器,L2Cache虽然很快但是消耗了大量的功耗,BurstSDRAM解决的存储器瓶颈。从功耗角度看,由于L1Cache容量较大,所以程序存储器消耗的功耗较小,DC-DC转换消耗的功率则不可忽视。作者认为使用快且功耗高的存储器时具有更好的功耗效率。总结——学到了什么?•逻辑级和体系结构级的优化手段–门控时钟–多频率–面向功耗的综合优化–面向功耗的布局/布线•微处理器(DSP)的功耗特征–系统的功耗和应用密切相关–取指/译码占据了功耗的重要部分–提高指令的并行性可以降低功耗总结——需要解决的问题存储器体系结构的设计ARMTCMCacheOn-ChipMemoryOff-ChipMemoryControllerOff-ChipMemory各个存储器层次的容量,频率?互联结构的设计?系统级性能/功耗评估工具?DSPTCMCache各种外设互联结构