Flash控制器中BCH编译码的纠错能力扩展方法

文档序号:7516977阅读:183来源:国知局
专利名称:Flash控制器中BCH编译码的纠错能力扩展方法
技术领域
本发明涉及Flash控制器中的编译码纠错方法,特别涉及在NandFlash型存储设 备控制芯片中使用的一种BCH编译码的纠错能力扩展方法。
背景技术
在NandFlash型结构大容量存储设备的控制芯片中,由于NandFlash型结构的特 点以及噪声干扰等因素,传输的数据会出错是不可避免的。为了保证数据读出时能进行误 码检测和校正,通常都是在数据写入存储单元时,需要写入一部分冗余数据,在数据读出 时用于纠错。BCH码是由博斯_查德赫利_霍昆格姆(Bose-Chaudhuri-Hocquenghem,即 BCH)编码发生器定义的差错控制码技术,它是一种可纠正多个随机错误的编译码方法,这 与NandFlash存储设备的常规出错类型相符。采用超长BCH码作为NandFlash控制器纠错 码ECC单元的优点是(1)在保护相同长度的数据时,对于给定的随机错误数,二进制BCH码需占用的冗 余数据空间通常要低于里德_索罗蒙RS(Reed-Solomn)码;(2)在译码时,二进制BCH码仅需搜索错误位置,待获得错误位置后,只需将错误 位取反即完成纠错,而不必再计算错误值多项式,使得计算复杂度得到了大幅度的减小。由BCH编码原理可知,对于任意正整数m,设二进制BCH码的标准码长为N = (2m-l)比特,信息元为K比特,则该码的相关参数为校验元长为(N-K)比特;纠错能力 t彡(N-K)/m(其中m彡3);最小码距dmin彡2t+l。BCH码是一种能纠正多个随机错误的循环码,它的生成多项式与最小码距之间有 密切的关系,可以用生成多项式g(x)的根来描述。它具有严格的代数结构,纠错能力强,构 造简单,人们可以根据所要求的纠错能力t很容易构造出BCH码,其编码和解码器也较其他 码容易实现,是线性分组码中应用最普遍的一类码。目前在Flash控制器中,对NandFlash存储设备的数据进行BCH编译码都是以 Flash扇区为单位进行处理。Flash扇区容量目前有528字节、540字节、1070字节、1080字 节等多种规格。对于前两种格规的Flash扇区一般用来存储512字节的数据量,对于后两 种格规的Flash扇区一般用来存储1024字节的数据量。据申请人了解,现有BCH译码电路针对不同的Flash扇区容量只提供如下几种纠 错能力1、针对528字节和540字节容量的Flash扇区,数据长度为512字节,纠错能力 (最大纠错个数)如下(1)固定可选的最大纠错个数有8比特和16比特两种。(2)可配置选择的最大纠错个数是8比特、12比特、14比特和16比特。2、针对1070字节和1080字节容量的Flash扇区,数据长度为1024字节,纠错能 力只有固定可选的8比特、14比特、24比特、30比特和32比特种。由此可见,现有BCH译码电路的纠错能力都是固定的或者是可配置的,其纠错能力的扩展范围受到很大的限制,可供选择的余地不大。随着相关技术的不断更新, NandFlash型结构大容量存储设备对纠错能力的要求也在不断提升,当纠错能力超过可配 置的纠错性能或者需要不断提升的时候,只能重新修改算法或者修改电路来支持纠错能力 更强的要求,这些都是十分耗时耗力的。

发明内容
本发明要解决的技术问题在于克服目前Flash控制器中的BCH编译码纠错能力不可扩展的不足,提出了一种可分段纠错的方法,很灵活方便的提高了 BCH译码纠错能力,从 而扩大了 BCH译码电路的使用范围,使其能满足各种不同的应用环境。为达到上述目的,本发明采用的第一个技术方案是一种Flash控制器中BCH 编译码的纠错能力扩展方法,其特征在于对于Flash扇区容纳数据长度为1024字节的 NandFlash型存储设备,在对数据进行BCH编码时,把将要写入每个Flash扇区的数据块分 段成若干个子数据块,每个子数据块的数据长度相同,且都是128字节的η倍,η取1、2和 4中的一个整数,同时根据实际纠错能力要求选择纠错能力值t,t的取值范围为8 32比 特中的一个整数,然后根据以下公式(1)给每个子数据块配备用于纠错的冗余位冗余位长度的字节数=(14Xt)/8(1)式中t为纠错能力值,当公式(1)的计算结果为整数时取该整数作为冗余位长度 的字节数,当公式(1)的结果有小数时取整数后加1作为冗余位长度的字节数;此外,对Flash扇区的数据块分段以及配备用于纠错的冗余位需满足以下公式 (2)的要求(子数据块的数据长度+冗余位长度)X子数据块的数量SFlash扇区容量(2)式中子数据块的数据长度为子数据块的字节数;冗余位长度为冗余位长度的字节数;子数据块的数量为所述Flash扇区的数据块分段个数;Flash扇区容量为所述NandFlash型存储设备中每个Flash扇区的可供存储的字 节数;在对数据进行BCH译码时,一次读出Flash扇区的数据,然后利用BCH译码电路单 独对每个子数据块以及所配备的冗余位进行BCH译码,从而实现对NandFlash型存储设备 中Flash扇区数据纠错能力的扩展。为达到上述目的,本发明采用的第二个技术方案是一种Flash控制器中BCH 编译码的纠错能力扩展方法,其特征在于对于Flash扇区容纳数据长度为512字节的 NandFlash型存储设备,在对数据进行BCH编码时,把将要写入每个Flash扇区的数据块分 段成若干个子数据块,每个子数据块的数据长度相同,且都是128字节的η倍,η取1和2中 的一个整数,同时根据实际纠错能力要求选择纠错能力值t,t的取值范围为8 32比特中 的一个整数,然后根据以下公式(1)给每个子数据块配备用于纠错的冗余位冗余位长度的字节数=(14Xt)/8(1)式中t为纠错能力值,当公式(1)的计算结果为整数时取该整数作为冗余位长度 的字节数,当公式(1)的结果有小数时取整数后加1作为冗余位长度的字节数;
此外,对Flash扇区的数据块分段以及配备用于纠错的冗余位需满足以下公式 (2)的要求(子数据块的数据长度+冗余位长度)X子数据块的数量<Flash扇区容量(2)式中子数据块的数据长度为子数据块的字节数;冗余位长度为冗余位长度的字节数;
子数据块的数量为所述Flash扇区的数据块分段个数;Flash扇区容量为所述NandFlash型存储设备中每个Flash扇区的可供存储的字 节数;在对数据进行BCH译码时,一次读出Flash扇区的数据,然后利用BCH译码电路单 独对每个子数据块以及所配备的冗余位进行BCH译码,从而实现对NandFlash型存储设备 中Flash扇区数据纠错能力的扩展。上述技术方案中的有关内容解释如下1、上述第一和第二技术方案中,所述t的取值范围可以为8、14、24和30比特中的 一个整数。取值范围也可以为8、12、24和30比特中的一个整数,甚至可以是其他,只要在 8 32比特中的任何一个整数均可。2、本发明原理是参见附图1所示,在对Flash扇区数据BCH编译码中,通过将一 个大的数据块分段成若干个小的子数据块后,再单独对每个小子数据块进行BCH编译码, 从而实现对原有大数据块纠错能力的扩展。由于上述技术方案运用,本发明与现有技术相比具有下列优点和效果1、纠错能力可扩展。通过对一个大数据块采取分段的方式,分段成几个小的子数 据块,再分别对每一个分段的子段进行单独编码和译码,可以大幅度的扩展原大数据块的 纠错能力,从而可满足对数据不同纠错性能的要求。2、配置灵活而且方便。在电路实现时通过寄存器的设置,可分别选择128、256、512 或1024字节不同的数据块长度进行BCH译码;还可通过寄存器的配置来选择对每一个已选 数据块的纠错能力为8、14、24或30比特,从而可以很灵活和方便的选择不同长度的数据块 进行不同纠错能力的纠错。3、成本更低。通过纠错能力可扩展的配置,既可满足现有的flash对纠错模块的 纠错性能的要求,还可很方便的满足将来因flash升级而对纠错模块性能提高的要求。本 发明只需对flash扇区的数据进行合理的分段,既可大幅度提升原有的纠错性能,而不必 重新修改算法和重新设计译码电路,从而可以大大的节省人力和物力。


