闪存的管理方法和管理系统的制作方法

文档序号:6488566阅读:110来源:国知局
闪存的管理方法和管理系统的制作方法
【专利摘要】本发明提供一种闪存的管理方法和管理系统。所述管理系统包括:扫描模块,用于扫描闪存的物理块,以及将扫描后的物理块分为数据块和空闲块,所述数据块用于存储数据;数据块管理模块,用于对所述数据块分配逻辑编号以及建立数据块映射表,所述数据块映射表用于关联所述数据块的逻辑编号及其物理地址;空闲块管理模块,用于对所述空闲块分配逻辑编号以及建立空闲块映射表,所述建立空闲块映射表用于关联所述空闲块的逻辑编号及其物理地址;转换模块,用于根据预设条件对空闲块与数据块进行互相转换,并更新所述数据块映射表和空闲块映射表。本发明通过空闲块与数据块的互相转换,实现了物理块的次数平均化,从而延长了闪存的使用寿命。
【专利说明】闪存的管理方法和管理系统
【技术领域】
[0001]本发明涉及存储器领域,尤其涉及闪存(Flash)的管理方法和管理系统。
【背景技术】
[0002]闪存是近年来被广泛使用的存储介质。相对于传统的机械式存储器,闪存具有读写速度快、噪音小、耗电小的优点。但是,闪存具有擦写次数的限制,例如,NOR闪存的擦写次数为十万次左右,而NAND闪存的擦写次数为一百万次左右。
[0003]现有的闪存管理方法中,在初始化时建立逻辑映射表,对每一个空闲物理块分配一个逻辑编号并标注到冗余区,或者读出已分配的逻辑编号到逻辑映射表,这样建立的逻辑映射表是静态的,每个物理块存在一个逻辑编号,而且在系统过程中很少变动。每次更新数据都需要修改文件分配表(FAT)所在的块。导致文件分配表所对应的物理块不断被擦写,导致该物理块会在较短的时间被损坏。此外,现有的管理方法对物理块的使用频率无法规划,导致各物理块的使用差别大,磨损不均衡,降低了闪存的使用寿命。

【发明内容】

[0004]为克服上述缺陷,本发明提供一种闪存的管理方法以延长闪存的使用寿命。该管理方法包括以下步骤:扫描闪存的物理块,扫描后的物理块被分为数据块和空闲块,所述数据块用于存储数据;对所述数据块分配逻辑编号,建立数据块映射表,用于关联所述数据块的逻辑编号及其物理地址;对所述空闲块分配逻辑编号,建立空闲块映射表,用于关联所述空闲块的逻辑编号及其物理地址;根据预设条件将部分空闲块转换成数据块,并更新所述数据块映射表和空闲块映射表。
[0005]在一个优选的实施例中,所述预设条件包括:可供使用的数据块少于预设阈值。
[0006]在一个优选的实施例中,根据预设条件将部分空闲块转换成数据块时,将擦写次数较少的空闲块转换成数据块。
[0007]在一个优选的实施例中,所述管理方法还包括:根据预设策将部分数据块转换成空闲块,并更新所述数据块逻辑表和空闲块逻辑表。
[0008]在一个优选的实施例中,所述预设策略包括:可供使用的空闲块少于预设阈值。
[0009]在一个优选的实施例中,根据预设策将部分数据块转换成空闲块时,将擦写次数较多的数据块转换成空闲块。
[0010]在一个优选的实施例中,根据预设策将部分数据块转换成空闲块时,将擦写次数较多的数据块与擦写次数较少的空闲块进行数据交换,并将所述擦写次数较多的数据块转换成空闲块,将擦写次数较少的空闲块转换成数据块。
[0011]本发明的另一方面,提供一种闪存的管理系统以延长闪存的使用寿命。该管理系统包括:扫描模块,用于扫描闪存的物理块,以及将扫描后的物理块分为数据块和空闲块,所述数据块用于存储数据;数据块管理模块,用于对所述数据块分配逻辑编号以及建立数据块映射表,所述数据块映射表用于关联所述数据块的逻辑编号及其物理地址;空闲块管理模块,用于对所述空闲块分配逻辑编号以及建立空闲块映射表,所述建立空闲块映射表用于关联所述空闲块的逻辑编号及其物理地址;转换模块,用于根据预设条件将部分空闲块转换成数据块,并更新所述数据块映射表和空闲块映射表。
[0012]在一个优选的实施例中,所述转换模块还用于根据预设策将部分数据块转换成空闲块,并更新所述数据块逻辑表和空闲块逻辑表。
[0013]在一个优选的实施例中,所述转换模块根据预设策将部分数据块转换成空闲块时,将擦写次数较多的数据块与擦写次数较少的空闲块进行数据交换,并将所述擦写次数较多的数据块转换成空闲块,将擦写次数较少的空闲块转换成数据块。
[0014]本发明提供的方案中,通过闪存的空闲块作为备用,并通过空闲块与数据块的互相转换,实现了物理块的次数平均化,从而延长了闪存的使用寿命。
[0015]【【专利附图】

【附图说明】】
图1为本发明一个实施例提供的闪存管理方法的流程图;
图2为本发明一个实施例提供的闪存管理系统的示意图;
图3是建立空闲块映射表的流程图;
图4是将部分空闲块转换成数据块的流程图;
图5是修改数据块的流程图; 图6是将部分数据块转换成空闲块的流程图;
图7是对数据块和空闲块进行交换的示意图。
[0016]【【具体实施方式】】
参考图1和图2,本发明一个优选实施例中,闪存的管理系统包括扫描模块11、数据块管理模块13、空闲块管理模块15和转换模块17等。
[0017]如步骤S21所示,扫描模块11扫描闪存的物理块,将扫描后的物理块分为数据块和空闲块。本说明书和权利要求书中,物理块指闪存的物理层面的存储块,数据块和空闲块都属于物理块;数据块,也称日志块,是指可用于存储数据或者已经存有数据的物理块;空闲块,也称空闲物理块,是指处于闲置状态的物理块。
[0018]如步骤S23所示,数据块管理模块13对数据块分配逻辑编号以及建立数据块映射表(也称数据块表),数据块映射表用于关联数据块的逻辑编号及其物理地址。操作系统对闪存进行存储时,通过逻辑编号对数据块进行操作,进而通过对应的物理地址对数据块进行操作。应当意识到,数据块映射表可以是表格形式,也可以是其他形式,例如数组形式,只要该形式能够对数据块的逻辑编号和物理地址进行关联即可。
[0019]如步骤S25所示,空闲块管理模块15对空闲块分配逻辑编号以及建立空闲块映射表(也称空闲块表),建立空闲块映射表用于关联空闲块的逻辑编号及其物理地址。类似的,应当意识到,空闲块映射表可以是表格形式,也可以是其他形式例如数组形式,只要该形式能够对空闲块的逻辑编号和物理地址进行关联即可。
[0020]如步骤S27所示,转换模块17用于根据预设条件对空闲块和数据块进行转换,例如,将空闲块转换成数据块,或者将数据块转换成空闲块,并更新数据块映射表和空闲块映射表。
[0021]本实施例中,以NAND Flash闪存为例。本方法主要包括以下步骤:
I)初始化时检测NAND Flash存储器,排除所有的坏块,不稳定块,启动块;2)初始化时建立逻辑映射表,扫描NANDFlash存储器,将已经存在逻辑编号的物理块序号添加到逻辑映射表的对应表项中;其余未填充逻辑映射表项从空闲物理表取物理块填充;
3)初始化日志块映射表表和表指针,扫描NANDFlash存储器,将标记日志添加到日志表中;
4)初始化时建立空闲块表,扫描NANDFlash存储器,将没有逻辑编号的物理块序号添加到空闲物理块表或者数组中,并且始终保持一定数量的空闲物理块作为备份,保证空闲物理块表或者数组不为空;
5)写空逻辑块时,从列表找到对应逻辑块和日志块,如没有日志块,则从空闲物理表中申请物理块作为日志块;再将数据写到日志块中,同时更新日志块表和逻辑块映射表。在空闲物理块表中,减少一个空闲物理块;
6)修改逻辑块数据时,读取逻辑块对应的物理页到缓存做修改,然后把数据更新日志块。如日志块超过一定数目,日志块和逻辑块按一定条件或策略回收;
7)采用冗余区的用户字节的特殊定义判别日志块,杂块,根据标识判断,日志块标记无效被回收。
[0022]所述预设条件/策略可以是:
1)可供使用的数据块少于预设阈值;
2)可供使用的空闲块少于预设阈值;
3)数据块的擦写次数高于预设阈值。
[0023]本发明中,可以定 时或空闲时时间回收日志块:①需要分配空闲块时,空闲块列表中空闲块的块数已经达到了可分配的下限;②日志块的所有页面已写入数据,还需要再修改其对应的逻辑块的数据;③如写的次数达到一定次数,强行执行一次,擦除次数最小逻辑数据块与空闲块交换。与日志块的回收操作是指将日志块的数据更新到新的数据块,或者将日志块的数据整理到新的日志块。
[0024]始终保持一定数量的空闲块作为备份,以保证物理块表不空,逻辑映射表能保持滚动;
本实施的具体工作过程为:
1.定义冗余字节:如表1字节O标记损坏的块;字节1,2存放逻辑块编号信息,占用两个Byte ,具体又分三部分。
冗余ISByte字节定义
【权利要求】
1.一种闪存的管理方法,其特征在于,包括以下步骤: 扫描闪存的物理块,扫描后的物理块被分为数据块和空闲块,所述数据块用于存储数据; 对所述数据块分配逻辑编号; 建立数据块映射表,用于关联所述数据块的逻辑编号及其物理地址; 对所述空闲块分配逻辑编号; 建立空闲块映射表,用于关联所述空闲块的逻辑编号及其物理地址; 根据预设条件将部分空闲块转换成数据块,并更新所述数据块映射表和空闲块映射表。
2.根据权利要求1所述的管理方法,其特征在于,所述预设条件包括:可供使用的数据块少于预设阈值。
3.根据权利要求2所述的管理方法,其特征在于,根据预设条件将部分空闲块转换成数据块时,将擦写次数较少的空闲块转换成数据块。
4.根据权利要求1所述的管理方法,其特征在于,所述管理方法还包括:根据预设策将部分数据块转换成空闲块,并更新所述数据块逻辑表和空闲块逻辑表。
5.根据权利要求4所述的管理方法,其特征在于,所述预设策略包括:可供使用的空闲块少于预设阈值。
6.根据权利要求5所述的管理方法,其特征在于,根据预设策将部分数据块转换成空闲块时,将擦写次数较多的数据块转换成空闲块。
7.根据权利要求4所述的管理方法,其特征在于,根据预设策将部分数据块转换成空闲块时,将擦写次数较多的数据块与擦写次数较少的空闲块进行数据交换,并将所述擦写次数较多的数据块转换成空闲块,将擦写次数较少的空闲块转换成数据块。
8.—种闪存的管理系统,其特征在于,包括: 扫描模块,用于扫描闪存的物理块,以及将扫描后的物理块分为数据块和空闲块,所述数据块用于存储数据; 数据块管理模块,用于对所述数据块分配逻辑编号以及建立数据块映射表,所述数据块映射表用于关联所述数据块的逻辑编号及其物理地址; 空闲块管理模块,用于对所述空闲块分配逻辑编号以及建立空闲块映射表,所述建立空闲块映射表用于关联所述空闲块的逻辑编号及其物理地址; 转换模块,用于根据预设条件将部分空闲块转换成数据块,并更新所述数据块映射表和空闲块映射表。
9.根据权利要求8所述的管理系统,其特征在于,所述转换模块还用于根据预设策将部分数据块转换成空闲块,并更新所述数据块逻辑表和空闲块逻辑表。
10.根据权利要求8所述的管理系统,其特征在于,所述转换模块根据预设策将部分数据块转换成空闲块时,将擦写次数较多的数据块与擦写次数较少的空闲块进行数据交换,并将所述擦写次数较多的数据块转换成空闲块,将擦写次数较少的空闲块转换成数据块。
【文档编号】G06F12/02GK103678141SQ201210323885
【公开日】2014年3月26日 申请日期:2012年9月5日 优先权日:2012年9月5日
【发明者】徐小华 申请人:深圳市中兴移动通信有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1