一种低资源占用的NANDFlash负载均衡算法的制作方法

文档序号:6585096阅读:534来源:国知局
专利名称:一种低资源占用的NAND Flash负载均衡算法的制作方法
技术领域
本 发明专利涉及一种负载均衡算法,尤其是嵌入式设备中NAND Flash的负载均衡算法。
背景技术
由于NAND Flash自身的物理特性,造成各块的擦写寿命有限,典型的NANDFlash 每块擦写寿命在万次左右,故需要靠控制NAND Flash芯片的驱动来进行优化,负载均衡 (Wear Leveling)算法就是NAND Flash控制芯片技术上的一项重要设计,可以将写入的资 料平均在每一个NAND Flash块上,而不是重复写入同一个块,造成NAND Flash单块的集中 大量磨损,可以顺利延长NAND Flash的使用寿命,因此负载均衡技术几乎是NAND Flash控 制芯片驱动设计上的必备。目前,公知的NAND Flash负载均衡算法主要分为两大类,一类是动态负载均衡算 法,一类是静态负载均衡算法。动态负载均衡算法的思想主要是每次写入都挑选目前擦写 次数最少的块进行写入,以达到负载均衡的目的,但是这样只能均衡那些空闲的没有内容 占据的块,而那些长时间有内容占据的块并没有加入到负载均衡中来,依然无法达到负载 均衡的目的;因此引入另外一类负载均衡算法,也就是静态负载均衡算法,这种算法主要功 能是将那些长期被固定内容占据的块也引入到负载均衡中来,真正做到基于所有的块进行 负载均衡。目前常用的负载均衡算法往往综合利用上述两类负载均衡的思想,同时进行动 态和静态的负载均衡,但是一般的负载均衡算法,由于需要保存各块的擦写次数,而这个擦 写次数又需要保存在内存和NAND Flash中,会造成大量的资源耗费,试想一个拥有8000 个块的NAND Flash,每个块的擦写次数需要一个32位的整型的变量,总共需要占用32KB的 空间用来保存这些擦写次数,这在存储资源十分有限的嵌入式设备中是不合适的,同时这 些擦写次数也需要保存在NAND Flash中,同样占据了 Flash中的空间,并且由于更新这些 擦写次数,带来了大量的擦写工作,加快了 NAND Flash寿命的消耗。

发明内容
为了克服现有的NAND Flash负载均衡算法资源消耗过多的问题,本发明提供一种 新的NAND Flash负载均衡算法,该负载均衡算法不仅能实现NAND Flash各块均衡擦写,而 且极大的减小了由于实现负载均衡而造成的资源消耗和占用。本发明解决其技术问题所采用的技术方案是在保存NAND Flash各块的擦写次 数时,并不保留其绝对值,而是保留其一定范围之内的相对关系一定的擦写次数值。用8位 的字符型变量来保存各块的相对擦写次数,由于是相对擦写次数,我们可以限定其的范围, 由于考虑到char型变量的上限是255,所以我们限定相对擦写次数的上限也为255,这个上 限可以根据情况进行调整。当一个块的擦写次数达到255次时,遍历NAND Flash中所有的 块,找出最小擦写次数的块,如果最小擦写次数的块的擦写次数为零,那么进行静态负载均 衡换块操作,将具有最大擦写次数块中的内容与最小擦写次数块中的内容互换,以达到负载均衡的目的。如果最小擦写次数块的擦写次数非零,则将所有块的擦写次数分别减去最 小擦写次数求得相对值作为新的擦写次数保存。采用相对值既反应出各块擦写次数的差 异,同时又最大限度节省了用来保存各块擦写次数的开销。本发明的有益 效果是,可以在均衡NAND Flash各块擦写次数延长使用寿命的同 时,尽可能降低了由于实现负载均衡算法而造成的资源消耗和占用。


下面结合附图和实施例对本发明进一步说明。图一是本发明的操作流程方框图。图二是本发明的效用性能图。
具体实施例方式如图1所示,本发明的负载均衡算法完整的流程是当收到一个块擦除请求,判断 该块的擦除次数是否已经达到255,如果达到了 255次,那么遍历所有的块找出所有块中擦 写次数最小的块,判断最小擦写次数是否为零,若为零则进行静态的负载均衡,每次静态负 载均衡找出NUM组擦写次数最大最小块,若差值超过GATE门限,则进行交换;若最小擦写次 数非零,则所有的块的擦写次数减去擦写次数最小块的擦写次数所得的相对值替换原有的 擦写次数。如图2所示,采用我们的负载均衡算法后,擦写100MB文件3万次后各块的擦写次 数十分平均,严格的限制在了我们设置的255的门限之中,取得了优异的负载均衡效果,同 时由于每个块只用一个8位的字符型变量来保存擦写次数,极大的降低了资源的占用,相 比较其他负载均衡算法,资源占用率仅为其他负载均衡算法的二分之一或四分之一。
权利要求
1.一种低资源占用的NAND Flash的负载均衡算法,综合采用了动态负载均衡和静态 负载均衡,其特征是在保存各块的擦写次数时,并不保存擦写次数的绝对值,而使用一定 范围之内的相对关系一定的擦写次数值。
2.根据权利要求1所述的NANDFlash的负载均衡算法,其特征是仅使用8位的字符 型变量来保存各块擦写次数的相对值。
3.根据权利要求1所述的负载均衡算法,其特征是利用擦写次数的相对值构成负载 均衡的门限值,使得NAND Flash的所有的块的擦写次数相差不超过该门限值,达到负载均 衡的目的。
全文摘要
一种能够实现NAND Flash负载均衡并且资源占用率低的算法,主要应用于嵌入式设备中。它综合采用了动态负载均衡与静态负载均衡的思想。它不保存NAND Flash各块擦写的绝对次数,而是仅利用相对较少的资源来保存一定范围内的各块擦写的相对次数,通过相对次数的比较来进行负载均衡。
文档编号G06F12/06GK102096640SQ20091024232
公开日2011年6月15日 申请日期2009年12月14日 优先权日2009年12月14日
发明者秦晓康 申请人:秦晓康
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1