论文部分内容阅读
“存储墙(Memory Wall)”问题已经提出了10多年,学术界、工业界都在努力地改善CPU与Memory之间的差距。随着多核技术的发展,“存储墙”问题更严峻,内存的延迟与带宽都成为了计算机系统性能提升的主要瓶颈。访存行为分析是研究“存储墙”问题的重要手段,同时也是研究优化体系结构设计、系统软件(操作系统和编译器)优化和应用性能提高的重要手段。
计算机内存系统访存行为研究一般分为三个方面:(1)产生并收集访存踪迹(Trace);(2)分析访存踪迹或者进行踪迹驱动的模拟(Trace-Driven Simulation);(3)优化应用或内存系统。
本文介绍对计算机内存系统的研究工作,在上述三个方面分别作出了以下贡献:
(1)本文利用HMTT访存Trace工具在多个真实平台(Intel、AMD、龙芯)上对多类应用(SPEC CPU,桌面应用,SPECjbb,Oracle等)的访存行为进行分析,发现下述重要的访存特征:
·应用访存的阶段性特征会导致突发带宽的产生,在应用执行的生命周期内有10%的时间会产生超出平均带宽达77%的突发访存。这种现象对性能的影响在多核平台会进一步放大;
·Last Level Cache( LLC)不命中的访存中依然存在约40%以上有固定步长的规则访存(流访存),这种比例在浮点应用更是高达80%。内存控制器硬件预取是一种通过有效利用这些规则访存提高性能的手段,但经过进一步分析发现,在多核系统中多进程(线程)并发执行会出现交错访存现象,这降低进程的规则访存比例,影响内存控制器的硬件预取效果;
·操作系统上下文切换会引起1~33.6%的Cache不命中率、0.7~59%的TLB不命中率,而且操作系统内核的Cache/TLB替换重填(Replace、Refill)行为具有应用无关性。
(2)本文在对访存性能分析的基础上提出一种硬件预取层次模型(PrefetchingHierarchy),并总结分析影响该预取层次模型的五个基本问题:虚拟地址与物理地址对预取的影响、访存序列监测粒度对预取的影响、预取部件协作与独立对预取的影响、宿主Cache/预取部件统一与分离对预取的影响以及多核宿主Cache私有与共享对预取的影响。本文进一步提出了一种优化的预取层次结构(Optimized Prefetching HierarchyArchitecture,OPHA),该结构通过采用预取部件协作模式、细粒度监测、地址空间分区预取策略等技术提高预取性能。实验表明,优化硬件预取层次结构能提高系统访存性能约31%。本文还初步探讨了访存信息流(Memory Access Information Flow)的传递与共享对内存系统性能的影响以及通过反向TLB(Reverse TLB,RTLB)技术优化访存信息流传递路径的思想。
(3)本文提出一种平台无关的全系统访存Trace收集机制。该机制采用内存DIMM槽硬件侦听方式(DIMM-Snooping),同时解决了设计与实现中的三个关键问题:采用化简DDR状态机来支持内存运行频率;采用内核同步模块来区分出不同进程的虚拟地址访存Trace;采用“千兆网-RAID组合”技术以及压缩与同步策略来输出和还原大规模虚拟访存Trace。
本文工作设计并实现了基于以上侦听机制与关键技术的原型系统——HMTT(HyperMemory Trace Tracker)。多个角度的实验验证与性能评估表明,HMTT是一种高效的、可信的访存踪迹收集工具。