当前位置: 首页 > 专利查询>中山大学专利>正文

一种基于模拟器的细粒度功耗估计方法技术

技术编号:26970001 阅读:20 留言:0更新日期:2021-01-05 23:59
本发明专利技术公开了一种基于模拟器的细粒度功耗估计方法,包括以下步骤:S1:定义识别代码段用于告知模拟器目标代码段开始位置和结束位置;S2:添加自定义计数器,用于计算目标代码段的事件信息;S3:建立CPU功耗模型,所述CPU功耗模型包括:CPU静态模型和CPU动态模型,根据CPU静态模型和CPU动态模型计算得到目标代码段的功耗。本发明专利技术通过自定义伪指令来识别代码段,建立精确的CPU功耗模型,通过CPU功耗模型计算得到目标代码段的功耗,从而可以定位程序中高耗能部位,克服了传统功耗估计方法依赖硬件的缺陷。

【技术实现步骤摘要】
一种基于模拟器的细粒度功耗估计方法
本专利技术涉及计算机
,更具体地,涉及一种基于模拟器的细粒度功耗估计方法。
技术介绍
物联网(IoT)设备通常具有内存受限和能量受限的特征,能源效率已经成为物联网应用开发的重要挑战之一。然而,现有的能耗分析工作大多集中于对硬件设备的能耗分析或是对应用程序总体能耗的监控,缺少对应用程序内部模块的具体能耗分析。现有的研究提供了从硬件角度以及时间粒度上的功耗测量方法,但缺少针对代码段的功耗测量方法。因此,现有的功耗优化方案大多集中于硬件、操作系统以及编程模型等方面,使得开发者在开发过程中较少关注能耗效率。现有的功耗测量方法可以分为:硬件测量方法、软件测量方法以及模拟器估计方法。硬件测量方法能够提供非常准确的能耗信息。但是,基于硬件的传统测量方法无法在函数模块级别上测量能耗。一方面,函数模块执行时间极短,硬件电路的采样周期通常较长。另一方面,即使采用细粒度的采样,硬件电路仍然无法识别功耗在软件层面的来源。软件测量也是一种准确的测量方法,已被广泛用于功率分析。与硬件测量相比,它可以获得更高层次的能耗信息。但是,软本文档来自技高网...

【技术保护点】
1.一种基于模拟器的细粒度功耗估计方法,其特征在于,包括以下步骤:/nS1:定义识别代码段用于告知模拟器目标代码段开始位置和结束位置;/nS2:添加自定义计数器,用于计算目标代码段的事件信息;/nS3:建立CPU功耗模型,所述CPU功耗模型包括:CPU静态模型和CPU动态模型,根据CPU静态模型和CPU动态模型计算得到目标代码段的功耗。/n

【技术特征摘要】
1.一种基于模拟器的细粒度功耗估计方法,其特征在于,包括以下步骤:
S1:定义识别代码段用于告知模拟器目标代码段开始位置和结束位置;
S2:添加自定义计数器,用于计算目标代码段的事件信息;
S3:建立CPU功耗模型,所述CPU功耗模型包括:CPU静态模型和CPU动态模型,根据CPU静态模型和CPU动态模型计算得到目标代码段的功耗。


2.根据权利要求1所述的一种基于模拟器的细粒度功耗估计方法,其特征在于,所述识别代码段为16位X86伪指令,所述伪指令表示为:myinst(#n,in/out),其中,#n表示目标代码段的序号,in/out表示进入或退出该目标代码段。


3.根据权利要求2所述的一种基于模拟器的细粒度功耗估计方法,其特征在于,自定义计数器为指令计数器,模拟器包括有32个指令计数器组成的数组。


4.根据权利要求3所述的一种基于模拟器的细粒度功耗估计方法,其特征在于,计数器的计算流程包括:
模拟器接收到来自上层应用程序的识别代码段指令myinst(#n,in),序号n对应的计数器被激活,开始计数。


5.根据权利要求4所述的一种基于模拟器的细粒度功耗估计方法,其特征在于,计数器的计算流程还包括:
当统计单一的代码段时,模拟器遇到myinst(#n,out)对应的计数器也将停止计数,若同时统计多个代码段时,不同的目标代码段如果存在包含关系,则进入子代码段时,被执行,序号对应的计数器开始工作,而父代码段对应的计数器也继续保持计数。

【专利技术属性】
技术研发人员:刘芳朱凌宇林清音
申请(专利权)人:中山大学
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1