CN110795044B - NAND Flash存储器的坏块管理方法和系统 - Google Patents

NAND Flash存储器的坏块管理方法和系统 Download PDF

Info

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
Application number
CN201911049764.9A
Other languages
English (en)
Other versions
CN110795044A (zh
Inventor
夏超仁
李康养
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Youhua Technology Co ltd
Original Assignee
Shenzhen Youhua Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Youhua Technology Co ltd filed Critical Shenzhen Youhua Technology Co ltd
Priority to CN201911049764.9A priority Critical patent/CN110795044B/zh
Publication of CN110795044A publication Critical patent/CN110795044A/zh
Application granted granted Critical
Publication of CN110795044B publication Critical patent/CN110795044B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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存储器的坏块管理方法和系统。
背景技术
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。
CN201911049764.9A 2019-10-31 2019-10-31 NAND Flash存储器的坏块管理方法和系统 Active CN110795044B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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的超级数据块处理方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
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