JPH0721048A - 線形代数コード復号のためのキー方程式を解く装置及び方法 - Google Patents

線形代数コード復号のためのキー方程式を解く装置及び方法

Info

Publication number
JPH0721048A
JPH0721048A JP3348390A JP34839091A JPH0721048A JP H0721048 A JPH0721048 A JP H0721048A JP 3348390 A JP3348390 A JP 3348390A JP 34839091 A JP34839091 A JP 34839091A JP H0721048 A JPH0721048 A JP H0721048A
Authority
JP
Japan
Prior art keywords
loop
loops
algorithm
operations
multiplication
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.)
Granted
Application number
JP3348390A
Other languages
English (en)
Other versions
JPH0827732B2 (ja
Inventor
Martin Hassner
マーティン・ハスナー
Uwe Schwiegelshohn
ユー・シュヴィーゲルスホーン
Shmuel Winograd
サミュエル・ヴィノグラード
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 JPH0721048A publication Critical patent/JPH0721048A/ja
Publication of JPH0827732B2 publication Critical patent/JPH0827732B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • H—ELECTRICITY
    • H03—ELECTRONIC CIRCUITRY
    • H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05—Error 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/13—Linear codes
    • H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials

Landscapes

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

Abstract

(57)【要約】 【目的】線形代数コードを復号するのに必要なキー方程
式の解法及び装置の提供。 【構成】解法アルゴリズムにおいては計算ループが一つ
の分岐条件により2つのループに分岐される。乗算動作
回数は第一のループで3回、第二のループでは5回であ
り、エラーの数tを復号するためにこれらループに対し
て2t回の繰返しが行われる。各連続する2t回の繰返
しの間、4回の乗算動作が対になって同時に実行される
ようにこれらのループは結合される。この第二のループ
の5番目の乗算動作は第一のループの次の反復における
乗算動作と対になる。一部の乗算動作は反転テーブルが
ルック・アップされ、他の乗算動作の間中には追加的な
動作が実行される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、線形代数コードを復号
するための装置及び方法に関し、さらに具体的には、リ
ード=ソロモン(RS)コード復号のためのキー方程式
を解くために従来技術の装置で使用されていた以上の追
加のハードウェアを必要とせずに待ち時間を改善するア
ルゴリズムを使って、上記のキー方程式を解く装置及び
並列計算法に関するものである。
【0002】
【従来の技術】本発明に最も関係があると考えられる従
来技術の参照文献を以下に示す。 [A]E.R.バーレカンプ(Berlekamp)、
“AlgebraicCoding Theory”,
McGraw Hill,178−199頁,1968
年。 [B]J.L.マッセイ(Massey),“Shif
t−RegisterSynthesis and B
CH Decoding”,IEEE Trans.
on IT, IT−15, 1969年1月。 [C]K.Y.リュー(Liu),“Architec
ture for VLSI Design of R
eed−Solomon Decoders”,IEE
E Trans. on Computers,198
4年2月,178−189頁。 [D]D.L.ホワイティング(Whiting),
“Bit−SerialReed−Solomon D
ecoders in VLSI”,PhDthesi
s, California Institute o
f Technology,1984年 [E]R.T.チェン(Chien),“Cyclic
DecodingProcedures for B
CH Codes”,IEEE Trans. on
IT−10,357ー363頁、1964年10月。
【0003】参照文献[A]の184頁で、バーレカン
プは、RSコードを復号する際の主要ステップである
「キー方程式」を解くためのアルゴリズムを開示してい
る。本明細書及び特許請求の範囲で使用する場合、「キ
ー方程式」という用語は、所与の一組のエラー・シンド
ロームに関するエラー位置検出多項式及びエラー評価多
項式の係数を決定するために解かなければならない方程
式であると定義される。バーレカンプのアルゴリズム
は、エラー位置検出多項式及びエラー評価多項式の両方
の係数を同時に計算するためのもので、1つの条件付き
分岐条件を有する計算ループから成り、この条件付き分
岐条件は、ループを、以下でAループ及びBループと呼
ぶ2つの直線ループに分割する。エラー状態のt個の記
号を復号するには、このループの2t回の繰返しまたは
循環が必要となる。Aループは3回の乗算を実行し、B
ループは5回の乗算を実行する。
【0004】参照文献[B]で、マッセイは、バーレカ
ンプのアルゴリズムを分割して、最初にエラー位置検出
係数を計算することを提案した。これらの係数は、次に
エラー評価多項式の計算で使用される。
【0005】参照文献[C]は、参照文献[B]で開示
された「バーレカンプ−マッセイ」・アルゴリズムの実
施態様を記載している。しかし、この実施態様では、4
t+1個の乗算器、6t個のレジスタ、及び残りのシン
ドローム用のt個のレジスタを必要とし、エラー位置検
出多項式及びエラー評価多項式の計算のために合計6t
個の乗算遅延を必要とする。さらに、この参照文献は、
ビット・スライス回路を使った実施態様を開示も示唆も
していない。
【0006】参照文献[D]の65頁及び104頁で、
ホワイティングは、バーレカンプのアルゴリズムの条件
付き分岐の記述におけるある任意性(arbitrar
iness)を指摘した。ホワイティングはまた、バー
レカンプのアルゴリズムの並列実施態様は、参照文献
[B]で変更されたアルゴリズムの並列化に必要なハー
ドウェア資源と比較して、2倍の数の多項式係数を記憶
すること、及び乗算器を1つ追加するか、または1つの
乗算器を時間多重化することが必要であることを指摘し
た。
【0007】
【発明が解決しようとする課題】本発明の目的は、分岐
条件における任意性を有効に取り除くことにより、参照
文献[B]で必要とされる以上のハードウェアの追加を
必要とせずに、復号動作のためのキー方程式を並列化す
ることにある。
【0008】
【課題を解決するための手段】本発明者等のアルゴリズ
ムは、5回の乗算を実行するループを直接繰り返すこと
ができないようにして、分岐条件の任意性を除去する。
このループは、3回の乗算のみを実行する次のループと
結合されて、2回の繰返しで8回の乗算が必要となり、
その結果、1回のループ繰返しにつき平均4回の乗算が
行なわれるようにされる。この結合されたループ構造
は、VLSI(超大規模集積回路)での実施を容易にす
るため、モジュール形式のハードウェアで示される。
【0009】
【実施例】本発明の実施例を説明する前に、以下ではそ
の理解に必要な事項を概説する。8ビットのバイトに対
応する256個の要素から成るガロア体GF(28)を
想定する。したがって、本発明によるアルゴリズム及び
そのハードウェア実施態様は、モジュロ2ガロア体算術
を使ってバイトに作用する。入力データは2tバイトで
あり、ここでは説明の便宜上入力データがRSコードに
対するシンドロームであると想定する。但し、tは訂正
すべきエラーの数である。
【0010】本明細書及び特許請求の範囲で使用する場
合、「バイト」という用語は理解しやすいように使用し
たもので、単に例示的なものと考えるべきである。本発
明は、他の分野に関係した記号で実施することもできる
からである。
【0011】本発明によれば、キー方程式解法回路は、
RSコード等の線形代数コードの復号のためにキー方程
式を解くための並列化アルゴリズム及びモジュール式ハ
ードウェア実施態様をもたらすように修正される。
【0012】上記のように、t=訂正すべきエラーの
数、v,u,p,q及びSは単一変数多項式であると仮
定する。キー方程式は合同式 v(z)・S(z)≡ q(z)mod(z2t) であ
り、その解(存在する場合)は有理関数となる。
【数1】 (z)の係数と見なすことができる。キー方程式の分母
多項式v(z)の根はエラー所在位置であり、これらの
根におけるr(z)の剰余はエラー値である。
【0013】次に、図面を参照して本発明の実施例を説
明する。図1に示すように、本発明を具体化した装置
は、リード=ソロモン(RS)コード等の線形代数コー
ドの復号用のデコーダ10を備える。任意のエラー・パ
ターンe(x)を含む雑音を伴なったコードワードc
(x)が、線11を介してシンドローム生成機構12及
びバッファ13に供給される。生成機構12からのシン
ドローム出力S(x)は、キー方程式解法回路14に送
られる。
【0014】本発明によれば、解法回路14は特定の組
のエラー・シンドロームS(x)に関するエラー位置検
出多項式v(x)及びエラー評価多項式q(x)をそれ
ぞれ「チェン」(Chien)探索回路15及びエラー
値計算回路16に出力する。回路15は、参照文献
[E]に開示された種類のものであることが好ましい。
回路15及び16の出力は17でゲートされて、推定エ
ラー・パターンを表す出力 らバッファへのコードワード+エラー・パターンの入力
に相当する)と加算され
【0015】したがって、S(シンドローム多項式)及
びt(訂正すべきエラーの数)が与えられると、方程式
解法回路14は、v及びq(それぞれエラー位置検出多
項式及びエラー評価多項式)を導き出す。
【0016】参照文献[D]で、ホワイティングは、参
照文献[A]及び[B]の直列のキー方程式解法アルゴ
リズムが並列化された場合に必要となるハードウェア及
び待ち時間を考察した。表1は、参照文献[A]に記載
されたバーレカンプのアルゴリズムを並列化するための
ホワイティングのバージョン1と2、及び参照文献
[B]に記載されたいわゆるバーレカンプ−マッセイ
(BM)アルゴリズムを、本発明者等のアルゴリズムと
性能を比較したものである。
【0017】 表1 乗算器 記憶域 待ち時間 Bバージョン1 3t 6t 4t Bバージョン2 2t 6t 6t BM 2t 6t 6t 本発明者等 2t 6t 4t
【0018】本発明者等のアルゴリズムの詳細 本発明者等のアルゴリズムは、2t個の体要素
[S0,....,S2t-1]のデータ・ベクトルを入力
として受け取り、[v0,...,vt-1]及び
[q1,...qt-1]を出力として発生する。これら
は、一般に体要素{Si}を係数とするべき級数と見な
すことができる、S(z)の有理近似値の分母と分子で
ある。2t個の体要素の入力ベクトルでは、生成された
有理近似値の分母次数はtを越えることができない。分
子多項式の次数は分母多項式の次数よりも完全に小さ
い。このアルゴリズムは、2t回の繰返しの後終了す
る。
【0019】図2は本発明者等のアルゴリズムの流れ図
である。計算は以下のように5つのステップに分かれ
る。
【0020】ステップ1では、ベクトル変数v,u,p
及びqが初期設定される。これらのベクトルの各々はそ
れぞれt個の構成要素を有する。上で使用した規約は、
u及びqに「オール・ゼロ」ベクトルを割り当て、v及
びpの両方の最下位の係数に値1を割り当て、その他の
係数は0とするものである。繰返しの回数をカウントす
るために使用されるスカラ変数iには、最初に値−1を
割り当てる。スカラ変数rは、アルゴリズムのステップ
2が実行される回数をカウントし、スカラ変数Rは,ス
テップ2及びステップ4が実行される回数の差をカウン
トする。アルゴリズムの終了を判定するために使用され
るスカラ変数t’は、訂正可能なエラーの数であるtか
ら始まる。 ステップ2(線形従属性テスト)
【数2】
【0021】ステップ2では、i及びRが1だけ増分さ
れ、u及びpが1位置だけ右にシフトされる(上記規約
では、ベクトルの内容を右に0を付加したベクトルで置
換するものとして示す)。
【0022】ステップ2で実行される主な計算は、Sベ
クトルの内容とvベクトルの内容とのたたみ込みであ
り、その結果、一般に「不一致(discrepanc
y)」と呼ばれる値eが得られる。(参照文献[A]参
照)。実際には、この計算は、vの現在値で重み付けし
たシンドロームが線形独立であるかどうかを検査する。
【0023】e=0である場合は、そのように重み付け
されたシンドロームは線形従属である。その場合は、図
2に示すようにステップ2が繰り返される。e≠0の場
合は、アルゴリズムはステップ3に進む。
【0024】ステップ3では、スカラ変数r及びt’
が、ステップ2が実行された回数であるRだけそれぞれ
増分及び減分される。vの内容は、vの現在値から、u
の前の値にステップ2で計算された非ゼロの不一致eを
乗じた積を差し引くことにより更新される。
【0025】vの現在(未更新)値は同時に、vの現在
値を非ゼロの不一致eで割った商を一時的に記憶する中
間変数Tを用いてuの値を更新するために使われる。
【0026】すなわち、ステップ3では、v及びuが共
に、それらの前の値と不一致eを使って更新される。
【0027】全く同様にして、中間変数T’を使ってq
及びpが更新される。更新ステップ3は反復されず、無
条件にステップ4に進む。 ステップ4(多項式反復)
【数3】
【0028】ステップ4で、反復カウント変数iが増分
され、同時にRの値が減少される。Rが0よりも大きい
限り、Rが0になるまでステップ4が繰り返され、Rが
0になると、図2に示すように、プログラム制御ステー
トメントによって、計算はステップ2に戻る。
【0029】ステップ2の開始時に、アルゴリズムは、
Rの値としきい値t’を比較することにより、ステップ
2が何回実行されたかを調べる。R=t’の場合、アル
ゴリズムは、「出口テスト」であるステップ5に進む。 ステップ5(出口テスト)
【数4】
【0030】ステップ5に入ると、ステップ5は「訂正
不能」出口を生成するか、またはエラー位置検出多項式
係数及びエラー評価多項式係数、すなわちそれぞれベク
トルv及びqを発生する。
【0031】バーレカンプと本発明者等のアルゴリズム
の比較 バーレカンプのアルゴリズムと本発明者等の改善された
アルゴリズムの違いは、図3A及び図3Bに並べて示
す、要約した比較を見るとわかる。図3A及び図3Bで
は、本発明者等のアルゴリズムの計算レイアウトは、参
照文献[D]に開示された、簡略化した形で与えられる
バーレカンプの形式と等価な形式に分解してある。本発
明者等のアルゴリズムは、図3A及び図3Bの比較から
明らかなように、(1)初期設定ステップ、(2)「不
一致」eの計算、及び(3)ループ分岐条件の点で、バ
ーレカンプのアルゴリズムとは異なる。
【0032】バーレカンプのアルゴリズムと本発明者等
のアルゴリズムにおけるeの計算は、バーレカンプの変
数加算の代わりに、本発明者等のアルゴリズムでは、入
力ベクトル[So,S1,...,S2t-1]を処理するた
めに循環シフト・レジスタ20(図4)に移されるよう
な固定加算が用いられる点で異なる。シフト・レジスタ
20は2つの「レベル」、すなわち、上位レベルS1と
下位レベルS2を有する。シフト・レジスタ20は、最
初に図4に示す位置に並列にロードされる。この機能
は、キー方程式を解くための並列化アルゴリズムを実施
するために不可欠である。
【0033】本発明の重要な特徴によれば、バーレカン
プのアルゴリズムとは異なり、本発明者等のアルゴリズ
ムのステップ3は反復できない。
【0034】この違いを示すため、バーレカンプのアル
ゴリズム及び本発明者等のアルゴリズムのループを、ル
ープ本体内の条件付き分岐の種類に応じて、2種類に分
けた。表2で、“If”分岐をAループと呼び、“El
se”分岐をBループと呼ぶ。 表2
【数5】
【0035】図3からわかるように、本発明者等のルー
プ構造では、条件付き分岐制御条件が“If e=0
or 2r≧i+1 then”に変更されている。こ
の変更は、“Else”条件が連続して繰り返されるの
を防ぎ、したがってB−Bループ(表2)が実行される
のを防ぐ。言い換えると、図2からわかるように、ステ
ップ3は反復できない。
【0036】バーレカンプ及び本発明者等のアルゴリズ
ムに関して並列化によって実現可能な最適高速度化は、
動作依存関係グラフを考察することによって導き出され
る。ハードウェア実施態様で、考えられる時間のかかる
算術演算は乗算だけであり、これらの乗算は依存関係グ
ラフでは辺の形で表される。図5A及び図5Bは、それ
ぞれタイプAのループ及びタイプBのループの乗算依存
関係グラフを示す。辺で結合されたノードは、乗算され
ている変数が記される。
【0037】アルゴリズムの始めに、それらの変数はそ
れぞれ初期値を有する。図5A及び図5Bに示すよう
に、「末端」ノードにおける変数は「先頭」ノードにお
ける変数の因数である。この(乗算)依存関係グラフで
は、ノードeを除く全てのノードは2つの因数を表す2
つの項目を有し、ノードeでは1つの因数は常にシンド
ローム・ベクトルである。実線の辺はすべて同じ繰返し
内の依存関係を表し、破線の辺は現在の繰返しと直前の
繰返しの間の依存関係を表す。点線の辺は現在の繰返し
と任意の前の繰返しの間の依存関係を示す。
【0038】全ての辺は、乗算時間を表す単位重みを有
するから、最大(サイクル長/当該サイクル中の破線の
辺の数)=△を決定することにより臨界サイクルが確立
される。どちらのアルゴリズムでも、△=2である場
合、臨界サイクルはe→v→e(次の繰返し)であ
る。したがって、待ち時間の下限は2つの乗算時間/繰
返しである。
【0039】かくて、この最小時間を実現するために必
要な乗算器の数を決定しなければならない。待ち時間は
最適であることが必要なので、繰返しの最悪の場合を考
慮しなければならない。したがって、シンドローム入力
は、初期の繰返しではどんな乗算器の節約をも許さない
値を有するものと想定される。依存関係グラフからのノ
ード変数はスカラと考えられる。各ベクトルはt個の自
明でない記号を含み、ベクトルの場合の乗算器の数は、
スカラの場合の乗算器の数のt倍である。
【0040】タイプBのループは5回の乗算を必要と
し、一方、タイプAのループでは3回の乗算で十分であ
る。バーレカンプのアルゴリズムでは、全アルゴリズム
中e≠0の場合、Bループのみのシーケンスが実行され
る。したがって、2乗算サイクル/繰返しの待ち時間を
実現するために必要な乗算器の最小数は、バーレカンプ
のアルゴリズムでは3である。
【0041】本発明によれば、本発明者等のアルゴリズ
ムは、タイプBのループをそれに続くタイプAのループ
と組み合わせたもので、その結果、2回の繰返しのため
に8回の乗算が必要となる。次の2つのシーケンスA及
びB−Aとそれらの全ての組合せA−A、A−B−A、
B−A−A及びB−A−B−Aを考えれば十分である。
本発明者等のアルゴリズムでは、前述のように、シーケ
ンスB−Bは可能でない(図2参照)。
【0042】図5A及び図5Bから、上述の全ての組合
せが、有効なスケジュールをもたらすことが明らかであ
る。最後の繰返しがタイプBである場合は、u及びpの
更新は冗長になることに留意されたい。したがって、本
発明者等のアルゴリズムは、4t+1回の乗算サイクル
で実行することができ、2t個の乗算器が必要となる。
実際には、データ・ベクトルの初期条件を利用する場合
は、乗算サイクルの数を2だけ減らすことが可能であ
る。
【0043】ハードウェアの実施態様 簡単で均質なハードウェア実施態様を実現するため、タ
イプB−A及びタイプAまたはA−Aのループに共通の
スケジュールが生成される。このスケジュールを図6に
示す。このスケジュールを使って、本発明者等のキー方
程式解法回路14の訂正装置全体についてモジュール式
設計が導き出された。訂正装置は図21に示され、以下
に説明する基本的論理装置及びモジュールを使って構成
される。
【0044】図7Aはラッチ25を、図7Bは様々な入
力条件に対応するラッチ出力を概略的に示す。図8A
は、図8Cに表にした出力を発生するためのマルチプレ
クサ回路26を概略的に示し、図8Bにそれをさらに完
全に示す。
【0045】本発明の特徴によれば、図9に示すよう
に、A回路と記した訂正装置のビット・スライス回路3
0が設けられる。回路30は、それぞれ指定された変数
の1ビットを記憶する、S1、S2、q、p、u、vと
記した6個の1ビット・ラッチ25a〜25fを備え
る。回路30はまた、9個のマルチプレクサ回路26a
〜26i及び1個の排他的OR(XOR)ゲート27を
含む。マルチプレクサ回路26a及び26bは、シンド
ローム入力をロード及びシフトするために使用される。
マルチプレクサ26d、26e、26gは、乗算器M1
及びM2(図10)に入力する因数を多重化するために
使用される。マルチプレクサ26iはXORゲート27
への入力を多重化する。マルチプレクサ26cは、pラ
ッチ25dを、ラッチ25c中の前のq値用の中間記憶
域として働くように切り換える。マルチプレクサ26f
及び26hは、それぞれpラッチ25d及びuラッチ2
5eからのデータを修正またはシフトする。XORゲー
ト27は、加算v+e・uまたはq+e・pを実施する
ために使用される。
【0046】回路30は、キー方程式解法アルゴリズム
用の完全に動作する1ビット装置の実施態様を構成す
る。
【0047】図10に示すように、A0〜A7と記した
8個のビット・スライスA回路30と、2つの乗算器M
1及びM2が、バイト・スライスB回路40を構成す
る。様々なビット位置間の相互作用のみが乗算動作中に
生じるので、回路40をこれら8個のビット・スライス
A回路30に分割することができる。8入力ORゲート
41及び後続のラッチ25gは、エラー所在位置の範囲
の決定、及び繰返しチェン探索回路15(図1)に関す
るエラー位置検出ベクトルの適切な位置決めの際に必要
となる。
【0048】クロック・制御回路 完全な制御・クロック回路を図11ないし図16に示
す。
【0049】図11に示すクロック発生回路49は、主
CLOCKから4つのクロック信号CLK1〜CLK4
を発生する。クロック発生回路を制御する入力信号は、
INPUT、END及びCUである。INPUT信号
は、計算の開始前にのみ活動化される。INPUT=1
の間は、シンドローム・ラッチ25a、25bの内容の
みが修正できる。END信号は、計算の完了後に全ての
クロックを使用禁止にし、したがって、ラッチ51(そ
の出力はODD信号である)を除く全てのラッチの内容
を凍結する。INPUT信号及びEND信号は、実際の
計算中は共に0である。
【0050】4つのクロック信号全てを制御する主エネ
ーブル信号はODDである。これは、図6に示すよう
に、1つの繰返しを構成する2つの異なる動作サイク
ル、すなわち奇数サイクルと偶数サイクルの区別を可能
にする交番信号である。
【0051】ODD信号は、主システムCLOCKによ
ってエネーブルされるラッチ51の出力として発生され
る。ラッチ51への入力は、INPUTの反転値及びO
DD出力からANDゲート50を介して得られる。奇数
動作サイクル(ODD=1)では、CLK2=1の間に
ラッチe、q、S1、S2の内容が修正される。CLK
2信号はANDゲート54の出力として得られる。OR
ゲート53の出力として得られるエネーブル・クロック
信号CLK1は、計算中はCLK2と同じであるが、ま
たS1シンドローム・ラッチ25a及びS2シンドロー
ム・ラッチ25bの内容をロードするためにINPUT
によってエネーブルされる。INPUTはまた、各計算
が、ANDゲート50によって実施される、奇数動作サ
イクルから開始することを保証する。
【0052】偶数動作サイクル(ODD=0)では、C
LK4=1の間にuラッチ25e及びvラッチ25fの
内容が修正される。CLK4はANDゲート57の出力
として得られる。pラッチ25dは、奇数サイクル中は
p多項式の係数を記憶するのに使用され、また(偶数サ
イクル中に行われる)ステップ2からステップ4への切
換え中にはq多項式の係数の最後の値を一時的に記憶す
るのに使用されるので、別々のエネーブル・クロックC
LK3が発生される。CLK3は、制御信号CUによっ
てエネーブルされたCLK4またはCLK2からORゲ
ート55の出力として発生される。
【0053】制御信号回路59を図12に示す。ラッチ
61の出力VALIDは、スカラ変数R用のカウンタ6
5が昇順にカウントするのか、すなわちアルゴリズムが
ステップ2を実行するのか(VALID=1)、それと
も降順にカウントするのか(ステップ4、VALID=
0)を制御する。このラッチ61はCLK2によってエ
ネーブルされ、その入力はORゲート64の出力として
発生される。このゲートは、e=0かつVALID=1
のとき(すなわち、アルゴリズムがステップ2を実行し
ている間)、またはR=0かつVALID=0のときに
活動化される。VALIDは、e≠0の場合に1から0
に切り変わり、R=0の場合に0から1に戻る。VAL
IDは、CLK2=1のときに生じる奇数動作サイクル
中にのみ変更することができる。
【0054】制御信号CU=1は、最新のe値は0に等
しくないが、VALIDラッチの状況は依然として1で
あることを、すなわちアルゴリズムがステップ3(Bル
ープ)を実行していることを示す。CU=1の間、及び
VALIDが0に切り換わり戻るまでは、Bループは開
始できない。これは、連続したB−Bループの実行を、
したがってステップ3の繰返しを禁止する分岐条件を有
効にする。
【0055】ANDゲート60の出力として発生される
CU信号は、1つの奇数動作サイクルと後続の偶数動作
サイクルの間活動状態になり、uラッチ25eの内容の
修正を制御するために使用される。CU(=1)が計算
の終りに活動状態である(ステップ3)か、またはVA
LID=0である(ステップ4)場合は、エラーは訂正
不能であり、ORゲート67の出力として発生される信
号WRONG=1によってそれが示される。
【0056】ラッチ66の出力は、信号CUが2動作サ
イクル遅延されたものに等しい。信号CP1は、ラッチ
66の出力が活動状態である間は、偶数動作サイクルで
活動状態である。この信号は、pラッチ25dが、p多
項式の係数を記憶するために使用されるのか(CP1=
0)、それともq多項式の最後の係数を一時的に記憶す
るために使用される(CP1=1)のかを制御する。C
P1はANDゲート62の出力として発生される。信号
CP2は、CUが活動状態である間、奇数動作サイクル
中のみ活動状態である。CP2はANDゲート63の出
力として発生される。CP2は、pラッチ25d及び第
1の乗算器M1F1(図10)の係数の1つ、すなわち
CP2=0の場合はv、CP2=1の場合はq多項式の
最後の係数を記憶する間、pの変更を制御する。
【0057】図13は、不一致値eの反転値を計算する
回路70を示す。この回路70は、マルチプレクサ71
及びROMルックアップ反転テーブル72から成る。マ
ルチプレクサ71は、テーブル72の共用を可能にす
る。ROM反転テーブル72の出力dRESは、25な
ど8個のラッチから成る8ビット・レジスタ75(図1
4)に記憶される。レジスタ75は、CP2により8個
のマルチプレクサ76を介して制御される。CP2は、
値dRESがuラッチ25eの修正のために直ちに使用
されるのか、それともpラッチ25dの修正のために後
で使用されるのかを決定する。
【0058】図15に示すように、終了回路80は、C
LK2信号をカウントし、2t+1回の繰返しの後に計
算を停止させるカウンタ81を含む。
【0059】図16Aは、図11に示した前述の回路4
9によって発生される4つのクロック信号CLK1〜C
LK4に関するブール方程式を表にしたものである。図
16Bはマトリックスであり、その列は個々のラッチ・
ラベルS、u、v、q、pであり、その行は、アルゴリ
ズムの実行中にそれらのラッチ・ラベルに対して実行さ
れる個々の算術演算に対応する。マトリックスの項目
は、特定のレジスタに関して実行される特定の演算中に
活動化される制御信号またはクロック信号を示す。図1
6A及び図16Bは、既に詳細に説明した制御動作及び
クロッキング動作を要約して示したものである。
【0060】本発明者等の発明を実施するには、図9に
記載したビット・スライスA回路30及び図10に記載
したバイト・スライスB回路40で十分であると考えら
れることに留意されたい。しかし、完璧を期すため、か
つハードウェアの複雑さを減少させるため、図17A、
図17B及び図18に、それぞれ最初の列及び最後の列
用のビット・スライスA回路がどのようにして簡略化で
きるかを示す。8ビット・バイトの場合、図17Aにお
けるような1つの回路、及び図17Bにおけるような7
個の回路があることに留意されたい。図19及び図20
は、それぞれ最初のB0バイト・スライスB回路及び最
後のBtバイト・スライスB回路を示す。これらのハー
ドウェアの簡略化が実現できるのは、最初のステップで
は計算は簡単であり、乗算を必要とせず、また最後のス
テップではアルゴリズムは全ての演算を必要としないか
らである。
【0061】最後に、図21に、t=8(エラー訂正)
用の訂正装置84を概略的に示す。前述のように、クロ
ック発生回路49及び制御信号回路と組み合わされた訂
正装置84は、最初のバイト・スライスB0回路、7個
の通常のB回路、及び最後のB8回路から成る。eレジ
スタ85及び(t+1)入力加算器86はこの装置の一
部である。
【図面の簡単な説明】
【図1】線形代数コードを復号するための、本発明を具
体化した装置のブロック図である。
【図2】線形代数コード復号のためのキー方程式を解く
ための本発明者等のアルゴリズムを実施する際に従うべ
きステップのシーケンスを示す流れ図である。
【図3A】バーレカンプの従来技術のキー方程式解法ア
ルゴリズムを本発明者等の修正されたアルゴリズムとの
比較のために要約して示す図表である。
【図3B】本発明者等の修正されたアルゴリズムを図3
Aのバーレカンプの従来技術のキー方程式解法アルゴリ
ズムとの比較のために要約して示す図表である。
【図4】本発明者等の並列化アルゴリズムの実施態様で
使用される2「レベル」循環シフト・レジスタの図であ
る。
【図5A】キー方程式解法アルゴリズムによって実行さ
れるAループの乗算依存関係図である。
【図5B】キー方程式解法アルゴリズムによって実行さ
れるBループの乗算依存関係図である。
【図6】それぞれ奇数サイクル及び偶数サイクルから成
る2つの連続した繰返しの間のAループとBループの結
合を示す、本発明による並列化アルゴリズムのスケジュ
ール図表である。
【図7A】ラッチのブロック図である。
【図7B】ラッチの状態図表である。
【図8A】マルチプレクサのブロック図である。
【図8B】マルチプレクサの回路図である。
【図8C】マルチプレクサの状態図表である。
【図9】本発明者等の訂正装置のビット・スライス回路
の概略図である。
【図10】訂正装置のモジュール式バイト・スライス回
路の概略図である。
【図11】クロック発生回路の概略図である。
【図12】制御信号回路の概略図である。
【図13】反転回路の概略図である。
【図14】図13の回路による反転の結果を示す概略回
路図である。
【図15】2t回の繰返しの後で計算を終了させるため
の終了回路の概略図である。
【図16A】各クロックが活動状態になる条件を示す表
である。
【図16B】異なる変数を含むシフト・レジスタとそれ
らのレジスタに対して実行される異なる動作との関係を
示すマトリックス図である。
【図17A】シンドローム・ラッチに対する最初の入力
データ・ビット用の初期設定ビット・スライス回路の概
略図である。
【図17B】図17Aの残りの7個のビット用の初期設
定ビット・スライス回路の概略図である。
【図18】末端列ビット・スライス回路の概略図であ
る。
【図19】エラー訂正装置の先頭のバイト・スライス回
路の概略図である。
【図20】エラー訂正装置の末端のバイト・スライス回
路の概略図である。
【図21A】t=8の場合の完全な訂正装置の概略図で
ある。
【図21B】t=8の場合の完全な訂正装置の概略図で
ある。
【符号の説明】
12 シンドローム発生機構 13 バッファ 14 キー方程式解法回路 15 「チェン」探索回路 16 エラー値計算回路 17 ゲート 30 ビット・スライス回路 40 バイト・スライス回路 49 クロック発生回路 80 終了回路
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ユー・シュヴィーゲルスホーン アメリカ合衆国10547、ニューヨーク州モ ヒガン・レーク、クロムウェル・プレース 19番地B (72)発明者 サミュエル・ヴィノグラード アメリカ合衆国10583、ニューヨーク州ス カースデール、グレンデール・ロード 235番地

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】線形代数コードを復号するのに必要なキー
    方程式を解くための並列化アルゴリズムを実現する装置
    であって、 2つの繰返しループを実現して、2回の繰返し毎に一方
    のループが3回の乗算動作を実行し、他方のループが5
    回の乗算動作を実行するようにする回路手段と、 上記ループを結合して、該結合されたループが1回の繰
    返し毎に4回の乗算動作を実行するようにする結合手段
    と、 上記ループの各々をその乗算動作が当該ループまたは他
    のループの所定の乗算動作と並列に実行されるように選
    択的にスケジューリングする手段とを備える上記装置。
  2. 【請求項2】複数のラッチを有し、該ラッチの各々はそ
    れぞれの値が予め選択されたフィールドにおける記号で
    あり且つ上記アルゴリズムで使用されるような、複数の
    ベクトル変数の各々の1ビットを上記記号内の同じ相対
    位置においてそれぞれ記憶するように配設され、 さらに上記アルゴリズムを実現するのに必要な、上記変
    数に対する複数の動作を多重化するための複数のスイッ
    チとを有する、ビット・スライス回路を備える、請求項
    1の装置。
  3. 【請求項3】複数のラッチを有し、該ラッチの各々はそ
    れぞれの値がバイトであり且つ上記アルゴリズムで使用
    されるような、複数のベクトル変数の各々の1ビットを
    上記バイト内の同じ相対位置においてそれぞれ記憶する
    ように配設され、 さらに上記アルゴリズムへの入力バイトを生成するため
    のシンドローム発生手段と、 クロック信号を発生する手段と、 上記入力バイト及び上記クロック信号に応答して制御信
    号を発生する手段と、 各スイッチが、上記アルゴリズムを実行するため、上記
    入力バイトからの1ビットと上記クロック信号及び上記
    制御信号を受け取る、複数のスイッチとを有する、ビッ
    ト・スライス回路を備える、請求項1の装置。
  4. 【請求項4】n個のビット・スライス回路(nは予め選
    択されたフィールドからの記号のディジット数)から成
    る記号スライス回路を有し、該ビット・スライス回路の
    各々は複数のラッチを含み、該ラッチの各々はそれぞれ
    の値が予め選択されたフィールドにおける記号であり且
    つ上記アルゴリズムで使用されるような、複数のベクト
    ル変数の各々の1ビットを上記記号内の同じ相対位置に
    おいてそれぞれ記憶するように配設され、 さらに上記アルゴリズムを実現するのに必要な上記複数
    の変数に対する複数の動作を多重化するための複数のス
    イッチとを有する、請求項1の装置。
  5. 【請求項5】上記記号スライス回路が、上記予め選択さ
    れたフィールド内の記号を乗算するための一対の乗算器
    を備える、請求項4の装置。
  6. 【請求項6】線形代数コードを復号するのに必要なキー
    方程式を解くための並列化アルゴリズムを実現する装置
    であって、 2つの直線ループに分岐する1つの分岐条件を持つ計算
    ループを含む手段を有し、上記ループの一方は3回の乗
    算動作を実行し、上記ループの他方は5回の乗算動作を
    実行し、エラー状態のt個の記号を復号するためにこれ
    ら2つのループを2t回繰り返すことが必要であり、 さらに連続した2t回の各繰返しの間に4回の乗算動作
    が対になって同時に実行され、上記他方のループでの5
    回目の乗算動作が上記一方のループの次の繰返しでの乗
    算動作と対になるように、上記2つのループを結合する
    手段とを有する、上記装置。
  7. 【請求項7】上記結合手段が、上記の対になった一方の
    乗算動作中に反転テーブル・ルックアップ動作を実行
    し、上記のもう一方の乗算動作中に加算動作を実行する
    ように動作する手段を含む、請求項6の装置。
  8. 【請求項8】上記結合手段がモジュール構造を有してい
    て、t+1個のモジュールから構成される、請求項6の
    装置。
  9. 【請求項9】下記ステップ(a)ないし(c)を含む、
    線形代数コードを復号するのに必要なキー方程式を解く
    ための並列化アルゴリズムを実現する方法。 (a)2つの繰返しループを与えて、2回の繰返し毎に
    一方のループが3回の乗算動作を実行し、他方のループ
    が5回の乗算動作を実行するようにするステップ。 (b)上記2つのループを結合して、該結合されたルー
    プが1回の繰返し毎に4回の乗算動作を実行するように
    するステップ。 (c)上記ループの各々を、その乗算動作が当該ループ
    または他のループの所定の乗算動作と並列に実行される
    ように選択的にスケジューリングするステップ。
  10. 【請求項10】下記ステップ(a)及び(b)を含む、
    線形代数コードを復号するのに必要なキー方程式を解く
    ための並列化アルゴリズムを実現する方法。 (a)2つの直線ループに分岐する1つの分岐条件を有
    する計算ループを与えるステップ。上記ループの一方は
    3回の乗算動作を実行し、上記ループの他方が5回の乗
    算動作を実行し、エラー状態のt個の記号を復号するた
    めにこれら2つのループを2t回繰返すことが必要であ
    る。 (b)連続した2t回の各繰返しの間に4回の乗算動作
    が対になって同時に実行され、上記他方のループでの5
    回目の乗算動作が上記一方のループの次の繰返しでの乗
    算動作と対になるように、上記ループを結合するステッ
    プ。
  11. 【請求項11】上記の対になった一方の乗算動作中に反
    転テーブル・ルックアップ動作を実行し、上記のもう一
    方の乗算動作中に加算動作を実行するステップを含む、
    請求項10の方法。
JP3348390A 1991-01-22 1991-12-05 線形代数コード復号のためのキー方程式を解く方法 Expired - Lifetime JPH0827732B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US64416091A 1991-01-22 1991-01-22
US644160 1991-01-22

Publications (2)

Publication Number Publication Date
JPH0721048A true JPH0721048A (ja) 1995-01-24
JPH0827732B2 JPH0827732B2 (ja) 1996-03-21

Family

ID=24583699

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3348390A Expired - Lifetime JPH0827732B2 (ja) 1991-01-22 1991-12-05 線形代数コード復号のためのキー方程式を解く方法

Country Status (4)

Country Link
US (1) US5428628A (ja)
EP (1) EP0496157A3 (ja)
JP (1) JPH0827732B2 (ja)
CA (1) CA2057666A1 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69424877T2 (de) * 1993-11-04 2001-01-04 Cirrus Logic, Inc. Reed-solomon-dekoder
US5483236A (en) * 1993-12-20 1996-01-09 At&T Corp. Method and apparatus for a reduced iteration decoder
US5530661A (en) * 1994-10-05 1996-06-25 Winnov Data bit-slicing apparatus and method for computing convolutions
FR2743912B1 (fr) * 1996-01-24 1998-04-10 Matra Communication Circuit de resolution d'equation-cle et decodeur reed-solomon incorporant un tel circuit
US6154868A (en) * 1997-07-18 2000-11-28 International Business Machines Corporation Method and means for computationally efficient on-the-fly error correction in linear cyclic codes using ultra-fast error location
US6252958B1 (en) * 1997-09-22 2001-06-26 Qualcomm Incorporated Method and apparatus for generating encryption stream ciphers
US6510228B2 (en) * 1997-09-22 2003-01-21 Qualcomm, Incorporated Method and apparatus for generating encryption stream ciphers
US5946328A (en) * 1997-11-17 1999-08-31 International Business Machines Corporation Method and means for efficient error detection and correction in long byte strings using integrated interleaved Reed-Solomon codewords
US6275965B1 (en) 1997-11-17 2001-08-14 International Business Machines Corporation Method and apparatus for efficient error detection and correction in long byte strings using generalized, integrated, interleaved reed-solomon codewords
US6058500A (en) * 1998-01-20 2000-05-02 3Com Corporation High-speed syndrome calculation
US6449746B1 (en) * 1998-08-17 2002-09-10 T. K. Truong Decoding method for correcting both erasures and errors of reed-solomon codes
US6560338B1 (en) 1998-08-28 2003-05-06 Qualcomm Incorporated Limiting delays associated with the generation of encryption stream ciphers
US6490357B1 (en) 1998-08-28 2002-12-03 Qualcomm Incorporated Method and apparatus for generating encryption stream ciphers
US6263471B1 (en) 1999-03-05 2001-07-17 Industrial Technology Research Institute Method and apparatus for decoding an error correction code
US6553536B1 (en) * 2000-07-07 2003-04-22 International Business Machines Corporation Soft error correction algebraic decoder
US6792569B2 (en) * 2001-04-24 2004-09-14 International Business Machines Corporation Root solver and associated method for solving finite field polynomial equations
US7865809B1 (en) * 2004-03-11 2011-01-04 Super Talent Electronics, Inc. Data error detection and correction in non-volatile memory devices
FR2865083B1 (fr) * 2004-01-13 2006-04-07 Canon Kk Decodage pour code de geometrie algebrique associe a un produit fibre.
US7516389B2 (en) * 2004-11-04 2009-04-07 Agere Systems Inc. Concatenated iterative and algebraic coding
US7467346B2 (en) * 2005-08-18 2008-12-16 Hitachi Global Storage Technologies Netherlands, B.V. Decoding error correction codes using a modular single recursion implementation
CN101442394B (zh) * 2008-11-10 2011-06-29 西安电子科技大学 可迭代译码的网络编码协作通信方法
JP5525498B2 (ja) 2011-09-13 2014-06-18 株式会社東芝 誤り検出装置
US8996966B2 (en) 2013-02-27 2015-03-31 Kabushiki Kaisha Toshiba Error correction device and error correction method
US9166623B1 (en) * 2013-03-14 2015-10-20 Pmc-Sierra Us, Inc. Reed-solomon decoder
US10879933B2 (en) * 2018-04-16 2020-12-29 SK Hynix Inc. Reed solomon decoder and semiconductor device including the same

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4665523A (en) * 1984-02-15 1987-05-12 Stanford University Method and means for error detection and correction in high speed data transmission codes
US4747103A (en) * 1985-03-21 1988-05-24 Canon Kabushiki Kaisha Signal processing apparatus for correcting decoding errors
US4937829A (en) * 1987-04-24 1990-06-26 Ricoh Company, Ltd. Error correcting system and device
US4845713A (en) * 1987-06-08 1989-07-04 Exabyte Corporation Method and apparatus for determining the coefficients of a locator polynomial

Also Published As

Publication number Publication date
EP0496157A2 (en) 1992-07-29
EP0496157A3 (en) 1992-08-12
US5428628A (en) 1995-06-27
JPH0827732B2 (ja) 1996-03-21
CA2057666A1 (en) 1992-07-23

Similar Documents

Publication Publication Date Title
US5428628A (en) Modular implementation for a parallelized key equation solver for linear algebraic codes
US4873688A (en) High-speed real-time Reed-Solomon decoder
Lee High-speed VLSI architecture for parallel Reed-Solomon decoder
US7080310B2 (en) Forward error corrector
US5440570A (en) Real-time binary BCH decoder
US5467297A (en) Finite field inversion
JP3238128B2 (ja) リードソロモン符号化装置および方法
US5805617A (en) Apparatus for computing error correction syndromes
JPH09507117A (ja) リードソロモン復号化器
KR100260415B1 (ko) 고속시리얼에러위치다항식계산회로
JP3272307B2 (ja) リード・ソロモン符号の復号回路
US6978415B1 (en) Variable redundancy cyclic code encoders
KR100322739B1 (ko) 유한체연산방법및그장치
US7870468B1 (en) Reed-solomon decoder using a configurable arithmetic processor
KR100258951B1 (ko) 리드-솔로몬(rs) 복호기와 그 복호방법
Berlekamp et al. A Hypersystolic Reed-Solomon Decoder¹
JPH11136136A (ja) リードソロモン符号化装置及び方法
EP0989679A1 (en) Method of correcting lost data and circuit thereof
EP1175015B1 (en) Decoding circuit and decoding method thereof
JP3614978B2 (ja) ガロア体の除算方法および除算装置
US7987412B2 (en) Reed Solomon decoding of signals having variable input data rates
RU2314639C1 (ru) Устройство декодирования кодов рида-соломона
WO2000028669A1 (en) A high speed pre-computing circuit and method for finding the error-locator polynomial roots in a reed-solomon decoder
JP3860023B2 (ja) 復号回路および復号方法
Reeve et al. A FPGA implementation of a parallel Viterbi decoder for block cyclic and convolution codes