JP2004054384A - Arithmetic unit - Google Patents
Arithmetic unit Download PDFInfo
- Publication number
- JP2004054384A JP2004054384A JP2002207978A JP2002207978A JP2004054384A JP 2004054384 A JP2004054384 A JP 2004054384A JP 2002207978 A JP2002207978 A JP 2002207978A JP 2002207978 A JP2002207978 A JP 2002207978A JP 2004054384 A JP2004054384 A JP 2004054384A
- Authority
- JP
- Japan
- Prior art keywords
- output
- input
- unit
- multiplier
- gate
- 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
Images
Landscapes
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
この発明は演算器に関し、例えばガロア拡大体における乗算に適する。
【0002】
【従来の技術】
近年、あらゆる分野においてデジタル化、IT化が進み、デジタルデータ記録や通信に対して注目が集まっている。この、デジタルデータ記録方式や通信方式における誤り訂正方法として、リードソロモン符号やBCH符号などがよく利用されている。これらの符号はガロア拡大体の性質を利用して作られており、その扱いにはガロア拡大体における演算が必須となる。特にガロア体GF(2)からガロア拡大体GF(2m)を得る際に採用されるm次の原始既約多項式の根をαとすると、ガロア拡大体における乗算ではa=αiと、b=αjとの乗算が必要となる。
【0003】
図14は、ガロア拡大体における乗算を行う従来の乗算器の構成を示すブロック図である。被乗数a及び乗数bはそれぞれ対数変換ブロック101,102に入力し、各々で指数i,jが求められる。指数i,jは加算ブロック103に与えられ、ここにおいて指数i,jの和の(q−1)を法とする剰余として指数kが得られる(但し体の位数2mをqとする)。その後指数kは逆対数変換ブロック104に与えられ、積cがαkとして求められる。
【0004】
【発明が解決しようとする課題】
上記の乗算器では、対数変換、逆対数変換の際、いずれも変換表を使うのが一般的であった。しかし、リードソロモン符号の符号器に採用される乗算器では、符号を構成するための生成多項式は唯一に決定されて乗数は一定であることが多い。従って、上述の変換表を用いた乗算器をリードソロモン符号の符号器に採用すると、異なる複数の乗数に対応するという不要な機能を果たすので、回路規模が冗長であるという問題点があった。
【0005】
この発明は上記問題点を解決するためになされたもので、ガロア拡大体における乗算を小さな回路規模で実現する技術を提供することを目的としている。
【0006】
【課題を解決するための手段】
この発明のうち請求項1にかかるものは演算器であって、入力端と、前記入力端に与えられた信号を少なくとも一つの単位時間だけ遅延して出力する出力端とを有する遅延器と、第1端及び第2端、並びに自身の前記第1端及び前記第2端に入力する信号の二値論理についての論理積を出力する出力端を有する第1ゲートと、前記第1ゲートの出力を入力する第1端と、前記遅延器の出力端に接続された第2端と、並びに自身の前記第1端及び前記第2端に入力する信号の二値論理についての排他的論理和を前記遅延器の前記入力端に出力する出力端とを有する第2ゲートとを備える積和単位を、少なくとも一つ含む。
【0007】
この発明のうち請求項2にかかるものは、請求項1記載の演算器であって、乗数に基づいて設定される行列を構成する複数のベクトルが順次出力される乗数提供部と、被乗数を1ビットずつ出力する被乗数提供部とを更に備える。そして前記積和単位は前記ベクトルの要素毎に複数設けられて、各々の前記積和単位が自身に対応する前記要素を前記第1ゲートの前記第1端に入力され、いずれの前記積和単位も、自身の前記第1ゲートの前記第2端には前記被乗数の前記1ビットが入力され、前記遅延器は一つの単位時間だけ、自身の前記入力端に与えられた信号を遅延させる。
【0008】
この発明のうち請求項3にかかるものは、請求項1記載の演算器であって、乗数に基づいて設定される行列を構成する複数のベクトルが、要素毎に順次出力される乗数提供部と、被乗数を1ビットずつ出力する被乗数提供部とを更に備える。そして、前記積和単位の前記第1ゲートの前記第1端には前記要素が入力され、前記積和単位の前記第1ゲートの前記第2端には前記被乗数の前記1ビットが入力され、前記遅延器は前記ベクトルを構成する要素の数と前記単位時間との積で、自身の前記入力端に与えられた信号を遅延させる。
【0009】
【発明の実施の形態】
実施の形態1.
図1は本発明にかかる乗算器が適用可能な符号器1の構造を示すブロック図であり、(8,4)リードソロモン符号器として公知である。ここでは既約原始多項式及び生成多項式としてそれぞれ式(1),(2)を採用した場合を例示する。
【0010】
【数1】
【0011】
【数2】
【0012】
符号器1は生成多項式に基づいて入力データの剰余を求めるため、生成多項式の係数に基づいた乗算器200,201,202,203を備えている。生成多項式の係数は、不定元χの低次から高次へと向かう順にα6,1,α4,α12,1であるので、乗算器200,201,202,203はそれぞれ乗数α6,1,α4,α12を用いてガロア拡大体の乗算を行う。最高次に対応する乗算器は不要である。
【0013】
ここでは符号化の対象となる入力データDは4ビット毎に更新され、符号器1は4ビットのレジスタ204,206,208,210、4ビットの排他的論理和回路(以下「XORゲート」と称す)205,207,209,211を備えている。入力データAは1クロック毎に4ビットずつXORゲート211に入力する。
【0014】
符号化の際の初期値としてレジスタ204,206,208,210には4ビットの値“0000”が格納されている。またXORゲート205,207,209,211はビット毎に対をなす二入力の排他的論理和を求め、ビット毎に出力する。図2はXORゲート205,207,209,211の各々の構成例を示す回路図である。各々4ビットのデータL1,L2を入力し、これらの排他的論理和を採って4ビットのデータL3を出力する構成が示されている。二入力のXORゲート21,22,23,24が備えられる。
【0015】
XORゲート211はレジスタ210の出力と入力データDとの排他的論理和を出力する。排他的論理和は通常の和の2を法とする剰余であり、ガロア拡大体GF(2m)の加算結果と一致する。XORゲート211は乗算器200,201,202,203に与えられ、これらにおいて上述の乗算が行われる。但し、乗算器において採用される乗数は生成多項式に依存する。図1では式(2)で例示された生成多項式G(χ)に基づいて、それぞれの乗算器の乗数が例示されているが、生成多項式が異なれば、他の構造を採ることができる。乗算器200,201,202,203から得られた乗算結果たる出力は、それぞれレジスタ204,XORゲート205,207,209に与えられる。
【0016】
XORゲート205はレジスタ204の出力と乗算器201の出力との排他的論理和を採ってレジスタ206へと出力する。XORゲート207はレジスタ206の出力と乗算器202の出力との排他的論理和を採ってレジスタ208へと出力する。XORゲート209はレジスタ208の出力と乗算器203の出力との排他的論理和を採ってレジスタ210へと出力する。但し乗算器201の乗数は1であるので、これを省略し、XORゲート211の出力を直接にXORゲート205に与えることができる。
【0017】
1クロック分の動作が進む毎に、入力データAは新たな4ビットのデータをXORゲート211に与え、かつレジスタ204,206,208,210は、自身に与えられた4ビットのデータをそれぞれXORゲート205,207,209,211へと出力する。これにより、符号語の内の検査ブロックの4ブロックが、それぞれ上位から順にレジスタ210,208,206,204の出力として得られる。即ちレジスタ204からは検査ブロックの最下位4ビットが、レジスタ210からは検査ブロックの最上位4ビットが、それぞれ出力される。
【0018】
図3は、乗算器200,202,203として採用可能な、実施の形態1にかかる乗算器の構成を示す回路図である。
【0019】
当該乗算器は、被乗数提供部100と、乗数提供部300と、積和処理部400とを備えている。被乗数提供部100は被乗数Aの4ビットデータA3A2A1A0を最上位ビットから順に、即ちA3,A2,A1,A0の順に、1ビットずつ積和処理部400に入力する。被乗数提供部100は直列に接続された4つのレジスタ105,106,107,108を有しており、これらはこの順に積和処理部400へと近づく配置がなされている。レジスタ105,106,107,108はそれぞれ1クロック分だけ遅延してデータを伝達する。
【0020】
乗数提供部300は既約原始多項式に依存した構造を有し、乗数に依存した初期値が設定される。図3では式(1)で示される既約原始多項式g(χ)が採用された場合の構造を例示しており、いずれも自身に入力した信号に対して1クロック分の遅延を与えて出力するレジスタ301,302,303,305及びXORゲート304を備えている。式(1)で示される既約原始多項式g(χ)が0に等しくなる根をαとおくと、ガロア拡大体GF(24)の元は、αの累乗として表すことができ、指数が増加する順に、ベクトル表現で次の様に表される。即ち(0100),(0010),(0001),(1100),(0110),(0011),(1101),(1010),(0101),(1110),(0111),(1111),(1011),(1001),(1000)である。これ以上に指数が増加する場合には上記のベクトル表現が循環して採用される。
【0021】
上記のベクトル表現を得るため、レジスタ301の出力はレジスタ302に入力し、レジスタ302の出力はレジスタ303に入力し、レジスタ303の出力はXORゲート304の一方の入力となり、XORゲート304の出力はレジスタ305の入力となり、レジスタ305の出力はレジスタ301の入力となると共に、XORゲート304の他方の入力ともなる。乗数提供部300は1クロック毎にガロア拡大体GF(24)の元を、αの指数を1次ずつ低くして出力する。
【0022】
一般に符号長が4ビットであるガロア拡大体の乗算は、上記公報にも開示されているように、式(3)で表され
【0023】
【数3】
【0024】
但し係数T11,T12,T13,T14は乗数をベクトル表現した値と一致する。また、式(4)〜(6)が成立する。ここで示された乗算記号「×」はガロア拡大体GF(2m)におけるベクトルの乗算を示す。
【0025】
【数4】
【0026】
【数5】
【0027】
【数6】
【0028】
つまり(3)式で表された行列は、乗数に基づいた複数のベクトル(T11,T12,T13,T14),(T21,T22,T23,T24),(T31,T32,T33,T34),(T41,T42,T43,T44)で構成されている。
【0029】
さて、上述の通り、乗数提供部300は1クロック毎にガロア拡大体GF(24)の元を、αの指数を1次ずつ低くして出力する。よって乗数Nとα3との間でガロア拡大体の乗算を行った結果を、初期値としてレジスタ301,302,303,305に与えておく。こうすれば1クロック毎に式(3)の行列の縦ベクトルが右側から順に出力され、これと被乗数Aとの積和演算が実行される。
【0030】
積和処理部400は、それぞれレジスタ301,302,303,305の出力を受け、またいずれもがレジスタ108の出力を受ける積和単位401,402,403,404を有している。つまり積和単位401,402,403,404は縦ベクトルの要素毎に複数設けられる。
【0031】
積和単位401,402,403,404はいずれも同一の構成を有している。即ち、積和単位の各々はアンドゲート41,XORゲート42、レジスタ43を備えている。レジスタ43は、入力端と、自身の入力端に与えられた信号を1クロック分遅延して出力する出力端とを有する。アンドゲート41は、第1端及び第2端、並びに自身の第1端及び前記第2端に入力する信号の二値論理についての論理積を出力する出力端を有する。XORゲートは、アンドゲート41の出力を入力する第1端と、レジスタ43の出力端に接続された第2端、並びに自身の第1端及び第2端に入力する信号の二値論理についての排他的論理和をレジスタ43の入力端に出力する出力端とを有する。そしてアンドゲート41の第1端にはレジスタ108の出力が与えられる。またアンドゲート41の第2端には、乗算提供部300が有しているレジスタのうちで、このアンドゲート41が属する積和単位に対応するものの出力が入力される。例えば積和単位401について言えば、そのアンドゲート41の第2端にはレジスタ301の出力が与えられる。
【0032】
以下、図3に示された乗算器を、図1に示された乗算器203として採用した場合の動作について説明する。
【0033】
図3は最初の積和演算を行う状態を示している。いずれの積和単位においても、その備えるレジスタ43にはデータ“0”が格納されている。また被乗数提供部100においては、レジスタ105,106,107,108からはそれぞれA0,A1,A2,A3が出力されている。積和処理部400が備えるレジスタ乗算器203の乗数はα12であるので積和処理部400に出力する初期値としてはα15=1が採用される。よってこの初期値に対応して、レジスタ301,302,303,305からはそれぞれT41,T42,T43,T44に対応する値“0”,“0”,“0”,“1”が出力されている。
【0034】
積和単位401において、アンドゲート41にはいずれも1ビットのデータT41、A3が入力する。レジスタ43からその初期値として“0”が出力されているので、XORゲート42はアンドゲート41の出力をそのまま出力する。これによりレジスタ43の入力には、被乗数Aの1ビットA3と、乗数α15の1ビットT41とのガロア拡大体GF(2m)の乗算結果であるA3・T41が与えられる。乗算記号「・」はガロア拡大体GF(2m)における乗算を示す。但し積和単位401の出力はレジスタ43の出力から得られるので、この時点では積和単位401の出力は“0”である。
【0035】
同様にして、積和単位402のレジスタ43の入力にはA3・T42が与えられ、積和単位403のレジスタ43の入力にはA3・T43が与えられ、積和単位404のレジスタ43の入力にはA3・T44が与えられる。そして積和単位402,403,404のいずれの出力も“0”である。
【0036】
図4は、図3に示された状態から1クロック分の時間が経過した場合の状態を示すブロック図である。被乗数提供部100においてレジスタ106,107,108からは、それぞれ1ビットのデータA0,A1,A2が出力される。一方、乗数提供部300からはレジスタ301,302,303,305においてそれぞれT31,T32,T33,T34に対応する値“1”,“0”,“0”,“1”が出力されている。
【0037】
積和単位401において、レジスタ43からは1クロック分前の動作で入力されたA3・T41が出力されている。一方、アンドゲート41にはいずれも1ビットのデータT31、A2が入力するので、XORゲート42はA3・T41+A2・T31(但し加算記号「+」は排他的論理和を示す)を出力する。これによりレジスタ43の入力にはA3・T41+A2・T31が与えられる。但し積和単位401の出力はA3・T41である。
【0038】
同様にして、積和単位402のレジスタ43の入力にはA3・T42+A2・T32が与えられ、積和単位403のレジスタ43の入力にはA3・T43+A2・T33が与えられ、積和単位404のレジスタ43の入力にはA3・T44+A2・T34が与えられる。そして積和単位402,403,404の出力は、それぞれA3・T42,A3・T43,A3・T44となる。
【0039】
図5は、図4に示された状態から1クロック分の時間が経過した場合の状態を示すブロック図である。被乗数提供部100においてレジスタ107,108からは、それぞれ1ビットのデータA0,A1が出力される。一方、乗数提供部300ではレジスタ301,302,303,305からそれぞれT21,T22,T23,T24に対応する値“1”,“1”,“0”,“1”が出力されている。
【0040】
積和単位401において、レジスタ43からは1クロック分前の動作で入力されたA3・T41+A2・T31が格納されている。一方、アンドゲート41にはいずれも1ビットのデータT21、A1が入力するので、XORゲート42はA3・T41+A2・T31+A1・T21を出力する。これによりレジスタ43の入力にはA3・T41+A2・T31+A1・T21が与えられる。但し積和単位401の出力はA3・T41+A2・T31である。
【0041】
同様にして、積和単位402のレジスタ43の入力にはA3・T42+A2・T32+A1・T22が与えられ、積和単位403のレジスタ43の入力にはA3・T43+A2・T33+A1・T23が与えられ、積和単位404のレジスタ43の入力にはA3・T44+A2・T34+A1・T24が与えられる。そして積和単位402,403,404の出力は、それぞれA3・T42+A2・T32,A3・T43+A2・T33,A3・T44+A2・T34となる。
【0042】
図6は、図5に示された状態から1クロック分の時間が経過した場合の状態を示すブロック図である。被乗数提供部100においてレジスタ108からは1ビットのデータA0が出力される。一方、乗数提供部300ではレジスタ301,302,303,305からはそれぞれT11,T12,T13,T14に対応する値“1”,“1”,“1”,“1”が出力されている。
【0043】
図3乃至図5に示された場合と同様に動作が進み、積和単位401のレジスタ43の入力にはA3・T41+A2・T31+A1・T21+A0・T11が与えられ、積和単位402のレジスタ43の入力にはA3・T42+A2・T32+A1・T22+A0・T12が与えられ、積和単位403のレジスタ43の入力にはA3・T43+A2・T33+A1・T23+A0・T13が与えられ、積和単位404のレジスタ43の入力にはA3・T44+A2・T34+A1・T24+A0・T14が与えられる。そして積和単位401,402,403,404の出力は、それぞれA3・T41+A2・T31+A1・T21,A3・T42+A2・T32+A1・T22,A3・T43+A2・T33+A1・T23,A3・T44+A2・T34+A1・T24となる。
【0044】
図7は、図6に示された状態から1クロック分の時間が経過した場合の状態を示すブロック図である。被乗数提供部100において積和単位401,402,403,404からは、それぞれ1クロック分前においてレジスタ43に入力していたA3・T41+A2・T31+A1・T21+A0・T11,A3・T42+A2・T32+A1・T22+A0・T12,A3・T43+A2・T33+A1・T23+A0・T13,A3・T44+A2・T34+A1・T24+A0・T14が出力される。
【0045】
これにより式(3)が計算されたことになり、被乗数Aと乗数α12とのガウス拡大体GF(24)における乗算が行われたことになる。XORゲート42の一方の入力端にはアンドゲート41から得られた乗数の1ビット及び被乗数の1ビットのガロア拡大体GF(2m)での乗算結果が与えられる。XORゲート42の他方の入力端には、XORゲートの出力であって遅延されたものである、乗数の他の1ビット及び被乗数の他の1ビットのガロア拡大体GF(2m)での乗算結果が与えられる。よってレジスタ43の遅延時間を適切に(ここでは1クロック分)設定することにより、ベクトル表現した乗数と被乗数との積を得ることができる。
【0046】
図3に示された乗算器では乗算を計算するのに4クロック分が必要となる。よって符号化器1において本実施の形態に示された乗算器を採用する場合には、入力データDを与えるタイミングを4倍引き延ばす必要がある。しかしながら乗数が固定されている場合に特に好適であり、生成多項式に基づいて乗数が固定された乗算器として採用されることにより、符号化器の構成の冗長を小さくすることができる。
【0047】
符号長をnビットとするならば、乗数αsを乗算する場合には、乗数提供部300のレジスタにはαs+(n−1)をベクトル表現した値を初期値として格納すればよい。そして乗数提供部300は、上述の通り、ガロア拡大体を得るために用いた既約原始多項式に基づいて、レジスタ、XORゲートを用いて構成することができる。
【0048】
但し、乗数提供部300としては、図3に示されたような1クロック毎にガロア拡大体GF(24)の元をαの指数を1次ずつ低くして出力するもの以外に、αの指数を1次ずつ高くして出力するものを採用することができる。図8はこのような乗数提供部300の構造を例示するブロック図であり、例えば特公平6−80491号公報によって開示されている。乗算器300においてレジスタ301の出力T1はXORゲート304の一方の入力となると共にレジスタ305の入力にもなる。レジスタ305の出力T4はXORゲート304の他方の入力となる。XORゲート304の出力はレジスタ303の入力となる。レジスタ303の出力T3はレジスタ302の入力となる。レジスタ302の出力T2はレジスタ301の入力となる。レジスタ301,302,303,305の初期値として値T11,T12,T13,T14を格納しておくことにより、1クロック分の時間が経過する毎に、出力T1は値T11,T21,T31,T41を、出力T2はT12,T22,T32,T42を、出力T3はT13,T23,T33,T43を、出力T4はT14,T24,T34,T44を、それぞれ順次に採ってゆく。
【0049】
図8の乗数提供部300を採用する場合に式(3)を計算するためには、被乗数Aが被乗数提供部100に入力する順序を図3に示された場合と逆にする。即ち、まずA0を入力し、その後順次にA1,A2,A3を入力する。
【0050】
実施の形態2.
図9は、図1に示された符号化器1の乗算器200,202,203として採用可能な、実施の形態2にかかる乗算器の構成を示す回路図である。当該乗算器も実施の形態1と同様に、被乗数提供部100と、乗数提供部300と、積和処理部400とを備えている。
【0051】
実施の形態2の被乗数提供部100の構造は、実施の形態1と同様に直列に接続された4つのレジスタ105,106,107,108を有しており、これらはこの順に積和処理部400へと近づく配置がなされている。被乗数提供部100には被乗数Aの4ビットデータA3A2A1A0が最上位ビットから順に、即ちA3,A2,A1,A0の順に、1ビットずつ積和処理部400に入力される。但しレジスタ105,106,107,108はそれぞれ後述するクロック信号CK2の1クロック分だけ遅延してデータを伝達する。
【0052】
実施の形態2の乗数提供部300は、実施の形態1に示された乗数提供部300の構造(図3参照)に対して、マルチプレクサ306と、2ビットカウンタ307とを追加した構成を有している。マルチプレクサ306は2ビットカウンタ307の制御に基づいてレジスタ301,302,303,305の出力から一つを選択して出力する。2ビットカウンタ307はクロック信号CK1に基づいてカウント動作を行い、クロック信号CK1の4クロック分でカウント動作は一巡する。これに伴い2ビットカウンタ307からはクロック信号CK1の4クロック分を一周期とするクロック信号CK2を出力する。即ちクロック信号CK2の1クロック分はクロック信号CK1の4クロック分に相当する。そしてレジスタ301,302,303,305はそれぞれクロック信号CK2の1クロック分だけ遅延してデータを伝達する。
【0053】
実施の形態2の積和処理部400は、実施の形態1に示された積和単位が一つだけ備えられており、そのレジスタ43を、XORゲート42の出力から近い方から順に、レジスタ43a,43b,43c,43dの直列接続として有する構造を呈している。これらのレジスタはいずれもクロック信号CK1の1クロック分だけ遅延してデータを伝達する。よってレジスタ43の全体としては、乗数のベクトルを構成する要素の数4と、クロック信号CK1の1クロックとの積でデータが遅延して伝達されることになる。
【0054】
図9は最初の積和演算を行う状態を示している。レジスタ43a,43b,43c,43dのいずれからも、データ“0”が出力されている。また被乗数提供部100においては、レジスタ105,106,107,108にはそれぞれA0,A1,A2,A3が出力されている。符号化器1が備えるレジスタ乗算器203の乗数はα12であるので積和処理部400に出力する初期値としてはα15=1が採用される。よってこの初期値に対応して、レジスタ301,302,303,305からそれぞれT41,T42,T43,T44に対応する値“0”,“0”,“0”,“1”が出力されている。積和処理部400においてXORゲート42からは出力A3・T41が得られている。
【0055】
図10は図9に示された状態からクロック信号CK1の1クロック分の時間が経過した場合の状態を示すブロック図である。この状態ではレジスタ105,106,107,108,301,302,303,305が出力するデータは変化していない。しかしマルチプレクサ306は2ビットカウンタ307の制御を受けて、データT42を選択して出力する。これによりXORゲート42からは出力A3・T42が得られている。レジスタ43aからは、クロック信号CK1の1クロック分前に入力したデータA3・T41が出力されている。
【0056】
図11は図10に示された状態からクロック信号CK1の2クロック分の時間が経過した場合の状態を示すブロック図である。マルチプレクサ306は2ビットカウンタ307の制御を受けて、データT44を出力する。これによりXORゲート42からは出力A3・T44が得られている。レジスタ43a,43b,43c,43dからはそれぞれA3・T43,A3・T42,A3・T41,“0”が出力されている。
【0057】
図12は図11に示された状態からクロック信号CK1の1クロック分の時間が経過した場合の状態を示すブロック図である。この状態では、図9に示された状態からクロック信号CK2の1クロック分の時間が経過している。よってレジスタ106,107,108,301,302,303,305が出力するデータがそれぞれA0,A1,A2,T31,T32,T33,T34に変化する。マルチプレクサ306は2ビットカウンタ307の制御を受けて、データT31を出力する。
レジスタ43a,43b,43c,43dからはそれぞれA3・T44,A3・T43,A3・T42,A3・T41が出力されている。XORゲート42にはアンドゲート41の出力A2・T31とレジスタ43dの出力A3・T41が入力するので、XORゲート42の出力はA3・T41+A2・T31となる。このようにして、クロック信号CK1の4クロック分が経過することにより、実施の形態1において図4で示された積和単位401のXORゲート42の出力が得られることになる。実施の形態2において積和処理部400のレジスタ43は、シリアルの4ビットデータをクロック信号CK1の1クロック分が経過する度に、ビット毎に順次シフトさせる機能を果たすといえる。
【0058】
図13は図9に示された状態からクロック信号CK1の13クロック分の時間が経過した状態を示すブロック図である。レジスタ301,302,303,305からはそれぞれT11,T12,T13,T14が出力されており、マルチプレクサ306は2ビットカウンタ307の制御によってレジスタ301から得られたデータT11を出力している。レジスタ108からは乗数Aの最下位ビットのデータA0が出力されており、従ってアンドゲート41からはデータA0・T11が出力されている。レジスタ43a,43b,43c,43dからはそれぞれA3・T44+A2・T34+A1・T24,A3・T43+A2・T33+A1・T23,A3・T42+A2・T32+A1・T22,A3・T41+A2・T31+A1・T21が出力されている。よってXORゲート42の出力はA3・T41+A2・T31+A1・T21+A0・T11となる。
【0059】
図13に示された状態からクロック信号CK1の3クロック分の時間が経過することにより、レジスタ43a,43b,43c,43dにはそれぞれA3・T44+A2・T34+A1・T24+A0・T14,A3・T43+A2・T33+A1・T23+A0・T13,A3・T42+A2・T32+A1・T22+A0・T12,A3・T41+A2・T31+A1・T21+A0・T11が入力する。このように、図3に示された状態からクロック信号CK1の16クロック分の時間(クロック信号CK2の4クロック分の時間)が経過して、実施の形態1において図6で示された積和単位401〜403のXORゲート42の出力が得られることになる。
【0060】
その後、更にクロック信号CK1の1クロック分ずつ時間が経過する毎に、積和演算処理部400の出力Bは、順次A3・T41+A2・T31+A1・T21+A0・T11,A3・T42+A2・T32+A1・T22+A0・T12,A3・T43+A2・T33+A1・T23+A0・T13,A3・T44+A2・T34+A1・T24+A0・T14を出力する。
【0061】
以上のようにして、本実施の形態によって式(3)の結果を得るまでにはクロック信号CK1の20クロック分が必要である。実施の形態1によって同じ結果を得るまでにはクロック信号の5クロック分が必要であった。従って、本実施の形態では実施の形態1と比較して動作が4倍遅くなる。これに伴って符号化器1の動作も4倍遅くなる。しかしながら図3及び図9を比較すると明白なように、本実施の形態の方が、実施の形態1と比較して、アンドゲート3個分、XORゲート3個分を省略し、回路規模が小さくなる。
【0062】
本実施の形態においても、図8に示された乗算提供部300を採用することができる。この場合、実施の形態1において説明したように、被乗数Aの各ビットを積和処理部400に与える順序を逆にする必要がある。
【0063】
【発明の効果】
この発明のうち請求項1にかかる演算器によれば、第1ゲートの第1端及び第2端に、それぞれ乗数の1ビット及び被乗数の1ビットを与えることにより、両者のガロア拡大体GF(2m)での乗算結果が第1ゲートから得られる。当該結果は第2ゲートの第1端に与えられる。第2ゲートの第2端には、被乗数の他の1ビットと乗数の他の1ビットとのガロア拡大体GF(2m)での乗算結果が与えられる。よって第2ゲートの第2端に与えるデータとして、第2ゲートの出力を所定の時間遅延したものを採用することにより、ベクトル表現した乗数と被乗数との積を得ることができる。
【0064】
この発明のうち請求項2にかかる演算器によれば、積和単位の数を低減して回路規模を小さくして、ガロア拡大体GF(2m)での乗数と被乗数との積を得ることができる。
【0065】
この発明のうち請求項3にかかる演算器によれば、積和単位の数を一層低減して回路規模を更に小さくして、ガロア拡大体GF(2m)での乗数と被乗数との積を得ることができる。
【図面の簡単な説明】
【図1】本発明の実施の形態にかかる乗算器が適用可能な符号器の構造を示すブロック図である。
【図2】XORゲートの構成例を示す回路図である。
【図3】本発明の実施の形態1にかかる乗算器の構成を示す回路図である。
【図4】本発明の実施の形態1にかかる乗算器の動作を示す回路図である。
【図5】本発明の実施の形態1にかかる乗算器の動作を示す回路図である。
【図6】本発明の実施の形態1にかかる乗算器の動作を示す回路図である。
【図7】本発明の実施の形態1にかかる乗算器の動作を示す回路図である。
【図8】乗数提供部の構造を例示するブロック図である。
【図9】本発明の実施の形態2にかかる乗算器の動作を示す回路図である。
【図10】本発明の実施の形態2にかかる乗算器の動作を示す回路図である。
【図11】本発明の実施の形態2にかかる乗算器の動作を示す回路図である。
【図12】本発明の実施の形態2にかかる乗算器の動作を示す回路図である。
【図13】本発明の実施の形態2にかかる乗算器の動作を示す回路図である。
【図14】従来の技術を示す回路図である。
【符号の説明】
41 アンドゲート、42 XORゲート、43,43a〜43d,105〜108,301〜304 レジスタ、100 被乗数提供部、200〜203 乗算器、300 乗数提供部、400 積和処理部、401〜404 積和単位。[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an arithmetic unit, and is suitable for, for example, multiplication in a Galois extension field.
[0002]
[Prior art]
2. Description of the Related Art In recent years, digitization and IT have been advanced in all fields, and attention has been paid to digital data recording and communication. As an error correction method in the digital data recording system and the communication system, a Reed-Solomon code, a BCH code, and the like are often used. These codes are created by using the properties of the Galois extension field, and the handling thereof requires operations in the Galois extension field. In particular, from the Galois field GF (2) to the Galois extended field GF (2) m )), Let α be the root of an m-th order primitive irreducible polynomial used in the Galois extension field. i And b = α j Must be multiplied by
[0003]
FIG. 14 is a block diagram showing a configuration of a conventional multiplier that performs multiplication in an extended Galois field. The multiplicand a and the multiplier b are input to
[0004]
[Problems to be solved by the invention]
In the above-described multiplier, it is common to use a conversion table for both logarithmic conversion and antilogarithmic conversion. However, in a multiplier employed in a Reed-Solomon code encoder, a generator polynomial for constituting the code is determined solely, and the multiplier is often constant. Therefore, when the multiplier using the above conversion table is employed in the encoder of the Reed-Solomon code, an unnecessary function of responding to a plurality of different multipliers is performed, and there is a problem that the circuit scale is redundant.
[0005]
The present invention has been made to solve the above problems, and has as its object to provide a technique for realizing multiplication in a Galois extension field with a small circuit scale.
[0006]
[Means for Solving the Problems]
An arithmetic unit according to
[0007]
According to a second aspect of the present invention, there is provided the arithmetic unit according to the first aspect, wherein a multiplier providing unit for sequentially outputting a plurality of vectors constituting a matrix set based on the multiplier, and a multiplicand of 1 And a multiplicand providing unit that outputs bit by bit. A plurality of the sum-of-products units are provided for each element of the vector, and each of the sum-of-products units inputs the corresponding element to the first end of the first gate. Also, the one bit of the multiplicand is input to the second terminal of the first gate of the device, and the delay unit delays the signal applied to the input terminal of the device by one unit time.
[0008]
According to a third aspect of the present invention, there is provided the arithmetic unit according to the first aspect, wherein a plurality of vectors constituting a matrix set based on the multiplier are sequentially output for each element. And a multiplicand providing unit that outputs the multiplicand one bit at a time. The element is input to the first end of the first gate of the product-sum unit, and the one bit of the multiplicand is input to the second end of the first gate of the product-sum unit, The delay unit delays a signal supplied to its input terminal by a product of the number of elements constituting the vector and the unit time.
[0009]
BEST MODE FOR CARRYING OUT THE INVENTION
FIG. 1 is a block diagram showing the structure of an
[0010]
(Equation 1)
[0011]
(Equation 2)
[0012]
The
[0013]
Here, the input data D to be coded is updated every four bits, and the
[0014]
[0015]
The XOR
[0016]
The
[0017]
Each time the operation for one clock advances, the input data A applies new 4-bit data to the
[0018]
FIG. 3 is a circuit diagram showing a configuration of the multiplier according to the first embodiment, which can be employed as the
[0019]
The multiplier includes a
[0020]
The
[0021]
To obtain the above vector representation, the output of
[0022]
In general, multiplication of a Galois extended field having a code length of 4 bits is represented by Expression (3) as disclosed in the above publication.
[0023]
[Equation 3]
[0024]
Where coefficient T 11 , T 12 , T 13 , T 14 Matches the value of the multiplier expressed as a vector. Equations (4) to (6) hold. The multiplication symbol "x" shown here is a Galois extended field GF (2 m ) Shows the multiplication of the vectors.
[0025]
(Equation 4)
[0026]
(Equation 5)
[0027]
(Equation 6)
[0028]
That is, the matrix expressed by the equation (3) is obtained by converting a plurality of vectors (T 11 , T 12 , T 13 , T 14 ), (T 21 , T 22 , T 23 , T 24 ), (T 31 , T 32 , T 33 , T 34 ), (T 41 , T 42 , T 43 , T 44 ).
[0029]
By the way, as described above, the
[0030]
The sum-of-
[0031]
The sum-of-
[0032]
Hereinafter, the operation when the multiplier shown in FIG. 3 is adopted as the
[0033]
FIG. 3 shows a state where the first product-sum operation is performed. In any unit of sum of products, data “0” is stored in the
[0034]
In the sum-of-
[0035]
Similarly, the input of the
[0036]
FIG. 4 is a block diagram showing a state where one clock has elapsed from the state shown in FIG. In the
[0037]
In the sum-of-
[0038]
Similarly, the input of the
[0039]
FIG. 5 is a block diagram showing a state when one clock has elapsed from the state shown in FIG. In the
[0040]
In the sum-of-
[0041]
Similarly, the input of the
[0042]
FIG. 6 is a block diagram showing a state when one clock has elapsed from the state shown in FIG. In the
[0043]
The operation proceeds as in the case shown in FIGS. 3 to 5, and the input to the
[0044]
FIG. 7 is a block diagram showing a state where one clock has elapsed from the state shown in FIG. In the
[0045]
Thus, equation (3) is calculated, and the multiplicand A and the multiplier α 12 Gaussian extension GF (2 4 ) Is performed. One input terminal of the
[0046]
The multiplier shown in FIG. 3 requires four clocks to calculate the multiplication. Therefore, when the multiplier described in the present embodiment is employed in
[0047]
If the code length is n bits, the multiplier α s , The register of the
[0048]
However, as the
[0049]
In order to calculate Equation (3) when employing the
[0050]
FIG. 9 is a circuit diagram showing a configuration of the multiplier according to the second embodiment, which can be employed as the
[0051]
The structure of the
[0052]
The
[0053]
The sum-of-
[0054]
FIG. 9 shows a state where the first product-sum operation is performed. Data “0” is output from each of the
[0055]
FIG. 10 is a block diagram showing a state when a time corresponding to one clock of clock signal CK1 has elapsed from the state shown in FIG. In this state, the data output from the
[0056]
FIG. 11 is a block diagram showing a state when a time corresponding to two clocks of clock signal CK1 has elapsed from the state shown in FIG. The
[0057]
FIG. 12 is a block diagram showing a state when a time corresponding to one clock of clock signal CK1 has elapsed from the state shown in FIG. In this state, the time corresponding to one clock of the clock signal CK2 has elapsed from the state shown in FIG. Therefore, the data output from the
A from
[0058]
FIG. 13 is a block diagram showing a state where a time equivalent to 13 clocks of clock signal CK1 has elapsed from the state shown in FIG. The
[0059]
When three clocks of the clock signal CK1 have elapsed from the state shown in FIG. 13, the
[0060]
Thereafter, the output B of the product-sum
[0061]
As described above, it takes 20 clocks of the clock signal CK1 to obtain the result of Expression (3) according to the present embodiment. It took five clock signals to obtain the same result according to the first embodiment. Therefore, the operation of this embodiment is four times slower than that of the first embodiment. As a result, the operation of the
[0062]
Also in the present embodiment,
[0063]
【The invention's effect】
According to the arithmetic unit according to
[0064]
According to the arithmetic unit according to
[0065]
According to the arithmetic unit according to claim 3 of the present invention, the number of multiply-accumulate units is further reduced, the circuit scale is further reduced, and the Galois extended field GF (2 m ), The product of the multiplier and the multiplicand can be obtained.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a structure of an encoder to which a multiplier according to an embodiment of the present invention can be applied.
FIG. 2 is a circuit diagram showing a configuration example of an XOR gate.
FIG. 3 is a circuit diagram showing a configuration of a multiplier according to the first exemplary embodiment of the present invention.
FIG. 4 is a circuit diagram showing an operation of the multiplier according to the first embodiment of the present invention.
FIG. 5 is a circuit diagram showing an operation of the multiplier according to the first exemplary embodiment of the present invention.
FIG. 6 is a circuit diagram showing an operation of the multiplier according to the first embodiment of the present invention.
FIG. 7 is a circuit diagram showing an operation of the multiplier according to the first embodiment of the present invention.
FIG. 8 is a block diagram illustrating the structure of a multiplier providing unit;
FIG. 9 is a circuit diagram showing an operation of the multiplier according to the second embodiment of the present invention.
FIG. 10 is a circuit diagram showing an operation of the multiplier according to the second embodiment of the present invention.
FIG. 11 is a circuit diagram showing an operation of the multiplier according to the second embodiment of the present invention.
FIG. 12 is a circuit diagram showing an operation of the multiplier according to the second embodiment of the present invention.
FIG. 13 is a circuit diagram showing an operation of the multiplier according to the second embodiment of the present invention.
FIG. 14 is a circuit diagram showing a conventional technique.
[Explanation of symbols]
41 AND gate, 42 XOR gate, 43, 43a to 43d, 105 to 108, 301 to 304 register, 100 multiplicand providing unit, 200 to 203 multiplier, 300 multiplier providing unit, 400 product-sum processing unit, 401-404 product-sum unit.
Claims (3)
第1端及び第2端、並びに自身の前記第1端及び前記第2端に入力する信号の二値論理についての論理積を出力する出力端を有する第1ゲートと、
前記第1ゲートの出力を入力する第1端と、前記遅延器の出力端に接続された第2端と、並びに自身の前記第1端及び前記第2端に入力する信号の二値論理についての排他的論理和を前記遅延器の前記入力端に出力する出力端とを有する第2ゲートと
を備える積和単位を、少なくとも一つ含む演算器。An input terminal, a delay device having an output terminal for delaying the signal given to the input terminal by at least one unit time and outputting the delayed signal;
A first gate having a first end and a second end, and an output end for outputting a logical AND of binary signals of signals input to the first end and the second end of the first gate;
A first terminal for inputting the output of the first gate, a second terminal connected to the output terminal of the delay device, and binary logic of signals input to the first terminal and the second terminal of the delay device. And a second gate having an output terminal for outputting an exclusive OR of the signals to the input terminal of the delay unit.
被乗数を1ビットずつ出力する被乗数提供部と
を更に備え、
前記積和単位は前記ベクトルの要素毎に複数設けられて、各々の前記積和単位が自身に対応する前記要素を前記第1ゲートの前記第1端に入力され、
いずれの前記積和単位も、自身の前記第1ゲートの前記第2端には前記被乗数の前記1ビットが入力され、
前記遅延器は一つの単位時間だけ、自身の前記入力端に与えられた信号を遅延させる、請求項1記載の演算器。A multiplier providing unit in which a plurality of vectors constituting a matrix set based on the multiplier are sequentially output,
A multiplicand providing unit that outputs the multiplicand one bit at a time.
A plurality of the sum-of-product units are provided for each element of the vector, and each of the sum-of-product units inputs the element corresponding to itself to the first end of the first gate,
In any of the sum-of-product units, the 1-bit of the multiplicand is input to the second end of the first gate of the unit.
The arithmetic unit according to claim 1, wherein the delay unit delays a signal applied to the input terminal of the delay unit by one unit time.
被乗数を1ビットずつ出力する被乗数提供部と
を更に備え、
前記積和単位の前記第1ゲートの前記第1端には前記要素が入力され、
前記積和単位の前記第1ゲートの前記第2端には前記被乗数の前記1ビットが入力され、
前記遅延器は前記ベクトルを構成する要素の数と前記単位時間との積で、自身の前記入力端に与えられた信号を遅延させる、請求項1記載の演算器。A plurality of vectors constituting a matrix set based on the multiplier, a multiplier providing unit sequentially output for each element,
A multiplicand providing unit that outputs the multiplicand one bit at a time.
The element is input to the first end of the first gate of the product-sum unit,
The first bit of the multiplicand is input to the second end of the first gate of the product-sum unit,
The arithmetic unit according to claim 1, wherein the delay unit delays a signal supplied to the input terminal of the delay unit by a product of the number of elements constituting the vector and the unit time.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002207978A JP2004054384A (en) | 2002-07-17 | 2002-07-17 | Arithmetic unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002207978A JP2004054384A (en) | 2002-07-17 | 2002-07-17 | Arithmetic unit |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004054384A true JP2004054384A (en) | 2004-02-19 |
Family
ID=31932248
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002207978A Pending JP2004054384A (en) | 2002-07-17 | 2002-07-17 | Arithmetic unit |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004054384A (en) |
-
2002
- 2002-07-17 JP JP2002207978A patent/JP2004054384A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104391675B (en) | Apparatus and processor for improving processing efficiency | |
WO2011142133A1 (en) | Error-correcting code processing method and device | |
US4797848A (en) | Pipelined bit-serial Galois Field multiplier | |
JPH0464211B2 (en) | ||
EP0729611A1 (en) | Reed-solomon decoder | |
JP5978382B2 (en) | Parallel encoding of non-binary linear block codes | |
JPH09507110A (en) | Finite field inversion | |
EP0447245A2 (en) | Bit-serial division method and apparatus | |
Ji et al. | Fast parallel CRC algorithm and implementation on a configurable processor | |
WO2013189274A1 (en) | Circuit, encoder and method for parallel bch coding | |
KR100322739B1 (en) | Finite Field Computation Method and Its Apparatus | |
US6263471B1 (en) | Method and apparatus for decoding an error correction code | |
JPH09505952A (en) | Programmable redundancy / syndrome generator | |
US6052704A (en) | Exponentiation circuit and inverter based on power-sum circuit for finite field GF(2m) | |
JPS61277231A (en) | Transmission of information for correction of error burst and encoder/decoder using this method | |
JP2000004169A (en) | Crc operating method and crc arithmetic circuit | |
JP4045872B2 (en) | Encoding method and encoding apparatus | |
JP2004054384A (en) | Arithmetic unit | |
WO2006120691A1 (en) | Galois field arithmetic unit for error detection and correction in processors | |
KR20040041282A (en) | Method and Apparatus for basis conversion in a finite field | |
US6138134A (en) | Computational method and apparatus for finite field multiplication | |
KR100893695B1 (en) | Architecture of fast-serial finite field multiplier | |
TWI523437B (en) | Encoding and syndrome computing co-design circuit for bch code and method for deciding the same | |
US7287207B2 (en) | Method and apparatus for computing parity characters for a codeword of a cyclic code | |
JPH11110241A (en) | Multiplication method for galois field and multiplication circuit therefor |