CN110795044B - NAND Flash存储器的坏块管理方法和系统 - Google Patents
NAND Flash存储器的坏块管理方法和系统 Download PDFInfo
- Publication number
- CN110795044B CN110795044B CN201911049764.9A CN201911049764A CN110795044B CN 110795044 B CN110795044 B CN 110795044B CN 201911049764 A CN201911049764 A CN 201911049764A CN 110795044 B CN110795044 B CN 110795044B
- Authority
- CN
- China
- Prior art keywords
- block
- bbt
- bad
- blocks
- bad block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及一种NAND Flash存储器的坏块管理方法和系统,所述包括步骤:探测定位BBT;建立BBT;利用所述BBT管理继发坏块,和更新与备份BBT;其中,所述探测定位BBT的步骤进一步包括:探测所述存储器的最大的块索引号;反向逐个扫描块,检查和标记坏块,并定位BBT的建立地址;所述建立BBT的步骤进一步包括:根据坏块的索引号和总的块坏数量,生成包含替换块和坏块之间的映射关系的所述BBT,并存储于上述地址所对应的块。本发明可降低产品使用损耗速率和出现继发坏块的机率,进而提高产品使用寿命。
Description
技术领域
本发明涉及数据存储技术领域,特别涉及一种NAND Flash存储器的坏块管理方法和系统。
背景技术
NAND Flash芯片中,擦除的基本存储单位称作块(Block),不能正常读写数据的块被称为坏块(Bad Block)。由于制造工艺的限制,芯片个别块在擦除操作后,存储单元中的电位会出现无法达到期望值以备后继数据写入的情况,此时这个块已经不能进行正常数据读写操作,我们称这样的块叫做坏块。再由于出厂良品率控制等原因,在行业应用时允许芯片出厂时带有有限个数的坏块。因此在基于NAND Flash的产品设计中,必须考虑坏块的管理,避免将数据写入到坏块中而造成数据丢失。
NAND Flash的坏块种类一般分为两种,一种是制造时由于工艺原因导致,出厂时就已经有的坏块,我们称其为原生坏块。另一种是在使用过程中由于操作电压或操作次数超过限制等原因导致出现的失效块,我们称其为继发坏块。
在目前已知的坏块管理方案中,检测并跳过坏块,仅将数据写入到好的块的方案最简单,被NAND Flash烧录器以及轻量级驱动软件广泛应用。适用于管理原生坏块。对于继发坏块,如果也使用跳过坏块的方案,则需要将目标坏块以后有效数据整体向后移,庞大的数据转移量将耗费大量的操作时间和块操作寿命。
为了能够处理继发坏块,通常会使用BBT(Bad Block Table,坏块映射表)的办法,使用备用块来替换坏块的方案,但是由于NAND Flash芯片容量有大有小,备用区域块的大小和位置各异,以及替换方案的灵活多变等原因,不同的设备、厂家之间所使用的替换方案无法统一,因此它不适用原生坏块的管理,仅适用于管理继发坏块。
现有的基于NAND Flash芯片的系统中,采用仅跳过原生坏块的方法来管理坏块时,在发生继发坏块时会导致系统失效。在继发坏块替换方案的系统中,会有固定数据区与备份区的设计,牺牲一定的存储空间换取NAND Flash数据的安全性。但是NAND Flash发生继发性坏块的位置具有随机性,固定的数据区和备份区往往无法最大化利用Flash的空间,同时,数据区和备份区的操作寿命会相差巨大:数据区会因频繁的擦写操作而较早达到擦写操作的寿命极限,从而出现继发坏块,最终导致数据的丢失风险增加,而备份区冗余的空闲空间却无法得到充分利用。
发明内容
基于此,有必要提供一种NAND Flash存储器的坏块管理方法和系统,可降低产品使用损耗速率和出现继发坏块的机率,进而提高产品使用寿命。
为实现上述发明目的,本发明采用以下技术方案。
本发明提供一种NAND Flash存储器的坏块管理方法,包括步骤:
探测定位BBT;
建立BBT;
利用所述BBT管理继发坏块,和
更新与备份BBT;
其中,所述探测定位BBT的步骤进一步包括:
探测所述存储器的最大的块索引号;
反向逐个扫描块,检查和标记坏块,并定位BBT的建立地址;
所述建立BBT的步骤进一步包括:
根据坏块的索引号和总的块坏数量,生成包含替换块和坏块之间的映射关系的所述BBT,并存储于上述地址所对应的块;
所述利用所述BBT管理继发坏块的步骤进一步包括:
新的坏块产生后,以所述BBT所在块为起点,反向检索最接近的可用块,将所述可用块代替所述新的坏块,并将所述可用块与新的坏块之间的映射关系更新到所述BBT,具体包括:
反向扫描块数量到所述存储器的最大坏块限制数后,如仍未发现有效的BBT,则判断所述存储器中无有效的BBT;
根据所述所有块的索引号和总的块坏数量,并使用正向跳过坏块的方法计算出每个不在原位置的数据块的替换块的索引号,生成替换块与原位置的坏块之间的映射关系表,以建立新的BBT;
所述更新与备份BBT的步骤进一步包括:
采用冗余备份机制对所述BBT进行更新和备份。
上述方法中,所述探测定位BBT的步骤具体包括:
读取所述存储器的芯片ID,获取其最大容量,进而得到所述最大的块索引号;
以所述最大的块索引号为起点,反向逐个扫描块,检查块坏标记,将第一个可用的块的索引号作为BBT的建立地址;
继续反向扫描所有块,获取所有块的索引号和总的块坏数量;
检查上述地址内是否存在有效的BBT,若是,读取BBT内容并根据所述所有块的索引号和总的块坏数量更新所述BBT;否则,执行建立BBT的步骤。
上述方法中,所述利用BBT管理继发坏块的步骤具体包括:
所述新的坏块产生后,使用0x00对该坏块进行标记;
检查坏块总数是否超过阈值,若否,则以所述BBT所在块为起点,反向检索最接近的可用块,将所述可用块代替所述新的坏块,并将所述可用块与新的坏块之间的映射关系更新到所述BBT;所述可用块为未写入数据且与坏块无映射关系的块。
上述方法中,所述更新与备份BBT的步骤具体包括:
以所述BBT所在块为起点,反向检索最接近的备用块;
将更新的BBT写入该备用块;
擦除原BBT,并在原BBT所在的块写入更新的BBT;
擦除所述备用块内的BBT。
本发明还提供一种NAND Flash存储器的坏块管理系统,包括:
定位模块,用于探测定位BBT;
创建模块,用于建立BBT;
管理模块,用于利用所述BBT管理继发坏块;和
更新模块,用于更新与备份BBT;
其中,所述定位模块进一步用于:
探测所述存储器的最大的块索引号;
反向逐个扫描块,检查和标记坏块,并定位BBT的建立地址;
所述创建模块进一步用于:
根据坏块的索引号和总的块坏数量,生成包含替换块和坏块之间的映射关系的所述BBT,并存储于上述地址所对应的块,具体用于:
反向扫描块数量到所述存储器的最大坏块限制数后,如仍未发现有效的BBT,则判断所述存储器中无有效的BBT;
根据所述所有块的索引号和总的块坏数量,并使用正向跳过坏块的方法计算出每个不在原位置的数据块的替换块的索引号,生成替换块与原位置的坏块之间的映射关系表,以建立新的BBT;
所述管理模块进一步用于:
新的坏块产生后,以所述BBT所在块为起点,反向检索最接近的可用块,将所述可用块代替所述新的坏块,并将所述可用块与新的坏块之间的映射关系更新到所述BBT;
所述更新模块进一步用于:
采用冗余备份机制对所述BBT进行更新和备份。
上述系统中,所述定位模块具体用于:
读取所述存储器的芯片ID,获取其最大容量,进而得到所述最大的块索引号;
以所述最大的块索引号为起点,反向逐个扫描块,检查块坏标记,将第一个可用的块的索引号作为BBT的建立地址;
继续反向扫描所有块,获取所有块的索引号和总的块坏数量;
检查上述地址内是否存在有效的BBT,若是,读取BBT内容并根据所述所有块的索引号和总的块坏数量更新所述BBT;否则,执行建立BBT的步骤。
上述系统中,所述管理模块具体用于:
所述新的坏块产生后,使用0x00对该坏块进行标记;
检查坏块总数是否超过阈值,若否,则以所述BBT所在块为起点,反向检索最接近的可用块,将所述可用块代替所述新的坏块,并将所述可用块与新的坏块之间的映射关系更新到所述BBT;所述可用块为未写入数据且与坏块无映射关系的块。
上述系统中,所述更新模块具体用于:
以所述BBT所在块为起点,反向检索最接近的备用块;
将更新的BBT写入该备用块;
擦除原BBT,并在原BBT所在的块写入更新的BBT;
擦除所述备用块内的BBT。
本发明通过反向扫描块,根据坏块的索引号和总的块坏数量创建BBT,并将BBT在写入最大索引号所对应的块内,在保证产品兼容性和数据可靠性的同时,不设固定的数据区与备份区,均衡各有效区块的操作频次,保证Flash有效空间最大化得到利用,从而降低产品使用磨损速率和出现继发坏块的机率,进而提高产品使用寿命。并且,在BBT需要更新时,使用备份机制防止BBT在意外断电等情况下丢失,保证了数据的安全性。
附图说明
图1为本实施例中NAND Flash存储器的坏块管理方法的流程示意图;
图2为本实施例中NAND Flash存储器的区块分布示意图;
图3为本实施例中利用所述BBT管理继发坏块的工作原理图;
图4为本实施例中更新与备份BBT的工作原理图;
图5为本实施例中NAND Flash存储器的坏块管理系统的结构示意图。
本发明目的的实现及其功能、原理将在具体实施方式中结合附图作进一步阐述。
具体实施方式
下面结合附图及具体实施例做进一步说明。
如图1所示,本实施例提供一种NAND Flash存储器的坏块管理方法,主要包括以下步骤:
S1:探测定位BBT;
S2:建立BBT;
S3:利用所述BBT管理继发坏块
S4:更新与备份BBT。
其中,所述探测定位BBT的步骤进一步包括:
S11:探测所述存储器的最大的块索引号;
S12:反向逐个扫描块,检查和标记坏块,并定位BBT的建立地址;
所述建立BBT的步骤S2进一步包括:
S21:根据坏块的索引号和总的块坏数量,生成包含替换块和坏块之间的映射关系的所述BBT,并存储于上述地址所对应的块;
所述利用所述BBT管理继发坏块的步骤S3进一步包括:
S31:新的坏块产生后,以所述BBT所在块为起点,反向检索最接近的可用块,将所述可用块代替所述新的坏块,并将所述可用块与新的坏块之间的映射关系更新到所述BBT;
所述更新与备份BBT的步骤S4进一步包括:
S41:采用冗余备份机制对所述BBT进行更新和备份。
图2所示为本实施例中所述,在现行的制造工艺水平下,NAND Flash存储芯片中出厂时是允许包含坏块的,并且是呈随机分布的。在存储数据时,一般会跳过该坏块。避免将数据写入到坏块中引起数据丢失。
在探测定位BBT时,首先读取存储器的芯片ID,获取其最大容量,进而得到所述最大的块索引号。
然后,以该最大的块索引号为起点,反向逐个扫描这些块,检查其中的坏块标记,将第一个可用的块的索引号作为BBT的建立地址。
当扫描至存储器的最大坏块限制数后,仍未发现有效的BBT,则判断存储器中没有有效的BBT,此时,继续反向扫描剩余的块,直到存储器的第一个块。
反向扫描存储器的所有块后,可获取全部块的索引号和总的坏块数量;
此时,若存储器中没有有效的BBT,可根据所有块的索引号和总的块坏数量创建新的BBT,并将BBT写入上述最大块的块索引号所对应的块内。若存储器中存在有效的BBT,则根据所述所有块的索引号和总的块坏数量更新所述BBT。
本实施例中,创建新的BBT的步骤具体包括:
根据所述所有块的索引号和总的块坏数量,并使用正向跳过坏块的方法计算出每个不在原位置的数据块的替换块的索引号,生成替换块与原位置的坏块之间的映射关系表,以建立新的BBT。
上述利用BBT管理继发坏块的步骤S3具体包括:
新的坏块产生后,使用0x00对该坏块进行标记;
检查坏块总数是否超过阈值,若否,则以所述BBT所在块为起点,反向检索最接近的可用块,将所述可用块代替所述新的坏块,并将所述可用块与新的坏块之间的映射关系更新到所述BBT;所述可用块为未写入数据且与坏块无映射关系的块。
本实施例中,采用标记0x00对新增的坏块进行标记的目的是避免将数据写入该坏块内。同时,采用标记0xA5标记该BBT所在块,以免其它程序或设备再使用它,避免覆盖掉BBT的内容。
图3为本实施例中利用所述BBT管理继发坏块的工作原理图,从图中可以看出,在无继发坏块时,数据存储按正向索引号顺序进行,当发生继发坏块(图中的灰色块)时,若原生坏块和继发坏块的总数未超过限制,则以BBT所在块为起点,按索引号从大到小的反向扫描顺序,检索功能正常且未写入数据的块,并避开在BBT中的已有映射关系的块,记录该块的索引号,用该块替代新产生的继发坏块,将数据写入替代块内,并生成新的映射关系,最后根据最新的映射关系将数据写入到BBT中。
图4为本实施例中更新与备份BBT的工作原理图,由于NAND Flash存储器更新数据是先擦除后写入,为了防止意外掉电造成数据丢失,本实施例采用冗余备份机制对所述BBT进行更新和备份。
具体地,如图4所示,先以BBT所在块为起点,反向检索最近的备用块,该备用块必须是功能正常、未写入数据且与坏块无映射关系的块。再将更新的BBT写入该备用块,用作临时BBT;临时BBT写入完成之后擦除原BBT,最后将新BBT写入到原BBT所在的块,写入操作完成后再擦除临时BBT所在的块,保证在正常情况下系统中只有一份BBT,且位于最后一个正常块的位置。
可见,本实施例使用BBT动态管理系统中坏块,使用反向扫描顺序确定BBT所在的块索引号,以第一个功能正常的块存储BBT。并使用特殊块标记将该块标记为专用,防止其它程序或设备访问,使用正向增长顺序管理原生坏块,使用反向增长顺序管理继发坏块映射关系,使芯片的可用容量最大化。此外,BBT中将原生坏块和继发坏块都生成映射关系直接用于块索引号转换,输入一个地址索引时,可直接查询映射关系表后使用映射之后的块索引号输出,效率高。并且,使用冗余备份机制来维护BBT,可防止BBT在意外断电等情况下丢失。
参照图5所示,本实施例对应提供一种NAND Flash存储器的坏块管理系统100,主要包括:
定位模块10,用于探测定位BBT;
创建模块20,用于建立BBT;
管理模块30,用于利用所述BBT管理继发坏块;和
更新模块40,用于更新与备份BBT;
其中,所述定位模块10进一步用于:
探测所述存储器的最大的块索引号;
反向逐个扫描块,检查和标记坏块,并定位BBT的建立地址;
所述创建模块20进一步用于:
根据坏块的索引号和总的块坏数量,生成包含替换块和坏块之间的映射关系的所述BBT,并存储于上述地址所对应的块;
所述管理模块30进一步用于:
新的坏块产生后,以所述BBT所在块为起点,反向检索最接近的可用块,将所述可用块代替所述新的坏块,并将所述可用块与新的坏块之间的映射关系更新到所述BBT;
所述更新模块40进一步用于:
采用冗余备份机制对所述BBT进行更新和备份。
本实施例中,所述定位模块10具体用于:
读取所述存储器的芯片ID,获取其最大容量,进而得到所述最大的块索引号;
以所述最大的块索引号为起点,反向逐个扫描块,检查块坏标记,将第一个可用的块的索引号作为BBT的建立地址;
继续反向扫描所有块,获取所有块的索引号和总的块坏数量;
检查上述地址内是否存在有效的BBT,若是,根据所述所有块的索引号和总的块坏数量更新所述BBT。
所述创建模块20具体用于:
扫描到所述存储器的最大坏块限制数后,如仍未发现有效的BBT,则判断所述存储器中无有效的BBT;
根据所述所有块的索引号和总的块坏数量,并使用正向跳过坏块的方法计算出每个不在原位置的数据块的替换块的索引号,生成替换块与原位置的坏块之间的映射关系表,以建立新的BBT。
所述管理模块30具体用于:
所述新的坏块产生后,使用0x00对该坏块进行标记;
检查坏块总数是否超过阈值,若否,则以所述BBT所在块为起点,反向检索最接近的可用块,将所述可用块代替所述新的坏块,并将所述可用块与新的坏块之间的映射关系更新到所述BBT;所述可用块为未写入数据且与坏块无映射关系的块。
所述更新模块40具体用于:
以所述BBT所在块为起点,反向检索最接近的备用块;
将更新的BBT写入该备用块;
擦除原BBT,并在原BBT所在的块写入更新的BBT;
擦除所述备用块内的BBT。
本实施例的NAND Flash存储器的坏块管理系统100的详细功能和原理可参照图1~4所示实施例中所述,此处不再赘述。
综上所述,本发明通过反向扫描块,根据坏块的索引号和总的块坏数量创建BBT,并将BBT在写入最大索引号所对应的块内,在保证产品兼容性和数据可靠性的同时,不设固定的数据区与备份区,均衡各有效区块的操作频次,保证Flash有效空间最大化得到利用,从而降低产品使用磨损速率和出现继发坏块的机率,进而提高产品使用寿命。并且,在BBT需要更新时,使用备份机制防止BBT在意外断电等情况下丢失,保证了数据的安全性。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
Claims (8)
1.一种NAND Flash存储器的坏块管理方法,其特征在于,包括步骤:
探测定位BBT;
建立BBT;
利用所述BBT管理继发坏块,和
更新与备份BBT;
其中,所述探测定位BBT的步骤进一步包括:
探测所述存储器的最大的块索引号;
反向逐个扫描块,检查和标记坏块,并定位BBT的建立地址;
所述建立BBT的步骤进一步包括:
根据坏块的索引号和总的块坏数量,生成包含替换块和坏块之间的映射关系的所述BBT,并存储于上述地址所对应的块,具体包括:
反向扫描块数量到所述存储器的最大坏块限制数后,如仍未发现有效的BBT,则判断所述存储器中无有效的BBT;
根据所有块的索引号和总的块坏数量,并使用正向跳过坏块的方法计算出每个不在原位置的数据块的替换块的索引号,生成替换块与原位置的坏块之间的映射关系表,以建立新的BBT;
所述利用所述BBT管理继发坏块的步骤进一步包括:
新的坏块产生后,以所述BBT所在块为起点,反向检索最接近的可用块,将所述可用块代替所述新的坏块,并将所述可用块与新的坏块之间的映射关系更新到所述BBT;
所述更新与备份BBT的步骤进一步包括:
采用冗余备份机制对所述BBT进行更新和备份。
2.如权利要求1所述的坏块管理方法,其特征在于,所述探测定位BBT的步骤具体包括:
读取所述存储器的芯片ID,获取其最大容量,进而得到所述最大的块索引号;
以所述最大的块索引号为起点,反向逐个扫描块,检查每个块的块坏标记,将第一个可用的块的索引号作为BBT的建立地址;
继续反向扫描所有块,获取所有块的索引号和总的块坏数量;
检查上述地址内是否存在有效的BBT,若是,读取BBT内容并根据所述所有块的索引号和总的块坏数量更新所述BBT;否则,执行建立BBT的步骤。
3.如权利要求1所述的坏块管理方法,其特征在于,所述利用BBT管理继发坏块的步骤具体包括:
所述新的坏块产生后,使用0x00对该坏块进行标记;
检查坏块总数是否超过阈值,若否,则以所述BBT所在块为起点,反向检索最接近的可用块,将所述可用块代替所述新的坏块,并将所述可用块与新的坏块之间的映射关系更新到所述BBT;所述可用块为未写入数据且与坏块无映射关系的块。
4.如权利要求1所述的坏块管理方法,其特征在于,所述更新与备份BBT的步骤具体包括:
以所述BBT所在块为起点,反向检索最接近的备用块;
将更新的BBT写入该备用块;
擦除原BBT,并在原BBT所在的块写入更新的BBT;
擦除所述备用块内的BBT。
5.一种NAND Flash存储器的坏块管理系统,其特征在于,包括:
定位模块,用于探测定位BBT;
创建模块,用于建立BBT;
管理模块,用于利用所述BBT管理继发坏块;和
更新模块,用于更新与备份BBT;
其中,所述定位模块进一步用于:
探测所述存储器的最大的块索引号;
反向逐个扫描块,检查和标记坏块,并定位BBT的建立地址;
所述创建模块进一步用于:
根据坏块的索引号和总的块坏数量,生成包含替换块和坏块之间的映射关系的所述BBT,并存储于上述地址所对应的块,具体用于:
反向扫描块数量到所述存储器的最大坏块限制数后,如仍未发现有效的BBT,则判断所述存储器中无有效的BBT;
根据所有块的索引号和总的块坏数量,并使用正向跳过坏块的方法计算出每个不在原位置的数据块的替换块的索引号,生成替换块与原位置的坏块之间的映射关系表,以建立新的BBT;
所述管理模块进一步用于:
新的坏块产生后,以所述BBT所在块为起点,反向检索最接近的可用块,将所述可用块代替所述新的坏块,并将所述可用块与新的坏块之间的映射关系更新到所述BBT;
所述更新模块进一步用于:
采用冗余备份机制对所述BBT进行更新和备份。
6.如权利要求5所述的坏块管理系统,其特征在于,所述定位模块具体用于:
读取所述存储器的芯片ID,获取其最大容量,进而得到所述最大的块索引号;
以所述最大的块索引号为起点,反向逐个扫描块,检查每个块的块坏标记,将第一个可用的块的索引号作为BBT的建立地址;
继续反向扫描所有块,获取所有块的索引号和总的块坏数量;
检查上述地址内是否存在有效的BBT,若是,读取BBT内容并根据所述所有块的索引号和总的块坏数量更新所述BBT;否则,执行建立BBT的步骤。
7.如权利要求5所述的坏块管理系统,其特征在于,所述管理模块具体用于:
所述新的坏块产生后,使用0x00对该坏块进行标记;
检查坏块总数是否超过阈值,若否,则以所述BBT所在块为起点,反向检索最接近的可用块,将所述可用块代替所述新的坏块,并将所述可用块与新的坏块之间的映射关系更新到所述BBT;所述可用块为未写入数据且与坏块无映射关系的块。
8.如权利要求5所述的坏块管理系统,其特征在于,所述更新模块具体用于:
以所述BBT所在块为起点,反向检索最接近的备用块;
将更新的BBT写入该备用块;
擦除原BBT,并在原BBT所在的块写入更新的BBT;
擦除所述备用块内的BBT。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911049764.9A CN110795044B (zh) | 2019-10-31 | 2019-10-31 | NAND Flash存储器的坏块管理方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911049764.9A CN110795044B (zh) | 2019-10-31 | 2019-10-31 | NAND Flash存储器的坏块管理方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110795044A CN110795044A (zh) | 2020-02-14 |
CN110795044B true CN110795044B (zh) | 2023-04-11 |
Family
ID=69442318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911049764.9A Active CN110795044B (zh) | 2019-10-31 | 2019-10-31 | NAND Flash存储器的坏块管理方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110795044B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113391755B (zh) * | 2020-02-26 | 2023-09-22 | 北京君正集成电路股份有限公司 | 一种并行双片nand flash中物理擦除块动态关联的方法 |
CN113176970B (zh) * | 2021-06-28 | 2021-10-22 | 中国核动力研究设计院 | 基于FPGA的nor flash坏块管理系统及方法 |
CN113688070A (zh) * | 2021-10-27 | 2021-11-23 | 苏州浪潮智能科技有限公司 | 一种nand中坏块替换的方法、装置、设备及可读介质 |
CN115495024B (zh) * | 2022-11-16 | 2023-03-10 | 石家庄科林电气股份有限公司 | 基于NandFlash的录波文件存储方法、装置、终端及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101320596A (zh) * | 2008-06-10 | 2008-12-10 | 北京时代民芯科技有限公司 | 一种面向大容量flash固存的坏块管理方法 |
CN101510445A (zh) * | 2009-03-19 | 2009-08-19 | 北京中星微电子有限公司 | 存储器坏块表的保存和读取的方法以及装置 |
CN102541676A (zh) * | 2011-12-22 | 2012-07-04 | 福建新大陆通信科技股份有限公司 | 一种nand flash的状态检测及映射方法 |
CN104750565A (zh) * | 2013-12-31 | 2015-07-01 | 重庆重邮信科通信技术有限公司 | Nand坏块处理方法及nand闪存设备 |
CN106844079A (zh) * | 2016-12-28 | 2017-06-13 | 中国北方车辆研究所 | 一种装甲车辆的flash坏块管理系统及管理方法 |
CN108614743A (zh) * | 2016-12-09 | 2018-10-02 | 北京京存技术有限公司 | 基于NAND flash的超级数据块处理方法和装置 |
-
2019
- 2019-10-31 CN CN201911049764.9A patent/CN110795044B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101320596A (zh) * | 2008-06-10 | 2008-12-10 | 北京时代民芯科技有限公司 | 一种面向大容量flash固存的坏块管理方法 |
CN101510445A (zh) * | 2009-03-19 | 2009-08-19 | 北京中星微电子有限公司 | 存储器坏块表的保存和读取的方法以及装置 |
CN102541676A (zh) * | 2011-12-22 | 2012-07-04 | 福建新大陆通信科技股份有限公司 | 一种nand flash的状态检测及映射方法 |
CN104750565A (zh) * | 2013-12-31 | 2015-07-01 | 重庆重邮信科通信技术有限公司 | Nand坏块处理方法及nand闪存设备 |
CN108614743A (zh) * | 2016-12-09 | 2018-10-02 | 北京京存技术有限公司 | 基于NAND flash的超级数据块处理方法和装置 |
CN106844079A (zh) * | 2016-12-28 | 2017-06-13 | 中国北方车辆研究所 | 一种装甲车辆的flash坏块管理系统及管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110795044A (zh) | 2020-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110795044B (zh) | NAND Flash存储器的坏块管理方法和系统 | |
US9817588B2 (en) | Memory device and operating method of same | |
US11068391B2 (en) | Mapping table updating method for data storage device | |
US8453021B2 (en) | Wear leveling in solid-state device | |
US8028120B2 (en) | System with flash memory device and data recovery method thereof | |
US8898372B2 (en) | Memory storage device, memory controller, and data writing method | |
US8484409B2 (en) | Nonvolatile memory controller with logical defective cluster table | |
US10061655B2 (en) | Volatile cache reconstruction after power failure | |
US20110078363A1 (en) | Block management method for a flash memory and flash memory controller and storage system using the same | |
US8296503B2 (en) | Data updating and recovering methods for a non-volatile memory array | |
US8516184B2 (en) | Data updating using mark count threshold in non-volatile memory | |
US20110264842A1 (en) | Memory controller, nonvolatile memory device, access device, and nonvolatile memory system | |
CN104050056A (zh) | 多存储介质设备的文件系统备份 | |
US10635527B2 (en) | Method for processing data stored in a memory device and a data storage device utilizing the same | |
CN104360957A (zh) | 一种维持闪存损耗均衡的方法 | |
US8819387B2 (en) | Memory storage device, memory controller, and method for identifying valid data | |
US9465538B2 (en) | Flash memory control chip and data storage device and flash memory control method | |
CN112612418B (zh) | 一种用于大容量NandFlash坏块管理的方法及系统 | |
US8261013B2 (en) | Method for even utilization of a plurality of flash memory chips | |
US9043675B2 (en) | Storage device | |
US20110047409A1 (en) | Storage device supporting auto backup function | |
CN111813340A (zh) | 基于固态硬盘的指令响应方法、系统、装置及电子设备 | |
CN110633056B (zh) | 在操作系统层面的Flash芯片的页面管理方法及存储设备 | |
US20190286343A1 (en) | Mapping table management method for solid state storage device | |
JPH1031611A (ja) | 不揮発性メモリ記憶媒体用ファイルシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |