掌桥专利:专业的专利平台
掌桥专利
首页

固态硬盘坏块查询方法、装置及计算机可读存储介质

文献发布时间:2023-06-19 11:11:32


固态硬盘坏块查询方法、装置及计算机可读存储介质

技术领域

本申请涉及计算机技术领域,特别是涉及一种固态硬盘坏块查询方法、装置及计算机可读存储介质。

背景技术

服务器上SSD(SolidStateDisk,固态硬盘)后端存储使用的计算机闪存设备nand颗粒,不同容量的nand颗粒在物理结构上是不同的。一颗nand物理结构可分1个target,2个target,4个target。target为拥有自己片选信号的独立闪存。每个target上又可分为1个LUN (LogicalUnitNumber,逻辑单元号),2LUN等。每个LUN又可划分为单个单元plane,两个plane等。plane为由一系列物理块组成的单元,plane0由奇数的物理块组成,plane1由偶数的物理课组成。每个 plane又有1048,2096等多个物理块block,每个block又有128,256 等多个页page。

基于NAND Flash生产商的默认约定,相关技术通常采用spare area的第六个byte作为坏块标记。在查询坏块时,需要依次看每个物理块的第六个byte是否标记为坏块。SSD属于大容量存储,其需要多颗nand,如果某个物理块block出现坏块,每颗nand的拓扑物理结构复杂,多颗nand就使得整个物理结构更加复杂,在多种nand颗粒中找到坏块,就需要耗费大量的时间和精力。

随着用户对SSD性能的要求越来越高,如何高效、准确地查询坏块信息,提升SSD性能,是所属领域技术人员需要解决的技术问题。

发明内容

本申请提供了一种固态硬盘坏块查询方法、装置及计算机可读存储介质,可以高效、准确地查询坏块信息,提升SSD性能。

为解决上述技术问题,本发明实施例提供以下技术方案:

本发明实施例一方面提供了一种固态硬盘坏块查询方法,包括:

在固态硬盘运行过程中,当检测到存在坏块,基于所述固态硬盘的nand颗粒参数标注所述坏块相应的比特位,并将比特位标注结果存储至位图中;

当接收到坏块查询指令,根据所述坏块查询指令的目标坏块信息查询所述位图,以得到所述目标坏块的查询结果。

可选的,所述将比特位标注结果存储至位图之后,还包括:

当接收到坏块替换指令,查询所述位图得到待替换坏块的查询结果,并定位所述待替换坏块;

利用所述坏块替换指令中的替换物理块的地址信息替换所述待替换坏块的地址信息,以将写入所述待替换坏块中的数据写入至所述替换物理块。

可选的,所述将比特位标注结果存储至位图之后,还包括:

当接收到SSD更新指令,根据所述位图确定所述固态硬盘的所有坏块的标注比特位;

基于各坏块的标准比特位执行所述SSD更新指令。可选的,所述基于所述固态硬盘的nand颗粒参数标注所述坏块相应的比特位,并将比特位标注结果存储至位图中包括:

根据所述固态硬盘的容量和所述固态硬盘的nand颗粒的参数,将连接各nand颗粒的通道划分为多组;

根据同一组内nand颗粒的参数确定表示物理坏块的比特位数;

根据所述固态硬盘的nand颗粒中的物理块数量计算存储所述比特位标注结果所需字节数;

根据所述比特位数对运行过程中产生的坏块进行标注,并基于所述字节数将坏块标注结果存储至所述位图中。

本发明实施例另一方面提供了一种固态硬盘坏块查询装置,包括:

坏块标注模块,用于在固态硬盘运行过程中,当检测到存在坏块,基于所述固态硬盘的nand颗粒参数标注所述坏块相应的比特位;

标注结果存储模块,用于将比特位标注结果存储至位图中;

坏块查询模块,用于当接收到坏块查询指令,根据所述坏块查询指令的目标坏块信息查询所述位图,以得到所述目标坏块的查询结果。

可选的,还包括块替换模块,所述块替换模块用于当接收到坏块替换指令,查询所述位图得到待替换坏块的查询结果,并定位所述待替换坏块;利用所述坏块替换指令中的替换物理块的地址信息替换所述待替换坏块的地址信息,以将写入所述待替换坏块中的数据写入至所述替换物理块。

可选的,还包括更新模块,所述更新模块用于当接收到SSD更新指令,根据所述位图确定所述固态硬盘的所有坏块的标注比特位;基于各坏块的标准比特位执行所述SSD更新指令。

可选的,所述坏块标注模块进一步用于:

根据所述固态硬盘的容量和所述固态硬盘的nand颗粒的参数,将连接各nand颗粒的通道划分为多组;

根据同一组内nand颗粒的参数确定表示物理坏块的比特位数;

根据所述固态硬盘的nand颗粒中的物理块数量计算存储所述比特位标注结果所需字节数;

根据所述比特位数对运行过程中产生的坏块进行标注,并基于所述字节数将坏块标注结果存储至所述位图中。

本发明实施例还提供了一种固态硬盘坏块查询装置,包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如前任一项所述固态硬盘坏块查询方法的步骤。

本发明实施例最后还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有固态硬盘坏块查询程序,所述固态硬盘坏块查询程序被处理器执行时实现如前任一项所述固态硬盘坏块查询方法的步骤。

本申请提供的技术方案的优点在于,通过分析固态硬盘与nand 特性对固态硬盘运行过程中产生的坏块进行比特位的标注,然后将标注结果存储至位图中,既快速标注坏块,又可以快速找到固态硬盘坏块信息,使用位图还可减少空间和时间上浪费,提高查询速度,从而可高效、准确地查询坏块信息,提升SSD性能。

此外,本发明实施例还针对固态硬盘坏块查询方法提供了相应的实现装置及计算机可读存储介质,进一步使得所述方法更具有实用性,所述装置及计算机可读存储介质具有相应的优点。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。

附图说明

为了更清楚的说明本发明实施例或相关技术的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种固态硬盘坏块查询方法的流程示意图;

图2为本发明实施例提供的固态硬盘坏块查询装置的一种具体实施方式结构图;

图3为本发明实施例提供的固态硬盘坏块查询装置的另一种具体实施方式结构图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。

在介绍了本发明实施例的技术方案后,下面详细的说明本申请的各种非限制性实施方式。

首先参见图1,图1为本发明实施例提供的一种固态硬盘坏块查询方法的流程示意图,本发明实施例可包括以下内容:

S101:在固态硬盘运行过程中,当检测到存在坏块,基于固态硬盘的nand颗粒参数标注坏块相应的比特位,并将比特位标注结果存储至位图中。

本实施例中的坏块为后天性坏块,也即是在固态硬盘运行过程中产生的坏块,在其运行过程中,每产生一个坏块,就对该坏块的比特位进行标注,对于比特位数的确定或者是说或标注哪些比特位是基于当前固态硬盘的物理参数来决定,每个物理坏块在被标注后,标注结果为由多个比特位组成,比特位例如可分别表示坏块的块编号、物理块所属plane号、plane所属LUN号,LUN所属target号,target所属 nand颗粒所在通道编号。每个标注结果相当于一个小的位图,多个坏块的小位图构成一个大的位图,也就是说本步骤中的位图即可为当前检测出的坏块的比特位标注结果形成的位图,也可是多个坏块的比特位标注结果共同组成的位图,所属领域技术人员可根据实际情况进行选择,本申请对此不做任何限定。

S102:当接收到坏块查询指令,根据坏块查询指令的目标坏块信息查询位图,以得到目标坏块的查询结果。

坏块查询指令中包含待查询坏块的相关信息,如物理块号,基于该物理块号可在位图中查询到该坏块的标记结果,然后根据该标记结果便可快速定位该坏块。

在本发明实施例提供的技术方案中,通过分析固态硬盘与nand特性对固态硬盘运行过程中产生的坏块进行比特位的标注,然后将标注结果存储至位图中,既快速标注坏块,又可以快速找到固态硬盘坏块信息,使用位图还可减少空间和时间上浪费,提高查询速度,从而可高效、准确地查询坏块信息,提升SSD性能。

需要说明的是,本申请中各步骤之间没有严格的先后执行顺序,只要符合逻辑上的顺序,则这些步骤可以同时执行,也可按照某种预设顺序执行,图1只是一种示意方式,并不代表只能是这样的执行顺序。

在上述实施例中,对于如何执行步骤S101并不做限定,本实施例中给出一种实施方式下的坏块标注方法,可包括如下步骤:

根据固态硬盘的容量和固态硬盘的nand颗粒的参数,将连接各 nand颗粒的通道划分为多组。

其中,固态硬盘包括多少颗nand颗粒,连接各nand颗粒的通道数是多少,nand颗粒的参数例如可包括物理块块数、plane总数、LUN 总数号,target总数,片选ce总数。举例来说,对于raid5来说raid5 划分的总数是由15+1,在基于nand颗粒的ce数量综合出来的。

根据同一组内nand颗粒的参数确定表示物理坏块的比特位数。

根据nand特性来决定的,比如nand有2952个物理block,如果有two plane话,那么每个plane就会有2952/2=1476个block,基于每个plane的物理块总数来确定表示物理坏块的比特位数。

根据固态硬盘的nand颗粒中的物理块数量计算存储比特位标注结果所需字节数。

根据比特位数对运行过程中产生的坏块进行标注,并基于字节数将坏块标注结果存储至位图中。

本实施例通过分析SSD容量与nand特性。计算出所需要的Byte 数量,利用nand特性中plane、block数量,标注相应的bitmap来表示坏块信息。

本实施例将物理上连接的多颗nand的通道channel划分为多个 partition分组,由于SSD性能要求,同时访问多个partiton,每个partion 访问相关的chanel下的nand。以16channel,two plane的nand颗粒为例,这样就会有4个partion,4个partiton就会有4个target,4Byte 就可以表示这组block上的坏块信息,如bit0=1,标识channel0,target0,ce0,lun0,plane0,block0是坏块,bit0=0,标识channel0,target0, ce0,lun0,plane0,block0是好块。以这种多个4Byte的bitmap来存储标注坏块。

可以理解的是,对于某些应用场景,需要将数据写入相邻的多个数据块中,而若这多个相邻的数据块中存在坏块,坏块是不进行读写操作的,为了解决这个问题,基于上述实施例,还可包括:

当接收到坏块替换指令,查询位图得到待替换坏块的查询结果,并定位待替换坏块;

利用坏块替换指令中的替换物理块的地址信息替换待替换坏块的地址信息,以将写入待替换坏块中的数据写入至替换物理块。

本实施例将好的物理块的地址替换坏块的物理地址,在用户写入数据或读取数据时会直接写入好块中,既可解决用户写入连续物理块的实际需求,还可保证写入数据的安全性和稳定性。

作为一种可选的实施方式,在将比特位标注结果存储至位图之后,还包括:

当接收到SSD更新指令,根据位图确定固态硬盘的所有坏块的标注比特位,基于各坏块的标准比特位执行SSD更新指令。本实施例在固态硬盘在更新过程中,可以快速查询并定位坏块,有利于固态硬盘的高效更新,提升固态硬盘性能。

本发明实施例还针对固态硬盘坏块查询方法提供了相应的装置,进一步使得方法更具有实用性。其中,装置可从功能模块的角度和硬件的角度分别说明。下面对本发明实施例提供的固态硬盘坏块查询装置进行介绍,下文描述的固态硬盘坏块查询装置与上文描述的固态硬盘坏块查询方法可相互对应参照。

基于功能模块的角度,参见图2,图2为本发明实施例提供的固态硬盘坏块查询装置在一种具体实施方式下的结构图,该装置可包括:

坏块标注模块201,用于在固态硬盘运行过程中,当检测到存在坏块,基于固态硬盘的nand颗粒参数标注坏块相应的比特位。

标注结果存储模块202,用于将比特位标注结果存储至位图中。

坏块查询模块203,用于当接收到坏块查询指令,根据坏块查询指令的目标坏块信息查询位图,以得到目标坏块的查询结果。

可选的,在本实施例的一些实施方式中,上述装置还可以包括块替换模块,块替换模块用于当接收到坏块替换指令,查询位图得到待替换坏块的查询结果,并定位待替换坏块;利用坏块替换指令中的替换物理块的地址信息替换待替换坏块的地址信息,以将写入待替换坏块中的数据写入至替换物理块。

在本实施例的其他一些实施方式中,上述装置例如还可包括更新模块,更新模块用于当接收到SSD更新指令,根据位图确定固态硬盘的所有坏块的标注比特位;基于各坏块的标准比特位执行SSD更新指令。

可选的,在本实施例的另一些实施方式中,上述坏块标注模块201 还可进一步用于:

根据固态硬盘的容量和固态硬盘的nand颗粒的参数,将连接各 nand颗粒的通道划分为多组;

根据同一组内nand颗粒的参数确定表示物理坏块的比特位数;

根据固态硬盘的nand颗粒中的物理块数量计算存储比特位标注结果所需字节数;

根据比特位数对运行过程中产生的坏块进行标注,并基于字节数将坏块标注结果存储至位图中。

本发明实施例所述固态硬盘坏块查询装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。

由上可知,本发明实施例可以高效、准确地查询坏块信息,提升 SSD性能。

上文中提到的固态硬盘坏块查询装置是从功能模块的角度描述,进一步的,本申请还提供一种固态硬盘坏块查询装置,是从硬件角度描述。图3为本申请实施例提供的另一种固态硬盘坏块查询装置的结构图。如图3所示,该装置包括存储器30,用于存储计算机程序;处理器31,用于执行计算机程序时实现如上述任一实施例提到的固态硬盘坏块查询方法的步骤。

其中,处理器31可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器31可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器31也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器31可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器31还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。

存储器30可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器30还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器30至少用于存储以下计算机程序301,其中,该计算机程序被处理器31加载并执行之后,能够实现前述任一实施例公开的固态硬盘坏块查询方法的相关步骤。另外,存储器30所存储的资源还可以包括操作系统302和数据303等,存储方式可以是短暂存储或者永久存储。其中,操作系统302可以包括Windows、Unix、 Linux等。数据303可以包括但不限于固态硬盘坏块查询结果对应的数据等。

在一些实施例中,固态硬盘坏块查询装置还可包括有显示屏32、输入输出接口33、通信接口34、电源35以及通信总线36。

本领域技术人员可以理解,图3中示出的结构并不构成对固态硬盘坏块查询装置的限定,可以包括比图示更多或更少的组件,例如还可包括传感器37。

本发明实施例所述固态硬盘坏块查询装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。

由上可知,本发明实施例可以高效、准确地查询坏块信息,提升 SSD性能。

可以理解的是,如果上述实施例中的固态硬盘坏块查询方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory, ROM)、随机存取存储器(Random Access Memory,RAM)、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、磁碟或者光盘等各种可以存储程序代码的介质。

基于此,本发明实施例还提供了一种计算机可读存储介质,存储有固态硬盘坏块查询程序,所述固态硬盘坏块查询程序被处理器执行时如上任意一实施例所述固态硬盘坏块查询方法的步骤。

本发明实施例所述计算机可读存储介质的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。

由上可知,本发明实施例可以高效、准确地查询坏块信息,提升 SSD性能。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

以上对本申请所提供的一种固态硬盘坏块查询方法、装置及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

相关技术
  • 固态硬盘坏块查询方法、装置及计算机可读存储介质
  • Flash坏块处理方法、装置、计算机设备和可读存储介质
技术分类

06120112834841