论文部分内容阅读
Flash Memory作为一种使用寿命长、非易失性的存储器,因其读写速度快、在断电的情况下仍能保持所存储的数据信息等优点在存储领域获得了十分普遍的应用。但是,随着Flash Memory制造工艺以及芯片集成度的提高导致其内部的比特错误率也在不断上升,而目前集成于芯片内的通用纠错技术的纠错能力有限,并不能很好满足当前Flash Memory的纠错能力需求。针对以上的问题,作者根据国内外的研究趋势,提出了基于BCH编译码算法的Flash Memory纠错模块(ECC),并用FPGA芯片进行仿真验证。仿真结果显示并行BCH编码译码器提高了Flash Memory的纠错能力与编码效率。本文的研究内容主要包括以下几个方面:(1)首先介绍了BCH算法的发展历程,BCH码是至今为止所发现的最好的线性分组码之一,适合于对Flash Memory中的随机错误进行纠错。在此基础上,介绍了BCH码的一些相关的代数知识,包括有限域理论、 GF (2m)的构成、有限域的特征和元素的级数以及最小多项式等。在了解BCH码相关知识的基础上,提出BCH码适合于对Flash Memory中的随机错误进行纠错。整个BCH编码码包括编码和译码两个部分,编码过程即通过信息多项式和生成多项式得到校验码多项式,然后得到码字多项式;译码过程首先根据接收码字多项式计算出对应的各个伴随式,接着求出错误位置多项式,最后通过Chien搜索电路求出错误位置完成译码。(2)从编码效率、纠错能力等方面考虑如何设计BCH码的编译码电路。在BCH编码电路中,限制BCH编码效率的因素主要是数据的传输宽度,由于串行编码电路每个时钟只能处理1bit位的数据,处理效率慢,当码长超过一定长度后,编码器的不能满足Flash Memory纠错的实时需求。在对BCH编码电路的研究基础上,推导出BCH并行编码电路,实现一个时钟可以处理多位数据,提高了数据的处理效率。在BCH译码电路中,同BCH编码电路一样,通过改进伴随式计算电路以及Chien搜索电路,使其从串行改进到并行,提高一个时钟的处理能力,从而提高BCH译码的效率。(3)使用Verilog HDL语言对BCH编码译码电路进行实现与仿真。首先,使用BCH编码模块对输入到模块中的数据进行编码,由生成多项式生成195比特的校验位,将生成的校验位储存到Flash Memory的SpareArea中;使用BCH译码模块对输入到模块中的码字进行译码,求出15个伴随多项式,并求出错误位置多项式,若发生错误用Chien搜索模块对错误位置多项式进行检索,求出错误位置,根据错误位置对码字中的错误进行纠错。实验结果显示,基于BCH编译码算法的ECC模块纠错能力得到巨大的提高,达到15bit,并且可以在25MHz的时钟频率正常工作。