CN1773863B - 一种可用于大容量存储器的rs(256,252)码纠错译码芯片 - Google Patents
一种可用于大容量存储器的rs(256,252)码纠错译码芯片 Download PDFInfo
- Publication number
- CN1773863B CN1773863B CN 200410090697 CN200410090697A CN1773863B CN 1773863 B CN1773863 B CN 1773863B CN 200410090697 CN200410090697 CN 200410090697 CN 200410090697 A CN200410090697 A CN 200410090697A CN 1773863 B CN1773863 B CN 1773863B
- Authority
- CN
- China
- Prior art keywords
- error
- circuit
- output
- data
- signal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明公开了一种可用于大容量存储器的RS(256,252)码纠错译码芯片,包括:待纠错的数据块输入伴随式计算电路和先入先出缓存;辅助参数计算电路与伴随式计算电路连接,根据伴随式计算结果求辅助参数;错误情况判断电路与伴随式计算电路和辅助参数计算电路相连接,根据它们的输出判断本数据块的错误情况;错误值按错误位置输出电路与错误情况判断电路连接,错误值按错误位置输出电路中的纠错选择电路,根据错误情况选择四个子模块中的一个工作,在发生错误的位置输出错误值;各子模块的输出由多路选择电路选择后输出;FIFO的输出连接到纠错译码电路,将求得的错误值与FIFO缓存的待纠错数据相加,实现纠错;最后输出时去掉校验字节,完成纠错译码。
Description
技术领域
本发明涉及一种纠错译码芯片,特别是涉及一种用于大容量存储器的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字节数据同时输入先入先出缓存电路8;辅助参数计算电路6与伴随式计算电路5连接,根据伴随式计算电路5的输出计算辅助参数;错误情况判断电路7分别与伴随式计算电路5和辅助参数计算电路6相连接,错误情况判断电路7根据伴随式计算电路5和辅助参数计算电路6的输出,判断256字节数据的错误情况;错误值按错误位置输出电路9与错误情况判断电路7相连接,根据错误情况判断电路7的输出结果,错误值按错误位置输出电路9中的纠错选择电路91选择子模块92,93,94和95之一工作,在发生错误的位置输出对应的错误值;最后各个子模块的输出通过多路选择电路96选择后输出;先入先出缓存电路8的输出和错误值按错误位置输出电路9的输出都连接到纠错译码电路10,使错误值与待纠错数据对应相加,实现纠错,最后输出时去掉校验字节,完成纠错译码。错误字节计数电路11与错误情况判断电路7相连,获得错误字节个数,累加结果返回系统总线,供系统查询。参见图2。可以根据处理器和硬件平台的数据总线宽度,使用多个纠错译码电路并行工作,提高纠错译码速度。
本发明提供的RS(256,252)码的纠错译码芯片,还包括:输入接口电路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个周期的低电平。
本发明提供的RS(256,252)码的纠错译码芯片,还包括:输出接口电路4,该输出接口电路4与纠错译码电路2和/或3相连接,获得纠错译码结果,经处理后按需要输出给下级设备,该接口可以是与高速复接器的输出接口,它实现了对纠错译码数据的并串转换,输出串行数据和串行时钟;同时,还实现旁路逻辑,当前端纠错译码电路失效时,旁路纠错译码输出,直接输出原始数据,提高了系统的可靠性和灵活性。如图7所示。
所述的输出接口电路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是本发明提供的一种RS(256,252)码纠错译码芯片实施例组成框图。
图2是本发明提供的RS(256,252)码纠错译码芯片的纠错译码电路框图。
图3是本发明的芯片中所用的伴随式计算电路框图。
图4是本发明的芯片中所用的有限域乘除运算电路在实施例1中的框图。
图5A,图5B,图5C分别是本发明芯片中所用的有限域GF(28)元素乘以α,α2和α3的电路框图。
图6是本发明芯片一种实施例1的工作时序信号波形图。
图7是实施例1芯片的输入接口电路与嵌入式x86处理器的接口电路图。
图8是本发明芯片的输出接口电路图
图9是本发明的芯片的有限域乘除运算电路在具体实施方式3中的框图。
图面说明:
1 输入接口电路 2 纠错译码电路 3 纠错译码电路
4 输出接口电路 5 伴随式计算电路 6 辅助参数计算电路
7 错误情况判断电路 8 FIFO电路
9 错误值按错误位置输出电路 10 纠错译码电路
11 错误字节计数电路
41 或非门 42 D触发器 44 选择器
45 或非门 46 与门 47 并串转换电路
101 或非门 102 D触发器 103 D触发器
105D 触发器 107 或非门 108 计数器
109 选择器 110 D触发器 91 纠错选择电路
a0,a1,a2,a3,a4,a5,a6,a7 1位寄存器
b0,b1,b2,b3,b4,b5,b6,b7 1位寄存器
c0,c1,c2,c3,c4,c5,c6,c7 1位寄存器
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细描述。
实施例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,以及
有:
上式可以改写为: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器件,也可以在芯片内直接中实现。本电路在可编程逻辑芯片中实现,使完整的电路都集成在一个芯片中,在使用该芯片时不需要其他的器件配合。
实施例3
本芯片辅助参数计算电路中,有限域乘法(平方)和除法电路的另一种实施方式如下。
有限域的乘法分两步,首先需要进行有限域乘法的两个元素,以有限域矢量表达的形式进行两个一般的乘法运算,然后其乘积通过模本元多项式的运算,得到最终的乘法运算结果。整个运算中乘法通过对应比特的相乘和相加完成,具体到硬件电路的实现就是“与门”完成比特乘,“异或门”完成比特加。
电路具体实现如下。设需要进行乘法运算的码子为a=(a7,a6,a5,a4,a3,a2,a1,a0)和b=(b7,b6,b5,b4,b3,b2,b1,b0),经过乘法运算后的结果为c=(c7,c6,c5,c4,c3,c2,c1,c0),中间结果为t=(t14,t13,t12,t11,t10,t9,t8,t7,t6,t5,t4,t3,t2,t1,t0)。其具体的实现电路如下:
t14=a7 and b7,
t13=(a7 and b6)xor(a6 and b7),
t12=(a7 and b5)xor(a6 and b6)xor(a5 and b7),
t11=(a7 and b4)xor(a6 and b5)xor(a5 and b6)xor(a4 and b7),
t10=(a7 and b3)xor(a6 and b4)xor(a5 and b5)xor(a4 and b6)xor(a3 and b7),
t9=(a7 and b2)xor(a6 and b3)xor(a5 and b4)xor(a4 and b5)xor(a3 and b6)xor(a2 andb7),
t8=(a7 and b1)xor(a6 and b2)xor(a5 and b3)xor(a4 and b4)xor(a3 and b5)xor(a2 and b6)xor(a1 and b7),
t7=(a7 and b0)xor(a6 and b1)xor(a5 and b2)xor(a4 and b3)xor(a3 and b4)xor(a2 and b5)xor(a1 and b6)xor(a0 and b7),
t6=(a6 and b0)xor(a5 and b1)xor(a4 and b2)xor(a3 and b3)xor(a2 and b4)xor(a1 and b5)xor(a0 and b6),
t5=(a5 and b0)xor(a4 and b1)xor(a3 and b2)xor(a2 and b3)xor(a1 and b4)xor(a0 and b5),
t4=(a4 and b0)xor(a3 and b1)xor(a2 and b2)xor(a1 and b3)xor(a0 and b4),
t3=(a3 and b0)xor(a2 and b1)xor(a1 and b2)xor(a0 and b3),
t2=(a2 and b0)xor(a1 and b1)xor(a0 and b2),
t1=(a1 and b0)xor(a0 and b1),
t0=a0 and b0,
c7=t7 xor t11 xor t12 xor t13,
c6=t6 xor t10 xor t11 xor t12,
c5=t5 xor t9 xor t10 xor t11,
c4=t4 xor t8 xor t9 xor t10 xor t14,
c3=t3 xor t8 xor t9 xor t11 xor t12,
c2=t2 xor t8 xor t10 xor t12 xor t13,
c1=t1 xor t9 xor t13 xort14,
c0=t0 xor t8 xor t12 xor t13 xor t14,
其中,符号xor使用异或门完成,符号and使用与门完成。
为了提高电路性能,上述电路实现中通过三级流水线实现,也就是第一级计算每两个比特的“与”操作,得到诸如(ai and bj)的中间结果,第二级对第一级的结果进行“异或”操作,得到t,第三级对第二级的结果t再次进行“异或”操作,得到最终的乘积。这样,进行一次乘法需要三个时钟周期。
平方运算的电路为乘法电路的特例,所以比乘法电路的实现更简单。设需要进行平方运算的码字为a=(a7,a6,a5,a4,a3,a2,a1,a0),经过平方运算后的结果为c=(c7,c6,c5,c4,c3,c2,c1,c0)。其具体的计算实现如下:
c7=a6,
c6=a6 xor a5 xor a3,
c5=a5,
c4=a7 xor a5 xor a4 xor a2,
c3=a6 xor a4,
c2=a6 xor a5 xor a4 xor a1,
c1=a7,
c0=a7 xor a6 xor a4 xor a0,
其中,符号xor使用异或门实现。平方运算电路通过一个时钟周期完成。
除法运算的电路的实现。设需要进行除法运算的码符号为a=(a7,a6,a5,a4,a3,a2,a1,a0)和b=(b7,b6,b5,b4,b3,b2,b1,b0),经过除法运算后的结果为c=(c7,c6,c5,c4,c3,c2,c1,c0)。根据费马小定理可知,a、b和c之间的关系为:c=a/b=a×b2+4+8+16+32+64+128=(((((((a×b2)×b4)×b8)×b16)×b32)×b64)×b128)。因此,通过乘法运算电路和平方运算电路可以完成除法运算,同时进行一次除法运算,需要7倍于乘法运算的时间,即21个时钟周期。
这种实现方式也会出现除数为0的情况,其计算结果也是0,没有物理意义。但是同样地,通过除法电路计算得到的参数的使用条件,保证了在进行这些除法计算的时候除数不为0,计算结果正确。
这种实现方法没有对芯片的块RAM资源做出要求,运算频率也很高。
其具体的电路框图参见图9。
附表
表1错误情况判断表
其中,“/”表示在判断时不考虑该值
Claims (10)
1.一种可用于大容量存储器的RS(256,252)码纠错译码芯片,包括:一伴随式计算电路(5),待纠错的每块256字节数据输入伴随式计算电路(5),计算伴随式,该256字节数据同时输入先入先出缓存电路(8);辅助参数计算电路(6)与伴随式计算电路(5)连接,根据伴随式计算电路(5)的输出计算辅助参数;错误情况判断电路(7)分别与伴随式计算电路(5)和辅助参数计算电路(6)相连接,错误情况判断电路(7)根据伴随式计算电路(5)和辅助参数计算电路(6)的输出,判断256字节数据的错误情况;错误值按错误位置输出电路(9)与错误情况判断电路(7)相连接,根据错误情况判断电路(7)的输出结果,错误值按错误位置输出电路(9)中的纠错选择电路(91)选择子模块(92),子模块(93),子模块(94)和子模块(95)之一工作,在发生错误的位置输出对应的错误值;最后各个子模块的输出通过多路选择电路(96)选择后输出;先入先出缓存电路(8)的输出和错误值按错误位置输出电路(9)的输出都连接到纠错译码电路(10),使错误值与待纠错数据对应相加,实现纠错,最后输出时去掉校验字节,完成纠错译码。
2.按权利要求1所述的可用于大容量存储器的RS(256,252)码纠错译码芯片,其特征在于,还包括一输入接口电路(1),该输入接口电路(1)一方面与具体的系统环境相连接,完成系统与纠错译码电路之间的交互,从系统中得到时钟、复位、读写控制、片选控制信号和数据,这些信号经过变换和缓存后,供给纠错译码电路;同时,系统也通过输入接口电路查询纠错译码电路的工作情况。
3.按权利要求2所述的可用于大容量存储器的RS(256,252)码纠错译码芯片,其特征在于,所述的输入接口电路(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所述的可用于大容量存储器的RS(256,252)码纠错译码芯片,其特征在于,还包括输出接口电路(4),所述的输出接口电路(4)与纠错译码电路(2)相连接,获得纠错译码结果,经处理后按需要输出给下级设备,实现对纠错译码数据的并串转换,输出串行数据和串行时钟;同时,还实现旁路逻辑,当前端的纠错译码电路失效时,旁路纠错译码输出,直接输出原始数据。
5.按权利要求4所述的可用于大容量存储器的RS(256,252)码纠错译码芯片,其特征在于,所述的输出接口电路(4)以如下的方式工作:“片选2”信号和系统的写信号通过或非门(41)和D触发器(42)产生信号(43),控制选择器(44)选择纠错译码后的数据和未经纠错译码的数据之一输出给并串转换电路(47),实现旁路功能;“片选1”信号和系统的写信号通过或非门(45)和与门(46)产生并串转换电路(47)的LOAD信号,并串转换电路(47)完成并串转换,输出串行数据和串行时钟。
6.按权利要求1所述的可用于大容量存储器的RS(256,252)码纠错译码芯片,其特征在于,芯片接口采用的CPU是x86或PowerPC,总线是PCI或USB或IEEE1394总线。
7.按权利要求1所述的可用于大容量存储器的RS(256,252)码纠错译码芯片,其特征在于,所述的伴随式计算电路(5),采用译码数据多项式R(x)除以最小多项式所得的余式来求伴随式的实现方法。
8.按权利要求1所述的可用于大容量存储器的RS(256,252)码纠错译码芯片,其特征在于,所述的先入先出缓存电路(8):采用外部单独的FIFO器件,或在可编程逻辑芯片中直接实现。
9.按权利要求1、2或4所述的可用于大容量存储器的RS(256,252)码纠错译码芯片,其特征在于,错误字节计数电路(11)把错误情况判断电路(7)输出的错误情况转化为计数值,并进行累加,累加结果返回系统总线,供系统查询。
10.按权利要求1所述的可用于大容量存储器的RS(256,252)码纠错译码芯片,其特征在于,辅助参数计算电路(6)中的乘法和除法运算,利用芯片中的块RAM资源,通过两次查表和一次模加实现高速的乘法和除法运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200410090697 CN1773863B (zh) | 2004-11-12 | 2004-11-12 | 一种可用于大容量存储器的rs(256,252)码纠错译码芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200410090697 CN1773863B (zh) | 2004-11-12 | 2004-11-12 | 一种可用于大容量存储器的rs(256,252)码纠错译码芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1773863A CN1773863A (zh) | 2006-05-17 |
CN1773863B true CN1773863B (zh) | 2010-06-02 |
Family
ID=36760659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200410090697 Expired - Fee Related CN1773863B (zh) | 2004-11-12 | 2004-11-12 | 一种可用于大容量存储器的rs(256,252)码纠错译码芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1773863B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976584B (zh) * | 2010-10-27 | 2013-01-30 | 记忆科技(深圳)有限公司 | 准循环低密度奇偶校验码译码器及译码方法 |
CN104378121A (zh) * | 2013-08-13 | 2015-02-25 | 北京兆易创新科技股份有限公司 | 一种译码方法及译码装置 |
CN111162799B (zh) * | 2019-12-27 | 2023-08-29 | 北京时代民芯科技有限公司 | 一种抗辐射rs码译码电路 |
CN114095039B (zh) * | 2021-10-18 | 2023-11-28 | 深圳市紫光同创电子有限公司 | 一种支持码字同步的伴随式计算方法及计算电路 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1263383A (zh) * | 1998-12-11 | 2000-08-16 | 松下电器产业株式会社 | 里德-索洛蒙解码装置及其控制方法 |
US20030135810A1 (en) * | 2002-01-17 | 2003-07-17 | Via Technologies, Inc. | Multi-mode reed-solomon decoder based upon the PGZ algorithm and associated method |
CN1531211A (zh) * | 2003-03-12 | 2004-09-22 | 松下电器产业株式会社 | 里德索洛蒙码或扩展里德索洛蒙码的译码方法和译码器 |
EP1370004A3 (en) * | 1996-10-25 | 2005-05-04 | Matsushita Electric Industrial Co., Ltd. | Arithmetic unit for Reed-Solomon decoder |
-
2004
- 2004-11-12 CN CN 200410090697 patent/CN1773863B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1370004A3 (en) * | 1996-10-25 | 2005-05-04 | Matsushita Electric Industrial Co., Ltd. | Arithmetic unit for Reed-Solomon decoder |
CN1263383A (zh) * | 1998-12-11 | 2000-08-16 | 松下电器产业株式会社 | 里德-索洛蒙解码装置及其控制方法 |
US20030135810A1 (en) * | 2002-01-17 | 2003-07-17 | Via Technologies, Inc. | Multi-mode reed-solomon decoder based upon the PGZ algorithm and associated method |
CN1531211A (zh) * | 2003-03-12 | 2004-09-22 | 松下电器产业株式会社 | 里德索洛蒙码或扩展里德索洛蒙码的译码方法和译码器 |
Non-Patent Citations (2)
Title |
---|
刘大海,孙辉先.RS(255,223)编码器的实现.宇航学报21 3.2000,21(3),118-126. |
刘大海,孙辉先.RS(255,223)编码器的实现.宇航学报21 3.2000,21(3),118-126. * |
Also Published As
Publication number | Publication date |
---|---|
CN1773863A (zh) | 2006-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Albertengo et al. | Parallel CRC generation | |
CN100512075C (zh) | 数字信号处理器以及使用它的设备和系统 | |
US7590930B2 (en) | Instructions for performing modulo-2 multiplication and bit reflection | |
KR101616478B1 (ko) | 프로그램가능한 프로세서 상에서의 임의의 갈루아 필드 산술연산의 구현 | |
CN101185245B (zh) | 用于执行循环冗余码检错的方法、设备和系统 | |
JP2010518464A (ja) | 半導体記憶装置 | |
CN101227194A (zh) | 用于并行bch编码的电路、编码器及方法 | |
CN105680992A (zh) | 陪集划分(n,n(n-1),n-1)置换群码的构造方法及其码集合产生器 | |
CN101296053A (zh) | 计算循环冗余校验码之方法及系统 | |
CN101507120A (zh) | 并行剩余运算器和并行剩余运算方法 | |
CN1773863B (zh) | 一种可用于大容量存储器的rs(256,252)码纠错译码芯片 | |
US4187500A (en) | Method and device for reduction of Fibonacci p-codes to minimal form | |
Daneshbeh et al. | A class of unidirectional bit serial systolic architectures for multiplicative inversion and division over GF (2/sup m/) | |
JP2000004169A (ja) | Crc演算方法及びcrc演算回路 | |
CN106549677A (zh) | 高速并行bch码译码方法及装置 | |
US20140139365A1 (en) | System for rns based analog-to-digital conversion and inner product computation | |
JPS61277231A (ja) | エラ−バ−スト訂正を行う情報伝送方法及びこの方法を使用する符号化・復号化装置 | |
JP3659320B2 (ja) | 乗算モジュール、乗法逆元演算回路、乗法逆元演算制御方式、該乗法逆元演算を用いる装置、暗号装置、誤り訂正復号器 | |
CN1773864B (zh) | 一种纠错能力为2的扩展里德—所罗门码的译码方法 | |
CN2788455Y (zh) | 一种纠错译码芯片 | |
EP0936537B1 (en) | Cyclic redundancy check in a computer system | |
US7739323B2 (en) | Systems, methods and computer program products for providing a combined moduli-9 and 3 residue generator | |
EP2434650A1 (en) | Reed-Solomon encoder with simplified Galois field multipliers | |
Lee et al. | Implementation of parallel BCH encoder employing tree-type systolic array architecture | |
Yang et al. | An area-efficient BCH codec with echelon scheduling for NAND flash applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100602 Termination date: 20151112 |
|
EXPY | Termination of patent right or utility model |