【技术实现步骤摘要】
一种基于模拟器的细粒度功耗估计方法
本专利技术涉及计算机
,更具体地,涉及一种基于模拟器的细粒度功耗估计方法。
技术介绍
物联网(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)对应的计数器也将停止计数,若同时统计多个代码段时,不同的目标代码段如果存在包含关系,则进入子代码段时,被执行,序号对应的计数器开始工作,而父代码段对应的计数器也继续保持计数。
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。