CN102929740A - 检测存储设备坏块的方法和装置 - Google Patents
检测存储设备坏块的方法和装置 Download PDFInfo
- Publication number
- CN102929740A CN102929740A CN201210413308XA CN201210413308A CN102929740A CN 102929740 A CN102929740 A CN 102929740A CN 201210413308X A CN201210413308X A CN 201210413308XA CN 201210413308 A CN201210413308 A CN 201210413308A CN 102929740 A CN102929740 A CN 102929740A
- Authority
- CN
- China
- Prior art keywords
- target data
- object block
- verification
- storing
- check code
- 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.)
- Pending
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种检测存储设备坏块的方法和装置,该方法包括:向目标块中写入目标数据和目标数据对应的普通校验强度的校验码;比较目标数据与目标块中存储的目标数据,获取目标块中存储的目标数据中发生翻转的位的数量;当目标块中存储的目标数据中发生翻转的位的数量大于或等于预设的第一校验水线并小于预设的第二校验水线时,为目标块添加准坏块标记,生成目标数据对应的高级校验强度的校验码并采用高级校验强度的校验码更新目标块中写入的普通校验强度的校验码;当目标块中存储的目标数据中发生翻转的位的数量大于或等于第二校验水线时,为目标块添加坏块标记。检测存储设备坏块的方法可保证存储数据能被正确读出,有效提高了存储设备的可靠性。
Description
技术领域
本发明涉及存储技术,尤其涉及一种检测存储设备坏块的方法和装置。
背景技术
Nand闪存是一种比硬盘驱动器更好的存储方案,由于其编程速度快、擦除时间短,在现有产品的应用中极具吸引力。根据技术方式,Nand闪存分为单层单元(Single Layer Cell,简称SLC)Nand闪存和多层单元(Multi-LevelCell,简称MLC)Nand闪存。SLC Nand闪存的每个存储单元中只有1bit数据,而MLC Nand闪存的每个存储单元存储2bit数据。与SLC Nand闪存相比,MLC Nand闪存的容量大、成本低,但由于MLC Nand闪存的存储单元中存放的资料较多,结构复杂,出错的几率大,容易发生位翻转,在使用MLCNand闪存时,需要使用纠错算法进行数据的校验和纠错。
现有技术中,针对Nand闪存的使用过程中新增坏块的检测主要采用以下两种方案。方案一:只有在擦除失败的时候,将块标记为坏块,如果在写的过程中出现位翻转现象,直接返回失败给上层文件系统处理,如果在读的过程中出现纠错算法不能纠正的情况,也直接返回失败给上层文件系统处理。方案二:在擦除失败的时候,将块标记为坏块,并且,如果在写的过程中出现位翻转现象,将块标记为坏块,如果在读的过程中出现纠错算法不能纠正的情况,也将块标记为坏块。
采用上述两种检测坏块的方法,容易造成由于坏块太多而找不到可用块进行写操作或数据无法读出的现象,甚至由于坏块数量太多使得芯片报废,从而导致存储设备的可靠性差。
发明内容
本发明的第一个方面是提供一种检测存储设备坏块的方法,用以解决现有技术中的缺陷,提高存储设备的可靠性。
本发明的另一个方面是提供一种检测存储设备坏块的装置,用以解决现有技术中的缺陷,提高存储设备的可靠性。
本发明的第一个方面是提供一种检测存储设备坏块的方法,包括:
向目标块中写入目标数据和目标数据对应的普通校验强度的校验码;
比较目标数据与目标块中存储的目标数据,获取目标块中存储的目标数据中发生翻转的位的数量;
当目标块中存储的目标数据中发生翻转的位的数量大于或等于预设的第一校验水线并小于预设的第二校验水线时,为目标块添加准坏块标记,生成目标数据对应的高级校验强度的校验码并采用高级校验强度的校验码更新目标块中写入的普通校验强度的校验码;
当目标块中存储的目标数据中发生翻转的位的数量大于或等于第二校验水线时,为目标块添加坏块标记。
如上所述的方法,其中,向目标块中写入目标数据和目标数据对应的普通校验强度的校验码包括:获取一个空闲块;判断空闲块是否携带坏块标记;如果是,返回获取一个空闲块的步骤;否则,以空闲块作为目标块,向目标块中写入目标数据和目标数据对应的普通校验强度的校验码;
比较目标数据与目标块中存储的目标数据,获取目标块中存储的目标数据中发生翻转的位的数量包括:从目标块中读取存储的目标数据,比较目标数据与目标块中存储的目标数据,统计目标块中存储的目标数据中发生翻转的位的数量。
本发明的另一个方面是提供一种检测存储设备坏块的方法,包括:
当目标块携带准坏块标记时,从目标块中读取目标数据和目标数据对应的高级校验强度的校验码,根据高级校验强度的校验码,采用高级校验强度的纠正算法纠正目标块中存储的目标数据;
当目标块未携带准坏块标记并且未携带坏块标记时,从目标块中读取目标数据和目标数据对应的普通校验强度的校验码,根据普通校验强度的校验码,采用普通校验强度的纠正算法纠正目标块中存储的目标数据。
如上所述的方法,其中,采用普通校验强度的纠正算法纠正目标块中存储的目标数据之后,还包括:
根据从目标块中读取的目标数据和目标数据对应的普通校验强度的校验码,获取目标块中存储的目标数据中发生翻转的位的数量;
当目标块中存储的目标数据中发生翻转的位的数量大于或等于预设的第一校验水线时,为目标块添加准坏块标记,生成目标数据对应的高级校验强度的校验码并采用高级校验强度的校验码更新目标块中写入的普通校验强度的校验码,向文件系统返回采用普通校验强度的纠正算法纠正的目标块中存储的目标数据;
当目标块中存储的目标数据中发生翻转的位的数量小于第一校验水线时,向文件系统返回采用普通校验强度的纠正算法纠正的目标块中存储的目标数据。
如上所述的方法,其中,采用高级校验强度的纠正算法纠正目标块中存储的目标数据之后,还包括:
根据从目标块中读取的目标数据和目标数据对应的高级校验强度的校验码,获取目标块中存储的目标数据中发生翻转的位的数量;
当目标块中存储的目标数据中发生翻转的位的数量大于或等于预设的第二校验水线时,为目标块添加坏块标记,向目标块的下一个空闲块中写入并向文件系统返回采用最高校验强度纠正的目标块中存储的目标数据,;
当目标块中存储的目标数据中发生翻转的位的数量小于预设的第二校验水线时,向文件系统返回采用最高校验强度纠正的目标块中存储的目标数据。
本发明的又一个方面是提供一种检测存储设备坏块的装置,包括:
写入单元,用于向目标块中写入目标数据和目标数据对应的校验码;
比较单元,用于比较目标数据与目标块中存储的目标数据,获取目标块中存储的目标数据中发生翻转的位的数量;
标记单元,用于当目标块中存储的目标数据中发生翻转的位的数量大于或等于预设的第一校验水线并小于预设的第二校验水线时,为目标块添加准坏块标记,生成目标数据对应的高级校验强度的校验码并采用高级校验强度的校验码更新目标块中写入的普通校验强度的校验码,当目标块中存储的目标数据中发生翻转的位的数量大于或等于第二校验水线时,为目标块添加坏块标记。
如上所述的装置,其中,写入单元具体用于获取一个空闲块,判断空闲块是否携带坏块标记,如果是,再次获取一个空闲块,否则,以空闲块作为目标块,向目标块中写入目标数据和目标数据对应的普通校验强度的校验码;
比较单元具体用于从目标块中读取存储的目标数据,比较目标数据与目标块中存储的目标数据,统计目标块中存储的目标数据中发生翻转的位的数量。
本发明的再一个方面是提供一种检测存储设备坏块的装置,包括:
读取单元,用于当目标块携带准坏块标记时,从目标块中读取目标数据和目标数据对应的高级校验强度的校验码,当目标块未携带准坏块标记并且未携带坏块标记时,从目标块中读取目标数据和目标数据对应的普通校验强度的校验码;
校验单元,用于在目标块携带准坏块标记时,根据高级校验强度的校验码,采用高级校验强度的纠正算法纠正目标块中存储的目标数据,并用于在目标块未携带准坏块标记并且未携带坏块标记时,根据普通校验强度的校验码,采用普通校验强度的纠正算法纠正目标块中存储的目标数据。
如上所述的装置,其中,还包括:
比较单元,用于在目标块未携带准坏块标记并且未携带坏块标记时,根据从目标块中读取目标数据和目标数据对应的普通校验强度的校验码,获取目标块中存储的目标数据中发生翻转的位的数量;
标记单元,用于在目标块中存储的目标数据中发生翻转的位的数量大于或等于预设的第一校验水线时,为目标块添加准坏块标记,生成目标数据对应的高级校验强度的校验码并采用高级校验强度的校验码更新目标块中写入的普通校验强度的校验码;
收发单元,用于向文件系统返回采用普通校验强度纠正的目标块中存储的目标数据。
如上所述的装置,其中,还包括:
比较单元还用于在目标块携带准坏块标记时,根据从目标块中读取目标数据和目标数据对应的高级校验强度的校验码,获取目标块中存储的目标数据中发生翻转的位的数量;
标记单元还用于在目标块中存储的目标数据中发生翻转的位的数量大于或等于预设的第二校验水线时,为目标块添加坏块标记,向目标块的下一个空闲块中写入采用最高校验强度纠正的目标块中存储的目标数据;
收发单元还用于向文件系统返回采用最高校验强度纠正的目标块中存储的目标数据。
由上述发明内容可见,本发明所提供的检测存储设备坏块的方法和装置,通过在系统中为Nand Flash的位翻转数量设置水线,区分出块的不同状态,并针对不同状态设置不同的数据校验强度,可保证块由正常块变为坏块时期中的数据可以被正确读出,有效提高了存储设备的可靠性。
附图说明
图1为本发明实施例一的检测存储设备坏块的方法的流程图;
图2为本发明实施例二的检测存储设备坏块的方法的流程图;
图3为本发明实施例三的检测存储设备坏块的装置的结构示意图;
图4为本发明实施例四的检测存储设备坏块的装置的结构示意图;
图5为本发明实施例六的检测存储设备坏块的方法的流程图;
图6为本发明实施例七的检测存储设备坏块的方法的流程图;
图7为本发明实施例八的检测存储设备坏块的装置的结构示意图;
图8为本发明实施例九的检测存储设备坏块的装置的结构示意图。
具体实施方式
图1为本发明实施例一的检测存储设备坏块的方法的流程图。如图1所示,本实施例的方法包括:
步骤101:向目标块中写入目标数据和目标数据对应的普通校验强度的校验码。
在本步骤中,具体的,写入的目标数据存放于该目标块的数据存储区;所生成的普通校验强度的校验码存储于该目标块的空闲存储区。优选地,该普通校验强度可以为芯片要求的校验强度。
步骤102:比较目标数据与目标块中存储的目标数据,获取目标块中存储的目标数据中发生翻转的位的数量。
具体地,可将步骤1中写入目标块中的目标数据读出,然后,与目标数据进行对比统计,得到目标块中存储的目标数据发生翻转的位的位数。
步骤103:判断目标块中存储的目标数据中发生翻转的位数是否大于或等于第二校验水线。
步骤104:若目标块中存储的目标数据中发生翻转的位的数量大于或等于第二校验水线,为目标块添加坏块标记。
具体地,该第二校验水线可以为芯片所要求的校验强度。例如,可设置第二校验水线为8bit/512Byte。表示若一个目标块中所存储的数据的位翻转数量超过此值,则表示该块已经是一个坏块,不能再存储数据。此时,给该块添加坏块标记。具体地,该坏块标记可以存储在闪存空闲区内。优选地,可存储在空闲区的第6个字节。若该字节内是非0xFF的值,则表示此块为坏块。
步骤105:若目标块中存储的目标数据中发生翻转的位的数量小于预设的第二校验水线时,继续判断该翻转的位数是否大于或等于第一校验水线。
步骤106:若翻转的位数大于或等于预设的第一校验水线,为目标块添加准坏块标记,生成目标数据对应的高级校验强度的校验码并更新;
步骤107:若翻转的位数小于预设的第一校验水线,向文件系统返回写入成功消息。
在该步骤中,具体地,第一校验水线的值可以为一个低于第二校验水线且接近第二校验水线的值,比如,可以设置为第二校验水线的值的75%,即若第二校验水线的值为8bit/512Byte,则第一校验水线的值就为6bit/512Byte。第一校验水线表示一个块已经接近坏块了,还可以存储数据,但是需要对数据进行加强保护。
当目标块中存储的目标数据中发生翻转的位的数量大于或等于预设的第一校验水线并小于预设的第二校验水线时,可以为此目标块添加准坏块标记,具体地,该准坏块标记可以存储在闪存空闲区内,且优选地,可以存储在存储坏块标记的位置的后面。同时,生成目标数据对应的高级校验强度的校验码并采用高级校验强度的校验码更新目标块中写入的普通校验强度的校验码。当目标块为准坏块时,需对该准坏块进行加强保护,即要提高其校验强度。该提高的校验强度即为高级校验强度。该高级校验强度的校验强度略高于普通校验强度,以保证当目标块中的位翻转数量刚超过第二校验水线时,还可以将数据完全纠正过来。具体地,可以设置该高级校验强度为普通校验强度的125%。如,普通校验强度可以设为8bit/512Byte,则高级校验强度可以为10bit/512Byte。
在本发明实施例一中,通过在系统中为写入数据的位翻转数量设置水线,区分出块的不同状态,并针对不同状态设置不同的数据校验强度,可保证块由正常块变为坏块时期中的数据可以被正确读出,有效提高了存储设备的可靠性。
图2为本发明实施例二的检测存储设备坏块的方法的流程图。如图2所示,该方法可以包括:
步骤201:获取一个空闲块。具体地,在有待写入数据时,文件系统会首先查找Nand闪存中的空闲块,然后选择一个空闲块。
步骤202:判断所选择的空闲块是否携带坏块标记。具体地,若该块携带坏块标记,则表明该块已不能存储数据,则返回步骤201,继续获取下一个空闲块。
具体地,所选择的空闲块所携带的坏块标记可以为出厂坏块标记,也可以为新增坏块标记。因Nand flash生产工艺的问题,芯片在出厂的时候允许有一定的坏块,这些坏块被称为固有坏块。这些固有坏块会被厂家打上出厂坏块标记,在有数据写入时,便不会存储进这些坏块中。而这些新增坏块标记则是在数据的读写过程中添加进去的。
步骤203:若该块不携带坏块标记,则以该空闲块作为目标块,向目标块中写入目标数据和目标数据对应的普通校验强度的校验码。
具体地,写入的目标数据存放于该目标块的数据存储区;所生成的普通校验强度的校验码存储于该目标块的空闲存储区。优选地,该普通校验强度可以为芯片要求的校验强度。
步骤204:比较目标数据与目标块中存储的目标数据,获取目标块中存储的目标数据中发生翻转的位的数量。具体地,可以包括:从目标块中读取存储的目标数据,然后比较目标数据与目标块中存储的目标数据,并统计目标块中存储的目标数据中发生翻转的位的数量。
步骤205:判断目标块中存储的目标数据中发生翻转的位数是否大于或等于第二校验水线。
步骤206:若目标块中存储的目标数据中发生翻转的位的数量大于或等于第二校验水线,则为目标块添加坏块标记。
具体地,该第二校验水线可以为芯片所要求的校验强度。例如,可设置第二校验水线为8bit/512Byte。即若一个目标块中所存储的数据的位翻转数量超过此值,则表示该块已经是一个坏块,不能再存储数据。此时,给该块添加坏块标记。为目标块添加坏块标记之后,向文件系统返回写入失败消息,并返回步骤201,继续获取下一个空闲块。
具体地,该坏块标记可以存储在闪存的空闲区内,优选地,可存储在空闲区的第6个字节内。若该字节内是非0xFF的值,则表示此块为坏块。
步骤207:若目标块中存储的目标数据中发生翻转的位的数量小于预设的第二校验水线时,继续判断该翻转的位数是否大于或等于预设的第一校验水线。
步骤208:若翻转的位数大于或等于预设的第一校验水线,则为目标块添加准坏块标记,生成目标数据对应的高级校验强度的校验码并采用高级校验强度的校验码更新。
在该步骤中,具体地,第一校验水线的值可以为一个低于第二校验水线且接近第二校验水线的值,比如,可以设置为第二校验水线的值的75%,即若第二校验水线的值为8bit/512Byte,则第一校验水线的值就为6bit/512Byte。第一校验水线表示一个块已经接近坏块了,还可以存储数据,但是需要对数据进行加强保护。
当目标块中存储的目标数据中发生翻转的位的数量大于或等于预设的第一校验水线并小于预设的第一校验水线时,可以为此目标块添加准坏块标记,具体地,该准坏块标记可以存储在闪存空闲区内存储坏块标记的位置的后面。同时,生成目标数据对应的高级校验强度的校验码并采用高级校验强度的校验码更新目标块中写入的普通校验强度的校验码。当目标块为准坏块时,需对该准坏块进行加强保护,即要提高其校验强度。该提高的校验强度即为高级校验强度。该高级校验强度的校验强度略高于普通校验强度,以保证当目标块中的位翻转数量刚超过第二校验水线时,还可以将数据完全纠正过来。具体地,可以设置该高级校验强度为普通校验强度的125%。如,普通校验强度可以设为8bit/512Byte,则高级校验强度可以为10bit/512Byte。
步骤209:向文件系统返回写入成功消息。具体地,可以在采用高级校验强度的校验码更新目标块中写入的普通校验强度的校验码之后,向文件系统返回写入成功消息;或者,当数据翻转位数小于第一校验水线的时候,直接向文件系统返回写入成功消息。
在本发明实施例二中,通过在系统中为数据的位翻转数量设置水线,区分出块的不同状态,并针对不同状态设置不同的数据校验强度,可保证块由正常块变为坏块时期中的数据可以被正确读出;且在写入数据之前,先判断块的状态,保证了数据不会被写入坏块,有效提高了设备存储数据的可靠性。
图3为本发明实施例三的检测存储设备坏块的装置的结构示意图。如图3所示,检测存储设备坏块的装置300可包括:写入单元301,比较单元302和标记单元303。
具体地,写入单元301用于向目标块中写入目标数据和目标数据对应的校验码。具体地,写入的目标数据存放于该目标块的数据存储区;目标数据所对应的校验码存储于该目标块的空闲存储区。该校验码可以为普通校验强度的校验码,也可以为高级校验强度对应的校验码。优选地,该普通校验强度可以为芯片要求的校验强度,高级校验强度可以为略高于普通校验强度的的校验强度。具体地,可以设置该高级校验强度为普通校验强度的125%。如,普通校验强度可以设为8bit/512Byte,则高级校验强度可以为10bit/512Byte。
比较单元302用于比较目标数据与目标块中存储的目标数据,获取目标块中存储的目标数据中发生翻转的位的数量。具体地,通过获取目标块中存储的目标数据中发生翻转的位的数量,可判断块的状态,并可根据块的不同状态选取不同的校验强度对数据进行校验。
标记单元303用于当目标块中存储的目标数据中发生翻转的位的数量大于或等于预设的第一校验水线并小于预设的第二校验水线时,为目标块添加准坏块标记,生成目标数据对应的高级校验强度的校验码并采用高级校验强度的校验码更新目标块中写入的普通校验强度的校验码,当目标块中存储的目标数据中发生翻转的位的数量大于或等于第二校验水线时,为目标块添加坏块标记。具体地,该第二校验水线可以为芯片所要求的校验强度。若一个目标块中所存储的数据的位翻转数量超过此值,则表示该块已经是一个坏块,不能再存储数据。此时,给该块添加坏块标记。第一校验水线的值可以为一个低于第二校验水线且接近第二校验水线的值,比如,可以设置为第二校验水线的值的75%,即若第二校验水线的值为8bit/512Byte,则第一校验水线的值就为6bit/512Byte。第一校验水线表示一个块已经接近坏块了,还可以存储数据,但是需要对数据进行加强保护。
具体地,该添加的坏块标记可以存储在闪存空闲区内,优选地,可存储在该区的第6个字节。若该字节内是非0xFF的值,则表示此块为坏块。准坏块标记也可以存储在闪存空闲区内,优选地,可以存储在坏块标记的后边一个字节。即,若坏块标记存储在第6个字节内,则准坏块标记可以存储在第7字节。
在本发明实施例三中,通过比较单元和标记单元对写入数据的位翻转的判断以及对目标块状态的判断,并针对不同状态设置不同的数据校验强度,可保证块由正常块变为坏块时期中的数据可以被正确读出,有效提高了存储设备的可靠性。
图4为本发明实施例四的检测存储设备坏块的装置的结构示意图。如图4所示,在上述实施例三的基础上,检测存储设备坏块的装置400还可以包括收发单元304。
具体地,在上述实施例三的基础上,写入单元301具体还用于获取一个空闲块,判断空闲块是否携带坏块标记,如果是,再次获取一个空闲块,否则,以空闲块作为目标块,向目标块中写入目标数据和目标数据对应的普通校验强度的校验码。
具体地,在文件系统有待写入数据时,会首先查找Nand闪存中的空闲块,然后选择一个空闲块。若所选择的空闲块携带坏块标记,则表明此空闲块是一个坏块,不能存储数据,系统需返回获取下一个空闲块。所选择的空闲块所携带的坏块标记可以为出厂坏块标记,也可以为新增坏块标记。因Nandflash生产工艺的问题,芯片在出厂的时候允许有一定的坏块,这些坏块被称为固有坏块。这些固有坏块会被厂家打上出厂坏块标记,在有数据写入时,便不会存储进这些坏块中。而这些新增坏块标记则是在数据的读写过程中添加进去的。
比较单元302具体还用于从目标块中读取存储的目标数据,比较目标数据与目标块中存储的目标数据,统计目标块中存储的目标数据中发生翻转的位的数量。具体地,通过获取目标块中存储的目标数据中发生翻转的位的数量,可判断块的状态,以选取不同的校验强度对数据进行保护。
收发单元304用于在采用高级校验强度的校验码更新目标块中写入的普通校验强度的校验码之后向文件系统返回写入成功消息,即报告数据写入成功;收发单元304还用于在标记单元303为目标块添加坏块标记之后向文件系统返回写入失败消息。即报告数据写入失败,写入单元301会继续选择下一个空闲块,并进行判断以重新写入。
在本发明实施例四中,通过比较单元和标记单元对写入数据的位翻转的判断以及对目标块状态的判断,并针对不同状态设置不同的数据校验强度,可保证块由正常块变为坏块时期中的数据可以被正确读出;且写入单元对所选择空闲块状态的判断,保证了数据不会被写入坏块,有效提高了设备存储数据的可靠性。
在本发明上述实施例技术方案的基础上,进一步地,在本发明实施例五中,可以包括:
写入单元301首先获取一个空闲块,然后判断该空闲块是否携带坏块标记。具体地,该坏块标记可以为出厂坏块标记,也可以为新增坏块标记。如果该空闲块携带坏块标记,则表示该块为坏块,不能存储数据,则写入单元501再次获取一个空闲块。若该块不携带坏块标记,则以该空闲块作为目标块,向该目标块中写入目标数据和目标数据对应的普通校验强度的校验码。具体的,写入的目标数据存放于该目标块的数据存储区;所生成的普通校验强度的校验码存储于该目标块的空闲存储区。优选地,该普通校验强度可以为芯片要求的校验强度。
在写入单元301写入数据后,比较单元302从目标块中读取刚写入的目标数据,比较目标数据与目标块中存储的目标数据,统计目标块中存储的目标数据中发生翻转的位的数量。然后,比较单元302将目标块中存储数据发生位翻转的个数与预设的第二校验水线向比较,判断该翻转的位数是否大于或等于第二校验水线。
若翻转的位数大于或等于第二校验水线,则标记单元303为目标块添加坏块标记,且由收发单元304向文件系统返回写入失败消息,并由写入单元301再次获取一个空闲块。
具体地,该第二校验水线可以为芯片所要求的校验强度。例如,可设置第二校验水线为8bit/512Byte。即若一个目标块中所存储的数据的位翻转数量超过此值,则表示该块已经是一个坏块,不能再存储数据。此时,给该块添加坏块标记。具体地,该坏块标记可以存储在闪存空闲区的第6个字节内。若该字节内是非0xFF的值,则表示此块为坏块。
若目标块中存储的目标数据中发生翻转的位的数量小于预设的第二校验水线时,比较单元302继续判断该翻转的位数是否大于或等于预设的第一校验水线。若是,则标记单元303为目标块添加准坏块标记,生成目标数据对应的高级校验强度的校验码并采用高级校验强度的校验码更新目标块中写入的普通校验强度的校验码。
具体地,第一校验水线的值可以为一个低于第二校验水线且接近第二校验水线的值,比如,可以设置为第二校验水线的值的75%,即若第二校验水线的值为8bit/512Byte,则第一校验水线的值就为6bit/512Byte。第一校验水线表示一个块已经接近坏块了,还可以存储数据,但是需要对数据进行加强保护。
当目标块中存储的目标数据中发生翻转的位的数量大于或等于预设的第一校验水线并小于预设的第二校验水线时,标记单元303可以为此目标块添加准坏块标记,具体地,该准坏块标记可以存储在闪存空闲区,优选地,可存储在存储坏块标记的位置的后面。同时,标记单元303生成目标数据对应的高级校验强度的校验码并采用高级校验强度的校验码更新目标块中写入的普通校验强度的校验码。当目标块为准坏块时,需对该准坏块进行加强保护,即要提高其校验强度。该提高的校验强度即为高级校验强度。该高级校验强度的校验强度略高于普通校验强度,以保证当目标块中的位翻转数量刚超过第二校验水线时,还可以将数据完全纠正过来。具体地,可以设置该高级校验强度为普通校验强度的125%。如,普通校验强度可以设为8bit/512Byte,则高级校验强度可以为10bit/512Byte。
在标记单元303采用高级校验强度的校验码更新目标块中写入的普通校验强度的校验码之后,由收发单元304向文件系统返回写入成功消息。
在本发明实施例五中,通过比较单元和标记单元对写入数据的位翻转的判断以及对目标块状态的判断,并针对不同状态设置不同的数据校验强度,可保证块由正常块变为坏块时期中的数据可以被正确读出;且写入单元对所选择空闲块状态的判断,保证了数据不会被写入坏块,有效提高了设备存储数据的可靠性。
图5为本发明实施例六的检测存储设备坏块的方法的流程图。如图5所示,本实施例的方法,可以包括:
步骤501:判断目标块是否携带准坏块标记;通过判断是否携带准坏块标记,可知目标块的状态,以便后续读取中校验强度的选择。具体地,该准坏块标记存储在闪存空闲区内。
步骤502:若目标块未携带准坏块标记且未携带坏块标记,读取目标数据及对应的普通校验强度的校验码,并采用普通校验强度的纠正算法纠正目标块中存储的目标数据。
具体地,当目标块未携带准坏块标记并且未携带坏块标记时,即该目标块是个好块,只需进行普通的校验即可。首先从目标块中读取目标数据和目标数据对应的普通校验强度的校验码;然后根据普通校验强度的校验码,采用普通校验强度的纠正算法纠正目标块中存储的目标数据。具体地,该普通校验强度可以为芯片要求的校验强度。如,优选地,该普通校验强度可以设为8bit/512Byte。
步骤503:若目标块携带准坏块标记,读取目标数据及对应的高级校验强度的校验码,并采用高级校验强度的纠正算法纠正目标块中存储的目标数据。
具体地,当目标块携带准坏块标记时,需对该准坏块进行加强保护,即要提高其校验强度。该提高的校验强度即为高级校验强度。首先从目标块中读取目标数据和目标数据对应的高级校验强度的校验码;然后根据高级校验强度的校验码,采用高级校验强度的纠正算法纠正目标块中存储的目标数据。具体地,该高级校验强度的校验强度略高于普通校验强度,以保证当目标块中的位翻转数量刚超过第二校验水线时,还可以将数据完全纠正过来。具体地,可以设置该高级校验强度为普通校验强度的125%。如,普通校验强度可以设为8bit/512Byte,则高级校验强度可以为10bit/512Byte。
在本发明实施例六中,通过在系统中为Nand Flash的块状态及其对应校验强度的设置,可保证块中的数据能被正确读出,有效提高了设备中存储数据的可靠性。
图6为本发明实施例七的检测存储设备坏块的方法的流程图。如图6所示,该方法可以包括:
步骤601:文件系统获取到块地址。具体地,在系统在读取数据时,文件系统会首先获取到一个存储数据的块地址。
步骤602:判断目标块是否携带准坏块标记。
步骤603:若目标块携带准坏块标记,读取目标数据及对应的高级校验强度的校验码,并采用高级校验强度的纠正算法纠正目标块中存储的目标数据。
具体地,当目标块携带准坏块标记时,需对该准坏块进行加强保护,即要提高其校验强度。该提高的校验强度即为高级校验强度。首先从目标块中读取目标数据和目标数据对应的高级校验强度的校验码;然后根据高级校验强度的校验码,采用高级校验强度的纠正算法纠正目标块中存储的目标数据。具体地,该高级校验强度的校验强度略高于普通校验强度,以保证当目标块中的位翻转数量刚超过第二校验水线时,还可以将数据完全纠正过来。具体地,可以设置该高级校验强度为普通校验强度的125%。如,普通校验强度可以设为8bit/512Byte,则高级校验强度可以为10bit/512Byte。该准坏块标记可以存储在闪存空闲区内,优选地,可以存储在空闲区内存储坏块标记的位置的后面。具体地,该目标数据存储在闪存的数据存储区,目标数据所对应的高级校验强度的校验码存储在闪存的空闲区。
在采用高级校验强度的纠正算法纠正目标块中存储的目标数据之后,还包括:
步骤604:根据从目标块中读取的目标数据和目标数据对应的高级校验强度的校验码,获取目标块中存储的目标数据中发生翻转的位的数量。具体地,在从目标块中读取目标数据和目标数据对应的高级校验强度的校验码之后,可进行对比统计,获得目标块中存储的目标数据中发生翻转的位的数量。
步骤605:判断目标块中存储的目标数据中发生翻转位数是否大于或等于第二校验水线。
具体地,该第二校验水线可以为芯片所要求的校验强度。例如,可设置第二校验水线为8bit/512Byte。
步骤606:当目标块中存储的目标数据中发生翻转的位的数量大于或等于预设的第二校验水线时,为目标块添加坏块标记,向目标块的下一个空闲块中写入。
具体地,即若一个目标块中所存储的数据的位翻转数量超过第二校验水线,则表示该块已经是一个坏块,不能再存储数据。此时,给该块添加坏块标记。具体地,该坏块标记可以存储在闪存空闲区内,优选地,可存储在该空闲区的第6个字节内。若该字节内是非0xFF的值,则表示此块为坏块。当该目标块为坏块,则向目标块的下一个空闲块中写入读取到的经高级校验强度校验过的目标数据。
步骤607:向文件系统返回采用最高校验强度纠正的目标块中存储的目标数据。具体地,当目标块中存储的目标数据中发生翻转的位的数量大于或等于预设的第二校验水线时,为目标块添加坏块标记,向目标块的下一个空闲块中写入后向文件系统返回采用最高校验强度纠正的目标块中存储的目标数据。或者,当目标块中存储的目标数据中发生翻转的位的数量小于预设的第二校验水线时,直接向文件系统返回采用最高校验强度纠正的目标块中存储的目标数据。
具体地,若目标块中存储的目标数据中发生翻转的位的数量小于预设的第二校验水线时,即说明该目标块中存储的数据出错后还可以被完全纠正,该目标还可以存储数据,因此直接向文件系统返回采用最高校验强度纠正的目标块中存储的目标数据即可。
步骤608:如上述步骤502,若目标块未携带准坏块标记且未携带坏块标记时,读取目标数据及其所对应的普通校验强度的校验码,并采用普通校验强度的纠正算法纠正目标块中存储的目标数据。
具体地,当目标块未携带准坏块标记并且未携带坏块标记时,即该目标块是个好块,只需进行普通的校验即可。首先从目标块中读取目标数据和目标数据对应的普通校验强度的校验码;然后根据普通校验强度的校验码,采用普通校验强度的纠正算法纠正目标块中存储的目标数据。具体地,该普通校验强度可以为芯片要求的校验强度。如,优选地,该普通校验强度可以设为8bit/512Byte。
步骤609:根据从目标块中读取的目标数据和目标数据对应的普通校验强度的校验码,获取目标块中存储的目标数据中发生翻转的位的数量。
具体地,在从目标块中读取目标数据和目标数据对应的普通校验强度的校验码之后,可进行对比统计,获得目标块中存储的目标数据中发生翻转的位的数量。
步骤610:判断目标块中存储的目标数据中发生翻转位数是否大于或等于第一校验水线。
在该步骤中,具体地,第一校验水线的值可以为一个低于第二校验水线且接近第二校验水线的值,比如,可以设置为第二校验水线的值的75%,即若第二校验水线的值为8bit/512Byte,则第一校验水线的值可以设为6bit/512Byte。第一校验水线表示一个块已经接近坏块了,还可以存储数据,但是需要对数据进行加强保护。
步骤611:当目标块中存储的目标数据中发生翻转的位的数量大于或等于预设的第一校验水线时,为目标块添加准坏块标记,生成对应的高级校验强度的校验码并采用高级校验强度的校验码更新目标块中的校验码。
具体地,即若一个目标块中所存储的数据的位翻转数量超过第一校验水线,则表示该块已经接近于一个坏块,虽然还可以存储数据,但需要对数据进行加强保护。此时,给该块添加准坏块标记。具体地,该准坏块标记可以存储在闪存空闲区内,优选地,可存储在该空闲区内存储坏块标记的位置的后面。即若坏块标记存储在闪存空闲区的第6个字节内,则准坏块标记可以存储在空闲区的第7个字节内。
当目标块为准坏块时,需对该准坏块进行加强保护,即要提高其校验强度。该提高的校验强度即为高级校验强度。因此,在为目标快添加准坏块标记的同时,生成目标数据对应的高级校验强度的校验码并采用高级校验强度的校验码更新目标块中写入的普通校验强度的校验码。该高级校验强度的校验强度略高于普通校验强度,以保证当目标块中的位翻转数量刚超过第二校验水线时,还可以将数据完全纠正过来。具体地,可以设置该高级校验强度为普通校验强度的125%。如,普通校验强度可以设为8bit/512Byte,则高级校验强度可以为10bit/512Byte。
步骤612:向文件系统返回采用普通校验强度的纠正算法纠正的目标块中存储的目标数据。具体地,当目标块中存储的目标数据中发生翻转的位的数量小于第一校验水线时,向文件系统返回采用普通校验强度的纠正算法纠正的目标块中存储的目标数据。此时,该目标数据发生翻转的位数还可以被完全纠正过来,因此,可直接向文件系统返回采用普通校验强度的纠正算法纠正的目标块中存储的目标数据。
或者,当目标块中存储的目标数据中发生翻转的位的数量大于或等于预设的第一校验水线时,为目标块添加准坏块标记,生成目标数据对应的高级校验强度的校验码并采用高级校验强度的校验码更新目标块中写入的普通校验强度的校验码,向文件系统返回采用普通校验强度的纠正算法纠正的目标块中存储的目标数据。
具体地,由于在读取数据时,数据位数的翻转并不会一次增加很多位,而是一位一位增加,所以在非准坏块中存储的数据在读取过程中发生翻转的位的数量不会超过第二校验水线,此时,普通校验强度完全可将发生翻转的位纠正过来。因此,当判断目标块中存储的目标数据中发生翻转的位的数量大于或等于预设的第一校验水线时,仍向文件系统返回采用普通校验强度的纠正算法纠正的目标块中存储的目标数据。
在本发明实施例七中,通过在系统中为Nand Flash的块状态及其对应校验强度的设置,可保证块中的数据能被正确读出,有效提高了设备中存储数据的可靠性。另外,通过在系统中为Nand Flash的位翻转数量设置水线,区分出块的不同状态,并针对不同状态设置不同的数据校验强度,可有效提高设备存储数据的可靠性及存储数据的准确性。
图7为本发明实施例八的检测存储设备坏块的装置的结构示意图。如图7所示,本发明提供的检测存储设备坏块的装置700可以包括:读取单元701和校验单元702。
具体地,读取单元701用于当目标块携带准坏块标记时,从目标块中读取目标数据和目标数据对应的高级校验强度的校验码,当目标块未携带准坏块标记并且未携带坏块标记时,从目标块中读取目标数据和目标数据对应的普通校验强度的校验码;
具体地,该坏块标记可以存储在闪存空闲区内,优选地,可存储在该区的第6个字节内。若该字节内是非0xFF的值,则表示此块为坏块。准坏块标记也可以存储在闪存空闲区内,优选地,可以存储在坏块标记的后边一个字节。即,若坏块标记存储在第6个字节内,则准坏块标记可以存储在第7字节内。
校验单元702用于在目标块携带准坏块标记时,根据高级校验强度的校验码,采用高级校验强度的纠正算法纠正目标块中存储的目标数据,并用于在目标块未携带准坏块标记并且未携带坏块标记时,根据普通校验强度的校验码,采用普通校验强度的纠正算法纠正目标块中存储的目标数据。
具体地,当目标块未携带准坏块标记并且未携带坏块标记时,即该目标块是个好块,只需进行普通的校验即可。首先读取单元701从目标块中读取目标数据和目标数据对应的普通校验强度的校验码;然后校验单元702根据普通校验强度的校验码,采用普通校验强度的纠正算法纠正目标块中存储的目标数据。具体地,该普通校验强度可以为芯片要求的校验强度。
具体地,当目标块携带准坏块标记时,需对该准坏块进行加强保护,即利用高级校验强度对数据进行校验。首先读取单元701从目标块中读取目标数据和目标数据对应的高级校验强度的校验码;然后校验单元702根据高级校验强度的校验码,采用高级校验强度的纠正算法纠正目标块中存储的目标数据。具体地,该高级校验强度的校验强度略高于普通校验强度,以保证当目标块中的位翻转数量刚超过第二校验水线时,还可以将数据完全纠正过来。具体地,可以设置该高级校验强度为普通校验强度的125%。如,普通校验强度可以设为8bit/512Byte,则高级校验强度可以为10bit/512Byte。
在本发明实施例八中,通过读取单元和校验单元根据块的不同状态对读取数据的不同强度的校验,保证了块中的数据能被正确读出,有效提高了设备中存储数据的可靠性。
图8为本发明实施例九的检测存储设备坏块的装置的结构示意图。如图8所示,在上述实施例七的基础上,该检测存储设备坏块的装置800还可以包括:比较单元703,标记单元704和收发单元705。
进一步地,在上述实施例七的基础上,比较单元703还用于在目标块携带准坏块标记时,根据从目标块中读取目标数据和目标数据对应的高级校验强度的校验码,获取目标块中存储的目标数据中发生翻转的位的数量。
具体地,在从目标块中读取目标数据和目标数据对应的高级校验强度的校验码之后,可进行对比统计,获得目标块中存储的目标数据中发生翻转的位的数量。
标记单元704还用于在目标块中存储的目标数据中发生翻转的位的数量大于或等于预设的第二校验水线时,为目标块添加坏块标记,向目标块的下一个空闲块中写入采用最高校验强度纠正的目标块中存储的目标数据;具体地,该第二校验水线可以为芯片所要求的校验强度。例如,可设置第二校验水线为8bit/512Byte。
具体地,即若一个目标块中所存储的数据的位翻转数量超过第二校验水线,则表示该块已经是一个坏块,不能再存储数据。此时,给该块添加坏块标记。具体地,该坏块标记可以存储在闪存空闲区内,优选地,可存储在该空闲区的第6个字节内。若该字节内是非0xFF的值,则表示此块为坏块。
若该目标块为坏块,则向目标块的下一个空闲块中写入读取到的经高级校验强度校验过的目标数据。
收发单元705还用于向文件系统返回采用最高校验强度纠正的目标块中存储的目标数据,即将采用最高校验强度纠正的目标块中存储的目标数据读出。
进一步地,在上述实施例的基础上,比较单元703还用于在目标块未携带准坏块标记并且未携带坏块标记时,根据从目标块中读取目标数据和目标数据对应的普通校验强度的校验码,获取目标块中存储的目标数据中发生翻转的位的数量。
具体地,在从目标块中读取目标数据和目标数据对应的高级校验强度的校验码之后,可进行对比统计,获得目标块中存储的目标数据中发生翻转的位的数量。
标记单元704用于在目标块中存储的目标数据中发生翻转的位的数量大于或等于预设的第一校验水线时,为目标块添加准坏块标记,生成目标数据对应的高级校验强度的校验码并采用高级校验强度的校验码更新目标块中写入的普通校验强度的校验码;
具体地,第一校验水线的值可以为一个低于第二校验水线且接近第二校验水线的值,比如,可以设置为第二校验水线的值的75%,即若第二校验水线的值为8bit/512Byte,则第一校验水线的值可以设为6bit/512Byte。第一校验水线表示一个块已经接近坏块了,还可以存储数据,但是需要对数据进行加强保护。
具体地,即若一个目标块中所存储的数据的位翻转数量超过第一校验水线,则表示该块已经接近于一个坏块,虽然还可以存储数据,但需要对数据进行加强保护。此时,给该块添加准坏块标记。具体地,该准坏块标记可以存储在闪存空闲区内,优选地,可存储在该空闲区内存储坏块标记的位置的后面。即若坏块标记存储在闪存空闲区的第6个字节内,则准坏块标记可以存储在空闲区的第7个字节内。
收发单元705用于向文件系统返回采用普通校验强度纠正的目标块中存储的目标数据,即读出正确的数据。
在本发明实施例九中,通过读取单元和校验单元根据块的不同状态对读取数据的不同强度的校验,保证了块中的数据能被正确读出,有效提高了设备中存储数据的可靠性。另外,通过比较单元对读取数据的位翻转数量设置水线,区分出块的不同状态,并针对不同状态设置不同的数据校验强度,可有效提高设备存储数据的可靠性及存储数据的准确性。
在本发明上述实施例技术方案的基础上,进一步地,在本发明实施例十中,可以包括:
首先,读取单元701获取到块地址,然后判断该目标块是否携带准坏块标记。若该块携带准坏块标记,则读取单元701从目标块中读取目标数据和目标数据对应的高级校验强度的校验码。然后校验单元702根据该高级校验强度的校验码,采用高级校验强度的纠正算法纠正目标块中存储的目标数据。
然后,比较单元703根据从目标块中读取目标数据和目标数据对应的高级校验强度的校验码,获取目标块中存储的目标数据中发生翻转的位的数量。
若目标块中存储的目标数据中发生翻转的位的数量大于或等于预设的第二校验水线,则标记单元704为该目标块添加坏块标记,并向目标块的下一个空闲块中写入采用最高校验强度纠正的目标块中存储的目标数据;最后由收发单元705向文件系统返回采用最高校验强度纠正的所述目标块中存储的目标数据。若目标块中存储的目标数据中发生翻转的位的数量小于预设的第二校验水线,则直接由收发单元705向文件系统返回采用最高校验强度纠正的目标块中存储的目标数据。
当目标块未携带准坏块标记并且未携带坏块标记时,读取单元701从该目标块中读取目标数据和目标数据对应的普通校验强度的校验码。校验单元702采用普通校验强度的纠正算法纠正目标块中存储的目标数据。
然后,比较单元703根据从目标块中读取目标数据和所述目标数据对应的普通校验强度的校验码,获取目标块中存储的目标数据中发生翻转的位的数量。
之后,在目标块中存储的目标数据中发生翻转的位的数量大于或等于预设的第一校验水线时,标记单元704为该目标块添加准坏块标记,生成目标数据对应的高级校验强度的校验码并采用所述高级校验强度的校验码更新所述目标块中写入的普通校验强度的校验码。
最后,收发单元705向文件系统返回采用普通校验强度纠正的目标块中存储的目标数据。
在本发明实施例十中,通过读取单元和校验单元根据块的不同状态对读取数据的不同强度的校验,保证了块中的数据能被正确读出,有效提高了设备中存储数据的可靠性。另外,通过比较单元对读取数据的位翻转数量设置水线,区分出块的不同状态,并针对不同状态设置不同的数据校验强度,可有效提高设备存储数据的可靠性及存储数据的准确性。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种检测存储设备坏块的方法,其特征在于,包括:
向目标块中写入目标数据和所述目标数据对应的普通校验强度的校验码;
比较所述目标数据与所述目标块中存储的所述目标数据,获取目标块中存储的目标数据中发生翻转的位的数量;
当所述目标块中存储的目标数据中发生翻转的位的数量大于或等于预设的第一校验水线并小于预设的第二校验水线时,为所述目标块添加准坏块标记,生成所述目标数据对应的高级校验强度的校验码并采用所述高级校验强度的校验码更新所述目标块中写入的普通校验强度的校验码;
当所述目标块中存储的目标数据中发生翻转的位的数量大于或等于所述第二校验水线时,为所述目标块添加坏块标记。
2.根据权利要求1所述的方法,其特征在于,
所述向目标块中写入目标数据和所述目标数据对应的普通校验强度的校验码包括:获取一个空闲块;判断所述空闲块是否携带坏块标记;如果是,返回所述获取一个空闲块的步骤;否则,以所述空闲块作为所述目标块,向所述目标块中写入所述目标数据和所述目标数据对应的普通校验强度的校验码;
所述比较所述目标数据与所述目标块中存储的所述目标数据,获取目标块中存储的目标数据中发生翻转的位的数量包括:从所述目标块中读取存储的所述目标数据,比较所述目标数据与所述目标块中存储的目标数据,统计所述目标块中存储的目标数据中发生翻转的位的数量。
3.一种检测存储设备坏块的方法,其特征在于,包括:
当目标块携带准坏块标记时,从所述目标块中读取目标数据和所述目标数据对应的高级校验强度的校验码,根据所述高级校验强度的校验码,采用高级校验强度的纠正算法纠正所述目标块中存储的目标数据;
当所述目标块未携带所述准坏块标记并且未携带所述坏块标记时,从所述目标块中读取目标数据和所述目标数据对应的普通校验强度的校验码,根据所述普通校验强度的校验码,采用普通校验强度的纠正算法纠正所述目标块中存储的目标数据。
4.根据权利要求3所述的方法,其特征在于,所述采用普通校验强度的纠正算法纠正所述目标块中存储的目标数据之后,还包括:
根据从目标块中读取的目标数据和所述目标数据对应的普通校验强度的校验码,获取目标块中存储的目标数据中发生翻转的位的数量;
当所述目标块中存储的目标数据中发生翻转的位的数量大于或等于预设的第一校验水线时,为所述目标块添加准坏块标记,生成所述目标数据对应的高级校验强度的校验码并采用所述高级校验强度的校验码更新所述目标块中写入的普通校验强度的校验码,向文件系统返回采用普通校验强度的纠正算法纠正的所述目标块中存储的目标数据;
当所述目标块中存储的目标数据中发生翻转的位的数量小于所述第一校验水线时,向文件系统返回采用普通校验强度的纠正算法纠正的所述目标块中存储的目标数据。
5.根据权利要求3或4所述的方法,其特征在于,所述采用高级校验强度的纠正算法纠正所述目标块中存储的目标数据之后,还包括:
根据从目标块中读取的目标数据和所述目标数据对应的高级校验强度的校验码,获取目标块中存储的目标数据中发生翻转的位的数量;
当所述目标块中存储的目标数据中发生翻转的位的数量大于或等于预设的第二校验水线时,为所述目标块添加坏块标记,向所述目标块的下一个空闲块中写入并向文件系统返回所述采用最高校验强度纠正的所述目标块中存储的目标数据;
当所述目标块中存储的目标数据中发生翻转的位的数量小于预设的第二校验水线时,向所述文件系统返回所述采用最高校验强度纠正的所述目标块中存储的目标数据。
6.一种检测存储设备坏块的装置,其特征在于,包括:
写入单元,用于向目标块中写入目标数据和所述目标数据对应的校验码;
比较单元,用于比较所述目标数据与所述目标块中存储的所述目标数据,获取目标块中存储的目标数据中发生翻转的位的数量;
标记单元,用于当所述目标块中存储的目标数据中发生翻转的位的数量大于或等于预设的第一校验水线并小于预设的第二校验水线时,为所述目标块添加准坏块标记,生成所述目标数据对应的高级校验强度的校验码并采用所述高级校验强度的校验码更新所述目标块中写入的普通校验强度的校验码,当所述目标块中存储的目标数据中发生翻转的位的数量大于或等于所述第二校验水线时,为所述目标块添加坏块标记。
7.根据权利要求6所述的装置,其特征在于,
所述写入单元具体用于获取一个空闲块,判断所述空闲块是否携带坏块标记,如果是,再次获取一个空闲块,否则,以所述空闲块作为所述目标块,向所述目标块中写入所述目标数据和所述目标数据对应的普通校验强度的校验码;
所述比较单元具体用于从所述目标块中读取存储的所述目标数据,比较所述目标数据与所述目标块中存储的目标数据,统计所述目标块中存储的目标数据中发生翻转的位的数量。
8.一种检测存储设备坏块的装置,其特征在于,包括:
读取单元,用于当目标块携带准坏块标记时,从所述目标块中读取目标数据和所述目标数据对应的高级校验强度的校验码,当所述目标块未携带所述准坏块标记并且未携带所述坏块标记时,从所述目标块中读取目标数据和所述目标数据对应的普通校验强度的校验码;
校验单元,用于在所述目标块携带准坏块标记时,根据所述高级校验强度的校验码,采用高级校验强度的纠正算法纠正所述目标块中存储的目标数据,并用于在所述目标块未携带所述准坏块标记并且未携带所述坏块标记时,根据所述普通校验强度的校验码,采用普通校验强度的纠正算法纠正所述目标块中存储的目标数据。
9.根据权利要求8所述的装置,其特征在于,还包括:
比较单元,用于在所述目标块未携带所述准坏块标记并且未携带所述坏块标记时,根据所述从目标块中读取目标数据和所述目标数据对应的普通校验强度的校验码,获取目标块中存储的目标数据中发生翻转的位的数量;
标记单元,用于在所述目标块中存储的目标数据中发生翻转的位的数量大于或等于预设的第一校验水线时,为所述目标块添加准坏块标记,生成所述目标数据对应的高级校验强度的校验码并采用所述高级校验强度的校验码更新所述目标块中写入的普通校验强度的校验码;
收发单元,用于向文件系统返回所述采用普通校验强度纠正的所述目标块中存储的目标数据。
10.根据权利要求9所述的装置,其特征在于,所述之后,还包括:
所述比较单元还用于在所述目标块携带准坏块标记时,根据所述从目标块中读取目标数据和所述目标数据对应的高级校验强度的校验码,获取目标块中存储的目标数据中发生翻转的位的数量;
所述标记单元还用于在所述目标块中存储的目标数据中发生翻转的位的数量大于或等于预设的第二校验水线时,为所述目标块添加坏块标记,向所述目标块的下一个空闲块中写入所述采用最高校验强度纠正的所述目标块中存储的目标数据;
所述收发单元还用于向所述文件系统返回所述采用最高校验强度纠正的所述目标块中存储的目标数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210413308XA CN102929740A (zh) | 2012-10-25 | 2012-10-25 | 检测存储设备坏块的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210413308XA CN102929740A (zh) | 2012-10-25 | 2012-10-25 | 检测存储设备坏块的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102929740A true CN102929740A (zh) | 2013-02-13 |
Family
ID=47644546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210413308XA Pending CN102929740A (zh) | 2012-10-25 | 2012-10-25 | 检测存储设备坏块的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102929740A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593301A (zh) * | 2013-11-20 | 2014-02-19 | 北京旋极信息技术股份有限公司 | 坏块管理方法及系统 |
CN105522826A (zh) * | 2014-10-16 | 2016-04-27 | 珠海艾派克微电子有限公司 | 校验值产生方法、耗材芯片和包括该耗材芯片的耗材盒 |
CN107992268A (zh) * | 2017-11-24 | 2018-05-04 | 郑州云海信息技术有限公司 | 一种坏块标记的方法及相关装置 |
CN111045603A (zh) * | 2019-11-29 | 2020-04-21 | 苏州浪潮智能科技有限公司 | 一种固态硬盘的坏块替换方法和装置 |
CN111309513A (zh) * | 2020-02-07 | 2020-06-19 | 北京海博思创科技有限公司 | 一种数据存储系统及管理方法 |
CN113035265A (zh) * | 2021-03-09 | 2021-06-25 | 成都佰维存储科技有限公司 | 坏块筛选方法、装置、可读存储介质及电子设备 |
CN113241112A (zh) * | 2021-03-25 | 2021-08-10 | 成都佰维存储科技有限公司 | 坏块筛选方法、装置、计算机可读存储介质及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1299096A (zh) * | 2001-01-12 | 2001-06-13 | 常促宇 | 通用串行总线接口的大容量移动存储器及其实现方法 |
CN101901169A (zh) * | 2010-03-23 | 2010-12-01 | 成都市华为赛门铁克科技有限公司 | 扫描装置及方法 |
US20110320915A1 (en) * | 2010-06-29 | 2011-12-29 | Khan Jawad B | Method and system to improve the performance and/or reliability of a solid-state drive |
-
2012
- 2012-10-25 CN CN201210413308XA patent/CN102929740A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1299096A (zh) * | 2001-01-12 | 2001-06-13 | 常促宇 | 通用串行总线接口的大容量移动存储器及其实现方法 |
CN101901169A (zh) * | 2010-03-23 | 2010-12-01 | 成都市华为赛门铁克科技有限公司 | 扫描装置及方法 |
US20110320915A1 (en) * | 2010-06-29 | 2011-12-29 | Khan Jawad B | Method and system to improve the performance and/or reliability of a solid-state drive |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593301A (zh) * | 2013-11-20 | 2014-02-19 | 北京旋极信息技术股份有限公司 | 坏块管理方法及系统 |
CN103593301B (zh) * | 2013-11-20 | 2016-07-27 | 北京旋极信息技术股份有限公司 | 坏块管理方法及系统 |
CN105522826A (zh) * | 2014-10-16 | 2016-04-27 | 珠海艾派克微电子有限公司 | 校验值产生方法、耗材芯片和包括该耗材芯片的耗材盒 |
CN105522826B (zh) * | 2014-10-16 | 2017-06-23 | 珠海艾派克微电子有限公司 | 校验值产生方法、耗材芯片和包括该耗材芯片的耗材盒 |
CN107992268B (zh) * | 2017-11-24 | 2021-08-10 | 郑州云海信息技术有限公司 | 一种坏块标记的方法及相关装置 |
CN107992268A (zh) * | 2017-11-24 | 2018-05-04 | 郑州云海信息技术有限公司 | 一种坏块标记的方法及相关装置 |
CN111045603A (zh) * | 2019-11-29 | 2020-04-21 | 苏州浪潮智能科技有限公司 | 一种固态硬盘的坏块替换方法和装置 |
CN111045603B (zh) * | 2019-11-29 | 2022-11-22 | 苏州浪潮智能科技有限公司 | 一种固态硬盘的坏块替换方法和装置 |
CN111309513A (zh) * | 2020-02-07 | 2020-06-19 | 北京海博思创科技有限公司 | 一种数据存储系统及管理方法 |
CN113035265A (zh) * | 2021-03-09 | 2021-06-25 | 成都佰维存储科技有限公司 | 坏块筛选方法、装置、可读存储介质及电子设备 |
CN113035265B (zh) * | 2021-03-09 | 2023-11-21 | 成都佰维存储科技有限公司 | 坏块筛选方法、装置、可读存储介质及电子设备 |
CN113241112A (zh) * | 2021-03-25 | 2021-08-10 | 成都佰维存储科技有限公司 | 坏块筛选方法、装置、计算机可读存储介质及电子设备 |
CN113241112B (zh) * | 2021-03-25 | 2023-11-21 | 成都佰维存储科技有限公司 | 坏块筛选方法、装置、计算机可读存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8719662B2 (en) | Memory device with error detection | |
US8578242B1 (en) | Data storage device employing seed array for data path protection | |
CN102929740A (zh) | 检测存储设备坏块的方法和装置 | |
US9164830B2 (en) | Methods and devices to increase memory device data reliability | |
CN101246738B (zh) | 具有备份电路的存储系统及编程方法 | |
US8977813B2 (en) | Implementing RAID in solid state memory | |
CN101427323B (zh) | 读取非易失性计算机存储器的系统和方法 | |
CN102693760B (zh) | Nand快闪存储器的错误校正方法 | |
CN101599305B (zh) | 具有数据修复功能的储存系统及其数据修复方法 | |
EP3964941B1 (en) | Read-write method and memory device | |
KR20120051606A (ko) | 저장 디바이스 내에 에러 데이터를 추적하는 시스템 및 방법 | |
CN102543196B (zh) | 数据读取方法、存储器储存装置及其控制器 | |
CN106486170A (zh) | 固态硬盘的潜在坏块定位方法及装置 | |
CN103578565A (zh) | 一种NAND Flash存储芯片的校验方法及装置 | |
CN103778964B (zh) | 一种NAND Flash烧写数据的处理、使用方法及装置、系统 | |
TWI545582B (zh) | 存取快閃記憶體中儲存單元的方法以及使用該方法的裝置 | |
US9552287B2 (en) | Data management method, memory controller and embedded memory storage apparatus using the same | |
US20080282120A1 (en) | Memory structure, repair system and method for testing the same | |
CN111522684A (zh) | 一种同时纠正相变存储器软硬错误的方法及装置 | |
US20090164869A1 (en) | Memory architecture and configuration method thereof | |
CN110364213B (zh) | 包括存储器件和存储器控制器的存储系统及其操作方法 | |
CN110389716B (zh) | 数据存储装置及应用其的预防数据错误方法 | |
CN102360568B (zh) | 一种并行异步存储器及其数据读取方法 | |
US20090199043A1 (en) | Error correction in an integrated circuit with an array of memory cells | |
CN109698008B (zh) | Nor型存储器位线故障的修复方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130213 |