CN107908500B - 一种坏块识别方法及装置 - Google Patents

一种坏块识别方法及装置 Download PDF

Info

Publication number
CN107908500B
CN107908500B CN201711241290.9A CN201711241290A CN107908500B CN 107908500 B CN107908500 B CN 107908500B CN 201711241290 A CN201711241290 A CN 201711241290A CN 107908500 B CN107908500 B CN 107908500B
Authority
CN
China
Prior art keywords
bbt
descriptor
nand flash
block
main
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
CN201711241290.9A
Other languages
English (en)
Other versions
CN107908500A (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.)
Hangzhou H3C Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies 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 Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN201711241290.9A priority Critical patent/CN107908500B/zh
Publication of CN107908500A publication Critical patent/CN107908500A/zh
Application granted granted Critical
Publication of CN107908500B publication Critical patent/CN107908500B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明提供一种坏块识别方法及装置,该方法包括:根据预设坏块表bbt描述符规则从所述Nand Flash的数据区中查找bbt描述符;若查找到bbt描述符,则对所述bbt描述符进行错误检查和纠正ecc校验;基于校验后的bbt描述符执行查找;当查找到所述校验后的bbt描述符对应的bbt表时,根据查找到的bbt表确定所述Nand Flash中的坏块。应用本发明实施例可以提高坏块识别的可靠性。

Description

一种坏块识别方法及装置
技术领域
本发明涉及网络通信技术领域,尤其涉及一种坏块识别方法及装置。
背景技术
Nand(与非)Flash(闪存)是Flash存储器的一种,其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。Nand Flash存储器具有容量较大,改写速度快等优点,适用于大量数据的存储。
Nand Flash在出厂时可能会存在坏块,同时在使用过程中也会产生坏块,对于文件存放在Nand Flash上的设计,必须考虑Nand Flash坏块对文件完整性的影响。
发明内容
本发明提供一种坏块识别方法及装置,以提高坏块识别的可靠性。
根据本发明的第一方面,提供一种坏块识别方法,应用于Nand Flash为存储介质的通信设备,该方法包括:
根据预设坏块表bbt描述符规则从所述Nand Flash的数据区中查找bbt描述符;
若查找到bbt描述符,则对所述bbt描述符进行错误检查和纠正ecc校验;
基于校验后的bbt描述符执行查找;
当查找到所述校验后的bbt描述符对应的bbt表时,根据查找到的bbt表确定所述Nand Flash中的坏块。
根据本发明的第二方面,提供一种坏块识别装置,应用于以Nand Flash为存储介质的通信设备,该装置包括:
查找单元,用于根据预设坏块表bbt描述符规则从所述Nand Flash的数据区中查找bbt描述符;
校验单元,用于若所述查找单元查找到bbt描述符,则对所述bbt描述符进行错误检查和纠正ecc校验;
所述查找单元,还用于基于校验后的bbt描述符执行查找;
确定单元,用于当所述查找单元查找到所述校验后的bbt描述符对应的bbt表时,根据查找到的bbt表确定所述Nand Flash中的坏块。
应用本发明公开的技术方案,通过根据预设坏块表bbt描述符规则从Nand Flash的数据区中查找bbt描述符;若查找到bbt描述符,则对bbt描述符进行错误检查和纠正ecc校验,并基于校验后的bbt描述符执行查找,当查找到校验后的bbt描述符对应的bbt表时,根据查找到的bbt表确定Nand Flash中的坏块,提高了坏块识别的可靠性。
附图说明
图1是本发明实施例提供的一种坏块识别方法的流程示意图;
图2是本发明实施例提供的一种坏块识别方法的流程示意图;
图3是本发明实施例提供的一种根据查找到的主bbt表或/和备bbt表创建内存bbt表的流程示意图;
图4是本发明实施例提供的一种坏块识别装置的结构示意图;
图5是本发明实施例提供的另一种坏块识别装置的结构示意图;
图6是本发明实施例提供的另一种坏块识别装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。
请参见图1,为本发明实施例提供的一种坏块识别方法的流程示意图,其中,该坏块识别方法可以应用于以Nand Flash为存储介质的通信设备(以下简称通信设备),如图1所示,该坏块识别方法可以包括以下步骤:
步骤101、根据预设bbt描述符规则从Nand Flash的数据区中查找bbt描述符。若查找到bbt描述符,则转至步骤102;否则,转至步骤104。
本发明实施例中,当通信设备需要确定Nand Flash中是否存在坏块时,通信设备可以先确定Nand Flash中是否记录有bbt表,并当存在bbt表时根据bbt表确定Nand Flash中的坏块。
本发明实施例中,为了获取Nand Flash中记录的bbt表,通信设备可以先根据预设bbt描述符规则从Nand Flash中查找bbt描述符。
其中,bbt描述符规则用于指示bbt描述符保存在Nand Flash中的位置。
例如,假设预设bbt描述符规则为预留Nand Flash的最后10个块用于存放bbt描述符,则通信设备可以通过扫描Nand Flash的最后10个块,查找bbt描述符所在的块,以获取bbt描述符。
需要说明的是,在本发明实施例中,考虑到bbt描述符保存在Nand Flash的oob(out of band,带外数据)区域时,可能会由于存在bit翻转导致根据查找到的bbt描述符无法查找到bbt表,进而导致无法根据bbt表确定Nand Flash中的坏块。
相应地,为了提高bbt描述符的可靠性,可以将bbt描述符保存在Nand Flash的数据(data)区域,并增加ecc(Error Checking and Correction,错误检查和纠正)校验,进而,当查找到bbt描述符时,可以通过ecc校验来提高bbt描述符的正确性,避免由于存在bit翻转导致的bbt描述符不正确。
步骤102、对bbt描述符进行ecc校验。
步骤103、基于校验后的bbt描述符执行查找。若查找到校验后的bbt描述符对应的bbt表,则转至步骤104;否则,转至步骤105。
步骤104、根据查找到的bbt表确定Nand Flash中的坏块。
本发明实施例中,当通信设备查找到bbt描述符时,可以对该bbt描述符进行ecc校验,并基于校验后的bbt描述符进行查找。
当通信设备查找到校验后的bbt描述符对应的bbt表时,通信设备可以根据该bbt表确定Nand Flash中的坏块。
在本发明其中一个实施例中,bbt描述符包括主bbt描述符和备bbt描述符;bbt表包括主bbt表和备bbt表。
在该实施例中,为了提高bbt表的可靠性,可以在Nand Flash中对bbt表进行备份,即在Nand Flash中记录主bbt表和备bbt表,同理,也会分别记录主bbt表对应的主bbt描述符和备bbt表对应的备bbt描述符。
在该实施例的一种实施方式中,上述查找到bbt描述符,可以包括:查找到主bbt描述符或备bbt描述符;
相应地,上述当查找到校验后的bbt描述符对应的bbt表时,根据查找到的bbt表确定Nand Flash中的坏块,包括:
当查找到校验后的主bbt描述符对应的主bbt表时,根据查找到的主bbt表确定NandFlash中的坏块;或,
当查找到校验后的备bbt描述符对应的备bbt表时,根据查找到的备bbt表确定NandFlash中的坏块。
在该实施方式中,当通信设备仅查找到主bbt描述符时,通信设备可以基于校验后的主bbt描述符执行查找。
当查找到校验后的主bbt描述符对应的主bbt表时,通信设备可以根据主bbt表确定NandFlash中的坏块。
当通信设备仅查找到备bbt描述符时,通信设备可以基于校验后的备bbt描述符执行查找。
当查找到校验后的备bbt描述符对应的备bbt表时,通信设备可以根据备bbt表确定NandFlash中的坏块。
在该实施例的另一种实施方式中,上述查找到bbt描述符,可以包括:查找到主bbt描述符和备bbt描述符;
相应地,上述当查找到校验后的bbt描述符对应的bbt表时,根据查找到的bbt表确定Nand Flash中的坏块,包括:
当查找到校验后的主bbt描述符对应的主bbt表,但未查找到校验后的备bbt描述符对应的备bbt表时,根据主bbt表确定Nand Flash中的坏块;
当查找到校验后的备bbt描述符对应的备bbt表,但未查找到校验后的主bbt描述符对应的主bbt表时,根据备bbt表确定Nand Flash中的坏块;
当查找到校验后的主bbt描述符对应的主bbt表和校验后的备bbt描述符对应的备bbt表,但主bbt表和备bbt表的版本不一致时,根据主bbt表和备bbt表中版本较新的一个确定Nand Flash中的坏块;
当查找到校验后的主bbt描述符对应的主bbt表和校验后的备bbt描述符对应的备bbt表,且主bbt表和备bbt表的版本一致时,根据主bbt表确定Nand Flash中的坏块。
在该实施方式中,当通信设备查找到主bbt描述符和备bbt描述符时,通信设备可以分别对主bbt描述符和备bbt描述进行ecc校验,并分别基于校验后的bbt描述符执行查找。
当通信设备仅查找到校验后的主bbt描述符对应的主btt表时,通信设备可以根据查找到的主bbt表确定NandFlash中的坏块。
其中,在该情况下,通信设备还可以根据主bbt表生成备bbt表,并记录到NandFlash中。
当通信设备仅查找到校验后的备bbt描述符对应的备btt表时,通信设备可以根据查找到的备bbt表确定NandFlash中的坏块。
其中,在该情况下,通信设备还可以根据备bbt表生成主bbt表,并记录到NandFlash中。
当通信设备查找校验后的主bbt描述符对应的主bbt表和校验后的备bbt描述符对应的备bbt表时,通信设备可以进一步比较主bbt表和备bbt表的版本,若二者一致,则通信设备可以根据主bbt表确定Nand Flash中的坏块;若二者不一致,则通信设备可以根据主bbt表和备bbt表中版本较新的一个确定Nand Flash中的坏块。
其中,当主bbt表和备bbt表版本不一致时,通信设备可以根据版本较新的bbt表更新版本较旧的bbt表。
举例来说,假设通信设备查找到主bbt表和备bbt表,且主bbt表的版本号为V1,备bbt表的版本号为V2,其中,版本号越大,表明版本越新,则当V1大于V2,即主bbt表的版本较新时,通信设备可以根据主bbt表确定Nand Flash中的坏块,并根据主bbt表更新备bbt表,使备bbt表与主bbt表保持一致;当V1小于V2,即备bbt表的版本较新时,通信设备可以根据备bbt表确定Nand Flash中的坏块,并根据备bbt表更新主bbt表,使主bbt表与备bbt表保持一致;当V1等于V2,即主bbt表的版本和备bbt表的版本一致时,通信设备可以根据主bbt表确定Nand Flash中的坏块。
步骤105、扫描Nand Flash,以确定Nand Flash中坏块。
本发明实施例中,当通信设备未查找到bbt描述符(如Nand Flash第一次使用,还未生成bbt表,或,bbt描述符丢失等),或,未查找到校验后的bbt描述符对应的bbt表(如bbt表丢失,或ecc校验后的bbt描述符不正确等)时,通信设备可以通过扫描Nand Flash的方式确定Nand Flash中的坏块。
其中,当bbt描述符包括主bbt描述符和备bbt描述符,通信设备未查找到bbt描述符可以包括:未查找到主bbt描述符和备bbt描述符;
未查找到校验后的bbt描述符对应的bbt表可以包括:
当仅查找到主bbt描述符时,未查找到校验后的主bbt描述符对应的主bbt表;
当仅查找到备bbt描述符时,未查找到校验后的备bbt描述符对应的备bbt表;
当查找到主bbt描述和备bbt描述符时,未查找到校验后的主bbt描述符对应的主bbt表和校验后的备bbt描述符对应的备bbt表。
在本发明其中一个实施例中,上述扫描Nand Flash,以确定Nand Flash中的坏块,可以包括:
对于第一类型Nand Flash中的任一块,当该块的第一页的oob区域的第一个字节中bit位为1的个数大于等于7时,确定该块为好块;否则,确定该块为坏块;其中,第一类型Nand Flash中每512字节最大出现1bit翻转;
对于第二类型Nand Flash中的任一块,当该块的第一页的带外数据区域的第一个字节中bit位为1的个数大于等于4时,确定该块为好块;否则,确定该块为坏块;其中,所述第二类型Nand Flash中每512字节最大出现4bit或8bit翻转。
在该实施例中,考虑到Nand Flash出厂时,厂家通常会通过Nand Flash中各块的第一页(page)的oob区域的第一个字节来标识对应的块是否为坏块,其中,当某块的第一页的oob区域的第一个字节为全1时,表明该块为好块,否则,表明该块为坏块。
同时,考虑到Nandflash存在bit翻转的特性,且翻转的位置随机,可能会存在于data区和oob区域的任何位置,从而,可能会出现某块为好块,但该块的第一页的oob区域的第一个字节不全为1的情况。
因此,在本发明实施例中,对于每512字节最多存在1bit翻转的Nand Flash(本文中称为第一类型Nand Flash),当需要识别该第一类型Nand Flash中的坏块,且未查找到bbt表时,通信设备可以扫描该第一类型Nand Flash中的每一个块,对于任一块,当该块的第一页的oob区域的第一个字节中bit位为1的个数大于等于7时,通信设备可以确定该块为好块;否则,即该块的第一页的oob区域的第一个字节中bit位为1的个数小于7时,通信设备可以确定该块为坏块。
对于每512字节最多存在4bit或8bit翻转的Nand Flash(本文中称为第二类型Nand Flash),当需要识别该第二类型Nand Flash中的坏块,且未查找到bbt表时,通信设备可以扫描该第二类型Nand Flash中的每一个块,对于任一块,当该块的第一页的oob区域的第一个字节中bit位为1的个数大于等于4时,通信设备可以确定该块为好块;否则,即该块的第二页的oob区域的第一个字节中bit位为1的个数小于4时,通信设备可以确定该块为坏块。
可见,在图1所示的方法流程中,通过将bbt描述符保存在Nand Flash的数据区域,并增加ecc校验,从而,可以提高bbt描述符的正确性,避免存在bbt表,但由于bit翻转导致bbt描述符不正确,进而,导致无法根据bbt描述符查找到bbt表的情况发生,增加了bbt表的健壮性。
此外,在本发明实施例中,通过对扫描Nand Flash识别坏块的方式进行优化,降低了由于bit翻转导致的坏块识别的错误的情况,降低了Nand Flash坏块识别的误判率。
为了使本领域技术人员更好地理解本发明实施例提供的技术方案,下面结合具体实例对本发明实施例提供的技术方案进行说明。
在该实施例中,以yaffs(Yet Another Flash File System,文件系统)文件系统为例,假设Nand Flash每512字节最多出现1bit翻转。
在该实施例中,如图2所示,坏块识别的实现流程如下:
处理201、初始化主备bbt描述符和主备bbt表相关结构,并在内存空间中创建bbtmap(映射)空间;
处理202、根据预设主(备)bbt描述符规则从Nand Flash的data区中查找主(备)bbt描述符;
在该实施例中,若查找到主bbt描述符或/和备bbt描述符,则根据主bbt描述符或/和备bbt描述符记录主bbt表所在page以及主bbt表的版本号或/和备bbt表所在page以及备bbt表的版本号,并转至203;若未查找到主bbt描述符和备bbt描述符,则记录主bbt表和备bbt表所在的page为-1,并转至205;其中,主(备)bbt表所在的page为-1,表明主(备)bbt表不存在;
处理203、对主bbt描述符或/和备bbt描述符进行ecc校验,并基于校验后的主bbt描述符或/和备bbt描述符执行查找;若查找到校验后的主bbt描述符对应的主bbt表或/和备bbt描述符对应的备bbt表,则转至204;否则,转至205。
处理204、根据查找到的主bbt表或/和备bbt表创建内存bbt表。
在该实施例中,如图3所示,根据查找到的主bbt表或/和备bbt表创建内存bbt表,可以包括:
处理31、若仅查找到主bbt表,则根据主bbt表创建内存bbt表,并根据主bbt表生成备bbt表;
处理32、若仅查找到备bbt表,则根据备bbt表创建内存bbt表,并根据主bbt表生成备bbt表;
处理33、若查找到主bbt表和备bbt表,则比较主bbt表和备bbt表的版本;若主bbt表的版本较新,则转至34;若备bbt表的版本较新,则转至35;若主bbt表和备bbt表的版本一致,转至36;
处理34、根据主bbt表创建内存bbt表,并根据主bbt表更新备bbt表;
处理35、根据备bbt表创建内存bbt表,并根据备bbt表更新主bbt表;
处理36、根据主bbt表创建内存bbt表。
处理205、扫描Nand Flash,根据扫描结果创建内存bbt表。
其中,通过扫描Nand Flash创建内存bbt表自后,还可以将主bbt表和备bbt表的版本号置为1
在该实施例中,对于Nand Flash中的任一块,当该块的第一个page的oob区域的第一个字节中bit位为1的个数大于等于7时,确定该块为好块;否则,确定该块为坏块;
其中,在Nand Flash中写入主bbt表和备bbt表之后,还需要生成主bbt描述符和备bbt描述符,并分别保存在主bbt表所在块和备bbt表所在块,并增加ecc校验;
可见,在该实施例中,通过对扫描Nand Flash识别坏块的方式进行优化,降低了由于bit翻转导致的坏块识别的错误的情况,降低了Nand Flash坏块识别的误判率;
此外,通过将bbt描述符保存在Nand Flash的数据区域,并增加ecc校验,从而,可以提高bbt描述符的正确性,避免存在bbt表,但由于bit翻转导致bbt描述符不正确,进而,导致无法根据bbt描述符查找到bbt表的情况发生,增加了bbt表的健壮性;
处理206、根据内存bbt表确定Nand Flash中的坏块。
在该实施例中,当yaffs文件系统需要判断Nand Flash中块的好坏时,可以先判断是否存在内存bbt表;若存在,则从内存bbt表中获取块的好坏信息。
需要说明的是,若yaffs文件系统确定不存在内存bbt表,则直接扫描Nand Flash,确定块的好坏信息,并根据扫描结果生成bbt表(包括主bbt表和备bbt表),并将该bbt表写入所分配的块中;
其中,若bbt表写入Nand Flash失败,则重新分配用于写入该bbt表的块,并将该bbt表写入新分配的块中;若写入成功,则将对应的bbt描述符写入bbt表所在的块的数据区;
需要说明的是,Nand Flash中记录bbt表的块需要标记为保留块,当yaffs系统获取块的好坏信息时,对于保留块,会返回该块为坏块,以避免yaffs文件系统使用该块;
此外,在yaffs文件系统使用过程中,如果产生了坏块,则需要更新bbt表,并更新该新产生的坏块的第一个page的oob区域的第一个字节中bit位为1的个数更新为表征该块为坏块的数值;
优选地,可以将该坏块的第一个page的oob区域的第一字节中bit位为1的个数更新为0,避免bit翻转导致坏块识别错误。
在该实施例中,由于yaffs文件系统使用过程中产生坏块时,既会更新bbt表,也会更新该块的oob区域的第一个字节中bit位为1的个数,这样即使bbt表被破坏或者丢失,那么使用过程中记录的坏块信息也不会丢失,提高了系统可靠性。
通过以上描述可以看出,在本发明实施例提供的技术方案中,通过根据预设坏块表bbt描述符规则从Nand Flash的数据区中查找bbt描述符;若查找到bbt描述符,则对bbt描述符进行错误检查和纠正ecc校验,并基于校验后的bbt描述符执行查找,当查找到校验后的bbt描述符对应的bbt表时,根据查找到的bbt表确定Nand Flash中的坏块,提高了坏块识别的可靠性。
请参见图4,为本发明实施例提供的一种坏块识别装置的结构示意图,其中,该装置可以应用于上述方法实施例中的通信设备,如图4所示,该装置可以包括:
查找单元410,用于根据预设坏块表bbt描述符规则从所述Nand Flash的数据区中查找bbt描述符;
校验单元420,用于若所述查找单元410查找到bbt描述符,则对所述bbt描述符进行错误检查和纠正ecc校验;
所述查找单元410,还用于基于校验后的bbt描述符执行查找;
确定单元430,用于当所述查找单元410查找到所述校验后的bbt描述符对应的bbt表时,根据查找到的bbt表确定所述Nand Flash中的坏块。
在可选实施例中,所述确定单元430,还用于若所述查找单元410未查找到bbt描述符,则扫描所述Nand Flash,以确定所述Nand Flash中的坏块。
在可选实施例中,所述确定单元430,还用于若所述查找单元410未查找到所述校验后的bbt描述符对应的bbt表,则扫描所述Nand Flash,以确定所述Nand Flash中的坏块。
在可选实施例中,所述查找到bbt描述符,包括:查找到主bbt描述符或备bbt描述符;
所述确定单元430,具体用于当所述查找单元410查找到校验后的主bbt描述符对应的主bbt表时,根据查找到的主bbt表确定所述NandFlash中的坏块;或,
当所述查找单元410查找到校验后的备bbt描述符对应的备bbt表时,根据查找到的备bbt表确定所述NandFlash中的坏块。
在可选实施例中,所述查找到bbt描述符,包括:查找到主bbt描述符和备bbt描述符;
所述确定单元430,具体用于当所述查找单元410查找到校验后的主bbt描述符对应的主bbt表,但未查找到校验后的备bbt描述符对应的备bbt表时,根据所述主bbt表确定所述Nand Flash中的坏块;
当所述查找单元410查找到校验后的备bbt描述符对应的备bbt表,但未查找到校验后的主bbt描述符对应的主bbt表时,根据所述备bbt表确定所述Nand Flash中的坏块;
当所述查找单元410查找到校验后的主bbt描述符对应的主bbt表和校验后的备bbt描述符对应的备bbt表,但所述主bbt表和所述备bbt表的版本不一致时,根据所述主bbt表和备bbt表中版本较新的一个确定所述Nand Flash中的坏块;
当所述查找单元410查找到校验后的主bbt描述符对应的主bbt表和校验后的备bbt描述符对应的备bbt表,且所述主bbt表和所述备bbt表的版本一致时,根据所述主bbt表确定所述Nand Flash中的坏块。
在可选实施例中,所述确定单元430,具体用于对于第一类型Nand Flash中的任一块,当该块的第一页的带外数据区域的第一个字节中bit位为1的个数大于等于7时,确定该块为好块;否则,确定该块为坏块;其中,所述第一类型Nand Flash中每512字节最大出现1bit翻转;
对于第二类型Nand Flash中的任一块,当该块的第一页的带外数据区域的第一个字节中bit位为1的个数大于等于4时,确定该块为好块;否则,确定该块为坏块;其中,所述第二类型Nand Flash中每512字节最大出现4bit或8bit翻转。
请一并参见图5,为本发明实施例提供的另一种坏块识别装置的结构示意图,如图5所示,在图4所示的坏块识别装置的基础上,图5所示的坏块识别装置还可以包括:
更新单元440,用于当所述Nand Flash在使用过程中产生了坏块时,更新bbt表,并将该块的第一页的oob区域的第一个字节中bit位为1的个数更新为表征该块为坏块的数值。
请一并参见图6,为本发明实施例提供的另一种坏块识别装置的结构示意图,如图6所示,在图4所示的坏块识别装置的基础上,图6所示的坏块识别装置还可以包括:
分配单元450,用于分配用于写入bbt表的块;
生成单元460,用于根据所述确定单元430的扫描结果生成bbt表;
写入单元470,用于将所述生成单元生成的bbt表写入所分配的块中;
所述分配单元450,还用于若所述写入单元470写入失败,则重新分配用于写入该bbt表的块;
所述写入单元470,还用于并将该bbt表写入新分配的块中;
所述写入单元470,还用于若写入成功,将该bbt表对应的bbt描述符写入该块的数据区。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
由上述实施例可见,通过根据预设坏块表bbt描述符规则从Nand Flash的数据区中查找bbt描述符;若查找到bbt描述符,则对bbt描述符进行错误检查和纠正ecc校验,并基于校验后的bbt描述符执行查找,当查找到校验后的bbt描述符对应的bbt表时,根据查找到的bbt表确定Nand Flash中的坏块,提高了坏块识别的可靠性。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

Claims (16)

1.一种坏块识别方法,应用于以与非Nand闪存Flash为存储介质的通信设备,其特征在于,该方法包括:
根据预设坏块表bbt描述符规则从Nand Flash的数据区中查找bbt描述符;
若查找到bbt描述符,则对所述bbt描述符进行错误检查和纠正ecc校验;
基于校验后的bbt描述符执行查找;
当查找到所述校验后的bbt描述符对应的bbt表时,根据查找到的bbt表确定所述NandFlash中的坏块。
2.根据权利要求1所述的方法,其特征在于,所述根据预设坏块表bbt描述符规则从所述Nand Flash的数据区中查找bbt描述符之后,还包括:
若未查找到bbt描述符,则扫描所述Nand Flash,以确定所述Nand Flash中的坏块。
3.根据权利要求1所述的方法,其特征在于,所述基于校验后的bbt描述符执行查找之后,还包括:
若未查找到所述校验后的bbt描述符对应的bbt表,则扫描所述Nand Flash,以确定所述Nand Flash中的坏块。
4.根据权利要求1所述的方法,其特征在于,所述查找到bbt描述符,包括:查找到主bbt描述符或备bbt描述符;
所述当查找到所述校验后的bbt描述符对应的bbt表时,根据查找到的bbt表确定所述Nand Flash中的坏块,包括:
当查找到校验后的主bbt描述符对应的主bbt表时,根据查找到的主bbt表确定所述NandFlash中的坏块;或,
当查找到校验后的备bbt描述符对应的备bbt表时,根据查找到的备bbt表确定所述NandFlash中的坏块。
5.根据权利要求1所述的方法,其特征在于,所述查找到bbt描述符,包括:查找到主bbt描述符和备bbt描述符;
所述当查找到所述校验后的bbt描述符对应的bbt表时,根据查找到的bbt表确定所述Nand Flash中的坏块,包括:
当查找到校验后的主bbt描述符对应的主bbt表,但未查找到校验后的备bbt描述符对应的备bbt表时,根据所述主bbt表确定所述Nand Flash中的坏块;
当查找到校验后的备bbt描述符对应的备bbt表,但未查找到校验后的主bbt描述符对应的主bbt表时,根据所述备bbt表确定所述Nand Flash中的坏块;
当查找到校验后的主bbt描述符对应的主bbt表和校验后的备bbt描述符对应的备bbt表,但所述主bbt表和所述备bbt表的版本不一致时,根据所述主bbt表和备bbt表中版本较新的一个确定所述Nand Flash中的坏块;
当查找到校验后的主bbt描述符对应的主bbt表和校验后的备bbt描述符对应的备bbt表,且所述主bbt表和所述备bbt表的版本一致时,根据所述主bbt表确定所述Nand Flash中的坏块。
6.根据权利要求2或3所述的方法,其特征在于,所述扫描所述Nand Flash,以确定所述Nand Flash中的坏块,包括:
对于第一类型Nand Flash中的任一块,当该块的第一页的带外数据区域的第一个字节中bit位为1的个数大于等于7时,确定该块为好块;否则,确定该块为坏块;其中,所述第一类型Nand Flash中每512字节最大出现1bit翻转;
对于第二类型Nand Flash中的任一块,当该块的第一页的带外数据区域的第一个字节中bit位为1的个数大于等于4时,确定该块为好块;否则,确定该块为坏块;其中,所述第二类型Nand Flash中每512字节最大出现4bit或8bit翻转。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述Nand Flash在使用过程中产生了坏块时,更新bbt表,并将该块的第一页的oob区域的第一个字节中bit位为1的个数更新为表征该块为坏块的数值。
8.根据权利要求2或3所述的方法,其特征在于,所述扫描所述Nand Flash,以确定所述Nand Flash中的坏块之后,还包括:
根据扫描结果生成bbt表,并将该bbt表写入所分配的块中;
若写入失败,则重新分配用于写入该bbt表的块,并将该bbt表写入新分配的块中;
若写入成功,将该bbt表对应的bbt描述符写入该块的数据区。
9.一种坏块识别装置,应用于以与非Nand闪存Flash为存储介质的通信设备,其特征在于,该装置包括:
查找单元,用于根据预设坏块表bbt描述符规则从Nand Flash的数据区中查找bbt描述符;
校验单元,用于若所述查找单元查找到bbt描述符,则对所述bbt描述符进行错误检查和纠正ecc校验;
所述查找单元,还用于基于校验后的bbt描述符执行查找;
确定单元,用于当所述查找单元查找到所述校验后的bbt描述符对应的bbt表时,根据查找到的bbt表确定所述Nand Flash中的坏块。
10.根据权利要求9所述的装置,其特征在于,
所述确定单元,还用于若所述查找单元未查找到bbt描述符,则扫描所述Nand Flash,以确定所述Nand Flash中的坏块。
11.根据权利要求9所述的装置,其特征在于,
所述确定单元,还用于若所述查找单元未查找到所述校验后的bbt描述符对应的bbt表,则扫描所述Nand Flash,以确定所述Nand Flash中的坏块。
12.根据权利要求9所述的装置,其特征在于,所述查找到bbt描述符,包括:查找到主bbt描述符或备bbt描述符;
所述确定单元,具体用于当所述查找单元查找到校验后的主bbt描述符对应的主bbt表时,根据查找到的主bbt表确定所述NandFlash中的坏块;或,
当所述查找单元查找到校验后的备bbt描述符对应的备bbt表时,根据查找到的备bbt表确定所述NandFlash中的坏块。
13.根据权利要求9所述的装置,其特征在于,所述查找到bbt描述符,包括:查找到主bbt描述符和备bbt描述符;
所述确定单元,具体用于当查找到校验后的主bbt描述符对应的主bbt表,但未查找到校验后的备bbt描述符对应的备bbt表时,根据所述主bbt表确定所述Nand Flash中的坏块;
当所述查找单元查找到校验后的备bbt描述符对应的备bbt表,但未查找到校验后的主bbt描述符对应的主bbt表时,根据所述备bbt表确定所述Nand Flash中的坏块;
当所述查找单元查找到校验后的主bbt描述符对应的主bbt表和校验后的备bbt描述符对应的备bbt表,但所述主bbt表和所述备bbt表的版本不一致时,根据所述主bbt表和备bbt表中版本较新的一个确定所述Nand Flash中的坏块;
当所述查找单元查找到校验后的主bbt描述符对应的主bbt表和校验后的备bbt描述符对应的备bbt表,且所述主bbt表和所述备bbt表的版本一致时,根据所述主bbt表确定所述Nand Flash中的坏块。
14.根据权利要求10或11所述的装置,其特征在于,
所述确定单元,具体用于对于第一类型Nand Flash中的任一块,当该块的第一页的带外数据区域的第一个字节中bit位为1的个数大于等于7时,确定该块为好块;否则,确定该块为坏块;其中,所述第一类型Nand Flash中每512字节最大出现1bit翻转;
对于第二类型Nand Flash中的任一块,当该块的第一页的带外数据区域的第一个字节中bit位为1的个数大于等于4时,确定该块为好块;否则,确定该块为坏块;其中,所述第二类型Nand Flash中每512字节最大出现4bit或8bit翻转。
15.根据权利要求9所述的装置,其特征在于,所述装置还包括:
更新单元,用于当所述Nand Flash在使用过程中产生了坏块时,更新bbt表,并将该块的第一页的oob区域的第一个字节中bit位为1的个数更新为表征该块为坏块的数值。
16.根据权利要求9所述的装置,其特征在于,所述装置还包括:
分配单元,用于分配用于写入bbt表的块;
生成单元,用于根据所述确定单元的扫描结果生成bbt表;
写入单元,用于将所述生成单元生成的bbt表写入所分配的块中;
所述分配单元,还用于若所述写入单元写入失败,则重新分配用于写入该bbt表的块;
所述写入单元,还用于并将该bbt表写入新分配的块中;
所述写入单元,还用于若写入成功,将该bbt表对应的bbt描述符写入该块的数据区。
CN201711241290.9A 2017-11-30 2017-11-30 一种坏块识别方法及装置 Active CN107908500B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711241290.9A CN107908500B (zh) 2017-11-30 2017-11-30 一种坏块识别方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711241290.9A CN107908500B (zh) 2017-11-30 2017-11-30 一种坏块识别方法及装置

Publications (2)

Publication Number Publication Date
CN107908500A CN107908500A (zh) 2018-04-13
CN107908500B true CN107908500B (zh) 2021-02-26

Family

ID=61849631

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711241290.9A Active CN107908500B (zh) 2017-11-30 2017-11-30 一种坏块识别方法及装置

Country Status (1)

Country Link
CN (1) CN107908500B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109102839B (zh) * 2018-08-15 2021-06-11 浪潮电子信息产业股份有限公司 一种坏块标记方法、装置、设备及可读存储介质
CN109669628B (zh) * 2018-11-14 2024-04-19 广州市中海达测绘仪器有限公司 基于flash设备的数据存储管理方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6895464B2 (en) * 2002-06-03 2005-05-17 Honeywell International Inc. Flash memory management system and method utilizing multiple block list windows
CN101510445A (zh) * 2009-03-19 2009-08-19 北京中星微电子有限公司 存储器坏块表的保存和读取的方法以及装置
CN102541676A (zh) * 2011-12-22 2012-07-04 福建新大陆通信科技股份有限公司 一种nand flash的状态检测及映射方法
CN103593303A (zh) * 2013-10-29 2014-02-19 福建星网视易信息系统有限公司 一种坏块表存放方法、装置以及与非门型非易失存储器
CN104750565A (zh) * 2013-12-31 2015-07-01 重庆重邮信科通信技术有限公司 Nand坏块处理方法及nand闪存设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI381390B (zh) * 2008-04-10 2013-01-01 Phison Electronics Corp 快閃記憶體的損壞區塊辨識方法、儲存系統及其控制器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6895464B2 (en) * 2002-06-03 2005-05-17 Honeywell International Inc. Flash memory management system and method utilizing multiple block list windows
CN101510445A (zh) * 2009-03-19 2009-08-19 北京中星微电子有限公司 存储器坏块表的保存和读取的方法以及装置
CN102541676A (zh) * 2011-12-22 2012-07-04 福建新大陆通信科技股份有限公司 一种nand flash的状态检测及映射方法
CN103593303A (zh) * 2013-10-29 2014-02-19 福建星网视易信息系统有限公司 一种坏块表存放方法、装置以及与非门型非易失存储器
CN104750565A (zh) * 2013-12-31 2015-07-01 重庆重邮信科通信技术有限公司 Nand坏块处理方法及nand闪存设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于ARM的嵌入式闪存驱动与UBIFS文件系统的分析与实现;赖尚校;《中国优秀硕士学位论文全文数据库 信息科技辑》;20160315(第03期);全文 *

Also Published As

Publication number Publication date
CN107908500A (zh) 2018-04-13

Similar Documents

Publication Publication Date Title
US20130326121A1 (en) Data-storage device and flash memory control method
US8392797B2 (en) Error correcting controller, flash memory chip system, and error correcting method thereof
US20070083697A1 (en) Flash memory management
US20050036390A1 (en) Non-volatile memory and non-volatile memory data rewriting method
CN104572489A (zh) 磨损均衡方法及装置
CN109669622B (zh) 一种文件管理方法、文件管理装置、电子设备及存储介质
CN109086078B (zh) 安卓系统升级方法、装置、服务器及移动终端
CN104750565A (zh) Nand坏块处理方法及nand闪存设备
CN112596668A (zh) 一种存储器的坏块处理方法及系统
CN107908500B (zh) 一种坏块识别方法及装置
CN114089915B (zh) 基于flash存储器的文件追加写操作方法及装置
CN110989931A (zh) 存储设备坏块处理方法、装置、设备及存储介质
US10782895B2 (en) Management method of metadata for preventing data loss and memory device using the same
CN113253934A (zh) Flash坏块处理方法、装置、计算机设备和可读存储介质
CN112035417A (zh) 存储块的管理方法、装置、存储介质以及电子装置
KR101676175B1 (ko) 전원 손실 이후 데이터 손실을 방지하기 위한 메모리 저장 장치 및 방법
US9535796B2 (en) Method, apparatus and computer for data operation
CN112346771A (zh) 升级文件生成方法及装置
CN110874285B (zh) 一种实现ext文件系统的可还原写操作的方法
CN114203252A (zh) 非易失存储器的坏块检测方法、装置、设备及存储介质
CN110633056B (zh) 在操作系统层面的Flash芯片的页面管理方法及存储设备
CN113050888A (zh) 一种快速剔除Flash不稳定块的方法、系统、装置及存储介质
CN113760781A (zh) 数据处理方法、装置、电子设备及存储介质
CN111897489A (zh) 数据写入方法、装置、设备及计算机可读存储介质
CN108694130B (zh) 存储器系统及存储器的管理方法

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