首页> 中国专利> 一种快速的指令级处理器能耗估算方法

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

摘要

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

著录项

  • 公开/公告号CN102221988A

    专利类型发明专利

  • 公开/公告日2011-10-19

    原文格式PDF

  • 申请/专利权人 北京工商大学;北京大学;

    申请/专利号CN201110133388.9

  • 发明设计人 赵霞;郭耀;陈向群;于重重;谭励;

    申请日2011-05-23

  • 分类号G06F9/30(20060101);

  • 代理机构北京万象新悦知识产权代理事务所(普通合伙);

  • 代理人贾晓玲

  • 地址 100048 北京市海淀区阜成路33号

  • 入库时间 2023-12-18 03:34:35

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-07-14

    未缴年费专利权终止 IPC(主分类):G06F9/30 授权公告日:20131030 终止日期:20160523 申请日:20110523

    专利权的终止

  • 2013-10-30

    授权

    授权

  • 2011-11-30

    实质审查的生效 IPC(主分类):G06F9/30 申请日:20110523

    实质审查的生效

  • 2011-10-19

    公开

    公开

说明书

技术领域

本发明属于嵌入式系统软件能耗优化设计领域,具体涉及一种快速的指令级处理器能耗估算方法。

背景技术

降低能耗已经成为嵌入式系统设计面临的重要问题之一,人们不仅关注如何降低这些系统的能耗,更需要评估这些系统中各类软件成分对系统能耗的影响,考察各层软件执行过程中涉及到的硬件部件的能耗。当前,对于嵌入式处理器的能耗估算技术发展迅速,能够通过模拟指令在微体系结构部件上执行的过程,估算包括操作系统和应用程序在内的软件系统的能耗,并获得足够精确的估算结果。存在的主要问题是处理器能耗估算速度慢(一条指令的行为大约用5000条指令模拟),模拟框架结构复杂。因此,需要新的处理器能耗估算模型和方法,在保持原有处理器能耗估算准确度的情况下,提高估算速度,简化估算框架结构,从而满足更复杂系统(如虚拟机系统)的全系统能耗估算、对操作系统、中间件、应用软件的能耗评估、优化的需求,更好地服务于低能耗嵌入式系统软件开发。

发明内容

本发明目的在于提出一种快速的指令级处理器能耗估算方法,可以根据软件动态运行过程中的指令、Cache访问、内存及外围部件访问特征,快速地估算软件运行时的处理器能耗。

本发明所述的快速指令级处理器能耗估算方法如下(流程如附图所示):

A.定义程序在处理器上运行过程中所对应的处理器能耗,是该程序的指令执行涉及到的数据通路上的相关部件能耗之和,包括指令在数据通路上的基本能耗和指令间相互影响造成的能耗,后者包括各种流水线停顿、Cache访问及访存操作的能耗。用公式表示为:

Eprog=Σi{ISet}[Ni*Ei]+Ecache---(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,计算公式为:

B4.计算所有测试程序的{Ei、EIMiss、EDMiss、EIHit、EDHit}Pj的平均值,作为本发明的能耗参数,计算公式为:

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%。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号