准循环低密度奇偶校验码译码器及译码方法

文档序号:6773285阅读:177来源:国知局
专利名称:准循环低密度奇偶校验码译码器及译码方法
技术领域
本发明涉及固态硬盘纠错系统和方法,尤其涉及一种准循环低密度奇偶校验码 (QC-LDPC)译码器及译码方法。
背景技术
目前应用于固态硬盘的纠错技术主要是BCH技术,编码过程通过线性反馈移位寄 存器实现,寄存器的数目和纠错能力要求成正比;译码过程分为三部分,首先是伴随式计 算,随后是关键方程求解,最后是钱搜索过程。这种技术译码过程复杂,导致硬件实现电路 复杂,需要付出延迟和芯片面积的代价。随着工艺水平提高,闪存阵列页单元增大,纠错的 扇区大小从512B向1KB发展,码长增加同时要求纠错能力也增加。而随着码长和纠错能力 要求的增加,要求更大的伽罗瓦域,编码解码算法在更高数量级上进行,传统的BCH纠错技 术变得更复杂,硬件实现复杂程度和成本将大幅度增加。在大的伽罗瓦域进行编码译码设 计时,需要利用计算机进行复杂的设计运算,一般的计算机显然不能满足要求。同时,随着MLC(Multi-Level Cell,多层单元闪存)成为主流闪存,对纠错能力的 要求不断提高。其出错主要原因包括浮栅晶体管单元之间的干扰和一个单元内不同层次信 息之间的互相干扰,体现在影响阈值电压的分布上。BCH码对于MLC这种出错的修正能力有 限,因此成为阻碍MLC Flash发展的因素。传统BCH纠错技术对于特定的应用纠错位数是 固定的,意味着在译码过程中即使发生错误个数少于设定纠错位数时,译码过程中的伴随 式计算耗费的时钟周期没有减少,浪费了不必要的时钟周期。更多的比特信息存储在一个 浮栅晶体管单元上,存储密度的大幅度提升,要求更低误比特率,这些要求对BCH提出了巨 大的挑战,实现变得复杂甚至困难,而纠错性能则严重下降。综上可知,现有固态硬盘纠错系统及方法在实际使用上,显然存在不便与缺陷,所 以有必要加以改进。

发明内容
针对上述的缺陷,本发明的目的在于提供一种准循环低密度奇偶校验码译码器及 译码方法,其能在纠错完成时,控制结束伴随式计算,降低译码周期及译码延迟。为了实现上述目的,本发明提供一种准循环低密度奇偶校验码译码器,应用于固 态硬盘纠错系统,所述译码器包括伴随式计算模块,用于计算待译码序列的伴随式;判断控制模块,用于判断所述伴随式是否为全零向量,若为是则控制结束伴随式 计算并输出当前码序列作为译码结果;查找模块,用于当所述伴随式不为全零向量时,计算所述待译码序列中不满足校 验方程的码元个数的集合,查找所述集合中最大值的位置;翻转控制模块,用于将所述待译码序列中与所述集合中最大值位置对应的码元进 行翻转,并将更新后的待译码序列输入所述伴随式计算模块。
根据本发明的译码器,所述判断控制模块还包括迭代次数判断模块,用于当译码 迭代次数达到预设的最大迭代次数时停止译码。根据本发明的译码器,所述译码器还包括数据序列寄存器,用于从固态硬盘读出 并缓存所述待译码序列。根据本发明的译码器,所述判断控制模块还用于在所述伴随式为全零向量时控制 结束所述查找模块的运行。根据本发明的译码器,所述校验矩阵为由m行η列的b维准循环方阵Q组成,所述 准循环方阵Q的每一行是上一行右移一位的结果,第一行是最后一行右移一位的结果。根据本发明的译码器,所述伴随式计算模块为顺序电路结构或者并行电路结构, 所述并行电路结构包括m个并行设置的顺序电路结构。根据本发明的译码器,所述顺序电路结构包括第一寄存器组,用于存储校验矩阵位;第二寄存器组,用于缓存伴随式计算中间结果;运算单元,用于对按位输入的待译码序列和校验矩阵位按位进行“与”运算,得到 的结果与所述第二寄存器组缓存的伴随式计算中间结果按位进行“异或”运算,并将“异 或”运算结果缓存到所述第二寄存器组,并对所述第一寄存器组中存储的校验矩阵位进行 移位。根据本发明的译码器,所述固态硬盘纠错系统包括缓冲寄存器、通道控制器、闪存 以及ECC模块,所述ECC模块包括准循环低密度奇偶校验码编码器和准循环低密度奇偶校 验码译码器。本发明还提供一种准循环低密度奇偶校验码译码方法,应用于固态硬盘纠错系 统,所述译码方法包括伴随式计算步骤,计算所述待译码序列的伴随式;判断控制步骤,判断所述伴随式是否为全零向量,若为是则控制结束伴随式计算 并输出当前码序列作为译码结果;查找步骤,若所述伴随式不为全零向量,则计算所述待译码序列中不满足校验方 程的码元个数的集合,查找所述集合中最大值的位置;翻转控制步骤,将所述待译码序列中与所述集合中最大值位置对应的码元进行翻 转,更新所述待译码序列并回到所述伴随式计算步骤。根据本发明的译码方法,所述判断控制步骤还包括若译码迭代次数达到预设的 最大迭代次数则停止译码。本发明通过对固态硬盘存储阵列读出的待译码序列进行伴随式的计算,并判断所 述待译码序列的伴随式是否为全0向量,如果为全0向量则直接输出码序列作为译码结果, 并结束伴随式计算,如果不为全0向量则计算所述待译码序列不满足校验方程的码元个数 的集合,查找该集合中最大值的位置,通过翻转控制模块翻转待译码序列中与该最大值位 置对应的数据,再把更新后的待译码序列输入到伴随式计算模块中再次计算伴随式,检验 是否满足校验矩阵,重复上述操作,直到输出正确序列或者达到最大译码次数。与传统的 BCH算法相比,本发明在纠错完成后停止伴随式的计算,控制结束伴随式计算,降低译码周 期及译码延迟。
5
优选的,本发明可以根据应用情况采用顺序或者并行电路结构优化系统性能,提 高效率,降低了芯片面积,减小成本。


图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) = RXHt (1)考虑到校验矩阵是由循环方阵构成的矩阵,对伴随式进行分组得到S = [S1, S2,…,Sm],Si = [S(i_1)b+1,S(i_1)b+2,· · ·,Sib] (1 彡 i 彡 m) (2)校验矩阵H由m行η列的b维方阵Q组成,准循环方阵Q每一行是上一行右移 一位的结果,第一行是最后一行右移一位的结果,假设长度为b的向量g^为第i行j列 (1彡i彡m,1彡j彡η)方阵Q的第一行,那么循环移位k次的结果是^7. (0彡k彡b_l), 所有这些循环的结果构成了方阵Q。把校验矩阵和待译码序列R进行分组以简化译码电路, 则有
R — [R ? R ? ... ? R ] ? R — [R(i-i)b+i‘ R(i—i)b+2,· · ·, Rib] (1 ^ i ^ η) (3) Ht = [h1,h2,…,hm],h1 = [Qia,Qij2, · · · QJt (1 ^ i ^m) (4)则伴随式计算如下Si = RXhi = R1XQij^R2XQij2+. · · · +RnXQi,n(l 彡 i 彡 m) (5)展开得到
权利要求
一种准循环低密度奇偶校验码译码器,应用于固态硬盘纠错系统,其特征在于,所述译码器包括伴随式计算模块,用于计算待译码序列的伴随式;判断控制模块,用于判断所述伴随式是否为全零向量,若为是则控制结束伴随式计算并输出当前码序列作为译码结果;查找模块,用于当所述伴随式不为全零向量时,计算所述待译码序列中不满足校验方程的码元个数的集合,查找所述集合中最大值的位置;翻转控制模块,用于将所述待译码序列中与所述集合中最大值位置对应的码元进行翻转,并将更新后的待译码序列输入所述伴随式计算模块。
2.根据权利要求1所述的译码器,其特征在于,所述判断控制模块还包括迭代次数判 断模块,用于当译码迭代次数达到预设的最大迭代次数时停止译码。
3.根据权利要求1所述的译码器,其特征在于,所述译码器还包括数据序列寄存器,用 于从固态硬盘读出并缓存所述待译码序列。
4.根据权利要求1所述的固态硬盘纠错系统,其特征在于,所述判断控制模块还用于 在所述伴随式为全零向量时控制结束所述查找模块的运行。
5.根据权利要求1所述的译码器,其特征在于,所述校验矩阵为由m行η列的b维准循 环方阵Q组成,所述准循环方阵Q的每一行是上一行右移一位的结果,第一行是最后一行右 移一位的结果。
6.根据权利要求1所述的译码器,其特征在于,所述伴随式计算模块为顺序电路结构 或者并行电路结构,所述并行电路结构包括m个并行设置的顺序电路结构。
7.根据权利要求6所述的译码器,其特征在于,所述顺序电路结构包括第一寄存器组,用于存储校验矩阵位;第二寄存器组,用于缓存伴随式计算中间结果;运算单元,用于对按位输入的待译码序列和校验矩阵位按位进行“与”运算,得到的结 果与所述第二寄存器组缓存的伴随式计算中间结果按位进行“异或”运算,并将“异或”运 算结果缓存到所述第二寄存器组,并对所述第一寄存器组中存储的校验矩阵位进行移位。
8.根据权利要求1所述的译码器,其特征在于,所述固态硬盘纠错系统包括缓冲寄存 器、通道控制器、闪存以及ECC模块,所述ECC模块包括准循环低密度奇偶校验码编码器和 准循环低密度奇偶校验码译码器。
9.一种准循环低密度奇偶校验码译码方法,应用于固态硬盘纠错系统,其特征在于,所 述译码方法包括伴随式计算步骤,计算所述待译码序列的伴随式;判断控制步骤,判断所述伴随式是否为全零向量,若为是则控制结束伴随式计算并输 出当前码序列作为译码结果;查找步骤,若所述伴随式不为全零向量,则计算所述待译码序列中不满足校验方程的 码元个数的集合,查找所述集合中最大值的位置;翻转控制步骤,将所述待译码序列中与所述集合中最大值位置对应的码元进行翻转, 更新所述待译码序列并回到所述伴随式计算步骤。
10.根据权利要求1所述的译码方法,其特征在于,所述判断控制步骤还包括若译码迭代次数达到预设的最大迭代次数则停止译码。
全文摘要
本发明公开了一种准循环低密度奇偶校验码译码器,应用于固态硬盘纠错系统,译码器包括伴随式计算模块,用于计算待译码序列的伴随式;判断控制模块,用于判断伴随式是否为全零向量,若为是则控制结束伴随式计算并输出当前码序列作为译码结果;查找模块,用于当伴随式不为全零向量时,计算待译码序列中不满足校验方程的码元个数的集合,查找集合中最大值的位置;翻转控制模块,用于将待译码序列中与集合中最大值位置对应的码元进行翻转,并将更新后的待译码序列输入伴随式计算模块。本发明相应提供一种准循环低密度奇偶校验码译码方法。借此,本发明能在纠错完成时控制结束伴随式计算,降低译码周期及译码延迟。
文档编号G11C29/42GK101976584SQ201010523510
公开日2011年2月16日 申请日期2010年10月27日 优先权日2010年10月27日
发明者张耀辉, 朱从义, 莫海锋, 贾宗铭 申请人:记忆科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1