JPH0827732B2 - 線形代数コード復号のためのキー方程式を解く方法 - Google Patents

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

Info

Publication number
JPH0827732B2
JPH0827732B2 JP3348390A JP34839091A JPH0827732B2 JP H0827732 B2 JPH0827732 B2 JP H0827732B2 JP 3348390 A JP3348390 A JP 3348390A JP 34839091 A JP34839091 A JP 34839091A JP H0827732 B2 JPH0827732 B2 JP H0827732B2
Authority
JP
Japan
Prior art keywords
algorithm
sequence
circuit
error
multiplications
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 - Lifetime
Application number
JP3348390A
Other languages
English (en)
Other versions
JPH0721048A (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 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)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、線形代数コードを復号
するための装置及び方法に関し、さらに具体的には、リ
ード=ソロモン(RS)コード復号のためのキー方程式
を解くために従来技術の装置で使用されていた以上の追
加のハードウェアを必要とせずに待ち時間を改善するア
ルゴリズムを使って、上記のキー方程式を解く装置及び
並列計算法に関するものである。
【0002】
【従来の技術】本発明に最も関係があると考えられる従
来技術の参照文献を以下に示す。 [A]E.R.バーレカンプ(Berlekamp)、“Algebraic
Coding Theory",McGraw Hill,178−199頁,19
68年。 [B]J.L.マッセイ(Massey),“Shift-Register Sy
nthesis and BCH Decoding",IEEE Trans. on IT, IT-1
5, 1969年1月。 [C]K.Y.リュー(Liu),“Architecture for VLSI
Design of Reed-Solomon Decoders",IEEE Trans. on Co
mputers,1984年2月,178−189頁。 [D]D.L.ホワイティング(Whiting),“Bit-Serial
Reed-Solomon Decoders in VLSI",PhD thesis, Califo
rnia Institute of Technology,1984年 [E]R.T.チェン(Chien),“Cyclic Decoding Proc
edures for BCH 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) であ
り、その解(存在する場合)は有理関数となる。
【数4】 2t−1 線形代数コードに関する所与の一組のシンドローム{S
i} を多項式S i=0 (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でゲートされて、推定エ
ラー・パターンを表す出力e’(x)を発生する。出力
e’(x)は18でバッファ13からの出力(線11か
らバッファへのコードワード+エラー・パターンの入力
に相当する)と加算され、線19に訂正済みのコードワ
ードc(x)を発生する。
【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】図3において左側にバーレカンプが参照文
献[A]で示したアルゴリズムが示されており、右側に
これと対比した形で本発明のアルゴリズムが示されてい
る。本発明者等のアルゴリズムの流れ図はより具体的に
は図2Bに示される。計算は以下のように5つのステッ
プに分かれる。 ステップ1(初期設定)
【数5】
【0020】ステップ1では、ベクトル変数v,u,p
及びqが初期設定される。これらのベクトルの各々はそ
れぞれt個の構成要素を有する。上で使用した規約は、
u及びqに「オール・ゼロ」ベクトルを割り当て、v及
びpの両方の最下位の係数に値1を割り当て、その他の
係数は0とするものである。繰返しの回数をカウントす
るために使用されるスカラ変数iには、最初に値−1を
割り当てる。スカラ変数Rは、アルゴリズムのステップ
2が実行される回数をカウントし、スカラ変数rは,ス
テップ2及びステップ4が実行される回数の差をカウン
トする。アルゴリズムの終了を判定するために使用され
るスカラ変数t’は、訂正可能なエラーの数であるtか
ら始まる。 ステップ2(線形従属性テスト)
【数6】
【0021】ステップ2では、i及びRが1だけ増分さ
れ、u及びpが1位置だけ右にシフトされる(上記規約
では、ベクトルの内容を右に0を付加したベクトルで置
換するものとして示す)。
【0022】ステップ2で実行される主な計算は、Sベ
クトルの内容とvベクトルの内容とのたたみ込みであ
り、その結果、一般に「不一致(discrepanc
y)」と呼ばれる値eが得られる。(参照文献[A]参
照)。実際には、この計算は、vの現在値で重み付けし
たシンドロームが線形独立であるかどうかを検査する。
【0023】e=0である場合は、そのように重み付け
されたシンドロームは線形従属である。その場合は、図
2Bに示すようにステップ2が繰り返される。図2Bに
おいてステップ2に続くR=t’の判定は2r≧i+1
の判定と等価である。e≠0の場合は、アルゴリズムは
ステップ3に進む。 ステップ3(更新)
【数7】
【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(多項式反復)
【数8】
【0028】ステップ4で、反復カウント変数iが増分
され、同時にRの値が減少される。Rが0よりも大きい
限り、Rが0になるまでステップ4が繰り返され、Rが
0になると、図2B及び図3に示すように、プログラム
制御ステートメントによって、計算はステップ2に戻
る。
【0029】ステップ2の開始時に、アルゴリズムは、
Rの値としきい値t’を比較することにより、ステップ
2が何回実行されたかを調べる。R=t’の場合、アル
ゴリズムは、「出口テスト」であるステップ5に進む。 ステップ5(出口テスト)
【数9】
【0030】ステップ5に入ると、ステップ5は「デコ
ード失敗」出口を生成するか、またはエラー位置検出多
項式係数及びエラー評価多項式係数、すなわちそれぞれ
ベクトルv及びqを発生する。
【0031】バーレカンプと本発明者等のアルゴリズム
の比較 バーレカンプのアルゴリズムは、図2Aに要約して示さ
れる。バーレカンプのアルゴリズムと本発明者等のアル
ゴリズムとの主な違いは実行される乗算の回数にある。
不一致”e”がゼロでない場合にはバーレカンプのアル
ゴリズムはeの計算毎に5回の乗算を必要とするが、本
発明のアルゴリズムでは4対の乗算が行われ、各対の乗
算は2つの並列乗算として行われる。本発明者等のアル
ゴリズムは、図2A及び図2Bの比較から明らかなよう
に、(1)初期設定ステップ、(2)「不一致」eの計
算、及び(3)シーケンス分岐条件の点で、バーレカン
プのアルゴリズムとは異なる。
【0032】バーレカンプのアルゴリズムと本発明者等
のアルゴリズムにおけるeの計算は、バーレカンプの変
数加算の代わりに、本発明者等のアルゴリズムでは、入
力ベクトル[So,S1,...,S2t-1]を処理するた
めに循環シフト・レジスタ20(図4)に移されるよう
な固定加算が用いられる点で異なる。シフト・レジスタ
20は2つの「レベル」、すなわち、上位レベルS1と
下位レベルS2を有する。シフト・レジスタ20の全て
のラッチは、最初に図4に示す位置に並列にロードされ
る。この機能は、キー方程式を解くための並列化アルゴ
リズムを実施するために不可欠である。
【0033】本発明の重要な特徴によれば、バーレカン
プのアルゴリズムとは異なり、本発明者等のアルゴリズ
ムのステップ3は反復できない。より具体的にいうと、
ステップ3の2つの相続く実行の間に、ステップ4の少
なくとも1回の実行及びステップ2の1回の実行があ
る。
【0034】図2Bに示される本発明のアルゴリズムは
表2に示されるAシーケンス及びBシーケンスのシーケ
ンスに変換される。本発明のアルゴリズムのステップ2
及びステップ3は図2Bに示されるように組み合わされ
てBシーケンスとなる。これと同様にステップ4は同じ
く図2Bに示されるようにAシーケンスとなる。更に、
冗長な乗算、たとえばゼロを乗ずる乗算、を導入するこ
とにより、ステップ5及びステップ2は同様にAシーケ
ンスの形に変換される。このようにして本発明のアルゴ
リズム全体がA及びBのシーケンスを実行する。
【表2】
【0035】図2Bからわかるように、本発明者等のシ
ーケンス構造では、ステップ3は直接ループしないよう
になっている。これに対し、バーレカンプの従来のシー
ケンスは図2Aに示されるように条件付き分岐制御条件
( e=0 or 2r>i+1)が満たされるまで続
けてループする。したがって本発明においてはB−Bシ
ーケンス(表2)が実行されるのを防ぐ。言い換える
と、図2Bからわかるように、ステップ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は可能でない(図2B参照)。
【0042】図5A及び図5Bから、上述の全ての組合
せが、有効なスケジュールをもたらすことが明らかであ
る。最後の繰返しがタイプBである場合は、u及びpの
更新は冗長になることに留意されたい。したがって、本
発明者等のアルゴリズムは、4t+1回の乗算サイクル
で実行することができ、2t個の乗算器が必要となる。
実際には、データ・ベクトルの初期条件を利用する場合
は、乗算サイクルの数を2だけ減らすことが可能であ
る。要約すると、図2Bから判るように、ステップ2に
おいてeを計算し、ステップ3においてu,v,p,q
を計算し、ステップ4においてe,v,qを計算するた
めに別々の乗算が必要とされる。Aシーケンスは合計3
回の乗算のためにステップ4だけを含む。Bシーケンス
は合計5回の乗算のためにステップ2及びステップ3を
含む。Aシーケンスにおけるv及びqのための2回の乗
算は図5Aの動作依存関係に従って並列に実行されう
る。図6はAシーケンスにおいてvが偶数サイクルで計
算され、qが奇数サイクルで後に計算されることを示し
ている。Bシーケンスにおけるu、v、p、qのための
4回の乗算は図5Bの動作依存関係に従って互いに並列
に行われ得る。eの計算を含めるとシーケンスAが3回
の乗算、シーケンスBが5回の乗算を含むことが示され
ている。図6はBシーケンスにおいてvが偶数サイクル
に計算され、qが奇数サイクルに計算されることを示し
ている。これらは4対の乗算で各対が並列に計算される
ことを表している。つまり、図6の最初の計算シーケン
スを見ると、奇数サイクルでは1つのBシーケンスの乗
算が行われように示されているが、偶数サイクルでは2
つのシーケンスB乗算が行われ、2回目の計算シーケン
スでは奇数、偶数サイクルそれぞれにシーケンスA及び
Bの乗算が行われる。図6の最後のシーケンスA乗算は
次の最初の計算シーケンスに繰り越されてシーケンスB
の乗算と対になる。本発明のアルゴリズムはバイト・ス
ライス当たり、かつ合計tバイト・スライスに対して2
つの乗算器M1及びM2(図10)を必要とするだけで
ある。
【0043】ハードウェアの実施態様 簡単で均質なハードウェア実施態様を実現するため、タ
イプB−A及びタイプAまたはA−Aのシーケンスに共
通のスケジュールが生成される。このスケジュールを図
6に示す。図6はアルゴリズムの動作シーケンスを変え
ることにより本発明がどのようにして並列化を達成する
かを示している。不一致値の全てのシーケンス(単に幾
つかの不一致値ではなく)に対して多くても4対の乗算
が行われるだけであり、各乗算対が並列乗算として行わ
れることに注目されたい。このスケジュールを使って、
本発明者等のキー方程式解法回路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ラッチ25
eからのデータを修正またはシフトする。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の間に
ラッチp、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は、8個のラッ
チから成る8ビット・レジスタ75(図14)に記憶さ
れる。レジスタ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】線形代数コードを復号するための、本発明を具
体化した装置のブロック図である。
【図2A】バーレカンプの従来技術のキー方程式解法ア
ルゴリズムを要約して示す図表である。
【図2B】本発明の修正されたアルゴリズムをバーレカ
ンプの従来技術のキー方程式解法アルゴリズムと対比し
た形で示す図表である。
【図3】バーレカンプのアルゴリズムと本発明者等の修
正されたキー方程式解法アルゴリズムとを対比して示す
図表である。
【図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番地 (56)参考文献 特開 昭61−273018(JP,A) 特開 平2−20123(JP,A) 特開 平2−303221(JP,A) 特開 平2−16637(JP,A)

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】t=訂正すべきエラーの数、エラー位置検
    出多項式をv、エラー評価多項式をq、u及びpを補助
    多項式であるとし、Sをエラー・シンドロームとして線
    形代数コードを復号するのに必要なキー方程式 v(z)・S(z)≡ q(z)mod(z2t) を解くためのアルゴリズムを実現する方法であって、 (a)前記多項式v,u,p及びqを初期設定し、 変数r,t’,R,iを r=0 t’=t R=0 i=−1 に初期設定するステップと、 (b)i=i+1,R=R+1によりi及びRを増分し
    て前記多項式u及びpを1位置シフトするステップと、 (c) 【数1】 により不一致値eを計算するステップと、 (d)e=0又は2r≧i+1でなくなるまでステップ
    (b)ないし(c)を繰り返すステップと、 (e)e=0又は2r≧i+1でなければ r=r+R t’=t’−R によりr及びt’を更新して v=v−e・u u=v/e q=q−e・p p=q/e に従ってv,u,q,及びpを更新するステップと、 (f)i=i+1として u及びpを1位置シフトして、 【数2】 により不一致値eを計算するステップと、 (g)v=v−e・u q=q−e・p に従ってv及びqを更新してR=R−1とするステップ
    と、 (h)R>0である間(f)及び(g)を繰り返すステ
    ップと、 (i)R=t’でなければ(b)に戻り、 (j)R=t’であるならば i=i+1として 【数3】 により不一致値eを計算するステップと、 (k)e≠0であるならば i=2t−1となるまで(j)を繰り返し このときのv及びqをエラー位置検出多項式v及びエラ
    ー評価多項式qとするステップと、 を含む方法。
  2. 【請求項2】ステップ(b)ないしステップ(e)から
    成るBシーケンスが5つの乗算を含み、ステップ(f)
    ないしステップ(g)から成るAシーケンスが3つの乗
    算を含み、エラー状態のt個の記号を復号するためにこ
    れら2つのシーケンスを2t回繰返すことが必要であ
    り、連続した2t回の前記2つのシーケンスの各繰返し
    の間に、乗算動作を2つの並列乗算の対として4回実行
    し、上記Bシーケンスでの5回目の乗算動作が上記Aシ
    ーケンスの次の繰返での乗算動作の1つと対に組み合わ
    され、て成る請求項1の方法。
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 JPH0721048A (ja) 1995-01-24
JPH0827732B2 true 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
JPH0721048A (ja) 1995-01-24
EP0496157A3 (en) 1992-08-12
US5428628A (en) 1995-06-27
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
US7080310B2 (en) Forward error corrector
US5440570A (en) Real-time binary BCH decoder
US6347389B1 (en) Pipelined high speed reed-solomon error/erasure decoder
US5467297A (en) Finite field inversion
JPH09507117A (ja) リードソロモン復号化器
US5535225A (en) Time domain algebraic encoder/decoder
KR100260415B1 (ko) 고속시리얼에러위치다항식계산회로
KR100970223B1 (ko) 리드-솔로몬 코드의 소프트-결정 디코딩 방법, 리드-솔로몬 코드워드 디코더 및 컴퓨터 프로그램 제품
US6978415B1 (en) Variable redundancy cyclic code encoders
US7870468B1 (en) Reed-solomon decoder using a configurable arithmetic processor
KR19990026630A (ko) 리드-솔로몬 복호기와 그 복호방법
JPH11136136A (ja) リードソロモン符号化装置及び方法
EP0991196B1 (en) Method of correcting lost data and circuit thereof
Berlekamp et al. A Hypersystolic Reed-Solomon Decoder¹
US6871315B2 (en) Decoding circuit and decoding method thereof
JP3614978B2 (ja) ガロア体の除算方法および除算装置
US7987412B2 (en) Reed Solomon decoding of signals having variable input data rates
US6691277B1 (en) High speed pre-computing circuit and method for finding the error-locator polynomial roots in a Reed-Solomon decoder
JP3860023B2 (ja) 復号回路および復号方法
JPH0750595A (ja) 復号化装置
JP2710176B2 (ja) 誤り位置及び誤りパターン導出回路
Reeve et al. A FPGA implementation of a parallel Viterbi decoder for block cyclic and convolution codes
KR0167390B1 (ko) 복호화 장치