目标软件在指定硬件环境中最差时间的计算方法

文档序号:6439550阅读:318来源:国知局
专利名称:目标软件在指定硬件环境中最差时间的计算方法
技术领域
本发明涉及一种程序运行时间统计方法,具体涉及一种利用虚拟机来运行目标程序从而确定最差运行时间的方法。
背景技术
在现代工业控制系统中,由于对系统及时性的要求越来越高,程序在实际应用前应该明确其最差的运行时间从而判断在执行过程中是否超时。目前对程序最差运行时间的分析方法主要是采用静态分析和动态分析的方式静态分析方式的工具如Ait通过对可执行程序的静态分析,结合处理器的特性对目标文件的最差运行时间进行计算,并规划出分支程序可能存在的最短路径,其工作过程如图1所示首先在软件中将可执行目标文件进行反汇编,再输入目标文件所使用的硬件环境,如CPU型号、外部总线类型等参数,然后用户输入EntryPoint,再计算分支程序在各个函数中所消耗的时间。此方法能够给出分支程序的最差运行时间,以及最差运行时间所在的函数和最差运行时间的分析方法,及模型设计的原因,不需要用户编写插装代码以及购置测试平台,但是此方法不能给出分支程序最差运行时间的发生条件,也没有考虑存储器和外部总线配置方式改变对于最终分析结果所带来的影响。动态分析的工具如Rapitime是通过实测程序各个分支的运行时间,从而得到软件的最长运行时间。其工作流程如图1所示,首先在软件中打开要分析的目标文件源代码, 对源代码的分支语句进行插装,然后在目标设备中执行目标代码,计算相信两个插装点消耗的时间,遍历所有分支后对记录结果进行分析,从而得到目标文件的最差运行时间。此方法可以得到比较精确的分支程序运行时间,最终结果显示较为直观,能够贴合设备实际情况,对于不同的设备,只要适当调正一下测试设备的硬件和插装代码即可完成运行时间的测量,但是此方法无法给出测量结果“最差”的理论依据,且需要用户手动的编写插装代码, 对于较大工程量的程序来说,存在极大的漏编或错编的可能性,从而因为人因故障引入精度的错误,此外测试环境较为复杂,对于工控环境来说,用户需要额外的预算来组件测试平台,成本较高,并且要求用户必须持有该目标软件的源代码,在某些商业环境中,该方案并不能满足用户的需要。

发明内容
为解决现有技术在对目标软件进行最差时间分析时,考虑面过窄使得最终结果精确度差的问题,本发明提供一种利用虚拟软件对目标软件的运行硬件环境进行虚拟,并计算目标软件的所有分支程序从而得到精确的最差运行时间的技术方案,具体方案如下目标软件在指定硬件环境中最差时间的计算方法,包括步骤1、读取目标文件并对目标文件进行解析及反汇编;其特征在于,还包括如下步骤步骤2、模拟目标软件使用的虚拟硬件环境,包括
步骤21、模拟CPU及其工作流程;步骤22、模拟内存及其工作流程;步骤3、在虚拟硬件环境中执行汇编后的目标文件,其中步骤31、记录每一条指令的当前位置,当该指令为分支指令时,则记录该指令的当前位置、跳转目标位置及跳转的判断条件;步骤32、运行每一条指令在各种情况下所耗费的时间并记录;步骤4、把每一个程序分支的运行时间横向比较后,计算并输出目标文件中最差运行时间的程序路径。为保证测试过程的精确所述步骤21中模拟CPU及其工作流程包括1)、对CPU的型号及其工作频率的模拟;2)、对CPU在指令执行中的流水线过程模拟,此由以下四个方面组成(1)、CPU对指令的预读和分支预测算法的模拟;(2)、CPU指令发射结构的模拟;(3)、CPU执行指令的过程及执行时间的模拟;(4)、CPU接到指令回馈信息的过程模拟;累加此四个过程所花费的时钟周期数,即得到CPU流水线处理该指令所花费的时间。为确定测试过程的精确所述步骤22中模拟内存及其工作流程包括1)、内存的容量和工作频率的模拟;2)、内存的访存宽度模拟;3)、内存的行/列访问延时模拟;4)、内存的刷新延时模拟;5)、内存的充电延时模拟。本发明能够预估目标软件在嵌入式工业控制系统中的最差运行时间,从而在目标软件下装之前,确定是否超时,从而满足系统的时间确定性要求。本发明使用虚拟机的方式模拟程序运行的指令内容,虚拟机包含了对处理器、外部总线,以及外部存储器之间功能的状态机的模拟,从而使得本方法兼具Rapitime和Ait两种方法的优点,并且尽可能的规避了两者的不足之处,本发明使用到了 ELF反汇编技术、处理器指令解析技术、处理器时序解析技术、DDR总线时序分析技术、DDR芯片时序分析技术、程序分支记录分析技术。结合上述技术得到目标软件各个分支程序所消耗的时间,从而给出目标软件在特定平台中执行所消耗的最差时间。此外本方法可以有效统计有哪些分支是可达的,哪些分支是不可跳出的死循环,自动对分支进行记录,而不需要用户手动在分支上插装。避免了由于人因而导致的故障。同时,比照动态分析的方式,本软件能够更好的说明测试结果的原理。而不是简单的得到一个统计性的数据。


