JP3879082B2 - バイト誤り訂正・検出装置 - Google Patents

バイト誤り訂正・検出装置 Download PDF

Info

Publication number
JP3879082B2
JP3879082B2 JP2002159714A JP2002159714A JP3879082B2 JP 3879082 B2 JP3879082 B2 JP 3879082B2 JP 2002159714 A JP2002159714 A JP 2002159714A JP 2002159714 A JP2002159714 A JP 2002159714A JP 3879082 B2 JP3879082 B2 JP 3879082B2
Authority
JP
Japan
Prior art keywords
matrix
error
byte
bit
code
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
JP2002159714A
Other languages
English (en)
Other versions
JP2004007217A (ja
JP2004007217A5 (ja
Inventor
英二 藤原
ウマネサン ガネサン
Original Assignee
財団法人理工学振興会
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 財団法人理工学振興会 filed Critical 財団法人理工学振興会
Priority to JP2002159714A priority Critical patent/JP3879082B2/ja
Publication of JP2004007217A publication Critical patent/JP2004007217A/ja
Publication of JP2004007217A5 publication Critical patent/JP2004007217A5/ja
Application granted granted Critical
Publication of JP3879082B2 publication Critical patent/JP3879082B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、バイト誤り訂正・検出装置に関し、詳しくは、b(bは2以上の整数)ビットをバイトとし、複数のバイトから構成される語(ワード)に対し、任意の1バイト中にt(tは1より大きくbに等しいか小さい整数)ビットの誤りが生じたときにこれを訂正する機能(St/bEC)、及び任意の1バイト中にtビットの誤りが生じたときこれを訂正し、またバイト中にtビットより大きい誤りが生じたときにこれを検出する機能(St/bEC-SbED)、さらに複数のバイトからなる長さBビットのブロック中の任意のtビット誤りが生じたときこれを訂正し、また1バイト中にtビットより大きいbビットまでの誤りが生じたときこれを訂正し、さらに1ブロック中に任意の誤りが生じたときこれを検出する機能(St/BEC-SbEC-SBED)を有するバイト誤り訂正・検出装置に関する。
【0002】
【従来の技術】
従来、関連する符号機能を有する既存の装置として、語中の1ビットを訂正し、また語中の1バイトの誤りを検出する1ビット誤り訂正・1バイト誤り検出の符号機能(SEC-SED)を有する装置は、1970年代に提案され、これにさらに語中の任意の2ビット誤りを検出する機能を付加した1ビット誤り訂正・2ビット誤り検出・1バイト誤り検出の符号機能(SEC-DED-SED)を有する装置は、既に多くの計算機の主記憶装置に採用されている。
【0003】
また、1バイト中の任意の誤りを訂正する機能を有するハミング(Hamming)符号とHong-Patel符号は、それぞれ1965年、1972年に論文で既に明らかにされ、さらに、1バイト誤りを訂正し、2バイト誤りを検出する符号(SbEC-DbED符号)は、既に多くの主記憶装置に採用されている。さらに、最近の半導体メモリに指向した符号として、1バイトの誤りを訂正し、符号中の2ビット誤りを検出する符号と、1バイトの誤りを訂正し、さらに1バイト誤りと1ビット誤りが同時に生起した場合にこれを検出する符号が、それぞれ1993年、1997年に論文として提案されている。
【0004】
なお、関連するこれまでの研究あるいは発表の内容は、T.R.N.Rao and E.Fujiwara, ’’ Error Control Coding for Computer Systems’’, Prentice-Hall, 1989のChapter 5に総括的に述べられている。また、個別には、例えば、SEC-SbED符号に関しては、S.M.Reddy, ’’A Class of Linear Codes for Byte-per-Card Organized Digital Systems’’, IEEE Transactions on Computers, C-27, No.5, pp.455-459,1978およびC.L.Chen, ‘’Error-Correcting Codes with Byte Error-Detection Capability’’, IEEE Transactions on Computers, C-32, No.7, pp.615-621, 1983に述べられている。
【0005】
また、SbEC符号に関しては、S.J.Hong and A.M.Patel, ’’A General Class of Maximal Codes for Computer Applications’’, IEEE Transactions on Computers, C-21, No.12, pp.1322-1331, 1972およびE.Fujiwara, ’’Odd-Weight-Column b-Adjacent Error Correcting Codes’’, Transactions of the IECE Japan, E-63, No.10 ,pp.781-787, 1978 に述べられている。
【0006】
さらに、関連する最近の論文発表として、G.Umanesan and E.Fujiwara, ” Random Double Error Correcting -Single b-bit Byte Error Correcting (DEC-SbEC) Codes for Memory Systems", IEICE Transactions on Fundamentals, Vol.E85-A, No.1, pp.273-276, 2002., G.Umanesan and E.Fujiwara, " Adjacent Double Bit Error Correcting Codes with Single Byte Error Detecting Capability for Memory Systems", IEICE Transactions on Fundamentals, Vol.E85-A, No2. pp.490-496 , 2002, および G.Umanesan and E.Fujiwara, “ Single Byte Error Correcting Codes with Double Bit within a Block Error Correcting Capability for Memory Systems”, IEICE Transactions on Fundamentals, Vol.E85-A, No.2, pp.513-517, 2002.がある。
【0007】
【発明が解決しようとする課題】
ところで、最近の高集積半導体メモリ素子(DRAM)には、4ビット、8ビット、16ビット、32ビットの読み出し、書き込みデータ幅を有する、いわゆるバイト素子が主流である。ここで、この4ビット、8ビット等のデータの塊がバイトである。このような素子を使用したメモリ装置においては、複数の素子から同時にデータを読み出し、また書き込みを行う。従って、装置全体からの読み出し、書き込みのデータが語(ワード)であり、各素子単位の読み出し、書き込みデータがバイトに相当する。
【0008】
このような素子を使用したメモリ装置においては、ノイズやアルファ粒子衝突等による一時故障と、素子自身が劣化して動作しなくなる固定故障とが存在する。最近の半導体メモリ素子において、70%以上の故障は一時故障であるといわれ、この場合バイト中の1、2、3ビット等の比較的小さいビット数の誤りとなる。
【0009】
一方、固定故障の場合に、1メモリセル故障が生じたときは1ビット誤りとなるが、ワード線故障、アドレス線故障、制御回路故障や電源回路故障等の故障になると、素子の出力ビット全体の誤り、いわゆるバイト誤りとなる。ただし、一般的には、メモリセルに起因する誤りは比較的多いが、上述したような素子全体に影響する故障の発生頻度はきわめて小さい。
【0010】
上述したような高速半導体メモリ装置においては、特に、周囲の環境による一時故障の影響が大きい。通常、半導体メモリ装置に与える影響としては、ノイズやアルファ粒子等が考えられ、これらの影響は比較的エネルギーレベルの小さい影響であるため、その多くは1ビット誤りとなることが知られている。
【0011】
しかし、悪い電磁ノイズ環境において使用されるモバイル機器に搭載した半導体メモリ、また、高い高度を飛行する航空機や軍用機における搭載する半導体メモリでは、宇宙線に起因するエネルギーレベルの高い中性子粒子の衝突等によって、2ビット以上の一時的な誤りになる可能性が高い。また、半導体メモリを宇宙機器に搭載した場合に、宇宙空間における極めてエネルギーレベルの高い粒子が衝突することにより、半導体メモリに大きなダメージを与え、2ビット以上の一時的な誤りとなることが知られている。このような場合に、従来の1ビット誤り訂正・1バイト誤り検出の機能(SEC-SED)では十分ではなく、バイト中の2ビット、3ビット等の1ビットより大きい誤りを訂正する機能が求められる。
【0012】
本発明は、上述のような事情に鑑みてなされたものであり、本発明の目的は、バイトをbビットの塊りとするときに、バイト内の1ビット以上tビットまでのすべての誤りを訂正する1バイト内tビット誤り訂正機能(St/bEC)、及びバイト内のtビットまでのすべての誤りを訂正し、また1バイト中にtビットより大きい誤りがあればこれを検出するバイト内tビット誤り訂正・1バイト誤り検出機能(St/bEC-SbED)と、さらに複数バイトからなるBビットのブロック中の任意のtビット誤りを訂正し、bビットの1バイト中の任意の誤りを訂正し、更に1ブロック中の任意の誤りを検出するブロック内tビット誤り訂正・1バイト誤り訂正・1ブロック誤り検出機能(St/BEC-SbEC-SBED)とを有するバイト誤り訂正・検出装置を提供することにある。
【0013】
要するに、本発明は、従来技術では存在しない、bビットを有するバイト中の2ビット、3ビット等のtビット(tは1以上b以下の整数)までの誤りを訂正する符号機能(St/bEC)を与えることにより、従来と比較して、検査ビット数が少なく、また各種要求に柔軟に対応できる符号機能を提供することにある。
【0014】
【課題を解決するための手段】
本発明は、バイト誤り訂正・検出装置に関し、本発明の上記目的は、
符号化手段と復号手段とを備えるバイト誤り訂正・検出装置であって、前記符号化手段は、符号を表現するパリティ検査行列Hに基き、入力されたKビットの入力情報データからRビットの検査ビットを生成してから、前記検査ビットを前記入力情報データに付加して送信語として、情報伝送路に送出されるように構成され、前記情報伝送路を経て受信された前記送信語は、受信語Vとして前記復号手段に入力され、前記復号手段は、入力された前記受信語Vに前記パリティ検査行列Hの転置行列Hを乗算してRビットのシンドロームSを生成するシンドローム生成手段と、前記シンドロームSのパターンに基いて誤りの訂正を行う誤り訂正手段とを有し、誤りが訂正された情報Vは出力情報データとして出力され、また、前記符号により訂正できない誤りを検出した場合には、誤り検出出力としてUCE信号を出力し、前記パリティ検査行列Hは、前記入力情報データが、b(bは2以上の整数)ビットを1バイトとし、複数のバイトから構成される語である場合に、1バイト中の任意のt(tは1以上b以下の整数)ビット誤りを訂正する機能を有することにより、
或いは、符号化手段と復号手段とを備えるバイト誤り訂正・検出装置であって、前記符号化手段は、符号を表現するパリティ検査行列Hに基き、入力されたKビットの入力情報データからRビットの検査ビットを生成してから、前記検査ビットを前記入力情報データに付加して送信語として、情報伝送路に送出されるように構成され、前記情報伝送路を経て受信された前記送信語は、受信語Vとして前記復号手段に入力され、前記復号手段は、入力された前記受信語Vに前記パリティ検査行列Hの転置行列Hを乗算してRビットのシンドロームSを生成するシンドローム生成手段と、前記シンドロームSのパターンに基いて誤りの訂正を行う誤り訂正手段とを有し、誤りが訂正された情報Vは出力情報データとして出力され、また、前記符号により訂正できない誤りを検出した場合には、誤り検出出力としてUCE信号を出力し、前記パリティ検査行列Hは、前記入力情報データが、b(bは2以上の整数)ビットを1バイトとし、複数のバイトから構成される語である場合に、1バイト中の任意のt(tは1以上b以下の整数)ビット誤りを訂正し、更にtビットを越える1バイトの誤りであれば、これを完全に検出する機能を有することにより、
或いは、符号化手段と復号手段とを備えるバイト誤り訂正・検出装置であって、前記符号化手段は、符号を表現するパリティ検査行列Hに基き、入力されたKビットの入力情報データからRビットの検査ビットを生成してから、前記検査ビットを前記入力情報データに付加して送信語として、情報伝送路に送出されるように構成され、前記情報伝送路を経て受信された前記送信語は、受信語Vとして前記復号手段に入力され、前記復号手段は、入力された前記受信語Vに前記パリティ検査行列Hの転置行列Hを乗算してRビットのシンドロームSを生成するシンドローム生成手段と、前記シンドロームSのパターンに基いて誤りの訂正を行う誤り訂正手段とを有し、誤りが訂正された情報Vは出力情報データとして出力され、また、前記符号により訂正できない誤りを検出した場合には、誤り検出出力としてUCE信号を出力し、前記パリティ検査行列Hは、前記入力情報データが、b(bは2以上の整数)ビットを1バイトとし、複数のバイトから構成される語である場合に、複数バイトからなる長さB(Bはbの倍数)ビットを有する1ブロック中の任意のt(tは1以上b以下の整数)ビット誤りを訂正し、且つ、tビットを越える1バイトの誤りを訂正し、更に1バイトを越える1ブロックの誤りであれば、これを完全に検出する機能を有することによって達成される
【0016】
【発明の実施の形態】
以下、本発明の好適な実施形態について図面を参照しながら詳細に説明する。
【0017】
図1は、本発明の概略構成を示すブロック図である。図1に示されるように、入力情報データ01は、符号化回路02に入力して検査ビットが生成され、この検査ビットは入力情報データ01に付加される。この入力情報データ01と検査ビットは送信語として通信路03に送出される。通信路03を経て受信された語は受信語Vとして復号回路04に入力する。復号回路04では、受信語Vに符号を表現するパリティ検査行列Hの転置行列Hを乗算してシンドロームSをシンドローム生成回路1において生成し、さらに、このシンドロームSのパターンに基いて誤りの訂正を誤り訂正回路05において行う。誤りが訂正された情報Vは、出力情報データ06として出力される。また、符号により訂正できない誤りを検出した場合は、誤り検出出力としてUCEの信号を出力する。
【0018】
本発明において開示している3種の機能の符号を表現するパリティ検査行列Hは、b(bは2以上の整数)ビットを1バイトとしたとき、以下のような機能を有する。
【0019】
[1]1バイト中の任意のt(tは1以上b以下の整数)ビット誤りを訂正する機能。
【0020】
[2]1バイト中の任意のtビット誤りを訂正し、さらに、tビットを越える1バイトの誤りであれば、これを完全に検出する機能。
【0021】
[3]複数バイトからなるブロック中の任意のtビット誤りを訂正し、且つ、tビットを越える1バイトの誤りを訂正し、さらに、1バイトを越える1ブロック誤りであれば、これを完全に検出する機能。
【0022】
要するに、本発明において、バイトをbビットの塊りとするときに、バイト中のtビットの誤りを訂正する1バイト内tビット誤り訂正(St/bEC)符号と、バイト中のtビット誤りを訂正しtビットを越える誤りに対してはこれを検出する1バイト内tビット誤り訂正・1バイト誤り検出(St/bEC-SbED)符号と、複数バイトからなるBビットのブロック中の任意のtビット誤りを訂正し、bビットの1バイト中の任意の誤りを訂正し、さらに1ブロック中の任意の誤りを検出するブロック内tビット誤り訂正・1バイト誤り訂正・1ブロック誤り検出(St/BEC-SbEC-SBED)符号をそれぞれ構成する。
【0023】
特に、t=1のときに、本発明のSt/bEC符号では、従来の1ビット誤り訂正(SEC)符号となり、また、本発明のSt/bEC-SbED符号では、従来の1ビット誤り訂正・1バイト誤り検出(SEC-SED)符号となる。更に、t=bのときに、双方とも従来の1バイト誤り訂正(SbEC)符号に一致する。
【0024】
本発明では、任意のt(tは1以上b以下の整数)およびb、Bに対して構成できる一般的な符号構成法を提示するとともに、その符号により実際に誤りの訂正・検出ができる方法を示し、またそのための符号化回路および復号回路を提示し誤りが具体的に訂正・検出できることを示す。
【0025】
一般的に、誤りの訂正・検出を行う符号は、パリティ検査行列H(Hマトリクス、符号マトリクス、または単に検査行列とも言う)により表現される。Kビットの情報に対し、Rビットの検査ビットを付加してある機能を満足するN=K+ Rビットの長さを有する符号語D(Nビットの行ベクトル)が構成できたときに、符号を規定するR行N列の2元符号マトリクスHとの間には、D・H=0の関係が成立する。ここで、HはマトリクスHの行と列を入れ替えたマトリクスであり、また、0はRビットの零列ベクトルである。
【0026】
(1)符号1
1バイト内tビットの誤りを訂正する符号をSt/bEC符号(Single t-bit within a b-bit byte Error Correcting Code)と表記する。ここで、tは1≦t≦bを満足する整数である。この機能を有する符号のR行N列を有するHマトリクスH を下記の数1により表す。
【0027】
【数1】
Figure 0003879082
ここで、IはR行R列の単位行列であり、H’はランクt以上のR−q行b列の2元マトリクスであり、Hは2tおよびbのうちいずれか小さい方の値に等しいか大きいランクを有するq行b列の2元マトリクスであり、すなわちRank(H)≧ min(2t、b)、また、Iはq行q列の単位行列であり、0x×yはx行y列の零マトリクスであり、m=2R−q−2、R ≧ q+ rとする。γは2を底とするR-q次のガロア体GF(2R−q)の原始元であり、また、φは加算のもとでGF(2)をGF(2R−q)への準同形写像(homomorphism)とするときに、下記の数2が成立する。
【0028】
【数2】
Figure 0003879082
ここで、H’はランクt以上のr行b列の2元マトリクスであり、下記の数3に表されるように、r次の列ベクトルhj( 0 ≦ j ≦ b−1) から構成される。すなわち、H’は最小距離t+1を有する(b、b−r)2元線形符号の検査行列であり、tビット誤り検出符号のHマトリクスに等しい。
【0029】
【数3】
Figure 0003879082
また、iは0 ≦i≦ mの範囲を有する整数である。ここで、バイトはbビットの長さを有するが、最後の1バイトはR−qビットの長さを有する。R−q > bでは、bビットより大きな値を有するが、例外的にこれも他のバイトと同様に1バイトとして扱うことにする。このとき、最大符号長NはN = b(2R−q−1) + Rで表せる。数1に示されたHマトリクスで表される符号をここでは符号1とする。
次に、数1に示されるこのHマトリクスで表される符号が具体的に表記の機能(つまり、St/bEC符号機能)を有していることを示す。
【0030】
まず、訂正可能なバイト内tビット誤りの集合をEt/bとするときに、e、e∈E / に対し、下記の数4が成立する。
【0031】
【数4】
Figure 0003879082
ここで、eおよびeはbビットの2元行ベクトルである。また、i,jは互いに異なり、0≦ i、j≦ mである。もし、この関係式で等号が成立すると仮定する。このとき、下記の数5及び数6が成立する。
【0032】
【数5】
Figure 0003879082
【数6】
Figure 0003879082
まず、数5において、HはRank(H)≧ min(2t、b)の関係を有することから、e=e となる。このとき、以下では、e、eのうちeを代表して用いることとする。
【0033】
次に、数6において、Rank(H’)≧ tより、e・H’≠0である。これから、下記の数7に表されるようになる。
【0034】
【数7】
Figure 0003879082
従って、数6においてi=jが成立することになり、これは矛盾である。よって、上記不等号の関係が成立する。
【0035】
さらに、検査部の最初のバイト及び2番目のバイトの誤りをそれぞれe’∈ GF(2)、e” ∈ GF(2R−q)とし、それぞれqビット、R−qビットの2元行ベクトルとするときに、下記の数8、数9及び数10に表されるような関係が明らかに成立する。
【0036】
【数8】
Figure 0003879082
【数9】
Figure 0003879082
【数10】
Figure 0003879082
以上より、数1により表されるHマトリクスの零空間(null space)はSt/bEC符号となることが証明された。
【0037】
(2)符号2
次に、上述したように、検査ビット数Rを有する符号1のHマトリクスH に対し、これを使用して構成され、下記の数11に表されるようなHマトリクスもやはりSt/bEC符号の検査行列となる。
【0038】
【数11】
Figure 0003879082
ここで、0q×qはq行q列の零行列であり、またR≧ 2q+ r であり、HR−qは下記の数12に表される。
【0039】
【数12】
Figure 0003879082
ここで、Hはmin(2t、b)以上のランクを有するq行b列の2元マトリクスであり、H’はランクt以上のR−2q行b列の2元マトリクスであり、δは2を底とするR-2q次のガロア体GF(2R−2q)の原始元であり、m’=2R−2q−2となり、符号の最大長は下記の数13で表される。
【0040】
【数13】
Figure 0003879082
数11に表されるこのマトリクスで表現される符号がSt/bEC符号であることは、前述の符号1の構成より容易に証明できる。
【0041】
まず、前述の符号1から、 [ H | I] および [HR−q |IR−q] は明らかにSt/bEC符号である。ここで、IR−qはR−q行R−q列の単位行列である。前部のHにおける1バイト誤りによるシンドロームとHR−qを有する中間部における1バイト誤りによるシンドロームとは、明らかに異なる。これはHの最上部にはq行q列の単位行列Iが存在するのに対し、HR−qを有する部分では最上部にq行q列の零行列0q×qが存在するためである。また、最後部の検査部における最初のバイトには最上部にq行q列の単位行列が存在するが、この部分における1バイト誤りによるシンドロームと、最上部に同様にb行b列の単位行列を有する前部Hにおける1バイト誤りによるシンドロームも、前者において残りのR−qビットのシンドロームがすべて零になることから両者明らかに異なる。数11に示されるこのH **で表される符号をここでは符号2とする。
【0042】
(3)符号3
前述の符号2で表されるマトリクス構成のように何回か(w回)階段状に拡張していけば、符号長の優れた符号が得られ、これもSt/bEC符号である。ここで、検査長RはR ≧ wq+ rであり、wは1以上の整数である。下記の数14に示されたこの符号をここでは符号3とする。
【0043】
【数14】
Figure 0003879082
ここで、HR−(w−1)qは下記の数15に表される。
【数15】
Figure 0003879082
ここで、Hはmin(2t、b)以上のランクを有するq行b列の2元マトリクスであり、H’はランクt以上のR−wq行b列の2元マトリクスであり、ωは2を底とするR-wq次のガロア体GF(2R−wq)の原始元であり、m’’=2R−wq−2となる。
【0044】
この構成の符号の最大長はN = Σb(2R −iq−1) + R である。ここで、Σはi= 1からwまでの和である。この符号構成がSt/bEC符号の機能を有することは、前述の符号1および符号2の構成から容易に理解できる。
【0045】
なお、ここで、t=bとし、H’ およびH#のランクがともにbに等しいときに、数14に示されるマトリクスで表される符号は単一バイト誤り訂正符号、いわゆるSbEC符号に一致することに注意する必要がある。しかも、数14に示されるように、階段状の構成を有するマトリクスで表される符号3においては、従来SbEC符号として最も優れている最大長符号(Maximal Code)に一致する。この最大長符号はS.J.HongとA.M.Patelにより、”A General Class of Maximal Codes for Computer Applications”IEEE Transactions on Computers, C-21, No.12, pp.1322-1331, 1972に示されている。具体的にランクbを有するH’ 、H#は容易に求められる。すなわち、b行b列の単位行列とすればよい。
【0046】
(4)符号4
1バイト内tビットの誤りを訂正し、tビットを超える1バイトの誤りを検出する符号をSt/bEC-S b ED符号(Single t-bit within a b-bit byte Error Correcting and Single b-bit byte Error Detecting Code)と表記する。この機能を有する符号のR行N列を有するHマトリクスH を下記の数16により表す。
【0047】
【数16】
Figure 0003879082
ここで、Iはz行z列の単位行列であり、IはR行R列の単位行列であり、H’はランクt以上のR−b行b列の2元マトリクスであり、また0x×yはx行y列の零マトリクスであり、m=2R−b−2、検査ビット数R≧ b + r とする。γはガロア体GF(2R−b)の原始元であり、また、φは加算のもとでGF(2)をGF(2R−b)への準同形写像(homomorphism)とするときに、下記の数17が成立する。
【数17】
Figure 0003879082
ここで、H’はランクt以上のr行b列の2元マトリクスであり、前記数3に表されるように、r次の列ベクトルhj( 0 ≦ j ≦ b−1) から構成される。
【0048】
また、iは0 ≦ i ≦ mの範囲を有する整数である。ここで、バイトはbビットの長さを有するが、最後の1バイトはR−bビットの長さを有する。R>2bではbビットより大きな値を有するが、例外的にこれも他のバイトと同様に1バイトとして扱うことにする。このとき、最大符号長NはN = b(2R−b−1) + Rで表せる。数16に示されたHマトリクスで表される符号をここでは符号4とする。
次に、数16に示されたHマトリクスで表される符号が具体的に表記の機能を有していることを示す。
【0049】
まず、訂正可能なバイト内tビット誤りの集合をE / 、およびtビットを越える1バイト誤りの集合をEとするとき、これらのすべてのいかなる誤りe∈{ E / ∪ E }に対し、eI ≠ 0および最後のR−bビットの検査部の誤りeR−bに対しeR−bR−b ≠ 0R−bより、下記の数18、数19及び数20のようになり、これらの誤りに対してシンドロームは、非零となり誤り検出できる。
【0050】
【数18】
Figure 0003879082
【数19】
Figure 0003879082
【数20】
Figure 0003879082
ここで、eはbビットの2元行ベクトル、eR−bはR−bビットの2元行ベクトルである。また、0、0R−bはそれぞれb次、R−b次の2元零行ベクトルである。
【0051】
次に、訂正可能な誤りである重みt以下を有するbビットの2元行ベクトルet/b、及びe、eR−bに対して、また0≦ i ≦ 2R b−2に対して、下記の数21、数22及び数23に示された関係は明らかに成立する。
【0052】
【数21】
Figure 0003879082
【数22】
Figure 0003879082
【数23】
Figure 0003879082
また、0 ≦ i ≠ j ≦ 2R−b−2 に対して、下記の数24が成立する。
【0053】
【数24】
Figure 0003879082
もし、数24で等号が成立すると仮定すると、まず 、e / =eが成立しなければならない。また、e / はその重みがt以下であり、またH’のランクはt以上であることから、e / ・H’ ≠ 0となり、よって、下記の数25が成立する。
【0054】
【数25】
Figure 0003879082
これから、et/b・[γH’] = e・[γH’]となり、また、et/b = eより、これはi= jを意味することになり矛盾である。よって、数24は成立する。
【0055】
以上より、数16に示されたHマトリクスの零空間(null space)はSt/bEC−SbED符号となることが証明された。
【0056】
(5)符号5
次に、検査ビット数Rを有する前記符号4のHマトリクス中のHを使用して構成した、下記の数26に示すHマトリクスもSt/bEC−SbED符号の検査行列となる。
【0057】
【数26】
Figure 0003879082
ここで、0b×bはb行b列の零行列であり、またR≧ 2b + rであり、HR−bは下記の数27により表す。
【0058】
【数27】
Figure 0003879082
ここで、Iはb行b列の単位行列であり、H’はランクt以上のR−2b行b列の2元マトリクスであり、δは2を底とするR-2b次のガロア体GF(2R−2b)の原始元であり、m’=2R−2b−2となり、符号の最大長は、下記の数28で表される。
【0059】
【数28】
Figure 0003879082
数26に示されるマトリクスで表現される符号がSt/bEC−SbED符号であることは前記符号4の構成より容易に証明できる。
【0060】
まず、前述の符号4から[H|I]および[HR−b|IR− b]は明らかにSt/bEC−SbED符号である。前部のHにおける1バイト誤りによるシンドロームとHR−bを有する中間部における1バイト誤りによるシンドロームとは明らかに異なる。これはHの最上部にはb行b列の単位行列Iが存在するのに対し、HR−bを有する部分では最上部にb行b列の零行列0b×bが存在するためである。また、最後部の検査部における最初のバイトには最上部にb行b列の単位行列が存在するが、この部分における1バイト誤りによるシンドロームと、最上部に同様にb行b列の単位行列を有する前部Hにおける1バイト誤りによるシンドロームも、前者において残りのR−bビットのシンドロームがすべて零になることから両者明らかに異なる。数26に示されたH **で表される符号をここでは符号5とする。
【0061】
(6)符号6
前述の符号5で表されるマトリクス構成を前記符号3と同様にw回階段状に拡張していけば、下記の数29に示す符号長の優れた符号が得られ、これもSt/bEC−SbED符号である。ここで、検査長RはR ≧ wb+ rであり、wは1以上の整数である。この符号をここでは符号6とする。
【0062】
【数29】
Figure 0003879082
ここで、HR−(w−1)bは下記の数30に表される。
【数30】
Figure 0003879082
ここで、Iはb行b列の単位行列であり、H’はランクt以上のR−wb行b列の2元マトリクスであり、ωは2を底とするR-wb次のガロア体GF(2R−wb)の原始元であり、m’’=2R−wb−2となる。
【0063】
この構成の符号の最大長はN = Σb(2R−ib−1) + Rである。ここで、Σはi= 1からwまでの和である。この符号構成がSt/bEC−SbED符号の機能を有することは、前述した符号4および符号5の構成から容易に理解できる。
【0064】
なお、ここで、t=bとし、H’ のランクがbに等しいときに、数29に示すマトリクスで表される符号は、単一バイト誤り訂正符号、いわゆるSbEC符号に一致する。しかも、数29に示すように、階段状の構成を有するマトリクスで表される符号6においては、前記符号3と同様に、従来SbEC符号として最も優れている最大長符号(Maximal Code)に一致する。具体的にランクbを有するH’ は容易に求められ、H’ =Ib、すなわちb行b列の単位行列とすれば良く、このとき前述のMaximal Codeとなる。
【0065】
(7)符号7
前述の(4)から(6)に示すマトリクス構成を有する符号(符号4、符号5、及び符号6)において、バイト長bをさらに大きいブロック長であるBとみなすとき、すなわち、1ブロックはB/b個のバイトから構成されるとき、これらの符号は、ブロック内tビットの誤りを訂正し、且つ、bビット幅を有する1バイト中の任意の誤りを訂正し、また、Bビット幅を有する1ブロック中の任意の誤りを検出する機能を有する符号であるSt/BEC−SbEC−SBED符号となる。
【0066】
このSt/BEC−SbEC−SBED符号は、まず、前述した符号4、符号5及び符号6において、bをBに置き換えたSt/BEC−SBED符号にSbECの機能を加えた符号に等しい。ここでは、t<bの場合を考える。t≧bの場合に、St/BECの機能はSbECの機能を包含するからである。前述した符号マトリクスの構成において、下記の数31に示すように、H’はランクt以上を有するr行B列の次に示すマトリクスとする。
【0067】
【数31】
Figure 0003879082
ここで、B/b個のhはランクbを有するそれぞれ異なるr行b列の2元部分行列とし、また、i= 0、1、2、…、B/b−1とする。
【0068】
このとき、前述した符号4、符号5及び符号6のマトリクス H 、H 、H *** において、数31で定義したH’を与えた符号は、St/BEC−SbEC−SBED符号となる。それらの符号を符号7とする。
【0069】
つまり、符号7がブロック内t( < b)ビット誤りを訂正し、またブロックが複数個のバイト(bビットを有する)で構成されているときに、1バイトの誤りを訂正し、しかも、Bビットからなる1ブロック中の任意の誤りを検出する機能を有していることを示す。
【0070】
ここでは、一例として、符号6で示したマトリクス中H ***中の HR−zbを対象に証明する。このとき、zは0≦z≦ w−1である。今、ブロック中のtビットの誤りをet/Bとし、一方、ブロック中の任意の誤りをe、バイト中の任意の誤りをeとするとき、0≦i≠j≦ 2R− ( + ) −2 に対して、下記の数32及び数33が成立する。
【0071】
【数32】
Figure 0003879082
【数33】
Figure 0003879082
ここで、eB、et/BはBビットの2元行ベクトルである。また、0はB次の2元零行ベクトルであり、γはGF(2R− ( + ) )における原始元である。
【0072】
まず、数32の関係式は自明である。次に、数33の関係式において、等号が成立したと仮定する。このとき、et/BB = eB Bより、et/B = eBとなる。また、et/B・(γH’)T = eB・(γH’)Tにおいて、H’のランクはt以上であることからet/B・(γ H’)T≠0となり、よってi= j が成立し、これは矛盾である。よって、数33の関係式も成立する。数33の関係式には、ブロック中のtビット誤りによるシンドロームが他のブロックのブロック誤りによるシンドロームと異なることを意味すると共に、ブロック中のtビット誤りによるシンドロームが他のブロック中のtビット誤りによるシンドロームと異なることも意味していることに注意する必要がある。
【0073】
次に、異なるブロックにそれぞれ生じたバイト誤りとブロック誤りによるシンドロームが互いに異なることを示す必要がある。すなわち、下記の数34が成立することを示す必要がある。
【0074】
【数34】
Figure 0003879082
数34も前述と同様に、等号が成立したと仮定すると、まず、e・IB = eB ・IB より、e = eB が成り立つ。次に、e・(γ H’)T= eB ・(γ H’)Tが成立することになるが、H’を構成するhはそれぞれランクbを有することから、e・(γH’)T≠0となり、これからi=jが成立し、矛盾となる。よって、数34の関係も成立することになる。
【0075】
以上は、符号6で示したマトリクスH ***中のHR−zbを対象に述べてきたが、他の部分についても、まったく同様に示すことができることは容易に理解できる。以上から、符号7はSt/BEC-SbEC-SBED符号となる。
【0076】
以上のように、符号1から符号7までについて述べてきたが、以下、符号パラメータを与えて具体的に符号が構成できることを示す。
【0077】
まず、符号1の例として、符号パラメータとしてt=3、b=8のもとで構成してみよう。この符号は、読み書きデータ幅8ビットを有するメモリ素子を使用したメモリシステムに使用可能である。ここで、検査長RをR=11ビットを与えて構成してみる。これから、H#としては、ランク2t = 6を有する構成として、最小距離7を有する符号長b = 8の符号の検査行列の例として、下記の数35に示されるようなq = 7行の行列が構成できる。
【0078】
【数35】
Figure 0003879082
次に、H’としては、b =8列、R−b =4行を有し、ランクt=3を有する構成として、下記の数36に示す(8,4)SEC-DED(1ビット誤り訂正・2ビット誤り検出)符号の検査行列を使用する。
【0079】
【数36】
Figure 0003879082
SEC-DED符号の構成は多くの符号理論の本、例えば今井秀樹(著)「符号理論」コロナ社(1990年刊)に述べられている。ここで、αは3次の2元原始多項式p(x) = x+ x + 1に基づくGF(2)上の原始元であり、βは4次の2元原始多項式p(x) = x4 + x + 1に基づくGF(2)上の原始元である。また、符号1における検査行列中のγは4次の2元原始多項式p(x) = x4 + x + 1によるGF(2)上の原始元であり、βに一致する。このとき、準同形写像φ:GF(2)→GF(2)は、GF(2)上の任意のxに対しφ(x) = xにより与えられる。したがって、符号長N = 131ビット、情報長K = 120ビットの符号パラメータを有する(131,120)S3/8EC符号のパリティ検査行列は、図2に示すマトリクスにより与えられる。
【0080】
つまり、図2は、符号1の例として、符号長N = 131ビット、情報長K = 120ビット、検査長R = 10 ビット、バイト長b=8ビット、バイト内訂正ビット長t=3ビットの符号パラメータを有する(131,120)S3/8EC符号のパリティ検査行列である。
【0081】
このとき、バイト長として実用的な数値であるb=8のもとで、tを2から8まで変化させた場合の符号を示すことにしよう。これには、本符号の構成からわかるように、写像関数φ(x) = xを与え、それぞれのtに対応してrが決まり、それによるr行8列のH’を与えておけば、r= qとしてHとしても使用でき、基本的に任意の符号長を有するSt/8EC符号が構成できる。
【0082】
図3には、バイト長b=8ビットを有するSt/8EC符号およびSt/8EC−S8ED符号におけるt= 2から8に対する行列H’を示している。図3に示されるように、t= 2の場合は、ランク2の行列として1ビット誤り訂正の符号の検査行列を使用すればよいが、このときの符号長8ビットを満足するためには、検査長r= 4ビットを必要とするため、基本的にt=3の場合の上記H’と同一の構成となる。また、t= 8では、本符号の機能から単一バイト(バイト=8ビット)誤り訂正符号であるSEC符号となる。H’としてランクt=8を有する8行8列の単位行列を採用すれば、これは従来のSEC符号の構成に完全に一致する。
【0083】
次に、このSt/8EC符号において、これらのH’を使用して符号を構成したときに、実用的な情報長K=64ビットに対して検査長がどのくらい必要かをみてみよう。t=2の場合に検査ビット長Rは10ビット、t=3では11ビット、t=4では1ビットで、t=5、6、7では、1ビットで、t=8ビットでは、1ビットで実現できる。
【0084】
ただし、例えば、t=3のときに、検査長が11ビットでは情報長Kの最大は120ビットであるため、K=121ビット以上の場合にはこのH’を用いて符号が構成できない。そこで、さらに検査ビットを1ビット増加させ、R=12ビットとして構成することを考えなければならない。このとき、この基本のH’の最下位にすべて“0”の1行を加えた、下記の数37に示す5行8列のH’を用いる。
【0085】
【数37】
Figure 0003879082
このように、すべて“0”の行を追加してH’の行数rをR−bに一致させておけば、加算のもとでの準同形写像がφ(x) = xとすることができ、γH’が矛盾なく容易に構成できる。しかし、この修正したH’を使用しても、K=248ビットまでは、符号を構成することが可能であるが、これを越えるKに対しては構成できない。その場合には、同様にさらに1行すべて“0”の行を加えて新たなH’として、これを使用して符号を構成すればよい。このように、H’にすべて“0”の行を追加して符号の検査行列の行を増やしていけば、すなわち検査長を増加していけば、任意のKに対して符号が構成できる。これは、他のtに対してもまったく同様の議論が成立することは明らかである。
【0086】
一般的には、本発明に開示している符号の構成においては、このように、すべて“0”の行を追加し、r=R−bとすることにより、容易に符号を拡張できる。これは以下に示すSt/bEC-SbED符号の構成において用いるH’にも当然使用できる。
【0087】
次に、St/bEC-SbED符号に関し、いくつかの符号例を示す。符号4の例として、符号パラメータとしてt=3、b=8のもとで構成してみよう。ここで、検査長RをR=12ビットを与えて構成してみる。これから、H’としてはb = 8列、R−b = 4行を有しランクt = 3を有する構成として、数36に示した(8,4)SEC−DED(1ビット誤り訂正・2ビット誤り検出)符号の検査行列を使用する。これは図3におけるt=3の場合のH’に等しい。
【0088】
また、γは4次の2元原始多項式p(x) = x + x + 1によるGF(2)上の原始元でありβに一致する。このとき、準同形写像φ:GF(2)→GF(2)はGF(2)上の任意のxに対しφ(x) = x により与えられる。したがって、S3/8EC符号の検査行列は、下記の数38に示すマトリクスにより与えられる。
【0089】
【数38】
Figure 0003879082
ここで、i= 0,1,2,・・・,14 に対し、γH’= [ β βi+4 βi+8 βi+14 βi+10 βi+13 βi+12 βi+7 ] である。この符号は、符号長NはN=8×(2−1)+12=132ビットであり、情報長KはK=132−12=120ビットのパラメータを有する。
【0090】
図4は、符号4の例として、符号長N=76ビット、情報長K=64ビット、検査長R=12ビット、バイト長b=8ビット、バイト内訂正ビット長t=3ビットの符号パラメータを有する短縮(76、64)S3/8EC−S8ED符号のパリティ検査行列である。図4には、2元で表したこの符号の検査行列を示している。特に、この符号は、情報ビット数が64ビットとなるように前記数38に示す符号の検査行列を2元で表した情報長K=120ビットを有する行列から情報部の後半56列を削除したものである。したがって、この行列は8ビット入出力を有するメモリ素子を使用し64ビットの読み書き幅を有するメモリシステムに応用可能な実用性の高い(76,64)S3/8EC-S8ED符号の検査行列を表している。
【0091】
次に、検査行列が階段状の構成を有する符号5(符号6でw=2の構成を有する符号に等しい)の簡単な例として、t = 2, b = 3の場合を示そう。R = 8 とすると、下記の数39に示す2段構成の符号となり、H8 と H5 および I8(8行8列の単位行列)から構成される。
【0092】
【数39】
Figure 0003879082
ここで、H、Hは具体的に下記の数40及び数41に示すマトリクスである。
【0093】
【数40】
Figure 0003879082
【数41】
Figure 0003879082
ここで、γはGF(2)上の原始元であり、5次の2元原始多項式p(x) = x + x + 1の根で規定され、また、H’はランク2である符号長3を有する1ビット誤り訂正符号の検査行列を採用する。すなわち、例えば、下記の数42に示すように、相異なる2次の2元列ベクトルを3列並べる。
【0094】
【数42】
Figure 0003879082
ここで、αは原始多項式p(x) =x+x+ 1の根(原始元)であり、H’はこのべき乗を列ベクトル表現したものである。このとき、準同形写像関数φ: GF(2)→GF(2)より、具体的に、φ(α) =γ 、φ(α)=γ、φ(α)=φ(α+1)=φ(α)+φ(α)=γ18、したがって、例えば、γH’は下記の数43に示すようになる。
【数43】
Figure 0003879082
これは、前に述べた方法でも構成できる。すなわち、H’にすべて“0”の行を3行追加して修正したH’とし、これを新たなH’とすれば、数43で求めたγ0H’に一致する。
【0095】
次に、δはGF(2)上の原始元であり、p(x) =x+x+ 1で規定され、H#’は、同様にランク2を有する2行3列の行列として、1ビット誤り訂正符号の検査行列を使用し、下記の数44を得る。
【0096】
【数44】
Figure 0003879082
ここで、ρは同様に原始多項式p(x) =x+x+ 1の根であり、準同形写像φ: GF(2)→GF(2)より、φ(x) = xとし、H#’はこの元のべき乗要素を列ベクトル表現したものである。符号は2段階の構成例であり、符号長NはN = 3×(25 −1) + 3×(22−1) + 8 = 110 ビット、情報長KはK= 110−8 = 102ビット、および検査長RはR= 8 ビットである。この符号を2元情報で表した(110,102)S2/3EC−S3ED符号を図5に示す。
【0097】
つまり、図5は、符号5または符号6の例として、符号長N=110ビット、情報長K=102ビット、検査長R=8ビット、バイト長b=3ビット、バイト内訂正ビット長t=2ビットの符号パラメータを有するw=2段階構成の(110,102)S2/3EC−S3ED符号のパリティ検査行列である。
【0098】
次に、符号7の例として、t=3、b=4、B=8の符号パラメータを有するS3/8EC−S4EC−S8ED符号を示そう。実は、これは前述の符号6の例をそのまま使用すれば実現できる。すなわち、H’として前述の符号4の例と同じものを使用する。これは、下記の数45に示すように、それぞれ前半4ビットと後半4ビットの部分行列H0とHではそれぞれランクb = 4を満足しているためである。
【0099】
【数45】
Figure 0003879082
この性質は、図3で示したt = 2から8に対して示したそれぞれのH’においても、それぞれ前半4ビット、後半4ビットに分けてH、Hとすれば、成立する。これから、bをBに置き換え、B=8ビットとした場合に対して与えた図3のH’を使用して構成した符号は、自動的にSt/8EC−S4EC−S8ED符号となる。
【0100】
次に、符号化と復号の具体的方法とその回路を示そう。まず、符号化回路02は入力情報Dと符号マトリクス中の情報部であるHを用いて検査情報Cを生成する。検査情報Cの生成は、下記の数46により求めることができる。
【0101】
【数46】
Figure 0003879082
本発明に開示している符号のうち、S3/8EC−S8ED符号である符号4を例に明示することにする。符号4の検査行列は、前述のとおり基本的に、下記の数47に示す構成を有する。
【0102】
【数47】
Figure 0003879082
ここで、m=2−2である。符号化回路02は入力情報データ01よりc、c、・・・、cR −1のRビットの検査ビットを生成する回路である。
【0103】
具体的に、図4に示すGF(2)上で表現した符号化マトリクスを用いて検査情報を求めてみよう。たとえば、検査ビットcを求めるためには、マトリクス中のHの第1行目において“1”の存在する個所に対応する入力情報の排他的論理和(2を法とする和)をとっていけばよい。例えば、検査ビットcはd、d、d16、d24、d32、d40、d48、d56からなる8ビットの入力情報に対して2を法とする和を求めればよい。
【0104】
他の検査ビットも同様にして求めればよく、このための回路を図6に示す。つまり、図6は、図4に示す (76,64) S3/8EC−S8ED符号をもとに具体的に構成した符号化回路であり、K = 64ビットの入力情報Dから符号マトリクスにより12ビットの検査情報を生成する回路である。なお、図中の5は多入力パリティ検査回路である。この入力語Dに生成した検査情報Cを付加して、すなわち、[D|C]が送信語となる。
【0105】
次に、誤りが生じたときに、図4に示す符号を用いて具体的に訂正、検出できることを示す。図4において、検査行列の上段より得られるbビットのシンドロームをSIとし、下段より得られるrビットのシンドロームをSIIとする。Nビットから構成される受信語をVとするときに、シンドロームSは、下記の数48により求まる。
【0106】
【数48】
Figure 0003879082
ここで、SI ∈ GF(2)、SII ∈ GF(2) であり、SIはbビットの行ベクトルで、SIIはrビットの行ベクトルである。このとき、復号は次のように行われる。
【0107】
<1> SI =0、SII =0のとき:誤りなしと判定する。
【0108】
<2> SI =0、SII ≠0のとき:最後の検査バイトに誤りありと判定する。誤りパターンはSIIにより与えられ、これを用いて訂正する。
【0109】
<3> SI≠0、SII =0のとき:最初の検査バイトに誤りありと判定する。誤りパターンはSIにより与えられ、これを用いて訂正する。
【0110】
<4> SI≠0、SII≠0のとき:誤りパターンはSIにより与えられる。誤りの位置は、SI・[γH’]について、i= 0、1、 2、…、2−2のすべての情報部のバイトに対して独立に並列に計算し、SI・[γH’] = SIIの関係が成立するjバイト目に誤りがあると判定し(他のバイトではこの関係は成立しない)、誤りパターンSIを用いて訂正する。
【0111】
上記の復号方法は、符号4から符号6までに示したSt/bEC−SbED符号において適用できるだけではなく、符号1から符号3までのSt/bEC符号においても、また、bをBに置き換えた符号7であるSt/BEC−SbEC−SBED符号においても適用できる。すなわち、St/BEC−SbED−SBED符号において、上記の復号方法では、バイトをブロックとみなし、訂正可能なブロック中のtビット誤りだけではなく、バイト誤りもブロック中の誤りとみなし、誤りパターンを示すSを用いて(最後の検査バイトではSIIを用いて)訂正すればよい。
【0112】
次に、上記復号方法を用いて、受信語中の1バイトに生じた任意のtビットまでの誤りを訂正し、また1バイト中でtビットを越える誤りがあればすべて検出する具体的な復号回路04の構成を示す。この復号回路04の回路全体のブロック図を図7に示す。
【0113】
つまり、図7は、本発明で開示された機能を有する符号の復号回路のブロック回路である。図7において、1はシンドローム生成回路で、2はシンドロームデコード回路で、3は誤り検出回路で、4は反転回路で、Vは受信語で、Sはシンドロームで、Vは訂正後の受信語で、UCEは訂正不可能誤り検出信号である。
【0114】
図7に示されるように、Nビットからなる受信語Vが入力されると、まず、シンドローム生成回路1にて、RビットのシンドロームSを生成する。このシンドロームSは、シンドロームデコード回路2に入力し、具体的に誤りのビットを指摘するKビットのビット誤りポインター(e〜eK−1)を生成する。一方、シンドロームSとシンドロームデコード回路2において作成される┌N/b┐(┌x┐はxを越える最小の整数)本のバイト誤りポインタ(E、E、…、E┌N/b−1)は、誤り検出回路3に入力し、誤りが訂正可能であるか否かを判別し、訂正不可能な誤りであれば、検出してUCE(Uncorrectable Error)信号を出力する。このUCE信号が“1”であれば、訂正不可能な誤りを検出したことを示す。
【0115】
また、回路4は誤り反転回路であり、受信語中のKビットからなる情報ビットに対して、シンドロームデコード回路2から出力したKビットのビット誤りポインターを用いて、誤り訂正を行う回路である。この誤り反転回路4からは、誤り訂正された正しい情報語VとしてKビットの出力情報データ06が出力する。ここで、シンドロームデコード回路2、誤り検出回路3、反転回路4からなる回路を誤り訂正回路05と称する。
【0116】
各回路の構成を具体的に図4に示す符号4を用いて説明する。
【0117】
まず、シンドローム生成回路1は、N=76ビットからなる受信語Vを、下記の数49に示されるように表したときに、この受信語Vを入力して、下記の数50に示されるようなS0、S1、・・・、S11 からなるR=12ビットのシンドロームを生成する。
【0118】
【数49】
Figure 0003879082
【数50】
Figure 0003879082
検査行列の各列は入力する情報に対応しており、第0列は入力情報のdに対応し、また、検査行列の最後の単位行列は入力情報の検査部に対応し、この部分における最初の列は検査情報のcに対応する。各シンドロームビットは符号の検査行列において各行方向に“1”を有するビットに対応する受信情報をすべてGF(2)上で加算する。すなわち、対応する受信情報をすべて多入力パリティ検査回路5に入力する。
【0119】
このようにして各シンドロームビットを作成する回路を図8に示す。つまり、図8は、図4に示す (76,64) S3/8EC−S8ED符号をもとに具体的に構成したシンドローム生成回路1である。図中の5は多入力パリティ検査回路である。このシンドローム生成回路1の構成は、前に示した検査情報を生成した符号化回路02の構成とほぼ同様である。検査ビットの生成とシンドロームの生成の唯一の違いは、後者において、受信データ情報と受信検査情報から生成するのに対し、前者は入力データ情報のみから生成する点である。
【0120】
例えば、シンドロームビット9(S)を作成するには、検査行列の第9行目において、“1”の対応する受信情報d’、d’、d’、d’、d’、d’、d10’、d12’、d18’、d19’、d20’、d23’、d25’、d26’、d29’、d31’、d32’、d34’、d38’、d39’、d40’、d41’、d43’、d47’、d49’、d51’、d52’、d53’、d56’、d57’、d61’、d62’、c’からなる33ビットの入力情報(受信検査ビットc’を含む)に対して、2を法とする和を求めればよく、この33ビットの入力を多入力パリティ検査回路5に入力して求める。
【0121】
次に、シンドロームデコード回路2について説明する。
【0122】
このシンドロームデコード回路2は、大きく分けて、誤りがどのバイトに生じたかを示す「バイト誤りポインター生成回路」6(各バイトに対応して、それぞれ6−0、6−1、・・・、6−7、および6−p、6−pからなる)と、そのポインターからバイト内のどのビットが誤りかを指摘する「バイト内ビット誤りポインター生成回路」7(情報部のバイトに対応して7−0、7−1、・・・、7−7からなる)とからなる。
【0123】
バイト誤りポインター生成回路6は、検査部も含めてそれぞれのバイトごとに用意し、また、バイト内ビット誤りポインター生成回路7も、情報部の各バイトごとに用意する。これらの回路は並列に動作し、最終的にシンドロームデコード回路2において、K=64ビットのビット誤りポインターを出力する。符号として当然検査部の誤りも訂正できるが、一般に検査部の情報は復号回路の後において使用しないことから、ここでは検査部に誤りがあっても訂正せず、復号回路からは検査情報は出力しないこととする。
【0124】
図9は、図4に示す符号に対するシンドロームデコード回路2のブロック図である。図9において、6−0から6−7は情報バイト0から情報バイト7に対するバイト誤りポインター生成回路であり、6−p、6−pは検査バイト0と検査バイト1に対するそれぞれのバイト誤りポインター生成回路である。また、7−0から7−7は情報バイト0から情報バイト7に対するそれぞれのバイト内ビット誤りポインター生成回路である。SIはシンドロームSの上位8ビットで、SIIはシンドロームSの下位4ビットで、EからEはそれぞれのバイトに対するバイト誤りポインターで、E−p、E−pはそれぞれ検査バイト0、1に対するバイト誤りポインターで、EbからEbはそれぞれ情報バイト0から情報バイト7に対するバイト内ビット誤りポインターである。
【0125】
図9に示されるように、R=12ビットのシンドロームSは、バイト誤りポインター生成回路6全体に並列に入力し、一方、シンドロームSの内に8ビットからなるSIは、誤りパターンを表示することから、8個のバイト内ビット誤りポインター生成回路7に入力する。このとき、それぞれ相当するバイトのバイト誤りポインター生成回路6からの出力であるバイト誤りポインターもそれぞれのバイト内ビット誤りポインター生成回路7に入力する。
【0126】
次に、バイト誤りポインター生成回路6の具体的な回路構成の例を示そう。図10は、図4に示す符号に対する情報バイト1におけるバイト1誤りポインター生成回路6−1を示す。図中の8はNOR回路で、Eはバイト1誤りポインターである。入力のシンドロームSIとSIIから、下記の数51が成立するときに、バイト1誤りポインターE1が“1”となる。
【数51】
Figure 0003879082
具体的には、下記の数52、数53、数54及び数55に示す関係がすべて成立するときに、E1は“1”となる。
【0127】
【数52】
Figure 0003879082
【数53】
Figure 0003879082
【数54】
Figure 0003879082
【数55】
Figure 0003879082
ここで、上記数52、数53、数54及び数55にある、プラス記号を丸印で囲った記号は、2を法とする和(すなわちGF(2)上の和)を示し、上記左辺の和を多入力パリティ検査回路5に入力し、その出力と上記右辺のシンドロームビットとの2を法とする和をとり、この結果が“0”であれば、上記関係が成立することを示す。回路の構成として、上記関係は左辺と右辺のすべてを多入力パリティ検査回路5に入力することと同一である。さらに、この結果の4出力を回路8のNORゲートに入力することにより、上記関係がすべて成立するとき“1”の出力を与えるバイト1誤りポインターEとなる。他のバイト誤りポインター生成もまったく同一の考えで構成できる。
【0128】
次に、バイト内ビット誤りポインター生成回路7の構成について述べる。このバイト内ビット誤りポインター生成回路7は、情報バイト8バイトに対してそれぞれ同一の回路で構成でき、ここでは、例として、バイト1に対する回路7−1を図11に示す。つまり、図11は、図4に示す符号に対する情報バイト1のバイト1内ビット誤りポインター生成回路7−1である。なお、図中のe8からe15は情報バイト1内のビット8から15に対するそれぞれのビット誤りポインターである。
【0129】
図11に示されるように、バイト1の誤りを示すバイト1誤りポインターEを用い、さらにバイト中のどのビットが誤りであるかを示す誤りパターンは具体的にシンドロームS中の上位のSにより与えられることから、8ビットからなるSの各ビットとEとの論理積をとるANDゲート10をビット対応に8個設ければよい。このANDゲート10の出力が“1”であることは、具体的にバイト1中の当該ビットが誤りであることを示す。バイト1における回路の出力信号は、e、e、・・・、e15である。
【0130】
次に、誤り検出回路3について述べる。この誤り検出回路3は、入力情報V中にtビットを越えるバイト誤りを含む訂正不可能な誤り(Uncorrectable Error)を検出し、その出力信号であるUCE信号が“1”のとき、このような訂正不可能な誤りを検出したことを示す。このための論理は次のように考えればよい。
【0131】
すなわち、シンドロームが非零(すなわち、符号により訂正可能な誤りを含むなんらかの誤りを検出したことを示す)であり、且つ、回路6−0、6−1、・・・、6−pからのバイト誤りポインターがすべて“0”である(すなわち、すべてのバイトにおいて訂正できる誤りはないことを示す)ときに、訂正不可能な誤りが存在したとして検出する。
【0132】
この論理を構成した回路が図12である。つまり、図12は、図4に示す符号に対する誤り検出回路3である。なお、図中の9はOR回路で、10はAND回路である。図12に示されるように、誤り検出回路3は、12ビットのシンドロームが入力するORゲート9(シンドロームが非零であるときに“1”を出力)と、情報部の8本のバイト誤りポインターE、E、・・・、E及び検査部の2本のバイト誤りポインターEp0、Ep1の計10個のポインターが入力するNORゲート8(すべてのポインターが零のときに“1”を出力)と、ゲート回路9とゲート回路8の出力の論理積をとるANDゲート10とから構成される。このゲート回路10からの出力信号がUCE信号であり、“1”のときに、訂正不可能な誤りを検出したことを示す。
【0133】
次に、反転回路4の構成について述べる。この反転回路4は、具体的に誤りがあると指摘された入力ビットについてデータの反転を行い訂正する回路である。Kビットからなる情報部に対し各入力ビットに誤りが存在するか否かを示すビット誤りポインターは、バイト内ビット誤りポインター生成回路7において生成され、これを用いて反転回路4を構成すればよい。
【0134】
バイト1に対して具体的に構成した回路を図13に示す。つまり、図13は情報バイト1に対する反転回路4である。なお、図中の11は排他的論理和回路で、d からd 15は受信語中のバイト1の8入力ビットで、d から d 15はバイト1における各8ビットの訂正出力ビットである。
【0135】
すなわち、バイト1の入力ビットd’、d’、・・・、d15’のそれぞれに対し、対応するビット誤りポインターとの排他的論理和をとることにより構成できる。つまり、ビット誤りポインターが“1”のときに、入力データビットは反転され訂正される。なお、図13において、11は排他的論理和ゲートであり、バイト1に対してはこのゲート8個で構成できるが、すべての情報部入力K=64ビットに対してはK個のゲート11が必要になる。
【0136】
上述したように、本発明では、バイト中のtビットまでの誤りを訂正し、1バイトの誤りを検出する符号機能、等に対して一般性のある符号構成を与え、具体的に誤りの訂正・検出が実現できる回路である復号回路構成を示し、誤りが具体的に訂正・検出できることを示している。
【0137】
また、以上は、主としてメモリ装置に着目して本発明の適用を述べたが、本発明は、それに限定されるものではなく、例えば、このようなバイトやブロック等の物理的に独立した回路、モジュール、装置から構成される一般の情報通信システムまたは装置にも適用可能であり、また、バス線回路等の伝送回路や装置にも適用可能である。
【0138】
【発明の効果】
本発明に係るバイト誤り訂正・検出装置によれば、従来技術では存在しない、バイト中の2ビット、3ビット等のtビットまでの誤り(bビットまでの誤りではない)を訂正する符号機能(St/bEC)を与えることにより、従来と比較して、検査ビット数の少ないまた各種要求に柔軟に対応できる符号機能を提供できるという優れた効果を奏する。
【0139】
また、本発明で開示している符号は、さらに拡張した機能も併せ持っており、最近の高集積半導体メモリ素子を使用したメモリシステムに実用的である。すなわち、メモリ素子内の構成を見ると、通常その中はサブアレーに分割されており、これらは独立に構成され、また、実際の動作も独立である。そのため、ビット幅の大きい、たとえば16ビット幅のデータ読み書きを行うメモリ素子では、そのチップの中には、4ビットのサブアレーが4個で構成されている場合が多い。従って、このサブアレーからのビット幅を新たにバイト(例えば、4ビット)とし、さらに素子の読み書き幅をブロック(例えば、16ビット)とすると、本発明で開示しているSt/bEC-SbED機能を有する符号は、バイトをブロックに置き換えることにより、ブロック中の任意のtビットまでの誤りを訂正し、また1サブアレーの誤りであるbビットまでの誤りを訂正し、さらに大きなブロックまでの誤りを検出できるSt/BEC-SbEC-SBED機能を有する符号となることができる。
【0140】
さらに、本発明によれば、例えば、1バイト中の任意の2ビット(t=2)誤りを訂正し、さらにバイト中の3ビットより大きい任意の誤り、いわゆる1バイト誤りを検出するバイト内2ビット誤り訂正・1バイト誤り検出の機能(S / EC-SED)を有する符号は従来存在せず、このような要求に応えることができるという効果を奏する。さらに、tをbより小さい整数とするとき、t=bとする1バイト誤り訂正の機能を有する符号と比較して、より少ない符号検査ビット数で実現できることになり、経済的に誤り訂正・検出装置が実現できるという効果を奏する。
【図面の簡単な説明】
【図1】 本発明の概略構成を示すブロック図である。
【図2】 符号1の例として、符号長N =131ビット、情報長K =120ビット、検査長R =10ビット、バイト長b=8ビット、バイト内訂正ビット長t=3ビットの符号パラメータを有する(131,120)S3/8EC符号のパリティ検査行列を示す図である。
【図3】 バイト長b=8ビットを有するSt/8EC符号およびSt/8EC-SED符号におけるt=2から8に対する行列H’を示す図である。
【図4】 符号4の例として、符号長N=76ビット、情報長K=64ビット、検査長R=12ビット、バイト長b=8ビット、バイト内訂正ビット長t=3ビットの符号パラメータを有する短縮(76,64)S3/8EC−S8ED符号のパリティ検査行列を示す図である。
【図5】 符号5または符号6の例として、符号長N=110ビット、情報長K=102ビット、検査長R=8ビット、バイト長b=3ビット、バイト内訂正ビット長t=2ビットの符号パラメータを有する2段階構成の(110,102)S2/3EC−S3ED符号のパリティ検査行列を示す図である。
【図6】 図4に示す(76,64)S3/8EC−S8ED符号をもとに具体的に構成した符号化回路であり、K = 64ビットの入力情報Dから符号マトリクスにより12ビットの検査情報を生成する回路である。
【図7】 本発明で開示された機能を有する符号の復号回路のブロック回路である。
【図8】 図4に示す(76,64)S3/8EC−S8ED符号をもとに具体的に構成したシンドローム生成回路である。
【図9】 図4に示す(76,64)S3/8EC−S8ED符号に対するシンドロームデコード回路のブロック図である。
【図10】図4に示す符号に対する情報バイト1のバイト1誤りポインター生成回路である。
【図11】図4に示す符号に対する情報バイト1のバイト1内ビット誤りポインター生成回路である。
【図12】図4に示す符号に対する誤り検出回路である。
【図13】情報バイト1に対する反転回路である。
【符号の説明】
01 入力情報データ
02 符号化回路
03 通信路
04 復号回路
05 誤り訂正回路
06 出力情報データ
1 シンドローム生成回路
2 シンドロームデコード回路
3 誤り検出回路
4 反転回路
5 多入力パリティ検査回路
6 バイト誤りポインター生成回路
7 バイト内ビット誤りポインター生成回路
8 NOR回路
9 OR回路
10 AND回路
11 排他的論理和回路
C 検査情報
〜c11 検査情報ビット
D 入力情報
S、SI 、SII シンドローム
UCE 誤り検出出力
V 受信語
訂正された情報語

Claims (6)

  1. 符号化手段と復号手段とを備えるバイト誤り訂正・検出装置であって、
    前記符号化手段は、符号を表現するパリティ検査行列Hに基き、入力されたKビットの入力情報データからRビットの検査ビットを生成してから、前記検査ビットを前記入力情報データに付加して送信語として、情報伝送路に送出されるように構成され、
    前記情報伝送路を経て受信された前記送信語は、受信語Vとして前記復号手段に入力され、
    前記復号手段は、入力された前記受信語Vに前記パリティ検査行列Hの転置行列Hを乗算してRビットのシンドロームSを生成するシンドローム生成手段と、前記シンドロームSのパターンに基いて誤りの訂正を行う誤り訂正手段とを有し、
    誤りが訂正された情報Vは出力情報データとして出力され、また、前記符号により訂正できない誤りを検出した場合には、誤り検出出力としてUCE信号を出力し、
    前記パリティ検査行列Hは、前記入力情報データが、b(bは2以上の整数)ビットを1バイトとし、複数のバイトから構成される語である場合に、1バイト中の任意のt(tは1以上b以下の整数)ビット誤りを訂正する機能を有し、
    前記パリティ検査行列Hは、次のマトリクスH であり、
    Figure 0003879082
    ただし、I はR行R列の単位行列であり、H’はランクt以上のR−q行b列の2元マトリクスであり、H は2tおよびbのうちいずれか小さい方の値に等しいか大きいランクを有するq行b列の2元マトリクスであり、すなわちRank(H )≧min(2t、b)、また、 I はq行q列の単位行列であり、0 x×y はx行y列の零マトリクスであり、m=2 R−q −2、検査ビット数R≧q+rとする。q、rはそれぞれH 、H’のランクを満足させる条件から決まるH 、H’の行数であり、γは2を底とするR−q次のガロア体GF ( R−q ) の原始元であり、また、φは加算のもとでGF ( ) をGF ( R−q ) への準同形写像とするときに、次の式が成立し、
    Figure 0003879082
    ここで、iは0≦i≦mの範囲を有する整数であり、また、H’は、ランクt以上のr行b列の2元マトリクスであり、次の式に表されるように、r次の列ベクトルh ( 0≦j≦b−1 ) から構成される
    Figure 0003879082
    ようになっていることを特徴とするバイト誤り訂正・検出装置。
  2. 符号化手段と復号手段とを備えるバイト誤り訂正・検出装置であって、
    前記符号化手段は、符号を表現するパリティ検査行列Hに基き、入力されたKビットの入力情報データからRビットの検査ビットを生成してから、前記検査ビットを前記入力情報データに付加して送信語として、情報伝送路に送出されるように構成され、
    前記情報伝送路を経て受信された前記送信語は、受信語Vとして前記復号手段に入力され、
    前記復号手段は、入力された前記受信語Vに前記パリティ検査行列Hの転置行列Hを乗算してRビットのシンドロームSを生成するシンドローム生成手段と、前記シンドロームSのパターンに基いて誤りの訂正を行う誤り訂正手段とを有し、
    誤りが訂正された情報Vは出力情報データとして出力され、また、前記符号により訂正できない誤りを検出した場合には、誤り検出出力としてUCE信号を出力し、
    前記パリティ検査行列Hは、前記入力情報データが、b(bは2以上の整数)ビットを1バイトとし、複数のバイトから構成される語である場合に、1バイト中の任意のt(tは1以上b以下の整数)ビット誤りを訂正する機能を有し、
    前記パリティ検査行列Hは、次のマトリクスH *** であり、
    Figure 0003879082
    ただし、0 q×q はq行q列の零行列であり、I はR行R列の単位行列であり、H R−(w−1)q は次の式に表され、
    Figure 0003879082
    ここで、H はmin(2t、b)以上のランクを有するq行b列の2元マトリクスであり、H’ はランクt以上のR−wq行b列の2元マトリクスであり、ωは2を底とするR−wq次のガロア体GF ( R−wq ) の原始元であり、m’’=2 R−wq −2となり、q、rはそれぞれH 、H’ のランクを満足させる条件から決まるH 、H’ の行数であり、また、検査ビット数R≧wq+rであり、wは1以上の整数であるようになっていることを特徴とするバイト誤り訂正・検出装置。
  3. 符号化手段と復号手段とを備えるバイト誤り訂正・検出装置であって、
    前記符号化手段は、符号を表現するパリティ検査行列Hに基き、入力されたKビットの入力情報データからRビットの検査ビットを生成してから、前記検査ビットを前記入力情報データに付加して送信語として、情報伝送路に送出されるように構成され、
    前記情報伝送路を経て受信された前記送信語は、受信語Vとして前記復号手段に入力され、
    前記復号手段は、入力された前記受信語Vに前記パリティ検査行列Hの転置行列Hを乗算してRビットのシンドロームSを生成するシンドローム生成手段と、前記シンドロームSのパターンに基いて誤りの訂正を行う誤り訂正手段とを有し、
    誤りが訂正された情報Vは出力情報データとして出力され、また、前記符号により訂正できない誤りを検出した場合には、誤り検出出力としてUCE信号を出力し、
    前記パリティ検査行列Hは、前記入力情報データが、b(bは2以上の整数)ビットを1バイトとし、複数のバイトから構成される語である場合に、1バイト中の任意のt(tは1以上b以下の整数)ビット誤りを訂正し、更にtビットを越える1バイトの誤りであれば、これを完全に検出する機能を有し、
    前記パリティ検査行列Hは、次のマトリクスH であり、
    Figure 0003879082
    ただし、I はz行z列の単位行列であり、I はR行R列の単位行列であり、H’はランクt以上のR−b行b列の2元マトリクスであり、また0 x×y はx行y列の零マトリクスであり、m=2 R−b −2、検査ビット数R≧b+rとし、rはH’のランクを満足させる条件から決まるH’の行数であり、γはガロア体GF ( R−b ) の原始元であり、また、φは加算のもとでGF ( ) をGF ( R−b ) への準同形写像とするときに、次の式が成立し、
    Figure 0003879082
    ここで、iは0≦i≦mの範囲を有する整数であり、また、H’は、ランクt以上のr行b列の2元マトリクスであり、次の式に表されるように、 r 次の列ベクトルh ( 0≦j≦b−1 ) から構成される
    Figure 0003879082
    ようになっていることを特徴とするバイト誤り訂正・検出装置。
  4. 符号化手段と復号手段とを備えるバイト誤り訂正・検出装置であって、
    前記符号化手段は、符号を表現するパリティ検査行列Hに基き、入力されたKビットの入力情報データからRビットの検査ビットを生成してから、前記検査ビットを前記入力情報データに付加して送信語として、情報伝送路に送出されるように構成され、
    前記情報伝送路を経て受信された前記送信語は、受信語Vとして前記復号手段に入力され、
    前記復号手段は、入力された前記受信語Vに前記パリティ検査行列Hの転置行列Hを乗算してRビットのシンドロームSを生成するシンドローム生成手段と、前記シンドロームSのパターンに基いて誤りの訂正を行う誤り訂正手段とを有し、
    誤りが訂正された情報Vは出力情報データとして出力され、また、前記符号により訂正できない誤りを検出した場合には、誤り検出出力としてUCE信号を出力し、
    前記パリティ検査行列Hは、前記入力情報データが、b(bは2以上の整数)ビットを1バイトとし、複数のバイトから構成される語である場合に、1バイト中の任意のt(tは1以上b以下の整数)ビット誤りを訂正し、更にtビットを越える1バイトの誤りであれば、これを完全に検出する機能を有し、
    前記パリティ検査行列Hは、次のマトリクスH *** であり、
    Figure 0003879082
    ただし、0 b×b はb行b列の零行列であり、I はR行R列の単位行列であり、H R−(w−1)b は次の式に表され、
    Figure 0003879082
    ここで、I はb行b列の単位行列であり、H’ はランクt以上のR−wb行b列の2元マトリクスであり、ωは2を底とするR−wb次のガロア体GF ( R−wb ) の原始元であり、m’’=2 R−wb −2となり、また、検査ビット数R≧wb+rであり、rはH’ のランクを満足させる条件から決まるH’ の行数であり、wは1以上の整数であるようになっていることを特徴とするバイト誤り訂正・検出装置。
  5. 符号化手段と復号手段とを備えるバイト誤り訂正・検出装置であって、
    前記符号化手段は、符号を表現するパリティ検査行列Hに基き、入力されたKビットの入力情報データからRビットの検査ビットを生成してから、前記検査ビットを前記入力情報データに付加して送信語として、情報伝送路に送出されるように構成され、
    前記情報伝送路を経て受信された前記送信語は、受信語Vとして前記復号手段に入力され、
    前記復号手段は、入力された前記受信語Vに前記パリティ検査行列Hの転置行列Hを乗算してRビットのシンドロームSを生成するシンドローム生成手段と、前記シンドロームSのパターンに基いて誤りの訂正を行う誤り訂正手段とを有し、
    誤りが訂正された情報Vは出力情報データとして出力され、また、前記符号により訂正できない誤りを検出した場合には、誤り検出出力としてUCE信号を出力し、
    前記パリティ検査行列Hは、前記入力情報データが、b(bは2以上の整数)ビットを1バイトとし、複数のバイトから構成される語である場合に、複数バイトからなる長さB(Bはbの倍数)ビットを有する1ブロック中の任意のt(tは1以上b以下の整数)ビット誤りを訂正し、且つ、tビットを越える1バイトの誤りを訂正し、更に1バイトを越える1ブロックの誤りであれば、これを完全に検出する機能を有し、
    前記パリティ検査行列Hは、次のマトリクスH であり、
    Figure 0003879082
    ただし、I はz行z列の単位行列であり、I はR行R列の単位行列であり、H’はランクt以上のR−b行b列の2元マトリクスであり、また0 x×y はx行y列の零マト リクスであり、m=2 R−b −2、検査ビット数R≧b+rとし、rはH’のランクを満足させる条件から決まるH’の行数であり、γはガロア体GF ( R−b ) の原始元であり、また、φは加算のもとでGF ( ) をGF ( R−b ) への準同形写像とするときに、次の式が成立し、
    Figure 0003879082
    ここで、iは0≦i≦mの範囲を有する整数であり、
    また、H’は、次の式に示すように、ランクt以上を有するr行B列マトリクスであり、
    Figure 0003879082
    ここで、B/b個のh はランクbを有するそれぞれ異なるr行b列の2元部分行列とし、また、i=0、1、2、…、B/b−1とするようになっていることを特徴とするバイト誤り訂正・検出装置。
  6. 符号化手段と復号手段とを備えるバイト誤り訂正・検出装置であって、
    前記符号化手段は、符号を表現するパリティ検査行列Hに基き、入力されたKビットの入力情報データからRビットの検査ビットを生成してから、前記検査ビットを前記入力情報データに付加して送信語として、情報伝送路に送出されるように構成され、
    前記情報伝送路を経て受信された前記送信語は、受信語Vとして前記復号手段に入力され、
    前記復号手段は、入力された前記受信語Vに前記パリティ検査行列Hの転置行列Hを乗算してRビットのシンドロームSを生成するシンドローム生成手段と、前記シンドロームSのパターンに基いて誤りの訂正を行う誤り訂正手段とを有し、
    誤りが訂正された情報Vは出力情報データとして出力され、また、前記符号により訂正できない誤りを検出した場合には、誤り検出出力としてUCE信号を出力し、
    前記パリティ検査行列Hは、前記入力情報データが、b(bは2以上の整数)ビットを1バイトとし、複数のバイトから構成される語である場合に、複数バイトからなる長さB(Bはbの倍数)ビットを有する1ブロック中の任意のt(tは1以上b以下の整数)ビット誤りを訂正し、且つ、tビットを越える1バイトの誤りを訂正し、更に1バイトを越える1ブロックの誤りであれば、これを完全に検出する機能を有し、
    前記パリティ検査行列Hは、次のマトリクスH *** であり、
    Figure 0003879082
    ただし、0 b×b はb行b列の零行列であり、I はR行R列の単位行列であり、H −(w−1)b は次の式に表され、
    Figure 0003879082
    ここで、I はb行b列の単位行列であり、H’ はランクt以上のR−wb行b列の2元マトリクスであり、ωは2を底とするR−wb次のガロア体GF ( R−wb ) の原始元であり、m’’=2 R−wb −2となり、また、検査ビット数R≧wb+rであり、rはH’ のランクを満足させる条件から決まるH’ の行数であり、wは1以上の整数であり、
    また、H’は、次の式に示すように、ランクt以上を有するr行B列マトリクスであり、
    Figure 0003879082
    ここで、B/b個のh はランクbを有するそれぞれ異なるr行b列の2元部分行列とし、また、i=0、1、2、…、B/b−1とするようになっていることを特徴とするバイト誤り訂正・検出装置。
JP2002159714A 2002-05-31 2002-05-31 バイト誤り訂正・検出装置 Expired - Fee Related JP3879082B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002159714A JP3879082B2 (ja) 2002-05-31 2002-05-31 バイト誤り訂正・検出装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002159714A JP3879082B2 (ja) 2002-05-31 2002-05-31 バイト誤り訂正・検出装置

Publications (3)

Publication Number Publication Date
JP2004007217A JP2004007217A (ja) 2004-01-08
JP2004007217A5 JP2004007217A5 (ja) 2005-08-11
JP3879082B2 true JP3879082B2 (ja) 2007-02-07

Family

ID=30429382

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002159714A Expired - Fee Related JP3879082B2 (ja) 2002-05-31 2002-05-31 バイト誤り訂正・検出装置

Country Status (1)

Country Link
JP (1) JP3879082B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7228490B2 (en) * 2004-02-19 2007-06-05 Quantum Corporation Error correction decoder using cells with partial syndrome generation
JP4036338B2 (ja) * 2005-03-04 2008-01-23 国立大学法人東京工業大学 誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置
JP2010128464A (ja) 2008-12-01 2010-06-10 Az Electronic Materials Kk レジストパターン形成方法

Also Published As

Publication number Publication date
JP2004007217A (ja) 2004-01-08

Similar Documents

Publication Publication Date Title
JP4036338B2 (ja) 誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置
US8806295B2 (en) Mis-correction and no-correction rates for error control
US7996748B2 (en) ECC for single 4-bits symbol correction of 32 symbols words with 22 maximum row weight matrix
JP2000307435A (ja) 符号化回路、回路、パリティ生成方法及び記憶媒体
Tambatkar et al. Error detection and correction in semiconductor memories using 3D parity check code with hamming code
US20210218419A1 (en) Method, device and apparatus for storing data, computer readable storage medium
Chen Error-correcting codes with byte error-detection capability
JP2589957B2 (ja) 単一サブブロック・エラーと単一ビット・エラー検出のための符号化方法及びメモリ・システム
US7093183B2 (en) Symbol level error correction codes which protect against memory chip and bus line failures
Umanesan et al. A class of random multiple bits in a byte error correcting and single byte error detecting (S/sub t/b/EC-S/sub b/ED) codes
Silva et al. Extended matrix region selection code: An ECC for adjacent multiple cell upset in memory arrays
US8239737B2 (en) Data line storage and transmission utilizing both error correcting code and synchronization information
JP3879082B2 (ja) バイト誤り訂正・検出装置
Tripathi et al. FPGA based low area multi-bit adjacent error correcting codec for SRAM application
JP3743915B2 (ja) スポッティバイト誤り訂正・検出方法及び装置
Tripathi et al. Design and evaluation of neale-based multi-bit adjacent error-correcting codec for sram
Rao et al. Encoder and adaptive decoder for a (15, 6, 2) DEC-TED BCH code
Shahariar Parvez et al. Design and implementation of hamming encoder and decoder over FPGA
Sim et al. Design of Two Interleaved Error Detection and Corrections Using Hsiao Code and CRC
Maity et al. New compact SEC-DED-DAEC code for memory applications
JP2006060465A (ja) スポッティバイト誤り訂正・検出方法及び装置
JP2006101429A (ja) バイト内複数スポッティバイト誤り訂正・検出方法及び装置
Maity et al. FPGA-based low delay adjacent triple-bit error correcting codec
US11892906B2 (en) Method for memory storage and access
US20230370092A1 (en) Error Correction With Fast Syndrome Calculation

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050127

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060606

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060626

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060801

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060915

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: 20061017

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061026

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20091117

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20091117

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20091117

Year of fee payment: 3

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D03

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

Free format text: PAYMENT UNTIL: 20091117

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20101117

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees