JP2568031B2 - 誤り検出及び訂正システム - Google Patents

誤り検出及び訂正システム

Info

Publication number
JP2568031B2
JP2568031B2 JP5129153A JP12915393A JP2568031B2 JP 2568031 B2 JP2568031 B2 JP 2568031B2 JP 5129153 A JP5129153 A JP 5129153A JP 12915393 A JP12915393 A JP 12915393A JP 2568031 B2 JP2568031 B2 JP 2568031B2
Authority
JP
Japan
Prior art keywords
data
error
block
correction
decoder
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
JP5129153A
Other languages
English (en)
Other versions
JPH0667913A (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.)
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 JPH0667913A publication Critical patent/JPH0667913A/ja
Application granted granted Critical
Publication of JP2568031B2 publication Critical patent/JP2568031B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はディジタル・データ通
信、記憶及び検索に関する。より詳しくは、本発明はデ
ィジタル・データ通信、記憶及び検索システムにおいて
誤り(error) を検出し訂正するシステムに関する。
【0002】
【従来の技術】ディジタル・データの通信、記憶及び検
索では、雑音、媒体欠陥、構成装置老化及びその他の要
因により誤りが生じる。これらの誤りを検出し訂正する
ためにいくつかの方式が開発されている。1つの初期の
方法は、誤り状態検出時にデータを単に再送信すること
を必要とした。あいにく、雑音の多い環境では、頻繁な
再送信を必要とすることがある。頻繁な再送信はシステ
ムのスループット又は帯域幅をきびしく制限する。
【0003】従って、再送信を伴わずに、検出された誤
りを訂正するために、いくつかのコーディング方式が開
発されている。これらのコーディング方式では、データ
・ビットは、誤り検出及び訂正を容易にするための少な
くとも1つの冗長な記号を有する、少なくとも1つのデ
ータ・ビットの記号に分類される。使用されるデータ及
び冗長な記号の数ならびに使用されるエンコーダ及びデ
コーダのタイプは選択されるコーディング方式とともに
変わる。
【0004】最適コーディング方式の設計及び(又は)選
択では、設計者は誤り訂正能力、デコーダ回路の複雑さ
及び帯域幅の間のトレードオフを強いられる。すなわ
ち、コードの訂正能力が大きければ大きいほど、冗長な
記号の数によってオーバーヘッドが大きくなり、実際の
記号のデータ保持率が低くなる。例えば、オーバーヘッ
ドが10%増せば、システム・スループットが10%低
下する。
【0005】更に、コードの訂正能力が大きくなり、従
って使用される冗長な記号の数が大きくなればなるほ
ど、デコーダ・システム内の回路の複雑さが増大する。
【0006】従って、多くの誤り検出及び訂正システム
は、これまでは、所与の最大の誤りの場合の所要の誤り
訂正能力を提供するように設計されている。リードソロ
モン(R/S = Reed-Solomon)コードがうまく適合すること
が分かっており、選択コードとしてしばしば選択され
る。リードソロモン・コードはよく知られたボセシャウ
ドハリホッケンヘム(BCH = Bose-Chaudhuri-Hocquenghe
m)コードのクラスのサブセットである。
【0007】リードソロモン・コードは一般に少なくと
も2つの主な理由により選択されるコードである。第一
に、リードソロモン・コードは、遭遇する多くの誤り状
態の最適パフォーマンスを意味するMDS(maximum-distan
ce-separatable) コードである。第二に、リードソロモ
ン・コードは十分に良好に操作され、入力誤り分布を記
述できる場合には実際のパフォーマンスを予測すること
ができる。
【0008】例えば、誤りの入力記号確率が ^p^ であ
り且つ各記号の誤り状態が他の全ての記号と無関係であ
る場合、任意の無作為に選択されたコードワード内の誤
り記号の数は下記の式により簡単に計算できる((n,k)コ
ードで i = 0〜n 個の誤り記号があると仮定する):
【数1】P(i誤り) = C(n,i) * pi * (1-p)n-i
【0009】ただし、C(n,i)はnから一度にiを取出す
ときの組合せ数である。
【0010】ここで、n = 28, k = 20 及び p = 0.0001
の場合について考える。前記の式を用いて、概略の確率
が次のように計算される。
【数2】P(誤り0) = 9.9720378 * 0.1
【数3】P(誤り1) = 2.7924498 * 0.001
【数4】P(誤り2) = 3.7701843 * 0.000001
【数5】P(誤り3) = 3.2678198 * 0.000000001
【数6】P(誤り4) = 2.0425916 * 0.000000000001
【0011】(i+1) 番目の誤り状態の確率の大きさはは
i番目の誤り状態の確率よりも次数にしておよそ3低
い。
【0012】
【発明が解決しようとする課題】誤り訂正デコーダは漸
進的により多くの誤りを処理(検出及び訂正)するために
より多くのステップ(及び時間)を必要とする。これらの
デコーダは誤りが少なく又は誤りがないときでさえも最
大復号モードで動作する、即ち最悪の状態で常に復号す
るように構築される。前記デコーダは、それらが埋め込
まれるシステムのスループットの隘路を表わすか、又は
所望のスループット速度を達成するために並列に走行す
る複数のデコーダ (ハードウェアの費用及び回路信頼性
のペナルティ) を必要とすることがある。前述の例から
分かるように、このようなペナルティはなにかごく希に
起きるものに課されることがある。
【0013】代わりに、別の方法は最初の高いデータ速
度のデータ伝送及び低いレベルの訂正能力を必要とす
る。誤りが検出されると、より低い速度で、より強力な
誤り検出及び訂正コードとともにデータが再送信され
る。最小の所望のスループットを維持するために、シス
テムはより高いクロック速度で動作するか又は複数の並
列デコーダを使用する必要がある。クロック速度の増加
は、より高速な技術及び全ての技術のクロック速度の限
界により達成することが困難である。その結果、複数の
デコーダの使用は良好な方法になりがちである。しかし
ながら、デコーダは一般にシステムのうちで費用が高く
複雑な構成装置である。従って、複数のデコーダの使用
によって得られるスループットの向上は、それに関連し
た高い費用により相殺される。
【0014】従って、高いスループットを有し複数の誤
りを処理できる安価で高いパフォーマンスの誤り検出及
び訂正システムの技術が要求されている。
【0015】
【課題を解決するための手段】本発明の誤り検出及び訂
正システムは前記要求されている技術を扱う。大抵の場
合、再構築可能デコーダにディジタル・データが供給さ
れる。デコーダは最初に低いレベルの訂正及び高いスル
ープットのためにセットされる。誤りが検出されると、
デコーダを動的に再構築するのに用いられる信号が生成
される。デコーダはより高い訂正レベルで再構築され
る。そして再構築されたデコーダによりデータが再処理
される。
【0016】特定の実施例では、本発明はブラハット(B
lahut)デコーダで用いるように設計される。この特定の
実施例では、デコーダを再構築するためのN及びKの値
はマイクロプロセッサにより与えられる。本発明は所要
の最高の訂正レベルで動作するエンコーダの使用を企図
する。最初は低い訂正レベルを用いて高いスループット
が得られる。再構成可能性は必要なときにのみ高い訂正
能力及びそれに関連して低いスループットを可能にす
る。
【0017】
【実施例】図1は本発明の誤り検出及び訂正システム10
のブロック図である。本発明はホストシステム12ととも
に用いるのに適合している。ホストシステム12は伝送、
処理、記憶及び(又は)検索のためのコンピュータ、周辺
装置ないしは任意のデータソースかも知れない。本発明
のシステム10はCRC(循環冗長検査) エンコーダ14を含
む。CRC エンコーダ14はホスト12からのデータを多項式
によって処理して、剰余を生成する。剰余は少なくとも
1つの冗長記号により表示され、データワードに加えら
れて誤り訂正コード・エンコーダ16に転送される。
【0018】図2はCRC エンコーダ14の実施例を示すブ
ロック図である。エンコーダ14は入力加算回路40を含
む。加算回路40はビット単位の排他的ORゲートにより実
現できる。加算回路40は入力記号とレジスタREG1の内容
のガロア(Galois)フィールド加算を実行する。ガロア演
算及び演算子の技術はよく知られている。フィードバッ
クループはシングルポール・シングルスロー(SPST = si
ngle-pole single-throw) タイプの第1のスイッチ42を
含む。 (当業者には理解されるように、本明細書に開示
され図示された実施例で用いられるスイッチは、電子交
換ゲート及び回路により実現できる。) 第1のスイッチ
42は、加算回路40の出力が第1及び第2のガロアフィー
ルド・マルチブライヤ44及び46に選択的に加えられるこ
とを可能にする。第1のマルチブライヤ44の出力は第1
のレジスタ48(REG0)に記憶されたのち第2の加算回路50
に供給される。第2の加算回路50に対する第2の入力は
第2のマルチブライヤ46により供給される。加算された
信号は第2のレジスタ52(REG1)に記憶されたのち第2の
入力として第1の加算回路40及び第2のスイッチ54の第
1のスローに供給される。第2のスイッチ54はシングル
ポール・ダブルスロー(SPDT = single-pole double-thr
ow) スイッチであることが望ましい。第2のスイッチ54
は、エンコーダ14のバイパスが、その出力がデータ及び
CRC 記号であるように選択されることを可能にする。従
って、エンコーダ14はbビット・データ入力を受け入
れ、データ及び記号の双方を有するbビット出力を供給
する。
【0019】レジスタ48及びレジスタ52を0にリセット
し、第1のスイッチ42をクローズし且つ第2のスイッチ
54をダウン位置にセットすることにより、符号化プロセ
スが開始される。そしてデータ記号が順次にクロックさ
れて入力加算回路に入れられると同時に第2のスイッチ
54を介して出力バスに引渡される。各データ記号がクロ
ックされて第1の加算回路40に入れられると、加算回路
40の出力が第1のスイッチ42を介してガロアフィールド
・マルチブライヤ44及び46に引渡される。ガロアフィー
ルド・マルチブライヤ44及び46はフィードバック・ビッ
トを変更し、それらを第1及び第2のレジスタ48及び52
に引渡す。次のクロック・パルスで、これらの入力がク
ロックされ、次のデータ記号が入力バスに入力されると
同時にレジスタ48及び52に入力される。当該コードワー
ドのデータ記号の全て又はデータブロックが入力される
まで、入力加算、フィードバック、乗算及び記録が続行
され、その時点で、第1のスイッチ42がオープンされ第
2のスイッチ54がアップ位置になるように、スイッチ42
及びスイッチ54が活動化される。レジスタ48及び52はそ
れらの内容を出力バスに引渡すように二度クロックさ
れ、従って2つのbビットCRC 記号をデータブロックに
加え、CRC コードワードを生成する。
【0020】原始多項式
【数7】x8 + x4 + x3 + x2 + 1が256 エレメントのガ
ロアフィールドを定義する場合、これらの256 のエレメ
ントは 0,α012, ...,α253254 として表わす
ことができる。 我々がCRC生成プログラム多項式の根を
α12として定義する場合、下記の生成プログラム多
項式
【数8】g(x) = x2 + α26 * x + α3 が得られる。この生成プログラム多項式のエンコーダ
は、次の割当て
【数9】g0 = α3 及び
【数10】g1 = α26 を有する図2の回路により実現することができる。
【0021】良好な実施例では、エンコーダ16は、デー
タ及びCRC 検査記号を分離してコードワードにするリー
ドソロモン・エンコーダである。このコードワードはリ
ードソロモン冗長記号を含む。図3はリードソロモン・
エンコーダ16の簡略化されたブロック図である。初期の
(28,20)コード例は、引続き本発明のリードソロモン・
エンコーダ16の実施例を示す。原始多項式
【数11】x8 + x4 + x3 + x2 + 1 は256 エレメントのガロアフィールドを定義する。256
のガロアフィールド・エレメントは 0,α012,
...,α253254 として表わすことができる。我々
は、例示の(28,20) リードソロモン・コードが任意の8
つの連続するフィールド原始エレメントαのべきとなる
ように、生成プログラム多項式の根を定義することがで
きる。このような8つの連続するαのべきの1つのセッ
トは α12345678である。これら
の根は生成プログラム多項式
【数12】g(x) = x8 + α176x7 + α240x6 + α211x5
+ α253x4 + α220x3 + α3x2 + α203x + α36を定義
する。図3に示すように、この多項式は本発明のリード
ソロモン・エンコーダ16により
【数13】g0 = α36
【数14】g1 = α203
【数15】g2 = α3
【数16】g3 = α220
【数17】g4 = α253
【数18】g5 = α211
【数19】g6 = α240
【数20】g7 = α176 の場合に実現される。
【0022】それぞれがbビット (定義されたガロアフ
ィールドの記号毎に8ビット) 幅を有するk個のデータ
記号が順次にクロックされて入力加算回路に入れられ、
レジスタ92の内容に加算される。加算結果は第1のSPST
スイッチ62を介して引渡されガロアフィールド・マルチ
ブライヤ64, 65, 66, 68, 70, 72, 74及び76のバンクに
入れられる。乗算された値は(奇数番号の)インライン加
算器79〜91に引渡され、先行ステージのレジスタの内容
と加算された後、クロックされて適切なレジスタに入れ
られる。20個のデータ記号の全てが入力、加算、乗算、
加算され、そして記録されるまで、この動作が続けられ
る。20個のデータ記号がクロックされ、エンコーダ16に
入れられた後、所要の冗長記号が8つの(偶数番号の)レ
ジスタ78〜92に取込まれる。第1のスイッチ62がオープ
ンされ、8番目のレジスタ92を出力バスに接続するよう
に第2のスイッチ94が作動する (以前は入力データ記号
が出力バスに引渡されていた)。 レジスタから8個の冗
長記号を出力バスに転送するために、エンコーダ16が更
に8回クロックされる。28個の記号 (20のデータ及び8
つの冗長記号) のグループの各々は定義された(28,20)
リードソロモンコードのコードワードを表わす。そして
メッセージデータ及びCRC 記号の全てが符号化され出力
バスに引渡されるまで、任意の回数にわたりプロセスを
反復することができる。
【0023】符号化されたデータは直列のアナログ信号
に変換され、チャネル17を介して送信される(図1)。こ
のチャネルは使用に応じて電磁気、レーザー、マイクロ
波又は無線周波リンク又は直接電気結合とすることがで
きる。
【0024】アナログデータはチャネル17を介して受信
され、アナログ/ディジタル変換器18によりディジタル
化された後、データ入力バッファ20に記憶される(図
1)。再構築可能なリードソロモン(RS)デコーダ22によ
りバッファ20内の生データが復号される。図4はデコー
ダ22の簡略化されたブロック図である。図4に示すよう
に、現在の最良モードでは、IBM Journal of Research
and Development, vol. 28, N2, March 1984, pp 150〜
158における Richard E. Blahut 著 "A UniversalReed-
Solomon Decoder" に記述されているようなブラハット
・デコーダとしてデコーダ22が実現される。更に、Rich
ard E. Blahut 著 "Theory and Practice of Error Co
btrol Codes" (Addison-Wesley of Reading, Massachus
etts, 1983年発行) 及び Peterson, W. Wesley, E. J.
Weldon, Jr. 共著 "Error CorrectionCodes" (2nd edit
ion; MIT Press, Cambridge, Massachusetts, 1972年発
行)を参照されたい。
【0025】図4で、 ^n^記号受信ワードが ^s^レジス
タ100 に入力される。ガロアフィールド演算装置102 が
適切に初期化されるとともに6個の復号変数レジスタ10
4〜114(偶数番号だけ)が0にされる。 ^n^記号受信ワー
ド及び ^n^記号復号変数ワードが順次にクロックされ、
ガロアフィールド演算装置102 に入れられる。演算装置
102 は7つの入力記号のセットを従来の方法で順次に処
理し、6つの更新された復号変数のセットを出力する。
それらは復号変数レジスタ104〜114に書込まれる。 ^n^
クロック、即ち受信ワードレジスタ内の ^n^記号及び復
号変数レジスタ104〜114内の ^n^記号の全てによる1つ
の完全なパス(pass)後に1サイクルが終了する。各サイ
クルの終了時に、演算制御変数が更新され、サイクルが
反復される。プロセスは ^2t^ サイクルが終了するまで
継続し、その時点で、 (演算装置に対する内部の) 異な
る分岐が選択され、受信ワードが訂正され出力ポートに
引渡される。デコーダ22はこの時点で再び新たな受信ワ
ードのプロセスを開始できる。初期化サイクル及び訂正
サイクルはそれらがオーバラップするように設定し、演
算装置102 は全てのサイクルで使用状態に保持すること
ができる。
【0026】デコーダ22が ^2t^ サイクルよりも少ない
サイクルについて実行されることになっている場合、誤
りの数が、プログラムされたサイクル数 (新たな減少サ
イクル数) の半分に等しいか又はそれよりも少ない限
り、出力が訂正されることになる。デコーダ22が減少モ
ードで実行される場合、冗長記号を削除するために、従
来の冗長記号ブロッキング回路103 により出力データス
トリームが適切に使用可能にされるか使用禁止される必
要がある。
【0027】デコーダ22からの訂正されたデータはCRC
デコーダ28に供給される。図5はCRC デコーダ28の実施
例の簡略化されたブロック図を示す。デコーダ28は入力
加算回路140 を含む。加算回路140 はビット単位の排他
的論理和ゲートにより実現できる。加算回路140 は入力
記号及びレジスタ152(REG1) のガロアフィールド加算を
実行する。フィードバックループは加算回路140 の出力
が第1及び第2のガロアフィールド乗算器144 及び146
に加えられることを可能にする。第1の乗算器144 の出
力は第1のレジスタ148 に記憶されたのち第2の加算回
路150 に第1の入力として供給される。加算回路150 の
第2の入力は第2の乗算器146 から供給される。和信号
は、第2のレジスタ152 に記憶されたのち、第2の入力
として第1の加算回路140 に供給され且つスイッチ154
に供給される。スイッチ154 はシングルポール・ダブル
スロー(SPDT)タイプのスイッチである。スイッチ154
は、その出力がデータ及びCRC 記号を含むようにデコー
ダ28のバイパスの選択を可能にする。
【0028】動作中、レジスタ148及び152が0にリセッ
トされるとともにデータ記号がクロックされて入力加算
回路140 に入れられ、ガロアフィールド乗算器144及び1
46を介してレジスタ148及び152に入れられる。これらの
データ記号はスイッチ154 を介して図1の出力データバ
ッファ34にも転送される。次に、スイッチ154 がオープ
ンされる。これは、到来するCRC 記号を、出力データバ
ッファ34に引渡されないようにブロックする。データ記
号の全てがデコーダ28に入力された時、2つのレジスタ
148及び152は (誤りが生じていないと仮定して) 予め計
算されたCRC 記号を包含すべきである。続いて、2つの
CRC 記号が次の2つのクロック周期でデコーダ28に入力
される。2つのレジスタ148及び152が正しいCRC 記号を
含み且つ2つの受信CRC記号が間違っていない場合、加
算回路140からのフィードバック信号は入力された両CRC
記号の全0エレメントであり、レジスタ148及び152は
この0エレメントを含む。これは、それらのレジスタが
2つのCRC 記号を含み且つそれらのレジスタの内容が加
算回路140で合計されて0になることに起因する。
【0029】検査回路160 は成功しなかった復号動作を
検出してCRC 誤り信号を出力する。検査回路160 は "b
ビットの2倍幅" のORゲートにより実現できる。例え
ば、もし誤り状態が検出されなければ、検査回路160 は
"0" を出力する。もし誤りが検出されてレジスタ148
及び152が少なくとも1つの非0ビットを含むならば、
検査回路160 は "1" 即ち誤りフラグ標識を出力する。
検査回路160 の出力は、データ記号及びCRC 記号の全て
がクロックされてデコーダ28に入れられ且つ2つのレジ
スタ148及び152が誤りシンドロームを取込んだ後にのみ
有効である。
【0030】このように、デコーダ28は訂正されたデー
タについてCRC 誤り検査を実行し、もし誤りがなけれ
ば、該データをデータ出力バッファ34に出力する。もし
誤りがあれば、CRC デコーダ22は前述のように加算器32
を介して制御装置30に信号を送る。システム10の動作に
ついて以下により詳細に説明するように、誤り信号を受
取ると、所与のデータ伝送サイクル中に、制御装置30は
データ出力バッファ34からホスト12へのデータの出力を
禁止し、再構築可能なRSデコーダ22を再構築し、そして
データ入力バッファ20に記憶された同じ生データのセッ
トの処理を最初の処理のように再開始する。
【0031】データ入力バッファ20及びデータ出力バッ
ファ34は通常のメモリ制御機構により容易に制御され
る。実施例では、メモリ制御は実際にはバッファに分散
されるが、説明のために、メモリ制御機構は単一のDMA
(直接メモリアクセス) 制御装置36として示される。
【0032】動作中、RSエンコーダ16はシステム10の使
用可能な最大能力レベルでデータを符号化してコードワ
ードにする。複数のコードワードがデータブロック又は
データセクタとしてグループ化され、更にCRC エンコー
ダ14においてCRC 検査ビットにより保護される。正確な
グループ化はシステムによって決まる。
【0033】受信するとき、訂正されていないデータブ
ロックが読取りチャネル17又は前の回路からデータ入力
バッファ20にロードされる。DMA 制御装置36の制御の下
に、訂正されていないデータはデータ入力バッファ20か
らRSデコーダ22にアンロードされる。RSデコーダ22は、
例えば、システム10の最大訂正能力の半分にセットされ
たN制御レジスタ24及びK制御レジスタ26により処理さ
れる。例えば、もしエンコーダ16が(28,20) の最大訂正
能力で伝送中であれば、デコーダ22は最初に誤り訂正ビ
ットの半数、従って50%高いスループット即ち帯域幅に
より(28,24) にセットされる。デコーダ22からの訂正さ
れたデータはCRC デコーダ28により検査され、DMA 制御
装置36の制御の下にデータ出力バッファ34にロードされ
る。
【0034】デコーダ22及びCRC デコーダ28を介してデ
ータブロック全体が処理されると、制御装置30への "ブ
ロック終了" 割込みが生成される。加算器32からの誤り
信号の状態が制御装置30により検査される。誤り信号
は、(1) データブロック内で処理されたコードワードの
どれかで訂正不可能な誤り(UE)の検出と(2) 訂正された
データブロック上のCRC 誤りの検出との論理和(OR)であ
る。
【0035】誤りが検出されない場合、データ出力バッ
ファ34内の訂正されたデータはホストへの転送がスケジ
ュールされる。
【0036】デコーダの訂正能力の低下が一定の限界を
越えたことを示す誤りが検出される場合、制御装置30は
再びNレジスタ24及びKレジスタ26に完全な能力値、例
えば、(28,20) をそれぞれロードし、DMA 制御装置36に
^反復転送^信号を出す。再度、データブロックがデコー
ダ22により処理され、再びデータ出力バッファ34にロー
ドされる。しかしながら、今回は、デコーダ22が全能力
で動作中であるが、処理時間が例示のコードによりかな
り増加、即ち倍加される。従って、誤り訂正処理に要す
る時間は第2のパスに関する限り2倍になる。例示の半
能力/半データ速度例は任意のものである。これらの比
率は各固有システムの誤りプロファイル、ならびに異な
る市場分野の価格/性能トレードオフを利用するように
調整される。
【0037】誤りのあるデータブロックがデコーダ22に
より再処理されたとき、制御装置30に対する "ブロック
終了" 割込みが生成される。制御装置30は再び加算器32
からの誤り信号の状態を検査する。もし誤り信号が存在
しなければ、データ出力バッファ34内の訂正されたデー
タのホスト12への転送がスケジュールされる。
【0038】もし誤り信号が存在すれば、それはシステ
ム10の最大誤り訂正能力を越える誤り、即ち恒久的な誤
りが生じたことを表わす。
【0039】再処理が順序正しく行われると、再処理を
要するコードワードの追加コードワード処理時間は多数
のコードワードにわたって平均される。従って、データ
速度への影響はほとんどない。
【0040】大部分のデータブロックは低減された能力
モードで訂正される。全能力が要求されると、誤りのあ
るブロックを誤りのないブロックとして処理するのに三
倍の時間を必要とする。この時間遅延の予測可能性が有
利であるうちは、該予測は2つの方法のうちの1つで処
理できる。いくつかのデータブロックを記憶する容量を
有するデータ入力バッファ20が設計可能であり、デコー
ダ22は到来するデータの速度よりもわずかに速い、例え
ば5%速い速度で走行するように設計できる。このよう
に、ブロック転送時間の変動がバッファにより吸収され
る。
【0041】あるいは、磁気ディスク又は光学ディスク
を使用する場合は、誤りのあるブロックが処理されてい
る間、単にディスクをもう一回転させることが望ましい
ことがある。そして、誤りのあるブロックに続くブロッ
クの送信が再開始される。磁気テープ環境では、誤りの
あるブロックに続くブロックに対する"テープ停止(tape
STOP)"、バックヒッチ(backhitch)及びフォーワードロ
ーケイト(forward locate)をこの処理モードと統合する
ことが望ましいことがある。誤りのあるブロックはテー
プ位置の変更中に訂正することができる。
【0042】データ速度とコード能力のトレードオフに
より本発明は自己最適化通信システムが可能であること
を当業者は理解する。例えば、前記システムはモデム(m
odem) リンクで用いられることがあり、一定比率のブロ
ックが再処理を必要とするまで転送速度を適切に増加す
るので、一定の誤り訂正方式の性能を向上させる。
【0043】従って、本明細書では、本発明は特定の用
法の特定の実施例に関連して記述されている。本発明を
アクセスする当業者は本発明の範囲内で更に変更された
用法及び実施例を理解するであろう。例えば、本発明は
CRC コードの使用に限定されない。当業者はCRC エンコ
ーダ及びデコーダは任意のものであって本開示の教義を
実行しなくてもよい。CRC エンコーダ及びデコーダは、
本発明で用いられる誤り検出及び訂正コードを補う程度
の誤り検査が新たに追加される。更に、制御装置は、本
発明の範囲から逸脱せずに、組合せロジック又は他の機
構を有する状態機械として実現できる。更に、データ記
憶バッファは論理的な区画を有する1つの物理メモリ内
で実現できる。
【0044】
【発明の効果】本発明によれば、複数の誤りを処理でき
高いスループットを有する、低価格で高いパフォーマン
スの誤り検出及び訂正システムが提供される。
【図面の簡単な説明】
【図1】本発明の誤り検出及び訂正システムのブロック
図である。
【図2】本発明の誤り検出及び訂正システムで用いられ
るCRC エンコーダの簡略化されたブロック図である。
【図3】本発明の誤り検出及び訂正システムで用いられ
るリードソロモン・エンコーダの簡略化されたブロック
図である。
【図4】本発明の誤り検出及び訂正システムで用いられ
る再構築可能デコーダの簡略化されたブロック図であ
る。
【図5】本発明の誤り検出及び訂正システムで用いられ
るCRC デコーダの実施例の簡略化されたブロック図であ
る。
【符号の説明】
12 ホストシステム 14 エンコーダ 16 エンコーダ 18 アナログ/ディジタル変換器 20 データ入力バッファ 22 リードソロモン・デコーダ 24 N制御レジスタ 26 K制御レジスタ 28 CRC デコーダ 30 制御装置 32 加算器 34 データ出力バッファ 36 DMA 制御装置
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ステフェン・チャールス・ウェスト アメリカ合衆国85749、アリゾナ州ツー ソン、イースト・ビスタ・モンタナス 9760 (56)参考文献 特開 昭63−86162(JP,A) 特開 平2−303221(JP,A) 特開 平2−301225(JP,A) 特開 昭61−58041(JP,A)

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】誤り検出及び訂正システムであって、 ディジタルデータのブロックを供給する第1の手段と、 前記ディジタルデータのブロックを第1の訂正レベルで
    符号化する第2の手段と、 前記符号化されたデータのブロックをチャネルを介して
    通信する第3の手段と、 チャネルを介して通信された前記符号化されたデータの
    ブロックを受け取る第4の手段と、 前記受け取った符号化されたデータのブロックを記憶す
    る第5の手段と、 復号されたデータを供給するために、前記符号化された
    データのブロックを、前記第1の訂正レベルより低い第
    2の訂正レベルで復号する第6の手段と、 前記復号されたデータ内の誤りを検出する第7の手段
    と、 前記第7の手段に応答して、前記符号化されたデータの
    ブロック全体を、前記復号されたデータ内に誤りを検出
    したときに、前記第2の訂正レベルより高い第3の訂正
    レベルで復号する第8の手段と、 を含む、誤り検出及び訂正システム。
  2. 【請求項2】誤り検出及び訂正方法であって、 ディジタルデータのブロックを供給するステップと、 前記ディジタルデータのブロックを第1の訂正レベルで
    符号化するステップと、 前記符号化されたデータのブロックをチャネルを介して
    通信するステップと、 チャネルを介して通信された前記符号化されたデータの
    ブロックを受け取るステップと、 前記受け取った符号化されたデータのブロックを記憶す
    るステップと、 復号されたデータを供給するために、前記符号化された
    データのブロックを、前記第1の訂正レベルより低い第
    2の訂正レベルで復号するステップと、 前記復号されたデータ内の誤りを検出するステップと、 前記符号化されたデータのブロック全体を、前記復号さ
    れたデータ内に誤りを検出したときに、前記第2の訂正
    レベルより高い第3の訂正レベルで復号するステップ
    と、 を含む、誤り検出及び訂正方法。
JP5129153A 1992-07-17 1993-05-31 誤り検出及び訂正システム Expired - Fee Related JP2568031B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US91412192A 1992-07-17 1992-07-17
US914121 1992-07-17

Publications (2)

Publication Number Publication Date
JPH0667913A JPH0667913A (ja) 1994-03-11
JP2568031B2 true JP2568031B2 (ja) 1996-12-25

Family

ID=25433943

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5129153A Expired - Fee Related JP2568031B2 (ja) 1992-07-17 1993-05-31 誤り検出及び訂正システム

Country Status (3)

Country Link
US (1) US5615221A (ja)
EP (1) EP0579131A2 (ja)
JP (1) JP2568031B2 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6281929B1 (en) * 1997-09-23 2001-08-28 Zenith Electronics Corporation Testing arrangement for decoders
US6690884B1 (en) 1999-02-19 2004-02-10 Corvis Corporation Optical transmission systems including error correction and protection apparatuses and methods
US6330700B1 (en) 1999-05-18 2001-12-11 Omnipoint Corporation Out-of-band forward error correction
US6314535B1 (en) 1999-05-18 2001-11-06 Xircom Wireless, Inc. Dynamic forward error correction
FI111505B (fi) * 1999-05-31 2003-07-31 Nokia Corp Menetelmä ohjaustiedon välittämiseksi tiedonsiirtojärjestelmässä, tiedonsiirtojärjestelmä, langaton päätelaite ja tukiasemajärjestelmä
US20080282128A1 (en) * 1999-08-04 2008-11-13 Super Talent Electronics, Inc. Method of Error Correction Code on Solid State Disk to Gain Data Security and Higher Performance
JP3388464B2 (ja) * 1999-11-04 2003-03-24 日本電気株式会社 誤り訂正を用いた光伝送システム及びそれに用いるパフォーマンスモニタ方式
US6505034B1 (en) * 1999-12-20 2003-01-07 Nokia Ip Inc. Adaptive ARQ feedback bandwidth allocation
US6487692B1 (en) * 1999-12-21 2002-11-26 Lsi Logic Corporation Reed-Solomon decoder
US7224702B2 (en) * 2000-08-30 2007-05-29 The Chinese University Of Hong Kong System and method for error-control for multicast video distribution
US6836869B1 (en) * 2001-02-02 2004-12-28 Cradle Technologies, Inc. Combined cyclic redundancy check (CRC) and Reed-Solomon (RS) error checking unit
US7398451B2 (en) * 2001-08-09 2008-07-08 Adaptive Networks, Inc. Error correction process and mechanism
US7266732B2 (en) * 2003-12-22 2007-09-04 Samsung Electronics Co., Ltd. MRAM with controller
US7418644B2 (en) * 2004-03-01 2008-08-26 Hewlett-Packard Development Company, L.P. System for error correction coding and decoding
US7861132B1 (en) 2004-11-19 2010-12-28 The Directv Group, Inc. Adaptive error correction
US9344117B2 (en) * 2013-03-15 2016-05-17 Mellanox Technologies, Ltd. Methods and systems for error-correction decoding
WO2015047334A1 (en) * 2013-09-27 2015-04-02 Intel Corporation Error correction in non_volatile memory
US10230404B2 (en) * 2014-12-23 2019-03-12 Texas Instruments Incorporated Forward error control coding

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3078443A (en) * 1959-01-22 1963-02-19 Alan C Rose Compound error correction system
US3496549A (en) * 1966-04-20 1970-02-17 Bell Telephone Labor Inc Channel monitor for error control
US3668631A (en) * 1969-02-13 1972-06-06 Ibm Error detection and correction system with statistically optimized data recovery
DE2160595C3 (de) * 1971-12-07 1975-03-20 Deutsche Forschungs- Und Versuchsanstalt Fuer Luft- Und Raumfahrt E.V., 5300 Bonn Fehlerentdeckendes und fehlerkorrigierendes Codierverfahren zur Datenübertragung
GB1563801A (en) * 1975-11-03 1980-04-02 Post Office Error correction of digital signals
US4058851A (en) * 1976-10-18 1977-11-15 Sperry Rand Corporation Conditional bypass of error correction for dual memory access time selection
DE2925966C2 (de) * 1979-06-27 1982-10-28 Siemens AG, 1000 Berlin und 8000 München Verfahren und Anordnung zur automatischen Erzeugung eines Gültigkeitssignals für aus einem Speicher mit wahlfreiem Zugriff gelesene Datenworte
DE2946163C2 (de) * 1979-11-15 1985-01-10 Siemens AG, 1000 Berlin und 8000 München Datenübertragungseinrichtung mit Pufferspeicher und Einrichtungen zur Sicherung der Daten
US4456996A (en) * 1981-12-02 1984-06-26 Bell Telephone Laboratories, Incorporated Parallel/series error correction circuit
US4592054A (en) * 1982-10-22 1986-05-27 Mitsubishi Denki Kabushiki Kaisha Decoder with code error correcting function
JPS60183642A (ja) * 1984-03-02 1985-09-19 Toshiba Corp リ−ド・ソロモン符号誤り検出装置
US4646312A (en) * 1984-12-13 1987-02-24 Ncr Corporation Error detection and correction system
CA1258134A (en) * 1985-04-13 1989-08-01 Yoichiro Sako Error correction method
US4706250A (en) * 1985-09-27 1987-11-10 International Business Machines Corporation Method and apparatus for correcting multibyte errors having improved two-level code structure
JP2823158B2 (ja) * 1986-09-30 1998-11-11 キヤノン株式会社 誤り訂正装置
US4839896A (en) * 1987-02-10 1989-06-13 Data Systems Technology Corp. Fast remainder decoding for a Reed-Solomon code
US5070503A (en) * 1988-03-09 1991-12-03 Canon Kabushiki Kaisha Digital information transmitting and receiving system
US4979174A (en) * 1988-12-29 1990-12-18 At&T Bell Laboratories Error correction and detection apparatus and method
JPH02301225A (ja) * 1989-05-15 1990-12-13 Tokyo Cosmos Electric Co Ltd データ誤り訂正方法
JPH02303221A (ja) * 1989-05-17 1990-12-17 Toshiba Corp リード・ソロモン符号の復号装置
US5151904A (en) * 1990-09-27 1992-09-29 The Titan Corporation Reconfigurable, multi-user viterbi decoder

Also Published As

Publication number Publication date
EP0579131A2 (en) 1994-01-19
JPH0667913A (ja) 1994-03-11
EP0579131A3 (ja) 1994-04-27
US5615221A (en) 1997-03-25

Similar Documents

Publication Publication Date Title
JP2568031B2 (ja) 誤り検出及び訂正システム
KR960003094B1 (ko) 프로덕트 코드를 디코딩하는 디코더 및 방법
US4567594A (en) Reed-Solomon error detecting and correcting system employing pipelined processors
US4566105A (en) Coding, detecting or correcting transmission error system
US4504948A (en) Syndrome processing unit for multibyte error correcting systems
EP0357461B1 (en) Error correction circuit
JP3256517B2 (ja) 符号化回路、回路、パリティ生成方法及び記憶媒体
EP0278383B1 (en) Error correction method using reed-solomon code
US5440570A (en) Real-time binary BCH decoder
US5778009A (en) Dedicated ALU architecture for 10-bit Reed-Solomon error correction module
EP0396403A1 (en) Data stream frame synchronisation
CA1179068A (en) Error correcting code processing system
US4455655A (en) Real time fault tolerant error correction mechanism
US4703485A (en) Method and apparatus for computing and implementing error detection check bytes
Kwon et al. An area-efficient VLSI architecture of a Reed-Solomon decoder/encoder for digital VCRs
US5936978A (en) Shortened fire code error-trapping decoding method and apparatus
US5329535A (en) Variable block lengths on-the-fly error correcting decoder
US20100281344A1 (en) Soft reed-solomon decoder based on error-and-erasure reed-solomon decoder
US20140013181A1 (en) Error Correction Coding Using Large Fields
JP2001196938A (ja) デジタルデータをデコーディングする装置及び方法
US5809042A (en) Interleave type error correction method and apparatus
US5974582A (en) High-speed chien search logic
EP0262944A2 (en) Error correction apparatus
Tang et al. Coding for error control
US7120850B2 (en) Low-cost methods and devices for the decoding of product cases

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees