论文摘要
在设计新的处理器时,体系结构设计人员需要从很大的设计空间寻求最优的设计方案。设计方案的优劣依赖于精确到时钟周期级别的微体系结构模拟器评估。然而,现有模拟器的速度一直是瓶颈,严重制约着体系结构设计师从更多的设计方案中寻求最优的设计,尤其是在多核乃至众核处理器的设计中,模拟器的速度瓶颈显得更加严重。现有的模拟加速方法主要对测试程序的部分动态指令段进行详细模拟并预热,虽然加快了模拟速度,但存在两个关键问题:(1)如何既简单又合理地选取部分动态指令段;(2)如何尽可能少地进行“预热”。因此,研究新的处理器微体系结构模拟加速策略十分必要。二阶段系统抽样模拟加速策略、康托尔模拟加速策略对合理选取部分动态指令段提供了有效支持;功能预热加速策略有效减少了“预热”长度。性能基准测试程序的程序行为并不是随机的,它呈现出周期性,不同程序的程序行为周期不同。传统的抽样模拟方法要么不考虑周期性,详细模拟许多冗余的指令执行,从而导致模拟速度的下降;要么试图严格考虑周期性,但缺乏捕捉周期性的有效手段。针对上述问题,二阶段系统抽样模拟将详细模拟指令的选择分为两个阶段。第一阶段将测试程序的动态指令流等分成长度较大的指令段,在这些段中以等间隔选取一定数目的指令段作为候选详细模拟指令段。第二阶段将第一阶段选出的每个段等分成长度更小的指令段,再以等间隔选取一定数目的指令段作为最终的详细模拟指令段。与传统的抽样模拟方法相比,该方法既可以减少冗余,又提供了有效考虑程序行为周期性的手段,可以通过设置参数演变成多种其他的抽样策略。TSSS模拟器是二阶段系统抽样模拟策略的原型,也可作为一种程序行为分析的工具。基于TSSS模拟器的实验表明,二阶段系统抽样模拟策略和目前最快的SMARTS策略相比可以获得15%的加速,而模拟精度相当。康托尔模拟加速策略以非常规方法解决指令选择问题。该策略将分形理论应用到微体系结构模拟中,使用三分康托尔集的构造过程进行详细模拟指令段的选择。性能基准测试程序的程序行为周期性表现为一种“群聚”性,而康托尔集也具有这一特性,使用康托尔集的构造过程可以近似模拟程序的行为特性。康托尔模拟加速策略利用“群聚”性建立CPI(Cycle Per Instruction)预测模型,利用该模型用户只要确定一个参数,即分割次数,就可以进行模拟,是一种简单明了的模拟策略。CantorSim模拟器是康托尔模拟加速策略的原型。基于CantorSim的实验表明,康托尔模拟加速策略比SMARTS策略的速度提高了23%,CPI平均相对误差为3.2%,仍具有较高精度。功能预热加速策略解决“预热”问题。在只有部分指令被详细模拟的技术中,由于详细模拟之前的功能模拟并不模拟微体系结构的状态,所以在开始详细模拟时必然会造成模拟失真的情况。基于等距抽样“功能预热”加速策略将抽样策略中功能预热指令段分成许多等长度的小指令段,然后以等间隔选取一些指令段进行功能预热,其它指令段以快速的功能模拟方式执行,在保证精度的情况下提高了整体模拟速度。该策略给出了其参数优化的经验模型,便于用户使用。实验表明,基于等距抽样的“功能预热”策略可以获得27.8%的模拟速度提升,同时模拟精度并未显著降低,有些指标甚至更为精确。随着多核处理器架构的出现,微体系结构模拟的速度面临着更大的挑战。如何全面地、正确地、快速地模拟多核处理器的性能还未得到根本解决。多核模拟加速策略提出了多核处理器的模拟方式,给出了完备多核模拟所需次数的理论模型,并提出了加速方法。