CN101976584B - 准循环低密度奇偶校验码译码器及译码方法 - Google Patents
准循环低密度奇偶校验码译码器及译码方法 Download PDFInfo
- Publication number
- CN101976584B CN101976584B CN 201010523510 CN201010523510A CN101976584B CN 101976584 B CN101976584 B CN 101976584B CN 201010523510 CN201010523510 CN 201010523510 CN 201010523510 A CN201010523510 A CN 201010523510A CN 101976584 B CN101976584 B CN 101976584B
- Authority
- CN
- China
- Prior art keywords
- syndrome
- sequence
- decoded
- module
- code
- 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
Links
Images
Landscapes
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明公开了一种准循环低密度奇偶校验码译码器,应用于固态硬盘纠错系统,译码器包括:伴随式计算模块,用于计算待译码序列的伴随式;判断控制模块,用于判断伴随式是否为全零向量,若为是则控制结束伴随式计算并输出当前码序列作为译码结果;查找模块,用于当伴随式不为全零向量时,计算待译码序列中不满足校验方程的码元个数的集合,查找集合中最大值的位置;翻转控制模块,用于将待译码序列中与集合中最大值位置对应的码元进行翻转,并将更新后的待译码序列输入伴随式计算模块。本发明相应提供一种准循环低密度奇偶校验码译码方法。借此,本发明能在纠错完成时控制结束伴随式计算,降低译码周期及译码延迟。
Description
技术领域
本发明涉及固态硬盘纠错系统和方法,尤其涉及一种准循环低密度奇偶校验码(QC-LDPC)译码器及译码方法。
背景技术
目前应用于固态硬盘的纠错技术主要是BCH技术,编码过程通过线性反馈移位寄存器实现,寄存器的数目和纠错能力要求成正比;译码过程分为三部分,首先是伴随式计算,随后是关键方程求解,最后是钱搜索过程。这种技术译码过程复杂,导致硬件实现电路复杂,需要付出延迟和芯片面积的代价。随着工艺水平提高,闪存阵列页单元增大,纠错的扇区大小从512B向1KB发展,码长增加同时要求纠错能力也增加。而随着码长和纠错能力要求的增加,要求更大的伽罗瓦域,编码解码算法在更高数量级上进行,传统的BCH纠错技术变得更复杂,硬件实现复杂程度和成本将大幅度增加。在大的伽罗瓦域进行编码译码设计时,需要利用计算机进行复杂的设计运算,一般的计算机显然不能满足要求。
同时,随着MLC(Multi-Level Cell,多层单元闪存)成为主流闪存,对纠错能力的要求不断提高。其出错主要原因包括浮栅晶体管单元之间的干扰和一个单元内不同层次信息之间的互相干扰,体现在影响阈值电压的分布上。BCH码对于MLC这种出错的修正能力有限,因此成为阻碍MLC Flash发展的因素。传统BCH纠错技术对于特定的应用纠错位数是固定的,意味着在译码过程中即使发生错误个数少于设定纠错位数时,译码过程中的伴随式计算耗费的时钟周期没有减少,浪费了不必要的时钟周期。更多的比特信息存储在一个浮栅晶体管单元上,存储密度的大幅度提升,要求更低误比特率,这些要求对BCH提出了巨大的挑战,实现变得复杂甚至困难,而纠错性能则严重下降。
综上可知,现有固态硬盘纠错系统及方法在实际使用上,显然存在不便与缺陷,所以有必要加以改进。
发明内容
针对上述的缺陷,本发明的目的在于提供一种准循环低密度奇偶校验码译码器及译码方法,其能在纠错完成时,控制结束伴随式计算,降低译码周期及译码延迟。
为了实现上述目的,本发明提供一种准循环低密度奇偶校验码译码器,应用于固态硬盘纠错系统,所述译码器包括:
伴随式计算模块,用于计算待译码序列的伴随式;
判断控制模块,用于判断所述伴随式是否为全零向量,若为是则控制结束伴随式计算并输出当前码序列作为译码结果;
查找模块,用于当所述伴随式不为全零向量时,计算所述待译码序列中不满足校验方程的码元个数的集合,查找所述集合中最大值的位置;
翻转控制模块,用于将所述待译码序列中与所述集合中最大值位置对应的码元进行翻转,并将更新后的待译码序列输入所述伴随式计算模块。
根据本发明的译码器,所述判断控制模块还包括迭代次数判断模块,用于当译码迭代次数达到预设的最大迭代次数时停止译码。
根据本发明的译码器,所述译码器还包括数据序列寄存器,用于从固态硬盘读出并缓存所述待译码序列。
根据本发明的译码器,所述判断控制模块还用于在所述伴随式为全零向量时控制结束所述查找模块的运行。
根据本发明的译码器,所述校验矩阵为由m行n列的b维准循环方阵Q组成,所述准循环方阵Q的每一行是上一行右移一位的结果,第一行是最后一行右移一位的结果。
根据本发明的译码器,所述伴随式计算模块为顺序电路结构或者并行电路结构,所述并行电路结构包括m个并行设置的顺序电路结构。
根据本发明的译码器,所述顺序电路结构包括:
第一寄存器组,用于存储校验矩阵位;
第二寄存器组,用于缓存伴随式计算中间结果;
运算单元,用于对按位输入的待译码序列和校验矩阵位按位进行“与”运算,得到的结果与所述第二寄存器组缓存的伴随式计算中间结果按位进行“异或”运算,并将“异或”运算结果缓存到所述第二寄存器组,并对所述第一寄存器组中存储的校验矩阵位进行移位。
根据本发明的译码器,所述固态硬盘纠错系统包括缓冲寄存器、通道控制器、闪存以及ECC模块,所述ECC模块包括准循环低密度奇偶校验码编码器和准循环低密度奇偶校验码译码器。
本发明还提供一种准循环低密度奇偶校验码译码方法,应用于固态硬盘纠错系统,所述译码方法包括:
伴随式计算步骤,计算所述待译码序列的伴随式;
判断控制步骤,判断所述伴随式是否为全零向量,若为是则控制结束伴随式计算并输出当前码序列作为译码结果;
查找步骤,若所述伴随式不为全零向量,则计算所述待译码序列中不满足校验方程的码元个数的集合,查找所述集合中最大值的位置;
翻转控制步骤,将所述待译码序列中与所述集合中最大值位置对应的码元进行翻转,更新所述待译码序列并回到所述伴随式计算步骤。
根据本发明的译码方法,所述判断控制步骤还包括:若译码迭代次数达到预设的最大迭代次数则停止译码。
本发明通过对固态硬盘存储阵列读出的待译码序列进行伴随式的计算,并判断所述待译码序列的伴随式是否为全0向量,如果为全0向量则直接输出码序列作为译码结果,并结束伴随式计算,如果不为全0向量则计算所述待译码序列不满足校验方程的码元个数的集合,查找该集合中最大值的位置,通过翻转控制模块翻转待译码序列中与该最大值位置对应的数据,再把更新后的待译码序列输入到伴随式计算模块中再次计算伴随式,检验是否满足校验矩阵,重复上述操作,直到输出正确序列或者达到最大译码次数。与传统的BCH算法相比,本发明在纠错完成后停止伴随式的计算,控制结束伴随式计算,降低译码周期及译码延迟。
优选的,本发明可以根据应用情况采用顺序或者并行电路结构优化系统性能,提高效率,降低了芯片面积,减小成本。
附图说明
图1是本发明准循环低密度奇偶校验码译码器的原理结构图;
图2是本发明伴随式计算模块的顺序电路结构图;
图3是本发明伴随式计算模块的并行电路结构图;
图4是本发明查找模块的顺序电路结构图;
图5是本发明查找模块的并行电路结构图;
图6是本发明准循环低密度奇偶校验码译码方法的流程图;
图7是本发明实施例提供的准循环低密度奇偶校验码译码具体流程图;
图8是本发明固态硬盘纠错系统的系统结构图;
图9是本发明QC-LDPC编码器一种实施例的电路结构图;
图10是本发明QC-LDPC编码器另一实施例的电路结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明一种准循环低密度奇偶校验码(QC-LDPC)译码器10,应用于固态硬盘纠错系统100,采用Bit Flipping进行译码。译码器10包括伴随式计算模块11、判断控制模块12、查找模块13以及翻转控制模块14、数据序列寄存器15以及迭代次数判断模块16。
伴随式计算模块11,用于计算待译码序列的伴随式。伴随式计算模块11的电路结构可采用如图2所示的顺序电路结构或者如图3所示的并行电路结构,并行电路结构包括m个并行设置的顺序电路结构。
判断控制模块12,用于判断所述伴随式是否为全零向量,用于在伴随式为全零向量时控制结束伴随式计算并输出当前码序列作为译码结果。判断控制模块12还用于在伴随式为全零向量时控制结束所述查找模块的运行。同时,判断控制模块12还包括迭代次数判断模块,用于当译码迭代次数达到预设的最大迭代次数时停止译码。
查找模块13,用于当伴随式不为全零向量时,计算待译码序列中不满足校验方程的码元个数的集合,查找集合中最大值的位置。
翻转控制模块14,用于将待译码序列中与集合中最大值的位置相对应的码元进行翻转,并将更新后的待译码序列输入伴随式计算模块11继续进行伴随式计算。
数据序列寄存器15,用于从固态硬盘读出并缓存待译码序列。在译码开始时,数据序列寄存器15存储从固态硬盘存储阵列中读取的初始待译码序列;在译码进行过程中,数据序列寄存器15缓存经过码元翻转处理的待译码序列;在译码结束时,数据序列寄存器15中存储的译码完成的码序列或译码失败的码序列。
从固态硬盘存储阵列读出的初始待译码序列存放在数据序列寄存器15中,在控制信号有效时,数据序列寄存器15将初始待译码序列发送给伴随式计算模块11;伴随式计算模块11开始对待译码序列进行伴随式计算,得到待译码序列的伴随式以后;判断控制模块12判断伴随式是否为全0向量,如果是则直接输出当前码序列作为译码结果并控制结束伴随式计算;如果不是则查找模块13计算待译码序列中不满足校验方程的码元个数的集合,查找出该集合的最大值以及最大值的位置;翻转控制模块14翻转待译码序列中与该集合中最大值位置对应的码元,更新数据序列寄存器15中的待译码序列,数据序列寄存器15再把更新了的待译码序列输入到伴随式计算模块11中检验是否满足校验矩阵,重复上述操作,直到译码正确或者迭代译码次数达到预设的最大迭代次数。与传统的BCH算法相比,本发明在纠错完成后停止伴随式的计算,控制结束伴随式计算,降低译码周期及译码延迟。
根据本发明的实施例,伴随式计算模块10的电路结构可采用如图2所示的顺序电路结构或者如图3所示的并行电路结构,并行电路结构包括m个并行设置的顺序电路结构。假设待译码序列为R且R=(R1,R2,...,Rnb),首先通过计算伴随式判断待译码序列是否满足校验矩阵,该待译码序列R的伴随式为:
S=(S1,S2,...,Smb)=R×HT (1)
考虑到校验矩阵是由循环方阵构成的矩阵,对伴随式进行分组得到:
S=[S1,S2,...,Sm],Si=[S(i-1)b+1,S(i-1)b+2,...,Sib](1≤i≤m)(2)
校验矩阵H由m行n列的b维方阵Q组成,准循环方阵Q每一行是上一行右移一位的结果,第一行是最后一行右移一位的结果,假设长度为b的向量为第i行j列(1≤i≤m,1≤j≤n)方阵Q的第一行,那么循环移位k次的结果是(0≤k≤b-1),所有这些循环的结果构成了方阵Q。把校验矩阵和待译码序列R进行分组以简化译码电路,则有:
R=[R1,R2,...,Rn],Ri=[R(i-1)b+1,R(i-1)b+2,...,Rib](1≤i≤n)(3)
HT=[h1,h2,...,hm],hi=[Qi,1,Qi,2,...Qi,n]T(1≤i≤m)(4)
则伴随式计算如下:
Si=R×hi=R1×Qi,1+R2×Qi,2+....+Rn×Qi,n(1≤i≤m)(5)
展开得到:
根据式(1)、(2)、(5)和(6),伴随式的计算电路可用图2所示的顺序电路结构实现。该顺序电路结构包括用于存储校验矩阵位的第一寄存器组111、用于缓存伴随式计算中间结果的第二寄存器组112以及运算单元113。
进行伴随式计算时,第二寄存器组112初始化为0,第一寄存器组111存储初始校验矩阵位为准循环方阵Q的第一行数据。在控制信号有效且触发时钟有效时,输入待译码序列的第一位数据到运算单元113和第一寄存器组111中每一位数据进行“与”运算,运算的结果再和第二寄存器组112(初始为0)“异或”运算,并把结果缓存到第二寄存器组112,同时对第一寄存器组111进行移位,这样第一寄存器组111中的校验矩阵位变为在下一个时钟触发到来时,输入待译码序列第二位与第一寄存器组111中的校验矩阵位进行“与”运算,运算结果再和第二寄存器组112中缓存的伴随式计算中间结果进行“异或”运算,并更新“异或”运算的结果到第二寄存器组112,如此重复进行移位和运算操作,直到输入全部待译码序列,此时得到伴随式组S1,再次重新输入待译码序列计算下一组伴随式,直到计算出所有伴随式。对于m组伴随式,需要输入m次全部的待译码序列。
上述图2所示的顺序电路结构芯片面积比较小,节省硬件成本,但是译码时间长。也可根据应用情况选用如图3所示的并行电路结构,并行电路结构采用m个顺序电路并行的方法,其包括m个并行设置的顺序电路,同时计算m组伴随式,这样只需要输入一次待译码序列就可计算出伴随式,译码时间是图(2)所示顺序电路的m分之一,但是硬件成本是顺序电路的m倍。在追求编码速度的系统中可以采用图3所示电路结构。采用该并行电路结构计算伴随式时,不同顺序电路中的第一移位寄存器组111初始存放不同的准循环方阵Q的第一行数据,待译码序列从第一位开始顺序输入,每个顺序电路都同时接收到同样的输入数据,在不同的校验方阵Q下运算得到不同的伴随式组,每个顺序电路计算一组伴随式。
在图2和图3中,控制信号由判断控制模块12产生。
判断控制模块12根据待译码的伴随式计算结果S=(S1,S2,...,Smb),比较S是否为全0向量,如果是则表示待译码序列满足校验方程,发出序列控制信号到数据序列寄存器15输出当前码序列作为译码结果,同时把伴随式计算的控制信号驱动为无效,终止不满足校验方程的码元个数计算和伴随式的计算;如果不全为0,说明待译码序列中存在错误需要纠错,则驱动伴随式计算控制信号为有效,计算待译码序列中不满足校验方程的码元个数和准备进行下一步伴随式的计算。
如图2和图3所示,控制信号与待译码序列输入连接到一与门的输入端,该与门的输出端与运算单元113的数据输入端连接。当控制信号为0时,与门输出一直为0,待译码序列的变化在与门的输出端没有反映,第一寄存器组111的数值也传递不到运算单元113的下一层,运算单元113中的与门输出也为0,电平信号和0异或的结果不变,因此第二寄存器组112中的数据保持不变。换言之,当控制信号为0时,待译码序列不能输入到伴随式计算模块,伴随式计算结果保持不变,也就是说伴随式计算模块11停止工作。因此,当伴随式为0纠错完成时,判断控制模块12就发出值为0的控制信号到伴随式计算模块11终止伴随式计算,降低不必要的时钟浪费。伴随式不全为0时,则继续纠错,判断控制模块12将控制信号置为高电平,伴随式计算模块11继续运行。
查找模块13用于当伴随式S不为全零向量时,计算待译码序列R中不满足校验方程的码元个数的集合,并查找该集合中最大值的位置。根据本发明的实施例,不满足校验方程的码元个数的集合为f=(f1,f2,...,fnb)=S×H。其中:
S=(S1,S2,...,Sm),Si=[S(i-1)b+1,S(i-1)b+2,...,Sib](1≤i≤m)(7)
H=[h1,h2,...,hn],hi=[Qi,1,Qi,2,...Qi,m]T(1≤i≤n)(8)
f=[f1,f2,..,fn],fi=[f(i-1)b+1,f(i-1)b+2,...,fib](1≤i≤m)(9)
从而有:
fi=S×hi=S1×Qi,1+S2×Qi,2+....+Sm×Qi,m(1≤i≤n)(10)
继续展开有:
校验矩阵H是准循环的稀疏矩阵,同样可以参考伴随式计算的分组方法使用移位寄存器组实现计算。比较式(5)、(6)和式(10)、(11)可发现,计算不满足校验方程的码元个数的集合和计算待译码序列的伴随式原理是一样的,因此查找模块13可采用与伴随式计算模块相同的电路结构,输入信号由待译码序列输入变为伴随式输入,如图4所示;类似地,为了增加计算速度,可采用并行的计算电路结构,如图5所示。由上述电路结构运算得到不满足校验方程的码元个数的集合f=(f1,f2,...,fnb),该集合中每一个元素与待译码序列R=(R1,R2,...,Rnb)中的码元一一对应,同时查找模块13查找不满足校验方程的码元个数的集合f中的最大值fk并确定其位置。
翻转控制模块14用于翻转待译码序列R=(R1,R2,...,Rnb)中与集合f中的最大值fk位置相对应的码元Rk。把更新后的待译码序列再次输入到伴随式计算模块11中检验是否满足校验方程,若满足则终止伴随式计算并输出当前码序列,否则进行位翻逐个纠错,直到伴随式计算结果满足校验方程,如果译码迭代次数达到预设的最大迭代次数时伴随式仍然没有满足校验方程,则译码失败,停止译码。
如图6所示,本发明相应提供一种准循环低密度奇偶校验码译码方法,其通过如图1所示的系统实现,所述方法包括如下流程:
步骤S601,计算译码序列的伴随式,本步骤通过伴随式计算模块11实现。初始待译码序列从固态硬盘读出,存储于数据序列寄存器15中,进行伴随式计算时,数据序列寄存器15将待译码序列发送给伴随式计算模块11。
步骤S602,判断伴随式是否为全零向量,若为是则控制结束伴随式计算并输出当前码序列作为译码结果,本步骤通过判断控制模块12实现。
步骤S603,若伴随式不为全零向量,则计算待译码序列中不满足校验方程的码元个数的集合,查找该集合中最大值的位置,本步骤通过查找模块13实现。
步骤S604,将待译码序列中与该集合中最大值位置对应的码元进行翻转,更新待译码序列并回到伴随式计算步骤。本步骤通过翻转控制模块14实现。
图7示出了本发明实施例提供的准循环低密度奇偶校验码译码具体流程,其包括如下步骤:
步骤S701,对待译码序列进行伴随式计算。
步骤S702,判断伴随式是否全为0。
步骤S703,若为是,则输出码序列。
步骤S704,若为否,则判断是否达到最大迭代次数。
步骤S705,若为是,则译码失败。
步骤S706,若为否,则计算待译码序列中不满足校验方程的码元个数的集合。
步骤S707,根据不满足校验方程的码元个数集合的最大值的位置,翻转待译码序列中对应的码元,并回到步骤S701。
如图8所示,本发明的固态硬盘纠错系统100包括缓冲寄存器20、通道控制器30、闪存40以及ECC模块50,ECC模块50包括QC-LDPC编码器60和QC-LDPC译码器10。
QC-LDPC编码器60的电路结构如图9和图10所示。QC-LDPC码校验矩阵H由m行和n列的b维方阵Q组成,通常情况下m<n,那么H是m×b行、n×b列的稀疏矩阵。其中的b维方阵Q是准循环方阵,每一行是上一行右移一位的结果,第一行是最后一行右移一位的结果,假设长度为b的向量为第i行j列(1≤i≤m,1≤j≤n)方阵Q的第一行,那么循环移位k次的结果是(0≤k≤b-1),这样就构成了方阵Q。根据校验矩阵H设计的生成矩阵G满足G×HT=0,生成矩阵G具有和校验矩阵H同样的维度,只是其中的b维方阵Q不一样。
假设待编码数据是大小为m×b的向量C,C=(C1,C2,...,Cmb),把向量C分为m部分Ci(i=1,2,...,m),Ci=(C(i-1)b+1,C(i-1)b+2,...Cib)为大小为b的向量。编码过程是将待编码数据乘以生成矩阵G,得到已编码数据V=C×G=(V1,V2,...,Vnb),且V也可以分为n部分,每个部分为大小为b的向量,即V=(V1,V2,...,Vn),根据V=C×G得:
Vi=C1×G1,i+C2×G2,i+...+Cm×Gm,i(1≤i≤n)(14)
把式(1)其中每项展开有:
根据式(14)、(15)的结果,得到如图3的编码器结构,其包括:b bits寄存器组A,运算单元以及b bits寄存器组B,其中,寄存器组A与寄存器组B为移位寄存器组。
进行编码时,移位寄存器组A存储(0≤k≤b-1)(这里的数据向量(0≤k≤b-1)和译码过程中的(0≤k≤b-1)不一定相同,因为经过生成矩阵和校验矩阵中的准循环方阵Q不一定相同),移位寄存器组B初始化为全0。待编码数据C的第一位输入运算单元后和移位寄存器组A的数据进行“与”运算后把结果寄存到寄存器组B并对寄存器组A进行一次移位变成第二位待编码数据进入运算单元后和进行“与”运算后和寄存器组B的数据进行“异或”运算并把结果更新到寄存器组B,重复进行上述过程直到待编码数据输入结束,此时在寄存器组B中存储的是已编码数据V1,输出该组数据并清零寄存器组B,对寄存器组A进行重新赋值进行V2的运算,依次类推,直到编码完成。图9所示电路结构需通过多次移位完成编码,编码时间较长,如需要快的编码速度,可使用图10的编码结构,以硬件成本换取快的编码速度。
本发明提出了基于准循环低密度奇偶校验码(QC-LDPC)的固态硬盘纠错技术,在译码技术上作出了改进,提供了顺序电路结构和并行电路结构两种译码电路结构,可根据不同的系统选择合适的译码电路结构进行设计,同时提供了两种编码方案供选择。使用准循环低密度奇偶校验码进行编码和译码,和传统BCH技术相比,在编码成本相差不大的情况下,大大的降低了译码电路的复杂程度,降低了译码延迟时间,提高效率,降低了芯片面积,减小了成本。在未来具有更长码长的MLC Flash Memory中,QC-LDPC的误比特率比BCH低很多,纠错性能更好,同时,具有更简单的编码译码电路结构和更低的成本。
综上所述,本发明通过对固态硬盘存储阵列读出的待译码序列进行伴随式的计算,并判断所述待译码序列的伴随式是否为全0向量,如果为全0向量则直接输出码序列作为译码结果,并结束伴随式计算,如果不为全0向量则计算所述待译码序列不满足校验方程的码元个数的集合,查找该集合中最大值的位置,通过翻转控制模块翻转待译码序列中与该最大值位置对应的数据,再把更新后的待译码序列输入到伴随式计算模块中再次计算伴随式,检验是否满足校验矩阵,重复上述操作,直到输出正确序列或者达到最大译码次数。与传统的BCH算法相比,本发明在纠错完成后停止伴随式的计算,控制结束伴随式计算,降低译码周期及译码延迟。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (9)
1.一种准循环低密度奇偶校验码译码器,应用于固态硬盘纠错系统,其特征在于,所述译码器包括:
数据序列寄存器,用于从固态硬盘读出并缓存待译码序列,在控制信号有效时,所述数据序列寄存器将所述待译码序列发送给伴随式计算模块;
伴随式计算模块,用于计算待译码序列的伴随式;
判断控制模块,用于判断所述伴随式是否为全零向量,若为是则控制结束伴随式计算并输出当前码序列作为译码结果;
查找模块,用于当所述伴随式不为全零向量时,计算所述待译码序列中不满足校验方程的码元个数的集合,查找所述集合中最大值的位置;
翻转控制模块,用于将所述待译码序列中与所述集合中最大值位置对应的码元进行翻转,并将更新后的待译码序列输入所述伴随式计算模块。
2.根据权利要求1所述的译码器,其特征在于,所述判断控制模块还包括迭代次数判断模块,用于当译码迭代次数达到预设的最大迭代次数时停止译码。
3.根据权利要求1所述的译码器,其特征在于,所述判断控制模块还用于在所述伴随式为全零向量时控制结束所述查找模块的运行。
4.根据权利要求1所述的译码器,其特征在于,所述伴随式计算模块用于通过计算所述伴随式判断所述待译码序列是否满足校验矩阵,所述校验矩阵为由m行n列的b维准循环方阵Q组成,所述准循环方阵Q的每一行是上一行右移一位的结果,第一行是最后一行右移一位的结果。
5.根据权利要求1所述的译码器,其特征在于,所述伴随式计算模块为顺序电路结构或者并行电路结构,所述并行电路结构包括m个并行设置的顺序电路结构。
6.根据权利要求5所述的译码器,其特征在于,所述顺序电路结构包括:
第一寄存器组,用于存储校验矩阵位;
第二寄存器组,用于缓存伴随式计算中间结果;
运算单元,用于对按位输入的待译码序列和校验矩阵位按位进行“与”运算,得到的结果与所述第二寄存器组缓存的伴随式计算中间结果按位进行“异或”运算,并将“异或”运算结果缓存到所述第二寄存器组,并对所述第一寄存器组中存储的校验矩阵位进行移位。
7.根据权利要求1所述的译码器,其特征在于,所述固态硬盘纠错系统包括缓冲寄存器、通道控制器、闪存以及ECC模块,所述ECC模块包括准循环低密度奇偶校验码编码器和准循环低密度奇偶校验码译码器。
8.一种准循环低密度奇偶校验码译码方法,应用于固态硬盘纠错系统,其特征在于,所述译码方法包括:
伴随式计算步骤,从固态硬盘读出待译码序列,存储于数据序列寄存器中,所述数据序列寄存器将所述待译码序列发送给伴随式计算模块,所述伴随式计算模块计算待译码序列的伴随式;
判断控制步骤,判断所述伴随式是否为全零向量,若为是则控制结束伴随式计算并输出当前码序列作为译码结果;
查找步骤,若所述伴随式不为全零向量,则计算所述待译码序列中不满足校验方程的码元个数的集合,查找所述集合中最大值的位置;
翻转控制步骤,将所述待译码序列中与所述集合中最大值位置对应的码元进行翻转,更新所述待译码序列并回到所述伴随式计算步骤。
9.根据权利要求8所述的译码方法,其特征在于,所述判断控制步骤还包括:若译码迭代次数达到预设的最大迭代次数则停止译码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010523510 CN101976584B (zh) | 2010-10-27 | 2010-10-27 | 准循环低密度奇偶校验码译码器及译码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010523510 CN101976584B (zh) | 2010-10-27 | 2010-10-27 | 准循环低密度奇偶校验码译码器及译码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101976584A CN101976584A (zh) | 2011-02-16 |
CN101976584B true CN101976584B (zh) | 2013-01-30 |
Family
ID=43576458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010523510 Active CN101976584B (zh) | 2010-10-27 | 2010-10-27 | 准循环低密度奇偶校验码译码器及译码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101976584B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107294541A (zh) * | 2016-04-11 | 2017-10-24 | 清华大学 | 低面积开销的自容错ldpc译码器 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103137213B (zh) * | 2011-12-01 | 2015-07-15 | 慧荣科技股份有限公司 | 具有低密度奇偶校验码译码能力的存储器控制装置及方法 |
CN102543133B (zh) * | 2011-12-30 | 2015-07-08 | 记忆科技(深圳)有限公司 | 提高bch纠错速度的方法及其固态硬盘 |
CN103580698B (zh) * | 2012-08-02 | 2016-12-21 | 北京兆易创新科技股份有限公司 | 码元数据的ecc译码方法和装置 |
CN105227192B (zh) * | 2014-06-05 | 2018-12-21 | 深圳衡宇芯片科技有限公司 | 一种用于多模式bch码编码的方法及使用该方法的编码器 |
KR20160046467A (ko) * | 2014-10-21 | 2016-04-29 | 에스케이하이닉스 주식회사 | 컨트롤러, 반도체 메모리 시스템, 데이터 저장 시스템 및 그것의 동작 방법 |
TWI632780B (zh) * | 2016-12-30 | 2018-08-11 | 慧榮科技股份有限公司 | 解碼方法與相關解碼裝置 |
TWI631830B (zh) * | 2016-12-30 | 2018-08-01 | 慧榮科技股份有限公司 | 解碼方法與相關解碼裝置 |
CN110389854B (zh) * | 2019-07-17 | 2023-09-22 | 深圳市盈和致远科技有限公司 | Ecc译码纠错方法、ecc译码纠错装置及计算机可读存储介质 |
CN111917420B (zh) * | 2020-08-25 | 2023-07-04 | 广东省新一代通信与网络创新研究院 | 一种ldpc自适应译码方法及ldpc自适应译码器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1773863A (zh) * | 2004-11-12 | 2006-05-17 | 中国科学院空间科学与应用研究中心 | 一种可用于大容量存储器的rs(256,252)码纠错译码芯片 |
CN101488369A (zh) * | 2009-02-20 | 2009-07-22 | 苏州国芯科技有限公司 | Bch码控制器接口电路 |
CN101599302A (zh) * | 2009-07-23 | 2009-12-09 | 西安空间无线电技术研究所 | 一种基于fpga的ldpc译码器的译码码字的高效存储方法 |
CN101697490A (zh) * | 2009-10-16 | 2010-04-21 | 苏州国芯科技有限公司 | 一种应用在基于理德-所罗门码的ecc模块上的解码方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0697559B2 (ja) * | 1987-09-24 | 1994-11-30 | 三菱電機株式会社 | 半導体記憶装置 |
US6381713B1 (en) * | 1999-05-11 | 2002-04-30 | Ericsson Inc. | Method for responding to transmission errors in a digital communication system according to characteristics of flawed information fields |
US7543218B2 (en) * | 2004-01-31 | 2009-06-02 | Samsung Electronics Co., Ltd. | DVD decoding method and apparatus using selective po-correction |
-
2010
- 2010-10-27 CN CN 201010523510 patent/CN101976584B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1773863A (zh) * | 2004-11-12 | 2006-05-17 | 中国科学院空间科学与应用研究中心 | 一种可用于大容量存储器的rs(256,252)码纠错译码芯片 |
CN101488369A (zh) * | 2009-02-20 | 2009-07-22 | 苏州国芯科技有限公司 | Bch码控制器接口电路 |
CN101599302A (zh) * | 2009-07-23 | 2009-12-09 | 西安空间无线电技术研究所 | 一种基于fpga的ldpc译码器的译码码字的高效存储方法 |
CN101697490A (zh) * | 2009-10-16 | 2010-04-21 | 苏州国芯科技有限公司 | 一种应用在基于理德-所罗门码的ecc模块上的解码方法 |
Non-Patent Citations (1)
Title |
---|
JP昭64-82396A 1989.03.28 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107294541A (zh) * | 2016-04-11 | 2017-10-24 | 清华大学 | 低面积开销的自容错ldpc译码器 |
CN107294541B (zh) * | 2016-04-11 | 2020-07-10 | 清华大学 | 低面积开销的自容错ldpc译码器 |
Also Published As
Publication number | Publication date |
---|---|
CN101976584A (zh) | 2011-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101976584B (zh) | 准循环低密度奇偶校验码译码器及译码方法 | |
CN104246706B (zh) | 使用存储器特定奇偶校验矩阵的数据编码器和解码器 | |
CN112783685B (zh) | 快速收敛的低密度奇偶校验码的位翻转解码器 | |
CN101329916B (zh) | 闪存装置纠错码控制器以及相关方法和存储系统 | |
KR101438072B1 (ko) | 소거 없는 플래시 메모리의 다중 프로그래밍 | |
US20140223255A1 (en) | Decoder having early decoding termination detection | |
US10326479B2 (en) | Apparatuses and methods for layer-by-layer error correction | |
KR102275717B1 (ko) | 플래시 메모리 시스템 및 그의 동작 방법 | |
US10985780B2 (en) | Error correction circuit, and memory controller having the error correction circuit and memory system having the memory controller | |
US11309916B2 (en) | Error correction circuit and memory controller having the same | |
CN103971751A (zh) | 以选择性二进制及非二进制解码在闪存中进行检测和解码 | |
CN112860474B (zh) | 快速收敛的低密度奇偶校验码的软位翻转解码器 | |
KR20200046496A (ko) | Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법 | |
US20150317203A1 (en) | Code-Based Read Control for Data Storage Devices | |
CN103325425B (zh) | 存储器控制器 | |
KR20180022175A (ko) | 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법 | |
CN102005250A (zh) | 准循环低密度奇偶校验码译码器及译码方法 | |
KR101913900B1 (ko) | 조기 디코딩 종료 검출을 갖는 디코더 | |
CN114639435A (zh) | 位翻转解码器中的振荡检测和缓解 | |
CN101958718B (zh) | 用于ldpc码的改进型半并行译码器和译码方法 | |
US20160080004A1 (en) | Memory controller and decoding method | |
US9838033B1 (en) | Encoder supporting multiple code rates and code lengths | |
CN116954984A (zh) | Crc终止时的准确ber报告 | |
Das et al. | Limited magnitude error correction using OLS codes for memories with multilevel cells | |
US9619317B1 (en) | Decoder having early decoding termination detection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |