论文部分内容阅读
多核/众核架构显著的提升了现代处理器的运算潜能,但同时也对系统的数据吞吐量提出了更高的要求。缓存系统是解决访存瓶颈的有效手段。为了弥补处理器与主存间的性能差异,现代处理器的缓存架构发生了深刻的变化。首先,片上的SRAM共享缓存在容量上得到了显著的提升,这使得SRAM缓存系统能够覆盖更宽的重用距离。其次,在传统的SRAM缓存与主存之间增加了新的缓存层。新的缓存层基于3D堆叠的DRAM实现,提供了带宽和容量上的双重优势。缓存结构的演化为“内存墙”问题提供了有效的解决方案,但也对缓存设计提出了新的挑战。为了提高末级缓存的资源利用率,需要识别缓存无法覆盖的长距离数据访问,并限制这些数据对缓存资源的占用,以避免缓存污染。与此同时,末级缓存由所有运算核心共享,缓存的资源分配过程主要遵循硬件层面的替换算法规则。然而,自由的缓存资源竞争往往不能达到最优的分配结果,因此需要在软件层面对共享缓存资源的分配进行更加精细的控制。另一方面,新的存储介质要求对缓存组织结构进行全新的考量。采用3D堆叠技术的DRAM缓存具有与传统SRAM缓存完全不同的访问特性,无论是组相联结构还是直接映射结构,应用至DRAM缓存时都无法同时获得高命中率及低访问延时。为了提高共享缓存的资源利用率,优化缓存组织结构,分别提出了缓存污染感知的内存分配、执行阶段感知的共享缓存动态划分、DRAM缓存的半直接映射。缓存污染感知的内存分配工作在标准库层,在在线的环境中解决了末级缓存的污染问题。核心是低开销的在线局部性监测机制,以及具有高准确度的在线局部性预测机制,分别基于块内访问相似性和块间访问相似性进行设计。在内存分配的过程中,监测器及预测器对各内存块的访问局部性进行实时判定,根据访问特征确定各部分数据对缓存资源的需求,并最终通过页着色机制完成缓存资源的分配。该扩展系统兼容标准分配接口,在完成内存分配的同时,为上层应用程序提供透明、低开销的共享缓存污染控制服务。实验结果表明,该系统可提升45%的程序性能,与此同时将系统开销控制在1%以内。阶段可感知的共享缓存动态划分工作在操作系统层,解决了进程间末级缓存资源的动态分配问题。这种缓存划分技术对程序的行为变化非常敏感,可根据程序的数据访问特征对划分策略进行实时调整。整体包括三项子技术:多级阶段监测技术实现了对程序行为的实时追踪,基于分形理论的缺失率曲线生成技术实现了在线的局部性监测,低开销的页面重映射技术实现了对缓存划分的高效调整。系统测试结果表明,该项技术可以准确的追踪程序的阶段变化,其动态的划分策略显著优于缓存资源的自由竞争或静态划分,整体系统开销在2%以内。DRAM缓存的半直接映射工作在硬件层,解决了单一数据映射对命中率与访问延时的约束。该技术受如下观察的启发:在DRAM缓存中使用单一的数据映射策略(直接映射或组相联)难以同时获得高命中率及低访问延时,因此,需要根据数据的页内访问顺序应用混合的映射策略。对于首访块采用静态映射以降低访问延时,对于后继块采用动态映射以提高命中率。研究中同时提出了用于权衡访问热度和缺失开销的替换算法,以及用于处理数据类型变化的迁移机制。模拟实验的结果表明,该缓存结构可以达到组相联缓存的命中率,以及直接映射缓存的访问延时。综上所述,所提出的技术在软硬件等多个层面对缓存系统进行了优化,着重于提高末级缓存的资源利用率以及访问效率,部分解决了在线局部性分析、运行时缓存分配、DRAM缓存组织等核心问题。