JPH01293015A - 誤り訂正用検査記号生成装置 - Google Patents

誤り訂正用検査記号生成装置

Info

Publication number
JPH01293015A
JPH01293015A JP1038534A JP3853489A JPH01293015A JP H01293015 A JPH01293015 A JP H01293015A JP 1038534 A JP1038534 A JP 1038534A JP 3853489 A JP3853489 A JP 3853489A JP H01293015 A JPH01293015 A JP H01293015A
Authority
JP
Japan
Prior art keywords
block
characters
syndrome
symbols
data
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.)
Pending
Application number
JP1038534A
Other languages
English (en)
Inventor
Marlin C Nielson
マーリン・クレイグ・ニイールソン
Kenneth R Woodruff
ケニス・アール・ウツドラフ
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH01293015A publication Critical patent/JPH01293015A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • 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
    • 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
    • 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/27Coding, 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 using interleaving techniques

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は、誤りを含むデータの受信または検索に使用さ
れる誤り訂正コードのコード化及び復号に関する。具体
的には、本発明は、バースト・エラーの検出及び訂正用
の巡回コードに関する。より具体的には、本発明は、プ
ログラマブル・パラメータを含むインターリーブされた
リード・ソロモン・コードを処理するためのハードウェ
ア・システムである。同時検査記号出力により検査記号
生成を実行し、同時シンドローム取出しによりシンドロ
ーム生成を実行する装置が提供される。
B、従来技術及び発明が解決しようとする問題点数は、
データ値を表わす係数によるXのべきで表わされるベク
トルで表わすことができ、それらの係数を本明細書では
記号と呼ぶ。すなわち、Xはべき係数表記法の基数を表
わす。記号が単一の2進数、0または1で表わされる場
合、記号はビットと呼ばれる。(100101)などの
2進ベクトルは、ベクトル表記法ではX*5+X*2+
 1で表わされる。こうして表わされるXのべき係数は
、1の値をもつ2進数表記法でのべきの位を示す。(文
字*は累乗演算を表わす。) ビット用の誤り訂正コードの一般的なりラスは、記号が
複数のビットから構成され、いくっがの選択された組合
せだけが使用されるという、ハミング・コードである。
記号のビットはパリティとデータの両方を表わす。1つ
の例は、以下のように配列された8ビツト、すなわち、
4つのパリティ・ビット及び4つのデータ・ビットのベ
クトルである。
PD  Pi  Di  P2  P3  D2  D
3  D4ただし、Pはパリティ・ビットで、Dはデー
タ・ビットである。PDパリティ・ビットは、訂正不能
な2重パリティ・エラーを検出するのに使用される。P
l、P2またはP3がパリティ・エラーを示し、P、D
がそうでない場合、訂正不能エラーがある。パリティ・
ビットP1は、ビットPD。
Pi、DlびP2のパリティ検査ビットである。
パリティ・ビットP2は、ビットPD1 Pi、P3、
D2のパリティ検査ビットで、パリティ・ビットP3は
、ビットP1、P2、D2、D4のパリティ検査ビット
である。例として、受け取ったビットD2が誤っていた
と仮定する。ビットPD1P2、P3に関するパリティ
検査ビットでパリティ・エラーが示されるが、Plによ
るパリティ検査はエラーがあることを示さない。パリテ
ィ検査ピッ)P2及びP3に加えてP’Dパリティ検査
もエラーを示すので、2重エラーはない。パリティ検査
ピッ)Pi、P2、P3は、011と書くことができる
。ただし、1はパリティ検査エラーを示す。ピッ)D2
は第3ビツト、ビットD4は第1ビツト、D3は第2ビ
ツトと右から左に以下同様に続くので、011(2進3
)は、D2が誤っており、反転するとその正しい値にな
ることを示す。
ビット数が増加するにつれて、ハミング・コードの上述
の例に基づくパリティ検査は複雑になる。
バイト(8ピツト・データ記号)が並列に送られるシス
テムでは、誤り検査に必要なシステムはより複雑になる
誤り訂正ブロック・コードは、3つの主なサブクラスに
分けられる。第1のサブクラスは線形ブロック・コード
である。1コード・ワード当たりにビットの場合、2*
に個の別々の独自のコード・ワードが可能である。すべ
てのコード・ワードの集合はコード・ブロックと呼ばれ
る。各コード・ワードは、kビットより多くのビットを
もつより大きなコード・ワードにコード化される。コー
ド・ワードはコード・ベクトルとも呼ばれ、コード・ブ
ロックが、互いに1を超える距離だけ離れたコード・ワ
ードから構成されるように選択される。距離1とは、コ
ード・ワード内の任意のビットが変化でき、その結果が
コード・ブロック内の別のコード・ワードになることを
意味する。距離2に選択されたコード・ワードは、1つ
のビット位置が誤っているか、依然として所期のワード
であると認識される。距離2は、いずれかのビットが誤
っている可能性があり、コード・ワードがブロック内の
他のコードにならないことを意味する。
ブロック・コードの第2のサブクラスは、たたみ込みコ
ードと呼ばれる。線形ブロック・コードはコード化され
るデータにしか依存しないが、たたみ込みコードは、さ
らに先行するコード化されたブロックにも依有する。
第3のサブクラスは、巡回コードであり、シフト・レジ
スタ、排他的ORゲート及び帰還接続を用いて簡単に実
施できるという利点をもつ。巡回コードは、基礎的代数
構造に基づいているため、分析が容易であり符号器と復
号器の設計が楽になる。巡回コードは、ランダム・エラ
ー及びバースト・エラーの訂正に使用できる。巡回コー
ドは、最も普及しており最も役にたつものと考えられて
いる。
非常に効率のよいことが実証済みの巡回コードは、発見
者のポーズ(Bose) 、チャウダリ−(Chaud
hari )及びホッケンゲム(夏(ocquengh
em )にちなんで名付けられたBCHコードである。
以下の説明は、BCHコードの基礎となっている代数に
ついての基礎知識として示したものである。
BCHフードの1つはリード・ソロモン・コードと呼ば
れる。
巡回コードは、原始データの記号に生成多項式を掛は合
わせ、受け取ったワードを同じ多項式で割ることによっ
て作成される。多項式はコード・ベクトルである。除算
の剰余がゼロの場合、受け取った宛先データのワードは
エラーを含んでない。
剰余がゼロでない場合は、エラーが発生しており、その
剰余を使ってエラーを訂正できる場合がある。
原始データが修正なしに送られている場合、原始データ
の後ろに生成多項式との積が付加される。
こうした特殊記号は検査記号と呼ばれる。宛先データを
生成多項式で割った結果生じる剰余記号はシンドローム
と呼ばれる。シンドロームがゼロの値の場合、原始デー
タと宛先データの間にエラーは発生していない。
コードはしばしば(nl k)コードと記される。
ただしnはブロック内の記号またはコード・ワードの数
を示し、kはデータ記号の数を示す。残りのn−に個の
記号はパリティ記号と呼ばれる。その因数がX*n+l
で次数がn−にである多項式が生成多項式である。n=
7及びに=3の場合、X*4+X*2+X+ 1が(7
,3)コードの生成多項式である。
2*m個の記号をもつガロワ拡大体は、GF(2*m)
で示され、リード・ソロモン・コードの記号として使用
できる。一般に、2つの記号(通常0と1)及びm次多
項式p (X)がある。
m=4の場合、2*m  1個の記号がすべて異なるよ
うに、p (X)が選ばれる。したがって、p(X)=
X*4+X+ 1 かつ1)(a)=Oなので、 p(a)=a*4+a+1 または a*4=a+1 したがって、拡大体は以下の文字で表わされる。
a*2 a*3 a*4=a+1 a*5=a (a+1)=a*2+a a*6=a (a*2+a)=a*3+a*2a*7=
a  (a*3+a*2)=a*3+a+1a*8=a
*2+ 1 a*9=a*3+a a*10=a*2+a+1 a*1 1=a*3+a*2+1 a*12=a*3+a*2+a+1 a*13=a*3+a*2+1 a*14=a*3+1 a* 15= 1 すなわち、以前の記号に1 モジュロ−a*4を掛は合
わせ、a*4にa+1を代入することによって次々に各
記号が得られる。
qが素数、たとえば2の累乗の場合、q個の記号をもつ
アルファベットはコードを形成できる。
gとhが正の整数の場合、最萬2gh個のパリティ検査
ビットを使って少なくともh個のエラーの任意の組合せ
を訂正する長さn:Q*g−1の9次コードがある。g
=tの場合、そのコードはり−ド・ソロモン・コードと
呼ばれ、ペクトλしのブロック長はm=q−1であり、
2h個のパリティ・ビットが必要である。訂正可能な記
号間の最小距離は2h+1である。
q=1及びn=2*m−1とすると、生成多項式は、次
のようになる。
g(X)= (X+a)(X+a*2)、、、(X+a
*2h)送信されたベクトルまたは原始ベクトルは次式
で表わされる。
5(X) =s(0) +5(1)X +5(2)C2
+00.+ 5(n−1)X*(n−1)受゛信された
ベクトルまたは宛先ベクトルは次式で表わされる。
D(X) =d(0) +d(1)X +d(2)C2
+、、、÷d(n−1)x:(n−1)エラー・ベクト
ルは、宛先ベクトルと原始ベクトルの差である。すなわ
ち、 E(X) = D(X) −5(X) =e(0) +e(1)X +e(2)X:2−、、、
+e(n−1)C(n−1)次式で示す位置でのエラー
の数がhより大きくないfによって与えられる場合、誤
り訂正は、エラー位置kiとエラー値e(ki)の決定
に依有する。
E(X) =e(kl)X:(kl) +e(k2)C
(k2) +、、、+ e(kf)X:(kf)例とし
て、h=3及びm=4とすると、生成多項式は次のよう
になる。
g(X) =(X+a) (X+a:2) (X+a:
3) (X+a:4) (X+a:5) (X+a:6
)または g(X) =a零4 + a:10 X + a*3 
X:2 + a:9 X:3 + a:9 C4+a*
3 xis◆x:6 原始ベクトルをすべてゼロにし、宛先ベクトルを次式の
ように置くと、 000aネ700a * 300000aネ400した
がって、 D(X) =aニア C3◆a:3 x:e + a:
4 X:12になる。
シンドローム成分S(i、)(ただし、i=1.216
10.6)は、D(a*i)によって計算され、D(X
)のXにa*iを代入する。すなわち、S (1)=a
*12、S (2)=1、S (3)=a*14、S 
(4)=a*10、S (5)=O1S (8)=a*
12である。5(1)の値は、次のようにして求めた。
5(1) :D(a) = a*7 a*3 + a*
3 a:6 + a:4 a:12=a掌10◆a*9
÷a*16 ただし、a*1Bはlであり、m=4の場合に上記の文
字を用いると、次式のようになる。
5(1) = a:2 + a + 1 + a:3 
+ a + a” a:3 + a:2◆a◆1 =a*12 他のシンドローム成分は、1のべき級数を使って同様に
求める。
すべてがゼロの場合、シンドロームはエラーを示さない
。すべてがゼロではない場合、そのシンドロームを使っ
てエラーまたはエラー・バーストを訂正することができ
る。上記のシンドロームから計算したエラー多項式は、
次式のようになることが分かる。
E(X) = aニア C3+ a:3 C6+ a*
4 C12宛先ベクトルから差し引くと、原始ベクトル
として選んだ全ゼロ・ベクトルが残る。この件の詳しい
情報は、シュー・リン(Shu Lin)  r誤り訂
正コード入門(An Introduction to
 Error−CorrectingCode)」、プ
レンティス・ホール社刊、1970年、及び引用により
本明細書に組み込まれる米国特許第4142174号明
細書に引用されている参考文献を参照されたい。
データ文字中の記号の数が増加するにつれて、コード化
及び復号処理が複雑になり時間がかかるようになる。た
とえば、8ビツト・バイト、すなわち、GF (2*8
)では、256個の記号がある。1バイト幅の並列動作
を行なう場合でも、処理は遅すぎて、リアル・タイムの
データ検索についていけない。若干の並列処理方式が、
IBMテクニカル・ディスクロージャ・プルテン、Vo
l。
21、No、3.1978年8月、pp、tos7−1
090、及びVOl、9、No、5.1986年10月
、り1)、2141−2145に記載されている。
本発明は、原始データ及び宛先データを、それを組み込
んだシステムの性能が低下しないような速度で処理する
ことを対象とする。この装置は、マイクロプロセッサ・
システムに含まれる集積回路に組み込むのに適している
。この装置は、バイト幅のガロワ拡大体演算処理を組み
込んでいるが、エラーを訂正するためのシンドロームの
処理は、本発明の装置を制御するプロセッサに委ねる。
C1問題点を解決するための手段 本発明によると、ブロック内の連続する各文字を受信し
、あるブロックのすべての文字が処理されるまで連続す
る文字を処理して検査記号を累積することによって、複
数ビット文字をもつメツセージ・ブロック用の検査記害
が生成される。次に、次のブロックの検査記号の生成中
に、生成済の検査記号を前のブロックに連結する。同様
に、受信した文字を処理し、検査記号を組み込み、受信
した連続する各文字からの部分シンドロームを累積する
ことによって、シンドロームが生成される。
シンドロームが非ゼロ値の場合、次のブロックからシン
ドロームを生成中に、あるブロックからのシンドローム
がシステムから抽出できる。
D、実施例 以下の説明では、図面のバス線は、特に明記されていな
い場合、8本の導線を表わす。マルチプレクサ(MUX
)は、それぞれ2本または4本の入力線と1本または2
本の制御入力線をもつ。2人カマルチプレクサでは、制
御信号(K n)が2進ゼロである場合、A入力信号が
出力線にゲートされ、制御信号が2進1の場合、B入力
信号が出力線にゲートされる。4人カマルチプレクサで
は、両方の制御信号(KnとKn+1)が2進ゼロであ
る場合、A入力信号が出力線にゲートされ、制御信号が
それぞれ2進ゼロ及び2進1の場合は、B入力信号が、
制御信号がそれぞれ2進1及び2進ゼロの場合は、C入
力信号が、両方の制御信号が2進1の場合は、D入力信
号が、出力線にゲートされる。レジスタ及びメモリは、
制御信号線を備えているが、それらは分かりやすくする
ために図示していない。
第2図の構成図は、本発明が使用できるシステムの主要
部分を示す。データ・ソース101は、チャネル103
を介して受信装置105のデータ・メモリ117にデー
タを送信する。受信装置105は、データ・メモリ11
7及び中央演算処理装置119と共にコンピュータ・シ
ステムを構成する。チャネル103からのデータは、中
央演算処理装置119の一介人を必要としない直接メモ
リ・アクセス(DMA)手段を介してコンピュータ・シ
ステム105のデータ・メモリ117に記憶できる。D
MAシステムは、当分野では周知であり、本発明を理解
するためにこれ以上の説明は不要である。
チャネル103は、第2図ではブロックで表わされてい
るが、実際にはソースと宛先の間の経路中にある信号に
影響を及ぼすパラメータの分散集合である。重要な主な
パラメータは、ノイズ、SZN比及び帯域幅である。こ
れらのパラメータは、データ・ソース101から送信さ
れたデータを歪めるので、データ・メモリ117中で受
信されたデータは送信された同じデータと必ずしも同じ
にはならない。送信データと受信データの違いが、チャ
ネルによって導入されたエラーである。データ・ベクト
ル及びエラー・ベクトルは経時的に変化する。チャネル
103は、データの記録及び検索時に記録装置の挙動を
支配する特性をも表わす。
ワード・チャネルとは、データ値を歪めたり変えたりし
やすい、データ信号に施される処理を意味する。
ソース側では、検査記号生成機構107が、SBデータ
・バスを介してチャネル103上を送られた各メツセー
ジ・バイトを受け取り、メツセージ・バイトの送信中に
記憶装置109に一時的記憶される1組の検査記号を計
算する。あるブロックのすべてのメツセージ・バイトが
送られた後、得られた検査記号がメツセージ・バイトに
連結され、チャネルを介して送られる。
メツセージ・ボックスのサイズは制限されているので、
通常は数ブロックが順次送られる。ソースから送られた
各ブロックごとに、別々の各組の検査記号が生成される
チャネルの宛先側では、SBデータ・バスを介して受け
取ったメツセージ・バイトと検査記号が、シンドローム
生成機構111によって処理される。
バイトと検査記号が宛先で受信中、シンドロームは一時
的に記憶装置115に記憶される。シンドロームの生成
は、検査記号の生成と逆の処理である。ブロックが受信
されると、すべてのシンドロームがゼロかどうかを示す
シンドロームの要約が直ちに中央演算処理装置119で
利用できる。シンドロームがすべてゼロの場合、受け取
ったバイトは正しい。ゼロでないシンドロームがある場
合、少なくとも1つのエラーが発生した。
エラーを訂正するため、または誤りが訂正できないと判
定するため、シンドロームが、CPババス介して中央演
算処理装置119にダウンロードされ、エラーの位置と
訂正を確認するための計算が行なわれる。以下の詳細な
説明で指摘するように、中央演算処理装置119による
シンドロームの取出しは、次のデータ・ブロックに対す
るシンドロームの生成と同時に実行できる。
エラーはバーストまたはグループの形で発生しやすいの
で、チャネル特性によっては、コード構造の訂正機能を
超えた数のエラーが生成することがある。たとえば、デ
ータ伝送では、雷などによるチャネル・ノイズが、複数
バイトにまたがってその伝送を歪めることがある。記憶
媒体上では、欠陥のために、クラスタの形で多くのエラ
ーが生じることがある。局在的なエラーの原因の効果を
抑えるため、検査記号をデータ・メツセージ・バイトと
インターリーブさせて、各検査記号が不連続なバイトを
カバーするようにさせる。各検査記号(または記号の組
)がi番目ごとのバイトをカバーする場合、そのブロッ
クはi個の検査記号(または組)を含む。iはインター
リーフ係数と呼ばれる。
第1表は、検査記号を含むメツセージまたはバイト・ス
トリーム中でのバイトのインターリーブ処理を示す。第
1表の例のインターリーフ係数は8である。各インター
リーフごとに、4つの検査記号があり、4はブロックの
幅係数である。このバイト・ストリームは、0からn−
1までのn個のバイトを含む。第1組の検査記号、Ro
o、R101R20、R30は、バイト0.8.16.
21L 、、、、8 it 、、、、n−8と一緒に使
用される。第2組の検査記号は、パイ) L 91..
0.81+11100、n−7と関連している。インタ
ーリーフ係数及び幅係数は、本発明では選択でき事前設
定できる。
以下の詳細な説明から明らかになるように、検査記号記
憶装置109を備えた検査記号生成機構107は、シン
ドローム生成機構111及びシンドローム記憶装置11
5と同じ装置である。すなわち、本発明による装置は、
ソース側でも宛先側でも使用される。検査記号生成(コ
ード化)の動作の順序は、シンドローム生成(復号)と
は違っているが、装置は同じである。
本発明の好ましい実施例を、第1図に示す。論理装置を
接続する線は、特に明記されてない限り8本の導線から
なるパスを表わす。マルチプレクサを制御する制御信号
に1ないしに12と、レジスタ(図示せず)へのロード
及びゲート制御信号は、適切にプログラミングされたマ
イクロプロセッサやシーケンシャル装置などの制御装置
から供給される。制御装置は図示しないが、その動作に
ついては、当事者ならこうした制御装置を作成すること
ができるように十分に説明する。
入力データ・レジスタ201は、メツセージ・バイト・
ストリームを構成する連続するバイトを記憶する。K1
信号によって制御されるマルチプレクサ203は、Kl
信号の値が論理1のとき、入力データ・レジスタ201
からの出力信号をアキュムレータ205に供給する。K
1が論理ゼロのときは、8つの排他的OR(XOR)ゲ
ート209からの出力信号がアキュムレータ205に供
給される。
アキュムレータ205からの出力信号は、2つの4人カ
マルチプレクサ207と213に供給される。K2及び
に3信号がそれぞれ論理ゼロ及び1のとき、アキュムレ
ータ205からの出力信号は、排他的ORゲート209
に到る1組の入力端子に供給される。K6及びに7信号
がぞれぞれ論理ゼロ及び1のとき、アキュムレータ20
5からの出力信号は、組合せゲート217を介して読取
り専用メモリ219のアドレス・レジスタ(RAR)の
一部の入力端子、に供給される。ROMアドレスの一部
は、幅、すなわち検査記号のプログラミングされた数と
2つの高次選択ビットとを含む幅カウンタ(W  CT
R)によって供給される。
コード化側にある検査記号と復号側にあるシンドローム
の計算は、ガロワ演算を用いて実行される。加算及び乗
算はモジュロ−2*mであり、バイトの場合は、モジュ
ロ−255である。すなわち、和または積が255より
大きい場合、それを255で割ったときの剰余が用いら
れる。単一ビットの加算は、排他的ORによって表わさ
れ、乗算は論理積によって表わされる。ガロワ加算は排
他的OR論理演算によって実行されるが、乗算はより複
雑になる。本発明では、読取り専用メモリ(ROM)2
19を使って乗算を実行する。ROM219への入力ア
ドレスは、乗算されるバイト、幅カウンタ215から供
給される5ビツト、及び高次選択ビットである。その位
置のデータは、入力バイトと、シフト・レジスタの帰還
経路で使用される関数バイトのガロワ8ビット積である
第2表及び第3表は、第1図に示す装置の動作シーケン
スを示す表である。第2表は、ソース側のコード化段階
の動作シーケンスであり、第3表は宛先側のシンドロー
ム計算及びシンドローム取出しの動作シーケンスである
。行は、マルチプレクサ信号(Kn)に当り、1は論理
1信号、0は論理ゼロ信号で、マルチプレクサへの入力
信号のゲート処理を制御する。他の行は以下に示すよう
に第1図のレジスタへの信号である。
ACCアキュムレータ205 ADHアドレス・レジスタ237 CADH制御アドレス CK    CKOUTレジスタ229DATRデータ
・レジスタ211 DIN   入力データ・レジスタ2011CTRIカ
ウンタ225 INIT  初期化レジスタ221 MEMI  第1ランダム・アクセス・メモリMEM2
  第2ランダム・アクセス・メモリROM   読取
り専用メモリ219 55M   シンドローム要約レジスタ22TWCTR
幅カウンタ215 レジスタに供給される信号はLとGで、Lはレジスタが
その入力端子からロードされることを示し、Gはレジス
タ内容がその出力端子ヘゲートされることを示す。文字
Uはシンドローム要約を表わし、内容が更新されること
を示す。メモリでは、Rはメモリの内容がアドレスされ
た位置から読み出されることを示し、Wは入力データが
アドレスされた位置に書き込まれることを示す。制御ア
ドレスでは、alは、そのアドレスが中央演算処理装置
から供給されたとき活動状態にあることを示す。表に項
目がない場合、信号がないことまたは「どうでもよい」
信号であることを示す。
レジスタ上のゲート信号端子とロード信号端子は、分か
りやすくするため図示していない。制御信号は、中央演
算処理装置またはシーケンシャル・マシンなど個別制御
装置から供給できる。制御装置の作成は、第2表及び第
3表の動作シーケンス表があれば当業者なら十分に可能
である。
必要な第1の動作は、送信または記憶すべきデータをコ
ード化することである。以下にコード化動作を実行する
第1図の回路の動作シーケンスを示す。各ステップを第
2表に要約して示す。コード化動作は、第1表に示すよ
うに情報のブロックを介して行なわれる。データ・メツ
セージ中にはNバイトあり、図のブロック内の検査記号
には32バイトある。その幅は、第1図のシステムでプ
ログラミング可能であり、第2図にブロック107と1
09で示す機能を実行し、この例では4に設定される。
4個の検査記号からなる各組は、第1表のメツセージ・
バイトの列と関連づけられている。検査記号バイトRO
O,RIO1R20,R30は、メツセージ・バイト0
18.161010、N−8と関連づけられ、それらを
用いて計算される。インターリーフ係数とは、検査記号
の組の数である。
インターリーフ係数もプログラミング可能である。
本発明の他のプログラミング可能な態様は、初期文字ま
たはバイトである。これは可能な256個の8ビツト・
バイトのどれでもよいが、通常はすべてゼロまたはすべ
て1として選択される。初期文字の唯一の要件は、シン
ドロームが正確に計算できるように宛先側とソース側で
同じになるようにすることである。
検査記号RXO(X=0.1.2.3)は、初期文字と
上記のメツセージ・バイト、0.8.161160、N
−8に依存している。
検査記号の生成は、3サイクルで実行される。
初期シーケンス(第2表の最初の3列)は第1のインタ
ーリーフ、すなわち、第1表に示したバイトの最初の行
を処理する。これらのバイトは、初期化レジスタ221
(第2図)中に事前設定された初期文字を用いて処理さ
れる。メツセージ・バイトの剰余は、メモリ243と2
45及び記憶された部分結果を用いて処理される。
最初のブロックのN個のメツセージ・バイトが処理され
た後、次のブロックの処理中にメツセージ・バイトと°
連結すべき検査記号がCKOUTレジスタ229を介し
て読み出される。その後、前のブロックの検査記号が宛
先に送られる間に、奇数及び偶数ブロックのメツセージ
・バイトが処理できる。これは、後でより詳しく説明す
るように、メモリ243と245を交互に使用すること
によって実行される。
第2表では、K8、K9、MEMl及びMEM2の信号
にアステリスクがついている。1つのアステリスクは、
信号が奇数ブロックでしか使用されないことを示し、2
つのアステリスクは、信号が偶数ブロックでしか使用さ
れないことを示す。
KIOの信号は斜線で分離されているが、左側の信号は
奇数ブロックで使用され、右側の信号は偶数ブロックで
使用される。初期インターリーフのサイクル1以外のす
べてのサイクルでは、K10への信号は、奇数ブロック
では論理ゼロ、偶数ブロックでは論理1である。
初期インターリーフの最初のサイクルでは、入力データ
・レジスタ201に、最初のメツセージ・バイト(第1
表のバイト0)がロードされているものと仮定する。デ
ータ入力レジスタ201の内容がマルチプレクサ207
によってゲートされ、排他的ORゲート209に通じる
1組の入力端子に渡される。初期化レジスタ221の内
容は、マルチプレクサ223にゲートされ、排他的OR
ゲート209のもう一方の入力端子に供給される。排他
的ORゲート209からの出力信号は、マルチプレクサ
203を介してアキュムレータ205にロードされる。
これは、最上位レジスタの内容と検査記号生成機構の周
知のシフト・レジスタ・バージョンの入力バイトの排他
的ORに対応する。こうしたバージョンの初期文字(バ
イト)は最上位レジスタに含まれる。
次の2サイクルは、以前の動作時間の帰還結果にガロワ
関数fn(、)を掛けた積と、連続する下位のシフト・
レジスタ段の内容との排他的ORを表わす。
第2または第3サイクル中、入力データ・レジスタ20
1に次のメツセージ・バイトがロードされる。アキュム
レータ205の内容は、幅カウンタ215の内容と共に
、マルチプレクサ213を介してROM219をアドレ
スするのに使用される。アドレスされたROMの内容は
、以前の結果と時間fn(、)のガロワ積を表わし、マ
ルチプレクサ207を介して排他的ORゲート209に
通じる1組の入力端子にゲートされ、初期化レジスタ2
21からの初期文字はマルチプレクサ223を介して排
他的ORゲート209のもう一方の入力端子にゲートさ
れる。第3のサイクルでは、排他的ORゲート209か
らの信号が、メモリ243に記憶される。(偶数ブロッ
クでは、−時的部分結果を記憶するのにメモリ245が
使用される。) 第1のインターリーフが処理された後の、動作シーケン
スは、初期化レジスタ221の内容の代わりにメモリ2
43(または245)からの対応する以前の結果が使用
され、マルチプレクサ231及び223を介して排他的
ORゲート209にゲートされる以外は同じである。
シフト・レジスタ列の最下位シフト・レジスタに対応す
る最後のメツセージ・バイトでは、以前のシフト・レジ
スタ段がないので、メモリ243(または245)から
の以前の結果の代わりに、帰還信号とfm(、)乗数関
数のガロワ積がマルチプレクサ207から供給されるゼ
ロ信号と排他的ORされる。
第1ブロツクのメツセージ・バイトが処理された後、最
終的な検査記号がメモリ243に記憶される。次のブロ
ックの第3処理サイクルで、これらの検査記号は、制御
機構からの制御アドレスまたはアドレス・レジスタ23
7を用いて、メモリ243から検索することができる。
検査記号は、ROO1ROI106.のように順に読み
出され、マルチプレクサ231を介してCKOUTレジ
スタ229にロードされる。’ GKOUTレジスタ2
29から検査記号はSBデータ・バスを介して送られる
。偶数ブロックのメツセージ・バイトが処理された後、
検査記号はメモリ245から読み出され、マルチプレク
サ231を介してGKOUTレジスタにロードされる。
受信側すなわち宛先端末では、受け取ったバイトがシン
ドロームを生成するのに使用される。シンドロームの計
算はブロックごとに実行される。
1つのブロックのシンドロームが計算されている間、以
前のブロックの非ゼロ・シンドロームが誤り訂正ステッ
プを実行するため中央演算処理装置によって検索される
。したがって、シンドローム動作を、偶数及び奇数の情
報ブロックについて説明する。第3図に示したバイト・
ストリームは、上記のコード化動作の説明の所で述べた
ようなブロックである。
次にシンドローム計算の宛先段階について詳しく説明し
第3表に示す。動作は第3表の縦列に指定し、以下に説
明するように偶数ブロックと奇数ブロックに分けである
。ブロックは2組のサイクルに分かれ、INITは、第
1インターリーフの初期バイトすなわち第1表に示した
ブロックの一番上の行を表わす。初期計算は、初期化レ
ジスタ(INIT)221の内容を用いて実行される。
この初期化レジスタは、動作の最初に、検査記号生成の
初期化に用いられた文字と同じ文字で初期化される。他
のインターリーフ、すなわち、第3表にREMで示した
、第1表の2行目以降のデータは、メモリの第lRAM
と第2RAMに記憶されている初期計算からの部分的な
結果を用いて計算される。
メモリの第lRAMと第2RAMは交互に使用され、以
前のブロックのシンドロームがゼロでない場合は、誤り
を示し、次のプロ・ツクのシンドロームの計算中に、中
央演算処理装置は1方のメモリからシンドロームを検索
できるようになっている。
バイトが受信または検索されているとき、1バイトにつ
き2サイクルでシンドロームが生成される。最初の1個
のバイト(この例では8個)について、入力データ・レ
ジスタ201は、第3表に示した信号、すなわちに1=
1及びLACC=活動状態を用いて、マルチプレクサ2
03を介してアキュムレータ205に記憶されている現
バイトを受け取る。
第2サイクルでは、アキュムレータ205の内容がマル
チプレクサ207を介して排他的ORゲート209にゲ
ートされ、初期文字がマルチプレクサ213を介してそ
のレジスタ221からゲートされて、ROM219のR
AR内容の一部を形成する。ROMデータ・レジスタ(
RDR)からのデータ、すなわち乗数関数と初期文字の
積が、マルチプレクサ223を介して排他的ORゲート
209にゲートされる。その結果得られるガロヮ和が第
lRAM243に記憶され、結果が非ゼロだとシンドロ
ーム要約レジスタ227にフラグが立てられる。(偶数
ブロックでは、この和が第2RAM245に記憶される
。) 第1及び第2サイクルは最初のIバイトについて実行さ
れる。最初のエバイト後は、初期バイトは使用されない
。RARへの入力バイトは第lRAM243(または第
2RAM245)に記憶されている部分的な結果である
。第lRAM243は、RACTR235(ランダム・
アドレス・カウンタ)によって設定され更新されるアド
レス・レジスタ237の内容によってアドレスされる。
そのアドレスは、メモリ・アドレス・レジスタ(MAR
)に通じるマルチプレクサ239を介して第lRAM2
43に供給される。メモリ・データ・レジスタ(MDR
)からのデータは、マルチプレクサ231を介してデー
タ・レジスタ211に入力される。データ・レジスタ2
11の内容は、マルチプレクサ213を介してROM2
19にアドレスするのに使用される。ROM219から
の出力データは、(特定のインターリーフについての)
以前の積とそれに関連する生成関数の積である。
N−8バイトが処理された後、RXOシンドロームが計
算される。N−1バイトが処理された後、すべてのシン
ドロームが計算される。シンドローム要約レジスタ22
7は、シンドロームがすべてゼロかそうでないかの情報
を含んでいる。中央演算処理装置は、マルチプレクサ2
33を介してシンドローム要約にアクセスし、宛先(受
信)データに誤りがあるかどうかを判定する。シンドロ
ームがすべてゼロの場合、中央演算処理装置のメモリに
同時に記憶されたメツセージ・バイトは正シい。シンド
ロームがすべてゼロではない場合は、1つまたは複数の
誤りが検索時に発生した。中央演算処理装置は、第lR
AM243に記憶されているシンドロームを使用し、当
分野で周知の方法によって誤りとそれらの位置を判定す
る。
シンドロームは、偶数ブロックの処理中に次のブロック
・シンドロームが計算され第2RAM245に記憶され
ているときに、第1 RAM243から検索できる。メ
モリ第lRAMと第2 RAMは、それぞれ奇数ブロッ
ク及び偶数ブロック用に交互に動作される。(第1ブロ
ツク以外の)奇数ブロックが処理されているとき、第2
RAM245からのシンドロームが、(中央演算処理装
置から供給された)制御アドレスを用いて中央演算処理
装置によって検索され、マルチプレクサ241を介して
第2RAM245がアドレスされる。シンドロームはマ
ルチプレクサ233を介して中央演算処理装置バスに供
給される。偶数ブロックが処理されている間、前の奇数
ブロックからのシンドロームが、必要に応じて、マルチ
プレクサ239を介して制御アドレスをMARに接続す
ることにより中央演算処理装置によって検索される。
第1図のハードウェアの構成は、シンドロームの計算と
検索を同時に行なうことができる。そのため機能の速度
がかなり増大し、コプロセッサとして回路の性能が向上
する。
E0発明の効果 本発明の誤り訂正システムは、完全に汎用化され、高速
で複数のエラー−バーストを訂正することができる。
第1表 N−8N−7N−6N−5N−4N−3N−2トIRO
OROI  RO2RO3RO4RO5RO6RO7↑
R30R31R32R33R34R35R36R37↓
箪3男
【図面の簡単な説明】
第1図は、本発明の好ましい実施例の構成図である。 第2図は、本発明が使用できるシステムの構成図である
。 201・・・・入力データ・レジスタ、205・・・・
アキュムレータ、209・・・・排他的ORゲート、2
11・・・・データ・レジスタ、215・・・・幅カウ
ンタ、219・・・・読取り専用メモリ、221・・・
・初期化レジスタ、225・・・・■カウンタ、227
・・・・シンドローム要約レジスタ、229・・・・G
KOUTレジスタ、235・・・・ランダム・アドレス
・カウンタ、237・・・・アドレス・レジスタ、24
3・・・・第lRAM、245・・・・第2RAM12
49・・・・吠況レジスタ、203.207.213.
223.23L 233.239.241・・・・マル
チプレクサ。

Claims (3)

    【特許請求の範囲】
  1. (1)複数のマルチビット文字をそれぞれ直列的に含む
    複数のブロックからなるメッセージを受け取る第1の手
    段と、上記メッセージの各ブロックの相次ぐ文字を、先
    行する文字に基づく生成済の部分的検査記号を用いて処
    理することにより、新しい部分的検査記号を生成する第
    2の手段と、各ブロックのすべての文字の処理が終わる
    まで上記部分的検査記号を累積する第3の手段と、累積
    した部分的検査記号を各ブロックに連結する動作を、上
    記第1、第2及び第3の手段による次のブロックの処理
    中に行なう第4の手段とを有する誤り訂正用検査記号生
    成装置。
  2. (2)複数のマルチビット文字をそれぞれ直列的に含む
    複数のブロックからなるメッセージの供給源と、上記メ
    ッセージを伝達するチャネルと、該チャネルから上記メ
    ッセージを受信する手段とを有する通信システムであっ
    て、上記メッセージの各ブロックの相次ぐ文字を処理し
    て、検査記号を生成し、各ブロックに対して該検査記号
    を付加する動作を、次のブロックの相次ぐ文字の処理中
    に行なう通信システム。
  3. (3)複数のマルチビット文字をそれぞれ直列的に含む
    と共にそれぞれ複数の検査記号を伴っている複数のブロ
    ックからなるメッセージを受信し、該メッセージ及び検
    査記号に基づいてシンドロームを生成する受信システム
    であって、上記メッセージの各ブロックの相次ぐ文字及
    び検査記号を、先行する文字及び検査記号に基づく生成
    済の部分的シンドロームを用いて処理することにより、
    新しい部分的シンドロームを生成する手段と、各ブロッ
    クのすべての文字及び検査記号の処理が終わるまで上記
    部分的シンドロームを累積する手段とを有する受信シス
    テム。
JP1038534A 1988-04-29 1989-02-20 誤り訂正用検査記号生成装置 Pending JPH01293015A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/187,718 US4928280A (en) 1988-04-29 1988-04-29 Fast processor for multi-bit error correction codes
US187718 1988-04-29

Publications (1)

Publication Number Publication Date
JPH01293015A true JPH01293015A (ja) 1989-11-27

Family

ID=22690180

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1038534A Pending JPH01293015A (ja) 1988-04-29 1989-02-20 誤り訂正用検査記号生成装置

Country Status (3)

Country Link
US (1) US4928280A (ja)
EP (1) EP0340139A3 (ja)
JP (1) JPH01293015A (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5068855A (en) * 1988-07-18 1991-11-26 Canon Kabushiki Kaisha Error correcting method and apparatus
US5241546A (en) * 1991-02-01 1993-08-31 Quantum Corporation On-the-fly error correction with embedded digital controller
US5226043A (en) * 1990-12-27 1993-07-06 Raytheon Company Apparatus and method for data error detection and correction and address error detection in a memory system
GB2260245B (en) * 1991-10-04 1995-03-08 Technophone Ltd Digital radio receiver
GB2260244B (en) * 1991-10-04 1995-04-05 Technophone Ltd Digital radio receiver
KR0141826B1 (ko) * 1991-12-27 1998-07-15 이헌조 압축 데이타의 에러 정정 방법
JP3279624B2 (ja) * 1992-02-13 2002-04-30 富士通株式会社 Crc演算に基づく1ビット誤り訂正回路
US5677919A (en) * 1994-06-10 1997-10-14 Hughes Electronics Faster linear block decoding apparatus and method for receivers in digital cellular communication and other systems
JP3622981B2 (ja) * 1995-10-03 2005-02-23 松下電器産業株式会社 誤り訂正符号化装置及び方法、並びに誤り訂正復号化装置及び方法
GB9622539D0 (en) * 1996-10-30 1997-01-08 Discovision Ass Galois field multiplier for reed-solomon decoder
JPH10145238A (ja) * 1996-11-13 1998-05-29 Canon Inc 誤り訂正装置及び方法
KR100200770B1 (ko) * 1996-12-20 1999-06-15 윤종용 에러정정방법 및 장치
JPH11112358A (ja) * 1997-09-30 1999-04-23 Fujitsu Ltd データの誤り訂正方法及び誤り訂正装置
EP0935211B8 (en) * 1998-01-19 2005-09-07 ZIH Corp. Electronic indentification system with forward error correction system
US6662334B1 (en) * 1999-02-25 2003-12-09 Adaptec, Inc. Method and device for performing error correction on ECC data sectors
DE19919900A1 (de) * 1999-04-30 2000-11-02 Rohde & Schwarz Verfahren zum Messen der empfangsseitigen Bitfhlerrate eines DVB-Übertragungssystems
EP1175748B1 (de) 1999-04-30 2004-07-28 Rohde & Schwarz GmbH & Co. KG Verfahren zum messen der empfangsseitigen bitfehlerrate eines dvb-übertragungssystems
US6532566B1 (en) 1999-05-24 2003-03-11 Oak Technology, Inc. Modified Reed-Solomon multiplication
US6378105B1 (en) * 1999-05-24 2002-04-23 Oak Technology, Inc. Reed-Solomon multiplication method
DE60208062T2 (de) * 2001-06-01 2006-08-03 Koninklijke Philips Electronics N.V. Digitales system und entsprechendes verfahren zur fehlererkennung
US6687767B2 (en) * 2001-10-25 2004-02-03 Sun Microsystems, Inc. Efficient direct memory access transfer of data and check information to and from a data storage device
US7225391B1 (en) * 2002-12-17 2007-05-29 Altera Corporation Method and apparatus for parallel computation of linear block codes
US7320101B1 (en) * 2003-08-19 2008-01-15 Altera Corporation Fast parallel calculation of cyclic redundancy checks
US7613991B1 (en) 2003-08-19 2009-11-03 Altera Corporation Method and apparatus for concurrent calculation of cyclic redundancy checks
US8577026B2 (en) 2010-12-29 2013-11-05 Ternarylogic Llc Methods and apparatus in alternate finite field based coders and decoders
US7865807B2 (en) * 2004-02-25 2011-01-04 Peter Lablans Multi-valued check symbol calculation in error detection and correction
US8832523B2 (en) * 2006-03-03 2014-09-09 Ternarylogic Llc Multi-state symbol error correction in matrix based codes
US20110064214A1 (en) * 2003-09-09 2011-03-17 Ternarylogic Llc Methods and Apparatus in Alternate Finite Field Based Coders and Decoders
TWI272778B (en) * 2004-08-19 2007-02-01 Mediatek Inc Method and apparatus for generating parity characters for a codeword of a cyclic code
JP2006060663A (ja) * 2004-08-23 2006-03-02 Oki Electric Ind Co Ltd 巡回符号回路
US8046661B2 (en) * 2004-09-08 2011-10-25 Temarylogic Llc Symbol error correction by error detection and logic based symbol reconstruction
JP2010518464A (ja) * 2007-02-01 2010-05-27 株式会社東芝 半導体記憶装置
US10153788B2 (en) 2016-04-27 2018-12-11 International Business Machines Corporation Detection of multiple bit errors in random access memories
TWI831333B (zh) * 2022-08-18 2024-02-01 慧榮科技股份有限公司 記憶體控制器及快閃記憶體的存取方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3122381A1 (de) * 1981-06-05 1982-12-23 Ibm Deutschland Gmbh, 7000 Stuttgart Verfahren und einrichtung zur erzeugung von pruefbits zur sicherung eines datenwortes
GB2126760B (en) * 1982-08-20 1985-08-29 Sony Corp Error correction of digital television signals
FR2565048B1 (fr) * 1984-05-24 1986-08-29 Thomson Csf Codeur-decodeur de codes de blocs, parametrable
US4667326A (en) * 1984-12-20 1987-05-19 Advanced Micro Devices, Inc. Method and apparatus for error detection and correction in systems comprising floppy and/or hard disk drives
JPS6220180A (ja) * 1985-07-19 1987-01-28 Hitachi Ltd Pcm信号記録再生装置
US4763332A (en) * 1987-03-02 1988-08-09 Data Systems Technology Corp. Shared circuitry for the encoding and syndrome generation functions of a Reed-Solomon code

Also Published As

Publication number Publication date
EP0340139A2 (en) 1989-11-02
US4928280A (en) 1990-05-22
EP0340139A3 (en) 1991-11-21

Similar Documents

Publication Publication Date Title
JPH01293015A (ja) 誤り訂正用検査記号生成装置
US4597083A (en) Error detection and correction in digital communication systems
US4958349A (en) High data rate BCH decoder
US5754563A (en) Byte-parallel system for implementing reed-solomon error-correcting codes
US4030067A (en) Table lookup direct decoder for double-error correcting (DEC) BCH codes using a pair of syndromes
US4649541A (en) Reed-Solomon decoder
EP0114938B1 (en) On-the-fly multibyte error correction
EP0031183B1 (en) Multi-processor computer system
US5367478A (en) Mutual division circuit
US5778009A (en) Dedicated ALU architecture for 10-bit Reed-Solomon error correction module
JPH045214B2 (ja)
JP2010518464A (ja) 半導体記憶装置
EP0092960A2 (en) Apparatus for checking and correcting digital data
US4841300A (en) Error correction encoder/decoder
US4592054A (en) Decoder with code error correcting function
SE466368B (sv) Databehandlingsanordning sammansatt av fyra databehandlingsmoduler med huvudsakligen identisk konstruktion, med skydd baade mot samtidiga enkel-bit fel i flera databehandlingsmoduler och mot fel i en databehandlingsmodul
JPS59151246A (ja) エンコ−ダ検査装置
US7093183B2 (en) Symbol level error correction codes which protect against memory chip and bus line failures
CN110941505A (zh) 产生错误校正电路的方法
US6978415B1 (en) Variable redundancy cyclic code encoders
US9191029B2 (en) Additional error correction apparatus and method
US4644543A (en) Forward error correction hardware for a data adaptor
US6405339B1 (en) Parallelized programmable encoder/syndrome generator
KR101636406B1 (ko) 저지연 신드롬 계산을 위한 bch 디코더의 전처리 장치 및 방법
JPH0476540B2 (ja)