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

一种嵌入式系统模拟器中的动态软件能耗测试方法技术方案

技术编号:2847254 阅读:311 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种嵌入式系统模拟器中的动态软件能耗测试方法。Wukong模拟器是一种全系统模拟的嵌入式模拟器,以c++语言编写。本方法将能耗测试插件集成于Wukong模拟器中,为Wukong模拟器的执行指令测试能耗。包括两层结构:外设的能耗测试和系统级指令的能耗测试;外设的能耗测试主要是通过在外设启动时计时,统计外设使用时间进行测量;指令级的能耗测试以模拟器中实际运行的指令进行统计,根据统计数目得到最终的指令能耗,使能耗的估算从静态改进到了动态。这一方法能动态地和准确地获取运行于Wukong模拟器上的程序的能耗,并不影响模拟器运行指令的性能,从而使wukong模拟器可以用于以能耗测试为目的的嵌入式系统研究,推广了wukong模拟器的使用。

【技术实现步骤摘要】

本专利技术涉及嵌入式模拟器设计领域,特别是涉及。
技术介绍
Wukong模拟器是浙大嵌入式软件研发中心从2004年10月开始研发的通用嵌入式系统模拟器,它支持主流嵌入式处理器体系结构和常见嵌入式系统外部设备,实现了对嵌入式系统的全系统模拟,可以直接运行嵌入式系统的二进制文件。同时,Wukong提供了调试支持和运行数据收集,为嵌入式开发者提供了完善的支持。Wukong模拟器的特点是多体系结构支持Wukong不针对特定体系结构设计,通用的底层设计为支持主流嵌入式CPU体系结构的运行框架,包括ARM、MIPS、PowerPC、Coldfire乃至51单片机、8086等。外部设备模拟支持Wukong支持各种常用嵌入式外部设备模拟,包括串口、LCD、网络芯片、调制解调器、USB等。全系统模拟Wukong坚持走全系统模拟的道路,即能够真实模拟完整系统的运行环境,从而使得运行于真实硬件的二进制映象文件可以不加修改的运行于Wukong上。运行数据收集在Wukong上运行二进制映象的时候,可以统计各种不同类型的数据收集供开发者进行分析和优化之用。主流操作系统支持Wukong从一开始就坚持跨平台的设计理念,编写平台无关代码,依靠平台无关库,保证Wukong在主流操作系统上可以运行。可接受的模拟效率作为嵌入式系统模拟器,在目前PC计算环境的计算能力比嵌入式系统强很多的情况下,应保证合理的可接受的模拟运行效率。当前,对程序能耗的测量分成两种方法,实际测量和模拟器估算。实际测量由于需要大型设备,造价较高,且不如模拟器执行程序方便移植和修改,在使用范围上受到了很大的限制;使用模拟器估算程序的能耗又分为动态能耗估计和静态能耗估计。静态能耗估计根据程序的执行代码,估计指令的执行能耗。虽然简单方便,但是不能预测程序在执行过程中的意外情况比如跳转,中断等等,所以能耗的估计准确性不够,动态能耗估计,需要使用相应的模拟器来实现,而Wukong模拟器全系统模拟器的特点非常适合动态能耗估算。
技术实现思路
为了获得更真实的的代码运行能耗、代码执行信息,为了获取更准确的外设使用信息,本专利技术的目的在于提供。本专利技术解决技术问题所采用的技术方案是,其步骤如下1)动态的指令级能耗测试判断指令的执行状态判断指令是处于用户态还是内核态;判断指令与程序的相关性如果指令是用户态,判断指令是由什么程序驱动的,如果指令是内核态,判断指令是内核驱动还是由程序中断引起的;判断指令的类型判断指令属于哪种类型,模拟器中共有54种指令,例如数据处理,跳转,等等;统计不同指令的数目统计不同类型指令的执行次数,累加进入一个数组;四个步骤之间是向上进行的流程,首先由电量测试模块判断指令的执行状态,然后根据指令的执行状态判断他们与程序的相关性,然后根据相关性,如果指令和要测试的程序相关,那么判断指令的类型,再统计指令的数目,如果与程序不相关,那么不做统计,统计好的指令数目乘以不同类型指令的能耗就能得到所有指令的能耗;2)外设能耗测试①判断指令与用户程序的相关性和指令测试模块类似,这个模块首先判断一条指令的运行状态,如果一条指令是用户态的,那么不会产生中断,调用外设,如果指令是核心态,那么判断指令是否是要测试的用户程序驱动的,通过指令集能耗测试部分的判断模块,进行判断;②判断指令是否使用了外设判断指令的类型,如果指令是数据处理型的指令,那么不会用到外设,如果指令是中断类型的且中断之后需要用到LCD之类的外部设备,那么自设备启动的时候开始为统计设备的使用时间,保存时间,最后根据不同设备不同状态的能耗来计算模拟器运行程序究竟有多少能耗。本专利技术具有的有益效果是首先,动态指令统计方法,充分考虑到了程序执行中产生的各种问题,相比较静态指令统计方法,准确同时又直观;其次,通过统计指令执行次数统计指令的能耗,充分利用了Wukong模拟器全系统模拟的特性,利用Wukong模拟器指令集设计清晰的特性,判断执行指令的类型,统计某种指令的执行次数,从而得到该类型指令的总能耗,不影响模拟器的执行速度,不会给模拟器的设计带来多余的负担,同时又为模拟器提供了新的功能;再次,本能耗设计方法充分考虑到外设的多样性,对每种外设的使用时间以及使用的用户进行统计,对于不是由用户程序引起的外设使用,不统计其能耗,从而达到了能耗统计准确的目的。最后,本专利技术对Wukong模拟器的改进,完全是以插件的形式进行的,避免了对Wukong模拟器的大规模修改,从而保证了Wukong模拟器的完整性。附图说明附图是本专利技术的流程图。具体实施例方式本专利技术按照上述四个步骤的判断结构来布局,将每一个步骤作为一个功能模块来实施。最后根据四个步骤的处理结果计算能耗。下面将就本体系作详细介绍。1)四个判断步骤的结构与功能①判断指令的执行状态操作系统中的进程分为内核态和用户态,而操作系统的状态也分为内核态和用户态两种。用户态是权限受限制的状态,内核态是权限比较高的状态。这个步骤首先判断指令是处于用户态还是内核态,对指令进行第一次分类。②判断指令与程序的相关性根据第一步的结果,这个步骤分两种情况。假如当前指令处于用户态,那么判断这个指令的使用者是谁,如果使用者是要测试的用户程序,那么就说这条指令和用户程序相关的,否则不想关;假如这条指令执行在内核态中,那么判断这个内核态是否是由于要测试的用户程序中断引起的,如果是由用户程序中断引起的,那么说这条指令和用户程序也是相关的。③判断指令的类型Wukong模拟器提供了54种指令类型。每条指令的能耗,根据其指令类型的不同又不同,所以如果指令和要测试的用户程序是相关的,就必须判断指令属于那种类型。不同类型的指令的能耗,可以根据实际运行中的测试得到,这样某类指令的能耗乘以某类指令的执行次数,就可以得到一类指令的总能耗了。④统计不同指令的数目根据第三步的分类,建立一个数组,统计每类指令的执行次数。当统计结束,每类指令的数目乘以该类指令的执行一次的能耗,然后将这些指令的能耗加起来,就得到指令运行的总能耗。四个步骤之间是向上进行的流程,首先由电量测试模块判断指令的执行状态,然后根据指令的执行状态判断他们与程序的相关性,然后根据相关性,如果指令和要测试的程序相关,那么判断指令的类型,再统计指令的数目,如果与程序不相关,那么不做统计,统计好的指令数目乘以不同类型指令的能耗就能得到所有指令的能耗;2)外设使用处理过程①判断指令与程序的相关性即使是计算外设的能耗,也要跟踪这个外设是不是由用户程序的执行指令驱动的。假如该指令不是由用户指令驱动的,那么外设的能耗就不应该统计在用户程序的能耗测试里面。判断指令和用户程序的相关性可以由上面的动态指令数目统计的前两个步骤得到。当执行到第二个步骤的时候,就可以得到指令是否和程序相关。②判断指令是否调用外设首先维护一个数值,数组存放每种外设的使用时间。假如当前的执行指令和要测试的用户程序是相关的,那么判断这条指令是否调用了外设。以LCD的启动为例,LCD的启动需要一条中断,告诉内核外设要启动了。之后LCD开始工作,知道再一条中断,LCD工作停止。当指令调用外设,能耗计算模块启动一个计时器为能耗的使用时间计时,当判断指令发送了让外设定制的信号,停止计时,将时间存入数组中对应于该外设的那一项。③计本文档来自技高网
...

【技术保护点】
一种嵌入式系统模拟器中的动态软件能耗测试方法,其特征在于:1)动态的指令级能耗测试:判断指令的执行状态:判断指令是处于用户态还是内核态;判断指令与程序的相关性:如果指令是用户态,判断指令是由什么程序驱动的,如果指令是 内核态,判断指令是内核驱动还是由程序中断引起的;判断指令的类型:判断指令属于哪种类型,模拟器中共有54种指令,包括数据处理,跳转,数据处理三大类;统计不同指令的数目:统计不同类型指令的执行次数,累加进入一个数组;层与 层之间是向上进行的流程,首先由电量测试模块判断指令的执行状态,然后根据指令的执行状态判断他们与程序的相关性,然后根据相关性,如果指令和要测试的程序相关,那么判断指令的类型,再统计指令的数目,如果与程序不相关,那么不做统计,统计好的指令数目乘以不同类型指令的能耗就能得到所有指令的能耗;2)外设能耗测试①判断指令与用户程序的相关性和指令测试模块类似,这个模块首先判断一条指令的运行状态,如果一条指令是用户态的,那么不会产生中断,调用外设,如果指令是核心态,那 么判断指令是否是要测试的用户程序驱动的,通过指令集能耗测试部分的判断模块,进行判断;②判断指令是否使用了外设判断指令的类型,如果指令是数据处理型的指令,那么不会用到外设,如果指令是中断类型的且中断之后需要用到LCD之类的外部 设备,那么自设备启动的时候开始为统计设备的使用时间,保存时间,最后根据不同设备不同状态的能耗来计算模拟器运行程序究竟有多少能耗。...

【技术特征摘要】
1.一种嵌入式系统模拟器中的动态软件能耗测试方法,其特征在于1)动态的指令级能耗测试判断指令的执行状态判断指令是处于用户态还是内核态;判断指令与程序的相关性如果指令是用户态,判断指令是由什么程序驱动的,如果指令是内核态,判断指令是内核驱动还是由程序中断引起的;判断指令的类型判断指令属于哪种类型,模拟器中共有54种指令,包括数据处理,跳转,数据处理三大类;统计不同指令的数目统计不同类型指令的执行次数,累加进入一个数组;层与层之间是向上进行的流程,首先由电量测试模块判断指令的执行状态,然后根据指令的执行状态判断他们与程序的相关性,然后根据相关性,如果指令和要测试的程序相关,那么判断指令的类型,再统计指令的数目,如...

【专利技术属性】
技术研发人员:陈天洲梁晓黄江伟钱杰
申请(专利权)人:浙江大学
类型:发明
国别省市:86[中国|杭州]

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

1