坏块筛选方法、装置、设备和存储介质与流程



1.本发明涉及固态硬盘技术领域,尤其涉及一种坏块筛选方法、装置、设备和存储介质。


背景技术:



2.存储设备作为数据存储的媒介,是计算机系统的重要组成部分。在大数据时代,对存储设备的容量、读写速度、可靠性等提出了越来越高的要求。由于ssd(solid state drives,固态硬盘)具有读写速度快、容量大、抗震防摔、体积小等优势,因此ssd正在成为主流存储设备。nand(一种闪存芯片材料)闪存是ssd实际的物理存储媒介。nand闪存的质量直接关乎ssd的性能。
3.当前,在ssd组装完成之后,对ssd中的nand闪存的坏块情况进行识别。通过ssd固件筛选出存储问题的nand闪存,然后上报给系统,通知人员更换ssd中的nand闪存。比如在固态硬盘的最高工作温度下对固态硬盘进行写数据和读数据操作,并统计读数据的错误比特翻转数,最后根据错误比特翻转数筛选出坏块;然而,仅依靠读数据的错误比特翻转数来判断好块与坏块的方法,容易出现容量偏高,但产品不稳定,存在隐患;又或者存储设备虽然稳定,但存储容量又较低的现象,即误判的块比较多,导致资源浪费等。
4.综上所述,如何提高固态硬盘的坏块筛选准确率是目前本领域技术人员亟需解决的问题。


技术实现要素:



5.第一方面,本发明提供一种坏块筛选方法,包括:
6.获取当前记录的存储设备中各个数据块的ecc错误比特数以及读取重试次数
7.根据每个所述数据块中的ecc错误比特数和读取重试次数,筛选出所述存储设备中的坏块。
8.在可选的实施方式中,所述根据每个所述数据块中的ecc错误比特数和读取重试次数,筛选出所述存储设备中的坏块包括:
9.当所述ecc错误比特数在预设的第一比特数阈值与第二比特数阈值之间,且所述读取重试次数大于预设的重试次数阈值时,确定对应的数据块为坏块;其中,所述第一比特数阈值小于所述第二比特数阈值。
10.在可选的实施方式中,还包括:
11.当所述ecc错误比特数大于所述第二比特数阈值,确定对应的数据块为坏块。
12.在可选的实施方式中,还包括:
13.当所述读取重试次数大于预设的重试次数阈值时,确定对应的数据块为坏块。
14.在可选的实施方式中,所述第一比特数阈值为所述第二比特数阈值的40%-60%。
15.第二方面,本发明提供一种坏块筛选装置,包括:
16.获取模块,用于获取当前记录的存储设备中各个数据块的ecc错误比特数以及读
取重试次数;
17.筛选模块,用于根据每个所述数据块中的ecc错误比特数和读取重试次数,筛选出所述存储设备中的坏块。
18.在可选的实施方式中,所述筛选模块用于:
19.当所述ecc错误比特数在预设的第一比特数阈值与第二比特数阈值之间,且所述读取重试次数大于预设的重试次数阈值时,确定对应的数据块为坏块;其中,所述第一比特数阈值小于所述第二比特数阈值。
20.第三方面,本发明提供一种存储设备,所述存储设备采用前述任一项所述的坏块筛选方法进行坏块筛选。
21.第四方面,本发明提供一种计算机设备,所述计算机设备包括存储器和至少一个处理器,所述存储器存储有计算机程序,所述处理器用于执行所述计算机程序以实施所述的坏块筛选方法。
22.第五方面,本发明提供一种计算机存储介质,其存储有计算机程序,所述计算机程序被执行时,实施根据所述的坏块筛选方法。
23.本发明实施例具有如下有益效果:
24.本发明实施例提供了一种坏块筛选方法,包括获取当前记录的存储设备中各个数据块的ecc错误比特数以及读取重试次数;根据每个数据块中的ecc错误比特数和/或读取重试次数,筛选出存储设备中的坏块。本发明实施例将当前记录的数据块的ecc错误比特数和读取重试次数综合作为筛选标准,以此筛选出存储设备中的坏块,从而能够更准确地筛选坏块,避免了坏块遗漏,提高了坏块筛选的准确度;而后,可对所筛选出的坏块进行相应处理,以此提高存储设备的稳定性,避免出现存储设备容量偏高但不稳定或存储设备稳定但存储容量较低的情况,从而保证了存储设备的存储容量与存储设备稳定性的平衡。
附图说明
25.为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。
26.图1示出了本发明实施例中坏块筛选方法的第一个实施方式示意图;
27.图2示出了本发明实施例中坏块筛选方法的第二个实施方式示意图;
28.图3示出了本发明实施例中坏块筛选方法的第三个实施方式示意图;
29.图4示出了本发明实施例中坏块筛选方法的第四个实施方式示意图;
30.图5示出了本发明实施例中坏块筛选装置的结构示意图。
具体实施方式
31.下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
32.通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技
术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
33.在下文中,可在本发明的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
34.此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
35.除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本发明的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本发明的各种实施例中被清楚地限定。
36.由于存储设备(如nand flash)的工艺不能保证nand闪存的memory array在其生命周期中保持性能的可靠,因此,在nand闪存的生产中及使用过程中会产生坏块。坏块的特性是:当编程/擦除这个块时,会造成page program和block erase操作时的错误,相应地反映到status register的相应位。
37.而目前固态硬盘((solid state disk,ssd))或u盘等需要在极端环境下进行读写测试,然后才能区分出nand闪存中的好块与坏块。问题在于高温写低温读,这种极端环境下测试会导致很多块出现误判,因为工作时是不会出现这样的环境,但是不这样做又会导致部分不太稳定的块无法识别出来,这样就出现两个问题,不做极端测试会导致ssd在筛选时,会导致ssd容量偏高,但是产品不稳定,存在隐患;做极端测试会导致ssd在筛选时,虽然稳定,但是容量又较低的现象,存在误判的情况比较多。并且,随着flash存储器的工艺发展,flash存储器的不稳定会成为一种常态。基于此,本实施例提出一种坏块筛选方法,以解决上述的技术问题。
38.实施例1
39.请参照图1,本实施例提供了一种坏块筛选方法,下面对该坏块筛选方法进行详细说明。
40.s10,获取当前记录的存储设备中各个数据块的ecc错误比特数以及读取重试次数。
41.s20,根据每个数据块中的ecc错误比特数和读取重试次数,筛选出存储设备中的坏块。
42.在对固态硬盘进行极端环境下的读写测试时,主控芯片记录存储设备中各个数据块的ecc返回值和读取重试次数,其中,ecc是指内存纠错校验,ecc返回值为校验后返回的ecc错误比特数。在对存储设备进行内存纠错校验时,ecc硬件模块会记录指定长度的数据中错了多少位(bit),也即是返回一个ecc错误比特数;而读取重试次数(read retry次数)是指所记录的发送重试指令以调节电压vt(即flash预判电压)的次数,其中,在flash原厂对于读取重试次数是有推荐的,针对每一款flash,其读取重试次数是一个确定值。
43.根据每个数据块对应的ecc错误比特数和读取重试次数,从而筛选出存储设备中
的坏块。
44.在本实施例中,通过综合考虑每个数据块对应的ecc错误比特数和读取重试次数可以确定存储设备块中的坏块。
45.其中,当ecc错误比特数处于预设的第一区间内,则确定对应的数据块为好块;当ecc错误比特数处于预设的第二区间内,则再结合读取重试次数来筛选坏块,此时,若读取重试次数小于预设的重试次数阈值,则确定对应的数据块为好块,反之,则为坏块;当ecc错误比特数处于第三区间时,则可直接确定对应的数据块为坏块。
46.可以理解,上述的第一区间通常对应于允许的正常出错率范围;第二区间所对应的出错率会高于第一区间,但还没有达到极限值;而第三区间则是指超过了所允许的最大出错范围,说明该块是极不稳定的。当然,这里仅是以三个区间来进行示例说明,若想要更精细地筛选,还可以划分出更多的区间,这里不作限定。
47.具体地,如图2所示,当通过ecc错误比特数和读取重试次数来筛选存储设备中的坏块时,具体包括如下步骤:
48.s21,判断ecc错误比特数是否处于预设的第一比特数阈值和第二比特数阈值之间。
49.s22,若ecc错误比特数不处于第一比特数阈值与第二比特数阈值之间,且ecc错误比特数小于第一比特数阈值,则确定对应的数据块为好块,反之则为坏块。
50.s23,若ecc错误比特数处于第一比特数阈值与第二比特数阈值之间,判断读取重试次数是否大于预设的重试次数阈值。
51.s24,若读取重试次数小于等于重试次数阈值,则确定对应的数据块为好块。
52.s25,若读取重试次数大于重试次数阈值,则确定对应的数据块为坏块。
53.具体地,若当前记录的ecc错误比特数小于第一比特数阈值,也即是,ecc错误比特数处于零和第一比特数阈值作为临界值所组成的第一区间内,则确定对应的数据块为好块。
54.若当前记录的ecc错误比特数处于第一比特数阈值和第二比特数阈值作为临界值所组成的第二区间内,即ecc错误比特数处于第一比特数阈值和第二比特数阈值之间,且读取重试次数小于等于重试次数阈值,则确定对应的数据块为好块。而当ecc错误比特数处于第一比特数阈值和第二比特数阈值之间,但读取重试次数大于重试次数阈值时,确定对应的数据块为坏块。
55.若当前记录的ecc错误比特数大于第二比特数阈值,也即是,ecc错误比特数处于第二比特数阈值和无穷大数作为临界值所组成的第三区间内,则确定对应的数据块为坏块。
56.其中,第一比特数阈值、第二比特数阈值和重试次数阈值可根据实际情况进行设置,在此不做限定。例如,设置第二比特数阈值为一般情况下存储设备数据块的ecc错位比特总数的80%-100%,设置第一比特数阈值为第二比特数阈值的40%-60%,假设设置第一比特数阈值为43,第二比特数阈值为72,重试次数阈值为18;当数据块的ecc错误比特数小于43时,则确定该数据块为好块;当数据块的ecc错误比特数处于(43,72)区间内,但其读取重试次数小于18时,则确定对应的数据块为好块,也即是,将一些ecc错误比特数较高但稳定性较好的数据块块作为好块。但是,当数据块的ecc错误比特数处于(43,72)区间内,但其
读取重试次数大于18时,直接确定对应的数据块为坏块。
57.上述通过ecc错误比特数和读取重试次数来综合判断存储设备块的坏块,将一些稳定但ecc错误比特数较高的数据块重新定义为好块,如ecc错误比特数处于(43,72)区间内,但其读取重试次数小于18的数据块,以此增加存储设备的容量,避免出现存储设备的现容量偏高但不稳定,又或者虽然存储设备稳定但容量又较低的现象。
58.可以理解,上述实施例重点在于通过ecc错误比特数和读取重试次数来筛选坏块,且先通过对ecc错误比特数进行判断,而后再结合读取重试次数来筛选。其中,对ecc错误比特数进行判断的过程包括:1.判断ecc错误比特数是否小于第一比特数阈值;2.判断ecc错误比特数是否处于第一比特数阈值和第二比特数阈值之间;3.判断ecc错误比特数是否大于第二比特数阈值。上述三个判断过程可依次先后进行或同时进行,其具体判断顺序在此不做限定。
59.可选地,如图3所示,本实施例所包括的仅通过ecc错误比特数来筛选存储设备中的坏块的步骤还可以直接设置在读取到ecc错误比特数和读取重试次数的步骤之后,具体如下:
60.s31,判断当前记录的ecc错误比特数是否大于预设的第二比特阈值。
61.s32,若当前记录的ecc错误比特数大于第二比特数阈值,确定对应的数据块为坏块。
62.若当前记录的ecc错误比特数大于第二比特数阈值,也即是,ecc错误比特数处于第二比特数阈值和无穷大数作为临界值所组成的第三区间内,则确定对应的数据块为坏块。具体地,将当前记录的ecc错误比特数与预设的第二比特数阈值进行比较,若当前记录的ecc错误比特数大于第二比特数阈值,确定对应的数据块为坏块,其中,第二比特数阈值可根据实际情况进行设置,在此不做限定。例如,假设当前记录的ecc错误比特总数为72,设置第二比特数阈值为73;由此,当数据块对应的ecc错误比特数大于72时,则确定该数据块为坏块。而当ecc错误比特数小于第二比特数阈值时,再根据ecc错误比特数和读取重试次数筛选出存储设备中的坏块。
63.可选地,如图4所示,本实施例还包括仅通过读取重试次数来筛选存储设备中的坏块,其步骤可以直接设置在读取到ecc错误比特数和读取重试次数的步骤之后,具体如下:
64.s41,判断当前记录的读取重试次数是否大于预设重试次数阈值。
65.s42,若当前记录的读取重试次数大于重试次数阈值,确定对应的数据块为坏块。
66.具体地,将当前记录的读取重试次数与预设的重试次数阈值进行比较,若当前记录的读取重试次数大于重试次数阈值,确定对应的数据块为坏块,其中,重试次数阈值可根据实际情况进行设置,在此不做限定。
67.例如,设置重试次数阈值为一般情况下存储设备数据块的读取重试总次数的40%-60%,通常存储设备的数据块的读取重试次数在30以上,因此可将重试次数阈值设置为18次,当读取重试次数超过18次,不管ecc错误比特数为多少,都将其标记为坏块。也即是,假设一般情况下存储设备数据块的读取重试总次数为36,则设置重试次数阈值重试次数阈值为18;由此,当数据块对应的读取重试次数大于18时,则确定该数据块为坏块。
68.可以理解,本实施例在筛选坏块时,也可以先通过对读取重试次数进行判断,而后再结合ecc错误比特数来筛选坏块。其中,当读取重试次数小于等于重试次数阈值时,结合
ecc错误比特数来进一步筛选坏块,当ecc错误比特数小于等于第二比特数阈值时,则确定对应的数据块为好块,反之则为坏块;而当读取重试次数大于重试次数阈值时,无论ecc错误比特数为多少,都确定对应的数据块为坏块。
69.本实施例将当前记录的数据块的ecc错误比特数和读取重试次数综合作为筛选标准,也即是,对数据块的ecc错误比特数和读取重试次数进行综合考量,以此在极端环境测试过程中,筛选出存储设备中的坏块,从而能够更准确地筛选坏块,避免了坏块遗漏,提高了坏块筛选的准确度;而后,可通过对所筛选出的坏块进行处理,以此提高存储设备的稳定性,从而保证了存储设备的存储容量与存储设备稳定性的平衡。
70.实施例2
71.请参照图5,本发明实施例提供了一种坏块筛选装置,该装置包括:
72.获取模块51,用于获取当前记录的存储设备中各个数据块的ecc错误比特数以及读取重试次数;
73.筛选模块52,用于根据每个所述数据块中的ecc错误比特数和读取重试次数,筛选出所述存储设备中的坏块。
74.在一种可行的实施方式中,该筛选模块52用于:
75.当所述ecc错误比特数在预设的第一比特数阈值与第二比特数阈值之间,且所述读取重试次数大于预设的重试次数阈值时,确定对应的数据块为坏块;其中,所述第一比特数阈值小于所述第二比特数阈值。
76.上述的坏块筛选装置对应于实施例1的坏块筛选方法,实施例1中的任何可选项也适用于本实施例,这里不再详述。
77.本发明实施例还提供了一种存储设备,该存储设备采用上述实施例的坏块筛选方法进行坏块筛选。
78.本发明实施例还提供了一种计算机设备,该计算机设备包括存储器和至少一个处理器,存储器存储有计算机程序,处理器用于执行计算机程序以实施上述实施例的坏块筛选方法。
79.存储器可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据(比如读取重试次数和ecc错误比特数等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
80.本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有机器可运行指令,计算机可运行指令在被处理器调用和运行时,计算机可运行指令促使处理器运行上述实施例的坏块筛选方法的步骤。
81.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于
附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
82.另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
83.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
84.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。

技术特征:


1.一种坏块筛选方法,其特征在于,包括:获取当前记录的存储设备中各个数据块的ecc错误比特数以及读取重试次数;根据每个所述数据块中的ecc错误比特数和读取重试次数,筛选出所述存储设备中的坏块。2.根据权利要求1所述的坏块筛选方法,其特征在于,所述根据每个所述数据块中的ecc错误比特数和读取重试次数,筛选出所述存储设备中的坏块,包括:当所述ecc错误比特数在预设的第一比特数阈值与第二比特数阈值之间,且所述读取重试次数大于预设的重试次数阈值时,确定对应的数据块为坏块;其中,所述第一比特数阈值小于所述第二比特数阈值。3.根据权利要求2所述的坏块筛选方法,其特征在于,还包括:当所述ecc错误比特数大于所述第二比特数阈值时,确定对应的数据块为坏块。4.根据权利要求1所述的坏块筛选方法,其特征在于,还包括:当所述读取重试次数大于预设的重试次数阈值时,确定对应的数据块为坏块。5.根据权利要求2或3所述的坏块筛选方法,其特征在于,所述第一比特数阈值为所述第二比特数阈值的40%-60%。6.一种坏块筛选装置,其特征在于,包括:获取模块,用于获取当前记录的存储设备中各个数据块的ecc错误比特数以及读取重试次数;筛选模块,用于根据每个所述数据块中的ecc错误比特数和读取重试次数,筛选出所述存储设备中的坏块。7.根据权利要求6所述的坏块筛选装置,其特征在于,所述筛选模块用于:当所述ecc错误比特数在预设的第一比特数阈值与第二比特数阈值之间,且所述读取重试次数大于预设的重试次数阈值时,确定对应的数据块为坏块;其中,所述第一比特数阈值小于所述第二比特数阈值。8.一种存储设备,其特征在于,采用权利要求1-5中任一项所述的坏块筛选方法进行坏块筛选。9.一种计算机设备,其特征在于,所述计算机设备包括存储器和至少一个处理器,所述存储器存储有计算机程序,所述处理器用于执行所述计算机程序以实施权利要求1-5中任一项所述的坏块筛选方法。10.一种计算机存储介质,其特征在于,其存储有计算机程序,所述计算机程序被执行时,实施根据权利要求1-5中任一项所述的坏块筛选方法。

技术总结


本发明实施例公开了一种坏块筛选方法、装置、设备和存储介质,该方法包括:获取当前记录的存储设备中各个数据块的ECC错误比特数以及读取重试次数;根据每个数据块中的ECC错误比特数和读取重试次数,筛选出存储设备中的坏块。本发明实施例将当前记录的数据块的ECC错误比特数和读取重试次数综合作为筛选标准,以此筛选出存储设备中的坏块,从而能够更准确地筛选坏块,避免了坏块遗漏,提高了坏块筛选的准确度。准确度。准确度。


技术研发人员:

罗胜

受保护的技术使用者:

深圳市德明利技术股份有限公司

技术研发日:

2022.07.01

技术公布日:

2022/10/4

本文发布于:2024-09-22 12:26:45,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/14877.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:阈值   重试   所述   次数
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议