JP4036338B2 - 誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置 - Google Patents

誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置 Download PDF

Info

Publication number
JP4036338B2
JP4036338B2 JP2005060818A JP2005060818A JP4036338B2 JP 4036338 B2 JP4036338 B2 JP 4036338B2 JP 2005060818 A JP2005060818 A JP 2005060818A JP 2005060818 A JP2005060818 A JP 2005060818A JP 4036338 B2 JP4036338 B2 JP 4036338B2
Authority
JP
Japan
Prior art keywords
error
byte
matrix
bytes
bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005060818A
Other languages
English (en)
Other versions
JP2006244259A (ja
Inventor
英二 藤原
一克 鈴木
俊彦 樫山
愉 市川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Japan Aerospace Exploration Agency JAXA
Tokyo Institute of Technology NUC
Original Assignee
Japan Aerospace Exploration Agency JAXA
Tokyo Institute of Technology NUC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Japan Aerospace Exploration Agency JAXA, Tokyo Institute of Technology NUC filed Critical Japan Aerospace Exploration Agency JAXA
Priority to JP2005060818A priority Critical patent/JP4036338B2/ja
Priority to PCT/JP2005/023545 priority patent/WO2006095489A1/ja
Priority to US11/817,758 priority patent/US8230292B2/en
Priority to CNB2005800465046A priority patent/CN100492325C/zh
Priority to KR1020077011148A priority patent/KR20070103734A/ko
Publication of JP2006244259A publication Critical patent/JP2006244259A/ja
Application granted granted Critical
Publication of JP4036338B2 publication Critical patent/JP4036338B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes

Description

本発明は、スポッティバイト誤り訂正・検出方法及び装置に関し、より詳しくは、複数のビットをバイトとし、その複数のバイトから構成される語(ワード)に対して、1バイト内に複数のスポッティバイト誤りが生じる誤りを『バイト内複数スポッティバイト誤り』と称し、そのバイト内複数スポッティバイト誤りが制限された数のバイトに生じている場合に、その誤り、つまり、『誤りバイト数を制限したバイト内複数スポッティバイト誤り』を検出または訂正するために用いて好適な、誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置に関する。
近年、情報化社会の進展や半導体技術の進歩等により、ディジタルデータの信頼性向上がますます重要なものになってきている。ディジタルデータの伝送または記録を正確に行おうとする場合、送信データが伝送経路中でノイズ等の影響を受けて誤って伝送されたり、素子の故障、あるいは記録媒体等の欠陥等により生じた誤りを検出・訂正する必要がある。この誤りの検出・訂正を実現するために、符号理論を基礎とした誤り訂正・検出符号が従来より種々に開発されてきている。
従来の誤り訂正符号として、例えば、bビット(bは2以上の整数)の塊りをバイトと称し、1バイト中の任意の誤りを訂正する符号(SEC符号と称する)として優れたHong-Patel符号が開示されている(例えば、非特許文献1参照)。
また、高速半導体メモリシステムにおいて、従来最もよく使用された1ビット誤り訂正・2ビット誤り検出符号を包含する特徴を有した奇数重み列バイト誤り訂正符号が開示されている(例えば、非特許文献2参照)。
さらに、1バイト誤りを訂正し、また2バイト誤りを検出する符号(SEC_DED符号と称する)は、リードソロモン符号(Reed-Solomon符号)、及びその改良した効率のよい符号として提案されており、多くの計算機システム等の主記憶装置にすでに採用されている(例えば、非特許文献3や非特許文献4参照)。
また、バイト誤りを検出する符号としては、1ビット誤りを訂正し、かつ2ビット誤りを検出するとともに、1バイトの誤りをも検出する符号(SEC−DED−SED符号と称する)が発表され、現在、計算機システムの主記憶装置に多く適用されている(例えば、非特許文献5参照)。
なお、これら1980年代後半までの相互に関連した多くの符号研究・開発に関する具体的な内容は、非特許文献6において総括的に述べられている。
その後、新しく開発された高速半導体メモリ用の符号としては、1バイトの誤りを訂正し、かつ2ビット誤りを検出する符号(SEC−DED符号と称する)が下記非特許文献7に、また、1バイトの誤りを訂正し、かつ1ビット誤りと1バイト誤りとの同時誤りを検出する符号(SEC−(S+S)ED符号と称する)が非特許文献8に提案されている。さらに、1バイトの誤りを訂正するとともに2ビットの誤りがあれば、これも訂正する符号(SEC−DEC符号と称する)が非特許文献9に開示されている。
特に、本発明に最も関連する符号として、具体的には、bビットからなるバイト内のtビット(t≦b)までの誤りをt/b誤りまたはスポッティバイト誤りと称し、この1スポッティバイト誤りを訂正するSt/bEC符号、及び1スポッティバイト誤りを訂正し、かつバイト内tビットを越える1バイト誤りを検出するSt/bEC−SED符号に関する発明が既に開示されている(特許文献1参照)。また、特にSt/bEC符号については、非特許文献10に開示されている。
また、1スポッティバイト誤りを訂正し、かつ2スポッティバイト誤りを検出するSt/bEC−Dt/bED符号、及び1スポッティバイト誤りを訂正し、かつ2スポッティバイト誤りを検出し、かつバイト内tビットを越える1バイト誤りを検出するSt/bEC−Dt/bED−SED符号に関する発明が既に出願されている(特許文献2参照)。
さらに、複数個のスポッティバイト誤りを考慮した場合、1バイト内に1スポッティバイト誤りのみが生じる誤りを『バイト内単一スポッティバイト誤り』とし、バイト内単一スポッティバイト誤りに対し、距離dを有する一般的な構成法に関する発明が既に出願されている(特許文献3参照)。
また、1バイト内に複数のスポッティバイト誤り(つまり、2以上のスポッティバイト誤り)が生じる誤りを『バイト内複数スポッティバイト誤り』とし、距離dを有する一般的な構成法に関する発明が既に出願されている(特許文献4参照)。
特開2004−7217号公報 特願2003−416978号明細書 特願2004−239392号明細書 特願2004−287810号明細書 特開2002−374175号公報 エス.ジェイ.ホン(S.J.Hong)・エイ.エム.パテル(A.M.Patel)共著,『ア ゼネラル クラス オフ マックシマル コードズ フォー コンピュータ アプリケーションズ "A general Class ofMaximal Codes for Computer Applications"』,IEEE トランスアクションズ オン コンピュータズ(IEEETransactions on Computers),第C-21巻,第12号, p.1322-1331,1972年 イー.フジワラ(E.Fujiwara),『オッドーウエイトーコラム bーアジェイスント エラー コレクティング コードズ "Odd-Weight-Columnb-Adjacent Error Correcting Codes"』,トランスアクションズ オフ ザ IECE ジャパン(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"』,IEEE トランスアクションズ オン コンピュータズ(IEEETransactions on Computers),第C-31巻,第7号,p.596-602,1982年7月 シー.エル.チェン(C.L.Chen)・エル.イー.グロバシュ(L.E.Grosbach)共著,『フォールトートレラント メモリ デザイン イン ザ IBM アプリケーション システム/400TM "Fault-Tolerant MemoryDesign in the IBM Application System/400TM"』,プロシーディングズ オフ アニュアル インターナショナル シンポジウム オン フォールトートレラント コンピューティング(Proceedingsof Annual International Symposium on Fault-Tolerant Computing),p.393-400,1991年6月 エス.カネダ(S.Kaneda),『ア クラス オフ オッドーウエイトーコラム SEC−DED−SbED コードズ フォー メモリ システム アプリケーションズ "A class of Odd-Weight-ColumnSEC-DED-SbED Codes for Memory System Applications"』,IEEE トランスアクションズ オン コンピュータズ(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)共著,『シングル bービット バイト エラー コレクティング アンド ダブル ビット エラー ディテクティング コードズ フォー メモリ システムズ "Single b-Bit ByteError Correcting and Double Bit Error Detecting Codes for Memory Systems"』,IEICE トランスアクションズ オン ファンダメンタルズ(IEICETransactions on Fundamentals),第E76-A巻,第9号,p.1442-1448,1993年9月 エム.ハマダ(M.Hamada)・イー.フジワラ(E.Fujiwara)共著,『ア クラス オフ エラー コントロール コードズ フォー バイト オーガナイゼド メモリ システムズ―SbEC−(Sb+S)ED コードズ― "A Class of ErrorControl Codes for Byte Organized Memory Systems _ SbEC―(Sb+S)ED Codes _"』,IEEE トランスアクションズ オン コンピュータズ(IEEETransactions on Computers),第46巻,第1号,p.105-109,1997年1月 ジー.ウマネサン(G.Umanesan)・イー.フジワラ(E.Fujiwara)共著,『ランダム ダブル ビット エラー コレクティングーシングル バイト エラー コレクティング(DEC−SbEC) コードズ フォー メモリ システムズ "Random Double BitError Correcting _ Single Byte Error Correcting (DEC―SbEC) Codes for MemorySystems"』,IEICE トランスアクションズ オン ファンダメンタルズ(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 トランスアクションズ オン ファンダメンタルズ(IEICE Transactions on Fundamentals),第E86-A巻,第3号,p.704-714,2003年3月 今井秀樹・藤谷宏共著,『復号の簡単な誤り訂正符号の一構成法』,電子通信学会論文誌,1979年 エス.ビィー.ウィッカー(S.B.Wicker)・ヴィ.ケイ.バールガバ(V.K.Bhargava)共著,『リードソロモン コードズ アンド ゼア アプリケーションズ "Reed-Solomon Codes andTheir Applications"』,IEEE プレス(IEEEPress),1994年 エス.ジェイ.ピーストラク(S.J.Piestrak),『ザ ミニマル テスト セット フォー マルチアウトプット スレッショウルド サーキットズ インプレメンテド アズ ソーティング ネットワークス "The minimal Test Setfor Multioutput Threshold Circuits Implemented as Sorting Networks"』,IEEE トランスアクションズ オン コンピュータズ(IEEETransactions on Computers),第42巻,第6号,p.700-712,1993年6月
1980年代半ばまでは、半導体メモリ素子にはデータ1ビットの入出力を有する素子が主に使用されたことから、1素子の誤りを訂正し2素子までの誤りを検出する1ビット誤り訂正・2ビット誤り検出符号(SEC−DED符号と称する)が多く使用されていた。ところが、1980年代半ばからメモリ素子の高集積化ニーズに対応して、データ4ビットの入出力を有する素子が主流となりはじめ、バイト幅b=4ビットである前述のSEC−DED符号やSEC−DED−SED符号が主に使用されるようになってきた。さらに、1990年代半ばからはデータ8ビット、16ビットの入出力を有する半導体メモリ素子が主流になりはじめた。
しかしながら、従来のSEC−DED符号のバイト幅bにb=8またはb=16を適用する場合、全体の符号長に対する検査ビット数の占める割合がおよそ30%から40%と多大となって、符号化率が低下し、実用的に非常に大きな問題となっていた。
ところで、これらの半導体メモリ素子(DRAM素子、以下、単に素子とも称する)を使用したメモリ装置では、ノイズやアルファ粒子等によって一時故障が発生したり、DRAM素子自体が劣化して動作しなくなる固定故障が発生したりする。最近のDRAM素子を用いた装置の80%以上は一時故障であると言われており、特に、8ビット以上の多ビットデータ入出力を有するDRAM素子ではバイト中の1、2、3ビット程度の比較的小さい数のビット誤りが大半であるとされている。
中でも比較的エネルギーレベルの低い電磁ノイズやアルファ粒子による一時誤り、及びメモリセルの固定故障を原因とする1ビット誤りが最も多く、最近では、前記DRAM素子を搭載したモバイル機器が多用されていることから、電磁環境が悪い中での使用も考慮しなければならなくなっている。また、高い高度を飛行する航空機や軍用機で用いられる電子機器中のDRAM素子では、宇宙線に起因するエネルギーレベルの高い中性子粒子等の衝突により、2ビット、3ビット程度の誤りを有する一時故障が発生する可能性が高くなっている。さらに、衛星通信や宇宙通信で用いられる宇宙機器に搭載するDRAM素子では、エネルギーレベルの高い粒子との衝突によって大きなダメージを受けてしまうことを考慮する必要があり、この場合2ビット以上の誤りを考慮しなければならないことが知られている。
以上のようなビット誤りの発生状況が多岐にわたっていることを踏まえれば、パラメータt及びbに任意の値を与えて構成できる前記St/bEC−SED符号は、8ビット以上のDRAM素子を使用したメモリ装置に用いる場合に、非常に実用的な符号方式である。つまり、前記St/bEC−SED符号は、バイト幅bより小さなtビット(このtの値は、誤りの傾向を調査して設計者が任意に決めることが可能である)までの1素子の誤り(スポッティバイト誤り)を訂正することが可能な機能、及び発生確率としては小さいもののtビットを超える1バイト誤りを検出することが可能な機能を備えることにより、従来のバイト単位で行うリードソロモン符号(RS符号)等の誤り制御符号と比較して、大幅に少ない数の検査ビットで誤りを訂正・検出することができる。
また、任意の2素子(隣接した2素子に限らない)にまたがる誤りに対して、前記St/bEC−Dt/bED−SED符号は、8ビット以上のDRAM素子を使用したメモリ装置に用いる場合に非常に実用的な符号化方式である。つまり、前記St/bEC−Dt/bED−SED符号は、バイト幅bより小さなtビットまでの1素子の誤りを訂正することが可能な機能(1スポッティバイト誤り訂正、St/bEC)、2素子にまたがるスポッティバイト誤りを検出することが可能な機能(2スポッティバイト誤り検出、Dt/bED)、及び発生確率としては小さいもののtビットを超える1バイト誤りを検出することが可能な機能(1バイト誤り検出、SED)を備えた符号であり、従来のバイト単位で行う符号方式と比較して、大幅に少ない数の検査ビットでビット誤りを訂正・検出することができる。
さらに、2素子以上にまたがる誤りに対しては、前記バイト内単一スポッティバイト誤り及び前記バイト内複数スポッティバイト誤りに対し、理論上、一般にGF(2)上で距離dを有するスポッティバイト誤り制御符号を構成することにより、その誤りを訂正・検出することができるようになっている。
しかしながら、誤りが一度に多くの素子にまたがり生じることは少なく、通常、限られた数の素子、つまり、制限された数のバイトに生じる。また、誤りが生じる素子の数は、高々2、3素子であると考えられる。
本発明は、上述のような事情に鑑みてなされたものであり、本発明の目的は、限られた数のバイトに生じた多重のバイト内複数スポッティバイト誤りを制御することができる機能を備えた、誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置を提供することにある。
また、本発明のもう1つの目的は、t=1としたとき、限られた数のバイトに生じたランダムビット誤りを制御することができる機能を備えた、誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置を提供することにある。
更に、本発明のもう1つの目的は、発生確率が小さいもののバイト内複数スポッティバイト誤りの訂正能力を超える単一バイト誤りを検出する機能を備えた、誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置を提供することにある。
本発明は、入力情報データを基に送信語を生成する符号化手段と、情報伝送路中で誤りが発生した前記送信語を受信語として入力して前記誤りを訂正または検出する復号手段とを備える誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置に関し、本発明の上述目的は、前記符号化手段は、スポッティバイト誤り制御符号を表現するパリティ検査行列と、前記入力情報データとを基に生成した検査情報を前記入力情報データに付加することにより、前記送信語を生成し、前記復号手段は、前記パリティ検査行列を基に前記受信語のシンドロームを生成するシンドローム生成手段と、前記シンドローム生成手段により生成されたシンドロームを基に前記受信語の誤りを訂正または検出する誤り訂正手段とを備えることにより、或いは、前記入力情報データが、b(bは2以上の整数)ビットを1バイトとし、複数のバイトから構成される場合に、ここで、バイト内のtビット(1≦t≦b)までの誤りをスポッティバイト誤りと称し、1バイト内に複数の前記スポッティバイト誤りが生じる誤りをバイト内複数スポッティバイト誤りと称することを前提とし、前記パリティ検査行列で表現される前記スポッティバイト誤り制御符号は、p個のバイトに生じるμ個のスポッティバイト誤りを訂正し、かつp個のバイトに生じるμ個のスポッティバイト誤りを検出することにより、或いは、前記t値、b値、p値、p値、μ値、μ値を任意に設定し、ただし、p≦p及びμ≦μが成立することにより、或いは、前記情報伝送路は情報通信システムであることにより、或いは、前記情報伝送路はメモリシステムであることにより、或いは、前記情報伝送路はバス線回路であることによって効果的に達成される。
また、本発明の上述目的は、前記パリティ検査行列は、p個のバイトに生じるμ個のスポッティバイト誤りを訂正し、かつp個のバイトに生じるμ個のスポッティバイト誤りを検出する機能を有する、誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号
Figure 0004036338
に用いる、R行N列を有する次の行列Hであり、
Figure 0004036338
ただし、R=q+(p+p−1)r、N=bn、0≦i≦n−1、n=2−1であり、行列H’は、H’=[h’、h’、・・・、hb−1’]に示すq次の列ベクトルh’(0≦j≦b−1)から構成されるq行b列(q≦b)の2元行列であり、(μ+μ)tまたはbのうちいずれか小さい値に等しいか大きい列が線形独立であり、(μ+μ)t≧bのとき、前記行列H’は単位行列を含む正則行列であり、(μ+μ)t<bのとき、前記行列H’は最小ハミング距離(μ+μ)t+1を有する符号の検査行列、すなわち、(μ+μ)tビット誤り検出機能を有する(b、b−q)符号のパリティ検査行列に等しくなり、また、行列H”は、H”=[h”、h”、・・・、hb−1”]に示すr次の列ベクトルh”(0≦j≦b−1)から構成されるr行b列(r≦b)の2元行列であり、
Figure 0004036338
またはbのうちいずれか小さい値に等しいか大きい列が線形独立であり、ここで、
Figure 0004036338
はxを超えない最大の整数を表し、また、
Figure 0004036338
のとき、前記行列H”は単位行列を含む正則行列であり、
Figure 0004036338
のとき、前記行列H”は最小ハミング距離
Figure 0004036338
を有する符号の検査行列、すなわち、
Figure 0004036338
ビット誤り検出機能を有する(b、b−r)符号のパリティ検査行列に等しくなり、γはGF(2)のr次の拡大体GF(2)の原始元であって、γH”=[γ”、γ”、…、γb−1”]が成立するように構成されることによって効果的に達成される。
また、本発明の上述目的は、前記パリティ検査行列は、p個のバイトに生じるμ個のスポッティバイト誤りを訂正し、かつp個のバイトに生じるμ個のスポッティバイト誤りを検出する機能を有する、誤りバイト数を制限した伸長バイト内複数スポッティバイト誤り制御符号
Figure 0004036338
に用いる、R行N列を有する次の行列Hであり、
Figure 0004036338
ただし、r’≧rであり、R=q+(p+p−1)r’、N=b(n+1)+r’、0≦i≦n−1、n=2r’−1であり、
Figure 0004036338
はr’次の単位行列で、
Figure 0004036338
は零行列であり、行列H’は、H’=[h’、h’、・・・、hb−1’]に示すq次の列ベクトルh’(0≦j≦b−1)から構成されるq行b列(q≦b)の2元行列であり、(μ+μ)tまたはbのうちいずれか小さい値に等しいか大きい列が線形独立であり、(μ+μ)t≧bのとき、前記行列H’は単位行列を含む正則行列であり、(μ+μ)t<bのとき、前記行列H’は最小ハミング距離(μ+μ)t+1を有する符号の検査行列、すなわち、(μ+μ)tビット誤り検出機能を有する(b、b−q)符号のパリティ検査行列に等しくなり、また、行列H”は、H”=[h”、h”、・・・、hb−1”]に示すr次の列ベクトルh”(0≦j≦b−1)から構成されるr行b列(r≦b)の2元行列であり、
Figure 0004036338
またはbのうちいずれか小さい値に等しいか大きい列が線形独立であり、ここで、
Figure 0004036338
はxを超えない最大の整数を表し、また、
Figure 0004036338
のとき、前記行列H”は単位行列を含む正則行列であり、
Figure 0004036338
のとき、前記行列H”は最小ハミング距離
Figure 0004036338
を有する符号の検査行列、すなわち、
Figure 0004036338
ビット誤り検出機能を有する(b、b−r)符号のパリティ検査行列に等しくなり、γはGF(2)のr’次の拡大体GF(2r’)の原始元であって、γH”=[γΦ(h
)、γΦ(h” )、・・・、γΦ(hb−1
)]が成立するように構成され、ここで、Φは加法のもとでGF(2)からGF(2r’)への単射準同型写像(injective homomorphism)であり、すなわち、Φ:GF(2)→GF(2r’)であることによって効果的に達成される。
また、本発明の上述目的は、前記パリティ検査行列は、p個のバイトに生じるμ個のスポッティバイト誤りを訂正するとともに、p個のバイトに生じるμ個のスポッティバイト誤りを検出し、かつ訂正能力を超えた1バイト誤りを検出する機能を有する、誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号
Figure 0004036338
に用いる、R行N列を有する次の行列Hであり、
Figure 0004036338
ただし、R=b+(p+p−1)r、N=bn、0≦i≦n−1、n=2−1、Iはb次の単位行列であり、行列H”は、H”=[h”、h”、・・・、hb−1”]に示すr次の列ベクトルh”(0≦j≦b−1)から構成されるr行b列(r≦b)の2元行列であり、
Figure 0004036338
またはbのうちいずれか小さい値に等しいか大きい列が線形独立であり、ここで、
Figure 0004036338
はxを超えない最大の整数を表し、ここで、
Figure 0004036338
のとき、前記行列H”は単位行列を含む正則行列であり、
Figure 0004036338
のとき、前記行列H”は最小ハミング距離
Figure 0004036338
を有する符号の検査行列、すなわち、
Figure 0004036338
ビット誤り検出機能を有する(b、b−r)符号のパリティ検査行列に等しくなり、γはGF(2)のr次の拡大体GF(2)の原始元であって、γH”=[γ”、γ”、…、γb−1”]が成立するように構成されることによって効果的に達成される。
また、本発明の上述目的は、前記パリティ検査行列は、p個のバイトに生じるμ個のスポッティバイト誤りを訂正するとともに、p個のバイトに生じるμ個のスポッティバイト誤りを検出し、かつ訂正能力を超えた1バイト誤りを検出する機能を有する、誤りバイト数を制限した伸長バイト内複数スポッティバイト誤り制御符号
Figure 0004036338
に用いる、R行N列を有する次の行列Hであり、
Figure 0004036338
ただし、r’≧rであり、R=b+(p+p−1)r’、N=b(n+1)+r’、0≦i≦n−1、n=2r’−1、Iはb次の単位行列であり、
Figure 0004036338
はr’次の単位行列で、
Figure 0004036338
は零行列であり、行列H”は、H”=[h”、h”、・・・、hb−1”]に示すr次の列ベクトルh”(0≦j≦b−1)から構成されるr行b列(r≦b)の2元行列であり、tまたはbのうちいずれか小さい値に等しいか大きい列が線形独立であり、ここで、
Figure 0004036338
はxを超えない最大の整数を表し、ここで、
Figure 0004036338
のとき、前記行列H”は単位行列を含む正則行列であり、
Figure 0004036338
のとき、前記行列H”は最小ハミング距離
Figure 0004036338
を有する符号の検査行列、すなわち、
Figure 0004036338
ビット誤り検出機能を有する(b、b−r)符号のパリティ検査行列に等しくなり、γはGF(2)のr’次の拡大体GF(2r’)の原始元であって、γH”=[γΦ(h
)、γΦ(h” )、・・・、γΦ(hb−1
)]が成立するように構成され、ここで、Φは加法のもとでGF(2)からGF(2r’)への単射準同型写像(injective homomorphism)であり、すなわち、Φ:GF(2)→GF(2r’)であることによって効果的に達成される。
また、本発明の上述目的は、前記誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号
Figure 0004036338
は、前記t値を1に設定した場合(t=1)に、p個のバイトに生じるμ個のランダムビット誤りを訂正し、かつp個のバイトに生じるμ個のランダムビット誤りを検出する機能を有する、誤りバイト数を制限したランダムビット誤り制御符号となることにより、或いは、前記誤りバイト数を制限した伸長バイト内複数スポッティバイト誤り制御符号
Figure 0004036338
は、前記t値を1に設定した場合(t=1)に、p個のバイトに生じるμ個のランダムビット誤りを訂正し、かつp個のバイトに生じるμ個のランダムビット誤りを検出する機能を有する、誤りバイト数を制限したランダムビット誤り制御符号となることにより、或いは、前記誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号
Figure 0004036338
は、前記t値を1に設定した場合(t=1)に、p個のバイトに生じるμ個のランダムビット誤りを訂正するとともに、p個のバイトに生じるμ個のランダムビット誤りを検出し、かつ訂正能力を超えた1バイト誤りを検出する機能を有する、誤りバイト数を制限したランダムビット誤り制御符号となることにより、或いは、前記誤りバイト数を制限した伸長バイト内複数スポッティバイト誤り制御符号
Figure 0004036338
は、前記t値を1に設定した場合(t=1)に、p個のバイトに生じるμ個のランダムビット誤りを訂正するとともに、p個のバイトに生じるμ個のランダムビット誤りを検出し、かつ訂正能力を超えた1バイト誤りを検出する機能を有する、誤りバイト数を制限したランダムビット誤り制御符号となることによって効果的に達成される。
また、本発明の上述目的は、前記パリティ検査行列(H)は、
Figure 0004036338
とした場合に、前記行列H’及び前記行列H”は任意のb列が線形独立な行列となり、pバイト誤りを訂正するとともにpバイト誤りを検出する機能を有するRS符号のパリティ検査行列と一致することにより、或いは、前記パリティ検査行列(H)は、
Figure 0004036338
とした場合に、前記行列H’及び前記行列H”は任意のb列が線形独立な行列となり、pバイト誤りを訂正するとともにpバイト誤りを検出する機能を有する2次伸長RS符号のパリティ検査行列と一致することにより、或いは、前記パリティ検査行列(H)は、
Figure 0004036338
とした場合に、前記行列H”は任意のb列が線形独立な行列となり、pバイト誤りを訂正するとともにpバイト誤りを検出する機能を有するRS符号のパリティ検査行列と一致することにより、或いは、前記パリティ検査行列(H)は、
Figure 0004036338
とした場合に、前記行列H”は任意のb列が線形独立な行列となり、pバイト誤りを訂正するとともにpバイト誤りを検出する機能を有する2次伸長RS符号のパリティ検査行列と一致することによって効果的に達成される。
また、本発明の上述目的は、前記誤り訂正手段は、前記シンドロームを基に前記受信語の何れのビットが誤っているかを検出するビット誤りポインタを生成し、生成された前記ビット誤りポインタを基に、誤りビットに該当する前記受信語のビット値を反転させることにより、前記受信語の誤りを訂正し、また、前記受信語のビット誤りを訂正できないことを検出した場合に、訂正不可能誤り検出信号を出力することにより、或いは、前記誤り訂正手段は、H’復号手段と、H”乗算手段と、GF(2)上の並列復号手段と、GF(2)上の誤り生成手段と、反転手段とから構成されることにより、或いは、前記H’復号手段は、前記シンドローム生成手段で生成された前記シンドロームの上位qビットを基にして、バイトごとの誤りの和(e)を生成し、前記H”乗算手段は、前記H’復号手段で生成された前記バイトごとの誤りの和(e)を基にして、前記バイトごとの誤りの和(e)とH”の転置行列の積を生成し、前記GF(2)上の並列復号手段は、前記H”乗算手段で生成された前記バイトごとの誤りの和(e)とH”の転置行列の積、及び前記シンドローム生成手段で生成された前記シンドロームの上位qビットを除く残りの下位ビットを基にして、GF(2)上のビット誤りポインタ、及びGF(2)上の並列復号において誤り訂正が不可能とみなされたときに出力される第1の訂正不可能誤り検出信号を生成し、前記GF(2)上の誤り生成手段は、前記H’復号手段で生成された前記バイトごとの誤りの和(e)、及び、前記GF(2)上の並列復号手段で生成された前記GF(2)上のビット誤りポインタを基にして、GF(2)上のビット誤りポインタ、及び誤り訂正が不可能とみなされたときに出力される第2の訂正不可能誤り検出信号を生成し、前記反転手段は、前記GF(2)上の誤り生成手段で生成された前記GF(2)上のビット誤りポインタを基にして、前記GF(2)上のビット誤りポインタに対応した前記受信語のビット値を反転させることにより、前記受信語の誤りを訂正することにより、或いは、前記誤り訂正手段では、前記GF(2)上の並列復号手段で生成された前記第1の訂正不可能誤り検出信号と、前記GF(2)上の誤り生成手段で生成された前記第2の訂正不可能誤り検出信号の論理和をとることにより、訂正能力を超えた誤りを検出したことを示す第3の訂正不可能誤り検出信号を出力することによって効果的に達成される。
また、本発明の上述目的は、前記GF(2)上の誤り生成手段は、前記GF(2)上のビット誤りポインタ(e’)の1バイトから、復号結果ビット誤りポインタ
Figure 0004036338
の1バイト及びiバイトにおける検出信号を出力するtビット誤り訂正復号手段と、入力された複数の前記iバイトにおける検出信号の重みの数だけを出力の上位ビットから1を連続して出力する多入力ソート手段と、誤訂正判定を行い、前記GF(2)上のビット誤りポインタ(e)の1バイトを出力するiバイトにおける誤訂正判定手段とを備えることにより、或いは、前記GF(2)上の誤り生成手段は、tビット誤り訂正復号手段と、多入力ソート手段と、iバイトにおける誤訂正判定手段とを備えており、前記tビット誤り訂正復号手段は、前記GF(2)上のビット誤りポインタ(e’)の所定の1バイトを入力とし、復号結果ビット誤りポインタ
Figure 0004036338
の前記所定の1バイトに対応する1バイトを前記iバイトにおける誤訂正判定手段に出力するとともに、訂正能力をこえた誤りを検出する信号であるiバイトにおける検出信号を前記多入力ソート手段と前記iバイトにおける誤訂正判定手段に出力する手段であり、前記多入力ソート手段は、入力される複数の前記iバイトにおける検出信号の重み(1の数)を数え、その重みの数だけを出力の上位ビットから1を連続して出力する手段であり、前記iバイトにおける誤訂正判定手段は、すべてのバイトの前記tビット誤り訂正復号手段から出力される前記復号結果ビット誤りポインタ
Figure 0004036338
、前記iバイトにおける検出信号、及び前記バイトごとの誤りの和(e)を入力とし、誤訂正判定を行い、前記GF(2)上のビット誤りポインタ(e)の1バイトを出力する手段であることにより、或いは、前記GF(2)上の誤り生成手段では、前記多入力ソート手段から出力された信号において、その上位2ビット目の信号を前記第2の訂正不可能誤り検出信号として出力し、また、前記iバイトにおける誤訂正判定手段から出力された信号を集め、符号ビット長のビット数を有する前記GF(2)上のビット誤りポインタを出力することによって効果的に達成される。
また、本発明の上述目的は、前記iバイトにおける誤訂正判定手段では、前記誤訂正判定が次の誤訂正判定数式によって行われ、
Figure 0004036338
ただし、
Figure 0004036338
で定義され、スポッティバイト誤りの個数を表し、
Figure 0004036338
はベクトルeにおけるガロア体GF(2)上のハミング重みであり、前記誤訂正数式が成立している場合に、
Figure 0004036338
となり誤訂正はされていないと判定され、前記誤訂正数式が成立していない場合に、
Figure 0004036338
となり誤訂正はされていると判定されるようにすることにより、或いは、
Figure 0004036338
Figure 0004036338
前記H”乗算手段にSI以外のシンドロームを新たに入力し、SI≠0かつSI以外のシンドロームが0の場合に、検出信号を出力し、また、前記GF(2)上の誤り生成手段にSIを新たに入力し、前記GF(2)上の誤り生成手段において、GF(2)上の誤りe’において誤りバイト数が1かどうかを調べ、前記多入力ソート手段を用いてSIのハミング重みがμtより大きいかどうかを調べることにより、前記復号手段を構成することによって効果的に達成される。
更に、本発明は、入力情報データを基に送信語を生成する符号化処理ステップと、情報伝送路中で誤りが発生した前記送信語を受信語として入力して前記誤りを訂正または検出する復号処理ステップとを有する誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法に関し、本発明の上述目的は、前記符号化処理ステップは、スポッティバイト誤り制御符号を表現するパリティ検査行列と、前記入力情報データとを基に生成した検査情報を前記入力情報データに付加することにより、前記送信語を生成し、前記復号処理ステップは、前記パリティ検査行列を基に前記受信語のシンドロームを生成するシンドローム生成処理ステップと、前記シンドローム生成処理ステップにより生成されたシンドロームを基に前記受信語の誤りを訂正または検出する誤り訂正処理ステップとを有することにより、或いは、前記入力情報データが、b(bは2以上の整数)ビットを1バイトとし、複数のバイトから構成される場合に、ここで、バイト内のtビット(1≦t≦b)までの誤りをスポッティバイト誤りと称し、1バイト内に複数の前記スポッティバイト誤りが生じる誤りをバイト内複数スポッティバイト誤りと称することを前提とし、前記パリティ検査行列で表現される前記スポッティバイト誤り制御符号は、p個のバイトに生じるμ個のスポッティバイト誤りを訂正し、かつp個のバイトに生じるμ個のスポッティバイト誤りを検出することにより、或いは、前記t値、b値、p値、p値、μ値、μ値を任意に設定し、ただし、p≦p及びμ≦μが成立することにより、或いは、前記情報伝送路は情報通信システムであることにより、或いは、前記情報伝送路はメモリシステムであることにより、或いは、前記情報伝送路はバス線回路であることによって効果的に達成される。
また、本発明の上述目的は、前記誤り訂正処理ステップは、前記シンドロームを基に前記受信語の何れのビットが誤っているかを検出するビット誤りポインタを生成し、生成された前記ビット誤りポインタを基に、誤りビットに該当する前記受信語のビット値を反転させることにより、前記受信語の誤りを訂正し、また、前記受信語のビット誤りを訂正できないことを検出した場合に、訂正不可能誤り検出信号を出力することにより、或いは、前記誤り訂正処理ステップは、H’復号処理ステップと、H”乗算処理ステップと、GF(2)上の並列復号処理ステップと、GF(2)上の誤り生成処理ステップと、反転処理ステップとを有することにより、或いは、前記H’復号処理ステップは、前記シンドローム生成処理ステップで生成された前記シンドロームの上位qビットを基にして、バイトごとの誤りの和(e)を生成し、前記H”乗算処理ステップは、前記H’復号処理ステップで生成された前記バイトごとの誤りの和(e)を基にして、前記バイトごとの誤りの和(e)とH”の転置行列の積を生成し、前記GF(2)上の並列復号処理ステップは、前記H”乗算処理ステップで生成された前記バイトごとの誤りの和(e)とH”の転置行列の積、及び前記シンドローム生成処理ステップで生成された前記シンドロームの上位qビットを除く残りの下位ビットを基にして、GF(2)上のビット誤りポインタ、及びGF(2)上の並列復号において誤り訂正が不可能とみなされたときに出力される第1の訂正不可能誤り検出信号を生成し、前記GF(2)上の誤り生成処理ステップは、前記H’復号処理ステップで生成された前記バイトごとの誤りの和(e)、及び、前記GF(2)上の並列復号処理ステップで生成された前記GF(2)上のビット誤りポインタを基にして、GF(2)上のビット誤りポインタ、及び誤り訂正が不可能とみなされたときに出力される第2の訂正不可能誤り検出信号を生成し、前記反転処理ステップは、前記GF(2)上の誤り生成処理ステップで生成された前記GF(2)上のビット誤りポインタを基にして、前記GF(2)上のビット誤りポインタに対応した前記受信語のビット値を反転させることにより、前記受信語の誤りを訂正することにより、或いは、前記誤り訂正処理ステップでは、前記GF(2)上の並列復号処理ステップで生成された前記第1の訂正不可能誤り検出信号と、前記GF(2)上の誤り生成処理ステップで生成された前記第2の訂正不可能誤り検出信号の論理和をとることにより、訂正能力を超えた誤りを検出したことを示す第3の訂正不可能誤り検出信号を出力することによって効果的に達成される。
また、本発明の上述目的は、前記GF(2)上の誤り生成処理ステップは、前記GF(2)上のビット誤りポインタ(e’)の1バイトから、復号結果ビット誤りポインタ
Figure 0004036338
の1バイト及びiバイトにおける検出信号を出力するtビット誤り訂正復号処理ステップと、入力された複数の前記iバイトにおける検出信号の重みの数だけを出力の上位ビットから1を連続して出力する多入力ソート処理ステップと、誤訂正判定を行い、前記GF(2)上のビット誤りポインタ(e)の1バイトを出力するiバイトにおける誤訂正判定処理ステップとを有することにより、或いは、前記GF(2)上の誤り生成処理ステップは、tビット誤り訂正復号処理ステップと、多入力ソート処理ステップと、iバイトにおける誤訂正判定処理ステップとを有し、前記tビット誤り訂正復号処理ステップは、前記GF(2)上のビット誤りポインタ(e’)の所定の1バイトを入力とし、復号結果ビット誤りポインタ
Figure 0004036338
の前記所定の1バイトに対応する1バイトを前記iバイトにおける誤訂正判定処理ステップに出力するとともに、訂正能力をこえた誤りを検出する信号であるiバイトにおける検出信号を前記多入力ソート処理ステップと前記iバイトにおける誤訂正判定処理ステップに出力し、前記多入力ソート処理ステップは、入力される複数の前記iバイトにおける検出信号の重み(1の数)を数え、その重みの数だけを出力の上位ビットから1を連続して出力し、前記iバイトにおける誤訂正判定処理ステップは、すべてのバイトの前記tビット誤り訂正復号処理ステップから出力される前記復号結果ビット誤りポインタ
Figure 0004036338
、前記iバイトにおける検出信号、及び前記バイトごとの誤りの和(e)を入力とし、誤訂正判定を行い、前記GF(2)上のビット誤りポインタ(e)の1バイトを出力することにより、或いは、前記GF(2)上の誤り生成処理ステップでは、前記多入力ソート処理ステップから出力された信号において、その上位2ビット目の信号を前記第2の訂正不可能誤り検出信号として出力し、また、前記iバイトにおける誤訂正判定処理ステップから出力された信号を集め、符号ビット長のビット数を有する前記GF(2)上のビット誤りポインタを出力することによって効果的に達成される。
また、本発明の上述目的は、前記iバイトにおける誤訂正判定処理ステップでは、前記誤訂正判定が次の誤訂正判定数式によって行われ、
Figure 0004036338
ただし、
Figure 0004036338
で定義され、スポッティバイト誤りの個数を表し、
Figure 0004036338
はベクトルeにおけるガロア体GF(2)上のハミング重みであり、前記誤訂正数式が成立している場合に、
Figure 0004036338
となり誤訂正はされていないと判定され、前記誤訂正数式が成立していない場合に、
Figure 0004036338
となり誤訂正はされていると判定されるようにすることにより、或いは、
Figure 0004036338
Figure 0004036338
前記H”乗算処理ステップにSII、SIII、SIVを新たに入力し、SI≠0かつSII=SIII=SIV=0の場合に、検出信号を出力し、また、前記GF(2)上の誤り生成処理ステップにSIを新たに入力し、前記GF(2)上の誤り生成処理ステップにおいて、GF(2)上の誤りe’において誤りバイト数が1かどうかを調べ、前記多入力ソート処理ステップでSIのハミング重みがμtより大きいかどうかを調べることにより、復号処理を行うことによって効果的に達成される。
本発明に係る、誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置によれば、符号を表現するパリティ検査行列と入力情報データとを基に生成した検査情報を前記入力情報データに付加した送信語が、情報伝送路中で発生した誤りを有する可能性のある受信語に対し、前記パリティ検査行列を基にシンドロームを生成するとともに、このシンドロームを基に前記受信語の誤りを訂正または検出するようにしているので、1バイト中の1ビット、2ビット、3ビット等のtビットまでの誤りであるスポッティバイト誤りに対し、任意に制限された数のバイトに生じた、任意の数のバイト内複数スポッティバイト誤り(誤りの傾向を調査して、設計者がバイトの数及びスポッティバイト誤りの個数を任意に決めることができる)を訂正・検出する機能を有する、誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号を実現することができた。
これにより、誤りを検出または訂正する符号であるパリティ検査行列の構成や復号の処理手順を、誤りの発生状況ごとに対応させる必要がなく統一的に扱うことが可能となり、本発明の符号機能におけるt値、b値、p値、p値、μ値、μ値を任意に設定するだけで、パリティ検査行列Hや復号手順を統一的に扱うことが可能となり、誤りの発生状態に柔軟に対応できる符号機能を提供することができる。
さらに、bビットであるバイト長よりも小さな整数ビット長tを選ぶことにより、従来のバイト誤り制御符号(t=bに相当)と比較して、検査ビット数を大幅に減少することが可能となる。これにより、符号長に対する検査ビット数の占める割合を小さくさせて、符号化率を格段に向上することが可能となり、高効率且つ高信頼性のあるデータ転送を実現することができる。
要するに、従来の符号技術では存在しない、『制限された数のバイトに生じた、多重のバイト内複数スポッティバイト誤りを制御できる』といった優れた機能を備える本発明の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置によれば、従来のリードソロモン符号(Reed-Solomon符号)による多重バイト誤り制御符号と比較して、検査ビット数を少なくして符号化率を向上させることができ、また、特に、t=1とした場合、従来のBCH符号による多重ビット誤り制御符号と比較して、検査ビット数を少なくして符号化率を向上させることができ、さらに、ビット誤りの発生状態に柔軟に対応できる符号機能を提供することができるといった顕著な効果を奏する。
以下、本発明を実施するための最良の形態について、図面を参照しながら詳細に説明する。
本発明を説明するための用語を次のように定義する。まず、本発明の実施形態において、対象とするディジタルデータとは、0と1との組合せの信号(2進化符号)であり、ビット誤りの発生とは、符号語中の任意のビットが、0→1または1→0になることを意味することとする。また、スポッティバイト誤りの発生とは、bビットからなるバイト中のtビット(t≦b)までが0→1または1→0になることを意味することとする。
なお、本実施の形態で、「誤り」とある場合に、特に明記していない限り、前記「ビット誤り」、「スポッティバイト誤り」のすべてを包含していることとする。また、1バイト内に複数のスポッティバイト誤り(つまり、2以上のスポッティバイト誤り)が生じる誤りを『バイト内複数スポッティバイト誤り』と称する。更に、バイト内複数スポッティバイト誤りが限られた数のバイトに生じている場合、その誤りを『誤りバイト数を制限したバイト内複数スポッティバイト誤り』と称する。
ここで、まず、本発明に係る誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置100の全体構成について説明する。図1は、本発明のバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置100(以下、スポッティバイト誤り訂正・検出装置100と略す)の概略構成を示すブロック図である。図1に示すように、スポッティバイト誤り訂正・検出装置100は、符号化回路2、回路3、復号回路4等を備えた構成になっている。
符号化回路2は、対象のディジタルデータ(以下、入力情報データ30と称する)に対して、誤りの訂正・検出を行う検査情報を生成する回路である。なお、検査情報は、任意個の検査ビットより構成されている。
回路3は、メモリ等の通信路に相当し、本実施形態では、回路3を経たデータには誤りが含まれる可能性が存在する構成としている。つまり、符号化回路2より出力されて回路3に入力されるデータには誤りが生じていないのに対して、回路3から出力されるデータには、誤りが発生している場合を含んでいる。
復号回路4は、シンドローム生成回路1と誤り訂正回路5とを備えた構成になっている。復号回路4は、受信語32に誤りが含まれているか否かを検出し、その誤り箇所を特定して訂正を行うための回路である。復号回路4の詳細な構成については、後述する復号処理で説明する。
なお、後述する符号化処理及び復号処理では、ガロア体理論に基づいた行列演算を行うことから、符号化回路2、復号回路4、または通信路中における各データを、英字で付した行列、またはベクトルで表現する。具体的には、例えば、入力情報データD、符号(パリティ検査行列)H、検査情報C、送信語V、受信語V’、シンドロームSと表している。
次に、本発明のスポッティバイト誤り訂正・検出装置100の全体動作について説明する。図2は、図1に示された本発明のスポッティバイト誤り訂正・検出装置100の全体動作の処理手順を示すフローチャートである。
図2に示されるように、まず、符号化回路2では、入力情報データ(D)30が入力されると、詳細については後述するパリティ検査行列(H)を用いて検査情報(C)を生成する(ステップS200)。次に、符号化回路2では、この検査情報(C)を入力情報データ(D)30に付加して、送信語(V)31としてメモリ等の通信路である回路3に送出する(ステップS201)。そして、回路3を経て誤りを含む可能性のある受信語(V’)32は、復号回路4に入力される(ステップS202)。
次に、復号回路4では、まず、符号化回路2で用いたパリティ検査行列(H)を利用して、入力された受信語(V’)32に誤りが発生しているか否かを調べる。具体的には、復号回路4のシンドローム生成回路1が、符号を表現しているパリティ検査行列(H)を転置させた転置行列(H)を、受信語(V’)32に対して乗算することにより、シンドローム(S)を生成する(ステップS203)。シンドローム(S)33の値は、受信語(V’)32に応じて変化するため、受信語(V’)32に誤りが含まれているかを判断することが可能となる。
そこで、復号回路4の誤り訂正回路5は、前記シンドローム(S)33の値に基づいて、まず誤りの有無を検出し(ステップS204)、誤りが検出された場合に、その誤りが訂正可能か否かを判断し(ステップS205)、前記判断の結果、その誤りが訂正可能であれば、誤りの訂正を行う(ステップS206)。そして、誤り訂正回路5は、受信語V’に対してスポッティバイト誤りの訂正処理を施した場合に、訂正後のV’を受信語出力情報データ(V)34として出力する(ステップS207)。これに対して、ステップS205の判断の結果、訂正不可能なスポッティバイト誤り等が検出された場合には、誤り訂正回路5は、訂正不可能な誤り検出信号としてのUCE(Uncorrectable Error)信号35を出力する(ステップS208)。
次に、前述した符号化回路2及び復号回路4で用いられるパリティ検査行列(H)の構成について、詳細に説明する。本発明のパリティ検査行列H(以下、Hマトリクス、符号マトリクス、または単に検査行列とも称する)は、制限された数のバイトに生じる複数のスポッティバイト誤りを訂正・検出する機能を有する符号である。
本実施の形態では、任意のp、p(p≦p)、μ、μ(μ≦μ)、t(tは1以上b以下の整数)、及びb(2以上の整数)に対して構成できる一般的な符号構成法を提示するとともに、その符号により実際に誤りの訂正・検出ができる方法を示し、またそのための符号化回路および復号回路を提示し、前記符号化回路及び復号回路によって誤りが具体的に訂正・検出できることを示す。
ここで、まず、p個のバイトに生じるμ個のスポッティバイト誤りを訂正し、かつp個のバイトに生じるμ個のスポッティバイト誤りを検出することを具体的に示す。
以下では、p個のバイトに生じるμ個のスポッティバイト誤りを訂正し、かつp個のバイトに生じるμ個のスポッティバイト誤りを検出する機能を有する、『誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号』を
Figure 0004036338
と表す。例えば、2個のバイトに生じる3個のスポッティバイト誤り訂正符号の場合に、[Tt/bEC]符号と表し、μ=μ=3、p=p=2となる。
また、本発明の符号構成法において、t=bのとき、正確には後述するように、
Figure 0004036338
のとき、従来のバイト誤り制御符号であるリード・ソロモン符号(RS符号)に一致する。
いま、Kビットの入力情報データ(D)30に対してRビットの検査情報(C)を付加し、ある機能を満足するN=K+Rビットの長さを有する送信語V(Nビットの行ベクトル)を構成することができたときに、この送信語(V)と、誤り制御符号を規定するR行N列の2元パリティ検査行列(H)との間には、V・H=0の関係が成立する。ここで、Hはパリティ検査行列(H)の行と列を入れ替えて生成した転置行列であり、また、右辺の0はRビットの零行ベクトルを示している。
本実施形態では、p個のバイトに生じるμ個のスポッティバイト誤りを訂正し、かつp個のバイトに生じるμ個のスポッティバイト誤りを検出する機能を有する、誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号
Figure 0004036338
に用いるR行N列を有するパリティ検査行列(H)を、下記数1に示すような構成としている。
Figure 0004036338
ただし、R=q+(p+p−1)r、N=bn、0≦i≦n−1、n=2−1である。
上記数1を構成する行列H’は、下記数2に示すq次の列ベクトルh’(0≦j≦b−1)から構成されるq行b列(q≦b)の2元行列であり、(μ+μ)tまたはbのうちいずれか小さい値に等しいか大きい列が線形独立である。
Figure 0004036338
ここで、(μ+μ)t≧bのとき、前記行列H’は単位行列を含む正則行列であり、(μ+μ)t<bのとき、前記行列H’は最小ハミング距離(μ+μ)t+1を有する符号の検査行列、すなわち、(μ+μ)tビット誤り検出機能を有する(b、b−q)符号のパリティ検査行列に等しい。
また、上記数1を構成する行列H”は、下記数3に示すr次の列ベクトルh”(0≦j≦b−1)から構成されるr行b列(r≦b)の2元行列であり、
Figure 0004036338
またはbのうちいずれか小さい値に等しいか大きい列が線形独立である。ここで、
Figure 0004036338
はxを超えない最大の整数を表す。
Figure 0004036338
ここで、
Figure 0004036338
のとき、前記行列H”は単位行列を含む正則行列であり、
Figure 0004036338
のとき、前記行列H”は最小ハミング距離
Figure 0004036338
を有する符号の検査行列、すなわち、
Figure 0004036338
ビット誤り検出機能を有する(b、b−r)符号のパリティ検査行列に等しい。
次に、γをGF(2)のr次の拡大体GF(2)の原始元とするときに、γH”は下記数4で定義することができる。
Figure 0004036338
このとき、最大符号長Nは、N=b(2−1)である。
上記数1に示したパリティ検査行列(H)は、パラメータ
Figure 0004036338
とした場合に、H’及びH”は任意のb列が線形独立な行列となるため、従来のpバイト誤りを訂正するとともにpバイト誤りを検出する機能を有する、p訂正p検出RS符号のパリティ検査行列と一致する。
また、本実施形態では、
Figure 0004036338
の伸長符号を定義することができる。p個のバイトに生じるμ個のスポッティバイト誤りを訂正し、かつp個のバイトに生じるμ個のスポッティバイト誤りを検出する機能を有する、誤りバイト数を制限した伸長バイト内複数スポッティバイト誤り制御符号
Figure 0004036338
に用いるR行N列を有するパリティ検査行列(H)は、下記数5に示すような構成とすることができる。
Figure 0004036338
ただし、r’≧rであり、R=q+(p+p−1)r’、N=b(n+1)+r’、0≦i≦n−1、n=2r’−1であり、
Figure 0004036338
はr’次の単位行列で、
Figure 0004036338
は零行列である。
上記数5を構成する行列H’は、下記数6に示すq次の列ベクトルh’(0≦j≦b−1)から構成されるq行b列(q≦b)の2元行列であり、(μ+μ)tまたはbのうちいずれか小さい値に等しいか大きい列が線形独立である。
Figure 0004036338
ここで、(μ+μ)t≧bのとき、前記行列H’は単位行列を含む正則行列であり、(μ+μ)t<bのとき、前記行列H’は最小ハミング距離(μ+μ)t+1を有する符号の検査行列、すなわち、(μ+μ)tビット誤り検出機能を有する(b、b−q)符号のパリティ検査行列に等しくなる。
また、上記数5を構成する行列H”は、下記数7に示すr次の列ベクトルh”(0≦j≦b−1)から構成されるr行b列(r≦b)の2元行列であり、
Figure 0004036338
またはbのうちいずれか小さい値に等しいか大きい列が線形独立である。ここで、
Figure 0004036338
ははxを超えない最大の整数を表す。
Figure 0004036338
ここで、
Figure 0004036338
のとき、前記行列H”は単位行列を含む正則行列であり、
Figure 0004036338
のとき、前記行列H”は最小ハミング距離
Figure 0004036338
を有する符号の検査行列、すなわち、
Figure 0004036338
ビット誤り検出機能を有する(b、b−r)符号のパリティ検査行列に等しくなる。
次に、γをGF(2)のr’次の拡大体GF(2r’)の原始元とするときに、γH”は下記数8で定義することができる。
Figure 0004036338
ここで、Φは加法のもとでGF(2)からGF(2r’)への単射準同型写像(injective homomorphism)であり、すなわち、Φ:GF(2)→GF(2r’)であることによって効果的に達成される。このとき、最大符号長Nは、N=b・2r’+r’である。数5のHの2行目から下の行に用いるH”の行数r’は、rより大きい値をとることができ、数5で表される符号は、(μ+μ−1)ビットずつ検査ビット数を増大させることにより、任意の符号長に対して構成できる符号であることに注意する必要がある。
上記数5に示したパリティ検査行列(H)は、パラメータ
Figure 0004036338
とした場合に、H’及びH”は任意のb列が線形独立な行列となるため、従来のpバイト誤りを訂正するとともにpバイト誤りを検出する機能を有する、p訂正p検出2次伸長RS符号のパリティ検査行列と一致する。
次に、上記数1に示したパリティ検査行列(H)で表される符号が、p個のバイトに生じるμ個のスポッティバイト誤りを訂正し、かつp個のバイトに生じるμ個のスポッティバイト誤りを検出することを具体的に示す。一般に、パリティ検査行列H=[H、H、・・・、Hn−1]が、以下に示す必要十分条件を満たしていることを示せばよい。ただし、HはR×bの小行列である。
Figure 0004036338
ここで、
Figure 0004036338
は誤りベクトルeにおけるi番目のバイトであり、
Figure 0004036338
はy以下である最大の整数、
Figure 0004036338
はz以上である最小の整数をそれぞれ表す。
また、
Figure 0004036338
は、すべて異なるものとし、
Figure 0004036338
は下記数10で定義され、スポッティバイト誤りの個数を表している。ただし、
Figure 0004036338
はベクトルeにおけるガロア体GF(2)上のハミング重みである。
Figure 0004036338
スポッティバイト誤り訂正・検出は、前述したシンドローム生成回路1が生成するシンドローム(S)33を用いて実行する。ここで、シンドローム(S)33と前記パリティ検査行列(H)との関係は、S=V’・Hで表される。いま、受信語(V’)32が元々の送信語(V)31に対して誤り(E)を含み、V’=V+Eで表されるとき、シンドローム(S)33は、S=V’・H=(V+E)・H=V・H+E・Hとなる。
前述したように、V・H=0の関係が成立していることから、結局、シンドロームS=E・Hが成り立つ。つまり、シンドローム(S)33は、送信語(V)31に影響されずに誤り(E)のみで決まることから、シンドローム(S)33に基づいてスポッティバイト誤り訂正を行うことが可能か否かは、パリティ検査行列(H)と誤り(E)とから計算されるE・Hの値の結果によって決定できるものである。
上記数9に示した必要十分条件は、スポッティバイト誤りの訂正数μ及び検出数μに対し、訂正・検出可能なすべてのバイト内複数スポッティバイト誤りのシンドロームと訂正可能な他のすべてのバイト内複数スポッティバイト誤りのシンドロームが異なることを示している。
すなわち、p個以下のバイトに生じるμ個以下のバイト内複数スポッティバイト誤りのシンドロームと他のp個以下のバイトに生じるμ個以下のバイト内複数スポッティバイト誤りのシンドロームが異なればよい。
ここで、ρ(ρ≦p)バイトに生じる
Figure 0004036338
個のスポッティバイト誤りの集合を
Figure 0004036338
とする。ただし、
Figure 0004036338
である。
また、ρ(ρ≦p)バイトに生じる
Figure 0004036338
個のスポッティバイト誤りの集合を
Figure 0004036338
とする。ただし、
Figure 0004036338
である。
このとき、
Figure 0004036338
は、Ω及びΩにおける誤りパターンにおいて、下記数11の関係が成り立つ。
Figure 0004036338
Ω及びΩにおけるスポッティバイト誤りは、同じバイトに誤りが生じているものがある。
Figure 0004036338
バイトにおいて、同じバイトに誤りが生じているとすると、下記数12が得られる。
Figure 0004036338
よって、上記数12より下記数13が得られる。
Figure 0004036338
ここで、x=1、2、・・・、Vに対し、
Figure 0004036338
である。上記数13において、
Figure 0004036338
と置き換え、ρ+ρ−V=v+v+・・・+vλとすると、上記数9に示した必要十分条件が成立する。
よって、数1に示すパリティ検査行列で表現される符号が、上記数9に示した必要十分条件を満たすことを示すことにより、p個のバイトに生じるμ個のスポッティバイト誤りを訂正し、かつp個のバイトに生じるμ個のスポッティバイト誤りを検出することを具体的に示す。
シンドロームSとして、下記数14の関係が成立していると仮定する。
Figure 0004036338
上記数14の
Figure 0004036338
において、H’は任意のMin((μ+μ)t、b)列が線形独立な行列であることにより、下記数15が得られる。
Figure 0004036338
上記数15において、右からH”をかけると、下記数16が得られる。
Figure 0004036338
上記数14、数16において、
Figure 0004036338
をそれぞれ
Figure 0004036338
とおくと、下記数17が得られる。ここで、H”は任意の
Figure 0004036338
列が線形独立な行列であることにより、
Figure 0004036338
となる。
Figure 0004036338
上記数17において、上からv+v+・・・+vλ(≦p+p)個の式を行列の形で表すと、下記数18が得られる。
Figure 0004036338
上記数18中のv+v+・・・+vλ行v+v+・・・+vλ列の行列は、ヴァンデルモンドの行列の形をしているため、正則行列である。よって、上記数18の両辺に左からこの行列の逆行列を乗算すると、下記数19が得られる。
Figure 0004036338
上記数19は、
Figure 0004036338
となり、前提である
Figure 0004036338
に矛盾する。よって、数1で表される符号は、上記数9で示される必要十分条件を満たしている。
したがって、前述した証明結果より、上記数1に示すパリティ検査行列(H)は、受信語(V’)32に含まれるp個のバイトに生じるμ個のスポッティバイト誤りを訂正し、かつp個のバイトに生じるμ個のスポッティバイト誤りを検出する機能を有していることを証明することができた。
また、上記数5に示したパリティ検査行列(H)で表される伸長符号も、同様に上記数9に示した必要十分条件を満たすことを示すことにより、p個のバイトに生じるμ個のスポッティバイト誤りを訂正し、かつp個のバイトに生じるμ個のスポッティバイト誤りを検出することを示すことができる。
ここでは、具体的な符号パラメータを与えて、上記数1に示すパリティ検査行列(H)を構成できることを示す。なお、このパリティ検査行列(H)は、あくまで一例であって、本発明がこれに限定されないことは言うまでもない。
いま、読み書きデータ幅として、8ビットを有するメモリ素子を使用したメモリシステムを対象に、b=8、t=1、μ=μ=4、p=p=2のパラメータを与え、バイト内1ビットの誤りをスポッティバイト誤りとして、2バイトに生じる4個のバイト内複数スポッティバイト誤り(本例の場合、ビット誤り)を訂正する機能を有する[41/8EC]符号のパリティ検査行列(H)を構成することとする。
このとき、Min((μ+μ)t、b)=Min(8、8)=8より、行列H’として、任意の8列が線形独立な行列を構成すればよい。この一例として、下記数20に示す8×8(8行8列を意味する)単位行列を構成すればよい。
Figure 0004036338
また、
Figure 0004036338
より、行列H”として、任意の4列が線形独立な4ビット誤り検出符号の検査行列を構成すればよい。この一例として、下記数21に示す6×8行列を示す。
Figure 0004036338
次に、γをGF(2)上の6次の原始多項式g(x)=x+x+1の根とすると、γは、6次の列ベクトルγ=(010000)と表現することができる。
つまり、γのべき表示γとベクトル表示との対応を示すと、次のようになる。
γ=(100000)、 γ=(010000)、 γ=(001000)
γ=(000100)、 γ=(000010)、 γ=(000001)
γ=(110000)、 γ=(011000)、 γ=(001100)
γ=(000110)、 γ10=(000011)、γ11=(110001)
γ12=(101000)、γ13=(010100)、γ14=(001010)
γ15=(000101)、γ16=(110010)、γ17=(011001)
γ18=(111100)、γ19=(011110)、γ20=(001111)
γ21=(110111)、γ22=(101011)、γ23=(100101)
γ24=(100010)、γ25=(010001)、γ26=(111000)
γ27=(011100)、γ28=(001110)、γ29=(000111)
γ30=(110011)、γ31=(101001)、γ32=(100100)
γ33=(010010)、γ34=(001001)、γ35=(110100)
γ36=(011010)、γ37=(001101)、γ38=(110110)
γ39=(011011)、γ40=(111101)、γ41=(101110)
γ42=(010111)、γ43=(111011)、γ44=(101101)
γ45=(100110)、γ46=(010011)、γ47=(111001)
γ48=(101100)、γ49=(010110)、γ50=(001011)
γ51=(110101)、γ52=(101010)、γ53=(010101)
γ54=(111010)、γ55=(011101)、γ56=(111110)
γ57=(011111)、γ58=(111111)、γ59=(101111)
γ60=(100111)、γ61=(100011)、γ62=(100001)

これより、上記数21に示す行列H”は、H”=[γγγγγγγ18γ20]と表すことができる。よって、上記数1に示したパリティ検査行列(H)は、H’及びH”を用いて、具体的な(504、478)[41/8EC]符号を構成することができる。この符号の最後から414列削除することによって得られた(90、64)[41/8EC]符号の検査行列を図3に示す。
なお、図3に示すように、パリティ検査行列(H)のH’及びH”に相当する行単位の箇所を明確化するため、その境界に実線を引いて示している。
いま、パリティ検査行列(H)の構成要素であるγH”が、図3に示す実際のビット値と対応しているかを具体的に確認する。前述したように、H”=[γγγγγγγ18γ20]より、γH”=γ[γγγγγγγ18γ20]=[γγγγγγγ21γ23]となる。このべき表示をベクトル表示(例えば、γ=(100000)等)に変換すれば、図3に示すa部分に相当し、このa部分は明らかにパリティ検査行列(H)のγH”部分である。同様にして、パリティ検査行列(H)における他の構成要素についても、ベクトル表示に変換すれば、全体として図3に示すビット表現の26行90列の構成となる。
ここで、μ=μ=3に対しては、Min((μ+μ)t、b)=Min(6、8)=6より、行列H’として、任意の6列が線形独立な6ビット誤り検出符号の検査行列を構成すればよい。この一例として、下記数22に示す7×8行列を示す。
Figure 0004036338
また、
Figure 0004036338
より、行列H”として、任意の3列が線形独立な3ビット誤り検出符号の検査行列を構成すればよい。この一例として、下記数23に示す4×8行列を示す。
Figure 0004036338
また、t=2に対しては、例えば、μ=μ=3、p=p=2のパラメータを有する[T2/8EC]符号では、Min((μ+μ)t、b)=Min(12、8)=8より、行列H’として、任意の8列が線形独立な行列を構成すればよい。この一例として、上記数20に示す8×8(8行8列を意味する)単位行列を構成すればよい。
また、
Figure 0004036338
より、行列H”として、任意の6列が線形独立な6ビット誤り検出符号の検査行列を構成すればよい。この一例として、下記数24に示す7×8行列を示す。
Figure 0004036338
なお、以上は最近最も使用されている、バイト幅b=8ビット入出力を有する半導体メモリ素子を対象として、パリティ検査行列H(符号)の一例を構成して説明したが、他にも多く使用されている多ビット入出力素子、例えば、b=16ビット入出力を有する素子等に対しても、本発明の誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号のパリティ検査行列Hを構成可能であることは明らかである。また、1以上の任意の整数値を有するtに対しても、そして、任意のp、p、μ、μに対しても、本発明の誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号のパリティ検査行列Hを構成可能であることは明らかである。
このように、上記では、誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号のパリティ検査行列(H)を示したが、H’の構成をb次の単位行列にすることにより、バイト内複数スポッティバイト誤りの訂正能力を超えた1バイト誤りを検出する機能を有する、誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号を構成することができる。
すなわち、バイト誤り検出機能を有する誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号とは、p個のバイトに生じるμ個のスポッティバイト誤りを訂正するとともに、p個のバイトに生じるμ個のスポッティバイト誤りを検出し、かつ1バイトに生じるバイト誤りを検出する機能を備える符号である。以下では、この符号を
Figure 0004036338
本実施形態では、
Figure 0004036338
に用いるR行N列を有するパリティ検査行列(H)を、下記数25に示すような構成としている。
Figure 0004036338
ただし、R=b+(p+p−1)r、N=bn、0≦i≦n−1、n=2−1、Iはb次の単位行列である。
上記数25を構成する行列H”は、下記数26に示すr次の列ベクトルh”(0≦j≦b−1)から構成されるr行b列(r≦b)の2元行列であり、
Figure 0004036338
またはbのうちいずれか小さい値に等しいか大きい列が線形独立である。ここで、
Figure 0004036338
はxを超えない最大の整数を表す。
Figure 0004036338
ここで、
Figure 0004036338
のとき、前記行列H”は単位行列を含む正則行列であり、
Figure 0004036338
のとき、前記行列H”は最小ハミング距離
Figure 0004036338
を有する符号の検査行列、すなわち、
Figure 0004036338
ビット誤り検出機能を有する(b、b−r)符号のパリティ検査行列に等しい。
次に、γをGF(2)のr次の拡大体GF(2)の原始元とするときに、γH”は下記数27で定義することができる。
Figure 0004036338
このとき、最大符号長Nは、N=b(2−1)である。
上記数25に示したパリティ検査行列(H)は、パラメータ
Figure 0004036338
とした場合に、H”は任意のb列が線形独立な行列となるため、従来のpバイト誤りを訂正するとともにpバイト誤りを検出する機能を有する、p訂正p検出RS符号のパリティ検査行列と一致する。
また、本実施形態では、
Figure 0004036338
の伸長符号を定義することができる。
Figure 0004036338
に用いるR行N列を有するパリティ検査行列(H)は、下記数28に示すような構成とすることができる。
Figure 0004036338
ただし、r’≧rであり、R=b+(p+p−1)r’、N=b(n+1)+r’、0≦i≦n−1、n=2r’−1、Iはb次の単位行列であり、
Figure 0004036338
はr’次の単位行列で、
Figure 0004036338
は零行列である。
上記数28を構成する行列H”は、下記数29に示すr次の列ベクトルh”(0≦j≦b−1)から構成されるr行b列(r≦b)の2元行列であり、
Figure 0004036338
またはbのうちいずれか小さい値に等しいか大きい列が線形独立である。ここで、
Figure 0004036338
はxを超えない最大の整数を表す。
Figure 0004036338
ここで、
Figure 0004036338
のとき、前記行列H”は単位行列を含む正則行列であり、
Figure 0004036338
のとき、前記行列H”は最小ハミング距離
Figure 0004036338
を有する符号の検査行列、すなわち、
Figure 0004036338
ビット誤り検出機能を有する(b、b−r)符号のパリティ検査行列に等しくなる。
次に、γをGF(2)のr’次の拡大体GF(2r’)の原始元とするときに、γH”は下記数30で定義することができる。
Figure 0004036338
ここで、Φは加法のもとでGF(2)からGF(2r’)への単射準同型写像(injective homomorphism)であり、すなわち、Φ:GF(2)→GF(2r’)であることによって効果的に達成される。このとき、最大符号長Nは、N=b・2r’+r’である。数28のHの2行目から下の行に用いるH”の行数r’は、rより大きい値をとることができ、数28で表される符号は、(μ+μ−1)ビットずつ検査ビット数を増大させることにより、任意の符号長に対して構成できる符号であることに注意する必要がある。
上記数28に示したパリティ検査行列(H)は、パラメータ
Figure 0004036338
とした場合に、H”は任意のb列が線形独立な行列となるため、従来のpバイト誤りを訂正するとともにpバイト誤りを検出する機能を有する、p訂正p検出2次伸長RS符号のパリティ検査行列と一致する。
次に、上記数25に示したパリティ検査行列(H)で表される符号が、p個のバイトに生じるμ個のスポッティバイト誤りを訂正するとともに、p個のバイトに生じるμ個のスポッティバイト誤りを検出し、かつ1バイトに生じるバイト誤りを検出する機能を有していることを具体的に示す。パリティ検査行列H=[H、H、・・・、Hn−1]が上記数9及び下記数31に示す必要十分条件を満たしていることを示せばよい。ただし、HはR×bの小行列である。
Figure 0004036338
ここで、
Figure 0004036338
は誤りベクトルeにおけるi番目のバイトに生じるバイト誤りで、
Figure 0004036338
は誤りベクトルeにおけるi番目のバイトで、
Figure 0004036338
はy以下である最大の整数、
Figure 0004036338
はz以上である最小の整数をそれぞれ表す。
また、
Figure 0004036338
は、すべて異なるものとし、
Figure 0004036338
は上記数10で定義され、スポッティバイト誤りの個数を表している。
上記数9に示した必要十分条件と同様に、上記数9及び上記数31に示した条件を満たしていることを示すことができる。
また、上記数28に示したパリティ検査行列(H)で表される伸長符号も、同様に上記数9及び上記数31に示した必要十分条件を満たしていることを示すことができる。
このように、上記では、誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号のパリティ検査行列(H)、及びバイト誤り検出機能を有する誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号のパリティ検査行列(H)の構成法の幾つかの例を示したが、次に、本発明のパリティ検査行列(H)を用いて行う符号化処理と復号処理の具体的な方法とそれぞれの回路構成について、上記数1に示したパリティ検査行列(H)で表される、誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号
Figure 0004036338
を例に取って説明する。

<A>符号化の方法及びこれを実現する回路の構成について
まず、図1に示す符号化回路2が行う符号化処理の具体的な方法について説明する。
符号化回路2は、入力情報データD(行ベクトル)30と、図3に示すパリティ検査行列(H)を基本行変形して得られるパリティ検査行列(H)の情報部Hを用いて、検査情報C(行ベクトル)を生成する。この検査情報(C)の生成は、下記数32により求めることができる。
Figure 0004036338
具体的には、符号化回路2は、入力情報データ(D)30の情報ビット長64ビット及び検査ビット長26ビットを基に、パリティ検査行列Hである(504、478)[41/8EC]符号を構成した後に、後半414ビットに相当する列ベクトル414列を削除することにより、符号ビット長90ビット、情報長64ビットを有する図3に示す(90、64)[41/8EC]符号を構成することができる。この符号のパリティ検査行列Hを基本行変形すると、組織符号としてのパリティ検査行列Hを構成することができる。図4は、(90、64)[41/8EC]組織符号のパリティ検査行列を示している。
図4に示す(90、64)[41/8EC]組織符号のパリティ検査行列において、d〜d63が情報ビットに相当し、c〜c25が検査ビットに相当する。ここで、図4に示す(90、64)[41/8EC]組織符号のパリティ検査行列において、情報ビットに相当するd〜d63の列ベクトルを集めた行列が、パリティ検査行列の情報部Hとなる。
ここで、符号化では図4に示すパリティ検査行列を使用し、復号では図3に示すパリティ検査行列を使用する。基本行変形して得られた行列は、もとの行列と等価であり、図4に示すパリティ検査行列で表される符号は、図3に示すパリティ検査行列で表される符号と、その性質は全く変化しない。これより、符号化においては、図4に示すパリティ検査行列を使用することとする。
次に、符号化回路2は、上記数32を基に、26ビットの検査情報(C)を生成する。上記数32に示すC=D・H から明らかなように、例えば、検査情報(C)における検査ビットcを生成するには、図4に示す符号化用(90、64)[41/8EC]組織符号の行列の1行目において、cに対応するビットを除いて“1”が存在する箇所に対応するビットのGF(2)上の和(すなわち、2を法とする和:mod2)をとる演算を行えばよい。
例えば、検査ビットcを求める場合に、cに対応するビットを除いて“1”が存在しているのは、d、d、d、d、d、d11、d12、d20、d21、d24、d26、d31、d33、d37、d38、d39、d40、d41、d42、d43、d44、d47、d48、d52、d54、d55、d56、d57、d58であり、これら29個のビットについて、2を法とする和(mod2)をとればよい。
これを実現するには、図5に示すように、前記29ビットを多入力パリティチェック回路20(0)を構成すればよく、この多入力パリティチェック回路20(0)の出力が検査ビットcとなる。他の検査ビットc〜c25についても、検査ビットcと同様にして生成することができる。26ビットの検査ビットc〜c25を並列に生成する符号化回路2(多入力パリティチェック回路20(0)〜20(25)からなる)の上位14ビットの構成を図5に、下位12ビットの構成を図6にそれぞれ示す。
次に、符号化回路2によって生成した検査情報(C)を、入力情報データ(D)30に付加した符号語を下記数33に示す。これが回路3に送られる送信語(V)(90ビットのベクトル)となる。
Figure 0004036338

<B>復号の方法及びこれを実現する回路の構成について
次に、送信語(V)31に誤りが生じたとき(すなわち、受信語32に誤りが含まれているとき)に、その誤りに対する訂正・検出処理が、図3に示す(90、64)[41/8EC]符号を用いて生成されるシンドローム(S)33の値に基づいて可能なことを示す。
図3に示す(90、64)[41/8EC]符号の検査行列は、p=p=2を有することから、上記数1に示すように、パリティ検査行列H’、H”による4段構成を有する。これより、1段目より得られるq=8ビットのシンドロームをSI、2段目より得られるr=6ビットのシンドロームをSII、3段目より得られるr=6ビットのシンドロームをSIII、4段目より得られるr=6ビットのシンドロームをSIVとする。
これらの情報を用いて、次のように誤りの訂正・検出を行う。受信語(V’)32とパリティ検査行列(H)とから、シンドローム(S)33は、下記数34により求めることができる。
Figure 0004036338
ここで、SI∈GF(2)は、q次の行ベクトルである。また、SII、SIII、SIV∈GF(2)は、それぞれr次の行ベクトルである。
上記数5に示す伸長符号の場合に、SI∈GF(2)は、q次の行ベクトルである。また、SII、SIII、SIV∈GF(2r’)は、それぞれr’次の行ベクトルである。
なお、シンドローム(S)33は、例えば、iI番目のバイトにeIの誤り、iII番目のバイトにeIIの誤り(w(eI)+w(eII)≦μ+μ)が生じているときに、下記数35となる。
Figure 0004036338
Iに注目すると、下記数36が成り立つ。数36において、H’は任意のMin((μ+μ)t、b)列が線形独立な行列であるため、eI+eII(=eとする)を求めることができる。図3に示す(90、64)[41/8EC]符号の場合に、H’は単位行列であるため、e=eI+eII=SIとなる。
Figure 0004036338
次に、eI+eIIにH”を右から乗算し、乗算した結果をS’I∈GF(2)とする。つまり、下記数37の関係が成立する。
Figure 0004036338
ここで、eI・H”、eII・H”(∈GF(2))をGF(2)上の誤りe’I、e’IIとし、S’=[S’IIIIIIIV]とすると、下記数38の関係が成り立つ。
Figure 0004036338
数38に示すS’は、2バイト誤り訂正RS符号(距離d=5)において誤りe’I、e’IIにおけるシンドロームの式と一致する。よって、距離d=5を有するGF(2)上のRS符号の復号法を用いることで、誤り位置iI、iII及びGF(2)上の誤りe’I、e’IIを求めることができる。また、誤り位置が求まらない場合に、誤りの訂正が不可能として誤りを検出する。
次に、GF(2)上の誤りe’I、e’IIから、GF(2)上の誤りeI、eIIを求める。つまり、eI・H”=e’I、eII・H”=e’IIの関係からeI及びeIIを求める。求めた結果を
Figure 0004036338
とする。
H”は任意のMin(2t、b)列が線形独立な行列であるため、1バイトにtビット以上の誤りが生じた場合に、その誤りは、誤訂正される
Figure 0004036338
または制御能力外誤りとして検出される。しかし、tビット以上の誤りが生じるバイトは、高々1つであるため、
Figure 0004036338
となるバイトは高々1つである。
そして、下記数39により、誤訂正されているかどうかを判定することができる。つまり、下記数39により、
Figure 0004036338
が成立するかどうかを判定することができる。すなわち、下記数39が成立している場合に、
Figure 0004036338
となり誤訂正はされていないと判定され、下記数39が成立していない場合に、
Figure 0004036338
となり誤訂正はされていると判定される。
Figure 0004036338
なお、数39に示す関係は、w(e)が三角不等式を満足していることから、示すことができる。また、GF(2)上のハミング距離に対する誤訂正の判定は、非特許文献11に詳しく述べられている。
最後に、誤訂正されている
Figure 0004036338
または制御能力外誤りとして検出されたバイトにおいて、上記において正しく訂正された誤りパターンおよびeの排他的論理和をとることにより、誤訂正されているバイトにおける誤りパターンを復元することができる。
なお、任意のp、p、μ、μに対し、つまり、前記で示した例と同様に、上記数39により、誤訂正されているかどうかを判定し、高々1つである誤りバイトの誤りパターンを、正しく訂正された誤りパターンとeとに基づいて、復元可能であることは明らかである。
RS符号に対する復号は、スポッティバイト誤りを訂正するバイト数pが小さい符号に対しては、並列復号法を用いて実現することができる。この並列復号法の一般的構成は、『バースト誤りパターン生成方法及びバーストおよびバイト誤り検出・訂正装置』(特許文献5参照)に開示されている。
しかしながら、特許文献5に開示された並列復号法は、高速な復号が可能であるが、符号のスポッティバイト誤りを訂正するバイト数pが大きくなると、回路量が大きくなるという問題が生じる。スポッティバイト誤りを訂正するバイト数pが大きい符号に対しては、例えば、バーレカンプ・マッシィ法などの逐次復号法を用いることができるが、逐次復号法による復号は、逐次(シリアル)に行われるため、復号が遅いといった問題が生じる。なお、バーレカンプ・マッシィ法を用いたRS符号の復号回路の構成は、非特許文献12に開示されている。
特許文献5に開示された並列復号法によれば、例えば、p=p=2の符号に対しては、次のような手順により復号する。
まず、4r×nrを有するGF(2)上のRS符号のパリティ検査行列
Figure 0004036338
に対し、4r×2rの行列
Figure 0004036338
を構成する。ただし、
Figure 0004036338
は4r×rの小行列である。
次に、この行列
Figure 0004036338
に4r×2rの行列B(i,j)を付加し、4r×4rの正則行列
Figure 0004036338
を構成する。
そして、A(i,j)の逆行列

Figure 0004036338
を求めると、下記数40の関係が成り立つ。
Figure 0004036338
ここで、
Figure 0004036338
はr×4rの行列であり、
Figure 0004036338
となる。ただし、Iはr×rの単位行列である。また、
Figure 0004036338
はr×4rの行列であり、
Figure 0004036338
となる。また、
Figure 0004036338
は2r×4rの行列であり、
Figure 0004036338
となる。ただし、I2rは2r×2rの単位行列である。また、
Figure 0004036338
は2r×4rの行列であり、
Figure 0004036338
となる。
前記
Figure 0004036338
に対し、
Figure 0004036338
となるバイト位置i,jが誤りの位置iI、iIIとなり、
Figure 0004036338
が誤りの大きさe’I、e’IIとなる。これから、2バイトの誤りを訂正することができる。また、
Figure 0004036338
となるバイト位置i,jが存在しない場合に、誤りの訂正が不可能として誤りを検出する。
次に、本発明において、前述したp=p=2の符号に対する並列復号方法を実現する復号回路4の概略構成を図7に示す。
図1に示したように、復号回路4は、シンドローム生成回路1と誤り訂正回路5とから構成されている。
また、図7に示すように、誤り訂正回路5は、H’復号回路6と、H”乗算回路7と、GF(2)上の並列復号回路8と、GF(2)上の誤り生成回路9と、反転回路10とから構成されている。
ここで、H’復号回路6は、シンドローム(S)33の上位qビットSI36を基にして、バイトごとの誤りの和(e)38を生成する。
また、H”乗算回路7は、バイトごとの誤りの和(e)38を基にして、シンドローム(S)33の上位qビットSI36とH”の転置(H”)の積(S’I)39を生成する。
次に、GF(2)上の並列復号回路8は、シンドローム(S)33の上位qビットSI36とH”の転置(H”)の積(S’I)39、及びシンドローム(S)33の下位3rビットSIIIIIIV37を基にして、GF(2)上のビット誤りポインタ(e’)40、及びGF(2)上の並列復号において誤り訂正が不可能とみなされたときに出力されるDS(0)(Detection Signal)41を生成する。
そして、GF(2)上の誤り生成回路9は、バイトごとの誤りの和(e)38、及びGF(2)上のビット誤りポインタ(e’)40を基にして、GF(2)上の誤りをGF(2)上の誤りに変換して、GF(2)上のビット誤りポインタ(e)42、及び誤り訂正が不可能とみなされたときに出力されるDS(1)(Detection Signal)43を出力する。
最後に、反転回路10は、GF(2)上のビット誤りポインタ(e)42を基にして、誤りビットに該当する受信語(V’)32のビット値を反転させることにより、受信語(V’)32の誤りを訂正する。
次に、図7に示される復号回路4で行われる動作手順の概略を説明する。
まず、シンドローム生成回路1では、Nビットからなる受信語(V’)32が入力されると、Rビットのシンドローム(S)33を生成する。
次に、生成されたRビットのシンドローム(S)33は、上位qビットSI36と、下位3rビットSIIIIIIV37とに分けられる。シンドローム(S)33の上位qビットSI36は、H’復号回路6に入力される。また、シンドローム(S)33の下位3rビットSIIIIIIV37は、GF(2)上の並列復号回路8に入力される。
そして、H’復号回路6では、詳細は後述するが、シンドローム生成回路1で生成されたシンドローム(S)33の上位qビットSI36を基にして、bビットのバイトごとの誤りの和(e)38を出力する。
そして、H”乗算回路7では、詳細は後述するが、H’復号回路6で生成されたバイトごとの誤りの和(e)38を基にして、シンドローム(S)33の上位qビットSI36とH”の転置(H”)の積(S’I)39を出力する。
また、GF(2)上の並列復号回路8では、詳細は後述するが、H”乗算回路7で生成されたシンドローム(S)33の上位qビットSI36とH”の転置(H”)の積(S’I)39、及びシンドローム生成回路1で生成されたシンドローム(S)33の下位3rビットSIIIIIIV37を基にして、GF(2)上の誤りを指摘する
Figure 0004036338
ビットのGF(2)上のビット誤りポインタ
Figure 0004036338
を生成する。ここで、
Figure 0004036338
はyを超える最小の整数を示す。また、GF(2)上の並列復号回路8では、GF(2)上の並列復号において、誤り訂正が不可能とみなされたときに、訂正不可能誤り検出信号(DS(0))41を出力する。
そして、GF(2)上の誤り生成回路9では、詳細は後述するが、H’復号回路6で生成されたバイトごとの誤りの和(e)38、及びGF(2)上の並列復号回路8で生成されたGF(2)上のビット誤りポインタ(e’)40を基にして、GF(2)上の誤りを指摘するNビットのGF(2)上のビット誤りポインタe=(e、e、・・・、eN−1)42を生成する。また、GF(2)上の誤り生成回路9では、誤り訂正が不可能とみなされたときに、訂正不可能誤り検出信号(DS(1))43を出力する。
次に、反転回路10では、GF(2)上の誤り生成回路9で生成されたNビットのGF(2)上のビット誤りポインタ(e)42、及び受信語(V’)32を基にして、GF(2)上のビット誤りポインタ(e)42に対応した受信語(V’)32のビットを反転する。
最後に、反転回路10では、Nビットの誤り訂正された受信語Vから、Kビットの情報語Dを取り出し、出力情報データ34として出力する。
また、GF(2)上の並列復号回路8で生成された訂正不可能誤り検出信号(DS(0))41と、GF(2)上の誤り生成回路9で生成された訂正不可能誤り検出信号(DS(1))43の論理和をとることにより、訂正不可能誤り検出信号UCE(Uncorrectable Error)35の値を出力する。例えば、この訂正不可能誤り検出信号UCE35の値が“1”であれば、訂正能力を超えた誤りを検出したことを示している。
なお、上記数5に示すパリティ検査行列(H)で表される伸長符号
Figure 0004036338
、上記数25に示すパリティ検査行列(H)で表されるバイト誤り検出機能を有する誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号、及び上記数28に示すパリティ検査行列(H)で表される伸長符号
Figure 0004036338
についても、それらの復号方法及び回路構成は、上述した復号方法及び回路構成と基本的に同一である。
次に、シンドローム生成回路1、H’復号回路6、H”乗算回路7、GF(2)上の並列復号回路8、GF(2)上の誤り生成回路9、及び反転回路10のそれぞれの具体的な構成例を、図3に示す(90、64)[41/8EC]符号を用いて説明する。

<a>シンドローム生成回路1の構成
ここでは、シンドローム生成回路1の構成について詳細に説明する。
まず、シンドローム生成回路では、N=90(=64+26)ビットからなる受信語(V’)32を、下記数41に示すように表現したとき、この受信語(V’)32を入力して、下記数42に示すS、S、・・・、S25からなるR=26ビットのシンドローム(S)33を生成する。
前述したように、図3に示す[41/8EC]符号のパリティ検査行列が4段構成を有することから、これに対応してシンドローム(S)33も4個の部分に区分けし、SI=(S)、SII=(S10111213)、SIII=(S141516171819)、SIV=(S202122232425)とする。
Figure 0004036338
Figure 0004036338
上記数34に示したように、シンドロームS=V’・Hより、転置したパリティ検査行列(H)の各行は、入力する情報に対応し、例えば、行列(H)の第0行は、入力情報のv’に対応している。
そこで、シンドローム(S)33の各ビットを生成するには、符号であるパリティ検査行列(H)の各列方向に、“1”を有するビットに対応する受信語(V’)32の受信情報をGF(2)上で加算(mod2の計算)すればよい。
図8及び図9は、図3に示した(90、64)[41/8EC]符号のパリティ検査行列を基に構成したシンドローム生成回路1を示す図である。図8では、S、S、・・・、S13といったシンドローム(S)33の上位14ビット、また、図9では、S14、S15、・・・、S25といったシンドローム(S)33の下位12ビットをそれぞれ生成している。
図8及び図9に示すように、本実施例では、シンドローム生成回路1において、まず、26個の多入力パリティチェック回路21(p)、(p=0、1、・・・、25)に、図3に示した(90、64)[41/8EC]符号のパリティ検査行列の対応する各行のビット“1”を有する受信情報(v’)、(q=0、1、・・・、89)が入力する。
次に、各多入力パリティチェック回路21(p)、(p=0、1、・・・、25)において、前記入力された受信情報(v’)に対して、2を法とする和(mod2)の計算を行い、その結果がSである。
具体的に、例えば、シンドローム(S)33のビットSを生成するには、90ビットの受信語v’、v’、・・・、v89’のうち、図3に示すパリティ検査行列の第0行目において、“1”が存在する箇所に相当するv’、v’、v16’、v24’、v32’、v40’、v48’、v56’、v64’、v72’、v80’、v88’の12ビットについて、2を法とする和(mod2)をとればよい。図8の多入力パリティチェック回路21(0)は、前記12ビットの受信情報を入力として、値Sを出力するようになっている。シンドローム(S)33の他のビットS、(p=1、・・・、25)についても同様である。

<b>H’復号回路6の構成
次に、H’復号回路6について説明する。
H’復号回路6を図10に示す。数36に示した(eI+eII)・H’=SIにおいて、H’は任意のMin((μ+μ)t、b)列が線形独立な行列であるため、eI+eII(=eとする)を求めることができる。よって、論理合成を行うことにより、組み合わせ回路で実現することができる。
図3に示す(90、64)[41/8EC]符号の場合、H’は単位行列であるため、e=eI+eII=SIとなる。すなわち、
Figure 0004036338
、SI=(S)に対し、図10に示すように、
Figure 0004036338
となる。
一方、H’が単位行列でない場合に、<e>において後述する方法を用いる。

<c>H”乗算回路7の構成
次に、H”乗算回路7について説明する。
H”乗算回路7を図11に示す。数37に示したS’I=(eI+eII)・H”=e・H”を計算する。下記数43に示すH”の対応する各行のビット“1”を有するeの情報が、H”乗算回路7に入力される。そして、H”乗算回路7では、前記入力されたeの情報に対し、mod2の計算を行い、その結果をS’(p=0、1、・・・、5)として出力する。
Figure 0004036338
具体的に、例えば、シンドローム(S)33の上位qビットSI36とH”の転置(H”)の積(S’I)39のビットS’を生成するには、8ビットの
Figure 0004036338
のうち、数43に示すパリティ検査行列H”の第0行目において、“1”が存在する箇所に相当する2ビット
Figure 0004036338
の値に対して、2を法とする和(mod2)をとればよい。
図11において、排他的論理和回路22では、前記2ビットのeの情報
Figure 0004036338
が入力されて、値S’を出力していることを示している。
シンドローム(S)33の上位qビットSI36とH”の転置(H”)の積(S’I)39のほかのビットS’についても、同様に、排他的論理和回路22及び3入力パリティチェック回路23を用いて、構成することができる。
ここで、S’は数44に示す構成とする。
Figure 0004036338
<d>GF(2)上の並列復号回路8の構成
次に、GF(2)上の並列復号回路8について説明する。
GF(2)上のビット誤りポインタ40を求めるために、並列復号法を用いる。GF(2)上の並列復号回路8の全体構成を図12に示す。
図12に示されるように、GF(2)上の並列復号回路8は、12バイト中任意の2バイトの組
Figure 0004036338
を選び、i、j番目の2バイト(以下、(i、j)と表現することとする)に関する各々の誤りを生成する回路である(i、j)に対する誤り生成回路50(0)・・・50(65)、(以下、代表として50(m)、0≦m≦65、と称する)と、GF(2)上のビット誤りポインタ(e’)40を出力するGF(2)上の誤り算出回路51とから構成されている。
まず、(i、j)に対する誤り生成回路50(m)は、バイト位置i、jに対して、上述した
Figure 0004036338
を計算する回路である。要するに、(i、j)に対する誤り生成回路50(0)〜50(65)は、符号語の12バイト中のi、j(0≦i<j≦11)番目のバイトに対する前述した
Figure 0004036338
を計算し、E’m、i、E’m、jになる誤り52(m)、0≦m≦65、0≦i<j≦11(それぞれrビットのベクトル)、及び訂正可能信号53(m)、0≦m≦65、を出力する。
また、GF(2)上の誤り算出回路51は、GF(2)上のビット誤りポインタ(e’)40を出力する回路である。要するに、GF(2)上の誤り算出回路51は、誤り生成回路50(m)の出力である誤りE’m、i、E’m、jを入力とし、GF(2)上のビット誤りポインタ(e’)40を出力する。
ここで、GF(2)上の並列復号回路8の処理をより詳しく説明すると、図12に示すように、まず、24ビットのS’(シンドローム(S)33の上位qビットSI36とH”の転置(H”)の積(S’I)39、及びシンドローム(S)33の下位3rビットSIIIIIIV37)を(i、j)に対する誤り生成回路50(m)に入力する。
次に、(i、j)に対する誤り生成回路50(m)は、誤りE’m、i、E’m、jを生成し、そして、生成した誤りE’m、i、E’m、jをGF(2)上の誤り算出回路51に入力する。次に、GF(2)上の誤り算出回路51は、GF(2)上のビット誤りポインタ(e’)40を出力する。
また、24ビットのS’(シンドローム(S)33の上位qビットSI36とH”の転置(H”)の積(S’I)39、及びシシンドローム(S)33の下位3rビットSIIIIIIV37)を24ビット入力ORゲート回路54に入力する。
一方、(i、j)に対する誤り生成回路50(m)によって生成される訂正可能信号53(m)を、66入力NORゲート回路55に入力する。
24ビット入力ORゲート回路54及び66入力NORゲート回路55からそれぞれ出力された2本の信号を2入力ANDゲート回路56に入力する。2入力ANDゲート回路56は、訂正不可能誤り検出信号(DS(0))41を出力する。これらの回路により、シンドロームが非零且つ訂正可能信号がすべて0の場合に、誤りを検出する。
次に、(i、j)に対する誤り生成回路50(m)の構成例を具体的に示す。例として、(0、1)に対する誤り生成回路50(0)を図13に示す。図13に示されるように、(i、j)に対する誤り生成回路50(m)は、
Figure 0004036338
計算回路60と、
Figure 0004036338
計算回路61と、
Figure 0004036338
計算回路62とを備える。
ここで、
Figure 0004036338
は下記数45に示すGF(2)上のRS符号の検査行列であり、符号長72ビットと検査ビット長24ビットとを有する。ただし、γはGF(2)の元であり、下記数46に示すように、生成多項式g(x)=x+x+1で定義される2元の6×6随伴行列(companion matrix)で表現される。
Figure 0004036338
Figure 0004036338
例えば、(0、1)に対する誤り生成回路50(0)では、
Figure 0004036338
は、数45の第0列、第1列に相当し、それぞれ下記数47に示す24×6行列となる。
Figure 0004036338
次に、
Figure 0004036338
から24×12の行列
Figure 0004036338
を構成し、
Figure 0004036338
に24×12の行列B(0,1)を付加することにより、下記数48に示す24×24の正則行列
Figure 0004036338
を構成する。ここで、B(0,1)はA(0,1)が正則行列となるように求めた24×12の行列であり、一例である。
Figure 0004036338
次に、A(0,1)の逆行列
Figure 0004036338
を求めると、下記数49の関係が成り立つ。
Figure 0004036338
は、それぞれ下記数50、数51、数52に示す行列となる。
Figure 0004036338
Figure 0004036338
Figure 0004036338
Figure 0004036338
Figure 0004036338
計算回路60では、
Figure 0004036338
の各列が入力する情報に対応し、例えば、
Figure 0004036338
の第0行が入力情報のS’に対応している。そこで、
Figure 0004036338
の各ビットを生成するには、
Figure 0004036338
の各行方向に、“1”を有するビットに対応するシンドロームS’の情報をGF(2)上で加算(mod2の計算)すればよい。
要するに、
Figure 0004036338
計算回路60は、まず、前記
Figure 0004036338
の対応する各行のビット“1”を有するシンドローム情報(S’)、(p=0、1、・・・、23)をそれぞれ6個の多入力パリティチェック回路63(u)、(u=0、1、・・・、5)に入力する。次に、これらのシンドローム情報についてmod2の計算を行い、その結果としてE’0、0、E’0、1を出力する。
具体的に、例えば、E’0、0の0ビット目を生成するには、24ビットのシンドロームS’=S’、S’、・・・、S’23のうち、上記数50に示す
Figure 0004036338
の第0行目において“1”が存在する箇所に相当する5ビットs’、s’、s’、s’21、s’23の値について、2を法とする和(mod2)をとればよい。図13の多入力パリティチェック回路63(0)は、この5ビットs’、s’、s’、s’21、s’23のシンドロームが入力される。また、多入力パリティチェック回路63(0)は、52(0)であるE’0、0の0ビット目を出力する。なお、E’0、0の他のビットについても同様である。
また、図13に示されるように、
Figure 0004036338
計算回路61は、6個の多入力パリティチェック回路64(w)、(w=0、1、・・・、5)で構成され、そして、
Figure 0004036338
計算回路62は、12個の多入力パリティチェック回路65(z)、(z=0、1、・・・、11)で構成される。これらの計算回路は、
Figure 0004036338
計算回路60と同様の方法で構成することができる。
ここで、(0、1)に対する誤り生成回路50(0)の処理をより詳しく説明すると、図13に示すように、24ビットのシンドロームS’を多入力パリティチェック回路63(u)、(u=0、1、・・・、5)に入力することにより、E’0、0を生成する。また、24ビットのシンドロームS’を多入力パリティチェック回路64(w)、(w=0、1、・・・、5)に入力することにより、E’0、1を生成する。
また、24ビットのシンドロームS’を多入力パリティチェック回路65(z)、(z=0、1、・・・、11)に入力する。多入力パリティチェック回路65(z)、(z=0、1、・・・、11)から出力される12ビットの信号を12入力NORゲート回路65に入力し、(0、1)に対する訂正可能信号53(0)を出力する。これらの回路は、
Figure 0004036338
となるバイトの組(i、j)が誤りのバイトの組であるため、
Figure 0004036338
であることを検出し、バイトの組(i、j)で訂正可能であることを意味する。
また、(0、1)に対する訂正可能信号53(0)と多入力パリティチェック回路63、多入力パリティチェック回路64からの出力信号を2入力ANDゲート回路67に入力し、E’0、0及びE’0、1を出力する。これらの回路は、誤りが生じているバイトの組である場合に、誤りを出力し、そうでない場合に、0のパターンを出力するようにしている。
以上より、(0、1)に対する誤り生成回路50(0)は、誤りE’0、0、E’0、152(0)、及び(0、1)に対する訂正可能信号53(0)を最終的に出力する。ここでは、(0、1)に対する誤り生成回路50(0)を例にして説明したが、他のバイト(i、j)に対しても同様である。
次に、GF(2)上の誤り算出回路51の構成例を具体的に示す。GF(2)上の誤り算出回路51を図14に示す。
図14に示されるように、GF(2)上の誤り算出回路51は、i番目のバイトに対応するすべての誤りE’m、iをビットごとOR演算回路68に入力し、GF(2)上のビット誤りポインタ(e’)40を最終的に出力する。これらの回路は、i番目に対応するバイトの組(i、j)からの誤りE’m、iを統合し、i番目の誤りe’を出力するようにしている。
具体的に、例えば、GF(2)上のビット誤りポインタ(e’)40のe’を出力するには、(0、1)に対する誤り生成回路50(0)、(1、2)に対する誤り生成回路50(11)、・・・、及び(1、11)に対する誤り生成回路50(20)から出力されるE’0、1、E’11、1、・・・、E’20、1の0ビット目をビットごとのOR演算回路68に入力することにより得られる。ビットごとのOR演算回路68では、6ビットを有するE’0、1、E’11、1、・・・、E’20、1の0ビット目をそれぞれ11入力OR回路69に入力することにより、E’0、1、E’11、1、・・・、E’19、1の0ビット目を統合し、e’を出力している。
以上では、GF(2)上のビット誤りポインタ(e’)40のe’を例にして説明したが、他のビット値e’、・・・、e’65についても、まったく同様である。

<e>GF(2)上の誤り生成回路9の構成
次に、GF(2)上の誤り生成回路9について説明する。GF(2)上の誤り生成回路9の全体構成を図15に示す。
図15に示すように、GF(2)上の誤り生成回路9は、tビット誤り訂正復号回路70と、12入力ソート回路73と、iバイトにおける誤訂正判定回路74とを備えており、GF(2)上のビット誤りポインタ(e’)40と、バイトごとの誤りの和(e)38とを入力とし、GF(2)上のビット誤りポインタ(e)42と、訂正不可能誤り検出信号(DS(1))43とを出力する回路である。
ここで、tビット誤り訂正復号回路(本例では、2ビット誤り訂正復号回路)70では、GF(2)上のビット誤りポインタ(e’)40の1バイトを入力とし、復号結果ビット誤りポインタ
Figure 0004036338
の1バイトと、訂正能力をこえた誤りを検出する信号であるiバイトにおける検出信号72とを出力する。
そして、12入力ソート回路73は、tビット誤り訂正復号回路70から出力されるiバイトにおける検出信号72を入力とし、入力される12ビットの情報中の重み(1の数)を数え、その重みの数だけ出力の上位ビットから1を連続して表記する回路である。例えば、12ビットの入力情報中に1が6個存在する場合、この回路の出力12ビットのうち上位6ビットはすべて1を、残りの6ビットはすべて0を出力する回路である。
最後に、iバイトにおける誤訂正判定回路74では、すべてのバイトのtビット誤り訂正復号回路70から出力される復号結果ビット誤りポインタ
Figure 0004036338
と、iバイトにおける検出信号72と、バイトごとの誤りの和(e)38とを入力とし、GF(2)上のビット誤りポインタ(e)42の1バイトを出力する。
ここで、GF(2)上の誤り生成回路9の処理をより詳しく説明すると、図15に示すように、GF(2)上のビット誤りポインタ(e’)40を6ビットずつに分け、2ビット誤り訂正復号回路70にそれぞれ入力する。
そして、2ビット誤り訂正復号回路70から出力されたiバイトにおける検出信号72は、12入力ソート回路73に入力される。12入力ソート回路73から出力された信号において、2バイト以上の2ビット誤り訂正復号回路70において誤りを検出した場合に、制御能力外の誤りが生じたとして誤りを検出する(一方、1バイトの2ビット誤り訂正復号回路70において誤りを検出した場合に、詳しくは後述するように、iバイトにおける誤訂正判定回路73において誤りの訂正を行う)。よって、12入力ソート回路73から出力された信号において、その上位2ビット目の信号を訂正不可能誤り検出信号(DS(1))43として出力する。
また、すべてのバイトの2ビット誤り訂正復号回路70から出力された復号結果ビット誤りポインタ
Figure 0004036338
と、iバイトにおける検出信号72と、バイトごとの誤りの和(e)38とを、それぞれiバイトにおける誤訂正判定回路74に入力する。
そして、すべてのiバイトにおける誤訂正判定回路74では、iバイトにおける検出信号72から出力された信号を集め、90ビットのGF(2)上のビット誤りポインタ42を出力する。
次に、2ビット誤り訂正復号回路70の構成例を具体的に示す。
例として、1バイト目に対する2ビット誤り訂正復号回路70において、1バイト目に対する復号結果ビット誤りポインタ
Figure 0004036338
の上位4ビットを出力する回路を図16に、1バイト目に対する復号結果ビット誤りポインタ
Figure 0004036338
の下位4ビットを出力する回路を図17に、そして、訂正能力をこえた誤りが検出されたときに“1”を出力する1バイトにおける検出信号72を出力する回路(つまり、後述する検出信号出力部)を図18にそれぞれ示す。
1バイト目に対する2ビット誤り訂正復号回路70は、GF(2)上のビット誤りポインタ(e’)40の1バイト目を入力とし、復号結果ビット誤りポインタ
Figure 0004036338
の1バイト目及び1バイトにおける検出信号72を出力する回路である。
上述したような2ビット誤り訂正復号回路70では、H”により復号した結果である誤り
Figure 0004036338
及びGF(2)上の誤りeI’に対し、
Figure 0004036338
は単射の関係となっている。よって、論理合成を行うことにより、組み合わせ回路で実現することができる。
ただし、H”は任意の4列が線形独立な行列であるため、すなわち、2ビット誤り訂正符号の検査行列であるため、[41/8EC]符号において、1バイトに3ビットや4ビットの誤りが生じた場合、H”で復号した結果が誤訂正されるか、または制御能力外誤りとして検出される。1バイトに3ビットや4ビットの誤りが誤訂正された場合に、詳しくは後述するように、誤訂正判定を行うことにより、誤訂正されているかどうかを判別することができる。
具体的に、例えば、図16において、情報1バイト目では、
Figure 0004036338
であり、H”は、上記数24に示す任意の4列が線形独立な行列であるため、すなわち、2ビット誤り訂正符号の検査行列であるため、重みが2以下のH”により復号した結果である誤り
Figure 0004036338
、及びGF(2)上の誤りeI’は一意に定まる。
よって、重みが2以下のH”により復号した結果である誤り
Figure 0004036338
、及びGF(2)上の誤りeI’=(e’e’e’e’e10’e11’)は、下記表1に示す関係を有する。
Figure 0004036338
ここで、GF(2)上の誤りeI’は37パターンあるが、残りの2−37=27パターンに対する
Figure 0004036338
は、訂正能力外誤り(制御能力外誤り)として検出し、
Figure 0004036338
の出力はドントケア*とする。
例えば、上記表1に示されたH”により復号した結果である誤り
Figure 0004036338
とGF(2)上の誤りeI’の対応関係から、情報1バイト目の1ビット目の値
Figure 0004036338
は、eI’=(e’e’e’e’ e10’e11’)=(100000)、(110000)、(101000)、(100100)、(011100)、(100010)、(101111)、(100001)のときに、1となる。
また、上記表1に示されたH”により復号した結果である誤り
Figure 0004036338
とGF(2)上の誤りeI’の対応関係において、残った27パターンのGF(2)上の誤りeI’=(e’e’e’e’e10’e11’)=(100110)、(110110)、(010110)、(011110)、(101110)、(110010)、(011010)、(111010)、(101010)、(100011)、(010011)、(011011)、(111011)、(101011)、(100111)、(110111)、(010111)、(111111)、(100101)、(110101)、(010101)、(011101)、(101101)、(110001)、(011001)、(111001)、(101001)に対する情報1バイト目の1ビット目の値
Figure 0004036338
は、ドントケア*とする。
これらの論理関数を簡単化すると、情報1バイト目の1ビット目の値
Figure 0004036338
は、下記数53に示す論理式で表される。
Figure 0004036338
ただし、
Figure 0004036338

Figure 0004036338
の否定で、
Figure 0004036338

Figure 0004036338
であり、また、
Figure 0004036338
は論理和を、
Figure 0004036338
は論理積を表す。
よって、図16に示されるように、まず、GF(2)上のビット誤りポインタ40e’、e’、e’、e’、e’10、e’11をNOTゲート回路80に入力し、
Figure 0004036338
を生成する。そして、
Figure 0004036338
を3入力ANDゲート回路81に、
Figure 0004036338
を4入力ANDゲート回路82に、
Figure 0004036338
を5入力ANDゲート回路83に、
Figure 0004036338
を4入力ANDゲート回路82に、
Figure 0004036338
を4入力ANDゲート回路82にそれぞれ入力する。それぞれのANDゲート回路から出力された信号を5入力ORゲート回路84に入力することにより、情報1バイト目の1ビット目の値
Figure 0004036338
が得られる。
図16及び図17に示されるように、他のビットの値
Figure 0004036338
も、NOTゲート回路80、3入力ANDゲート回路81、4入力ANDゲート回路82、5入力ANDゲート回路83、5入力ORゲート回路84、6入力ORゲート回路85により、同様にして得られる。
また、tビット誤り訂正復号回路(本例では、2ビット誤り訂正復号回路)70の検出信号出力部も同様にして、構成することができる。検出信号出力部は、GF(2)上の誤りeI’から写像されることのないH”により復号した結果である誤り
Figure 0004036338
を訂正不可能な誤りとして検出する。例えば、1バイト目に対する2ビット誤り訂正復号回路70の検出信号出力部を図18に示す。
具体的に、例えば、情報1バイト目において、上記表1に示されたH”により復号した結果である誤り
Figure 0004036338
とGF(2)上の誤りeI’の対応関係において、残った27パターンのGF(2)上の誤りeI’=(e’e’e’e’e10’e11’)=(100110)、(110110)、(010110)、(011110)、(101110)、(110010)、(011010)、(111010)、(101010)、(100011)、(010011)、(011011)、(111011)、(101011)、(100111)、(110111)、(010111)、(111111)、(100101)、(110101)、(010101)、(011101)、(101101)、(110001)、(011001)、(111001)、(101001)に対する検出信号の値を1にし、誤りを検出する。
よって、これらの論理関数を簡単化すると、検出信号の値は、下記数54に示す論理式で表される。
Figure 0004036338
よって、図18に示されるように、まず、GF(2)上のビット誤りポインタ40e’、e’、e’、e’、e’10、e’11をNOTゲート回路80に入力し、
Figure 0004036338
を生成する。
そして、
Figure 0004036338
を合計14個の4入力ANDゲート82及び5入力ANDゲート83にそれぞれ入力する。
最後に、それぞれのANDゲート回路から出力された信号を、14入力OR回路86に入力することにより、1バイトにおける検出信号72を出力する。
なお、以上では、1バイト目におけるtビット誤り訂正復号回路70を例として詳細に説明したが、他のバイトについてもまったく同様である。
次に、12入力ソート回路73の構成例を図19に示す。
図19に示すように、12ビットの入力情報がソートされ、2入力ORゲート回路75、及び2入力ANDゲート回路76が対になって構成された2入力2出力回路をセルとして、12入力に対してこのセルを多段に接続して構成している。このソート回路は、一般に、nビット入力中に1の数がx個存在すれば、nビットの上位x個に1を出力し、残りの出力はすべて0を出力する回路である。なお、この回路の一般的な構成は、非特許文献13に述べられている。
図19に示すように、12入力12出力の回路である12入力ソート回路73では、このセルを39個(すなわち、78ゲート)使用し、最大9段のセル(9ゲート段)で実現することが可能である。例えば、12ビットの入力情報として(001011001011)のような重み6の情報のとき、12入力ソート回路73の出力は、(111111000000)となる。
次に、iバイトにおける誤訂正判定回路74の構成例を図20に示す。
例えば、1バイト目に対して、具体的に構成した1バイトにおける誤訂正判定回路74の構成例を図20に示す。図20に示すように、1バイトにおける誤訂正判定回路74は、ビットごと排他的論理和回路90と、16入力ソート回路91と、ビットごと選択回路96とを備えている。
ここで、1バイトにおける誤訂正判定回路74の処理をより詳しく説明すると、図20に示すように、1バイト目以外の復号結果ビット誤りポインタ
Figure 0004036338
と、バイトごとの誤りの和(e)38とをビットごと排他的論理和回路90に入力する。また、1バイト目の復号結果ビット誤りポインタ
Figure 0004036338
と、バイトごとの誤りの和(e)38とをビットごと排他的論理和回路90に入力する。
次に、バイトごとの誤りの和(e)38と、ビットごと排他的論理和回路90の出力とを16入力ソート回路91に入力する。上記数39に示した関係より、下記数55に示す関係が成り立つ。
Figure 0004036338
よって、16入力ソート回路91の出力において、1の数が4個以下である場合、1を出力するようにする。すなわち、16入力ソート回路91の出力において、上位4ビットを4入力ORゲート回路92に、下位12ビットを12入力NORゲート回路93にそれぞれ入力する。また、1バイトにおける検出信号をNOTゲート回路94に入力する。そして、4入力ORゲート回路92からの出力と、12入力NORゲート回路93からの出力と、NOTゲート回路94からの出力とを3入力ANDゲート回路95に入力する。
最後に、3入力ANDゲート回路95の出力を制御信号として、ビットごと排他的論理和回路90の出力と、1バイト目の復号結果ビット誤りポインタ
Figure 0004036338
とをビットごと選択回路96に入力し、GF(2)上のビット誤りポインタ(e)42の1バイト目(e…e15)を出力する。その結果、正しく訂正されている場合に、
Figure 0004036338
を出力し、誤訂正されている、または制御能力外誤りとして検出された場合に、その他のバイトにおいて正しく訂正された誤りパターンとeの排他的論理和をとることにより、誤訂正されているバイトにおける誤りパターンを復元することができる。
次に、ビットごと排他的論理和回路90の構成例を図21に示す。図21に示すように、それぞれ8ビットを有する2つの信号の各ビットどうしの排他的論理和をとる回路である。
ここで、ビットごと排他的論理和回路90の処理をより詳しく説明すると、図21に示すように、8ビットの信号の中で0ビット目どうしを多入力排他的論理和回路97に入力する。多入力パリティチェック回路97から出力された各信号をまとめて、最終的に8ビットの信号として出力する。
次に、16入力ソート回路91の構成例を図23に示す。図23に示されるように、16入力ソート回路91では、16ビットの入力情報がソートされ、2入力ORゲート回路75、及び2入力ANDゲート回路76が対になって構成された2入力2出力回路をセルとして、16入力に対してこのセルを多段に接続して構成している。このソート回路は、一般に、nビット入力中に1の数がx個存在すれば、nビットの上位x個に1を出力し、残りの出力はすべて0を出力する回路である。
また、図23に示すように、16入力16出力の回路である16入力ソート回路91では、このセルを63個(すなわち、126ゲート)使用し、最大10段のセル(10ゲート段)で実現することが可能である。
最後に、ビットごと選択回路96の構成例を具体的に示す。
図22に示すように、ビットごと選択回路96は、それぞれ8ビットを有する2つの信号の各ビットどうしを制御信号(つまり、3入力ANDゲート回路95の出力である)に従って選択する回路である。
ここで、ビットごと選択回路96の処理をより詳しく説明すると、図22に示すように、8ビットの信号の中で0ビット目どうしを2入力マルチプレクサ98に入力する。2入力マルチプレクサ98では、制御信号が0の場合に、上の信号を出力し、制御信号が1の場合に、下の信号を出力する。0ビット目以外の信号に関しても同様に、制御信号により選択を行う。2入力マルチプレクサ98から出力された各信号をまとめて、最終的に8ビットの信号として出力する。
以上では、b=8、t=1、μ=μ=4、p=p=2といった符号パラメータを有する[41/8EC]符号を例として説明したが、前記以外の符号パラメータを有する符号についても、同様に上述した回路を構成することができることは明らかである。

(f)反転回路10の構成
最後に、反転回路10の構成について説明する。
例えば、1バイト目に対して、具体的に構成した反転回路10を図24に示す。図24に示す反転回路10は、誤りの箇所を具体的に指摘されたビット位置に対して、受信したビット値の反転を行って受信語(V’)32を訂正する回路である。図24において、v’〜v15’は、受信語(V’)32の1バイト目に相当する8ビットであり、v 〜v15 は訂正後の出力ビットである。
反転回路10は、複数の排他的論理和回路を有している。図24に示された1バイト目における反転回路10において、合計8個の排他的論理和回路99は、8入力ビットv’〜v15’に対して、対応するビット誤りポインタe(i=8、9、・・・、15)との排他的論理和をとり、例えば、ビット誤りポインタが“1”のとき、入力ビット値が反転されて訂正されることになる。
なお、反転回路10は、各バイトにそれぞれ対応するようにするため、N=90ビットの受信語(V’)に対しては、90個の排他的論理和回路が必要となる。反転回路10は、最後に、N=90ビットの受信語(V’)から、下記数56に示す64ビットの訂正語Dを得る。
Figure 0004036338
以上では、図3に示すb=8、t=1、μ=μ=4、p=p=2といった符号パラメータを有する[41/8EC]符号を例にとり、誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号における符号化回路及び復号回路の具体的な構成を詳細に説明した。ここで、GF(2)上の並列復号回路8において、例えば、前記バーレカンプ・マッシィ法を用いた逐次復号を行う場合に、誤り位置多項式および誤り評価多項式から、誤り位置および誤りを求める既存の手法を用いればよい。この手法の実現手段は、ハードウェアでもソフトウェアでもよい。
また、前記以外の符号パラメータを有する、誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号に対しては、次のような考えで構成することができる。
まず、符号化回路は、2元で表現したパリティ検査行列により、Rビットの検査情報を生成すればよく、全く同様に構成することができる。
また、復号は、前述したように、p訂正p検出RS符号の復号により得られたGF(2)上の誤りe’において、各バイトに対しH”の復号、及び誤訂正判定を行うことにより、GF(2)上の誤りを求めることができ、同様に復号回路を構成することができる。
さらに、上記数5に示されたパリティ検査行列で表現される、誤りバイト数を制限した伸長バイト内複数スポッティバイト誤り制御符号に対しては、次のような考えで構成することができる。
まず、符号化回路は、2元で表現したパリティ検査行列により、Rビットの検査情報を生成すればよく、全く同様に構成することができる。
また、復号は、前記並列復号法やバーレカンプ・マッシィ法を用いた逐次復号法により、GF(2r’)上のp訂正p検出RS符号の復号をすることにより、また、GF(2r’)上の誤りをGF(2)上の誤りに前記の例と同様に変換することにより、同様に復号することができる。
よって、復号回路も前記の例における前記GF(2)上の並列復号回路8をGF(2r’)上で並列復号を行う回路に変更することにより、また、前記の例における前記GF(2)上の誤り生成回路9において、rビットをr’ビットに変更することにより、復号回路を同様に構成できることは明らかである。
また、上記数25及び上記数28に示されたパリティ検査行列で表現される、バイト誤り検出機能を有する誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号に対しては、次のような考えで構成することができる。
まず、符号化回路は、2元で表現したパリティ検査行列により、Rビットの検査情報を生成すればよく、全く同様に構成することができる。
また、復号は、前述したように、シンドロームを計算した後に、H”が
Figure 0004036338
またはbのうちいずれか小さい値に等しいか大きい列が線形独立であるため、SI≠0かつSII=SIII=SIV=0の場合、バイト誤りが生じているとして検出を行う。また、前述したp訂正p検出RS符号の復号により得られたGF(2)上の誤りe’において、誤りバイト数が1かつSIのハミング重みがμtより大きい場合、バイト誤りが生じているとして検出を行うことにより、同様に復号することができる。
よって、復号回路も前記の例におけるH”乗算回路にSI以外のシンドロームを新たに入力し、SI≠0かつSI以外のシンドロームが0の場合、検出信号を出力する。また、GF(2)上の誤り生成回路にSIを新たに入力し、GF(2)上の誤り生成回路において、GF(2)上の誤りe’において誤りバイト数が1かどうかを調べ、前記ソート回路を用いてSIのハミング重みがμtより大きいかどうかを調べることにより、復号回路を同様に構成できることは明らかである。
前述したように、本発明では、バイト中にtビットまでの誤りを有するスポッティバイト誤りに対し、p個のバイトに生じるμ個のスポッティバイト誤りを訂正し、かつp個のバイトに生じるμ個のスポッティバイト誤りを検出する能力を有する誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号の一般性のある符号構成を与えるとともに、誤りの訂正・検出が実現できる回路である符号化回路及び復号回路の具体的な構成を示して、検査情報が具体的に生成できること、及び誤りが具体的に訂正・検出できることを示した。
また、本発明はt=1としたとき、限られた数のバイトに生じたランダムビット誤りを制御することができる機能を備えた誤りバイト数を制限したランダムビット誤り訂正・検出符号となることを示した。
また、本発明では、訂正能力を超えた1バイト誤りを検出する機能を有する誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号の一般性のある符号構成を与えるとともに、誤りの訂正・検出が実現できる回路である符号化回路及び復号回路の具体的な構成を示して、検査情報が具体的に生成できること、及び誤りが具体的に訂正・検出できることを示した。
以上の説明では、主としてメモリ装置に注目して本発明の適用を述べたが、本発明は、それに限定されるものではなく、例えば、このようなバイト単位で物理的に独立した回路と、モジュールと、装置とから構成され、この中で限定した数の誤りが生じる可能性の高い一般の情報システム等に適用可能である。また、光通信回路やバス線回路等の通信または伝送のための回路、装置またはシステムにも適用可能である。
また、本発明の目的は、本実施の形態の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置の機能を実現するソフトウェアのプログラムコードを記述した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出して実行することによっても、達成されることは言うまでもない。
この場合、記憶媒体から読み出されたプログラムコード自体が本実施の形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体及び当該プログラムコードは本発明を構成することとなる。プログラムコードを供給するための記憶媒体としては、ROM、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード等を用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、前記本実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS等が実際の処理の一部又は全部を行い、その処理によって本実施の形態の機能が実現される場合も含まれることは言うまでもない。
本発明の一実施形態である、誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置の概略構成を示すブロック図である。 図1に示された本発明の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置における全体動作の処理手順を示すフローチャートである。 本発明によるパリティ検査行列の一例であって、符号長N=90ビット、情報長K=64ビット、検査長R=26ビット、バイト長b=8ビット、バイト内訂正ビット数t=1ビット、訂正数μ=検出数μ=4、誤りバイト制限数p=p=2の符号パラメータを有する短縮(90、64)[41/8EC]符号のパリティ検査行列を示す図である。 図3に示すパリティ検査行列を基本行変形して得られる符号化用(90、64)[41/8EC]組織符号のパリティ検査行列を示す図である。 図4に示す符号化用(90、64)[41/8EC]組織符号をもとに構成した符号化回路(上位14ビット)の具体例であり、K=64ビットの入力情報データからパリティ検査行列により26ビットの検査情報を生成する回路の概念図である。 図4に示す符号化用(90、64)[41/8EC]組織符号をもとに構成した符号化回路(下位12ビット)の具体例であり、K=64ビットの入力情報データからパリティ検査行列により26ビットの検査情報を生成する回路の概念図である。 本発明で開示された機能を有する符号に対する復号回路の概略構成を示すブロック図である。 図3に示す(90、64)[41/8EC]符号をもとに具体的に構成したシンドローム生成回路(上位14ビット)を説明するための概念図である。 図3に示す(90、64)[41/8EC]符号をもとに具体的に構成したシンドローム生成回路(下位12ビット)を説明するための概念図である。 図3に示す(90、64)[41/8EC]符号をもとに具体的に構成したH’復号回路の構成図である。 図3に示す(90、64)[41/8EC]符号をもとに具体的に構成したH”乗算回路の構成図である。 図3に示す(90、64)[41/8EC]符号に対するGF(2)上の並列復号回路の概略構成を示すブロック図である。 図12に示すGF(2)上の並列復号回路における(i、j)に対する誤り生成回路の一例の回路構成図である。 図12に示すGF(2)上の並列復号回路におけるGF(2)上の誤り算出回路の構成図である。 図3に示す(90、64)[41/8EC]符号に対するGF(2)上の誤り生成回路の概略構成を示すブロック図である。 図15に示すGF(2)上の誤り生成回路におけるtビット誤り訂正復号回路の例であり、1バイト目に対してGF(2)上のビット誤りポインタから復号結果ビット誤りポインタの上位4ビットを生成する回路の構成図である。 図15に示すGF(2)上の誤り生成回路におけるtビット誤り訂正復号回路の例であり、1バイト目に対してGF(2)上のビット誤りポインタを復号結果ビット誤りポインタの下位4ビットを生成する回路の構成図である。 図15に示すGF(2)上の誤り生成回路におけるtビット誤り訂正復号回路の例であり、1バイト目に対して訂正能力をこえた誤りを検出する回路の構成図である。 図15に示すGF(2)上の誤り生成回路における12入力ソート回路の構成図である。 図15に示すGF(2)上の誤り生成回路におけるiバイトにおける誤訂正判定回路の一例の回路構成図である。 図20に示すiバイトにおける誤訂正判定回路におけるビットごと排他的論理和回路の構成図である。 図20に示すiバイトにおける誤訂正判定回路におけるビットごと選択回路の構成図である。 図20に示すiバイトにおける誤訂正判定回路における16入力ソート回路の構成図である。 図3に示す(90、64)[41/8EC]符号に対する反転回路の一例であり、1バイトに対する反転回路の構成図である。
符号の説明
1 シンドローム生成回路
2 符号化回路
3 回路(メモリ等の通信路)
4 復号回路
5 誤り訂正回路
6 H’復号回路
7 H”乗算回路
8 GF(2)上の並列復号回路
9 GF(2)上の誤り生成回路
10 反転回路
20 多入力パリティチェック回路
21 多入力パリティチェック回路
22 2入力排他的論理和回路
23 3入力パリティチェック回路
30 入力情報データ
31 送信語
32 受信語
33 シンドローム(S)
34 出力情報データ
35 訂正不可能誤り検出信号(UCE)
36 シンドローム(S)33の上位qビット(SI
37 シンドローム(S)33の下位3rビット(SIIIIIIV
38 バイトごとの誤りの和(e
39 シンドローム(S)33の上位qビットSI36とH”の転置(H”)の積(S’I
40 GF(2)上のビット誤りポインタ
41 訂正不可能誤り検出信号(DS(0))
42 GF(2)上のビット誤りポインタ
43 訂正不可能誤り検出信号(DS(1))
44 2入力ANDゲート回路
50 (i、j)に対する誤り生成回路
51 GF(2)上の誤り算出回路
52 (i、j)に対する誤り
53 (i、j)に対する訂正可能信号
54 24入力ORゲート回路
55 66入力NORゲート回路
56 2入力ANDゲート回路
Figure 0004036338
Figure 0004036338
Figure 0004036338
63 多入力パリティチェック回路
64 多入力パリティチェック回路
65 多入力パリティチェック回路
66 12入力NORゲート回路
67 2入力ANDゲート回路
68 ビットごとOR演算回路
69 11入力ORゲート回路
70 tビット誤り訂正復号回路
Figure 0004036338
72 iバイトにおける検出信号
73 12入力ソート回路
74 iバイトにおける誤訂正判定回路
75 2入力ORゲート回路
76 2入力ANDゲート回路
80 NOTゲート回路
81 3入力ANDゲート回路
82 4入力ANDゲート回路
83 5入力ANDゲート回路
84 5入力ORゲート回路
85 6入力ORゲート回路
86 15入力ORゲート回路
90 ビットごと排他的論理和回路
91 16入力ソート回路
92 4入力ORゲート回路
93 12入力NORゲート回路
94 NOTゲート回路
95 3入力ANDゲート回路
96 ビットごと選択回路
97 多入力パリティチェック回路
98 2入力マルチプレクサ回路
99 2入力排他的論理和回路
100 誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置

Claims (54)

  1. 入力情報データを基に送信語を生成する符号化手段と、情報伝送路中で誤りが発生した前記送信語を受信語として入力して前記誤りを訂正または検出する復号手段とを備える誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置であって、
    前記符号化手段は、スポッティバイト誤り制御符号を表現するパリティ検査行列と、前記入力情報データとを基に生成した検査情報を前記入力情報データに付加することにより、前記送信語を生成し、
    前記復号手段は、前記パリティ検査行列を基に前記受信語のシンドロームを生成するシンドローム生成手段と、前記シンドローム生成手段により生成されたシンドロームを基に前記受信語の誤りを訂正または検出する誤り訂正手段とを備えることを特徴とする誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
  2. 前記入力情報データが、b(bは2以上の整数)ビットを1バイトとし、複数のバイトから構成される場合に、ここで、バイト内のtビット(1≦t≦b)までの誤りをスポッティバイト誤りと称し、1バイト内に複数の前記スポッティバイト誤りが生じる誤りをバイト内複数スポッティバイト誤りと称することを前提とし、
    前記パリティ検査行列で表現される前記スポッティバイト誤り制御符号は、p個のバイトに生じるμ個のスポッティバイト誤りを訂正し、かつp個のバイトに生じるμ個のスポッティバイト誤りを検出する請求項1に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
  3. 前記t値、b値、p値、p値、μ値、μ値を任意に設定し、ただし、p≦p及びμ≦μが成立する請求項2に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
  4. 前記情報伝送路は、情報通信システムである請求項1乃至請求項3のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
  5. 前記情報伝送路は、メモリシステムである請求項1乃至請求項3のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
  6. 前記情報伝送路は、バス線回路である請求項1乃至請求項3のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
  7. 前記パリティ検査行列は、p個のバイトに生じるμ個のスポッティバイト誤りを訂正し、かつp個のバイトに生じるμ個のスポッティバイト誤りを検出する機能を有する、誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号
    Figure 0004036338
    に用いる、R行N列を有する次の行列Hであり、
    Figure 0004036338
    ただし、R=q+(p+p−1)r、N=bn、0≦i≦n−1、n=2−1であり、行列H’は、H’=[h’、h’、・・・、hb−1’]に示すq次の列ベクトルh’(0≦j≦b−1)から構成されるq行b列(q≦b)の2元行列であり、(μ+μ)tまたはbのうちいずれか小さい値に等しいか大きい列が線形独立であり、(μ+μ)t≧bのとき、前記行列H’は単位行列を含む正則行列であり、(μ+μ)t<bのとき、前記行列H’は最小ハミング距離(μ+μ)t+1を有する符号の検査行列、すなわち、(μ+μ)tビット誤り検出機能を有する(b、b−q)符号のパリティ検査行列に等しくなり、また、行列H”は、H”=[h”、h”、・・・、hb−1”]に示すr次の列ベクトルh”(0≦j≦b−1)から構成されるr行b列(r≦b)の2元行列であり、
    Figure 0004036338
    またはbのうちいずれか小さい値に等しいか大きい列が線形独立であり、ここで、
    Figure 0004036338
    はxを超えない最大の整数を表し、また、
    Figure 0004036338
    のとき、前記行列H”は単位行列を含む正則行列であり、
    Figure 0004036338
    のとき、前記行列H”は最小ハミング距離
    Figure 0004036338
    を有する符号の検査行列、すなわち、
    Figure 0004036338
    ビット誤り検出機能を有する(b、b−r)符号のパリティ検査行列に等しくなり、γはGF(2)のr次の拡大体GF(2)の原始元であって、γH”=[γ”、γ”、…、γb−1”]が成立するように構成される請求項2乃至請求項6のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
  8. 前記パリティ検査行列は、p個のバイトに生じるμ個のスポッティバイト誤りを訂正し、かつp個のバイトに生じるμ個のスポッティバイト誤りを検出する機能を有する、誤りバイト数を制限した伸長バイト内複数スポッティバイト誤り制御符号
    Figure 0004036338
    に用いる、R行N列を有する次の行列Hであり、
    Figure 0004036338
    ただし、r’≧rであり、R=q+(p+p−1)r’、N=b(n+1)+r’、0≦i≦n−1、n=2r’−1であり、
    Figure 0004036338
    はr’次の単位行列で、
    Figure 0004036338
    は零行列であり、行列H’は、H’=[h’、h’、・・・、hb−1’]に示すq次の列ベクトルh’(0≦j≦b−1)から構成されるq行b列(q≦b)の2元行列であり、(μ+μ)tまたはbのうちいずれか小さい値に等しいか大きい列が線形独立であり、(μ+μ)t≧bのとき、前記行列H’は単位行列を含む正則行列であり、(μ+μ)t<bのとき、前記行列H’は最小ハミング距離(μ+μ)t+1を有する符号の検査行列、すなわち、(μ+μ)tビット誤り検出機能を有する(b、b−q)符号のパリティ検査行列に等しくなり、また、行列H”は、H”=[h”、h”、・・・、hb−1”]に示すr次の列ベクトルh”(0≦j≦b−1)から構成されるr行b列(r≦b)の2元行列であり、
    Figure 0004036338
    またはbのうちいずれか小さい値に等しいか大きい列が線形独立であり、ここで、
    Figure 0004036338
    はxを超えない最大の整数を表し、また、
    Figure 0004036338
    のとき、前記行列H”は単位行列を含む正則行列であり、
    Figure 0004036338
    のとき、前記行列H”は最小ハミング距離
    Figure 0004036338
    を有する符号の検査行列、すなわち、
    Figure 0004036338
    ビット誤り検出機能を有する(b、b−r)符号のパリティ検査行列に等しくなり、γはGF(2)のr’次の拡大体GF(2r’)の原始元であって、γH”=[γΦ(h
    )、γΦ(h” )、・・・、γΦ(hb−1
    )]が成立するように構成され、ここで、Φは加法のもとでGF(2)からGF(2r’)への単射準同型写像(injective homomorphism)であり、すなわち、Φ:GF(2)→GF(2r’)である請求項2乃至請求項6のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
  9. 前記パリティ検査行列は、p個のバイトに生じるμ個のスポッティバイト誤りを訂正するとともに、p個のバイトに生じるμ個のスポッティバイト誤りを検出し、かつ訂正能力を超えた1バイト誤りを検出する機能を有する、誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号
    Figure 0004036338
    に用いる、R行N列を有する次の行列Hであり、
    Figure 0004036338
    ただし、R=b+(p+p−1)r、N=bn、0≦i≦n−1、n=2−1、Iはb次の単位行列であり、行列H”は、H”=[h”、h”、・・・、hb−1”]に示すr次の列ベクトルh”(0≦j≦b−1)から構成されるr行b列(r≦b)の2元行列であり、
    Figure 0004036338
    またはbのうちいずれか小さい値に等しいか大きい列が線形独立であり、ここで、
    Figure 0004036338
    はxを超えない最大の整数を表し、ここで、
    Figure 0004036338
    のとき、前記行列H”は単位行列を含む正則行列であり、
    Figure 0004036338
    のとき、前記行列H”は最小ハミング距離
    Figure 0004036338
    を有する符号の検査行列、すなわち、
    Figure 0004036338
    ビット誤り検出機能を有する(b、b−r)符号のパリティ検査行列に等しくなり、γはGF(2)のr次の拡大体GF(2)の原始元であって、γH”=[γ”、γ”、…、γb−1”]が成立するように構成される請求項2乃至請求項6のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
  10. 前記パリティ検査行列は、p個のバイトに生じるμ個のスポッティバイト誤りを訂正するとともに、p個のバイトに生じるμ個のスポッティバイト誤りを検出し、かつ訂正能力を超えた1バイト誤りを検出する機能を有する、誤りバイト数を制限した伸長バイト内複数スポッティバイト誤り制御符号
    Figure 0004036338
    に用いる、R行N列を有する次の行列Hであり、
    Figure 0004036338
    ただし、r’≧rであり、R=b+(p+p−1)r’、N=b(n+1)+r’、0≦i≦n−1、n=2r’−1、Iはb次の単位行列であり、
    Figure 0004036338
    はr’次の単位行列で、
    Figure 0004036338
    は零行列であり、行列H”は、H”=[h”、h”、・・・、hb−1”]に示すr次の列ベクトルh”(0≦j≦b−1)から構成されるr行b列(r≦b)の2元行列であり、
    tまたはbのうちいずれか小さい値に等しいか大きい列が線形独立であり、ここで、
    Figure 0004036338
    はxを超えない最大の整数を表し、ここで、
    Figure 0004036338
    のとき、前記行列H”は単位行列を含む正則行列であり、
    Figure 0004036338
    のとき、前記行列H”は最小ハミング距離
    Figure 0004036338
    を有する符号の検査行列、すなわち、
    Figure 0004036338
    ビット誤り検出機能を有する(b、b−r)符号のパリティ検査行列に等しくなり、γはGF(2)のr’次の拡大体GF(2r’)の原始元であって、γH”=[γΦ(h
    )、γΦ(h” )、・・・、γΦ(hb−1
    )]が成立するように構成され、ここで、Φは加法のもとでGF(2)からGF(2r’)への単射準同型写像(injective homomorphism)であり、すなわち、Φ:GF(2)→GF(2r’)である請求項2乃至請求項6のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
  11. 前記誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号
    Figure 0004036338
    は、前記t値を1に設定した場合(t=1)に、p個のバイトに生じるμ個のランダムビット誤りを訂正し、かつp個のバイトに生じるμ個のランダムビット誤りを検出する機能を有する、誤りバイト数を制限したランダムビット誤り制御符号となる請求項7に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
  12. 前記誤りバイト数を制限した伸長バイト内複数スポッティバイト誤り制御符号
    Figure 0004036338
    は、前記t値を1に設定した場合(t=1)に、p個のバイトに生じるμ個のランダムビット誤りを訂正し、かつp個のバイトに生じるμ個のランダムビット誤りを検出する機能を有する、誤りバイト数を制限したランダムビット誤り制御符号となる請求項8に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
  13. 前記誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号
    Figure 0004036338
    は、前記t値を1に設定した場合(t=1)に、p個のバイトに生じるμ個のランダムビット誤りを訂正するとともに、p個のバイトに生じるμ個のランダムビット誤りを検出し、かつ訂正能力を超えた1バイト誤りを検出する機能を有する、誤りバイト数を制限したランダムビット誤り制御符号となる請求項9に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
  14. 前記誤りバイト数を制限した伸長バイト内複数スポッティバイト誤り制御符号
    Figure 0004036338
    は、前記t値を1に設定した場合(t=1)に、p個のバイトに生じるμ個のランダムビット誤りを訂正するとともに、p個のバイトに生じるμ個のランダムビット誤りを検出し、かつ訂正能力を超えた1バイト誤りを検出する機能を有する、誤りバイト数を制限したランダムビット誤り制御符号となる請求項10に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
  15. 前記パリティ検査行列(H)は、
    Figure 0004036338
    とした場合に、前記行列H’及び前記行列H”は任意のb列が線形独立な行列となり、pバイト誤りを訂正するとともにpバイト誤りを検出する機能を有するRS符号のパリティ検査行列と一致する請求項7に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
  16. 前記パリティ検査行列(H)は、
    Figure 0004036338
    とした場合に、前記行列H’及び前記行列H”は任意のb列が線形独立な行列となり、pバイト誤りを訂正するとともにpバイト誤りを検出する機能を有する2次伸長RS符号のパリティ検査行列と一致する請求項8に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
  17. 前記パリティ検査行列(H)は、
    Figure 0004036338
    とした場合に、前記行列H”は任意のb列が線形独立な行列となり、pバイト誤りを訂正するとともにpバイト誤りを検出する機能を有するRS符号のパリティ検査行列と一致する請求項9に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
  18. 前記パリティ検査行列(H)は、
    Figure 0004036338
    とした場合に、前記行列H”は任意のb列が線形独立な行列となり、pバイト誤りを訂正するとともにpバイト誤りを検出する機能を有する2次伸長RS符号のパリティ検査行列と一致する請求項10に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
  19. 前記誤り訂正手段は、前記シンドロームを基に前記受信語の何れのビットが誤っているかを検出するビット誤りポインタを生成し、生成された前記ビット誤りポインタを基に、誤りビットに該当する前記受信語のビット値を反転させることにより、前記受信語の誤りを訂正し、また、前記受信語のビット誤りを訂正できないことを検出した場合に、訂正不可能誤り検出信号を出力する請求項1乃至請求項18のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
  20. 前記誤り訂正手段は、H’復号手段と、H”乗算手段と、GF(2)上の並列復号手段と、GF(2)上の誤り生成手段と、反転手段とから構成される請求項7乃至請求項請求項18のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
  21. 前記H’復号手段は、前記シンドローム生成手段で生成された前記シンドロームの上位qビットを基にして、バイトごとの誤りの和(e)を生成し、
    前記H”乗算手段は、前記H’復号手段で生成された前記バイトごとの誤りの和(e)を基にして、前記バイトごとの誤りの和(e)とH”の転置行列の積を生成し、
    前記GF(2)上の並列復号手段は、前記H”乗算手段で生成された前記バイトごとの誤りの和(e)とH”の転置行列の積、及び前記シンドローム生成手段で生成された前記シンドロームの上位qビットを除く残りの下位ビットを基にして、GF(2)上のビット誤りポインタ、及びGF(2)上の並列復号において誤り訂正が不可能とみなされたときに出力される第1の訂正不可能誤り検出信号を生成し、
    前記GF(2)上の誤り生成手段は、前記H’復号手段で生成された前記バイトごとの誤りの和(e)、及び、前記GF(2)上の並列復号手段で生成された前記GF(2)上のビット誤りポインタを基にして、GF(2)上のビット誤りポインタ、及び誤り訂正が不可能とみなされたときに出力される第2の訂正不可能誤り検出信号を生成し、
    前記反転手段は、前記GF(2)上の誤り生成手段で生成された前記GF(2)上のビット誤りポインタを基にして、前記GF(2)上のビット誤りポインタに対応した前記受信語のビット値を反転させることにより、前記受信語の誤りを訂正する請求項20に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
  22. 前記誤り訂正手段では、前記GF(2)上の並列復号手段で生成された前記第1の訂正不可能誤り検出信号と、前記GF(2)上の誤り生成手段で生成された前記第2の訂正不可能誤り検出信号の論理和をとることにより、訂正能力を超えた誤りを検出したことを示す第3の訂正不可能誤り検出信号を出力する請求項21に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
  23. 前記GF(2)上の誤り生成手段は、
    前記GF(2)上のビット誤りポインタ(e’)の1バイトから、復号結果ビット誤りポインタ
    Figure 0004036338
    の1バイト及びiバイトにおける検出信号を出力するtビット誤り訂正復号手段と、
    入力された複数の前記iバイトにおける検出信号の重みの数だけを出力の上位ビットから1を連続して出力する多入力ソート手段と、
    誤訂正判定を行い、前記GF(2)上のビット誤りポインタ(e)の1バイトを出力するiバイトにおける誤訂正判定手段と、
    を備えた請求項21又は請求項22に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
  24. 前記GF(2)上の誤り生成手段は、tビット誤り訂正復号手段と、多入力ソート手段と、iバイトにおける誤訂正判定手段とを備えており、
    前記tビット誤り訂正復号手段は、前記GF(2)上のビット誤りポインタ(e’)の所定の1バイトを入力とし、復号結果ビット誤りポインタ
    Figure 0004036338
    の前記所定の1バイトに対応する1バイトを前記iバイトにおける誤訂正判定手段に出力するとともに、訂正能力をこえた誤りを検出する信号であるiバイトにおける検出信号を前記多入力ソート手段と前記iバイトにおける誤訂正判定手段に出力する手段であり、
    前記多入力ソート手段は、入力される複数の前記iバイトにおける検出信号の重み(1の数)を数え、その重みの数だけを出力の上位ビットから1を連続して出力する手段であり、
    前記iバイトにおける誤訂正判定手段は、すべてのバイトの前記tビット誤り訂正復号手段から出力される前記復号結果ビット誤りポインタ
    Figure 0004036338
    、前記iバイトにおける検出信号、及び前記バイトごとの誤りの和(e)を入力とし、誤訂正判定を行い、前記GF(2)上のビット誤りポインタ(e)の1バイトを出力する手段である請求項21又は請求項22に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
  25. 前記GF(2)上の誤り生成手段では、前記多入力ソート手段から出力された信号において、その上位2ビット目の信号を前記第2の訂正不可能誤り検出信号として出力し、また、前記iバイトにおける誤訂正判定手段から出力された信号を集め、符号ビット長のビット数を有する前記GF(2)上のビット誤りポインタを出力する請求項23又は請求項24に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
  26. 前記iバイトにおける誤訂正判定手段では、前記誤訂正判定が次の誤訂正判定数式によって行われ、
    Figure 0004036338
    ただし、
    Figure 0004036338
    で定義され、スポッティバイト誤りの個数を表し、
    Figure 0004036338
    はベクトルeにおけるガロア体GF(2)上のハミング重みであり、
    前記誤訂正数式が成立している場合に、
    Figure 0004036338
    となり誤訂正はされていないと判定され、前記誤訂正数式が成立していない場合に、
    Figure 0004036338
    となり誤訂正はされていると判定されるようにする請求項25に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
  27. Figure 0004036338
    Figure 0004036338
    に対しては、
    前記H”乗算手段にSI以外のシンドロームを新たに入力し、SI≠0かつSI以外のシンドロームが0の場合に、検出信号を出力し、
    また、前記GF(2)上の誤り生成手段にSIを新たに入力し、前記GF(2)上の誤り生成手段において、GF(2)上の誤りe’において誤りバイト数が1かどうかを調べ、前記多入力ソート手段を用いてSIのハミング重みがμtより大きいかどうかを調べることにより、前記復号手段を構成する請求項26に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出装置。
  28. 入力情報データを基に送信語を生成する符号化処理ステップと、情報伝送路中で誤りが発生した前記送信語を受信語として入力して前記誤りを訂正または検出する復号処理ステップとを有する誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法であって、
    前記符号化処理ステップは、スポッティバイト誤り制御符号を表現するパリティ検査行列と、前記入力情報データとを基に生成した検査情報を前記入力情報データに付加することにより、前記送信語を生成し、
    前記復号処理ステップは、前記パリティ検査行列を基に前記受信語のシンドロームを生成するシンドローム生成処理ステップと、前記シンドローム生成処理ステップにより生成されたシンドロームを基に前記受信語の誤りを訂正または検出する誤り訂正処理ステップとを有することを特徴とする誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
  29. 前記入力情報データが、b(bは2以上の整数)ビットを1バイトとし、複数のバイトから構成される場合に、ここで、バイト内のtビット(1≦t≦b)までの誤りをスポッティバイト誤りと称し、1バイト内に複数の前記スポッティバイト誤りが生じる誤りをバイト内複数スポッティバイト誤りと称することを前提とし、
    前記パリティ検査行列で表現される前記スポッティバイト誤り制御符号は、p個のバイトに生じるμ個のスポッティバイト誤りを訂正し、かつp個のバイトに生じるμ個のスポッティバイト誤りを検出する請求項28に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
  30. 前記t値、b値、p値、p値、μ値、μ値を任意に設定し、ただし、p≦p及びμ≦μが成立する請求項29に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
  31. 前記情報伝送路は、情報通信システムである請求項28乃至請求項30のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
  32. 前記情報伝送路は、メモリシステムである請求項28乃至請求項30のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
  33. 前記情報伝送路は、バス線回路である請求項28乃至請求項30のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
  34. 前記パリティ検査行列は、p個のバイトに生じるμ個のスポッティバイト誤りを訂正し、かつp個のバイトに生じるμ個のスポッティバイト誤りを検出する機能を有する、誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号
    Figure 0004036338
    に用いる、R行N列を有する次の行列Hであり、
    Figure 0004036338
    ただし、R=q+(p+p−1)r、N=bn、0≦i≦n−1、n=2−1であり、行列H’は、H’=[h’、h’、・・・、hb−1’]に示すq次の列ベクトルh’(0≦j≦b−1)から構成されるq行b列(q≦b)の2元行列であり、(μ+μ)tまたはbのうちいずれか小さい値に等しいか大きい列が線形独立であり、(μ+μ)t≧bのとき、前記行列H’は単位行列を含む正則行列であり、(μ+μ)t<bのとき、前記行列H’は最小ハミング距離(μ+μ)t+1を有する符号の検査行列、すなわち、(μ+μ)tビット誤り検出機能を有する(b、b−q)符号のパリティ検査行列に等しくなり、また、行列H”は、H”=[h”、h”、・・・、hb−1”]に示すr次の列ベクトルh”(0≦j≦b−1)から構成されるr行b列(r≦b)の2元行列であり、
    Figure 0004036338
    またはbのうちいずれか小さい値に等しいか大きい列が線形独立であり、ここで、
    Figure 0004036338
    はxを超えない最大の整数を表し、また、
    Figure 0004036338
    のとき、前記行列H”は単位行列を含む正則行列であり、
    Figure 0004036338
    のとき、前記行列H”は最小ハミング距離
    Figure 0004036338
    を有する符号の検査行列、すなわち、
    Figure 0004036338
    ビット誤り検出機能を有する(b、b−r)符号のパリティ検査行列に等しくなり、γはGF(2)のr次の拡大体GF(2)の原始元であって、γH”=[γ”、γ”、…、γb−1”]が成立するように構成される請求項29乃至請求項33のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
  35. 前記パリティ検査行列は、p個のバイトに生じるμ個のスポッティバイト誤りを訂正し、かつp個のバイトに生じるμ個のスポッティバイト誤りを検出する機能を有する、誤りバイト数を制限した伸長バイト内複数スポッティバイト誤り制御符号
    Figure 0004036338
    に用いる、R行N列を有する次の行列Hであり、
    Figure 0004036338
    ただし、r’≧rであり、R=q+(p+p−1)r’、N=b(n+1)+r’、0≦i≦n−1、n=2r’−1であり、
    Figure 0004036338
    はr’次の単位行列で、
    Figure 0004036338
    は零行列であり、行列H’は、H’=[h’、h’、・・・、hb−1’]に示すq次の列ベクトルh’(0≦j≦b−1)から構成されるq行b列(q≦b)の2元行列であり、(μ+μ)tまたはbのうちいずれか小さい値に等しいか大きい列が線形独立であり、(μ+μ)t≧bのとき、前記行列H’は単位行列を含む正則行列であり、(μ+μ)t<bのとき、前記行列H’は最小ハミング距離(μ+μ)t+1を有する符号の検査行列、すなわち、(μ+μ)tビット誤り検出機能を有する(b、b−q)符号のパリティ検査行列に等しくなり、また、行列H”は、H”=[h”、h”、・・・、hb−1”]に示すr次の列ベクトルh”(0≦j≦b−1)から構成されるr行b列(r≦b)の2元行列であり、
    Figure 0004036338
    またはbのうちいずれか小さい値に等しいか大きい列が線形独立であり、ここで、
    Figure 0004036338
    はxを超えない最大の整数を表し、また、
    Figure 0004036338
    のとき、前記行列H”は単位行列を含む正則行列であり、
    Figure 0004036338
    のとき、前記行列H”は最小ハミング距離
    Figure 0004036338
    を有する符号の検査行列、すなわち、
    Figure 0004036338
    ビット誤り検出機能を有する(b、b−r)符号のパリティ検査行列に等しくなり、γはGF(2)のr’次の拡大体GF(2r’)の原始元であって、γH”=[γΦ(h
    )、γΦ(h” )、・・・、γΦ(hb−1
    )]が成立するように構成され、ここで、Φは加法のもとでGF(2)からGF(2r’)への単射準同型写像(injective homomorphism)であり、すなわち、Φ:GF(2)→GF(2r’)である請求項29乃至請求項33のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
  36. 前記パリティ検査行列は、p個のバイトに生じるμ個のスポッティバイト誤りを訂正するとともに、p個のバイトに生じるμ個のスポッティバイト誤りを検出し、かつ訂正能力を超えた1バイト誤りを検出する機能を有する、誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号
    Figure 0004036338
    に用いる、R行N列を有する次の行列Hであり、
    Figure 0004036338
    ただし、R=b+(p+p−1)r、N=bn、0≦i≦n−1、n=2−1、Iはb次の単位行列であり、行列H”は、H”=[h”、h”、・・・、hb−1”]に示すr次の列ベクトルh”(0≦j≦b−1)から構成されるr行b列(r≦b)の2元行列であり、
    Figure 0004036338
    またはbのうちいずれか小さい値に等しいか大きい列が線形独立であり、ここで、
    Figure 0004036338
    はxを超えない最大の整数を表し、ここで、
    Figure 0004036338
    のとき、前記行列H”は単位行列を含む正則行列であり、
    Figure 0004036338
    のとき、前記行列H”は最小ハミング距離
    Figure 0004036338
    を有する符号の検査行列、すなわち、
    Figure 0004036338
    ビット誤り検出機能を有する(b、b−r)符号のパリティ検査行列に等しくなり、γはGF(2)のr次の拡大体GF(2)の原始元であって、γH”=[γ”、γ”、…、γb−1”]が成立するように構成される請求項29乃至請求項33のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
  37. 前記パリティ検査行列は、p個のバイトに生じるμ個のスポッティバイト誤りを訂正するとともに、p個のバイトに生じるμ個のスポッティバイト誤りを検出し、かつ訂正能力を超えた1バイト誤りを検出する機能を有する、誤りバイト数を制限した伸長バイト内複数スポッティバイト誤り制御符号
    Figure 0004036338
    に用いる、R行N列を有する次の行列Hであり、
    Figure 0004036338
    ただし、r’≧rであり、R=b+(p+p−1)r’、N=b(n+1)+r’、0≦i≦n−1、n=2r’−1、Iはb次の単位行列であり、
    Figure 0004036338
    はr’次の単位行列で、
    Figure 0004036338
    は零行列であり、行列H”は、H”=[h”、h”、・・・、hb−1”]に示すr次の列ベクトルh”(0≦j≦b−1)から構成されるr行b列(r≦b)の2元行列であり、
    tまたはbのうちいずれか小さい値に等しいか大きい列が線形独立であり、ここで、
    Figure 0004036338
    はxを超えない最大の整数を表し、ここで、
    Figure 0004036338
    のとき、前記行列H”は単位行列を含む正則行列であり、
    Figure 0004036338
    のとき、前記行列H”は最小ハミング距離
    Figure 0004036338
    を有する符号の検査行列、すなわち、
    Figure 0004036338
    ビット誤り検出機能を有する(b、b−r)符号のパリティ検査行列に等しくなり、γはGF(2)のr’次の拡大体GF(2r’)の原始元であって、γH”=[γΦ(h
    )、γΦ(h” )、・・・、γΦ(hb−1
    )]が成立するように構成され、ここで、Φは加法のもとでGF(2)からGF(2r’)への単射準同型写像(injective homomorphism)であり、すなわち、Φ:GF(2)→GF(2r’)である請求項29乃至請求項33のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
  38. 前記誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号
    Figure 0004036338
    は、前記t値を1に設定した場合(t=1)に、p個のバイトに生じるμ個のランダムビット誤りを訂正し、かつp個のバイトに生じるμ個のランダムビット誤りを検出する機能を有する、誤りバイト数を制限したランダムビット誤り制御符号となる請求項34に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
  39. 前記誤りバイト数を制限した伸長バイト内複数スポッティバイト誤り制御符号
    Figure 0004036338
    は、前記t値を1に設定した場合(t=1)に、p個のバイトに生じるμ個のランダムビット誤りを訂正し、かつp個のバイトに生じるμ個のランダムビット誤りを検出する機能を有する、誤りバイト数を制限したランダムビット誤り制御符号となる請求項35に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
  40. 前記誤りバイト数を制限したバイト内複数スポッティバイト誤り制御符号
    Figure 0004036338
    は、前記t値を1に設定した場合(t=1)に、p個のバイトに生じるμ個のランダムビット誤りを訂正するとともに、p個のバイトに生じるμ個のランダムビット誤りを検出し、かつ訂正能力を超えた1バイト誤りを検出する機能を有する、誤りバイト数を制限したランダムビット誤り制御符号となる請求項36に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
  41. 前記誤りバイト数を制限した伸長バイト内複数スポッティバイト誤り制御符号
    Figure 0004036338
    は、前記t値を1に設定した場合(t=1)に、p個のバイトに生じるμ個のランダムビット誤りを訂正するとともに、p個のバイトに生じるμ個のランダムビット誤りを検出し、かつ訂正能力を超えた1バイト誤りを検出する機能を有する、誤りバイト数を制限したランダムビット誤り制御符号となる請求項37に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
  42. 前記パリティ検査行列(H)は、
    Figure 0004036338
    とした場合に、前記行列H’及び前記行列H”は任意のb列が線形独立な行列となり、pバイト誤りを訂正するとともにpバイト誤りを検出する機能を有するRS符号のパリティ検査行列と一致する請求項34に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
  43. 前記パリティ検査行列(H)は、
    Figure 0004036338
    とした場合に、前記行列H’及び前記行列H”は任意のb列が線形独立な行列となり、pバイト誤りを訂正するとともにpバイト誤りを検出する機能を有する2次伸長RS符号のパリティ検査行列と一致する請求項35に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
  44. 前記パリティ検査行列(H)は、
    Figure 0004036338
    とした場合に、前記行列H”は任意のb列が線形独立な行列となり、pバイト誤りを訂正するとともにpバイト誤りを検出する機能を有するRS符号のパリティ検査行列と一致する請求項36に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
  45. 前記パリティ検査行列(H)は、
    Figure 0004036338
    とした場合に、前記行列H”は任意のb列が線形独立な行列となり、pバイト誤りを訂正するとともにpバイト誤りを検出する機能を有する2次伸長RS符号のパリティ検査行列と一致する請求項37に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
  46. 前記誤り訂正処理ステップは、前記シンドロームを基に前記受信語の何れのビットが誤っているかを検出するビット誤りポインタを生成し、生成された前記ビット誤りポインタを基に、誤りビットに該当する前記受信語のビット値を反転させることにより、前記受信語の誤りを訂正し、また、前記受信語のビット誤りを訂正できないことを検出した場合に、訂正不可能誤り検出信号を出力する請求項28乃至請求項45のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
  47. 前記誤り訂正処理ステップは、H’復号処理ステップと、H”乗算処理ステップと、GF(2)上の並列復号処理ステップと、GF(2)上の誤り生成処理ステップと、反転処理ステップとを有する請求項34乃至請求項請求項45のいずれかに記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
  48. 前記H’復号処理ステップは、前記シンドローム生成処理ステップで生成された前記シンドロームの上位qビットを基にして、バイトごとの誤りの和(e)を生成し、
    前記H”乗算処理ステップは、前記H’復号処理ステップで生成された前記バイトごとの誤りの和(e)を基にして、前記バイトごとの誤りの和(e)とH”の転置行列の積を生成し、
    前記GF(2)上の並列復号処理ステップは、前記H”乗算処理ステップで生成された前記バイトごとの誤りの和(e)とH”の転置行列の積、及び前記シンドローム生成処理ステップで生成された前記シンドロームの上位qビットを除く残りの下位ビットを基にして、GF(2)上のビット誤りポインタ、及びGF(2)上の並列復号において誤り訂正が不可能とみなされたときに出力される第1の訂正不可能誤り検出信号を生成し、
    前記GF(2)上の誤り生成処理ステップは、前記H’復号処理ステップで生成された前記バイトごとの誤りの和(e)、及び、前記GF(2)上の並列復号処理ステップで生成された前記GF(2)上のビット誤りポインタを基にして、GF(2)上のビット誤りポインタ、及び誤り訂正が不可能とみなされたときに出力される第2の訂正不可能誤り検出信号を生成し、
    前記反転処理ステップは、前記GF(2)上の誤り生成処理ステップで生成された前記GF(2)上のビット誤りポインタを基にして、前記GF(2)上のビット誤りポインタに対応した前記受信語のビット値を反転させることにより、前記受信語の誤りを訂正する請求項47に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
  49. 前記誤り訂正処理ステップでは、前記GF(2)上の並列復号処理ステップで生成された前記第1の訂正不可能誤り検出信号と、前記GF(2)上の誤り生成処理ステップで生成された前記第2の訂正不可能誤り検出信号の論理和をとることにより、訂正能力を超えた誤りを検出したことを示す第3の訂正不可能誤り検出信号を出力する請求項48に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
  50. 前記GF(2)上の誤り生成処理ステップは、
    前記GF(2)上のビット誤りポインタ(e’)の1バイトから、復号結果ビット誤りポインタ
    Figure 0004036338
    の1バイト及びiバイトにおける検出信号を出力するtビット誤り訂正復号処理ステップと、
    入力された複数の前記iバイトにおける検出信号の重みの数だけを出力の上位ビットから1を連続して出力する多入力ソート処理ステップと、
    誤訂正判定を行い、前記GF(2)上のビット誤りポインタ(e)の1バイトを出力するiバイトにおける誤訂正判定処理ステップと、
    を有する請求項48又は請求項49に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
  51. 前記GF(2)上の誤り生成処理ステップは、tビット誤り訂正復号処理ステップと、多入力ソート処理ステップと、iバイトにおける誤訂正判定処理ステップとを有し、
    前記tビット誤り訂正復号処理ステップは、前記GF(2)上のビット誤りポインタ(e’)の所定の1バイトを入力とし、復号結果ビット誤りポインタ
    Figure 0004036338
    の前記所定の1バイトに対応する1バイトを前記iバイトにおける誤訂正判定処理ステップに出力するとともに、訂正能力をこえた誤りを検出する信号であるiバイトにおける検出信号を前記多入力ソート処理ステップと前記iバイトにおける誤訂正判定処理ステップに出力し、
    前記多入力ソート処理ステップは、入力される複数の前記iバイトにおける検出信号の重み(1の数)を数え、その重みの数だけを出力の上位ビットから1を連続して出力し、
    前記iバイトにおける誤訂正判定処理ステップは、すべてのバイトの前記tビット誤り訂正復号処理ステップから出力される前記復号結果ビット誤りポインタ
    Figure 0004036338
    、前記iバイトにおける検出信号、及び前記バイトごとの誤りの和(e)を入力とし、誤訂正判定を行い、前記GF(2)上のビット誤りポインタ(e)の1バイトを出力する請求項48又は請求項49に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
  52. 前記GF(2)上の誤り生成処理ステップでは、前記多入力ソート処理ステップから出力された信号において、その上位2ビット目の信号を前記第2の訂正不可能誤り検出信号として出力し、また、前記iバイトにおける誤訂正判定処理ステップから出力された信号を集め、符号ビット長のビット数を有する前記GF(2)上のビット誤りポインタを出力する請求項50又は請求項51に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
  53. 前記iバイトにおける誤訂正判定処理ステップでは、前記誤訂正判定が次の誤訂正判定数式によって行われ、
    Figure 0004036338
    ただし、
    Figure 0004036338
    で定義され、スポッティバイト誤りの個数を表し、
    Figure 0004036338
    はベクトルeにおけるガロア体GF(2)上のハミング重みであり、
    前記誤訂正数式が成立している場合に、
    Figure 0004036338
    となり誤訂正はされていないと判定され、前記誤訂正数式が成立していない場合に、
    Figure 0004036338
    となり誤訂正はされていると判定されるようにする請求項52に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
  54. Figure 0004036338
    Figure 0004036338
    に対しては、
    前記H”乗算処理ステップにSI以外のシンドロームを新たに入力し、SI≠0かつSI以外のシンドロームが0の場合に、検出信号を出力し、
    また、前記GF(2)上の誤り生成処理ステップにSIを新たに入力し、前記GF(2)上の誤り生成処理ステップにおいて、GF(2)上の誤りe’において誤りバイト数が1かどうかを調べ、前記多入力ソート処理ステップでSIのハミング重みがμtより大きいかどうかを調べることにより、復号処理を行う請求項53に記載の誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法。
JP2005060818A 2005-03-04 2005-03-04 誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置 Expired - Fee Related JP4036338B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2005060818A JP4036338B2 (ja) 2005-03-04 2005-03-04 誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置
PCT/JP2005/023545 WO2006095489A1 (ja) 2005-03-04 2005-12-16 誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置
US11/817,758 US8230292B2 (en) 2005-03-04 2005-12-16 Method and apparatus for correcting and detecting multiple spotty-byte errors within a byte occurred in a limited number of bytes
CNB2005800465046A CN100492325C (zh) 2005-03-04 2005-12-16 限制了错误字节数的字节内多个斑点字节错误纠正/检测方法和装置
KR1020077011148A KR20070103734A (ko) 2005-03-04 2005-12-16 에러 바이트 수를 제한한 바이트 내 복수개 스포티 바이트에러 정정ㆍ검출 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005060818A JP4036338B2 (ja) 2005-03-04 2005-03-04 誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置

Publications (2)

Publication Number Publication Date
JP2006244259A JP2006244259A (ja) 2006-09-14
JP4036338B2 true JP4036338B2 (ja) 2008-01-23

Family

ID=36953094

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005060818A Expired - Fee Related JP4036338B2 (ja) 2005-03-04 2005-03-04 誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置

Country Status (5)

Country Link
US (1) US8230292B2 (ja)
JP (1) JP4036338B2 (ja)
KR (1) KR20070103734A (ja)
CN (1) CN100492325C (ja)
WO (1) WO2006095489A1 (ja)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101433620B1 (ko) 2007-08-17 2014-08-25 삼성전자주식회사 처리량을 높이기 위하여 더블 버퍼링 구조와 파이프라이닝기법을 이용하는 디코더 및 그 디코딩 방법
KR101466694B1 (ko) * 2007-08-28 2014-11-28 삼성전자주식회사 Ecc 회로, ecc 회로를 구비하는 메모리 시스템 및그의 오류 정정 방법
WO2010013437A1 (ja) * 2008-07-30 2010-02-04 パナソニック株式会社 誤り訂正機能付きコントローラ、誤り訂正機能付き記憶装置、及び誤り訂正機能付きシステム
JP5094792B2 (ja) * 2009-07-15 2012-12-12 株式会社京三製作所 情報伝送装置
US8347154B2 (en) * 2010-09-21 2013-01-01 International Business Machines Corporation Use of hashing function to distinguish random and repeat errors in a memory system
US8539321B2 (en) * 2010-11-10 2013-09-17 Infineon Technologies Ag Apparatus and method for correcting at least one bit error within a coded bit sequence
US9450613B2 (en) 2010-11-10 2016-09-20 Infineon Technologies Ag Apparatus and method for error correction and error detection
US8914706B2 (en) 2011-12-30 2014-12-16 Streamscale, Inc. Using parity data for concurrent data authentication, correction, compression, and encryption
US8683296B2 (en) 2011-12-30 2014-03-25 Streamscale, Inc. Accelerated erasure coding system and method
US8782487B2 (en) * 2012-04-18 2014-07-15 Lsi Corporation Systems and methods for locating and correcting decoder mis-corrections
US8782488B2 (en) * 2012-04-20 2014-07-15 Lsi Corporation Systems and methods for back step data decoding
US9104639B2 (en) 2012-05-01 2015-08-11 SEAKR Engineering, Inc. Distributed mesh-based memory and computing architecture
KR101837099B1 (ko) * 2012-07-05 2018-03-09 에스케이하이닉스 주식회사 가변 구조의 에러 정정 부호화기
US9214959B2 (en) 2013-02-19 2015-12-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for skip layer data decoding
US9698830B2 (en) * 2013-02-28 2017-07-04 Intel Corporation Single-bit first error correction
US9274889B2 (en) 2013-05-29 2016-03-01 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for data processing using global iteration result reuse
US8959414B2 (en) 2013-06-13 2015-02-17 Lsi Corporation Systems and methods for hybrid layer data decoding
US8917466B1 (en) 2013-07-17 2014-12-23 Lsi Corporation Systems and methods for governing in-flight data sets in a data processing system
US8817404B1 (en) 2013-07-18 2014-08-26 Lsi Corporation Systems and methods for data processing control
US8908307B1 (en) 2013-08-23 2014-12-09 Lsi Corporation Systems and methods for hard disk drive region based data encoding
US9196299B2 (en) 2013-08-23 2015-11-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for enhanced data encoding and decoding
US9094046B2 (en) 2013-09-03 2015-07-28 Lsi Corporation Systems and methods for variable sector count spreading and de-spreading
US8976471B1 (en) 2013-09-05 2015-03-10 Lsi Corporation Systems and methods for two stage tone reduction
US9298720B2 (en) 2013-09-17 2016-03-29 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for fragmented data recovery
US9219503B2 (en) 2013-10-16 2015-12-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for multi-algorithm concatenation encoding and decoding
US9436550B2 (en) 2013-10-31 2016-09-06 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for internal disk drive data compression
US9323606B2 (en) 2013-11-21 2016-04-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for FAID follower decoding
RU2014104571A (ru) 2014-02-10 2015-08-20 ЭлЭсАй Корпорейшн Системы и способы для эффективного с точки зрения площади кодирования данных
CN104834476B (zh) 2014-02-10 2016-10-19 安华高科技通用Ip(新加坡)公司 基于段结束标记的数据对准的系统和方法
US9378765B2 (en) 2014-04-03 2016-06-28 Seagate Technology Llc Systems and methods for differential message scaling in a decoding process
US9184954B1 (en) 2014-07-02 2015-11-10 Seagate Technology Llc Systems and methods for directed soft data perturbation in layered decoding
US9384761B1 (en) 2015-04-09 2016-07-05 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for flexible variable code rate support
CN105224415B (zh) * 2015-09-25 2018-01-09 北京奇虎科技有限公司 用于实现业务任务的码的生成方法及装置
US20170324425A1 (en) * 2016-05-06 2017-11-09 Infineon Technologies Ag Embedded parity matrix generator
DE102017125617B8 (de) * 2017-11-02 2020-08-27 Infineon Technologies Ag Bestimmung und verwendung von bytefehlerpositionssignalen
US11764940B2 (en) 2019-01-10 2023-09-19 Duality Technologies, Inc. Secure search of secret data in a semi-trusted environment using homomorphic encryption
CN110688249B (zh) * 2019-09-20 2023-04-07 上海励驰半导体有限公司 一种纠错码电路的注错检测电路
KR20210092391A (ko) * 2020-01-16 2021-07-26 삼성전자주식회사 반도체 메모리 장치의 에러 정정 회로 및 반도체 메모리 장치
WO2021199409A1 (ja) * 2020-04-02 2021-10-07 三菱電機株式会社 誤り訂正符号化装置、誤り訂正復号装置、制御回路、記憶媒体、誤り訂正符号化方法および誤り訂正復号方法
EP4071762B1 (en) * 2021-01-14 2023-07-05 Changxin Memory Technologies, Inc. Error correction system
EP4050608B1 (en) 2021-01-14 2023-06-28 Changxin Memory Technologies, Inc. Comparator with xor and xnor logic circuits
CN114765056A (zh) 2021-01-14 2022-07-19 长鑫存储技术有限公司 存储系统
CN116028260B (zh) * 2023-01-09 2024-02-27 海光信息技术股份有限公司 数据的处理方法、处理装置以及存储系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3565798B2 (ja) 2001-06-14 2004-09-15 英二 藤原 バースト誤りパターン生成方法及びバーストおよびバイト誤り検出・訂正装置
JP3879082B2 (ja) * 2002-05-31 2007-02-07 財団法人理工学振興会 バイト誤り訂正・検出装置
JP3743915B2 (ja) * 2003-12-15 2006-02-08 国立大学法人東京工業大学 スポッティバイト誤り訂正・検出方法及び装置
JP2006060465A (ja) 2004-08-19 2006-03-02 Tokyo Institute Of Technology スポッティバイト誤り訂正・検出方法及び装置
JP2006101429A (ja) 2004-09-30 2006-04-13 Tokyo Institute Of Technology バイト内複数スポッティバイト誤り訂正・検出方法及び装置

Also Published As

Publication number Publication date
CN100492325C (zh) 2009-05-27
KR20070103734A (ko) 2007-10-24
CN101099138A (zh) 2008-01-02
US20090106633A1 (en) 2009-04-23
JP2006244259A (ja) 2006-09-14
WO2006095489A1 (ja) 2006-09-14
US8230292B2 (en) 2012-07-24

Similar Documents

Publication Publication Date Title
JP4036338B2 (ja) 誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置
US7278085B1 (en) Simple error-correction codes for data buffers
WO2011142133A1 (ja) 誤り訂正符号処理方法及びその装置
US7962837B2 (en) Technique for reducing parity bit-widths for check bit and syndrome generation for data blocks through the use of additional check bits to increase the number of minimum weighted codes in the hamming code H-matrix
US8806295B2 (en) Mis-correction and no-correction rates for error control
US20090110109A1 (en) Apparatus and method for generating a transmit signal and apparatus and method for extracting an original message from a received signal
US8694872B2 (en) Extended bidirectional hamming code for double-error correction and triple-error detection
US20050188292A1 (en) Method and apparatus for encoding special uncorrectable errors in an error correction code
US10812109B2 (en) Determination and use of byte error position signals
US20050149834A1 (en) (18, 9) Error correction code for double error correction and triple error detection
JP2589957B2 (ja) 単一サブブロック・エラーと単一ビット・エラー検出のための符号化方法及びメモリ・システム
US7093183B2 (en) Symbol level error correction codes which protect against memory chip and bus line failures
US8631307B2 (en) Method for encoding and/or decoding multimensional and a system comprising such method
JP7116374B2 (ja) 短縮レイテンシ誤り訂正復号
US20140013181A1 (en) Error Correction Coding Using Large Fields
EP1102406A2 (en) Apparatus and method for decoding digital data
Tam Single error correction and double error detection
US10404278B2 (en) Parallel pipeline logic circuit for generating CRC values utilizing lookup table
US7100103B2 (en) Efficient method for fast decoding of BCH binary codes
TWI664636B (zh) 錯誤檢查和糾正解碼器
JP3743915B2 (ja) スポッティバイト誤り訂正・検出方法及び装置
JP2006101429A (ja) バイト内複数スポッティバイト誤り訂正・検出方法及び装置
Rao et al. Encoder and adaptive decoder for a (15, 6, 2) DEC-TED BCH code
CN110741562B (zh) 向量信令码信道的流水线式前向纠错
JP2006060465A (ja) スポッティバイト誤り訂正・検出方法及び装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070521

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20070521

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20070910

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070925

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071025

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101109

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111109

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111109

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121109

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121109

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131109

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees