一种基于分布函数的wcet快速估计方法

文档序号:8257983阅读:479来源:国知局
一种基于分布函数的wcet快速估计方法
【技术领域】
[0001] 本发明属于实时嵌入式软件领域,特别涉及TI DSP技术中一种基于分布函数的最 坏执行时间(WCET :Worst_Case Execution Time)快速估计方法,可用于评估DSP工程代码 或者代码片段的最坏执行时间。
【背景技术】
[0002] 在实时嵌入式软件系统中,系统对时间具有更加严格的要求,系统的正确性不仅 与其程序的逻辑有关,还与其时间特性有关,只有在规定时间内完成规定的任务才是有效 的,否则会导致该系统性能的降低甚至系统的失败。因此,事先获取系统中每个任务的最坏 执行时间(WCET)对实时系统的时序分析等具有重要的意义。
[0003] 目前,WCET分析主要包括三种方法:静态分析法、动态度量法和混合分析法。
[0004] 动态度量法就是通过运行程序动态的测试程序的执行时间,进而分析得到WCET, 然而该方法存在很大的弊端,首先该方法需要目标机,需要实际运行程序并需要大量的实 验,耗费人力、物力、财力,并且在航天、航空领域,很多情况下不能模拟真实的目标机环境 或者目标机昂贵,且对实时性要求较高,不可能让未经检验的程序在真实的目标机上运行。 除此之外,该方法很难保证测量得到的结果是安全的,即无法保证不低估最差执行时间,因 为很难保证所做的实际测量满足程序WCET的条件,对于现代处理器来说,此点更难做到。
[0005] 混合分析法即将静态分析法和动态度量法相结合的方法,该方法具体分为两种情 况,一种是首先对程序进行静态分析,即运用静态分析法进行分析,然后根据静态分析法的 结果对程序进行运行测试,最终确定程序的WCET ;另一种是首先对程序采用动态度量法进 行测试分析,然后在动态度量法的基础上进行静态分析,进而确定程序的WCET。
[0006] 无论采用哪种方法,混合分析法在包含静态分析法和动态度量法的优点上,也包 含他们各自的缺点,并且混合分析法比较复杂。
[0007] 静态分析法是通过理论分析估算得到程序的WCET,该方法不仅可以在不运行程 序的情况下获得计算结果,而且能够保证得到的结果是安全的,因此,这是目前常用的方 法。
[0008] 传统静态分析方法一般由3个部分组成:①程序的控制流分析,主要分析确定程 序可能的执行路径、最大循环次数和不可行路径等;②底层分析,主要考虑目标机器的特 征,比如高速缓存、流水线、分支预测等,目的是确定每条汇编语句或者每个基本块执行的 时间;③WCET计算,根据前两项信息,运用具体的计算方法对程序的WCET进行计算,主要计 算方法分为基于路径的方法、基于树的方法和隐含路径枚举的方法。
[0009] 总体上说,传统的静态分析方法是在WCET计算过程中,把每条汇编指令的执行时 间作为确定值进行对待的,然后通过一定的方法得到程序的WCET,但此值也是确定的。
[0010] 可以看到,传统的方法没有考虑到程序执行时间的不确定性,根据现在处理器的 特点,这种方法显然是存在很大弊端的,因为现在处理器为了加速运算的速度采用很多先 进的技术,比如高度缓存、流水线、分支预测等,使得程序执行时间的不确定性更加明显。
[0011] 因此,程序的运行时间不是单一的某个值,而是某个范围的区间值。
[0012] 目前针对此问题的解决方法主要是概率法求WCET,即pWCET,此概念是由Guillem Bernat在2003年提出来的,主要目的解决某段代码或者某个函数等的WCET的概率分布问 题。运用此方法计算WCET的文献已发表很多,比如:
[0013] 1)在2003年,Stefan M Petters提出的采用极值统计理论求解程序执行时间 区间的方法。该文献的大概思想为,多次运行程序,得到很多个程序运行时间值,然后用 Gumble概率函数逼近,求取程序运行时间极值,即为WCET值。分析此文献,可以很容易看 出,此种方法不能算是纯粹的静态分析,因为它是对多次运行程序得到的时间值进行函数 拟合逼近,求极值得到的WCET,同样具有动态度量法的局限性。
[0014] 2)在2006年,胡明华、汤铭端在文献"基于分布函数的程序执行时间的静态预估" 中提出的用概率分布模拟8087指令运行时间,进行指令叠加后用正态分布模拟整个程序 执行时间的方法。然而,该方法事先需要对待分析程序进行很多的预处理,比如循环语句按 照循环最大次数展开、分支判断语句则分为两支、case语句则分为多支等等,这在一定程度 上限制了其适用性及自动化性,尤其对于大型的工程程序,需要大量的人力资源,具有很大 的局限性。除此之外,该方法借鉴了计划评审技术(PERT)的思想,然而,该文献采用传统的 PERT方法,其传统PERT方法本身具有很大的弊端,主要在于贝塔分布参数估计方法的不精 确性。
[0015] 3)在2010年,张保民、吴国伟等人在文献"程序最坏执行时间极值统计方法"中提 出的采用程序执行时间的测量值作为样本,利用Gumble分布建立程序执行时间最坏统计 模型,从而预测WCET的方法。然而该方法仍然需要运行程序获得测量值样本,具有动态度 量法的局限性。
[0016] 综上分析,目前WCET分析方法虽然采用静态分析方法,并从概率的角度分析得到 WCET,绕开了复杂的底层硬件等特性的建模,简化了 WCET估算方法,然而该静态分析方法 还不是纯粹的静态分析,需要事先运行程序得到执行时间的测量值样本,然后用概率分布 逼近,从而预测程序的WCET,算是一种混合分析法,因此具有很大的弊端。胡明华等人提出 的方法事先对程序人工预处理较多,不能实现自动化分析,并且采用传统的PERT技术,具 有很大的局限性。

【发明内容】

[0017] 本发明的目的在于提出一种基于分布函数的WCET快速估计方法,以解决现有技 术中需运行程序得到测试样本的弊端和人工干预过多的问题以及传统PERT技术中贝塔分 布参数估计方法的不合理性问题。
[0018] 为实现上述目的,本发明的技术方案包括如下步骤:
[0019] (1)通过对DSP工程目标代码(out文件)进行反汇编获得反汇编文件F;
[0020] (2)分析反汇编文件F,获取划分的各个基本块,得到程序的基本块集合B ;
[0021 ] (3)辨识基本块集合B中各基本块之间的关系,构建程序流图C ;
[0022] (4)计算每个基本块的执行时间T ;
[0023] (5)将基本块执行时间T和基本块执行次数Ts作为权值得到加权的程序流图Cw ;
[0024] (6)分析加权的程序流图Cw,获得总权值最大的路径,将最大的总权值作为程序 最坏执行时间WCET。
[0025]本发明具有如下优点:
[0026] 1.本发明对DSP工程汇编代码进行静态分析,在无需运行DSP程序的情况下得 到最坏执行时间,克服了传统方法中需运行程序得到测量值样本的弊端,便于实施,操作简 单;
[0027] 2.本发明采用基于分布函数的方法估算WCET,绕过复杂的底层硬件特性,解决了 传统方法中需对底层硬件特性进行建模的问题,具有易于实现的优点;
[0028] 3.本发明利用基本块概念自动化构造程序流图,分析程序流图中各个结点的执行 时间及程序流图的路径情况,在较少人工干预的情况得到程序的WCET,解决了传统方法中 需要大量人工干预的问题;
[0029] 4.本发明采用改进的PERT技术,解决了传统PERT技术中贝塔分布参数估计方法 的不合理性问题,使得基本块执行时间的估算更加准确。
【附图说明】
[0030] 图1为本发明的实现流程图。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1