一种精确计算任务高速缓存wcet的分析方法
【技术领域】
[0001] 本发明涉及一种实时系统任务最差情况执行时间(WCET:Worst_CaseExecution Time)的分析方法,尤其涉及一种精确计算任务高速缓存WCET的分析方法。
【背景技术】
[0002] 与通用计算机系统不同,实时系统的结果只有在规定的时间范围内完成时才是有 效的,如果没有在规定的时间范围内完成时,轻则降低系统的性能,重则引起灾难性的后 果,比如飞机投弹、核泄漏。因此,对于实时系统,事先获取系统中每个任务的最差情况的执 行时间WCET有着特别重要的意义。事实上,WCET分析是实时系统任务调度及可调度性检 测的前提,也为分析系统性能的瓶颈提供支撑。
[0003] 实时任务的WCET估值决定了为每个任务分配的CPU时间。WCET分析结果越是高 估,需要为每个任务分配保留的CPU时间就越多,从而使本来是够用的计算资源因为高估 而导致资源不够用这样的误判。所以,精确地估算任务的WCET具有非常重要的意义。
[0004] 高速缓存是CPU和内存之间的一个高速数据缓存区域,是提高处理器执行速度的 一种常用手段。为提高高速缓存的调换效率,在高速缓存和内存之间按照"块"进行调换, 一个块是一个固定大小的数据单元,比如64个字节,通常包括多个数据或者多条指令。以 直接映射方式为例,其CPU的访主存地址可以表示为:
【主权项】
1. 一种精确计算任务高速缓存WCET的分析方法,其特征在于:包括以下步骤: 步骤一:产生基本块的迭代范围; 步骤二:计算高速缓存的丢失次数: 程序指令以块的形式连续存放在内存中,以块为单位从内存调入到高速缓存,当CPU 访问一条指令时,如果该指令不在高速缓存,CPU将该指令调入高速缓存,然后执行该指 令; 对任一高速缓存块,为该高速缓存块建立一个队列,该队列成员为循环体中所有映射 到该高速缓存块的指令块; 步骤2. 1 :计算循环体高速缓存块的最大丢失次数:对对应于一个高速缓存块的所有 指令块,按照从小到大顺序进行排队,指令块X比指令块y小,其定义为:如果指令块X的最 小迭代范围区间下限B1不大于指令块y的最小迭代范围区间下限a 2,同时,如果X. a1=y. a2, 则指令块x的最小迭代范围区间上限不大于指令块y的最小迭代范围区间上限; 其中指令块的迭代范围为该指令块所涉及的基本块迭代范围的集合;一个指令块中的 最小迭代范围[a,b]是指:a为该指令块中所有迭代范围的下限的最小值;如果有一个迭代 范围[c, d]满足c=a,那么一定有b彡d ; 对高速缓存队列中的指令块的迭代范围进行遍历处理,直至队列中的指令块为空,处 理方法为:形成一个最小迭代范围[e,f];其中最小迭代范围[e,f]的产生方法为:下限e 为高速缓存队列第一个指令块迭代范围的最小范围区间的下限,上限f取①和②中的最小 值:①为高速缓存队列中所有指令块迭代范围区间上限的最小值;②为高速缓存队列中所 有指令块迭代范围区间中大于e的下限最小值-1 ;队列每遍历一次之后,需要将该高速缓 存队列的指令块按照从小到大的顺序重新进行排队; 按照从小到大的顺序,对高速缓存队列中的所有指令块的迭代范围进行处理,如果该 指令块的迭代范围包括最小迭代范围[e,f],那么将该指令块迭代范围减去范围[e,f],同 时对这样的指令块进行计数;如果这样的指令块只有一个,那么,在[e,f]的迭代范围里, 只有这个指令块执行,因而其引起的丢失次数为1 ;如果在[e,f]的迭代范围里,有count 个指令块(count>l)执行,那么,这些指令块在[e,f]范围的每一次迭代都将发生丢失,从 而对应于指令块的迭代范围[e,f]的丢失次数为:(f-e+l)* C〇unt ; 步骤2. 2 :对于非循环体指令,所有执行的指令块的丢失次数均为1 ; 计算高速缓存的丢失次数:一个高速缓存块的丢失次数为所有这些丢失次数的累加; 当针对一个高速缓存块的指令块的丢失次数计算完成之后,就可以计算整个高速缓存的丢 失次数;整个高速缓存的丢失次数等于其中所有高速缓存块丢失次数的累加; 步骤三:计算高速缓存的WCET:即一个运行在高速缓存处理器上实时任务的WCET,就 是按照高速缓存全部命中计算出的WCET值加上高速缓存的丢失次数与时间惩罚的乘积。
2. 根据权利要求1所述的一种精确计算任务高速缓存WCET的分析方法,其特征在于: 所述步骤一包括以下步骤: 步骤I. 1 :构建程序的控制流图CFG ; 步骤1. 2 :依据控制流图CFG,对赋值节点、汇聚节点和分支节点分别进行不同的操作, 产生三种节点分别对应的变量的值范围; 步骤1. 3 :依据步骤1. 2中变量的值范围,根据公式
产生基本块的迭代范围; 其中,表示基本块B在其相对应归纳变量j的值范围[m,η]的迭代 范围,表示该迭代范围的下限,siip(i:ocpto^e(5^:;;..))表示该迭代 范围的上限,stride (j)表示归纳变量j的跨度,其跨度为每次循环迭代归纳变量j的增量。
【专利摘要】一种精确计算任务高速缓存WCET的分析方法,包括以下步骤:首先产生基本块的迭代范围,其次根据基本块的迭代范围计算出指令块的迭代范围,从计算出的指令块的迭代范围中找出所有指令块的最小迭代范围,依据指令块的最小迭代范围计算其丢失次数并去除此最小迭代范围,最后根据一个个最小迭代范围计算出高速缓存总的最大丢失次数从而计算出任务高速缓存的WECT。本发明方法能够明显提高针对高速缓存的WCET估算精度。
【IPC分类】G06F9-44
【公开号】CN104679521
【申请号】CN201510109979
【发明人】姬孟洛, 高翔, 舒云星, 秦杰, 刁文广, 陶荣, 李雅萍
【申请人】洛阳理工学院
【公开日】2015年6月3日
【申请日】2015年3月13日