CN1637713A - 用于双重错误修正和三重错误检测的(18,9)错误修正码 - Google Patents
用于双重错误修正和三重错误检测的(18,9)错误修正码 Download PDFInfo
- Publication number
- CN1637713A CN1637713A CNA2004100904619A CN200410090461A CN1637713A CN 1637713 A CN1637713 A CN 1637713A CN A2004100904619 A CNA2004100904619 A CN A2004100904619A CN 200410090461 A CN200410090461 A CN 200410090461A CN 1637713 A CN1637713 A CN 1637713A
- Authority
- CN
- China
- Prior art keywords
- word
- code word
- indication
- generates
- syndrome
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
Description
技术领域
本发明一般涉及用于计算机和数据通信的错误修正码,并尤其涉及一种特定的用于计算机存储器的双重错误修正和三重错误检测码。
背景技术
在计算机和数据通信中长期使用错误修正码(ECC)。通常这种码由以下方法构造成,即使用一种线性矩阵变换向k个消息符号添加r=n-k个校验符号以形成一n-符号码字,该线性矩阵变换的形式为:
C=MG,
其中C=(c0,c1,...,cn-1)是一代表该n-符号码字的1×n的行向量,M=(m0,m1,...,mn-1)是一代表该k-符号消息或数据字的1×k的行向量,G是一被称为生成矩阵的k×n矩阵。(或者,如果假设C和M是列向量,则该转换就变成C=GtM,其中Gt是G的转置矩阵)。尽管符号不必须是位,但它们通常是位,并且以下讨论将参照位进行。码字C或者被写入一存储介质或通过一信道传播。存储介质和狭义的信道在广义上都可认为是“信道”。
在解码侧,从一存储介质取得或从一信道接收到一n-位字R。该字R是原始生成的码字C和一代表可能已发生的任何错误的n-位错误字E(其可以为0)之和。为了判定该所接收的字是否准确地代表该原始码字C,通过一矩阵变换利用该所接收的字R来生成一k-位校验子(syndrome)向量,该矩阵变换的形式为:
S=RHt,
其中S是校验子向量,Ht是一被称为奇偶校验矩阵的r×n矩阵H的转置矩阵。(或者,如果假设S是一列向量,则该转换就变成S=HRt,其中Rt是R的转置矩阵。)
选择该奇偶校验矩阵H以使得其行向量位于生成矩阵G的行向量的零空间内(即GHt=0),从而对于一原始码字C,
CHt=0,
因为R=C+E,所以
S=(C+E)Ht=CHt+EHt=0+EHt=EHt。
换句话说,校验子向量S独立于该原始码字C,仅是错误字E的函数。解码器使用该校验子向量S重建该错误字(根据最大似然准则),然后从所接收的字R中减去该错误字以重建该码字C。
码是从一组给定的数据字M中生成的一组码字C。(即使两个生成矩阵不同,它们的码空间可能相同。)通常用码的数据字M和码字C中的符号的数量给码分类。因此,一(n,k)码具有在k个符号的数据字上生成的n个符号的码字。
码的检测和修正错误的能力依赖于码的不同码字之间的所谓汉明距离(Hamming distance)。通常,两个码字之间的汉明距离是在其中这两个码字不同的符号的数量。如果一码的最小汉明距离是t+1,则该码可最多检测到t个错误,因为如果其某一码字具有t个或更少的错误,则它不会已变成任何其他的码字。同样地,如果一码的最小汉明距离是2t+1,则该码可最多修正t个错误,因为一个所接收到的具有t个或更少的错误的字将位于相对于一个且仅有一个码字t个符号的汉明距离内,从而该字可被确定地解码为该码字。
此外,如果一码的最小汉明距离是2t+2,则该码可最多修正t个错误并也可检测到t+1个错误,因为一个所接收的具有t+1个错误的字将不会位于距离任何码字t个符号的汉明距离内,所以其将被检测为具有无法修正的错误(UE)。从上述讨论可见,为了修正2个或更少的错误并同时检测3个错误,一码必须具有6个符号的最小汉明距离。这种码通常称为双重错误修正和三重错误检测(DEC-TED)码。作为另一个示例,最小汉明距离为4个符号的码可修正单个错误并最多检测两个错误,并且被称为单个错误修正和双重错误检测(SEC-DED)码。
单个错误修正和双重错误检测(SEC-DED)码已广泛地用于防备计算机存储子系统的故障。当特别重要的数据例如计算机中的存储保护键需要高级别的错误保护时,SEC-DED码会不能胜任。在此情况下,会需要一种双重错误修正、三重错误检测(DEC-TED)码。
可根据著名的BCH(Bose-Chaudhuri-Hocquenghem)理论(见W.Peterson和E.J.Weldon Jr.,错误修正码(Error-Correcting Codes),1972,MIT出版社)构建能够修正双重错误和检测三重错误的错误修正码。一长度为n=2m-1并具有2m+1个校验位的本原BCH DEC-TED码由一奇偶校验矩阵获得,该矩阵的每个列向量k由1、αk和α3k组成,其中α是具有2m个元素的有限域的一个素元。Olderdissen在美国专利4,556,977中描述了一种本原BCH DEC-TED的快速解码方法。另一方面,一长度为n=2m+1并具有2m+1个校验位的非本原BCH DEC-TED码可由一奇偶校验矩阵获得,该矩阵的每个列向量k由1和βk组成,其中β是在具有22m个元素的有限域内的、xn-1的一本原根。非本原BCHDEC-TED码比本原BCH DEC-TED码多两个数据位,而具有相同数量的校验位。Olderdissen解码方法的一个缺陷是它不适用于非本原BCHDEC-TED码。在美国专利4,117,458中,Burghard和Coletti描述了一种基于靠蛮力的表查找方法的解码方法,该表查找方法用于一长度为17(=24+1)并具有8个数据位和9个校验位的非BCH码。另外,他们的错误检测方法局限于三个错误。该解码表不能检测到在理论上可检测到的三重以上的错误。
近来用于计算机应用的ECC设计要求能够检测到存储器地址错误并能够使用无效数据指示符将元件故障隔离(见例如美国专利6,457,154中的存储器地址错误检测和美国专利6,519,736中的使用无效数据指示符实现计算机元件的故障隔离)。对于存储器地址错误检测,需要额外的数据位来对存储器地址的奇偶性进行编码。当已知从一特定计算机元件向存储器发送的数据是坏的时,生成一特殊的数据无效指示符,该指示符也称为特殊UE(SPUE)指示符。因为该些特殊UE来自不同的计算机元件,所以当从存储器中读取与一特殊UE相关联的数据时,希望能够识别生成该特定的特殊UE的源。为了满足这一要求,也需要额外的数据位以用于该些特殊UE的编码。在现有技术中,为多个特殊UE保留了多个数据位,这在ECC数据位的使用方面效率低,特别是当可用的ECC数据位的数量有限时。
发明内容
根据本发明,提供了一种对于长度n=18并具有9个数据位和9个校验位的DEC-TED码,修正所有单个和双重错误、检测到所有三重错误并检测到多种多重错误的方法和装置。一般而言,本发明的一个方面给出一种根据一(18,9)DEC-TED码从一数据字生成一码字的方法和装置。根据本发明的这个方面,根据一线性码从一代表将被编码的数据的9位的数据字生成一18位的码字,该线性码由如下的奇偶校验矩阵定义:
β3 β6 β12 β7 β14 β11 β5 β1 β2 β4 β8 β16 β15 β13 β9 0 β10 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1,
其中β是256个元素的有限域内的、多项式x17-1的一个根。在一优选实施例中,β=α15,其中α是二进制多项式x8+x7+x6+x+1的一个根。
更具体地,本发明的这个方面给出一编码器,该编码器根据一线性码从一9位数据字生成一18位的码字C=(c0,c1,...,c17),其中位c0-c6和c16-c17是数据位而位c7-c15是奇偶校验位,并且满足下面的奇偶校验方程
CH2 t=0,
其中H2 t是如下奇偶校验矩阵H2的转置矩阵:
0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1
1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1
0 1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 1
0 0 1 0 1 0 1 0 0 0 1 0 0 0 0 0 1 1
1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 1 1
1 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 1
0 1 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 1
1 0 1 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1
1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1。
本发明的这个方面还给出了一种相应的解码器。该解码器接收一18位的字R=(r0,r1,...,r17),该字代表该码字C和一18位错误字E=(e0,e1,...,e17)之和。该解码器的一校验子发生器根据如下矩阵方程从该所接收的字R生成一9位的校验子向量S=(s0,s1,...,s8)
S=RH1 t,
其中H1 t是如下奇偶校验矩阵H1的转置矩阵:
0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 0 1
0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 1 0
1 1 1 0 0 1 0 1 1 0 1 1 1 1 0 0 0 0
0 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 0 0
1 0 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0
0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0
0 0 1 1 0 0 1 1 1 0 1 1 1 0 1 0 1 0
1 1 1 1 0 1 0 1 1 0 0 0 0 0 0 0 1 0
0 0 1 0 1 0 1 1 0 1 1 1 0 1 0 1 1 0。
一校验子解码器使用校验子向量S分析所接收的字R中的错误。为了对该校验子向量进行解码,该校验子解码器使用下述的各种逻辑部件以确定单个错误和双重错误的位置,以及检测无法修正(三重或更多重)的错误的存在。
通过本发明的技术可实现其他的特征和优势。下文详细描述了本发明的其他实施例和方面并且它们被认为是被要求保护的本发明的一部分。参照说明和附图可以更好地了解本发明的优点和特征。
附图说明
在说明书的结尾处的权利要求书中具体指出并清楚地要求保护了本发明的主题。在下面参照附图的详细描述中可清楚地了解本发明的上述和其他目标、特征和优点。
图1示出根据本发明的原理的一计算机系统的示例,在该系统中可进行错误修正和错误检测。
图2示出一根据本发明的用于存储器地址错误检测和元件故障隔离的错误修正码格式的示例。
图3a示出一根据本发明的用于生成多个与数据输入相关联的校验位的电路的示例。
图3b示出用于生成一单个校验位的、图3a的电路的一部分的示例。
图4示出一根据本发明的用于所接收数据的错误修正和错误检测系统的示例。
图5a示出一根据本发明的用于生成多个与数据输入相关联的校验子位的电路的示例。
图5b示出用于生成一单个校验子位的、图5a的电路的一部分的示例。
图6示出一根据本发明的用于生成错误位置指示符的电路的示例。
图7示出一用于生成一初步的单个错误位置指示符的、图6中的电路的一部分的示例。
图8示出一根据本发明用于生成无法修正的错误信号的电路的示例。
作为示例并参照附图,下文的详细说明解释了本发明的优选实施例,以及本发明的优点和特征。
具体实施方式
图1是一示出使用本发明的错误修正码的计算机系统100的实施例的结构图。在所示的实施例中,计算机系统100包括通过数据总线115与主存储器控制器(MSC)120相连接的存储器110,通过MSC-高速缓存接口116与MSC 120相连接的高速缓存130,和多个通过数据总线117与高速缓存130相连接的中央处理单元(CPU)140。MSC-高速缓存接口116和数据总线117分别用于在MSC 120和高速缓存130以及高速缓存130和CPU 140之间传送数据。另一方面,在存储器110和MSC 120之间的数据传送是通过数据总线115发生的。因此,数据总线115便利了通过MSC 120从存储器110中读取数据以及向存储器110写入数据。
高速缓存130内的数据区域的一个子集是一包含存储保护键的存储保护键区域(SP KEY)118,该些存储保护键被产生以确保该高速缓存内数据的完整性。根据本发明,不断地更新来自键区域118的存储保护键并将其存储在存储器110中,如同来自高速缓存130的所有数据一样。然而,因为存储保护键被认为是要求更高级别可靠性的关键数据,所以选择更有力的ECC以对这些键进行错误保护。具体地,如将在下面进一步描述的,使用一DEC-TED码修正一编码的ECC字中的所有单个和双重错误,检测其中所有三重错误并检测多种多重错误。
在所示的实施例中,一存储保护键有7位。另外,一数据位用于编码存储地址奇偶性,而另一数据位用于编码两个特殊的无法修正的错误(UE)。因此,该ECC总共需要9个数据位。这样产生一(18,9)DEC-TED码,该码包含具有9个数据位和9个校验位的18位的码字。应注意,一特殊UE(SPUE)是一数据有效性指示符,该指示符在已知从一特定计算机元件发送给存储器的数据是坏的时生成。因为特殊UE来自不同的计算机元件,所以当从存储器中读取与一特殊UE相关联的数据时希望能够识别生成该特殊UE的源。
图2示出根据本发明的一个实施例的ECC字结构。最前面的7位(位0-6)包含最初的存储保护键数据。接下来的9位(位7-15)是根据ECC方程从位0-6和位16-17生成的校验位,后面将简单描述该些ECC方程。位16(SPUE)被分配给特殊UE。最后,一地址奇偶位AP(位17)被分配给存储器地址的奇偶性。在存储器110中仅存储前16位(位0-15)(图1)。尽管位16和17用于生成校验位,但是它们没有存储在存储器110中。当从存储器110读取数据时,将该地址奇偶位AP提供给ECC解码器,而该SPUE位的值被假设为0。然而,如果将要描述的校验子解码器在位位置16(假设在该位置的位值为0)检测到错误,则它确定该SPUE位为1并且位0-6编码了一SPUE。因此,即使没有存储该SPUE位本身,通过其被用于生成校验位7-15,其仍被有效地编码在存储于存储器110内的、码字的16个位中。
对于一有效的存储保护键该SPUE位的值为0。当从该计算机系统的其他元件接收到的数据已知为坏的时将键标记为无效。在这种情况下该SPUE的值被设为1。传统上,使用多个数据位以便区分坏数据的源。相反地,在本发明中仅使用一个数据位(位16)。为了识别坏数据的源,修改相关联的键数据位(位0-6)以便用位0-6的不同模式(pattern)来表示坏数据的不同源。例如,为了将来自于高速缓存130的坏数据与来自MSC 120(图1)的坏数据区分开,可将两个7位模式(0000000)和(1111111)指定给位0-6(图2)。作为说明,如果坏数据来自高速缓存130,则可指定(0000000)作为位0-6的模式并将SPUE位16设为1,而如果坏数据来自MSC 120,则可指定(1111111)作为位0-6的模式并将SPUE位16设为1。其他可能的模式对是(1010101,0101010)和(0001111,1110000)。
现在假设SPUE模式之一存储在存储器110内并然后被取出来。根据将要描述的ECC解码方法,如果存储器中没有错误,则生成一唯一的错误校验子010001111,并且ECC解码标志位16将是错误的。这说明所接收的数据与一SPUE相关。然后使用位0-6中的模式来识别坏数据的原始源。如果在SPUE数据所在的存储器中存在一错误,则ECC解码会检测到存在两个错误,其中一个是一存储器错误而另一个是位16。错误校验子取决于存储器错误的位置。在任何情况下,该校验子是一双重错误校验子,并将被如此解码,因为该码能够修正双重错误。再次地,在对位16进行错误检测后可隔离该坏数据的源。
一ECC可由一组方程规定,所有被编码的ECC字必须满足该组方程。假设C=(c0,c1,...,c17)是一定义了一码字的1×18的行向量。美国专利4,117,458中描述的(17,8)DEC-TED码是一非本原BCH码,可将该码加长一位以得到一(18,9)DEC-TED码。在码空间中加入全1的18位向量可做到这一点。本发明的(18,9)DEC-TED码由下面的两个方程定义:
c0β3+c1β6+c2β12+c3β7+c4β14+c5β11+c6β5+c7β+c8β2+c9β4+c10β8+
c11β16+c12β15+c13β13+c14β9+c150+c16β10+c17β0=0,
c0+c1+c2+c3+c4+c5+c6+c7+c8+c9+c10+c11+c12+c13+c14+c15+c16+c17=0。
上述方程中的加法是根据256个元素的有限域的规则进行的。第一方程指定了在Peterson等人的上述作品的494页上列出的(17,9)码,并确保一非零码字中至少有5个非零项。第二方程指出一码字内的非零项的个数为偶数,因为每个ci都是二进制的。如该同一文献的119页上解释地,组合这两个方程意味着一非零码字中的非零项至少为6个,即该码的汉明距离是6。应注意,第一方程包含β的所有17个唯一的幂。在该第一方程中没有按顺序排列β的这些幂的项。然而排序是不重要的;任何排序都可以。
上述方程中的符号β是在256个元素的有限域内的、x17-1的一个本原根。具体地,β=α15,其中α是二进制本原多项式x8+x7+x6+x+1的一个根。使用一不可约多项式可定义同样的码空间。然而在实际应用中,经验示出这里给出的特定选择可导致更简单的实现。应注意,α是256个元素的有限域的素元,并且β也是该同一有限域的一个元素。
定义该ECC的上述方程可表示成矩阵形式CHt=0,其中Ht表示如下矩阵H的转置矩阵:
β3 β6 B12 β7 β14 β11 β5 β1 β2 β4 β8 β16 β15 β13 β9 0 β10 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1,
可看到由矩阵H定义的码是一DEC-TED码。另外该矩阵的列可以任何顺序排列,而不会降低错误修正和错误检测的能力。
可将矩阵H中的有限域元素表示成二进制向量以便于由数字电路实现。具体地,可将矩阵H转换成一9×18的二进制矩阵H1:
0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 0 1
0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 1 0
1 1 1 0 0 1 0 1 1 0 1 1 1 1 0 0 0 0
0 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 0 0
1 0 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0
0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0
0 0 1 1 0 0 1 1 1 0 1 1 1 0 1 0 1 0
1 1 1 1 0 1 0 1 1 0 0 0 0 0 0 0 1 0
0 0 1 0 1 0 1 1 0 1 1 1 0 1 0 1 1 0。(1)
可以简单地解释一下从H到H1的推导过程。如前所述,假设α是多项式x8+x7+x6+x+1的一个根并且β=α15。则可将β的幂表示成α的幂的多项式。该多项式的系数是在上述H1矩阵中的一列向量的前8位中所列的一二进制8位向量。现在,域元素1对应于8位向量10000000。上述H矩阵的第二行是一全1向量。它被转换成一8行的二进制矩阵,其第一行全是1而其他行全是可被丢弃的0。这解释了原矩阵是如何转换成一9行的二进制矩阵的。然而上述H1矩阵的最后一行不全为1。该全1行向量已由所有9个行向量的和(异或)代替,以便每列包含奇数个1。如果将所有9个行向量加到一起则可获得一全1向量。H和H1定义的空间没有区别。
当从存储器中读取数据时,通过以公式S=RH1 t计算校验子S,来使用矩阵H1检测所接收的18位向量R是否是一合法码字,公式中H1 t是向量H1的转置矩阵。如果该校验子S是一全0向量,则认为向量R是一码字。如果S不是一全0向量,则使用将描述的ECC解码器来确定R是否包含一个或两个错误,并且还确定相关的错误位置。还使用该解码器确定R是否包含可检测的但无法修正的错误(UE),其包括所有三重错误和一些也可检测但无法修正的更高阶错误。设S=(s0,s1,...,s8)。使用异或(XOR)运算将用矩阵H1的行i中的1标记的所接收到的位加到一起,以获得值si。具体地,由下列公式获得校验子位。
s0=输入位2、3、4、6、11、12、13、17的异或
s1=位4、5、6、7、9、16的异或
s2=位0、1、2、5、7、8、10、11、12、13的异或
s3=位2、4、7、9、11、14的异或
s4=位0、4、11、12、13、14的异或
s5=位1、2、6、7、11、12、13、16的异或
s6=位2、3、6、7、8、10、11、12、14、16的异或
s7=位0、1、2、3、5、7、8、16的异或
s8=位2、4、6、7、9、10、11、13、15、16的异或。(2)
假设将矩阵H1的列标记为列0,1,...,17。为了生成校验位,用由矩阵H1的列7-15形成的矩阵的逆矩阵乘H1,得到矩阵H2:
0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1
1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1
0 1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 1
0 0 1 0 1 0 1 0 0 0 1 0 0 0 0 0 1 1
1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 1 1
1 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 1
0 1 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 1
1 0 1 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1
1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1。(3)
应注意,H2的列7-15形成一9×9的单位矩阵。每个校验位的值由H2的一行向量计算出。假设C=(c0,c1,...,c17)是一码字。因为对于一正确形成的码字C,CH2 t=0,所以H2的每一行实际上是这样一陈述,即由该行中的1指示的一给定校验位和数据位的异或和为0,或者等价地,校验位是那些数据位的异或和。给定该码字中的位0-6以及位16-17的值,可依据异或运算从下列公式(对应于H2的各行)计算出位7-15的值:
c7=位1、3、4、16、17的异或
c8=位0、2、4、5、17的异或
c9=位1、3、5、6、17的异或
c10=位2、4、6、16、17的异或
c11=位0、3、5、16、17的异或
c12=位0、1、4、6、17的异或
c13=位1、2、5、16、17的异或
c14=位0、2、3、6、17的异或
c15=位0、1、2、3、4、5、6、16、17的异或(4)
为了计算上述校验位,不必须得到一生成矩阵G的确切值。然而,可以容易地看到(见例如上述Peterson等人的参考文献的第三章),矩阵H2是一具有下列生成矩阵G的码的奇偶校验矩阵,该矩阵G为:
1 0 0 0 0 0 0 0 1 0 0 1 1 0 1 1 0 0
0 1 0 0 0 0 0 1 0 1 0 0 1 1 0 1 0 0
0 0 1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0
0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 0 0
0 0 0 0 1 0 0 1 1 0 1 0 1 0 0 1 0 0
0 0 0 0 0 1 0 0 1 1 0 1 0 1 0 1 0 0
0 0 0 0 0 0 1 0 0 1 1 0 1 0 1 1 0 0
0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 1 1 0
0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1
G的列0-6和16-17形成一单位矩阵,而列7-15形成由H2的列0-6和7-15形成的矩阵的转置矩阵。因为G的列0-6和16-17形成一单位矩阵,所以码字C的位0-6和16-17只是原始数据字的对应位(因此它们被标记为信息位)。作为另一种选择,可使用生成矩阵G的列7-15计算校验位7-15(位SPUE和AP被认为是原始数据字的位7和8)。因为G的列7-15是由H2的列0-6和7-15形成的矩阵的转置矩阵,所以所产生的异或运算与上面给出的运算(4)是相同的。
如上所述,在解码时使用所接收的一向量R的校验子S来确定错误的性质,如果S不为0的话。设sp是该校验子位的奇偶性。即sp是所有9个校验子位的异或。因为奇偶校验矩阵H1的每一列都包含奇数个1,所以所接收的向量R的任何一位中的一错误将会翻转(即颠倒)奇数个校验子位,从而翻转它们的异或和sp。因此,如果R中有偶数个错误则sp=0,如果R中有奇数个错误则sp=1。从而,该解码器可容易地确定错误的数量是奇数还是偶数。如果有奇数个错误,则该解码器假设存在一个错误并接下来确定该单个错误的位置。另一方面,如果有偶数个错误,则该解码器假设存在两个错误并接下来确定这两个错误的位置。
单个错误的位置较容易确定。如果H1的列i的前8位与前8个校验子位相同,则确定位i是该单个错误的位置。
双重错误的位置不容易确定。必须得出以该些错误位置为未知数的方程并求解该方程。设x1和x2是在256个元素的有限域中的两个代表错误位置的未知变量。每个变量或者是β的幂或者是0。设S1是该校验子的前8位并且认为S1为该有限域内的一个元素。从矩阵H的第一行以及方程HCt=0可知,该校验子通过方程S=x1+x2与错误位置x1和x2相关联。另外,可看到错误位置x1和x2是x18-x的根。即x1 18-x1=0和x2 18-x2=0。结合所有这些关系,可看到x1和x2是下面的以x为未知变量的方程的解。
S1 17=x16S1+xS1 16 (5)
解方程(5)求解x得到x1和x2的值。在两个错误之一位于位15的情况下需要特别注意,此时在矩阵H中有0作为域元素。在此情况下不使用方程(5)。相反地,将S1看作一单个错误校验子,并通过将S1与H1的前8行的列向量相匹配来识别第二错误位置。
假设Ei是位i的错误指示符并具有以下属性,即如果位i无错误则Ei=0,如果位i有错误则Ei=1。使用解码器为所有位位置生成值Ei。
下面描述了一种解码算法(算法A):
1.如果所有9个校验子位都为0,则不存在错误并且不修改所接收的数据。退出该算法。
2.如果(a)S1=0并且sp=1或者(b)S1 17=0并且sp=1,则设置E15=1,其中S1是该校验子S的前8位并被认为是一域元素,并且sp是所有校验子位的异或和。
3.对于0≤i≤17以及i≠15:如果(a)S1=H1的前8行的列i并且S1 17=1;或者(b)H1的前8行的列i的域元素xi满足xi 16S+xiS1 16=S1 17,S1 17≠1,S1≠0并且sp=0,则设置Ei=1。
4.如果(a)S1 17≠1,S1≠0并且sp=1;或者(b)S1 17≠1,sp=0并且xi 16S1+xiS1 16=S1 17无解,则设置UE=1。
如果由算法A得到的E16的值为1,则所接收的数据R是一SPUE。在此情况下,使用经错误修正后的位0-6中的数据位来确定SPUE的性质,这样可实现故障隔离。
该8位向量S1 17的各分量不是相互独立的。可看到位0、1、2和4是线性独立的,并且从这些独立位可得到余下的4位。(更一般地,独立位的确切位置依赖于定义该域的多项式,但是独立位的数量总是4。)因此,在算法A中可以用代表S1 17的位0、1、2、4的S1 17(0,1,2,4)来替换S1 17。可由下列公式得到这4位:
S1 17(0)=S(0)、S(2)、S(3)、S(6)、S(0)S(1)、S(0)S(5)、S(0)S(7)、S(1)S(2)、S(1)S(6)、S(1)S(7)、S(2)S(4)、S(2)S(6)、S(3)S(6)、S(3)S(7)、S(4)S(5)、S(4)S(7)的异或,
S1 17(1)=S(1)、S(3)、S(4)、S(7)、S(0)S(2)、S(0)S(3)、S(0)S(6)、S(1)S(2)、S(1)S(6)、S(2)S(3)、S(2)S(7)、S(3)S(5)、S(3)S(7)、S(4)S(7)、S(5)S(6)的异或,
S1 17(3)=S(1)、S(2)、S(5)、S(0)S(1)、S(0)S(5)、S(0)S(6)、S(0)S(7)、S(1)S(3)、S(1)S(5)、S(2)S(5)、S(2)S(6)、S(3)S(4)、S(3)S(6)、S(3)S(7)、S(4)S(7)、S(5)S(7)的异或,
S1 17(4)=S(1)、S(2)、S(3)、S(4)、S(6)、S(0)S(1)、S(0)S(2)、S(0)S(4)、S(0)S(5)、S(1)S(2)、S(1)S(4)、S(1)S(5)、S(1)S(6)、S(2)S(3)、S(2)S(4)、S(2)S(5)、S(2)S(7)、S(4)S(5)、S(4)S(6)、S(5)S(7)、S(6)S(7)的异或(6)
方程(6)中,S(i)表示校验子S的位i,S(i)S(j)是S(i)和S(j)的积。
下面描述ECC编码和解码的硬件实现的一个实施例。
图3a示出一用于ECC编码的编码器200。输入数据(DATA IN)210由将要被编码的7位存储保护键数据组成。编码器200的其他两个输入是图2中示出的特殊的无法修正的错误位SPUE和存储地址奇偶位AP。将键数据210发送给一修改电路(DATA MODIFIED)240,该电路的另一输入是SPUE。如果SPUE为0,则不修改键数据210。另一方面,如果SPUE为1,则电路240根据上述预先定义的SPUE数据模式修改键数据20。电路240的输出是输出数据(DATA OUT)220。还将该输出数据220发送给一包含一XOR门阵列的校验符号发生器250,该XOR门阵列包括XOR电路260-268(XOR0-XOR8)。XOR电路260-268根据方程(4)生成校验位。因此,图3b示出使用XOR电路260根据方程(4)生成校验位0(编码字的位7)。
XOR门阵列250的输出是校验位230。编码的ECC字(位0-17)的位0-15由输出数据220(位0-6)和校验位230(位7-15)组成。如上所述,码字的位0-15存储在存储器110中,而假设位16(SPUE)为0,并且当以后将该码字的位0-15从该存储器110中读取出时独立地重新产生该码字的位17(AP)。
图4是用于从存储器110读取出的数据的解码器20的结构图。在一输入寄存器(DATA IN)400中存储所接收的16位字,该字的前7位是数据位而后9位是校验位。将输入寄存器400中的整个16位字发送给一校验子发生器(SYNDROME GEN)500,该发生器的另一个输入是地址奇偶位AP。(因为没有SPUE信息,所以假设其为0)。校验子发生器500产生全部9个校验子位作为输出,并将它们发送给一校验子解码器(SYNDROME DECODE)600以生成错误位置指示符Ei和一个一位的无法修正的错误指示符UE。通过一数据修正电路700对来自校验子解码器600的错误指示符Ei(其中0≤i≤6)和来自输入寄存器400的7个数据位按位进行异或运算以产生修正的输出数据。
图5a示出校验子发生器500。其输入是存储在输入寄存器400内的16个接收到的位——7个数据位(0-6)以及9个校验位(7-15)——和AP位(17)。其9位的输出存储在校验子寄存器(SYNDROME REG)520中。通过XOR块530-538生成该9个校验子位,该些XOR块的每一个都包含用于执行由方程(2)规定的异或运算的逻辑。
作为说明,图5b示出XOR块530的输入位(2-4、6、11-13、AP=17),该块生成校验子位0。应注意,位17在方程(2)中仅出现一次;只有XOR块530将AP作为一输入。
图6示出校验子解码器600,其分别根据算法A的步骤2和3生成错误指示符E15以及对于i≠15的错误指示符Ei。尽管图6中没有示出,校验子解码器600还包括无法修正的错误(UE)检测逻辑600(图8),其用于生成一表示存在一无法修正的错误的无法修正的错误(UE)信号。在此图中,对于i≠15,E1,i=1表示S1=H1的前8行的列i,而E2,i=1表示H1的前8行的i列的域元素xi满足方程xi 16S+xiS1 16=S1 17。每一个AND块632-636的输出是其输入的逻辑与,每一个OR块641-643的输出是其输入的逻辑或,每一个反相器块651-653(由三角形表示)的输出是其输入的逻辑反。校验子奇偶位sp由XOR电路602生成,该XOR电路602输出存储在一校验子寄存器(SYNDROME S)601中的所有9个校验子位的异或。而且,提取一向量S1(603),其是该校验子向量S的前8位。
单个错误定位逻辑610所实现的功能是将输入S1(603)与方程(1)的H1的前8行的列向量相匹配。其输出位是单个错误指示符E1,i。图7作为示例示出了用于生成单个错误指示符E1,0的电路。(图中的三角形表示逻辑反相器)当且仅当一8位的输入(0-7)的每个输入位与H1的前8行的列0的相应位匹配时,该电路才将该8位的输入与H1的该列相匹配以产生输出E1,0。
图6中的逻辑630根据方程(6)产生对于S1 17的位0、1、2和4的S1 17(0,1,2,4)作为输出。所生成的输出用于代表S1 17。
双重错误定位逻辑620生成双重错误指示符E2,i。逻辑620的输入包括来自逻辑630的S1 17(0,1,2,4)和S1(603)。以如下方式生成逻辑620的输出E2,i。逻辑620首先根据下列公式从校验子位0-7生成一组比较位Fi:
F1=校验子位7,
F3=校验子位6、7的异或,
F4=校验子位5,
F14=校验子位4、5、6的异或,
F18=校验子位3、6的异或,
F20=校验子位3、5的异或,
F21=校验子位3、5、7的异或,
F23=校验子位3、5、6、7的异或,
F26=校验子位3、4、6的异或,
F29=校验子位3、4、5、7的异或,
F30=校验子位3、4、5、6的异或,
F40=校验子位2、4的异或,
F42=校验子位2、4、6的异或,
F44=校验子位2、4、5的异或,
F45=校验子位2、4、5、7的异或,
F49=校验子位2、3、7的异或,
F50=校验子位2、3、6的异或,
F52=校验子位2、3、5的异或,
F58=校验子位2、3、4、6的异或,
F69=校验子位1、5、7的异或,
F71=校验子位1、5、6、7的异或,
F74=校验子位1、4、6的异或,
F85=校验子位1、3、5、7的异或,
F86=校验子位1、3、5、6的异或,
F89=校验子位1、3、4、7的异或,
F96=校验子位1、2的异或,
F98=校验子位1、2、6的异或,
F107=校验子位1、2、4、6、7的异或,
F108=校验子位1、2、4、5的异或,
F123=校验子位1、2、3、4、6、7的异或,
F130=校验子位0、6的异或,
F131=校验子位0、6、7的异或,
F135=校验子位0、5、6、7的异或,
F137=校验子位0、4、7的异或,
F139=校验子位0、4、6、7的异或,
F142=校验子位0、4、5、6的异或,
F143=校验子位0、4、5、6、7的异或,
F145=校验子位0、3、7的异或,
F148=校验子位0、3、5的异或,
F160=校验子位0、2的异或,
F162=校验子位0、2、6的异或,
F168=校验子位0、2、4的异或,
F177=校验子位0、2、3、7的异或,
F178=校验子位0、2、3、6的异或,
F180=校验子位0、2、3、5的异或,
F182=校验子位0、2、3、5、6的异或,
F183=校验子位0、2、3、5、6、7的异或,
F184=校验子位0、2、3、4的异或,
F190=校验子位0、2、3、4、5、6的异或,
F192=校验子位0、1的异或,
F198=校验子位0、1、5、6的异或,
F199=校验子位0、1、5、6、7的异或,
F202=校验子位0、1、4、6的异或,
F203=校验子位0、1、4、6、7的异或,
F204=校验子位0、1、4、5的异或,
F206=校验子位0、1、4、5、6的异或,
F209=校验子位0、1、3、7的异或,
F210=校验子位0、1、3、6的异或,
F213=校验子位0、1、3、5、7的异或,
F215=校验子位0、1、3、5、6、7的异或,
F223=校验子位0、1、3、4、5、6、7的异或,
F226=校验子位0、1、2、6的异或,
F232=校验子位0、1、2、4的异或,
F234=校验子位0、1、2、4、6的异或,
F237=校验子位0、1、2、4、5、7的异或,
F240=校验子位0、1、2、3的异或,
F247=校验子位0、1、2、3、5、6、7的异或,
F251=校验子位0、1、2、3、4、6、7的异或,
应注意,参与对Fi的XOR运算的校验子位对应于整数i的二进制表示。例如,226的二进制表示是11100010,则F226是校验子位0、1、2、6的异或。
然后,如下所示地,逻辑620通过将S1 17(0,1,2,4)的位和所选择的位Fi相比较来生成对于0≤j≤17以及j≠15的一组错误值E2,j。如果位全部匹配则每个生成的错误值E2,j为1,否则为0。更具体地:
如果S1 17(0,1,2,4)=(F183,F232,F139,F29),则E2,0=1
如果S1 17(0,1,2,4)=(F26,F251,F123,F18), 则E2,1=1
如果S1 17(0,1,2,4)=(F44,F168,F199,F23), 则E2,2=1
如果S1 17(0,1,2,4)=(F237,F206,F107,F3), 则E2,3=1
如果S1 17(0,1,2,4)=(F192,F180,F137,F4), 则E2,4=1
如果S1 17(0,1,2,4)=(F49,F203,F14,F85), 则E2,5=1
如果S1 17(0,1,2,4)=(F30,F198,F130,F98), 则E2,6=1
如果S1 17(0,1,2,4)=(F202,F184,F20,F213), 则E2,7=1
如果S1 17(0,1,2,4)=(F226,F45,F42,F178) , 则E2,8=1
如果S1 17(0,1,2,4)=(F160,F135,F223,F142),则E2,9=1
如果S1 17(0,1,2,4)=(F58,F21,F182,F148) ,则E2,10=1
如果S1 17(0,1,2,4)=(F209,F145,F74,F215), 则E2,11=1
如果S1 17(0,1,2,4)=(F210,F52,F1,F247), 则E2,12=1
如果S1 17(0,1,2,4)=(F162,F240,F177,F190),则E2,13=1
如果S1 17(0,1,2,4)=(F86,F96,F234,F143), 则E2,14=1
如果S1 17(0,1,2,4)=(F131,F204,F89,F40), 则E2,16=1
如果S1 17(0,1,2,4)=(F69,F50,F71,F108), 则E2,17=1
校验子解码器600根据算法A的步骤2和3,组合单个错误定位逻辑610和双重错误定位逻辑620的输出,以对于每个位i生成一错误定位符位Ei,其中0≤i≤17。为了实现这一点,每当S1 17=1即S1 17(0,1,2,4)=(1,0,0,0)时,对逻辑630进行响应的一门阵列631输出1。而且,每当S1=0即该校验子向量S的前8位全为0时,一OR门641输出0。
对于i=15,在该算法的步骤2中,如果S1=0并且sp=1,则AND门633的两个输入都是1,使得OR门642输出1以产生一E15定位符位。同样,如果S1 17=1和sp=0,则AND门635的两个输入都是1,再次使得OR门642输出1以产生一E15定位符位。在第一种情况中,该E15定位符位指示一个在位位置15的单个错误,而在第二种情况中,该E15定位符位指示一个涉及位15和另一个位位置(由另一个Ei示出)的双重错误。
对于0≤i≤17以及i≠15,在该算法的步骤3中,如果S1=H1的前8行的列i并且S1 17=1,则对于该特定i,逻辑610(E1,i)和逻辑631向AND门632输入1,使得对于该特定i,OR门643产生一Ei定位符位,这次是对于一个在位位置i的单个错误。同样,如果H1的前8行的列i的域元素xi满足方程xi 16S+xiS1 16=S1 17,则对于该特定i,逻辑620(E2,i)和AND门634向AND门636输入1,再次使得对于该特定i,OR门643产生一Ei定位符位,这次是对于一个在位位置i和另一个位置(由另一个Ei示出)的双重错误。
图8示出一用于产生无法修正的错误(UE)信号(图4)的无法修正的错误(UE)检测逻辑660。UE检测逻辑660是校验子解码器600的一部分。AND块661、662和663中的每一个输出其输入的逻辑与,并且OR块664中的每一个输出其输入的逻辑或。NOR 665输出来自逻辑620的输出的输入E2,i的逻辑或的反。
UE检测逻辑660在硬件内实现算法A的步骤4。因此,如果(1)S1 17≠1,(2)S1≠1并且(3)sp=1,则(1)电路631向反相器651输出0,使得该反相器向AND门661提供第一个1,(2)OR门641向AND门661提供第二个1,使得该门向AND门662提供第一个1,并且(3)sp线向AND门662提供第二个1;所有这些使得AND门662向OR门664输入1,从而在UE线上产生一个1。或者,如果(1)S1 17≠1,(2)sp=0并且(3)方程xi 16S1+xiS1 16=S1 17无解,则(1)电路631向反相器651输出0,使得该反相器向AND门663提供第一个1,(2)该sp线向反相器652提供0,使得该反相器向AND门663提供第二个1,以及(3)逻辑620向NOR门665提供全0,使得该门向AND门663输出第三个1;所有这些使得AND门663向OR门664输入1,从而同样在该UE线上产生1。
如果(如图4中所示)不修正校验位(7-15)中的错误,则不需要为此目的生成相关的错误定位符。在这种情况下,可以省略在单个错误定位逻辑610中用于产生对于7≤i≤14的E1,i的电路和用于产生E15的电路。另一方面,因为算法A的步骤4涉及所有17个E2,i值(0≤i≤17,i≠15),所以仍需要双重错误定位逻辑620产生所有这些E2,i值,以使UE检测逻辑660完全实施该算法的这一步骤。如果在逻辑620中没有产生对于7≤i≤14的E2,i值,则UE检测被缩减为确定是否S17≠1,S≠0和sp=1。解码器300仍然提供双重错误修正和三重错误检测能力。然而,它不能检测到与完整的解码器一样多的三重错误以上的错误。还应注意,如果逻辑620生成对于7≤i≤14的E2,i,则Fi异或函数的数量从68降低到36。因此,总的校验子解码电路将减小几乎一半,但其代价是降低了检测到四重或更多重错误的可能性。
本发明的能力可在软件、固件、硬件或其某种组合中实现。
作为一个示例,本发明的一个或多个方面可包含在一具有例如计算机可用介质的制造物品(例如一个或多个计算机程序产品)中。该介质在其中包含了用于提供和促成本发明的能力的例如计算机可读程序代码装置。该制造物品可作为计算机系统的一部分或单独销售。
另外,可提供至少一个可由一机器读的程序存储装置,该装置有形地体现了至少一个可由该机器执行以实现本发明的能力的指令程序。
这里示出的流程图只是示例。这里描述的图形或步骤(或操作)可具有多种不背离本发明的精神的变型。例如,这些步骤可以不同的顺序执行,或者可以被添加、删除或修改。所有这些变型都被认为是被要求保护的本发明的一部分。
尽管已描述了本发明的优选实施例,但是应理解,现在的或未来的本技术领域内的技术人员可在下面的权利要求的范围内进行各种改进和提高。这些权利要求应被理解为维持了对首次描述的本发明的适当保护。
Claims (37)
1.一种用于根据一(18,9)DEC-TED码从一数据字生成一码字的方法,其包括下列步骤:
接收一代表将要被编码的数据的9-位数据字;以及
根据一线性码从该数据字产生一18-位码字,该线性码由如下奇偶校验矩阵定义:
β3 β6 β12 β7 β14 β11 β5 β1 β2 β4 β8 β16 β15 β13 β9 0 β10 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1,
其中β是在256个元素的有限域内的、多项式x17-1的一个根。
2.根据权利要求1的方法,其特征在于,β=α15并且α是二进制多项式x8+x7+x6+x+1的一个根。
3.一种可由一机器读的程序存储装置,其有形地体现一可由该机器执行以实现权利要求1中的方法步骤的指令程序。
4.一种用于根据一(18,9)DEC-TED码从一数据字生成一码字的方法,其包括下列步骤:
接收一代表将要被编码的数据的9-位数据字;以及
根据一线性码从该数据字生成一18位码字C=(c0,c1,...,c17),其中位c0-c6和c16-c17是数据位,c7-c15是奇偶检验位,并且满足如下奇偶校验方程
CH2 t=0,
其中H2 t是如下奇偶校验矩阵H2的转置矩阵:
0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1
1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1
0 1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 1
0 0 1 0 1 0 1 0 0 0 1 0 0 0 0 0 1 1
1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 1 1
1 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 1
0 1 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 1
1 0 1 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1
1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1。
5.根据权利要求4的方法,其特征在于,其还包括下列步骤:
接收一18位字R=(r0,r1,...,r17),其代表该码字C和一18位错误字E=(e0,e1,...,e17)的和;
根据一矩阵方程从所接收的字R生成一9位校验子向量S=(s0,s1,...,s8),该矩阵方程为:
S=RH1 t,
其中H1 t是如下奇偶校验矩阵H1的转置矩阵:
0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 0 1
0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 1 0
1 1 1 0 0 1 0 1 1 0 1 1 1 1 0 0 0 0
0 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 0 0
1 0 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0
0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0
0 0 1 1 0 0 1 1 1 0 1 1 1 0 1 0 1 0
1 1 1 1 0 1 0 1 1 0 0 0 0 0 0 0 1 0
0 0 1 0 1 0 1 1 0 1 1 1 0 1 0 1 1 0;以及
使用该校验子向量S来分析所接收的字R中的错误。
6.一种可由一机器读的程序存储装置,其有形地体现一可由该机器执行以实现权利要求4中的方法步骤的指令程序。
7.一种用于解码根据一(18,9)DEC-TED码从一数据字生成的码字的方法,其包括下列步骤:
接收一18位字R=(r0,r1,...,r17),其代表一编码了一9位消息的18位码字C=(c0,c1,...,c17)和一18位错误字E=(e0,e1,...,e17)的和;
根据一矩阵方程从所接收的字R生成一9位校验子向量S=(s0,s1,...,s8),该矩阵方程为:
S=RH1 t,
其中H1 t是如下奇偶校验矩阵H1 t的转置矩阵:
0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 0 1
0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 1 0
1 1 1 0 0 1 0 1 1 0 1 1 1 1 0 0 0 0
0 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 0 0
1 0 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0
0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0
0 0 1 1 0 0 1 1 1 0 1 1 1 0 1 0 1 0
1 1 1 1 0 1 0 1 1 0 0 0 0 0 0 0 1 0
0 0 1 0 1 0 1 1 0 1 1 1 0 1 0 1 1 0;以及
使用该校验子向量S来分析所接收的字R中的错误。
8.根据权利要求7的方法,其特征在于,该分析步骤包括下列步骤:
将该校验子向量S的位与矩阵H1的一个或多个列中的相应位相比较;以及
在成功地比较了该校验子向量S的各位与矩阵H1的第i列中的相应位后生成一指示,其指示该码字的位i中的一单个错误。
9.根据权利要求8的方法,其特征在于,将该校验子向量S的位0-8与该矩阵H1的一列或多列中的相应位相比较。
10.根据权利要求8的方法,其特征在于,将该校验子向量S的位0-8与该矩阵H1的列0-6和16-17中的相应位相比较。
11.根据权利要求8的方法,其特征在于,将该校验子向量S的位0-8与该矩阵H1的列0-14和16-17中的相应位相比较。
12.根据权利要求7的方法,其特征在于,该分析步骤包括以下步骤:
如果矩阵H1的前8行的列i的域元素xi满足方程xi 16S+xiS1 16=S1 17,则生成一关于涉及该码字的位i的一双重错误的指示。
13.根据权利要求7的方法,其特征在于,该分析步骤包括以下步骤:
如果S1为0而sp为1,或S1 17为1而sp为0,则生成一关于在该码字的位15的一错误的指示,其中S1是被认为是一域元素的、该校验子向量S的前8位,sp是该校验子向量S的各位的异或和。
14.根据权利要求7的方法,其特征在于,该分析步骤包括以下步骤:
如果S1=H1的前8行的列i而S1 17为1,或者矩阵H1的前8行的列i的域元素xi满足方程xi 16S+xiS1 16=S1 17,S1 17不为1,S1不为0,并且sp为0,则生成一关于位于该码字的位i的一错误的指示,其中S1是被认为是一域元素的、该校验子向量S的前8位,并且sp是该校验子向量S的各位的异或和。
15.根据权利要求7的方法,其特征在于,该分析步骤包括以下步骤:
如果S1 17不为1,S1不为0并且sp为1或者S1 17不为1,sp为0并且方程xi 16S1+xiS1 16=S1 17无解,则生成一关于该码字一无法修正的错误的指示,其中S1是被认为是一域元素的、该校验子向量S的前8位,sp是该校验子向量S的各位的异或和。
16.根据权利要求7的方法,其特征在于,该分析步骤包括以下步骤:
生成一代表S1 17的值,其中S1是被认为是一域元素的、该校验子向量S的前8位。
17.根据权利要求16的方法,其特征在于,所述生成一代表S1 17的值的步骤包括以下步骤:
生成一值S1 17(0),其是S(0)、S(2)、S(3)、S(6)、S(0)S(1)、S(0)S(5)、S(0)S(7)、S(1)S(2)、S(1)S(6)、S(1)S(7)、S(2)S(4)、S(2)S(6)、S(3)S(6)、S(3)S(7)、S(4)S(5)、S(4)S(7)的异或和,其中S(i)是该校验子向量S的位i,S(i)S(j)是S(i)和S(j)的积;
生成一值S1 17(1),其是S(1)、S(3)、S(4)、S(7)、S(0)S(2)、S(0)S(3)、S(0)S(6)、S(1)S(2)、S(1)S(6)、S(2)S(3)、S(2)S(7)、S(3)S(5)、S(3)S(7)、S(4)S(7)、S(5)S(6)的异或和;
生成一值S1 17(2),其是S(1)、S(2)、S(5)、S(0)S(1)、S(0)S(5)、S(0)S(6)、S(0)S(7)、S(1)S(3)、S(1)S(5)、S(2)S(5)、S(2)S(6)、S(3)S(4)、S(3)S(6)、S(3)S(7)、S(4)S(7)、S(5)S(7)的异或和;以及
生成一值S1 17(4),其是S(1)、S(2)、S(3)、S(4)、S(6)、S(0)S(1)、S(0)S(2)、S(0)S(4)、S(0)S(5)、S(1)S(2)、S(1)S(4)、S(1)S(5)、S(1)S(6)、S(2)S(3)、S(2)S(4)、S(2)S(5)、S(2)S(7)、S(4)S(5)、S(4)S(6)、S(5)S(7)、S(6)S(7)的异或和。
18.根据权利要求17的方法,其特征在于,该分析步骤还包括以下步骤:
生成值Fi,其中每个Fi都是对应于i的二进制表示的、校验子向量S的位的异或和,并且i是3、4、14、18、23、26、29、30、40、44、49、50、69、71、85、89、98、107、108、123、130、131、137、139、168、180、183、192、198、199、203、204、206、232、237以及251;
如果S1 17(0,1,2,4)=(F183,F232,F139,F29),则生成一关于涉及该码字的位0的一双重错误的指示,其中S1 17(0,1,2,4)是一具有各分量S1 17(0)、S1 17(1)、S1 17(2)、S1 17(4)的向量;
如果S1 17(0,1,2,4)=(F26,F251,F123,F18),则生成一关于涉及该码字的位1的一双重错误的指示;
如果S1 17(0,1,2,4)=(F44,F168,F199,F23),则生成一关于涉及该码字的位2的一双重错误的指示;
如果S1 17(0,1,2,4)=(F237,F206,F107,F3),则生成一关于涉及该码字的位3的一双重错误的指示;
如果S1 17(0,1,2,4)=(F192,F180,F137,F4),则生成一关于涉及该码字的位4的一双重错误的指示;
如果S1 17(0,1,2,4)=(F49,F203,F14,F85),则生成一关于涉及该码字的位5的一双重错误的指示;
如果S1 17(0,1,2,4)=(F30,F198,F130,F98),则生成一关于涉及该码字的位6的一双重错误的指示;
如果S1 17(0,1,2,4)=(F131,F204,F89,F40),则生成一关于涉及该码字的位16的一双重错误的指示;以及
如果S1 17(0,1,2,4)=(F69,F50,F71,F108),则生成一关于涉及该码字的位17的一双重错误的指示。
19.根据权利要求8的方法,其特征在于,该分析步骤还包括以下步骤:
生成值Fi,其中每个Fi都是对应于i的二进制表示的、校验子向量S的各位的异或和,并且i是1、20、21、42、45、52、58、74、86、96、135、142、143、145、148、160、162、177、178、182、184、190、202、209、210、213、215、223、226、234、240以及247;
如果S1 17(0,1,2,4)=(F202,F184,F20,F213),则生成一关于涉及该码字的位7的一双重错误的指示;
如果S1 17(0,1,2,4)=(F226,F45,F42,F178),则生成一关于涉及该码字的位8的一双重错误的指示;
如果S1 17(0,1,2,4)=(F160,F135,F223,F142),则生成一关于涉及该码字的位9的一双重错误的指示;
如果S1 17(0,1,2,4)=(F58,F21,F182,F148),则生成一关于涉及该码字的位10的一双重错误的指示;
如果S1 17(0,1,2,4)=(F209,F145,F74,F215),则生成一关于涉及该码字的位11的一双重错误的指示;
如果S1 17(0,1,2,4)=(F210,F52,F1,F247),则生成一关于涉及该码字的位12的一双重错误的指示;
如果S1 17(0,1,2,4)=(F162,F240,F177,F190),则生成一关于涉及该码字的位13的一双重错误的指示;以及
如果S1 17(0,1,2,4)=(F86,F96,F234,F143),则生成一关于涉及该码字的位14的一双重错误的指示。
20.一种可由一机器读的程序存储装置,其有形地体现一可由该机器执行以实现权利要求7中的方法步骤的指令程序。
21.用于根据一(18,9)DEC-TED码从一数据字生成一码字的装置,包括:
一用于接收一代表将要被编码的数据的9-位数据字并且用于根据一线性码从该数据字产生一18-位码字的编码器,该线性码由如下奇偶校验矩阵定义:
β3 β6 β12 β7 β14 β11 β5 β1 β2 β4 β8 β16 β15 β13 β9 0 β10 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1,
其中β是在256个元素的有限域内的、x17-1的一个根。
22.根据权利要求21的装置,其特征在于,β=α15并且α是二进制多项式x8+x7+x6+x+1的一个根。
23.用于根据一(18,9)DEC-TED码从一数据字生成一码字的装置,包括:
一用于接收一代表将要被编码的数据的9-位数据字并且用于根据一线性码从该数据字生成一18位码字C=(c0,c1,...,c17)的编码器,其中位c0-c6和c16-c17是数据位,而c7-c15是奇偶检验位,并且满足如下奇偶校验方程
CH2 t=0,
其中H2 t是如下奇偶校验矩阵H2的转置矩阵:
0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1
1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1
0 1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 1
0 0 1 0 1 0 1 0 0 0 1 0 0 0 0 0 1 1
1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 1 1
1 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 1
0 1 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 1
1 0 1 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1
1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1。
24.根据权利要求23的装置,其特征在于,还包括:
一校验子发生器,该发生器用于接收一18位字R=(r0,r1,...,r17)—其代表该码字C和一18位错误字E=(e0,e1,...,e17)的和—并根据一矩阵方程从所接收的字R生成一9位校验子向量S=(s0,s1,...,s8),该矩阵方程为:
S=RH1 t,
其中H1 t是如下奇偶校验矩阵H1的转置矩阵:
0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 0 1
0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 1 0
1 1 1 0 0 1 0 1 1 0 1 1 1 1 0 0 0 0
0 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 0 0
1 0 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0
0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0
0 0 1 1 0 0 1 1 1 0 1 1 1 0 1 0 1 0
1 1 1 1 0 1 0 1 1 0 0 0 0 0 0 0 1 0
0 0 1 0 1 0 1 1 0 1 1 1 0 1 0 1 1 0;以及
一用于使用该校验子向量S分析该所接收的字R的错误的校验子解码器。
25.用于对根据一(18,9)DEC-TED码从一数据字生成的码字进行解码的装置,包括:
一校验子发生器,其用于接收一18位字R=(r0,r1,...,r17)—其代表编码了一9位消息的一18位码字C=(c0,c1,...,c17)和一18位错误字E=(e0,e1,...,e17)的和—并且根据一矩阵方程从所接收的字R生成一9位校验子向量S=(s0,s1,...,s8),该矩阵方程为:
S=RH1 t,
其中H1 t是如下奇偶校验矩阵H1的转置矩阵:
0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 0 1
0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 1 0
1 1 1 0 0 1 0 1 1 0 1 1 1 1 0 0 0 0
0 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 0 0
1 0 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0
0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0
0 0 1 1 0 0 1 1 1 0 1 1 1 0 1 0 1 0
1 1 1 1 0 1 0 1 1 0 0 0 0 0 0 0 1 0
0 0 1 0 1 0 1 1 0 1 1 1 0 1 0 1 1 0;以及
一用于使用该校验子向量S分析该所接收的字R的错误的校验子解码器。
26.根据权利要求25的装置,其特征在于,该校验子解码器包括:
单个错误定位逻辑,其用于将该校验子向量S的位与矩阵H1的一个或多个列中的相应位相比较并在成功地比较了该校验子向量S的各位与矩阵H1的第i个列中的相应位后生成一关于位于该码字的位i的一单个错误的指示。
27.根据权利要求26的装置,其特征在于,将该校验子向量S的位0-8与该矩阵H1的一列或多列中的相应位相比较。
28.根据权利要求26的装置,其特征在于,将该校验子向量S的位0-8与该矩阵H1的列0-6和16-17中的相应位相比较。
29.根据权利要求26的装置,其特征在于,将该校验子向量S的位0-8与该矩阵H1的列0-14和16-17中的相应位相比较。
30.根据权利要求25的装置,其特征在于,该校验子解码器包括:
双重错误定位逻辑,如果矩阵H1的前8行的列i的域元素xi满足方程xi 16S+xiS1 16=S1 17,则该逻辑生成一关于涉及该码字的位i的一双重错误的指示。
31.根据权利要求25的装置,其特征在于,该校验子解码器包括:
错误定位逻辑,如果S1为0而sp为1,或者S1 17为1而sp为0,则该逻辑生成一关于位于该码字的位15的一错误的指示,其中S1是被认为是一域元素的、该校验子向量S的前8位,sp是该校验子向量S的各位的异或和。
32.根据权利要求25的装置,其特征在于,如果S1=H1的前8行的列i而S1 17为1,或者矩阵H1的前8行的列i的域元素xi满足方程xi 16S+xiS1 16=S1 17,S1 17不为1,S1不为0,并且sp为0,则该校验子解码器生成一关于位于该码字的位i的一错误的指示,其中S1是被认为是一域元素的、该校验子向量S的前8位,sp是该校验子向量S的各位的异或和。
33.根据权利要求25的装置,其特征在于,该校验子解码器包括:
无法修正的错误检测逻辑,如果S1 17不为1,S1不为0并且sp=1,或者S1 17不为1,sp为0并且方程xi 16S1+xiS1 16=S1 17无解,则该逻辑生成一关于该码字中的一无法修正的错误的指示,其中S1是被认为是一域元素的、该校验子向量S的前8位,sp是该校验子向量S的各位的异或和。
34.根据权利要求25的装置,其特征在于,该校验子解码器包括:
用于生成一代表S1 17的值的逻辑,其中S1是被认为是一域元素的、该校验子向量S的前8位。
35.根据权利要求34的装置,其特征在于,该用于生成一代表S1 17的值的逻辑:
生成一值S1 17(0),其是S(0)、S(2)、S(3)、S(6)、S(0)S(1)、S(0)S(5)、S(0)S(7)、S(1)S(2)、S(1)S(6)、S(1)S(7)、S(2)S(4)、S(2)S(6)、S(3)S(6)、S(3)S(7)、S(4)S(5)、S(4)S(7)的异或和,其中S(i)是该校验子向量S的位i,S(i)S(j)是S(i)和S(j)的积;
生成一值S1 17(1),其是S(1)、S(3)、S(4)、S(7)、S(0)S(2)、S(0)S(3)、S(0)S(6)、S(1)S(2)、S(1)S(6)、S(2)S(3)、S(2)S(7)、S(3)S(5)、S(3)S(7)、S(4)S(7)、S(5)S(6)的异或和;
生成一值S1 17(2),其是S(1)、S(2)、S(5)、S(0)S(1)、S(0)S(5)、S(0)S(6)、S(0)S(7)、S(1)S(3)、S(1)S(5)、S(2)S(5)、S(2)S(6)、S(3)S(4)、S(3)S(6)、S(3)S(7)、S(4)S(7)、S(5)S(7)的异或和;以及
生成一值S1 17(4),其是S(1)、S(2)、S(3)、S(4)、S(6)、S(0)S(1)、S(0)S(2)、S(0)S(4)、S(0)S(5)、S(1)S(2)、S(1)S(4)、S(1)S(5)、S(1)S(6)、S(2)S(3)、S(2)S(4)、S(2)S(5)、S(2)S(7)、S(4)S(5)、S(4)S(6)、S(5)S(7)、S(6)S(7)的异或和。
36.根据权利要求34的装置,其特征在于,该校验子解码器还包括双重错误定位逻辑,该逻辑用于:
生成值Fi,其中每个Fi都是对应于i的二进制表示的、校验子向量S的位的异或和,并且i是3、4、14、18、23、26、29、30、40、44、49、50、69、71、85、89、98、107、108、123、130、131、137、139、168、180、183、192、198、199、203、204、206、232、237以及251;
如果S1 17(0,1,2,4)=(F183,F232,F139,F29),则生成一关于涉及该码字的位0的一双重错误的指示,其中S1 17(0,1,2,4)是一具有各分量S1 17(0)、S1 17(1)、S1 17(2)、S1 17(4)的向量;
如果S1 17(0,1,2,4)=(F26,F251,F123,F18),则生成一关于涉及该码字的位1的一双重错误的指示;
如果S1 17(0,1,2,4)=(F44,F168,F199,F23),则生成一关于涉及该码字的位2的一双重错误的指示;
如果S1 17(0,1,2,4)=(F237,F206,F107,F3),则生成一关于涉及该码字的位3的双重错误的指示;
如果S1 17(0,1,2,4)=(F192,F180,F137,F4),则生成一关于涉及该码字的位4的一双重错误的指示;
如果S1 17(0,1,2,4)=(F49,F203,F14,F85),则生成一关于涉及该码字的位5的一双重错误的指示;
如果S1 17(0,1,2,4)=(F30,F198,F130,F98),则生成一关于涉及该码字的位6的一双重错误的指示;
如果S1 17(0,1,2,4)=(F131,F204,F89,F40),则生成一关于涉及该码字的位16的双重错误的指示;以及
如果S1 17(0,1,2,4)=(F69,F50,F71,F108),则生成一关于涉及该码字的位17的一双重错误的指示。
37.根据权利要求36的装置,其特征在于,该校验子解码器还包括双重错误定位逻辑,该逻辑用于:
生成值Fi,其中每个Fi都是对应于i的二进制表示的、校验子向量S的位的异或和,并且i是1、20、21、42、45、52、58、74、86、96、135、142、143、145、148、160、162、177、178、182、184、190、202、209、210、213、215、223、226、234、240以及247;
如果S1 17(0,1,2,4)=(F202,F184,F20,F213),则生成一关于涉及该码字的位7的双重错误的指示;
如果S1 17(0,1,2,4)=(F226,F45,F42,F178),则生成一关于涉及该码字的位8的双重错误的指示;
如果S1 17(0,1,2,4)=(F160,F135,F223,F142),则生成一关于涉及该码字的位9的双重错误的指示;
如果S1 17(0,1,2,4)=(F58,F21,F182,F148),则生成一关于涉及该码字的位10的双重错误的指示;
如果S1 17(0,1,2,4)=(F209,F145,F74,F215),则生成一关于涉及该码字的位11的双重错误的指示;
如果S1 17(0,1,2,4)=(F210,F52,F1,F247),则生成一关于涉及该码字的位12的双重错误的指示;
如果S1 17(0,1,2,4)=(F162,F240,F177,F190),则生成一关于涉及该码字的位13的双重错误的指示;以及
如果S1 17(0,1,2,4)=(F86,F96,F234,F143),则生成一关于涉及该码字的位14的一双重错误的指示。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/744,564 US7243293B2 (en) | 2003-12-23 | 2003-12-23 | (18, 9) Error correction code for double error correction and triple error detection |
US10/744,564 | 2003-12-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1637713A true CN1637713A (zh) | 2005-07-13 |
CN100428176C CN100428176C (zh) | 2008-10-22 |
Family
ID=34710592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100904619A Expired - Fee Related CN100428176C (zh) | 2003-12-23 | 2004-11-18 | 根据(18,9)dec-ted码从数据字生成码字、对其解码的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7243293B2 (zh) |
CN (1) | CN100428176C (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101369242B (zh) * | 2008-09-28 | 2011-06-15 | 西北工业大学 | 计算机内存程序代码和数据的自检方法 |
CN102946082A (zh) * | 2012-10-23 | 2013-02-27 | 南京南瑞继保电气有限公司 | 一种采用双总线冗余通讯的实现方法 |
CN103886915A (zh) * | 2012-12-19 | 2014-06-25 | 英飞凌科技股份有限公司 | 用于校正包括邻近2比特错误的3比特错误的电路和方法 |
CN108055876A (zh) * | 2015-09-14 | 2018-05-18 | 高通股份有限公司 | 低功率双纠错-三检错(deb-ted)解码器 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7596743B2 (en) | 2005-09-28 | 2009-09-29 | Ati Technologies Inc. | Method and apparatus for error management |
US7590899B2 (en) * | 2006-09-15 | 2009-09-15 | International Business Machines Corporation | Processor memory array having memory macros for relocatable store protect keys |
US8069392B1 (en) * | 2007-10-16 | 2011-11-29 | Integrated Device Technology, Inc. | Error correction code system and method |
EP2297742B1 (en) | 2008-05-16 | 2013-07-24 | Fusion-io, Inc. | Apparatus, system, and method for detecting and replacing failed data storage |
US8140945B2 (en) * | 2008-05-23 | 2012-03-20 | Oracle America, Inc. | Hard component failure detection and correction |
US8307258B2 (en) | 2009-05-18 | 2012-11-06 | Fusion-10, Inc | Apparatus, system, and method for reconfiguring an array to operate with less storage elements |
US8281227B2 (en) | 2009-05-18 | 2012-10-02 | Fusion-10, Inc. | Apparatus, system, and method to increase data integrity in a redundant storage system |
US8612834B2 (en) * | 2011-03-08 | 2013-12-17 | Intel Corporation | Apparatus, system, and method for decoding linear block codes in a memory controller |
US8694872B2 (en) | 2011-11-28 | 2014-04-08 | Texas Instruments Incorporated | Extended bidirectional hamming code for double-error correction and triple-error detection |
US8806294B2 (en) | 2012-04-20 | 2014-08-12 | Freescale Semiconductor, Inc. | Error detection within a memory |
US8806295B2 (en) * | 2012-05-24 | 2014-08-12 | International Business Machines Corporation | Mis-correction and no-correction rates for error control |
US9529665B2 (en) * | 2014-03-26 | 2016-12-27 | Intel Corporation | Double consecutive error correction |
TWI551060B (zh) * | 2014-09-24 | 2016-09-21 | 衡宇科技股份有限公司 | Bch解碼方法及其解碼器 |
US10146615B2 (en) * | 2017-04-24 | 2018-12-04 | Arteris, Inc. | Recovery of a system directory after detection of uncorrectable error |
US11095313B2 (en) * | 2019-10-21 | 2021-08-17 | International Business Machines Corporation | Employing single error correction and triple error detection to optimize bandwidth and resilience under multiple bit failures |
CN112398485B (zh) * | 2020-11-20 | 2023-03-21 | 中国人民解放军国防科技大学 | 一种无误码率纠一检二纠相邻码的校验矩阵生成方法 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3648239A (en) * | 1970-06-30 | 1972-03-07 | Ibm | System for translating to and from single error correction-double error detection hamming code and byte parity code |
JPS5381036A (en) * | 1976-12-27 | 1978-07-18 | Hitachi Ltd | Error correction-detection system |
US4117458A (en) | 1977-03-04 | 1978-09-26 | Grumman Aerospace Corporation | High speed double error correction plus triple error detection system |
US4142174A (en) | 1977-08-15 | 1979-02-27 | International Business Machines Corporation | High speed decoding of Reed-Solomon codes |
US4464753A (en) | 1981-12-30 | 1984-08-07 | International Business Machines Corporation | Two bit symbol SEC/DED code |
US4509172A (en) | 1982-09-28 | 1985-04-02 | International Business Machines Corporation | Double error correction - triple error detection code |
US4556977A (en) | 1983-09-15 | 1985-12-03 | International Business Machines Corporation | Decoding of BCH double error correction - triple error detection (DEC-TED) codes |
US4862463A (en) | 1987-07-20 | 1989-08-29 | International Business Machines Corp. | Error correcting code for 8-bit-per-chip memory with reduced redundancy |
EP0386506A3 (en) | 1989-03-06 | 1991-09-25 | International Business Machines Corporation | Low cost symbol error correction coding and decoding |
US5537423A (en) | 1991-08-21 | 1996-07-16 | International Business Machines Corporation | Modular multiple error correcting code system |
US5425038A (en) | 1993-07-02 | 1995-06-13 | International Business Machines Corporation | Error plus single bit error detection |
US5745507A (en) | 1995-03-31 | 1998-04-28 | International Business Machines Corporation | Systematic symbol level ECC for use in digital memory systems |
KR100229015B1 (ko) * | 1996-08-06 | 1999-11-01 | 윤종용 | 디지탈 처리시스템의 에러정정장치 및 방법 |
US5805615A (en) | 1996-08-29 | 1998-09-08 | International Business Machines Corporation | Method and apparatus for encoding certain double-error correcting and triple-error detecting codes |
US5754562A (en) | 1996-08-29 | 1998-05-19 | International Business Machines Corporation | Method and apparatus for encoding certain double-error correcting and triple-error detecting codes |
CN1102261C (zh) * | 1999-07-12 | 2003-02-26 | 南京师范大学 | 群变换方法构成的bch符号编码、解码、多重纠错器件 |
US6519736B1 (en) | 1999-11-30 | 2003-02-11 | International Business Machines Corporation | Generating special uncorrectable error codes for failure isolation |
US6457154B1 (en) | 1999-11-30 | 2002-09-24 | International Business Machines Corporation | Detecting address faults in an ECC-protected memory |
US6536009B1 (en) * | 2000-05-17 | 2003-03-18 | Trw Inc. | Technique for generating single-bit error-correcting, two-bit burst error-detecting codes |
US6662332B1 (en) * | 2000-07-05 | 2003-12-09 | 3Com Corporation | Interleaver for burst error correction |
FR2812128B1 (fr) * | 2000-07-24 | 2003-01-10 | Agence Spatiale Europeenne | Procede et dispositif pour commander un radiometre interferometrique |
US7028248B2 (en) | 2001-02-28 | 2006-04-11 | International Business Machines Corporation | Multi-cycle symbol level error correction and memory system |
US7093183B2 (en) | 2001-02-28 | 2006-08-15 | International Business Machines Corporation | Symbol level error correction codes which protect against memory chip and bus line failures |
US6957243B2 (en) | 2001-10-09 | 2005-10-18 | International Business Machines Corporation | Block-serial finite field multipliers |
-
2003
- 2003-12-23 US US10/744,564 patent/US7243293B2/en not_active Expired - Fee Related
-
2004
- 2004-11-18 CN CNB2004100904619A patent/CN100428176C/zh not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101369242B (zh) * | 2008-09-28 | 2011-06-15 | 西北工业大学 | 计算机内存程序代码和数据的自检方法 |
CN102946082A (zh) * | 2012-10-23 | 2013-02-27 | 南京南瑞继保电气有限公司 | 一种采用双总线冗余通讯的实现方法 |
CN103886915A (zh) * | 2012-12-19 | 2014-06-25 | 英飞凌科技股份有限公司 | 用于校正包括邻近2比特错误的3比特错误的电路和方法 |
CN108055876A (zh) * | 2015-09-14 | 2018-05-18 | 高通股份有限公司 | 低功率双纠错-三检错(deb-ted)解码器 |
CN108055876B (zh) * | 2015-09-14 | 2022-11-18 | 高通股份有限公司 | 低功率双纠错-三检错(deb-ted)解码器 |
Also Published As
Publication number | Publication date |
---|---|
US7243293B2 (en) | 2007-07-10 |
CN100428176C (zh) | 2008-10-22 |
US20050149834A1 (en) | 2005-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1637713A (zh) | 用于双重错误修正和三重错误检测的(18,9)错误修正码 | |
CN1153354C (zh) | 纠错编码器、纠错解码器和具有纠错码的数据传输系统 | |
CN1838542A (zh) | 解码设备和方法以及程序 | |
CN1055586C (zh) | 纠错译码器和纠错译码方法 | |
CN1238782C (zh) | 使用循环位置代码对表面进行位置编码的方法 | |
CN1084966C (zh) | 纠错编码译码方法和利用这种方法的电路 | |
CN1309173C (zh) | 压缩/解压缩结构化文档的方法 | |
CN1698272A (zh) | 解码方法、解码装置、程序、记录/再现装置与方法、和再现装置与方法 | |
CN1108665C (zh) | 包括结合多维调制的乘积码的数字传输系统与方法 | |
CN1225491A (zh) | 纠错方法和系统 | |
CN1305221C (zh) | 迭代链接码解码电路以及使用该电路的编码/解码系统 | |
CN1692557A (zh) | 编码设备、编码方法、编码程序、解码设备、解码方法、和解码程序 | |
CN1213541C (zh) | 交错器,编码、译码设备和方法,置换方法及其系统 | |
CN1639985A (zh) | Ldpc码用检查矩阵生成方法及检查矩阵生成装置 | |
CN1552126A (zh) | 压缩文档的结构化描述的方法和系统 | |
CN1312630A (zh) | 基于分块加密方式的加密装置与方法及译码装置与方法 | |
CN101042682A (zh) | 访问控制装置、系统和方法,处理器 | |
CN101080874A (zh) | 纠错编码装置以及在其中使用的纠错编码方法 | |
CN1666420A (zh) | 检查矩阵生成方法及检查矩阵生成装置 | |
CN1701517A (zh) | 译码装置和方法、程序存储媒体和程序 | |
CN101076945A (zh) | 具有本地奇偶校验的直流平衡6b/8b传输代码 | |
CN1941636A (zh) | 编码方法及系统、解码方法、记录方法及系统和读取方法 | |
CN1276588C (zh) | 在通信系统中生成代码的设备和方法 | |
CN1020364C (zh) | 改进的数字信号数据及前向差错控制编码技术 | |
CN1154238C (zh) | 交织地址生成装置及交织地址生成方法 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20081022 Termination date: 20101118 |