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
Application number
JP35075991A
Other languages
English (en)
Other versions
JPH05165662A (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 JP35075991A priority Critical patent/JP3252421B2/ja
Priority to US07/989,035 priority patent/US5442578A/en
Priority to GB9225931A priority patent/GB2262371B/en
Priority to DE4241903A priority patent/DE4241903C2/de
Publication of JPH05165662A publication Critical patent/JPH05165662A/ja
Application granted granted Critical
Publication of JP3252421B2 publication Critical patent/JP3252421B2/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)
  • Detection And Prevention Of Errors In Transmission (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はユークリッドの互除演算
を行うユークリッドの互除回路に関する。
【0002】[発明の概要]BCH符号・リード・ソロ
モン符号に代表される誤り訂正符号を用いて誤り訂正シ
ステムを実現する場合には、受信信号から生成されるシ
ンドロームから誤り位置多項式を求める手段が最も重要
になる(7R-C601-018(4740) Reed-Solomon符号を用いた
高速多重誤り訂正回路のハードウェア化 (1))。
【0003】この過程を実現する一手法としてユークリ
ッドの互除アルゴリズムを用いる方法が広く知られてい
る(7R-C601-020(4788) Reed-Solomon 符号を用いた高
速多重誤り訂正回路のハードウェア化 (2))。
【0004】一般にユークリッドの互除法とは、2つの
多項式の最大公約多項式(Most Common Devisor)を求め
るアルゴリズムとして知られている。誤り訂正符号にお
いては、ユークリッドの互除法の過程で用いられる演算
手順をうまく適用することにより、シンドロームから誤
り位置多項式を算出することができる。ユークリッドの
互除法の演算過程は、シストリックアレイアーキテクチ
ャで構成できる利点があり、比較的簡単な演算ユニット
(互除ユニットと呼ぶ)を複数個縦続接続することで実
現できる。
【0005】“Shao”らによりユークリッドの互除法の
アルゴリズムをシストリックアレイアーキテクチャで実
現する例が示されている(この構成方法を以下の文章で
は構成方法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
つの有限体乗算器が必要になるため、高速実時間処理が
必要なシステムを構成する場合回路規模が大きくなると
いう欠点があった。
【0006】この改良方法として、1つの方法(この構
成法を以下の文章では構成方法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つの有限体割算器で共有することにより回路規模の削
減を実現している。
【0007】更に、構成方法Bとは全く異なる構成で実
現する改良方式として、割算器を共有するための付加回
路や、次数の制御回路がただ1つで済むような構成方法
(構成方法Cと呼ぶ)を提案した。構成方法Cでは、割
算をすべきデータが常に同じ場所から取り出せるため割
算器を共有するための回路やその制御回路が不要にな
る。更に、多項式の次数から動作を判定する回路や制御
回路がただ1つで実現されるため規模が削減される。
【0008】ここで、改訂ユークリッドの互除法(2)
における1ステッデの演算において、1個の演算ユニッ
トがただ1回の演算を行なう場合について考えてみる。
つまり、時分割多重等の多重化を行なって1個の演算ユ
ニットで2回以上の演算を行なわせる場合を除いて本質
的に必要な演算器の数を考える。
【0009】すると、構成方法A、B、Cの構成方法に
おいて、必要な乗算ユニットの数は、各々、8t、4
t、4t−1個である。構成方法B、Cは、構成方法A
に比べて演算ユニットの数が半分に減少しているが、こ
れは乗算器を2つ用いる代わりに割算器を全ユニットに
共有して1つ使用することにより、各演算ユニットに必
要な乗算器を1つに減らしているためである。
【0010】しかし、改訂ユークリッドの互除法(2)
のアルゴリズム自体で必要な演算(乗算)回数は、1ス
テップの演算に対して僅かに2t回であるのに対し、2
倍以上の演算ユニットを必要としており極めて無駄な構
成であるといえる。同様に、各多項式の係数を格納する
ために必要なレジスタの数もアルゴリズムで本来必要な
数に対して約2倍の数を必要としている。
【0011】そこで、本出願人は先の出願で提案した改
訂ユークリッドの互除法(2)のアルゴリズムにおい
て、レジスタへの格納方法と演算器の構成方法との2つ
に画期的な工夫を施すことにより、ユークリッドの互除
法における1ステップ当たり最小の演算回数2tより1
多いだけの2t+1個の演算ユニット数で、かつ最小の
レジスタ数4t+3個のレジスタ数でアルゴリズムを実
現する構成方法を開示している(以下、構成方法Dと呼
ぶ。)。
【0012】この構成方法Dでは、従来提案されている
構成方法A、B、Cより遥かに少ない演算ユニット数に
よりユークリッドの互除アルゴリズムが実現できる極め
て画期的なものである。この構成方法Dでは、2t+1
個の演算ユニットを用いて1クロックサイクルの間に1
ステップの演算を完了するため、2tクロックサイクル
後に、所望のσ(X)、 ω(X)が得られることになる。
【0013】しかし、誤り訂正の処理では、最も高速処
理が要求される連続的に入力するデータに対する処理を
行う場合においても、シンドロームから誤り位置多項式
を求めるプロセスは、1符号長のデータが入力される時
間中に処理を行えば良い。通常、符号長nは、2tに対
して十分に大きいので、符号長nが十分に長い仕様の誤
り訂正システムに対して構成方法Dの回路をそのまま使
用すると、n−2tクロックサイクルの間は、ユークリ
ッドの互除法を行う回路が遊んでしまうことになり冗長
な回路構成になる。
【0014】また、連続的に入力しないデータに対する
処理に対しては、ある定められた時間内に終了すれば良
いにも拘らず、構成方法Dのような回路構成で2tクロ
ックサイクルで答を得る必要がなく極めて無駄である。
【0015】本件は、改定ユークリッドの互除法(2)
を構成方法Dを用いて実現した場合に必要な1ステップ
当たり2t+1回の演算を2t+1個より少ない演算ユ
ニットを時分割多重化して使用することにより、演算ユ
ニットの数を削減することが出来るような構成方法与え
るものである。
【0016】本構成方法を用いることにより、1ステッ
プ当たりの演算回数が2t+1回のままで、構成する誤
り訂正システムが要求する速度、スループット等の仕様
に応じて自由に多重度の値を設定することが可能にな
り、これによって設計要求を満たし、かつ、演算ユニッ
ト数が最小の構成の回路を得ることができる。
【0017】
【従来の技術】
《誤り訂正手法》先ず、誤り訂正の手法について述べ
る。GF(2m)の有限体を用いてtシンボル誤り訂正可
能で符号長がnの誤り訂正システムを考える。誤り位置
を符号の先頭を0番目と数えてj番目にある時にαj
表すとする。すると、符号全体にm個の誤りがあるとす
れば、符号全体の誤りは、誤り位置Xi(但し、i=1
…m)及び誤りパターンYi(但し、i=1…m)で記
述することが出来る。つまり、全部でm(m≦2t)個
の誤りがあった場合には、m組の(Xi、Yi)が必要にな
る。
【0018】この誤り位置Xi(但し、i=1…m)を
用いて、誤り位置多項式σ(X)と呼ばれる多項式を定義
する。誤り位置多項式σ(X)は、誤り位置X=Xi-1(但
し、i=1…m)で0になる。
【数1】 σ(X)の係数を
【数2】 と表す。
【0019】更に、誤り位置多項式σ(X)とシンドロー
ム多項式S(X)を用いて誤り評価他項式ω(X)を
【数3】 と定義する。
【0020】次に、誤り訂正の過程を順に説明する。 <ステップ1>2t個のシンドロームS
【数4】 が、受信信号rとパリティ検査行列Hとの積として求め
られる。つまり、
【数5】 となる。このように求められたシンドロームSを多項式
の係数に持つシンドローム多項式S(X)と呼ばれる多項
式を定義する。
【数6】
【0021】<ステップ2>シンドローム多項式S(X)
から誤り位置多項式σ(X)及び誤り評価多項式ω(X)を求
める。この時にユークリッドの互除法によるアルゴリズ
ムを用いる。
【0022】<ステップ3>誤り位置X=Xi -1(但
し、i=1…m)をサーチする。ステップ2で求められ
た誤り位置多項式σ(X)の係数を使用して、σ(X)にGF
(2m)に含まれる全ての要素X=α0…αn-1を代入して
σ(X)=0となる位置が誤り位置Xi(但し、i=1…
m)であることが判る。
【0023】<ステップ4>誤り位置Xi(但し、i=
1…m)が求められると、誤りパターンYi(但し、i
=1…m)は、誤り評価多項式ω(X)を用いて次のよう
に算出される。
【数7】
【0024】<ステップ5>求められた誤り位置X
i(但し、i=1…m)及び誤りパターンYi(但し、i
=1…m)を用いて受信信号に対して訂正を行なう。
【0025】以上、ステップ1〜5の過程で誤り訂正が
行なわれる。詳細については“7R-C601-018(4740) Reed
-Solomon 符号を用いた高速多重誤り訂正回路のハード
ウェア化 (1)”、“7R-C601-020(4788) Reed-Solomon
符号を用いた高速多重誤り訂正回路のハードウェア化
(2)”、“7R-C601-021(4817) Reed-Solomon 符号を用い
た高速多重誤り訂正回路のハードウェア化 (3)”で述べ
てある。
【0026】《ユークリッドの互除法による誤り位置多
項式の導出》次に、誤り位置多項式の導出方法について
述べる。これは、上に述べた誤り訂正の過程のステップ
2に当たるものである。シンドローム多項式S(X)から
ユークリッドの互除法によるアルゴリズムを用いて誤り
位置多項式σ(X)を求める方法は、次のように知られて
いる。
【0027】[誤り位置多項式導出方法]今、r-1(X)
=X2t、r0(X)=S(X)とおく。S(X)の次数は2t−1
次であるから、deg(r0(X))<deg(r-1(X))であ
る。
【0028】このr-1(X)、r0(X)を用いて多項式q
i(X)を商とする割算を繰り返し行なってゆく。これがユ
ークリッドの互除法と同じ演算であり、次に示すよう
に、
【数8】 の条件を満たしたら停止する。この時に、rj(X)は、割
算の過程で得られたr1(X)、r2(X)…rj-1(X)の式に下
から順次代入計算することにより、最初に定義されたr
-1(X)=X2t、r0(X)=S(X)を用いて次式のように表現
することが出来る。
【数9】
【0029】この時に得られるrj(X)、A(X)が各々ω
(X)、σ(X)になる。
【0030】この手順をハードウェアで実現するために
は、割算を如何に逐次実行してqj(X)、rj(X)を求める
かとともに、得られたr1(X)、r2(X)…rj-1(X)から、
σ(X)を求めるために逆順代入計算する手順を如何に実
現するかが課題となる。
【0031】また、ユークリッドの互除法の過程では、
割算の結果、余りの次数が1回の割算で2次以上低下す
る場合がある。ユークリッドの互除法を実現するハード
ウェアの構成は、このような場合にも破綻なく動作する
構成でなくてはならない。
【0032】実は、この一連の手順は、上述したアルゴ
リズムを、通常のユークリッドの互除アルゴリズムを次
数が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)に若干改良を加えた
ものに相当する。
【0033】[改定版ユークリッドの互除法(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】
【0034】(停止条件)2t回、繰り返した時停止す
る。
【数15】 (結果)
【数16】
【0035】このように停止条件として、演算ステップ
を必ず2t回行なう場合には、最終的に得られるdR2t
はω(X)の次数を示すことになる。当然ながら、σ(X)の
次数はdR2t+1である。このアルゴリズムに従えば、
2tステップの演算の後にσ(X)、ω(X)を求めることが
できる。
【0036】文献“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)”に詳細な実例を示してあるので参照の
こと。
【0037】《従来のユークリッドの互除アルゴリズム
のハードウェア化》ユークリッドの互除法のアルゴリズ
ムをシストリックアレイアーキテクチャを用いてハード
ウェアで実現する例が文献“Howard M. Shao et.al."A
VLSI Design of aPipeline Reed-Solomon Decoder" IEE
E Trans. on Computers vol.C-34May 1985”により示さ
れている(構成方法A)。
【0038】しかし、このハードウェアは、ユークリッ
ドの互除法における割算の途中で余りの次数が一度に2
次以上低下する場合に対応しておらず、ユークリッドの
互除アルゴリズムを完全には実現していない。
【0039】また、構成方法Aでは各ユニットに2つの
有限体乗算器が必要になり高速実時間処理が必要なシス
テムを構成する場合、回路規模が大きくなるという欠点
がある。
【0040】この改良方法として、上で説明した構成方
法Bを筆者が提案した。この方法では構成方法Aで示さ
れている互除ユニット中の2つの有限体乗算器を1つの
有限体乗算器と1つの有限体割算器とに置き換える。次
に、縦続接続されている複数の互除ユニット中の有限体
割算器を1つの有限体割算器で共有することにより回路
規模の削減を実現している。
【0041】さらに、構成方法Bでは、図16に示すよ
うな基本的な演算ユニット(互除ユニットと呼ぶ。)1
01を使用する。この互除ユニット101は、上で述べ
た改定ユークリッドの互除法(2)の1ステップを実行
する。ユークリッドの互除法の各ステップの入力である
i-1(X)、Qi-1(X)、λi-1(X)、μi-1(X)、の4つの多
項式はdQi-1次の係数から順に入力する。SFは、最
初の係数を示すフラグである。同時にdRi-1、dQi-1
を入力する。
【0042】互除ユニット101の点線部はデータの経
路切替器である。演算が、クロスモードの時にデータが
クロスするように選択され、それ以外の場合はクロスせ
ずに選択される。つまり、dRi-1次の係数が入力した
時(つまり、SFフラグが入力した時)にRi-1(X)のd
i-1次の係数ai-1が0であるか否かを判断し、ai-1
≠0、dRi-1<dQi-1の場合のみクロスすることにな
る。
【0043】その結果、クロスの場合ai-1/bi-1が、
それ以外の場合にはbi-1/ai-1がレジスタ102に保
持され、多項式の全ての係数に対して演算が行なわれ
る。その結果、入力データがこの互除ユニットを1回通
過する毎に改訂ユークリッドの互除法(2)の1ステッ
プが演算されて行くことになる。したがって、図17の
ように、この互除ユニット101を2t個縦続接続して
並べて、入力として
【数17】 を入れると、2t番目の互除ユニット101の出力とし
てσ(X)、ω(X)が得られることになる。
【0044】文献“7R-C601-020(4788) Reed-Solomon
符号を用いた高速多重誤り訂正回路のハードウェア化
(2)”に示す例題を用いて動作例を図18〜図21に示
す。この例では、図18、図20がクロスモード、図1
9、図21がノーマルモードで演算されている。図21
のように4回、互除ユニット101を通過した結果とし
てσ(X)、ω(X)が求められていることが判る。
【0045】アルゴリズムから明らかであるが、σ
(X)、ω(X)の2つの多項式は、実際に起きている誤り数
がt未満の場合には2tステップの演算の後には、見か
け上、2t次の多項式であるかのように上位にシフトさ
れて出力される。したがって、dR2tの値を見て次数を
合わせるか、または改訂ユークリッドの互除法(2)に
おいて停止条件をdRi<tと変更すれば良い。なお、
この図はあくまで原理的な図であり素子の遅延時間等を
考慮していない。詳細のインプリメンテーションについ
ては文献“7R-C601-021(4817) Reed-Solomon 符号を用
いた高速多重誤り訂正回路のハードウェア化 (3)”を参
照のこと。
【0046】さらに、構成方法Bでは、各互除ユニット
101の有限体割算器103が同時に動作する必要がな
いことに着目して、図22に示す如く前記各互除ユニッ
ト101から有限体割算器103を除いた互除ユニット
101aを縦続接続し、かつ各互除ユニット101aの
i-1(X)、Qi-1(X)を取り出してこれを切替スイ
ッチ105によって順次、選択して有限体割算器106
で割算した後、対応する互除ユニット101aに戻すよ
うにして、1つの有限体割算器106を時分割で共有
し、全体のゲート規模を削減するようにした。
【0047】しかし一方では、この構成では、複数の互
除ユニット101aから有限体割算器106を共有する
ために必要な制御回路が複雑になり動作速度が向上しな
い欠点がある。
【0048】また、有限体割算器106を共有しても、
多項式の次数とRi-1(X)のdRi-1次の係数の0検出を
行なって動作を判定する回路やデータ切替器等の制御回
路が各互除ユニット101aに独立に必要なため、回路
規模がやや増大するという欠点がある。
【0049】加えて、この方法を用いる場合にはシンド
ローム多項式S(X)の係数であるシンドロームS2t、S
2t-1…S1が上位の係数から順に入力する必要がある。
ところが、シンドロームはS2t、S2t-1…S1が同時に
求められるため、この同時に求められたシンドロームを
上位の係数から順に入力するように変換する回路が別途
必要になる。
【0050】そこで、これらの問題点を解決するため
に、文献“Howard M. Shaoet.al."AVLSI Design of a P
ipeline Reed-Solomon Decoder" IEEE Trans. on Compu
tersvol.C-34 May 1985”で新しい構成方法(以下、構
成方法Cと呼ぶ。)を提案した。
【0051】この構成方法Cは、従来の手法と異なり、
割算をすべきデータが常に同じ場所から取り出せるた
め、有限体割算器106を共有するための回路やその制
御回路が不要になる。更に、多項式の次数から動作を判
定する回路や制御回路がただ1つで実現されるため規模
が削減される。
【0052】提案する構成方法Cを図23に示す。図2
3のように構成は1つのブロック(A)111と、複数
のブロック(B)112と、接続切替判定ブロック11
3に分けることが出来る。ブロック(A)111は誤り
訂正数tに拘らず1つのユニットがあれば良い。一方の
ブロック(B)112は、tシンボル誤り訂正システム
の場合2t−1個のブロックが必要である。
【0053】そして、これらブロック(A)111、各
ブロック(B)112に設けられている各レジスタ群は
縦方向に分割され、各々左側から順にRi(X)、Qi(X)、
λi(X)、μi(X)の係数を格納するためのレジスタ群とな
る。これらのレジスタ群には、dRi、dQiで示される
次数にしたがって上位から順に係数が格納される。
【0054】これらの初期設定値として、レジスタRR
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とする。
【0055】ブロック(B)112の最後のブロックの
下位ブロックから入力端子には常に0を入力する。
【0056】ブロック(A)111のRi(X)のdRi
の係数用のレジスタRR2t-1に格納されている係数は接
続切替ブロック113に設けられている0検出回路11
5で0検出が行われる。
【0057】また、接続切替ブロック113のレジスタ
DR、DQは各々dRi、dQiが格納される。初期値は
各々、2t−1、2tである。
【0058】なお、初期値を設定する回路は構成図の他
に別途必要である。しかし、これは本質的なものではな
く、簡単な回路であるので、ここでは省略する。
【0059】次に、図23を参照しながらこの回路の動
作を説明する。まず、初期値が設定されたレジスタD
R、DQの値は比較回路116で比較され、DR<DQ
で、かつ0検出回路115からレジスタRR2t-1≠0の
状態が知らされた場合に点線で示した切替器をクロス側
に切替える。その他の場合にはクロスしない。この切替
えは構成図全体の切替器、全てを同時に行なえば良い。
【0060】そして、ブロック(A)111では、切替
器が切替えられた後に、Ri-1(X)のdRi-1次の係数と
i-1(X)のdQi-1次の係数が切換器を通って有限体割
算器117に入力される。有限体割算器117では、図
中のE、Fの入力に対してE/Fの割算を行い、その結
果Sを出力する。
【0061】この有限体割算器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まで上位の係数か
ら順に格納される。
【0062】以上述べた手順により、改訂ユークリッド
の互除法(2)の1ステップの演算が行われる。したが
って、この手順を2t回繰り返すことにより構成方法B
と同様にσ(X)、ω(X)が求められる。
【0063】実際の動作例を図24〜図28に示す。図
24に示すレジスタDR、DQ、RR2t-1〜RR0、R
2t〜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に
入力される。
【0064】そして、これらブロック(A)111、各
ブロック(B)112で行われた演算結果は次のステッ
プで上位側のレジスタに格納され、図25のような結果
となる。この結果は図18に示す先に説明した構成方法
Bによる結果と一致している。
【0065】結局、図24以下、第1、3ステップがク
ロスモード、第2、4ステップがノーマルモードで演算
が行われ、最終的に図28においてσ(X)、ω(X)が得ら
る。
【0066】以上説明したように、この構成方法Cにお
いては、先に説明した構成方法Bと本質的な考え方が異
なっている。つまり、構成方法Bは、互除ユニット10
1を各多項式の係数が上位から順にシリアルに入力し演
算されているのに対し、構成方法Cでは、全ての係数が
レジスタDR、DQ、RR2t-1〜RR0、RQ2t〜R
0、Rλ2t〜Rλ0、Rμ2t-1〜RRμ0に格納され
る。この結果、改定ユークリッドの互除法(2)の1ス
テップの演算に対して、構成方法Bでは、多項式の全て
の係数が1つの互除ユニット101でシリアルに演算さ
れるのに対して、本方法では、全ての演算ユニット(ブ
ロック(A)111、各ブロック(B)112)におい
て、各々1つずつの係数に対しての演算が行なわれる。
したがって、演算量自体は変化していないが構成方法が
大幅に簡単化される。
【0067】また、図23の構成図で説明したようにこ
の構成方法Cによれば、ブロック(A)111のレジス
タRR2t-1、RQ2t-1には、有限体割算器117の入力
となるRi(X)のdRi次の係数とQi(X)のdQi次の係数
が格納される。したがって、有限体割算器117の入力
は、常にブロック(A)111のRi(X)及びQi(X)用の
切替器の直後から入力されることになる。このように本
構成法では、有限体割算器117に対して常に同じ場所
からデータを入力することが可能になるため、有限体割
算器117を共有するための付加回路が不要になり、構
成全体の規模低減が可能になる。
【0068】また、構成方法Bでは、dRi、dQiの大
小判定とRi(X)のdRi次の係数の0検出を行って各切
替器の制御を行なう回路を各互除ユニット101に各々
独立に持つ必要があったが、構成方法Cによれば、接続
切替判定ブロック103だけでこの処理を行なう。この
ため規模低減が可能になる。
【0069】さらに、構成方法Bでは、訂正可能なシン
ボル数がtの場合に各互除ユニット101に2個ずつ、
合計4t個の乗算器が必要であったが、本構成法では、
4t−1個に削減されている。
【0070】さらに、初期設定において構成方法Bで
は、入力信号R0(X)、即ちシンドローム多項式の係数S
1、S2…S2tを上位係数から順にシリアル入力する必要
があるのに対して、この構成方法Cでは、2t個のシン
ドローム多項式の係数を同時に入力して初期化すること
が出来る。
【0071】また、シンドロームは行列計算の結果とし
て得られるため、本質的に同時に求めることができる。
したがって、構成方法Bでは、同時に求められたシンド
ロームをシリアル化して入力する必要があるのに対し
て、本構成法を用いれば、同時に求められたシンドロー
ム多項式の係数をそのまま直接入力することができるの
でシリアル化する回路が不要になる。それと同時にシリ
アル化することにより結果が得られるまでの時間(スル
ープットタイム)が増加するのを回避することができ
る。
【0072】また、この構成方法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
の入力側にセレクタを設けて実現すれば、全てのレジス
タを同時に初期化することが可能である。一方、各々の
多項式の最下位のレジスタの入力として各々の多項式の
初期値をシリアルに入力することにより順次初期化する
ことも可能である。
【0073】今、改訂ユークリッドの互除法(2)にお
ける1ステップの演算において、1個の演算ユニットが
ただ1回の演算を行なう場合について考えてみる。つま
り、時分割多重等の多重化を行なって1個の演算ユニッ
トで2回以上の演算を行なわせる場合を除いて本質的に
必要な演算ユニットの数を考える。
【0074】今まで述べた構成方法A、B、Cでは、必
要な乗算ユニットの数は、各々、8t、4t、4t−1
個である。ここでtは訂正可能なシンボル数である。構
成方法B、Cが構成方法Aに比べて演算ユニットの数が
約半分で済んでいる。これは乗算器2つを用いる代わり
に有限体割算器1個と乗算器1個とを使用した構成に改
め、各演算ユニットで必要な有限体割算器を共有してた
だ1つ使用することにより、各演算ユニットに必要な乗
算器を1つに減らしているためである。
【0075】それでは、改訂ユークリッドの互除法
(2)のアルゴリズム自体で本来必要な演算(乗算)回
数について、文献“7R-C601-020(4788) Reed-Solomon符
号を用いた高速多重誤り訂正回路のハードウェア化
(2)”に示してある例題を用いて考えてみる。
【0076】この例は、規約多項式g(X)=X4+X+1
を用いて定義される有限体GF(24)を用いてt=2シ
ンボル誤り訂正を行なったものである。今、シンドロー
ム多項式S(X)が、
【数18】 と求められている。このシンドローム多項式S(X)から
改訂ユークリッドの互除法(2)を用いて誤り位置多項
式σ(X)を導出すると、次のようになる。
【0077】[初期設定]
【数19】
【0078】[ステップ1]
【数20】 したがって、この場合には、
【数21】
【0079】[ステップ2]
【数22】
【0080】したがって、この場合には、
【数23】 [ステップ3]
【数24】
【0081】したがって、この場合には、
【数25】
【0082】[ステップ4]
【数26】
【0083】したがって、この場合には、
【数27】
【0084】そして、これらの各ステップにおける演算
は、構成方法Bでは、図18〜図21、構成方法Cで
は、図24〜図28に各々、示すように行なわれる。
【0085】ここで、乗算の演算が必要なのは、R
i(X)、λi(X)を求める演算である。各ステップの乗算回
数に着目すると、ステップ1では、R1(X)を求める演算
として、
【数28】 なる演算が行なわれる。実際に乗算が行なわれるのはR
0(X)の係数と割算結果のα7との乗算である。R0(X)は
3次の多項式であるから4個の係数があるが、最高次の
係数は割算に使用されているため、改めて演算する必要
がない。結局、
【数29】 の3つの演算が行なわれていることになる。一方のλ
0(X)側の演算では、
【数30】 が行なわれる。λ0(X)は、0次の多項式であるから演算
される係数はただ1つで、
【数31】 の演算が行なわれる。したがって、ステップ1では、全
部で4回の演算が行なわれていることが判る。
【0086】次に、ステップ2について同様に演算回数
を見ると、R2(X)の演算では、割算の結果α9を用い
て、
【数32】 の3つの乗算の演算が行なわれている。これに対してλ
2(X)の演算では、
【数33】 の1回の演算のみであり、やはり合計4回の演算が行な
われている。
【0087】同様に、第3ステップでは、R3(X)の演算
で、
【数34】 の2回の乗算が行なわれている。これに対して、λ3(X)
側の演算ユニットでは、
【数35】 の2回の演算が行なわれ、合計で4回の演算が行なわれ
ている。
【0088】そして、最後の第4ステップでは、R4(X)
の演算で、
【数36】 の2回の演算が行なわれるのに対し、λ4(X)側の演算ユ
ニットでは、
【数37】 の2回の演算が行なわれ、合計4回の演算が行なわれて
いることになる。
【0089】以上の事から判るように、実際に必要な演
算数の各ステップにおける総和は、常に4になってい
る。
【0090】これは、ユークリッドの互除法が進むにつ
れて、Ri(X)、Qi(X)の次数が減少して行くのに対し
て、λi(X)、μi(X)の次数が増加して行くために当然の
結果として起きる。
【0091】一般に、改訂ユークリッドの互除法(2)
における第iステップにおいてRi(X)を演算する時に
は、クロスモードの場合Ri-1(X)、ノーマルモードの場
合Qi- 1(X)の最上位係数を除く係数に対して乗算が必要
になる。
【0092】そして、演算が行なわれる時には、dR
i-1、dQi-1はRi-1(X)、Qi-1(X)の次数を表してい
る。dRi-1<dQi-1の時クロスモードで演算され、d
i-1≧dQi-1の時ノーマルモードで演算される訳であ
るからRi(X)の演算で乗算が必要な多項式の次数は、d
i-1、dQi-1の小さい方、即ち、min(dRi-1、dQ
i-1)になることが判る。このとき、多項式自体の係数
の個数は、次数より1多いが、最上位係数は割算に使用
されるため演算の必要が無い。結局、Ri(X)を求めるた
めの演算では、min(dRi-1、dQi-1)回の演算が必
要になる。
【0093】これに対してλi(X)の演算は、λi-1(X)、
μi-1(X)により行なわれる。λi(X)を計算するのに必要
な演算は、クロスモードの場合λi-1(X)、ノーマルモー
ドの場合μi-1(X)の全ての係数に対して乗算が必要にな
る。
【0094】シフトモード以外で実際に演算が行われる
ノーマルモードとクロスモードの場合、第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個の全ての係数に対して乗算が必要である。
【0095】したがって、クロスモードの場合の全乗算
回数Ncrossは、
【数39】 となる。この結果、クロスモードの場合の全乗算回数N
crossは、2t以下になる。
【0096】一方、dRi-1≧dQi-1の場合のノーマル
モードで演算が行なわれる場合には、Ri(X)の演算にd
i-1次の多項式Qi-1(X)の最上位(dQi-1次)の係数
以外の係数に対して乗算が必要でdQi-1回の乗算が必
要である。同様に、λi(X)の演算に対しては、μi-1(X)
のdμi-1+1個の全ての係数に対して乗算が必要であ
る。
【0097】したがって、クロスモードの場合の全乗算
回数Nnormalは、
【数40】 となる。このように、ノーマルモードの場合の全乗算回
数Nnormalも、2t以下になる。
【0098】以上述べたように、アルゴリズム自体で必
要な各ステップにおける全乗算回数は常に2tを以下で
ある。したがって、本来必要な演算ユニット数は僅かに
2t個であることになる。
【0099】したがって、先に示した例題の場合には、
演算ユニットの数は本来4個で済むはずである。しか
し、現実の実現した構成方法を見てみると、構成方法
A、B、C共に2tに比べ、倍以上の演算ユニットを必
要としており、極めて無駄な回路構成であると断言でき
る。
【0100】次に、演算を行なうために保持しておく必
要のある係数の個数を考察してみる。dRi、dQi、d
λi、dμiは、実際に演算が行なわれるノーマルモード
およびクロスモードの演算ステップにおいて、Ri(X)、
i(X)、λi(X)、μi(X)の次数を表している。これらの
次数には、次の関係が成り立つ。
【数41】
【0102】このように、Qi(X)とλi(X)の次数の総和
は、常に2tであり、Ri(X)とμi(X)の次数の総和は、
2t−1以下になる。
【0103】したがって、Qi(X)とλi(X)の係数を格納
するために必要なレジスタの数は2t+2個、Ri(X)と
μi(X)の係数を格納するために必要なレジスタの数は2
t+1個で良いことになり、合計でも4t+3個で良い
ことになる。
【0104】しかし、構成方法Cでは、8t+1個のレ
ジスタを使用しており極めて無駄な構成になっている。
【0105】以上述べたように、構成方法A、B、Cい
ずれも1ステップ当たりの乗算回数、レジスタ数共に、
本来アルゴリズムが必要としている演算量に比べて倍以
上の無駄な回路構成になっている。
【0106】既に説明した、例題の演算をもう一度判り
易く説明してみる。構成方法Cによる例題では、図24
〜図28の中で行なわれている演算は、次の表のように
なる。
【0107】[ステップ1] テーブル1−1 クロス
モードdR=3、dQ=4
【表1】
【0108】[ステップ2] テーブル1−2 ノーマ
ルモードdR=3、dQ=3
【表2】
【0109】[ステップ3] テーブル1−3 クロス
モードdR=2、dQ=3
【表3】
【0110】[ステップ4] テーブル1−4 ノーマ
ルモードdR=2、dQ=2
【表4】
【0111】表中で明らかなように、構成方法Cでは、
各ステップで乗算は4回ずつしか行なわれておらず、常
に残りの演算ユニットは動作していないことが判る。ま
た、λi(X)、μi(X)の格納場所は演算が進むにつれ見か
け上で上位にシフトして行くため演算ユニットが使用さ
れる場所が毎ステップ変化している。このため構成方法
Cでは演算ユニットの数を削減できないことが判る。
【0112】そこで、本出願人は、ユークリッドの互除
法における1ステップ当たり最小の演算回数2tより1
多いだけの2t+1個の演算ユニット数で、かつ、最小
のレジスタ数4t+3個のレジスタ数でアルゴリズムを
実現する構成方法Dを提案した。
【0113】この構成方法Dにより、従来提案されてい
る構成方法A、B、Cより遥かに少ない演算ユニット数
によりユークリッドの互除アルゴリズムが実現できる事
になるため、極めて画期的なものであると言える。
【0114】提案する構成方法Dの概念的な構成図を図
29に示す。図29に示すようにこの構成方法による回
路はDIVブロック131と、MLTブロック132と
の2つの部分から成っている。
【0115】DIVブロック131は有限体割算器14
6を持ち、構成図中ただ1つ存在する最上位係数の割算
ユニット133と、dRi、dQiの大小関係と、Ri(X)
のdRi次の係数の0検出とを行ないDIVブロック1
31およびMLTブロック132の切替器を制御する信
号を発生する制御用ユニット134から成る。
【0116】また、MLTブロック132は複数の係数
に対する演算に対し演算ユニットを多重化して使用しな
い場合において、tシンボル誤り訂正可能なシステムに
するとき、前記tに対応した数2t+1個の演算ユニッ
ト1351〜1352t+1が必要である。
【0117】各演算ユニット1351〜1352t+1は、
図30に示す如く3つの切換器136〜138と、1つ
の乗算器139と、1つの加算器140とによって構成
され、定められた有限体の演算を行う。
【0118】また、図29に示す各レジスタ1410
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個まで削減されている。
【0119】DIVブロック131におけるDR用のレ
ジスタ143と、DQ用のレジスタ144は、A0用の
レジスタ1410、B0用のレジスタ1420に格納され
ている係数の次数を表しており、クロスモード、ノーマ
ルモード(後述)の実際に演算が行われる時には、R
i(X)、Qi(X)の次数を表すことになる。
【0120】また、DIVブロック131の制御用ユニ
ット134に設けられている動作モード判断制御回路1
45では、レジスタ143、144に格納されてるD
R、DQの比較結果と、レジスタ1410から出力され
るA0の0検出結果から動作モードが判定され、その結
果とDRの値からMLTブロック132の各演算ユニッ
ト1351〜1352t+1が独立して制御される。なお、
MLTブロック132における最後の演算ユニット13
2t+1の入力側には、A側のレジスタが不要になるが、
図29に示す回路は概念的な回路であるため、MLTブ
ロック132の最後の演算ユニット1352t+1も他の演
算ユニット1351〜1352tの入力側に設けられるA
側のレジスタを削除した構成として描いている。しか
し、最後の演算ユニット1352t+1はA側の入力が常に
0であることから実際には更に回路が簡略化できる。
【0121】次に、演算を行なう各多項式の係数の格納
方法について説明する。まず、本構成方法では、Qi(X)
と、λi(X)の係数の格納場所と、Ri(X)とμi(X)の係数
の格納場所を各々共用する。
【0122】ユークリッドの互除法の各ステップにおけ
る演算においては、
【数42】 なる関係が成立している。これは、Qi(X)とλi(X)の次
数の和が常に2tであることを示している。したがっ
て、Qi(X)の次数が減少するにつれてλi(X)の次数が増
大したとしても、各々の多項式の係数を格納すべきレジ
スタの数の和が常に2t+2であることを示しているこ
とになる。同様に、Ri(X)とμi(X)の次数の和も2t−
1以下であるため、係数を格納すべきレジスタ数の和
は、最大でも2t+1で良いことを示している。
【0123】また、図29におけるレジスタ1410
1412tがRi(X)とμi(X)の係数用のレジスタである。
【0124】 各演算ステップにおいて、dRi次の多
項式Ri(X)の各係数は、最上位(dRi次)係数から順
に、A側の各レジスタ1410〜1412tに順に格納さ
れる。
【0125】Ri(X)の0次係数に引き続いてμi(X)の係
数が最下位(0次)の係数から順に格納される。したが
って、A側のレジスタ1410〜1412tでは、上のレ
ジスタレジスタ1410から順にRi(X)の上位係数から
格納され、続いてμi(X)の下位係数から順に格納され
る。
【0126】一方、図29におけるレジスタ1420
1422t+1がQi(X)とλi(X)の係数用のレジスタであ
る。
【0127】各演算ステップにおいて、dQi次の多項
式Qi(X)の各係数が各レジスタ1420〜1422t+1
最上位(dQi次)係数から順に格納される。そして、
i(X)の0次係数に引き続いてλi(X)の係数が最下位
(0次)の係数から順に格納される。
【0128】この場合、dQi+dλi=2tで常に次数
の和が一定であるから、B側のレジスタ1420〜14
2t+1では、上のレジスタ1420から順にQi(X)の係
数が格納され、下から順にλi(X)の係数が格納されるこ
とになる。
【0129】以上述べたように係数格納用のレジスタ1
410〜1412t、1420〜1422t+1を共用すれば、
全体で4t+3個のレジスタ数で構成可能になる。
【0130】そして、初期設定では、R0(X)、Q0(X)、
λ0(X)、μ0(X)の次数であるdR0、dQ0、dλ0、d
μ0の初期値は、各々、2t−1、2t、0、−1と考
える。μ0(X)の次数dμ0の初期値を−1とするのはア
ルゴリズムの便宜上の都合である。
【0131】したがって、R0(X)=S(X)の2t個の係
数(シンドローム)は、レジスタ1410〜1412t-1
に格納され、μ0(X)の次数が便宜的に−1になっている
ので、μ0(X)の係数の個数が0、つまり対応するレジス
タが無いということになり、レジスタ1412tには0を
設定する。
【0132】また、レジスタ1420〜1422tの初期
値は、Q0(X)=X2tであるからレジスタ1420に1、
レジスタ1421〜1422tに0を格納する。また、λ0
(X)=1であるから、レジスタ1422t+1に1を格納す
る。
【0133】また、DR、DQを格納する各レジスタ1
43、144に各々2t−1、2tを格納する。なお、
初期値を設定する回路は構成図の他に別途必要である。
しかし、これは本質的なものではなく簡単な回路である
のでここでは省略する。
【0134】次に、図29を参照しながらこの構成方法
の動作を説明する。まず、初期値が設定された後に、ユ
ークリッドの互除法が1クロックに1ステップずつ順に
行なわれて行く。各レジスタ1410、1411、141
2…1420…1422t+1は各クロックサイクルで演算結
果の値を保持することになる。
【0135】今、第iステップの演算を考えてみる。ま
ず、各レジスタ143、144に格納されているDR
i-1、DQi-1の値は動作モード判断制御回路145で比
較され、DRi-1<DQi-1で、かつ、0検出回路147
からRi-1(X)の最上位係数が格納されているレジスタ1
410が0の状態が知らされた場合にはクロスモード、
その他の場合にはノーマルモードであることを認識す
る。
【0136】そして、モードが決定すると、DIVブロ
ック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を出力する。
【0137】一方、MLTブロック132の各演算ユニ
ット1351〜1352t+1ではDIVブロック131で
判定された動作モードに応じて演算が行なわれる。演算
する係数の格納されているレジスタ1411〜14
2t、1421〜1422t+1のレジスタ番号(添字)が
jのレジスタに対して、番号jの演算ユニットが次の表
に従って演算を行なう。
【0138】テーブル2−1 クロスモードの演算表
【表5】
【0139】テーブル2−2 ノーマルモードの演算表
【表6】
【0140】テーブル2−3 シフトモードの演算表
【表7】
【0141】そして、演算されたA'、B'は、各々、次
のレジスタに格納され、改訂ユークリッドの互除法にお
ける1ステップの演算が終了する。この演算手順を2t
回繰り返すことにより、誤り位置多項式σ(X)、誤り評
価多項式ω(X)を求めることができる。
【0142】また、通常、改訂ユークリッドの互除法に
よるアルゴリズムでは、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)の多
項式は逆転して格納されている。
【0143】このため、Ri-1(X)とλi-1(X)に対して同
一の演算を行なうためには、逆転して格納されているλ
i-1(X)の係数を元に戻して演算を行ない結果を再び反転
して格納すれば良いことになる。
【0144】したがって、Ri-1(X)とQi-1(X)との演算
は、クロスモード、ノーマルモードいずれも次数の少な
い方の係数の数だけ演算を行なえば良い。さらに、R
i-1(X)とQi-1(X)の係数が隣合っていないレジスタでは
演算の必要がない。λi-1(X)とμi-1(X)についても同様
である。
【0145】例えば、クロスモードの場合には、dR
i-1<dQi-1であるから、レジスタ番号jが0<j≦d
i-1の場合にのみ、Ri-1(X)とQi-1(X)との演算が行
なわれる。
【0146】また、dRi-1<j≦dQi-1の場合には、
A側のレジスタ1410〜1412tにはRi-1(X)の係数
が格納されているが、B側のレジスタ1420〜142
2t+1にはλi-1(X)の係数が格納されている。この場合に
は、レジスタに格納されている係数に対して演算を行な
う必要が無く、格納されている係数を入れ換えれるだけ
で良いことになる。
【0147】さらに、各レジスタ1410〜1412t
1420〜1422t+1のうち、dQi- 1<jのレジスタで
はA側にμi-1(X)、B側にはλi-1(X)が格納されてい
る。そこで、A側のレジスタと、B側のレジスタの値を
反転してdRi-1(X)とdQi-1(X)と同一の演算を行ない
結果を再び反転して格納すれば良いことになる。
【0148】以上のことから1ステップあたりの演算回
数が常に2t回になり、この構成方法Dで示す2t+1
個の演算ユニットで実現できることになる。
【0149】なお、シフトモードは演算を行なう必要が
ないが、このシフトモードをノーマルモードで有限体割
算器146からの出力Sが0である場合と同一の処理を
行なうことも可能である。
【0150】例えば、次の表にしたがって処理すること
も可能である。 テーブル3−1 クロスモードの演算表
【表8】
【0151】テーブル3−2 ノーマルモード・シフト
モードの演算表
【表9】
【0152】次に、演算ユニット1351〜1352t+1
の具体的な構成であるが、これは既に述べたテーブル3
−1、3−2の演算表に示した6種類の演算が最低限実
行できるならどのような構成でも良い。
【0153】例えば、上述したように図30の構成方法
で実現できる。この構成は3つの切替器136〜138
と、1つの乗算器139と、1つの加算器140とで構
成されており、各切替器136〜138の制御を次表の
ように行なえば、必要な演算を実行できる。なお、この
切替方法以外の制御方法でも同様の演算が実現できる。
【0154】テーブル4 切替器の制御方法
【表10】
【0155】上の表で、切替器137、136について
normalと書いてあるのは切替器をI−I'側に切替える
ことを示し、crossと書いてあるのは切替器をH−H'側
に切替えることを示す。また、切替器8についてthroug
hと書いてあるのは、切替器8をI側に切替えることを
示し、clearと書いてあるのは、切替器8をH側の0が
入力される方に切替えられることを意味する。
【0156】この図30に示す構成方法による演算ユニ
ット1351〜1352t1を図29の構成に用いた場合の
動作例を図31〜図35に示す。ここで上げるのは、既
に述べた規約多項式g(X)=X4+X+1を用いて定義さ
れる有限体GF(24)を用いてt=2シンボル誤り訂
正を行なった動作例と同一のものである。なお、図31
に示すレジスタ1410〜1414、1420〜1425
143、144は全て初期設定が行なわれているものと
する。
【0157】そして、図31に示す如く第1ステップで
は、レジスタ143に格納されているDRの値(d
0)が133でレジスタ144に格納されているDQ
の値(dQ)が4でDR<DQの条件を満たしており、
また、レジスタ1410に格納されているR0(X)のdR0
次の係数がα8と非零であるため、動作モードがクロス
モードであることが認識される。そこで、有限体割算器
146の入力側にある切替器148がクロス側に切替え
られて1/α8なる演算が行なわれ、割算結果S=α7
各演算ユニット1351〜1355に対して出力される。
【0158】このように、図31ではクロスモードの処
理を行なうことになる。
【0159】したがって、MLTブロック132の各演
算ユニット1351〜1355においては、先に述べたテ
ーブル2−1のクロスモードの演算表に基づいて演算が
行なわれる。
【0160】そして、テーブル2−1によれば、レジス
タ番号jのレジスタ141j、142jのデータに対する
演算は、0<j≦dRi-1、dRi-1<j≦dQi-1、d
i-1<jの3つの場合に分かれる。
【0161】例えば、図31の第1ステップの演算で
は、dR0=3、dQ0=4であるから、レジスタ番号1
〜3に対する演算ユニット1351〜1353はA'=A
×S+B、B'=Aの演算を行なう。このためには、切
替器137がcross(クロス)、切替器138がthrough
(スルー)、切替器136がnormal(ノーマル)とす
る。
【0162】また、レジスタ番号4に対する演算ユニッ
ト1354は、A'=B、B'=Aの演算が必要であるか
ら、切替器137がクロス、切替器138がクリア、切
替器136がノーマルとする。
【0163】また、残りのレジスタ番号5、6に対する
演算ユニット1355、1356は、A'=B、B'=B×
S+Aの演算が必要であるから、切替器137がノーマ
ル、切替器138がスルー、切替器136がクロスとな
る。
【0164】以上述べた第1ステップにおける各演算ユ
ニット1351〜1355にある切替器136〜138の
動作は図31で示したものになる。演算された結果は、
次のクロックサイクルでは図32に示すように各レジス
タ1410〜1414、1420〜1425に格納される。
【0165】従来の構成方法Cによる結果を示す図25
と、この構成方法Dによる図32とを比べてみると、構
成方法Cによる図25ではλ1(X)、μ1(X)の係数が各々
i(X)、Qi(X)の後ろに上位係数から順に格納されてい
るのに対して、この構成方法Dによる図32ではλ
i(X)、μi(X)の格納場所が逆転され、下位係数から順に
格納されている。このため、図32では本来不要な値で
ある係数の値が0である係数を格納せずに済むため無駄
な演算の必要がなくなり、結果として演算器の数が大幅
に削減されていることが判る。
【0166】また、図32に示す第2ステップの演算で
は、レジスタ143に格納されているDRの値(d
i)が3でレジスタ144に格納されているDQの値
(dQi)が3でDR≧DQであるため、動作モードが
ノーマルモードの演算を指示していることが認識され
る。そこで、有限体割算器146の入力側に設けられて
いる切替器148がノーマル側に切替えられてα2/α8
なる演算が行なわれ、割算結果S=α9が各演算ユニッ
ト1351〜1355に対して出力される。
【0167】これによって、図32ではノーマルモード
の処理を行なうことになる。したがって、演算はテーブ
ル2−2のノーマルモードの演算表に基づいて行なわれ
る。
【0168】また、図32に示す第2ステップの演算で
は、レジスタ番号1〜3に対応する演算ユニット135
1〜1353はA'=B×S+A、B'=Bの演算を行な
う。このためには、切替器137がノーマル、切替器1
38がスルー、切替器136がノーマルとする。
【0169】また、残りのレジスタ番号4、5のレジス
タ1414、1424、1425に対する演算ユニット1
354、1355は、A'=A、B'=A×S+Bの演算が
必要であるから、切替器137がクロス、切替器138
がスルー、切替器136がクロスとなる。
【0170】以上述べた第2ステップにおける各演算ユ
ニット1351〜1355にある切替器136〜138の
動作は図32で示したものになる。演算された結果は、
次のクロックサイクルでは図33に示すように各レジス
タ1410〜1414、1420〜1425に格納される。
【0171】結局、図31以下、第1、3ステップがク
ロスモード、第2、4ステップがノーマルモードで演算
が行なわれ最終的に図35においてσ(X)、ω(X)が得ら
れている。ここで、σ(X)の係数が構成方法Cによる図
28で得られている係数と、格納場所と、順序とが共に
逆転して得られていることに注意されたい。
【0172】ここで、図31〜図35の動作に対応する
演算を次表にまとめておく。 [ステップ1] クロスモードdR=3、dQ=4
【表11】 [ステップ2] ノーマルモードdR=3、dQ=3
【表12】 [ステップ3] クロスモードdR=2、dQ=3
【表13】 [ステップ4] ノーマルモードdR=2、dQ=2
【表14】
【0173】以上述べたように、この構成方法Dでは、
構成方法Cと同じ演算を各ステップで行なっているにも
拘らず、各多項式の係数の格納方法と演算ユニット13
1〜1352t+1の構成方法を工夫したことにより、多
項式の係数を格納するためのレジスタ数と各演算ステッ
プにおける演算回数を半減できていることが判る。
【0174】また、本構成方法では、ユークリッドの互
除法の各ステップにおいて原理的に必要な最小の演算回
数(乗算回数)2tより1多いだけの2t+1個の演算
ユニット1351〜1352t+1でアルゴリズムを実現す
ることができる。勿論、これは各演算ユニット1351
〜1352t+1をユークリッドの互除法の1ステップの演
算でただ1回しか使用しない場合である。
【0175】また、演算途中に必要な各多項式の係数を
格納するためのレジスタ数が原理的に最小の4t+3個
で実現できる。これは、本構成法では、先に説明した構
成方法Cとは、各多項式の係数の格納方法が全く異なっ
ているためである。
【0176】すなわち、構成方法Cでは、各多項式の係
数を独立に格納するためのレジスタを必要とした。この
ため各多項式が最大次数になっても格納できる数のレジ
スタ数である8t+1個のレジスタ数を用意する必要が
ある。更に、このレジスタ数の増大が演算ユニット数の
増加を招いている。
【0177】これに対し、この構成方法Dでは図29で
示したように、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)の下位係数から順に格納される。
【0178】また、B側のレジスタ1420〜142
2t+1も同様にQi(X)とλi(X)の係数用のレジスタであ
る。各演算ステップにおいて、dQi次の多項式Qi(X)
の最上位(dQi次)係数がレジスタ1420に格納さ
れ、以下順に下位係数が格納される。Qi(X)の0次係数
に引き続いてλi(X)の係数が最下位(0次)の係数が格
納され、以下順に下位係数が格納される。
【0179】このとき、各多項式の次数には、次のよう
な関係式が成り立つ。
【数43】
【0180】したがって、dQiとdλiの和は常に2t
と一定であるから、B側のレジスタ1420〜142
2t+1では、2t+2個のレジスタのみで良く、更に、A
側のレジスタ1410〜1412tはB側より1個少ない
2t+1個のレジスタで良いことになる。
【0181】また、図29に示す構成方法では、ユーク
リッドの互除法における1ステップの演算毎にRi(X)が
上位にシフトする(つまりXが掛けられる)。
【0182】また、この構成方法Dのようにλi(X)、μ
i(X)を逆転して格納すると、μi(X)とλi(X)とは係数が
下位から順に格納されているのでμi(X)がλi(X)に比べ
て下位にシフトすることになり、λi(X)がμi(X)に比べ
て上位にシフトしたのと同一の結果が得られる。このと
き、Ri(X)とλi(X)とに演算器を工夫すると、必要な演
算を施すことが出来るように構成されている。
【0183】また、各演算ユニット1351〜135
2t+1の構成は、図30の構成例では構成方法Cで必要な
演算ユニットに比べ、切替器136、切替器138が付
加されており、若干構成が複雑になっている。しかし、
この増加は僅かなものであり、演算ユニット数と係数格
納用レジスタ数が約半減するため圧倒的な回路規模削減
が実現できる。
【0184】また、演算ユニット1351〜135t+1
体の構成は既に述べた表(テーブル2−1、2−2、2
−3)の演算を行なうことが可能であるならば、どのよ
うな構成でも良い。
【0185】したがって、図30の構成方法の他にも同
一の演算を行なう構成は数多く考えられ、図30の構成
方法に比べて構成を複雑にして高速動作を行う回路構成
も考えられる。
【0186】なお、本構成において各レジスタ1410
〜1412t、1420〜1422t+1、143、144を
初期化するには様々な方法がある。例えば、各レジスタ
1410〜1412t、1420〜1422t+1、143、1
44の入力側にセレクタを設けて、初期値設定時にこれ
らの各セレクタを初期値設定器側に切り替えてこれらの
各初期値設定器に設定されている値(初期値)を各レジ
スタ1410〜1412t、1420〜1422t+1に入力す
ることより、全てのレジスタ1410〜1412t、14
0〜1422t+1、143、144を同時に初期化する
ことが可能である。
【0187】その他に、各々の多項式の最下位のレジス
タ、即ちレジスタ1412t、1422t+1のみに入力用の
セレクタを付けて入力端子とすれば、各々の多項式の初
期値をシリアルに入力することにより順次、初期化する
ことも可能である。
【0188】
【発明が解決しようとする課題】ところで、一般に、誤
り訂正回路を構成する場合には、その用途により要求さ
れる動作速度が異なる。動作速度の遅いマイクロプロセ
ッサ周辺機器等における用途では、誤り訂正回路はある
程度の動作速度を確保した条件下で最小規模の構成方法
が求められる。一方、高速ビデオ信号処理装置等におけ
る用途では、連続的に入力するデータに対する処理が要
求される。
【0189】誤り訂正システムの回路構成の中で最も規
模が大きくなるのが、シンドロームから誤り位置多項式
を求めるプロセスであるが、構成方法A,B,C,Dで
は、何れも、この過程を実現する手段としてユークリッ
ドの互除アルゴリズムを用いている。特に、原理的に優
れている構成方法Dでは、改定ユークリッドの互除法
(2)がその1ステップに当たり必要とする最小の演算
回数2tより僅かに1多いだけの2t+1個の演算器で
アルゴリズムを実現している。
【0190】この構成方法Dでは、1クロックサイクル
の間に1ステップの演算を完了する。従って、2tクロ
ックサイクル後に所望のσ(X)、ω(X)が得られる
ことになる。
【0191】しかし、最も高速処理が要求される連続的
に入力するデータに対する処理を行う場合においても、
シンドロームから誤り位置多項式を求めるプロセスは、
1符号長のデータが入力する時間中に処理を行えば良い
ことになる。通常、符号長nは、2tに対して十分に大
きい。従って、符号長nが十分に長い仕様の誤り訂正シ
ステムに対して構成方法Dの回路をそのまま使用する
と、n−2tクロックサイクルの間は、ユークリッドの
互除法を行う回路が遊んでしまうことになり冗長な回路
構成になる。
【0192】また、連続的に入力しないデータに対する
処理に対しては、ある定められた時間内に終了すれば良
いにも拘らず、構成方法Dのような回路構成で2tクロ
ックサイクルで答を得る必要がなく極めて無駄である。
【0193】以上述べたようなことから、要求された時
間内に少数の演算ユニットを繰り返し使用することによ
り、回路規模を低減する方法が必要になる。
【0194】特に、原理的に最も規模の小さい構成方法
Dを改良して実現することが望ましい。
【0195】本発明は上記の事情に鑑み、多重度を増や
して演算ユニット数を低減させ、これによって回路規模
を大幅に低減させることができるとともに、高速動作を
可能にしてスループットを大幅に向上させることができ
るユークリッドの互除回路を提供することを目的として
いる。
【0196】
【課題を解決するための手段】本発明のユークリッドの
互除回路は、第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ブ
ロック、割算ユニットに供給する制御用ユニットとを備
えたものである。
【0197】
【作用】上記の構成において、判定制御用ユニットによ
って各ステップ毎に予め設定されている値と割算ユニッ
トのレジスタに格納されている値とに基づきノーマル接
続またはクロス接続、シフト接続のいずれかを指定する
切替指令が生成され、さらに割算ユニットによってML
Tブロックの最終段から出力される値が取り込まれると
ともに、切替指令に応じてノーマル接続割算演算、クロ
ス接続割算演算のいずれか一方が行なわれ、この演算結
果が各ステップが終了するまで前記各演算ユニットに供
給されつつ、この動作と並行して各ステップの各クロッ
クサイクル毎にMLTブロックの各演算ユニットによっ
て割算結果およびA側レジスタ群および前記B側レジス
タ群を構成する各レジスタから出力される値が取り込ま
れるとともに、切替指令に応じてノーマル接続演算、ク
ロス接続演算、シフト接続演算のいずれかが行なわれユ
ークリッドの互除演算が行われる。
【0198】
【実施例】本件は、先に提案した構成方法Dを改良する
ことにより、少数の演算ユニットを効率良く繰り返して
使用する方法を与えるものである。
【0199】既に述べたように、改定ユークリッドの互
除法(2)における1ステップの演算においては、R
i-1(X)、Qi-1(X)、μi-1(X)、λi-1(X)の各多項式係数
に対して2t回の演算(乗算)が行われる。
【0201】構成方法Dでは、この2t回の演算を2t
+1個の演算ユニットを使用することにより、1クロッ
クサイクルの間に1ステップの演算が終了するような構
成になっている。つまり、2t+1個の演算ユニット
は、改定ユークリッドの互除法(2)における1ステッ
プの演算に対して、ただ1回の演算を行なっていること
になる。
【0202】規約多項式g(X)=X4+X+1を用いて定
義される有限体GF(24)を用いてt=2シンボル誤り
訂正を行なった場合で、シンドローム多項式S(X)が
【数44】 と求められている場合を考える。この例は既に使用した
例と同一のものである。
【0203】このシンドローム多項式S(X)から改訂ユ
ークリッドの互除法(2)を用いて誤り位置多項式σ
(X)を導出する過程を図29の構成方法Dを用いて実現
した場合には、図31〜図35に示すような動作をする
ことを先の出願で示した。
【0204】図31〜図35の各ステップに対応する演
算は、レジスタ番号iに格納されている係数データに対
して、下記に示すテーブル5−1〜5−4のようにまと
めることが出来る。 [ステップ1] テーブル5−1 クロスモードdR=
3、dQ=4
【表15】 [ステップ2] テーブル5−2 ノーマルモードdR
=3、dQ=3
【表16】 [ステップ3] テーブル5−3 クロスモードdR=
2、dQ=3
【表17】 [ステップ4] テーブル5−4 ノーマルモードdR
=2、dQ=2
【表18】
【0205】そして、これらのテーブル5−1〜5−4
から明らかなように、構成方法Dではレジスタ番号iが
1から2t+1、即ち、1から5の係数に対して5個の
演算ユニット1351〜1355で演算が行われている。
【0206】本件では、改定ユークリッドの互除法
(2)における1ステップの演算において、1つの演算
ユニットを時分割多重化して使用するとにより演算ユニ
ットの数を削減することができるような構成方法を提案
する。
【0207】本構成方法を用いることにより、構成する
誤り訂正システムが要求する速度やスループット等の仕
様に応じて自由に多重度の値を設定することが可能にな
り、設計要求を満たし、かつ、演算ユニット数を最小に
する回路を得ることが出来る。
【0208】[基本原理]まず、原理を説明する。本件
で提案する構成方法は、基本的には構成方法Dに基づい
ている。すなわち、ユークリッドの互除法における1ス
テップ当たり、最小演算回数の2t回より1だけ多い、
2t+1回の演算を各係数に対して行う。
【0209】この1ステップ当たり2t+1回の演算に
対して、構成方法Dが演算ユニット当たり1回の演算し
か行わないのに対して、本構成方法では、各演算ユニッ
トを時分割多重化して使用することにより、演算ユニッ
ト当たりLopt回の演算を時分割多重化して行う。
【0210】1ステップ当たり必要な演算回数は2t+
1回であるから、演算ユニットを多重度Loptの場合に
は、必要な演算ユニット数koptは、kopt=[2t/L
opt]+1となる。ここで、[X]は、Xを越えない最
大の整数を示す。
【0211】このようにすることにより、多重度Lopt
を大きく選ぶと、各演算ユニットが1ステップ当たりに
受け持つ演算回数が増加することになり、演算ユニット
数kop tを小さくすることができる。したがって、演算
クロックサイクル数は増加するが、演算ユニットの数を
削減することが可能になり回路規模が削減できる。
【0212】演算ユニット当たりの多重度Loptは、1
以上、2t以下の任意の数で良いが、Lopt=1の場合
は、構成方法Dによる構成方法と演算ユニット数が同一
になるため、ここではLopt≧2という多重度が2以上
の場合について述べる。
【0213】提案する構成方法の概念的な構成図を、図
1に示す。
【0214】この図に示す回路の基本構成は、構成方法
Dと同様にDIVブロック1と、MLTブロック2との
2つの部分から成っている。DIVブロック1は構成図
中ただ1つ存在する最上位係数の割算ユニット3と、d
i,dQiを格納し、その大小関係と、Ri(X)のdRi
次の係数の0検出とを行ない各演算ユニット91〜9Ko
ptおよび各切替器171〜17Koptの動作モードを制御
する信号を発生する判定・制御用ユニット4から成る。
【0215】DIVブロック1におけるDR用のレジス
タ5、DQ用のレジスタ6に格納される値は、A側のレ
ジスタ70,B側のレジスタ80に格納されている多項式
i(X)とQi(X)の係数の次数を表しており、クロスモー
ド・ノーマルモード(後述)の実際に演算が行われる時
には、Ri(X),Qi(X)の次数を表すことになる。
【0216】DIVブロック1の判定・制御用ユニット
4では、DR用のレジスタ5、DQ用のレジスタ6の比
較結果と、レジスタ70の0検出結果とから動作モード
を判定し、この判定結果と、DR用のレジスタ5の値か
らMLTブロック2の各演算ユニット91〜9Koptを独
立に制御する。
【0217】MLTブロック2は、乗加算器や切換器等
から成る演算ユニット91〜9Koptと、切替器171〜1
Koptと、係数格納用のレジスタ71〜72t、81〜8
2t+1とで構成される。システム全体では、kopt個の演
算ユニットを使用する。
【0218】演算を行なう各多項式の係数の格納方法
は、構成方法Dと同一である。即ち、Qi(X)とλi(X)の
係数の格納場所と、Ri(X)とμi(X)の係数の格納場所を
各々共用する。
【0219】本構成でtシンボル誤り訂正可能なシステ
ムを実現するには、Ri(X),Qi(X)、μi(X)、λi(X)の
各多項式係数を格納するためレジスタが必要になる。
【0220】図1中に示すレジスタ70〜72t、80〜8
2t+1のうち、図中の左側にあるレジスタ70〜72tをA
側のレジスタと呼び、右側のレジスタ80〜82t+1をB
側のレジスタと呼ぶことにする。DIVブロック1、M
LTブロック2を合わせるとA側のレジスタは、全部で
2t+1個、B側のレジスタは全部で2t+2個の合計
4t+3個を用意する。
【0221】これは、構成方法Dと同じである。改訂ユ
ークリッドの互除法(2)の各ステップにおける演算に
おいては、
【数45】 なる関係が成立している。これは、Qi(X)とλi(X)の次
数の和が常に2tであることを示している。したがっ
て、Qi(X)の次数が減少するにつれてλi(X)の次数が増
大したとしても、各々の多項式の係数を格納すべきレジ
スタの数の和は常に2t+2であることを示しているこ
とになる。同様に、Ri(X)とμi(X)の次数の和も2t−
1以下であるため、係数を格納すべきレジスタ数の和
は、最大でも2t+1で良いことを示している。
【0222】図1におけるレジスタ70〜72tがRi(X)
とμi(X)の係数用のレジスタである。 改訂ユークリッ
ドの互除法(2)の各演算ステップにおいて、dRi
の多項式Ri(X)の各係数は、最上位(dRi次)係数か
ら順に、レジスタ70、71、72、…に順に格納され
る。
【0223】Ri(X)の0次係数に引き続いてμi(X)の係
数が最下位(0次)の係数から順に格納される。したが
って、A側のレジスタでは、上のレジスタ70〜72t
ら順にRi(X)の上位係数から格納され、続いてμi(X)の
下位係数から順に格納される。
【0224】一方、図1におけるレジスタ80〜82t+1
がQi(X)とλi(X)の係数用のレジスタである。
【0225】各演算ステップにおいて、dQi次の多項
式Qi(X)の各係数がレジスタ80、81、82、…に最上
位(dQi次)係数から順に格納される。
【0226】Qi(X)の0次係数に引き続いてλi(X)の係
数が最下位(0次)の係数から順に格納される。dQi
+dλi=2tで常に次数の和が一定であるから、B側
のレジスタでは、上のレジスタ80〜82t+1から順にQi
(X)の係数が格納され、下から順にλi(X)の係数が格納
されることになる。
【0227】一方の演算ユニット91〜9Koptは、Lopt
組のレジスタに対して1個の割合で合計kopt個を配置
する。これらの各演算ユニット91〜9Koptは、表15
〜18のテーブル5−1〜5−4で示した各ステップに
必要な2t+1回の演算をLop t回づつ担当する。
【0228】具体的には、演算器番号1の演算ユニット
1は、レジスタ番号1〜Loptのレジスタ71
Lopt、81〜8Loptに格納されている係数組に対する
演算を改訂ユークリッドの互除法(2)における1ステ
ップ当たりLoptクロックサイクルかけて実行する。
【0229】つまり、1ステップの演算に対して1、2
…Loptクロックサイクル目でレジスタ番号1、2…Lo
ptのレジスタ71〜7Lopt、81〜8Loptに格納されてい
る係数組に対する演算を行う。
【0230】同様に、演算器番号2の演算ユニット92
は1、2…Loptクロックサイクル目でレジスタ番号L
opt+1、Lopt+2…2・Loptのレジスタ7Lopt+1〜7
2・Lopt、8Lopt+1〜82・Loptに格納されている係数組に
対して演算を行う。
【0231】このような演算ユニット91〜9koptをレ
ジスタ70〜72t、80〜82t+1と組み合わせて縦続接続
することにより、システム全体として1ステップ当たり
2t+1回の演算をLoptクロックサイクルかけて行う
ことができる。
【0232】なお、係数格納用のレジスタ70〜72t
0〜82t+1はシステム全体で2・Lopt・kopt+1個
になる。
【0233】このため、多重度Loptの選び方により本
来必要なレジスタ数4t+3よりも若干増加する場合が
ある。しかし、この場合には最後の演算ユニット9Kopt
が受け持つレジスタ82t+1の値が常に0になり、演算が
不要になる。したがって、最後の演算ユニット9Kopt
レジスタ制御方法を若干変更することにより、本来必要
な最小レジスタ数4t+3にすることが可能である。
【0234】[初期設定]初期設定を説明する。R
0(X)、Q0(X)、λ0(X)、μ0(X)の次数であるdR0、d
0、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を設定する。
【0235】レジスタ80…82tの初期値は、Q0(X)=
2tでありからレジスタ80を1、レジスタ81〜82t
0とする。また、λ0(X)=1であるから、レジスタ8
2t+1を1とする。
【0236】dRi、dQiを格納するDR用のレジスタ
5、DQ用のレジスタ6は、各々、Ri(X)、Qi(X)の次
数である2t−1、2tとする。
【0237】なお、初期値を設定する回路は構成図の他
に別途必要である。しかし、これは本質的なものではな
く簡単な回路であるのでここでは省略する。
【0238】[動作]次に動作を説明する。初期値が設
定された後に、改訂ユークリッドの互除法(2)の1ス
テップの演算に対して多重度Loptクロックのサイクル
数をかけて演算を行なう。全部で2tステップの演算を
行うわけであるから、合計で2t・koptクロックサイ
クルを費やして演算することになる。
【0239】レジスタ番号1〜Loptのレジスタ71〜7
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に格納されている係数組が演算
される。各ステップにおける演算の順序は番号の若いレ
ジスタに格納されている係数から順に演算されるものと
する。
【0240】第iステップにおいては、レジスタ70
2t、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に格納さ
れる。
【0241】このとき、先ず、レジスタDR、DQの値
が動作モード判断制御回路10で比較される。一方、R
i-1(X)のDR次の係数(A0)が格納されているレジス
タ70の0検出が0検出回路11で行われる。
【0242】動作モード判断制御回路10では、DR<
DQ、A0≠0の時にクロスモード、DR≧DQ場合に
はノーマルモードであると認識する。DR<DQ、A0
=0の場合にはDR用のレジスタ5がRi-1(X)の次数を
示していないことになり、クロスモードの演算は行うこ
とができないので、シフトモードになる。本構成方法に
おいては、Loptクロックサイクルの間、決定した動作
モードが保持される。
【0243】動作モードが決定されると、DIVブロッ
ク1にある2つの切換器12、13が動作モードに応じ
てクロスまたはノーマルに切り替わる。レジスタ70
値、すなわち、Ri-1(X)の最上位(dRi-1次)の係数
と、レジスタ80の値、すなわち、Qi-1(X)の最上位
(dQi-1次)の係数が切換器13を通って割算器14
に入力される。割算器14では、図中のF、Gの入力に
対してF/Gの割算を行い、その結果Sを出力する。
【0244】レジスタ15では、Sの値を1ステップの
演算時間であるLoptクロックサイクルの間にわたり保
持する。
【0245】一方、MLTブロック2の各演算ユニット
1〜9KoptではDIVブロック1で判定された動作モ
ードに従って演算が行なわれる。行われる演算方法自体
は、構成方法Dと同一であるが、本構成方法では全ての
レジスタ70〜72t、80〜82t +1に格納されている係数
組に対する演算を1ステップに対して1クロックサイク
ルではなく、Loptクロックサイクルで行う。したがっ
て、本構成方法においては、Loptクロックサイクルが
経過したときに初めて構成方法Dにおける1クロックサ
イクル(つまり1ステップ)終了時と同じ値が各レジス
タ70〜72t、80〜82t +1に格納されることになる。
【0246】演算ユニット91〜9Koptの入力側をA−
B、出力側をA’−B’とすると、第iステップの演算
においてレジスタ番号がjのレジスタ7j、8jに格納さ
れている係数に対して、次に示すテーブル6−1〜6−
3に従って演算が行われる。これは、構成方法Dと同じ
ものである。 テーブル6−1 クロスモードの演算表
【表19】 テーブル6−2 ノーマルモードの演算表
【表20】 テーブル6−3 シフトモードの演算表
【表21】
【0247】1ステップの演算に対してテーブル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に格納されている係
数に対して演算を行なう。
【0248】演算は番号の若いレジスタに格納されてい
る係数から順に、Loptクロックサイクルで行われる。
例えば、演算ユニット91では、各ステップの第1クロ
ックサイクルでレジスタ番号1のレジスタ71、81に格
納されている係数を演算する。以下、第2、第3…L
optクロックでレジスタ番号2、3…Loptのレジスタ7
2、73…7Lopt、82、83…8Loptに格納されている係
数の演算を行なう。
【0249】各レジスタ70〜72t、80〜82t+1に格納
されている係数はクロックサイクル毎に番号の若い方の
レジスタにシフトされて行く。そして、各クロックサイ
クルにおける演算は演算ユニット91〜9Koptの受け持
つ最上位のレジスタ71、…7(K-1)・Lopt+1、81…8
(K-1)・Lopt+1に格納されている係数に対して実行され
る。
【0250】演算ユニット91〜9KoptのA側から出力
される演算結果は第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はこれ
を制御するための切換器である。
【0251】一方、演算ユニット91〜9KoptのB側か
ら出力される演算結果はレジスタ8L opt、82・Lopt…8
2t+1に格納され、順にシフトされて行く。
【0252】レジスタ70およびレジスタ80は第1クロ
ックサイクルの演算結果を格納し、その値を2〜Lopt
クロックサイクルの間、保持する。
【0253】また、演算ユニット91〜9Kopt間の接続
部に配置されているレジスタ7Lopt、72・Lopt、7
3・Lopt、…も第1クロックサイクルのみ演算ユニット9
2〜9Koptから出力される演算結果を格納し、その値を
2〜Loptクロックサイクルの間、保持する。
【0254】演算ユニット92〜9Koptについても同じ
動作を行なう、1クロックサイクル毎に演算ユニット9
2〜9Koptは演算ユニット番号K、演算するレジスタ番
号L、レジスタDRの値、動作モード等のパラメータか
らテーブル6−1〜6−3を用いて実行する演算を決定
する。
【0255】この演算方法と各レジスタレジスタ70
2t、80〜82t+1への格納方法を用いると、1ステッ
プの演算が終了するLoptクロックサイクル後には、構
成方法Dにおける1ステップの演算終了後のレジスタの
値に一致する。
【0256】Loptクロックサイクルで1ステップの演
算を終わらせる手順を2t回、繰り返すことにより、所
望のσ(X)、ω(X)を求めることができる。演算ユニット
1〜9Koptの構成は構成方法Dと同じで良く、図2に
示す如く3つの切替器20〜22と、1つの乗算器25
と、1つの加算器26とで実現できる。
【0257】演算ユニット91〜9Koptの詳細な構成方
法、シフトモードの演算、レジスタへの格納方法などに
関する議論は構成方法Dで述べたのと全く同一に適用で
きる。
【0258】図2の構成方法による演算ユニット91
Koptを図1の構成に用いた場合の動作例を図3〜図1
5に示す。ここで使用するのは、すでに述べた規約多項
式g(X)=X4+X+1を用いて定義される有限体GF
(24)を用いてt=2シンボル誤り訂正を行なった動
作例と同一のものである。
【0259】この動作例では、多重度Loptを3に設定
しているので、1ステップの演算に対して3クロックサ
イクルをかけることにより、2t・Lopt=12クロッ
クサイクルで2t=4ステップの演算が完了することに
なる。
【0260】演算ユニット数Koptは、
【数46】 となり、2個の演算ユニット91、92を用いて演算を行
なうことになる。したがって、演算器番号1の演算ユニ
ット91が、レジスタ番号1〜3のレジスタ71〜73
1〜83における演算を受け持ち、演算器番号2の演算
ユニット92が、レジスタ番号4〜6のレジスタ74、7
5、84〜86における演算を受け持つことになる。
【0261】なお、図3に示すレジスタ70〜75、80
〜86は全て初期設定が行われているものとする。
【0262】図3〜図5に示される第1ステップでは、
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に格納
される。
【0263】第1ステップの動作モードがクロスモード
であることが分かると、動作モードとレジスタ15に格
納されている割算結果Sが第1ステップの演算が行われ
るLopt=3クロックサイクルの間、保持される。
【0264】クロックモードの演算はテーブル6−1に
よれば、レジスタ番号jのレジスタのデータに対する演
算は、0<j≦dRi-1、dRi-1<j≦dQi-1、dQ
i-1<jの3つの場合に分けられる。
【0265】図3〜図5で示される第1ステップの演算
では、dR0=3、dQ0=4であるから、レジスタ番号
1〜3のレジスタ71〜73、81〜83に対しては、A’
=A×S+B、B’=Aの演算を行なう。このために
は、演算ユニット91の切替器20がクロス、切替器2
1がノーマル、切替器22がスルーとする。
【0266】また、レジスタ番号4のレジスタ74、84
に対しては、A’=B、B’=Aなる演算を行なうの
で、演算ユニット92の切替器20がクロス、切替器2
1がノーマル、切替器22がクリアとする。
【0267】残りのレジスタ番号5〜6のレジスタ
5、85、86に対する演算はA’=B、B’=B×S
+Aの演算が必要であるから、演算ユニット92の切替
器20がノーマル、切替器21がクロス、切替器22が
スルーとなる。
【0268】図3で示される第1ステップ、第1クロッ
クサイクルでは、演算ユニット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がク
リアとする。
【0269】各演算ユニット91、92に対する各切替器
171、172の動作は図3で示したものとなる。
【0270】図3は第1クロックサイクルであるから、
切替器171、172がシフト側に切り替えられる。演算
ユニット91、92の出力端子A’から出力される演算結
果は各々、レジスタ70、73に格納され、続く3クロッ
クサイクルにわたって保持される。同様に、レジスタ8
0はレジスタ70の値を格納し、続く3クロックサイクル
の間、保持される。
【0271】一方、演算ユニット91、92の出力端子
B’から出力される演算結果は83、86に格納され、毎
クロックサイクル、シフトされる。演算された結果は図
4で示されるように各レジスタ70〜75、80〜86に格
納される。
【0272】図3の演算結果である図4のレジスタの状
態は、第1ステップの演算のうち、レジスタ番号1のレ
ジスタ71、81と、レジスタ番号4のレジスタ74、84
に対する演算が終了したに過ぎない。
【0273】続く図4に行われる演算、すなわち第1ス
テップ、第2クロックサイクルでは、演算ユニット
1、92において、レジスタ番号2のレジスタ72、82
と、レジスタ番号5のレジスタ75、85に格納されてい
た係数に対して演算を行なう。
【0274】したがって、演算ユニット91では、第1
クロックサイクルと同様にA’=A×S+B、B’=A
なる演算を行なうために、切替器20がクロス、切替器
21がノーマル、切替器22がスルーとし、演算ユニッ
ト92では、A’=B、B’=B×S+Aなる演算を行
なうために、切替器20がノーマル、切替器21がクロ
ス、切替器22がスルーとする。
【0275】図4は第1クロックサイクルでないから、
切替器171、172がループ側に切り替えられる。演算
ユニット91、92の出力端子A’から出力される演算結
果は各々、レジスタ72、75に格納され、毎クロックサ
イクル、シフトされる。
【0276】また、演算ユニット91、92の出力端子
B’から出力される演算結果は第1クロックサイクルと
同様に、83、86に格納され、毎クロックサイクル、シ
フトされる。
【0277】演算された結果は、図5で示されるように
各レジスタ70〜75、80〜86に格納される。
【0278】図4の演算結果である図5のレジスタ70
〜75、80〜86の状態は、第1ステップの演算のう
ち、レジスタ番号1、2、4、5のレジスタ71、72
4、75、81、82、84、85に対する演算が終了した
ものである。
【0279】図5に行われる演算は第1ステップ、第3
クロックサイクルの演算である。これは、第1ステップ
の最終クロックサイクルである。演算ユニット91にお
いては、レジスタ番号3のレジスタ73、83に格納され
ている係数に対して演算を行なう。したがって、演算ユ
ニット91では、第1、第2クロックサイクルと同様に
A’=A×S+B、B’=Aなる演算を行なうために、
切替器20がクロス、切替器21がノーマル、切替器2
2がスルーとして演算を行なう。
【0280】図5も第1クロックサイクルでないから、
切替器171、172がループ側に切り替えられるため、
演算結果がレジスタ72、75に格納される。
【0281】一方、レジスタ番号6のレジスタ86
は、本来演算の必要がない0が格納されているため、演
算しなくても良い。したがって、演算ユニット92
は、単に、A’=A、B’=Bとすれば良く、切替器2
0がノーマル、切替器21がノーマル、切替器22がク
リアとすれば良い。この便宜的に挿入されているレジス
タ番号6に格納されている0はレジスタ75に格納され
る。
【0282】図5の演算結果を示す図6のレジスタ70
〜75、80〜86の状態になって初めて第1ステップの
演算が終了することになる。構成方法Dにおける第1ス
テップ終了後の状態である図32とを比較して見ると、
各レジスタが同じ値になっていることが分かる。
【0283】構成方法Dでは、1クロックサイクル毎に
A側のレジスタ1410〜1414の値が上位に1回シフ
トして行くのに対し、本構成方法では、Lopt=3クロ
ックサイクルで初めてA側のレジスタ70〜75が1回シ
フトしていることに注意されたい。
【0284】次の図6〜図8で第2ステップの演算が行
われる。このステップでは、DR用のレジスタ5の値
(dR1)が3で、DQ用のレジスタ6の値(dQ1)が
3で、DR≧DQであるため、動作モードがノーマルモ
ードの演算を行なうことが認識される。そこで、割算器
14の入力部の切替器13がノーマル側に切り替えられ
てα2/α8なる演算が行われ、割算結果S=α9が各演
算ユニット91、92に対し出力される。
【0285】図6〜図8では、ノーマルモードの処理を
行なうことになる。したがって、演算はテーブル6−2
のノーマルモードの演算表に基づいて行われる。
【0286】図6〜図8に示す第2ステップの演算で
は、レジスタ番号1〜3のレジスタ71〜73、81〜83
に対してA’=B×S+A、B’=Bの演算を行なう。
このためには、演算ユニット91の切替器20がノーマ
ル、切替器21がノーマル、切替器22がスルーとす
る。
【0287】残りのレジスタ番号4〜6のレジスタ74
〜75、84〜86に対する演算ユニット92は、A’=
A、B’=A×S+Bの演算が必要であるから、切替器
20がクロス、切替器21がクロス、切替器22がスル
ーとなる。
【0288】第2ステップにおける各レジスタ70
5、80〜86に対する演算も3クロックサイクルに分
けられて演算される。すなわち、演算ユニット91では
レジスタ番号1、2、3のレジスタレジスタ71〜73
1〜83に格納されている係数が各クロックサイクルで
順に演算され、演算ユニット92ではレジスタ番号4、
5、6のレジスタ74〜75、84〜86に格納されている
が各クロックサイクルで順に演算される。
【0289】図9が第2ステップの演算終了後における
各レジスタ70〜75、80〜86の値を示している。図3
3に示される構成方法Dによる第2ステップ終了後のレ
ジスタの値と一致していることが確かめられる。
【0290】結局、図9以下、図9〜図11で示される
第3ステップがクロスモード、図12〜図14で示され
る第4ステップがノーマルモードで演算が行われる。最
終的に、図15においてσ(X)、ω(X)が得られて
いる。ここで、求められているσ(X)、ω(X)の係
数は構成方法Dによる図35で得られている係数と同一
であることに注意されたい。
【0291】以上述べたように、今回提案する構成方法
では、構成方法Dと全く同じ演算を行なうものである
が、1ステップの演算に対して演算ユニット91〜9
Koptを多重度Loptで時分割多重化して繰り返し使用す
ることにより、構成方法Dより少ない数の演算ユニット
数kopt=[2t/Kopt]+1で演算を行なっているこ
とが分かる。この代償として、1ステップの演算に費や
すクロックサイクル数がLoptに増加している。
【0292】[実施例の効果]本構成方法は、ユークリ
ッドの互除法の各ステップにおいて、原理的に必要な最
小の演算回数(乗算回数)2tより1多いだけの2t+
1個の演算回数でアルゴリズムを実現しているのは構成
方法Dと同じである。しかし、1ステップの演算に対し
て演算ユニットを多重度Loptで時分割多重化して繰り
返し使用することにより、構成方法Dより少ない数の演
算ユニット数kopt=[2t/Kopt]+1で演算を行な
っている。
【0293】先に示した実施例では、多重度Lopt=3
の例であったが、この多重度Loptを多くすると、演算
ユニット数Loptを減少させることができる。例えば、
この実施例の場合、多重度Loptを変化させたときの演
算ユニット数koptは次に示すテーブル7のようにな
る。
【0294】テーブル7 多重度と演算ユニット数
【表22】
【0295】この表を見ると分かるとおり、多重度L
optを増やすと、演算ユニット数koptが減少する。レジ
スタの数が常に4t+3と同じであることから、多重度
optを増加するほど、回路規模を削減することができ
る。本構成方法によれば、誤り訂正システムに要求され
る仕様から最適な多重度Loptを設定することにより、
回路規模を劇的に削減することが可能になる。
【0296】また、上の表において、多重度3の場合
と、多重度4の場合とで、演算ユニット数koptが同じ
であるが、このような場合には、多重度Loptが少ない
方が演算クロックサイクル数が少なくなり、その分だけ
有利になるため、多重度Loptを3に設定した方が同じ
演算ユニット数koptで、かつ少ないクロックサイクル
数で演算を行なうことができる。
【0297】また、実施例の説明でも、述べているが、
本実施例では、レジスタの数が本来、必要な4t+3=
11より2多いレジスタ70〜75、80〜86を使用して
いるが、これは演算を分かり易く説明するための便宜的
なものである。実際には、レジスタ番号6のレジスタ8
6には0が格納されているため、演算を行なう必要がな
い。したがって、演算ユニット92の制御方法を若干変
更することにより、簡単に、かつ動作原理から得られる
最小個数である4t+3個のレジスタで回路を構成する
ことができる。
【0298】なお、本構成において、各々のレジスタ7
0〜72t、80〜82t+1を初期化するには様々な方法があ
るが、構成方法Dと同様な議論が成立する。つまり、各
レジスタ70〜72t、80〜82t+1の入力にセレクタを設
けて実現すれば、全てのレジスタ70〜72t、80〜8
2t+1を同時に初期化することが可能である、一方、各々
の多項式の最下位のレジスタ、すなわちレジスタ72t
2t+1のみに入力用のセレクタを付けて入力端子とすれ
ば、各々の多項式の初期値をシリアルに入力することに
より順次、初期化することも可能である。
【0299】更に、実施例を考察して見ると、割算器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ステップの動作モ
ード判定と、割算とを開始して良いことになる。
【0300】一般には、多重度Loptに対し、Lopt−1
クロックサイクルを動作モード判定と、割算とに費やし
ても良いことになる。
【0301】通常、割算の速度は乗算や加算の速度に比
べて遥かに遅いため、構成方法Dでは、動作速度が割算
の速度に律速されてしまい、高速で動作させることがで
きないという欠点がある。
【0302】これに対し、本構成方法では、割算器14
の速度に見合った適当な多重度Lop tを設定することに
より、遅い割算器を使用した場合でも、演算ユニット9
1〜9Koptを効率良く使用することができるようにな
る。
【0303】 したがって、本構成方法を用いることに
より、遅い割算器14を使用してもシステム全体として
は高速に動作させることが可能になる。
【0304】
【発明の効果】以上説明したように本発明によれば、多
重度を増やして演算ユニット数を低減させ、これによっ
て回路規模を大幅に低減させることができるとともに、
高速動作を可能にしてスループットを大幅に向上させる
ことができる
【図面の簡単な説明】
【図1】本発明によるユークリッド互除回路の一実施例
を示すブロック図である。
【図2】図1に示す各演算ユニットの詳細な構成例を示
す回路図である。
【図3】図1に示すユークリッド互除回路の動作例を示
す模式図である。
【図4】図1に示すユークリッド互除回路の動作例を示
す模式図である。
【図5】図1に示すユークリッド互除回路の動作例を示
す模式図である。
【図6】図1に示すユークリッド互除回路の動作例を示
す模式図である。
【図7】図1に示すユークリッド互除回路の動作例を示
す模式図である。
【図8】図1に示すユークリッド互除回路の動作例を示
す模式図である。
【図9】図1に示すユークリッド互除回路の動作例を示
す模式図である。
【図10】図1に示すユークリッド互除回路の動作例を
示す模式図である。
【図11】図1に示すユークリッド互除回路の動作例を
示す模式図である。
【図12】図1に示すユークリッド互除回路の動作例を
示す模式図である。
【図13】図1に示すユークリッド互除回路の動作例を
示す模式図である。
【図14】図1に示すユークリッド互除回路の動作例を
示す模式図である。
【図15】図1に示すユークリッド互除回路の動作例を
示す模式図である。
【図16】従来から知られているユークリッドの互除回
路で使用される互除ユニットの一例を示すブロック図で
ある。
【図17】従来から知られているユークリッドの互除回
路の一例を示すブロック図である。
【図18】図17に示すユークリッドの互除回路の動作
例を示す模式図である。
【図19】図17に示すユークリッドの互除回路の動作
例を示す模式図である。
【図20】図17に示すユークリッドの互除回路の動作
例を示す模式図である。
【図21】図17に示すユークリッドの互除回路の動作
例を示す模式図である。
【図22】従来から知られているユークリッドの互除回
路の他の一例を示すブロック図である。
【図23】すでに提案しているユークリッドの互除回路
の一実施例を示すブロック図である。
【図24】図23に示すユークリッドの互除回路の動作
例を示す模式図である。
【図25】図23に示すユークリッドの互除回路の動作
例を示す模式図である。
【図26】図23に示すユークリッドの互除回路の動作
例を示す模式図である。
【図27】図23に示すユークリッドの互除回路の動作
例を示す模式図である。
【図28】図23に示すユークリッドの互除回路の動作
例を示す模式図である。
【図29】先に提案したユークリッド互除回路の一例を
示すブロック図である。
【図30】図29に示す各演算ユニットの詳細な構成例
を示す回路図である。
【図31】図29に示すユークリッド互除回路の動作例
を示す模式図である。
【図32】図29に示すユークリッド互除回路の動作例
を示す模式図である。
【図33】図29に示すユークリッド互除回路の動作例
を示す模式図である。
【図34】図29に示すユークリッド互除回路の動作例
を示す模式図である。
【図35】図29に示すユークリッド互除回路の動作例
を示す模式図である。
【符号の説明】
1 DIVユニット 2 MLTユニット 3 割算ユニット 4 判定制御用ユニット 90〜9Kopt 演算ユニット 70〜72ti(X)用およびλi(X)用のレジスタ(A側
レジスタ群) 80〜82t+1i(X)用およびμi(X)用のレジスタ(B
側レジスタ群)
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) H03M 13/00 G06F 11/10 330 H04L 1/00

Claims (1)

    (57)【特許請求の範囲】
  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ブロック、割
    算ユニットに供給する制御用ユニットと、 を備えた ことを特徴とするユークリッドの互除回路。
JP35075991A 1991-12-12 1991-12-12 ユークリッドの互除回路 Expired - Lifetime JP3252421B2 (ja)

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)

* Cited by examiner, † Cited by third party
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 株式会社日立製作所 演算ユニット、エラー訂正復号回路及び誤り位置多項式の演算方法

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