系统级功耗模型研究.docx

上传人:b****3 文档编号:11092463 上传时间:2023-05-29 格式:DOCX 页数:82 大小:822.21KB
下载 相关 举报
系统级功耗模型研究.docx_第1页
第1页 / 共82页
系统级功耗模型研究.docx_第2页
第2页 / 共82页
系统级功耗模型研究.docx_第3页
第3页 / 共82页
系统级功耗模型研究.docx_第4页
第4页 / 共82页
系统级功耗模型研究.docx_第5页
第5页 / 共82页
系统级功耗模型研究.docx_第6页
第6页 / 共82页
系统级功耗模型研究.docx_第7页
第7页 / 共82页
系统级功耗模型研究.docx_第8页
第8页 / 共82页
系统级功耗模型研究.docx_第9页
第9页 / 共82页
系统级功耗模型研究.docx_第10页
第10页 / 共82页
系统级功耗模型研究.docx_第11页
第11页 / 共82页
系统级功耗模型研究.docx_第12页
第12页 / 共82页
系统级功耗模型研究.docx_第13页
第13页 / 共82页
系统级功耗模型研究.docx_第14页
第14页 / 共82页
系统级功耗模型研究.docx_第15页
第15页 / 共82页
系统级功耗模型研究.docx_第16页
第16页 / 共82页
系统级功耗模型研究.docx_第17页
第17页 / 共82页
系统级功耗模型研究.docx_第18页
第18页 / 共82页
系统级功耗模型研究.docx_第19页
第19页 / 共82页
系统级功耗模型研究.docx_第20页
第20页 / 共82页
亲,该文档总共82页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

系统级功耗模型研究.docx

《系统级功耗模型研究.docx》由会员分享,可在线阅读,更多相关《系统级功耗模型研究.docx(82页珍藏版)》请在冰点文库上搜索。

系统级功耗模型研究.docx

系统级功耗模型研究

摘要

随着嵌入式系统、便携式设备的大量涌现,功耗问题已越来越被人们所关注。

甚至在电路设计中成了主要的约束。

在自顶向下设计的每个层次上,设计者都需要经过一个功耗评估,优化调整的循环过程。

低层的(电路级,门级)功耗评估工具虽然有较高的精度,但是仿真速度太慢,不适合目前庞大复杂的系统。

因此需要一个快速,精确的功耗评估机制。

本文的研究背景是为面向低功耗的SoC系统设计中的体系结构优化和软件(编译器)优化提供支持。

从这个角度出发,本文提出了一种包含指令级功耗模型和部件级功耗模型在内的两层系统级功耗模型。

部件级功耗模型是系统级功耗模型的基础,它根据部件的结构信息,自底向上的计算各个部件的功耗。

存储系统的能耗分成两部分:

指令/数据cache和主存部分使用分析模型;指令/数据cache和数据通路间的总线使用翻转敏感模型。

对于数据通路中的部件采用周期精确的输入翻转敏感功耗模型。

并根据位操作,将部件分为位无关部件和位相关部件。

位无关功能部件的每个比特位的变化是独立的,不受其它比特位变化的影响,也不影响其它比特位的变化。

位相关功能部件的各个比特位的变化是相关联的,某个比特位的变化会影响其它比特位的操作或某个比特位的变化会受到其它比特位的影响。

根据两类部件结构的特点,采用不同的方法建立功耗模型。

指令级功耗模型包括指令的静态功耗和指令间的动态功耗。

每条指令的执行会涉及到数据通路上的一系列相关部件,并引起这些部件的开关活动。

不同的操作码和寻址方式以及地址和数据的编码方式,确定了每条指令的基本功耗。

在程序动态执行过程中,由于执行上下文的切换,会带来额外的附加功耗,这部分功耗称为动态功耗。

对指令功耗的分析,最终可转化为对周期功耗的分析。

本文提出的系统级两层功耗模型是周期精确的。

在微结构层结合了统计分析和翻转敏感两种模型,由于考虑了功耗中的数据依赖性,因此可以得到比较精确的、能用于指导体系结构层的优化的功耗评估结果。

同时在微结构层的基础上,本文建立了指令级功耗模型,可以有效的支持编译器的优化工作。

关键词:

功耗评估系统级功耗模型部件级功耗模型指令级功耗模型翻转敏感

 

*本文工作得到国家自然科学基金(No.60273042)项目和安徽省自然科学基金(No.03042101)项目的支持,在此表示感谢。

Abstract

Withtheemergenceofembeddedsystemsandportableapplications,powerconsumptionhasbecomeahotissue,whichconsideredamajordesignconstraint.Designersmustbeconcernedwithbothestimatingandoptimizingtheenergydissipationateverylevelofthetop-downdesignhierarchy.Powerestimationatthelowerlevelsishighaccurate,butdifficultandexpensivetothegrowingcomplexitysystem.Efficientandaccuratepowerestimationtechniquebecomesindispensable.

TosupportarchitecturalleveloptimizationandsoftwareoptimizationinlowpowerSoCarchitecturedesign,acycleaccuratesystemlevelpowermodelispurposed,whichconsistsofinstructionlevelmodelandmicroarchitecturemodel.

Themicroarchitecturemodelisthebaseofsystemlevelpowermodel.Thetechniqueproposedinthispaperisabottom-upapproachthatreliesonextractingapowermodelfromanexistingcircuitandutilizesthestructuralinformation.Storagesystemisdividedintoinstruction/datacacheandmemory,whicharemodeledwithanalyticalmethod,andbusesbetweeninstruction/datacacheanddatapath,whicharemodeledwithtransitionsensitivemethod.Accordingtooperationofbit,unitscanbedividedintobit-independentunitsandbit-dependentunits.Inabit-independentunit,theoperationinonebitslicedoesnotdependonandaffectthevaluesofotherbitslices.Contrarily,inabit-dependentunit,theoperationinonebitslicedependsonoraffectsotherbitslices.Thesetwoclassunitsaremodeledwithdifferentmethods.

Instructionlevelpowermodelconsistsofstaticenergycostanddynamicenergycost.Eachinstructionactivatessomeunits.Thestaticenergycostofaninstructionduetooperandandaddressvalues.Duringtheexecutionofaprogram,additionalenergycostsoccurduetocontextswitch,witchnameddynamicenergycost.Theanalysisofinstructionlevelpowercanbeconvertedtoanalyzecycle-accuratepower.

Thesystem-levelpowermodeliscycle-accurate,whichcombinesanalyticalmodelandtransition-sensitivemodel.Sinceourtechnologyinvolvesdatadependentonmicroarchitecture,itpossibletogetaccuratepowerestimation,whichcanbeusedinlowpowerarchitecturaloptimization.Thispaperalsoproposesaninstructionlevelmodelwhichsupportslowpowercompilingoptimization.

Keywords:

powerestimation,systemlevelpowermodel,functionlevelpowermodel,instructionlevelpowermodel,transition-sensitive

致谢

值此论文完成之际,首先要衷心感谢我的导师赵振西教授。

本论文的写作和修改过程都是赵老师的悉心指导下完成的,不论是对内容还是文字都经过了反复的斟酌和推敲,给予了我很多宝贵的指导意见并启发了我的思维。

赵老师严谨求实的治学风格对我的学习和工作产生了巨大的影响,将使我终身受益。

衷心的感谢李曦老师和周学海教授,他们作为项目组的负责人,对本文的选题和研究进行了悉心指导。

每当我在工作中遇到难题,他们总能给予关键性的帮助,这篇论文的完成与他们的指导和鼓励是分不开的。

感谢项目组的成员对我的支持,他们是雷霆,王爱峰,陈洵,简大圣等同学,本论文的完成也离不开他们辛勤劳动。

还要感谢信息处理实验室长期共同研究和工作的同学们,感谢罗塞,熊悦,胡潇,王志刚,杨军,王峰等同学的帮助与合作。

最后特别感谢我的家人对我的支持和鼓励,使我能顺利完成论文。

目录

摘要I

AbstractIII

致谢V

目录VI

第1章绪论1

1.1引言1

1.2数字系统的设计层次2

1.3数字系统的低功耗设计3

1.3.1硬件功耗优化设计4

1.3.2软件功耗优化设计5

1.4论文的主要工作与组织9

第2章功耗建模方法10

2.1CMOS电路功耗分析10

2.1.1动态功耗10

2.1.2静态功耗11

2.1.3CMOS电路的功耗11

2.2功耗的数据依赖性12

2.3体系结构级功耗模型分析13

2.3.1活动敏感功耗模型13

2.3.2翻转敏感功耗模型18

2.4小结21

第3章系统级功耗模型22

3.1DLX体系结构22

3.1.1指令格式22

3.1.2流水线结构23

3.1.3流水线冲突24

3.2两层功耗模型24

3.3部件级功耗模型25

3.3.1周期精确功耗模型26

3.3.2功能部件的分类29

3.4指令级功耗模型31

3.4.1指令的静态(基本)功耗32

3.4.2指令间动态功耗34

3.5小结36

第4章部件级功耗测试与分析37

4.1部件功耗建模过程37

4.2测试环境38

4.3部件功耗建模40

4.3.1算术运算部件40

4.3.2逻辑运算部件46

4.3.3阵列乘法器48

4.3.4多路选择器49

4.4小结51

第5章系统级功耗测试与分析52

5.1系统级功耗建模过程52

5.2测试环境52

5.3体系结构级功耗模型56

5.3.1IF阶段的功耗分析56

5.4指令级功耗建模58

5.4.1指令的静态功耗58

5.4.2指令的动态功耗60

5.5小结60

第6章总结61

6.1工作总结61

6.2今后的研究工作63

参考文献64

攻读硕士学位期间发表的有关论文68

第1章绪论

1.1引言

随着电子技术的快速发展,特别是大规模集成电路的产生,使现代科学研究得到了质的飞跃。

而嵌入式系统的出现则给现代工业控制领域带来了一次新的技术革命。

嵌入式系统带来的工业年产值已超过了1万亿美元,嵌入式计算机不仅在民用品上而且在军事装备上也得到了广泛地应用。

嵌入式系统被定义为:

以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统,对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及应用软件系统等组成。

嵌入式系统是将计算机技术、半导体技术、电子技术和各个行业的具体应用相结合后的产物。

而微电子科学和半导体工艺的进步,使得集成电路芯片的功能越来越强大,而尺寸越来越小。

在一个芯片上就可以实现一个完整的系统,即片上系统SoC(SystemonaChip)。

SoC技术的出现允许将处理器、存储器、ASIC和I/O接口甚至软硬IP核(IntellectualProperty)集成于一块芯片之中,为实现各种定制的嵌入式系统的设计开启了一条新的途径。

就半导体工业的自身发展来看,半导体器件加工特征工艺尺寸越来越小,芯片的集成度不断提高。

同时,系统的时钟频率也在不断提高。

目前Intel已推出了3.4GHz的Prescott处理器[1],采用了90nm工艺,使用的晶体管达到了125百万。

这这种发展情况下,功耗问题成为系统设计中关注的重点。

我们从以下几方面来分析低功耗设计技术的动因:

1.靠电池供电的便携式设备(如笔记本,PDA等)的使用依赖于电池的寿命。

它们的特殊使用用途决定了对产品的体积以及重量的要求。

在目前电池工业没有取得显著成效的时候,如何降低功耗,延长电池的使用时间就成了关键的技术问题。

2.在高集成度和高处理速度的要求下,高性能微处理器的时钟工作频率不断提高,这导致处理器功耗急剧增加。

功耗过大会带来芯片发热量过大的问题,这会影响系统的可靠性。

[2]指出,温度每升高10℃,器件的故障率就要提高2倍。

3.同时,功耗过大也会引出一系列的芯片封装问题,冷却问题和风扇等附属设备的需要。

因此需要降低功耗来减小由于采用复杂封装技术和散热系统而增加的费用,从而降低产品的成本。

4.从能源,环保的角度看,10%的电力消耗在桌面系统中(未包含嵌入式系统、打印机等),且增长迅速(USEPA)。

发展低功耗技术,由此带来的能源节省对人类的生态环境是很有裨益的。

1.2数字系统的设计层次

数字系统设计的抽象层次如图1.1所示[3],图中RTL级以下是微电子设计等学科领域研究的问题,而我们所关注的层次为RTL级以上的系统级,从计算机科学的角度被称为体系结构层(architecture),通常包括描述系统行为的指令级(InstructionSetsLevel)和描述系统组成结构的微结构级(Microarchitecture)。

由于嵌入式系统设计方法的特殊性,以及基于优化效率考虑,要求在SoC前期设计中,在系统级(体系结构层、微结构层)就进行系统的低功耗优化,以便降低设计成本,缩短产品上市时间。

图1.1数字系统的设计层次

1.3数字系统的低功耗设计

目前低功耗设计的研究的对象又可以分为硬件和软件两个方面。

而研究内容主要包括功耗评估和功耗优化。

从硬件设计角度考虑,功耗评估主要解决的问题是在设计的不同阶段对电路的功耗进行估计,从而确保在设计的各个阶段中电路的功耗都在设计要求之内;从软件的角度看,功耗评估主要的任务在于估计一段程序或者一条指令的功耗。

类似的,对硬件设计来说,功耗优化主要解决的问题是根据各个阶段功耗评估的结果,调整电路实现或结构,使得电路功耗得到优化并同时满足设计电路的其他约束;而软件的功耗优化是指在软件综合的不同层次对软件进行各种转化,降低功耗。

显然,功耗的优化调整需要以可靠的功耗评估结果为基础。

一个详细的描述系统能耗特征的功耗模型将作为系统功耗评估和指导优化变换的依据。

图1.2低功耗电路设计流程

1.3.1硬件功耗优化设计

从硬件设计方法学的角度看,从底向上可以分为电路(晶体管)级、门(逻辑)级、体系结构(RTL)级和行为级。

图1.2是典型的低功耗电路设计流程。

在各个层次上根据相应的功耗模型对电路的功耗进行估算与分析,根据估算结果,对电路进行面向功耗优化的调整。

电路级(晶体管级)电路级也可以称为晶体管级,这是最底层的功耗估算和分析。

它能考虑实际电路中许多寄生效应,因而估算精度很高。

但是由于受到处理能力的限制,往往需要很长的运行时间。

时间上的复杂性使得其只适用于较小的电路,面对目前日益复杂庞大的电路只能实现少量测试向量的模拟。

Avant!

公司的SPICE[4]是最常见的可用于晶体管级的功耗分析和优化工具。

此外还有Synopsys公司的PowerMill[5],Mentor公司的LsimPower[6]等。

门级(逻辑级)门级(逻辑级)功耗模型建立在组成门单元的晶体管电路之上。

通过低层次的功耗估算对各个电路单元进行特征提取后建立一个门级的功耗库,再对功耗进行估算。

在牺牲了部分的精度的条件下,门级估算速度比晶体管级要快许多,但还是属于低层的功耗评估。

比较成熟的门级功耗评估工具有Mentor公司的QuickPower[7],Synopsys的DesignPower[8]等。

体系结构级(RTL)虽然低层的功耗评估工具有较高的精确度,但是由于它们所需要的庞大的计算量,限制了它们的评估速度。

特别是当需评估的系统越来越复杂,对功耗评估提出了以下几个方面的要求:

快速,这样能在早期就能对设计空间进行探索;可重定向,可以对多个结构设计进行选择;可靠,结果要有一定的准确度。

因此就提出了高层功耗评估[48][49][52][56]的概念,它牺牲了部分精度,但大大加快了评估速度。

比较成熟的高层功耗评估主要集中在体系结构级或者说RTL(RegisterTransferLevel)级[50][51]上,这也是对评估精度和评估速度一个合理的权衡。

体系结构级上的设计对电路功耗有巨大的影响,在该级上提取出有效精确的功耗模型也变得重要。

利用体系结构级功耗模型可以在对系统作Verilog或VHDL等硬件语言描述阶段就可以进行功耗评估。

体系结构级功耗评估以牺牲少量的精度为代价换取了评估的速度和评估能力的极大提高。

Wattch[9],Cai-lim[10][11],SimplePower[12][13]是体系结构级评估工具典型的代表。

行为级行为级功耗评估希望通过对电路功能或时序行为进行分析,来获得整个电路功耗的评估结果。

这方面的研究还比较少,还没有比较成熟的工具或模型。

总的来说,功耗模型所考虑的层次越低,其精度越高,但模拟运行所需的开销就越大。

越往高层,分析速度更快,低功耗设计的空间也更大。

根据[14],晶体管级的节能潜力为3~5%,门级的优化潜力为2~15%,而RTL级则为20~50%。

另外,软件优化降耗更会有数量级的贡献[15]。

图1.3各级功耗模型比较

1.3.2软件功耗优化设计

随着软件日益成为嵌入式系统设计中的重点,软件功耗研究也成为热点。

为实现同一任务,设计上不同的软件所消耗的能量有显著的差异。

Simunic等人的研究实验结果[16][17]表明,对软件进行源代码级的全局优化,系统最高可节能90%;Kandemir等人的研究实验结果[18]表明,对目标代码进行能耗优化设计可节能25%以上。

这些研究实验结果表明软件功耗优化设计有着巨大的节能潜力。

虽然可以利用硬件的功耗评估方法对软件执行时的能耗进行评估,但是需要先搭建电路级或体系结构级的框架,才能运行软件进行运行分析,无法满足快速评估和分析软件能耗的要求。

同时软件功耗优化工具也需要快速评价软件功耗优化效果,因此用硬件级功耗模型来评估软件功耗就显得不是很合适了。

为了在设计前期阶段就能进行快速准确的功耗估算,就需要在更高的抽象层次上进行功耗的评估。

因此提出了软件级功耗模型的概念。

软件能耗模型有效地抽象了大多数硬件细节,能够快速评估软件能耗,为软件能耗优化提供了有效的指导。

由于指令是软件的基本元素,它可以看成是一个由几个相互联系的功能块组成的复杂系统的简单接口,因此以指令为单位建立一个系统的软件级功耗模型是很直观的想法。

目前对软件功耗的研究主要可以分成以下三类。

a)物理测量方法

指令级功耗模型的概念最早是由Tiwari[19][20]提出的。

他认为每条指令包含了对处理器中多个部件的特定操作。

这些电路的活动会产生电流,消耗了能量,且不同指令电流也不同。

假定运行某个程序微处理器平均功耗P为:

(1-1)

在这里,I是平均电流,VCC是电压。

以T表示程序的执行时间的话,程序的能耗E为:

(1-2)

而T又通常可以表示成:

(1-3)

N表示执行该程序的时钟周期数,r是时钟频率。

一般认为电压保持不变,因此只需测量出执行时处理器的平均电流,便可以计算出软件所消耗功耗和能耗。

他们通过直接测量目标处理器执行指令时的平均电流的方法建立了基本的软件功耗模型。

测量平均功耗和执行时间可以得到能耗。

通过执行一个无限循环的指令序列可以得到稳态平均电流。

循环体内指令重复的次数要足够多,以消除循环结束时无条件跳转等指令的影响。

Tiwari将指令级功耗分为两部分,一部分是每条指令的基本功耗,另一部分是各指令对之间的指令间功耗。

基本功耗为其执行时相关数据通路上各个功能部件的功耗之和。

指令间功耗由程序执行时指令对的相互影响造成,是与电路状态变化有关的附加运行开销,包括流水线停顿、Cache状态以及访存操作的影响。

一段程序就可以通过被执行的每条指令的基本功耗及每个指令对的指令间功耗来评估该段程序的功耗。

这种通过物理平台进行测量而得到软件能耗,优点是显而易见的,得到能耗模型接近于处理器的实际能耗,有很高的精度。

但是对于在设计早期,还没有搭建物理平台的时候,无法进行直接的测量。

b)仿真分析方法

在没有物理平台的情况下,用模拟器仿真来评估软件的能耗是一种可能方法。

微处理器的能耗依赖于处理器的内部组织与实现。

通过仿真目标处理器计算各个模块的功耗,系统的软件功耗由这些模块的能耗综合得到。

类似于硬件级的功耗分析,可以在不同层次上进行功能仿真,

Mehta[21]提出的功耗分析器记录功能部件的前期和当前状态,以及相关的开关电容,再计算系统的功耗。

Chen[22]对此进行了扩展,基于所模拟的目标处理器体系结构特征的层次分解而估算周期级能耗。

上述方法针对特定的目标体系结构,而Klass[23]使用门级分析工具分析了顺序执行指令流的影响,他们通过观察在执行NOP指令之后执行各条指令的方法来确定指令间的能耗。

c)统计计算方法

前面提到的测量以及仿真的方法得到的指令模型基本上都是指令平均功耗模型。

这种模型掩盖了复杂的系统要素间的相互作用行为。

对CISC处理器,由于大量使用Cache和微码ROM,这部分的功耗占平均功耗的主要部分,指令功耗的变化很小,使用指令平均功耗模型就比较合适;而在RISC和VLIW体系结构中,大部分功耗消耗在执行指令功能的部件上,指令功耗的变化范围相对的比较大,指令间功耗影响就更为显著,需要更为细致的功耗模型。

Brandolese[24]把每条指令的操作分解并对应成几个功能单位,然后把总能耗定义成这些功能单位的线性组合。

这些功能单位分布在不同的操作周期或处于不同的电路模块,是能耗意义上的独立单位,共有五个:

取指/译码功能单位(F&D),跳转功能单位(BR),算术/逻辑运算功能单位(WRREG),写寄存器功能单位(A&L),读/写存储器功能单位(LD&ST)。

如表1.1,每条指令可以对应到几个特定的功能单位。

假设每种功能单位都消耗固定的能量,则指令s消耗的能量es为:

(1-4)

其中es,j为执行指令s时第j个功能单位的能耗;k为考虑的功能单位数目;Vdd为供电电压;is为执行指令s时的电流;nck,s为指令s执行所需的指令周期数;为时钟周期步长;ifj为指令s执行时第j个功能单位的电流;as,j为指令s对于第j个功能单位能耗的统计常数;rs为余数因子。

表1.1指令和功能单位对应关系

Instruction

F&D

BR

WRREG

A&L

LD&ST

ADDDX,BX

1

0

1

1

0

CMP[BX],DX

1

0

0

1

1

JMPlab

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2