论文部分内容阅读
计算机微体系结构模拟在计算机体系结构设计过程中扮演了重要角色。无论在工业界还是学术界,微体系结构模拟都是设计中必不可少的技术,因为设计者们需要利用该技术去探索广阔的设计空间,评估大量的设计方案,从而接近或达到最优设计。遗憾的是,几十年来,模拟速度缓慢一直是该技术的瓶颈,令设计者们如鲠在喉。当计算机进入多核/众核时代,模拟速度缓慢的问题更加突出,其原因大致有二:(1)结构部件更多且设计更精细的多核系统带来了更庞大的设计空间需要探索;(2)为了对多核/众核系统进行更好的评估验证与压力测试,规模更大且更复杂的多核多线程基准测试程序需要模拟。所以,多核微体系结构模拟加速的研究具有重要的学术意义与应用价值。采样模拟是一种普遍流行并被广泛使用的有效模拟加速策略。该策略通过模拟精心挑选的小部分程序样本来推断整个程序在系统中的运行性能,从而大幅缩短模拟评估周期,提高设计方案验证速度。目前,面向单核系统的采样模拟加速技术已经比较成熟。该技术依据程序运行过程中的动态指令数选取样本,例如,一个样本通常被定义为固定数量的指令。因此,该类技术叫作基于指令的采样模拟加速技术(Instruction-Based Sampling, IBS)。然而,当面向多核系统的模拟时,IBS技术效果不佳甚至会导致错误的评估,原因是多核多线程测试程序在运行过程中线程之间的同步交互会造成其运行时动态指令的数量具有不确定性,导致IBS技术失去其应用的基本原则。所以,一种基于程序执行时间的采样模拟加速技术(Time-Based Sampling, TBS)应运而生。不同于IBS, TBS技术通过选取固定长度的执行时间作为样本进行采样模拟,可以更好地完成多核系统运行多线程测试程序的性能评估。然而,相比于传统的IBS, TBS技术远未成熟,面临样本精确选择困难,单一采样策略效果不佳,功能预热代价较大等诸多具有挑战性的问题。针对这些问题,对面向多核微体系结构模拟的TBS技术展开深入的研究。首先,针对TBS技术的样本精确选择困难问题,提出利用多线程基准测试程序的分形行为来指导样本选择的采样策略PCantorSim。PCantorSim规避传统样本选取策略中的复杂预处理过程,提升了采样效率并具有广泛适用性。具体来说,PCantorSim发现多线程基准测试程序在执行过程中除了具有阶段性的周期行为之外还存在自相似性的分形行为,即程序的运行时行为特征在不同的时间尺度下的观察结果具有自相似性。基于这个发现,提出的PCantorSim采样策略可以快速精准地选取具有代表性的样本片段,大幅缩短采样模拟时间。在对PCantorSim的测试评估中,将多核基准测试程序集PARSEC中的程序运行在模拟的8核系统上,相比于未采样的全详细模拟,PCantorSim采样模拟的模拟速度提高了20倍,且测试程序的平均执行时间预测误差仅为5.3%。其次,针对单一采样策略难以充分发挥TBS的技术优势问题,提出基于分段-分形的多层采样策略THS (Two-level Hybrid Sampling). THS通过对TBS技术中多个单一采样策略的详细分析对比揭露了一系列之前尚未发现的现象。例如,(1)相比于预测详细模拟阶段的IPC (Instructions Per Cycle),准确预测快速模拟阶段的IPC更为重要;(2)快速模拟阶段的IPC预测准确性由样本选取策略以及快速模拟IPC预测算法共同决定;(3)当选取的样本片段长度较小时,基于分形的采样策略(Cantor Sampling)更准确,而当选取的样本片段长度较大时,基于分段的周期性采样策略(Periodic Sampling)更准确:(4)随机采样策略(Random Sampling)不适合应用到TBS技术中。基于这些发现,THS精心设计了基于分段-分形的多层采样策略,可以利用不同单一采样策略的优点并规避它们各自的缺点,从而更好地发挥TBS技术的性能评估准确性和模拟速度加速比优势。实验评测结果表明,THS的程序平均执行时间预测误差为4%,模拟速度加速比为40倍。对THS进一步地评估表明,它还有较高的跨微体系结构评估准确性,可以有效指导多核微体系结构设计方案的选择。最后,针对TBS技术中功能预热代价大的问题,提出实时在线的功能预热加速机制SOL (Shorter On-Line Warmup)。SOL机制采用两阶段预热设计,首先第一阶段的Prime策略选取适当长度的功能预热模拟片段,然后在第一阶段选取的预热片段内再实施经过扩展优化的NSL (No-State-Loss)预热策略,从而减少功能预热代价且保持较好预热效果。通过对SOL参数的探索调优,确定合理的功能预热参数组合,达到性能评估准确度以及模拟速度加速比的有效均衡。实验结果表明,SOL机制具有广泛适用性,可以集成到现有的多个TBS策略中,快速预热采样模拟中的功能部件,并在保持模拟精度的前提下提高模拟速度加速比。