CN102221988A - 一种快速的指令级处理器能耗估算方法 - Google Patents

一种快速的指令级处理器能耗估算方法 Download PDF

Info

Publication number
CN102221988A
CN102221988A CN2011101333889A CN201110133388A CN102221988A CN 102221988 A CN102221988 A CN 102221988A CN 2011101333889 A CN2011101333889 A CN 2011101333889A CN 201110133388 A CN201110133388 A CN 201110133388A CN 102221988 A CN102221988 A CN 102221988A
Authority
CN
China
Prior art keywords
energy consumption
instruction
program
processor
dmiss
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.)
Granted
Application number
CN2011101333889A
Other languages
English (en)
Other versions
CN102221988B (zh
Inventor
赵霞
郭耀
陈向群
于重重
谭励
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Peking University
Beijing Technology and Business University
Original Assignee
Peking University
Beijing Technology and Business University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Peking University, Beijing Technology and Business University filed Critical Peking University
Priority to CN 201110133388 priority Critical patent/CN102221988B/zh
Publication of CN102221988A publication Critical patent/CN102221988A/zh
Application granted granted Critical
Publication of CN102221988B publication Critical patent/CN102221988B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种快速的指令级处理器能耗估算方法,属于嵌入式系统软件能耗优化设计领域。本发明的方法包括:定义程序运行过程中所对应的处理器能耗,包括指令在数据通路上的基本能耗和指令间相互影响造成的能耗,后者包括各种流水线停顿、Cache访问及访存操作的能耗;利用体系结构级能耗模拟器模拟软件能耗的结果,统计分析方法获得参数的值;在指令级模拟器上,模拟执行程序,统计程序的指令条数Ni;模拟Cache访问过程,统计程序执行过程中的Cache操作次数;在程序执行结束后,利用统计获得的系数和参数计算该程序在处理器上的能耗。本发明在保持体系结构级能耗模拟方法具有的较高精度基础上,显著加快了软件能耗的估算速度,具有良好的可用性。

Description

一种快速的指令级处理器能耗估算方法
技术领域
本发明属于嵌入式系统软件能耗优化设计领域,具体涉及一种快速的指令级处理器能耗估算方法。
背景技术
降低能耗已经成为嵌入式系统设计面临的重要问题之一,人们不仅关注如何降低这些系统的能耗,更需要评估这些系统中各类软件成分对系统能耗的影响,考察各层软件执行过程中涉及到的硬件部件的能耗。当前,对于嵌入式处理器的能耗估算技术发展迅速,能够通过模拟指令在微体系结构部件上执行的过程,估算包括操作系统和应用程序在内的软件系统的能耗,并获得足够精确的估算结果。存在的主要问题是处理器能耗估算速度慢(一条指令的行为大约用5000条指令模拟),模拟框架结构复杂。因此,需要新的处理器能耗估算模型和方法,在保持原有处理器能耗估算准确度的情况下,提高估算速度,简化估算框架结构,从而满足更复杂系统(如虚拟机系统)的全系统能耗估算、对操作系统、中间件、应用软件的能耗评估、优化的需求,更好地服务于低能耗嵌入式系统软件开发。
发明内容
本发明目的在于提出一种快速的指令级处理器能耗估算方法,可以根据软件动态运行过程中的指令、Cache访问、内存及外围部件访问特征,快速地估算软件运行时的处理器能耗。
本发明所述的快速指令级处理器能耗估算方法如下(流程如附图所示):
A.定义程序在处理器上运行过程中所对应的处理器能耗,是该程序的指令执行涉及到的数据通路上的相关部件能耗之和,包括指令在数据通路上的基本能耗和指令间相互影响造成的能耗,后者包括各种流水线停顿、Cache访问及访存操作的能耗。用公式表示为:
E prog = Σ i ∈ { ISet } [ N i * E i ] + E cache - - - ( 1 )
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
B3.对每个测试程序Pj,计算该程序的{Ei、EIMiss、EDMiss、EIHit、EDHit}Pj,计算公式为:
Figure BDA0000062950780000021
Figure BDA0000062950780000022
Figure BDA0000062950780000025
B4.计算所有测试程序的{Ei、EIMiss、EDMiss、EIHit、EDHit}Pj的平均值,作为本发明的能耗参数,计算公式为:
Figure BDA0000062950780000031
Figure BDA0000062950780000032
Figure BDA0000062950780000033
Figure BDA0000062950780000034
Figure BDA0000062950780000035
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、NDM、NIH、NDH
E.利用步骤B获得的能耗参数Ei、EIMiss、EDMiss、EIHit、EDHit,在程序执行的过程中或结束之后,利用步骤C、D获得的Ni、NIM、NDM、NIH、NDH,根据步骤A所述定义计算该程序在处理器上的能耗。
2.如权利要求1所述的方法,其特征在于,所述步骤B的实现方法为:
B1.在体系结构级能耗模拟器上模拟执行若干测试程序{P1,P2,...,PN},统计每个程序执行过程中的Ni、NIM、NDM、NIH、NDH;;
B2.当测试程序在处理器上执行时,分别累计每类指令在流水线上执行的基本能耗总和、ICacheHit、ICacheMiss、DCacheHit、DCacheMiss操作的总能耗,分别记做ei、eIHit、eIMiss、eDHit、eDMiss
B3.对每个测试程序Pj,计算该程序的{Ei、EIMiss、EDMiss、EIHit、EDHit}Pj,计算公式为: 
Figure FDA0000062950770000021
Figure FDA0000062950770000022
Figure FDA0000062950770000023
Figure FDA0000062950770000024
B4.计算所有测试程序的{Ei、EIMiss、EDMiss、EIHit、EDHit}Pj的平均值,作为能耗参数,计算公式为: 
Figure FDA0000062950770000026
Figure FDA0000062950770000027
Figure FDA0000062950770000028
Figure FDA0000062950770000029
Figure FDA00000629507700000210
3.如权利要求1所述的方法,其特征在于,所述步骤C的实现步骤为:
C1.取指,根据程序计数器的值获取下一条指令;
C2.解码,对指令进行解码,获得指令的类型i;
C3.执行,模拟执行指令的功能,修改指令计数器的值,指向下一条要执行的指令;
C4.获取当前运行进程的进程ID;
C5.把当前进程ID的当前指令类型i对应的Ni加1。
CN 201110133388 2011-05-23 2011-05-23 一种快速的指令级处理器能耗估算方法 Expired - Fee Related CN102221988B (zh)

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 true CN102221988A (zh) 2011-10-19
CN102221988B 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)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016197853A1 (zh) * 2015-06-09 2016-12-15 阿里巴巴集团控股有限公司 一种基于复杂度的业务处理方法和装置
US9575867B2 (en) 2014-10-21 2017-02-21 International Business Machines Corporation Processor stressmarks generation
CN109643114A (zh) * 2016-09-20 2019-04-16 株式会社东芝 传感器诊断装置、传感器诊断方法及程序
US10599432B2 (en) 2014-10-21 2020-03-24 International Business Machines Corporation Computer system performance analyzer

Citations (5)

* Cited by examiner, † Cited by third party
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 北京大学 基于模拟器的嵌入式软件运行时能耗估算方法
US20100235159A1 (en) * 2009-03-12 2010-09-16 Freescale Semiconductor, Inc. Power estimation method and device therefor
CN101882103A (zh) * 2010-07-09 2010-11-10 四川大学 一种嵌入式设备i/o接口的软件能耗统计方法
CN101894067A (zh) * 2010-06-04 2010-11-24 四川大学 一种基于arm处理器的嵌入式软件能耗统计模型

Patent Citations (5)

* Cited by examiner, † Cited by third party
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 北京大学 基于模拟器的嵌入式软件运行时能耗估算方法
US20100235159A1 (en) * 2009-03-12 2010-09-16 Freescale Semiconductor, Inc. Power estimation method and device therefor
CN101894067A (zh) * 2010-06-04 2010-11-24 四川大学 一种基于arm处理器的嵌入式软件能耗统计模型
CN101882103A (zh) * 2010-07-09 2010-11-10 四川大学 一种嵌入式设备i/o接口的软件能耗统计方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9575867B2 (en) 2014-10-21 2017-02-21 International Business Machines Corporation Processor stressmarks generation
US10599432B2 (en) 2014-10-21 2020-03-24 International Business Machines Corporation Computer system performance analyzer
WO2016197853A1 (zh) * 2015-06-09 2016-12-15 阿里巴巴集团控股有限公司 一种基于复杂度的业务处理方法和装置
CN109643114A (zh) * 2016-09-20 2019-04-16 株式会社东芝 传感器诊断装置、传感器诊断方法及程序

Also Published As

Publication number Publication date
CN102221988B (zh) 2013-10-30

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
WO2019170094A1 (zh) 动态功耗估计方法、装置及系统
US7844928B2 (en) Method and apparatus for evaluating integrated circuit design performance using enhanced basic block vectors that include data dependent information
US20090199138A1 (en) Method and Apparatus for Evaluating Integrated Circuit Design Model Performance Using Basic Block Vectors and Fly-By Vectors Including Microarchitecture Dependent Information
CN102314522B (zh) 一种模拟集成电路设计优化方法
TW201128534A (en) Method and system for generating software transaction-level modeling (TLM) model
CN102221988B (zh) 一种快速的指令级处理器能耗估算方法
US10146895B2 (en) Method and apparatus for simulating a digital circuit
US20060168456A1 (en) Method and apparatus to generate circuit energy models with multiple clock gating inputs
CN104541173B (zh) 用于对集成电路的功率消耗建模的方法和装置
US9195788B2 (en) Resource-oriented method of power analysis for embedded system
US8160861B2 (en) System and method for modelling a hardware component of a data processing apparatus
US8340952B2 (en) Power estimation method and device therefor
Stralen et al. A high-level microprocessor power modeling technique based on event signatures
Chandoke et al. A novel approach to estimate power consumption using SystemC transaction level modelling
Nilakantan et al. Metrics for early-stage modeling of many-accelerator architectures
JP5454349B2 (ja) 性能推定装置
Lemma et al. Power intent from initial ESL prototypes: Extracting power management parameters
Hesselbarth et al. Hardware-assisted power estimation for design-stage processors using FPGA emulation
Lee et al. An energy characterization framework for software-based embedded systems
US20030110020A1 (en) Power modeling methodology for a pipelined processor
Darwish et al. Transaction level power modeling (TLPM) methodology
CN103793339A (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

Granted publication date: 20131030

Termination date: 20160523

CF01 Termination of patent right due to non-payment of annual fee