JP2024038056A - バイト誤り位置信号の決定および使用 - Google Patents

バイト誤り位置信号の決定および使用 Download PDF

Info

Publication number
JP2024038056A
JP2024038056A JP2023217133A JP2023217133A JP2024038056A JP 2024038056 A JP2024038056 A JP 2024038056A JP 2023217133 A JP2023217133 A JP 2023217133A JP 2023217133 A JP2023217133 A JP 2023217133A JP 2024038056 A JP2024038056 A JP 2024038056A
Authority
JP
Japan
Prior art keywords
byte
error
input
byte error
output
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
Application number
JP2023217133A
Other languages
English (en)
Inventor
トーマス ケルン,
クリスティアン バダック,
ミヒャエル ゲッセル,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of JP2024038056A publication Critical patent/JP2024038056A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic 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/1575Direct 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic 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/1515Reed-Solomon codes

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

【課題】バイト誤り位置信号の決定および使用方法及び回路構成を提供する。【解決手段】方法は、複数のバイトを含むバイナリ列内の少なくとも1つのバイト誤りを識別し、バイナリ列が、誤っていない場合、誤り符号の符号語であり、回路構成が、誤り符号の誤りシンドロームの成分を使用して少なくとも2つのバイト誤り位置信号それぞれを決定可能であり、少なくとも2つのバイト誤り位置信号が、そのバイト誤り位置信号と関連するバイナリ列のバイトが誤っているか否かを示すように設計されており、少なくとも2つのバイト誤り位置信号が並列で決定される。【選択図】なし

Description

バイトの形態で存在するデータの誤りを、バイトごとに認識し、バイトごとに訂正することが知られている。ここで、バイトは、少なくとも2ビットを含むことができる。1つのバイトの少なくとも1つのビットにおける少なくとも1つの誤りが、バイト誤りと呼ばれる。1つのバイトの少なくとも1つのビットが誤っている場合、バイト誤りが存在する。ただ1つのバイトの少なくとも1つのビットのみが誤っている場合、これは、1バイト誤りである。
1バイト誤りの訂正は、例えば、(非特許文献1)に記載されている。
2つの異なるバイトのビットが誤っている場合、これは、2バイト誤りである。したがって、k個のバイトにおけるビットが誤りである(すなわち、k個のバイトそれぞれにおける少なくとも1つのビットが誤りを有する)ときには、kバイト誤りがあると言える。
誤っている可能性があるバイトの誤り訂正を迅速に行うことが全般的な動機である。これは、例えば、バイト形態でのデータが、メモリから並列に読み出されて並列に提供されるときに当てはまる。そのようなシナリオでは、誤り訂正を並列して実施することも有利であり得る。
「並列」とは、ここでは特に、少なくとも2つのバイトに関する誤り訂正または誤り訂正の一部が少なくとも一部同時に(例えばまた、時間的に少なくとも一部重畳して)行われることを意味する。
バイト誤り訂正は、例えば、リード・ソロモン符号によって行うことができる。
OKANO(特許文献2)に、リード・ソロモン符号を使用して2バイト誤りを訂正するための回路構成が記載されている。ここで、OKANOに記載されている2バイト誤りの訂正は比較的遅いことが欠点である。
Bossen, D.: b-Adjacent Error Correction, IBM J. Res.Dev., July 1970, 402~408頁 Okano, H., Imai, H.: A Construction Method of High-Speed Decoders Using ROM’s for Bose-Chaudhuri-Hocquengiem and Reed-Solomon Codes, IEEE TRANSACTIONS ON COMPUTERS, VOL. C-36, NO. 10, OCTOBER 1987, 1165~1171頁 Lin, S., Costello, D.: Error Control Coding, Prentice Hall, 1983, 170~177頁 Wicker, S.: Error Control Systems for Digital Communication and Storage, Prentice Hall, 1995, 214~224頁 Fujiwara, E.: Code Design for Dependable Systems, Wiley, 2006, 65頁
本発明の課題は、バイト誤りを訂正するための既知の解決策の欠点を解消し、特に、複数のバイト内の誤りの誤り訂正をできるだけ迅速に行うことを可能にすることにある。
特に、1つの課題は、メモリセル、例えばMRAMメモリセルやRRAMメモリセルなどに関するmバイト誤り(m≧2)の誤り訂正を提供し、それにより、メモリセルから読み出されるデータの信頼性を高めることである。
この課題は、独立請求項の特徴に従って解決される。好ましい実施形態は、特に従属請求項から明らかになる。
上記の課題を解決するために、少なくとも2つのバイト誤り位置信号を決定するための回路構成であって、
-複数のバイトを含むバイナリ列内の少なくとも1つのバイト誤りを識別し、
-バイナリ列が、誤っていない場合、誤り符号の符号語であり、
-回路構成が、誤り符号の誤りシンドロームの成分を使用して少なくとも2つのバイト誤り位置信号それぞれを決定可能であるように設計されており、少なくとも2つのバイト誤り位置信号それぞれが、そのバイト誤り位置信号と関連するバイナリ列のバイトが誤っているか否かを示し、
-少なくとも2つのバイト誤り位置信号が並列で決定される、
回路構成が提案される。
バイナリ列の1バイトにつき1つのバイト誤り位置信号を決定することができることに留意されたい。したがって、バイナリ列の各バイトと、バイト誤り位置信号が結合または関連付けされている。バイト誤り位置信号の値は、バイト誤り位置信号に結び付けられたバイトが誤りを有するか否かを示す。
誤り符号は、例えば、誤り訂正および/または誤り認識符号である。例えば、誤り符号として、リード・ソロモン符号を使用することができる。
これに関連して、「並列」とは、特に、互いに少なくとも一部並列して、すなわち例えば時間的に同時に、または時間的に少なくとも一部同時に値が決定されることを意味する。
一変形形態では、回路構成は、誤り符号の誤りシンドロームの成分を使用してバイト誤り位置信号を決定可能であり、バイト誤り位置信号が、バイナリ列のバイトのうちの少なくとも2つのバイトに関して訂正可能な誤りがあることを示すように設計されている。
一変形形態では、誤り符号は、tバイト誤り訂正符号であり、少なくとも(t+1)個のバイト誤り位置信号が並列して決定される。
一変形形態では、バイナリ列が2バイト誤りを有する。
一変形形態では、バイナリ列の各バイトがmビットを有し、ここでm≧2が成り立つ。
一変形形態では、誤り符号は、
-tバイト誤り訂正符号、または
-tバイト誤り訂正および(t+1)バイト誤り認識符号
であり、ここでt≧2が成り立つ。
一変形形態では、バイナリ列は、少なくとも(t+1)個の訂正可能なバイトを有する。
一変形形態では、誤りシンドロームは、少なくとも2・t個の成分s、s、…、s2tを有し、ここで、各成分がそれぞれmビットを含み、m≧2である。
訂正可能なバイトは、そのバイト内にバイト誤りがある場合に、バイト誤り訂正符号によってバイト誤りを訂正可能であるときに誤り訂正が行われるバイトである。
一変形形態では、バイト誤り位置信号は、バイト誤り位置信号に関連するバイトが誤っている場合には第1の値を有し、バイト誤り位置信号に関連するバイトが誤っていない場合には第2の値を有する。
一変形形態では、バイト誤り位置信号の少なくとも1つは、少なくとも1つの訂正されたバイトに関して決定される。
一変形形態では、バイナリ列は、データバイトおよび検査バイトを含み、データバイトおよび/または検査バイトが、訂正可能なバイトを構成する。
特に、データバイトのみを訂正することができる。また、検査バイトのみ、またはデータバイトと検査バイトとの組合せを訂正することも可能である。ここで、データバイトは使用データでよく、検査バイトは、使用データの訂正に使用することができる追加の検査情報でよい。
また、上記の課題を解決するために、複数のバイトを含むバイナリ列内の少なくとも1つのバイト誤りを訂正するための回路構成であって、バイナリ列が、誤っていない場合、誤り符号の符号語であり、上記回路構成が、
-誤り符号の誤りシンドロームの成分を使用して少なくとも1つのバイト誤り位置信号を決定し、バイナリ列のバイトが誤っているか否かをバイト誤り位置信号によって決定可能であり、
-少なくとも1つのバイト誤り訂正値を決定し、バイト誤り訂正値に基づいて、バイト誤り位置信号によって識別される誤っているバイト位置を訂正可能であり、
-少なくとも1つの正しいバイトに関してバイト誤り訂正値の少なくとも1つが決定されるように設計されている、
回路構成が提案される。
一変形形態では、少なくとも1つのバイト誤り位置信号および/または少なくとも1つのバイト誤り訂正値が並列して決定される。
特に、少なくとも2つのバイト誤り訂正値を並列して決定することができる。
一変形形態では、誤り符号は、tバイト誤り訂正符号であり、少なくとも(t+1)個のバイト誤り位置信号が並列して決定される。
一変形形態では、誤り符号は、tバイト誤り訂正符号であり、少なくとも(t+1)個のバイト誤り訂正値が並列して決定される。
一変形形態では、少なくとも(t+1)個のバイト誤り訂正値は、最大で3個のガロア体乗算器を使用して決定され、ここでt≧2である。
一変形形態では、回路構成は、誤っているバイトに関してバイト誤り位置信号がバイト誤り訂正値と演算されることによって、バイト誤りの1つを訂正するように設計されている。
一変形形態では、回路構成は、tバイト誤りを訂正するように設計されており、ここでt≧2が成り立つ。
一変形形態では、回路構成は、さらに、1バイト誤りを訂正するように設計されている。
一変形形態では、回路構成は、さらに、τバイト誤りを訂正するように設計されており、ここで、t≧τ>2が成り立つ。
一変形形態では、2バイト誤りの場合に、第iのバイトが訂正可能なバイトであり、
-第iのバイトに関するバイト誤り位置信号は、
Figure 2024038056000001
が成り立つ場合には、第1の値を取り、
-第iのバイトに関するバイト誤り位置信号は、
Figure 2024038056000002
が成り立つ場合には、第2の値を取り、
-第iのバイトに関連するバイト誤り位置信号が第1の値を取る場合には、第iのバイトが誤っている。
一変形形態では、2バイト誤りの場合に、第iのバイトのバイト誤り訂正値が、
Figure 2024038056000003
に従って決定される。
回路構成は、個々の部分回路構成に分割することができる。特に、ここで述べる回路構成は一部品または多部品で実現することが可能である。
さらに、回路構成は、合成ツールを使用して実現することができる。
一変形形態では、2バイト誤りの場合に、訂正可能なバイトの訂正は、誤りシンドロームの3つの成分、およびバイト誤り位置信号に応じて決定される。
また、少なくとも2つのバイト誤り位置信号を決定するための方法であって、
-複数のバイトを含むバイナリ列内の少なくとも1つのバイト誤りを識別し、
-バイナリ列が、誤っていない場合、誤り符号の符号語であり、
-少なくとも2つのバイト誤り位置信号それぞれが、誤り符号の誤りシンドロームの成分を使用して決定されて、バイト誤り位置信号と関連するバイナリ列のバイトが誤っているか否かを示し、
-少なくとも2つのバイト誤り位置信号が並列で決定される、
方法が提示される。
さらに、複数のバイトを含むバイナリ列内の少なくとも1つのバイト誤りを訂正するための方法であって、バイナリ列が、誤っていない場合、誤り符号の符号語であり、上記方法が、
-誤り符号の誤りシンドロームの成分を使用して少なくとも1つのバイト誤り位置信号を決定し、バイナリ列のバイトが誤っているか否かを少なくとも1つのバイト誤り位置信号によって決定可能である、ステップと、
少なくとも1つのバイト誤り訂正値を決定するステップであって、バイト誤り訂正値に基づいて、バイト誤り位置信号によって識別される誤っているバイト位置が訂正される、ステップとを含み、
少なくとも1つの正しいバイトに関してバイト誤り訂正値の少なくとも1つが決定される、
方法が提示される。
以下、本発明の上述した特性、特徴、および利点、ならびにこれらを達成する様式を、例示的実施形態の概略的な説明に関連付けて述べる。例示的実施形態について、図面に関連付けてより詳細に説明する。ここで、見やすくするために、同一の要素または同一の作用を有する要素には同じ参照符号を付すことができる。
2バイト誤りに関するバイト誤り位置信号を並列して生成するための例示的な回路構成を示す図である。 図1に示される回路構成の代替形態を示す図である。 中央回路部分を有する、図1に示される回路構成のさらなる構成を示す図である。 図3に示される中央回路部分の代替の例示的実現形態を示す図である。 2バイト誤りに関するバイト誤り訂正のための回路構成に関する一例を示す図である。 バイト誤り訂正値を生成するための図5に示される部分回路の実現形態に関する一例を示す図である。 バイト誤り訂正値を生成するための図5に示される部分回路の実現形態に関するさらなる例を示す図である。 2バイト誤りに関するバイト誤り位置信号を生成するための回路構成を使用する、1バイト誤りおよび2バイト誤りに関する訂正回路の一例を示す図である。 2バイト誤りに関するバイト誤り位置信号を生成するための回路構成を使用する、1バイト誤り、2バイト誤り、以下同様にtバイト誤りまでに関する例示的な訂正回路を示す図である。 図8に示される部分回路の例示的な形態を示す図である。 誤り認識回路を示す図である。 3バイト誤りを認識するための誤り認識回路を示す図である。 m=5でのガロア体GF(2)の要素の様々な表現形態を示す表を示す図である。
例として、以下、リード・ソロモン符号を使用したバイト誤りの訂正を述べる。ここで、バイトは、複数のビットを含むことができる。
各訂正可能なバイト位置に関して、そのバイトが誤っているか否かを判断可能にする信号(バイト誤り位置信号とも呼ぶ)が特定される。例えば、バイト誤り位置信号は、バイトが誤っている場合には値1、バイトが誤っていない場合には値0を有する。
バイト誤り位置信号は、好ましくは、ロケータ多項式の値によって決定される。バイト誤り訂正符号の場合、誤りの数に関してそれぞれ1つのロケータ多項式を使用することができる。
したがって、バイト誤り訂正符号の訂正可能なバイト位置に関してバイト誤り位置信号を決定することが特に提案され、ここで、バイト誤り訂正符号は、特に、少なくとも2つのバイト誤りを訂正することができる。
ここで、訂正可能なバイト位置は、バイト誤り訂正符号によって訂正可能な誤りが発生したときに訂正が行われるバイト位置である。
バイトは、例えば、データバイト、データバイトと検査バイトとの組合せ、またはその部分集合である。データバイトは、好ましくは、使用データを含む。
バイト位置に関して、バイト誤り訂正値を決定することができ、バイト誤り訂正値に基づいて、バイト位置は、そこで誤りが発生しているときに訂正される。バイト誤り位置信号は、あるバイトに関して誤りが発生しているかどうかを示し、バイト誤り訂正値によって、この誤りを訂正することができる。また、バイト誤り位置信号によって、個々のバイト位置を隠す(マスキングする)ことができ、その際には、訂正は行われない。
特に、(例えばバイト位置が誤っていないので)バイト位置で訂正のために使用されないバイト誤り訂正値に0を乗算することが、1つの選択肢である。その限りにおいて、バイト誤り訂正値への0の乗算はまた、バイト位置でバイト誤り訂正値を使用しないことに相当する。
リード・ソロモン符号の全般的な説明
以下、リード・ソロモン符号のいくつかの概念および特性を説明する。
例えば、
-tバイト誤り訂正符号と、
-tバイト誤り訂正および(t+1)バイト認識符号
とを考える。特に、t=2およびt=1の場合を考察する。
例えば、バイト誤り訂正符号として知られているリード・ソロモン符号を使用することができる。リード・ソロモン符号に関しては、例えば、(特許文献3)または(特許文献4)を参照されたい。
1バイト誤り訂正および2バイト誤り認識リード・ソロモン符号は、以下のようなH行列
Figure 2024038056000004
を有する。
Figure 2024038056000005
ここで、αは、ガロア体GF(2)の要素である。これは、例えば、指数関数表現である。αは、ガロア体GF(2)の原始元でよい。αの指数jは、mod2-1と解釈することができる。
式(1)によるH行列から、以下のH行列を導出することができる。
Figure 2024038056000006
これは、i=0,…,(2-2)に関して、第iの列にα-iを乗算することによって行われる。これにより、α-1≠0であるので、符号ではなくH行列の形態のみが変わる。これは、例えば、(非特許文献5)にも記載されており、そこでは、αに関して値「1」が使用されている。αは、使用されるガロア体の単位元であるからである。
2バイト誤り訂正および3バイト誤り認識符号に関して、以下のH行列が使用される。
Figure 2024038056000007
式(3)で表されるH行列の各列が1バイトに対応する。
符号の長さがNバイトまたはm・Nビット(ここで、各バイトがmビットを有する)である場合、式(1)または式(3)によるH行列のN列のみが使用される。例えば、残りの(最後の)2-2-N列を削除することができる。
一般に、tバイト誤り訂正およびt+1バイト誤り認識符号に関して、H行列は、以下のように表すことができる。
Figure 2024038056000008
以下、例として、2バイト誤りを訂正することができ、3バイト誤りを認識することができる符号を考察する。
誤りが発生した場合、正しいベクトルv=v,…,vN-1が乱されて、誤っているベクトルv=v’0,…,v’N-1になる。
ベクトルvの成分v,…,vN-1は、それぞれmビットを含むバイトであり、したがって、i=0,…,N-1に関して、
Figure 2024038056000009
が成り立つ。したがって、
Figure 2024038056000010
は、第iのバイトのmビットである。
mビットバイトは、ガロア体GF(2)の要素と呼ぶこともできる。
1バイト誤りがある場合、ただ1つのバイトのみが誤っており、すなわち、特定のi∈{0,…,N-1}に関して、関連の第iのバイトが誤っている。
正しい第iのバイトを
Figure 2024038056000011
で表し、誤っている第iのバイトを
Figure 2024038056000012
で表すと、正しい第iのバイトの1ビットもしくは2ビットまたはmビットまでを、誤っている第iのバイトから区別することができる。
第iのバイトでのバイト誤りは、
-誤っているバイト位置i、および
-バイト誤り値によって、以下のように表すことができる。
Figure 2024038056000013
ここで、
Figure 2024038056000014
は、XOR演算を表すことに留意されたい。
第iのバイトの位置は、αと表すこともできる。
バイト誤りが、バイト位置iでのバイト誤り値eで訂正される場合、バイト位置iに関して、バイト誤り値に等しいバイト誤り訂正値を決定することができる。
この例では、訂正すべきバイト誤りに関して、バイト誤り値は、バイト誤り訂正値に等しい;その限りにおいて、概念「バイト誤り値」と「バイト誤り訂正値」を同義として使用することができる。
添え字の数字が分かりにくくなるのを避けるために、以下、バイト誤り値を、アルファベット文字a、b、cで表す。
第iのバイトに関するバイト誤り訂正値を、a(i)と表すこともできる。
バイト位置は、i,j,k,…、またはα,α,α,…で表すことができ、ここで、αは、ガロア体GF(2)の生成要素である。
誤りシンドロームsは、シンドローム成分(成分、誤りシンドローム成分、部分誤りシンドローム、部分シンドロームとも呼ぶ)s、s、s、s、sを有し、これらは、式(3)によるH行列に関して、以下のように決定される。
=(α,α,…,α)・(v’0,v’1,…,v’N-1
=(α,α,…,αN-1)・(v’0,v’1,…,v’N-1
=(α,α,…,α2(N-1))・(v’0,v’1,…,v’N-1
=(α,α,…,α3(N-1))・(v’0,v’1,…,v’N-1
=(α,α,…,α4(N-1))・(v’0,v’1,…,v’N-1
ここで、(v’0,…,v’N-1は、成分v’0,…,v’N-1を有する列ベクトルであり、この列ベクトルは、行ベクトル(v’0,…,v’N-1)の転置ベクトルと呼ぶこともできる。
シンドローム成分s、s、s、s、sは、それぞれ、mビットを有するバイトを構成する。
誤りがない場合、
=s=s=s=s=0が成り立つ。
第iのバイト誤り位置に、バイト誤り値αを有する1バイト誤りがある場合、以下の式が成り立つ。
=α・a=a
=a・a
=a2i・a
=a3i・a
=a4i・a (4)
バイト誤り位置iおよびjに、バイト誤り値aおよびbを有する2バイト誤りがある場合、以下の式が成り立つ。
=αa+αb=a+b
=a・a+α・b
=a2i・a+α2j・b
=a3i・a+α3j・b
=a4i・a+α4j・b (5)
バイト誤り位置i、j、およびkに、バイト誤り値a、b、およびcを有する3バイト誤りがある場合、以下の式が成り立つ。
=αa+αb+αc=a+b+c
=a・a+α・b+α・c
=a2i・a+α2j・b+α2k・c
=a3i・a+α3j・b+α3k・c
=a4i・a+α4j・b+α4k・c (6)
考察される誤りに関して、以下の関係が満たされている。
1.1バイト誤りに関しては、
=a≠0 (7)
および
Figure 2024038056000015
が成り立つ。
2.2バイト誤りに関しては、
Figure 2024038056000016
および
Figure 2024038056000017
が成り立つ。
3.3バイト誤りに関しては、以下の式である。
Figure 2024038056000018
バイト誤り位置αおよびαは、第iのおよび第jのバイトでの2バイト誤りの場合、式
Figure 2024038056000019
の解、根、またはゼロ位置として決定することができる。また、
Figure 2024038056000020
を、2次のロケータ多項式と呼ぶこともできる。
それに対応して、1バイト誤りに関するバイト誤り位置は、1次のロケータ多項式のゼロ位置によって決定され、一般に、
1≦τ≦t
について、tバイト誤り訂正符号に関するτバイト誤りにおける誤っているバイト位置は、τ次のロケータ多項式のゼロ位置によって決定される。
符号語が、N・mビット、したがってNバイトからなる場合、バイト誤り位置としてみなされるN個の異なるバイト位置がある。それに対し、対応するビット訂正符号において、誤っている可能性があるm・N個のビット位置がある。
1バイト誤りにおいては1次のロケータ多項式が使用され、および2バイト誤りにおいては2次のロケータ多項式が使用される。
リード・ソロモン符号の補足説明
2バイト誤りの場合に、第iのバイトに関するバイト誤り訂正値a(i)を、シンドローム成分s、s、sおよびバイト位置iのみに応じて決定することができる。
ここで、例えば少なくとも3つの訂正可能なバイトに関して複数のバイト誤り訂正値を並列に決定することができることが利点である。
例えば、2バイト誤りがあると仮定する。各バイト位置に関するバイト誤り訂正値は、提供されたシンドローム成分s、s、s、および訂正可能なバイトの既知の位置に基づいて、並列に決定することができる。バイト誤り訂正値は、誤っている両方のバイトに関して、および少なくとも誤っていないバイトに関して決定される。
第iのバイト位置に関して決定されたバイト誤り訂正値は、この第iの位置でのバイト誤り値と一致する。
同様に(場合によっては並列に)決定されたバイト誤り位置信号は、対象のバイトにバイト誤りがあるかどうか、およびバイト誤り訂正値を用いて訂正を行うかどうかを判断する。バイト誤り位置信号が、対応する位置にバイト誤りがないことを示した場合、この位置に関して決定されたバイト誤り訂正値を用いた訂正を行わない。
換言すると、バイト誤り位置信号は、提供されたバイト誤り訂正値を用いた訂正をどのバイト位置で行うかを決定する。あるバイト位置に関するバイト誤り位置信号がバイト誤りを示す場合、バイト誤り訂正値を用いた訂正を行う。このバイト位置に関するバイト誤り位置信号がバイト誤りを示さない場合、訂正を行わない。
tバイト誤り訂正符号を考えると、t個よりも多い訂正可能なバイト位置に関する対応するバイト誤り訂正値を決定することができ、その後、バイト位置(の全てまたは一部)に関するバイト誤り位置信号が決定される。バイト誤り訂正値は、バイト誤り位置信号と並列して決定することもできる。
第iのバイトにバイト誤りがない場合、この第iのバイトに関して決定されたバイト誤り訂正値は、バイト誤り位置信号の値に基づいて、訂正に使用されない。この場合、バイト誤り位置信号に基づき、訂正は実施されないので、この誤っていないバイトに関して決定されたバイト誤り訂正値が
Figure 2024038056000021
である必要はない。任意選択で、この場合、第iのバイトに関するバイト誤り訂正値は、
Figure 2024038056000022
に設定することができる。
2バイト誤りがある場合、バイト誤り位置iに関して、第iのバイトのバイト誤り訂正値a(i)は、式
Figure 2024038056000023
が成り立つように決定することができる。
2バイト誤りに関して、バイト誤りが発生しているバイト位置iが既知である場合、式(13)に基づいて、誤っているバイト位置iに関するバイト誤り訂正値a(i)は、シンドローム成分s、s、s、およびバイト位置iから決定される値αによって決定される。
バイト位置kに関して、バイト誤り訂正値a(k)は、
Figure 2024038056000024
として例えば並列して決定され、バイト位置kが実際に誤っているかどうかには関係しない。
バイト誤り位置信号が、バイト位置kにおいてバイト誤りがあることを示す場合、第kのバイトの誤り訂正が、このバイト位置kに関して決定されたバイト誤り訂正値a(k)によって行われる。
バイト誤り位置信号が、バイト位置kにおいてバイト誤りがないことを示す場合、第kのバイトの誤り訂正は行われず、このバイト位置kに関して決定されたバイト誤り訂正値a(k)は、誤り訂正に使用されない。任意選択で、バイト誤り訂正値を0に設定することができる。
したがって、バイト位置に関するバイト誤り訂正値は、実際にこのバイト位置で誤りが発生しているかどうかが決定される前に既に存在する。
様々なバイト位置に関して、対応するバイト誤り訂正値を並列して決定することができる。特に、全ての訂正可能なバイト位置に関して、または訂正可能なバイト位置の部分集合に関して、バイト誤り訂正値を並列して決定することができる。
バイト誤り訂正符号が、誤っているバイトをt個まで訂正することができる場合、例えば全ての訂正可能なバイト位置に関して、または少なくともt+1個の訂正可能なバイト位置の部分集合に関して、バイト位置にバイト誤りがあるかどうかに関係なく、t個よりも多くのバイト誤り訂正値を並列して決定することができる。
バイト誤り位置信号の値は、対応するバイトの訂正にバイト誤り訂正値が使用されるかどうかを決定する。
訂正可能なバイト位置は、例えば、全てのデータバイト、データバイトの部分集合、検査バイト、tバイト誤り訂正符号の符号語の全てのバイト、またはtバイト誤り訂正符号の符号語のバイトの部分集合でよい。
ここで、バイト誤り位置信号は、例えば、バイト位置に関して、バイト位置のバイトが誤っている場合には第1の値を取るように、およびバイト位置のバイトが誤っていない場合には第1の値とは異なる第2の値を取るように決定することができる。
バイト誤り位置信号は、対応するロケータ多項式を使用して決定することができる。
1バイト誤りに関するバイト誤り位置信号
1バイト誤りに関して、1次のロケータ多項式は、
x・s=s (15)であり、解またはゼロ位置
Figure 2024038056000025
を有する。
誤っているバイト位置iに関するバイト誤り訂正値a(i)は、
a(i)=s (17)
である。
各第kのバイトに関して、バイト誤り訂正値
a(k)=s=a (18)
が決定される。
第iのバイトでの誤りがバイト誤り訂正値aを有し、したがってs=aである場合、各バイトkに関して、式(18)に従ってバイト誤り訂正値a(k)=aが決定され、バイト誤り訂正値a(k)=aは、実際に訂正すべき第iのバイトに関しては使用され、訂正されないバイトに関してはマスキング(例えばゼロに設定)される。バイトが訂正されるか否かの決定は、対応するバイト誤り位置信号の値に基づいて行われる。
各バイトに関して、1バイト誤りの場合、バイト誤り位置信号は、式(15)を使用して決定される。バイト位置iに関するバイト誤り位置信号は、
-αが、式(15)に従ってロケータ多項式のゼロ位置である場合には1であり、
-αが、式(15)に従ってロケータ多項式のゼロ位置でない場合には0である。
第iのバイトの訂正は、αが、式(15)に従ってロケータ多項式のゼロ位置である場合にのみ行われる。
2バイト誤りに関するバイト誤り位置信号
2バイト誤りの訂正におけるバイト誤り位置信号の作用を、一例に基づいて述べる。
tバイト誤り訂正符号がt≧2として使用される場合、2バイト誤りの場合には、誤っているバイト位置は、式(12)による2次のロケータ多項式の2つのゼロ位置によって決定されている。
誤っているバイト位置が位置iおよびjである場合、バイト誤り位置信号は、例えば、αおよびαが式(12)による2次のロケータ多項式のゼロ位置である場合には1であり、他の全ての場合には0である
各バイト位置kに関して、バイト誤り訂正値
Figure 2024038056000026
を決定することができる。このバイト誤り訂正値は、少なくとも一部並列して決定することができる。
バイト位置kに関するバイト誤り位置信号の値は、このバイト位置kで訂正を行うかどうかを決定する。バイト誤り位置信号が1である場合には訂正が行われ、バイト誤り位置信号が0である場合には訂正は行われない。
バイト位置k=iに関して、バイト誤り訂正値a(i)は、誤っている第iのバイトがバイト誤り訂正値a(i)によって訂正されるように決定されている。同様に、バイト位置k=jに関して、バイト誤り訂正値a(j)は、誤っている第jのバイトがバイト誤り訂正値a(j)によって訂正されるように決定されている。
k≠i,jである他の全てのバイト位置kに関してはバイト誤りはなく、したがって、これらのバイト位置に関しては訂正が行われない。バイト誤り位置信号がこのバイト位置で値0を取り、したがってこのバイト位置に関して訂正が必要ないので、バイト誤り訂正値a(k)は、0でないと決定されたときでさえ、これは訂正に使用されない。
1バイト誤り、2バイト誤り、3バイト誤りの処理
以下、どのようにしてバイト誤りを認識し、互いに区別することができるかを述べる。例えば、2バイト誤り訂正符号を考える。補足として、3バイト誤り認識についても述べる。
1.まず、1バイト誤りまたは2バイト誤りのみが存在する場合から始める。そのような例では、2バイト誤りに関しては、式(9)に従って、
Figure 2024038056000027
が成り立ち、1バイト誤りに関しては、式(7)および(8)
Figure 2024038056000028
も成り立つ。
さらに、1バイト誤りも2バイト誤りも発生していない場合を区別することができる。既にs=0から、1バイト誤りも2バイト誤りも発生していないと帰結することができる。
3バイト誤りに関する確率が極端に小さいとき、この場合に関して、誤りが発生していないと帰結することができる。
2.ここで、1バイト誤りのみ、2バイト誤りのみ、または3バイト誤りのみが存在する場合を考える。3バイト誤りに関して、式(11)に従って、
Figure 2024038056000029
が成り立つ。
それに対応して、2バイト誤りまたは1バイト誤りに関して、
Figure 2024038056000030
が成り立つ。
2バイト誤りがある場合、さらに、式(9)
Figure 2024038056000031
が成り立つ。
1バイト誤りに関して、やはり式(7)および(8)
Figure 2024038056000032
が成り立つ。
式(9)による条件は3バイト誤りに関しても成り立つので、この条件のみからでは、2バイト誤りがあると帰結することはできない。
2バイト誤りの訂正は、以下のように行うことができる。i∈{0,1,…,N-1}での各バイト位置iに関して、2次のロケータ多項式の値L(α)は、以下の式に従って決定される。
Figure 2024038056000033
L(α)=0の場合、第iのバイトが訂正される。L(α)≠0の場合、第iのバイトは訂正されない。バイト誤り位置信号BPsは、それぞれのバイトの訂正が行われるか否かを提示することができる。バイト誤り位置信号BPsは、例えば、
Figure 2024038056000034
によって決定されている。
ガロア体GF(2)での演算を実現する回路構成では、例えば、乗算器、定数乗算器、自乗器、べき乗(3乗)生成器などが採用される。個々のそのような演算の回路技術的な採用は既知である。以下、例として、例えば剰余多項式によって決定されているガロア体において、乗算器、自乗器、3乗生成器、および定数乗算器をどのように実現することができるかを述べる。例えば、m=5が仮定され、バイトは、m=5ビットからなり、対応するガロア体は、GF(2)である。
m=5でのガロア体GF(2)における例
例えばm=5が選択され、基礎となるガロア体
GF(2)=GF(2)=GF(32)
は、全部で32個の要素を含む。
ガロア体GF(32)の要素は、図13に様々な表現形式で表されている。ガロア体GF(32)の剰余多項式は、多項式
p(x)=1+x+x
である。
図13に示される表の第1の列は、指数表現(指数関数表現とも呼ぶ)で、i=0,1,…,30に関してGF(2)の要素α≠0を含む。体のゼロ要素は、指数表現を有さない。表の第2の列では、全ての要素が、関連の剰余多項式p(x)に関する多項式表現で列挙されている。表の第3の列は、GF(2)の要素のタプルまたはベクトル表現を示す。要素のベクトル表現は、多項式表現から直接読み取ることができる。ここで、ベクトル表現の5つの成分は、左から右へ、多項式表現中の関連のべき乗の係数
,x,x,x,x
に対応する。
対応する多項式表現は、[x mod (1+x+x)]を決定することによって、べき乗表現αから得られる。例えば、α5の多項式表現は、
mod (1+x+x)=1+x
が成り立つので、1+xである。
ガロア体の2つの要素の乗算は、指数表現または多項式表現で行うことができる。ガロア体GF(2)=GF(2)の2つの要素が指数表現αおよびαで与えられる場合、それらの積は、以下のようになる。
α・α=α
ここで、
k=(i+j) mod (2-1)=(i+j) mod 31
ガロア体の乗算すべき要素がベクトル表現または多項式表現である場合、それらの乗算は、ガロア体乗算器によって行うことができる。以下、例として、多項式表現での2つの要素の乗算を述べる。ガロア体GF(2)=GF(2)の要素として多項式表現で与えられている2つの要素を互いに乗算するために、多項式を直接通常の様式で互いに乗算することができ、結果を剰余多項式の剰余として決定することができる。
例えば、多項式1+x+xおよびx+xが与えられ、それによりそれらの直接の乗算
(1+x+x)(x+x)=x+x+x+x
が得られる。
=1+x mod (1+x+x)および
=x+x mod (1+x+x
により、
x+x+x+x=x+x+1+x+x+x=1+x+x+xとなる。
したがって、結果として、
(1+x+x)・(x+x)=1+x+x+x
が成り立つ。
以下、剰余多項式
m(x)=x+x+1
を有するガロア体GF(2)において、第1の要素a(x)
a(x)=a+a+a+ax+a
と、第2の要素b(x)
b(x)=b+b+b+bx+b
とが乗算される場合を述べる。多項式a(x)とb(x)の直接の乗算により、まず、8次の多項式が得られる。
mod (1+x+x)=1+x
mod (1+x+x)=x+x
mod (1+x+x)=x+x
mod (1+x+x)=1+x+x
によって、4次の多項式が、以下のように得られる。
+c+c+c+c=a(x)・b(x) mod m(x)=
=(a+a+a+a+a+a+a)・x
+(a+a+a+a+a+a+a+a)・x
+(a+a+a+a+a+a+a+a+a+a)・x
+(a+a+a+a+a)・x
+(a+a+a+a+a+a
この関係は、5つの第1のバイナリ入力と、5つの第2のバイナリ入力と、5つのバイナリ出力を有するガロア体乗算器によって、実現される。これを以下に詳細に説明する。
ガロア体乗算器の第1の5つの入力には、バイナリ値a、a、a、a、aが入力され、第2の5つの入力には、バイナリ値b、b、b、b、bが入力され、5つのバイナリ出力で、値c、c、c、c、cが出力され、ここで、
(a+a+a+a+a+a)=c, (22)
(a+a+a+a+a)=c (23)
(a+a+a+a+a+a+a+a+a+a)=c (24)
(a+a+a+a+a+a+a+a)=c (25)
(a+a+a+a+a+a+a)=c (26)
である。ここで、符号「+」は、mod2加算(XOR演算)を表す。
式(22)~(26)の実装は、例えばANDゲートおよびXORゲート(排他的ORゲート)を使用して、ガロア体乗算器によって行うことができる。例えば、実装の範囲内で、合成ツールを使用することもできる。
ガロア体の要素が自乗される場合、要素をそれ自体と乗算することができる。多項式表現で、要素が多項式
a(x)=a+a+a+a+a
として与えられる場合、
(a(x)) mod m(x)=
=[a+a+a+a+a] mod (1+x+x)=
=(a)x+(a+a)x+(a+a)x+a+(a+a
が成り立つ。
それに対応して、ガロア体GF(2)での要素の自乗は、5つのバイナリ入力および5つのバイナリ出力を有する自乗器によって実現することができる。5つのバイナリ入力に、バイナリ値a、a、a、a、aが供給され、5つのバイナリ出力で、バイナリ値d、d、d、d、dが提供される。
+a=d, (27)
=d, (28)
+a=d, (29)
+a=d, (30)
=d, (31)
が成り立ち、ここで、符号「+」は、ここでもmod2加算(XOR演算)を示す。
剰余多項式m(x)=1+x+xを有するガロア体GF(2)で自乗器を実現するために、式(27)~(31)を例えばXORゲートによって実装することができる。
ガロア体GF(2)の例で、多項式表現で与えられた要素の3乗をどのように決定することができるかを述べる。
多項式
a(x)=a+a+a+a+a
の3乗(a(x))が剰余多項式m(x)=1+x+xの剰余として決定される場合、以下の式が成り立つ。
(a(x)) mod m(x)=
=(a+a+a+a+a+a+a+a+a)・x
+(a+a+a+a+a+a+a)・x
+(a+a+a+a+a+a+a)・x
+(a+a+a+a+a+a)・x
+(a+a+a+a+a
それに対応して、ガロア体GF(2)での要素の3乗の生成は、5つのバイナリ入力および5つのバイナリ出力を有する3乗生成器によって実現することができる。5つのバイナリ入力に、バイナリ値a、a、a、a、aが供給され、5つのバイナリ出力で、バイナリ値f、f、f、f、fが提供される。
=a+a+a+a+a (32)
=a+a+a+a+a+a (33)
=a+a+a+a+a+a+a (34)
=a+a+a+a+a+a+a (35)
=a+a+a+a+a+a+a+a+a (36)
が成り立つ。
例えば、3乗生成器は、この例では、剰余多項式m(x)=1+x+xを有するガロア体GF(2)で単に式(32)~(36)を実装することによって実現することができる。
代替として、3乗生成器は、自乗器と、下流に接続されたガロア体乗算器とから実現することができる。また、要素a(x)の高次のべき乗は、対応する様式で、適切な構成要素を使用して実現することができる。
ガロア体GF(2)での定数乗算器の実装を、以下、例としてm=5に関して述べる。剰余多項式は、
m(x)=1+x+x
である。
a∈GF(2)とすると、ガロア体の任意の要素は、以下の多項式表現で表される。
a(x)=a+ax+a+a+a (37)
乗算すべき定数として、例えばαが選択され、その多項式表現は、図13に示される表に従って、
α(x)=x+x+x (38)
で与えられる。乗算として、
a(x)・α(x) mod (1+x+x)=b+bx+b+b+b (39)
が得られ、
=a+a, (40)
=a+a+a, (41)
=a+a+a, (42)
=a+a+a, (43)
=a+a+a (44)
である。
出力値b、…、bは、式(40)~(44)で表される関係に対応して入力値a、…、aから導出することができ、出力値は、入力値からのXOR演算によって決定される。ここで、符号「+」は、mod2加算(XOR演算)を示す。それに対応して、定数乗算器は、XORゲートによって実現することができる。
バイト誤り位置信号を生成するためのバイト誤り位置信号生成器の説明
図1は、バイト誤り位置信号を決定するための例示的な回路構成を示す。例えば、各バイトがそれぞれmビットを有するnバイトからなる符号語を有する2バイト誤り訂正誤り符号を考える。
回路構成は、N個のバイト誤り位置信号生成器10、11、…、1i、…、1N-1を有し、バイト誤り位置信号生成器10、11、…、1i、…、1N-1は、それらそれぞれの1ビット幅の出力を介してバイト誤り位置信号BPs、BPs、…、BPs、…、BPsN-1を提供する。
N個のバイト誤り位置信号生成器10、11、…、1i、…、1N-1のそれぞれ4・mビット幅の入力に、シンドローム発生器(図1には図示せず)から提供される4・mビット幅の誤りシンドローム
s=s,s,s,s
が提供され、この誤りシンドロームは、それぞれmビット幅のシンドローム成分s、s、s、sからなる。
1つの誤りの場合に全てのバイトが訂正される場合、N=nが成り立つ。1つの誤りの場合にn個未満のバイトが訂正される場合、N<nが成り立つ。例えば、誤りの場合、データバイトのみが訂正されることが可能である。そのような例では、検査バイトは訂正され得ない。
バイト誤り位置信号生成器10は、例えば、以下のように構成されている。
-バイト誤り位置信号生成器10は、
Figure 2024038056000035
が成り立つ場合には、バイト誤り位置信号BPs=1を出力し、
-バイト誤り位置信号生成器10は、
Figure 2024038056000036
が成り立つ場合には、バイト誤り位置信号BPs=0を出力する。
バイト誤り位置信号生成器11は、例えば、以下のように構成されている。
-バイト誤り位置信号生成器11は、
Figure 2024038056000037
が成り立つ場合には、バイト誤り位置信号BPs=1を出力し、
-バイト誤り位置信号生成器11は、
Figure 2024038056000038
が成り立つ場合には、バイト誤り位置信号BPs=0を出力する。
バイト誤り位置信号生成器1iは、例えば、以下のように構成されている。
-バイト誤り位置信号生成器1iは、
Figure 2024038056000039
が成り立つ場合には、バイト誤り位置信号BPs=1を出力し、
-バイト誤り位置信号生成器1iは、
Figure 2024038056000040
が成り立つ場合には、バイト誤り位置信号BPs=0を出力する。
バイト誤り位置信号生成器1N-1は、例えば、以下のように構成されている。
-バイト誤り位置信号生成器1N-1は、
Figure 2024038056000041
が成り立つ場合には、バイト誤り位置信号BPsN-1=1を出力し、
-バイト誤り位置信号生成器1N-1は、
Figure 2024038056000042
が成り立つ場合には、バイト誤り位置信号BPsN-1=0を出力する。
ここで、α mod 2-1のそれぞれの指数を解釈することができる。
2バイト誤りがあり、第jのバイトおよび第kのバイトが誤っている場合、i=jに関して、およびi=kに関して、バイト誤り位置信号BPsは1であり、l≠j,kとして全ての残りのバイト誤り位置信号BPsは0であり、ここで、
0≦i,j,k,l≦N-1,
α=1
が成り立ち、
1は、ガロア体GF(2)の単位元である。
図2によるバイト誤り位置信号生成器
図2は、図1に示される回路構成の可能な形態を示す回路構成を示す。
図1に示されるバイト誤り位置信号生成器10は、以下のものを含む。
-誤りシンドロームs=s,s,s,sの成分s、s、s、およびsを入力するための1つの4・mビット幅の入力と、3つのそれぞれmビット幅の出力とを有する部分回路210、
-第1のmビット幅の入力、第2のmビット幅の入力、および1つのmビット幅の出力を有する定数乗算器220、
-第1のmビット幅の入力、第2のmビット幅の入力、および1つのmビット幅の出力を有する定数乗算器230、
-3つのそれぞれmビット幅の入力、および1つのmビット幅の出力を有するXOR回路240、ならびに
-1つのmビット幅の入力および1つの1ビット幅のバイナリ出力を有するNOR回路250
部分回路210は、誤りシンドロームsの入力時に、
-第1の出力で、s・s+s・sを出力し、
-第2の出力で、
Figure 2024038056000043
を出力し、
-第3の出力で、
Figure 2024038056000044
を出力する
ように設計されている。
部分回路210の第1の出力は、定数乗算器220の第1の入力と接続されている。定数乗算器220の第2の入力には、定数α=1が入力され、それにより、定数乗算器220の出力で、
α(s・s+s・s)=s・s+s・s
が提供される。
定数乗算器220の出力は、XOR回路240の第1の入力と接続されている。
部分回路210の第2の出力は、定数乗算器230の第1の入力と接続されている。定数乗算器230の第2の入力には、定数α2・0=αが入力され、それにより、定数乗算器230の出力で、
Figure 2024038056000045
が提供される。
定数乗算器230の出力は、XOR回路240の第2の入力と接続されている。
部分回路210の第3の出力は、XOR回路240の第3の入力と接続されている。
XOR回路240は、例えば、その3つの入力に入力されたそれぞれmビット幅の値の成分ごとのXOR演算を生成し、そのmビット幅の出力で、値
Figure 2024038056000046
を提供し、この値は、NOR回路250の入力に送られる。NOR回路250は、その出力で、
-v=0が成り立つ場合には、バイナリ値BPs=1を提供し、
-v≠0が成り立つ場合には、バイナリ値BPs=0を提供する。
図1に示されるバイト誤り位置信号生成器11は、以下のものを含む。
-誤りシンドロームs=s,s,s,sの成分s、s、s、およびsを入力するための1つの4・mビット幅の入力と、3つのそれぞれmビット幅の出力とを有する部分回路211、
-第1のmビット幅の入力、第2のmビット幅の入力、および1つのmビット幅の出力を有する定数乗算器221、
-第1のmビット幅の入力、第2のmビット幅の入力、および1つのmビット幅の出力を有する定数乗算器231、
-3つのそれぞれmビット幅の入力、および1つのmビット幅の出力を有するXOR回路241、ならびに
-1つのmビット幅の入力および1つの1ビット幅のバイナリ出力を有するNOR回路251
部分回路211は、誤りシンドロームsの入力時に、
-第1の出力で、s・s+s・sを出力し、
-第2の出力で、
Figure 2024038056000047
を出力し、
-第3の出力で、
Figure 2024038056000048
を出力する
ように設計されている。
部分回路211の第1の出力は、定数乗算器221の第1の入力と接続されている。定数乗算器221の第2の入力には、定数αが入力され、それにより、定数乗算器221の出力で、
α(s・s+s・s
が提供される。
定数乗算器221の出力は、XOR回路241の第1の入力と接続されている。
部分回路211の第2の出力は、定数乗算器231の第1の入力と接続されている。定数乗算器231の第2の入力には、定数αが入力され、それにより、定数乗算器231の出力で、
Figure 2024038056000049
が提供される。
定数乗算器231の出力は、XOR回路241の第2の入力と接続されている。
部分回路211の第3の出力は、XOR回路241の第3の入力と接続されている。
XOR回路241は、例えば、その3つの入力に入力されたそれぞれmビット幅の値の成分ごとのXOR演算を生成し、そのmビット幅の出力で、値
Figure 2024038056000050
を提供し、この値は、NOR回路251の入力に供給される。NOR回路251は、その出力で、
-v1=0が成り立つ場合には、バイナリ値BPs=1を提供し、
-v1≠0が成り立つ場合には、バイナリ値BPs=0を提供する。
図1に示されるバイト誤り位置信号生成器1iは、以下のものを含む。
-誤りシンドロームs=s,s,s,sの成分s、s、s、およびsを入力するための1つの4・mビット幅の入力と、3つのそれぞれmビット幅の出力とを有する部分回路21i、
-第1のmビット幅の入力、第2のmビット幅の入力、および1つのmビット幅の出力を有する定数乗算器22i、
-第1のmビット幅の入力、第2のmビット幅の入力、および1つのmビット幅の出力を有する定数乗算器23i、
-3つのそれぞれmビット幅の入力、および1つのmビット幅の出力を有するXOR回路24i、ならびに
-1つのmビット幅の入力および1つの1ビット幅のバイナリ出力を有するNOR回路25i
部分回路21iは、誤りシンドロームsの入力時に、
-第1の出力で、s・s+s・sを出力し、
-第2の出力で、
Figure 2024038056000051
を出力し、
-第3の出力で、
Figure 2024038056000052
を出力する
ように設計されている。
部分回路21iの第1の出力は、定数乗算器22iの第1の入力と接続されている。定数乗算器22iの第2の入力には、定数αが入力され、それにより、定数乗算器22iの出力で、
α(s・s+s・s
が提供される。
定数乗算器22iの出力は、XOR回路24iの第1の入力と接続されている。
部分回路21iの第2の出力は、定数乗算器23iの第1の入力と接続されている。定数乗算器23iの第2の入力には、定数α2・iが入力され、それにより、定数乗算器23iの出力で、
Figure 2024038056000053
が提供される。
定数乗算器23iの出力は、XOR回路24iの第2の入力と接続されている。
部分回路21iの第3の出力は、XOR回路24iの第3の入力と接続されている。
XOR回路24iは、例えば、その3つの入力に入力されたそれぞれmビット幅の値の成分ごとのXOR演算を生成し、そのmビット幅の出力で、値
Figure 2024038056000054
を提供し、この値は、NOR回路25iの入力に供給される。NOR回路25iは、その出力で、
-v=0が成り立つ場合には、バイナリ値BPs=1を提供し、
-v≠0が成り立つ場合には、バイナリ値BPs=0を提供する。
図1に示されるバイト誤り位置信号生成器1N-1は、以下のものを含む。
-誤りシンドロームs=s,s,s,sの成分s、s、s、およびsを入力するための1つの4・mビット幅の入力と、3つのそれぞれmビット幅の出力とを有する部分回路21N-1、
-第1のmビット幅の入力、第2のmビット幅の入力、および1つのmビット幅の出力を有する定数乗算器22N-1、
-第1のmビット幅の入力、第2のmビット幅の入力、および1つのmビット幅の出力を有する定数乗算器23N-1、
-3つのそれぞれmビット幅の入力、および1つのmビット幅の出力を有するXOR回路24N-1、ならびに
-1つのmビット幅の入力および1つの1ビット幅のバイナリ出力を有するNOR回路25N-1
部分回路21N-1は、誤りシンドロームsの入力時に、
-第1の出力で、s・s+s・sを出力し、
-第2の出力で、
Figure 2024038056000055
を出力し、
-第3の出力で、
Figure 2024038056000056
を出力する
ように設計されている。
部分回路21N-1の第1の出力は、定数乗算器22N-1の第1の入力と接続されている。定数乗算器22N-1の第2の入力には、定数αN-1が入力され、それにより、定数乗算器22N-1の出力で、
αN-1(s・s+s・s
が提供される。
定数乗算器22N-1の出力は、XOR回路24N-1の第1の入力と接続されている。
部分回路21N-1の第2の出力は、定数乗算器23N-1の第1の入力と接続されている。定数乗算器23N-1の第2の入力には、定数α2・(N-1)が入力され、それにより、定数乗算器23N-1の出力で、
Figure 2024038056000057
が提供される。
定数乗算器23N-1の出力は、XOR回路24N-1の第2の入力と接続されている。
部分回路21N-1の第3の出力は、XOR回路24N-1の第3の入力と接続されている。
XOR回路24N-1は、例えば、その3つの入力に入力されたそれぞれmビット幅の値の成分ごとのXOR演算を生成し、そのmビット幅の出力で、値
Figure 2024038056000058
を提供し、この値は、NOR回路25N-1の入力に供給される。NOR回路25N-1は、その出力で、
-vN-1=0が成り立つ場合には、バイナリ値BPsN-1=1を提供し、
-vN-1≠0が成り立つ場合には、バイナリ値BPsN-1=0を提供する。
部分回路の例示的な統合
図2での部分回路210、211、…、21i、…、21N-1は、機能的に同じである。したがって、これらの部分回路を部分回路31に統合することが可能である。
図3は、部分回路210、211、…、21i,…、21N-1を統合する部分回路31を示す。図3に示される回路部分の残りは、図2と同一である。
例えば、図1によるバイト誤り位置信号生成器10、11、…、1i、…、1N-1は、共通の部分回路31を使用することができる。
部分回路31の例示的な実装
図4は、図3に示される部分回路31の可能な実装を示す。
部分回路31は、シンドロームsを構成する成分s、s、s、sを入力するための4つのそれぞれmビット幅の入力を有する。さらに、2つのmビット幅の入力および1つのmビット幅の出力をそれぞれ有する4つの乗算器41、42、44、および47と、1つのmビット幅の入力および1つのmビット幅の出力をそれぞれ有する2つの自乗器45および48と、2つのmビット幅の入力および1つのmビット幅の出力をそれぞれ有する3つのXOR回路43、46、および49とが提供されている。
XOR回路43、46、49は、それぞれ、そのそれぞれの入力に入力されたm成分値の成分ごとのXOR演算を実施する。乗算器は、ガロア体GF(2)での乗算を実施し、自乗器は、その入力に入力されたオペランドを、同様にガロア体GF(2)で自乗する。
成分sを送る入力は、乗算器41の第1の入力および乗算器44の第1の入力と接続されている。
成分sを送る入力は、乗算器42の第1の入力、乗算器47の第1の入力、および自乗器45の入力と接続されている。
成分sを送る入力は、乗算器42の第2の入力、乗算器44の第2の入力、および自乗器48の入力と接続されている。
成分sを送る入力は、乗算器41の第2の入力および乗算器47の第2の入力と接続されている。
乗算器41の出力は、XOR回路43の第1の入力につながれている。乗算器42の出力は、XOR回路43の第2の入力につながれている。XOR回路43の出力で、信号s+sが提供される。
乗算器44の出力は、XOR回路46の第1の入力につながれている。自乗器45の出力は、XOR回路46の第2の入力と接続されている。XOR回路46の出力で、信号
Figure 2024038056000059
が提供される。
乗算器47の出力は、XOR回路49の第1の入力につながれている。自乗器48の出力は、XOR回路49の第2の入力と接続されている。XOR回路49の出力で、信号
Figure 2024038056000060
が提供される。
2バイト誤りに関するバイト誤り訂正値
図5は、2バイト誤りの場合に合計Nバイトに関するバイト誤り訂正値を生成するための例示的な回路を示す。考察するN個のバイトに、0~N-1の番号を付す。
第i(0≦i≦N-1)のバイトに関するバイト誤り訂正値a(i)corは、実際の誤りシンドロームs、バイト位置i、およびバイト誤り位置信号BPsに応じて、
a(i)cor=BPs・a(i)
に従って決定される。
例えば、全てのN個のバイト位置に関してバイト誤り訂正値が決定される。誤っていないバイト位置に関して、バイト誤り訂正値はマスキングされる。例えば、マスキングは、値0を有するバイト誤り位置信号をバイト誤り訂正値に乗算することによって行われる。
バイト位置iおよびjに2バイト誤りがある場合、第iおよび第jのバイトを訂正することができる。これは、第iおよび第jのバイトを、対応するバイト誤り訂正値a(i)cor=a(i)≠0またはa(j)cor=a(j)≠0と成分ごとにXOR演算することによって行われる。
誤っていないバイトは訂正されない。このために、それらのバイト位置に関して、バイト誤り訂正値が0に設定され(例えば、前に説明したバイト誤り訂正値と0の乗算)、次いで、訂正されるバイトが、成分ごとにこの値0とXOR演算される。値0とのXOR演算によって、元の値は変わらない。
第iの誤っているバイトに関して、バイト誤り位置信号は、BPs=1であり、
a(i)cor=BPs・a(i)=a(i)
が成り立つ。
第jの誤っているバイトに関して、バイト誤り位置信号は、BPsj=1であり、
a(j)cor=BPsj・a(j)=a(j)
が成り立つ。
第k(k≠i,j)の誤っていないバイトに関して、バイト誤り位置信号は、BPsk=0であり、a(k)cor=BPsk・a(k)=0が成り立つ。
第k(k≠i,j)のバイトが誤っていない場合、そのバイトは訂正されない。これは、図5に示される例に従って、第kのバイトの値を変えないように第kのバイトを成分ごとに値0とXOR演算することによって達成することができる。それにより、バイト誤り位置信号は、バイト誤り訂正値をマスキングして0にし、したがって訂正は行われない。
2バイト誤りの場合に、第1のバイト誤りがバイト位置jにあり、第2のバイト誤りがバイト位置kにある場合、バイト誤り訂正値a(j)corおよびa(k)corは0でなく、i≠j,kに関するバイト誤り訂正値a(i)corは、それぞれ0である。このとき、
BPsj=BPsk=1
および
BPs=0(i≠j,kに関して)
も成り立つ。
図5は、誤りシンドロームsを入力するための1つの4・mビット幅(または4・m次元)の入力と、バイト誤り位置信号BPs、BPs、…、BPs、…、BPsN-1を出力するための1つの1ビット幅(または1次元)の出力とをそれぞれ有する、バイト誤り位置信号BPs、BPs、…、BPs、…、BPsN-1を生成するためのN個のバイト誤り位置信号生成器10、11、…、1i、…、1N-1を含む。
図5は、さらにN個のバイト誤り訂正値生成器510、511、…、51i、…、5N-1を示し、これらは、
-バイト誤り位置信号を入力するための第1の1ビット幅の入力と、
-誤りシンドロームsの成分s、s、sを入力するための第2の3・mビット幅の入力と、
-対応するバイト位置に関するバイト誤り訂正値a(0)cor、a(1)cor、…、a(i)cor、…、a(N-1)corを出力するためのmビット幅の出力と
をそれぞれ有する。
さらに、図5は、N個のXOR回路520、521、…、52i、…、52N-1を含み、これらは、それぞれ
-対応するバイト誤り訂正値を入力するためのmビット幅の第1の入力と、
-対応する訂正すべきバイトを入力するための第2のmビット幅の入力と、
-それぞれmビット幅の訂正されたバイトを出力するためのmビット幅の出力とを有する。
バイト誤り位置信号生成器10の4・mビット幅の入力に、実際の誤りシンドロームsが入力される。バイト誤り訂正値生成器510の第1の入力と接続されているバイト誤り位置信号生成器10の1ビット幅の出力で、バイト誤り位置信号BPsが出力される。
バイト誤り訂正値生成器510の第2の3・mビット幅の入力には、誤りシンドロームsの成分s、s、sが入力される。バイト誤り訂正値生成器510は、その出力で、バイト誤り訂正値a(0)corを提供する。バイト誤り訂正値生成器510の出力は、XOR回路520の第1の入力と接続されている。XOR回路520の第2の入力には、誤っている可能性がある第0のバイトのバイト値
Figure 2024038056000061
が入力される。XOR回路520は、誤っている可能性があるバイト値
Figure 2024038056000062
とバイト誤り訂正値a(0)corとの成分ごとのXOR演算を生成し、その出力で、値
Figure 2024038056000063
を出力する。バイト誤り訂正値a(0)corは、
-第0のバイトが正しく、BPs=0である場合には、0であり、
-第0のバイトが誤っており、BPs=1である場合には、0でない。
バイト誤り位置信号生成器11の4・mビット幅の入力に、実際の誤りシンドロームsが入力される。バイト誤り訂正値生成器511の第1の入力と接続されているバイト誤り位置信号生成器11の1ビット幅の出力で、バイト誤り位置信号BPsが出力される。
バイト誤り訂正値生成器511の第2の3・mビット幅の入力には、誤りシンドロームsの成分s、s、sが入力される。バイト誤り訂正値生成器511は、その出力で、バイト誤り訂正値a(1)corを提供する。バイト誤り訂正値生成器511の出力は、XOR回路521の第1の入力と接続されている。XOR回路521の第2の入力には、誤っている可能性がある第1のバイトのバイト値
Figure 2024038056000064
が入力される。XOR回路521は、誤っている可能性があるバイト値
Figure 2024038056000065
とバイト誤り訂正値a(1)corとの成分ごとのXOR演算を生成し、その出力で、値
Figure 2024038056000066
を出力する。バイト誤り訂正値a(1)corは、
-第1のバイトが正しく、BPs=0である場合には、0であり、
-第1のバイトが誤っており、BPs=1である場合には、0でない。
バイト誤り位置信号生成器1iの4・mビット幅の入力に、実際の誤りシンドロームsが入力される。バイト誤り訂正値生成器51iの第1の入力と接続されているバイト誤り位置信号生成器1iの1ビット幅の出力で、バイト誤り位置信号BPsが出力される。
バイト誤り訂正値生成器51iの第2の3・mビット幅の入力には、誤りシンドロームsの成分s、s、sが入力される。バイト誤り訂正値生成器51iは、その出力で、バイト誤り訂正値a(i)corを提供する。バイト誤り訂正値生成器51iの出力は、XOR回路52iの第1の入力と接続されている。XOR回路52iの第2の入力には、誤っている可能性がある第iのバイトのバイト値
Figure 2024038056000067
が入力される。XOR回路52iは、誤っている可能性があるバイト値
Figure 2024038056000068
とバイト誤り訂正値a(i)corとの成分ごとのXOR演算を生成し、その出力で、値
Figure 2024038056000069
を出力する。バイト誤り訂正値a(i)corは、
-第iのバイトが正しく、BPs=0である場合には、0であり、
-第iのバイトが誤っており、BPs=1である場合には、0でない。
バイト誤り位置信号生成器1N-1の4・mビット幅の入力に、実際の誤りシンドロームsが入力される。バイト誤り訂正値生成器51N-1の第1の入力と接続されているバイト誤り位置信号生成器1N-1の1ビット幅の出力で、バイト誤り位置信号BPsN-1が出力される。
バイト誤り訂正値生成器51N-1の第2の3・mビット幅の入力には、誤りシンドロームsの成分s、s、sが入力される。バイト誤り訂正値生成器51N-1は、その出力で、バイト誤り訂正値a(N-1)corを提供する。バイト誤り訂正値生成器51N-1の出力は、XOR回路52N-1の第1の入力と接続されている。XOR回路52N-1の第2の入力には、誤っている可能性がある第(N-1)のバイトのバイト値
Figure 2024038056000070
が入力される。XOR回路52N-1は、誤っている可能性があるバイト値
Figure 2024038056000071
とバイト誤り訂正値a(N-1)corとの成分ごとのXOR演算を生成し、その出力で、値
Figure 2024038056000072
を出力する。バイト誤り訂正値a(N-1)corは、
-第(N-1)のバイトが正しく、BPsN-1=0である場合には、0であり、
-第(N-1)のバイトが誤っており、BPsN-1=1である場合には、0でない。
したがって、バイト訂正器530は、バイト誤り位置信号生成器10およびバイト誤り訂正値生成器510を含み、バイト訂正器531は、バイト誤り位置信号生成器11およびバイト誤り訂正値生成器511を含み、バイト訂正器53iは、バイト誤り位置信号生成器1iおよびバイト誤り訂正値生成器51iを含み、バイト訂正器53N-1は、バイト誤り位置信号生成器1N-1およびバイト誤り訂正値生成器51N-1を含む。それに対応して、バイト訂正器530、531、…、53i、…、53N-1は、2バイト誤りに関するバイト訂正器と呼ぶことができる。
この例では、2バイト誤りに関するバイト訂正器は、誤っている2つのバイト位置に関するバイト誤り訂正値を出力する。誤りを有さないバイト位置に関して、バイト誤り訂正値は0である。
誤っているバイト位置iに関して、
a(i)cor=a(i)
が成り立つ。
誤っていないバイト位置jに関して、
a(j)cor=0
が成り立つ。
ここで、a(i)は、第iのバイトのバイト誤り訂正値である。
バイト誤り位置信号生成器が、誤りシンドロームsの4つの成分s、s、s、sに応じて、対応するバイト誤り位置信号を生成し、バイト誤り訂正値生成器が、この誤りシンドロームsの3つの成分s、s、sに応じて、対応するバイト誤り訂正値を生成することを具体的に表すために、図5に、例として2つの入力ライン、すなわち、成分s、s、s、sを入力するための入力ラインと、成分s、s、sを入力するためのさらなる入力ラインとが表されている。これらのラインは、成分s、s、sに関して統合することもできる。
r=0,…,N-1に関して、バイト誤り訂正値生成器51rは、XOR回路52rの第1のmビット幅の入力と接続されているそのmビット幅の出力で、2バイト誤りの場合に、
Figure 2024038056000073
が成り立つようにバイト誤り訂正値を生成するように構成される。
2バイト誤りの場合に、第jおよび第kのバイトが誤っている場合、バイト誤り訂正値生成器51jによってバイト誤り訂正値
Figure 2024038056000074
が出力され、バイト誤り訂正値生成器51kによってバイト誤り訂正値
Figure 2024038056000075
が出力される。全ての別のバイト誤り訂正値生成器51r(r≠j,k)および0≦r≦N-1に関して、バイト誤り訂正値は、a(r)cor=0である。
バイト誤り訂正値生成器
図6は、バイト誤り訂正値生成器51rの可能な形態を示し、ここで、rは、0~N-1の値を取ることができる。
バイト誤り訂正値生成器51rは、
-第1および第2のmビット幅の入力、ならびにmビット幅の出力をそれぞれ有する2つの乗算器61、66と、
-第1のmビット幅の入力、第2のmビット幅の入力、およびmビット幅の出力をそれぞれ有する2つのXOR回路63、64と、
-第1および第2のmビット幅の入力、ならびにmビット幅の出力を有する定数乗算器67であって、第2の入力に定数値α2rが入力される定数乗算器67と、
-mビット幅の入力およびmビット幅の出力を有する自乗器62と、
-mビット幅の入力およびmビット幅の出力を有する反転回路65と、
-第1の1ビット幅の入力、第2のmビット幅の入力、およびmビット幅の出力を有するAND回路68と
を含む。
乗算器61の第1の入力には、成分sの値が入力され、乗算器61の第2の入力には、成分sの値が入力される。乗算器61は、ガロア体GF(2)では値s・sを生成し、その出力で、値s・sを出力する。乗算器61の出力は、XOR回路63の第1の入力と接続されている。
XOR回路63の第2の入力は、自乗器62の出力と接続されており、自乗器62の入力には、成分sの値が入力される。したがって、自乗器62は、その出力で、値
Figure 2024038056000076
を出力する。XOR回路63は、その2つの入力に入力された値の成分ごとのXOR演算を生成し、その出力で、値
Figure 2024038056000077
を出力する。XOR回路63の出力は、乗算器66の第1の入力と接続されている。
XOR回路64の第1の入力には、成分sの値が入力される。定数乗算器67の第1の入力には、成分sの値が入力され、定数乗算器67の第2の入力には、定数α2rが入力される。定数乗算器67は、ガロア体GF(2)で、演算α2r・sを実現する。定数乗算器は、例えば、XORゲートを使用して実装することができる。
XOR回路64の出力で、値s+α2rが提供され、反転器65の入力に送られる。反転器65は、その出力で、値
Figure 2024038056000078
を提供する。
反転器65の出力は、乗算器66の第1の入力と接続されている。したがって、乗算器66は、その出力で、値
Figure 2024038056000079
を提供する。ここで、a(r)は、第rのバイトに関するバイト誤り訂正値である。AND回路68の第1の入力には、バイト誤り位置信号BPsrの値が入力される。AND回路68の第2の入力は、乗算器66の出力と接続されている。
AND回路は、その第2の入力に入力されたmビットとバイト誤り位置信号BPsrとのビットごとのAND演算を実現し、それにより、その出力で、値
Figure 2024038056000080
を提供する。
バイト誤り訂正値生成器、代替実施形態
図7は、図6と同様に第rのバイトに関して述べる、バイト誤り訂正値生成器51rのさらなる可能な形態を示す。ここで、rは、0~(N-1)の値を取ることができる。
図7に示されるバイト誤り訂正値生成器51rは、
-第1のmビット幅の入力、第2のmビット幅の入力、およびmビット幅の出力をそれぞれ有する3つの乗算器71、75、76と、
-mビット幅の第1の入力、mビット幅の第2の入力、およびmビット幅の出力をそれぞれ有する2つのXOR回路72、77と、
-第1のmビット幅の入力、第2のmビット幅の入力、およびmビット幅の出力を有する定数乗算器78であって、第2の入力に定数値α2rが入力される定数乗算器78と、
-mビット幅の入力およびmビット幅の出力を有する自乗器73と、
-mビット幅の入力およびmビット幅の出力を有する2つの反転器74、79と、
-第1の1ビット幅の入力、第2のmビット幅の入力、およびmビット幅の出力を有するAND回路710と
を含む。
乗算器71の第1の入力には、成分sの値が入力され、乗算器71の第2の入力には、成分sの値が入力される。乗算器71は、ガロア体GF(2)で値s・sを生成し、その出力で、値s・sを提供する。乗算器71の出力は、XOR回路72の第1の入力と接続されている。
XOR回路72の第2の入力は、自乗器73の出力と接続されており、自乗器73の入力には、成分sの値が入力される。したがって、自乗器73は、その出力で、値
Figure 2024038056000081
を提供する。XOR回路72は、その2つの入力に入力された値の成分ごとのXOR演算を生成し、その出力で、値
Figure 2024038056000082
を提供する。XOR回路72の出力は、反転器74の入力と接続されている。反転器74は、その出力で、値
Figure 2024038056000083
を提供する。
反転器74の出力は、乗算器75の第1の入力と接続されており、乗算器75の第2の入力には、成分sの値が入力される。さらに、反転器74の出力は、乗算器76の第1の入力と接続されており、乗算器76の第2の入力には、成分sの値が入力される。
乗算器76は、その出力で、値
Figure 2024038056000084
を提供する。乗算器76の出力は、定数乗算器78の第1の入力と接続されている。定数乗算器78の第2の入力には、値α2rが入力される。定数乗算器78は、その出力で、値
Figure 2024038056000085
を提供する。定数乗算器78は、その第1の入力に入力された値を、ガロア体GF2内で、その第2の入力に入力された定数α2rの値と乗算する。この乗算は、第1の入力に入力されたビットの対応するXOR演算によって実装される。定数α2rは、第rのバイトに一意に割り当てられる。
乗算器75は、その出力で、値
Figure 2024038056000086
を提供する。乗算器75の出力は、XOR回路77の第1の入力と接続されている。
定数乗算器78の出力は、XOR回路77の第2の入力と接続されている。XOR回路77は、その出力で、値
Figure 2024038056000087
を提供する。XOR回路77の出力は、反転器79の入力と接続されている。
反転器79は、その出力で、値
Figure 2024038056000088
を提供する。反転器79の出力は、AND回路710の第2の入力と接続されている。
AND回路710の第1の入力には、バイト誤り位置信号BPsrの値が入力されている。AND回路710は、その第2の入力に入力されたmビットとバイト誤り位置信号BPsrとのビットごとのAND演算を実現する。それにより、AND回路710は、その出力で、値
Figure 2024038056000089
を提供する。
乗算器71、75、76、XOR回路72、および自乗器73を含む図7に示される部分は、乗算器75および76の出力で、値
Figure 2024038056000090
および
Figure 2024038056000091
を出力し、これらは、成分s、s、sの値のみによって決定されており、バイト位置rには関係しない。回路のこの部分は、図5に示されるバイト誤り訂正値生成器510、511、…、51N-1全てに関して等しい。したがって、この回路部分を1つだけ提供し、乗算器71、75、および76の出力信号を全てのバイト誤り訂正値生成器510~51N-1に関して使用することが可能である。その際、様々なバイト位置0~N-1に関して、それぞれ、図7に示される回路の残りの部分711のみを実現することができ、部分711は、XOR回路77、定数乗算器78、反転器79、およびAND回路710を含む。
訂正可能なバイト位置に関して、例えば、全ての訂正可能なバイト位置に関して、または訂正可能なバイト位置の一部に関して、最高で3回の乗算を使用して、バイト誤り訂正値生成器を実現することが1つの選択肢である。その際、3回の乗算を、3つの乗算器を使用して実装することができる。また、特に、定数乗算器によって、定数のさらなる乗算を実施することも1つの選択肢である。
1バイトおよび2バイト誤りの訂正、図8
図8は、1バイト誤りおよび2バイト誤りを訂正するための例示的な回路を示し、ここで、これらの回路は、2バイト誤りに関するバイト誤り位置信号を決定するため、および2バイト誤りを訂正するために使用することができる。
図8に示される回路は、例えば、
-2バイト誤りがある場合には、2バイト誤りが訂正され、
-1バイト誤りがある場合には、1バイト誤りが訂正され、
-誤りがない場合には、訂正が行われない
ように構成されている。
このために、図8は、
-成分s、sを入力するための2・mビット幅の入力、およびmビット幅のバイト誤り訂正値を出力するためのmビット幅の出力をそれぞれ有する、1バイト誤りを訂正するためのN個のバイト誤り訂正値生成器810、…、81i、…、81N-1と、
-成分s、s、s、sを入力するための4・mビット幅の入力、およびmビット幅のバイト誤り訂正値を出力するためのmビット幅の出力をそれぞれ有する、2バイト誤りを訂正するためのN個のバイト訂正器530、…、53i、…、53N-1(これは図5で述べたのと同様)と、
-N個のマルチプレクサ820、…、82i、…82N-1であって、
-第1のmビット幅の入力(0入力)、
-第2のmビット幅の入力(1入力)、
-バイナリ制御信号stを入力可能な1ビット幅の制御入力、および
-mビット幅の出力
をそれぞれ有するN個のマルチプレクサ820、…、82i、…82N-1と、
-バイナリ誤り信号Eを入力するための第1の1ビット幅の入力、第2のmビット幅の入力、およびmビット幅の出力をそれぞれ有するN個のAND回路830、…、83i、…、83N-1と、
-第1のmビット幅の入力、第2のmビット幅の入力、およびmビット幅の出力をそれぞれ有するN個のXOR回路840、…、84i、…、84N-1と
を含む。
ライン85は、成分s、sを伝送し、バイト誤り訂正値生成器810、…、81i、…、81N-1のそれぞれの入力と接続されている。
ライン86は、成分s、s、s、sを伝送し、バイト訂正器530、…、53i、…、53N-1のそれぞれの入力と接続されている。
バイト誤り訂正値生成器810は、バイト位置0での1バイト誤りの場合に、その出力で、誤っている第0のバイト
Figure 2024038056000092
に関する正しいバイト誤り訂正値を提供する。これは、さらなるバイト誤り訂正値生成器にも同様に当てはまる。したがって、バイト誤り訂正値生成器81iは、バイト位置iでの1バイト誤りの場合に、その出力で、誤っている第iのバイト
Figure 2024038056000093
に関する正しいバイト誤り訂正値を提供する。バイト誤り訂正値生成器81N-1は、バイト位置(N-1)での1バイト誤りの場合に、その出力で、誤っている第(N-1)のバイト
Figure 2024038056000094
に関する正しいバイト誤り訂正値を提供する。
1バイト誤りを訂正するためのバイト誤り訂正値生成器の可能な実現形態を、図10に関連付けて説明する。
バイト訂正器530~53N-1の可能な実現形態に関して、例えば、図2に関連付けて述べた位置信号生成器と、図6および図7に関連付けて述べたバイト誤り訂正値生成器とが挙げられる。
バイト誤り訂正値生成器810の出力は、マルチプレクサ820の第1の入力と接続されている。バイト訂正器530の出力は、マルチプレクサ820の第2の入力と接続されている。制御信号stの値が0である場合、マルチプレクサ820は、その0入力(第1の入力)をその出力と接続する。制御信号stの値が1である場合、マルチプレクサ820は、その1入力(第2の入力)をその出力と接続する。
AND回路830の第1の入力には、バイナリ誤り信号Eが入力される。マルチプレクサ820の出力は、AND回路830の第2の入力と接続されている。AND回路830の出力は、XOR回路840の第1の入力と接続されている。XOR回路840の第2の入力には、誤っている可能性があるバイト
Figure 2024038056000095
が入力されている。XOR回路840は、その出力で、訂正されたバイト値
Figure 2024038056000096
を提供する。
AND回路830は、その第2の入力に入力されたm桁の値と誤り信号Eとの成分ごとのAND演算を可能にする。誤り信号E=0である場合、AND回路830は、m成分値0を出力する。誤り信号E=1である場合、AND回路830は、その第2の入力に入力された値を出力する。
これらの実施形態は、残りのバイト位置にも同様に当てはまる。
バイト誤り訂正値生成器81iの出力は、マルチプレクサ82iの第1の入力と接続されている。バイト誤り訂正値生成器53iの出力は、マルチプレクサ82iの第2の入力と接続されている。制御信号stの値が0である場合、マルチプレクサ82iは、その0入力(第1の入力)をその出力と接続する。制御信号stの値が1である場合、マルチプレクサ82iは、その1入力(第2の入力)をその出力と接続する。
AND回路83iの第1の入力には、バイナリ誤り信号Eが入力される。マルチプレクサ82iの出力は、AND回路83iの第2の入力と接続されている。AND回路83iの出力は、XOR回路84iの第1の入力と接続されている。XOR回路84iの第2の入力には、誤っている可能性があるバイト
Figure 2024038056000097
が入力される。XOR回路84iは、その出力で、訂正されたバイト値
Figure 2024038056000098
を提供する。
AND回路83iは、その第2の入力に入力されたm桁の値と誤り信号Eとの成分ごとのAND演算を可能にする。誤り信号E=0である場合、AND回路83iは、m成分値0を出力する。誤り信号E=1である場合、AND回路83iは、その第2の入力に入力された値を出力する。
バイト誤り訂正値生成器81N-1の出力は、マルチプレクサ82N-1の第1の入力と接続されている。バイト誤り訂正値生成器53N-1の出力は、マルチプレクサ82N-1の第2の入力と接続されている。制御信号stの値が0である場合、マルチプレクサ82N-1は、その0入力(第1の入力)をその出力と接続する。制御信号stの値が1である場合、マルチプレクサ82N-1は、その1入力(第2の入力)をその出力と接続する。
AND回路83N-1の第1の入力には、バイナリ誤り信号Eが入力される。マルチプレクサ82N-1の出力は、回路83N-1の第2の入力と接続されている。AND回路83N-1の出力は、XOR回路84N-1の第1の入力と接続されている。XOR回路84N-1の第2の入力には、誤っている可能性があるバイト
Figure 2024038056000099
が入力される。XOR回路84N-1は、その出力で、訂正されたバイト値
Figure 2024038056000100
を提供する。
AND回路83N-1は、その第2の入力に入力されたm桁の値と誤り信号Eとの成分ごとのAND演算を可能にする。誤り信号E=0である場合、AND回路83N-1は、m成分値0を出力する。誤り信号E=1である場合、AND回路83N-1は、その第2の入力に入力された値を出力する。
誤り信号Eは、
-1バイト誤りまたは2バイト誤りが発生している場合には、値1を取り、
-誤りが発生していない場合には、値0を取る。
制御信号stは、
-1バイト誤りが発生している場合には、値0を取り、
-2バイト誤りが発生している場合には、値1を取る。
3つ以上のバイト誤りを訂正するための回路
図9は、1バイト誤り、2バイト誤り、…、tバイト誤りを訂正するための回路を示す。この回路では、図8で述べた要素を同様に使用することができる。
図9に示される回路は、
-1バイト誤りがある場合には、1バイト誤りが訂正され、
-2バイト誤りがある場合には、2バイト誤りが訂正され、
-以下同様に、
-tバイト誤りがある場合には、tバイト誤りが訂正され、
-誤りがない場合には、訂正が行われない
ことを可能にする。
例として、tバイト誤り訂正および(t+1)バイト誤り認識符号が使用される場合を述べる。ここで、特に、t>2が成り立つ。
図9による回路は、
-図8によるN個のバイト誤り訂正値生成器810~81N-1、
-図8による(図5にも述べたような)N個のバイト訂正器530~53N-1、以下同様に、
-成分s、s、…、s2tを入力するための2・t・mビット幅の入力、およびmビット幅のバイト誤り訂正値を出力するためのmビット幅の出力をそれぞれ有する、tバイト誤りを訂正するためのN個のバイト誤り訂正値生成器910、…、91i、…、91N-1、
-N個のマルチプレクサ920、…、92i、…、92N-1であって、
-第1のmビット幅の入力(0入力)、
-第2のmビット幅の入力(1入力)、
-以下同様に、第tのmビット幅の入力((t-1)入力)、
-t個の異なる値を取ることができる制御信号stが入力される制御入力、および
-mビット幅の出力
をそれぞれ有するN個のマルチプレクサ920、…、92i、…、92N-1、
-バイナリ誤り信号Eを入力するための第1の1ビット幅の入力、第2のmビット幅の入力、およびmビット幅の出力をそれぞれ有するN個のAND回路930、…、93i、…、93N-1、ならびに
-第1のmビット幅の入力、第2のmビット幅の入力、およびmビット幅の出力をそれぞれ有するN個のXOR回路940、…、94i、…、94N-1
を含む。
制御信号stが値0を有するとき、マルチプレクサ920~92N-1の1つの0入力がその出力と接続される。それに対応して、対応する制御信号stが0~(t-1)の値を取ることによって、入力0~(t-1)の1つと出力との接続を確立することができる。例えば、st=(t-1)=3が成り立つ場合、マルチプレクサの第3の入力(2入力)が、その出力と接続される。
ライン95は、成分s、sを伝送し、バイト誤り訂正値生成器810、…、81i、…、81N-1のそれぞれの入力と接続されている。
ライン96は、成分s、s、s、sを伝送し、バイト訂正器530、…、53i、…、53N-1のそれぞれの入力と接続されている。
最後に、ライン97が示されており、ライン97に基づいて、成分s、s、…、s2tが、バイト誤り訂正値生成器910、…、91i、…、91N-1のそれぞれの入力につながれている。
バイト誤り訂正値生成器810は、バイト位置0での1バイト誤りの場合に、その出力で、誤っている第0のバイト
Figure 2024038056000101
に関する正しいバイト誤り訂正値を提供する。これは、さらなるバイト誤り訂正値生成器にも同様に当てはまる。したがって、バイト誤り訂正値生成器81iは、バイト位置iでの1バイト誤りの場合に、その出力で、誤っている第iのバイト
Figure 2024038056000102
に関する正しいバイト誤り訂正値を提供する。バイト誤り訂正値生成器81N-1は、バイト位置(N-1)での1バイト誤りの場合に、その出力で、誤っている第(N-1)のバイト
Figure 2024038056000103
に関する正しいバイト誤り訂正値を提供する。
バイト訂正器530は、2バイト誤りの場合に、その出力で、誤っている第0のバイト
Figure 2024038056000104
に関する正しいバイト誤り訂正値を提供する。これは、さらなるバイト誤り訂正値生成器にも同様に当てはまる。したがって、バイト誤り訂正値生成器53iは、2バイト誤りの場合に、その出力で、誤っている第iのバイト
Figure 2024038056000105
に関する正しいバイト誤り訂正値を提供する。バイト誤り訂正値生成器53N-1は、2バイト誤りの場合に、その出力で、誤っている第(N-1)のバイト
Figure 2024038056000106
に関する正しいバイト誤り訂正値を提供する。
バイト誤り訂正値生成器910は、tバイト誤りの場合に、その出力で、誤っている第0のバイト
Figure 2024038056000107
に関する正しいバイト誤り訂正値を提供する。これは、さらなるバイト誤り訂正値生成器にも同様に当てはまる。したがって、バイト誤り訂正値生成器91iは、tバイト誤りの場合に、その出力で、誤っている第iのバイト
Figure 2024038056000108
に関する正しいバイト誤り訂正値を提供する。バイト誤り訂正値生成器91N-1は、tバイト誤りの場合に、その出力で、誤っている第(N-1)のバイト
Figure 2024038056000109
に関する正しいバイト誤り訂正値を提供する。
誤っていないバイトに関しては、それらのバイト位置に割り当てられたバイト誤り訂正値は、それぞれ値0でマスキングされている。
バイト誤り訂正値生成器810の出力は、マルチプレクサ920の第1の入力(0入力)と接続されている。バイト訂正器530の出力は、マルチプレクサ920の第2の入力(1入力)と接続されている。それに対応して、バイト誤り訂正値生成器910の出力は、マルチプレクサ920の第tの入力((t-1)入力)と接続されている。
AND回路930の第1の入力には、バイナリ誤り信号Eが入力される。マルチプレクサ920の出力は、AND回路930の第2の入力と接続されている。AND回路930の出力は、XOR回路940の第1の入力と接続されている。XOR回路940の第2の入力には、誤っている可能性があるバイト値
Figure 2024038056000110
が入力される。XOR回路940は、その出力で、訂正されたバイト値
Figure 2024038056000111
を提供する。
AND回路930は、その第2の入力に入力されたm桁の値と誤り信号Eとの成分ごとのAND演算を可能にする。誤り信号E=0である場合、AND回路930は、m成分値0を出力する。誤り信号E=1である場合、AND回路930は、その第2の入力に入力された値を出力する。
これらの実施形態は、残りのバイト位置にも同様に当てはまる。
バイト誤り訂正値生成器81iの出力は、マルチプレクサ92iの第1の入力(0入力)と接続されている。バイト誤り訂正値生成器53iの出力は、マルチプレクサ92iの第2の入力(1入力)と接続されている。それに対応して、バイト誤り訂正値生成器91iの出力は、マルチプレクサ92iの第tの入力((t-1)入力)と接続されている。
AND回路93iの第1の入力には、バイナリ誤り信号Eが入力される。マルチプレクサ92iの出力は、AND回路93iの第2の入力と接続されている。AND回路93iの出力は、XOR回路94iの第1の入力と接続されている。XOR回路94iの第2の入力には、誤っている可能性があるバイト
Figure 2024038056000112
が入力される。XOR回路94iは、その出力で、訂正されたバイト値
Figure 2024038056000113
を提供する。
AND回路93iは、その第2の入力に入力されたm桁の値と誤り信号Eとの成分ごとのAND演算を可能にする。誤り信号E=0である場合、AND回路93iは、m成分値0を出力する。誤り信号E=1である場合、AND回路93iは、その第2の入力に入力された値を出力する。
バイト誤り訂正値生成器81N-1の出力は、マルチプレクサ92N-1の第1の入力(0入力)と接続されている。バイト誤り訂正値生成器53N-1の出力は、マルチプレクサ92N-1の第2の入力(1入力)と接続されている。それに対応して、バイト誤り訂正値生成器91N-1の出力は、マルチプレクサ92N-1の第tの入力((t-1)入力)と接続されている。
AND回路93N-1の第1の入力には、バイナリ誤り信号Eが入力される。マルチプレクサ92N-1の出力は、回路93N-1の第2の入力と接続されている。AND回路93N-1の出力は、XOR回路94N-1の第1の入力と接続されている。XOR回路94N-1の第2の入力には、誤っている可能性があるバイト値
Figure 2024038056000114
が入力される。XOR回路94N-1は、その出力で、訂正されたバイト値
Figure 2024038056000115
を提供する。
AND回路93N-1は、その第2の入力に入力されたm桁の値と誤り信号Eとの成分ごとのAND演算を可能にする。誤り信号E=0である場合、AND回路93N-1は、m成分値0を出力する。誤り信号E=1である場合、AND回路93N-1は、その第2の入力に入力された値を出力する。
誤り信号Eは、
-1バイト誤り、2バイト誤り、…、またはtバイト誤りが発生している場合には、値1を取り、
-誤りが発生していない場合には、値0を取る。
制御信号stは、
-1バイト誤りが発生している場合には、値0を取り、
-2バイト誤りが発生している場合には、値1を取り、
-以下同様に、
-tバイト誤りが発生している場合には、値(t-1)
を取る。
1バイト誤りに関するバイト誤り訂正器
図10は、図8に関連して説明したような、第iのバイトに関するバイト誤り訂正値生成器81iに関する例示的な回路を示す。
バイト誤り訂正値生成器81iは、
-定数乗算器101であって、
-第1のmビット幅の入力、
-定数値αが入力される第2のmビット幅の入力、および
-mビット幅の出力
を有する定数乗算器101と、
-第1のmビット幅の入力、第2のmビット幅の入力、およびmビット幅の出力を有するXOR回路102と、
-mビット幅の入力および1ビット幅の出力を有するNOR回路103と、
-第1の1ビット幅の入力、第2のmビット幅の入力、およびmビット幅の出力を有するAND回路104と
を含む。
さらに、図10には、図8(および図5)からのマルチプレクサ82iおよびバイト誤り訂正値生成器53iが示されている。
定数乗算器101、XOR回路102、およびNOR回路103は、バイト誤り位置信号生成器105を形成し、例えば、第iのバイト位置に1バイト誤りがあるかどうかを示すバイト誤り位置信号
Figure 2024038056000116
を生成する働きをする。
バイト位置iに1バイト誤りが発生している場合、AND回路104の出力で、m次元のバイト誤り訂正値a(i)corが提供される。1バイト誤りが、iとは異なる別のバイト位置jで発生している場合、バイト誤り位置信号BPs=0であり、したがって、AND回路104の出力でも値0になる。
定数乗算器101の第1の入力には、成分sが入力され、定数乗算器101の第2の入力には、定数αが入力される。定数乗算器101の出力は、XOR回路102の第1の入力と接続されている。XOR回路102の第2の入力には、成分sが入力される。XOR回路102の出力は、NOR回路103の入力と接続されている。NOR回路103の出力は、AND回路104の第1の入力と接続されている。AND回路104の第2の入力には、成分sが入力される。AND回路104の出力は、マルチプレクサ82iの第1の入力と接続されている。
マルチプレクサ82iの第2の入力は、バイト誤り訂正値生成器53iの出力と接続されている。
したがって、マルチプレクサ82iの第1の入力には、1バイト誤りに関するバイト誤り訂正値が提供され、マルチプレクサ82iの第2の入力には、2バイト誤りに関するバイト誤り訂正値が提供される。
それに対応して、マルチプレクサ82iに関する制御信号stは、
-1バイト誤りがある場合には0であり、マルチプレクサ82iの第1の入力(0入力)をその出力と接続し、または
-2バイト誤りがある場合には1であり、マルチプレクサ82iの第2の入力(1入力)をその出力と接続する。
誤りがない場合、制御信号stの値は任意である。例えば、例として以下に述べるように0に設定することができる。
誤りがない場合、誤り信号Eの値は、0である。これは、図8に関連付けて前に説明した。マルチプレクサ82iの出力での信号を成分ごとに誤り信号Eと論理AND演算する下流に接続されたAND回路83iに基づいて、誤り信号E=0において(すなわち誤りがないとき)、マルチプレクサ82iの出力での信号には関係なくAND回路83iの出力で値0が提供されることが保証される。したがって、第iのバイトの訂正は行われない。
誤り信号を決定するための回路
図11は、例えば図8に示される回路で使用されるような誤り信号Eを決定するための例示的な回路を示す。
図11に示される構成は、
-第1のmビット幅の入力、第2のmビット幅の入力、およびmビット幅の出力を有する乗算器111と、
-第1のmビット幅の入力、第2のmビット幅の入力、およびmビット幅の出力を有するXOR回路113と、
-mビット幅の入力およびmビット幅の出力を有する自乗器112と、
-mビット幅の入力および1ビット幅の出力を有するOR回路114と、
-mビット幅の入力および1ビット幅の出力を有するOR回路116と、
-第1のバイナリ入力、第2のバイナリ入力、およびバイナリ出力を有するOR回路115と
を含む。
乗算器111の第1の入力には、成分sの値が入力される。乗算器111の第2の入力には、成分sの値が入力される。乗算器111の出力は、XOR回路113の第1の入力と接続されている。
成分sは、OR回路116の入力にも入力される。OR回路116の出力は、OR回路115の第2の入力と接続されている。
成分sは、自乗器112の入力に入力される。自乗器112の出力は、XOR回路113の第2の入力と接続されている。
XOR回路113の出力は、OR回路114の入力と接続されており、OR回路114の出力は、OR回路115の第1の入力と接続されている。
OR回路114の出力で、制御信号stが提供され、OR回路115の出力で誤り信号Eが提供される。
制御信号stは、
Figure 2024038056000117
が成り立つ場合に値0を取る。
それに対応して、制御信号stは、
Figure 2024038056000118
が成り立つ場合に値1を取る。
誤り信号Eは、制御信号stが0である場合、および成分sの値が0である場合、値0を取る。この場合、1バイト誤りも2バイト誤りもない。
制御信号stの値が1である場合、図8による回路において、バイト訂正器530~53N-1を使用して2バイト訂正が行われる。
制御信号stの値が0である場合、図8による回路において、まず、バイト誤り訂正値生成器810~81N-1を使用して1バイト訂正が行われる。誤り信号Eが0であり、したがって1バイト誤りも2バイト誤りもない場合、AND回路830~83N-1が全て値0を出力し、したがって、バイト
Figure 2024038056000119
の訂正は行われない。
3バイト誤りが認識される場合、例えば、誤り訂正を中断することができる。誤り訂正のそのような中断は、システムレベルで行うことができる。
3バイト誤りを認識するための回路
図12は、3バイト誤りを認識するための例示的な回路を示す。このために、回路は、
-第1のmビット幅の入力、ならびに第2のmビット幅および第3のmビット幅の出力をそれぞれ有する4つの乗算器121、122、123、124と、
-mビット幅の入力およびmビット幅の出力をそれぞれ有する3つの自乗器125、126、127と、
-第1のmビット幅の入力、第2のmビット幅の入力、およびmビット幅の出力をそれぞれ有する3つのXOR回路128、129、1210と、
-mビット幅の入力およびバイナリ出力を有するOR回路1211とを含み、OR回路1211は、その入力に入力されたmビットの成分ごとのOR演算を行う。
乗算器121の第1の入力および乗算器123の第2の入力に、成分sの値が入力される。
自乗器126の入力には、成分sの値が入力される。
自乗器125の入力および乗算器122の第2の入力には、成分sの値が入力される。
自乗器127の入力には、成分sの値が入力される。
乗算器121の第2の入力および乗算器124の第1の入力には、成分sの値が入力される。
乗算器121の出力は、XOR回路128の第1の入力と接続されている。自乗器125の出力は、XOR回路128の第2の入力と接続されている。XOR回路128の出力は、乗算器122の第1の入力と接続されている。乗算器122の出力は、XOR回路129の第1の入力と接続されている。
自乗器127の出力は、乗算器123の第1の入力と接続されている。乗算器123の出力は、XOR回路1210の第1の入力と接続されている。
自乗器126の出力は、乗算器124の第2の入力と接続されており、乗算器124の出力は、XOR回路1210の第2の入力と接続されている。XOR回路1210の出力は、XOR回路129の第2の入力と接続されている。XOR回路129の出力は、OR回路1211の入力と接続されており、OR回路1211の出力で信号Err3が提供され、信号Err3に基づいて、3バイト誤りを決定することができる。
信号Err3は、
Figure 2024038056000120
が成り立つ場合には、値1を取る。
それに対応して、信号Err3は、
Figure 2024038056000121
が成り立つ場合には、値0を取る。
10、11、…、1i、…、1N-1 バイト誤り位置信号生成器
、s、s、s シンドローム成分
BPs0 バイト誤り位置信号
210 部分回路
220 定数乗算器
230 定数乗算器
240 XOR回路
250 NOR回路

Claims (25)

  1. 少なくとも2つのバイト誤り位置信号を決定するための回路構成であって、
    複数のバイトを含むバイナリ列内の少なくとも1つのバイト誤りを識別し、
    前記バイナリ列が、誤っていない場合、誤り符号の符号語であり、
    前記回路構成が、前記誤り符号の誤りシンドロームの成分を使用して前記少なくとも2つのバイト誤り位置信号それぞれを決定可能であるように設計されており、前記少なくとも2つのバイト誤り位置信号それぞれが、前記バイト誤り位置信号と関連する前記バイナリ列のバイトが誤っているか否かを示し、
    前記少なくとも2つのバイト誤り位置信号が並列で決定される、
    回路構成。
  2. 前記誤り符号の誤りシンドロームの成分を使用して前記バイト誤り位置信号を決定可能であり、前記バイト誤り位置信号が、前記バイナリ列の前記バイトのうちの少なくとも2つのバイトに関して訂正可能な誤りがあることを示すように設計されている、請求項1に記載の回路構成。
  3. 前記誤り符号が、tバイト誤り訂正符号であり、少なくとも(t+1)個のバイト誤り位置信号が並列して決定される、請求項1または2に記載の回路構成。
  4. 前記バイナリ列が2バイト誤りを有する、請求項1~3のいずれか一項に記載の回路構成。
  5. 前記バイナリ列の各バイトがmビットを有し、ここでm≧2が成り立つ、請求項1~4のいずれか一項に記載の回路構成。
  6. 前記誤り符号が、
    tバイト誤り訂正符号、または
    tバイト誤り訂正および(t+1)バイト誤り認識符号
    であり、ここでt≧2が成り立つ、請求項1~5のいずれか一項に記載の回路構成。
  7. 前記バイナリ列が、少なくとも(t+1)個の訂正可能なバイトを有する、請求項6に記載の回路構成。
  8. 前記誤りシンドロームが、少なくとも2・t個の成分s、s、…、s2tを有し、ここで、各成分がそれぞれmビットを含み、m≧2である、請求項6または7に記載の回路構成。
  9. 前記バイト誤り位置信号が、前記バイト誤り位置信号に関連するバイトが誤っている場合に第1の値を有し、前記バイト誤り位置信号に関連するバイトが誤っていない場合に第2の値を有する、請求項1~8のいずれか一項に記載の回路構成。
  10. 前記バイト誤り位置信号の少なくとも1つが、少なくとも1つの訂正されたバイトに関して決定される、請求項1~9のいずれか一項に記載の回路構成。
  11. 前記バイナリ列が、データバイトおよび検査バイトを含み、前記データバイトおよび/または検査バイトが訂正可能なバイトを構成する、請求項1~10のいずれか一項に記載の回路構成。
  12. 複数のバイトを含むバイナリ列内の少なくとも1つのバイト誤りを訂正するための回路構成であって、前記バイナリ列が、誤っていない場合、誤り符号の符号語であり、前記回路構成が、
    前記誤り符号の誤りシンドロームの成分を使用して前記少なくとも1つのバイト誤り位置信号を決定し、前記バイナリ列のバイトが誤っているか否かを少なくとも1つのバイト誤り位置信号によって決定可能であり、
    少なくとも1つのバイト誤り訂正値を決定し、前記バイト誤り訂正値に基づいて、前記バイト誤り位置信号によって識別される誤っているバイト位置を訂正可能であり、
    少なくとも1つの正しいバイトに関して前記バイト誤り訂正値の少なくとも1つが決定されるように設計されている、
    回路構成。
  13. 前記少なくとも1つのバイト誤り位置信号および/または少なくとも1つのバイト誤り訂正値が並列して決定される、請求項12に記載の回路構成。
  14. 前記誤り符号が、tバイト誤り訂正符号であり、少なくとも(t+1)個のバイト誤り位置信号が並列して決定される、請求項13に記載の回路構成。
  15. 前記誤り符号が、tバイト誤り訂正符号であり、少なくとも(t+1)個のバイト誤り訂正値が並列して決定される、請求項13または14に記載の回路構成。
  16. 前記少なくとも(t+1)個のバイト誤り訂正値が、最大で3個のガロア体乗算器を使用して決定され、ここでt≧2である、請求項15に記載の回路構成。
  17. 前記誤っているバイトに関して前記バイト誤り位置信号が前記バイト誤り訂正値と演算されることによって、前記バイト誤りの1つを訂正するように設計されている、請求項12~16のいずれか一項に記載の回路構成。
  18. tバイト誤りを訂正するように設計されており、ここでt≧2が成り立つ、請求項12~17のいずれか一項に記載の回路構成。
  19. さらに、1バイト誤りを訂正するように設計されている、請求項18に記載の回路構成。
  20. さらに、τバイト誤りを訂正するように設計されており、ここで、t≧τ>2が成り立つ、請求項18または19に記載の回路構成。
  21. 2バイト誤りの場合に、前記第iのバイトが訂正可能なバイトであり、
    前記第iのバイトに関する前記バイト誤り位置信号が、
    Figure 2024038056000122
    が成り立つ場合には、第1の値を取り、
    前記第iのバイトに関する前記バイト誤り位置信号が、
    Figure 2024038056000123
    が成り立つ場合には、第2の値を取り、
    前記第iのバイトに関連するバイト誤り位置信号が前記第1の値を取る場合には、前記第iのバイトが誤っている、
    請求項12~20のいずれか一項に記載の回路構成。
  22. 2バイト誤りの場合に、前記第iのバイトの前記バイト誤り訂正値が、
    Figure 2024038056000124
    に従って決定される、請求項12~21のいずれか一項に記載の回路構成。
  23. 2バイト誤りの場合に、訂正可能なバイトの前記訂正が、前記誤りシンドロームの3つの成分、およびバイト誤り位置信号に応じて決定される、請求項12~22のいずれか一項に記載の回路構成。
  24. 少なくとも2つのバイト誤り位置信号を決定するための方法であって、
    複数のバイトを含むバイナリ列内の少なくとも1つのバイト誤りを識別し、
    前記バイナリ列が、誤っていない場合、誤り符号の符号語であり、
    前記少なくとも2つのバイト誤り位置信号それぞれが、前記誤り符号の誤りシンドロームの成分を使用して決定され、前記バイト誤り位置信号と関連する前記バイナリ列のバイトが誤っているか否かを示し、
    前記少なくとも2つのバイト誤り位置信号が並列で決定される、
    方法。
  25. 複数のバイトを含むバイナリ列内の少なくとも1つのバイト誤りを訂正するための方法であって、前記バイナリ列が、誤っていない場合、誤り符号の符号語であり、前記方法が、
    前記誤り符号の誤りシンドロームの成分を使用して前記少なくとも1つのバイト誤り位置信号を決定し、前記バイナリ列のバイトが誤っているか否かを少なくとも1つのバイト誤り位置信号によって決定可能である、ステップと、
    少なくとも1つのバイト誤り訂正値を決定するステップであって、前記バイト誤り訂正値に基づいて、前記バイト誤り位置信号によって識別される誤っているバイト位置が訂正される、ステップとを含み、
    少なくとも1つの正しいバイトに関して前記バイト誤り訂正値の少なくとも1つが決定される、
    方法。
JP2023217133A 2017-11-02 2023-12-22 バイト誤り位置信号の決定および使用 Pending JP2024038056A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102017125617.2 2017-11-02
DE102017125617.2A DE102017125617B8 (de) 2017-11-02 2017-11-02 Bestimmung und verwendung von bytefehlerpositionssignalen
JP2018203555A JP2019110522A (ja) 2017-11-02 2018-10-30 バイト誤り位置信号の決定および使用

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2018203555A Division JP2019110522A (ja) 2017-11-02 2018-10-30 バイト誤り位置信号の決定および使用

Publications (1)

Publication Number Publication Date
JP2024038056A true JP2024038056A (ja) 2024-03-19

Family

ID=66138256

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2018203555A Pending JP2019110522A (ja) 2017-11-02 2018-10-30 バイト誤り位置信号の決定および使用
JP2023217133A Pending JP2024038056A (ja) 2017-11-02 2023-12-22 バイト誤り位置信号の決定および使用

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2018203555A Pending JP2019110522A (ja) 2017-11-02 2018-10-30 バイト誤り位置信号の決定および使用

Country Status (3)

Country Link
US (1) US10812109B2 (ja)
JP (2) JP2019110522A (ja)
DE (1) DE102017125617B8 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102020120719A1 (de) * 2020-08-05 2022-02-10 Infineon Technologies Ag Zugriff auf einen speicher
DE102021133678A1 (de) 2021-01-20 2022-07-21 Infineon Technologies Ag Korrektur von bitfehlern
DE102021109391B3 (de) 2021-04-14 2022-08-25 Infineon Technologies Ag Multibytefehler-Erkennung
DE102021123727B4 (de) 2021-09-14 2023-07-27 Infineon Technologies Ag Bytefehlerkorrektur
DE102022101798B3 (de) 2022-01-26 2023-07-20 Infineon Technologies Ag Fehlerverarbeitung

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4730321A (en) * 1986-05-30 1988-03-08 Quantum Corporation Disk drive with improved error correction code
JPH05158722A (ja) 1991-12-10 1993-06-25 Hitachi Ltd 誤り検出・訂正方式
US5754563A (en) * 1995-09-11 1998-05-19 Ecc Technologies, Inc. Byte-parallel system for implementing reed-solomon error-correcting codes
JPH1117557A (ja) * 1997-05-01 1999-01-22 Mitsubishi Electric Corp 誤り訂正方法及び誤り訂正装置
KR100249498B1 (ko) * 1997-11-28 2000-03-15 정선종 분산 표본 혼화 장치의 병렬 처리기
US6078632A (en) * 1998-04-15 2000-06-20 The United States Of America As Represented By The Secretary Of The Air Force Minimalized decommunication of serialized telemetry data
JP3502583B2 (ja) * 1999-10-25 2004-03-02 松下電器産業株式会社 誤り訂正方法および誤り訂正装置
JP3447053B2 (ja) * 2001-03-09 2003-09-16 インターナショナル・ビジネス・マシーンズ・コーポレーション 組み合わせ回路、該組み合わせ回路を使用する符号化装置、復号装置、および半導体デバイス
US20040153902A1 (en) * 2003-01-21 2004-08-05 Nexflash Technologies, Inc. Serial flash integrated circuit having error detection and correction
JP4036338B2 (ja) * 2005-03-04 2008-01-23 国立大学法人東京工業大学 誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置
JP4940322B2 (ja) * 2010-03-16 2012-05-30 株式会社東芝 半導体メモリ映像蓄積再生装置及びデータ書込み/読出し方法
DE102010020772A1 (de) * 2010-05-17 2011-11-17 Adva Ag Optical Networking Verfahren zur Übertragung eines digitalen Signals im inversenen Multiplex, insbesondere über ein Optical Transport Network und Empfangseinrichtung für ein System zur Realisierung des Verfahrens
JP5667408B2 (ja) * 2010-10-08 2015-02-12 株式会社日立製作所 リードソロモン符号・復号化回路、リードソロモン符号・復号化方法、および、記憶装置

Also Published As

Publication number Publication date
DE102017125617B4 (de) 2020-06-18
US10812109B2 (en) 2020-10-20
DE102017125617A1 (de) 2019-05-02
JP2019110522A (ja) 2019-07-04
US20190132006A1 (en) 2019-05-02
DE102017125617B8 (de) 2020-08-27

Similar Documents

Publication Publication Date Title
JP2024038056A (ja) バイト誤り位置信号の決定および使用
JP4036338B2 (ja) 誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置
Ramabadran et al. A tutorial on CRC computations
US8468439B2 (en) Speed-optimized computation of cyclic redundancy check codes
US7278085B1 (en) Simple error-correction codes for data buffers
US9450613B2 (en) Apparatus and method for error correction and error detection
JPS63244935A (ja) 誤り検出訂正方法とシステム
US20050204268A1 (en) Decoding and error correction for algebraic geometric codes
JP2011514743A (ja) 受信したシンボル列におけるフェーズドバーストエラー、消失、シンボルエラー、及び、ビットエラーを検出及び訂正するための方法及びシステム
JP2024029084A (ja) グループ誤りを用いる誤り検出
US8631307B2 (en) Method for encoding and/or decoding multimensional and a system comprising such method
EP2309650B1 (en) A systematic encoder with arbitrary parity positions
US7100103B2 (en) Efficient method for fast decoding of BCH binary codes
CN108574490B (zh) 计算循环冗余校验crc编码的方法及装置
US11804855B2 (en) Pipelined forward error correction for vector signaling code channel
TWI664636B (zh) 錯誤檢查和糾正解碼器
Zhang et al. Ultra-compressed three-error-correcting BCH decoder
US10623026B2 (en) Error correction
Shahariar Parvez et al. Design and implementation of hamming encoder and decoder over FPGA
US20230091457A1 (en) Byte error correction
JP3743915B2 (ja) スポッティバイト誤り訂正・検出方法及び装置
US20230370092A1 (en) Error Correction With Fast Syndrome Calculation
JP3223513B2 (ja) 誤り訂正復号装置
US20230370091A1 (en) Error Correction With Fast Syndrome Calculation
JP2000295116A (ja) 誤り修正符号化方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240122

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240122