论文部分内容阅读
现代的众核处理器/协处理器往往具有强大的计算能力,这使得有效的内存带宽通常成为了众核计算系统性能的瓶颈所在。为了缓解内存带宽不足的问题,现在的计算机系统普遍采用较大的缓存以及较宽的内存访问接口和粗的访存粒度来增加单个内存通道的有效内存带宽。在一些大型的服务器中,也有通过配备多个较窄的内存通道从而增加总的有效内存带宽的实例。粗访存粒度在大规模科学计算型应用中有较好的表现,较高的缓存命中率使得大部分预取到缓存中的数据能够被后续指令访问。而在访存目标相对发散的应用中,比如图搜索以及事务型处理的应用,粗访存粒度由于数据局部性较差而不能得到充分的利用,从而使得有效的内存带宽降低。多个窄的内存通道虽然能够为访存发散的应用提供较高的有效内存带宽,但是其成本过于高昂,不适用于大多数的计算场景并且不具有好的可扩展性。 本文提出一种基于并行细粒度访存技术的面向众核处理器的动态粒度内存系统(或称为动态粒度众核内存系统)。本文提出的并行细粒度访存技术通过增加少量的简单器件,如锁存器,多选器,改变传统双联内存模块(DIMM)的拓扑结构,使其既能够支持传统的粗粒度访存请求,也能够为细粒度访存请求服务。这种总线共享设计使得在不增加总线的前提下,多个细粒度访存请求能够被并行化,从而进一步提高了动态粒度内存系统在细粒度访存模式下的性能。基于并行细粒度访存技术,本文提出的动态粒度众核内存系统根据程序执行的历史对程序的局部性特征进行预测,从而自主的调整访存的粒度,在粗粒度访存模式和并行细粒度访存模式之间进行切换。 本文给出并行细粒度访存技术以及动态粒度众核内存系统详细的设计,包括基于DDR3时序要求的操作时序以及内存模块外围的逻辑电路设计,缓存设计以及局部性预测方法和访存调度算法。本文使用开源模拟器multi2sim以及DRAMSim2对所提出的系统进行模拟,在多个标准测评程序集上进行性能测试,发现本文提出的动态粒度众核内存系统能够对于发散访存应用的有效内存带宽带来两倍以上的提升,并且在科学计算等规则访存应用中也能保持原有的带宽不损失。