基于双层RAID信息的增强型纠错方法及深度纠错方法技术

技术编号:29835072 阅读:18 留言:0更新日期:2021-08-27 14:24
本发明专利技术公开了一种基于双层RAID信息的增强型纠错方法及深度纠错方法,当闪存颗粒中出现ECC不可纠的错误数据时,增强型纠错方法包括:S1、确定不可纠数据A的地址,设数据A在横向RAID行和纵向RAID行中的位置分别位于X和Y’,1≤X≤N,1≤Y’≤M’,对应的数据分别记为DATAX和DATAY’;S2、分别计算经过横向RAID行恢复和纵向RAID行恢复得到的值DRAID和DRAID’;S3、对数据A进行重读,得到新的数据DATANew,并对DATANew进行异或和位与计算得到数据DATAANew;S4、对得到的一帧新的数据再进行解码。本发明专利技术提高了SSD纠错算法的纠错能力和NAND颗粒的寿命。

【技术实现步骤摘要】
基于双层RAID信息的增强型纠错方法及深度纠错方法
本专利技术涉及数据存储
,具体涉及一种基于双层RAID信息的增强型纠错方法及深度纠错方法。
技术介绍
SSD(SolidStateDrive)固态驱动器,俗称固态硬盘,是用固态电子存储芯片阵列而制成的硬盘,通常包含三个大的部分,即SSD主控芯片、存储数据的闪存颗粒阵列以及缓存芯片。固态硬盘具有传统机械硬盘不具备的快速读写、质量轻、能耗低以及体积小等特点,使得其中消费级市场,数据中心和企业级市场中都得到了广泛的应用。闪存颗粒的一个特性就是在寿命周期内会出现不同程度的位反转,为了进一步提高SSD磁盘的寿命,存储厂商会在闪存颗粒之上通过ECC(ErrorCorrectionCode,随用户数据生成一起写入磁盘)纠错技术纠正位错误。在数据写入时采用ECC编码写入检验位,当数据由于位反转导致错误,读取数据时可以利用ECC检验位校正数据,并把正确数据返回主机。常用的ECC校正机制有BCH(Bose-Chaudhuri-Hocquenghem)、RS(Reed-Solomon)和LDPC(LowdensityParityCheck),可以实现ECC对应纠错能力的数据错误的检验和恢复,如果错误的bit位数超过ECC的纠错能力(称为Uncorrectablebiterror),ECC是无法检验恢复的。如果主控芯片中采取了RAID(RedundantArrayofInexpensiveDisks)架构,出现了ECC不可纠的情况可以采用RAID机制来恢复。随着闪存颗粒的更新换代,从SLC(单层存储单元)、MLC(双层存储单元)到TLC(三层存储单元)、QLC(四层存储单元),单位bit成本越来越低,寿命越来越短,即误码率会变高,对ECC的纠错能力也会要求更高。闪存厂家会在闪存颗粒中设置错误校验码空间(out-of-band,OOB空间),纠错算法BCH、RS和LDPC的纠错能力会受到OOB大小的限制,越来越难满足TLC和QLC闪存的纠错能力要求。公开号为CN112383314B的中国专利公开了“一种基于RAID信息的LDPC纠错方法”,该方法的原理是基于LDPC纠错算法的特性,绝大部分的数据在不可纠的状态下,经过LDPC的解码输出数据会比输入数据要好(更接近正确数据);并且,LDPC纠错算法包含每个比特的软信息,再利用RAID的XOR特性,巧妙的定位出可能出错的比特位,使处理后的数据更准确。经过该方法处理后的数据减轻了LDPC的负担,变相的提高LDPC纠错算法的能力。公开号为CN111679934B的中国专利公开了一种“基于RAID信息的纠错方法、计算机可读存储介质及处理器”,该方法的原理是利用NAND的Vt特性分布,通过移动读阈值可以定位出区域2,即出错概率大的比特位;再利用RAID的XOR特性,替换出错概率大的比特位,使数据比特位经过处理后自带了置信度,处理后的数据更准确。本专利技术提出了一种基于双层RAID信息的增强型纠错方法及深度纠错方法,也用到了XOR操作,虽然三个专利中都有XOR操作,但作用点和利用的原理是完全不同的;另外,当遇上一些对于用户来说非常重要的不可纠的数据时,上述两个专利的数据恢复能力方面还存在一定的欠缺。
技术实现思路
本专利技术为了克服以上技术的不足,基于固态存储中有RAID的架构,提供了一种基于双层RAID信息的增强型纠错方法,通过增加一层RAID信息保护即双层RAID的思路,使SSD主控芯片的BCH或RS或LDPC纠错算法的纠错能力增强,通过部分存储空间换寿命,极大的提高纠错能力,进而大幅度提高闪存颗粒的寿命周期。本专利技术还提出了一种深度纠错方法。本专利技术克服其技术问题所采用的技术方案是:一种基于双层RAID信息的增强型纠错方法,当闪存颗粒中出现ECC不可纠的错误数据时,采用的纠错方法包括如下步骤:S1、确定ECC不可纠的数据A的地址,设该数据A在横向RAID行中的位置位于X,其中1≤X≤N,对应的数据记为DATAX,该数据A在纵向RAID行中的位置位于Y’,其中1≤Y’≤M’,对应的数据记为DATAY’,所述DATAX和DATAY’都是数据A,为同一份数据;S2、分别计算出经过横向RAID行恢复和纵向RAID行恢复计算得到的值DRAID和DRAID’,所述DRAID和DRAID’分别是对横向RAID行和纵向RAID行进行异或操作后得到的值;S3、对于不可纠的数据A进行重读,得到新的数据DATANew,并对DATANew进行异或和位与计算得到数据DATAANew。进一步地,步骤S2中,DRAID的数据计算包括如下步骤:根据横向RAID行的绑定规则和数据A的地址,计算出同一横向RAID行中除了数据A以外的其他所有数据的地址,包括该横向RAID行的校验码数据;根据计算得到的地址,读出相应的数据,并将这些数据经过ECC纠错后的输出数据逐一进行异或操作,得到DRAID,所述DRAID的运算式如下:DRAID=DXOR_H^DATA1^DATA2^…^DATA(X-1)^DATA(X+1)^…^DATAN上式中,DXOR_H为横向RAID行的校验码数据,所述DXOR_H=DATA1^DATA2^DATA3^…^DATAN,其中N的数量不受限制,^表示按比特位异或。进一步地,步骤S2中,DRAID’的数据计算包括如下步骤:根据纵向RAID行的绑定规则和数据A的地址,计算出同一纵向RAID行中除了数据A以外的其他所有数据的地址,包括该纵向RAID行的校验码数据;根据计算得到的地址,读出相应的数据,并将这些数据经过ECC纠错后的输出数据逐一进行异或操作,得到DRAID’,所述DRAID’的运算式如下:DRAID’=DXOR_V^DATA1’^DATA2’^…^DATA(Y-1)’^DATA(Y+1)’^…^DATAM’上式中,DXOR_V为纵向RAID行的校验码数据,所述DXOR_V=DATA1’^DATA2’^DATA3’^…^DATAM’,其中M’的数量不受限制,^表示按比特位异或。进一步地,步骤S2中,在分别计算DRAID和DRAID’之前,将经过ECC纠错后的输出数据,无论是否出现ECC不可纠的情况,都逐一进行异或操作。进一步地,步骤S3中,DATAANew的计算公式为:DATAANew=DATANew^((DRAID^DATANew)&(DRAID’^DATANew))。进一步地,步骤S3之后还包括步骤S4,所述步骤S4包括:对经过步骤S3处理得到的一帧新的数据再进行ECC解码。进一步地,经过ECC解码后,判断ECC解码是否成功:若成功,直接返回正确的数据;否则,返回解码失败的信息。本专利技术还提供了一种深度纠错方法,当上述所述的基于双层RAID信息的增强型纠错方法对不可纠的数据A恢复失败时,则执行深度纠错方法,所述深度纠错方法包括如下步骤:(1)查找本文档来自技高网
...

【技术保护点】
1.一种基于双层RAID信息的增强型纠错方法,其特征在于,当闪存颗粒中出现ECC不可纠的错误数据时,采用的纠错方法包括如下步骤:/nS1、确定ECC不可纠的数据A的地址,设该数据A在横向RAID行中的位置位于X,其中1≤X≤N,对应的数据记为DATAX,该数据A在纵向RAID行中的位置位于Y’,其中1≤Y’≤ M’,对应的数据记为DATAY’,所述DATAX和DATAY’都是数据A,为同一份数据;/nS2、分别计算出经过横向RAID行恢复和纵向RAID行恢复计算得到的值DRAID和DRAID’,所述DRAID和DRAID’分别是对横向RAID行和纵向RAID行进行异或操作后得到的值;/nS3、对于不可纠的数据A进行重读,得到新的数据DATANew,并对DATANew进行异或和位与计算得到数据DATAANew。/n

【技术特征摘要】
1.一种基于双层RAID信息的增强型纠错方法,其特征在于,当闪存颗粒中出现ECC不可纠的错误数据时,采用的纠错方法包括如下步骤:
S1、确定ECC不可纠的数据A的地址,设该数据A在横向RAID行中的位置位于X,其中1≤X≤N,对应的数据记为DATAX,该数据A在纵向RAID行中的位置位于Y’,其中1≤Y’≤M’,对应的数据记为DATAY’,所述DATAX和DATAY’都是数据A,为同一份数据;
S2、分别计算出经过横向RAID行恢复和纵向RAID行恢复计算得到的值DRAID和DRAID’,所述DRAID和DRAID’分别是对横向RAID行和纵向RAID行进行异或操作后得到的值;
S3、对于不可纠的数据A进行重读,得到新的数据DATANew,并对DATANew进行异或和位与计算得到数据DATAANew。


2.根据权利要求1所述的方法,其特征在于,步骤S2中,DRAID的数据计算包括如下步骤:
根据横向RAID行的绑定规则和数据A的地址,计算出同一横向RAID行中除了数据A以外的其他所有数据的地址,包括该横向RAID行的校验码数据;
根据计算得到的地址,读出相应的数据,并将这些数据经过ECC纠错后的输出数据逐一进行异或操作,得到DRAID,所述DRAID的运算式如下:
DRAID=DXOR_H^DATA1^DATA2^…^DATA(X-1)^DATA(X+1)^…^DATAN
上式中,DXOR_H为横向RAID行的校验码数据,所述DXOR_H=DATA1^DATA2^DATA3^…^DATAN,其中N的数量不受限制,^表示按比特位异或。


3.根据权利要求2所述的方法,其特征在于,步骤S2中,DRAID’的数据计算包括如下步骤:
根据纵向RAID行的绑定规则和数据A的地址,计算出同一纵向RAID行中除了数据A以外的其他所有数据的地址,包括该纵向RAID行的校验码数据;
根据计算得到的地址,读出相应的数据,并将这些数据经过ECC纠错后的输出数据逐一进行异或操作,得到DRAID’,所述DRAID’的运算式如下:
DRAID’=DXOR_V^DATA1’^DATA2’^…^DATA(Y-1)’^DATA(Y+1)’^…^DATAM’
上式中,DXOR_V为纵向RAID行的校验码数据,所述DXOR_V=DATA1’^DATA2’^DATA3’^…^DATAM...

【专利技术属性】
技术研发人员:廖莎王荣生鲍慧强沈海锋董服洋
申请(专利权)人:杭州阿姆科技有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1