CN103218306B - 一种实现基于ubi的动态磨损均衡的方法 - Google Patents
一种实现基于ubi的动态磨损均衡的方法 Download PDFInfo
- Publication number
- CN103218306B CN103218306B CN201310105890.8A CN201310105890A CN103218306B CN 103218306 B CN103218306 B CN 103218306B CN 201310105890 A CN201310105890 A CN 201310105890A CN 103218306 B CN103218306 B CN 103218306B
- Authority
- CN
- China
- Prior art keywords
- block
- district
- physical block
- physical
- age
- 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
Links
Landscapes
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种实现基于UBI的动态磨损均衡的方法,该方法在原有基础上通过修改文件系统有选择的擦写Flash芯片中的块,使得芯片中各个块均衡的被擦写,从而延长整块Flash芯片的寿命。本发明提出“超龄区”和“虚年龄”的概念可以尽量减少有效数据迁移操作的发生,还可以有效的避免了有效数据迁移操作的副作用,从而不再需要新分块数据保护措施,简化了设计,同时也降低了系统损耗。
Description
技术领域
本发明涉及一种实现存储器擦写均衡的方法,特别是涉及一种适用于实现基于Flash文件系统的动态磨损均衡的方法。
背景技术
随着半导体技术的发展,Flash存储器(闪存)以其体积、功耗、性能等各方面的优势,终于取代了传统的ROM、EPROM等成为嵌入式领域主流的存储器。闪存是一种非易失性存储器,即断电数据也不会丢失。由于其体积小,携带方便,所以广泛应用于数码相机,掌上电脑,MP3等小型数码产品中作为存储介质中。
然而,有限的使用寿命成为闪存广泛应用的一大绊脚石,市场上曾经出现的闪存芯片包括3种:
SLC=Single-LevelCell,即1bit/cell,其特点是速度快,寿命长,但价格超贵,约10万次擦写寿命。
MLC=Multi-LevelCell,即2bit/cell,其特点是速度一般寿命一般,价格一般,约3000---10000次擦写寿命。
TLC=Trinary-LevelCell,即3bit/cell,也有Flash厂家叫8LC,其特点是速度慢寿命短,价格便宜,约500次擦写寿命,目前还没有厂家能做到1000次。
从上述可以看出,TLC芯片的闪存仅仅有约500次的寿命,然而,由于其容量大价格便宜,反而成为当前市面上主流的闪存芯片,因此,如何增加Flash芯片的使用寿命已经成为一项至关重要的任务。
研究者们虽然开发出了专门针对闪存而设计的文件系统,在一定程度上缓解了一部分压力,却不能从根本上解决问题。
发明内容
本发明要解决的技术问题是提供一种实现基于UBI(UnsortedBlockImages)的动态磨损均衡的方法,该方法在原有基础上通过修改文件系统有选择的擦写Flash芯片中的块,使得芯片中各个块均衡的被擦写,从而延长整块Flash芯片的寿命。
本发明或发明采用的技术方案如下:
一种实现基于UBI的动态磨损均衡的方法,其特征在于:
步骤一、对所有的逻辑块进行温度评估,划分为高温块和低温块;
步骤二、对所有物理块根据擦写次数划归入低龄区、高龄区和超龄区;
步骤三、对逻辑块进行空闲块分配,依据逻辑块温度类型选择低龄区和高龄区中合适的物理块作为映射对象,超龄区中物理块不进行映射;
步骤四、通过数据迁移回收脏页,清理Flash存储器中的脏页,获得可用的物理块;
步骤五、若回收后仍无法得到足够的可用的物理块,则释放超龄区中的物理块。
作为优化,所述步骤一中温度评估的依据为各个逻辑块的写操作频率。
作为优化,所述步骤三中对逻辑块进行空闲分配的具体方法步骤为:将低温逻辑块映射到高龄物理块,高温逻辑块映射到低龄物理块,而超龄区中的物理块被强制冻结。
作为优化,所述步骤三的具体方法步骤为:
a.将有效块集合按照脏度由高到低排列;
b.当空闲块的集合中的物理块数量小于预先指定的阈值N1时,就唤醒垃圾回收线程;
c.对脏度大于阈值D0的物理块进行数据迁移,并放入脏块集合中;
d.擦除脏块集合中的物理块,再次进入睡眠。
与现有技术相比,本发明的有益效果是:
1.设计温度评估方法,使实验中获得数据更加接近真实设备运行的情况;为空闲块分配方法提供最理想的依据;
2.使用超龄区(擦写次数大于等于给定阈值的物理块划归的区域)可以尽量减少有效数据迁移操作的发生,还可以有效的避免了有效数据迁移操作的副作用,从而不再需要新分块数据保护措施,简化了设计,同时也降低了系统损耗。
附图说明
图1为本发明其中一实施例的垃圾回收流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本说明书中公开的所有特征,除了互相排除的特征以外,均可以以任何方式组合。
本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或者具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
在本发明中提出“超龄区”和“虚年龄”的概念,使用虚年龄来区分由于磨损统计方法本身所带来物理块擦除次数的增加,尽量降低虚年龄的增加,从而减少磨损均衡统计方法本身所带来的损耗。
本发明是基于已有的UBI文件系统,结合基于温度的磨损均衡统计方法及垃圾回收方法而实现的。其过程主要包括以下几个步骤:
步骤一、对所有的逻辑块进行温度评估,划分为高温块和低温块;
步骤二、对所有物理块根据擦写次数划归入低龄区、高龄区和超龄区;
步骤三、对逻辑块进行空闲块分配,依据逻辑块温度类型选择低龄区和高龄区中合适的物理块作为映射对象,超龄区中物理块不进行映射;
步骤四、通过数据迁移回收脏页,清理Flash存储器中的脏页,获得可用的物理块;
步骤五、若回收后仍无法得到足够的可用的物理块,则释放超龄区中的物理块。
所述步骤一中温度评估的依据为各个逻辑块的写操作频率。
逻辑块温度评估策略:根据过去一段时间各个逻辑块的写操作频率(单位时间内的擦写次数)将所有逻辑块划分为高温块和低温块,为优化空闲块分配策略提供依据;频率划分点可以根据实际运行情况人工配置,通过调整划分点的大小来获得一个最优的方案。
设计温度评估方法,使实验中获得数据更加接近真实设备运行的情况;为空闲块分配方法提供最理想的依据。
所述步骤三中对逻辑块进行空闲分配的具体方法步骤为:将低温逻辑块映射到高龄物理块,高温逻辑块映射到低龄物理块,而超龄区中的物理块被强制冻结。
空闲块分配:当系统执行写操作时,依据逻辑块温度类型(高温块和低温块)选择合适的物理块作为映射对象。
在传统方法中,依据前面逻辑块温度评估的结果,将高温逻辑块映射到低龄块集合中,中温逻辑块映射到中龄块中,低温逻辑块映射到高龄块中,这样可以降低高龄块的频繁擦除操作,从而使得各个物理块尽可能得到平均的使用。
统计表明,在Flash存储系统上,超过80%的逻辑块都是低温块,如果只是简单的将低温逻辑块映射到高龄块,虽然低温逻辑块的使用频率低于高温逻辑块,但是低温逻辑块的数量要远远大于高温逻辑块,最终的结果将导致高龄物理块使用的频率不仅没有减少,反而增加了。有效数据迁移策略虽然可以在一定程度上缓解高低年龄差值的增大,但是又将带来巨大的系统消耗和虚年龄的增加,是一种饮鸩止渴的方法。
本发明提出“超龄区”的概念,同样是将物理块按年龄划分为3个区间,分别为低龄区、高龄区和超龄区,而将逻辑块划分为高温块和低温块两个区间,不再考虑中温区间,和传统方法一样,将低温逻辑块映射到高龄物理块,高温逻辑块映射到低龄物理块,而超龄区中的物理块被强制冻结,这样就避免了低龄块与高龄块年龄差距继续拉大的情况发生。统计数据表明,系统存储器中数据占用率通常都在95%以下,Flash存储器就更低一些,超龄区正是利用这一空闲区间,既保护了高龄物理块,又没影响到系统存储器的正常使用。
强制冻结就是在逻辑块分配给物理块的过程中,不考虑超龄区的物理块,即超龄区的物理块永远不会被使用,相当于被冻结。
所述步骤三的具体方法步骤为:
a.将有效块集合按照脏度由高到低排列;
b.当空闲块的集合中的物理块数量小于预先指定的阈值N1时,就唤醒垃圾回收线程;
c.对脏度大于阈值D0的物理块进行数据迁移,并放入脏块集合中;
d.擦除脏块集合中的物理块,再次进入睡眠。
圾回收:垃圾回收的目的是获得可用的空闲块,本方法以物理块的擦除次数和有效块的“脏度”为依据(脏度是一个可以人工配置的阈值),通过数据迁移回收脏页,清理Flash存储器中的脏页。
有效数据迁移:数据迁移发生在有效块集合和空闲块集合之间,其过程是将有效块中数据复制到空闲块中,将空闲块集合中的高龄物理块转移到有效块集合中保护起来,控制物理块年龄差距的进一步扩大。
垃圾回收:垃圾回收的对象是有效块集合与脏块集合,主要是脏块集合,以脏度为依据,图1展示了垃圾回收的过程。首先将有效块集合按照脏度由高到低排列,当空闲块的集合中的物理块数量小于预先指定的阈值N1时,就唤醒垃圾回收线程,对脏度大于阈值D0的物理块进行数据迁移,并放入脏块集合中,之后擦除脏块集合中的物理块,再次进入睡眠。阈值N1和D0,本领域技术人员可结合实际情况进行指定。
设计温度评估方法,使实验中获得数据更加接近真实设备运行的情况;为空闲块分配方法提供最理想的依据;同时,有效数据迁移对系统的消耗很大,又要增加物理块的虚年龄,使用超龄区(擦写次数大于等于给定阈值的物理块划归的区域)可以尽量减少有效数据迁移操作的发生,还可以有效的避免了有效数据迁移操作的副作用,从而不再需要新分块数据保护措施,简化了设计,同时也降低了系统损耗。
Claims (3)
1.一种实现基于UBI的动态磨损均衡的方法,其特征在于:
步骤一、对所有的逻辑块进行温度评估,划分为高温块和低温块;
步骤二、对所有物理块根据擦写次数划归入低龄区、高龄区和超龄区;
步骤三、对逻辑块进行空闲块分配,依据逻辑块温度类型选择低龄区和高龄区中合适的物理块作为映射对象,超龄区中物理块不进行映射;
步骤四、通过数据迁移回收脏页,清理Flash存储器中的脏页,获得可用的物理块;
步骤五、若回收后仍无法得到足够的可用的物理块,则释放超龄区中的物理块;
所述步骤三中对逻辑块进行空闲分配的具体方法步骤为:将低温逻辑块映射到高龄物理块,高温逻辑块映射到低龄物理块,而超龄区中的物理块被强制冻结;
所述步骤四中数据迁移的过程为将有效块中数据复制到空闲块中,将空闲块集合中的高龄物理块转移到有效集合中保护起来;
所述UBI是指UnsortedBlockImages。
2.根据权利要求1所述的一种实现基于UBI的动态磨损均衡的方法,其特征在于:
所述步骤一中温度评估的依据为各个逻辑块的写操作频率。
3.根据权利要求1所述的一种实现基于UBI的动态磨损均衡的方法,其特征在于:
所述步骤三的具体方法步骤为:
a.将有效块集合按照脏度由高到低排列;
b.当空闲块的集合中的物理块数量小于预先指定的阈值N1时,就唤醒垃圾回收线程;
c.对脏度大于阈值D0的物理块进行数据迁移,并放入脏块集合中;
d.擦除脏块集合中的物理块,再次进入睡眠。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310105890.8A CN103218306B (zh) | 2013-03-29 | 2013-03-29 | 一种实现基于ubi的动态磨损均衡的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310105890.8A CN103218306B (zh) | 2013-03-29 | 2013-03-29 | 一种实现基于ubi的动态磨损均衡的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103218306A CN103218306A (zh) | 2013-07-24 |
CN103218306B true CN103218306B (zh) | 2016-03-30 |
Family
ID=48816122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310105890.8A Active CN103218306B (zh) | 2013-03-29 | 2013-03-29 | 一种实现基于ubi的动态磨损均衡的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103218306B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI515736B (zh) * | 2013-07-25 | 2016-01-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及快閃記憶體控制方法 |
CN103593216B (zh) * | 2013-11-12 | 2017-12-05 | 上海斐讯数据通信技术有限公司 | 将ubi格式的系统文件制作成工厂烧录映像文件方法 |
CN104850500B (zh) * | 2014-02-14 | 2019-06-07 | 腾讯科技(深圳)有限公司 | 用于数据存储的数据处理方法和装置 |
CN106802867B (zh) * | 2015-11-25 | 2020-12-01 | 建兴储存科技(广州)有限公司 | 固态储存装置及其数据编程方法 |
CN105677578B (zh) * | 2016-01-08 | 2018-08-24 | 深圳大学 | 一种3d闪存的控制方法及控制系统 |
KR102664704B1 (ko) * | 2016-10-24 | 2024-05-14 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이를 이용한 웨어-레벨링 방법 |
CN110888820B (zh) | 2018-09-07 | 2022-01-25 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
CN110888591B (zh) * | 2018-09-07 | 2023-05-30 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
CN111104045A (zh) * | 2018-10-25 | 2020-05-05 | 深圳市中兴微电子技术有限公司 | 一种存储控制方法、装置、设备和计算机存储介质 |
CN110347335B (zh) * | 2019-07-30 | 2022-12-13 | 河南文正电子数据处理有限公司 | 一种固态硬盘数据存储方法、装置 |
CN111090595B (zh) * | 2019-11-19 | 2022-12-20 | 中国航空工业集团公司西安航空计算技术研究所 | 一种nand flash垃圾回收均衡优化方法 |
CN112817880A (zh) * | 2021-03-17 | 2021-05-18 | 深圳市安信达存储技术有限公司 | 一种固态硬盘及其磨损平衡方法和终端设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102081576A (zh) * | 2011-03-01 | 2011-06-01 | 华中科技大学 | 一种闪存的磨损平衡方法 |
CN102298555A (zh) * | 2011-08-22 | 2011-12-28 | 宜兴市华星特种陶瓷科技有限公司 | 基于nand技术的模块化闪存管理系统 |
CN102508785A (zh) * | 2011-11-02 | 2012-06-20 | 清华大学 | 一种磨损均衡方法及装置 |
CN102789423A (zh) * | 2012-07-11 | 2012-11-21 | 山东华芯半导体有限公司 | 四池闪存磨损均衡方法 |
CN102880556A (zh) * | 2012-09-12 | 2013-01-16 | 浙江大学 | 一种实现Nand Flash磨损均衡的方法及其系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8732538B2 (en) * | 2011-03-10 | 2014-05-20 | Icform, Inc. | Programmable data storage management |
-
2013
- 2013-03-29 CN CN201310105890.8A patent/CN103218306B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102081576A (zh) * | 2011-03-01 | 2011-06-01 | 华中科技大学 | 一种闪存的磨损平衡方法 |
CN102298555A (zh) * | 2011-08-22 | 2011-12-28 | 宜兴市华星特种陶瓷科技有限公司 | 基于nand技术的模块化闪存管理系统 |
CN102508785A (zh) * | 2011-11-02 | 2012-06-20 | 清华大学 | 一种磨损均衡方法及装置 |
CN102789423A (zh) * | 2012-07-11 | 2012-11-21 | 山东华芯半导体有限公司 | 四池闪存磨损均衡方法 |
CN102880556A (zh) * | 2012-09-12 | 2013-01-16 | 浙江大学 | 一种实现Nand Flash磨损均衡的方法及其系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103218306A (zh) | 2013-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103218306B (zh) | 一种实现基于ubi的动态磨损均衡的方法 | |
CN102880556B (zh) | 一种实现Nand Flash磨损均衡的方法及其系统 | |
CN102841851A (zh) | 闪存管理方法和闪存设备 | |
CN103902465B (zh) | 一种固态硬盘垃圾回收的方法、系统和固态硬盘控制器 | |
CN100565477C (zh) | 一种NAND Flash存储器的动态管理方法 | |
CN103365788B (zh) | 实时闪存转换层使用的自适应局部垃圾回收方法 | |
CN105278875B (zh) | 一种混合异构nand固态硬盘 | |
CN104750618A (zh) | 数据储存装置以及快闪存储器控制方法 | |
CN102768645B (zh) | 混合缓存的固态硬盘预取方法和固态硬盘ssd | |
CN105630700B (zh) | 一种具有二级缓存结构的存储系统及读写方法 | |
CN106293521A (zh) | 一种映射粒度自适应的闪存转换层管理方法 | |
CN106547703A (zh) | 一种基于块组结构的ftl优化方法 | |
CN108108128A (zh) | 一种混合ssd的磨损均衡方法及ssd | |
CN101819509A (zh) | 一种固态硬盘读写方法 | |
CN101552032A (zh) | 用较大容量dram参与闪存介质管理构建高速固态存储盘的方法及装置 | |
CN101923448A (zh) | 一种nand闪存的转换层读写方法 | |
CN102819494B (zh) | 一种闪存顺序写入时的优化方法 | |
CN109164975A (zh) | 一种将数据写入固态硬盘的方法以及固态硬盘 | |
CN104899154A (zh) | 基于嵌入式系统混合主存的页面管理方法 | |
CN108121670A (zh) | 一种减少固态硬盘元数据回刷频率的映射方法 | |
CN112162695A (zh) | 一种数据缓存方法、装置、电子设备及存储介质 | |
CN105607862A (zh) | 一种dram与mram结合具有备份电源的固态硬盘 | |
Lee et al. | Improving performance and capacity of flash storage devices by exploiting heterogeneity of MLC flash memory | |
CN102981972A (zh) | 一种相变存储器的损耗均衡方法 | |
CN103019615B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |