论文部分内容阅读
处理器性能分析主要有两种方式,一种是微架构仿真,一种是解析建模。当前最快的时钟精确型仿真器也比实际硬件执行慢了近五个数量级,而处理器解析模型根据机理分析或经验拟合得到方程,使用从软件trace中收集的统计信息作为模型输入,可以快速实现不同架构处理器性能的分析。但是解析模型需要对大量的软件trace信息进行分析统计,完整的trace分析统计时间甚至比trace生成时间慢了三到四倍,而以往关于解析模型的研究往往忽略了这个问题。因此本文提出面向解析模型的trace信息采样方法,以进一步提高解析模型的效率。本文所面向的解析模型是基于区间分析的CPI栈模型,主要包括稳态吞吐率模型,访存并发度模型和Cache缺失率模型等模块。经过对不同采样方式的研究及实验分析,本文对解析模型输入的处理提出两级trace信息采样的方式,包括基于程序阶段性分析的区间采样和区间内trace信息的统计采样。其中第一级采样的区间是指固定指令长度的程序片段,通过程序在线阶段性的分析选择具有代表性的区间并采样;第二级采样是对特定模型的trace分析单元进行采样,并完成相应的trace信息统计。论文详细分析了不同参数选择下的采样结果,通过相应指标分析确定合理的采样参数。此外,本文量化了两级采样参数对性能估计的影响,给出了采样误差估计的计算方式。本文采用了21个来自SPEC CPU2006中的基准测试程序验证两级采样方法的准确性。在Gem5的AtomicSimpleCPU模式下实现trace信息的两级采样,并将采样后的trace统计信息通过模型计算得到相应的性能估计值。最后将采样结果与完整trace信息的统计结果比较,在合理的采样参数选择下得到每个性能分析模块对应的性能估计值的相对误差平均在5%以内,相对于统计全部trace的时间加快了近10倍。