数据处理方法、装置、存储介质及处理器与流程

    专利2022-07-08  102


    本申请涉及固态硬盘技术领域,具体而言,涉及一种数据处理方法、装置、存储介质及处理器。



    背景技术:

    目前,固态硬盘已经被广泛应用于各种数据读取场景之中,随着固态硬盘存储数据的爆发式增长,保证用户数据安全成为固态硬盘的关键。

    随着固态硬盘所使用的存储介质nand闪存制造工艺的进步,nand闪存的类型已经从slc(sing-levelcell,单层次存储单元)、mlc(multi-levelcell,双层次存储单元)、tlc(triple-levelcell,三层次存储单元)变化为qlc(quad-levelcell,四层次存储单元)类型。随着nand闪存类型的变化,nand闪存的存储密度越来越高,容量越来越大,同时,nand闪存的可靠性却越来越差,表现为数据出错率越来越高。

    在相关技术中,为了满足用户数据的可靠性需求,固态硬盘内部控制程序(firmware)提供了各种级别的数据保护策略。具体地,firmware首先会对用户数据进行ecc校验(错误检查和纠正校验),对于校验失败的数据,会使用nand闪存厂商提供的readretry(读取重试)功能重新从nand闪存读取数据,在一些固态硬盘中,固态硬盘控制器还会对readretry纠错失败的数据进行进一步的ldpc(低密度奇偶检验)软解码纠错。

    但是,随着nand闪存的更新换代,对数据纠错的要求越来越高,尤其当nand介质来到tlc和qlc时代的时候,上述数据保护机制已经难以满足用户数据安全的需求。为了进一步满足用户数据安全的需求,相关技术中出现了通过固态硬盘的部分存储空间存储用来纠错的数据,提高了数据纠错率,但是使得固态硬盘的实际可用空间将大大减少。

    针对相关技术中固态硬盘的保护方案中采用较大存储空间存储纠错检验数据,固态硬盘的可用存储空间较小的问题,目前尚未提出有效的解决方案。



    技术实现要素:

    本申请提供一种数据处理方法、装置、存储介质及处理器,以解决相关技术中固态硬盘的保护方案中采用较大存储空间存储纠错检验数据,固态硬盘的可用存储空间较小的问题。

    根据本申请的一个方面,提供了一种数据处理方法。该方法包括:接收数据读取命令,并基于数据读取命令确定待读取数据的存储地址,其中,存储地址为固态硬盘的闪存阵列中的地址;在存储地址下存在异常数据的情况下,确定异常数据所在的目标逻辑存储单元,其中,逻辑存储单元由闪存阵列的每个闪存单元中相同序列的块中的相同序列的线位单元构成,逻辑存储单元中包括用于存储原始数据的第一线位单元和用于存储校验数据的第二线位单元,校验数据为所有第一线位单元存储的原始数据的逻辑计算的结果;基于目标逻辑存储单元中存储的数据,对存储地址下存储的数据进行校正,得到校正后的数据;将校正后的数据发送至主机。

    可选地,在存储地址下存在异常数据的情况下,确定异常数据所在的目标逻辑存储单元包括:确定异常数据在闪存阵列中对应的目标线位单元,并确定目标线位单元所属的目标逻辑存储单元。

    可选地,基于目标逻辑存储单元中存储的数据,对存储地址下存储的数据进行校正,得到校正后的数据包括:确定逻辑计算对应的反向逻辑计算;对第一线位单元存储的多个原始数据以及第二线位单元存储的校验数据执行反向逻辑计算,得到异常数据对应的目标原始数据;将存储地址下存储的数据中的异常数据替换为目标原始数据,得到校正后的待读取数据。

    可选地,在存储地址下存在异常数据的情况下,确定异常数据所在的目标逻辑存储单元之前,该方法还包括:获取闪存阵列的每个闪存单元中相同序列的块中的相同线位单元,得到多组线位单元,其中,每组线位单元中包含不同闪存单元中的线位单元;在每组线位单元包含的多个线位单元中分别确定多个预设线位单元,并基于多个预设线位单元确定逻辑存储单元,其中,逻辑存储单元中包括多个第一线位单元和一个第二线位单元,第二线位单元为逻辑存储单元中的最后一个线位单元。

    可选地,在每组线位单元包含的多个线位单元中分别确定多个预设线位单元,并基于多个预设线位单元确定逻辑存储单元包括:将一组线位单元中的每个线位单元均确定为预设线位单元,并基于多个预设线位单元确定逻辑存储单元。

    可选地,在每组线位单元包含的多个线位单元中分别确定多个预设线位单元,并基于多个预设线位单元确定逻辑存储单元包括:将一组线位单元中的多个线位单元中奇数序列的线位单元确定为第一预设线位单元,得到多个第一预设线位单元,并基于多个第一预设线位单元确定第一逻辑存储单元;将一组线位单元中的多个线位单元中偶数序列的线位单元确定为第二预设线位单元,得到多个第二预设线位单元,并基于多个第二预设线位单元确定第二逻辑存储单元。

    可选地,在每组线位单元包含的多个线位单元中分别确定多个预设线位单元,并基于多个预设线位单元确定逻辑存储单元包括:确定存在相互干扰现象的相邻线位单元的个数;以相邻线位单元的个数为单位,对一组线位单元中的多个线位单元依次进行切分,得到多个线位单元集合;将每个线位单元集合中相同序列的线位单元确定为预设线位单元,得到多组预设线位单元,并基于每组预设线位单元分别确定一个逻辑存储单元,其中,一组预设线位单元中包含不同线位单元集合中的线位单元。

    根据本申请的另一方面,提供了一种数据处理装置。该装置包括:接收单元,用于接收数据读取命令,并基于数据读取命令确定待读取数据的存储地址,其中,存储地址为固态硬盘的闪存阵列中的地址;第一确定单元,用于在存储地址下存在异常数据的情况下,确定异常数据所在的目标逻辑存储单元,其中,逻辑存储单元由闪存阵列的每个闪存单元中相同序列的块中的相同序列的线位单元构成,逻辑存储单元中包括用于存储原始数据的第一线位单元和用于存储校验数据的第二线位单元,校验数据为所有第一线位单元存储的原始数据的逻辑计算的结果;校正单元,用于基于目标逻辑存储单元中存储的数据,对存储地址下存储的数据进行校正,得到校正后的数据;发送单元,用于将校正后的数据发送至主机。

    根据本发明实施例的另一方面,还提供了一种非易失性存储介质,非易失性存储介质包括存储的程序,其中,程序运行时控制非易失性存储介质所在的设备执行一种数据处理方法。

    根据本发明实施例的另一方面,还提供了一种电子装置,包含处理器和存储器;存储器中存储有计算机可读指令,处理器用于运行计算机可读指令,其中,计算机可读指令运行时执行一种数据处理方法。

    通过本申请,采用以下步骤:接收数据读取命令,并基于数据读取命令确定待读取数据的存储地址,其中,存储地址为固态硬盘的闪存阵列中的地址;在存储地址下存在异常数据的情况下,确定异常数据所在的目标逻辑存储单元,其中,逻辑存储单元由闪存阵列的每个闪存单元中相同序列的块中的相同序列的线位单元构成,逻辑存储单元中包括用于存储原始数据的第一线位单元和用于存储校验数据的第二线位单元,校验数据为所有第一线位单元存储的原始数据的逻辑计算的结果;基于目标逻辑存储单元中存储的数据,对存储地址下存储的数据进行校正,得到校正后的数据;将校正后的数据发送至主机,解决了相关技术中固态硬盘的保护方案中采用较大存储空间存储纠错检验数据,固态硬盘的可用存储空间较小的问题。进而达到了采用较小存储空间存储纠错检验数据,提高固态硬盘的可用存储空间的效果。

    附图说明

    构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

    图1是根据相关技术提供的数据写入方法的示意图;

    图2是根据本申请实施例提供的数据处理方法的流程图;

    图3是根据本申请实施例提供的数据处理方法中可选的数据写入方式的示意图;

    图4是根据本申请实施例提供的数据处理方法中可选的数据写入方式的示意图;

    图5是根据本申请实施例提供的数据处理装置的示意图。

    具体实施方式

    需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

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

    需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

    为了便于描述,以下对本申请实施例涉及的部分名词或术语进行说明:

    raid占空比:也即独立硬盘冗余阵列占空比,在一个完整的raid条带中,paritydata(奇偶校验数据)占用整个raid条带空间的比例。

    paritydata:也即奇偶校验数据,等于同一个raid条带中,前面所有数据做数据处理方法、装置、存储介质及处理器or异或操作得到的数据。

    slc、mlc、tlc、qlc:分别为:单层次存储单元(sing-levelcell)、双层次存储单元(multi-levelcell)、三层次存储单元(triple-levelcell)、四层次存储单元(quad-levelcell),均为nand闪存类型。

    为了解决相关技术中固态硬盘的保护方案中采用较大存储空间存储纠错检验数据,固态硬盘的可用存储空间较小的问题,相关技术中出现了以下固态硬盘firmware所提供的nand介质数据raid保护方案:

    一种是dieraid保护方案,具体的,在整个数据条带中,paritydata(奇偶校验数据)占用相应的一个die的空间大小,数据分布如图1所示,在这种保护方案中,paritydata占用的空间大小为一个die的2-planepagesize。以一个包含有8个die,每个die有2个plane的512gb固态硬盘为例,paritydata的占空比=2/(8*2)=12.5%。也即,在使用该种dieraid方式的固态硬盘中,用来保存paritydata的空间为512gb*12.5%=64gb,这部分存储空间是不能用来保存用户数据的,所以固态硬盘用户得到的实际可用空间将大大减少。

    另一种是planeraid保护方案,具体的,在整个数据条带中,paritydata占用相应的一个plane的page大小,数据分布如图1所示,在这种保护方案中,paritydata占用的空间大小为一个die的1-planepagesize。同样以一个包含有8个die,每个die有2个plane的512gb固态硬盘为例,paritydata的占用空间为512gb*1/(8*2)=32gb,这部分存储空间也是不能用来保存用户数据的,固态硬盘用户得到的实际可用空间将大大减少。

    基于此,本申请希望提供一种能够解决上述技术问题的方案,其详细内容将在后续实施例中得以阐述。

    根据本申请的实施例,提供了一种数据处理方法。

    图2是根据本申请实施例的数据处理方法的流程图。如图2所示,该方法包括以下步骤:

    步骤s202,接收数据读取命令,并基于数据读取命令确定待读取数据的存储地址,其中,存储地址为固态硬盘的闪存阵列中的地址。

    具体地,在主机需要从固态硬盘读取数据时,向固态硬盘控制器发送数据读取命名,固态硬盘控制器从闪存中查找命令中携带的存储地址对应存储的数据。

    步骤s204,在存储地址下存在异常数据的情况下,确定异常数据所在的目标逻辑存储单元,其中,逻辑存储单元由闪存阵列的每个闪存单元中相同序列的块中的相同序列的线位单元构成,逻辑存储单元中包括用于存储原始数据的第一线位单元和用于存储校验数据的第二线位单元,校验数据为所有第一线位单元存储的原始数据的逻辑计算的结果。

    需要说明的是,每个固态硬盘由多个闪存单元(die)构成,每个die有2个面(plane),每个plane里又分多个块(block),block里面再分多个线位单元(wordline,简称wl),其中,每个wl包含多个页(page)。

    固态硬盘固件(firmware)在将用待存储数据写入闪存介质的时候,每次写入一个die中的一个block中的一个wl中的多个page,具体地,先将数据写入die1的block1的wl1的page中,再将数据写入die2的block1的wl1的page中,以此类推,直至写满dien的block1的wl1的page,然后开始将数据写入die1的block1的wl2的page中,以此类推,直至写满dien的block1的wlm的page中。

    因而,在本申请实施例中将固态硬盘的每个die中相同序列的block中的相同序列的wl构成一个逻辑存储单元(logicalpage)。具体地,以包含有8个die,每个die有2个plane的512gb固态硬盘为例,将这8个die中的每个tlcblockm组合在一起作为一个logicalblock来使用,称为logicalblockm,同时,将每个logicalblock中相同序列的最小写入单元wl组合在一起作为一个logicalpage使用。也即,在写入数据时,以logicalblock为单元写入,每次写入logicalblock中的一个logicalpage。

    进一步的,构建好logicalblock后,可以在每个logicalblock的前n-1个logicalpage存原始数据,在第n个logicalpage存前n-1个原始数据进行的校验数据,也即,对前n-1个原始数据进行异或逻辑计算得到的数据。

    可选地,在本申请实施例提供的数据处理方法中,在存储地址下存在异常数据的情况下,确定异常数据所在的目标逻辑存储单元包括:确定异常数据在闪存阵列中对应的目标线位单元,并确定目标线位单元所属的目标逻辑存储单元。

    具体地,在读取数据时,判断待读取数据中是否存在异常数据,在存在异常数据的情况下,定位异常数据所在的wl,并确定wl所在的logicalpage所属的logicalblock,也即,确定了异常数据对应的校验数据的位置信息,以及参与校验的其他原始数据的位置信息。

    步骤s206,基于目标逻辑存储单元中存储的数据,对存储地址下存储的数据进行校正,得到校正后的数据。

    可选地,在本申请实施例提供的数据处理方法中,基于目标逻辑存储单元中存储的数据,对存储地址下存储的数据进行校正,得到校正后的数据包括:确定逻辑计算对应的反向逻辑计算;对第一线位单元存储的多个原始数据以及第二线位单元存储的校验数据执行反向逻辑计算,得到异常数据对应的目标原始数据;将存储地址下存储的数据中的异常数据替换为目标原始数据,得到校正后的待读取数据。

    具体地,若目标逻辑存储单元为logicalblockm,包含384个logicalpage,异常数据所在地址为logicalpage0,校验数据所在地址为logicalpage383,固态硬盘控制器获取logicalpage383存储的校验数据以及logicalpage1到logicalpage382存储的原始数据,并基于获取的校验数据以及原始数据,恢复出logicalpage0对应的目标原始数据,从而将目标原始以及存储地址下存储的其他数据组合成校正后的待读取数据。

    步骤s208,将校正后的数据发送至主机。

    具体地,固态硬盘控制器将校正后的待读取数据发送至主机。

    本申请实施例提供的数据处理方法,通过接收数据读取命令,并基于数据读取命令确定待读取数据的存储地址,其中,存储地址为固态硬盘的闪存阵列中的地址;在存储地址下存在异常数据的情况下,确定异常数据所在的目标逻辑存储单元,其中,逻辑存储单元由闪存阵列的每个闪存单元中相同序列的块中的相同序列的线位单元构成,逻辑存储单元中包括用于存储原始数据的第一线位单元和用于存储校验数据的第二线位单元,校验数据为所有第一线位单元存储的原始数据的逻辑计算的结果;基于目标逻辑存储单元中存储的数据,对存储地址下存储的数据进行校正,得到校正后的数据;将校正后的数据发送至主机,解决了相关技术中固态硬盘的保护方案中采用较大存储空间存储纠错检验数据,固态硬盘的可用存储空间较小的问题。进而达到了采用较小存储空间存储纠错检验数据,提高固态硬盘的可用存储空间的效果。

    逻辑存储单元的确定方式可以根据校验数据的需求灵活配置,可选地,在本申请实施例提供的数据处理方法中,在存储地址下存在异常数据的情况下,确定异常数据所在的目标逻辑存储单元之前,该方法还包括:获取闪存阵列的每个闪存单元中相同序列的块中的相同线位单元,得到多组线位单元,其中,每组线位单元中包含不同闪存单元中的线位单元;在每组线位单元包含的多个线位单元中分别确定多个预设线位单元,并基于多个预设线位单元确定逻辑存储单元,其中,逻辑存储单元中包括多个第一线位单元和一个第二线位单元,第二线位单元为逻辑存储单元中的最后一个线位单元。

    可选地,在本申请实施例提供的数据处理方法中,在每组线位单元包含的多个线位单元中分别确定多个预设线位单元,并基于多个预设线位单元确定逻辑存储单元包括:将一组线位单元中的每个线位单元均确定为预设线位单元,并基于多个预设线位单元确定逻辑存储单元。

    在一种可选的实施方式中,以包含toshibabics4tlcnand的固态硬盘为例,bics4nand中每个tlcblock包含有384个wl,每个wl包含3个物理page,每个物理page大小为16kb,如图3所示,为logicalblock和logicalpage的划分方式。

    具体地,由于数据由nand介质固定的写入方式,具体地,以page序列号从小到大的顺序写入logicalblock的logicalpage,需要说明的是,相关技术中采用dieraid方式或者planeraid方式,需要在logicalpage0的最后一个die或者最后一个plane生成paritydata并进行写入。而本实施例数据写入logicalpage0后,不需要在logicalpage0就生成并写入paritydata,而是继续写入数据到logicalpage1,logicalpage2,logicalpage3…一直到logicalpage382,在写入数据到logicalpage383的最后一个die时,生成paritydata并写入到nand。

    需要说明的是,以本实施例的raid方式写入时,paritydata的占空比=16kb*2*3/(8*2*384*3*16kb)=0.03%,paritydata的实际占用空间=512gb*0.03%=0.17gb。与相关技术中两种raid方式相比,本实施例使用的raid机制大大减少了paritydata所占用的空间。

    进一步的,在使得raid条带中paritydata占用的空间大大减少的基础上,写入并检验的方式还可以灵活配置。

    考虑到nand的出错机制,同一个block中相邻的两个wl容易相互干扰,可选地,在本申请实施例提供的数据处理方法中,在每组线位单元包含的多个线位单元中分别确定多个预设线位单元,并基于多个预设线位单元确定逻辑存储单元包括:将一组线位单元中的多个线位单元中奇数序列的线位单元确定为第一预设线位单元,得到多个第一预设线位单元,并基于多个第一预设线位单元确定第一逻辑存储单元;将一组线位单元中的多个线位单元中偶数序列的线位单元确定为第二预设线位单元,得到多个第二预设线位单元,并基于多个第二预设线位单元确定第二逻辑存储单元。

    具体地,可以灵活地调整raid的paritydata来适应同一个block中相邻的两个wl容易相互干扰的出错机制。

    例如,可以将写入logicalpage序列号为偶数的数据生成一组paritydata存放到logicalblock382的最后一个die的wl中,而把写入logicalpage序列号为奇数的数据生成一组paritydata存放到logicalblock383的最后一个die的wl中,这样相邻的两个wl中的数据分别对应不同的paritydata,即使相邻的两个wl发生了相互干扰,也可以使用各自的paritydata进行raid纠错。同时,使用本实施例的raid方式的paritydata占用nand空间为0.34gb,相对于相关技术,所需的存储空间大大减少。

    除了相邻两个wl之间的数据容易相互干扰,相邻多个wl之间的数据也容易相互干扰,可选地,在本申请实施例提供的数据处理方法中,在每组线位单元包含的多个线位单元中分别确定多个预设线位单元,并基于多个预设线位单元确定逻辑存储单元包括:确定存在相互干扰现象的相邻线位单元的个数;以相邻线位单元的个数为单位,对一组线位单元中的多个线位单元依次进行切分,得到多个线位单元集合;将每个线位单元集合中相同序列的线位单元确定为预设线位单元,得到多组预设线位单元,并基于每组预设线位单元分别确定一个逻辑存储单元,其中,一组预设线位单元中包含不同线位单元集合中的线位单元。

    具体地,以使用toshibabics3nand作为存储介质的512gb固态硬盘为例,nand由16个容量为32gb的die组成,每个die有2个plane,每个物理block有64个layer,每个layer有4个wl,每个wl有3个物理page,在数据写入时,数据每次写入一个完整的wl。

    由于bics3nand的每个layer中的4个wl容易发生数据干扰,而且两个相邻的layer之间也容易发生数据干扰,根据该出错机制,本实施例的固态硬盘存储如图4所示,同一个layer中的任意wl之间发生干扰,都能根据各自的paritydata得到正确的数据,同时,即使相邻的两个layer之间也发生了干扰,也可以计算出正确的数据。同时,本实施例存储与校验方法设计中paritydata的占空比为0.05%,相对于相关技术,所需的存储空间大大减少。

    以此类推,本实施例可以根据同一种nand容易发生数据干扰的wl的不同个数,用各种灵活的方式来适配nand的各种出错机制,写入很少的paritydata,从而大大节约了nand资源,而不需要浪费太多的用户使用空间,可以提升固态硬盘的性能和寿命。

    此外,还可以根据不同的nand厂商,不同的nand型号,不同的数据出错模型,灵活地设计不同的raid写入方式来保护用户的数据,灵活适配不同类型的nand。从而达到通过使用不同的raid占空比来保护不同类型的nand。

    需要说明的是,上述实施例中的存储与校验方法在固态硬盘中取得了良好的纠错效果,在实际测试中可以观察到当ecc,readretry,ldpcsoftdecode都失效时,根据本实施例设计的存储与校验方法能对错误的数据进行纠错,给用户提供安全可靠的数据。

    需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

    本申请实施例还提供了一种数据处理装置,需要说明的是,本申请实施例的数据处理装置可以用于执行本申请实施例所提供的用于数据处理方法。以下对本申请实施例提供的数据处理装置进行介绍。

    图5是根据本申请实施例的数据处理装置的示意图。如图5所示,该装置包括:接收单元10、第一确定单元20、校正单元30和发送单元40。

    具体地,接收单元10,用于接收数据读取命令,并基于数据读取命令确定待读取数据的存储地址,其中,存储地址为固态硬盘的闪存阵列中的地址。

    第一确定单元20,用于在存储地址下存在异常数据的情况下,确定异常数据所在的目标逻辑存储单元,其中,逻辑存储单元由闪存阵列的每个闪存单元中相同序列的块中的相同序列的线位单元构成,逻辑存储单元中包括用于存储原始数据的第一线位单元和用于存储校验数据的第二线位单元,校验数据为所有第一线位单元存储的原始数据的逻辑计算的结果。

    校正单元30,用于基于目标逻辑存储单元中存储的数据,对存储地址下存储的数据进行校正,得到校正后的数据。

    发送单元40,用于将校正后的数据发送至主机。

    本申请实施例提供的数据处理装置,通过接收单元10接收数据读取命令,并基于数据读取命令确定待读取数据的存储地址,其中,存储地址为固态硬盘的闪存阵列中的地址;第一确定单元20在存储地址下存在异常数据的情况下,确定异常数据所在的目标逻辑存储单元,其中,逻辑存储单元由闪存阵列的每个闪存单元中相同序列的块中的相同序列的线位单元构成,逻辑存储单元中包括用于存储原始数据的第一线位单元和用于存储校验数据的第二线位单元,校验数据为所有第一线位单元存储的原始数据的逻辑计算的结果;校正单元30基于目标逻辑存储单元中存储的数据,对存储地址下存储的数据进行校正,得到校正后的数据;发送单元40,用于将校正后的数据发送至主机,解决了相关技术中固态硬盘的保护方案中采用较大存储空间存储纠错检验数据,固态硬盘的可用存储空间较小的问题,进而达到了采用较小存储空间存储纠错检验数据,提高固态硬盘的可用存储空间的效果。

    可选地,在本申请实施例提供的数据处理装置中,第一确定单元20包括:第一确定模块,用于确定异常数据在闪存阵列中对应的目标线位单元,并确定目标线位单元所属的目标逻辑存储单元。

    可选地,在本申请实施例提供的数据处理装置中,校正单元30包括:第二确定模块,用于确定逻辑计算对应的反向逻辑计算;计算模块,用于对第一线位单元存储的多个原始数据以及第二线位单元存储的校验数据执行反向逻辑计算,得到异常数据对应的目标原始数据;替换模块,用于将存储地址下存储的数据中的异常数据替换为目标原始数据,得到校正后的待读取数据。

    可选地,在本申请实施例提供的数据处理装置中,该装置还包括:获取单元,用于在存储地址下存在异常数据的情况下,确定异常数据所在的目标逻辑存储单元之前,获取闪存阵列的每个闪存单元中相同序列的块中的相同线位单元,得到多组线位单元,其中,每组线位单元中包含不同闪存单元中的线位单元;第二确定单元,用于在每组线位单元包含的多个线位单元中分别确定多个预设线位单元,并基于多个预设线位单元确定逻辑存储单元,其中,逻辑存储单元中包括多个第一线位单元和一个第二线位单元,第二线位单元为逻辑存储单元中的最后一个线位单元。

    可选地,在本申请实施例提供的数据处理装置中,第二确定单元包括:第三确定模块,用于将一组线位单元中的每个线位单元均确定为预设线位单元,并基于多个预设线位单元确定逻辑存储单元。

    可选地,在本申请实施例提供的数据处理装置中,第二确定单元包括:第四确定模块,用于将一组线位单元中的多个线位单元中奇数序列的线位单元确定为第一预设线位单元,得到多个第一预设线位单元,并基于多个第一预设线位单元确定第一逻辑存储单元;第五确定模块,用于将一组线位单元中的多个线位单元中偶数序列的线位单元确定为第二预设线位单元,得到多个第二预设线位单元,并基于多个第二预设线位单元确定第二逻辑存储单元。

    可选地,在本申请实施例提供的数据处理装置中,第二确定单元包括:第六确定模块,用于确定存在相互干扰现象的相邻线位单元的个数;切分模块,用于以相邻线位单元的个数为单位,对一组线位单元中的多个线位单元依次进行切分,得到多个线位单元集合;第七确定模块,用于将每个线位单元集合中相同序列的线位单元确定为预设线位单元,得到多组预设线位单元,并基于每组预设线位单元分别确定一个逻辑存储单元,其中,一组预设线位单元中包含不同线位单元集合中的线位单元。

    所述数据处理装置包括处理器和存储器,上述接收单元10、第一确定单元20、校正单元30和发送单元40等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

    处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来解决相关技术中固态硬盘的保护方案中采用较大存储空间存储纠错检验数据,固态硬盘的可用存储空间较小的问题。

    存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。

    本申请实施例还提供了一种非易失性存储介质,非易失性存储介质包括存储的程序,其中,程序运行时控制非易失性存储介质所在的设备执行一种数据处理方法。

    本申请实施例还提供了一种电子装置,包含处理器和存储器;存储器中存储有计算机可读指令,处理器用于运行计算机可读指令,其中,计算机可读指令运行时执行一种数据处理方法。本文中的电子装置可以是服务器、pc、pad、手机等。

    本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

    本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

    这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

    这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

    在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

    存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。存储器是计算机可读介质的示例。

    计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

    还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。

    本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

    以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。


    技术特征:

    1.一种数据处理方法,其特征在于,包括:

    接收数据读取命令,并基于所述数据读取命令确定待读取数据的存储地址,其中,所述存储地址为固态硬盘的闪存阵列中的地址;

    在所述存储地址下存在异常数据的情况下,确定所述异常数据所在的目标逻辑存储单元,其中,逻辑存储单元由所述闪存阵列的每个闪存单元中相同序列的块中的相同序列的线位单元构成,所述逻辑存储单元中包括用于存储原始数据的第一线位单元和用于存储校验数据的第二线位单元,所述校验数据为所有所述第一线位单元存储的原始数据的逻辑计算的结果;

    基于所述目标逻辑存储单元中存储的数据,对所述存储地址下存储的数据进行校正,得到校正后的数据;

    将所述校正后的数据发送至主机。

    2.根据权利要求1所述的方法,其特征在于,在所述存储地址下存在异常数据的情况下,确定所述异常数据所在的目标逻辑存储单元包括:

    确定所述异常数据在所述闪存阵列中对应的目标线位单元,并确定所述目标线位单元所属的所述目标逻辑存储单元。

    3.根据权利要求1所述的方法,其特征在于,基于所述目标逻辑存储单元中存储的数据,对所述存储地址下存储的数据进行校正,得到校正后的数据包括:

    确定所述逻辑计算对应的反向逻辑计算;

    对所述第一线位单元存储的多个原始数据以及所述第二线位单元存储的校验数据执行所述反向逻辑计算,得到所述异常数据对应的目标原始数据;

    将所述存储地址下存储的数据中的所述异常数据替换为所述目标原始数据,得到所述校正后的待读取数据。

    4.根据权利要求1所述的方法,其特征在于,在所述存储地址下存在异常数据的情况下,确定所述异常数据所在的目标逻辑存储单元之前,所述方法还包括:

    获取所述闪存阵列的每个闪存单元中相同序列的块中的相同线位单元,得到多组线位单元,其中,每组线位单元中包含不同闪存单元中的线位单元;

    在所述每组线位单元包含的多个线位单元中分别确定多个预设线位单元,并基于所述多个预设线位单元确定所述逻辑存储单元,其中,所述逻辑存储单元中包括多个所述第一线位单元和一个所述第二线位单元,所述第二线位单元为所述逻辑存储单元中的最后一个线位单元。

    5.根据权利要求4所述的方法,其特征在于,在所述每组线位单元包含的多个线位单元中分别确定多个预设线位单元,并基于所述多个预设线位单元确定所述逻辑存储单元包括:

    将一组线位单元中的每个线位单元均确定为所述预设线位单元,并基于所述多个预设线位单元确定所述逻辑存储单元。

    6.根据权利要求4所述的方法,其特征在于,在所述每组线位单元包含的多个线位单元中分别确定多个预设线位单元,并基于所述多个预设线位单元确定所述逻辑存储单元包括:

    将一组线位单元中的所述多个线位单元中奇数序列的线位单元确定为第一预设线位单元,得到多个所述第一预设线位单元,并基于多个所述第一预设线位单元确定第一逻辑存储单元;

    将一组线位单元中的所述多个线位单元中偶数序列的线位单元确定为第二预设线位单元,得到多个所述第二预设线位单元,并基于多个所述第二预设线位单元确定第二逻辑存储单元。

    7.根据权利要求4所述的方法,其特征在于,在所述每组线位单元包含的多个线位单元中分别确定多个预设线位单元,并基于所述多个预设线位单元确定所述逻辑存储单元包括:

    确定存在相互干扰现象的相邻线位单元的个数;

    以所述相邻线位单元的个数为单位,对一组线位单元中的所述多个线位单元依次进行切分,得到多个线位单元集合;

    将每个所述线位单元集合中相同序列的线位单元确定为所述预设线位单元,得到多组所述预设线位单元,并基于每组所述预设线位单元分别确定一个所述逻辑存储单元,其中,一组所述预设线位单元中包含不同线位单元集合中的线位单元。

    8.一种数据处理装置,其特征在于,包括:

    接收单元,用于接收数据读取命令,并基于所述数据读取命令确定待读取数据的存储地址,其中,所述存储地址为固态硬盘的闪存阵列中的地址;

    第一确定单元,用于在所述存储地址下存在异常数据的情况下,确定所述异常数据所在的目标逻辑存储单元,其中,逻辑存储单元由所述闪存阵列的每个闪存单元中相同序列的块中的相同序列的线位单元构成,所述逻辑存储单元中包括用于存储原始数据的第一线位单元和用于存储校验数据的第二线位单元,所述校验数据为所有所述第一线位单元存储的原始数据的逻辑计算的结果;

    校正单元,用于基于所述目标逻辑存储单元中存储的数据,对所述存储地址下存储的数据进行校正,得到校正后的数据;

    发送单元,用于将所述校正后的数据发送至主机。

    9.一种非易失性存储介质,其特征在于,所非易失性存储介质包括存储的程序,其中,所述程序运行时控制所述非易失性存储介质所在的设备执行权利要求1至7中任意一项所述的数据处理方法。

    10.一种电子装置,其特征在于,包含处理器和存储器,所述存储器中存储有计算机可读指令,所述处理器用于运行所述计算机可读指令,其中,所述计算机可读指令运行时执行权利要求1至7中任意一项所述的数据处理方法。

    技术总结
    本申请公开了一种数据处理方法、装置、存储介质及处理器。该方法包括:接收数据读取命令,并基于数据读取命令确定待读取数据的存储地址,其中,存储地址为固态硬盘的闪存阵列中的地址;在存储地址下存在异常数据的情况下,确定异常数据所在的目标逻辑存储单元,其中,逻辑存储单元由闪存阵列的每个闪存单元中相同序列的块中的相同序列的线位单元构成;基于目标逻辑存储单元中存储的数据,对存储地址下存储的数据进行校正,得到校正后的数据;将校正后的数据发送至主机。通过本申请,解决了相关技术中固态硬盘的保护方案中采用较大存储空间存储纠错检验数据,固态硬盘的可用存储空间较小的问题。

    技术研发人员:柳擎;吴彬;尚召;陈磊
    受保护的技术使用者:北京泽石科技有限公司;泽石科技(武汉)有限公司
    技术研发日:2020.11.30
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-23602.html

    最新回复(0)