擦除单元RAID方法、装置、计算机设备及存储介质与流程

文档序号:16133654发布日期:2018-12-01 00:38阅读:271来源:国知局

本发明涉及固态硬盘,更具体地说是指擦除单元raid方法、装置、计算机设备及存储介质。

背景技术

ssd即固态硬盘已经被广泛应用于各种场合,由于其在性能、功耗、环境适应性等方面的优秀指标,正逐步替换传统的硬盘。

随着计算机对于存储容量、性能、成本等方面的需求,nand也一直在演进。从slc到mlc,再到tlc、qlc...伴随工艺和制程的提升,nand的可靠性在下降,需要更强的ecc纠错能力以及其他冗余备份策略来保障数据的可靠性,如raid。如图1所示,ssd内部典型的raid一共有4个可并行操作的独立单元,每个可并行操作的独立单元各出一个擦除单元组成raid数组,每个raid数组,相同物理页组成一个条带,每个条带内的3个页写入用户数据,每个条带内的1个页写入parity数据,此raid数组成了3+1raid,奇偶校验位的生成规则为通用的策略,如xor;在该模型下,当某个条带内任意一个物理页数据损坏时,根据奇偶校验位生成规则的可逆性,可以用其他2笔用户数据加上奇偶校验位数据进行修复;由上述的raid组成来看,3+1raid可以实现可并行操作的独立单元级别的保护,任意一个可并行操作的独立单元完全损坏,其数据仍然可恢复。

ssd内部经常使用的raid类型为raid5,随着raid条带大小的不同,其纠错能力也不一样,同时所需的额外物理空间的诉求也不一样,一般而言,raid条带大小越小,其保护能力越强,但是对于ssdop占用越大。按照纠错能力的强弱,一般存在ch/die/block/page等级别的raid保护策略。

如图2所示,raid条带大小越小,其对物理空间的需求越大,进而导致更多的op空间被浪费,所以在ssd内部一般采用擦除单元等级来保护数据可靠性。如图2所示,为针对4个可并行操作的独立单元配置下的raid配置模型:7+1,每7笔用户数据对应1笔奇偶校验位数据。由于一个条带需要8个物理页,所以需要每个可并行操作的独立单元各出2个擦除单元来组成对应的raid(如图示中的擦除单元0、1组成了raid数组)。而数据的写入规则为:优先保障相同条带内的数据写入,也即如图所示的箭头指向,物理写入的先后顺序为:d0_0->d0_1->d0_2->d0_3->d0_4->d0_5->d0_6->p0->d1_0->d1_1->…。随着nand工艺演进,过多的打开擦除单元会导致数据可靠性降低,而且随着异常掉电的影响,其数据损坏、映射表重建的复杂性很高。

以4个可并行操作的独立单元为例,如果组成3+1raid(3个datapage,对应1笔paritypage),则会损失25%的op,这样不能满足产品规格需求。所以需要增大条带大小,条带大小的概念就是几个数据读写单元加上几个奇偶校验位读写单元,3+1则表示条带大小为4,7+1则表示条带大小为8。增大就是增加一个raid条带内的数据读写单元数量,以4个可并行操作的独立单元为例,需要每个可并行操作的独立单元下出2个擦除单元,总共2*4=8个擦除单元组成raid数组,在一个raid数组内,相同的物理页组成一个raid条带:例如这些被选中的擦除单元的擦除单元0的读写单元0组成raid条带0,读写单元1为raid条带1。一个条带为最小保护单元,其内任意一个物理页的数据损坏可通过其他物理页数据恢复。如7+1raid,对应地单个条带的数据会分布在单个可并行操作的独立单元内不同擦除单元上。按照传统的映射表管理策略,会优先写入同一条带的数据,则在7+1raid场景下,需要在单个可并行操作的独立单元内同时打开2个擦除单元。根据nand的特性可知,打开的擦除单元的可靠性比较低,而且容易在异常掉电时发生数据损坏。

因此,有必要设计一种新的raid方法,实现降低擦除单元因为打开多个或异常掉电带来数据损坏的可靠性风险。



技术实现要素:

本发明的目的在于克服现有技术的缺陷,提供擦除单元raid方法、装置、计算机设备及存储介质。

为实现上述目的,本发明采用以下技术方案:擦除单元raid方法,所述方法包括:

在内存中创建dram高速缓冲存储器的奇偶校验位数组;

设置每个可并行独立操作的单元同一时间只打开一个擦除单元;

设置数据写入顺序;

按照顺序写入数据;

利用dram高速缓冲存储器的奇偶校验位数组延迟写入数据写入过程中产生的奇偶校验位。

其进一步技术方案为:所述按照顺序写入数据的步骤之后,包括:

判断系统是否掉电;

若否,则进入利用dram高速缓冲存储器的奇偶校验位数组延迟写入数据写入过程中产生的奇偶校验位的步骤;

若是,则重新生成掉电之前数据写入过程的奇偶校验位,并进入利用dram高速缓冲存储器的奇偶校验位数组延迟写入数据写入过程中产生的奇偶校验位的步骤。

其进一步技术方案为:按照顺序写入数据的步骤中,具体是将数据写入所有可并行独立操作的单元同一擦除单元内同一读写单元,再将数据写入所有可并行独立操作的单元同一擦除单元内下一读写单元,直至所有可并行独立操作的单元同一擦除单元内所有读写单元都写入数据。

其进一步技术方案为:利用dram高速缓冲存储器的奇偶校验位数组延迟写入数据写入过程中产生的奇偶校验位的步骤,包括以下具体步骤:

获取数据写入所有可并行独立操作的单元同一擦除单元内所有读写单元时产生的奇偶校验位,并将奇偶校验位存储于dram高速缓冲存储器的奇偶校验位数组内;

判断数据是否写入所有可并行独立操作的单元下一擦除单元内同一读写单元;

若是,则将dram高速缓冲存储器的奇偶校验位数组内存储的奇偶校验位数据存储至对应的校验数据物理页内;

若否,则返回按照顺序写入数据的步骤。

本发明还提供了擦除单元raid装置,包括创建单元、打开设置单元、顺序设置单元、数据写入单元以及延迟写入单元;

所述创建单元,用于在内存中创建dram高速缓冲存储器的奇偶校验位数组;

所述打开设置单元,用于设置每个可并行独立操作的单元同一时间只打开一个擦除单元;

所述顺序设置单元,用于设置数据写入顺序;

所述数据写入单元,用于按照顺序写入数据;

所述延迟写入单元,用于利用dram高速缓冲存储器的奇偶校验位数组延迟写入数据写入过程中产生的奇偶校验位。

其进一步技术方案为:还包括掉电判断单元以及重新生成单元;

所述掉电判断单元,用于判断系统是否掉电。

所述重新生成单元,用于若是,则重新生成掉电之前数据写入过程的奇偶校验位。

其进一步技术方案为:所述延迟写入单元包括数组存储模块、数据写入判断模块以及校验数据物理页存储模块;

所述数组存储模块,用于获取数据写入所有可并行独立操作的单元同一擦除单元内所有读写单元时产生的奇偶校验位,并将奇偶校验位存储于dram高速缓冲存储器的奇偶校验位数组内;

所述数据写入判断模块,用于判断数据是否写入所有可并行独立操作的单元下一擦除单元内同一读写单元;

所述校验数据物理页存储模块,用于若是,则将dram高速缓冲存储器的奇偶校验位数组内存储的奇偶校验位数据存储至对应的校验数据物理页内。

本发明还提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的擦除单元raid方法。

本发明还提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述的擦除单元raid方法。

本发明与现有技术相比的有益效果是:本发明的擦除单元raid方法,通过在dram中创建高速缓冲存储器的奇偶校验位数组缓存奇偶校验位结果,当数据写入到指定位置时,则将缓存的奇偶校验位结果存储到指定的擦除单元的物理页内,以延迟写入奇偶校验位数据,保证系统中对应raid只存在一个打开的擦除单元,实现降低擦除单元因为打开或异常掉电带来数据损坏的可靠性风险。

下面结合附图和具体实施例对本发明作进一步描述。

附图说明

图1为现有技术的ssd的raid方法的示意流程图;

图2为现有技术的小容量擦除单元的raid方法的示意流程图;

图3为本发明一具体实施例提供的擦除单元raid方法的示意流程图一;

图4为本发明一具体实施例提供的擦除单元raid方法的示意流程图二;

图5为本发明一具体实施例提供的断电后重建擦除单元raid的示意流程图;

图6为图3的子步骤的示意流程图;

图7为本发明一具体实施例提供的擦除单元raid装置的示意性框图;

