(57)【要約】【課題】  限られた数のバイトに生じる多重のバイト内複数スポッティバイト誤りを制御することができる機能を備えた誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置を提供する。【解決手段】  入力情報データを基に送信語を生成する符号化手段と、情報伝送路中で誤りが発生した送信語を受信語として入力して誤りを訂正または検出する復号手段とを備える誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置であって、符号化手段は、スポッティバイト誤り制御符号を表現するパリティ検査行列と、入力情報データとを基に生成した検査情報を入力情報データに付加することにより、送信語を生成し、復号手段は、パリティ検査行列を基に受信語のシンドロームを生成するシンドローム生成手段と、シンドローム生成手段により生成されたシンドロームを基に受信語の誤りを訂正または検出する誤り訂正手段とを備える。【選択図】  図１
2006244259.tif 000002
【特許請求の範囲】
【請求項１】
入力情報データを基に送信語を生成する符号化手段と、情報伝送路中で誤りが発生した前記送信語を受信語として入力して前記誤りを訂正または検出する復号手段とを備える誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置であって、
前記符号化手段は、スポッティバイト誤り制御符号を表現するパリティ検査行列と、前記入力情報データとを基に生成した検査情報を前記入力情報データに付加することにより、前記送信語を生成し、
前記復号手段は、前記パリティ検査行列を基に前記受信語のシンドロームを生成するシンドローム生成手段と、前記シンドローム生成手段により生成されたシンドロームを基に前記受信語の誤りを訂正または検出する誤り訂正手段とを備えることを特徴とする誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
【請求項２】
前記入力情報データが、ｂ（ｂは２以上の整数）ビットを１バイトとし、複数のバイトから構成される場合に、ここで、バイト内のｔビット（１≦ｔ≦ｂ）までの誤りをスポッティバイト誤りと称し、１バイト内に複数の前記スポッティバイト誤りが生じる誤りをバイト内複数スポッティバイト誤りと称することを前提とし、
前記パリティ検査行列で表現される前記スポッティバイト誤り制御符号は、ｐ１個のバイトに生じるμ１個のスポッティバイト誤りを訂正し、かつｐ２個のバイトに生じるμ２個のスポッティバイト誤りを検出する請求項１に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
【請求項３】
前記ｔ値、ｂ値、ｐ１値、ｐ２値、μ１値、μ２値を任意に設定し、ただし、ｐ１≦ｐ２及びμ１≦μ２が成立する請求項２に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
【請求項４】
前記情報伝送路は、情報通信システムである請求項１乃至請求項３のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
【請求項５】
前記情報伝送路は、メモリシステムである請求項１乃至請求項３のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
【請求項６】
前記情報伝送路は、バス線回路である請求項１乃至請求項３のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
【請求項７】
前記パリティ検査行列は、ｐ１個のバイトに生じるμ１個のスポッティバイト誤りを訂正し、かつｐ２個のバイトに生じるμ２個のスポッティバイト誤りを検出する機能を有する、誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号
2006244259.tif 000304
に用いる、Ｒ行Ｎ列を有する次の行列Ｈであり、
2006244259.tif 000305
ただし、Ｒ＝ｑ＋（ｐ１＋ｐ２−１）ｒ、Ｎ＝ｂｎ、０≦ｉ≦ｎ−１、ｎ＝２ｒ−１であり、行列Ｈ’は、Ｈ’＝［ｈ０’、ｈ１’、・・・、ｈｂ−１’］に示すｑ次の列ベクトルｈｊ’（０≦ｊ≦ｂ−１）から構成されるｑ行ｂ列（ｑ≦ｂ）の２元行列であり、（μ１＋μ２）ｔまたはｂのうちいずれか小さい値に等しいか大きい列が線形独立であり、（μ１＋μ２）ｔ≧ｂのとき、前記行列Ｈ’は単位行列を含む正則行列であり、（μ１＋μ２）ｔ＜ｂのとき、前記行列Ｈ’は最小ハミング距離（μ１＋μ２）ｔ＋１を有する符号の検査行列、すなわち、（μ１＋μ２）ｔビット誤り検出機能を有する（ｂ、ｂ−ｑ）符号のパリティ検査行列に等しくなり、また、行列Ｈ”は、Ｈ”＝［ｈ０”、ｈ１”、・・・、ｈｂ−１”］に示すｒ次の列ベクトルｈｊ”（０≦ｊ≦ｂ−１）から構成されるｒ行ｂ列（ｒ≦ｂ）の２元行列であり、
2006244259.tif 000306
またはｂのうちいずれか小さい値に等しいか大きい列が線形独立であり、ここで、
2006244259.tif 000307
はｘを超えない最大の整数を表し、また、
2006244259.tif 000308
のとき、前記行列Ｈ”は単位行列を含む正則行列であり、
2006244259.tif 000309
のとき、前記行列Ｈ”は最小ハミング距離
2006244259.tif 000310
を有する符号の検査行列、すなわち、
2006244259.tif 000311
ビット誤り検出機能を有する（ｂ、ｂ−ｒ）符号のパリティ検査行列に等しくなり、γはＧＦ(２)のｒ次の拡大体ＧＦ（２ｒ）の原始元であって、γｉＨ”＝［γｉｈ０”、γｉｈ１”、…、γｉｈｂ−１”］が成立するように構成される請求項２乃至請求項６のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
【請求項８】
前記パリティ検査行列は、ｐ１個のバイトに生じるμ１個のスポッティバイト誤りを訂正し、かつｐ２個のバイトに生じるμ２個のスポッティバイト誤りを検出する機能を有する、誤りバイト数を制限した伸長バイト内複数スポッティバイト誤り制御符号
2006244259.tif 000312
に用いる、Ｒ行Ｎ列を有する次の行列Ｈであり、
2006244259.tif 000313
ただし、ｒ’≧ｒであり、Ｒ＝ｑ＋（ｐ１＋ｐ２−１）ｒ’、Ｎ＝ｂ（ｎ＋１）＋ｒ’、０≦ｉ≦ｎ−１、ｎ＝２ｒ’−１であり、
2006244259.tif 000314
はｒ’次の単位行列で、
2006244259.tif 000315
は零行列であり、行列Ｈ’は、Ｈ’＝［ｈ０’、ｈ１’、・・・、ｈｂ−１’］に示すｑ次の列ベクトルｈｊ’（０≦ｊ≦ｂ−１）から構成されるｑ行ｂ列（ｑ≦ｂ）の２元行列であり、（μ１＋μ２）ｔまたはｂのうちいずれか小さい値に等しいか大きい列が線形独立であり、（μ１＋μ２）ｔ≧ｂのとき、前記行列Ｈ’は単位行列を含む正則行列であり、（μ１＋μ２）ｔ＜ｂのとき、前記行列Ｈ’は最小ハミング距離（μ１＋μ２）ｔ＋１を有する符号の検査行列、すなわち、（μ１＋μ２）ｔビット誤り検出機能を有する（ｂ、ｂ−ｑ）符号のパリティ検査行列に等しくなり、また、行列Ｈ”は、Ｈ”＝［ｈ０”、ｈ１”、・・・、ｈｂ−１”］に示すｒ次の列ベクトルｈｊ”（０≦ｊ≦ｂ−１）から構成されるｒ行ｂ列（ｒ≦ｂ）の２元行列であり、
2006244259.tif 000316
またはｂのうちいずれか小さい値に等しいか大きい列が線形独立であり、ここで、
2006244259.tif 000317
はｘを超えない最大の整数を表し、また、
2006244259.tif 000318
のとき、前記行列Ｈ”は単位行列を含む正則行列であり、
2006244259.tif 000319
のとき、前記行列Ｈ”は最小ハミング距離
2006244259.tif 000320
を有する符号の検査行列、すなわち、
2006244259.tif 000321
ビット誤り検出機能を有する（ｂ、ｂ−ｒ）符号のパリティ検査行列に等しくなり、γはＧＦ(２)のｒ’次の拡大体ＧＦ（２ｒ’）の原始元であって、γｉＨ”＝［γｉΦ（ｈ０”
）、γｉΦ（ｈ１” ）、・・・、γｉΦ（ｈｂ−１”
）］が成立するように構成され、ここで、Φは加法のもとでＧＦ（２ｒ）からＧＦ（２ｒ’）への単射準同型写像（injective homomorphism）であり、すなわち、Φ：ＧＦ（２ｒ）→ＧＦ（２ｒ’）である請求項２乃至請求項６のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
【請求項９】
前記パリティ検査行列は、ｐ１個のバイトに生じるμ１個のスポッティバイト誤りを訂正するとともに、ｐ２個のバイトに生じるμ２個のスポッティバイト誤りを検出し、かつ訂正能力を超えた１バイト誤りを検出する機能を有する、誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号
2006244259.tif 000322
に用いる、Ｒ行Ｎ列を有する次の行列Ｈであり、
2006244259.tif 000323
ただし、Ｒ＝ｂ＋（ｐ１＋ｐ２−１）ｒ、Ｎ＝ｂｎ、０≦ｉ≦ｎ−１、ｎ＝２ｒ−１、Ｉｂはｂ次の単位行列であり、行列Ｈ”は、Ｈ”＝［ｈ０”、ｈ１”、・・・、ｈｂ−１”］に示すｒ次の列ベクトルｈｊ”（０≦ｊ≦ｂ−１）から構成されるｒ行ｂ列（ｒ≦ｂ）の２元行列であり、
2006244259.tif 000324
またはｂのうちいずれか小さい値に等しいか大きい列が線形独立であり、ここで、
2006244259.tif 000325
はｘを超えない最大の整数を表し、ここで、
2006244259.tif 000326
のとき、前記行列Ｈ”は単位行列を含む正則行列であり、
2006244259.tif 000327
のとき、前記行列Ｈ”は最小ハミング距離
2006244259.tif 000328
を有する符号の検査行列、すなわち、
2006244259.tif 000329
ビット誤り検出機能を有する（ｂ、ｂ−ｒ）符号のパリティ検査行列に等しくなり、γはＧＦ(２)のｒ次の拡大体ＧＦ（２ｒ）の原始元であって、γｉＨ”＝［γｉｈ０”、γｉｈ１”、…、γｉｈｂ−１”］が成立するように構成される請求項２乃至請求項６のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
【請求項１０】
前記パリティ検査行列は、ｐ１個のバイトに生じるμ１個のスポッティバイト誤りを訂正するとともに、ｐ２個のバイトに生じるμ２個のスポッティバイト誤りを検出し、かつ訂正能力を超えた１バイト誤りを検出する機能を有する、誤りバイト数を制限した伸長バイト内複数スポッティバイト誤り制御符号
2006244259.tif 000330
に用いる、Ｒ行Ｎ列を有する次の行列Ｈであり、
2006244259.tif 000331
ただし、ｒ’≧ｒであり、Ｒ＝ｂ＋（ｐ１＋ｐ２−１）ｒ’、Ｎ＝ｂ（ｎ＋１）＋ｒ’、０≦ｉ≦ｎ−１、ｎ＝２ｒ’−１、Ｉｂはｂ次の単位行列であり、
2006244259.tif 000332
はｒ’次の単位行列で、
2006244259.tif 000333
は零行列であり、行列Ｈ”は、Ｈ”＝［ｈ０”、ｈ１”、・・・、ｈｂ−１”］に示すｒ次の列ベクトルｈｊ”（０≦ｊ≦ｂ−１）から構成されるｒ行ｂ列（ｒ≦ｂ）の２元行列であり、
ｔまたはｂのうちいずれか小さい値に等しいか大きい列が線形独立であり、ここで、
2006244259.tif 000334
はｘを超えない最大の整数を表し、ここで、
2006244259.tif 000335
のとき、前記行列Ｈ”は単位行列を含む正則行列であり、
2006244259.tif 000336
のとき、前記行列Ｈ”は最小ハミング距離
2006244259.tif 000337
を有する符号の検査行列、すなわち、
2006244259.tif 000338
ビット誤り検出機能を有する（ｂ、ｂ−ｒ）符号のパリティ検査行列に等しくなり、γはＧＦ(２)のｒ’次の拡大体ＧＦ（２ｒ’）の原始元であって、γｉＨ”＝［γｉΦ（ｈ０”
）、γｉΦ（ｈ１” ）、・・・、γｉΦ（ｈｂ−１”
）］が成立するように構成され、ここで、Φは加法のもとでＧＦ（２ｒ）からＧＦ（２ｒ’）への単射準同型写像（injective homomorphism）であり、すなわち、Φ：ＧＦ（２ｒ）→ＧＦ（２ｒ’）である請求項２乃至請求項６のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
【請求項１１】
前記誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号
2006244259.tif 000339
は、前記ｔ値を１に設定した場合（ｔ＝１）に、ｐ１個のバイトに生じるμ１個のランダムビット誤りを訂正し、かつｐ２個のバイトに生じるμ２個のランダムビット誤りを検出する機能を有する、誤りバイト数を制限したランダムビット誤り制御符号となる請求項７に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
【請求項１２】
前記誤りバイト数を制限した伸長バイト内複数スポッティバイト誤り制御符号
2006244259.tif 000340
は、前記ｔ値を１に設定した場合（ｔ＝１）に、ｐ１個のバイトに生じるμ１個のランダムビット誤りを訂正し、かつｐ２個のバイトに生じるμ２個のランダムビット誤りを検出する機能を有する、誤りバイト数を制限したランダムビット誤り制御符号となる請求項８に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
【請求項１３】
前記誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号
2006244259.tif 000341
は、前記ｔ値を１に設定した場合（ｔ＝１）に、ｐ１個のバイトに生じるμ１個のランダムビット誤りを訂正するとともに、ｐ２個のバイトに生じるμ２個のランダムビット誤りを検出し、かつ訂正能力を超えた１バイト誤りを検出する機能を有する、誤りバイト数を制限したランダムビット誤り制御符号となる請求項９に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
【請求項１４】
前記誤りバイト数を制限した伸長バイト内複数スポッティバイト誤り制御符号
2006244259.tif 000342
は、前記ｔ値を１に設定した場合（ｔ＝１）に、ｐ１個のバイトに生じるμ１個のランダムビット誤りを訂正するとともに、ｐ２個のバイトに生じるμ２個のランダムビット誤りを検出し、かつ訂正能力を超えた１バイト誤りを検出する機能を有する、誤りバイト数を制限したランダムビット誤り制御符号となる請求項１０に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
【請求項１５】
前記パリティ検査行列（Ｈ）は、
2006244259.tif 000343
とした場合に、前記行列Ｈ’及び前記行列Ｈ”は任意のｂ列が線形独立な行列となり、ｐ１バイト誤りを訂正するとともにｐ２バイト誤りを検出する機能を有するＲＳ符号のパリティ検査行列と一致する請求項７に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
【請求項１６】
前記パリティ検査行列（Ｈ）は、
2006244259.tif 000344
とした場合に、前記行列Ｈ’及び前記行列Ｈ”は任意のｂ列が線形独立な行列となり、ｐ１バイト誤りを訂正するとともにｐ２バイト誤りを検出する機能を有する２次伸長ＲＳ符号のパリティ検査行列と一致する請求項８に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
【請求項１７】
前記パリティ検査行列（Ｈ）は、
2006244259.tif 000345
とした場合に、前記行列Ｈ”は任意のｂ列が線形独立な行列となり、ｐ１バイト誤りを訂正するとともにｐ２バイト誤りを検出する機能を有するＲＳ符号のパリティ検査行列と一致する請求項９に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
【請求項１８】
前記パリティ検査行列（Ｈ）は、
2006244259.tif 000346
とした場合に、前記行列Ｈ”は任意のｂ列が線形独立な行列となり、ｐ１バイト誤りを訂正するとともにｐ２バイト誤りを検出する機能を有する２次伸長ＲＳ符号のパリティ検査行列と一致する請求項１０に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
【請求項１９】
前記誤り訂正手段は、前記シンドロームを基に前記受信語の何れのビットが誤っているかを検出するビット誤りポインタを生成し、生成された前記ビット誤りポインタを基に、誤りビットに該当する前記受信語のビット値を反転させることにより、前記受信語の誤りを訂正し、また、前記受信語のビット誤りを訂正できないことを検出した場合に、訂正不可能誤り検出信号を出力する請求項１乃至請求項１８のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
【請求項２０】
前記誤り訂正手段は、Ｈ’復号手段と、Ｈ”乗算手段と、ＧＦ（２ｒ）上の並列復号手段と、ＧＦ（２ｂ）上の誤り生成手段と、反転手段とから構成される請求項７乃至請求項請求項１８のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
【請求項２１】
前記Ｈ’復号手段は、前記シンドローム生成手段で生成された前記シンドロームの上位ｑビットを基にして、バイトごとの誤りの和（ｅＡ）を生成し、
前記Ｈ”乗算手段は、前記Ｈ’復号手段で生成された前記バイトごとの誤りの和（ｅＡ）を基にして、前記バイトごとの誤りの和（ｅＡ）とＨ”の転置行列の積を生成し、
前記ＧＦ（２ｒ）上の並列復号手段は、前記Ｈ”乗算手段で生成された前記バイトごとの誤りの和（ｅＡ）とＨ”の転置行列の積、及び前記シンドローム生成手段で生成された前記シンドロームの上位ｑビットを除く残りの下位ビットを基にして、ＧＦ（２ｒ）上のビット誤りポインタ、及びＧＦ（２ｒ）上の並列復号において誤り訂正が不可能とみなされたときに出力される第１の訂正不可能誤り検出信号を生成し、
前記ＧＦ（２ｂ）上の誤り生成手段は、前記Ｈ’復号手段で生成された前記バイトごとの誤りの和（ｅＡ）、及び、前記ＧＦ（２ｒ）上の並列復号手段で生成された前記ＧＦ（２ｒ）上のビット誤りポインタを基にして、ＧＦ（２ｂ）上のビット誤りポインタ、及び誤り訂正が不可能とみなされたときに出力される第２の訂正不可能誤り検出信号を生成し、
前記反転手段は、前記ＧＦ（２ｂ）上の誤り生成手段で生成された前記ＧＦ（２ｂ）上のビット誤りポインタを基にして、前記ＧＦ（２ｂ）上のビット誤りポインタに対応した前記受信語のビット値を反転させることにより、前記受信語の誤りを訂正する請求項２０に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
【請求項２２】
前記誤り訂正手段では、前記ＧＦ（２ｒ）上の並列復号手段で生成された前記第１の訂正不可能誤り検出信号と、前記ＧＦ（２ｂ）上の誤り生成手段で生成された前記第２の訂正不可能誤り検出信号の論理和をとることにより、訂正能力を超えた誤りを検出したことを示す第３の訂正不可能誤り検出信号を出力する請求項２１に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
【請求項２３】
前記ＧＦ（２ｂ）上の誤り生成手段は、
前記ＧＦ（２ｒ）上のビット誤りポインタ（ｅ’）の１バイトから、復号結果ビット誤りポインタ
2006244259.tif 000347
の１バイト及びｉバイトにおける検出信号を出力するｔビット誤り訂正復号手段と、
入力された複数の前記ｉバイトにおける検出信号の重みの数だけを出力の上位ビットから１を連続して出力する多入力ソート手段と、
誤訂正判定を行い、前記ＧＦ（２ｂ）上のビット誤りポインタ（ｅ）の１バイトを出力するｉバイトにおける誤訂正判定手段と、
を備えた請求項２１又は請求項２２に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
【請求項２４】
前記ＧＦ（２ｂ）上の誤り生成手段は、ｔビット誤り訂正復号手段と、多入力ソート手段と、ｉバイトにおける誤訂正判定手段とを備えており、
前記ｔビット誤り訂正復号手段は、前記ＧＦ（２ｒ）上のビット誤りポインタ（ｅ’）の所定の１バイトを入力とし、復号結果ビット誤りポインタ
2006244259.tif 000348
の前記所定の１バイトに対応する１バイトを前記ｉバイトにおける誤訂正判定手段に出力するとともに、訂正能力をこえた誤りを検出する信号であるｉバイトにおける検出信号を前記多入力ソート手段と前記ｉバイトにおける誤訂正判定手段に出力する手段であり、
前記多入力ソート手段は、入力される複数の前記ｉバイトにおける検出信号の重み（１の数）を数え、その重みの数だけを出力の上位ビットから１を連続して出力する手段であり、
前記ｉバイトにおける誤訂正判定手段は、すべてのバイトの前記ｔビット誤り訂正復号手段から出力される前記復号結果ビット誤りポインタ
2006244259.tif 000349
、前記ｉバイトにおける検出信号、及び前記バイトごとの誤りの和（ｅＡ）を入力とし、誤訂正判定を行い、前記ＧＦ（２ｂ）上のビット誤りポインタ（ｅ）の１バイトを出力する手段である請求項２１又は請求項２２に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
【請求項２５】
前記ＧＦ（２ｂ）上の誤り生成手段では、前記多入力ソート手段から出力された信号において、その上位２ビット目の信号を前記第２の訂正不可能誤り検出信号として出力し、また、前記ｉバイトにおける誤訂正判定手段から出力された信号を集め、符号ビット長のビット数を有する前記ＧＦ（２ｂ）上のビット誤りポインタを出力する請求項２３又は請求項２４に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
【請求項２６】
前記ｉバイトにおける誤訂正判定手段では、前記誤訂正判定が次の誤訂正判定数式によって行われ、
2006244259.tif 000350
ただし、
2006244259.tif 000351
で定義され、スポッティバイト誤りの個数を表し、
2006244259.tif 000352
はベクトルｅｉにおけるガロア体ＧＦ（２）上のハミング重みであり、
前記誤訂正数式が成立している場合に、
2006244259.tif 000353
となり誤訂正はされていないと判定され、前記誤訂正数式が成立していない場合に、
2006244259.tif 000354
となり誤訂正はされていると判定されるようにする請求項２５に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
【請求項２７】
2006244259.tif 000355
2006244259.tif 000356
に対しては、
前記Ｈ”乗算手段にＳI以外のシンドロームを新たに入力し、ＳI≠０かつＳI以外のシンドロームが０の場合に、検出信号を出力し、
また、前記ＧＦ（２ｂ）上の誤り生成手段にＳIを新たに入力し、前記ＧＦ（２ｂ）上の誤り生成手段において、ＧＦ（２ｒ）上の誤りｅ’において誤りバイト数が１かどうかを調べ、前記多入力ソート手段を用いてＳIのハミング重みがμ１ｔより大きいかどうかを調べることにより、前記復号手段を構成する請求項２６に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
【請求項２８】
入力情報データを基に送信語を生成する符号化処理ステップと、情報伝送路中で誤りが発生した前記送信語を受信語として入力して前記誤りを訂正または検出する復号処理ステップとを有する誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法であって、
前記符号化処理ステップは、スポッティバイト誤り制御符号を表現するパリティ検査行列と、前記入力情報データとを基に生成した検査情報を前記入力情報データに付加することにより、前記送信語を生成し、
前記復号処理ステップは、前記パリティ検査行列を基に前記受信語のシンドロームを生成するシンドローム生成処理ステップと、前記シンドローム生成処理ステップにより生成されたシンドロームを基に前記受信語の誤りを訂正または検出する誤り訂正処理ステップとを有することを特徴とする誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
【請求項２９】
前記入力情報データが、ｂ（ｂは２以上の整数）ビットを１バイトとし、複数のバイトから構成される場合に、ここで、バイト内のｔビット（１≦ｔ≦ｂ）までの誤りをスポッティバイト誤りと称し、１バイト内に複数の前記スポッティバイト誤りが生じる誤りをバイト内複数スポッティバイト誤りと称することを前提とし、
前記パリティ検査行列で表現される前記スポッティバイト誤り制御符号は、ｐ１個のバイトに生じるμ１個のスポッティバイト誤りを訂正し、かつｐ２個のバイトに生じるμ２個のスポッティバイト誤りを検出する請求項２８に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
【請求項３０】
前記ｔ値、ｂ値、ｐ１値、ｐ２値、μ１値、μ２値を任意に設定し、ただし、ｐ１≦ｐ２及びμ１≦μ２が成立する請求項２９に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
【請求項３１】
前記情報伝送路は、情報通信システムである請求項２８乃至請求項３０のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
【請求項３２】
前記情報伝送路は、メモリシステムである請求項２８乃至請求項３０のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
【請求項３３】
前記情報伝送路は、バス線回路である請求項２８乃至請求項３０のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
【請求項３４】
前記パリティ検査行列は、ｐ１個のバイトに生じるμ１個のスポッティバイト誤りを訂正し、かつｐ２個のバイトに生じるμ２個のスポッティバイト誤りを検出する機能を有する、誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号
2006244259.tif 000357
に用いる、Ｒ行Ｎ列を有する次の行列Ｈであり、
2006244259.tif 000358
ただし、Ｒ＝ｑ＋（ｐ１＋ｐ２−１）ｒ、Ｎ＝ｂｎ、０≦ｉ≦ｎ−１、ｎ＝２ｒ−１であり、行列Ｈ’は、Ｈ’＝［ｈ０’、ｈ１’、・・・、ｈｂ−１’］に示すｑ次の列ベクトルｈｊ’（０≦ｊ≦ｂ−１）から構成されるｑ行ｂ列（ｑ≦ｂ）の２元行列であり、（μ１＋μ２）ｔまたはｂのうちいずれか小さい値に等しいか大きい列が線形独立であり、（μ１＋μ２）ｔ≧ｂのとき、前記行列Ｈ’は単位行列を含む正則行列であり、（μ１＋μ２）ｔ＜ｂのとき、前記行列Ｈ’は最小ハミング距離（μ１＋μ２）ｔ＋１を有する符号の検査行列、すなわち、（μ１＋μ２）ｔビット誤り検出機能を有する（ｂ、ｂ−ｑ）符号のパリティ検査行列に等しくなり、また、行列Ｈ”は、Ｈ”＝［ｈ０”、ｈ１”、・・・、ｈｂ−１”］に示すｒ次の列ベクトルｈｊ”（０≦ｊ≦ｂ−１）から構成されるｒ行ｂ列（ｒ≦ｂ）の２元行列であり、
2006244259.tif 000359
またはｂのうちいずれか小さい値に等しいか大きい列が線形独立であり、ここで、
2006244259.tif 000360
はｘを超えない最大の整数を表し、また、
2006244259.tif 000361
のとき、前記行列Ｈ”は単位行列を含む正則行列であり、
2006244259.tif 000362
のとき、前記行列Ｈ”は最小ハミング距離
2006244259.tif 000363
を有する符号の検査行列、すなわち、
2006244259.tif 000364
ビット誤り検出機能を有する（ｂ、ｂ−ｒ）符号のパリティ検査行列に等しくなり、γはＧＦ(２)のｒ次の拡大体ＧＦ（２ｒ）の原始元であって、γｉＨ”＝［γｉｈ０”、γｉｈ１”、…、γｉｈｂ−１”］が成立するように構成される請求項２９乃至請求項３３のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
【請求項３５】
前記パリティ検査行列は、ｐ１個のバイトに生じるμ１個のスポッティバイト誤りを訂正し、かつｐ２個のバイトに生じるμ２個のスポッティバイト誤りを検出する機能を有する、誤りバイト数を制限した伸長バイト内複数スポッティバイト誤り制御符号
2006244259.tif 000365
に用いる、Ｒ行Ｎ列を有する次の行列Ｈであり、
2006244259.tif 000366
ただし、ｒ’≧ｒであり、Ｒ＝ｑ＋（ｐ１＋ｐ２−１）ｒ’、Ｎ＝ｂ（ｎ＋１）＋ｒ’、０≦ｉ≦ｎ−１、ｎ＝２ｒ’−１であり、
2006244259.tif 000367
はｒ’次の単位行列で、
2006244259.tif 000368
は零行列であり、行列Ｈ’は、Ｈ’＝［ｈ０’、ｈ１’、・・・、ｈｂ−１’］に示すｑ次の列ベクトルｈｊ’（０≦ｊ≦ｂ−１）から構成されるｑ行ｂ列（ｑ≦ｂ）の２元行列であり、（μ１＋μ２）ｔまたはｂのうちいずれか小さい値に等しいか大きい列が線形独立であり、（μ１＋μ２）ｔ≧ｂのとき、前記行列Ｈ’は単位行列を含む正則行列であり、（μ１＋μ２）ｔ＜ｂのとき、前記行列Ｈ’は最小ハミング距離（μ１＋μ２）ｔ＋１を有する符号の検査行列、すなわち、（μ１＋μ２）ｔビット誤り検出機能を有する（ｂ、ｂ−ｑ）符号のパリティ検査行列に等しくなり、また、行列Ｈ”は、Ｈ”＝［ｈ０”、ｈ１”、・・・、ｈｂ−１”］に示すｒ次の列ベクトルｈｊ”（０≦ｊ≦ｂ−１）から構成されるｒ行ｂ列（ｒ≦ｂ）の２元行列であり、
2006244259.tif 000369
またはｂのうちいずれか小さい値に等しいか大きい列が線形独立であり、ここで、
2006244259.tif 000370
はｘを超えない最大の整数を表し、また、
2006244259.tif 000371
のとき、前記行列Ｈ”は単位行列を含む正則行列であり、
2006244259.tif 000372
のとき、前記行列Ｈ”は最小ハミング距離
2006244259.tif 000373
を有する符号の検査行列、すなわち、
2006244259.tif 000374
ビット誤り検出機能を有する（ｂ、ｂ−ｒ）符号のパリティ検査行列に等しくなり、γはＧＦ(２)のｒ’次の拡大体ＧＦ（２ｒ’）の原始元であって、γｉＨ”＝［γｉΦ（ｈ０”
）、γｉΦ（ｈ１” ）、・・・、γｉΦ（ｈｂ−１”
）］が成立するように構成され、ここで、Φは加法のもとでＧＦ（２ｒ）からＧＦ（２ｒ’）への単射準同型写像（injective homomorphism）であり、すなわち、Φ：ＧＦ（２ｒ）→ＧＦ（２ｒ’）である請求項２９乃至請求項３３のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
【請求項３６】
前記パリティ検査行列は、ｐ１個のバイトに生じるμ１個のスポッティバイト誤りを訂正するとともに、ｐ２個のバイトに生じるμ２個のスポッティバイト誤りを検出し、かつ訂正能力を超えた１バイト誤りを検出する機能を有する、誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号
2006244259.tif 000375
に用いる、Ｒ行Ｎ列を有する次の行列Ｈであり、
2006244259.tif 000376
ただし、Ｒ＝ｂ＋（ｐ１＋ｐ２−１）ｒ、Ｎ＝ｂｎ、０≦ｉ≦ｎ−１、ｎ＝２ｒ−１、Ｉｂはｂ次の単位行列であり、行列Ｈ”は、Ｈ”＝［ｈ０”、ｈ１”、・・・、ｈｂ−１”］に示すｒ次の列ベクトルｈｊ”（０≦ｊ≦ｂ−１）から構成されるｒ行ｂ列（ｒ≦ｂ）の２元行列であり、
2006244259.tif 000377
またはｂのうちいずれか小さい値に等しいか大きい列が線形独立であり、ここで、
2006244259.tif 000378
はｘを超えない最大の整数を表し、ここで、
2006244259.tif 000379
のとき、前記行列Ｈ”は単位行列を含む正則行列であり、
2006244259.tif 000380
のとき、前記行列Ｈ”は最小ハミング距離
2006244259.tif 000381
を有する符号の検査行列、すなわち、
2006244259.tif 000382
ビット誤り検出機能を有する（ｂ、ｂ−ｒ）符号のパリティ検査行列に等しくなり、γはＧＦ(２)のｒ次の拡大体ＧＦ（２ｒ）の原始元であって、γｉＨ”＝［γｉｈ０”、γｉｈ１”、…、γｉｈｂ−１”］が成立するように構成される請求項２９乃至請求項３３のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
【請求項３７】
前記パリティ検査行列は、ｐ１個のバイトに生じるμ１個のスポッティバイト誤りを訂正するとともに、ｐ２個のバイトに生じるμ２個のスポッティバイト誤りを検出し、かつ訂正能力を超えた１バイト誤りを検出する機能を有する、誤りバイト数を制限した伸長バイト内複数スポッティバイト誤り制御符号
2006244259.tif 000383
に用いる、Ｒ行Ｎ列を有する次の行列Ｈであり、
2006244259.tif 000384
ただし、ｒ’≧ｒであり、Ｒ＝ｂ＋（ｐ１＋ｐ２−１）ｒ’、Ｎ＝ｂ（ｎ＋１）＋ｒ’、０≦ｉ≦ｎ−１、ｎ＝２ｒ’−１、Ｉｂはｂ次の単位行列であり、
2006244259.tif 000385
はｒ’次の単位行列で、
2006244259.tif 000386
は零行列であり、行列Ｈ”は、Ｈ”＝［ｈ０”、ｈ１”、・・・、ｈｂ−１”］に示すｒ次の列ベクトルｈｊ”（０≦ｊ≦ｂ−１）から構成されるｒ行ｂ列（ｒ≦ｂ）の２元行列であり、
ｔまたはｂのうちいずれか小さい値に等しいか大きい列が線形独立であり、ここで、
2006244259.tif 000387
はｘを超えない最大の整数を表し、ここで、
2006244259.tif 000388
のとき、前記行列Ｈ”は単位行列を含む正則行列であり、
2006244259.tif 000389
のとき、前記行列Ｈ”は最小ハミング距離
2006244259.tif 000390
を有する符号の検査行列、すなわち、
2006244259.tif 000391
ビット誤り検出機能を有する（ｂ、ｂ−ｒ）符号のパリティ検査行列に等しくなり、γはＧＦ(２)のｒ’次の拡大体ＧＦ（２ｒ’）の原始元であって、γｉＨ”＝［γｉΦ（ｈ０”
）、γｉΦ（ｈ１” ）、・・・、γｉΦ（ｈｂ−１”
）］が成立するように構成され、ここで、Φは加法のもとでＧＦ（２ｒ）からＧＦ（２ｒ’）への単射準同型写像（injective homomorphism）であり、すなわち、Φ：ＧＦ（２ｒ）→ＧＦ（２ｒ’）である請求項２９乃至請求項３３のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
【請求項３８】
前記誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号
2006244259.tif 000392
は、前記ｔ値を１に設定した場合（ｔ＝１）に、ｐ１個のバイトに生じるμ１個のランダムビット誤りを訂正し、かつｐ２個のバイトに生じるμ２個のランダムビット誤りを検出する機能を有する、誤りバイト数を制限したランダムビット誤り制御符号となる請求項３４に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
【請求項３９】
前記誤りバイト数を制限した伸長バイト内複数スポッティバイト誤り制御符号
2006244259.tif 000393
は、前記ｔ値を１に設定した場合（ｔ＝１）に、ｐ１個のバイトに生じるμ１個のランダムビット誤りを訂正し、かつｐ２個のバイトに生じるμ２個のランダムビット誤りを検出する機能を有する、誤りバイト数を制限したランダムビット誤り制御符号となる請求項３５に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
【請求項４０】
前記誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号
2006244259.tif 000394
は、前記ｔ値を１に設定した場合（ｔ＝１）に、ｐ１個のバイトに生じるμ１個のランダムビット誤りを訂正するとともに、ｐ２個のバイトに生じるμ２個のランダムビット誤りを検出し、かつ訂正能力を超えた１バイト誤りを検出する機能を有する、誤りバイト数を制限したランダムビット誤り制御符号となる請求項３６に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
【請求項４１】
前記誤りバイト数を制限した伸長バイト内複数スポッティバイト誤り制御符号
2006244259.tif 000395
は、前記ｔ値を１に設定した場合（ｔ＝１）に、ｐ１個のバイトに生じるμ１個のランダムビット誤りを訂正するとともに、ｐ２個のバイトに生じるμ２個のランダムビット誤りを検出し、かつ訂正能力を超えた１バイト誤りを検出する機能を有する、誤りバイト数を制限したランダムビット誤り制御符号となる請求項３７に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
【請求項４２】
前記パリティ検査行列（Ｈ）は、
2006244259.tif 000396
とした場合に、前記行列Ｈ’及び前記行列Ｈ”は任意のｂ列が線形独立な行列となり、ｐ１バイト誤りを訂正するとともにｐ２バイト誤りを検出する機能を有するＲＳ符号のパリティ検査行列と一致する請求項３４に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
【請求項４３】
前記パリティ検査行列（Ｈ）は、
2006244259.tif 000397
とした場合に、前記行列Ｈ’及び前記行列Ｈ”は任意のｂ列が線形独立な行列となり、ｐ１バイト誤りを訂正するとともにｐ２バイト誤りを検出する機能を有する２次伸長ＲＳ符号のパリティ検査行列と一致する請求項３５に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
【請求項４４】
前記パリティ検査行列（Ｈ）は、
2006244259.tif 000398
とした場合に、前記行列Ｈ”は任意のｂ列が線形独立な行列となり、ｐ１バイト誤りを訂正するとともにｐ２バイト誤りを検出する機能を有するＲＳ符号のパリティ検査行列と一致する請求項３６に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
【請求項４５】
前記パリティ検査行列（Ｈ）は、
2006244259.tif 000399
とした場合に、前記行列Ｈ”は任意のｂ列が線形独立な行列となり、ｐ１バイト誤りを訂正するとともにｐ２バイト誤りを検出する機能を有する２次伸長ＲＳ符号のパリティ検査行列と一致する請求項３７に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
【請求項４６】
前記誤り訂正処理ステップは、前記シンドロームを基に前記受信語の何れのビットが誤っているかを検出するビット誤りポインタを生成し、生成された前記ビット誤りポインタを基に、誤りビットに該当する前記受信語のビット値を反転させることにより、前記受信語の誤りを訂正し、また、前記受信語のビット誤りを訂正できないことを検出した場合に、訂正不可能誤り検出信号を出力する請求項２８乃至請求項４５のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
【請求項４７】
前記誤り訂正処理ステップは、Ｈ’復号処理ステップと、Ｈ”乗算処理ステップと、ＧＦ（２ｒ）上の並列復号処理ステップと、ＧＦ（２ｂ）上の誤り生成処理ステップと、反転処理ステップとを有する請求項３４乃至請求項請求項４５のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
【請求項４８】
前記Ｈ’復号処理ステップは、前記シンドローム生成処理ステップで生成された前記シンドロームの上位ｑビットを基にして、バイトごとの誤りの和（ｅＡ）を生成し、
前記Ｈ”乗算処理ステップは、前記Ｈ’復号処理ステップで生成された前記バイトごとの誤りの和（ｅＡ）を基にして、前記バイトごとの誤りの和（ｅＡ）とＨ”の転置行列の積を生成し、
前記ＧＦ（２ｒ）上の並列復号処理ステップは、前記Ｈ”乗算処理ステップで生成された前記バイトごとの誤りの和（ｅＡ）とＨ”の転置行列の積、及び前記シンドローム生成処理ステップで生成された前記シンドロームの上位ｑビットを除く残りの下位ビットを基にして、ＧＦ（２ｒ）上のビット誤りポインタ、及びＧＦ（２ｒ）上の並列復号において誤り訂正が不可能とみなされたときに出力される第１の訂正不可能誤り検出信号を生成し、
前記ＧＦ（２ｂ）上の誤り生成処理ステップは、前記Ｈ’復号処理ステップで生成された前記バイトごとの誤りの和（ｅＡ）、及び、前記ＧＦ（２ｒ）上の並列復号処理ステップで生成された前記ＧＦ（２ｒ）上のビット誤りポインタを基にして、ＧＦ（２ｂ）上のビット誤りポインタ、及び誤り訂正が不可能とみなされたときに出力される第２の訂正不可能誤り検出信号を生成し、
前記反転処理ステップは、前記ＧＦ（２ｂ）上の誤り生成処理ステップで生成された前記ＧＦ（２ｂ）上のビット誤りポインタを基にして、前記ＧＦ（２ｂ）上のビット誤りポインタに対応した前記受信語のビット値を反転させることにより、前記受信語の誤りを訂正する請求項４７に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
【請求項４９】
前記誤り訂正処理ステップでは、前記ＧＦ（２ｒ）上の並列復号処理ステップで生成された前記第１の訂正不可能誤り検出信号と、前記ＧＦ（２ｂ）上の誤り生成処理ステップで生成された前記第２の訂正不可能誤り検出信号の論理和をとることにより、訂正能力を超えた誤りを検出したことを示す第３の訂正不可能誤り検出信号を出力する請求項４８に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
【請求項５０】
前記ＧＦ（２ｂ）上の誤り生成処理ステップは、
前記ＧＦ（２ｒ）上のビット誤りポインタ（ｅ’）の１バイトから、復号結果ビット誤りポインタ
2006244259.tif 000400
の１バイト及びｉバイトにおける検出信号を出力するｔビット誤り訂正復号処理ステップと、
入力された複数の前記ｉバイトにおける検出信号の重みの数だけを出力の上位ビットから１を連続して出力する多入力ソート処理ステップと、
誤訂正判定を行い、前記ＧＦ（２ｂ）上のビット誤りポインタ（ｅ）の１バイトを出力するｉバイトにおける誤訂正判定処理ステップと、
を有する請求項４８又は請求項４９に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
【請求項５１】
前記ＧＦ（２ｂ）上の誤り生成処理ステップは、ｔビット誤り訂正復号処理ステップと、多入力ソート処理ステップと、ｉバイトにおける誤訂正判定処理ステップとを有し、
前記ｔビット誤り訂正復号処理ステップは、前記ＧＦ（２ｒ）上のビット誤りポインタ（ｅ’）の所定の１バイトを入力とし、復号結果ビット誤りポインタ
2006244259.tif 000401
の前記所定の１バイトに対応する１バイトを前記ｉバイトにおける誤訂正判定処理ステップに出力するとともに、訂正能力をこえた誤りを検出する信号であるｉバイトにおける検出信号を前記多入力ソート処理ステップと前記ｉバイトにおける誤訂正判定処理ステップに出力し、
前記多入力ソート処理ステップは、入力される複数の前記ｉバイトにおける検出信号の重み（１の数）を数え、その重みの数だけを出力の上位ビットから１を連続して出力し、
前記ｉバイトにおける誤訂正判定処理ステップは、すべてのバイトの前記ｔビット誤り訂正復号処理ステップから出力される前記復号結果ビット誤りポインタ
2006244259.tif 000402
、前記ｉバイトにおける検出信号、及び前記バイトごとの誤りの和（ｅＡ）を入力とし、誤訂正判定を行い、前記ＧＦ（２ｂ）上のビット誤りポインタ（ｅ）の１バイトを出力する請求項４８又は請求項４９に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
【請求項５２】
前記ＧＦ（２ｂ）上の誤り生成処理ステップでは、前記多入力ソート処理ステップから出力された信号において、その上位２ビット目の信号を前記第２の訂正不可能誤り検出信号として出力し、また、前記ｉバイトにおける誤訂正判定処理ステップから出力された信号を集め、符号ビット長のビット数を有する前記ＧＦ（２ｂ）上のビット誤りポインタを出力する請求項５０又は請求項５１に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
【請求項５３】
前記ｉバイトにおける誤訂正判定処理ステップでは、前記誤訂正判定が次の誤訂正判定数式によって行われ、
2006244259.tif 000403
ただし、
2006244259.tif 000404
で定義され、スポッティバイト誤りの個数を表し、
2006244259.tif 000405
はベクトルｅｉにおけるガロア体ＧＦ（２）上のハミング重みであり、
前記誤訂正数式が成立している場合に、
2006244259.tif 000406
となり誤訂正はされていないと判定され、前記誤訂正数式が成立していない場合に、
2006244259.tif 000407
となり誤訂正はされていると判定されるようにする請求項５２に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
【請求項５４】
2006244259.tif 000408
2006244259.tif 000409
に対しては、
前記Ｈ”乗算処理ステップにＳI以外のシンドロームを新たに入力し、ＳI≠０かつＳI以外のシンドロームが０の場合に、検出信号を出力し、
また、前記ＧＦ（２ｂ）上の誤り生成処理ステップにＳIを新たに入力し、前記ＧＦ（２ｂ）上の誤り生成処理ステップにおいて、ＧＦ（２ｒ）上の誤りｅ’において誤りバイト数が１かどうかを調べ、前記多入力ソート処理ステップでＳIのハミング重みがμ１ｔより大きいかどうかを調べることにより、復号処理を行う請求項５３に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スポッティバイト誤り訂正・検出方法及び装置に関し、より詳しくは、複数のビットをバイトとし、その複数のバイトから構成される語（ワード）に対して、１バイト内に複数のスポッティバイト誤りが生じる誤りを『バイト内複数スポッティバイト誤り』と称し、そのバイト内複数スポッティバイト誤りが制限された数のバイトに生じている場合に、その誤り、つまり、『誤りバイト数を制限したバイト内複数スポッティバイト誤り』を検出または訂正するために用いて好適な、誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置に関する。
【背景技術】
【０００２】
近年、情報化社会の進展や半導体技術の進歩等により、ディジタルデータの信頼性向上がますます重要なものになってきている。ディジタルデータの伝送または記録を正確に行おうとする場合、送信データが伝送経路中でノイズ等の影響を受けて誤って伝送されたり、素子の故障、あるいは記録媒体等の欠陥等により生じた誤りを検出・訂正する必要がある。この誤りの検出・訂正を実現するために、符号理論を基礎とした誤り訂正・検出符号が従来より種々に開発されてきている。
【０００３】
従来の誤り訂正符号として、例えば、ｂビット（ｂは２以上の整数）の塊りをバイトと称し、１バイト中の任意の誤りを訂正する符号（ＳｂＥＣ符号と称する）として優れたHong-Patel符号が開示されている（例えば、非特許文献１参照）。
【０００４】
また、高速半導体メモリシステムにおいて、従来最もよく使用された１ビット誤り訂正・２ビット誤り検出符号を包含する特徴を有した奇数重み列バイト誤り訂正符号が開示されている（例えば、非特許文献２参照）。
【０００５】
さらに、１バイト誤りを訂正し、また２バイト誤りを検出する符号（ＳｂＥＣ＿ＤｂＥＤ符号と称する）は、リードソロモン符号（Reed-Solomon符号）、及びその改良した効率のよい符号として提案されており、多くの計算機システム等の主記憶装置にすでに採用されている（例えば、非特許文献３や非特許文献４参照）。
【０００６】
また、バイト誤りを検出する符号としては、１ビット誤りを訂正し、かつ２ビット誤りを検出するとともに、１バイトの誤りをも検出する符号（ＳＥＣ−ＤＥＤ−ＳｂＥＤ符号と称する）が発表され、現在、計算機システムの主記憶装置に多く適用されている（例えば、非特許文献５参照）。
【０００７】
なお、これら１９８０年代後半までの相互に関連した多くの符号研究・開発に関する具体的な内容は、非特許文献６において総括的に述べられている。
【０００８】
その後、新しく開発された高速半導体メモリ用の符号としては、１バイトの誤りを訂正し、かつ２ビット誤りを検出する符号（ＳｂＥＣ−ＤＥＤ符号と称する）が下記非特許文献７に、また、１バイトの誤りを訂正し、かつ１ビット誤りと１バイト誤りとの同時誤りを検出する符号（ＳｂＥＣ−（Ｓ＋Ｓｂ）ＥＤ符号と称する）が非特許文献８に提案されている。さらに、１バイトの誤りを訂正するとともに２ビットの誤りがあれば、これも訂正する符号（ＳｂＥＣ−ＤＥＣ符号と称する）が非特許文献９に開示されている。
【０００９】
特に、本発明に最も関連する符号として、具体的には、ｂビットからなるバイト内のｔビット（ｔ≦ｂ）までの誤りをｔ／ｂ誤りまたはスポッティバイト誤りと称し、この１スポッティバイト誤りを訂正するＳｔ／ｂＥＣ符号、及び１スポッティバイト誤りを訂正し、かつバイト内ｔビットを越える１バイト誤りを検出するＳｔ／ｂＥＣ−ＳｂＥＤ符号に関する発明が既に開示されている（特許文献１参照）。また、特にＳｔ／ｂＥＣ符号については、非特許文献１０に開示されている。
【００１０】
また、１スポッティバイト誤りを訂正し、かつ２スポッティバイト誤りを検出するＳｔ／ｂＥＣ−Ｄｔ／ｂＥＤ符号、及び１スポッティバイト誤りを訂正し、かつ２スポッティバイト誤りを検出し、かつバイト内ｔビットを越える１バイト誤りを検出するＳｔ／ｂＥＣ−Ｄｔ／ｂＥＤ−ＳｂＥＤ符号に関する発明が既に出願されている（特許文献２参照）。
【００１１】
さらに、複数個のスポッティバイト誤りを考慮した場合、１バイト内に１スポッティバイト誤りのみが生じる誤りを『バイト内単一スポッティバイト誤り』とし、バイト内単一スポッティバイト誤りに対し、距離ｄを有する一般的な構成法に関する発明が既に出願されている（特許文献３参照）。
【００１２】
また、１バイト内に複数のスポッティバイト誤り（つまり、２以上のスポッティバイト誤り）が生じる誤りを『バイト内複数スポッティバイト誤り』とし、距離ｄを有する一般的な構成法に関する発明が既に出願されている（特許文献４参照）。
【特許文献１】特開２００４−７２１７号公報
【特許文献２】特願２００３−４１６９７８号明細書
【特許文献３】特願２００４−２３９３９２号明細書
【特許文献４】特願２００４−２８７８１０号明細書
【特許文献５】特開２００２−３７４１７５号公報
【非特許文献１】エス.ジェイ.ホン（S.J.Hong）・エイ.エム.パテル（A.M.Patel）共著,『ア  ゼネラル  クラス  オフ  マックシマル  コードズ  フォー  コンピュータ  アプリケーションズ  “A general Class ofMaximal Codes for Computer Applications”』,ＩＥＥＥ  トランスアクションズ  オン  コンピュータズ（IEEETransactions on Computers）,第C-21巻,第12号, p.1322-1331,1972年
【非特許文献２】イー.フジワラ（E.Fujiwara）,『オッドーウエイトーコラム  ｂーアジェイスント  エラー  コレクティング  コードズ  “Odd-Weight-Columnb-Adjacent Error Correcting Codes”』,トランスアクションズ  オフ  ザ  ＩＥＣＥ  ジャパン（Transactions of the IECE Japan）,第E61巻,第10号,p.781-787,1978年
【非特許文献３】エス.カネダ（S.Kaneda）・イー.フジワラ（E.Fujiwara）共著,『シングル  バイト  エラー  コレクティングーダブル  バイト  エラー  ディテクティング  コードズ  フォー  メモリ  システムズ  “Single Byte ErrorCorrecting-Double Byte Error Detecting Codes for Memory Systems”』,ＩＥＥＥ  トランスアクションズ  オン  コンピュータズ（IEEETransactions on Computers）,第C-31巻,第7号,p.596-602,1982年７月
【非特許文献４】シー.エル.チェン（C.L.Chen）・エル.イー.グロバシュ（L.E.Grosbach）共著,『フォールトートレラント  メモリ  デザイン  イン  ザ  ＩＢＭ  アプリケーション  システム／４００ＴＭ  “Fault-Tolerant MemoryDesign in the IBM Application System/400TM”』,プロシーディングズ  オフ  アニュアル  インターナショナル  シンポジウム  オン  フォールトートレラント  コンピューティング（Proceedingsof Annual International Symposium on Fault-Tolerant Computing）,p.393-400,1991年6月
【非特許文献５】エス.カネダ（S.Kaneda）,『ア  クラス  オフ  オッドーウエイトーコラム  ＳＥＣ−ＤＥＤ−ＳｂＥＤ  コードズ  フォー  メモリ  システム  アプリケーションズ  “A class of Odd-Weight-ColumnSEC-DED-SbED Codes for Memory System Applications”』,ＩＥＥＥ  トランスアクションズ  オン  コンピュータズ（IEEETransactions on Computers）,第C-33巻,第8号,p.737-739,1984年8月
【非特許文献６】ティ.アール.エヌ.ラオ（T.R.N.Rao）・エイジ  フジワラ（Eiji Fujiwara）共著,『エラー  コントロール  コーディング  フォー  コンピュータ  システムズ  “Error Control Codingfor Computer Systems”』,プレンティスーホール（Prentice-Hall）,1989年
【非特許文献７】イー.フジワラ（E.Fujiwara）・エム.ハマダ（M.Hamada）共著,『シングル  ｂービット  バイト  エラー  コレクティング  アンド  ダブル  ビット  エラー  ディテクティング  コードズ  フォー  メモリ  システムズ  “Single b-Bit ByteError Correcting and Double Bit Error Detecting Codes for Memory Systems”』,ＩＥＩＣＥ  トランスアクションズ  オン  ファンダメンタルズ（IEICETransactions on Fundamentals）,第E76-A巻,第9号,p.1442-1448,1993年9月
【非特許文献８】エム.ハマダ（M.Hamada）・イー.フジワラ（E.Fujiwara）共著,『ア  クラス  オフ  エラー  コントロール  コードズ  フォー  バイト  オーガナイゼド  メモリ  システムズ―ＳｂＥＣ−(Ｓｂ＋Ｓ)ＥＤ  コードズ―  “A Class of ErrorControl Codes for Byte Organized Memory Systems ＿ SbEC―(Sb+S)ED Codes ＿”』,ＩＥＥＥ  トランスアクションズ  オン  コンピュータズ（IEEETransactions on Computers）,第46巻,第1号,p.105-109,1997年1月
【非特許文献９】ジー.ウマネサン（G.Umanesan）・イー.フジワラ（E.Fujiwara）共著,『ランダム  ダブル  ビット  エラー  コレクティングーシングル  バイト  エラー  コレクティング（ＤＥＣ−ＳｂＥＣ）  コードズ  フォー  メモリ  システムズ  “Random Double BitError Correcting ＿ Single Byte Error Correcting (DEC―SbEC) Codes for MemorySystems”』,ＩＥＩＣＥ  トランスアクションズ  オン  ファンダメンタルズ（IEICETransactions on Fundamentals）,第E85-A巻,第1号,p.273-276,2002年1月
【非特許文献１０】ジー.ウマネサン（G.Umanesan）・イー.フジワラ（E.Fujiwara）共著,『ア  クラス  オフ  コードズ  フォー  コレクティング  シングル  スポッティ  バイト  エラーズ  “A Class of Codes forCorrecting Single Spotty Byte Errors”』,ＩＥＩＣＥ  トランスアクションズ  オン  ファンダメンタルズ（IEICE Transactions on Fundamentals）,第E86-A巻,第3号,p.704-714,2003年3月
【非特許文献１１】今井秀樹・藤谷宏共著,『復号の簡単な誤り訂正符号の一構成法』,電子通信学会論文誌,1979年
【非特許文献１２】エス.ビィー.ウィッカー（S.B.Wicker）・ヴィ.ケイ.バールガバ（V.K.Bhargava）共著,『リードソロモン  コードズ  アンド  ゼア  アプリケーションズ  “Reed-Solomon Codes andTheir Applications”』,ＩＥＥＥ  プレス（IEEEPress）,1994年
【非特許文献１３】エス.ジェイ.ピーストラク(S.J.Piestrak),『ザ  ミニマル  テスト  セット  フォー  マルチアウトプット  スレッショウルド  サーキットズ  インプレメンテド  アズ  ソーティング  ネットワークス  “The minimal Test Setfor Multioutput Threshold Circuits Implemented as Sorting Networks”』,ＩＥＥＥ  トランスアクションズ  オン  コンピュータズ(IEEETransactions on Computers),第42巻,第6号,p.700-712,1993年6月
【発明の開示】
【発明が解決しようとする課題】
【００１３】
１９８０年代半ばまでは、半導体メモリ素子にはデータ１ビットの入出力を有する素子が主に使用されたことから、１素子の誤りを訂正し２素子までの誤りを検出する１ビット誤り訂正・２ビット誤り検出符号（ＳＥＣ−ＤＥＤ符号と称する）が多く使用されていた。ところが、１９８０年代半ばからメモリ素子の高集積化ニーズに対応して、データ４ビットの入出力を有する素子が主流となりはじめ、バイト幅ｂ＝４ビットである前述のＳ４ＥＣ−Ｄ４ＥＤ符号やＳＥＣ−ＤＥＤ−Ｓ４ＥＤ符号が主に使用されるようになってきた。さらに、１９９０年代半ばからはデータ８ビット、１６ビットの入出力を有する半導体メモリ素子が主流になりはじめた。
【００１４】
しかしながら、従来のＳｂＥＣ−ＤｂＥＤ符号のバイト幅ｂにｂ＝８またはｂ＝１６を適用する場合、全体の符号長に対する検査ビット数の占める割合がおよそ３０％から４０％と多大となって、符号化率が低下し、実用的に非常に大きな問題となっていた。
【００１５】
ところで、これらの半導体メモリ素子（ＤＲＡＭ素子、以下、単に素子とも称する）を使用したメモリ装置では、ノイズやアルファ粒子等によって一時故障が発生したり、ＤＲＡＭ素子自体が劣化して動作しなくなる固定故障が発生したりする。最近のＤＲＡＭ素子を用いた装置の８０％以上は一時故障であると言われており、特に、８ビット以上の多ビットデータ入出力を有するＤＲＡＭ素子ではバイト中の１、２、３ビット程度の比較的小さい数のビット誤りが大半であるとされている。
【００１６】
中でも比較的エネルギーレベルの低い電磁ノイズやアルファ粒子による一時誤り、及びメモリセルの固定故障を原因とする１ビット誤りが最も多く、最近では、前記ＤＲＡＭ素子を搭載したモバイル機器が多用されていることから、電磁環境が悪い中での使用も考慮しなければならなくなっている。また、高い高度を飛行する航空機や軍用機で用いられる電子機器中のＤＲＡＭ素子では、宇宙線に起因するエネルギーレベルの高い中性子粒子等の衝突により、２ビット、３ビット程度の誤りを有する一時故障が発生する可能性が高くなっている。さらに、衛星通信や宇宙通信で用いられる宇宙機器に搭載するＤＲＡＭ素子では、エネルギーレベルの高い粒子との衝突によって大きなダメージを受けてしまうことを考慮する必要があり、この場合２ビット以上の誤りを考慮しなければならないことが知られている。
【００１７】
以上のようなビット誤りの発生状況が多岐にわたっていることを踏まえれば、パラメータｔ及びｂに任意の値を与えて構成できる前記Ｓｔ／ｂＥＣ−ＳｂＥＤ符号は、８ビット以上のＤＲＡＭ素子を使用したメモリ装置に用いる場合に、非常に実用的な符号方式である。つまり、前記Ｓｔ／ｂＥＣ−ＳｂＥＤ符号は、バイト幅ｂより小さなｔビット（このｔの値は、誤りの傾向を調査して設計者が任意に決めることが可能である）までの１素子の誤り（スポッティバイト誤り）を訂正することが可能な機能、及び発生確率としては小さいもののｔビットを超える１バイト誤りを検出することが可能な機能を備えることにより、従来のバイト単位で行うリードソロモン符号（ＲＳ符号）等の誤り制御符号と比較して、大幅に少ない数の検査ビットで誤りを訂正・検出することができる。
【００１８】
また、任意の２素子（隣接した２素子に限らない）にまたがる誤りに対して、前記Ｓｔ／ｂＥＣ−Ｄｔ／ｂＥＤ−ＳｂＥＤ符号は、８ビット以上のＤＲＡＭ素子を使用したメモリ装置に用いる場合に非常に実用的な符号化方式である。つまり、前記Ｓｔ／ｂＥＣ−Ｄｔ／ｂＥＤ−ＳｂＥＤ符号は、バイト幅ｂより小さなｔビットまでの１素子の誤りを訂正することが可能な機能（１スポッティバイト誤り訂正、Ｓｔ／ｂＥＣ）、２素子にまたがるスポッティバイト誤りを検出することが可能な機能（２スポッティバイト誤り検出、Ｄｔ／ｂＥＤ）、及び発生確率としては小さいもののｔビットを超える１バイト誤りを検出することが可能な機能（１バイト誤り検出、ＳｂＥＤ）を備えた符号であり、従来のバイト単位で行う符号方式と比較して、大幅に少ない数の検査ビットでビット誤りを訂正・検出することができる。
【００１９】
さらに、２素子以上にまたがる誤りに対しては、前記バイト内単一スポッティバイト誤り及び前記バイト内複数スポッティバイト誤りに対し、理論上、一般にＧＦ（２ｂ）上で距離ｄを有するスポッティバイト誤り制御符号を構成することにより、その誤りを訂正・検出することができるようになっている。
【００２０】
しかしながら、誤りが一度に多くの素子にまたがり生じることは少なく、通常、限られた数の素子、つまり、制限された数のバイトに生じる。また、誤りが生じる素子の数は、高々２、３素子であると考えられる。
【００２１】
本発明は、上述のような事情に鑑みてなされたものであり、本発明の目的は、限られた数のバイトに生じた多重のバイト内複数スポッティバイト誤りを制御することができる機能を備えた、誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置を提供することにある。
【００２２】
また、本発明のもう１つの目的は、ｔ＝１としたとき、限られた数のバイトに生じたランダムビット誤りを制御することができる機能を備えた、誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置を提供することにある。
【００２３】
更に、本発明のもう１つの目的は、発生確率が小さいもののバイト内複数スポッティバイト誤りの訂正能力を超える単一バイト誤りを検出する機能を備えた、誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置を提供することにある。
【課題を解決するための手段】
【００２４】
本発明は、入力情報データを基に送信語を生成する符号化手段と、情報伝送路中で誤りが発生した前記送信語を受信語として入力して前記誤りを訂正または検出する復号手段とを備える誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置に関し、本発明の上述目的は、前記符号化手段は、スポッティバイト誤り制御符号を表現するパリティ検査行列と、前記入力情報データとを基に生成した検査情報を前記入力情報データに付加することにより、前記送信語を生成し、前記復号手段は、前記パリティ検査行列を基に前記受信語のシンドロームを生成するシンドローム生成手段と、前記シンドローム生成手段により生成されたシンドロームを基に前記受信語の誤りを訂正または検出する誤り訂正手段とを備えることにより、或いは、前記入力情報データが、ｂ（ｂは２以上の整数）ビットを１バイトとし、複数のバイトから構成される場合に、ここで、バイト内のｔビット（１≦ｔ≦ｂ）までの誤りをスポッティバイト誤りと称し、１バイト内に複数の前記スポッティバイト誤りが生じる誤りをバイト内複数スポッティバイト誤りと称することを前提とし、前記パリティ検査行列で表現される前記スポッティバイト誤り制御符号は、ｐ１個のバイトに生じるμ１個のスポッティバイト誤りを訂正し、かつｐ２個のバイトに生じるμ２個のスポッティバイト誤りを検出することにより、或いは、前記ｔ値、ｂ値、ｐ１値、ｐ２値、μ１値、μ２値を任意に設定し、ただし、ｐ１≦ｐ２及びμ１≦μ２が成立することにより、或いは、前記情報伝送路は情報通信システムであることにより、或いは、前記情報伝送路はメモリシステムであることにより、或いは、前記情報伝送路はバス線回路であることによって効果的に達成される。
【００２５】
また、本発明の上述目的は、前記パリティ検査行列は、ｐ１個のバイトに生じるμ１個のスポッティバイト誤りを訂正し、かつｐ２個のバイトに生じるμ２個のスポッティバイト誤りを検出する機能を有する、誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号
2006244259.tif 000003
に用いる、Ｒ行Ｎ列を有する次の行列Ｈであり、
2006244259.tif 000004
ただし、Ｒ＝ｑ＋（ｐ１＋ｐ２−１）ｒ、Ｎ＝ｂｎ、０≦ｉ≦ｎ−１、ｎ＝２ｒ−１であり、行列Ｈ’は、Ｈ’＝［ｈ０’、ｈ１’、・・・、ｈｂ−１’］に示すｑ次の列ベクトルｈｊ’（０≦ｊ≦ｂ−１）から構成されるｑ行ｂ列（ｑ≦ｂ）の２元行列であり、（μ１＋μ２）ｔまたはｂのうちいずれか小さい値に等しいか大きい列が線形独立であり、（μ１＋μ２）ｔ≧ｂのとき、前記行列Ｈ’は単位行列を含む正則行列であり、（μ１＋μ２）ｔ＜ｂのとき、前記行列Ｈ’は最小ハミング距離（μ１＋μ２）ｔ＋１を有する符号の検査行列、すなわち、（μ１＋μ２）ｔビット誤り検出機能を有する（ｂ、ｂ−ｑ）符号のパリティ検査行列に等しくなり、また、行列Ｈ”は、Ｈ”＝［ｈ０”、ｈ１”、・・・、ｈｂ−１”］に示すｒ次の列ベクトルｈｊ”（０≦ｊ≦ｂ−１）から構成されるｒ行ｂ列（ｒ≦ｂ）の２元行列であり、
2006244259.tif 000005
またはｂのうちいずれか小さい値に等しいか大きい列が線形独立であり、ここで、
2006244259.tif 000006
はｘを超えない最大の整数を表し、また、
2006244259.tif 000007
のとき、前記行列Ｈ”は単位行列を含む正則行列であり、
2006244259.tif 000008
のとき、前記行列Ｈ”は最小ハミング距離
2006244259.tif 000009
を有する符号の検査行列、すなわち、
2006244259.tif 000010
ビット誤り検出機能を有する（ｂ、ｂ−ｒ）符号のパリティ検査行列に等しくなり、γはＧＦ(２)のｒ次の拡大体ＧＦ（２ｒ）の原始元であって、γｉＨ”＝［γｉｈ０”、γｉｈ１”、…、γｉｈｂ−１”］が成立するように構成されることによって効果的に達成される。
【００２６】
また、本発明の上述目的は、前記パリティ検査行列は、ｐ１個のバイトに生じるμ１個のスポッティバイト誤りを訂正し、かつｐ２個のバイトに生じるμ２個のスポッティバイト誤りを検出する機能を有する、誤りバイト数を制限した伸長バイト内複数スポッティバイト誤り制御符号
2006244259.tif 000011
に用いる、Ｒ行Ｎ列を有する次の行列Ｈであり、
2006244259.tif 000012
ただし、ｒ’≧ｒであり、Ｒ＝ｑ＋（ｐ１＋ｐ２−１）ｒ’、Ｎ＝ｂ（ｎ＋１）＋ｒ’、０≦ｉ≦ｎ−１、ｎ＝２ｒ’−１であり、
2006244259.tif 000013
はｒ’次の単位行列で、
2006244259.tif 000014
は零行列であり、行列Ｈ’は、Ｈ’＝［ｈ０’、ｈ１’、・・・、ｈｂ−１’］に示すｑ次の列ベクトルｈｊ’（０≦ｊ≦ｂ−１）から構成されるｑ行ｂ列（ｑ≦ｂ）の２元行列であり、（μ１＋μ２）ｔまたはｂのうちいずれか小さい値に等しいか大きい列が線形独立であり、（μ１＋μ２）ｔ≧ｂのとき、前記行列Ｈ’は単位行列を含む正則行列であり、（μ１＋μ２）ｔ＜ｂのとき、前記行列Ｈ’は最小ハミング距離（μ１＋μ２）ｔ＋１を有する符号の検査行列、すなわち、（μ１＋μ２）ｔビット誤り検出機能を有する（ｂ、ｂ−ｑ）符号のパリティ検査行列に等しくなり、また、行列Ｈ”は、Ｈ”＝［ｈ０”、ｈ１”、・・・、ｈｂ−１”］に示すｒ次の列ベクトルｈｊ”（０≦ｊ≦ｂ−１）から構成されるｒ行ｂ列（ｒ≦ｂ）の２元行列であり、
2006244259.tif 000015
またはｂのうちいずれか小さい値に等しいか大きい列が線形独立であり、ここで、
2006244259.tif 000016
はｘを超えない最大の整数を表し、また、
2006244259.tif 000017
のとき、前記行列Ｈ”は単位行列を含む正則行列であり、
2006244259.tif 000018
のとき、前記行列Ｈ”は最小ハミング距離
2006244259.tif 000019
を有する符号の検査行列、すなわち、
2006244259.tif 000020
ビット誤り検出機能を有する（ｂ、ｂ−ｒ）符号のパリティ検査行列に等しくなり、γはＧＦ(２)のｒ’次の拡大体ＧＦ（２ｒ’）の原始元であって、γｉＨ”＝［γｉΦ（ｈ０”
）、γｉΦ（ｈ１” ）、・・・、γｉΦ（ｈｂ−１”
）］が成立するように構成され、ここで、Φは加法のもとでＧＦ（２ｒ）からＧＦ（２ｒ’）への単射準同型写像（injective homomorphism）であり、すなわち、Φ：ＧＦ（２ｒ）→ＧＦ（２ｒ’）であることによって効果的に達成される。
【００２７】
また、本発明の上述目的は、前記パリティ検査行列は、ｐ１個のバイトに生じるμ１個のスポッティバイト誤りを訂正するとともに、ｐ２個のバイトに生じるμ２個のスポッティバイト誤りを検出し、かつ訂正能力を超えた１バイト誤りを検出する機能を有する、誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号
2006244259.tif 000021
に用いる、Ｒ行Ｎ列を有する次の行列Ｈであり、
2006244259.tif 000022
ただし、Ｒ＝ｂ＋（ｐ１＋ｐ２−１）ｒ、Ｎ＝ｂｎ、０≦ｉ≦ｎ−１、ｎ＝２ｒ−１、Ｉｂはｂ次の単位行列であり、行列Ｈ”は、Ｈ”＝［ｈ０”、ｈ１”、・・・、ｈｂ−１”］に示すｒ次の列ベクトルｈｊ”（０≦ｊ≦ｂ−１）から構成されるｒ行ｂ列（ｒ≦ｂ）の２元行列であり、
2006244259.tif 000023
またはｂのうちいずれか小さい値に等しいか大きい列が線形独立であり、ここで、
2006244259.tif 000024
はｘを超えない最大の整数を表し、ここで、
2006244259.tif 000025
のとき、前記行列Ｈ”は単位行列を含む正則行列であり、
2006244259.tif 000026
のとき、前記行列Ｈ”は最小ハミング距離
2006244259.tif 000027
を有する符号の検査行列、すなわち、
2006244259.tif 000028
ビット誤り検出機能を有する（ｂ、ｂ−ｒ）符号のパリティ検査行列に等しくなり、γはＧＦ(２)のｒ次の拡大体ＧＦ（２ｒ）の原始元であって、γｉＨ”＝［γｉｈ０”、γｉｈ１”、…、γｉｈｂ−１”］が成立するように構成されることによって効果的に達成される。
【００２８】
また、本発明の上述目的は、前記パリティ検査行列は、ｐ１個のバイトに生じるμ１個のスポッティバイト誤りを訂正するとともに、ｐ２個のバイトに生じるμ２個のスポッティバイト誤りを検出し、かつ訂正能力を超えた１バイト誤りを検出する機能を有する、誤りバイト数を制限した伸長バイト内複数スポッティバイト誤り制御符号
2006244259.tif 000029
に用いる、Ｒ行Ｎ列を有する次の行列Ｈであり、
2006244259.tif 000030
ただし、ｒ’≧ｒであり、Ｒ＝ｂ＋（ｐ１＋ｐ２−１）ｒ’、Ｎ＝ｂ（ｎ＋１）＋ｒ’、０≦ｉ≦ｎ−１、ｎ＝２ｒ’−１、Ｉｂはｂ次の単位行列であり、
2006244259.tif 000031
はｒ’次の単位行列で、
2006244259.tif 000032
は零行列であり、行列Ｈ”は、Ｈ”＝［ｈ０”、ｈ１”、・・・、ｈｂ−１”］に示すｒ次の列ベクトルｈｊ”（０≦ｊ≦ｂ−１）から構成されるｒ行ｂ列（ｒ≦ｂ）の２元行列であり、ｔまたはｂのうちいずれか小さい値に等しいか大きい列が線形独立であり、ここで、
2006244259.tif 000033
はｘを超えない最大の整数を表し、ここで、
2006244259.tif 000034
のとき、前記行列Ｈ”は単位行列を含む正則行列であり、
2006244259.tif 000035
のとき、前記行列Ｈ”は最小ハミング距離
2006244259.tif 000036
を有する符号の検査行列、すなわち、
2006244259.tif 000037
ビット誤り検出機能を有する（ｂ、ｂ−ｒ）符号のパリティ検査行列に等しくなり、γはＧＦ(２)のｒ’次の拡大体ＧＦ（２ｒ’）の原始元であって、γｉＨ”＝［γｉΦ（ｈ０”
）、γｉΦ（ｈ１” ）、・・・、γｉΦ（ｈｂ−１”
）］が成立するように構成され、ここで、Φは加法のもとでＧＦ（２ｒ）からＧＦ（２ｒ’）への単射準同型写像（injective homomorphism）であり、すなわち、Φ：ＧＦ（２ｒ）→ＧＦ（２ｒ’）であることによって効果的に達成される。
【００２９】
また、本発明の上述目的は、前記誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号
2006244259.tif 000038
は、前記ｔ値を１に設定した場合（ｔ＝１）に、ｐ１個のバイトに生じるμ１個のランダムビット誤りを訂正し、かつｐ２個のバイトに生じるμ２個のランダムビット誤りを検出する機能を有する、誤りバイト数を制限したランダムビット誤り制御符号となることにより、或いは、前記誤りバイト数を制限した伸長バイト内複数スポッティバイト誤り制御符号
2006244259.tif 000039
は、前記ｔ値を１に設定した場合（ｔ＝１）に、ｐ１個のバイトに生じるμ１個のランダムビット誤りを訂正し、かつｐ２個のバイトに生じるμ２個のランダムビット誤りを検出する機能を有する、誤りバイト数を制限したランダムビット誤り制御符号となることにより、或いは、前記誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号
2006244259.tif 000040
は、前記ｔ値を１に設定した場合（ｔ＝１）に、ｐ１個のバイトに生じるμ１個のランダムビット誤りを訂正するとともに、ｐ２個のバイトに生じるμ２個のランダムビット誤りを検出し、かつ訂正能力を超えた１バイト誤りを検出する機能を有する、誤りバイト数を制限したランダムビット誤り制御符号となることにより、或いは、前記誤りバイト数を制限した伸長バイト内複数スポッティバイト誤り制御符号
2006244259.tif 000041
は、前記ｔ値を１に設定した場合（ｔ＝１）に、ｐ１個のバイトに生じるμ１個のランダムビット誤りを訂正するとともに、ｐ２個のバイトに生じるμ２個のランダムビット誤りを検出し、かつ訂正能力を超えた１バイト誤りを検出する機能を有する、誤りバイト数を制限したランダムビット誤り制御符号となることによって効果的に達成される。
【００３０】
また、本発明の上述目的は、前記パリティ検査行列（Ｈ）は、
2006244259.tif 000042
とした場合に、前記行列Ｈ’及び前記行列Ｈ”は任意のｂ列が線形独立な行列となり、ｐ１バイト誤りを訂正するとともにｐ２バイト誤りを検出する機能を有するＲＳ符号のパリティ検査行列と一致することにより、或いは、前記パリティ検査行列（Ｈ）は、
2006244259.tif 000043
とした場合に、前記行列Ｈ’及び前記行列Ｈ”は任意のｂ列が線形独立な行列となり、ｐ１バイト誤りを訂正するとともにｐ２バイト誤りを検出する機能を有する２次伸長ＲＳ符号のパリティ検査行列と一致することにより、或いは、前記パリティ検査行列（Ｈ）は、
2006244259.tif 000044
とした場合に、前記行列Ｈ”は任意のｂ列が線形独立な行列となり、ｐ１バイト誤りを訂正するとともにｐ２バイト誤りを検出する機能を有するＲＳ符号のパリティ検査行列と一致することにより、或いは、前記パリティ検査行列（Ｈ）は、
2006244259.tif 000045
とした場合に、前記行列Ｈ”は任意のｂ列が線形独立な行列となり、ｐ１バイト誤りを訂正するとともにｐ２バイト誤りを検出する機能を有する２次伸長ＲＳ符号のパリティ検査行列と一致することによって効果的に達成される。
【００３１】
また、本発明の上述目的は、前記誤り訂正手段は、前記シンドロームを基に前記受信語の何れのビットが誤っているかを検出するビット誤りポインタを生成し、生成された前記ビット誤りポインタを基に、誤りビットに該当する前記受信語のビット値を反転させることにより、前記受信語の誤りを訂正し、また、前記受信語のビット誤りを訂正できないことを検出した場合に、訂正不可能誤り検出信号を出力することにより、或いは、前記誤り訂正手段は、Ｈ’復号手段と、Ｈ”乗算手段と、ＧＦ（２ｒ）上の並列復号手段と、ＧＦ（２ｂ）上の誤り生成手段と、反転手段とから構成されることにより、或いは、前記Ｈ’復号手段は、前記シンドローム生成手段で生成された前記シンドロームの上位ｑビットを基にして、バイトごとの誤りの和（ｅＡ）を生成し、前記Ｈ”乗算手段は、前記Ｈ’復号手段で生成された前記バイトごとの誤りの和（ｅＡ）を基にして、前記バイトごとの誤りの和（ｅＡ）とＨ”の転置行列の積を生成し、前記ＧＦ（２ｒ）上の並列復号手段は、前記Ｈ”乗算手段で生成された前記バイトごとの誤りの和（ｅＡ）とＨ”の転置行列の積、及び前記シンドローム生成手段で生成された前記シンドロームの上位ｑビットを除く残りの下位ビットを基にして、ＧＦ（２ｒ）上のビット誤りポインタ、及びＧＦ（２ｒ）上の並列復号において誤り訂正が不可能とみなされたときに出力される第１の訂正不可能誤り検出信号を生成し、前記ＧＦ（２ｂ）上の誤り生成手段は、前記Ｈ’復号手段で生成された前記バイトごとの誤りの和（ｅＡ）、及び、前記ＧＦ（２ｒ）上の並列復号手段で生成された前記ＧＦ（２ｒ）上のビット誤りポインタを基にして、ＧＦ（２ｂ）上のビット誤りポインタ、及び誤り訂正が不可能とみなされたときに出力される第２の訂正不可能誤り検出信号を生成し、前記反転手段は、前記ＧＦ（２ｂ）上の誤り生成手段で生成された前記ＧＦ（２ｂ）上のビット誤りポインタを基にして、前記ＧＦ（２ｂ）上のビット誤りポインタに対応した前記受信語のビット値を反転させることにより、前記受信語の誤りを訂正することにより、或いは、前記誤り訂正手段では、前記ＧＦ（２ｒ）上の並列復号手段で生成された前記第１の訂正不可能誤り検出信号と、前記ＧＦ（２ｂ）上の誤り生成手段で生成された前記第２の訂正不可能誤り検出信号の論理和をとることにより、訂正能力を超えた誤りを検出したことを示す第３の訂正不可能誤り検出信号を出力することによって効果的に達成される。
【００３２】
また、本発明の上述目的は、前記ＧＦ（２ｂ）上の誤り生成手段は、前記ＧＦ（２ｒ）上のビット誤りポインタ（ｅ’）の１バイトから、復号結果ビット誤りポインタ
2006244259.tif 000046
の１バイト及びｉバイトにおける検出信号を出力するｔビット誤り訂正復号手段と、入力された複数の前記ｉバイトにおける検出信号の重みの数だけを出力の上位ビットから１を連続して出力する多入力ソート手段と、誤訂正判定を行い、前記ＧＦ（２ｂ）上のビット誤りポインタ（ｅ）の１バイトを出力するｉバイトにおける誤訂正判定手段とを備えることにより、或いは、前記ＧＦ（２ｂ）上の誤り生成手段は、ｔビット誤り訂正復号手段と、多入力ソート手段と、ｉバイトにおける誤訂正判定手段とを備えており、前記ｔビット誤り訂正復号手段は、前記ＧＦ（２ｒ）上のビット誤りポインタ（ｅ’）の所定の１バイトを入力とし、復号結果ビット誤りポインタ
2006244259.tif 000047
の前記所定の１バイトに対応する１バイトを前記ｉバイトにおける誤訂正判定手段に出力するとともに、訂正能力をこえた誤りを検出する信号であるｉバイトにおける検出信号を前記多入力ソート手段と前記ｉバイトにおける誤訂正判定手段に出力する手段であり、前記多入力ソート手段は、入力される複数の前記ｉバイトにおける検出信号の重み（１の数）を数え、その重みの数だけを出力の上位ビットから１を連続して出力する手段であり、前記ｉバイトにおける誤訂正判定手段は、すべてのバイトの前記ｔビット誤り訂正復号手段から出力される前記復号結果ビット誤りポインタ
2006244259.tif 000048
、前記ｉバイトにおける検出信号、及び前記バイトごとの誤りの和（ｅＡ）を入力とし、誤訂正判定を行い、前記ＧＦ（２ｂ）上のビット誤りポインタ（ｅ）の１バイトを出力する手段であることにより、或いは、前記ＧＦ（２ｂ）上の誤り生成手段では、前記多入力ソート手段から出力された信号において、その上位２ビット目の信号を前記第２の訂正不可能誤り検出信号として出力し、また、前記ｉバイトにおける誤訂正判定手段から出力された信号を集め、符号ビット長のビット数を有する前記ＧＦ（２ｂ）上のビット誤りポインタを出力することによって効果的に達成される。
【００３３】
また、本発明の上述目的は、前記ｉバイトにおける誤訂正判定手段では、前記誤訂正判定が次の誤訂正判定数式によって行われ、
2006244259.tif 000049
ただし、
2006244259.tif 000050
で定義され、スポッティバイト誤りの個数を表し、
2006244259.tif 000051
はベクトルｅｉにおけるガロア体ＧＦ（２）上のハミング重みであり、前記誤訂正数式が成立している場合に、
2006244259.tif 000052
となり誤訂正はされていないと判定され、前記誤訂正数式が成立していない場合に、
2006244259.tif 000053
となり誤訂正はされていると判定されるようにすることにより、或いは、
2006244259.tif 000054
2006244259.tif 000055
前記Ｈ”乗算手段にＳI以外のシンドロームを新たに入力し、ＳI≠０かつＳI以外のシンドロームが０の場合に、検出信号を出力し、また、前記ＧＦ（２ｂ）上の誤り生成手段にＳIを新たに入力し、前記ＧＦ（２ｂ）上の誤り生成手段において、ＧＦ（２ｒ）上の誤りｅ’において誤りバイト数が１かどうかを調べ、前記多入力ソート手段を用いてＳIのハミング重みがμ１ｔより大きいかどうかを調べることにより、前記復号手段を構成することによって効果的に達成される。
【００３４】
更に、本発明は、入力情報データを基に送信語を生成する符号化処理ステップと、情報伝送路中で誤りが発生した前記送信語を受信語として入力して前記誤りを訂正または検出する復号処理ステップとを有する誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法に関し、本発明の上述目的は、前記符号化処理ステップは、スポッティバイト誤り制御符号を表現するパリティ検査行列と、前記入力情報データとを基に生成した検査情報を前記入力情報データに付加することにより、前記送信語を生成し、前記復号処理ステップは、前記パリティ検査行列を基に前記受信語のシンドロームを生成するシンドローム生成処理ステップと、前記シンドローム生成処理ステップにより生成されたシンドロームを基に前記受信語の誤りを訂正または検出する誤り訂正処理ステップとを有することにより、或いは、前記入力情報データが、ｂ（ｂは２以上の整数）ビットを１バイトとし、複数のバイトから構成される場合に、ここで、バイト内のｔビット（１≦ｔ≦ｂ）までの誤りをスポッティバイト誤りと称し、１バイト内に複数の前記スポッティバイト誤りが生じる誤りをバイト内複数スポッティバイト誤りと称することを前提とし、前記パリティ検査行列で表現される前記スポッティバイト誤り制御符号は、ｐ１個のバイトに生じるμ１個のスポッティバイト誤りを訂正し、かつｐ２個のバイトに生じるμ２個のスポッティバイト誤りを検出することにより、或いは、前記ｔ値、ｂ値、ｐ１値、ｐ２値、μ１値、μ２値を任意に設定し、ただし、ｐ１≦ｐ２及びμ１≦μ２が成立することにより、或いは、前記情報伝送路は情報通信システムであることにより、或いは、前記情報伝送路はメモリシステムであることにより、或いは、前記情報伝送路はバス線回路であることによって効果的に達成される。
【００３５】
また、本発明の上述目的は、前記誤り訂正処理ステップは、前記シンドロームを基に前記受信語の何れのビットが誤っているかを検出するビット誤りポインタを生成し、生成された前記ビット誤りポインタを基に、誤りビットに該当する前記受信語のビット値を反転させることにより、前記受信語の誤りを訂正し、また、前記受信語のビット誤りを訂正できないことを検出した場合に、訂正不可能誤り検出信号を出力することにより、或いは、前記誤り訂正処理ステップは、Ｈ’復号処理ステップと、Ｈ”乗算処理ステップと、ＧＦ（２ｒ）上の並列復号処理ステップと、ＧＦ（２ｂ）上の誤り生成処理ステップと、反転処理ステップとを有することにより、或いは、前記Ｈ’復号処理ステップは、前記シンドローム生成処理ステップで生成された前記シンドロームの上位ｑビットを基にして、バイトごとの誤りの和（ｅＡ）を生成し、前記Ｈ”乗算処理ステップは、前記Ｈ’復号処理ステップで生成された前記バイトごとの誤りの和（ｅＡ）を基にして、前記バイトごとの誤りの和（ｅＡ）とＨ”の転置行列の積を生成し、前記ＧＦ（２ｒ）上の並列復号処理ステップは、前記Ｈ”乗算処理ステップで生成された前記バイトごとの誤りの和（ｅＡ）とＨ”の転置行列の積、及び前記シンドローム生成処理ステップで生成された前記シンドロームの上位ｑビットを除く残りの下位ビットを基にして、ＧＦ（２ｒ）上のビット誤りポインタ、及びＧＦ（２ｒ）上の並列復号において誤り訂正が不可能とみなされたときに出力される第１の訂正不可能誤り検出信号を生成し、前記ＧＦ（２ｂ）上の誤り生成処理ステップは、前記Ｈ’復号処理ステップで生成された前記バイトごとの誤りの和（ｅＡ）、及び、前記ＧＦ（２ｒ）上の並列復号処理ステップで生成された前記ＧＦ（２ｒ）上のビット誤りポインタを基にして、ＧＦ（２ｂ）上のビット誤りポインタ、及び誤り訂正が不可能とみなされたときに出力される第２の訂正不可能誤り検出信号を生成し、前記反転処理ステップは、前記ＧＦ（２ｂ）上の誤り生成処理ステップで生成された前記ＧＦ（２ｂ）上のビット誤りポインタを基にして、前記ＧＦ（２ｂ）上のビット誤りポインタに対応した前記受信語のビット値を反転させることにより、前記受信語の誤りを訂正することにより、或いは、前記誤り訂正処理ステップでは、前記ＧＦ（２ｒ）上の並列復号処理ステップで生成された前記第１の訂正不可能誤り検出信号と、前記ＧＦ（２ｂ）上の誤り生成処理ステップで生成された前記第２の訂正不可能誤り検出信号の論理和をとることにより、訂正能力を超えた誤りを検出したことを示す第３の訂正不可能誤り検出信号を出力することによって効果的に達成される。
【００３６】
また、本発明の上述目的は、前記ＧＦ（２ｂ）上の誤り生成処理ステップは、前記ＧＦ（２ｒ）上のビット誤りポインタ（ｅ’）の１バイトから、復号結果ビット誤りポインタ
2006244259.tif 000056
の１バイト及びｉバイトにおける検出信号を出力するｔビット誤り訂正復号処理ステップと、入力された複数の前記ｉバイトにおける検出信号の重みの数だけを出力の上位ビットから１を連続して出力する多入力ソート処理ステップと、誤訂正判定を行い、前記ＧＦ（２ｂ）上のビット誤りポインタ（ｅ）の１バイトを出力するｉバイトにおける誤訂正判定処理ステップとを有することにより、或いは、前記ＧＦ（２ｂ）上の誤り生成処理ステップは、ｔビット誤り訂正復号処理ステップと、多入力ソート処理ステップと、ｉバイトにおける誤訂正判定処理ステップとを有し、前記ｔビット誤り訂正復号処理ステップは、前記ＧＦ（２ｒ）上のビット誤りポインタ（ｅ’）の所定の１バイトを入力とし、復号結果ビット誤りポインタ
2006244259.tif 000057
の前記所定の１バイトに対応する１バイトを前記ｉバイトにおける誤訂正判定処理ステップに出力するとともに、訂正能力をこえた誤りを検出する信号であるｉバイトにおける検出信号を前記多入力ソート処理ステップと前記ｉバイトにおける誤訂正判定処理ステップに出力し、前記多入力ソート処理ステップは、入力される複数の前記ｉバイトにおける検出信号の重み（１の数）を数え、その重みの数だけを出力の上位ビットから１を連続して出力し、前記ｉバイトにおける誤訂正判定処理ステップは、すべてのバイトの前記ｔビット誤り訂正復号処理ステップから出力される前記復号結果ビット誤りポインタ
2006244259.tif 000058
、前記ｉバイトにおける検出信号、及び前記バイトごとの誤りの和（ｅＡ）を入力とし、誤訂正判定を行い、前記ＧＦ（２ｂ）上のビット誤りポインタ（ｅ）の１バイトを出力することにより、或いは、前記ＧＦ（２ｂ）上の誤り生成処理ステップでは、前記多入力ソート処理ステップから出力された信号において、その上位２ビット目の信号を前記第２の訂正不可能誤り検出信号として出力し、また、前記ｉバイトにおける誤訂正判定処理ステップから出力された信号を集め、符号ビット長のビット数を有する前記ＧＦ（２ｂ）上のビット誤りポインタを出力することによって効果的に達成される。
【００３７】
また、本発明の上述目的は、前記ｉバイトにおける誤訂正判定処理ステップでは、前記誤訂正判定が次の誤訂正判定数式によって行われ、
2006244259.tif 000059
ただし、
2006244259.tif 000060
で定義され、スポッティバイト誤りの個数を表し、
2006244259.tif 000061
はベクトルｅｉにおけるガロア体ＧＦ（２）上のハミング重みであり、前記誤訂正数式が成立している場合に、
2006244259.tif 000062
となり誤訂正はされていないと判定され、前記誤訂正数式が成立していない場合に、
2006244259.tif 000063
となり誤訂正はされていると判定されるようにすることにより、或いは、
2006244259.tif 000064
2006244259.tif 000065
前記Ｈ”乗算処理ステップにＳII、ＳIII、ＳIVを新たに入力し、ＳI≠０かつＳII＝ＳIII＝ＳIV＝０の場合に、検出信号を出力し、また、前記ＧＦ（２ｂ）上の誤り生成処理ステップにＳIを新たに入力し、前記ＧＦ（２ｂ）上の誤り生成処理ステップにおいて、ＧＦ（２ｒ）上の誤りｅ’において誤りバイト数が１かどうかを調べ、前記多入力ソート処理ステップでＳIのハミング重みがμ１ｔより大きいかどうかを調べることにより、復号処理を行うことによって効果的に達成される。
【発明の効果】
【００３８】
本発明に係る、誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置によれば、符号を表現するパリティ検査行列と入力情報データとを基に生成した検査情報を前記入力情報データに付加した送信語が、情報伝送路中で発生した誤りを有する可能性のある受信語に対し、前記パリティ検査行列を基にシンドロームを生成するとともに、このシンドロームを基に前記受信語の誤りを訂正または検出するようにしているので、１バイト中の１ビット、２ビット、３ビット等のｔビットまでの誤りであるスポッティバイト誤りに対し、任意に制限された数のバイトに生じた、任意の数のバイト内複数スポッティバイト誤り（誤りの傾向を調査して、設計者がバイトの数及びスポッティバイト誤りの個数を任意に決めることができる）を訂正・検出する機能を有する、誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号を実現することができた。
【００３９】
これにより、誤りを検出または訂正する符号であるパリティ検査行列の構成や復号の処理手順を、誤りの発生状況ごとに対応させる必要がなく統一的に扱うことが可能となり、本発明の符号機能におけるｔ値、ｂ値、ｐ１値、ｐ２値、μ１値、μ２値を任意に設定するだけで、パリティ検査行列Ｈや復号手順を統一的に扱うことが可能となり、誤りの発生状態に柔軟に対応できる符号機能を提供することができる。
【００４０】
さらに、ｂビットであるバイト長よりも小さな整数ビット長ｔを選ぶことにより、従来のバイト誤り制御符号（ｔ＝ｂに相当）と比較して、検査ビット数を大幅に減少することが可能となる。これにより、符号長に対する検査ビット数の占める割合を小さくさせて、符号化率を格段に向上することが可能となり、高効率且つ高信頼性のあるデータ転送を実現することができる。
【００４１】
要するに、従来の符号技術では存在しない、『制限された数のバイトに生じた、多重のバイト内複数スポッティバイト誤りを制御できる』といった優れた機能を備える本発明の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置によれば、従来のリードソロモン符号（Reed-Solomon符号）による多重バイト誤り制御符号と比較して、検査ビット数を少なくして符号化率を向上させることができ、また、特に、ｔ＝１とした場合、従来のＢＣＨ符号による多重ビット誤り制御符号と比較して、検査ビット数を少なくして符号化率を向上させることができ、さらに、ビット誤りの発生状態に柔軟に対応できる符号機能を提供することができるといった顕著な効果を奏する。
【発明を実施するための最良の形態】
【００４２】
以下、本発明を実施するための最良の形態について、図面を参照しながら詳細に説明する。
【００４３】
本発明を説明するための用語を次のように定義する。まず、本発明の実施形態において、対象とするディジタルデータとは、０と１との組合せの信号（２進化符号）であり、ビット誤りの発生とは、符号語中の任意のビットが、０→１または１→０になることを意味することとする。また、スポッティバイト誤りの発生とは、ｂビットからなるバイト中のｔビット（ｔ≦ｂ）までが０→１または１→０になることを意味することとする。
【００４４】
なお、本実施の形態で、「誤り」とある場合に、特に明記していない限り、前記「ビット誤り」、「スポッティバイト誤り」のすべてを包含していることとする。また、１バイト内に複数のスポッティバイト誤り（つまり、２以上のスポッティバイト誤り）が生じる誤りを『バイト内複数スポッティバイト誤り』と称する。更に、バイト内複数スポッティバイト誤りが限られた数のバイトに生じている場合、その誤りを『誤りバイト数を制限したバイト内複数スポッティバイト誤り』と称する。
【００４５】
ここで、まず、本発明に係る誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置１００の全体構成について説明する。図１は、本発明のバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置１００（以下、スポッティバイト誤り訂正・検出装置１００と略す）の概略構成を示すブロック図である。図１に示すように、スポッティバイト誤り訂正・検出装置１００は、符号化回路２、回路３、復号回路４等を備えた構成になっている。
【００４６】
符号化回路２は、対象のディジタルデータ（以下、入力情報データ３０と称する）に対して、誤りの訂正・検出を行う検査情報を生成する回路である。なお、検査情報は、任意個の検査ビットより構成されている。
【００４７】
回路３は、メモリ等の通信路に相当し、本実施形態では、回路３を経たデータには誤りが含まれる可能性が存在する構成としている。つまり、符号化回路２より出力されて回路３に入力されるデータには誤りが生じていないのに対して、回路３から出力されるデータには、誤りが発生している場合を含んでいる。
【００４８】
復号回路４は、シンドローム生成回路１と誤り訂正回路５とを備えた構成になっている。復号回路４は、受信語３２に誤りが含まれているか否かを検出し、その誤り箇所を特定して訂正を行うための回路である。復号回路４の詳細な構成については、後述する復号処理で説明する。
【００４９】
なお、後述する符号化処理及び復号処理では、ガロア体理論に基づいた行列演算を行うことから、符号化回路２、復号回路４、または通信路中における各データを、英字で付した行列、またはベクトルで表現する。具体的には、例えば、入力情報データＤ、符号（パリティ検査行列）Ｈ、検査情報Ｃ、送信語Ｖ、受信語Ｖ’、シンドロームＳと表している。
【００５０】
次に、本発明のスポッティバイト誤り訂正・検出装置１００の全体動作について説明する。図２は、図１に示された本発明のスポッティバイト誤り訂正・検出装置１００の全体動作の処理手順を示すフローチャートである。
【００５１】
図２に示されるように、まず、符号化回路２では、入力情報データ（Ｄ）３０が入力されると、詳細については後述するパリティ検査行列（Ｈ）を用いて検査情報（Ｃ）を生成する（ステップＳ２００）。次に、符号化回路２では、この検査情報（Ｃ）を入力情報データ（Ｄ）３０に付加して、送信語（Ｖ）３１としてメモリ等の通信路である回路３に送出する（ステップＳ２０１）。そして、回路３を経て誤りを含む可能性のある受信語（Ｖ’）３２は、復号回路４に入力される（ステップＳ２０２）。
【００５２】
次に、復号回路４では、まず、符号化回路２で用いたパリティ検査行列（Ｈ）を利用して、入力された受信語（Ｖ’）３２に誤りが発生しているか否かを調べる。具体的には、復号回路４のシンドローム生成回路１が、符号を表現しているパリティ検査行列（Ｈ）を転置させた転置行列（ＨＴ）を、受信語（Ｖ’）３２に対して乗算することにより、シンドローム（Ｓ）を生成する（ステップＳ２０３）。シンドローム（Ｓ）３３の値は、受信語（Ｖ’）３２に応じて変化するため、受信語（Ｖ’）３２に誤りが含まれているかを判断することが可能となる。
【００５３】
そこで、復号回路４の誤り訂正回路５は、前記シンドローム（Ｓ）３３の値に基づいて、まず誤りの有無を検出し（ステップＳ２０４）、誤りが検出された場合に、その誤りが訂正可能か否かを判断し（ステップＳ２０５）、前記判断の結果、その誤りが訂正可能であれば、誤りの訂正を行う（ステップＳ２０６）。そして、誤り訂正回路５は、受信語Ｖ’に対してスポッティバイト誤りの訂正処理を施した場合に、訂正後のＶ’を受信語出力情報データ（Ｖ＊）３４として出力する（ステップＳ２０７）。これに対して、ステップＳ２０５の判断の結果、訂正不可能なスポッティバイト誤り等が検出された場合には、誤り訂正回路５は、訂正不可能な誤り検出信号としてのＵＣＥ（Uncorrectable  Error）信号３５を出力する（ステップＳ２０８）。
【００５４】
次に、前述した符号化回路２及び復号回路４で用いられるパリティ検査行列（Ｈ）の構成について、詳細に説明する。本発明のパリティ検査行列Ｈ（以下、Ｈマトリクス、符号マトリクス、または単に検査行列とも称する）は、制限された数のバイトに生じる複数のスポッティバイト誤りを訂正・検出する機能を有する符号である。
【００５５】
本実施の形態では、任意のｐ１、ｐ２（ｐ１≦ｐ２）、μ１、μ２（μ１≦μ２）、ｔ（ｔは１以上ｂ以下の整数）、及びｂ（２以上の整数）に対して構成できる一般的な符号構成法を提示するとともに、その符号により実際に誤りの訂正・検出ができる方法を示し、またそのための符号化回路および復号回路を提示し、前記符号化回路及び復号回路によって誤りが具体的に訂正・検出できることを示す。
【００５６】
ここで、まず、ｐ１個のバイトに生じるμ１個のスポッティバイト誤りを訂正し、かつｐ２個のバイトに生じるμ２個のスポッティバイト誤りを検出することを具体的に示す。
【００５７】
以下では、ｐ１個のバイトに生じるμ１個のスポッティバイト誤りを訂正し、かつｐ２個のバイトに生じるμ２個のスポッティバイト誤りを検出する機能を有する、『誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号』を
2006244259.tif 000066
と表す。例えば、２個のバイトに生じる３個のスポッティバイト誤り訂正符号の場合に、［Ｔｔ／ｂＥＣ］２符号と表し、μ１＝μ２＝３、ｐ１＝ｐ２＝２となる。
【００５８】
また、本発明の符号構成法において、ｔ＝ｂのとき、正確には後述するように、
2006244259.tif 000067
のとき、従来のバイト誤り制御符号であるリード・ソロモン符号（ＲＳ符号）に一致する。
【００５９】
いま、Ｋビットの入力情報データ（Ｄ）３０に対してＲビットの検査情報（Ｃ）を付加し、ある機能を満足するＮ＝Ｋ＋Ｒビットの長さを有する送信語Ｖ（Ｎビットの行ベクトル）を構成することができたときに、この送信語（Ｖ）と、誤り制御符号を規定するＲ行Ｎ列の２元パリティ検査行列（Ｈ）との間には、Ｖ・ＨＴ＝０の関係が成立する。ここで、ＨＴはパリティ検査行列（Ｈ）の行と列を入れ替えて生成した転置行列であり、また、右辺の０はＲビットの零行ベクトルを示している。
【００６０】
本実施形態では、ｐ１個のバイトに生じるμ１個のスポッティバイト誤りを訂正し、かつｐ２個のバイトに生じるμ２個のスポッティバイト誤りを検出する機能を有する、誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号
2006244259.tif 000068
に用いるＲ行Ｎ列を有するパリティ検査行列（Ｈ）を、下記数１に示すような構成としている。
【００６１】
【数１】
2006244259.tif 000069
ただし、Ｒ＝ｑ＋（ｐ１＋ｐ２−１）ｒ、Ｎ＝ｂｎ、０≦ｉ≦ｎ−１、ｎ＝２ｒ−１である。
【００６２】
上記数１を構成する行列Ｈ’は、下記数２に示すｑ次の列ベクトルｈｊ’（０≦ｊ≦ｂ−１）から構成されるｑ行ｂ列（ｑ≦ｂ）の２元行列であり、（μ１＋μ２）ｔまたはｂのうちいずれか小さい値に等しいか大きい列が線形独立である。
【００６３】
【数２】
2006244259.tif 000070
ここで、（μ１＋μ２）ｔ≧ｂのとき、前記行列Ｈ’は単位行列を含む正則行列であり、（μ１＋μ２）ｔ＜ｂのとき、前記行列Ｈ’は最小ハミング距離（μ１＋μ２）ｔ＋１を有する符号の検査行列、すなわち、（μ１＋μ２）ｔビット誤り検出機能を有する（ｂ、ｂ−ｑ）符号のパリティ検査行列に等しい。
【００６４】
また、上記数１を構成する行列Ｈ”は、下記数３に示すｒ次の列ベクトルｈｊ”（０≦ｊ≦ｂ−１）から構成されるｒ行ｂ列（ｒ≦ｂ）の２元行列であり、
2006244259.tif 000071
またはｂのうちいずれか小さい値に等しいか大きい列が線形独立である。ここで、
2006244259.tif 000072
はｘを超えない最大の整数を表す。
【００６５】
【数３】
2006244259.tif 000073
ここで、
2006244259.tif 000074
のとき、前記行列Ｈ”は単位行列を含む正則行列であり、
2006244259.tif 000075
のとき、前記行列Ｈ”は最小ハミング距離
2006244259.tif 000076
を有する符号の検査行列、すなわち、
2006244259.tif 000077
ビット誤り検出機能を有する（ｂ、ｂ−ｒ）符号のパリティ検査行列に等しい。
【００６６】
次に、γをＧＦ(２)のｒ次の拡大体ＧＦ（２ｒ）の原始元とするときに、γｉＨ”は下記数４で定義することができる。
【００６７】
【数４】
2006244259.tif 000078
このとき、最大符号長Ｎは、Ｎ＝ｂ（２ｒ−１）である。
【００６８】
上記数１に示したパリティ検査行列（Ｈ）は、パラメータ
2006244259.tif 000079
とした場合に、Ｈ’及びＨ”は任意のｂ列が線形独立な行列となるため、従来のｐ１バイト誤りを訂正するとともにｐ２バイト誤りを検出する機能を有する、ｐ１訂正ｐ２検出ＲＳ符号のパリティ検査行列と一致する。
【００６９】
また、本実施形態では、
2006244259.tif 000080
の伸長符号を定義することができる。ｐ１個のバイトに生じるμ１個のスポッティバイト誤りを訂正し、かつｐ２個のバイトに生じるμ２個のスポッティバイト誤りを検出する機能を有する、誤りバイト数を制限した伸長バイト内複数スポッティバイト誤り制御符号
2006244259.tif 000081
に用いるＲ行Ｎ列を有するパリティ検査行列（Ｈ）は、下記数５に示すような構成とすることができる。
【００７０】
【数５】
2006244259.tif 000082
ただし、ｒ’≧ｒであり、Ｒ＝ｑ＋（ｐ１＋ｐ２−１）ｒ’、Ｎ＝ｂ（ｎ＋１）＋ｒ’、０≦ｉ≦ｎ−１、ｎ＝２ｒ’−１であり、
2006244259.tif 000083
はｒ’次の単位行列で、
2006244259.tif 000084
は零行列である。
【００７１】
上記数５を構成する行列Ｈ’は、下記数６に示すｑ次の列ベクトルｈｊ’（０≦ｊ≦ｂ−１）から構成されるｑ行ｂ列（ｑ≦ｂ）の２元行列であり、（μ１＋μ２）ｔまたはｂのうちいずれか小さい値に等しいか大きい列が線形独立である。
【００７２】
【数６】
2006244259.tif 000085
ここで、（μ１＋μ２）ｔ≧ｂのとき、前記行列Ｈ’は単位行列を含む正則行列であり、（μ１＋μ２）ｔ＜ｂのとき、前記行列Ｈ’は最小ハミング距離（μ１＋μ２）ｔ＋１を有する符号の検査行列、すなわち、（μ１＋μ２）ｔビット誤り検出機能を有する（ｂ、ｂ−ｑ）符号のパリティ検査行列に等しくなる。
【００７３】
また、上記数５を構成する行列Ｈ”は、下記数７に示すｒ次の列ベクトルｈｊ”（０≦ｊ≦ｂ−１）から構成されるｒ行ｂ列（ｒ≦ｂ）の２元行列であり、
2006244259.tif 000086
またはｂのうちいずれか小さい値に等しいか大きい列が線形独立である。ここで、
2006244259.tif 000087
ははｘを超えない最大の整数を表す。
【００７４】
【数７】
2006244259.tif 000088
ここで、
2006244259.tif 000089
のとき、前記行列Ｈ”は単位行列を含む正則行列であり、
2006244259.tif 000090
のとき、前記行列Ｈ”は最小ハミング距離
2006244259.tif 000091
を有する符号の検査行列、すなわち、
2006244259.tif 000092
ビット誤り検出機能を有する（ｂ、ｂ−ｒ）符号のパリティ検査行列に等しくなる。
【００７５】
次に、γをＧＦ(２)のｒ’次の拡大体ＧＦ（２ｒ’）の原始元とするときに、γｉＨ”は下記数８で定義することができる。
【００７６】
【数８】
2006244259.tif 000093
ここで、Φは加法のもとでＧＦ（２ｒ）からＧＦ（２ｒ’）への単射準同型写像（injective homomorphism）であり、すなわち、Φ：ＧＦ（２ｒ）→ＧＦ（２ｒ’）であることによって効果的に達成される。このとき、最大符号長Ｎは、Ｎ＝ｂ・２ｒ’＋ｒ’である。数５のＨの２行目から下の行に用いるＨ”の行数ｒ’は、ｒより大きい値をとることができ、数５で表される符号は、（μ１＋μ２−１）ビットずつ検査ビット数を増大させることにより、任意の符号長に対して構成できる符号であることに注意する必要がある。
【００７７】
上記数５に示したパリティ検査行列（Ｈ）は、パラメータ
2006244259.tif 000094
とした場合に、Ｈ’及びＨ”は任意のｂ列が線形独立な行列となるため、従来のｐ１バイト誤りを訂正するとともにｐ２バイト誤りを検出する機能を有する、ｐ１訂正ｐ２検出２次伸長ＲＳ符号のパリティ検査行列と一致する。
【００７８】
次に、上記数１に示したパリティ検査行列（Ｈ）で表される符号が、ｐ１個のバイトに生じるμ１個のスポッティバイト誤りを訂正し、かつｐ２個のバイトに生じるμ２個のスポッティバイト誤りを検出することを具体的に示す。一般に、パリティ検査行列Ｈ＝［Ｈ０、Ｈ１、・・・、Ｈｎ−１］が、以下に示す必要十分条件を満たしていることを示せばよい。ただし、ＨｉはＲ×ｂの小行列である。
【００７９】
【数９】
2006244259.tif 000095
ここで、
2006244259.tif 000096
は誤りベクトルｅにおけるｉｘ番目のバイトであり、
2006244259.tif 000097
はｙ以下である最大の整数、
2006244259.tif 000098
はｚ以上である最小の整数をそれぞれ表す。
【００８０】
また、
2006244259.tif 000099
は、すべて異なるものとし、
2006244259.tif 000100
は下記数１０で定義され、スポッティバイト誤りの個数を表している。ただし、
2006244259.tif 000101
はベクトルｅｉにおけるガロア体ＧＦ（２）上のハミング重みである。
【００８１】
【数１０】
2006244259.tif 000102
スポッティバイト誤り訂正・検出は、前述したシンドローム生成回路１が生成するシンドローム（Ｓ）３３を用いて実行する。ここで、シンドローム（Ｓ）３３と前記パリティ検査行列（Ｈ）との関係は、Ｓ＝Ｖ’・ＨＴで表される。いま、受信語（Ｖ’）３２が元々の送信語（Ｖ）３１に対して誤り（Ｅ）を含み、Ｖ’＝Ｖ＋Ｅで表されるとき、シンドローム（Ｓ）３３は、Ｓ＝Ｖ’・ＨＴ＝（Ｖ＋Ｅ）・ＨＴ＝Ｖ・ＨＴ＋Ｅ・ＨＴとなる。
【００８２】
前述したように、Ｖ・ＨＴ＝０の関係が成立していることから、結局、シンドロームＳ＝Ｅ・ＨＴが成り立つ。つまり、シンドローム（Ｓ）３３は、送信語（Ｖ）３１に影響されずに誤り（Ｅ）のみで決まることから、シンドローム（Ｓ）３３に基づいてスポッティバイト誤り訂正を行うことが可能か否かは、パリティ検査行列（Ｈ）と誤り（Ｅ）とから計算されるＥ・ＨＴの値の結果によって決定できるものである。
【００８３】
上記数９に示した必要十分条件は、スポッティバイト誤りの訂正数μ１及び検出数μ２に対し、訂正・検出可能なすべてのバイト内複数スポッティバイト誤りのシンドロームと訂正可能な他のすべてのバイト内複数スポッティバイト誤りのシンドロームが異なることを示している。
【００８４】
すなわち、ｐ２個以下のバイトに生じるμ２個以下のバイト内複数スポッティバイト誤りのシンドロームと他のｐ１個以下のバイトに生じるμ１個以下のバイト内複数スポッティバイト誤りのシンドロームが異なればよい。
【００８５】
ここで、ρ１（ρ１≦ｐ１）バイトに生じる
2006244259.tif 000103
個のスポッティバイト誤りの集合を
2006244259.tif 000104
とする。ただし、
2006244259.tif 000105
である。
【００８６】
また、ρ２（ρ２≦ｐ２）バイトに生じる
2006244259.tif 000106
個のスポッティバイト誤りの集合を
2006244259.tif 000107
とする。ただし、
2006244259.tif 000108
である。
【００８７】
このとき、
2006244259.tif 000109
は、Ωｉ及びΩｊにおける誤りパターンにおいて、下記数１１の関係が成り立つ。
【００８８】
【数１１】
2006244259.tif 000110
Ωｉ及びΩｊにおけるスポッティバイト誤りは、同じバイトに誤りが生じているものがある。
2006244259.tif 000111
バイトにおいて、同じバイトに誤りが生じているとすると、下記数１２が得られる。
【００８９】
【数１２】
2006244259.tif 000112
よって、上記数１２より下記数１３が得られる。
【００９０】
【数１３】
2006244259.tif 000113
ここで、ｘ＝１、２、・・・、Ｖに対し、
2006244259.tif 000114
である。上記数１３において、
2006244259.tif 000115
と置き換え、ρ１＋ρ２−Ｖ＝ｖ１＋ｖ１＋・・・＋ｖλとすると、上記数９に示した必要十分条件が成立する。
【００９１】
よって、数１に示すパリティ検査行列で表現される符号が、上記数９に示した必要十分条件を満たすことを示すことにより、ｐ１個のバイトに生じるμ１個のスポッティバイト誤りを訂正し、かつｐ２個のバイトに生じるμ２個のスポッティバイト誤りを検出することを具体的に示す。
【００９２】
シンドロームＳとして、下記数１４の関係が成立していると仮定する。
【００９３】
【数１４】
2006244259.tif 000116
上記数１４の
2006244259.tif 000117
において、Ｈ’は任意のＭｉｎ（（μ１＋μ２）ｔ、ｂ）列が線形独立な行列であることにより、下記数１５が得られる。
【００９４】
【数１５】
2006244259.tif 000118
上記数１５において、右からＨ”Ｔをかけると、下記数１６が得られる。
【００９５】
【数１６】
2006244259.tif 000119
上記数１４、数１６において、
2006244259.tif 000120
をそれぞれ
2006244259.tif 000121
とおくと、下記数１７が得られる。ここで、Ｈ”は任意の
2006244259.tif 000122
列が線形独立な行列であることにより、
2006244259.tif 000123
となる。
【００９６】
【数１７】
2006244259.tif 000124
上記数１７において、上からｖ１＋ｖ２＋・・・＋ｖλ（≦ｐ１＋ｐ２）個の式を行列の形で表すと、下記数１８が得られる。
【００９７】
【数１８】
2006244259.tif 000125
上記数１８中のｖ１＋ｖ２＋・・・＋ｖλ行ｖ１＋ｖ２＋・・・＋ｖλ列の行列は、ヴァンデルモンドの行列の形をしているため、正則行列である。よって、上記数１８の両辺に左からこの行列の逆行列を乗算すると、下記数１９が得られる。
【００９８】
【数１９】
2006244259.tif 000126
上記数１９は、
2006244259.tif 000127
となり、前提である
2006244259.tif 000128
に矛盾する。よって、数１で表される符号は、上記数９で示される必要十分条件を満たしている。
【００９９】
したがって、前述した証明結果より、上記数１に示すパリティ検査行列（Ｈ）は、受信語（Ｖ’）３２に含まれるｐ１個のバイトに生じるμ１個のスポッティバイト誤りを訂正し、かつｐ２個のバイトに生じるμ２個のスポッティバイト誤りを検出する機能を有していることを証明することができた。
【０１００】
また、上記数５に示したパリティ検査行列（Ｈ）で表される伸長符号も、同様に上記数９に示した必要十分条件を満たすことを示すことにより、ｐ１個のバイトに生じるμ１個のスポッティバイト誤りを訂正し、かつｐ２個のバイトに生じるμ２個のスポッティバイト誤りを検出することを示すことができる。
【０１０１】
ここでは、具体的な符号パラメータを与えて、上記数１に示すパリティ検査行列（Ｈ）を構成できることを示す。なお、このパリティ検査行列（Ｈ）は、あくまで一例であって、本発明がこれに限定されないことは言うまでもない。
【０１０２】
いま、読み書きデータ幅として、８ビットを有するメモリ素子を使用したメモリシステムを対象に、ｂ＝８、ｔ＝１、μ１＝μ２＝４、ｐ１＝ｐ２＝２のパラメータを与え、バイト内１ビットの誤りをスポッティバイト誤りとして、２バイトに生じる４個のバイト内複数スポッティバイト誤り（本例の場合、ビット誤り）を訂正する機能を有する［４１／８ＥＣ］２符号のパリティ検査行列（Ｈ）を構成することとする。
【０１０３】
このとき、Ｍｉｎ（（μ１＋μ２）ｔ、ｂ）＝Ｍｉｎ（８、８）＝８より、行列Ｈ’として、任意の８列が線形独立な行列を構成すればよい。この一例として、下記数２０に示す８×８（８行８列を意味する）単位行列を構成すればよい。
【０１０４】
【数２０】
2006244259.tif 000129
また、
2006244259.tif 000130
より、行列Ｈ”として、任意の４列が線形独立な４ビット誤り検出符号の検査行列を構成すればよい。この一例として、下記数２１に示す６×８行列を示す。
【０１０５】
【数２１】
2006244259.tif 000131
次に、γをＧＦ（２）上の６次の原始多項式ｇ（ｘ）＝ｘ６＋ｘ＋１の根とすると、γは、６次の列ベクトルγ＝（０１００００）Ｔと表現することができる。
【０１０６】
つまり、γのべき表示γｉとベクトル表示との対応を示すと、次のようになる。
γ０＝（１０００００）Ｔ、 γ１＝（０１００００）Ｔ、 γ２＝（００１０００）Ｔ、
γ３＝（０００１００）Ｔ、 γ４＝（００００１０）Ｔ、 γ５＝（０００００１）Ｔ、
γ６＝（１１００００）Ｔ、 γ７＝（０１１０００）Ｔ、 γ８＝（００１１００）Ｔ、
γ９＝（０００１１０）Ｔ、 γ１０＝（００００１１）Ｔ、γ１１＝（１１０００１）Ｔ、
γ１２＝（１０１０００）Ｔ、γ１３＝（０１０１００）Ｔ、γ１４＝（００１０１０）Ｔ、
γ１５＝（０００１０１）Ｔ、γ１６＝（１１００１０）Ｔ、γ１７＝（０１１００１）Ｔ、
γ１８＝（１１１１００）Ｔ、γ１９＝（０１１１１０）Ｔ、γ２０＝（００１１１１）Ｔ、
γ２１＝（１１０１１１）Ｔ、γ２２＝（１０１０１１）Ｔ、γ２３＝（１００１０１）Ｔ、
γ２４＝（１０００１０）Ｔ、γ２５＝（０１０００１）Ｔ、γ２６＝（１１１０００）Ｔ、
γ２７＝（０１１１００）Ｔ、γ２８＝（００１１１０）Ｔ、γ２９＝（０００１１１）Ｔ、
γ３０＝（１１００１１）Ｔ、γ３１＝（１０１００１）Ｔ、γ３２＝（１００１００）Ｔ、
γ３３＝（０１００１０）Ｔ、γ３４＝（００１００１）Ｔ、γ３５＝（１１０１００）Ｔ、
γ３６＝（０１１０１０）Ｔ、γ３７＝（００１１０１）Ｔ、γ３８＝（１１０１１０）Ｔ、
γ３９＝（０１１０１１）Ｔ、γ４０＝（１１１１０１）Ｔ、γ４１＝（１０１１１０）Ｔ、
γ４２＝（０１０１１１）Ｔ、γ４３＝（１１１０１１）Ｔ、γ４４＝（１０１１０１）Ｔ、
γ４５＝（１００１１０）Ｔ、γ４６＝（０１００１１）Ｔ、γ４７＝（１１１００１）Ｔ、
γ４８＝（１０１１００）Ｔ、γ４９＝（０１０１１０）Ｔ、γ５０＝（００１０１１）Ｔ、
γ５１＝（１１０１０１）Ｔ、γ５２＝（１０１０１０）Ｔ、γ５３＝（０１０１０１）Ｔ、
γ５４＝（１１１０１０）Ｔ、γ５５＝（０１１１０１）Ｔ、γ５６＝（１１１１１０）Ｔ、
γ５７＝（０１１１１１）Ｔ、γ５８＝（１１１１１１）Ｔ、γ５９＝（１０１１１１）Ｔ、
γ６０＝（１００１１１）Ｔ、γ６１＝（１０００１１）Ｔ、γ６２＝（１００００１）Ｔ
これより、上記数２１に示す行列Ｈ”は、Ｈ”＝［γ０γ１γ２γ３γ４γ５γ１８γ２０］と表すことができる。よって、上記数１に示したパリティ検査行列（Ｈ）は、Ｈ’及びＨ”を用いて、具体的な（５０４、４７８）［４１／８ＥＣ］２符号を構成することができる。この符号の最後から４１４列削除することによって得られた（９０、６４）［４１／８ＥＣ］２符号の検査行列を図３に示す。
【０１０７】
なお、図３に示すように、パリティ検査行列（Ｈ）のＨ’及びＨ”に相当する行単位の箇所を明確化するため、その境界に実線を引いて示している。
【０１０８】
いま、パリティ検査行列（Ｈ）の構成要素であるγ３Ｈ”が、図３に示す実際のビット値と対応しているかを具体的に確認する。前述したように、Ｈ”＝［γ０γ１γ２γ３γ４γ５γ１８γ２０］より、γ３Ｈ”＝γ３［γ０γ１γ２γ３γ４γ５γ１８γ２０］＝［γ３γ４γ５γ６γ７γ８γ２１γ２３］となる。このべき表示をベクトル表示（例えば、γ０＝（１０００００）Ｔ等）に変換すれば、図３に示すａ部分に相当し、このａ部分は明らかにパリティ検査行列（Ｈ）のγ３Ｈ”部分である。同様にして、パリティ検査行列（Ｈ）における他の構成要素についても、ベクトル表示に変換すれば、全体として図３に示すビット表現の２６行９０列の構成となる。
【０１０９】
ここで、μ１＝μ２＝３に対しては、Ｍｉｎ（（μ１＋μ２）ｔ、ｂ）＝Ｍｉｎ（６、８）＝６より、行列Ｈ’として、任意の６列が線形独立な６ビット誤り検出符号の検査行列を構成すればよい。この一例として、下記数２２に示す７×８行列を示す。
【０１１０】
【数２２】
2006244259.tif 000132
また、
2006244259.tif 000133
より、行列Ｈ”として、任意の３列が線形独立な３ビット誤り検出符号の検査行列を構成すればよい。この一例として、下記数２３に示す４×８行列を示す。
【０１１１】
【数２３】
2006244259.tif 000134
また、ｔ＝２に対しては、例えば、μ１＝μ２＝３、ｐ１＝ｐ２＝２のパラメータを有する［Ｔ２／８ＥＣ］２符号では、Ｍｉｎ（（μ１＋μ２）ｔ、ｂ）＝Ｍｉｎ（１２、８）＝８より、行列Ｈ’として、任意の８列が線形独立な行列を構成すればよい。この一例として、上記数２０に示す８×８（８行８列を意味する）単位行列を構成すればよい。
【０１１２】
また、
2006244259.tif 000135
より、行列Ｈ”として、任意の６列が線形独立な６ビット誤り検出符号の検査行列を構成すればよい。この一例として、下記数２４に示す７×８行列を示す。
【０１１３】
【数２４】
2006244259.tif 000136
なお、以上は最近最も使用されている、バイト幅ｂ＝８ビット入出力を有する半導体メモリ素子を対象として、パリティ検査行列Ｈ（符号）の一例を構成して説明したが、他にも多く使用されている多ビット入出力素子、例えば、ｂ＝１６ビット入出力を有する素子等に対しても、本発明の誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号のパリティ検査行列Ｈを構成可能であることは明らかである。また、１以上の任意の整数値を有するｔに対しても、そして、任意のｐ１、ｐ２、μ１、μ２に対しても、本発明の誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号のパリティ検査行列Ｈを構成可能であることは明らかである。
【０１１４】
このように、上記では、誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号のパリティ検査行列（Ｈ）を示したが、Ｈ’の構成をｂ次の単位行列にすることにより、バイト内複数スポッティバイト誤りの訂正能力を超えた１バイト誤りを検出する機能を有する、誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号を構成することができる。
【０１１５】
すなわち、バイト誤り検出機能を有する誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号とは、ｐ１個のバイトに生じるμ１個のスポッティバイト誤りを訂正するとともに、ｐ２個のバイトに生じるμ２個のスポッティバイト誤りを検出し、かつ１バイトに生じるバイト誤りを検出する機能を備える符号である。以下では、この符号を
2006244259.tif 000137
本実施形態では、
2006244259.tif 000138
に用いるＲ行Ｎ列を有するパリティ検査行列（Ｈ）を、下記数２５に示すような構成としている。
【０１１６】
【数２５】
2006244259.tif 000139
ただし、Ｒ＝ｂ＋（ｐ１＋ｐ２−１）ｒ、Ｎ＝ｂｎ、０≦ｉ≦ｎ−１、ｎ＝２ｒ−１、Ｉｂはｂ次の単位行列である。
【０１１７】
上記数２５を構成する行列Ｈ”は、下記数２６に示すｒ次の列ベクトルｈｊ”（０≦ｊ≦ｂ−１）から構成されるｒ行ｂ列（ｒ≦ｂ）の２元行列であり、
2006244259.tif 000140
またはｂのうちいずれか小さい値に等しいか大きい列が線形独立である。ここで、
2006244259.tif 000141
はｘを超えない最大の整数を表す。
【０１１８】
【数２６】
2006244259.tif 000142
ここで、
2006244259.tif 000143
のとき、前記行列Ｈ”は単位行列を含む正則行列であり、
2006244259.tif 000144
のとき、前記行列Ｈ”は最小ハミング距離
2006244259.tif 000145
を有する符号の検査行列、すなわち、
2006244259.tif 000146
ビット誤り検出機能を有する（ｂ、ｂ−ｒ）符号のパリティ検査行列に等しい。
【０１１９】
次に、γをＧＦ(２)のｒ次の拡大体ＧＦ（２ｒ）の原始元とするときに、γｉＨ”は下記数２７で定義することができる。
【０１２０】
【数２７】
2006244259.tif 000147
このとき、最大符号長Ｎは、Ｎ＝ｂ（２ｒ−１）である。
【０１２１】
上記数２５に示したパリティ検査行列（Ｈ）は、パラメータ
2006244259.tif 000148
とした場合に、Ｈ”は任意のｂ列が線形独立な行列となるため、従来のｐ１バイト誤りを訂正するとともにｐ２バイト誤りを検出する機能を有する、ｐ１訂正ｐ２検出ＲＳ符号のパリティ検査行列と一致する。
【０１２２】
また、本実施形態では、
2006244259.tif 000149
の伸長符号を定義することができる。
2006244259.tif 000150
に用いるＲ行Ｎ列を有するパリティ検査行列（Ｈ）は、下記数２８に示すような構成とすることができる。
【０１２３】
【数２８】
2006244259.tif 000151
ただし、ｒ’≧ｒであり、Ｒ＝ｂ＋（ｐ１＋ｐ２−１）ｒ’、Ｎ＝ｂ（ｎ＋１）＋ｒ’、０≦ｉ≦ｎ−１、ｎ＝２ｒ’−１、Ｉｂはｂ次の単位行列であり、
2006244259.tif 000152
はｒ’次の単位行列で、
2006244259.tif 000153
は零行列である。
【０１２４】
上記数２８を構成する行列Ｈ”は、下記数２９に示すｒ次の列ベクトルｈｊ”（０≦ｊ≦ｂ−１）から構成されるｒ行ｂ列（ｒ≦ｂ）の２元行列であり、
2006244259.tif 000154
またはｂのうちいずれか小さい値に等しいか大きい列が線形独立である。ここで、
2006244259.tif 000155
はｘを超えない最大の整数を表す。
【０１２５】
【数２９】
2006244259.tif 000156
ここで、
2006244259.tif 000157
のとき、前記行列Ｈ”は単位行列を含む正則行列であり、
2006244259.tif 000158
のとき、前記行列Ｈ”は最小ハミング距離
2006244259.tif 000159
を有する符号の検査行列、すなわち、
2006244259.tif 000160
ビット誤り検出機能を有する（ｂ、ｂ−ｒ）符号のパリティ検査行列に等しくなる。
【０１２６】
次に、γをＧＦ(２)のｒ’次の拡大体ＧＦ（２ｒ’）の原始元とするときに、γｉＨ”は下記数３０で定義することができる。
【０１２７】
【数３０】
2006244259.tif 000161
ここで、Φは加法のもとでＧＦ（２ｒ）からＧＦ（２ｒ’）への単射準同型写像（injective homomorphism）であり、すなわち、Φ：ＧＦ（２ｒ）→ＧＦ（２ｒ’）であることによって効果的に達成される。このとき、最大符号長Ｎは、Ｎ＝ｂ・２ｒ’＋ｒ’である。数２８のＨの２行目から下の行に用いるＨ”の行数ｒ’は、ｒより大きい値をとることができ、数２８で表される符号は、（μ１＋μ２−１）ビットずつ検査ビット数を増大させることにより、任意の符号長に対して構成できる符号であることに注意する必要がある。
【０１２８】
上記数２８に示したパリティ検査行列（Ｈ）は、パラメータ
2006244259.tif 000162
とした場合に、Ｈ”は任意のｂ列が線形独立な行列となるため、従来のｐ１バイト誤りを訂正するとともにｐ２バイト誤りを検出する機能を有する、ｐ１訂正ｐ２検出２次伸長ＲＳ符号のパリティ検査行列と一致する。
【０１２９】
次に、上記数２５に示したパリティ検査行列（Ｈ）で表される符号が、ｐ１個のバイトに生じるμ１個のスポッティバイト誤りを訂正するとともに、ｐ２個のバイトに生じるμ２個のスポッティバイト誤りを検出し、かつ１バイトに生じるバイト誤りを検出する機能を有していることを具体的に示す。パリティ検査行列Ｈ＝［Ｈ０、Ｈ１、・・・、Ｈｎ−１］が上記数９及び下記数３１に示す必要十分条件を満たしていることを示せばよい。ただし、ＨｉはＲ×ｂの小行列である。
【０１３０】
【数３１】
2006244259.tif 000163
ここで、
2006244259.tif 000164
は誤りベクトルｅにおけるｉｂ番目のバイトに生じるバイト誤りで、
2006244259.tif 000165
は誤りベクトルｅにおけるｉｘ番目のバイトで、
2006244259.tif 000166
はｙ以下である最大の整数、
2006244259.tif 000167
はｚ以上である最小の整数をそれぞれ表す。
【０１３１】
また、
2006244259.tif 000168
は、すべて異なるものとし、
2006244259.tif 000169
は上記数１０で定義され、スポッティバイト誤りの個数を表している。
【０１３２】
上記数９に示した必要十分条件と同様に、上記数９及び上記数３１に示した条件を満たしていることを示すことができる。
【０１３３】
また、上記数２８に示したパリティ検査行列（Ｈ）で表される伸長符号も、同様に上記数９及び上記数３１に示した必要十分条件を満たしていることを示すことができる。
【０１３４】
このように、上記では、誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号のパリティ検査行列（Ｈ）、及びバイト誤り検出機能を有する誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号のパリティ検査行列（Ｈ）の構成法の幾つかの例を示したが、次に、本発明のパリティ検査行列（Ｈ）を用いて行う符号化処理と復号処理の具体的な方法とそれぞれの回路構成について、上記数１に示したパリティ検査行列（Ｈ）で表される、誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号
2006244259.tif 000170
を例に取って説明する。
＜Ａ＞符号化の方法及びこれを実現する回路の構成について
まず、図１に示す符号化回路２が行う符号化処理の具体的な方法について説明する。
【０１３５】
符号化回路２は、入力情報データＤ（行ベクトル）３０と、図３に示すパリティ検査行列（Ｈ）を基本行変形して得られるパリティ検査行列（Ｈ）の情報部ＨＲを用いて、検査情報Ｃ（行ベクトル）を生成する。この検査情報（Ｃ）の生成は、下記数３２により求めることができる。
【０１３６】
【数３２】
2006244259.tif 000171
具体的には、符号化回路２は、入力情報データ（Ｄ）３０の情報ビット長６４ビット及び検査ビット長２６ビットを基に、パリティ検査行列Ｈである（５０４、４７８）［４１／８ＥＣ］２符号を構成した後に、後半４１４ビットに相当する列ベクトル４１４列を削除することにより、符号ビット長９０ビット、情報長６４ビットを有する図３に示す（９０、６４）［４１／８ＥＣ］２符号を構成することができる。この符号のパリティ検査行列Ｈを基本行変形すると、組織符号としてのパリティ検査行列Ｈを構成することができる。図４は、（９０、６４）［４１／８ＥＣ］２組織符号のパリティ検査行列を示している。
【０１３７】
図４に示す（９０、６４）［４１／８ＥＣ］２組織符号のパリティ検査行列において、ｄ０〜ｄ６３が情報ビットに相当し、ｃ０〜ｃ２５が検査ビットに相当する。ここで、図４に示す（９０、６４）［４１／８ＥＣ］２組織符号のパリティ検査行列において、情報ビットに相当するｄ０〜ｄ６３の列ベクトルを集めた行列が、パリティ検査行列の情報部ＨＲとなる。
【０１３８】
ここで、符号化では図４に示すパリティ検査行列を使用し、復号では図３に示すパリティ検査行列を使用する。基本行変形して得られた行列は、もとの行列と等価であり、図４に示すパリティ検査行列で表される符号は、図３に示すパリティ検査行列で表される符号と、その性質は全く変化しない。これより、符号化においては、図４に示すパリティ検査行列を使用することとする。
【０１３９】
次に、符号化回路２は、上記数３２を基に、２６ビットの検査情報（Ｃ）を生成する。上記数３２に示すＣ＝Ｄ・ＨＲＴから明らかなように、例えば、検査情報（Ｃ）における検査ビットｃ０を生成するには、図４に示す符号化用（９０、６４）［４１／８ＥＣ］２組織符号の行列の１行目において、ｃ０に対応するビットを除いて“１”が存在する箇所に対応するビットのＧＦ（２）上の和（すなわち、２を法とする和：ｍｏｄ２）をとる演算を行えばよい。
【０１４０】
例えば、検査ビットｃ０を求める場合に、ｃ０に対応するビットを除いて“１”が存在しているのは、ｄ１、ｄ４、ｄ５、ｄ６、ｄ８、ｄ１１、ｄ１２、ｄ２０、ｄ２１、ｄ２４、ｄ２６、ｄ３１、ｄ３３、ｄ３７、ｄ３８、ｄ３９、ｄ４０、ｄ４１、ｄ４２、ｄ４３、ｄ４４、ｄ４７、ｄ４８、ｄ５２、ｄ５４、ｄ５５、ｄ５６、ｄ５７、ｄ５８であり、これら２９個のビットについて、２を法とする和（ｍｏｄ２）をとればよい。
【０１４１】
これを実現するには、図５に示すように、前記２９ビットを多入力パリティチェック回路２０（０）を構成すればよく、この多入力パリティチェック回路２０（０）の出力が検査ビットｃ０となる。他の検査ビットｃ１〜ｃ２５についても、検査ビットｃ０と同様にして生成することができる。２６ビットの検査ビットｃ０〜ｃ２５を並列に生成する符号化回路２（多入力パリティチェック回路２０（０）〜２０（２５）からなる）の上位１４ビットの構成を図５に、下位１２ビットの構成を図６にそれぞれ示す。
【０１４２】
次に、符号化回路２によって生成した検査情報（Ｃ）を、入力情報データ（Ｄ）３０に付加した符号語を下記数３３に示す。これが回路３に送られる送信語（Ｖ）（９０ビットのベクトル）となる。
【０１４３】
【数３３】
2006244259.tif 000172
＜Ｂ＞復号の方法及びこれを実現する回路の構成について
次に、送信語（Ｖ）３１に誤りが生じたとき（すなわち、受信語３２に誤りが含まれているとき）に、その誤りに対する訂正・検出処理が、図３に示す（９０、６４）［４１／８ＥＣ］２符号を用いて生成されるシンドローム（Ｓ）３３の値に基づいて可能なことを示す。
【０１４４】
図３に示す（９０、６４）［４１／８ＥＣ］２符号の検査行列は、ｐ１＝ｐ２＝２を有することから、上記数１に示すように、パリティ検査行列Ｈ’、Ｈ”による４段構成を有する。これより、１段目より得られるｑ＝８ビットのシンドロームをＳI、２段目より得られるｒ＝６ビットのシンドロームをＳII、３段目より得られるｒ＝６ビットのシンドロームをＳIII、４段目より得られるｒ＝６ビットのシンドロームをＳIVとする。
【０１４５】
これらの情報を用いて、次のように誤りの訂正・検出を行う。受信語（Ｖ’）３２とパリティ検査行列（Ｈ）とから、シンドローム（Ｓ）３３は、下記数３４により求めることができる。
【０１４６】
【数３４】
2006244259.tif 000173
ここで、ＳI∈ＧＦ（２ｑ）は、ｑ次の行ベクトルである。また、ＳII、ＳIII、ＳIV∈ＧＦ（２ｒ）は、それぞれｒ次の行ベクトルである。
【０１４７】
上記数５に示す伸長符号の場合に、ＳI∈ＧＦ（２ｑ）は、ｑ次の行ベクトルである。また、ＳII、ＳIII、ＳIV∈ＧＦ（２ｒ’）は、それぞれｒ’次の行ベクトルである。
【０１４８】
なお、シンドローム（Ｓ）３３は、例えば、ｉI番目のバイトにｅIの誤り、ｉII番目のバイトにｅIIの誤り（ｗＭ（ｅI）＋ｗＭ（ｅII）≦μ１＋μ２）が生じているときに、下記数３５となる。
【０１４９】
【数３５】
2006244259.tif 000174
ＳIに注目すると、下記数３６が成り立つ。数３６において、Ｈ’は任意のＭｉｎ（（μ１＋μ２）ｔ、ｂ）列が線形独立な行列であるため、ｅI＋ｅII（＝ｅＡとする）を求めることができる。図３に示す（９０、６４）［４１／８ＥＣ］２符号の場合に、Ｈ’は単位行列であるため、ｅＡ＝ｅI＋ｅII＝ＳIとなる。
【０１５０】
【数３６】
2006244259.tif 000175
次に、ｅI＋ｅIIにＨ”Ｔを右から乗算し、乗算した結果をＳ’I∈ＧＦ（２ｒ）とする。つまり、下記数３７の関係が成立する。
【０１５１】
【数３７】
2006244259.tif 000176
ここで、ｅI・Ｈ”Ｔ、ｅII・Ｈ”Ｔ（∈ＧＦ（２ｒ））をＧＦ（２ｒ）上の誤りｅ’I、ｅ’IIとし、Ｓ’＝［Ｓ’IＳIIＳIIIＳIV］とすると、下記数３８の関係が成り立つ。
【０１５２】
【数３８】
2006244259.tif 000177
数３８に示すＳ’は、２バイト誤り訂正ＲＳ符号（距離ｄ＝５）において誤りｅ’I、ｅ’IIにおけるシンドロームの式と一致する。よって、距離ｄ＝５を有するＧＦ（２ｒ）上のＲＳ符号の復号法を用いることで、誤り位置ｉI、ｉII及びＧＦ（２ｒ）上の誤りｅ’I、ｅ’IIを求めることができる。また、誤り位置が求まらない場合に、誤りの訂正が不可能として誤りを検出する。
【０１５３】
次に、ＧＦ（２ｒ）上の誤りｅ’I、ｅ’IIから、ＧＦ（２ｂ）上の誤りｅI、ｅIIを求める。つまり、ｅI・Ｈ”Ｔ＝ｅ’I、ｅII・Ｈ”Ｔ＝ｅ’IIの関係からｅI及びｅIIを求める。求めた結果を
2006244259.tif 000178
とする。
【０１５４】
Ｈ”は任意のＭｉｎ（２ｔ、ｂ）列が線形独立な行列であるため、１バイトにｔビット以上の誤りが生じた場合に、その誤りは、誤訂正される
2006244259.tif 000179
または制御能力外誤りとして検出される。しかし、ｔビット以上の誤りが生じるバイトは、高々１つであるため、
2006244259.tif 000180
となるバイトは高々１つである。
【０１５５】
そして、下記数３９により、誤訂正されているかどうかを判定することができる。つまり、下記数３９により、
2006244259.tif 000181
が成立するかどうかを判定することができる。すなわち、下記数３９が成立している場合に、
2006244259.tif 000182
となり誤訂正はされていないと判定され、下記数３９が成立していない場合に、
2006244259.tif 000183
となり誤訂正はされていると判定される。
【０１５６】
【数３９】
2006244259.tif 000184
なお、数３９に示す関係は、ｗＭ（ｅ）が三角不等式を満足していることから、示すことができる。また、ＧＦ（２）上のハミング距離に対する誤訂正の判定は、非特許文献１１に詳しく述べられている。
【０１５７】
最後に、誤訂正されている
2006244259.tif 000185
または制御能力外誤りとして検出されたバイトにおいて、上記において正しく訂正された誤りパターンおよびｅＡの排他的論理和をとることにより、誤訂正されているバイトにおける誤りパターンを復元することができる。
【０１５８】
なお、任意のｐ１、ｐ２、μ１、μ２に対し、つまり、前記で示した例と同様に、上記数３９により、誤訂正されているかどうかを判定し、高々１つである誤りバイトの誤りパターンを、正しく訂正された誤りパターンとｅＡとに基づいて、復元可能であることは明らかである。
【０１５９】
ＲＳ符号に対する復号は、スポッティバイト誤りを訂正するバイト数ｐ１が小さい符号に対しては、並列復号法を用いて実現することができる。この並列復号法の一般的構成は、『バースト誤りパターン生成方法及びバーストおよびバイト誤り検出・訂正装置』（特許文献５参照）に開示されている。
【０１６０】
しかしながら、特許文献５に開示された並列復号法は、高速な復号が可能であるが、符号のスポッティバイト誤りを訂正するバイト数ｐ１が大きくなると、回路量が大きくなるという問題が生じる。スポッティバイト誤りを訂正するバイト数ｐ１が大きい符号に対しては、例えば、バーレカンプ・マッシィ法などの逐次復号法を用いることができるが、逐次復号法による復号は、逐次（シリアル）に行われるため、復号が遅いといった問題が生じる。なお、バーレカンプ・マッシィ法を用いたＲＳ符号の復号回路の構成は、非特許文献１２に開示されている。
【０１６１】
特許文献５に開示された並列復号法によれば、例えば、ｐ１＝ｐ２＝２の符号に対しては、次のような手順により復号する。
【０１６２】
まず、４ｒ×ｎｒを有するＧＦ（２ｒ）上のＲＳ符号のパリティ検査行列
2006244259.tif 000186
に対し、４ｒ×２ｒの行列
2006244259.tif 000187
を構成する。ただし、
2006244259.tif 000188
は４ｒ×ｒの小行列である。
【０１６３】
次に、この行列
2006244259.tif 000189
に４ｒ×２ｒの行列Ｂ（ｉ，ｊ）を付加し、４ｒ×４ｒの正則行列
2006244259.tif 000190
を構成する。
【０１６４】
そして、Ａ（ｉ，ｊ）の逆行列
2006244259.tif 000191
を求めると、下記数４０の関係が成り立つ。
【０１６５】
【数４０】
2006244259.tif 000192
ここで、
2006244259.tif 000193
はｒ×４ｒの行列であり、
2006244259.tif 000194
となる。ただし、Ｉｒはｒ×ｒの単位行列である。また、
2006244259.tif 000195
はｒ×４ｒの行列であり、
2006244259.tif 000196
となる。また、
2006244259.tif 000197
は２ｒ×４ｒの行列であり、
2006244259.tif 000198
となる。ただし、Ｉ２ｒは２ｒ×２ｒの単位行列である。また、
2006244259.tif 000199
は２ｒ×４ｒの行列であり、
2006244259.tif 000200
となる。
【０１６６】
前記
2006244259.tif 000201
に対し、
2006244259.tif 000202
となるバイト位置ｉ，ｊが誤りの位置ｉI、ｉIIとなり、
2006244259.tif 000203
が誤りの大きさｅ’I、ｅ’IIとなる。これから、２バイトの誤りを訂正することができる。また、
2006244259.tif 000204
となるバイト位置ｉ，ｊが存在しない場合に、誤りの訂正が不可能として誤りを検出する。
【０１６７】
次に、本発明において、前述したｐ１＝ｐ２＝２の符号に対する並列復号方法を実現する復号回路４の概略構成を図７に示す。
【０１６８】
図１に示したように、復号回路４は、シンドローム生成回路１と誤り訂正回路５とから構成されている。
【０１６９】
また、図７に示すように、誤り訂正回路５は、Ｈ’復号回路６と、Ｈ”乗算回路７と、ＧＦ（２ｒ）上の並列復号回路８と、ＧＦ（２ｂ）上の誤り生成回路９と、反転回路１０とから構成されている。
【０１７０】
ここで、Ｈ’復号回路６は、シンドローム（Ｓ）３３の上位ｑビットＳI３６を基にして、バイトごとの誤りの和（ｅＡ）３８を生成する。
【０１７１】
また、Ｈ”乗算回路７は、バイトごとの誤りの和（ｅＡ）３８を基にして、シンドローム（Ｓ）３３の上位ｑビットＳI３６とＨ”の転置（Ｈ”Ｔ）の積（Ｓ’I）３９を生成する。
【０１７２】
次に、ＧＦ（２ｒ）上の並列復号回路８は、シンドローム（Ｓ）３３の上位ｑビットＳI３６とＨ”の転置（Ｈ”Ｔ）の積（Ｓ’I）３９、及びシンドローム（Ｓ）３３の下位３ｒビットＳIIＳIIIＳIV３７を基にして、ＧＦ（２ｒ）上のビット誤りポインタ（ｅ’）４０、及びＧＦ（２ｒ）上の並列復号において誤り訂正が不可能とみなされたときに出力されるＤＳ（０）（Detection  Signal）４１を生成する。
【０１７３】
そして、ＧＦ（２ｂ）上の誤り生成回路９は、バイトごとの誤りの和（ｅＡ）３８、及びＧＦ（２ｒ）上のビット誤りポインタ（ｅ’）４０を基にして、ＧＦ（２ｒ）上の誤りをＧＦ（２ｂ）上の誤りに変換して、ＧＦ（２ｂ）上のビット誤りポインタ（ｅ）４２、及び誤り訂正が不可能とみなされたときに出力されるＤＳ（１）（Detection  Signal）４３を出力する。
【０１７４】
最後に、反転回路１０は、ＧＦ（２ｂ）上のビット誤りポインタ（ｅ）４２を基にして、誤りビットに該当する受信語（Ｖ’）３２のビット値を反転させることにより、受信語（Ｖ’）３２の誤りを訂正する。
【０１７５】
次に、図７に示される復号回路４で行われる動作手順の概略を説明する。
【０１７６】
まず、シンドローム生成回路１では、Ｎビットからなる受信語（Ｖ’）３２が入力されると、Ｒビットのシンドローム（Ｓ）３３を生成する。
【０１７７】
次に、生成されたＲビットのシンドローム（Ｓ）３３は、上位ｑビットＳI３６と、下位３ｒビットＳIIＳIIIＳIV３７とに分けられる。シンドローム（Ｓ）３３の上位ｑビットＳI３６は、Ｈ’復号回路６に入力される。また、シンドローム（Ｓ）３３の下位３ｒビットＳIIＳIIIＳIV３７は、ＧＦ（２ｒ）上の並列復号回路８に入力される。
【０１７８】
そして、Ｈ’復号回路６では、詳細は後述するが、シンドローム生成回路１で生成されたシンドローム（Ｓ）３３の上位ｑビットＳI３６を基にして、ｂビットのバイトごとの誤りの和（ｅＡ）３８を出力する。
【０１７９】
そして、Ｈ”乗算回路７では、詳細は後述するが、Ｈ’復号回路６で生成されたバイトごとの誤りの和（ｅＡ）３８を基にして、シンドローム（Ｓ）３３の上位ｑビットＳI３６とＨ”の転置（Ｈ”Ｔ）の積（Ｓ’I）３９を出力する。
【０１８０】
また、ＧＦ（２ｒ）上の並列復号回路８では、詳細は後述するが、Ｈ”乗算回路７で生成されたシンドローム（Ｓ）３３の上位ｑビットＳI３６とＨ”の転置（Ｈ”Ｔ）の積（Ｓ’I）３９、及びシンドローム生成回路１で生成されたシンドローム（Ｓ）３３の下位３ｒビットＳIIＳIIIＳIV３７を基にして、ＧＦ（２ｒ）上の誤りを指摘する
2006244259.tif 000205
ビットのＧＦ（２ｒ）上のビット誤りポインタ
2006244259.tif 000206
を生成する。ここで、
2006244259.tif 000207
はｙを超える最小の整数を示す。また、ＧＦ（２ｒ）上の並列復号回路８では、ＧＦ（２ｒ）上の並列復号において、誤り訂正が不可能とみなされたときに、訂正不可能誤り検出信号（ＤＳ（０））４１を出力する。
【０１８１】
そして、ＧＦ（２ｂ）上の誤り生成回路９では、詳細は後述するが、Ｈ’復号回路６で生成されたバイトごとの誤りの和（ｅＡ）３８、及びＧＦ（２ｒ）上の並列復号回路８で生成されたＧＦ（２ｒ）上のビット誤りポインタ（ｅ’）４０を基にして、ＧＦ（２ｂ）上の誤りを指摘するＮビットのＧＦ（２ｂ）上のビット誤りポインタｅ＝（ｅ０、ｅ１、・・・、ｅＮ−１）４２を生成する。また、ＧＦ（２ｂ）上の誤り生成回路９では、誤り訂正が不可能とみなされたときに、訂正不可能誤り検出信号（ＤＳ（１））４３を出力する。
【０１８２】
次に、反転回路１０では、ＧＦ（２ｂ）上の誤り生成回路９で生成されたＮビットのＧＦ（２ｂ）上のビット誤りポインタ（ｅ）４２、及び受信語（Ｖ’）３２を基にして、ＧＦ（２ｂ）上のビット誤りポインタ（ｅ）４２に対応した受信語（Ｖ’）３２のビットを反転する。
【０１８３】
最後に、反転回路１０では、Ｎビットの誤り訂正された受信語Ｖ＊から、Ｋビットの情報語Ｄ＊を取り出し、出力情報データ３４として出力する。
【０１８４】
また、ＧＦ（２ｒ）上の並列復号回路８で生成された訂正不可能誤り検出信号（ＤＳ（０））４１と、ＧＦ（２ｂ）上の誤り生成回路９で生成された訂正不可能誤り検出信号（ＤＳ（１））４３の論理和をとることにより、訂正不可能誤り検出信号ＵＣＥ（Uncorrectable  Error）３５の値を出力する。例えば、この訂正不可能誤り検出信号ＵＣＥ３５の値が“１”であれば、訂正能力を超えた誤りを検出したことを示している。
【０１８５】
なお、上記数５に示すパリティ検査行列（Ｈ）で表される伸長符号
2006244259.tif 000208
、上記数２５に示すパリティ検査行列（Ｈ）で表されるバイト誤り検出機能を有する誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号、及び上記数２８に示すパリティ検査行列（Ｈ）で表される伸長符号
2006244259.tif 000209
についても、それらの復号方法及び回路構成は、上述した復号方法及び回路構成と基本的に同一である。
【０１８６】
次に、シンドローム生成回路１、Ｈ’復号回路６、Ｈ”乗算回路７、ＧＦ（２ｒ）上の並列復号回路８、ＧＦ（２ｂ）上の誤り生成回路９、及び反転回路１０のそれぞれの具体的な構成例を、図３に示す（９０、６４）［４１／８ＥＣ］２符号を用いて説明する。
＜ａ＞シンドローム生成回路１の構成
ここでは、シンドローム生成回路１の構成について詳細に説明する。
【０１８７】
まず、シンドローム生成回路では、Ｎ＝９０（＝６４＋２６）ビットからなる受信語（Ｖ’）３２を、下記数４１に示すように表現したとき、この受信語（Ｖ’）３２を入力して、下記数４２に示すＳ０、Ｓ１、・・・、Ｓ２５からなるＲ＝２６ビットのシンドローム（Ｓ）３３を生成する。
【０１８８】
前述したように、図３に示す［４１／８ＥＣ］２符号のパリティ検査行列が４段構成を有することから、これに対応してシンドローム（Ｓ）３３も４個の部分に区分けし、ＳI＝（Ｓ０Ｓ１Ｓ２Ｓ３Ｓ４Ｓ５Ｓ６Ｓ７）、ＳII＝（Ｓ８Ｓ９Ｓ１０Ｓ１１Ｓ１２Ｓ１３）、ＳIII＝（Ｓ１４Ｓ１５Ｓ１６Ｓ１７Ｓ１８Ｓ１９）、ＳIV＝（Ｓ２０Ｓ２１Ｓ２２Ｓ２３Ｓ２４Ｓ２５）とする。
【０１８９】
【数４１】
2006244259.tif 000210
【０１９０】
【数４２】
2006244259.tif 000211
上記数３４に示したように、シンドロームＳ＝Ｖ’・ＨＴより、転置したパリティ検査行列（ＨＴ）の各行は、入力する情報に対応し、例えば、行列（ＨＴ）の第０行は、入力情報のｖ０’に対応している。
【０１９１】
そこで、シンドローム（Ｓ）３３の各ビットを生成するには、符号であるパリティ検査行列（ＨＴ）の各列方向に、“１”を有するビットに対応する受信語（Ｖ’）３２の受信情報をＧＦ（２）上で加算（ｍｏｄ２の計算）すればよい。
【０１９２】
図８及び図９は、図３に示した（９０、６４）［４１／８ＥＣ］２符号のパリティ検査行列を基に構成したシンドローム生成回路１を示す図である。図８では、Ｓ０、Ｓ１、・・・、Ｓ１３といったシンドローム（Ｓ）３３の上位１４ビット、また、図９では、Ｓ１４、Ｓ１５、・・・、Ｓ２５といったシンドローム（Ｓ）３３の下位１２ビットをそれぞれ生成している。
【０１９３】
図８及び図９に示すように、本実施例では、シンドローム生成回路１において、まず、２６個の多入力パリティチェック回路２１（ｐ）、（ｐ＝０、１、・・・、２５）に、図３に示した（９０、６４）［４１／８ＥＣ］２符号のパリティ検査行列の対応する各行のビット“１”を有する受信情報（ｖｑ’）、（ｑ＝０、１、・・・、８９）が入力する。
【０１９４】
次に、各多入力パリティチェック回路２１（ｐ）、（ｐ＝０、１、・・・、２５）において、前記入力された受信情報（ｖｑ’）に対して、２を法とする和（ｍｏｄ２）の計算を行い、その結果がＳｐである。
【０１９５】
具体的に、例えば、シンドローム（Ｓ）３３のビットＳ０を生成するには、９０ビットの受信語ｖ０’、ｖ１’、・・・、ｖ８９’のうち、図３に示すパリティ検査行列の第０行目において、“１”が存在する箇所に相当するｖ０’、ｖ８’、ｖ１６’、ｖ２４’、ｖ３２’、ｖ４０’、ｖ４８’、ｖ５６’、ｖ６４’、ｖ７２’、ｖ８０’、ｖ８８’の１２ビットについて、２を法とする和（ｍｏｄ２）をとればよい。図８の多入力パリティチェック回路２１（０）は、前記１２ビットの受信情報を入力として、値Ｓ０を出力するようになっている。シンドローム（Ｓ）３３の他のビットＳｐ、（ｐ＝１、・・・、２５）についても同様である。
＜ｂ＞Ｈ’復号回路６の構成
次に、Ｈ’復号回路６について説明する。
【０１９６】
Ｈ’復号回路６を図１０に示す。数３６に示した（ｅI＋ｅII）・Ｈ’Ｔ＝ＳIにおいて、Ｈ’は任意のＭｉｎ（（μ１＋μ２）ｔ、ｂ）列が線形独立な行列であるため、ｅI＋ｅII（＝ｅＡとする）を求めることができる。よって、論理合成を行うことにより、組み合わせ回路で実現することができる。
【０１９７】
図３に示す（９０、６４）［４１／８ＥＣ］２符号の場合、Ｈ’は単位行列であるため、ｅＡ＝ｅI＋ｅII＝ＳIとなる。すなわち、
2006244259.tif 000212
、ＳI＝（Ｓ０Ｓ１Ｓ２Ｓ３Ｓ４Ｓ５Ｓ６Ｓ７）に対し、図１０に示すように、
2006244259.tif 000213
となる。
【０１９８】
一方、Ｈ’が単位行列でない場合に、＜ｅ＞において後述する方法を用いる。
＜ｃ＞Ｈ”乗算回路７の構成
次に、Ｈ”乗算回路７について説明する。
【０１９９】
Ｈ”乗算回路７を図１１に示す。数３７に示したＳ’I＝（ｅI＋ｅII）・Ｈ”Ｔ＝ｅＡ・Ｈ”Ｔを計算する。下記数４３に示すＨ”の対応する各行のビット“１”を有するｅＡの情報が、Ｈ”乗算回路７に入力される。そして、Ｈ”乗算回路７では、前記入力されたｅＡの情報に対し、ｍｏｄ２の計算を行い、その結果をＳ’ｐ（ｐ＝０、１、・・・、５）として出力する。
【０２００】
【数４３】
2006244259.tif 000214
具体的に、例えば、シンドローム（Ｓ）３３の上位ｑビットＳI３６とＨ”の転置（Ｈ”Ｔ）の積（Ｓ’I）３９のビットＳ’０を生成するには、８ビットの
2006244259.tif 000215
のうち、数４３に示すパリティ検査行列Ｈ”の第０行目において、“１”が存在する箇所に相当する２ビット
2006244259.tif 000216
の値に対して、２を法とする和（ｍｏｄ２）をとればよい。
【０２０１】
図１１において、排他的論理和回路２２では、前記２ビットのｅＡの情報
2006244259.tif 000217
が入力されて、値Ｓ’０を出力していることを示している。
【０２０２】
シンドローム（Ｓ）３３の上位ｑビットＳI３６とＨ”の転置（Ｈ”Ｔ）の積（Ｓ’I）３９のほかのビットＳ’ｐについても、同様に、排他的論理和回路２２及び３入力パリティチェック回路２３を用いて、構成することができる。
【０２０３】
ここで、Ｓ’は数４４に示す構成とする。
【０２０４】
【数４４】
2006244259.tif 000218
＜ｄ＞ＧＦ（２６）上の並列復号回路８の構成
次に、ＧＦ（２６）上の並列復号回路８について説明する。
【０２０５】
ＧＦ（２６）上のビット誤りポインタ４０を求めるために、並列復号法を用いる。ＧＦ（２６）上の並列復号回路８の全体構成を図１２に示す。
【０２０６】
図１２に示されるように、ＧＦ（２６）上の並列復号回路８は、１２バイト中任意の２バイトの組
2006244259.tif 000219
を選び、ｉ、ｊ番目の２バイト（以下、（ｉ、ｊ）と表現することとする）に関する各々の誤りを生成する回路である（ｉ、ｊ）に対する誤り生成回路５０（０）・・・５０（６５）、（以下、代表として５０（ｍ）、０≦ｍ≦６５、と称する）と、ＧＦ（２６）上のビット誤りポインタ（ｅ’）４０を出力するＧＦ（２６）上の誤り算出回路５１とから構成されている。
【０２０７】
まず、（ｉ、ｊ）に対する誤り生成回路５０（ｍ）は、バイト位置ｉ、ｊに対して、上述した
2006244259.tif 000220
を計算する回路である。要するに、（ｉ、ｊ）に対する誤り生成回路５０（０）〜５０（６５）は、符号語の１２バイト中のｉ、ｊ（０≦ｉ＜ｊ≦１１）番目のバイトに対する前述した
2006244259.tif 000221
を計算し、Ｅ’ｍ、ｉ、Ｅ’ｍ、ｊになる誤り５２（ｍ）、０≦ｍ≦６５、０≦ｉ＜ｊ≦１１（それぞれｒビットのベクトル）、及び訂正可能信号５３（ｍ）、０≦ｍ≦６５、を出力する。
【０２０８】
また、ＧＦ（２６）上の誤り算出回路５１は、ＧＦ（２６）上のビット誤りポインタ（ｅ’）４０を出力する回路である。要するに、ＧＦ（２６）上の誤り算出回路５１は、誤り生成回路５０（ｍ）の出力である誤りＥ’ｍ、ｉ、Ｅ’ｍ、ｊを入力とし、ＧＦ（２６）上のビット誤りポインタ（ｅ’）４０を出力する。
【０２０９】
ここで、ＧＦ（２６）上の並列復号回路８の処理をより詳しく説明すると、図１２に示すように、まず、２４ビットのＳ’（シンドローム（Ｓ）３３の上位ｑビットＳI３６とＨ”の転置（Ｈ”Ｔ）の積（Ｓ’I）３９、及びシンドローム（Ｓ）３３の下位３ｒビットＳIIＳIIIＳIV３７）を（ｉ、ｊ）に対する誤り生成回路５０（ｍ）に入力する。
【０２１０】
次に、（ｉ、ｊ）に対する誤り生成回路５０（ｍ）は、誤りＥ’ｍ、ｉ、Ｅ’ｍ、ｊを生成し、そして、生成した誤りＥ’ｍ、ｉ、Ｅ’ｍ、ｊをＧＦ（２６）上の誤り算出回路５１に入力する。次に、ＧＦ（２６）上の誤り算出回路５１は、ＧＦ（２６）上のビット誤りポインタ（ｅ’）４０を出力する。
【０２１１】
また、２４ビットのＳ’（シンドローム（Ｓ）３３の上位ｑビットＳI３６とＨ”の転置（Ｈ”Ｔ）の積（Ｓ’I）３９、及びシシンドローム（Ｓ）３３の下位３ｒビットＳIIＳIIIＳIV３７）を２４ビット入力ＯＲゲート回路５４に入力する。
【０２１２】
一方、（ｉ、ｊ）に対する誤り生成回路５０（ｍ）によって生成される訂正可能信号５３（ｍ）を、６６入力ＮＯＲゲート回路５５に入力する。
【０２１３】
２４ビット入力ＯＲゲート回路５４及び６６入力ＮＯＲゲート回路５５からそれぞれ出力された２本の信号を２入力ＡＮＤゲート回路５６に入力する。２入力ＡＮＤゲート回路５６は、訂正不可能誤り検出信号（ＤＳ（０））４１を出力する。これらの回路により、シンドロームが非零且つ訂正可能信号がすべて０の場合に、誤りを検出する。
【０２１４】
次に、（ｉ、ｊ）に対する誤り生成回路５０（ｍ）の構成例を具体的に示す。例として、（０、１）に対する誤り生成回路５０（０）を図１３に示す。図１３に示されるように、（ｉ、ｊ）に対する誤り生成回路５０（ｍ）は、
2006244259.tif 000222
計算回路６０と、
2006244259.tif 000223
計算回路６１と、
2006244259.tif 000224
計算回路６２とを備える。
【０２１５】
ここで、
2006244259.tif 000225
は下記数４５に示すＧＦ（２６）上のＲＳ符号の検査行列であり、符号長７２ビットと検査ビット長２４ビットとを有する。ただし、γはＧＦ（２６）の元であり、下記数４６に示すように、生成多項式ｇ（ｘ）＝ｘ６＋ｘ＋１で定義される２元の６×６随伴行列（companion  matrix）で表現される。
【０２１６】
【数４５】
2006244259.tif 000226
【０２１７】
【数４６】
2006244259.tif 000227
例えば、（０、１）に対する誤り生成回路５０（０）では、
2006244259.tif 000228
は、数４５の第０列、第１列に相当し、それぞれ下記数４７に示す２４×６行列となる。
【０２１８】
【数４７】
2006244259.tif 000229
次に、
2006244259.tif 000230
から２４×１２の行列
2006244259.tif 000231
を構成し、
2006244259.tif 000232
に２４×１２の行列Ｂ（０，１）を付加することにより、下記数４８に示す２４×２４の正則行列
2006244259.tif 000233
を構成する。ここで、Ｂ（０，１）はＡ（０，１）が正則行列となるように求めた２４×１２の行列であり、一例である。
【０２１９】
【数４８】
2006244259.tif 000234
次に、Ａ（０，１）の逆行列
2006244259.tif 000235
を求めると、下記数４９の関係が成り立つ。
2006244259.tif 000236
は、それぞれ下記数５０、数５１、数５２に示す行列となる。
【０２２０】
【数４９】
2006244259.tif 000237
【０２２１】
【数５０】
2006244259.tif 000238
【０２２２】
【数５１】
2006244259.tif 000239
【０２２３】
【数５２】
2006244259.tif 000240
2006244259.tif 000241
計算回路６０では、
2006244259.tif 000242
の各列が入力する情報に対応し、例えば、
2006244259.tif 000243
の第０行が入力情報のＳ’０に対応している。そこで、
2006244259.tif 000244
の各ビットを生成するには、
2006244259.tif 000245
の各行方向に、“１”を有するビットに対応するシンドロームＳ’の情報をＧＦ（２）上で加算（ｍｏｄ２の計算）すればよい。
【０２２４】
要するに、
2006244259.tif 000246
計算回路６０は、まず、前記
2006244259.tif 000247
の対応する各行のビット“１”を有するシンドローム情報（Ｓ’ｐ）、（ｐ＝０、１、・・・、２３）をそれぞれ６個の多入力パリティチェック回路６３（ｕ）、（ｕ＝０、１、・・・、５）に入力する。次に、これらのシンドローム情報についてｍｏｄ２の計算を行い、その結果としてＥ’０、０、Ｅ’０、１を出力する。
【０２２５】
具体的に、例えば、Ｅ’０、０の０ビット目を生成するには、２４ビットのシンドロームＳ’＝Ｓ’０、Ｓ’１、・・・、Ｓ’２３のうち、上記数５０に示す
2006244259.tif 000248
の第０行目において“１”が存在する箇所に相当する５ビットｓ’０、ｓ’５、ｓ’９、ｓ’２１、ｓ’２３の値について、２を法とする和（ｍｏｄ２）をとればよい。図１３の多入力パリティチェック回路６３（０）は、この５ビットｓ’０、ｓ’５、ｓ’９、ｓ’２１、ｓ’２３のシンドロームが入力される。また、多入力パリティチェック回路６３（０）は、５２（０）であるＥ’０、０の０ビット目を出力する。なお、Ｅ’０、０の他のビットについても同様である。
【０２２６】
また、図１３に示されるように、
2006244259.tif 000249
計算回路６１は、６個の多入力パリティチェック回路６４（ｗ）、（ｗ＝０、１、・・・、５）で構成され、そして、
2006244259.tif 000250
計算回路６２は、１２個の多入力パリティチェック回路６５（ｚ）、（ｚ＝０、１、・・・、１１）で構成される。これらの計算回路は、
2006244259.tif 000251
計算回路６０と同様の方法で構成することができる。
【０２２７】
ここで、（０、１）に対する誤り生成回路５０（０）の処理をより詳しく説明すると、図１３に示すように、２４ビットのシンドロームＳ’を多入力パリティチェック回路６３（ｕ）、（ｕ＝０、１、・・・、５）に入力することにより、Ｅ’０、０を生成する。また、２４ビットのシンドロームＳ’を多入力パリティチェック回路６４（ｗ）、（ｗ＝０、１、・・・、５）に入力することにより、Ｅ’０、１を生成する。
【０２２８】
また、２４ビットのシンドロームＳ’を多入力パリティチェック回路６５（ｚ）、（ｚ＝０、１、・・・、１１）に入力する。多入力パリティチェック回路６５（ｚ）、（ｚ＝０、１、・・・、１１）から出力される１２ビットの信号を１２入力ＮＯＲゲート回路６５に入力し、（０、１）に対する訂正可能信号５３（０）を出力する。これらの回路は、
2006244259.tif 000252
となるバイトの組（ｉ、ｊ）が誤りのバイトの組であるため、
2006244259.tif 000253
であることを検出し、バイトの組（ｉ、ｊ）で訂正可能であることを意味する。
【０２２９】
また、（０、１）に対する訂正可能信号５３（０）と多入力パリティチェック回路６３、多入力パリティチェック回路６４からの出力信号を２入力ＡＮＤゲート回路６７に入力し、Ｅ’０、０及びＥ’０、１を出力する。これらの回路は、誤りが生じているバイトの組である場合に、誤りを出力し、そうでない場合に、０のパターンを出力するようにしている。
【０２３０】
以上より、（０、１）に対する誤り生成回路５０（０）は、誤りＥ’０、０、Ｅ’０、１５２（０）、及び（０、１）に対する訂正可能信号５３（０）を最終的に出力する。ここでは、（０、１）に対する誤り生成回路５０（０）を例にして説明したが、他のバイト（ｉ、ｊ）に対しても同様である。
【０２３１】
次に、ＧＦ（２６）上の誤り算出回路５１の構成例を具体的に示す。ＧＦ（２６）上の誤り算出回路５１を図１４に示す。
【０２３２】
図１４に示されるように、ＧＦ（２６）上の誤り算出回路５１は、ｉ番目のバイトに対応するすべての誤りＥ’ｍ、ｉをビットごとＯＲ演算回路６８に入力し、ＧＦ（２６）上のビット誤りポインタ（ｅ’）４０を最終的に出力する。これらの回路は、ｉ番目に対応するバイトの組（ｉ、ｊ）からの誤りＥ’ｍ、ｉを統合し、ｉ番目の誤りｅｉ’を出力するようにしている。
【０２３３】
具体的に、例えば、ＧＦ（２６）上のビット誤りポインタ（ｅ’）４０のｅ’６を出力するには、（０、１）に対する誤り生成回路５０（０）、（１、２）に対する誤り生成回路５０（１１）、・・・、及び（１、１１）に対する誤り生成回路５０（２０）から出力されるＥ’０、１、Ｅ’１１、１、・・・、Ｅ’２０、１の０ビット目をビットごとのＯＲ演算回路６８に入力することにより得られる。ビットごとのＯＲ演算回路６８では、６ビットを有するＥ’０、１、Ｅ’１１、１、・・・、Ｅ’２０、１の０ビット目をそれぞれ１１入力ＯＲ回路６９に入力することにより、Ｅ’０、１、Ｅ’１１、１、・・・、Ｅ’１９、１の０ビット目を統合し、ｅ６’を出力している。
【０２３４】
以上では、ＧＦ（２６）上のビット誤りポインタ（ｅ’）４０のｅ’６を例にして説明したが、他のビット値ｅ’０、・・・、ｅ’６５についても、まったく同様である。
＜ｅ＞ＧＦ（２８）上の誤り生成回路９の構成
次に、ＧＦ（２８）上の誤り生成回路９について説明する。ＧＦ（２８）上の誤り生成回路９の全体構成を図１５に示す。
【０２３５】
図１５に示すように、ＧＦ（２８）上の誤り生成回路９は、ｔビット誤り訂正復号回路７０と、１２入力ソート回路７３と、ｉバイトにおける誤訂正判定回路７４とを備えており、ＧＦ（２６）上のビット誤りポインタ（ｅ’）４０と、バイトごとの誤りの和（ｅＡ）３８とを入力とし、ＧＦ（２８）上のビット誤りポインタ（ｅ）４２と、訂正不可能誤り検出信号（ＤＳ（１））４３とを出力する回路である。
【０２３６】
ここで、ｔビット誤り訂正復号回路（本例では、２ビット誤り訂正復号回路）７０では、ＧＦ（２６）上のビット誤りポインタ（ｅ’）４０の１バイトを入力とし、復号結果ビット誤りポインタ
2006244259.tif 000254
の１バイトと、訂正能力をこえた誤りを検出する信号であるｉバイトにおける検出信号７２とを出力する。
【０２３７】
そして、１２入力ソート回路７３は、ｔビット誤り訂正復号回路７０から出力されるｉバイトにおける検出信号７２を入力とし、入力される１２ビットの情報中の重み（１の数）を数え、その重みの数だけ出力の上位ビットから１を連続して表記する回路である。例えば、１２ビットの入力情報中に１が６個存在する場合、この回路の出力１２ビットのうち上位６ビットはすべて１を、残りの６ビットはすべて０を出力する回路である。
【０２３８】
最後に、ｉバイトにおける誤訂正判定回路７４では、すべてのバイトのｔビット誤り訂正復号回路７０から出力される復号結果ビット誤りポインタ
2006244259.tif 000255
と、ｉバイトにおける検出信号７２と、バイトごとの誤りの和（ｅＡ）３８とを入力とし、ＧＦ（２８）上のビット誤りポインタ（ｅ）４２の１バイトを出力する。
【０２３９】
ここで、ＧＦ（２８）上の誤り生成回路９の処理をより詳しく説明すると、図１５に示すように、ＧＦ（２６）上のビット誤りポインタ（ｅ’）４０を６ビットずつに分け、２ビット誤り訂正復号回路７０にそれぞれ入力する。
【０２４０】
そして、２ビット誤り訂正復号回路７０から出力されたｉバイトにおける検出信号７２は、１２入力ソート回路７３に入力される。１２入力ソート回路７３から出力された信号において、２バイト以上の２ビット誤り訂正復号回路７０において誤りを検出した場合に、制御能力外の誤りが生じたとして誤りを検出する（一方、１バイトの２ビット誤り訂正復号回路７０において誤りを検出した場合に、詳しくは後述するように、ｉバイトにおける誤訂正判定回路７３において誤りの訂正を行う）。よって、１２入力ソート回路７３から出力された信号において、その上位２ビット目の信号を訂正不可能誤り検出信号（ＤＳ（１））４３として出力する。
【０２４１】
また、すべてのバイトの２ビット誤り訂正復号回路７０から出力された復号結果ビット誤りポインタ
2006244259.tif 000256
と、ｉバイトにおける検出信号７２と、バイトごとの誤りの和（ｅＡ）３８とを、それぞれｉバイトにおける誤訂正判定回路７４に入力する。
【０２４２】
そして、すべてのｉバイトにおける誤訂正判定回路７４では、ｉバイトにおける検出信号７２から出力された信号を集め、９０ビットのＧＦ（２ｂ）上のビット誤りポインタ４２を出力する。
【０２４３】
次に、２ビット誤り訂正復号回路７０の構成例を具体的に示す。
【０２４４】
例として、１バイト目に対する２ビット誤り訂正復号回路７０において、１バイト目に対する復号結果ビット誤りポインタ
2006244259.tif 000257
の上位４ビットを出力する回路を図１６に、１バイト目に対する復号結果ビット誤りポインタ
2006244259.tif 000258
の下位４ビットを出力する回路を図１７に、そして、訂正能力をこえた誤りが検出されたときに“１”を出力する１バイトにおける検出信号７２を出力する回路（つまり、後述する検出信号出力部）を図１８にそれぞれ示す。
【０２４５】
１バイト目に対する２ビット誤り訂正復号回路７０は、ＧＦ（２６）上のビット誤りポインタ（ｅ’）４０の１バイト目を入力とし、復号結果ビット誤りポインタ
2006244259.tif 000259
の１バイト目及び１バイトにおける検出信号７２を出力する回路である。
【０２４６】
上述したような２ビット誤り訂正復号回路７０では、Ｈ”により復号した結果である誤り
2006244259.tif 000260
及びＧＦ（２６）上の誤りｅI’に対し、
2006244259.tif 000261
は単射の関係となっている。よって、論理合成を行うことにより、組み合わせ回路で実現することができる。
【０２４７】
ただし、Ｈ”は任意の４列が線形独立な行列であるため、すなわち、２ビット誤り訂正符号の検査行列であるため、［４１／８ＥＣ］２符号において、１バイトに３ビットや４ビットの誤りが生じた場合、Ｈ”で復号した結果が誤訂正されるか、または制御能力外誤りとして検出される。１バイトに３ビットや４ビットの誤りが誤訂正された場合に、詳しくは後述するように、誤訂正判定を行うことにより、誤訂正されているかどうかを判別することができる。
【０２４８】
具体的に、例えば、図１６において、情報１バイト目では、
2006244259.tif 000262
であり、Ｈ”は、上記数２４に示す任意の４列が線形独立な行列であるため、すなわち、２ビット誤り訂正符号の検査行列であるため、重みが２以下のＨ”により復号した結果である誤り
2006244259.tif 000263
、及びＧＦ（２６）上の誤りｅI’は一意に定まる。
【０２４９】
よって、重みが２以下のＨ”により復号した結果である誤り
2006244259.tif 000264
、及びＧＦ（２６）上の誤りｅI’＝（ｅ６’ｅ７’ｅ８’ｅ９’ｅ１０’ｅ１１’）は、下記表１に示す関係を有する。
【０２５０】
【表１】
2006244259.tif 000265
ここで、ＧＦ（２６）上の誤りｅI’は３７パターンあるが、残りの２６−３７＝２７パターンに対する
2006244259.tif 000266
は、訂正能力外誤り（制御能力外誤り）として検出し、
2006244259.tif 000267
の出力はドントケア＊とする。
【０２５１】
例えば、上記表１に示されたＨ”により復号した結果である誤り
2006244259.tif 000268
とＧＦ（２６）上の誤りｅI’の対応関係から、情報１バイト目の１ビット目の値
2006244259.tif 000269
は、ｅI’＝（ｅ６’ｅ７’ｅ８’ｅ９’ ｅ１０’ｅ１１’）＝（１０００００）、（１１００００）、（１０１０００）、（１００１００）、（０１１１００）、（１０００１０）、（１０１１１１）、（１００００１）のときに、１となる。
【０２５２】
また、上記表１に示されたＨ”により復号した結果である誤り
2006244259.tif 000270
とＧＦ（２６）上の誤りｅI’の対応関係において、残った２７パターンのＧＦ（２６）上の誤りｅI’＝（ｅ６’ｅ７’ｅ８’ｅ９’ｅ１０’ｅ１１’）＝（１００１１０）、（１１０１１０）、（０１０１１０）、（０１１１１０）、（１０１１１０）、（１１００１０）、（０１１０１０）、（１１１０１０）、（１０１０１０）、（１０００１１）、（０１００１１）、（０１１０１１）、（１１１０１１）、（１０１０１１）、（１００１１１）、（１１０１１１）、（０１０１１１）、（１１１１１１）、（１００１０１）、（１１０１０１）、（０１０１０１）、（０１１１０１）、（１０１１０１）、（１１０００１）、（０１１００１）、（１１１００１）、（１０１００１）に対する情報１バイト目の１ビット目の値
2006244259.tif 000271
は、ドントケア＊とする。
【０２５３】
これらの論理関数を簡単化すると、情報１バイト目の１ビット目の値
2006244259.tif 000272
は、下記数５３に示す論理式で表される。
【０２５４】
【数５３】
2006244259.tif 000273
ただし、
2006244259.tif 000274
は
2006244259.tif 000275
の否定で、
2006244259.tif 000276
は
2006244259.tif 000277
であり、また、
2006244259.tif 000278
は論理和を、
2006244259.tif 000279
は論理積を表す。
【０２５５】
よって、図１６に示されるように、まず、ＧＦ（２６）上のビット誤りポインタ４０ｅ’６、ｅ’７、ｅ’８、ｅ’９、ｅ’１０、ｅ’１１をＮＯＴゲート回路８０に入力し、
2006244259.tif 000280
を生成する。そして、
2006244259.tif 000281
を３入力ＡＮＤゲート回路８１に、
2006244259.tif 000282
を４入力ＡＮＤゲート回路８２に、
2006244259.tif 000283
を５入力ＡＮＤゲート回路８３に、
2006244259.tif 000284
を４入力ＡＮＤゲート回路８２に、
2006244259.tif 000285
を４入力ＡＮＤゲート回路８２にそれぞれ入力する。それぞれのＡＮＤゲート回路から出力された信号を５入力ＯＲゲート回路８４に入力することにより、情報１バイト目の１ビット目の値
2006244259.tif 000286
が得られる。
【０２５６】
図１６及び図１７に示されるように、他のビットの値
2006244259.tif 000287
も、ＮＯＴゲート回路８０、３入力ＡＮＤゲート回路８１、４入力ＡＮＤゲート回路８２、５入力ＡＮＤゲート回路８３、５入力ＯＲゲート回路８４、６入力ＯＲゲート回路８５により、同様にして得られる。
【０２５７】
また、ｔビット誤り訂正復号回路（本例では、２ビット誤り訂正復号回路）７０の検出信号出力部も同様にして、構成することができる。検出信号出力部は、ＧＦ（２６）上の誤りｅI’から写像されることのないＨ”により復号した結果である誤り
2006244259.tif 000288
を訂正不可能な誤りとして検出する。例えば、１バイト目に対する２ビット誤り訂正復号回路７０の検出信号出力部を図１８に示す。
【０２５８】
具体的に、例えば、情報１バイト目において、上記表１に示されたＨ”により復号した結果である誤り
2006244259.tif 000289
とＧＦ（２６）上の誤りｅI’の対応関係において、残った２７パターンのＧＦ（２６）上の誤りｅI’＝（ｅ６’ｅ７’ｅ８’ｅ９’ｅ１０’ｅ１１’）＝（１００１１０）、（１１０１１０）、（０１０１１０）、（０１１１１０）、（１０１１１０）、（１１００１０）、（０１１０１０）、（１１１０１０）、（１０１０１０）、（１０００１１）、（０１００１１）、（０１１０１１）、（１１１０１１）、（１０１０１１）、（１００１１１）、（１１０１１１）、（０１０１１１）、（１１１１１１）、（１００１０１）、（１１０１０１）、（０１０１０１）、（０１１１０１）、（１０１１０１）、（１１０００１）、（０１１００１）、（１１１００１）、（１０１００１）に対する検出信号の値を１にし、誤りを検出する。
【０２５９】
よって、これらの論理関数を簡単化すると、検出信号の値は、下記数５４に示す論理式で表される。
【０２６０】
【数５４】
2006244259.tif 000290
よって、図１８に示されるように、まず、ＧＦ（２６）上のビット誤りポインタ４０ｅ’６、ｅ’７、ｅ’８、ｅ’９、ｅ’１０、ｅ’１１をＮＯＴゲート回路８０に入力し、
2006244259.tif 000291
を生成する。
【０２６１】
そして、
2006244259.tif 000292
を合計１４個の４入力ＡＮＤゲート８２及び５入力ＡＮＤゲート８３にそれぞれ入力する。
【０２６２】
最後に、それぞれのＡＮＤゲート回路から出力された信号を、１４入力ＯＲ回路８６に入力することにより、１バイトにおける検出信号７２を出力する。
【０２６３】
なお、以上では、１バイト目におけるｔビット誤り訂正復号回路７０を例として詳細に説明したが、他のバイトについてもまったく同様である。
【０２６４】
次に、１２入力ソート回路７３の構成例を図１９に示す。
【０２６５】
図１９に示すように、１２ビットの入力情報がソートされ、２入力ＯＲゲート回路７５、及び２入力ＡＮＤゲート回路７６が対になって構成された２入力２出力回路をセルとして、１２入力に対してこのセルを多段に接続して構成している。このソート回路は、一般に、ｎビット入力中に１の数がｘ個存在すれば、ｎビットの上位ｘ個に１を出力し、残りの出力はすべて０を出力する回路である。なお、この回路の一般的な構成は、非特許文献１３に述べられている。
【０２６６】
図１９に示すように、１２入力１２出力の回路である１２入力ソート回路７３では、このセルを３９個（すなわち、７８ゲート）使用し、最大９段のセル（９ゲート段）で実現することが可能である。例えば、１２ビットの入力情報として（００１０１１００１０１１）のような重み６の情報のとき、１２入力ソート回路７３の出力は、（１１１１１１００００００）となる。
【０２６７】
次に、ｉバイトにおける誤訂正判定回路７４の構成例を図２０に示す。
【０２６８】
例えば、１バイト目に対して、具体的に構成した１バイトにおける誤訂正判定回路７４の構成例を図２０に示す。図２０に示すように、１バイトにおける誤訂正判定回路７４は、ビットごと排他的論理和回路９０と、１６入力ソート回路９１と、ビットごと選択回路９６とを備えている。
【０２６９】
ここで、１バイトにおける誤訂正判定回路７４の処理をより詳しく説明すると、図２０に示すように、１バイト目以外の復号結果ビット誤りポインタ
2006244259.tif 000293
と、バイトごとの誤りの和（ｅＡ）３８とをビットごと排他的論理和回路９０に入力する。また、１バイト目の復号結果ビット誤りポインタ
2006244259.tif 000294
と、バイトごとの誤りの和（ｅＡ）３８とをビットごと排他的論理和回路９０に入力する。
【０２７０】
次に、バイトごとの誤りの和（ｅＡ）３８と、ビットごと排他的論理和回路９０の出力とを１６入力ソート回路９１に入力する。上記数３９に示した関係より、下記数５５に示す関係が成り立つ。
【０２７１】
【数５５】
2006244259.tif 000295
よって、１６入力ソート回路９１の出力において、１の数が４個以下である場合、１を出力するようにする。すなわち、１６入力ソート回路９１の出力において、上位４ビットを４入力ＯＲゲート回路９２に、下位１２ビットを１２入力ＮＯＲゲート回路９３にそれぞれ入力する。また、１バイトにおける検出信号をＮＯＴゲート回路９４に入力する。そして、４入力ＯＲゲート回路９２からの出力と、１２入力ＮＯＲゲート回路９３からの出力と、ＮＯＴゲート回路９４からの出力とを３入力ＡＮＤゲート回路９５に入力する。
【０２７２】
最後に、３入力ＡＮＤゲート回路９５の出力を制御信号として、ビットごと排他的論理和回路９０の出力と、１バイト目の復号結果ビット誤りポインタ
2006244259.tif 000296
とをビットごと選択回路９６に入力し、ＧＦ（２８）上のビット誤りポインタ（ｅ）４２の１バイト目（ｅ８…ｅ１５）を出力する。その結果、正しく訂正されている場合に、
2006244259.tif 000297
を出力し、誤訂正されている、または制御能力外誤りとして検出された場合に、その他のバイトにおいて正しく訂正された誤りパターンとｅＡの排他的論理和をとることにより、誤訂正されているバイトにおける誤りパターンを復元することができる。
【０２７３】
次に、ビットごと排他的論理和回路９０の構成例を図２１に示す。図２１に示すように、それぞれ８ビットを有する２つの信号の各ビットどうしの排他的論理和をとる回路である。
【０２７４】
ここで、ビットごと排他的論理和回路９０の処理をより詳しく説明すると、図２１に示すように、８ビットの信号の中で０ビット目どうしを多入力排他的論理和回路９７に入力する。多入力パリティチェック回路９７から出力された各信号をまとめて、最終的に８ビットの信号として出力する。
【０２７５】
次に、１６入力ソート回路９１の構成例を図２３に示す。図２３に示されるように、１６入力ソート回路９１では、１６ビットの入力情報がソートされ、２入力ＯＲゲート回路７５、及び２入力ＡＮＤゲート回路７６が対になって構成された２入力２出力回路をセルとして、１６入力に対してこのセルを多段に接続して構成している。このソート回路は、一般に、ｎビット入力中に１の数がｘ個存在すれば、ｎビットの上位ｘ個に１を出力し、残りの出力はすべて０を出力する回路である。
【０２７６】
また、図２３に示すように、１６入力１６出力の回路である１６入力ソート回路９１では、このセルを６３個（すなわち、１２６ゲート）使用し、最大１０段のセル（１０ゲート段）で実現することが可能である。
【０２７７】
最後に、ビットごと選択回路９６の構成例を具体的に示す。
【０２７８】
図２２に示すように、ビットごと選択回路９６は、それぞれ８ビットを有する２つの信号の各ビットどうしを制御信号（つまり、３入力ＡＮＤゲート回路９５の出力である）に従って選択する回路である。
【０２７９】
ここで、ビットごと選択回路９６の処理をより詳しく説明すると、図２２に示すように、８ビットの信号の中で０ビット目どうしを２入力マルチプレクサ９８に入力する。２入力マルチプレクサ９８では、制御信号が０の場合に、上の信号を出力し、制御信号が１の場合に、下の信号を出力する。０ビット目以外の信号に関しても同様に、制御信号により選択を行う。２入力マルチプレクサ９８から出力された各信号をまとめて、最終的に８ビットの信号として出力する。
【０２８０】
以上では、ｂ＝８、ｔ＝１、μ１＝μ２＝４、ｐ１＝ｐ２＝２といった符号パラメータを有する［４１／８ＥＣ］２符号を例として説明したが、前記以外の符号パラメータを有する符号についても、同様に上述した回路を構成することができることは明らかである。
（ｆ）反転回路１０の構成
最後に、反転回路１０の構成について説明する。
【０２８１】
例えば、１バイト目に対して、具体的に構成した反転回路１０を図２４に示す。図２４に示す反転回路１０は、誤りの箇所を具体的に指摘されたビット位置に対して、受信したビット値の反転を行って受信語（Ｖ’）３２を訂正する回路である。図２４において、ｖ８’〜ｖ１５’は、受信語（Ｖ’）３２の１バイト目に相当する８ビットであり、ｖ８＊〜ｖ１５＊は訂正後の出力ビットである。
【０２８２】
反転回路１０は、複数の排他的論理和回路を有している。図２４に示された１バイト目における反転回路１０において、合計８個の排他的論理和回路９９は、８入力ビットｖ８’〜ｖ１５’に対して、対応するビット誤りポインタｅｉ（ｉ＝８、９、・・・、１５）との排他的論理和をとり、例えば、ビット誤りポインタが“１”のとき、入力ビット値が反転されて訂正されることになる。
【０２８３】
なお、反転回路１０は、各バイトにそれぞれ対応するようにするため、Ｎ＝９０ビットの受信語（Ｖ’）に対しては、９０個の排他的論理和回路が必要となる。反転回路１０は、最後に、Ｎ＝９０ビットの受信語（Ｖ’）から、下記数５６に示す６４ビットの訂正語Ｄ＊を得る。
【０２８４】
【数５６】
2006244259.tif 000298
以上では、図３に示すｂ＝８、ｔ＝１、μ１＝μ２＝４、ｐ１＝ｐ２＝２といった符号パラメータを有する［４１／８ＥＣ］２符号を例にとり、誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号における符号化回路及び復号回路の具体的な構成を詳細に説明した。ここで、ＧＦ（２ｒ）上の並列復号回路８において、例えば、前記バーレカンプ・マッシィ法を用いた逐次復号を行う場合に、誤り位置多項式および誤り評価多項式から、誤り位置および誤りを求める既存の手法を用いればよい。この手法の実現手段は、ハードウェアでもソフトウェアでもよい。
【０２８５】
また、前記以外の符号パラメータを有する、誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号に対しては、次のような考えで構成することができる。
【０２８６】
まず、符号化回路は、２元で表現したパリティ検査行列により、Ｒビットの検査情報を生成すればよく、全く同様に構成することができる。
【０２８７】
また、復号は、前述したように、ｐ１訂正ｐ２検出ＲＳ符号の復号により得られたＧＦ（２ｒ）上の誤りｅ’において、各バイトに対しＨ”の復号、及び誤訂正判定を行うことにより、ＧＦ（２ｂ）上の誤りを求めることができ、同様に復号回路を構成することができる。
【０２８８】
さらに、上記数５に示されたパリティ検査行列で表現される、誤りバイト数を制限した伸長バイト内複数スポッティバイト誤り制御符号に対しては、次のような考えで構成することができる。
【０２８９】
まず、符号化回路は、２元で表現したパリティ検査行列により、Ｒビットの検査情報を生成すればよく、全く同様に構成することができる。
【０２９０】
また、復号は、前記並列復号法やバーレカンプ・マッシィ法を用いた逐次復号法により、ＧＦ（２ｒ’）上のｐ１訂正ｐ２検出ＲＳ符号の復号をすることにより、また、ＧＦ（２ｒ’）上の誤りをＧＦ（２ｂ）上の誤りに前記の例と同様に変換することにより、同様に復号することができる。
【０２９１】
よって、復号回路も前記の例における前記ＧＦ（２ｒ）上の並列復号回路８をＧＦ（２ｒ’）上で並列復号を行う回路に変更することにより、また、前記の例における前記ＧＦ（２ｂ）上の誤り生成回路９において、ｒビットをｒ’ビットに変更することにより、復号回路を同様に構成できることは明らかである。
【０２９２】
また、上記数２５及び上記数２８に示されたパリティ検査行列で表現される、バイト誤り検出機能を有する誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号に対しては、次のような考えで構成することができる。
【０２９３】
まず、符号化回路は、２元で表現したパリティ検査行列により、Ｒビットの検査情報を生成すればよく、全く同様に構成することができる。
【０２９４】
また、復号は、前述したように、シンドロームを計算した後に、Ｈ”が
2006244259.tif 000299
またはｂのうちいずれか小さい値に等しいか大きい列が線形独立であるため、ＳI≠０かつＳII＝ＳIII＝ＳIV＝０の場合、バイト誤りが生じているとして検出を行う。また、前述したｐ１訂正ｐ２検出ＲＳ符号の復号により得られたＧＦ（２ｒ）上の誤りｅ’において、誤りバイト数が１かつＳIのハミング重みがμ１ｔより大きい場合、バイト誤りが生じているとして検出を行うことにより、同様に復号することができる。
【０２９５】
よって、復号回路も前記の例におけるＨ”乗算回路にＳI以外のシンドロームを新たに入力し、ＳI≠０かつＳI以外のシンドロームが０の場合、検出信号を出力する。また、ＧＦ（２ｂ）上の誤り生成回路にＳIを新たに入力し、ＧＦ（２ｂ）上の誤り生成回路において、ＧＦ（２ｒ）上の誤りｅ’において誤りバイト数が１かどうかを調べ、前記ソート回路を用いてＳIのハミング重みがμ１ｔより大きいかどうかを調べることにより、復号回路を同様に構成できることは明らかである。
【０２９６】
前述したように、本発明では、バイト中にｔビットまでの誤りを有するスポッティバイト誤りに対し、ｐ１個のバイトに生じるμ１個のスポッティバイト誤りを訂正し、かつｐ２個のバイトに生じるμ２個のスポッティバイト誤りを検出する能力を有する誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号の一般性のある符号構成を与えるとともに、誤りの訂正・検出が実現できる回路である符号化回路及び復号回路の具体的な構成を示して、検査情報が具体的に生成できること、及び誤りが具体的に訂正・検出できることを示した。
【０２９７】
また、本発明はｔ＝１としたとき、限られた数のバイトに生じたランダムビット誤りを制御することができる機能を備えた誤りバイト数を制限したランダムビット誤り訂正・検出符号となることを示した。
【０２９８】
また、本発明では、訂正能力を超えた１バイト誤りを検出する機能を有する誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号の一般性のある符号構成を与えるとともに、誤りの訂正・検出が実現できる回路である符号化回路及び復号回路の具体的な構成を示して、検査情報が具体的に生成できること、及び誤りが具体的に訂正・検出できることを示した。
【０２９９】
以上の説明では、主としてメモリ装置に注目して本発明の適用を述べたが、本発明は、それに限定されるものではなく、例えば、このようなバイト単位で物理的に独立した回路と、モジュールと、装置とから構成され、この中で限定した数の誤りが生じる可能性の高い一般の情報システム等に適用可能である。また、光通信回路やバス線回路等の通信または伝送のための回路、装置またはシステムにも適用可能である。
【０３００】
また、本発明の目的は、本実施の形態の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置の機能を実現するソフトウェアのプログラムコードを記述した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出して実行することによっても、達成されることは言うまでもない。
【０３０１】
この場合、記憶媒体から読み出されたプログラムコード自体が本実施の形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体及び当該プログラムコードは本発明を構成することとなる。プログラムコードを供給するための記憶媒体としては、ＲＯＭ、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード等を用いることができる。
【０３０２】
また、コンピュータが読み出したプログラムコードを実行することにより、前記本実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ等が実際の処理の一部又は全部を行い、その処理によって本実施の形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【０３０３】
【図１】本発明の一実施形態である、誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置の概略構成を示すブロック図である。
【図２】図１に示された本発明の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置における全体動作の処理手順を示すフローチャートである。
【図３】本発明によるパリティ検査行列の一例であって、符号長Ｎ＝９０ビット、情報長Ｋ＝６４ビット、検査長Ｒ＝２６ビット、バイト長ｂ＝８ビット、バイト内訂正ビット数ｔ＝１ビット、訂正数μ１＝検出数μ２＝４、誤りバイト制限数ｐ１＝ｐ２＝２の符号パラメータを有する短縮（９０、６４）［４１／８ＥＣ］２符号のパリティ検査行列を示す図である。
【図４】図３に示すパリティ検査行列を基本行変形して得られる符号化用（９０、６４）［４１／８ＥＣ］２組織符号のパリティ検査行列を示す図である。
【図５】図４に示す符号化用（９０、６４）［４１／８ＥＣ］２組織符号をもとに構成した符号化回路（上位１４ビット）の具体例であり、Ｋ＝６４ビットの入力情報データからパリティ検査行列により２６ビットの検査情報を生成する回路の概念図である。
【図６】図４に示す符号化用（９０、６４）［４１／８ＥＣ］２組織符号をもとに構成した符号化回路（下位１２ビット）の具体例であり、Ｋ＝６４ビットの入力情報データからパリティ検査行列により２６ビットの検査情報を生成する回路の概念図である。
【図７】本発明で開示された機能を有する符号に対する復号回路の概略構成を示すブロック図である。
【図８】図３に示す（９０、６４）［４１／８ＥＣ］２符号をもとに具体的に構成したシンドローム生成回路（上位１４ビット）を説明するための概念図である。
【図９】図３に示す（９０、６４）［４１／８ＥＣ］２符号をもとに具体的に構成したシンドローム生成回路（下位１２ビット）を説明するための概念図である。
【図１０】図３に示す（９０、６４）［４１／８ＥＣ］２符号をもとに具体的に構成したＨ’復号回路の構成図である。
【図１１】図３に示す（９０、６４）［４１／８ＥＣ］２符号をもとに具体的に構成したＨ”乗算回路の構成図である。
【図１２】図３に示す（９０、６４）［４１／８ＥＣ］２符号に対するＧＦ（２ｒ）上の並列復号回路の概略構成を示すブロック図である。
【図１３】図１２に示すＧＦ（２ｒ）上の並列復号回路における（ｉ、ｊ）に対する誤り生成回路の一例の回路構成図である。
【図１４】図１２に示すＧＦ（２ｒ）上の並列復号回路におけるＧＦ（２ｒ）上の誤り算出回路の構成図である。
【図１５】図３に示す（９０、６４）［４１／８ＥＣ］２符号に対するＧＦ（２ｂ）上の誤り生成回路の概略構成を示すブロック図である。
【図１６】図１５に示すＧＦ（２ｂ）上の誤り生成回路におけるｔビット誤り訂正復号回路の例であり、１バイト目に対してＧＦ（２ｒ）上のビット誤りポインタから復号結果ビット誤りポインタの上位４ビットを生成する回路の構成図である。
【図１７】図１５に示すＧＦ（２ｂ）上の誤り生成回路におけるｔビット誤り訂正復号回路の例であり、１バイト目に対してＧＦ（２ｒ）上のビット誤りポインタを復号結果ビット誤りポインタの下位４ビットを生成する回路の構成図である。
【図１８】図１５に示すＧＦ（２ｂ）上の誤り生成回路におけるｔビット誤り訂正復号回路の例であり、１バイト目に対して訂正能力をこえた誤りを検出する回路の構成図である。
【図１９】図１５に示すＧＦ（２ｂ）上の誤り生成回路における１２入力ソート回路の構成図である。
【図２０】図１５に示すＧＦ（２ｂ）上の誤り生成回路におけるｉバイトにおける誤訂正判定回路の一例の回路構成図である。
【図２１】図２０に示すｉバイトにおける誤訂正判定回路におけるビットごと排他的論理和回路の構成図である。
【図２２】図２０に示すｉバイトにおける誤訂正判定回路におけるビットごと選択回路の構成図である。
【図２３】図２０に示すｉバイトにおける誤訂正判定回路における１６入力ソート回路の構成図である。
【図２４】図３に示す（９０、６４）［４１／８ＥＣ］２符号に対する反転回路の一例であり、１バイトに対する反転回路の構成図である。
【符号の説明】
【０３０４】
１    シンドローム生成回路
２    符号化回路
３    回路（メモリ等の通信路）
４    復号回路
５    誤り訂正回路
６    Ｈ’復号回路
７    Ｈ”乗算回路
８    ＧＦ（２ｒ）上の並列復号回路
９    ＧＦ（２ｂ）上の誤り生成回路
１０    反転回路
２０    多入力パリティチェック回路
２１    多入力パリティチェック回路
２２    ２入力排他的論理和回路
２３    ３入力パリティチェック回路
３０    入力情報データ
３１    送信語
３２    受信語
３３    シンドローム（Ｓ）
３４    出力情報データ
３５    訂正不可能誤り検出信号（ＵＣＥ）
３６    シンドローム（Ｓ）３３の上位ｑビット（ＳI）
３７    シンドローム（Ｓ）３３の下位３ｒビット（ＳIIＳIIIＳIV）
３８    バイトごとの誤りの和（ｅＡ）
３９    シンドローム（Ｓ）３３の上位ｑビットＳI３６とＨ”の転置（Ｈ”Ｔ）の積（Ｓ’I）
４０    ＧＦ（２ｒ）上のビット誤りポインタ
４１    訂正不可能誤り検出信号（ＤＳ（０））
４２    ＧＦ（２ｂ）上のビット誤りポインタ
４３    訂正不可能誤り検出信号（ＤＳ（１））
４４    ２入力ＡＮＤゲート回路
５０    （ｉ、ｊ）に対する誤り生成回路
５１    ＧＦ（２ｒ）上の誤り算出回路
５２    （ｉ、ｊ）に対する誤り
５３    （ｉ、ｊ）に対する訂正可能信号
５４    ２４入力ＯＲゲート回路
５５    ６６入力ＮＯＲゲート回路
５６    ２入力ＡＮＤゲート回路
2006244259.tif 000300
2006244259.tif 000301
2006244259.tif 000302
６３    多入力パリティチェック回路
６４    多入力パリティチェック回路
６５    多入力パリティチェック回路
６６    １２入力ＮＯＲゲート回路
６７    ２入力ＡＮＤゲート回路
６８    ビットごとＯＲ演算回路
６９    １１入力ＯＲゲート回路
７０    ｔビット誤り訂正復号回路
2006244259.tif 000303
７２    ｉバイトにおける検出信号
７３    １２入力ソート回路
７４    ｉバイトにおける誤訂正判定回路
７５    ２入力ＯＲゲート回路
７６    ２入力ＡＮＤゲート回路
８０    ＮＯＴゲート回路
８１    ３入力ＡＮＤゲート回路
８２    ４入力ＡＮＤゲート回路
８３    ５入力ＡＮＤゲート回路
８４    ５入力ＯＲゲート回路
８５    ６入力ＯＲゲート回路
８６    １５入力ＯＲゲート回路
９０    ビットごと排他的論理和回路
９１    １６入力ソート回路
９２    ４入力ＯＲゲート回路
９３    １２入力ＮＯＲゲート回路
９４    ＮＯＴゲート回路
９５    ３入力ＡＮＤゲート回路
９６    ビットごと選択回路
９７    多入力パリティチェック回路
９８    ２入力マルチプレクサ回路
９９    ２入力排他的論理和回路
１００    誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置
【図１】
2006244259.tif 000410
【図２】
2006244259.tif 000411
【図３】
2006244259.tif 000412
【図４】
2006244259.tif 000413
【図５】
2006244259.tif 000414
【図６】
2006244259.tif 000415
【図７】
2006244259.tif 000416
【図８】
2006244259.tif 000417
【図９】
2006244259.tif 000418
【図１０】
2006244259.tif 000419
【図１１】
2006244259.tif 000420
【図１２】
2006244259.tif 000421
【図１３】
2006244259.tif 000422
【図１４】
2006244259.tif 000423
【図１５】
2006244259.tif 000424
【図１６】
2006244259.tif 000425
【図１７】
2006244259.tif 000426
【図１８】
2006244259.tif 000427
【図１９】
2006244259.tif 000428
【図２０】
2006244259.tif 000429
【図２１】
2006244259.tif 000430
【図２２】
2006244259.tif 000431
【図２３】
2006244259.tif 000432
【図２４】
2006244259.tif 000433