论文部分内容阅读
内存访问延迟一直是制约计算机系统整体性能的瓶颈,计算与存储之间性能上的鸿沟导致CPU的运算能力因访存操作而产生大量的空等时间。Cache技术可以有效地缓解或隐藏存储访问延迟,Cache利用局部性原理存储CPU频繁访问的指令和数据以减少处理器的访存次数。但是由于单芯片所能提供的带宽、Cache等存储资源有限,片上多核处理器(CMP)对这些共享存储资源的竞争访问导致“存储墙”问题更加严重,因此Cache预取技术研究对提高CPU的性能和效率有重要意义。
预取技术可以隐藏存储访问延迟,通过计算和访存的重叠在Cache可能会发生失效之前发出预取请求以便提前将数据取回Cache使流水线无停顿的执行。同时预取必须保证及时、准确并且产生尽可能小的额外开销。另外预取的负面效应也是必须考虑的因素,例如Cache污染(即把将要使用或频繁使用的数据替换出Cache,而换入未来不会被使用的数据)和带宽的浪费。
目前绝大多数的主流CMP处理器都使用私有一级(或一级和二级)Cache,共享二级(或三级)Cache的片上存储结构。这种结构通过共享最后一级Cache和更低的存储层,最大限度的提高资源利用率避免重复开销。但是共享Cache技术也带来一些负面影响,如多个核竞争访问共享Cache使部分核无法及时获取数据,流水线的吞吐率下降,盲目Cache块的替换增加。如果共享Cache访问缺失,处理器需要等待数十甚至上百个CPU周期,数据存取将成为计算中更为严重的性能瓶颈,CMP的计算效能无法充分发挥。所以如何增加Cache访问命中率和保证及时的数据预取是CMP面临的挑战。
文章首先讨论了软件预取、硬件预取和软/硬件混合预取技术的优劣,重点介绍了硬件预取技术的研究成果:Runahead execution、Future execution和Dual-core execution,在分析了三种预取技术的特征之后提出了将Runaheadexecution与Future execution结合起来的构想,并在Simics模拟器上将其实现。
文章以减少二级Cache访问缺失、提高二级Cache命中率为主要目标,利用CMP充足的计算资源实现预取,对目前较为新颖的预取技术提出改进,实验结果表明改进后的预取架构在未过分牺牲计算资源的情况下取得了较高的Cache命中率,提高了CMP的效能。