Bch编译码方法及装置的制作方法

文档序号:7518805阅读:145来源:国知局
专利名称:Bch编译码方法及装置的制作方法
技术领域
本发明涉及片上系统领域,尤其涉及一种BCH编译码方法及装置。
背景技术
近年来由于各种手持设备的流行,带动了 Flash存储器(闪存)的广泛使用, 然而由于自身的物理特点,Flash存储器的稳定性较差,经过多次擦写之后,发生错误的概率会逐渐增加;另一方面,随着新工艺和技术的进步,Flash的存储单元已经逐渐从 SLC(Single-level Cell,单层单元)结构转向 MLC(Multi_level Cell,多层单元)结构, 从而带来了存储密度递增和成本递减等优势,但也导致了 Flash中每个I^age的出错概率及错误个数相比较SLC大大增加。为保证数据存储的正确,必须采用合适的纠错码技术。BCH 码是一种应用广泛而有效的码循环线性分组码,它具有纠正多重差错的能力,而且编译码比较简单,能很好的满足Flash的这种存储特性要求。由于多数S0C(SyStem-0n-a-Chip,片上系统)对数据带宽的要求,当用BCH码控制 Flash的读写时,现行技术多采取并行编译码的方式进行。目前,较先进的方法是采用8比特(bit)并行的方法,即编译码器每次并行处理8bit数据。在实现上述BCH编译码的过程中,发明人发现现有技术中至少存在如下问题编码方面,需要消耗过多的异或门,导致编码器寄存器间的组合逻辑延迟过大,从而限制了编码器可运行的最高频率;译码方面,译码器数据带宽过低,导致SoC与Flash进行交互时的数据传输效率过低。

