JP2004171263A - Arithmetic unit - Google Patents
Arithmetic unit Download PDFInfo
- Publication number
- JP2004171263A JP2004171263A JP2002336196A JP2002336196A JP2004171263A JP 2004171263 A JP2004171263 A JP 2004171263A JP 2002336196 A JP2002336196 A JP 2002336196A JP 2002336196 A JP2002336196 A JP 2002336196A JP 2004171263 A JP2004171263 A JP 2004171263A
- Authority
- JP
- Japan
- Prior art keywords
- arithmetic
- bit
- output
- data set
- input
- 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.)
- Granted
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は、画像信号の符号化、フィルタ処理、離散フーリエ変換などのデジタル信号処理に使用される分散算術演算法(Distributed Arithmetic、以下DA法と表記する。)を利用した内積演算装置、複素数乗算装置等の演算装置に関するものである。
【0002】
【従来の技術】
DA法は行列の内積演算をルックアップ表と加算器で実現する周知の方法である。例えば、特許文献1や非特許文献1に、DA法を利用することにより、内積演算を、乗算器を使って行うことに比べてコンパクトに実現することが記載されている。
【0003】
DA法について説明するため、下記の式1で表される要素数Kの定数ベクトルAと入力ベクトルXの内積演算を考える。
【0004】
【0005】
Xkを2の補数表現された2進数のWビット幅固定小数点であるとすると、以下の式2のように表すことができる。
【0006】
【0007】
この式(2)において、bk[w]はビット(1又は0)であり、bk[0]は符号ビット、bk[W−1]は最下位ビットである。
【0008】
また、Xk={Xk−(−Xk)}/2と表せるので、bkのビット反転をb’kとおくと、Xkは以下のようになる。
【0009】
【0010】
ただし、この式3でck[w]は以下のように表される。
【0011】
【0012】
(式3)を(式1)に代入して、以下の式5が得られる。
【0013】
【0014】
この式5において、以下の関係がある。
【0015】
【0016】
(式6)において、Q(bw)は次式のように変形できる。
【0017】
【0018】
従って、c1=−1の場合のQ(bw)は、c1=1の場合のQ(bw)で表現できるので、式6の値は、2K−1通りで全てを表現でき、この値をルックアップ表として記憶しておく。そして、w=W−1から0まではそれぞれの値に2−wが掛かるので、w=W−1から順番に実行し、前記ルックアップ表から参照した値を1桁ずつ右へずらせて加える。以上の手順により、乗算を行うことなくAXを得ることができる。
【0019】
入力ベクトルXの複数の値について、上記演算を同時に行う場合は、次式の演算を行うことと等価である。
【0020】
【0021】
ここで、X(i)は、式(1)におけるXのi番目の縦ベクトル、A(i)はそれに対応する定数の横ベクトル(iは0以上の整数)、0は要素値が0の横ベクトルを示す。また、A’ はA(i)を含む行列を表し、X’ はX(i)を含むベクトルを表し、Bは演算結果を表す。
【0022】
図6に、例えば、特許文献3、特許文献4等で示された方法を利用した(式8)の演算を行う方法を示す。端子群101から入力ベクトルX(0)、X(1)、…の各要素がビットシリアルで同時並列入力される。符号110,111…は、式1のAXを演算するための分散算術演算回路を示し、入力ベクトル数分だけ並列接続される。符号103はルックアップ表を記憶している記憶手段を示す。端子群101への入力データ(定数ベクトル)に対応したデータが記憶手段103から加減算器104へ入力される。加減算器104は記憶手段103の出力データと1ビットシフタ106の出力を加減算し、例えばシフトレジスタである一時記憶手段107へ入力する。一時記憶手段107に一時記憶された加減算器1の出力はビットシフタ106へ出力され、適切なタイミングでスイッチ108が閉じられ、出力端子109から出力B(0)として出力される。同様に、他のDA回路111…の出力B(1),B(2)…が出力端子109から出力される。
【0023】
【特許文献1】
米国特許第3,777,130号
【特許文献2】
米国特許第5,226,002号
【特許文献3】
特開2000−148730号公報
【非特許文献】
“Applications of distributed arithmetic to digital signal processing: atutorial review,” S.A.White, IEEE ASSP magazine, vol.6, issue 3, pp.4−9, July 1989
【0024】
【発明が解決しようとする課題】
しかしながら、図6に示す従来の装置では、各分散算術演算回路110,111…が、それぞれ記憶手段103を内蔵しているので、そのコンパクト性は、記憶手段103のコンパクト性に大きな影響を受ける。すなわち、同時処理する入力ベクトルの数が増えれば増えるほど、分散算術演算回路110,111…の数が増加し、それに従って記憶手段103の数も増加する。
【0025】
また、図6において、入力データは端子群101からビットシリアルで入力されるため、1ビットを1クロックで処理すると、出力結果が得られるまでに少なくとも入力データのビット幅分のクロック数が必要となる。一方、クロック周波数を大きくせずに演算時間を短くするために多ビットを同時処理することは、式8におけるベクトルX’の要素数を増やすことに相当するので、分散算術演算回路110,111…の並列処理数が並列処理ビット数の数だけ増加し、従って記憶手段103も同数だけ増加する。
【0026】
このように、分散算術演算により複数データについて内積演算を同時処理すると、同時処理数分だけの記憶手段が必要となり、同時処理数が増すにつれてコンパクト性が悪化するという問題を有している。
【0027】
本発明は、かかる問題に鑑みてなされたもので、その目的は、記憶手段のサイズを小さく保ったままで、分散算術演算を高速化することにある。
【0028】
【課題を解決するための手段】
本発明はこうした課題を解決するための手段を提供するもので、各請求項の発明は、以下の技術手段を構成する。
【0029】
本発明は、第1の入力データ組と、第2の入力データ組とに対して、分散算術演算法を利用して演算処理を行う演算装置において、前記第1の入力データ組が入力される少なくとも1個の分散算術演算手段と、前記第2の入力データ組に対応したデータの表(ルックアップ表)を記憶し、前記第2の入力データに応じたデータ組を出力する記憶手段とを備え、前記分散算術手段は、前記第1の入力データ組の1番目からU番目(Uは自然数)のデータから、Tビット幅(Tは自然数)のデータをそれぞれ生成する第1から第Uの変換手段と、前記第1から第Uの変換手段の最下位から最上位ビットまでの各ビットの内容に従って、前記記憶手段から出力されるデータ組から、それぞれ最適なデータを選ぶ第1から第Tの選択手段と、前記第1から第Tの選択手段より出力されるデータを演算する第1の演算手段と、前記第1の演算手段から出力されるデータと、ビットシフトを実行する第3の演算手段の出力との加減算を実行する第2の演算手段と、前記第2の演算手段から出力される演算結果を一時的に格納する一時記憶手段と、前記一時記憶手段から出力されるデータのビットシフトを実行する第3の演算手段とを備えることを特徴とする、演算装置を提供する。
【0030】
上記構成とした本発明の演算装置では、各分散算術演算手段がデータの表を記憶した記憶手段を内蔵する必要がないので、表を記憶するための記憶手段を増加することなく、分散算術演算を利用したTビット同時処理により処理の高速化を図ることができる。
【0031】
本発明の演算装置は、内積演算装置として構成することができる。この場合、前記第1から第Uの変換手段は、前記第1の入力データ組の1番目からU番目のデータにおける各ビット位置(0,1,…,T−1)の値を最下位ビットから順に、0ビットからT−1ビットの各ビット位置(0,1,…,T−1)に割り振り、第1から第Tの選択手段に対してTビットづつ順次出力し、前記第1の演算手段は、前記第1から第T−1の選択手段の出力を各々T−1ビットから1ビットまで1ビットずつ下位側(T−1,T−2・・・1ビットずつ下位側)にビットシフトした各結果と、第Tの選択手段の出力とを加減算し、前記第3の演算手段は、前記一時記憶手段の出力をTビット下位側にビットシフトし、前記第1の入力データ組として入力されるベクトルと第2の入力データ組として入力されるベクトルの内積を計算する。かかる構成とすれば、表を記憶するための記憶手段を増加することなく、分散算術演算を利用したTビット同時処理により内積演算処理の高速化を図ることができる。
【0032】
また、本発明の演算装置は、複素数乗算装置として構成することができる。この場合、前記第1の入力データ組は、H個(Hは自然数)の複素数であり、h個目(hは1からHまでの整数)の複素数の実部及び虚部はそれぞれ前記第1の入力データ組の2h−1番目及び2h番目に割り当てられ、前記第1の分散算術演算手段の数は2H個であり、前記第1の入力データ組の2h−1番目及び2h番目の入力は、2h−1番目及び2h番目の前記分散算術演算手段にのみ出力され、前記第1の入力データとして入力される複素数と、前記第2の入力データとして入力される複素数の乗算を行う。かかる構成とすれば、表を記憶するための記憶手段を増加することなく、分散算術演算を利用したTビット同時処理により複素数乗算演算処理の高速化を図ることができる。
【0033】
前記記憶手段が、0からN/8の整数であるnに対する{cos(2πn/N)+sin(2πn/N)}/2の値を示す第1の表と、前記0からN/8の整数であるnに対する{cos(2πn/N)−sin (2πn/N)}/2の値を示す第2の表とを格納していれば、記憶手段の容量を増大させることなく、N点離散フーリエ変換に必要なバタフライ演算を高速処理することができる。
【0034】
あるいは、前記第1の記憶手段が、0からN/8の整数であるnについて{cos(2πn/N)+sin(2πn/N)}/2の値及び{cos(2πn/N)−sin (2πn/N)}/2の値の対を示す第3の表を格納していもよい。この場合、記憶手段の容量と消費電力をより節約しつつ、N点離散フーリエ変換に必要なバタフライ演算を高速処理することができる。
【0035】
【発明の実施の形態】
次に、図面に示す本発明の実施形態について説明する。
【0036】
(基本構成)
まず、図1に示す本発明の演算装置の基本構成について説明する。この基本構成は後述する第1から第3実施形態の内積演算装置や複素乗算装置の基本となる。図1において、201は第1の入力データ組が入力される入力端子郡、203第2の入力データ組が入力される設定データ入力端子、204はルックアップ表を記憶する記憶手段、230は出力端子郡を示す。251,252,253・・・は分散算術演算処理回路を示し、これらはいずれも同一構成である。
【0037】
入力端子郡301は入力端子郡201から分散算術演算処理回路251に入力されるデータの入力端子郡、端子302は記憶手段204から分散算術演算処理回路251に入力されるデータ組の入力端子である。
【0038】
入力端子郡201から入力される1番目からU番目までのU個のデータは、それぞれ変換回路202の第1から第Uの変換手段202a,202b…202uでTビットデータに変換される。設定データ入力端子203から入力される設定データに対応したデータ組が、記憶手段204から出力されて選択回路205に入力される。
【0039】
選択回路205は、変換回路202から出力されるTビット幅のデータに対応して、第1から第Tの選択手段205a,205b…205tを備えている。選択回路205の第1の選択手段205aでは、記憶手段204から出力されたデータ組から、変換回路202内の各変換手段202a〜202uの出力の最下位ビット組に応じたデータが生成され出力される。また、選択回路205の第2の選択手段205bでは、記憶手段204から出力されたデータ組から、変換回路202内の各変換手段202a〜202uの出力の最下位+1ビット組に応じたデータが生成され出力される。以下、選択回路202の各選択手段205c,205d…で同様の処理が実行される。選択回路205の第Tの選択手段205tでは変換回路202内の各変換手段202a〜202uの出力の最上位ビット組に応じたデータが出力される。
【0040】
選択回路205から出力された複数のデータは、演算手段(第1の演算手段)206で演算され、加減算器207に入力される。加減算器(第2の演算手段)207は演算手段206からのデータとビットシフタ208からのデータを加減算する。加減算器207からのデータは例えばシフトレジスタである一時記憶手段209で一時記憶される。一時記憶手段209からのデータはビットシフタ(第3の演算手段)208へ出力される。適切なタイミングでスイッチ210が閉じられ、スイッチ210が閉じると一時記憶木手段209から出力端子郡230の第1の端子から出力される。
【0041】
従来例の図6における分散算術演算回路110,111…は、図1におけるスイッチ210、ビットシフタ208、一時記憶手段209、加減算器207、演算手段206、選択回路205のうちのどれか1つ(例えば、選択手段205a)及び記憶手段204を1つの単位とした回路に相当する。そのため、複数データを同時処理する場合、例えば変換回路202で多ビットを同時処理できるように割り振り、分散演算処理回路251で1つめの設定データを処理し、以降の設定データをそれぞれ分散演算処理回路252,253…で処理する、というような場合、同時処理数が増えれば増えるほど、分散算術演算回路の数が増えるが、従来例では、記憶手段の数も同時に増え、その総容量が増加していたが、本発明では、このような構成とすることにより、同時処理数にかかわらず、記憶手段204は1つでよいので、必要となる記憶手段の総容量は一定となる。
【0042】
(第1実施形態)
図2に本発明の第1実施形態である内積演算装置を示す。図1と同一機能のものは同一番号を付して説明を省略する。
【0043】
変換回路202は次のような構成とする。即ち、変換回路202内の変換手段303において、入力端子郡301から入力されるデータの[Tk]ビット、[Tk+1]ビット…[Tk+(T−1)]ビット(kは0以上の整数)を、出力の最下位ビットから最上位ビットに向けて割り振り、Tビットづつ出力する。変換回路202内の他の変換手段202a,202b…も同様の処理を実行する。
【0044】
演算手段206はビットシフタ群306と加減算器307とからなる。選択回路205の出力データはビットシフタ郡306に入力され、ビットシフタ郡306の出力データは加減算器307によって加減算される。ビットシフタ郡306は次のような構成とする。即ち、選択回路205の第1の選択手段205aからビットシフタ郡306に入力されたデータはT−1ビットシフトされる。選択回路205の第2の選択手段205bからビットシフタ郡306に入力されたデータはT−2ビットシフトされる。以下、選択回路205の各選択手段からビットシフタ郡306に入力されたデータを同様に処理する。選択回路205の第Tの選択手段205tからビットシフタ郡306に入力されたデータはT−Tビットシフト、即ちそのまま出力される。
【0045】
ビットシフタ(208)は、Tビットシフタ(308)によって構成する。
【0046】
基本構成の項で説明したように、従来は、選択回路205を構成する選択手段の数だけ分散算術演算の処理を、高速で行うことができるように、分散算術演算を同時処理しようとすれば、選択回路205を構成する選択手段の数だけのルックアップ表の記憶手段の数が必要となる。また、ルックアップ表の記憶手段の数を増やさないように、選択回路205を構成する選択手段の数だけの分散算術演算の処理を1つづつ行うと、その数だけ演算時間がかかる。しかし、本発明では、このような構成とすることにより、ルックアップ表の記憶手段を増加することなく、Tビット同時処理を実施することができ、処理の高速化を図ることができる。
【0047】
(第2実施形態)
図3に本発明による複素数乗算装置の第2の実施例を示す。図1と同一機能のものは同一番号を付して説明を省略する。入力端子群201の入力1に入力複素数1の実部を割り当て、入力端子群201の入力2に入力複素数1の虚部を割り当て、…入力端子群201の入力2h−1に入力複素数hの実部を割り当て、…入力端子群201の入力2Hに入力複素数Hの虚部を割り当てる。入力されたデータは、各々分散算術演算処理回路群400で処理される。分散算術演算処理回路群400を構成する分散算術演算処理回路251、252…は2H個ある。なか、以降の本実施形態の説明ではすべての分散算術演算処理回路を符号251で示す。
【0048】
入力1及び2は、1番目及び2番目の分散算術演算処理回路251のみに入力する。入力1及び2は、前記以外の分散算術演算処理回路251には、影響を与えない場合を考え、入力線の記載を省略する。出力複素数1の実部及び虚部は、1番目及び2番目の分散算術演算処理回路251から各々出力され、出力端子郡230の出力1及び出力2に割り当てる。それ以外の入力も、同様に処理される。
【0049】
ここで、複素定数Y及び複数の任意の複素数{Z}の乗算Y・{Z}を考える。Y=Yr−jYi、{Z}の要素の1つをZ=Zr+jZiとおくと(添え字rは実部を、添え字iは虚部を示す。また、j2=−1である。)、Y・{Z}の要素YZは、下記の式9で表される。
【0050】
【0051】
従って、式1においてA及びXを以下の式10ように設定し、要素数2のDA法を適用すればYZの実部が求まる。
【0052】
【0053】
同様に、式1において、A及びXを以下の式11のように設定し、要素数2のDA法を適用すれば、YZの実部が求まる。
【0054】
【0055】
実部、虚部いずれの場合でも、ルックアップ表は{(Yr+Yi)/2, (Yr―Yi)/2}であり、同一となる。これは、図3において、入力端子郡201の2h−1番目の入力端子にZr、2h番目の入力端子にZiをそれぞれ入力し、記憶手段204のルックアップ表として{(Yr+Yi)/2, (Yr―Yi)/2}を格納すると、出力端子郡230の2h−1番目の出力端子及び2h番目の出力端子の出力としてYZの実部及び虚部が得られることになる。Y・{Z}は、YZを求めるDA法を複数実施することにより求めることができる。これは、図3の入力端子郡(201)に{Z}を入力すればよい。
【0056】
このような構成とすることにより、複素数の乗算を分散術演算で実現でき、{Z}の要素数、即ち入力端子郡201の入力数によらず、また、演算の高速化のため分散算術演算処理回路251内で、第1の実施形態に示したように多ビット同時処理を行っても、第1の実施形態の項で説明したように、記憶手段は増加せず一定である。
【0057】
(第3実施形態)
複素関数f(n)のN点離散フーリエ変換(以下、DFT)は次式である。
【0058】
【0059】
WNは回転因子と呼ばれるファクターである。式12を変形していくと、
【0060】
【0061】
kが偶数の場合と奇数の場合で分けると、
【0062】
【0063】
ただし、
【0064】
となる。f(n)に関するN点DFTが、y(n)及びz(n)に関するN/2点DFTになった。その際式15の演算をN/2点行う必要がある。式15の演算はバタフライ演算と呼ばれる。これを、log2N−1段(Nが2のべき乗の場合)、再起的に繰り返していくことで、DFT演算結果を得ることができる。これは、基数2の周波数間引きDFTと呼ばれる演算手法である。
【0065】
この場合、式15に示す複素乗算を1段あたりN/2回を合計log2N−1段行う必要があるため、DFTを高速で行うためには、式15の演算を高速で行う必要がある。そのため、1段あたりN/2個の式15の演算をいくつかづつ同時並列処理で行いたい。これは、本発明による第2の実施例において、
【0066】
【0067】
とおくことによって達成することができる。この場合(式6)におけるQ(bw)は、
【0068】
【0069】
である。ところで、三角関数の全ての値は、0〜45度の三角関数値で表現できるので、式17のためのルックアップ表は、n=0〜N/8での結果のみを格納すればよい。
【0070】
この場合の記憶手段の構成を図4に示す。図1と同一機能のものは同一番号を付す。記憶手段204は、第1の記憶部501及び第2の記憶部502で構成される。第1の記憶部501はQp(n)のルックアップ表(ただし、nは0〜N/8の整数)を格納する。第2の記憶部502はQm(n)のルックアップ表(ただし、nは0〜N/8の整数)を格納する。設定203から指示されたアドレスに従って、記憶手段1501及び記憶手段2502のデータ組が端子302から出力される。
【0071】
このような構成とすることにより、ルックアップ表の記憶手段の増大なしに、DFTに必要となるバタフライ演算を高速で実施することができる。
【0072】
(第4実施形態)
第3実施形態における記憶手段の別の構成を図5に示す。図4と同一機能のものは同一番号を付す。1つの複素乗算ではnは固定値なので、単一の記憶部504はQp(n)とQm(n)の対を格納した表であれば、アドレスデコーダは1つで済み、低消費電力化できる。
【0073】
(第5実施形態)
図4又は図5のルックアップ表を使い、第2実施形態に従って複素数乗算をDA法で構成すれば、式15の演算が実施できる。式15は前述したように、n=0…N/2−1について行う必要があるが、このうちのいくつかを同時処理することで、演算の高速化を図ることができる。その際、第2実施形態で示したように、ルックアップ表を格納するための記憶手段の増大はない。さらに、第1実施形態で示したように、多ビット同時処理による演算高速化を図っても、ルックアップ表を格納するための記憶手段の増大はない。以上の演算をlog2N−1段行うことで、DFT演算が達せられる。
【0074】
このような構成とすることにより、ルックアップ表の記憶手段の増大なしに、DFTの高速化を図ることができる。
【0075】
【発明の効果】
以上の説明から明らかなように、本発明の演算装置は、第1の入力データ組が入力され、変換手段、選択手段、及び第1から第3の演算手段を備える少なくとも1個の分散算術演算手段と、前記第2の入力データ組に対応したデータの表を記憶し、前記第2の入力データに応じたデータ組を出力する記憶手段とを備え、分散算術演算手段の選択手段が記憶手段から出力されるデータ組から最適なデータを選ぶので、表を記憶するための記憶手段を増加することなく、分散算術演算を利用したTビット同時処理により、内積演算処理、複素乗算処理、N点離散フーリエ変換に必要なバタフライ演算処理等の演算処理の高速化を図ることができる。
【図面の簡単な説明】
【図1】本発明の基本構成を示すブロック図である。
【図2】本発明の第1実施形態を示すブロック図である。
【図3】本発明の第2実施形態を示すブロック図である。
【図4】発明の第3実施形態における記憶手段の構成を示す概略図である。
【図5】本発明の第3実施形態における記憶手段の他の構成を示す概略図である。
【図6】従来の内積演算装置の一例を示すブロック図である。
【符号の説明】
201 データ入力端子郡
230 データ出力端子郡
203 設定データ入力端子
204, 501, 502, 503 ルックアップ表を格納する記憶手段
251, 252, 253, 400 分散算術演算処理回路
202 入力データ変換手段
205 データの選択手段
206 選択されたデータの演算手段
207 加減算器
208 ビットシフタ
209 一時記憶手段[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an inner product operation device using a distributed arithmetic operation (hereinafter, referred to as a DA method) used for digital signal processing such as image signal encoding, filtering, and discrete Fourier transform, and a complex number multiplication. The present invention relates to an arithmetic device such as a device.
[0002]
[Prior art]
The DA method is a well-known method of realizing the inner product operation of a matrix with a look-up table and an adder. For example,
[0003]
To explain the DA method, consider an inner product operation of a constant vector A having the number K of elements and an input vector X represented by the following
[0004]
[0005]
Assuming that X k is a fixed-point W-bit width fixed-point number represented by 2's complement, it can be expressed as the following
[0006]
[0007]
In this equation (2), b k [w] is a bit (1 or 0), b k [0] is a sign bit, and b k [W−1] is a least significant bit.
[0008]
Further, X k = Since {X k - - (X k )} / 2 and expressed, placing the bit inversion of b k and b 'k, X k is as follows.
[0009]
[0010]
However, c k [w] in Expression 3 is expressed as follows.
[0011]
[0012]
By substituting (Equation 3) into (Equation 1), the following
[0013]
[0014]
In
[0015]
[0016]
In (Equation 6), Q (b w ) can be transformed as in the following equation.
[0017]
[0018]
Therefore, Q (b w ) in the case of c 1 = −1 can be represented by Q (b w ) in the case of c 1 = 1, so that the value of Expression 6 can be expressed in 2 K−1 ways. This value is stored as a look-up table. Then, since w = W-1 to 0, each value is multiplied by 2- w, the processing is sequentially executed from w = W-1, and the values referred from the lookup table are shifted to the right by one digit and added. . With the above procedure, AX can be obtained without performing multiplication.
[0019]
Performing the above operation simultaneously for a plurality of values of the input vector X is equivalent to performing the operation of the following equation.
[0020]
[0021]
Here, X (i) is the i-th vertical vector of X in equation (1), A (i) is a corresponding horizontal vector (i is an integer of 0 or more), and 0 is an element value of 0 Indicates a horizontal vector. A ′ represents a matrix containing A (i), X ′ represents a vector containing X (i), and B represents a calculation result.
[0022]
FIG. 6 shows a method of performing the calculation of (Equation 8) using the methods shown in Patent Documents 3 and 4, for example. Each element of the input vector X (0), X (1),...
[0023]
[Patent Document 1]
US Patent No. 3,777,130 [Patent Document 2]
US Patent No. 5,226,002 [Patent Document 3]
Japanese Patent Application Laid-Open No. 2000-148730 [Non-Patent Document]
"Applications of distributed arithmetic to digital signal processing: atomic review," A. White, IEEE ASSP magazine, vol. 6, issue 3, pp. 4-9, July 1989
[0024]
[Problems to be solved by the invention]
However, in the conventional device shown in FIG. 6, since each of the distributed
[0025]
In FIG. 6, since input data is input in a bit serial manner from the
[0026]
As described above, when the inner product operation is simultaneously performed on a plurality of data by the distributed arithmetic operation, storage means for the number of simultaneous processes is required, and there is a problem that the compactness deteriorates as the number of simultaneous processes increases.
[0027]
The present invention has been made in view of such a problem, and has as its object to speed up distributed arithmetic operations while keeping the size of a storage unit small.
[0028]
[Means for Solving the Problems]
The present invention provides means for solving such problems, and the invention of each claim constitutes the following technical means.
[0029]
According to the present invention, there is provided an arithmetic unit for performing an arithmetic process on a first input data set and a second input data set by using a distributed arithmetic operation method, wherein the first input data set is input. At least one distributed arithmetic operation means, and storage means for storing a data table (look-up table) corresponding to the second input data set and outputting a data set corresponding to the second input data And the distributed arithmetic means generates first to U-th data each having a T-bit width (T is a natural number) from the first to U-th (U is a natural number) data of the first input data set. A conversion unit, and first to T-th selecting optimum data from a data set output from the storage unit according to the content of each bit from the least significant bit to the most significant bit of the first to U-th conversion means. Selecting means, and the first A first calculating means for calculating the data output from the T-th selecting means, and an addition and subtraction of the data output from the first calculating means and the output of the third calculating means for performing a bit shift. A second arithmetic unit for executing, a temporary storage unit for temporarily storing an arithmetic result output from the second arithmetic unit, and a third unit for performing a bit shift of data output from the temporary storage unit. An arithmetic device characterized by comprising arithmetic means.
[0030]
In the arithmetic device of the present invention having the above-described configuration, since each of the distributed arithmetic operation means does not need to include a storage means for storing a table of data, the distributed arithmetic operation can be performed without increasing the number of storage means for storing the table. The processing speed can be increased by the simultaneous T-bit processing using
[0031]
The arithmetic device of the present invention can be configured as an inner product arithmetic device. In this case, the first to U-th conversion means converts the value of each bit position (0, 1,..., T-1) in the first to U-th data of the first input data set to the least significant bit. , In order from 0 bit to T-1 bit, and sequentially output to the first to Tth selecting means in T bits at a time. The calculating means shifts the output of the first to T-1th selecting means one bit at a time from the T-1 bit to one bit (T-1, T-2... One bit at a time). Each of the bit-shifted results is added to or subtracted from the output of the T-th selection means. The third arithmetic means bit-shifts the output of the temporary storage means to the lower side by T bits, and outputs the first input data set. And a vector input as a second input data set To calculate the inner product. With this configuration, it is possible to increase the speed of the inner product operation processing by T-bit simultaneous processing using distributed arithmetic operation without increasing the number of storage means for storing the table.
[0032]
Further, the arithmetic device of the present invention can be configured as a complex number multiplication device. In this case, the first input data set is H (H is a natural number) complex numbers, and the real part and the imaginary part of the h-th (h is an integer from 1 to H) complex number are respectively the first and the imaginary parts. Are assigned to the 2h-1st and 2h-th input data sets, the number of the first distributed arithmetic operation means is 2H, and the 2h-1st and 2h-th inputs of the first input data set are , 2h-1 and 2h, multiplied by the complex number input as the first input data and the complex number input as the second input data, which are output only to the distributed arithmetic operation means. With such a configuration, it is possible to increase the speed of the complex number multiplication operation processing by the T-bit simultaneous processing using the distributed arithmetic operation without increasing the storage means for storing the table.
[0033]
A first table showing a value of {cos (2πn / N) + sin (2πn / N)} / 2 with respect to n being an integer of 0 to N / 8, and an integer of 0 to N / 8. And the second table indicating the value of {cos (2πn / N) −sin (2πn / N)} / 2 for n, the N-point discrete values can be obtained without increasing the capacity of the storage means. The butterfly operation required for the Fourier transform can be processed at high speed.
[0034]
Alternatively, the first storage means stores a value of {cos (2πn / N) + sin (2πn / N)} / 2 and {cos (2πn / N) −sin for n which is an integer from 0 to N / 8. A third table indicating pairs of values of (2πn / N)} / 2 may be stored. In this case, the butterfly operation required for the N-point discrete Fourier transform can be performed at high speed, while further reducing the capacity and power consumption of the storage means.
[0035]
BEST MODE FOR CARRYING OUT THE INVENTION
Next, an embodiment of the present invention shown in the drawings will be described.
[0036]
(Basic configuration)
First, the basic configuration of the arithmetic device of the present invention shown in FIG. 1 will be described. This basic configuration is the basis of the inner product operation device and the complex multiplication device of the first to third embodiments described later. In FIG. 1,
[0037]
The
[0038]
The first to U-th data input from the
[0039]
The
[0040]
The plurality of data output from the
[0041]
. In the conventional example shown in FIG. 6 are any one of the
[0042]
(1st Embodiment)
FIG. 2 shows an inner product calculation device according to the first embodiment of the present invention. The components having the same functions as those in FIG.
[0043]
The
[0044]
The operation means 206 includes a group of
[0045]
The bit shifter (208) is constituted by a T bit shifter (308).
[0046]
As described in the section of the basic configuration, conventionally, it is necessary to simultaneously perform distributed arithmetic operations so that processing of distributed arithmetic operations can be performed at a high speed by the number of selection units constituting the
[0047]
(2nd Embodiment)
FIG. 3 shows a second embodiment of the complex number multiplying device according to the present invention. The components having the same functions as those in FIG. The real part of the
[0048]
[0049]
Here, a multiplication Y · {Z} of a complex constant Y and a plurality of arbitrary complex numbers {Z} is considered. . Y = Y r -jY i, if one of the elements of {Z} is denoted by Z = Z r + jZ i (the subscript r real part, subscript i denotes the
[0050]
[0051]
Therefore, if A and X are set as in the following
[0052]
[0053]
Similarly, in
[0054]
[0055]
The real part, in any case the imaginary part, the look-up table {(Y r + Y i) / 2, (Y r -Y i) / 2} is, the same. This, in FIG. 3, the Z i enter each Z r, the 2h-th input terminal to 2h-1-th input terminal of the input terminal-
[0056]
With this configuration, multiplication of complex numbers can be realized by distributed arithmetic operation, irrespective of the number of elements of {Z}, that is, the number of inputs of
[0057]
(Third embodiment)
The N-point discrete Fourier transform (hereinafter, DFT) of the complex function f (n) is represented by the following equation.
[0058]
[0059]
W N is a factor called a twiddle factor. By transforming Equation 12,
[0060]
[0061]
If k is even and odd,
[0062]
[0063]
However,
[0064]
It becomes. The N-point DFT for f (n) became the N / 2-point DFT for y (n) and z (n). At this time, it is necessary to perform the calculation of Expression 15 at N / 2 points. The operation of Expression 15 is called a butterfly operation. By repeating this recursively at log 2 N−1 stages (when N is a power of 2), a DFT operation result can be obtained. This is a calculation method called a radix-2 frequency thinning DFT.
[0065]
In this case, it is necessary to perform the complex multiplication shown in Expression 15 N / 2 times per stage, for a total of log 2 N−1 stages. Therefore, in order to perform DFT at high speed, the operation of Expression 15 needs to be performed at high speed. is there. Therefore, it is desired to perform N / 2 operations of Equation 15 per stage by several simultaneous parallel processes. This is the second embodiment according to the present invention,
[0066]
[0067]
This can be achieved. In this case, Q (b w ) in (Equation 6) is
[0068]
[0069]
It is. By the way, since all the values of the trigonometric function can be expressed by the trigonometric function values of 0 to 45 degrees, the look-up table for Expression 17 needs to store only the results of n = 0 to N / 8.
[0070]
FIG. 4 shows the configuration of the storage means in this case. Those having the same functions as those in FIG. 1 are given the same numbers. The
[0071]
With such a configuration, the butterfly operation required for DFT can be performed at high speed without increasing the number of storage means for the lookup table.
[0072]
(Fourth embodiment)
FIG. 5 shows another configuration of the storage unit in the third embodiment. Those having the same functions as those in FIG. 4 are given the same numbers. Since n is a fixed value in one complex multiplication, if the
[0073]
(Fifth embodiment)
If the complex number multiplication is configured by the DA method according to the second embodiment using the look-up table of FIG. 4 or 5, the operation of Expression 15 can be performed. As described above, Equation 15 needs to be performed for n = 0... N / 2-1. However, by simultaneously processing some of them, it is possible to speed up the operation. At that time, as shown in the second embodiment, there is no increase in the storage means for storing the lookup table. Further, as described in the first embodiment, even if the calculation speed is increased by the multi-bit simultaneous processing, the number of storage means for storing the lookup table does not increase. By performing the above operations in log 2 N−1 stages, a DFT operation can be achieved.
[0074]
With such a configuration, it is possible to increase the speed of the DFT without increasing the number of storage means for the lookup table.
[0075]
【The invention's effect】
As is apparent from the above description, the arithmetic device of the present invention has at least one distributed arithmetic operation to which a first input data set is input and which includes a conversion unit, a selection unit, and first to third arithmetic units. Means for storing a table of data corresponding to the second input data set, and storage means for outputting a data set corresponding to the second input data, wherein the selecting means of the distributed arithmetic operation means is a storage means. Optimum data is selected from the data set output from, and without increasing the number of storage means for storing the table, T-bit simultaneous processing using distributed arithmetic operation allows inner product operation processing, complex multiplication processing, N points It is possible to speed up arithmetic processing such as butterfly arithmetic processing required for discrete Fourier transform.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a basic configuration of the present invention.
FIG. 2 is a block diagram showing a first embodiment of the present invention.
FIG. 3 is a block diagram showing a second embodiment of the present invention.
FIG. 4 is a schematic diagram illustrating a configuration of a storage unit according to a third embodiment of the present invention.
FIG. 5 is a schematic diagram illustrating another configuration of the storage unit according to the third embodiment of the present invention.
FIG. 6 is a block diagram illustrating an example of a conventional inner product calculation device.
[Explanation of symbols]
201 data
Claims (5)
前記第1の入力データ組が入力される少なくとも1個の分散算術演算手段と、
前記第2の入力データ組に対応したデータの表を記憶し、前記第2の入力データに応じたデータ組を出力する記憶手段とを備え、
前記分散算術手段は、
前記第1の入力データ組の1番目からU番目のデータから、Tビット幅のデータをそれぞれ生成する第1から第Uの変換手段と、
前記第1から第Uの変換手段の最下位から最上位ビットまでの各ビットの内容に従って、前記記憶手段から出力されるデータ組から、それぞれ最適なデータを選ぶ第1から第Tの選択手段と、
前記第1から第Tの選択手段より出力されるデータを演算する第1の演算手段と、
前記第1の演算手段から出力されるデータと、ビットシフトを実行する第3の演算手段の出力との加減算を実行する第2の演算手段と、
前記第2の演算手段から出力される演算結果を一時的に格納する一時記憶手段と、
前記一時記憶手段から出力されるデータのビットシフトを実行する第3の演算手段とを備えることを特徴とする、演算装置。An arithmetic device for performing arithmetic processing on a first input data set and a second input data set by using a distributed arithmetic operation method,
At least one distributed arithmetic operation unit to which the first input data set is input;
Storage means for storing a table of data corresponding to the second input data set, and outputting a data set corresponding to the second input data,
The distributed arithmetic means,
First to U-th conversion means for respectively generating T-bit-width data from the first to U-th data of the first input data set;
First to T-th selecting means for selecting optimum data from a data set output from the storage means in accordance with the contents of each bit from the least significant bit to the most significant bit of the first to U-th converting means; ,
First calculating means for calculating data output from the first to Tth selecting means;
A second arithmetic unit for performing addition and subtraction between the data output from the first arithmetic unit and the output of the third arithmetic unit for performing a bit shift;
A temporary storage unit for temporarily storing an operation result output from the second operation unit;
And a third arithmetic unit for performing a bit shift of the data output from the temporary storage unit.
前記第1の演算手段は、前記第1から第T−1の選択手段の出力を各々T−1ビットから1ビットまで1ビットずつ下位側にビットシフトした各結果と、第Tの選択手段の出力とを加減算し、
前記第3の演算手段は、前記一時記憶手段の出力をTビット下位側にビットシフトし、
前記第1の入力データ組として入力されるベクトルと第2の入力データ組として入力されるベクトルの内積を計算することを特徴とする、請求項1に記載の演算装置。The first to U-th conversion means converts the value of each bit position in the first to U-th data of the first input data set in order from the least significant bit to each bit position of 0 to T-1 bits. , And sequentially output T bits to the first to Tth selecting means,
The first arithmetic means includes a result obtained by shifting the output of the first to T-1th selection means one bit at a time from the T-1 bit to one bit by one bit, and a result of the Tth selection means. Addition and subtraction with output
The third arithmetic means shifts the output of the temporary storage means to the lower side by T bits,
The arithmetic device according to claim 1, wherein an inner product of a vector input as the first input data set and a vector input as the second input data set is calculated.
前記第1の分散算術演算手段の数は2H個であり、
前記第1の入力データ組の2h−1番目及び2h番目の入力は、2h−1番目及び2h番目の前記分散算術演算手段にのみ出力され、
前記第1の入力データとして入力される複素数と、前記第2の入力データとして入力される複素数の乗算を行うことを特徴とする、請求項1に記載の演算装置。The first input data set is H complex numbers, and the real part and the imaginary part of the h-th complex number are respectively assigned to the 2h-1st and 2hth of the first input data set,
The number of the first distributed arithmetic operation means is 2H,
The 2h-1st and 2hth inputs of the first input data set are output only to the 2h-1st and 2hth distributed arithmetic operation means,
The arithmetic device according to claim 1, wherein multiplication of a complex number input as the first input data and a complex number input as the second input data is performed.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002336196A JP3875183B2 (en) | 2002-11-20 | 2002-11-20 | Arithmetic unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002336196A JP3875183B2 (en) | 2002-11-20 | 2002-11-20 | Arithmetic unit |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004171263A true JP2004171263A (en) | 2004-06-17 |
JP3875183B2 JP3875183B2 (en) | 2007-01-31 |
Family
ID=32700105
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002336196A Expired - Fee Related JP3875183B2 (en) | 2002-11-20 | 2002-11-20 | Arithmetic unit |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3875183B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019135354A1 (en) * | 2018-01-05 | 2019-07-11 | Nttエレクトロニクス株式会社 | Calculation circuit |
WO2019135355A1 (en) * | 2018-01-05 | 2019-07-11 | Nttエレクトロニクス株式会社 | Calculation circuit |
-
2002
- 2002-11-20 JP JP2002336196A patent/JP3875183B2/en not_active Expired - Fee Related
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019135354A1 (en) * | 2018-01-05 | 2019-07-11 | Nttエレクトロニクス株式会社 | Calculation circuit |
WO2019135355A1 (en) * | 2018-01-05 | 2019-07-11 | Nttエレクトロニクス株式会社 | Calculation circuit |
JP2019121171A (en) * | 2018-01-05 | 2019-07-22 | 日本電信電話株式会社 | Arithmetic circuit |
JP2019121172A (en) * | 2018-01-05 | 2019-07-22 | 日本電信電話株式会社 | Arithmetic circuit |
CN111615700A (en) * | 2018-01-05 | 2020-09-01 | Ntt电子股份有限公司 | Arithmetic circuit |
JP6995629B2 (en) | 2018-01-05 | 2022-01-14 | 日本電信電話株式会社 | Arithmetic circuit |
US11360741B2 (en) | 2018-01-05 | 2022-06-14 | Ntt Electronics Corporation | Arithmetic circuit |
US11494165B2 (en) | 2018-01-05 | 2022-11-08 | Ntt Electronics Corporation | Arithmetic circuit for performing product-sum arithmetic |
CN111615700B (en) * | 2018-01-05 | 2023-12-08 | Ntt创新器件有限公司 | Arithmetic circuit |
Also Published As
Publication number | Publication date |
---|---|
JP3875183B2 (en) | 2007-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2646778B2 (en) | Digital signal processor | |
US8504602B2 (en) | Modular multiplication processing apparatus | |
JPH0526229B2 (en) | ||
JPH08235159A (en) | Inverse cosine transformation device | |
US6052703A (en) | Method and apparatus for determining discrete cosine transforms using matrix multiplication and modified booth encoding | |
JP3551113B2 (en) | Divider | |
JP3577325B2 (en) | Data processing method by discrete cosine transform (DCT), DCT method, and DCT data processing circuit | |
JP3875183B2 (en) | Arithmetic unit | |
WO2011036746A1 (en) | Calculation device | |
JP3660075B2 (en) | Dividing device | |
US5847980A (en) | Product-summing arithmetic circuit | |
JP4696920B2 (en) | DDS signal generator | |
JP2004166274A (en) | Method and apparatus for basis conversion in finite field | |
KR100954843B1 (en) | Method and Apparatus of elliptic curve cryptographic operation based on block indexing on sensor mote and Recording medium using by the same | |
JP2009124353A (en) | Data transform apparatus and control method thereof | |
US7015839B1 (en) | Mapping method utilizing look-up table and related apparatus | |
US11042359B2 (en) | Semiconductor device including an adder | |
JP2953918B2 (en) | Arithmetic unit | |
KR100575285B1 (en) | Low power, high speed DCT device and method thereof | |
JP2008158855A (en) | Correlation computing element and correlation computing method | |
JP2000010763A (en) | Division circuit | |
Kong et al. | A low-cost architecture for DWT filter banks in RNS applications | |
CN115705676A (en) | Method for storing and analyzing 4bit feature map in convolution calculation | |
JPH06274524A (en) | Orthogonal transformation circuit and inverse transformation circuit | |
KR100186396B1 (en) | Color coordinate system conversion apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050525 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060619 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060704 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060901 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20061017 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061025 |
|
R150 | Certificate of patent (=grant) or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091102 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101102 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111102 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111102 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121102 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121102 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131102 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |