论文部分内容阅读
通过建模量化分析程序访存特征与硬件缓存机制之间的关系是设计高性能存储子系统的关键。本文针对存储子系统中多层级Cache与DDR控制器构建了缺失行为与缺失延迟惩罚解析模型。通过组合不同硬件模块的解析模型可以实现多种存储子系统性能的快速评估。按照存储层级进行划分,本文的主要创新如下:针对L1 Cache的缺失行为,本文搭建了以堆栈距离变化系数为基础的Cache乱序访存缺失行为经验模型。传统建模方法忽略了乱序访存机制对访存行为的影响,使其预测误差高达17%以上。本文通过机理分析,利用公式形式化描述出访存乱序执行与堆栈距离变化的关系。借助机器学习的方法,求解了公式中无法理论推导的未知系数,将模型预测精度从83%提升至95%。针对L2及以下层级Cache的缺失行为,由于无法在非仿真的环境中获得下游存储层级的访存序列,传统模型只能预测L1 Cache的缺失行为。本文提出了基于全概率事件的多层级Cache访问缺失行为预测模型,将下游Cache的访存请求到达率与上游Cache访问缺失的条件概率进行关联,通过遍历所有访存场景的条件概率,将下游Cache的访问缺失率用全概率公式计算出来。实验结果表明,本文提出的模型可准确预测下游Cache的访问缺失次数,精度达94%以上,极大地拓展了传统模型的使用范围。针对多层级Cache中集成的MSHR硬件模块,本文优化了基于访存指令数据依赖关系的访存并发度机理模型,考虑了指令窗口内多数据依赖关系与Cache访问缺失率的影响,将访存并发度的预测精度从72%提升至96%。另外,对于多地址槽的MSHR硬件结构,本文补充了Cache访问缺失有效服务时间的计算方法,将延迟惩罚的预测精度提升了20%。为了计算DDR平均访问延迟,本文推导了以访存步长分布为输入的DDR访问延迟机理模型。最新研究提出的DDR访存请求到达率满足泊松分布的假设,在单核场景下并不满足,使得其模型的预测误差在单核场景下达到20%以上。本文通过概率推导,挖掘出程序访存步长与DDR行缓冲命中率之间的关系,构建了以访存步长分布为输入的DDR平均访问延迟解析模型。与前人研究相比,本文提出的模型在单核场景下预测精度能提升14%以上,而在多核场景下与前人研究保持持平。通过组合各个硬件模块的解析模型,本文实现了面向真实处理器龙芯GS264与ARM Cortex-A9的存储子系统性能预测。在49种基准测试案例下,本文的解析模型具有93%的存储子系统性能预测精度。此外,本文利用解析模型对比分析了龙芯GS264与ARM CortexA9的存储子系统性能差异,帮助定位出龙芯GS264存储子系统的性能瓶颈,并提出优化意见。