基于自适应门控时钟的CPU功耗优化和VLSI设计
2015-04-24卜爱国余翩翩吴建兵单伟伟
卜爱国 余翩翩 吴建兵 单伟伟
(东南大学国家专用集成电路系统工程研究中心, 南京 210096)
基于自适应门控时钟的CPU功耗优化和VLSI设计
卜爱国 余翩翩 吴建兵 单伟伟
(东南大学国家专用集成电路系统工程研究中心, 南京 210096)
提出了一种CPU的功耗优化方法,即通过自适应时钟门控来解决CPU中由于流水线阻塞、浮点处理器(FPU)和多媒体协处理器空闲所导致的动态功耗浪费.首先,设计了模块级自适应时钟门控单元,并通过芯片内部硬件电路来自动监测上述模块是否空闲,模块空闲时时钟关闭,从而消除了不需要的时钟翻转带来的模块内部动态功耗消耗.然后,将自适应时钟门控单元应用于国产处理器Unicore-2中,对其流水线阻塞、FPU和多媒体协处理器空闲的产生进行功耗优化.最后,基于TSMC 65 nm工艺下已流片芯片的网表和寄生参数文件,通过反标芯片的波形获得电路翻转率,并用PrimeTime PX工具进行了功耗仿真.仿真结果表明,利用本方法运行Dhrystone, Whestone和Stream三个典型测试程序时可获得18%~28%的功耗收益,其面积代价可以忽略,并对CPU性能没有影响.
低功耗;自适应时钟门控;流水线阻塞
随着嵌入式手持终端、移动互联、无线传感网络等应用的进一步发展,集成电路的功耗问题已逐渐成为除性能之外的最大约束.而高性能CPU的计算性能需求越来越大,更多的高性能计算技术开始运用于嵌入式CPU中[1],例如超流水线、多发射、乱序执行、分支预测、异构多核等,进一步导致了CPU功耗增大,因而急需有效的优化技术来降低功耗[2-9].
CPU运行程序时,由于各种原因有时会处于阻塞(stall)状态,在阻塞状态下的CPU不做任何工作,但CPU的时钟仍然在翻转,消耗很大一部分功耗.此外,多媒体计算场景越来越多,更多的嵌入式处理器加入了浮点指令、单数据多周期指令(SIMD)和多媒体指令.通过硬件FPU来执行浮点指令比定点处理器中通过软件模拟方法的速度快很多,并且对于数据并行度很高的多媒体场景速度提升很大.浮点协处理器和SIMD协处理器的面积占整个嵌入式CPU的很大部分,消耗的功耗比例也很大.但是处理器在执行过程中,并非每条指令都需要用到,此时FPU和SIMD的功耗被浪费.
门控时钟技术可以有效地减少上述3种功耗,即用一个控制信号控制时钟的开启和关闭,在模块不工作时关闭时钟,在需要工作时,打开时钟.传统的模块级时钟门控对嵌入式程序开发人员并非透明,即需要用软件控制模块时钟的开和关,而用户不知道CPU的stall状态、FPU和SIMD空闲以及Cache与TLB的空闲等,因此无法在CPU运行中自动完成.
在流水线阻塞阶段,通常需要插入NOP指令,这条指令不进行任何处理,但如果有数据传输,则会引起额外的功耗.Lotfi-Kamran等[2]提出了一种在流水线阻塞时将以前的数据反馈到流水线上的方法,阻止了数据切换,可降低由片上阻塞引起的动态功耗,但无法应对片外阻塞引起的功耗浪费.
文献[3]提出了用动态电压频率调节(DVFS)的方法来减少CPU阻塞时的动态功耗,通过软件实时计算片上阻塞时间和片外阻塞时间来决定系统的负载,当片外阻塞的时间比例变大时,通过降低工作电压和频率,可以有效地减少片外阻塞的动态功耗.但这种方法需要软件动态监控系统工作状态并调节工作频率,加大了系统软件负载.
本文通过自适应时钟门控技术优化嵌入式处理器中由于CPU阻塞、浮点处理器和SIMD阵列空闲所导致的动态功耗浪费.首先,提出了对程序员透明的模块级自适应clock-gating技术,由芯片内部的硬件自动监测模块是否空闲,若空闲则自动关闭该模块的时钟,从而减少模块内部功耗.然后分别将其运用于嵌入式CPU中,对流水线中的stall,FPU和SIMD协处理器空闲针对性地进行功耗优化,在指令流水线的合适位置中插入时钟门控单元,实现了上述单元的自适应门控时钟控制.
本方案在国产CPU核Unicore-2中得到应用,在TSMC 65 nm工艺下流片,并进行了多种测试程序的仿真.结果表明,本文方法在不影响CPU性能的前提下,面积代价几乎可以忽略,在降低CPU动态功耗方面有着显著效果.
1 自适应门控时钟技术
1.1 传统的编程式模块级clock-gating技术
编程式模块级门控时钟技术是一种粗粒度的门控时钟,用户通过软件写时钟门控寄存器来实现模块的时钟门控.如图1所示,当用户知道模块当前处于空闲状态,通过写0到时钟控制寄存器,使时钟使能信号EN为0,经过Latch与时钟进行与操作,屏蔽输入到模块的时钟,从而关闭时钟.以此类推,通过写1到时钟控制寄存器来打开模块时钟.
图1 编程式模块级clock-gating技术
模块级编程式门控时钟技术结构简单,且效果明显,但其缺点也很明显:① 对于用户不透明,需要用户软件支持.② 效率低下,容易出错,当模块需要时钟时,如用户错误地配置时钟门控寄存器,将会导致电路工作出错.
1.2 自适应式模块级clock-gating技术
本文设计了一种自适应式门控时钟方法并将其应用于一款国产CPU核(Unicore-2)中,模块内部自动产生时钟控制信号[4].如图2所示,任何一个模块都有BUSY,IDLE,END 3种状态,其中BUSY表示模块当前正处于工作状态,IDLE表示空闲状态,END是一种BUSY向IDLE转换的中间状态.模块内部判断当前FSM的状态,产生busy信号,表示当前模块处于工作状态.request信号是
图2 自适应式模块级时钟门控示意图
外部对模块进行读写、控制操作的请求信号,无效表示当前外部没有向模块进行读写、控制操作.控制逻辑单元通过模块传来的busy信号和request信号,决定是否开启模块时钟.
自适应式门控时钟技术相对编程式门控时钟有如下优点:① 对用户透明,用户不需要实时监控模块当前是否busy,通过硬件判断工作状态实现,可以有效减少软件负载.② 由于时钟门控信号是由模块内部产生,可以实现时钟快速开关,更适用于工作状态频繁切换的模块.
2 嵌入式CPU功耗的优化
2.1 流水线阻塞的功耗优化
为了解决CPU阻塞带来的功耗浪费,本文将上述提出的自适应式门控时钟应用于CPU中,增加了自适应时钟控制单元,通过在流水线中插入门控时钟,当CPU发生阻塞时关断流水线的时钟,反之打开时钟使流水线继续执行.
流水线阻塞主要分为片上阻塞和片外阻塞2类.片上阻塞是由于流水线并行结构产生的冒险所致,可以通过在流水线中插入NOP指令,使冒险后面的指令等待执行.片上阻塞产生时,流水线的时钟是不能停止的,因为产生冒险的指令需要流出流水线.片外阻塞主要原因是存储器的层次结构所导致的,片外存储器比片上存储器访问速度慢很多,因此,当片上Cache 缺失时需要访问片外存储器,需要等待很长的CPU时钟周期才能得到结果,对于单线程标量处理器,此时CPU处于阻塞状态.与此类似,当TLB 缺失时,也需要很多时钟周期从存储器中取MMU表项,实现虚拟地址到物理地址的转换,CPU也需要等待.
CPU片外阻塞的时钟周期数为
(1)
式中,Tstall为片外阻塞时钟周期;n为Cache的级数;Li表示第i级Cache的缺失次数;TLi表示第i级Cache的缺失代价;m为TLB的级数;LTLBi表示第i级TLB的缺失次数;TTLBi表示第i级TLB的缺失代价.
本文基于自适应式门控时钟技术对CPU流水线阻塞进行了功耗优化,如图3所示,通过在流水线中插入门控时钟(gated clock),当MMU或者Cache准备好时,CPU没有处于阻塞状态,流水线可以往下执行,因此流水线时钟有效.图3中,数据Cache ready有效表示数据Cache准备好接受CPU新的Cache请求,即上次请求数据Cache命中或者是请求数据已经从内存中取出;与此类似,指令Cache ready表示指令Cache准备好接受新的请求;数据MMU ready信号有效表示数据MMU准备好,即数据TLB命中或者是MMU已经从内存中取得相应数据虚拟地址所对应的物理地址;指令MMU ready表示指令MMU准备好.
当指令、数据Cache或者是指令、数据MMU中有任何一个没有准备好,CPU都要阻塞,此时流水线时钟被屏蔽.例如,指令Cache ready为低时,表示Cache 缺失,CPU流水线会停下来,此时可以关闭流水线的时钟以节约功耗.
图3 流水线阻塞功耗优化结构图
2.2 FPU与多媒体指令模块的功耗优化
FPU和多媒体指令的功耗优化目的是通过自适应门控时钟技术,将不需要运行的浮点指令和SIMD指令的流水线时钟关闭,减少动态功耗.因此,控制单元需要知道外部模块是否请求访问FPU和SIMD协处理器,以及此时FPU和SIMD单元是否被占用.
在Unicore-2的流水线中,定点指令、浮点指令和SIMD多媒体指令的流水线前半段是公用的,后半段是相互独立的,共有8级流水.取指级完成指令的读取和跳转指令的分支预测,所有流水线是相同的,取指后指令被送到各个不同的流水线去解码,如果被解码指令符合当前流水线的类型,则输出到下一级的信号有效,继续执行,否则流水线空跑.
基于自适应式门控时钟的FPU和SIMD协处理器功耗优化结构图如图4所示,流水线前两级所取的指令,通过预解码单元对比指令的操作段(op段),判断所取指令是否是浮点指令或SIMD指令,并产生控制信号Is-FPU和Is-SIMD.为了对流水线长度不产生影响,预解码单元通过组合逻辑来实现.浮点协处理器和SIMD协处理器内部,通过判断每一级流水线中的数据是否有效,决定当前协处理器是否busy,并产生控制信号FPU-is-busy和SIMD-is-busy.Is-FPU信号和FPU-is-busy信号共同决定此时FPU的时钟是否可以关闭,当两者都为低时,表示此时取值的指令不是浮点指令且此时FPU模块是空闲的,此时FPU的时钟可以关闭.与此类似,Is-SIMD和SIMD-is-busy信号共同决定SIMD协处理器的时钟是否可以关闭.
图4 FPU和SIMD协处理器功耗优化结构图
3 实验结果
3.1 芯片SEP6010及验证平台
本文所采用的验证平台是已通过流片验证的SoC芯片SEP611,这是一款支持多媒体处理和GPS定位的高性能SoC,通过TSMC 65 nm LP工艺流片实现,其内部集成的CPU是Unicore-2,一款支持定点指令、浮点指令以及多媒体SIMD指令的RISC处理器.芯片的具体功能首先通过了严格的测试,测试板主要包含被测芯片、电源、外部存储DDR颗粒以及UART,SD卡等外部设备,如图5所示.
图5 被测芯片和测试板
为了测试自适应门控技术产生的功耗收益,在已流片的芯片基础上,增加了自适应门控时钟使能寄存器来降低芯片功耗.当使能寄存器有效时,相应模块的时钟输入是自适应门控后的时钟,反之,为原时钟.
3.2 自适应clock-gating测试结果及分析
本文基于已流片的芯片网表以及RC寄生参数文件,通过反标芯片的仿真波形获得各个结点的翻转率,可以准确地仿真设计中各个器件以及连线的功耗.首先使用2组测试程序分别控制自适应门控时钟使能寄存器打开和关闭,通过VCS工具对设计进行功能仿真获得VCD(value change dump)波形,然后用功耗分析工具PrimeTime PX读入仿真波形以及综合网表,并通过反标各个结点的翻转率计算芯片功耗.
Dhrystone和Whetstone是国际上典型的测量定点和浮点的测试程序,是一种计算密集型程序,在CPU测试中被广泛采用[5-6];Stream[7]测试程序是内存带宽性能测试工具,需要访问大量的存储器数据,是数据密集型程序.3种程序测试的自适应门控技术的功耗收益如图6所示,图中依次显示了优化前功耗、利用FUP和SIMD优化后的功耗和流水线stall优化后的功耗,以及上述所有优化全部开启后的功耗.可见,所有优化全部打开时最多可以降低28%的功耗.整体而言,所有的测试程序都有18%以上的功耗收益.
图6 不同测试程序下各种时钟门控优化的功耗收益
对比Dhrystone和Whetstone测试程序的功耗可以发现,Dhrystone测试程序在FPU和SIMD协处理器优化方面的功耗收益更大,这是由于Whetstone中浮点处理指令的比例比Dhrystone高,Dhrystone中只包含有定点指令,因此优化空间更大.与Lotfi-Kamran等[2]提出降低10%的流水线结构的CPU动态功耗降低方法相比,本文方法功耗收益更高,并且不影响CPU性能.与Carazo等[8]提出的通过数据直通减少L1 Cache的访问,从而降低CPU动态功耗方法相比,本文的功耗收益不仅局限于Cache功耗收益,同时可以减少CPU pipeline的功耗.
4 结语
本文研究了嵌入式处理器中,由于流水线阻塞、浮点处理器和多媒体协处理器空闲所导致的动态功耗浪费,通过插入自适应时钟门控,自动检测模块是否空闲,在模块空闲时将时钟关闭,从而大幅度降低了芯片的动态功耗.将本方法应用于嵌入式CPU中,并进行了3种典型的测试程序下的功耗仿真,结果表明,本文方法大幅度降低了CPU的动态功耗.
References)
[1]Gonzalez R, Horowitz M. Energy dissipation in general purpose microprocessors [J].IEEEJournalofSolid-StateCircuits, 1996, 31(9): 1277-1284.
[2]Lotfi-Kamran P, Salehpour A A, Rahmani A M, et al. Dynamic power reduction of stalls in pipelined architecture processors[J].InternationalJournalofDesign,Analysis&ToolsforIntegratedCircuits&Systems, 2011, 1(1):9-4.
[3]Choi K, Soma R, Pedram M. Dynamic voltage and frequency scaling based on workload decomposition[C]//ACMInternationalSymposiumonLowPowerElectronicsandDesign. Newport Beach, CA, USA, 2004: 174-179.
[4]Jain S, Khare S, Yada S, et al. A 280 mV-to-1.2 V wide-operating-range IA-32 processor in 32 nm CMOS[C]//IEEEInternationalSolid-StateCircuitsConferenceDigestofTechnicalPapers. San Francisco, CA,USA, 2012: 66-68.
[5]Chang X, Zhang M, Zhang G, et al. Adaptive clock gating technique for low power IP core in SoC design [C]//IEEEInternationalSymposiumonCircuitsandSystems. New Orleans, LA, USA, 2007: 2120-2123.
[6]Simon Tyler A, Ward William A, Boss Alan P. Performance analysis of Intel multiprocessors using astrophysics simulations [J].ConcurrencyandComputation:PracticeandExperience, 2012,24(2): 155-166.
[7]Padua David.Encyclopediaofparallelcomputing[M]. New York: Springer-Verlag, 2011: 127-129.
[8]Carazo P, Apolloni R, Castro F, et al. L1 data Cache power reduction using a forwarding predictor [J].LectureNotesonComputerScience, 2011, 6448: 116-125.
[9]Miller M, Janik K, Lu S L. Non-stalling counterflow microarchitecture [C]//4thInternationalSymposiumonHighPerformanceComputerArchitecture. Las Vegas, Nevada, USA, 1998: 120-126.
Power optimization and VLSI design of CPU based on adaptive clock-gating
Bu Aiguo Yu Pianpian Wu Jianbing Shan Weiwei
(National ASIC System Engineering Research Center, Southeast University, Nanjing 210096,China)
A power optimization method of embedded processors based on self-adaptive clock gating is proposed, which can reduce the power waste caused by pipeline stall, FPU(float point unit ) idle and multimedia co-processor idle. First, an adaptive module level clock-gating cell is designed, which can detect automatically whether the status of each module is idle through on-chip hardware. When the module is idle, its clock is turned off to save the dynamic power caused by unneeded clock toggling. Then, the adaptive clock-gating cell is applied to a domestic CPU(central processing unit) Unicore-2, and the power caused by pipeline stall, FPU and multimedia co-processor idle is optimized. Finally, based on the netlist and parasitic files of the previously fabricated TSMC 65 nm chip, the chip waveform is annotated to obtain the nets’ toggle rates, and then the power simulations are performed by the PrimeTime PX tool. The results show that an average of 18% to 28% power reduction can be obtained under typical test benchmarks of Dhrystone, Whestone and Stream, with negligible area overhead and no impact on CPU performance.
low power; adaptive clock-gating; pipeline stall
10.3969/j.issn.1001-0505.2015.02.004
2014-09-16. 作者简介: 卜爱国(1978—),男,博士,副研究员;单伟伟(联系人),女,博士,副教授,wwshan@seu.edu.cn.
江苏省“青蓝工程”资助项目.
卜爱国,余翩翩,吴建兵,等.基于自适应门控时钟的CPU功耗优化和VLSI设计[J].东南大学学报:自然科学版,2015,45(2):219-223.
10.3969/j.issn.1001-0505.2015.02.004
TN47
A
1001-0505(2015)02-0219-05