专利名称:一种面向大容量flash固存的坏块管理方法
技术领域:
本发明涉及一种存储器的坏块处理方法,特别是一种大容量FLASH固存 的坏块处理方法。
背景技术:
快速擦写存储器FLASH是目前性能价格比和可靠性最高的可擦写、非易
失存储器。由于存储容量大,FLASH供应商不保证出厂的芯片没有缺陷,而需
要使用者在应用过程中自行识别有缺陷的存储区,并做出相应的处理。由于X
容量FLASH是以块为最高的存储区单位(整个存储体由若干存储块组成,每
个存储块包括若干个存储页,每个存储页含有若干存储字节),所以一般对有缺
陷的存储区也是按块来处理。因此,坏块处理是大容量FLASH应用中的一个 重点和难点。
传统的坏块处理方法是采用顺序替换的方式,如上海交通大学微电子学院 谢凯年在2007年第16期总第255期《现代电子技术》上发表的"超大容量NAND FLASH坏区管理方法的设计与实现" 一文中的图3所示,即若发现当前操作的 存储块的前一个存储块为坏块,则用紧邻的下一个存储块来替换坏块。该种方 法的问题在于每个坏块的替换操作都会影响到后续其他所有存储块的地址映 射,而且不管是有效块还是坏块都必须进行地址映射。因此,在实际应用中, 这种顺序替换的方法使坏块的处理操作变得非常复杂,需要相当多的地址映射 资源和数据处理时间。
发明内容
本发明的技术解决问题是克服现有技术的不足,提供一种硬件资源占用 少、处理速度快的大容量FLASH固存的坏块处理方法。
本发明的技术解决方案是 一种面向大容量FLASH固存的坏块处理方法,其特征在于步骤如下
(1) 建立坏块信息表,用于记录坏块和替换块的地址映射关系;
(2) 设置坏块信息记录指针,用于指示当前遇到的坏块记录位置,起始指 向为坏块信息表的首记录;设置坏块信息操作指针,用于指示当前正在使用的 坏块及与其对应的替换块,起始指向与坏块信息记录指针的起始指向相同;设 置最新替换块寄存器,用于保存最新分配的替换块的地址;
(3) 当存储器出现坏块时,记录该坏块的地址,同时为该坏块指定替换块, 将坏块及其替换块的地址添加至坏块信息表中,最新替换块寄存器指示所述替 换块的地址;替换块的分配从存储器的最高的块地址开始向最低的块地址依次 递减;
(4) 若所述替换块也为坏块,则跳过所述替换块重新分配新的替换块,替 换块为坏块的不再添加至坏块信息表中,最新替换块寄存器指示所述新替换块 的地址并用其替换坏块信息表中的相应记录;
(5) 坏块信息记录指针指向下一记录位置,坏块信息才喿作指针指向当前遇 到的坏块及其替换块的记录位置,若当前操作块未出现在坏块信息表的记录中, 则坏块信息操作指针保留当前指示位置。
(6 )当坏块的数量达到了所能容忍的最大坏块个数或替换块的地址达到了 坏块处理能力上限地址时,提示坏块数量溢出,无法继续处理。 所述的最低的块地址为坏块处理能力上限地址。
所述的坏块处理能力上限地址的确定方法为坏块处理能力上限;1也址=存储
器最高位地址-所能容忍的最大坏块个数+1 ,其中所能容忍的最大坏块个数由用 户设定。
本发明与现有技术相比的优点在于本发明方法通过建立坏块信息表,用 于记录坏块和替换块的地址映射关系,并且替换块的分配从存储器的最高块地 址开始向最低块地址依次递减,与正常数据操作的地址完全独立开,使得某个 坏块的替换操作不会影响到后续其他存储块的地址映射,vA而简化了坏块处理的操作,减少了硬件资源的占用,提高了坏块处理的速度。坏块的处理能力可
由用户根据实际情况确定,操作灵活、筒便。
图1为本发明坏块处理方法的原理框图; 图2为本发明实施例中坏块处理的示意过程图一; 图3为本发明实施例中坏块处理的示意过程图二; 图4为本发明实施例中坏块处理的示意过程图三。
具体实施例方式
如图1所示,为本发明坏块处理方法的原理框图。首先建立坏块信息表, 用于记录坏块和替换块的地址映射关系,并在信息表中设置坏块信息记录指针, 用于指示当前遇到的坏块记录位置,起始指向为坏块信息表的首记录;设置坏 块信息操作指针,用于指示当前正在使用的坏块及与其对应的替换块,起始指
向与坏块信息记录指针的起始指向相同;设置最新替换块寄存器,用于保存最
新分配的替换块的地址;当存储器出现坏块时,记录该坏块的地址,同时为该 坏块指定替换块,将坏块及其替换块的地址添加至坏块信息表中,最新替换块 寄存器指示所述替换块的地址;替换块的分配从存储器的最高的块地址开始向 最低的块地址(坏块处理能力上限地址)依次递减;若所述替换块也为坏块, 则跳过所述替换块重新分配新的替换块,替换块为坏块的不再添加至坏块信息 表中,最新替换块寄存器指示所述新替换块的地址并用其替换坏块信息表中的 相应记录;随后坏块信息记录指针指向下一记录位置,坏块信息操作指针指向 当前遇到的坏块及其替换块的记录位置,若当前操作块未出现在坏块信息表的 记录中,则坏块信息操作指针保留当前指示位置。当坏块的数量达到了所能容 忍的最大坏块个数或替换块的地址达到了坏块处理能力上限地址时,提示坏块 数量溢出,无法继续处理。
坏块处理能力上限地址的确定方法为坏块处理能力上限地址=存^[诸器最高 位地址-所能容忍的最大坏块个数+1,其中所能容忍的最大坏块个数由用户设定。
实施例
下面以一个128Kx8bit存储容量、8192个存储块的FLASH为例进一步 说明本发明方法的原理。在此设定最大的坏块处理能力为255,则需要设计一 个256 x 26bit的坏块信息表,其中块地址列表和替换块地址列表各13位(由 于8192=213)。对该FLASH的坏块处理需要一个8位(由于256=28)的坏块 信息记录指针,用于指示坏块信息表当前可以使用的坏块记录位置;需要一个 8位的坏块信息操作指针,表示当前正在使用的坏块及其替换块;需要一个块 分类标志信号,表示当前进行编程/读操作的是正常的存储块还是替换块;需要 一个13位的最新替换块寄存器,用于保存最新分配的替换块地址。如果最新 的替换块地址等于7937 (即8191 -255+ 1 ),则表示坏块数量溢出。
图2、图3和图4是坏块处理过程的示意图。
图2已经记录了 3个坏块的地址(用十进制表示)10、 125和462。按照 替换块地址的分配方案,第一个坏块的替换块地址为8191,其后依次为8190 和8189。记录指针指到坏块信息表的第4个存储位置,表明下一个新的坏块地 址保存到该位置。操作指针指到第2个存储位置,如果此时块分类标志信号表 示当前进行编程/读操作的是替换块,那么当前操作的存储块的地址为8190。 最新替换块寄存器记录了最后一个被分配了的替换块是8189。
在图2的J^f出上,如果8190存储块在操作中出现损坏,那么需要为125 存储块重新分配替换块按照最新替换块寄存器记录的地址递减即可。而最新 替换块寄存器也需要相应地更新。但是替换块是坏块则不需要记录到坏块地址 列表中,如图3所示。
在图3的基础上,如果出现新的坏块(如500),那么需要为其分配替换块 (如8187),按照最新替换块寄存器记录的地址递减即可,而最新替换块寄存 器也需要相应地更新。坏块地址和替换块地址都记录到坏块信息表中的第4个 存储位置,记录指针则指向第5个存储位置(表明该位置还没有记录信息,是下一个可用的记录位置),如图4所示。
如果坏块数量达到了 255,则由FLASH使用者决定是否放弃当前使用的 FLASH芯片,改用备份FLASH。当需要查询坏块数量时,用8192减去最新 替换块的地址就可以得到当前的坏块数量。而判断坏块数量是否溢出,则只需 要看最新替换块寄存器保存的数值是否等于7937 (8191-255+1=7937)。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
权利要求
1、一种面向大容量FLASH固存的坏块处理方法,其特征在于步骤如下(1)建立坏块信息表,用于记录坏块和替换块的地址映射关系;(2)设置坏块信息记录指针,用于指示当前遇到的坏块记录位置,起始指向为坏块信息表的首记录;设置坏块信息操作指针,用于指示当前正在使用的坏块及与其对应的替换块,起始指向与坏块信息记录指针的起始指向相同;设置最新替换块寄存器,用于保存最新分配的替换块的地址;(3)当存储器出现坏块时,记录该坏块的地址,同时为该坏块指定替换块,将坏块及其替换块的地址添加至坏块信息表中,最新替换块寄存器指示所述替换块的地址;替换块的分配从存储器的最高的块地址开始向最低的块地址依次递减;(4)若所述替换块也为坏块,则跳过所述替换块重新分配新的替换块,替换块为坏块的不再添加至坏块信息表中,最新替换块寄存器指示所述新替换块的地址并用其替换坏块信息表中的相应记录;(5)坏块信息记录指针指向下一记录位置,坏块信息操作指针指向当前遇到的坏块及其替换块的记录位置,若当前操作块未出现在坏块信息表的记录中,则坏块信息操作指针保留当前指示位置。(6)当坏块的数量达到了所能容忍的最大坏块个数或替换块的地址达到了坏块处理能力上限地址时,提示坏块数量溢出,无法继续处理。
2、 根据权利要求1所述的一种面向大容量FLASH固存的坏块处理方法, 其特征在于所述的最低的块地址为坏块处理能力上限地址。
3、 根据权利要求1或2所述的一种面向大容量FLASH固存的坏块处理方 法,其特征在于所述的坏块处理能力上限地址的确定方法为坏块处理能力 上限地址=存储器最高位地址-所能容忍的最大坏块个数+1,其中所能容忍的最 大坏块个数由用户设定。
全文摘要
一种面向大容量FLASH固存的坏块处理方法,首先建立坏块信息表,用于记录坏块和替换块的地址映射关系;当存储器出现坏块时,记录该坏块的地址,同时为该坏块指定替换块,将坏块及其替换块的地址添加至坏块信息表中,替换块的分配从存储器的最高的块地址开始向最低的块地址依次递减;若替换块也为坏块,则跳过所述替换块重新分配新的替换块,替换块为坏块的不再添加至坏块信息表中;重复上述操作,当坏块的数量达到了所能容忍的最大坏块个数或替换块的地址达到了坏块处理能力上限地址时,提示坏块数量溢出,无法继续处理。
文档编号G11C29/04GK101320596SQ20081011461
公开日2008年12月10日 申请日期2008年6月10日 优先权日2008年6月10日
发明者爽 姜, 俊 杜, 苏昌明, 袁大威, 赵可成, 芳 鲍 申请人:北京时代民芯科技有限公司;中国航天时代电子公司第七七二研究所