JP3252421B2 - ユークリッドの互除回路 - Google Patents
ユークリッドの互除回路Info
- Publication number
- JP3252421B2 JP3252421B2 JP35075991A JP35075991A JP3252421B2 JP 3252421 B2 JP3252421 B2 JP 3252421B2 JP 35075991 A JP35075991 A JP 35075991A JP 35075991 A JP35075991 A JP 35075991A JP 3252421 B2 JP3252421 B2 JP 3252421B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- order
- registers
- stored
- polynomial
- 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)
- Detection And Prevention Of Errors In Transmission (AREA)
Description
を行うユークリッドの互除回路に関する。
モン符号に代表される誤り訂正符号を用いて誤り訂正シ
ステムを実現する場合には、受信信号から生成されるシ
ンドロームから誤り位置多項式を求める手段が最も重要
になる(7R-C601-018(4740) Reed-Solomon符号を用いた
高速多重誤り訂正回路のハードウェア化 (1))。
ッドの互除アルゴリズムを用いる方法が広く知られてい
る(7R-C601-020(4788) Reed-Solomon 符号を用いた高
速多重誤り訂正回路のハードウェア化 (2))。
多項式の最大公約多項式(Most Common Devisor)を求め
るアルゴリズムとして知られている。誤り訂正符号にお
いては、ユークリッドの互除法の過程で用いられる演算
手順をうまく適用することにより、シンドロームから誤
り位置多項式を算出することができる。ユークリッドの
互除法の演算過程は、シストリックアレイアーキテクチ
ャで構成できる利点があり、比較的簡単な演算ユニット
(互除ユニットと呼ぶ)を複数個縦続接続することで実
現できる。
アルゴリズムをシストリックアレイアーキテクチャで実
現する例が示されている(この構成方法を以下の文章で
は構成方法Aと呼ぶ)が(Howard M. Shao et.al."A VL
SI Design of a Pipeline Reed-Solomon Decoder" IEEE
Trans. on Computers vol.C-34 May 1985)、この構成
方法では、アルゴリズムが不完全な上、各ユニットに2
つの有限体乗算器が必要になるため、高速実時間処理が
必要なシステムを構成する場合回路規模が大きくなると
いう欠点があった。
成法を以下の文章では構成方法Bと呼ぶ。)を筆者が提
案した。構成方法Bでは文献“Howard M. Shao et.al."
A VLSI Design of a Pipeline Reed-Solomon Decoder"
IEEE Trans. on Computers vol.C-34 May 1985”で示さ
れているように改訂ユークリッドの互除法(2)を用い
て互除ユニット中の2つの有限体乗算器を1つの有限体
乗算器と1つの有限体割算器に置き換える。次に、縦続
接続されている複数の互除ユニット中の有限体割算器を
1つの有限体割算器で共有することにより回路規模の削
減を実現している。
現する改良方式として、割算器を共有するための付加回
路や、次数の制御回路がただ1つで済むような構成方法
(構成方法Cと呼ぶ)を提案した。構成方法Cでは、割
算をすべきデータが常に同じ場所から取り出せるため割
算器を共有するための回路やその制御回路が不要にな
る。更に、多項式の次数から動作を判定する回路や制御
回路がただ1つで実現されるため規模が削減される。
における1ステッデの演算において、1個の演算ユニッ
トがただ1回の演算を行なう場合について考えてみる。
つまり、時分割多重等の多重化を行なって1個の演算ユ
ニットで2回以上の演算を行なわせる場合を除いて本質
的に必要な演算器の数を考える。
おいて、必要な乗算ユニットの数は、各々、8t、4
t、4t−1個である。構成方法B、Cは、構成方法A
に比べて演算ユニットの数が半分に減少しているが、こ
れは乗算器を2つ用いる代わりに割算器を全ユニットに
共有して1つ使用することにより、各演算ユニットに必
要な乗算器を1つに減らしているためである。
のアルゴリズム自体で必要な演算(乗算)回数は、1ス
テップの演算に対して僅かに2t回であるのに対し、2
倍以上の演算ユニットを必要としており極めて無駄な構
成であるといえる。同様に、各多項式の係数を格納する
ために必要なレジスタの数もアルゴリズムで本来必要な
数に対して約2倍の数を必要としている。
訂ユークリッドの互除法(2)のアルゴリズムにおい
て、レジスタへの格納方法と演算器の構成方法との2つ
に画期的な工夫を施すことにより、ユークリッドの互除
法における1ステップ当たり最小の演算回数2tより1
多いだけの2t+1個の演算ユニット数で、かつ最小の
レジスタ数4t+3個のレジスタ数でアルゴリズムを実
現する構成方法を開示している(以下、構成方法Dと呼
ぶ。)。
構成方法A、B、Cより遥かに少ない演算ユニット数に
よりユークリッドの互除アルゴリズムが実現できる極め
て画期的なものである。この構成方法Dでは、2t+1
個の演算ユニットを用いて1クロックサイクルの間に1
ステップの演算を完了するため、2tクロックサイクル
後に、所望のσ(X)、 ω(X)が得られることになる。
理が要求される連続的に入力するデータに対する処理を
行う場合においても、シンドロームから誤り位置多項式
を求めるプロセスは、1符号長のデータが入力される時
間中に処理を行えば良い。通常、符号長nは、2tに対
して十分に大きいので、符号長nが十分に長い仕様の誤
り訂正システムに対して構成方法Dの回路をそのまま使
用すると、n−2tクロックサイクルの間は、ユークリ
ッドの互除法を行う回路が遊んでしまうことになり冗長
な回路構成になる。
処理に対しては、ある定められた時間内に終了すれば良
いにも拘らず、構成方法Dのような回路構成で2tクロ
ックサイクルで答を得る必要がなく極めて無駄である。
を構成方法Dを用いて実現した場合に必要な1ステップ
当たり2t+1回の演算を2t+1個より少ない演算ユ
ニットを時分割多重化して使用することにより、演算ユ
ニットの数を削減することが出来るような構成方法与え
るものである。
プ当たりの演算回数が2t+1回のままで、構成する誤
り訂正システムが要求する速度、スループット等の仕様
に応じて自由に多重度の値を設定することが可能にな
り、これによって設計要求を満たし、かつ、演算ユニッ
ト数が最小の構成の回路を得ることができる。
る。GF(2m)の有限体を用いてtシンボル誤り訂正可
能で符号長がnの誤り訂正システムを考える。誤り位置
を符号の先頭を0番目と数えてj番目にある時にαjで
表すとする。すると、符号全体にm個の誤りがあるとす
れば、符号全体の誤りは、誤り位置Xi(但し、i=1
…m)及び誤りパターンYi(但し、i=1…m)で記
述することが出来る。つまり、全部でm(m≦2t)個
の誤りがあった場合には、m組の(Xi、Yi)が必要にな
る。
用いて、誤り位置多項式σ(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(但し、i=1…
m)であることが判る。
1…m)が求められると、誤りパターンYi(但し、i
=1…m)は、誤り評価多項式ω(X)を用いて次のよう
に算出される。
i(但し、i=1…m)及び誤りパターンYi(但し、i
=1…m)を用いて受信信号に対して訂正を行なう。
行なわれる。詳細については“7R-C601-018(4740) Reed
-Solomon 符号を用いた高速多重誤り訂正回路のハード
ウェア化 (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))であ
る。
i(X)を商とする割算を繰り返し行なってゆく。これがユ
ークリッドの互除法と同じ演算であり、次に示すよう
に、
算の過程で得られたr1(X)、r2(X)…rj-1(X)の式に下
から順次代入計算することにより、最初に定義されたr
-1(X)=X2t、r0(X)=S(X)を用いて次式のように表現
することが出来る。
(X)、σ(X)になる。
は、割算を如何に逐次実行してqj(X)、rj(X)を求める
かとともに、得られたr1(X)、r2(X)…rj-1(X)から、
σ(X)を求めるために逆順代入計算する手順を如何に実
現するかが課題となる。
割算の結果、余りの次数が1回の割算で2次以上低下す
る場合がある。ユークリッドの互除法を実現するハード
ウェアの構成は、このような場合にも破綻なく動作する
構成でなくてはならない。
リズムを、通常のユークリッドの互除アルゴリズムを次
数が1次ずつ減少してゆくように書き直すことにより、
次に示す系統的なアルゴリズムを用いて実現することが
出来る。これは、文献“Howard M. Shao et.al."A VLSI
Design of a Pipeline Reed-Solomon Decoder" IEEETr
ans. on Computers vol.C-34 May 1985”で提示されて
いるアルゴリズムを本出願人が改定したものであり、文
献“7R-C601-020(4788) Reed-Solomon符号を用いた高速
多重誤り訂正回路のハードウェア化 (2)”に示してある
改定版ユークリッドの互除法(2)に若干改良を加えた
ものに相当する。
る。
を必ず2t回行なう場合には、最終的に得られるdR2t
はω(X)の次数を示すことになる。当然ながら、σ(X)の
次数はdR2t+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
次以上低下する場合に対応しておらず、ユークリッドの
互除アルゴリズムを完全には実現していない。
有限体乗算器が必要になり高速実時間処理が必要なシス
テムを構成する場合、回路規模が大きくなるという欠点
がある。
法Bを筆者が提案した。この方法では構成方法Aで示さ
れている互除ユニット中の2つの有限体乗算器を1つの
有限体乗算器と1つの有限体割算器とに置き換える。次
に、縦続接続されている複数の互除ユニット中の有限体
割算器を1つの有限体割算器で共有することにより回路
規模の削減を実現している。
うな基本的な演算ユニット(互除ユニットと呼ぶ。)1
01を使用する。この互除ユニット101は、上で述べ
た改定ユークリッドの互除法(2)の1ステップを実行
する。ユークリッドの互除法の各ステップの入力である
Ri-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ステッ
プが演算されて行くことになる。したがって、図17の
ように、この互除ユニット101を2t個縦続接続して
並べて、入力として
てσ(X)、ω(X)が得られることになる。
符号を用いた高速多重誤り訂正回路のハードウェア化
(2)”に示す例題を用いて動作例を図18〜図21に示
す。この例では、図18、図20がクロスモード、図1
9、図21がノーマルモードで演算されている。図21
のように4回、互除ユニット101を通過した結果とし
てσ(X)、ω(X)が求められていることが判る。
(X)、ω(X)の2つの多項式は、実際に起きている誤り数
がt未満の場合には2tステップの演算の後には、見か
け上、2t次の多項式であるかのように上位にシフトさ
れて出力される。したがって、dR2tの値を見て次数を
合わせるか、または改訂ユークリッドの互除法(2)に
おいて停止条件をdRi<tと変更すれば良い。なお、
この図はあくまで原理的な図であり素子の遅延時間等を
考慮していない。詳細のインプリメンテーションについ
ては文献“7R-C601-021(4817) Reed-Solomon 符号を用
いた高速多重誤り訂正回路のハードウェア化 (3)”を参
照のこと。
101の有限体割算器103が同時に動作する必要がな
いことに着目して、図22に示す如く前記各互除ユニッ
ト101から有限体割算器103を除いた互除ユニット
101aを縦続接続し、かつ各互除ユニット101aの
Ri-1(X)、Qi-1(X)を取り出してこれを切替スイ
ッチ105によって順次、選択して有限体割算器106
で割算した後、対応する互除ユニット101aに戻すよ
うにして、1つの有限体割算器106を時分割で共有
し、全体のゲート規模を削減するようにした。
除ユニット101aから有限体割算器106を共有する
ために必要な制御回路が複雑になり動作速度が向上しな
い欠点がある。
多項式の次数とRi-1(X)のdRi-1次の係数の0検出を
行なって動作を判定する回路やデータ切替器等の制御回
路が各互除ユニット101aに独立に必要なため、回路
規模がやや増大するという欠点がある。
ローム多項式S(X)の係数であるシンドロームS2t、S
2t-1…S1が上位の係数から順に入力する必要がある。
ところが、シンドロームはS2t、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と呼ぶ。)を提案した。
割算をすべきデータが常に同じ場所から取り出せるた
め、有限体割算器106を共有するための回路やその制
御回路が不要になる。更に、多項式の次数から動作を判
定する回路や制御回路がただ1つで実現されるため規模
が削減される。
3のように構成は1つのブロック(A)111と、複数
のブロック(B)112と、接続切替判定ブロック11
3に分けることが出来る。ブロック(A)111は誤り
訂正数tに拘らず1つのユニットがあれば良い。一方の
ブロック(B)112は、tシンボル誤り訂正システム
の場合2t−1個のブロックが必要である。
ブロック(B)112に設けられている各レジスタ群は
縦方向に分割され、各々左側から順にRi(X)、Qi(X)、
λi(X)、μi(X)の係数を格納するためのレジスタ群とな
る。これらのレジスタ群には、dRi、dQiで示される
次数にしたがって上位から順に係数が格納される。
2t-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とする。
下位ブロックから入力端子には常に0を入力する。
の係数用のレジスタRR2t-1に格納されている係数は接
続切替ブロック113に設けられている0検出回路11
5で0検出が行われる。
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)が求められる。
24に示すレジスタDR、DQ、RR2t-1〜RR0、R
Q2t〜RQ0、Rλ2t〜Rλ0、Rμ2t-1〜RRμ0は全
て初期設定が行われている。図24では、dR0=3、
dQ0=4、R0(X)のdR0次の係数がα8とクロスする
条件が満たされているので、全ての切替器はクロス側に
切替えられている。有限体割算器117では、1/α8
なる演算が行われ割算結果のα7がブロック(A)11
1、各ブロック(B)112の乗算器119、120に
入力される。
ブロック(B)112で行われた演算結果は次のステッ
プで上位側のレジスタに格納され、図25のような結果
となる。この結果は図18に示す先に説明した構成方法
Bによる結果と一致している。
ロスモード、第2、4ステップがノーマルモードで演算
が行われ、最終的に図28においてσ(X)、ω(X)が得ら
る。
いては、先に説明した構成方法Bと本質的な考え方が異
なっている。つまり、構成方法Bは、互除ユニット10
1を各多項式の係数が上位から順にシリアルに入力し演
算されているのに対し、構成方法Cでは、全ての係数が
レジスタDR、DQ、RR2t-1〜RR0、RQ2t〜R
Q0、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だけでこの処理を行なう。この
ため規模低減が可能になる。
ボル数がtの場合に各互除ユニット101に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
の入力側にセレクタを設けて実現すれば、全てのレジス
タを同時に初期化することが可能である。一方、各々の
多項式の最下位のレジスタの入力として各々の多項式の
初期値をシリアルに入力することにより順次初期化する
ことも可能である。
ける1ステップの演算において、1個の演算ユニットが
ただ1回の演算を行なう場合について考えてみる。つま
り、時分割多重等の多重化を行なって1個の演算ユニッ
トで2回以上の演算を行なわせる場合を除いて本質的に
必要な演算ユニットの数を考える。
要な乗算ユニットの数は、各々、8t、4t、4t−1
個である。ここでtは訂正可能なシンボル数である。構
成方法B、Cが構成方法Aに比べて演算ユニットの数が
約半分で済んでいる。これは乗算器2つを用いる代わり
に有限体割算器1個と乗算器1個とを使用した構成に改
め、各演算ユニットで必要な有限体割算器を共有してた
だ1つ使用することにより、各演算ユニットに必要な乗
算器を1つに減らしているためである。
(2)のアルゴリズム自体で本来必要な演算(乗算)回
数について、文献“7R-C601-020(4788) Reed-Solomon符
号を用いた高速多重誤り訂正回路のハードウェア化
(2)”に示してある例題を用いて考えてみる。
を用いて定義される有限体GF(24)を用いてt=2シ
ンボル誤り訂正を行なったものである。今、シンドロー
ム多項式S(X)が、
改訂ユークリッドの互除法(2)を用いて誤り位置多項
式σ(X)を導出すると、次のようになる。
は、構成方法Bでは、図18〜図21、構成方法Cで
は、図24〜図28に各々、示すように行なわれる。
i(X)、λi(X)を求める演算である。各ステップの乗算回
数に着目すると、ステップ1では、R1(X)を求める演算
として、
0(X)の係数と割算結果のα7との乗算である。R0(X)は
3次の多項式であるから4個の係数があるが、最高次の
係数は割算に使用されているため、改めて演算する必要
がない。結局、
0(X)側の演算では、
される係数はただ1つで、
部で4回の演算が行なわれていることが判る。
を見ると、R2(X)の演算では、割算の結果α9を用い
て、
2(X)の演算では、
われている。
で、
側の演算ユニットでは、
ている。
の演算で、
ニットでは、
いることになる。
算数の各ステップにおける総和は、常に4になってい
る。
れて、Ri(X)、Qi(X)の次数が減少して行くのに対し
て、λi(X)、μi(X)の次数が増加して行くために当然の
結果として起きる。
における第iステップにおいてRi(X)を演算する時に
は、クロスモードの場合Ri-1(X)、ノーマルモードの場
合Qi- 1(X)の最上位係数を除く係数に対して乗算が必要
になる。
i-1、dQi-1はRi-1(X)、Qi-1(X)の次数を表してい
る。dRi-1<dQi-1の時クロスモードで演算され、d
Ri-1≧dQi-1の時ノーマルモードで演算される訳であ
るからRi(X)の演算で乗算が必要な多項式の次数は、d
Ri-1、dQi-1の小さい方、即ち、min(dRi-1、dQ
i-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以下になる。
モードで演算が行なわれる場合には、Ri(X)の演算にd
Qi-1次の多項式Qi-1(X)の最上位(dQi-1次)の係数
以外の係数に対して乗算が必要でdQi-1回の乗算が必
要である。同様に、λi(X)の演算に対しては、μi-1(X)
のdμi-1+1個の全ての係数に対して乗算が必要であ
る。
回数Nnormalは、
数Nnormalも、2t以下になる。
要な各ステップにおける全乗算回数は常に2tを以下で
ある。したがって、本来必要な演算ユニット数は僅かに
2t個であることになる。
演算ユニットの数は本来4個で済むはずである。しか
し、現実の実現した構成方法を見てみると、構成方法
A、B、C共に2tに比べ、倍以上の演算ユニットを必
要としており、極めて無駄な回路構成であると断言でき
る。
要のある係数の個数を考察してみる。dRi、dQi、d
λi、dμiは、実際に演算が行なわれるノーマルモード
およびクロスモードの演算ステップにおいて、Ri(X)、
Qi(X)、λi(X)、μi(X)の次数を表している。これらの
次数には、次の関係が成り立つ。
は、常に2tであり、Ri(X)とμi(X)の次数の総和は、
2t−1以下になる。
するために必要なレジスタの数は2t+2個、Ri(X)と
μi(X)の係数を格納するために必要なレジスタの数は2
t+1個で良いことになり、合計でも4t+3個で良い
ことになる。
ジスタを使用しており極めて無駄な構成になっている。
ずれも1ステップ当たりの乗算回数、レジスタ数共に、
本来アルゴリズムが必要としている演算量に比べて倍以
上の無駄な回路構成になっている。
易く説明してみる。構成方法Cによる例題では、図24
〜図28の中で行なわれている演算は、次の表のように
なる。
モードdR=3、dQ=4
ルモードdR=3、dQ=3
モードdR=2、dQ=3
ルモードdR=2、dQ=2
各ステップで乗算は4回ずつしか行なわれておらず、常
に残りの演算ユニットは動作していないことが判る。ま
た、λi(X)、μi(X)の格納場所は演算が進むにつれ見か
け上で上位にシフトして行くため演算ユニットが使用さ
れる場所が毎ステップ変化している。このため構成方法
Cでは演算ユニットの数を削減できないことが判る。
法における1ステップ当たり最小の演算回数2tより1
多いだけの2t+1個の演算ユニット数で、かつ、最小
のレジスタ数4t+3個のレジスタ数でアルゴリズムを
実現する構成方法Dを提案した。
る構成方法A、B、Cより遥かに少ない演算ユニット数
によりユークリッドの互除アルゴリズムが実現できる事
になるため、極めて画期的なものであると言える。
29に示す。図29に示すようにこの構成方法による回
路はDIVブロック131と、MLTブロック132と
の2つの部分から成っている。
6を持ち、構成図中ただ1つ存在する最上位係数の割算
ユニット133と、dRi、dQiの大小関係と、Ri(X)
のdRi次の係数の0検出とを行ないDIVブロック1
31およびMLTブロック132の切替器を制御する信
号を発生する制御用ユニット134から成る。
に対する演算に対し演算ユニットを多重化して使用しな
い場合において、tシンボル誤り訂正可能なシステムに
するとき、前記tに対応した数2t+1個の演算ユニッ
ト1351〜1352t+1が必要である。
図30に示す如く3つの切換器136〜138と、1つ
の乗算器139と、1つの加算器140とによって構成
され、定められた有限体の演算を行う。
1412t、1420〜1422t+1のうち、図中の左側に
あるレジスタ1410〜1412tをA側のレジスタと呼
び、右側のレジスタ1420〜1422t+1をB側のレジ
スタと呼ぶことにする。DIVブロック131、MLT
ブロック132を合わせるとA側のレジスタ1410〜
1412tは、全部で2t+1個、B側のレジスタ142
0〜1422t+1は全部で2t+2個の合計4t+3個に
削減されている。同時に演算ユニット1351〜135
2t+ 1の数が2t+1個まで削減されている。
ジスタ143と、DQ用のレジスタ144は、A0用の
レジスタ1410、B0用のレジスタ1420に格納され
ている係数の次数を表しており、クロスモード、ノーマ
ルモード(後述)の実際に演算が行われる時には、R
i(X)、Qi(X)の次数を表すことになる。
ット134に設けられている動作モード判断制御回路1
45では、レジスタ143、144に格納されてるD
R、DQの比較結果と、レジスタ1410から出力され
るA0の0検出結果から動作モードが判定され、その結
果とDRの値からMLTブロック132の各演算ユニッ
ト1351〜1352t+1が独立して制御される。なお、
MLTブロック132における最後の演算ユニット13
52t+1の入力側には、A側のレジスタが不要になるが、
図29に示す回路は概念的な回路であるため、MLTブ
ロック132の最後の演算ユニット1352t+1も他の演
算ユニット1351〜1352tの入力側に設けられるA
側のレジスタを削除した構成として描いている。しか
し、最後の演算ユニット1352t+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で良いことを示している。
1412tがRi(X)とμi(X)の係数用のレジスタである。
項式Ri(X)の各係数は、最上位(dRi次)係数から順
に、A側の各レジスタ1410〜1412tに順に格納さ
れる。
数が最下位(0次)の係数から順に格納される。したが
って、A側のレジスタ1410〜1412tでは、上のレ
ジスタレジスタ1410から順にRi(X)の上位係数から
格納され、続いてμi(X)の下位係数から順に格納され
る。
1422t+1がQi(X)とλi(X)の係数用のレジスタであ
る。
式Qi(X)の各係数が各レジスタ1420〜1422t+1に
最上位(dQi次)係数から順に格納される。そして、
Qi(X)の0次係数に引き続いてλi(X)の係数が最下位
(0次)の係数から順に格納される。
の和が一定であるから、B側のレジスタ1420〜14
22t+1では、上のレジスタ1420から順にQi(X)の係
数が格納され、下から順にλi(X)の係数が格納されるこ
とになる。
410〜1412t、1420〜1422t+1を共用すれば、
全体で4t+3個のレジスタ数で構成可能になる。
λ0(X)、μ0(X)の次数であるdR0、dQ0、dλ0、d
μ0の初期値は、各々、2t−1、2t、0、−1と考
える。μ0(X)の次数dμ0の初期値を−1とするのはア
ルゴリズムの便宜上の都合である。
数(シンドローム)は、レジスタ1410〜1412t-1
に格納され、μ0(X)の次数が便宜的に−1になっている
ので、μ0(X)の係数の個数が0、つまり対応するレジス
タが無いということになり、レジスタ1412tには0を
設定する。
値は、Q0(X)=X2tであるからレジスタ1420に1、
レジスタ1421〜1422tに0を格納する。また、λ0
(X)=1であるから、レジスタ1422t+1に1を格納す
る。
43、144に各々2t−1、2tを格納する。なお、
初期値を設定する回路は構成図の他に別途必要である。
しかし、これは本質的なものではなく簡単な回路である
のでここでは省略する。
の動作を説明する。まず、初期値が設定された後に、ユ
ークリッドの互除法が1クロックに1ステップずつ順に
行なわれて行く。各レジスタ1410、1411、141
2…1420…1422t+1は各クロックサイクルで演算結
果の値を保持することになる。
ず、各レジスタ143、144に格納されているDR
i-1、DQi-1の値は動作モード判断制御回路145で比
較され、DRi-1<DQi-1で、かつ、0検出回路147
からRi-1(X)の最上位係数が格納されているレジスタ1
410が0の状態が知らされた場合にはクロスモード、
その他の場合にはノーマルモードであることを認識す
る。
ック131にある2つの切換器148、149が動作モ
ードに応じてクロスまたはノーマルに切り替わる。レジ
スタ1410の値、即ち、Ri-1(X)の最上位(dR
i-1次)の係数とレジスタ1420の値、即ち、Qi-1(X)
の最上位(dQi-1次)の係数が切換器148を通って
有限体割算器146に入力される。有限体割算器146
では、図中のF、Gの入力に対してF/Gの割算を行
い、その結果Sを出力する。
ット1351〜1352t+1ではDIVブロック131で
判定された動作モードに応じて演算が行なわれる。演算
する係数の格納されているレジスタ1411〜14
12t、1421〜1422t+1のレジスタ番号(添字)が
jのレジスタに対して、番号jの演算ユニットが次の表
に従って演算を行なう。
のレジスタに格納され、改訂ユークリッドの互除法にお
ける1ステップの演算が終了する。この演算手順を2t
回繰り返すことにより、誤り位置多項式σ(X)、誤り評
価多項式ω(X)を求めることができる。
よるアルゴリズムでは、Ri-1(X)とQi-1(X)の多項式の
組に行なった演算と全く同一の演算をλi-1(X)とμ
i-1(X)の多項式の組に行なう。この構成方法Dでは、R
i-1(X)、Qi-1(X)の多項式の組がA側のレジスタ141
0〜1412tとB側のレジスタ1420〜1422t+1に各
々格納されているのに対して、λi-1(X)とμi-1(X)の多
項式は逆転して格納されている。
一の演算を行なうためには、逆転して格納されているλ
i-1(X)の係数を元に戻して演算を行ない結果を再び反転
して格納すれば良いことになる。
は、クロスモード、ノーマルモードいずれも次数の少な
い方の係数の数だけ演算を行なえば良い。さらに、R
i-1(X)とQi-1(X)の係数が隣合っていないレジスタでは
演算の必要がない。λi-1(X)とμi-1(X)についても同様
である。
i-1<dQi-1であるから、レジスタ番号jが0<j≦d
Ri-1の場合にのみ、Ri-1(X)とQi-1(X)との演算が行
なわれる。
A側のレジスタ1410〜1412tにはRi-1(X)の係数
が格納されているが、B側のレジスタ1420〜142
2t+1にはλi-1(X)の係数が格納されている。この場合に
は、レジスタに格納されている係数に対して演算を行な
う必要が無く、格納されている係数を入れ換えれるだけ
で良いことになる。
1420〜1422t+1のうち、dQi- 1<jのレジスタで
はA側にμi-1(X)、B側にはλi-1(X)が格納されてい
る。そこで、A側のレジスタと、B側のレジスタの値を
反転してdRi-1(X)とdQi-1(X)と同一の演算を行ない
結果を再び反転して格納すれば良いことになる。
数が常に2t回になり、この構成方法Dで示す2t+1
個の演算ユニットで実現できることになる。
ないが、このシフトモードをノーマルモードで有限体割
算器146からの出力Sが0である場合と同一の処理を
行なうことも可能である。
も可能である。 テーブル3−1 クロスモードの演算表
モードの演算表
の具体的な構成であるが、これは既に述べたテーブル3
−1、3−2の演算表に示した6種類の演算が最低限実
行できるならどのような構成でも良い。
で実現できる。この構成は3つの切替器136〜138
と、1つの乗算器139と、1つの加算器140とで構
成されており、各切替器136〜138の制御を次表の
ように行なえば、必要な演算を実行できる。なお、この
切替方法以外の制御方法でも同様の演算が実現できる。
normalと書いてあるのは切替器をI−I'側に切替える
ことを示し、crossと書いてあるのは切替器をH−H'側
に切替えることを示す。また、切替器8についてthroug
hと書いてあるのは、切替器8をI側に切替えることを
示し、clearと書いてあるのは、切替器8をH側の0が
入力される方に切替えられることを意味する。
ット1351〜1352t1を図29の構成に用いた場合の
動作例を図31〜図35に示す。ここで上げるのは、既
に述べた規約多項式g(X)=X4+X+1を用いて定義さ
れる有限体GF(24)を用いてt=2シンボル誤り訂
正を行なった動作例と同一のものである。なお、図31
に示すレジスタ1410〜1414、1420〜1425、
143、144は全て初期設定が行なわれているものと
する。
は、レジスタ143に格納されているDRの値(d
R0)が133でレジスタ144に格納されているDQ
の値(dQ)が4でDR<DQの条件を満たしており、
また、レジスタ1410に格納されているR0(X)のdR0
次の係数がα8と非零であるため、動作モードがクロス
モードであることが認識される。そこで、有限体割算器
146の入力側にある切替器148がクロス側に切替え
られて1/α8なる演算が行なわれ、割算結果S=α7が
各演算ユニット1351〜1355に対して出力される。
理を行なうことになる。
算ユニット1351〜1355においては、先に述べたテ
ーブル2−1のクロスモードの演算表に基づいて演算が
行なわれる。
タ番号jのレジスタ141j、142jのデータに対する
演算は、0<j≦dRi-1、dRi-1<j≦dQi-1、d
Qi-1<jの3つの場合に分かれる。
は、dR0=3、dQ0=4であるから、レジスタ番号1
〜3に対する演算ユニット1351〜1353はA'=A
×S+B、B'=Aの演算を行なう。このためには、切
替器137がcross(クロス)、切替器138がthrough
(スルー)、切替器136がnormal(ノーマル)とす
る。
ト1354は、A'=B、B'=Aの演算が必要であるか
ら、切替器137がクロス、切替器138がクリア、切
替器136がノーマルとする。
演算ユニット1355、1356は、A'=B、B'=B×
S+Aの演算が必要であるから、切替器137がノーマ
ル、切替器138がスルー、切替器136がクロスとな
る。
ニット1351〜1355にある切替器136〜138の
動作は図31で示したものになる。演算された結果は、
次のクロックサイクルでは図32に示すように各レジス
タ1410〜1414、1420〜1425に格納される。
と、この構成方法Dによる図32とを比べてみると、構
成方法Cによる図25ではλ1(X)、μ1(X)の係数が各々
Ri(X)、Qi(X)の後ろに上位係数から順に格納されてい
るのに対して、この構成方法Dによる図32ではλ
i(X)、μi(X)の格納場所が逆転され、下位係数から順に
格納されている。このため、図32では本来不要な値で
ある係数の値が0である係数を格納せずに済むため無駄
な演算の必要がなくなり、結果として演算器の数が大幅
に削減されていることが判る。
は、レジスタ143に格納されているDRの値(d
Ri)が3でレジスタ144に格納されているDQの値
(dQi)が3でDR≧DQであるため、動作モードが
ノーマルモードの演算を指示していることが認識され
る。そこで、有限体割算器146の入力側に設けられて
いる切替器148がノーマル側に切替えられてα2/α8
なる演算が行なわれ、割算結果S=α9が各演算ユニッ
ト1351〜1355に対して出力される。
の処理を行なうことになる。したがって、演算はテーブ
ル2−2のノーマルモードの演算表に基づいて行なわれ
る。
は、レジスタ番号1〜3に対応する演算ユニット135
1〜1353はA'=B×S+A、B'=Bの演算を行な
う。このためには、切替器137がノーマル、切替器1
38がスルー、切替器136がノーマルとする。
タ1414、1424、1425に対する演算ユニット1
354、1355は、A'=A、B'=A×S+Bの演算が
必要であるから、切替器137がクロス、切替器138
がスルー、切替器136がクロスとなる。
ニット1351〜1355にある切替器136〜138の
動作は図32で示したものになる。演算された結果は、
次のクロックサイクルでは図33に示すように各レジス
タ1410〜1414、1420〜1425に格納される。
ロスモード、第2、4ステップがノーマルモードで演算
が行なわれ最終的に図35においてσ(X)、ω(X)が得ら
れている。ここで、σ(X)の係数が構成方法Cによる図
28で得られている係数と、格納場所と、順序とが共に
逆転して得られていることに注意されたい。
演算を次表にまとめておく。 [ステップ1] クロスモードdR=3、dQ=4
構成方法Cと同じ演算を各ステップで行なっているにも
拘らず、各多項式の係数の格納方法と演算ユニット13
51〜1352t+1の構成方法を工夫したことにより、多
項式の係数を格納するためのレジスタ数と各演算ステッ
プにおける演算回数を半減できていることが判る。
除法の各ステップにおいて原理的に必要な最小の演算回
数(乗算回数)2tより1多いだけの2t+1個の演算
ユニット1351〜1352t+1でアルゴリズムを実現す
ることができる。勿論、これは各演算ユニット1351
〜1352t+1をユークリッドの互除法の1ステップの演
算でただ1回しか使用しない場合である。
格納するためのレジスタ数が原理的に最小の4t+3個
で実現できる。これは、本構成法では、先に説明した構
成方法Cとは、各多項式の係数の格納方法が全く異なっ
ているためである。
数を独立に格納するためのレジスタを必要とした。この
ため各多項式が最大次数になっても格納できる数のレジ
スタ数である8t+1個のレジスタ数を用意する必要が
ある。更に、このレジスタ数の増大が演算ユニット数の
増加を招いている。
示したように、A側のレジスタ1410〜1412tをRi
(X)とμi(X)の係数用のレジスタとしている。各演算ス
テップにおいては、先ず、dRi次の多項式Ri(X)の最
上位(dRi次)係数がレジスタ1410に格納され、以
下順に下位の係数が格納される。Ri(X)の0次の係数に
引き続いてμi(X)の係数が最下位(0次)の係数が格納
され、以下順に上位の係数が格納される。したがって、
A側のレジスタ1410〜1412tでは、上のレジスタ
1410から順にRi(X)の上位係数から格納され、続い
てμi(X)の下位係数から順に格納される。
2t+1も同様にQi(X)とλi(X)の係数用のレジスタであ
る。各演算ステップにおいて、dQi次の多項式Qi(X)
の最上位(dQi次)係数がレジスタ1420に格納さ
れ、以下順に下位係数が格納される。Qi(X)の0次係数
に引き続いてλi(X)の係数が最下位(0次)の係数が格
納され、以下順に下位係数が格納される。
な関係式が成り立つ。
と一定であるから、B側のレジスタ1420〜142
2t+1では、2t+2個のレジスタのみで良く、更に、A
側のレジスタ1410〜1412tはB側より1個少ない
2t+1個のレジスタで良いことになる。
リッドの互除法における1ステップの演算毎にRi(X)が
上位にシフトする(つまりXが掛けられる)。
i(X)を逆転して格納すると、μi(X)とλi(X)とは係数が
下位から順に格納されているのでμi(X)がλi(X)に比べ
て下位にシフトすることになり、λi(X)がμi(X)に比べ
て上位にシフトしたのと同一の結果が得られる。このと
き、Ri(X)とλi(X)とに演算器を工夫すると、必要な演
算を施すことが出来るように構成されている。
2t+1の構成は、図30の構成例では構成方法Cで必要な
演算ユニットに比べ、切替器136、切替器138が付
加されており、若干構成が複雑になっている。しかし、
この増加は僅かなものであり、演算ユニット数と係数格
納用レジスタ数が約半減するため圧倒的な回路規模削減
が実現できる。
体の構成は既に述べた表(テーブル2−1、2−2、2
−3)の演算を行なうことが可能であるならば、どのよ
うな構成でも良い。
一の演算を行なう構成は数多く考えられ、図30の構成
方法に比べて構成を複雑にして高速動作を行う回路構成
も考えられる。
〜1412t、1420〜1422t+1、143、144を
初期化するには様々な方法がある。例えば、各レジスタ
1410〜1412t、1420〜1422t+1、143、1
44の入力側にセレクタを設けて、初期値設定時にこれ
らの各セレクタを初期値設定器側に切り替えてこれらの
各初期値設定器に設定されている値(初期値)を各レジ
スタ1410〜1412t、1420〜1422t+1に入力す
ることより、全てのレジスタ1410〜1412t、14
20〜1422t+1、143、144を同時に初期化する
ことが可能である。
タ、即ちレジスタ1412t、1422t+1のみに入力用の
セレクタを付けて入力端子とすれば、各々の多項式の初
期値をシリアルに入力することにより順次、初期化する
ことも可能である。
り訂正回路を構成する場合には、その用途により要求さ
れる動作速度が異なる。動作速度の遅いマイクロプロセ
ッサ周辺機器等における用途では、誤り訂正回路はある
程度の動作速度を確保した条件下で最小規模の構成方法
が求められる。一方、高速ビデオ信号処理装置等におけ
る用途では、連続的に入力するデータに対する処理が要
求される。
模が大きくなるのが、シンドロームから誤り位置多項式
を求めるプロセスであるが、構成方法A,B,C,Dで
は、何れも、この過程を実現する手段としてユークリッ
ドの互除アルゴリズムを用いている。特に、原理的に優
れている構成方法Dでは、改定ユークリッドの互除法
(2)がその1ステップに当たり必要とする最小の演算
回数2tより僅かに1多いだけの2t+1個の演算器で
アルゴリズムを実現している。
の間に1ステップの演算を完了する。従って、2tクロ
ックサイクル後に所望のσ(X)、ω(X)が得られる
ことになる。
に入力するデータに対する処理を行う場合においても、
シンドロームから誤り位置多項式を求めるプロセスは、
1符号長のデータが入力する時間中に処理を行えば良い
ことになる。通常、符号長nは、2tに対して十分に大
きい。従って、符号長nが十分に長い仕様の誤り訂正シ
ステムに対して構成方法Dの回路をそのまま使用する
と、n−2tクロックサイクルの間は、ユークリッドの
互除法を行う回路が遊んでしまうことになり冗長な回路
構成になる。
処理に対しては、ある定められた時間内に終了すれば良
いにも拘らず、構成方法Dのような回路構成で2tクロ
ックサイクルで答を得る必要がなく極めて無駄である。
間内に少数の演算ユニットを繰り返し使用することによ
り、回路規模を低減する方法が必要になる。
Dを改良して実現することが望ましい。
して演算ユニット数を低減させ、これによって回路規模
を大幅に低減させることができるとともに、高速動作を
可能にしてスループットを大幅に向上させることができ
るユークリッドの互除回路を提供することを目的として
いる。
互除回路は、第i回目の互除演算において、Ri
(X)、Qi(X)の一方を除多項式、もう一方を被除
多項式とするとともに、互除結果を算出するための中間
多項式(μi(X)およびλi(X))を求めるユーク
リッド互除回路において、多重度に応じた数の演算ユニ
ットに、Ri(X)とμi(X)で共用するA側レジス
タとQi(X)とλi(X)で共用するB側レジスタを
前記多重度に応じて区分して接続し、割算結果および前
記A側レジスタ群および前記B側レジスタ群を構成する
各レジスタから出力される値を取り込むと共に、前記演
算ユニットにおいて、切替指令に応じて、多項式を入れ
替えないノーマル接続演算、多項式を入れ替えるクロス
接続演算、除算を行わないシフト演算のいずれかを時分
割で多重化して行うMLTブロックと、Ri(X)とμ
i(X)で共用する1つのレジスタおよびQi(X)と
λi(X)で共用するもう1つのレジスタ、および割算
器を有し、前記MLTブロックの最終段から出力される
値を取り込むと共に、切替指令に応じてノーマル接続割
算演算、クロス接続割算演算のいずれか一方を行い、こ
の演算結果を前記演算ユニットにおける演算の各ステッ
プが終了するまで前記各演算ユニットに供給する割算ユ
ニットと、予め設定されている値と前記割算ユニットの
レジスタに格納されている値とに基づいて、各ステップ
毎に、前記ノーマル接続またはクロス接続、シフト接続
のいずれかを指定する切替指令を生成して前記MLTブ
ロック、割算ユニットに供給する制御用ユニットとを備
えたものである。
って各ステップ毎に予め設定されている値と割算ユニッ
トのレジスタに格納されている値とに基づきノーマル接
続またはクロス接続、シフト接続のいずれかを指定する
切替指令が生成され、さらに割算ユニットによってML
Tブロックの最終段から出力される値が取り込まれると
ともに、切替指令に応じてノーマル接続割算演算、クロ
ス接続割算演算のいずれか一方が行なわれ、この演算結
果が各ステップが終了するまで前記各演算ユニットに供
給されつつ、この動作と並行して各ステップの各クロッ
クサイクル毎にMLTブロックの各演算ユニットによっ
て割算結果およびA側レジスタ群および前記B側レジス
タ群を構成する各レジスタから出力される値が取り込ま
れるとともに、切替指令に応じてノーマル接続演算、ク
ロス接続演算、シフト接続演算のいずれかが行なわれユ
ークリッドの互除演算が行われる。
ことにより、少数の演算ユニットを効率良く繰り返して
使用する方法を与えるものである。
除法(2)における1ステップの演算においては、R
i-1(X)、Qi-1(X)、μi-1(X)、λi-1(X)の各多項式係数
に対して2t回の演算(乗算)が行われる。
+1個の演算ユニットを使用することにより、1クロッ
クサイクルの間に1ステップの演算が終了するような構
成になっている。つまり、2t+1個の演算ユニット
は、改定ユークリッドの互除法(2)における1ステッ
プの演算に対して、ただ1回の演算を行なっていること
になる。
義される有限体GF(24)を用いてt=2シンボル誤り
訂正を行なった場合で、シンドローム多項式S(X)が
例と同一のものである。
ークリッドの互除法(2)を用いて誤り位置多項式σ
(X)を導出する過程を図29の構成方法Dを用いて実現
した場合には、図31〜図35に示すような動作をする
ことを先の出願で示した。
算は、レジスタ番号iに格納されている係数データに対
して、下記に示すテーブル5−1〜5−4のようにまと
めることが出来る。 [ステップ1] テーブル5−1 クロスモードdR=
3、dQ=4
=3、dQ=3
2、dQ=3
=2、dQ=2
から明らかなように、構成方法Dではレジスタ番号iが
1から2t+1、即ち、1から5の係数に対して5個の
演算ユニット1351〜1355で演算が行われている。
(2)における1ステップの演算において、1つの演算
ユニットを時分割多重化して使用するとにより演算ユニ
ットの数を削減することができるような構成方法を提案
する。
誤り訂正システムが要求する速度やスループット等の仕
様に応じて自由に多重度の値を設定することが可能にな
り、設計要求を満たし、かつ、演算ユニット数を最小に
する回路を得ることが出来る。
で提案する構成方法は、基本的には構成方法Dに基づい
ている。すなわち、ユークリッドの互除法における1ス
テップ当たり、最小演算回数の2t回より1だけ多い、
2t+1回の演算を各係数に対して行う。
対して、構成方法Dが演算ユニット当たり1回の演算し
か行わないのに対して、本構成方法では、各演算ユニッ
トを時分割多重化して使用することにより、演算ユニッ
ト当たりLopt回の演算を時分割多重化して行う。
1回であるから、演算ユニットを多重度Loptの場合に
は、必要な演算ユニット数koptは、kopt=[2t/L
opt]+1となる。ここで、[X]は、Xを越えない最
大の整数を示す。
を大きく選ぶと、各演算ユニットが1ステップ当たりに
受け持つ演算回数が増加することになり、演算ユニット
数kop tを小さくすることができる。したがって、演算
クロックサイクル数は増加するが、演算ユニットの数を
削減することが可能になり回路規模が削減できる。
以上、2t以下の任意の数で良いが、Lopt=1の場合
は、構成方法Dによる構成方法と演算ユニット数が同一
になるため、ここではLopt≧2という多重度が2以上
の場合について述べる。
1に示す。
Dと同様にDIVブロック1と、MLTブロック2との
2つの部分から成っている。DIVブロック1は構成図
中ただ1つ存在する最上位係数の割算ユニット3と、d
Ri,dQiを格納し、その大小関係と、Ri(X)のdRi
次の係数の0検出とを行ない各演算ユニット91〜9Ko
ptおよび各切替器171〜17Koptの動作モードを制御
する信号を発生する判定・制御用ユニット4から成る。
タ5、DQ用のレジスタ6に格納される値は、A側のレ
ジスタ70,B側のレジスタ80に格納されている多項式
Ri(X)とQi(X)の係数の次数を表しており、クロスモー
ド・ノーマルモード(後述)の実際に演算が行われる時
には、Ri(X),Qi(X)の次数を表すことになる。
4では、DR用のレジスタ5、DQ用のレジスタ6の比
較結果と、レジスタ70の0検出結果とから動作モード
を判定し、この判定結果と、DR用のレジスタ5の値か
らMLTブロック2の各演算ユニット91〜9Koptを独
立に制御する。
から成る演算ユニット91〜9Koptと、切替器171〜1
7Koptと、係数格納用のレジスタ71〜72t、81〜8
2t+1とで構成される。システム全体では、kopt個の演
算ユニットを使用する。
は、構成方法Dと同一である。即ち、Qi(X)とλi(X)の
係数の格納場所と、Ri(X)とμi(X)の係数の格納場所を
各々共用する。
ムを実現するには、Ri(X),Qi(X)、μi(X)、λi(X)の
各多項式係数を格納するためレジスタが必要になる。
2t+1のうち、図中の左側にあるレジスタ70〜72tをA
側のレジスタと呼び、右側のレジスタ80〜82t+1をB
側のレジスタと呼ぶことにする。DIVブロック1、M
LTブロック2を合わせるとA側のレジスタは、全部で
2t+1個、B側のレジスタは全部で2t+2個の合計
4t+3個を用意する。
ークリッドの互除法(2)の各ステップにおける演算に
おいては、
数の和が常に2tであることを示している。したがっ
て、Qi(X)の次数が減少するにつれてλi(X)の次数が増
大したとしても、各々の多項式の係数を格納すべきレジ
スタの数の和は常に2t+2であることを示しているこ
とになる。同様に、Ri(X)とμi(X)の次数の和も2t−
1以下であるため、係数を格納すべきレジスタ数の和
は、最大でも2t+1で良いことを示している。
とμi(X)の係数用のレジスタである。 改訂ユークリッ
ドの互除法(2)の各演算ステップにおいて、dRi次
の多項式Ri(X)の各係数は、最上位(dRi次)係数か
ら順に、レジスタ70、71、72、…に順に格納され
る。
数が最下位(0次)の係数から順に格納される。したが
って、A側のレジスタでは、上のレジスタ70〜72tか
ら順にRi(X)の上位係数から格納され、続いてμi(X)の
下位係数から順に格納される。
がQi(X)とλi(X)の係数用のレジスタである。
式Qi(X)の各係数がレジスタ80、81、82、…に最上
位(dQi次)係数から順に格納される。
数が最下位(0次)の係数から順に格納される。dQi
+dλi=2tで常に次数の和が一定であるから、B側
のレジスタでは、上のレジスタ80〜82t+1から順にQi
(X)の係数が格納され、下から順にλi(X)の係数が格納
されることになる。
組のレジスタに対して1個の割合で合計kopt個を配置
する。これらの各演算ユニット91〜9Koptは、表15
〜18のテーブル5−1〜5−4で示した各ステップに
必要な2t+1回の演算をLop t回づつ担当する。
91は、レジスタ番号1〜Loptのレジスタ71〜
7Lopt、81〜8Loptに格納されている係数組に対する
演算を改訂ユークリッドの互除法(2)における1ステ
ップ当たりLoptクロックサイクルかけて実行する。
…Loptクロックサイクル目でレジスタ番号1、2…Lo
ptのレジスタ71〜7Lopt、81〜8Loptに格納されてい
る係数組に対する演算を行う。
は1、2…Loptクロックサイクル目でレジスタ番号L
opt+1、Lopt+2…2・Loptのレジスタ7Lopt+1〜7
2・Lopt、8Lopt+1〜82・Loptに格納されている係数組に
対して演算を行う。
ジスタ70〜72t、80〜82t+1と組み合わせて縦続接続
することにより、システム全体として1ステップ当たり
2t+1回の演算をLoptクロックサイクルかけて行う
ことができる。
80〜82t+1はシステム全体で2・Lopt・kopt+1個
になる。
来必要なレジスタ数4t+3よりも若干増加する場合が
ある。しかし、この場合には最後の演算ユニット9Kopt
が受け持つレジスタ82t+1の値が常に0になり、演算が
不要になる。したがって、最後の演算ユニット9Koptの
レジスタ制御方法を若干変更することにより、本来必要
な最小レジスタ数4t+3にすることが可能である。
0(X)、Q0(X)、λ0(X)、μ0(X)の次数であるdR0、d
Q0、dμ0、dμ0の初期値は、各々2t−1、2t、
0、−1と考える。μ0(X)の次数dμ0の初期値を−1
とするのはアルゴリズムの便宜上の都合である。従っ
て、R0(X)=S(X)の2t個の係数(シンドローム)
は、レジスタ70…72t-1に格納され、μ0(X)の次数が
便宜的に−1になっているので、μ0(X)の係数の個数が
0、つまり対応するレジスタが無いということになり、
レジスタ72tには0を設定する。
X2tでありからレジスタ80を1、レジスタ81〜82tを
0とする。また、λ0(X)=1であるから、レジスタ8
2t+1を1とする。
5、DQ用のレジスタ6は、各々、Ri(X)、Qi(X)の次
数である2t−1、2tとする。
に別途必要である。しかし、これは本質的なものではな
く簡単な回路であるのでここでは省略する。
定された後に、改訂ユークリッドの互除法(2)の1ス
テップの演算に対して多重度Loptクロックのサイクル
数をかけて演算を行なう。全部で2tステップの演算を
行うわけであるから、合計で2t・koptクロックサイ
クルを費やして演算することになる。
Lopt、81〜8Loptに格納されている係数組は、演算器
番号1の演算ユニット91でLoptクロックサイクルかけ
て演算される。同様に、レジスタ番号Lopt+1〜2・L
optのレジスタ7Lopt+1〜72・Lo pt、8Lopt+1〜8
2・Loptに格納されている係数組が演算器番号2の演算ユ
ニット92で演算される。一般に、演算器番号kの演算
ユニット9Kでレジスタ番号が(k−1)・Lopt+1〜
k・Loptのレジスタ7(k-1)・Lopt+1〜7k・Lopt、8
(k-1 )・Lopt+1〜8k・Loptに格納されている係数組が演算
される。各ステップにおける演算の順序は番号の若いレ
ジスタに格納されている係数から順に演算されるものと
する。
72t、80〜82t+1に格納されているRi-1(X)、Q
i-1(X)、λi-1(X)、μi-1(X)の係数からRi(X)、Q
i(X)、λi(X)、μi(X)の係数を求める演算が行われ、新
たにレジスタレジスタ70〜72t、80〜82t+1に格納さ
れる。
が動作モード判断制御回路10で比較される。一方、R
i-1(X)のDR次の係数(A0)が格納されているレジス
タ70の0検出が0検出回路11で行われる。
DQ、A0≠0の時にクロスモード、DR≧DQ場合に
はノーマルモードであると認識する。DR<DQ、A0
=0の場合にはDR用のレジスタ5がRi-1(X)の次数を
示していないことになり、クロスモードの演算は行うこ
とができないので、シフトモードになる。本構成方法に
おいては、Loptクロックサイクルの間、決定した動作
モードが保持される。
ク1にある2つの切換器12、13が動作モードに応じ
てクロスまたはノーマルに切り替わる。レジスタ70の
値、すなわち、Ri-1(X)の最上位(dRi-1次)の係数
と、レジスタ80の値、すなわち、Qi-1(X)の最上位
(dQi-1次)の係数が切換器13を通って割算器14
に入力される。割算器14では、図中のF、Gの入力に
対してF/Gの割算を行い、その結果Sを出力する。
演算時間であるLoptクロックサイクルの間にわたり保
持する。
91〜9KoptではDIVブロック1で判定された動作モ
ードに従って演算が行なわれる。行われる演算方法自体
は、構成方法Dと同一であるが、本構成方法では全ての
レジスタ70〜72t、80〜82t +1に格納されている係数
組に対する演算を1ステップに対して1クロックサイク
ルではなく、Loptクロックサイクルで行う。したがっ
て、本構成方法においては、Loptクロックサイクルが
経過したときに初めて構成方法Dにおける1クロックサ
イクル(つまり1ステップ)終了時と同じ値が各レジス
タ70〜72t、80〜82t +1に格納されることになる。
B、出力側をA’−B’とすると、第iステップの演算
においてレジスタ番号がjのレジスタ7j、8jに格納さ
れている係数に対して、次に示すテーブル6−1〜6−
3に従って演算が行われる。これは、構成方法Dと同じ
ものである。 テーブル6−1 クロスモードの演算表
〜6−3で示した演算をKopt個の演算ユニット91〜9
Koptを用いてLoptクロックサイクルで実行する。演算
器番号Kの演算ユニット9Kはレジスタ番号(K−1)
・Lopt+1〜K・Loptのレジスタ7(K-1)・Lopt+1〜7
K・Lopt、8(K-1)・Lopt+1〜8K・Loptに格納されている係
数に対して演算を行なう。
る係数から順に、Loptクロックサイクルで行われる。
例えば、演算ユニット91では、各ステップの第1クロ
ックサイクルでレジスタ番号1のレジスタ71、81に格
納されている係数を演算する。以下、第2、第3…L
optクロックでレジスタ番号2、3…Loptのレジスタ7
2、73…7Lopt、82、83…8Loptに格納されている係
数の演算を行なう。
されている係数はクロックサイクル毎に番号の若い方の
レジスタにシフトされて行く。そして、各クロックサイ
クルにおける演算は演算ユニット91〜9Koptの受け持
つ最上位のレジスタ71、…7(K-1)・Lopt+1、81…8
(K-1)・Lopt+1に格納されている係数に対して実行され
る。
される演算結果は第1クロックサイクルのみA側のレジ
スタ70…7(K-2)・Loptに格納され、第2〜第Loptクロ
ックサイクルでは、レジスタ7lopt-1…7(K-1)・Lopt-1
に格納され、1クロックサイクル毎に上位のレジスタに
シフトされて行く。レジスタ7Lopt-1…7(K-1)・Lopt-1
は、第1クロックサイクルのみ、レジスタ7Lopt…7
(K-1)・Loptからのデータを格納し、第2〜第Loptクロ
ックサイクルでは、演算ユニット91〜9KoptのA側か
らの出力を格納する。各切換器171〜17Koptはこれ
を制御するための切換器である。
ら出力される演算結果はレジスタ8L opt、82・Lopt…8
2t+1に格納され、順にシフトされて行く。
ックサイクルの演算結果を格納し、その値を2〜Lopt
クロックサイクルの間、保持する。
部に配置されているレジスタ7Lopt、72・Lopt、7
3・Lopt、…も第1クロックサイクルのみ演算ユニット9
2〜9Koptから出力される演算結果を格納し、その値を
2〜Loptクロックサイクルの間、保持する。
動作を行なう、1クロックサイクル毎に演算ユニット9
2〜9Koptは演算ユニット番号K、演算するレジスタ番
号L、レジスタDRの値、動作モード等のパラメータか
らテーブル6−1〜6−3を用いて実行する演算を決定
する。
72t、80〜82t+1への格納方法を用いると、1ステッ
プの演算が終了するLoptクロックサイクル後には、構
成方法Dにおける1ステップの演算終了後のレジスタの
値に一致する。
算を終わらせる手順を2t回、繰り返すことにより、所
望のσ(X)、ω(X)を求めることができる。演算ユニット
91〜9Koptの構成は構成方法Dと同じで良く、図2に
示す如く3つの切替器20〜22と、1つの乗算器25
と、1つの加算器26とで実現できる。
法、シフトモードの演算、レジスタへの格納方法などに
関する議論は構成方法Dで述べたのと全く同一に適用で
きる。
9Koptを図1の構成に用いた場合の動作例を図3〜図1
5に示す。ここで使用するのは、すでに述べた規約多項
式g(X)=X4+X+1を用いて定義される有限体GF
(24)を用いてt=2シンボル誤り訂正を行なった動
作例と同一のものである。
しているので、1ステップの演算に対して3クロックサ
イクルをかけることにより、2t・Lopt=12クロッ
クサイクルで2t=4ステップの演算が完了することに
なる。
なうことになる。したがって、演算器番号1の演算ユニ
ット91が、レジスタ番号1〜3のレジスタ71〜73、
81〜83における演算を受け持ち、演算器番号2の演算
ユニット92が、レジスタ番号4〜6のレジスタ74、7
5、84〜86における演算を受け持つことになる。
〜86は全て初期設定が行われているものとする。
DR用のレジスタ5の値(dR0)が3でDR用のレジ
スタ6の値(dQ0)が4で、DR<DQの条件を満た
しており、またR0(X)のdR0次の係数α8と非零で
あるため、動作モードがクロスモードであることが認識
される。そこで、割算器14の入力部の切替器13およ
びDR、DQ用のレジスタ5、6の入力部の切替器12
が共にクロス側に切り替えられて1/α8なる演算が行
われ、割算結果S=α7が出力されレジスタ15に格納
される。
であることが分かると、動作モードとレジスタ15に格
納されている割算結果Sが第1ステップの演算が行われ
るLopt=3クロックサイクルの間、保持される。
よれば、レジスタ番号jのレジスタのデータに対する演
算は、0<j≦dRi-1、dRi-1<j≦dQi-1、dQ
i-1<jの3つの場合に分けられる。
では、dR0=3、dQ0=4であるから、レジスタ番号
1〜3のレジスタ71〜73、81〜83に対しては、A’
=A×S+B、B’=Aの演算を行なう。このために
は、演算ユニット91の切替器20がクロス、切替器2
1がノーマル、切替器22がスルーとする。
に対しては、A’=B、B’=Aなる演算を行なうの
で、演算ユニット92の切替器20がクロス、切替器2
1がノーマル、切替器22がクリアとする。
75、85、86に対する演算はA’=B、B’=B×S
+Aの演算が必要であるから、演算ユニット92の切替
器20がノーマル、切替器21がクロス、切替器22が
スルーとなる。
クサイクルでは、演算ユニット91、92においてレジス
タ番号1、4のレジスタ71、74、81、84に格納され
ている係数に対して演算を行なう。したがって、演算ユ
ニット91では、A’=A×S+B、B’=Aなる演算
を行なうため、切替器20がクロス、切替器21がノー
マル、切替器22がスルーとし、演算ユニット92で
は、A’=B、B’=Aなる演算を行なうため、切替器
20がクロス、切替器21がノーマル、切替器22がク
リアとする。
171、172の動作は図3で示したものとなる。
切替器171、172がシフト側に切り替えられる。演算
ユニット91、92の出力端子A’から出力される演算結
果は各々、レジスタ70、73に格納され、続く3クロッ
クサイクルにわたって保持される。同様に、レジスタ8
0はレジスタ70の値を格納し、続く3クロックサイクル
の間、保持される。
B’から出力される演算結果は83、86に格納され、毎
クロックサイクル、シフトされる。演算された結果は図
4で示されるように各レジスタ70〜75、80〜86に格
納される。
態は、第1ステップの演算のうち、レジスタ番号1のレ
ジスタ71、81と、レジスタ番号4のレジスタ74、84
に対する演算が終了したに過ぎない。
テップ、第2クロックサイクルでは、演算ユニット
91、92において、レジスタ番号2のレジスタ72、82
と、レジスタ番号5のレジスタ75、85に格納されてい
た係数に対して演算を行なう。
クロックサイクルと同様にA’=A×S+B、B’=A
なる演算を行なうために、切替器20がクロス、切替器
21がノーマル、切替器22がスルーとし、演算ユニッ
ト92では、A’=B、B’=B×S+Aなる演算を行
なうために、切替器20がノーマル、切替器21がクロ
ス、切替器22がスルーとする。
切替器171、172がループ側に切り替えられる。演算
ユニット91、92の出力端子A’から出力される演算結
果は各々、レジスタ72、75に格納され、毎クロックサ
イクル、シフトされる。
B’から出力される演算結果は第1クロックサイクルと
同様に、83、86に格納され、毎クロックサイクル、シ
フトされる。
各レジスタ70〜75、80〜86に格納される。
〜75、80〜86の状態は、第1ステップの演算のう
ち、レジスタ番号1、2、4、5のレジスタ71、72、
74、75、81、82、84、85に対する演算が終了した
ものである。
クロックサイクルの演算である。これは、第1ステップ
の最終クロックサイクルである。演算ユニット91にお
いては、レジスタ番号3のレジスタ73、83に格納され
ている係数に対して演算を行なう。したがって、演算ユ
ニット91では、第1、第2クロックサイクルと同様に
A’=A×S+B、B’=Aなる演算を行なうために、
切替器20がクロス、切替器21がノーマル、切替器2
2がスルーとして演算を行なう。
切替器171、172がループ側に切り替えられるため、
演算結果がレジスタ72、75に格納される。
は、本来演算の必要がない0が格納されているため、演
算しなくても良い。したがって、演算ユニット92で
は、単に、A’=A、B’=Bとすれば良く、切替器2
0がノーマル、切替器21がノーマル、切替器22がク
リアとすれば良い。この便宜的に挿入されているレジス
タ番号6に格納されている0はレジスタ75に格納され
る。
〜75、80〜86の状態になって初めて第1ステップの
演算が終了することになる。構成方法Dにおける第1ス
テップ終了後の状態である図32とを比較して見ると、
各レジスタが同じ値になっていることが分かる。
A側のレジスタ1410〜1414の値が上位に1回シフ
トして行くのに対し、本構成方法では、Lopt=3クロ
ックサイクルで初めてA側のレジスタ70〜75が1回シ
フトしていることに注意されたい。
われる。このステップでは、DR用のレジスタ5の値
(dR1)が3で、DQ用のレジスタ6の値(dQ1)が
3で、DR≧DQであるため、動作モードがノーマルモ
ードの演算を行なうことが認識される。そこで、割算器
14の入力部の切替器13がノーマル側に切り替えられ
てα2/α8なる演算が行われ、割算結果S=α9が各演
算ユニット91、92に対し出力される。
行なうことになる。したがって、演算はテーブル6−2
のノーマルモードの演算表に基づいて行われる。
は、レジスタ番号1〜3のレジスタ71〜73、81〜83
に対してA’=B×S+A、B’=Bの演算を行なう。
このためには、演算ユニット91の切替器20がノーマ
ル、切替器21がノーマル、切替器22がスルーとす
る。
〜75、84〜86に対する演算ユニット92は、A’=
A、B’=A×S+Bの演算が必要であるから、切替器
20がクロス、切替器21がクロス、切替器22がスル
ーとなる。
75、80〜86に対する演算も3クロックサイクルに分
けられて演算される。すなわち、演算ユニット91では
レジスタ番号1、2、3のレジスタレジスタ71〜73、
81〜83に格納されている係数が各クロックサイクルで
順に演算され、演算ユニット92ではレジスタ番号4、
5、6のレジスタ74〜75、84〜86に格納されている
が各クロックサイクルで順に演算される。
各レジスタ70〜75、80〜86の値を示している。図3
3に示される構成方法Dによる第2ステップ終了後のレ
ジスタの値と一致していることが確かめられる。
第3ステップがクロスモード、図12〜図14で示され
る第4ステップがノーマルモードで演算が行われる。最
終的に、図15においてσ(X)、ω(X)が得られて
いる。ここで、求められているσ(X)、ω(X)の係
数は構成方法Dによる図35で得られている係数と同一
であることに注意されたい。
では、構成方法Dと全く同じ演算を行なうものである
が、1ステップの演算に対して演算ユニット91〜9
Koptを多重度Loptで時分割多重化して繰り返し使用す
ることにより、構成方法Dより少ない数の演算ユニット
数kopt=[2t/Kopt]+1で演算を行なっているこ
とが分かる。この代償として、1ステップの演算に費や
すクロックサイクル数がLoptに増加している。
ッドの互除法の各ステップにおいて、原理的に必要な最
小の演算回数(乗算回数)2tより1多いだけの2t+
1個の演算回数でアルゴリズムを実現しているのは構成
方法Dと同じである。しかし、1ステップの演算に対し
て演算ユニットを多重度Loptで時分割多重化して繰り
返し使用することにより、構成方法Dより少ない数の演
算ユニット数kopt=[2t/Kopt]+1で演算を行な
っている。
の例であったが、この多重度Loptを多くすると、演算
ユニット数Loptを減少させることができる。例えば、
この実施例の場合、多重度Loptを変化させたときの演
算ユニット数koptは次に示すテーブル7のようにな
る。
optを増やすと、演算ユニット数koptが減少する。レジ
スタの数が常に4t+3と同じであることから、多重度
Loptを増加するほど、回路規模を削減することができ
る。本構成方法によれば、誤り訂正システムに要求され
る仕様から最適な多重度Loptを設定することにより、
回路規模を劇的に削減することが可能になる。
と、多重度4の場合とで、演算ユニット数koptが同じ
であるが、このような場合には、多重度Loptが少ない
方が演算クロックサイクル数が少なくなり、その分だけ
有利になるため、多重度Loptを3に設定した方が同じ
演算ユニット数koptで、かつ少ないクロックサイクル
数で演算を行なうことができる。
本実施例では、レジスタの数が本来、必要な4t+3=
11より2多いレジスタ70〜75、80〜86を使用して
いるが、これは演算を分かり易く説明するための便宜的
なものである。実際には、レジスタ番号6のレジスタ8
6には0が格納されているため、演算を行なう必要がな
い。したがって、演算ユニット92の制御方法を若干変
更することにより、簡単に、かつ動作原理から得られる
最小個数である4t+3個のレジスタで回路を構成する
ことができる。
0〜72t、80〜82t+1を初期化するには様々な方法があ
るが、構成方法Dと同様な議論が成立する。つまり、各
レジスタ70〜72t、80〜82t+1の入力にセレクタを設
けて実現すれば、全てのレジスタ70〜72t、80〜8
2t+1を同時に初期化することが可能である、一方、各々
の多項式の最下位のレジスタ、すなわちレジスタ72t、
82t+1のみに入力用のセレクタを付けて入力端子とすれ
ば、各々の多項式の初期値をシリアルに入力することに
より順次、初期化することも可能である。
4の結果を格納するレジスタ15はLoptクロックサイ
クルに1回だけ値を格納する。一方、割算器14の構成
図中のF、Gに入る実際に割算を行なうべき入力は、割
算結果をレジスタ15に格納する前のLopt−1クロッ
クサイクルの間は一定の値を取っている。例えば、図6
では、ノーマルモードの割算結果α9がレジスタ15に
格納されるが、入力F、Gに相当するα2と、α8はL
opt−1=2クロックサイクル前の図4の時点でレジス
タ70、80に格納されている。このため、第1ステップ
の第2クロックサイクルの時点で第2ステップの動作モ
ード判定と、割算とを開始して良いことになる。
クロックサイクルを動作モード判定と、割算とに費やし
ても良いことになる。
べて遥かに遅いため、構成方法Dでは、動作速度が割算
の速度に律速されてしまい、高速で動作させることがで
きないという欠点がある。
の速度に見合った適当な多重度Lop tを設定することに
より、遅い割算器を使用した場合でも、演算ユニット9
1〜9Koptを効率良く使用することができるようにな
る。
より、遅い割算器14を使用してもシステム全体として
は高速に動作させることが可能になる。
重度を増やして演算ユニット数を低減させ、これによっ
て回路規模を大幅に低減させることができるとともに、
高速動作を可能にしてスループットを大幅に向上させる
ことができる
を示すブロック図である。
す回路図である。
す模式図である。
す模式図である。
す模式図である。
す模式図である。
す模式図である。
す模式図である。
す模式図である。
示す模式図である。
示す模式図である。
示す模式図である。
示す模式図である。
示す模式図である。
示す模式図である。
路で使用される互除ユニットの一例を示すブロック図で
ある。
路の一例を示すブロック図である。
例を示す模式図である。
例を示す模式図である。
例を示す模式図である。
例を示す模式図である。
路の他の一例を示すブロック図である。
の一実施例を示すブロック図である。
例を示す模式図である。
例を示す模式図である。
例を示す模式図である。
例を示す模式図である。
例を示す模式図である。
示すブロック図である。
を示す回路図である。
を示す模式図である。
を示す模式図である。
を示す模式図である。
を示す模式図である。
を示す模式図である。
レジスタ群) 80〜82t+1 Qi(X)用およびμi(X)用のレジスタ(B
側レジスタ群)
Claims (1)
- 【請求項1】 第i回目の互除演算において、Ri
(X)、Qi(X)の一方を除多項式、もう一方を被除
多項式とするとともに、互除結果を算出するための中間
多項式(μi(X)およびλi(X))を求めるユーク
リッド互除回路において、 多重度に応じた数の演算ユニットに、Ri(X)とμi
(X)で共用するA側レジスタとQi(X)とλi
(X)で共用するB側レジスタを前記多重度に応じて区
分して接続し、割算結果および前記A側レジスタ群およ
び前記B側レジスタ群を構成する各レジスタから出力さ
れる値を取り込むと共に、前記演算ユニットにおいて、
切替指令に応じて、多項式を入れ替えないノーマル接続
演算、多項式を入れ替えるクロス接続演算、除算を行わ
ないシフト演算のいずれかを時分割で多重化して行うM
LTブロックと、 Ri(X)とμi(X)で共用する1つのレジスタおよ
びQi(X)とλi(X)で共用するもう1つのレジス
タ、および割算器を有し、前記MLTブロックの最終段
から出力される値を取り込むと共に、切替指令に応じて
ノーマル接続割算演算、クロス接続割算演算のいずれか
一方を行い、この演算結果を前記演算ユニットにおける
演算の各ステップが終了するまで前記各演算ユニットに
供給する割算ユニットと、 予め設定されている値と前記割算ユニットのレジスタに
格納されている値とに基づいて、各ステップ毎に、前記
ノーマル接続またはクロス接続、シフト接続のいずれか
を指定する切替指令を生成して前記MLTブロック、割
算ユニットに供給する制御用ユニットと、 を備えた ことを特徴とするユークリッドの互除回路。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP35075991A JP3252421B2 (ja) | 1991-12-12 | 1991-12-12 | ユークリッドの互除回路 |
US07/989,035 US5442578A (en) | 1991-12-12 | 1992-12-10 | Calculating circuit for error correction |
GB9225931A GB2262371B (en) | 1991-12-12 | 1992-12-11 | Calculating circuit for error correction |
DE4241903A DE4241903C2 (de) | 1991-12-12 | 1992-12-11 | Euklidische wechselseitige Divisionsschaltung |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP35075991A JP3252421B2 (ja) | 1991-12-12 | 1991-12-12 | ユークリッドの互除回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH05165662A JPH05165662A (ja) | 1993-07-02 |
JP3252421B2 true JP3252421B2 (ja) | 2002-02-04 |
Family
ID=18412676
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP35075991A Expired - Lifetime JP3252421B2 (ja) | 1991-12-12 | 1991-12-12 | ユークリッドの互除回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3252421B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2721775B1 (fr) * | 1994-06-27 | 1996-09-06 | Sgs Thomson Microelectronics | Circuit de localisation d'erreurs d'un décodeur Reed-Solomon. |
JP4767266B2 (ja) | 2008-01-17 | 2011-09-07 | 株式会社日立製作所 | 演算ユニット、エラー訂正復号回路及び誤り位置多項式の演算方法 |
-
1991
- 1991-12-12 JP JP35075991A patent/JP3252421B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH05165662A (ja) | 1993-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3232602B2 (ja) | ユークリッドの互除回路 | |
US5442578A (en) | Calculating circuit for error correction | |
Sarma et al. | Faithful bipartite ROM reciprocal tables | |
US5642367A (en) | Finite field polynomial processing module for error control coding | |
JP3970337B2 (ja) | 大規模データ・ブロックのためのハードウェア最適化リード・ソロモン・デコーダ | |
JPH02148225A (ja) | 有限体の乗法的逆数元を計算するデータ処理方法及び装置 | |
US7243289B1 (en) | Method and system for efficiently computing cyclic redundancy checks | |
US7089276B2 (en) | Modular Galois-field subfield-power integrated inverter-multiplier circuit for Galois-field division over GF(256) | |
JP4767266B2 (ja) | 演算ユニット、エラー訂正復号回路及び誤り位置多項式の演算方法 | |
JP3252421B2 (ja) | ユークリッドの互除回路 | |
JP2002335167A (ja) | 復号回路、該復号回路を用いる復号装置、復号方法および半導体デバイス | |
JP2000004169A (ja) | Crc演算方法及びcrc演算回路 | |
JPH09505952A (ja) | プログラム可能な冗長/シンドローム生成装置 | |
JP2002335165A (ja) | 組み合わせ回路、該組み合わせ回路を使用する符号化装置、復号装置、および半導体デバイス | |
US6405339B1 (en) | Parallelized programmable encoder/syndrome generator | |
JP3239522B2 (ja) | データ消失訂正方法とその回路 | |
US4809275A (en) | Parity signal generating circuit | |
JP3614978B2 (ja) | ガロア体の除算方法および除算装置 | |
Drescher et al. | VLSI architecture for non-sequential inversion over GF (2m) using the euclidean algorithm | |
JP3252420B2 (ja) | ユークリッドの互除回路 | |
JP3233502B2 (ja) | 復号化装置 | |
JP2907138B2 (ja) | 誤り訂正の演算処理方法及び処理回路 | |
KR100437845B1 (ko) | 리드-솔로몬 복호기의 고속 수정 유클리드 알고리즘 연산방법 및 연산회로 | |
JP2710176B2 (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 |