JP2001502153A - 大規模データ・ブロックのためのハードウェア最適化リード・ソロモン・デコーダ - Google Patents

大規模データ・ブロックのためのハードウェア最適化リード・ソロモン・デコーダ

Info

Publication number
JP2001502153A
JP2001502153A JP11510715A JP51071599A JP2001502153A JP 2001502153 A JP2001502153 A JP 2001502153A JP 11510715 A JP11510715 A JP 11510715A JP 51071599 A JP51071599 A JP 51071599A JP 2001502153 A JP2001502153 A JP 2001502153A
Authority
JP
Japan
Prior art keywords
error
polynomial
register
value
syndrome
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
JP11510715A
Other languages
English (en)
Other versions
JP3970337B2 (ja
Inventor
ティルモールティー、ハーリ
カール、アール.ビッティク
ザミール、エヌ.フーリーアルカー
Original Assignee
コーニンクレッカ、フィリップス、エレクトロニクス、エヌ、ヴィ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by コーニンクレッカ、フィリップス、エレクトロニクス、エヌ、ヴィ filed Critical コーニンクレッカ、フィリップス、エレクトロニクス、エヌ、ヴィ
Publication of JP2001502153A publication Critical patent/JP2001502153A/ja
Application granted granted Critical
Publication of JP3970337B2 publication Critical patent/JP3970337B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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
    • H03M13/151Cyclic 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)【要約】 所望のガロア体上の最大t個の誤りを有する大規模データ・ブロックの誤り位置および大きさを計算するためのリード・ソロモン・デコーダに使用される誤り計算プロセッサである。このプロセッサは、誤り位置多項式、誤り評価多項式および誤りであると決定された位置にある誤りの値を計算することができる。計算は、2つの多項式記憶レジスタ、2つの要素記憶レジスタ、選択された乗算および除算を実行する1つの乗算器、選択された加算および減算を実行する1つの加算器、1つの誤り位置スタック、1つの誤り値スタック、および大規模データ・ブロックのシンドロームを記憶するシンドローム・レジスタのみを用いて実行される。

Description

