存储设备中坏块的管理方法及系统的制作方法

文档序号:6444600阅读:263来源:国知局
专利名称:存储设备中坏块的管理方法及系统的制作方法
存储设备中坏块的管理方法及系统
技术领域
本发明涉及网络通信终端领域,特别涉及一种存储设备中坏块的管理方法及系统。
背景技术
随着网络通信技术的发展,对存储设备的需求也日益增大。存储设备如NandFlash(非易失存储器),其工艺不能保证存储区域在其生命周期中保持性能的可靠性,在Nand Flash生产及使用过程中都有可能产生坏块。故坏块分为出厂坏块和使用坏块。出厂坏块是指生产过程中出现的坏块,一般原厂都会在芯片出厂时将坏块标记,生产坏块一般不会超过2%。使用坏块是指Nand Flash在被使用过程中,因系统的配置数据被反复更新,使Nand Flash中存储的一部分数据块被频繁擦写而对存储区域造成损坏,出现擦写错误、读操作失效等。对于坏块的管理方式一般是出现坏块,就跳过该坏块操作下一个块。该管理方式,对于出厂坏块不会出现错误,然而对于使用过程出现的坏块,则可能造成系统读写错误,只有重新烧写软件,系统才 能正常使用。但大多数情况下,运行商不愿单独对用户升级软件,导致Nand Flash经常性的损坏和返修,增加维护成本。

发明内容基于此,有必要提供一种能降低维护成本的存储设备中坏块的管理方法。一种存储设备中坏块的管理方法,包括以下步骤:检测是否为首次扫描存储设备,若是,则建立存储有原始坏块与跳过原始坏块后的可用块之间的映射关系的坏块映射表;若否,则检测所述存储设备中是否出现了新的坏块,若是,则从预设的映射备份区中查找可用块,建立所述新的坏块与查找到的可用块之间的映射关系,并将所述映射关系存入所述坏块映射表中。优选的,还包括步骤:当检测到所述存储设备中没有出现新的坏块时,读取坏块映射表,根据所述坏块映射表中的存储的所有的映射关系进行读写操作。优选的,还包括步骤:对所述坏块映射表进行备份。优选的,在建立存储有原始坏块与跳过原始坏块后的可用块之间的映射关系的坏块映射表的步骤之后,还包括步骤:记录坏块映射表的相关参数,所述相关参数包括坏块个数、坏块映射表版本号、坏块建立成功的标识和坏块映射表校验和;在所述从预设的映射备份区中查找可用块,建立所述新的坏块与查找到的可用块之间的映射关系,并将所述映射关系存入所述坏块映射表中的步骤之后,还包括步骤:更新所述坏块映射表的相关参数。优选的,所述存储设备为Nand Flash。
此外,还有必要提供一种能降低维护成本的存储设备中坏块的管理系统。—种存储设备中坏块的管理系统,包括:检测模块,用于检测是否为首次扫描存储设备,创建模块,用于当检测到为首次扫描存储设备时,建立存储有原始坏块与跳过原始坏块后的可用块之间的映射关系的坏块映射表;所述检测模块还用于在检测到不为首次扫描存储设备时,检测所述存储设备中是否出现了新的坏块,查找模块,用于在检测到所述存储设备中出现新的坏块时,从预设的映射备份区中查找可用块,所述创建模块还用于建立所述新的坏块与查找到的可用块之间的映射关系;
存储模块,用于将所述映射关系存入所述坏块映射表中。优选的,还包括执行模块,所述执行模块用于当检测到所述存储设备中没有出现新的坏块时,读取坏块映射表,根据所述坏块映射表中的存储的所有的映射关系进行读写操作。优选的,还包括备份模块,用于对所述坏块映射表进行备份。优选的,还包括记录模块和更新模块,所述记录模块用于记录相关的参数,所述参数包括坏块个数、坏块映射表版本号、坏块建立成功的标识和坏块映射表校验和;所述更新模块用于在所述存储设备将所述映射关系存入所述坏块映射表中之后,更新所述坏块映射表的相关参数。优选的,所述存储设备为Nand Flash。上述存储设备中坏块的管理方法及系统,首次扫描时,记录原始坏块与跳过原始坏块后的可用块之间的映射关系在坏块映射表中,在不为首次扫描且出现新的坏块时,从预设的映射备份区中查找可用块,并建立新的坏块与查找到的可用块之间的映射关系,并存入坏块映射表中,如此可保证出现新的坏块时采用可用块代替,不需一旦出现新的坏块则需进行返修,降低了返修率,降低了维护成本。

图1为一个实施例中存储设备中坏块的管理方法的流程图;图2为烧录器按照坏块跳过的方式进行烧录的示意图;图3为一个实施例中存储设备中坏块的管理系统的内部结构示意图;图4为另一个实施例中存储设备中坏块的管理系统的内部结构示意图。
具体实施方式下面结合具体的实施例及附图对存储设备中坏块的管理方法及系统进行详细的描述,以使其技术方案更加清楚。如图1所示,在一个实施例中,一种存储设备中坏块的管理方法,包括以下步骤:步骤S10,检测是否为首次扫描存储设备,若是,执行步骤S20,若否,执行步骤S30。具体的,本实施例中,存储设备在出厂前,通过烧录器把系统软件一次性烧写进存储设备,在烧写过程中,遇到坏块,则跳过坏块,继续烧写下一个坏块,直到整个软件全部烧写完。图2为烧录器按照坏块跳过的方式进行烧录的示意图,将软件分成N份,存储设备分成η个存储块,Size O烧写入Block O中,Size I烧写入Block 1,如此依次烧写,遇到坏块Block m, Size m烧写入Block (m+1)中,按照该方式烧录完整个软件。对存储设备进行扫描,检测是否为首次扫描,若是,则建立坏块映射表,在坏块映射表中存储原始坏块与跳过原始坏块后的可用块之间的映射关系,具体的,可将原始坏块标号与跳过原始坏块后的可用块标号之间的映射关系,如原始坏块Block m与跳过原始坏块后的可用块Block m+1之间的映射关系。此外,该映射关系可采用数组形式存储,以原始坏块标号为数组下标,数组值为跳过坏块后的可用块标号,如数组Am = m+1。其中,原始坏块是指出厂是出现的坏块。步骤S20,建立存储有原始坏块与跳过原始坏块后的可用块之间的映射关系的坏块映射表。本实施例中,在步骤S20之后,还包括步骤:记录坏块映射表的相关参数,该相关参数包括坏块个数、坏块映射表版本号、坏块建立成功的标识和坏块映射表中数据的校验和等。记录相关的参数是为了方便以后维护坏块映射表。其中,通过数据的校验和可判断映射表的正确性。此外,坏块映射表存储在存储设备中。进一步的,在存储设备中可预设坏块映射表区,用于存储坏块映射表。在一个实施例中,在步骤S20或记录坏块映射表的相关参数的步骤之后,还包括步骤:对坏块映射表进行备份。且备份的坏块映射表也存储在存储设备中。对坏块映射表备份,防止在对坏块映射表出现异常情况(如写坏块映射表或更新坏块映射表时断电)时,可采用备份的坏块映射表。步骤S30,检测该存储设备中是否出现了新的坏块,若是,执行步骤S40,否则结束。本实施例中,在存储设备中预设映射备份区,以便出现新的坏块时,采用映射备份区中的可用块代替新的坏块存储数据。不为首次扫描时,进一步检测存储设备中是否出现新的坏块,若出现新的坏块,则从预设的映射备份区按照预定方式查找可用块,然后建立新的坏块与查找到的可用块之间的映射关系,并将其存入坏块映射表中。其中,预定方式查找可如按照映射备份区中可用块的标号从大到小的顺序查找。步骤S40,从预设的映射备份区中查找可用块,建立该新的坏块与查找到的可用块之间的映射关系,并将该映射关系存入坏块映射表中。本实施例中,新的坏块可为原始数据区出现新的坏块或映射备份区出现的坏块,均从映射备份区中查找可用块,然后建立新的坏块与查找到的可用块的映射关系。当建立的新的坏块与查找到的映射备份区的可用块之间的映射关系存入坏块映射表中后,还包括步骤:更新坏块映射表的相关参数。如更新坏块映射表的版本号、以及坏块映射表中数据的校验和。进一步的,在一个实施例中,若已对坏块映射表备份,则当建立的新的坏块与查找到的映射备份区的可用块之间的映射关系存入坏块映射表中或更新相关参数后,还包括步骤:对备份的坏块映射表进行更新。
此外,可通过相关参数包括坏块个数、坏块映射表版本号、坏块建立成功的标识和坏块映射表校验和等信息来判断坏块映射表及其备份中哪一个映射表是正确的,然后选择使用正确的映射表。进一步的,在一个实施例中,上述存储设备中坏块的管理方法,还包括步骤:在检测到存储设备中没有出现新的坏块时,读取坏块映射表,根据坏块映射表中的存储的所有的映射关系进行读写操作。坏块映射表中存储有原始坏块与跳过原始坏块后的可用块之间的映射关系,以及历史扫描过程中得到的坏块与查找到的映射备份区的可用块之间的映射关系。扫描时,通过内存读取存储设备中的坏块映射表作为内存的坏块映射表,然后根据内存的坏块映射表中映射关系进行读写操作。此外,存储设备可为Nand Flash、NOR、SRAM或DRAM,本实施例中,为Nand Flash。如图3所示,在一个实施例中,一种存储设备中坏块的管理系统,包括检测模块
10、创建模块20、查找模块30和存储模块40。其中:检测模块10,用于检测是否为首次扫描存储设备。具体的,本实施例中,存储设备在出厂前,通过烧录器把系统软件一次性烧写进存储设备,在烧写过程中,遇到坏块,则跳过坏块,继续烧写下一个坏块,直到整个软件全部烧写完。图2为烧录器按照坏块跳过的方式进行烧录的示意图,将软件分成N份,存储设备分成η个存储块,Size O烧写入Block O中,Size I烧写入Block I,如此依次烧写,遇到坏块Block m, Size m烧写入Block (m+1)中,按照该方式烧录完整个软件。创建模块20,用于当检测到为首次扫描存储设备时,建立存储有原始坏块与跳过坏块后的可用块之间的映射关系的坏块映射表。对存储设备进行扫描,当检测模块10检测为首次扫描时,创建模块20建立坏块映射表,在坏块映射表中存储原始坏块与跳过原始坏块后的可用块之间的映射关系,具体的,可将原始坏块标号与跳过原始坏块后的可用块标号之间的映射关系,如原始坏块Block m与跳过原始坏块后的可用块Block m+1之间的映射关系。此外,该映射关系可采用数组形式存储,以原始坏块标号为数组下标,数组值为跳过坏块后的可用块标号,如数组Am = m+1。其中,原始坏块是指出厂是出现的坏块。检测模块10还用于在检测到不为首次扫描存储设备时,检测存储设备中是否出现了新的坏块。查找模块30用于在检测到存储设备中出现新的坏块时,从预设的映射备份区中查找可用块。本实施例中,需在存储设备中预先设置映射备份区,方便出现新的坏块时,可从映射备份区中查找可用块代替新的坏块存储数据。新的坏块可为原始数据区出现新的坏块或映射备份区出现的坏块,均从映射备份区中查找可用块,然后建立新的坏块与查找到的可用块的映射关系。查找模块30从预设的映射备份区按照预定方式查找可用块,然后建立新的坏块与查找到的可用块之间的映射关系,并将其存入坏块映射表中。其中,预定方式查找可如按照映射备份区中可用块的标号从大到小的顺序查找。创建模块20还用于建立该新的坏块与查找到的可用块之间的映射关系。存储模块40,用于将该映射关系存入坏块映射表中。可将建立的新的映射关系存入坏块映射表,方便后续根据新的坏块映射表进行读写操作。具体的,存储模块40将坏块映射表存入存储设备中。此外,在存储设备中可预设坏块映射表区,存储模块40将坏块映射表存储在坏块映射表区。在一个实施例中,如图4所示,上述存储设备中坏块的管理系统,除了包括检测模块10、创建模块20、查找模块30和存储模块40,还包括执行模块50、备份模块60、记录模块70和更新模块80。其中:执行模块50,用于当检测到存储设备中没有出现新的坏块时,读取坏块映射表,根据坏块映射表中的存储的所有的映射关系进行读写操作。坏块映射表中存储有原始坏块与跳过原始坏块后的可用块之间的映射关系,以及历史扫描过程中得到的坏块与查找到的映射备份区的可用块之间的映射关系。扫描时,通过内存读取存储设备中的坏块映射表作为内存的坏块映射表,然后执行模块50根据内存的坏块映射表中映射关系进行读写操作。备份模块60用于对坏块映射表进行备份。对坏块映射表备份,防止在对坏块映射表出现异常情况(如写坏块映射表或更新坏块映射表时断电)时,可采用备份的坏块映射表。此外,备份模块60将备份的坏块映射表存入存储设备的坏块映射表区。记录模块70用于在首次扫描建立坏块映射表时,记录坏块映射表的相关参数。所述相关参数包括坏块个数、坏块映射表版本号、坏块建立成功的标识和坏块映射表中数据的校验和等。记录相关参数是为了方便以后维护坏块映射表。 更新模块80用于在创建模块20建立的新的坏块与查找到的映射备份区的可用块之间的映射关系存入坏块映射表中后,更新坏块映射表的相关参数。如更新坏块映射表的版本号、以及坏块映射表中数据的校验和。进一步的,若已对坏块映射表备份,则当建立的新的坏块与查找到的映射备份区的可用块之间的映射关系存入坏块映射表中或更新相关参数后,更新模块80还用于对备份的坏块映射表进行更新。此外,存储设备可为Nand Flash、NOR、SRAM或DRAM,本实施例中,为Nand Flash。上述存储设备中坏块的管理方法及系统,首次扫描时,记录原始坏块与跳过原始坏块后的可用块之间的映射关系在坏块映射表中,在不为首次扫描且出现新的坏块时,从预设的映射备份区中查找可用块,并建立新的坏块与查找到的可用块之间的映射关系,并存入坏块映射表中,如此可保证出现新的坏块时采用可用块代替,不需一旦出现新的坏块则需进行返修,降低了返修率,降低了维护成本。此外,未出现新坏块时,可读取坏块映射表中,根据坏块映射表中所有映射关系执行读写操作,保证不会出现错误;对坏块映射表进行备份,防止出现异常情况时,可采用备份的坏块映射表代替坏块映射表;记录相关参数可方便对坏块映射表进行维护。以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
权利要求
1.一种存储设备中坏块的管理方法,包括以下步骤: 检测是否为首次扫描存储设备, 若是,则建立存储有原始坏块与跳过原始坏块后的可用块之间的映射关系的坏块映射表; 若否,则检测所述存储设备中是否出现了新的坏块,若是,则从预设的映射备份区中查找可用块,建立所述新的坏块与查找到的可用块之间的映射关系,并将所述映射关系存入所述坏块映射表中。
2.根据权利要求1所述的存储设备中坏块的管理方法,其特征在于,还包括步骤:当检测到所述存储设备中没有出现新的坏块时,读取坏块映射表,根据所述坏块映射表中的存储的所有的映射关系进行读写操作。
3.根据权利要求1所述的存储设备中坏块的管理方法,其特征在于,还包括步骤:对所述坏块映射表进行备份。
4.根据权利要求1所述的存储设备中坏块的管理方法,其特征在于,在建立存储有原始坏块与跳过原始坏块后的可用块之间的映射关系的坏块映射表的步骤之后,还包括步骤:记录坏块映射表的相关参数,所述相关参数包括坏块个数、坏块映射表版本号、坏块建立成功的标识和坏块映射表校验和; 在所述从预设的映射备份区中查找可用块,建立所述新的坏块与查找到的可用块之间的映射关系,并 将所述映射关系存入所述坏块映射表中的步骤之后,还包括步骤:更新所述坏块映射表的相关参数。
5.根据权利要求1所述的存储设备中坏块的管理方法,其特征在于,所述存储设备为Nand Flash。
6.一种存储设备中坏块的管理系统,其特征在于,包括: 检测模块,用于检测是否为首次扫描存储设备, 创建模块,用于当检测到为首次扫描存储设备时,建立存储有原始坏块与跳过原始坏块后的可用块之间的映射关系的坏块映射表; 所述检测模块还用于在检测到不为首次扫描存储设备时,检测所述存储设备中是否出现了新的坏块, 查找模块,用于在检测到所述存储设备中出现新的坏块时,从预设的映射备份区中查找可用块,所述创建模块还用于建立所述新的坏块与查找到的可用块之间的映射关系; 存储模块,用于将所述映射关系存入所述坏块映射表中。
7.根据权利要求6所述的存储设备中坏块的管理系统,其特征在于,还包括执行模块,所述执行模块用于当检测到所述存储设备中没有出现新的坏块时,读取坏块映射表,根据所述坏块映射表中的存储的所有的映射关系进行读写操作。
8.根据权利要求6所述的存储设备中坏块的管理系统,其特征在于,还包括备份模块,用于对所述坏块映射表进行备份。
9.根据权利要求6所述的存储设备中坏块的管理系统,其特征在于,还包括记录模块和更新模块,所述记录模块用于记录相关的参数,所述参数包括坏块个数、坏块映射表版本号、坏块建立成功的标识和坏块映射表校验和;所述更新模块用于在所述存储设备将所述映射关系存入所述坏块映射表中之后,更新所述坏块映射表的相关参数。
10.根据权利要求6所述的存储设备中坏块的管理系统,其特征在于,所述存储设备为Na nd Flash。
全文摘要
本发明涉及一种存储设备中坏块的管理方法及系统。该方法包括以下步骤检测是否为首次扫描存储设备,若是,则建立存储有原始坏块与跳过原始坏块后的可用块之间的映射关系的坏块映射表;若否,则检测所述存储设备中是否出现了新的坏块,若是,则从预设的映射备份区中查找可用块,建立所述新的坏块与查找到的可用块之间的映射关系,并将所述映射关系存入所述坏块映射表中。上述存储设备中坏块的管理方法及系统,在不为首次扫描且出现新的坏块时,从预设的映射备份区中查找可用块,并建立新的坏块与查找到的可用块之间的映射关系,如此可保证出现新的坏块时采用可用块代替,不需一旦出现新的坏块则需进行返修,降低了返修率,降低了维护成本。
文档编号G06F12/06GK103186471SQ20111045639
公开日2013年7月3日 申请日期2011年12月30日 优先权日2011年12月30日
发明者吴繁, 黄楚恩, 侯学营, 陈赞辉, 夏超仁 申请人:深圳市共进电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1