论文部分内容阅读
航天领域存在大量的实时嵌入式系统,实时软件的实时特性对系统的可靠性至关重要。根据是否需要运行被测软件,验证实时软件实时性的方法分为两大类:静态时间分析和动态实时测试。
静态时间分析具有预测作用,它的关键问题是预测代码的最大执行时间(WCET),一段代码的最大执行时间(WCET)不但依赖于程序流程(循环、分支、函数调用),还依赖于体系结构因素(Cache和流水线、分支预测、总线延迟等)。因此,在WCET的分析中,必须对程序流程及程序运行的硬件一起建模。
传统的WCET分析方法把每条汇编指令的执行时间当作定值处理,得到的程序运行时间也是一个定值。它忽略了程序运行的不确定性。
概率WCET是2003年才出现的新概念,它是从概率角度,宏观上把握程序运行时间区间,绕过复杂的底层硬件特性。已有的概率WCET的研究还局限于程序级。
本论文介绍了WCET及概率WCET的研究现状及局限;提出了基于分布函数的程序执行时间预估方案——用一个分布从指令级上模拟运行时间,进行指令叠加后用正态分布从程序级模拟运行时间,用关键路径法寻找令程序运行时间最长的路径——从而把概率WCET的研究从程序级扩展至指令级;针对8087协处理器指令集,讨论了十八种常用的分布的性质,最终确定分别用贝塔分布和正态分布模拟8087浮点指令的运行时间;针对具体指令(如浮点加减乘除指令、三角函数指令、协处理器控制指令、WAIT指令等)阐述了处理方法;用8086/8087指令编写了几个工程上常用的、浮点计算密集型的程序,分别采用这两个分布对程序的各条指令计算均值和方差,指令叠加后得到程序的运行时间的均值和方差,然后对指令级的这两种模拟方案的叠加结果进行分析和比较;最后对这个估计出来的时间区间作了调整,得到一个新的时间区间,针对这个计算“正态分布×均匀分布→新的正态分布”的过程,推导了新的均值、方差的计算公式,给出了复化辛普深法解二重积分的算法并予以实现。