(57)【要約】      （修正有）【課題】バイト誤り位置信号の決定および使用を提供する。【解決手段】複数のバイトを含むバイナリ列内の少なくとも１つのバイト誤りを識別し、バイナリ列が、誤っていない場合、誤り符号の符号語である誤り符号の誤りシンドロームの成分を使用して、少なくとも２つのバイト誤り位置信号それぞれを決定する。少なくとも２つのバイト誤り位置信号は、そのバイト誤り位置信号と関連するバイナリ列のバイトが誤っているか否かを示す。複数のバイトを含むバイナリ列内の少なくとも１つのバイト誤りの訂正に関し、誤り符号の誤りシンドロームの成分を使用して少なくとも１つのバイト誤り位置信号を決定する。バイナリ列のバイトが誤っているか否かを少なくとも１つのバイト誤り位置信号によって決定可能である。バイト誤り訂正値に基づいて、少なくとも１つの正しいバイトに関してバイト誤り訂正値の少なくとも１つが決定される。【選択図】なし【特許請求の範囲】
【請求項１】
少なくとも２つのバイト誤り位置信号を決定するための回路構成であって、
複数のバイトを含むバイナリ列内の少なくとも１つのバイト誤りを識別し、
前記バイナリ列が、誤っていない場合、誤り符号の符号語であり、
前記回路構成が、前記誤り符号の誤りシンドロームの成分を使用して前記少なくとも２つのバイト誤り位置信号それぞれを決定可能であるように設計されており、前記少なくとも２つのバイト誤り位置信号それぞれが、前記バイト誤り位置信号と関連する前記バイナリ列のバイトが誤っているか否かを示し、
前記少なくとも２つのバイト誤り位置信号が並列で決定される、
回路構成。
【請求項２】
前記誤り符号の誤りシンドロームの成分を使用して前記バイト誤り位置信号を決定可能であり、前記バイト誤り位置信号が、前記バイナリ列の前記バイトのうちの少なくとも２つのバイトに関して訂正可能な誤りがあることを示すように設計されている、請求項１に記載の回路構成。
【請求項３】
前記誤り符号が、ｔバイト誤り訂正符号であり、少なくとも（ｔ＋１）個のバイト誤り位置信号が並列して決定される、請求項１または２に記載の回路構成。
【請求項４】
前記バイナリ列が２バイト誤りを有する、請求項１〜３のいずれか一項に記載の回路構成。
【請求項５】
前記バイナリ列の各バイトがｍビットを有し、ここでｍ≧２が成り立つ、請求項１〜４のいずれか一項に記載の回路構成。
【請求項６】
前記誤り符号が、
ｔバイト誤り訂正符号、または
ｔバイト誤り訂正および（ｔ＋１）バイト誤り認識符号
であり、ここでｔ≧２が成り立つ、請求項１〜５のいずれか一項に記載の回路構成。
【請求項７】
前記バイナリ列が、少なくとも（ｔ＋１）個の訂正可能なバイトを有する、請求項６に記載の回路構成。
【請求項８】
前記誤りシンドロームが、少なくとも２・ｔ個の成分ｓ１、ｓ２、…、ｓ２ｔを有し、ここで、各成分がそれぞれｍビットを含み、ｍ≧２である、請求項６または７に記載の回路構成。
【請求項９】
前記バイト誤り位置信号が、前記バイト誤り位置信号に関連するバイトが誤っている場合に第１の値を有し、前記バイト誤り位置信号に関連するバイトが誤っていない場合に第２の値を有する、請求項１〜８のいずれか一項に記載の回路構成。
【請求項１０】
前記バイト誤り位置信号の少なくとも１つが、少なくとも１つの訂正されたバイトに関して決定される、請求項１〜９のいずれか一項に記載の回路構成。
【請求項１１】
前記バイナリ列が、データバイトおよび検査バイトを含み、前記データバイトおよび／または検査バイトが訂正可能なバイトを構成する、請求項１〜１０のいずれか一項に記載の回路構成。
【請求項１２】
複数のバイトを含むバイナリ列内の少なくとも１つのバイト誤りを訂正するための回路構成であって、前記バイナリ列が、誤っていない場合、誤り符号の符号語であり、前記回路構成が、
前記誤り符号の誤りシンドロームの成分を使用して前記少なくとも１つのバイト誤り位置信号を決定し、前記バイナリ列のバイトが誤っているか否かを少なくとも１つのバイト誤り位置信号によって決定可能であり、
少なくとも１つのバイト誤り訂正値を決定し、前記バイト誤り訂正値に基づいて、前記バイト誤り位置信号によって識別される誤っているバイト位置を訂正可能であり、
少なくとも１つの正しいバイトに関して前記バイト誤り訂正値の少なくとも１つが決定されるように設計されている、
回路構成。
【請求項１３】
前記少なくとも１つのバイト誤り位置信号および／または少なくとも１つのバイト誤り訂正値が並列して決定される、請求項１２に記載の回路構成。
【請求項１４】
前記誤り符号が、ｔバイト誤り訂正符号であり、少なくとも（ｔ＋１）個のバイト誤り位置信号が並列して決定される、請求項１３に記載の回路構成。
【請求項１５】
前記誤り符号が、ｔバイト誤り訂正符号であり、少なくとも（ｔ＋１）個のバイト誤り訂正値が並列して決定される、請求項１３または１４に記載の回路構成。
【請求項１６】
前記少なくとも（ｔ＋１）個のバイト誤り訂正値が、最大で３個のガロア体乗算器を使用して決定され、ここでｔ≧２である、請求項１５に記載の回路構成。
【請求項１７】
前記誤っているバイトに関して前記バイト誤り位置信号が前記バイト誤り訂正値と演算されることによって、前記バイト誤りの１つを訂正するように設計されている、請求項１２〜１６のいずれか一項に記載の回路構成。
【請求項１８】
ｔバイト誤りを訂正するように設計されており、ここでｔ≧２が成り立つ、請求項１２〜１７のいずれか一項に記載の回路構成。
【請求項１９】
さらに、１バイト誤りを訂正するように設計されている、請求項１８に記載の回路構成。
【請求項２０】
さらに、τバイト誤りを訂正するように設計されており、ここで、ｔ≧τ＞２が成り立つ、請求項１８または１９に記載の回路構成。
【請求項２１】
２バイト誤りの場合に、前記第ｉのバイトが訂正可能なバイトであり、
前記第ｉのバイトに関する前記バイト誤り位置信号が、
【数１】
2019110522.tif 000123
が成り立つ場合には、第１の値を取り、
前記第ｉのバイトに関する前記バイト誤り位置信号が、
【数２】
2019110522.tif 000124
が成り立つ場合には、第２の値を取り、
前記第ｉのバイトに関連するバイト誤り位置信号が前記第１の値を取る場合には、前記第ｉのバイトが誤っている、
請求項１２〜２０のいずれか一項に記載の回路構成。
【請求項２２】
２バイト誤りの場合に、前記第ｉのバイトの前記バイト誤り訂正値が、
【数３】
2019110522.tif 000125
に従って決定される、請求項１２〜２１のいずれか一項に記載の回路構成。
【請求項２３】
２バイト誤りの場合に、訂正可能なバイトの前記訂正が、前記誤りシンドロームの３つの成分、およびバイト誤り位置信号に応じて決定される、請求項１２〜２２のいずれか一項に記載の回路構成。
【請求項２４】
少なくとも２つのバイト誤り位置信号を決定するための方法であって、
複数のバイトを含むバイナリ列内の少なくとも１つのバイト誤りを識別し、
前記バイナリ列が、誤っていない場合、誤り符号の符号語であり、
前記少なくとも２つのバイト誤り位置信号それぞれが、前記誤り符号の誤りシンドロームの成分を使用して決定され、前記バイト誤り位置信号と関連する前記バイナリ列のバイトが誤っているか否かを示し、
前記少なくとも２つのバイト誤り位置信号が並列で決定される、
方法。
【請求項２５】
複数のバイトを含むバイナリ列内の少なくとも１つのバイト誤りを訂正するための方法であって、前記バイナリ列が、誤っていない場合、誤り符号の符号語であり、前記方法が、
前記誤り符号の誤りシンドロームの成分を使用して前記少なくとも１つのバイト誤り位置信号を決定し、前記バイナリ列のバイトが誤っているか否かを少なくとも１つのバイト誤り位置信号によって決定可能である、ステップと、
少なくとも１つのバイト誤り訂正値を決定するステップであって、前記バイト誤り訂正値に基づいて、前記バイト誤り位置信号によって識別される誤っているバイト位置が訂正される、ステップとを含み、
少なくとも１つの正しいバイトに関して前記バイト誤り訂正値の少なくとも１つが決定される、
方法。
【発明の詳細な説明】
【背景技術】
【０００１】
バイトの形態で存在するデータの誤りを、バイトごとに認識し、バイトごとに訂正することが知られている。ここで、バイトは、少なくとも２ビットを含むことができる。１つのバイトの少なくとも１つのビットにおける少なくとも１つの誤りが、バイト誤りと呼ばれる。１つのバイトの少なくとも１つのビットが誤っている場合、バイト誤りが存在する。ただ１つのバイトの少なくとも１つのビットのみが誤っている場合、これは、１バイト誤りである。
【０００２】
１バイト誤りの訂正は、例えば、（非特許文献１）に記載されている。
【０００３】
２つの異なるバイトのビットが誤っている場合、これは、２バイト誤りである。したがって、ｋ個のバイトにおけるビットが誤りである（すなわち、ｋ個のバイトそれぞれにおける少なくとも１つのビットが誤りを有する）ときには、ｋバイト誤りがあると言える。
【０００４】
誤っている可能性があるバイトの誤り訂正を迅速に行うことが全般的な動機である。これは、例えば、バイト形態でのデータが、メモリから並列に読み出されて並列に提供されるときに当てはまる。そのようなシナリオでは、誤り訂正を並列して実施することも有利であり得る。
【０００５】
「並列」とは、ここでは特に、少なくとも２つのバイトに関する誤り訂正または誤り訂正の一部が少なくとも一部同時に（例えばまた、時間的に少なくとも一部重畳して）行われることを意味する。
【０００６】
バイト誤り訂正は、例えば、リード・ソロモン符号によって行うことができる。
【０００７】
ＯＫＡＮＯ（特許文献２）に、リード・ソロモン符号を使用して２バイト誤りを訂正するための回路構成が記載されている。ここで、ＯＫＡＮＯに記載されている２バイト誤りの訂正は比較的遅いことが欠点である。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】Ｂｏｓｓｅｎ，  Ｄ．：  ｂ−Ａｄｊａｃｅｎｔ  Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ，  ＩＢＭ  Ｊ．  Ｒｅｓ．Ｄｅｖ．，  Ｊｕｌｙ  １９７０，  ４０２〜４０８頁
【非特許文献２】Ｏｋａｎｏ，  Ｈ．，  Ｉｍａｉ，  Ｈ．：  Ａ  Ｃｏｎｓｔｒｕｃｔｉｏｎ  Ｍｅｔｈｏｄ  ｏｆ  Ｈｉｇｈ−Ｓｐｅｅｄ  Ｄｅｃｏｄｅｒｓ  Ｕｓｉｎｇ  ＲＯＭ’ｓ  ｆｏｒ  Ｂｏｓｅ−Ｃｈａｕｄｈｕｒｉ−Ｈｏｃｑｕｅｎｇｉｅｍ  ａｎｄ  Ｒｅｅｄ−Ｓｏｌｏｍｏｎ  Ｃｏｄｅｓ，  ＩＥＥＥ  ＴＲＡＮＳＡＣＴＩＯＮＳ  ＯＮ  ＣＯＭＰＵＴＥＲＳ，  ＶＯＬ．  Ｃ−３６，  ＮＯ．  １０，  ＯＣＴＯＢＥＲ  １９８７，  １１６５〜１１７１頁
【非特許文献３】Ｌｉｎ，  Ｓ．，  Ｃｏｓｔｅｌｌｏ，  Ｄ．：  Ｅｒｒｏｒ  Ｃｏｎｔｒｏｌ  Ｃｏｄｉｎｇ，  Ｐｒｅｎｔｉｃｅ  Ｈａｌｌ，  １９８３，  １７０〜１７７頁
【非特許文献４】Ｗｉｃｋｅｒ，  Ｓ．：  Ｅｒｒｏｒ  Ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍｓ  ｆｏｒ  Ｄｉｇｉｔａｌ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  ａｎｄ  Ｓｔｏｒａｇｅ，  Ｐｒｅｎｔｉｃｅ  Ｈａｌｌ，  １９９５，  ２１４〜２２４頁
【非特許文献５】Ｆｕｊｉｗａｒａ，  Ｅ．：  Ｃｏｄｅ  Ｄｅｓｉｇｎ  ｆｏｒ  Ｄｅｐｅｎｄａｂｌｅ  Ｓｙｓｔｅｍｓ，  Ｗｉｌｅｙ，  ２００６，  ６５頁
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明の課題は、バイト誤りを訂正するための既知の解決策の欠点を解消し、特に、複数のバイト内の誤りの誤り訂正をできるだけ迅速に行うことを可能にすることにある。
【００１０】
特に、１つの課題は、メモリセル、例えばＭＲＡＭメモリセルやＲＲＡＭメモリセルなどに関するｍバイト誤り（ｍ≧２）の誤り訂正を提供し、それにより、メモリセルから読み出されるデータの信頼性を高めることである。
【課題を解決するための手段】
【００１１】
この課題は、独立請求項の特徴に従って解決される。好ましい実施形態は、特に従属請求項から明らかになる。
【００１２】
上記の課題を解決するために、少なくとも２つのバイト誤り位置信号を決定するための回路構成であって、
−複数のバイトを含むバイナリ列内の少なくとも１つのバイト誤りを識別し、
−バイナリ列が、誤っていない場合、誤り符号の符号語であり、
−回路構成が、誤り符号の誤りシンドロームの成分を使用して少なくとも２つのバイト誤り位置信号それぞれを決定可能であるように設計されており、少なくとも２つのバイト誤り位置信号それぞれが、そのバイト誤り位置信号と関連するバイナリ列のバイトが誤っているか否かを示し、
−少なくとも２つのバイト誤り位置信号が並列で決定される、
回路構成が提案される。
【００１３】
バイナリ列の１バイトにつき１つのバイト誤り位置信号を決定することができることに留意されたい。したがって、バイナリ列の各バイトと、バイト誤り位置信号が結合または関連付けされている。バイト誤り位置信号の値は、バイト誤り位置信号に結び付けられたバイトが誤りを有するか否かを示す。
【００１４】
誤り符号は、例えば、誤り訂正および／または誤り認識符号である。例えば、誤り符号として、リード・ソロモン符号を使用することができる。
【００１５】
これに関連して、「並列」とは、特に、互いに少なくとも一部並列して、すなわち例えば時間的に同時に、または時間的に少なくとも一部同時に値が決定されることを意味する。
【００１６】
一変形形態では、回路構成は、誤り符号の誤りシンドロームの成分を使用してバイト誤り位置信号を決定可能であり、バイト誤り位置信号が、バイナリ列のバイトのうちの少なくとも２つのバイトに関して訂正可能な誤りがあることを示すように設計されている。
【００１７】
一変形形態では、誤り符号は、ｔバイト誤り訂正符号であり、少なくとも（ｔ＋１）個のバイト誤り位置信号が並列して決定される。
【００１８】
一変形形態では、バイナリ列が２バイト誤りを有する。
【００１９】
一変形形態では、バイナリ列の各バイトがｍビットを有し、ここでｍ≧２が成り立つ。
【００２０】
一変形形態では、誤り符号は、
−ｔバイト誤り訂正符号、または
−ｔバイト誤り訂正および（ｔ＋１）バイト誤り認識符号
であり、ここでｔ≧２が成り立つ。
【００２１】
一変形形態では、バイナリ列は、少なくとも（ｔ＋１）個の訂正可能なバイトを有する。
【００２２】
一変形形態では、誤りシンドロームは、少なくとも２・ｔ個の成分ｓ１、ｓ２、…、ｓ２ｔを有し、ここで、各成分がそれぞれｍビットを含み、ｍ≧２である。
【００２３】
訂正可能なバイトは、そのバイト内にバイト誤りがある場合に、バイト誤り訂正符号によってバイト誤りを訂正可能であるときに誤り訂正が行われるバイトである。
【００２４】
一変形形態では、バイト誤り位置信号は、バイト誤り位置信号に関連するバイトが誤っている場合には第１の値を有し、バイト誤り位置信号に関連するバイトが誤っていない場合には第２の値を有する。
【００２５】
一変形形態では、バイト誤り位置信号の少なくとも１つは、少なくとも１つの訂正されたバイトに関して決定される。
【００２６】
一変形形態では、バイナリ列は、データバイトおよび検査バイトを含み、データバイトおよび／または検査バイトが、訂正可能なバイトを構成する。
【００２７】
特に、データバイトのみを訂正することができる。また、検査バイトのみ、またはデータバイトと検査バイトとの組合せを訂正することも可能である。ここで、データバイトは使用データでよく、検査バイトは、使用データの訂正に使用することができる追加の検査情報でよい。
【００２８】
また、上記の課題を解決するために、複数のバイトを含むバイナリ列内の少なくとも１つのバイト誤りを訂正するための回路構成であって、バイナリ列が、誤っていない場合、誤り符号の符号語であり、上記回路構成が、
−誤り符号の誤りシンドロームの成分を使用して少なくとも１つのバイト誤り位置信号を決定し、バイナリ列のバイトが誤っているか否かをバイト誤り位置信号によって決定可能であり、
−少なくとも１つのバイト誤り訂正値を決定し、バイト誤り訂正値に基づいて、バイト誤り位置信号によって識別される誤っているバイト位置を訂正可能であり、
−少なくとも１つの正しいバイトに関してバイト誤り訂正値の少なくとも１つが決定されるように設計されている、
回路構成が提案される。
【００２９】
一変形形態では、少なくとも１つのバイト誤り位置信号および／または少なくとも１つのバイト誤り訂正値が並列して決定される。
【００３０】
特に、少なくとも２つのバイト誤り訂正値を並列して決定することができる。
【００３１】
一変形形態では、誤り符号は、ｔバイト誤り訂正符号であり、少なくとも（ｔ＋１）個のバイト誤り位置信号が並列して決定される。
【００３２】
一変形形態では、誤り符号は、ｔバイト誤り訂正符号であり、少なくとも（ｔ＋１）個のバイト誤り訂正値が並列して決定される。
【００３３】
一変形形態では、少なくとも（ｔ＋１）個のバイト誤り訂正値は、最大で３個のガロア体乗算器を使用して決定され、ここでｔ≧２である。
【００３４】
一変形形態では、回路構成は、誤っているバイトに関してバイト誤り位置信号がバイト誤り訂正値と演算されることによって、バイト誤りの１つを訂正するように設計されている。
【００３５】
一変形形態では、回路構成は、ｔバイト誤りを訂正するように設計されており、ここでｔ≧２が成り立つ。
【００３６】
一変形形態では、回路構成は、さらに、１バイト誤りを訂正するように設計されている。
【００３７】
一変形形態では、回路構成は、さらに、τバイト誤りを訂正するように設計されており、ここで、ｔ≧τ＞２が成り立つ。
【００３８】
一変形形態では、２バイト誤りの場合に、第ｉのバイトが訂正可能なバイトであり、
−第ｉのバイトに関するバイト誤り位置信号は、
【数１】
2019110522.tif 000002
が成り立つ場合には、第１の値を取り、
−第ｉのバイトに関するバイト誤り位置信号は、
【数２】
2019110522.tif 000003
が成り立つ場合には、第２の値を取り、
−第ｉのバイトに関連するバイト誤り位置信号が第１の値を取る場合には、第ｉのバイトが誤っている。
【００３９】
一変形形態では、２バイト誤りの場合に、第ｉのバイトのバイト誤り訂正値が、
【数３】
2019110522.tif 000004
に従って決定される。
【００４０】
回路構成は、個々の部分回路構成に分割することができる。特に、ここで述べる回路構成は一部品または多部品で実現することが可能である。
【００４１】
さらに、回路構成は、合成ツールを使用して実現することができる。
【００４２】
一変形形態では、２バイト誤りの場合に、訂正可能なバイトの訂正は、誤りシンドロームの３つの成分、およびバイト誤り位置信号に応じて決定される。
【００４３】
また、少なくとも２つのバイト誤り位置信号を決定するための方法であって、
−複数のバイトを含むバイナリ列内の少なくとも１つのバイト誤りを識別し、
−バイナリ列が、誤っていない場合、誤り符号の符号語であり、
−少なくとも２つのバイト誤り位置信号それぞれが、誤り符号の誤りシンドロームの成分を使用して決定されて、バイト誤り位置信号と関連するバイナリ列のバイトが誤っているか否かを示し、
−少なくとも２つのバイト誤り位置信号が並列で決定される、
方法が提示される。
【００４４】
さらに、複数のバイトを含むバイナリ列内の少なくとも１つのバイト誤りを訂正するための方法であって、バイナリ列が、誤っていない場合、誤り符号の符号語であり、上記方法が、
−誤り符号の誤りシンドロームの成分を使用して少なくとも１つのバイト誤り位置信号を決定し、バイナリ列のバイトが誤っているか否かを少なくとも１つのバイト誤り位置信号によって決定可能である、ステップと、
少なくとも１つのバイト誤り訂正値を決定するステップであって、バイト誤り訂正値に基づいて、バイト誤り位置信号によって識別される誤っているバイト位置が訂正される、ステップとを含み、
少なくとも１つの正しいバイトに関してバイト誤り訂正値の少なくとも１つが決定される、
方法が提示される。
【００４５】
以下、本発明の上述した特性、特徴、および利点、ならびにこれらを達成する様式を、例示的実施形態の概略的な説明に関連付けて述べる。例示的実施形態について、図面に関連付けてより詳細に説明する。ここで、見やすくするために、同一の要素または同一の作用を有する要素には同じ参照符号を付すことができる。
【図面の簡単な説明】
【００４６】
【図１】２バイト誤りに関するバイト誤り位置信号を並列して生成するための例示的な回路構成を示す図である。
【図２】図１に示される回路構成の代替形態を示す図である。
【図３】中央回路部分を有する、図１に示される回路構成のさらなる構成を示す図である。
【図４】図３に示される中央回路部分の代替の例示的実現形態を示す図である。
【図５】２バイト誤りに関するバイト誤り訂正のための回路構成に関する一例を示す図である。
【図６】バイト誤り訂正値を生成するための図５に示される部分回路の実現形態に関する一例を示す図である。
【図７】バイト誤り訂正値を生成するための図５に示される部分回路の実現形態に関するさらなる例を示す図である。
【図８】２バイト誤りに関するバイト誤り位置信号を生成するための回路構成を使用する、１バイト誤りおよび２バイト誤りに関する訂正回路の一例を示す図である。
【図９】２バイト誤りに関するバイト誤り位置信号を生成するための回路構成を使用する、１バイト誤り、２バイト誤り、以下同様にｔバイト誤りまでに関する例示的な訂正回路を示す図である。
【図１０】図８に示される部分回路の例示的な形態を示す図である。
【図１１】誤り認識回路を示す図である。
【図１２】３バイト誤りを認識するための誤り認識回路を示す図である。
【図１３】ｍ＝５でのガロア体ＧＦ（２ｍ）の要素の様々な表現形態を示す表を示す図である。
【発明を実施するための形態】
【００４７】
例として、以下、リード・ソロモン符号を使用したバイト誤りの訂正を述べる。ここで、バイトは、複数のビットを含むことができる。
【００４８】
各訂正可能なバイト位置に関して、そのバイトが誤っているか否かを判断可能にする信号（バイト誤り位置信号とも呼ぶ）が特定される。例えば、バイト誤り位置信号は、バイトが誤っている場合には値１、バイトが誤っていない場合には値０を有する。
【００４９】
バイト誤り位置信号は、好ましくは、ロケータ多項式の値によって決定される。バイト誤り訂正符号の場合、誤りの数に関してそれぞれ１つのロケータ多項式を使用することができる。
【００５０】
したがって、バイト誤り訂正符号の訂正可能なバイト位置に関してバイト誤り位置信号を決定することが特に提案され、ここで、バイト誤り訂正符号は、特に、少なくとも２つのバイト誤りを訂正することができる。
【００５１】
ここで、訂正可能なバイト位置は、バイト誤り訂正符号によって訂正可能な誤りが発生したときに訂正が行われるバイト位置である。
【００５２】
バイトは、例えば、データバイト、データバイトと検査バイトとの組合せ、またはその部分集合である。データバイトは、好ましくは、使用データを含む。
【００５３】
バイト位置に関して、バイト誤り訂正値を決定することができ、バイト誤り訂正値に基づいて、バイト位置は、そこで誤りが発生しているときに訂正される。バイト誤り位置信号は、あるバイトに関して誤りが発生しているかどうかを示し、バイト誤り訂正値によって、この誤りを訂正することができる。また、バイト誤り位置信号によって、個々のバイト位置を隠す（マスキングする）ことができ、その際には、訂正は行われない。
【００５４】
特に、（例えばバイト位置が誤っていないので）バイト位置で訂正のために使用されないバイト誤り訂正値に０を乗算することが、１つの選択肢である。その限りにおいて、バイト誤り訂正値への０の乗算はまた、バイト位置でバイト誤り訂正値を使用しないことに相当する。
【００５５】
リード・ソロモン符号の全般的な説明
以下、リード・ソロモン符号のいくつかの概念および特性を説明する。
【００５６】
例えば、
−ｔバイト誤り訂正符号と、
−ｔバイト誤り訂正および（ｔ＋１）バイト認識符号
とを考える。特に、ｔ＝２およびｔ＝１の場合を考察する。
【００５７】
例えば、バイト誤り訂正符号として知られているリード・ソロモン符号を使用することができる。リード・ソロモン符号に関しては、例えば、（特許文献３）または（特許文献４）を参照されたい。
【００５８】
１バイト誤り訂正および２バイト誤り認識リード・ソロモン符号は、以下のようなＨ行列
【数４】
2019110522.tif 000005
を有する。
【数５】
2019110522.tif 000006
【００５９】
ここで、αｉは、ガロア体ＧＦ（２ｍ）の要素である。これは、例えば、指数関数表現である。αは、ガロア体ＧＦ（２ｍ）の原始元でよい。αｊの指数ｊは、ｍｏｄ２ｍ−１と解釈することができる。
【００６０】
式（１）によるＨ行列から、以下のＨ行列を導出することができる。
【数６】
2019110522.tif 000007
これは、ｉ＝０，…，（２ｍ−２）に関して、第ｉの列にα−ｉを乗算することによって行われる。これにより、α−１≠０であるので、符号ではなくＨ行列の形態のみが変わる。これは、例えば、（非特許文献５）にも記載されており、そこでは、α０に関して値「１」が使用されている。α０は、使用されるガロア体の単位元であるからである。
【００６１】
２バイト誤り訂正および３バイト誤り認識符号に関して、以下のＨ行列が使用される。
【数７】
2019110522.tif 000008
【００６２】
式（３）で表されるＨ行列の各列が１バイトに対応する。
【００６３】
符号の長さがＮバイトまたはｍ・Ｎビット（ここで、各バイトがｍビットを有する）である場合、式（１）または式（３）によるＨ行列のＮ列のみが使用される。例えば、残りの（最後の）２ｍ−２−Ｎ列を削除することができる。
【００６４】
一般に、ｔバイト誤り訂正およびｔ＋１バイト誤り認識符号に関して、Ｈ行列は、以下のように表すことができる。
【数８】
2019110522.tif 000009
【００６５】
以下、例として、２バイト誤りを訂正することができ、３バイト誤りを認識することができる符号を考察する。
【００６６】
誤りが発生した場合、正しいベクトルｖ＝ｖ０，…，ｖＮ−１が乱されて、誤っているベクトルｖ’＝ｖ’０，…，ｖ’Ｎ−１になる。
【００６７】
ベクトルｖの成分ｖ０，…，ｖＮ−１は、それぞれｍビットを含むバイトであり、したがって、ｉ＝０，…，Ｎ−１に関して、
【数９】
2019110522.tif 000010
が成り立つ。したがって、
【数１０】
2019110522.tif 000011
は、第ｉのバイトのｍビットである。
【００６８】
ｍビットバイトは、ガロア体ＧＦ（２ｍ）の要素と呼ぶこともできる。
【００６９】
１バイト誤りがある場合、ただ１つのバイトのみが誤っており、すなわち、特定のｉ∈｛０，…，Ｎ−１｝に関して、関連の第ｉのバイトが誤っている。
【００７０】
正しい第ｉのバイトを
【数１１】
2019110522.tif 000012
で表し、誤っている第ｉのバイトを
【数１２】
2019110522.tif 000013
で表すと、正しい第ｉのバイトの１ビットもしくは２ビットまたはｍビットまでを、誤っている第ｉのバイトから区別することができる。
【００７１】
第ｉのバイトでのバイト誤りは、
−誤っているバイト位置ｉ、および
−バイト誤り値によって、以下のように表すことができる。
【数１３】
2019110522.tif 000014
ここで、
【数１４】
2019110522.tif 000015
は、ＸＯＲ演算を表すことに留意されたい。
【００７２】
第ｉのバイトの位置は、αｉと表すこともできる。
【００７３】
バイト誤りが、バイト位置ｉでのバイト誤り値ｅｉで訂正される場合、バイト位置ｉに関して、バイト誤り値に等しいバイト誤り訂正値を決定することができる。
【００７４】
この例では、訂正すべきバイト誤りに関して、バイト誤り値は、バイト誤り訂正値に等しい；その限りにおいて、概念「バイト誤り値」と「バイト誤り訂正値」を同義として使用することができる。
【００７５】
添え字の数字が分かりにくくなるのを避けるために、以下、バイト誤り値を、アルファベット文字ａ、ｂ、ｃで表す。
【００７６】
第ｉのバイトに関するバイト誤り訂正値を、ａ（ｉ）と表すこともできる。
【００７７】
バイト位置は、ｉ，ｊ，ｋ，…、またはαｉ，αｊ，αｋ，…で表すことができ、ここで、αは、ガロア体ＧＦ（２ｍ）の生成要素である。
【００７８】
誤りシンドロームｓは、シンドローム成分（成分、誤りシンドローム成分、部分誤りシンドローム、部分シンドロームとも呼ぶ）ｓ１、ｓ２、ｓ３、ｓ４、ｓ５を有し、これらは、式（３）によるＨ行列に関して、以下のように決定される。
ｓ１＝（α０，α０，…，α０）・（ｖ’０，ｖ’１，…，ｖ’Ｎ−１）Ｔ，
ｓ２＝（α０，α１，…，αＮ−１）・（ｖ’０，ｖ’１，…，ｖ’Ｎ−１）Ｔ，
ｓ３＝（α０，α２，…，α２（Ｎ−１））・（ｖ’０，ｖ’１，…，ｖ’Ｎ−１）Ｔ，
ｓ４＝（α０，α３，…，α３（Ｎ−１））・（ｖ’０，ｖ’１，…，ｖ’Ｎ−１）Ｔ，
ｓ５＝（α０，α４，…，α４（Ｎ−１））・（ｖ’０，ｖ’１，…，ｖ’Ｎ−１）Ｔ
【００７９】
ここで、（ｖ’０，…，ｖ’Ｎ−１）Ｔは、成分ｖ’０，…，ｖ’Ｎ−１を有する列ベクトルであり、この列ベクトルは、行ベクトル（ｖ’０，…，ｖ’Ｎ−１）の転置ベクトルと呼ぶこともできる。
【００８０】
シンドローム成分ｓ１、ｓ２、ｓ３、ｓ４、ｓ５は、それぞれ、ｍビットを有するバイトを構成する。
【００８１】
誤りがない場合、
ｓ１＝ｓ２＝ｓ３＝ｓ４＝ｓ５＝０が成り立つ。
【００８２】
第ｉのバイト誤り位置に、バイト誤り値αを有する１バイト誤りがある場合、以下の式が成り立つ。
ｓ１＝α０・ａ＝ａ
ｓ２＝ａｉ・ａ
ｓ３＝ａ２ｉ・ａ
ｓ４＝ａ３ｉ・ａ
ｓ５＝ａ４ｉ・ａ    （４）
【００８３】
バイト誤り位置ｉおよびｊに、バイト誤り値ａおよびｂを有する２バイト誤りがある場合、以下の式が成り立つ。
ｓ１＝α０ａ＋α０ｂ＝ａ＋ｂ
ｓ２＝ａｉ・ａ＋αｊ・ｂ
ｓ３＝ａ２ｉ・ａ＋α２ｊ・ｂ
ｓ４＝ａ３ｉ・ａ＋α３ｊ・ｂ
ｓ５＝ａ４ｉ・ａ＋α４ｊ・ｂ    （５）
【００８４】
バイト誤り位置ｉ、ｊ、およびｋに、バイト誤り値ａ、ｂ、およびｃを有する３バイト誤りがある場合、以下の式が成り立つ。
ｓ１＝α０ａ＋α０ｂ＋α０ｃ＝ａ＋ｂ＋ｃ
ｓ２＝ａｉ・ａ＋αｊ・ｂ＋αｋ・ｃ
ｓ３＝ａ２ｉ・ａ＋α２ｊ・ｂ＋α２ｋ・ｃ
ｓ４＝ａ３ｉ・ａ＋α３ｊ・ｂ＋α３ｋ・ｃ
ｓ５＝ａ４ｉ・ａ＋α４ｊ・ｂ＋α４ｋ・ｃ    （６）
【００８５】
考察される誤りに関して、以下の関係が満たされている。
１．１バイト誤りに関しては、
ｓ１＝ａ≠０      （７）
および
【数１５】
2019110522.tif 000016
が成り立つ。
２．２バイト誤りに関しては、
【数１６】
2019110522.tif 000017
および
【数１７】
2019110522.tif 000018
が成り立つ。
３．３バイト誤りに関しては、以下の式である。
【数１８】
2019110522.tif 000019
【００８６】
バイト誤り位置αｉおよびαｊは、第ｉのおよび第ｊのバイトでの２バイト誤りの場合、式
【数１９】
2019110522.tif 000020
の解、根、またはゼロ位置として決定することができる。また、
【数２０】
2019110522.tif 000021
を、２次のロケータ多項式と呼ぶこともできる。
【００８７】
それに対応して、１バイト誤りに関するバイト誤り位置は、１次のロケータ多項式のゼロ位置によって決定され、一般に、
１≦τ≦ｔ
について、ｔバイト誤り訂正符号に関するτバイト誤りにおける誤っているバイト位置は、τ次のロケータ多項式のゼロ位置によって決定される。
【００８８】
符号語が、Ｎ・ｍビット、したがってＮバイトからなる場合、バイト誤り位置としてみなされるＮ個の異なるバイト位置がある。それに対し、対応するビット訂正符号において、誤っている可能性があるｍ・Ｎ個のビット位置がある。
【００８９】
１バイト誤りにおいては１次のロケータ多項式が使用され、および２バイト誤りにおいては２次のロケータ多項式が使用される。
【００９０】
リード・ソロモン符号の補足説明
２バイト誤りの場合に、第ｉのバイトに関するバイト誤り訂正値ａ（ｉ）を、シンドローム成分ｓ１、ｓ２、ｓ３およびバイト位置ｉのみに応じて決定することができる。
【００９１】
ここで、例えば少なくとも３つの訂正可能なバイトに関して複数のバイト誤り訂正値を並列に決定することができることが利点である。
【００９２】
例えば、２バイト誤りがあると仮定する。各バイト位置に関するバイト誤り訂正値は、提供されたシンドローム成分ｓ１、ｓ２、ｓ３、および訂正可能なバイトの既知の位置に基づいて、並列に決定することができる。バイト誤り訂正値は、誤っている両方のバイトに関して、および少なくとも誤っていないバイトに関して決定される。
【００９３】
第ｉのバイト位置に関して決定されたバイト誤り訂正値は、この第ｉの位置でのバイト誤り値と一致する。
【００９４】
同様に（場合によっては並列に）決定されたバイト誤り位置信号は、対象のバイトにバイト誤りがあるかどうか、およびバイト誤り訂正値を用いて訂正を行うかどうかを判断する。バイト誤り位置信号が、対応する位置にバイト誤りがないことを示した場合、この位置に関して決定されたバイト誤り訂正値を用いた訂正を行わない。
【００９５】
換言すると、バイト誤り位置信号は、提供されたバイト誤り訂正値を用いた訂正をどのバイト位置で行うかを決定する。あるバイト位置に関するバイト誤り位置信号がバイト誤りを示す場合、バイト誤り訂正値を用いた訂正を行う。このバイト位置に関するバイト誤り位置信号がバイト誤りを示さない場合、訂正を行わない。
【００９６】
ｔバイト誤り訂正符号を考えると、ｔ個よりも多い訂正可能なバイト位置に関する対応するバイト誤り訂正値を決定することができ、その後、バイト位置（の全てまたは一部）に関するバイト誤り位置信号が決定される。バイト誤り訂正値は、バイト誤り位置信号と並列して決定することもできる。
【００９７】
第ｉのバイトにバイト誤りがない場合、この第ｉのバイトに関して決定されたバイト誤り訂正値は、バイト誤り位置信号の値に基づいて、訂正に使用されない。この場合、バイト誤り位置信号に基づき、訂正は実施されないので、この誤っていないバイトに関して決定されたバイト誤り訂正値が
【数２１】
2019110522.tif 000022
である必要はない。任意選択で、この場合、第ｉのバイトに関するバイト誤り訂正値は、
【数２２】
2019110522.tif 000023
に設定することができる。
【００９８】
２バイト誤りがある場合、バイト誤り位置ｉに関して、第ｉのバイトのバイト誤り訂正値ａ（ｉ）は、式
【数２３】
2019110522.tif 000024
が成り立つように決定することができる。
【００９９】
２バイト誤りに関して、バイト誤りが発生しているバイト位置ｉが既知である場合、式（１３）に基づいて、誤っているバイト位置ｉに関するバイト誤り訂正値ａ（ｉ）は、シンドローム成分ｓ１、ｓ２、ｓ３、およびバイト位置ｉから決定される値αｉによって決定される。
【０１００】
バイト位置ｋに関して、バイト誤り訂正値ａ（ｋ）は、
【数２４】
2019110522.tif 000025
として例えば並列して決定され、バイト位置ｋが実際に誤っているかどうかには関係しない。
【０１０１】
バイト誤り位置信号が、バイト位置ｋにおいてバイト誤りがあることを示す場合、第ｋのバイトの誤り訂正が、このバイト位置ｋに関して決定されたバイト誤り訂正値ａ（ｋ）によって行われる。
【０１０２】
バイト誤り位置信号が、バイト位置ｋにおいてバイト誤りがないことを示す場合、第ｋのバイトの誤り訂正は行われず、このバイト位置ｋに関して決定されたバイト誤り訂正値ａ（ｋ）は、誤り訂正に使用されない。任意選択で、バイト誤り訂正値を０に設定することができる。
【０１０３】
したがって、バイト位置に関するバイト誤り訂正値は、実際にこのバイト位置で誤りが発生しているかどうかが決定される前に既に存在する。
【０１０４】
様々なバイト位置に関して、対応するバイト誤り訂正値を並列して決定することができる。特に、全ての訂正可能なバイト位置に関して、または訂正可能なバイト位置の部分集合に関して、バイト誤り訂正値を並列して決定することができる。
【０１０５】
バイト誤り訂正符号が、誤っているバイトをｔ個まで訂正することができる場合、例えば全ての訂正可能なバイト位置に関して、または少なくともｔ＋１個の訂正可能なバイト位置の部分集合に関して、バイト位置にバイト誤りがあるかどうかに関係なく、ｔ個よりも多くのバイト誤り訂正値を並列して決定することができる。
【０１０６】
バイト誤り位置信号の値は、対応するバイトの訂正にバイト誤り訂正値が使用されるかどうかを決定する。
【０１０７】
訂正可能なバイト位置は、例えば、全てのデータバイト、データバイトの部分集合、検査バイト、ｔバイト誤り訂正符号の符号語の全てのバイト、またはｔバイト誤り訂正符号の符号語のバイトの部分集合でよい。
【０１０８】
ここで、バイト誤り位置信号は、例えば、バイト位置に関して、バイト位置のバイトが誤っている場合には第１の値を取るように、およびバイト位置のバイトが誤っていない場合には第１の値とは異なる第２の値を取るように決定することができる。
【０１０９】
バイト誤り位置信号は、対応するロケータ多項式を使用して決定することができる。
【０１１０】
１バイト誤りに関するバイト誤り位置信号
１バイト誤りに関して、１次のロケータ多項式は、
ｘ・ｓ１＝ｓ２      （１５）であり、解またはゼロ位置
【数２５】
2019110522.tif 000026
を有する。
【０１１１】
誤っているバイト位置ｉに関するバイト誤り訂正値ａ（ｉ）は、
ａ（ｉ）＝ｓ１      （１７）
である。
【０１１２】
各第ｋのバイトに関して、バイト誤り訂正値
ａ（ｋ）＝ｓ１＝ａ      （１８）
が決定される。
【０１１３】
第ｉのバイトでの誤りがバイト誤り訂正値ａを有し、したがってｓ１＝ａである場合、各バイトｋに関して、式（１８）に従ってバイト誤り訂正値ａ（ｋ）＝ａが決定され、バイト誤り訂正値ａ（ｋ）＝ａは、実際に訂正すべき第ｉのバイトに関しては使用され、訂正されないバイトに関してはマスキング（例えばゼロに設定）される。バイトが訂正されるか否かの決定は、対応するバイト誤り位置信号の値に基づいて行われる。
【０１１４】
各バイトに関して、１バイト誤りの場合、バイト誤り位置信号は、式（１５）を使用して決定される。バイト位置ｉに関するバイト誤り位置信号は、
−αｉが、式（１５）に従ってロケータ多項式のゼロ位置である場合には１であり、
−αｉが、式（１５）に従ってロケータ多項式のゼロ位置でない場合には０である。
【０１１５】
第ｉのバイトの訂正は、αｉが、式（１５）に従ってロケータ多項式のゼロ位置である場合にのみ行われる。
【０１１６】
２バイト誤りに関するバイト誤り位置信号
２バイト誤りの訂正におけるバイト誤り位置信号の作用を、一例に基づいて述べる。
【０１１７】
ｔバイト誤り訂正符号がｔ≧２として使用される場合、２バイト誤りの場合には、誤っているバイト位置は、式（１２）による２次のロケータ多項式の２つのゼロ位置によって決定されている。
【０１１８】
誤っているバイト位置が位置ｉおよびｊである場合、バイト誤り位置信号は、例えば、αｉおよびαｊが式（１２）による２次のロケータ多項式のゼロ位置である場合には１であり、他の全ての場合には０である
【０１１９】
各バイト位置ｋに関して、バイト誤り訂正値
【数２６】
2019110522.tif 000027
を決定することができる。このバイト誤り訂正値は、少なくとも一部並列して決定することができる。
【０１２０】
バイト位置ｋに関するバイト誤り位置信号の値は、このバイト位置ｋで訂正を行うかどうかを決定する。バイト誤り位置信号が１である場合には訂正が行われ、バイト誤り位置信号が０である場合には訂正は行われない。
【０１２１】
バイト位置ｋ＝ｉに関して、バイト誤り訂正値ａ（ｉ）は、誤っている第ｉのバイトがバイト誤り訂正値ａ（ｉ）によって訂正されるように決定されている。同様に、バイト位置ｋ＝ｊに関して、バイト誤り訂正値ａ（ｊ）は、誤っている第ｊのバイトがバイト誤り訂正値ａ（ｊ）によって訂正されるように決定されている。
【０１２２】
ｋ≠ｉ，ｊである他の全てのバイト位置ｋに関してはバイト誤りはなく、したがって、これらのバイト位置に関しては訂正が行われない。バイト誤り位置信号がこのバイト位置で値０を取り、したがってこのバイト位置に関して訂正が必要ないので、バイト誤り訂正値ａ（ｋ）は、０でないと決定されたときでさえ、これは訂正に使用されない。
【０１２３】
１バイト誤り、２バイト誤り、３バイト誤りの処理
以下、どのようにしてバイト誤りを認識し、互いに区別することができるかを述べる。例えば、２バイト誤り訂正符号を考える。補足として、３バイト誤り認識についても述べる。
【０１２４】
１．まず、１バイト誤りまたは２バイト誤りのみが存在する場合から始める。そのような例では、２バイト誤りに関しては、式（９）に従って、
【数２７】
2019110522.tif 000028
が成り立ち、１バイト誤りに関しては、式（７）および（８）
【数２８】
2019110522.tif 000029
も成り立つ。
【０１２５】
さらに、１バイト誤りも２バイト誤りも発生していない場合を区別することができる。既にｓ１＝０から、１バイト誤りも２バイト誤りも発生していないと帰結することができる。
【０１２６】
３バイト誤りに関する確率が極端に小さいとき、この場合に関して、誤りが発生していないと帰結することができる。
【０１２７】
２．ここで、１バイト誤りのみ、２バイト誤りのみ、または３バイト誤りのみが存在する場合を考える。３バイト誤りに関して、式（１１）に従って、
【数２９】
2019110522.tif 000030
が成り立つ。
【０１２８】
それに対応して、２バイト誤りまたは１バイト誤りに関して、
【数３０】
2019110522.tif 000031
が成り立つ。
【０１２９】
２バイト誤りがある場合、さらに、式（９）
【数３１】
2019110522.tif 000032
が成り立つ。
【０１３０】
１バイト誤りに関して、やはり式（７）および（８）
【数３２】
2019110522.tif 000033
が成り立つ。
【０１３１】
式（９）による条件は３バイト誤りに関しても成り立つので、この条件のみからでは、２バイト誤りがあると帰結することはできない。
【０１３２】
２バイト誤りの訂正は、以下のように行うことができる。ｉ∈｛０，１，…，Ｎ−１｝での各バイト位置ｉに関して、２次のロケータ多項式の値Ｌ（αｉ）は、以下の式に従って決定される。
【数３３】
2019110522.tif 000034
【０１３３】
Ｌ（αｉ）＝０の場合、第ｉのバイトが訂正される。Ｌ（αｉ）≠０の場合、第ｉのバイトは訂正されない。バイト誤り位置信号ＢＰｓｉは、それぞれのバイトの訂正が行われるか否かを提示することができる。バイト誤り位置信号ＢＰｓｉは、例えば、
【数３４】
2019110522.tif 000035
によって決定されている。
【０１３４】
ガロア体ＧＦ（２ｍ）での演算を実現する回路構成では、例えば、乗算器、定数乗算器、自乗器、べき乗（３乗）生成器などが採用される。個々のそのような演算の回路技術的な採用は既知である。以下、例として、例えば剰余多項式によって決定されているガロア体において、乗算器、自乗器、３乗生成器、および定数乗算器をどのように実現することができるかを述べる。例えば、ｍ＝５が仮定され、バイトは、ｍ＝５ビットからなり、対応するガロア体は、ＧＦ（２５）である。
【０１３５】
ｍ＝５でのガロア体ＧＦ（２ｍ）における例
例えばｍ＝５が選択され、基礎となるガロア体
ＧＦ（２ｍ）＝ＧＦ（２５）＝ＧＦ（３２）
は、全部で３２個の要素を含む。
【０１３６】
ガロア体ＧＦ（３２）の要素は、図１３に様々な表現形式で表されている。ガロア体ＧＦ（３２）の剰余多項式は、多項式
ｐ（ｘ）＝１＋ｘ２＋ｘ５
である。
【０１３７】
図１３に示される表の第１の列は、指数表現（指数関数表現とも呼ぶ）で、ｉ＝０，１，…，３０に関してＧＦ（２５）の要素αｉ≠０を含む。体のゼロ要素は、指数表現を有さない。表の第２の列では、全ての要素が、関連の剰余多項式ｐ（ｘ）に関する多項式表現で列挙されている。表の第３の列は、ＧＦ（２５）の要素のタプルまたはベクトル表現を示す。要素のベクトル表現は、多項式表現から直接読み取ることができる。ここで、ベクトル表現の５つの成分は、左から右へ、多項式表現中の関連のべき乗の係数
ｘ０，ｘ１，ｘ２，ｘ３，ｘ４
に対応する。
【０１３８】
対応する多項式表現は、［ｘｉ  ｍｏｄ  （１＋ｘ２＋ｘ５）］を決定することによって、べき乗表現αｉから得られる。例えば、α５の多項式表現は、
ｘ５  ｍｏｄ  （１＋ｘ２＋ｘ５）＝１＋ｘ２
が成り立つので、１＋ｘ２である。
【０１３９】
ガロア体の２つの要素の乗算は、指数表現または多項式表現で行うことができる。ガロア体ＧＦ（２ｍ）＝ＧＦ（２５）の２つの要素が指数表現αｉおよびαｊで与えられる場合、それらの積は、以下のようになる。
αｉ・αｊ＝αｋ
ここで、
ｋ＝（ｉ＋ｊ）  ｍｏｄ  （２ｍ−１）＝（ｉ＋ｊ）  ｍｏｄ  ３１
【０１４０】
ガロア体の乗算すべき要素がベクトル表現または多項式表現である場合、それらの乗算は、ガロア体乗算器によって行うことができる。以下、例として、多項式表現での２つの要素の乗算を述べる。ガロア体ＧＦ（２ｍ）＝ＧＦ（２５）の要素として多項式表現で与えられている２つの要素を互いに乗算するために、多項式を直接通常の様式で互いに乗算することができ、結果を剰余多項式の剰余として決定することができる。
【０１４１】
例えば、多項式１＋ｘ２＋ｘ３およびｘ＋ｘ３が与えられ、それによりそれらの直接の乗算
（１＋ｘ２＋ｘ３）（ｘ＋ｘ３）＝ｘ＋ｘ４＋ｘ５＋ｘ６
が得られる。
【０１４２】
ｘ５＝１＋ｘ２  ｍｏｄ  （１＋ｘ２＋ｘ５）および
ｘ６＝ｘ＋ｘ３  ｍｏｄ  （１＋ｘ２＋ｘ５）
により、
ｘ＋ｘ４＋ｘ５＋ｘ６＝ｘ＋ｘ４＋１＋ｘ２＋ｘ＋ｘ３＝１＋ｘ２＋ｘ３＋ｘ４となる。
【０１４３】
したがって、結果として、
（１＋ｘ２＋ｘ３）・（ｘ＋ｘ３）＝１＋ｘ２＋ｘ３＋ｘ４
が成り立つ。
【０１４４】
以下、剰余多項式
ｍ（ｘ）＝ｘ５＋ｘ２＋１
を有するガロア体ＧＦ（２５）において、第１の要素ａ（ｘ）
ａ（ｘ）＝ａ４ｘ４＋ａ３ｘ３＋ａ２ｘ２＋ａ１ｘ＋ａ０
と、第２の要素ｂ（ｘ）
ｂ（ｘ）＝ｂ４ｘ４＋ｂ３ｘ３＋ｂ２ｘ２＋ｂ１ｘ＋ｂ０
とが乗算される場合を述べる。多項式ａ（ｘ）とｂ（ｘ）の直接の乗算により、まず、８次の多項式が得られる。
ｘ５  ｍｏｄ  （１＋ｘ２＋ｘ５）＝１＋ｘ２，
ｘ６  ｍｏｄ  （１＋ｘ２＋ｘ５）＝ｘ＋ｘ３，
ｘ７  ｍｏｄ  （１＋ｘ２＋ｘ５）＝ｘ２＋ｘ４，
ｘ８  ｍｏｄ  （１＋ｘ２＋ｘ５）＝１＋ｘ２＋ｘ３
によって、４次の多項式が、以下のように得られる。
ｃ４ｘ４＋ｃ３ｘ３＋ｃ２ｘ２＋ｃ１ｘ１＋ｃ０＝ａ（ｘ）・ｂ（ｘ）  ｍｏｄ  ｍ（ｘ）＝
＝（ａ０ｂ４＋ａ１ｂ３＋ａ２ｂ２＋ａ３ｂ１＋ａ３ｂ４＋ａ４ｂ０＋ａ４ｂ３）・ｘ４＋
＋（ａ０ｂ３＋ａ１ｂ２＋ａ２ｂ１＋ａ２ｂ４＋ａ３ｂ０＋ａ３ｂ３＋ａ４ｂ２＋ａ４ｂ４）・ｘ３＋
＋（ａ０ｂ２＋ａ１ｂ１＋ａ１ｂ４＋ａ２ｂ０＋ａ２ｂ３＋ａ３ｂ２＋ａ３ｂ４＋ａ４ｂ１＋ａ４ｂ３＋ａ４ｂ４）・ｘ２＋
＋（ａ０ｂ１＋ａ１ｂ０＋ａ２ｂ４＋ａ３ｂ３＋ａ４ｂ２）・ｘ１＋
＋（ａ０ｂ０＋ａ１ｂ４＋ａ２ｂ３＋ａ３ｂ２＋ａ４ｂ１＋ａ４ｂ４）
【０１４５】
この関係は、５つの第１のバイナリ入力と、５つの第２のバイナリ入力と、５つのバイナリ出力を有するガロア体乗算器によって、実現される。これを以下に詳細に説明する。
【０１４６】
ガロア体乗算器の第１の５つの入力には、バイナリ値ａ０、ａ１、ａ２、ａ３、ａ４が入力され、第２の５つの入力には、バイナリ値ｂ０、ｂ１、ｂ２、ｂ３、ｂ４が入力され、５つのバイナリ出力で、値ｃ０、ｃ１、ｃ２、ｃ３、ｃ４が出力され、ここで、
（ａ０ｂ０＋ａ１ｂ４＋ａ２ｂ３＋ａ３ｂ２＋ａ４ｂ１＋ａ４ｂ４）＝ｃ０，      （２２）
（ａ０ｂ１＋ａ１ｂ０＋ａ２ｂ４＋ａ３ｂ３＋ａ４ｂ２）＝ｃ１      （２３）
（ａ０ｂ２＋ａ１ｂ１＋ａ１ｂ４＋ａ２ｂ０＋ａ２ｂ３＋ａ３ｂ２＋ａ３ｂ４＋ａ４ｂ１＋ａ４ｂ３＋ａ４ｂ４）＝ｃ２      （２４）
（ａ０ｂ３＋ａ１ｂ２＋ａ２ｂ１＋ａ２ｂ４＋ａ３ｂ０＋ａ３ｂ３＋ａ４ｂ２＋ａ４ｂ４）＝ｃ３      （２５）
（ａ０ｂ４＋ａ１ｂ３＋ａ２ｂ２＋ａ３ｂ１＋ａ３ｂ４＋ａ４ｂ０＋ａ４ｂ３）＝ｃ４      （２６）
である。ここで、符号「＋」は、ｍｏｄ２加算（ＸＯＲ演算）を表す。
【０１４７】
式（２２）〜（２６）の実装は、例えばＡＮＤゲートおよびＸＯＲゲート（排他的ＯＲゲート）を使用して、ガロア体乗算器によって行うことができる。例えば、実装の範囲内で、合成ツールを使用することもできる。
【０１４８】
ガロア体の要素が自乗される場合、要素をそれ自体と乗算することができる。多項式表現で、要素が多項式
ａ（ｘ）＝ａ０＋ａ１ｘ１＋ａ２ｘ２＋ａ３ｘ３＋ａ４ｘ４
として与えられる場合、
（ａ（ｘ））２  ｍｏｄ  ｍ（ｘ）＝
＝［ａ０＋ａ１ｘ２＋ａ２ｘ４＋ａ３ｘ６＋ａ４ｘ８］  ｍｏｄ  （１＋ｘ２＋ｘ５）＝
＝（ａ２）ｘ４＋（ａ３＋ａ４）ｘ３＋（ａ１＋ａ４）ｘ２＋ａ３ｘ１＋（ａ０＋ａ４）
が成り立つ。
【０１４９】
それに対応して、ガロア体ＧＦ（２５）での要素の自乗は、５つのバイナリ入力および５つのバイナリ出力を有する自乗器によって実現することができる。５つのバイナリ入力に、バイナリ値ａ０、ａ１、ａ２、ａ３、ａ４が供給され、５つのバイナリ出力で、バイナリ値ｄ０、ｄ１、ｄ２、ｄ３、ｄ４が提供される。
ａ０＋ａ４＝ｄ０，      （２７）
ａ３＝ｄ１，      （２８）
ａ１＋ａ４＝ｄ２，      （２９）
ａ３＋ａ４＝ｄ３，      （３０）
ａ２＝ｄ４，      （３１）
が成り立ち、ここで、符号「＋」は、ここでもｍｏｄ２加算（ＸＯＲ演算）を示す。
【０１５０】
剰余多項式ｍ（ｘ）＝１＋ｘ２＋ｘ５を有するガロア体ＧＦ（２５）で自乗器を実現するために、式（２７）〜（３１）を例えばＸＯＲゲートによって実装することができる。
【０１５１】
ガロア体ＧＦ（２５）の例で、多項式表現で与えられた要素の３乗をどのように決定することができるかを述べる。
【０１５２】
多項式
ａ（ｘ）＝ａ０＋ａ１ｘ１＋ａ２ｘ２＋ａ３ｘ３＋ａ４ｘ４
の３乗（ａ（ｘ））３が剰余多項式ｍ（ｘ）＝１＋ｘ２＋ｘ５の剰余として決定される場合、以下の式が成り立つ。
（ａ（ｘ））３  ｍｏｄ  ｍ（ｘ）＝
＝（ａ０ａ２＋ａ０ａ４＋ａ１ａ２＋ａ１ａ３＋ａ１ａ４＋ａ２ａ３＋ａ２ａ４＋ａ３＋ａ３ａ４）・ｘ４＋
＋（ａ０ａ４＋ａ１＋ａ２＋ａ２ａ３＋ａ２ａ４＋ａ３＋ａ４）・ｘ３＋
＋（ａ０ａ１＋ａ０ａ２＋ａ０ａ４＋ａ１ａ２＋ａ２ａ４＋ａ３ａ４＋ａ４）・ｘ２＋
＋（ａ０ａ１＋ａ０ａ３＋ａ２＋ａ３＋ａ３ａ４＋ａ４）・ｘ１＋
＋（ａ０＋ａ０ａ４＋ａ１ａ２＋ａ１ａ３＋ａ２ａ３）
【０１５３】
それに対応して、ガロア体ＧＦ（２５）での要素の３乗の生成は、５つのバイナリ入力および５つのバイナリ出力を有する３乗生成器によって実現することができる。５つのバイナリ入力に、バイナリ値ａ０、ａ１、ａ２、ａ３、ａ４が供給され、５つのバイナリ出力で、バイナリ値ｆ０、ｆ１、ｆ２、ｆ３、ｆ４が提供される。
ｆ０＝ａ０＋ａ０ａ４＋ａ１ａ２＋ａ１ａ３＋ａ２ａ３      （３２）
ｆ１＝ａ０ａ１＋ａ０ａ３＋ａ２＋ａ３＋ａ３ａ４＋ａ４      （３３）
ｆ２＝ａ０ａ１＋ａ０ａ２＋ａ０ａ４＋ａ１ａ２＋ａ２ａ４＋ａ３ａ４＋ａ４      （３４）
ｆ３＝ａ０ａ４＋ａ１＋ａ２＋ａ２ａ３＋ａ２ａ４＋ａ３＋ａ４      （３５）
ｆ４＝ａ０ａ２＋ａ０ａ４＋ａ１ａ２＋ａ１ａ３＋ａ１ａ４＋ａ２ａ３＋ａ２ａ４＋ａ３＋ａ３ａ４      （３６）
が成り立つ。
【０１５４】
例えば、３乗生成器は、この例では、剰余多項式ｍ（ｘ）＝１＋ｘ２＋ｘ５を有するガロア体ＧＦ（２５）で単に式（３２）〜（３６）を実装することによって実現することができる。
【０１５５】
代替として、３乗生成器は、自乗器と、下流に接続されたガロア体乗算器とから実現することができる。また、要素ａ（ｘ）の高次のべき乗は、対応する様式で、適切な構成要素を使用して実現することができる。
【０１５６】
ガロア体ＧＦ（２ｍ）での定数乗算器の実装を、以下、例としてｍ＝５に関して述べる。剰余多項式は、
ｍ（ｘ）＝１＋ｘ２＋ｘ５
である。
【０１５７】
ａ∈ＧＦ（２５）とすると、ガロア体の任意の要素は、以下の多項式表現で表される。
ａ（ｘ）＝ａ０＋ａ１ｘ＋ａ２ｘ２＋ａ３ｘ３＋ａ４ｘ４      （３７）
【０１５８】
乗算すべき定数として、例えばα９が選択され、その多項式表現は、図１３に示される表に従って、
α９（ｘ）＝ｘ＋ｘ３＋ｘ４      （３８）
で与えられる。乗算として、
ａ（ｘ）・α９（ｘ）  ｍｏｄ  （１＋ｘ２＋ｘ５）＝ｂ０＋ｂ１ｘ＋ｂ２ｘ２＋ｂ３ｘ３＋ｂ４ｘ４      （３９）
が得られ、
ｂ０＝ａ１＋ａ２，      （４０）
ｂ１＝ａ０＋ａ２＋ａ３，      （４１）
ｂ２＝ａ２＋ａ３＋ａ４，      （４２）
ｂ３＝ａ０＋ａ３＋ａ４，      （４３）
ｂ４＝ａ０＋ａ１＋ａ４              （４４）
である。
【０１５９】
出力値ｂ０、…、ｂ４は、式（４０）〜（４４）で表される関係に対応して入力値ａ０、…、ａ４から導出することができ、出力値は、入力値からのＸＯＲ演算によって決定される。ここで、符号「＋」は、ｍｏｄ２加算（ＸＯＲ演算）を示す。それに対応して、定数乗算器は、ＸＯＲゲートによって実現することができる。
【０１６０】
バイト誤り位置信号を生成するためのバイト誤り位置信号生成器の説明
図１は、バイト誤り位置信号を決定するための例示的な回路構成を示す。例えば、各バイトがそれぞれｍビットを有するｎバイトからなる符号語を有する２バイト誤り訂正誤り符号を考える。
【０１６１】
回路構成は、Ｎ個のバイト誤り位置信号生成器１０、１１、…、１ｉ、…、１Ｎ−１を有し、バイト誤り位置信号生成器１０、１１、…、１ｉ、…、１Ｎ−１は、それらそれぞれの１ビット幅の出力を介してバイト誤り位置信号ＢＰｓ０、ＢＰｓ１、…、ＢＰｓｉ、…、ＢＰｓＮ−１を提供する。
【０１６２】
Ｎ個のバイト誤り位置信号生成器１０、１１、…、１ｉ、…、１Ｎ−１のそれぞれ４・ｍビット幅の入力に、シンドローム発生器（図１には図示せず）から提供される４・ｍビット幅の誤りシンドローム
ｓ＝ｓ１，ｓ２，ｓ３，ｓ４
が提供され、この誤りシンドロームは、それぞれｍビット幅のシンドローム成分ｓ１、ｓ２、ｓ３、ｓ４からなる。
【０１６３】
１つの誤りの場合に全てのバイトが訂正される場合、Ｎ＝ｎが成り立つ。１つの誤りの場合にｎ個未満のバイトが訂正される場合、Ｎ＜ｎが成り立つ。例えば、誤りの場合、データバイトのみが訂正されることが可能である。そのような例では、検査バイトは訂正され得ない。
【０１６４】
バイト誤り位置信号生成器１０は、例えば、以下のように構成されている。
−バイト誤り位置信号生成器１０は、
【数３５】
2019110522.tif 000036
が成り立つ場合には、バイト誤り位置信号ＢＰｓ０＝１を出力し、
−バイト誤り位置信号生成器１０は、
【数３６】
2019110522.tif 000037
が成り立つ場合には、バイト誤り位置信号ＢＰｓ０＝０を出力する。
【０１６５】
バイト誤り位置信号生成器１１は、例えば、以下のように構成されている。
−バイト誤り位置信号生成器１１は、
【数３７】
2019110522.tif 000038
が成り立つ場合には、バイト誤り位置信号ＢＰｓ１＝１を出力し、
−バイト誤り位置信号生成器１１は、
【数３８】
2019110522.tif 000039
が成り立つ場合には、バイト誤り位置信号ＢＰｓ１＝０を出力する。
【０１６６】
バイト誤り位置信号生成器１ｉは、例えば、以下のように構成されている。
−バイト誤り位置信号生成器１ｉは、
【数３９】
2019110522.tif 000040
が成り立つ場合には、バイト誤り位置信号ＢＰｓｉ＝１を出力し、
−バイト誤り位置信号生成器１ｉは、
【数４０】
2019110522.tif 000041
が成り立つ場合には、バイト誤り位置信号ＢＰｓｉ＝０を出力する。
【０１６７】
バイト誤り位置信号生成器１Ｎ−１は、例えば、以下のように構成されている。
−バイト誤り位置信号生成器１Ｎ−１は、
【数４１】
2019110522.tif 000042
が成り立つ場合には、バイト誤り位置信号ＢＰｓＮ−１＝１を出力し、
−バイト誤り位置信号生成器１Ｎ−１は、
【数４２】
2019110522.tif 000043
が成り立つ場合には、バイト誤り位置信号ＢＰｓＮ−１＝０を出力する。
【０１６８】
ここで、α  ｍｏｄ  ２ｍ−１のそれぞれの指数を解釈することができる。
【０１６９】
２バイト誤りがあり、第ｊのバイトおよび第ｋのバイトが誤っている場合、ｉ＝ｊに関して、およびｉ＝ｋに関して、バイト誤り位置信号ＢＰｓｉは１であり、ｌ≠ｊ，ｋとして全ての残りのバイト誤り位置信号ＢＰｓｌは０であり、ここで、
０≦ｉ，ｊ，ｋ，ｌ≦Ｎ−１，
α０＝１
が成り立ち、
１は、ガロア体ＧＦ（２ｍ）の単位元である。
【０１７０】
図２によるバイト誤り位置信号生成器
図２は、図１に示される回路構成の可能な形態を示す回路構成を示す。
【０１７１】
図１に示されるバイト誤り位置信号生成器１０は、以下のものを含む。
−誤りシンドロームｓ＝ｓ１，ｓ２，ｓ３，ｓ４の成分ｓ１、ｓ２、ｓ３、およびｓ４を入力するための１つの４・ｍビット幅の入力と、３つのそれぞれｍビット幅の出力とを有する部分回路２１０、
−第１のｍビット幅の入力、第２のｍビット幅の入力、および１つのｍビット幅の出力を有する定数乗算器２２０、
−第１のｍビット幅の入力、第２のｍビット幅の入力、および１つのｍビット幅の出力を有する定数乗算器２３０、
−３つのそれぞれｍビット幅の入力、および１つのｍビット幅の出力を有するＸＯＲ回路２４０、ならびに
−１つのｍビット幅の入力および１つの１ビット幅のバイナリ出力を有するＮＯＲ回路２５０
【０１７２】
部分回路２１０は、誤りシンドロームｓの入力時に、
−第１の出力で、ｓ１・ｓ４＋ｓ２・ｓ３を出力し、
−第２の出力で、
【数４３】
2019110522.tif 000044
を出力し、
−第３の出力で、
【数４４】
2019110522.tif 000045
を出力する
ように設計されている。
【０１７３】
部分回路２１０の第１の出力は、定数乗算器２２０の第１の入力と接続されている。定数乗算器２２０の第２の入力には、定数α０＝１が入力され、それにより、定数乗算器２２０の出力で、
α０（ｓ１・ｓ４＋ｓ２・ｓ３）＝ｓ１・ｓ４＋ｓ２・ｓ３
が提供される。
【０１７４】
定数乗算器２２０の出力は、ＸＯＲ回路２４０の第１の入力と接続されている。
【０１７５】
部分回路２１０の第２の出力は、定数乗算器２３０の第１の入力と接続されている。定数乗算器２３０の第２の入力には、定数α２・０＝α０が入力され、それにより、定数乗算器２３０の出力で、
【数４５】
2019110522.tif 000046
が提供される。
【０１７６】
定数乗算器２３０の出力は、ＸＯＲ回路２４０の第２の入力と接続されている。
【０１７７】
部分回路２１０の第３の出力は、ＸＯＲ回路２４０の第３の入力と接続されている。
【０１７８】
ＸＯＲ回路２４０は、例えば、その３つの入力に入力されたそれぞれｍビット幅の値の成分ごとのＸＯＲ演算を生成し、そのｍビット幅の出力で、値
【数４６】
2019110522.tif 000047
を提供し、この値は、ＮＯＲ回路２５０の入力に送られる。ＮＯＲ回路２５０は、その出力で、
−ｖ０＝０が成り立つ場合には、バイナリ値ＢＰｓ０＝１を提供し、
−ｖ０≠０が成り立つ場合には、バイナリ値ＢＰｓ０＝０を提供する。
【０１７９】
図１に示されるバイト誤り位置信号生成器１１は、以下のものを含む。
−誤りシンドロームｓ＝ｓ１，ｓ２，ｓ３，ｓ４の成分ｓ１、ｓ２、ｓ３、およびｓ４を入力するための１つの４・ｍビット幅の入力と、３つのそれぞれｍビット幅の出力とを有する部分回路２１１、
−第１のｍビット幅の入力、第２のｍビット幅の入力、および１つのｍビット幅の出力を有する定数乗算器２２１、
−第１のｍビット幅の入力、第２のｍビット幅の入力、および１つのｍビット幅の出力を有する定数乗算器２３１、
−３つのそれぞれｍビット幅の入力、および１つのｍビット幅の出力を有するＸＯＲ回路２４１、ならびに
−１つのｍビット幅の入力および１つの１ビット幅のバイナリ出力を有するＮＯＲ回路２５１
【０１８０】
部分回路２１１は、誤りシンドロームｓの入力時に、
−第１の出力で、ｓ１・ｓ４＋ｓ２・ｓ３を出力し、
−第２の出力で、
【数４７】
2019110522.tif 000048
を出力し、
−第３の出力で、
【数４８】
2019110522.tif 000049
を出力する
ように設計されている。
【０１８１】
部分回路２１１の第１の出力は、定数乗算器２２１の第１の入力と接続されている。定数乗算器２２１の第２の入力には、定数α１が入力され、それにより、定数乗算器２２１の出力で、
α１（ｓ１・ｓ４＋ｓ２・ｓ３）
が提供される。
【０１８２】
定数乗算器２２１の出力は、ＸＯＲ回路２４１の第１の入力と接続されている。
【０１８３】
部分回路２１１の第２の出力は、定数乗算器２３１の第１の入力と接続されている。定数乗算器２３１の第２の入力には、定数α２が入力され、それにより、定数乗算器２３１の出力で、
【数４９】
2019110522.tif 000050
が提供される。
【０１８４】
定数乗算器２３１の出力は、ＸＯＲ回路２４１の第２の入力と接続されている。
【０１８５】
部分回路２１１の第３の出力は、ＸＯＲ回路２４１の第３の入力と接続されている。
【０１８６】
ＸＯＲ回路２４１は、例えば、その３つの入力に入力されたそれぞれｍビット幅の値の成分ごとのＸＯＲ演算を生成し、そのｍビット幅の出力で、値
【数５０】
2019110522.tif 000051
を提供し、この値は、ＮＯＲ回路２５１の入力に供給される。ＮＯＲ回路２５１は、その出力で、
−ｖ１＝０が成り立つ場合には、バイナリ値ＢＰｓ１＝１を提供し、
−ｖ１≠０が成り立つ場合には、バイナリ値ＢＰｓ１＝０を提供する。
【０１８７】
図１に示されるバイト誤り位置信号生成器１ｉは、以下のものを含む。
−誤りシンドロームｓ＝ｓ１，ｓ２，ｓ３，ｓ４の成分ｓ１、ｓ２、ｓ３、およびｓ４を入力するための１つの４・ｍビット幅の入力と、３つのそれぞれｍビット幅の出力とを有する部分回路２１ｉ、
−第１のｍビット幅の入力、第２のｍビット幅の入力、および１つのｍビット幅の出力を有する定数乗算器２２ｉ、
−第１のｍビット幅の入力、第２のｍビット幅の入力、および１つのｍビット幅の出力を有する定数乗算器２３ｉ、
−３つのそれぞれｍビット幅の入力、および１つのｍビット幅の出力を有するＸＯＲ回路２４ｉ、ならびに
−１つのｍビット幅の入力および１つの１ビット幅のバイナリ出力を有するＮＯＲ回路２５ｉ
【０１８８】
部分回路２１ｉは、誤りシンドロームｓの入力時に、
−第１の出力で、ｓ１・ｓ４＋ｓ２・ｓ３を出力し、
−第２の出力で、
【数５１】
2019110522.tif 000052
を出力し、
−第３の出力で、
【数５２】
2019110522.tif 000053
を出力する
ように設計されている。
【０１８９】
部分回路２１ｉの第１の出力は、定数乗算器２２ｉの第１の入力と接続されている。定数乗算器２２ｉの第２の入力には、定数αｉが入力され、それにより、定数乗算器２２ｉの出力で、
αｉ（ｓ１・ｓ４＋ｓ２・ｓ３）
が提供される。
【０１９０】
定数乗算器２２ｉの出力は、ＸＯＲ回路２４ｉの第１の入力と接続されている。
【０１９１】
部分回路２１ｉの第２の出力は、定数乗算器２３ｉの第１の入力と接続されている。定数乗算器２３ｉの第２の入力には、定数α２・ｉが入力され、それにより、定数乗算器２３ｉの出力で、
【数５３】
2019110522.tif 000054
が提供される。
【０１９２】
定数乗算器２３ｉの出力は、ＸＯＲ回路２４ｉの第２の入力と接続されている。
【０１９３】
部分回路２１ｉの第３の出力は、ＸＯＲ回路２４ｉの第３の入力と接続されている。
【０１９４】
ＸＯＲ回路２４ｉは、例えば、その３つの入力に入力されたそれぞれｍビット幅の値の成分ごとのＸＯＲ演算を生成し、そのｍビット幅の出力で、値
【数５４】
2019110522.tif 000055
を提供し、この値は、ＮＯＲ回路２５ｉの入力に供給される。ＮＯＲ回路２５ｉは、その出力で、
−ｖｉ＝０が成り立つ場合には、バイナリ値ＢＰｓｉ＝１を提供し、
−ｖｉ≠０が成り立つ場合には、バイナリ値ＢＰｓｉ＝０を提供する。
【０１９５】
図１に示されるバイト誤り位置信号生成器１Ｎ−１は、以下のものを含む。
−誤りシンドロームｓ＝ｓ１，ｓ２，ｓ３，ｓ４の成分ｓ１、ｓ２、ｓ３、およびｓ４を入力するための１つの４・ｍビット幅の入力と、３つのそれぞれｍビット幅の出力とを有する部分回路２１Ｎ−１、
−第１のｍビット幅の入力、第２のｍビット幅の入力、および１つのｍビット幅の出力を有する定数乗算器２２Ｎ−１、
−第１のｍビット幅の入力、第２のｍビット幅の入力、および１つのｍビット幅の出力を有する定数乗算器２３Ｎ−１、
−３つのそれぞれｍビット幅の入力、および１つのｍビット幅の出力を有するＸＯＲ回路２４Ｎ−１、ならびに
−１つのｍビット幅の入力および１つの１ビット幅のバイナリ出力を有するＮＯＲ回路２５Ｎ−１
【０１９６】
部分回路２１Ｎ−１は、誤りシンドロームｓの入力時に、
−第１の出力で、ｓ１・ｓ４＋ｓ２・ｓ３を出力し、
−第２の出力で、
【数５５】
2019110522.tif 000056
を出力し、
−第３の出力で、
【数５６】
2019110522.tif 000057
を出力する
ように設計されている。
【０１９７】
部分回路２１Ｎ−１の第１の出力は、定数乗算器２２Ｎ−１の第１の入力と接続されている。定数乗算器２２Ｎ−１の第２の入力には、定数αＮ−１が入力され、それにより、定数乗算器２２Ｎ−１の出力で、
αＮ−１（ｓ１・ｓ４＋ｓ２・ｓ３）
が提供される。
【０１９８】
定数乗算器２２Ｎ−１の出力は、ＸＯＲ回路２４Ｎ−１の第１の入力と接続されている。
【０１９９】
部分回路２１Ｎ−１の第２の出力は、定数乗算器２３Ｎ−１の第１の入力と接続されている。定数乗算器２３Ｎ−１の第２の入力には、定数α２・（Ｎ−１）が入力され、それにより、定数乗算器２３Ｎ−１の出力で、
【数５７】
2019110522.tif 000058
が提供される。
【０２００】
定数乗算器２３Ｎ−１の出力は、ＸＯＲ回路２４Ｎ−１の第２の入力と接続されている。
【０２０１】
部分回路２１Ｎ−１の第３の出力は、ＸＯＲ回路２４Ｎ−１の第３の入力と接続されている。
【０２０２】
ＸＯＲ回路２４Ｎ−１は、例えば、その３つの入力に入力されたそれぞれｍビット幅の値の成分ごとのＸＯＲ演算を生成し、そのｍビット幅の出力で、値
【数５８】
2019110522.tif 000059
を提供し、この値は、ＮＯＲ回路２５Ｎ−１の入力に供給される。ＮＯＲ回路２５Ｎ−１は、その出力で、
−ｖＮ−１＝０が成り立つ場合には、バイナリ値ＢＰｓＮ−１＝１を提供し、
−ｖＮ−１≠０が成り立つ場合には、バイナリ値ＢＰｓＮ−１＝０を提供する。
【０２０３】
部分回路の例示的な統合
図２での部分回路２１０、２１１、…、２１ｉ、…、２１Ｎ−１は、機能的に同じである。したがって、これらの部分回路を部分回路３１に統合することが可能である。
【０２０４】
図３は、部分回路２１０、２１１、…、２１ｉ，…、２１Ｎ−１を統合する部分回路３１を示す。図３に示される回路部分の残りは、図２と同一である。
【０２０５】
例えば、図１によるバイト誤り位置信号生成器１０、１１、…、１ｉ、…、１Ｎ−１は、共通の部分回路３１を使用することができる。
【０２０６】
部分回路３１の例示的な実装
図４は、図３に示される部分回路３１の可能な実装を示す。
【０２０７】
部分回路３１は、シンドロームｓを構成する成分ｓ１、ｓ２、ｓ３、ｓ４を入力するための４つのそれぞれｍビット幅の入力を有する。さらに、２つのｍビット幅の入力および１つのｍビット幅の出力をそれぞれ有する４つの乗算器４１、４２、４４、および４７と、１つのｍビット幅の入力および１つのｍビット幅の出力をそれぞれ有する２つの自乗器４５および４８と、２つのｍビット幅の入力および１つのｍビット幅の出力をそれぞれ有する３つのＸＯＲ回路４３、４６、および４９とが提供されている。
【０２０８】
ＸＯＲ回路４３、４６、４９は、それぞれ、そのそれぞれの入力に入力されたｍ成分値の成分ごとのＸＯＲ演算を実施する。乗算器は、ガロア体ＧＦ（２ｍ）での乗算を実施し、自乗器は、その入力に入力されたオペランドを、同様にガロア体ＧＦ（２ｍ）で自乗する。
【０２０９】
成分ｓ１を送る入力は、乗算器４１の第１の入力および乗算器４４の第１の入力と接続されている。
【０２１０】
成分ｓ２を送る入力は、乗算器４２の第１の入力、乗算器４７の第１の入力、および自乗器４５の入力と接続されている。
【０２１１】
成分ｓ３を送る入力は、乗算器４２の第２の入力、乗算器４４の第２の入力、および自乗器４８の入力と接続されている。
【０２１２】
成分ｓ４を送る入力は、乗算器４１の第２の入力および乗算器４７の第２の入力と接続されている。
【０２１３】
乗算器４１の出力は、ＸＯＲ回路４３の第１の入力につながれている。乗算器４２の出力は、ＸＯＲ回路４３の第２の入力につながれている。ＸＯＲ回路４３の出力で、信号ｓ１ｓ４＋ｓ２ｓ３が提供される。
【０２１４】
乗算器４４の出力は、ＸＯＲ回路４６の第１の入力につながれている。自乗器４５の出力は、ＸＯＲ回路４６の第２の入力と接続されている。ＸＯＲ回路４６の出力で、信号
【数５９】
2019110522.tif 000060
が提供される。
【０２１５】
乗算器４７の出力は、ＸＯＲ回路４９の第１の入力につながれている。自乗器４８の出力は、ＸＯＲ回路４９の第２の入力と接続されている。ＸＯＲ回路４９の出力で、信号
【数６０】
2019110522.tif 000061
が提供される。
【０２１６】
２バイト誤りに関するバイト誤り訂正値
図５は、２バイト誤りの場合に合計Ｎバイトに関するバイト誤り訂正値を生成するための例示的な回路を示す。考察するＮ個のバイトに、０〜Ｎ−１の番号を付す。
【０２１７】
第ｉ（０≦ｉ≦Ｎ−１）のバイトに関するバイト誤り訂正値ａ（ｉ）ｃｏｒは、実際の誤りシンドロームｓ、バイト位置ｉ、およびバイト誤り位置信号ＢＰｓｉに応じて、
ａ（ｉ）ｃｏｒ＝ＢＰｓｉ・ａ（ｉ）
に従って決定される。
【０２１８】
例えば、全てのＮ個のバイト位置に関してバイト誤り訂正値が決定される。誤っていないバイト位置に関して、バイト誤り訂正値はマスキングされる。例えば、マスキングは、値０を有するバイト誤り位置信号をバイト誤り訂正値に乗算することによって行われる。
【０２１９】
バイト位置ｉおよびｊに２バイト誤りがある場合、第ｉおよび第ｊのバイトを訂正することができる。これは、第ｉおよび第ｊのバイトを、対応するバイト誤り訂正値ａ（ｉ）ｃｏｒ＝ａ（ｉ）≠０またはａ（ｊ）ｃｏｒ＝ａ（ｊ）≠０と成分ごとにＸＯＲ演算することによって行われる。
【０２２０】
誤っていないバイトは訂正されない。このために、それらのバイト位置に関して、バイト誤り訂正値が０に設定され（例えば、前に説明したバイト誤り訂正値と０の乗算）、次いで、訂正されるバイトが、成分ごとにこの値０とＸＯＲ演算される。値０とのＸＯＲ演算によって、元の値は変わらない。
【０２２１】
第ｉの誤っているバイトに関して、バイト誤り位置信号は、ＢＰｓｉ＝１であり、
ａ（ｉ）ｃｏｒ＝ＢＰｓｉ・ａ（ｉ）＝ａ（ｉ）
が成り立つ。
【０２２２】
第ｊの誤っているバイトに関して、バイト誤り位置信号は、ＢＰｓｊ＝１であり、
ａ（ｊ）ｃｏｒ＝ＢＰｓｊ・ａ（ｊ）＝ａ（ｊ）
が成り立つ。
【０２２３】
第ｋ（ｋ≠ｉ，ｊ）の誤っていないバイトに関して、バイト誤り位置信号は、ＢＰｓｋ＝０であり、ａ（ｋ）ｃｏｒ＝ＢＰｓｋ・ａ（ｋ）＝０が成り立つ。
【０２２４】
第ｋ（ｋ≠ｉ，ｊ）のバイトが誤っていない場合、そのバイトは訂正されない。これは、図５に示される例に従って、第ｋのバイトの値を変えないように第ｋのバイトを成分ごとに値０とＸＯＲ演算することによって達成することができる。それにより、バイト誤り位置信号は、バイト誤り訂正値をマスキングして０にし、したがって訂正は行われない。
【０２２５】
２バイト誤りの場合に、第１のバイト誤りがバイト位置ｊにあり、第２のバイト誤りがバイト位置ｋにある場合、バイト誤り訂正値ａ（ｊ）ｃｏｒおよびａ（ｋ）ｃｏｒは０でなく、ｉ≠ｊ，ｋに関するバイト誤り訂正値ａ（ｉ）ｃｏｒは、それぞれ０である。このとき、
ＢＰｓｊ＝ＢＰｓｋ＝１
および
ＢＰｓｉ＝０（ｉ≠ｊ，ｋに関して）
も成り立つ。
【０２２６】
図５は、誤りシンドロームｓを入力するための１つの４・ｍビット幅（または４・ｍ次元）の入力と、バイト誤り位置信号ＢＰｓ０、ＢＰｓ１、…、ＢＰｓｉ、…、ＢＰｓＮ−１を出力するための１つの１ビット幅（または１次元）の出力とをそれぞれ有する、バイト誤り位置信号ＢＰｓ０、ＢＰｓ１、…、ＢＰｓｉ、…、ＢＰｓＮ−１を生成するためのＮ個のバイト誤り位置信号生成器１０、１１、…、１ｉ、…、１Ｎ−１を含む。
【０２２７】
図５は、さらにＮ個のバイト誤り訂正値生成器５１０、５１１、…、５１ｉ、…、５Ｎ−１を示し、これらは、
−バイト誤り位置信号を入力するための第１の１ビット幅の入力と、
−誤りシンドロームｓの成分ｓ１、ｓ２、ｓ３を入力するための第２の３・ｍビット幅の入力と、
−対応するバイト位置に関するバイト誤り訂正値ａ（０）ｃｏｒ、ａ（１）ｃｏｒ、…、ａ（ｉ）ｃｏｒ、…、ａ（Ｎ−１）ｃｏｒを出力するためのｍビット幅の出力と
をそれぞれ有する。
【０２２８】
さらに、図５は、Ｎ個のＸＯＲ回路５２０、５２１、…、５２ｉ、…、５２Ｎ−１を含み、これらは、それぞれ
−対応するバイト誤り訂正値を入力するためのｍビット幅の第１の入力と、
−対応する訂正すべきバイトを入力するための第２のｍビット幅の入力と、
−それぞれｍビット幅の訂正されたバイトを出力するためのｍビット幅の出力とを有する。
【０２２９】
バイト誤り位置信号生成器１０の４・ｍビット幅の入力に、実際の誤りシンドロームｓが入力される。バイト誤り訂正値生成器５１０の第１の入力と接続されているバイト誤り位置信号生成器１０の１ビット幅の出力で、バイト誤り位置信号ＢＰｓ０が出力される。
【０２３０】
バイト誤り訂正値生成器５１０の第２の３・ｍビット幅の入力には、誤りシンドロームｓの成分ｓ１、ｓ２、ｓ３が入力される。バイト誤り訂正値生成器５１０は、その出力で、バイト誤り訂正値ａ（０）ｃｏｒを提供する。バイト誤り訂正値生成器５１０の出力は、ＸＯＲ回路５２０の第１の入力と接続されている。ＸＯＲ回路５２０の第２の入力には、誤っている可能性がある第０のバイトのバイト値
【数６１】
2019110522.tif 000062
が入力される。ＸＯＲ回路５２０は、誤っている可能性があるバイト値
【数６２】
2019110522.tif 000063
とバイト誤り訂正値ａ（０）ｃｏｒとの成分ごとのＸＯＲ演算を生成し、その出力で、値
【数６３】
2019110522.tif 000064
を出力する。バイト誤り訂正値ａ（０）ｃｏｒは、
−第０のバイトが正しく、ＢＰｓ０＝０である場合には、０であり、
−第０のバイトが誤っており、ＢＰｓ０＝１である場合には、０でない。
【０２３１】
バイト誤り位置信号生成器１１の４・ｍビット幅の入力に、実際の誤りシンドロームｓが入力される。バイト誤り訂正値生成器５１１の第１の入力と接続されているバイト誤り位置信号生成器１１の１ビット幅の出力で、バイト誤り位置信号ＢＰｓ１が出力される。
【０２３２】
バイト誤り訂正値生成器５１１の第２の３・ｍビット幅の入力には、誤りシンドロームｓの成分ｓ１、ｓ２、ｓ３が入力される。バイト誤り訂正値生成器５１１は、その出力で、バイト誤り訂正値ａ（１）ｃｏｒを提供する。バイト誤り訂正値生成器５１１の出力は、ＸＯＲ回路５２１の第１の入力と接続されている。ＸＯＲ回路５２１の第２の入力には、誤っている可能性がある第１のバイトのバイト値
【数６４】
2019110522.tif 000065
が入力される。ＸＯＲ回路５２１は、誤っている可能性があるバイト値
【数６５】
2019110522.tif 000066
とバイト誤り訂正値ａ（１）ｃｏｒとの成分ごとのＸＯＲ演算を生成し、その出力で、値
【数６６】
2019110522.tif 000067
を出力する。バイト誤り訂正値ａ（１）ｃｏｒは、
−第１のバイトが正しく、ＢＰｓ１＝０である場合には、０であり、
−第１のバイトが誤っており、ＢＰｓ１＝１である場合には、０でない。
【０２３３】
バイト誤り位置信号生成器１ｉの４・ｍビット幅の入力に、実際の誤りシンドロームｓが入力される。バイト誤り訂正値生成器５１ｉの第１の入力と接続されているバイト誤り位置信号生成器１ｉの１ビット幅の出力で、バイト誤り位置信号ＢＰｓｉが出力される。
【０２３４】
バイト誤り訂正値生成器５１ｉの第２の３・ｍビット幅の入力には、誤りシンドロームｓの成分ｓ１、ｓ２、ｓ３が入力される。バイト誤り訂正値生成器５１ｉは、その出力で、バイト誤り訂正値ａ（ｉ）ｃｏｒを提供する。バイト誤り訂正値生成器５１ｉの出力は、ＸＯＲ回路５２ｉの第１の入力と接続されている。ＸＯＲ回路５２ｉの第２の入力には、誤っている可能性がある第ｉのバイトのバイト値
【数６７】
2019110522.tif 000068
が入力される。ＸＯＲ回路５２ｉは、誤っている可能性があるバイト値
【数６８】
2019110522.tif 000069
とバイト誤り訂正値ａ（ｉ）ｃｏｒとの成分ごとのＸＯＲ演算を生成し、その出力で、値
【数６９】
2019110522.tif 000070
を出力する。バイト誤り訂正値ａ（ｉ）ｃｏｒは、
−第ｉのバイトが正しく、ＢＰｓｉ＝０である場合には、０であり、
−第ｉのバイトが誤っており、ＢＰｓｉ＝１である場合には、０でない。
【０２３５】
バイト誤り位置信号生成器１Ｎ−１の４・ｍビット幅の入力に、実際の誤りシンドロームｓが入力される。バイト誤り訂正値生成器５１Ｎ−１の第１の入力と接続されているバイト誤り位置信号生成器１Ｎ−１の１ビット幅の出力で、バイト誤り位置信号ＢＰｓＮ−１が出力される。
【０２３６】
バイト誤り訂正値生成器５１Ｎ−１の第２の３・ｍビット幅の入力には、誤りシンドロームｓの成分ｓ１、ｓ２、ｓ３が入力される。バイト誤り訂正値生成器５１Ｎ−１は、その出力で、バイト誤り訂正値ａ（Ｎ−１）ｃｏｒを提供する。バイト誤り訂正値生成器５１Ｎ−１の出力は、ＸＯＲ回路５２Ｎ−１の第１の入力と接続されている。ＸＯＲ回路５２Ｎ−１の第２の入力には、誤っている可能性がある第（Ｎ−１）のバイトのバイト値
【数７０】
2019110522.tif 000071
が入力される。ＸＯＲ回路５２Ｎ−１は、誤っている可能性があるバイト値
【数７１】
2019110522.tif 000072
とバイト誤り訂正値ａ（Ｎ−１）ｃｏｒとの成分ごとのＸＯＲ演算を生成し、その出力で、値
【数７２】
2019110522.tif 000073
を出力する。バイト誤り訂正値ａ（Ｎ−１）ｃｏｒは、
−第（Ｎ−１）のバイトが正しく、ＢＰｓＮ−１＝０である場合には、０であり、
−第（Ｎ−１）のバイトが誤っており、ＢＰｓＮ−１＝１である場合には、０でない。
【０２３７】
したがって、バイト訂正器５３０は、バイト誤り位置信号生成器１０およびバイト誤り訂正値生成器５１０を含み、バイト訂正器５３１は、バイト誤り位置信号生成器１１およびバイト誤り訂正値生成器５１１を含み、バイト訂正器５３ｉは、バイト誤り位置信号生成器１ｉおよびバイト誤り訂正値生成器５１ｉを含み、バイト訂正器５３Ｎ−１は、バイト誤り位置信号生成器１Ｎ−１およびバイト誤り訂正値生成器５１Ｎ−１を含む。それに対応して、バイト訂正器５３０、５３１、…、５３ｉ、…、５３Ｎ−１は、２バイト誤りに関するバイト訂正器と呼ぶことができる。
【０２３８】
この例では、２バイト誤りに関するバイト訂正器は、誤っている２つのバイト位置に関するバイト誤り訂正値を出力する。誤りを有さないバイト位置に関して、バイト誤り訂正値は０である。
【０２３９】
誤っているバイト位置ｉに関して、
ａ（ｉ）ｃｏｒ＝ａ（ｉ）
が成り立つ。
【０２４０】
誤っていないバイト位置ｊに関して、
ａ（ｊ）ｃｏｒ＝０
が成り立つ。
【０２４１】
ここで、ａ（ｉ）は、第ｉのバイトのバイト誤り訂正値である。
【０２４２】
バイト誤り位置信号生成器が、誤りシンドロームｓの４つの成分ｓ１、ｓ２、ｓ３、ｓ４に応じて、対応するバイト誤り位置信号を生成し、バイト誤り訂正値生成器が、この誤りシンドロームｓの３つの成分ｓ１、ｓ２、ｓ３に応じて、対応するバイト誤り訂正値を生成することを具体的に表すために、図５に、例として２つの入力ライン、すなわち、成分ｓ１、ｓ２、ｓ３、ｓ４を入力するための入力ラインと、成分ｓ１、ｓ２、ｓ３を入力するためのさらなる入力ラインとが表されている。これらのラインは、成分ｓ１、ｓ２、ｓ３に関して統合することもできる。
【０２４３】
ｒ＝０，…，Ｎ−１に関して、バイト誤り訂正値生成器５１ｒは、ＸＯＲ回路５２ｒの第１のｍビット幅の入力と接続されているそのｍビット幅の出力で、２バイト誤りの場合に、
【数７３】
2019110522.tif 000074
が成り立つようにバイト誤り訂正値を生成するように構成される。
【０２４４】
２バイト誤りの場合に、第ｊおよび第ｋのバイトが誤っている場合、バイト誤り訂正値生成器５１ｊによってバイト誤り訂正値
【数７４】
2019110522.tif 000075
が出力され、バイト誤り訂正値生成器５１ｋによってバイト誤り訂正値
【数７５】
2019110522.tif 000076
が出力される。全ての別のバイト誤り訂正値生成器５１ｒ（ｒ≠ｊ，ｋ）および０≦ｒ≦Ｎ−１に関して、バイト誤り訂正値は、ａ（ｒ）ｃｏｒ＝０である。
【０２４５】
バイト誤り訂正値生成器
図６は、バイト誤り訂正値生成器５１ｒの可能な形態を示し、ここで、ｒは、０〜Ｎ−１の値を取ることができる。
【０２４６】
バイト誤り訂正値生成器５１ｒは、
−第１および第２のｍビット幅の入力、ならびにｍビット幅の出力をそれぞれ有する２つの乗算器６１、６６と、
−第１のｍビット幅の入力、第２のｍビット幅の入力、およびｍビット幅の出力をそれぞれ有する２つのＸＯＲ回路６３、６４と、
−第１および第２のｍビット幅の入力、ならびにｍビット幅の出力を有する定数乗算器６７であって、第２の入力に定数値α２ｒが入力される定数乗算器６７と、
−ｍビット幅の入力およびｍビット幅の出力を有する自乗器６２と、
−ｍビット幅の入力およびｍビット幅の出力を有する反転回路６５と、
−第１の１ビット幅の入力、第２のｍビット幅の入力、およびｍビット幅の出力を有するＡＮＤ回路６８と
を含む。
【０２４７】
乗算器６１の第１の入力には、成分ｓ１の値が入力され、乗算器６１の第２の入力には、成分ｓ３の値が入力される。乗算器６１は、ガロア体ＧＦ（２ｍ）では値ｓ１・ｓ３を生成し、その出力で、値ｓ１・ｓ３を出力する。乗算器６１の出力は、ＸＯＲ回路６３の第１の入力と接続されている。
【０２４８】
ＸＯＲ回路６３の第２の入力は、自乗器６２の出力と接続されており、自乗器６２の入力には、成分ｓ２の値が入力される。したがって、自乗器６２は、その出力で、値
【数７６】
2019110522.tif 000077
を出力する。ＸＯＲ回路６３は、その２つの入力に入力された値の成分ごとのＸＯＲ演算を生成し、その出力で、値
【数７７】
2019110522.tif 000078
を出力する。ＸＯＲ回路６３の出力は、乗算器６６の第１の入力と接続されている。
【０２４９】
ＸＯＲ回路６４の第１の入力には、成分ｓ３の値が入力される。定数乗算器６７の第１の入力には、成分ｓ１の値が入力され、定数乗算器６７の第２の入力には、定数α２ｒが入力される。定数乗算器６７は、ガロア体ＧＦ（２ｍ）で、演算α２ｒ・ｓ１を実現する。定数乗算器は、例えば、ＸＯＲゲートを使用して実装することができる。
【０２５０】
ＸＯＲ回路６４の出力で、値ｓ３＋α２ｒｓ１が提供され、反転器６５の入力に送られる。反転器６５は、その出力で、値
【数７８】
2019110522.tif 000079
を提供する。
【０２５１】
反転器６５の出力は、乗算器６６の第１の入力と接続されている。したがって、乗算器６６は、その出力で、値
【数７９】
2019110522.tif 000080
を提供する。ここで、ａ（ｒ）は、第ｒのバイトに関するバイト誤り訂正値である。ＡＮＤ回路６８の第１の入力には、バイト誤り位置信号ＢＰｓｒの値が入力される。ＡＮＤ回路６８の第２の入力は、乗算器６６の出力と接続されている。
【０２５２】
ＡＮＤ回路は、その第２の入力に入力されたｍビットとバイト誤り位置信号ＢＰｓｒとのビットごとのＡＮＤ演算を実現し、それにより、その出力で、値
【数８０】
2019110522.tif 000081
を提供する。
【０２５３】
バイト誤り訂正値生成器、代替実施形態
図７は、図６と同様に第ｒのバイトに関して述べる、バイト誤り訂正値生成器５１ｒのさらなる可能な形態を示す。ここで、ｒは、０〜（Ｎ−１）の値を取ることができる。
【０２５４】
図７に示されるバイト誤り訂正値生成器５１ｒは、
−第１のｍビット幅の入力、第２のｍビット幅の入力、およびｍビット幅の出力をそれぞれ有する３つの乗算器７１、７５、７６と、
−ｍビット幅の第１の入力、ｍビット幅の第２の入力、およびｍビット幅の出力をそれぞれ有する２つのＸＯＲ回路７２、７７と、
−第１のｍビット幅の入力、第２のｍビット幅の入力、およびｍビット幅の出力を有する定数乗算器７８であって、第２の入力に定数値α２ｒが入力される定数乗算器７８と、
−ｍビット幅の入力およびｍビット幅の出力を有する自乗器７３と、
−ｍビット幅の入力およびｍビット幅の出力を有する２つの反転器７４、７９と、
−第１の１ビット幅の入力、第２のｍビット幅の入力、およびｍビット幅の出力を有するＡＮＤ回路７１０と
を含む。
【０２５５】
乗算器７１の第１の入力には、成分ｓ１の値が入力され、乗算器７１の第２の入力には、成分ｓ３の値が入力される。乗算器７１は、ガロア体ＧＦ（２ｍ）で値ｓ１・ｓ３を生成し、その出力で、値ｓ１・ｓ３を提供する。乗算器７１の出力は、ＸＯＲ回路７２の第１の入力と接続されている。
【０２５６】
ＸＯＲ回路７２の第２の入力は、自乗器７３の出力と接続されており、自乗器７３の入力には、成分ｓ２の値が入力される。したがって、自乗器７３は、その出力で、値
【数８１】
2019110522.tif 000082
を提供する。ＸＯＲ回路７２は、その２つの入力に入力された値の成分ごとのＸＯＲ演算を生成し、その出力で、値
【数８２】
2019110522.tif 000083
を提供する。ＸＯＲ回路７２の出力は、反転器７４の入力と接続されている。反転器７４は、その出力で、値
【数８３】
2019110522.tif 000084
を提供する。
【０２５７】
反転器７４の出力は、乗算器７５の第１の入力と接続されており、乗算器７５の第２の入力には、成分ｓ３の値が入力される。さらに、反転器７４の出力は、乗算器７６の第１の入力と接続されており、乗算器７６の第２の入力には、成分ｓ１の値が入力される。
【０２５８】
乗算器７６は、その出力で、値
【数８４】
2019110522.tif 000085
を提供する。乗算器７６の出力は、定数乗算器７８の第１の入力と接続されている。定数乗算器７８の第２の入力には、値α２ｒが入力される。定数乗算器７８は、その出力で、値
【数８５】
2019110522.tif 000086
を提供する。定数乗算器７８は、その第１の入力に入力された値を、ガロア体ＧＦ２ｍ内で、その第２の入力に入力された定数α２ｒの値と乗算する。この乗算は、第１の入力に入力されたビットの対応するＸＯＲ演算によって実装される。定数α２ｒは、第ｒのバイトに一意に割り当てられる。
【０２５９】
乗算器７５は、その出力で、値
【数８６】
2019110522.tif 000087
を提供する。乗算器７５の出力は、ＸＯＲ回路７７の第１の入力と接続されている。
【０２６０】
定数乗算器７８の出力は、ＸＯＲ回路７７の第２の入力と接続されている。ＸＯＲ回路７７は、その出力で、値
【数８７】
2019110522.tif 000088
を提供する。ＸＯＲ回路７７の出力は、反転器７９の入力と接続されている。
【０２６１】
反転器７９は、その出力で、値
【数８８】
2019110522.tif 000089
を提供する。反転器７９の出力は、ＡＮＤ回路７１０の第２の入力と接続されている。
【０２６２】
ＡＮＤ回路７１０の第１の入力には、バイト誤り位置信号ＢＰｓｒの値が入力されている。ＡＮＤ回路７１０は、その第２の入力に入力されたｍビットとバイト誤り位置信号ＢＰｓｒとのビットごとのＡＮＤ演算を実現する。それにより、ＡＮＤ回路７１０は、その出力で、値
【数８９】
2019110522.tif 000090
を提供する。
【０２６３】
乗算器７１、７５、７６、ＸＯＲ回路７２、および自乗器７３を含む図７に示される部分は、乗算器７５および７６の出力で、値
【数９０】
2019110522.tif 000091
および
【数９１】
2019110522.tif 000092
を出力し、これらは、成分ｓ１、ｓ２、ｓ３の値のみによって決定されており、バイト位置ｒには関係しない。回路のこの部分は、図５に示されるバイト誤り訂正値生成器５１０、５１１、…、５１Ｎ−１全てに関して等しい。したがって、この回路部分を１つだけ提供し、乗算器７１、７５、および７６の出力信号を全てのバイト誤り訂正値生成器５１０〜５１Ｎ−１に関して使用することが可能である。その際、様々なバイト位置０〜Ｎ−１に関して、それぞれ、図７に示される回路の残りの部分７１１のみを実現することができ、部分７１１は、ＸＯＲ回路７７、定数乗算器７８、反転器７９、およびＡＮＤ回路７１０を含む。
【０２６４】
訂正可能なバイト位置に関して、例えば、全ての訂正可能なバイト位置に関して、または訂正可能なバイト位置の一部に関して、最高で３回の乗算を使用して、バイト誤り訂正値生成器を実現することが１つの選択肢である。その際、３回の乗算を、３つの乗算器を使用して実装することができる。また、特に、定数乗算器によって、定数のさらなる乗算を実施することも１つの選択肢である。
【０２６５】
１バイトおよび２バイト誤りの訂正、図８
図８は、１バイト誤りおよび２バイト誤りを訂正するための例示的な回路を示し、ここで、これらの回路は、２バイト誤りに関するバイト誤り位置信号を決定するため、および２バイト誤りを訂正するために使用することができる。
【０２６６】
図８に示される回路は、例えば、
−２バイト誤りがある場合には、２バイト誤りが訂正され、
−１バイト誤りがある場合には、１バイト誤りが訂正され、
−誤りがない場合には、訂正が行われない
ように構成されている。
【０２６７】
このために、図８は、
−成分ｓ１、ｓ２を入力するための２・ｍビット幅の入力、およびｍビット幅のバイト誤り訂正値を出力するためのｍビット幅の出力をそれぞれ有する、１バイト誤りを訂正するためのＮ個のバイト誤り訂正値生成器８１０、…、８１ｉ、…、８１Ｎ−１と、
−成分ｓ１、ｓ２、ｓ３、ｓ４を入力するための４・ｍビット幅の入力、およびｍビット幅のバイト誤り訂正値を出力するためのｍビット幅の出力をそれぞれ有する、２バイト誤りを訂正するためのＮ個のバイト訂正器５３０、…、５３ｉ、…、５３Ｎ−１（これは図５で述べたのと同様）と、
−Ｎ個のマルチプレクサ８２０、…、８２ｉ、…８２Ｎ−１であって、
−第１のｍビット幅の入力（０入力）、
−第２のｍビット幅の入力（１入力）、
−バイナリ制御信号ｓｔを入力可能な１ビット幅の制御入力、および
−ｍビット幅の出力
をそれぞれ有するＮ個のマルチプレクサ８２０、…、８２ｉ、…８２Ｎ−１と、
−バイナリ誤り信号Ｅを入力するための第１の１ビット幅の入力、第２のｍビット幅の入力、およびｍビット幅の出力をそれぞれ有するＮ個のＡＮＤ回路８３０、…、８３ｉ、…、８３Ｎ−１と、
−第１のｍビット幅の入力、第２のｍビット幅の入力、およびｍビット幅の出力をそれぞれ有するＮ個のＸＯＲ回路８４０、…、８４ｉ、…、８４Ｎ−１と
を含む。
【０２６８】
ライン８５は、成分ｓ１、ｓ２を伝送し、バイト誤り訂正値生成器８１０、…、８１ｉ、…、８１Ｎ−１のそれぞれの入力と接続されている。
【０２６９】
ライン８６は、成分ｓ１、ｓ２、ｓ３、ｓ４を伝送し、バイト訂正器５３０、…、５３ｉ、…、５３Ｎ−１のそれぞれの入力と接続されている。
【０２７０】
バイト誤り訂正値生成器８１０は、バイト位置０での１バイト誤りの場合に、その出力で、誤っている第０のバイト
【数９２】
2019110522.tif 000093
に関する正しいバイト誤り訂正値を提供する。これは、さらなるバイト誤り訂正値生成器にも同様に当てはまる。したがって、バイト誤り訂正値生成器８１ｉは、バイト位置ｉでの１バイト誤りの場合に、その出力で、誤っている第ｉのバイト
【数９３】
2019110522.tif 000094
に関する正しいバイト誤り訂正値を提供する。バイト誤り訂正値生成器８１Ｎ−１は、バイト位置（Ｎ−１）での１バイト誤りの場合に、その出力で、誤っている第（Ｎ−１）のバイト
【数９４】
2019110522.tif 000095
に関する正しいバイト誤り訂正値を提供する。
【０２７１】
１バイト誤りを訂正するためのバイト誤り訂正値生成器の可能な実現形態を、図１０に関連付けて説明する。
【０２７２】
バイト訂正器５３０〜５３Ｎ−１の可能な実現形態に関して、例えば、図２に関連付けて述べた位置信号生成器と、図６および図７に関連付けて述べたバイト誤り訂正値生成器とが挙げられる。
【０２７３】
バイト誤り訂正値生成器８１０の出力は、マルチプレクサ８２０の第１の入力と接続されている。バイト訂正器５３０の出力は、マルチプレクサ８２０の第２の入力と接続されている。制御信号ｓｔの値が０である場合、マルチプレクサ８２０は、その０入力（第１の入力）をその出力と接続する。制御信号ｓｔの値が１である場合、マルチプレクサ８２０は、その１入力（第２の入力）をその出力と接続する。
【０２７４】
ＡＮＤ回路８３０の第１の入力には、バイナリ誤り信号Ｅが入力される。マルチプレクサ８２０の出力は、ＡＮＤ回路８３０の第２の入力と接続されている。ＡＮＤ回路８３０の出力は、ＸＯＲ回路８４０の第１の入力と接続されている。ＸＯＲ回路８４０の第２の入力には、誤っている可能性があるバイト
【数９５】
2019110522.tif 000096
が入力されている。ＸＯＲ回路８４０は、その出力で、訂正されたバイト値
【数９６】
2019110522.tif 000097
を提供する。
【０２７５】
ＡＮＤ回路８３０は、その第２の入力に入力されたｍ桁の値と誤り信号Ｅとの成分ごとのＡＮＤ演算を可能にする。誤り信号Ｅ＝０である場合、ＡＮＤ回路８３０は、ｍ成分値０を出力する。誤り信号Ｅ＝１である場合、ＡＮＤ回路８３０は、その第２の入力に入力された値を出力する。
【０２７６】
これらの実施形態は、残りのバイト位置にも同様に当てはまる。
【０２７７】
バイト誤り訂正値生成器８１ｉの出力は、マルチプレクサ８２ｉの第１の入力と接続されている。バイト誤り訂正値生成器５３ｉの出力は、マルチプレクサ８２ｉの第２の入力と接続されている。制御信号ｓｔの値が０である場合、マルチプレクサ８２ｉは、その０入力（第１の入力）をその出力と接続する。制御信号ｓｔの値が１である場合、マルチプレクサ８２ｉは、その１入力（第２の入力）をその出力と接続する。
【０２７８】
ＡＮＤ回路８３ｉの第１の入力には、バイナリ誤り信号Ｅが入力される。マルチプレクサ８２ｉの出力は、ＡＮＤ回路８３ｉの第２の入力と接続されている。ＡＮＤ回路８３ｉの出力は、ＸＯＲ回路８４ｉの第１の入力と接続されている。ＸＯＲ回路８４ｉの第２の入力には、誤っている可能性があるバイト
【数９７】
2019110522.tif 000098
が入力される。ＸＯＲ回路８４ｉは、その出力で、訂正されたバイト値
【数９８】
2019110522.tif 000099
を提供する。
【０２７９】
ＡＮＤ回路８３ｉは、その第２の入力に入力されたｍ桁の値と誤り信号Ｅとの成分ごとのＡＮＤ演算を可能にする。誤り信号Ｅ＝０である場合、ＡＮＤ回路８３ｉは、ｍ成分値０を出力する。誤り信号Ｅ＝１である場合、ＡＮＤ回路８３ｉは、その第２の入力に入力された値を出力する。
【０２８０】
バイト誤り訂正値生成器８１Ｎ−１の出力は、マルチプレクサ８２Ｎ−１の第１の入力と接続されている。バイト誤り訂正値生成器５３Ｎ−１の出力は、マルチプレクサ８２Ｎ−１の第２の入力と接続されている。制御信号ｓｔの値が０である場合、マルチプレクサ８２Ｎ−１は、その０入力（第１の入力）をその出力と接続する。制御信号ｓｔの値が１である場合、マルチプレクサ８２Ｎ−１は、その１入力（第２の入力）をその出力と接続する。
【０２８１】
ＡＮＤ回路８３Ｎ−１の第１の入力には、バイナリ誤り信号Ｅが入力される。マルチプレクサ８２Ｎ−１の出力は、回路８３Ｎ−１の第２の入力と接続されている。ＡＮＤ回路８３Ｎ−１の出力は、ＸＯＲ回路８４Ｎ−１の第１の入力と接続されている。ＸＯＲ回路８４Ｎ−１の第２の入力には、誤っている可能性があるバイト
【数９９】
2019110522.tif 000100
が入力される。ＸＯＲ回路８４Ｎ−１は、その出力で、訂正されたバイト値
【数１００】
2019110522.tif 000101
を提供する。
【０２８２】
ＡＮＤ回路８３Ｎ−１は、その第２の入力に入力されたｍ桁の値と誤り信号Ｅとの成分ごとのＡＮＤ演算を可能にする。誤り信号Ｅ＝０である場合、ＡＮＤ回路８３Ｎ−１は、ｍ成分値０を出力する。誤り信号Ｅ＝１である場合、ＡＮＤ回路８３Ｎ−１は、その第２の入力に入力された値を出力する。
【０２８３】
誤り信号Ｅは、
−１バイト誤りまたは２バイト誤りが発生している場合には、値１を取り、
−誤りが発生していない場合には、値０を取る。
【０２８４】
制御信号ｓｔは、
−１バイト誤りが発生している場合には、値０を取り、
−２バイト誤りが発生している場合には、値１を取る。
【０２８５】
３つ以上のバイト誤りを訂正するための回路
図９は、１バイト誤り、２バイト誤り、…、ｔバイト誤りを訂正するための回路を示す。この回路では、図８で述べた要素を同様に使用することができる。
【０２８６】
図９に示される回路は、
−１バイト誤りがある場合には、１バイト誤りが訂正され、
−２バイト誤りがある場合には、２バイト誤りが訂正され、
−以下同様に、
−ｔバイト誤りがある場合には、ｔバイト誤りが訂正され、
−誤りがない場合には、訂正が行われない
ことを可能にする。
【０２８７】
例として、ｔバイト誤り訂正および（ｔ＋１）バイト誤り認識符号が使用される場合を述べる。ここで、特に、ｔ＞２が成り立つ。
【０２８８】
図９による回路は、
−図８によるＮ個のバイト誤り訂正値生成器８１０〜８１Ｎ−１、
−図８による（図５にも述べたような）Ｎ個のバイト訂正器５３０〜５３Ｎ−１、以下同様に、
−成分ｓ１、ｓ２、…、ｓ２ｔを入力するための２・ｔ・ｍビット幅の入力、およびｍビット幅のバイト誤り訂正値を出力するためのｍビット幅の出力をそれぞれ有する、ｔバイト誤りを訂正するためのＮ個のバイト誤り訂正値生成器９１０、…、９１ｉ、…、９１Ｎ−１、
−Ｎ個のマルチプレクサ９２０、…、９２ｉ、…、９２Ｎ−１であって、
−第１のｍビット幅の入力（０入力）、
−第２のｍビット幅の入力（１入力）、
−以下同様に、第ｔのｍビット幅の入力（（ｔ−１）入力）、
−ｔ個の異なる値を取ることができる制御信号ｓｔが入力される制御入力、および
−ｍビット幅の出力
をそれぞれ有するＮ個のマルチプレクサ９２０、…、９２ｉ、…、９２Ｎ−１、
−バイナリ誤り信号Ｅを入力するための第１の１ビット幅の入力、第２のｍビット幅の入力、およびｍビット幅の出力をそれぞれ有するＮ個のＡＮＤ回路９３０、…、９３ｉ、…、９３Ｎ−１、ならびに
−第１のｍビット幅の入力、第２のｍビット幅の入力、およびｍビット幅の出力をそれぞれ有するＮ個のＸＯＲ回路９４０、…、９４ｉ、…、９４Ｎ−１
を含む。
【０２８９】
制御信号ｓｔが値０を有するとき、マルチプレクサ９２０〜９２Ｎ−１の１つの０入力がその出力と接続される。それに対応して、対応する制御信号ｓｔが０〜（ｔ−１）の値を取ることによって、入力０〜（ｔ−１）の１つと出力との接続を確立することができる。例えば、ｓｔ＝（ｔ−１）＝３が成り立つ場合、マルチプレクサの第３の入力（２入力）が、その出力と接続される。
【０２９０】
ライン９５は、成分ｓ１、ｓ２を伝送し、バイト誤り訂正値生成器８１０、…、８１ｉ、…、８１Ｎ−１のそれぞれの入力と接続されている。
【０２９１】
ライン９６は、成分ｓ１、ｓ２、ｓ３、ｓ４を伝送し、バイト訂正器５３０、…、５３ｉ、…、５３Ｎ−１のそれぞれの入力と接続されている。
【０２９２】
最後に、ライン９７が示されており、ライン９７に基づいて、成分ｓ１、ｓ２、…、ｓ２ｔが、バイト誤り訂正値生成器９１０、…、９１ｉ、…、９１Ｎ−１のそれぞれの入力につながれている。
【０２９３】
バイト誤り訂正値生成器８１０は、バイト位置０での１バイト誤りの場合に、その出力で、誤っている第０のバイト
【数１０１】
2019110522.tif 000102
に関する正しいバイト誤り訂正値を提供する。これは、さらなるバイト誤り訂正値生成器にも同様に当てはまる。したがって、バイト誤り訂正値生成器８１ｉは、バイト位置ｉでの１バイト誤りの場合に、その出力で、誤っている第ｉのバイト
【数１０２】
2019110522.tif 000103
に関する正しいバイト誤り訂正値を提供する。バイト誤り訂正値生成器８１Ｎ−１は、バイト位置（Ｎ−１）での１バイト誤りの場合に、その出力で、誤っている第（Ｎ−１）のバイト
【数１０３】
2019110522.tif 000104
に関する正しいバイト誤り訂正値を提供する。
【０２９４】
バイト訂正器５３０は、２バイト誤りの場合に、その出力で、誤っている第０のバイト
【数１０４】
2019110522.tif 000105
に関する正しいバイト誤り訂正値を提供する。これは、さらなるバイト誤り訂正値生成器にも同様に当てはまる。したがって、バイト誤り訂正値生成器５３ｉは、２バイト誤りの場合に、その出力で、誤っている第ｉのバイト
【数１０５】
2019110522.tif 000106
に関する正しいバイト誤り訂正値を提供する。バイト誤り訂正値生成器５３Ｎ−１は、２バイト誤りの場合に、その出力で、誤っている第（Ｎ−１）のバイト
【数１０６】
2019110522.tif 000107
に関する正しいバイト誤り訂正値を提供する。
【０２９５】
バイト誤り訂正値生成器９１０は、ｔバイト誤りの場合に、その出力で、誤っている第０のバイト
【数１０７】
2019110522.tif 000108
に関する正しいバイト誤り訂正値を提供する。これは、さらなるバイト誤り訂正値生成器にも同様に当てはまる。したがって、バイト誤り訂正値生成器９１ｉは、ｔバイト誤りの場合に、その出力で、誤っている第ｉのバイト
【数１０８】
2019110522.tif 000109
に関する正しいバイト誤り訂正値を提供する。バイト誤り訂正値生成器９１Ｎ−１は、ｔバイト誤りの場合に、その出力で、誤っている第（Ｎ−１）のバイト
【数１０９】
2019110522.tif 000110
に関する正しいバイト誤り訂正値を提供する。
【０２９６】
誤っていないバイトに関しては、それらのバイト位置に割り当てられたバイト誤り訂正値は、それぞれ値０でマスキングされている。
【０２９７】
バイト誤り訂正値生成器８１０の出力は、マルチプレクサ９２０の第１の入力（０入力）と接続されている。バイト訂正器５３０の出力は、マルチプレクサ９２０の第２の入力（１入力）と接続されている。それに対応して、バイト誤り訂正値生成器９１０の出力は、マルチプレクサ９２０の第ｔの入力（（ｔ−１）入力）と接続されている。
【０２９８】
ＡＮＤ回路９３０の第１の入力には、バイナリ誤り信号Ｅが入力される。マルチプレクサ９２０の出力は、ＡＮＤ回路９３０の第２の入力と接続されている。ＡＮＤ回路９３０の出力は、ＸＯＲ回路９４０の第１の入力と接続されている。ＸＯＲ回路９４０の第２の入力には、誤っている可能性があるバイト値
【数１１０】
2019110522.tif 000111
が入力される。ＸＯＲ回路９４０は、その出力で、訂正されたバイト値
【数１１１】
2019110522.tif 000112
を提供する。
【０２９９】
ＡＮＤ回路９３０は、その第２の入力に入力されたｍ桁の値と誤り信号Ｅとの成分ごとのＡＮＤ演算を可能にする。誤り信号Ｅ＝０である場合、ＡＮＤ回路９３０は、ｍ成分値０を出力する。誤り信号Ｅ＝１である場合、ＡＮＤ回路９３０は、その第２の入力に入力された値を出力する。
【０３００】
これらの実施形態は、残りのバイト位置にも同様に当てはまる。
【０３０１】
バイト誤り訂正値生成器８１ｉの出力は、マルチプレクサ９２ｉの第１の入力（０入力）と接続されている。バイト誤り訂正値生成器５３ｉの出力は、マルチプレクサ９２ｉの第２の入力（１入力）と接続されている。それに対応して、バイト誤り訂正値生成器９１ｉの出力は、マルチプレクサ９２ｉの第ｔの入力（（ｔ−１）入力）と接続されている。
【０３０２】
ＡＮＤ回路９３ｉの第１の入力には、バイナリ誤り信号Ｅが入力される。マルチプレクサ９２ｉの出力は、ＡＮＤ回路９３ｉの第２の入力と接続されている。ＡＮＤ回路９３ｉの出力は、ＸＯＲ回路９４ｉの第１の入力と接続されている。ＸＯＲ回路９４ｉの第２の入力には、誤っている可能性があるバイト
【数１１２】
2019110522.tif 000113
が入力される。ＸＯＲ回路９４ｉは、その出力で、訂正されたバイト値
【数１１３】
2019110522.tif 000114
を提供する。
【０３０３】
ＡＮＤ回路９３ｉは、その第２の入力に入力されたｍ桁の値と誤り信号Ｅとの成分ごとのＡＮＤ演算を可能にする。誤り信号Ｅ＝０である場合、ＡＮＤ回路９３ｉは、ｍ成分値０を出力する。誤り信号Ｅ＝１である場合、ＡＮＤ回路９３ｉは、その第２の入力に入力された値を出力する。
【０３０４】
バイト誤り訂正値生成器８１Ｎ−１の出力は、マルチプレクサ９２Ｎ−１の第１の入力（０入力）と接続されている。バイト誤り訂正値生成器５３Ｎ−１の出力は、マルチプレクサ９２Ｎ−１の第２の入力（１入力）と接続されている。それに対応して、バイト誤り訂正値生成器９１Ｎ−１の出力は、マルチプレクサ９２Ｎ−１の第ｔの入力（（ｔ−１）入力）と接続されている。
【０３０５】
ＡＮＤ回路９３Ｎ−１の第１の入力には、バイナリ誤り信号Ｅが入力される。マルチプレクサ９２Ｎ−１の出力は、回路９３Ｎ−１の第２の入力と接続されている。ＡＮＤ回路９３Ｎ−１の出力は、ＸＯＲ回路９４Ｎ−１の第１の入力と接続されている。ＸＯＲ回路９４Ｎ−１の第２の入力には、誤っている可能性があるバイト値
【数１１４】
2019110522.tif 000115
が入力される。ＸＯＲ回路９４Ｎ−１は、その出力で、訂正されたバイト値
【数１１５】
2019110522.tif 000116
を提供する。
【０３０６】
ＡＮＤ回路９３Ｎ−１は、その第２の入力に入力されたｍ桁の値と誤り信号Ｅとの成分ごとのＡＮＤ演算を可能にする。誤り信号Ｅ＝０である場合、ＡＮＤ回路９３Ｎ−１は、ｍ成分値０を出力する。誤り信号Ｅ＝１である場合、ＡＮＤ回路９３Ｎ−１は、その第２の入力に入力された値を出力する。
【０３０７】
誤り信号Ｅは、
−１バイト誤り、２バイト誤り、…、またはｔバイト誤りが発生している場合には、値１を取り、
−誤りが発生していない場合には、値０を取る。
【０３０８】
制御信号ｓｔは、
−１バイト誤りが発生している場合には、値０を取り、
−２バイト誤りが発生している場合には、値１を取り、
−以下同様に、
−ｔバイト誤りが発生している場合には、値（ｔ−１）
を取る。
【０３０９】
１バイト誤りに関するバイト誤り訂正器
図１０は、図８に関連して説明したような、第ｉのバイトに関するバイト誤り訂正値生成器８１ｉに関する例示的な回路を示す。
【０３１０】
バイト誤り訂正値生成器８１ｉは、
−定数乗算器１０１であって、
−第１のｍビット幅の入力、
−定数値αｉが入力される第２のｍビット幅の入力、および
−ｍビット幅の出力
を有する定数乗算器１０１と、
−第１のｍビット幅の入力、第２のｍビット幅の入力、およびｍビット幅の出力を有するＸＯＲ回路１０２と、
−ｍビット幅の入力および１ビット幅の出力を有するＮＯＲ回路１０３と、
−第１の１ビット幅の入力、第２のｍビット幅の入力、およびｍビット幅の出力を有するＡＮＤ回路１０４と
を含む。
【０３１１】
さらに、図１０には、図８（および図５）からのマルチプレクサ８２ｉおよびバイト誤り訂正値生成器５３ｉが示されている。
【０３１２】
定数乗算器１０１、ＸＯＲ回路１０２、およびＮＯＲ回路１０３は、バイト誤り位置信号生成器１０５を形成し、例えば、第ｉのバイト位置に１バイト誤りがあるかどうかを示すバイト誤り位置信号
【数１１６】
2019110522.tif 000117
を生成する働きをする。
【０３１３】
バイト位置ｉに１バイト誤りが発生している場合、ＡＮＤ回路１０４の出力で、ｍ次元のバイト誤り訂正値ａ（ｉ）ｃｏｒが提供される。１バイト誤りが、ｉとは異なる別のバイト位置ｊで発生している場合、バイト誤り位置信号ＢＰｓｉ＝０であり、したがって、ＡＮＤ回路１０４の出力でも値０になる。
【０３１４】
定数乗算器１０１の第１の入力には、成分ｓ１が入力され、定数乗算器１０１の第２の入力には、定数αｉが入力される。定数乗算器１０１の出力は、ＸＯＲ回路１０２の第１の入力と接続されている。ＸＯＲ回路１０２の第２の入力には、成分ｓ２が入力される。ＸＯＲ回路１０２の出力は、ＮＯＲ回路１０３の入力と接続されている。ＮＯＲ回路１０３の出力は、ＡＮＤ回路１０４の第１の入力と接続されている。ＡＮＤ回路１０４の第２の入力には、成分ｓ１が入力される。ＡＮＤ回路１０４の出力は、マルチプレクサ８２ｉの第１の入力と接続されている。
【０３１５】
マルチプレクサ８２ｉの第２の入力は、バイト誤り訂正値生成器５３ｉの出力と接続されている。
【０３１６】
したがって、マルチプレクサ８２ｉの第１の入力には、１バイト誤りに関するバイト誤り訂正値が提供され、マルチプレクサ８２ｉの第２の入力には、２バイト誤りに関するバイト誤り訂正値が提供される。
【０３１７】
それに対応して、マルチプレクサ８２ｉに関する制御信号ｓｔは、
−１バイト誤りがある場合には０であり、マルチプレクサ８２ｉの第１の入力（０入力）をその出力と接続し、または
−２バイト誤りがある場合には１であり、マルチプレクサ８２ｉの第２の入力（１入力）をその出力と接続する。
【０３１８】
誤りがない場合、制御信号ｓｔの値は任意である。例えば、例として以下に述べるように０に設定することができる。
【０３１９】
誤りがない場合、誤り信号Ｅの値は、０である。これは、図８に関連付けて前に説明した。マルチプレクサ８２ｉの出力での信号を成分ごとに誤り信号Ｅと論理ＡＮＤ演算する下流に接続されたＡＮＤ回路８３ｉに基づいて、誤り信号Ｅ＝０において（すなわち誤りがないとき）、マルチプレクサ８２ｉの出力での信号には関係なくＡＮＤ回路８３ｉの出力で値０が提供されることが保証される。したがって、第ｉのバイトの訂正は行われない。
【０３２０】
誤り信号を決定するための回路
図１１は、例えば図８に示される回路で使用されるような誤り信号Ｅを決定するための例示的な回路を示す。
【０３２１】
図１１に示される構成は、
−第１のｍビット幅の入力、第２のｍビット幅の入力、およびｍビット幅の出力を有する乗算器１１１と、
−第１のｍビット幅の入力、第２のｍビット幅の入力、およびｍビット幅の出力を有するＸＯＲ回路１１３と、
−ｍビット幅の入力およびｍビット幅の出力を有する自乗器１１２と、
−ｍビット幅の入力および１ビット幅の出力を有するＯＲ回路１１４と、
−ｍビット幅の入力および１ビット幅の出力を有するＯＲ回路１１６と、
−第１のバイナリ入力、第２のバイナリ入力、およびバイナリ出力を有するＯＲ回路１１５と
を含む。
【０３２２】
乗算器１１１の第１の入力には、成分ｓ１の値が入力される。乗算器１１１の第２の入力には、成分ｓ３の値が入力される。乗算器１１１の出力は、ＸＯＲ回路１１３の第１の入力と接続されている。
【０３２３】
成分ｓ１は、ＯＲ回路１１６の入力にも入力される。ＯＲ回路１１６の出力は、ＯＲ回路１１５の第２の入力と接続されている。
【０３２４】
成分ｓ２は、自乗器１１２の入力に入力される。自乗器１１２の出力は、ＸＯＲ回路１１３の第２の入力と接続されている。
【０３２５】
ＸＯＲ回路１１３の出力は、ＯＲ回路１１４の入力と接続されており、ＯＲ回路１１４の出力は、ＯＲ回路１１５の第１の入力と接続されている。
【０３２６】
ＯＲ回路１１４の出力で、制御信号ｓｔが提供され、ＯＲ回路１１５の出力で誤り信号Ｅが提供される。
【０３２７】
制御信号ｓｔは、
【数１１７】
2019110522.tif 000118
が成り立つ場合に値０を取る。
【０３２８】
それに対応して、制御信号ｓｔは、
【数１１８】
2019110522.tif 000119
が成り立つ場合に値１を取る。
【０３２９】
誤り信号Ｅは、制御信号ｓｔが０である場合、および成分ｓ１の値が０である場合、値０を取る。この場合、１バイト誤りも２バイト誤りもない。
【０３３０】
制御信号ｓｔの値が１である場合、図８による回路において、バイト訂正器５３０〜５３Ｎ−１を使用して２バイト訂正が行われる。
【０３３１】
制御信号ｓｔの値が０である場合、図８による回路において、まず、バイト誤り訂正値生成器８１０〜８１Ｎ−１を使用して１バイト訂正が行われる。誤り信号Ｅが０であり、したがって１バイト誤りも２バイト誤りもない場合、ＡＮＤ回路８３０〜８３Ｎ−１が全て値０を出力し、したがって、バイト
【数１１９】
2019110522.tif 000120
の訂正は行われない。
【０３３２】
３バイト誤りが認識される場合、例えば、誤り訂正を中断することができる。誤り訂正のそのような中断は、システムレベルで行うことができる。
【０３３３】
３バイト誤りを認識するための回路
図１２は、３バイト誤りを認識するための例示的な回路を示す。このために、回路は、
−第１のｍビット幅の入力、ならびに第２のｍビット幅および第３のｍビット幅の出力をそれぞれ有する４つの乗算器１２１、１２２、１２３、１２４と、
−ｍビット幅の入力およびｍビット幅の出力をそれぞれ有する３つの自乗器１２５、１２６、１２７と、
−第１のｍビット幅の入力、第２のｍビット幅の入力、およびｍビット幅の出力をそれぞれ有する３つのＸＯＲ回路１２８、１２９、１２１０と、
−ｍビット幅の入力およびバイナリ出力を有するＯＲ回路１２１１とを含み、ＯＲ回路１２１１は、その入力に入力されたｍビットの成分ごとのＯＲ演算を行う。
【０３３４】
乗算器１２１の第１の入力および乗算器１２３の第２の入力に、成分ｓ１の値が入力される。
【０３３５】
自乗器１２６の入力には、成分ｓ２の値が入力される。
【０３３６】
自乗器１２５の入力および乗算器１２２の第２の入力には、成分ｓ３の値が入力される。
【０３３７】
自乗器１２７の入力には、成分ｓ４の値が入力される。
【０３３８】
乗算器１２１の第２の入力および乗算器１２４の第１の入力には、成分ｓ５の値が入力される。
【０３３９】
乗算器１２１の出力は、ＸＯＲ回路１２８の第１の入力と接続されている。自乗器１２５の出力は、ＸＯＲ回路１２８の第２の入力と接続されている。ＸＯＲ回路１２８の出力は、乗算器１２２の第１の入力と接続されている。乗算器１２２の出力は、ＸＯＲ回路１２９の第１の入力と接続されている。
【０３４０】
自乗器１２７の出力は、乗算器１２３の第１の入力と接続されている。乗算器１２３の出力は、ＸＯＲ回路１２１０の第１の入力と接続されている。
【０３４１】
自乗器１２６の出力は、乗算器１２４の第２の入力と接続されており、乗算器１２４の出力は、ＸＯＲ回路１２１０の第２の入力と接続されている。ＸＯＲ回路１２１０の出力は、ＸＯＲ回路１２９の第２の入力と接続されている。ＸＯＲ回路１２９の出力は、ＯＲ回路１２１１の入力と接続されており、ＯＲ回路１２１１の出力で信号Ｅｒｒ３が提供され、信号Ｅｒｒ３に基づいて、３バイト誤りを決定することができる。
【０３４２】
信号Ｅｒｒ３は、
【数１２０】
2019110522.tif 000121
が成り立つ場合には、値１を取る。
【０３４３】
それに対応して、信号Ｅｒｒ３は、
【数１２１】
2019110522.tif 000122
が成り立つ場合には、値０を取る。
【符号の説明】
【０３４４】
１０、１１、…、１ｉ、…、１Ｎ−１  バイト誤り位置信号生成器
ｓ１、ｓ２、ｓ３、ｓ４  シンドローム成分
ＢＰｓ０  バイト誤り位置信号
２１０  部分回路
２２０  定数乗算器
２３０  定数乗算器
２４０  ＸＯＲ回路
２５０  ＮＯＲ回路
【図１】
2019110522.tif 000126
【図２】
2019110522.tif 000127
【図３】
2019110522.tif 000128
【図４】
2019110522.tif 000129
【図５】
2019110522.tif 000130
【図６】
2019110522.tif 000131
【図７】
2019110522.tif 000132
【図８】
2019110522.tif 000133
【図９】
2019110522.tif 000134
【図１０】
2019110522.tif 000135
【図１１】
2019110522.tif 000136
【図１２】
2019110522.tif 000137
【図１３】
2019110522.tif 000138
【外国語明細書】
2019110522000001.pdf
2019110522000002.pdf
2019110522000003.pdf
2019110522000004.pdf