CN102043591A - Pram的写操作方法 - Google Patents
Pram的写操作方法 Download PDFInfo
- Publication number
- CN102043591A CN102043591A CN 201010564893 CN201010564893A CN102043591A CN 102043591 A CN102043591 A CN 102043591A CN 201010564893 CN201010564893 CN 201010564893 CN 201010564893 A CN201010564893 A CN 201010564893A CN 102043591 A CN102043591 A CN 102043591A
- Authority
- CN
- China
- Prior art keywords
- data
- pram
- storage unit
- operation method
- write operation
- 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.)
- Granted
Links
Images
Abstract
本发明公开了一种PRAM的写操作方法,包括:S1:将需要写回PRAM的数据进行多次循环移位;S2:计算步骤S1中每个循环移位后的数据与旧数据的汉明距离;S3:选取最小汉明距离所对应的循环移位后的数据写入PRAM中旧数据对应的空间,只在与旧数据按位比较相同位上不同数据的位中写入数据,并将所选择的循环移位后的数据的移位位数也记录在所述PRAM中。本发明减少对PRAM总的写入次数,延长PRAM的使用寿命。
Description
技术领域
本发明涉及计算机存储器技术领域,特别涉及一种PRAM的写操作方法。
背景技术
相位可变随机存储器(phase-change random access memory,PRAM),也称为相变存储器(Phase Change Memory,PCM)。具有巨大的应用前景。与闪存(Flash)相比具有读写速度快,寿命长等优点。但PRAM的存储颗粒同样具有有限的生命周期,可擦写次数为108-109次。由于读写速度和低功耗方面的优势,也可以将PRAM作为主存DRAM的替代品,已有成为下一代主存的趋势。与DRAM相比,PRAM具有集成密度高,功耗低,非易失等特点,但其读写速度稍慢,有限的可擦写次数依然是其突出性的问题。如何减少写回PRAM的数据成为增强相变存储器存储寿命的一种显著方法。
PRAM是按位为单位进行操作的,一个PRAM存储单元使用一种叫做相变材质来存储1比特信息。这种介质可以稳定的存在两种状态:非晶体状态和晶体状态。可以用来代表逻辑上的‘0’和‘1’。两种状态可以通过加热来进行状态转换。这种材质还可以通过加热温度的不同来形成多种可以区分的状态来存储更多的信息。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何减少对PRAM的写回次数。
(二)技术方案
为解决上述技术问题,本发明提供了一种PRAM的写操作方法,包括以下步骤:
S1:将需要写回PRAM的数据进行多次循环移位;
S2:计算步骤S1中每个循环移位后的数据与旧数据的汉明距离;
S3:选取最小汉明距离所对应的循环移位后的数据写入PRAM中旧数据对应的空间,只在与旧数据按位比较相同位上不同数据的位中写入数据,并将所选择的循环移位后的数据的移位位数也记录在所述PRAM中。
其中,步骤S1具体为:
将需要写回的数据循环移位0~N-1位,并将循环移位后得到的N个数据存在PRAM控制电路的第一组N个存储单元中,每个储存单元中存储的数据为循环移位不同位数而得到的数据,其中,N为数据的bit长度。
其中,所述步骤S2具体包括:
S2.1:在CPU把缓存中长度为N的更新过的数据写回PRAM时,从PRAM中存储旧数据的数据区中读出旧数据;
S2.2:将所述旧数据在PRAM控制电路的第二组N个存储单元中各存储一份;
S2.3:计算第一组N个存储单元中的循环移位后的数据与第二组N个存储单元中的旧数据计算各自的汉明距离。
其中,所述步骤S2.3中具体为:并行地计算第一组N个存储单元中的循环移位后的数据与第二组N个存储单元中的旧数据计算各自的汉明距离。
其中,所述步骤S2.1中的数据区对应有标记区,数据区和标记区的个数相等,长为M的数据区对应长为log2M的标记区。
其中,所述步骤S3中的移位位数记录在所述标记区。
其中,所述循环移位为方向一致向左的移位或方向一致向右的移位。
其中,所述第一组N个存储单元为PRAM控制电路的前N个存储单元,所述第二组N个存储单元为PRAM控制电路的后N个存储单元,且前后N个存储单元不重叠。
(三)有益效果
本发明通过对要写入的数据循环移位后计算与旧数据的汉明距离,找到汉明距离最小的循环移位后的数据,并在写入PRAM时只写入与旧数据相应位的数据不同的数据,还将移动的位数写入标记区,从而减少对PRAM总的写入次数,延长PRAM的使用寿命。
附图说明
图1是本发明实施例的一种PRAM的写操作方法流程图;
图2是本发明实施例的一种PRAM的写操作方法中计算汉明距离示意图;
图3是根据本发明的PRAM的写操作方法写入后读取还原的过程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
如图1所示,为本发明实施例的一种PRAM的写操作方法流程图,包括:
步骤S101,将需要写回PRAM的数据进行多次循环移位。具体地,将需要写回的数据循环移位0~N-1位,N为数据的bit长度,移位时可以左移也可以右移,但方向要一致,并将循环移位后得到的N个数据存在PRAM控制电路的第一组N个存储单元中,存储单元是以N bit为单位的存储单元,每个储存单元中存储的数据为循环移位不同位数而得到的数据。
步骤S102,读取旧数据。优选地,将PRAM分为数据区和标记区,数据区和标记区个数相等,数据区和标记区一一对应,长为M的数据区对应一个长为log2M的标记区。在CPU把缓存中长度为N更新过的数据写回PRAM时,先从PRAM中存储旧数据的数据区中读出旧数据,并将所述旧数据在PRAM控制电路的第二组N个存储单元中各存储一份。CPU每次写会的数据的长度都是一样的,即cacheline的长度,所以新数据和旧数据的长度相同。为了方便存储,优选将旧数据存储在PRAM控制电路的后N个存储单元,循环移位后的数据存储中PRAM控制电路的前N个存储单元,且前后N个存储单元不重叠。
步骤S103,计算每个循环移位后的数据与旧数据的汉明距离。如图2所示,计算移位0,1,......,N-1位后的N个数据和旧数据的汉明距离,就是两个长度为N的新旧数据,按位异或,得到另一个长度为N的数,这个数中“1”的个数就是它们的汉明距离。具体地,PRAM控制电路的前N个存储单元中的循环移位后的数据并行地与PRAM控制电路的后N个存储单元中的旧数据计算各自的汉明距离。并将计算出的汉明距离分别对应地存储在PRAM控制电路的后N个存储单元中。
步骤S104,选取最小汉明距离所对应的循环移位后的数据,即所有移位后的数据和旧数据比较,相同bit位不同值最少(即步骤S103中“1”的个数最少的另一个长度为N的数对应的移位后的数据)的移位后的数据为汉明距离最小的数据。
步骤S105,将步骤S104选取的数据写入PRAM中旧数据对应的空间,写入时,将该数据与旧数据按位比较,只在与旧数据按位比较相同位(bit)上不同数据的位中写入数据,这样可以减少对PRAM的写入次数。为了读取数据后还原,还将所选择的循环移位后的数据的移位位数也记录在PRAM中,具体记录在与写入的数据区对应的标记区中。其读取还原过程如图3所示,读出的参与CPU内部计算的数据需要根据记录的移动位数还原。具体的还原如下:如果处理器执行写操作时,计算汉明距离采用的是左移,那么恢复的则采用右移。例如记录循环左移的标记值为j,那么在处理器读数据的时候,先从主存中读出该数据,同时读出标记,值为j,那么把该数据循环右移j位后读入处理器进行接下来的常规操作。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (8)
1.一种PRAM的写操作方法,其特征在于,包括以下步骤:
S1:将需要写回PRAM的数据进行多次循环移位;
S2:计算步骤S1中每个循环移位后的数据与旧数据的汉明距离;
S3:选取最小汉明距离所对应的循环移位后的数据写入PRAM中旧数据对应的空间,只在与旧数据按位比较相同位上不同数据的位中写入数据,并将所选择的循环移位后的数据的移位位数也记录在所述PRAM中。
2.如权利要求1所述的PRAM的写操作方法,其特征在于,步骤S1具体为:
将需要写回的数据循环移位0~N-1位,并将循环移位后得到的N个数据存在PRAM控制电路的第一组N个存储单元中,每个储存单元中存储的数据为循环移位不同位数而得到的数据,其中,N为数据的bit长度。
3.如权利要求2所述的PRAM的写操作方法,其特征在于,所述步骤S2具体包括:
S2.1:在CPU把缓存中长度为N的更新过的数据写回PRAM时,从PRAM中存储旧数据的数据区中读出旧数据;
S2.2:将所述旧数据在PRAM控制电路的第二组N个存储单元中各存储一份;
S2.3:计算第一组N个存储单元中的循环移位后的数据与第二组N个存储单元中的旧数据计算各自的汉明距离。
4.如权利要求3所述的PRAM的写操作方法,其特征在于,所述步骤S2.3中具体为:并行地计算第一组N个存储单元中的循环移位后的数据与第二组N个存储单元中的旧数据计算各自的汉明距离。
5.如权利要求3所述的PRAM的写操作方法,其特征在于,所述步骤S2.1中的数据区对应有标记区,数据区和标记区的个数相等,长为M的数据区对应长为log2M的标记区。
6.如权利要求5所述的PRAM的写操作方法,其特征在于,所述步骤S3中的移位位数记录在所述标记区。
7.如权利要求2所述的PRAM的写操作方法,其特征在于,所述循环移位为方向一致向左的移位或方向一致向右的移位。
8.如权利要求3~6中任一项所述的PRAM的写操作方法,其特征在于,所述第一组N个存储单元为PRAM控制电路的前N个存储单元,所述第二组N个存储单元为PRAM控制电路的后N个存储单元,且前后N个存储单元不重叠。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010564893A CN102043591B (zh) | 2010-11-24 | 2010-11-24 | Pram的写操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010564893A CN102043591B (zh) | 2010-11-24 | 2010-11-24 | Pram的写操作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102043591A true CN102043591A (zh) | 2011-05-04 |
CN102043591B CN102043591B (zh) | 2012-09-05 |
Family
ID=43909755
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010564893A Active CN102043591B (zh) | 2010-11-24 | 2010-11-24 | Pram的写操作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102043591B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508787A (zh) * | 2011-11-29 | 2012-06-20 | 清华大学 | 混合结构内存的内存分配系统及方法 |
WO2014056330A1 (zh) * | 2012-10-10 | 2014-04-17 | 华为技术有限公司 | 数据写入方法及装置 |
US9632708B2 (en) | 2013-05-09 | 2017-04-25 | Huawei Technologies Co., Ltd. | Method, apparatus, and system for reading and writing data |
WO2019128958A1 (zh) * | 2017-12-29 | 2019-07-04 | 华为技术有限公司 | 缓存替换技术 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6996015B2 (en) * | 2003-12-03 | 2006-02-07 | Texas Instruments Incorporated | First-in first-out memory system with single bit collision detection |
CN1858855A (zh) * | 2006-02-17 | 2006-11-08 | 华为技术有限公司 | 一种延长非易失存储器寿命的计数方法和装置 |
-
2010
- 2010-11-24 CN CN201010564893A patent/CN102043591B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6996015B2 (en) * | 2003-12-03 | 2006-02-07 | Texas Instruments Incorporated | First-in first-out memory system with single bit collision detection |
CN1858855A (zh) * | 2006-02-17 | 2006-11-08 | 华为技术有限公司 | 一种延长非易失存储器寿命的计数方法和装置 |
Non-Patent Citations (1)
Title |
---|
《MICRO 42 Proceedings of the 42nd Annual IEEE/ACM International Symposium on Microarchitecture》 20091231 Sanqyeun Cho et al. 《Flip-N-Write:a simple deterministic technique to improve PRAM write performance,energy and endurance》 1-11 1-8 , 2 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508787A (zh) * | 2011-11-29 | 2012-06-20 | 清华大学 | 混合结构内存的内存分配系统及方法 |
CN102508787B (zh) * | 2011-11-29 | 2014-09-03 | 清华大学 | 混合结构内存的内存分配系统及方法 |
WO2014056330A1 (zh) * | 2012-10-10 | 2014-04-17 | 华为技术有限公司 | 数据写入方法及装置 |
US9632708B2 (en) | 2013-05-09 | 2017-04-25 | Huawei Technologies Co., Ltd. | Method, apparatus, and system for reading and writing data |
WO2019128958A1 (zh) * | 2017-12-29 | 2019-07-04 | 华为技术有限公司 | 缓存替换技术 |
Also Published As
Publication number | Publication date |
---|---|
CN102043591B (zh) | 2012-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101673188B (zh) | 一种固态硬盘的数据存取方法 | |
CN103164343B (zh) | 基于相变存储器的分页、ecc校验及多位预取方法及其结构 | |
CN102779096B (zh) | 一种基于页块面三维的闪存地址映射方法 | |
CN101620572B (zh) | 非易失性内存及控制方法 | |
CN104899154B (zh) | 基于嵌入式系统混合主存的页面管理方法 | |
CN102253901B (zh) | 一种基于相变内存的读写区分数据存储替换方法 | |
Burr et al. | Storage class memory | |
CN105808156A (zh) | 将数据写入固态硬盘的方法及固态硬盘 | |
Luo et al. | Flash translation layer: a review and bibliometric analysis | |
CN104731515B (zh) | 控制存储设备机群磨损均衡的方法及设备 | |
CN102097125B (zh) | 相变存储器的写操作方法 | |
CN102043591B (zh) | Pram的写操作方法 | |
CN106354658B (zh) | 一种降低混合映射算法中映射表内存资源占用的方法 | |
CN103942161B (zh) | 只读缓存的去冗余系统及方法以及缓存的去冗余方法 | |
CN103890856A (zh) | 支持内存储数据结构的可移位存储器 | |
CN104484128A (zh) | 基于一读一写存储器的多读多写存储器及其实现方法 | |
CN104317753A (zh) | 存储设备及其数据读写方法 | |
CN104714894A (zh) | 一种分层的基于随机映射的相变内存磨损均衡方法及系统 | |
CN109002257A (zh) | 一种基于可变便笺存储器的数据分布优化方法 | |
CN103150122A (zh) | 一种磁盘缓存空间管理方法和装置 | |
CN102520885B (zh) | 一种混合硬盘的数据管理系统 | |
CN103885724B (zh) | 基于相变存储器的存储系统结构及其损耗均衡算法 | |
KR20140021793A (ko) | 비휘발성 램 기반의 b+ 트리 데이터베이스화 방법 | |
CN102122267A (zh) | 一种可同时进行数据传输及FTL管理的多通道NANDflash控制器 | |
CN102486751A (zh) | 一种在微内存系统上实现小页nandflash虚拟大页的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |