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

一种块数据保护方法、装置、设备及存储介质

文献发布时间:2024-04-18 19:57:31


一种块数据保护方法、装置、设备及存储介质

技术领域

本申请涉及计算机技术领域,特别涉及一种块数据保护方法、装置、设备及存储介质。

背景技术

目前,在通过TLC SSD(Trinary-Level Cell Solid State Disk,即3bit/cellSolid State Disk,三层单元固态硬盘)盘片产品进行数据读写的过程中,通常存在OpenBlock(开放块),即只对Block(块)中的部分TLC Page(页)进行了数据写入,还有部分TLCPage未进行数据写入的Block,并且,在Block内部是按顺序依次对Page进行数据写入的,即按顺序依次将数据存放至TLC Page中。

然而,待存放的数据是以电子的形式写入TLC SSD中的存储单元的,这就会造成位于已写入数据的TLC Page与未写入数据的TLC Page交界处的两个Page存在一个电势差,使得已写入数据的TLC Page中的电子会向未写入数据的TLC Page迁移,从而造成交界位置附近处的已写入数据的TLC Page中的数据易出现较高的误码率,因此需要对TLC SSD中的Open Block进行一定的处理以避免TLC Page中的数据发生错误。

目前主流的方式是在交界位置后的未写入数据的TLC Page中写入随机生成的Dummy数据(即无效数据),即通过平衡交界位置附近的电势,使已写入数据的TLC Page中的电子不会流失,从而保证Block中已写入数据的TLC Page中数据的准确性和可靠性。然而,上述方式只能在上电使用过程中一定程度上保证数据的准确性,在TLC SSD突然掉电的情况下,写入随机生成的Dummy数据需要电容释放较多的电子,TLC SSD可能会因为电容无法满足要求而未补充足够的电子,从而无法保证数据的可靠性,并且无法满足用户对TLC SSD的高存储性能的要求。

发明内容

有鉴于此,本申请的目的在于提供一种块数据保护方法、装置、设备及存储介质,应用于固态硬盘,能够在突发掉电等情况下保证数据的准确性和可靠性,减轻对电容的压力,同时能够满足在上电时用户对硬盘的高性能要求。其具体方案如下:

第一方面,本申请公开了一种块数据保护方法,应用于固态硬盘,包括:

确定当前未完全写入数据的块,得到目标开放块;

识别所述目标开放块中已写入数据TLC页与未写入数据TLC页的交界位置,并将所述交界位置后预设数量的未写入数据TLC页转换为SLC页,得到目标SLC页;

在所述目标SLC页中写入无效数据;其中,所述无效数据为随机生成的且与所述已写入数据TLC页中数据无关的数据。

可选的,所述确定当前未完全写入数据的块,得到目标开放块,包括:

获取本地日志表中记录的块状态信息,根据所述块状态信息确定当前未完全写入数据的块,得到目标开放块。

可选的,所述识别所述目标开放块中已写入数据TLC页与未写入数据TLC页的交界位置,并将所述交界位置后预设数量的未写入数据TLC页转换为SLC页,得到目标SLC页,包括:

通过所述块状态信息识别所述目标开放块中已写入数据TLC页与未写入数据TLC页的交界位置;

通过预设的模式转换命令将所述交界位置后预设数量的未写入数据TLC页转换为SLC页,得到目标SLC页。

可选的,所述将所述交界位置后预设数量的未写入数据TLC页转换为SLC页,得到目标SLC页,包括:

通过所述块状态信息和基于FW下发的写入无效数据操作指令将所述交界位置后预设数量的未写入数据TLC页转换为SLC页,得到目标SLC页。

可选的,所述通过预设的模式转换命令将所述交界位置后预设数量的未写入数据TLC页转换为SLC页,得到目标SLC页,包括:

通过预设的DAh命令将所述交界位置后预设数量的未写入数据TLC页转换为SLC页,得到目标SLC页。

可选的,所述将所述交界位置后预设数量的未写入数据TLC页转换为SLC页,得到目标SLC页,包括:

统计所述目标开放块中预设数量字线内包含的所有TLC页,得到总页数;

将所述交界位置后与所述总页数数量相同的未写入数据TLC页转换为SLC页,得到目标SLC页。

可选的,所述在所述目标SLC页中写入无效数据之后,还包括:

读取当前所述目标开放块内所述已写入数据TLC页中记录的数据,得到当前块数据;

将所述当前块数据与缓存中存储的原始块数据进行比对,若所述当前块数据与所述缓存中存储的原始块数据一致,则判定所述已写入数据TLC页中的数据未发生变化。

第二方面,本申请公开了一种块数据保护装置,应用于固态硬盘,包括:

块确定模块,用于确定当前未完全写入数据的块,得到目标开放块;

位置识别模块,用于识别所述目标开放块中已写入数据TLC页与未写入数据TLC页的交界位置;

页转换模块,用于将所述交界位置后预设数量的未写入数据TLC页转换为SLC页,得到目标SLC页;

数据写入模块,用于在所述目标SLC页中写入无效数据;其中,所述无效数据为随机生成的且与所述已写入数据TLC页中数据无关的数据。

第三方面,本申请公开了一种电子设备,包括处理器和存储器;其中,所述处理器执行所述存储器中保存的计算机程序时实现前述的块数据保护方法。

第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述的块数据保护方法。

可见,本申请应用于固态硬盘,先确定出当前未完全写入数据的块得到目标开放块,然后识别所述目标开放块中已写入数据TLC页与未写入数据TLC页的交界位置,并将所述交界位置后预设数量的未写入数据TLC页转换为SLC页得到目标SLC页,再在所述目标SLC页中写入随机生成的且与所述已写入数据TLC页中数据无关的无效数据。本申请通过将已写入数据TLC页与未写入数据TLC页的交界位置后的未写入数据TLC页转换为SLC页,并写入无效数据,能够在突发掉电等情况下保证数据的准确性和可靠性,减轻对电容的压力,同时能够满足上电时用户对硬盘的高性能要求。

附图说明

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

图1为本申请公开的一种块数据保护方法流程图;

图2为本申请公开的一种具体的模式转换示意图;

图3为本申请公开的一种具体的TLC转换为SLC示意图;

图4为本申请公开的一种具体的块数据保护方法流程图;

图5为本申请公开的一种具体的块数据保护方法框图;

图6为本申请公开的一种块数据保护装置结构示意图;

图7为本申请公开的一种电子设备结构图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例公开了一种块数据保护方法,应用于固态硬盘,参见图1所示,该方法包括:

步骤S11:确定当前未完全写入数据的块,得到目标开放块。

本申请提出的块数据保护方案可以应用于三层单元固态硬盘(即TLC SSD),可以理解的是,三层单元固态硬盘中的块(即Block,是擦除操作的最小可寻址单元)可以由多个页(即Page)组成;其中,Page是写入动作的最小单位,由若干个存储数据的Cell(单元)组成,并且每一Cell占3bit,3个Page可以构成一个TLC存储单元,分别为UP(Upper Page,即TLC存储单元最上层的Page)、MP(Middle Page,即TLC存储单元中间层的Page)和LP(LowerPage,TLC存储单元最下层的Page)。

本实施例中,可以在三层单元固态硬盘上电运行过程中实时的对未完全写入数据的块中的数据进行数据保护,具体的,可以先确定出当前三层单元固态硬盘中未完全写入数据的块,即当前三层单元固态硬盘中存在未写满数据的开放块,该开放块中存在部分未写入数据的TLC页。

具体的,所述确定当前未完全写入数据的块,得到目标开放块,可以包括:获取本地日志表中记录的块状态信息,根据所述块状态信息确定当前未完全写入数据的块,得到目标开放块。本实施例中,可以通过读取到的三层单元固态硬盘运行过程中在日志表中记录的Block状态信息来确定三层单元固态硬盘中的Block是否为Open Block。

步骤S12:识别所述目标开放块中已写入数据TLC页与未写入数据TLC页的交界位置,并将所述交界位置后预设数量的未写入数据TLC页转换为SLC页,得到目标SLC页。

本实施例中,确定出当前未完全写入数据的块得到目标开放块之后,进一步的,识别上述目标开放块中已写入数据TLC页与未写入数据TLC页的交界位置,即确定出已写入数据的TLC页的结尾处或未写入数据的TLC页的起始处,接着将上述交界位置后与预设数量相同数量的未写入数据的TLC页转换为SLC(Single-Level Cell,单层单元,即1bit/cell)页,得到转化后的目标SLC页。

本实施例中,所述识别所述目标开放块中已写入数据TLC页与未写入数据TLC页的交界位置,并将所述交界位置后预设数量的未写入数据TLC页转换为SLC页,得到目标SLC页,具体可以包括:通过所述块状态信息识别所述目标开放块中已写入数据TLC页与未写入数据TLC页的交界位置;通过预设的模式转换命令将所述交界位置后预设数量的未写入数据TLC页转换为SLC页,得到目标SLC页。本实施例中,可以先通过读取日志表中记载的块状态信息来识别目标开放块中已写入数据TLC页与未写入数据TLC页的交界位置,然后通过预设的模式转换命令将上述交界位置后预设数量的未写入数据TLC页转换为SLC页,得到目标SLC页。

在一种具体的实施方式中,所述通过预设的模式转换命令将所述交界位置后预设数量的未写入数据TLC页转换为SLC页,得到目标SLC页,具体可以包括:通过预设的DAh命令将所述交界位置后预设数量的未写入数据TLC页转换为SLC页,得到目标SLC页。需要指出的是,三层单元固态硬盘设备在上电时,默认是以TLC模式操作的,为了在使三层单元固态硬盘设备使用SLC模式(Mode)操作,可以在normal命令前添加DAh命令,另外,在SLC模式下,数据读取或者擦除操作前也需要添加DAh命令。具体的,参见图2所示,图2示出了TLC模式和SLC模式之间的转换关系,通过DAh命令可以将TLC模式转换为SLC模式,并且通过DFh命令可以将SLC模式的Page转换为TLC模式;另外,需要指出的是,在不需要以SLC模式进行编程或读取数据时也可以通过DFh命令将SLC模式的Page转换成TLC模式。另外,参见图3所示,通过DAh命令可以将三个TLC Page转换为一个SLC Page。

步骤S13:在所述目标SLC页中写入无效数据;其中,所述无效数据为随机生成的且与所述已写入数据TLC页中数据无关的数据。

本实施例中,将所述交界位置后预设数量的未写入数据TLC页转换为SLC页之后,在上述目标SLC页中写入无效数据(即Dummy数据),得到相应的写入无效数据的SLC Page(即SLC Dummy Page);需要指出的是,所述无效数据具体为随机生成的,并且与上述已写入数据TLC页中记录的有效数据无关的数据。

进一步的,所述在所述目标SLC页中写入无效数据之后,还可以包括:读取当前所述目标开放块内所述已写入数据TLC页中记录的数据,得到当前块数据;将所述当前块数据与缓存中存储的原始块数据进行比对,若所述当前块数据与所述缓存中存储的原始块数据一致,则判定所述已写入数据TLC页中的数据未发生变化。本实施例中,在目标SLC页中写入无效数据之后,为了确保三层单元固态硬盘内开放块中记载的有效数据未发生变化,可以对其进行验证,具体的,可以先对当前目标开放块内与上述已写入数据TLC页中记录的有效数据进行读取得到相应的当前块数据,需要指出的是,这里的已写入数据TLC页是步骤S12中识别出的目标开放块中已写入数据的TLC页;接着将上述当前块数据与缓存(Cache)中记录的原始块数据,即待保存的有效数据进行比对,如果上述当前块数据与上述缓存中存储的原始块数据一致,则表明上述已写入数据TLC页中的数据未发生变化,即验证了本方案的有效性,经过SLC模式转换及写入Dummy数据之后,能够确保存储至三层单元固态硬盘的开放块中的数据与待保存的有效数据一致。

可见,本申请实施例应用于固态硬盘,先确定出当前未完全写入数据的块得到目标开放块,然后识别所述目标开放块中已写入数据TLC页与未写入数据TLC页的交界位置,并将所述交界位置后预设数量的未写入数据TLC页转换为SLC页得到目标SLC页,再在所述目标SLC页中写入随机生成的且与所述已写入数据TLC页中数据无关的无效数据。本申请实施例通过将已写入数据TLC页与未写入数据TLC页的交界位置后的未写入数据TLC页转换为SLC页,并写入无效数据,能够在突发掉电等情况下保证数据的准确性和可靠性,减轻对电容的压力,同时能够满足在上电时用户对硬盘的高性能要求。

本申请实施例公开了一种具体的块数据保护方法,应用于固态硬盘,参见图4所示,该方法包括:

步骤S21:获取本地日志表中记录的块状态信息,根据所述块状态信息确定当前未完全写入数据的块,得到目标开放块。

步骤S22:通过所述块状态信息识别所述目标开放块中已写入数据TLC页与未写入数据TLC页的交界位置。

例如,参见图5所示,图5中的开放块共有N层WL(即Word Line,字线)(N≥68),并且每层WL有18个TLC Page,通过读取日志表中记录的块状态信息可以识别出是否存在开放块以及开放块中已写入数据TLC页与未写入数据TLC页的交界位置。

步骤S23:通过所述块状态信息和基于FW下发的写入无效数据操作指令统计所述目标开放块中预设数量字线内包含的所有TLC页,得到总页数。

本实施例中,识别出所述块状态信息识别所述目标开放块中已写入数据TLC页与未写入数据TLC页的交界位置之后,可以通过上述块状态信息并基于FW(Firmware,固件)下发的写入无效数据操作指令来统计上述目标开放块中预设数量字线内包含的所有TLC页,得到相应的总页数。例如,参见图5所示,统计出开放块中1层字线内包含的18个TLC Page,图5中开放块中的“0”表示已写入(编程)有效数据,“1”表示未写入数据。

步骤S24:将所述交界位置后与所述总页数数量相同的未写入数据TLC页转换为SLC页,得到目标SLC页。

进一步的,将所述交界位置后与上述总页数数量相同的未写入数据TLC页转换为SLC页,得到相应的目标SLC页。例如,参见图5所示,在WL63中交界位置(即1139与1140的交界位置)处存在电势差,为了消除WL63中的电势差可以将交界位置后1层字线数量的TLCPage转换为1层字线数量的SLC Page,即将1层字线数量内的Page 1140至Page 1157转换为1层字线数量的SLC Page。具体的,可以通过DAh模式转换命令将交界位置后的18个TLCPage转换成6个SLC Page。可以理解的是,总页数数量可以根据实际的应用场景进行设置,如1层、2层或多层字线内的TLC页的总数量。

步骤S25:在所述目标SLC页中写入无效数据;其中,所述无效数据为随机生成的且与所述已写入数据TLC页中数据无关的数据。

接着,在上述目标SLC页中写入随机生成的且与上述已写入数据TLC页中数据无关的无效数据(即Dummy数据)。进一步的,可以读取图5中Open Block的Page0至Page1139中的有效数据,并在Cache中记录的原始待存储数据进行对比,从而验证写入无效数据后的OpenBlock中数据的准确性。

其中,关于上述步骤S21更加具体的处理过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。

可见,本申请实施例通过在开放块的已写入数据TLC页与未写入数据TLC页的交界位置后补充预设层字线数量的SLC Page,并在SLC Page中写入无效数据,既能在突发掉电情况下保证数据的准确性,并且,相较于传统的在交界位置后补充TLC Page的方法,由于只需在开放块的交界位置后补充较少的SLC Page即可弥补交界位置两边的电势差,从而加快了Dummy Page写入的速度,减轻了突发掉电时对电容的压力,从而更好保证了块数据的可靠性。

相应的,本申请实施例还公开了一种块数据保护装置,应用于固态硬盘,参见图6所示,该装置包括:

块确定模块11,用于确定当前未完全写入数据的块,得到目标开放块;

位置识别模块12,用于识别所述目标开放块中已写入数据TLC页与未写入数据TLC页的交界位置;

页转换模块13,用于将所述交界位置后预设数量的未写入数据TLC页转换为SLC页,得到目标SLC页;

数据写入模块14,用于在所述目标SLC页中写入无效数据;其中,所述无效数据为随机生成的且与所述已写入数据TLC页中数据无关的数据。

其中,关于上述各个模块的具体工作流程可以参考前述实施例中公开的相应内容,在此不再进行赘述。

可见,本申请实施例应用于固态硬盘,先确定出当前未完全写入数据的块得到目标开放块,然后识别所述目标开放块中已写入数据TLC页与未写入数据TLC页的交界位置,并将所述交界位置后预设数量的未写入数据TLC页转换为SLC页得到目标SLC页,再在所述目标SLC页中写入随机生成的且与所述已写入数据TLC页中数据无关的无效数据。本申请实施例通过将已写入数据TLC页与未写入数据TLC页的交界位置后的未写入数据TLC页转换为SLC页,并写入无效数据,能够在突发掉电等情况下保证数据的准确性和可靠性,减轻对电容的压力,同时能够满足在上电时用户对硬盘的高性能要求。

在一些具体实施例中,所述块确定模块11,具体可以包括:

块确定单元,用于获取本地日志表中记录的块状态信息,根据所述块状态信息确定当前未完全写入数据的块,得到目标开放块。

在一些具体实施例中,所述位置识别模块12,具体可以包括:

交界位置识别单元,用于通过所述块状态信息识别所述目标开放块中已写入数据TLC页与未写入数据TLC页的交界位置。

在一些具体实施例中,所述页转换模块13,具体可以包括:

第一页转换单元,用于通过预设的模式转换命令将所述交界位置后预设数量的未写入数据TLC页转换为SLC页,得到目标SLC页。

在一些具体实施例中,所述页转换模块13,具体可以包括:

第二页转换单元,用于通过所述块状态信息和基于FW下发的写入无效数据操作指令将所述交界位置后预设数量的未写入数据TLC页转换为SLC页,得到目标SLC页。

在一些具体实施例中,所述第一页转换单元,具体可以包括:

第三页转换单元,用于通过预设的DAh命令将所述交界位置后预设数量的未写入数据TLC页转换为SLC页,得到目标SLC页。

在一些具体实施例中,所述页转换模块13,具体可以包括:

TLC页统计单元,用于统计所述目标开放块中预设数量字线内包含的所有TLC页,得到总页数;

第四页转换单元,用于将所述交界位置后与所述总页数数量相同的未写入数据TLC页转换为SLC页,得到目标SLC页。

在一些具体实施例中,所述数据写入模块14之后,还可以包括:

数据读取单元,用于读取当前所述目标开放块内所述已写入数据TLC页中记录的数据,得到当前块数据;

数据比对单元,用于将所述当前块数据与缓存中存储的原始块数据进行比对;

判定单元,用于如果所述当前块数据与缓存中存储的原始块数据一致,则判定所述已写入数据TLC页中的数据未发生变化。

进一步的,本申请实施例还公开了一种电子设备,图7是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。

图7为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的块数据保护方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。

本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。

另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222等,存储方式可以是短暂存储或者永久存储。

其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的块数据保护方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。

进一步的,本申请还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的块数据保护方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。

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

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

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本申请所提供的一种块数据保护方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

相关技术
  • 一种服务器的数据保护方法、系统、设备及存储介质
  • 一种后端存储设备的管理方法、装置、设备以及存储介质
  • 一种数据存储方法及装置、一种计算设备及存储介质
  • 一种数据存储方法及装置、一种计算设备及存储介质
  • 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
  • 存储设备数据保护方法、装置、设备及存储介质
  • 存储设备数据保护方法、装置、设备及存储介质
技术分类

06120116458713