NAND Flash存储器的坏块管理方法和系统技术方案

技术编号:23342547 阅读:34 留言:0更新日期:2020-02-15 03:37
本发明专利技术涉及一种NAND Flash存储器的坏块管理方法和系统,所述包括步骤:探测定位BBT;建立BBT;利用所述BBT管理继发坏块,和更新与备份BBT;其中,所述探测定位BBT的步骤进一步包括:探测所述存储器的最大的块索引号;反向逐个扫描块,检查和标记坏块,并定位BBT的建立地址;所述建立BBT的步骤进一步包括:根据坏块的索引号和总的块坏数量,生成包含替换块和坏块之间的映射关系的所述BBT,并存储于上述地址所对应的块。本发明专利技术可降低产品使用损耗速率和出现继发坏块的机率,进而提高产品使用寿命。

Bad block management method and system of NAND flash memory

【技术实现步骤摘要】
NANDFlash存储器的坏块管理方法和系统
本专利技术涉及数据存储
,特别涉及一种NANDFlash存储器的坏块管理方法和系统。
技术介绍
NANDFlash芯片中,擦除的基本存储单位称作块(Block),不能正常读写数据的块被称为坏块(BadBlock)。由于制造工艺的限制,芯片个别块在擦除操作后,存储单元中的电位会出现无法达到期望值以备后继数据写入的情况,此时这个块已经不能进行正常数据读写操作,我们称这样的块叫做坏块。再由于出厂良品率控制等原因,在行业应用时允许芯片出厂时带有有限个数的坏块。因此在基于NANDFlash的产品设计中,必须考虑坏块的管理,避免将数据写入到坏块中而造成数据丢失。NANDFlash的坏块种类一般分为两种,一种是制造时由于工艺原因导致,出厂时就已经有的坏块,我们称其为原生坏块。另一种是在使用过程中由于操作电压或操作次数超过限制等原因导致出现的失效块,我们称其为继发坏块。在目前已知的坏块管理方案中,检测并跳过坏块,仅将数据写入到好的块的方案最简单,被NANDFlash烧录器以及轻量级驱动软件广泛应用。适用于管理原生坏块。对于继发坏块,如果也使用跳过坏块的方案,则需要将目标坏块以后有效数据整体向后移,庞大的数据转移量将耗费大量的操作时间和块操作寿命。为了能够处理继发坏块,通常会使用BBT(BadBlockTable,坏块映射表)的办法,使用备用块来替换坏块的方案,但是由于NANDFlash芯片容量有大有小,备用区域块的大小和位置各异,以及替换方案的灵活多变等原因,不同的设备、厂家之间所使用的替换方案无法统一,因此它不适用原生坏块的管理,仅适用于管理继发坏块。现有的基于NANDFlash芯片的系统中,采用仅跳过原生坏块的方法来管理坏块时,在发生继发坏块时会导致系统失效。在继发坏块替换方案的系统中,会有固定数据区与备份区的设计,牺牲一定的存储空间换取NANDFlash数据的安全性。但是NANDFlash发生继发性坏块的位置具有随机性,固定的数据区和备份区往往无法最大化利用Flash的空间,同时,数据区和备份区的操作寿命会相差巨大:数据区会因频繁的擦写操作而较早达到擦写操作的寿命极限,从而出现继发坏块,最终导致数据的丢失风险增加,而备份区冗余的空闲空间却无法得到充分利用。
技术实现思路
基于此,有必要提供一种NANDFlash存储器的坏块管理方法和系统,可降低产品使用损耗速率和出现继发坏块的机率,进而提高产品使用寿命。为实现上述专利技术目的,本专利技术采用以下技术方案。本专利技术提供一种NANDFlash存储器的坏块管理方法,包括步骤:探测定位BBT;建立BBT;利用所述BBT管理继发坏块,和更新与备份BBT;其中,所述探测定位BBT的步骤进一步包括:探测所述存储器的最大的块索引号;反向逐个扫描块,检查和标记坏块,并定位BBT的建立地址;所述建立BBT的步骤进一步包括:根据坏块的索引号和总的块坏数量,生成包含替换块和坏块之间的映射关系的所述BBT,并存储于上述地址所对应的块;所述利用所述BBT管理继发坏块的步骤进一步包括:新的坏块产生后,以所述BBT所在块为起点,反向检索最接近的可用块,将所述可用块代替所述新的坏块,并将所述可用块与新的坏块之间的映射关系更新到所述BBT;所述更新与备份BBT的步骤进一步包括:采用冗余备份机制对所述BBT进行更新和备份。上述方法中,所述探测定位BBT的步骤具体包括:读取所述存储器的芯片ID,获取其最大容量,进而得到所述最大的块索引号;以所述最大的块索引号为起点,反向逐个扫描块,检查块坏标记,将第一个可用的块的索引号作为BBT的建立地址;继续反向扫描所有块,获取所有块的索引号和总的块坏数量;检查上述地址内是否存在有效的BBT,若是,读取BBT内容并根据所述所有块的索引号和总的块坏数量更新所述BBT;否则,执行建立BBT的步骤。上述方法中,所述建立BBT的步骤具体包括:反向扫描块数量到所述存储器的最大坏块限制数后,如仍未发现有效的BBT,则判断所述存储器中无有效的BBT;根据所述所有块的索引号和总的块坏数量,并使用正向跳过坏块的方法计算出每个不在原位置的数据块的替换块的索引号,生成替换块与原位置的坏块之间的映射关系表,以建立新的BBT。上述方法中,所述利用BBT管理继发坏块的步骤具体包括:所述新的坏块产生后,使用0x00对该坏块进行标记;检查坏块总数是否超过阈值,若否,则以所述BBT所在块为起点,反向检索最接近的可用块,将所述可用块代替所述新的坏块,并将所述可用块与新的坏块之间的映射关系更新到所述BBT;所述可用块为未写入数据且与坏块无映射关系的块。上述方法中,所述更新与备份BBT的步骤具体包括:以所述BBT所在块为起点,反向检索最接近的备用块;将更新的BBT写入该备用块;擦除原BBT,并在原BBT所在的块写入更新的BBT;擦除所述备用块内的BBT。本专利技术还提供一种NANDFlash存储器的坏块管理系统,包括:定位模块,用于探测定位BBT;创建模块,用于建立BBT;管理模块,用于利用所述BBT管理继发坏块;和更新模块,用于更新与备份BBT;其中,所述定位模块进一步用于:探测所述存储器的最大的块索引号;反向逐个扫描块,检查和标记坏块,并定位BBT的建立地址;所述创建模块进一步用于:根据坏块的索引号和总的块坏数量,生成包含替换块和坏块之间的映射关系的所述BBT,并存储于上述地址所对应的块;所述管理模块进一步用于:新的坏块产生后,以所述BBT所在块为起点,反向检索最接近的可用块,将所述可用块代替所述新的坏块,并将所述可用块与新的坏块之间的映射关系更新到所述BBT;所述更新模块进一步用于:采用冗余备份机制对所述BBT进行更新和备份。上述系统中,所述定位模块具体用于:读取所述存储器的芯片ID,获取其最大容量,进而得到所述最大的块索引号;以所述最大的块索引号为起点,反向逐个扫描块,检查块坏标记,将第一个可用的块的索引号作为BBT的建立地址;继续反向扫描所有块,获取所有块的索引号和总的块坏数量;检查上述地址内是否存在有效的BBT,若是,读取BBT内容并根据所述所有块的索引号和总的块坏数量更新所述BBT;否则,执行建立BBT的步骤。上述系统中,所述创建模块具体用于:反向扫描块数量到所述存储器的最大坏块限制数后,如仍未发现有效的BBT,则判断所述存储器中无有效的BBT;根据所述所有块的索引号和总的块坏数量,并使用正向跳过坏块的方法计算出每个不在原位置的数据块的替换块的索引号,生成替换块与原位置的坏块之间的映射关系表,以建立新的BBT。上述系统中,所述管理本文档来自技高网
...

【技术保护点】
1.一种NAND Flash存储器的坏块管理方法,其特征在于,包括步骤:/n探测定位BBT;/n建立BBT;/n利用所述BBT管理继发坏块,和/n更新与备份BBT;/n其中,所述探测定位BBT的步骤进一步包括:/n探测所述存储器的最大可用块的块索引号;/n反向逐个扫描块,检查和标记坏块,并定位BBT的建立地址;/n所述建立BBT的步骤进一步包括:/n根据坏块的索引号和总的块坏数量,生成包含替换块和坏块之间的映射关系的所述BBT,并存储于上述最大可用块索引号所对应的块;/n所述利用所述BBT管理继发坏块的步骤进一步包括:/n新的坏块产生后,以所述BBT所在块为起点,反向检索最接近的可用块,将所述可用块代替所述新的坏块,并将所述可用块与新的坏块之间的映射关系更新到所述BBT;/n所述更新与备份BBT的步骤进一步包括:/n采用冗余备份机制对所述BBT进行更新和备份。/n

【技术特征摘要】
1.一种NANDFlash存储器的坏块管理方法,其特征在于,包括步骤:
探测定位BBT;
建立BBT;
利用所述BBT管理继发坏块,和
更新与备份BBT;
其中,所述探测定位BBT的步骤进一步包括:
探测所述存储器的最大可用块的块索引号;
反向逐个扫描块,检查和标记坏块,并定位BBT的建立地址;
所述建立BBT的步骤进一步包括:
根据坏块的索引号和总的块坏数量,生成包含替换块和坏块之间的映射关系的所述BBT,并存储于上述最大可用块索引号所对应的块;
所述利用所述BBT管理继发坏块的步骤进一步包括:
新的坏块产生后,以所述BBT所在块为起点,反向检索最接近的可用块,将所述可用块代替所述新的坏块,并将所述可用块与新的坏块之间的映射关系更新到所述BBT;
所述更新与备份BBT的步骤进一步包括:
采用冗余备份机制对所述BBT进行更新和备份。


2.如权利要求1所述的坏块管理方法,其特征在于,所述探测定位BBT的步骤具体包括:
读取所述存储器的芯片ID,获取其最大容量,进而得到所述最大的块索引号;
以所述最大的块索引号为起点,反向逐个扫描块,检查每个块的块坏标记,将第一个可用的块的索引号作为BBT的建立地址;
继续反向扫描所有块,获取所有块的索引号和总的块坏数量;
检查上述地址内是否存在有效的BBT,若是,读取BBT内容并根据所述所有块的索引号和总的块坏数量更新所述BBT;否则,执行建立BBT的步骤。


3.如权利要求2所述的坏块管理方法,其特征在于,所述建立BBT的步骤具体包括:
反向扫描块数量到所述存储器的最大坏块限制数后,如仍未发现有效的BBT,则判断所述存储器中无有效的BBT;
根据所述所有块的索引号和总的块坏数量,并使用正向跳过坏块的方法计算出每个不在原位置的数据块的替换块的索引号,生成替换块与原位置的坏块之间的映射关系表,以建立新的BBT。


4.如权利要求1所述的坏块管理方法,其特征在于,所述利用BBT管理继发坏块的步骤具体包括:
所述新的坏块产生后,使用0x00对该坏块进行标记;
检查坏块总数是否超过阈值,若否,则以所述BBT所在块为起点,反向检索最接近的可用块,将所述可用块代替所述新的坏块,并将所述可用块与新的坏块之间的映射关系更新到所述BBT;所述可用块为未写入数据且与坏块无映射关系的块。


5.如权利要求1所述的坏块管理方法,其特征在于,所述更新与备份BBT的步骤具体包括:
以所述BBT所在块为起点,反向检索最接近的备用块;
将更新的BBT写入该备用块;
擦除原BBT,并在原BBT所在的块写入更新的BBT;
...

【专利技术属性】
技术研发人员:夏超仁李康养
申请(专利权)人:深圳市友华通信技术有限公司
类型:发明
国别省市:广东;44

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

1