一种闪存设备的数据处理方法及闪存设备的制作方法

文档序号:6552225阅读:195来源:国知局
一种闪存设备的数据处理方法及闪存设备的制作方法
【专利摘要】本发明公开了一种闪存设备的数据处理方法及闪存设备,包括:预设闪存设备中块的磨损冗余度的值为N,所述磨损冗余度N为允许闪存设备中不同块的擦除次数相差的最大值;创建包含N+1个元素的擦除计数表EC(X),将下标值X分别设为0到N,将所述N+1个元素按照所述下标值X从小到大依次排列;根据擦除计数值将所述闪存设备中所有可用空块划分为N+1个队列,将擦除计数值为0的块组成的队列加入EC(0)中,元素EC(1)到EC(N)包含的队列为空;当写入数据时,确定所述擦除计数表中擦除计数值最小且不为空的队列为最小队列,将数据写入所述最小队列的块中。本发明可在写入和删除数据时实现块的磨损平衡,以达到提高使用寿命的目的。
【专利说明】一种闪存设备的数据处理方法及闪存设备

【技术领域】
[0001] 本发明涉及通信领域中闪存【技术领域】,具体地,涉及一种闪存设备的数据处理方 法及闪存设备。

【背景技术】
[0002] 闪存设备是一种可擦除、可重写的电子非易失性存储介质,它已被广泛用于数据 存储系统中。由于闪存设备断电时仍能保存数据,其通常用来保存预设信息,如电脑的 BIOS (基本程序)、PDA (个人数字助理)、数码相机中保存资料等,闪存是一种比硬盘驱动器 更好的存储方案,这在不超过4GB的低容量应用中表现得犹为明显。
[0003] 闪存设备以块(Block)为单位进行擦写操作,闪存的写入操作必须在空白区域进 行,如果目标区域已经有数据,必须先擦除后写入,因此擦除操作是闪存设备的基本操作。 闪存具有编程速度快、擦除时间短、无噪音、散热小等优点。
[0004] 在现有技术中,对闪存设备进行数据写入和擦除时,存在以下问题:擦除次数有 限,一个典型的闪存可以被可靠的擦除最多100000 (SLC,Single Layer Cell,单层单元)和 3000 (MLC,Multi-Level Cell,多层单元)次;现有技术中不能对闪存设备的块进行有效管 理,导致闪存设备中所有块的擦写次数不均衡,降低了闪存设备的使用寿命。


【发明内容】

[0005]为了解决现有技术中存在的闪存设备内部块擦除次数不均衡导致的使用寿命较 低的问题,本发明提出了一种闪存设备的数据处理方法及闪存设备。
[0006] 本发明的闪存设备的数据处理方法,包括:
[0007] 预设闪存设备中块的磨损冗余度的值为N,所述磨损冗余度N为允许闪存设备中 不同块的擦除次数相差的最大值;
[0008] 创建包含N+1个元素的擦除计数表EC (X),将下标值X分别设为0到N,将所述N+1 个元素按照所述下标值X从小到大依次排列;
[0009] 根据擦除计数值将所述闪存设备中所有可用空块划分为N+1个队列,将擦除计数 值为〇的块组成的队列加入EC(0)中,元素 EC⑴到EC(N)包含的队列为空;
[0010] 当写入数据时,确定所述擦除计数表中擦除计数值最小且不为空的队列为最小队 列,将数据写入所述最小队列的块中。
[0011] 本发明的闪存设备的数据处理方法,利用磨损冗余度,可以控制闪存中块的擦除 次数相差的最大值。通过设定磨损冗余度的值,可在写入和删除数据时实现块的磨损平衡。 磨损冗余度可以根据产品不同的用途来设定,值越小,磨损越均衡,从而使闪存设备中所有 块的擦除次数均衡,以达到提高使用寿命的目的。
[0012] 本发明的闪存设备,包括:
[0013] 冗余度预设模块,用于预设闪存设备中块的磨损冗余度的值为N,所述磨损冗余度 N为允许闪存设备中不同块的擦除次数相差的最大值;
[0014] 计数表创建模块,用于创建包含N+1个元素的擦除计数表EC(X),将下标值X分别 设为0到N,将所述N+1个元素按照所述下标值X从小到大依次排列;
[0015] 队列划分模块,用于根据擦除计数值将所述闪存设备中所有可用空块划分为N+1 个队列,将擦除计数值为〇的块组成的队列加入EC(0)中,元素 EC(1)到EC(N)包含的队列 为空;
[0016] 数据写入模块,用于当写入数据时,确定所述擦除计数表中擦除计数值最小且不 为空的队列为最小队列,将数据写入所述最小队列的块中。
[0017] 本发明的闪存设备,利用磨损冗余度,可以控制闪存中块的擦除次数相差的最大 值。通过设定磨损冗余度的值,可在写入和删除数据时实现块的磨损平衡。磨损冗余度可 以根据产品不同的用途来设定,值越小,磨损越均衡,从而使闪存设备中所有块的擦除次数 均衡,以达到提高使用寿命的目的。
[0018] 本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变 得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明 书、权利要求书、以及附图中所特别指出的结构来实现和获得。
[0019] 下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

【专利附图】

【附图说明】
[0020] 附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实 施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
[0021] 图1为本发明的方法流程图;
[0022] 图2为本发明实施例的擦除计数表的结构示意图;
[0023] 图3为本发明实施例的擦除计数表中队列结构示意图;
[0024] 图4为本发明实施例的块移动的示意图;
[0025] 图5为本发明实施例的队列移动的示意图;
[0026] 图6为本发明的闪存设备的结构示意图;
[0027] 图7为本发明的擦除计数表中队列结构示意图。

【具体实施方式】
[0028] 下面结合附图,对本发明的【具体实施方式】进行详细描述,但应当理解本发明的保 护范围并不受【具体实施方式】的限制。
[0029] 为了解决现有技术中存在的闪存设备内部块擦除次数不均衡导致的使用寿命较 低的问题,本发明提出了一种闪存设备的数据处理方法及闪存设备。
[0030] 对于闪存设备写操作比较多的应用,可以对每个块(block)进行监测,从而使每 个block的擦写次数比较平均,避免出现有的block擦写次数过多,而有的block擦写次数 过少,进而提高闪存设备的寿命。本发明主要是针对闪存设备中的空block,动态调整闪存 设备中不同块的擦除磨损。下面的例子可以说明写平衡是如何提高闪存设备的寿命的:
[0031] 假设一个MLC闪存中有4096个block,要写一个占用100个block大小的文件,每 10分钟更新一次,写在同一个位置。
[0032] 没有写平衡方法时,闪存的生命周期是:
[0033] 生命周期(天)=(NAND闪存尺寸*擦除次数八每天写入block数量)
[0034] 那么生命周期是:(100个block*3, 000次擦除)八100个block*6次/小时*24小 时/天)=20. 83天
[0035] 有写平衡方法时,擦除的次数可以平均的分配到每一个block上,假设有1000个 块可以参与写平衡,那么新的生命周期是:
[0036] (1000个block*3, 000次擦除 V(100个block*6次/小时*24小时/天)=200. 83 天。
[0037] 如图1所示,本发明的闪存设备数据处理方法包括:
[0038] 步骤S101 :初始化所述闪存设备,将所述闪存设备中所有空块的擦除计数值清 零。
[0039] 闪存设备初始化之后,所有可用空块的擦除计数值均为0,擦除计数值为对块进行 擦除操作的次数。
[0040] 步骤S102 :预设闪存设备中块的磨损冗余度的值为N ;
[0041] 磨损冗余度是指允许闪存设备中不同块的擦除次数值相差的最大值,具体的,N的 值由闪存设备的用途以及主控、使用环境决定。
[0042] 步骤S103 :创建包含N+1个元素的擦除计数表EC(X),将下标值X分别设为0到N, 将所述N+1个元素按照所述下标值X从小到大依次排列;
[0043] 具体的,如图2所示,该擦除计数表包含EC(0)、EC(1)……EC (N)等N+1个元素,将 该表中各元素按照上述顺序依次从小到大排列。
[0044] 步骤S104 :根据擦除计数值将所述闪存设备中所有可用空块划分为N+1个队列, 将擦除计数值为〇的块组成的队列加入EC(0)中,元素 EC(1)到EC(N)包含的队列为空;
[0045] 具体的,如图7所示,为擦除计数表中每个队列的结构示意图。每个队列包含闪存 中的若干物理块,每一个块都有寄存器来记录块的擦除次数,在同一队列中,所有块的擦除 计数值是相同的。如图3所示,在本实施例中,闪存设备初始化后,所有空块的擦除计数值 均清零,因此,将所有空块组成一个队列加入元素 EC(0)中,其余元素 EC(1)到EC(N)的队 列为空。
[0046] 步骤S105 :当写入数据时,确定所述擦除计数表中擦除计数值最小且不为空的队 列为最小队列,将数据写入所述最小队列的块中;
[0047] 具体的,将数据写入闪存设备时,可以设置一个取块指针,用于指向擦除计数值最 小且不为空的队列;采用先进先出的原则,从擦除计数表中选择擦除计数值最小且不为空 的队列,将数据写入该队列的块中。在本实施例中,闪存设备初始化之后,EC(0)中队列的 块的擦除计数值最小,且EC(0)包含的队列不为空,取块指针指向的队列即为EC(0)中的队 列,即将数据写入EC(0)中队列的块。
[0048] 步骤S106 :当删除数据时,将被删除数据所在块的擦除计数值加1,并将所述被删 除数据所在块移到下一队列中;
[0049] 具体的,块中的数据被删除时,块会重新释放出来,块的擦除计数值加1,将该块的 新的擦除计数值与擦除计数表中的各元素的下标值进行比较,将该块加入到下一队列,即 与新的擦除计数值相应的队列中。如图4所示,当元素 EC(0)中的块block-OXz的数据被 删除后,将该块的擦除计数值加1,并将该块移到EC(1)的队列中。
[0050] 步骤S107 :当所述最小队列中的块全部移出时,将所述最小队列所在的元素移到 所述擦除计数表的末端,重新确定最小队列;
[0051] 具体的,当最小队列中的最后一个块被移出时,将该队列所在的元素的下标值修 改为N+1,并将该元素移到擦除计数表的末端,如图5所示,在本实施例中,当初始化之后, 最小队列为元素 EC(0)的队列,当EC(0)的最后一个块被移出时,将EC(0)修改为EC(N+1), 并移到擦除计数表的末端,此时擦除计数表中的元素变为EC (1)、EC (2)……EC (N+1)等N+1 个元素,取块指针指向EC(1)中的队列,如果EC(1)为空,将EC(1)移到擦除计数表的末端, 依次类推。
[0052] 再次进行数据写入时,重新选择擦除计数值最小且不为空的队列,循环执行上述 步骤S101-S106,即可实现闪存设备的擦除磨损均衡。
[0053] 本发明的闪存设备的数据处理方法,利用磨损冗余度,可以控制闪存中块的擦除 次数相差的最大值。通过设定磨损冗余度的值,可在写入和删除数据时实现块的磨损平衡。 磨损冗余度可以根据产品不同的用途来设定,值越小,磨损越均衡,从而使闪存设备中所有 块的擦除次数均衡,以达到提高使用寿命的目的。
[0054] 如图6所示,本发明的闪存设备包括:
[0055] 初始化模块,用于初始化所述闪存设备,将所述闪存设备中所有空块的擦除计数 值清零。
[0056] 冗余度预设模块10,用于预设闪存设备中块的磨损冗余度的值为N,所述磨损冗 余度N为允许闪存设备中不同块的擦除次数相差的最大值;
[0057] 计数表创建模块20,用于创建包含N+1个元素的擦除计数表EC (X),将下标值X分 别设为〇到N,将所述N+1个元素按照所述下标值X从小到大依次排列;
[0058] 队列划分模块30,用于根据擦除计数值将所述闪存设备中所有可用空块划分为 N+1个队列,将擦除计数值为0的块组成的队列加入EC(0)中,元素 EC(1)到EC(N)包含的 队列为空;
[0059] 数据写入模块40,用于当写入数据时,确定所述擦除计数表中擦除计数值最小且 不为空的队列为最小队列,将数据写入所述最小队列的块中。
[0060] 数据删除模块50,用于当删除数据时,将被删除数据所在块的擦除计数值加1,并 将所述被删除数据所在块移到下一队列中。
[0061] 队列下沉模块60,用于当所述最小队列中的块全部移出时,将所述最小队列所在 的元素移到所述擦除计数表的末端,重新确定最小队列。
[0062] 本发明的闪存设备,利用磨损冗余度,可以控制闪存中块的擦除次数相差的最大 值。通过设定磨损冗余度的值,可在写入和删除数据时实现块的磨损平衡。磨损冗余度可 以根据产品不同的用途来设定,值越小,磨损越均衡,从而使闪存设备中所有块的擦除次数 均衡,以达到提高使用寿命的目的。
[0063] 本发明能有多种不同形式的【具体实施方式】,上面以图1-图6为例结合附图对本发 明的技术方案作举例说明,这并不意味着本发明所应用的具体实例只能局限在特定的流程 或实施例结构中,本领域的普通技术人员应当了解,上文所提供的具体实施方案只是多种 优选用法中的一些示例,任何体现本发明权利要求的实施方式均应在本发明技术方案所要 求保护的范围之内。
[0064] 最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明, 尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可 以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。 凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的 保护范围之内。
【权利要求】
1. 一种闪存设备的数据处理方法,其特征在于,包括: 预设闪存设备中块的磨损冗余度的值为N,所述磨损冗余度N为允许闪存设备中不同 块的擦除次数相差的最大值; 创建包含N+1个元素的擦除计数表EC (X),将下标值X分别设为0到N,将所述N+1个 元素按照所述下标值X从小到大依次排列; 根据擦除计数值将所述闪存设备中所有可用空块划分为N+1个队列,将擦除计数值为 〇的块组成的队列加入EC(O)中,元素 EC(1)到EC(N)包含的队列为空; 当写入数据时,确定所述擦除计数表中擦除计数值最小且不为空的队列为最小队列, 将数据写入所述最小队列的块中。
2. 根据权利要求1所述的闪存设备的数据处理方法,其特征在于,在所述预设闪存设 备中块的磨损冗余度的值为N之前还包括: 初始化所述闪存设备,将所述闪存设备中所有空块的擦除计数值清零。
3. 根据权利要求1所述的闪存设备的数据处理方法,其特征在于,还包括: 当删除数据时,将被删除数据所在块的擦除计数值加1,并将所述被删除数据所在块移 到下一队列中。
4. 根据权利要求1所述的闪存设备的数据处理方法,其特征在于,还包括: 当所述最小队列中的块全部移出时,将所述最小队列所在的元素移到所述擦除计数表 的末端,重新确定最小队列。
5. -种闪存设备,其特征在于,包括: 冗余度预设模块,用于预设闪存设备中块的磨损冗余度的值为N,所述磨损冗余度N为 允许闪存设备中不同块的擦除次数相差的最大值; 计数表创建模块,用于创建包含N+1个元素的擦除计数表EC (X),将下标值X分别设为 〇到N,将所述N+1个元素按照所述下标值X从小到大依次排列; 队列划分模块,用于根据擦除计数值将所述闪存设备中所有可用空块划分为N+1个队 列,将擦除计数值为0的块组成的队列加入EC(O)中,元素 EC(1)到EC(N)包含的队列为 空; 数据写入模块,用于当写入数据时,确定所述擦除计数表中擦除计数值最小且不为空 的队列为最小队列,将数据写入所述最小队列的块中。
6. 根据权利要求5所述的闪存设备,其特征在于,还包括: 初始化模块,用于初始化所述闪存设备,将所述闪存设备中所有空块的擦除计数值清 零。
7. 根据权利要求5所述的闪存设备,其特征在于,还包括: 数据删除模块,用于当删除数据时,将被删除数据所在块的擦除计数值加1,并将所述 被删除数据所在块移到下一队列中。
8. 根据权利要求5所述的闪存设备,其特征在于,还包括: 队列下沉模块,用于当所述最小队列中的块全部移出时,将所述最小队列所在的元素 移到所述擦除计数表的末端,重新确定最小队列。
【文档编号】G06F3/06GK104102459SQ201410315842
【公开日】2014年10月15日 申请日期:2014年7月3日 优先权日:2014年7月3日
【发明者】罗理坚, 卢明 申请人:优佰特电子科技(无锡)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1