相变存储器写寿命延长关键技术研究进展*

2018-10-08 07:35付印金胡谷雨
计算机工程与科学 2018年9期
关键词:存储单元存储器移位

张 震,付印金,胡谷雨

(1.陆军工程大学指挥信息系统学院,江苏 南京 210007;2.73610部队,江苏 南京 210000)

1 引言

大数据背景下数据分析的应用以及处理器的多核化对存储系统的容量、处理速度以及能耗开销都提出了极高的要求,现有的内存—磁盘传统访问模式已经不能满足现代计算机发展趋势。以相变存储器PCM(Phase Change Memory)为代表的新型非易失性存储设备的出现为扩展计算机存储性能提供了新的契机[1]。相比于DRAM、磁盘等传统不同层次的存储器件,新型非易失性存储介质具有集成度高、功耗低、读写访问速度快、非易失、体积小和抗震等优良特性,有望从根本上改变传统的存储体系结构,并进一步缩小不同存储层级之间的性能差异。

PCM存在写寿命有限的缺点,每个单元只能承受107~109次的写操作[2],特别是在连续写的情况下,存储单元的耐受性将受到严重制约。提升PCM的写寿命最直接的方式就是减少对存储单元的写操作次数;此外,磨损均衡处理(Wear-Leveling)策略是延长存储器使用寿命的重要方法,它能够实现数据更新在存储设备上的均匀分布以及存储单元读写寿命的有效提高;混合存储架构中的数据迁移策略将写热度较高的页面保存在DRAM中,将读热度高或者静态数据存储在PCM中,保护PCM写耐受性的同时提升存储系统的I/O性能。

本文首先介绍相变存储器,随后阐述提升PCM在存储系统中使用寿命的各种解决办法。第3节介绍减少相变存储器写操作数量的方法;第4节分析磨损均衡技术在PCM中的应用;第5节阐述在混合存储架构中数据迁移对提升PCM寿命的影响;最后,给出未来进一步提升PCM寿命的研究展望。

2 相变存储器简介

在现有的存储系统中,DRAM—磁盘架构的发展遇到了瓶颈:首先,DRAM的访问速度提升有限,CPU的计算性能和主存访问性能之间的差距越拉越大,缓存和预取技术难以从根本上解决这一问题;其次,传统磁盘的机械寻道特性成为导致主存—磁盘之间的I/O性能差距的重要因素;再次,数据中心的能耗问题日益突出,主存和磁盘能耗开销已经达到整个系统的20%~40%[3]。因此,探索新型存储技术来提升计算机整体性能具有十分重要的意义。

非易失性存储器NVM(Non-Volatile Memory)的出现为解决这些问题提供了契机。目前,常见的非易失性存储器包括相变存储器PCM、铁电介质存储器FeRAM(Ferroelectric Random Access Memory)、磁介质存储器MRAM(Magmetic Random Access Memory)、自旋矩传输磁存储器STT-RAM(Shared Transistor Technology Random Access Memory)和阻变存储器RRAM(Resistive Random Access Memory)等。表1列举了主流的新型存储器件的关键特征参数。

相变存储器是一种由硫族化合物材料构成的新型非易失存储器,它利用材料可逆转的物理状态变化来存储信息,通过非晶体状态和晶体状态呈现出不同的电阻特性和光学特性来表示0和1。相比于其他NVM,PCM在持久性、功耗和容量等方面更为优秀,研究相对更加成熟,产业化程度更高,在45 nm工艺制程下已经有Gb级别产品问世,且部分产品已经成熟应用于智能电表、移动终端等设备中。

PCM具有如下特征[4]:

(1)非易失性:相比传统存储器件,PCM具有非易失性的特点,即使系统掉电,保存的数据也不会丢失;

(2)字节可寻址:PCM具备按位读写的特性,不需要额外的擦除操作来改变字节,有助于节约写入时间;

(3)高存储密度:硫系化合物材料体积的缩小推动PCM的制造工艺达到22 nm的水平;

(4)读写不对称:PCM的随机读的速度往往大于随机写的速度,写1的速度要慢于写0的速度;

Table 1 Performance comparison of nonvolatile memories表1 各种新型非易失性存储器性能对比

(5)寿命有限:PCM存储单元的写寿命也在107~109左右,耐受性的限制成为制约PCM单独作为主存的重要因素;

(6)低功耗:PCM是基于微型存储单元的相变特性存储数据,没有机械转动装置并具有低电压的特性,且保存数据无需刷新操作。

PCM在计算机存储系统领域的研究主要分为两类:一方面作为类似于SSD(Solid State Drives)和HHD(Hybrid Hard Drive)的二级存储设备;另一方面,由于其出色的I/O性能,PCM在存储系统中的位置可以更加靠近CPU,单独作为主存或者与DRAM构成混合内存。PCM的快速发展对传统的计算机系统架构产生了重要影响,研究者也从延长器件使用寿命、降低系统功耗、提升读写性能以及强化存储系统安全性等方面对PCM性能优化技术展开深入研究。PCM有望成为下一代主流存储设备。

3 减少存储单元写操作

PCM在存储系统中的应用面临两大障碍,一方面PCM的写速度以及写功耗开销比DRAM差,另一方面PCM的写寿命有限。目前针对PCM作为主存或者外存的应用改进主要集中在如何延长其使用寿命方面。为了充分发挥PCM在存储系统中低功耗和非易失的优势,研究者们从减少冗余写技术以及DRAM缓存技术等方面,通过减少PCM存储单元写操作次数的方法来克服PCM写操作耐久性的不足。

3.1 减少冗余写

数据流中存在大量的重复冗余数据,对于主存的冗余写操作数量达到了整个写入数据的85%[5]。这些数据在写入存储设备时既需要I/O开销,又对存储器件造成不可逆的损害。通过减少冗余写的方式对PCM进行写优化能够有效减少存储单元的写操作数量。预读取、脏数据跟踪、数据位翻转技术都是实现减少PCM冗余写的重要方式。表2列举了减少PCM冗余写的相关研究。

Yang等人[6]提出DCW(Data Comparison Write)策略,通过数据比较实现写数据量的减少。该算法在执行写操作之前读取目标地址下的数据,只有当新写入的数据与原先存储的数据不同时才执行写入操作;Lee等人[7]提出缓冲区重组和部分写策略,一方面通过合并写操作的方式减少PCM阵列写操作次数,另一方面跟踪数据的修改只将有修改的cache line或者word写入到PCM阵列,从而减少写操作数量;Zhou等人[5]通过实验论证了在SLC(Single-Level Cell)和MLC(Multi-Level Cell)两种策略下冗余bit写占所有写操作的高比例,然后基于bit细粒度提出一种去除冗余的bit写策略,在更新数据时比较数据流的各个bit位是否相同,避免相同的bit被重复写入;Ferreira等人[8]在PCM作为主存的架构上设计了页面分割技术和RWR(Read-Write-Read)策略,前者将页面分割成若干个子页面,只有当子页面有脏位时才将子页面写回,避免干净的子页面执行过多的写回操作。后者通过写前读的方式比对数据以避免不必要的写,同时通过写后读的方式进行差错检测。该方案中子页面的粒度选取、分割子页面操作和统计写操作频率都会影响系统性能和空间开销的大小;Cho等人[9]提出Flip-N-Write算法,当更新数据与原始数据的差异bit数量不超过1/2时直接将新数据写入存储单元,如果超过1/2,对新写入数据的bit位进行翻转,并设置flip标志位来跟踪数据的bit位是否被取反。这一做法能够始终确保实际写入的数据量不超过要写入数据的1/2,延长了存储单元的使用寿命,但是额外的数据比较时间以及位翻转时间增加了硬件设计的复杂度和读写时延。Qureshi等人[10]在line粒度下设计了LLWB(Line Level WriteBack)策略,在DRAM缓存中为每一个cache line设置一个脏数据标记位,更新page中数据时只对修改过的line进行写回操作。脏位判断以及比较操作会带来一定的性能开销。Joo等人[11]在PCM作为L2 cache的基础上,采用“写前读”策略,在写之前通过预读取操作比较存储单元当前数据和要写入的数据,当比较值不同时才进行数据更新。在此基础上,又通过计算当前值和写入值的汉明距离HD(Hamming Distance)来进一步减少数据位写操作,当汉明距离的大小超过缓存块大小的1/2时,翻转要写入的数据,以确保新写入的bit数量不超过总数的一半。此外,为了提高数据翻转的效率,将一个缓存块划分成若干个子块,并以这些子块作为位翻转的基本操作单位。该方案在节省能耗、提升寿命的情况下,仍然不能忽略汉明距离计算带来的额外开销对系统性能的影响。Baek等人[12]提出一种双阶段数据压缩策略来降低PCM的访问次数,第一阶段是粗略的字粒度的压缩过程,时延低、开销小;第二阶段采用bit粒度的压缩算法,压缩效果明显但是性能受到限制。该方案实现复杂度较高,在牺牲时延的基础上提高了PCM的使用寿命。

Table 2 Related research of reducing redundant write operations in PCM表2 减少PCM冗余写操作的相关研究

这些算法能够有效减少PCM上的写操作数量,但是,无论是在写操作执行前通过数据预读取的方式来避免冗余写,还是通过位翻转方式减少bit位的写入,都需要进行写入数据与原始数据的比较,这往往会带来额外的时间开销,而脏数据跟踪技术同样需要额外的空间开销来避免多余的写。

3.2 DRAM缓存技术

DRAM作为PCM缓冲的二级主存系统模型,是混合主存研究的另一个重要方向,这种架构如图1a所示,一方面为系统提供大容量的存储空间,另一方面可以解决由PCM本身读写延迟以及写寿命缺陷带来的系统性能下降问题。使用DRAM作为PCM缓存的方式能够将修改频繁的数据保存在DRAM中,减少主存写操作数量的同时,掩盖PCM写性能的不足。表3列举了使用DRAM作为缓存来减少PCM写操作的相关研究。

Figure 1 Two hybrid architectures of PCM and DRAM图1 两种常见的PCM与DRAM混合架构

Park等人[13]在第一次对存储系统访问时绕开DRAM,直接从PCM读取数据,当再次访问时才将数据写到DRAM,同时提出脏数据保持策略,将脏数据在DRAM中保留更长的时间。作者通过上述两种策略将热数据以及脏数据都保存在DRAM中,也意味着将更有可能发生写操作的数据保留在了DRAM,避免了PCM过多执行写操作。Qureshi等人[10]以DRAM作为缓存,提出Lazy-Write的写操作策略,当发生缺页时,从磁盘中读取数据并直接写到DRAM中,而当页面被逐出DRAM且该页被修改过时才写入PCM。该策略一方面能够隐藏DRAM和PCM之间的延迟差距;另一方面避免了PCM被过多执行写操作。Ferreira等人[9]针对PCM读写不均衡的特性,设计了CLP(CLean Preferred)和N-Chance多优先级缓存替换策略,通过对页面设定优先级的方式来选取修改较少的“干净”页面作为替换对象,把低功耗和低时延的读操作集中的页面写回到PCM来减少主存的写数量。同时,结合了页面划分以及RWR策略,进一步减少了不必要的写操作。该方案大大延长了PCM的使用寿命,但对于优先级N的设定以及数据比较都会造成额外的性能开销。Park等人[14]从缓存替换算法和替换粒度两方面考虑了DRAM作为buffer来减少PCM写操作的效果。作者基于line粒度提出了一种改进的LRU策略减少PCM的写操作数量,并通过脏数据位来标记line是否被修改过,在此基础上通过hash表减少缓存管理带来的开销。Mladenov等人[15]根据空间局部性原理以及改进的Lazy Write算法,在DRAM buffer有空间时将更新的数据直接写至DRAM,若被填满,则通过FIFO策略先将DRAM中最早处理过的请求的数据写回PCM,再将新数据写入DRAM中。同时,当内存空闲时会通过LRU策略定期地将buffer中的一部分数据刷回到PCM,以保证DRAM有足够的空间处理写请求。该方案能够充分利用有限的DRAM大小响应尽可能多的写请求,但是对于弱时间局部性的应用场景,该策略会造成DRAM和PCM之间频繁的交互。DRAM缓存技术能够有效地减少PCM上的写操作,不同算法在缓存大小的设置、何时将数据写回到PCM、替换页的选择等方面不尽相同,这些问题也将影响PCM耐久性提升的效果。

Table 3 Related research on DRAM buffer technology表3 关于DRAM缓存技术的相关研究

PCM的物理特性导致了其高读写时延和有限的使用寿命,研究者从预取技术、bit位翻转技术等方面有效地避免冗余数据被重复写入存储单元,而write buffer的加入能够隐藏主存的访问时延[16],延长PCM寿命的同时提升了主存的I/O性能。

4 磨损均衡

由于大多数程序的写操作都呈现出明显的局部性和不均衡性,写操作集中的单元会比其他单元更早地达到寿命极限,失去改变相态的能力,从而造成数据错误以及器件寿命的缩短。将写操作均匀分布在整个存储空间上的磨损均衡算法能够有效延长PCM的寿命。现有的均匀化写操作方法在改变地址映射的基础上可以分为数据交换(Swapping)和数据移位(Shifting)两大类,如图2[17]所示。

Figure 2 Swapping and shifting图2 交换和移位技术

4.1 数据交换技术

数据交换技术通过周期性地交换写频繁页面和写操作次数较少页面中的数据来达到磨损均衡的目的。表4列举了应用数据交换技术的相关磨损均衡的研究。Dhiman等人[18]设计了一种软硬件结合的混合内存系统—PDRAM,通过记账(Book Keeping)硬件技术来存储PCM页面粒度的写操作频率,同时利用软件手段维护PCM的写访问次数表。一旦写操作次数超过一定的阈值,就产生中断执行磨损均衡操作。该算法通过三个链表对具有不同写次数的页面进行升降级操作,使得每一个页面都获得同样多的写操作。硬件可以在很小的开销下维持和追踪页面的访问,而软件的管理策略可以提高PCM寿命,但是记录页面的写操作次数将耗费一定的空间开销。Park等人[19]提出一种基于段(Segment)的数据交换策略PFFS(Proposed Flash File System),一旦写操作次数最大的分块与最少的分块之间的写次数差距超过一定的阈值就执行数据交换操作。这种方案需要监控每一个分段的写操作次数,会带来一定的空间开销。Zhou等人[5]以段为粒度,通过限制数据段被频繁选中进行数据交换来避免某一个段被过多写访问。同时,在写入过程中,定期互换内存段的高部与低部,以进一步达到磨损均衡,提高PCM的寿命的目的。不过,段交换的实现需要在硬件电路上增加移位寄存器和偏移器,这样增加了实现的成本。Park等人[14]提出采用多级数据交换技术动态地平衡不同页面之间的写次数。该方法记录页面中每一个line的写次数,并且根据写次数最大的line来定义所在页面的写次数,当页面的写次数超过阈值时就进行数据交换。这种通过line写次数判断全局写次数的方式不能准确反映一个页面的写操作情况,磨损均衡的过程较为粗略。Dong等人[20]通过监测写数据流量以及存储单元承受写操作的情况来控制损耗均衡的力度,当数据更新分布较为均匀时提高数据交换的门槛,当写请求访问集中在少数存储块时降低数据交换的条件来触发更多的损耗均衡操作。Yun等人[21]提出基于Bloom Filter的磨损均衡算法。该算法利用Bloom Filter的特性判断数据块的冷热情况,如果数据块对应的Bloom Filter值均超过一定的阈值,那么判定该数据块为热数据块,并与冷数据块进行数据交换。算法维护一个热数据表和冷数据表,当一个请求到达时,首先在冷热数据表中寻找,如果命中则访问冷热数据交换后的地址,否则就直接访问请求本身的地址。该算法能够均衡冷热数据块上的写访问次数,但是利用Bloom Filter进行冷热数据的判断依然会存在一定的误差。

Table 4 Related research on data swapping technology in wear-leveling表4 磨损均衡中应用数据交换技术的相关研究

数据交换能够实现写操作过于集中的数据块与冷数据块进行地址映射的改变,但是监测数据块写操作数量需要消耗一定的存储空间,同时对于动态变化的数据流,通过特定阈值触发交换操作的静态方式会导致不必要的数据交换。

4.2 数据移位技术

数据交换技术实现了页面(或者是分块)之间的磨损均衡,而数据移位技术能够实现同一页面下不同line的写操作均匀分布。表5列举了关于数据移位的相关磨损均衡的研究。Qureshi等人[22]提出Start-Gap算法,该算法周期性地将每个行的数据转移到邻近的地址,而不考虑每行写请求多少的区别,以此实现数据重映射。算法通过2个寄存器来分别记录Start和Gap指针,Gap始终指向称为GapLine的地址空间,每经过n次写操作就将Gap指针向前移动一个位置,也就是将上一个GapLine地址下的内容复制到当前GapLine中。Start-Gap算法的地址映射逻辑可以通过简单的硬件来实现,能够在较小的存储开销和计算开销下拥有较好的磨损均衡效果,但同时固定不变的映射机制也容易遭受恶意攻击。Park等人[19]提出line粒度的移位策略来避免同一line承受过多的写操作。当页面从DRAM buffer写回到PCM时,需要检查写次数来确定是否触发移位操作,并且通过将写操作均匀分布到页面中每一个line来降低整个页面的写操作次数,而不是集中在少数line。该算法能够有效处理一个页面中写操作分布不均匀的情况,但是对于空间局部性较强的应用,不能很好地平衡不同页面之间的写操作分布。Zhou等人[5]定期进行移位操作,每经过256次写操作就执行1字节的移位,同时把对于一个row的写操作,分散到每一个cell以实现磨损均衡。该方案并不是对每一次写操作都进行移位操作,避免了由于移位带来的冗余写。但是,周期性的移位方案对于写分布不均匀的应用程序而言并不是很可靠。Joo等人[11]利用Bit-line偏移的方式,当某个line的写次数到达阈值之后,就更改当前写的偏移值,把新写的数据移向其他line。

Table 5 Related research on data shifting technology in wear-leveling表5 磨损均衡中应用数据移位技术的相关研究

移位技术往往通过硬件来完成,对于执行移位的间隔、移位的粒度以及范围还需要进一步考量,同时,设计移位策略时必须考虑到时间、空间局部性对磨损均衡效果的影响。此外,以固定映射逻辑通过移位实现的磨损均衡容易遭受恶意写攻击,导致存储单元迅速损坏。

除了上述磨损均衡的方法之外,研究者还通过减少缓存组间和组内的写波动、访问感知策略来延长NVM的使用寿命[23 - 25]。缓存不均衡通常可以在位级别、行级别和块级别等层级上实现,不同粒度上的磨损均衡算法有不同的针对性、开销、效率和安全性,触发均衡操作的时机也千差万别,实现磨损均衡时需要考虑存储规模、应用场景和特定的环境,在器件寿命和效率之间找到平衡点[26]。

5 基于混合内存架构的页面迁移

PCM存在写延迟长、写功耗大、寿命短等缺陷,同时相比于DRAM,PCM的读写性能仍有一定差距。因此,在系统架构中相变存储器还不能完全取代DRAM作为主存,基于DRAM/PCM的混合内存模型成为当下的研究热点[27]。目前,基于DRAM/PCM的混合内存大致可分为两种不同的结构:将DRAM作为PCM高速缓存的DRAM buffer模型[10]和DRAM和PCM共同作为主存的混合架构[18],如图1所示。前者作为减少PCM写操作的重要途径,后者使用同一地址空间由操作系统统一管理两种存储介质,在发挥各自优点的同时,也需要克服DRAM高能耗和PCM写性能不足、写寿命有限的缺陷。高效的混合内存页面调度机制能够针对这些缺陷,实现数据按照读写访问频率分别存放在不同的存储介质上,减少PCM磨损的同时降低系统能耗。表6列举了关于混合内存环境下页面迁移的相关研究。

5.1 被动式页面迁移策略

被动式页面迁移策略在主存未命中时将请求数据直接写到DRAM中,而当DRAM写满时便会触发迁移操作,再将访问频率低的冷页面或者读写倾向性不明确的页面迁移到PCM。Lee等人[28]提出的CLOCK-DWF(CLOCK with Dirty bits and Write Frequency)混合主存置换算法,在主存不命中时将写请求数据写到DRAM,读请求数据存储到PCM,同时当写请求不命中或者在PCM上命中时,数据将被载入到DRAM。如果DRAM被写满,将会把DRAM中的冷页面替换到PCM中,始终保持PCM中的页面处于低访问频率。Chen等人[29]提出的MHR-LRU(Maintain-Hit-Ratio LRU)算法,通过一个总的LRU链表管理整个内存中的页面以及一个LRU写操作链表管理DRAM页面。只有当DRAM写访问命中时才改变DRAM写链表中页面的位置,并且当链表被填满时触发迁移操作,选择该链表LRU位置的页面迁移到PCM。该方法能够保证迁移到PCM中的页面并不是近期被频繁写访问的,但是仍然受限于测试程序的局部性。Qureshi等人[10]探讨的Lazy-Write组织方法,在页面被逐出DRAM且该页被修改过时写入PCM中,该方法能够充分利用DRAM的I/O优势来掩盖PCM的读写性能不足,但是对于PCM的写操作减少作用有限。

被动迁移方式能够充分利用DRAM高读写带宽的特点,将尽可能多的写操作集中在DRAM,达到增加PCM寿命的目标。但是,这种被动式迁移策略,缺乏从PCM到DRAM的写频繁页面迁移,读写预测机制的不足导致PCM写次数减少程度有限。

Table 6 Related research on page migration in hybrid memory表6 混合内存页面迁移技术的相关研究

5.2 主动式页面迁移策略

主动式页面迁移策略通过访问频率和访问间隔定义数据页的冷热,选择合适的数据结构开发时间局部性和空间局部性,并判断页面的读写倾向性进行相应的页迁移,保证DRAM存放写倾向数据页,而PCM存放读倾向数据页。RaPP(Rank-based Page Placement)[30]采用一种基于改进的多队列置换算法MQ(Malti-queue)的页面管理方法,对于降级的DRAM页面和升级的PCM页面将会进行置换。具体做法是:若DRAM页面连续两次降级且期间没有被访问,则被移出队列并成为页面交换的候选目标;若PCM页面所属队列级别达到一定阈值,则触发迁移操作。Seok等人[31]提出通过4个LRU链表分别管理DRAM和PCM中的读写页面的方法。该方法监测每个页面的读写情况,并计算权值判断页面的读写倾向性。当PCM中写倾向页面的权值超过一定阈值时则将其迁移到DRAM上,若DRAM空间被填满,则从DRAM读倾向队列末尾选择页面换出,DRAM向PCM读倾向性页面的迁移操作与上述过程相似。此外,算法还维护一个LRU链表管理整个混合内存的页面,用于页面替换算法中选择被替换的页面。该算法本质是基于LRU改进的,不适用于弱局部性的应用场景,同时当迁移目的地被写满时需要选择页面替换出主存,会造成一定程度的命中率降低。APP-LRU(Access-Pattern-Prediction-based LRU)算法[32]根据数据页在磁盘中的历史读写访问比例信息判断该页面被写回主存后的读写倾向性,并且为读倾向性的页面分配PCM存储空间,为写倾向性的页面分配DRAM存储空间。当存储空间中数据的读写倾向性与存储介质的特性不匹配时,需要触发DRAM和PCM之间的页面迁移操作来创新分配与读写倾向性一致的内存空间。Zhang等人[33]同样通过MQ算法对页面写访问进行计数,根据页修改的频度来指导迁移。该算法通过16个LRU队列管理页面的访问频繁程度,把修改频繁的页面保存在DRAM中,将之前在DRAM但是具有较少写次数的页面迁移到PCM,但是对每个页面进行写访问次数统计以及MQ算法本身的复发度都会对系统的性能造成一定影响。

这些方法能够有效预测页面的读写热度,在页面表现出读写倾向时执行迁移操作,但是需要较大的空间开销来记录读写访问频率和局部访问热度,并且各算法预测结果也存在较大差异。

基于混合内存架构的页面迁移策略能够实现将更新频繁的页面保存在DRAM中,将读访问频繁的或者静态的数据存放在PCM中,通过预测页面的读写访问热度对数据进行迁移操作,达到减少PCM写数量的目的,延长PCM使用寿命的同时降低了系统能耗开销。

6 研究展望

目前PCM在存储体系结构中的应用研究还处于实验阶段,在上述延长PCM使用寿命的几项技术基础上,仍存在许多挑战未能解决。展望未来,针对PCM在替换存储架构中各个层次传统器件所面临的问题,以下几个方面值得进一步探索和研究。

6.1 混合存储技术与磨损均衡的结合

Flash和PCM都面临着写次数受限的问题,已有的一种解决方案是通过混合存储技术实现非易失性存储设备使用寿命的延长。在主存中,PCM通常与DRAM结合使用,而在二级存储层级中,基于闪存的SSD常常与HHD一起构建混合存储设备。在混合存储架构中,需要有改进的缓存算法、页面替换算法以及页面调度机制来发挥不同存储介质的性能优势。结合磨损均衡策略,能够在保证使用寿命的前提下保证存储系统的高性能。

6.2 纠错机制与磨损均衡的结合

芯片在生产的过程中由于工艺的问题,不能保证每个比特的可承受写入次数都达到预期。对内存使用较为贪婪的用户或者一个了解磨损均衡算法的攻击者可以很容易持续对存储单元进行写操作,造成这部分存储单元快速达到耐久性极限,从而在很短时间内失效。为了防止PCM中某些位可承受写次数因为工艺问题过小,而导致整个设备短时间内损坏的问题,必须要引入硬件纠错机制。现有的纠错算法需要较大的额外存储开销,并且没有特别区分SLC和MLC,因此在通过磨损均衡技术保证存储单元使用寿命的同时,如何更好地引入纠错机制仍需要进一步探索。

6.3 重删技术与磨损均衡的结合

通过磨损均衡策略可以实现写操作在存储单元中的均匀分布,也可以通过减少写操作次数,以及在混合存储架构中的数据迁移技术实现读写热度不同的数据按存储介质分别存放,达到损耗均衡的目的。为提升混合内存资源的空间利用率,需要利用前沿数据缩减技术,以较低的元数据开销,发现并消除尽可能多的数据冗余。在损耗均衡的基础上,通过重复数据技术[34]实现存储空间利用率的进一步提高。

7 结束语

PCM的研究与发展为打破现有的计算机存储体系提供了新的契机,工业界尚未完全攻克PCM写性能与使用寿命的缺陷,研究者们针对如何提高PCM使用寿命展开了广泛而深入的研究。无论是广泛采用的减少写操作数量、均匀化写操作的磨损均衡策略,还是运用于混合内存的页面迁移技术,都能够减缓因程序局部性带来的写分布不均衡、冗余写过多等问题,有效地延长PCM写寿命。

猜你喜欢
存储单元存储器移位
MDT诊疗模式在颞下颌关节盘不可复性盘前移位中的治疗效果
一种28 nm工艺下抗单粒子翻转SRAM的12T存储单元设计
静态随机存储器在轨自检算法
一种新型密集堆垛式仓储系统设计
再生核移位勒让德基函数法求解分数阶微分方程
大型球罐整体移位吊装技术
大型总段船坞建造、移位、定位工艺技术
浮点类型有效位数计算与应用分析
数据在计算机内存中的存储形式及实验验证
任意2~k点存储器结构傅里叶处理器