JP2024029084A - グループ誤りを用いる誤り検出 - Google Patents
グループ誤りを用いる誤り検出 Download PDFInfo
- Publication number
- JP2024029084A JP2024029084A JP2023216831A JP2023216831A JP2024029084A JP 2024029084 A JP2024029084 A JP 2024029084A JP 2023216831 A JP2023216831 A JP 2023216831A JP 2023216831 A JP2023216831 A JP 2023216831A JP 2024029084 A JP2024029084 A JP 2024029084A
- Authority
- JP
- Japan
- Prior art keywords
- byte
- error
- data
- code
- data byte
- 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.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title description 96
- 238000012937 correction Methods 0.000 claims abstract description 272
- 238000000034 method Methods 0.000 claims abstract description 31
- 230000009466 transformation Effects 0.000 claims abstract description 27
- 238000012545 processing Methods 0.000 claims abstract description 26
- 238000006243 chemical reaction Methods 0.000 claims description 105
- 208000011580 syndromic disease Diseases 0.000 claims description 16
- 239000013598 vector Substances 0.000 description 58
- 238000011161 development Methods 0.000 description 27
- 239000011159 matrix material Substances 0.000 description 27
- 238000012360 testing method Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 12
- 230000014509 gene expression Effects 0.000 description 12
- 230000015572 biosynthetic process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000009897 systematic effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 108091029480 NONCODE Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
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/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/2942—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 wherein a block of parity bits is computed only from combined information bits or only from parity bits, e.g. a second block of parity bits is computed from a first block of parity bits obtained by systematic encoding of a block of information bits, or a block of parity bits is obtained by an XOR combination of sub-blocks of information bits
-
- 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
- G06F11/1048—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 using arrangements adapted for a specific error detection or correction feature
-
- 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/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
-
- 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/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1515—Reed-Solomon 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/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/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1575—Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance
-
- 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/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/158—Finite field arithmetic processing
-
- 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/25—Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
- H03M13/251—Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with block coding
-
- 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/27—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 using interleaving techniques
- H03M13/2735—Interleaver using powers of a primitive element, e.g. Galois field [GF] interleaver
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【課題】グループ誤りを用いる誤り訂正を改善する方法を提供する。【解決手段】データビットを処理する方法は、第1の変換によって、データビットが第1のデータバイトに変換され、第1のデータバイトがメモリに記憶され、第2のデータバイトがメモリから読み出され、第2のデータバイトはそれぞれ、誤りのない場合には、ブロック誤り符号の符号語であり、第2のデータバイト毎に、その第2のデータバイトが符号語であるか否かを示す誤り信号が決定される。【選択図】図1
Description
本発明の課題は、誤り訂正を改善することである。
この課題は、独立請求項の特徴部分に記載の構成によって解決される。好適な実施形態は、特に従属請求項から明らかになる。
この課題を解決するために、データビットを処理するための方法が提案され、この方法においては、
-第1の変換によって、データビットが第1のデータバイトに変換され、
-第1のデータバイトがメモリに記憶され、
-第2のデータバイトがメモリから読み出され、
-第2のデータバイトはそれぞれ、誤りのない場合には、1つのブロック誤り符号の1つの符号語であり、
-第2のデータバイト毎に、その第2のデータバイトが符号語であるか否かを表す誤り信号が決定される。
-第1の変換によって、データビットが第1のデータバイトに変換され、
-第1のデータバイトがメモリに記憶され、
-第2のデータバイトがメモリから読み出され、
-第2のデータバイトはそれぞれ、誤りのない場合には、1つのブロック誤り符号の1つの符号語であり、
-第2のデータバイト毎に、その第2のデータバイトが符号語であるか否かを表す誤り信号が決定される。
1つのデータバイトは、複数のデータビットを含んでいる。データビットないしデータバイトは、任意の情報、例えばデータ、プログラム、鍵などを含むことができる。
データビットは、特に可逆的かつ一義的に第1のデータバイトに変換することができる。変換によって、第1のデータバイトがそれぞれ、ブロック誤り符号の符号語を形成することを保証することができる。第1のデータバイトは、メモリセル値のバイトであってよく、それらのバイトが続けてメモリに書き込まれる。
第1のデータバイトは、第2のデータバイトと同じであると考えられる。第2のデータバイトは、例えばメモリが誤りを有する場合、または一般的に、第2のデータバイトを読み出す際に誤りが発生した場合には、第1のデータバイトと相異すると考えられる。
誤りがない場合には、読み出された第2のデータバイトは、書き込まれた第1のデータバイトと同じである。したがって、読み出された誤りのない第2のデータバイトは、1つのブロック誤り符号の符号語である(または、例えば各データバイトに対して固有のブロック誤り符号が使用される場合には、複数のブロック誤り符号の符号語である)。
第2のデータバイトはそれぞれ、固有の誤り検出回路を用いて、符号語であるか否かについて検査される。すなわち、第2のデータバイト毎に1つずつ、したがって複数の誤り検出回路が設けられている。誤り検出回路を用いて、第2のデータバイトが1つまたは複数のブロック誤り符号の符号語であるか否かを検査することができる。例えば、誤り検出回路毎に、別個のブロック誤り符号を検査することができる。
上記の変換によって、データビットのビットの個数が、変換された第1のデータバイト毎のビットの個数よりも少ないように、データビットを第1のデータバイトに変換することができる。1つのオプションでは、第1のデータバイトに変換されるデータビットの個数は、少なくともビット2個分、第1のデータバイトのビットの個数よりも少ない。つまり、例えば、それぞれ4個のデータビットを、それぞれが6個のデータビットを有する第1のデータバイトに変換することができ、したがって、それぞれ4個のビットが6個のビットに変換され、それら6個のビットが(変換が成功した際には)、使用されるブロック誤り符号の符号語を表す。
例えば32個のデータビットが第1のデータバイトに変換される場合には、それら32個のデータビットを、それぞれが4個のビットを含んでいる8個の小ブロックに分割することができる。4ビットの大きさの各ブロックが、例示的に6個のビットを含んでいる第1のデータバイトに変換される。すなわち、全体として、それぞれ4個のデータビットから成る8個のブロックを形成する32個のデータビットが、それぞれ6個のビットを有する8個の第1のデータバイトに変換される。すなわち32個のデータビットからは48個のビットが生じ、それら48個のビットがメモリにファイルされる。
この例によれば、8個の第2のデータバイトがメモリから読み出され、それら第2のデータバイトはそれぞれ、やはり6個のビットを含んでいる。第2のデータバイト毎に、それぞれの第2のデータバイトが(それぞれの)ブロック誤り符号の符号語であるか否かを表す誤り信号が決定される。
第2のデータバイトは、さらに逆データバイト(読み出された、場合によっては誤りのあるデータビットのバイト、または逆変換されたデータビットないしデータバイトとも記す)に逆変換され、この逆データビットは、誤り訂正によって訂正することができる。誤り訂正では、既に誤りがあるものとして検出された逆データバイト(いわゆる、グループ誤り)に誤り信号を集中させるために、誤り訂正を利用することができる。
例えば、第2のデータバイトのうちの1つに誤りがある場合には、そのデータバイトは、逆変換によって、誤りのある逆データバイトに逆変換される。この第2のデータバイトは、ブロック誤り符号の符号語ではないので、例えば、逆データバイトの値は0である。このことから、ここでは誤りが存在することを検出することができ、この誤りは可能な限り訂正されるべきである。
したがって、結果として、誤りを検出するだけでなく、その誤りを相応のバイトに限定することも、特に効率的に実現することができる。したがって、例えば、誤りのないバイトのデータビットを使用すること、または誤りのあるデータバイトのデータビットだけを使用しないことが実現される。
特に、グループ誤りの訂正は、バイト位置が事前に既知でない誤りの訂正よりも効率的に実現される。決定された誤り符号によって、バイト位置が事前に既知でない誤りよりも多くのグループ誤りを訂正することができる。これによって、記憶されているデータの信頼性を改善することができる。
各ビットおよび/または各メモリセル値を、少なくとも2つの値を記憶するために設けることができる。値が2つより多い場合には、各ビットはマルチビットである。特に、マルチビットメモリセルを設けることができる。
1つの発展形態では、少なくとも1つのブロック誤り符号を用いて、データビットが第1のデータバイトに変換される。
異なる第1のデータバイトに対して、異なるブロック誤り符号を使用することができる。また、第1のデータバイトに対して、同じブロック誤り符号を変換のために使用することができる。
1つの発展形態では、少なくとも1つのブロック誤り符号が、m-out-of-n符号である。
m-out-of-n符号では、ビットの一方のグループがビットの他方のグループに一義的かつ可逆的に変換され、この際、変換に誤りがなかった場合には、変換されたビットのグループは、複数m個の第1の値および複数(n-m)個の第2の値を含む複数n個のビットを有する。すなわち、全体でn個のビットにおいては、複数m個の第1の値が存在する。第1の値は、値がバイナリの場合には、例えば値0または値1であると考えられる。
この例では、誤り信号は、第2のデータバイト毎の読み出された第1の値の個数がmと同じでない場合には、第2のデータバイトに誤りが存在することを示すことができる。
1つの発展形態では、少なくとも1つの誤り信号に基づいて、誤り訂正が実施される。
1つの発展形態では、データビットが誤り符号を用いてコーディングされている。
誤り符号は、例えば、データビットに基づいて決定されており、データビットは、ビットのグループを形成することができる。
誤り符号は、ブロック誤り符号についての付加的な誤り符号である。誤り符号は、例えば、バイト誤り訂正符号および/またはバイト誤り検出符号である。また、誤り符号は、ビット誤り訂正符号および/またはビット誤り検出符号であってもよい。誤り符号は、ブロック誤り符号の上位の符号である。つまり、誤り符号は、ブロック誤り符号に付加的に利用される。ブロック誤り符号を用いて、誤り信号が決定され、また誤り符号は、少なくとも1つの誤りのある第2のデータバイトの訂正を1つの誤り信号(または複数の第2のデータバイトに対しては複数の誤り信号)に基づいて実現する。
誤り符号は、誤りのあるバイト位置が既知であるバイト誤り、いわゆるグループ誤りを訂正するために使用することができる。また誤り符号は、誤りのあるバイト位置が既知でないバイト誤りを訂正するためにも使用することができる。
例えば、データビットは、誤り符号の符号語であってもよいし、そのような符号語を含んでいてもよい。
第1のデータバイトがそれぞれ多値であることも考えられる。この場合には、読み出された第2のデータバイトも多値である。したがって、例えば、メモリのメモリセル毎に、2つより多くのディジタル値を記憶することができる。したがって、読み出された第2のデータバイトは、例えば複数n1個の0、複数n2個の1および複数n3個の2を有することができる。読み出された0の個数がn1と同じでない場合、読み出された1の個数がn2と同じでない場合、または読み出された2の個数がn3と同じでない場合には、誤りを検出することができる。
1つの発展形態では、誤り符号は、バイト誤り訂正符号であり、特にリード・ソロモン符号である。
1つの発展形態では、第2のデータバイトが、第1の変換とは逆の変換である第2の変換によって、第2の逆データバイトに変換される。
したがって、第1の変換でもって、データビットが第1のデータバイトに変換され、また第2の変換でもって、メモリから読み出された、場合によっては誤りのある第2のデータバイトが第2の逆データバイトに逆変換される。ここで、それらの第2の逆データバイトを、誤り符号を用いて訂正することができる。
1つの発展形態では、第2のデータバイトがブロック誤り符号の符号語ではない場合には、誤り信号に基づいて、第2の逆データバイトの訂正が誤り符号を用いて行われる。
1つの発展形態では、第2の逆データバイトの基礎をなす第2のデータバイトがブロック誤り符号の符号語ではないことを誤り信号が示す場合には、少なくとも1つの第2の逆データバイトが、誤り信号に基づいて、誤り符号を用いて訂正される。
1つの発展形態では、誤り信号が誤りのあるi番目の第2のデータバイトおよび誤りのあるj番目の第2のデータバイトを示す場合には、i番目の第2の逆データバイトXi’に対するバイト訂正値eiは、誤りシンドロームの部分シンドロームs1ならびにs2、バイト位置i、および成分毎のXOR和αi+αj(ただし、αは使用されるガロア体の生成元である)に依存して決定される。
有利には、i番目のバイトに対するバイト訂正値eiは、1つのグループ誤りが存在する場合、または(i番目の第2のデータバイトおよびj番目の第2のデータバイトに関して)2つのグループ誤りが存在する場合には、同じ関数関係に従って、それゆえ、Σが
として決定されている場合には(ただし、EiおよびEjは、i番目の第2のデータバイトおよびj番目の第2のデータバイトに対する誤り信号である)、Σに依存する回路タイプも用いて決定することができる。
i番目の第2のデータバイトの位置にグループ誤りが1つだけ存在する場合には、誤り信号Ei=1となり、他の全ての誤り信号は0となる。i番目の第2のデータバイトの位置およびj番目の第2のデータバイトの位置に2つのグループ誤りが存在する場合には、誤り信号Ei=Ej=1となり、他の全ての誤り信号は0となる。
1つの発展形態では、少なくとも2つのバイト訂正値が並列に決定され、その場合、少なくとも1つのバイト訂正値は、訂正の必要がない正しい第2の逆データバイトに対して決定される。
この関係において、並列とは特に、バイト訂正値の決定および/または提供を少なくとも部分的に時間的に重畳させて、特に実質的に同時に行えることを意味している。したがって1つの有利なオプションでは、バイト毎に、訂正のために1つの定数乗算器、2つのXOR回路および1つのAND回路だけが必要とされる。
1つの発展形態では、
-第1のデータバイト、および第1のデータバイトに基づいて決定される第1の検査ビットがメモリに記憶され、
-第2のデータバイトおよび第2の検査ビットがメモリから読み出され、
-第2のデータバイトがブロック誤り符号の符号語ではない場合には、誤り信号および第2の検査ビットに基づいて、第2のデータバイトの訂正が行われる。
-第1のデータバイト、および第1のデータバイトに基づいて決定される第1の検査ビットがメモリに記憶され、
-第2のデータバイトおよび第2の検査ビットがメモリから読み出され、
-第2のデータバイトがブロック誤り符号の符号語ではない場合には、誤り信号および第2の検査ビットに基づいて、第2のデータバイトの訂正が行われる。
したがって、訂正は、第2のデータバイトおよび検査ビットに基づいて行われる。この際に、訂正された第2のデータバイトが決定される。訂正された第2のデータバイトは、特に、バイト訂正値生成器(例えば、図3bにおける参照番号37を参照されたい)によって処理された第2のデータバイトである。各第2のデータバイトの個々のビットを変更することができる(すなわち、訂正することができる)。また、この訂正ステップでは、(単一のまたは複数の)第2のデータバイトの変更が行われないことも考えられるが、それにもかかわらず、訂正ステップ(すなわち、図3bによるバイト訂正値生成器37およびXOR回路380~38L-1による処理)後の第2のデータバイトは、以下では「訂正された第2のデータバイト」と記す第2のデータバイトに相当する。このことの本質は、(バイト訂正値生成器37およびXOR回路380~38L-1を含む)訂正回路が、誤りのない第2のデータバイトは最終的に変更されない(訂正値0は誤りのない第2のデータバイトと成分毎にXOR結合される)ことがXOR回路によって保証されている場合であっても、第2のデータバイトの(実質的にまたは実際に)並列な訂正を実現することにある。その限りにおいて、訂正回路は、第2のデータバイトから、上述の「訂正された第2のデータバイト」を、個々の訂正された第2のデータバイトが第2のデータバイトと異なるか否かに依存せずに生成する。
1つのオプションとして、誤り訂正が、データビットに関する誤り符号を使用して、かつ/またはデータバイトに関する検査ビットを使用して実施される。
1つの発展形態では、訂正された第2のデータバイトが、第1の変換とは逆の変換である第2の変換によって、訂正された第2の逆データバイトに変換される。
1つの発展形態では、第2のデータバイトがブロック誤り符号の符号語ではないことを誤り信号が示す場合には、少なくとも1つの第2のデータバイトが、誤り信号に基づいて、検査ビットを用いて訂正される。
1つの発展形態では、少なくとも2つの第2のデータバイトに対する少なくとも2つのバイト訂正値が並列に決定され、その場合、少なくとも1つのバイト訂正値は、訂正の必要がない正しい第2のデータバイトに対して決定される。
1つの発展形態では、検査ビットに基づいて、誤り信号が決定されている第2のデータバイトが、検査ビットを用いて訂正される。
また、1つの発展形態では、少なくとも2つの誤り信号に基づいて、それら少なくとも2つの誤り信号が決定されている第2のデータバイトが、検査ビットを用いて訂正される。
1つの発展形態では、少なくとも2つのグループ誤り、または既知でないバイト位置における誤りの誤り訂正が実施される。
グループ誤りとは、そのバイト誤り位置が既知である誤りである。
1つの発展形態では、ある特定の第2のデータバイトが対応するブロック誤り符号の符号語ではないことを誤り信号が示す場合には、その第2のデータバイトの少なくとも1つの誤りのあるビットが、グループ誤りを考慮して訂正される。
1つの発展形態では、誤りのある第2のデータバイトが、並列に、または実質的に並列に訂正される。
この関係において、並列とは特に、バイト訂正値の決定および/または提供を少なくとも部分的に時間的に重畳させて、特に実質的に同時に行えることを意味している。
特に、複数のバイト訂正値生成器を、訂正されるべきバイトに対して並列に実装することができる。特に、バイト訂正値を、少なくとも1つのクロックの間に、例えば共通のクロックのシーケンスの間に、または共通のクロックの一部のシーケンスの間に(すなわち、時間的に重畳させて)決定することができる。少なくとも部分的に時間的に重畳させることによって、並列な処理が実現される。ここで、「並列な決定」という概念には、特に、部分的に並列な処理(すなわち、例えば部分的に同時の処理)も含まれることを言及しておく。
例えば、誤りのある第2のデータバイトに対しては、0ではない訂正値を提供することができ、また誤りのない第2のデータバイトに対しては、0の訂正値を提供することができる。したがって、訂正されるべき全ての第2のデータバイトに対して訂正値を決定して、訂正回路の異なる出力側において提供することができる。訂正値を、可逆的かつ一義的に、例えばXOR回路によって、訂正されるべきバイトのビットと結合させることができる。誤り信号に基づいて、第2のデータバイトが訂正されるべきか否かを決定することができる。第2のデータバイトが訂正されない場合には、例えば、第2のデータバイトの個々のビットを値0とXOR結合させることができる。
誤り信号が、該当する第2のデータバイトのバイト位置にグループ誤りが存在することを示す場合には、訂正回路によってグループ誤りに対して決定および訂正されたビットが、訂正されるべきバイトのビットと、例えばXOR回路によって結合される。
誤り信号が、第2のデータバイトのバイト位置にグループ誤りが存在しないことを示す場合には、例えば、訂正回路によって、0の値を有するビットを提供することができ、それらのビットを誤りのないビットとXOR結合させることができ、その際、誤りのないビットが変更されることはない。
誤り信号が存在しない場合であっても、バイト誤りが存在する可能性があるが、もっともこのバイト誤りは、ブロック誤り符号によって検出されなかったものである。この場合には、事前に決定されたバイト誤り位置による支援がなくとも、誤り符号を用いてバイト誤りを訂正することができる。
1つのオプションでは、第2のデータバイトの訂正は、ペイロードビットが関係しており、かつ検査ビットが相応に訂正する必要がない場合にのみ実施される。代替的に、ペイロードビットおよび検査ビットも訂正することができる。
1つの発展形態では、第1のデータバイトも第2のデータバイトも、それぞれ12個より多くのビットを含んでいない。
第1のデータバイトおよび/または第2のデータバイト毎に6、7、8、9、10、11または12個より多くのビットが使用されないことは有利であると考えられる。1つのバイトは、リード・ソロモン符号では、ガロア体GF(2b)(ここで、bはバイト毎のビットの個数である)の元とみなされる。場合によっては誤りのある個々のバイトに対する訂正値が、異なるバイトのための異なる出力側において提供される実現形態、例えば誤り訂正回路の並列な実現形態は、例えば10個のビットまたは12個のビットよりも大きい値に対しては非常に繁雑であると考えられる。
1つの発展形態では、第2のデータバイトのうちの少なくとも2つに対する少なくとも2つの誤り信号が、並列に、または実質的に並列に決定される。
この関係において、並列ないし実質的に並列とは特に、誤り信号の決定を少なくとも部分的に時間的に重畳させて、特に実質的に同時に行えることを意味している。
上記の課題を解決するために、データビットを処理するための装置も提案され、この装置は、
-処理ユニットを含んでおり、この処理ユニットは、
-第1の変換によって、データビットを第1のデータバイトに変換し、
-第1のデータバイトをメモリに記憶し、
-誤りのない場合にはそれぞれがブロック誤り符号の符号語である第2のデータバイトをメモリから読み出し、
-第2のデータバイト毎に、その第2のデータバイトが符号語であるか否かを表す誤り信号を決定する、
ように構成されている。
-処理ユニットを含んでおり、この処理ユニットは、
-第1の変換によって、データビットを第1のデータバイトに変換し、
-第1のデータバイトをメモリに記憶し、
-誤りのない場合にはそれぞれがブロック誤り符号の符号語である第2のデータバイトをメモリから読み出し、
-第2のデータバイト毎に、その第2のデータバイトが符号語であるか否かを表す誤り信号を決定する、
ように構成されている。
ここに記載した処理ユニットを、特に、例えば本明細書に記載するような方法を実施することができるように構成されており、また少なくとも部分的にハードワイヤード式の回路装置または論理回路装置および/またはプロセッサユニットとして形成することができる。上述の処理ユニットは、相応に必要とされる周辺装置(メモリ、入力/出力インタフェース、入出力装置など)を備えた、あらゆる種類のプロセッサまたは計算機またはコンピュータであってもよいし、それらを含んでいてもよい。
1つのオプションでは、第2のデータバイト毎に、その第2のデータバイトに対する誤り信号を決定するように構成されている誤り検出回路が1つ設けられている。
さらに、1つのオプションでは、メモリセル値を訂正するための訂正値生成器が設けられている。訂正値生成器は、例えば、メモリセル値のバイトに誤りがあることを誤り信号が示す場合には、誤りのあるメモリセル値のバイトを訂正するための、0ではないバイト訂正値を決定する。
また1つのオプションでは、訂正値生成器がデータビットを訂正するために使用される。訂正値生成器は、例えば、メモリセル値のバイトに誤りがあることを誤り信号が示す場合には、メモリセル値の誤りのあるバイトに事前に変換されていた誤りのあるデータバイトを訂正するための、0ではないバイト訂正値を決定する。
ブロック誤り符号の誤り信号を使用して、メモリセル値のバイトに対して、使用される誤り信号のうちの1つが誤りを示す場合には第1の値を取り、全ての誤り信号が誤りを示さない場合には第2の値を取る、組合せ誤り信号を形成することができる。
誤り信号は、バイナリであってよく、また組合せ誤り信号を、複数の誤り信号のXOR結合またはOR結合として決定することができる。
方法に関する前述の説明は、装置についても相応に当てはまる。装置を1つのコンポーネントにおいて形成することができるか、または複数のコンポーネントに分散させて形成することができる。
また上記の課題は、本明細書で説明する装置のうちの少なくとも1つを含んでいるシステムによって解決される。
1つの発展形態では、メモリが、以下のコンポーネントのうちの少なくとも1つを含んでいる。
-キャッシュメモリ、
-レジスタまたはレジスタアレイ、
-フラッシュメモリ、
-MRAM、
-SRAM、
-RE-RAM、
-PC-RAM、
-FE-RAM、
-CB-RAM、
-マルチビットメモリ、
-マルチレベルメモリ。
-キャッシュメモリ、
-レジスタまたはレジスタアレイ、
-フラッシュメモリ、
-MRAM、
-SRAM、
-RE-RAM、
-PC-RAM、
-FE-RAM、
-CB-RAM、
-マルチビットメモリ、
-マルチレベルメモリ。
1つの発展形態では、メモリが装置の一部であるか、または装置とは別個に形成されている。
1つの発展形態では、さらに、第1の変換とは逆の変換である第2の変換によって、第2のデータバイトが第2の逆データバイトに変換されるように、処理ユニットが構成されている。
1つの発展形態では、処理ユニットが、さらに、
-第1のデータバイト、および第1のデータバイトに基づいて決定される第1の検査ビットを記憶し、
-第2のデータバイトおよび第2の検査ビットをメモリから読み出し、
-第2のデータバイトがブロック誤り符号の符号語ではない場合には、誤り信号および第2の検査ビットに基づいて、その第2のデータバイトを訂正するように構成されている。
-第1のデータバイト、および第1のデータバイトに基づいて決定される第1の検査ビットを記憶し、
-第2のデータバイトおよび第2の検査ビットをメモリから読み出し、
-第2のデータバイトがブロック誤り符号の符号語ではない場合には、誤り信号および第2の検査ビットに基づいて、その第2のデータバイトを訂正するように構成されている。
さらに、データビットを処理するための装置が提案され、この装置は、
-第1の変換によって、データビットを第1のデータバイトに変換する手段、
-第1のデータバイトをメモリに記憶する手段、
-誤りのない場合にはそれぞれがブロック誤り符号の符号語である第2のデータバイトをメモリから読み出す手段、
-第2のデータバイト毎に、その第2のデータバイトが符号語であるか否かを表す誤り信号を決定する手段、
を含んでいる。
-第1の変換によって、データビットを第1のデータバイトに変換する手段、
-第1のデータバイトをメモリに記憶する手段、
-誤りのない場合にはそれぞれがブロック誤り符号の符号語である第2のデータバイトをメモリから読み出す手段、
-第2のデータバイト毎に、その第2のデータバイトが符号語であるか否かを表す誤り信号を決定する手段、
を含んでいる。
さらに、ディジタルコンピュータのメモリに直接的にロードすることができる、コンピュータプログラム製品が提案され、このコンピュータプログラム製品は、本明細書において説明する方法のステップを実施することに適しているプログラムコード部分を含んでいる。
また、コンピュータ読み出し可能な記憶媒体が提供され、この記憶媒体は、コンピュータが本明細書において説明する方法のステップを実施することに適している、コンピュータによって実行可能な命令を含んでいる。
本発明の上述の特性、特徴および利点、ならびにそれらがどのように達成されるかを、以下では図面と関連させて詳細に説明する実施例の概略的な説明と関係させて説明する。各図においては、明瞭性のために、同一または同様に機能する素子には同一の参照符号を付している場合がある。
誤り符号についての一般的な注釈
本願において使用される誤り符号(符号とも記す)は、線形符号または非線形符号である。
本願において使用される誤り符号(符号とも記す)は、線形符号または非線形符号である。
例えば、線形符号Cを、生成行列G(G行列とも記す)またはH行列Hによって表すことができる。この例では、簡潔な説明のために、先ず線形符号、特にペイロードがバイナリペリロードビット(ないしペイロードバイト)である線形符号を考察する。ここで、1つのバイトは、複数b(ただし、b≧2)個のビットを含んでいる。ペイロードビットは、情報ビットとも記す。
符号Cが、線形組織符号である場合には、符号Cの符号語は、q個のペイロードビットuと、付加的なp個の検査ビットc1,...,cpとを含んでおり、この場合、符号語のビットの個数は、k=q+pによって決定されている。
組織符号の符号語を形成する際に、ペイロードビットは、例えば複数のペイロードビットの線形組合せである検査ビットによって補完される。
G=(Iq,Pq,p)が、組織形式の符号Cの生成行列である場合には、符号CのH行列Hを、
に従い決定することができ、ただし
は、パリティ行列Pq,pの転置行列であり、Ipは、p次元の単位行列である。転置パリティ行列
は、パリティ行列Pq,pから、その行と列が入れ替えられることによって得られる。
各符号のように、長さkの線形ブロック符号も、考えられる全てのk成分の語の集合の部分集合である、自身の複数の符号語の集合によって表すことができる。換言すれば、符号Cは、長さkの考えられる全ての語の語x1,...,xkの部分集合によって表すことができ、この場合、次式が成り立つ。
したがって、線形符号Cは、式(4)が満たされているk項の全ての語の部分集合によって決定されている。ここで、ベクトル[x1,...,xk]Tは、行ベクトル[x1,...,xk]の転置列ベクトルである。
符号語x1,...,xk(ただし、H×[x1,...,xk]T=0)を、k個の成分x1,...,xkを有する符号ベクトルと記すこともできる。
成分xi(ただし1≦i≦k)が0または1の値しか取ることができない場合には、xiはバイナリである。成分xiは、多値であってもよい。成分xiが3値である場合には、成分xiは、3つの異なる値、例えば0、1または2を取ることができる。成分xiがK値(ただし、K≧2)である場合には、成分xiは、K個の異なる値、例えば0,1,...,K-1を取ることができる。
符号語の成分xiが、複数b個のビットを有するbビット・バイトを表すことも考えられ、これは例えば、リード・ソロモン符号などのバイト誤り訂正符号またはバイト誤り検出符号の場合である。
各符号に関する場合と同様に、線形符号Cについても、符号語xを誤りのある語
に改ざんする誤りを、その誤りのある語が符号Cの符号語ではない場合には検出できる。改ざんされた語x’も符号Cの符号語である場合には、誤りを検出することはできない。
Hが符号CのH行列である場合には、
であることの誤りを検出することができる。これに対して、
である場合には、誤りは検出されない。ここで、sは、誤りのある語x’の誤りシンドロームを表す。[x’]Tは、行ベクトルx’の転置列ベクトルである。
例:多値の符号
例示的に、3項アルファベット0、1および2に関して符号CCを説明する。この符号は非線形である。符号CCを、
として表すことができる。つまり、この符号CCの符号語は、この場合2つの2、1つの1および1つの0を有する。
個の符号語、つまり
が存在する。
例示的に、3項アルファベット0、1および2に関して符号CCを説明する。この符号は非線形である。符号CCを、
また、b個(ただし、b≧2であると考えられる)のビットを含むことができるバイトのアルファベットに関して符号を考察することもできる。この種の符号に関する例は、リード・ソロモン符号である。
メモリセル値のバイトの誤り検出
図1は、メモリ11にデータを記憶するための例示的な回路を示す。メモリ11は、複数のメモリセル値を記憶するための複数のメモリセルを有している。メモリセルがバイナリである場合には、メモリセルは、2つの異なるメモリセル値(例えば、0または1)を記憶することができる。メモリセルが、K個(ただし、K>2)の異なるメモリセル値を記憶する場合には、メモリセルを、K値メモリセル(多値メモリセルまたは「Multi-Valued」メモリセル)と記す場合もある。K個の異なるメモリセル値は、例えば0,1,2,...,K-1であってよい。
図1は、メモリ11にデータを記憶するための例示的な回路を示す。メモリ11は、複数のメモリセル値を記憶するための複数のメモリセルを有している。メモリセルがバイナリである場合には、メモリセルは、2つの異なるメモリセル値(例えば、0または1)を記憶することができる。メモリセルが、K個(ただし、K>2)の異なるメモリセル値を記憶する場合には、メモリセルを、K値メモリセル(多値メモリセルまたは「Multi-Valued」メモリセル)と記す場合もある。K個の異なるメモリセル値は、例えば0,1,2,...,K-1であってよい。
メモリ11は、バイナリメモリセルおよび/または多値メモリセルを有することができる。特に、1つのオプションでは、メモリ11が、複数のK値メモリセルを有しており、この場合、K値メモリセルの第1の部分には、多値の値0,1,...,K-1の部分集合のみ、例えば値0またはK-1のみを書き込むことができ、またメモリセルの第2の部分には、考えられるK個全ての異なるメモリセル値を書き込むことができる。
以下では、例示的に、メモリ11のメモリセルがバイナリであることを想定する。
さらに、図1による回路は、1つの変換回路12および複数L個の誤り検出回路FE0130,FE1131,...,FEL-113L-1を有している。ここで、「L-1」と組み合わされた数字の表記は、それがL番目のコンポーネントであること、ここではL番目の誤り検出回路であることを表していることを言及しておく。例えばL=4個の誤り検出回路が設けられている場合には、それらの誤り検出回路には、参照番号130、131、132および133が付与される。したがって、最後の参照番号は、13L-1(ただし、L=4)から133となる。これらの表記によって、可変の多数のL個のコンポーネントを示唆することができ、また特に、大きい数Lを漠然と表すことができる。
変換回路12は、k個のデータビットx=x1,...,xkを入力するためのkビット幅の入力側と、n個のメモリセル値w=w1,...,wnを出力するためのnビット幅の出力側と、を有している。
符号語xのk=q+p個のデータビットは、複数q個の情報ビットu1,u2,...,uqと、分離可能な誤り符号C1の複数p個の検査ビットc1,...,cpと、を形成することができ、それによって、
が成り立つ。ただし
は、誤り符号C1の符号語である。
誤り符号C1を、データビット誤り符号と記す場合もある。誤り符号C1は、誤り訂正符号および/または誤り検出符号である。情報ビットu1,...,uqは、検査ビットc1,...,cpで補完され、変換回路12の入力側に印加される誤り符号C1の符号語xとなる。例えば、誤り符号C1が、バイト誤り訂正符号および/またはバイト誤り検出符号であることも考えられる。符号語xが、分離できない符号の符号語であることも考えられる。
さらに、符号語x1,...,xkのk個のビットの代わりに、ペイロードビットu1,...,uqのq個のビットを印加することもできる。換言すれば、符号語xが変換回路12に供給されることは必要なく、その代わりに、ペイロードビットuの集合が変換回路12に供給されてもよい。
変換回路12の入力側には、k個のデータビットx=x1,...,xkが印加される。ここで、以下の関係が成り立つ。
-このデータビットのm0が0番目のバイトX0を形成する、
-このデータビットのm1が1番目のバイトX1を形成する、以下同、
-最終的にこのデータビットのmL-1が(L-1)番目のバイトを形成するまで同じことが繰り返される。
-このデータビットのm0が0番目のバイトX0を形成する、
-このデータビットのm1が1番目のバイトX1を形成する、以下同、
-最終的にこのデータビットのmL-1が(L-1)番目のバイトを形成するまで同じことが繰り返される。
データビットのバイト、例えば「データビットのバイトX1」は、「データバイトX1」または「データビットのグループX1」とも記す。
複数のビットのグループのビットまたはデータビットのバイトX0,X1,...,XL-1のビットが連続して配置されていることも考えられるが、しかしながらこれは必須ではない。
変換回路12は、自身のk個の入力側に印加される、符号語xのk個のデータビットを、n個のメモリセル値w=w1,...,wnに変換し、それらのメモリセル値w=w1,...,wnを、自身のn個の出力線に出力し、これらの出力線は、メモリ11のn個のメモリセルの対応するデータ入力線に接続されている。したがって、変換回路12は、データビットの割り当てを、メモリセル値の割り当てに変換する。
k個のデータビットの複数Anz1<2k個の割り当てしか生じない場合には、生じた割り当てをメモリセル値の対応する割り当てに一対一で変換するように変換回路12が構成されていれば十分である。生じない割り当てに関しては、変換回路の機能を任意に規定することができる。
変換回路12は、以下のように構成されている。
-0番目のバイトW0のメモリセル値の割り当てが長さn0の誤り符号CF0の符号語であるように、データビットの0番目のバイト
の割り当てを、メモリセル値の0番目のバイト
の割り当てに変換する、
-1番目のバイトW1のメモリセル値の割り当てが長さn1の誤り符号CF1の符号語であるように、データビットの1番目のバイト
の割り当てを、メモリセル値の1番目のバイト
の割り当てに変換する、
-最終的に、メモリセル値のnL-1番目のバイトWL-1の割り当てが長さnL-1の誤り符号CFL-1の符号語であるように、データビットの(L-1)番目のバイト
の割り当てを、メモリセル値のL-1番目のバイト
の割り当てに変換するまで同じことを繰り返す。
-0番目のバイトW0のメモリセル値の割り当てが長さn0の誤り符号CF0の符号語であるように、データビットの0番目のバイト
-1番目のバイトW1のメモリセル値の割り当てが長さn1の誤り符号CF1の符号語であるように、データビットの1番目のバイト
-最終的に、メモリセル値のnL-1番目のバイトWL-1の割り当てが長さnL-1の誤り符号CFL-1の符号語であるように、データビットの(L-1)番目のバイト
誤り符号CF0,CF1,...,CFL-1は、それぞれ、ブロック誤り符号とも記す。
メモリセル値のバイトを、複数のメモリセルから成るグループに記憶することができる。この場合、とりわけ、少なくともL=2個のバイトと、メモリセル値の対応するバイトを記憶することができる、複数のメモリセルから成る少なくとも2つのグループと、が存在している。
データビットのバイトおよびメモリセル値のバイトが2個よりも多く存在していてもよい。例えば、異なる個数のバイトが存在していてもよく、その場合には、各バイトがメモリセル値の相応のバイトに変換され、またバイトの各メモリセル値がブロック誤り符号の符号語である。
メモリセルのバイトは、とりわけ少なくとも3つのメモリセル値を有する。
メモリ11は、少なくともn=n0+n1+...+nL-1個のメモリセルを有している。ブロック誤り符号CF0は、長さn0のブロック符号であり、ブロック誤り符号CF1は、長さn1のブロック符号であり、この関係は、長さnL-1のブロック符号であるブロック誤り符号CFL-1まで続く。
例えば、ブロック誤り符号CF1が、q1-out-of-n1符号であることも考えられ、それによって、このブロック誤り符号の符号語は、複数q1個の1と、複数n1-q1個の0と、を有する。
また例えば、ブロック誤り符号CF2が、全てのn2項バイナリ語の集合の所定の部分集合として決定されていることも考えられる。
例えば、ブロック誤り符号の各符号語が、それぞれ、3つの1と3つの0とを有する、3-out-of-6符号語であってもよい。全部で、20個のその種の符号語が存在する。例示として、データビットの4ビット・バイトが、メモリセル値の6ビット・バイトに変換される。24=16個の異なる4ビット・バイトが存在し、それらが可逆的かつ一義的に、メモリセル値の全部で20個の6ビット・バイトのうちの16個の6ビット・バイトに変換される。したがって、(20-16=)4個の3-out-of-6符号語は、変換の際に使用されない。したがって、ブロック誤り符号CF2は、3-out-of-6符号の複数の3-out-of-6符号語の部分集合だけを含んでいる。この例では、考えられる16個のデータバイトのうちの1つが変換される16個の3-out-of-6符号語から、ブロック誤り符号CF2が形成されている。
長さn*のブロック誤り符号は、n*項バイナリ語の真部分集合であると考えられる。つまり例えば、長さn*=6のブロック誤り符号は、3-out-of-6符号の20個の考えられる符号語のうちの16個の符号語の部分集合であると考えられる。20個の考えられる符号語もまた、メモリセル値の6ビットの26=64個の考えられるバイナリ語の部分集合である。
例えば、ブロック誤り符号は、バーガ符号またはその他の公知の符号である。
1つのオプションでは、n0=n2=...=nL-1が成り立つ場合、全てのブロック誤り符号は、同じブロック長さを有する。また、CF0=CF1=...=CFL-1が成り立ち、メモリセル値のL個のバイトに対して使用されるブロック誤り符号が同じであり、かつデータビットのL個のバイトの割り当てのそれぞれに対して、同じ変換が変換回路12によって実施されることも考えられる。
さらに、データビットの異なるバイトが異なる変換によって、メモリセル値のバイトに変換されることも考えられる。
1つの別のオプションでは、データビットの0番目のバイトX0の複数Anz0個(ただし、Anz0<2m0)の割り当てだけが、変換回路12のm0個の第1の入力側に生じ、生じた割り当てだけが可逆的かつ一義的に、メモリセル値のバイトのAnz0個の割り当てに、変換回路12によって変換され、また相応の入力側に生じない割り当てに関する変換は定義する必要はない。相応のことが、データビットの他の各バイトについても成り立つと考えられる。
このことは、最終的に、変換回路12によって、自身の対応する出力側に提供されたメモリセル値WL-1が、(L-1)番目のメモリセルとも称されるnL-1個のメモリセルに記憶されるまで継続される。
誤りに起因して、読み出されたメモリセル値W0’は、事前に書き込まれているメモリセル値W0とは異なる可能性がある。
誤りが存在しない場合には、W0=W0’が成り立ち、読み出されたメモリセル値W0’は、ブロック誤り符号CF0の符号語を形成する。読み出されたメモリセル値W0’がブロック誤り符号CF0の符号語を形成しない場合には、誤りが存在し、この誤りはブロック誤り符号CF0を用いて検出することができる。第1のn0個のメモリセルから読み出されたメモリセル値W0’は、誤り検出回路FE0130のn0ビット幅の入力側に印加される。この誤り検出回路FE0130は、読み出されたメモリセル値W0’がブロック誤り符号CF0の符号語である場合には、自身の出力側に誤り信号E0の第1の値を出力し、読み出されたメモリセル値W0’がブロック誤り符号CF0の符号語ではない場合には、自身の出力側に第2の値を出力するように構成されている。したがって、第2の値が出力されるということは、0番目のn0個のメモリセルから出力されたメモリセル値には誤りがあることを示す。
n1個の1番目のメモリセルないしnL-1個の(L-1)番目のメモリセルからは、それらのメモリセルに記憶されているメモリセル値W1’~WL-1’を読み出すことができる。読み出されたメモリセル値W1’,...,WL-1’が、誤りに起因して、書き込まれたメモリセル値W1,...,WL-1とは異なる可能性がある。
誤りが存在しない場合には、書き込まれたメモリセル値は、読み出されたメモリセル値と同じであり、また読み出されたメモリセル値は、それぞれ対応するブロック誤り符号の符号語を形成する。
上記の説明は、残りの誤り検出回路FE1131~FEL-113L-1についても相応に当てはまる。つまり、誤り検出回路FE1131は、読み出されたメモリセル値W1’に基づき、(ブロック誤り符号CF1を基礎とする)誤り信号E1を決定し、また誤り検出回路FEL-113L-1は、読み出されたメモリセル値WL-1’に基づき、(ブロック誤り符号CFL-1を基礎とする)誤り信号EL-1を決定する。
図2aおよび図2b:情報ビットuに対する検査ビット
メモリから出力されたメモリセル値は、バイトまたはメモリセル値W0’,...,WL-1’のグループを形成する。そのようなバイトの全てのビットに誤りがないわけではない場合には、いわゆるグループ誤りが存在する。
メモリから出力されたメモリセル値は、バイトまたはメモリセル値W0’,...,WL-1’のグループを形成する。そのようなバイトの全てのビットに誤りがないわけではない場合には、いわゆるグループ誤りが存在する。
例えば、読み出されたバイトWi’の全ての値
に誤りがないわけではない場合には、読み出されたメモリセル値のi番目のバイトにおけるグループ誤り(読み出されたメモリセル値のi番目のグループとも記す)が存在する。
i番目のバイトのグループ誤りは、このバイトの少なくとも1つのメモリセル値に誤りがあることを表す。したがって、グループ誤りとは、バイト位置が検出されている誤りである。つまり、グループ誤りは、特定のバイトに誤りがあることを示す。もっとも、グループ誤り単独では、(1つまたは複数の)どのビットに誤りがあるかをまだ示さない。
換言すれば、グループ誤りは、バイトの集合のうちの(1つまたは複数の)どのバイトに誤りがあるか否かという情報を供給する。
例えば、3-out-of-6符号では、グループ誤りが誤りのある6ビット・バイトを示すが、その際に既に、6個のビットのうちの少なくとも1つのどのビットに実際に誤りがあるかが示されることはない。
グループ誤りが存在するということを、バイト誤り位置信号によっても示すことができ、これを以下では例示的に説明する。
図2aは、符号語のデータビットの訂正を例示した概略図を示す。図2aには、コーディングユニット21、変換回路22ならびにメモリ23が含まれている。
ペイロードビットuが、コーディングユニット21によって、誤り符号を用いて符号語xのデータビットにコーディングされる。続いて、符号語xが変換回路22に供給され、この変換回路22に基づいて、符号語xは、書き込まれるべきメモリセル値W0,W1,...,WL-1に変換される。
この例においては、コーディングユニット21は、ペイロードビットuが、誤り符号C1の(ペイロードビットuならびに検査ビットcを含む)符号語x、ただし
に変換されるように構成されている。したがって、符号語xは、
-データビットのグループX0を形成するm1個のビット、
-データビットのグループX1を形成するm2個のビット、以下同、
-データビットのグループXL-1を形成するmL個のビット、
を含んでいる。
-データビットのグループX0を形成するm1個のビット、
-データビットのグループX1を形成するm2個のビット、以下同、
-データビットのグループXL-1を形成するmL個のビット、
を含んでいる。
符号語は、誤り符号C1が分離可能な符号である場合には、ペイロードビットおよび検査ビットを含んでいる。誤り符号C1が分離不可能な符号である場合には、符号語のペイロードビットと検査ビットとが区別されないことも考えられる。
m1=m2=...=mL=bが成り立ち、かつX0,X1,...,XL-1がそれぞれ、b個のビット(ただし、b≧2)から成るバイトを形成することも考えられる。
グループX0,X1,...,XL-1が複数のバイトである場合には、各バイトは少なくとも2つのビットを含んでいる。バイトX0,X1,...,XL-1のビットは、変換回路22の対応するm1ビット幅の入力側、m2ビット幅の入力側,...,mLビット幅の入力側に印加される。変換回路22は、自身のn1ビット幅の出力側n1に、書き込まれるべきメモリセル値W0を提供し、自身のn2ビット幅の出力側n2にメモリセル値W1を提供し、この提供を、自身のnLビット幅の出力側nLにメモリセル値WL-1を出力するまで繰り返す。
ここで変換回路は、とりわけ、
-書き込まれるべきメモリセル値W0の集合が、ブロック誤り符号CF0のそれぞれ1つの符号語である、
-書き込まれるべきメモリセル値W1の集合が、ブロック誤り符号CF1のそれぞれ1つの符号語である、以下同、
-書き込まれるべきメモリセル値WL-1の集合が、ブロック誤り符号CFL-1のそれぞれ1つの符号語である、
ように構成されている。
-書き込まれるべきメモリセル値W0の集合が、ブロック誤り符号CF0のそれぞれ1つの符号語である、
-書き込まれるべきメモリセル値W1の集合が、ブロック誤り符号CF1のそれぞれ1つの符号語である、以下同、
-書き込まれるべきメモリセル値WL-1の集合が、ブロック誤り符号CFL-1のそれぞれ1つの符号語である、
ように構成されている。
変換回路22は、書き込まれるべきメモリセル値W0,W1,...,WL-1をメモリ23のメモリセルに書き込むことができるように、メモリ23に接続されている。
メモリ23は、アドレッシング可能なメモリ、レジスタアレイおよび/またはレジスタを含むことができる。
メモリ23からは、メモリセル値W0’,W1’,...,WL-1’を読み出すことができる。上記において説明したように、読み出されたメモリセル値には誤りがある可能性がある。読み出されたメモリセル値のバイトW0’,W1’,...,WL-1’のうちの1つが、各ブロック誤り符号の符号語ではない場合には(上記の説明を参照されたい)、読み出されたブロックのバイトにおける誤りが検出される。
図2bは、メモリ23、複数L個の誤り検出回路240,241,...,24L-1、逆変換回路25、バイト訂正値生成器26およびL個の排他的論理和回路270,271,...,27L-1を含んでいる概略的な回路装置を例示的に示す。
メモリ23の各出力側には、読み出されたメモリセル値W0’,W1’,...,WL-1’が提供される。それらは、逆変換回路25の対応する入力側に供給される。それらの読み出されたメモリセル値はそれぞれ、さらに誤り検出回路240~24L-1のうちの1つにも供給される。誤り検出回路240~24L-1はそれぞれ、自身の出力側に誤り信号E0~EL-1を提供する。誤り信号は、読み出されたメモリセル値W0’~WL-1’が、ブロック誤り符号CF0~CFL-1の符号語であるか否かを示す。
例えば、誤り検出回路240に供給される、読み出されたメモリセル値W0’に関しては次の事項が当てはまる。誤り信号E0は、読み出されたメモリセル値W0’がブロック誤り符号CF0の符号語を表す場合には、第1の値を取り、そうでない場合には、誤り信号E0は、第2の値を取る。
したがって、誤り検出回路240~24L-1によって、メモリセル値の読み出された各バイトW0’~WL-1’に誤りがあるか否かを決定することができる。
誤り検出回路240~24L-1の誤り信号E0~EL-1は、バイト訂正値生成器26に供給される。
逆変換回路25は、場合によっては誤りのある、読み出されたメモリセル値W0’,W1’,...,WL-1’のバイトを、読み出されたデータビットのバイトX’=X0’,X1’,...,XL-1’に、
が成り立つように変換するように構成されている。
誤りが生じていない場合には、以下の事項が当てはまる。変換回路22によって、バイトX0,...,XL-1が、メモリセル値のバイトW0,...,WL-1に変換され、メモリ23のメモリセルに記憶される。メモリ23から読み出された、メモリセル値のバイトW0’,...,WL-1’は、逆変換回路25によってバイトX0’,...,XL-1’に変換される。
読み出されたデータビットのバイトX’が、逆変換回路25からバイト訂正値生成器26に提供される。また、読み出されたデータビットのそれらのバイトX’が、排他的論理和回路(XOR回路とも記す)270~27L-1の第1の入力側に供給される。
バイト訂正値生成器26は、自身の入力側に印加される
-誤り信号E0~EL-1および
-読み出された(また場合によっては誤りのある)データビットのバイトX’
に依存して、データバイトを訂正するための誤り符号C1に応じたバイト訂正値
を自身の出力側に供給するように構成されている。このために、バイト訂正値生成器26の出力側は、XOR回路270~27L-1の第2の入力側に接続されている。XOR回路270~27L-1の出力側には、訂正されたバイト
が提供され、この際、以下の関係が成り立つ。
-誤り信号E0~EL-1および
-読み出された(また場合によっては誤りのある)データビットのバイトX’
に依存して、データバイトを訂正するための誤り符号C1に応じたバイト訂正値
例えば、メモリセル値のバイトW0がデータビットのバイトX0のみによって決定されており、別のデータビットには依存しないように、変換回路22を構成することができる。相応のことが、メモリセル値の別のバイトW1~WL-1に対しても、バイトX1~XL-1とのその依存性に関して当てはまると考えられる。
読み出されたメモリセル値のバイトが、書き込むべきメモリセル値のバイトと同じ場合、すなわち、
である場合には、読み出されたバイトには誤りは存在しない。すなわち、誤り検出回路240の誤り信号E0は、読み出されたメモリセル値のバイトW0’がブロック誤り符号CF0の符号語であることを示す第1の値に相当する。したがって、訂正は必要ない。
これに対して、
が成り立つ場合には、読み出されたメモリセル値のバイトW0’は、ブロック誤り符号CF0の符号語ではない。誤り信号E0は、第2の値に相当する。バイト訂正値生成器26は、0番目の読み出されたバイトX0’のビットを訂正するための訂正信号
を生成し、またそれをXOR回路270に供給する。この場合、誤り符号の訂正可能な誤りに対して、訂正可能なバイトを決定できるように、訂正信号
は決定されている。
相応のことが、読み出されたメモリセル値の別のバイト、すなわちW1’~WL-1’に対しても当てはまる。
誤り信号E0~EL-1がその第1の値によって、読み出された対応するバイトが、対応するブロック誤り符号の符号語であることを示す場合には、バイト訂正値生成器26によって、0とは異なるバイト訂正値は決定されない。XOR回路の(2つの入力側のうちの)一方の入力側に供給される0のバイト訂正値によって、XOR回路の出力側には、他方の入力側の信号が出力される。換言すれば、0のバイト訂正値は、XOR回路の出力側を変化させない。この場合には確かに誤りは訂正されるべきではないので、出力側が変化しないことは所望でもある。
相応に、誤り信号E0~EL-1が第2の値を示す場合には、訂正が実施される。この場合、データビットの該当するバイトを訂正することができる。
すなわち結果として、誤り信号E0~EL-1によって、どのバイトが訂正されなければならないか否か、またいつどのバイトが訂正されなければならないかが示される。これによって、有利には、誤り符号の訂正能力を高めることができる。
別の利点として、メモリセル値が逆変換回路25によってデータビットのバイトX’に変換される前に、誤り信号E0~EL-1を、読み出されたメモリセル値のバイトから決定することができる。
データビットxは、バイトX0,...,XL-1に分割され、それらが、変換回路22に基づいて、メモリセル値のバイトW0,...,WL-1に変換される。これらのバイトW0~WL-1は、ブロック誤り符号CF0~CFL-1の符号語であり、またメモリ23のメモリセルに記憶される。
メモリ23からは、場合によっては誤りのあるメモリセル値のバイトW1’~WL-1’が読み出され、誤り検出回路240~24L-1に基づいて、バイトW1’~WL-1’毎に、それぞれがブロック誤り符号CF0~CFL-1の符号語であるか否かが検査される。誤り信号E0~EL-1を用いて、読み出された(また場合によっては誤りのある)各バイトW1’~WL-1’が符号語であるか否かが示される。
場合によっては誤りのあるメモリセル値のこれらのバイトW1’~WL-1’は、逆変換回路25によって、データビットの場合によっては誤りのあるバイトX0’~XL-1’に変換される。各誤り信号E0~EL-1を用いて、バイト訂正値生成器26には、バイトX0’~XL-1’のうちのどのバイトに対してグループ誤りが検出され、またどのバイトに対してそのようなグループ誤りが検出されなかったかが示される。また、あるバイトに対して、(例えば、複数の誤りに起因して、ある符号語が別の符号語に改ざんされた場合に)そのバイトに誤りがあるにもかかわらず、グループ誤りが検出されないことも考えられる。
場合によっては誤りのあるバイトX0’~XL-1’および誤り信号E0~EL-1は、バイト訂正値生成器26に供給され、このバイト訂正値生成器26は、それらから誤り符号C1に応じたバイト訂正値
を形成し、それらのバイト訂正値は、XOR回路270~27L-1に基づいて、バイトX0’~XL-1’と成分毎にXOR結合される。
誤り訂正、ひいてはバイト訂正値の決定も、誤り符号C1を使用して行われる。誤り検出回路240~24L-1に基づいて、またブロック誤り符号CF0~CFL-1を用いて、グループ誤りを決定することができ、それによって、誤り符号C1に基づいた誤り訂正に関しては、(1つまたは複数の)どのバイトに誤りがあるか、ひいては(1つまたは複数の)どのバイトが訂正されなければならないかが既知となる。
換言すれば、場合によっては誤りのあるデータバイトの誤り訂正は、誤り符号C1を使用して行われる。読み出されたデータバイトにおけるグループ誤りの検出を、それらが誤りのあるバイトに逆変換される前に、ブロック誤り符号CF0~CFL-1を使用して行うことができる。
1つのオプションでは、誤り検出回路240~24L-1のうちの少なくとも1つおよび逆変換回路25が一緒に実現され、それによって回路の少なくとも一部を共通して使用することができる。
図3aおよび図3b:メモリセル値に対する検査ビット
以下では、例示的に、(図2aのようなデータビットに対する検査ビットとは異なり)メモリセル値に対する検査ビットPrが形成される。メモリセル値の検査ビットを、例えば、その形成後に、メモリセル値に変換し、続いて記憶することができる。
以下では、例示的に、(図2aのようなデータビットに対する検査ビットとは異なり)メモリセル値に対する検査ビットPrが形成される。メモリセル値の検査ビットを、例えば、その形成後に、メモリセル値に変換し、続いて記憶することができる。
メモリセル値の検査ビットを、データビットの場合と同じやり方で、またはそれとは異なるやり方でメモリセル値に変換することができる。
図3aは、変換回路31、検査ビット生成器32、検査ビット変換回路33およびメモリ34を含んでいる概略的な回路装置を示す。
変換回路31の入力側には、誤り符号C1の符号語xの、複数のバイトXに分割されるデータビットが印加され、このデータビットは、ここでは例示的にペイロードビットuならびに検査ビットcを含んでいる。
代替的に、変換回路31には、複数のバイトに分割されたペイロードビットuのみを供給することもできる。
変換回路31は、自身の出力側に、記憶すべきメモリセル値のバイトW0~WL-1を提供する。記憶すべきメモリセル値W0~WL-1は、n1~nL-1の各語幅を有する。さらに、記憶すべきメモリセル値W0~WL-1は、各ブロック誤り符号CF0~CFL-1の符号語である。
出力側では、変換回路31はメモリ34および検査ビット生成器32に接続されている。
検査ビット生成器32の出力側は、検査ビット変換回路33の入力側に接続されている。検査ビット変換回路33は、自身の入力側に印加された検査ビットPrをメモリセル値W[Pr]に変換するように構成されている。それらのメモリセル値W[Pr]は、メモリセル値W0~WL-1と共にメモリ34に記憶される。
例えば、バイトX0~XL-1が、全て同じ個数の4個のビットを有しており、つまりm0=m1=...mL-1=4であり、かつ例えば全てのメモリセル値W0~WL-1が、6個のビットの語幅を有する場合、つまりn0=n1=...=nL-1=6である場合には、バイトX0~XL-1は、それぞれ、24=16個の考えられる割り当てを有する4ビット・バイトを形成する。
この場合には、ブロック誤り符号CF0~CFL-1が、それぞれ、
個の符号語を有する3-out-of-6符号であると考えられる。4ビット・バイトの16個の考えられる割り当てを、変換回路31によって、可逆的かつ一義的に、20個の考えられる3-out-of-6符号語のうちの16個にマッピングすることができる。
この例においては、検査ビット生成器32が自身の入力側に印加される、メモリセル値W0~WL-1の6×L個のビットから、誤り符号C2に対応する検査ビットPrを決定する。例えば、検査ビット生成器32は、第1の検査ビットを、バイトW0~WL-1のメモリセル値の各第1のビットのXOR和として決定することができ、第2の検査ビットを、バイトW0~WL-1のメモリセル値の各第2のビットのXOR和として決定することができ、これは、バイトW0~WL-1のメモリセル値の各第6のビットのXOR和として形成される第6の検査ビットが決定されるまで繰り返される。したがって、6個の検査ビット
が得られる。
これらの検査ビットは、3-out-of-6符号の符号語を形成することもできるが、しかしながら必須ではない。
さらに、この例においては、変換回路を用いて、6個の検査ビットPr0~Pr5が、2つの3-out-of-6符号語に変換され、この変換は、最初の3つの検査ビットが0を用いて、4ビット・バイト
に補完され、また最後の3つの検査ビットも同様に0を用いて、別の4ビット・バイト
に補完されることによって行われる。これら2つの4ビット・バイトは、検査ビット変換回路33に基づき、3-out-of-6符号の符号語に変換される。この例によれば、続いて、3-out-of-6符号のそれら2つの符号語がメモリ34に書き込まれる。
この例においては、各検査ビットPr0~Pr5に対して、反転された検査ビット
が決定されることによって、検査ビットが二重にされる。つまりこれによって、検査ビット毎に2つのメモリセルがメモリ34に記憶される。
メモリ34から、場合によっては誤りのある検査ビットが読み出された場合には、例えば、場合によっては誤りのある検査ビットの訂正を、多数決を使用して行うことができる。
また一例では、検査ビットPr0~Pr5が、
による(少なくとも)1つの付加的なパリティビットPaでもって補完され、この場合、
がメモリ34に書き込まれるように、検査ビット変換回路33が構成されている。ここで「+」はモジュロ2加算を表す。場合によっては誤りのある検査ビットが読み出された場合には、検査ビットにおける奇数の誤りを、パリティビットに基づき検出することができる。検査ビットにおける誤りが検出された場合には、例えば、そのような誤りを示すことができるが、しかしながら、メモリセル値の訂正を省略することができる。
誤り符号C2の検査ビットPrは、ここでは例示的に、バイトW0~WL-1のメモリセル値を使用して形成され、バイトX0~XL-1からは直接的に形成されない。検査ビットPrは、その記憶の前に、対応するメモリセル値に変換することができる。
メモリ34からの読み出しの際に、メモリ34の対応する出力側において、場合によっては誤りのあるメモリセル値W0’,W1’,...,WL-1’,W[Pr]’が出力される。
図3bは、場合によっては誤りのあるメモリセル値W0’,W1’,...,WL-1’,W[Pr]’を訂正するためのコンポーネントを含む概略図を示す。
図3bには、1つのメモリ34、複数L個の誤り検出回路350~35L-1、1つの誤り検出回路40、1つの逆検査ビット変換回路36、複数L個のXOR回路380~38L-1、1つの逆変換回路39および1つのバイト訂正値生成器37が示されている。
バイト訂正値生成器37は、L個の誤り信号E0~EL-1を入力するためのL個の入力側、誤り信号EPrを入力するための入力側、場合によっては誤りのあるメモリセル値W0’~WL-1’を入力するためのL個の入力側、および場合によっては誤りのある検査ビットPr’を入力するための入力側を有している。さらに、バイト訂正値生成器37は、場合によっては誤りのあるメモリセル値W0’,W1’,...,WL-1’を訂正するためのL個のバイト訂正値
を出力するためのL個の出力側を有している。
メモリ34からは、場合によっては誤りのあるメモリセル値W0’,W1’,...,WL-1’およびW[Pr]’が読み出される。
読み出されたメモリセル値W0’~WL-1’は、一方では、バイト訂正値生成器37に供給され、他方では、それらのメモリセル値はそれぞれ、XOR回路380~38L-1の第1の入力側に供給され、この場合、各メモリセル値には1つのXOR回路が対応付けられている。
読み出されたメモリセル値W[Pr]’は、逆検査ビット変換回路36の入力側および誤り検出回路40の入力側に関連付けられている。
誤り検出回路350~35L-1は、誤り信号E0~EL-1を提供し、誤り検出回路40は、誤り信号EPrを提供する。これら全ての誤り信号は、バイト訂正値生成器37に印加される。
逆検査ビット変換回路36の出力側は、場合によっては誤りのある検査ビットPr’をバイト訂正値生成器37に提供する。
誤り信号EPrが誤りを示す場合には、バイト訂正値生成器37は、誤りが示されたこと、また誤りの訂正が行われないことを決定することができる。
バイト訂正値生成器37は、誤り信号EPrが誤りを示す場合には、誤り符号C2に応じて、場合によっては誤りのあるメモリセル値W0’,W1’,...,WL-1’を訂正するためのバイト訂正値
を決定し、自身のL個の出力側に提供するように構成されている。L個の出力側はそれぞれ、XOR回路380~38L-1のうちの1つの第2の入力側に接続されている。
XOR回路380~38L-1の出力側は、逆変換回路39の対応する入力側に接続されている。この逆変換回路39は、自身の出力側において、訂正されたバイト
を提供する。誤りを誤り符号C2によって訂正できる場合、以下の関係が得られる。
図4:誤り信号の形成
以下では、個々の誤り信号E0~EL-1から、どのように組合せ誤り信号Eが決定されるかを説明する。
以下では、個々の誤り信号E0~EL-1から、どのように組合せ誤り信号Eが決定されるかを説明する。
図4は、図1に示したメモリ11および誤り検出回路130~13L-1を備えた例示的な回路装置を示す。既に図1に示したコンポーネントの他に、図4には、誤り検出回路41が示されており、そのL個の入力側には、誤り検出回路130~13L-1の誤り信号E0,E1,...,EL-1が印加される。誤り検出回路41は、自身の出力側に組合せ誤り信号Eを提供する。
誤り検出回路41は、以下のように構成されている。
-組合せ誤り信号Eが第1の値を取り、それによって、自身の入力側に印加される全ての誤り信号E0~EL-1が第1の値を取る場合には、誤りが誤り検出回路130~13L-1によって検出されなかったことを示す、または
-組合せ誤り信号Eが第2の値を取り、それによって、自身の入力側に印加される誤り信号E0~EL-1のうちの少なくとも1つが第2の値を取る場合には、少なくとも1つの誤りが誤り検出回路130~13L-1によって検出されたことを示す。
-組合せ誤り信号Eが第1の値を取り、それによって、自身の入力側に印加される全ての誤り信号E0~EL-1が第1の値を取る場合には、誤りが誤り検出回路130~13L-1によって検出されなかったことを示す、または
-組合せ誤り信号Eが第2の値を取り、それによって、自身の入力側に印加される誤り信号E0~EL-1のうちの少なくとも1つが第2の値を取る場合には、少なくとも1つの誤りが誤り検出回路130~13L-1によって検出されたことを示す。
誤り信号E0~EL-1に対して、第1の値としてバイナリ値0が使用され、第2の値としてバイナリ値1が使用される場合には、誤り検出回路41は、L個の入力側および1つの出力側を備えているOR回路(論理和回路とも記す)として実現することができる。この例においては、組合せ誤り信号Eの第1の値として、バイナリ値0がもたらされ、またその第2の値として、バイナリ値1がもたらされる。
誤り検出回路41は、自身の出力側に、2つより多くの異なる値を取ることができる組合せ誤り信号Eを出力することもできる。例えば、誤り検出回路41は以下のように構成されていてもよい。
-誤り信号E0~EL-1の第2の値の個数を決定し、誤り信号Eとして出力する、または
-誤り信号E0~EL-1のうちの所定数Sw個(ただし、所定数Swは1以上であってよい)より多い誤り信号が第2の値を取り、したがって、読み出されたメモリセル値W0’~WL-1’の、誤り検出回路41によってそれぞれ検査されたバイトにおける誤りを示す場合には、バイナリ値1を出力する。
-誤り信号E0~EL-1の第2の値の個数を決定し、誤り信号Eとして出力する、または
-誤り信号E0~EL-1のうちの所定数Sw個(ただし、所定数Swは1以上であってよい)より多い誤り信号が第2の値を取り、したがって、読み出されたメモリセル値W0’~WL-1’の、誤り検出回路41によってそれぞれ検査されたバイトにおける誤りを示す場合には、バイナリ値1を出力する。
特に誤り検出回路41として、自身の入力側に印加される誤り信号に依存して組合せ誤り信号Eを提供するものであれば、いずれの回路も使用することができる。とりわけ、誤り検出回路41の入力側における誤り信号は、メモリセル値のバイト(すなわち、グループ)における誤りの誤り信号として決定されている。既に説明したように、ここでは各バイトが少なくとも2つのビットを含んでいる。
この例では、バイトX0~XL-1がそれぞれ同じ個数のμ個のデータビットを有する。また例示的に、バイトW0~WL-1は、それぞれ同じ個数のv個のメモリセル値を有する。メモリセル値は例示的にバイナリである。
さらに、例示的に、ブロック誤り符号CF0~CFL-1に対して、同じブロック誤り符号CFが使用され、その結果、バイトX0~XL-1それぞれを、その都度、機能的に同じ変換によって、メモリセル値のバイトに変換することができる。この意味において、図5aは、機能的に同じ変換回路510~51L-1を示している。つまり、バイトX0~XL-1それぞれに関して、印加されたμ個のビットが、それぞれv個のメモリセル値(ここでは例示的にバイナリのメモリセル値)を有するそれぞれ1つのバイトW0~WL-1に変換される。
メモリセル値の読み出されたバイトW’も、符号語の読み出されたバイトX’も、誤りを有する可能性がある。それらの誤りは、例えば、符号語が存在しないことによって検出される。
逆変換回路25は、機能的に同じ逆変換回路520~52L-1を有している。読み出された(場合によっては誤りのある)バイトW0’~WL-1’それぞれに関して、印加されたv個のビットが、場合によっては誤りのある符号語のそれぞれμ個のビットを有する、読み出されたバイトのそれぞれ1つのバイトX0’~XL-1’に変換される。
例:3-out-of-6符号:
例として、それぞれμ=4個のビットを有する符号語のバイトX0~XL-1およびそれぞれv=6(バイナリ)個のメモリセル値を有するバイトW0~WL-1を考察する。ブロック誤り符号CFとして、16個の6ビット語の部分集合が使用され、この場合、それらの語はそれぞれ、1と0とを3つずつ有する。
例として、それぞれμ=4個のビットを有する符号語のバイトX0~XL-1およびそれぞれv=6(バイナリ)個のメモリセル値を有するバイトW0~WL-1を考察する。ブロック誤り符号CFとして、16個の6ビット語の部分集合が使用され、この場合、それらの語はそれぞれ、1と0とを3つずつ有する。
この例において使用されるブロック誤り符号CFは、それら20個の考えられる符号語のうちの16個だけを有する部分集合である。
下記の表1は、バイトX0~XL-1の4個のビットの16個の考えられる割り当ての、6個のビット・メモリセル・バイトW0~WL-1の全部で20個の考えられる符号語のうちの16個への例示的な変換Tを示し、この変換によって、ブロック誤り符号CFの16個の符号語が得られる。4個のデータビットの16個の割り当てはそれぞれ、ブロック誤り符号CFの16個の符号語のうちの1つに可逆的かつ一義的に対応付けられている。ブロック誤り符号CFの符号語は、3-out-of-6符号の符号語であり、メモリセル値のバイトを形成する。
表1によって表される変換Tは、以下の特性を有している。つまり、バイトX0~XL-1のうちの1つのビットx1~x4が、メモリセル値のバイトW0~WL-1のうちの1つのメモリセル値w1~w6に変換されると、反転されたビット
も反転されたメモリセル値
に変換される。
この例においては、メモリから読み出されたバイトW0’~WL-1’それぞれが、場合によっては誤りのある6個のビット
を有しており、また場合によっては誤りのある変換されたバイトX0’~XL-1’それぞれが、場合によっては誤りのある4個のビット
を有することを言及しておく。
下記の表2は、(バイナリの)メモリセル値
の読み出されたバイト毎の、場合によっては誤りのあるビット
のバイトへの考えられる逆変換T-1を表す。ここで、表2は、ビット
の全部で64個の考えられる割り当てのうちの16個を抜粋したものに過ぎないことを言及しておく。ビット
の表2に示した全ての割り当ては符号語である。ビット
の残りの64-16=48個の割り当て(図示せず)は符号語ではない。それら48個の割り当てに関して、ビット
はそれぞれ0である。
メモリセル値
の表2には記載していない値に関しては、ビット
の所属の値を、逆変換回路T-1の合成のために任意に設定することができる。例えば、それらの値を不定値(「冗長(don’t-care)」値とも称される)として、合成ツールによる最適化の際に規定することも可能である。例えば、それらの値を0にセットすることも可能である。
図6:ブロック誤り符号のための誤り検出回路
図6は、上記の例に従い、場合によっては誤りのある6個のメモリセル値
のバイトW1’のための、例示的な誤り検出回路61を示す。ここでは、ブロック誤り符号CFが、16個の符号語を有する3-out-of-6符号である。
図6は、上記の例に従い、場合によっては誤りのある6個のメモリセル値
誤り検出回路61の入力側には、メモリセル値W1’が印加される。誤り検出回路61は、例示的に、自身の入力側にブロック誤り符号CFの符号語が印加された場合には、誤りは存在しないことを示す誤り信号E1=0を出力するように構成されている。誤り検出回路61の入力側に、ブロック誤り符号CFの符号語が印加されない場合には、誤り検出回路61は、誤り信号E1=1を出力し、この誤り信号E1に基づき、誤りの存在が示される。
表3は、誤り信号E1が0である(ブール関数のオフセット)場合のメモリセル値
の16個の割り当てを示す。表3には記載していない、メモリセル値の他の全ての割り当てに関しては、誤り信号E1は1である。つまりこのことは、ブール関数のオンセットに相当する(このオンセットは、表3には示していない)。
表3に従い、誤り検出回路61は、
-ブロック誤り符号CFの16個の符号語のうちの1つが、符号語ではない6ビット語に改ざんされた場合、または
-ブロック誤り符号CFの16個の符号語のうちの1つが、それぞれがブロック誤り符号の符号語ではない、4個の3-out-of-6語のうちの1つに改ざんされた場合には、
誤りを示す。
-ブロック誤り符号CFの16個の符号語のうちの1つが、符号語ではない6ビット語に改ざんされた場合、または
-ブロック誤り符号CFの16個の符号語のうちの1つが、それぞれがブロック誤り符号の符号語ではない、4個の3-out-of-6語のうちの1つに改ざんされた場合には、
誤りを示す。
図7:1ビット誤りのための誤り検出回路
図7は、バイトW1’のビットにおける奇数の全てのビット誤りを検出する例示的な誤り検出回路71を示す。誤り検出回路71は、このために反転XOR回路を含んでいるので、誤り検出回路71の出力側に印加される誤り信号
に対しては、以下の関係が成り立つ。
図7は、バイトW1’のビットにおける奇数の全てのビット誤りを検出する例示的な誤り検出回路71を示す。誤り検出回路71は、このために反転XOR回路を含んでいるので、誤り検出回路71の出力側に印加される誤り信号
ここで「+」はモジュロ2加算を表す。
表3に示した、メモリセル値
の割り当てに関して、またそれらのメモリセル値における奇数個のビット誤りに関して、誤り信号E1および誤り信号
は一致する。これに対して、3-out-of-6符号の符号語をその3-out-of-6符号の符号語ではないビット組合せに改ざんする偶数個のビット誤りに関しては、以下の関係が成り立つ。
誤り検出回路71は、有利には、(ほぼ)1ビット誤りしか生じない場合に適用することができる。
図8:訂正が可能であるか否かの検査
図8は、誤り訂正を検査するための例示的な回路装置を示す。特に、この回路装置でもって、訂正値
を決定するためのバイト訂正値生成器26が正しく機能するか否かを検査することができる。
図8は、誤り訂正を検査するための例示的な回路装置を示す。特に、この回路装置でもって、訂正値
このために、図8に示した回路装置は、複数L個のNOR回路(否定論理和回路とも記す)810~81L-1と、複数のAND回路820~82L-1と、1つのOR回路83と、を有している。
以下では、AND結合が、記号「∧」によっても略記される。相応に、OR結合が記号「∨」によって略記される。
各バイト訂正値
は、所属のNOR回路810~81L-1の入力側に供給される。このNOR回路810~81L-1の出力側は、所属のAND回路820~82L-1の第1の入力側に接続されている。誤り信号E0~EL-1は、それぞれ1つずつ、AND回路820~82L-1の第2の入力側に印加される。AND回路820~82L-1の出力側は、OR回路83の入力側に接続されている。OR回路83の出力側には、組合せ誤り信号Eが供給される。
誤り信号E0,E1,...,EL-1は、図2bに示した誤り検出回路240~24L-1の誤り信号である。
例えば、値E0=1を有する誤り信号E0が、バイトX0’のデータビットはブロック誤り符号CF0の符号語ではないことを示す場合には、誤り訂正を成功させるためには、バイトX0’がバイト訂正値
でもって訂正されなければならない。訂正は、訂正値生成器26がバイト訂正値
を提供し、それによってXOR回路270が訂正されたバイト値
を提供する場合にのみ成功すると考えられる。発生した誤りを誤り符号C1によって訂正できる場合には、以下の関係が成り立つ。
誤り信号に関してE0=1が成り立ち、かつバイト訂正値に関して
が成り立つ場合には、X0’における誤りが誤り検出回路240によって検出され、またバイト訂正値生成器26がX0’に対して、訂正信号
を生成する。この場合、AND回路820は、自身の出力側に値0を供給する。
誤り信号に関してE0=1が成り立ち、かつバイト訂正値に関して
が成り立つ場合には、X0’における誤りが誤り検出回路240によって検出され、またバイト訂正値生成器26がX0’に対して、訂正信号
を生成するので、バイトX0’は、誤りがあるにもかかわらず、訂正されない。この場合、誤りは確かに検出されるが、しかしながら訂正は実現されない。AND回路820は、自身の出力側に値1を供給する。組合せ誤り信号Eは、値E=1を取る。これによって、値1を有する組合せ誤り信号は、訂正に誤りが存在すること、もしくはバイトX0’~XL-1’のうちの少なくとも1つの訂正が不可能であることを示す。考えられる1つの原因として、バイト訂正値生成器26に誤りがある、かつ/または誤り符号C1を使用して訂正できない誤りが存在することが挙げられる。
誤りが誤り検出回路240によって検出されず、かつ誤り信号がE1=0である場合には、AND回路820の出力側にも、値0が印加される。
したがって、OR回路83が、自身のL個全ての入力側に値0が印加される場合にのみ、自身の出力側に組合せ誤り信号Eに対して値0を出力する。OR回路83が自身の出力側に値1を供給する場合、このことは、誤り検出回路240~24L-1のうちの1つによって、バイトX0’~XL-1’のうちの少なくとも1つに誤りがあることが検出されたこと、またそのバイトをバイト訂正値生成器26によって訂正できないことを意味している。これによって、例えば、バイト訂正値生成器26の機能を実行中の動作において検査することができる。
この説明は、バイト訂正値生成器37についても同様に適用することができる。
リード・ソロモン符号
以下では、例としてリード・ソロモン符号を使用する。
以下では、例としてリード・ソロモン符号を使用する。
1バイト誤り訂正リード・ソロモン符号を、例えば[1]に記載されているように、H行列
ただし、n=2m-1、によって表すことができ、この場合
かつ
が成り立つ。この場合、αiは、例えばべき表現でのガロア体GF(2r)の元である。αは、ガロア体の生成元であり、またここでは、ガロア体GF(2r)の原始元として選択されている。式(5)においては、ガロア体の1元がα0で表されている。ガロア体の1元を、1で表すこともできる。
式(5)に従ったH行列によって表されるリード・ソロモン符号は、バイト位置が既知でない1バイト誤り、または2つの既知の誤りのあるバイト位置における2バイト誤りもしくは2つのグループ誤りを訂正することができる。
αの累乗は、モジュロ2r-1と解することができ、また累乗iは、値0,1,...,2r-2を取ることができる。
1つの実施例において、r=4とし、それによって、ガロア体は24=16個の元から成る。αiの累乗は、モジュロ15と解することができ、また式(5)に従うH行列は、24-1=15個の列を有する。1つの列はそれぞれ4ビット・バイトに相当する。誤り符号C1の符号語x=x1,...,xk(ただし、k=60)のデータビットは、それぞれ4個のビットを有する15個のバイトX0,X1,...,X14を形成する。したがって、以下の関係が成り立つ。
誤りがない場合には、x=X0,...,X14は、リード・ソロモン符号の符号語であるので、誤りシンドロームs(ただし、s=[s1,s2]T)に対して
が成り立ち、ここでs1は、誤りシンドロームsの第1の部分シンドロームとして表され、またs2は、誤りシンドロームsの第2の部分シンドロームとして表される。
あるベクトルが右から行列と乗算される場合には、これは列ベクトルと解することができる。あるベクトルに関して、特にそれが列ベクトルであることが強調される場合には、このベクトルを転置ベクトルと称することができる。あるベクトルが左から行列と乗算される場合には、これは行ベクトルと解することができる。
バイトX0~X14を、ガロア体GF(24)の元として、そのベクトル表現で4ビット・ベクトルと表すことができる。式(6)および式(7)に従い部分シンドロームs1およびs2を計算するために、それらのバイトを多項式表現またはべき表現で使用することができる。
ガロア体GF(24)の元の種々の表現、およびガロア体上の乗算ならびに加算のためのそれらの元の使用は、例えば[2]に記載されている。
ここで、4ビット・バイトe0,...,e14は、バイト位置0~14のバイト訂正値を表す。
1バイト誤りの場合には、誤りのあるバイト位置iおよびバイト訂正値eiを、式(10)および(11)に応じて、2つの部分シンドロームから決定することができる。
バイト訂正値eiは、第1のシンドローム成分s1と同じであり、またべき表現αiの誤りのあるバイト位置iを、例えば、式
の解yとして決定することができる。2つの式(10)および(11)からは、2つの未知数αiおよびeiを決定することができる。
2バイト誤りの場合には、2つのバイト訂正値eiおよびejと、2つの誤りのあるバイト位置iおよびjとを、例えばべき表現αiおよびαjで2つの式(12)および(13)から決定することは不可能である。何故ならば、2つだけの式に対して4つの未知数が存在するからである。
しかしながら、誤りのあるバイト位置iおよびjが既知であり、したがってべき表現αiおよびαjが既知である場合には、対応するバイト訂正値eiおよびejを2つの式(12)および(13)を使用して決定することができる。誤りのあるバイト位置が既知であり、さらには対応するバイト訂正値を決定できる場合、これはグループ誤りに相当する。
例えば、図1に示した誤り検出回路140~14L-1のブロック誤り信号によって、誤りのあるバイト位置を検出することができる。誤りのある例えば2つのバイト位置iおよびjの既知の誤りのあるバイト位置でもって、バイト訂正値eiおよびejを既に2つの式(12)および(13)によって決定することができる。この例において、誤りシンドロームs1およびs2は、それぞれ4個のビットしか有しておらず、したがって2個のバイト、全部で8個のビットが存在する。
これと同様にして式(15)が得られる。
和Σの逆数Σ-1を使用して、バイト位置iにおけるバイト訂正値eiに対しては、バイト位置iにおける1バイト誤りについても、バイト位置iおよびjにおける2バイト誤りについても
が成り立つので、バイト位置iにおけるバイト誤りの場合には、そのバイト位置iにおける1バイト誤りまたはそのバイト位置iおよび他のバイト位置における2バイト誤りに基づいて、バイト訂正値eiは式(17)に従い、部分シンドロームs1ならびにs2、Σ-1の値および誤り位置iによって、べき表現αiで決定されている。
3つのグループ誤り
誤りのある3つのバイト位置が既知である3つのバイト誤りを訂正するためのリード・ソロモン符号に対しては、H行列
ただしn=2m-1、が利用され、これは例えば、[Fujiwara,E.:「Code Design for Dependable Systems」,Wiley,2006,65頁]にリード・ソロモン符号のH行列に関する一般的な形態も含めて説明されている。
誤りのある3つのバイト位置が既知である3つのバイト誤りを訂正するためのリード・ソロモン符号に対しては、H行列
H行列における列が式(18)に従い削除される場合には、これを短縮された符号と称することができる。使用される符号の長さを必要な語幅に適合させるために、そのように短縮された符号を使用することができる。
[1]においては1で表されている、ガロア体の1元は、式(18)においてα0で表されている。
誤りのあるバイト位置が既知であるバイト誤りを、既に説明したように、グループ誤りと称することができる。
このことは式(24)にも当てはまる。他の2つの式(22)および(23)を相応に導き出すことができる。
以下では、べき表現αi,αj,αkを有する3つのバイト位置i,j,kに誤りがある場合を考察する。
したがって、式(36)に従い、k番目のバイトに対するバイト訂正値ekをシンドローム成分s1,s2,s3、ΣならびにΠの値によって、および決定すべきバイト誤り位置kによって決定することができる。誤りのあるバイト位置iおよびjは、k番目のバイトに対するバイト訂正値ekの決定には必要ない。
したがって、例えば中央で決定されて提供される、シンドローム成分s1,s2,s3の値、および値ΣならびにΠを用いて、局所的に、考えられる各バイト誤り位置kに対して相応のバイト訂正値を決定し、相応のバイト誤り位置信号の値に基づいて、そのように決定されたバイト訂正値ekが実際に誤り訂正使用されるべきか否かを決定することができる。バイト(例えばビットのグループ)のバイト誤り位置信号は、その場合、このバイトに関してグループ誤りが存在するか(または存在しないか)を示す。
3つのグループ誤りにおける1つのグループ誤りの訂正
図9aは、誤りのあるk番目のバイトを訂正するためのバイト訂正値ekを決定するための例示的な回路装置を示す。この回路装置でもって、グループ誤りが全部で3つ存在する場合に、1つのグループ誤りが訂正される。
図9aは、誤りのあるk番目のバイトを訂正するためのバイト訂正値ekを決定するための例示的な回路装置を示す。この回路装置でもって、グループ誤りが全部で3つ存在する場合に、1つのグループ誤りが訂正される。
例示的に、i番目、j番目およびk番目のバイトに誤りがある。したがって、誤り信号Ei=Ej=Ek=1は、3つのグループ誤りが存在することを示す。この例では、その他の誤り信号は0である。つまり別のグループ誤りは存在しない。例として、ガロア体GF(24)を考察する。
図9aに示した装置は、
-それぞれが第1の4ビット幅の入力側、第2の4ビット幅の入力側および4ビット幅の出力側を1つずつ備えた、4つの定数乗算器91、94、97および99、
-それぞれが第1の4ビット幅の入力側、第2の4ビット幅の入力側および4ビット幅の出力側を1つずつ備えた、3つのXOR回路92、95、98、
-4ビット幅の入力側および4ビット幅の出力側を1つずつ備えた、ガロア体GF(24)上の反転器96、
-第1の4ビット幅の入力側、第2の4ビット幅の入力側および4ビット幅の出力側を1つずつ備えた、ガロア体乗算器93、および
-値s2、Π、Π×s1、Σ、Σ×s2が印加される、それぞれ4ビット幅の5つの入力側910、911、912、913、914、
を含んでいる。
-それぞれが第1の4ビット幅の入力側、第2の4ビット幅の入力側および4ビット幅の出力側を1つずつ備えた、4つの定数乗算器91、94、97および99、
-それぞれが第1の4ビット幅の入力側、第2の4ビット幅の入力側および4ビット幅の出力側を1つずつ備えた、3つのXOR回路92、95、98、
-4ビット幅の入力側および4ビット幅の出力側を1つずつ備えた、ガロア体GF(24)上の反転器96、
-第1の4ビット幅の入力側、第2の4ビット幅の入力側および4ビット幅の出力側を1つずつ備えた、ガロア体乗算器93、および
-値s2、Π、Π×s1、Σ、Σ×s2が印加される、それぞれ4ビット幅の5つの入力側910、911、912、913、914、
を含んでいる。
入力側912は、定数乗算器91の第1の入力側に接続されており、この定数乗算器91の第2の入力側には値α-kが印加され、また定数乗算器91の出力側は、XOR回路92の第1の入力側に案内されている。
入力側910は、定数乗算器94の第1の入力側に接続されており、この定数乗算器94の第2の入力側には値αkが印加され、また定数乗算器94の出力側は、XOR回路95の第1の入力側に接続されている。
入力側914は、XOR回路95の第2の入力側に接続されており、このXOR回路95の出力側は、XOR回路92の第2の入力側に接続されている。XOR回路92の出力側は、ガロア体乗算器93の第1の入力側に接続されている。
入力側913は、定数乗算器97の第1の入力側に接続されており、この定数乗算器97の第2の入力側には値αkが印加され、また定数乗算器97の出力側は、XOR回路98の第1の入力側に接続されている。
入力側911は、定数乗算器99の第1の入力側に接続されており、この定数乗算器99の第2の入力側には値α-kが印加され、また定数乗算器99の出力側は、XOR回路98の第2の入力側に接続されている。XOR回路98の出力側は、反転器96の入力側に接続されている。
反転器96の出力側は、ガロア体乗算器93の第2の入力側に接続されており、ガロア体乗算器93の出力側は、バイト訂正値ekを供給する。
回路入力側910、911、912、913および914に印加される値s2、Π、Π×s1、Σ、Σ×s2を、種々のバイト訂正値e0,e1,...,ek,...を形成するために使用することができる。したがって、これらの値を1回だけ決定することは効率的であると考えられる。
図9bには、i番目、j番目およびk番目のバイトにおけるバイト誤りが誤り信号Ei=Ej=Ek=1によって示される場合の、積
を形成するための例示的な回路装置が示されている。すなわち、例示的に、上記における図9aについての例と同じ誤りが存在している。
図9bに示した装置は、
-誤り信号E0~E7を入力するための8ビット幅の入力側および4ビット幅の信号ESu0,7を出力するための4ビット幅の出力側を備えた部分回路915、
-誤り信号E8,E9,...,E14を入力するための7ビット幅の入力側および4ビット幅の信号ESu8,14を出力するための4ビット幅の出力側を備えた部分回路916、
-第1の4ビット幅の入力側、第2の4ビット幅の入力側、および値
を提供する4ビット幅の出力側を備えた加算器917、
-4ビット幅の入力側および値Π=αi×αj×αkを出力するための4ビット幅の出力側を備えた組合せ回路918、
を含んでいる。
-誤り信号E0~E7を入力するための8ビット幅の入力側および4ビット幅の信号ESu0,7を出力するための4ビット幅の出力側を備えた部分回路915、
-誤り信号E8,E9,...,E14を入力するための7ビット幅の入力側および4ビット幅の信号ESu8,14を出力するための4ビット幅の出力側を備えた部分回路916、
-第1の4ビット幅の入力側、第2の4ビット幅の入力側、および値
-4ビット幅の入力側および値Π=αi×αj×αkを出力するための4ビット幅の出力側を備えた組合せ回路918、
を含んでいる。
部分回路915の出力側は、加算器917の第1の入力側に接続されている。部分回路916の出力側は、加算器917の第2の入力側に接続されている。加算器917の出力側は、組合せ回路918の入力側に接続されている。
加算器917は、モジュロ15加算を実施する。例えば、この加算器917を、4ビット加算器として、4番目の加算ステージの桁上げキャリービットを、第1の加算ステージの入力キャリービットとなるように実装することができる。加算器917は、いわゆる循環桁上げ加算器として形成することができる。
式(37)によって、バイナリの各8個組E0,E1,...,E7には、4ビット値ないし4個組ESu0,7が対応付けられ、この対応付けをテーブルとして表すことができ、また組合せ回路として、例えば統合ツールを用いて作成することができる。
式(38)によって、バイナリの各7個組E8,E9,...,E14には、4ビット値ないし4個組ESu8,14が対応付けられ、この対応付けをテーブルとして表すことができ、また組合せ回路として、例えば統合ツールを用いて行うことができる。
加算器917は、自身の出力側に、値
を提供する。誤り信号に関してEi=Ej=Ek=1かつEl=0(ただし、l≠i,j,k)が成り立つ場合には、加算器917の出力側には、値
が印加され、この値は
の累乗に相当する。
図10:1つのグループ誤りまたは2つのグループ誤りの訂正
図10は、誤りのある1つのバイト位置または誤りのある2つのバイト位置が既知であり、したがって1つのグループ誤りまたは2つのグループ誤りが生じているという前提のもとで、任意の、場合によっては誤りのあるl番目のバイトに対するバイト訂正値を決定する例示的な回路装置を示す。誤りのある少なくとも1つのバイト位置は、ここでは、誤り信号の値によって既知である。
図10は、誤りのある1つのバイト位置または誤りのある2つのバイト位置が既知であり、したがって1つのグループ誤りまたは2つのグループ誤りが生じているという前提のもとで、任意の、場合によっては誤りのあるl番目のバイトに対するバイト訂正値を決定する例示的な回路装置を示す。誤りのある少なくとも1つのバイト位置は、ここでは、誤り信号の値によって既知である。
訂正すべき各バイトに対して、バイト訂正値は2つの値
を使用して求められ、それらの値はそれぞれ(例えば中央で)一度だけ決定されればよく、また全てのバイトの訂正に使用することができる。これらの値の形成は、ガロア体乗算器の形態の比較的高いハードウェアコストを必要とする。有利には、異なるバイト位置における全てのバイト訂正のために、全部で2つのガロア体乗算器だけを使用すればよい。
異なるバイト位置に関する異なるバイト訂正値は、単に、各バイト位置に対応する定数乗算器を使用することで得られ、この定数乗算器は、ガロア体乗算器よりも低いハードウェアコストで実現することができる(l番目のバイトに対して、定数乗算器102に基づいてαlとの乗算が実施される)。
また1つの利点として、同じ回路を、バイト誤り位置が既知である1バイト誤りに対しても、バイト誤り位置が既知である2バイト誤りに対しても利用できることが挙げられる。したがって、1つまたは2つのグループ誤りが訂正される。既に説明したように、1つのグループ誤りは、バイト位置が既知であり、また訂正値(すなわち、誤りのあるバイト位置におけるビットの訂正の訂正値)が決定されるべきバイト誤りである。
図10とは異なり、図9aによる3つのグループ誤りの訂正は、訂正すべきバイト位置毎に1つのガロア体乗算器93を必要とする。
図10は、場合によっては誤りのあるl番目のデータバイトXl’を訂正するバイト訂正値elを決定するための式(17)を基礎とする例示的な実現形態を示す。この例では、1つのデータバイトが4つのビットを含んでおり、またガロア体はGF(24)である。図10には、定数乗算器102、XOR回路103およびAND回路104を備えたバイト訂正値生成器101が含まれている。さらに図10には、XOR回路105が示されている。
入力線106には、4ビット幅の信号s1+s2×Σ-1が印加される。入力線106は、XOR回路103の第1の4ビット幅の入力側に接続されている。
入力線107には、4ビット幅の信号s1×Σ-1が印加される。入力線107は、定数乗算器102の第1の入力側に接続されている。定数乗算器102の第2の入力側には、定数αlが印加される。
したがって、定数乗算器102の4ビット幅の出力側には、値
が提供される。定数乗算器102の出力側は、XOR回路103の第2の入力側に接続されている。XOR回路103の4ビット幅の出力側には、信号
が提供される。
XOR回路103の出力側は、AND回路104の第1の4ビット幅の入力側に接続されている。AND回路104の第2の入力側には、誤り信号Elが印加される。AND回路104の4ビット幅の出力側には、場合によっては誤りのあるl番目のバイトXl’を訂正するためのバイト訂正値elが提供され、ここでは、次式が成り立つ。
AND回路104の出力側は、XOR回路105の第1の4ビット幅の入力側に接続されている。XOR回路105の第2の4ビット幅の入力側には、訂正すべきバイトXl’が印加される。XOR回路105の4ビット幅の出力側には、訂正されたl番目のバイト
が出力される。
誤り信号Elが0である場合には、l番目のバイトの訂正は行われない。
XOR回路は、自身の入力側にそれぞれ印加された4ビット幅の入力信号の成分毎のXOR和を形成する。
AND回路104は、自身の第1の入力側に印加された4つのバイナリ値と誤り信号Elとの成分毎のAND結合を実現する。誤り信号Elが0である場合には、AND回路104は自身の4ビット幅の出力側にその都度値0を出力する。誤り信号Elが1である場合には、AND回路104は、自身の第1の入力側に印加された値を、自身の4ビット幅の出力側に出力する。
バイト訂正値生成器101は、信号s1×Σ-1と定数αlとのガロア体乗算を実現する。そのようなガロア体乗算は、XORゲートを使用した線形回路を用いて実現することができ、これを下記においてさらに詳細に説明する。
したがって、バイト訂正値生成器101は、l番目のバイトに対するバイト訂正の機能を提供する。バイト訂正値生成器は、誤り信号El=1がl番目のバイトに対して、すなわちl番目のバイト位置に対して誤りを示す場合には、バイト訂正値elを自身の出力側に提供する。誤り信号Elが0である場合には、バイト訂正値elは0である。
入力すべき信号s1+s2×Σ-1およびs1×Σ-1は、一度だけ決定されればよく、また複数のバイト訂正値生成器に対して、したがって場合によっては訂正する必要がある種々のバイトに対して使用することができる。
また1つの利点として、誤りのある1つのバイトまたは誤りのある2つのバイトの誤りのある少なくとも1つのバイト位置が誤り信号の値に基づき既知である場合には、回路装置を、1バイト誤りを訂正するためにも、2バイト誤りを訂正するためにも使用することができる。
したがって、場合によっては誤りのある種々のバイトに対して、バイト訂正値を効率的に並列に決定することができる。
この関係において、並列とは、特に、バイト訂正値の決定および/または提供を少なくとも部分的に時間的に重畳して、特に実質的に同時に行えることを意味している。したがって、1つの有利なオプションでは、図10において例示的にl番目のバイトについて説明したように、バイト毎に、訂正のために1つの定数乗算器、2つのXOR回路および1つのAND回路だけが必要とされる。
特に、複数のバイト訂正値生成器を、訂正すべきバイトに関して並列に実装することができる。特に、バイト訂正値を、少なくとも1つのタスク中に、例えば共通のタスクのシーケンス中に、または共通のタスクの一部のシーケンス中に(すなわち、時間的に重畳して)決定することができる。少なくとも部分的かつ時間的に重畳することによって、並列な処理が実現される。ここで、並列に決定するという概念には、特に部分的に並列な処理(すなわち、例えば部分的に同時の処理)も含まれることを言及しておく。
誤りが存在しない場合には、全ての誤り信号E0,...,E14は0であり、かつ全てのバイト訂正値は0であるので、誤り訂正は行われない。
図11:訂正値生成器の並列の実現
図11は、15個のバイト訂正値生成器を並列に実現するための例示的な回路装置を示す。したがって、場合によっては誤りのある15個のバイトX0’X1’,...,X14’を訂正することができる。各バイトは、例示的に4の語幅を有する。
図11は、15個のバイト訂正値生成器を並列に実現するための例示的な回路装置を示す。したがって、場合によっては誤りのある15個のバイトX0’X1’,...,X14’を訂正することができる。各バイトは、例示的に4の語幅を有する。
15個のバイトX0’,X1’,...,X14’それぞれに対して、図11には、バイト訂正値e0~e14を形成するためのバイト訂正値生成器BK0111、BK1112~BK14113が示されている。バイト訂正値e0~e14は、読み出された、場合によっては誤りのあるバイトX0’~X14’と、15個のXOR回路114、115、116において成分毎に結合され、訂正されたバイト
となる。
ここで、それぞれ15個のバイト訂正値生成器および15個のXOR回路が設けられているが、見やすくするために、それらのうちそれぞれ3つが図示されていることを言及しておく。バイト訂正値生成器111~113を、図10に示したバイト訂正値生成器101に従い構成することができる。
図12:Σ-1の形成
図12は、Σ-1を決定するための例示的な回路装置を示し、ここでΣ-1は、例示として想定するガロア体GF(24)におけるΣの逆数である。
図12は、Σ-1を決定するための例示的な回路装置を示し、ここでΣ-1は、例示として想定するガロア体GF(24)におけるΣの逆数である。
図12には、組合せ回路121および反転器122が含まれている。
組合せ回路121は、自身の4ビット幅の出力側に、ここでは例示として表されたバイナリの誤り信号E0~E14に依存する、
による値Σを供給する。ここで、α0~α14は、それぞれのベクトル表現で4成分のバイナリベクトルである。
組合せ回路121の出力側は、反転器122の4ビット幅の入力側に接続されている。反転器122は、ガロア体GF(24)上の反転器である。反転器の4ビット幅の出力側には、
による4ビット幅の値Σ-1が提供される。ガロア体GF(24)上の反転器122を、4つの入力側および4つの出力側を備えた組合せ回路として実現することができる。
図13:Σの形成
図13は、XOR回路を用いて誤り信号E0~E14からΣを形成するための、図12に示した組合せ回路121の例示的な実現形態を示す。ここに図示した例は、やはりガロア体GF(24)に関する。
図13は、XOR回路を用いて誤り信号E0~E14からΣを形成するための、図12に示した組合せ回路121の例示的な実現形態を示す。ここに図示した例は、やはりガロア体GF(24)に関する。
図13の装置には4つの出力側が示されており、第1の出力側には信号Σ0が提供され、第2の出力側には信号Σ1が提供され、第3の出力側には信号Σ2が提供され、また第4の出力側には信号Σ3が提供される。
0≦i≦14とした場合の誤り信号Eiが1である場合には、1であるαiの成分は、式(40)において、Σの相応の成分に寄与する。0である成分αiは、Σの相応の成分に寄与しない。
例えば、誤り信号に関して、E0=1、ただしα0=[1000]Tが成り立つ場合には、誤り信号E0は、Σの第1の成分Σ0についてのXOR和に寄与する。したがって、E0が供給される入力側は第1の出力側に接続されている。誤り信号E0は、Σの第2の成分Σ1、第3の成分Σ2および第4の成分Σ3についてのXOR和に寄与しない。相応に、誤り信号E0が供給される線路は、それらの出力側には接続されていない。
例えば、誤り信号に関して、E5=1、ただしα5=[0110]Tが成り立つ場合には、誤り信号E5は、Σの第2の成分Σ1および第3の成分Σ2に関して寄与する。相応に、誤り信号E5が供給される線路は、XOR回路1325を介して、値Σ1をもたらす第2の出力側に接続されており、またXOR回路1335を介して、値Σ2をもたらす第3の出力側に接続されている。誤り信号E5は、Σの第1の成分Σ0および第4の成分Σ3についてのXOR和に寄与しない。相応に、誤り信号E5が供給される線路は、それらの出力側には接続されていない。
Σ0についての式(42)に従った誤り信号E0,E4,E7,E8,E10,E12,E13,E14のXOR結合は、それぞれが2つの入力側および1つの出力側を備えたXOR回路1314、1317、1318、13110、13112、13113、13114によって行われる。
Σ1についての式(43)に従った誤り信号E1,E4,E5,E7,E9,E10,E11,E12のXOR結合は、それぞれが2つの入力側および1つの出力側を備えたXOR回路1324、1325、1328、1329、13210、13211、13212によって行われる。
Σ2についての式(44)に従った誤り信号E2,E5,E6,E8,E10,E11,E12,E13のXOR結合は、それぞれが2つの入力側および1つの出力側を備えたXOR回路1335、1336、1338、13310、13311、13312、13313によって行われる。
Σ3についての式(45)に従った誤り信号E3,E6,E7,E9,E11,E12,E13,E14のXOR結合は、それぞれが2つの入力側および1つの出力側を備えたXOR回路1346、1347、1349、13411、13412、13413、13414によって行われる。
図14:バイト訂正信号の形成
以下では、誤りのあるバイト位置が既知である場合のバイト誤りの訂正(グループ誤り訂正)と、誤りのあるバイト位置が既知でない場合のバイト誤りの訂正(一般的なバイト誤りの訂正)との組合せを説明する。
以下では、誤りのあるバイト位置が既知である場合のバイト誤りの訂正(グループ誤り訂正)と、誤りのあるバイト位置が既知でない場合のバイト誤りの訂正(一般的なバイト誤りの訂正)との組合せを説明する。
誤りのあるバイト位置がグループ誤りによって既知である場合には、誤りのあるバイトに対するバイト訂正値を決定するだけで十分である。
誤りのあるバイト位置が既知でない場合には、バイト位置に誤りがあるか否かを検査することができ、またバイト位置に誤りがある場合には、バイト訂正値も決定することができる。
例示的に、2つのグループ誤りまたは1つのバイト誤りを訂正することができるリード・ソロモン符号が使用される。グループ誤りが検出されなかった場合には、バイト誤りが訂正される。
ここで使用する例においては、組合せ誤り信号Eが誤り信号E0~E14から形成される。組合せ誤り信号Eは、何らかの誤り信号がバイトのうちの1つに対してグループ誤りを示すか否かを示す。グループ誤りが示される場合には、1つのグループ誤りまたは2つのグループ誤りが訂正される。
誤り信号E0~E14のうちの1つによってグループ誤りが決定されなかったことが、組合せ誤り信号Eによって示される場合には、バイト誤り位置が決定されないまま誤り訂正が行われる。つまり、誤りが存在しない場合には、訂正は行われない。
1つの例によれば、ブロック誤り符号CF0~CF14と組み合わされた誤り符号C1によって、以下の誤りを訂正することができる。
-ブロック誤り符号によって検出された1つまたは2つのグループ誤りを以下のように訂正することができる。
図1による誤り検出回路130~13L-1(ただし、L=14)の誤り信号E0~E14が、1つのバイトの位置、または(それぞれが)1つのグループ誤りを有する2つのバイトの位置を決定する。
グループ誤りが決定されたバイト位置に対して、バイト訂正値(すなわち、誤りがあると識別された、該当するバイトに対する訂正値)の誤り符号C1を使用して決定される。特に、そのような誤りが、グループ誤りの事前に決定された位置において訂正される場合には有利である。
-誤り検出回路130~13L-1のうちの1つによってグループ誤りとして検出されなかった単一のバイト誤りも、誤り符号C1を使用して訂正することができる。
この場合には、誤り符号C1を用いて、誤りのあるバイトのバイト位置も、対応するバイト訂正値も決定され、また誤りが訂正される。
この場合には、誤り符号C1を用いて、誤りのあるバイトのバイト位置も、誤りのあるバイトに対するバイト訂正値も決定されなければならない。これによって、誤りのある1つのバイトまたは誤りのある2つのバイトの位置がグループ誤りとして決定された既述の場合とは異なり、単一のバイト誤りもこの誤り符号C1を用いて訂正することができる。
この際、誤り検出回路FE0~FE14の誤り信号E0~E14は誤りを示さない。考えられる1つの原因として、ブロック誤り符号の符号語がこのブロック誤り符号の別の符号語に改ざんされたことが挙げられる。例えば、ブロック誤り符号が3-out-of-6符号である場合には、決定された符号語がこの3-out-of-6符号の別の符号語に変化すると、誤り検出回路は誤りを確認することができない。
-ブロック誤り符号によって検出された1つまたは2つのグループ誤りを以下のように訂正することができる。
図1による誤り検出回路130~13L-1(ただし、L=14)の誤り信号E0~E14が、1つのバイトの位置、または(それぞれが)1つのグループ誤りを有する2つのバイトの位置を決定する。
グループ誤りが決定されたバイト位置に対して、バイト訂正値(すなわち、誤りがあると識別された、該当するバイトに対する訂正値)の誤り符号C1を使用して決定される。特に、そのような誤りが、グループ誤りの事前に決定された位置において訂正される場合には有利である。
-誤り検出回路130~13L-1のうちの1つによってグループ誤りとして検出されなかった単一のバイト誤りも、誤り符号C1を使用して訂正することができる。
この場合には、誤り符号C1を用いて、誤りのあるバイトのバイト位置も、対応するバイト訂正値も決定され、また誤りが訂正される。
この場合には、誤り符号C1を用いて、誤りのあるバイトのバイト位置も、誤りのあるバイトに対するバイト訂正値も決定されなければならない。これによって、誤りのある1つのバイトまたは誤りのある2つのバイトの位置がグループ誤りとして決定された既述の場合とは異なり、単一のバイト誤りもこの誤り符号C1を用いて訂正することができる。
この際、誤り検出回路FE0~FE14の誤り信号E0~E14は誤りを示さない。考えられる1つの原因として、ブロック誤り符号の符号語がこのブロック誤り符号の別の符号語に改ざんされたことが挙げられる。例えば、ブロック誤り符号が3-out-of-6符号である場合には、決定された符号語がこの3-out-of-6符号の別の符号語に変化すると、誤り検出回路は誤りを確認することができない。
ここで詳細に説明する例においては、組合せ誤り信号が誤り信号E0~E14のOR結合から形成され、誤り信号はそれぞれ、誤りがある場合には値1を取り、誤りが検出されなかった場合には値0を取る。
1つのグループ誤りが示される場合には、このグループ誤りは、誤り符号C1を用いて訂正される。2つのグループ誤りが示される場合には、それら2つのグループ誤りは、誤り符号C1に基づいて訂正される。
誤り信号E0~E14のいずれによってもグループ誤りが示されない場合には、組合せ誤り信号Eも誤りを示さない。この場合には、誤りが存在しないか、または少なくとも1つのバイト誤りが既知でない誤り位置に存在し、後者の場合には、ブロック誤り符号の符号語が、このブロック誤り符号の別の符号語に改ざんされている。
少なくとも1つのそのようなバイト誤りが存在する場合には、そのバイト誤りは、訂正が可能である限り、誤り符号C1を使用するだけで訂正される。説明したように、誤りのあるバイト位置も対応するバイト訂正値も、(ブロック誤り符号によって確かにグループ誤りは示されなかったので)誤り符号C1を用いるだけで決定される。
誤り検出回路FE0~FE14によって決定された誤り信号E0~E14、およびそれらの誤り信号E0~E14から導出された組合せ誤り信号Eは、単一のグループ誤りの訂正または2つのグループ誤りの訂正、もしくは1つのバイト誤りの訂正が、決定すべきバイト位置でもって行えるか否かを決定する。
ブロック符号の符号語を、同じブロック符号の非符号語に改ざんし、したがってグループ誤りとしてブロック誤り符号の誤り検出回路に基づいて検出することができる誤りが、ブロック誤り符号の符号語を同じブロック誤り符号の別の符号語に改ざんする誤りよりも多く発生する場合には、固定数の検査ビットを用いて、誤りのあるバイト位置が予め決定されていないバイト誤りよりも多くのグループ誤りを訂正することができる回路装置を使用することが有利であると考えられる。換言すれば、ブロック誤り符号を用いて検出された少なくとも1つのグループ誤りでは、誤り符号C1が、その誤り符号C1だけによって検出および訂正されなければならない(少なくとも1つの)バイト誤りが存在するにもかかわらずグループ誤りが検出されなかった場合よりも多くの数のバイト誤りを訂正できることは有利である。
誤り符号C1の比較的少ない数の検査ビットを用いることで、ここで説明する例では、したがって2つまでのグループ誤り、または1つのバイト誤りを、誤り位置が事前に既知でなくても訂正することができる。
下記において例示的に説明する、図14に示した回路装置においては、誤り検出回路130~13L-1によって決定された誤り信号E0~EL-1に依存して、いわゆるグループ誤りである第1の個数の誤りと、誤り検出回路130~13L-1によってグループ誤りとして検出することができない第2の個数の誤りと、が誤り符号C1を使用して訂正される。
オプションとして、2つより多くの誤り信号E0~E14が誤りを示すか否かを決定することができる。そのような場合には、少なくとも3つのグループ誤りが検出され、またこの例によれば、訂正できない誤りを示すことができる(ここで選択した例では、グループ誤りとして検出された2つまでのバイト誤り、またはグループ誤りとして検出されなかった場合には1つのバイト誤りが、誤り符号C1を用いて訂正される)。
基本的に、例、使用分野および選択されたブロック誤り符号ならび誤り符号に応じて、複数の検出されたグループ誤り、検出されなかったグループ誤りおよびバイト誤りの種々の組合せを検出する、かつ/または訂正することができる。
例えば、誤り符号C1に関して、誤り信号E0~EL-1を用いる回路装置を使用して、以下の訂正のうちの少なくとも1つが実現される。
-第1の個数までのグループ誤りの訂正、さらなるバイト誤りの訂正は行われない、
-第2の個数までのグループ誤りおよび第3の個数までのバイト誤りの訂正、この場合、第3の個数のバイト誤りに関してグループ誤りは示されない、
-グループ誤りが示されない第4の個数までのバイト誤りの訂正。
-第1の個数までのグループ誤りの訂正、さらなるバイト誤りの訂正は行われない、
-第2の個数までのグループ誤りおよび第3の個数までのバイト誤りの訂正、この場合、第3の個数のバイト誤りに関してグループ誤りは示されない、
-グループ誤りが示されない第4の個数までのバイト誤りの訂正。
図14は、場合によっては誤りのあるデータバイトXl’に対するバイト訂正信号を形成するための例示的な回路装置を示す。例示的に、式(5)によるH行列を用いたバイト誤り訂正符号が使用される。さらに例示的に、ガロア体GF(24)が想定される。
誤り信号Elが、l番目のバイトの誤りを示すことができ、またバイト訂正値生成器101に即した、図10において説明したバイト訂正値生成器KBlが、訂正すべきデータバイトXl’との成分毎のXOR結合によって
となるバイト訂正信号elを提供することによって、この誤りの訂正を行うことができる。
例示的に、El=1の場合にはl番目のバイトの誤りが示され、またEl=0の場合にはl番目のバイトの誤りが示されないことを想定する。
誤り信号に関してEl=1が成り立つ場合、組合せ誤り信号に関してもE=1が得られる。データバイトXlはここでは、例えばメモリセル値の3-out-of-6符号の符号語Wlにブロック誤り符号BFlを使用してコーディングされている4ビット・バイトである。誤り信号Elは、値1によって、3-out-of-6符号の符号語Wlが誤りによって、3-out-of-6符号の符号語ではないビット列Wl’に改ざんされたことを示す。
特に、1ビット誤りが存在し、バイトWl’が3つの1の代わりに1を2つしか有していない場合には、誤り信号El=1によって誤りが示される。
しかしながら、バイトWlが、ブロック誤り符号BClの符号語である誤りのあるバイトWl’に改ざんされることも考えられる。例えば、正しいバイトWl=111000が、誤りのあるバイトWl’=100101に改ざんされる可能性がある。つまり、これら2つのバイトはいずれもブロック誤り符号BClの符号語である。この場合、誤り信号Elは0であり、誤りは検出されない。メモリセル値の誤りのあるバイトWl’が、相応の変換回路によって、誤りのあるデータバイトXl’に変換される可能性がある。
誤り符号C1がバイト誤り訂正符号である場合には、場合によっては誤りのあるデータバイトXl’を、この誤り符号を使用して、誤り信号Elが0であるにもかかわらず訂正することができる。
バイト誤り位置が既知でない、場合によっては誤りのあるバイトXl’の訂正は、バイト誤り信号El=0であり、かつ別のバイト誤り信号が0でない場合には、誤り符号C1を使用して行うことができる。
組合せ誤り信号Eが式(46)によって決定されている場合には、組合せ誤り信号Eに関する値0は、誤り信号E0~E14のいずれも、メモリセル値のバイトのうちの1つにおける誤りを示さないことを示す。
図14に示した回路装置に基づいて、ブロック誤り符号CFlの相応のバイト誤り信号Elがメモリセル値のl番目の読み出されたバイトWl’におけるバイト誤りを示す場合には、l番目の誤りのあるデータバイトXl’における誤りを訂正することができる。この場合には、最大でも1つの別のバイト誤り信号がl番目のバイトとは異なるバイトにおける1つのバイト誤りを示すか、または別のブロック誤り符号の別のバイト誤り信号がバイト誤りを示さないことが考えられる。誤り符号C1を使用した誤りのあるバイトXl’の訂正に関して、ここでは、誤り信号Elの値によって、l番目のデータバイトにおいて誤りを訂正できることが既知である。このことは、グループ誤りの訂正に相当する。ここで例示的に使用するバイト誤り訂正符号でもって、1つまたは2つのグループ誤りを訂正することができる。
ブロック誤り符号CFlを用いて、l∈{0,...,L-1}の場合の誤り信号Elは、誤り検出回路FElによって決定されている(例えば、図1を参照されたい)。バイト訂正値elないしバイト訂正値el’は、誤り符号C1を使用して決定されている。誤り信号がEl=1である場合には、グループ誤りが存在し、また誤り符号C1は、この場合、バイト訂正値生成器101の出力側に提供されるバイト訂正値el≠0だけを決定する。誤り信号El=0である場合には、バイト訂正値生成器101は、バイト訂正値el=0を出力する。
誤り信号がEl=0である場合に、l+1番目のバイト位置にバイト誤りが存在するならば、誤りがない場合にはブロック誤り符号CFlの所定の符号語であるそのl+1番目のバイトは、このブロック誤り符号CFlの別の符号語に誤って改ざんされている。NOR回路144は値1を出力し、この値1は、組合せ誤り信号がE=0であることから、AND回路148を介して案内される。したがって、AND回路145は、自身の出力側に、バイト訂正値el’と同じ値s1を提供し、この値s1は、el=0であることから、XOR回路146の出力側において出力され、XOR回路147において、訂正すべきバイトXl’とXOR結合され、訂正されたバイト
となる。
さらに、l番目のデータバイトが誤ってXl’に改ざんされている場合、またブロック誤り符号のバイト誤り信号がバイト誤りを示さない場合には、誤り符号C1を使用して誤りを訂正できる場合には、誤りのあるデータバイトを訂正することができる。この場合には、図14に示した回路装置を用いて、誤りがl番目のバイト位置に存在していることが決定される。ここで例示的に使用するバイト誤り訂正誤り符号C1を用いて、決定すべきバイト位置におけるバイト誤りを訂正することができる。
バイト訂正値elを用いたl番目のデータバイトXl’の誤り訂正は、誤り信号Elが1である場合に行われる。したがって、組合せ誤り信号Eが0であり、かつ
が成り立つ場合には、バイト訂正値el’を用いて訂正が行われる。
図14には、
-2つの4ビット幅の入力側、誤り信号Elが印加される1つの1ビット幅の入力側およびバイト訂正値elを提供する1つの4ビット幅の出力側を備えたバイト訂正値生成器、
-4ビット幅の入力線1410~1413、
-1つの4ビット幅の第1の入力側、1つの1ビット幅の第2の入力側および4ビット幅の出力側を備えた定数乗算器142、
-それぞれが2つの4ビット幅の入力側および1つの4ビット幅の出力側を備えたXOR回路143、146および147、
-1つの4ビット幅の入力側および1つの1ビット幅の出力側を備えたNOR回路144、
-1つの4ビット幅の第1の入力側、1つの1ビット幅の第2の入力側および4ビット幅の出力側を備えたAND回路145、
-2つの1ビット幅の入力側および1つの1ビット幅の出力側を備えたAND回路148、
-1つの1ビット幅の入力側および1つの1ビット幅の出力側を備えた反転器149、
が含まれている。
-2つの4ビット幅の入力側、誤り信号Elが印加される1つの1ビット幅の入力側およびバイト訂正値elを提供する1つの4ビット幅の出力側を備えたバイト訂正値生成器、
-4ビット幅の入力線1410~1413、
-1つの4ビット幅の第1の入力側、1つの1ビット幅の第2の入力側および4ビット幅の出力側を備えた定数乗算器142、
-それぞれが2つの4ビット幅の入力側および1つの4ビット幅の出力側を備えたXOR回路143、146および147、
-1つの4ビット幅の入力側および1つの1ビット幅の出力側を備えたNOR回路144、
-1つの4ビット幅の第1の入力側、1つの1ビット幅の第2の入力側および4ビット幅の出力側を備えたAND回路145、
-2つの1ビット幅の入力側および1つの1ビット幅の出力側を備えたAND回路148、
-1つの1ビット幅の入力側および1つの1ビット幅の出力側を備えた反転器149、
が含まれている。
バイト訂正値生成器101は、例えば図10にも示されている。
誤り信号に関してEl=0が成り立つ場合には、4ビット幅のバイト訂正値elは0000である。
入力線1410~1413には、(記載した端子の順序で)4ビット幅の信号値:s1+s2×Σ-1、s1×Σ-1、s2およびs1が印加される。
バイト訂正値生成器101の2つの入力側は、入力線1410および1411に接続されている。
入力線1412は、XOR回路143の第1の入力側に接続されており、このXOR回路143の第2の入力側には、定数乗算器142の出力側が接続されている。定数乗算器142の第1の入力側は、入力線1413に接続されており、また定数乗算器142の第2の入力側には、定数αlが印加される。XOR回路143の出力側は、NOR回路144の入力側に接続されている。
NOR回路144は、自身の入力側に値0000が印加されると値1を出力し、また自身の入力側に0000ではない値が印加されると値0を出力する。
NOR回路144の出力側は、AND回路148の第1の入力側に接続されており、AND回路148の第2の入力側は、反転器149の出力側に接続されており、この反転器149の入力側には、組合せ誤り信号Eが印加される。
AND回路148の出力側は、AND回路145の1ビット幅の第2の入力側に接続されており、このAND回路145の4ビット幅の第1の入力側は、入力線1413に接続されている。AND回路145の出力側は、XOR回路146の第1の入力側に接続されている。XOR回路146の第2の入力側は、バイト訂正値生成器101の出力側に接続されている。
AND回路145は、自身の第2の入力側にバイナリ信号0が印加されると、自身の4ビット幅の出力側に値0000を出力するように構成されている。相応に、AND回路145は、自身の第2の入力側にバイナリ信号1が印加されると、自身の出力側に値s1を提供する。
XOR回路146の出力側は、XOR回路147の第1の入力側に接続されている。XOR回路147の第2の入力側には、場合によっては誤りのある、訂正すべきデータバイトXl’が印加される。XOR回路147の出力側には、訂正されたデータバイト
が出力される。
誤り信号El=1の値が、メモリセル値のl番目のバイトWl’の誤りを示す場合には、対応するl番目のデータバイトXl’の訂正を、バイト訂正値生成器101によって決定されたバイト訂正値elに基づいて行うことができる。この場合には、組合せ誤り信号はE=1であり、またAND回路145は値0000を出力する。メモリセル値のl番目のバイトに1つの誤りしか存在しないか、またはメモリセル値のl番目のバイトにおける誤りおよび別のバイトにおける誤りが存在する場合には、訂正された値
は、誤りのない値Xlと同じである。何故ならば、ここで例示的に使用する誤り符号C1は、誤りのあるバイト位置が既知である1つまたは2つのバイト誤り、換言すれば2つのグループ誤りを訂正することができるバイト訂正符号だからである。
誤り信号の値がEl=0である場合には、ブロック誤り符号CFlによって、l番目のバイトに誤りはないことが検出され、またバイト誤り訂正値elは0000である。
すなわち、組合せ誤り信号に関してE=0が成り立つ場合には、メモリセル値のバイトのいずれにおいても、対応するブロック誤り符号によって誤りは検出されていない。さらに、式(47)による条件が満たされている場合には、AND回路145の第2の1ビット幅の入力側には値1が印加されるので、AND回路145は、自身の出力側に値el’=s1を提供する。この場合には、データバイトXl’に誤りがあり、またメモリセル値の読み出されたバイトWl’はブロック誤り符号CFlの誤りのある符号語(すなわち、複数のビット誤りによって本来正しい符号語から生じているブロック誤り符号の符号語)であるので、誤りをブロック誤り符号CFlによって検出することはできない。XOR回路146は、値el’=s1を出力し、この値el’は、XOR回路147において訂正すべきデータバイトXl’と結合されて、
となる。この実施例では、使用されるデータビット誤り符号C1が、別の誤りが存在しない場合には、誤りのあるデータバイトXl’を誤りのない値Xlに訂正する1バイト誤り訂正符号である。
訂正すべきバイト位置0,...,14に関して、図14においてl(ただし、0≦l≦14)について説明した、場合によっては誤りのあるバイトX0’~X14’を訂正するための回路装置を並列に提供するか、または並列に実装することが可能であるので、必要とされるバイト訂正値の決定が種々のバイトに対して並列に実施される。「並列」と言う語句の解釈については、上記の説明を参照されたい。
誤り信号に関してEl=1が成り立ち、かつ別のバイトに関する誤り信号が0である場合には、l番目の回路装置は、自身の出力側にバイト訂正値el≠0000を提供し、その一方で、残りの全ての回路装置は、並列にバイト訂正値0000を提供する。
以下の関係、すなわち、
-誤り信号に関して、El=1、
-別の誤り信号に関して、EK=1、ただしl≠K、かつ
-他の全ての誤り信号は0である、
が成り立つ場合には、
-l番目の回路装置は、自身の出力側にバイト訂正値el≠0000を提供し、
-K番目の回路装置は、自身の出力側にバイト訂正値eK≠0000を提供し、
-これに対して、残りの他の全ての回路装置は、バイト訂正値0000を(並列に)提供する。
-誤り信号に関して、El=1、
-別の誤り信号に関して、EK=1、ただしl≠K、かつ
-他の全ての誤り信号は0である、
が成り立つ場合には、
-l番目の回路装置は、自身の出力側にバイト訂正値el≠0000を提供し、
-K番目の回路装置は、自身の出力側にバイト訂正値eK≠0000を提供し、
-これに対して、残りの他の全ての回路装置は、バイト訂正値0000を(並列に)提供する。
全ての誤り信号E0,...,E14が0であり、かつN番目のバイトXN’に1バイト誤りが存在する場合には、N番目の回路装置が自身の出力側にバイト訂正値eN’≠0000を提供し、その一方で、残りの全ての回路装置がバイト訂正値0000を並列に提供する。
この例では、例示的に、4ビットの語幅およびガロア体GF(24)を前提とした。これは、単に説明を目的として使用される例である。したがって、別の語幅および別のガロア体を利用することもできる。さらに、別の誤り符号、特に複数のバイト誤りを検出する、かつ/または訂正する誤り符号を使用することができる。
さらに例示的に、短縮されていない符号が誤り符号として使用された。したがって、短縮されていない符号のH行列の列が消去された短縮された符号を使用することもできる。
ガロア体
以下の例では、特に、ここでは例として挙げるガロア体GF(24)を参照する。
以下の例では、特に、ここでは例として挙げるガロア体GF(24)を参照する。
この例ではr=4であるガロア体GF(2r)に関して、以下では、ガロア体の幾つかの基本概念、例えば、ガロア体の元の種々の表示およびガロア体上での演算の幾つかの基本概念を説明する。例えば、この関係においては、[3]を参照されたい。この文献には、リードオンリメモリ(ROM)を使用したガロア体演算の実現形態が記載されている。
ガロア体GF(24)に関して、表4は、ガロア体の(24=)16個の元が、生成元αの累乗としてのべき表現、3次多項式としての多項式表現、および4つの成分を有するバイナリベクトルとしてのベクトル表現で示されている。モジュラ多項式として、多項式
が使用される。
例示的な原始モジュラ多項式の同伴行列の累乗としてのガロア体の元の表現は、例えば[4]から公知である。これによって、特別な適用事例においては、バイト誤り検出符号およびバイト誤り訂正符号のH行列およびG行列の有利な表現が実現される。
バイナリ係数を用いる全部で16個の3次多項式は、それぞれ、ガロア体GF(24)の1つの元を表す。それらは、表4の第2列において多項式としてzで記載されている。多項式の累乗z0、z1、z2、z3のバイナリ係数は、ベクトル表現の成分である。
表4の第1列は、生成元αの累乗α0~α14としての、ガロア体GF(24)における元のべき表現を示す。多項式表現の元0またはベクトル表現の0000については、べき表現での表現は存在しない。
つまり例えば、表5の4行目に応じて、「0001」および「1111」は、相互に逆元のベクトル表現である。表4によれば、0001のベクトル表現はα3であり、また1111のベクトル表現はα12であり、したがって、
が成り立つ。
表6は、ガロア体GF(24)の元のベクトル表現に関して、べき表現の元の累乗の値を示す。この対応付けは、関数LOGとして表される。表6によるべき表現の元の累乗に、対応するベクトル表現を対応付ける逆の対応付けは、関数EXPとして表される。
つまり、例えば、ベクトル表現の元0001には、α3がベクトル表現0001を有することから、関数LOG(0001)=3によって値3が対応付けられている。相応に、LOG(0001)=3なので、EXP(3)=0001が成り立つ。
したがって関数LOGは、元のベクトル表現をべき表現の累乗に写像する。関数EXPは、変換LOGの逆変換である。この関数EXPは、べき表現の元の累乗を、その元のベクトル表現に写像する。
多項式表現では、16個の元がバイナリ係数を用いる16個の3次多項式によって表される。ガロア体上の2つの元の乗算を、多項式表現でも実施することができる。モジュラ多項式M(z)の多項式モジュロの乗算は、多項式表現の2つの元P1(z)およびP2(z)の乗算に対応するので、M(z)=z4+z+1では、
が成り立つ。
ベクトル表現の2つの元の加算は、成分の成分毎のモジュロ2加算に対応する。多項式の係数のモジュロ2加算は、多項式表現の2つの元の加算に対応する。
図15:GF(24)上のガロア体乗算器
以下では、GF(24)上のガロア体乗算器の例示的な実現形態を説明する。ベクトル表現のべき表現への変換、モジュロ15指数部加算、および累乗のベクトル表現への逆変換が行われる。べき表現が存在しない元0を個別に考慮することができる。
以下では、GF(24)上のガロア体乗算器の例示的な実現形態を説明する。ベクトル表現のべき表現への変換、モジュロ15指数部加算、および累乗のベクトル表現への逆変換が行われる。べき表現が存在しない元0を個別に考慮することができる。
図15は、ベクトル表現で与えられている、ガロア体の2つの元を乗算するための例示的な回路装置を示す。例として、ここでもまたガロア体GF(24)が使用される。そのような回路装置を、ガロア体乗法器またはガロア体乗算器と称することができる。
図15に示した回路装置は、
-それぞれが1つの4ビット幅の入力側、および関数LOGを実現するための1つの4ビット幅の出力側を備えた、2つの変換回路151、152、
-2つの4ビット幅の入力側および1つの4ビット幅の出力側を備えた、1つの加算回路153、
-1つの4ビット幅の入力側、および関数EXPを実現するための1つの4ビット幅の出力側を備えた、変換回路156、
-1つの第1の4ビット幅の入力側、1つの第2の1ビット幅の入力側および1つの4ビット幅の出力側を備えた、1つのAND回路158、
-それぞれが1つの4ビット幅の入力側および1つの1ビット幅の出力側を備えた、2つのNOR回路154、155、
-2つの1ビット幅の入力側および1つの1ビット幅の出力側を備えた、1つのNOR回路157、
を含んでいる。
-それぞれが1つの4ビット幅の入力側、および関数LOGを実現するための1つの4ビット幅の出力側を備えた、2つの変換回路151、152、
-2つの4ビット幅の入力側および1つの4ビット幅の出力側を備えた、1つの加算回路153、
-1つの4ビット幅の入力側、および関数EXPを実現するための1つの4ビット幅の出力側を備えた、変換回路156、
-1つの第1の4ビット幅の入力側、1つの第2の1ビット幅の入力側および1つの4ビット幅の出力側を備えた、1つのAND回路158、
-それぞれが1つの4ビット幅の入力側および1つの1ビット幅の出力側を備えた、2つのNOR回路154、155、
-2つの1ビット幅の入力側および1つの1ビット幅の出力側を備えた、1つのNOR回路157、
を含んでいる。
変換回路151の入力側は、NOR回路154の入力側に接続されている。変換回路151の入力側には、ベクトル表現のガロア体GF(24)の元
の4つの成分v1,v2,v3,v4が印加される。変換回路151は、加算回路153の第1の入力側に接続されている自身の出力側に、4ビット幅の信号LOG(v)を出力する。
変換回路152の入力側は、NOR回路155の入力側に接続されている。変換回路152の入力側には、ベクトル表現のガロア体GF(24)の元
の4つの成分
が印加される。変換回路152は、加算回路153の第2の入力側に接続されている自身の出力側に、4ビット幅の信号LOG(v*)を出力する。
加算回路153は、
の場合に、和
を形成して、自身の出力側に提供するように構成されている。加算回路153の出力側は、変換回路156の入力側に接続されており、この変換回路156は、
の場合に、値
を形成して、自身の出力側に提供する。この値は、v,v*≠0が成り立つ場合には、ガロア体GF(24)上のvおよびv*の積と同じである。
変換回路156の出力側は、AND回路158の第1の入力側に接続されており、このAND回路158は、自身の出力側において、ガロア体GF(24)上の乗算v×v*の結果を提供する。
NOR回路154の出力側は、NOR回路157の第1の入力側に接続されており、またNOR回路155の出力側は、NOR回路157の第2の入力側に接続されている。NOR回路157の出力側は、AND回路158の第2の入力側に接続されている。
したがってAND回路158は、自身の第2の入力側にバイナリ値0が印加された場合には、自身の出力側に値0000を出力するか、または自身の第2の入力側にバイナリ値1が印加された場合には、第1の入力側に印加された値を自身の出力側に提供するように構成されている。
v=0000である場合には、NOR回路154は値1を出力し、またNOR回路157は、自身の出力側に信号0を出力し、それによってAND回路158は値0000を出力する。
v*=0000である場合には、NOR回路155は値1を出力し、またNOR回路157は、自身の出力側に信号0を出力し、それによってAND回路158は値0000を出力する。
2つの乗算vおよびv*が値0000とは異なる場合には、NOR回路154および155はそれぞれ値0を供給する。その結果、NOR回路157は自身の出力側にバイナリ値1を供給するので、AND回路158は自身の出力側に、自身の第1の入力側に印加された値を出力する。
したがって、換言すれば、NOR回路154、155および157に基づき、乗算のうちの少なくとも1つが0000となる未定義のケースがマスキングされる。
乗算v*の値が一定である場合には、vと定数との乗算はガロア体上で行われる。
ガロア体上の定数乗算器
以下では、線形回路としてXOR回路を用いて形成されている、ガロア体上の定数乗算器についての例を説明する。
以下では、線形回路としてXOR回路を用いて形成されている、ガロア体上の定数乗算器についての例を説明する。
任意の元と定数との乗算は、多項式表現で表される。任意の元の多項式および定数の多項式は、ガロア体のモジュロ多項式のモジュロと乗算される。結果として生じた多項式の成分は、積のベクトル表現の成分を形成する。積のベクトル表現の成分は、以下に説明するように、係数のXOR結合である。
したがって、定数乗算器を線形回路として表すことができる。ここでは、各定数乗算器の出力側を、複数の入力側のXOR結合として決定することができる。
既に説明したように、ガロア体GF(2r)上の2つの元の乗算は、多項式表現を使用しても実現することができる。例示的に、ここでもまたガロア体GF(24)を考察する。
ここで、成分a1~a4は、バイナリ値、すなわち0または1である。
例えば、a1,a2,a3,a4=1,0,0,0がα0のベクトル表現である場合には、α0の多項式表現は1である。つまり多項式表現では、
が成り立ち、したがって
となるので、この場合には、ベクトルvは変更されないままであり、y=vが成り立つ。定数α0に関する定数乗算器の出力側は、対応する入力側に直接的に接続されている。
図16aは、ベクトル表現a=1000を用いる定数α0に関する式(53)に応じた定数乗算器の1つの考えられる実現形態を示す。
ここでは、定数α0と乗算すべき、ガロア体の元vのベクトル表現の成分v1、v2、v3、v4が供給される定数乗算器の入力側は、積yの成分y1、y2、y3、y4を提供する出力側に直接的に接続されている。
図16bは、ベクトル表現a=0100を用いる定数α1に関する式(54)に応じた定数乗算器の1つの考えられる実現形態を示す。
成分v1が供給される入力側は、XOR回路161の第1の入力側に接続されている。XOR回路161の第2の入力側は、成分v4に接続されている。成分v4は、成分y1を供給する出力側にも印加される。XOR回路161の出力側は、成分y2を供給する出力側に接続されている。
成分v2が供給される入力側は、成分y3を供給する出力側に接続されており、また成分v3が供給される入力側は、成分y4を供給する出力側に接続されている。
図16cは、ベクトル表現a=0011を用いる定数α6に関する式(55)に応じた定数乗算器の1つの考えられる実現形態を示す。
これに関して、定数乗算器は5個のXOR回路162、163、164、165、166を含んでいる。
成分v1が供給される入力側は、XOR回路164の第1の入力側およびXOR回路165の第1の入力側に接続されている。XOR回路165の出力側は、XOR回路166の第1の入力側に案内されている。成分v2が供給される入力側は、XOR回路162の第1の入力側、XOR回路163の第1の入力側、およびXOR回路165の第2の入力側に接続されている。成分v3が供給される入力側は、XOR回路162の第2の入力側およびXOR回路164の第2の入力側に接続されている。成分v4が供給される入力側は、XOR回路163の第2の入力側およびXOR回路166の第2の入力側に接続されている。
XOR回路162の出力側は、成分y1を供給する定数乗算器の出力側に接続されている。XOR回路163の出力側は、成分y2を供給する定数乗算器の出力側に接続されている。XOR回路164の出力側は、成分y3を供給する定数乗算器の出力側に接続されている。XOR回路166の出力側は、成分y4を供給する定数乗算器の出力側に接続されている。
アドレス誤り検出
1つのオプションでは、データビットがアドレス情報を含んでいる。アドレス情報として、アドレスビット、アドレスビットのグループ、アドレスビットから導出されたビット、またはアドレスビットから導出されたビットのグループが考えられる。アドレスビットのグループを、アドレスバイトと称することもできる。
1つのオプションでは、データビットがアドレス情報を含んでいる。アドレス情報として、アドレスビット、アドレスビットのグループ、アドレスビットから導出されたビット、またはアドレスビットから導出されたビットのグループが考えられる。アドレスビットのグループを、アドレスバイトと称することもできる。
これによって、アドレス誤りも効率的に検出することができる。
ここではアドレスバイトが、例示的にm個のビットを有する。
記憶すべきデータビットはデータバイトUを形成する。それらのデータバイトUおよびアドレスバイトAdからは、データバイト、アドレスバイトおよび検査バイトが誤り符号Codの符号語を形成するように検査バイトCが決定される。したがって、検査バイトCは、データバイトUにもアドレスバイトAdにも依存する。
誤り符号Codは、バイト誤りを訂正するか、またはバイト誤りを検出して訂正する誤り符号であってよい。例えば、誤り符号はリード・ソロモン符号であってもよいし、一般化リード・ソロモン符号であってもよい。
アドレッシング可能なメモリへの書き込みの際に、データバイトUおよび対応する検査バイトCがアドレスadに記憶される。検査バイトCは、データバイトU、アドレスバイトAdおよび検査バイトCが、誤り符号Codの符号語を形成するように決定されている。
この際、書き込みアドレスadのアドレスビットad0,...,adn-1は、変換Trによって、L個のアドレスバイトAd0,...,AdL-1に変換される。
ここでは例示的に、アドレスバイトまたはアドレスビットまたはアドレスビットから導出されたビットは記憶されない。何故ならば、アドレスは読み出しアクセスの際に提供され、したがって、逆変換の際に相応に考慮することができるからである。
読み出しアクセスの際に、メモリにおいて読み出しアドレスad’へのアクセスが行われる。この際、場合によっては誤りのあるデータバイトU’と、場合によっては誤りのある対応する検査バイトC’とが読み出される。読み出しアドレスad’のアドレスビット
は、読み出しアクセスの際に提供され、変換TrによってL個のアドレスバイトAd’に変換される。ここでもまた、やはりL≧2である。
データバイトに誤りが存在する際に、その誤りを誤り符号に基づき訂正できる場合には(また訂正されるべき場合には)、データバイトのうちの少なくとも1つにおける誤りが訂正される。
検査バイトに誤りが存在する際に、1つのオプションでは、その誤りが誤り符号によって訂正できる場合には、少なくとも1つの検査バイトにおける誤りも訂正される。
付加的に、L個のアドレスバイトにおける任意の誤りも、誤り符号を使用して検出される。
メモリアドレスadへの読み出しアクセスが行われるべきであるが、しかしながら実際にはメモリアドレスad’≠adにアクセスが行われる場合には、アドレス誤りが存在する。この場合には、コーディングされたメモリアドレスadは実際に使用されるメモリアドレスad’と同じではないので、そのような誤りは検出される。すなわち換言すれば、2つのメモリアドレスadおよびad’が同じでない場合には、アドレス誤りを確認することができる。
誤り符号Codがτバイト誤り訂正符号(ただし、τ≧2)であり、かつ誤りのあるアドレスビットが変換Trによって変換されるL=τ個のアドレスバイトが存在する場合には、アドレス誤りは以下のようにして検出される。つまり、τ個のアドレスバイトのうちの少なくとも1つに対して、バイト誤りを示すバイト誤り位置信号が決定されると、誤りが検出される。誤り符号がτバイト誤り訂正符号であるので、L=τ個のアドレスバイトのうちの少なくとも1つを改ざんするあらゆるアドレス誤りが検出される。
アドレスバイトは、バイト誤り位置信号が決定され、かつバイト訂正値を決定する必要がない、誤り符号のバイトである。
アドレスバイトのうちの少なくとも1つを改ざんするアドレス誤りが発生した場合には、そのアドレス誤りを、そのアドレスバイトに対するバイト誤り位置信号に基づいて、一義的にアドレス誤りとして識別することができる。
誤り符号Codがt個のバイト誤り訂正符号および(t+1)個のバイト誤り検出符号(ただし、t≧1かつL=t+1≧2)であり、かつ誤りのあるアドレスビットが変換Trによって変換されたものである、L=t+1個のアドレスバイトが存在する場合には、アドレス誤りを以下のように検出することができる。
1.t+1個のアドレスバイトのうちの少なくとも1つに対して、バイト誤りを示すバイト誤り位置信号が決定される場合には、誤りが検出される。誤り符号はtバイト誤り訂正符号であるので、最大でt個のアドレスバイトを改ざんするあらゆるアドレス誤りが検出される。
2.全部でL=t+1個のアドレスバイトがアドレス誤りによって改ざんされる場合には、(t+1)個のバイト誤りが存在する。誤り符号は(t+1)個のバイト誤り検出符号であるので、この場合には、(t+1)個のバイト誤りが検出される。この場合には、例えばデータバイトまたは検査バイトにおける他の考えられる(t+1)個のバイト誤りと、アドレスバイトにおける誤りと、は区別されない。これは検出できるが、しかしながら訂正できない誤りであるので、そのような区別も必要ない。
1.t+1個のアドレスバイトのうちの少なくとも1つに対して、バイト誤りを示すバイト誤り位置信号が決定される場合には、誤りが検出される。誤り符号はtバイト誤り訂正符号であるので、最大でt個のアドレスバイトを改ざんするあらゆるアドレス誤りが検出される。
2.全部でL=t+1個のアドレスバイトがアドレス誤りによって改ざんされる場合には、(t+1)個のバイト誤りが存在する。誤り符号は(t+1)個のバイト誤り検出符号であるので、この場合には、(t+1)個のバイト誤りが検出される。この場合には、例えばデータバイトまたは検査バイトにおける他の考えられる(t+1)個のバイト誤りと、アドレスバイトにおける誤りと、は区別されない。これは検出できるが、しかしながら訂正できない誤りであるので、そのような区別も必要ない。
既に説明したように、アドレスバイトは、バイト誤り位置信号が決定されるが、しかしながらバイト訂正値を決定する必要はない誤り符号のバイトである。この場合には、アドレス誤り、すなわち誤ったアドレスへのアクセスが存在することが検出されれば十分である。
L個のアドレスバイトに対するバイト誤り位置信号を、少なくとも部分的に同時に(すなわち広義の意味で時間的に並列に)決定することができる。相応に、バイト誤り位置信号のうちの少なくとも2つを同時に決定することもできる。
これまでは、アドレスビットadが変換TrによってL個のアドレスバイトAdに変換され、また変換されたアドレスバイトのアドレスビットがメモリに格納されないヴァリエーションを説明した。むしろ、アドレスは、データの読み出しの際に、例えばアドレス発生器によって提供される。
1つの別のヴァリエーションでは、アドレスビットも(完全にまたは部分的に)メモリに記憶される。代替的または付加的に、アドレスビットから導出されたビットも、例えばアドレスビットのパリティビットもメモリに格納することができる。
さらに1つのオプションでは、アドレスビットに由来するバイトおよび/またはアドレスビットから導出されたビットを基礎とするバイトがメモリに記憶される。
さらに1つのオプションでは、アドレスバイトのビットがデータバイトのビットと、かつ/または検査ビットのビットと、例えば成分毎のXOR演算によって論理結合され、また結合されたビットがメモリに記憶される。
メモリアドレスのアドレスバイトへの変換を、種々の回路、例えば組合せ回路またはシーケンシャル回路によって、例えばフィードバックシフトレジスタを使用して、または処理ユニット、例えばプロセッサユニット、マイクロプロセッサおよび/またはマイクロコントローラを用いて行うことができる。
つまり1つのオプションでは、アドレスビットが線形回路によってXORゲートを使用してアドレスバイトに変換される。
また1つのオプションでは、アドレスビットがリードオンリメモリ(ROM)の形態の非線形回路によってアドレスバイトに変換される。
さらに1つのオプションでは、アドレスビットがプロセッサユニット、マイクロプロセッサおよび/またはマイクロコントローラを使用してアドレスバイトに変換される。
さらに1つのオプションでは、アドレスビットがコンピュータプログラムを用いてアドレスバイトに変換される。
すなわちこれによって、例えばデータビットを処理することで、アドレス誤りの検出を実現する方法も提案することができ、この方法では、
-第1の変換によって、データビットが第1のデータバイトに変換され、
-第1のメモリアドレスのアドレスビットが第1のアドレスバイトに変換され、
-第1のデータバイトおよび第1のアドレスバイトを使用して、第1のデータバイト、第1のアドレスバイトおよび第1の検査バイトが誤り符号の符号語を形成するように第1の検査バイトが決定され、
-第1のデータバイトおよび第1の検査バイトがメモリに記憶され、
-所定の第2のメモリアドレスにおける第2のデータバイトおよび第2の検査バイトがメモリから読み出され、
-第2のメモリアドレスのアドレスビットが第2のアドレスバイトに変換され、
-第2のデータバイト、第2のアドレスバイトおよび第2の検査バイトが誤り符号の符号語を形成するか否かが検査され、
-符号語が存在しない場合には、アドレスバイトに対してバイト誤り位置信号が決定される。
-第1の変換によって、データビットが第1のデータバイトに変換され、
-第1のメモリアドレスのアドレスビットが第1のアドレスバイトに変換され、
-第1のデータバイトおよび第1のアドレスバイトを使用して、第1のデータバイト、第1のアドレスバイトおよび第1の検査バイトが誤り符号の符号語を形成するように第1の検査バイトが決定され、
-第1のデータバイトおよび第1の検査バイトがメモリに記憶され、
-所定の第2のメモリアドレスにおける第2のデータバイトおよび第2の検査バイトがメモリから読み出され、
-第2のメモリアドレスのアドレスビットが第2のアドレスバイトに変換され、
-第2のデータバイト、第2のアドレスバイトおよび第2の検査バイトが誤り符号の符号語を形成するか否かが検査され、
-符号語が存在しない場合には、アドレスバイトに対してバイト誤り位置信号が決定される。
アドレスバイトに対するバイト誤り位置信号に基づき、アドレス誤りが存在するか否かを決定することができる。
1つのオプションでは、少なくとも2つのアドレスバイトに対してバイト誤り位置信号が決定される。
1つの別のオプションでは、バイト誤り位置信号のうちの少なくとも2つが少なくとも部分的に時間的に重畳されて、または同時に決定される。相応に、バイト誤り位置信号のうちの少なくとも2つを時間的に連続して決定することもできる。
さらに1つのオプションでは、アドレスビットのアドレスバイトへの変換が、線形変換を使用して行われる。線形変換を、組合せ回路として実現することができる。
この場合、有利には、既述のアドレス誤り検出によって、誤りのあるアドレスに基づいて誤ったデータへのアクセスが行われることが効率的に阻止される。そうでなければ、このことは、誤って選択されたデータそれ自体は確かに正しいものなので、後段の誤り検出回路によって発見されない虞がある。
本明細書において説明したアプローチによって、付加的に、アドレスビットのグループにおける複数の誤りまたはアドレスビットの複数のグループにおける誤りを検出することができる。
参考文献目録:
[1]Fujiwara,E.:「Code Design for Dependable Systems」、Wiley 2006、第65頁
[2]Lin,S.;Costello,D.:「Error Control Coding」、Prentice Hall 1983、第32頁および第33頁
[3]Okano,H.;Imai,H.:「A Construction Method for High-Speed Decoders Using ROM’s for Bose-Chaudhuri-Hocquenghem and Reed-Solomon Codes」、Trans.Computers、C-36、第1165頁~第1171頁、1987
[4]Rao,T.;Fujiwara,E.:「Error Control codes for Computer Systems」,Prentice Hall 1989、第222頁~第226頁
[1]Fujiwara,E.:「Code Design for Dependable Systems」、Wiley 2006、第65頁
[2]Lin,S.;Costello,D.:「Error Control Coding」、Prentice Hall 1983、第32頁および第33頁
[3]Okano,H.;Imai,H.:「A Construction Method for High-Speed Decoders Using ROM’s for Bose-Chaudhuri-Hocquenghem and Reed-Solomon Codes」、Trans.Computers、C-36、第1165頁~第1171頁、1987
[4]Rao,T.;Fujiwara,E.:「Error Control codes for Computer Systems」,Prentice Hall 1989、第222頁~第226頁
11 メモリ
12 変換回路
130~13L-1 誤り検出回路
21 コーディングユニット
22 変換回路
23 メモリ
240~24L-1 誤り検出回路
25 逆変換回路
26 バイト訂正値生成器
270~27L-1 XOR回路
31 変換回路
32 検査ビット生成器
33 検査ビット変換回路
34 メモリ
350~35L-1 誤り検出回路
36 逆検査ビット変換回路
37 バイト訂正値生成器
380~38L-1 XOR回路
39 逆変換回路
40 誤り検出回路
41 誤り検出回路
510~51L-1 変換回路(バイト毎)
520~52L-1 逆変換回路(バイト毎)
61 誤り検出回路
71 誤り検出回路
810~81L-1 NOR回路
820~82L-1 AND回路
83 OR回路
910 入力側
911 入力側
912 入力側
913 入力側
914 入力側
91 定数乗算器
92 XOR回路
93 ガロア体乗算器
94 定数乗算器
95 XOR回路
96 反転器
97 定数乗算器
98 XOR回路
99 定数乗算器
915 部分回路
916 部分回路
917 加算器
918 組合せ回路
101 バイト訂正値生成器
102 定数乗算器
103 XOR回路
104 AND回路
105 XOR回路
106 入力線
107 入力線
111 バイト訂正値生成器
112 バイト訂正値生成器
113 バイト訂正値生成器
114 XOR回路
115 XOR回路
116 XOR回路
121 組合せ回路
122 反転器
1314 XOR回路
1317 XOR回路
1318 XOR回路
1324 XOR回路
1325 XOR回路
1328 XOR回路
1329 XOR回路
1335 XOR回路
1336 XOR回路
1338 XOR回路
1346 XOR回路
1347 XOR回路
1349 XOR回路
13110 XOR回路
13112 XOR回路
13113 XOR回路
13114 XOR回路
13210 XOR回路
13211 XOR回路
13212 XOR回路
13310 XOR回路
13311 XOR回路
13312 XOR回路
13313 XOR回路
13211 XOR回路
13411 XOR回路
13412 XOR回路
13413 XOR回路
13414 XOR回路
1410 入力線
1411 入力線
1412 入力線
1413 入力線
142 定数乗算器
143 XOR回路
144 NOR回路
145 AND回路
146 XOR回路
147 XOR回路
148 AND回路
149 反転器
151 変換回路
152 変換回路
153 加算回路
154 NOR回路(否定論理和回路)
155 NOR回路(否定論理和回路)
156 変換回路
157 NOR回路(否定論理和回路)
158 AND回路
161 XOR回路
162 XOR回路
163 XOR回路
164 XOR回路
165 XOR回路
166 XOR回路
12 変換回路
130~13L-1 誤り検出回路
21 コーディングユニット
22 変換回路
23 メモリ
240~24L-1 誤り検出回路
25 逆変換回路
26 バイト訂正値生成器
270~27L-1 XOR回路
31 変換回路
32 検査ビット生成器
33 検査ビット変換回路
34 メモリ
350~35L-1 誤り検出回路
36 逆検査ビット変換回路
37 バイト訂正値生成器
380~38L-1 XOR回路
39 逆変換回路
40 誤り検出回路
41 誤り検出回路
510~51L-1 変換回路(バイト毎)
520~52L-1 逆変換回路(バイト毎)
61 誤り検出回路
71 誤り検出回路
810~81L-1 NOR回路
820~82L-1 AND回路
83 OR回路
910 入力側
911 入力側
912 入力側
913 入力側
914 入力側
91 定数乗算器
92 XOR回路
93 ガロア体乗算器
94 定数乗算器
95 XOR回路
96 反転器
97 定数乗算器
98 XOR回路
99 定数乗算器
915 部分回路
916 部分回路
917 加算器
918 組合せ回路
101 バイト訂正値生成器
102 定数乗算器
103 XOR回路
104 AND回路
105 XOR回路
106 入力線
107 入力線
111 バイト訂正値生成器
112 バイト訂正値生成器
113 バイト訂正値生成器
114 XOR回路
115 XOR回路
116 XOR回路
121 組合せ回路
122 反転器
1314 XOR回路
1317 XOR回路
1318 XOR回路
1324 XOR回路
1325 XOR回路
1328 XOR回路
1329 XOR回路
1335 XOR回路
1336 XOR回路
1338 XOR回路
1346 XOR回路
1347 XOR回路
1349 XOR回路
13110 XOR回路
13112 XOR回路
13113 XOR回路
13114 XOR回路
13210 XOR回路
13211 XOR回路
13212 XOR回路
13310 XOR回路
13311 XOR回路
13312 XOR回路
13313 XOR回路
13211 XOR回路
13411 XOR回路
13412 XOR回路
13413 XOR回路
13414 XOR回路
1410 入力線
1411 入力線
1412 入力線
1413 入力線
142 定数乗算器
143 XOR回路
144 NOR回路
145 AND回路
146 XOR回路
147 XOR回路
148 AND回路
149 反転器
151 変換回路
152 変換回路
153 加算回路
154 NOR回路(否定論理和回路)
155 NOR回路(否定論理和回路)
156 変換回路
157 NOR回路(否定論理和回路)
158 AND回路
161 XOR回路
162 XOR回路
163 XOR回路
164 XOR回路
165 XOR回路
166 XOR回路
Claims (26)
- データビットを処理するための方法において、
-第1の変換によって、前記データビットを第1のデータバイトに変換し、
-前記第1のデータバイトをメモリに記憶し、
-第2のデータバイトを前記メモリから読み出し、
-前記第2のデータバイトはそれぞれ、誤りのない場合には、ブロック誤り符号の符号語であり、
-第2のデータバイト毎に、前記第2のデータバイトが符号語であるか否かを表す誤り信号を決定する、
方法。 - 少なくとも1つの前記ブロック誤り符号を用いて、前記データビットを第1のデータバイトに変換する、
請求項1記載の方法。 - 前記少なくとも1つのブロック誤り符号は、m-out-of-n符号である、
請求項2記載の方法。 - 少なくとも1つの前記誤り信号に基づいて、誤り訂正を実施する、
請求項1から3までのいずれか1項記載の方法。 - 前記データビットは、誤り符号を用いてコーディングされている、
請求項1から4までのいずれか1項記載の方法。 - 前記第2のデータバイトを、前記第1の変換とは逆の変換である第2の変換によって第2の逆データバイトに変換する、
請求項5記載の方法。 - 前記第2のデータバイトが前記ブロック誤り符号の符号語ではない場合には、前記誤り信号に基づいて、前記第2の逆データバイトの訂正を、前記誤り符号を用いて行う、
請求項6記載の方法。 - 前記第2の逆データバイトの基礎をなす前記第2のデータバイトが前記ブロック誤り符号の符号語ではないことを前記誤り信号が示す場合には、少なくとも1つの第2の逆データバイトを、前記誤り信号に基づいて、前記誤り符号を用いて訂正する、
請求項6または7記載の方法。 - 誤り信号が誤りのあるi番目の第2のデータバイトおよび誤りのあるj番目の第2のデータバイトを示す場合には、i番目の第2の逆データバイトXi’に対するバイト訂正値eiを、誤りシンドロームの部分シンドロームs1およびs2、バイト位置i、および成分毎のXOR和αi+αjに依存して決定し、ただしαは使用されるガロア体の生成元である、
請求項6から8までのいずれか1項記載の方法。 - 少なくとも2つのバイト訂正値を並列に決定し、少なくとも1つのバイト訂正値を、訂正の必要がない正しい第2の逆データバイトに対して決定する、
請求項9から11までのいずれか1項記載の方法。 - -前記第1のデータバイト、および前記第1のデータバイトに基づいて決定される第1の検査ビットを前記メモリに記憶し、
-第2のデータバイトおよび第2の検査ビットを前記メモリから読み出し、
-前記第2のデータバイトが前記ブロック誤り符号の符号語ではない場合には、前記誤り信号および前記第2の検査ビットに基づいて、前記第2のデータバイトの訂正を行う、
請求項1から12までのいずれか1項記載の方法。 - 訂正された前記第2のデータバイトを、前記第1の変換とは逆の変換である第2の変換によって、訂正された第2の逆データバイトに変換する、
請求項13記載の方法。 - 少なくとも2つの第2のデータバイトに対する少なくとも2つのバイト訂正値を並列に決定し、少なくとも1つのバイト訂正値を、訂正の必要がない正しい第2のデータバイトに対して決定する、
請求項13または14記載の方法。 - 少なくとも2つのグループ誤り、または既知でないバイト位置における誤りの誤り訂正を実施する、
請求項1から15までのいずれか1項記載の方法。 - ある特定の第2のデータバイトが対応する前記ブロック誤り符号の符号語ではないことを前記誤り信号が示す場合には、前記第2のデータバイトの少なくとも1つの誤りのあるビットを、前記グループ誤りを考慮して訂正する、
請求項16記載の方法。 - 誤りのある第2のデータバイトを、並列にまたは実質的に並列に訂正する、
請求項13から17までのいずれか1項記載の方法。 - 前記第1のデータバイトも前記第2のデータバイトも、それぞれ12ビットより多くのビットを含んでいない、
請求項1から18までのいずれか1項記載の方法。 - 前記第2のデータバイトのうちの少なくとも2つに対する少なくとも2つの誤り信号を、並列にまたは実質的に並列に決定する、
請求項1から19までのいずれか1項記載の方法。 - データビットを処理するための装置において、
-前記装置は、処理ユニットを含んでおり、前記処理ユニットは、
-第1の変換によって、前記データビットを第1のデータバイトに変換し、
-前記第1のデータバイトをメモリに記憶し、
-誤りのない場合にはそれぞれがブロック誤り符号の符号語である第2のデータバイトを前記メモリから読み出し、
-第2のデータバイト毎に、前記第2のデータバイトが符号語であるか否かを表す誤り信号を決定する、
ように構成されている、
装置。 - 前記メモリは、以下のコンポーネント、すなわち、
-キャッシュメモリ、
-レジスタまたはレジスタアレイ、
-フラッシュメモリ、
-MRAM、
-SRAM、
-RE-RAM、
-PC-RAM、
-FE-RAM、
-CB-RAM、
-マルチビットメモリ、
-マルチレベルメモリ、
のうちの少なくとも1つを含んでいる、
請求項21記載の装置。 - 前記メモリは、前記装置の一部であるか、または前記装置とは別個に形成されている、
請求項21または22記載の装置。 - 前記処理ユニットは、さらに、前記第1の変換とは逆の変換である第2の変換によって、前記第2のデータバイトを第2の逆データバイトに変換するように構成されている、
請求項21から23までのいずれか1項記載の装置。 - 前記処理ユニットは、さらに、
-前記第1のデータバイト、および前記第1のデータバイトに基づいて決定される第1の検査ビットを記憶し、
-前記第2のデータバイトおよび第2の検査ビットを前記メモリから読み出し、
-前記第2のデータバイトが前記ブロック誤り符号の符号語ではない場合には、前記誤り信号および前記第2の検査ビットに基づいて、前記第2のデータバイトを訂正する、
ように構成されている、
請求項21から24までのいずれか1項記載の装置。 - データビットを処理するための装置において、前記装置は、
-第1の変換によって、前記データビットを第1のデータバイトに変換する手段、
-前記第1のデータバイトをメモリに記憶する手段、
-誤りのない場合にはそれぞれがブロック誤り符号の符号語である第2のデータバイトを前記メモリから読み出す手段、
-第2のデータバイト毎に、前記第2のデータバイトが符号語であるか否かを表す誤り信号を決定する手段、
を含んでいる、
装置。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102018108446 | 2018-04-10 | ||
DE102018108446.3 | 2018-04-10 | ||
DE102018131613.5 | 2018-12-10 | ||
DE102018131613.5A DE102018131613A1 (de) | 2018-04-10 | 2018-12-10 | Fehlererkennung mittels Gruppenfehler |
JP2019074125A JP2019186939A (ja) | 2018-04-10 | 2019-04-09 | グループ誤りを用いる誤り検出 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019074125A Division JP2019186939A (ja) | 2018-04-10 | 2019-04-09 | グループ誤りを用いる誤り検出 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2024029084A true JP2024029084A (ja) | 2024-03-05 |
Family
ID=67991460
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019074125A Pending JP2019186939A (ja) | 2018-04-10 | 2019-04-09 | グループ誤りを用いる誤り検出 |
JP2023216831A Pending JP2024029084A (ja) | 2018-04-10 | 2023-12-22 | グループ誤りを用いる誤り検出 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019074125A Pending JP2019186939A (ja) | 2018-04-10 | 2019-04-09 | グループ誤りを用いる誤り検出 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10903859B2 (ja) |
JP (2) | JP2019186939A (ja) |
DE (1) | DE102018131613A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102020120719A1 (de) | 2020-08-05 | 2022-02-10 | Infineon Technologies Ag | Zugriff auf einen speicher |
DE102022101798B3 (de) | 2022-01-26 | 2023-07-20 | Infineon Technologies Ag | Fehlerverarbeitung |
US12079508B2 (en) * | 2022-07-19 | 2024-09-03 | Micron Technology, Inc. | Efficient error signaling by memory |
DE102023102337A1 (de) | 2023-01-31 | 2024-08-01 | Infineon Technologies Ag | Fehlererkennung |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59201557A (ja) * | 1983-04-28 | 1984-11-15 | Matsushita Electric Ind Co Ltd | 送受信システム |
JPH1145188A (ja) * | 1997-07-25 | 1999-02-16 | Sony Corp | エラー訂正装置およびその方法、ならびに、ディジタル信号再生装置およびその方法 |
KR100265769B1 (ko) * | 1998-05-19 | 2000-09-15 | 윤종용 | 광 디스크 시스템에서의 에러 정정 장치 및 그 에러 정정 방법 |
JP4048617B2 (ja) * | 1998-09-07 | 2008-02-20 | ソニー株式会社 | 誤り訂正符号の復号方法および復号装置 |
US6615387B1 (en) * | 1998-09-22 | 2003-09-02 | Seagate Technology Llc | Method and apparatus for error detection |
KR100917883B1 (ko) * | 2003-02-25 | 2009-09-16 | 삼성전자주식회사 | 에러 정정을 위한 에러 플래그 생성 장치 및 그 방법 |
US7861141B2 (en) * | 2005-10-21 | 2010-12-28 | Mediatek Inc. | Method and device for error analysis of optical disc |
US7739434B2 (en) * | 2008-01-11 | 2010-06-15 | International Business Machines Corporation | Performing a configuration virtual topology change and instruction therefore |
JP2010257523A (ja) * | 2009-04-24 | 2010-11-11 | Panasonic Corp | データテープ制御装置 |
US8605489B2 (en) * | 2011-11-30 | 2013-12-10 | International Business Machines Corporation | Enhanced data retention mode for dynamic memories |
US20140013181A1 (en) * | 2012-07-04 | 2014-01-09 | Lisa Fredrickson | Error Correction Coding Using Large Fields |
JP6209880B2 (ja) * | 2013-07-04 | 2017-10-11 | 富士通株式会社 | データ管理装置、及びデータ管理装置の制御方法 |
US9594642B1 (en) * | 2016-01-05 | 2017-03-14 | International Business Machines Corporation | Iterative decode and post-decode microcode cut and paste optimization |
-
2018
- 2018-12-10 DE DE102018131613.5A patent/DE102018131613A1/de active Pending
-
2019
- 2019-04-09 JP JP2019074125A patent/JP2019186939A/ja active Pending
- 2019-04-10 US US16/380,089 patent/US10903859B2/en active Active
-
2023
- 2023-12-22 JP JP2023216831A patent/JP2024029084A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2019186939A (ja) | 2019-10-24 |
DE102018131613A1 (de) | 2019-10-10 |
US10903859B2 (en) | 2021-01-26 |
US20190312601A1 (en) | 2019-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2024029084A (ja) | グループ誤りを用いる誤り検出 | |
US5099484A (en) | Multiple bit error detection and correction system employing a modified Reed-Solomon code incorporating address parity and catastrophic failure detection | |
US6640327B1 (en) | Fast BCH error detection and correction using generator polynomial permutation | |
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 | |
US4777635A (en) | Reed-Solomon code encoder and syndrome generator circuit | |
US6615387B1 (en) | Method and apparatus for error detection | |
US7203890B1 (en) | Address error detection by merging a polynomial-based CRC code of address bits with two nibbles of data or data ECC bits | |
AU602401B2 (en) | Read solomon error correction code encoder | |
US5668976A (en) | Error correction method and apparatus for disk drive emulator | |
JPS6122826B2 (ja) | ||
CN102084335A (zh) | 任意伽罗瓦域算术在可编程处理器上的实施 | |
JP2013070122A (ja) | 誤り訂正装置、誤り訂正方法及び演算装置 | |
US10812109B2 (en) | Determination and use of byte error position signals | |
JP2011514743A (ja) | 受信したシンボル列におけるフェーズドバーストエラー、消失、シンボルエラー、及び、ビットエラーを検出及び訂正するための方法及びシステム | |
US20190253078A1 (en) | Integrated circuit and method for processing an encoded message word | |
US20060168495A1 (en) | Computation of cyclic redundancy check | |
KR20180095468A (ko) | 메모리의 메모리 셀들 내의 데이터의 처리 | |
US10567007B2 (en) | Device and method of processing a data word using checkbits | |
US7093183B2 (en) | Symbol level error correction codes which protect against memory chip and bus line failures | |
JP2005293557A (ja) | 復号器、データ記憶装置およびデータの誤り訂正の方法 | |
US20080140740A1 (en) | Systems and methods for processing data sets in parallel | |
US20030159103A1 (en) | Efficient method for fast decoding of BCH binary codes | |
US20080154998A1 (en) | Method and apparatus for dividing information bit string | |
EP0341851A2 (en) | Method and apparatus for interleaved encoding | |
RU51428U1 (ru) | Отказоустойчивый процессор повышенной достоверности функционирования |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231222 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240119 |