CN104750565B - Nand坏块处理方法及nand闪存设备 - Google Patents
Nand坏块处理方法及nand闪存设备 Download PDFInfo
- Publication number
- CN104750565B CN104750565B CN201310751620.4A CN201310751620A CN104750565B CN 104750565 B CN104750565 B CN 104750565B CN 201310751620 A CN201310751620 A CN 201310751620A CN 104750565 B CN104750565 B CN 104750565B
- Authority
- CN
- China
- Prior art keywords
- block
- area
- bbt
- bad block
- replacement
- 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
Abstract
本发明公开了一种NAND坏块处理方法及NAND闪存设备,所述NAND闪存设备包括:数据区域,包括多个块,用于存储数据;替换区域,包括多个块,当所述数据区域和/或所述替换区域本身中的一个以上的块发生损坏而成为坏块时,作为替换块,用于替换所述一个以上的坏块;BBT区,用于存储坏块表,所述坏块表指明所述坏块与所述替换块之间的映射关系;BBT索引区,位于指定的块中,所述BBT索引区存储有索引文件,所述索引文件包括指引所述BBT区所在块的地址的索引条目。本发明能减少坏块处理对存储空间的额外要求。
Description
技术领域
本发明涉及一种存储方法,特别涉及储存型快闪记忆体(NAND FLASH,简称,NAND)坏块处理方法及NAND闪存设备。
背景技术
NAND闪存设备由于存储容量大、价格便宜等优势现大规模应用于消费电子相关产品中。
现有的NAND闪存设备的存储空间由多个块(block)组成,每个block包括多个页(page),每个page又由多个存储单元构成,而每个存储单元可以存储1位(bit)的数据。NAND闪存设备具有写(编程)操作和擦除操作速率快的特点,对于NAND page写入操作,以页为单位写入,也即每次写入的数据量大小为1个page;对于NAND擦除函数功能,以块为单位进行擦除操作,也即每次擦除的单元大小为1个block;对于NAND随机写入函数可以根据需要修改某个page中的某1个或则几个字节。但对于所有的NAND写入操作,只能把存储器中的为‘1’的bit写为‘0’,反之则不行;对于擦除函数,是把该block中的所有数据全置为‘1’。
由于工艺的局限性,NAND闪存设备在工厂出场检验时除了能够保证第一个块Block0为好块,并且具有足够的擦写次数可靠性外,其他的块在擦除和写入的过程中均存在坏掉的可能。由于NAND闪存设备擦写次数是有限的,而且会在使用过程中产生新的坏块,一般都需要额外的软件或硬件来配合它进行使用,其中,为了保证NAND存储的可靠性,在设计NAND闪存设备的软件时需要在软件方案中添加坏块表(Bad Block Table,简称BBT),通过该坏块表来标识系统中的所有坏块,在发现某一个block为坏块时,使用替换块来对坏块进行替换,而由于Block0的可靠性,现有方案大多使用该块存储启动代码,保证系统的正常启动。
当前存在一种分区映射坏块管理方法,其专利号为201210157878.7,在该方法中,将存储器空间划分为第一区域和第二区域,将第一区域中的坏块映射到第二区域中的正常块,并将记录这样的映射关系的BBT存储在第二区域的块中。该方法通过使用多个坏块表来保存映射关系,以避免由于坏块表所在的块损坏造成映射关系丢失。但该专利的坏块管理方法存在的问题是,由于坏块表和数据都会存放到第二区域的块中,如果使用标志位来区分块中存储的是坏块表还是数据,则在每次访问NAND闪存设备时,都需要遍历整个第二区域来查找坏块表,降低了访问效率,如果在第二区域中划分特定的空间来保存坏块表,虽然能减少遍历块的数量,但该特定空间内的块只能用于保存坏块表,不能用于存放数据,浪费了存储空间。
发明内容
针对现有技术存在的问题,本发明的目的在于提供一种NAND坏块处理方法及NAND闪存设备设备,以解决现有技术的NAND坏块处理方法的访问效率低,浪费存储空间的技术问题。
本发明是通过以下技术方案来实现的:
一种NAND闪存设备,所述NAND闪存设备包括:数据区域,包括多个块,用于存储数据;替换区域,包括多个块,当所述数据区域和/或所述替换区域本身中的一个以上的块发生损坏而成为坏块时,作为替换块,用于替换所述一个以上的坏块;BBT区,用于存储坏块表,所述坏块表指明所述坏块与所述替换块之间的映射关系;BBT索引区,位于指定的块中,所述BBT索引区存储有索引文件,所述索引文件包括指引所述BBT区所在块的地址的索引条目。
本发明的NAND闪存设备,优选地,所述BBT区所在的块发生损坏时,所述替换区域中未使用的至少一个块还被选择作为所述BBT区的替换块,并将所述替换块的地址作为一个索引条目存放在所述索引文件中。
本发明的NAND闪存设备,优选地,所述BBT索引区所在的所述指定的块被设置在所述NAND闪存设备的第一块中。
本发明的NAND闪存设备,优选地,还包括备份BBT区,与所述BBT区互为备份;
所述BBT索引区的索引文件包括所述BBT区的索引文件和所述备份BBT区的索引文件。
一种NAND闪存设备的坏块处理方法,可用于本发明的NAND闪存设备,优选地,所述方法包括:检测所操作的块是否为坏块;若所述所操作的块为坏块,使用所述替换区域中的所述替换块替换所述坏块;若所述坏块位于所述BBT区,修改所述BBT索引区的所述索引文件。
本发明的NAND闪存设备的坏块处理方法,优选地,所述索引文件包括:记录所述BBT区所在块的地址的索引条目,所述修改所述索引文件包括:对所述索引文件进行更新,将所述替换块的地址保存到索引文件中有效条目的下一个索引条目,所述有效条目是指数据内容为“0xFFFF”的前一个索引条目。
本发明的NAND闪存设备的坏块处理方法,优选地,所述索引文件还包括位索引表,包括多个位,用于指示所述索引文件中的所述有效条目在所述索引条目中的偏移位置;所述对所述索引文件进行更新之后还包括:对所述位索引表进行更新,根据所述有效条目,将所述位索引表中的有效索引的前一位置为“0”,所述有效索引为值为“0”的最高位。
本发明的NAND闪存设备的坏块处理方法,优选地,所述替换区域中的替换块的地址小于或大于所述坏块所在的地址。
本发明的NAND闪存设备的坏块处理方法,优选地,所述修改所述索引文件的包括:对所述索引文件进行更新,在索引文件中查找数据内容为“0xFFFF”的索引条目,并将该索引条目的值更新为所述替换区域中的替换块所在的地址。
一种NAND闪存设备的坏块处理方法,可用于如权利要求4所述的NAND闪存设备,其中,所述BBT索引区的索引文件包括所述BBT区的索引文件和所述备份BBT区的索引文件,所述方法包括:检测所操作的块是否为坏块;若所述所操作的块为坏块,使用所述替换区域中的所述替换块替换所述坏块;若所述坏块位于所述BBT区,修改所述BBT区的索引文件;若所述坏块位于所述备份BBT区,修改所述备份BBT区的索引文件。
本发明的有益效果在于,本发明提出一种NAND坏块处理方法及NAND闪存设备,存储坏块表索引文件,该坏块表索引文件能在坏块表所在的块出现损坏时使用好块对该坏块进行替换,能够有效提高NAND闪存设备数据存储的可靠性;同时,由于使用了索引文件来索引BBT区所在块的地址,因此,可以不用在NAND闪存设备中单独预留专门的BBT区存储块,减少坏块处理对存储空间的额外要求。此外,在系统启动加载NAND闪存设备地址时,可通过存放在固定位置坏块表索引文件快速的定位坏块表位置,而无需遍历整个BBT区,加快了系统加载速度。
附图说明
图1为本发明实施例的NAND闪存设备结构示意图。
图2A至2C为本发明实施例的BBT坏块映射示意图。
图3为本发明实施例的数据区域与替换区域坏块替换流程图。
图4为本发明一实施例的索引文件更新示意图。
图5为本发明一实施例的索引文件更新示意图。
图6为本发明一实施例的索引文件更新示意图。
图7为本发明一实施例的NAND闪存设备结构示意图。
图8为用于图7的坏块表和/或索引文件更新流程图。
图9为图8的坏块表检测及同步流程图。
具体实施方式
体现本发明特征与优点的典型实施例将在以下的说明中详细叙述。应理解的是本发明能够在不同的实施例上具有各种的变化,其皆不脱离本发明的范围,且其中的说明及附图在本质上是当作说明之用,而非用以限制本发明。
本发明实施例的NAND坏块处理方法可用于本发明实施例的NAND闪存设备。
下面具体介绍本发明优选实施例的NAND坏块处理方法以及NAND闪存设备。
如图1所示,本发明实施例的NAND闪存设备结构示意图,整个NAND闪存设备的存储空间按照功能划分为四部分:BBT索引区(BBT Index区)、BBT区、数据区域、替换区域。在这种区域划分方式下,BBT区与数据存储在不同的区域,能提高坏块表(BBT)查找效率,且节约了存储空间。
其中,BBT索引区位于NAND闪存设备的第一个块Block0,用于存储索引文件(BBTIndex),但本发明并不以此为限,BBT索引区也可位于于除Block0之外的其他指定的块中。索引文件中包括标识(Flag)和多个索引条目(Item),Flag可以表示索引文件是否被初始化,例如标识为“1”时,代表索引文件未被初始化,标识为“0”时,索引文件已被初始化;Item存储BBT区所在块的地址,当BBT区所在的块发生坏块时,将BBT区所在的坏块映射至替换区域中的好块,但本发明并不以此为限,也可在BBT区所在的块发生坏块时,将BBT区进行整体替换,也即将BBT区中的所有块使用替换区域中的多个块进行一一替换,得到替换BBT区,之后,将用于替换BBT区坏块的替换区中的好块的地址保存到所述索引文件的一个新Item中。由于第一个块Block0具有足够的可靠性,因此若将索引文件存储于Block0可保证索引文件不会因坏块而丢失,为此,可保证本发明实施例的BBT区不会因为该BBT区所在的块损坏而导致BBT区中所保存的数据丢失。
BBT区位于第二个块Block1,但本发明并不以此为限,根据实际应用情况,BBT区也可以位于其他块,且并不限于仅包括一个块,还可以位于两个或两个以上的块中。BBT区存储有坏块表,该坏块表可与现有技术的坏块表的结构和功能相同,可存储NAND信息、数据区域与替换区域的地址映射关系、校验坏块表的完整性的校验信息、用于指示块映射快速访问表的建立/更新时间的时间戳等信息,其中,该NAND信息可例如包括NAND闪存设备的存储空间大小、页面大小、块大小、数据区域以及替换区域的起始地址和大小等信息,但本发明实施例并不以此为限,该NAND信息还可以为其他信息。坏块表还包括标识(Flag1)和多个索引条目(Item1),Flag1可以表示坏块表是否被初始化,例如标识为“1”时,代表代表坏块表未被初始化,标识为“0”时,代表坏块表已被初始化;Item1用于存储坏块表的地址映射,可记录NAND闪存设备中的各坏块与其对应的替换块之间的地址映射关系。
数据区域,用于存放NAND闪存设备的实际存储内容,包括多个块,具体包括第三个块Block2至第N+1个块BlockN,但本发明并不以此为限,根据实际应用情况,数据区域可包括其他多个地址连续或不连续的块。
替换区域,位于NAND闪存设备中剩余的全部或部分块中,用于BBT区、数据区域或者自身区域发生块损坏时作为替换块资源进行替换。
在图1所示出的示例性实施例中,BBT索引区、BBT区、数据区域以及替换区域中的块地址可以是任意的,例如为不连续的,此外,NAND闪存设备的存储空间还可以划分为三块,也即BBT索引区、数据区域以及替换区域,其中BBT可位于数据区域和/或替换区域中的块中,本发明并不以此为限。
数据区域中的坏块与替换区域中的替换块之间建立块映射关系,此外,还可对替换区域本身中的坏块与替换区域中的替换块之间建立块映射关系,以上所述块映射关系存储在坏块表中,每一块映射关系可形成一地址映射条目Item1,且该Item1以Block为单位进行编号,但本发明不以此为限。在数据区域与替换区域没有坏块时,坏块表可以采用物理地址和映射地址一致的映射方式,或者将坏块表中的映射地址设置为“0xFFFF”,此时访问的地址即为实际的物理存储地址;当所访问的地址是坏块时,通过该BBT进行地址映射,此时实际访问地址为替换区域中的替换块地址。
如图2A至图2C所示为本发明实施例的数据区域与替换区域的坏块映射示意图。如图2A所示,在NAND没有任何坏块或数据区域与替换区域没有坏块时,坏块表中的各个块地址映射采用物理地址和映射地址一一对应的方式,也即将坏块表中的各块的映射地址设置为“0xFFFF”或设置为该块的物理地址,此时数据区域与替换区域的映射地址即为自身实际的物理存储地址,若根据图1所示划分存储空间,则此时BBT索引区、BBT区、数据区域和替换区域分别对应第一个块1、第二个块2、第三个块2至第n个块n和第n+1个块n+1至第m个块m。但本发明不以此为限,BBT区、数据区域和替换区域可根据实际情况,包括多个块且其块地址可为任意的。
在数据区域中发生坏块时,则可建立数据区域中的坏块与替换区域中的未使用的好块之间的块映射关系,并将该块映射关系存储在在坏块表中。如图2B所示,当数据区域中的块n发生坏块时,则建立块n与块n+1之间的映射关系,将坏块表中块n的映射地址改为块n+1的地址。
另外,若在将进行块替换的过程中,检测到替换区域中的替换块也发生损坏,则可使用替换区域中的其他未使用的好块对数据区域中的坏块进行替换。如图2C所示,若在用块n+1替换块n的过程中,检测到替换区域中的块n+1发生损坏,则使用块n+2替换块n+1,也即在坏块表中,将坏块表中块n+1的映射地址改为块n+2。本发明实施例的坏块表更新方式可以采用直接修改坏块表中的坏块的映射地址,也即首先擦除坏块表中原映射关系,然后直接将新的替换块n+2的地址写入坏块n的地址中,但本发明不以此为限,作为本发明的一种优选方案,坏块表更新方式还可以建立一个链表结构,即,初始化时,将原始坏块表中的各个物理地址的映射地址全部设置为“0XFFFF”;若所操作的块发生损坏,则将修改该坏块的映射地址,使其指向用来替换该坏块的好块的地址,如,块n发生损坏时,将块n的映射地址直接修改为块n+1的地址,用块n+1替换块n,如果块n+1也发生损坏,则直接将块n+1的映射地址修改为块n+2的地址,不再对块n的映射地址进行修改;这样,在数据块以及数据块的替换块发生损坏时,无需对BBT所在块进行擦除只需对BBT进行修改即可用新的替换块来替换该坏块。
图3为本发明实施例的数据区域与替换区域的坏块替换流程图。首先,可以从外部(例如,用户或上层程序)接收对NAND闪存设备的存储区域中的块的请求信息(S302)。检测所操作的块是否为坏块,以得到所述所操作的块是否为坏块的信息(S303)。
如果检测到所操作的块为好块,则无需对所操作的块进行替换,转步骤S306。
如果检测到所操作的块为坏块,则检测替换区域中的替换块是否用完(S304)。
若替换块已经用完,则上报错误,弹出相应的报错信息(S305),该报错信息例如为提示用户已无可用替换块的信息,转步骤S306。
若替换块没有用完,则根据步骤S304所得到的坏块的信息,使用替换区域中的替换块替换所操作的坏块,同时修改坏块表,将该所操作的坏块的地址映射至该替换区域中的替换块所在的地址(S307)。进一步地,检测该替换块是否为好块(S308)。若该替换块为好块,则坏块替换过程完成,使用该替换块代替所操作的坏块进行相关的操作(S309)。此外,若检测到该替换块不为好块,则转步骤S304,查找是否有其他可用的替换块可用于替换该坏块。
块替换处理操作完成(S306)。
以上实施例是本发明实施例的数据区域或替换区域发生坏块时的坏块处理流程。对于BBT区本身所在的块发现坏块时,本发明将在替换区域中查找到替换块后使用替换块对坏块进行替换,并更新索引文件。本发明实施例的BBT区发生坏块时的坏块处理流程大致与数据区域或替换区域发生坏块时的坏块处理流程相同,所不同的是,坏块表和索引文件具有不同更新方式。
由于本发明实施例的索引文件存储于第一个块Block0中,而第一块Block0为NAND闪存设备的启动块,通常存储有例如系统引导程序数据等一些非常重要的数据,如果采用类似BBT的擦除重写更新方式,将Block0擦除之后又重新写入数据,如果发生写入数据失败,从而会造成NAND闪存设备无法正常引导启动。因此,索引文件的更新方式若采用BBT的擦除重写的更新方式进行更新会存在重大缺陷。为此本发明在更新索引文件时提出三种方式,以在对BBT发生坏块时进行坏块处理时保证NAND闪存设备可以正常引导启动。
由于BBT区的坏块替换处理与数据区域或替换区域发生坏块时的坏块处理方法大致相同,其相同之处不在赘述,下面将着重对不同之处也即本发明实施例的索引文件的更新方式进行说明。
图4至图6为本发明实施例的BBT区发生坏块时的三种坏块替换处理示意图及流程图。
在初始化创建索引文件时,将索引文件的标识(flag)置为有效(通常用“0”表示有效),将BBT区所在块的地址写入第一个索引条目(Item)索引文件中其他的条目均保持未使用时的状态“0xFFFF”。
如图4所示为本发明一实施例的索引文件更新示意图。若使用替换区域中的替换块替换BBT区所在的坏块,还需对应地同步更新索引文件,也即在索引文件中有效条目的下一个Item增加替换后的BBT区所在块的地址,其中该有效条目是指数据内容为“0xFFFF”的Item的前一个数据内容不为“0xFFFF”的Item。
具体地,请同时参考图1,索引文件的第一个Item值为BBT所在块的初始物理地址,也即为第二个块Block1,的物理地址“0x01”,当BBT区发生坏块且BBT区的替换块的地址为“n+1”时,更新索引文件,例如,可以采用NAND的随机写入函数功能将替换后的BBT区所在块的地址“n+1”写入有效条目的后一个条目。而若检测发现块n+1损坏时,查找另一替换块,例如块地址为“n+2”的替换块,若地址为“n+2”的块为好块,则使用地址为“n+2”的替换块替换BBT区所在的坏块,将替换后的BBT区所在块的地址“n+2”写入有效条目的后一个条目。
如图5所示为本发明一实施例的索引文件更新示意图,其与图4所示的实施例的索引文件更新方法大致相同,所不同的是,在索引文件中设计一个位索引表(bit map),该bitmap包括多个位(bit),且其中的bit数量大于或等于索引文件中的Item条目数量,每个bit表示一个索引位置,为“0”的最高bit为有效的索引bit,表示最新的索引文件的索引条目在索引文件的Item里面的偏移位置。在进行索引文件更新时使用NAND的随机写入函数功能在最新的Item的下一个位置增加新的索引文件的Item,并修改bit map中有效的索引bit的后一bit为“0”即可,其中,有效的索引bit的后一bit是指比有效的索引bit高一位的那一个bit,例如,若当前有效索引为bit5,则有效索引bit的后一bit是指bit6。
具体地,在索引文件中设置一个bit map,bit map以bit为单位,共有n+1个bit,bit0表示最低位、bitn表示最高位,且bit0、bit1…bitn的位次逐渐增高,其中n+1大于或等于BBT Index中的Item数,且bit0、bit1、bit2…依次对应BBT Index中的第一个Item、第二个Item、第三个Item…,初始时,bitmap中除第一个bit外的多个bit初始时均为“1”,且bitmap中的每一位相应地对应索引文件中的相对于BBT区初始存储地址的一个偏移位置,初始存储地址存储原始BBT区,第一个为bit0为“0”,与BBT区的原始地址相对应,表示原始BBT区存储于初始存储地址,没有地址偏移,当该BBT区所在块损坏后,将新的BBT区的块地址存放到索引文件中存储初始存储地址的Item的下一个Item中,同时将bit map中代表该地址与初始地址偏移位置的bit写为“0”,以此类推。因此,通过查找bit map中的最高bit为“0”所在位置可得到BBT区的块地址相对于BBT区的初始存储块地址的偏移位置,该偏移位置表明了索引文件中的Item的偏移,为此,根据该偏移位置就可查找到对应的索引文件的Item,从而可通过该对应的Item得到当前的BBT区所在块的地址。
如图6所示为本发明一实施例的索引文件更新示意图。在更新索引文件中的Item时采用乱序的形式进行Item的存储,在这种处理方式下,BBT区每次替换时所选择的块地址都需要大于原BBT区的块地址,在索引文件中更新Item时只需要查找未使用的Item,也即Item中的内容为“0xFFFF”的Item,并修改该Item为BBT区所在的最新的地址即可,可以使用例如NAND随机写入函数对该Item进行修改。在搜索最新有效索引条目时,只需要在Item中搜索除“0xFFFF”外数字最大的即为最新有效索引条目,该最新有效索引条目可表明最新的BBT区所在块的地址。但本发明不以此为限,在搜索最新有效索引条目时,也可以在Item中搜索数字最小的值,这种情况下BBT区每次替换选择的块地址都需要小于原BBT区所存放的块地址。
在各类使用NAND的产品中,特别是消费电子相关产品,由于用户操作的随意和程序异常的不可控性,整个系统在任何情况下均有可能出现断电或者程序异常,如果这些异常发生在更新坏块表,但还没有完成更新时,将对坏块表数据造成损坏,导致整个系统在下一次上电时由于找不到有效的坏块表而产生崩溃。为了解决以上问题,本发明一实施例提出采用两份坏块表和两份索引文件的方案。
本发明一实施例的坏块替换处理方法采用两份坏块表,分别为原始坏块表(OrigBBT)和备份坏块表(Bak BBT),上述两份表互为备份关系,分别存储于原始BBT区和备份BBT区,原始BBT区和备份BBT区互为备份关系,在其中一张坏块表发生损坏时,可以使用另一张坏块表进行恢复并为NAND闪存设备提供有效的数据支持,且该原始坏块表和备份坏块表的结构和功能可与上文所述的坏块表的结构和功能相同。对应地,分别为原始坏块表和备份坏块表建立两份索引文件,该两份索引文件分别为原始BBT区的原始索引文件(Orig BBTIndex)和备份BBT区的备份索引文件(Bak BBTIndex),上述两份索引文件均存储于Block0中,当BBT区所在的块发生坏块时,需要将BBT区所在的坏块映射至替换区域中的好块,并通过该原始索引文件和备份索引文件分别记录BBT区和备份BBT区所在块的地址。
图7为本发明一实施例的NAND闪存设备结构示意图,与图1的NAND闪存设备的结构大致相同,其相同之处在此不再赘述,其不同之处在于,本发明一实施例的NAND闪存设备的设备具有两个BBT区,分别为原始BBT区和备份BBT区,其中,原始坏块表存储于原始BBT区,备份坏块表存储于备份BBT区,且Block0中存储两张索引文件,分别为原始索引文件和备份索引文件,但本发明并不以此为限,索引文件也可存储于除Block0之外的其他指定的块中。其中,两个BBT区不限于地址相邻,原始BBT区和备份BBT区所在的块不限于位于第二个快block1和第三个块block2,还可以位于其他未被占用的可用区域,且该原始BBT区和备份BBT区所在的块不限于为一块,根据实际应用情况,也可为多个块。在发现原始BBT区和/或备份BBT区所在的块发生坏损时,使用替换区域中的替换块替换该坏块,与此同时,需要同步对原始索引文件和备份索引文件进行更新,在更新其中一个索引文件时,应该先更新索引条目(Item),然后再更新其标识(flag),保证标识正确地反映BBT的有效性。
图8为用于图7的坏块表和/或索引文件更新流程图,坏块表和/或索引文件的更新包括下述步骤:
S802:检测所操作的块是否为坏块,以得到所述所操作的块是否为坏块的信息:。
其中,如果检测到所操作的块为好块,则无需对所操作的块进行替换,转步骤S808。
S803:如果检测到所操作的块为坏块,则检测替换区域中的替换块是否用完。
S804:若替换块已经用完,则上报错误,弹出相应的报错信息,替换操作失败,转步骤S808。
S805:若替换块没有用完,则检测替换块是否为好块。
其中,如果检测到该替换块不为好块,则转步骤S803。
S806:如果检测到该替换块为好块,则用替换区域的该替换块替换所操作的该坏块,同时更新原始坏块表或原始索引文件。若所操作的坏块位于数据区域或替换区域,则更新原始坏块表,擦除原始坏块表并重写原始坏块表的Item,在原始坏块表的Item中记录该坏块与替换块之间的块映射关系,或者修改该坏块所对应的原始坏块表,以使该坏块映射至替换区域中的该替换块;若所操作的坏块位于BBT区,则更新原始索引文件,使用替换区域的替换块对该BBT区所在的坏块进行替换后,相应修改原始索引文件,在原始索引文件的Item中写入替换该坏块的该替换块的地址;
S807:根据上述步骤S806对原始坏块表以及原始索引文件所作的修改,相应地同步更新备份坏块表或备份索引文件。以使两互为备份的BBT或两互为备份的索引文件内容相同。;
S808:操作完成。
图9为图8的坏块表检测及同步流程图。本发明一实施例采用两份坏块表和两份索引文件的坏块替换处理方法的坏块表检测及同步包括下述步骤:
S902:检查原始坏块表的flag2是否有效,本发明实施例的原始坏块表与上文所述的坏块表结构和功能相同,也具有标识(flag2),flag2可以标识原始坏块表是否有效;
S903:若原始坏块表的flag2无效,则检查备份坏块表的flag3是否有效,本发明实施例的备份坏块表与上文所述的坏块表结构和功能相同,也具有标识(flag3),flag3可以标识备份坏块表是否有效;
S904:若备份坏块表的flag3也无效,则表明此时原始坏块表和备份坏块表均无效,系统出现异常,转步骤S911;
S905:若备份坏块表的flag3有效,则表明此时原始坏块表无效,而备份坏块表有效,此时可使用备份坏块表的数据恢复出原始坏块表,具体地,可在替换区域中重新查找一个替换块,将备份坏块表存储于该替换块中作为新的原始坏块表,最后将该替换块所在的块作为新的原始BBT区所在的块,同时将该新的原始BBT区所在的块地址保存到原始索引文件中;;
S906:将备份坏块表与备份坏块表进行同步之后,使用原始坏块表的数据作为系统数据,转步骤S909。
S907:若检测得到原始坏块表的flag2有效,则检查备份坏块表的flag3是否有效;
其中,若备份坏块表的flag3有效,则表明原始坏块表与备份坏块表为同步的,此时无需对原始坏块表与备份坏块表进行同步更新。
S908:若备份坏块表的flag3无效,则表明此时备份坏块表无效,而原始坏块表有效,此时可使用原始坏块表的数据恢复出备份坏块表,具体地,可在替换区域中重新查找一个替换块,将原始坏块表存储于该替换块中作为新的备份坏块表,最后将该替换块所在的块作为新的备份BBT区所在的块,同时将该新的备份BBT区所在的块地址保存到备份索引文件中,转步骤S906;
S909:坏块表检测及同步操作成功。
S910:坏块表检测及同步操作完成。
需要说明的是,本发明实施例的原始坏块表的flag2和/或备份坏块表的flag3无效、有效分别是指,flag2和flag3的值分别为“1”、“0”,但本发明不以此为限。
本领域技术人员应当意识到在不脱离本发明所附的权利要求所揭示的本发明的范围和精神的情况下所作的更动与润饰,均属本发明的权利要求的保护范围之内。
Claims (9)
1.一种NAND闪存设备,其特征在于,所述NAND闪存设备包括:
数据区域,包括多个块,用于存储数据;
替换区域,包括多个块,当所述数据区域和/或所述替换区域本身中的一个以上的块发生损坏而成为坏块时,作为替换块,用于替换所述一个以上的坏块;
BBT区,用于存储坏块表,所述坏块表指明所述坏块与所述替换块之间的映射关系;
BBT索引区,位于指定的块中,所述BBT索引区存储有索引文件,所述索引文件包括指引所述BBT区所在块的地址的索引条目;若所述坏块位于所述BBT区,修改所述BBT索引区的所述索引文件;
所述修改所述索引文件包括:对所述索引文件进行更新,将所述替换块的地址保存到索引文件中有效条目的下一个索引条目,所述有效条目是指数据内容为“0xFFFF”的前一个索引条目。
2.如权利要求1所述的NAND闪存设备,其特征在于,所述BBT区所在的块发生损坏时,所述替换区域中未使用的至少一个块还被选择作为所述BBT区中的坏块的替换块,并将所述替换块的地址作为一个索引条目存放在所述索引文件中。
3.如权利要求1所述的NAND闪存设备,其特征在于,所述BBT索引区所在的所述指定的块被设置在所述NAND闪存设备的第一块中。
4.如权利要求1-2任一所述的NAND闪存设备,其特征在于,该设备还包括备份BBT区,与所述BBT区互为备份;
所述BBT索引区的索引文件包括所述BBT区的索引文件和所述备份BBT区的索引文件。
5.一种NAND闪存设备的坏块处理方法,可用于如权利要求1-4任一所述的NAND闪存设备,其特征在于,所述方法包括:
检测所操作的块是否为坏块;
若所述所操作的块为坏块,使用所述替换区域中的替换块替换所述坏块;
若所述坏块位于所述BBT区,修改所述BBT索引区的所述索引文件。
6.如权利要求5所述的NAND闪存设备的坏块处理方法,其特征在于,所述索引文件还包括位索引表,包括多个位,用于指示所述索引文件中的所述有效条目在所述索引条目中的偏移位置;所述对所述索引文件进行更新之后还包括:对所述位索引表进行更新,根据所述有效条目,将所述位索引表中的有效索引的后一位置为“0”,所述有效索引为所述位索引表中取值为“0”的最高位。
7.如权利要求5所述的NAND闪存设备的坏块处理方法,其特征在于,所述替换区域中的替换块的地址小于或大于所述坏块所在的地址。
8.如权利要求7所述的NAND闪存设备的坏块处理方法,其特征在于,所述修改所述索引文件包括:对所述索引文件进行更新,在索引文件中查找数据内容为“0xFFFF”的索引条目,并将该索引条目的值更新为所述替换区域中的替换块所在的地址。
9.如权利要求5所述的一种NAND闪存设备的坏块处理方法,其特征在于,所述方法包括:
若所述所操作的块为坏块,使用所述替换区域中的替换块替换所述坏块;若所述坏块位于所述BBT区,修改所述BBT区的索引文件;
若所述坏块位于所述备份BBT区,修改所述备份BBT区的索引文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310751620.4A CN104750565B (zh) | 2013-12-31 | 2013-12-31 | Nand坏块处理方法及nand闪存设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310751620.4A CN104750565B (zh) | 2013-12-31 | 2013-12-31 | Nand坏块处理方法及nand闪存设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104750565A CN104750565A (zh) | 2015-07-01 |
CN104750565B true CN104750565B (zh) | 2019-08-30 |
Family
ID=53590306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310751620.4A Active CN104750565B (zh) | 2013-12-31 | 2013-12-31 | Nand坏块处理方法及nand闪存设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104750565B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105740163A (zh) * | 2016-01-29 | 2016-07-06 | 山东鲁能智能技术有限公司 | 一种Nand Flash坏块管理方法 |
KR20180026876A (ko) * | 2016-09-05 | 2018-03-14 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
FR3055992A1 (fr) * | 2016-09-09 | 2018-03-16 | Proton World International N.V. | Gestion d'index dans une memoire flash |
CN108614743A (zh) * | 2016-12-09 | 2018-10-02 | 北京京存技术有限公司 | 基于NAND flash的超级数据块处理方法和装置 |
CN107908500B (zh) * | 2017-11-30 | 2021-02-26 | 新华三技术有限公司 | 一种坏块识别方法及装置 |
KR102410306B1 (ko) * | 2018-01-29 | 2022-06-20 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
CN111475101B (zh) * | 2019-01-23 | 2022-07-19 | 广州安凯微电子股份有限公司 | 一种快闪存储器卡的修复方法、系统、装置和存储介质 |
CN110245036A (zh) * | 2019-06-17 | 2019-09-17 | 上海市共进通信技术有限公司 | 嵌入式系统中实现nand闪存存储器数据备份处理的系统及其方法 |
CN110333971B (zh) * | 2019-07-10 | 2021-08-17 | 深圳忆联信息系统有限公司 | Ssd坏块表备份方法、装置、计算机设备及存储介质 |
CN110795044B (zh) * | 2019-10-31 | 2023-04-11 | 深圳市友华通信技术有限公司 | NAND Flash存储器的坏块管理方法和系统 |
CN110837345A (zh) * | 2019-11-08 | 2020-02-25 | 杭州华澜微电子股份有限公司 | 一种坏块表的存放方法及装置 |
CN113782079A (zh) * | 2020-06-10 | 2021-12-10 | 深圳市中兴微电子技术有限公司 | 数据访问方法、控制器、存储器和存储介质 |
CN111651173B (zh) * | 2020-06-11 | 2024-03-26 | 深圳创维-Rgb电子有限公司 | key码数据烧录方法、装置、终端设备和可读存储介质 |
CN113176970B (zh) * | 2021-06-28 | 2021-10-22 | 中国核动力研究设计院 | 基于FPGA的nor flash坏块管理系统及方法 |
CN117369905B (zh) * | 2023-12-07 | 2024-03-19 | 广东匠芯创科技有限公司 | 闪存平台的开机方法、系统、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101567217A (zh) * | 2008-04-23 | 2009-10-28 | 中兴通讯股份有限公司 | 一种安全烧写闪存的方法及数据写入方法 |
CN101593157A (zh) * | 2008-05-27 | 2009-12-02 | 中兴通讯股份有限公司 | 非线性闪存的坏块管理方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8185685B2 (en) * | 2007-12-14 | 2012-05-22 | Hitachi Global Storage Technologies Netherlands B.V. | NAND flash module replacement for DRAM module |
-
2013
- 2013-12-31 CN CN201310751620.4A patent/CN104750565B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101567217A (zh) * | 2008-04-23 | 2009-10-28 | 中兴通讯股份有限公司 | 一种安全烧写闪存的方法及数据写入方法 |
CN101593157A (zh) * | 2008-05-27 | 2009-12-02 | 中兴通讯股份有限公司 | 非线性闪存的坏块管理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104750565A (zh) | 2015-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104750565B (zh) | Nand坏块处理方法及nand闪存设备 | |
US11163472B2 (en) | Method and system for managing storage system | |
US9817588B2 (en) | Memory device and operating method of same | |
US9244833B2 (en) | Data-storage device and flash memory control method | |
CN105843551B (zh) | 高性能和大容量储存重复删除中的数据完整性和损耗电阻 | |
US20150149697A1 (en) | System and method for supporting atomic writes in a flash translation layer | |
US20130254514A1 (en) | Wear-leveling method, storage device, and information system | |
US10489289B1 (en) | Physical media aware spacially coupled journaling and trim | |
CN108804045B (zh) | 一种坏块表建立方法及相关装置 | |
US10831401B2 (en) | Method, device and computer program product for writing data | |
CN111880956B (zh) | 一种数据同步方法和装置 | |
CN103577574A (zh) | 一种基于nand flash的高可靠线性文件系统 | |
EP3147797B1 (en) | Data management method, node and system for database cluster | |
CN111177143B (zh) | 键值数据存储方法、装置、存储介质与电子设备 | |
US10289321B1 (en) | Bad block table recovery in a solid state drives | |
CN112631950B (zh) | 一种l2p表的保存方法、系统、设备以及介质 | |
WO2023241350A1 (zh) | 数据处理方法、装置、数据接入端及存储介质 | |
US20230244382A1 (en) | Deallocated Block Determination | |
US9959044B2 (en) | Memory device including risky mapping table and controlling method thereof | |
US10782895B2 (en) | Management method of metadata for preventing data loss and memory device using the same | |
CN111124294B (zh) | 一种扇区映射信息的管理方法及装置、存储介质和设备 | |
JP6919156B2 (ja) | 電子機器、データ退避方法、及びプログラム | |
US20230281167A1 (en) | Hybrid synchronization using a shadow component | |
KR101676175B1 (ko) | 전원 손실 이후 데이터 손실을 방지하기 위한 메모리 저장 장치 및 방법 | |
CN105068896A (zh) | 基于raid备份的数据处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20170420 Address after: Nanping Street 400060 Chongqing Nan'an District Nancheng Road No. 199 left attached to the floor 403 Applicant after: Keen (Chongqing) Microelectronics Technology Co., Ltd. Address before: 400065 Chongqing Nan'an District huangjuezhen pass Fort Park No. 1 Applicant before: Chongqing City Communication & Technology Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |