一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据纠错方法、装置、半导体元器件和可读存储介质与流程

2022-06-16 04:45:18 来源:中国专利 TAG:


1.本技术涉及储存技术领域,尤其涉及一种数据纠错方法、装置、半导体元器件和可读存储介质。


背景技术:

2.随着半导体技术的发展,现在的存储器的晶粒(die)越来越薄,层数越来越多,相互层数之间的影响越来越大,导致数据在储存与传输的过程中容易发生错误。此外,随着flash擦写的次数越来越多,其储存在flash里面的数据更容易丢失。而现在的数据纠错技术的纠错能力有限,比如:海明码(hamming code)最多可以纠正一位数据。ldpc(low-density parity-check code)编码一般可以纠正140~160bits/1kb的数据。但是,当数据中的错误位数超过现有纠错技术的纠错能力之后,数据中的错误数据将不能被定位修正,会导致修正失败,进而发生数据丢失。


技术实现要素:

3.鉴于上述问题,本技术提出一种数据纠错方法、装置、半导体元器件和可读存储介质,实现对现有技术中无法纠正的错误进行纠正,保证数据安全。
4.本技术实施例提出一种数据纠错方法,所述方法包括:
5.从存储器中读出数据时,每读出一页的数据,对当前页的数据进行第一次纠错,并判断所述第一次纠错是否成功;
6.若所述第一次纠错失败,则确定所述当前页的低页硬判决比特信息、所述当前页的高页硬判决比特信息、所述当前页的类型和所述当前页的对数似然比;
7.将所述低页硬判决比特信息、所述高页硬判决比特信息、所述类型和所述对数似然比输入至预先训练好纠正模型中,以利用所述纠正模型对所述当前页的数据进行第二次纠错,所述纠正模型包括多个编码器和多个解码器,每一个编码器包括一个自注意力模块,每一个解码器包括一个自注意力模块和一个交叉注意力模块。
8.本技术实施例所述的数据纠错方法,每一个编码器还包括一个前馈神经网络和两个求和与归一化层。
9.本技术实施例所述的数据纠错方法,其每一个解码器还包括一个前馈神经网络和三个求和与归一化层。
10.本技术实施例所述的数据纠错方法,还包括利用以下方法对所述纠正模型进行训练:
11.通过对所述存储器进行多次读写获得i页读出数据;
12.利用硬判决算法和软判决算法对第i页读出数据进行译码,1≤i≤i;
13.若所述硬判决算法对所述第i页读出数据译码成功或者所述软判决算法对所述第i页读出数据译码成功,则将成功结果作为所述第i页读出数据的标签;
14.若所述硬判决算法对所述第i页读出数据译码失败且所述软判决算法对所述第i
页读出数据译码失败,则将失败结果作为所述第i页读出数据的标签;
15.利用带有标签的i页读出数据训练所述纠正模型,直至所述纠正模型对应的损失函数收敛。
16.本技术实施例所述的数据纠错方法,所述损失函数为以下公式:
[0017][0018]
l表示损失函数的损失值,n表示每一次输入至所述纠正模型的读出数据的总页数,n<i,ln表示第n页读出数据的损失值,yn表示第n页读出数据的标签,yn=0或1,pn表示第n页读出数据正确的预测概率。
[0019]
本技术实施例所述的数据纠错方法,所述对当前页的数据进行第一次纠错,并判断所述第一次纠错是否成功,包括:
[0020]
利用硬判决算法和软判决算法对所述当前页的数据进行第一次纠错;
[0021]
若所述硬判决算法对所述当前页的数据译码成功或者所述软判决算法对所述当前页的数据译码成功,则第一次纠错成功;
[0022]
若所述硬判决算法对所述当前页的数据译码失败且所述软判决算法对所述当前页的数据译码失败,则第一次纠错失败。
[0023]
本技术实施例所述的数据纠错方法,还包括:
[0024]
若所述纠正模型输出的概率值大于等于预设的概率阈值,则所述第二次纠错成功;
[0025]
若所述纠正模型输出的概率值小于预设的概率阈值,则所述第二次纠错失败。
[0026]
本技术实施例还提出一种数据纠错装置,所述装置包括:
[0027]
第一纠错单元,用于从存储器中读出数据时,每读出一页的数据,对当前页的数据进行第一次纠错,并判断所述第一次纠错是否成功;
[0028]
信息确定单元,用于若所述第一次纠错失败,则确定所述当前页的低页硬判决比特信息、所述当前页的高页硬判决比特信息、所述当前页的类型和所述当前页的对数似然比;
[0029]
第二纠错单元,用于将所述低页硬判决比特信息、所述高页硬判决比特信息、所述类型和所述对数似然比输入至预先训练好的纠正模型中,以利用所述纠正模型对所述当前页的数据进行第二次纠错。
[0030]
本技术实施例还提出一种半导体元器件,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序在所述处理器上运行时执行本技术实施例所述的数据纠错方法。
[0031]
本技术实施例还提出一种可读存储介质,其存储有计算机程序,所述计算机程序在处理器上运行时执行本技术实施例所述的数据纠错方法。
[0032]
本技术通过在对读出的每一页的数据进行第一次纠错失败后,利用所述纠正模型对所述当前页的数据进行第二次纠错,扩展存储类半导体的纠错能力,提高数据读写效率,并且,由于该纠正模型使用自注意力模块和交叉注意力模块作为主要的计算单元,可以有效实现并行计算,易于进行硬件加速与集成,更适于集成在固态硬盘(solid state disk或solid state drive,简称ssd)等储存产品上。
附图说明
[0033]
为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。
[0034]
图1示出了本技术实施例提出一种数据纠错方法的流程示意图;
[0035]
图2示出了本技术实施例提出一种纠正模型的结构示意图;
[0036]
图3示出了本技术实施例提出一种纠正模型中编码器和解码器的结构示意图;
[0037]
图4示出了本技术实施例提出一种纠正模型训练过程的流程示意图;
[0038]
图5示出了本技术实施例提出一种数据纠错装置的结构示意图。
具体实施方式
[0039]
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
[0040]
通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0041]
在下文中,可在本发明的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
[0042]
此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0043]
除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本发明的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本发明的各种实施例中被清楚地限定。
[0044]
实施例1
[0045]
请参见图1,本技术提出一种数据纠错方法,该方法包括以下步骤:
[0046]
步骤s100,从存储器中读出数据时,每读出一页的数据,对当前页的数据进行第一次纠错,并判断所述第一次纠错是否成功。
[0047]
可以理解,存储器存储数据的最小单元是存储单元,存储单元以一种特殊的组织结构进行排列,形成存储阵列。通常,一个存储阵列包含多个块,块为最小的擦除单元;每一个块包含多个页,页为最小的读写单元。一般一个块包含的页数为16的倍数,每一页是由4到8kb,甚至16kb的存储单元组成。
[0048]
本实施例中,每读出一页的数据,就对该页数据进行第一次纠错。第一次纠错可以利用海明码(error-correcting code)、ldpc(low-density parity-check code)编码等方
式对每读出的一页数据进行初步纠错。
[0049]
本实施例中,对第一次纠错所使用的方法并不做限定,可以利用任一种现有的纠错方法,也可以利用任意多种现有的纠错方法。
[0050]
示例性的,以利用硬判决算法和软判决算法对当前页的数据进行第一次纠错为例,若硬判决算法对当前页的数据译码成功或者软判决算法对当前页的数据译码成功,则可以确定第一次纠错成功,若硬判决算法对当前页的数据译码失败且软判决算法对当前页的数据译码失败,则可以确定第一次纠错失败。
[0051]
具体地,硬判决是根据参考电压直接判决某页中的比特位,对于lsb(leastsignificant bit,最低有效位)来说,当阈值电压小于参考电压时,比特位判定为1;当阈值电压大于参考电压时,比特位判定为0。而软判决则是利用量化的电压区间来计算比特位的可靠性即对数似然比,通过受到干扰后的阈值电压的概率密度函数和参考电压来计算出闪存单元的对数似然比(log likelihood rate,llr)。
[0052]
使用硬判决算法和软判决算法对当前页的数据进行第一次纠错,可以提高第一次纠错的成功率,降低第一次纠错失败率,在第一次纠错成功的情况下,可以无需进行后续步骤,保证整个数据纠错过程的效率。
[0053]
步骤s200,若所述第一次纠错失败,则确定所述当前页的低页硬判决比特信息、所述当前页的高页硬判决比特信息、所述当前页的类型和所述当前页的对数似然比。
[0054]
当前页的类型可以为高页也可以为低页。可以理解,一个存储单元存储两位数据,这两位属于不同的数据页,分别是高页和低页,根据存储单元阈值电压的大小,存储单元被分为四个状态,并且这四个状态被编码为对应的数据“11”、“10”、“00”和“01”左边的是低页对应的数据,右边的是高页对应的数据。若高页对应的读出数据为1,可以确定阈值电压范围为(-∞,vref1]∪(vref3, ∞],若高页对应的读出数据为0,可以确定阈值电压范围为(vref1,vref3],仅根据高页数据确定的阈值电压范围较大;根据同一存储单元中低页对应的读出数据的值,可以进一步确定阈值电压范围为(-∞,vref1]、(vref1,vref2]、(vref2,vref3]和(vref3, ∞)之中的某个范围,由此缩小了阈值电压范围,可以得到更加精确的可以用于纠错的信息。
[0055]
低页硬判决比特信息和高页硬判决比特信息是对当前页进行硬判决后获得的比特信息。
[0056]
步骤s300,将所述低页硬判决比特信息、所述高页硬判决比特信息、所述类型和所述对数似然比输入至预先训练好纠正模型中,以利用所述纠正模型对所述当前页的数据进行第二次纠错。
[0057]
可以将低页硬判决比特信息、高页硬判决比特信息、当前也页的类型和对数似然比编码为一组512bit的数据作为纠正模型输入。
[0058]
若纠正模型输出的概率值大于等于预设的概率阈值,则第二次纠错成功;若纠正模型输出的概率值小于预设的概率阈值,则第二次纠错失败。
[0059]
请参见图2,该纠正模型包括多个编码器和多个解码器,优选的,编码器的总数目和解码器的总数目均为6个。
[0060]
进一步的,请参见图3,纠正模型的每一个编码器包括一个自注意力模块、一个前馈神经网络和两个求和与归一化层。
[0061]
以任一个编码器为例,该编码器的输入数据经过该编码器自身的自注意力模块处理获得的第一输出结果,第一输出结果与输入数据经过该编码器自身的一个求和与归一化层后获得第二输出结果,第二输出结果输入至该编码器自身的前馈神经网络后获得第三输出结果,第二输出结果与第三输出结果经过该编码器自身的另一个求和与归一化层后输出该编码器编码后的编码数据。
[0062]
纠正模型的每一个解码器包括一个自注意力模块、一个交叉注意力模块、一个前馈神经网络和三个求和与归一化层。
[0063]
以任一个解码器为例,该解码器的输入数据经过该解码器自身的自注意力模块处理获得的该解码器的第一输出结果,该解码器的第一输出结果与该解码器的输入数据经过该解码器自身的第一个求和与归一化层后获得该解码器的第二输出结果,该解码器的第二输出结果和该解码器对应的编码器输出的编码数据输入至该解码器的交叉注意力模块以获得该解码器的第三输出结果,该解码器的第三输出结果和该解码器的第二输出结果输入至该解码器的第二个求和与归一化层以获得该解码器的第四输出结果,将该解码器的第四输出结果输入至该解码器的前馈神经网络以获得该解码器的第五输出结果,该解码器的第五输出结果和该解码器的第四输出结果输入至该解码器的第三个求和与归一化层后,获得该解码器的解码数据。
[0064]
值的说明的是,本实施例中,该纠正模型与现有的长短期记忆网络(lstm,long short-term memory)等循环神经网络(recurrent neural network,rnn)模型相比,lstm等rnn架构越往前的输入数据随着距离的增加,信息衰减的越多(也就是说越靠后的数据不能很好的考虑到前面的数据上下文的关系信息),但是该纠正模型不存在这个问题,由于该纠正模型提出了位置编码(positional encoding)解决了数据的时序问题,因此,该纠正模型不管当前数据与其他数据的空间距离有多远,包含其他数据的信息不取决于距离,而取决于两者的相关性。
[0065]
并且,该纠正模型使用自注意力模块和交叉注意力模块作为主要的计算单元,有效实现并行计算,比lstm等rnn架构更容易进行硬件加速与集成,更适于集成在固态硬盘(solid state disk或solid state drive,简称ssd)等储存产品上。
[0066]
本实施例,在对读出的每一页的数据进行第一次纠错失败后,利用所述纠正模型对所述当前页的数据进行第二次纠错,通过第一次纠错和第二次纠错可以扩展存储类半导体的纠错能力,提高数据读写效率,并且,由于该纠正模型使用自注意力模块和交叉注意力模块作为主要的计算单元,可以有效实现并行计算,易于进行硬件加速与集成,更适于集成在固态硬盘(solid state disk或solid state drive,简称ssd)等储存产品上。
[0067]
实施例2
[0068]
请参见图4,本实施例,提出一种对上述实施例1中的纠正模型进行训练的方法,该训练方法包括以下步骤:
[0069]
步骤s10,通过对所述存储器进行多次读写获得i页读出数据。
[0070]
随机选取一定数量的数据,利用该数据反复对存储器(例如,flash)进行多次读写,以获得i页读出数据。
[0071]
步骤s20,利用硬判决算法和软判决算法对第i页读出数据进行译码,1≤i≤i。
[0072]
步骤s30,若所述硬判决算法对所述第i页读出数据译码成功或者所述软判决算法
对所述第i页读出数据译码成功,则将成功结果作为所述第i页读出数据的标签。
[0073]
步骤s40,若所述硬判决算法对所述第i页读出数据译码失败且所述软判决算法对所述第i页读出数据译码失败,则将失败结果作为所述第i页读出数据的标签。
[0074]
步骤s50,利用带有标签的i页读出数据训练所述纠正模型,直至所述纠正模型对应的损失函数收敛。
[0075]
损失函数为以下公式:
[0076][0077]
l表示损失函数的损失值,n表示每一次输入至所述纠正模型的读出数据的总页数,n<i,ln表示第n页读出数据的损失值,yn表示第n页读出数据的标签,yn=0或1,pn表示第n页读出数据正确的预测概率。
[0078]
需要说明的是,若利用上述训练方法使用硬判决算法和软判决算法对每一页读出数据进行译码以确定每一页数据对应的标签,相应的,实施例1中的第一次纠错就需要使用硬判决算法和软判决算法进行纠错,以保证纠正模型的纠正准确率。
[0079]
可以理解,还可以利用硬判决算法或软判决算法依次对i页读出数据中的每一页数据进行译码,若译码成功,可以将成功结果作为对应读出数据的标签,若译码失败,可以将失败结果作为对应读出数据的标签。例如,成功结果可以用1表示,即将1作为成功结果对应的读出数据,失败结果可以用0表示的标签,即将0作为失败结果对应的读出数据的标签。
[0080]
需要说明的是,若利用硬判决算法依次对i页读出数据中的每一页数据进行译码以为每一页数据添加标签,相应的,实施例1中的第一次纠错就需要使用硬判决算法进行纠错,以保证纠正模型的纠正准确率;若利用软判决算法依次对i页读出数据中的每一页数据进行译码以为每一页数据添加标签,相应的,实施例1中的第一次纠错就需要使用软判决算法进行纠错,以保证纠正模型的纠正准确率。
[0081]
实施例3
[0082]
请参见图5,本实施例,提出一种数据纠错装置10包括:第一纠错单元11、信息确定单元12和第二纠错单元13。
[0083]
第一纠错单元11,用于从存储器中读出数据时,每读出一页的数据,对当前页的数据进行第一次纠错,并判断所述第一次纠错是否成功;信息确定单元12,用于若所述第一次纠错失败,则确定所述当前页的低页硬判决比特信息、所述当前页的高页硬判决比特信息、所述当前页的类型和所述当前页的对数似然比;第二纠错单元13,用于将所述低页硬判决比特信息、所述高页硬判决比特信息、所述类型和所述对数似然比输入至预先训练好的纠正模型中,以利用所述纠正模型对所述当前页的数据进行第二次纠错,所述纠正模型包括多个编码器和多个解码器,每一个编码器包括一个自注意力模块,每一个解码器包括一个自注意力模块和一个交叉注意力模块。
[0084]
本实施例公开的数据纠错装置10通过第一纠错单元11、信息确定单元12和第二纠错单元13的配合使用,用于执行上述实施例所述的数据纠错方法,上述实施例所涉及的实施方案以及有益效果在本实施例中同样适用,在此不再赘述。
[0085]
实施例4
[0086]
本实施例,提出一种半导体元器件,包括存储器和处理器,所述存储器存储有计算
机程序,所述计算机程序在所述处理器上运行时执行上述实施例所述的数据纠错方法。
[0087]
实施例5
[0088]
本实施例,提出一种可读存储介质,其存储有计算机程序,所述计算机程序在处理器上运行时执行上述实施例所述的数据纠错方法。
[0089]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0090]
另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
[0091]
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的可读存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0092]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献