CN112527201B - Ssd坏块替换方法、装置、可读存储介质及电子设备 - Google Patents

Ssd坏块替换方法、装置、可读存储介质及电子设备 Download PDF

Info

Publication number
CN112527201B
CN112527201B CN202011459499.4A CN202011459499A CN112527201B CN 112527201 B CN112527201 B CN 112527201B CN 202011459499 A CN202011459499 A CN 202011459499A CN 112527201 B CN112527201 B CN 112527201B
Authority
CN
China
Prior art keywords
blocks
block
super
bad
candidate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011459499.4A
Other languages
English (en)
Other versions
CN112527201A (zh
Inventor
孙成思
孙日欣
邓羽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Baiwei Storage Technology Co ltd
Original Assignee
Chengdu Baiwei Storage Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chengdu Baiwei Storage Technology Co ltd filed Critical Chengdu Baiwei Storage Technology Co ltd
Priority to CN202011459499.4A priority Critical patent/CN112527201B/zh
Publication of CN112527201A publication Critical patent/CN112527201A/zh
Application granted granted Critical
Publication of CN112527201B publication Critical patent/CN112527201B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

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

Abstract

本发明公开一种SSD坏块替换方法、装置、计算机可读存储介质及电子设备,对于每一轮的坏块替换,先遍历候选超级块集合中的候选超级块,获取当前遍历的候选超级块的好块被替换后剩余好块个数;再判断剩余好块个数是否满足预设的停止条件;若满足,停止遍历,将当前选择遍历的所述候选超级块确定为用于坏块替换的目标超级块,若不满足,则遍历完成后将剩余好块个数最少的候选超级块确定为目标超级块;并根据目标超级块的好块信息及所有接受者超级块的坏块信息执行坏块替换操作;不仅大大提高了SSD坏块替换效率,而且能够得到最优的坏块替换结果。

Description

SSD坏块替换方法、装置、可读存储介质及电子设备
技术领域
本领域涉及存储技术领域,特别是涉及一种SSD坏块替换的方法、装置和可读存储介质及电子设备。
背景技术
Bad Block(简称坏块)是SSD(Solid State Disk,固态硬盘)中已经损坏,不能再进行正常读写的Block(块)。由于制造工艺和存储管理的限制,SSD的存储媒介NAND(NANDflash memory,计算机闪存设备)刚出厂时通常会存在坏块。在传统技术中,SSD的普遍做法是进行坏块替换,目的是将超级块上所有的坏块替换成好的、可用的。
而如图1所示,超级块(Super Block)是相同物理位置上所有Block的集合,如图2、3所示,可以用相同plane(面,NAND可以依据读、写、擦除等命令进行操作的最小单位,包括若干个Block)上的好块替换坏块。但是,超级块在提供了好块之后,该超级块上的其余所有好块就都不再使用,这就导致超级块上的剩余好块没有达到充分利用。比如,图2中的超级块2在提供了好块之后,该超级块上的所有块就都不再使用。为了减小浪费,最好的方式是让超级块把它所有的好块都提供出来给其他的超级块进行替换。但是,在不同的NAND中,坏块的分布情况不同,导致很难做到最优的坏块替换。
发明内容
本发明所要解决的技术问题是:提供一种SSD坏块替换方法、装置、可读存储介质及电子设备,在对SSD进行坏块替换时能够提高替换效率。
为了解决上述技术问题,本发明采用的技术方案为:
一种基于SSD坏块替换方法,包括步骤:
遍历候选超级块集合中的候选超级块,获取当前被遍历的候选超级块的好块被替换后的剩余好块个数;
判断所述剩余好块个数是否满足预设停止条件,若满足,则停止遍历,将当前遍历的所述候选超级块确定为目标超级块,若不满足,则遍历完成后将剩余好块个数最少的候选超级块作为目标超级块;
根据所述目标超级块的好块信息以及所有接受者超级块的坏块信息执行坏块替换操作,并执行遍历候选超级块集合中的候选超级块步骤直至所有所述接受者超级块能够被替换的坏块均被替换。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种基于SSD坏块替换的装置,包括:
获取模块,用于遍历候选超级块集合中的候选超级块,获取当前遍历的候选超级块的好块被替换后的剩余好块个数;
判断模块,用于判断所述剩余好块个数是否满足预设的停止条件,若满足,则停止遍历,将当前遍历的所述候选超级块确定为目标超级块,若不满足,则遍历完成后剩余好块个数最少的候选超级块作为目标超级块;
替换模块,用于根据所述目标超级块的好块信息以及所有接受者超级块的坏块信息执行坏块替换操作,并执行遍历候选超级块集合中的候选超级块步骤直至所有所述接受者超级块能够被替换的坏块均被替换。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述一种SSD坏块替换方法中的各个步骤。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种SSD坏块替换方法中的各个步骤。
本发明的有益效果在于:对于每一轮的坏块替换,先遍历候选超级块集合中的候选超级块,获取当前遍历的候选超级块的好块被替换后的剩余好块个数;再判断候剩余好块个数是否满足预设的停止条件;若满足,停止遍历,将当前遍历的所述候选超级块确定为用于坏块替换的目标超级块,若不满足,则遍历完成后将剩余好块个数最少的候选超级块作为目标超级块;通过设定预设停止条件,使得在每轮坏块替换过程中,当满足预设的停止条件时,能够及时的停止遍历,不需要对每一个候选超级块都进行判断,并且对于每一个候选超级块都遍历的情况,则将剩余好块个数最少的候选超级块确定为目标超级块,不仅大大提高了SSD坏块替换效率,而且能够得到最优的坏块替换结果。
附图说明
图1为现有技术SSD超级块的结构示意图;
图2为现有技术SSD坏块替换的示意图;
图3为现有技术SSD坏块替换后的示意图;
图4为本发明实施例的一种SSD坏块替换方法的步骤流程图;
图5为本发明实施例的一种SSD坏块替换装置的结构示意图;
图6为本发明实施例的一种电子设备的结构示意图;
图7为本发明实施例的一种SSD坏块替换方法中坏块分布的示意图;
图8为本发明实施例的一种SSD坏块替换方法的第一轮预处理的示意图;
图9为本发明实施例的一种SSD坏块替换方法的第一轮替换的示意图;
图10为本发明实施例的一种SSD坏块替换方法的第二轮预处理的示意图;
图11为本发明实施例的一种SSD坏块替换方法的第二轮替换的示意图;
图12为本发明实施例的一种SSD坏块替换方法的第三轮预处理的示意图;
图13为本发明实施例的一种SSD坏块替换方法的第三轮替换的示意图;
图14为本发明实施例的一种SSD坏块替换方法的第四轮预处理的示意图;
图15为本发明实施例的一种SSD坏块替换方法的第四轮替换的示意图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
请参照图4,一种基于SSD坏块替换方法,包括步骤:
遍历候选超级块集合中的候选超级块,获取当前遍历的候选超级块的好块被替换后的剩余好块个数;
判断所述剩余好块个数是否满足预设的停止条件,若满足,则停止遍历,将当前遍历的所述候选超级块确定为目标超级块,若不满足,则遍历完成后将剩余好块个数最少的候选超级块作为目标超级块;
根据所述目标超级块的好块信息以及所有接受者超级块的坏块信息执行坏块替换操作,并执行遍历候选超级块集合中的候选超级块的步骤直至所有所述接受者超级块能够被替换的坏块均被替换。
从上述描述可知,本发明的有益效果在于:对于每一轮的坏块替换,先遍历候选超级块集合中的候选超级块,获取当前遍历的候选超级块的好块被替换后的剩余好块个数;再判断候剩余好块个数是否满足预设的停止条件;若满足,停止遍历,将当前遍历的所述候选超级块确定为目标超级块,若不满足,则遍历完成后将剩余好块个数最少的候选超级块作为目标超级块;通过设定预设停止条件,使得在每轮坏块替换过程中,当满足预设的停止条件时,能够及时的停止遍历,不需要对每一个候选超级块都进行判断,并且对于每一个候选超级块都遍历的情况,则选取剩余好块个数最少的候选超级块确定为目标超级块,不仅大大提高了SSD坏块替换效率,而且能够得到最优的坏块替换结果。
进一步的,所述剩余好块个数是否满足预设停止条件包括:
判断所述剩余好块个数是否不大于目标剩余好块个数;
若是,则确定所述剩余好块个数满足所述预设的停止条件,若否,则确定所述剩余好块个数不满足预设的停止条件。
由上述描述可知,将当前遍历的候选超级块的剩余好块个数与当前目标剩余好块个数进行比较判断,从而通过当前候选超级块的剩余好块个数是否满足预设的停止条件确定目标超级块,使每一轮选择用于提供好块的目标超级块进行适时的停止遍历,进一步提高坏块替换效率。
进一步的,若所述剩余好块个数不满足所述预设停止条件,则遍历完成后根据所述剩余好块个数最少的候选超级块的剩余好块个数更新所述目标剩余好块个数。
由上述描述可知,当所述剩余好块个数不满足预设停止条件时,则遍历完成后会根据其所述剩余好快个数最少的候选超级块的剩余好快个数更新所述目标剩余好块个数,从而保证所预设停止条件的准确性,以及坏块替换的可靠性。
进一步的,所述SSD坏块替换方法还包括:
获取所有超级块的坏块个数;
按照所述坏块个数从多到少的顺序进行排序,以坏块个数大于预设个数的超级块作为所述候选超级块集合中的元素,以所述候选超级块集合外的超级块为接受者超级块。
由上述描述可知,根据所有超级块上的坏块个数由多到少进行排序,确定坏块个数大于预设个数的超级块作为候选超级块集合中的元素,从而确定所述候选超级块集合,以此来区分候选超级块集合以及接受者超级块集合,从而使候选超级块上的好块个数得到最大利用,减少超级块的浪费。
进一步的,所述获取当前遍历的候选超级块的好块被替换后的剩余好块个数包括:
获取当前遍历的所述候选超级块的好块编号;
获取所有所述接受者超级块的坏块编号;
将所述当前遍历的所述候选超级的好块编号与所有所述接受者超级块的坏块编号进行匹配,以所述好块编号与所述坏块编号的不匹配个数作为所述剩余好块个数。
由上述描述可知,获取当前遍历的候选超级块被替换后的剩余好块个数的过程,需先获取当前遍历的候选超级块的好块编号与所有接受者超级块的坏块编号信息,然后进行匹配,以此确定当前遍历的候选超级块的剩余好块个数。通过获取候选超级块上的好块信息与所有接受者超级块上的坏块信息,确保坏块替换信息的准确和可靠。
进一步的,所述剩余好块个数最少的候选超级块作为目标超级块包括步骤:
获取每一个候选超级块剩余好块个数;
将所述剩余好块个数按照由多到少的顺序进行排序,以剩余好块个数最少的候选超级块作为所述目标超级块。
由上述描述可知,在选取目标超级块的过程中,不满足预设的停止条件下,则需对候选超级块集合中的候选超级块进行全遍历,记录下遍历过的每一候选超级块的剩余好块个数,从而以剩余好块个数最少的候选超级块作为目标超级块,可得到最优的坏块替换结果,且通过对记录的剩余好块个数的排序,能够方便快捷地确定出目标超级块。
进一步的,在坏块替换操作之后还包括步骤:
记录所述目标超级块的编号、所有接受者超级块的编号以及已替换的坏块的编号;
根据所述记录的信息更新所述目标超级块的好块信息以及所有所述接受者超级块的坏块信息。
由上述描述可知,在每一轮的坏块替换后,执行记录坏块替换信息的操作,然后通过读取所述记录的坏块替换信息,实时更新所述目标超级块的好块信息以及所有接受者超级块的坏块信息,从而提高下一轮目标超级块选取的精确度。
请参照图5,本发明另一实施例提供了一种SSD坏块替换装置,包括:
获取模块,遍历候选超级块集合中的候选超级块,获取当前遍历的候选超级块的好块被替换后的剩余好块个数;
判断模块,用于判断所述剩余好块个数是否满足预设的停止条件,若满足,则停止遍历,将当前遍历的候选超级块确定为目标超级块,若不满足,则遍历完成后将剩余好块个数最少的候选超级块作为目标超级块;
替换模块,用于根据所述目标超级块的好块信息以及所有接受者超级块的坏块信息执行坏块替换操作,并执行遍历候选超级块集合的候选超级块的步骤直至所有所述接受者超级块能够被替换的坏块均被替换。
本发明另一实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述SSD坏块替换方法中的各个步骤。
请参照图6,本发明另一实施例提供了一种计算机设备,包括存储器,处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述SSD坏块替换方法中的各个步骤。
本发明上述SSD坏块替换方法、装置、可读存储介质及电子设备能够适用于任何类型的SSD的坏块替换中,以下通过具体实施方式进行说明:
实施例一
请参照图4,一种SSD坏块替换方法,包括步骤:
S1、遍历候选超级块集合中的候选超级块,获取当前遍历的候选超级块的好块被替换后的剩余好块个数;
其中,所述获取当前遍历的候选超级块的好块被替换后的剩余好块个数包括:
获取当前遍历的所述候选超级块的好块编号;
获取所有所述接受者超级块的坏块编号;
将所述当前遍历的所述候选超级的好块编号与所有所述接受者超级块的坏块编号进行匹配,以所述好块编号与所述坏块编号的不匹配个数作为所述剩余好块个数;
其中,用于为坏块提供好块的超级块可以称之为贡献者(donor);
接受贡献者提供的好块做坏块替换的超级块称之为接受者(receptor);
其中,还包括候选超级块集合的确定,具体的:
获取所有超级块的坏块个数,按照所述坏块个数从多到少的顺序进行排序,以坏块个数大于预设个数的超级块作为所述候选超级块集合中的元素;
其中,SSD正常工作时,会建立坏块表,通过读取坏块表上的信息,可将所有超级块按照坏块个数从多到少的顺序排序,根据预设坏块个数划分候选超级块集合和接受者超级块集合。具体的,预设个数根据所有超级块上的坏块个数及分布情况进行合理预设;
在本实施例中,如图7所示,通过获取所有超级块上的坏块信息后,按照超级块上坏块个数从多到少进行排序,并通过预设超级块上坏块个数是否超过1划分为候选超级块集合和接受好块的超级块集合,即确定坏块超过1的超级块作为贡献者,其余的超级块作为接受者;在本发明实施例中,候选超级块集合中的所有元素均为贡献者,该候选超级块集合外的所有超级块均作为接受者。
S2、判断所述剩余好块个数是否满足预设的停止条件,若满足,则停止遍历,将当前遍历的所述候选超级块确定为目标超级块,若不满足,则遍历完成后将剩余好块个数最少的候选超级块确定为目标超级块;
其中,所述剩余好块个数是否满足预设停止条件包括:
判断所述剩余好块个数是否不大于上一轮目标超级块的剩余好块个数;
若是,则确定所述剩余好块个数满足所述预设停止条件,若否,则确定所述剩余好块个数不满足所述预设停止条件;
其中,在每完成一轮donor筛选和替换之后,需要替换的坏块分布情况发生变化。剩余的备选超级块如果被选为donor,那么在该轮的坏块替换之后剩余好块也会发生变化,因此不能对所有备选超级块的剩余好块进行一次性排序。只能每次选取donor的时候,对所有的备选超级块进行预处理。预处理过程为以当前被选择的候选超级块为目标,将其上面所有的好块拿出来做替换(替换多个接受者),记录下该超级块预处理完成后的剩余好块个数。当所有的候选超级块都完成了预处理之后,对剩余好块个数按照由高到低的顺序进行排列;预处理完成之后选择剩余好块数最少的作为donor;
为了避免在预处理过程中将所有的备选超级块都做一次预处理,利用一个超级块的Block总数为M,剩余好块个数一定在[0,M]这个区间范围内的特点可以在预处理过程中设置如下停止条件:
在第一次选择donor时,将停止条件设置为:在预处理过程中,超级块的剩余好块个数为0;
当选择donor的遍历操作开始时,一旦碰到有剩余好块个数为0的超级块时,即可停止遍历,该超级块成为donor。如果没有剩余好块个数为0的超级快,那么选中的donor是所有候选超级块中剩余好块个数最少的超级块。使用该donor进行坏块替换,替换后剩下的好块数为N(N可能是0,或者某个非0的值);
具体地,在第一次进行donor选择时,先获取所有超级块的坏块数量及坏块在超级块上的编号(坏块编号),根据超级块的坏块数量进行由多到少的排序,按照选取策略确定作为备选donor的超级块;
遍历排序后的超级块,当确定该作为备选donor的超级块上所有的好块均能替换接受者的坏块时,即该备选donor的超级块剩余的好块为0时,该作为备选donor的超级块即为被选定的donor;
更具体地,将作为备选donor的超级块的好块编号与作为接受者的超级块的坏块编号进行匹配,若全部匹配上,则该作为备选donor的超级块在匹配后剩余的好块为0;
设置第二轮以上的停止条件为:在预处理过程中,超级块剩余好块个数为N(N:上一轮选中的donor所剩下的好块个数),由于N为上一轮选中的donor在预处理过程中剩余好块个数,所以这一轮选择的donor剩余好块个数不可能小于N;
当选择donor的遍历操作开始时,一旦碰到有剩余好块个数为N的超级块时,即可停止遍历,该超级块成为donor。如果没有剩余好块个数为N的超级块那么选中的donor是所有备选超级块中剩余好块个数最少的超级块,使用该donor进行坏块替换;
S3、根据所述目标超级块的好块信息以及所有接受者超级块的坏块信息执行坏块替换操作,并执行遍历候选超级块集合中的候选超级块的步骤直至所有所述接受者超级块能够被替换的坏块均被替换;
具体的,在本实施例中,如图8所示,第一轮预处理过程,预设的停止条件为0,从候选超级块集合中的超级块0开始遍历,根据接受者超级块上的坏块信息,可确定超级块0上的好块Block 2/5/7分别能够替换接受好块的超级块上的超级块6的Block2、超级块9的Block5和超级块13的Block7,在本轮中,超级块0的剩余好块个数满足预设的停止条件,可确定第一轮的目标超级块为超级块0,此时即可退出遍历过程,并且选择超级块6、9和13,执行坏块替换操作,如图9所示;
经过第一轮目标超级块的选取和坏块替换后,由于第一轮选取为目标超级块的超级块0的剩余好块个数为0,可确定第二轮预处理预设的停止条件为0,如图10所示,超级块0的好块个数在第一轮中已被全部使用,故从超级块1开始遍历,根据接受者的所有超级块信息,超级块1中的好块只有Block0/3/7能够被替换,剩余Block5;超级块2中只有Block1/2/4/6能够被替换,剩余Block5;超级块3中的Block0/3/4/6/7均能被替换,无剩余好块,满足预设的停止条件,可确定第二轮的目标超级块为超级块3,此时退出遍历操作并进行坏块替换操作,如图11所示;
经过第二轮目标超级块的选取和坏块替换后,由于第二轮选取为目标超级块的超级块3的剩余好块个数为0,可确定第三轮预处理预设的停止条件为0,系统根据上一轮坏块替换信息更新坏块分布情况,具体的,如图12所示,超级块0和超级块3在前面已被全部使用,故从超级块1开始遍历,根据接受者的所有超级块信息,超级块1中没有可替换的好块;超级块2只有Block1/2/4/6能被替换,剩余Block5;超级块4只有Block1/2/6能被替换,剩余Block0/5/7;超级块5只有Block1/2/4/6能够被使用,剩余Block3/5;在遍历的过程中没有满足预设的停止条件;遍历完候选超级块集合中的剩余候选超级块后,选取剩余好块个数最少的候选超级块作为目标超级块,故确定本轮的目标超级块为超级块2,执行坏块替换操作,如图13所示;
经过第三轮目标超级块的选取和坏块替换后,由于第三轮选取为目标超级块的超级块2的剩余好块个数为1,可确定第四轮预处理预设的停止条件为1,系统根据上一轮坏块替换信息更新坏块分布情况,具体的,如图14所示,超级块0、超级块2和超级块3在前面已被全部使用,故从超级块1开始遍历,根据接受者的所有超级块信息,超级块1中无可替换的好块;超级块4只有Block2能被替换,剩余Block0/1/5/6/7;超级块5也只有Block2被使用,剩余Block1/3/4/5/6;在遍历的过程中没有满足预设的停止条件;遍历完候选超级块集合中的剩余候选超级块后,选取剩余好块个数最少的候选超级块作为目标超级块,故确定本轮的目标超级块为超级块4,执行坏块替换操作,如图15所示;
依此类推,直至所有receptor上能够被替换的坏块均被替换为止。
实施例二
本实施例与实施例一的不同在于,进一步限定了:
若所述剩余好块个数不满足所述预设停止条件,则遍历完成后根据所述剩余好块个数最少的候选超级块的剩余好块个数更新所述目标剩余好块个数;
即所述预设的停止条件在完成每一轮目标超级块的选取和坏块替换后自动更新,在进行遍历的过程中,当满足预设停止条件时,即找到合适的donor,即目标超级块,此时退出遍历过程,并且该预设的停止条件会在每找到一个donor后,根据当前的情况进行更新,以此实现自适应;
具体的,所有超级块上剩余好块个数的区间范围一定为[0,M],其中,M为一个超级块的Block总数,则第一轮选择用于提供好块的目标超级块的过程中预设的停止条件为0,后续每一轮的预设停止条件通过获取前一轮记录的选中的目标超级块的所有能够被替换的好块都替换后的剩余好块个数,自动更新下一轮预设的停止条件;
在本实施例中,如第三轮设定的目标剩余好块个数为0,通过遍历后,第三轮以超级块2作为目标超级块的剩余好块个数为1,则将该目标剩余好块个数更新为1,并在进行第四轮目标超级块选取过程中,将目标剩余好块个数更新后的1作为预设的停止条件,如图13、14所示;
在选取目标超级块的过程中,对于被选择的候选超级块,只记录所述被选择的候选超级块的好块都提供出来后剩余好块个数,即预处理只记录下剩余好块个数,不会记录替换信息,替换信息只在最后选定donor并完成实际替换之后记录;
在确定目标超级块时,若所述候选超级块集合中的候选超级块均被遍历过,则根据记录的每一个候选超级块剩余好块个数按照由高到低的顺序进行排序,选取剩余好块个数最少的候选超级块作为所述目标超级块;
其中,在坏块替换操作之后还包括步骤:
记录所述目标超级块的编号、所有接受者超级块的编号以及已替换坏块的编号;
根据所述记录的信息更新所述目标超级块的好块信息以及所有所述接受者超级块的坏块信息;
具体的,如图9和图10所示,即实施例一中第一轮坏块替换过程,先通过预处理确定目标超级块为超级块0,并在预处理后,系统会根据目标超级块的剩余好块个数进行记录,且在预处理过程,可知超级块0上的Block 2/5/7分别可被超级块6上的Block 2、超级块9上的Block 5和超级块13上的Block 7替换,通过执行坏块替换操作后,系统记录目标超级块的编号超级块0,receptor超级块编号,即超级块6、超级块9、超级块13以及做了替换的坏块的编号信息,超级块0的Block 2/5/7、超级块6的Block 2、超级块9的Block5和超级块13的Block7,并且将记录的信息以数组的形式写入NAND中,然后通过读取NAND上记录的替换信息自动更新目标超级块的好块信息及receptor的坏块信息以及预设停止条件,以此实现自适应过程。
实施例三
请参照图4,一种SSD坏块替换装置,包括:
获取模块,遍历候选超级块集合中的候选超级块,获取当前遍历的候选超级块的好块被替换后的剩余好块个数;
判断模块,判断所述剩余好块个数是否满足预设的停止条件,若满足,则停止遍历,将当前遍历的所述候选超级块确定为目标超级块,若不满足,则遍历完成后将剩余好块个数最少的候选超级块作为目标超级块;
替换模块,用于根据所述目标超级块的好块信息以及所有接受者超级块的坏块信息执行坏块替换操作,并执行遍历候选超级块集合中的候选超级块的操作直至所有所述接受者超级块能够被替换的坏块均被替换。
实施例四
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例一或二中的SSD坏块替换方法中的各个步骤。
实施例五
请参照图6,一种电子设备,包括存储器,处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例一或二中的SSD坏块替换方法中的各个步骤。
综上所述,本发明提供的一种SSD坏块替换方法、装置、可读存储介质及电子设备,对于每一轮的坏块替换,先遍历候选超级块集合中的候选超级块,获取当前遍历的候选超级块的好块被替换后剩余好块个数;再判断候剩余好块个数是否满足预设的停止条件;若满足,停止遍历,将当前遍历的所述候选超级块确定为目标超级块,若不满足,则遍历完成后将剩余好块个数最少的候选超级块作为目标超级块;通过设定预设的停止条件,使得在每一轮坏块替换过程中,当满足预设的停止条件时,能够及时的停止遍历,不需要对每一个候选超级块都进行判断,并且对于每一个候选超级块都遍历的情况,则选取剩余好块个数最少的候选数据块确定为目标超级块,并且在每轮坏块替换后,执行记录坏块替换信息的操作,根据记录的信息自动更新预设的停止条件、目标超级块上的好块信息及接受好块的超级块上的坏块信息,相较于现有的坏块替换方法,不仅减少超级块上的好块浪费,同时通过预设的停止条件实现自适应更新,提高了坏块替换效率并获得了最佳的坏块替换结果。
在本申请所提供的上述实施例中,应该理解到,所揭露的方法、装置、计算机可读存储介质以及电子设备,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个组件或模块可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或组件或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的组件可以是或者也可以不是物理上分开的,作为组件显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部组件来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个组件单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (9)

1.一种SSD坏块替换方法,其特征在于,包括步骤:
遍历候选超级块集合中的候选超级块,获取当前遍历的候选超级块的好块被替换的剩余好块个数;
判断所述剩余好块个数是否满足预设停止条件,若满足,则停止遍历,将当前遍历的所述候选超级块确定为目标超级块,若不满足,则遍历完成后将剩余好块个数最少的候选超级块作为目标超级块;
根据所述目标超级块的好块信息以及所有接受者超级块的坏块信息执行坏块替换操作,并执行遍历候选超级块集合中的候选超级块的步骤直至所有所述接受者超级块能够被替换的坏块均被替换;
其中,所述获取当前遍历的候选超级块的好块被替换后的剩余好块个数包括:
获取当前遍历的所述候选超级块的好块编号;
获取所有所述接受者超级块的坏块编号;
将所述当前遍历的所述候选超级块的好块编号与所有所述接受者超级块的坏块编号进行匹配,以所述好块编号与所述坏块编号的不匹配个数作为所述剩余好块个数。
2.根据权利要求1所述的SSD坏块替换方法,其特征在于,所述剩余好块个数是否满足预设停止条件包括:
判断所述剩余好块个数是否不大于目标剩余好块个数;
若是,则确定所述剩余好块个数满足所述预设停止条件,若否,则确定所述剩余好块个数不满足所述预设停止条件。
3.根据权利要求1或2所述的SSD坏块替换方法,其特征在于,若所述剩余好块个数不满足所述预设停止条件,则遍历完成后根据所述剩余好块个数最少的候选超级块的剩余好块个数更新所述目标剩余好块个数。
4.根据权利要求1所述的SSD坏块替换方法,其特征在于,所述SSD坏块替换方法还包括:
获取所有超级块的坏块个数;
按照所述坏块个数从多到少的顺序进行排序,以坏块个数大于预设个数的超级块作为所述候选超级块集合中的元素,以所述候选超级块集合外的超级块为接受者超级块。
5.根据权利要求1所述的SSD坏块替换方法,其特征在于,所述剩余好块个数最少的候选超级块作为目标超级块包括步骤:
获取每一个候选超级块的剩余好块个数;
将所述剩余好块个数按照由多到少的顺序进行排序,以剩余好块个数最少的候选超级块作为所述目标超级块。
6.根据权利要求1所述的SSD坏块替换方法,其特征在于,在执行坏块替换操作之后还包括步骤:
记录所述目标超级块的编号、所有接受者超级块的编号以及已替换坏块的编号;
根据所述记录的信息更新所述目标超级块的好块信息以及所有所述接受者超级块的坏块信息。
7.一种SSD坏块替换装置,其特征在于,包括:
获取模块,用于遍历候选超级块集合中的候选超级块,获取当前遍历的候选超级块的好块被替换后的剩余好块个数;
判断模块,用于判断所述剩余好块个数是否满足预设的停止条件,若满足,则停止遍历,将当前遍历的所述候选超级块确定为目标超级块,若不满足,则遍历完成后将剩余好块个数最少的候选超级块确定为目标超级块;
替换模块,用于根据所述目标超级块的好块信息以及所有接受者超级块的坏块信息执行坏块替换操作,并执行遍历候选超级块集合中的候选超级块的步骤直至所有所述接受者能够被替换的坏块均被替换;
其中,所述获取当前遍历的候选超级块的好块被替换后的剩余好块个数包括:
获取当前遍历的所述候选超级块的好块编号;
获取所有所述接受者超级块的坏块编号;
将所述当前遍历的所述候选超级块的好块编号与所有所述接受者超级块的坏块编号进行匹配,以所述好块编号与所述坏块编号的不匹配个数作为所述剩余好块个数。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6任意一项所述的一种SSD坏块替换方法中的各个步骤。
9.一电子设备,包括存储器,处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-6任意一项所述的一种SSD坏块替换方法中的各个步骤。
CN202011459499.4A 2020-12-11 2020-12-11 Ssd坏块替换方法、装置、可读存储介质及电子设备 Active CN112527201B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011459499.4A CN112527201B (zh) 2020-12-11 2020-12-11 Ssd坏块替换方法、装置、可读存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011459499.4A CN112527201B (zh) 2020-12-11 2020-12-11 Ssd坏块替换方法、装置、可读存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN112527201A CN112527201A (zh) 2021-03-19
CN112527201B true CN112527201B (zh) 2022-08-09

Family

ID=74999213

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011459499.4A Active CN112527201B (zh) 2020-12-11 2020-12-11 Ssd坏块替换方法、装置、可读存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN112527201B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113220508B (zh) * 2021-05-08 2022-09-23 联芸科技(杭州)股份有限公司 存储器块的管理方法、存储器的写操作方法以及存储器
CN116303118B (zh) * 2023-05-18 2023-09-05 合肥康芯威存储技术有限公司 一种存储设备及其控制方法
CN116755642B (zh) * 2023-08-24 2023-10-27 四川云海芯科微电子科技有限公司 用于NAND Flash坏块的混合管理方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9646721B1 (en) * 2016-03-31 2017-05-09 EMC IP Holding Company LLC Solid state drive bad block management
CN106776359A (zh) * 2016-11-11 2017-05-31 上海航天测控通信研究所 一种NAND Flash坏块管理方法及系统
CN108614743A (zh) * 2016-12-09 2018-10-02 北京京存技术有限公司 基于NAND flash的超级数据块处理方法和装置
CN109144408A (zh) * 2017-06-19 2019-01-04 爱思开海力士有限公司 存储器系统及其操作方法
CN111045603A (zh) * 2019-11-29 2020-04-21 苏州浪潮智能科技有限公司 一种固态硬盘的坏块替换方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI408689B (zh) * 2009-04-14 2013-09-11 Jmicron Technology Corp 存取儲存裝置的方法及相關控制電路
TWI668575B (zh) * 2018-07-26 2019-08-11 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9646721B1 (en) * 2016-03-31 2017-05-09 EMC IP Holding Company LLC Solid state drive bad block management
CN106776359A (zh) * 2016-11-11 2017-05-31 上海航天测控通信研究所 一种NAND Flash坏块管理方法及系统
CN108614743A (zh) * 2016-12-09 2018-10-02 北京京存技术有限公司 基于NAND flash的超级数据块处理方法和装置
CN109144408A (zh) * 2017-06-19 2019-01-04 爱思开海力士有限公司 存储器系统及其操作方法
CN111045603A (zh) * 2019-11-29 2020-04-21 苏州浪潮智能科技有限公司 一种固态硬盘的坏块替换方法和装置

Also Published As

Publication number Publication date
CN112527201A (zh) 2021-03-19

Similar Documents

Publication Publication Date Title
CN112527201B (zh) Ssd坏块替换方法、装置、可读存储介质及电子设备
CN107798047B (zh) 重复工单检测方法、装置、服务器和介质
CN110148435B (zh) 一种闪存颗粒筛选分级方法
CN110781231A (zh) 基于数据库的批量导入方法、装置、设备及存储介质
CN106205731B (zh) 信息处理方法及存储设备
CN111949459B (zh) 一种基于迁移学习和主动学习的硬盘故障预测方法及系统
CN115421672B (zh) 一种基于芯片的数据存储方法、系统及存储介质
CN109726091A (zh) 一种日志管理方法及相关装置
CN111338869A (zh) 配置参数管理方法、装置、设备及存储介质
CN111124278A (zh) 一种固态硬盘提高读性能的方法、设备及介质
DE102015105414B4 (de) Bearbeiten eines Zielspeichers
CN114385465A (zh) 一种故障预测方法、设备及存储介质
CN110188033B (zh) 数据检测装置、方法、计算机设备及计算机可读存储介质
WO2022217795A1 (zh) 失效位置的修补方法和装置
CN114066331A (zh) 股东投资信息获取方法、装置、电子设备及存储介质
CN114047879A (zh) 固态硬盘的数据存储方法、固态硬盘及终端设备
CN113708959A (zh) 一种规则库更新方法、装置及设备
US7203707B2 (en) System and method for knowledge asset acquisition and management
CN112783751A (zh) 一种增量代码扫描方法、装置、电子设备和存储介质
DE112018002029T5 (de) Register fehlerhafter bits für einen speicher
CN112130770B (zh) 一种维护数据的保存方法、系统、设备以及介质
CN116884469B (zh) 一种闪存性能的检测方法、装置、设备及介质
CN114637702A (zh) 元数据防丢失方法、装置、可读存储介质及电子设备
CN115639963A (zh) 固态硬盘多性能指标验证方法、固件系统及固态硬盘
CN111124766A (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