论文部分内容阅读
随着物联网技术和云计算技术的迅猛发展,信息时代正向大数据时代飞速转变,由于高性能计算和大数据分析对数据的存储与处理的要求越来越高,许多研究开始应用图形处理器(Graphics Processing Unit,GPU)进行加速,而大多数的高能效超级计算主要依赖于通用图形处理器(General Purpose Graphics Processing Units,GPGPUs)来扩展并行度和浮点吞吐量。虽然传统GPU的并行执行模型可以有效地隐藏访问片外存储的延迟,但是许多GPGPUs应用中的访存经常具有数据依赖性,与传统的图形应用相比,它们具有更少的空间局部性,因此,线程级并行不能总是完全的隐藏内存访问延迟。此外,访存密集型的应用在GPGPUs中变得越来越流行,给GPGPUs的存储系统带来了巨大的挑战。在过去几十年中,虽然在降低处理器能耗方面取得了很大的成就,但是随着大数据的不断发展,数据量的持续增长,存储能耗所占的比重不断增加,整个存储系统能耗已经达到总能耗的40%,而在数据密集型应用中,存储系统的能耗可以占到系统总能耗的55%。这是因为静态随机存储器(Static Random Access Memory,SRAM)具有较高的工作功耗,而动态随机存储器(Dynamic Random Access Memory,DRAM)有着不可回避的刷新功耗。与此同时,传统存储系统存在着集成工艺的瓶颈,空间扩展性也受到了一定的限制。近年来出现的新型非易失存储器(Non-volatile Memory,NVM),为传统存储系统的变革和发展提供了机遇。非易失存储器因其具有非易失、高集成度、低功耗以及良好的可扩展性等优势,在提升系统性能以及节约存储能耗方面表现突出。由于非易失存储材料的差异,各种不同的非易失存储器可以分别用在传统存储体系架构的各层次中,以此来推动不同存储层级的优化和变革。然而,与传统易失性存储器相比,非易失存储器具有写延迟较长、读写性能不均衡以及写寿命有限等缺陷。因此,由传统易失性存储器和非易失存储器共同构建的混合存储架构成为解决该问题的有效途径。通过设计相应的优化策略,这种混合架构可以充分利用非易失存储器和易失性存储器的优势,弱化和回避二者的劣势。本文的研究就是围绕基于非易失存储器的混合存储架构在GPGPUs中的设计与优化策略展开,目的是提高系统性能,降低存储系统能耗,延长存储系统的寿命。第2章提出了一种面向GPGPUs并且由DRAM和NVM组成的统一编址的混合内存架构。这种混合架构具有以下特点:DRAM部分的读写延迟低、读写速度快,但是静态功耗较高和具有不可避免的刷新功耗;NVM部分的静态功耗极低、空间扩展性较好以及读操作延迟近似于DRAM,但是写操作延迟及功耗较高和具有不可回避的写耐久性问题。为了减少NVM较高的写入延迟对系统性能的影响,本文在GPU架构的缓存层提出了一种混合内存感知的共享末级缓存(Last-level Cache,LLC)管理策略。通过利用混合内存不同介质的非对称读写延迟特性,以及GPGPUs的合并内存访问(memory coalescing)特点,将cache行划分成不同的类型;然后结合写回NVM的操作对系统性能影响较大的发现,以及利用被具有不同有效地址的访存请求访问的cache行会有不同的概率被再次访问的现象,一个固定的优先级分配给每种缓存行,包括缓存缺失时的插入优先级和缓存命中时的提升优先级,提出了一种混合内存感知的静态cache管理策略。然而,一个应用程序在不同的执行状态可能有截然不同的访存行为(例如进入一个不同的循环),以及混合内存系统中LLC的不同缓存行具有不同的缺失代价,为了适应这种变化,需要动态地改变每种cache行的优先级,因此设计了动态优先级计数器和有效地址标记位,提出了一种混合内存感知的动态cache管理策略,包括基于memory coalescing和缓存旁路(cache bypassing)技术的动态cache插入策略,以及基于cache行类型的动态cache提升策略。实验结果显示,在混合内存系统的情况下,与传统的LRU(Least Recently Used)替换策略相比,混合内存感知的共享LLC管理策略平均提高12.78%的系统性能,最多可以达到27.76%。为了减少NVM高写入功耗对存储能耗的影响,本文在GPU架构内存层的内存控制器中,设计了一种基于混合内存的访存延迟分歧(memory latency divergence)感知的内存调度策略。现代GPU的内存控制器为了获得较高的带宽利用率会重新排序不同线程组(32个线程组成一个warp)的访存请求,这种乱序的服务请求调度经常导致一个warp的请求被另一个warp的访存请求抢占,从而导致memory latency divergence的发生,降低了系统性能;而混合内存架构给GPU的内存调度策略带来了一定的影响,例如具有更多NVM请求的warp可能会导致更长时间的warp阻塞。因此,通过根据不同的warp请求,将访问请求分成不同的warp组,然后根据请求访问的内存类型,分配warp组不同的调度优先级;并重新设计了 GPU内存控制器,包括对不同warp组感知的调度队列及事务调度器的调度策略。为了减少同时执行的线程组中memory latency divergence行为对系统性能的影响,以及混合内存对于GPU内存调度的影响,设计一种针对GPGPUs的混合内存以及warp感知的内存调度策略是必要的。该策略基于访存的cache行为重新安排访存请求在内存控制器中的访问顺序,以尽可能快地响应同一个warp的所有访存请求。实验表明,对于访存密集型的应用,基于混合内存的访存延迟分歧感知的内存调度机制提高了 15.69%的系统性能,同时降低了 21.27%的内存系统能耗。以上针对混合内存设计的缓存管理策略和内存调度策略,提高了系统的性能并降低了系统的能耗,然而,非易失存储器的写耐受问题限制了其应用。为了延长NVM的使用寿命,本文在内存控制器中设计了一种基于相变存储器(Phase.Change Memory,PCM)的内存损耗均衡策略。重新设计了针对PCM的内存控制器,通过分析应用程序的访问模式来获取数据的写次数,从而将PCM的空间划分成热区和冷区,在热区内部划分出一定的子区域,设计了触发热区移动的阈值以及子区域划分的方法;在PCM整个地址空间中周期性的移动热区,当一个热区移动时,其中划分的几个小的区域同时循环移动。通过实验对比显示,与Start-Gap策略相比,基于相变存储器的损耗均衡算法降低了 57.81%的最大位翻转次数,同时将写操作均匀的分布到整个PCM的地址空间上,平均能延长PCM的寿命达到4-5倍。