JP2004054384A - Arithmetic unit - Google Patents

Arithmetic unit Download PDF

Info

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
Application number
JP2002207978A
Other languages
Japanese (ja)
Inventor
Takashi Hirozawa
広沢 隆
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology 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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2002207978A priority Critical patent/JP2004054384A/en
Publication of JP2004054384A publication Critical patent/JP2004054384A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To achieve multiplication in a Galois extension field by a small circuit scale. <P>SOLUTION: A plurality of vector elements T<SB>41</SB>constituting a matrix which is set based on a multiplier are defined as one input of an AND gate 41 in a product sum unit 401. In the same way, the elements T<SB>42</SB>, T<SB>43</SB>, T<SB>44</SB>are defined as the one input of the AND gates 41 in the respective product sum units 402, 403, and 404. One bit of a multiplicand is defined as the other input of the AND gates 41 in the respective product sum units 401-404. The output of the AND gate 41 is given to the one input of an XOR gate 42. The output of a register 43 is given to the other input of the XOR gate 42. The output of the XOR gate 42 is inputted to the register 43. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
この発明は演算器に関し、例えばガロア拡大体における乗算に適する。
【0002】
【従来の技術】
近年、あらゆる分野においてデジタル化、IT化が進み、デジタルデータ記録や通信に対して注目が集まっている。この、デジタルデータ記録方式や通信方式における誤り訂正方法として、リードソロモン符号やBCH符号などがよく利用されている。これらの符号はガロア拡大体の性質を利用して作られており、その扱いにはガロア拡大体における演算が必須となる。特にガロア体GF(2)からガロア拡大体GF(2)を得る際に採用されるm次の原始既約多項式の根をαとすると、ガロア拡大体における乗算ではa=αと、b=αとの乗算が必要となる。
【0003】
図14は、ガロア拡大体における乗算を行う従来の乗算器の構成を示すブロック図である。被乗数a及び乗数bはそれぞれ対数変換ブロック101,102に入力し、各々で指数i,jが求められる。指数i,jは加算ブロック103に与えられ、ここにおいて指数i,jの和の(q−1)を法とする剰余として指数kが得られる(但し体の位数2をqとする)。その後指数kは逆対数変換ブロック104に与えられ、積cがαとして求められる。
【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】

Figure 2004054384
【0011】
【数2】
Figure 2004054384
【0012】
符号器1は生成多項式に基づいて入力データの剰余を求めるため、生成多項式の係数に基づいた乗算器200,201,202,203を備えている。生成多項式の係数は、不定元χの低次から高次へと向かう順にα,1,α,α12,1であるので、乗算器200,201,202,203はそれぞれ乗数α,1,α,α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(2)の加算結果と一致する。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ビットデータAを最上位ビットから順に、即ちA,A,A,Aの順に、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(2)の元は、αの累乗として表すことができ、指数が増加する順に、ベクトル表現で次の様に表される。即ち(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(2)の元を、αの指数を1次ずつ低くして出力する。
【0022】
一般に符号長が4ビットであるガロア拡大体の乗算は、上記公報にも開示されているように、式(3)で表され
【0023】
【数3】
Figure 2004054384
【0024】
但し係数T11,T12,T13,T14は乗数をベクトル表現した値と一致する。また、式(4)〜(6)が成立する。ここで示された乗算記号「×」はガロア拡大体GF(2)におけるベクトルの乗算を示す。
【0025】
【数4】
Figure 2004054384
【0026】
【数5】
Figure 2004054384
【0027】
【数6】
Figure 2004054384
【0028】
つまり(3)式で表された行列は、乗数に基づいた複数のベクトル(T11,T12,T13,T14),(T21,T22,T23,T24),(T31,T32,T33,T34),(T41,T42,T43,T44)で構成されている。
【0029】
さて、上述の通り、乗数提供部300は1クロック毎にガロア拡大体GF(2)の元を、αの指数を1次ずつ低くして出力する。よって乗数Nとαとの間でガロア拡大体の乗算を行った結果を、初期値としてレジスタ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からはそれぞれA,A,A,Aが出力されている。積和処理部400が備えるレジスタ乗算器203の乗数はα12であるので積和処理部400に出力する初期値としてはα15=1が採用される。よってこの初期値に対応して、レジスタ301,302,303,305からはそれぞれT41,T42,T43,T44に対応する値“0”,“0”,“0”,“1”が出力されている。
【0034】
積和単位401において、アンドゲート41にはいずれも1ビットのデータT41、Aが入力する。レジスタ43からその初期値として“0”が出力されているので、XORゲート42はアンドゲート41の出力をそのまま出力する。これによりレジスタ43の入力には、被乗数Aの1ビットAと、乗数α15の1ビットT41とのガロア拡大体GF(2)の乗算結果であるA・T41が与えられる。乗算記号「・」はガロア拡大体GF(2)における乗算を示す。但し積和単位401の出力はレジスタ43の出力から得られるので、この時点では積和単位401の出力は“0”である。
【0035】
同様にして、積和単位402のレジスタ43の入力にはA・T42が与えられ、積和単位403のレジスタ43の入力にはA・T43が与えられ、積和単位404のレジスタ43の入力にはA・T44が与えられる。そして積和単位402,403,404のいずれの出力も“0”である。
【0036】
図4は、図3に示された状態から1クロック分の時間が経過した場合の状態を示すブロック図である。被乗数提供部100においてレジスタ106,107,108からは、それぞれ1ビットのデータA,A,Aが出力される。一方、乗数提供部300からはレジスタ301,302,303,305においてそれぞれT31,T32,T33,T34に対応する値“1”,“0”,“0”,“1”が出力されている。
【0037】
積和単位401において、レジスタ43からは1クロック分前の動作で入力されたA・T41が出力されている。一方、アンドゲート41にはいずれも1ビットのデータT31、Aが入力するので、XORゲート42はA・T41+A・T31(但し加算記号「+」は排他的論理和を示す)を出力する。これによりレジスタ43の入力にはA・T41+A・T31が与えられる。但し積和単位401の出力はA・T41である。
【0038】
同様にして、積和単位402のレジスタ43の入力にはA・T42+A・T32が与えられ、積和単位403のレジスタ43の入力にはA・T43+A・T33が与えられ、積和単位404のレジスタ43の入力にはA・T44+A・T34が与えられる。そして積和単位402,403,404の出力は、それぞれA・T42,A・T43,A・T44となる。
【0039】
図5は、図4に示された状態から1クロック分の時間が経過した場合の状態を示すブロック図である。被乗数提供部100においてレジスタ107,108からは、それぞれ1ビットのデータA,Aが出力される。一方、乗数提供部300ではレジスタ301,302,303,305からそれぞれT21,T22,T23,T24に対応する値“1”,“1”,“0”,“1”が出力されている。
【0040】
積和単位401において、レジスタ43からは1クロック分前の動作で入力されたA・T41+A・T31が格納されている。一方、アンドゲート41にはいずれも1ビットのデータT21、Aが入力するので、XORゲート42はA・T41+A・T31+A・T21を出力する。これによりレジスタ43の入力にはA・T41+A・T31+A・T21が与えられる。但し積和単位401の出力はA・T41+A・T31である。
【0041】
同様にして、積和単位402のレジスタ43の入力にはA・T42+A・T32+A・T22が与えられ、積和単位403のレジスタ43の入力にはA・T43+A・T33+A・T23が与えられ、積和単位404のレジスタ43の入力にはA・T44+A・T34+A・T24が与えられる。そして積和単位402,403,404の出力は、それぞれA・T42+A・T32,A・T43+A・T33,A・T44+A・T34となる。
【0042】
図6は、図5に示された状態から1クロック分の時間が経過した場合の状態を示すブロック図である。被乗数提供部100においてレジスタ108からは1ビットのデータAが出力される。一方、乗数提供部300ではレジスタ301,302,303,305からはそれぞれT11,T12,T13,T14に対応する値“1”,“1”,“1”,“1”が出力されている。
【0043】
図3乃至図5に示された場合と同様に動作が進み、積和単位401のレジスタ43の入力にはA・T41+A・T31+A・T21+A・T11が与えられ、積和単位402のレジスタ43の入力にはA・T42+A・T32+A・T22+A・T12が与えられ、積和単位403のレジスタ43の入力にはA・T43+A・T33+A・T23+A・T13が与えられ、積和単位404のレジスタ43の入力にはA・T44+A・T34+A・T24+A・T14が与えられる。そして積和単位401,402,403,404の出力は、それぞれA・T41+A・T31+A・T21,A・T42+A・T32+A・T22,A・T43+A・T33+A・T23,A・T44+A・T34+A・T24となる。
【0044】
図7は、図6に示された状態から1クロック分の時間が経過した場合の状態を示すブロック図である。被乗数提供部100において積和単位401,402,403,404からは、それぞれ1クロック分前においてレジスタ43に入力していたA・T41+A・T31+A・T21+A・T11,A・T42+A・T32+A・T22+A・T12,A・T43+A・T33+A・T23+A・T13,A・T44+A・T34+A・T24+A・T14が出力される。
【0045】
これにより式(3)が計算されたことになり、被乗数Aと乗数α12とのガウス拡大体GF(2)における乗算が行われたことになる。XORゲート42の一方の入力端にはアンドゲート41から得られた乗数の1ビット及び被乗数の1ビットのガロア拡大体GF(2)での乗算結果が与えられる。XORゲート42の他方の入力端には、XORゲートの出力であって遅延されたものである、乗数の他の1ビット及び被乗数の他の1ビットのガロア拡大体GF(2)での乗算結果が与えられる。よってレジスタ43の遅延時間を適切に(ここでは1クロック分)設定することにより、ベクトル表現した乗数と被乗数との積を得ることができる。
【0046】
図3に示された乗算器では乗算を計算するのに4クロック分が必要となる。よって符号化器1において本実施の形態に示された乗算器を採用する場合には、入力データDを与えるタイミングを4倍引き延ばす必要がある。しかしながら乗数が固定されている場合に特に好適であり、生成多項式に基づいて乗数が固定された乗算器として採用されることにより、符号化器の構成の冗長を小さくすることができる。
【0047】
符号長をnビットとするならば、乗数αを乗算する場合には、乗数提供部300のレジスタにはαs+(n−1)をベクトル表現した値を初期値として格納すればよい。そして乗数提供部300は、上述の通り、ガロア拡大体を得るために用いた既約原始多項式に基づいて、レジスタ、XORゲートを用いて構成することができる。
【0048】
但し、乗数提供部300としては、図3に示されたような1クロック毎にガロア拡大体GF(2)の元をαの指数を1次ずつ低くして出力するもの以外に、αの指数を1次ずつ高くして出力するものを採用することができる。図8はこのような乗数提供部300の構造を例示するブロック図であり、例えば特公平6−80491号公報によって開示されている。乗算器300においてレジスタ301の出力TはXORゲート304の一方の入力となると共にレジスタ305の入力にもなる。レジスタ305の出力T4はXORゲート304の他方の入力となる。XORゲート304の出力はレジスタ303の入力となる。レジスタ303の出力Tはレジスタ302の入力となる。レジスタ302の出力Tはレジスタ301の入力となる。レジスタ301,302,303,305の初期値として値T11,T12,T13,T14を格納しておくことにより、1クロック分の時間が経過する毎に、出力Tは値T11,T21,T31,T41を、出力TはT12,T22,T32,T42を、出力TはT13,T23,T33,T43を、出力TはT14,T24,T34,T44を、それぞれ順次に採ってゆく。
【0049】
図8の乗数提供部300を採用する場合に式(3)を計算するためには、被乗数Aが被乗数提供部100に入力する順序を図3に示された場合と逆にする。即ち、まずAを入力し、その後順次にA,A,Aを入力する。
【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ビットデータAが最上位ビットから順に、即ちA,A,A,Aの順に、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にはそれぞれA,A,A,Aが出力されている。符号化器1が備えるレジスタ乗算器203の乗数はα12であるので積和処理部400に出力する初期値としてはα15=1が採用される。よってこの初期値に対応して、レジスタ301,302,303,305からそれぞれT41,T42,T43,T44に対応する値“0”,“0”,“0”,“1”が出力されている。積和処理部400においてXORゲート42からは出力A・T41が得られている。
【0055】
図10は図9に示された状態からクロック信号CK1の1クロック分の時間が経過した場合の状態を示すブロック図である。この状態ではレジスタ105,106,107,108,301,302,303,305が出力するデータは変化していない。しかしマルチプレクサ306は2ビットカウンタ307の制御を受けて、データT42を選択して出力する。これによりXORゲート42からは出力A・T42が得られている。レジスタ43aからは、クロック信号CK1の1クロック分前に入力したデータA・T41が出力されている。
【0056】
図11は図10に示された状態からクロック信号CK1の2クロック分の時間が経過した場合の状態を示すブロック図である。マルチプレクサ306は2ビットカウンタ307の制御を受けて、データT44を出力する。これによりXORゲート42からは出力A・T44が得られている。レジスタ43a,43b,43c,43dからはそれぞれA・T43,A・T42,A・T41,“0”が出力されている。
【0057】
図12は図11に示された状態からクロック信号CK1の1クロック分の時間が経過した場合の状態を示すブロック図である。この状態では、図9に示された状態からクロック信号CK2の1クロック分の時間が経過している。よってレジスタ106,107,108,301,302,303,305が出力するデータがそれぞれA,A,A,T31,T32,T33,T34に変化する。マルチプレクサ306は2ビットカウンタ307の制御を受けて、データT31を出力する。
レジスタ43a,43b,43c,43dからはそれぞれA・T44,A・T43,A・T42,A・T41が出力されている。XORゲート42にはアンドゲート41の出力A・T31とレジスタ43dの出力A・T41が入力するので、XORゲート42の出力はA・T41+A・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の最下位ビットのデータAが出力されており、従ってアンドゲート41からはデータA・T11が出力されている。レジスタ43a,43b,43c,43dからはそれぞれA・T44+A・T34+A・T24,A・T43+A・T33+A・T23,A・T42+A・T32+A・T22,A・T41+A・T31+A・T21が出力されている。よってXORゲート42の出力はA・T41+A・T31+A・T21+A・T11となる。
【0059】
図13に示された状態からクロック信号CK1の3クロック分の時間が経過することにより、レジスタ43a,43b,43c,43dにはそれぞれA・T44+A・T34+A・T24+A・T14,A・T43+A・T33+A・T23+A・T13,A・T42+A・T32+A・T22+A・T12,A・T41+A・T31+A・T21+A・T11が入力する。このように、図3に示された状態からクロック信号CK1の16クロック分の時間(クロック信号CK2の4クロック分の時間)が経過して、実施の形態1において図6で示された積和単位401〜403のXORゲート42の出力が得られることになる。
【0060】
その後、更にクロック信号CK1の1クロック分ずつ時間が経過する毎に、積和演算処理部400の出力Bは、順次A・T41+A・T31+A・T21+A・T11,A・T42+A・T32+A・T22+A・T12,A・T43+A・T33+A・T23+A・T13,A・T44+A・T34+A・T24+A・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(2)での乗算結果が第1ゲートから得られる。当該結果は第2ゲートの第1端に与えられる。第2ゲートの第2端には、被乗数の他の1ビットと乗数の他の1ビットとのガロア拡大体GF(2)での乗算結果が与えられる。よって第2ゲートの第2端に与えるデータとして、第2ゲートの出力を所定の時間遅延したものを採用することにより、ベクトル表現した乗数と被乗数との積を得ることができる。
【0064】
この発明のうち請求項2にかかる演算器によれば、積和単位の数を低減して回路規模を小さくして、ガロア拡大体GF(2)での乗数と被乗数との積を得ることができる。
【0065】
この発明のうち請求項3にかかる演算器によれば、積和単位の数を一層低減して回路規模を更に小さくして、ガロア拡大体GF(2)での乗数と被乗数との積を得ることができる。
【図面の簡単な説明】
【図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 logarithmic conversion blocks 101 and 102, respectively, and exponents i and j are obtained respectively. The exponents i and j are given to the addition block 103, where the exponent k is obtained as a remainder modulo (q-1) of the sum of the indices i and j (where the order of the field is 2 m Is q). After that, the exponent k is given to the inverse logarithmic transformation block 104, and the product c is α k Is required.
[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 claim 1 of the present invention is an arithmetic unit, and includes a delay unit having an input terminal, and an output terminal for delaying and outputting a signal given to the input terminal by at least one unit time, A first gate having a first end and a second end, an output end for outputting a logical AND of binary signals of signals input to the first end and the second end thereof, and an output of the first gate; , A second terminal connected to the output terminal of the delay unit, and an exclusive OR of binary signals of the signals input to the first terminal and the second terminal of the delay device. And a second gate having an output terminal for outputting to the input terminal of the delay unit.
[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
Embodiment 1 FIG.
FIG. 1 is a block diagram showing the structure of an encoder 1 to which a multiplier according to the present invention can be applied, which is known as an (8, 4) Reed-Solomon encoder. Here, a case where equations (1) and (2) are adopted as the irreducible primitive polynomial and the generator polynomial, respectively, will be exemplified.
[0010]
(Equation 1)
Figure 2004054384
[0011]
(Equation 2)
Figure 2004054384
[0012]
The encoder 1 includes multipliers 200, 201, 202, and 203 based on the coefficients of the generator polynomial in order to calculate the remainder of the input data based on the generator polynomial. The coefficients of the generator polynomial are α in order from the lower order to the higher order of the indefinite element χ 6 , 1, α 4 , Α 12 , 1, the multipliers 200, 201, 202, and 203 each have a multiplier α 6 , 1, α 4 , Α 12 Is used to perform multiplication of the Galois extension field. No multiplier corresponding to the highest order is required.
[0013]
Here, the input data D to be coded is updated every four bits, and the coder 1 uses the four-bit registers 204, 206, 208, 210, and the four-bit exclusive OR circuit (hereinafter referred to as "XOR gate"). ), 205, 207, 209, and 211. The input data A is input to the XOR gate 211 four bits per clock.
[0014]
Registers 204, 206, 208, and 210 store a 4-bit value “0000” as an initial value at the time of encoding. The XOR gates 205, 207, 209, and 211 calculate exclusive OR of two inputs that form a pair for each bit, and output the result for each bit. FIG. 2 is a circuit diagram showing a configuration example of each of the XOR gates 205, 207, 209, and 211. A configuration is shown in which 4-bit data L1 and L2 are input, and exclusive-OR of these is used to output 4-bit data L3. Two input XOR gates 21, 22, 23 and 24 are provided.
[0015]
The XOR gate 211 outputs an exclusive OR of the output of the register 210 and the input data D. The exclusive OR is the remainder modulo 2 of the ordinary sum, and is the Galois extension field GF (2 m ) Matches the addition result. The XOR gate 211 is provided to the multipliers 200, 201, 202, and 203, where the above-described multiplication is performed. However, the multiplier employed in the multiplier depends on the generator polynomial. In FIG. 1, the multipliers of the respective multipliers are illustrated based on the generator polynomial G (χ) illustrated in the equation (2), but other structures can be adopted if the generator polynomials are different. Outputs as multiplication results obtained from the multipliers 200, 201, 202, and 203 are supplied to a register 204 and XOR gates 205, 207, and 209, respectively.
[0016]
The XOR gate 205 takes the exclusive OR of the output of the register 204 and the output of the multiplier 201 and outputs the result to the register 206. The XOR gate 207 takes an exclusive OR of the output of the register 206 and the output of the multiplier 202 and outputs the result to the register 208. The XOR gate 209 takes an exclusive OR of the output of the register 208 and the output of the multiplier 203 and outputs the result to the register 210. However, since the multiplier of the multiplier 201 is 1, this is omitted, and the output of the XOR gate 211 can be directly supplied to the XOR gate 205.
[0017]
Each time the operation for one clock advances, the input data A applies new 4-bit data to the XOR gate 211, and the registers 204, 206, 208, and 210 apply the XOR gate to the 4-bit data applied thereto. Output to the gates 205, 207, 209, 211. As a result, four of the check blocks in the codeword are obtained as outputs of the registers 210, 208, 206, and 204 in order from the top. That is, the register 204 outputs the least significant 4 bits of the check block, and the register 210 outputs the most significant 4 bits of the check block.
[0018]
FIG. 3 is a circuit diagram showing a configuration of the multiplier according to the first embodiment, which can be employed as the multipliers 200, 202, and 203.
[0019]
The multiplier includes a multiplicand providing unit 100, a multiplier providing unit 300, and a product-sum processing unit 400. The multiplicand providing unit 100 outputs the 4-bit data A of the multiplicand A. 3 A 2 A 1 A 0 From the most significant bit, ie, A 3 , A 2 , A 1 , A 0 Are input to the product-sum processing unit 400 one bit at a time. The multiplicand providing unit 100 has four registers 105, 106, 107, and 108 connected in series, and these registers are arranged to approach the product-sum processing unit 400 in this order. Registers 105, 106, 107, and 108 each transmit data with a delay of one clock.
[0020]
The multiplier providing unit 300 has a structure depending on the irreducible primitive polynomial, and an initial value depending on the multiplier is set. FIG. 3 exemplifies a structure in which the irreducible primitive polynomial g (χ) represented by the equation (1) is employed, and in each case, a signal inputted thereto is delayed by one clock and output. Registers 301, 302, 303, and 305 and an XOR gate 304. Let α be the root at which the irreducible primitive polynomial g (χ) expressed by the equation (1) is equal to 0, and obtain the Galois extended field GF (2 4 ) Can be expressed as a power of α, and are expressed in vector expression as follows in the order of increasing exponents. That is, (0100), (0010), (0001), (1100), (0110), (0011), (1101), (1010), (0101), (1110), (0111), (1111), (1111) 1011), (1001), and (1000). If the exponent increases more than this, the above vector representation is used in a cyclical manner.
[0021]
To obtain the above vector representation, the output of register 301 is input to register 302, the output of register 302 is input to register 303, the output of register 303 is one input of XOR gate 304, and the output of XOR gate 304 is The input of the register 305 becomes an input of the register 301, and the output of the register 305 becomes the other input of the XOR gate 304. The multiplier providing unit 300 generates the Galois extended field GF (2 4 ) Is output by lowering the index of α by 1 order.
[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]
Figure 2004054384
[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)
Figure 2004054384
[0026]
(Equation 5)
Figure 2004054384
[0027]
(Equation 6)
Figure 2004054384
[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 multiplier providing unit 300 outputs the Galois extended field GF (2 4 ) Is output by lowering the index of α by 1 order. Therefore, the multiplier N and α 3 The result of the multiplication of the Galois extended field between? And? Is given to the registers 301, 302, 303, and 305 as an initial value. In this way, the vertical vector of the matrix of the equation (3) is output in order from the right every clock, and the product-sum operation of this and the multiplicand A is executed.
[0030]
The sum-of-products processing unit 400 has sum-of-product units 401, 402, 403, and 404 that receive the outputs of the registers 301, 302, 303, and 305, respectively, and that all receive the output of the register 108. That is, a plurality of sum-of-product units 401, 402, 403, and 404 are provided for each element of the vertical vector.
[0031]
The sum-of-product units 401, 402, 403, and 404 all have the same configuration. That is, each product-sum unit includes an AND gate 41, an XOR gate 42, and a register 43. The register 43 has an input terminal and an output terminal that outputs a signal supplied to its own input terminal with a delay of one clock. The AND gate 41 has a first terminal and a second terminal, and an output terminal for outputting a logical product of binary signals of signals input to the first terminal and the second terminal. The XOR gate has a first terminal for inputting the output of the AND gate 41, a second terminal connected to the output terminal of the register 43, and a binary logic of signals input to the first and second terminals of the XOR gate. And an output terminal for outputting an exclusive OR to an input terminal of the register 43. The output of the register 108 is provided to the first end of the AND gate 41. The output of the register corresponding to the product-sum unit to which the AND gate 41 belongs among the registers included in the multiplication providing unit 300 is input to the second end of the AND gate 41. For example, regarding the product-sum unit 401, the output of the register 301 is given to the second end of the AND gate 41.
[0032]
Hereinafter, the operation when the multiplier shown in FIG. 3 is adopted as the multiplier 203 shown in FIG. 1 will be described.
[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 register 43 provided therein. In the multiplicand providing unit 100, the registers 105, 106, 107 and 108 output A 0 , A 1 , A 2 , A 3 Is output. The multiplier of the register multiplier 203 included in the product-sum processing unit 400 is α 12 Therefore, the initial value output to the product-sum processing unit 400 is α Fifteen = 1 is adopted. Accordingly, the registers 301, 302, 303 and 305 respectively output T 41 , T 42 , T 43 , T 44 Are output as "0", "0", "0", and "1".
[0034]
In the sum-of-products unit 401, the 1-bit data T 41 , A 3 Enter. Since “0” is output as the initial value from the register 43, the XOR gate 42 outputs the output of the AND gate 41 as it is. Thereby, the input of the register 43 includes one bit A of the multiplicand A. 3 And the multiplier α Fifteen 1 bit T of 41 Galois extended field GF (2 m A) which is the multiplication result of 3 ・ T 41 Is given. The multiplication symbol “•” is a Galois extended field GF (2 m ) Shows multiplication. However, since the output of the product-sum unit 401 is obtained from the output of the register 43, the output of the product-sum unit 401 is "0" at this point.
[0035]
Similarly, the input of the register 43 of the product-sum unit 402 is A 3 ・ T 42 Is input to the register 43 of the sum-of-products unit 403. 3 ・ T 43 Is input to the input of the register 43 of the product-sum unit 404. 3 ・ T 44 Is given. The output of any of the sum-of-product units 402, 403, and 404 is "0".
[0036]
FIG. 4 is a block diagram showing a state where one clock has elapsed from the state shown in FIG. In the multiplicand providing unit 100, 1-bit data A is output from the registers 106, 107 and 108, respectively. 0 , A 1 , A 2 Is output. On the other hand, from the multiplier providing unit 300, the registers 301, 302, 303 and 305 31 , T 32 , T 33 , T 34 Are output as "1", "0", "0", and "1".
[0037]
In the sum-of-products unit 401, A input from the register 43 in the operation one clock before is input. 3 ・ T 41 Is output. On the other hand, the AND gate 41 has 1-bit data T 31 , A 2 , The XOR gate 42 outputs A 3 ・ T 41 + A 2 ・ T 31 (However, the addition symbol “+” indicates exclusive OR). Thus, the input of the register 43 is A 3 ・ T 41 + A 2 ・ T 31 Is given. However, the output of the product-sum unit 401 is A 3 ・ T 41 It is.
[0038]
Similarly, the input of the register 43 of the product-sum unit 402 is A 3 ・ T 42 + A 2 ・ T 32 Is input to the register 43 of the sum-of-products unit 403. 3 ・ T 43 + A 2 ・ T 33 Is input to the input of the register 43 of the product-sum unit 404. 3 ・ T 44 + A 2 ・ T 34 Is given. The outputs of the sum-of-product units 402, 403, and 404 are A 3 ・ T 42 , A 3 ・ T 43 , A 3 ・ T 44 It becomes.
[0039]
FIG. 5 is a block diagram showing a state when one clock has elapsed from the state shown in FIG. In the multiplicand providing unit 100, 1-bit data A is output from the registers 107 and 108, respectively. 0 , A 1 Is output. On the other hand, in the multiplier providing unit 300, the registers 301, 302, 303, 305 21 , T 22 , T 23 , T 24 Are output as "1", "1", "0", and "1".
[0040]
In the sum-of-products unit 401, A input from the register 43 in the operation one clock before is input. 3 ・ T 41 + A 2 ・ T 31 Is stored. On the other hand, the AND gate 41 has 1-bit data T 21 , A 1 , The XOR gate 42 outputs A 3 ・ T 41 + A 2 ・ T 31 + A 1 ・ T 21 Is output. Thus, the input of the register 43 is A 3 ・ T 41 + A 2 ・ T 31 + A 1 ・ T 21 Is given. However, the output of the product-sum unit 401 is A 3 ・ T 41 + A 2 ・ T 31 It is.
[0041]
Similarly, the input of the register 43 of the product-sum unit 402 is A 3 ・ T 42 + A 2 ・ T 32 + A 1 ・ T 22 Is input to the register 43 of the sum-of-products unit 403. 3 ・ T 43 + A 2 ・ T 33 + A 1 ・ T 23 Is input to the input of the register 43 of the product-sum unit 404. 3 ・ T 44 + A 2 ・ T 34 + A 1 ・ T 24 Is given. The outputs of the sum-of-product units 402, 403, and 404 are A 3 ・ T 42 + A 2 ・ T 32 , A 3 ・ T 43 + A 2 ・ T 33 , A 3 ・ T 44 + A 2 ・ T 34 It becomes.
[0042]
FIG. 6 is a block diagram showing a state when one clock has elapsed from the state shown in FIG. In the multiplicand providing unit 100, 1-bit data A 0 Is output. On the other hand, in the multiplier providing unit 300, the registers 301, 302, 303, and 305 output T 11 , T 12 , T 13 , T 14 Are output as "1", "1", "1", and "1".
[0043]
The operation proceeds as in the case shown in FIGS. 3 to 5, and the input to the register 43 of the product-sum unit 401 is A 3 ・ T 41 + A 2 ・ T 31 + A 1 ・ T 21 + A 0 ・ T 11 Is input to the register 43 of the sum-of-products unit 402. 3 ・ T 42 + A 2 ・ T 32 + A 1 ・ T 22 + A 0 ・ T 12 Is input to the register 43 of the sum-of-products unit 403. 3 ・ T 43 + A 2 ・ T 33 + A 1 ・ T 23 + A 0 ・ T 13 Is input to the input of the register 43 of the product-sum unit 404. 3 ・ T 44 + A 2 ・ T 34 + A 1 ・ T 24 + A 0 ・ T 14 Is given. The outputs of the sum-of-product units 401, 402, 403, and 404 are A 3 ・ T 41 + A 2 ・ T 31 + A 1 ・ T 21 , A 3 ・ T 42 + A 2 ・ T 32 + A 1 ・ T 22 , A 3 ・ T 43 + A 2 ・ T 33 + A 1 ・ T 23 , A 3 ・ T 44 + A 2 ・ T 34 + A 1 ・ T 24 It becomes.
[0044]
FIG. 7 is a block diagram showing a state where one clock has elapsed from the state shown in FIG. In the multiplicand providing unit 100, from the sum-of-products units 401, 402, 403, and 404, A 3 ・ T 41 + A 2 ・ T 31 + A 1 ・ T 21 + A 0 ・ T 11 , A 3 ・ T 42 + A 2 ・ T 32 + A 1 ・ T 22 + A 0 ・ T 12 , A 3 ・ T 43 + A 2 ・ T 33 + A 1 ・ T 23 + A 0 ・ T 13 , A 3 ・ T 44 + A 2 ・ T 34 + A 1 ・ T 24 + A 0 ・ T 14 Is output.
[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 XOR gate 42 has a Galois extended field GF (2) of 1 bit of the multiplier and 1 bit of the multiplicand obtained from the AND gate 41. m ) Is given. At the other input of the XOR gate 42, the Galois extension GF (2 m ) Is given. Therefore, by appropriately setting the delay time of the register 43 (here, one clock), the product of the vector-expressed multiplier and the multiplicand can be obtained.
[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 encoder 1, the timing of providing input data D needs to be extended four times. However, it is particularly preferable when the multiplier is fixed, and by adopting the multiplier as a multiplier having a fixed multiplier based on the generator polynomial, the redundancy of the configuration of the encoder can be reduced.
[0047]
If the code length is n bits, the multiplier α s , The register of the multiplier providing unit 300 stores α s + (n-1) May be stored as an initial value. As described above, the multiplier providing unit 300 can be configured using a register and an XOR gate based on the irreducible primitive polynomial used to obtain the Galois extended field.
[0048]
However, as the multiplier providing unit 300, the Galois extended field GF (2 4 In addition to the element which outputs the element of α) by lowering the exponent of α by one order, the element which outputs the element of α by increasing the exponent by one order can be adopted. FIG. 8 is a block diagram illustrating the structure of such a multiplier providing unit 300, which is disclosed, for example, in Japanese Patent Publication No. 6-80491. The output T of the register 301 in the multiplier 300 1 Is one input of the XOR gate 304 and also the input of the register 305. The output T4 of the register 305 is the other input of the XOR gate 304. The output of the XOR gate 304 becomes the input of the register 303. Output T of register 303 3 Is an input to the register 302. Output T of register 302 2 Is an input of the register 301. The value T is used as an initial value of the registers 301, 302, 303, and 305. 11 , T 12 , T 13 , T 14 Is stored every time one clock period elapses. 1 Is the value T 11 , T 21 , T 31 , T 41 And the output T 2 Is T 12 , T 22 , T 32 , T 42 And the output T 3 Is T 13 , T 23 , T 33 , T 43 And the output T 4 Is T 14 , T 24 , T 34 , T 44 Are taken sequentially.
[0049]
In order to calculate Equation (3) when employing the multiplier providing unit 300 in FIG. 8, the order in which the multiplicand A is input to the multiplicand providing unit 100 is reversed from that shown in FIG. That is, first, A 0 And then A 1 , A 2 , A 3 Enter
[0050]
Embodiment 2 FIG.
FIG. 9 is a circuit diagram showing a configuration of the multiplier according to the second embodiment, which can be employed as the multipliers 200, 202, and 203 of the encoder 1 shown in FIG. The multiplier also includes a multiplicand providing unit 100, a multiplier providing unit 300, and a product-sum processing unit 400, as in the first embodiment.
[0051]
The structure of the multiplicand providing unit 100 according to the second embodiment has four registers 105, 106, 107, and 108 connected in series similarly to the first embodiment. The arrangement is approaching. The multiplicand providing unit 100 has 4-bit data A of the multiplicand A 3 A 2 A 1 A 0 Are in order from the most significant bit, that is, A 3 , A 2 , A 1 , A 0 Are input to the product-sum processing unit 400 one bit at a time. However, the registers 105, 106, 107, and 108 transmit data with a delay of one clock of a clock signal CK2 described later.
[0052]
The multiplier providing unit 300 according to the second embodiment has a configuration in which a multiplexer 306 and a 2-bit counter 307 are added to the structure of the multiplier providing unit 300 shown in the first embodiment (see FIG. 3). ing. The multiplexer 306 selects one of the outputs of the registers 301, 302, 303, and 305 based on the control of the 2-bit counter 307 and outputs it. The 2-bit counter 307 performs a counting operation based on the clock signal CK1, and the counting operation makes one cycle for four clocks of the clock signal CK1. Accordingly, a clock signal CK2 having one cycle of four clocks of the clock signal CK1 is output from the 2-bit counter 307. That is, one clock of the clock signal CK2 corresponds to four clocks of the clock signal CK1. The registers 301, 302, 303, and 305 each transmit data with a delay of one clock of the clock signal CK2.
[0053]
The sum-of-products processing unit 400 according to the second embodiment is provided with only one sum-of-product unit described in the first embodiment, and registers the registers 43a in order from the one closer to the output of the XOR gate 42. , 43b, 43c, 43d as a series connection. Each of these registers transmits data with a delay of one clock of the clock signal CK1. Therefore, as a whole of the register 43, data is delayed and transmitted by the product of the number 4 of elements constituting the multiplier vector and one clock of the clock signal CK1.
[0054]
FIG. 9 shows a state where the first product-sum operation is performed. Data “0” is output from each of the registers 43a, 43b, 43c, and 43d. In the multiplicand providing unit 100, the registers 105, 106, 107, and 108 have A 0 , A 1 , A 2 , A 3 Is output. The multiplier of the register multiplier 203 included in the encoder 1 is α 12 Therefore, the initial value output to the product-sum processing unit 400 is α Fifteen = 1 is adopted. Therefore, the registers 301, 302, 303, 305 41 , T 42 , T 43 , T 44 Are output as "0", "0", "0", and "1". The output A from the XOR gate 42 in the product-sum processing unit 400 3 ・ T 41 Is obtained.
[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 registers 105, 106, 107, 108, 301, 302, 303, and 305 has not changed. However, the multiplexer 306 receives the data T under the control of the 2-bit counter 307. 42 Select and output. As a result, the output A is output from the XOR gate 42. 3 ・ T 42 Is obtained. From the register 43a, the data A input one clock before the clock signal CK1 is input. 3 ・ T 41 Is output.
[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 multiplexer 306 receives the data T under the control of the 2-bit counter 307. 44 Is output. As a result, the output A is output from the XOR gate 42. 3 ・ T 44 Is obtained. A from register 43a, 43b, 43c, 43d 3 ・ T 43 , A 3 ・ T 42 , A 3 ・ T 41 , "0" are output.
[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 registers 106, 107, 108, 301, 302, 303, and 305 is A 0 , A 1 , A 2 , T 31 , T 32 , T 33 , T 34 Changes to The multiplexer 306 receives the data T under the control of the 2-bit counter 307. 31 Is output.
A from register 43a, 43b, 43c, 43d 3 ・ T 44 , A 3 ・ T 43 , A 3 ・ T 42 , A 3 ・ T 41 Is output. The XOR gate 42 has the output A of the AND gate 41 2 ・ T 31 And the output A of the register 43d 3 ・ T 41 Is input, the output of the XOR gate 42 is A 3 ・ T 41 + A 2 ・ T 31 It becomes. In this way, when four clocks of the clock signal CK1 elapse, the output of the XOR gate 42 of the product-sum unit 401 shown in FIG. 4 in the first embodiment is obtained. In the second embodiment, it can be said that the register 43 of the product-sum processing unit 400 performs a function of sequentially shifting serial 4-bit data bit by bit every time one clock of the clock signal CK1 elapses.
[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 registers 301, 302, 303, and 305 output T 11 , T 12 , T 13 , T 14 And the multiplexer 306 outputs the data T obtained from the register 301 under the control of the 2-bit counter 307. 11 Is output. From the register 108, the data A of the least significant bit of the multiplier A 0 Are output, and the data A is output from the AND gate 41. 0 ・ T 11 Is output. A from register 43a, 43b, 43c, 43d 3 ・ T 44 + A 2 ・ T 34 + A 1 ・ T 24 , A 3 ・ T 43 + A 2 ・ T 33 + A 1 ・ T 23 , A 3 ・ T 42 + A 2 ・ T 32 + A 1 ・ T 22 , A 3 ・ T 41 + A 2 ・ T 31 + A 1 ・ T 21 Is output. Therefore, the output of XOR gate 42 is A 3 ・ T 41 + A 2 ・ T 31 + A 1 ・ T 21 + A 0 ・ T 11 It becomes.
[0059]
When three clocks of the clock signal CK1 have elapsed from the state shown in FIG. 13, the registers 43a, 43b, 43c, and 43d have A respectively. 3 ・ T 44 + A 2 ・ T 34 + A 1 ・ T 24 + A 0 ・ T 14 , A 3 ・ T 43 + A 2 ・ T 33 + A 1 ・ T 23 + A 0 ・ T 13 , A 3 ・ T 42 + A 2 ・ T 32 + A 1 ・ T 22 + A 0 ・ T 12 , A 3 ・ T 41 + A 2 ・ T 31 + A 1 ・ T 21 + A 0 ・ T 11 Enter. As described above, the time corresponding to 16 clocks of the clock signal CK1 (the time corresponding to 4 clocks of the clock signal CK2) elapses from the state illustrated in FIG. 3, and the product sum illustrated in FIG. Outputs of the XOR gates 42 in the units 401 to 403 are obtained.
[0060]
Thereafter, the output B of the product-sum operation processing unit 400 sequentially outputs A 3 ・ T 41 + A 2 ・ T 31 + A 1 ・ T 21 + A 0 ・ T 11 , A 3 ・ T 42 + A 2 ・ T 32 + A 1 ・ T 22 + A 0 ・ T 12 , A 3 ・ T 43 + A 2 ・ T 33 + A 1 ・ T 23 + A 0 ・ T 13 , A 3 ・ T 44 + A 2 ・ T 34 + A 1 ・ T 24 + A 0 ・ T 14 Is output.
[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 encoder 1 also becomes four times slower. However, as is apparent from a comparison between FIGS. 3 and 9, the present embodiment has a smaller circuit scale than the first embodiment because three AND gates and three XOR gates are omitted. Become.
[0062]
Also in the present embodiment, multiplication providing section 300 shown in FIG. 8 can be employed. In this case, as described in the first embodiment, it is necessary to reverse the order in which each bit of multiplicand A is given to product-sum processing unit 400.
[0063]
【The invention's effect】
According to the arithmetic unit according to claim 1 of the present invention, by giving one bit of the multiplier and one bit of the multiplicand to the first end and the second end of the first gate, respectively, the Galois extended field GF ( 2 m ) Is obtained from the first gate. The result is provided to the first end of the second gate. At the second end of the second gate, a Galois extension GF (2) of another one bit of the multiplicand and another one bit of the multiplier is provided. m ) Is given. Therefore, by adopting data obtained by delaying the output of the second gate by a predetermined time as data to be provided to the second end of the second gate, it is possible to obtain the product of the vector-wise multiplier and the multiplicand.
[0064]
According to the arithmetic unit according to claim 2 of the present invention, the number of product-sum units is reduced to reduce the circuit scale, and the Galois extended field GF (2 m ), The product of the multiplier and the multiplicand can be obtained.
[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.
JP2002207978A 2002-07-17 2002-07-17 Arithmetic unit Pending JP2004054384A (en)

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)

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