|
发表于 2008-10-12 21:02:52
|
显示全部楼层
低功耗设计技术综述 [前言] 低功耗设计是3G手机芯片能否为市场所接受的一个重要技术问题。我们希望通过对国际上低功耗技术研究最新进展的收集、学习和吸收,来开拓设计人员视野,提供更多的低功耗设计方法,提高我们的低功耗设计水平。由于文献数目非常多,而且涉及到超过十个以上的技术专门领域,所以我们将各个方面的技术资料进行分类整理,并随时更新。 本文的正文将主要介绍当前的主要进展,而脚注则反映了我们对相应技术的一些看法。 目录 一、基本理论和低功耗设计技术综述... 1 二、实际案例... 3 Intel公司的80200(XScale Core)[2] 3 TI C6201的功耗分析[5] 4 MPEG-4解码器... 4 基于Leon处理器和DSP的SoC. 5 DEC的21264. 6 StrongARM 110. 6 三、微处理器的低功耗... 6 四、总线和Cache. 8 总线编码技术... 8 Cache的低功耗设计技术... 10 五、操作系统... 11 六、应用级的低功耗设计... 11 七、动态功耗管理... 15 [1]。 存储器分体操作是指将存储器分为多个体,只有工作的体才激活。这对指令Cache的组织比较有效。 只有完全停止(shutdown)存储器后才能避免存储器的漏电流功耗,但是这将使得存储器中的信息丢失。在长时间不用存储器,并将其信息备份到外存时可以完全停止存储器,这就是通常由操作系统实现的sleep模式。 系统片间总线功耗一般占了系统总功耗的15~20%。为了降低这部分功耗,可以采取以下措施:地址采用Gray码以减少地址总线的信号翻转。代码动态压缩/解压缩以减少指令访问的功率消耗[2]。 从低功耗的角度看,并行处理似乎更优于流水线技术,因为流水线的主要目的是提高系统的主频。但是流水线设计相对简单,而且并行处理导致更多的芯片面积,也可能会增加功耗。所以在这两者的选择上并不非常明确,需要根据实际情况做出判断。 IBM的研究人员[4]对多种类型的电路和综合工具进行了试验,发现有以下功耗-延迟近似公式: (E-E0)*(D-D0)=gama*E0D0 (4) 其中E0为最小功耗,D0为最小延迟,E和D为某种实现方式下的功耗和延迟,gama为0.2到0.4之间的参数。 式(4)的含义指明了电路自身的复杂程度是一个基本固定的参量,而综合工具所能做的事情是在功耗和性能之间取得某种折中。这对我们正确理解和使用综合工具进行低功耗优化有重要指导意义。 文献[3]中则给出了低功耗设计的主要技术方向[3]: 存储器优化技术.有很多研究工作围绕在通用或专用处理器外围加入Cache来降低功耗,或者在通用的存储器体系结构中,对数据传输和布局进行控制。 硬件-软件划分. 这些研究方法从特定应用系统的高层规范(任务图)开始,试图找到一种优化的软件和硬件划分方案。其硬件系统的处理单元互联和存储器体系结构都是面向专用领域的。 指令级功耗优化。这个优化技术是指根据已有处理器指令级(指令对)的功耗模型,从中选取最小功耗的指令集合来实现应用。有一些处理器专门提供了一些特殊的低功耗指令。 控制-数据流变换。这里执行规范表现为控制数据流图(Control-data flow graphs, CDFG)。通过高级综合将控制数据流图转换为特定的硬件。而控制数据流变换则在高级综合之前完成,结果显示这些比变换可以有效地节约特定硬件处理器的功耗。 变电压技术。变电压技术的研究包括两个方面:改变电压的实现技术,以及如何有效应用变电压技术。 动态功耗管理(Dynamic Power Management)。动态功耗管理是指允许系统进入睡眠状态的控制方法。相关工作包括:工业标准,通用管理方法,预测和随机控制策略等。当前DRM主要用于控制微处理器,硬盘和手持式设备。 接口功耗最小化。计算机系统中大量的功耗用于片上和片间数据传输。主要的研究方向是通过编码方式降低总线信号的翻转率。 [4]。 为了降低处理器的功耗常用的技术包括: ¨ 降低工作电压。但是正如本文公式(3)所示,降低工作电压将导致门限电压下降从而使得漏电流和功耗增加,特别在深亚微米的条件下,其漏电流引起的功耗将占据主导地位,如左图所示。所以单纯降低工作电压并不能解决功耗问题。 ¨ 门控时钟。门控时钟可以有效降低不工作部件的时钟功耗。但是有以下问题需要重视。首先被门控的时钟将产生时钟偏移,这导致了对时钟使能信号的时间限制非常严格并需要仔细的时间验证。在高主频的系统中,时钟偏移问题已经非常严重,而加入门控将导致这一问题更加困难。因此,门控部件的粒度需要在时钟网络设计时进行折中。此外,对于大型部件的时钟禁止时将使得系统的工作电流突然降低,这会使得其他模块也同时断电[5]。这需要芯片的电源系统能提供更好的去噪功能。 ¨ 库的选择。正如本文公式[4]中所述,不同的工艺库在实现相同功能时在功耗和速度之间有着不同的特征。对于非关键路径的逻辑可以采用性能和功耗比较低的库。[6] ¨ 低功耗逻辑综合。文中通过实例说明低功耗综合工具可以在保持延迟的条件下降低约9%的功耗,而对面积的影响很小。 ¨ 软件的功耗降低。此文的作者曾经通过改进486DX2的程序设计说明:对于给定任务更快的程序实现将减少功耗。 此外文中还介绍了晶体管尺寸,特殊电路级和面向桌面系统的系统功耗管理等方面的内容。由于主要面向定制电路和桌面系统,这里省略。 文献[23]中提出采用功耗-延时积的方式来综合评判处理器的功耗和性能。文中讨论了三种处理器模型:无流水线的RISC处理器,有五级流水线的RISC处理器,带超标量(静态调度)的超标量处理器。模拟了三种处理的计算时间,功耗,功耗-延时积等三个指标。结果表明:带流水线的处理器较无流水线处理器的性能有大幅度提升,而且功耗开销增长较下,而超标量体系结构由于并行性不能全部发挥,所以其性能提升有限,而且功耗增长很快。从延时-功耗积的角度看,带流水线的RISC处理器具有更好的结果。 文中还介绍了TORCH处理器中的降低功耗策略: 门控时钟,在数据路径上执行NOP指令或不发生操作结果时,在地址转换路径上对非load/store指令或Cache命中时,将停止时钟。门控时钟减少了约30%的时钟功耗,降低了整体功耗的15%。 当处理器阻塞时,停止访问Cache和寄存器文件,降低了8%的功耗。 采用预译码技术,减少了取操作数的功耗。 文中认为所有的处理器具有相似的功耗特征,这是因为: 功耗的50~80%来自时钟和片上存储器(Cache),组合逻辑的功耗影响很小; 流水线结构可以更有效地增加性能,且功耗代价很小,其他体系结构对功耗-延迟的影响较小。 文献[25]中提出了结合转移预测器和低功耗的设计技术。即当转移预测器判断转移预测将失败时,将停止相应的流水线时钟。此方法可能带来3~5%的性能损失,但是能降低相当的取指和译码部件功耗。 [7]的出现,主要包括: 超时策略(Time-out)。 此策略假设在设备空闲T以后会继续保持空闲TBE,从而将设备状态转换为睡眠状态。最简单的策略是固定T。 自适应的超时策略(Adaptive Time-Out, ATO)则将考虑T和上次空闲时间之比,如果此比例过小则延长T,如果此比例过大则减少T。 设备相关超时策略(Device Dependent Time-out, DDT)则根据不同设备的临界时间TBE来确定T。理论上可以证明,如果取T=TBE,则最多会消耗两倍于理想调度策略的功耗。 预测策略 预测策略将根据请求时间序列的历史信息预测下一次设备的空闲时间,如果此时间大于临界时间则使设备进入休眠状态。应用的空闲和工作时间一般按照L型分布,即空闲时间越长,下一次的工作时间越短;空闲时间越短,下一次的工作时间越长。 自适应学习树(Adaptive Learning Tree, LT)策略将空闲周期按照树型编码。如果空闲时间长于临界时间则置信水平增加,否则减少。调度算法根据历史编码和置信水平来计算节点的路径并确定未来空闲周期的功耗状态。 指数平均(Exponential Average, EA)策略采用r(n)=a*I(n)+(1-a)*r(n-1)来估算未来的空闲时间,其中I(n)为上一空闲时间,r(n)为空闲时间的预测值。 随机策略 基本的离散时间稳态Markov过程(Stationary Discrete-time Markov Processes, DM)使用Markov过程来假设请求的分布。有两种扩展方法:使用其他随机模型和引入非稳态行为。 考虑到无线通信中的请求可以用Pareto分布来很好的近似,就引入了time-index semi-Markov过程(SM)模型来确定最优的调度策略。 非稳态请求(Non-Stationary Requests, NS)将计算几组不同的到达率的空闲时间的预期结果和调度结果并存储下来。如果当前的空闲时间与其中一组吻合,则使用这一组作为以后的时间估算,否则使用线性差分的方法获得休眠概率。 对于动态调度策略的评估包括以下六个方面:功耗,休眠次数(越少越好),休眠精度,交互性能(最长休眠时间不能太长),存储器需求,计算需求。上述算法在笔记本电脑上对硬盘的调度评测结果如下表所示: 事实上目前还没有一种算法能满足所有六个方面的最优调度(A)策略。比较保守的策略可能导致功耗比较高,而比较积极的策略则会发出过多的休眠指令而导致系统的交互性能下降。 [参考文献] [1] Trevor Mudge, Power: A first-class architecture design constraint, IEEE Computer, Apr., 2001 [2] http://developer.intel.com/design/iio/manuals/273411.htm [3] Luca Benini, Siovnni De Micheli, System-level power optimization: techniques and tools, ISLPED99 [4] V. Zyuban, P. N. Strenski, Balancing hardware intensity in microprocessor pipelines, IBM Journal Res. and Dev. , Vol.47(5/6):585-598, Sep./Oct., 2003 [5] Nathalie Julien, Juhann Laurent, Eric Senn, Eric Martin, Power consumption modeling and characterization of the TI C6201, IEEE Micro, Sep./Oct.. 2003 [6] Takashi Hashimoto, etc., A 27-MHZ/54-MHZ 11-mW MPEG-4 Video Decoder LSI for Mobile Applications, IEEE Journal of Solid-state Circuits, Vol.37(11): 1574-1579, Nov., 2002 [7] W.-C. Lo1, A.T. Erdogan and T. Arslan, Low Power System-on-Chip Platform Architecture for High Performance Applications [8] GAISLER J., ‘The LEON Processor User’s Manual’, Version 2.3.7, August 2001, Gaisler Research, www.gaisler.com. [9] David M. Brooks, Pradip Bose, etc., Power-aware micro-architecture: Design and Modeling Challenges for Next-Generation Microprocessors, IEEE Micro, Nov. / Dec., 2000 [10] Anoop Iyer, Diana Marculescu, Microarchitecture-level power management, IEEE Trans. on VLSI systems, Vol. 10(3): 230-239, Jun., 2002 [11] Luca Benini, Giovanni De Micheli, etc., Address Bus Encoding Techniques for System-Level Power Optimization, DATE’ [12] M. R. Stan, W. P. Burleson, Bus-Invert Coding for Low-Power I/O, IEEE Trans. on VLSI systems, Vol. 3(1):49-58, Mar., 1995 [13] L. Benini, G. De Micheli, etc., Asymptotic Zero-Transition Activity Encoding for Address Buses in Low-Power Microprocessor-Based Systems, GLS-VLSI-97: IEEE 7th Great Lakes Symp. On VLSI, p. 77-82, Mar., 1997 [14] William Fornaciari, Donatella Sciuto, Cristina Silvano, Influence of Caching and Encoding on Power Dissipation of System-Level Buses for Embedded Systems, DATE [15] Andera Acquaviava, Luca Benini, Bruno Ricco, Energy Characterization of Embedded Real-Time Operating Systems, [16] Kathleen Baynes, Chris Collins, Eric Fiterman, etc., The Performance and Energy Consumption of Embedded Real-Time Operating Systems, IEEE Trans. on Computers, Vol. 52(11):1454-1469, Nov., 2003 [17] Elif Uysal-Biyikoglu, Balaji Prabhakar, Abbas El Gamal, Energy-Efficient Packet Transmission Over a Wireless Link, IEEE/ACM Trans. on Networking, Vol.10(4):487-499, Aug., 2002 [18] Amit Sinha, Alice Wang, Anantha Chandrakasan, Energy Scalable System Design, IEEE Trans. on VLSI systems, Vol.10(2):135-145, Apr., 2002 [19] Vivek Tiwari, Deo Singh, etc., Reducing Power in High-Performance Microprocessors, DAC, 1998 [20] Yung-Hsiang Lu, Giovanni, Comparing System-Level Power Management Policies, IEEE Design & Test of Computers, Mar./Apr., 2001 [21]Tajiana Simunic, Luca Benini, Giovanni De Mecheli, Energy-Efficient Design of Battery-Powered Embedded Systems, IEEE Trans. on VLSI systems, Vol.9 (1):15-28, Feb., 2001 [22] Michael K. Gown, Larry L. Biro, Daniel B. Jackson, Power Consideration in the Design of the Alpha 21264 Microprocessor, DAC’98 [23] Ricardo Gonzalez, Mark Horowitz, Energy Dissipation in General Purpose Microprocessor, IEEE Journal on Solid-State Circuits, Vol. 31(9):1277-1284, Sep, 1996 [24] Dan Dobberpuhl, The Design of a High Performance Low Power Microprocessor, ISLPED’96 [25] Srilatha Manne, Artur Klauser, Dirk Grunwald, Pipeline Gating: Speculation Control for Energy Reduction, ISCA’96 [26] L. Benini, A. Macii, E. Macii, M. Poncino, R. Scarsi, Synthesis of Low-Overhead Interfaces for Power-Efficient Communication over Wide Buses, DAC’99 [27] S. Osbome, A. T. Erdogan, T. Arslan, D. Robinson, Bus Encoding Architecture for Low-Power Implementation of an AMBA-Based SoC Platform, IEE Proc.- Comput. Digit. Tech. Vol. 149(4), July, 2002 [28] Chuanjun Zhang, Frank Vahid, A Power-Configurable Bus for Embedded Systems, ISCAS’02 [29] Cheng-Ta Hsieh, Massoud Pedram, Architectural Power Optimization by Bus Splitting, DATE’00 [30] Rizwan Bashirullah, Wentai Liu, Ralph K. Cavin, Low-Power Design Methodology for an On-chip Bus with Adaptive Bandwidth Capability, DAC’03 [31] Tiehan Lv., Jorg Hankel, Haris Lekatsas, Wayne Wolf, An Adaptive Dictionary Encoding Scheme for SoC Data Buses, -------------------------------------------------------------------------------- [1] Cache整个系统的功耗影响,我们一直都很关注。同时,我们注意到ARM公司最新推出了二级Cache控制器供Motorola的手机芯片使用,以降低系统功耗。这也许说明多级Cache结构可能是降低整体功耗的一个方法。 [2] 上述两种方式并不太实际,因为我们的外部器件基本都是不支持这些功能的标准器件,但是在我们自己的芯片互联(如应用处理器和基带处理器之间)上可以考虑类似技术。 [3] 此文献仅给出了主要的研究领域和大量的参考文献,没有给出具体的技术细节,这还需要我们进一步的分析。 [4] 此文中的功耗分布应比较可信。 [5] 这样的工艺和实现问题需要引起我们的重视,特别在进行门控时钟方案设计时需要认真考虑其门控粒度。 [6] 这可能要改进我们已有的设计流程,即完成规定功能的设计后,需要进行关键路径分析,并在综合时对关键路径和非关键路径采取不同的库进行综合。 [7] 这些策略我们还需要进一步的分析。 |
|