论文部分内容阅读
随着大数据技术的发展,存储系统对大容量、低功耗、快速内存的需求更加迫切。新型非易失存储器(Non-Volatile Memory,NVM)具有大容量、低静态功耗和读速度快的优势,未来有望取代传统的DRAM技术,用作计算机系统的内存。以相变存储器(Phase Change Memory,PCM)为代表的NVM每个单元的位翻转次数有限,并且每次位翻转能耗高,导致NVM面临寿命有限、写能耗高的缺陷。如何减少NVM的位翻转次数,提升NVM的寿命、降低写能耗是NVM内存技术研究中的重点。本文通过高效的数据编码方法来减少NVM的位翻转,从而达到提升寿命、降低写能耗的目的。根据编码后数据存储空间的变化,可以将编码方法分为增加标志位的编码方法和基于压缩的编码方法。本文针对增加标志位的编码方法中标志位利用率低、标志位存储开销大,以及基于压缩的编码方法中压缩破坏数据相似性的问题,对这两类编码方法进行了优化。
针对现有增加标志位的编码方法因没有考虑真实负载特性而标志位利用率低的问题,提出了负载特性感知的粒度自适应的编码方法进一步减少位翻转,提升NVM寿命并降低写能耗。增加标志位的编码方法中,每N位的数据会分配1位的标志位,其中N为编码粒度,N越小,编码方法的效果越好。观察发现负载中存在大量冗余(未修改)的字,这导致编码方法中标志位的利用率较低。粒度自适应的编码方法通过对比新旧数据识别冗余字,然后将标志位分配给修改了的字,并根据修改字的数量自适应地设置编码粒度,从而充分利用标志位降低修改字的编码粒度,减少位翻转。进一步观察发现负载中存在连续位翻转,此时较小的编码粒度会导致标志位的位翻转增加。为了减少标志位的位翻转,动态选择使总的位翻转最少的编码粒度而不总是使用最小的编码粒度。实验结果显示,相比CAFO方法,该方法在仅消耗8.2%的空间开销下,可以减少7.2%的位翻转,提升17.0%的寿命,减少3.7%的能耗。
利用压缩可以减少数据存储所需位数的优势,提出了压缩率感知的编码方法(SE- LEC),在较低的空间开销下减少位翻转,提升NVM寿命,降低写能耗。编码方法在明显减少位翻转的同时,标志位会消耗大量存储空间,而压缩可以减少数据存储所需的位数。将两者结合,SELEC使用压缩节省的空间来存储标志位,从而在较小的空间开销下减少了位翻转。内存访问以缓存行为单元,进一步,观察发现不同数据模式的缓存行压缩后所节省的空间大小不一样,不同的编码方式在空间开销和效果上存在不同折衷。为了充分利用压缩节省的空间减少位翻转,SELEC根据压缩以后空间的大小来选择能充分利用压缩节省的空间,又不占用额外空间的编码方式。为了提供更多空间,SELEC同时使用FrequentPatternCompression(FPC)和Base-Delta-Immediate(BDI)这两种不同的压缩方法对数据压缩,并从中选择一种压缩率更高的方法。对于仍然不能压缩的缓存行,使用消耗较低额外空间的编码方式来减少位翻转。实验结果显示,该方法相比空间开销为12.5%的Flip-N-Write可以减少13.3%的位翻转,减少10.1%的能耗,提升寿命达到29.8%,同时方法的空间开销仅为3.5%。
加密的NVM由于雪崩效应面临更加严峻的写问题。现有的增加标志位的编码方法已经可以用于减少加密NVM的位翻转,而压缩方法则不能直接用于减少加密NVM的位翻转。将压缩应用于加密NVM时,压缩会破坏数据相似性导致位翻转次数增加。提出了相似性感知的压缩方法(SACS)以减少加密NVM的位翻转。缓存行中存在未修改的数据导致数据存在相似性,但压缩会改变需要写入数据的值和位置,从而破坏数据的相似性。SACS使用压缩来确定写入数据的字节数和位置,并将压缩以后的数据写入到与未压缩时相同的位置以保持数据的相似性。利用压缩可以减少数据写入量的优势,SACS将记录字是否被修改的标志位分配给压缩以后的数据,从而实现细粒度的脏数据跟踪,发现更多未修改的数据,减少重加密和写入的数据量。压缩后的缓存行在写入到NVM存储芯片时,由于写字节数在芯片上分布不均匀,导致缓存行的写延迟受限于最慢的芯片。SACS通过重新组织缓存行数据到芯片的映射关系,将压缩以后的数据均匀地分配给NVM芯片从而减少写延迟。实验结果显示,相比DEUCE方法,SACS在仅增加8.8%的空间开销下,可以提升加密的NVM内存系统的寿命达到27%,减少24%的写能耗,分别降低读写延迟达到50%和70%,并提升系统IPC性能达到11%。
针对现有增加标志位的编码方法因没有考虑真实负载特性而标志位利用率低的问题,提出了负载特性感知的粒度自适应的编码方法进一步减少位翻转,提升NVM寿命并降低写能耗。增加标志位的编码方法中,每N位的数据会分配1位的标志位,其中N为编码粒度,N越小,编码方法的效果越好。观察发现负载中存在大量冗余(未修改)的字,这导致编码方法中标志位的利用率较低。粒度自适应的编码方法通过对比新旧数据识别冗余字,然后将标志位分配给修改了的字,并根据修改字的数量自适应地设置编码粒度,从而充分利用标志位降低修改字的编码粒度,减少位翻转。进一步观察发现负载中存在连续位翻转,此时较小的编码粒度会导致标志位的位翻转增加。为了减少标志位的位翻转,动态选择使总的位翻转最少的编码粒度而不总是使用最小的编码粒度。实验结果显示,相比CAFO方法,该方法在仅消耗8.2%的空间开销下,可以减少7.2%的位翻转,提升17.0%的寿命,减少3.7%的能耗。
利用压缩可以减少数据存储所需位数的优势,提出了压缩率感知的编码方法(SE- LEC),在较低的空间开销下减少位翻转,提升NVM寿命,降低写能耗。编码方法在明显减少位翻转的同时,标志位会消耗大量存储空间,而压缩可以减少数据存储所需的位数。将两者结合,SELEC使用压缩节省的空间来存储标志位,从而在较小的空间开销下减少了位翻转。内存访问以缓存行为单元,进一步,观察发现不同数据模式的缓存行压缩后所节省的空间大小不一样,不同的编码方式在空间开销和效果上存在不同折衷。为了充分利用压缩节省的空间减少位翻转,SELEC根据压缩以后空间的大小来选择能充分利用压缩节省的空间,又不占用额外空间的编码方式。为了提供更多空间,SELEC同时使用FrequentPatternCompression(FPC)和Base-Delta-Immediate(BDI)这两种不同的压缩方法对数据压缩,并从中选择一种压缩率更高的方法。对于仍然不能压缩的缓存行,使用消耗较低额外空间的编码方式来减少位翻转。实验结果显示,该方法相比空间开销为12.5%的Flip-N-Write可以减少13.3%的位翻转,减少10.1%的能耗,提升寿命达到29.8%,同时方法的空间开销仅为3.5%。
加密的NVM由于雪崩效应面临更加严峻的写问题。现有的增加标志位的编码方法已经可以用于减少加密NVM的位翻转,而压缩方法则不能直接用于减少加密NVM的位翻转。将压缩应用于加密NVM时,压缩会破坏数据相似性导致位翻转次数增加。提出了相似性感知的压缩方法(SACS)以减少加密NVM的位翻转。缓存行中存在未修改的数据导致数据存在相似性,但压缩会改变需要写入数据的值和位置,从而破坏数据的相似性。SACS使用压缩来确定写入数据的字节数和位置,并将压缩以后的数据写入到与未压缩时相同的位置以保持数据的相似性。利用压缩可以减少数据写入量的优势,SACS将记录字是否被修改的标志位分配给压缩以后的数据,从而实现细粒度的脏数据跟踪,发现更多未修改的数据,减少重加密和写入的数据量。压缩后的缓存行在写入到NVM存储芯片时,由于写字节数在芯片上分布不均匀,导致缓存行的写延迟受限于最慢的芯片。SACS通过重新组织缓存行数据到芯片的映射关系,将压缩以后的数据均匀地分配给NVM芯片从而减少写延迟。实验结果显示,相比DEUCE方法,SACS在仅增加8.8%的空间开销下,可以提升加密的NVM内存系统的寿命达到27%,减少24%的写能耗,分别降低读写延迟达到50%和70%,并提升系统IPC性能达到11%。