附图1为本发明Flash扇区的数据块分段原理框图;附图2为本发明的BCH译码电路整体结构框架图。
具体实施例方式下面结合附图及实施例对本发明作进一步描述实施例1 一种Flash控制器中BCH编译码的纠错能力扩展方法
对于Flash扇区容纳数据长度为1024字节的NandFlash型存储设备,在对数据进 行BCH编码时,把将要写入每个Flash扇区的数据块分段成若干个子数据块,每个子数据块 的数据长度相同,且都是128字节的η倍,ι!取1、2和4中的一个整数,同时根据实际纠错 能力要求选择纠错能力值t,t的取值范围为8 32比特中的一个整数,然后根据以下公式
(1)给每个子数据块配备用于纠错的冗余位冗余位长度的字节数=(14Xt)/8(1)式中t为纠错能力值,当公式(1)的计算结果为整数时取该整数作为冗余位长度 的字节数,当公式(1)的结果有小数时取整数后加1作为冗余位长度的字节数;此外,对Flash扇区的数据块分段以及配备用于纠错的冗余位需满足以下公式
(2)的要求(子数据块的数据长度+冗余位长度)X子数据块的数量<Flash扇区容量(2)式中子数据块的数据长度为子数据块的字节数;冗余位长度为冗余位长度的字节数;子数据块的数量为所述Flash扇区的数据块分段个数;Flash扇区容量为所述NandFlash型存储设备中每个Flash扇区的可供存储的字 节数;在对数据进行BCH译码时,一次读出Flash扇区的数据,然后利用BCH译码电路单 独对每个子数据块以及所配备的冗余位进行BCH译码,从而实现对NandFlash型存储设备 中Flash扇区数据纠错能力的扩展。本发明通过数据的可分段操作,来实现纠错能力的大幅度扩展。对单独的一块 128、256、512或1024字节的数据块,其纠错能力值t可在8 32比特范围中选择一个整 数,比如选择8、14、24或30比特,相应的数据冗余位的长度也分别为14、25、42和53字节, 而冗余位的具体数值由BCH编码方法决定。而当把一个1024字节的数据块分段成8个128 字节数据子块时(见图1所示),虽然数据冗余位的长度也相应增加了 7倍,但由于现在的 Flash扇区容量的不断扩大,因此增加的数据量还是在Flash扇区容量的范围之内,所以其 纠错能力可分别提高到8X8,8X14,8X24,8X30比特。当把一个1024字节的数据块分 段成4个256字节数据子块时,其纠错能力可分别提高到4X8,4X14,4X24,4X30比特。 当把一个1024字节的数据块分段成2个512字节数据子块时,其纠错能力可分别提高到 2X8,2X14,2X24,2X30比特。依此类推,对于512和256字节的数据块都可通过分段方 式大幅的扩展其纠错能力。若选择一个长度为1024字节的数据块进行BCH编译码而不进行分段纠错,可直接 通过配置纠错能力选择8、14、24或30比特不同的纠错能力进行编译码,即可满足现有技术 的需要。若想对该1024字节数据块进行更强的纠错能力BCH编译码的话,在进行BCH编译 码时要将该1024字节数据块选择分段方式,可选的分段方式为128、256或512字节。若选 择分段方式为512字节,即将 原有1024字节的数据块自动分段成2个512字节的数据块分 别进行编译码。而对一个单独的1024字节的数据块进行编译码时,其纠错能力不超过30 比特,而若把一个单独的1024字节的数据块分段成2个512字节的数据块时,因为对每一 个单独的512字节的数据块进行编译码时,其最大纠错能力可达30比特,而两个512字节的数据块即可实现60比特的纠错能力,从而大大的扩展了原有1024字节只有30比特的纠 错能力。依次类推,还可将原1024字节的数据块根据需要分段成若干个128字节或者若干 个256字节的子数据块,从而可以灵活的扩展该1024字节数据块的纠错能力。同理,可对 512字节的数据块进行128或256字节的子数据块的分段,对256字节的数据块进行128字 节的子数据块的分段,从而扩展原有数据块的纠错能力。下面结构附图2对本发明作进一步说明图2为本发明的BCH译码电路整体结构框架图。从图中可以看出BCH译码电路有 三个子电路,分别是伴随式校正子运算电路、错误位置多项式迭代电路和错误地址搜索电 路。其中,伴随式校正子运算电路是通过信息元的输入完成伴随式校正子的计算电路;错误 位置多项式迭代电路是通过伴随式校正子计算出错误位置多项式的电路;错误地址搜索电 路是Chien搜索电路,错误地址搜索电路通过伴随式校正子运算电路所接收的数据长度选 择信号来更新Chien搜索电路的搜索地址的起始位置和长度,从而完成错误地址的搜索。图2中的各信号的功能描述如下1、输入信号elk:系统时钟输入。rst 复位信号,低电平有效。Dinvalid 有效数据输入指示信号,高电平有效。encoding 编译码模式(1为编码,0为译码)。selcapacity[l:0]纠错能力类型选择信号。该值为3表示纠错能力是30比特, 为2是24比特,为1是14比特,为0是8比特。sellength[l:0]数据保护长度选择信号,该值为3表示输入的数据长度为128字 节,为2表示256字节,为1表示512字节,为0表示1024字节。din[7:0]数据输入端口,共8位。searchlnit 错误位置多项式迭代电路初始化信号。Cerror_num[5:0]纠错能力。2、输出信号Error_num[5:0]实际出现的错误个数。Codedone 伴随式计算结束指示信号,高电平有效。BMdone 错误位置多项式迭代电路结束指示信号,高电平有效。CSdone =Chien搜索结束指示信号,高电平有效。CSdout [7:0]错误图样输出,与输入值din异或完成纠错。CSadrs[10:0]错误位置。CSwe 纠错指示信号,高电平有效。SearchF 超出纠错能力指示信号,高电平有效。Correct data [7:0]正确的输出码字。3、内部信号BM_start 错误位置多项式迭代电路运算开始信号,高电平有效。Chien_start =Chien搜索开始信号,高电平有效。S1, S2, ... , S2t 伴随式校正子,位宽都为14位。
Loc1, Loc2, ... , Loct 错误位置多项式各系数,位宽都为14位。为了提高译码速度,图2中的三个子电路可采用并行或者流水线的方式可同时对 分段后的2个512字节的数据块进行译码,大大的提高了译码速度,因此在不增加面积的同 时并不会因为分段后影响原数据块的译码速度。实施例2 —种Flash控制器中BCH编译码的纠错能力扩展方法
对于Flash扇区容纳数据长度为512字节的NandFlash型存储设备,在对数据进 行BCH编码时,把将要写入每个Flash扇区的数据块分段成若干个子数据块,每个子数据块 的数据长度相同,且都是128字节的η倍,η取1和2中的一个整数,同时根据实际纠错能力 要求选择纠错能力值t,t的取值范围为8 32比特中的一个整数,然后根据以下公式(1) 给每个子数据块配备用于纠错的冗余位冗余位长度的字节数=(14Xt)/8(1)式中t为纠错能力值,当公式(1)的计算结果为整数时取该整数作为冗余位长度 的字节数,当公式(1)的结果有小数时取整数后加1作为冗余位长度的字节数;此外,对Flash扇区的数据块分段以及配备用于纠错的冗余位需满足以下公式 (2)的要求(子数据块的数据长度+冗余位长度)X子数据块的数量<Flash扇区容量(2)式中子数据块的数据长度为子数据块的字节数;冗余位长度为冗余位长度的字节数;子数据块的数量为所述Flash扇区的数据块分段个数;Flash扇区容量为所述NandFlash型存储设备中每个Flash扇区的可供存储的字 节数;在对数据进行BCH译码时,一次读出Flash扇区的数据,然后利用BCH译码电路单 独对每个子数据块以及所配备的冗余位进行BCH译码,从而实现对NandFlash型存储设备 中Flash扇区数据纠错能力的扩展。上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人 士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明 精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
权利要求
一种Flash控制器中BCH编译码的纠错能力扩展方法,其特征在于对于Flash扇区容纳数据长度为1024字节的NandFlash型存储设备,在对数据进行BCH编码时,把将要写入每个Flash扇区的数据块分段成若干个子数据块,每个子数据块的数据长度相同,且都是128字节的n倍,n取1、2和4中的一个整数,同时根据实际纠错能力要求选择纠错能力值t,t的取值范围为8~32比特中的一个整数,然后根据以下公式(1)给每个子数据块配备用于纠错的冗余位冗余位长度的字节数=(14×t)/8(1)式中t为纠错能力值,当公式(1)的计算结果为整数时取该整数作为冗余位长度的字节数,当公式(1)的结果有小数时取整数后加1作为冗余位长度的字节数;此外,对Flash扇区的数据块分段以及配备用于纠错的冗余位需满足以下公式(2)的要求(子数据块的数据长度+冗余位长度)×子数据块的数量≤Flash扇区容量(2)式中子数据块的数据长度为子数据块的字节数;冗余位长度为冗余位长度的字节数;子数据块的数量为所述Flash扇区的数据块分段个数;Flash扇区容量为所述NandFlash型存储设备中每个Flash扇区的可供存储的字节数;在对数据进行BCH译码时,一次读出Flash扇区的数据,然后利用BCH译码电路单独对每个子数据块以及所配备的冗余位进行BCH译码,从而实现对NandFlash型存储设备中Flash扇区数据纠错能力的扩展。
2.—种Flash控制器中BCH编译码的纠错能力扩展方法,其特征在于对于Flash扇 区容纳数据长度为512字节的NandFlash型存储设备,在对数据进行BCH编码时,把将要写 入每个Flash扇区的数据块分段成若干个子数据块,每个子数据块的数据长度相同,且都 是128字节的η倍,η取1和2中的一个整数,同时根据实际纠错能力要求选择纠错能力值 t,t的取值范围为8 32比特中的一个整数,然后根据以下公式(1)给每个子数据块配备 用于纠错的冗余位冗余位长度的字节数=(14Xt)/8 (1)式中t为纠错能力值,当公式(1)的计算结果为整数时取该整数作为冗余位长度的字 节数,当公式(1)的结果有小数时取整数后加1作为冗余位长度的字节数;此外,对Flash扇区的数据块分段以及配备用于纠错的冗余位需满足以下公式(2)的 要求(子数据块的数据长度+冗余位长度)X子数据块的数量< Flash扇区容量(2) 式中子数据块的数据长度为子数据块的字节数; 冗余位长度为冗余位长度的字节数; 子数据块的数量为所述Flash扇区的数据块分段个数;Flash扇区容量为所述NandFlash型存储设备中每个Flash扇区的可供存储的字节数;在对数据进行BCH译码时,一次读出Flash扇区的数据,然后利用BCH译码电路单独 对每个子数据块以及所配备的冗余位进行BCH译码,从而实现对NandFlash型存储设备中 Flash扇区数据纠错能力的扩展。
3.根据权利要求1或2所述的纠错能力扩展方法,其特征在于所述t的取值范围为 8、14、24和30比特中的一个整数。
全文摘要
一种Flash控制器中BCH编译码的纠错能力扩展方法,其特征在于对于NandFlash型存储设备,在对Flash扇区数据BCH编译码中,通过将一个大的数据块分段成若干个小的子数据块后,再单独对每个小子数据块进行BCH编译码,从而实现对原有大数据块纠错能力的扩展。
文档编号H03M13/15GK101800560SQ201010132749
公开日2010年8月11日 申请日期2010年3月17日 优先权日2010年3月17日
发明者林雄鑫, 王廷平, 肖佐楠, 郑茳, 钟名富 申请人:苏州国芯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1