论文部分内容阅读
经过数十年时间的发展,作为传统内存介质的DRAM已经面临越来越多的挑战。目前的技术条件下,DRAM的集成度已经无法进一步提高,这极大限制了计算性能的提升。并且DRAM能耗巨大,其消耗的能量占到计算机系统总能耗的40%左右。因此,近年来学术界和工业界开发了一系列新型存储介质,用于缓解当前内存系统存在的问题。其中,相变存储器(phase change memory,PCM)以其可字节寻址、高集成度和低能耗等特点,成为DRAM的有力竞争者。但是,和DRAM相比,PCM介质的写性能差,其写延迟比DRAM的要大一个数量级。这大幅增加了读请求的有效延时,进而降低了PCM主存的系统性能。近年来,学术界提出了大量的创新技术(比如,PreSET)用以减轻PCM介质写延迟大对系统性能造成的影响。在PCM中,写“1”(SET操作)和写”0”(RESET操作)耗时是不同的,SET操作延时是RESET操作的8倍左右。一个典型的写请求需要并行的将几百位数据同时写入PCM内存行中,写请求中包含SET操作几乎是不可避免的,所以写请求延时往往取决于SET操作延时。基于这个事实,当高速缓存被标记为“脏”,且该缓存行被写回内存前,PreSET提前对相应主存行中的所有位执行SET操作(即进行预置操作)。随后,当缓存行中的数据写回PCM时,写请求只需要执行RESET操作。因此,PreSET可以有效降低写请求延时,提高了PCM系统性能。然而,对于PCM而言,这种通过增加预置操作来提升系统性能的方式代价高昂。这是由于,PCM介质的写寿命较短,在写操作密集的情况中,介质会很快失效,进而导致数据的丢失。而PreSET会造成大量的额外写操作(预置操作也是写操作),进一步缩短了PCM介质的使用寿命。在大多数应用程序运行环境中,在系统的“脏”缓存行内,其实只有少部分存储单元的数据被更新了,多数的缓存行数据和内存中的依然保持一致。如果可以用细粒度的方式进行PreSET的预置操作,即当缓存行被更新时,仅仅针对内存行中和当前缓存行数据不一致的存储单元进行SET操作,当缓存行写回时,根据更新后的数据,只对这些存储单元中的部分位置进行RESET操作,那么就可以极大地缩小预置操作的范围,从而在延长PCM系统使用寿命的同时,仍能达到一个比较理想的系统性能。根据这个观察,在PreSET的基础上,我们提出了Partial-PreSET。实验数据表明,和PreSET相比,在只损失2%左右的系统性能的前提下,Partial-PreSET可以延长PCM的寿命达2.79倍。