肖仁智 冯 丹, 胡燏翀 张晓祎 程良锋
1(华中科技大学武汉光电国家研究中心 武汉 430074)2(华中科技大学计算机科学与技术学院 武汉 430074)3(深圳华中科技大学研究院 广东深圳 518061)
随着新型非易失内存技术的发展,涌现出了众多的非易失内存存储器,如相变内存PCM[1]、自旋转移力矩磁随机存取存储器STT-MRAM[2]、电阻式随机存储器ReRAM[3]以及忆阻器(memristor)[4]等,这些非易失内存(non-volatile memory, NVM)以其非易失、低静态功耗、高密度、字节寻址以及就地更新等特性受到了学术界和工业界的广泛研究.NVM也被称作存储级内存(storage-class memory, SCM)、持久内存(persistent memory, PM)或非易失随机访问内存(non-volatile random access memory, NVRAM),本文统一称为NVM.由于这些优良特性,NVM可以连接到内存总线上,应用程序可以通过loadstore指令来访问NVM上的数据.因此,在未来的计算机系统中,采用NVM技术代替DRAM作主存或NVM与DRAM共同作为主存,这已被广泛地讨论并研究[5-15].如图1所示,NVM构建主存主要有3种类型[16]:仅NVM的单层主存、NVM和DRAM的混合主存以及DRAM作为NVM的缓存.NVM最独特的特性是非易失性,即写到NVM的数据在断电时不丢失.之前的工作如BPFS[17],PMFS[18],NV-heaps[19],Mnemosyne[20],Quartz[21]等,假定NVM能够保证8 B的原子写,NVM的更新粒度为缓存行大小,通常为64 B.当前的处理器架构没有提供有序的内存写原语[8].由于CPU缓存的易失性和NVM之间更新粒度不匹配,并且当前处理器或内存控制器可能重排序内存写以便进一步优化程序性能,所以当系统故障时的部分更新可能导致不一致性情况的发生.因此NVM系统面临的最棘手的问题之一是数据一致性[22],即系统在意外崩溃或断电重启之后数……