一种可使闪存损耗均衡的方法及其应用的制作方法

文档序号:6777653阅读:126来源:国知局
专利名称:一种可使闪存损耗均衡的方法及其应用的制作方法
技术领域
本发明涉及闪存存储领域,尤指一种可使闪存损耗均衡的方法及其 应用。
背景技术
闪存闪存是FLASH RAM的音译。闪存作为一种非挥发性(简单说 就是在不加电的情况下数据也不会丟失,区别于目前常用的计算机内 存)的半导体存储芯片,具有体积小、功耗低、不易受物理破坏的优点, 是移动数码产品的理想存储介质。
闪存的结构,为是由很多个块组成,每个块包括一定数目的页,每 一个页均包含一个数据区和冗余区,数据区是用来存储数据,而冗余区 通常被用于ECC、耗损均衡(wear leveling)和其它软件开销功能,尽管 它在物理上与其它页并没有区别。
闪存进行操作,即在向芯片中写数据时,必须先将芯片中对应的内 容清空,然后再写入,也就是通常说的"先擦后写"。另外,其不做改 变的数据是不做搬移的,只有做了改变的数据才会进行搬移,由于闪存 擦写的次数都是有限的,这样,经常做搬移的闪存数据块就会较不做改 变的数据块提前接近数据寿命,经常会出现写操作失败;到达数据寿命 时,闪存内部存放的数据虽然可以读,但是不能再进行写操作了。
以现代的操作系统为例子,例如unix,有超过50%的数据是不会 改动的,这些数据包括系统核心,应用程序,字体……常改动的数据 包括用户数据,系统配置数据,记录数据......
现有的闪存操作方式,其闪存的磨损是不均衡的,有的闪存块寿命 已接近数据寿命,但有的闪存块的寿命还一次都没擦除过。

发明内容
本发明提供了 一种可使闪存损耗均衡的方法及其应用,其可克服现 有闪存缺陷,提高闪存数据寿命。
为了实现上述发明的目的,本发明所釆用的技术方案为
一种可使闪存损耗均衡的方法,包括步骤
针对每个块的擦写次数,记录其版本;
针对每个块的数据更改次数,记录其版本;
根据记录的版本号,执行第一预定操作;
根据记录的版本号,执行第二预定操作。
所述的第 一预定操作包括以下步骤
找出数据区数据版本最大的块A;
找出块版本最小的块B;
A和B的块版本差值与设定值C相比;
若差值大于C,交换块A和块B的数据。
所述的第二预定操作包括以下步骤
找出数据区数据版本最小的块E;
找出块版本最大的块F;
E和F的块版本差值与设定值C相比;
若差值大于C,交换块E和块F的数据。
所述的设定值C为(1/8--1/2) x闪存的寿命次数计算所得。
所述的一种可使闪存损耗均衡的方法的应用,该方法可应用于闪存 控制器的固件中。
所述的一种可使闪存损耗均衡的方法的应用,该方法可应用于个人 电脑中。
所述的一种可使闪存损耗均衡的方法的应用,该方法可应用于单片 机中。
所述的一种可使闪存损耗均衡的方法的应用,该方法可应用于外接
闪存的i殳备中。
所述的方法可自动或净皮动地对数据进行搬移。
采用上述方法,可以把最不常改动的数据放在剩余使用寿命最短的 块上,把最常改动的数据放在剩余使用寿命最长的块上,并且此过程可 以被自动或者主动的执行,以此来达到闪存的磨损均衡,达到提高闪存 的使用寿命的目的。


图1为本发明方法的流程示意图2为本发明方法第一预定操作的流程示意图3为本发明方法第二预定操作的流程示意图4为一闪存块的初始状态图5为图4所示块修改一次后的状态图6为图4所示块进行第一预定操作后的状态图7为图4所示块进行第二预定操作后的状态图8为将凝:据块移动到空闲块的移动前的示意图9为将数据块移动到空闲块的移动后的示意图IO为凝:据块和数据块交换的移动前的示意图11为数据块和数据块交换的移动后的示意图。
具体实施例方式
如图1所示,本发明公开一种可使闪存损耗均衡的方法,包括以下 步骤
步骤101:针对每个块的擦写次数,记录其版本;
步骤102:针对每个块的数据更改次数,记录其版本;
步骤103:根据记录的版本号,执行第一预定操作;
步骤104:根据记录的版本号,执行第二预定操作。
如图2所示,所述的第一预定操作包括以下步骤
步骤201:找出数据区数据版本最大的块A;
步骤202:找出块版本最小的块B;
步骤203: A和B的块版本差值与设定值C相比;
步骤204:若差值大于C,交换块A和块B的数据。
如图3所示,所述的第二预定操作包括以下步骤
步骤301:找出数据区数据版本最小的块E;
步骤302:找出块版本最大的块F;
步骤303: E和F的块版本差值与设定值C相比;
步骤304:若差值大于C,交换块E和块F的数据。
所述的设定值C为(1/8—1/2) x闪存的寿命次数计算所得。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和
实施方式对本发明作进一步的详细说明。
首先,执行步骤101:针对每个块的擦写次数,记录其版本; 针对每个块的擦写次数,记录其版本为Vb,版本数越大,表示该块
被擦写的次数越多,该块剩下的使用寿命越短。
执行步骤102:针对每个块的数据更改次数,记录其版本; 针对每个块的数据记录的更改次数,记录其版本Vd,版本数越大,
表示该块的数据越常改动。
其次,执行步骤103:根据记录的版本号,执行第一预定操作; 如图4所示,其为一数据区和空闲区的初始状态图,其记录了每个
块的擦写次数,记录了版本;当不使用本方法的情况下,假设该闪存的
块寿命是4002次,若此时需要修改Vd-100所在的块,修改后变成如图
5所示的坏块。
若采用本发明方法,即执行第一预定操作
步骤201:找出该数据区数据版本Vd最大的块A,在图4的初始状
态图中,数据区数据版本Vd最大的是Vd-100所在的块;
步骤202:找出块版本最小的块B;在图4中,块版本最小的块,
是Vb-100所在的块B; 设定C的值为2000;
步骤203: A和B的块版本差值与设定值C相比;
块A的版本Vb=4000,块B的版本Vb=100, 4000-100与2000相比, 很明显,大于C的值;
步骤204:若差值大于C,交换块A和块B的数据;
经过上面的比较,很明显,块A和块B的块版本差值大于C,将两 个块的数据进行交换。
如图8所示,其为移动前的数据块和空闲块;移动后,其变为如图 9所示的状态,即,其移动规律是搬移后Vd不变,目标块Vb+l;
若为数据块和数据块的交换,如图10所示,其为移动前的两数据 块状态;移动后,其变为如图11所示的状态,即,其移动规律是搬 移后Vd不变,两个块的Vb+l。
交换后,图4所示的状态变为图6所示的状态再执行步骤104:然后根据记录的版本号,执行第二预定操作;
步骤301:找出数据区数据版本最小的块E;
在图6的状态图中,数据区数据版本最小的块是版本数Vd=5所在 的块;
步骤302:找出块版本最大的块F;
在图6的状态图中,块版本最大的块是版本数Vb-4000所在的块;
步骤303: E和F的块版本差值与设定值C相比;
块E的块版本值为1000,块F的块版本值是4000; 4000-1000与 2000相比,很明显,大于C的值;
步骤304:若差值大于C,交换块E和块F的数据
经过上面的比较,很明显,块E和块F的块版本差值大于设定的C 值,将两个块的数据进^f亍交换,交换后的数据状态图如图7所示。
通过执行第一预定操作和第二预定操作,在图4中,Vd-100的块是
改动最频繁的块,其通过交换,已被交换到版本最小的块Vb=101上, Vd=5的块是最不常改动的块,其通过交换,被交换到版本最大的块 Vb=4001上。
另外,适当调整C的取值,可以有效的控制额外移动块的次数,采 用一定的算法,我们能^fc额外的次数控制在20%左右。
另外,使用本方法时,其可应用于闪存控制器的固件中,或者应用 于个人电脑中,或应用于单片机中,或应用于外接闪存的设备中。
再者,该方法可自动或被动地对数据进行搬移。
采用上述方法,可以把最不常改动的数据放在剩余使用寿命最短的 块上,把最常改动的数据放在剩余使用寿命最长的块上,并且此过程可 以被自动或者主动的执行,以此来达到闪存的磨损均衡,达到提高闪存 的使用寿命的目的。
另外,其也可以先执行步骤104,再执行步骤103。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明 有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这 些变形和变化而不脱离本发明的精神。
权利要求
1、一种可使闪存损耗均衡的方法,包括步骤针对每个块的擦写次数,记录其版本;针对每个块的数据更改次数,记录其版本;根据记录的版本号,执行第一预定操作;根据记录的版本号,执行第二预定操作。
2、 如权利要求1所述的一种可使闪存损耗均衡的方法,其特征在 于所述的第一预定操作包括以下步骤找出数据区数据版本最大的块A;找出块版本最小的块B;A和B的块版本差值与设定值C相比;若差值大于C,交换块A和块B的数据。
3、 如权利要求1所述的一种可使闪存损耗均衡的方法,其特征在 于所述的第二预定操作包括以下步骤找出数据区数据版本最小的块E;找出块版本最大的块F;E和F的块版本差值与设定值C相比;若差值大于C,交换块E和块F的数据。
4、 如权利要求l、 2或3所述的一种可使闪存损耗均衡的方法,其 特征在于所述的设定值C为(1/8—1/2) x闪存的寿命次数计算所得。
5、 如权利要求4所述的一种可使闪存损耗均衡的方法的应用,其 特征在于该方法可应用于闪存控制器的固件中。
6、 如权利要求4所述的一种可使闪存损耗均衡的方法的应用,其 特征在于该方法可应用于个人电脑中。
7、 如权利要求4所述的一种可使闪存损耗均衡的方法的应用,其 特征在于该方法可应用于单片机中。
8、 如权利要求4所述的一种可使闪存损耗均衡的方法的应用,其 特征在于该方法可应用于外接闪存的设备中。
9、如权利要求4所述的一种可使闪存损耗均衡的方法的应用,其 特征在于所述的方法可自动或被动地对数据进行搬移。
全文摘要
本发明公开一种可使闪存损耗均衡的方法及其应用,包括步骤针对每个块的擦写次数,记录其版本;针对每个块的数据更改次数,记录其版本;根据记录的版本号,执行第一预定操作;根据记录的版本号,执行第二预定操作;所述的设定值C为(1/8--1/2)×闪存的寿命次数计算所得;该方法可应用于闪存控制器的固件中,或个人电脑中,或单片机中,也可应用于外接闪存的设备中,该方法可自动或被动地对数据进行搬移;采用上述方法,可以把最不常改动的数据放在剩余使用寿命最短的块上,把最常改动的数据放在剩余使用寿命最长的块上,并且此过程可以被自动或者主动的执行,以此来达到闪存的磨损均衡,达到提高闪存的使用寿命的目的。
文档编号G11C16/06GK101364437SQ20071007554
公开日2009年2月11日 申请日期2007年8月7日 优先权日2007年8月7日
发明者翁俊宏, 勤 范 申请人:芯邦科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1