CN103678141B - 闪存的管理方法和管理*** - Google Patents

闪存的管理方法和管理*** Download PDF

Info

Publication number
CN103678141B
CN103678141B CN201210323885.XA CN201210323885A CN103678141B CN 103678141 B CN103678141 B CN 103678141B CN 201210323885 A CN201210323885 A CN 201210323885A CN 103678141 B CN103678141 B CN 103678141B
Authority
CN
China
Prior art keywords
block
free
data
data block
free block
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.)
Expired - Fee Related
Application number
CN201210323885.XA
Other languages
English (en)
Other versions
CN103678141A (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.)
Nubia Technology Co Ltd
Original Assignee
Nubia Technology Co Ltd
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 Nubia Technology Co Ltd filed Critical Nubia Technology Co Ltd
Priority to CN201210323885.XA priority Critical patent/CN103678141B/zh
Publication of CN103678141A publication Critical patent/CN103678141A/zh
Application granted granted Critical
Publication of CN103678141B publication Critical patent/CN103678141B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明提供一种闪存的管理方法和管理***。所述管理***包括:扫描模块,用于扫描闪存的物理块,以及将扫描后的物理块分为数据块和空闲块,所述数据块用于存储数据;数据块管理模块,用于对所述数据块分配逻辑编号以及建立数据块映射表,所述数据块映射表用于关联所述数据块的逻辑编号及其物理地址;空闲块管理模块,用于对所述空闲块分配逻辑编号以及建立空闲块映射表,所述建立空闲块映射表用于关联所述空闲块的逻辑编号及其物理地址;转换模块,用于根据预设条件对空闲块与数据块进行互相转换,并更新所述数据块映射表和空闲块映射表。本发明通过空闲块与数据块的互相转换,实现了物理块的次数平均化,从而延长了闪存的使用寿命。

Description

闪存的管理方法和管理***
技术领域
本发明涉及存储器领域,尤其涉及闪存(Flash)的管理方法和管理***。
背景技术
闪存是近年来被广泛使用的存储介质。相对于传统的机械式存储器,闪存具有读写速度快、噪音小、耗电小的优点。但是,闪存具有擦写次数的限制,例如,NOR闪存的擦写次数为十万次左右,而NAND闪存的擦写次数为一百万次左右。
现有的闪存管理方法中,在初始化时建立逻辑映射表,对每一个空闲物理块分配一个逻辑编号并标注到冗余区,或者读出已分配的逻辑编号到逻辑映射表,这样建立的逻辑映射表是静态的,每个物理块存在一个逻辑编号,而且在***过程中很少变动。每次更新数据都需要修改文件分配表(FAT)所在的块。导致文件分配表所对应的物理块不断被擦写,导致该物理块会在较短的时间被损坏。此外,现有的管理方法对物理块的使用频率无法规划,导致各物理块的使用差别大,磨损不均衡,降低了闪存的使用寿命。
发明内容
为克服上述缺陷,本发明提供一种闪存的管理方法以延长闪存的使用寿命。该管理方法包括以下步骤:扫描闪存的物理块,扫描后的物理块被分为数据块和空闲块,所述数据块用于存储数据;对所述数据块分配逻辑编号,建立数据块映射表,用于关联所述数据块的逻辑编号及其物理地址;对所述空闲块分配逻辑编号,建立空闲块映射表,用于关联所述空闲块的逻辑编号及其物理地址;根据预设条件将部分空闲块转换成数据块,并更新所述数据块映射表和空闲块映射表。
在一个优选的实施例中,所述预设条件包括:可供使用的数据块少于预设阈值。
在一个优选的实施例中,根据预设条件将部分空闲块转换成数据块时,将擦写次数较少的空闲块转换成数据块。
在一个优选的实施例中,所述管理方法还包括:根据预设策略将部分数据块转换成空闲块,并更新所述数据块映射表和空闲块映射表。
在一个优选的实施例中,所述预设策略包括:可供使用的空闲块少于预设阈值。
在一个优选的实施例中,根据预设策略将部分数据块转换成空闲块时,将擦写次数较多的数据块转换成空闲块。
在一个优选的实施例中,根据预设策略将部分数据块转换成空闲块时,将擦写次数较多的数据块与擦写次数较少的空闲块进行数据交换,并将所述擦写次数较多的数据块转换成空闲块,将擦写次数较少的空闲块转换成数据块。
本发明的另一方面,提供一种闪存的管理***以延长闪存的使用寿命。该管理***包括:扫描模块,用于扫描闪存的物理块,以及将扫描后的物理块分为数据块和空闲块,所述数据块用于存储数据;数据块管理模块,用于对所述数据块分配逻辑编号以及建立数据块映射表,所述数据块映射表用于关联所述数据块的逻辑编号及其物理地址;空闲块管理模块,用于对所述空闲块分配逻辑编号以及建立空闲块映射表,所述建立空闲块映射表用于关联所述空闲块的逻辑编号及其物理地址;转换模块,用于根据预设条件将部分空闲块转换成数据块,并更新所述数据块映射表和空闲块映射表。
在一个优选的实施例中,所述转换模块还用于根据预设策略将部分数据块转换成空闲块,并更新所述数据块映射表和空闲块映射表。
在一个优选的实施例中,所述转换模块根据预设策略将部分数据块转换成空闲块时,将擦写次数较多的数据块与擦写次数较少的空闲块进行数据交换,并将所述擦写次数较多的数据块转换成空闲块,将擦写次数较少的空闲块转换成数据块。
本发明提供的方案中,通过闪存的空闲块作为备用,并通过空闲块与数据块的互相转换,实现了物理块的次数平均化,从而延长了闪存的使用寿命。
附图说明
图1为本发明一个实施例提供的闪存管理方法的流程图;
图2为本发明一个实施例提供的闪存管理***的示意图;
图3是建立空闲块映射表的流程图;
图4是将部分空闲块转换成数据块的流程图;
图5是修改数据块的流程图;
图6是将部分数据块转换成空闲块的流程图;
图7是对数据块和空闲块进行交换的示意图。
具体实施方式
参考图1和图2,本发明一个优选实施例中,闪存的管理***包括扫描模块11、数据块管理模块13、空闲块管理模块15和转换模块17等。
如步骤S21所示,扫描模块11扫描闪存的物理块,将扫描后的物理块分为数据块和空闲块。本说明书和权利要求书中,物理块指闪存的物理层面的存储块,数据块和空闲块都属于物理块;数据块,也称日志块,是指可用于存储数据或者已经存有数据的物理块;空闲块,也称空闲物理块,是指处于闲置状态的物理块。
如步骤S23所示,数据块管理模块13对数据块分配逻辑编号以及建立数据块映射表(也称数据块表),数据块映射表用于关联数据块的逻辑编号及其物理地址。操作***对闪存进行存储时,通过逻辑编号对数据块进行操作,进而通过对应的物理地址对数据块进行操作。应当意识到,数据块映射表可以是表格形式,也可以是其他形式,例如数组形式,只要该形式能够对数据块的逻辑编号和物理地址进行关联即可。
如步骤S25所示,空闲块管理模块15对空闲块分配逻辑编号以及建立空闲块映射表(也称空闲块表),建立空闲块映射表用于关联空闲块的逻辑编号及其物理地址。类似的,应当意识到,空闲块映射表可以是表格形式,也可以是其他形式例如数组形式,只要该形式能够对空闲块的逻辑编号和物理地址进行关联即可。
如步骤S27所示,转换模块17用于根据预设条件对空闲块和数据块进行转换,例如,将空闲块转换成数据块,或者将数据块转换成空闲块,并更新数据块映射表和空闲块映射表。
本实施例中,以NANDFlash闪存为例。本方法主要包括以下步骤:
1)初始化时检测NANDFlash存储器,排除所有的坏块,不稳定块,启动块;
2)初始化时建立逻辑映射表,扫描NANDFlash存储器,将已经存在逻辑编号的物理块序号添加到逻辑映射表的对应表项中;其余未填充逻辑映射表项从空闲物理表取物理块填充;
3)初始化日志块映射表表和表指针,扫描NANDFlash存储器,将标记日志添加到日志表中;
4)初始化时建立空闲块表,扫描NANDFlash存储器,将没有逻辑编号的物理块序号添加到空闲物理块表或者数组中,并且始终保持一定数量的空闲物理块作为备份,保证空闲物理块表或者数组不为空;
5)写空逻辑块时,从列表找到对应逻辑块和日志块,如没有日志块,则从空闲物理表中申请物理块作为日志块;再将数据写到日志块中,同时更新日志块表和逻辑块映射表。在空闲物理块表中,减少一个空闲物理块;
6)修改逻辑块数据时,读取逻辑块对应的物理页到缓存做修改,然后把数据更新日志块。如日志块超过一定数目,日志块和逻辑块按一定条件或策略回收;
7)采用冗余区的用户字节的特殊定义判别日志块,杂块,根据标识判断,日志块标记无效被回收。
所述预设条件/策略可以是:
1)可供使用的数据块少于预设阈值;
2)可供使用的空闲块少于预设阈值;
3)数据块的擦写次数高于预设阈值。
本发明中,可以定时或空闲时时间回收日志块:①需要分配空闲块时,空闲块列表中空闲块的块数已经达到了可分配的下限;②日志块的所有页面已写入数据,还需要再修改其对应的逻辑块的数据;③如写的次数达到一定次数,强行执行一次,擦除次数最小逻辑数据块与空闲块交换。与日志块的回收操作是指将日志块的数据更新到新的数据块,或者将日志块的数据整理到新的日志块。
始终保持一定数量的空闲块作为备份,以保证物理块表不空,逻辑映射表能保持滚动;
本实施的具体工作过程为:
1.定义冗余字节:如表1字节0标记损坏的块;字节1,2存放逻辑块编号信息,占用两个Byte,具体又分三部分。
表1:16Byte冗余区字节定义表
表2:逻辑块信息
表2,位【0,9】表示逻辑块,数字从0~1023数目,按照标准定义每1024代表一个区,简称Zone;位【10,13】表示区号;位【14,15】表示逻辑块类型,如启动块,日志块,数据块等信息。
2.定义表和参数
定义逻辑映射表:初始值等于0xFFFF
定义空闲块表,表中存放空物理块的块号,初始化值等于0xFFFF
定义日志块表,表中存放日志块的块号,初始化值等于0xFFFF
定义空物理块数量,初始化值等于0
定义日志块数量,初始化值等于0
定义空闲物理块表数组,初始化位置指为0xFFFF
定义日志块表数组,初始化位置指为0xFFFF
3.建立逻辑映射表,初始化时检测NANDFlash存储器,排除所有的坏块,日志块,不稳定块,启动块后,读取每个物理块的逻辑编号,将有逻辑编号的块添加逻辑映射表中,而对空物理块从空闲中查找一块添充;
4.建立空闲物理块表数组:初始化时建立空物理块表,如图2,首先读物理块序号指针指向NANDFlash物理块的冗余字节,排除坏块,日志块后,判断物理块的逻辑编号;如果逻辑编号空则找到一个空物理块,把该物理块表中从空物理块表删除;空闲物理块序号加1,如果逻辑块编号非空,则物理块序号增1,指向下一个物理块继续寻找,重复执行上述过程。直到循环一周完成NANDFlash器件的扫描。
操作完成后空闲物理块建立或更新,空闲物理块表序号指向第一个可用空闲物理块。
5.建立日志表;初始化时,建立日志块表,该过程可以和空闲物理块的建立合并一起实施,排除坏块之后,首先读NANDflash物理块的冗余区前3字节,如果Blocktype有标记,则找到一个日志块;把该块号赋给日志块表中,日志块表序号增1,如果Blocktype没有标记,则物理号序号增1,指向下一个物理块继续寻找。重复执行上述过程。直到循环一周完成NANDFlash器件的扫描;
6.写空逻辑块的操作,如图4,对逻辑块执行写操作时,如果该逻辑块在日志块中的表项空,则直接到空闲物理块中将空物理块表序号填充在日志块表项中,取出写到要操作的逻辑映射表的表项中,空物理表的表项写成空标记,同时空物理表序号增加1,指向下一位置,空物理块数量减1,然后将逻辑块号标记到刚找到的空物理块的冗余区,之后写物理块,结束操作过程;如果逻辑块执行写操作时,该逻辑块在逻辑映射表中表项非空,则相当于修改一个逻辑块,则进第七步,修改数据及更新日志表;
7.修改数据及更新日志块表:如图5,对逻辑块的数据进行修改时首先找到所对应日志块,根据页映射表情况,选择每一个逻辑页的有效数据,将其写入空闲块的对应页面。用空间页块号替换原始数据块。释放该日志块在内存中的所有信息。擦除原始数据块和日志块的空间块表
8.回收日志块及更新空闲物理表:日志块的回收时机,①找不到空闲块作新的日志块时;②修复区表,检测到一个逻辑块的日志块多于1时;③需要立即更新数据时,
其中日志块回收,分成三种情况简单回收,交换回收,搬移回收;对于简单回收,其中逻辑块块和日志块的数据合并成为新的逻辑块。原逻辑块和日志块,会被擦除成为新的空闲块,如图7所示。
对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (4)

1.一种闪存的管理方法,其特征在于,包括以下步骤:
扫描闪存的物理块,扫描后的物理块被分为数据块和空闲块,所述数据块用于存储数据;
对所述数据块分配逻辑编号;
建立数据块映射表,用于关联所述数据块的逻辑编号及其物理地址;
对所述空闲块分配逻辑编号;
建立空闲块映射表,用于关联所述空闲块的逻辑编号及其物理地址;
根据预设条件将部分空闲块转换成数据块,并更新所述数据块映射表和空闲块映射表;
所述管理方法还包括:根据预设策略将部分数据块转换成空闲块,并更新数据块映射表和空闲块映射表;
所述根据预设策略将部分数据块转换成空闲块的步骤包括:
当可供使用的所述空闲块少于预设阈值时,将擦写次数较多的数据块转换成空闲块,或将擦写次数较多的数据块与擦写次数较少的空闲块进行数据交换,并将所述擦写次数较多的数据块转换成空闲块,将擦写次数较少的空闲块转换成数据块。
2.根据权利要求1所述的管理方法,其特征在于,所述预设条件包括:可供使用的数据块少于预设阈值。
3.根据权利要求2所述的管理方法,其特征在于,根据预设条件将部分空闲块转换成数据块时,将擦写次数较少的空闲块转换成数据块。
4.一种闪存的管理***,其特征在于,包括:
扫描模块,用于扫描闪存的物理块,以及将扫描后的物理块分为数据块和空闲块,所述数据块用于存储数据;
数据块管理模块,用于对所述数据块分配逻辑编号以及建立数据块映射表,所述数据块映射表用于关联所述数据块的逻辑编号及其物理地址;
空闲块管理模块,用于对所述空闲块分配逻辑编号以及建立空闲块映射表,所述建立空闲块映射表用于关联所述空闲块的逻辑编号及其物理地址;
转换模块,用于根据预设条件将部分空闲块转换成数据块,并更新所述数据块映射表和空闲块映射表;
所述转换模块还用于,根据预设策略将部分数据块转换成空闲块,并更新数据块映射表和空闲块映射表;
所述转换模块具体用于,当可供使用的所述空闲块少于预设阈值时,将擦写次数较多的数据块转换成空闲块,或将擦写次数较多的数据块与擦写次数较少的空闲块进行数据交换,并将所述擦写次数较多的数据块转换成空闲块,将擦写次数较少的空闲块转换成数据块。
CN201210323885.XA 2012-09-05 2012-09-05 闪存的管理方法和管理*** Expired - Fee Related CN103678141B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210323885.XA CN103678141B (zh) 2012-09-05 2012-09-05 闪存的管理方法和管理***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210323885.XA CN103678141B (zh) 2012-09-05 2012-09-05 闪存的管理方法和管理***

Publications (2)

Publication Number Publication Date
CN103678141A CN103678141A (zh) 2014-03-26
CN103678141B true CN103678141B (zh) 2017-11-28

Family

ID=50315774

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210323885.XA Expired - Fee Related CN103678141B (zh) 2012-09-05 2012-09-05 闪存的管理方法和管理***

Country Status (1)

Country Link
CN (1) CN103678141B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104778127B (zh) * 2015-03-25 2018-04-13 合肥格易集成电路有限公司 一种nand flash写数据的方法和装置
CN108121503B (zh) * 2017-08-08 2021-03-05 鸿秦(北京)科技有限公司 一种NandFlash地址映射及块管理方法
CN113821362B (zh) * 2021-11-25 2022-03-22 云和恩墨(北京)信息技术有限公司 数据复制方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101178689A (zh) * 2007-12-06 2008-05-14 浙江科技学院 一种NAND Flash存储器的动态管理方法
CN101369252A (zh) * 2008-09-16 2009-02-18 浙江大学 基于nand闪存文件***中静态数据损耗均衡的方法
CN101526927A (zh) * 2008-03-07 2009-09-09 北京华虹集成电路设计有限责任公司 Flash文件***的数据处理方法及数据处理装置
CN101937319A (zh) * 2009-06-29 2011-01-05 联发科技股份有限公司 存储器***及其映射方法
CN102043724A (zh) * 2009-10-15 2011-05-04 群联电子股份有限公司 用于闪存的区块管理方法、控制器与存储***
CN102081576A (zh) * 2011-03-01 2011-06-01 华中科技大学 一种闪存的磨损平衡方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8452929B2 (en) * 2005-04-21 2013-05-28 Violin Memory Inc. Method and system for storage of data in non-volatile media

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101178689A (zh) * 2007-12-06 2008-05-14 浙江科技学院 一种NAND Flash存储器的动态管理方法
CN101526927A (zh) * 2008-03-07 2009-09-09 北京华虹集成电路设计有限责任公司 Flash文件***的数据处理方法及数据处理装置
CN101369252A (zh) * 2008-09-16 2009-02-18 浙江大学 基于nand闪存文件***中静态数据损耗均衡的方法
CN101937319A (zh) * 2009-06-29 2011-01-05 联发科技股份有限公司 存储器***及其映射方法
CN102043724A (zh) * 2009-10-15 2011-05-04 群联电子股份有限公司 用于闪存的区块管理方法、控制器与存储***
CN102081576A (zh) * 2011-03-01 2011-06-01 华中科技大学 一种闪存的磨损平衡方法

Also Published As

Publication number Publication date
CN103678141A (zh) 2014-03-26

Similar Documents

Publication Publication Date Title
CN102841851B (zh) 闪存管理方法和闪存设备
CN104750626B (zh) 数据储存装置以及快闪存储器控制方法
CN101169751B (zh) 具有闪存设备的***及其数据恢复方法
CN101354681B (zh) 存储器***、非易失性存储器的磨损均衡方法及装置
CN102073563B (zh) 闪存设备、闪存设备中存储块的管理方法及***
CN102981963B (zh) 一种固态盘的闪存转换层的实现方法
CN101980177B (zh) 一种操作Flash的方法和装置
CN103365788B (zh) 实时闪存转换层使用的自适应局部垃圾回收方法
CN101329656B (zh) 一种Nand-Flash存储***的管理方法
CN101231617B (zh) 闪存设备的数据处理方法
CN102779096B (zh) 一种基于页块面三维的闪存地址映射方法
CN102043721B (zh) 闪存存储管理方法
CN106776376B (zh) 缓冲存储器管理方法、存储器控制电路单元及存储装置
CN106547703A (zh) 一种基于块组结构的ftl优化方法
CN101526927B (zh) Flash文件***的数据处理方法及数据处理装置
CN102779095A (zh) 闪存装置、存储器控制装置、存储器控制方法及存储***
CN101493794A (zh) 一种闪存数据处理方法及装置
CN106155915A (zh) 数据存储的处理方法及装置
CN102981970B (zh) 闪存管理方法和***
CN103996412A (zh) 一种用于智能卡非易失性存储器的掉电保护方法
CN103678141B (zh) 闪存的管理方法和管理***
CN103617124B (zh) 一种闪存管理方法和装置
CN106775436A (zh) 数据存取方法、存储器控制电路单元与存储器
CN103034586B (zh) 通过闪存转换层识别上层应用的方法及其***
CN104166627B (zh) 一种基于单片机的nand‑flash写操作方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: A District No. 9018 Han innovation building in Nanshan District high tech Zone in Shenzhen city of Guangdong Province, North Central Avenue, 518000 floor 10

Applicant after: NUBIA TECHNOLOGY Co.,Ltd.

Address before: A District No. 9018 Han innovation building in Nanshan District high tech Zone in Shenzhen city of Guangdong Province, North Central Avenue, 518000 floor 10

Applicant before: SHENZHEN ZTE MOBILE TELECOM Co.,Ltd.

GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20171128