一种优化实时任务WCET的指令预取内容选取方法技术

技术编号:8934399 阅读:211 留言:0更新日期:2013-07-18 02:57
本发明专利技术提出了一种优化实时任务WCET的指令预取内容选取方法,在现有指令高速缓存硬件中添加指令信息表(BBIT)的硬件结构。本发明专利技术方法首先对硬件配置进行初始化,通过编译器或者静态程序特征分析工具收集静态程序基本块集合,然后剔除只覆盖一个存储块的基本块,并收集最坏执行情况下的各程序基本块的执行频度,按照执行频度对程序基本块排序,最后按顺选取指定数量的程序基本块的信息存储到BBIT中。在指令高速缓存访问过程中,同时查找指令高速缓存和BBIT,能够有效避免最坏执行情况下的指令高速缓存访问缺失,满足实时任务的需求;同时,本发明专利技术方法能有效降低硬件设计开销,实现方法简单、直接。

【技术实现步骤摘要】

本专利技术涉及一种指令预取内容的选取方法,尤其是一种面向实时系统中实时应用的、优化最坏执行时间(WCET:fforst-Case Execution Time)分析精度的指令预取内容的选取方法,属于计算机系统结构与实时嵌入式系统领域。
技术介绍
与通用计算机系统主要关注平均执行情况下的性能不同,实时系统更为关注最坏执行情况下的系统性能及任务执行时间。错过任务的执行期限,通常会导致实时系统,特别是硬实时系统故障,引起不良后果甚至灾难性事故,比如:撞车事故、核泄漏等。准确地预测系统在最坏执行情况下的执行时间对于实时系统的分析及设计意义重大。实时系统中实时应用的最坏执行时间(WCET)分析对于实时系统的可调度分析至关重要。WCET分析的精度及难易程度很大程度上依赖于底层处理器模型的复杂性。由于高速缓存访问时间的不确定性,运行于现代处理器结构之上的实时应用的WCET分析极为困难。虽然高速缓存会带来执行时间的不确定性,但是在实时系统,特别是高性能实时系统中使用高速缓存,特别是指令高速缓存已经成为一种趋势。因此,分析指令高速缓存对于实时应用WCET分析的影响对于精确的WCET评估必不可少。指令高速缓存访问时间的不确定性源于高速缓存访问的命中与缺失导致的访问时间差异。因此,准确预测指令访问的命中与缺失情况对于精确的WCET分析至关重要。在常见的WCET分析技术中,程序基本块通常作为一个基本的时间分析单位用于实时应用WCET的评估。一个程序基本块是具有单一程序执行入口和出口的一段程序指令序列,以下简称基本块。基本块的最后一条指令通常是跳转指令。由基本块的定义可知基本块具有如下性质:1.基本块作为一个整体执行,即:一旦进入基本块,基本块内的所有指令都将被执行;2.基本块内的指令按照指令在程序代码中的静态顺序执行。由上述性质可知,基本块内的指令具有相同的执行次数,如果能够同时保证基本块内的指令具有相同的命中与缺失情况(“冷启动”除外),WCET分析中原本的指令级别的命中与缺失判断即可简化为应用内部基本块的命中与缺失情况的判断,从而大大简化程序WCET分析。指令预取作为一项常见的用于改进指令高速缓存访问性能的技术,通常服务于通用计算机系统,用以改善平均执行情况下的Cache访问命中率。当前,绝大部分的指令预取技术的提出遵从“加速常见情况”的原则,没有考虑实时系统中的实时应用的特殊需求,特别是WCET分析的需求。现有的WCET分析方法大多从应用角度入手,针对应用的特性,特别是存储访问特性设计专门的分析方法。此类方法虽然针对某一类应用可能有效,但是不具有普适性,一旦应用类型改变,方法的有效性将无法保障。因此,从系统结构本身出发,在系统结构设计之初即考虑实时应用WCET分析需求可能是改善实时应用WCET分析精度的突破口。设计服务于WCET分析的指令预取技术对于改善指令高速缓存访问的确定性,提升WCET精度具有重要的研究价值。同时,由于处理器片上硬件资源极为宝贵,因此,必须精心设计预取机制,以便对应的硬件实现代价小。
技术实现思路
本专利技术提出了一种优化实时任务WCET的指令预取内容选取方法,该方法服务于一种面向实时任务的基于程序基本块的指令预取(BBIP:Basic_Block based InstructionPrefetching)方法。本专利技术提出的一种优化实时任务WCET的指令预取内容选取方法,在现有指令高速缓存硬件中添加指令信息表(BBIT:Basic-Block Information Table)的硬件结构,指令信息表用于存储从静态程序基本块集合中选取的指定数量的基本块信息。BBIT中保存的程序基本块信息,主要是基本块的起始块地址以及块长度。指令预取单元根据查找BBIT返回的信息对基本块覆盖的存储块执行预取。本专利技术提出的优化实时任务WCET的指令预取内容选取方法,具体步骤如下:步骤一:硬件配置初始化,具体是,对影响WCET分析的微结构的参数进行设置,影响WCET分析的微结构包括高速缓存、流水线及分支预测器等;步骤二:通过编译器或者静态程序特征分析工具收集静态程序基本块集合;步骤三:从静态程序基本块集合中剔除只覆盖一个存储块的基本块;步骤四:使用WCET分析工具对任务执行WCET静态分析,收集最坏执行情况下的程序基本块的执行频度,并将每个程序基本块表示为一个三元组:(起始块地址,块长度,执行频度);步骤五:按照基本块的执行频度从高到低的顺序,对静态程序基本块集合中的基本块进行排序,得到一个有序的基本块集合;对于执行频度相同的基本块,依照块长度从大到小的顺序排列;执行频度和块长度均一致的基本块的排列顺序随机;步骤六:设BBIT中包含η个表项目数,将有序基本块集合中的前η个基本块的信息存储到BBIT中。基于本专利技术提供的指令预取内容选取方法,进行指令高速缓存访问的方法包括如下步骤:步骤1:程序运行初始化;具体是,设置程序运行时环境,包括寄存器初始化或恢复,程序计数器PC初始化或恢复等;步骤2:从静态程序基本块集合中选取指定数量的基本块信息填入BBIT中;步骤3 =CPU执行单元依照程序计数器PC值,计算下一条指令的有效地址,该地址作为目标地址;步骤4:将目标地址按照由高位到低位的顺序划分为三个字段:tag (标签)、set(组号)及offset (组内偏移);步骤5:目标地址匹配与基本块信息查找;根据目标地址的set及tag字段的信息,从指令高速缓存中查找目标地址对应的高速缓存块,同时查找BBIT ;若目标地址在指令高速缓存中未命中,将预取标记PF置位;若在BBIT中匹配到相应的地址,输出相应的起始块地址和块长度,否则BBIT输出不合法的起始块地址和块长度“0,O” ;步骤6:预取单元检查预取标记PF及BBIT的输出,如果PF被置位且BBIT的输出的起始块地址以及块长度合法,则根据起始块地址以及块长度执行指令预取;否则,不执行指令预取操作。所述的步骤5包括两个并行的子步骤5.1和5.2:步骤5.1:依据目标地址的set字段定位目标地址所映射的高速缓存组,将该高速缓存组的各个高速缓存块的tag字段与目标地址的tag字段逐一进行比较,若找到匹配的结果,本次高速缓存访问命中,根据目标地址的offset字段从匹配的高速缓存块中读出相应的指令字并返回给指令执行单元;若未找到匹配的结果,本次高速缓存访问缺失,此时,高速缓存硬件单元从下一层指令存储中调入相应的指令存储块,替换掉所映射的高速缓存组中最旧的高速缓存块,并依据offset字段取出相应的指令字返回给指令执行单元,同时,高速缓存硬件单元将预取标记PF置位。步骤5.2:将目标地址的tag和set字段组成块地址(BA:block address),将块地址作为关键字在BBIT中进行检索,如果找到相应表项,输出基本块的起始地址及块长度;否则,非法的起始块地址和块长度“0,O”。相比现有技术,本专利技术的指令预取内容选取方法具有以下优点和积极效果:(I)有效降低硬件设计开销;由于实时应用通常具有较少的最坏情况执行“热点”,因此,通过选取少数“热点”基本块,并对应的基本块信息存储在BBIT中,即可实现较优的高速缓存访问性能及WCET分析精度,从而有效降低BBIT的大小,节省相应的硬件开销。本文档来自技高网
...

【技术保护点】
一种优化实时任务WCET(最坏执行时间)的指令预取内容选取方法,在现有指令高速缓存硬件中添加指令信息表(BBIT)的硬件结构,BBIT用于存储从静态程序基本块集合中采用所述的指令预取内容选取方法选取指定数量的基本块信息,其特征在于,所述的基本块信息包括基本块的起始块地址以及块长度;所述的指令预取内容选取方法包括如下步骤:步骤一:硬件配置初始化,对影响WCET分析的微结构的参数进行设置,影响WCET分析的微结构包括高速缓存、流水线及分支预测器;步骤二:通过编译器或者静态程序特征分析工具收集静态程序基本块集合;步骤三:从静态程序基本块集合中剔除只覆盖一个存储块的基本块;步骤四:使用WCET分析工具对任务执行WCET静态分析,收集最坏执行情况下的程序基本块的执行频度,并将每个程序基本块表示为一个三元组:(起始块地址,块长度,执行频度);步骤五:按照基本块的执行频度从高到低的顺序,对静态程序基本块集合中的基本块进行排序;对于执行频度相同的基本块,依照块长度从大到小的顺序排列;执行频度和块长度均一致的基本块的排列顺序随机;步骤六:假设BBIT中包含n个表项目数,将有序基本块集合中的前n个基本块的信息存储到BBIT中。...

【技术特征摘要】

【专利技术属性】
技术研发人员:万寒倪璠龙翔高小鹏姜博
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:

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

1