JP3252420B2 - ユークリッドの互除回路 - Google Patents

ユークリッドの互除回路

Info

Publication number
JP3252420B2
JP3252420B2 JP35075391A JP35075391A JP3252420B2 JP 3252420 B2 JP3252420 B2 JP 3252420B2 JP 35075391 A JP35075391 A JP 35075391A JP 35075391 A JP35075391 A JP 35075391A JP 3252420 B2 JP3252420 B2 JP 3252420B2
Authority
JP
Japan
Prior art keywords
register
order
polynomial
unit
coefficients
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
JP35075391A
Other languages
English (en)
Other versions
JPH05165661A (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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP35075391A priority Critical patent/JP3252420B2/ja
Priority to US07/989,035 priority patent/US5442578A/en
Priority to DE4241903A priority patent/DE4241903C2/de
Priority to GB9225931A priority patent/GB2262371B/en
Publication of JPH05165661A publication Critical patent/JPH05165661A/ja
Application granted granted Critical
Publication of JP3252420B2 publication Critical patent/JP3252420B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はユークリッドの互除演算
を行うユークリッドの互除回路に関する。
【0002】[発明の概要]BCH符号・リード・ソロ
モン符号に代表される誤り訂正符号を用いて誤り訂正シ
ステムを実現する場合には、受信信号から生成されるシ
ンドロームから誤り位置多項式を求める手段が最も重要
になる(7R-C601-018(4740) Reed-Solomon符号を用いた
高速多重誤り訂正回路のハードウェア化 (1))。この過
程を実現する一手法としてユークリッドの互除アルゴリ
ズムを用いる方法が広く知られている(7R-C601-020(47
88) Reed-Solomon 符号を用いた高速多重誤り訂正回路
のハードウェア化 (2))。
【0003】一般にユークリッドの互除法とは、2つの
多項式の最大公約多項式(Most Common Devisor)を求め
るアルゴリズムとして知られている。誤り訂正符号にお
いては、ユークリッドの互除法の過程で用いられる演算
手順をうまく適用することにより、シンドロームから誤
り位置多項式を算出することが出来る。ユークリッドの
互除法の演算過程は、シストリックアレイアーキテクチ
ャで構成できる利点があり、比較的簡単な演算ユニット
(互除ユニットと呼ぶ)を複数個縦続接続することで実
現できる。“Shao”らによりユークリッドの互除法のア
ルゴリズムをシストリックアレイアーキテクチャで実現
する例が示されている(この構成方法を以下の文章では
構成方法Aと呼ぶ)が(Howard M. Shao et.al."A VLSI
Design of a Pipeline Reed-Solomon Decoder" IEEE Tr
ans. on Computers vol.C-34 May 1985)、この構成方
法アルゴリズムが不完全な上、各ユニットに2つの有限
体乗算器が必要になり高速実時間処理が必要なシステム
を構成する場合回路規模が大きくなるという欠点があっ
た。
【0004】この改良方法として、特許社内受付番号89
043436及び特許社内受付番号89043447の2つの方法(こ
の構成法を以下の文章では構成方法Bと呼ぶ。)を筆者
が提案した。構成方法Bでは文献“Howard M. Shao et.
al."A VLSI Design of a Pipeline Reed-Solomon Decod
er" IEEE Trans. on Computers vol.C-34 May 1985”で
示されているように改訂ユークリッドの互除法(2)を用
いて互除ユニット中の2つの有限体乗算器を1つの有限
体乗算器と1つの有限体割算器に置き換える。次に、縦
続接続されている複数の互除ユニット中の有限体割算器
を1つの有限体割算器で共有することにより回路規模の
削減を実現している。
【0005】更に、構成方法Bとは全く異なる構成で実
現する改良方式として、割算器を共有するための付加回
路や、次数の制御回路がただ1つで済むような構成方法
(構成方法Cと呼ぶ)を提案した。構成方法Cでは、割
算をすべきデータが常に同じ場所から取り出せるため割
算器を共有するための回路やその制御回路が不要にな
る。更に、多項式の次数から動作を判定する回路や制御
回路がただ1つで実現されるため規模が削減される。こ
こで、改訂ユークリッドの互除法(2)における1ステッ
デの演算において、1個の演算ユニットがただ1回の演
算を行なう場合について考えてみる。つまり、時分割多
重等の多重化を行なって1個の演算ユニットで2回以上
の演算を行なわせる場合を除いて本質的に必要な演算器
の数を考える。すると、構成方法A、B、Cの構成方法
において、必要な乗算ユニットの数は、各々、8t、4
t、4t−1個である。構成方法B、Cは、構成方法A
に比べて演算ユニットの数が半分に減少しているが、こ
れは乗算器2つを用いる代わりに割算器を全ユニットに
共有して1つ使用することにより、各演算ユニットに必
要な乗算器を1つに減らしているためである。
【0006】しかし、改訂ユークリッドの互除法(2)の
アルゴリズム自体で必要な演算(乗算)回数は、1ステ
ップの演算に対して僅かに2t回であるのに対し、2倍
以上の演算ユニットを必要としており極めて無駄な構成
であるといえる。同様に、各多項式の係数を格納するた
めに必要なレジスタの数もアルゴリズムで本来必要な数
に対して約2倍の数を必要としている。
【0007】本発明では、改訂ユークリッドの互除法
(2)のアルゴリズムにおいて、レジスタへの格納方法と
演算器の構成方法との2つに画期的な工夫を施すことに
より、ユークリッドの互除法における1ステップ当たり
最小の演算回数2tより1多いだけの2t+1個の演算
ユニット数で、かつ最小のレジスタ数4t+3個のレジ
スタ数でアルゴリズムを実現する構成方法を与える。こ
の構成方法により、従来提案されている構成方法A、
B、Cより遥かに少ない演算ユニット数によりユークリ
ッドの互除アルゴリズムが実現できる事になるため、極
めて画期的なものであると言える。
【0008】
【従来の技術】
《誤り訂正手法》先ず、誤り訂正の手法について述べ
る。GF(2m)の有限体を用いてtシンボル誤り訂正可
能で符号長がnの誤り訂正システムを考える。誤り位置
を符号の先頭を0番目と数えてj番目にある時にαj
表すとする。すると、符号全体にm個の誤りがあるとす
れば、符号全体の誤りは、誤り位置Xi(但し、i=
1、…、m)及び誤りパターンYi(但し、i=1、
…、m)で記述することが出来る。つまり、全部でm
(m≦2t)個の誤りがあった場合には、m組の(Xi
i)が必要になる。この誤り位置Xi(但し、i=1、
…、m)を用いて、誤り位置多項式σ(X)と呼ばれる多
項式を定義する。誤り位置多項式σ(X)は、誤り位置X
=Xi-1(但し、i=1、…、m)で0になる。
【0009】
【数1】 σ(X)の係数を
【数2】 と表す。
【0010】更に、誤り位置多項式σ(X)とシンドロー
ム多項式S(X)を用いて誤り評価他項式ω(X)を
【数3】 と定義する。
【0011】次に、誤り訂正の過程を順に説明する。 <ステップ1>2t個のシンドロームS
【数4】 が、受信信号rとパリティ検査行列Hとの積として求め
られる。つまり、
【数5】 となる。このように求められたシンドロームSを多項式
の係数に持つシンドローム多項式S(X)と呼ばれる多項
式を定義する。
【数6】
【0012】<ステップ2>シンドローム多項式S(X)
から誤り位置多項式σ(X)及び誤り評価多項式ω(X)を求
める。この時にユークリッドの互除法によるアルゴリズ
ムを用いる。
【0013】<ステップ3>誤り位置X=Xi -1(但
し、i=1、…、m)をサーチする。ステップ2で求め
られた誤り位置多項式σ(X)の係数を使用して、σ(X)に
GF(2m)に含まれる全ての要素X=α0、…、αn-1
代入してσ(X)=0となる位置が誤り位置Xi-1(但し、
i=1、…、m)であることが判る。
【0014】<ステップ4>誤り位置Xi(但し、i=
1、…、m)が求められると、誤りパターンYi(但
し、i=1、…、m)は、誤り評価多項式ω(X)を用い
て次のように算出される。
【数7】
【0015】<ステップ5>求められた誤り位置X
i(但し、i=1、…、m)及び誤りパターンYi(但
し、i=1、…、m)を用いて受信信号に対して訂正を
行なう。以上、ステップ1〜5の過程で誤り訂正が行な
われる。詳細については“7R-C601-018(4740) Reed-Sol
omon 符号を用いた高速多重誤り訂正回路のハードウェ
ア化 (1)”、“7R-C601-020(4788) Reed-Solomon 符号
を用いた高速多重誤り訂正回路のハードウェア化
(2)”、“7R-C601-021(4817) Reed-Solomon 符号を用い
た高速多重誤り訂正回路のハードウェア化 (3)”で述べ
てある。
【0016】《ユークリッドの互除法による誤り位置多
項式の導出》次に、誤り位置多項式の導出方法について
述べる。これは、上に述べた誤り訂正の過程のステップ
2に当たるものである。シンドローム多項式S(X)から
ユークリッドの互除法によるアルゴリズムを用いて誤り
位置多項式σ(X)を求める方法は、次のように知られて
いる。
【0017】[誤り位置多項式導出方法]今、r-1(X)
=X2t、r0(X)=S(X)とおく。S(X)の次数は2t−1
次であるから、deg(r0(X))<deg(r-1(X))であ
る。このr-1(X)、r0(X)を用いて多項式qi(X)を商と
する割算を繰り返し行なってゆく。これがユークリッド
の互除法と同じ演算であり、次に示すようになる。
【数8】 の条件を満たしたら停止する。この時に、rj(X)は、割
算の過程で得られたr1(X)、r2(X)、…、rj-1(X)の式
に下から順次代入計算することにより、最初に定義され
たr-1(X)=X2t、r0(X)=S(X)を用いて次式のように
表現することが出来る。
【数9】 この時に得られるrj(X)、A(X)が各々ω(X)、σ(X)に
なる。この手順をハードウェアで実現するためには、割
算を如何に逐次実行してqj(X)、rj(X)を求めるかとと
もに、得られたr1(X)、r2(X)、…、rj-1(X)から、σ
(X)を求めるために逆順代入計算する手順を如何に実現
するかが課題となる。
【0018】また、ユークリッドの互除法の過程では、
割算の結果、余りの次数が1回の割算で2次以上低下す
る場合がある。ユークリッドの互除法を実現するハード
ウェアの構成は、このような場合にも破綻なく動作する
構成でなくてはならない。実は、この一連の手順は、上
述したアルゴリズムを通常のユークリッドの互除アルゴ
リズムを次数が1次ずつ減少してゆくように書き直すこ
とにより、次に示す系統的なアルゴリズムを用いて実現
することが出来る。これは、文献“HowardM. Shao et.a
l."A VLSI Design of a Pipeline Reed-Solomon Decode
r" IEEE Trans. on Computers vol.C-34 May 1985”で
提示されているアルゴリズムを本出願人が改定したもの
であり、文献“7R-C601-020(4788) Reed-Solomon 符号
を用いた高速多重誤り訂正回路のハードウェア化 (2)”
に示してある改定版ユークリッドの互除法(2)に若干改
良を加えたものに相当する。
【0019】[改定版ユークリッドの互除法(2)] (初期条件)
【数10】 (繰り返し)第iステップにおいて
【数11】 [1]li-1≧0の場合(ノーマルモード)
【数12】 [2]li-1<0、ai-1≠0の場合(クロスモード)
【数13】 [3]li-1<0、ai-1=0の場合(シフトモード)
【数14】
【0020】(停止条件)2t回、繰り返した時停止す
る。
【数15】 (結果)
【数16】 このように停止条件として、演算ステップを必ず2t回
行なう場合には、最終的に得られるdR2tはω(X)の次
数を示すことになる。当然ながら、σ(X)の次数はdR
2t+1である。このアルゴリズムに従えば、2tステップ
の演算の後にσ(X)、ω(X)を求めることが出来る。
【0021】文献“7R-C601-020(4788) Reed-Solomon
符号を用いた高速多重誤り訂正回路のハードウェア化
(2)”に書いてあるが、dR2tは、最終的にはR2t(X)、
つまりω(X)の次数を表している。また、ノーマルモー
ド及びクロスモードで演算が行なわれる場合には、演算
の途中の過程におけるdRi、dQiはRi(X)、Qi(X)の
次数を表しているが、Ri(X)の最上位係数が0になるシ
フトモードの時には、次数を表していないことに注意さ
れたい。これは、ユークリッドの互除法の過程におい
て、1回の割算で余りの次数が2次以上低下する場合で
も、この改訂ユークリッドの互除法(2)のアルゴリズム
ではdRiは、1ずつしか値が減らない事に起因する。
なお、詳細については、文献“7R-C601-020(4788) Reed
-Solomon 符号を用いた高速多重誤り訂正回路のハード
ウェア化 (2)”に詳細な実例を示してあるので参照のこ
と。
【0022】《従来のユークリッドの互除アルゴリズム
のハードウェア化》ユークリッドの互除法のアルゴリズ
ムをシストリックアレイアーキテクチャを用いてハード
ウェアで実現する例が文献“Howard M. Shao et.al."A
VLSI Design of aPipeline Reed-Solomon Decoder" IEE
E Trans. on Computers vol.C-34May 1985”により示さ
れている(構成方法A)。
【0023】しかし、このハードウェアは、ユークリッ
ドの互除法における割算の途中で余りの次数が一度に2
次以上低下する場合に対応しておらず、完全にユークリ
ッドの互除アルゴリズムを実現していない。また、構成
方法Aでは各ユニットに2つの有限体乗算器が必要にな
り高速実時間処理が必要なシステムを構成する場合、回
路規模が大きくなるという欠点がある。
【0024】この改良方法として、上で説明した構成方
法Bを本出願人が提案した。この方法では構成方法Aで
示されている互除ユニット中の2つの有限体乗算器を1
つの有限体乗算器と1つの有限体割算器とに置き換え
る。次に、縦続接続されている複数の互除ユニット中の
有限体割算器を1つの有限体割算器で共有することによ
り回路規模の削減を実現している。
【0025】さらに、構成方法Bでは、図8に示すよう
な基本的な演算ユニット(互除ユニットと呼ぶ。)10
1を使用する。この互除ユニット101は、上で述べた
改定ユークリッドの互除法(2)の1ステップを実行す
る。ユークリッドの互除法の各ステップの入力であるR
i-1(X)、Qi-1(X)、λi-1(X)、μi-1(X)、の4つの多項
式はdQi-1次の係数から順に入力する。SFは、最初
の係数を示すフラグである。同時にdRi-1、dQi-1
入力する。
【0026】互除ユニット101の点線部はデータの経
路切替器である。演算が、クロスモードの時にデータが
クロスするように選択され、それ以外の場合はクロスせ
ずに選択される。つまり、dRi-1次の係数が入力した
時(つまり、SFフラグが入力した時)にRi-1(X)のd
i-1次の係数ai-1が0であるか否かを判断し、ai-1
≠0、dRi-1<dQi-1の場合のみクロスすることにな
る。
【0027】その結果、クロスの場合ai-1/bi-1が、
それ以外の場合にはbi-1/ai-1がレジスタ102に保
持され、多項式の全ての係数に対して演算が行なわれ
る。その結果、入力データがこの互除ユニットを1回通
過する毎に改訂ユークリッドの互除法(2)の1ステップ
が演算されて行くことになる。したがって、図9のよう
に、この互除ユニット101を2t個縦続接続して並べ
て、入力として
【数17】 を入れると、2t番目の互除ユニット101の出力とし
てσ(X)、ω(X)が得られることになる。
【0028】文献“7R-C601-020(4788) Reed-Solomon
符号を用いた高速多重誤り訂正回路のハードウェア化
(2)”に示す例題を用いて動作例を図10〜図13に示
す。この例では、図10、図12がクロスモード、図1
1、図13がノーマルモードで演算されている。図13
のように4回、互除ユニットを通過した結果としてσ
(X)、ω(X)が求められていることが判る。
【0029】アルゴリズムから明らかであるが、σ
(X)、ω(X)の2つの多項式は、実際に起きている誤り数
がt未満の場合には2tステップの演算の後には、見か
け上、2t次の多項式であるかのように上位にシフトさ
れて出力される。したがって、dR2tの値を見て次数を
合わせるか、または改訂ユークリッドの互除法(2)にお
いて停止条件をdRi<tと変更すれば良い。なお、こ
の図はあくまで原理的な図であり素子の遅延時間等を考
慮していない。詳細のインプリメンテーションについて
は文献“7R-C601-021(4817) Reed-Solomon 符号を用い
た高速多重誤り訂正回路のハードウェア化 (3)”を参照
のこと。
【0030】さらに、構成方法Bでは、各互除ユニット
101の有限体割算器103が同時に動作する必要がな
いことに着目して、図14に示す如く前記各互除ユニッ
ト101から有限体割算器103を除いた互除ユニット
101aを縦続接続し、かつ各互除ユニット101aの
i-1(X)、Qi-1(X)を取り出してこれを切替スイ
ッチ105によって順次、選択して有限体割算器106
で割算した後、対応する互除ユニット101aに戻すよ
うにして、1つの有限体割算器106を時分割で共有
し、全体のゲート規模を削減するようにした。
【0031】しかし一方では、この構成では、複数の互
除ユニット101aから有限体割算器106を共有する
ために必要な制御回路が複雑になり動作速度が向上しな
い欠点がある。また、有限体割算器106を共有しても
多項式の次数とRi-1(X)のdRi-1次の係数の0検出を
行なって動作を判定する回路や、データ切替器等の制御
回路が各互除ユニット101aに独立に必要なため回路
規模がやや増大する欠点がある。 加えて、この方法を
用いる場合にはシンドローム多項式S(X)の係数である
シンドロームS2t、S2t-1、…、S1が上位の係数から
順に入力する必要がある。ところが、シンドロームはS
2t、S2t-1、…、S1が同時に求められるため、この同
時に求められたシンドロームを上位の係数から順に入力
するように変換する回路が別途必要になる。
【0032】そこで、これらの問題点を解決するため
に、文献“Howard M. Shaoet.al."AVLSI Design of a P
ipeline Reed-Solomon Decoder" IEEE Trans. on Compu
tersvol.C-34 May 1985”で新しい構成方法(以下、構
成方法Cと呼ぶ。)を提案した。この構成方法Cは、従
来の手法と異なり、割算をすべきデータが常に同じ場所
から取り出せるため、有限体割算器106を共有するた
めの回路やその制御回路が不要になる。更に、多項式の
次数から動作を判定する回路や制御回路がただ1つで実
現されるため規模が削減される。提案する構成方法Cを
図15に示す。図15のように構成は1つのブロック
(A)111と、複数のブロック(B)112と、接続
切替判定ブロック113に分けることが出来る。ブロッ
ク(A)111は誤り訂正数tに拘らず1つのユニット
があれば良い。一方のブロック(B)112は、tシン
ボル誤り訂正システムの場合2t−1個のブロックが必
要である。
【0033】そして、これらブロック(A)111、各
ブロック(B)112に設けられている各レジスタ群は
縦方向に分割され、各々左側から順にRi(X)、Qi(X)、
λi(X)、μi(X)の係数を格納するためのレジスタ群とな
る。これらのレジスタ群には、dRi、dQiで示される
次数にしたがって上位から順に係数が格納される。これ
らの初期設定値として、レジスタRR2t-1…RR0に順
にR0(X)=S(X)の係数が代入される。以下、同様に、
RQ2t-1…RQ0に順に、Q0(X)=X2tの上位の係数か
ら順に代入される。また、レジスタRλ2t…Rλ0は全
て0、レジスタRμ2t-1…Rμ0は最下位Rμ0が1で残
りは全て0とする。ブロック(B)112の最後のブロ
ックの下位ブロックから入力端子には常に0を入力す
る。
【0034】ブロック(A)111のRi(X)のdRi
の係数用のレジスタRR2t-1に格納されている係数は接
続切替ブロック113に設けられている0検出回路11
5で0検出が行われる。また、接続切替ブロック113
のレジスタDR、DQは各々dRi、dQiが格納され
る。初期値は各々、2t−1、2tである。なお、初期
値を設定する回路は構成図の他に別途必要である。しか
し、これは本質的なものではなく、簡単な回路であるの
で、ここでは省略する。
【0035】次に、図15を参照しながらこの回路の動
作を説明する。まず、初期値が設定されたレジスタD
R、DQの値は比較回路116で比較され、DR<DQ
で、かつ0検出回路115からレジスタRR2t-1≠0の
状態が知らされた場合に点線で示した切替器をクロス側
に切替える。その他の場合にはクロスしない。この切替
えは構成図全体の切替器、全てを同時に行なえば良い。
【0036】そして、ブロック(A)111では、切替
器が切替えられた後に、Ri-1(X)のdRi-1次の係数と
i-1(X)のdQi-1次の係数が切換器を通って有限体割
算器117に入力される。有限体割算器117では、図
中のE、Fの入力に対してE/Fの割算を行い、その結
果Sを出力する。
【0037】この有限体割算器117の結果Sを用いて
ブロック(A)111、各ブロック(B)112の乗算
器119、120、加算器121、122により、演算
が行なわれる。この手順によると、多項式Ri(X)は、d
i次の係数から0次の係数がレジスタRR2t-1からレ
ジスタRR0まで上位の係数から順に格納される。ま
た、多項式Qi(X)も同様に、dQi次の係数から0次の
係数がレジスタRQ2tからレジスタRQ0まで順に格納
される。λi(X)、μi(X)の各多項式についても同様に各
係数がレジスタRλ2tからレジスタRλ0まで、またレ
ジスタRμ2t-1からレジスタRRμ0まで上位の係数か
ら順に格納される。
【0038】以上述べた手順により、改訂ユークリッド
の互除法(2)の1ステップの演算が行われる。したが
って、この手順を2t回繰り返すことにより構成方法B
と同様にσ(X)、ω(X)が求められる。
【0039】実際の動作例を図16〜図20に示す。図
16に示すレジスタDR、DQ、RR2t-1〜RR0、R
2t〜RQ0、Rλ2t〜Rλ0、Rμ2t-1〜RRμ0は全
て初期設定が行われている。図16では、dR0=3、
dQ0=4、R0(X)のdR0次の係数がα8とクロスする
条件が満たされているので、全ての切替器はクロス側に
切替えられている。有限体割算器117では、1/α8
なる演算が行われ割算結果のα7がブロック(A)11
1、各ブロック(B)112の乗算器119、120に
入力される。各々の演算ユニットで行われた演算結果は
次のステップでレジスタに格納され、図17のような結
果となる。この結果は図10に示す先に説明した構成方
法Bによる結果と一致している。
【0040】結局、図16以下、第1、3ステップがク
ロスモード、第2、4ステップがノーマルモードで演算
が行われ、最終的に図20においてσ(X)、ω(X)が得ら
る。以上説明したように、この構成方法Cにおいては、
先に説明した構成方法Bと本質的な考え方が異なってい
る。つまり、構成方法Bは、互除ユニット101を各多
項式の係数が上位から順にシリアルに入力し演算されて
いるのに対し、構成方法Cでは、全ての係数がレジスタ
DR、DQ、RR2t-1〜RR0、RQ2t〜RQ0、Rλ2t
〜Rλ0、Rμ2t-1〜RRμ0に格納される。この結果、
改定ユークリッドの互除法(2)の1ステップの演算に
対して、構成方法Bでは、多項式の全ての係数が1つの
互除ユニット101でシリアルに演算されるのに対し
て、本方法では、全ての演算ユニット(ブロック(A)
111、各ブロック(B)112)において、各々1つ
ずつの係数に対しての演算が行なわれる。したがって、
演算量自体は変化していないが構成方法が大幅に簡単化
される。
【0041】また、図15の構成図で説明したようにこ
の構成方法Cによれば、ブロック(A)111のレジス
タRR2t-1、RQ2t-1には、有限体割算器117の入力
となるRi(X)のdRi次の係数とQi(X)のdQi次の係数
が格納される。したがって、有限体割算器117の入力
は、常にブロック(A)111のRi(X)及びQi(X)用の
切替器の直後から入力されることになる。このように本
構成法では、有限体割算器117に対して常に同じ場所
からデータを入力することが可能になるため、有限体割
算器117を共有するための付加回路が不要になり、構
成全体の規模低減が可能になる。
【0042】また、構成方法Bでは、dRi、dQiの大
小判定とRi(X)のdRi次の係数の0検出を行って各切
替器の制御を行なう回路を各互除ユニット101に各々
独立に持つ必要があったが、構成方法Cによれば、接続
切替判定ブロック103だけでこの処理を行なう。この
ため規模低減が可能になる。さらに、構成方法Bでは、
訂正可能なシンボル数がtの場合に各互除ユニット10
1に2個ずつ合計4t個の乗算器が必要であったが、本
構成法では、4t−1個に削減されている。
【0043】さらに、初期設定において構成方法Bで
は、入力信号R0(X)、即ちシンドローム多項式の係数S
1、S2…S2tを上位係数から順にシリアル入力する必要
があるのに対して、この構成方法Cでは、2t個のシン
ドローム多項式の係数を同時に入力して初期化すること
が出来る。また、シンドロームは行列計算の結果として
得られるため、本質的に同時に求めることができる。し
たがって、構成方法Bでは、同時に求められたシンドロ
ームをシリアル化して入力する必要があるのに対して、
本構成法を用いれば、同時に求められたシンドローム多
項式の係数をそのまま直接入力することが出来るのでシ
リアル化する回路が不要になる。それと同時にシリアル
化することにより結果が得られるまでの時間(スループ
ットタイム)が増加するのを回避することが出来る。
【0044】また、この構成方法Cにおいて各々のレジ
スタDR、DQ、RR2t-1〜RR0、RQ2t〜RQ0、R
λ2t〜Rλ0、Rμ2t-1〜RRμ0を初期化するには様々
な方法がある。各レジスタDR、DQ、RR2t-1〜RR
0、RQ2t〜RQ0、Rλ2t〜Rλ0、Rμ2t-1〜RRμ0
の入力側にセレクタを設けて実現すれば全てのレジスタ
を同時に初期化することが可能である。一方、各々の多
項式の最下位のレジスタの入力として各々の多項式の初
期値をシリアルに入力することにより順次初期化するこ
とも可能である。
【0045】
【発明が解決しようとする課題】今、改訂ユークリッド
の互除法(2)における1ステップの演算において、1個
の演算ユニットがただ1回の演算を行なう場合について
考えてみる。つまり、時分割多重等の多重化を行なって
1個の演算ユニットで2回以上の演算を行なわせる場合
を除いて本質的に必要な演算ユニットの数を考える。
【0046】今まで述べた構成方法A、B、Cでは、必
要な乗算ユニットの数は、各々、8t、4t、4t−1
個である。ここでtは訂正可能なシンボル数である。構
成方法B、Cが構成方法Aに比べて演算ユニットの数が
約半分で済んでいる。これは乗算器2つを用いる代わり
に有限体割算器1個と乗算器1個とを使用した構成に改
め、各演算ユニットで必要な有限体割算器を共有してた
だ1つ使用することにより、各演算ユニットに必要な乗
算器を1つに減らしているためである。
【0047】それでは、改訂ユークリッドの互除法(2)
のアルゴリズム自体で本来必要な演算(乗算)回数につ
いて、文献“7R-C601-020(4788) Reed-Solomon 符号を
用いた高速多重誤り訂正回路のハードウェア化 (2)”に
示してある例題を用いて考えてみる。
【0048】この例は、規約多項式g(X)=X4+X+1
を用いて定義される有限体GF(24)を用いてt=2シ
ンボル誤り訂正を行なったものである。今、シンドロー
ム多項式S(X)が、
【数18】 と求められている。このシンドローム多項式S(X)から
改訂ユークリッドの互除法(2)を用いて誤り位置多項式
σ(X)を導出すると次のようになる。
【0049】[初期設定]
【数19】
【0050】[ステップ1]
【数20】 したがって、この場合には、
【数21】
【0051】[ステップ2]
【数22】 したがって、この場合には、
【数23】
【0052】[ステップ3]
【数24】 したがって、この場合には、
【数25】
【0053】[ステップ4]
【数26】 したがって、この場合には、
【数27】
【0054】そして、これらの各ステップにおける演算
は、構成方法Bでは、図10〜図13、構成方法Cで
は、図16〜図20に各々、示すように行なわれる。こ
こで、乗算の演算が必要なのは、Ri(X)、λi(X)を求め
る演算である。各ステップの乗算回数に着目すると、ス
テップ1では、R1(X)を求める演算として、
【数28】 なる演算が行なわれる。実際に乗算が行なわれるのはR
0(X)の係数と割算結果のα7との乗算である。R0(X)は
3次の多項式であるから4個の係数があるが、最高次の
係数は割算に使用されているため、改めて演算する必要
がない。結局、
【0055】
【数29】 の3つの演算が行なわれていることになる。一方のλ
0(X)側の演算では、
【数30】 が行なわれる。λ0(X)は、0次の多項式であるから演算
される係数はただ1つで、
【数31】 の演算が行なわれる。したがって、ステップ1では、全
部で4回の演算が行なわれていることが判る。
【0056】次に、ステップ2について同様に演算回数
を見ると、R2(X)の演算では、割算の結果α9を用い
て、
【数32】 の3つの乗算の演算が行なわれている。これに対してλ
2(X)の演算では、
【数33】 の1回の演算のみであり、やはり合計4回の演算が行な
われている。同様に、第3ステップでは、R3(X)の演算
で、
【数34】 の2回の乗算が行なわれている。これに対して、λ3(X)
側の演算ユニットでは、
【数35】 の2回の演算が行なわれ、合計で4回の演算が行なわれ
ている。
【0057】そして、最後の第4ステップでは、R4(X)
の演算で、
【数36】 の2回の演算が行なわれるのに対し、λ4(X)側の演算ユ
ニットでは、
【数37】 の2回の演算が行なわれ、合計4回の演算が行なわれて
いることになる。以上の事から判るように、実際に必要
な演算数の各ステップにおける総和は、常に4になって
いる。これは、ユークリッドの互除法が進むにつれて、
i(X)、Qi(X)の次数が減少して行くのに対して、λ
i(X)、μi(X)の次数が増加して行くために当然の結果と
して起きる。
【0058】一般に、改訂ユークリッドの互除法(2)に
おける第iステップにおいてRi(X)を演算する時には、
クロスモードの場合Ri-1(X)、ノーマルモードの場合Q
i-1(X)の最上位係数を除く係数に対して乗算が必要にな
る。そして、演算が行なわれる時には、dRi-1、dQ
i-1はRi-1(X)、Qi-1(X)の次数を表している。dRi-1
<dQi-1の時クロスモードで演算され、dRi-1≧dQ
i-1の時ノーマルモードで演算される訳であるからR
i(X)の演算で乗算が必要な多項式の次数は、dRi-1
dQi-1の小さい方、即ち、min(dRi-1、dQi-1)に
なる事が判る。このとき、多項式自体の係数の個数は、
次数より1多いが、最上位係数は割算に使用されるため
演算の必要が無い。結局、Ri(X)を求めるための演算で
は、min(dRi-1、dQi-1)回の演算が必要になる。
【0059】これに対してλi(X)の演算は、λi-1(X)、
μi-1(X)により行なわれる。λi(X)を計算するのに必要
な演算は、クロスモードの場合λi-1(X)、ノーマルモー
ドの場合μi-1(X)の全ての係数に対して乗算が必要にな
る。シフトモード以外で実際に演算が行われるノーマル
モードとクロスモードの場合、第iステップの演算にお
いてλi(X)、μi(X)の次数をdλi、dμiとすると、
【数38】 が成り立っているとき、常にクロスモードで演算が行な
われて、Ri(X)の演算にdRi-1次の多項式Ri-1(X)の
最上位(dRi-1次)の係数以外の係数に対して乗算が
行なわれる。したがって、dRi-1回の乗算が必要であ
る。一方、λi(X)の演算に対しては、λi-1(X)のdλ
i-1+1個の全ての係数に対して乗算が必要である。
【0060】したがって、クロスモードの場合の全乗算
回数Ncrossは、
【数39】 この結果、クロスモードの場合の全乗算回数N
crossは、2t以下になる。一方、dRi-1≧dQi-1
場合のノーマルモードで演算が行なわれる場合には、R
i(X)の演算にdQi-1次の多項式Qi-1(X)の最上位(d
i-1次)の係数以外の係数に対して乗算が必要でdQ
i-1回の乗算が必要である。同様に、λi(X)の演算に対
しては、μi-1(X)のdμi-1+1個の全ての係数に対して
乗算が必要である。
【0061】したがって、クロスモードの場合の全乗算
回数Nnormalは、
【数40】 このように、ノーマルモードの場合の全乗算回数N
normalも、2t以下になる。
【0062】以上述べたように、アルゴリズム自体で必
要な各ステップにおける全乗算回数は常に2tを以下で
ある。したがって、本来必要な演算ユニット数は僅かに
2t個であることになる。したがって、先に示した例題
の場合には、演算ユニットの数は本来4個で済むはずで
ある。しかし、現実の実現した構成方法を見てみると、
構成方法A、B、C共に2tに比べ倍以上の演算ユニッ
トを必要としており、極めて無駄な回路構成であると断
言できる。
【0063】次に、演算を行なうために保持しておく必
要のある係数の個数を考察してみる。dRi、dQi、d
λi、dμiは、実際に演算が行なわれるノーマルモード
及びクロスモードの演算ステップにおいてRi(X)、Q
i(X)、λi(X)、μi(X)の次数を表している。これらの次
数には次の関係が成り立つ。
【数41】 このように、Qi(X)とλi(X)の次数の総和は、常に2t
であり、Ri(X)とμi(X)の次数の総和は、2t−1以下
になる。
【0064】したがって、Qi(X)とλi(X)の係数を格納
するために必要なレジスタの数は2t+2個、Ri(X)と
μi(X)の係数を格納するために必要なレジスタの数は2
t+1個で良いことになり、合計でも4t+3個で良い
ことになる。しかし、構成方法Cでは、8t+1個のレ
ジスタを使用しており極めて無駄な構成になっている。
以上述べたように、構成方法A、B、Cいずれも1ステ
ップ当たりの乗算回数、レジスタ数共に、本来アルゴリ
ズムが必要としている演算量に比べて倍以上の無駄な回
路構成になっている。
【0065】既に説明した、例題の演算をもう一度判り
易く説明してみる。構成方法Cによる例題では、図16
〜図20の中で行なわれている演算は、次の表のように
なる。
【0066】[ステップ1]クロスモードdR=3、d
Q=4
【表1】
【0067】[ステップ2]ノーマルモードdR=3、
dQ=3
【表2】
【0068】[ステップ3]クロスモードdR=2、d
Q=3
【表3】
【0069】[ステップ4]ノーマルモードdR=2、
dQ=2
【表4】 表中で明らかなように、構成方法Cでは、各ステップで
乗算は4回ずつしか行なわれておらず、常に残りの演算
ユニットは動作していないことが判る。また、λi(X)、
μi(X)の格納場所は演算が進むにつれ見かけ上で上位に
シフトして行くため演算ユニットが使用される場所が毎
ステップ変化している。このため構成方法Cでは演算ユ
ニットの数を削減できないことが判る。
【0070】本発明は上記の事情に鑑み、ユークリッド
の互除法における1ステップ当たりの最小の演算回数2
tより1つだけ多いだけの2t+1個の演算ユニット数
で、かつ最小のレジスタ数4t+3個のレジスタ数でア
ルゴリズムを実現することができ、これによって回路規
模を大幅に低減させることができるとともに、高速動作
を可能にしてスループットを大幅に向上させることがで
きるユークリッドの互除回路を提供することを目的とし
ている。
【0071】
【課題を解決するための手段】本発明のユークリッドの
互除回路は、第i回目の互除演算において、Ri
(X)、Qi(X)の一方を除多項式、もう一方を被除
多項式とするとともに、互除結果を算出するための中間
多項式(μi(X)およびλi(X))を求めるユーク
リッド互除回路において、Ri(X)とμi(X)で共
用する1つのレジスタと、Qi(X)とλi(X)で共
用するもう1つのレジスタ、および1つの演算ユニット
とによって構成され、縦続接続されて、割算結果および
前段から出力される値を取り込むと共に、切替指令に応
じて、多項式を入れ替えないノーマル接続演算、多項式
を入れ替えるクロス接続演算のいずれか一方を行う複数
の演算器と、Ri(X)とμi(X)で共用する1つの
レジスタと、Qi(X)とλi(X)で共用するもう1
つのレジスタ、および割算器を有し、前記演算器の最終
段から出力される値を取り込むとともに、切替指令に応
じてノーマル接続割算演算、クロス接続割算演算のいず
れか一方を行い、この演算結果を前記各演算器に供給す
る割算ユニットと、予め設定されている初期値と前記割
算ユニットのレジスタに格納されている値とに基づいて
ノーマル接続またはクロス接続のいずれかを指定する切
替指令を生成して前記演算器、割算ユニットに供給する
制御用ユニットとを備えたものである。
【0072】
【作用】上記の構成において、制御用ユニットによって
予め設定されている初期値と前記割算ユニットのレジス
タに格納されている値とに基づきノーマル接続またはク
ロス接続のいずれかを指定する切替指令が生成され、こ
の動作と並行して各演算器によって割算結果および前段
から出力される値が取り込まれるとともに、切替指令に
応じてノーマル接続演算、クロス接続演算のいずれか一
方が行なわれ、さらに割算ユニットによって前記演算器
の最終段から出力される値が取り込まれるとともに、切
替指令に応じてノーマル接続割算演算、クロス接続割算
演算のいずれか一方が行なわれ、この演算結果が前記各
演算器に供給されてユークリッドの互除演算が行われ
る。
【0073】
【実施例】本件では、ユークリッドの互除法における1
ステップ当たり最小の演算回数2tより1多いだけの2
t+1個の演算ユニット数で、かつ、最小のレジスタ数
4t+3個のレジスタ数でアルゴリズムを実現する構成
方法を与える。この構成方法により、従来提案されてい
る構成方法A、B、Cより遥かに少ない演算ユニット数
によりユークリッドの互除アルゴリズムが実現できる事
になるため、極めて画期的なものであると言える。提案
する構成方法の概念的な構成図を図1に示す。図1に示
すようにこの構成方法による回路はDIVブロック1
と、MLTブロック2との2つの部分から成っている。
【0074】DIVブロック1は有限体割算器16を持
ち、構成図中ただ1つ存在する最上位係数の割算ユニッ
ト3と、dRi、dQiの大小関係とRi(X)のdRi次の
係数の0検出を行ないDIVブロック1、MLTブロッ
ク2の切替器を制御する信号を発生する制御用ユニット
4から成る。
【0075】また、MLTブロック2は複数の係数に対
する演算に対し演算器を多重化して使用しない場合にお
いてtシンボル誤り訂正可能なシステムにするとき、前
記tに対応した数2t+1個の演算ユニット51〜5
2t+1が必要である。各演算ユニット51〜52t+1は、図
2に示す如く3つの切換器6〜8と、1つの乗算器9
と、1つの加算器10とによって構成され、定められた
有限体の演算を行う。また、図1に示す各レジスタ11
0〜112t、120〜122t+1のうち、図中の左側にある
レジスタ110〜112tをA側のレジスタと呼び、右側
のレジスタ120〜122t+1をB側のレジスタと呼ぶこ
とにする。DIVブロック1、MLTブロック2を合わ
せるとA側のレジスタ110〜112tは、全部で2t+
1個、B側のレジスタ120〜122t+1は全部で2t+
2個の合計4t+3個に削減されている。同時に演算ユ
ニット51〜52t+1の数が2t+1個まで削減されてい
る。DIVブロック1におけるDR用のレジスタ13
と、DQ用のレジスタ14は、A0用のレジスタ110
0用のレジスタ120に格納されている係数の次数を表
しており、クロスモード・ノーマルモード(後述)の実
際に演算が行われる時には、Ri(X)、Qi(X)の次数を表
すことになる。
【0076】また、DIVブロック1の制御用ユニット
4に設けられている動作モード判断制御回路15では、
レジスタ13、14に格納されてるDR、DQの比較結
果と、レジスタ110から出力されるA0の0検出結果か
ら動作モードが判定され、その結果とDRの値からML
Tブロック2の各演算ユニット51〜52t+1が独立して
制御される。なお、MLTブロック2における最後の演
算ユニット52t+1の入力側には、A側のレジスタが不要
になるが、図1に示す回路は概念的な回路であるため、
MLTブロック2の最後の演算ユニット52t+1も他の演
算ユニット51〜52 tの入力側に設けられるA側のレジ
スタを削除した構成として描いている。しかし、最後の
演算ユニット52t+1はA側の入力が常に0であることか
ら実際には更に回路が簡略化できる。
【0077】次に、演算を行なう各多項式の係数の格納
方法について説明する。まず、本構成方法では、Qi(X)
と、λi(X)の係数の格納場所と、Ri(X)とμi(X)の係数
の格納場所を各々共用する。ユークリッドの互除法の各
ステップにおける演算においては、
【数42】 なる関係が成立している。これは、Qi(X)とλi(X)の次
数の和が常に2tであることを示している。したがっ
て、Qi(X)の次数が減少するにつれてλi(X)の次数が増
大したとしても、各々の多項式の係数を格納すべきレジ
スタの数の和は常に2t+2であることを示しているこ
とになる。同様に、Ri(X)とμi(X)の次数の和も2t−
1以下であるため、係数を格納すべきレジスタ数の和
は、最大でも2t+1でよいことを示している。
【0078】また、図1におけるレジスタ110〜11
2tがRi(X)とμi(X)の係数用のレジスタである。各演算
ステップにおいて、dRi次の多項式Ri(X)の各係数
は、最上位(dRi次)係数から順に、A側の各レジス
タ110〜112tに順に格納される。Ri(X)の0次係数
に引き続いてμi(X)の係数が最下位(0次)の係数から
順に格納される。したがって、A側のレジスタ110
112tでは、上のレジスタレジスタ110から順にR
i(X)の上位係数から格納され、続いてμi(X)の下位係数
から順に格納される。一方、図1におけるレジスタ12
0〜122t+1がQi(X)とλi(X)の係数用のレジスタであ
る。各演算ステップにおいて、dQi次の多項式Qi(X)
の各係数が各レジスタ120〜122t+1に最上位(dQi
次)係数から順に格納される。そして、Qi(X)の0次係
数に引き続いてλi(X)の係数が最下位(0次)の係数か
ら順に格納される。この場合、dQi+dλi=2tで常
に次数の和が一定であるから、B側のレジスタ120
122t+1では、上のレジスタ120から順にQi(X)の係
数が格納され、下から順にλi(X)の係数が格納されるこ
とになる。
【0079】以上述べたように係数格納用のレジスタ1
0〜112t、120〜122t+1を共用すれば、全体で4
t+3個のレジスタ数で構成可能になる。そして、初期
設定では、R0(X)、Q0(X)、λ0(X)、μ0(X)の次数であ
るdR0、dQ0、dλ0、dμ0の初期値は、各々、2t
−1、2t、0、−1と考える。μ0(X)の次数dμ0
初期値を−1とするのはアルゴリズムの便宜上の都合で
ある。したがって、R0(X)=S(X)の2t個の係数(シ
ンドローム)は、レジスタ110〜112t-1に格納さ
れ、μ0(X)の次数が便宜的に−1になっているので、μ
0(X)の係数の個数が0、つまり対応するレジスタが無い
ということになり、レジスタ112tには0を設定する。
また、レジスタ120〜122tの初期値は、Q0(X)=X
2tであるからレジスタ120に1、レジスタ121〜12
2tに0を格納する。また、λ0(X)=1であるから、レジ
スタ122t+1に1を格納する。また、DR、DQを格納
する各レジスタ13、14に各々2t−1、2tを格納
する。なお、初期値を設定する回路は構成図の他に別途
必要である。しかし、これは本質的なものではなく簡単
な回路であるのでここでは省略する。次に、図1を参照
しながらこの構成方法の動作を説明する。まず、初期値
が設定された後に、ユークリッドの互除法が1クロック
に1ステップずつ順に行なわれて行く。各レジスタ11
0、111、112、…、120、…、122t+1は各クロッ
クサイクルで演算結果の値を保持することになる。今、
第iステップの演算を考えてみる。まず、各レジスタ1
3、14に格納されているDRi-1、DQi-1の値は動作
モード判断制御回路15で比較され、DRi-1<DQi-1
で、かつ、0検出回路17からRi-1(X)の最上位係数が
格納されているレジスタ110が0の状態が知らされた
場合にはクロスモード、その他の場合にはノーマルモー
ドであることを認識する。
【0080】そして、モードが決定すると、DIVブロ
ック1にある2つの切換器18、19及び有限体割算器
16が動作モードに応じてクロスまたはノーマルに切り
替わる。レジスタ110の値、即ち、Ri-1(X)の最上位
(dRi-1次)の係数とレジスタ120の値、即ち、Q
i-1(X)の最上位(dQi-1次)の係数が切換器18を通
って有限体割算器16に入力される。有限体割算器16
では、図中のF、Gの入力に対してF/Gの割算を行
い、その結果Sを出力する。一方、MLTブロック2の
各演算ユニット51〜52t+1ではDIVブロック1で判
定された動作モードに応じて演算が行なわれる。演算す
る係数の格納されているレジスタ111〜112tのレジ
スタ番号(添字)がjのレジスタに対して、番号jの演
算ユニットが次の表に従って演算を行なう。
【0081】テーブル1−1 クロスモードの演算表
【表5】 テーブル1−2 ノーマルモードの演算表
【表6】
【0082】テーブル1−3 シフトモードの演算表
【表7】 そして、演算されたA'、B'は、各々、次のレジスタに
格納され、改訂ユークリッドの互除法における1ステッ
プの演算が終了する。この演算手順を2t回繰り返すこ
とにより、誤り位置多項式σ(X)、誤り評価多項式ω(X)
を求めることが出来る。
【0083】また、通常、改訂ユークリッドの互除法に
よるアルゴリズムでは、Ri-1(X)とQi-1(X)の多項式の
組に行なった演算と全く同一の演算をλi-1(X)とμ
i-1(X)の多項式の組に行なう。本構成方法では、R
i-1(X)、Qi-1(X)の多項式の組がA側のレジスタ110
〜112tとB側のレジスタ120〜122t+1に各々格納
されているのに対して、λi-1(X)とμi-1(X)の多項式は
逆転して格納されている。このため、Ri-1(X)とλ
i-1(X)に対して同一の演算を行なうためには、逆転して
格納されているλi-1(X)の係数を元に戻して演算を行な
い結果を再び反転して格納すれば良いことになる。
【0084】したがって、Ri-1(X)とQi-1(X)との演算
は、クロスモード、ノーマルモードいずれも次数の少な
い方の係数の数だけ演算を行なえば良い。さらに、R
i-1(X)とQi-1(X)の係数が隣合っていないレジスタでは
演算の必要がない。λi-1(X)とμi-1(X)についても同様
である。例えば、クロスモードの場合には、dRi-1
dQi-1であるから、レジスタ番号jが0<j≦dRi-1
の場合にのみ、Ri-1(X)とQi-1(X)との演算が行なわれ
る。また、dRi-1<j≦dQi-1の場合には、A側のレ
ジスタ110〜112tにはRi-1(X)の係数が格納されて
いるが、B側のレジスタ120〜122t+1にはλi-1(X)
の係数が格納されている。この場合には、レジスタに格
納されている係数に対して演算を行なう必要が無く、格
納されている係数を入れ換えれるだけで良いことにな
る。
【0085】さらに、各レジスタ110〜112t、120
〜122t+1のうち、dQi-1<jのレジスタではA側に
はμi-1(X)、B側にはλi-1(X)が格納されている。そこ
で、A側のレジスタと、B側のレジスタの値を反転して
dRi-1(X)とdQi-1(X)と同一の演算を行ない結果を再
び反転して格納すれば良いことになる。
【0086】以上のことから1ステップあたりの演算回
数が常に2t回になり、本構成方法で示す2t+1個の
演算ユニットで実現できることになる。なお、シフトモ
ードは演算を行なう必要がないが、このシフトモードを
ノーマルモードで有限体割算器16からの出力Sが0で
ある場合と同一の処理を行なうことも可能である。
【0087】例えば、次の表にしたがって処理すること
も可能である。 テーブル2−1 クロスモードの演算表
【表8】
【0088】テーブル2−2 ノーマルモード・シフト
モードの演算表
【表9】
【0089】次に、演算ユニット51〜52t+1の具体的
な構成であるが、これは既に述べた演算表に示した6種
類の演算が最低限実行できるならどのような構成でも良
い。例えば、上述したように図2の構成方法で実現でき
る。この構成は3つの切替器6〜8と乗算器9及び加算
器10で構成されており、各切替器6〜8の制御を次表
のように行なえば、必要な演算を実行できる。なお、こ
の切替方法以外の制御方法でも同様の演算が実現でき
る。 テーブル3 切替器の制御方法
【表10】 上の表で、切替器7、6についてnormalと書いてあるの
は切替器をI−I'側に切替えることを示し、crossと書
いてあるのは切替器をH−H'側に切替えることを示
す。また、切替器8についてthroughと書いてあるの
は、切替器8をI側に切替えることを示し、clearと書
いてあるのは、切替器8をH側の0が入力される方に切
替えられることを意味する。
【0090】この図2に示す構成方法による演算ユニッ
ト51〜52t1を図1の構成に用いた場合の動作例を図3
〜図7に示す。ここで上げるのは、既に述べた規約多項
式g(X)=X4+X+1を用いて定義される有限体GF
(24)を用いてt=2シンボル誤り訂正を行なった動
作例と同一のものである。なお、図3に示すレジスタ1
0〜114、120〜125、13、14は全て初期設定
が行なわれているものとする。
【0091】そして、図3に示す如く第1ステップで
は、レジスタ13に格納されているDRの値(dR0
が3でレジスタ14に格納されているDQの値(dQ)
が4でDR<DQの条件を満たしており、また、レジス
タ110に格納されているR0(X)のdR0次の係数がα8
と非零であるため、動作モードがクロスモードであるこ
とが認識される。そこで、有限体割算器16の入力側に
ある切替器18がクロス側に切替えられて1/α8なる演
算が行なわれ、割算結果S=α7が各演算ユニット51
5に対して出力される。このように、図3ではクロス
モードの処理を行なうことになる。したがって、MLT
ブロック2の各演算ユニット51〜55に於いては、先に
述べたテーブル1−1のクロスモードの演算表に基づい
て演算が行なわれる。
【0092】そして、テーブル1−1によれば、レジス
タ番号jのレジスタ11j、12jのデータに対する演算
は、0<j≦dRi-1、dRi-1<j≦dQi-1、dQi-1
<jの3つの場合に分かれる。例えば、図3の第1ステ
ップの演算では、dR0=3、dQ0=4であるから、レ
ジスタ番号1〜3に対する演算ユニット51〜53はA'
=A×S+B、B'=Aの演算を行なう。このために
は、切替器7がcross、切替器8がthrough、切替器6が
normalとする。また、レジスタ番号4に対する演算ユニ
ット54は、A'=B、B'=Aの演算が必要であるか
ら、切替器7がcross、切替器8がclear、切替器6がno
rmalとする。また、残りのレジスタ番号5、6に対する
演算ユニット55、56は、A'=B、B'=B×S+Aの
演算が必要であるから、切替器7がnormal、切替器8が
through、切替器6がcrossとなる。
【0093】以上述べた第1ステップにおける各演算ユ
ニット51〜55にある切替器6〜8の動作は図3で示し
たものになる。演算された結果は、次のクロックサイク
ルでは図4に示すように各レジスタ110〜114、12
0〜125に格納される。従来の構成方法Cによる結果を
示す図17と、今回提案する構成方法による図4とを比
べてみると、構成方法Cによる図17ではλ1(X)、μ
1(X)の係数が各々Ri(X)、Qi(X)の後ろに上位係数から
順に格納されているのに対して、本構成方法による図4
ではλi(X)、μi(X)の格納場所が逆転され、下位係数か
ら順に格納されている。このため、図4では本来不要な
値である係数の値が0である係数を格納せずに済むため
無駄な演算の必要がなくなり、結果として演算器の数が
大幅に削減されていることが判る。
【0094】また、図4に示す第2ステップの演算で
は、レジスタ13に格納されているDRの値(dRi
が3でレジスタ14に格納されているDQの値(d
i)が3でDR≧DQであるため、動作モードがノー
マルモードの演算を指示していることが認識される。そ
こで、有限体割算器16の入力側に設けられている切替
器18がノーマル側に切替えられてα2/α8なる演算が
行なわれ、割算結果S=α9が各演算ユニット51〜55
に対して出力される。これによって、図4ではノーマル
モードの処理を行なうことになる。したがって、演算は
テーブル1−2のノーマルモードの演算表に基づいて行
なわれる。また、図4に示す第2ステップの演算では、
レジスタ番号1〜3に対応する演算ユニット51〜53
A'=B×S+A、B'=Bの演算を行なう。このために
は、切替器7がnormal、切替器8がthrough、切替器6
がnormalとする。また、残りのレジスタ番号4、5のレ
ジスタ114、124、125に対する演算ユニット54
5は、A'=A、B'=A×S+Bの演算が必要である
から、切替器7がcross、切替器8がthrough、切替器6
がcrossとなる。
【0095】以上述べた第2ステップにおける各演算ユ
ニット51〜55にある切替器6〜8の動作は図4で示し
たものになる。演算された結果は、次のクロックサイク
ルでは図5に示すように各レジスタ110〜114、12
0〜125に格納される。結局、図3以下、第1、3ステ
ップがクロスモード、第2、4ステップがノーマルモー
ドで演算が行なわれ最終的に図7においてσ(X)、ω(X)
が得られている。ここで、σ(X)の係数が構成方法Cに
よる図20で得られている係数と、格納場所と、順序と
が共に逆転して得られていることに注意されたい。
【0096】ここで、図3〜図7の動作に対応する演算
を次表にまとめておく。 [ステップ1]クロスモードdR=3、dQ=4
【表11】 [ステップ2]ノーマルモードdR=3、dQ=3
【表12】
【0097】[ステップ3]クロスモードdR=2、d
Q=3
【表13】 [ステップ4]ノーマルモードdR=2、dQ=2
【表14】 以上述べたように、今回提案する構成方法では、構成方
法Cと同じ演算を各ステップで行なっているにも拘ら
ず、各多項式の係数の格納方法と演算ユニット51〜5
2t+1の構成方法を工夫したことにより、多項式の係数を
格納するためのレジスタ数と各演算ステップにおける演
算回数を半減出来ていることが判る。
【0098】[実施例の効果]また、本構成方法では、
ユークリッドの互除法の各ステップにおいて原理的に必
要な最小の演算回数(乗算回数)2tより1多いだけの
2t+1個の演算ユニット51〜52t+1でアルゴリズム
を実現することが出来る。勿論、これは各演算ユニット
1〜52t+1をユークリッドの互除法の1ステップの演
算でただ1回しか使用しない場合である。また、演算途
中に必要な各多項式の係数を格納するためのレジスタ数
が原理的に最小の4t+3個で実現できる。これは、本
構成法では、先に説明した構成方法Cとは、各多項式の
係数の格納方法が全く異なっているためである。すなわ
ち、構成方法Cでは、各多項式の係数を独立に格納する
ためのレジスタを必要とした。このため各多項式が最大
次数になっても格納できる数のレジスタ数である8t+
1個のレジスタ数を用意する必要がある。更に、このレ
ジスタ数の増大が演算ユニット数の増加を招いている。
【0099】これに対し、本構成方法では図1で示した
ように、A側のレジスタ110〜112tをRi(X)とμ
i(X)の係数用のレジスタとしている。各演算ステップに
おいては、先ず、dRi次の多項式Ri(X)の最上位(d
i次)係数がレジスタ110に格納され、以下順に下位
の係数が格納される。Ri(X)の0次の係数に引き続いて
μi(X)の係数が最下位(0次)の係数が格納され、以下
順に上位の係数が格納される。したがって、A側のレジ
スタ110〜112tでは、上のレジスタ110から順にR
i(X)の上位係数から格納され、続いてμi(X)の下位係数
から順に格納される。また、B側のレジスタ120〜1
2t+1も同様にQi(X)とλi(X)の係数用のレジスタであ
る。各演算ステップにおいて、dQi次の多項式Qi(X)
の最上位(dQi次)係数がレジスタ120に格納され、
以下順に下位係数が格納される。Qi(X)の0次係数に引
き続いてλi(X)の係数が最下位(0次)の係数が格納さ
れ、以下順に下位係数が格納される。
【0100】このとき、各多項式の次数には、次のよう
な関係式が成り立つ。
【数43】 したがって、dQiとdλiの和は常に2tと一定である
から、B側のレジスタ120〜122t+1では、2t+2
個のレジスタのみで良く、更に、A側のレジスタ110
〜112tはB側より1個少ない2t+1個のレジスタで
良いことになる。 また、図1に示す構成方法では、ユ
ークリッドの互除法における1ステップの演算毎にR
i(X)が上位にシフトする(つまりXが掛けられる)。ま
た、本構成方法のようにλi(X)、μi(X)を逆転して格納
すると、μi(X)とλi(X)とは係数が下位から順に格納さ
れているのでμi(X)がλi(X)に比べて下位にシフトする
ことになり、λi(X)がμi(X)に比べて上位にシフトした
のと同一の結果が得られる。このとき、Ri(X)とλi(X)
とに演算器を工夫すると、必要な演算を施すことが出来
るように構成されている。
【0101】また、各演算ユニット51〜52t+1の構成
は、図2の構成例では構成方法Cで必要な演算ユニット
に比べ、切替器6、切替器8が付加されており、若干構
成が複雑になっている。しかし、この増加は僅かなもの
であり、演算ユニット数と係数格納用レジスタ数が約半
減するため圧倒的な回路規模削減が実現できる。また、
演算ユニット51〜5t+1自体の構成は既に述べた表(テ
ーブル1−1、1−2、1−3)の演算を行なうことが
可能であるならば、どのような構成でも良い。したがっ
て、図2の構成方法の他にも同一の演算を行なう構成は
数多く考えられ、図2の構成方法に比べて構成を複雑に
して高速動作を行う回路構成も考えられる。
【0102】なお、本構成において各レジスタ110
112t、120〜122t+1、13、14を初期化するに
は様々な方法がある。例えば、各レジスタ110〜11
2t、120〜122t+1、13、14の入力側にセレクタ
を設けて、初期値設定時にこれらの各セレクタを初期値
設定器側に切り替えてこれらの各初期値設定器に設定さ
れている値(初期値)を各レジスタ110〜112t、1
0〜122t+1に入力することより、全てのレジスタ1
0〜112t、120〜122t+1、13、14を同時に初
期化することが可能である。その他に、各々の多項式の
最下位のレジスタ、即ちレジスタ112t、122t+1のみ
に入力用のセレクタを付けて入力端子とすれば、各々の
多項式の初期値をシリアルに入力することにより順次、
初期化することも可能である。
【0103】
【発明の効果】以上説明したように本発明によれば、ユ
ークリッドの互除法における1ステップ当たりの最小の
演算回数2tより1つだけ多いだけの2t+1個の演算
ユニット数で、かつ最小のレジスタ数4t+3個のレジ
スタ数でアルゴリズムを実現することができ、これによ
って回路規模を大幅に低減させることができるととも
に、高速動作を可能にしてスループットを大幅に向上さ
せることができる。
【図面の簡単な説明】
【図1】本発明によるユークリッド互除回路の一実施例
を示すブロック図である。
【図2】図1に示す各演算ユニットの詳細な構成例を示
すブロック図である。
【図3】図1に示すユークリッド互除回路の動作例を示
す模式図である。
【図4】図1に示すユークリッド互除回路の動作例を示
す模式図である。
【図5】図1に示すユークリッド互除回路の動作例を示
す模式図である。
【図6】図1に示すユークリッド互除回路の動作例を示
す模式図である。
【図7】図1に示すユークリッド互除回路の動作例を示
す模式図である。
【図8】従来から知られているユークリッドの互除回路
で使用される互除ユニットの一例を示すブロック図であ
る。
【図9】従来から知られているユークリッドの互除回路
の一例を示すブロック図である。
【図10】図9に示すユークリッドの互除回路の動作例
を示す模式図である。
【図11】図9に示すユークリッドの互除回路の動作例
を示す模式図である。
【図12】図9に示すユークリッドの互除回路の動作例
を示す模式図である。
【図13】図9に示すユークリッドの互除回路の動作例
を示す模式図である。
【図14】従来から知られているユークリッドの互除回
路の他の一例を示すブロック図である。
【図15】すでに提案しているユークリッドの互除回路
の一実施例を示すブロック図である。
【図16】図15に示すユークリッドの互除回路の動作
例を示す模式図である。
【図17】図15に示すユークリッドの互除回路の動作
例を示す模式図である。
【図18】図15に示すユークリッドの互除回路の動作
例を示す模式図である。
【図19】図15に示すユークリッドの互除回路の動作
例を示す模式図である。
【図20】図15に示すユークリッドの互除回路の動作
例を示す模式図である。
【符号の説明】
1 DIVユニット 2 MLTユニット 3 割算ユニット 4 制御用ユニット 50〜52t+1 演算ユニット 110〜112ti(X)用およびλi(X)用のレジスタ 120〜122t+1i(X)用およびμi(X)用のレジスタ

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 第i回目の互除演算において、Ri
    (X)、Qi(X)の一方を除多項式、もう一方を被除
    多項式とするとともに、互除結果を算出するための中間
    多項式(μi(X)およびλi(X))を求めるユーク
    リッド互除回路において、 Ri(X)とμi(X)で共用する1つのレジスタと、
    Qi(X)とλi(X)で共用するもう1つのレジス
    タ、および 1つの演算ユニットとによって構成され、縦
    続接続されて、割算結果および前段から出力される値を
    取り込むと共に、切替指令に応じて、多項式を入れ替え
    ないノーマル接続演算、多項式を入れ替えるクロス接続
    演算のいずれか一方を行う複数の演算器と、Ri(X)とμi(X)で共用する1つのレジスタと、
    Qi(X)とλi(X)で共用するもう1つのレジス
    タ、 および割算器を有し、前記演算器の最終段から出力
    される値を取り込むとともに、切替指令に応じてノーマ
    ル接続割算演算、クロス接続割算演算のいずれか一方を
    行い、この演算結果を前記各演算器に供給する割算ユニ
    ットと、 予め設定されている初期値と前記割算ユニットのレジス
    タに格納されている値とに基づいてノーマル接続または
    クロス接続のいずれかを指定する切替指令を生成して前
    記演算器、割算ユニットに供給する制御用ユニットと、 を備えたことを特徴とするユークリッドの互除回路。
JP35075391A 1991-12-12 1991-12-12 ユークリッドの互除回路 Expired - Lifetime JP3252420B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP35075391A JP3252420B2 (ja) 1991-12-12 1991-12-12 ユークリッドの互除回路
US07/989,035 US5442578A (en) 1991-12-12 1992-12-10 Calculating circuit for error correction
DE4241903A DE4241903C2 (de) 1991-12-12 1992-12-11 Euklidische wechselseitige Divisionsschaltung
GB9225931A GB2262371B (en) 1991-12-12 1992-12-11 Calculating circuit for error correction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP35075391A JP3252420B2 (ja) 1991-12-12 1991-12-12 ユークリッドの互除回路

Publications (2)

Publication Number Publication Date
JPH05165661A JPH05165661A (ja) 1993-07-02
JP3252420B2 true JP3252420B2 (ja) 2002-02-04

Family

ID=18412633

Family Applications (1)

Application Number Title Priority Date Filing Date
JP35075391A Expired - Lifetime JP3252420B2 (ja) 1991-12-12 1991-12-12 ユークリッドの互除回路

Country Status (1)

Country Link
JP (1) JP3252420B2 (ja)

Also Published As

Publication number Publication date
JPH05165661A (ja) 1993-07-02

Similar Documents

Publication Publication Date Title
JP3232602B2 (ja) ユークリッドの互除回路
US5442578A (en) Calculating circuit for error correction
KR100953884B1 (ko) Raid 장치 및 갈로아체의 곱 연산 처리 방법
EP0621698A2 (en) Error correction method including erasure correction, and apparatus therefore
CN107534449B (zh) 解码装置、解码方法、及程序
US8099655B1 (en) Galois field multiplier system and method
JP3345385B2 (ja) チェンサーチ装置
JP2002335167A (ja) 復号回路、該復号回路を用いる復号装置、復号方法および半導体デバイス
KR100258951B1 (ko) 리드-솔로몬(rs) 복호기와 그 복호방법
JP2001127645A (ja) 誤り訂正方法および誤り訂正装置
RU2314639C1 (ru) Устройство декодирования кодов рида-соломона
US6405339B1 (en) Parallelized programmable encoder/syndrome generator
JP3252420B2 (ja) ユークリッドの互除回路
US6341297B1 (en) Parallel processing syndrome calculating circuit and Reed-Solomon decoding circuit
JP3239522B2 (ja) データ消失訂正方法とその回路
JP3252421B2 (ja) ユークリッドの互除回路
CN107534450B (zh) 矩阵应用装置、矩阵应用方法、以及存储介质
JPH0476540B2 (ja)
JP2002033669A (ja) 復号回路及びその復号方法
JP3233502B2 (ja) 復号化装置
EP0341851A2 (en) Method and apparatus for interleaved encoding
US6574771B1 (en) Galios field processor having dual parallel data path for Bose Chaudhuri Hocquenghem/Reed-Solomon decoder
KR100437845B1 (ko) 리드-솔로몬 복호기의 고속 수정 유클리드 알고리즘 연산방법 및 연산회로
JP2907138B2 (ja) 誤り訂正の演算処理方法及び処理回路
KR100907547B1 (ko) 리드-솔로몬 복호기의 에스-디씨엠이 알고리즘 연산방법 및그 연산회로

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071122

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20081122

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20091122

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20091122

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20101122

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20101122

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20111122

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20111122

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20121122

Year of fee payment: 11

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121122

Year of fee payment: 11