● 摘要
任务的实时性限制要求系统必须在规定的时间间隔内完成指定的功能,这一点对于硬实时应用尤为重要。对于硬实时应用,错过执行期限通常意味着任务失败,系统失效甚至灾难事故。在实时系统中,任务在最好及最坏执行情况下的执行时间的差异程度反映了系统的时间可预测性。实时任务在最坏执行情况下的执行时间(WCET:Worst-Case Execution Time)与实时系统的安全性紧密相关,因此,准确分析任务的WCET是保证系统可靠性的前提。此外,降低实时任务WCET意味着在相同硬件平台上可调度更多的任务运行,从而提升了系统资源的利用效率。
现代处理器通常使用可高速访问的片上Cache存储来填补处理器与存储系统间的性能差异。在一般情况下,Cache存储的使用能够显著提升任务的访存性能,缩短任务的执行时间。但是,Cache存储的使用会导致访存时间难以预测,进而使得任务执行时间难以界定,WCET分析难度增加。随着多核架构的普及,以及实时系统对于任务并行需求的不断增强,多核处理器在实时系统的应用成为必然趋势。作为主流的多核架构,多核共享Cache平台下的资源(如片上最后一级Cache)共享导致并行任务访存产生相互干扰,从而使得精确的任务WCET分析困难重重。正因如此,多核架构在实时领域的应用较通用领域进展缓慢。当前,面向多核共享Cache实时环境的Cache相关研究极为有限,而且大多存在不同程度的局限性。因此,在保证访问时间可预测的前提下,开展多核共享Cache的优化管理相关研究具有广阔前景,并对其在实时领域的高效应用具有重要的理论及现实意义。
有鉴于此,本文以优化多核共享Cache平台下的指令访问为出发点,进行了时间可预测的多核共享Cache管理技术相关研究。主要研究内容及成果如下:
1)针对任务WCET分析中指令Cache访问导致程序执行时间变化的问题,从体系结构角度思考了面向实时系统的指令Cache设计原则,提出了一种可简化指令Cache访问时间分析的、基于程序基本块的指令预取(BBIP:Basic-block based instruction prefetching)机制,并提供了软硬件实现思路。评估结果表明,该技术能够有效降低平均及最坏执行情况下的指令Cache访问缺失数,提升指令Cache访问性能,并大大简化WCET评估中指令Cache访问时间分析;
2)针对当前主流的整体Cache锁定机制可能导致任务WCET评估值过大的问题,通过将BBIP指令预取技术与Cache锁定策略结合,设计了一种新型的混合局部Cache锁定机制。为了锁定“最优”的指令,本文提出了一种以基本块为单位、基于贪心算法思想的指令Cache锁定内容选取算法。评估结果表明,相对于典型静态Cache分析方法及整体Cache锁定机制,本文提出的混合局部Cache锁定机制能够有效降低任务WCET评估值。此外,该混合局部Cache锁定机制为多核共享Cache平台下的共享指令Cache的管理提供了基本的机制支撑;
3)通过多核共享Cache平台下的指令访问干扰来源分析,在上述指令预取方法及局部Cache锁定机制的基础上,本文提出了一种分层的指令Cache优化管理机制。在该机制中,通过划分技术隔离不同处理器核间的访存干扰;通过指令预取、锁定方法的联合使用,减少处理器核内存在的内部及外部Cache干扰,从而提升Cache资源的利用率,并简化WCET分析中的Cache访问时间分析。评估结果表明,与现有Cache静态分析及Cache划分方法相比,该分层的指令Cache管理机制能够有效降低核间共享指令Cache访问冲突,隔离核间指令访问干扰,简化Cache访问时间分析,并显著降低任务WCET评估值,提升系统资源利用效率;
4)通过分析不同任务的指令访问分布特点,本文提出了一种以指令Cache资源为中心的任务部署策略。通过协同部署具有不同指令访问分类的任务,减小任务间的指令访问冲突,提升指令Cache空间的利用效率,进而提升整个系统的资源利用效率。
相关内容
相关标签