一种磨损均衡处理时减少内存开销的方法技术

技术编号:8682650 阅读:202 留言:0更新日期:2013-05-09 02:39
本发明专利技术公开了一种磨损均衡处理时减少内存开销的方法,创建一个磨损均衡表,记录与非闪存中每一个可用块及每一可用块之纠错码的纠错位数,并在对与非闪存操作时更新该磨损均衡表;在磨损均衡处理时,优先使用纠错位数少的可用块。依据本发明专利技术的方法在磨损均衡时能够有效降低内存开销。

【技术实现步骤摘要】

本专利技术涉及一种磨损均衡执行过程中减少内存开销的方法。
技术介绍
在所应用领域中,由于内存开销与磨损均衡相关,因此,在这里首先说明一下磨损均衡,其属于存储管理
,主要应用于当前主流闪存,也就是与非闪存(NANDFlash)。随着数码技术的迅猛发展,应用于数码设备且具有非易失性、编程速度快、擦出时间段、省电且体积小特点的与非闪存得到了广泛的应用。现今,与非闪存是嵌入式系统中一种常用的存储介质,具有体积小、容量大、成本低、掉电数据部丢失等一系列优点。目前已经逐步取代其它半导体存储元件,成为嵌入式系统中的主要数据和程序载体。公知的,与非闪存的读(Read)、写(Program)和擦除(Erase)操作中读和写的基本单位是页,擦除的基本单位是块。对flash的写操作只能在尚未写入的空闲页上进行,并且只能按照从低地址页到高地址页顺序写。如果想要修改某个已经写过的页,只能先擦除整个物理块,然后再写入。然而Flash的物理特征决定了它的可擦写次数是有限的,当前技术条件下块的擦除次数多在10万次到100万次之间,只要有一个块的擦除次数达到了上限,数据存储就变得不可靠,会影响整个闪存的读写效率和性能。为延长flash的使用寿命目前我们主要采用两者策略,一种是应尽量减少对块的擦除次数,即当整个块中的页都被标记为空闲页时再擦除。另一种策略是采用高效的磨损均衡处理(wear-levling)。这里主要涉及磨损均衡方法。专利技术人注意到,与非闪存擦写次数越多,其数据操作出错的概率就越大;闪存的擦写次数和纠错码的纠错位数息息相关,24bits/lKB纠错码纠错时,IKB的数据允许出错小于等于24bits,如果出错超过24bits,那么存放在闪存里面的数据就没法正确的读出来,即使它的擦写次数很低。并且公知的,与非闪存在出厂时就含有允许比例的坏块,也就是还没有进行一次擦写,某些块就已经是坏块。据此可知,单纯使用擦写次数来评价块的状态是不合适的。相比而言,出错概率更具代表性。中国CN102789423A号专利技术专利申请公开整体引用至此,其在
技术介绍
中对当前主要的磨损均衡方法进行了相对较为详细的描述,其共性不可避免的都与块的擦写次数直接关联,显然所对应的磨损均衡方法都是存在瑕疵的。上述CN102789423A号专利技术专利申请首次提出了利用纠错码控制磨损均衡的策略,但其方案仍然需要使用块的可擦写次数,与所述及的现有技术存在同样的问题。与非闪存根据类型不同,可擦写次数会有比较大的差异,大多在1000次和10万次间,在其有的磨损均衡算法中,需要建立块擦写次数表,或者说磨损均衡表,记录每一个可用块及擦写次数。使用时把所述磨损均衡表调入内存,以控制磨损均衡。与非闪存在执行磨损均衡时,主要的内存开销就是磨损均衡表,表项或者说数据结构含有物理块标识及对应的物理块擦写次数,擦写次数需要比较大的数据进行支持,势必会造成内存很大的开销。经研究发现,如果增加闪存主控芯片纠错码的纠错位数,那么闪存的擦写次数的上限也会相应的提高。为了更真实的体现闪存储数据的可靠性,提高整个闪存的读写效率和性能,以及磨损均衡执行时的减少内存开销。因此,需要设计高效的磨损均衡处理策略,尽可能让各闪存块保持相近的损耗以延长闪存的使用寿命的同时,减少内存的开销。
技术实现思路
因此,本专利技术的目的在于提供一种在磨损均衡处理时能够有效降低内存开销的方法。本专利技术采用以下技术方案: ,创建一个磨损均衡表,记录与非闪存中每一个可用块及每一可用块之纠错码的纠错位数,并在对与非闪存操作时更新该磨损均衡表; 在磨损均衡处理时,优先使用纠错位数少的可用块。从以上方案可以看出,依据本专利技术的磨损均衡处理时减少内存开销的方法采用纠错位数取代擦除次数用于评价可用块的当前状况,不仅比擦写次数更能客观的反应可用块的使用状况,而且纠错位数远小于擦写次数,相比而言,信息量很小,从而,在对与非闪存进行操作时,内存映射磨损均衡表所消耗的内存会明显减少,从而对可以有效提高与非闪存的操作速度。再进一步改进的方案中,上述磨损均衡处理时减少内存开销的方法,所述磨损均衡表在与非闪存的可用块当前最大纠错位数达到初始阈值时创建,从而,在创建磨损均衡表前,顺序或者随机使用与非闪存中的各可用块,减少不必要的磨损均衡操作,不仅会使的与非闪存的存取速度加快,而且公知的是磨损均衡不可避免的会产生数据搬运,增加了块的擦写次数,减少磨损均衡操作,也有助于提高与非闪存的整体使用寿命。为了有利于大数据量的连续操作,并减少磨损均衡处理的次数,上述磨损均衡处理时减少内存开销的方法,在创建所述磨损均衡表的同时按照纠错位数的多少对与非闪存进行分池,并优先使用纠错位数较少池中的可用块。进一步地,上述磨损均衡处理时减少内存开销的方法,为了更有效的控制数据的操作,所述池包括第一纠错位数门限限定的冷池、第二纠错位数门限限定的更新池和第三纠错位数门限限定的热池,且第一纠错位数门限 < 第二纠错位数门限 < 第三纠错位数门限,同时保持三池中的可用块数平衡而动态调整三门限值; 进而,所述冷池与所述热池间进行静态磨损均衡操作,热池与更新池之间进行动态的磨损均衡操作,更新池与冷池间进行基于相应门限约束的可用块归属操作。上述磨损均衡处理时减少内存开销的方法,优选地,所述静态磨损均衡操作包括:把冷池中纠错位数值小的可用块和热池中纠错位数值最大的可用块进行数据交换的第一操作和把冷池中的冷数据和热池中的热数据进行交换的第二操作; 所述动态磨损均衡为当更新池中的可用块的纠错位数达到所述第二纠错位数门限时,把该可用块归入所述热池;而更新池与冷池间基于门限的可用块归属操作则是在更新池中的可用块达到第一纠错位数门限时,把该可用块归入所述更新池;当调整门限时,纠错位数低于所述第一纠错位数门限的可用块归入所述冷池。上述磨损均衡处理时减少内存开销的方法,还包括备用池,该备用池分配入留作备用的空闲块以及纠错位数达到设定位数的空闲块; 进而,当热池与冷池间进行静态磨损均衡操作时,在冷池的可用块消耗完的情况下,备用池与热池间进行静态磨损均衡操作; 进而,当冷池中的数据块被擦除后,且该块纠错位数没有达到第一门限值时,用于补偿备用池。上述磨损均衡处理时减少内存开销的方法,所述第一门限值小于2 \-Τ,第二门限值为2 >Τ,第三门限值为T,其中Ti为静态阈值,T为动态阈值; T与与非闪存中可用块的当前最大纠错位数Mt正相关,而在每次磨损均衡操作时设定,静态阈值Ti与动态阈值正相关,且初始的静态阈值即为所述初始阈值。上述磨损均衡处理时减少内存开销的方法,动态阈值T=aMt/(l+bMt)+ Ti ;静态阈{t Ti=(^bMt)Z(BMt)+T ; 其中a〈0,b〈-l,且a_4b ^ 4,Mt为当前可用块最大的纠错位数,取当前与非闪存允许的最大纠错位数Tm彡8qa-Tmb彡0,其中q为工艺因子,且q e ;静态阈值Ti和动态阈值T均不大于允许的最大纠`错位数Tm。上述磨损均衡处理时减少内存开销的方法,所述磨损均衡表为一个数组,对应的数组元素为与非闪存的可用块的纠错位数,且数组的最后一个数组元素为当前最大的纠错位数。附图说明图1为磨损均衡表的映射关系。图2为池的转换关系。具本文档来自技高网
...

【技术保护点】
一种磨损均衡处理时减少内存开销的方法,其特征在于,创建一个磨损均衡表,记录与非闪存中每一个可用块及每一可用块之纠错码的纠错位数,并在对与非闪存操作时更新该磨损均衡表;在磨损均衡处理时,优先使用纠错位数少的可用块。

【技术特征摘要】

【专利技术属性】
技术研发人员:高美洲李峰张洪柳
申请(专利权)人:山东华芯半导体有限公司
类型:发明
国别省市:

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

1