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

一种优化固态硬盘中open block的方法、装置、设备及可读介质

文献发布时间:2023-06-19 12:13:22


一种优化固态硬盘中open block的方法、装置、设备及可读介质

技术领域

本领域涉及计算机领域,并且更具体地涉及一种优化固态硬盘中open block的方法、装置、设备及可读介质。

背景技术

随着互联网、云计算、物联网等技术的发展及广泛应用,在人类生活中,时时刻刻都会产生海量的数据需要处理及存储,信息技术的高速发展对存储系统的性能提出了更高的要求。固态硬盘因其读写速度快、能耗较低,而被广泛采用。但由于NAND(固态硬盘)本身的特性,受硬件电气特定的影响,即当NAND中的block(块)在没有写满时,经过一定时间之后,该block最后写入的一层(layer)的数据会变的不稳定,称这种现象为open block现象,此处会有较大概率出现这些数据纠错失败。

目前通常的做法是使用表纠错或者通过多填写一层dummy数据的方式来解决问题。但上述方式的实际应用也存在一些隐患。在某些情况下,即使使用表纠错也有一定概率会出现纠错失败。

发明内容

有鉴于此,本发明实施例的目的在于提出一种优化固态硬盘中open block的方法、装置、设备及可读介质,通过使用本发明的技术方案,能够有效地在解决open block纠错的问题,同时避免了对性能造成的影响,使固态硬盘性能更加稳定。

基于上述目的,本发明的实施例的一个方面提供了一种优化固态硬盘中openblock的方法,包括以下步骤:

每经过预设时间检测固态硬盘中的block是否处于open block的状态,并将检测到的处于open block状态的block放入表格中;

实时监控表格中是否有新的记录;

响应于监控到表格中有新的记录,判断新的记录的block是否有异常下电标记;

响应于新的记录的block有异常下电标记,使用预设格式的内容填写到有异常下电标记的block的下一层数据以封住block。

根据本发明的一个实施例,还包括:

响应于新的记录的block没有异常下电标记,使用当前block中的数据类型的DUMMY内容填写到当前block的下一层数据中。

根据本发明的一个实施例,还包括:

响应于检测到固态硬盘异常下电,将未写满的block标记为open block,使用SLC数据格式的DUMMY内容填写到标记为open block的block的下一层数据以封住block。

根据本发明的一个实施例,每经过预设时间检测固态硬盘中的block是否处于open block的状态,并将检测到的处于open block状态的block放入表格中包括:

设置定时器,基于block开始写数据的时间和定时器到时的时间判断未写满的block的数据的保持时间;

将未写满的block的数据的保持时间与阈值时间进行比较;

响应于所述未写满的block的数据的保持时间大于阈值时间,将保持时间大于阈值时间的block放入表格中。

根据本发明的一个实施例,响应于新的记录的block有异常下电标记,使用预设格式的内容填写到有异常下电标记的block的下一层数据以封住block包括:

使用SLC数据格式的DUMMY内容填写到有异常下电标记的block的下一层数据以封住block。

本发明的实施例的另一个方面,还提供了一种优化固态硬盘中open block的装置,装置包括:

检测模块,检测模块配置为每经过预设时间检测固态硬盘中的block是否处于open block的状态,并将检测到的处于open block状态的block放入表格中;

监控模块,监控模块配置为实时监控表格中是否有新的记录;

判断模块,判断模块配置为响应于监控到表格中有新的记录,判断新的记录的block是否有异常下电标记;

写入模块,写入模块配置为响应于新的记录的block有异常下电标记,使用预设格式的内容填写到有异常下电标记的block的下一层数据以封住block。

根据本发明的一个实施例,写入模块还配置为:

响应于新的记录的block没有异常下电标记,使用当前block中的数据类型的DUMMY内容填写到当前block的下一层数据中。

根据本发明的一个实施例,还包括标记模块,标记模块配置为:

响应于检测到固态硬盘异常下电,将未写满的block标记为open block,使用SLC数据格式的DUMMY内容填写到标记为open block的block的下一层数据以封住block。

根据本发明的一个实施例,检测模块还配置为:

设置定时器,基于block开始写数据的时间和定时器到时的时间判断未写满的block的数据的保持时间;

将未写满的block的数据的保持时间与阈值时间进行比较;

响应于所述未写满的block的数据的保持时间大于所述阈值时间,将保持时间大于所述阈值时间的block放入所述表格中。

根据本发明的一个实施例,写入模块还配置为:

使用SLC数据格式的DUMMY内容填写到有异常下电标记的block的下一层数据以封住block。

本发明的实施例的另一个方面,还提供了一种计算机设备,该计算机设备包括:

至少一个处理器;以及

存储器,存储器存储有可在处理器上运行的计算机指令,指令由处理器执行时实现上述任意一项方法的步骤。

本发明的实施例的另一个方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述任意一项方法的步骤。

本发明具有以下有益技术效果:本发明实施例提供的优化固态硬盘中open block的方法,通过每经过预设时间检测固态硬盘中的block是否处于open block的状态,并将检测到的处于open block状态的block放入表格中;实时监控表格中是否有新的记录;响应于监控到表格中有新的记录,判断新的记录的block是否有异常下电标记;响应于新的记录的block有异常下电标记,使用预设格式的内容填写到有异常下电标记的block的下一层数据以封住block的技术方案,能够有效地在解决open block纠错的问题,同时避免了对性能造成的影响,使固态硬盘性能更加稳定。

附图说明

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

图1为根据本发明一个实施例的优化固态硬盘中open block的方法的示意性流程图;

图2为根据本发明一个实施例的优化固态硬盘中open block的装置的示意图;

图3为根据本发明一个实施例的计算机设备的示意图;

图4为根据本发明一个实施例的计算机可读存储介质的示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。

基于上述目的,本发明的实施例的第一个方面,提出了一种优化固态硬盘中openblock的方法的一个实施例。图1示出的是该方法的示意性流程图。

如图1中所示,该方法可以包括以下步骤:

S1每经过预设时间检测固态硬盘中的block是否处于open block的状态,并将检测到的处于open block状态的block放入表格中。

当固态硬盘中的block没有写满时,经过一定时间之后,该block最后写入的一层的数据会变的不稳定,这种现象称为open block现象,可以设置一个定时器,依次判断每一个未写满的block的数据保持时间,该数据保持时间为当block开始写数据时到定时器检测的时间点的时间的差值,然后将保持时间与设定的阈值时间进行比较,如果保持时间超过设定的阈值时间,则可认定该block为open block,然后将该block的信息放入一个表格中,如果保持时间没有超过设定的阈值时间,则该block不为open block,不做处理,等待下一轮检测即可。

S2实时监控表格中是否有新的记录。

S3响应于监控到表格中有新的记录,判断新的记录的block是否有异常下电标记。

在有新的记录产生时,需要判断新的记录的block是否有异常下电标记,如果出现了异常下电的情况,会将block进行标记。

S4响应于新的记录的block有异常下电标记,使用预设格式的内容填写到有异常下电标记的block的下一层数据以封住block。

如果block没有异常下电标记,使用当前block中的数据类型的DUMMY内容填写到当前block的下一层数据中,如果block有异常的下电标记,则使用SLC(Single-Level Cell,即1bit/单元)数据格式的DUMMY内容填写到有异常下电标记的block的下一层数据以封住block,并将该block的信息保存在配置信息中。

通过本发明的技术方案,能够有效地在解决open block纠错的问题,同时避免了对性能造成的影响,使固态硬盘性能更加稳定。

在本发明的一个优选实施例中,还包括:

响应于新的记录的block没有异常下电标记,使用当前block中的数据类型的DUMMY内容填写到当前block的下一层数据中。如果当前block中的数据类型为TLC格式的数据,则使用TLC格式的DUMMY内容填写到当前block的下一层数据中,如果当前block中的数据类型为SLC格式的数据,则使用SLC格式的DUMMY内容填写到当前block的下一层数据中。

在本发明的一个优选实施例中,还包括:

响应于检测到固态硬盘异常下电,将未写满的block标记为open block,使用SLC数据格式的DUMMY内容填写到标记为open block的block的下一层数据以封住block。如果出现固态硬盘异常下电的情况,则将所有的未写满的block都标记为open block,然后使用SLC数据格式的DUMMY内容填写到标记为open block的block的下一层数据以封住block,同时将block的信息保存到配置信息中,再次上电时,检测配置信息,若检测到有使用SLC数据格式的DUMMY内容封住 block的情况,则将SLC数据格式的DUMMY内容删除,再按照正常流程处理该block。

在本发明的一个优选实施例中,每经过预设时间检测固态硬盘中的block是否处于open block的状态,并将检测到的处于open block状态的block放入表格中包括:

设置定时器,基于block开始写数据的时间和定时器到时的时间判断未写满的block的数据的保持时间;

将未写满的block的数据的保持时间与阈值时间进行比较;

响应于所述未写满的block的数据的保持时间大于阈值时间,将保持时间大于阈值时间的block放入表格中。

在本发明的一个优选实施例中,响应于新的记录的block有异常下电标记,使用预设格式的内容填写到有异常下电标记的block的下一层数据以封住block包括:

使用SLC数据格式的DUMMY内容填写到有异常下电标记的block的下一层数据以封住block。

通过本发明的技术方案,能够有效地在解决open block纠错的问题,同时避免了对性能造成的影响,使固态硬盘性能更加稳定。

需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,上述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中存储介质可为磁碟、光盘、只读存储器(Read-Only Memory,ROM)或随机存取存储器(Random AccessMemory,RAM)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。

此外,根据本发明实施例公开的方法还可以被实现为由CPU 执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被CPU 执行时,执行本发明实施例公开的方法中限定的上述功能。

基于上述目的,本发明的实施例的第二个方面,提出了一种优化固态硬盘中openblock的装置,如图2所示,装置200包括:

检测模块201,检测模块201配置为每经过预设时间检测固态硬盘中的block是否处于open block的状态,并将检测到的处于open block状态的block放入表格中。

当固态硬盘中的block在没有写满时,经过一定时间之后,该block最后写入的一层的数据会变的不稳定,这种现象称为open block现象,可以设置一个定时器,依次判断每一个未写满的block的数据保持时间,该数据保持时间为当block开始写数据时到定时器检测的时间点的时间的差值,然后将保持时间与设定的阈值时间进行比较,如果保持时间超过设定的阈值时间,则可认定该block为open block,然后将该block的信息放入一个表格中,如果保持时间没有超过设定的阈值时间,则该block不为open block,不做处理,等待下一轮检测即可。

监控模块202,监控模块202配置为实时监控表格中是否有新的记录。

判断模块203,判断模块203配置为响应于监控到表格中有新的记录,判断新的记录的block是否有异常下电标记。

在有新的记录产生时,需要判断新的记录的block是否有异常下电标记,如果出现了异常下电的情况,会将block进行标记。

写入模块204,写入模块204配置为响应于新的记录的block有异常下电标记,使用预设格式的内容填写到有异常下电标记的block的下一层数据以封住block。

如果block没有异常下电标记,使用当前block中的数据类型的DUMMY内容填写到当前block的下一层数据中,如果block有异常的下电标记,则使用SLC(Single-Level Cell,即1bit/单元)数据格式的DUMMY内容填写到有异常下电标记的block的下一层数据以封住block,并将该block的信息保存在配置信息中。

在本发明的一个优选实施例中,写入模块还配置为:

响应于新的记录的block没有异常下电标记,使用当前block中的数据类型的DUMMY内容填写到当前block的下一层数据中。如果当前block中的数据类型为TLC格式的数据,则使用TLC格式的DUMMY内容填写到当前block的下一层数据中,如果当前block中的数据类型为SLC格式的数据,则使用SLC格式的DUMMY内容填写到当前block的下一层数据中。

在本发明的一个优选实施例中,还包括标记模块,标记模块配置为:

响应于检测到固态硬盘异常下电,将未写满的block标记为open block,使用SLC数据格式的DUMMY内容填写到标记为open block的block的下一层数据以封住block。如果出现固态硬盘异常下电的情况,则将所有的未写满的block都标记为open block,然后使用SLC数据格式的DUMMY内容填写到标记为open block的block的下一层数据以封住block,同时将block的信息保存到配置信息中,再次上电时,检测配置信息,若检测到有使用SLC数据格式的DUMMY内容封住 block的情况,则将SLC数据格式的DUMMY内容删除,再按照正常流程处理该block。

在本发明的一个优选实施例中,检测模块还配置为:

设置定时器,基于block开始写数据的时间和定时器到时的时间判断未写满的block的数据的保持时间;

将未写满的block的数据的保持时间与阈值时间进行比较;

响应于所述未写满的block的数据的保持时间大于所述阈值时间,将保持时间大于所述阈值时间的block放入所述表格中。

在本发明的一个优选实施例中,写入模块还配置为:

使用SLC数据格式的DUMMY内容填写到有异常下电标记的block的下一层数据以封住block。

基于上述目的,本发明实施例的第三个方面,提出了一种计算机设备。图3示出的是本发明提供的计算机设备的实施例的示意图。如图3所示,本发明实施例包括如下装置:至少一个处理器S21;以及存储器S22,存储器S22存储有可在处理器上运行的计算机指令S23,指令由处理器执行时实现以下方法步骤:

S1每经过预设时间检测固态硬盘中的block是否处于open block的状态,并将检测到的处于open block状态的block放入表格中。

当固态硬盘中的block在没有写满时,经过一定时间之后,该block最后写入的一层的数据会变的不稳定,这种现象称为open block现象,可以设置一个定时器,依次判断每一个未写满的block的数据保持时间,该数据保持时间为当block开始写数据时到定时器检测的时间点的时间的差值,然后将保持时间与设定的阈值时间进行比较,如果保持时间超过设定的阈值时间,则可认定该block为open block,然后将该block的信息放入一个表格中,如果保持时间没有超过设定的阈值时间,则该block不为open block,不做处理,等待下一轮检测即可。

S2实时监控表格中是否有新的记录。

S3响应于监控到表格中有新的记录,判断新的记录的block是否有异常下电标记。

在有新的记录产生时,需要判断新的记录的block是否有异常下电标记,如果出现了异常下电的情况,会将block进行标记。

S4响应于新的记录的block有异常下电标记,使用预设格式的内容填写到有异常下电标记的block的下一层数据以封住block。

如果block没有异常下电标记,使用当前block中的数据类型的DUMMY内容填写到当前block的下一层数据中,如果block有异常的下电标记,则使用SLC(Single-Level Cell,即1bit/单元)数据格式的DUMMY内容填写到有异常下电标记的block的下一层数据以封住block,并将该block的信息保存在配置信息中。

在本发明的一个优选实施例中,还包括:

响应于新的记录的block没有异常下电标记,使用当前block中的数据类型的DUMMY内容填写到当前block的下一层数据中。如果当前block中的数据类型为TLC格式的数据,则使用TLC格式的DUMMY内容填写到当前block的下一层数据中,如果当前block中的数据类型为SLC格式的数据,则使用SLC格式的DUMMY内容填写到当前block的下一层数据中。

在本发明的一个优选实施例中,还包括:

响应于检测到固态硬盘异常下电,将未写满的block标记为open block,使用SLC数据格式的DUMMY内容填写到标记为open block的block的下一层数据以封住block。如果出现固态硬盘异常下电的情况,则将所有的未写满的block都标记为open block,然后使用SLC数据格式的DUMMY内容填写到标记为open block的block的下一层数据以封住block,同时将block的信息保存到配置信息中,再次上电时,检测配置信息,若检测到有使用SLC数据格式的DUMMY内容封住 block的情况,则将SLC数据格式的DUMMY内容删除,再按照正常流程处理该block。

在本发明的一个优选实施例中,每经过预设时间检测固态硬盘中的block是否处于open block的状态,并将检测到的处于open block状态的block放入表格中包括:

设置定时器,基于block开始写数据的时间和定时器到时的时间判断未写满的block的数据的保持时间;

将未写满的block的数据的保持时间与阈值时间进行比较;

响应于所述未写满的block的数据的保持时间大于阈值时间,将保持时间大于阈值时间的block放入表格中。

在本发明的一个优选实施例中,响应于新的记录的block有异常下电标记,使用预设格式的内容填写到有异常下电标记的block的下一层数据以封住block包括:

使用SLC数据格式的DUMMY内容填写到有异常下电标记的block的下一层数据以封住block。

基于上述目的,本发明实施例的第四个方面,提出了一种计算机可读存储介质。图4示出的是本发明提供的计算机可读存储介质的实施例的示意图。如图4所示,计算机可读存储介质S31存储有被处理器执行时执行以下方法的计算机程序S32:

每经过预设时间检测固态硬盘中的block是否处于open block的状态,并将检测到的处于open block状态的block放入表格中;

实时监控所述表格中是否有新的记录;

响应于监控到所述表格中有新的记录,判断新的记录的block是否有异常下电标记;

响应于新的记录的block有异常下电标记,使用预设格式的内容填写到有异常下电标记的block的下一层数据以封住block。

在本发明的一个优选实施例中,还包括:

响应于新的记录的block没有异常下电标记,使用当前block中的数据类型的DUMMY内容填写到当前block的下一层数据中。

在本发明的一个优选实施例中,还包括:

响应于检测到固态硬盘异常下电,将未写满的block标记为open block,使用SLC数据格式的DUMMY内容填写到标记为open block的block的下一层数据以封住block。

在本发明的一个优选实施例中,每经过预设时间检测固态硬盘中的block是否处于open block的状态,并将检测到的处于open block状态的block放入表格中包括:

设置定时器,基于block开始写数据的时间和定时器到时的时间判断未写满的block的数据的保持时间;

将未写满的block的数据的保持时间与阈值时间进行比较;

响应于所述未写满的block的数据的保持时间大于所述阈值时间,将保持时间大于所述阈值时间的block放入所述表格中。

在本发明的一个优选实施例中,响应于新的记录的block有异常下电标记,使用预设格式的内容填写到有异常下电标记的block的下一层数据以封住block包括:

使用SLC数据格式的DUMMY内容填写到有异常下电标记的block的下一层数据以封住block。

此外,根据本发明实施例公开的方法还可以被实现为由处理器执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被处理器执行时,执行本发明实施例公开的方法中限定的上述功能。

此外,上述方法步骤以及系统单元也可以利用控制器以及用于存储使得控制器实现上述步骤或单元功能的计算机程序的计算机可读存储介质实现。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

相关技术
  • 一种优化固态硬盘中open block的方法、装置、设备及可读介质
  • 一种优化固态硬盘中open block的方法、装置、设备及可读介质
技术分类

06120113213186