CN104794061B - 一种相变存储***损耗均衡方法 - Google Patents

一种相变存储***损耗均衡方法 Download PDF

Info

Publication number
CN104794061B
CN104794061B CN201510200883.5A CN201510200883A CN104794061B CN 104794061 B CN104794061 B CN 104794061B CN 201510200883 A CN201510200883 A CN 201510200883A CN 104794061 B CN104794061 B CN 104794061B
Authority
CN
China
Prior art keywords
write
data
segment
psn
section
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510200883.5A
Other languages
English (en)
Other versions
CN104794061A (zh
Inventor
姚英彪
王发宽
韩琪
杜晨杰
陈越佳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Xinxiao Information Technology Co Ltd
Original Assignee
Hangzhou Dianzi University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Dianzi University filed Critical Hangzhou Dianzi University
Priority to CN201510200883.5A priority Critical patent/CN104794061B/zh
Publication of CN104794061A publication Critical patent/CN104794061A/zh
Application granted granted Critical
Publication of CN104794061B publication Critical patent/CN104794061B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公开了一种相变存储***损耗均衡方法。本发明首先对当前服务请求,读取地址映射表、预留段表以及寄存器值,获得目标逻辑段号LSN及对应的物理段PSN;然后判断请求类型是读请求还是写请求。若是读请求,直接读取PSN内的数据;反之根据RSA分配机制,重新确定将要写入的物理段PSN。采用Shift‑Flip‑N‑Write算法,将数据写入到正确的物理段PSN中;最后判断是否服务完所有请求。若已服务完,则检测预留段表中是否有无效段。若存在无效预留段,则进行预留段交换。本发明能够均衡相变存储器的写操作,从而延长相变存储器的使用寿命。

Description

一种相变存储***损耗均衡方法
技术领域
本发明属于计算机技术领域,涉及一种相变存储***损耗均衡方法。
背景技术
在计算机体系结构中,处理器与存储器是***的两大核心,在过去的几十年时间内,处理器和存储器都在不断的发展更新。随着处理器的处理速度越来越快,存储器也在不断地发展,尤其是主存储器的容量越来越大。
动态随机存取存储器(DRAM)是目前最普遍的主存***的存储技术,具有速度快及可靠性高等优点,但由于是易失性存储器,需要用电来维持存储***中的数据,使得它的静态功耗比较高。随着存储器的容量越来越大,存储***的静态能耗在总存储能耗的比重也直线上升,存储***的能耗在计算机***总能耗中的占比也不断攀升。例如,在服务器应用领域,主存***的能耗大约占到***能耗的40%。因此,具有高密度、低漏电功耗、长寿命等特性的存储器——相变存储器(PRAM)得到了不少研究者的关注。
相变存储器作为非易失存储器,近年来成为了存储器***方面的研究热点,是取代DRAM、FLASH、硬盘等存储产品的最佳候选者。与DRAM相比,PRAM具有:1)良好的可扩放性;2)低漏电流功耗,降低了存储***的能耗;3)数倍于DRAM的存储密度,大大缩小了存储***的体积。因此,在当今阶段开展对PRAM存储器的研究,促进其早日替代DRAM作为计算机主存储器,是一件非常有意义的工作。
相变存储器PRAM因为具有能耗低、存储密度高、非易失性等优点,因而受到广泛的关注和研究,但它同时存在以下两点不足之处:
1)写操作代价高。当PRAM发生读操作时,只需在相变材料两端施加适当电压,然后通过测量电流即可读取存储单元内的数据;当PRAM发生写操作时,需要将PRAM存储单元迅速加热到较高温度,然后再进行冷却,使相变材料转换为晶态或者非晶态,这一过程需要较大的电流。所以PRAM的写操作与读操作是极不对称的,其读操作延时与DRAM在同一水平,功耗比DRAM更占优势;但是写操作代价却非常高,延时约为DRAM的6-10倍,功耗约为DRAM的3-5倍。
2)可写次数有限制。相变存储器利用相变材料的相位变化来存储数据,而相变材料的相位变化是有次数限制的;也就是说,当变化次数超过它的极限的时候,该相变存储器就会失效。目前相变存储器的耐写次数可以达到108-109次,但与DRAM和磁盘的1015次相比仍具有较大的差距。
发明内容
本发明针对上述相变存储器PRAM的不足,提出了一种相变存储***损耗均衡方法,从而延长相变存储器的寿命。
本发明解决技术问题所采取的技术方案:
步骤1:对当前服务请求,读取其地址映射表、预留段表以及寄存器值,从而获得请求的目标逻辑段号LSN及对应的物理段PSN。
步骤2:判断当前的服务请求的类型是读请求还是写请求。若是读请求,执行步骤3;反之执行步骤4。
步骤3:直接读取物理段PSN内的数据,然后转到步骤6。
步骤4:基于预留空间分配机制(RSA:Reserved Space Allocation),重新确定将要写入的物理段PSN。
步骤5:采用Shift-Flip-N-Write算法,将数据写入到正确的物理段PSN中。
步骤6:判断是否服务完所有请求。若已经服务完,执行步骤7;反之执行步骤1。
步骤7:所有请求服务结束后,检测预留段表中是否有无效段,当检测到预留段表中有无效预留段时,则进行预留段交换。
进一步地,如上所述步骤(4)的基于预留空间分配机制RSA,重新确定将要写入的物理段PSN,具体包括以下步骤:
4-1.根据地址映射表,找到物理段PSN,读取该物理段PSN的写操作次数segment_write_count(SWC),若该写操作次数segment_write_count不超过阈值θ(下文对θ等于1024进行了测试,并且取得较好效果),则将该数据写入到该物理段PSN,反之进入步骤4-2。
4-2.当该物理段PSN的写操作次数超过阈值θ,则地址映射表进行地址重映射,将该逻辑段重映射到预留池(Reserved Segment Pool,RSP)中空闲的预留段,原本的物理段则为预留池中的无效段。
进一步地,如上所述的步骤(5)中Shift-Flip-N-Write算法,以8bit作为循环移位的单位,且当该存储行的写入次数超过阈值φ时,进行移位。下文分别对φ等于64,128,256,512,1024进行了实验,由实验可知,256,512为较合适的写操作阈值
该算法需要额外的空间来保存三个数据:1)行写操作次数row_write _count,用来记录该存储行发生写操作的次数;2)当前的位移偏量offset,记录当前的偏移位,以便下一次的读出或写入;3)翻转位Flip,和Flip-N-Write一样,需要记录当前的数据是否与原数据相反。该算法具体包括以下几个步骤:
(1)首先读出row_write_count和offset数据,若row_write_count小于φ,将row_write_count加1,offset不变;若row_write_count大于等于φ,则将row_write_count置0,offset加1。
(2)将要写入的新数据按照offset×8bit进行移位,并且读出该行的旧数据与移位后的新数据进行对比,若新旧数据的海明距离大于N/2(N为存储行的位宽,一般为32,64),则将新数据取反,写入目标行中,并且将Flip位置1;反之,则直接向新数据写入目标行,Flip位置0。
(3)写入时按位进行对比,当该位的新数据与旧数据不一样时,进行该位的更新。这样,当该数据写入目标地址时,实际更新的比特数将低于或等于N/2。
进一步地,如上所述的步骤(7)中的预留段交换,根据内存控制器中保存的物理段的写操作次数,找出存储空间中的冷存储段,将该冷存储段上的数据写入到无效的预留段中,并且更新地址映射表,写入时执行Shift-Flip-N-Write算法,冷存储段则作为预留段。
本发明有益效果如下:
本发明能够均衡相变存储器的写操作,从而延长相变存储器的使用寿命,保障存储数据的可靠性;同时,本发明在一定程度上降低了相变存储器的写操作次数,从而降低相变存储器的能耗。
附图说明
图1是相变存储***写均衡流程图;
图2是段损耗均衡操作过程;
图3是存储行循环位移装置;
图4是段交换;
图5是更新后的映射表和预留段池;
图6(a)是存储行最高写次数;
图6(b)是存储行最高写次数;
图6(c)是存储行最高写次数;
图6(d)是存储行最高写次数;
图6(e)是存储行最高写次数;
图7是存储行的写操作总数;
图8是存储段的最高写次数。
具体实施方式
以下结合附图对本发明作进一步说明。
一种相变存储***损耗均衡方法,包含存储段写均衡和存储行写均衡两个方面,完整的实施方法如图1所示,包括以下步骤:
步骤1.对当前服务请求,读取地址映射表、预留段表以及寄存器值,从而获得请求的目标逻辑段号LSN及对应的物理段PSN;如图2中的Mapping Table和Reserved SegmentPool。其中LSN(Logical Segment Number)列表示的是逻辑段号,括号内表示的是逻辑段上发生的写操作数;PSN(Physical Segment Number)列表示的是物理段号,括号内表示的是该物理段上发生的写操作次数。如图2中所示,LSN为12所映射的PSN为12,LSN为13所映射的PSN为13,依次类推。
步骤2.判断正在服务的请求的类型是读请求还是写请求。若是读请求,执行步骤3;反之执行步骤4。
步骤3.直接读取PSN内的数据,然后转到步骤6。
步骤4.根据RSA分配机制,重新确定将要写入的物理段PSN;
每一个LSN都会被映射到一个PSN,物理段上的写操作次数的阈值为θ,也就是说当某物理段上写操作发生θ次之后,地址映射表就会进行地址重映射。
(4.1)当写操作次数segment_write_count(SWC)小于θ,将数据写入LSN所映射的PSN中,并且令SWC加1;
(4.2) 当写操作次数segment_write_count(SWC)大于等于θ,则将LSN重映射到空闲预留段PSN’, SWC为0,原来的PSN则暂定为无效预留段。
如图2中PSN为252的物理段发生的写操作次数到达θ后,LSN为252的逻辑段就会映射到预留段池中PSN为300的空闲段,PSN为252的物理段将成为无效段。当PSN为13的存储段发生的写操作次数达到θ次之后,地址映射表就将LSN为13的逻辑段重映射到预留段池中PSN为301的空闲段,当PSN为301的预留段的写操作数到达θ时,逻辑段重映射到PSN为302的预留段。以此类推,最后LSN为13的逻辑段映射的物理段其实是预留段池中PSN为305的存储段。因此,尽管LSN为13的逻辑段上发生的写操作数为4.35θ,但经过地址重映射,4.35θ次写操作被均衡地分配到各个物理段上。
步骤5.采用Shift-Flip-N-Write算法,将数据写入到正确的物理段PSN中;
(5.1)当写入数据时,首先读出行写操作数row_write_count和位移offset数据,若row_write_count小于φ,将row_write_count加1,offset不变;若row_write_count大于等于φ,则将row_write_count置0,offset加1。
(5.2)将要写入的新数据按照offset×8bit进行移位,该循环位移装置如图3所示,并且读出该行的旧数据与移位后的新数据进行对比,若新旧数据的海明距离大于N/2,则将新数据取反,写入目标行中,并且将Flip位置1;反之,则直接向新数据写入目标行,Flip位置0。
(5.3)写入时按位进行对比,当该位的新数据与旧数据不一样时,进行该位的更新。这样,当该数据写入目标地址时,实际更新的比特数将低于或等于N/2。
其中Shift-Flip-N-Write算法的伪代码如下所示:
0: // N: word width
1: // F and F’: new and old flip bit values
2: // C and C’: new and old row_write_count
3: // O and O’: new and ole offset
4: Write(A: address, D: data)
5: C’ = Read_C_Bit(A)
6: O’ = Read_O_Bit(A)
7: if(C’ < φ)
8: C = C’ + 1
9: O = O’
10: else
11: C = 0
12: O = O’ + 1
13: end if
14: D = Left_Round_Shift(8*O, D) //shifting the data
15: D’ = Read(A);
16: F’ = Read_Flip_Bit(A);
17: if hamming_dist({D, 0}, {D’, F’}) > N/2
18: D = ~D; //flip data
19: F = 1; //set flip bit
20: else
21: F = 0; //don’t flip
22: end if
23: for each bit in {D’, F’} and {D, F}
24: if they differ
25: update memory bit
26: end if
27: end for
步骤6.判断是否服务完所有请求。若已经服务完,执行步骤7;反之执行步骤1;
步骤7.所有请求结束时,检测预留段表中是否有无效段,当***检测到预留段表中有无效预留段时,则进行预留段的交换。
首先查找存储空间中的冷存储段,将该冷存储段上的数据写入到无效的预留段中,然后更新映射表,写入时执行Shift-Flip-N-Write算法,冷存储段则作为预留段。
在更换预留段之前,所有失效的物理段都将会重分配,而那些预留段池内的有效段都将与逻辑段一一映射。如图4中,预留段池中PSN为300、305、306、307的物理段将分别与LSN为252、13、121、15的逻辑段一一映射,而LSN为13、15、121、252的物理段将被暂时列为预留段,与其他写操作数超过θ的预留段一样,等待与那些写操作稀疏的物理段进行替换操作。如图4所示,写操作较少的物理段与预留段进行交换操作,将PSN位420的物理段的数据写入到PSN为252的预留段,并且将PSN位420的物理段标志成预留段,PSN为252的物理段与LSN为420的逻辑段进行映射。更新后的映射表和预留段表如图5所示,这些更新的段的segment_write_count重新从0开始记录。
为验证本发明有效性,对本发明方法进行了仿真实验。实验采用GEM5体系结构模拟器进行模拟,为了方便测试存储器中的存储行和存储段上的写操作分布,实验设定PRAM的存储容量为128MB,设定的存储行的大小为128B,即1024bit,设定的存储段的大小为128KB,具体的***配置情况如表1所示。
表1 测试***配置情况
本实验选用了PARSEC2.1测试组件中的4个测试程序和splash2测试组件中的2个测试程序,分别为blackscholes、bodytrace、freqmin、vips、barnes、ocean,它们的简要功能描述如表2所示。
表2 测试程序描述
(1)行写均衡测试
对存储行进行2048次的写操作,比较Flip-N-Write和Shift-Flip-N- Write两个算法下存储行中的每个比特位上最高的写次数。实验分别测试当写操作阈值为64、128、256、512、1024时,该存储行的最高写次数,如图6所示。这是因为该测试的写次数是限定的,为2048次,当写次数阈值越少,需要更新的比特位就会越分散在该存储行中,因而它的最高写次数也就越小。
如图6所示,Shift-Flip-N-Write算法能将存储行内的最高写次数降低,从而均衡写操作。并且由于总写操作次数2048次的限制,使得写操作次数阈值越小,该算法的效果越好。为了进一步研究,对Shift-Flip-N-Write算法和Flip-N-Write算法的对行的写次数总数作比较,Shift-Flip-N-Write算法的写操作阈值分别为64、128、256、512、1024,对应于图6(a)、图6(b)、图6(c)、图6(d)和图6(e),如图7所示。从图中可以看出当写操作阈值越小,存储行的总写操作次数越大,当写操作阈值为64的时候,存储行的总写操作次数最大,比Flip-N-Write算法上升了44%左右。写操作阈值分别为64、128、256、512、1024的时候,存储行的总写操作次数依次增加44%、22%、10%、5%、3%,而存储行中位上的最大写操作次数比Flip-N-Write依次降低85%、73%、61%、38%、10%。从这些数据中可以看出,256和512是比较合适的写操作阈值。
(2)段写均衡测试
对Segment swapping和RSA进行存储段的最大写次数进行测试,设定写操作阈值为1024次,测试结果如图8所示,从图中可以看到,RSA机制比Segment swapping机制更有效地降低存储行的最大写操作次数,有效延长了PRAM的寿命。

Claims (1)

1.一种相变存储***损耗均衡方法,其特征在于该方法的具体步骤如下:
步骤1:对当前服务请求,读取其地址映射表、预留段表以及寄存器值,从而获得请求的目标逻辑段号LSN及对应的物理段PSN;
步骤2:判断当前服务请求的类型是读请求还是写请求;若是读请求,执行步骤3;反之执行步骤4;
步骤3:直接读取物理段PSN内的数据,然后转到步骤6;
步骤4:基于预留空间分配机制RSA,重新确定将要写入的物理段PSN;
步骤5:采用Shift-Flip-N-Write算法,将数据写入到正确的物理段PSN中;
步骤6:判断是否服务完所有请求;若已经服务完,执行步骤7;反之执行步骤1;
步骤7:所有请求服务结束后,检测预留段表中是否有无效段,当检测到预留段表中有无效预留段时,则进行预留段交换;
步骤4中所述的RSA,具体包括以下步骤:
4-1.根据地址映射表,找到物理段PSN,读取该物理段PSN的写操作次数segment_write_count,若该写操作次数segment_write_count不超过阈值θ,则将该数据写入到该物理段PSN,反之进入步骤4-2;
4-2.当该物理段PSN的写操作次数超过阈值θ,则地址映射表进行地址重映射,将该逻辑段重映射到预留池中空闲的预留段,原本的物理段则为预留池中的无效段;
步骤5中所述的Shift-Flip-N-Write算法采用额外的空间来保存三个数据:1)写操作次数row_write_count,用来记录该存储行发生写操作的次数;2)当前的位移偏量offset,记录当前的偏移位,以便下一次的读出或写入;3)翻转位Flip,需要记录当前的数据是否与原数据相反;
具体包括以下步骤:
5-1.首先读出row_write_count和offset数据,若row_write_count小于阈值将row_write_count加1,offset不变;若row_write_count不小于则将row_write_count置0,offset加1;
5-2.将要写入的新数据按照offset×8bit进行移位,并且读出该行的旧数据与移位后的新数据进行对比,若新旧数据的海明距离大于N/2,则将新数据取反,写入目标行中,并且将Flip位置1,N为存储行的位宽;反之,则直接向新数据写入目标行,Flip位置0;
5-3.写入时按位进行对比,当该位的新数据与旧数据不一样时,进行该位的更新;这样,当该数据写入目标地址时,实际更新的比特数将低于或等于N/2;
步骤7的预留段交换分散了预留段的写操作次数;根据内存控制器中存储的数据,查找存储空间中的冷存储段,将该冷存储段上的数据写入到无效的预留段中,并且更新地址映射表,写入时执行Shift-Flip-N-Write算法,冷存储段则作为预留段。
CN201510200883.5A 2015-04-24 2015-04-24 一种相变存储***损耗均衡方法 Active CN104794061B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510200883.5A CN104794061B (zh) 2015-04-24 2015-04-24 一种相变存储***损耗均衡方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510200883.5A CN104794061B (zh) 2015-04-24 2015-04-24 一种相变存储***损耗均衡方法

Publications (2)

Publication Number Publication Date
CN104794061A CN104794061A (zh) 2015-07-22
CN104794061B true CN104794061B (zh) 2018-11-02

Family

ID=53558870

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510200883.5A Active CN104794061B (zh) 2015-04-24 2015-04-24 一种相变存储***损耗均衡方法

Country Status (1)

Country Link
CN (1) CN104794061B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106057236B (zh) * 2016-05-24 2018-10-16 华中科技大学 一种相变存储器数据写入方法
CN106934158B (zh) * 2017-03-13 2020-02-18 湖南大学 相变存储器模拟方法和***
CN112068775A (zh) * 2020-09-03 2020-12-11 南昌航空大学 一种提高pcm写性能的优化方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102841852A (zh) * 2011-06-24 2012-12-26 华为技术有限公司 磨损均衡方法、存储装置及信息***

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102067029B1 (ko) * 2012-12-13 2020-01-16 삼성전자주식회사 반도체 메모리 장치 및 메모리 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102841852A (zh) * 2011-06-24 2012-12-26 华为技术有限公司 磨损均衡方法、存储装置及信息***

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
A Durable and Energy Efficient Main Memory Using Phase Change Memory Technology;Ping Zhou等;《ACM SIGARCH computer Architecture News.ACM》;20091231;第37卷(第3期);第14-23页 *
Flip-N-Write:A Simple Deterministic Technique to Improve PRAM Write Performance,Energy and Endurance;Sangyeun Cho等;《Proceedings of the 42nd Annual IEEE/ACM International Symposium on Microarchitecture》;20091216;第347-357页 *
一种基于代数映射的相变内存矩阵磨损均衡方法;杜雨阳等;《计算机研究与发展》;20121215;第49卷(第12期);第2713-2720页 *

Also Published As

Publication number Publication date
CN104794061A (zh) 2015-07-22

Similar Documents

Publication Publication Date Title
US8291156B2 (en) Memory system having hybrid density memory and methods for wear-leveling management and file distribution management thereof
JP5728672B2 (ja) ハイブリッドメモリ管理
US20140006848A1 (en) Bad block management mechanism
US9189313B2 (en) Memory system having NAND-type flash memory and memory controller with shift read controller and threshold voltage comparison module
CN103765392A (zh) 存储器装置的损耗均衡
CN102306503B (zh) 一种假容量存储器的检测方法及***
TWI644209B (zh) 記憶體管理
CN101641679A (zh) 用于***管理的多级单元选择的多程序
US11735254B2 (en) Error avoidance based on voltage distribution parameters of blocks
CN104794061B (zh) 一种相变存储***损耗均衡方法
CN113590505B (zh) 地址映射方法、固态硬盘控制器及固态硬盘
US11664085B2 (en) Managing data disturbance in a memory with asymmetric disturbance effects
US11705193B2 (en) Error avoidance based on voltage distribution parameters
CN109726140A (zh) 非易失性存储器件及其操作方法以及存储设备
US11615858B2 (en) Media management operations based on health characteristics of memory cells
US11705192B2 (en) Managing read level voltage offsets for low threshold voltage offset bin placements
JP5367357B2 (ja) メモリシステムおよびコンピュータシステム
US10740026B2 (en) Time indicator of super block operations
US20240069776A1 (en) Super block management for efficient utilization
US12002516B2 (en) Memory block characteristic determination
CN111949197B (zh) 一种3d tlc闪存存储器及其数据写入方法和装置
US20240177760A1 (en) Probabilistic data integrity scans using risk factor estimation
US12013792B2 (en) Error avoidance for partially programmed blocks of a memory device
Shi et al. Read latency variation aware performance optimization on high-density NAND flash based storage systems
US20240061589A1 (en) Code rate as function of logical saturation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20190906

Address after: 310000 Room B601, Building 209, No. 3 Street, Baiyang Street, Hangzhou Economic and Technological Development Zone, Hangzhou, Zhejiang Province

Patentee after: Hangzhou Xinxiao Information Technology Co., Ltd.

Address before: Hangzhou City, Zhejiang province 310018 Xiasha Higher Education Park No. 2 street

Patentee before: Hangzhou Electronic Science and Technology Univ

TR01 Transfer of patent right