WCET(Worst Case Execution Time)及有关分析方法

原创 2004年10月23日 00:12:00

关于wcet(Worst Case Execution Time)我阅读了一些文章,总结以下几点:
1.首先是wcet的概念,在程序设计中,尤其是实时系统中,对最坏情况的时间计算是很重要的,这可能会影响到软件及整个系统的运行。可以从这个术语的英语翻译看出,这个概念指的是某一种可能性的假设,假设程序的某一部分可能会发生什么问题,可能需要运行多少时间。比如对于分支的情况A和情况B,其中就已存在这个概念(wcet)。当然分支结构只是所有程序结构中的一种,其他当然还包括循环等等。
在数据结构算法中有这么一个概念就是平均运行时间,他们之间是有联系的却又不尽相同。平均运行时间是考虑整体程序的运行时间,以把最坏情况考虑在内,考虑的是整体效率,而wcet是指单单考虑某一段程序的运行情况,考虑的是特定情况的发生。这两个概念无本质区别。
2.影响wcet的因素有几点:一,程序本身的分支跳转,循环;二,目标机器的硬件结构,比如pipeline,cache等;三,可能是编译器或者外部环境的影响。
3.wcet的不可靠性及分析方法:由于可能会有不同情况之间的跳转和外部影响,所以动态wcet分析是不可靠的,现今一般使用是静态分析方法。静态分析方法主要的key是设定固定值,决定程序运行路径,然后进行分析从而得出wcet。
4.静态分析有两个层次,一个是高层分析,另一个是底层分析。高层分析主要是对程序路径的分析,其中也包括很多分析方法和算法,可视化方法就是其中之一,当然可视化方法中还有很多内容,比如代码段提取算法和最大/小时间预估算法等。
对于程序这层来说,最基本的wcet公式是:wcet(s1;s2)=wcet(s1)+wcet(s2); wcet(if(c)s1;else s2)=wcet(c)+max(wcet(s1),wcet(s2));wcet(for(c) s1)=(n+1)*wcet(c)+n*wcet(s1)在这种情况下n已被固定为某个值(静态分析)。
5.高层分析:这也是对程序结构的分析,一般从最小的连续代码段开始分析,这时候可能会用到代码段提取算法,现在我们不考虑这些,假设有一段程序是循环内的判断,这个代码可以把条件的每个判断画成一个2叉树,然后根据程序结构将这些2叉树相连,在每一个树的分支旁写下可能循环的最大和最小次数,通过找出整个树林的最大运行次数,可以得到这个代码段的wcet。具体的算法在最后给出。
  底层分析:这是关于硬件结构的分析方法,主要的分析内容有cache,pipeline。大家都知道cache有失效率,而往往wcet就是统计其失效情况下运行时间。关于pipeline,一般来说只要不引起register等资源相关,两个连续代码段的pipeline运行的wcet就是他们分别运行时wcet的联结(concatenation).
6.可视化分析方法:最近有人提出一种可视化分析wcet的方法,它通过将一个要分析的代码段从其编译器已编译完成的汇编代码中提取其代码,然后通过算法对其进行最大或最小时间分析,并将结果用图形等界面显示出来,当然,一些完善的可视化分析软件可把操作全部图形化。这种方法的优点在于它是把代码已被编译的汇编代码中提取代码段,所以这可以算是一种结合了高层和底层分析的方法,易于实现也不失精准。还有其可视性,可以实现基于流程的时间分析。当然由于分析算法的复杂性和自动选择程序路径的局限性,这个要运用于工业分析上尚需一段时间。


最大时间算法:
输入:StartBlock,EndBlock,程序的二叉树结构,程序语句行时间数; 输出:最大时间数. 算法过程如下:
步骤1. 可达性判断,当且仅当起始块等于终止块,或者起始块经过有限次的顺接块到达终止块时,则设可达性标志为TRUE,否则设为FALSE;
步骤2. 如果可达性标志为TRUE,则转步骤3;否则退出,并给出不可达信息;
步骤3. 按照先序遍历以块为节点的程序结构二叉树,并按照表2中的规则求得各种基本块节点和特殊基本块节点的基线时间数Time;
步骤4. 采用递归算法,并按照表2中的各种块的最大时间MaxTime的计算规则,计算各种块的最大时间数MaxTime;
步骤5. 按如下算法求得指定程序段的最大时间数: MaxTime=∑(i=0->n)Next(i)(startBlock).MaxTime,其中Next(0)(block)=block, Next(1)(block)=block.NextBlock, Next(i+1)(block)=Next(Nexti(Block)).
步骤6. 返回最大时间数MaxTime.
                                                                                                                                                                            #

进阶篇:5.1)极值法(Worst Case ,WC)

  • zjc314
  • zjc314
  • 2017年09月10日 19:40
  • 474

MIT算法导论-第四讲-快速排序

1.快速排序的描述快速排序算法采用的分治算法,因此对一个子数组A[p…r]进行快速排序的三个步骤为:(1)分解:数组A[p…r]被划分为两个(可能为空)子数组A[p…q-1]和A[q+1…r],给定一...
  • qing0706
  • qing0706
  • 2015年11月28日 16:38
  • 1087

Maximum execution time of 0 seconds exceeded in

nginx错误日志频繁出现Maximum execution time of 0 seconds exceeded in的错误。查看了一下php.ini文件,max_execution_time=0 ...
  • flcandclf
  • flcandclf
  • 2012年02月08日 10:25
  • 5563

Maximum execution time of 30 seconds exceeded解决办法

今天给朋友配置wamp的时候,刚刚搭建好,打开一个本地站就出现这个错误, Maximum execution time of 30 seconds exceeded,今天把这个错误的解决方案...
  • ghostyusheng
  • ghostyusheng
  • 2016年01月27日 13:30
  • 19174

解决phpmyadmin出现: Maximum execution time of 300

在mysql用phpmyadmin导入数据的时候出现: Fatal error: Maximum execution time of 300 seconds exceeded in ... ...
  • Pompeii
  • Pompeii
  • 2015年04月20日 18:39
  • 544

php Maximum execution time of 30 seconds exceeded 网页超时的解决方法

页面执行过久导致提示php Maximum execution time of 30 seconds exceeded错误了,出现这个问题解决办法非常的简单只要在页面顶部设置set_time_limi...
  • qq_15936309
  • qq_15936309
  • 2016年08月16日 13:29
  • 641

DedeCMS提示Maximum execution time of 30 seconds exceeded in解决办法

DedeCMS提示Maximum execution time of 30 seconds exceeded in解决办法 DedeCMS出现Fatal error: Maximum exe...
  • aoruja30
  • aoruja30
  • 2015年01月07日 10:34
  • 475

解决 “Maximum execution time of 300 seconds exceeded in ...”问题

1.php.ini里max_execution_time = 30,原因是这个脚本执行时间太小了,增加一些,或者改成0不限制 2.wamp2.4\wamp\apps\phpmyadmin4....
  • w77603422
  • w77603422
  • 2013年09月09日 19:31
  • 6229

DEDE 织梦cms出现Fatal error: Maximum execution time of 30 seconds exceeded in解决办法

DEDE 织梦cms出现Fatal error: Maximum execution time of 30 seconds exceeded in解决办法 解决办法: 在服务器中找到php.ini...
  • jodan179
  • jodan179
  • 2012年11月20日 14:01
  • 15302

基于usecase的需求分析过程

      虽然usecase源于面向对象的开发环境,但是他能应用在采用其他的开发方法的项目中。用户并不关心你是采用何种方法来开发软件的。我们在实际的软件项目中,可能不会去画实际的实例图,但是使用实例...
  • qiang_gu
  • qiang_gu
  • 2004年11月22日 14:55
  • 1138
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:WCET(Worst Case Execution Time)及有关分析方法
举报原因:
原因补充:

(最多只允许输入30个字)