IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インフィネオン テクノロジーズ アーゲーの特許一覧

<>
  • 特開-バイト誤り位置信号の決定および使用 図1
  • 特開-バイト誤り位置信号の決定および使用 図2
  • 特開-バイト誤り位置信号の決定および使用 図3
  • 特開-バイト誤り位置信号の決定および使用 図4
  • 特開-バイト誤り位置信号の決定および使用 図5
  • 特開-バイト誤り位置信号の決定および使用 図6
  • 特開-バイト誤り位置信号の決定および使用 図7
  • 特開-バイト誤り位置信号の決定および使用 図8
  • 特開-バイト誤り位置信号の決定および使用 図9
  • 特開-バイト誤り位置信号の決定および使用 図10
  • 特開-バイト誤り位置信号の決定および使用 図11
  • 特開-バイト誤り位置信号の決定および使用 図12
  • 特開-バイト誤り位置信号の決定および使用 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024038056
(43)【公開日】2024-03-19
(54)【発明の名称】バイト誤り位置信号の決定および使用
(51)【国際特許分類】
   H03M 13/15 20060101AFI20240312BHJP
【FI】
H03M13/15
【審査請求】有
【請求項の数】24
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023217133
(22)【出願日】2023-12-22
(62)【分割の表示】P 2018203555の分割
【原出願日】2018-10-30
(31)【優先権主張番号】10 2017 125 617.2
(32)【優先日】2017-11-02
(33)【優先権主張国・地域又は機関】DE
(71)【出願人】
【識別番号】501209070
【氏名又は名称】インフィネオン テクノロジーズ アーゲー
【氏名又は名称原語表記】INFINEON TECHNOLOGIES AG
(74)【代理人】
【識別番号】110002077
【氏名又は名称】園田・小林弁理士法人
(72)【発明者】
【氏名】ケルン, トーマス
(72)【発明者】
【氏名】バダック, クリスティアン
(72)【発明者】
【氏名】ゲッセル, ミヒャエル
(57)【要約】      (修正有)
【課題】バイト誤り位置信号の決定および使用方法及び回路構成を提供する。
【解決手段】方法は、複数のバイトを含むバイナリ列内の少なくとも1つのバイト誤りを識別し、バイナリ列が、誤っていない場合、誤り符号の符号語であり、回路構成が、誤り符号の誤りシンドロームの成分を使用して少なくとも2つのバイト誤り位置信号それぞれを決定可能であり、少なくとも2つのバイト誤り位置信号が、そのバイト誤り位置信号と関連するバイナリ列のバイトが誤っているか否かを示すように設計されており、少なくとも2つのバイト誤り位置信号が並列で決定される。
【選択図】なし
【特許請求の範囲】
【請求項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のバイトに関する前記バイト誤り位置信号が、
【数1】
が成り立つ場合には、第1の値を取り、
前記第iのバイトに関する前記バイト誤り位置信号が、
【数2】
が成り立つ場合には、第2の値を取り、
前記第iのバイトに関連するバイト誤り位置信号が前記第1の値を取る場合には、前記第iのバイトが誤っている、
請求項12~20のいずれか一項に記載の回路構成。
【請求項22】
2バイト誤りの場合に、前記第iのバイトの前記バイト誤り訂正値が、
【数3】
に従って決定される、請求項12~21のいずれか一項に記載の回路構成。
【請求項23】
2バイト誤りの場合に、訂正可能なバイトの前記訂正が、前記誤りシンドロームの3つの成分、およびバイト誤り位置信号に応じて決定される、請求項12~22のいずれか一項に記載の回路構成。
【請求項24】
少なくとも2つのバイト誤り位置信号を決定するための方法であって、
複数のバイトを含むバイナリ列内の少なくとも1つのバイト誤りを識別し、
前記バイナリ列が、誤っていない場合、誤り符号の符号語であり、
前記少なくとも2つのバイト誤り位置信号それぞれが、前記誤り符号の誤りシンドロームの成分を使用して決定され、前記バイト誤り位置信号と関連する前記バイナリ列のバイトが誤っているか否かを示し、
前記少なくとも2つのバイト誤り位置信号が並列で決定される、
方法。
【請求項25】
複数のバイトを含むバイナリ列内の少なくとも1つのバイト誤りを訂正するための方法であって、前記バイナリ列が、誤っていない場合、誤り符号の符号語であり、前記方法が、
前記誤り符号の誤りシンドロームの成分を使用して前記少なくとも1つのバイト誤り位置信号を決定し、前記バイナリ列のバイトが誤っているか否かを少なくとも1つのバイト誤り位置信号によって決定可能である、ステップと、
少なくとも1つのバイト誤り訂正値を決定するステップであって、前記バイト誤り訂正値に基づいて、前記バイト誤り位置信号によって識別される誤っているバイト位置が訂正される、ステップとを含み、
少なくとも1つの正しいバイトに関して前記バイト誤り訂正値の少なくとも1つが決定される、
方法。
【発明の詳細な説明】
【背景技術】
【0001】
バイトの形態で存在するデータの誤りを、バイトごとに認識し、バイトごとに訂正することが知られている。ここで、バイトは、少なくとも2ビットを含むことができる。1つのバイトの少なくとも1つのビットにおける少なくとも1つの誤りが、バイト誤りと呼ばれる。1つのバイトの少なくとも1つのビットが誤っている場合、バイト誤りが存在する。ただ1つのバイトの少なくとも1つのビットのみが誤っている場合、これは、1バイト誤りである。
【0002】
1バイト誤りの訂正は、例えば、(非特許文献1)に記載されている。
【0003】
2つの異なるバイトのビットが誤っている場合、これは、2バイト誤りである。したがって、k個のバイトにおけるビットが誤りである(すなわち、k個のバイトそれぞれにおける少なくとも1つのビットが誤りを有する)ときには、kバイト誤りがあると言える。
【0004】
誤っている可能性があるバイトの誤り訂正を迅速に行うことが全般的な動機である。これは、例えば、バイト形態でのデータが、メモリから並列に読み出されて並列に提供されるときに当てはまる。そのようなシナリオでは、誤り訂正を並列して実施することも有利であり得る。
【0005】
「並列」とは、ここでは特に、少なくとも2つのバイトに関する誤り訂正または誤り訂正の一部が少なくとも一部同時に(例えばまた、時間的に少なくとも一部重畳して)行われることを意味する。
【0006】
バイト誤り訂正は、例えば、リード・ソロモン符号によって行うことができる。
【0007】
OKANO(特許文献2)に、リード・ソロモン符号を使用して2バイト誤りを訂正するための回路構成が記載されている。ここで、OKANOに記載されている2バイト誤りの訂正は比較的遅いことが欠点である。
【先行技術文献】
【非特許文献】
【0008】
【非特許文献1】Bossen, D.: b-Adjacent Error Correction, IBM J. Res.Dev., July 1970, 402~408頁
【非特許文献2】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頁
【非特許文献3】Lin, S., Costello, D.: Error Control Coding, Prentice Hall, 1983, 170~177頁
【非特許文献4】Wicker, S.: Error Control Systems for Digital Communication and Storage, Prentice Hall, 1995, 214~224頁
【非特許文献5】Fujiwara, E.: Code Design for Dependable Systems, Wiley, 2006, 65頁
【発明の概要】
【発明が解決しようとする課題】
【0009】
本発明の課題は、バイト誤りを訂正するための既知の解決策の欠点を解消し、特に、複数のバイト内の誤りの誤り訂正をできるだけ迅速に行うことを可能にすることにある。
【0010】
特に、1つの課題は、メモリセル、例えばMRAMメモリセルやRRAMメモリセルなどに関するmバイト誤り(m≧2)の誤り訂正を提供し、それにより、メモリセルから読み出されるデータの信頼性を高めることである。
【課題を解決するための手段】
【0011】
この課題は、独立請求項の特徴に従って解決される。好ましい実施形態は、特に従属請求項から明らかになる。
【0012】
上記の課題を解決するために、少なくとも2つのバイト誤り位置信号を決定するための回路構成であって、
-複数のバイトを含むバイナリ列内の少なくとも1つのバイト誤りを識別し、
-バイナリ列が、誤っていない場合、誤り符号の符号語であり、
-回路構成が、誤り符号の誤りシンドロームの成分を使用して少なくとも2つのバイト誤り位置信号それぞれを決定可能であるように設計されており、少なくとも2つのバイト誤り位置信号それぞれが、そのバイト誤り位置信号と関連するバイナリ列のバイトが誤っているか否かを示し、
-少なくとも2つのバイト誤り位置信号が並列で決定される、
回路構成が提案される。
【0013】
バイナリ列の1バイトにつき1つのバイト誤り位置信号を決定することができることに留意されたい。したがって、バイナリ列の各バイトと、バイト誤り位置信号が結合または関連付けされている。バイト誤り位置信号の値は、バイト誤り位置信号に結び付けられたバイトが誤りを有するか否かを示す。
【0014】
誤り符号は、例えば、誤り訂正および/または誤り認識符号である。例えば、誤り符号として、リード・ソロモン符号を使用することができる。
【0015】
これに関連して、「並列」とは、特に、互いに少なくとも一部並列して、すなわち例えば時間的に同時に、または時間的に少なくとも一部同時に値が決定されることを意味する。
【0016】
一変形形態では、回路構成は、誤り符号の誤りシンドロームの成分を使用してバイト誤り位置信号を決定可能であり、バイト誤り位置信号が、バイナリ列のバイトのうちの少なくとも2つのバイトに関して訂正可能な誤りがあることを示すように設計されている。
【0017】
一変形形態では、誤り符号は、tバイト誤り訂正符号であり、少なくとも(t+1)個のバイト誤り位置信号が並列して決定される。
【0018】
一変形形態では、バイナリ列が2バイト誤りを有する。
【0019】
一変形形態では、バイナリ列の各バイトがmビットを有し、ここでm≧2が成り立つ。
【0020】
一変形形態では、誤り符号は、
-tバイト誤り訂正符号、または
-tバイト誤り訂正および(t+1)バイト誤り認識符号
であり、ここでt≧2が成り立つ。
【0021】
一変形形態では、バイナリ列は、少なくとも(t+1)個の訂正可能なバイトを有する。
【0022】
一変形形態では、誤りシンドロームは、少なくとも2・t個の成分s、s、…、s2tを有し、ここで、各成分がそれぞれmビットを含み、m≧2である。
【0023】
訂正可能なバイトは、そのバイト内にバイト誤りがある場合に、バイト誤り訂正符号によってバイト誤りを訂正可能であるときに誤り訂正が行われるバイトである。
【0024】
一変形形態では、バイト誤り位置信号は、バイト誤り位置信号に関連するバイトが誤っている場合には第1の値を有し、バイト誤り位置信号に関連するバイトが誤っていない場合には第2の値を有する。
【0025】
一変形形態では、バイト誤り位置信号の少なくとも1つは、少なくとも1つの訂正されたバイトに関して決定される。
【0026】
一変形形態では、バイナリ列は、データバイトおよび検査バイトを含み、データバイトおよび/または検査バイトが、訂正可能なバイトを構成する。
【0027】
特に、データバイトのみを訂正することができる。また、検査バイトのみ、またはデータバイトと検査バイトとの組合せを訂正することも可能である。ここで、データバイトは使用データでよく、検査バイトは、使用データの訂正に使用することができる追加の検査情報でよい。
【0028】
また、上記の課題を解決するために、複数のバイトを含むバイナリ列内の少なくとも1つのバイト誤りを訂正するための回路構成であって、バイナリ列が、誤っていない場合、誤り符号の符号語であり、上記回路構成が、
-誤り符号の誤りシンドロームの成分を使用して少なくとも1つのバイト誤り位置信号を決定し、バイナリ列のバイトが誤っているか否かをバイト誤り位置信号によって決定可能であり、
-少なくとも1つのバイト誤り訂正値を決定し、バイト誤り訂正値に基づいて、バイト誤り位置信号によって識別される誤っているバイト位置を訂正可能であり、
-少なくとも1つの正しいバイトに関してバイト誤り訂正値の少なくとも1つが決定されるように設計されている、
回路構成が提案される。
【0029】
一変形形態では、少なくとも1つのバイト誤り位置信号および/または少なくとも1つのバイト誤り訂正値が並列して決定される。
【0030】
特に、少なくとも2つのバイト誤り訂正値を並列して決定することができる。
【0031】
一変形形態では、誤り符号は、tバイト誤り訂正符号であり、少なくとも(t+1)個のバイト誤り位置信号が並列して決定される。
【0032】
一変形形態では、誤り符号は、tバイト誤り訂正符号であり、少なくとも(t+1)個のバイト誤り訂正値が並列して決定される。
【0033】
一変形形態では、少なくとも(t+1)個のバイト誤り訂正値は、最大で3個のガロア体乗算器を使用して決定され、ここでt≧2である。
【0034】
一変形形態では、回路構成は、誤っているバイトに関してバイト誤り位置信号がバイト誤り訂正値と演算されることによって、バイト誤りの1つを訂正するように設計されている。
【0035】
一変形形態では、回路構成は、tバイト誤りを訂正するように設計されており、ここでt≧2が成り立つ。
【0036】
一変形形態では、回路構成は、さらに、1バイト誤りを訂正するように設計されている。
【0037】
一変形形態では、回路構成は、さらに、τバイト誤りを訂正するように設計されており、ここで、t≧τ>2が成り立つ。
【0038】
一変形形態では、2バイト誤りの場合に、第iのバイトが訂正可能なバイトであり、
-第iのバイトに関するバイト誤り位置信号は、
【数1】
が成り立つ場合には、第1の値を取り、
-第iのバイトに関するバイト誤り位置信号は、
【数2】
が成り立つ場合には、第2の値を取り、
-第iのバイトに関連するバイト誤り位置信号が第1の値を取る場合には、第iのバイトが誤っている。
【0039】
一変形形態では、2バイト誤りの場合に、第iのバイトのバイト誤り訂正値が、
【数3】
に従って決定される。
【0040】
回路構成は、個々の部分回路構成に分割することができる。特に、ここで述べる回路構成は一部品または多部品で実現することが可能である。
【0041】
さらに、回路構成は、合成ツールを使用して実現することができる。
【0042】
一変形形態では、2バイト誤りの場合に、訂正可能なバイトの訂正は、誤りシンドロームの3つの成分、およびバイト誤り位置信号に応じて決定される。
【0043】
また、少なくとも2つのバイト誤り位置信号を決定するための方法であって、
-複数のバイトを含むバイナリ列内の少なくとも1つのバイト誤りを識別し、
-バイナリ列が、誤っていない場合、誤り符号の符号語であり、
-少なくとも2つのバイト誤り位置信号それぞれが、誤り符号の誤りシンドロームの成分を使用して決定されて、バイト誤り位置信号と関連するバイナリ列のバイトが誤っているか否かを示し、
-少なくとも2つのバイト誤り位置信号が並列で決定される、
方法が提示される。
【0044】
さらに、複数のバイトを含むバイナリ列内の少なくとも1つのバイト誤りを訂正するための方法であって、バイナリ列が、誤っていない場合、誤り符号の符号語であり、上記方法が、
-誤り符号の誤りシンドロームの成分を使用して少なくとも1つのバイト誤り位置信号を決定し、バイナリ列のバイトが誤っているか否かを少なくとも1つのバイト誤り位置信号によって決定可能である、ステップと、
少なくとも1つのバイト誤り訂正値を決定するステップであって、バイト誤り訂正値に基づいて、バイト誤り位置信号によって識別される誤っているバイト位置が訂正される、ステップとを含み、
少なくとも1つの正しいバイトに関してバイト誤り訂正値の少なくとも1つが決定される、
方法が提示される。
【0045】
以下、本発明の上述した特性、特徴、および利点、ならびにこれらを達成する様式を、例示的実施形態の概略的な説明に関連付けて述べる。例示的実施形態について、図面に関連付けてより詳細に説明する。ここで、見やすくするために、同一の要素または同一の作用を有する要素には同じ参照符号を付すことができる。
【図面の簡単な説明】
【0046】
図1】2バイト誤りに関するバイト誤り位置信号を並列して生成するための例示的な回路構成を示す図である。
図2図1に示される回路構成の代替形態を示す図である。
図3】中央回路部分を有する、図1に示される回路構成のさらなる構成を示す図である。
図4図3に示される中央回路部分の代替の例示的実現形態を示す図である。
図5】2バイト誤りに関するバイト誤り訂正のための回路構成に関する一例を示す図である。
図6】バイト誤り訂正値を生成するための図5に示される部分回路の実現形態に関する一例を示す図である。
図7】バイト誤り訂正値を生成するための図5に示される部分回路の実現形態に関するさらなる例を示す図である。
図8】2バイト誤りに関するバイト誤り位置信号を生成するための回路構成を使用する、1バイト誤りおよび2バイト誤りに関する訂正回路の一例を示す図である。
図9】2バイト誤りに関するバイト誤り位置信号を生成するための回路構成を使用する、1バイト誤り、2バイト誤り、以下同様にtバイト誤りまでに関する例示的な訂正回路を示す図である。
図10図8に示される部分回路の例示的な形態を示す図である。
図11】誤り認識回路を示す図である。
図12】3バイト誤りを認識するための誤り認識回路を示す図である。
図13】m=5でのガロア体GF(2)の要素の様々な表現形態を示す表を示す図である。
【発明を実施するための形態】
【0047】
例として、以下、リード・ソロモン符号を使用したバイト誤りの訂正を述べる。ここで、バイトは、複数のビットを含むことができる。
【0048】
各訂正可能なバイト位置に関して、そのバイトが誤っているか否かを判断可能にする信号(バイト誤り位置信号とも呼ぶ)が特定される。例えば、バイト誤り位置信号は、バイトが誤っている場合には値1、バイトが誤っていない場合には値0を有する。
【0049】
バイト誤り位置信号は、好ましくは、ロケータ多項式の値によって決定される。バイト誤り訂正符号の場合、誤りの数に関してそれぞれ1つのロケータ多項式を使用することができる。
【0050】
したがって、バイト誤り訂正符号の訂正可能なバイト位置に関してバイト誤り位置信号を決定することが特に提案され、ここで、バイト誤り訂正符号は、特に、少なくとも2つのバイト誤りを訂正することができる。
【0051】
ここで、訂正可能なバイト位置は、バイト誤り訂正符号によって訂正可能な誤りが発生したときに訂正が行われるバイト位置である。
【0052】
バイトは、例えば、データバイト、データバイトと検査バイトとの組合せ、またはその部分集合である。データバイトは、好ましくは、使用データを含む。
【0053】
バイト位置に関して、バイト誤り訂正値を決定することができ、バイト誤り訂正値に基づいて、バイト位置は、そこで誤りが発生しているときに訂正される。バイト誤り位置信号は、あるバイトに関して誤りが発生しているかどうかを示し、バイト誤り訂正値によって、この誤りを訂正することができる。また、バイト誤り位置信号によって、個々のバイト位置を隠す(マスキングする)ことができ、その際には、訂正は行われない。
【0054】
特に、(例えばバイト位置が誤っていないので)バイト位置で訂正のために使用されないバイト誤り訂正値に0を乗算することが、1つの選択肢である。その限りにおいて、バイト誤り訂正値への0の乗算はまた、バイト位置でバイト誤り訂正値を使用しないことに相当する。
【0055】
リード・ソロモン符号の全般的な説明
以下、リード・ソロモン符号のいくつかの概念および特性を説明する。
【0056】
例えば、
-tバイト誤り訂正符号と、
-tバイト誤り訂正および(t+1)バイト認識符号
とを考える。特に、t=2およびt=1の場合を考察する。
【0057】
例えば、バイト誤り訂正符号として知られているリード・ソロモン符号を使用することができる。リード・ソロモン符号に関しては、例えば、(特許文献3)または(特許文献4)を参照されたい。
【0058】
1バイト誤り訂正および2バイト誤り認識リード・ソロモン符号は、以下のようなH行列
【数4】
を有する。
【数5】
【0059】
ここで、αは、ガロア体GF(2)の要素である。これは、例えば、指数関数表現である。αは、ガロア体GF(2)の原始元でよい。αの指数jは、mod2-1と解釈することができる。
【0060】
式(1)によるH行列から、以下のH行列を導出することができる。
【数6】
これは、i=0,…,(2-2)に関して、第iの列にα-iを乗算することによって行われる。これにより、α-1≠0であるので、符号ではなくH行列の形態のみが変わる。これは、例えば、(非特許文献5)にも記載されており、そこでは、αに関して値「1」が使用されている。αは、使用されるガロア体の単位元であるからである。
【0061】
2バイト誤り訂正および3バイト誤り認識符号に関して、以下のH行列が使用される。
【数7】
【0062】
式(3)で表されるH行列の各列が1バイトに対応する。
【0063】
符号の長さがNバイトまたはm・Nビット(ここで、各バイトがmビットを有する)である場合、式(1)または式(3)によるH行列のN列のみが使用される。例えば、残りの(最後の)2-2-N列を削除することができる。
【0064】
一般に、tバイト誤り訂正およびt+1バイト誤り認識符号に関して、H行列は、以下のように表すことができる。
【数8】
【0065】
以下、例として、2バイト誤りを訂正することができ、3バイト誤りを認識することができる符号を考察する。
【0066】
誤りが発生した場合、正しいベクトルv=v,…,vN-1が乱されて、誤っているベクトルv=v’0,…,v’N-1になる。
【0067】
ベクトルvの成分v,…,vN-1は、それぞれmビットを含むバイトであり、したがって、i=0,…,N-1に関して、
【数9】
が成り立つ。したがって、
【数10】
は、第iのバイトのmビットである。
【0068】
mビットバイトは、ガロア体GF(2)の要素と呼ぶこともできる。
【0069】
1バイト誤りがある場合、ただ1つのバイトのみが誤っており、すなわち、特定のi∈{0,…,N-1}に関して、関連の第iのバイトが誤っている。
【0070】
正しい第iのバイトを
【数11】
で表し、誤っている第iのバイトを
【数12】
で表すと、正しい第iのバイトの1ビットもしくは2ビットまたはmビットまでを、誤っている第iのバイトから区別することができる。
【0071】
第iのバイトでのバイト誤りは、
-誤っているバイト位置i、および
-バイト誤り値によって、以下のように表すことができる。
【数13】
ここで、
【数14】
は、XOR演算を表すことに留意されたい。
【0072】
第iのバイトの位置は、αと表すこともできる。
【0073】
バイト誤りが、バイト位置iでのバイト誤り値eで訂正される場合、バイト位置iに関して、バイト誤り値に等しいバイト誤り訂正値を決定することができる。
【0074】
この例では、訂正すべきバイト誤りに関して、バイト誤り値は、バイト誤り訂正値に等しい;その限りにおいて、概念「バイト誤り値」と「バイト誤り訂正値」を同義として使用することができる。
【0075】
添え字の数字が分かりにくくなるのを避けるために、以下、バイト誤り値を、アルファベット文字a、b、cで表す。
【0076】
第iのバイトに関するバイト誤り訂正値を、a(i)と表すこともできる。
【0077】
バイト位置は、i,j,k,…、またはα,α,α,…で表すことができ、ここで、αは、ガロア体GF(2)の生成要素である。
【0078】
誤りシンドローム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
【0079】
ここで、(v’0,…,v’N-1は、成分v’0,…,v’N-1を有する列ベクトルであり、この列ベクトルは、行ベクトル(v’0,…,v’N-1)の転置ベクトルと呼ぶこともできる。
【0080】
シンドローム成分s、s、s、s、sは、それぞれ、mビットを有するバイトを構成する。
【0081】
誤りがない場合、
=s=s=s=s=0が成り立つ。
【0082】
第iのバイト誤り位置に、バイト誤り値αを有する1バイト誤りがある場合、以下の式が成り立つ。
=α・a=a
=a・a
=a2i・a
=a3i・a
=a4i・a (4)
【0083】
バイト誤り位置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)
【0084】
バイト誤り位置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)
【0085】
考察される誤りに関して、以下の関係が満たされている。
1.1バイト誤りに関しては、
=a≠0 (7)
および
【数15】
が成り立つ。
2.2バイト誤りに関しては、
【数16】
および
【数17】
が成り立つ。
3.3バイト誤りに関しては、以下の式である。
【数18】
【0086】
バイト誤り位置αおよびαは、第iのおよび第jのバイトでの2バイト誤りの場合、式
【数19】
の解、根、またはゼロ位置として決定することができる。また、
【数20】
を、2次のロケータ多項式と呼ぶこともできる。
【0087】
それに対応して、1バイト誤りに関するバイト誤り位置は、1次のロケータ多項式のゼロ位置によって決定され、一般に、
1≦τ≦t
について、tバイト誤り訂正符号に関するτバイト誤りにおける誤っているバイト位置は、τ次のロケータ多項式のゼロ位置によって決定される。
【0088】
符号語が、N・mビット、したがってNバイトからなる場合、バイト誤り位置としてみなされるN個の異なるバイト位置がある。それに対し、対応するビット訂正符号において、誤っている可能性があるm・N個のビット位置がある。
【0089】
1バイト誤りにおいては1次のロケータ多項式が使用され、および2バイト誤りにおいては2次のロケータ多項式が使用される。
【0090】
リード・ソロモン符号の補足説明
2バイト誤りの場合に、第iのバイトに関するバイト誤り訂正値a(i)を、シンドローム成分s、s、sおよびバイト位置iのみに応じて決定することができる。
【0091】
ここで、例えば少なくとも3つの訂正可能なバイトに関して複数のバイト誤り訂正値を並列に決定することができることが利点である。
【0092】
例えば、2バイト誤りがあると仮定する。各バイト位置に関するバイト誤り訂正値は、提供されたシンドローム成分s、s、s、および訂正可能なバイトの既知の位置に基づいて、並列に決定することができる。バイト誤り訂正値は、誤っている両方のバイトに関して、および少なくとも誤っていないバイトに関して決定される。
【0093】
第iのバイト位置に関して決定されたバイト誤り訂正値は、この第iの位置でのバイト誤り値と一致する。
【0094】
同様に(場合によっては並列に)決定されたバイト誤り位置信号は、対象のバイトにバイト誤りがあるかどうか、およびバイト誤り訂正値を用いて訂正を行うかどうかを判断する。バイト誤り位置信号が、対応する位置にバイト誤りがないことを示した場合、この位置に関して決定されたバイト誤り訂正値を用いた訂正を行わない。
【0095】
換言すると、バイト誤り位置信号は、提供されたバイト誤り訂正値を用いた訂正をどのバイト位置で行うかを決定する。あるバイト位置に関するバイト誤り位置信号がバイト誤りを示す場合、バイト誤り訂正値を用いた訂正を行う。このバイト位置に関するバイト誤り位置信号がバイト誤りを示さない場合、訂正を行わない。
【0096】
tバイト誤り訂正符号を考えると、t個よりも多い訂正可能なバイト位置に関する対応するバイト誤り訂正値を決定することができ、その後、バイト位置(の全てまたは一部)に関するバイト誤り位置信号が決定される。バイト誤り訂正値は、バイト誤り位置信号と並列して決定することもできる。
【0097】
第iのバイトにバイト誤りがない場合、この第iのバイトに関して決定されたバイト誤り訂正値は、バイト誤り位置信号の値に基づいて、訂正に使用されない。この場合、バイト誤り位置信号に基づき、訂正は実施されないので、この誤っていないバイトに関して決定されたバイト誤り訂正値が
【数21】
である必要はない。任意選択で、この場合、第iのバイトに関するバイト誤り訂正値は、
【数22】
に設定することができる。
【0098】
2バイト誤りがある場合、バイト誤り位置iに関して、第iのバイトのバイト誤り訂正値a(i)は、式
【数23】
が成り立つように決定することができる。
【0099】
2バイト誤りに関して、バイト誤りが発生しているバイト位置iが既知である場合、式(13)に基づいて、誤っているバイト位置iに関するバイト誤り訂正値a(i)は、シンドローム成分s、s、s、およびバイト位置iから決定される値αによって決定される。
【0100】
バイト位置kに関して、バイト誤り訂正値a(k)は、
【数24】
として例えば並列して決定され、バイト位置kが実際に誤っているかどうかには関係しない。
【0101】
バイト誤り位置信号が、バイト位置kにおいてバイト誤りがあることを示す場合、第kのバイトの誤り訂正が、このバイト位置kに関して決定されたバイト誤り訂正値a(k)によって行われる。
【0102】
バイト誤り位置信号が、バイト位置kにおいてバイト誤りがないことを示す場合、第kのバイトの誤り訂正は行われず、このバイト位置kに関して決定されたバイト誤り訂正値a(k)は、誤り訂正に使用されない。任意選択で、バイト誤り訂正値を0に設定することができる。
【0103】
したがって、バイト位置に関するバイト誤り訂正値は、実際にこのバイト位置で誤りが発生しているかどうかが決定される前に既に存在する。
【0104】
様々なバイト位置に関して、対応するバイト誤り訂正値を並列して決定することができる。特に、全ての訂正可能なバイト位置に関して、または訂正可能なバイト位置の部分集合に関して、バイト誤り訂正値を並列して決定することができる。
【0105】
バイト誤り訂正符号が、誤っているバイトをt個まで訂正することができる場合、例えば全ての訂正可能なバイト位置に関して、または少なくともt+1個の訂正可能なバイト位置の部分集合に関して、バイト位置にバイト誤りがあるかどうかに関係なく、t個よりも多くのバイト誤り訂正値を並列して決定することができる。
【0106】
バイト誤り位置信号の値は、対応するバイトの訂正にバイト誤り訂正値が使用されるかどうかを決定する。
【0107】
訂正可能なバイト位置は、例えば、全てのデータバイト、データバイトの部分集合、検査バイト、tバイト誤り訂正符号の符号語の全てのバイト、またはtバイト誤り訂正符号の符号語のバイトの部分集合でよい。
【0108】
ここで、バイト誤り位置信号は、例えば、バイト位置に関して、バイト位置のバイトが誤っている場合には第1の値を取るように、およびバイト位置のバイトが誤っていない場合には第1の値とは異なる第2の値を取るように決定することができる。
【0109】
バイト誤り位置信号は、対応するロケータ多項式を使用して決定することができる。
【0110】
1バイト誤りに関するバイト誤り位置信号
1バイト誤りに関して、1次のロケータ多項式は、
x・s=s (15)であり、解またはゼロ位置
【数25】
を有する。
【0111】
誤っているバイト位置iに関するバイト誤り訂正値a(i)は、
a(i)=s (17)
である。
【0112】
各第kのバイトに関して、バイト誤り訂正値
a(k)=s=a (18)
が決定される。
【0113】
第iのバイトでの誤りがバイト誤り訂正値aを有し、したがってs=aである場合、各バイトkに関して、式(18)に従ってバイト誤り訂正値a(k)=aが決定され、バイト誤り訂正値a(k)=aは、実際に訂正すべき第iのバイトに関しては使用され、訂正されないバイトに関してはマスキング(例えばゼロに設定)される。バイトが訂正されるか否かの決定は、対応するバイト誤り位置信号の値に基づいて行われる。
【0114】
各バイトに関して、1バイト誤りの場合、バイト誤り位置信号は、式(15)を使用して決定される。バイト位置iに関するバイト誤り位置信号は、
-αが、式(15)に従ってロケータ多項式のゼロ位置である場合には1であり、
-αが、式(15)に従ってロケータ多項式のゼロ位置でない場合には0である。
【0115】
第iのバイトの訂正は、αが、式(15)に従ってロケータ多項式のゼロ位置である場合にのみ行われる。
【0116】
2バイト誤りに関するバイト誤り位置信号
2バイト誤りの訂正におけるバイト誤り位置信号の作用を、一例に基づいて述べる。
【0117】
tバイト誤り訂正符号がt≧2として使用される場合、2バイト誤りの場合には、誤っているバイト位置は、式(12)による2次のロケータ多項式の2つのゼロ位置によって決定されている。
【0118】
誤っているバイト位置が位置iおよびjである場合、バイト誤り位置信号は、例えば、αおよびαが式(12)による2次のロケータ多項式のゼロ位置である場合には1であり、他の全ての場合には0である
【0119】
各バイト位置kに関して、バイト誤り訂正値
【数26】
を決定することができる。このバイト誤り訂正値は、少なくとも一部並列して決定することができる。
【0120】
バイト位置kに関するバイト誤り位置信号の値は、このバイト位置kで訂正を行うかどうかを決定する。バイト誤り位置信号が1である場合には訂正が行われ、バイト誤り位置信号が0である場合には訂正は行われない。
【0121】
バイト位置k=iに関して、バイト誤り訂正値a(i)は、誤っている第iのバイトがバイト誤り訂正値a(i)によって訂正されるように決定されている。同様に、バイト位置k=jに関して、バイト誤り訂正値a(j)は、誤っている第jのバイトがバイト誤り訂正値a(j)によって訂正されるように決定されている。
【0122】
k≠i,jである他の全てのバイト位置kに関してはバイト誤りはなく、したがって、これらのバイト位置に関しては訂正が行われない。バイト誤り位置信号がこのバイト位置で値0を取り、したがってこのバイト位置に関して訂正が必要ないので、バイト誤り訂正値a(k)は、0でないと決定されたときでさえ、これは訂正に使用されない。
【0123】
1バイト誤り、2バイト誤り、3バイト誤りの処理
以下、どのようにしてバイト誤りを認識し、互いに区別することができるかを述べる。例えば、2バイト誤り訂正符号を考える。補足として、3バイト誤り認識についても述べる。
【0124】
1.まず、1バイト誤りまたは2バイト誤りのみが存在する場合から始める。そのような例では、2バイト誤りに関しては、式(9)に従って、
【数27】
が成り立ち、1バイト誤りに関しては、式(7)および(8)
【数28】
も成り立つ。
【0125】
さらに、1バイト誤りも2バイト誤りも発生していない場合を区別することができる。既にs=0から、1バイト誤りも2バイト誤りも発生していないと帰結することができる。
【0126】
3バイト誤りに関する確率が極端に小さいとき、この場合に関して、誤りが発生していないと帰結することができる。
【0127】
2.ここで、1バイト誤りのみ、2バイト誤りのみ、または3バイト誤りのみが存在する場合を考える。3バイト誤りに関して、式(11)に従って、
【数29】
が成り立つ。
【0128】
それに対応して、2バイト誤りまたは1バイト誤りに関して、
【数30】
が成り立つ。
【0129】
2バイト誤りがある場合、さらに、式(9)
【数31】
が成り立つ。
【0130】
1バイト誤りに関して、やはり式(7)および(8)
【数32】
が成り立つ。
【0131】
式(9)による条件は3バイト誤りに関しても成り立つので、この条件のみからでは、2バイト誤りがあると帰結することはできない。
【0132】
2バイト誤りの訂正は、以下のように行うことができる。i∈{0,1,…,N-1}での各バイト位置iに関して、2次のロケータ多項式の値L(α)は、以下の式に従って決定される。
【数33】
【0133】
L(α)=0の場合、第iのバイトが訂正される。L(α)≠0の場合、第iのバイトは訂正されない。バイト誤り位置信号BPsは、それぞれのバイトの訂正が行われるか否かを提示することができる。バイト誤り位置信号BPsは、例えば、
【数34】
によって決定されている。
【0134】
ガロア体GF(2)での演算を実現する回路構成では、例えば、乗算器、定数乗算器、自乗器、べき乗(3乗)生成器などが採用される。個々のそのような演算の回路技術的な採用は既知である。以下、例として、例えば剰余多項式によって決定されているガロア体において、乗算器、自乗器、3乗生成器、および定数乗算器をどのように実現することができるかを述べる。例えば、m=5が仮定され、バイトは、m=5ビットからなり、対応するガロア体は、GF(2)である。
【0135】
m=5でのガロア体GF(2)における例
例えばm=5が選択され、基礎となるガロア体
GF(2)=GF(2)=GF(32)
は、全部で32個の要素を含む。
【0136】
ガロア体GF(32)の要素は、図13に様々な表現形式で表されている。ガロア体GF(32)の剰余多項式は、多項式
p(x)=1+x+x
である。
【0137】
図13に示される表の第1の列は、指数表現(指数関数表現とも呼ぶ)で、i=0,1,…,30に関してGF(2)の要素α≠0を含む。体のゼロ要素は、指数表現を有さない。表の第2の列では、全ての要素が、関連の剰余多項式p(x)に関する多項式表現で列挙されている。表の第3の列は、GF(2)の要素のタプルまたはベクトル表現を示す。要素のベクトル表現は、多項式表現から直接読み取ることができる。ここで、ベクトル表現の5つの成分は、左から右へ、多項式表現中の関連のべき乗の係数
,x,x,x,x
に対応する。
【0138】
対応する多項式表現は、[x mod (1+x+x)]を決定することによって、べき乗表現αから得られる。例えば、α5の多項式表現は、
mod (1+x+x)=1+x
が成り立つので、1+xである。
【0139】
ガロア体の2つの要素の乗算は、指数表現または多項式表現で行うことができる。ガロア体GF(2)=GF(2)の2つの要素が指数表現αおよびαで与えられる場合、それらの積は、以下のようになる。
α・α=α
ここで、
k=(i+j) mod (2-1)=(i+j) mod 31
【0140】
ガロア体の乗算すべき要素がベクトル表現または多項式表現である場合、それらの乗算は、ガロア体乗算器によって行うことができる。以下、例として、多項式表現での2つの要素の乗算を述べる。ガロア体GF(2)=GF(2)の要素として多項式表現で与えられている2つの要素を互いに乗算するために、多項式を直接通常の様式で互いに乗算することができ、結果を剰余多項式の剰余として決定することができる。
【0141】
例えば、多項式1+x+xおよびx+xが与えられ、それによりそれらの直接の乗算
(1+x+x)(x+x)=x+x+x+x
が得られる。
【0142】
=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となる。
【0143】
したがって、結果として、
(1+x+x)・(x+x)=1+x+x+x
が成り立つ。
【0144】
以下、剰余多項式
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
【0145】
この関係は、5つの第1のバイナリ入力と、5つの第2のバイナリ入力と、5つのバイナリ出力を有するガロア体乗算器によって、実現される。これを以下に詳細に説明する。
【0146】
ガロア体乗算器の第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演算)を表す。
【0147】
式(22)~(26)の実装は、例えばANDゲートおよびXORゲート(排他的ORゲート)を使用して、ガロア体乗算器によって行うことができる。例えば、実装の範囲内で、合成ツールを使用することもできる。
【0148】
ガロア体の要素が自乗される場合、要素をそれ自体と乗算することができる。多項式表現で、要素が多項式
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
が成り立つ。
【0149】
それに対応して、ガロア体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演算)を示す。
【0150】
剰余多項式m(x)=1+x+xを有するガロア体GF(2)で自乗器を実現するために、式(27)~(31)を例えばXORゲートによって実装することができる。
【0151】
ガロア体GF(2)の例で、多項式表現で与えられた要素の3乗をどのように決定することができるかを述べる。
【0152】
多項式
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
【0153】
それに対応して、ガロア体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)
が成り立つ。
【0154】
例えば、3乗生成器は、この例では、剰余多項式m(x)=1+x+xを有するガロア体GF(2)で単に式(32)~(36)を実装することによって実現することができる。
【0155】
代替として、3乗生成器は、自乗器と、下流に接続されたガロア体乗算器とから実現することができる。また、要素a(x)の高次のべき乗は、対応する様式で、適切な構成要素を使用して実現することができる。
【0156】
ガロア体GF(2)での定数乗算器の実装を、以下、例としてm=5に関して述べる。剰余多項式は、
m(x)=1+x+x
である。
【0157】
a∈GF(2)とすると、ガロア体の任意の要素は、以下の多項式表現で表される。
a(x)=a+ax+a+a+a (37)
【0158】
乗算すべき定数として、例えばαが選択され、その多項式表現は、図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)
である。
【0159】
出力値b、…、bは、式(40)~(44)で表される関係に対応して入力値a、…、aから導出することができ、出力値は、入力値からのXOR演算によって決定される。ここで、符号「+」は、mod2加算(XOR演算)を示す。それに対応して、定数乗算器は、XORゲートによって実現することができる。
【0160】
バイト誤り位置信号を生成するためのバイト誤り位置信号生成器の説明
図1は、バイト誤り位置信号を決定するための例示的な回路構成を示す。例えば、各バイトがそれぞれmビットを有するnバイトからなる符号語を有する2バイト誤り訂正誤り符号を考える。
【0161】
回路構成は、N個のバイト誤り位置信号生成器10、11、…、1i、…、1N-1を有し、バイト誤り位置信号生成器10、11、…、1i、…、1N-1は、それらそれぞれの1ビット幅の出力を介してバイト誤り位置信号BPs、BPs、…、BPs、…、BPsN-1を提供する。
【0162】
N個のバイト誤り位置信号生成器10、11、…、1i、…、1N-1のそれぞれ4・mビット幅の入力に、シンドローム発生器(図1には図示せず)から提供される4・mビット幅の誤りシンドローム
s=s,s,s,s
が提供され、この誤りシンドロームは、それぞれmビット幅のシンドローム成分s、s、s、sからなる。
【0163】
1つの誤りの場合に全てのバイトが訂正される場合、N=nが成り立つ。1つの誤りの場合にn個未満のバイトが訂正される場合、N<nが成り立つ。例えば、誤りの場合、データバイトのみが訂正されることが可能である。そのような例では、検査バイトは訂正され得ない。
【0164】
バイト誤り位置信号生成器10は、例えば、以下のように構成されている。
-バイト誤り位置信号生成器10は、
【数35】
が成り立つ場合には、バイト誤り位置信号BPs=1を出力し、
-バイト誤り位置信号生成器10は、
【数36】
が成り立つ場合には、バイト誤り位置信号BPs=0を出力する。
【0165】
バイト誤り位置信号生成器11は、例えば、以下のように構成されている。
-バイト誤り位置信号生成器11は、
【数37】
が成り立つ場合には、バイト誤り位置信号BPs=1を出力し、
-バイト誤り位置信号生成器11は、
【数38】
が成り立つ場合には、バイト誤り位置信号BPs=0を出力する。
【0166】
バイト誤り位置信号生成器1iは、例えば、以下のように構成されている。
-バイト誤り位置信号生成器1iは、
【数39】
が成り立つ場合には、バイト誤り位置信号BPs=1を出力し、
-バイト誤り位置信号生成器1iは、
【数40】
が成り立つ場合には、バイト誤り位置信号BPs=0を出力する。
【0167】
バイト誤り位置信号生成器1N-1は、例えば、以下のように構成されている。
-バイト誤り位置信号生成器1N-1は、
【数41】
が成り立つ場合には、バイト誤り位置信号BPsN-1=1を出力し、
-バイト誤り位置信号生成器1N-1は、
【数42】
が成り立つ場合には、バイト誤り位置信号BPsN-1=0を出力する。
【0168】
ここで、α mod 2-1のそれぞれの指数を解釈することができる。
【0169】
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)の単位元である。
【0170】
図2によるバイト誤り位置信号生成器
図2は、図1に示される回路構成の可能な形態を示す回路構成を示す。
【0171】
図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
【0172】
部分回路210は、誤りシンドロームsの入力時に、
-第1の出力で、s・s+s・sを出力し、
-第2の出力で、
【数43】
を出力し、
-第3の出力で、
【数44】
を出力する
ように設計されている。
【0173】
部分回路210の第1の出力は、定数乗算器220の第1の入力と接続されている。定数乗算器220の第2の入力には、定数α=1が入力され、それにより、定数乗算器220の出力で、
α(s・s+s・s)=s・s+s・s
が提供される。
【0174】
定数乗算器220の出力は、XOR回路240の第1の入力と接続されている。
【0175】
部分回路210の第2の出力は、定数乗算器230の第1の入力と接続されている。定数乗算器230の第2の入力には、定数α2・0=αが入力され、それにより、定数乗算器230の出力で、
【数45】
が提供される。
【0176】
定数乗算器230の出力は、XOR回路240の第2の入力と接続されている。
【0177】
部分回路210の第3の出力は、XOR回路240の第3の入力と接続されている。
【0178】
XOR回路240は、例えば、その3つの入力に入力されたそれぞれmビット幅の値の成分ごとのXOR演算を生成し、そのmビット幅の出力で、値
【数46】
を提供し、この値は、NOR回路250の入力に送られる。NOR回路250は、その出力で、
-v=0が成り立つ場合には、バイナリ値BPs=1を提供し、
-v≠0が成り立つ場合には、バイナリ値BPs=0を提供する。
【0179】
図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
【0180】
部分回路211は、誤りシンドロームsの入力時に、
-第1の出力で、s・s+s・sを出力し、
-第2の出力で、
【数47】
を出力し、
-第3の出力で、
【数48】
を出力する
ように設計されている。
【0181】
部分回路211の第1の出力は、定数乗算器221の第1の入力と接続されている。定数乗算器221の第2の入力には、定数αが入力され、それにより、定数乗算器221の出力で、
α(s・s+s・s
が提供される。
【0182】
定数乗算器221の出力は、XOR回路241の第1の入力と接続されている。
【0183】
部分回路211の第2の出力は、定数乗算器231の第1の入力と接続されている。定数乗算器231の第2の入力には、定数αが入力され、それにより、定数乗算器231の出力で、
【数49】
が提供される。
【0184】
定数乗算器231の出力は、XOR回路241の第2の入力と接続されている。
【0185】
部分回路211の第3の出力は、XOR回路241の第3の入力と接続されている。
【0186】
XOR回路241は、例えば、その3つの入力に入力されたそれぞれmビット幅の値の成分ごとのXOR演算を生成し、そのmビット幅の出力で、値
【数50】
を提供し、この値は、NOR回路251の入力に供給される。NOR回路251は、その出力で、
-v1=0が成り立つ場合には、バイナリ値BPs=1を提供し、
-v1≠0が成り立つ場合には、バイナリ値BPs=0を提供する。
【0187】
図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
【0188】
部分回路21iは、誤りシンドロームsの入力時に、
-第1の出力で、s・s+s・sを出力し、
-第2の出力で、
【数51】
を出力し、
-第3の出力で、
【数52】
を出力する
ように設計されている。
【0189】
部分回路21iの第1の出力は、定数乗算器22iの第1の入力と接続されている。定数乗算器22iの第2の入力には、定数αが入力され、それにより、定数乗算器22iの出力で、
α(s・s+s・s
が提供される。
【0190】
定数乗算器22iの出力は、XOR回路24iの第1の入力と接続されている。
【0191】
部分回路21iの第2の出力は、定数乗算器23iの第1の入力と接続されている。定数乗算器23iの第2の入力には、定数α2・iが入力され、それにより、定数乗算器23iの出力で、
【数53】
が提供される。
【0192】
定数乗算器23iの出力は、XOR回路24iの第2の入力と接続されている。
【0193】
部分回路21iの第3の出力は、XOR回路24iの第3の入力と接続されている。
【0194】
XOR回路24iは、例えば、その3つの入力に入力されたそれぞれmビット幅の値の成分ごとのXOR演算を生成し、そのmビット幅の出力で、値
【数54】
を提供し、この値は、NOR回路25iの入力に供給される。NOR回路25iは、その出力で、
-v=0が成り立つ場合には、バイナリ値BPs=1を提供し、
-v≠0が成り立つ場合には、バイナリ値BPs=0を提供する。
【0195】
図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
【0196】
部分回路21N-1は、誤りシンドロームsの入力時に、
-第1の出力で、s・s+s・sを出力し、
-第2の出力で、
【数55】
を出力し、
-第3の出力で、
【数56】
を出力する
ように設計されている。
【0197】
部分回路21N-1の第1の出力は、定数乗算器22N-1の第1の入力と接続されている。定数乗算器22N-1の第2の入力には、定数αN-1が入力され、それにより、定数乗算器22N-1の出力で、
αN-1(s・s+s・s
が提供される。
【0198】
定数乗算器22N-1の出力は、XOR回路24N-1の第1の入力と接続されている。
【0199】
部分回路21N-1の第2の出力は、定数乗算器23N-1の第1の入力と接続されている。定数乗算器23N-1の第2の入力には、定数α2・(N-1)が入力され、それにより、定数乗算器23N-1の出力で、
【数57】
が提供される。
【0200】
定数乗算器23N-1の出力は、XOR回路24N-1の第2の入力と接続されている。
【0201】
部分回路21N-1の第3の出力は、XOR回路24N-1の第3の入力と接続されている。
【0202】
XOR回路24N-1は、例えば、その3つの入力に入力されたそれぞれmビット幅の値の成分ごとのXOR演算を生成し、そのmビット幅の出力で、値
【数58】
を提供し、この値は、NOR回路25N-1の入力に供給される。NOR回路25N-1は、その出力で、
-vN-1=0が成り立つ場合には、バイナリ値BPsN-1=1を提供し、
-vN-1≠0が成り立つ場合には、バイナリ値BPsN-1=0を提供する。
【0203】
部分回路の例示的な統合
図2での部分回路210、211、…、21i、…、21N-1は、機能的に同じである。したがって、これらの部分回路を部分回路31に統合することが可能である。
【0204】
図3は、部分回路210、211、…、21i,…、21N-1を統合する部分回路31を示す。図3に示される回路部分の残りは、図2と同一である。
【0205】
例えば、図1によるバイト誤り位置信号生成器10、11、…、1i、…、1N-1は、共通の部分回路31を使用することができる。
【0206】
部分回路31の例示的な実装
図4は、図3に示される部分回路31の可能な実装を示す。
【0207】
部分回路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とが提供されている。
【0208】
XOR回路43、46、49は、それぞれ、そのそれぞれの入力に入力されたm成分値の成分ごとのXOR演算を実施する。乗算器は、ガロア体GF(2)での乗算を実施し、自乗器は、その入力に入力されたオペランドを、同様にガロア体GF(2)で自乗する。
【0209】
成分sを送る入力は、乗算器41の第1の入力および乗算器44の第1の入力と接続されている。
【0210】
成分sを送る入力は、乗算器42の第1の入力、乗算器47の第1の入力、および自乗器45の入力と接続されている。
【0211】
成分sを送る入力は、乗算器42の第2の入力、乗算器44の第2の入力、および自乗器48の入力と接続されている。
【0212】
成分sを送る入力は、乗算器41の第2の入力および乗算器47の第2の入力と接続されている。
【0213】
乗算器41の出力は、XOR回路43の第1の入力につながれている。乗算器42の出力は、XOR回路43の第2の入力につながれている。XOR回路43の出力で、信号s+sが提供される。
【0214】
乗算器44の出力は、XOR回路46の第1の入力につながれている。自乗器45の出力は、XOR回路46の第2の入力と接続されている。XOR回路46の出力で、信号
【数59】
が提供される。
【0215】
乗算器47の出力は、XOR回路49の第1の入力につながれている。自乗器48の出力は、XOR回路49の第2の入力と接続されている。XOR回路49の出力で、信号
【数60】
が提供される。
【0216】
2バイト誤りに関するバイト誤り訂正値
図5は、2バイト誤りの場合に合計Nバイトに関するバイト誤り訂正値を生成するための例示的な回路を示す。考察するN個のバイトに、0~N-1の番号を付す。
【0217】
第i(0≦i≦N-1)のバイトに関するバイト誤り訂正値a(i)corは、実際の誤りシンドロームs、バイト位置i、およびバイト誤り位置信号BPsに応じて、
a(i)cor=BPs・a(i)
に従って決定される。
【0218】
例えば、全てのN個のバイト位置に関してバイト誤り訂正値が決定される。誤っていないバイト位置に関して、バイト誤り訂正値はマスキングされる。例えば、マスキングは、値0を有するバイト誤り位置信号をバイト誤り訂正値に乗算することによって行われる。
【0219】
バイト位置iおよびjに2バイト誤りがある場合、第iおよび第jのバイトを訂正することができる。これは、第iおよび第jのバイトを、対応するバイト誤り訂正値a(i)cor=a(i)≠0またはa(j)cor=a(j)≠0と成分ごとにXOR演算することによって行われる。
【0220】
誤っていないバイトは訂正されない。このために、それらのバイト位置に関して、バイト誤り訂正値が0に設定され(例えば、前に説明したバイト誤り訂正値と0の乗算)、次いで、訂正されるバイトが、成分ごとにこの値0とXOR演算される。値0とのXOR演算によって、元の値は変わらない。
【0221】
第iの誤っているバイトに関して、バイト誤り位置信号は、BPs=1であり、
a(i)cor=BPs・a(i)=a(i)
が成り立つ。
【0222】
第jの誤っているバイトに関して、バイト誤り位置信号は、BPsj=1であり、
a(j)cor=BPsj・a(j)=a(j)
が成り立つ。
【0223】
第k(k≠i,j)の誤っていないバイトに関して、バイト誤り位置信号は、BPsk=0であり、a(k)cor=BPsk・a(k)=0が成り立つ。
【0224】
第k(k≠i,j)のバイトが誤っていない場合、そのバイトは訂正されない。これは、図5に示される例に従って、第kのバイトの値を変えないように第kのバイトを成分ごとに値0とXOR演算することによって達成することができる。それにより、バイト誤り位置信号は、バイト誤り訂正値をマスキングして0にし、したがって訂正は行われない。
【0225】
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に関して)
も成り立つ。
【0226】
図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を含む。
【0227】
図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ビット幅の出力と
をそれぞれ有する。
【0228】
さらに、図5は、N個のXOR回路520、521、…、52i、…、52N-1を含み、これらは、それぞれ
-対応するバイト誤り訂正値を入力するためのmビット幅の第1の入力と、
-対応する訂正すべきバイトを入力するための第2のmビット幅の入力と、
-それぞれmビット幅の訂正されたバイトを出力するためのmビット幅の出力とを有する。
【0229】
バイト誤り位置信号生成器10の4・mビット幅の入力に、実際の誤りシンドロームsが入力される。バイト誤り訂正値生成器510の第1の入力と接続されているバイト誤り位置信号生成器10の1ビット幅の出力で、バイト誤り位置信号BPsが出力される。
【0230】
バイト誤り訂正値生成器510の第2の3・mビット幅の入力には、誤りシンドロームsの成分s、s、sが入力される。バイト誤り訂正値生成器510は、その出力で、バイト誤り訂正値a(0)corを提供する。バイト誤り訂正値生成器510の出力は、XOR回路520の第1の入力と接続されている。XOR回路520の第2の入力には、誤っている可能性がある第0のバイトのバイト値
【数61】
が入力される。XOR回路520は、誤っている可能性があるバイト値
【数62】
とバイト誤り訂正値a(0)corとの成分ごとのXOR演算を生成し、その出力で、値
【数63】
を出力する。バイト誤り訂正値a(0)corは、
-第0のバイトが正しく、BPs=0である場合には、0であり、
-第0のバイトが誤っており、BPs=1である場合には、0でない。
【0231】
バイト誤り位置信号生成器11の4・mビット幅の入力に、実際の誤りシンドロームsが入力される。バイト誤り訂正値生成器511の第1の入力と接続されているバイト誤り位置信号生成器11の1ビット幅の出力で、バイト誤り位置信号BPsが出力される。
【0232】
バイト誤り訂正値生成器511の第2の3・mビット幅の入力には、誤りシンドロームsの成分s、s、sが入力される。バイト誤り訂正値生成器511は、その出力で、バイト誤り訂正値a(1)corを提供する。バイト誤り訂正値生成器511の出力は、XOR回路521の第1の入力と接続されている。XOR回路521の第2の入力には、誤っている可能性がある第1のバイトのバイト値
【数64】
が入力される。XOR回路521は、誤っている可能性があるバイト値
【数65】
とバイト誤り訂正値a(1)corとの成分ごとのXOR演算を生成し、その出力で、値
【数66】
を出力する。バイト誤り訂正値a(1)corは、
-第1のバイトが正しく、BPs=0である場合には、0であり、
-第1のバイトが誤っており、BPs=1である場合には、0でない。
【0233】
バイト誤り位置信号生成器1iの4・mビット幅の入力に、実際の誤りシンドロームsが入力される。バイト誤り訂正値生成器51iの第1の入力と接続されているバイト誤り位置信号生成器1iの1ビット幅の出力で、バイト誤り位置信号BPsが出力される。
【0234】
バイト誤り訂正値生成器51iの第2の3・mビット幅の入力には、誤りシンドロームsの成分s、s、sが入力される。バイト誤り訂正値生成器51iは、その出力で、バイト誤り訂正値a(i)corを提供する。バイト誤り訂正値生成器51iの出力は、XOR回路52iの第1の入力と接続されている。XOR回路52iの第2の入力には、誤っている可能性がある第iのバイトのバイト値
【数67】
が入力される。XOR回路52iは、誤っている可能性があるバイト値
【数68】
とバイト誤り訂正値a(i)corとの成分ごとのXOR演算を生成し、その出力で、値
【数69】
を出力する。バイト誤り訂正値a(i)corは、
-第iのバイトが正しく、BPs=0である場合には、0であり、
-第iのバイトが誤っており、BPs=1である場合には、0でない。
【0235】
バイト誤り位置信号生成器1N-1の4・mビット幅の入力に、実際の誤りシンドロームsが入力される。バイト誤り訂正値生成器51N-1の第1の入力と接続されているバイト誤り位置信号生成器1N-1の1ビット幅の出力で、バイト誤り位置信号BPsN-1が出力される。
【0236】
バイト誤り訂正値生成器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)のバイトのバイト値
【数70】
が入力される。XOR回路52N-1は、誤っている可能性があるバイト値
【数71】
とバイト誤り訂正値a(N-1)corとの成分ごとのXOR演算を生成し、その出力で、値
【数72】
を出力する。バイト誤り訂正値a(N-1)corは、
-第(N-1)のバイトが正しく、BPsN-1=0である場合には、0であり、
-第(N-1)のバイトが誤っており、BPsN-1=1である場合には、0でない。
【0237】
したがって、バイト訂正器530は、バイト誤り位置信号生成器10およびバイト誤り訂正値生成器510を含み、バイト訂正器531は、バイト誤り位置信号生成器11およびバイト誤り訂正値生成器511を含み、バイト訂正器53iは、バイト誤り位置信号生成器1iおよびバイト誤り訂正値生成器51iを含み、バイト訂正器53N-1は、バイト誤り位置信号生成器1N-1およびバイト誤り訂正値生成器51N-1を含む。それに対応して、バイト訂正器530、531、…、53i、…、53N-1は、2バイト誤りに関するバイト訂正器と呼ぶことができる。
【0238】
この例では、2バイト誤りに関するバイト訂正器は、誤っている2つのバイト位置に関するバイト誤り訂正値を出力する。誤りを有さないバイト位置に関して、バイト誤り訂正値は0である。
【0239】
誤っているバイト位置iに関して、
a(i)cor=a(i)
が成り立つ。
【0240】
誤っていないバイト位置jに関して、
a(j)cor=0
が成り立つ。
【0241】
ここで、a(i)は、第iのバイトのバイト誤り訂正値である。
【0242】
バイト誤り位置信号生成器が、誤りシンドロームsの4つの成分s、s、s、sに応じて、対応するバイト誤り位置信号を生成し、バイト誤り訂正値生成器が、この誤りシンドロームsの3つの成分s、s、sに応じて、対応するバイト誤り訂正値を生成することを具体的に表すために、図5に、例として2つの入力ライン、すなわち、成分s、s、s、sを入力するための入力ラインと、成分s、s、sを入力するためのさらなる入力ラインとが表されている。これらのラインは、成分s、s、sに関して統合することもできる。
【0243】
r=0,…,N-1に関して、バイト誤り訂正値生成器51rは、XOR回路52rの第1のmビット幅の入力と接続されているそのmビット幅の出力で、2バイト誤りの場合に、
【数73】
が成り立つようにバイト誤り訂正値を生成するように構成される。
【0244】
2バイト誤りの場合に、第jおよび第kのバイトが誤っている場合、バイト誤り訂正値生成器51jによってバイト誤り訂正値
【数74】
が出力され、バイト誤り訂正値生成器51kによってバイト誤り訂正値
【数75】
が出力される。全ての別のバイト誤り訂正値生成器51r(r≠j,k)および0≦r≦N-1に関して、バイト誤り訂正値は、a(r)cor=0である。
【0245】
バイト誤り訂正値生成器
図6は、バイト誤り訂正値生成器51rの可能な形態を示し、ここで、rは、0~N-1の値を取ることができる。
【0246】
バイト誤り訂正値生成器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と
を含む。
【0247】
乗算器61の第1の入力には、成分sの値が入力され、乗算器61の第2の入力には、成分sの値が入力される。乗算器61は、ガロア体GF(2)では値s・sを生成し、その出力で、値s・sを出力する。乗算器61の出力は、XOR回路63の第1の入力と接続されている。
【0248】
XOR回路63の第2の入力は、自乗器62の出力と接続されており、自乗器62の入力には、成分sの値が入力される。したがって、自乗器62は、その出力で、値
【数76】
を出力する。XOR回路63は、その2つの入力に入力された値の成分ごとのXOR演算を生成し、その出力で、値
【数77】
を出力する。XOR回路63の出力は、乗算器66の第1の入力と接続されている。
【0249】
XOR回路64の第1の入力には、成分sの値が入力される。定数乗算器67の第1の入力には、成分sの値が入力され、定数乗算器67の第2の入力には、定数α2rが入力される。定数乗算器67は、ガロア体GF(2)で、演算α2r・sを実現する。定数乗算器は、例えば、XORゲートを使用して実装することができる。
【0250】
XOR回路64の出力で、値s+α2rが提供され、反転器65の入力に送られる。反転器65は、その出力で、値
【数78】
を提供する。
【0251】
反転器65の出力は、乗算器66の第1の入力と接続されている。したがって、乗算器66は、その出力で、値
【数79】
を提供する。ここで、a(r)は、第rのバイトに関するバイト誤り訂正値である。AND回路68の第1の入力には、バイト誤り位置信号BPsrの値が入力される。AND回路68の第2の入力は、乗算器66の出力と接続されている。
【0252】
AND回路は、その第2の入力に入力されたmビットとバイト誤り位置信号BPsrとのビットごとのAND演算を実現し、それにより、その出力で、値
【数80】
を提供する。
【0253】
バイト誤り訂正値生成器、代替実施形態
図7は、図6と同様に第rのバイトに関して述べる、バイト誤り訂正値生成器51rのさらなる可能な形態を示す。ここで、rは、0~(N-1)の値を取ることができる。
【0254】
図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と
を含む。
【0255】
乗算器71の第1の入力には、成分sの値が入力され、乗算器71の第2の入力には、成分sの値が入力される。乗算器71は、ガロア体GF(2)で値s・sを生成し、その出力で、値s・sを提供する。乗算器71の出力は、XOR回路72の第1の入力と接続されている。
【0256】
XOR回路72の第2の入力は、自乗器73の出力と接続されており、自乗器73の入力には、成分sの値が入力される。したがって、自乗器73は、その出力で、値
【数81】
を提供する。XOR回路72は、その2つの入力に入力された値の成分ごとのXOR演算を生成し、その出力で、値
【数82】
を提供する。XOR回路72の出力は、反転器74の入力と接続されている。反転器74は、その出力で、値
【数83】
を提供する。
【0257】
反転器74の出力は、乗算器75の第1の入力と接続されており、乗算器75の第2の入力には、成分sの値が入力される。さらに、反転器74の出力は、乗算器76の第1の入力と接続されており、乗算器76の第2の入力には、成分sの値が入力される。
【0258】
乗算器76は、その出力で、値
【数84】
を提供する。乗算器76の出力は、定数乗算器78の第1の入力と接続されている。定数乗算器78の第2の入力には、値α2rが入力される。定数乗算器78は、その出力で、値
【数85】
を提供する。定数乗算器78は、その第1の入力に入力された値を、ガロア体GF2内で、その第2の入力に入力された定数α2rの値と乗算する。この乗算は、第1の入力に入力されたビットの対応するXOR演算によって実装される。定数α2rは、第rのバイトに一意に割り当てられる。
【0259】
乗算器75は、その出力で、値
【数86】
を提供する。乗算器75の出力は、XOR回路77の第1の入力と接続されている。
【0260】
定数乗算器78の出力は、XOR回路77の第2の入力と接続されている。XOR回路77は、その出力で、値
【数87】
を提供する。XOR回路77の出力は、反転器79の入力と接続されている。
【0261】
反転器79は、その出力で、値
【数88】
を提供する。反転器79の出力は、AND回路710の第2の入力と接続されている。
【0262】
AND回路710の第1の入力には、バイト誤り位置信号BPsrの値が入力されている。AND回路710は、その第2の入力に入力されたmビットとバイト誤り位置信号BPsrとのビットごとのAND演算を実現する。それにより、AND回路710は、その出力で、値
【数89】
を提供する。
【0263】
乗算器71、75、76、XOR回路72、および自乗器73を含む図7に示される部分は、乗算器75および76の出力で、値
【数90】
および
【数91】
を出力し、これらは、成分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を含む。
【0264】
訂正可能なバイト位置に関して、例えば、全ての訂正可能なバイト位置に関して、または訂正可能なバイト位置の一部に関して、最高で3回の乗算を使用して、バイト誤り訂正値生成器を実現することが1つの選択肢である。その際、3回の乗算を、3つの乗算器を使用して実装することができる。また、特に、定数乗算器によって、定数のさらなる乗算を実施することも1つの選択肢である。
【0265】
1バイトおよび2バイト誤りの訂正、図8
図8は、1バイト誤りおよび2バイト誤りを訂正するための例示的な回路を示し、ここで、これらの回路は、2バイト誤りに関するバイト誤り位置信号を決定するため、および2バイト誤りを訂正するために使用することができる。
【0266】
図8に示される回路は、例えば、
-2バイト誤りがある場合には、2バイト誤りが訂正され、
-1バイト誤りがある場合には、1バイト誤りが訂正され、
-誤りがない場合には、訂正が行われない
ように構成されている。
【0267】
このために、図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と
を含む。
【0268】
ライン85は、成分s、sを伝送し、バイト誤り訂正値生成器810、…、81i、…、81N-1のそれぞれの入力と接続されている。
【0269】
ライン86は、成分s、s、s、sを伝送し、バイト訂正器530、…、53i、…、53N-1のそれぞれの入力と接続されている。
【0270】
バイト誤り訂正値生成器810は、バイト位置0での1バイト誤りの場合に、その出力で、誤っている第0のバイト
【数92】
に関する正しいバイト誤り訂正値を提供する。これは、さらなるバイト誤り訂正値生成器にも同様に当てはまる。したがって、バイト誤り訂正値生成器81iは、バイト位置iでの1バイト誤りの場合に、その出力で、誤っている第iのバイト
【数93】
に関する正しいバイト誤り訂正値を提供する。バイト誤り訂正値生成器81N-1は、バイト位置(N-1)での1バイト誤りの場合に、その出力で、誤っている第(N-1)のバイト
【数94】
に関する正しいバイト誤り訂正値を提供する。
【0271】
1バイト誤りを訂正するためのバイト誤り訂正値生成器の可能な実現形態を、図10に関連付けて説明する。
【0272】
バイト訂正器530~53N-1の可能な実現形態に関して、例えば、図2に関連付けて述べた位置信号生成器と、図6および図7に関連付けて述べたバイト誤り訂正値生成器とが挙げられる。
【0273】
バイト誤り訂正値生成器810の出力は、マルチプレクサ820の第1の入力と接続されている。バイト訂正器530の出力は、マルチプレクサ820の第2の入力と接続されている。制御信号stの値が0である場合、マルチプレクサ820は、その0入力(第1の入力)をその出力と接続する。制御信号stの値が1である場合、マルチプレクサ820は、その1入力(第2の入力)をその出力と接続する。
【0274】
AND回路830の第1の入力には、バイナリ誤り信号Eが入力される。マルチプレクサ820の出力は、AND回路830の第2の入力と接続されている。AND回路830の出力は、XOR回路840の第1の入力と接続されている。XOR回路840の第2の入力には、誤っている可能性があるバイト
【数95】
が入力されている。XOR回路840は、その出力で、訂正されたバイト値
【数96】
を提供する。
【0275】
AND回路830は、その第2の入力に入力されたm桁の値と誤り信号Eとの成分ごとのAND演算を可能にする。誤り信号E=0である場合、AND回路830は、m成分値0を出力する。誤り信号E=1である場合、AND回路830は、その第2の入力に入力された値を出力する。
【0276】
これらの実施形態は、残りのバイト位置にも同様に当てはまる。
【0277】
バイト誤り訂正値生成器81iの出力は、マルチプレクサ82iの第1の入力と接続されている。バイト誤り訂正値生成器53iの出力は、マルチプレクサ82iの第2の入力と接続されている。制御信号stの値が0である場合、マルチプレクサ82iは、その0入力(第1の入力)をその出力と接続する。制御信号stの値が1である場合、マルチプレクサ82iは、その1入力(第2の入力)をその出力と接続する。
【0278】
AND回路83iの第1の入力には、バイナリ誤り信号Eが入力される。マルチプレクサ82iの出力は、AND回路83iの第2の入力と接続されている。AND回路83iの出力は、XOR回路84iの第1の入力と接続されている。XOR回路84iの第2の入力には、誤っている可能性があるバイト
【数97】
が入力される。XOR回路84iは、その出力で、訂正されたバイト値
【数98】
を提供する。
【0279】
AND回路83iは、その第2の入力に入力されたm桁の値と誤り信号Eとの成分ごとのAND演算を可能にする。誤り信号E=0である場合、AND回路83iは、m成分値0を出力する。誤り信号E=1である場合、AND回路83iは、その第2の入力に入力された値を出力する。
【0280】
バイト誤り訂正値生成器81N-1の出力は、マルチプレクサ82N-1の第1の入力と接続されている。バイト誤り訂正値生成器53N-1の出力は、マルチプレクサ82N-1の第2の入力と接続されている。制御信号stの値が0である場合、マルチプレクサ82N-1は、その0入力(第1の入力)をその出力と接続する。制御信号stの値が1である場合、マルチプレクサ82N-1は、その1入力(第2の入力)をその出力と接続する。
【0281】
AND回路83N-1の第1の入力には、バイナリ誤り信号Eが入力される。マルチプレクサ82N-1の出力は、回路83N-1の第2の入力と接続されている。AND回路83N-1の出力は、XOR回路84N-1の第1の入力と接続されている。XOR回路84N-1の第2の入力には、誤っている可能性があるバイト
【数99】
が入力される。XOR回路84N-1は、その出力で、訂正されたバイト値
【数100】
を提供する。
【0282】
AND回路83N-1は、その第2の入力に入力されたm桁の値と誤り信号Eとの成分ごとのAND演算を可能にする。誤り信号E=0である場合、AND回路83N-1は、m成分値0を出力する。誤り信号E=1である場合、AND回路83N-1は、その第2の入力に入力された値を出力する。
【0283】
誤り信号Eは、
-1バイト誤りまたは2バイト誤りが発生している場合には、値1を取り、
-誤りが発生していない場合には、値0を取る。
【0284】
制御信号stは、
-1バイト誤りが発生している場合には、値0を取り、
-2バイト誤りが発生している場合には、値1を取る。
【0285】
3つ以上のバイト誤りを訂正するための回路
図9は、1バイト誤り、2バイト誤り、…、tバイト誤りを訂正するための回路を示す。この回路では、図8で述べた要素を同様に使用することができる。
【0286】
図9に示される回路は、
-1バイト誤りがある場合には、1バイト誤りが訂正され、
-2バイト誤りがある場合には、2バイト誤りが訂正され、
-以下同様に、
-tバイト誤りがある場合には、tバイト誤りが訂正され、
-誤りがない場合には、訂正が行われない
ことを可能にする。
【0287】
例として、tバイト誤り訂正および(t+1)バイト誤り認識符号が使用される場合を述べる。ここで、特に、t>2が成り立つ。
【0288】
図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
を含む。
【0289】
制御信号stが値0を有するとき、マルチプレクサ920~92N-1の1つの0入力がその出力と接続される。それに対応して、対応する制御信号stが0~(t-1)の値を取ることによって、入力0~(t-1)の1つと出力との接続を確立することができる。例えば、st=(t-1)=3が成り立つ場合、マルチプレクサの第3の入力(2入力)が、その出力と接続される。
【0290】
ライン95は、成分s、sを伝送し、バイト誤り訂正値生成器810、…、81i、…、81N-1のそれぞれの入力と接続されている。
【0291】
ライン96は、成分s、s、s、sを伝送し、バイト訂正器530、…、53i、…、53N-1のそれぞれの入力と接続されている。
【0292】
最後に、ライン97が示されており、ライン97に基づいて、成分s、s、…、s2tが、バイト誤り訂正値生成器910、…、91i、…、91N-1のそれぞれの入力につながれている。
【0293】
バイト誤り訂正値生成器810は、バイト位置0での1バイト誤りの場合に、その出力で、誤っている第0のバイト
【数101】
に関する正しいバイト誤り訂正値を提供する。これは、さらなるバイト誤り訂正値生成器にも同様に当てはまる。したがって、バイト誤り訂正値生成器81iは、バイト位置iでの1バイト誤りの場合に、その出力で、誤っている第iのバイト
【数102】
に関する正しいバイト誤り訂正値を提供する。バイト誤り訂正値生成器81N-1は、バイト位置(N-1)での1バイト誤りの場合に、その出力で、誤っている第(N-1)のバイト
【数103】
に関する正しいバイト誤り訂正値を提供する。
【0294】
バイト訂正器530は、2バイト誤りの場合に、その出力で、誤っている第0のバイト
【数104】
に関する正しいバイト誤り訂正値を提供する。これは、さらなるバイト誤り訂正値生成器にも同様に当てはまる。したがって、バイト誤り訂正値生成器53iは、2バイト誤りの場合に、その出力で、誤っている第iのバイト
【数105】
に関する正しいバイト誤り訂正値を提供する。バイト誤り訂正値生成器53N-1は、2バイト誤りの場合に、その出力で、誤っている第(N-1)のバイト
【数106】
に関する正しいバイト誤り訂正値を提供する。
【0295】
バイト誤り訂正値生成器910は、tバイト誤りの場合に、その出力で、誤っている第0のバイト
【数107】
に関する正しいバイト誤り訂正値を提供する。これは、さらなるバイト誤り訂正値生成器にも同様に当てはまる。したがって、バイト誤り訂正値生成器91iは、tバイト誤りの場合に、その出力で、誤っている第iのバイト
【数108】
に関する正しいバイト誤り訂正値を提供する。バイト誤り訂正値生成器91N-1は、tバイト誤りの場合に、その出力で、誤っている第(N-1)のバイト
【数109】
に関する正しいバイト誤り訂正値を提供する。
【0296】
誤っていないバイトに関しては、それらのバイト位置に割り当てられたバイト誤り訂正値は、それぞれ値0でマスキングされている。
【0297】
バイト誤り訂正値生成器810の出力は、マルチプレクサ920の第1の入力(0入力)と接続されている。バイト訂正器530の出力は、マルチプレクサ920の第2の入力(1入力)と接続されている。それに対応して、バイト誤り訂正値生成器910の出力は、マルチプレクサ920の第tの入力((t-1)入力)と接続されている。
【0298】
AND回路930の第1の入力には、バイナリ誤り信号Eが入力される。マルチプレクサ920の出力は、AND回路930の第2の入力と接続されている。AND回路930の出力は、XOR回路940の第1の入力と接続されている。XOR回路940の第2の入力には、誤っている可能性があるバイト値
【数110】
が入力される。XOR回路940は、その出力で、訂正されたバイト値
【数111】
を提供する。
【0299】
AND回路930は、その第2の入力に入力されたm桁の値と誤り信号Eとの成分ごとのAND演算を可能にする。誤り信号E=0である場合、AND回路930は、m成分値0を出力する。誤り信号E=1である場合、AND回路930は、その第2の入力に入力された値を出力する。
【0300】
これらの実施形態は、残りのバイト位置にも同様に当てはまる。
【0301】
バイト誤り訂正値生成器81iの出力は、マルチプレクサ92iの第1の入力(0入力)と接続されている。バイト誤り訂正値生成器53iの出力は、マルチプレクサ92iの第2の入力(1入力)と接続されている。それに対応して、バイト誤り訂正値生成器91iの出力は、マルチプレクサ92iの第tの入力((t-1)入力)と接続されている。
【0302】
AND回路93iの第1の入力には、バイナリ誤り信号Eが入力される。マルチプレクサ92iの出力は、AND回路93iの第2の入力と接続されている。AND回路93iの出力は、XOR回路94iの第1の入力と接続されている。XOR回路94iの第2の入力には、誤っている可能性があるバイト
【数112】
が入力される。XOR回路94iは、その出力で、訂正されたバイト値
【数113】
を提供する。
【0303】
AND回路93iは、その第2の入力に入力されたm桁の値と誤り信号Eとの成分ごとのAND演算を可能にする。誤り信号E=0である場合、AND回路93iは、m成分値0を出力する。誤り信号E=1である場合、AND回路93iは、その第2の入力に入力された値を出力する。
【0304】
バイト誤り訂正値生成器81N-1の出力は、マルチプレクサ92N-1の第1の入力(0入力)と接続されている。バイト誤り訂正値生成器53N-1の出力は、マルチプレクサ92N-1の第2の入力(1入力)と接続されている。それに対応して、バイト誤り訂正値生成器91N-1の出力は、マルチプレクサ92N-1の第tの入力((t-1)入力)と接続されている。
【0305】
AND回路93N-1の第1の入力には、バイナリ誤り信号Eが入力される。マルチプレクサ92N-1の出力は、回路93N-1の第2の入力と接続されている。AND回路93N-1の出力は、XOR回路94N-1の第1の入力と接続されている。XOR回路94N-1の第2の入力には、誤っている可能性があるバイト値
【数114】
が入力される。XOR回路94N-1は、その出力で、訂正されたバイト値
【数115】
を提供する。
【0306】
AND回路93N-1は、その第2の入力に入力されたm桁の値と誤り信号Eとの成分ごとのAND演算を可能にする。誤り信号E=0である場合、AND回路93N-1は、m成分値0を出力する。誤り信号E=1である場合、AND回路93N-1は、その第2の入力に入力された値を出力する。
【0307】
誤り信号Eは、
-1バイト誤り、2バイト誤り、…、またはtバイト誤りが発生している場合には、値1を取り、
-誤りが発生していない場合には、値0を取る。
【0308】
制御信号stは、
-1バイト誤りが発生している場合には、値0を取り、
-2バイト誤りが発生している場合には、値1を取り、
-以下同様に、
-tバイト誤りが発生している場合には、値(t-1)
を取る。
【0309】
1バイト誤りに関するバイト誤り訂正器
図10は、図8に関連して説明したような、第iのバイトに関するバイト誤り訂正値生成器81iに関する例示的な回路を示す。
【0310】
バイト誤り訂正値生成器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と
を含む。
【0311】
さらに、図10には、図8(および図5)からのマルチプレクサ82iおよびバイト誤り訂正値生成器53iが示されている。
【0312】
定数乗算器101、XOR回路102、およびNOR回路103は、バイト誤り位置信号生成器105を形成し、例えば、第iのバイト位置に1バイト誤りがあるかどうかを示すバイト誤り位置信号
【数116】
を生成する働きをする。
【0313】
バイト位置iに1バイト誤りが発生している場合、AND回路104の出力で、m次元のバイト誤り訂正値a(i)corが提供される。1バイト誤りが、iとは異なる別のバイト位置jで発生している場合、バイト誤り位置信号BPs=0であり、したがって、AND回路104の出力でも値0になる。
【0314】
定数乗算器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の入力と接続されている。
【0315】
マルチプレクサ82iの第2の入力は、バイト誤り訂正値生成器53iの出力と接続されている。
【0316】
したがって、マルチプレクサ82iの第1の入力には、1バイト誤りに関するバイト誤り訂正値が提供され、マルチプレクサ82iの第2の入力には、2バイト誤りに関するバイト誤り訂正値が提供される。
【0317】
それに対応して、マルチプレクサ82iに関する制御信号stは、
-1バイト誤りがある場合には0であり、マルチプレクサ82iの第1の入力(0入力)をその出力と接続し、または
-2バイト誤りがある場合には1であり、マルチプレクサ82iの第2の入力(1入力)をその出力と接続する。
【0318】
誤りがない場合、制御信号stの値は任意である。例えば、例として以下に述べるように0に設定することができる。
【0319】
誤りがない場合、誤り信号Eの値は、0である。これは、図8に関連付けて前に説明した。マルチプレクサ82iの出力での信号を成分ごとに誤り信号Eと論理AND演算する下流に接続されたAND回路83iに基づいて、誤り信号E=0において(すなわち誤りがないとき)、マルチプレクサ82iの出力での信号には関係なくAND回路83iの出力で値0が提供されることが保証される。したがって、第iのバイトの訂正は行われない。
【0320】
誤り信号を決定するための回路
図11は、例えば図8に示される回路で使用されるような誤り信号Eを決定するための例示的な回路を示す。
【0321】
図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と
を含む。
【0322】
乗算器111の第1の入力には、成分sの値が入力される。乗算器111の第2の入力には、成分sの値が入力される。乗算器111の出力は、XOR回路113の第1の入力と接続されている。
【0323】
成分sは、OR回路116の入力にも入力される。OR回路116の出力は、OR回路115の第2の入力と接続されている。
【0324】
成分sは、自乗器112の入力に入力される。自乗器112の出力は、XOR回路113の第2の入力と接続されている。
【0325】
XOR回路113の出力は、OR回路114の入力と接続されており、OR回路114の出力は、OR回路115の第1の入力と接続されている。
【0326】
OR回路114の出力で、制御信号stが提供され、OR回路115の出力で誤り信号Eが提供される。
【0327】
制御信号stは、
【数117】
が成り立つ場合に値0を取る。
【0328】
それに対応して、制御信号stは、
【数118】
が成り立つ場合に値1を取る。
【0329】
誤り信号Eは、制御信号stが0である場合、および成分sの値が0である場合、値0を取る。この場合、1バイト誤りも2バイト誤りもない。
【0330】
制御信号stの値が1である場合、図8による回路において、バイト訂正器530~53N-1を使用して2バイト訂正が行われる。
【0331】
制御信号stの値が0である場合、図8による回路において、まず、バイト誤り訂正値生成器810~81N-1を使用して1バイト訂正が行われる。誤り信号Eが0であり、したがって1バイト誤りも2バイト誤りもない場合、AND回路830~83N-1が全て値0を出力し、したがって、バイト
【数119】
の訂正は行われない。
【0332】
3バイト誤りが認識される場合、例えば、誤り訂正を中断することができる。誤り訂正のそのような中断は、システムレベルで行うことができる。
【0333】
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演算を行う。
【0334】
乗算器121の第1の入力および乗算器123の第2の入力に、成分sの値が入力される。
【0335】
自乗器126の入力には、成分sの値が入力される。
【0336】
自乗器125の入力および乗算器122の第2の入力には、成分sの値が入力される。
【0337】
自乗器127の入力には、成分sの値が入力される。
【0338】
乗算器121の第2の入力および乗算器124の第1の入力には、成分sの値が入力される。
【0339】
乗算器121の出力は、XOR回路128の第1の入力と接続されている。自乗器125の出力は、XOR回路128の第2の入力と接続されている。XOR回路128の出力は、乗算器122の第1の入力と接続されている。乗算器122の出力は、XOR回路129の第1の入力と接続されている。
【0340】
自乗器127の出力は、乗算器123の第1の入力と接続されている。乗算器123の出力は、XOR回路1210の第1の入力と接続されている。
【0341】
自乗器126の出力は、乗算器124の第2の入力と接続されており、乗算器124の出力は、XOR回路1210の第2の入力と接続されている。XOR回路1210の出力は、XOR回路129の第2の入力と接続されている。XOR回路129の出力は、OR回路1211の入力と接続されており、OR回路1211の出力で信号Err3が提供され、信号Err3に基づいて、3バイト誤りを決定することができる。
【0342】
信号Err3は、
【数120】
が成り立つ場合には、値1を取る。
【0343】
それに対応して、信号Err3は、
【数121】
が成り立つ場合には、値0を取る。
【符号の説明】
【0344】
10、11、…、1i、…、1N-1 バイト誤り位置信号生成器
、s、s、s シンドローム成分
BPs0 バイト誤り位置信号
210 部分回路
220 定数乗算器
230 定数乗算器
240 XOR回路
250 NOR回路
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
【手続補正書】
【提出日】2024-01-22
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
複数のバイトを含むバイナリ列内の少なくとも1つのバイト誤りを識別するために、少なくとも2つのバイト誤り位置信号を並列して決定するための回路構成であって、
誤りがない場合の前記バイナリ列は、誤り符号の符号語であり、
前記バイト誤り位置信号と関連する前記バイナリ列のバイトが誤っているか否かを示すために、前記少なくとも2つのバイト誤り位置信号のそれぞれは、前記誤り符号の誤りシンドロームの成分を使用して決定可能であり、
前記回路構成は、少なくとも1つのバイト誤り訂正値を決定し、前記バイト誤り訂正値に基づいて、前記バイト誤り位置信号によって識別される誤っているバイト位置が訂正可能であるように構成され、
前記回路構成は、前記誤っているバイトに関して前記バイト誤り位置信号が前記バイト誤り訂正値と演算されることによって、前記バイト誤りの1つを訂正するように構成されていて、
前記回路構成は、それぞれのバイト位置に対応する複数のバイト誤り位置信号生成器を含み、各バイト誤り位置信号生成器は前記誤り符号の前記誤りシンドロームの成分に結合され、各バイト誤り位置信号生成器は前記それぞれのバイト位置に対して前記バイト誤り訂正値を出力する、回路構成。
【請求項2】
前記誤り符号の誤りシンドロームの成分を使用して前記バイト誤り位置信号を決定可能であり、前記バイト誤り位置信号が、前記バイナリ列の前記バイトのうちの少なくとも2つのバイトに関して訂正可能な誤りがあることを示すように構成されている、請求項1に記載の回路構成。
【請求項3】
前記誤り符号が、tバイト誤り訂正符号であり、少なくとも(t+1)個のバイト誤り位置信号が並列して決定され、ここでtは自然数である、請求項1または2に記載の回路構成。
【請求項4】
前記バイナリ列が2バイト誤りを有する、請求項1~3のいずれか一項に記載の回路構成。
【請求項5】
前記バイナリ列の各バイトがmビットを有し、ここでm≧2が成り立つ、請求項1~4のいずれか一項に記載の回路構成。
【請求項6】
前記誤り符号が、
tバイト誤り訂正符号であり、ここでtは自然数である、請求項1または2に記載の回路構成。
【請求項7】
前記バイナリ列が、少なくともt個の訂正可能なバイトを有する、請求項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)個のバイト誤り位置信号が並列して決定され、ここでtは自然数である、請求項13に記載の回路構成。
【請求項15】
前記誤り符号が、tバイト誤り訂正符号であり、少なくとも(t+1)個のバイト誤り訂正値が並列して決定され、ここでtは自然数である、請求項13または14に記載の回路構成。
【請求項16】
前記少なくとも(t+1)個のバイト誤り訂正値が、最大で3個のガロア体乗算器を使用して決定され、ここでt≧2である、請求項15に記載の回路構成。
【請求項17】
tバイト誤りを訂正するように構成されており、ここでtは自然数であり、t≧2が成り立つ、請求項12~16のいずれか一項に記載の回路構成。
【請求項18】
さらに、1バイト誤りを訂正するように構成されている、請求項17に記載の回路構成。
【請求項19】
さらに、τバイト誤りを訂正するように構成されており、ここで、t≧τ>2が成り立つ、請求項17または18に記載の回路構成。
【請求項20】
αはガロア体GF(2)の原始元であり、s、s、s、sは前記誤りシンドロームの成分であり、
2バイト誤りの場合に、第iのバイトが訂正可能なバイトであり、
前記第iのバイトに関する前記バイト誤り位置信号が、
【数1】
が成り立つ場合には、第1の値を取り、
前記第iのバイトに関する前記バイト誤り位置信号が、
【数2】
が成り立つ場合には、第2の値を取り、
前記第iのバイトに関連するバイト誤り位置信号が前記第1の値を取る場合には、前記第iのバイトが誤っている、
請求項12~19のいずれか一項に記載の回路構成。
【請求項21】
αはガロア体GF(2)の原始元であり、s、s、sは前記誤りシンドロームの成分であり、
2バイト誤りの場合に、第iのバイトの前記バイト誤り訂正値が、
【数3】
に従って決定される、請求項12~20のいずれか一項に記載の回路構成。
【請求項22】
2バイト誤りの場合に、訂正可能なバイトの前記訂正が、前記誤りシンドロームの3つの成分、およびバイト誤り位置信号に応じて決定される、請求項12~21のいずれか一項に記載の回路構成。
【請求項23】
複数のバイトを含むバイナリ列内の少なくとも1つのバイト誤りを識別するために、少なくとも2つのバイト誤り位置信号を並列して決定するための回路構成の方法であって、
誤りがない場合の前記バイナリ列は、誤り符号の符号語であり、
前記バイト誤り位置信号と関連する前記バイナリ列のバイトが誤っているか否かを示すために、前記少なくとも2つのバイト誤り位置信号それぞれは、前記誤り符号の誤りシンドロームの成分を使用して決定され、
前記方法は、少なくとも1つのバイト誤り訂正値を決定し、前記バイト誤り訂正値に基づいて、前記バイト誤り位置信号によって識別される誤っているバイト位置を訂正可能であり、
前記方法は、前記誤っているバイトに関して前記バイト誤り位置信号が前記バイト誤り訂正値と演算されることによって、前記バイト誤りの1つを訂正し、
前記回路構成は、それぞれのバイト位置に対応する複数のバイト誤り位置信号生成器を含み、各バイト誤り位置信号生成器は前記誤り符号の前記誤りシンドロームの成分に結合され、各バイト誤り位置信号生成器は前記それぞれのバイト位置に対して前記バイト誤り訂正値を出力する、方法。
【請求項24】
複数のバイトを含むバイナリ列内の少なくとも1つのバイト誤りを訂正するための回路構成の方法であって、誤りがない場合の前記バイナリ列は、誤り符号の符号語であり、前記方法が、
前記誤り符号の誤りシンドロームの成分を使用して少なくとも1つのバイト誤り位置信号を決定し、前記バイナリ列のバイトが誤っているか否かを前記バイト誤り位置信号によって決定可能である、ステップと、
少なくとも1つのバイト誤り訂正値を決定するステップであって、前記バイト誤り訂正値に基づいて、前記バイト誤り位置信号によって識別される誤っているバイト位置が訂正され、少なくとも1つの正しいバイトに関して前記バイト誤り訂正値の少なくとも1つが決定される、ステップと、
前記誤っているバイトに関して前記バイト誤り位置信号が前記バイト誤り訂正値と演算されることによって、前記バイト誤りの1つを訂正するステップとを含み、
前記回路構成は、それぞれのバイト位置に対応する複数のバイト誤り位置信号生成器を含み、各バイト誤り位置信号生成器は前記誤り符号の前記誤りシンドロームの成分に結合され、各バイト誤り位置信号生成器は前記それぞれのバイト位置に対して前記バイト誤り訂正値を出力する、方法。
【外国語明細書】