一种纠错译码芯片的制作方法

文档序号:6754922阅读:228来源:国知局
专利名称:一种纠错译码芯片的制作方法
技术领域
本实用新型涉及一种纠错译码芯片,特别是涉及一种适用于RS(256,252)码的纠错译码芯片。
背景技术
在信息的传输和存储中,由于信道或者环境噪声的干扰,往往会导致传输和存储的信息发生错误。1948年,香农提出了信息论。其中,“有扰离散信道的信道编码定理”指出通过增加信息的冗余进行差错控制的技术,即信息数据在传输和存储前进行编码,在接收和提取数据时通过冗余信息译码,纠正在传输和存储过程中发生的错误。人们研究出了多种码字和编译码方法。1960年,REED和SOLOMON提出了里德-所罗门码,简称RS码。RS码具有优秀的纠突发错误的能力,在无线通信和存储系统中应用广泛。
由于RS码自身的特点,RS码的译码方法本身比较复杂,译码方法的工程实现比较困难,工程成本较高,且难以达到理想的译码速度。一种RS码的译码器能否工程实现以及工程实现的代价和效果如何,往往成为该RS码是否实用的决定因素。而RS译码器的工程实现也成为工程技术人员研究和实践的焦点。
大容量存储设备广泛应用于航天、工业、消费电子等领域的数据存储。恶劣的环境将造成存储数据发生不可预见的错误;在消费电子领域的磁、光存储介质,也会由于物理破损造成数据丢失和损坏。因此,数据的正确可靠和高速存取技术是大容量存储设备的关键技术之一。目前,许多大容量存储设备都采用了RS码对数据进行处理作为差错控制的措施。但是,由于大容量存储设备自身的特点,如要求保证相当高的存储容量,高速数据存取,控制复杂逻辑等等,都要求采用一种简单高效的RS码字和有效的实现方式。过去往往采用软件进行译码,但是对于大容量的存储数据,例如存储容量为2Gbit的数据,则译码时间需要大约至少7个小时。这些都迫切要求RS译码器有一个高速高效的硬件工程实现。

发明内容
本实用新型的目的在于克服许多大容量存储设备采用的RS码对数据进行处理作为差错控制的方法,往往采用软件进行译码,译码时间太长的缺陷;从而为大容量存储设备提供一种RS(256,252)码的纠错译码芯片,该芯片能够对大容量存储设备中经过RS(256,252)编码的数据进行高速纠错译码,纠正两个字节以内的错误,同时具有较高的纠错译码速度,整个纠错译码电路全部在可编程逻辑器件(可以是FPGA)芯片中实现。
本实用新型提供的纠错译码芯片(RS(256,252)码的纠错译码芯片),包括一伴随式计算电路5,待纠错的每块数据(256字节)输入伴随式计算电路5,计算伴随式,该256字节数据同时输入FIFO电路8;辅助参数计算电路6与伴随式计算电路5连接,根据伴随式计算电路5的输出计算辅助参数;错误情况判断电路7分别与伴随式计算电路5和辅助参数计算电路6相连接,错误情况判断电路7根据伴随式计算电路5和辅助参数计算电路6的输出,判断256字节数据的错误情况;错误值按错误位置输出电路9与错误情况判断电路7相连接,根据错误情况判断电路7的输出结果,错误值按错误位置输出电路9中的纠错选择电路91选择子模块92,93,94和95之一工作,在发生错误的位置输出对应的错误值;最后各个子模块的输出通过多路选择电路96选择后输出;FIFO电路8的输出和错误值按错误位置输出电路9的输出都连接到纠错译码电路10,使错误值与待纠错数据对应相加,实现纠错,最后输出时去掉校验字节,完成纠错译码。错误字节计数电路11与错误情况判断电路7相连,获得错误字节个数,累加结果返回系统总线,供系统查询。参见图2。可以根据处理器和硬件平台的数据总线宽度,使用多个纠错译码电路并行工作,提高纠错译码速度。
本发明提供的纠错译码芯片,还包括输入接口电路1,该输入接口电路1一方面与具体的系统环境相连接,完成系统与纠错译码电路之间的交互,从系统中得到时钟、复位、读写控制、片选等控制信号和数据/地址信号,同时系统也通过输入接口电路查询纠错译码电路的工作情况。另一方面与纠错译码电路2和3相连,供给纠错译码电路正确的数据输入和纠错译码使能信号。该电路主要的功能是锁存总线上的待纠错译码数据;产生纠错译码电路的使能控制信号;返回纠错译码电路的状态和差错字节计数,参见图7。
所述的输入接口电路1包括“片选1”信号和系统的写信号通过或非门101和D触发器102,产生纠错译码器的时钟,通过D触发器103获得并缓存系统总线上的待译码的数据;“片选2”信号和系统写信号通过或非门107控制D触发器105的使能,同时决定计数器108是否清零;总线上的信号104决定信号106的值,而信号106决定选择器109选择输出0还是输出计数器108的计数结果;信号通过D触发器110输出最终的译码器使能信号。计数器108重复输出256个时钟周期的高电平和13个周期的低电平。
本发明提供的纠错译码芯片,还包括输出接口电路4,该输出接口电路4与纠错译码电路2和/或3相连接,获得纠错译码结果,经处理后按需要输出给下级设备,该接口可以是与高速复接器的输出接口,它实现了对纠错译码数据的并串转换,输出串行数据和串行时钟;同时,还实现旁路逻辑,当前端纠错译码电路失效时,旁路纠错译码输出,直接输出原始数据,提高了系统的可靠性和灵活性。
所述的输出接口电路4包括“片选2”信号和系统的写信号通过或非门41和D触发器42产生信号43,控制选择器44选择纠错译码后的数据和未经纠错译码的数据之一输出给并串转换电路47,实现旁路功能;“片选1”信号和系统的写信号通过或非门45和与门46产生并串转换电路47的LOAD信号,并串转换电路47完成并串转换,输出串行数据和串行时钟。如图8所示。
所述的CPU可以是x86,PowerPC等CPU,总线可以是PCI、USB、IEEE1394等总线。
所述的伴随式计算电路5,该电路的实现有多种方式,本实施例采用译码数据多项式R(x)除以最小多项式所得的余式来求伴随式的实现方法。每个时钟周期计算一次,当所有的数据输入芯片以后,伴随式即同时计算完成。
本发明的纠错译码芯片是RS(256,252)码的纠错译码芯片,其优点在于1、本发明提供的芯片可以用于大容量存储器,该芯片具有速度快,效率高的纠错译码能力,即RS译码器有一个高速高效的硬件工程实现。
2、本发明的芯片具有差错字节计数功能、具有旁路可靠性设计、多位数据并行纠错译码和多种接口方式。


图1是本发明提供的纠错译码芯片的一种实施例组成框图。
图2是本发明提供的纠错译码芯片的纠错译码电路框图。
图3是本发明的芯片中所用的伴随式计算电路框图。
图4是本发明的芯片中所用的有限域乘除运算电路在实施例1中的框图。
图5A,图5B,图5C分别是本发明芯片中所用的有限域GF(28)元素乘以α,α2和α3的电路框图。
图6是本发明芯片一种实施例1的工作时序信号波形图。
图7是实施例1芯片的输入接口电路与嵌入式x86处理器的接口电路图。
图8是本发明芯片的输出接口电路图图9是本发明的芯片的有限域乘除运算电路在具体实施方式
2中的框图。
图面说明1输入接口电路2 错译码电路3 错译码电路4输出接口电路5 伴随式计算电路6 辅助参数计算电路7错误情况判断电路8 FIFO电路9错误值按错误位置输出电路10纠错译码电路11 错误字节计数电路41 或非门 42D触发器 44选择器45 或非门 46与门 47并串转换电路101 或非门 102 D触发器 103 D触发器105 D触发器 107 或非门108 计数器109 选择器 110 D触发器 91纠错选择电路a0,a1,a2,a3,a4,a5,a6,a71位寄存器b0,b1,b2,b3,b4,b5,b6,b71位寄存器c0,c1,c2,c3,c4,c5,c6,c71位寄存器具体实施方式
以下结合附图和具体实施方式
对本发明作进一步详细描述。
实施例1参见图2,待译码数据块进入伴随式计算电路5计算伴随式,数据同时进入先入先出缓存(FIFO)电路8。辅助参数计算电路6与伴随式计算电路5连接,根据伴随式计算电路5的输出来计算辅助参数。错误情况判断电路7分别与伴随式计算电路5和辅助参数计算电路6相连接,根据伴随式计算电路5和辅助参数计算电路6的计算结果,错误情况判断电路7判断256字节数据的错误情况。错误值按错误位置输出电路9与错误情况判断电路7相连接,根据错误情况判断电路7的输出结果,错误值按错误位置输出电路9中的纠错选择电路91选择子模块92,93,94和95中的一个模块工作,在发生错误的位置输出对应的错误值。最后各个子模块的输出通过多路选择电路96输出。FIFO电路8的输出和电路9的输出都连接到纠错译码电路10,通过纠错译码电路10,将求得的错误值与FIFO缓存的待纠错数据相加,实现纠错;最后输出时去掉校验字节,完成纠错译码。错误字节计数电路11与错误情况判断电路7相连,获得错误字节个数,并进行累加,累加结果返回系统总线,供系统查询。
在纠错译码电路中,伴随式计算电路5参见图3。伴随式计算电路5实现有多种方式,本实施例采用译码数据多项式R(x)除以最小多项式所得的余式来求伴随式的方法。伴随式计算电路5中乘以α,α2和α3的电路分别参见图5A,图5B,图5C中的电路。图中每个电路都有8个1位寄存器,用以存放初值和每次运算的结果。在每个时钟周期内,这三个电路都分别完成一次乘以α,α2和α3的运算。伴随式计算电路5每个时钟周期运算一次,当所有的数据输入芯片以后,伴随式即同时计算完成。在每个时钟周期内,S0与输入的并行数据累加;S1、S2和S3寄存器中保存的上次计算的结果分别乘以α,α2和α3,并与8位并行数据相加,结果仍保存回原寄存器。256个时钟周期以后,各个寄存器中保存的就是伴随式计算结果。
辅助参数计算电路6中乘法和除法运算的实现,利用有限域GF(28)元素与其本身相对于本原元的幂次之间的对应关系,通过查表把域元素映射成自己的指数,把乘法和除法操作转换成模255的加法和减法操作,最后再把模加减运算的结果映射回有限域。每次运算都通过两次查表和一次模加完成。该电路所实现的正变换和反变换需要两个映射表,每个表用256字节的RAM实现。由于有限域元素0无法进行映射,所以,当进行运算的元素中有一个为0时,不需要映射和模255加减的运算,直接输出计算结果0。虽然如果除数为0计算结果也是0,没有物理意义,但是通过除法电路计算得到的参数(E、CO0和CO1)的使用条件,保证了在进行这些除法计算的时候除数不为0,计算结果正确。
这样的实现方式不仅节省了可编程逻辑器件芯片中宝贵的逻辑资源,而且充分利用了芯片的块RAM资源。所实现的乘法和除法运算最多只需要4个时钟周期,但是该实现方式要求芯片具有一定的块RAM容量,其具体实现电路见图4。
错误值按错误位置输出电路9,其中的子模块93,94和95中计算错误位置的电路,和子模块95中计算错误值的电路,都是通过图5A,图5B和图5C中有限域GF(28)元素乘以α,α2和α3电路实现的。
图6是纠错译码电路的时序信号波形图。图中CLK为时钟信号,RST为复位信号,ENIN为输入使能信号,RS为输入待纠错译码数据,ECASE为错误情况,M为纠错译码后数据,ENOUT为输出使能。每块256字节数据输入纠错译码电路后经过14个时钟周期,输出第一个经过纠错译码的字节;经过13个时钟周期,该电路可以开始接收新一批256字节数据;每个待纠错字节进入纠错译码电路后经过270个时钟周期,输出相应的纠错译码结果。
实施例2参见图1,本实施例的RS(256,252)码纠错译码芯片还包括输入接口电路1,实现了与嵌入式x86处理器的接口;其中输入接口电路1一方面与具体的系统环境相连接,从系统中得到时钟、复位、读写控制、片选等控制信号和数据/地址信号,另一方面与纠错译码电路2和3相连,供给纠错译码电路正确的数据输入和纠错译码使能信号。输出接口电路4与纠错译码电路2和3相连接,获得纠错译码结果,实现并给下级设备例如高速多路复接器,输出串行数据和串行数据时钟。
本实施例包括两个纠错译码电路2或3,其结构同实施例1,在该实施例中两个RS(256,252)纠错译码电路2和3,并行接收16位总线上的数据,其工作频率达到了100MHz以上,所以数据率至少有1600Mbps。每块数据输入纠错译码电路后最多经过14个时钟周期,就能输出第一个经过纠错译码的字节,即每个待纠错字节进入纠错译码电路后经过270个时钟周期输出相应的纠错译码结果。这样,完成容量为2Gbit的数据的纠错译码工作只用大约1.42秒,远远小于软件译码时间。上述计算是对于具体实施方式
1中与x86CPU接口的芯片实现而言的,对于其他平台,由于并行译码模块数量的增加数据率还可能更高。另外,整个纠错译码电路集成在一片芯片中,与之交互的信号很少,对大容量存储器的复杂性影响很小。同时,多种接口的实现使得本发明所述的芯片可以应用于多种系统环境。
在纠错译码电路中,伴随式计算电路5中乘以α,α2和α3的电路参见图图5A,图5B,图5C。在每个时钟周期内,S0与输入的并行数据累加;S1、S2和S3寄存器中上次计算的结果分别乘以α,α2和α3,并与8位并行数据相加,结果仍保存回原寄存器。256个时钟周期以后,各个寄存器中保存的就是伴随式计算结果。
由S=R·HT=(S0,S1,S2,S3)=(r0,r1,...,r255)·HT,以及HT=100011111αα2α3············1α254(α2)254(α3)254,]]>HT为256×4的矩阵有S0=r0+r1+...+r255=Σj=0255rj]]>Si=r1+r2α...+r255α254=Σj=1255rjαi(j-1),]]>i=1,2,3上式可以改写为Si=(...((r255αi+r254)αi+r253)αi+...+r1)αi+r1,i=1,2,3在每个时钟周期,上周期S1、S2和S3的计算结果乘以αi,与本周期输入的码字相加,作为本次计算结果;S0累加输入码字。各个伴随式的初始值为0。
(2)辅助参数计算电路6辅助参数B0、B1、B2、E、CO0和CO1都分别需要通过伴随式S0,S1,S2和S3的平方、乘除和相加运算才能求得。这些数据都是以有限域的矢量形式表示的,因此计算是有限域中的运算。加法电路是通过两数对应位的“异或”电路实现的,不需要进位。有限域元素乘法(平方)和除法的电路实现方法很多,但是往往速度较慢或者占用大量的逻辑资源,尤其是除法电路。本发明实现的有限域GF(28)元素的乘法和除法电路,采用两种实现方法,一种是通过查表映射,把乘除运算转换为加减运算的实现方法;另一种是直接利用有限域的多项式模乘实现乘法,再利用乘法电路实现除法的实现方法。
(3)错误情况判断电路7本实施例所实现的错误情况判断电路根据表1实现。判断条件没有采用逻辑延迟较大的组合逻辑电路一次实现,而是把各个条件放在伴随式计算完成的时钟周期和辅助参数计算完成的时钟周期生成。
(4)错误值按错误位置输出电路9该电路中错误位置的指示通过钱搜索电路完成,错误值计算电路与钱搜索电路同步进行。该电路每周期运算一次,与FIFO缓存数据同步输出。钱搜索电路将有限域元素α254到α的倒数依次代入差错位置方程中,从高位开始逐字校验,如果代入后的方程成立,则说明此时FIFO输出的数据发生错误,否则,说明该数据正确。
第一种情况,始终输出0。
第二种情况,在第256时钟周期,输出错误值S0;其他时钟周期,输出0;第三种情况,在前255个时钟周期,差错位置方程S2+S1αi=0的求解通过钱搜索电路实现。即在每个时钟周期,S1与以S2为初值的乘α电路的计算结果相加,如果和为0,则输出错误值S0,否则,输出0;在第256时钟周期,输出错误值0;第四种情况,在前255个时钟周期,差错位置方程S2+S1αi=0的求根通过钱搜索电路实现,即在每个时钟周期,S1与以S2为初值的乘α电路的计算结果相加,如果和为0,则输出错误值E,否则,输出0;在第256时钟周期,输出错误值E+S0;第五种情况,在前255个时钟周期,每个时钟周期,CO0与以CO1为初值的乘α电路的计算结果相加,计算错误值;差错位置方程B0(αi)2+B2αi+B1=0的求根通过钱搜索电路实现,即在每个时钟周期,以B1为初值的乘α2电路的计算结果,加上以B2为初值的乘α电路的计算结果,在加上B0,如果和为0,则输出此时的错误值,如果和不为0,则输出0;在第256时钟周期,输出错误值0;根据错误情况,选择以上五种情况的错误值输出。
(5)纠错译码电路10把输出接口电路4输出与FIFO 8的输出,作为异或门的输入,进行纠错;输出每256字节数据的前252个字节,完成译码。
(6)错误字节计数电路11差错字节计数电路把错误情况判断电路输出的错误情况转化为计数值,并进行累加。累加结果和纠错结果一起输出。本电路将计数结果返回数据总线,供CPU读取。
(7)先入先出缓存电路(FIFO)8可以使用外部单独的FIFO器件,也可以在芯片内直接中实现。本电路在可编程逻辑芯片中实现,使完整的电路都集成在一个芯片中,在使用该芯片时不需要其他的器件配合。
本芯片辅助参数计算电路中,有限域乘法(平方)和除法电路的另一种实施方式如图9所示的具体的电路框图。
表1 错误情况判断表


其中,“/”表示在判断时不考虑该值
权利要求1.一种纠错译码芯片,包括错误值按错误位置输出电路(9)与错误情况判断电路(7);其特征在于,还包括一伴随式计算电路(5),待纠错的每块数据(256字节)输入伴随式计算电路(5),计算伴随式,该256字节数据同时输入FIFO电路(8);辅助参数计算电路(6)与伴随式计算电路(5)连接,根据伴随式计算电路(5)的输出计算辅助参数;错误情况判断电路(7)分别与伴随式计算电路(5)和辅助参数计算电路(6)相连接,错误情况判断电路(7)根据伴随式计算电路(5)和辅助参数计算电路(6)的输出,判断256字节数据的错误情况;错误值按错误位置输出电路(9)与错误情况判断电路(7)相连接,根据错误情况判断电路(7)的输出结果,错误值按错误位置输出电路(9)中的纠错选择电路(91)选择子模块(92),子模块(93),子模块(94)和子模块(95)之一工作,在发生错误的位置输出对应的错误值;最后各个子模块的输出通过多路选择电路(96)选择后输出;FIFO电路(8)的输出和错误值按错误位置输出电路(9)的输出都连接到纠错译码电路(10),使错误值与待纠错数据对应相加,实现纠错,最后输出时去掉校验字节,完成纠错译码。
2.按权利要求1所述的纠错译码芯片,其特征在于,还包括一输入接口电路(1),该输入接口电路(1)一方面与具体的系统环境相连接,完成系统与纠错译码电路之间的交互,从系统中得到时钟、复位、读写控制、片选控制信号和数据,这些信号经过变换和缓存后,供给纠错译码电路;同时,系统也通过输入接口电路查询纠错译码电路的工作情况。
3.按权利要求2所述的纠错译码芯片,其特征在于,所述的输入接口电路(1)包括“片选1”信号和系统的写信号通过或非门(101)和D触发器(102),产生纠错译码器的时钟,通过D触发器(103)获得并缓存系统总线上的待译码数据;“片选2”信号和系统写信号通过或非门(107)控制D触发器(105)的使能,同时决定计数器(108)是否清零;总线上的信号(104)决定信号(106)的值,而信号(106)决定选择器(109)选择输出0还是输出计数器(108)的计数结果;信号通过D触发器(110)输出最终的译码器使能信号;计数器(108)重复输出256个时钟周期的高电平和13个周期的低电平。
4.按权利要求1所述的纠错译码芯片,其特征在于,还包括输出接口电路(4),所述的输出接口电路(4)与纠错译码电路(2)相连接,获得纠错译码结果,经处理后按需要输出给下级设备,实现对纠错译码数据的并串转换,输出串行数据和串行时钟;同时,还实现旁路逻辑,当前端纠错译码电路失效时,旁路纠错译码输出,直接输出原始数据。
5.按权利要求4所述的纠错译码芯片,其特征在于,所述的输出接口电路(4)包括“片选2”信号和系统的写信号通过或非门(41)和D触发器(42)产生信号(43),控制选择器(44)选择纠错译码后的数据和未经纠错译码的数据之一输出给并串转换电路(47),实现旁路功能;“片选1”信号和系统的写信号通过或非门(45)和与门(46)产生并串转换电路(47)的LOAD信号,并串转换电路(47)完成并串转换,输出串行数据和串行时钟。
6.按权利要求1所述的纠错译码芯片,其特征在于,所述的CPU是x86或PowerPC,总线是PCI或USB或IEEE1394总线。
7.按权利要求1所述的纠错译码芯片,其特征在于,所述的伴随式计算电路(5),采用译码数据多项式R(x)除以最小多项式所得的余式来求伴随式的方法实现的电路。
8.按权利要求1、2或4所述的纠错译码芯片,其特征在于,所述的先入先出缓存电路(8)采用外部单独的FIFO器件,或在可编程逻辑芯片中直接实现。
9,按权利要求1、2或4所述的纠错译码芯片,其特征在于,所述的错误字节计数电路(11)为一用于把错误情况判断电路(7)输出的错误情况转化为计数值,并进行累加,累加结果返回系统总线,供系统查询的电路。
专利摘要本实用新型涉及一种纠错译码芯片,包括256字节数据输入伴随式计算电路计算伴随式,同时输入FIFO电路;辅助参数计算电路与伴随式计算电路连接,错误情况判断电路分别与伴随式计算电路和电路相连接,错误情况判断电路判断256字节数据的错误情况;错误位置按错误位置输出电路与错误情况判断电路相连接,错误位置按错误位置输出电路中的纠错选择电路91选择不同的子模块92,93,94和95,按照错误位置输出错误值;各个子模块的输出通过多路选择96输出;FIFO电路的输出和电路的输出连接到纠错译码电路,错误字节计数电路与错误情况判断电路相连,获得错误字节个数,累加后输出。
文档编号G11B20/18GK2788455SQ20042011274
公开日2006年6月14日 申请日期2004年11月12日 优先权日2004年11月12日
发明者曹松, 张玉良, 陈斌, 沈卫华, 陈小敏, 孙辉先 申请人:中国科学院空间科学与应用研究中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1