发明内容
本发明的实施例提供一种BCH编码方法及装置,能够有效的提高Flash存储器中 BCH编码运行的频率。为达到上述目的,本发明的实施例采用如下技术方案一种BCH编码方法,包括设置查找表,所述查找表中预先存储余式多项式各级系数,其中,所述余式多项式为当前编码状态寄存器的高8位与当前8位编码数据按位进行异或运算,左移104位得到的多项式对生成多项式的余式;根据编码状态寄存器当前时刻的状态以及待编码的8位数据,结合所述查找表, 得到编码状态寄存器下一时刻的状态。同时,还提供了一种BCH编码装置,包括设置模块,用于设置查找表,所述查找表中预先存储余式多项式的各级系数,其中,所述余式多项式为当前编码状态寄存器的高8位与当前8位编码数据按位进行异或运算,左移104位得到的多项式对生成多项式的余式;编码模块,用于根据编码状态寄存器当前时刻的状态以及待编码的8位数据,结合所述查找表,得到编码状态寄存器下一时刻的状态。
另一方面,本发明实施例还提供了一种BCH译码方法及BCH译码装置,能够使BCH 译码装置具有更高的数据带宽。为达到上述目的,本发明的实施例采用如下技术方案一种BCH译码方法,包括读取位于闪存中页面冗余区的所有校验段数据,存储在数据缓存器中;读取闪存中页面信息区的多个信息段数据;根据各信息段数据对应的伴随式,记录各个BCH码的错误信息,并将所述错误信息存入数据缓存器;片上系统数据读取方根据所述错误信息完成纠错。同时,还提供了一种BCH译码装置,其特征在于,包括第一读取模块,用于读取位于闪存中页面冗余区的所有校验段数据,存储在数据缓存器中;第二读取模块,用于读取闪存中页面信息区的多个信息段数据;错误信息记录模块,用于根据各信息段数据对应的伴随式,记录各个错误位置;纠错模块,用于根据所述错误位置完成纠错。本发明的实施例提供一种BCH编译码方法及BCH编码装置和译码装置,采用基于查找表法的并行编码,使BCH编码装置可运行于更高频率;同时采用一种全新的译码装置结构,使得BCH译码装置具有更高的数据带宽,从而显著提高SoC与Flash进行交互时的数据传输效率。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为实施例1中的BCH编码方法流程图;图2为实施例1中的BCH编码装置示意图;图3为实施例2中的BCH译码方法流程图;图4为实施例2中的BCH译码装置示意图;
图5为实施例3中的BCH编码方法流程图;图6为实施例3中的BCH编码装置示意图;图7为实施例4中的BCH译码方法流程图;图8为实施例4中的BCH译码装置示意图;图9为本发明提供的译码装置中数据缓存器的规划图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。实施例1 本发明实施例提供一种BCH编码方法,如图1所示,所述BCH编码方法包括101、设置查找表,所述查找表中预先存储余式多项式各级系数,其中,所述余式多项式为当前编码状态寄存器的高8位与当前8位编码数据按位进行异或运算,左移104位得到的多项式对生成多项式的余式;102、根据编码状态寄存器当前时刻的状态以及待编码的8位数据,结合所述查找表,得到编码状态寄存器下一时刻的状态。同时,本发明实施例还提供了一种BCH编码装置,包括设置模块201,用于设置查找表,所述查找表中预先存储余式多项式的各级系数, 其中,所述余式多项式为当前编码状态寄存器的高8位与当前8位编码数据按位进行异或运算,左移104位得到的多项式对生成多项式的余式;编码模块202,用于根据编码状态寄存器当前时刻的状态以及待编码的8位数据, 结合所述查找表,得到编码状态寄存器下一时刻的状态。本发明实施例提供的BCH编码方法及BCH编码装置,采用查找表法进行并行编码, 使得BCH编码可运行于更高频率,从而提高SoC与Flash进行交互时的数据传输效率。实施例2 本发明实施例提供一种BCH译码方法,如图3所示,所述BCH译码方法包括301、读取位于闪存中页面冗余区的所有校验段数据,存储在数据缓存器中;302、读取闪存中页面信息区的多个信息段数据;303、根据各信息段数据对应的伴随式,记录各个BCH码的错误信息,并将所述错误信息存入数据缓存器;304、片上系统数据读取方根据所述错误信息完成纠错。同时,本发明实施例还提供了一种BCH译码装置,如图4所示,包括第一读取模块401,用于读取位于闪存中页面冗余区的所有校验段数据,存储在数据缓存器中;第二读取模块402,用于读取闪存中页面信息区的多个信息段数据;错误信息记录模块403,用于根据各信息段数据对应的伴随式,记录各个BCH码的错误信息,并将所述错误信息存入数据缓存器;片上系统数据读取方404,用于根据所述错误信息完成纠错。本发明实施例提供的BCH译码方法及BCH译码装置,采用了一种全新的译码装置结构,使得BCH译码装置具有更高的数据带宽,从而提高SoC与Flash进行交互时的数据传输效率。实施例3 本发明实施例提供一种BCH编码方法,如图5所示,所述BCH编码方法包括501、设置查找表,所述查找表中预先存储余式多项式各级系数,其中,所述余式多项式为当前编码状态寄存器的高8位与当前8位编码数据按位进行异或运算,左移104位得到的多项式对生成多项式的余式;对所述余式多项式有如下计算
设C(X)为任一最高级数为103的多项式,即C (x) = C103x103+C102x102+. . . +ClX+C0(1)则,可以将C(X)表示成下述两种形式中的任一种
权利要求
1.一种BCH编码方法,其特征在于,包括设置查找表,所述查找表中预先存储余式多项式各级系数,其中,所述余式多项式为当前编码状态寄存器的高8位与当前8位编码数据按位进行异或运算,左移104位得到的多项式对生成多项式的余式;根据编码状态寄存器当前时刻的状态以及待编码的8位数据,结合所述查找表,得到编码状态寄存器下一时刻的状态。
2.根据权利要求1所述的BCH编码方法,其特征在于,所述查找表中包括256个地址单元,其中,每个地址单元中存储有104比特数据。
3.根据权利要求1所述的BCH编码方法,其特征在于,所述根据编码状态寄存器当前时刻的状态以及待编码的8位数据,结合所述查找表,得到编码状态寄存器下一时刻的状态包括将当前编码状态寄存器的高8位与待编码的8位数据按位进行异或运算,根据所得到的结果在查找表中查找对应的地址单元;将所述地址单元中104比特数据中的低8位作为下一时刻编码状态寄存器低8位的值;将所述地址单元中104比特数据中的高96位与当前编码状态寄存器的低96位进行按位异或运算,将所得到的结果作为下一时刻编码状态寄存器高96位的值。
4.一种BCH译码方法,其特征在于,包括读取位于闪存中页面冗余区的所有校验段数据,存储在数据缓存器中;读取闪存中页面信息区的多个信息段数据;根据各信息段数据对应的伴随式,记录各个BCH码的错误信息,并将所述错误信息存入数据缓存器;片上系统数据读取方根据所述错误信息完成纠错。
5.根据权利要求4所述的BCH译码方法,其特征在于,所述读取闪存中页面信息区的多个信息段数据包括将所述多个信息段数据发送到片上系统数据读取方和伴随式生成装置。
6.根据权利要求4所述的BCH译码方法,其特征在于,所述根据各信息段数据对应的伴随式,记录各个BCH码的错误信息,并将所述错误信息存入数据缓存器包括如果伴随式全为0,则表明当前码字正确,将表示码字正确的错误信息存入数据缓存器,同时接收下一个信息段数据;如果伴随式不全为0,则表明当前码字有错,将计算得到的伴随式存入数据缓存器并进行关键方程求解,通过钱氏搜索确定错误位置,将包含当前码字错误个数及每个错误所在位置的错误信息存入数据缓存器,同时接收下一个信息段数据。
7.根据权利要求4所述的BCH译码方法,其特征在于,所述片上系统数据读取方根据所述错误信息完成纠错包括片上系统数据读取方读取数据缓存器中存储的各码字的错误信息,针对错误位置对出错的码字进行纠错。
8.一种BCH编码装置,其特征在于,包括设置模块,用于设置查找表,所述查找表中预先存储余式多项式的各级系数,其中,所述余式多项式为当前编码状态寄存器的高8位与当前8位编码数据按位进行异或运算,左移104位得到的多项式对生成多项式的余式;编码模块,用于根据编码状态寄存器当前时刻的状态以及待编码的8位数据,结合所述查找表,得到编码状态寄存器下一时刻的状态。
9.根据权利要求8所述的BCH编码装置,其特征在于,所述设置模块设置的查找表中包括256个地址单元,其中,每个地址单元中存储有104比特数据。
10.根据权利要求8所述的BCH编码装置,其特征在于,所述编码模块包括查找单元,用于将当前编码状态寄存器的高8位与待编码的8位数据按位进行异或运算,根据所得到的结果在查找表中查找对应的地址单元;第一编码单元,用于将所述地址单元中104比特数据中的低8位作为下一时刻编码状态寄存器低8位的值;第二编码单元,用于将所述地址单元中104比特数据中的高96位与当前编码状态寄存器的低96位按位进行异或运算,将所得到的结果作为下一时刻编码状态寄存器高96位的值。
11.一种BCH译码装置,其特征在于,包括第一读取模块,用于读取位于闪存中页面冗余区的所有校验段数据,存储在数据缓存器中;第二读取模块,用于读取闪存中页面信息区的多个信息段数据; 错误信息记录模块,用于根据各信息段数据对应的伴随式,记录各个BCH码的错误信息,并将所述错误信息存入数据缓存器;片上系统数据读取方,用于根据所述错误信息完成纠错。
12.根据权利要求11所述的BCH译码装置,其特征在于,所述第二读取模块包括 发送单元,用于将所述多个信息段数据发送到片上系统数据读取方和伴随式生成器。
13.根据权利要求11所述的BCH译码装置,其特征在于,所述错误信息记录模块包括 第一处理单元,用于当伴随式全为0时,表明当前码字正确,将表示码字正确的错误信息存入数据缓存器,同时接收下一个信息段数据;第二处理单元,用于当伴随式不为全0时,表明当前码字有错,将计算得到的伴随式存入数据缓存器并进行关键方程求解,通过钱氏搜索确定错误位置,将包含当前码字错误个数及每个错误所在位置的错误信息存入数据缓存器,并同时接收下一个信息段数据。
14.根据权利要求11所述的BCH译码装置,其特征在于,所述片上系统数据读取方包括读取单元,用于读取数据缓存器中已存储的各码字的错误信息; 纠错单元,用于针对错误位置进行纠错。
全文摘要
本发明公开了一种BCH码编译码方法及装置,所述BCH编码方法包括设置查找表,所述查找表中预先存储余式多项式的各级系数;根据编码状态寄存器当前时刻的状态以及待编码的8位数据,结合所述查找表得到编码状态寄存器下一时刻的状态。同时本发明实施例还提供了一种BCH译码方法,包括读取位于闪存中页面冗余区的所有校验段数据,存储在数据缓存器中;读取闪存中页面信息区的多个信息段数据;根据各信息段数据对应的伴随式,确定各个错误位置,并存入数据缓存器;片上系统数据读取方根据数据缓存器中的错误信息完成纠错。本发明实施例适用于面向片上系统中闪存应用的BCH编译码。
文档编号H03M13/15GK102545914SQ20101060755
公开日2012年7月4日 申请日期2010年12月27日 优先权日2010年12月27日
发明者施旺根 申请人:联芯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1