论文标题
软件:仅适用于非挥发性主内存的仅软件内磨损水平
SoftWear: Software-Only In-Memory Wear-Leveling for Non-Volatile Main Memory
论文作者
论文摘要
在过去的几年中,已考虑使用几种用于字节 - 可调的非易失性记忆(NVM)的新兴技术来代替DRAM作为计算机系统中的主要内存。与DRAM相比,NVM技术(如相变位数(PCM)或铁电RAM(FERAM))的缺点已在文献中得到解决。作为解决方案,已经提出了内存磨损水平的技术,该技术旨在在所有记忆细胞上平衡磨损水平,以实现增加的记忆寿命。通常,要应用文献中提出的这种先进的衰老磨损水平技术,将在存储系统中引入其他特殊硬件,以提供有关细胞时代的必要信息,从而实现衰老感知的磨损水平的决策。 本文提出了基于常见的CPU功能的仅软件衰老磨损水平,并且不依赖内存子系统的任何其他硬件支持。具体来说,我们利用内存管理单元(MMU),性能计数器和中断以近似记忆写入将其视为老化指标。尽管仅使用软件的方法可能会导致磨损水平稍差,但它适用于常用的硬件。我们通过通过统计抽样和执行通过MMU重新映射的物理记忆来近似当前的细胞年龄来实现页面级的粗粒磨损水平。此方法在内存页面中导致不一致的内存使用模式。因此,我们进一步在C / C ++编译软件的堆栈区域中提出了细粒度的磨损水平。 通过应用两种磨损水平的技术,我们最多达到了理想记忆寿命的78.43美元\%$,这是一生的终生提高$ 900 $,而没有任何磨损水平。
Several emerging technologies for byte-addressable non-volatile memory (NVM) have been considered to replace DRAM as the main memory in computer systems during the last years. The disadvantage of a lower write endurance, compared to DRAM, of NVM technologies like Phase-Change Memory (PCM) or Ferroelectric RAM (FeRAM) has been addressed in the literature. As a solution, in-memory wear-leveling techniques have been proposed, which aim to balance the wear-level over all memory cells to achieve an increased memory lifetime. Generally, to apply such advanced aging-aware wear-leveling techniques proposed in the literature, additional special hardware is introduced into the memory system to provide the necessary information about the cell age and thus enable aging-aware wear-leveling decisions. This paper proposes software-only aging-aware wear-leveling based on common CPU features and does not rely on any additional hardware support from the memory subsystem. Specifically, we exploit the memory management unit (MMU), performance counters, and interrupts to approximate the memory write counts as an aging indicator. Although the software-only approach may lead to slightly worse wear-leveling, it is applicable on commonly available hardware. We achieve page-level coarse-grained wear-leveling by approximating the current cell age through statistical sampling and performing physical memory remapping through the MMU. This method results in non-uniform memory usage patterns within a memory page. Hence, we further propose a fine-grained wear-leveling in the stack region of C / C++ compiled software. By applying both wear-leveling techniques, we achieve up to $78.43\%$ of the ideal memory lifetime, which is a lifetime improvement of more than a factor of $900$ compared to the lifetime without any wear-leveling.