【発明の詳細な説明】 大規模データ・ブロックのための ハードウェア最適化リード・ソロモン・デコーダ 1.発明の分野 本発明は、一般に、リード・ソロモン・デコーダに関し、特に、大規模データ ・ブロックにおける誤りの位置およびその大きさを計算するための改良された誤 り計算プロセッサに関する。 2.関連技術の説明 デジタル・データ伝送および記憶システムにおける誤り検出および訂正の主な 方法の1つは、リード・ソロモン符号として知られている誤り訂正符号の部類の ものを使用する。このような2つのリード・ソロモン・システムは、S.LinとD.J .Costello,Jr.による「誤り制御符号:基礎と応用(Error Control Coding:Fml damentals and Applications)」(プレンティスホール出版社、Englewood Clif fs,N.J.1983年)(以下「誤り制御符号」という。)の第6章と、R.E.Blahut による「誤り制御符号の理論と実践」(アディソン・ウェスリー出版社、リーデ イング、マス、1983年)(以下「誤り制御符号の理論と実践」という。)の第7 章とに示されている。従来システムにおける符号化および復号方法の背後にある 理論は、当業者には周知であり、受信データまたは検索データの誤りの検出およ び訂正のためのいくつかの復号アルゴリズムとして知られている。一般的には、 復号プロセスは、符号化プロセスよりも複雑である。 公知のリード・ソロモン・デコーダのこのような1つの応用は、地上放送、ケ ーブルまたは衛生チャネル上のデジタル圧縮ビデオの伝送に見られる。たとえば 、 グランド・アライアンス(GA)は、このようなチャネル上をデジタルHDTV 伝送のための標準を発表した。GAのHDTV伝送システムは、順方向誤り訂正 のために規定された(207,187)リード・ソロモン(以下「R−S」とも いう。)符号を使用する。この符号では、187バイトの「ペイロード」データ と付加的な20バイトの誤りチェック・データとが、207バイトのリード・ソ ロモン・ブロックを構成する。 上記例では、R−Sブロックの約10パーセントが、誤りチェック・データか ら構成される。これは、ブロック・データの中では比較的小さな比率である。一 般に、ブロック・サイズが大きくなればなるほど、所与の性能要求を満たすため に必要となる誤りチェック・データのブロック比率は小さくなる。復号プロセス の実行時間は誤りチェック・データの量にのみ依存するので、ブロック・サイズ が大きくなるほど、より小さな比率のブロック処理時間を、所与の処理速度で誤 り検出および訂正のために使用することが可能となる。逆に言えば、遅い速度で 処理を実行することができる。その結果、これは、集積回路上で効率的に実現さ れる、より簡単で、より経済的なハードウェアの見返りに、処理速度の妥協を可 能にする。 典型的な放送通信または永久保存データ記憶システムでは、各受信機または検 索装置は、このようなデコーダを必要とし、また、これらは、民生品として市場 で販売することができるので、デコーダの設計は、可能な限り単純、効率的で、 かつ、経済的であることが望ましい。 したがって、従来技術のリード・ソロモン・デコーダは、ある程度は満足のい くものではあるが、GA標準において行うように、R−Sデータ・ブロックがあ る長さを超える状況に対して、従来技術に見られるよりもハードウェア効率がよ く、かつ、より汎用のアーキテクチャを使用する、一層単純で効率的なリード・ ソロモン・デコーダが望まれている。 発明の概要 リード・ソロモン復号の一般的な方法では、所与のR−Sブロック内のデータ の一組の累積「合計」が計算される。これらは、「シンドローム」と呼ばれ、そ のブロックの誤りチェック・バイトと数において等しい。ブロック内のすべての 誤りの位置および大きさは、このシンドロームのみを使用して決定され、誤り状 態にあるバイトの数が誤りチェック・バイト数の半分を超えないすべてのブロッ クについては正しい。この知識によって、誤り状態にあるバイトを、ブロック内 に発見することができ、それぞれは識別されるので、オリジナルの値を復元する ために、誤りの大きさを不正データに加えることができる。シンドローム計算は 、各データ・ブロックに対して実行されなければならず、デコーダにデータが入 力される際に、標準的な方法を使用して実行することができる。最終的な訂正も 、全体のブロックに対して実行されなければならず、また、誤り位置および大き さが決定された後、データがデコーダから出力される際に、実行することができ る。一方、これらの計算は、りード・ソロモン復号プロセスの最も難しい部分を 構成し、典型的には、実行するために複雑なハードウェアを必要とする。 したがって、本発明によると、そのブロックに対するシンドロームを与えると 、非常にハードウェア効率のよい方法でデータ誤り位置および大きさの計算を実 現するリード・ソロモン・デコーダのアーキテクチャが提供される。このアーキ テクチャは、ガロア体(GF)演算として知られているものであって、リード・ ソロモン復号に必要とされる、広いクラスの数学的処理を実行するように示され ている。このアーキテクチャは、シンドローム計算手段とは独立であり、少なく とも2つの周知の誤り訂正方法とともに使用されてもよい。 好ましい実施例において、誤り計算プロセッサは、2つの多項式記憶レジスタ と、2つの要素記憶レジスタと、選択された乗算および除算を実行する1つの乗 算器と、選択された加算および減算を実行する1つの加算器と、1つの誤り位置 スタックと、1つの誤り値スタックと、大規模データ・ブロックのシンドローム を記憶するシンドローム・レジスタとを利用して、誤り位置多項式と、誤り評価 多項式と、誤り状態にあると決定された位置の誤り値とを計算することができる 。 特に、第1の多項式記憶レジスタは、t+1バイトまでの誤り位置多項式の係 数を記憶するために利用することができる。第2の多項式記憶レジスタは、2t バイトまでの誤り評価多項式の係数を記憶するためと、バールカンプ−マッシー ・アルゴリズムの実行中にB(x)の係数を記憶するためとに利用することがで きる。第1の要素記憶レジスタは、相違の計算のためと、相違の正規化された値 を記憶するためと、誤り評価多項式の個々の係数の計算中に中間値を記憶するた めと、誤り評価多項式の評価の結果を記憶するためとに利用することができる。 第2の要素記憶レジスタは、前のゼロでない相違の値を記憶するために利用する ことができる。誤り位置スタックは、誤り位置多項式の根を記憶するために利用 することができる。誤り値スタックは、各誤りの大きさを記憶するためと、チエ ン探索中誤り位置多項式の導関数を記憶するためとに利用することができる。 したがって、本発明の目的は、最小のハードウェア量で最大数の処理機能を実 行する改良されたリード・ソロモン・デコーダを提供することにある。 本発明の他の目的は、集積回路に容易に集積できる改良されたリード・ソロモ ン・デコーダのアーキテクチャを提供することにある。 本発明のさらに他の目的は、処理速度の向上を達成する改良されたリード・ソ ロモン・デコーダを提供することにある。 本発明のまたさらに他の目的は、部分的に明細書から明らかになる。 したがって、本発明は、以下に説明する構成で例示される構成上の特徴、要素 の結合上の特徴および部品の配置を備えている。また、本発明の範囲は、請求の 範囲に示される。 図面の簡単な説明 本発明をより十分に理解するために、添付図面とあわせて以下の説明が参照さ れる。 ここで、図1は、グランド・アライアンス(GA)標準で規定されたリード・ ソロモン符号を示す。 図2は、本発明により構成されたリード・ソロモン・デコーダのブロック図で ある。 図3は、本発明により構成されたリード・ソロモン・デコーダのタイムチャー トである。 図4Aは、本発明により構成されたガロア体(GF)多項式プロセッサを示す 。 図4Bは、相違(Δ)の計算のための本発明の構成を示す。 図4Cは、相違(Δ)の正規化のための本発明の構成を示す。 図4Dは、誤り位置多項式Λ(x)の計算のための本発明の構成を示す。 図4Eは、誤り評価多項式Ω(x)の計算のための本発明の構成を示す。 図4Fは、誤り評価多項式Ω(x)の評価のための本発明の構成を示す。 図4Gは、検出された誤りの大きさの評価のための本発明の構成を示す。 図4Hは、本発明により構成された多項式レジスタ記憶要素(すなわち、1( 1)ビット)を示す。 図5AおよびBは、多項式の根の位置のための公知のチエン探索回路を示す。 図5Cは、本発明により構成されたプロセッサとチエン探索アーキテクチャと の相互関係を示す。 図6は、本発明と組み合わせて使用される訂正回路のブロック図である。 図7は、誤りがその出力において計算される公知の訂正回路を示す。 好ましい実施例の詳細な説明 グランド・アライアンス(GA)標準で規定されたリード・ソロモン符号が、 図1に示されている。この符号は、207バイトのブロック長を使用する。その うちの187バイトは、「ペイロード」データを構成するMPEG搬送パケット からなる。残りの20バイトは、送信機(図示せず)の符号化回路によって生成 される。この符号化回路は、本質的には、ガロア体GF(256)上の206次 多項式として処理されるデータ・ブロックの、ブロックの最後に20バイトの誤 りチェック・バイトを形成する「残余」多項式を生成する(所与のR−S符号用 に特定された)「ジェネレータ」多項式による「分割」を実行する。この回路は 、GA標準で使用されるR−S符号に特定のものであるが、公知のリード・ソロ モン・エンコーダの一般的な構造および処理を示しており、ブロック長、チェッ ク・バイト数およびジェネレータ多項式のみが異なっている。 次に、図2を参照する。図2は、リード・ソロモン・デコーダの全体を符号2 0で示している。図2に示すように、デコーダ20へのデータは、シンドローム ・コンピュータ22とリード・ソロモン・ブロック・データ遅延素子24とに入 力される。計算結果のシンドロームは、シンドローム・コンピュータ22から誤 りコンピュータ26に入力される。誤りコンピュータ26は、後に詳述するよう に、誤り位置および大きさを決定する。誤り訂正器28が設けられている。誤り 訂正器28は、誤りコンピュータ26からの誤り位置および大きさと、リード・ ソロモン・ブロック・データ遅延素子24からの遅延データとの双方を入力とし て受信する。 復号プロセスの第1ステップは、シンドローム計算である。これは、ブロック ・サイズまたはチェック・バイト数とは独立に、R−Sブロック全体の処理を必 要とする。一方、シンドローム数はチェック・バイト数に等しく、したがって、 シンドローム数は、ブロック・サイズとともに増加するが、これが生じるブロッ ク・サイズの比率は小さくなる。続いて、その結果のシンドロームは、ブロック 内の誤り位置および大きさを決定するために使用される。シンドローム計算を実 行する標準的な周知の回路は、「誤り制御符号」の第6章の特に第174頁に示 されており、この文献は参照によりこの明細書に組み込まれる。t個の誤り(G A標準ではt=10)まで訂正することができるR−S符号用デコーダは、この ような回路を2t個必要とし、各シンドロームに対して1つとなる。 シンドロームの値は、それを説明するためには、ブロック全体がデコーダ20 に入力され、入力データがリード・ソロモン・ブロック・データ遅延素子24に よって1ブロックの間隔分だけ遅延させられるまでは分からない。続いて、誤り 計算が、誤りコンピュータ26によって実行され、デコーダからのデータ出力が 訂正される。誤り訂正は、完全なブロック間隔を必要とする。誤り計算が1ブロ ック間隔内で完了するならば、R−Sブロックの「パイプライン」処理を達成す ることができ、そのデータは、第2の間隔分だけ再度遅延させられる。デコーダ 20のシステムのタイムチャートが図3に示されている。 前述したように、誤りコンピュータ26は、送信されるデータに適合したガロ ア体(8ビットのバイトの場合にはGF(256))上の多項式演算処理を使用 する計算によって誤り位置および大きさを決定する。まず、誤り位置多項式が生 成されなければならない。その多項式のGF(256)上の根は、それぞれR− Sブロック内の各検出された誤りの位置に対応する。これは、多数の標準的なア ルゴリズムのいずれを用いても行うことができる。そのアルゴリズムの中でも、 ユークリッドおよびバールカンプ−マッシーのものが最も良く知られている。高 速リード・ソロモン・デコーダの従来技術の多くのものは、ユークリッド・アル ゴリズムを使用している。これは、必要となる多項式の計算をより高速にできる からである。一方、ユークリッド・アルゴリズムは、実現により多くのハードウ ェア量を必要とするという欠点を有する。他方、バールカンプ−マッシー・アル ゴリズムは、高速ではないが、ずっと少ないハードウェア量で実現できる。これ は、ユークリッド・アルゴリズムで必要とされるものよりも少ない計算論理およ びデータ記憶で足りるからである。したがって、バールカンプ−マッシー・アル ゴリズムを利用することにより、より効率的な設計が達成される。バールカンプ −マッシー・アルゴリズムを実現するためのアーキテクチャは、アーキテクチャ を最適化し、このアルゴリズムの実行時間を減少させる手段となるように、後に 詳述される。 誤り評価多項式は、誤り位置多項式に関係し、誤り位置多項式およびR−Sブ ロックのシンドローム値を用いて計算される。この2つの多項式は、誤り位置が 決定されると、それに続いて、誤りの大きさを計算するために使用される。これ は、誤り位置多項式の根(すなわち、多項式の変数に代入されると、ゼロの結果 を与えるGF(256)の基本値)を見つけることにより行われる。根のそれぞ れは、ブロックの誤りの位置に対応する。根の発見は、チエン探索として知られ ている徹底的な探索方法を使用して実行される。チエン探索では、すべての可能 なブロック位置の値が、多項式に代入され、どの値がゼロの結果をもたらすかが 決定される。続いて、多項式の根は、以下に述べるように記憶され、周知のフォ ニー・アルゴリズムが、誤り位置多項式および誤り評価多項式を用いて各根につ ていの誤りの大きさを計算するために使用される。上述した処理のすべては、専 用ハードウェアを必要とするチエン探索を除いて、後に詳述する本発明によって 構成されたアーキテクチャを使用して実行することができる。 誤り位置多項式を計算するバールカンプ−マッシー・ァルゴリズムのフローチ ャートは、「誤り制御符号の理論と実践」第7章の特に第186頁に示されてお り、この文献は参照によりこの明細書に組み込まれる。 一般的に、バールカンプ−マッシー・アルゴリズムでは、このアルゴリズムの 所与の繰り返し期間中における2つの多項式Λ(x)とB(x)の最大長は、そ の繰り返し期間中におけるレジスタ長パラメータLの値に対応し、必ずしもレジ スタの最大長t+1に対応しない。一方、実際の設計では、このアルゴリズムを 実現するために使用される多項式シフト・レジスタは、常に最大長を有する。こ れは、任意の繰り返し期間中に、多項式処理を実行するのに必要となるクロック ・サイクル数が、その繰り返しにおける多項式の実際の長さに関わらず、常にt +1になることを意味する。アルゴリズムの各繰り返し期間中にこのような2つ の処理があるので、結果として、実際にはずっと少ないクロック・サイクルで足 りるかもしれないが、2(t+1)のクロック・サイクルが使用される。これは 、クロック・レートがハードウェアにより制限されるならば、復号速度をかなり 減少させるか、そうでなければ、所望の復号レートを達成するためにより高速の クロックを必要とする。 多項式プロセッサ60は、レジスタ長パラメータLを使用して、2つのレジス タの長さを設定し、続いて、Lより高い次数の係数を記憶するすべてのレジスタ 素子の入力から出力に「短絡回路」を生成することにより、この制限を克服する ことができる。定数長レジスタを使用すると、アルゴリズムの2t回の通過に必 要なクロック・サイクル数は、4t(t+1)である。一方、可変長レジスタを 使用すると、Lは現在の繰り返し数の半分を超えることはない。所与の通過に対 する最大サイクル数は2(L+1)となり、アルゴリズムの全サイクル数は演算 列の合計であり、2t(t+3)に等しい。2つの因子のほとんどの実行時間の 削減は、このようして達成される。これは、GA標準にとって260クロック・ サイクルに等しい。 誤り評価多項式Ω(x)は、前記計算された誤り位置多項式とシンドローム多 項式のモジュロ2t積である。特に、誤り位置多項式は、以下に述べる(図4A 参照)ように2つの記憶レジスタ61および62の1つにすでに存在し、誤り評 価多項式は、第2のレジスタ62(2tの長さを有する)に書き込み可能である ので、多項式プロセッサはこの計算を実行することができる。各積の係数は、誤 り位置多項式のすべての項を使用しており、したがって、計算にはt+1のクロ ック・サイクルを必要とする。このように、誤り評価多項式は、2t(t+1) のクロック・サイクルで計算され、これは、GA標準にとって220に等しい。 当業者には理解されるように、バールカンプ−マッシー・アルゴリズムは、2 つの多項式Λ(x)およびB(x)(T(x)が一時的な記憶として利用される ので、実際の実現では必要とされない)を必要とし、2t回の繰り返しを実行す る。「誤り制御符号の理論と実践」の第186頁に記載されているアルゴリズム を実行するシフトレジスタ・アーキテクチャは、その第189頁にも示されてい る。完全なリード・ソロモン復号プロセスのフローチャートも、前記テキストの 第190頁に示されている。前述したように、これらのすべては、参照によりこ の明細書に組み込まれる。 次に、図4Aを参照する。この図は、本発明によるリード・ソロモン復号のた めの誤り計算プロセッサ60を示している。好ましい実施例において、プロセッ サ60は、最大長t+1および2tをそれぞれ有する多項式上でガロア体演算を 実行する。ここで説明され、当業者には明らかなように、本発明によって構成さ れるプロセッサ60は、最小のハードウェアと最小の計算時間の双方のために最 適化されている。特に、プロセッサ60は、ガロア体上の多項式だけでなく、ガ ロア体の演算要素に記憶し、またその数学的処理を実行するように設計されてい る。このような要素は、標準的な2進数(ビット)を使用して表現することがで きる。たとえば、GF(256)の要素は、8ビット、すなわち1バイトを使用 して表現することができる。GF上の多項式はその係数によって表現することが できる。その結果、係数のそれぞれはGFの要素である。したがって、第n次の 多項式は、n+1個のこのような要素によって表現することができる。2進表現 を使用するGF(256)の場合には、これはn+1バイトに等しくなる。 これにより、GFの要素を標準的なデジタル・データ・レジスタに記憶するこ と、多項式をレジスタ群に記憶すること、ならびに要素と多項式の評価および演 算処理を従来のデジタル論理を使用して実行することが可能となる。 図4Aを参照して、リード・ソロモン・ブロックの2t個のシンドロームは、 シンドローム・コンピュータ22で計算され、シンドローム・レジスタ74に置 かれる。これら2t個のレジスタ74のそれぞれは、1っのシンドロームを記憶 する。このシンドロームは、、まさにGFの要素である。このように、GF(2 56)のシンドローム・レジスタは、2tバイトのレジスタからなる。R−Sブ ロック間のタイミング・ギャップが認められないならば、これらのレジスタは、 同時に2t個のシンドローム計算の結果を受信しなければならない。この場合に 、2t個の個別のレジスタが必要となる。この理由は、図3のタイムチャートか らも分かるように、R−Sブロックnに対して誤り計算が実行されているのと同 時刻に、R−Sブロックn+1のシンドロームが計算されており、そのシンドロ ーム値は、誤り計算がブロック全体(すなわちブロックの終わり)に対して実行 されるまで利用可能でないからである。さらに、シンドローム値は、シンドロー ム計算の新たなセットを開始するために、後に続くブロックの開始時にクリアさ れなければならない。これば、シンドローム値をその記憶レジスタに転送するの に、2t個のクロック・サイクルよりも少ないクロック・サイクルが利用可能で あることを意味し、したがって、シンドローム値は、同時に転送されなければな らないことを意味する。これは、、2t個のシンドロームの2t個のレジスタへ の同時書き込みを必要とする。一方、誤り計算にとって、所与の時間に1つのレ ジスタの内容を読み出すことだけが必要である。ギャップがそのタイミングにお いて認められるならば、2t個のシンドローム計算の最終結果を、このギャップ の期間中に連続して転送することができ、シンドローム・レジスタは、2tバイ トの位置を有するレジスタ・ファイル、すなわちさらに小さなメモリを用いて実 現する ことができる。シンドローム計算は、「誤り制御符号」の第6章に示されるよう に、多数の周知の方法のいずれを使用しても実行することができる。 プロセッサ60によって実行される3つのGFアルゴリズムは、誤り位置多項 式を計算するためのバールカンプ−マッシー(B−M)アルゴリズムと、誤り評 価多項式の計算と、誤り値を計算するためのフォニー・アルゴリズムである(誤 り位置を計算するチエン探索は、図5A〜Cに示す方法および構成によって実行 されることが好ましい)。これらのアルゴリズムが実行されるシーケンスは、「 誤り制御符号の理論と実践」の第190頁に示されている。3つのアルゴリズム は、すべてGFの要素および多項式の数値計算を含む。アルゴリズムの検査は、 評価および演算処理の制限されたセットのみが実行されること、および要素の最 大数と多項式の最大数が、これら3つのアルゴリズムのいずれに対しても任意の 所与の時間に記憶される必要があることを示している。これにより、図4A〜G に示す斬新でより効率的なアーキテクチャ構成が達成される。 図4Aに示すように、プロセッサ60は、GF多項式を記憶するための2つの 記憶レジスタ61および62(以下「レジスタAおよびB」ともいう。)、GF の要素を記憶するための2つのレジスタ71および72(以下「レジスタXおよ びY」ともいう。)、出力側にGF加算器80が接続されたGF乗算器78、な らびに任意のデータのソースとデスティネーションを相互接続するデータ・バス を含んでいる。このアーキテクチャの1つの特徴は、データ・バスの2つの完全 な組が存在することである。これは、ソースとデスティネーションとの間の2つ の同時データ転送を行うことを可能とする。これにより、以下に示すように、あ るアルゴリズムを、より少ない時間、すなわちより少ないクロック・サイクルで 完了させることができる。 GFの各要素が8ビットの2進数で表現されているGF(256)の場合に、 2つの要素レジスタ71、’72のそれぞれは、バイト記憶レジスタを使用して 実 現することができる。2つの多項式レジスタ61、62は、記憶された多項式の 各係数ごとに1バイトを有する複数バイト記憶を使用して実現することができる 。 tバイトの誤りを訂正する能力を有するR−S符号について、誤り計算プロセ ッサによって実行される3つのアルゴリズムに必要となる最小の多項式記憶は、 次数tの1つの多項式(1+1バイトのレジスタ記憶を必要とする)と、次数2 t−1の1つの多項式(2tバイトの記憶を必要とする)とからなる。好ましい 実施例におけるデータ・バスは8ビット・バスである。乗算器78および加算器 80は、それぞれ2つの8ビット入力と1つの8ビット出力を有し、GF(25 6)演算におけるそれらの各処理を実現する標準的な結合論理を使用して実現さ れる。 GF演算処理(加算、乗算および除算)およびデータ転送は、最終結果が要素 または別の多項式を問わず、多項式の各個々の要素に実行されなければならない ので、個々の多項式の係数バイト・レジスタへの高速連続アクセスを行うメカニ ズムが必要となる。これは、最上位の係数がレジスタの前部(出力)に位置し、 最下位の係数がレジスタの後部(入力)に位置する、係数バイトのシフト・レジ スタとして多項式記憶レジスタを実現することによって達成される。そして、多 項式の処理は、記憶レジスタ内で係数が「循環」されることを要求する。これに より、新しい係数が、すべてのクロック・サイクルで(多項式レジスタがソース またはデスティネーションの一方または双方であるかに依存して)出力され、レ ジスタに入力され、または双方が行われ、多数のクロック・サイクルがレジスタ の長さに等しくなった後に、係数はレジスタ内のそれらの最初に位置にあること となる。 記憶レジスタ間のデータ転送に加えて、記憶されたデータに実行される処理は 、乗算、除算および加算である。最初の2つの処理は、GF乗算器78によって 実行される(除算は、除数をGF上の逆数にし、その結果と被除数との乗算を単 純 に実行することにより、乗算器78によって達成されることが分かる)。加算器 80によって実行される加算は、GF(256)または考察の対象となる他の任 意のGFについて、加算数と被加算数を表す2つのバイト要素のビット単位での 排他的論理和からなる。プロセッサ60の構成は、上記個々の処理に加えて、第 3の要素の加算を後に続けることにより、2つの要素の乗算または除算を可能に する。これらの組み合わせは、このアーキテクチャによって実行される3つのア ルゴリズムのいずれにも必要とされるGFの要素の演算処理のすべてを構成する 。 次に、前記アルゴリズムのさまざまな部分がどのように計算されるかを理解す るために、図4B〜4Gを参照しながら、以下の説明を行う。 バールカンプ−マッシー・アルゴリズムは、3つの分離した処理からなる。こ れらの処理は、このアルゴリズムの2t回の繰り返しのそれぞれについて実行さ れる。これらの第1のものは、いわゆる相違(Δで示す)の計算である(図4B 参照)。これは、現在の繰り返しにおける誤り位置多項式(Λ(x)で示す)こ の多項式は、最後の繰り返しにおいてはアルゴリズムの最終結果を構成し、B− Mアルゴリズムの過程において連続的に「ビルド・アップ」される)の値と、2 t個のシンドロームの値とによって決定される。シンドロームは2t個のシンド ローム記憶レジスタ74に記憶され、Λ(x)の係数は多項式記憶レジスタ61 に記憶される。所与の繰り返しにおけるΔの値は、個々のΛ(x)の係数(レジ スタ61に記憶)とシンドローム(レジスタ74に記憶)の積の蓄積された合計 を生成することにより形成され、要素レジスタ70に記憶される。Λ(x)の値 はこの処理によって変更されないので、その係数は、レジスタ61から読み出さ れ、続いて、レジスタ61に書き込まれる、すなわち「循環」される。これによ り、個々の係数のすべてをアクセスし、適切なシンドロームと乗算し、かつ、そ の最終値が循環の終了時に所望のΔの値を構成する、蓄積された合計に加算する ことが連続的に可能となる。この処理では、多項式レジスタの循環技術が、所 望の結果を達成するために使用される。この好ましい方法では、レジスタ61は 、ソースの多項式レジスタおよびデスティネーションの多項式レジスタの双方に 使用される。一方、レジスタ70は、ソースの要素レジスタおよびデスティネー ションの要素レジスタの双方に利用される。 上記相違Δがゼロでないときに、B−Mアルゴリズムの繰り返しにおいて生じ る第2のステップは、その正規化、すなわちレジスタ72に記憶された、その前 の非ゼロの値による除算である(図4C参照)。この新たに正規化された値は、 レジスタ70に記憶され、古い正規化前の値は、次の正規化に使用するためにレ ジスタ72に記憶される。 B−Mアルゴリズムの繰り返しの第3の最終ステップは、相違Δがゼロでない ときにのみ生じる。このステップは、レジスタ61にまだ記憶されている多項式 Λ(x)(図4D参照)の更新された値を、その現在の値とΔ(レジスタ70に 記憶)の新しい値に基づいて計算することと、レジスタ62に記憶されているB (x)で示される補助多項式の更新された値を計算することである。ある条件下 において、多項式B(x)は、Λ(x)の現在の(更新されていない)値になる ように更新される。(バールカンプ−マッシー・アルゴリズムで規定された)他 の条件下では、多項式B(x)は更新されず、レジスタ62に再循環される。い ずれの場合にも、2つの多項式は、それらの各レジスタ(61および62)に循 環され、それぞれの個々の係数は、1つのクロック・サイクルで読み出され、書 き込まれる。更新されたΛ(x)の計算は、補助多項式B(x)の各係数を、正 規化されたΔ(レジスタ70)と乗算し、そして現在のΛ(x)(レジスタ61 )の対応する係数(すなわちxの同じ累乗)を加算することから構成される。こ れは、Λ(x)の全係数に対してなされ、結果の更新された係数は、レジスタ6 1に循環され戻される。 図4Eを参照して、誤り評価多項式Ω(x)の計算が、B−Mアルゴリズムに よって先に計算され、レジスタ61にまだ存在する誤り位置多項式Λ(x)と、 シンドローム・レジスタ74にまだ存在する2t個のシンドロームを使用して実 行される。先の多項式と同様に、誤り評価は、Λ(x)の選択された係数と選択 されたシンドロームとの積の累積された合計からなるΩ(x)の各係数により、 2t個の繰り返しの過程で連続的に「ビルド・アップ」される。最終結果は、2 t個の係数を有する2t−1の次数の多項式であり、レジスタ62に記憶される 。この点で、レジスタ61(t+1個の要素レジスタからなる)は、誤り位置多 項式Λ(x)を記憶し、レジスタ62(2t個の要素レジスタからなる)は、誤 り評価多項式Ω(x)を記憶する。 R−Sブロックのデータ誤りの実際の位置決定は、誤り位置多項式Λ(x)の 根を発見することにより実行される。根のそれぞれは、誤り位置に直接対応する 。これは、誤り計算プロセッサ60によって実行されないが、その代わりに、チ エン探索によって実行される。チエン探索は、R−Sブロックのすべての可能な データ位置の値で多項式Λ(x)を評価し、ゼロの結果となるすべて(すなわち 多項式の根)は、ブロックの誤りに対応し、そして誤り位置スタック66に記憶 、すなわち「プッシュ」される。続いて、この根はGFの要素であり、GF(2 56)では、データ・バイトとして表現される。R−S符号は、多くともt個の 誤りを訂正することができるので、誤り位置スタックは、tの深さと8ビット( 1バイト)の幅を有する。 一般的に言えば、誤り位置多項式の根のチエン探索は、そのn個の値の評価か ら構成され、ここで、nはR−Sブロックの長さ(GF標準では207)に等し い。これは、各評価が非常に高速に実行されなければならないことを意味する。 このため、以下に述べるようにホーナー法を使用すると、1つの値当たりt+1 のクロック・サイクルを必要とするので、多項式プロセッサを使用することはで きない。探索をnサイクルで完了できるように、1サイクルで各評価を行うハー ドウェアが必要とされる。図5AおよびBに詳細に示す回路は、誤り位置多項式 の係数が初期化のためにロードされた一組のレジスタから構成され、各連続クロ ック・サイクルで、i番目の係数レジスタの内容は、i次のGF(256)のプ リミティブαと乗算される。チエン探索の詳細も、「誤り制御符号」の第159 頁から160頁に見出すことができる。続いて、すべてのt個のレジスタのGF (256)の合計が生成され、根が発見されたかどうかが決定される。この場合 に、根は、次の使用のためにスタック・メモリの最上位にプッシュされる。誤り 評価多項式の計算は、これらの根を使用せず、したがって、バールカンプ−マッ シー・アルゴリズムの完了後、チエン探索と同時に実行可能である。GA標準に とって、必要とされるクロック・サイクルのそれぞれの数はほぼ等しい(220 対207)。発見された根の数が多項式の次数と等しくないならば、訂正不可能 な誤り状態が存在する。これは、ブロックの誤りの数がtを超えていることを意 味し、そのブロックを訂正することはできない。このような状況の存在は、ブロ ックが正しくないことを示す。探索は、R−Sブロックの最後の位置に対応する GFの要素から開始されるので、誤り位置スタック66が必要とされる。その結 果、ブロック・データが最初から最後の順番で処理(および訂正)されるならば 、多項式の根の順序を、それらが探索中に評価された順序と逆にする必要がある 。 最後に実行されるアルゴリズムは、フォニー・アルゴリズムである。このアル ゴリズムは、誤り評価多項式だけでなく、誤り位置多項式の一次導関数(GFの 意味での)を使用する。両者は、チエン探索によって発見され、誤り位置スタッ ク66に記憶されている各誤り位置の根において評価される。 一般的に、フォニー・アルゴリズムは、前記根と2つの多項式が与えられると 、誤りの大きさを計算するために使用される。このアルゴリズムは、「誤り制御 符号の理論と実践」の第190頁に示された式によって与えられる。Ω(x)は 、チエン探索中に発見されたそれぞれの根xについて評価されなければならない 。 一方、GF(256)演算では、Λ(x)の導関数は、xで評価される多項式の 奇数の累乗項の合計を取り、それをxで除算することにより発見される。Λ(x )のすべての項は探索中に評価されるので、根が1つ発見されるごとに、奇数の 累乗項のみの合計を生成し、それを第2のスタック・メモリに同時に根とともに 記憶することは非常に簡単なことである。これは、導関数を評価するのに必要と なる時間をなくし、この第2のスタックは、誤りの大きさを続いて記憶するのに 必要とされるので、ほとんど追加のハードウェアを必要とせず、追加の記憶メモ リを必要としない。スタックの各根について、そのポインタがアルゴリズムの開 始時にリセットされ、Ω(x)は、以下に示すホーナー法を用いて評価される。 これは、2tのクロック・サイクルを必要とし、xΛ’(x)が、必要とされる 除算のために第2のスタック・メモリから取り出される。これには、1サイクル を要する。一般的な場合では、根の累乗による除算が必要とされるが、GA標準 では、この累乗は1であり、したがって、先に実行されなかったxΛ’(x)の xによる除算は省略される。その結果として、チエン探索および誤り評価多項式 の計算の双方が完了すると開始するこのアルゴリズムは、t個の根について最悪 の場合にt(2t+1)のクロック・サイクルを必要とし、これは、GA標準に ついては210に等しい。GF上の多項式の一次導関数は、その多項式の奇数項 の合計である。チエン探索は、奇数および偶数のすべての多項式の項の評価を必 要とするので、すべての位置の根に対する所望の奇数項は、その根についての完 全な多項式から選択され、それらの合計が計算され(根を発見するためにすべて の項の合計と同様に)、前記第2のスタック68にプッシュされる。このスタッ クは、誤り値スタックと呼ばれ、t個の位置の深さを有する。続いて、位置の根 およびそれらの関連した多項式の導関数の双方が2つのスタックに記憶され、各 位置に対応する誤りの実際の値を計算するために使用される。 次に、図4Fを参照する。この図は、チエン探索によって発見された値のそれ ぞれにおいて誤り評価多項式Ω(x)の評価を行うための構成を示している。こ の評価は、レジスタ62に記憶された多項式の係数と誤り位置スタック66に記 憶された位置の根とを使用して、誤り計算プロセッサ60によって実行される。 これは、各根に対して実行され、レジスタ70に記憶された累積された積を、ス タックに記憶された根の値と乗算し、その結果をレジスタ62に記憶された現在 の多項式の係数に加算し、そして新しく累積された結果の積をレジスタ70に戻 すことを連続的に行うことによりなされる。これは、Ω(x)の2t個の係数の すべてに対して繰り返され、最後の繰り返しの最終的な結果は、位置の根に対し て評価されたΩ(x)の値であり、レジスタ70に記憶される。多項式評価のた めのこのアルゴリズムは、ホーナー法として知られている。 次に、誤りの大きさの評価を説明するために、図4Gを特に参照する。特に、 フォニー・アルゴリズムは、所与の根に対するΩ(x)の前記値が、その同じ根 において評価されたΛ(x)の導関数によって除算されることを必要とする。一 方、Λ(x)の導関数は、チエン探索の副産物として得られたものであり、根の 傍らの誤り値スタック68に格納された。したがって、その根において評価され た両方の多項式の値は、直ちに利用でき、所望の誤り値を得るためにGF乗算器 /除算器78によって除算可能である。この結果は、根の値の傍らにある誤り値 スタック66に記憶され、Λ(x)の一次導関数を置き換える。この手続は、ホ ーナー法によるΩ(x)多項式の評価を含み、チエン探索によって発見されたΛ (x)のすべての根に対して繰り返される。そして、2つのスタックは、t個の 誤り値とそれらの位置を含み、これらの双方は、実際の誤り訂正を実行する誤り 訂正器28によって必要とされる。 実際の誤り訂正は、すべての誤り位置および大きさが決定された後に行われ、 図6に示すものと同様の回路によって実行される。この回路は、前述したように 、入力されたR−Sブロック・データを2つのブロック間隔だけ遅延させ、そし て、 誤り計算部で発見され、2つのスタック・メモリに記憶された誤りおよび大きさ を使用して訂正を実行する。チエン探索が実行されると、チエン探索の初期化は 、データが到着した順序とは逆のブロック位置の順序で探索が実行されることを 必要とする。したがって、スタック・メモリが誤り情報を記憶するために使用さ れ、そのスタックは、R−Sデコーダの誤り計算部および誤り訂正部の双方にお いて誤り位置および値の双方の記憶のために必要とされる(データは、誤り計算 ステップではスタックに「プッシュ」され、誤り訂正ステップではスタックから 「ポップ」されなければならない)。それぞれの部がR−Sブロックに対してそ れらの処理を完了すると、誤り計算の結果は、誤り訂正部に直ちに転送される。 誤り訂正部は、ブロック全体の訂正が終了すると、もはや誤りスタックの内容を 必要としないので、2つの部は、、それらのそれぞれの誤り位置と値のスタック を「ピンポン」形式で交換することができ、これにより、誤り訂正器28は、最 も最近の誤り計算の結果を受信し、続いて、新しいブロックの訂正を開始するこ とができ、そして、誤り計算プロセッサ60は、廃棄される誤りデータを受信す る。この誤りデータは、新たなデータに場所を空けるために除去可能である。 データ・ブロックの最初の位置から開始する各R−Sブロック・データ位置に 対応するGFの要素は、カウンタによって生成される。このカウンタは、ブロッ クの開始に対応する値に初期化され、ブロック位置のすべてにわたって正順序( すなわち、逆ではない)でカウントを行う。これは、各位置の値を、誤り位置ス タック66の最上位の内容と比較することによりなされる。2つの値が等しいと きは、スタックの最上位におけるΛ(x)の根は、R−Sブロックの現在のデー タ・バイトの位置に対応する。続いて、データ値スタックの最上位の内容は、こ のブロック位置のデータ・バイトに加えられ、GF(256)演算において、こ れは、誤り値の8ビットとデータ・バイトの8ビットとのビット演算による排他 的論理和からなる。それから、次の誤り位置および値の対が最上位になるよう に、2つのスタックはポップされ、手続が繰り返される。これが、スタックが空 になるまで、スタックに記憶された誤り位置および値の対のすべてに対して実行 される。この時点で、R−Sブロックの検出された誤りのすべては訂正されてし まう。 最後に、前述した開示は、すべてを網羅しておらず、本発明の範囲内において プロセッサ60にさまざまな変形を加えることが可能であると理解すべきである 。たとえば、多項式記憶レジスタの長さは、Λ(x)と補助多項式B(x)の双 方についてはt+1の長さを有するものとして、Ω(x)については2tの長さ を有するものとして開示されている。これは、Λ(x)を記憶する多項式記憶レ ジスタ61が、Λ(x)のt+1個の係数用にt+1個の要素レジスタからなる ことを意味する。一方、レジスタ62は、補助多項式B(x)を記憶するために 使用されるときはt+1個の要素レジスタの長さを有するが、Ω(x)を記憶す るためには2t個の要素を必要とする。したがって、レジスタ62は、いずれの 長さにも構成される能力を有しなければならない。これは、マルチプレクサを使 用することにより達成することができる。マルチプレクサは、所望の長さの多項 式次数を有する係数に対応する要素レジスタを選択する。 多項式記憶レジスタの長さを変更する機能は、第3のレジスタ(すなわち、Λ (x)とB(x)についての長さt+1の2つと、Ω(x)についての第3のも の)を設ける必要性をなくすためと、任意の所望の長さに多項式記憶レジスタを 構成することを可能にする必要性をなくすために必要とされる。これは、B−M アルゴリズムにおいて役に立つ。このアルゴリズムは、その過程において、変化 するパラメータとしてレジスタ長を指定するからである。これは、一般的には、 R−Sデコーダのソフトウェアによる実現のために実際に使用されるが、アルゴ リズムをより少ないマシン・サイクルで完了させるために、公知のハードウェア による実現は、固定長シフト・レジスタを使用する。 図4Aの誤り計算プロセッサ・アーキテクチャにおいて多項式記憶レジスタ長 を変更するこのような一般化された方法の使用は、すでに最小のハードウェアと 最大のデータ転送機能の双方について最適化されてきており(すなわち、任意の 2つの所望のデータ転送は同時に発生することができる)、これにより、要求さ れた誤り計算は、前述したものよりもさらに少ないクロック・サイクルで実行可 能である。この理由は、多項式を含む任意の処理が、そのレジスタを介して完全 な多項式の循環を必要とし、実際の多項式に長さがそれぞれt+1または2tよ りもずっと小さいときでさえも、これが、t+1個または2t個のいずれかの係 数からなり、したがって、これらの係数の多くのものはゼロでないということに よる。これは、実際の多項式の長さに関わらず、すべての多項式処理に対して同 じクロック・サイクル数(t+1または2t)が必要とされることを意味する。 図4Hを参照する。この図は、そのユニークな回路配置により、多項式記憶レ ジスタ長の調整が可能な、好ましい多項式レジスタ記憶素子を示している。特に 、この回路は、好ましくは、フリップ・フロップ91およびマルチプレクサを含 んでいる。マルチプレクサは、インバータ92、2つのANDゲート93、94 およびORゲート95を含んでいる。この構成により、多項式レジスタの任意の 記憶素子を効率的に「短絡回路」にすることができ、これにより、レジスタの実 際の長さを減少させることができる。B−Mアルゴリズムの実行が進むにしたが い、これらの素子の「短絡回路」にされるものが減少し、これにより、B−Mア ルゴリズムのレジスタ長パラメータの値は増加するので、多項式レジスタの長さ は「成長」する。レジスタ長の制御は、誤り計算プロセッサ60の制御回路(図 示せず)によって実行される。この制御回路は、さまざまなアルゴリズムを実現 するために実行されなければならない、記憶レジスタ、演算ユニット(乗算器/ 除算器および加算器)ならびにデータ路のすべての制御機能を実現する。B−M アルゴリズムについて、多項式記憶レジスタの長さを変更する能力は、必要とさ れ るクロック・サイクル数をほぼ2分の1に減少させることになる。また、この能 力は、誤り評価多項式Ω(x)の計算に必要なクロック・サイクル数を約3分の 1まで減少させる。一方、この能力のために支払われるペナルティは、データ路 に追加される複雑さと伝播遅延のために、プロセッサが処理される最大クロック 周波数が減少するかもしれないということである。 使用される誤り訂正を実行する選択的な方法が、図7に示される。この方式で は、誤り計算は、B−Mアルゴリズムまたはいくつかの他の手段(たとえばユー クリッド・アルゴリズム)のいずれかを使用する誤り位置および誤り評価多項式 の計算のみからなり、チエン探索は、図5Aおよび5Bに示すものと同様のハー ドウェアを使用して、実際の誤り訂正中に実行される。また、この回路は、Λ( x)およびその導関数xΛ’(x)の双方を同時に評価するために使用すること ができる。2t−1個のレジスタとGF定数乗算器からなる同様の回路は、Ω( x)を並行に評価するために使用される。Λ(x)の根が発見されると、その根 に対応するxΛ’(x)およびΩ(x)の値がGF除算器に入力される。このG F除算器は、フォニー・アルゴリズムを実現し、誤りの大きさを出力する。そし て、この大きさは、前述したのと同じ方法で、誤りのあるデータ・バイトに加え られ、訂正が実行される。この技術の1つの主な欠点は、チエン探索が最後のR −Sブロック位置の値から開始されなければならないので、探索および評価が逆 のブロック順序で実行されるということである。これは、訂正を実行するために R−Sブロックを逆順序にすることを必要とし、さらに、後に続くデータ処理が 、ブロックのその本来の順序であることを必要とするならば、その後、もう一度 逆順序にすることを必要とする。 一方、図7の方法は、誤り訂正段階において実時間で、誤り位置多項式および 誤り評価多項式の生成に続くすべての誤り計算を実行するという利点を有する。 これは、誤り評価多項式の評価およびフォニー・アルゴリズムが誤り計算部でも はや実行されないので、誤り計算段階が、より少ない時間(すなわち、より少な いクロック・サイクル)で実行できることを意味する。 プロセッサ60は、必要な多項式の双方を、最小のハードウェアおよびクロッ ク・サイクルを使用して、前述した方法で計算するために使用可能である。一方 、広範囲のGF処理を実行するこのアーキテクチャの能力のために、プロセッサ 60は、ブロックの開始に対応するR−Sブロック位置の値について双方の多項 式の個々の項のすべてを評価するためにも使用可能であり、チエン探索は、この 位置で開始可能であり、逆順序にすることを必要とせず、実際のブロックの順序 で実行可能である。多項式の項の計算は、多項式変数の対応する、すなわち、こ の場合には、R−Sブロックの最初の位置に対応する累乗のものによる各係数の GF乗算からなる。ブロック・サイズは固定されているので、この最初の位置の 値の最初の2t個の累乗は、デコーダの設計中に計算し、記憶76(図4A)に 多項式の引数として記憶することができる。これらの値は、好ましくは、「ハー ドワイヤード」であり、したがって、小さな(2tバイト)の読出専用メモリに 記憶することができる。前述したように、多項式係数は、それらの各記憶レジス タ(61および62)に記憶され、これにより、Λ(x)多項式のt+1個の項 およびΩ(x)多項式の2t個の項は、各係数を記憶76の対応する多項式引数 と乗じることにより計算されてもよい。これらの2つの多項式について、これは 、3t−1個のクロック・サイクルを必要とする。これは、この方法を使用する ことにより省かれるt(2t+1)個の誤り計算クロック・サイクルよりもかな り少ない。結果の多項式の項は、続いて、チエン探索および評価を初期化するた めに使用される。この配置では、チエン探索および評価は、前述したように、誤 りの実際の探索と訂正の双方を同時に実行する。この初期化は、初期多項式の項 を図7のチエン探索/誤り訂正ハードウェアに転送することにより実行される。 誤り計算部における多項式プロセッサ・アーキテクチャの使用は、特に、ある 特定のR−S符号(たとえばGA標準)用に設計されたデコーダの場合には、R −Sブロックの逆転の必要性をなくす手段を提供する。これは、このアーキテク チャの柔軟性および汎用性を示すものとしても働く。 この方法の利点は、フォニー・アルゴリズムが、誤り計算の部分として実行さ れないので、より少ないクロック・サイクルが必要とされることである。これは 、R−Sブロック間のタイミング・ギャップが認められていないときだけでなく 、R−Sブロックがあまり大きくない場合にも価値があるものとなる。不利な点 は、フォニー・アルゴリズム用の第2のGF除算器に加えて、Ω(x)多項式の 高速評価ならびにΛ(x)およびΩ(x)の初期化のための追加ハードウェアを 必要とすることである。したがって、この方法は、限られた状況下でのみ価値を 有するが、いくつかの場合には、性能の改善は、追加ハードウェアを正当化する のに十分なものとなる。 この発明は、集積回路上に効率よく実現するのに向いており、大規模データ・ ブロックの場合については、リード・ソロモン・デコーダの技術状態の進歩を代 表することができる。

Claims (1)

  1. 【特許請求の範囲】 1. 所望のガロア体上の最大t個の誤りを有する大規模データ・ブロックの 誤り位置および大きさを計算するためのリード・ソロモン・デコーダで使用され る誤り計算プロセッサであって、 誤り位置多項式および誤り評価多項式を計算するための第1の計算手段と、 誤りであると決定された位置の誤りの値を計算するための第2の計算手段と、 を備え、 前記第1および第2の計算手段は、第1の多項式記憶レジスタと、第2の多項 式記憶レジスタと、第1の要素記憶レジスタと、第2の要素記憶レジスタと、選 択された乗算および除算を実行するための1つの乗算器と、選択された加算およ び減算を実行するための1つの加算器と、誤り位置スタックと、誤り値スタック と、前記大規模データ・ブロックのシンドロームを記憶するためのシンドローム ・レジスタと、だけを必要とするものである、 プロセッサ。 2. 前記第2の多項式記憶レジスタは、バールカンプ−マッシー・アルゴリ ズムの実行中にB(x)の係数を記憶するものである、 請求の範囲第1項に記載のプロセッサ。 3. 前記第1の要素記憶レジスタは、相違の正規化された値を記憶するもの である、 請求の範囲第1項または第2項に記載のプロセッサ。 4. 前記第1の要素記憶レジスタは、前記誤り評価多項式の個々の係数の計 算中に中間値を記憶するものである、 請求の範囲第1項、第2項または第3項に記載のプロセッサ。 5. 前記第1の要素記憶レジスタが、前記誤り評価多項式の評価の結果を記 憶するものである、 請求の範囲第4項に記載のプロセッサ。 6. 前記誤り値スタックは、チエン探索中に前記誤り位置多項式の導関数を 記憶するものである、 請求の範囲第1項から第5項のいずれか1項に記載のプロセッサ。 7. 前記乗算器は、前記選択された除算を実行するためのインバータを含ん でいる、 請求の範囲第1項から第6項のいずれか1項に記載のプロセッサ。 8. ガロア体(256)におけるデータ・ブロックの最後の位置の最初のt 個の累乗の初期値を記憶するための多項式引数レジスタを含む、 請求の範囲第1項から第7項のいずれか1項に記載のプロセッサ。 9. 前記第1または第2の一方または双方の多項式記憶レジスタは、複数の 多項式レジスタ記憶素子を備え、 前記多項式レジスタ記憶素子のそれぞれが、マルチプレクサと直列に接続され たフリップ・フロップを含み、それにより前記多項式レジスタの長さが調整可能 である、 請求の範囲第1項から第8項のいずれか1項に記載のプロセッサ。 10. 前置計算されたGF要素を記憶するための多項式引数記憶手段を含み 、 前記乗算器は、前記前置計算されたGF要素を、前記誤り位置多項式および誤り 評価多項式の適切な多項式係数と乗算して、リード・ソロモン・ブロックを逆転 する必要なく前記多項式の初期値を提供するものである、 請求の範囲第1項から第9項のいずれか1項に記載のプロセッサ。 11. ソース・レジスタとデスティネーション・レジスタとの間で2つまで の同時データ転送を許容する手段を含む、 請求の範囲第1項に記載のプロセッサ。 12. 前記第1の多項式記憶レジスタは、t+1バイトまでの前記誤り位置 多項式の係数を記憶するものであり、 前記第2の多項式記憶レジスタは、2tバイトまでの前記誤り評価多項式の係 数を記憶するものであり、 前記第1の要素記憶レジスタは、前記相違の計算のためのものであり、 前記第2の要素記憶レジスタは、先のゼロでない相違の値を記憶するためのも のであり、 前記誤り位置スタックは、前記誤り位置多項式の根を記憶するものであり、 前記誤り値スタックは、各誤りの大きさを記憶するものである、 請求の範囲第1項から第11項のいずれかに記載のプロセッサ。 13. 最大t個の誤りを有する大規模データ・ブロックを受信し、前記大規 模データ・ブロックのシンドロームを計算するためのシンドローム計算手段と、 前記大規模データ・ブロックの誤り位置および大きさを計算するための誤り計 算プロセッサであって、 t+1バイトまでの前記誤り位置多項式の係数を記憶するための第1の多項式 記憶レジスタを含み、誤り位置多項式および誤り評価多項式を計算するための第 1の計算手段と、 t+1バイトまでの前記誤り位置多項式の係数を記憶するための第1の多項式 記憶レジスタを含み、誤りにあると決定された位置の誤り値を計算するための第 2の計算手段と、 2tバイトまでの前記誤り評価多項式の係数を記憶するための第2の多項式記 憶レジスタと、 相違の計算をするための第1の要素記憶レジスタと、 先のゼロでない相違の値を記憶するための第2の要素記憶レジスタと、 選択された乗算および除算を実行するための1つの乗算器と、 選択された加算および減算を実行するための1つの加算器と、 前記誤り位置多項式の根を記憶するための誤り位置スタックと、 各誤りの大きさを記憶するための誤り値スタックと、 前記シンドローム計算手段によって計算されたシンドロームを記憶するための シンドローム・レジスタと、を備えている、そのようなプロセッサと、 前記大規模データ・ブロックの前記誤りを訂正するための誤り訂正手段と、 前記誤り訂正手段への前記データ・ブロックの送信を遅延させるためのデータ 遅延手段と、 を備えているリード・ソロモン・デコーダ。 14. 請求の範囲第13項に記載のリード・ソロモン・デコーダとビデオ・ ソース・デコーダの組み合わせを備えているTV受信機。
