CN101369252A - 基于nand闪存文件***中静态数据损耗均衡的方法 - Google Patents

基于nand闪存文件***中静态数据损耗均衡的方法 Download PDF

Info

Publication number
CN101369252A
CN101369252A CNA2008101616034A CN200810161603A CN101369252A CN 101369252 A CN101369252 A CN 101369252A CN A2008101616034 A CNA2008101616034 A CN A2008101616034A CN 200810161603 A CN200810161603 A CN 200810161603A CN 101369252 A CN101369252 A CN 101369252A
Authority
CN
China
Prior art keywords
block
erase
erase block
erasing
erasing times
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
Application number
CNA2008101616034A
Other languages
English (en)
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.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CNA2008101616034A priority Critical patent/CN101369252A/zh
Publication of CN101369252A publication Critical patent/CN101369252A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公开了一种基于NAND闪存文件***中静态数据损耗均衡的方法。将整个的NAND闪存的擦除块分为:空闲块、干净块、脏块、坏块四种,形成了四种链表,空闲块链表按照擦除次数由小到大对擦除块进行链接;设定阈值TH;从空闲块链表中选取一块,将擦除次数最大的A擦除块上的数据复制到空闲块上;然后对A擦除块进行擦除操作,然后将擦除次数最小的B擦除块上面的数据复制到A擦除块上面;然后将B擦除块放到脏块链表中,对B擦除块进行擦除后用于存放更新频繁数据。本发明可以平衡静态数据块与动态数据块的擦除次数,从而取得整个闪存器件的损耗均衡。

Description

基于NAND闪存文件***中静态数据损耗均衡的方法
技术领域
本发明涉及使用嵌入式文件***的各个嵌入式产品,特别是涉及一种基于NAND闪存文件***中静态数据损耗均衡的方法。
背景技术
由于嵌入式设备体积小,所以不能使用硬盘作为存储器,而闪存凭借其存取速度快、存储容量大、价格低廉等优点,成为了嵌入式***中广泛采用的主流存储器。闪存按照存储矩阵结构的不同分为NOR型和NAND型两种。NAND(一种目前主要的非易失闪存技术,适用于大容量消除和写入的速度快,但只能读取块单位,随机读取慢)型闪存强调降低每比特的成本,更高的性能,并且像磁盘一样可以通过接口轻松升级,是高密度数据存储的理想解决方案,被大量应用于移动存储设备、移动媒体设备和嵌入式设备中。闪存的寿命是有限的,其寿命的长短是由擦写块的最大可擦除次数决定的,NAND闪存的最大可擦除次数大约为100万次左右。由于任何一个擦写块达到擦除次数的上限时,整个闪存都将无法使用。所以为了延长闪存的使用寿命,避免由于某个擦写块被过度擦写而使得整个闪存无法使用,应该在尽量小的性能影响下使擦写操作均匀的分布在每个擦写块上。这个过程就叫做损耗均衡。
目前可用于NAND型闪存的文件***包括集中索引的文件***和专门为NAND闪存设计的文件***。集中索引的文件***是磁盘存储器中常用的文件***,主要包括基于Windows的FAT系列和基于Linux的Ext系列。由于闪存设备能够通过闪存转译层FTL(Flash Translation Layer)驱动来模拟成与磁盘相似的块设备,所以该类文件***可以直接基于FTL在闪存上应用。在闪存中采用集中索引的文件***存在下面的两个问题:①集中索引的文件***采用“覆写”的方式更新数据,而在闪存中“覆写”需要先擦除才能写入,如果在数据被擦除后***发生断电,可能会导致数据的丢失;②集中索引的文件***索引与数据分开存放,而索引的更新频率远远大于数据部分的更新频率,所以不能很好的实现损耗均衡。
基于上面的两个问题,所以针对NAND闪存设计了专门的文件***YAFFS(Yet Another Flash File-System)。到目前为止,YAFFS系列是唯一专门针对NAND闪存而设计的文件***。YAFFS系列有YAFFS和YAFFS2两个版本。为了解决集中索引文件***中的问题①,YAFFS中采用了日志的概念,不再采用“覆写”的更新方式,而是采用“前向写入”的方式。针对问题②,YAFFS采用一种多策略混合的算法来进行垃圾回收,将贪心策略和随机选择策略分别用在不同的情况下。这种算法的优点是对更新频繁的数据能够很好的实现了损耗均衡;缺点是没有考虑占用大部分存储空间的静态数据的损耗均衡。所以,YAFFS不能实现整个闪存器件的损耗均衡。
因此,如果能实现嵌入式文件***中静态数据的损耗均衡算法,对于延长闪存的使用寿命是很有意义的。
发明内容
本发明的目的在于提供一种基于NAND闪存文件***中静态数据损耗均衡的方法。
本发明解决其技术问题采用的技术方案如下:
1)将整个的NAND闪存的擦除块分为:空闲块、干净块、脏块、坏块四种;空闲块表示擦除块上面所有的页面都是空闲的,可直接进行分配;干净块表示擦除块上面的所有数据均有效;脏块表示擦除块上至少含有一页由于数据更新或者文件删除留下的无效数据;坏块包括出厂时的固有坏块和使用过程中产生的坏块;文件***以链表的形式管理各种擦除块,形成了四种链表:空闲块链表,干净块链表,脏块链表、坏块链表;空闲块链表按照擦除次数由小到大对擦除块进行链接;
2)设定阈值TH;文件***在垃圾回收操作被触发时,读取干净块链表中所有擦除块的附加区字段中的擦除次数字段Erase_Num,从中找出擦除次数最大的擦除块和擦除次数最小的擦除块;然后将擦除次数最大的擦除块和擦除次数最小的擦除块做差,如果差值≥TH,便断定擦除次数最小的擦除块上存储的是静态数据,静态数据更新的频率非常低,需要对静态数据进行搬移操作;
3)将擦除次数最大的块记为A,擦除次数最小的块记为B;从空闲块链表中选取一块,将A擦除块上的数据复制到空闲块上;然后对A擦除块进行擦除操作,然后将B擦除块上面的数据复制到A擦除块上面;然后将B擦除块放到脏块链表中,对B擦除块进行擦除后用于存放更新频繁数据。
本发明与背景技术相比,具有的有益的效果是:
本发明是一种用于实现基于NAND闪存的文件***中静态数据的损耗均衡方法。它通过设定阈值,识别静态数据块,然后对识别出的静态数据块和擦除次数较大的数据块进行搬移操作。即先从空闲块中找出擦除次数最大的擦除块,将静态数据从原来的擦除块移动到该块上,并对原来的擦除块进行擦除然后将其***到空闲块中用来存储动态数据。这样便可以平衡静态数据块与动态数据块的擦除次数,从而取得整个闪存器件的损耗均衡。
附图说明
图1是实验得到的加入静态数据损耗均衡方法的状态图。
图2是实验得到的未加入静态数据损耗均衡方法的状态图。
图3是两者的均衡方法的比较图。图中线A代表未加入静态数据损耗均衡方法的状态,线B代表加入静态数据损耗均衡方法的状态。
具体实施方式
下面结合附图和实施例对本发明作进一步说明。
本发明提出的用于实现基于NAND闪存文件***中静态数据损耗均衡的方法应用于使用嵌入式文件***的嵌入式产品中。本方法的使用是以Blackfin531为***目标板,采用的嵌入式操作***是uClinux,步骤进行如下:
一、配置交叉编译环境:
1.获得开发工具安装包;
2.用root登陆,安装开发工具;
3.配置超级终端;
4.编译uClinux内核,加入对包含本方法的文件***的支持。
(1)在内核中加入平台编译信息;
(2)在fs目录下建立一个目录,把本方法所在的文件***的相关文件拷到目录中去;
(3)新建一个Makefile,加入以下命令:
(4)修改fs目录下面Kconfig和Makefile,把本方法所在的文件***连接进去:
(5)加入NAND闪存分区信息;
(6)编译内核。
二、搭建目标平台:
1、将Blackfin531目标板的JTAG口与计算机并口相连,串口、网线与主机连好;
2、编译bootloader;
3、Visual DSP中通过JTAG将bootloader烧入目标板;
4、通过使用bootloader中的命令将之前编译好的内核镜像下载到目标板。
三、当前文件***中存放的文件的特点:大多数文件是一些小文件,但是大文件占用了大部分的存储空间。按照这个特点,文件***中存放占据闪存大部分空间的只读静态数据文件3个,大小分别为:1M、10M、16M;存放300个小文件,其容量不超过10K。其中静态数据文件被访问的概率为20%,小文件被访问的概率为80%。
四、实施方法:FMNFS中采用的方法是通过设定阈值,记为TH,识别并搬移静态数据块和擦除次数较大的数据块,从而取得整个闪存器件的损耗均衡。
对于损耗均衡算法中用到的阈值TH,它的意思是有效数据擦除块中最大擦除次数与最小擦除次数之间的差值的下限,当差值大于TH时便对静态数据进行搬移操作。由于静态数据通常都比较大,所以太频繁的进行搬移操作对***的效率会产生严重的影响,所以TH不可以过小。通常TH的值被设为200-500之间的某个值效果比较好。
在垃圾回收操作被触发时,读取干净块链表中所有擦除块的附加区字段中的擦除次数字段Erase_Num,从中找出擦除次数最多的擦除块和擦除次数最少的块。然后将两者做差,如果差值≥设定的阈值时,便可以断定擦除次数最小的擦除块上存储的是静态数据,其更新的频率非常低,需要对其进行搬移操作。同时,由于这些静态数据通常都比较大,其所占用的擦除块的数量也比较多,而且都是连续的,所以满足“Erase_Num==最小擦除次数”条件的擦除块多于1。因此,为了更好的实现擦除均衡需要在搬移完一个块后需要再次扫描干净块链表,找出擦除次数最大的擦除块。其具体的做法可以分为以下几步:
(1)扫描干净块列表,找出擦除次数最大和擦除次数最小的块,擦除次数分别记为Erase_Max和Erase_Min。同时将他们所在的块分别记为A和B。
(2)对Erase_Min和Erase_Max做差。如果|Erase_Max-Erase_Min|≥TH,说明B擦除块存放的是静态数据,需要对其进行搬移操作;
(3)从空闲块链表中选取一块,将A擦除块上的数据复制到空闲块上;然后对A擦除块进行擦除操作,然后将B擦除块上面的数据复制到A擦除块上面;然后将B擦除块放到脏块链表中,对其进行擦除后用于存放更新频繁数据。重复(1)、(2)、(3)的步骤,直到“|Erase_Max-Erase_Min|≥TH”不满足,即所有的静态数据全部搬移完为止。
然后对NAND闪存的2500个擦除块不断的进行擦除操作,得到如图1所示的损耗均衡情况。图2显示了未考虑静态数据损耗均衡的状态图,图3是两者的均衡方法的比较图。

Claims (1)

1.一种基于NAND闪存文件***中静态数据损耗均衡的方法,其特征在于该方法的步骤如下:
1)将整个的NAND闪存的擦除块分为:空闲块、干净块、脏块、坏块四种;空闲块表示擦除块上面所有的页面都是空闲的,可直接进行分配;干净块表示擦除块上面的所有数据均有效;脏块表示擦除块上至少含有一页由于数据更新或者文件删除留下的无效数据;坏块包括出厂时的固有坏块和使用过程中产生的坏块;文件***以链表的形式管理各种擦除块,形成了四种链表:空闲块链表,干净块链表,脏块链表、坏块链表;空闲块链表按照擦除次数由小到大对擦除块进行链接;
2)设定阈值TH;文件***在垃圾回收操作被触发时,读取干净块链表中所有擦除块的附加区字段中的擦除次数字段Erase_Num,从中找出擦除次数最大的擦除块和擦除次数最小的擦除块;然后将擦除次数最大的擦除块和擦除次数最小的擦除块做差,如果差值≥TH,便断定擦除次数最小的擦除块上存储的是静态数据,静态数据更新的频率非常低,需要对静态数据进行搬移操作;
3)将擦除次数最大的块记为A,擦除次数最小的块记为B;从空闲块链表中选取一块,将A擦除块上的数据复制到空闲块上;然后对A擦除块进行擦除操作,然后将B擦除块上面的数据复制到A擦除块上面;然后将B擦除块放到脏块链表中,对B擦除块进行擦除后用于存放更新频繁数据。
CNA2008101616034A 2008-09-16 2008-09-16 基于nand闪存文件***中静态数据损耗均衡的方法 Pending CN101369252A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2008101616034A CN101369252A (zh) 2008-09-16 2008-09-16 基于nand闪存文件***中静态数据损耗均衡的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2008101616034A CN101369252A (zh) 2008-09-16 2008-09-16 基于nand闪存文件***中静态数据损耗均衡的方法

Publications (1)

Publication Number Publication Date
CN101369252A true CN101369252A (zh) 2009-02-18

Family

ID=40413075

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2008101616034A Pending CN101369252A (zh) 2008-09-16 2008-09-16 基于nand闪存文件***中静态数据损耗均衡的方法

Country Status (1)

Country Link
CN (1) CN101369252A (zh)

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101901190A (zh) * 2009-03-19 2010-12-01 三星电子株式会社 电子装置、用于管理电子装置中的存储器的设备和方法
CN102033945A (zh) * 2010-12-21 2011-04-27 中兴通讯股份有限公司 一种回收脏块的方法及装置
CN102169462A (zh) * 2011-04-27 2011-08-31 中国科学院光电技术研究所 基于NAND Flash的数据记录方法与记录控制器
CN102222047A (zh) * 2011-06-16 2011-10-19 西安交通大学 一种改进的bet静态损耗均衡方法
CN102222044A (zh) * 2010-04-16 2011-10-19 慧荣科技股份有限公司 存储器的数据写入方法及数据储存装置
CN102543177A (zh) * 2010-12-17 2012-07-04 西安奇维测控科技有限公司 一种固态盘静态磨损平衡算法
CN101740110B (zh) * 2009-12-17 2013-06-12 中兴通讯股份有限公司 一种Nand Flash擦除均衡的方法及装置
CN103678141A (zh) * 2012-09-05 2014-03-26 深圳市中兴移动通信有限公司 闪存的管理方法和管理***
CN104298465A (zh) * 2013-07-17 2015-01-21 光宝科技股份有限公司 固态储存装置中的区块分组方法
CN104995609A (zh) * 2013-02-11 2015-10-21 英派尔科技开发有限公司 对发向目录的缓存回收通知的聚合
CN105589811A (zh) * 2014-11-10 2016-05-18 慧荣科技股份有限公司 数据储存装置与操作方法
CN105700822A (zh) * 2014-12-15 2016-06-22 柯尼卡美能达株式会社 非易失性存储器控制装置以及非易失性存储器控制方法
CN106095344A (zh) * 2016-06-27 2016-11-09 联想(北京)有限公司 一种数据处理方法及装置
CN106294202A (zh) * 2015-06-12 2017-01-04 联想(北京)有限公司 一种数据存储方法和装置
CN106484323A (zh) * 2016-09-13 2017-03-08 郑州云海信息技术有限公司 一种固态存储的损耗均衡方法及***
CN106990926A (zh) * 2017-06-14 2017-07-28 郑州云海信息技术有限公司 一种固态硬盘磨损均衡的处理方法
CN108089822A (zh) * 2017-12-20 2018-05-29 北京京存技术有限公司 存储芯片的管理方法、***、设备及存储介质
CN108319433A (zh) * 2018-03-19 2018-07-24 艾体威尔电子技术(北京)有限公司 小内存单片机的NOR Flash的存储管理方法
CN110851079A (zh) * 2019-10-28 2020-02-28 华中科技大学 一种自适应的存储设备损耗均衡方法及***
CN111324284A (zh) * 2018-12-14 2020-06-23 北京兆易创新科技股份有限公司 一种存储器
CN111324285A (zh) * 2018-12-14 2020-06-23 北京兆易创新科技股份有限公司 一种存储器

Cited By (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101901190A (zh) * 2009-03-19 2010-12-01 三星电子株式会社 电子装置、用于管理电子装置中的存储器的设备和方法
CN101901190B (zh) * 2009-03-19 2015-04-01 三星电子株式会社 电子装置、用于管理电子装置中的存储器的设备和方法
CN101740110B (zh) * 2009-12-17 2013-06-12 中兴通讯股份有限公司 一种Nand Flash擦除均衡的方法及装置
CN102222044B (zh) * 2010-04-16 2015-09-02 慧荣科技股份有限公司 存储器的数据写入方法及数据储存装置
CN102222044A (zh) * 2010-04-16 2011-10-19 慧荣科技股份有限公司 存储器的数据写入方法及数据储存装置
CN102543177A (zh) * 2010-12-17 2012-07-04 西安奇维测控科技有限公司 一种固态盘静态磨损平衡算法
CN102543177B (zh) * 2010-12-17 2016-01-06 西安奇维测控科技有限公司 一种固态盘静态磨损平衡算法
CN102033945A (zh) * 2010-12-21 2011-04-27 中兴通讯股份有限公司 一种回收脏块的方法及装置
CN102169462B (zh) * 2011-04-27 2014-03-05 中国科学院光电技术研究所 基于NAND Flash的数据记录方法与记录控制器
CN102169462A (zh) * 2011-04-27 2011-08-31 中国科学院光电技术研究所 基于NAND Flash的数据记录方法与记录控制器
CN102222047A (zh) * 2011-06-16 2011-10-19 西安交通大学 一种改进的bet静态损耗均衡方法
CN103678141A (zh) * 2012-09-05 2014-03-26 深圳市中兴移动通信有限公司 闪存的管理方法和管理***
CN103678141B (zh) * 2012-09-05 2017-11-28 努比亚技术有限公司 闪存的管理方法和管理***
CN104995609A (zh) * 2013-02-11 2015-10-21 英派尔科技开发有限公司 对发向目录的缓存回收通知的聚合
CN104995609B (zh) * 2013-02-11 2017-12-19 英派尔科技开发有限公司 对发向目录的缓存回收通知的聚合
CN104298465B (zh) * 2013-07-17 2017-06-20 光宝电子(广州)有限公司 固态储存装置中的区块分组方法
CN104298465A (zh) * 2013-07-17 2015-01-21 光宝科技股份有限公司 固态储存装置中的区块分组方法
CN105589811A (zh) * 2014-11-10 2016-05-18 慧荣科技股份有限公司 数据储存装置与操作方法
CN105589811B (zh) * 2014-11-10 2019-02-01 慧荣科技股份有限公司 数据储存装置与操作方法
CN105700822B (zh) * 2014-12-15 2019-01-04 柯尼卡美能达株式会社 非易失性存储器控制装置以及非易失性存储器控制方法
CN105700822A (zh) * 2014-12-15 2016-06-22 柯尼卡美能达株式会社 非易失性存储器控制装置以及非易失性存储器控制方法
CN106294202A (zh) * 2015-06-12 2017-01-04 联想(北京)有限公司 一种数据存储方法和装置
CN106095344A (zh) * 2016-06-27 2016-11-09 联想(北京)有限公司 一种数据处理方法及装置
CN106095344B (zh) * 2016-06-27 2019-11-12 深圳忆联信息***有限公司 一种数据处理方法及装置
CN106484323A (zh) * 2016-09-13 2017-03-08 郑州云海信息技术有限公司 一种固态存储的损耗均衡方法及***
CN106990926A (zh) * 2017-06-14 2017-07-28 郑州云海信息技术有限公司 一种固态硬盘磨损均衡的处理方法
CN108089822A (zh) * 2017-12-20 2018-05-29 北京京存技术有限公司 存储芯片的管理方法、***、设备及存储介质
CN108319433A (zh) * 2018-03-19 2018-07-24 艾体威尔电子技术(北京)有限公司 小内存单片机的NOR Flash的存储管理方法
CN108319433B (zh) * 2018-03-19 2021-02-02 艾体威尔电子技术(北京)有限公司 小内存单片机的NOR Flash的存储管理方法
CN111324284A (zh) * 2018-12-14 2020-06-23 北京兆易创新科技股份有限公司 一种存储器
CN111324285A (zh) * 2018-12-14 2020-06-23 北京兆易创新科技股份有限公司 一种存储器
CN111324284B (zh) * 2018-12-14 2024-02-23 兆易创新科技集团股份有限公司 一种存储器
CN110851079A (zh) * 2019-10-28 2020-02-28 华中科技大学 一种自适应的存储设备损耗均衡方法及***

Similar Documents

Publication Publication Date Title
CN101369252A (zh) 基于nand闪存文件***中静态数据损耗均衡的方法
US10216639B2 (en) Identification of blocks to be retained in a cache based on temperature
EP2940691B1 (en) Storage controller, storage device, storage system and method of operating the storage controller
KR101477047B1 (ko) 메모리 시스템 및 그것의 블록 병합 방법
CN101271730B (zh) 具混合密度存储器的存储器***及其抹除、文件配置管理方法
CN101354681B (zh) 存储器***、非易失性存储器的磨损均衡方法及装置
CN102576293B (zh) 固态存储设备和分层存储***中的数据管理
CN101169751B (zh) 具有闪存设备的***及其数据恢复方法
CN102508788B (zh) Ssd及ssd垃圾回收方法和装置
CN101727295B (zh) 一种基于虚拟块闪存地址映射的数据写入及读出方法
EP2977906A1 (en) Nonvolatile storage device and data write method
US20140129758A1 (en) Wear leveling in flash memory devices with trim commands
CN106844583B (zh) 一种在NOR Flash上建立FAT文件***的优化方法
CN101673243B (zh) 数据储存装置与方法
CN101241471A (zh) 快闪存储器***及其垃圾收集方法
CN103294604A (zh) 闪存器件和使用闪存器件的电子设备
CN112231244B (zh) 应用于SoftSIM的SIM卡文件擦写***、方法和可读存储介质
KR20090042035A (ko) 불휘발성 메모리 장치를 이용한 데이터 저장장치, 메모리시스템, 그리고 컴퓨터 시스템
KR20130017748A (ko) 메모리 컨트롤러 및 이의 데이터 관리방법
CN102841851A (zh) 闪存管理方法和闪存设备
CN103473298A (zh) 数据归档方法和装置以及存储***
KR20100054402A (ko) 스토리지를 갖는 컴퓨팅 장치와, 상기 스토리지에 대한 관리 장치 및 방법과, 파일 시스템이 기록된 기록 매체
CN102981970A (zh) 闪存管理方法和***
CN102520885B (zh) 一种混合硬盘的数据管理***
CN101739350B (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
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20090218