一种精确分析任务WCET的自动化方法技术

技术编号:11100024 阅读:75 留言:0更新日期:2015-03-04 11:50
一种精确分析任务WCET的自动化方法,包括以下步骤:一、产生程序的无循环控制流图NLCFG;二、利用NLCFG确定依赖输入变量及其对应节点;三、确定依赖循环变量、依赖非输入分支变量及它们所对应的非依赖输入节点;四、删除非依赖输入节点产生ICFG;五、产生ICFG的所有路径;六、针对每条路径产生其输入条件以及该路径对应的WCET。利用每条路径的条件和其对应的WCET能够精确估算任务的WCET。

【技术实现步骤摘要】
-种精确分析任务WCET的自动化方法
本专利技术涉及一种精确估算实时系统任务最差情况执行时间(WCET :W〇rst-CaSeExecution Time)的自动化方法,属于实时嵌入式系统领域。
技术介绍
与通用计算机系统不同,实时系统的结果只有在规定的时间范围内完成时才是有 效的,如果没有在规定的时间范围内完成时,轻则降低系统的性能,重则引起灾难性的后 果,比如飞机投弹、核泄漏。因此,对于实时系统,事先获取系统中每个任务的WCET和最好 情况的执行时间(BCET :Best-Case Execution Time)有着特别重要的意义。鉴于BECT分 析与WCET分析技术相同,人们只涉及WCET分析。事实上,WCET分析是实时系统任务调度 及可调度性检测的前提,也是系统性能瓶颈分析的基础。 WCET分析通常包括三个组成部分:①程序流事实分析;②执行时间模型的建立; ③基于前两项信息的WCET计算。流事实信息就是程序的执行流信息,比如循环的最大迭代 次数、不可行路径(infeasible path)等,其中不可行路径是指对任意输入数据都不可能执 行的程序路径。 要获取程序的WCET,还需要对程序的目标代码进行分析以获得实际的时间,即建 立执行时间模型。举例来说,对于不带cache、没有流水线的传统CISC指令,其指令的执行 时间是固定的,其执行时间模型就是:一个代码段的执行时间就是其所对应的每条指令执 行时间的累加。 计算是在给定程序流事实和执行时间模型的情况下,为程序计算WCET估值。比如 对于常见的基于树的(tree-based)计算方法,使用为每种类型的复合程序语句定义的规则 确定语句的WCET,然后通过自底向上遍历程序的语法分析树产生整个程序的WCET估值。具 体来说,对于复合语句S1; S2, WCET (S1; S2) =WCET (S1) +WCET (S2);对于条件语句if (E) then S1 else S2,WCET (if (E) then S1 else S2) = WCET (E)+max (WCET (S1), WCET (S2)) ;对于循环语句while (E) do S,WCET(while (E) do S) = (n+1)* WCET(E)+n* WCET (S), 这里n为循环迭代次数。 有很多实时程序,其执行轨迹由程序的输入变量值或者范围确定的,在该条件下 程序按照此轨迹执行。举例来说,如图6所示的C程序: 假定exponent的范围为[-10, 10],则依据基于树的方法和相应的指令代码,其WCET 为: Wpow=I 11+max (301, 283) +270+117+10* (117+317)+111+max (560, 0) +244=6054 其中,假定第:Te行程序对应的if语句的条件部分代码指令执行时间为111,两个分支 的执行时间分别为301和283,第7行程序对应的赋值语句的代码指令执行时间为270,第 8、行程序对应的for语句的条件部分代码指令执行时间为117,第9行程序对应的赋值语 句的代码指令执行时间为317,第KTll行程序对应的if?语句的条件部分代码指令执行时 间为111,第11行程序对应的赋值语句的代码指令执行时间为560,第12行程序对应的赋 值语句的代码指令执行时间为244。 假定有如图7所示代码: 则其中 Pow 部分的 WCET 为:10*6054=60540。
技术实现思路
本专利技术提出了一种精确分析任务WCET的自动化方法,利用该方法能够精确估算 任务的WCET。 为实现上述技术目的,所采用的技术方案是:一块'痛槪分玢佐务mu你认方 法,包括以下步骤, 步骤一、产生程序的无循环控制流图NLCFG,建立起NLCFG节点与源程序语句的对应关 系,同时循环体节点也得到标识; 步骤二、利用步骤一中的NLCFG,从入口节点开始,依照深度优先策略,确定每一个变量 是否是依赖输入变量及其对应的依赖输入节点; 步骤三、确定步骤二中依赖输入变量中的依赖循环变量、依赖非输入分支变量,确定依 赖循环变量、依赖非输入分支变量对应的非依赖输入节点; 步骤四、从步骤二中删除非依赖输入节点,产生输入变量相关的无循环控制流图 ICFG ; 步骤五、依照深度优化策略产生ICFG的所有路径; 步骤六、针对步骤五的每条路径产生其输入条件; 步骤七、产生步骤六中每条路径对应的WCET。利用每条路径的WCET,即可精确计算整 个程序的WCET。 本专利技术所述的深度优化策略是指,在处理一个节点后,把该节点的所有后续节点 进行依次排队处理;排队之后,对队列中的第一个节点仍然按照同样方法处理,这样只有在 第一个节点及其后续节点处理完毕或者无法处理之后,才开始处理第二个节点。当一个节 点有一个前任节点的执行后状态是不确定的,也就是说是没有定义的时,该节点是无法处 理的。对无法处理的节点,将此节点重新排在队列末尾。 本专利技术所述的依赖输入变量的确定方法为,为每个节点设置节点执行前与执行后 两个状态,节点的状态定义了在该位置每个变量是否是依赖输入变量,节点后的状态是由 该节点执行后对节点前状态改变后的状态,节点前状态由所有流向该节点的节点后状态确 定,在确定节点前状态时,对于所有流向该节点的节点,如果在这些节点的节点后状态中, 一个变量是依赖输入变量,则该变量的状态是依赖输入变量的。 本专利技术所述的依赖输入变量为,由输入变量定义的变量是依赖输入变量,由输入 变量和依赖输入变量定义的变量也是依赖输入变量。 本专利技术所述的依赖循环变量和依赖非输入分支变量统称为非依赖输入变量,非依 赖输入变量对应的节点为非依赖输入节点。 本专利技术所述的步骤四中删除非依赖输入节点的方法为,删除的方法仍然按照节点 的基本结构进行删除,如果一个分支节点或者汇合节点不包括任何节点,可以使用空节点 表不。 本专利技术所述的空节点就是不执行任何操作的节点,空节点对应的语句为空语句。 本专利技术所述的针对ICFG的每一条路径,在这个路径上只有两类节点,一类是对应 于赋值语句的节点,另一类是对应于条件语句的分支节点。对于分支节点,如果其分支谓词 表达式是输入变量的线性表示,则可以构造出该分支谓词针对输入变量的线性表达式。 本专利技术所述的ICFG路径,该路径上每个分支节点分支取向已经确定,根据路径上 的所有分支节点构造输入变量的约束,如果定义目标函数为所有输入变量累加的最小化, 则构成典型的线性规划求解问题。 本专利技术所述的线性规划求解利用线性规划解析器,即可确定该ICFG路径的输入 条件,此条件即为该情况的输入条件,如果线性规划解析器求得该目标函数无解,则说明该 路径为不可行路径,则应排除该路径。 本专利技术有益效果是:该方法能够明显提高具有不同情况执行路径程序的WCET估 算精度。 【附图说明】 图1是本专利技术的执行步骤流程图; 图2是本专利技术的程序基本语句与程序控制流程图基本结构的对应关系图; 图3是本专利技术的确定依赖输入的核心算法流程图; 图4是本专利技术的图6程序的NLCFG ; 图5是本专利技术的实例程序GetMod本文档来自技高网
...
一种精确分析任务WCET的自动化方法

【技术保护点】
一种精确分析任务WCET的自动化方法,其特征在于:包括以下步骤,步骤一、产生程序的无循环控制流图NLCFG,建立起NLCFG节点与源程序语句的对应关系,同时循环体节点也得到标识;步骤二、利用步骤一中的NLCFG,从入口节点开始,依照深度优先策略,确定每一个变量是否是依赖输入变量及其对应的依赖输入节点;步骤三、确定步骤二中依赖输入变量中的依赖循环变量、依赖非输入分支变量,确定依赖循环变量、依赖非输入分支变量对应的非依赖输入节点;步骤四、从步骤二中删除非依赖输入节点,产生输入变量相关的无循环控制流图ICFG;步骤五、依照深度优化策略产生ICFG的所有路径;步骤六、针对步骤五的每条路径产生其输入条件;步骤七、产生步骤六中每条路径对应的WCET,利用每条路径的WCET,即可精确计算整个程序的WCET。

【技术特征摘要】
1. 一种精确分析任务WCET的自动化方法,其特征在于:包括以下步骤, 步骤一、产生程序的无循环控制流图NLCFG,建立起NLCFG节点与源程序语句的对应关 系,同时循环体节点也得到标识; 步骤二、利用步骤一中的NLCFG,从入口节点开始,依照深度优先策略,确定每一个变量 是否是依赖输入变量及其对应的依赖输入节点; 步骤三、确定步骤二中依赖输入变量中的依赖循环变量、依赖非输入分支变量,确定依 赖循环变量、依赖非输入分支变量对应的非依赖输入节点; 步骤四、从步骤二中删除非依赖输入节点,产生输入变量相关的无循环控制流图 ICFG ; 步骤五、依照深度优化策略产生ICFG的所有路径; 步骤六、针对步骤五的每条路径产生其输入条件; 步骤七、产生步骤六中每条路径对应的WCET,利用每条路径的WCET,即可精确计算整 个程序的WCET。2. 如权利要求1所述的一种精确分析任务WCET的自动化方法,其特征在于:所述的深 度优化策略是指,在处理一个节点后,把该节点的所有后续节点进行依次排队处理;排队之 后,对队列中的第一个节点仍然按照同样方法处理,这样只有在第一个节点及其后续节点 处理完毕或者无法处理之后,才开始处理第二个节点,当一个节点有一个前任节点的执行 后状态是不确定的,也就是说是没有定义的时,该节点是无法处理的,对无法处理的节点, 将此节点重新排在队列末尾。3. 如权利要求1所述的一种精确分析任务WCET的自动化方法,其特征在于:所述的依 赖输入变量的确定方法为,为每个节点设置节点执行前与执行后两个状态,节点的状态定 义了在该位置每个变量是否是依赖输入变量,节点后的状态是由该节点执行后对节点前状 态改变后的状态,节点前状态由所有流向该节点的节点后状态确定,在确定节点前状态时, 对于所有流向该节点的节点,如果在这些节点的节点后状态中,一个变量是依赖输入变量,...

【专利技术属性】
技术研发人员:姬孟洛高翔侯小静刘庆伟于素萍
申请(专利权)人:洛阳理工学院
类型:发明
国别省市:河南;41

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

1