JP51071599A 1997-07-29 1998-07-20 大規模データ・ブロックのためのハードウェア最適化リード・ソロモン・デコーダ Expired - Fee Related JP3970337B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/902,049 1997-07-29
US08/902,049 US6061826A (en) 1997-07-29 1997-07-29 Hardware-optimized reed-solomon decoder for large data blocks
PCT/IB1998/001108 WO1999007074A2 (en) 1997-07-29 1998-07-20 A hardware-optimized reed-solomon decoder for large data blocks

Publications (2)

Publication Number Publication Date
JP2001502153A true JP2001502153A (ja) 2001-02-13
JP3970337B2 JP3970337B2 (ja) 2007-09-05

Family

ID=25415233

Family Applications (1)

Application Number Title Priority Date Filing Date
JP51071599A Expired - Fee Related JP3970337B2 (ja) 1997-07-29 1998-07-20 大規模データ・ブロックのためのハードウェア最適化リード・ソロモン・デコーダ

Country Status (5)

Country Link
US (1) US6061826A (ja)
EP (1) EP0932937B1 (ja)
JP (1) JP3970337B2 (ja)
DE (1) DE69834542T2 (ja)
WO (1) WO1999007074A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005218098A (ja) * 2004-01-29 2005-08-11 Samsung Electronics Co Ltd 順方向のチェンサーチ方式のリードソロモンデコーダ回路

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6484192B1 (en) * 1998-01-29 2002-11-19 Toyo Communication Equipment Co., Ltd. Root finding method and root finding circuit of quadratic polynomial over finite field
US6154869A (en) * 1998-02-03 2000-11-28 Texas Instruments Incorporated Combined error position circuit and chien search circuit for reed-solomon decoding
US6637002B1 (en) * 1998-10-21 2003-10-21 Maxtor Corporation Decoder for error correcting block codes
US6279137B1 (en) * 1998-12-08 2001-08-21 Lsi Logic Corporation System and method for a storage-efficient parallel Chien Search
US6543026B1 (en) * 1999-09-10 2003-04-01 Lsi Logic Corporation Forward error correction apparatus and methods
US6446233B1 (en) * 1999-09-10 2002-09-03 Lsi Logic Corporation Forward error correction apparatus and methods
US20020116679A1 (en) * 2000-12-15 2002-08-22 Mike Lei In-band FEC decoder for sonet
US7020826B2 (en) * 2002-01-23 2006-03-28 Thomson Licensing Intra-decoder component block messaging
US6920600B2 (en) * 2002-01-23 2005-07-19 Thomson Licensing S.A. Dual chien search blocks in an error-correcting decoder
US20030192005A1 (en) * 2002-04-05 2003-10-09 Seagate Technology Llc Method and apparatus for error detection
US7421642B2 (en) * 2002-04-05 2008-09-02 Seagate Technology Llc Method and apparatus for error detection
US7032162B1 (en) * 2002-04-25 2006-04-18 Lattice Semiconductor Corporation Polynomial expander for generating coefficients of a polynomial from roots of the polynomial
US20040078747A1 (en) * 2002-10-21 2004-04-22 Miller David H. Generalized forney algorithm circuit
US7693927B2 (en) * 2003-08-25 2010-04-06 Jennic Limited Data processing system and method
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
US8064351B2 (en) * 2005-10-20 2011-11-22 Schrader Electronics, Ltd. Method for detecting and correcting data errors in an RF data link
CN101437606A (zh) * 2006-03-16 2009-05-20 圣玛丽亚费代里科技术大学 用于提取存在于大气样本的毒性有机化合物的装置
US20080140740A1 (en) * 2006-12-08 2008-06-12 Agere Systems Inc. Systems and methods for processing data sets in parallel
KR100847560B1 (ko) * 2006-12-11 2008-07-21 삼성전자주식회사 다운로드되는 펌웨어의 오류 정정을 위한 회로 및 방법
US7900122B2 (en) * 2007-01-04 2011-03-01 Broadcom Corporation Simplified RS (Reed-Solomon) code decoder that obviates error value polynomial calculation
KR101405966B1 (ko) 2007-06-26 2014-06-20 엘지전자 주식회사 디지털 방송 시스템 및 데이터 처리 방법
KR101456002B1 (ko) 2007-06-26 2014-11-03 엘지전자 주식회사 디지털 방송 시스템 및 데이터 처리 방법
KR101405967B1 (ko) 2007-06-28 2014-06-12 엘지전자 주식회사 디지털 방송 시스템 및 데이터 처리 방법
US8005167B2 (en) * 2007-08-24 2011-08-23 Lg Electronics Inc. Digital broadcasting system and method of processing data in digital broadcasting system
CA2694704C (en) * 2007-08-24 2013-06-25 Lg Electronics Inc. Digital broadcasting system and method of processing data in digital broadcasting system
MX2010001831A (es) 2007-08-24 2010-03-11 Lg Electronics Inc Sistema de difusion digital y metodo para procesar datos en sistema de difusion digital.
TW200943741A (en) * 2008-04-10 2009-10-16 Univ Nat Chiao Tung Decoding method and device suitable for shortened BCH codes or Reed-Solomon codes
US8151172B2 (en) * 2008-07-10 2012-04-03 Lsi Corporation Adjustable error-correction for a reed solomon encoder/decoder
JP5525498B2 (ja) * 2011-09-13 2014-06-18 株式会社東芝 誤り検出装置
US8869013B1 (en) * 2011-12-01 2014-10-21 Xilinx, Inc. Circuit enabling and a method of generating a product in a decoder circuit
KR102324769B1 (ko) * 2015-06-29 2021-11-10 삼성전자주식회사 반도체 메모리 장치의 에러 정정 회로, 반도체 메모리 장치 및 이를 포함하는 메모리 시스템

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5504758A (en) * 1992-04-28 1996-04-02 Mitsubishi Denki Kabushiki Kaisha Error-correcting apparatus
US5537426A (en) * 1992-05-29 1996-07-16 Goldstar Co., Ltd. Operation apparatus for deriving erasure position Γ(x) and Forney syndrome T(x) polynomials of a Galois field employing a single multiplier
US5517509A (en) * 1993-03-31 1996-05-14 Kabushiki Kaisha Toshiba Decoder for decoding ECC using Euclid's algorithm
FR2721775B1 (fr) * 1994-06-27 1996-09-06 Sgs Thomson Microelectronics Circuit de localisation d'erreurs d'un décodeur Reed-Solomon.
US5615220A (en) * 1995-01-31 1997-03-25 Philips Electronics North America Corporation Polynomial divider which can perform Euclid's Algorithm to produce an error locator polynomial from an error syndrome polynomial, and apparatus including the polynomial divider
US5691994A (en) * 1995-05-08 1997-11-25 Western Digital Corporation Disk drive with fast error correction validation
US5761210A (en) * 1995-06-07 1998-06-02 Discovision Associates Signal processing apparatus and method
KR100192795B1 (ko) * 1996-05-14 1999-06-15 전주범 리드 솔로몬 복호기의 에러 위치 다항식 계산 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005218098A (ja) * 2004-01-29 2005-08-11 Samsung Electronics Co Ltd 順方向のチェンサーチ方式のリードソロモンデコーダ回路

