CN102929795A - 一种NandFlash坏块管理方法 - Google Patents
一种NandFlash坏块管理方法 Download PDFInfo
- Publication number
- CN102929795A CN102929795A CN2012104290875A CN201210429087A CN102929795A CN 102929795 A CN102929795 A CN 102929795A CN 2012104290875 A CN2012104290875 A CN 2012104290875A CN 201210429087 A CN201210429087 A CN 201210429087A CN 102929795 A CN102929795 A CN 102929795A
- Authority
- CN
- China
- Prior art keywords
- piece
- block
- bad
- replace
- record
- 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.)
- Granted
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开一种NandFlash坏块管理方法,属于存储器领域,具体包括:进行初始坏块扫描,为扫描得到的坏块寻找替换块,并生成相应记录写入坏块替换区,待初始坏块扫描完成后创建位图表,根据所述坏块替换区中的记录进行位图标记,在操作过程中,当接收到块操作请求时根据位图中的标记判断块操作请求涉及的块是否为坏块,是则寻找其替换块并对其替换块进行操作,否则对当前块进行操作,若操作过程中出现坏块,则添加或修改坏块记录中的记录,并在位图表中增加对新出现的坏块进行的标记。其有益效果在于在占用内存不大的情况下支持大容量NandFlash芯片并且提高NandFlash芯片的访问速度。
Description
技术领域
本发明属于存储器领域,特别涉及一种NandFlash坏块管理方法。
背景技术
NandFlash是Flash内存的一种,其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。NandFlash存储器具有容量较大,改写速度快等优点,适用于大量数据的存储,因而在业界得到了越来越广泛的应用,如嵌入式产品中包括数码相机、MP3随身听记忆卡、体积小巧的U盘等。
NandFlash存在在初次使用时就存在坏块的可能性,并且在使用过程中也会产生坏块,目前采用建立映射表的方法管理NandFlash的坏块。
发明人在实现本发明的过程中发现,现有技术中至少存在以下缺陷:直接建立映射表的方法占用内存较大,且随着NandFlash容量的增加占用的内存容量也会成倍的增加。
发明内容
本发明的目的是为了克服现有技术的缺陷,提出一种NandFlash坏块管理方法。
本发明方法是通过下述技术方案实现的:
一种NandFlash坏块管理方法,其基本实施过程如下:
步骤A、检查初始坏块扫描标志是否置位,是则执行步骤B,否则进行初始坏块扫描,为扫描得到的坏块寻找替换块,并生成相应记录写入坏块替换区,待初始坏块扫描完成后将所述初始坏块扫描标志置位,执行步骤B;
步骤B:创建位图表,将所述位图表中的全部数据位的值置为第一预设值,读取所述坏块替换区中的记录,根据所述记录将所述位图表中与各坏块对应的数据位的值置为第二预设值进行位图标记,待位图标记完成后等待接收块操作请求,当接收到块操作请求时执行步骤C;
步骤C:通过检查所述位图表中与所述块操作请求涉及的块号相对应的标记判断所述块操作请求涉及的块是否为坏块,是则查找所述坏块替换区中与所述块操作请求涉及的块号相对应的记录,得到当前块的替换块,对所述替换块进行操作,执行步骤D,否则对当前块进行操作,执行步骤D;
步骤D:判断操作过程中是否出现新坏块,是则执行步骤E,否则提示操作成功,进程结束;
步骤E:为所述新坏块寻找替换块,并生成相应记录写入坏块替换区,将所述位图表中与所述新坏块对应的数据位的值置为第二预设值,对所述新坏块的替换块进行操作,返回执行步骤D。
其中,所述创建位图表具体为:
根据NandFlash中块的数量创建位图表,所述位图表中的bit数为NandFlash中块的数量的一倍或多倍。
所述检查所述位图表中与所述块操作请求涉及的块号相对应的数据位的值是否为第一预设值之前包括:判断所述块操作请求涉及的块号是否合法;
相应地,若合法则检查所述位图表中与所述块操作请求涉及的块号相对应的数据位的值是否为第一预设值,若不合法则提示块号不合法,操作失败;其中,若所述NandFlash中包含所述操作请求涉及的块号则所述块号合法,若所述NandFlash中不包含所述操作请求涉及的块号则所述块号不合法。
所述进行初始坏块扫描,为扫描得到的坏块寻找替换块,并生成相应记录写入坏块替换区,待扫描完成后将所述初始坏块扫描标志置位具体包括:
①定位到NandFlash的第一个块;
②判断当前块的OOB(Out of Band)区中是否有坏块标志,是则执行③,否则执行步骤⑥;
③检查所述坏块替换区是否已满,是则提示坏块替换区已满,将NandFlash不可用标志置位,等待接收块操作请求,当接收到块操作请求时执行步骤C,否则执行④;
④判断是否还有可用替换块,是则寻找当前可用替换块,执行,否则提示无可用替换块,将NandFlash不可用标志置位,等待接收块操作请求,当接收到块操作请求时执行步骤C;
⑤判断当前可用替换块的OOB区中是否有坏块标志,是则返回执行④,否则将当前块号和当前可用替换块块号作为一条记录写入所述坏块替换区,执行⑥;
⑥判断是否还有未扫描的块,是则定位到下一个块,返回执行②,否则扫描完成,将所述初始坏块扫描标志置位;
相应地,步骤C替换为:
检查所述NandFlash不可用标志是否置位,是则提示NandFlash不可用,操作失败,进程结束,否则通过检查所述位图表中与所述块操作请求涉及的块号相对应的标记判断所述块操作请求涉及的块是否为坏块,若是坏块则查找所述坏块替换区中与所述块操作请求涉及的块号相对应的记录,得到当前块的替换块,对所述替换块进行操作,执行步骤D,若不是坏块则对当前块进行操作,执行步骤D。
所述通过检查所述位图表中与所述块操作请求涉及的块号相对应的标记判断所述块操作请求涉及的块是否为坏块具体为:
检查所述位图表中与所述块操作请求涉及的块号相对应的数据位的值是否为第一预设值,若是则所述块操作请求涉及的块不为坏块,若不是则所述块操作请求涉及的块为坏块。
所述读取所述坏块替换区中的记录,根据所述记录将所述位图表中与坏块对应的数据位的值置为第二预设值进行位图标记具体包括:
①判断所述坏块替换区是否有未扫描的记录,是则执行②,否则位图标记完成;
③读取当前记录中的坏块块号,将所述位图表中与所述坏块块号对应的数据位的值置为第二预设值,执行③;
③判断所述坏块替换区中是否还有未扫描的记录,是则将当前记录的下一记录作为当前记录,返回执行②,否则位图标记完成。
所述为所述新坏块寻找替换块,并生成相应记录写入坏块替换区具体包括:
①检查所述坏块替换区是否已满,是则提示坏块替换区已满,操作失败,否则执行②;
③判断是否还有可用替换块,是则寻找当前可用替换块,执行③,否则提示无可用替换块,操作失败;
③判断当前可用替换块的OOB区中是否有坏块标志,是则返回执行②,否则将新坏块块号和当前可用替换块块号作为一条记录写入所述坏块替换区。
所述为所述新坏块寻找替换块,并生成相应记录写入坏块替换区之前包括:判断所述新坏块是否为某坏块的替换块;
相应地,若是则为所述新坏块寻找替换块,并修改所述坏块替换区中的相应记录,若不是则为所述新坏块寻找替换块,并生成相应记录写入坏块替换区。
所述为所述新坏块寻找替换块,并修改所述坏块替换区中的相应记录具体包括:
①判断是否还有可用替换块,是则寻找当前可用替换块,执行②,否则提示无可用替换块,操作失败;
②判断当前可用替换块的OOB区中是否有坏块标志,是则返回执行①,否则将所述坏块替换区中与所述某坏块对应的记录中的替换块块号更新为当前可用替换块块号。
本发明方法的有益效果在于:智能化定位刻字区域,生产效率高,通用性较强,对光环境也有较强的适应性。
附图说明
为了更清楚的说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本法明实施例一提供的一种NandFlash坏块管理的方法流程图;
图2为本发明实施例二提供的一种NandFlash坏块管理的方法中初始坏块扫描和位图创建及标记的方法流程图;
图3为本发明实施例二提供的一种NandFlash坏块管理的方法中块操作以及位图更新的方法流程图;
图4为本发明实施例三提供的一种NandFlash坏块管理的方法中块操作以及位图更新的方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
参见图1,本发明实施例提供了一种NandFlash坏块管理方法,所述方法具体包括:
步骤S1:检查初始坏块扫描标志是否置位,是则直接执行步骤S3,否则执行步骤S2;
步骤S2:进行初始坏块扫描,为扫描得到的坏块寻找替换块,并生成相应记录写入坏块替换区,待初始坏块扫描完成后将所述初始坏块扫描标志置位;
步骤S3:创建位图表,将所述位图表中的全部数据位的值置为第一预设值,读取所述坏块替换区中的记录,根据所述记录将所述位图表中与各坏块对应的数据位的值置为第二预设值进行位图标记,待位图标记完成后等待接收块操作请求;
其中,所述创建位图表具体为根据NandFlash中块的数量创建位图表,优选地,在本实施例中,所述位图表中每个bit表示NandFlash中一个块的状态,显而易见的是用1个bit表示NandFlash中1个块的状态是最节省内存空间的方案,本发明并不限定用于表示NandFlash中1个块所采用的bit数。
步骤S4:当接收到块操作请求时检查所述位图表中与所述块操作请求涉及的块号相对应的数据位的值是否为第一预设值,是则执行步骤S5,否则执行步骤S6;
优选地,在本实施例中,当接收到块操作请求时,在检查所述位图表中与所述块操作请求涉及的块号相对应的数据位的值是否为第一预设值之前还包括判断所述块操作请求涉及的块号是否合法;
相应地,若合法则检查所述位图表中与所述块操作请求涉及的块号相对应的数据位的值是否为第一预设值,若不合法则提示块号不合法,操作失败;其中,若所述NandFlash中包含所述操作请求涉及的块号则所述块号合法,若所述NandFlash中不包含所述操作请求涉及的块号则所述块号不合法。
步骤S5:对当前块进行操作,执行步骤S7;
步骤S6:查找所述坏块替换区中与所述块操作请求涉及的块号相对应的记录,得到当前块的替换块,对所述替换块进行操作,执行步骤S7;
步骤S7:判断操作过程中是否出现新坏块,是则执行步骤S8,否则提示操作成功,进程结束;
步骤S8:为所述新坏块寻找替换块,并生成相应记录写入坏块替换区,将所述位图表中与所述新坏块对应的数据位的值置为第二预设值,对所述新坏块的替换块进行操作,返回执行步骤S7。
具体地,在本实施例中,所述为所述新坏块寻找替换块,并生成相应记录写入坏块替换区之前还可以包括:判断所述新坏块是否为某坏块的替换块;
相应地,若是则为所述新坏块寻找替换块,并修改所述坏块替换区中的相应记录,若不是则为所述新坏块寻找替换块,并生成相应记录写入坏块替换区。
实施例二
本发明实施例提供了一种NandFlash坏块管理方法,所述方法具体包括初始坏块扫描、位图创建及标记、块操作以及位图更新四个部分,本实施例分别将初始坏块扫描和位图创建及标记作为一个过程、将块操作和位图更新作为一个过程进行阐述。
参见图2,初始化坏块扫描和位图创建及标记过程包括以下步骤:
步骤101: 检查初始坏块扫描标志是否置位,是则执行步骤114,否则执行步骤102;
其中,所述初始坏块扫描标志用于标识初始坏块扫描是否完成,NandFlash出厂时初始扫描标志处于复位状态,当初始坏块扫描完成时置位。
步骤102:定位到NandFlash中的第一个块;
步骤103:判断当前块的OOB区中是否有坏块标志,是则执行步骤104,否则执行步骤111;
NandFlash每一页大小为512+16(或256+8、2048+64)字节,其中512字节为存储数据的区域,16字节称为OOB(Out of Band)区,通常在OOB区存放坏块标记以及签名512字节的ECC校验码等。
步骤104:检查坏块替换区是否已满,是则执行步骤105,否则执行步骤106;
步骤105:提示坏块替换区已满,将NandFlash不可用标志置位,等待接收块操作请求,执行步骤201;
其中,所述NandFlash不可用标志用于标识NandFlash是否可用, NandFlash出厂时NandFlash不可用标志处于复位状态,当检测出NandFlash中坏块过多时将其置位。
步骤106:判断是否还有可用替换块,是则执行步骤108,否则执行步骤107;
通常NandFlash中用其7%到10%数量的块作为替换块。
步骤107:提示无可用替换块,将NandFlash不可用标志置位,等待接收块操作请求,执行步骤201;
步骤108:寻找当前可用替换块;
步骤109:判断当前可用替换块的OOB区是否有坏块标志,是则返回执行步骤106,否则执行步骤110;
步骤110:将当前块块号和当前可用替换块块号作为一条记录写入坏块替换区;
具体地,坏块替换区中的记录的结构可以为:坏块块号(当前块块号号) 替换块块号,例如所述NandFlash的第3个块为坏块,其替换块为所述NandFlash的第1000个块,则坏块替换区中关于所述NandFlash的第3个块的记录为:0x0003 0x03E8。
步骤111:判断NandFlash中是否还有未扫描的块,是则执行步骤112,否则执行步骤113;
步骤112:定位到当前块的下一个块,返回执行步骤103;
步骤113:置位初始坏块扫描标志,执行步骤114;
步骤114:根据NandFlash中块的数量创建位图表,并将位图表中的全部数据位的值置为第一预设值;
为占用尽量少的内存空间,优选地,在本实施例中,所述位图表中每个bit表示一个块的状态,即每个字节可以表示8个块的状态,例如,若所述NandFlash共有1024个块,则所述位图表的大小为1024bit,即128字节;
所述第一预设值为与下文的第二预设值不相同的数值即可,具体地,在本实施例中,所述第一预设值为1,例如,位图表中用于表示NandFlash中前8个块(第0个块至第7个块)状态的字节数据,在本步骤中被置为1111 1111。
步骤115:判断坏块替换区中是否有未扫描的记录,是则执行步骤116,否则执行步骤119;
步骤116:读取当前记录中的坏块块号,将位图表中对应数据位的值置为第二预设值;
具体地,所述第二预设值为与所述第一预设值不相同的数值即可,具体地,在本实施例中,所述第二预设值为0,例如,若当前记录为0x0003 0x03E8,则读取到的坏块块号为0x0003,将位图表中第4bit的值置为0,相应地,位图表中用于表示NandFlash中前8个块(第0个块至第7个块)状态的字节数据变为1110 1111。
步骤117:判断坏块替换区中是否还有未扫描的记录,是则执行步骤118,否则执行步骤119;
步骤118:将当前记录的下一记录作为当前记录,返回执行步骤116;
步骤119:提示位图标记完成,等待接收块操作请求,执行步骤201;
参见图3,块操作和位图更新过程包括以下步骤:
步骤201:当接收到块操作请求时检查NandFlash不可用标志是否置位,是则提示NandFlash不可用,操作失败,否则执行步骤202;
步骤202:判断所述块操作请求涉及的块号是否合法,是则执行步骤204,否则执行步骤203;
具体地,若所述NandFlash中包含所述操作请求涉及的块号则所述块号合法,若所述NandFlash中不包含所述操作请求涉及的块号则所述块号不合法。
步骤203:提示块号不合法,操作失败;
步骤204:检查位图表中当前块对应的数据位的值是否为第一预设值,是则执行步骤205,否则执行步骤206;
例如,若所述操作请求涉及的块号为0x0003,则检查位图表中第1字节第4bit的值,具体地,在本实施例中为检查位图表中第1字节第4bit的值是否为1。
步骤205:对当前块进行相应操作,执行步骤208;
具体地,所述操作包括向当前块中写入数据、擦除当前块中的数据等,在此不做限定。
步骤206:查找坏块替换区中坏块块号为当前块块号的记录,读取记录中的替换块块号;
步骤207:对替换块进行相应操作;
具体地,对替换块进行的操作即为原本要对当前块进行的操作,在此不再赘述。
步骤208:判断执行操作的过程中是否出现新坏块,是则执行步骤210,否则执行步骤209;
步骤209:提示操作成功;
步骤210:判断坏块替换区是否已满,是则执行步骤211,否则执行步骤212;
步骤211:提示坏块替换区已满,操作失败;
步骤212:判断是否还有可用替换块,是则执行步骤214,否则执行步骤213;
步骤213:提示无可用替换块,操作失败;
步骤214:寻找当前可用替换块;
步骤215:判断当前可用替换块的OOB区是否有坏块标志,是则返回执行步骤212,否则执行步骤216;
步骤216:将新坏块块号和当前可用替换块块号作为一条记录写入坏块替换区;
步骤217:将位图表中与新坏块对应的数据位的值置为第二预设值;
步骤218:返回当前可用替换块块号,返回执行步骤207。
实施例三
本发明实施例提供了一种NandFlash坏块管理方法,所述方法具体包括初始坏块扫描、位图创建及标记、块操作以及位图更新四个部分,本实施例分别将初始坏块扫描和位图创建及标记作为一个过程、将块操作和位图更新作为一个过程进行阐述。
初始坏块扫描和位图创建及标记过程与实施例二中方法相同,在此不再赘述;
参见图4,块操作和位图更新过程包括以下步骤:
步骤301:当接收到块操作请求时检查NandFlash不可用标志是否置位,是则提示NandFlash不可用,操作失败,否则执行步骤302;
步骤302:判断所述块操作请求涉及的块号是否合法,是则执行步骤304,否则执行步骤303;
具体地,若所述NandFlash中包含所述操作请求涉及的块号则所述块号合法,若所述NandFlash中不包含所述操作请求涉及的块号则所述块号不合法。
步骤303:提示块号不合法,操作失败;
步骤304:检查位图表中当前块对应数据位的值是否为第一预设值,是则执行步骤305,否则执行步骤306;
例如,若所述操作请求涉及的块号为0x0013,则检查位图表中第20bit,即第3字节第4bit的值,具体地,在本实施例中为检查位图表中第20bit的值是否为1。
步骤305:对当前块进行相应操作,执行步骤308;
具体地,所述操作包括向当前块中写入数据、擦除当前块中的数据等,在此不做限定。
步骤306:查找坏块替换区中坏块块号为当前块块号的记录,读取记录中的替换块块号;
步骤307:对替换块进行相应操作;
具体地,对替换块进行的操作即为原本要对当前块进行的操作,在此不再赘述。
步骤308:判断执行操作的过程中是否出现新坏块,是则执行步骤310,否则执行步骤309;
步骤309:提示操作成功,进程结束;
步骤310:判断出现的坏块是否为某坏块的替换块,是则执行步骤320,否则执行步骤311;
步骤311:判断坏块替换区是否已满,是则执行步骤312,否则执行步骤313;
步骤312:提示坏块替换区已满,操作失败;
步骤313:判断是否还有可用替换块,是则执行步骤315,否则执行步骤314;
步骤314:提示无可用替换块,操作失败;
步骤315:寻找当前可用替换块;
步骤316:判断当前可用替换块的OOB区是否有坏块标志,是则返回执行步骤313,否则执行步骤317;
步骤317:将当前坏块块号和当前可用替换块块号作为一条记录写入坏块替换区;
步骤318:将位图表中与新坏块对应的数据位的值置为第二预设值;
步骤319:返回当前可用替换块块号,返回执行步骤307;
步骤320:判断是否还有可用替换块,是则执行步骤322,否则执行步骤321;
步骤321:提示无可用替换块,操作失败;
步骤322:寻找当前可用替换块;
步骤323:判断当前可用替换块的OOB区是否有坏块标志,是则返回执行步骤320,否则执行步骤324;
步骤324:用当前可用替换块块号替换坏块替换区中替换块块号为新坏块块号的记录中的替换块块号;
步骤325:将位图表中与新坏块对应的数据位的值置为第二预设值,返回执行步骤319。
本实施例提供的块操作和位图更新方法与实施例一中提供的方法间的区别在于:实施例一中提供的方法在执行操作过程中出现坏块时无论出现的坏块是否为某个块的替换块均根据当前坏块生成一条新的记录,本实施例中提供的方法在执行操作过程中出现的坏块为某个块的替换块时不生成新的记录,只将坏块存储区中所述某个块相关的记录中的替换块块号更新为新的可用替换块块号,当执行操作过程中出现的坏块不为某个块的替换块时才根据当前坏块生成新的记录。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (9)
1.一种NandFlash坏块管理方法,其特征在于包括:
步骤A、检查初始坏块扫描标志是否置位,是则执行步骤B,否则进行初始坏块扫描,为扫描得到的坏块寻找替换块,并生成相应记录写入坏块替换区,待初始坏块扫描完成后将所述初始坏块扫描标志置位,执行步骤B;
步骤B:创建位图表,将所述位图表中的全部数据位的值置为第一预设值,读取所述坏块替换区中的记录,根据所述记录将所述位图表中与各坏块对应的数据位的值置为第二预设值进行位图标记,待位图标记完成后等待接收块操作请求,当接收到块操作请求时执行步骤C;
步骤C:通过检查所述位图表中与所述块操作请求涉及的块号相对应的标记判断所述块操作请求涉及的块是否为坏块,是则查找所述坏块替换区中与所述块操作请求涉及的块号相对应的记录,得到当前块的替换块,对所述替换块进行操作,执行步骤D,否则对当前块进行操作,执行步骤D;
步骤D:判断操作过程中是否出现新坏块,是则执行步骤E,否则提示操作成功,进程结束;
步骤E:为所述新坏块寻找替换块,并生成相应记录写入坏块替换区,将所述位图表中与所述新坏块对应的数据位的值置为第二预设值,对所述新坏块的替换块进行操作,返回执行步骤D。
2.根据权利要求1所述的方法,其特征在于,所述创建位图表具体为:
根据NandFlash中块的数量创建位图表,所述位图表中的bit数为NandFlash中块的数量的一倍或多倍。
3.根据权利要求1所述的方法,其特征在于,所述检查所述位图表中与所述块操作请求涉及的块号相对应的数据位的值是否为第一预设值之前包括:判断所述块操作请求涉及的块号是否合法;
相应地,若合法则检查所述位图表中与所述块操作请求涉及的块号相对应的数据位的值是否为第一预设值,若不合法则提示块号不合法,操作失败;其中,若所述NandFlash中包含所述操作请求涉及的块号则所述块号合法,若所述NandFlash中不包含所述操作请求涉及的块号则所述块号不合法。
4.根据权利要求1所述的方法,其特征在于,所述进行初始坏块扫描,为扫描得到的坏块寻找替换块,并生成相应记录写入坏块替换区,待扫描完成后将所述初始坏块扫描标志置位具体包括:
①定位到NandFlash的第一个块;
②判断当前块的OOB(Out of Band)区中是否有坏块标志,是则执行③,否则执行步骤⑥;
③检查所述坏块替换区是否已满,是则提示坏块替换区已满,将NandFlash不可用标志置位,等待接收块操作请求,当接收到块操作请求时执行步骤C,否则执行④;
④判断是否还有可用替换块,是则寻找当前可用替换块,执行⑤,否则提示无可用替换块,将NandFlash不可用标志置位,等待接收块操作请求,当接收到块操作请求时执行步骤C;
⑤判断当前可用替换块的OOB区中是否有坏块标志,是则返回执行④,否则将当前块号和当前可用替换块块号作为一条记录写入所述坏块替换区,执行⑥;
⑥判断是否还有未扫描的块,是则定位到下一个块,返回执行②,否则扫描完成,将所述初始坏块扫描标志置位;
相应地,步骤C替换为:
检查所述NandFlash不可用标志是否置位,是则提示NandFlash不可用,操作失败,进程结束,否则通过检查所述位图表中与所述块操作请求涉及的块号相对应的标记判断所述块操作请求涉及的块是否为坏块,若是坏块则查找所述坏块替换区中与所述块操作请求涉及的块号相对应的记录,得到当前块的替换块,对所述替换块进行操作,执行步骤D,若不是坏块则对当前块进行操作,执行步骤D。
5.根据权利要求4所述的方法,其特征在于,所述通过检查所述位图表中与所述块操作请求涉及的块号相对应的标记判断所述块操作请求涉及的块是否为坏块具体为:
检查所述位图表中与所述块操作请求涉及的块号相对应的数据位的值是否为第一预设值,若是则所述块操作请求涉及的块不为坏块,若不是则所述块操作请求涉及的块为坏块。
6.根据权利要求4所述的方法,其特征在于,所述读取所述坏块替换区中的记录,根据所述记录将所述位图表中与坏块对应的数据位的值置为第二预设值进行位图标记具体包括:
①判断所述坏块替换区是否有未扫描的记录,是则执行②,否则位图标记完成;
②读取当前记录中的坏块块号,将所述位图表中与所述坏块块号对应的数据位的值置为第二预设值,执行③;
③判断所述坏块替换区中是否还有未扫描的记录,是则将当前记录的下一记录作为当前记录,返回执行②,否则位图标记完成。
7.根据权利要求4所述的方法,其特征在于,所述为所述新坏块寻找替换块,并生成相应记录写入坏块替换区具体包括:
①检查所述坏块替换区是否已满,是则提示坏块替换区已满,操作失败,否则执行②;
②判断是否还有可用替换块,是则寻找当前可用替换块,执行③,否则提示无可用替换块,操作失败;
③判断当前可用替换块的OOB区中是否有坏块标志,是则返回执行②,否则将新坏块块号和当前可用替换块块号作为一条记录写入所述坏块替换区。
8.根据权利要求4所述的方法,其特征在于,所述为所述新坏块寻找替换块,并生成相应记录写入坏块替换区之前包括:判断所述新坏块是否为某坏块的替换块;
相应地,若是则为所述新坏块寻找替换块,并修改所述坏块替换区中的相应记录,若不是则为所述新坏块寻找替换块,并生成相应记录写入坏块替换区。
9.根据权利要求8所述的方法,其特征在于,所述为所述新坏块寻找替换块,并修改所述坏块替换区中的相应记录具体包括:
①判断是否还有可用替换块,是则寻找当前可用替换块,执行②,否则提示无可用替换块,操作失败;
②判断当前可用替换块的OOB区中是否有坏块标志,是则返回执行①,否则将所述坏块替换区中与所述某坏块对应的记录中的替换块块号更新为当前可用替换块块号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210429087.5A CN102929795B (zh) | 2012-10-31 | 2012-10-31 | 一种NandFlash坏块管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210429087.5A CN102929795B (zh) | 2012-10-31 | 2012-10-31 | 一种NandFlash坏块管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102929795A true CN102929795A (zh) | 2013-02-13 |
CN102929795B CN102929795B (zh) | 2015-08-26 |
Family
ID=47644598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210429087.5A Active CN102929795B (zh) | 2012-10-31 | 2012-10-31 | 一种NandFlash坏块管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102929795B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104407815A (zh) * | 2014-11-25 | 2015-03-11 | 浪潮电子信息产业股份有限公司 | 一种raid5磁盘阵列中坏扇区处理的方法和装置 |
CN105005453A (zh) * | 2015-07-17 | 2015-10-28 | 上海卫星工程研究所 | 星载nand flash固存坏区管理系统 |
CN105988938A (zh) * | 2014-09-17 | 2016-10-05 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
CN104051010B (zh) * | 2013-03-12 | 2017-04-12 | 旺宏电子股份有限公司 | 用于编程包含多个区块的非易失性存储器的方法及装置 |
CN106649137A (zh) * | 2016-10-18 | 2017-05-10 | 凌云光技术集团有限责任公司 | 一种Nand Flash坏块管理方法、装置及存储器 |
CN107797882A (zh) * | 2016-09-05 | 2018-03-13 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN107894872A (zh) * | 2017-09-30 | 2018-04-10 | 南京扬贺扬微电子科技有限公司 | SPI Nand Flash的坏块管理方式 |
CN109144408A (zh) * | 2017-06-19 | 2019-01-04 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN112596668A (zh) * | 2020-11-25 | 2021-04-02 | 航天信息股份有限公司 | 一种存储器的坏块处理方法及系统 |
CN115495024A (zh) * | 2022-11-16 | 2022-12-20 | 石家庄科林电气股份有限公司 | 基于NandFlash的录波文件存储方法、装置、终端及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070063132A (ko) * | 2005-12-14 | 2007-06-19 | 주식회사 팬택앤큐리텔 | 이동 통신 단말기의 배드 블럭 관리장치와 배드 블럭관리방법 |
CN101320596A (zh) * | 2008-06-10 | 2008-12-10 | 北京时代民芯科技有限公司 | 一种面向大容量flash固存的坏块管理方法 |
CN101593157A (zh) * | 2008-05-27 | 2009-12-02 | 中兴通讯股份有限公司 | 非线性闪存的坏块管理方法及装置 |
CN102169462A (zh) * | 2011-04-27 | 2011-08-31 | 中国科学院光电技术研究所 | 基于NAND Flash的数据记录方法与记录控制器 |
-
2012
- 2012-10-31 CN CN201210429087.5A patent/CN102929795B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070063132A (ko) * | 2005-12-14 | 2007-06-19 | 주식회사 팬택앤큐리텔 | 이동 통신 단말기의 배드 블럭 관리장치와 배드 블럭관리방법 |
CN101593157A (zh) * | 2008-05-27 | 2009-12-02 | 中兴通讯股份有限公司 | 非线性闪存的坏块管理方法及装置 |
CN101320596A (zh) * | 2008-06-10 | 2008-12-10 | 北京时代民芯科技有限公司 | 一种面向大容量flash固存的坏块管理方法 |
CN102169462A (zh) * | 2011-04-27 | 2011-08-31 | 中国科学院光电技术研究所 | 基于NAND Flash的数据记录方法与记录控制器 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104051010B (zh) * | 2013-03-12 | 2017-04-12 | 旺宏电子股份有限公司 | 用于编程包含多个区块的非易失性存储器的方法及装置 |
CN105988938B (zh) * | 2014-09-17 | 2020-10-02 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
CN105988938A (zh) * | 2014-09-17 | 2016-10-05 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
CN104407815A (zh) * | 2014-11-25 | 2015-03-11 | 浪潮电子信息产业股份有限公司 | 一种raid5磁盘阵列中坏扇区处理的方法和装置 |
CN105005453A (zh) * | 2015-07-17 | 2015-10-28 | 上海卫星工程研究所 | 星载nand flash固存坏区管理系统 |
CN105005453B (zh) * | 2015-07-17 | 2018-05-22 | 上海卫星工程研究所 | 星载nand flash固存坏区管理系统 |
CN107797882A (zh) * | 2016-09-05 | 2018-03-13 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN107797882B (zh) * | 2016-09-05 | 2021-01-01 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN106649137A (zh) * | 2016-10-18 | 2017-05-10 | 凌云光技术集团有限责任公司 | 一种Nand Flash坏块管理方法、装置及存储器 |
CN106649137B (zh) * | 2016-10-18 | 2020-04-21 | 凌云光技术集团有限责任公司 | 一种Nand Flash坏块管理方法、装置及存储器 |
CN109144408A (zh) * | 2017-06-19 | 2019-01-04 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN109144408B (zh) * | 2017-06-19 | 2021-05-18 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN107894872A (zh) * | 2017-09-30 | 2018-04-10 | 南京扬贺扬微电子科技有限公司 | SPI Nand Flash的坏块管理方式 |
CN112596668A (zh) * | 2020-11-25 | 2021-04-02 | 航天信息股份有限公司 | 一种存储器的坏块处理方法及系统 |
CN115495024A (zh) * | 2022-11-16 | 2022-12-20 | 石家庄科林电气股份有限公司 | 基于NandFlash的录波文件存储方法、装置、终端及存储介质 |
CN115495024B (zh) * | 2022-11-16 | 2023-03-10 | 石家庄科林电气股份有限公司 | 基于NandFlash的录波文件存储方法、装置、终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102929795B (zh) | 2015-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102929795A (zh) | 一种NandFlash坏块管理方法 | |
CN101169751B (zh) | 具有闪存设备的系统及其数据恢复方法 | |
CN104778127B (zh) | 一种nand flash写数据的方法和装置 | |
CN102306125B (zh) | 一种flash存储器的数据擦写方法 | |
CN101859604B (zh) | 闪存坏块的利用方法 | |
CN101339537B (zh) | 一种以页为单位的nand闪存管理方法 | |
CN102508788B (zh) | Ssd及ssd垃圾回收方法和装置 | |
CN104750625A (zh) | 数据储存装置以及快闪存储器控制方法 | |
CN102004698B (zh) | 一种闪存管理方法及系统 | |
CN101231617B (zh) | 闪存设备的数据处理方法 | |
CN101320596B (zh) | 一种面向大容量flash固存的坏块管理方法 | |
CN101923448A (zh) | 一种nand闪存的转换层读写方法 | |
US20160019142A1 (en) | Method of collecting garbage blocks in a solid state drive | |
CN103778964B (zh) | 一种NAND Flash烧写数据的处理、使用方法及装置、系统 | |
CN105183898A (zh) | 数据同步方法和数据同步系统 | |
CN103034586B (zh) | 通过闪存转换层识别上层应用的方法及其系统 | |
CN102541753B (zh) | 一种嵌入式存储器的读写优化方法 | |
CN103645993B (zh) | 一种基于大页面Flash的数据更新和读取方法 | |
CN103106148B (zh) | 区块管理方法、存储器控制器与存储器存储装置 | |
CN203311409U (zh) | 一种Nand Flash的坏列管理装置 | |
CN102360568B (zh) | 一种并行异步存储器及其数据读取方法 | |
CN105677244B (zh) | 一种降低tlc闪存的固态硬盘写放大的方法 | |
CN102662849B (zh) | 多通道闪存的区块管理方法 | |
CN103440181A (zh) | 一种文件修改的方法及系统 | |
CN106910529A (zh) | 一种增加TLC Nand闪存使用周期的方法及其系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |