CN106021012A - 数据处理电路 - Google Patents
数据处理电路 Download PDFInfo
- Publication number
- CN106021012A CN106021012A CN201610147621.1A CN201610147621A CN106021012A CN 106021012 A CN106021012 A CN 106021012A CN 201610147621 A CN201610147621 A CN 201610147621A CN 106021012 A CN106021012 A CN 106021012A
- Authority
- CN
- China
- Prior art keywords
- data
- circuit
- error correction
- partial words
- error
- 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
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/29—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- 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
- H03M13/13—Linear codes
- H03M13/19—Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
-
- 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/65—Purpose and implementation aspects
- H03M13/6561—Parallelized implementations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Detection And Correction Of Errors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本发明的各个实施例涉及一种数据处理电路。该数据处理电路包括错误处理电路和存储器。字数据由被分为多个部分字的主体数据和冗余数据配置而成。冗余数据由错误修正附加比特配置而成,该错误修正附加比特基于预定错误修正算法从主体数据生成,并且错误修正附加比特包括与部分字相对应的多个奇偶校验比特。错误处理电路包括错误修正电路和奇偶校验检查电路,字数据被并行地输入到错误修正电路和奇偶校验检查电路中。错误修正电路通过使用冗余数据来判定错误类型并且对可修正错误进行修正。奇偶校验检查电路基于访问所请求的部分字和对应的奇偶校验比特来执行奇偶校验检查。
Description
相关申请的交叉引用
2015年3月27日提交的日本专利申请2015-066301号的公开,包括说明书、附图和摘要,以引用的方式全部并入本文。
技术领域
本发明涉及一种数据处理电路,并且更具体地,涉及如下这种类型的数据处理电路:其优选地用于用错误修正代码保护已经写入到存储器中的数据,并且也优选地用于对从存储器读出的数据执行错误修正处理。
背景技术
为了提高存储器的可靠性,采用了如下这种类型的存储器:其配置以存储主体数据,该主体数据通过向其添加错误修正代码(ECC)而被存储,以便对读出的数据进行错误修正检测和错误修正处理。在如上所提及的这种存储器中,通常使用单错误修正-双错误检测(SECDED)代码,通过使用该代码对单比特错误进行修正以及对双比特错误进行检测(双比特错误不可修正)。
在日本特开平5(1993)-165736号公报中,公开了一种通过简单电路通过使用SECDED代码来修正双比特错误的电路系统。
在日本特开平10(1998)-97471号公报中,公开了一种用于在数据的块传输时修正存储在存储器中的数据中的错误的方法。将ECC代码添加至整个数据块,将数据块分为多个数据串,并且将多个比特添加至每个数据串。
发明内容
通过本发明的发明人及其他人对分别在日本特开平5(1993)-165736号公报以及平10(1998)-97471号公报中公开的系统和方法所进行的研究,发现仍存在如下新课题。
在从处理器诸如CPU(中央处理单元)等进行存取的存储器中,将指令代码长度(例如,32比特指令、64比特指令等)、数据长度等,设置为对存储器进行存取的存取单位。然而,存储器本身的电路配置具有,比存取单位的增加趋势更陡的、每个字的数据长度以128比特、256比特等的数量级增加的趋势。因此,当读出数据时,与已经请求对数据的地址读出相对应的部分,被从需要逐字读出的数据中物理地切出、并且输出。此时,将ECC代码添加至1个字的数据中。即,被逐字读出的比特长度的部分为主体数据,而其它部分则为从主体数据生成的ECC附加比特。错误修正处理电路从整个读出数据(主体数据和ECC附加比特)生成校正子,判定是否存在错误、错误类型是单比特错误还是双比特错误,输出判定结果,并且在存在单比特错误的情况下,修正在主体数据中的错误、并且输出主体数据。
由于就生成校正子和判定错误类型而言,必须输入主体数据和ECC附加比特中的全部,因此,一般而言,判定错误类型所需的时间与数据长度的对数成比例地增加。例如,当向128比特数据添加9个ECC附加比特时,判定错误类型所需的延时估计是8个双输入XOR门和5个双输入OR门。当向256比特数据添加10个ECC附加比特时,延时估计是9个双输入XOR门和5个双输入OR门。该延时取决于这种串联布置的门的数量,并且还取决于随着在并联方向上布置的门的规模的增加而导致的布线负载。如上所提及的,生成校正子以及判定错误类型所需的延时,主要取决于数据长度。
另一方面,发现存在需要使处理器速度提升的趋势,并且生成校正子和判定错误类型所需的延时很可能成为阻碍存储器存取速度增加和阻碍处理器速度提升的主要原因。
虽然下面将对用于解决如上所提及的主题的措施进行描述,但本发明的其它主题和新颖特征也将通过以下对本发明的说明书和附图的描述而变得显而易见。
下面将对根据本发明的一个实施例的数据处理电路进行描述。
即,该数据处理电路包括:存储器,由主体数据和冗余数据配置而成的字数据存储到该存储器中,并且字数据以字数据为单位从该存储器读出。该数据处理电路配置如下。
主体数据被分为多个部分字。冗余数据由错误修正附加比特配置而成,整个错误修正附加比特已经基于预定错误修正算法从主体数据生成,并且错误修正附加比特包括多个奇偶校验比特,多个奇偶校验比特分别与多个部分字对应。
错误处理电路包括错误修正电路和奇偶校验检查电路,从存储器读出的字数据被并行地输入到错误修正电路和奇偶校验检查电路中。错误修正电路通过使用包括在所输入的字数据中的冗余数据来判定包括在所输入的字数据中的主体数据的错误类型并且对可修正错误进行修正。奇偶校验检查电路基于包括在所输入的字数据中的部分字和与有关的部分字对应的奇偶校验比特来执行奇偶校验检查。
下面将简要描述通过根据本发明的一个实施例的数据处理电路所获得的有利效果。
即,在字数据以字数据为单位从存储器读出的该存储器中,能够与字长的增加相结合地、抑制存取速度的减慢,该字数据包括多个部分字,将多个部分字中的每个部分字设置为从外部存取的存取单位并且向多个部分字添加错误修正代码。
附图说明
图1是图示了根据第一实施例的一种用于在SECDED代码中生成ECC附加比特的方法的一个示例的说明图;
图2是图示了根据第一实施例的一种用于在SECDED代码中生成校正子的方法的一个示例的说明图;
图3是图示了一种用于在每个实施例均使用的错误修正算法中生成ECC附加比特的方法的一个示例的说明图;
图4是图示了一种用于在每个实施例均使用的错误修正算法中生成校正子的方法的一个示例的说明图;
图5是图示了向存储器添加了错误处理电路的比较示例的数据处理电路的一个配置示例的框图;
图6是图示了根据向存储器添加了错误处理电路的第二实施例的数据处理电路的一个配置示例的框图;
图7是图示了图5的错误处理电路的一个操作示例的定时图;
图8是图示了图6的错误处理电路的一个操作示例的定时图;
图9是图示了在比较示例中的一种用于生成ECC附加比特的方法的一个示例的说明图,该ECC附加比特被包括在需要输入到图5的错误处理电路中的字数据中;
图10是图示了在比较示例中的一种用于在图5的错误处理电路中生成校正子的方法的一个示例的说明图;
图11是图示了根据第二实施例的一种用于生成ECC附加比特的方法的一个示例的说明图,该ECC附加比特被包括在需要输入到图6的错误处理电路中的字数据中;
图12是图示了根据第二实施例的一种用于在图6的错误处理电路中生成校正子的方法的一个示例的说明图;
图13是图示了根据第二示例的图6的错误处理电路的一个更详细的配置示例的框图;
图14是图示了根据向存储器添加了错误处理电路的第三实施例的数据处理电路的一个配置示例的框图;
图15是图示了根据第三实施例的一种用于生成ECC附加比特的方法的一个示例的说明图,该ECC附加比特被包括在需要输入到图14的错误处理电路中的字数据中;
图16是图示了根据第三实施例的一种用于在图14的错误处理电路中生成校正子的方法的一个示例的说明图;
图17是图示了图14的错误处理电路的一个更详细的配置示例的框图;
图18是图示了图14的错误处理电路的一个操作示例的定时图;
图19是图示了图14的错误处理电路的更改示例的框图;
图20是图示了图17的错误处理电路的更改示例的框图;
图21是图示了当将根据第二实施例的存储器和错误处理电路加载到用奇偶校验码保护总线数据的系统时的一个配置示例的框图;
图22是图示了当将根据第三实施例的存储器和错误处理电路加载到用奇偶校验码保护总线数据的系统时的一个配置示例的框图;
图23是图示了一个向图21的配置添加用于将数据写入到存储器中的电路的配置示例的框图;
图24是图示了一个向图22的配置添加用于将数据写入到存储器中的电路的配置示例的框图。
具体实施方式
在下文中,将参照附图对本发明的优选实施例进行详细描述。附带提及,在加附以便对本发明的实施例进行图示的所有附图中,原则上,相同的部分具有相同的标号或者符号,并且略去对其的重复描述。
第一实施例
<操作原理>
首先,将对本发明的每个实施例所使用的错误修正算法进行简要描述。
基本算法是汉明码。汉明码是如下这样的代码:其中在伽罗瓦域GF(2)上的不为“0”的m维矢量中的不同者(different things)的数目为2m-1,其中“2”被设定为用于任意正整数m的模数,并且从而,所有这些不同者被排列为列的矩阵被用作检查矩阵,并且代码长度n为2m-1,并且信息比特数目k为n-m(k和n均为正整数)。此时,“2m”意指“2”的第m次幂(这同样适用于本发明的整个说明书)。在汉明码中,在代码字之间的最小距离为3,并且能够用汉明码对单比特错误进行修正。另一方面,通过将在代码字之间的最小距离增加到4来使检测到双比特错误成为可能的代码,是扩展型汉明码,并且扩展型汉明码的一个典型示例为SECDED代码。
将对SECDED代码的算法进行描述。
图1是图示了一种用于在SECDED代码中生成ECC附加比特的方法的一个示例的说明图。通过将k个信息比特(d0到dk-1)乘以(m+1)行×k列(k和m均为正整数)的生成矩阵,来生成m个ECC附加比特(p0到pm)。在生成矩阵中,在图1的上侧所图示的m行×k列的矩阵中的相应列,由与汉明码相似的“在m维矢量中的不同者”配置而成,即,由在除了所有比特均为“0”的组合之外的2m-1个组合中的彼此不同的矢量配置而成。能够通过将所有比特均为“1”的行添加至最下层,来使在代码字之间的最小距离增加到如上所提及的4;并且从而,除了修正单比特错误的功能之外,还添加了检测双比特错误的功能。可替代地,还可以通过配置使彼此不同的向量分别具有奇数个“1”,来使在代码字之间的最小距离增加到如上所提及的4;并且从而,除了修正单比特错误的功能之外,还添加了检测双比特错误的功能。每个矢量也可以配置为具有偶数个“1”。
将信息比特d0到dk-1和所生成的ECC附加比特p0到pm结合在一起,存储到存储器中、并且从存储器读出。从存储器读出的数据段由x0到xk-1以及p0到pm表示。当不存在错误时,数据段x0到xk-1与信息比特d0到dk-1相同。虽然存在在ECC附加比特p0到pm中也可能生成错误的可能性,但为了方便起见,对于被从存储器读出的ECC附加比特,原样地使用相同的代码。为了判定错误类型,首先,获取校正子。
图2是图示了一种用于在SECDED代码中生成校正子的方法的一个示例的说明图。通过将已经被从存储器读出的数据段x0到xk-1以及p0到pm、乘以(m+1)行×(k+m+1)列的检查矩阵,来生成校正子s0到sm。该检查矩阵通过使上面所提及的(m+1)行×k列的生成矩阵与(m+1)行×(m+1)列的单位矩阵结合在一起,配置而成。
所生成的校正子s0到sm用于判定错误类型。当所有的校正子s0到sm均为“0”时,判定不存在错误。将校正子s0到sm和与上面所提及的在检查矩阵中的(m+1)行×k列的生成矩阵相对应的部分的每列进行比较,并且当存在与校正子匹配的列时,判定生成单比特错误;并且当不存在与校正子匹配的列时,判定生成双比特错误、并且不对错误进行任何修正。不对三比特或者更多比特的错误进行判定。
由于与校正子s0到sm匹配的列的编号与已经生成错误的信息比特的比特的位置的编号对应,因此,通过将在已经从存储器读出的数据段x0到xk-1中的对应比特位置处的数据反转,来修正错误,并且从而重新存储信息比特d0到dk-1。
图3是图示了一种用于在每个实施例均使用的该错误修正算法中生成ECC附加比特的方法的一个示例的说明图。通过使N×L个信息比特乘以M行×(N×L)列的生成矩阵(L、M和N均为正整数),来生成M个ECC附加比特(p0到pM-1)。信息比特以N个比特为单位划分为部分字,并且由L个部分字配置而成。即,第一个部分字用“d0、d1、…和dN-1”表示,第二个部分字用“dN、dN+1、…和d2N-1”表示,并且接续的部分字继续用该方式表示,直到第L个部分字用“d(L-1)N、d(L-1)(N+1)、…和dLN-1”表示。所有信息比特的比特长度为N×L比特。
生成矩阵由M行×(N×L)列配置而成。列数与信息比特的比特数相同这一点,与图1所图示的SECDED代码的情况相同。生成矩阵的第0列到第(N-1)列,分别与第一部分字的d0、d1、…和dN-1对应,生成矩阵的第N列到第2N-1列,分别与第二部分字的dN、dN+1、…和d2N-1对应。同样地,生成矩阵的第(L-1)N列到第(LN-1)列,分别与第L部分字的d(L-1)N、d(L-1)(N+1)、…和dLN-1对应。
在生成矩阵中M行中的m行均为与汉明码相似的“在m维矢量中的不同者”,并且由在除了所有比特均为“0”的组合之外的2m-1个组合中的彼此不同的矢量配置而成。然而,在SECDED代码中,通过添加一行使在代码字之间的最小距离增加到4;并且从而,添加了检测双比特错误的功能;在本算法(本发明的每个实施例均使用的该错误修正算法)中,添加了L行。在所添加的L行中,仅与部分字对应的列由“1”配置而成,而其它列由“0”配置而成。由于所添加的行数多,因此,存在在代码字之间的最小距离变得大于4的情况。在这种情况下,只要每列可能满足SECDED代码的要求,就能够减少行的总数M。此处,SECDED代码的要求是指,例如,“所有列彼此不同并且每列具有奇数个‘1’”的规范。原因是,通过使SECDED代码满足总共为M行(包括所添加的L行)的要求,单比特错误修正-双比特错误检测成为可能。
一些通过使用该生成矩阵生成的ECC附加比特(p0到pM-1),配置与相应的部分字对应的奇偶校验比特。即,通过仅仅与第一部分字的d0、d1、…和dN-1对应的列为“1”的第(M-L+1)行生成的ECC附加比特pM-L,生成为d0、d1、…和dN-1的XOR,并且配置了用于向第一部分字提供偶数的奇偶校验的奇偶校验比特。同样地,与第二部分字dN、dN+1、…和d2N-1对应的ECC附加比特pM-L+1,配置了用于向第二部分字提供偶数的奇偶校验的奇偶校验比特。这也顺序地适用于下文,并且与第L部分字d(L-1)N、d(L-1)(N+1)、…和dLN-1对应的ECC附加比特pM-1,配置用于向第L部分字提供偶数的奇偶校验的奇偶校验比特。
图4是图示了一种用于在本算法中生成校正子的方法的一个示例的说明图。与已经参照图2所描述的SECDED代码的情况相似,通过将已经从存储器读出的数据段x0、x1、…和xN-1、xN、xN+1、…以及x2N-1、…、x(L-1)N、x(L-1)(N+1)、…和xLN-1以及p0到pM-1乘以M行×(N×L+M)列的检查矩阵,来生成校正子s0到sm。该检查矩阵通过使上面所提及的M行×(N×L)列的生成矩阵与M行×M列的单位矩阵结合在一起配置而成。
所生成的校正子s0到sM-1用于判定错误类型。当所有的校正子s0到sM-1均为“0”时,判定不存在错误。将校正子s0到sM-1和与上面所提及的在检查矩阵中的M行×(N×L)列的生成矩阵对应的部分的每列进行比较,并且当存在与校正子匹配的列时,判定生成单比特错误;而当不存在与校正子匹配的列时,判定生成双比特错误,并且不对错误进行任何修正。不对三比特或者更多比特的错误进行判定。
与校正子s0到sM-1匹配的列的编号,与已经生成错误的信息比特的比特位置的编号对应。通过将在已经从存储器读出的数据段x0、x1、…和xN-1、xN、xN+1、…和x2N-1、…、x(L-1)N、x(L-1)(N+1)、…和xLN-1中的对应的比特位置处的数据反转,来修正错误,并且从而重新存储信息比特d0、d1、…和dN-1、dN、dN+1、…和d2N-1、…、d(L-1)N、d(L-1)(N+1)、…和dLN-1。
如上所描述的,以与SECDED代码相同的方式执行通过本算法进行错误修正。
由于,在本算法中,如上所描述的,奇偶校验pM-L到pM-1配置了分别对应于第1到第L个部分字的奇偶校验比特,因此,每个部分字的奇偶校验检查(奇偶校验解码),能够与上面所提及的校正子生成和错误类型判定的执行并行地执行。奇偶校验解码可能对所有部分字并行地执行,或者按照时分方式对部分字连续地执行。
附带提及,所有图示的矩阵均为线性的,并且可以可选地执行行交换和列交换。
本算法所适用的存储器是如下这样的存储器:将包括主体数据和ECC附加比特的一个字,用作用于数据写入和读出的单位,并且将部分字设置为从外部存取的存取单位。该存储器为ROM(只读存储器),诸如例如,闪速存储器等,并且本算法所适用的错误处理电路被添加至该存储器。作为替代,该存储器可以由RAM(随机存储存储器)配置而成,并且进一步地,可以将从写入数据(也可以包括地址)生成ECC附加比特的编码电路,添加至存储器。对已经从存储器读出的整个数据执行上面所提及的错误类型判定和错误修正,并且与上面所提及的错误类型判定和错误修正的执行并行地、对部分字执行奇偶校验检查。即,从已经从存储器读出的数据,抽出部分字和对应的奇偶校验;以所抽出的部分字和奇偶校验为对象,执行奇偶校验解码(奇偶校验检查);并且从而能够判定在该部分字中是否存在单比特错误。由于仅检查了奇偶校验,因此,所做的仅限于检测单比特错误,并且此处不对错误进行任何修正。
如上所描述的,在本算法中,由于对已经从存储器读出的整个数据执行了与通过SECDED代码进行的单比特错误修正-双比特错误检测相同的单比特错误修正-双比特错误检测,因此,能够与从(N×L+M)比特生成校正子s0到sM-1和判定错误类型的执行并行地、执行对每个部分字的奇偶校验检查。由于输入(N+1)比特用于对每个部分字执行的奇偶校验检查、并且(N+1)比特与用于上面所提及的校正子生成的(N×L+M)比特的约1/L对应,因此电路延时非常小。使得上面所提及的部分字的比特数与存储器的存取单位匹配,并且由此能够及时检测出,在已经进行存取请求的部分字中不存在单比特错误。在存在单比特错误的情况下,等待直到完成已经从存储器读出的整个数据的错误修正,再输出部分字。附加地,在已经从存储器读出的整个数据中存在双比特错误的情况下,存在难以通过对每个部分字进行的奇偶校验检查来检测到错误的情况。将在这种情况下执行的数据处理,委托至后面级。在实际的电路操作中,在大多情况下不会生成错误,单比特错误的生成极为罕见,而双比特错误的生成比单比特错误的生成更为罕见。因此,由于存储器的平均存取速度主要根据在不存在错误时的延时限定,所以能够提高整体的存储器的存取性能。
虽然,在上文中,已经基于汉明码和扩展型汉明码(SECDED代码),对错误修正算法的使用进行了描述,但可以将该代码改变为另一错误修正代码。即,将生成矩阵和检查矩阵配置为,当已经将主体数据分为多个部分字时,使得:用于以符合预定错误修正算法的整个主体数据为对象的被执行的错误修正的ECC附加比特,包括有为相应的部分字设置的奇偶校验比特。存储器将包括主体数据和ECC附加比特的一个字,用作用于数据写入和读出的单位,并且将部分字设置为从外部进行存取的存取单位。当将主体数据和ECC附加比特存储在存储器中、并且稍后从存储器读出时,通过使用主体数据和ECC附加比特、与符合有关的错误修正算法的判定错误类型和错误修正的执行并行地、执行已经进行存取请求的部分字的奇偶校验解码(奇偶校验检查)。当通过执行奇偶校验解码(奇偶校验检查)、而已经判定在存取请求的部分字中不存在错误时,能够高速地从读出数据输出对应的部分字。另一方面,当已经判定存在错误时,基于上面提及的符合有关的错误修正算法的错误类型判定的结果,适当地执行错误修正,并且给出转至在后面级中执行的错误处理的通知,诸如,输出来自修正的数据的被请求存取的部分字、宣告在输出的部分字上的数据无效等等。从而,能够通过向字数据添加错误修正代码(ECC附加比特),而与存储器中的字长的增加相结合地、抑制存取速度的减慢;在该存储器中,将包括有多个部分字的字数据按字数据的单位来读出,该多个部分字中的每个部分字都是从外部进行存取的存取单位。
第二实施例
<奇偶校验解码的并行化>
将对更详细的实施例进行描述。
图5是图示了向存储器添加了错误处理电路的比较示例的数据处理电路的一个配置示例的框图。图6是图示了根据第二实施例的数据处理电路的一个配置示例的框图。虽然,在附图中,布线是由信号布线的一个或者多个组配置而成的总线配置的数字信号布线,但是省略了对总线的图示。附加地,省略了对用于配置和控制流水线的信号线诸如时钟信号线等、以及对用于控制对存储器的存取的信号线诸如地址线等的图示。这同样适用于本发明的其它实施例的其它附图。
图5所图示的比较示例的数据处理电路通过将错误处理电路10耦合至存储器20配置而成。错误处理电路10包括配置流水线的校正子生成电路1、错误类型判定电路2、错误修正电路3、已修正数据选择电路4、确认生成电路5、字切出电路6以及多个触发器9_1到9_3。需要从存储器20读出的数据RDW是包括主体数据X和ECC附加比特P的字数据。将整个读出的字数据RDW(X、P)提供至校正子生成电路1,并且经由触发器9_1将主体数据部分RDW(X)提供至错误修正电路3。经由触发器9_2,将已经由校正子生成电路1生成的校正子提供至错误类型判定电路2和错误修正电路3。错误类型判定电路2判定错误类型是什么,“无错误(NED:未检测到错误)”、“单比特错误(SEC:修正了单比特错误)”或者“双比特错误(DED:检测到双比特错误)”,并且将判定结果作为错误类型ERR输出。错误修正电路3基于所输入的校正子S对读出的修正前主体数据X执行错误修正处理,并且经由触发器9_3向已修正数据选择电路4输出修正后主体数据Y。已修正数据选择电路4基于错误类型ERR来选择修正前主体数据X或者修正后主体数据Y,并且将其输出至字切出电路6。在单比特错误的情况下,选择并且输出修正后主体数据Y,而在无错误或者双比特错误的情况下,选择并且输出修正前主体数据X。字切出电路6从已经从已修正数据选择电路4输出的修正前主体数据X或者修正后主体数据Y,切出已经向存储器20请求存取的部分字,并且将切出的部分字作为输出数据RDT输出。确认生成电路5生成确认信号ACK,该确认信号ACK指示如下这样的定时:其时,基于错误类型ERR,输出对于输出数据RDT有效的数据。当错误类型为单比特错误、并且该错误由错误修正电路3修正时,执行错误修正处理消耗了时间,并且因此相对于修正前主体数据X延迟一个周期输出修正后主体数据Y。因此,与在无错误的情况下断言信号ACK相比,当错误类型ERR为单比特错误时,确认生成电路5晚一个周期断言确认信号ACK。当错误类型ERR为双比特错误时,难以对错误进行修正。在这种情况下的每个信号的输出,根据来自在后面级中安装的错误处理电路10的请求来适当地限定。
图7是图示了图5的错误处理电路10的一个操作示例的定时图。横轴表示时间,并且指示了时间t1到t5,其中被提供至触发器9_1到9_3的流水线时钟信号的周期被设置为单位。在纵轴方向上,已经从存储器20读出的字数据RDW、校正子S、修正前主体数据X以及修正后主体数据Y按该顺序从上到下表示。进一步地,分别表示了:针对无错误、单比特错误以及双比特错误这三种错误类型中的每种错误类型的、所输出的错误类型ERR、确认信号ACK以及部分字RDT。虽然通过对有关信号的名称进行描述而在每种波形中指出了在所关注的存取周期中的数据,但是空周期可以供在非关注的另外的存取周期中的数据使用。这同样适用于本发明的实施例的其它定时图。
在时间t1处,从存储器20读出字数据RDW。字数据RDW包括主体数据X和ECC附加比特P。将已经由校正子生成电路1生成的校正子S取入触发器9_2中,并且在时间t2处输出。在时间t2处,经由触发器9_1,将在读出的字数据RDW中的主体数据X提供至错误修正电路3。同样在时间t2处,将对应的校正子S提供至错误修正电路3,并且错误修正电路3对主体数据X执行错误修正处理,并且在时间t3处,经由触发器9_3输出修正后主体数据Y。在将校正子S提供至错误类型判定电路2的时间t2处,错误类型判定电路2判定错误类型,并且输出无错误(NED)、单比特错误(SEC)和双比特错误(DED)中的任一个,作为错误类型ERR。
在无错误的情况下(ERR=NED),同样在时间t2处输出的修正前主体数据X由已修正数据选择电路4选择、并且输出,并且需要存取的部分字由字切出电路6切出、并且作为输出数据RDT(X)输出。此时,确认生成电路5同样在时间t2处断言确认信号ACK。
在单比特错误的情况下(ERR=SEC),由已修正数据选择电路4选择并且输出在时间t2一个周期之后的时间t3处输出的修正后主体数据Y,并且需要存取的部分字由字切出电路6切出,并且作为输出数据RDT(Y)输出。此时,确认生成电路5同样在时间t2一个周期之后的时间t3处,断言确认信号ACK。
在双比特错误的情况下(ERR=DED),由已修正数据选择电路4选择并且输出同样在时间t2处输出的修正前主体数据X,并且需要存取的部分字由字切出电路6切出,并且作为输出数据RDT(X)输出。此时,确认生成电路5同样在时间t2处断言确认信号ACK。即,不管错误类型被判定为双比特错误(ERR=DED)这一事实,输出可能包括错误的修正前主体数据X。这是因为双比特错误超出了错误修正电路3的错误修正能力,并且因此将错误处理委托给后面的级。可以根据需要在后面级执行的错误处理的内容,来适当地改变在双比特错误(ERR=DED)的情况下需要输出的输出信号的规范。
图6是图示了根据第二实施例的数据处理电路的一个配置示例的框图。图6所图示的根据第二实施例的数据处理电路,通过将错误处理电路10耦合至存储器20配置而成。与图5所图示的根据比较示例的错误处理电路10相似,错误处理电路10包括配置了流水线等的校正子生成电路1、错误类型判定电路2、错误修正电路3、已修正数据选择电路4、确认生成电路5、字切出电路6以及多个触发器9_1到9_3。错误处理电路10进一步包括字+奇偶校验切出电路7、奇偶校验解码电路8等。从存储器20读出的数据RDW是包括主体数据X和ECC附加比特P的字数据。将已经从存储器20读出的整个字数据RDW(X、P)提供至校正子生成电路1,经由触发器9_1将主体数据部分RDW(X)提供至错误修正电路3,并且与进行上面所提及的操作并行地、将整个字数据RDW(X、P)提供至字+奇偶校验切出电路7。
经由触发器9_2,将已经由校正子生成电路1生成的校正子S提供至错误类型判定电路2和错误修正电路3。错误类型判定电路2判定错误类型是什么:无错误(NED)、单比特错误(SEC)或者双比特错误(DED);并且将判定结果作为错误类型ERR输出。错误修正电路3基于所输入的校正子S对读出的修正前主体数据X执行错误修正处理,并且经由触发器9_3向字切出电路6输出修正后主体数据Y。字切出电路6将已经向存储器20请求的部分字从修正后主体数据Y切出,并且将切出的部分字输出至已修正数据选择电路4。
字+奇偶校验切出电路7从提供的字数据RDW(X、P)切出已经向存储器20请求存取的部分字和与该部分字对应的奇偶校验比特,并且将部分字和对应的奇偶校验比特提供至奇偶校验解码电路8。将切出的部分字输出至已修正数据选择电路4。奇偶校验解码电路8对所提供的部分字和奇偶校验比特执行奇偶校验解码,判定是否存在奇偶校验错误,并且输出可修正错误信号CER。由于此处仅判定是否存在奇偶校验错误,因此要基于从错误类型判定电路2输出的错误类型ERR来判定奇偶校验错误实际上是否可修正。然而此时,奇偶校验错误是否存在被简单地输出,作为可修正错误信号CER。
已修正数据选择电路4选择并且输出已经从修正后主体数据Y切出的部分字、或者已经从修正前主体数据X切出的部分字。在存在奇偶校验错误的情况下,选择并且输出已经从修正后主体数据Y切出的部分字。在不存在奇偶校验错误的情况下,选择并且输出已经从修正前主体数据X切出的部分字。
确认生成电路5生成确认信号ACK,该确认信号ACK指示如下这样的定时:其时,基于可修正错误信号CER,输出对于输出数据RDT有效的数据。当尚未检测到奇偶校验错误时,在已经从存储器20读出数据的周期中,输出已经从修正前主体数据X切出的部分字;并且因此,确认生成电路5断言确认信号ACK到该周期。另一方面,当已经检测到奇偶校验错误时,由于等待直到完成由错误修正电路3执行的错误修正处理,延时两个周期地输出已经从修正后主体数据Y切出的部分字;并且因此,当没有已经检测到奇偶校验错误时,确认生成电路5相对于需要执行的信号断言,延时两个周期地断言确认信号ACK。
图8是图示了图6的错误处理电路的一个操作示例的定时图。与图7的示例相似,横轴表示时间,并且指示了时间t1到t5,其中被提供至触发器9_1到9_3的流水线时钟信号的周期被设置为单位。在纵轴方向上,已经从存储器20读出的字数据RDW、校正子S、修正前主体数据X、修正后主体数据Y以及错误类型ERR按该顺序从上到下表示。进一步地,分别表示了:针对不存在奇偶校验错误和存在奇偶校验错误的、所输出的可修正错误信号CER、确认信号ACK以及部分字RDT。
在时间t1处,从存储器20读出字数据RDW,该字数据RDW包括主体数据X和ECC附加比特P。将已经由校正子生成电路1生成的校正子S取入触发器9_2中,并且在时间t2处输出。在时间t2处,经由触发器9_1,将在读出的字数据RDW中的主体数据X提供至错误修正电路3。同样在时间t2处,将对应的校正子S提供至错误修正电路3,并且错误修正电路3对主体数据X执行错误修正处理,并且在时间t3处,经由触发器9_3输出已修正的主体数据Y。在将校正子S提供至错误类型判定电路2的时间t2处,错误类型判定电路2判定错误类型,并且输出无错误(NED)、单比特错误(SEC)和双比特错误(DED)中的任一个,作为错误类型ERR。到目前为止所执行的操作与图7所图示的比较示例的操作相同。
在从存储器20读出字数据RDW的时间t1处,字+奇偶校验切出电路7切出部分字和与该部分字对应的奇偶校验比特,并且将切出的部分字和对应的奇偶校验比特提供至奇偶校验解码电路8。将切出的部分字输出至已修正数据选择电路4。奇偶校验解码电路8对所提供的部分字和奇偶校验比特执行奇偶校验解码,判定奇偶校验错误是否存在,并且输出可修正错误信号CER。由于字+奇偶校验切出电路7是配置为从字数据RDW简单地选择部分字和奇偶校验比特的简单电路、并且奇偶校验检查电路8可以具有高速电路配置(其延时级数减少,这是因为被解码的对象是在数据大小上是字数据RDW的若干分之一的部分字)因此,能够在与从存储器20读出字数据RDW的周期相同的周期中执行奇偶校验解码。
在不存在奇偶校验错误的情况下(CER=0),由已修正数据选择电路4选择,已经从在时间t1处输出的修正前主体数据X切出的部分字,并且将其作为输出数据RDT(X)输出。在存在奇偶校验错误的情况下(CER=1),由已修正数据选择电路4选择,已经从在时间t3处输出的修正后主体数据Y切出的部分字,并且将其作为输出数据RDT(Y)输出。
即使当已经判定在部分字中不存在奇偶校验错误(CER=0)时,可能也并不一定意味着在字数据RDW中不存在错误(ERR=NED)。存在可能在除了有关的部分字之外的部分中生成了错误的可能性,还存在可能在有关的部分字中生成了双比特错误的可能性。因此,如上所提及的已经在时间t1处输出的输出数据RDT(X),可能并不一定是已经从不存在错误的字数据切出的部分字。然而,由于实际生成错误的可能性低,因此,通过在后面级中、将当不存在奇偶校验错误时获得的数据用作输出数据RDT,改进了存储器20的存取周期。通过比较图7的示例和图8的示例,发现,在图8的示例中,提前了一个周期输出数据。另一方面,由于如上所提及的在时间t2处输出基于校正子S判定的修正错误类型ERR,因此,在后面级中,一旦在时间t1处基于修正错误类型ERR的判定结果输出了输出数据RDT(X),对其执行适当的处理。例如,在单比特错误的情况下(ERR=SEC),一旦输出了输出数据RDT(X),使其无效,并且用由已经从修正后主体数据Y切出的部分字配置而成的输出数据RDT(Y)替代。在双比特错误的情况下(ERR=DED),流程转到适当的错误处理。
在实际的电路操作中,在大多数情况下不生成错误,单比特错误的生成极为罕见,并且双比特错误的生成比单比特错误的生成更为罕见。因此,由于存储器20的平均存取速度主要根据在不存在错误时的延时限定,所以能够整体提高存储器20的存取性能。
附带提及,已经在第二实施例中描述的流水线配置仅仅是一个示例,并且考虑到会在每个流水线级中发生的电路延时,可以进行适当地改变,并且图7和图8所图示的定时图可以根据流水线配置的改变结果而改变。
将对错误处理电路10的一个具体配置示例进行描述。为了便于理解,将基于主体数据由9比特配置而成、并且每个部分字由3比特配置而成的假设,进行说明。配置每个主体数据和每个部分字中的每一个的比特数仅仅是一个示例,并且可选地可以改变。
图9是图示了根据比较示例的一种用于生成ECC附加比特的方法的一个示例的说明图,该ECC附加比特被包括在输入到图5的错误处理电路10中的字数据中。通过将9比特主体数据d0到d8乘以5行×9列的生成矩阵,来生成5个ECC附加比特p0到p4。此处所使用的生成矩阵是如下这样的扩展型汉明码生成矩阵:该生成矩阵的列彼此不同,并且每列均由奇数个“1”配置而成。
图10是图示了一种用于在图5的错误处理电路中生成校正子的方法的一个示例的说明图。通过将已经从存储器20读出的数据段x0到x8以及p0到p4,乘以5行×14列的检查矩阵,来生成校正子s0到s4。该检查矩阵通过使上面所提及的5行×9列的生成矩阵与5行×5列的单位矩阵结合在一起配置而成。图5的校正子生成电路1根据该乘法公式来生成校正子s0到s4。
图11是图示了根据第二实施例的一种用于生成ECC附加比特的方法的一个示例的说明图,该ECC附加比特被包括在被输入到图6的错误处理电路10中的字数据中。通过使9比特主体数据d0到d8乘以6行×9列的生成矩阵,来生成6个ECC附加比特p0到p5。此处所使用的生成矩阵是如下这样的扩展型汉明码生成矩阵:该生成矩阵的列彼此不同,并且每列由奇数个“1”配置而成,并且同时包括用于生成每个部分字奇偶校验码的部分。即,在生成矩阵的第4行中,与第一部分字的比特d0到d2对应的第1到第3列均为“1”,其它列均为“0”,并且通过第4行生成的奇偶校验p3配置了用于第一部分字d0到d2的奇偶校验代码。同样地,在生成矩阵的第5行中,与第二部分字的比特d3到d5对应的第4到第6列均为“1”,其它列均为“0”,并且通过第5行生成的奇偶校验p4配置了用于第二部分字d3到d5的奇偶校验代码。此外,在生成矩阵的第6行中,与第三部分字的比特d6到d8对应的第7到第9列均为“1”,其它列均为“0”,并且通过第6行生成的奇偶校验p5配置了用于第三部分字d6到d8的奇偶校验代码。
图12是图示了根据第二实施例的一种用于在图6的错误处理电路10中生成校正子的方法的一个示例的说明图。通过将已经从存储器20读出的字数据x0到x8以及p0到p5乘以6行×15列的检查矩阵,来生成校正子s0到s5。该检查矩阵通过使上面所提及的6行×9列的生成矩阵与6行×6列的单位矩阵结合在一起配置而成。图6的校正子生成电路1根据该乘法公式来生成校正子s0到s5。
由于在ECC附加比特p0到p5中的比特p3到p5分别配置用于如上所描述的第一部分字到第三部分字的奇偶校验码,因此,能够与上面所提及的校正子生成以及之后的错误类型判定处理和错误修正处理的执行并行地、执行每个部分字的奇偶校验检查。
图13是图示了图6的错误处理电路10的一个更详细的配置示例的框图。
将已经从存储器20读出的修正前主体数据X(x0到x8)和ECC附加比特(p0到p5)输入到错误处理电路10中。将整个读出的字数据(x0到x8以及p0到p5)输入至校正子生成电路1,并且经由触发器9_1将主体数据x0到x8输入到错误修正电路3中。
经由触发器9_2,将已经由校正子生成电路1生成的校正子s0到s5提供至错误类型判定电路2和错误修正电路3。错误类型判定电路2判定错误类型是什么:无错误(NED)、单比特错误(SEC)或者双比特错误(DED);并且将判定结果作为错误类型ERR输出。错误修正电路3基于所输入的校正子s0到s5对读出的修正前主体数据x0到x8执行错误修正处理,并且经由触发器9_3向字切出电路6输出修正后主体数据y0到y8。字切出电路6从修正后主体数据y0到y8,切出已经向存储器20请求存取的部分字y0到y2或者y3到y5或者y6到y8,并且切出的部分字输出至已修正数据选择电路4。
字+奇偶校验切出电路7由用于从主体数据x0到x8切出有关的部分字的选择器71和用于从ECC附加比特p0到p5切出对应的奇偶校验比特的选择器72配置而成。选择器71从主体数据x0到x8切出已经向存储器20请求存取的部分字x0到x2或者x3到x5或者x6到x8,并且将切出的部分字输出至已修正数据选择电路4和奇偶校验解码电路8。选择器72从ECC附加比特p0到p5切出与上面所提及的部分字对应的奇偶校验比特p3或者p4或者p5,并且将切出的奇偶校验比特输出至奇偶校验解码电路8。奇偶校验解码电路8对所提供的部分字和奇偶校验比特执行奇偶校验解码,判定是否存在奇偶校验错误,并且输出可修正错误信号CER。
已修正数据选择电路4基于可修正错误信号CER,选择并且输出已经从修正后主体数据Y切出的部分字或者已经从修正前主体数据X切出的部分字。在存在奇偶校验错误的情况下,选择并且输出已经从修正后主体数据Y切出的部分字。在不存在奇偶校验错误的情况下,选择并且输出已经从修正前主体数据X切出的部分字。
确认生成电路5生成确认信号ACK,该确认信号ACK指示如下这样的定时:其时,基于可修正错误信号CER,输出对于输出数据RDT有效的数据。
这样,将已经从存储器20读出的整个9比特数据x0到x8和5个ECC附加比特p0到p5、总计15比特,输入到校正子生成电路1,并且由此,校正子生成电路1生成由6个比特配置而成的校正子s0到s5。与此相反,在对每个部分字执行的奇偶校验检查中,经由在字+奇偶校验切出电路7中的选择器71或者72中的一个级,将由用于部分字的3个比特和1个奇偶校验比特配置而成的总计4个比特,输入到奇偶校验解码电路8中,并且由此,生成可修正错误信号CER。因此,与总计输入15比特的校正子生成电路1相比,能够大大减少电路延时。由此,不存在奇偶校验错误,被高速地判定;并且由此,通过考虑到错误生成的可能性而得到的存储器20的平均存取速度,能够得到提高。
在第二实施例中,已经对在时分方式下操作奇偶校验解码电路8的配置进行了图示。作为替代,可以针对每个部分字提供奇偶校验解码电路8,并且这样设置的奇偶校验解码电路8可以彼此并行地操作。
图19是图示了图13所图示的错误处理电路10的一个更改示例的框图。在图19中,省略了对多个触发器和确认生成电路5的图示。作为奇偶校验解码电路8,3个奇偶校验解码电路81到83针对每个部分字彼此并列地布置,并且分别输出解码结果pe0到pe2。由于将已经从存储器20读出的整个数据x0到x8和ECC附加比特p0到p5输入到奇偶校验解码电路8中,因此字+奇偶校验切出电路7成为无用的、并且因此省略。对于已修正数据的选择,3个已修正数据选择电路4_1到4_3针对每个部分字彼此并列地布置。字切出电路6安装在这3个已修正数据选择电路4_1到4_3的后面级处。
第三实施例
<在错误修正之前的字切出>
将对另一详细实施例进行描述。
图14是图示了根据第三实施例的数据处理电路的一个配置示例的框图。与图6所图示的根据第二实施例的错误处理电路相似,图14所图示的根据第三实施例的数据处理电路,通过将错误处理电路10耦合至存储器20配置而成。根据第三实施例的数据处理电路,在错误处理电路10包括校正子生成电路1、错误类型判定电路2、错误修正电路3、已修正数据选择电路4、确认生成电路5、字切出电路6、字+奇偶校验切出电路7以及多个触发器等这一点上,与根据第二实施例的数据处理电路相同。然而,根据第三实施例的数据处理电路,在字切断字切出电路6布置在错误修正电路3的前面级处这一点上,与根据第二实施例的数据处理电路不同。字切出电路6从存储器20读出的数据RDW的主体数据X切出已经向存储器20请求存取的部分字,并且将切出的部分字提供至错误修正电路3。由于错误修正电路3是不对整个主体数据X而对切出的部分字执行错误修正处理的类型的电路,因此,电路延时小。因此,也改变了配置流水线的触发器的布置。即,省略了设置在图6的错误修正电路3的前面级处的触发器9_1,并且触发器9_4替代触发器9_3布置在错误修正电路3的后面级处。结合触发器9_4的提供,用于校正子S的触发器9_2被移到在通过其将数据输入到错误修正电路3中的节点之后的级。虽然,如上所提及的,根据第三实施例的数据处理电路,在提供的对部分字执行错误修正处理的错误修正电路3这一点上,与根据第二实施例的数据处理电路极为不同;但是除了与触发器9_4和错误修正电路3的设置相结合地、略微改变了流水线结构之外,根据第三实施例的数据处理电路与根据第二实施例的数据处理电路的操作方式相同。虽然省略了对与第二实施例相同的配置和操作的说明,但是在下文中,将集中于不同点对根据第三实施例的错误处理电路10的操作进行描述。
在错误修正代码算法诸如SECDED等中,一般来说,需要进行错误修正处理的对象限于整个主体数据,并且难以仅将主体数据的部分设置为需要进行错误修正处理的对象。在第三实施例中,采用了对主体数据实施部分错误修正的生成矩阵。
图15是图示了根据第三实施例的一种用于生成ECC附加比特的方法的一个示例的说明图。与图11所图示的第二实施例相似,通过使9比特主体数据d0到d8乘以6行×9列的生成矩阵,来生成6个ECC附加比特p0到p5。第三实施例在所使用的生成矩阵是生成矩阵的列彼此不同并且每列均由奇数个“1”配置而成并且包括有用于生成每个部分字奇偶校验码的部分的扩展型汉明码的生成矩阵这几点上,与第二实施例相同。第三实施例在除了用于生成每个部分字奇偶校验码的部分之外的部分的元素由对于与相应的部分字相对应的每组多个列彼此相同的部分矩阵配置而成这一点上,与第二实施例不同。即,使以下相应的部分矩阵彼此相同。
在与第一部分字对应的第1列到第3列中,与除了第4行到第6行之外的部分相对应的3行×3列的部分矩阵,用于生成每个部分字奇偶校验码。
在与第二部分字对应的第4列到第6列中,与除了第4行到第6行之外的部分对应的3行×3列的部分矩阵,用于生成每个部分字奇偶校验码。
在与第三部分字对应的第7列到第9列中,与除了第4行到第6行之外的部分对应的3行×3列的部分矩阵,用于生成每个部分字奇偶校验码。
即使这样的生成矩阵,仍然满足生成扩展型汉明码所需的“相应的列彼此不同并且每列均由奇数个‘1’配置而成”的条件。
图16是图示了根据第三实施例的一种用于生成校正子的方法的一个示例的说明图。虽然如上所提及的,检查矩阵与生成矩阵的变化相结合地、同样地改变,但是检查矩阵满足扩展型汉明码所需要的条件,并且因此,能够生成符合扩展型汉明码的算法的校正子s0到s5,并且还能够通过使用该校正子相似地执行错误修正处理。附加地,校正子s0到s5配置了与每个部分字对应的部分字奇偶校验码。
所生成的校正子s0到s5用于判定错误类型。当所有的校正子s0到s5均为“0”时,判定不存在错误。将校正子s0到s5和与在检查矩阵中的生成矩阵对应的部分的每列进行比较,当存在与校正子匹配的列时,判定生成单比特错误,并且当不存在与校正子匹配的列时,判定生成双比特错误、并且不对错误进行任何修正。不对三比特或者更多比特的错误进行判定。
在第三实施例中,将除了校正子s3到s5之外的并且配置了部分字奇偶校验码的校正子s0到s2,和与在第一行到第三行中的生成矩阵对应的部分的每列进行比较。即,将校正子s0到s2与在第1行到第3行中的第1列到第9列进行比较。此时,如参照图15所描述的,由于在第1行到第3行中,在第1列到第3列中的部分矩阵、在第4列到第6列中的部分矩阵以及在第7列到第9列中的部分矩阵彼此相同,因此,将校正子s0到s2与三组列数据进行比较是足够的。这三组列数据是:第1列、第4列和第7列的列数据,第2列、第5列和第8列的列数据,以及第3列、第6列和第9列的列数据。
在扩展型汉明码的错误修正处理中,由于与校正子s0到s5匹配的列的编号,与已经生成错误的信息比特的比特位置的编号对应,因此,通过将在已经从存储器20读出的数据段x0到x8中的对应的比特位置处的数据反转,来修正错误,并且从而重新存储信息比特d0到d8。与此相反,在第三实施例中,与校正子s0到s2匹配的列为第1列、第4列和第7列的列数据、第2列、第5列和第8列的列数据、以及第3列、第6列和第9列的列数据。
另一方面,在从存储器20读出的主体数据x0到x8中,将已经由字切出电路6切出的部分字x0到x2、x3到x5或者x6到x8输入到错误修正电路3中。当校正子s0到s2与第1列、第4列和第7列的列数据匹配时,不论输入了哪个部分字,均对第一比特x0、x3或者x6进行修正。当校正子s0到s2与第2列、第5列和第8列的列数据匹配时,不论输入了哪个部分字,均对第二比特x1、x4或者x7进行修正。当校正子s0到s2与第3列、第6列以及第9列的列数据匹配时,不论输入了哪个部分字,均对第三比特x2、x5或者x8进行修正。
经由触发器9_4,将已经用该方式修正的部分字y0到y2、y3到y5或者y6到y8,输入到已修正数据选择电路4中。提前将已经从修正前主体数据X切出的部分字x0到x2、x3到x5或者x6到x8,输入到已修正数据选择电路4的另一侧。已修正数据选择电路4基于可修正错误信号CER,选择并且输出已经从修正后主体数据Y切出的部分字(y0到y2、y3到y5或者y6到y8)、或者已经从修正前主体数据X切出的部分字(x0到x2、x3到x5或者x6到x8)。在存在奇偶校验错误的情况下,选择并且输出已经从修正后主体数据Y切出的部分字(y0到y2、y3到y5或者y6到y8)。在不存在奇偶校验错误的情况下,选择并且输出已经从修正前主体数据X切出的部分字(x0到x2、x3到x5或者x6到x8)。
将对根据第三实施例的错误处理电路10的配置进行更详细地描述。
图17是图示了图14的错误处理电路10的一个更详细的配置示例的框图。
将已经从存储器20读出的修正前主体数据X(x0到x8)和ECC附加比特P(p0到p5),输入到错误处理电路10中。将整个字数据(x0到x8以及p0到p5),输入到校正子生成电路1和字+奇偶校验切出电路7中。校正子生成电路1生成校正子s0到s5,并且将所生成的校正子s0到s5提供至错误修正电路3。附加地,校正子生成电路1经由触发器9_2,也将校正子s0到s5提供至错误类型判定电路2。错误类型判定电路2判定错误类型是什么:无错误(NED)、单比特错误(SEC)或者双比特错误(DED);并且将判定结果作为错误类型ERR输出。
字+奇偶校验切出电路7由用于从主体数据x0到x8切出有关的部分字的选择器71以及用于从ECC附加比特p0到p5切出对应的奇偶校验比特的选择器72配置而成。选择器71从主体数据x0到x8切出已经向存储器20请求存取的部分字x0到x2或者x3到x5或者x6到x8,并且将切出的部分字输出至错误修正电路3、已修正数据选择电路4以及奇偶校验解码电路8。选择器72从ECC附加比特p0到p5切出与上面所提及的部分字对应的奇偶校验比特p3或者p4或者p5,并且将切出的奇偶校验比特输出至奇偶校验解码电路8。虽然图14对字切出电路6进行了图示,但是被包括在字+奇偶校验切出电路7中的选择器71具有与在图17的示例中的字切出电路6相同的功能,并且因此,替代地应用来自选择器71的输出。奇偶校验解码电路8对所提供的部分字和奇偶校验比特执行奇偶校验解码,判定是否存在奇偶校验错误,并且输出可修正错误信号CER。
错误修正电路3基于输入的校正子s0到s5对已经从修正前主体数据X切出的部分字x0到x2、x3到x5或者x6到x8执行上面所提及的错误修正处理,并且输出已修正的部分字y0到y2、y3到y5或者y6到y8。经由触发器9_4,将已修正的部分字y0到y2、y3到y5或者y6到y8输入到已修正数据选择电路4中。
已修正数据选择电路4基于可修正错误信号CER,选择并且输出已经从修正后主体数据Y切出的部分字(y0到y2、y3到y5或者y6到y8)、或者已经从修正前主体数据X切出的部分字(x0到x2、x3到x5或者x6到x8)。在存在奇偶校验错误的情况下,选择并且输出已经从修正后主体数据Y切出的部分字(y0到y2、y3到y5或者y6到y8)。在不存在奇偶校验错误的情况下,选择并且输出已经从修正前主体数据X切出的部分字(x0到x2、x3到x5或者x6到x8)。
确认生成电路5生成确认信号ACK,该确认信号ACK指示如下这样的定时:其时,基于可修正错误信号CER,输出对于输出数据RDT有效的数据。
图18是图示了图14的错误处理电路10的一个操作示例的定时图。与图8的定时图相似,横轴表示时间,并且指示了时间t1到t5,其中被提供至触发器9_1、9_2以及9_4的流水线时钟信号的周期被设置为单位。在纵轴方向上,已经从存储器20读出的字数据RDW、校正子S、修正前主体数据X、修正后主体数据Y以及错误类型ERR按该顺序从上到下表示。进一步地,分别表示了:针对不存在奇偶校验错误和存在奇偶校验错误的、所输出的可修正错误信号CER、确认信号ACK以及部分字RDT。
在时间t1处,从存储器20读出字数据RDW,该字数据RDW包括主体数据X和ECC附加比特P。在不受触发器9_2干预的情况下,直接将已经由校正子生成电路1生成的校正子S,提供至错误修正电路3。同样在时间t1处,将已经从在读出的字数据RDW中的主体数据X切出的部分字(x0到x2、x3到x5或者x6到x8)提供至错误修正电路3。错误修正电路3对该部分字执行错误修正处理,并且在时间t2处经由触发器9_4向已修正数据选择电路4输出已修正的部分字(y0到y2、y3到y5或者y6到y8)。
在时间t2处,经由触发器9_2,将校正子S提供至错误类型判定电路2,错误类型判定电路2判定错误类型,并且输出无错误(NED)、单比特错误(SEC)以及双比特错误(DED)中的任一个作为错误类型ERR。
在从存储器20读出字数据RDW的时间t1处,字+奇偶校验切出电路7切出部分字和与该部分字对应的奇偶校验比特,并且将切出的部分字和对应的奇偶校验比特提供至奇偶校验解码电路8。将切出的部分字输出至已修正数据选择电路4。奇偶校验解码电路8对所提供的部分字和奇偶校验比特执行奇偶校验解码,判定奇偶校验错误是否存在,并且输出可修正错误信号CER。
在不存在奇偶校验错误的情况下(CER=0),由已修正数据选择电路4选择已经从在时间t1处输出的修正前主体数据X切出的部分字(x0到x2、x3到x5或者x6到x8),并且将其作为输出数据RDT(X)输出。在存在奇偶校验错误的情况下(CER=1),由已修正数据选择电路4选择已经从在时间t2处输出的修正后主体数据Y切出的部分字(y0到y2、y3到y5或者y6到y8),并且将其作为输出数据RDT(Y)输出。
在第三实施例中,由于错误修正电路3仅针对部分字执行错误修正处理,因此,会发生的延时小,并且电路规模也小。因此,如图14、图17以及图18所图示的,能够比在图6、图8以及图13所图示的第二实施例的情况早一个周期输出修正结果。虽然在每个附图中均图示了主体数据由9比特配置而成并且每个部分字由3比特配置而成的示例,但是当主体数据的比特数和/或每个部分字的比特数改变时,仍然能够减少错误修正电路3的延时,并且相似地减小其电路规模。
虽然在第三实施例中,已经对在时分方式下操作错误修正电路3的配置进行了图示,但是仍然能够将错误修正电路3布置为针对每个部分字对部分字执行错误修正处理,并且能够对这样彼此并列布置的错误修正电路3进行操作。
图20是图示了图17的错误处理电路10的更改示例的框图。省略了对多个触发器和确认生成电路5的图示。与图19的示例相似,省略了字+奇偶校验切出电路7。在奇偶校验解码电路8中,3个奇偶校验解码电路81到83针对每个部分字彼此并列地布置,并且分别输出解码结果pe0到pe2。附加地,布置了3个错误修正电路3_1到3_3,分别对其对应的部分字彼此并行地执行错误修正处理,并且输出已修正的部分字y0到y2、y3到y5以及y6到y8。3个已修正数据选择电路4_1、4_2以及4_3彼此并列地布置,分别基于奇偶校验解码结果pe0到pe2选择修正前部分字或者修正后部分字,并且将所选的部分字输出至布置在后面级中的字切出电路6。
第四实施例
<用奇偶校验码保护总线数据的系统>
能够在用奇偶校验码保护总线数据的系统上,搭载在上面所提及的第一实施例到第三实施例中所描述的存储器20和错误处理电路10。在第一实施例到第三实施例中所描述的存储器20和错误处理电路10中,保存有用于每个部分字的奇偶校验码的信号。因此,在通过使每个部分字的比特长度与总线宽度匹配而添加奇偶校验的情况下,在耦合至总线时,能够将保存在其中的奇偶校验码信号按原样输出。
图21是图示了当将根据第二实施例的存储器20和错误处理电路10搭载到用奇偶校验码保护总线数据的系统时的一个配置示例的框图。错误处理电路10的配置,在省略了确认生成电路5、省略了可修正错误信号CER和确认信号ACK的输出、并且输出与部分字相对应的奇偶校验RDT(奇偶校验)这些点上,与根据第二实施例的图6所图示的错误处理电路10的配置不同。由于在错误处理电路10中的其它配置和操作,与图6的错误处理电路10相同,因此省略对其的描述。将错误处理电路10输出的部分字RDT(数据)和对应的奇偶校验RDT(奇偶校验),与错误类型ERR一起,输出至读出总线40并且输入到总线主控器30中。总线主控器30包括奇偶校验解码电路31、确认生成电路32等,并且基于已经输入的部分字RDT(数据)和对应的奇偶校验RDT(奇偶校验),自己生成可修正错误信号CER和确认信号ACK。
图22是图示了当将根据第三实施例的存储器20和错误处理电路10搭载到用奇偶校验码保护总线数据的系统时的一个配置示例的框图。错误处理电路10的配置,在省略了确认生成电路5、省略了可修正错误信号CER和确认信号ACK的输出、并且输出与部分字对应的奇偶校验RDT(奇偶校验)这些点上,与根据第三实施例的图14所图示的错误处理电路10的配置不同。由于在错误处理电路10中的其它配置和操作与图14的错误处理电路10相同,因此省略对其的描述。将错误处理电路10输出的部分字RDT(数据)和对应的奇偶校验RDT(奇偶校验),与错误类型ERR一起,输出至读出总线40并且输入到总线主控器30中。总线主控器30包括奇偶校验解码电路31、确认生成电路32等,并且基于已经输入的部分字RDT(数据)和对应的奇偶校验RDT(奇偶校验),自己生成可修正错误信号CER和确认信号ACK。
当将存储器20和错误处理电路10如上所提及地搭载到用奇偶校验码保护总线数据的系统时,可能将部分字RDT(数据)和对应的奇偶校验RDT(奇偶校验)仅仅输出至读出总线40,并且因此,能够使得确认生成电路是不必要的。
部分字的比特长度是可选的,并不限于在第二实施例和第三实施例中所描述的示例,并且可以使其与读出总线40的数据宽度匹配。
第五实施例
<RAM>
虽然在上面所提及的第一实施例到第四实施例中,已经主要对从存储器读出的数据进行了描述,但是也能够通过将ECC生成电路搭载在错误处理电路10上,而对正在写入到存储器中的数据进行处理。
图23是图示了将用于将数据写入到存储器中的电路添加到图21的配置的一个配置示例的框图。总线主控器30经由写入总线41,将写入数据和奇偶校验提供至错误处理电路10。错误处理电路10包括用于写入数据的奇偶校验解码电路13,对所输入的写入数据和奇偶校验执行奇偶校验解码(奇偶校验检查),并且当已经判定存在错误时、将总线奇偶校验错误发回到总线主控器30。由于写入数据的比特长度与部分字的比特长度相同,因此,字结合电路12等待、直到完成多次执行的写入数据提供,配置存储器20的一个字,并且将该字输入到ECC生成电路11中。ECC生成电路11通过使用生成矩阵(图10所图示的)来生成ECC附加比特,将ECC附加比特添加至写入数据,并且将添加了ECC附加比特的写入数据写入到存储器20中。
图24是图示了将用于将数据写入到存储器中的电路添加到图22的配置的一个配置示例的框图。总线主控器30经由写入总线41,将写入数据和奇偶校验提供至错误处理电路10。错误处理电路10包括用于写入数据的奇偶校验解码电路13,对所输入的写入数据和奇偶校验执行奇偶校验解码(奇偶校验检查),并且当已经判定存在错误时、将总线奇偶校验错误发回到总线主控器30。由于写入数据的比特长度与部分字的比特长度相同,因此,字结合电路12等待、直到完成多次执行的写入数据提供,配置存储器20的一个字,并且将该字输入到ECC生成电路11中。ECC生成电路11通过使用生成矩阵(图15所图示的)来生成ECC附加比特,将ECC附加比特添加至写入数据,并且将添加了ECC附加比特的写入数据写入到存储器20中。
虽然图23和图24已经对将需要写入到存储器中的字数据作为多个部分字从写入总线41提供的示例进行了图示,但是错误处理电路10可以配置为,使数量小于在图23和图24中所图示的示例中所使用的部分字的数量的部分字,通过读出-修改-写入处理而被提供并且写入到存储器20中。即,一旦所提供的包括部分字的字数据从存储器20读出,由错误修正电路3进行修正,并且之后被提供至字结合电路12。字结合电路12将从写入总线41提供的在已经由错误修正电路3修正并且接着从错误修正电路3提供的主体数据中的部分数据重新写入,配置新的主体数据,并且将该新的主体数据提供至ECC生成电路11。ECC生成电路11通过使用生成矩阵(图15所图示的)来生成ECC附加比特,将ECC附加比特添加至新的主体数据,并且将添加了ECC附加比特的新的主体数据写入到存储器20中。
还能够通过将ECC生成电路11加载到错误处理电路10上而对写入到存储器中的数据进行处理。
部分字的比特长度是可选的,并不限于在第二实施例和第三实施例中所描述的示例,并且可以使其与读出总线40和/或写入数据41的数据宽度匹配。
虽然对在第一实施例到第五实施例中所描述的存储器20和错误处理电路10以及在第四实施例和第五实施例中所描述的总线40和41以及总线主控器30不做特别限制,但是,半导体器件(数据处理电路)通过使用例如已知的半导体集成电路制造技术,在由硅等制成的单个半导体衬底上形成。
在上文中,已经基于优选实施例,对已经由本专利申请的发明人提出的本发明进行了具体描述。然而,不言自明地,本发明不限于上面所提及的实施例,并且,在不脱离本发明的主旨的范围内,可以通过各种方式对其进行更改和修改。
例如,可以适当改变配置了流水线的触发器的布置。
Claims (11)
1.一种数据处理电路,包括:
存储器,在所述存储器中存储有由主体数据和冗余数据配置而成的字数据,并且所述字数据以所述字数据为单位从所述存储器被读出;以及
错误处理电路,
其中所述主体数据被划分为多个部分字,
其中所述冗余数据由错误修正附加比特配置而成,整个所述错误修正附加比特已经基于预定错误修正算法从所述主体数据生成,并且所述错误修正附加比特包括多个奇偶校验比特,所述多个奇偶校验比特分别与所述部分字相对应,
其中所述错误处理电路包括错误修正电路和奇偶校验检查电路,从所述存储器读出的所述字数据被并行地输入到所述错误修正电路和所述奇偶校验检查电路中,
其中所述错误修正电路是如下这样的电路:其通过使用被包括在所输入的所述字数据中的、基于所述错误修正算法的所述冗余数据,修正被包括在所输入的所述字数据中的所述主体数据中的错误,并且
其中所述奇偶校验检查电路是如下这样的电路:其基于被包括在所输入的所述字数据中的至少一个部分字、和与所述部分字相对应的所述奇偶校验比特,来执行奇偶校验检查。
2.根据权利要求1所述的数据处理电路,
其中所述错误修正算法是允许单错误修正-双错误检测的算法。
3.根据权利要求2所述的数据处理电路,
其中所述主体数据由L个部分字配置而成,所述部分字是针对每N个比特划分而得的;所述错误修正附加比特的数量为M,并且所述错误修正附加比特通过将所述主体数据乘以M行×(N×L)列的生成矩阵而生成,
其中所述生成矩阵包括L行,在所述L行中的每一行中,与有关的所述部分字相对应的列为“1”,而其它列为“0”,并且所述生成矩阵的每一列均包括奇数个“1”并且由彼此不同的代码串配置而成,并且
其中通过仅仅与作为所述奇偶校验检查的对象的所述部分字相对应的列为“1”的行而生成的、所述错误修正附加比特中的一个错误修正附加比特,作为与有关的所述部分字相对应的奇偶校验比特被输入到所述奇偶校验检查电路中。
4.根据权利要求3所述的数据处理电路,进一步包括:
读出总线,
其中所述读出总线包括:读出数据总线,所述读出数据总线在比特宽度上与所述部分字相同;以及读出奇偶校验信号,并且
其中所述错误处理电路将作为所述奇偶校验检查的对象的所述部分字输出至所述读出数据总线,并且将与有关的所述部分字相对应的所述奇偶校验比特输出至所述读出奇偶校验信号。
5.根据权利要求4所述的数据处理电路,进一步包括:
写入总线,
其中所述写入总线包括:写入数据总线,所述写入数据总线在比特宽度上与所述部分字相同;以及写入奇偶校验信号,
其中所述错误处理电路进一步包括字结合电路和错误修正代码生成电路,
其中所述字结合电路通过将从所述写入总线输入的所述部分字彼此结合,配置在需要写入所述存储器中的所述字数据中的所述主体数据;并且将所配置的所述主体数据提供给所述错误修正代码生成电路,并且
其中所述错误修正代码生成电路通过使用所述生成矩阵,从所提供的所述主体数据生成所述错误修正附加比特;将所述错误修正附加比特与有关的所述主体数据结合在一起;并且从而生成需要写入所述存储器中的所述字数据。
6.根据权利要求3所述的数据处理电路,
其中在所述生成矩阵中,由在所述多个列中的除了分别与所述L个部分字相对应的所述L行之外的行所配置而成的多个部分矩阵彼此相等,并且
其中所述错误修正电路是如下这样的电路:其基于配置了所述字数据和所述错误修正附加比特的所述L个部分字中的至少一个部分字,修正在所输入的部分字中的错误。
7.根据权利要求6所述的数据处理电路,进一步包括:
读出总线,
其中所述读出总线包括:读出数据总线,所述读出数据总线在比特宽度上与所述部分字相同;以及读出奇偶校验信号,并且
其中所述错误处理电路将作为所述奇偶校验检查的对象的所述部分字输出至所述读出数据总线,并且将与有关的所述部分字相对应的所述奇偶校验比特输出至所述读出奇偶校验信号。
8.根据权利要求7所述的数据处理电路,进一步包括:
写入总线,
其中所述写入总线包括:写入数据总线,所述写入数据总线在比特宽度上与所述部分字相同;以及写入奇偶校验信号,
其中所述错误处理电路进一步包括字结合电路和错误修正代码生成电路,
其中所述字结合电路通过将从所述写入总线输入的所述部分字彼此结合,配置在需要写入所述存储器中的所述字数据中的所述主体数据;并且将所述主体数据提供给所述错误修正代码生成电路,并且
其中所述错误修正代码生成电路通过使用所述生成矩阵,从所提供的所述主体数据生成所述错误修正附加比特;将所述错误修正附加比特与有关的所述主体数据结合在一起;并且从而生成需要写入所述存储器中的所述字数据。
9.根据权利要求1所述的数据处理电路,
其中所述存储器为闪速存储器。
10.根据权利要求1所述的数据处理电路,
其中所述存储器为随机存取存储器。
11.根据权利要求1所述的数据处理电路,
其中所述数据处理电路形成在单个半导体衬底上。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015-066301 | 2015-03-27 | ||
JP2015066301A JP6600146B2 (ja) | 2015-03-27 | 2015-03-27 | データ処理回路及びエラー訂正方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106021012A true CN106021012A (zh) | 2016-10-12 |
CN106021012B CN106021012B (zh) | 2022-02-08 |
Family
ID=56974134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610147621.1A Active CN106021012B (zh) | 2015-03-27 | 2016-03-15 | 数据处理电路 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10340955B2 (zh) |
JP (1) | JP6600146B2 (zh) |
CN (1) | CN106021012B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10372531B2 (en) * | 2017-01-05 | 2019-08-06 | Texas Instruments Incorporated | Error-correcting code memory |
TWI671750B (zh) * | 2018-11-28 | 2019-09-11 | 華邦電子股份有限公司 | 記憶體的控制方法及非暫態電腦可讀媒體 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010025359A1 (en) * | 2000-03-14 | 2001-09-27 | Tsuyoshi Tanaka | Error detection and correction method in a computer system and main memory controller of the same |
CN103117750A (zh) * | 2013-01-14 | 2013-05-22 | 天津大学 | 一种低密度奇偶校验码的错误概率估计方法 |
CN103793289A (zh) * | 2012-10-31 | 2014-05-14 | 英飞凌科技股份有限公司 | 用于多位修正的电路和方法 |
US20150012795A1 (en) * | 2013-07-05 | 2015-01-08 | Kabushiki Kaisha Toshiba | Error correction decoder and error correction decoding method |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5694597A (en) * | 1979-12-28 | 1981-07-31 | Fujitsu Ltd | Memory data control system |
US4359772A (en) * | 1980-11-14 | 1982-11-16 | International Business Machines Corporation | Dual function error correcting system |
AU2476192A (en) * | 1991-08-16 | 1993-03-16 | Multichip Technology | High-performance dynamic memory system |
JPH05165736A (ja) | 1991-12-16 | 1993-07-02 | Nec Ibaraki Ltd | 半導体記憶装置の2ビット誤り訂正回路 |
JPH1097471A (ja) * | 1996-09-20 | 1998-04-14 | Toshiba Corp | メモリデータのエラー訂正方法、及びエラー訂正方式 |
JP2000173289A (ja) * | 1998-12-10 | 2000-06-23 | Toshiba Corp | エラー訂正可能なフラッシュメモリシステム |
US7134069B1 (en) * | 1999-06-16 | 2006-11-07 | Madrone Solutions, Inc. | Method and apparatus for error detection and correction |
US7913110B2 (en) * | 2006-03-07 | 2011-03-22 | Nxp B.V. | Electronic circuit with a memory matrix that stores pages including extra data |
JP2011165026A (ja) * | 2010-02-12 | 2011-08-25 | Toshiba Corp | エラー検出訂正システム |
US8438344B2 (en) * | 2010-03-12 | 2013-05-07 | Texas Instruments Incorporated | Low overhead and timing improved architecture for performing error checking and correction for memories and buses in system-on-chips, and other circuits, systems and processes |
JP2013070122A (ja) * | 2011-09-20 | 2013-04-18 | Fujitsu Ltd | 誤り訂正装置、誤り訂正方法及び演算装置 |
-
2015
- 2015-03-27 JP JP2015066301A patent/JP6600146B2/ja active Active
-
2016
- 2016-01-14 US US14/995,985 patent/US10340955B2/en active Active
- 2016-03-15 CN CN201610147621.1A patent/CN106021012B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010025359A1 (en) * | 2000-03-14 | 2001-09-27 | Tsuyoshi Tanaka | Error detection and correction method in a computer system and main memory controller of the same |
CN103793289A (zh) * | 2012-10-31 | 2014-05-14 | 英飞凌科技股份有限公司 | 用于多位修正的电路和方法 |
CN103117750A (zh) * | 2013-01-14 | 2013-05-22 | 天津大学 | 一种低密度奇偶校验码的错误概率估计方法 |
US20150012795A1 (en) * | 2013-07-05 | 2015-01-08 | Kabushiki Kaisha Toshiba | Error correction decoder and error correction decoding method |
Also Published As
Publication number | Publication date |
---|---|
JP6600146B2 (ja) | 2019-10-30 |
JP2016187099A (ja) | 2016-10-27 |
CN106021012B (zh) | 2022-02-08 |
US20160283326A1 (en) | 2016-09-29 |
US10340955B2 (en) | 2019-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7644348B2 (en) | Method and apparatus for error detection and correction | |
US7398449B1 (en) | Encoding 64-bit data nibble error correct and cyclic-redundancy code (CRC) address error detect for use on a 76-bit memory module | |
US9252814B2 (en) | Combined group ECC protection and subgroup parity protection | |
CN107403646A (zh) | 闪存装置及闪存存储管理方法 | |
JPH05508042A (ja) | コンピュータメモリにおける多数のエラー訂正 | |
CN102067240A (zh) | 半导体存储装置 | |
JP2010518464A (ja) | 半導体記憶装置 | |
CN111710358B (zh) | 闪存装置、闪存控制器及闪存存储管理方法 | |
US5691996A (en) | Memory implemented error detection and correction code with address parity bits | |
JPS6349245B2 (zh) | ||
US5761221A (en) | Memory implemented error detection and correction code using memory modules | |
CN103413571A (zh) | 存储器和利用该存储器实现检错纠错的方法 | |
CN106021012A (zh) | 数据处理电路 | |
Pae et al. | Minimal aliasing single-error-correction codes for dram reliability improvement | |
JPH01158698A (ja) | 半導体メモリ | |
CN103151078B (zh) | 一种存储器检错纠错码生成方法 | |
CN107301881A (zh) | 一种基于4位相邻和3位突发纠错码的sram存储器抗辐射加固方法及存储器系统 | |
KR20230116051A (ko) | 프로그래밍가능 오류 정정 코드 인코딩 및 디코딩 로직 | |
US7051265B2 (en) | Systems and methods of routing data to facilitate error correction | |
Prodan et al. | Self-repairing embryonic memory arrays | |
Sooraj et al. | Fault tolerant FSM on FPGA using SEC-DED code algorithm | |
RU51428U1 (ru) | Отказоустойчивый процессор повышенной достоверности функционирования | |
CN111679787B (zh) | 闪存装置、闪存控制器及闪存存储管理方法 | |
WO2014146488A1 (zh) | 用于将数据写入存储器的过程的方法 | |
CN111858135B (zh) | 数据存储、校验方法、装置、终端设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |