CN112805686B - 一种存储块处理方法及相关设备 - Google Patents
一种存储块处理方法及相关设备 Download PDFInfo
- Publication number
- CN112805686B CN112805686B CN201880098515.6A CN201880098515A CN112805686B CN 112805686 B CN112805686 B CN 112805686B CN 201880098515 A CN201880098515 A CN 201880098515A CN 112805686 B CN112805686 B CN 112805686B
- Authority
- CN
- China
- Prior art keywords
- page
- bad
- storage block
- bad page
- target
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请实施例公开了一种存储块处理的方法,包括:当检测到目标存储块中存在至少一个坏页时,获取与该至少一个坏页一一对应的至少一个坏页位置;根据该至少一个坏页位置,确定好区;该好区为该目标存储块的可用存储区间中连续且不存在该坏页的最大存储区间;更新该目标存储块的存储区间信息,更新后的该目标存储块的存储区间信息指示该目标存储块的可用存储区间为该好区。本申请实施例还提供相应的终端、计算机程序产品及可读存储介质。本申请中,当存储块中出现坏页时,获取该存储块中不包含该坏页的连续最大存储区间,继续使用该连续最大存储区间,从而避免了直接将该整个存储块标记为坏块,减缓了冗余块的消耗,延长了存储设备的使用寿命。
Description
技术领域
本申请涉及数据存储领域,尤其涉及一种存储块处理方法及相关设备。
背景技术
固态硬盘(solid state drive,SSD)为存储设备的一种,以一种闪存介质(nandflash,NAND)作为主要存储介质,一般而言,固态硬盘读写数据的最小操作单元为页,擦除数据的最小操作单元为块。其中,每个存储块由连续的几百至几千个页组成。随着反复擦写数据,NAND的可靠性不断下降,会逐渐出现擦/写失败或者原始比特出错率(raw bit errorrate,RBER)超过错误纠正码(error correction code,ECC)纠错能力的情况。
当NAND的部分页出现上述问题时,SSD会将问题页所在的块标记为坏块,不再参与读写擦操作,并且通过提升坏块内一部分晶体管的阈值电压,减少漏电流,进而减小坏块对剩余块的影响,从而保证数据完整性。因为SSD预留了冗余块,用户可见的数据空间不因坏块而减少,所以SSD可以继续使用。但由于SSD的冗余块数量有限,当坏块达到特定数量时,SSD就到了寿命终点。
由于现有技术中,一旦存储块中出现坏页,就会把整个存储块标记为坏块,导致冗余块的消耗较快,且随着冗余块数量的减少,会导致写放大系数的增加,也会进一步缩短SSD的使用寿命,因此,现有技术中的SSD的使用寿命较短。
发明内容
本申请实施例提供了一种存储块处理方法及相关设备,本申请当存储块中出现坏页时,获取该存储块中不包含该坏页的连续最大存储区间,继续使用该连续最大存储区间,从而避免了直接将该整个存储块标记为坏块,减缓了冗余块的消耗,延长了存储设备的使用寿命。
本申请实施例的第一方面提供一种存储块处理方法,该存储块处理方法应用于控制器,其中,该控制器应用于存储设备,该存储设备包含该控制器和存储器,该存储器包含多个存储块,该存储块包含多个页,该控制器中包含每个存储块的存储区间信息,该存储区间信息用于指示存储块的可用存储区间。该方法可以包括:当该控制器检测到目标存储块中存在至少一个坏页时,获取与该至少一个坏页一一对应的至少一个坏页位置,该至少一个坏页位置包含与该至少一个坏页一一对应的至少一个坏页编号,该至少一个坏页编号用于指示该至少一个坏页在该目标存储块包含的多个页中的排序位置,其中,当该至少一个坏页为一个坏页时,该至少一个坏页位置为该一个坏页的坏页编号,当该至少一个坏页中有至少两个坏页时,该至少一个坏页位置中包含与该至少两个坏页一一对应的至少两个坏页编号;该控制器可以根据该至少一个坏页编号,对该目标存储块的可用存储区间进行划分,以确定好区,其中,该好区为该目标存储块的可用存储区间中连续且不存在该坏页的最大存储区间;该控制器可以根据该好区的起始页的第二起始页编号和终止页的第二终止页编号,更新该目标存储块的存储区间信息,其中,该目标存储块的存储区间信息中包含目标存储块的可用存储区间的起始页的第一起始页编号和终止页的第一终止页编号,该更新后的该目标存储块的存储区间信息指示该目标存储块的可用存储区间为该好区,从而该控制器可以将后续接收到的用户数据存入到该好区中。
本申请中,当目标存储块中出现坏页时,可以根据坏页的位置将存储块的目标存储块的可用存储区间进行划分,从而将该目标存储块的可用存储区间中不包含该坏页的最大连续区间确定为好区,进而根据该好区更新该存储块的可用存储区间,避免了直接将该整个存储块标记为坏块,减缓了冗余块的消耗,延长了固态硬盘的使用寿命,而且,由于冗余块的消耗减少,也避免了写放大系数的增加,进一步延长了固态硬盘的使用寿命;此外,本申请还可以适用于其他包含存储块的存储设备,从而延长了存储设备的使用寿命。
一种可能的实现方式下,该至少一个坏页为一个坏页,该控制器在获取到该一个坏页的坏页位置时,也即该一个坏页的坏页编号,以该一个坏页的坏页编号作为分隔页的编号对该目标存储块的可用存储区间进行划分,以确定好区,也即确定该好区的起始页的第二起始页编号或该好区的终止页的第二终止页编号。
本申请中,当该至少一个坏页为一个坏页时,控制器可直接以该一个坏页的位置作为分隔页的位置对该目标存储块的可用存储区间进行划分,从而确定好区,增加了本方案的可操作性。
一种可能的实现方式下,该一个坏页的坏页位置包含该一个坏页的坏页编号,该目标存储块的存储区间信息包含该目标存储块的可用存储区间的起始页的第一起始页编号,该一个坏页的坏页编号和该第一起始页编号分别用于确定该一个坏页和该目标存储块的可用存储区间的起始页在该目标存储块包含的多个页中的排序位置;该控制器在根据该一个坏页的坏页编号确定该一个坏页的排序位置在该目标存储块的可用存储区间的前半部分的情况下,可以获取该目标存储块的可用存储区间内该一个坏页的下一页的编号,以确定该一个坏页的下一页至该目标存储块的可用存储区间的终止页包含的多个页为该好区;该控制器可以将该目标存储块的存储区间信息中第一起始页编号更新为该一个坏页的下一页的编号,从而将该目标存储块的可用存储区间更新为了该好区。
本申请中,控制器可以对该目标存储块包含的多个页进行编号,从而当该至少一个坏页为一个坏页时,可以根据该一个坏页的坏页编号确定该一个坏页是否位于该目标存储块的可用存储区间的前半部分,当确定在位于前半部分的情况下,可以将第一起始页编号更新为该一个坏页的下一页的编号,从而完成了目标存储块的存储区间信息的更新操作,避免了在检测到一个坏页后,避免了逐页数该目标存储块的可用存储区间内位于该一个坏页的前面和后面的页数的操作,提高了目标存储块的存储区间信息的更新效率。
一种可能的实现方式下,该一个坏页的坏页位置包含该一个坏页的坏页编号,该目标存储块的存储区间信息包含该目标存储块的可用存储区间的终止页的第一终止页编号,该一个坏页的坏页编号和该第一终止页编号分别用于确定该一个坏页和该目标存储块的可用存储区间的终止页在该目标存储块包含的多个页中的排序位置;该控制器在根据该一个坏页的坏页编号确定该一个坏页的排序位置在该目标存储块的可用存储区间的后半部分的情况下,可以获取该目标存储块的可用存储区间内该一个坏页的上一页的编号,以确定该目标存储块的可用存储区间的起始页至该一个坏页的上一页包含的多个页为该好区;该控制器可以将该第一终止页编号更新为该一个坏页的上一页的编号,从而将该目标存储块的可用存储区间更新为了该好区。
本申请中,控制器可以对该目标存储块包含的多个页进行编号,从而当该至少一个坏页为一个坏页时,可以根据该一个坏页的坏页编号确定该一个坏页是否位于该目标存储块的可用存储区间的后半部分,当确定在位于前半部分的情况下,可以将该第一终止页编号更新为该一个坏页的上一页的编号,从而完成了目标存储块的存储区间信息的更新操作,避免了在检测到一个坏页后,避免了逐页数该目标存储块的可用存储区间内位于该一个坏页的前面和后面的页数的操作,提高了目标存储块的存储区间信息的更新效率。
一种可能的实现方式下,该至少一个坏页中有至少两个坏页,该至少一个坏页位置中有与该至少两个坏页一一对应的至少两个坏页位置,该至少两个坏页位置中包含与目标坏页对应的目标坏页位置,该目标坏页为该至少两个坏页中的任一坏页;该控制器在根据该目标坏页位置确定该目标坏页存在于目标存储块的可用存储区间的情况下,以该目标坏页位置作为分隔页的位置对该目标存储块的可用存储区间进行划分,以确定好区。
本申请中,当该至少一个坏页中有至少两个坏页时,由于该控制器逐页处理该至少两个坏页,则后处理的坏页有可能出现在目标存储块的可用存储区间中,而本申请中,该控制器只有在目标坏页位于目标存储块的可用存储区间时,才根据该目标坏页位置对该目标存储块的可用存储区间进行划分,从而当坏页发生在目标存储块的不可用存储区间时,由于不会对目标存储块的可用存储区间产生影响,则不再执行重新划分可用存储区间的操作,避免了控制器处理资源的浪费,且降低了存储块管理的复杂度。
一种可能的实现方式下,该至少一个坏页中有至少两个坏页,该至少一个坏页位置中有与该至少两个坏页一一对应的至少两个坏页位置,该至少两个坏页位置中包含与至少两个坏页一一对应的至少两个坏页编号,该至少两个坏页编号用于确定该至少两个坏页在该目标存储块包含的多个页中的排序位置;该控制器可以根据该至少两个坏页编号,确定边缘坏页,该边缘坏页为该至少两个坏页中排序位置位于最上或排序位置位于最下的一个坏页,其中,在根据该至少两个坏页编号确定该至少两个坏页的排序位置均在该目标存储块的可用存储区间的前半部分的情况下,可以获取该至少两个坏页中排序位置位于最下的一个坏页的坏页位置作为边缘坏页位置;在根据该至少两个坏页编号确定该至少两个坏页的排序位置均在该目标存储块的可用存储区间的后半部分的情况下,可以获取该至少两个坏页中排序位置位于最上的一个坏页的坏页位置作为边缘坏页位置。控制器在获取到该边缘坏页位置后,以该边缘坏页的坏页编号作为分隔页的编号对该目标存储块的可用存储区间进行划分,以确定好区。
本申请中,当该至少一个坏页中有至少两个坏页时,控制器可以获取该至少两个坏页中的边缘坏页,从而仅根据该边缘坏页对该目标存储块的可用存储区间进行划分,避免了逐页处理该至少两个坏页时的重复操作,提高了坏页处理的效率。
一种可能的实现方式下,该控制器还可以在该好区内设置隔离区,以将该好区划分为隔离区和用户数据区,其中,该隔离区包含至少一个页的随机数据,位于该至少一个坏页和该用户数据区之间,该用户数据区用于存储有效数据,其中,当该至少一个坏页为一个坏页时,该隔离区为与该一个坏页相邻的至少一个页;当该至少一个坏页中有至少两个坏页时,该隔离区为与该至少两个坏页中的边缘页相邻的至少一个页。
本申请中,由于不同页之间普遍存在编程干扰,而当存储块内出现坏页时,这种编程干扰可能进一步增大,当坏页在目标存储块的可用存储区间的前半部分时,以好区中排序位置位于最上的一个页作为起始页,写入至少一个页的随机数据,从而在坏页和用户数据区之间设置隔离区,可以阻断坏页对可用页的影响,从而提升可用存储区的可靠性。
一种可能的实现方式下,该至少一个坏页位置包含与该至少一个坏页一一对应的至少一个坏页编号,该至少一个坏页编号用于确定该坏页在该目标存储块包含的多个页中的排序位置,在根据该至少一个坏页编号确定该至少一个坏页的排序位置在该目标存储块的可用存储区间的前半部分的情况下,该控制器可以该好区中排序位置位于最上的一个页作为起始位置,写入该至少一个页的随机数据,以形成该隔离区。其中,该控制器在对该好区执行擦除操作后,可以在该目标存储块接收到有效数据时,触发设置隔离区操作;也可以为在对该好区执行擦除操作后,设置定时器,在达到定时器设置的时间后,触发设置隔离区操作,该随机数据指由控制器随机生成的无效数据。
本申请中,在该至少一个坏页位于该目标存储块的可用存储区间的前半部分的情况下,该控制器以该好区中排序位置位于最上的一个页作为起始位置,写入该至少一个页的随机数据,从而形成了该隔离区,提高了本方案的可操作性。
一种可能的实现方式下,当该至少一个坏页为一个坏页时,该好区中排序位置位于最上的一个页为该目标存储块的可用存储区间内该一个坏页的下一页;当该至少一个坏页中有至少两个坏页时,该好区中排序位置位于最上的一个页为该目标存储块的可用存储区间内该目标坏页的下一页,该目标坏页为该至少两个坏页中任一坏页。
本申请中,无论该至少一个坏页为一个坏页还是至少两个坏页,均可通过本申请中的方案设置隔离区,从而提高了本方案的灵活性和可操作性。
一种可能的实现方式下,该至少一个坏页位置包含与该至少一个坏页一一对应的至少一个坏页编号,该至少一个坏页编号用于确定该坏页在该目标存储块包含的多个页中的排序位置,该控制器在根据该至少一个坏页编号确定该至少一个坏页的排序位置在该目标存储块的可用存储区间的后半部分的情况下,控制器在将有效数据写入用户数据区后,可以判断写入的有效数据是否已经占满该用户数据区,若已占满该用户数据区,以该用户数据区的下一页为起始位置,写入该至少一个页的随机数据,以形成该隔离区。
本申请中,在该至少一个坏页在该目标存储块的可用存储区间的后半部分的情况下,若写入的有效数据已占满该用户数据区,以该用户数据区的下一页为起始位置,写入该至少一个页的随机数据,从而形成了该隔离区,提高了本方案的可操作性。
一种可能实现方式下,该控制器可以根据好区的终止页的第二终止页编号和该隔离区的预设页数确定该用户数据区的终止页的第三终止页编号,并在每次在目标存储块中执行写操作后,获取已写入有效数据的页的最后一页的编号,通过判断最后一页的编号是否达到该第三终止页编号,从而判断写入的有效数据是否已占满用户数据区。
本申请中,通过判断写入有效数据的页的最后一页的编号是否达到该第三终止页编号的方式来判断写入的有效数据是否已占满用户数据区,提高了本方案的可实现性。
一种可能的实现方式下,该目标存储块的存储区间信息包含该目标存储块的可用存储区间的起始页的第一起始页编号,该好区包含的多个页中有该好区的起始页,该好区的起始页的第二起始页编号和该第一起始页编号分别用于确定该好区的起始页和该目标存储块的可用存储区间的起始页在该目标存储块包含的多个页中的排序位置,该控制器在根据该第二起始页编号确定该好区的起始页存在于第一预设区间的情况下,可以获取第一预设编号,其中,该第一预设区间中包含多个页,该第一预设编号为该第一预设区间的下一页的编号;该控制器在确定该第一预设编号之后,可以将该第一起始页编号更新为该第一预设编号。
本申请中,只要好区的起始页的编号存在于第一预设区间的情况下,则将目标存储块的存储区间信息的起始页的编号均更新为与该第一预设区间对应的第一预设编号,也即将目标存储块的可用存储区间的起始位置限定为特定的取值,由于坏页出现的位置有特定的规律,可以按照统计规律设定可用存储区间的起始编号的预设取值集合,以使得可用存储区间的边缘是对齐的,从而降低了存储块的管理复杂度。
一种可能的实现方式下,该目标存储块的存储区间信息包含该目标存储块的可用存储区间的终止页的第一终止页编号,该好区包含的多个页中有该好区的终止页,该好区的终止页的第二终止页编号和该第一终止页编号分别用于确定该好区的终止页和该目标存储块的可用存储区间的终止页在该目标存储块包含的多个页中的排序位置,该控制器在根据该第二终止页编号确定该好区的终止页存在于第二预设区间的情况下,可以获取第二预设编号,其中,该第二预设区间中包含多个页,该第二预设编号为该第二预设区间的上一页的编号;该控制器在确定该第二预设编号后,可以将该第一终止页编号更新为该第二预设编号。
本申请中,只要好区的终止页的编号存在于第二预设区间的情况下,则将第一起始页编号均更新为与该第二预设区间对应的第二预设编号,也即将目标存储块的可用存储区间的终止位置限定为特定的取值,由于坏页出现的位置有特定的规律,可以按照统计规律设定可用存储区间的终止编号的预设取值集合,以使得可用存储区间的边缘是对齐的,从而降低了存储块的管理复杂度。
一种可能的实现方式下,该目标存储块的存储区间信息包含该目标存储块的可用存储区间的起始页的第一起始页编号和终止页的第一终止页编号,该控制器可以获取该第一起始页编号和该第一终止页编号之间的差值;在该差值达到或低于预设阈值的情况下,将该目标存储块标记为不可用存储块。
本申请中,在可用存储区间的页数低于预设阈值时,将该可用存储区间所在的存储块标记为坏块,从而不再管理该存储块,从而降低控制器对存储块的管理复杂度。
第二方面,本申请实施例提供了一种控制器,该控制器应用于存储设备,该控制器应用于存储设备,该存储设备包含该控制器和存储器,该存储器包含多个存储块,该存储块包含多个页,该控制器中包含每个存储块的存储区间信息,该存储区间信息用于确定存储块的可用存储区间,该控制器包括获取单元、确定单元和更新单元:该获取单元用于,当检测到目标存储块中存在至少一个坏页时,获取与该至少一个坏页一一对应的至少一个坏页该坏页的位置,其中,当该至少一个坏页为一个坏页时,该至少一个坏页位置为该一个坏页的坏页编号,当该至少一个坏页中有至少两个坏页时,该至少一个坏页位置中包含与该至少两个坏页一一对应的至少两个坏页编号;该确定单元用于,根据该至少一个坏页的坏页编号,确定好区,其中,该好区为该目标存储块的可用存储区间中连续且不存在该坏页的最大存储区间;该更新单元用于,根据该好区的起始页的第二起始页编号和终止页的第二终止页编号,更新该目标存储块的存储区间信息,其中,该目标存储块的存储区间信息中包含目标存储块的可用存储区间的起始页的第一起始页编号和终止页的第一终止页编号,更新后的该目标存储块的存储区间信息指示该目标存储块的可用存储区间为该好区,从而该控制器可以将后续接收到的用户数据存入到该好区中。
本申请中,当目标存储块中出现坏页时,可以根据坏页的位置将存储块的目标存储块的可用存储区间进行划分,从而确定单元将该目标存储块的可用存储区间中不包含该坏页的最大连续区间确定为好区,进而由更新单元根据该好区更新该存储块的可用存储区间,避免了直接将该整个存储块标记为坏块,减缓了冗余块的消耗,延长了固态硬盘的使用寿命,而且,由于冗余块的消耗减少,也避免了写放大系数的增加,进一步延长了固态硬盘的使用寿命;此外,本申请还可以适用于其他包含存储块的存储设备,从而延长了存储设备的使用寿命。
第三方面,本申请实施例提供了一种存储设备,该存储设备包括控制器和存储器,该存储器包含存储块,该存储块包含多个页;其中,该控制器用于执行如上述第一方面的存储块处理的方法,还用于生成指令;该存储器用于根据该指令存储数据。
第四方面,本申请实施例提供了一种终端,该终端包含接口、处理器和存储设备,该存储设备包括控制器和存储器,该存储器包含存储块,该存储块包含多个页;该处理器通过该接口将数据发送至该控制器;该控制器用于执行如上述第一方面的存储块处理的方法,还用于通过该接口接收该处理器发送的该数据,并生成指令;该存储器用于根据该指令存储该数据。
第五方面,本申请实施例提供了一种包含指令的计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如上述第一方面的存储块处理的方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质中存储有报文处理的指令,当其在计算机上运行时,使得计算机执行上述第一方面描述的存储块处理的方法。
第七方面,本申请实施例提供了一种芯片系统,该芯片系统包括处理器,用于支持网络设备实现上述方面中所涉及的功能,例如,例如发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,该芯片系统还包括存储器,该存储器,用于保存网络设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
本申请第三方面至第七方面的有益效果,可以参考第一方面。
附图说明
图1a为本申请实施例提供的存储设备的一种结构示意图;
图1b为本申请实施例提供的存储设备的又一种结构示意图;
图1c为本申请实施例提供的存储器的一种结构示意图;
图2为本申请实施例提供的存储块处理方法一种流程示意图;
图3a为本申请实施例提供的目标存储块的一种结构示意图;
图3b为本申请实施例提供的目标存储块的另一种结构示意图;
图4为本申请实施例提供的存储块处理方法另一种流程示意图;
图5a为本申请实施例提供的目标存储块的又一种结构示意图;
图5b为本申请实施例提供的目标存储块的再一种结构示意图;
图6为本申请实施例提供的存储块处理方法又一种流程示意图;
图7为本申请实施例提供的存储块处理方法再一种流程示意图;
图8为本申请实施例提供的存储块处理方法再一种流程示意图;
图9为本申请实施例提供的控制器的一种结构示意图。
具体实施方式
本申请实施例提供了一种存储块处理方法及相关设备,本申请中,当存储块中出现坏页时,获取该存储块中不包含该坏页的连续最大存储区间,继续使用该连续最大存储区间,从而避免了直接将该整个存储块标记为坏块,减缓了冗余块的消耗,延长了存储设备的使用寿命。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。术语“至少一个”是指一个或者多个,“多个”是指两个或两个以上。
本申请实施例中,参见图1a和图1b,本申请应用于存储设备10中,该存储设备10与主机20相连,存储设备10用于根据主机20的指令存储数据。其中,存储设备10可以包括非嵌入式存储设备,作为示例,例如固态硬盘。存储设备10也可以包括嵌入式存储设备,作为示例,例如应用于移动终端的独立芯片。存储设备10还可以为其他形式的存储设备,具体此处不一一列举。
本申请实施例中,该存储设备10可以包括控制器100和存储器110,控制器100与主机20通信,以及与存储器110相连,控制器100用于接收主机传送的指令,并根据该指令对存储器110执行擦写等操作。控制器100还用于对存储器110中的存储空间进行管理。
本申请实施例中,当存储设备10为非嵌入式存储设备时,参见图1a,控制器100前端可以包含与主机20进行通信的第一接口,该第一接口可以为非易失性存储高速接口(non-volatile memory express,NVME)、串行小型计算系统接口(serial attached smallcomputer system interface,SAS)、周边元件扩展高速接口(peripheral componentinterconnect express,PCIE)或者其他主机与非嵌入式存储设备之间的接口中的一种,控制器100后端还可以包含与存储器110相连的第二接口,该第二接口可以为闪存介质接口(nand flash interface,NFI)或者其他类型的用于存储器内部控制器与存储颗粒阵列之间的接口,控制器通过该第一接口接收主机的指令,并根据接收到的指令通过该第二接口对存储器110执行擦写等操作。
本申请实施例中,当存储设备10为嵌入式存储设备时,参见图1b,控制器100与存储器110可以为由控制器电路和存储颗粒阵列封装成的独立芯片,因此,控制器100与存储器110之间可以不存在接口。控制器100与主机20之间通过第三接口进行通信,该第三接口可以为通用闪存存储接口(universal flash storage,UFS)、嵌入式多媒体卡接口(embedded multimedia card,EMMC)或者其他主机与嵌入式存储设备之间的接口中的一种,具体此处不做限定。
本申请实施例中,存储器110可以包括闪存存储器、随机存取存储器、只读存储器或其他存储器类型等,存储器110可以是由存储颗粒构成的存储阵列,其中,闪存存储器是指以闪存颗粒为存储介质的存储器,也即在闪存存储器中包含。应当理解,本实施例中,以存储器为闪存存储器为例进行说明。
本申请实施例中,参见图1c,在逻辑层面,存储器110可以包括多个独立逻辑单元(Die/LUN),每个独立逻辑单元中可以包含多个存储平面(Plane),每个存储平面中可以包含多个存储块(Block)1100,每个存储块中可以包含多个页,应当理解,存储器110的结构还可以随着技术的发展发生改变,此处对存储器110的介绍仅为方便理解,只要存储器110中存在存储块1100,均可采用本申请提供的存储块处理方法。
本申请实施例中,存储块1100对应的存储区间为控制器100中可以独立管理的存储区间,由于根据不同的制造工艺,一个物理块中可以对应一个存储块1100的存储区间,作为示例,例如32层的物理块的块内部没有分层,则存储块1100的存储区间对应的就是这整个物理块形成的存储区间。一个物理块也可以对应两个或多个存储块1100的存储区间,作为示例,例如64层的物理块可以为由两个32层的子物理块堆叠而成,则每个物理块中包含两个子物理块,则一个存储块1100的存储区间对应的就是子物理块形成的存储区间,也即一个物理块对应两个存储块1100的存储区间。
本申请实施例提供了一种存储块处理方法,该方法应用于控制器100,控制器100中可以记录有每个存储块1100的存储区间信息,该存储区间信息用于指示存储块的可用存储区间,当控制器100检测到目标存储块中出现坏页时,可以根据坏页的位置重新划分好区,该好区为目标存储块的可用存储区间中连续且不存在坏页的最大存储区间。通过划分好区,后续可以将数据写到好区中,使得数据安全性更好。
本申请中,其中,坏页可以为一个页,也可以有至少两个页。由于当坏页为一个页和坏页有至少两个页间两种情况下,控制器100相应的处理方式不同,下面对上述两种情况分别进行详细说明。
一、至少一个坏页为一个页
本实施例及后续实施例中,在控制器100根据检测到的坏页为一个页时,需要以该一个坏页的位置作为分隔页的位置,对该目标存储块的可用存储区间进行划分,以确定好区。
其中,坏页可以发生于目标存储块的可用存储区间的前半部分,也可以发生于目标存储块的可用存储区间的后半部分,关于前半部分和后半部分的划分,可以将目标存储块的可用存储区间作为一个整体,该可用存储区间包括很多个顺序排列的页,将位于最中间的一个页或两个页的前面的页称为前半部分,最中间的一个页或两个页的后面的页称为后半部分,该最中间的一个页或两个页可以属于前半部分,也可以属于后半部分。应当理解,本实施例及后续实施例中,仅以该最中间的一个也属于前半部分,该两个页中的排序在前的一页属于前半部分,排序在后的一页属于后半部分为例,进行解释说明。以下,对上述两种情况分别说明。
本实施例及后续实施例中,坏页的位置可以为坏页的绝对存储路径,也可以为坏页的相对路径,也可以为与坏页的位置具有映射关系的坏页的编号,还可以为其他可以指示坏页的位置信息。应当理解,本实施例及后续实施例中,以坏页的位置为坏页的编号为例,进行说明。
1、该一个坏页在可用存储区间的前半部分
具体参阅图2,本申请实施例中,存储块处理方法的一个实施例可以包括:
201、当控制器检测到目标存储块中存在一个坏页时,控制器获取该一个坏页的坏页编号。
本实施例及后续实施例中,控制器100可以对存储块1100中包含的多个页进行编号,每个页的编号用于指示该页在目标存储块包含的多个页中的排序位置,当控制器检测到存储器中包含的多个存储块中某一存储块出现一个坏页时,出现该一个坏页的存储块即为目标存储块,进而控制器可以获取该一个坏页的坏页编号,该一个坏页的坏页编号用于指示该坏页在目标存储块包含的多个页中的排序位置。
本实施例及后续实施例中,坏页的编号可以只包含数字形式的页码,作为示例,例如坏页的编号为0023,则标识该坏页为目标存储块包含的多个页中的第23页;坏页的编号也可以用于同时包含数字和/或字母和/或其他类型的信息,作为示例,例如坏页的编号可以为坏页的存储地址,作为另一示例,坏页的编号也可以为从坏页的存储位置中抽取的部分信息,例如F0083,表示该坏页在F存储块的第83页;坏页的编号还可以为其他形式,具体此处不再一一举例。应当理解,存储块包含的多个页中的任何一页的编号均可为上述形式。
本实施例及后续实施例中,控制器中可以存储有坏页的位置与坏页的编号的对应关系表,控制器可以在确定坏页的位置后,根据该对应关系表确定坏页的编号;也可以为坏页的位置中包含坏页的编号信息,也即控制器在确定坏页的位置时,即可获取到坏页的编号;控制器还可以通过其他方式获取到坏页的编号,具体此处不做限定。应当理解,存储块包含的多个页中的任何一页的编号均可通过上述方式获取到。
202、控制器获取该目标存储块的可用存储区间内该一个坏页的下一页的编号。
本实施例中,由于该一个坏页发生在目标存储块的可用存储区间内,且该一个坏页的坏页编号指示该坏页的排序位置在该目标存储块的可用存储区间的前半部分的情况下,控制器可以获取该目标存储块的可用存储区间内该坏页的下一页的编号,从而将坏页的下一页至该目标存储块的可用存储区间的终止页包含的多个页确定为好区,该好区为该目标存储块的可用存储区间中连续且不存在该坏页的最大存储区间。作为示例,例如目标存储块的可用存储区间终止页的编号为0996,该一个坏页的编号为0023,则该一个坏页的下一页的编号可以为0024,则好区为编号为0024至编号为0996之间包含的多个页;作为另一示例,例如目标存储块的可用存储区间终止页的编号为F0996,该一个坏页的编号为F0083,则该一个坏页的下一页的编号可以为F0084,则好区为编号为F0084至编号为F0996之间包含的多个页应当理解,此处举例,仅为方便理解,对于任何一页的编号的取值,不做限定。
本实施例及后续实施例中,由于好区为不包含坏页的存储区间,则控制器在确定好区后,在后续接收到有效数据后,只会将该有效数据存储至该好区中。
作为一种实现方式,如表1和表2所示,控制器可以通过记录每个存储块的起始页的编号和终止页的编号的方式来记录每个存储块的可用存储区间,而坏页编号可以指示与该坏页编号对应的坏页在目标存储块包含的多个页中的排序位置,则控制器可以获取目标存储块的可用存储区间的起始页的编号和终止页的编号,并进而判断该一个坏页是否存在于目标存储块的可用存储区间的前半部分。
存储块 | 可用存储区间 |
存储块0 | 起始页编号PageSt,终止页编号PageEd |
存储块1 | 起始页编号PageSt,终止页编号PageEd |
… | … |
存储块N | 起始页编号PageSt,终止页编号PageEd |
表1
存储块 | 可用存储区间 |
物理块0存储块0 | 起始页编号PageSt,终止页编号PageEd |
物理块0存储块1 | 起始页编号PageSt,终止页编号PageEd |
物理块1存储块0 | 起始页编号PageSt,终止页编号PageEd |
物理块1存储块1 | 起始页编号PageSt,终止页编号PageEd |
… | … |
物理块N存储块1 | 起始页编号PageSt,终止页编号PageEd |
表2
本实施例及后续实施例中,表1和表2中的所示的存储块的起始页编号和终止页编号可以数组、链表或者其他数据结构进行保存。在初始化阶段,若一个存储块对应的是一个完整的物理块,如表1所示,则该存储块的起始页编号为该物理块的起始页编号,该存储块的终止页编号为该物理块的终止页编号,作为示例,例如物理块0提供的存储区间为[0001,1000],则存储块0的起始页的编号为0001,终止页的编号为1000;若一个存储块对应的是子物理块形成的存储区间,如表2所示,则存储块的起始页编号和终止页编号对应的是子物理块的起始页编号和终止页编号,作为示例,例如物理块1提供的存储区间为[0001,1000],该物理块包含子物理块0和子物理块1,其中子物理块0提供的存储区间为[0001,0500],子物理块1提供的存储区间为[0501,1000],则物理块1存储块0的起始页编号为0001,终止页编号为0500,物理块1存储块1的起始页编号为0501,终止页编号为1000。
在对目标存储块的可用存储区间重新划分阶段,若目标存储块的可用存储区间的起始页的编号、终止页的编号和一个坏页的坏页编号均为数字形式的页码,则当目标存储块中发生坏页,该一个坏页的坏页编号为PageX,获取目标存储块的可用存储区间的起始页编号PageSt和终止页编号PageEd,若PageSt<=PageX<=PageEd,则确定坏页发生在目标存储块的可用存储区间,若2PageX<=PageSt+PageEd,也即坏页的页码未超过起始页的页码和终止页的页码的平均值,则确定该坏页存在于目标存储块的可用存储区间的前半部分,例如,目标存储块的可用存储区间的起始页的页码为0008,终止页的页码为0996,该一个坏页的页码为0015,则一个坏页的页码指示该坏页在目标存储块的可用存储区间的前半部分。
若目标存储块的可用存储区间的起始页的编号、终止页的编号和坏页的编号均包含数字和/或字母和/或其他类型的信息,则可以根据目标存储块的可用存储区间的起始页的编号和终止页的编号确定中间页的编号。
其中,当目标存储块的可用存储区间内存在奇数页时,则中间页为一个,若该一个坏页未超过该中间页,则确定该一个坏页位于目标存储块的可用存储区间的前半部分;当目标存储块的可用存储区间内存在偶数页时,则中间页为两个,若该一个坏页未超过该两个中间页的第一页,则确定该一个坏页位于目标存储块的可用存储区间的前半部分,作为示例,例如目标存储块的可用存储区间的起始页的编号为F0008,终止页的编号为F0996,则中间页为F0502,若该一个坏页的坏页编号为F0015,则该一个坏页在目标存储块的可用存储区间的前半部分;作为另一示例,例如目标存储块的可用存储区间的起始页的编号为F0008,终止页的编号为F0995,则中间页为F0501和F0502,若该一个坏页的编号为F0015,由于该一个坏页未超过F0501,则该一个坏页在目标存储块的可用存储区间的前半部分,应当理解,上述对编号的举例,仅为方便理解本方案,具体对编号的选择,应当结合实际情况,灵活设定。
作为另一种实现方式,控制器也可以在确定坏页的位置后,以该坏页为分隔页,分别获取目标存储块的可用存储区间内位于该一个坏页前面的页数和位于该一个坏页后面的页数,若位于该一个坏页前面的页数大于位于该一个坏页后面的页数,则可以确定该一个坏页存在于目标存储块的可用存储区间的前半部分。应当理解,控制器还可以通过其他方式确定该一个坏页是否存在于目标存储块的可用存储区间的前半部分,具体应结合实际情况灵活设定。
203、控制器更新该目标存储块的存储区间信息的起始页的第一起始页编号。
本实施例中,控制器在确定好区后,可以根据好区的起始页的第二起始页编号获取到第一预设编号后,从而将目标存储块的存储区间信息的起始页的第一起始页编号更新为该第一预设编号;也可以将目标存储块的存储区间信息的起始页的第一起始页编号更新为该第二起始页编号,下面分别对上述两种情况进行详细说明。
A、第一起始页编号更新为第一预设编号
本实施例中,在控制器确定该好区的起始页的第二起始页编号存在于第一预设区间的情况下,获取第一预设编号,其中,该第一预设区间中包含多个页,该第一预设编号为该第一预设区间的下一页的编号;控制器将该第一起始页编号更新为该第一预设编号。
本实施例及后续实施例中,控制器中可以预先设定有一个预设区间,也可以设定多个预设区间,若设定多个预设区间,则也存在多个预设编号,预设编号与预设区间可以一一对应,其中预设区间为包含多个页的区间,其中,第一预设区间为该好区的起始页归属的预设区间。
本实施例中,控制器在获取到好区的起始页的第二起始页编号后,可以根据该第二起始页编号确定该好区的起始页归属的第一预设区间,进而获取与第一预设区间对应的第一预设编号,从而可以将该目标存储块的存储区间信息的起始页的编号更新为该第一预设编号,作为示例,例如第一预设区间包含编号为0001至0010的页,第一预设编号为0010,当好区的起始页的编号为0008时,控制器将目标存储块的存储区间信息的起始页的编号更新为0010。本申请中,只要好区的起始页的编号存在于某一预设区间的情况下,则将目标存储块的存储区间信息的起始页的编号均更新为与之对应的预设编号,也即将目标存储块的可用存储区间的起始位置限定为特定的取值,由于坏页出现的位置有特定的规律,可以按照统计规律设定可用存储区间的起始编号的预设取值集合,以使得可用存储区间的边缘是对齐的,从而降低了存储块的管理复杂度。
应当理解,上述对第一预设区间、第一预设编号以及好区的起始页的编号的举例仅为方便理解本方案,具体编号的选择应按照实际统计规律灵活设定。
B、第一起始页编号更新为好区的起始页编号
本实施例中,由于控制器可以通过更新该目标存储块的存储区间信息中的起始页编号来更新目标存储块的可用存储区间,因此,控制器可以在获取到好区的起始页的编号后,将目标存储块的存储区间信息中的第一起始页编号更新为该好区的起始页的编号,从而使得更新后的该目标存储块的存储区间信息指示该目标存储块的可用存储区间为该好区。本申请中,直接将目标存储块的可用存储区间更新为好区,避免了任何页的浪费,进一步减缓了冗余块的消耗,延长了存储设备的使用寿命。
204、控制器以该好区中排序位置位于最上的一个页作为起始位置,写入至少一个页的随机数据,以形成隔离区。
本实施例中,控制器在根据该一个坏页确定好区后,可以在该好区内设置隔离区,以将该好区划分为隔离区和用户数据区,其中,参见图3a和图3b该隔离区包含至少一个页的随机数据,位于该至少一个坏页和该用户数据区之间,该用户数据区用于存储有效数据。其中,图3a展示的为目标存储块中首次出现坏页,且该一个坏页位于目标存储块的前半部分时,该一个坏页、隔离区和用户数据区的分布情况;图3b展示的为目标存储块中非首次出现坏页,且该一个坏页位于目标存储块的前半部分时,该一个坏页、隔离区和用户数据区的分布情况。
本实施例中,在该一个坏页的坏页编号指示该一个坏页的排序位置在该目标存储块的可用存储区间的前半部分的情况下,控制器可以该好区中排序位置位于最上的一个页作为起始位置,也即以该一个坏页的下一页为起始位置,写入至少一个页的随机数据,以形成隔离区。本申请中,由于不同页之间普遍存在编程干扰,而当存储块内出现坏页时,这种编程干扰可能进一步增大,当坏页在目标存储块的可用存储区间的前半部分时,以好区中排序位置位于最上的一个页作为起始页,写入至少一个页的随机数据,从而在坏页和用户数据区之间设置隔离区,可以阻断坏页对可用页的影响,从而提升可用存储区的可靠性。
本实施例中,控制器在确定好区后,可以对好区执行擦除操作,由于该一个坏页在目标存储块的可用存储区间的前半部分,在对好区执行擦除操作后,可以在该目标存储块接收到有效数据时,触发设置隔离区操作;也可以为在对好区执行擦除操作后,设置定时器,在达到定时器设置的时间后,触发设置隔离区操作;还可以通过其他方式触发设置隔离区操作,具体触发设置隔离区的方式,可根据实际情况灵活选择,此处不再一一列举。
本实施例及后续实施例中,随机数据是指由控制器随机生成的无效数据。
本实施例及后续实施例中,隔离区的页数可以根据闪存颗粒的颗粒类型确定,由于在物理层面,物理块或子物理块中包含的多个页在物理上展现为包含多个层(Layer),每层包含多个页,而在设置隔离区时,至少写入一层的随机数据,由于当闪存颗粒的类型不同时,则每层包含的页数不同,作为示例,例如当一层包含12页时,则隔离区的页数是12页的倍数;作为另一示例,当一层包含24页时,则隔离区的页数为24的倍数,应当理解,此处举例仅为方便理解本方案,具体隔离区的页数的设定应根据实际情况灵活选择,此处不做限定。
应当理解,本实施例不限定步骤203与步骤204的关系,可以先执行步骤204,再执行步骤203;也可以先执行步骤203,再执行步骤204。
205、控制器获取该目标存储块的可用存储区间的起始页的第一起始页编号和终止页的第一终止页编号之间的差值。
本实施例中,控制器可以获取目标存储块的可用存储区间的起始页的第一起始页编号和终止页的第一终止页编号,从而确定该第一起始页编号和该第一终止页编号之间的差值。
206、在该差值达到预设阈值的情况下,控制器将该目标存储块标记为不可用存储块。
本实施例中,控制器中可以预先存储有该差值的阈值,从而在确定第一起始页编号和该第一终止页编号之间的差值后,判断该差值是否达到预设阈值,在达到或低于预设阈值的情况,可以将存储块标记为不可用存储块;也可以为主机中预先存储有该差值的阈值,控制器在确定第一起始页编号和该第一终止页编号之间的差值后,将该差值发送至主机,由主机判断该差值是否达到该预设阈值,在达到或低于预设阈值的情况,由控制器将该存储块标记为不可用存储块。本申请中,在可用存储区间的页数低于预设阈值时,将该可用存储区间所在的存储块标记为坏块,从而不再管理该存储块,从而降低控制器对存储块的管理复杂度。
应当理解,步骤205和206为可选步骤,若执行步骤205和206,则不限定步骤205和206与步骤204的关系,可以先执行步骤204,再执行步骤205和206;也可以先执行步骤205和206,再执行步骤204,若不执行步骤205和206,可以在执行完步骤204后,进入步骤207。
本实施例中,
207、控制器执行其他程序。
2、该一个坏页在可用存储区间的后半部分
具体参阅图4,本申请实施例中,存储块处理方法的另一个实施例可以包括:
401、当控制器检测到目标存储块中存在一个坏页时,获取该一个坏页的坏页编号。
本实施例中,步骤401与图2所描述的实施例中步骤201类似,此处不再赘述。
402、控制器获取该目标存储块的可用存储区间内该一个坏页的下一页的编号。
本实施例中,由于该一个坏页发生在目标存储块的目标存储块的可用存储区间内,且该一个坏页的坏页编号指示该一个坏页的排序位置在该目标存储块的可用存储区间的后半部分的情况下,控制器可以获取该目标存储块的可用存储区间内该一个坏页的上一页的编号,从而将该目标存储块的可用存储区间的起始页至该一个坏页的上一页至包含的多个页确定为好区,该好区为该目标存储块的可用存储区间中连续且不存在该坏页的最大存储区间。作为示例,例如目标存储块的可用存储区间起始页的编号为0006,该一个坏页的编号为0998,则该一个坏页的上一页的编号可以为0997,则好区为编号为0006至编号为0997之间包含的多个页;作为另一示例,例如目标存储块的可用存储区间终止页的编号为F0006,该一个坏页的编号为F0998,则该一个坏页的上一页的编号可以为F0997,则好区为编号为F0006至编号为F0997之间包含的多个页应当理解,此处举例,仅为方便理解,对于任何一页的编号的取值,不做限定。
作为一种实现方式,由于该一个坏页的坏页编号可以指示与该一个坏页在目标存储块包含的多个页中的排序位置,控制器根据该一个坏页的坏页编号确定该一个坏页在该目标存储块的可用存储区间的前半部分的方式可以为获取目标存储块的可用存储区间的起始页的编号和终止页的编号,并进而判断该一个坏页是否存在于目标存储块的可用存储区间的后半部分。
若目标存储块的可用存储区间的起始页的编号、终止页的编号和该一个坏页的坏页编号均为数字形式的页码,则当目标存储块中发生该一个坏页,获取该一个坏页的页码PageX,目标存储块的可用存储区间的起始页的页码为PageSt,终止页的页码为PageEd,,若2PageX>PageSt+PageEd,也即该一个坏页的页码超过了起始页的页码和终止页的页码的平均值,则该一个坏页的页码指示该一个坏页在目标存储块的可用存储区间的后半部分,应当理解,此处对编号的举例,仅为方便理解本方案,具体对编号的选择,应当结合实际情况,灵活设定。
若目标存储块的可用存储区间的起始页的编号、终止页的编号和该一个坏页的坏页编号均包含数字和/或字母和/或其他类型的信息,则可以根据目标存储块的可用存储区间的起始页的编号和终止页的编号确定中间页的编号,当目标存储块的可用存储区间内存在奇数页时,则中间页为一个,若该一个坏页超过该中间页,则确定该一个坏页位于目标存储块的可用存储区间的后半部分;当目标存储块的可用存储区间内存在偶数页时,则中间页为两个,若该一个坏页超过该两个中间页的第一页,则确定该一个坏页位于目标存储块的可用存储区间的后半部分。
作为另一种实现方式,控制器也可以在确定该一个坏页的位置后,以该一个坏页为分隔页,分别获取目标存储块的可用存储区间内位于该一个坏页前面的页数和位于该一个坏页后面的页数,若位于该一个坏页前面的页数小于位于该一个坏页后面的页数,则可以确定该一个坏页存在于目标存储块的可用存储区间的后半部分。应当理解,控制器还可以通过其他方式确定该一个坏页是否存在于目标存储块的可用存储区间的后半部分,具体应结合实际情况灵活设定。
403、控制器更新该目标存储块的存储区间信息的终止页的第一终止页编号。
本实施例中,控制器在确定好区后,可以根据好区的终止页的第二终止页编号获取到第二预设编号后,从而将目标存储块的存储区间信息的起始页的二终止页编号更新为该第二预设编号;也可以将目标存储块的存储区间信息的终止页的第二终止页编号更新为该第一终止页编号,下面分别对上述两种情况进行详细说明。
a、第一终止页编号更新为第二预设编号
本实施例中,在该好区的终止页的第二终止页编号存在于第二预设区间的情况下,获取第二预设编号,其中,该第二预设区间中包含多个页,该第二预设编号为该第二预设区间的上一页的编号;控制器将该第一终止页编号更新为该第二预设编号。
本实施例及后续实施例中,控制器中可以预先设定有一个预设区间,也可以设定多个预设区间,若设定多个预设区间,则也存在多个预设编号,预设编号与预设区间可以一一对应,其中预设区间为包含多个页的区间,其中,第二预设区间为该好区的终止页归属的预设区间。
本实施例中,控制器在获取到好区的终止页的第二终止页编号后,可以根据该第二终止页编号确定该好区的终止页归属的第二预设区间,进而获取与第二预设区间对应的第二预设编号,从而可以将该目标存储块的存储区间信息的终止页的第一终止页编号更新为该第二预设编号。作为示例,例如第一预设区间包含编号为0990至1000的页,第一预设编号为0990,当好区的终止页的编号为0998时,控制器将目标存储块的存储区间信息的终止页的编号更新为0990。应当理解,上述对第二预设区间、第二预设编号以及好区的终止页的编号的举例仅为方便理解本方案,具体编号的选择应按照实际统计规律灵活设定。
b、第一终止页编号更新为第一终止页编号
本实施例中,控制器可以在获取到好区的终止页的第二终止页编号后,将目标存储块的存储区间信息中的终止页的第一终止页编号更新为该第二终止页编号,从而使得更新后的该目标存储块的存储区间信息指示该目标存储块的可用存储区间为该好区。
404、控制器以用户数据区的下一页为起始位置,写入该至少一个页的随机数据。
本实施例中,控制器在根据该一个坏页确定好区后,可以在该好区内设置隔离区,以将该好区划分为隔离区和用户数据区,参见图5a和图5b,该隔离区包含至少一个页的随机数据,位于该一个坏页和该用户数据区之间,该用户数据区用于存储有效数据。其中,图5a展示的为目标存储块中首次出现坏页,且该一个坏页位于目标存储块的后半部分时,该一个坏页、隔离区和用户数据区的分布情况;图5b展示的为目标存储块中非首次出现坏页,且该一个坏页位于目标存储块的后半部分时,该一个坏页、隔离区和用户数据区的分布情况。
本实施例中,在该一个坏页的坏页编号指示该一个坏页的排序位置在该目标存储块的可用存储区间的后半部分的情况下,参见图6,控制器在将有效数据写入用户数据区后,可以判断写入的有效数据是否已经占满该用户数据区,若已占满该用户数据区,以该用户数据区的下一页为起始位置,写入该至少一个页的随机数据,以形成该隔离区。
本实施例中,由于该一个坏页在目标存储块的可用存储区间的后半部分,而存储块中按照页的排列顺序依次写入数据,因此,判断写入的有效数据是否占满用户数据区的方式可以为在确定隔离区的页数后,根据好区的终止页的编号和隔离区的页数确定用户数据区的终止页的编号,控制器可以在每次在目标存储块中执行写操作后,获取已写入有效数据的页的最后一页的编号,通过判断最后一页的编号是否达到用户数据区的终止页的编号,从而判断写入的有效数据是否已占满用户数据区。作为示例,例如好区的终止页的编号为0990,隔离区的页数为12页,则用户数据区的终止页的编号为0978,若已写入有效数据的页的最后一页的编号为0920,则未占满该用户数据区,应当理解,此处对编号的举例仅为方便理解,不具有限定意义。
405、控制器获取目标存储块的可用存储区间的起始页的第一起始页编号和终止页的第一终止页编号之间的差值。
406、在该差值达到预设阈值的情况下,控制器将该目标存储块标记为不可用存储块。
407、控制器执行其他程序。
本实施例中,步骤405至407与图2所描述的实施例中步骤205至207类似,此处不再赘述。
二、至少一个坏页中有至少两个坏页
本实施例中,当控制器检测到目标存储块中存在至少两个坏页时,可以根据与该至少两个坏页一一对应的至少两个坏页位置,对该目标存储块的可用存储区间进行划分,以确定好区。控制器可以逐页处理该至少两个坏页;也可以根据该至少两个坏页位置确定边缘坏页,其中该边缘坏页为该至少两个坏页中位置位于最上或位置位于最下的一个坏页,进而以该边缘坏页为分隔页的位置,对目标存储块的可用存储区间进行划分,以确定好区。
(1)控制器逐页处理该至少两个坏页具体参阅图7,本申请实施例中,存储块处理方法的另一个实施例可以包括:
701、当控制器检测到目标存储块中存在至少两个坏页时,获取与该至少两个坏页一一对应的至少两个坏页位置。
702、控制器判断目标坏页是否存在于该目标存储块的可用存储区间,若是,则进入步骤703;若否,则进入步骤812。
本实施例中,当控制器检测到目标存储块中存在至少两个坏页时,控制器可以获取与该至少两个坏页一一对应的至少两个坏页位置,该至少两个坏页位置中包含与目标坏页对应的目标坏页位置,该目标坏页为该至少两个坏页中的任一坏页,从而该控制器可以获取该目标坏页位置。其中,目标坏页位置可以为与该目标坏页对应的目标坏页编号。
本实施例中,由于控制器先获取包含该目标坏页的至少两个坏页,再逐个处理该至少两个坏页,则该至少两个坏页中可以存在不存在于该目标存储块的可用存储区间的坏页,作为示例,例如,控制器检测到三个坏页,第一个坏页的坏页编号为0012,第二个坏页的坏页编号为0008,第一个坏页的坏页编号为0016,则控制器在处理完第一个坏页之后,该目标存储块的可用存储区间的起始页编号为0012之后,当处理第二个坏页时,则第二个坏页不存在于目标存储块的可用存储区间内了,应当理解,此处对三个坏页的举例,仅为方便理解,具体坏页的编号,应按照实际情况灵活设定,此处不进行限定。
本实施例中,控制器在获取到目标坏页位置后,在根据该目标坏页位置确定该目标坏页存在于目标存储块的可用存储区间的情况下,以该目标坏页位置作为分隔页的位置对该目标存储块的可用存储区间进行划分,以确定好区。也即,控制器可以根据该目标坏页编号判断该目标坏页是否存在于该目标存储块的可用存储区间,若是,则进入步骤703;若否,则进入步骤812。
703、控制器判断该目标坏页是否存在于该目标存储块的可用存储区间的前半部分,若存在于前半部分,则进入步骤704;若不存在于前半部分,则进入步骤707。
本实施例中,控制器在获取到目标坏页的页码之后,可以根据该目标坏页的页码判断该目标坏页是否存在于该目标存储块的可用存储区间的前半部分,根据该目标坏页的页码判断该目标坏页是否存在于该目标存储块的可用存储区间的具体实现方式可以参见图2所描述的实施例中步骤202,其中提供了如何根据一个坏页的坏页编号来确定该坏页是否存在于目标存储块的可用存储区间的前半部分,虽然本实施例中的判断对应是目标坏页,但目标坏页也是该至少两个坏页中的任意一个坏页,因此,具体实现方式与步骤202中的如何根据一个坏页的坏页编号来确定该坏页是否存在于目标存储块的可用存储区间的前半部分的实现方式类似,此处不再赘述。
704、控制器获取目标存储块的可用存储区间内该目标坏页的下一页的编号。
705、控制器更新该目标存储块的存储信息的起始页的第一起始页编号。
706、控制器以该好区中排序位置位于最上的一个页作为起始位置,写入至少一个页的随机数据,以形成隔离区。
本实施例中,步骤704至步骤706与图2所描述的实施例中步骤202至204类似,区别在于步骤202至204是根据一个坏页的坏页编号执行相应操作,本实施例中是根据目标坏页的坏页编号执行相应操作,此处不再赘述。
707、控制器获取目标存储块的可用存储区间内该目标坏页的上一页的编号。
708、控制器更新该目标存储块的存储信息的终止页的第一终止页编号。
709、控制器以用户数据区的下一页为起始位置,写入该至少一个页的随机数据。
本实施例中,步骤707至步骤709与图4所描述的实施例中步骤402至404类似,区别在于步骤402至404是根据一个坏页的坏页编号执行相应操作,本实施例中是根据目标坏页的坏页编号执行相应操作,此处不再赘述。
710、控制器获取该目标存储块的可用存储区间的起始页的第一起始页编号和终止页的第一终止页编号之间的差值。
711、在该差值达到预设阈值的情况下,控制器将该目标存储块标记为不可用存储块。
本实施例中,步骤810和步骤811与图2所描述的实施例中步骤205和206类似,此处不再赘述。
712、控制器执行其他程序。
本实施例中,控制器在获取与目标坏页对应的目标坏页位置后,在该目标坏页位置指示该目标坏页存在于该目标存储块的不可用存储区间的情况下,不获取该好区,且不更新目标存储块的存储区间信息。
本实施例中,当控制器检测到目标存储块中存在坏页时,可以获取该坏页的编号,并获取控制器记录的目标存储块的起始页的编号和终止页的编号的方式来记录每个存储块的可用存储区间,若该坏页的编号不在该起始页的编号和终止页的编号之间,则确定该坏页发生在目标存储块的不可用存储区间内,因此,该坏页的存在不会对目标存储块的可用存储区间产生影响,从而控制器可以不获取该好区,并且可以不更新目标存储块的存储区间信息。本申请中,当坏页发生在目标存储块的不可用存储区间时,由于不会对目标存储块的可用存储区间产生影响,则不再执行重新划分可用存储区间的操作,避免了控制器处理资源的浪费,且降低了存储块管理的复杂度。
应当理解,由于控制端检测到至少两个坏页,则控制端可以重复执行步骤702至812以逐页处理完该至少两个坏页。
(2)控制器处理该至少两个坏页中的边缘坏页
具体参阅图8,本申请实施例中,存储块处理方法的另一个实施例可以包括:
本实施例中,步骤801与图7所描述的实施例中步骤701类似,步骤803至811与图7所描述的实施例中步骤704至712类似,区别仅在于本实施例中是根据边缘坏页的坏页编号执行相应操作,图7所描述的实施例中是根据目标坏页的坏页编号执行相应操作,此处不再赘述。
相比于图7所描述的实施例,本实施例还包括:
802、控制器获取与边缘坏页对应的边缘坏页位置。
本实施例中,控制器在获取到与该至少两个坏页一一对应的至少两个坏页位置后,由于该至少两个坏页位置中包含与该至少两个坏页一一对应的至少两个坏页编号,则控制器可以根据该至少两个坏页编号,确定边缘坏页,该边缘坏页为该至少两个坏页中排序位置位于最上或排序位置位于最下的一个坏页。
作为一种情况下,在根据该至少两个坏页编号确定该至少两个坏页的排序位置均在该目标存储块的可用存储区间的前半部分的情况下,可以获取该至少两个坏页中排序位置位于最下的一个坏页的坏页位置作为边缘坏页位置,并进入步骤803。
作为另一种情况下,在根据该至少两个坏页编号确定该至少两个坏页的排序位置均在该目标存储块的可用存储区间的后半部分的情况下,可以获取该至少两个坏页中排序位置位于最上的一个坏页的坏页位置作为边缘坏页位置,并进入步骤806。
本实施例中,当该至少一个坏页中有至少两个坏页时,控制器可以获取该至少两个坏页中的边缘坏页,从而仅根据该边缘坏页对该目标存储块的可用存储区间进行划分,避免了逐页处理该至少两个坏页时的重复操作,提高了坏页处理的效率。
图9是本申请实施例提供的控制器的一种结构示意图,该控制器应用于存储设备,该控制器应用于存储设备,该存储设备包含该控制器和存储器,该存储器包含多个存储块,该存储块包含多个页,该控制器中包含每个存储块的存储区间信息,该存储区间信息用于确定存储块的可用存储区间,该控制器包括:
获取单元901,用于当检测到目标存储块中存在至少一个坏页时,获取与该至少一个坏页一一对应的至少一个坏页该坏页的位置;
确定单元902,用于根据该至少一个坏页的位置,确定好区;其中,该好区为该目标存储块的可用存储区间中连续且不存在该坏页的最大存储区间;
更新单元903,用于更新该目标存储块的存储区间信息,其中,更新后的该目标存储块的存储区间信息指示该目标存储块的可用存储区间为该好区。
本实施例中,控制器中各元件执行的流程与前述图2至图8所示实施例中控制器所执行的流程类似,此处不再赘述。
本实施例中,当目标存储块中出现坏页时,可以根据坏页的位置将存储块的目标存储块的可用存储区间进行划分,从而确定单元902将该目标存储块的可用存储区间中不包含该坏页的最大连续区间确定为好区,进而由更新单元903根据该好区更新该存储块的可用存储区间,避免了直接将该整个存储块标记为坏块,减缓了冗余块的消耗,延长了固态硬盘的使用寿命,而且,由于冗余块的消耗减少,也避免了写放大系数的增加,进一步延长了固态硬盘的使用寿命;此外,本申请还可以适用于其他包含存储块的存储设备,从而延长了存储设备的使用寿命。
有一种可能的实现方式中,该至少一个坏页为一个坏页;
该确定单元902,具体用于:以该一个坏页的坏页位置作为分隔页的位置对该目标存储块的可用存储区间进行划分,以确定好区。
有一种可能的实现方式中,该一个坏页的坏页位置包含该一个坏页的坏页编号,该目标存储块的存储区间信息包含该目标存储块的可用存储区间的起始页的第一起始页编号,该一个坏页的坏页编号和该第一起始页编号分别用于确定该一个坏页和该目标存储块的可用存储区间的起始页在该目标存储块包含的多个页中的排序位置;
该确定单元902,具体用于:
在根据该一个坏页的坏页编号确定该一个坏页的排序位置在该目标存储块的可用存储区间的前半部分的情况下,获取该目标存储块的可用存储区间内该一个坏页的下一页的编号,以确定该一个坏页的下一页至该目标存储块的可用存储区间的终止页包含的多个页为该好区;
该更新单元903,具体用于:将该第一起始页编号更新为该一个坏页的下一页的编号。
有一种可能的实现方式中,该一个坏页的坏页位置包含该一个坏页的坏页编号,该目标存储块的存储区间信息包含该目标存储块的可用存储区间的终止页的第一终止页编号,该一个坏页的坏页编号和该第一终止页编号分别用于确定该一个坏页和该目标存储块的可用存储区间的终止页在该目标存储块包含的多个页中的排序位置;
该确定单元902,具体用于:
在根据该一个坏页的坏页编号确定该一个坏页的排序位置在该目标存储块的可用存储区间的后半部分的情况下,获取该目标存储块的可用存储区间内该一个坏页的上一页的编号,以确定该目标存储块的可用存储区间的起始页至该一个坏页的上一页包含的多个页为该好区;
该更新单元903,具体用于:将该第一终止页编号更新为该一个坏页的上一页的编号。
有一种可能的实现方式中,该至少一个坏页中有至少两个坏页,该至少一个坏页位置中有与该至少两个坏页一一对应的至少两个坏页位置,该至少两个坏页位置中包含与目标坏页对应的目标坏页位置,该目标坏页为该至少两个坏页中的任一坏页;
该确定单元902,具体用于:
在根据该目标坏页位置确定该目标坏页存在于目标存储块的可用存储区间的情况下,以该目标坏页位置作为分隔页的位置对该目标存储块的可用存储区间进行划分,以确定好区。
有一种可能的实现方式中,该控制器还包括:
设置单元904,用于在该好区内设置隔离区,以将该好区划分为隔离区和用户数据区,其中,该隔离区包含至少一个页的随机数据,位于该至少一个坏页和该用户数据区之间,该用户数据区用于存储有效数据。
有一种可能的实现方式中,该至少一个坏页位置包含与该至少一个坏页一一对应的至少一个坏页编号,该至少一个坏页编号用于确定该坏页在该目标存储块包含的多个页中的排序位置,
该设置单元904,具体用于:
在根据该至少一个坏页编号确定该至少一个坏页的排序位置在该目标存储块的可用存储区间的前半部分的情况下,以该好区中排序位置位于最上的一个页作为起始位置,写入该至少一个页的随机数据,以形成该隔离区。
有一种可能的实现方式中,该至少一个坏页位置包含与该至少一个坏页一一对应的至少一个坏页编号,该至少一个坏页编号用于确定该坏页在该目标存储块包含的多个页中的排序位置,
该设置单元904,具体用于:
在根据该至少一个坏页编号确定该至少一个坏页的排序位置在该目标存储块的可用存储区间的后半部分的情况下,若写入的有效数据已占满该用户数据区,以该用户数据区的下一页为起始位置,写入该至少一个页的随机数据,以形成该隔离区。
有一种可能的实现方式中,该目标存储块的存储区间信息包含该目标存储块的可用存储区间的起始页的第一起始页编号,该好区包含的多个页中有该好区的起始页,该好区的起始页的第二起始页编号和该第一起始页编号分别用于确定该好区的起始页和该目标存储块的可用存储区间的起始页在该目标存储块包含的多个页中的排序位置;
该获取单元901,还用于:
在根据该第二起始页编号确定该好区的起始页存在于第一预设区间的情况下,获取第一预设编号,其中,该第一预设区间中包含多个页,该第一预设编号为该第一预设区间的下一页的编号;
该更新单元903,具体用于:将该第一起始页编号更新为该第一预设编号。
有一种可能的实现方式中,该目标存储块的存储区间信息包含该目标存储块的可用存储区间的终止页的第一终止页编号,该好区包含的多个页中有该好区的终止页,该好区的终止页的第二终止页编号和该第一终止页编号分别用于确定该好区的终止页和该目标存储块的可用存储区间的终止页在该目标存储块包含的多个页中的排序位置;
该获取单元901,还用于:
在根据该第二终止页编号确定该好区的终止页存在于第二预设区间的情况下,获取第二预设编号,其中,该第二预设区间中包含多个页,该第二预设编号为该第二预设区间的上一页的编号;
该更新单元903,具体用于:将该第一终止页编号更新为该第二预设编号。
有一种可能的实现方式中,该目标存储块的存储区间信息包含该目标存储块的可用存储区间的起始页的第一起始页编号和终止页的第一终止页编号;
该获取单元901,还用于:获取该第一起始页编号和该第一终止页编号之间的差值;
该控制器还包括:
标记单元905,用于在该差值达到预设阈值的情况下,将该目标存储块标记为不可用存储块。
本申请实施例还提供了一种存储设备,该存储设备包括控制器和存储器,该存储器包含存储块,该存储块包含多个页;
其中,该控制器用于执行如前述图2至图8所示实施例中描述的方法中控制器所执行的步骤,还用于生成指令;
该存储器用于根据该指令存储数据。
本实施例中,该存储设备可以为非嵌入式存储设备,也可以为嵌入式存储设备,应当理解,该存储设备具体的表现形式,应当根据实际情况灵活设定,此处不做限定。
本申请实施例还提供了一种终端,如图1b所示,该终端包含接口、处理器和存储设备,该存储设备包括控制器和存储器,该存储器包含存储块,该存储块包含多个页;
该处理器通过该接口将数据发送至该控制器;
该控制器用于执行如前述图2至图8所示实施例中描述的方法中控制器所执行的步骤,还用于通过该接口接收该处理器发送的该数据,并生成指令;
该存储器用于根据该指令存储该数据。
本申请实施例中还提供一种包含存储块管理指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如前述图2至图8所示实施例中描述的方法中控制器所执行的步骤。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有存储块处理的指令,当其在计算机上运行时,使得计算机执行如前述图2至图8所示实施例中描述的方法中控制器所执行的步骤。
本申请实施例中还提供一种芯片系统,该芯片系统包括处理器,用于支持网络设备实现上述方面中所涉及的功能,例如,例如发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存网络设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质、或者半导体介质,例如固态硬盘(solid state disk,SSD)等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (25)
1.一种存储块处理方法,其特征在于,应用于控制器,其中,所述控制器应用于存储设备,所述存储设备包含所述控制器和存储器,所述存储器包含多个存储块,所述存储块包含多个页,所述控制器中包含每个存储块的存储区间信息,所述存储区间信息用于指示存储块的可用存储区间,所述方法包括:
当检测到目标存储块中存在至少一个坏页时,获取与所述至少一个坏页一一对应的至少一个坏页位置;
根据所述至少一个坏页位置,确定好区,其中,所述好区为所述目标存储块的可用存储区间中连续且不存在所述坏页的最大存储区间;
更新所述目标存储块的存储区间信息,其中,更新后的所述目标存储块的存储区间信息指示所述目标存储块的可用存储区间为所述好区。
2.根据权利要求1所述的方法,其特征在于,所述至少一个坏页为一个坏页,所述根据所述至少一个坏页位置,确定好区,包括:
以所述一个坏页的坏页位置作为分隔页的位置对所述目标存储块的可用存储区间进行划分,以确定好区。
3.根据权利要求2所述的方法,其特征在于,所述一个坏页的坏页位置包含所述一个坏页的坏页编号,所述目标存储块的存储区间信息包含所述目标存储块的可用存储区间的起始页的第一起始页编号,所述一个坏页的坏页编号和所述第一起始页编号分别用于确定所述一个坏页和所述目标存储块的可用存储区间的起始页在所述目标存储块包含的多个页中的排序位置;
所述以所述一个坏页的坏页位置作为分隔页的位置对所述目标存储块的可用存储区间进行划分,以确定好区,包括:
在根据所述一个坏页的坏页编号确定所述一个坏页的排序位置在所述目标存储块的可用存储区间的前半部分的情况下,获取所述目标存储块的可用存储区间内所述一个坏页的下一页的编号,以确定所述一个坏页的下一页至所述目标存储块的可用存储区间的终止页包含的多个页为所述好区;
所述更新所述目标存储块的存储区间信息,包括:
将所述第一起始页编号更新为所述一个坏页的下一页的编号。
4.根据权利要求2所述的方法,其特征在于,所述一个坏页的坏页位置包含所述一个坏页的坏页编号,所述目标存储块的存储区间信息包含所述目标存储块的可用存储区间的终止页的第一终止页编号,所述一个坏页的坏页编号和所述第一终止页编号分别用于确定所述一个坏页和所述目标存储块的可用存储区间的终止页在所述目标存储块包含的多个页中的排序位置;
所述以所述一个坏页的坏页位置作为分隔页的位置对所述目标存储块的可用存储区间进行划分,以确定好区,包括:
在根据所述一个坏页的坏页编号确定所述一个坏页的排序位置在所述目标存储块的可用存储区间的后半部分的情况下,获取所述目标存储块的可用存储区间内所述一个坏页的上一页的编号,以确定所述目标存储块的可用存储区间的起始页至所述一个坏页的上一页包含的多个页为所述好区;
所述更新所述目标存储块的存储区间信息,包括:
将所述第一终止页编号更新为所述一个坏页的上一页的编号。
5.根据权利要求1所述的方法,其特征在于,所述至少一个坏页中有至少两个坏页,所述至少一个坏页位置中有与所述至少两个坏页一一对应的至少两个坏页位置,所述至少两个坏页位置中包含与目标坏页对应的目标坏页位置,所述目标坏页为所述至少两个坏页中的任一坏页;
所述根据所述至少一个坏页位置,确定好区,包括:
在根据所述目标坏页位置确定所述目标坏页存在于目标存储块的可用存储区间的情况下,以所述目标坏页位置作为分隔页的位置对所述目标存储块的可用存储区间进行划分,以确定好区。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
在所述好区内设置隔离区,以将所述好区划分为隔离区和用户数据区,其中,所述隔离区包含至少一个页的随机数据,位于所述至少一个坏页和所述用户数据区之间,所述用户数据区用于存储有效数据。
7.根据权利要求6所述的方法,其特征在于,所述至少一个坏页位置包含与所述至少一个坏页一一对应的至少一个坏页编号,所述至少一个坏页编号用于确定所述坏页在所述目标存储块包含的多个页中的排序位置,
所述在所述好区内设置隔离区包括:
在根据所述至少一个坏页编号确定所述至少一个坏页的排序位置在所述目标存储块的可用存储区间的前半部分的情况下,以所述好区中排序位置位于最上的一个页作为起始位置,写入所述至少一个页的随机数据,以形成所述隔离区。
8.根据权利要求6所述的方法,其特征在于,所述至少一个坏页位置包含与所述至少一个坏页一一对应的至少一个坏页编号,所述至少一个坏页编号用于确定所述坏页在所述目标存储块包含的多个页中的排序位置,
所述在所述好区内设置隔离区包括:
在根据所述至少一个坏页编号确定所述至少一个坏页的排序位置在所述目标存储块的可用存储区间的后半部分的情况下,若写入的有效数据已占满所述用户数据区,以所述用户数据区的下一页为起始位置,写入所述至少一个页的随机数据,以形成所述隔离区。
9.根据权利要求1-5任一项所述的方法,其特征在于,所述目标存储块的存储区间信息包含所述目标存储块的可用存储区间的起始页的第一起始页编号,所述好区包含的多个页中有所述好区的起始页,所述好区的起始页的第二起始页编号和所述第一起始页编号分别用于确定所述好区的起始页和所述目标存储块的可用存储区间的起始页在所述目标存储块包含的多个页中的排序位置,所述方法还包括:
在根据所述第二起始页编号确定所述好区的起始页存在于第一预设区间的情况下,获取第一预设编号,其中,所述第一预设区间中包含多个页,所述第一预设编号为所述第一预设区间的下一页的编号;
所述更新所述目标存储块的存储区间信息,其中,更新后的所述目标存储块的存储区间信息确定所述目标存储块的可用存储区间为所述好区,包括:
将所述第一起始页编号更新为所述第一预设编号。
10.根据权利要求1-5任一项所述的方法,其特征在于,所述目标存储块的存储区间信息包含所述目标存储块的可用存储区间的终止页的第一终止页编号,所述好区包含的多个页中有所述好区的终止页,所述好区的终止页的第二终止页编号和所述第一终止页编号分别用于确定所述好区的终止页和所述目标存储块的可用存储区间的终止页在所述目标存储块包含的多个页中的排序位置,所述方法还包括:
在根据所述第二终止页编号确定所述好区的终止页存在于第二预设区间的情况下,获取第二预设编号,其中,所述第二预设区间中包含多个页,所述第二预设编号为所述第二预设区间的上一页的编号;
所述更新所述目标存储块的存储区间信息,其中,更新后的所述目标存储块的存储区间信息确定所述目标存储块的可用存储区间为所述好区,包括:
将所述第一终止页编号更新为所述第二预设编号。
11.根据权利要求1-5任一项所述的方法,其特征在于,所述目标存储块的存储区间信息包含所述目标存储块的可用存储区间的起始页的第一起始页编号和终止页的第一终止页编号,所述方法还包括:
获取所述第一起始页编号和所述第一终止页编号之间的差值;
在所述差值达到预设阈值的情况下,将所述目标存储块标记为不可用存储块。
12.一种控制器,其特征在于,所述控制器应用于存储设备,所述存储设备包含所述控制器和存储器,所述存储器包含多个存储块,所述存储块包含多个页,所述控制器中包含每个存储块的存储区间信息,所述存储区间信息用于确定存储块的可用存储区间,所述控制器包括:
获取单元,用于当检测到目标存储块中存在至少一个坏页时,获取与所述至少一个坏页一一对应的至少一个坏页位置;
确定单元,用于根据所述至少一个坏页位置,确定好区;其中,所述好区为所述目标存储块的可用存储区间中连续且不存在所述坏页的最大存储区间;
更新单元,用于更新所述目标存储块的存储区间信息,其中,更新后的所述目标存储块的存储区间信息指示所述目标存储块的可用存储区间为所述好区。
13.根据权利要求12所述的控制器,其特征在于,所述至少一个坏页为一个坏页;
所述确定单元,具体用于:以所述一个坏页的坏页位置作为分隔页的位置对所述目标存储块的可用存储区间进行划分,以确定好区。
14.根据权利要求13所述的控制器,其特征在于,所述一个坏页的坏页位置包含所述一个坏页的坏页编号,所述目标存储块的存储区间信息包含所述目标存储块的可用存储区间的起始页的第一起始页编号,所述一个坏页的坏页编号和所述第一起始页编号分别用于确定所述一个坏页和所述目标存储块的可用存储区间的起始页在所述目标存储块包含的多个页中的排序位置;
所述确定单元,具体用于:
在根据所述一个坏页的坏页编号确定所述一个坏页的排序位置在所述目标存储块的可用存储区间的前半部分的情况下,获取所述目标存储块的可用存储区间内所述一个坏页的下一页的编号,以确定所述一个坏页的下一页至所述目标存储块的可用存储区间的终止页包含的多个页为所述好区;
所述更新单元,具体用于:将所述第一起始页编号更新为所述一个坏页的下一页的编号。
15.根据权利要求13所述的控制器,其特征在于,所述一个坏页的坏页位置包含所述一个坏页的坏页编号,所述目标存储块的存储区间信息包含所述目标存储块的可用存储区间的终止页的第一终止页编号,所述一个坏页的坏页编号和所述第一终止页编号分别用于确定所述一个坏页和所述目标存储块的可用存储区间的终止页在所述目标存储块包含的多个页中的排序位置;
所述确定单元,具体用于:
在根据所述一个坏页的坏页编号确定所述一个坏页的排序位置在所述目标存储块的可用存储区间的后半部分的情况下,获取所述目标存储块的可用存储区间内所述一个坏页的上一页的编号,以确定所述目标存储块的可用存储区间的起始页至所述一个坏页的上一页包含的多个页为所述好区;
所述更新单元,具体用于:将所述第一终止页编号更新为所述一个坏页的上一页的编号。
16.根据权利要求12所述的控制器,其特征在于,所述至少一个坏页中有至少两个坏页,所述至少一个坏页位置中有与所述至少两个坏页一一对应的至少两个坏页位置,所述至少两个坏页位置中包含与目标坏页对应的目标坏页位置,所述目标坏页为所述至少两个坏页中的任一坏页;
所述确定单元,具体用于:
在根据所述目标坏页位置确定所述目标坏页存在于目标存储块的可用存储区间的情况下,以所述目标坏页位置作为分隔页的位置对所述目标存储块的可用存储区间进行划分,以确定好区。
17.根据权利要求12-16任一项所述的控制器,其特征在于,所述控制器还包括:
设置单元,用于在所述好区内设置隔离区,以将所述好区划分为隔离区和用户数据区,其中,所述隔离区包含至少一个页的随机数据,位于所述至少一个坏页和所述用户数据区之间,所述用户数据区用于存储有效数据。
18.根据权利要求17所述的控制器,其特征在于,所述至少一个坏页位置包含与所述至少一个坏页一一对应的至少一个坏页编号,所述至少一个坏页编号用于确定所述坏页在所述目标存储块包含的多个页中的排序位置,
所述设置单元,具体用于:
在根据所述至少一个坏页编号确定所述至少一个坏页的排序位置在所述目标存储块的可用存储区间的前半部分的情况下,以所述好区中排序位置位于最上的一个页作为起始位置,写入所述至少一个页的随机数据,以形成所述隔离区。
19.根据权利要求17所述的控制器,其特征在于,所述至少一个坏页位置包含与所述至少一个坏页一一对应的至少一个坏页编号,所述至少一个坏页编号用于确定所述坏页在所述目标存储块包含的多个页中的排序位置,
所述设置单元,具体用于:
在根据所述至少一个坏页编号确定所述至少一个坏页的排序位置在所述目标存储块的可用存储区间的后半部分的情况下,若写入的有效数据已占满所述用户数据区,以所述用户数据区的下一页为起始位置,写入所述至少一个页的随机数据,以形成所述隔离区。
20.根据权利要求12-16任一项所述的控制器,其特征在于,所述目标存储块的存储区间信息包含所述目标存储块的可用存储区间的起始页的第一起始页编号,所述好区包含的多个页中有所述好区的起始页,所述好区的起始页的第二起始页编号和所述第一起始页编号分别用于确定所述好区的起始页和所述目标存储块的可用存储区间的起始页在所述目标存储块包含的多个页中的排序位置;
所述获取单元,还用于:
在根据所述第二起始页编号确定所述好区的起始页存在于第一预设区间的情况下,获取第一预设编号,其中,所述第一预设区间中包含多个页,所述第一预设编号为所述第一预设区间的下一页的编号;
所述更新单元,具体用于:将所述第一起始页编号更新为所述第一预设编号。
21.根据权利要求12-16任一项所述的控制器,其特征在于,所述目标存储块的存储区间信息包含所述目标存储块的可用存储区间的终止页的第一终止页编号,所述好区包含的多个页中有所述好区的终止页,所述好区的终止页的第二终止页编号和所述第一终止页编号分别用于确定所述好区的终止页和所述目标存储块的可用存储区间的终止页在所述目标存储块包含的多个页中的排序位置;
所述获取单元,还用于:
在根据所述第二终止页编号确定所述好区的终止页存在于第二预设区间的情况下,获取第二预设编号,其中,所述第二预设区间中包含多个页,所述第二预设编号为所述第二预设区间的上一页的编号;
所述更新单元,具体用于:将所述第一终止页编号更新为所述第二预设编号。
22.根据权利要求12-16任一项所述的控制器,其特征在于,所述目标存储块的存储区间信息包含所述目标存储块的可用存储区间的起始页的第一起始页编号和终止页的第一终止页编号;
所述获取单元,还用于:获取所述第一起始页编号和所述第一终止页编号之间的差值;
所述控制器还包括:
标记单元,用于在所述差值达到预设阈值的情况下,将所述目标存储块标记为不可用存储块。
23.一种存储设备,其特征在于,所述存储设备包括控制器和存储器,所述存储器包含存储块,所述存储块包含多个页;
其中,所述控制器用于执行如权利要求1-11中任意一项所述的存储块处理方法,还用于生成指令;
所述存储器用于根据所述指令存储数据。
24.一种终端,其特征在于,所述终端包含接口、处理器和存储设备,所述存储设备包括控制器和存储器,所述存储器包含存储块,所述存储块包含多个页;
所述处理器通过所述接口将数据发送至所述控制器;
所述控制器用于执行如权利要求1-11中任意一项所述的存储块处理方法,还用于通过所述接口接收所述处理器发送的所述数据,并生成指令;
所述存储器用于根据所述指令存储所述数据。
25.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有存储块处理的指令,当其在计算机上运行时,使得计算机执行上述权利要求1-11任一权利要求所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/110223 WO2020077489A1 (zh) | 2018-10-15 | 2018-10-15 | 一种存储块处理的方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112805686A CN112805686A (zh) | 2021-05-14 |
CN112805686B true CN112805686B (zh) | 2023-06-06 |
Family
ID=70282861
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880098515.6A Active CN112805686B (zh) | 2018-10-15 | 2018-10-15 | 一种存储块处理方法及相关设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112805686B (zh) |
WO (1) | WO2020077489A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114063905B (zh) * | 2021-10-13 | 2024-04-02 | 武汉光迅电子技术有限公司 | 日志存储方法、日志存储装置、存储设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622306A (zh) * | 2012-02-21 | 2012-08-01 | 中颖电子股份有限公司 | 存储装置的坏块管理方法 |
WO2013016393A1 (en) * | 2011-07-28 | 2013-01-31 | Sandisk Technologies Inc. | Data recovery for defective word lines during programming of non-volatile memory arrays |
CA2894936A1 (en) * | 2014-06-27 | 2015-12-27 | Chenyi Zhang | Controller, flash memory apparatus, and method for writing data into flash memory apparatus |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101797565B1 (ko) * | 2011-08-22 | 2017-12-12 | 삼성전자 주식회사 | 불량 페이지를 관리하는 메모리 장치 |
CN102298543A (zh) * | 2011-09-15 | 2011-12-28 | 成都市华为赛门铁克科技有限公司 | 一种存储器管理方法和装置 |
KR20130078973A (ko) * | 2012-01-02 | 2013-07-10 | 삼성전자주식회사 | 메모리 장치의 불량 저장 영역 관리 방법 및 이를 이용한 저장 장치 |
US9318168B2 (en) * | 2012-11-27 | 2016-04-19 | Samsung Electronics Co., Ltd. | Memory system for continuously mapping addresses of a memory module having defective locations |
CN108701488A (zh) * | 2015-12-01 | 2018-10-23 | 科内克斯实验室公司 | 用于在逻辑上去除非易失性存储器存储设备中的缺陷页的方法和装置 |
KR20170131796A (ko) * | 2016-05-20 | 2017-11-30 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
CN106681664B (zh) * | 2016-12-29 | 2020-01-07 | 至誉科技(武汉)有限公司 | 一种用于提高固态硬盘使用寿命的管理策略 |
CN106681936A (zh) * | 2016-12-29 | 2017-05-17 | 记忆科技(深圳)有限公司 | 一种nandflash的坏块管理方法 |
-
2018
- 2018-10-15 WO PCT/CN2018/110223 patent/WO2020077489A1/zh active Application Filing
- 2018-10-15 CN CN201880098515.6A patent/CN112805686B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013016393A1 (en) * | 2011-07-28 | 2013-01-31 | Sandisk Technologies Inc. | Data recovery for defective word lines during programming of non-volatile memory arrays |
CN102622306A (zh) * | 2012-02-21 | 2012-08-01 | 中颖电子股份有限公司 | 存储装置的坏块管理方法 |
CA2894936A1 (en) * | 2014-06-27 | 2015-12-27 | Chenyi Zhang | Controller, flash memory apparatus, and method for writing data into flash memory apparatus |
Also Published As
Publication number | Publication date |
---|---|
WO2020077489A1 (zh) | 2020-04-23 |
CN112805686A (zh) | 2021-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10936394B2 (en) | Information processing device, external storage device, host device, relay device, control program, and control method of information processing device | |
US9645918B2 (en) | Storage devices including non-volatile memory and memory controller and methods of allocating write memory blocks | |
US8015371B2 (en) | Storage apparatus and method of managing data storage area | |
US9298534B2 (en) | Memory system and constructing method of logical block | |
US8706989B2 (en) | Data storage device with power-off recovery system and method thereof | |
RU2661280C2 (ru) | Контроллер массива, твердотельный диск и способ для управления твердотельным диском для записи данных | |
KR101086876B1 (ko) | 예비 영역을 유동적으로 관리하는 반도체 스토리지 시스템 및 그 제어 방법 | |
EP2816483A1 (en) | Information processing apparatus, control circuit, and control method | |
US10621085B2 (en) | Storage system and system garbage collection method | |
CN109086219B (zh) | 去分配命令处理方法及其存储设备 | |
CN113490922B (zh) | 固态硬盘写放大优化方法 | |
CN109074227B (zh) | 一种数据校验的方法及存储系统 | |
CN104731674B (zh) | 使用mlc nvm存储电子系统固件的方法与设备 | |
CN110895513A (zh) | 一种系统垃圾回收方法和固态硬盘中的垃圾回收方法 | |
US20120089765A1 (en) | Method for performing automatic boundary alignment and related non-volatile memory device | |
CN105573666A (zh) | 盘阵列设备、盘控制设备、固态驱动器、盘控制方法和记录介质 | |
CN112805686B (zh) | 一种存储块处理方法及相关设备 | |
US9703495B2 (en) | Memory controller, memory system, and memory control method | |
CN110688323A (zh) | 一种系统控制器和系统垃圾回收方法 | |
CN108304139B (zh) | 一种在固态盘阵列中实现空间释放的方法及装置 | |
US10635583B2 (en) | Memory management method and storage controller | |
US10430288B2 (en) | Data backup method, data recovery method and storage controller | |
EP4137952A1 (en) | Lifecycle-aware persistent storage | |
CN115904800A (zh) | 数据备份方法、装置、设备、系统、介质及程序产品 | |
CN112416258A (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 |