CN102221988B - 一种快速的指令级处理器能耗估算方法 - Google Patents
一种快速的指令级处理器能耗估算方法 Download PDFInfo
- Publication number
- CN102221988B CN102221988B CN 201110133388 CN201110133388A CN102221988B CN 102221988 B CN102221988 B CN 102221988B CN 201110133388 CN201110133388 CN 201110133388 CN 201110133388 A CN201110133388 A CN 201110133388A CN 102221988 B CN102221988 B CN 102221988B
- Authority
- CN
- China
- Prior art keywords
- energy consumption
- instruction
- dmiss
- dhit
- ihit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000005265 energy consumption Methods 0.000 title claims abstract description 77
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000007619 statistical method Methods 0.000 claims abstract 2
- 238000004088 simulation Methods 0.000 claims description 12
- 238000010998 test method Methods 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 claims description 2
- ALSKYCOJJPXPFS-BBRMVZONSA-N dihydro-beta-erythroidine Chemical compound C([C@@H](C[C@@]123)OC)C=C1CCN2CCC1=C3CC(=O)OC1 ALSKYCOJJPXPFS-BBRMVZONSA-N 0.000 claims 1
- 238000005457 optimization Methods 0.000 abstract description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000008034 disappearance Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种快速的指令级处理器能耗估算方法,属于嵌入式系统软件能耗优化设计领域。本发明的方法包括:定义程序运行过程中所对应的处理器能耗,包括指令在数据通路上的基本能耗和指令间相互影响造成的能耗,后者包括各种流水线停顿、Cache访问及访存操作的能耗;利用体系结构级能耗模拟器模拟软件能耗的结果,统计分析方法获得参数的值;在指令级模拟器上,模拟执行程序,统计程序的指令条数Ni;模拟Cache访问过程,统计程序执行过程中的Cache操作次数;在程序执行结束后,利用统计获得的系数和参数计算该程序在处理器上的能耗。本发明在保持体系结构级能耗模拟方法具有的较高精度基础上,显著加快了软件能耗的估算速度,具有良好的可用性。
Description
技术领域
本发明属于嵌入式系统软件能耗优化设计领域,具体涉及一种快速的指令级处理器能耗估算方法。
背景技术
降低能耗已经成为嵌入式系统设计面临的重要问题之一,人们不仅关注如何降低这些系统的能耗,更需要评估这些系统中各类软件成分对系统能耗的影响,考察各层软件执行过程中涉及到的硬件部件的能耗。当前,对于嵌入式处理器的能耗估算技术发展迅速,能够通过模拟指令在微体系结构部件上执行的过程,估算包括操作系统和应用程序在内的软件系统的能耗,并获得足够精确的估算结果。存在的主要问题是处理器能耗估算速度慢(一条指令的行为大约用5000条指令模拟),模拟框架结构复杂。因此,需要新的处理器能耗估算模型和方法,在保持原有处理器能耗估算准确度的情况下,提高估算速度,简化估算框架结构,从而满足更复杂系统(如虚拟机系统)的全系统能耗估算、对操作系统、中间件、应用软件的能耗评估、优化的需求,更好地服务于低能耗嵌入式系统软件开发。
发明内容
本发明目的在于提出一种快速的指令级处理器能耗估算方法,可以根据软件动态运行过程中的指令、Cache访问、内存及外围部件访问特征,快速地估算软件运行时的处理器能耗。
本发明所述的快速指令级处理器能耗估算方法如下(流程如附图所示):
A.定义程序在处理器上运行过程中所对应的处理器能耗,是该程序的指令执行涉及到的数据通路上的相关部件能耗之和,包括指令在数据通路上的基本能耗和指令间相互影响造成的能耗,后者包括各种流水线停顿、Cache访问及访存操作的能耗。用公式表示为:
Ecache=NIM*EIMiss+NDM*EDMiss+NIH*EIHit+NDH*EDHit
其中Ni、NIM、NDM、NIH、NDH是系数,,在模拟执行软件的过程中统计获得,其含义分别为:
-Ni表示执行的指令条数;
-NIM表示发生指令Cache缺失(记为ICacheMiss)的次数;
-NDM表示发生数据Cache缺失(记为DCacheMiss)的次数;
-NIH表示发生指令Cache命中(记为ICacheHit)的次数;
-NDH表示发生数据Cache命中(记为DCacheHit)的次数。
Ei、EIMiss、EDMiss、EIHit、EDHit是能耗参数,其含义分别是:
1.Ei表示指令在五段流水线上访问不同的计算部件和逻辑部件的基本能耗,因指令而异;
2.EIHit表示单次ICacheHit能耗,是读写ICache的能耗;
3.EIMiss表示单次ICacheMiss能耗,是通过内部总线读写下一级Cache或者内存时在内部总线上的指令传输能耗;
4.EDHit表示单次DCacheHit能耗,是读写DCache的能耗;
5.EDMiss表示单次DCacheMiss能耗,是通过内部总线读写下一级Cache或者内存时在内部总线上的数据传输能耗;
B.利用体系结构级能耗模拟器模拟软件能耗的结果,统计分析获得能耗参数Ei、EIMiss、EDMiss、EIHit、EDHit的值,实现方法如下:
B1.在体系结构级能耗模拟器上模拟执行若干测试程序{P1,P2,...,PN},统计每个程序执行过程中的Ni、NIM、NDM、NIH、NDH;
B2.当测试程序在处理器上执行时,分别累计每类指令在流水线上执行的基本能耗总和、ICacheHit、ICacheMiss、DCacheHit、DCacheMiss操作的总能耗,分别记做ei、eIHit、eIMiss、eDHit、eDMiss;
C.在指令级模拟器上,模拟执行程序,统计程序的指令条数Ni,实现方法如下:
1.取指,根据程序计数器的值获取下一条指令;
2.解码,对指令进行解码,获得指令的类型i;
3.执行,模拟执行指令的功能,修改指令计数器的值,指向下一条要执行的指令;
4.获取当前运行进程的进程ID;
5.把当前进程ID的当前指令类型i对应的Ni加1;
D.在指令级模拟器上,模拟Cache访问过程,统计程序执行过程中发生ICacheMiss、DCacheMiss、ICacheHit、DCacheHit的次数NIM、NDM、NIH、NDH;
E.利用步骤D获得的能耗参数Ei、EIMiss、EDMiss、EIHit、EDHit,在程序执行结束之后,利用统计获得的Ni、NIM、NDM、NIH、NDH,根据步骤A所述的公式计算该程序在处理器上的能耗。
本发明的有益效果:本发明提出的快速的指令级处理器能耗模型及估算方法,在保持体系结构级能耗模拟方法具有的较高精度基础上,显著加快了软件能耗的估算速度,具有良好的可用性。
附图说明
附图本发明的方法流程图;
具体实施方式
下面通过实例对本发明做进一步说明。需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附权利要求的精神和范围内,各种替换和修改都是可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。
实施例:估算一个应用程序Merge-sort在StrongARM处理器上的能耗
本实施例以改进的开源指令级全系统模拟器Ex-Skyeye为基础实现了一个面向StrongARM的处理器能耗估算过程,估算应用程序Merge-sort执行时在处理器上的能耗。
本实施例包括以下操作:1)运行4个测试程序,获得处理器能耗参数;2)在Ex-Skyeye上模拟执行程序,统计执行过程中的Ni计数;3)在Ex-Skyeye上,统计程序执行过程中发生ICacheMiss、DCacheMiss、ICacheHit、DCacheHit的次数NIM、NDM、NIH、NDH;4)计算程序执行过程中在处理器上的能耗。具体步骤如下:
1.运行4个测试程序,获得处理器能耗参数
表1部分指令的基本能耗参数Ei
Instructions | ACM1239 | ACM1003 | bubblesort | ACM2336 | Average | STDEV |
tst%c | 0.018195 | 0.018387 | 0.018003 | 0.017747 | 0.018 | 0.05% |
stp%c | 0.02947 | 0.028748 | 0.028661 | 0.028839 | 0.029 | 0.08% |
swi%c | 0.020028 | 0.02099 | 0.022912 | 0.018359 | 0.020 | 0.18% |
teq%c | 0.018988 | 0.018209 | 0.018722 | 0.019032 | 0.019 | 0.03% |
tst%cs | 0.018313 | 0.018195 | 0.018059 | 0.018287 | 0.018 | 0.13% |
eor%cs | 0.017461 | 0.020344 | 0.017461 | 0.020344 | 0.018 | 0.13% |
ldp%ch | 0.018292 | 0.018639 | 0.018922 | 0.018679 | 0.019 | 0.04% |
eor%c | 0.01932 | 0.019327 | 0.017958 | 0.018992 | 0.019 | 0.06% |
add%c | 0.016967 | 0.016268 | 0.020542 | 0.022071 | 0.020 | 0.21% |
orr%c | 0.020395 | 0.01996 | 0.019738 | 0.022068 | 0.020 | 0.07% |
cmp%c | 0.019631 | 0.017545 | 0.01987 | 0.017302 | 0.018 | 0.10% |
表2四种Cache操作的能耗、平均值及标准方差
EDHit | EDMiss | EIHit | EIMiss | |
ACM1003 | 0.299 | 0.618 | 0.295 | 0.002 |
ACM1239 | 0.299 | 0.504 | 0.295 | 0.002 |
ACM2336 | 0.299 | 0.514 | 0.295 | 0.002 |
bubblesort | 0.299 | 0.414 | 0.295 | 0.002 |
Average | 0.299 | 0.54 | 0.295 | 0.002 |
STDEV | 0.00% | 5.95% | 0.00% | 0.02% |
根据表1和表2的结果,可知,选用的能耗参数为:
Ei=0.299,EIHit=0.295,EDHit=0.299,EIMiss=0.002,EDMiss=0.54
2.在Ex-Skyeye上模拟执行程序,统计执行过程中的Ni、NIM、NDM、NIH、NDH计数:
a)Ex-Skyeye模拟执行Merge-sort程序;
b)统计该程序执行过程中执行的指令数总数为24,645,359;
3.在Ex-Skyeye上,统计执行过程中发生ICacheMiss、DCacheMiss、ICacheHit、DCacheHit的次数NIM、NDM、NIH、NDH计数,分别为:
NIM=79,188,NDM=20,975,NIH=25,482,636,NDH=2,218,095;
4.计算程序执行过程中在处理器上的能耗,得到的结果Eprog=8,557,567。
与利用体系结构级能耗模拟器估算出来的结果Eprog=8,270,499相比,误差为3%,模拟及估算时间是体系结构级能耗模拟器的20%。
Claims (3)
1.一种快速的指令级处理器能耗估算方法,其特征在于,包含以下步骤:
A.定义程序运行过程中所对应的处理器能耗,是程序的指令执行涉及到的数据通路上的相关部件能耗之和,包括指令在数据通路上的基本能耗和指令间相互影响造成的能耗,后者包括各种流水线停顿、Cache访问及访存操作的能耗,公式表示为:
Ecache=NIM*EIMiss+NDM*EDMiss+NIH*EIHit+NDH*EDHit
其中Ni、NIM、NDM、NIH、NDH是系数,在模拟执行软件的过程中统计获得,其含义分别为:
-Ni表示执行的指令条数;
-NIM表示发生ICacheMiss的次数;
-NDM表示发生DCacheMiss的次数;
-NIH表示发生ICacheHit的次数;
-NDH表示发生DCacheHit的次数;
Ei、EIMiss、EDMIss、EIHit、EDHit是能耗参数,其含义分别是:
-Ei表示指令在五段流水线上访问不同的计算部件和逻辑部件的基本能耗,因指令而异;
-EIHit表示单次ICacheHit能耗,是读写ICache的能耗;
-EIMiss表示单次ICacheMiss能耗,是通过内部总线读写下一级Cache或者内存时在内部总线上的指令传输能耗;
-EDHit表示单次DCacheHit能耗,是读写DCache的能耗;
-EDMiss表示单次DCacheMiss能耗,是通过内部总线读写下一级Cache或者内存时在内部总线上的数据传输能耗;
B.利用体系结构级能耗模拟器模拟软件能耗的结果,统计分析方法获得能耗参数Ei、EIMiss、EDMiss、EIHit、EDHit的值;
C.在指令级模拟器上,模拟执行程序,统计程序的指令条数Ni;
D.在指令级模拟器上,模拟Cache访问过程,统计程序执行过程中发生ICacheMiss、DCacheMiss、ICacheHit、DCacheHit的次数NIM、NDMNIH、NDH;
E.利用步骤B获得的能耗参数Ei、EIMss、EDMiss、EIHit、EDHit,在程序执行的过程中或结束之后,利用步骤C、D获得的Ni、NIM、NDM、NIH、NDH,根据步骤A所述定义计算该程序在处理器上的能耗。
2.如权利要求1所述的方法,其特征在于,所述步骤B的实现方法为:
B1.在体系结构级能耗模拟器上模拟执行若干测试程序{P1,P2,...,PN},统计每个程序执行过程中的Ni、NIM、NDMNIH、NDH;
B2.当测试程序在处理器上执行时,分别累计每类指令在流水线上执行的基本能耗总和、ICacheHit、ICacheMiss、DCacheHit、DCacheMiss操作的总能耗,分别记做ei、eIHit、eIMiss、eDHit、eDMiss;
B4.计算所有测试程序的{Ei、EIMiss、EDMiss、EIHit、EDHit}Pj的平均值,作为能耗参数,计算公式为:
3.如权利要求1所述的方法,其特征在于,所述步骤C的实现步骤为:
C1.取指,根据程序计数器的值获取下一条指令;
C2.解码,对指令进行解码,获得指令的类型i;
C3.执行,模拟执行指令的功能,修改指令计数器的值,指向下一条要执行的指令;
C4.获取当前运行进程的进程ID;
C5.把当前进程ID的当前指令类型i对应的Ni加1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110133388 CN102221988B (zh) | 2011-05-23 | 2011-05-23 | 一种快速的指令级处理器能耗估算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110133388 CN102221988B (zh) | 2011-05-23 | 2011-05-23 | 一种快速的指令级处理器能耗估算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102221988A CN102221988A (zh) | 2011-10-19 |
CN102221988B true CN102221988B (zh) | 2013-10-30 |
Family
ID=44778549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110133388 Expired - Fee Related CN102221988B (zh) | 2011-05-23 | 2011-05-23 | 一种快速的指令级处理器能耗估算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102221988B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9575867B2 (en) | 2014-10-21 | 2017-02-21 | International Business Machines Corporation | Processor stressmarks generation |
US9588863B2 (en) | 2014-10-21 | 2017-03-07 | International Business Machines Corporation | Generation and application of stressmarks in a computer system |
CN106293890B (zh) * | 2015-06-09 | 2019-11-05 | 阿里巴巴集团控股有限公司 | 一种基于复杂度的业务处理方法和装置 |
JP2018049316A (ja) * | 2016-09-20 | 2018-03-29 | 株式会社東芝 | センサ診断装置、センサ診断方法、およびプログラム |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6096089A (en) * | 1997-01-08 | 2000-08-01 | Kabushiki Kaisha Toshiba | Power simulation system, power simulation method and computer-readable recording medium for recording power simulation program |
CN1766848A (zh) * | 2005-11-08 | 2006-05-03 | 北京大学 | 基于模拟器的嵌入式软件运行时能耗估算方法 |
CN101882103A (zh) * | 2010-07-09 | 2010-11-10 | 四川大学 | 一种嵌入式设备i/o接口的软件能耗统计方法 |
CN101894067A (zh) * | 2010-06-04 | 2010-11-24 | 四川大学 | 一种基于arm处理器的嵌入式软件能耗统计模型 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8340952B2 (en) * | 2009-03-12 | 2012-12-25 | Freescale Semiconductor, Inc. | Power estimation method and device therefor |
-
2011
- 2011-05-23 CN CN 201110133388 patent/CN102221988B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6096089A (en) * | 1997-01-08 | 2000-08-01 | Kabushiki Kaisha Toshiba | Power simulation system, power simulation method and computer-readable recording medium for recording power simulation program |
CN1766848A (zh) * | 2005-11-08 | 2006-05-03 | 北京大学 | 基于模拟器的嵌入式软件运行时能耗估算方法 |
CN101894067A (zh) * | 2010-06-04 | 2010-11-24 | 四川大学 | 一种基于arm处理器的嵌入式软件能耗统计模型 |
CN101882103A (zh) * | 2010-07-09 | 2010-11-10 | 四川大学 | 一种嵌入式设备i/o接口的软件能耗统计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102221988A (zh) | 2011-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Bazzaz et al. | An accurate instruction-level energy estimation model and tool for embedded systems | |
US7765500B2 (en) | Automated generation of theoretical performance analysis based upon workload and design configuration | |
US7904870B2 (en) | Method and apparatus for integrated circuit design model performance evaluation using basic block vector clustering and fly-by vector clustering | |
US20090199138A1 (en) | Method and Apparatus for Evaluating Integrated Circuit Design Model Performance Using Basic Block Vectors and Fly-By Vectors Including Microarchitecture Dependent Information | |
US7844928B2 (en) | Method and apparatus for evaluating integrated circuit design performance using enhanced basic block vectors that include data dependent information | |
US8010334B2 (en) | Method and apparatus for evaluating integrated circuit design performance using basic block vectors, cycles per instruction (CPI) information and microarchitecture dependent information | |
WO2019170094A1 (zh) | 动态功耗估计方法、装置及系统 | |
CN102314522B (zh) | 一种模拟集成电路设计优化方法 | |
CN102221988B (zh) | 一种快速的指令级处理器能耗估算方法 | |
US9195788B2 (en) | Resource-oriented method of power analysis for embedded system | |
US10146895B2 (en) | Method and apparatus for simulating a digital circuit | |
US20110016455A1 (en) | Power Profiling for Embedded System Design | |
US11734480B2 (en) | Performance modeling and analysis of microprocessors using dependency graphs | |
US20170344091A1 (en) | Processor power estimation | |
US8160861B2 (en) | System and method for modelling a hardware component of a data processing apparatus | |
JP4001584B2 (ja) | シミュレーション装置 | |
US8340952B2 (en) | Power estimation method and device therefor | |
Chandoke et al. | A novel approach to estimate power consumption using SystemC transaction level modelling | |
Lemma et al. | Power intent from initial ESL prototypes: Extracting power management parameters | |
Nilakantan et al. | Metrics for early-stage modeling of many-accelerator architectures | |
JP5454349B2 (ja) | 性能推定装置 | |
Hesselbarth et al. | Hardware-assisted power estimation for design-stage processors using FPGA emulation | |
Ye et al. | On the premises and prospects of timing speculation | |
Lee et al. | An energy characterization framework for software-based embedded systems | |
CN103793339B (zh) | 基于内存访问堆栈距离的数据Cache性能探索方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20131030 Termination date: 20160523 |