JP3287305B2 - 積和演算装置 - Google Patents

積和演算装置

Info

Publication number
JP3287305B2
JP3287305B2 JP12948698A JP12948698A JP3287305B2 JP 3287305 B2 JP3287305 B2 JP 3287305B2 JP 12948698 A JP12948698 A JP 12948698A JP 12948698 A JP12948698 A JP 12948698A JP 3287305 B2 JP3287305 B2 JP 3287305B2
Authority
JP
Japan
Prior art keywords
data
multiplier
bus
output
multiplexer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP12948698A
Other languages
English (en)
Other versions
JPH11306163A (ja
Inventor
大二 石井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP12948698A priority Critical patent/JP3287305B2/ja
Priority to CA002269868A priority patent/CA2269868A1/en
Priority to EP99107977A priority patent/EP0952516A3/en
Priority to US09/296,653 priority patent/US6385635B1/en
Publication of JPH11306163A publication Critical patent/JPH11306163A/ja
Application granted granted Critical
Publication of JP3287305B2 publication Critical patent/JP3287305B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は積和演算装置に関
し、特に実数および複素数の積和演算を高速に行うこと
ができる積和演算装置に関する。
【0002】
【従来の技術】近年の通信における大容量化および多機
能化に伴い、変復調や高速フーリエ変換、ベースバンド
処理といった処理の高速化が以前にも増して重要になっ
てきている。このような処理では、複素数および実数の
積和演算が多用される。複素数の積和演算では、1演算
当り実数の乗算を4回、加算を3回、減算を1回行わな
ければならない。また、サンプリング周波数が増大する
につれ、実数の積和演算1回当りに許される処理時間は
ますます短くなる。このため、より高速な複素数および
実数の積和演算装置が必要不可欠となっている。
【0003】従来、積和演算を高速に行うことを目的と
している積和演算装置としては、例えば、特開平9-2699
39号公報に記載されているものが知られている。
【0004】図4は、従来の積和演算装置の構成を示す
ブロック図である。同図に示すように、従来装置は、デ
ータ入力用のバス401, 402と、1ステップ前の入力デー
タを保持する遅延素子(Delay)403, 406 と、乗算器409,
410への入力を制御信号405,408に従って選択するマル
チプレクサ(MUX)404, 407 と、入力データに対して乗算
を行う乗算器409, 410と、これら乗算器409, 410の乗算
結果をアキュムレータ(ACC)413, 414 が保持している値
に累加算あるいは累減算する加減算器411, 412と、デー
タ出力用のバス415, 416とを含んで構成されている。
【0005】図4を参照して、FIR フィルタを実現する
場合および複素数の積和演算を行う場合を例にとって従
来装置の動作を説明する。
【0006】先ず、FIR フィルタを実現する場合につい
て説明する。ここでは、フィルタ次数が4の場合の例を
示す。
【0007】時刻nのフィルタ出力y(n)は次式(1) のよ
うに表すことができる。
【0008】 y(n)=a0*x(n)+a1*x(n-1)+a2*x(n-2)+a3*x(n-3) … (1)
【0009】従来装置では、積和演算を高速に行えるよ
うにするため、式(1) に示した時刻nのフィルタ出力y
(n)と、次式(2) に示す時刻n+1 のフィルタ出力y(n+1)
とを並行して計算する。
【0010】 y(n+1)=a0*x(n+1)+a1*x(n)+a2*x(n-1)+a3*x(n-2) … (2)
【0011】式(1),(2) において、x(n+1), x(n), x(n-
1), x(n-2), x(n-3)は、それぞれ時刻n+1, n, n-1, n-
2, n-3 におけるフィルタ入力を表す。また、a0, a1, a
2, a3はフィルタ係数である。
【0012】従来装置を用いた式(1),(2) の計算は5ス
テップかかる。ここでは、5ステップのうち、最後のス
テップにおける動作だけ説明する。他のステップにおい
ても演算対象データが異なるだけで動作は同じである。
【0013】最後のステップが開始される前の第4ステ
ップの処理により、アキュムレータ413 にはa1*x(n)+a2
*x(n-1)+a3*x(n-2) が保持され、アキュムレータ414 に
はa1*x(n-1)+a2*x(n-2)+a3*x(n-3) が保持されている。
また、遅延素子406 には、フィルタ入力x(n)が保持され
ている。
【0014】この状態において、最後のステップでは、
先ずフィルタ入力x(n+1)とフィルタ係数a0がそれぞれバ
ス401, 402を介してメモリ(図示せず)から転送され
る。
【0015】遅延素子406 は、保持しているデータx(n)
を出力した後、バス401 からのデータx(n+1)を保持す
る。
【0016】乗算器409 は、バス401 からのデータx(n+
1)とバス402 からのデータa0とを乗算し、乗算結果a0*x
(n+1) を出力する。乗算器410 は、遅延素子406 の出力
x(n)とバス402 からのデータa0とを乗算し、乗算結果a0
*x(n) を出力する。
【0017】これらの乗算結果は、加減算器411, 412に
おいてそれぞれアキュムレータ413,414 の内容に加算さ
れる。こうして、アキュムレータ413, 414にはそれぞれ
y(n+1), y(n)が保持されることになる。以上が、FIR フ
ィルタを実現する場合における従来装置の動作である。
【0018】次に、図4を参照して、複素数の積和演算
を行う場合について従来装置の動作を説明する。複素数
の積和演算は次式(3) で表すことができる。
【0019】 (A+jB)*(C+jD)+(E+jF)=(A*C-B*D+E)+j(A*D+B*C+F) … (3)
【0020】複素数E+jFのうち、Eはアキュムレータ 4
13に格納されており、Fはアキュムレータ414 に格納さ
れているとする。このとき、式(3) は以下の3ステップ
で計算される。
【0021】第1ステップでは、本計算の前処理として
以下の処理が行われる。先ず、データAと値0がそれぞ
れバス401, 402を介してメモリから転送される。遅延素
子403, 406には、ともにAが保持される。乗算器409, 4
10は、ともにバス401 からのデータAとバス402 からの
値0とを乗算し、乗算結果A*0(=0) を出力する。これら
の乗算結果0は、加減算器411, 412においてそれぞれア
キュムレータ413, 414の内容に加算される。
【0022】第2ステップでは、先ず、データBとデー
タCがそれぞれバス401, 402を介してメモリから転送さ
れる。遅延素子403 にはBが保持され、遅延素子406 に
は遅延素子403 の出力Aが保持される。乗算器409 は、
遅延素子403 の出力Aとバス402 からのデータCとを乗
算し、乗算結果A*C を出力する。乗算器410 は、バス40
1 からのデータBとバス402 からのデータCとを乗算
し、乗算結果B*C を出力する。これらの乗算結果は、加
減算器411, 412においてそれぞれアキュムレータ413, 4
14の内容に加算される。こうして、アキュムレータ413,
414にはそれぞれE+A*C, F+B*Cが保持される。
【0023】第3ステップでは、先ず、データDがバス
402 を介してメモリから転送される。乗算器409 は、遅
延素子403 の出力Bとバス402 からのデータDとを乗算
し、乗算結果B*D を出力する。乗算器410 は、遅延素子
406 の出力Aとバス402 からのデータDとを乗算し、乗
算結果A*D を出力する。
【0024】乗算器409 の乗算結果B*D は、加減算器41
1 においてアキュムレータ 413の内容から減算される。
乗算器410 の乗算結果A*D は、加減算器412 においてア
キュムレータ 414の内容に加算される。こうして、アキ
ュムレータ413, 414には積和演算結果の実数部と虚数部
がそれぞれ保持されることになる。
【0025】
【発明が解決しようとする課題】上述したように、従来
装置では、乗算、加減算をそれぞれ2並列で行うことに
より、実数および複素数の積和演算を高速化している
が、今後通信が更に大容量化すると、この程度の高速化
では処理性能を満たせないという問題が生じてくる。
【0026】更に、従来装置は、遅延素子やマルチプレ
クサをそれぞれ2個ずつ含むなど、入力部の構成が複雑
であるという問題もある。
【0027】〔発明の目的〕本発明は上述した従来技術
の問題点を解決するためになされたものであり、その目
的は、実数および複素数の積和演算を高速に行うことが
でき、且つ構成が比較的簡単な積和演算装置を提供する
ことである。
【0028】
【課題を解決するための手段】本発明による積和演算装
置は、演算手段およびデータ転送手段の数を増やして並
列性を上げることにより、実数および複素数の積和演算
を高速に行えるようにしたものである。
【0029】より具体的には、4ワードのデータを同時
に転送する第1〜第4のバス(図1の101 〜104)と、
記第2のバス(図1の102)を介して転送されてきたデー
タを、制御信号が第1の状態の場合には直ちに出力し、
前記制御信号が第2の状態の場合は次のデータが転送さ
れてきたときに出力するラッチ回路(図1の105)と、
記第1及び第3のバス(図1の101,103)を介して転送さ
れてくるデータ同士の乗算を行う第1の乗算器(図1の
107)と、 前記第2及び第4のバス(図1の102,104)を介
して転送されてくるデータ同士の乗算を行う第2の乗算
器(図1の108)と、 前記ラッチ回路(図1の105)から出
力されるデータと前記第3のバス(図1の103)を介して
転送されてくるデータとの乗算を行う第3の乗算器(図
1の109)と、 前記第1及び第4のバス(図1の101,104)
を介して転送されてくるデータ同士の乗算を行う第4の
乗算器(図1の110)と、それぞれが前記第1,第2の乗
算器(図1の107, 108)の乗算結果の加減算、前記第
3,第4の乗算器(図1の109, 110)の乗算結果の加減
算を行う第1,第2の加減算器(図1の111, 112) と、
第1,第2のアキュムレータ(図1の115, 116) と、そ
れぞれが前記第1,第2の加減算器(図1の111, 112)
の演算結果と前記第1,第2のアキュムレータ(図1の
115, 116)に保持されている値とを加算し、加算結果を
前記第1,第2のアキュムレータ(図1の115, 116) に
保持させる第1,第2の加算器(図1の113, 114) とを
備えている。
【0030】この構成においては、制御信号を第1の状
態にした場合は、ラッチ回路が第2のバスを介して送ら
れてくるデータをそのまま出力するので、第1〜第4の
乗算器は、第1〜第4のバスを介して転送されてくるデ
ータの内の、自乗算器に割り当てられている2個のデー
タ同士の乗算を行うことになる。そして、第1,第2の
加減算器が、第1,第2の乗算器の乗算結果の加減算お
よび第3,第4の乗算器の乗算結果の加減算を行い、第
1,第2の加算器が、第1,第2の加減算器の演算結果
と第1,第2のアキュムレータに保持されている値とを
加算し、加算結果を第1,第2のアキュムレータに保持
させる。これにより、1回の複素数積和演算に必要な4
乗算, 3加算, 1減算を1ステップで処理することが可
能になる。また、制御信号を第2の状態にした場合は、
ラッチ回路が第2のバスを介して送られてきたデータを
遅延させて出力するので、第1,第2,第4の乗算器
は、制御信号が第1の状態の場合と同様の動作を行う
が、第3の乗算器は、ラッチ回路で遅延されたデータと
第3のバスを介して送られてくるデータとを乗算するこ
とになる。式(1) のa0*x(n)+a1*x(n-1) および式(2) の
a0*x(n+1)+a1*x(n) を計算するためには (つまり、畳み
込み演算における積和演算を4並列で行うためには)、
5個のa0, a1, x(n+1), x(n), x(n-1)が必要になるが、
これらのデータを第1〜第4のバス、ラッチ回路から供
給することにより、実数積和演算を3ステップで行うこ
とができる。更に、従来装置のように、マルチプレクサ
等の余分な回路がないため、簡単な装置構成になる。
【0031】
【0032】
【0033】
【発明の実施の形態】次に本発明の実施の形態について
図面を参照して詳細に説明する。
【0034】〔構成の説明〕図1は、本発明による積和
演算装置の実施の一形態を示すブロック図である。同図
に示すように、本装置は、メモリ(図示せず)から4ワ
ード分のデータを同時に転送するための4ワード分のバ
ス101, 102, 103, 104と、制御信号106 に基づいて入力
データを通過させたり保持したりするラッチ回路105
と、入力データに対して乗算を行う乗算器107, 108, 10
9, 110と、これら乗算器107, 108, 109,110 の乗算結果
を足したり引いたりする加減算器111, 112と、加減算器
111, 112の演算結果とアキュムレータ(ACC)115, 116 に
保持されている値との加算を行う加算器113, 114と、バ
ス117, 118とを含んで構成されている。
【0035】ラッチ回路105 は、制御信号106 がオンの
場合には、バス102 によって転送されてきたデータをそ
のまま出力し、オフの場合には、バス102 によって転送
されてきたデータを一時保持し、次のステップで出力す
る。
【0036】乗算器107 は、バス101, 103を介してメモ
リから転送されてきたデータ同士の乗算を行う。乗算器
108 は、バス102, 104を介して転送されてきたデータ同
士の乗算を行う。乗算器109 は、バス103 を介してメモ
リから転送されたデータとラッチ回路105 からのデータ
との乗算を行う。乗算器110 は、バス101, 104を介して
転送されてきたデータ同士の乗算を行う。
【0037】加減算器111 は、乗算器107, 108の乗算結
果を加算あるいは減算する。加減算器112 は、乗算器10
9, 110の乗算結果を加算あるいは減算する。
【0038】加算器113 は、加減算器111 の演算結果と
アキュムレータ115 の値とを加算し、加算結果を出力す
る。加算器114 は、加減算器112 の演算結果とアキュム
レータ116 の値とを加算し、加算結果を出力する。
【0039】アキュムレータ115 は、加算器113 の加算
結果を保持し、保持した値を次のステップで出力する。
アキュムレータ116 は、加算器114 の加算結果を保持
し、保持した値を次のステップで出力する。
【0040】〔動作の説明〕次に、本実施の形態の動作
について図1を参照して説明する。
【0041】4ワード分のデータがバス101, 102, 103,
104を介してメモリから乗算器107,108, 109, 110およ
びラッチ回路105 へデータが転送される。
【0042】これらのデータは、各乗算器107, 108, 10
9, 110において乗算される。乗算器107 では、バス101,
103からのデータを乗算する。乗算器108 では、バス10
2, 104からのデータを乗算する。乗算器109 では、バス
103 およびラッチ回路105 からのデータを乗算する。乗
算器110 では、バス101, 104からのデータを乗算する。
【0043】これらの乗算の後、乗算器107, 108, 109,
110の乗算結果は、加減算器111, 112においてそれぞれ
加算または減算される。加減算器111 では、乗算器107,
108の乗算結果を加減算する。加減算器112 では、乗算
器109, 110の乗算結果を加減算する。
【0044】これら加減算器111, 112の演算結果は、加
算器113, 114において、アキュムレータ115, 116の値と
足し合わされる。加算器113 では、加減算器111 の演算
結果とアキュムレータ115 の値を加算する。加算器114
では、加減算器112 の演算結果とアキュムレータ116 の
値を加算する。加算器113, 114の加算結果は、それぞれ
アキュムレータ115, 116にそれぞれ保持される。
【0045】以上が、本発明による積和演算装置の1ス
テップである。尚、上記のステップで得られたアキュム
レータ115, 116の値は、次のステップにおいて、加算器
113,114 へ入力されるか、あるいはバス117, 118を介し
てメモリへ格納される。
【0046】〔実施例〕本実施の形態の実施例について
図1を参照して説明する。ここでは、式(1),(2) によっ
て表されるFIR フィルタを実現する場合と、式(3) に示
す複素数の積和演算を行う場合とについて説明する。
【0047】先ず、FIR フィルタを実現する場合につい
て説明する。従来装置と同様に、時刻nのフィルタ出力
y(n)と、時刻n+1 のフィルタ出力y(n+1)とを並行して計
算する。本実施例による式(1), (2)の計算は次の3ステ
ップからなる。なお、この3ステップの間、制御信号10
6 はオフにしておく。
【0048】第1ステップでは、本計算の前処理として
以下のように処理が行われる。
【0049】先ず、フィルタ入力x(n-4)がバス101 を介
してメモリから転送され、フィルタ入力x(n-3)がバス10
2 を介してメモリから転送される。同時に、値0がバス
103,104を介してメモリから転送される。ラッチ回路105
は、保持している値(本計算には関係ない値)を乗算
器109 の入力として出力した後、バス102 によって転送
されてきたフィルタ入力x(n-3)を保持する。
【0050】乗算器107 では、フィルタ入力x(n-4)と値
0との乗算が行われ、乗算結果0が出力される。乗算器
108 では、フィルタ入力x(n-3)と値0との乗算が行わ
れ、乗算結果0が出力される。乗算器109 では、ラッチ
回路105 の出力と値0との乗算が行われ、乗算結果0が
出力される。乗算器110 では、フィルタ入力x(n-4)と値
0との乗算が行われ、乗算結果0が出力される。
【0051】次に、加減算器111 において、乗算器107,
108の結果が足し合わされ、その加算結果0が出力され
ると共に、加減算器112 において、乗算器109, 110の結
果が足し合わされ、その加算結果0が出力される。これ
ら加算結果(=0)は、アキュムレータ115, 116にそれぞれ
格納される。
【0052】第2ステップでは、フィルタ入力x(n-2)が
バス101 を介してメモリから転送され、フィルタ入力x
(n-1)がバス102 を介してメモリから転送される。同時
に、フィルタ係数a3がバス103 を介してメモリから転送
され、フィルタ係数a2がバス104 を介してメモリから転
送される。また、ラッチ回路105 は、第1ステップで保
持した値x(n-3)を乗算器109 の入力として出力した後、
バス102 によって転送されてきたフィルタ入力x(n-1)を
保持する。
【0053】乗算器107 では、フィルタ入力x(n-2)とフ
ィルタ係数a3との乗算が行われ、乗算結果a3*x(n-2) が
出力される。乗算器108 では、フィルタ入力x(n-1)とフ
ィルタ係数a2との乗算が行われ、乗算結果a2*x(n-1) が
出力される。乗算器109 では、第1ステップでラッチ回
路105 に保持されたフィルタ入力x(n-3)とフィルタ係数
a3との乗算が行われ、乗算結果a3*x(n-3) が出力され
る。乗算器110 では、フィルタ入力x(n-2)とフィルタ係
数a2との乗算が行われ、乗算結果a2*x(n-2) が出力され
る。
【0054】次に、加減算器111 において、乗算器107,
108の結果が足し合わされ、その加算結果a2*x(n-1)+a3
*x(n-2) が出力されると共に、加減算器112 において、
乗算器109, 110の結果が足し合わされ、その加算結果a2
*x(n-2)+a3*x(n-3) が出力される。これら加算結果は、
加算器113, 114においてアキュムレータ 115, 116 の値
0 にそれぞれ加算される。こうして、アキュムレータ 1
15にはa2*x(n-1)+a3*x(n-2) が格納され、アキュムレー
タ 116にはa2*x(n-2)+a3*x(n-3) が格納されることにな
る。
【0055】第3ステップでは、フィルタ入力x(n)がバ
ス101 を介してメモリから転送され、フィルタ入力x(n+
1)がバス102 を介してメモリから転送される。同時に、
フィルタ係数a1がバス103 を介してメモリから転送さ
れ、フィルタ係数a0がバス104を介してメモリから転送
される。また、ラッチ回路105 は、第2ステップで保持
した値x(n-1)を乗算器109 の入力として出力した後、バ
ス102 によって転送されてきたフィルタ入力x(n+1)を保
持する。
【0056】乗算器107 では、フィルタ入力x(n)とフィ
ルタ係数a1との乗算が行われ、乗算結果a1*x(n) が出力
される。乗算器108 では、フィルタ入力x(n+1)とフィル
タ係数a0との乗算が行われ、乗算結果a0*x(n+1) が出力
される。乗算器109 では、第2ステップでラッチ回路10
5 に保持されたフィルタ入力x(n-1)とフィルタ係数a1と
の乗算が行われ、乗算結果a1*x(n-1) が出力される。乗
算器110 では、フィルタ入力x(n)とフィルタ係数a0との
乗算が行われ、乗算結果a0*x(n) が出力される。
【0057】次に、加減算器111 において、乗算器107,
108の結果が足し合わされ、その加算結果a0*x(n+1)+a1
*x(n) が出力されると共に、加減算器112 において、乗
算器109, 110の結果が足し合わされ、その加算結果a0*x
(n)+a1*x(n-1) が出力される。これらの加算結果は、加
算器113, 114においてアキュムレータ115, 116の値にそ
れぞれ加算される。こうして、アキュムレータ115 には
y(n+1)が格納され、アキュムレータ116 にはy(n)が格納
されることになる。
【0058】以上、次数が4 のFIR フィルタに対して本
発明の実施例を示したが、任意の次数のFIR フィルタに
対して本発明を適用できることは明らかである。また、
FIRフィルタに限らず、IIR フィルタ等における畳み込
み演算を実現する際に本発明を適用できることは明らか
である。
【0059】上記の実施例では、式(1), (2)の計算に3
ステップかかる。一方、従来装置では同じ計算に5ステ
ップかかるので、40%のステップ数が削減されたことに
なる。フィルタの次数が高くなればなるほど、ステップ
数の削減割合は漸近的に50%に近づく。
【0060】次に、式(3) に示す複素数の積和演算につ
いて説明する。複素数E+jFのうち、Eはアキュムレータ
115に格納されており、Fはアキュムレータ 116に格納
されている。また、制御信号106 はオンにしておく。
【0061】このとき、式(3) は以下の1ステップで計
算される。先ず、A,B,C,Dが、それぞれバス101,
102, 103, 104を介してメモリから乗算器107, 108, 10
9, 110へ転送される。
【0062】乗算器107 では、AとCの乗算が行われ、
乗算結果A*C が出力される。乗算器108 では、BとDの
乗算が行われ、乗算結果B*D が出力される。乗算器109
では、BとCの乗算が行われ、乗算結果B*C が出力され
る。乗算器110 では、AとDの乗算が行われ、乗算結果
A*D が出力される。
【0063】次に、加減算器111 において、乗算器107,
108にの乗算結果同士の減算が行われ、減算結果A*C-B*
D が出力されると共に、加減算器112 において、乗算器
109,110の乗算結果が足し合わされ、その加算結果A*D+B
*C が出力される。
【0064】これらの加算結果は、加算器113, 114にお
いてアキュムレータ115, 116の値にそれぞれ加算され
る。こうして、アキュムレータ115 にはA*C-B*D+E が格
納され、アキュムレータ 116にはA*D+B*C+F が格納され
ることになる。
【0065】従来装置による複素数の積和演算は3ステ
ップかかるので、約67%のステップ数が削減されたこと
になる。
【0066】〔発明の他の実施の形態〕 次に、本発明の第2の実施の形態について図面を参照し
て説明する。本実施の形態は、図1に示した積和演算装
置と、図2に示した自乗和演算を高速に行うことができ
る積和演算装置とを一装置として構成したことを特徴と
しており、図3に示す構成を有する。先ず、図2を参照
し、自乗和演算を高速に行うことができる積和演算装置
について説明する。
【0067】図2を参照すると、この自乗和演算を高速
に行うことができる積和演算装置は、メモリ(図示せ
ず)から乗算器107, 108, 109, 110へデータを転送する
ためのバス201, 202, 203, 204における配線が第1の実
施の形態と異なる。乗算器107には、バス201 を介して
メモリから転送されたデータが、乗算器の第1入力およ
び第2入力として入力される。乗算器108 には、バス20
2 を介してメモリから転送されたデータが乗算器の第1
入力および第2入力として入力される。乗算器109 に
は、バス203 を介してメモリから転送されたデータが乗
算器の第1入力および第2入力として入力される。乗算
器110 には、バス204 を介してメモリから転送されたデ
ータが乗算器の第1入力および第2入力として入力され
る。
【0068】次に、図2に示した積和演算装置の動作を
説明する。ここで、式(4), (5)に示す自乗和を並行して
計算する場合について説明する。
【0069】P=A2 +B2 +C2 +D2 … (4) Q=E2 +F2 +G2 +H2 … (5)
【0070】式(4) と式(5) の計算は次の3ステップか
らなる。
【0071】第1ステップでは、本計算の前処理として
以下の処理を行う。先ず、値0がバス201, 202, 203, 2
04を介してメモリから乗算器107, 108, 109, 110へ転送
される。
【0072】各乗算器107, 108, 109, 110では、0の自
乗をそれぞれ計算し、その結果0を出力する。
【0073】次に、加減算器111 において、乗算器107,
108の乗算結果が足し合わされ、その結果0が出力され
ると共に、加減算器112 において、乗算器109, 110の乗
算結果が足し合わされ、その結果0が出力される。これ
らの加算結果は、アキュムレータ 115, 116 にそれぞれ
格納される。
【0074】第2ステップでは、先ず、A,B,E,F
がそれぞれバス201, 202, 203, 204を介してメモリから
乗算器107, 108, 109, 110へ転送される。乗算器107
は、Aの自乗を計算し、乗算結果A2 を出力する。乗算
器108 は、Bの自乗を計算し、乗算結果B2 を出力す
る。乗算器109 は、Eの自乗を計算し、乗算結果E2
出力する。乗算器110 は、Fの自乗を計算し、乗算結果
2 を出力する。
【0075】次に、加減算器111 において、乗算器107,
108による乗算結果が足し合わされ、その結果A2 +B
2 が出力されると共に、加減算器112 において、乗算器
109,110による乗算結果が足し合わされ、その結果E2
+F2 が出力される。これらの加算結果は、加算器113,
114において、アキュムレータ 115, 116 の値0にそれ
ぞれ加算される。こうして、アキュムレータ 115にはA
2 +B2 が格納され、アキュムレータ 116にはE2 +F
2 が格納されることになる。
【0076】第3ステップでは、先ず、C,D,G,H
がそれぞれバス201, 202, 203, 204を介してメモリから
乗算器107, 108, 109, 110へ転送される。
【0077】乗算器107 では、Cの自乗が計算され、そ
の結果C2 が出力される。乗算器108 では、Dの自乗が
計算され、その結果D2 が出力される。乗算器109 で
は、Gの自乗が計算され、その結果G2 が出力される。
乗算器110 では、Hの自乗が計算され、その結果H2
出力される。
【0078】次に、加減算器111 において、乗算器107,
108による結果が足し合わされ、その結果C2 +D2
出力されると共に、加減算器112 において、乗算器109,
110による結果が足し合わされ、その結果G2 +H2
出力される。これらの加算結果は、加算器113, 114にお
いて、アキュムレータ 115, 116 の値にそれぞれ加算さ
れる。こうして、アキュムレータ 115には前出の式(4)
の結果Pが格納され、アキュムレータ 116には前出の式
(5) の結果Qが格納されることになる。
【0079】次に、本発明の第の実施の形態について
図面を参照して説明する。
【0080】図3を参照すると、第の実施の形態は、
前述したように、図1に示された第1の実施の形態と図
2に示された積和演算装置とを一装置として構成したも
のになっている。本装置においても、メモリから乗算器
107, 108, 109, 110へデータを転送するためのバス301,
302, 303, 304における配線が、第1の実施の形態と異
なる。更に、バス301, 302, 303, 304の途中にマルチプ
レクサ305, 306, 307,308を配したこと、および本装置
を第1の実施の形態として動作させたり図2の積和演算
装置として動作させたりするための切り替えを行う制御
信号309 を加えたことも異なっている。
【0081】制御信号309 は、本装置を第1の実施の形
態として動作させる場合にはオフ、図2の積和演算装置
として動作させる場合にはオンにする。
【0082】マルチプレクサ305 には、バス301, 303を
介してメモリから転送されたデータと制御信号309 とが
入力され、制御信号309 がオフの場合にはバス303 から
のデータを出力し、制御信号309 がオンの場合にはバス
301 からのデータを出力する。
【0083】マルチプレクサ306 には、バス302, 304を
介してメモリから転送されたデータと制御信号309 とが
入力され、制御信号309 がオフの場合にはバス304 から
のデータを出力し、制御信号309 がオンの場合にはバス
302 からのデータを出力する。
【0084】マルチプレクサ307 には、バス303 を介し
て転送されたデータとラッチ回路105 からの値と制御信
号309 とが入力され、制御信号309 がオフの場合にはラ
ッチ回路105 からの値を出力し、制御信号309 がオンの
場合にはバス303 からのデータを出力する。
【0085】マルチプレクサ308 には、バス301, 304を
介してメモリから転送されたデータと制御信号309 とが
入力され、制御信号309 がオフの場合にはバス301 から
のデータを出力し、制御信号309 がオンの場合にはバス
304 からのデータを出力する。
【0086】乗算器107 は、バス301 を介してメモリか
ら転送されたデータとマルチプレクサ305 からのデータ
とを乗算し、乗算結果を出力する。乗算器108 は、バス
302を介してメモリから転送されたデータとマルチプレ
クサ306 からのデータとを乗算し、乗算結果を出力す
る。乗算器109 は、バス303 を介してメモリから転送さ
れたデータとマルチプレクサ307 からのデータとを乗算
し、乗算結果を出力する。乗算器110 は、バス304 を介
してメモリから転送されたデータとマルチプレクサ308
からのデータとを乗算し、乗算結果を出力する。
【0087】本実施の形態の動作について図3を参照し
て説明する。本装置の動作は、制御信号309 がオフの場
合には第1の実施の形態における動作と同じであり、同
信号がオンの場合には図2に示した積和演算装置の動作
と同じである。
【0088】なお、上記つの実施の形態は、デジタル
シグナルプロセッサやマイクロプロセッサの演算器とし
て用いることもできる。
【0089】
【発明の効果】以上説明したように、本発明の積和演算
装置は、従来装置に比較して多くの乗算器,加減算器を
備えているので、従来装置に比較して積和演算を高速に
行うことができる。また、従来装置のように、マルチプ
レクサを備えなくとも良いので、構成を簡単なものにす
ることができる。
【0090】更に、本発明の積和演算装置は、制御信号
の状態に応じて、第2のバスを介して転送されてきたデ
ータを、第3の乗算器に直ちに出力するか、或いは次の
データが転送されてきたときに第3の乗算器に出力する
ラッチ回路を備えているので、複素数の積和演算,FIR
フィルタを実現するための畳み込み演算による実数の積
和演算など、種々の積和演算を行うことができる。
【0091】
【0092】更に、本発明の積和演算装置は、各乗算器
に自乗を計算させるためのマルチプレクサを備えている
ので、自乗和演算を含めた数々の積和演算を高速に行う
ことができる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態の例を示すブロック
図である。
【図2】自乗和演算を高速に行うことができる積和演算
装置の構成例を示すブロック図である。
【図3】本発明の第の実施の形態の例を示すブロック
図である。
【図4】従来装置の一例を示すブロック図である。
【符号の説明】
101, 102, 103, 104…データ入力用のバス 105 …ラッチ回路 107, 108, 109, 110…乗算器 111, 112…加減算器 113, 114…加算器 115, 116…アキュムレータ 117, 118…データ出力用のバス 201, 202, 203, 204…データ入力用のバス 301, 302, 303, 304…データ入力用のバス 305, 306, 307, 308…マルチプレクサ 401, 402…データ入力用のバス 403, 406…遅延素子 404, 407…マルチプレクサ 409, 410…乗算器 411, 412…加減算器 413, 414…アキュムレータ 415, 416…データ出力用のバス
フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 17/00 - 17/18 G06F 7/00 - 7/54

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】 4ワードのデータを同時に転送する第1
    〜第4のバスと、 前記第2のバスを介して転送されてきたデータを、制御
    信号が第1の状態の場合には直ちに出力し、前記制御信
    号が第2の状態の場合は次のデータが転送されてきたと
    きに出力するラッチ回路と、 前記第1及び第3のバスを介して転送されてくるデータ
    同士の乗算を行う第1の乗算器と、 前記第2及び第4のバスを介して転送されてくるデータ
    同士の乗算を行う第2の乗算器と、 前記ラッチ回路から出力されるデータと前記第3のバス
    を介して転送されてくるデータとの乗算を行う第3の乗
    算器と、 前記第1及び第4のバスを介して転送されてくるデータ
    同士の乗算を行う第4の乗算器と、 それぞれが前記第1,第2の乗算器の乗算結果の加減
    算、前記第3,第4の乗算器の乗算結果の加減算を行う
    第1,第2の加減算器と、 第1,第2のアキュムレータと、 それぞれが前記第1,第2の加減算器の演算結果と前記
    第1,第2のアキュムレータに保持されている値とを加
    算し、加算結果を前記第1,第2のアキュムレータに保
    持させる第1,第2の加算器とを備えたことを特徴とす
    る積和演算装置。
  2. 【請求項2】 4ワードのデータを同時に転送する第1
    〜第4のバスと、 前記第1及び第3のバスを介して転送されてきたデータ
    の内の一方を、マルチプレクサ用制御信号の状態に応じ
    て出力する第1のマルチプレクサと、 前記第2及び第4のバスを介して転送されてきたデータ
    の内の一方を、前記マルチプレクサ用制御信号の状態に
    応じて出力する第2のマルチプレクサと、 前記第2及び第3のバスを介して転送されてきたデータ
    の内の一方を、前記マルチプレクサ用制御信号の状態に
    応じて出力する第3のマルチプレクサと、 前記第1及び第4のバスを介して転送されてきたデータ
    の内の一方を、前記マルチプレクサ用制御信号の状態に
    応じて出力する第4のマルチプレクサと、 前記第1のバスを介して転送されてきたデータと前記第
    1のマルチプレクサの出力とを乗算する第1の乗算器
    と、 前記第2のバスを介して転送されてきたデータと前記第
    2のマルチプレクサの出力とを乗算する第2の乗算器
    と、 前記第3のバスを介して転送されてきたデータと前記第
    3のマルチプレクサの出力とを乗算する第3の乗算器
    と、 前記第4のバスを介して転送されてきたデータと前記第
    4のマルチプレクサの出力とを乗算する第4の乗算器
    と、 それぞれが前記第1,第2の乗算器の乗算結果の加減
    算、前記第3,第4の乗算器の乗算結果の加減算を行う
    第1,第2の加減算器と、第1,第2のアキュムレータ
    と、 それぞれが前記第1,第2の加減算器の演算結果と前記
    第1,第2のアキュムレータに保持されている値とを加
    算し、加算結果を前記第1,第2のアキュムレータに保
    持させる第1,第2の加算器とを備えことを特徴とす
    る積和演算装置。
  3. 【請求項3】 請求項2記載の積和演算装置において、 前記第2のバスを介して転送されてきたデータを、ラッ
    チ用制御信号が第1の状態の場合には直ちに出力し、前
    記ラッチ用制御信号が第2の状態の場合は次のデータが
    転送されてきたときに出力するラッチ回路を備え、且
    つ、 前記第3のマルチプレクサが、前記ラッチ回路の出力と
    前記第3のバスを介して転送されてくるデータの内の一
    方を、前記ラッチ用制御信号の状態に応じて出力する構
    成を有することを特徴とする 積和演算装置。
JP12948698A 1998-04-23 1998-04-23 積和演算装置 Expired - Fee Related JP3287305B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP12948698A JP3287305B2 (ja) 1998-04-23 1998-04-23 積和演算装置
CA002269868A CA2269868A1 (en) 1998-04-23 1999-04-22 Product sum operation device capable of carrying out fast operation
EP99107977A EP0952516A3 (en) 1998-04-23 1999-04-22 Product sum operation device capable of carrying out fast operation
US09/296,653 US6385635B1 (en) 1998-04-23 1999-04-23 Product sum operation device capable of carrying out fast operation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP12948698A JP3287305B2 (ja) 1998-04-23 1998-04-23 積和演算装置

Publications (2)

Publication Number Publication Date
JPH11306163A JPH11306163A (ja) 1999-11-05
JP3287305B2 true JP3287305B2 (ja) 2002-06-04

Family

ID=15010680

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12948698A Expired - Fee Related JP3287305B2 (ja) 1998-04-23 1998-04-23 積和演算装置

Country Status (4)

Country Link
US (1) US6385635B1 (ja)
EP (1) EP0952516A3 (ja)
JP (1) JP3287305B2 (ja)
CA (1) CA2269868A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6625630B1 (en) * 2000-06-05 2003-09-23 Dsp Group Ltd. Two cycle FFT
JP3338043B2 (ja) * 2000-11-02 2002-10-28 株式会社ソニー・コンピュータエンタテインメント 並列演算装置、エンタテインメント装置、演算処理方法、コンピュータプログラム、半導体デバイス
JP2003016051A (ja) * 2001-06-29 2003-01-17 Nec Corp 複素ベクトル演算プロセッサ
JP3930729B2 (ja) * 2001-11-30 2007-06-13 富士通株式会社 半導体装置並びにこれを用いたフラットパネル表示装置及びそのデータドライバ
US20030145030A1 (en) * 2002-01-31 2003-07-31 Sheaffer Gad S. Multiply-accumulate accelerator with data re-use
EP2146278A1 (en) 2002-09-24 2010-01-20 Interdigital Technology Corporation Computationally efficient mathematical engine
US7739324B1 (en) 2006-03-22 2010-06-15 Cadence Design Systems, Inc. Timing driven synthesis of sum-of-product functional blocks
JP2009075676A (ja) * 2007-09-18 2009-04-09 Nec Electronics Corp マイクロプロセッサ
US8909687B2 (en) * 2012-01-19 2014-12-09 Mediatek Singapore Pte. Ltd. Efficient FIR filters
WO2018069785A1 (en) 2016-10-12 2018-04-19 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device and system using the same
KR102356708B1 (ko) * 2017-09-28 2022-01-27 삼성전자주식회사 컨볼루션 연산을 수행하는 연산 장치 및 연산 방법
US11474825B2 (en) * 2019-03-27 2022-10-18 Intel Corporation Apparatus and method for controlling complex multiply-accumulate circuitry
CN110750232B (zh) * 2019-10-17 2023-06-20 电子科技大学 一种基于sram的并行乘加装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58207177A (ja) 1982-05-28 1983-12-02 Nec Corp 演算装置
JPH06103490B2 (ja) 1985-07-26 1994-12-14 ソニー株式会社 電力積分回路
DE3637828C2 (de) * 1986-03-20 1994-08-11 Aeg Mobile Communication Komplexer Multiplizierer-Akkumulierer
JP2541128B2 (ja) * 1993-11-16 1996-10-09 日本電気株式会社 マルチキャリアロ―ルオフフィルタ
US6385634B1 (en) * 1995-08-31 2002-05-07 Intel Corporation Method for performing multiply-add operations on packed data
JPH09269939A (ja) * 1996-03-29 1997-10-14 Asahi Chem Ind Co Ltd 並列演算器およびそれを用いたデジタル・シグナル・プロセッサ
US5941940A (en) * 1997-06-30 1999-08-24 Lucent Technologies Inc. Digital signal processor architecture optimized for performing fast Fourier Transforms
US6078939A (en) * 1997-09-30 2000-06-20 Intel Corporation Apparatus useful in floating point arithmetic

Also Published As

Publication number Publication date
CA2269868A1 (en) 1999-10-23
EP0952516A2 (en) 1999-10-27
JPH11306163A (ja) 1999-11-05
US6385635B1 (en) 2002-05-07
EP0952516A3 (en) 2001-04-25

Similar Documents

Publication Publication Date Title
JP3287305B2 (ja) 積和演算装置
US5287299A (en) Method and apparatus for implementing a digital filter employing coefficients expressed as sums of 2 to an integer power
US5452466A (en) Method and apparatus for preforming DCT and IDCT transforms on data signals with a preprocessor, a post-processor, and a controllable shuffle-exchange unit connected between the pre-processor and post-processor
US4817025A (en) Digital filter
US5001661A (en) Data processor with combined adaptive LMS and general multiplication functions
KR950000386B1 (ko) 이산여현 변환회로
US4785411A (en) Cascade filter structure with time overlapped partial addition operations and programmable tap length
JP4854826B2 (ja) ディジタルフィルタを実現するプログラム可能な回路
Jyothi et al. Low power, low area adaptive finite impulse response filter based on memory less distributed arithmetic
US5694349A (en) Low power parallel multiplier for complex numbers
JPH0744530A (ja) 演算装置
JP3684314B2 (ja) 複素乗算器および複素相関器
JPH04190453A (ja) 複素数の演算処理方式
WO2000022729A1 (en) Area efficient realization of coefficient architecture for bit-serial fir, iir filters and combinational/sequential logic structure with zero latency clock output
JP3041563B2 (ja) 有限インパルス応答フィルタ
JP2953918B2 (ja) 演算装置
JP3165687B2 (ja) ディジタル信号処理装置
JPH0438005A (ja) ディジタル信号処理回路
JPS61213926A (ja) Dsp演算処理方式
JP2696903B2 (ja) 数値計算装置
JPH0748636B2 (ja) 演算装置
US7263541B2 (en) Multi-dimensional hybrid and transpose form finite impulse response filters
JPH0447454A (ja) ディジタルデータの離散フーリエ又はコサイン変換装置
JP2590291B2 (ja) 切換型iirフィルタ
JPS59198020A (ja) デイジタル信号処理装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080315

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090315

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090315

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100315

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100315

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110315

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110315

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120315

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120315

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130315

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130315

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140315

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees