CN102929736B - 一种闪存交织校验纠错方法及闪存控制器 - Google Patents

一种闪存交织校验纠错方法及闪存控制器 Download PDF

Info

Publication number
CN102929736B
CN102929736B CN201210405835.6A CN201210405835A CN102929736B CN 102929736 B CN102929736 B CN 102929736B CN 201210405835 A CN201210405835 A CN 201210405835A CN 102929736 B CN102929736 B CN 102929736B
Authority
CN
China
Prior art keywords
sector
data
verification
lpage
chain
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210405835.6A
Other languages
English (en)
Other versions
CN102929736A (zh
Inventor
邢冀鹏
霍文捷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhiyu Technology Co ltd
Original Assignee
Memoright Memoritech Wuhan Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Memoright Memoritech Wuhan Co Ltd filed Critical Memoright Memoritech Wuhan Co Ltd
Priority to CN201210405835.6A priority Critical patent/CN102929736B/zh
Publication of CN102929736A publication Critical patent/CN102929736A/zh
Application granted granted Critical
Publication of CN102929736B publication Critical patent/CN102929736B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种闪存交织校验纠错方法及闪存控制器,若S(m,n)表示闪存物理块中的一个存储扇区,其中,m为该扇区在逻辑页中的序号,m∈[1,M],n为该扇区所处逻辑页的序号,n∈[1,N],在写数据时,S(m,N)扇区不作为数据存储区,而是作为冗余校验区,形成校验链。读数据时,采用通常的校验码纠错失败时,查找同时包含该校验扇区和出错扇区的校验链,计算出错扇区中错误比特的位置,翻转出错扇区中为“1”的比特位上的数据,即得到正确的数据。本发明旨在通过在闪存物理块内部构建交织关联的校验冗余扇区的方式,提高了物理块中扇区信息的冗余度,增强了信息保存的健壮性。

Description

一种闪存交织校验纠错方法及闪存控制器
技术领域
本发明属于数据存储领域,具体为一种适用于闪存的交织纠错技术。该技术增加了闪存器件中数据保存的冗余度,降低了出现不可恢复错误的可能性。这种技术适合应用于固态硬盘控制器、闪存控制器等以闪存器件为存储介质的应用场合中,以延长闪存器件的使用寿命。
背景技术
闪存器件中的存储单元通过向浮栅中注入电子的方式来记录数据,同时存储单元还通过读取阀值电压来判断浮栅中保存的逻辑。当闪存器件经过多次地擦写之后,其物理特性逐渐衰退,从而导致数据错误的增加。
除了闪存器件本身的特性衰退以外,在操作的过程中伴随的各种寄生效应同样增加了数据错误。这些寄生效应有:编程扰动、读扰动、通过扰动以及浮栅耦合效应。当闪存器件进行编程操作时,闪存控制器将抬高字线(Wordline)上的电压,这将导致字线上相邻的存储单元产生意外写动作,即编程扰动。而在位线(Bitline)方向上,同一位线上的存储单元需要加上较高的通过电压,使闪存存储单元导通。反复的写操作会导致位线上的单元发生意外的写动作,即通过扰动。当闪存器件进行多次读操作时,闪存阵列将会反复导通,在闪存存储单元的沟道上会累积电子。若累积的电子达到闪存存储单元的写阈值时,会使闪存的存储单元发生意外写操作。这里,扰动会影响固态硬盘保存的数据正确性,严重的扰动还会降低闪存器件的使用寿命。除此以外,浮栅耦合效应也会带来严重的错误。当闪存工艺不断进步时,器件的密度不断增加,从而导致单一存储单元的浮栅阀值电压的变化对其临近单元的电压产生影响,造成意外的电平移动,产生错误。闪存阵列中某一存储单元的浮栅电压变化会对周围存储单元的浮栅造成扰动,从而导致周围存储单元中保存的数据发生意外翻转。
闪存器件中所存在的物理衰退以及各种耦合效应严重干扰了闪存中所保存的数据,在实际使用的过程中需要纠错算法对闪存中存储的数据进行保护。然而,纠错算法仍然存在失败的可能。因而,闪存控制器还需要一种能够对纠错失败的数据进行校验的方法。
发明内容
为了能够降低闪存存储介质中无法纠正的误码率,本发明提出了闪存交织校验纠错方法及闪存控制器,来提高闪存介质中数据信息的冗余,减少由纠错失败所引起的信息丢失风险。
为解决上述技术问题,本发明首先提出了一种闪存交织校验纠错方法,所述闪存物理块包括个N逻辑页,每个逻辑页包括M扇区,N、M均为偶数,S(m,n)表示物理块中的一个存储扇区,其中,m为该扇区在逻辑页中的序号,m∈[1,M],n为该扇区所处逻辑页的序号,n∈[1,N],其特征在于,
在写数据时,S(m,N)扇区不作为数据存储区,而是作为冗余校验区,且命名为校验扇区E(i,N),i∈[1,M];校验扇区E(i,N)根据下列公式的生成:
当i=1,N时:
E ( i , N ) = S ( i + 1,1 ) ⊕ S ( i , 2 ) ⊕ S ( i + 1,3 ) · · · ⊕ S ( i , N - 2 ) ⊕ S ( i + 1 , N - 1 )
当1<i<N时:
E ( i , N ) = S ( i - 1,1 ) &CirclePlus; S ( i + 1,1 ) &CirclePlus; S ( i , 2 ) &CirclePlus; S ( i - 1,3 ) &CirclePlus; S ( i + 1,3 ) &CenterDot; &CenterDot; &CenterDot;
&CirclePlus; S ( i - 1 , N - 1 ) &CirclePlus; S ( i + 1 , N - 1 )
上式中,公式等号右边的数据扇区S与E(i,N)共同构成了校验链C(i);
在读数据时,闪存控制器采用通常的校验码纠错失败时,首先查找出错扇区S’(i,j)所对应的校验扇区E(i,N),然后,查找同时包含该校验扇区E(i,N)和出错扇区S’(i,j)的校验链C(i);再次,计算获取出错扇区S’(i,j)中错误比特的位置U(i),U(i)可以通过对校验链C(i)中的所有的扇区数据重新进行异或操作来获得,如下公式所示:
当i=1,N时:
U ( i ) = S ( i + 1,1 ) &CirclePlus; S ( i , 2 ) &CirclePlus; S ( i + 1,3 ) &CenterDot; &CenterDot; &CenterDot; &CirclePlus; S ( i , N - 2 ) &CirclePlus; S ( i + 1 , N - 1 ) &CirclePlus; E ( i , N )
当1<i<N时:
U ( i ) = S ( i - 1,1 ) &CirclePlus; S ( i + 1,1 ) &CirclePlus; S ( i , 2 ) &CirclePlus; S ( i - 1,3 ) &CirclePlus; S ( i + 1,3 ) &CenterDot; &CenterDot; &CenterDot;
&CirclePlus; S ( i - 1 , N - 1 ) &CirclePlus; S ( i + 1 , N - 1 ) &CirclePlus; E ( i , N )
最后,U(i)为“1”则表示S’(i,j)在该比特位上的数据信息有错;翻转S’(i,j)中U(i)为“1”的比特位上的数据,即得到正确的数据。
如果所述错误扇区S’(i,j)中的j为奇数,即错误扇区S’(i,j)处于奇数逻辑页时,同时包含该校验扇区E(i,N)和出错扇区S’(i,j)的校验链C(i)存在两条;可是,对所述错误比特的位置U(i)的计算,只需选择其中一条校验链C(i)进行计算。
为进一步提高读写的健壮性,在写数据时,将逻辑页j中的最后一个数据扇区S(M,j)作为补充校验节点E(M,j),j∈(1,N),补充校验节点E(M,j)存储如下计算方式得到的数据:
E ( M , j ) = S ( 1 , j ) &CirclePlus; S ( 2 , j - 1 ) &CirclePlus; S ( 2 , j + 1 ) &CenterDot; &CenterDot; &CenterDot; &CirclePlus; S ( M - 2 , j ) &CirclePlus; S ( M - 1 , j - 1 ) &CirclePlus; S ( M - 1 , j + 1 )
上式中,公式等号右边的数据扇区S与E(M,j)共同构成了补充校验链C’(j);
在读数据时,闪存控制器采用通常的校验码纠错失败时,首先查找出错扇区S’(i,j)所对应的补充校验节点E(M,j),然后,查找同时包含该补充校验节点E(M,j)和出错扇区S’(i,j)的补充校验链C’(j);再次,计算获取出错扇区S’(i,j)中错误比特的位置U(j),U(j)可以通过对补充校验链C’(j)中的所有的扇区数据重新进行异或操作来获得,如下公式所示:
U ( j ) = S ( 1 , j ) &CirclePlus; S ( 2 , j - 1 ) &CirclePlus; S ( 2 , j + 1 ) &CenterDot; &CenterDot; &CenterDot; &CirclePlus; S ( M - 2 , j ) &CirclePlus; S ( M - 1 , j - 1 )
&CirclePlus; S ( M - 1 , j + 1 ) &CirclePlus; E ( M , j )
最后,U(j)为“1”则表示S’(i,j)在该比特位上的数据信息有错;翻转S’(i,j)中U(j)为“1”的比特位上的数据,即得到正确的数据。
本发明同时还提供来一种运用所述闪存交织校验纠错方法的闪存控制器,包括纠错模块、闪存接口,其特征在于,还包括交织校验模块,所述交织校验模块主要由控制单元、序列索引表、数据队列以及快速异或通道共同构成,
当闪存物理块中有数据需要写入时,数据扇区的数据在所述控制单元的控制下,按照校验链的顺序依次放入所述数据队列,然后由所述快速异或通道对数据队列中的数据进行异或操作,生成各个校验扇区数据,最后,所有的校验扇区将依次写入到物理块最后的逻辑页中,完成校验链的生成工作;
在数据的读取过程中,当出现数据扇区纠错失败的情况时,首先,所述序列索引表根据错误扇区的所在位置检索出该错误扇区所对应的校验链序列;所述控制单元则根据校验链序列从闪存芯片中依次读取校验链的扇区,并将读取到的数据内容保存到所述数据队列中;所述快速异或通道则提供了由校验链快速进行异或操作的方式,得到错误扇区的错误位置信息,并通过翻转错误位置上的数据对数据进行恢复。
本发明通过在闪存物理块内部构建交织关联的校验冗余扇区的方式,提高了物理块中扇区信息的冗余度,增强了信息保存的健壮性。此外,本发明还可以通过动态调整的方式,增加经过数据扇区的校验链,使得更多的校验节点与错误节点相关联,从而增加恢复错误节点的可能性。
附图说明
图1.闪存物理块的结构图。
图2.扇区位置示意图。
图3.交织校验运算示意图。
图4.交织校验算法示意图。
图5奇数逻辑页中错误扇区校验示意图。
图6.偶数逻辑页中错误扇区校验示意图。
图7.交织校验模块的连接示意图。
图8.交织校验模块的内部示意图。
图9.交织校验操作的控制流程图。
图10.动态增加校验链的示意图。
具体实施方法
下面结合附图和实例对本发明作进一步详细的说明。
在闪存器件中,物理块由多组逻辑页构成,这些逻辑页又进一步地被划分为多个扇区,扇区的大小根据系统定义的不同可以有512Bytes、256Bytes等多种规格。闪存控制器往往以扇区为基本单位进行访问。具体的物理块逻辑结构如图1所示。物理块由逻辑页1、逻辑页2、逻辑页3……逻辑页N-1、逻辑页N构成(N为偶数)。在逻辑页1中,其又由扇区1、扇区2、扇区3……扇区M-1、扇区M构成(M为偶数)。这样物理块可以看作由多个扇区构成的阵列。
在这个由扇区构成的阵列中,根据扇区所处的位置可以划分为X轴方向、Y轴方向和XY轴方向,如图2所示。S(m,n)表示物理块中的一个存储扇区,其中,m为该扇区在逻辑页中的序号(m∈[1,M]),n为该扇区所处逻辑页的序号(n∈[1,N])。在同一逻辑页中的扇区属于X轴,例如,扇区S(i-1,j)、扇区S(i,j)和扇区S(i+1,j)都属于X轴上相邻扇区。而在垂直方向上,相邻逻辑页中的扇区属于Y轴,例如,扇区S(i,j-1)、扇区S(i,j)和扇区S(i,j+1)都属于Y轴上相邻扇区。而与扇区S(i,j)相邻的扇区S(i-1,j-1)、扇区S(i+1,j-1)、扇区S(i-1,j+1)和扇区S(i+1,j+1)则属于XY轴方向。
由于闪存存储阵列中,存在着严重的寄生效应。在闪存器件集成度不断提高的同时,这些寄生效应愈发显著,特别是浮栅耦合效应。浮栅耦合效应的影响与闪存中存储单元的位置关系有关。在X、Y以及XY轴三个方向中,在X轴以及Y轴上的存储单元受到的干扰较为显著,而在XY轴方向上,存储单元所受干扰较小。
因此,本发明选择对XY轴上相邻扇区进行校验操作,从而提高整个存储阵列的健壮性。如图3所示,本发明将XY轴上实线相连的扇区S(i,j)、扇区S(i-1,j-1)、扇区S(i+1,j-1)、扇区S(i-1,j+1)以及扇区S(i+1,j+1)相异或,并将异或的结果作为校验数据,进行保存。
对于整个物理块中的扇区单元,本发明采取了如图4所示的方式生成校验数据。假设用于存储数据的数据扇区为S(m,n),其中m为该扇区在逻辑页中的序号(1≤m≤M),n为该扇区所处逻辑页的序号(1≤n≤N),那么对于用于校验用途的校验扇区E(i,N),其中i为校验扇区在逻辑页N中的序号(1≤i≤M),可根据如下公式计算得出:
当i=1,N时:
E ( i , N ) = S ( i + 1,1 ) &CirclePlus; S ( i , 2 ) &CirclePlus; S ( i + 1,3 ) &CenterDot; &CenterDot; &CenterDot; &CirclePlus; S ( i , N - 2 ) &CirclePlus; S ( i + 1 , N - 1 )
当1<i<N时:
E ( i , N ) = S ( i - 1,1 ) &CirclePlus; S ( i + 1,1 ) &CirclePlus; S ( i , 2 ) &CirclePlus; S ( i - 1,3 ) &CirclePlus; S ( i + 1,3 ) &CenterDot; &CenterDot; &CenterDot;
&CirclePlus; S ( i - 1 , N - 1 ) &CirclePlus; S ( i + 1 , N - 1 )
其中,生成校验扇区E(i,N)的相关数据扇区与E(i,N)共同构成了一组校验链C(i),例如当i=1时,C(1)由数据扇区S(2,1),S(1,2),S(2,3)……S(2,N-1)以及校验扇区E(1,N))构成;当i=2时,C(2)由数据扇区S(1,1),S(3,1),S(2,2)……S(3,N-1)以及校验扇区E(2,N)构成。
在完成校验扇区的计算以后,交织校验算法可以对闪存操作过程中发生纠错失败的扇区进行数据恢复的操作。对于出错的扇区S’(i,j),交织校验算法首先查找S’(i,j)所对应的校验扇区E(i,N),然后根据该校验扇区E(i,N)所对应的校验链C(i)来进行数据恢复操作。数据恢复操作的关键是要获取出错扇区S’(i,j)中,错误比特的位置U(i)。U(i)可以通过对校验链中的所有的扇区数据重新进行异或操作来获得。
当i=1,N时:
U ( i ) = S ( i + 1,1 ) &CirclePlus; S ( i , 2 ) &CirclePlus; S ( i + 1,3 ) &CenterDot; &CenterDot; &CenterDot; &CirclePlus; S ( i , N - 2 ) &CirclePlus; S ( i + 1 , N - 1 ) &CirclePlus; E ( i )
当1<i<N时:
U ( i ) = S ( i - 1,1 ) &CirclePlus; S ( i + 1,1 ) &CirclePlus; S ( i , 2 ) &CirclePlus; S ( i - 1,3 ) &CirclePlus; S ( i + 1,3 ) &CenterDot; &CenterDot; &CenterDot;
&CirclePlus; S ( i - 1 , N - 1 ) &CirclePlus; S ( i + 1 , N - 1 ) &CirclePlus; E ( i )
计算完成以后,U(i)中为1的数据表示S’(i,j)在该数据位上的数据信息有错;通过翻转S’(i,j)在这些位置上的数据,即可对数据信息进行恢复。
在闪存内部,由于浮栅耦合效应的影响,奇数逻辑页和偶数逻辑页往往具有不同的错误率。根据错误扇区处于奇数逻辑页还是偶数逻辑页,交织校验算法可以使用不同的校验链来进行校验运算。对于出现在奇数逻辑页的错误扇区,交织校验算法可以使用在错误节点上相交的两条校验链进行数据恢复;对于出现在偶数逻辑页的错误扇区,交织校验算法可以使用两条校验链,对数据进行先后两次恢复,从而确保恢复数据的可靠性。这样既提高了交织校验具有足够的健壮性,又降低了恢复处理中的复杂度。图5具体描述了当错误扇区出现在奇数逻辑页时的情况。由于错误扇区所在的位置为校验链C(1)和校验链C(3)经过,因此该错误扇区只需通过检验扇区C(1)或者校验扇区C(3)进行恢复。而在图6中描述了当错误扇区出现在偶数逻辑页时的情况。由于错误扇区仅仅经过了校验链C(4),所以,只用通过校验扇区4进行恢复。这样可以提高错误率较高的逻辑页的冗余度,增强交织校验算法的性能。
如图7所示,为了能够实现该交织校验算法,本发明在闪存控制器中设计了交织校验模块。在闪存控制器与闪存芯片进行通讯的过程中,由闪存芯片读出的数据首先需要经过纠错操作。当纠错操作失败以后,错误扇区将交由交织校验模块进行恢复操作。交织校验模块将通过闪存接口读取错误扇区所在的校验链信息,并通过交织校验算法从校验链中恢复出错误扇区的信息。
交织校验模块主要由控制单元、序列索引表、数据队列以及快速异或通道共同构成,如图8所示。当闪存物理块中有数据需要写入时,交织校验模块需要完成校验链的生成工作。首先,各个数据扇区的数据将正常写入,同时,数据扇区的数据在控制单元的控制下,按照校验链的顺序依次放入数据队列,然后由快速异或通道对数据队列中的数据进行异或操作,生成各个校验扇区,最后,所有的校验扇区将依次写入到物理块最后的逻辑页中,完成校验链的生成工作。
在数据的读取过程中,当出现数据扇区纠错失败的情况时,交织校验模块将开始对错误扇区进行恢复操作。首先,序列索引表根据错误扇区的所在位置检索出该错误扇区所对应的校验链序列;控制单元则根据校验链序列从闪存芯片中依次读取校验链的扇区,并将读取到的数据内容保存到数据队列中;快速异或通道则提供了由校验链快速进行异或操作的方式,得到错误扇区的错误位置信息,并通过翻转错误位置上的数据对数据进行恢复。
图9描述了交织校验模块运行过程中的控制流程。在闪存控制器开始工作以后,若是需要对闪存进行读取操作,则闪存控制器首先开始对来自闪存芯片的数据进行纠错操作,而交织校验模块监听纠错操作的状态。当纠错操作失败时,交织校验模块开始校验运算,并通过校验链恢复出错误扇区,最后被恢复的扇区内容,并重新回写到闪存芯片,从而完成校验恢复的过程。若是闪存控制器对闪存进行写入操作时,则将数据扇区依次进行写入,而交织校验模块则根据数据扇区中的内容生成相应的校验扇区。在数据扇区写入操作完成后,闪存控制器再将校验扇区的内容依次写入,从而完成校验链的生成工作。
此外,当闪存器件中的错误持续增加时,交织校验算法还可以在X轴水平上动态增加新的补充校验链以及补充校验节点的方式,使得更多的校验链通过错误节点,从而增加恢复错误节点的可能性。其方法如图10所示。交织校验算法将逻辑页j中的最后一个数据扇区S(M,j)作为新的补充校验节点E(M,j),j∈(1,N),其计算方式如下所示:
E ( M , j ) = S ( 1 , j ) &CirclePlus; S ( 2 , j - 1 ) &CirclePlus; S ( 2 , j + 1 ) &CenterDot; &CenterDot; &CenterDot; &CirclePlus; S ( M - 2 , j ) &CirclePlus; S ( M - 1 , j - 1 ) &CirclePlus; S ( M - 1 , j + 1 )
这样由S(1,j)、S(2,j-1)、S(2,j+1)……S(M-1,j+1)以及E(M,j)共同构成了补充校验链C’(j)。
当数据发生纠错失败时,交织校验算法将查找出错扇区S’(i,j)所对应的补充校验节点E(M,j),然后,查找同时包含该补充校验节点E(M,j)和出错扇区S’(i,j)的补充校验链C’(j);计算出获取出错扇区S’(i,j)中错误比特的位置U(j),U(j)可以通过对补充校验链C’(j)中的所有的扇区数据重新进行异或操作来获得,如下公式所示:
U ( j ) = S ( 1 , j ) &CirclePlus; S ( 2 , j - 1 ) &CirclePlus; S ( 2 , j + 1 ) &CenterDot; &CenterDot; &CenterDot; &CirclePlus; S ( M - 2 , j ) &CirclePlus; S ( M - 1 , j - 1 )
&CirclePlus; S ( M - 1 , j + 1 ) &CirclePlus; E ( M , j )
最后,U(j)为“1”则表示S’(i,j)在该比特位上的数据信息有错;翻转S’(i,j)中U(j)为“1”的比特位上的数据,即得到正确的数据。这样闪存控制器在侦测到错误数据扇区后,不仅可以通过原有的校验链进行恢复,还能够使用额外的补充校验链对错误数据扇区进行恢复操作,从而提高了恢复错误扇区的成功率,增强了闪存阵列的健壮性。
以上所述为本发明的较佳实施例而已,但本发明不应该局限于该实施例和附图所公开的内容。所以凡是不脱离本发明所公开的精神下完成的等效或修改,都落入本发明保护的范围。

Claims (4)

1.一种闪存交织校验纠错方法,所述闪存物理块包括个N个逻辑页,每个逻辑页包括M个扇区,N、M均为偶数,S(m,n)表示物理块中的一个存储扇区,其中,m为该扇区在逻辑页中的序号,m∈[1,M],n为该扇区所处逻辑页的序号,n∈[1,N],其特征在于,
在写数据时,S(m,N)扇区不作为数据存储区,而是作为冗余校验区,且命名为校验扇区E(i,N),i∈[1,M];校验扇区E(i,N)根据下列公式的生成:
当i=1,M时:
E(i,N)=S(i+1,1)⊕S(i,2)⊕S(i+1,3)…⊕S(i,N-2)⊕S(i+1,N-1)
当1<i<M时:
E(i,N)=S(i-1,1)⊕S(i+1,1)⊕S(i,2)⊕S(i-1,3)⊕S(i+1,3)…
⊕S(i-1,N-1)⊕S(i+1,N-1)
上式中,公式等号右边的数据扇区S与E(i,N)共同构成了校验链C(i);
在读数据时,闪存控制器采用通常的校验码纠错失败时,查找出错扇区S’(i,j)所对应的校验扇区E(i,N),然后,查找同时包含该校验扇区E(i,N)和出错扇区S’(i,j)的校验链C(i),j∈[1,N];计算获取出错扇区S’(i,j)中错误比特位U(i),如下公式所示:
当i=1,N时:
U(i)=S(i+1,1)⊕S(i,2)⊕S(i+1,3)…⊕S(i,N-2)⊕S(i+1,N-1)⊕E(i,N)
当1<i<N时:
U(i)=S(i-1,1)⊕S(i+1,1)⊕S(i,2)⊕S(i-1,3)⊕S(i+1,3)…
⊕S(i-1,N-1)⊕S(i+1,N-1)⊕E(i,N)
U(i)为“1”则表示S’(i,j)在该错误比特位上的数据信息有错;翻转出错扇区S’(i,j)中U(i)为“1”的错误比特位上的数据,即得到正确的数据。
2.根据权利要求1所述的闪存交织校验纠错方法,其特征在于,如果所述出错扇区S’(i,j)中的j为奇数,即出错扇区S’(i,j)处于奇数逻辑页时,同时包含该校验扇区E(i,N)和出错扇区S’(i,j)的校验链C(i)存在两条;可是,对所述错误比特位U(i)的计算,只需选择其中一条校验链C(i)进行计算。
3.根据权利要求1所述的闪存交织校验纠错方法,其特征在于,在写数据时,将逻辑页j中的最后一个数据扇区S(M,j)作为补充校验节点E(M,j),j∈(1,N),补充校验节点E(M,j)存储如下计算方式得到的数据:
E(M,j)=S(1,j)⊕S(2,j-1)⊕S(2,j+1)…⊕S(M-2,j)⊕S(M-1,j-1)⊕S(M-1,j+1)
上式中,公式等号右边的数据扇区S与E(M,j)共同构成了补充校验链C’(j);
在读数据时,闪存控制器采用通常的校验码纠错失败时,首先查找出错扇区S’(i,j)所对应的补充校验节点E(M,j),然后,查找同时包含该补充校验节点E(M,j)和出错扇区S’(i,j)的补充校验链C’(j);再次,计算获取出错扇区S’(i,j)中错误比特位U(j),如下公式所示:
U(j)=S(1,j)⊕S(2,j-1)⊕S(2,j+1)…⊕S(M-2,j)⊕S(M-1,j-1)
⊕S(M-1,j+1)⊕E(M,j)
最后,U(j)为“1”则表示S’(i,j)在该比特位上的数据信息有错;翻转S’(i,j)中U(j)为“1”的比特位上的数据,即得到正确的数据。
4.一种运用权利要求1或2或3所述闪存交织校验纠错方法的闪存控制器,包括纠错模块、闪存接口,其特征在于,还包括交织校验模块,所述交织校验模块主要由控制单元、序列索引表、数据队列以及快速异或通道共同构成,
当闪存物理块中有数据需要写入时,数据扇区的数据在所述控制单元的控制下,按照校验链的顺序依次放入所述数据队列,然后由所述快速异或通道对数据队列中的数据进行异或操作,生成各个校验扇区数据,最后,所有的校验扇区将依次写入到物理块最后的逻辑页中,完成校验链的生成工作;
在数据的读取过程中,当出现数据扇区纠错失败的情况时,首先,所述序列索引表根据出错扇区的所在位置检索出该出错扇区所对应的校验链序列;所述控制单元则根据校验链序列从闪存芯片中依次读取校验链的扇区,并将读取到的数据内容保存到所述数据队列中;所述快速异或通道则提供了由校验链快速进行异或操作的方式,得到出错扇区的错误比特位信息,并通过翻转错误比特位上的数据对数据进行恢复。
CN201210405835.6A 2012-10-23 2012-10-23 一种闪存交织校验纠错方法及闪存控制器 Active CN102929736B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210405835.6A CN102929736B (zh) 2012-10-23 2012-10-23 一种闪存交织校验纠错方法及闪存控制器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210405835.6A CN102929736B (zh) 2012-10-23 2012-10-23 一种闪存交织校验纠错方法及闪存控制器

Publications (2)

Publication Number Publication Date
CN102929736A CN102929736A (zh) 2013-02-13
CN102929736B true CN102929736B (zh) 2016-05-11

Family

ID=47644542

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210405835.6A Active CN102929736B (zh) 2012-10-23 2012-10-23 一种闪存交织校验纠错方法及闪存控制器

Country Status (1)

Country Link
CN (1) CN102929736B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104932951B (zh) * 2015-07-12 2017-09-05 符方晓 一种nand闪存出现ecc无法纠错时的数据恢复方法
CN105242982B (zh) * 2015-10-22 2018-05-15 宁波三星医疗电气股份有限公司 用于采用了nand flash的电力采集终端的纠错方法
CN107704338B (zh) * 2017-08-22 2020-10-30 深圳市硅格半导体有限公司 一种资料储存型闪存的数据恢复方法和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1558556A (zh) * 2004-02-09 2004-12-29 清华大学 非规则低密度奇偶校验码的系统码设计方法及其通信系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW569188B (en) * 2001-02-07 2004-01-01 Media Tek Inc Method and apparatus for error processing in optical disk memories
TWI473117B (zh) * 2008-06-04 2015-02-11 A Data Technology Co Ltd 具資料修正功能之快閃記憶體儲存裝置
US8473815B2 (en) * 2008-12-22 2013-06-25 Industrial Technology Research Institute Methods and systems of a flash memory controller and an error correction code (ECC) controller using variable-length segmented ECC data

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1558556A (zh) * 2004-02-09 2004-12-29 清华大学 非规则低密度奇偶校验码的系统码设计方法及其通信系统

Also Published As

Publication number Publication date
CN102929736A (zh) 2013-02-13

Similar Documents

Publication Publication Date Title
US11941257B2 (en) Method and apparatus for flexible RAID in SSD
US7254754B2 (en) Raid 3+3
US8438455B2 (en) Error correction in a solid state disk
CN102708019B (zh) 一种硬盘数据恢复方法、装置及系统
CN103389920B (zh) 一种磁盘坏块的自检测方法和装置
US8700951B1 (en) System and method for improving a data redundancy scheme in a solid state subsystem with additional metadata
US7640452B2 (en) Method for reconstructing data in case of two disk drives of RAID failure and system therefor
CN104035830A (zh) 一种数据恢复方法和装置
CN104156174A (zh) 基于条带的固态硬盘raid实现方法及装置
CN101916173B (zh) 一种基于raid的数据读写方法及其系统
CN107766172A (zh) 用于ddr sdram接口的dram辅助纠错机制
CN103578565B (zh) 一种NAND Flash存储芯片的校验方法及装置
CN101379566B (zh) 用于修复高速缓存阵列中单元的装置、系统和方法
CN103336727B (zh) 对nand闪存存储设备进行数据操作的方法
CN103365739B (zh) 一种nand闪存存储设备及其数据恢复方法
CN104240768A (zh) 用于测试存储器的方法和存储器系统
US9063869B2 (en) Method and system for storing and rebuilding data
CN108228382B (zh) 一种针对evenodd码单盘故障的数据恢复方法
CN105808371A (zh) 数据备份与恢复方法、控制芯片及存储装置
CN102929736B (zh) 一种闪存交织校验纠错方法及闪存控制器
CN101339525A (zh) 一种对数据进行错误检测的方法、系统和设备
CN104407821A (zh) 一种实现raid重构的方法及装置
CN105630417B (zh) 一种raid5系统及在raid5系统失效后继续写数据的方法
CN102063340A (zh) 一种提高磁电阻随机存储器高速缓存抗错能力的方法
CN103279402A (zh) 基于多层单元固态硬盘的数据恢复方法及固态硬盘

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: 430070 Hubei city of Wuhan province Wuhan East Lake New Technology Development Zone Road No. two high Guan Nan Industrial Park No. 2 building 2-3 floor West

Applicant after: MEMORIGHT (WUHAN) Co.,Ltd.

Address before: 430070 Hubei city of Wuhan province Kuanshan road Optics Valley Software Park building C3 on the third floor 301-303 room

Applicant before: MEMORIGHT (WUHAN) Co.,Ltd.

C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 430070 Hubei city of Wuhan province Wuhan East Lake New Technology Development Zone Road No. two high Guan Nan Industrial Park No. 2 building 2-3 floor West

Patentee after: EXASCEND TECHNOLOGY (WUHAN) CO.,LTD.

Address before: 430070 Hubei city of Wuhan province Wuhan East Lake New Technology Development Zone Road No. two high Guan Nan Industrial Park No. 2 building 2-3 floor West

Patentee before: MEMORIGHT (WUHAN) Co.,Ltd.

PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A flash memory interleaving verification and error correction method and flash memory controller

Effective date of registration: 20211021

Granted publication date: 20160511

Pledgee: Bank of Hankou Limited by Share Ltd. Financial Services Center

Pledgor: EXASCEND TECHNOLOGY (WUHAN) Co.,Ltd.

Registration number: Y2021420000115

CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 430000 west of 2-3 / F, No.2 factory building, Guannan Industrial Park, No.1 Gaoxin 2nd Road, Wuhan Donghu New Technology Development Zone, Wuhan City, Hubei Province

Patentee after: Zhiyu Technology Co.,Ltd.

Address before: 430070 Wuhan, Hubei Wuhan East Lake New Technology Development Zone, high-tech two Road No. 1 South Guan Industrial Park 2 factory 2-3 floor West.

Patentee before: EXASCEND TECHNOLOGY (WUHAN) CO.,LTD.