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

技术编号:3080521 阅读:161 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开一种可使闪存损耗均衡的方法及其应用,包括步骤:针对每个块的擦写次数,记录其版本;针对每个块的数据更改次数,记录其版本;根据记录的版本号,执行第一预定操作;根据记录的版本号,执行第二预定操作;所述的设定值C为(1/8--1/2)×闪存的寿命次数计算所得;该方法可应用于闪存控制器的固件中,或个人电脑中,或单片机中,也可应用于外接闪存的设备中,该方法可自动或被动地对数据进行搬移;采用上述方法,可以把最不常改动的数据放在剩余使用寿命最短的块上,把最常改动的数据放在剩余使用寿命最长的块上,并且此过程可以被自动或者主动的执行,以此来达到闪存的磨损均衡,达到提高闪存的使用寿命的目的。

【技术实现步骤摘要】

本专利技术涉及闪存存储领域,尤指一种可使闪存损耗均衡的方法及其 应用。
技术介绍
闪存闪存是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的取值,可以有效的控制额外移动块的次数,采 用一定的本文档来自技高网
...

【技术保护点】
一种可使闪存损耗均衡的方法,包括步骤: 针对每个块的擦写次数,记录其版本; 针对每个块的数据更改次数,记录其版本; 根据记录的版本号,执行第一预定操作; 根据记录的版本号,执行第二预定操作。

【技术特征摘要】
1、一种可使闪存损耗均衡的方法,包括步骤针对每个块的擦写次数,记录其版本;针对每个块的数据更改次数,记录其版本;根据记录的版本号,执行第一预定操作;根据记录的版本号,执行第二预定操作。2、 如权利要求1所述的一种可使闪存损耗均衡的方法,其特征在 于所述的第一预定操作包括以下步骤找出数据区数据版本最大的块A;找出块版本最小的块B;A和B的块版本差值与设定值C相比;若差值大于C,交换块A和块B的数据。3、 如权利要求1所述的一种可使闪存损耗均衡的方法,其特征在 于所述的第二预定操作包括以下步骤找出数据区数据版本最小的块E;找出块版本最大的块F;E和F的块版本差值与设定值C相比;若差值大于C,交换块E和块F的数据。4、 如权利...

【专利技术属性】
技术研发人员:翁俊宏范勤
申请(专利权)人:芯邦科技深圳有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利