图1静态分析方法流程示意图。图2动态分析方法流程示意图。图3本发明的分析方法流程示意图。
具体实施例方式如图3所示,本方案按下列步骤执行101、读取目标文件并对目标文件进行解析及反汇编;此步主要是解析ELF文件,并从中得到代码段、数据段等具体结构,明确它们在 ELF文件中的偏移,以及要加载到内存的位置和长度,具体解析的内容如表一所示
权利要求
1.目标软件在指定硬件环境中最差时间的计算方法,包括步骤1、读取目标文件并对目标文件进行解析及反汇编;其特征在于,还包括如下步骤步骤2、模拟目标软件使用的虚拟硬件环境,包括 步骤21、模拟CPU及其工作流程; 步骤22、模拟内存及其工作流程; 步骤3、在虚拟硬件环境中执行汇编后的目标文件,其中 步骤31、记录每一条指令的当前位置,当该指令为分支指令时,则记录该指令的当前位置、跳转目标位置及跳转的判断条件; 步骤32、运行每一条指令在各种情况下所耗费的时间并记录; 步骤4、把每一个程序分支的运行时间横向比较后,计算并输出目标文件中最差运行时间的程序路径。
2.如权利要求1所述的计算方法,其特征在于,所述步骤21中模拟CPU及其工作流程包括1)、对CPU的型号及其工作频率的模拟;2)、对CPU在指令执行中的流水线过程模拟,此由以下四个方面组成(1)、CPU对指令的预读和分支预测算法的模拟;(2)、CPU指令发射结构的模拟;(3)、CPU执行指令的过程及执行时间的模拟;(4)、CPU接到指令回馈信息的过程模拟;累加此四个过程所花费的时钟周期数,即得到CPU流水线处理该指令所花费的时间。
3.如权利要求1所述的计算方法,其特征在于,所述步骤22中模拟内存及其工作流程包括1)、内存的容量和工作频率的模拟;2)、内存的访存宽度模拟;3)、内存的行/列访问延时模拟;4)、内存的刷新延时模拟;5)、内存的充电延时模拟。
全文摘要
本发明涉及一种目标软件在指定硬件环境中最差时间的计算方法,包括步骤1、读取目标文件并对目标文件进行解析及反汇编;步骤2、模拟目标软件使用的虚拟硬件环境,包括步骤3、在虚拟硬件环境中执行汇编后的目标文件,其中步骤4、把每一个程序分支的运行时间横向比较后,计算并输出目标文件中最差运行时间的程序路径。本发明能够预估目标软件在控制系统中的最差运行时间,从而在目标软件下装之前确定是否超时,以满足系统的时间确定性要求。
文档编号G06F9/445GK102520984SQ201110386640
公开日2012年6月27日 申请日期2011年11月29日 优先权日2011年11月29日
发明者张智慧, 杜乔瑞, 王沿海, 石桂连, 高铭 申请人:中国广东核电集团有限公司, 北京广利核系统工程有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1