图8为图7的延迟写入单元的示意性框图;

图9为本申请一实施例提供的一种计算机设备的示意性框图。

具体实施方式

为了更充分理解本发明的技术内容,下面结合具体实施例对本发明的技术方案进一步介绍和说明,但不局限于此。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

如图3~9所示的具体实施例,本实施例提供的擦除单元raid方法、装置、计算机设备及存储介质,可以运用在小容量ssd的擦除单元raid过程中,实现降低擦除单元因为打开或异常掉电带来数据损坏的可靠性风险。

请参阅图3,图3是本实施例提供的擦除单元raid方法的示意流程图;如图3所示,擦除单元raid方法,包括步骤s101~s107:

s101、在内存中创建dram高速缓冲存储器的奇偶校验位数组。

建立一个dram高速缓冲存储器的奇偶校验位数组,该数组可以容纳与一个擦除单元的读写单元个数一致的数量,确保所有可并行独立操作的单元内打开的擦除单元内同一读写单元有一个对应存储区域,用于存储其产生的奇偶校验位。

通过在dram中创建dram高速缓冲存储器的奇偶校验位数组来缓存中间奇偶校验位结果,可以延迟写入奇偶校验位数据,进而可以保障系统中对应raid只存在一个打开的擦除单元。

s102、设置每个可并行独立操作的单元同一时间只打开一个擦除单元。

请参阅图4,其中die为可独立并行操作的单元,block为擦除单元,page为读写单元,当建立了dram高速缓冲存储器的奇偶校验位数组后,每个可并行独立操作的单元同一时间只打开一个擦除单元,写入数据,并生成奇偶校验位,避免打开多个擦除单元导致系统不稳定,数据可靠性降低而且异常掉电时数据损坏、映射表重建的复杂性很高。

s103、设置数据写入顺序。

在本实施例中,该顺序为先将数据写入所有可并行独立操作的单元同一擦除单元内同一读写单元,再将数据写入所有可并行独立操作的单元同一擦除单元内下一读写单元,直至所有可并行独立操作的单元同一擦除单元内所有读写单元都写入数据;接着,将数据写入所有可并行独立操作的单元下一擦除单元内同一读写单元,再将数据写入所有可并行独立操作的单元中该擦除单元内下一读写单元,直至所有可并行独立操作的单元中该擦除单元内所有读写单元都写入数据,以此规律对所有读写单元进行数据写入。

请参阅图4,请参阅图4,图4是4个可并行独立操作的单元进行raid方法的示意流程图,以图示的擦除单元0/1组成的raid数组为例,数据写入顺序为d0_0->d0_1->d0_2->d0_3->d1_0->d1_1->….d255_0->d255_1->d255_2->d255_3->d0_4->d0_5->d0_6->p0->d1_4->…。

s104、按照顺序写入数据。

在本实施例中,具体是,先将数据写入所有可并行独立操作的单元同一擦除单元内同一读写单元,再将数据写入所有可并行独立操作的单元同一擦除单元内下一读写单元,直至所有可并行独立操作的单元同一擦除单元内所有读写单元都写入数据;接着,将数据写入所有可并行独立操作的单元下一擦除单元内同一读写单元,再将数据写入所有可并行独立操作的单元中该擦除单元内下一读写单元,直至所有可并行独立操作的单元中该擦除单元内所有读写单元都写入数据,以此规律对所有读写单元进行数据写入。

s105、判断系统是否掉电。

当系统出现掉电时,则需要进行上电,当系统上电后,数据写入中断,需要进行恢复,因此,判断系统是否出现掉电时确保raid准确进行的步骤之一。

若否,则s106、利用dram高速缓冲存储器的奇偶校验位数组延迟写入数据写入过程中产生的奇偶校验位。

在本实施例中,借助dram高速缓冲存储器的奇偶校验位数组作为中转位置,在所有可独立并行操作的单元内所有擦除单元的所有同一位置的读写单元都填写了数据后,则将中转位置对应的奇偶校验位填写到所有可独立并行操作的单元内当前打开的擦除单元的校验数据物理页内,减少了同时打开的擦除单元,有效降低了擦除单元因为打开多个或异常掉电带来的可靠性风险

若是,则s107、重新生成掉电之前数据写入过程的奇偶校验位,并进入s105步骤。

在本实施例中,掉电后,内存中的dram高速缓冲存储器的奇偶校验位数组的奇偶校验位完全丢失,需要将掉电时数据写入点之前的所有校验数据进行恢复,也就是重新生成校验数据,再针对写入点之后的读写单元进行正常的写入数据,避免出现数据丢失的问题。

请参阅图5,图5是4个可并行独立操作的单元掉电重建过程的示意流程图;如图5所示,假设在写完d1_3后系统掉电,其内存中的dram高速缓冲存储器的奇偶校验位数组的奇偶校验位完全丢失,上电后,读取d0_0、d0_1、d0_2、d0_3,按照parity生成规则生成p0’,并存放到的dram高速缓冲存储器的奇偶校验位数组中;读取d1_0、d1_1、d1_2、d1_3,按照parity生成规则生成p1’,并存放到dram高速缓冲存储器的奇偶校验位数组中,后续可以按照步骤s104进行数据写入,正常进行后续用户数据的写入以及奇偶校验位生成、缓存、写入。

请参阅图6,图6是擦除单元raid方法的子步骤的示意流程图,如图6所示,s106、利用dram高速缓冲存储器的奇偶校验位数组延迟写入数据写入过程中产生的奇偶校验位的步骤,包括以下具体步骤:

s1061、获取数据写入所有可并行独立操作的单元同一擦除单元内所有读写单元时产生的奇偶校验位,并将奇偶校验位存储于dram高速缓冲存储器的奇偶校验位数组内;

s1062、判断数据是否写入所有可并行独立操作的单元下一擦除单元内同一读写单元;

s1063、若是,则将dram高速缓冲存储器的奇偶校验位数组内存储的奇偶校验位数据存储至对应的校验数据物理页内;

若否,则返回s103步骤。

请参阅图4,在写入d0_0、d0_1、d0_2、d0_3的过程中,将中间的奇偶校验位结果缓存在内存中;在写入d0_6后,将dram高速缓冲存储器的奇偶校验位数组内的数据p0写入到对应物理页中。

上述的擦除单元raid方法,通过在dram中创建高速缓冲存储器的奇偶校验位数组缓存奇偶校验位结果,当数据写入到指定位置时,则将缓存的奇偶校验位结果存储到指定的校验数据物理页内,以延迟写入奇偶校验位数据,保证系统中对应raid只存在一个打开的擦除单元,实现降低擦除单元因为打开或异常掉电带来数据损坏的可靠性风险。

请参阅图7,图7为本发明一具体实施例提供的擦除单元raid装置的示意性框图,如图7所示,擦除单元raid装置包括创建单元1、打开设置单元2、顺序设置单元3、数据写入单元4以及延迟写入单元6。

创建单元1,用于在内存中创建dram高速缓冲存储器的奇偶校验位数组。

打开设置单元2,用于设置每个可并行独立操作的单元同一时间只打开一个擦除单元。

顺序设置单元3,用于设置数据写入顺序。

数据写入单元4,用于按照顺序写入数据。

延迟写入单元6,用于利用dram高速缓冲存储器的奇偶校验位数组延迟写入数据写入过程中产生的奇偶校验位。

另外,上述的装置还包括掉电判断单元5以及重新生成单元7。

掉电判断单元5,用于判断系统是否掉电。

重新生成单元7,用于若是,则重新生成掉电之前数据写入过程的奇偶校验位。

请参阅图8,上述的延迟写入单元6包括数组存储模块61、数据写入判断模块62以及校验数据物理页存储模块63。

数组存储模块61,用于获取数据写入所有可并行独立操作的单元同一擦除单元内所有读写单元时产生的奇偶校验位,并将奇偶校验位存储于dram高速缓冲存储器的奇偶校验位数组内。

数据写入判断模块62,用于判断数据是否写入所有可并行独立操作的单元下一擦除单元内同一读写单元。

校验数据物理页存储模块63,用于若是,则将dram高速缓冲存储器的奇偶校验位数组内存储的奇偶校验位数据存储至对应的校验数据物理页内。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的擦除单元raid装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

上述的擦除单元raid装置,通过在dram中创建高速缓冲存储器的奇偶校验位数组缓存奇偶校验位结果,当数据写入到指定位置时,则将缓存的奇偶校验位结果存储到指定的校验数据物理页内,以延迟写入奇偶校验位数据,保证系统中对应raid只存在一个打开的擦除单元,实现降低擦除单元因为打开或异常掉电带来数据损坏的可靠性风险。

上述擦除单元raid装置可以实现为一种计算机程序的形式,计算机程序可以在如图9所示的计算机设备上运行。

请参阅图9,图9是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备700设备可以是终端或服务器。

参照图9,该计算机设备700包括通过系统总线710连接的处理器720、存储器和网络接口750,其中,存储器可以包括非易失性存储介质730和内存储器740。

该非易失性存储介质730可存储操作系统731和计算机程序732。该计算机程序732被执行时,可使得处理器720执行任意一种擦除单元raid方法。

该处理器720用于提供计算和控制能力,支撑整个计算机设备700的运行。

该内存储器740为非易失性存储介质730中的计算机程序732的运行提供环境,该计算机程序732被处理器720执行时,可使得处理器720执行任意一种擦除单元raid方法。

该网络接口750用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备700的限定,具体的计算机设备700可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。其中,所述处理器720用于运行存储在存储器中的程序代码,以实现以下步骤:

在内存中创建dram高速缓冲存储器的奇偶校验位数组;

设置每个可并行独立操作的单元同一时间只打开一个擦除单元;

设置数据写入顺序;

按照顺序写入数据;

利用dram高速缓冲存储器的奇偶校验位数组延迟写入数据写入过程中产生的奇偶校验位。

在一实施例中,所述处理器720用于运行按照顺序写入数据之后,还实现以下步骤:

判断系统是否掉电;

若否,则进入利用dram高速缓冲存储器的奇偶校验位数组延迟写入数据写入过程中产生的奇偶校验位的步骤;

若是,则重新生成掉电之前数据写入过程的奇偶校验位,并进入利用dram高速缓冲存储器的奇偶校验位数组延迟写入数据写入过程中产生的奇偶校验位的步骤。

在一实施例中,所述处理器720用于运行按照顺序写入数据,具体是将数据写入所有可并行独立操作的单元同一擦除单元内同一读写单元,再将数据写入所有可并行独立操作的单元同一擦除单元内下一读写单元,直至所有可并行独立操作的单元同一擦除单元内所有读写单元都写入数据;

将数据写入所有可并行独立操作的单元下一擦除单元内同一读写单元,再将数据写入所有可并行独立操作的单元中该擦除单元内下一读写单元,直至所有可并行独立操作的单元中该擦除单元内所有读写单元都写入数据。

在一实施例中,所述处理器720用于运行利用dram高速缓冲存储器的奇偶校验位数组延迟写入数据写入过程中产生的奇偶校验位,包括以下具体步骤:

获取数据写入所有可并行独立操作的单元同一擦除单元内所有读写单元时产生的奇偶校验位,并将奇偶校验位存储于dram高速缓冲存储器的奇偶校验位数组内;

判断数据是否写入所有可并行独立操作的单元下一擦除单元内同一读写单元;

若是,则将dram高速缓冲存储器的奇偶校验位数组内存储的奇偶校验位数据存储至对应的校验数据物理页内;

若否,则返回按照顺序写入数据的步骤。

应当理解,在本申请实施例中,处理器720可以是中央处理单元(centralprocessingunit,cpu),该处理器720还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

本领域技术人员可以理解,图9中示出的计算机设备700结构并不构成对计算机设备700的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

上述的计算机设备,通过在dram中创建高速缓冲存储器的奇偶校验位数组缓存奇偶校验位结果,当数据写入到指定位置时,则将缓存的奇偶校验位结果存储到指定的校验数据物理页内,以延迟写入奇偶校验位数据,保证系统中对应raid只存在一个打开的擦除单元,实现降低擦除单元因为打开或异常掉电带来数据损坏的可靠性风险。

另外,本实施例还提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行前述的擦除单元raid方法。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的存储介质的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

上述的存储介质,通过在dram中创建高速缓冲存储器的奇偶校验位数组缓存奇偶校验位结果,当数据写入到指定位置时,则将缓存的奇偶校验位结果存储到指定的物理页内,以延迟写入奇偶校验位数据,保证系统中对应raid只存在一个打开的擦除单元,实现降低擦除单元因为打开或异常掉电带来数据损坏的可靠性风险。

上述仅以实施例来进一步说明本发明的技术内容,以便于读者更容易理解,但不代表本发明的实施方式仅限于此,任何依本发明所做的技术延伸或再创造,均受本发明的保护。本发明的保护范围以权利要求书为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1