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
Links
Landscapes
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
Description
を行うユークリッドの互除回路に関する。
モン符号に代表される誤り訂正符号を用いて誤り訂正シ
ステムを実現する場合には、受信信号から生成されるシ
ンドロームから誤り位置多項式を求める手段が最も重要
になる(7R-C601-018(4740) Reed-Solomon符号を用いた
高速多重誤り訂正回路のハードウェア化 (1))。この過
程を実現する一手法としてユークリッドの互除アルゴリ
ズムを用いる方法が広く知られている(7R-C601-020(47
88) Reed-Solomon 符号を用いた高速多重誤り訂正回路
のハードウェア化 (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つの有限
体乗算器が必要になり高速実時間処理が必要なシステム
を構成する場合回路規模が大きくなるという欠点があっ
た。
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つの有限体割算器で共有することにより回路規模の
削減を実現している。
現する改良方式として、割算器を共有するための付加回
路や、次数の制御回路がただ1つで済むような構成方法
(構成方法Cと呼ぶ)を提案した。構成方法Cでは、割
算をすべきデータが常に同じ場所から取り出せるため割
算器を共有するための回路やその制御回路が不要にな
る。更に、多項式の次数から動作を判定する回路や制御
回路がただ1つで実現されるため規模が削減される。こ
こで、改訂ユークリッドの互除法(2)における1ステッ
デの演算において、1個の演算ユニットがただ1回の演
算を行なう場合について考えてみる。つまり、時分割多
重等の多重化を行なって1個の演算ユニットで2回以上
の演算を行なわせる場合を除いて本質的に必要な演算器
の数を考える。すると、構成方法A、B、Cの構成方法
において、必要な乗算ユニットの数は、各々、8t、4
t、4t−1個である。構成方法B、Cは、構成方法A
に比べて演算ユニットの数が半分に減少しているが、こ
れは乗算器2つを用いる代わりに割算器を全ユニットに
共有して1つ使用することにより、各演算ユニットに必
要な乗算器を1つに減らしているためである。
アルゴリズム自体で必要な演算(乗算)回数は、1ステ
ップの演算に対して僅かに2t回であるのに対し、2倍
以上の演算ユニットを必要としており極めて無駄な構成
であるといえる。同様に、各多項式の係数を格納するた
めに必要なレジスタの数もアルゴリズムで本来必要な数
に対して約2倍の数を必要としている。
(2)のアルゴリズムにおいて、レジスタへの格納方法と
演算器の構成方法との2つに画期的な工夫を施すことに
より、ユークリッドの互除法における1ステップ当たり
最小の演算回数2tより1多いだけの2t+1個の演算
ユニット数で、かつ最小のレジスタ数4t+3個のレジ
スタ数でアルゴリズムを実現する構成方法を与える。こ
の構成方法により、従来提案されている構成方法A、
B、Cより遥かに少ない演算ユニット数によりユークリ
ッドの互除アルゴリズムが実現できる事になるため、極
めて画期的なものであると言える。
る。GF(2m)の有限体を用いてtシンボル誤り訂正可
能で符号長がnの誤り訂正システムを考える。誤り位置
を符号の先頭を0番目と数えてj番目にある時にαjで
表すとする。すると、符号全体にm個の誤りがあるとす
れば、符号全体の誤りは、誤り位置Xi(但し、i=
1、…、m)及び誤りパターンYi(但し、i=1、
…、m)で記述することが出来る。つまり、全部でm
(m≦2t)個の誤りがあった場合には、m組の(Xi、
Yi)が必要になる。この誤り位置Xi(但し、i=1、
…、m)を用いて、誤り位置多項式σ(X)と呼ばれる多
項式を定義する。誤り位置多項式σ(X)は、誤り位置X
=Xi-1(但し、i=1、…、m)で0になる。
ム多項式S(X)を用いて誤り評価他項式ω(X)を
られる。つまり、
の係数に持つシンドローム多項式S(X)と呼ばれる多項
式を定義する。
から誤り位置多項式σ(X)及び誤り評価多項式ω(X)を求
める。この時にユークリッドの互除法によるアルゴリズ
ムを用いる。
し、i=1、…、m)をサーチする。ステップ2で求め
られた誤り位置多項式σ(X)の係数を使用して、σ(X)に
GF(2m)に含まれる全ての要素X=α0、…、αn-1を
代入してσ(X)=0となる位置が誤り位置Xi-1(但し、
i=1、…、m)であることが判る。
1、…、m)が求められると、誤りパターンYi(但
し、i=1、…、m)は、誤り評価多項式ω(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)”で述べ
てある。
項式の導出》次に、誤り位置多項式の導出方法について
述べる。これは、上に述べた誤り訂正の過程のステップ
2に当たるものである。シンドローム多項式S(X)から
ユークリッドの互除法によるアルゴリズムを用いて誤り
位置多項式σ(X)を求める方法は、次のように知られて
いる。
=X2t、r0(X)=S(X)とおく。S(X)の次数は2t−1
次であるから、deg(r0(X))<deg(r-1(X))であ
る。このr-1(X)、r0(X)を用いて多項式qi(X)を商と
する割算を繰り返し行なってゆく。これがユークリッド
の互除法と同じ演算であり、次に示すようになる。
算の過程で得られたr1(X)、r2(X)、…、rj-1(X)の式
に下から順次代入計算することにより、最初に定義され
たr-1(X)=X2t、r0(X)=S(X)を用いて次式のように
表現することが出来る。
なる。この手順をハードウェアで実現するためには、割
算を如何に逐次実行してqj(X)、rj(X)を求めるかとと
もに、得られたr1(X)、r2(X)、…、rj-1(X)から、σ
(X)を求めるために逆順代入計算する手順を如何に実現
するかが課題となる。
割算の結果、余りの次数が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)に若干改
良を加えたものに相当する。
る。
行なう場合には、最終的に得られるdR2tはω(X)の次
数を示すことになる。当然ながら、σ(X)の次数はdR
2t+1である。このアルゴリズムに従えば、2tステップ
の演算の後にσ(X)、ω(X)を求めることが出来る。
符号を用いた高速多重誤り訂正回路のハードウェア化
(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)”に詳細な実例を示してあるので参照のこ
と。
のハードウェア化》ユークリッドの互除法のアルゴリズ
ムをシストリックアレイアーキテクチャを用いてハード
ウェアで実現する例が文献“Howard M. Shao et.al."A
VLSI Design of aPipeline Reed-Solomon Decoder" IEE
E Trans. on Computers vol.C-34May 1985”により示さ
れている(構成方法A)。
ドの互除法における割算の途中で余りの次数が一度に2
次以上低下する場合に対応しておらず、完全にユークリ
ッドの互除アルゴリズムを実現していない。また、構成
方法Aでは各ユニットに2つの有限体乗算器が必要にな
り高速実時間処理が必要なシステムを構成する場合、回
路規模が大きくなるという欠点がある。
法Bを本出願人が提案した。この方法では構成方法Aで
示されている互除ユニット中の2つの有限体乗算器を1
つの有限体乗算器と1つの有限体割算器とに置き換え
る。次に、縦続接続されている複数の互除ユニット中の
有限体割算器を1つの有限体割算器で共有することによ
り回路規模の削減を実現している。
な基本的な演算ユニット(互除ユニットと呼ぶ。)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を
入力する。
路切替器である。演算が、クロスモードの時にデータが
クロスするように選択され、それ以外の場合はクロスせ
ずに選択される。つまり、dRi-1次の係数が入力した
時(つまり、SFフラグが入力した時)にRi-1(X)のd
Ri-1次の係数ai-1が0であるか否かを判断し、ai-1
≠0、dRi-1<dQi-1の場合のみクロスすることにな
る。
それ以外の場合にはbi-1/ai-1がレジスタ102に保
持され、多項式の全ての係数に対して演算が行なわれ
る。その結果、入力データがこの互除ユニットを1回通
過する毎に改訂ユークリッドの互除法(2)の1ステップ
が演算されて行くことになる。したがって、図9のよう
に、この互除ユニット101を2t個縦続接続して並べ
て、入力として
てσ(X)、ω(X)が得られることになる。
符号を用いた高速多重誤り訂正回路のハードウェア化
(2)”に示す例題を用いて動作例を図10〜図13に示
す。この例では、図10、図12がクロスモード、図1
1、図13がノーマルモードで演算されている。図13
のように4回、互除ユニットを通過した結果としてσ
(X)、ω(X)が求められていることが判る。
(X)、ω(X)の2つの多項式は、実際に起きている誤り数
がt未満の場合には2tステップの演算の後には、見か
け上、2t次の多項式であるかのように上位にシフトさ
れて出力される。したがって、dR2tの値を見て次数を
合わせるか、または改訂ユークリッドの互除法(2)にお
いて停止条件をdRi<tと変更すれば良い。なお、こ
の図はあくまで原理的な図であり素子の遅延時間等を考
慮していない。詳細のインプリメンテーションについて
は文献“7R-C601-021(4817) Reed-Solomon 符号を用い
た高速多重誤り訂正回路のハードウェア化 (3)”を参照
のこと。
101の有限体割算器103が同時に動作する必要がな
いことに着目して、図14に示す如く前記各互除ユニッ
ト101から有限体割算器103を除いた互除ユニット
101aを縦続接続し、かつ各互除ユニット101aの
Ri-1(X)、Qi-1(X)を取り出してこれを切替スイ
ッチ105によって順次、選択して有限体割算器106
で割算した後、対応する互除ユニット101aに戻すよ
うにして、1つの有限体割算器106を時分割で共有
し、全体のゲート規模を削減するようにした。
除ユニット101aから有限体割算器106を共有する
ために必要な制御回路が複雑になり動作速度が向上しな
い欠点がある。また、有限体割算器106を共有しても
多項式の次数とRi-1(X)のdRi-1次の係数の0検出を
行なって動作を判定する回路や、データ切替器等の制御
回路が各互除ユニット101aに独立に必要なため回路
規模がやや増大する欠点がある。 加えて、この方法を
用いる場合にはシンドローム多項式S(X)の係数である
シンドロームS2t、S2t-1、…、S1が上位の係数から
順に入力する必要がある。ところが、シンドロームはS
2t、S2t-1、…、S1が同時に求められるため、この同
時に求められたシンドロームを上位の係数から順に入力
するように変換する回路が別途必要になる。
に、文献“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個のブロックが必
要である。
ブロック(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を入力す
る。
の係数用のレジスタRR2t-1に格納されている係数は接
続切替ブロック113に設けられている0検出回路11
5で0検出が行われる。また、接続切替ブロック113
のレジスタDR、DQは各々dRi、dQiが格納され
る。初期値は各々、2t−1、2tである。なお、初期
値を設定する回路は構成図の他に別途必要である。しか
し、これは本質的なものではなく、簡単な回路であるの
で、ここでは省略する。
作を説明する。まず、初期値が設定されたレジスタD
R、DQの値は比較回路116で比較され、DR<DQ
で、かつ0検出回路115からレジスタRR2t-1≠0の
状態が知らされた場合に点線で示した切替器をクロス側
に切替える。その他の場合にはクロスしない。この切替
えは構成図全体の切替器、全てを同時に行なえば良い。
器が切替えられた後に、Ri-1(X)のdRi-1次の係数と
Qi-1(X)のdQi-1次の係数が切換器を通って有限体割
算器117に入力される。有限体割算器117では、図
中のE、Fの入力に対してE/Fの割算を行い、その結
果Sを出力する。
ブロック(A)111、各ブロック(B)112の乗算
器119、120、加算器121、122により、演算
が行なわれる。この手順によると、多項式Ri(X)は、d
Ri次の係数から0次の係数がレジスタRR2t-1からレ
ジスタRR0まで上位の係数から順に格納される。ま
た、多項式Qi(X)も同様に、dQi次の係数から0次の
係数がレジスタRQ2tからレジスタRQ0まで順に格納
される。λi(X)、μi(X)の各多項式についても同様に各
係数がレジスタRλ2tからレジスタRλ0まで、またレ
ジスタRμ2t-1からレジスタRRμ0まで上位の係数か
ら順に格納される。
の互除法(2)の1ステップの演算が行われる。したが
って、この手順を2t回繰り返すことにより構成方法B
と同様にσ(X)、ω(X)が求められる。
16に示すレジスタDR、DQ、RR2t-1〜RR0、R
Q2t〜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による結果と一致している。
ロスモード、第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つ
ずつの係数に対しての演算が行なわれる。したがって、
演算量自体は変化していないが構成方法が大幅に簡単化
される。
の構成方法Cによれば、ブロック(A)111のレジス
タRR2t-1、RQ2t-1には、有限体割算器117の入力
となるRi(X)のdRi次の係数とQi(X)のdQi次の係数
が格納される。したがって、有限体割算器117の入力
は、常にブロック(A)111のRi(X)及びQi(X)用の
切替器の直後から入力されることになる。このように本
構成法では、有限体割算器117に対して常に同じ場所
からデータを入力することが可能になるため、有限体割
算器117を共有するための付加回路が不要になり、構
成全体の規模低減が可能になる。
小判定とRi(X)のdRi次の係数の0検出を行って各切
替器の制御を行なう回路を各互除ユニット101に各々
独立に持つ必要があったが、構成方法Cによれば、接続
切替判定ブロック103だけでこの処理を行なう。この
ため規模低減が可能になる。さらに、構成方法Bでは、
訂正可能なシンボル数がtの場合に各互除ユニット10
1に2個ずつ合計4t個の乗算器が必要であったが、本
構成法では、4t−1個に削減されている。
は、入力信号R0(X)、即ちシンドローム多項式の係数S
1、S2…S2tを上位係数から順にシリアル入力する必要
があるのに対して、この構成方法Cでは、2t個のシン
ドローム多項式の係数を同時に入力して初期化すること
が出来る。また、シンドロームは行列計算の結果として
得られるため、本質的に同時に求めることができる。し
たがって、構成方法Bでは、同時に求められたシンドロ
ームをシリアル化して入力する必要があるのに対して、
本構成法を用いれば、同時に求められたシンドローム多
項式の係数をそのまま直接入力することが出来るのでシ
リアル化する回路が不要になる。それと同時にシリアル
化することにより結果が得られるまでの時間(スループ
ットタイム)が増加するのを回避することが出来る。
スタ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
の入力側にセレクタを設けて実現すれば全てのレジスタ
を同時に初期化することが可能である。一方、各々の多
項式の最下位のレジスタの入力として各々の多項式の初
期値をシリアルに入力することにより順次初期化するこ
とも可能である。
の互除法(2)における1ステップの演算において、1個
の演算ユニットがただ1回の演算を行なう場合について
考えてみる。つまり、時分割多重等の多重化を行なって
1個の演算ユニットで2回以上の演算を行なわせる場合
を除いて本質的に必要な演算ユニットの数を考える。
要な乗算ユニットの数は、各々、8t、4t、4t−1
個である。ここでtは訂正可能なシンボル数である。構
成方法B、Cが構成方法Aに比べて演算ユニットの数が
約半分で済んでいる。これは乗算器2つを用いる代わり
に有限体割算器1個と乗算器1個とを使用した構成に改
め、各演算ユニットで必要な有限体割算器を共有してた
だ1つ使用することにより、各演算ユニットに必要な乗
算器を1つに減らしているためである。
のアルゴリズム自体で本来必要な演算(乗算)回数につ
いて、文献“7R-C601-020(4788) Reed-Solomon 符号を
用いた高速多重誤り訂正回路のハードウェア化 (2)”に
示してある例題を用いて考えてみる。
を用いて定義される有限体GF(24)を用いてt=2シ
ンボル誤り訂正を行なったものである。今、シンドロー
ム多項式S(X)が、
改訂ユークリッドの互除法(2)を用いて誤り位置多項式
σ(X)を導出すると次のようになる。
は、構成方法Bでは、図10〜図13、構成方法Cで
は、図16〜図20に各々、示すように行なわれる。こ
こで、乗算の演算が必要なのは、Ri(X)、λi(X)を求め
る演算である。各ステップの乗算回数に着目すると、ス
テップ1では、R1(X)を求める演算として、
0(X)の係数と割算結果のα7との乗算である。R0(X)は
3次の多項式であるから4個の係数があるが、最高次の
係数は割算に使用されているため、改めて演算する必要
がない。結局、
0(X)側の演算では、
される係数はただ1つで、
部で4回の演算が行なわれていることが判る。
を見ると、R2(X)の演算では、割算の結果α9を用い
て、
2(X)の演算では、
われている。同様に、第3ステップでは、R3(X)の演算
で、
側の演算ユニットでは、
ている。
の演算で、
ニットでは、
いることになる。以上の事から判るように、実際に必要
な演算数の各ステップにおける総和は、常に4になって
いる。これは、ユークリッドの互除法が進むにつれて、
Ri(X)、Qi(X)の次数が減少して行くのに対して、λ
i(X)、μi(X)の次数が増加して行くために当然の結果と
して起きる。
おける第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)回の演算が必要になる。
μi-1(X)により行なわれる。λi(X)を計算するのに必要
な演算は、クロスモードの場合λi-1(X)、ノーマルモー
ドの場合μi-1(X)の全ての係数に対して乗算が必要にな
る。シフトモード以外で実際に演算が行われるノーマル
モードとクロスモードの場合、第iステップの演算にお
いてλi(X)、μi(X)の次数をdλi、dμiとすると、
われて、Ri(X)の演算にdRi-1次の多項式Ri-1(X)の
最上位(dRi-1次)の係数以外の係数に対して乗算が
行なわれる。したがって、dRi-1回の乗算が必要であ
る。一方、λi(X)の演算に対しては、λi-1(X)のdλ
i-1+1個の全ての係数に対して乗算が必要である。
回数Ncrossは、
crossは、2t以下になる。一方、dRi-1≧dQi-1の
場合のノーマルモードで演算が行なわれる場合には、R
i(X)の演算にdQi-1次の多項式Qi-1(X)の最上位(d
Qi-1次)の係数以外の係数に対して乗算が必要でdQ
i-1回の乗算が必要である。同様に、λi(X)の演算に対
しては、μi-1(X)のdμi-1+1個の全ての係数に対して
乗算が必要である。
回数Nnormalは、
normalも、2t以下になる。
要な各ステップにおける全乗算回数は常に2tを以下で
ある。したがって、本来必要な演算ユニット数は僅かに
2t個であることになる。したがって、先に示した例題
の場合には、演算ユニットの数は本来4個で済むはずで
ある。しかし、現実の実現した構成方法を見てみると、
構成方法A、B、C共に2tに比べ倍以上の演算ユニッ
トを必要としており、極めて無駄な回路構成であると断
言できる。
要のある係数の個数を考察してみる。dRi、dQi、d
λi、dμiは、実際に演算が行なわれるノーマルモード
及びクロスモードの演算ステップにおいてRi(X)、Q
i(X)、λi(X)、μi(X)の次数を表している。これらの次
数には次の関係が成り立つ。
であり、Ri(X)とμi(X)の次数の総和は、2t−1以下
になる。
するために必要なレジスタの数は2t+2個、Ri(X)と
μi(X)の係数を格納するために必要なレジスタの数は2
t+1個で良いことになり、合計でも4t+3個で良い
ことになる。しかし、構成方法Cでは、8t+1個のレ
ジスタを使用しており極めて無駄な構成になっている。
以上述べたように、構成方法A、B、Cいずれも1ステ
ップ当たりの乗算回数、レジスタ数共に、本来アルゴリ
ズムが必要としている演算量に比べて倍以上の無駄な回
路構成になっている。
易く説明してみる。構成方法Cによる例題では、図16
〜図20の中で行なわれている演算は、次の表のように
なる。
Q=4
dQ=3
Q=3
dQ=2
乗算は4回ずつしか行なわれておらず、常に残りの演算
ユニットは動作していないことが判る。また、λi(X)、
μi(X)の格納場所は演算が進むにつれ見かけ上で上位に
シフトして行くため演算ユニットが使用される場所が毎
ステップ変化している。このため構成方法Cでは演算ユ
ニットの数を削減できないことが判る。
の互除法における1ステップ当たりの最小の演算回数2
tより1つだけ多いだけの2t+1個の演算ユニット数
で、かつ最小のレジスタ数4t+3個のレジスタ数でア
ルゴリズムを実現することができ、これによって回路規
模を大幅に低減させることができるとともに、高速動作
を可能にしてスループットを大幅に向上させることがで
きるユークリッドの互除回路を提供することを目的とし
ている。
互除回路は、第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
つのレジスタ、および割算器を有し、前記演算器の最終
段から出力される値を取り込むとともに、切替指令に応
じてノーマル接続割算演算、クロス接続割算演算のいず
れか一方を行い、この演算結果を前記各演算器に供給す
る割算ユニットと、予め設定されている初期値と前記割
算ユニットのレジスタに格納されている値とに基づいて
ノーマル接続またはクロス接続のいずれかを指定する切
替指令を生成して前記演算器、割算ユニットに供給する
制御用ユニットとを備えたものである。
予め設定されている初期値と前記割算ユニットのレジス
タに格納されている値とに基づきノーマル接続またはク
ロス接続のいずれかを指定する切替指令が生成され、こ
の動作と並行して各演算器によって割算結果および前段
から出力される値が取り込まれるとともに、切替指令に
応じてノーマル接続演算、クロス接続演算のいずれか一
方が行なわれ、さらに割算ユニットによって前記演算器
の最終段から出力される値が取り込まれるとともに、切
替指令に応じてノーマル接続割算演算、クロス接続割算
演算のいずれか一方が行なわれ、この演算結果が前記各
演算器に供給されてユークリッドの互除演算が行われ
る。
ステップ当たり最小の演算回数2tより1多いだけの2
t+1個の演算ユニット数で、かつ、最小のレジスタ数
4t+3個のレジスタ数でアルゴリズムを実現する構成
方法を与える。この構成方法により、従来提案されてい
る構成方法A、B、Cより遥かに少ない演算ユニット数
によりユークリッドの互除アルゴリズムが実現できる事
になるため、極めて画期的なものであると言える。提案
する構成方法の概念的な構成図を図1に示す。図1に示
すようにこの構成方法による回路はDIVブロック1
と、MLTブロック2との2つの部分から成っている。
ち、構成図中ただ1つ存在する最上位係数の割算ユニッ
ト3と、dRi、dQiの大小関係とRi(X)のdRi次の
係数の0検出を行ないDIVブロック1、MLTブロッ
ク2の切替器を制御する信号を発生する制御用ユニット
4から成る。
する演算に対し演算器を多重化して使用しない場合にお
いて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、
B0用のレジスタ120に格納されている係数の次数を表
しており、クロスモード・ノーマルモード(後述)の実
際に演算が行われる時には、Ri(X)、Qi(X)の次数を表
すことになる。
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であることか
ら実際には更に回路が簡略化できる。
方法について説明する。まず、本構成方法では、Qi(X)
と、λi(X)の係数の格納場所と、Ri(X)とμi(X)の係数
の格納場所を各々共用する。ユークリッドの互除法の各
ステップにおける演算においては、
数の和が常に2tであることを示している。したがっ
て、Qi(X)の次数が減少するにつれてλi(X)の次数が増
大したとしても、各々の多項式の係数を格納すべきレジ
スタの数の和は常に2t+2であることを示しているこ
とになる。同様に、Ri(X)とμi(X)の次数の和も2t−
1以下であるため、係数を格納すべきレジスタ数の和
は、最大でも2t+1でよいことを示している。
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)の係数が格納されるこ
とになる。
10〜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の状態が知らされた
場合にはクロスモード、その他の場合にはノーマルモー
ドであることを認識する。
ック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の演
算ユニットが次の表に従って演算を行なう。
格納され、改訂ユークリッドの互除法における1ステッ
プの演算が終了する。この演算手順を2t回繰り返すこ
とにより、誤り位置多項式σ(X)、誤り評価多項式ω(X)
を求めることが出来る。
よるアルゴリズムでは、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)の係数を元に戻して演算を行な
い結果を再び反転して格納すれば良いことになる。
は、クロスモード、ノーマルモードいずれも次数の少な
い方の係数の数だけ演算を行なえば良い。さらに、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)
の係数が格納されている。この場合には、レジスタに格
納されている係数に対して演算を行なう必要が無く、格
納されている係数を入れ換えれるだけで良いことにな
る。
〜122t+1のうち、dQi-1<jのレジスタではA側に
はμi-1(X)、B側にはλi-1(X)が格納されている。そこ
で、A側のレジスタと、B側のレジスタの値を反転して
dRi-1(X)とdQi-1(X)と同一の演算を行ない結果を再
び反転して格納すれば良いことになる。
数が常に2t回になり、本構成方法で示す2t+1個の
演算ユニットで実現できることになる。なお、シフトモ
ードは演算を行なう必要がないが、このシフトモードを
ノーマルモードで有限体割算器16からの出力Sが0で
ある場合と同一の処理を行なうことも可能である。
も可能である。 テーブル2−1 クロスモードの演算表
モードの演算表
な構成であるが、これは既に述べた演算表に示した6種
類の演算が最低限実行できるならどのような構成でも良
い。例えば、上述したように図2の構成方法で実現でき
る。この構成は3つの切替器6〜8と乗算器9及び加算
器10で構成されており、各切替器6〜8の制御を次表
のように行なえば、必要な演算を実行できる。なお、こ
の切替方法以外の制御方法でも同様の演算が実現でき
る。 テーブル3 切替器の制御方法
は切替器をI−I'側に切替えることを示し、crossと書
いてあるのは切替器をH−H'側に切替えることを示
す。また、切替器8についてthroughと書いてあるの
は、切替器8をI側に切替えることを示し、clearと書
いてあるのは、切替器8をH側の0が入力される方に切
替えられることを意味する。
ト51〜52t1を図1の構成に用いた場合の動作例を図3
〜図7に示す。ここで上げるのは、既に述べた規約多項
式g(X)=X4+X+1を用いて定義される有限体GF
(24)を用いてt=2シンボル誤り訂正を行なった動
作例と同一のものである。なお、図3に示すレジスタ1
10〜114、120〜125、13、14は全て初期設定
が行なわれているものとする。
は、レジスタ13に格納されているDRの値(dR0)
が3でレジスタ14に格納されているDQの値(dQ)
が4でDR<DQの条件を満たしており、また、レジス
タ110に格納されているR0(X)のdR0次の係数がα8
と非零であるため、動作モードがクロスモードであるこ
とが認識される。そこで、有限体割算器16の入力側に
ある切替器18がクロス側に切替えられて1/α8なる演
算が行なわれ、割算結果S=α7が各演算ユニット51〜
55に対して出力される。このように、図3ではクロス
モードの処理を行なうことになる。したがって、MLT
ブロック2の各演算ユニット51〜55に於いては、先に
述べたテーブル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となる。
ニット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である係数を格納せずに済むため
無駄な演算の必要がなくなり、結果として演算器の数が
大幅に削減されていることが判る。
は、レジスタ13に格納されているDRの値(dRi)
が3でレジスタ14に格納されているDQの値(d
Qi)が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、
55は、A'=A、B'=A×S+Bの演算が必要である
から、切替器7がcross、切替器8がthrough、切替器6
がcrossとなる。
ニット51〜55にある切替器6〜8の動作は図4で示し
たものになる。演算された結果は、次のクロックサイク
ルでは図5に示すように各レジスタ110〜114、12
0〜125に格納される。結局、図3以下、第1、3ステ
ップがクロスモード、第2、4ステップがノーマルモー
ドで演算が行なわれ最終的に図7においてσ(X)、ω(X)
が得られている。ここで、σ(X)の係数が構成方法Cに
よる図20で得られている係数と、格納場所と、順序と
が共に逆転して得られていることに注意されたい。
を次表にまとめておく。 [ステップ1]クロスモードdR=3、dQ=4
Q=3
法Cと同じ演算を各ステップで行なっているにも拘ら
ず、各多項式の係数の格納方法と演算ユニット51〜5
2t+1の構成方法を工夫したことにより、多項式の係数を
格納するためのレジスタ数と各演算ステップにおける演
算回数を半減出来ていることが判る。
ユークリッドの互除法の各ステップにおいて原理的に必
要な最小の演算回数(乗算回数)2tより1多いだけの
2t+1個の演算ユニット51〜52t+1でアルゴリズム
を実現することが出来る。勿論、これは各演算ユニット
51〜52t+1をユークリッドの互除法の1ステップの演
算でただ1回しか使用しない場合である。また、演算途
中に必要な各多項式の係数を格納するためのレジスタ数
が原理的に最小の4t+3個で実現できる。これは、本
構成法では、先に説明した構成方法Cとは、各多項式の
係数の格納方法が全く異なっているためである。すなわ
ち、構成方法Cでは、各多項式の係数を独立に格納する
ためのレジスタを必要とした。このため各多項式が最大
次数になっても格納できる数のレジスタ数である8t+
1個のレジスタ数を用意する必要がある。更に、このレ
ジスタ数の増大が演算ユニット数の増加を招いている。
ように、A側のレジスタ110〜112tをRi(X)とμ
i(X)の係数用のレジスタとしている。各演算ステップに
おいては、先ず、dRi次の多項式Ri(X)の最上位(d
Ri次)係数がレジスタ110に格納され、以下順に下位
の係数が格納される。Ri(X)の0次の係数に引き続いて
μi(X)の係数が最下位(0次)の係数が格納され、以下
順に上位の係数が格納される。したがって、A側のレジ
スタ110〜112tでは、上のレジスタ110から順にR
i(X)の上位係数から格納され、続いてμi(X)の下位係数
から順に格納される。また、B側のレジスタ120〜1
22t+1も同様にQi(X)とλi(X)の係数用のレジスタであ
る。各演算ステップにおいて、dQi次の多項式Qi(X)
の最上位(dQi次)係数がレジスタ120に格納され、
以下順に下位係数が格納される。Qi(X)の0次係数に引
き続いてλi(X)の係数が最下位(0次)の係数が格納さ
れ、以下順に下位係数が格納される。
な関係式が成り立つ。
から、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)
とに演算器を工夫すると、必要な演算を施すことが出来
るように構成されている。
は、図2の構成例では構成方法Cで必要な演算ユニット
に比べ、切替器6、切替器8が付加されており、若干構
成が複雑になっている。しかし、この増加は僅かなもの
であり、演算ユニット数と係数格納用レジスタ数が約半
減するため圧倒的な回路規模削減が実現できる。また、
演算ユニット51〜5t+1自体の構成は既に述べた表(テ
ーブル1−1、1−2、1−3)の演算を行なうことが
可能であるならば、どのような構成でも良い。したがっ
て、図2の構成方法の他にも同一の演算を行なう構成は
数多く考えられ、図2の構成方法に比べて構成を複雑に
して高速動作を行う回路構成も考えられる。
112t、120〜122t+1、13、14を初期化するに
は様々な方法がある。例えば、各レジスタ110〜11
2t、120〜122t+1、13、14の入力側にセレクタ
を設けて、初期値設定時にこれらの各セレクタを初期値
設定器側に切り替えてこれらの各初期値設定器に設定さ
れている値(初期値)を各レジスタ110〜112t、1
20〜122t+1に入力することより、全てのレジスタ1
10〜112t、120〜122t+1、13、14を同時に初
期化することが可能である。その他に、各々の多項式の
最下位のレジスタ、即ちレジスタ112t、122t+1のみ
に入力用のセレクタを付けて入力端子とすれば、各々の
多項式の初期値をシリアルに入力することにより順次、
初期化することも可能である。
ークリッドの互除法における1ステップ当たりの最小の
演算回数2tより1つだけ多いだけの2t+1個の演算
ユニット数で、かつ最小のレジスタ数4t+3個のレジ
スタ数でアルゴリズムを実現することができ、これによ
って回路規模を大幅に低減させることができるととも
に、高速動作を可能にしてスループットを大幅に向上さ
せることができる。
を示すブロック図である。
すブロック図である。
す模式図である。
す模式図である。
す模式図である。
す模式図である。
す模式図である。
で使用される互除ユニットの一例を示すブロック図であ
る。
の一例を示すブロック図である。
を示す模式図である。
を示す模式図である。
を示す模式図である。
を示す模式図である。
路の他の一例を示すブロック図である。
の一実施例を示すブロック図である。
例を示す模式図である。
例を示す模式図である。
例を示す模式図である。
例を示す模式図である。
例を示す模式図である。
Claims (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つのレジス
タ、 および割算器を有し、前記演算器の最終段から出力
される値を取り込むとともに、切替指令に応じてノーマ
ル接続割算演算、クロス接続割算演算のいずれか一方を
行い、この演算結果を前記各演算器に供給する割算ユニ
ットと、 予め設定されている初期値と前記割算ユニットのレジス
タに格納されている値とに基づいてノーマル接続または
クロス接続のいずれかを指定する切替指令を生成して前
記演算器、割算ユニットに供給する制御用ユニットと、 を備えたことを特徴とするユークリッドの互除回路。
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) |
-
1991
- 1991-12-12 JP JP35075391A patent/JP3252420B2/ja not_active Expired - Lifetime
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 |