[发明专利]一种维持闪存损耗均衡的方法在审
申请号: | 201410689234.1 | 申请日: | 2014-11-26 |
公开(公告)号: | CN104360957A | 公开(公告)日: | 2015-02-18 |
发明(设计)人: | 周玉洁;韦月 | 申请(专利权)人: | 上海爱信诺航芯电子科技有限公司 |
主分类号: | G06F12/06 | 分类号: | G06F12/06;G11C29/42 |
代理公司: | 上海信好专利代理事务所(普通合伙) 31249 | 代理人: | 张静洁;徐雯琼 |
地址: | 200241 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 维持 闪存 损耗 均衡 方法 | ||
技术领域
本发明涉及一种维持闪存损耗均衡的方法,尤其是指一种次片闪存的损耗均衡管理方法,属于存储技术领域。
背景技术
闪存(Flash Memory)是一种长寿命的非易失性存储器,即在断电情况下仍能保存所存储的数据信息的存储器,通常被用来保存信息,如被用于在移动电话、数码摄像机、游戏机、MP3播放器、个人数字助理(PDA)、数码相机中保存资料等。
闪存在结构上是由很多块(Block)所组成的,每个块中又包括很多页(Page),而每个页的基本存储单元是比特(Bit)。闪存是以块为单位擦除的,并且是以页为单位读写的。为识别闪存中的块是否可用,需要对闪存中的全部块进行扫描。扫描时对闪存块的每个页写入数据,并读出进行数据校验,通过错误检查纠正技术(ECC,Error Correcting Code)判断每页中有多少个比特出错并纠正错误。当每个页中的错误比特少于某个设定值时,由于有错误检查纠正模块支持,出错比特可以被纠正,所以认为这个页可用。当每个块中不可用的页的数目少于某个设定值时,认为这个块可用,但这个可用块的数据出错几率仍然还是要大于完好的不存在错误比特的可用块。因此通过对闪存中的每个块扫描并统计分析,确认可用页及可用块。
正常出厂的闪存,坏的页和坏的块都比较少,并且块内的比特出错也较少,但次片闪存(down-grade flash)扫描后通常能发现块内的坏比特较多。由于闪存在写一个块之前必需要先把块内数据擦除,而闪存块的擦除次数又是有一定限制的,也就是使用寿命;因此,当闪存块的擦除次数大于限制时,块内数据的读写就更容易出错。通常为了避免频繁的对闪存中的某一个块进行读写操作,会使用损耗均衡算法(Wear-leveling)将擦除次数较多的块和擦除次数较少的块进行交换,以使得闪存中各个块的擦除次数比较均衡。但是,通常的损耗均衡算法并没有考虑次片闪存的情况,虽然次片闪存的某些有错误比特的块经过扫描后仍然可以使用,但使用时容易出错,比正常块的出错几率大。因此,本发明提出一种尤其针对次片闪存的损耗均衡管理方法。
发明内容
本发明的目的在于提供一种维持闪存损耗均衡的方法,尤其适用于次片闪存,在进行损耗均衡处理时结合考虑了闪存中每个可用块的实际比特出错情况,减少了比特出错情况较高的可用块的访问次数,提高了闪存的使用寿命和稳定性。
为了达到上述目的,本发明提供一种维持闪存损耗均衡的方法,具体包含以下步骤:
S1、扫描闪存的所有块,经过统计分析得出扫描结果,从中挑选出可用块;
S2、对闪存中经扫描后挑选出的可用块,统计比特出错情况并进行分级,针对每个级别设定相应的擦除次数的初始值;
S3、根据闪存中每个可用块的擦除次数的初始值,将其归类为空闲块或数据块,从而形成空闲块组和数据块组;
S4、进行损耗均衡处理,将数据块组中当前擦除次数最少的数据块和空闲块组中当前擦除次数最多的空闲块进行交换。
所述的S1中,具体包含以下步骤:
S11、对闪存的每个块的每个页写入数据,然后读出数据,再利用错误检查纠正技术判断每个页中有多少个比特出错并记录下来;
S12、判断每个页的比特出错数目是否小于设定值;如当前页的比特出错数小于等于设定值,则确认当前页可用;如当前页的比特出错数大于设定值,则确认当前页不可用;
S13、判断每个块的不可用页的数目是否小于设定值;如当前块的不可用页的数目小于等于设定值,则确认当前块可用;如当前块的不可用页的数目大于设定值,则确认当前块不可用。
所述的S2中,具体包含以下步骤:
S21、统计每个可用块的比特出错情况,并划分错误级别;
S22、对每个错误级别分别设定对应的擦除次数的初始值,错误级别越高,设定的擦除次数的初始值越大;
S23、按照每个可用块所对应的错误级别,分别设定并记录与该错误级别相对应的每个可用块的擦除次数的初始值。
所述的S21中,具体包含以下步骤:
S211、针对闪存中的每个可用块,将其中每个页中的比特出错数目相加,计算得到每个可用块的比特出错总数;
S212、根据每个可用块的比特出错总数划分每个可用块的错误级别,比特出错总数越大,错误级别越高;
S213、记录每个可用块所对应的错误级别。
所述的S22中,设定的擦除次数的初始值必须小于闪存块预先限定的最大擦除次数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海爱信诺航芯电子科技有限公司,未经上海爱信诺航芯电子科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410689234.1/2.html,转载请声明来源钻瓜专利网。