论文部分内容阅读
为了应对移动智能设备、操作系统和应用软件的迅速发展对处理器提出的新的挑战,基准测试程序被广泛应用于处理器设计中,用于缩短仿真时间并为探索架构设计空间提供指导。当前针对ARM处理器安卓应用,基准测试程序合成方法涵盖少量的负载特征、引入微架构相关特征,合成程序具有精度低、跨微架构特性差等缺点;本文基于微架构无关特征,增加了更多特征维度的合成方法,提高了基准测试程序的精度和跨微架构特性。针对ARM平台安卓应用的特点,本文在已有特征指令混合比、寄存器依赖距离、数据的空间局部性、分支跳转变化率的基础上,增加了关键路径长度、指令的时间和空间局部性、数据的时间局部性、串行指令分布等单类特征维度生成方法。为了消除不同特征之间的耦合关系,本文提出了在一个模板程序中实现所有指定特征维度的新方法,并依据负载程序确定模板程序的生成规则,生成大量模板程序用做合成测试程序的模板库。为了从模板库中选取合适的模板程序,本文采用遗传算法选取模板;在模板拼接阶段,使用函数调用的方法将模板线性拼接。最终得到代表原始负载的基准测试程序集合。在安卓6.0系统下,针对ARMv8指令集,以Mibench中的程序作为安卓应用合成基准测试程序集合。实验结果表明,合成的基准测试程序与原始负载在微架构无关特征上的平均误差为10.25%;CPI的平均误差为9.63%;在不同的微架构配置下,CPI误差为10.37%。实验结果表明本文的合成方法具有良好的精度和跨微架构特性。