Also Published As

Publication number Publication date
WO1999007074A2 (en) 1999-02-11
EP0932937A1 (en) 1999-08-04
JP3970337B2 (ja) 2007-09-05
DE69834542T2 (de) 2007-03-08
EP0932937B1 (en) 2006-05-17
DE69834542D1 (de) 2006-06-22
US6061826A (en) 2000-05-09
WO1999007074A3 (en) 1999-04-22

Similar Documents

Publication Publication Date Title
JP2001502153A (ja) 大規模データ・ブロックのためのハードウェア最適化リード・ソロモン・デコーダ
EP1131893B1 (en) Forward error corrector
US4873688A (en) High-speed real-time Reed-Solomon decoder
US6374383B1 (en) Determining error locations using error correction codes
EP0838905B1 (en) Reed-Solomon Decoder
US6119262A (en) Method and apparatus for solving key equation polynomials in decoding error correction codes
US7322004B1 (en) Efficient high-speed Reed-Solomon decoder
EP0567148A2 (en) Operating circuit for galois field
WO2000057561A1 (en) Pipelined high speed reed-solomon error/erasure decoder
US6092233A (en) Pipelined Berlekamp-Massey error locator polynomial generating apparatus and method
US4841300A (en) Error correction encoder/decoder
JP2004032737A (ja) リード−ソロモン復号器
US6263471B1 (en) Method and apparatus for decoding an error correction code
US20100174970A1 (en) Efficient implementation of a key-equation solver for bch codes
JP2800723B2 (ja) リードソロモン復号器の誤り位置検出回路
JP3245290B2 (ja) 復号方法とその装置
US6915478B2 (en) Method and apparatus for computing Reed-Solomon error magnitudes
JP3343857B2 (ja) 復号装置、演算装置およびこれらの方法
JPH10322226A (ja) リードソロモン復号方法
US20050050131A1 (en) Data processing system and method
JPH047847B2 (ja)
US6704901B1 (en) Runtime programmable Reed-Solomon decoder
EP1159787A1 (en) A high speed pre-computing circuit and method for finding the error-locator polynomial roots in a reed-solomon decoder
JP2000295116A (ja) 誤り修正符号化方法
KR100335482B1 (ko) 에러정정시스템

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050720

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070508

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20070410

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20070410

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070606

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100615

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20100615

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20100615

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110615

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110615

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120615

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130615

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130615

Year of fee payment: 6

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20130615

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees