JPH0918353A - リードソロモン符号の除算方法及びその回路 - Google Patents
リードソロモン符号の除算方法及びその回路Info
- Publication number
- JPH0918353A JPH0918353A JP7162612A JP16261295A JPH0918353A JP H0918353 A JPH0918353 A JP H0918353A JP 7162612 A JP7162612 A JP 7162612A JP 16261295 A JP16261295 A JP 16261295A JP H0918353 A JPH0918353 A JP H0918353A
- Authority
- JP
- Japan
- Prior art keywords
- vector
- reed
- solomon code
- gate
- circuit
- 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.)
- Pending
Links
Landscapes
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
Abstract
(57)【要約】
【目的】 従来使用されていた逆元テーブルを使用せず
に、除数のデータ及び被除数のデータから1クロックの
遅延で直接演算が可能なリードソロモン符号の除算方法
及びその回路の提供を目的とする。 【構成】 被除数となるリードソロモン符号のベクトル
と除数となるリードソロモン符号のベクトルの逆元ベク
トルとを乗算することにより、前者を後者で除算するリ
ードソロモン符号の除算方法であって、まず除数となる
リードソロモン符号のベクトルの逆元ベクトルをクラメ
ールの公式により求め、次に被除数となるリードソロモ
ン符号のベクトルと求められた逆元ベクトルとを乗算す
る。これにより、被除数となるリードソロモン符号のベ
クトルを前記除数となるリードソロモン符号のベクトル
で除算した結果が得られる。
に、除数のデータ及び被除数のデータから1クロックの
遅延で直接演算が可能なリードソロモン符号の除算方法
及びその回路の提供を目的とする。 【構成】 被除数となるリードソロモン符号のベクトル
と除数となるリードソロモン符号のベクトルの逆元ベク
トルとを乗算することにより、前者を後者で除算するリ
ードソロモン符号の除算方法であって、まず除数となる
リードソロモン符号のベクトルの逆元ベクトルをクラメ
ールの公式により求め、次に被除数となるリードソロモ
ン符号のベクトルと求められた逆元ベクトルとを乗算す
る。これにより、被除数となるリードソロモン符号のベ
クトルを前記除数となるリードソロモン符号のベクトル
で除算した結果が得られる。
Description
【0001】
【産業上の利用分野】本発明は、主としてディジタルデ
ータの誤り訂正の際に必要なリードソロモン符号の除算
方法及びその回路に関する。
ータの誤り訂正の際に必要なリードソロモン符号の除算
方法及びその回路に関する。
【0002】
【従来の技術】種々のディジタルデータの送受信,記憶
媒体に対する書き込み,読み出しに際して、リードソロ
モン符号を利用した演算を利用して誤り訂正が行なわれ
る。図5のブロック図にそのような誤り訂正回路の基本
的な構成例を示す。なお、この図5に示されている誤り
訂正回路はたとえば磁気テープ装置等の記憶媒体にデー
タを書き込み、またそれからデータを読出す際にそのデ
ータに誤りが発生した場合において、その誤りを検出
し、また可能な範囲で訂正することを目的としている。
媒体に対する書き込み,読み出しに際して、リードソロ
モン符号を利用した演算を利用して誤り訂正が行なわれ
る。図5のブロック図にそのような誤り訂正回路の基本
的な構成例を示す。なお、この図5に示されている誤り
訂正回路はたとえば磁気テープ装置等の記憶媒体にデー
タを書き込み、またそれからデータを読出す際にそのデ
ータに誤りが発生した場合において、その誤りを検出
し、また可能な範囲で訂正することを目的としている。
【0003】図5において、参照符号41はパリティデー
タ付加回路であり、記憶媒体に書き込まれるべきデータ
にパリティデータを付加して書き込みデータを生成す
る。このパリティデータ付加回路41により生成された書
き込みデータは記憶媒体42に書込まれる。
タ付加回路であり、記憶媒体に書き込まれるべきデータ
にパリティデータを付加して書き込みデータを生成す
る。このパリティデータ付加回路41により生成された書
き込みデータは記憶媒体42に書込まれる。
【0004】データが記憶媒体42から読み出される場合
は誤りを含んでいる可能性がある。そのような記憶媒体
42から読み出された読み出しデータは誤り検出回路43及
びデータ補正回路45に入力される。誤り検出回路43に入
力された読み出しデータはそれに含まれる誤りが検出さ
れる。訂正データ発生回路44では、誤り検出回路43が検
出した誤りに基づいて誤り訂正データが生成される。そ
して、データ補正回路45では、記憶媒体42から読み出さ
れた読み出しデータに対して訂正データ発生回路44で生
成された誤り訂正データにより誤り訂正を行なった読み
出しデータを生成して出力する。
は誤りを含んでいる可能性がある。そのような記憶媒体
42から読み出された読み出しデータは誤り検出回路43及
びデータ補正回路45に入力される。誤り検出回路43に入
力された読み出しデータはそれに含まれる誤りが検出さ
れる。訂正データ発生回路44では、誤り検出回路43が検
出した誤りに基づいて誤り訂正データが生成される。そ
して、データ補正回路45では、記憶媒体42から読み出さ
れた読み出しデータに対して訂正データ発生回路44で生
成された誤り訂正データにより誤り訂正を行なった読み
出しデータを生成して出力する。
【0005】これらの一連の動作を実現するために、記
憶媒体42に書込まれるデータ, 記憶媒体42から読み出さ
れるデータの双方に対してリードソロモン符号を用いた
演算を行なう必要がある。中でも、訂正データ発生回路
44においては、リードソロモン符号についての除算を行
なう必要がある。
憶媒体42に書込まれるデータ, 記憶媒体42から読み出さ
れるデータの双方に対してリードソロモン符号を用いた
演算を行なう必要がある。中でも、訂正データ発生回路
44においては、リードソロモン符号についての除算を行
なう必要がある。
【0006】図6はそのようなリードソロモン符号の除
算を行なうための従来の除算回路の構成例を示すブロッ
ク図である。なおここでは、ベクトルをベクトルで除算
する場合は、除数となるベクトルの逆元ベクトルを被除
数に乗算しても同一の結果が得られるという原理を利用
して、除算を行なう代わりに逆元ベクトルの乗算を行な
う。
算を行なうための従来の除算回路の構成例を示すブロッ
ク図である。なおここでは、ベクトルをベクトルで除算
する場合は、除数となるベクトルの逆元ベクトルを被除
数に乗算しても同一の結果が得られるという原理を利用
して、除算を行なう代わりに逆元ベクトルの乗算を行な
う。
【0007】図6において、参照符号51は逆元テーブル
を示しており、任意のベクトルの逆元ベクトルをテーブ
ルの形で記憶している。従って、除数 (除算の分母) と
なるベクトルαn =[an1 an2 an3] の各要素のデータが
入力されると、逆元テーブル51は入力されたベクトルの
逆元ベクトルをレジスタ52へ出力する。レジスタ52は逆
元テーブル51から出力された逆元ベクトルX= [x1 x2
x3] の各要素のデータを保持すると共に乗算回路53に与
える。この乗算回路53には被除数 (除算の分子) となる
ベクトルαi =[ai1 ai2 ai3] の各要素のデータが別途
与えられており、レジスタ52から出力されているデータ
と乗算を行なう。この乗算回路53による乗算の結果は、
ベクトルαi =[ai1 ai2 ai3] をベクトルαn =[an1 a
n2 an3]で除算した結果のベクトルD=[d1 d2 d3]と同
一である。
を示しており、任意のベクトルの逆元ベクトルをテーブ
ルの形で記憶している。従って、除数 (除算の分母) と
なるベクトルαn =[an1 an2 an3] の各要素のデータが
入力されると、逆元テーブル51は入力されたベクトルの
逆元ベクトルをレジスタ52へ出力する。レジスタ52は逆
元テーブル51から出力された逆元ベクトルX= [x1 x2
x3] の各要素のデータを保持すると共に乗算回路53に与
える。この乗算回路53には被除数 (除算の分子) となる
ベクトルαi =[ai1 ai2 ai3] の各要素のデータが別途
与えられており、レジスタ52から出力されているデータ
と乗算を行なう。この乗算回路53による乗算の結果は、
ベクトルαi =[ai1 ai2 ai3] をベクトルαn =[an1 a
n2 an3]で除算した結果のベクトルD=[d1 d2 d3]と同
一である。
【0008】
【発明が解決しようとする課題】ところで、上述のよう
な除数のベクトルの逆元ベクトルと被除数のベクトルと
を乗算することにより除算を行なう回路では、除数の逆
元ベクトルをテーブルから読み出して一旦レジスタに保
持し、その後に乗算回路において被除数との乗算を行な
うように構成されている。このため、一般的なクロック
同期の回路では1クロック分の遅延が発生し、一回の演
算について合計2クロックの遅延を要する。従って、演
算回数が多くなる場合には高速演算には不向きである。
これは、ディジタルデータの送受信,記憶媒体に対する
書き込み,読み出しを高速で処理する際に種々の問題を
招来する。
な除数のベクトルの逆元ベクトルと被除数のベクトルと
を乗算することにより除算を行なう回路では、除数の逆
元ベクトルをテーブルから読み出して一旦レジスタに保
持し、その後に乗算回路において被除数との乗算を行な
うように構成されている。このため、一般的なクロック
同期の回路では1クロック分の遅延が発生し、一回の演
算について合計2クロックの遅延を要する。従って、演
算回数が多くなる場合には高速演算には不向きである。
これは、ディジタルデータの送受信,記憶媒体に対する
書き込み,読み出しを高速で処理する際に種々の問題を
招来する。
【0009】本発明はこのような事情に鑑みてなされた
ものであり、従来使用されていた逆元テーブルを使用せ
ずに、除数のデータ及び被除数のデータから1クロック
の遅延で直接演算が可能なリードソロモン符号の除算方
法及びその回路の提供を目的とする。
ものであり、従来使用されていた逆元テーブルを使用せ
ずに、除数のデータ及び被除数のデータから1クロック
の遅延で直接演算が可能なリードソロモン符号の除算方
法及びその回路の提供を目的とする。
【0010】
【課題を解決するための手段】本発明に係るリードソロ
モン符号の除算方法は、被除数となるリードソロモン符
号のベクトルと除数となるリードソロモン符号のベクト
ルの逆元ベクトルとを乗算することにより、前者を後者
で除算するリードソロモン符号の除算方法であって、ま
ず除数となるリードソロモン符号のベクトルの逆元ベク
トルをクラメールの公式により求め、次に被除数となる
リードソロモン符号のベクトルと求められた逆元ベクト
ルとを乗算する。
モン符号の除算方法は、被除数となるリードソロモン符
号のベクトルと除数となるリードソロモン符号のベクト
ルの逆元ベクトルとを乗算することにより、前者を後者
で除算するリードソロモン符号の除算方法であって、ま
ず除数となるリードソロモン符号のベクトルの逆元ベク
トルをクラメールの公式により求め、次に被除数となる
リードソロモン符号のベクトルと求められた逆元ベクト
ルとを乗算する。
【0011】また本発明に係るリードソロモン符号の除
算回路は、被除数となるリードソロモン符号のベクトル
αi の各要素 ai1, ai2, ai3…のデータと、除数とな
るリードソロモン符号のベクトルαn の各要素 an1, a
n2, an3…のデータとを入力し、ベクトルαi をベクト
ルαn で除算した除算結果のベクトルDの各要素 d1,d
2, d3 …のデータを出力するリードソロモン符号の除
算回路であって、ベクトルαn の逆元ベクトルXの各要
素 x1, x2, x3 …をクラメールの公式によりベクトルα
n の各要素 an1, an2, an3…で表した結果とベクトル
αi の各要素 a i1, ai2, ai3…との乗算結果を表す式
中の乗算に ANDゲートを、加算に XORゲートをそれぞれ
対応させ、各要素のデータのゲートへの入力及び各ゲー
ト相互間の接続を式に対応して回路構成することによ
り、除算結果のベクトルの各要素 d 1, d2, d3 …のデ
ータをそれぞれ出力する回路を備えている。
算回路は、被除数となるリードソロモン符号のベクトル
αi の各要素 ai1, ai2, ai3…のデータと、除数とな
るリードソロモン符号のベクトルαn の各要素 an1, a
n2, an3…のデータとを入力し、ベクトルαi をベクト
ルαn で除算した除算結果のベクトルDの各要素 d1,d
2, d3 …のデータを出力するリードソロモン符号の除
算回路であって、ベクトルαn の逆元ベクトルXの各要
素 x1, x2, x3 …をクラメールの公式によりベクトルα
n の各要素 an1, an2, an3…で表した結果とベクトル
αi の各要素 a i1, ai2, ai3…との乗算結果を表す式
中の乗算に ANDゲートを、加算に XORゲートをそれぞれ
対応させ、各要素のデータのゲートへの入力及び各ゲー
ト相互間の接続を式に対応して回路構成することによ
り、除算結果のベクトルの各要素 d 1, d2, d3 …のデ
ータをそれぞれ出力する回路を備えている。
【0012】
【作用】本発明に係るリードソロモン符号の除算方法で
は、クラメールの公式により求められた除数となるリー
ドソロモン符号のベクトルの逆元ベクトルと被除数とな
るリードソロモン符号のベクトルが乗算されることによ
り、被除数となるリードソロモン符号のベクトルを除数
となるリードソロモン符号のベクトルで除算した結果が
得られる。
は、クラメールの公式により求められた除数となるリー
ドソロモン符号のベクトルの逆元ベクトルと被除数とな
るリードソロモン符号のベクトルが乗算されることによ
り、被除数となるリードソロモン符号のベクトルを除数
となるリードソロモン符号のベクトルで除算した結果が
得られる。
【0013】また本発明に係るリードソロモン符号の除
算回路では、ベクトルαn の逆元ベクトルXの各要素 x
1, x2, x3 …をクラメールの公式によりベクトルαn の
各要素 an1, an2, an3…で表した結果とベクトルαi
の各要素 ai1, ai2, ai3…との乗算が、各要素のデー
タの乗算が ANDゲートで、加算が XORゲートでそれぞれ
処理され、最終的に除算結果のベクトルの各要素 d1,
d2, d3 …のデータが出力される。
算回路では、ベクトルαn の逆元ベクトルXの各要素 x
1, x2, x3 …をクラメールの公式によりベクトルαn の
各要素 an1, an2, an3…で表した結果とベクトルαi
の各要素 ai1, ai2, ai3…との乗算が、各要素のデー
タの乗算が ANDゲートで、加算が XORゲートでそれぞれ
処理され、最終的に除算結果のベクトルの各要素 d1,
d2, d3 …のデータが出力される。
【0014】
【実施例】以下、本発明のリードソロモン符号の除算方
法の原理について説明する。
法の原理について説明する。
【0015】いまたとえば、任意の8次元ベクトルαn
=[an1 an2 an3 an4 an5 an6 an8]とその逆元ベクトル
X=[x1 x2 x3 x4 x5 x6 x8]において、逆元の定義から
下記式(1) が成立する。
=[an1 an2 an3 an4 an5 an6 an8]とその逆元ベクトル
X=[x1 x2 x3 x4 x5 x6 x8]において、逆元の定義から
下記式(1) が成立する。
【0016】
【数1】
【0017】但し、リードソロモン符号の演算規則か
ら、乗算は論理積(AND) が、加算は排他的論理和(EXOR)
がそれぞれ用いられる。ここで、クラメールの公式か
ら、 x1に関して下記式(2) が成立する。
ら、乗算は論理積(AND) が、加算は排他的論理和(EXOR)
がそれぞれ用いられる。ここで、クラメールの公式か
ら、 x1に関して下記式(2) が成立する。
【0018】
【数2】
【0019】上記式(2) を一般化すると下記式(3) が成
立する。
立する。
【0020】
【数3】
【0021】ところで、演算の対象となるベクトルは8
次元の巡回符号であるから行列 [α n ] は正則であるの
で、行列 [αn ] の逆行列 [αn ] -1は必ず存在する。
従って、det[αn ] =1となる。但し、det[αn ] ≠
0。このことから、ベクトルα n の逆元ベクトルXの第
i番目の要素 xi は一般に下記式(4) にて表される。
次元の巡回符号であるから行列 [α n ] は正則であるの
で、行列 [αn ] の逆行列 [αn ] -1は必ず存在する。
従って、det[αn ] =1となる。但し、det[αn ] ≠
0。このことから、ベクトルα n の逆元ベクトルXの第
i番目の要素 xi は一般に下記式(4) にて表される。
【0022】
【数4】
【0023】この結果は一般のj次元リードソロモン符
号に拡張可能であるが、以下では簡略化のために、3次
元のリードソロモン符号に関して、任意のベクトルαn
の逆元ベクトルXを求める場合について説明する。
号に拡張可能であるが、以下では簡略化のために、3次
元のリードソロモン符号に関して、任意のベクトルαn
の逆元ベクトルXを求める場合について説明する。
【0024】3次元のリードソロモン符号に関しては、
下記式(5) 及び下記式(6) が成立する。
下記式(5) 及び下記式(6) が成立する。
【0025】
【数5】
【0026】一方、3次元の任意のベクトルαn =[an1
an2 an3] に関しては下記式(7) 及び下記式(8) が成立
する。
an2 an3] に関しては下記式(7) 及び下記式(8) が成立
する。
【0027】
【数6】
【0028】従って、行列 [αn ] に関して下記式(9)
が成立する。
が成立する。
【0029】
【数7】
【0030】また、ベクトルαn の逆元ベクトルX=
[x1 x2 x3] に関しては下記式(10)が成立する。
[x1 x2 x3] に関しては下記式(10)が成立する。
【0031】
【数8】
【0032】ここでクラメールの公式から、逆元ベクト
ルXの各要素 x1, x2, x3 に関して下記式(11), 式(12)
及び式(13)がそれぞれ成立する。
ルXの各要素 x1, x2, x3 に関して下記式(11), 式(12)
及び式(13)がそれぞれ成立する。
【0033】
【数9】
【0034】以上の結果をまとめると、ベクトルαn =
[an1 an2 an3] の逆元ベクトルX=[x1 x2 x3]は一般に
下記式(14)にて表される。
[an1 an2 an3] の逆元ベクトルX=[x1 x2 x3]は一般に
下記式(14)にて表される。
【0035】 [x1 x2 x3] = [(an2)2+(an1)2+ an1・ an3, (an1)2+ an2・ an3, (an1)2+(an2)2+(an3)2+ an1・ an2] … (14)
【0036】従って、逆元ベクトルXの行列 [X] は、
下記式(15)にて表されるX*[ α1] 及び式(16)にて表
されるX*[ α2 ] から式(17)にて表される。
下記式(15)にて表されるX*[ α1] 及び式(16)にて表
されるX*[ α2 ] から式(17)にて表される。
【0037】
【数10】
【0038】
【数11】
【0039】従って、一般にベクトルαi をベクトルα
n で除算した結果は下記式(18)にて表される。
n で除算した結果は下記式(18)にて表される。
【0040】
【数12】
【0041】上記式(18)の解[d1 d2 d3]が最終的に得ら
れればよいので、除算の除数となるベクトルαn =[an1
an2 an3] の要素 an1,an2,an3それぞれと、被除数とな
るベクトルαi =[ai1 ai2 ai3] の要素 ai1,ai2,ai3そ
れぞれとを入力とし、 d1,d2,d3 それぞれをワイヤード
ロジックで求めるハードウェアを構成することによりク
ロック非同期のリードソロモン符号の除算回路を実現す
ることができる。
れればよいので、除算の除数となるベクトルαn =[an1
an2 an3] の要素 an1,an2,an3それぞれと、被除数とな
るベクトルαi =[ai1 ai2 ai3] の要素 ai1,ai2,ai3そ
れぞれとを入力とし、 d1,d2,d3 それぞれをワイヤード
ロジックで求めるハードウェアを構成することによりク
ロック非同期のリードソロモン符号の除算回路を実現す
ることができる。
【0042】具体的には、前述した如く、リードソロモ
ン符号の演算規則から、乗算は論理積(AND論理),加算は
排他的論理和 (EXOR論理) であるから、また乗算は論理
積(AND論理) であることから二乗は元のデータと同一値
になるから、式(18)を ANDゲートとEXORゲートとを組み
合わせてワイヤードロジックで構成することは容易であ
る。
ン符号の演算規則から、乗算は論理積(AND論理),加算は
排他的論理和 (EXOR論理) であるから、また乗算は論理
積(AND論理) であることから二乗は元のデータと同一値
になるから、式(18)を ANDゲートとEXORゲートとを組み
合わせてワイヤードロジックで構成することは容易であ
る。
【0043】以下、上述の本発明のリードソロモン符号
の除算方法の原理に基づいた本発明のリードソロモン符
号の除算回路の具体的な実施例について、図面を参照し
て説明する。
の除算方法の原理に基づいた本発明のリードソロモン符
号の除算回路の具体的な実施例について、図面を参照し
て説明する。
【0044】式(18)において、除算結果のベクトルDの
要素 d1 を加算の部分で分割してそれぞれの部分をA1,
B1, C1とすると、下記(19)式のように表すことができ
る。
要素 d1 を加算の部分で分割してそれぞれの部分をA1,
B1, C1とすると、下記(19)式のように表すことができ
る。
【0045】
【0046】従って、A1, B1, C1をそれぞれ下記式(2
0), (21), (22)として、それぞれを個別の回路で求め、
最後に加算(EXOR)すれば要素 d1 が求まる。
0), (21), (22)として、それぞれを個別の回路で求め、
最後に加算(EXOR)すれば要素 d1 が求まる。
【0047】 A1 = ai1・{(an3)2+ an1・ an3+ an1・ an2} … (20) B1 = ai2・{(an1)2+ an2・ an3} … (21) C1 = ai3・{(an2)2+(an1)2+ an1・ an3} … (22)
【0048】以下、本発明のリードソロモン符号の除算
回路の一部である除算結果のベクトルDの要素 d1 を求
める回路10の一構成例を示す図1の回路図を参照して説
明する。まず、A1を求める回路11について説明する。A1
は式(20)に示されているように、 ai1に{(an3)2+ an1
・ an3+ an1・ an2}を乗算(AND) すればよいので、a
n1と an3との乗算を ANDゲート101 で行なうと共に an1
と an2との乗算を ANDゲート102 で行なう。(an3)2は a
n3と同一であるので、 ANDゲート101 の出力と同102 の
出力と an3との加算(EXOR)をEXORゲート103 で行い、そ
の結果と ai1との乗算(AND) を ANDゲート104 で行な
う。この ANDゲート104 の出力がA1に相当する。
回路の一部である除算結果のベクトルDの要素 d1 を求
める回路10の一構成例を示す図1の回路図を参照して説
明する。まず、A1を求める回路11について説明する。A1
は式(20)に示されているように、 ai1に{(an3)2+ an1
・ an3+ an1・ an2}を乗算(AND) すればよいので、a
n1と an3との乗算を ANDゲート101 で行なうと共に an1
と an2との乗算を ANDゲート102 で行なう。(an3)2は a
n3と同一であるので、 ANDゲート101 の出力と同102 の
出力と an3との加算(EXOR)をEXORゲート103 で行い、そ
の結果と ai1との乗算(AND) を ANDゲート104 で行な
う。この ANDゲート104 の出力がA1に相当する。
【0049】次に、B1を求める回路12について説明す
る。B1は式(21)に示されているように、 ai2に{(an1)2
+ an2・ an3}を乗算(AND) すればよいので、まず an2
と an3との乗算(AND) を ANDゲート105 で行なう。
(an1)2は an1と同一であるので、 ANDゲート105 の出力
と an1との加算(EXOR)をEXORゲート106 で行い、この結
果とai2との乗算(AND) を ANDゲート107 で行なう。こ
の ANDゲート107 の出力がB1に相当する。
る。B1は式(21)に示されているように、 ai2に{(an1)2
+ an2・ an3}を乗算(AND) すればよいので、まず an2
と an3との乗算(AND) を ANDゲート105 で行なう。
(an1)2は an1と同一であるので、 ANDゲート105 の出力
と an1との加算(EXOR)をEXORゲート106 で行い、この結
果とai2との乗算(AND) を ANDゲート107 で行なう。こ
の ANDゲート107 の出力がB1に相当する。
【0050】次に、C1を求める回路13について説明す
る。C1は式(22)に示されているように、 ai3に{(an2)2
+(an1)2+ an1・ an3}を乗算(AND) すればよいので、
まず a n1と an3との乗算(AND) を ANDゲート108 で行な
う。(an2)2は an2と、(an1)2はan1とそれぞれ同一であ
るので、 ANDゲート108 の出力と an2と an1との加算(E
XOR)をEXORゲート109 で行い、この結果と ai3との乗算
(AND) を ANDゲート110で行なう。この ANDゲート110
の出力がC1に相当する。
る。C1は式(22)に示されているように、 ai3に{(an2)2
+(an1)2+ an1・ an3}を乗算(AND) すればよいので、
まず a n1と an3との乗算(AND) を ANDゲート108 で行な
う。(an2)2は an2と、(an1)2はan1とそれぞれ同一であ
るので、 ANDゲート108 の出力と an2と an1との加算(E
XOR)をEXORゲート109 で行い、この結果と ai3との乗算
(AND) を ANDゲート110で行なう。この ANDゲート110
の出力がC1に相当する。
【0051】以上でA1, B1, C1が求まるので、 ANDゲー
ト104, 107, 110 の出力をEXORゲート111 で加算(EXOR)
すれば、その出力として要素 d1 が求まる。
ト104, 107, 110 の出力をEXORゲート111 で加算(EXOR)
すれば、その出力として要素 d1 が求まる。
【0052】次に、要素 d2 を求める回路について説明
する。式(18)において、要素 d2 を加算の部分で分割し
てそれぞれの部分をA2, B2, C2とすると、下記(23)式の
ように表すことができる。
する。式(18)において、要素 d2 を加算の部分で分割し
てそれぞれの部分をA2, B2, C2とすると、下記(23)式の
ように表すことができる。
【0053】 d2 = ai1・{(an2)2+ an1・ an3+ an2・ an3} + ai2・{(an3)2+ an1・ an3+ an1・ an2} + ai3・{(an1)2+ an2・ an3} =A2+B2+C2 … (23)
【0054】従って、A2, B2, C2をそれぞれ下記式(2
4), (25), (26)として、それぞれを個別の回路で求め、
最後に加算(EXOR)すれば要素 d2 が求まる。
4), (25), (26)として、それぞれを個別の回路で求め、
最後に加算(EXOR)すれば要素 d2 が求まる。
【0055】 A2= ai1・{(an2)2+ an1・ an3+ an2・ an3} … (24) B2= ai2・{(an3)2+ an1・ an3+ an1・ an2} … (25) C2= ai3・{(an1)2+ an2・ an3} … (26)
【0056】以下、本発明のリードソロモン符号の除算
回路の一部である除算結果のベクトルDの要素 d2 を求
める回路20の一構成例を示す図2の回路図を参照して説
明する。まず、A2を求める回路21について説明する。A2
は式(24)に示されているように、 ai1に{(an2)2+ an1
・ an3+ an2・ an3}を乗算(AND) すればよいので、a
n1と an3との乗算(AND) を ANDゲート201 で行なうと共
に an2と an3との乗算(AND) を ANDゲート202 で行な
う。(an2)2は an2と同一であるので、 ANDゲート201 の
出力と同202 の出力と an2との加算(EXOR)をEXORゲート
203 で行い、その結果と ai1との乗算(AND) を ANDゲー
ト204 で行なう。この ANDゲート204 の出力がA2に相当
する。
回路の一部である除算結果のベクトルDの要素 d2 を求
める回路20の一構成例を示す図2の回路図を参照して説
明する。まず、A2を求める回路21について説明する。A2
は式(24)に示されているように、 ai1に{(an2)2+ an1
・ an3+ an2・ an3}を乗算(AND) すればよいので、a
n1と an3との乗算(AND) を ANDゲート201 で行なうと共
に an2と an3との乗算(AND) を ANDゲート202 で行な
う。(an2)2は an2と同一であるので、 ANDゲート201 の
出力と同202 の出力と an2との加算(EXOR)をEXORゲート
203 で行い、その結果と ai1との乗算(AND) を ANDゲー
ト204 で行なう。この ANDゲート204 の出力がA2に相当
する。
【0057】次に、B2を求める回路22について説明す
る。B2は式(25)に示されているように、 ai2に{(an3)2
+ an1・ an3+ an1・ an2}を乗算(AND) すればよいの
で、まず an1と an2との乗算(AND) を ANDゲート205 で
行なうと共に an1と an3 の乗算(AND) を ANDゲート20
6 で行なう。(an3)2は an3と同一であるので、 ANDゲー
ト205 の出力と同206 の出力と an3との加算(EXOR)をEX
ORゲート207 で行い、この結果と ai2との乗算(AND) を
ANDゲート208 で行なう。この ANDゲート208 の出力が
B2に相当する。
る。B2は式(25)に示されているように、 ai2に{(an3)2
+ an1・ an3+ an1・ an2}を乗算(AND) すればよいの
で、まず an1と an2との乗算(AND) を ANDゲート205 で
行なうと共に an1と an3 の乗算(AND) を ANDゲート20
6 で行なう。(an3)2は an3と同一であるので、 ANDゲー
ト205 の出力と同206 の出力と an3との加算(EXOR)をEX
ORゲート207 で行い、この結果と ai2との乗算(AND) を
ANDゲート208 で行なう。この ANDゲート208 の出力が
B2に相当する。
【0058】次に、C2を求める回路23について説明す
る。C2は式(26)に示されているように、 ai3に{(an1)2
+ an2・ an3}を乗算(AND) すればよいので、まず an2
と an3との乗算(AND) を ANDゲート209 で行なう。
(an1)2は an1と同一であるので、 ANDゲート209 の出力
と an1との加算(EXOR)をEXORゲート210 で行い、この結
果とai3との乗算(AND) を ANDゲート211 で行なう。こ
の ANDゲート211 の出力がC2に相当する。
る。C2は式(26)に示されているように、 ai3に{(an1)2
+ an2・ an3}を乗算(AND) すればよいので、まず an2
と an3との乗算(AND) を ANDゲート209 で行なう。
(an1)2は an1と同一であるので、 ANDゲート209 の出力
と an1との加算(EXOR)をEXORゲート210 で行い、この結
果とai3との乗算(AND) を ANDゲート211 で行なう。こ
の ANDゲート211 の出力がC2に相当する。
【0059】以上でA2, B2, C2が求まるので、 ANDゲー
ト204, 208, 211 の出力をEXORゲート212 で加算(EXOR)
すれば、その出力として要素 d2 が求まる。
ト204, 208, 211 の出力をEXORゲート212 で加算(EXOR)
すれば、その出力として要素 d2 が求まる。
【0060】次に、要素 d3 を求める回路について説明
する。式(18)において、要素 d3 を加算の部分で分割し
てそれぞれの部分をA3, B3, C3とすると、下記(27)式の
ように表すことができる。
する。式(18)において、要素 d3 を加算の部分で分割し
てそれぞれの部分をA3, B3, C3とすると、下記(27)式の
ように表すことができる。
【0061】 d3 = ai1・{(an1)2+ an2・ an3} + ai2・{(an2)2+(an1)2+ an1・ an3} + ai3・{(an1)2+(an2)2+(an3)2+ an1・ an2} =A3+B3+C3 … (27)
【0062】従って、A3, B3, C3をそれぞれ下記式(2
8), (29), (30)として、それぞれを個別の回路で求め、
最後に加算 (EXOR) すれば要素 d3 が求まる。
8), (29), (30)として、それぞれを個別の回路で求め、
最後に加算 (EXOR) すれば要素 d3 が求まる。
【0063】 A3= ai1・{(an1)2+ an2・ an3} … (28) B3= ai2・{(an2)2+(an1)2+ an1・ an3} … (29) C3= ai3・{(an1)2+(an2)2+(an3)2+ an1・ an2}… (30)
【0064】以下、本発明のリードソロモン符号の除算
回路の一部である除算結果のベクトルDの要素 d3 を求
める回路30の一構成例を示す図3の回路図を参照して説
明する。まず、A3を求める回路31について説明する。A3
は式(28)に示されているように、 ai1に{(an1)2+ an2
・ an3}を乗算(AND) すればよいので、 an2と an3との
乗算(AND) を ANDゲート301 で行なう。(an1)2は an1と
同一であるので、 ANDゲート301 の出力と an1との加算
(EXOR)をEXORゲート302 で行い、その結果と a i1との乗
算(AND) を ANDゲート303 で行なう。この ANDゲート30
3 の出力がA3に相当する。
回路の一部である除算結果のベクトルDの要素 d3 を求
める回路30の一構成例を示す図3の回路図を参照して説
明する。まず、A3を求める回路31について説明する。A3
は式(28)に示されているように、 ai1に{(an1)2+ an2
・ an3}を乗算(AND) すればよいので、 an2と an3との
乗算(AND) を ANDゲート301 で行なう。(an1)2は an1と
同一であるので、 ANDゲート301 の出力と an1との加算
(EXOR)をEXORゲート302 で行い、その結果と a i1との乗
算(AND) を ANDゲート303 で行なう。この ANDゲート30
3 の出力がA3に相当する。
【0065】次に、B3を求める回路32について説明す
る。B3は式(29)に示されているように、 ai2に{(an2)2
+(an1)2+ an1・ an3}を乗算(AND) すればよいので、
まず a n1と an3との乗算(AND) を ANDゲート304 で行な
う。(an2)2は an2と、(an1)2はan1とそれぞれ同一であ
るので、 ANDゲート304 の出力と an1と an3との加算(E
XOR)をEXORゲート305 で行い、この結果と ai2との乗算
(AND) を ANDゲート306で行なう。この ANDゲート306
の出力がB3に相当する。
る。B3は式(29)に示されているように、 ai2に{(an2)2
+(an1)2+ an1・ an3}を乗算(AND) すればよいので、
まず a n1と an3との乗算(AND) を ANDゲート304 で行な
う。(an2)2は an2と、(an1)2はan1とそれぞれ同一であ
るので、 ANDゲート304 の出力と an1と an3との加算(E
XOR)をEXORゲート305 で行い、この結果と ai2との乗算
(AND) を ANDゲート306で行なう。この ANDゲート306
の出力がB3に相当する。
【0066】次に、C3を求める回路33について説明す
る。C3は式(30)に示されているように、 ai3に{(an1)2
+(an2)2+(an3)2+ an1・ an2}を乗算(AND) すればよ
いので、まず an1と an2との乗算(AND) を ANDゲート30
7 で行なう。(an1)2は an1と、(an2)2は an2と、(an3)2
は an3とそれぞれ同一であるので、 ANDゲート307 の出
力と an1と an2と an3との加算(EXOR)をEXORゲート308
で行い、この結果と ai3との乗算(AND) を ANDゲート30
9 で行なう。この ANDゲート309 の出力がC3に相当す
る。
る。C3は式(30)に示されているように、 ai3に{(an1)2
+(an2)2+(an3)2+ an1・ an2}を乗算(AND) すればよ
いので、まず an1と an2との乗算(AND) を ANDゲート30
7 で行なう。(an1)2は an1と、(an2)2は an2と、(an3)2
は an3とそれぞれ同一であるので、 ANDゲート307 の出
力と an1と an2と an3との加算(EXOR)をEXORゲート308
で行い、この結果と ai3との乗算(AND) を ANDゲート30
9 で行なう。この ANDゲート309 の出力がC3に相当す
る。
【0067】以上でA3, B3, C3が求まるので、 ANDゲー
ト303, 306, 309 の出力をEXORゲート310 で加算(EXOR)
すれば、その出力として要素 d3 が求まる。
ト303, 306, 309 の出力をEXORゲート310 で加算(EXOR)
すれば、その出力として要素 d3 が求まる。
【0068】従って、上述の図1,図2及び図3に示さ
れている回路を一つにまとめることにより、入力信号と
してベクトルαn の各要素のデータ an1, an2, an3及
びベクトルαi の各要素 ai1, ai2, ai3のデータを入
力し、出力信号として除算結果のベクトルDの各要素 d
1, d2, d3 のデータを出力する本発明のリードソロモ
ン符号の除算回路を構成することが出来る。図4のブロ
ック図はそのような本発明のリードソロモン符号の除算
回路の全体の構成例を示している。
れている回路を一つにまとめることにより、入力信号と
してベクトルαn の各要素のデータ an1, an2, an3及
びベクトルαi の各要素 ai1, ai2, ai3のデータを入
力し、出力信号として除算結果のベクトルDの各要素 d
1, d2, d3 のデータを出力する本発明のリードソロモ
ン符号の除算回路を構成することが出来る。図4のブロ
ック図はそのような本発明のリードソロモン符号の除算
回路の全体の構成例を示している。
【0069】図4において、参照符号1は本発明のリー
ドソロモン符号の除算回路を示しており、前述の図1に
示されている要素 d1 を求める回路10と、図2に示され
ている要素 d2 を求める回路20と、図3に示されている
要素 d3 を求める回路30とを内蔵している。
ドソロモン符号の除算回路を示しており、前述の図1に
示されている要素 d1 を求める回路10と、図2に示され
ている要素 d2 を求める回路20と、図3に示されている
要素 d3 を求める回路30とを内蔵している。
【0070】このような図4に示されている本発明のリ
ードソロモン符号の除算回路1により、除数 (除算の分
母) となるベクトルαn =[an1 an2 an3] の各要素のデ
ータと被除数 (除算の分子) となるベクトルαi =[ai1
ai2 ai3] の各要素のデータとを入力し、除算の結果の
ベクトルD=[d1 d2 d3]の各要素のデータが得られる。
ードソロモン符号の除算回路1により、除数 (除算の分
母) となるベクトルαn =[an1 an2 an3] の各要素のデ
ータと被除数 (除算の分子) となるベクトルαi =[ai1
ai2 ai3] の各要素のデータとを入力し、除算の結果の
ベクトルD=[d1 d2 d3]の各要素のデータが得られる。
【0071】ところで、上記実施例では3次元のリード
ソロモン符号に関して説明したが、それ以外の次元のリ
ードソロモン符号に関しても適用可能であることは言う
までもない。
ソロモン符号に関して説明したが、それ以外の次元のリ
ードソロモン符号に関しても適用可能であることは言う
までもない。
【0072】なお、一般的な誤り訂正回路に使用される
8次元のリードソロモン符号に本発明のリードソロモン
符号の除算回路を適用した場合、その論理段数は20乃至
30段程度になる。その場合の1段当りの遅延時間は0.5n
s 程度であるので、除算回路全体としての遅延時間は10
乃至15nsとなる。一方、記憶媒体に対するディジタルデ
ータの書き込み時のクロックは一般的には5MHz程度であ
る。この場合、1サイクルは200ns になるため、上述の
10乃至15ns程度の遅延時間に更に配線遅延を考慮しても
実用上は充分に1クロックサイクルの期間で除算が完了
する。
8次元のリードソロモン符号に本発明のリードソロモン
符号の除算回路を適用した場合、その論理段数は20乃至
30段程度になる。その場合の1段当りの遅延時間は0.5n
s 程度であるので、除算回路全体としての遅延時間は10
乃至15nsとなる。一方、記憶媒体に対するディジタルデ
ータの書き込み時のクロックは一般的には5MHz程度であ
る。この場合、1サイクルは200ns になるため、上述の
10乃至15ns程度の遅延時間に更に配線遅延を考慮しても
実用上は充分に1クロックサイクルの期間で除算が完了
する。
【0073】
【発明の効果】以上に詳述したように、本発明のリード
ソロモン符号の除算方法及び回路によれば、従来技術に
おいて使用されていた逆元テーブルは使用しないため、
それに必要な1クロックサイクルの遅延が無くなり、演
算回数が多くなる場合にも高速演算が可能になる。
ソロモン符号の除算方法及び回路によれば、従来技術に
おいて使用されていた逆元テーブルは使用しないため、
それに必要な1クロックサイクルの遅延が無くなり、演
算回数が多くなる場合にも高速演算が可能になる。
【図1】本発明のリードソロモン符号の除算回路の一部
の構成例を示す回路図である。
の構成例を示す回路図である。
【図2】本発明のリードソロモン符号の除算回路の一部
の構成例を示す回路図である。
の構成例を示す回路図である。
【図3】本発明のリードソロモン符号の除算回路の一部
の構成例を示す回路図である。
の構成例を示す回路図である。
【図4】本発明のリードソロモン符号の除算回路の全体
を示すブロック図である。
を示すブロック図である。
【図5】誤り訂正回路の基本的な構成例を示すブロック
図である。
図である。
【図6】従来のリードソロモン符号の除算回路の構成例
を示すブロック図である。
を示すブロック図である。
1 本発明のリードソロモン符号の除算回路 10 d1 を求める回路 20 d2 を求める回路 30 d3 を求める回路 101 ANDゲート 102 ANDゲート 103 EXORゲート 104 ANDゲート 105 ANDゲート 106 EXORゲート 107 ANDゲート 108 ANDゲート 109 EXORゲート 110 ANDゲート 111 EXORゲート
Claims (2)
- 【請求項1】 被除数となるリードソロモン符号のベク
トルと除数となるリードソロモン符号のベクトルの逆元
ベクトルとを乗算することにより、前者を後者で除算す
るリードソロモン符号の除算方法において、 前記除数となるリードソロモン符号のベクトルの逆元ベ
クトルをクラメールの公式により求め、 被除数となるリードソロモン符号のベクトルと前記求め
られた逆元ベクトルとを乗算することにより、前記被除
数となるリードソロモン符号のベクトルを前記除数とな
るリードソロモン符号のベクトルで除算した結果を得る
ことを特徴とするリードソロモン符号の除算方法。 - 【請求項2】 被除数となるリードソロモン符号のベク
トルαi の各要素 a i1, ai2, ai3…のデータと、除数
となるリードソロモン符号のベクトルαn の各要素 a
n1, an2, an3…のデータとを入力し、ベクトルαi を
ベクトルαn で除算した除算結果のベクトルDの各要素
d1, d2, d3 …のデータを出力するリードソロモン符
号の除算回路において、 前記ベクトルαn の逆元ベクトルXの各要素 x1, x2, x
3 …をクラメールの公式により前記ベクトルαn の各要
素 an1, an2, an3…で表した結果と前記ベクトルαi
の各要素 ai1, ai2, ai3…との乗算結果を表す式中の
乗算に ANDゲートを、加算に XORゲートをそれぞれ対応
させ、各要素のデータの前記ゲートへの入力及び各ゲー
ト相互間の接続を前記式に対応して回路構成することに
より、除算結果のベクトルの各要素 d1, d2, d3 …の
データをそれぞれ出力する回路を備えたことを特徴とす
るリードソロモン符号の除算回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7162612A JPH0918353A (ja) | 1995-06-28 | 1995-06-28 | リードソロモン符号の除算方法及びその回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7162612A JPH0918353A (ja) | 1995-06-28 | 1995-06-28 | リードソロモン符号の除算方法及びその回路 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0918353A true JPH0918353A (ja) | 1997-01-17 |
Family
ID=15757914
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7162612A Pending JPH0918353A (ja) | 1995-06-28 | 1995-06-28 | リードソロモン符号の除算方法及びその回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0918353A (ja) |
-
1995
- 1995-06-28 JP JP7162612A patent/JPH0918353A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20120150933A1 (en) | Method and data processing unit for calculating at least one multiply-sum of two carry-less multiplications of two input operands, data processing program and computer program product | |
JP2744091B2 (ja) | 有限体の乗法的逆数元を計算するデータ処理方法及び装置 | |
US9146707B2 (en) | Generating a fast 3x multiplicand term for radix-8 booth multiplication | |
US4751704A (en) | Method and apparatus for decoding BCH code | |
JPS59157811A (ja) | デ−タ補間回路 | |
KR100489880B1 (ko) | 비동기fifo에서반-충만및반-빈플래그를발생시키기위한상태기계설계 | |
JP3345385B2 (ja) | チェンサーチ装置 | |
JP4883251B1 (ja) | 半導体集積回路及び指数算出方法 | |
US20080140740A1 (en) | Systems and methods for processing data sets in parallel | |
JP2627581B2 (ja) | デジタル信号中でエラー検出コードを発生するための電子回路 | |
JPH0918353A (ja) | リードソロモン符号の除算方法及びその回路 | |
US8417761B2 (en) | Direct decimal number tripling in binary coded adders | |
JPH0370416B2 (ja) | ||
JP3315042B2 (ja) | 乗算装置 | |
US6581084B1 (en) | Circuit for multiplication in a Galois field | |
JP3280470B2 (ja) | 誤り訂正回路 | |
KR930001921B1 (ko) | 사이클릭 리던던시 코드 체크회로 | |
JP3131969B2 (ja) | 演算装置 | |
JP2705162B2 (ja) | 演算処理装置 | |
JP2778478B2 (ja) | 相関演算プロセッサ | |
JPS62172473A (ja) | パイプラインヒストグラム算出回路 | |
JP2781081B2 (ja) | 並列演算機構による論理演算方法 | |
KR100630456B1 (ko) | 유한체 상의 스케일러블 곱셈 연산기 | |
JPS60213132A (ja) | デイジタル信号処理装置 | |
JP3339803B2 (ja) | 誤り訂正符号生成回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20020219 |