CN102981972A - 一种相变存储器的损耗均衡方法 - Google Patents
一种相变存储器的损耗均衡方法 Download PDFInfo
- Publication number
- CN102981972A CN102981972A CN2012105695563A CN201210569556A CN102981972A CN 102981972 A CN102981972 A CN 102981972A CN 2012105695563 A CN2012105695563 A CN 2012105695563A CN 201210569556 A CN201210569556 A CN 201210569556A CN 102981972 A CN102981972 A CN 102981972A
- Authority
- CN
- China
- Prior art keywords
- zone
- hot
- address
- cold
- physical
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种相变存储器的损耗均衡方法。它包括以下步骤:判定相变存储器中频繁写的热区和不频繁写的冷区;将热区向冷区移动,直至遍及全部存储区后再循环移动;通过逻辑-物理的转换公式获得需要访问的相变存储器物理地址。本发明具有如下的优点:避免了大量写操作集中在热区,实现了相变存储器损耗均衡,能延长相变存储器的寿命。
Description
技术领域
本发明属于计算机存储技术领域,具体涉及一种相变存储器的损耗均衡方法。
背景技术
相变存储器(Phase Change Memory, PCM)是一种新型的非易失性存储器,它有着高密度、低功耗、高速读写等性能,并已开始在嵌入式***中使用以替代传统的NOR存储器。尽管相变存储器比NOR的寿命要持久,但它还是摆脱不了寿命有限的困局。一个典型的相变存储器单元能够承受107到109次写操作,而向同一个相变存储器单元重复地写将可能在几秒钟内就对该单元造成破坏,这就为相变存储器在嵌入式***中的使用带来了很大的挑战。近年来随着相变存储器容量的不断增大,它可以存储文件***的元数据以及页表等关键信息,对这些信息的频繁更新将加速相变存储器寿命的缩短。
由于嵌入式***主要面向各类特定应用,若能考虑到访存模式、更新频率等嵌入式应用的内在特征,并结合这些特征进行优化,那么相变存储器的优势在嵌入式***中将发挥的更加明显。此外,嵌入式***中的有限资源也为相变存储器的有效管理带来了挑战。针对相变存储器在嵌入式***中的有效利用的研究已经展开,这些研究主要从***结构级、软件级和编译级等方面进行优化,并在相变存储器的寿命及损耗均衡等方面做出了相应的贡献。然而,目前已有的研究工作并没有考虑到嵌入式***中特定应用的访存规律,大多数研究主要针对应用层优化,这无疑会增加嵌入式应用开发的复杂程度,从而限制了相变存储器在嵌入式***上的推广。
发明内容
针对上述研究方法的不足,本发明所要解决的技术问题是从操作***中资源管理的层面,提供一种相变存储器的损耗均衡方法,它能延长相变存储器在嵌入式***中的使用寿命。
要解决的上述技术问题,本发明提供一种相变存储器的损耗均衡方法,包括以下步骤:
判定相变存储器中频繁写的热区和不频繁写的冷区;
将热区与相邻冷区物理位置交换,实现热区移动,直至热区遍及全部存储区后再循环移动;
通过逻辑-物理地址的转换公式获得需要访问的相变存储器物理地址。
由于采用了上述技术方案,通过不断移动热区的物理地址,避免了大量写操作集中在热区造成相变存储器的破坏,实现了延长相变存储器的寿命的目的。本发明具有如下的优点:避免了大量写操作集中在热区,实现了相变存储器损耗均衡,能延长相变存储器的寿命。
附图说明
本发明的附图说明如下:
图1为本发明的热区移动流程图;
图2为相变存储器中热区移动示意图;
图3为相变存储器的访问流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明:
在相变存储器中,针对具体应用程序有一个频繁进行写操作的区域,简称为“热区”,其他大量的区域很少有写操作,甚至没有写操作,这部分区域简称“冷区”。
本方法发明是:首先判定相变存储器中频繁写的热区和不频繁写的冷区;然后将热区向冷区移动,直至热区遍及全部存储区后再循环移动,再通过逻辑-物理地址的转换公式获得需要访问的相变存储器物理地址。
判定储器热区和冷区的方法可使用现有技术中任何一种。"Bloom filter-based dynamic wear leveling for phase-change RAM", Joosung Yun; Sunggu Lee; Sungjoo Yoo, Design, Automation & Test in Europe Conference & Exhibition (DATE),2012,Page(s) 1513-1518,ISSN:1530-1591(“基于布隆过滤器的相变存储器动态损耗均衡方法”, Joosung Yun;Sunggu Lee; Sungjoo Yoo,欧洲设计自动化与测试研讨会2012,第1513-1518页,国际标准连续出版物编号ISSN:1530-1591)于2012年3月公开了一种用布隆过滤器(bloom filter)识别热地址的方法,该方法是先给每个布隆过滤器设置一个计数器,然后使用与布隆过滤器数量相同的hash 函数对每个有写操作的地址进行散列,hash 函数能将写操作的次数映射到与地址相关的计数器,增加计数器的值,通过计数器确定热区地址。
图1是本发明的热区移动流程图,该流程开始于步骤101,然后:
在步骤102,数据初始化,根据具体应用程序,指定热区的起始逻辑地址和长度和移动热区的阈值,保存热区起始物理地址,保存位于热区之后的冷区起始逻辑地址;损耗均衡计数器初始值设置为0;
损耗均衡计数器用于累计访问请求的次数,该损耗均衡计数器可记录包括冷区热区在内所有的写操作请求,或者单独记录对读热区的写操作请求,或者记录全部读/写操作请求,依据实验效果来选定上述三个之一;
在步骤103,确认请求类型,若该访问请求会使得损耗均衡计数器累加,则执行步骤104,否则,对下一个请求进行确认;
请求类型由上述损耗均衡计数器的类型决定。例如指定损耗均衡计数器只记录热区内的写操作访问,若此请求不是写请求或不是热区写请求,则不进入本流程,直接进入图3所示的相变存储器的数据访问流程;
在步骤104,损耗均衡计数器累加1;
在步骤105,损耗均衡计数器的值与移动热区阈值比较,若计数器值大于等于热区移动阈值,则执行步骤106;若计数器值小于热区移动阈值,则返回步骤103;
在步骤106,保存当前热区物理起始地址R_H_START_P为临时变量CURR_START_PA;
在步骤107,计算新的热区物理起始地址,将热区物理起始地址R_H_START_P加上热区长度H_LEN;
在步骤108,判定新的热区物理地址是否溢出,溢出是指最大热区热区物理地址大于热区冷区总长度,若是,则将新的热区物理起始地址R_H_START_P设为0,执行步骤109;否则,直接执行步骤109;
在步骤109,将变量j赋值0;
在步骤110,将变量j的值与热区内存储单元总数m比较,若j小于m,则执行步骤111,若j等于m,则执行步骤112;
在步骤111,移动热区存储单元,将第j个热区存储单元地址与热区之后对应的冷区存储单元地址交换;
保存当前热区存储单元的物理地址为old_addr;
计算新的热区物理地址new_addr,计算式为R_H_START_P + 地址索引,例如R_H_START_P后的第一存储单元则加1,第二存储单元则加2……,依次递推;
将当前热区存储单元的值保储在临时变量val内;
复制new_addr所指存储单元的值到old_addr所指存储单元;
复制 val到new_addr所指的存储单元;
变量j+1,返回步骤110
在步骤112,损耗均衡计数器赋值为0,返回步骤3。
相变存储器中热区移动如图2所示,图中(a)为相变存储器的物理地址PA与逻辑地址LA完全匹配的情况,(b)为热区与热区之后对应的冷区第一次交换后的情况,此时热区逻辑地址与对应的冷区换位;(c)热区与冷区第二次交换后的情况,热区逻辑地址与下一块冷区又一次换位;(d)热区逻辑地址与热区之后的下一块冷区再次换位;(b)—(d)则出现了相变存储器的物理地址PA与逻辑地址LA不一致,因此,地址转换公式为:
热区地址:物理地址PA=(热区物理起始地址R_H_START_P+(逻辑地址LA-热区逻辑起始地址R_H_START_L)) mod 热区冷区总长度LEN,
冷区地址:
(1)若待转换逻辑地址 LA < R_C_START_L,则,
物理地址PA= (热区物理起始地址R_H_START_P – (位于热区之后的第一个冷区单元的逻辑地址R_C_START_L - 逻辑地址 LA) + 热区冷区总长度LEN) mod 热区冷区总长度LEN;
也就是说:若待转换逻辑地址 LA < R_C_START_L,则说明PA位于热区之前。若不考虑溢出问题,则PA= R_H_START_P - (R_C_START_L - LA)。相当于由R_H_START_P开始倒数R_C_START_L – LA个单位。考虑溢出问题,则需再加上LEN最后取模LEN。
(2)若待转换逻辑地址LA >= R_C_START_L,则,
物理地址PA=(热区物理起始地址R_H_START_P + 热区长度 H_LEN + (逻辑地址 LA – 位于热区之后的第一个冷区单元的逻辑地址R_C_START_L)+ 热区冷区总长度LEN) mod 热区冷区总长度LEN,
也就是说:若待转换逻辑地址 LA >= R_C_START_L,则该冷区逻辑地址位于热区之后。则PA的计算方法为从热区开始,加上热区长度(此时PA指向R_C_START_L的物理地址),再加上(LA – R_C_START_L)即可(相当于从R_C_START_L此项之后开始的偏移量)。考虑溢出问题,则对当前结果取模LEN即可。注意若位于热区之后的第一个冷区单元的逻辑地址为0,则应将R_C_START_L设置为热区冷区总长度LEN来保持上述公式正确。为了简便计算,R_C_START_L在此时仍然设置为0,但在取模之前应加上热区冷区总长度LEN。
由于热区移动后,相变存储器的物理地址PA与逻辑地址LA不一致,每次访问相变存储器时,则需要进行逻辑-物理地址映射过程。
图3为相变存储器的数据访问流程图,
在步骤301,访问开始,接收到访问指令;
在步骤302,判断要访问的逻辑地址LA是否属于热区,若是,则执行步骤303;若不是,则执行步骤304;
在步骤303,计算物理地址:物理地址PA=(热区物理起始地址R_H_START_P+(逻辑地址LA-热区逻辑起始地址R_H_START_L)) mod 热区冷区总长度,然后执行步骤307;
在步骤304,判断逻辑地址LA是否小于位于热区之后的第一个冷区单元的逻辑地址R_C_START_L,若是,则执行步骤305;若不是,则执行步骤306;
在步骤305,计算物理地址:物理地址PA= (热区物理起始地址R_H_START_P – (位于热区之后的第一个冷区单元的逻辑地址R_C_START_L - 逻辑地址 LA) + 热区冷区总长度LEN) mod 热区冷区总长度LEN;然后执行步骤307;
在步骤306,计算物理地址:物理地址PA=(热区物理起始地址R_H_START_P + 热区长度 H_LEN + (逻辑地址 LA – 位于热区之后的第一个冷区单元的逻辑地址R_C_START_L)+热区冷区总长度LEN) mod 热区冷区总长度LEN;然后执行步骤307;
在步骤307,从物理地址PA的存储单元进行数据传输,进入步骤308结束。
一个访问请求在启动图1所示流程之后,都应当进入图3所示的相变存储器的数据访问流程才能完成请求操作。
Claims (6)
1.一种相变存储器的损耗均衡方法,其特征是包括以下步骤:
判定相变存储器中频繁写的热区和不频繁写的冷区;
将热区与相邻冷区物理位置交换,实现热区移动,直至热区遍及全部存储区后再循环移动;
通过逻辑LA-物理PA地址的转换公式获得需要访问的相变存储器物理地址。
2.根据权利要求1所述的方法,其特征是:在热区移动之前,损耗均衡计数器对访问请求计数,预设阀值,根据访问请求的次数达到阀值确定热区移动。
3.根据权利要求2所述的方法,其特征是:在确定热区移动之后,保存当前热区物理起始地址R_H_START_P,计算新的热区物理起始地址,判定新的热区物理地址是否溢出,若是,则新的热区物理地址R_H_START_P设为0,然后移动热区存储单元。
4.根据权利要求3所述的方法,其特征是:热区存储单元移动包括以下步骤:
保存当前热区存储单元的物理地址为old_addr;
计算新的热区物理地址new_addr,计算式为R_H_START_P + 地址索引;
将热区存储单元的值保储在临时变量val内;
复制new_addr所指存储单元的值到old_addr所指存储单元;
复制 val到new_addr所指的存储单元。
5.根据权利要求4所述的方法,其特征是:热区移动之后,损耗均衡计数器置为0。
6.根据权利要求5所述的方法,其特征是:逻辑LA-物理PA地址的转换公式为:
热区地址,则物理地址PA=(热区物理起始地址R_H_START_P+(逻辑地址LA-热区逻辑起始地址R_H_START_L)) mod 热区冷区总长度LEN,
冷区地址:
若待转换逻辑地址 LA < R_C_START_L,则,
物理地址PA= (热区物理起始地址R_H_START_P – (位于热区之后的第一个冷区单元的逻辑地址R_C_START_L - 逻辑地址 LA) + 热区冷区总长度LEN) mod 热区冷区总长度LEN;
若待转换逻辑地址LA >= R_C_START_L,则,
物理地址PA=(热区物理起始地址R_H_START_P + 热区长度 H_LEN + (逻辑地址 LA – 位于热区之后的第一个冷区单元的逻辑地址R_C_START_L)+ 热区冷区总长度LEN) mod 热区冷区总长度LEN。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012105695563A CN102981972A (zh) | 2012-12-25 | 2012-12-25 | 一种相变存储器的损耗均衡方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012105695563A CN102981972A (zh) | 2012-12-25 | 2012-12-25 | 一种相变存储器的损耗均衡方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102981972A true CN102981972A (zh) | 2013-03-20 |
Family
ID=47856024
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012105695563A Pending CN102981972A (zh) | 2012-12-25 | 2012-12-25 | 一种相变存储器的损耗均衡方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102981972A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104102461A (zh) * | 2014-07-25 | 2014-10-15 | 吉林大学 | 一种sd卡及其工作方法 |
CN108369556A (zh) * | 2015-12-10 | 2018-08-03 | 阿姆有限公司 | 非易失性存储器中的耗损均衡 |
CN108710581A (zh) * | 2018-05-23 | 2018-10-26 | 中国人民解放军陆军工程大学 | 基于布隆过滤器的pcm存储介质磨损均衡方法 |
CN110109611A (zh) * | 2018-02-01 | 2019-08-09 | 爱思开海力士有限公司 | 存储***及其操作方法 |
CN113906397A (zh) * | 2019-05-16 | 2022-01-07 | 美光科技公司 | 用于媒体码字的区域分组的码字轮换 |
CN116027988A (zh) * | 2023-03-22 | 2023-04-28 | 电子科技大学 | 用于存储器的损耗均衡方法及其芯片控制器的控制方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080235432A1 (en) * | 2007-03-19 | 2008-09-25 | A-Data Technology Co., Ltd. | Memory system having hybrid density memory and methods for wear-leveling management and file distribution management thereof |
CN102222046A (zh) * | 2011-06-09 | 2011-10-19 | 清华大学 | 一种磨损均衡方法及装置 |
CN102495806A (zh) * | 2011-11-25 | 2012-06-13 | 清华大学 | 相变内存周期性磨损均衡方法及其内存管理方法 |
CN102567213A (zh) * | 2011-11-30 | 2012-07-11 | 华中科技大学 | 相变存储器的写均衡方法 |
-
2012
- 2012-12-25 CN CN2012105695563A patent/CN102981972A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080235432A1 (en) * | 2007-03-19 | 2008-09-25 | A-Data Technology Co., Ltd. | Memory system having hybrid density memory and methods for wear-leveling management and file distribution management thereof |
CN102222046A (zh) * | 2011-06-09 | 2011-10-19 | 清华大学 | 一种磨损均衡方法及装置 |
CN102495806A (zh) * | 2011-11-25 | 2012-06-13 | 清华大学 | 相变内存周期性磨损均衡方法及其内存管理方法 |
CN102567213A (zh) * | 2011-11-30 | 2012-07-11 | 华中科技大学 | 相变存储器的写均衡方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104102461A (zh) * | 2014-07-25 | 2014-10-15 | 吉林大学 | 一种sd卡及其工作方法 |
CN108369556A (zh) * | 2015-12-10 | 2018-08-03 | 阿姆有限公司 | 非易失性存储器中的耗损均衡 |
CN110109611A (zh) * | 2018-02-01 | 2019-08-09 | 爱思开海力士有限公司 | 存储***及其操作方法 |
CN110109611B (zh) * | 2018-02-01 | 2023-02-28 | 爱思开海力士有限公司 | 存储***及其操作方法 |
CN108710581A (zh) * | 2018-05-23 | 2018-10-26 | 中国人民解放军陆军工程大学 | 基于布隆过滤器的pcm存储介质磨损均衡方法 |
CN113906397A (zh) * | 2019-05-16 | 2022-01-07 | 美光科技公司 | 用于媒体码字的区域分组的码字轮换 |
US11720502B2 (en) | 2019-05-16 | 2023-08-08 | Micron Technology, Inc. | Codeword rotation for zone grouping of media codewords |
CN116027988A (zh) * | 2023-03-22 | 2023-04-28 | 电子科技大学 | 用于存储器的损耗均衡方法及其芯片控制器的控制方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102981971B (zh) | 一种快速响应的相变存储器损耗均衡方法 | |
CN109154917B (zh) | 存储***和固态硬盘 | |
CN103559138B (zh) | 固态硬盘及其空间管理方法 | |
CN101673245B (zh) | 包括存储器管理装置的信息处理装置和存储器管理方法 | |
EP2939120B1 (en) | Priority-based garbage collection for data storage systems | |
CN102981972A (zh) | 一种相变存储器的损耗均衡方法 | |
CN101354681B (zh) | 存储器***、非易失性存储器的磨损均衡方法及装置 | |
CN103425600B (zh) | 一种固态盘闪存转换层中的地址映射方法 | |
CN104423894B (zh) | 数据储存装置以及快闪存储器控制方法 | |
CN106547703A (zh) | 一种基于块组结构的ftl优化方法 | |
CN101727295B (zh) | 一种基于虚拟块闪存地址映射的数据写入及读出方法 | |
CN107168654B (zh) | 一种基于数据对象热度的异构内存分配方法及*** | |
CN105718206B (zh) | 能够感知raid的闪存转换层及其实现方法 | |
TWI434175B (zh) | 用來進行區塊管理之方法以及記憶裝置及控制器 | |
CN103440207A (zh) | 缓存方法及装置 | |
CN105242871A (zh) | 一种数据写入方法及装置 | |
CN101673243B (zh) | 数据储存装置与方法 | |
CN102163175A (zh) | 一种基于局部性分析的混合地址映射方法 | |
CN101493794A (zh) | 一种闪存数据处理方法及装置 | |
CN104699424A (zh) | 一种基于页面热度的异构内存管理方法 | |
CN102253901B (zh) | 一种基于相变内存的读写区分数据存储替换方法 | |
CN104899154A (zh) | 基于嵌入式***混合主存的页面管理方法 | |
CN110413224A (zh) | 数据存储方法、装置及存储器 | |
CN115470216B (zh) | 一种基于ftl的智能物联表的存储管理方法及存储介质 | |
CN109960471A (zh) | 数据存储方法、装置、设备以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130320 |