JPH11306163A - 積和演算装置 - Google Patents

積和演算装置

Info

Publication number
JPH11306163A
JPH11306163A JP10129486A JP12948698A JPH11306163A JP H11306163 A JPH11306163 A JP H11306163A JP 10129486 A JP10129486 A JP 10129486A JP 12948698 A JP12948698 A JP 12948698A JP H11306163 A JPH11306163 A JP H11306163A
Authority
JP
Japan
Prior art keywords
data
multiplier
multipliers
bus
transferred
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
Application number
JP10129486A
Other languages
English (en)
Other versions
JP3287305B2 (ja
Inventor
Daiji Ishii
大二 石井
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)

Abstract

(57)【要約】 【課題】 積和演算装置において、種々の積和演算を高
速に実行する。 【解決手段】 バス101, 102, 103, 104によってメモリ
から転送されてきた4個のデータは、乗算器107, 108,
109, 110において乗算される。これら乗算結果は、加減
算器111, 112において、相互に足したり引いたりされ
る。更に、加減算器111, 112の結果は、加算器113, 114
において、アキュムレータ115, 116の値に足し合わされ
る。ラッチ回路105 は、制御信号106 がオンの場合は、
バス102 を介して転送されてきたデータを直ちに乗算器
109 に供給し、制御信号106 がオフの場合は、バス102
を介して転送されてきたデータを一時保持し、次のデー
タがバス102 を介して転送されてきたとき、上記保持し
ているデータを乗算器109 に供給する。

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の101, 102, 103, 104)
と、それぞれが前記データ転送手段(図1の101, 102,
103, 104) によって転送されてきた4個のデータの内
の、自乗算器に割り当てられている2個のデータ同士の
乗算を行う第1〜第4の乗算器(図1の107, 108, 109,
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〜第4の乗算器
が、データ転送手段によって転送されてきた4個のデー
タの内の、自乗算器に割り当てられている2個のデータ
同士の乗算を行い、第1,第2の加減算器が、第1,第
2の乗算器の乗算結果の加減算および第3,第4の乗算
器の乗算結果の加減算を行い、第1,第2の加算器が、
第1,第2の加減算器の演算結果と第1,第2のアキュ
ムレータに保持されている値とを加算し、加算結果を第
1,第2のアキュムレータに保持させる。これにより、
1回の複素数積和演算に必要な4乗算, 3加算, 1減算
を1ステップで処理することが可能になる。
【0031】また、本発明は、畳み込み演算における実
数積和演算を高速に行えるようにするため、前記データ
転送手段(図1の101, 102, 103, 104)と前記第1〜第
4の乗算器(図1の107, 108, 109, 110) の内の特定の
乗算器(例えば、図1の109)との間に設けられ、前記デ
ータ転送手段(図1の101, 102, 103, 104)によって転
送されてきた、前記特定の乗算器(図1の109)に割り当
てられているデータの内の1つを、制御信号(図1の10
6)の状態が第1の状態の場合は前記特定の乗算器(図1
の109)に直ちに供給し、前記制御信号(図1の106)の状
態が第2の状態の場合は前記データ転送手段(図1の10
1, 102, 103, 104)により次のデータが転送されてきた
とき前記特定の乗算器(図1の109)に供給する切り替え
手段(図1の105)を備えている。
【0032】この構成においては、制御信号が第1の状
態の場合は、切り替え手段が、データ転送手段によって
転送されてきた特定の乗算器に割り当てられているデー
タの内の1つを上記特定の乗算器に直ちに供給し、制御
信号が第2の状態の場合は、切り替え手段が、データ転
送手段によって転送されてきた特定の乗算器に割り当て
られているデータの内の1つを、データ転送手段によっ
て次のデータが転送されてきたとき上記特定の乗算器に
供給する。式(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)が必要にな
るが、これらのデータをデータ転送手段および切り替え
手段から供給することにより、4並列の積和演算を1ス
テップで行うことができる。更に、従来装置のように、
マルチプレクサ等の余分な回路がないため、簡単な装置
構成になる。
【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の実施の形態について図面を参照して説明する。
【0067】図2を参照すると、本発明の第2の実施の
形態は、メモリ(図示せず)から乗算器107, 108, 109,
110へデータを転送するためのバス201, 202, 203, 204
における配線が第1の実施の形態と異なる。乗算器107
には、バス201 を介してメモリから転送されたデータ
が、乗算器の第1入力および第2入力として入力され
る。乗算器108 には、バス202 を介してメモリから転送
されたデータが乗算器の第1入力および第2入力として
入力される。乗算器109 には、バス203 を介してメモリ
から転送されたデータが乗算器の第1入力および第2入
力として入力される。乗算器110 には、バス204 を介し
てメモリから転送されたデータが乗算器の第1入力およ
び第2入力として入力される。
【0068】〔実施例〕次に、第2の実施の形態の実施
例について図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】次に、本発明の第3の実施の形態について
図面を参照して説明する。
【0080】図3を参照すると、第3の実施の形態は、
図1に示された第1の実施の形態と図2に示された第2
の実施の形態を一装置として構成したものになってい
る。本装置においても、メモリから乗算器107, 108, 10
9, 110へデータを転送するためのバス301, 302, 303, 3
04における配線が、第1の実施の形態と異なる。更に、
バス301, 302, 303, 304の途中にマルチプレクサ305, 3
06, 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】なお、上記3つの実施の形態は、デジタル
シグナルプロセッサやマイクロプロセッサの演算器とし
て用いることもできる。
【0089】
【発明の効果】以上説明したように、本発明の積和演算
装置は、従来装置に比較して多くの乗算器,加減算器を
備えているので、従来装置に比較して積和演算を高速に
行うことができる。また、従来装置のように、マルチプ
レクサを備えなくとも良いので、構成を簡単なものにす
ることができる。
【0090】更に、本発明の積和演算装置は、制御信号
の状態に応じて、データ転送手段によって転送されてき
たデータを直ちに乗算器に供給するのか、データ転送手
段によって次のデータが転送されてきたときに乗算器に
供給するのかを制御する切り替え手段を備えているの
で、複素数の積和演算,FIR フィルタを実現するための
畳み込み演算による実数の積和演算など、種々の積和演
算を行うことができる。
【0091】更に、本発明の積和演算装置は、データ転
送手段によって転送されてきたデータを自乗する乗算器
を備えているので、自乗和演算を高速に行うことができ
る。
【0092】更に、本発明の積和演算装置は、それぞれ
第1〜第4のバスを介して転送されてきたデータとそれ
以外の1本のバスを介して送られてきたデータとの内の
一方を第1〜第4の乗算器に対して出力するマルチプレ
クサを備えているので、自乗和演算を含めた数々の積和
演算を高速に行うことができる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態の例を示すブロック
図である。
【図2】本発明の第2の実施の形態の例を示すブロック
図である。
【図3】本発明の第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…データ出力用のバス

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 4個のデータを同時に転送するデータ転
    送手段と、 それぞれが前記データ転送手段によって転送されてきた
    4個のデータの内の、自乗算器に割り当てられている2
    個のデータ同士の乗算を行う第1〜第4の乗算器と、 それぞれが前記第1,第2の乗算器の乗算結果の加減
    算、前記第3,第4の乗算器の乗算結果の加減算を行う
    第1,第2の加減算器と、 第1,第2のアキュムレータと、 それぞれが前記第1,第2の加減算器の演算結果と前記
    第1,第2のアキュムレータに保持されている値とを加
    算し、加算結果を前記第1,第2のアキュムレータに保
    持させる第1,第2の加算器とを備えたことを特徴とす
    る積和演算装置。
  2. 【請求項2】 前記データ転送手段と前記第1〜第4の
    乗算器の内の特定の乗算器との間に設けられ、前記デー
    タ転送手段によって転送されてきた、前記特定の乗算器
    に割り当てられているデータの内の1つを、制御信号の
    状態が第1の状態の場合は前記特定の乗算器に直ちに供
    給し、前記制御信号の状態が第2の状態の場合は前記デ
    ータ転送手段により次のデータが転送されてきたとき前
    記特定の乗算器に供給する切り替え手段を備えたことを
    特徴とする請求項1記載の積和演算装置。
  3. 【請求項3】 前記データ転送手段は、4本のバスから
    構成されることを特徴とする請求項2記載の積和演算装
    置。
  4. 【請求項4】 4個のデータを同時に転送するデータ転
    送手段と、 該データ転送手段によって転送されてきた各データ毎に
    設けられ、自乗算器に対応するデータの自乗を演算する
    第1〜第4の乗算器と、 それぞれが前記第1,第2の乗算器の乗算結果の加減
    算、前記第3,第4の乗算器の乗算結果の加減算を行う
    第1,第2の加減算器と、 第1,第2のアキュムレータと、 それぞれが前記1,第2の加減算器の演算結果と前記第
    1,第2のアキュムレータに保持されている値とを加算
    し、加算結果を前記第1,第2のアキュムレータに保持
    させる第1,第2の加算器とを備えたことを特徴とする
    積和演算装置。
  5. 【請求項5】 前記データ転送手段は、4本のバスから
    構成されることを特徴とする請求項4記載の積和演算装
    置。
  6. 【請求項6】 第1〜第4のバスと、 第1〜第4の乗算器と、 前記第1〜第4の乗算器毎に設けられた第1〜第4のマ
    ルチプレクサと、 それぞれが前記第1,第2の乗算器の乗算結果の加減
    算、前記第3,第4の乗算器の乗算結果の加減算を行う
    第1,第2の加減算器と、 第1,第2のアキュムレータと、 それぞれが前記第1,第2の加減算器の演算結果と前記
    第1,第2のアキュムレータに保持されている値とを加
    算し、加算結果を前記第1,第2のアキュムレータに保
    持させる第1,第2の加算器とを備え、且つ、 前記第1〜第4の乗算器は、それぞれ前記第1〜第4の
    バスを介して転送されてきたデータと前記第1〜第4の
    マルチプレクサから出力されたデータとを乗算する構成
    を有し、 前記第1〜第4のマルチプレクサは、それぞれ第1〜第
    4のバスを介して転送されてきたデータとそれ以外の1
    本のバスを介して送られてきたデータとの内の一方を出
    力する構成を有することを特徴とする積和演算装置。
  7. 【請求項7】 前記第1〜第4のバスの内の特定のバス
    と前記第1〜第4のマルチプレクサの内の特定のマルチ
    プレクサとの間に設けられ、前記特定のバスによって転
    送されてきたデータを、制御信号の状態が第1の状態の
    場合は前記特定のマルチプレクサに直ちに供給し、前記
    制御信号の状態が第2の状態の場合は前記特定のバスに
    より次のデータが転送されてきたとき前記特定のマルチ
    プレクサに供給する切り替え手段を備えたことを特徴と
    する請求項6記載の積和演算装置。
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 true JPH11306163A (ja) 1999-11-05
JP3287305B2 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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7430577B2 (en) 2002-09-24 2008-09-30 Interdigital Technology Corporation Computationally efficient mathematical engine
KR100882113B1 (ko) 2000-11-02 2009-02-06 소니 컴퓨터 엔터테인먼트 인코포레이티드 병렬 연산 장치, 엔터테인먼트 장치, 연산 방법, 컴퓨터 프로그램을 기록한 컴퓨터 판독가능한 기록 매체 및 반도체 소자
JP2009075676A (ja) * 2007-09-18 2009-04-09 Nec Electronics Corp マイクロプロセッサ

Families Citing this family (10)

* 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
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
US7739324B1 (en) 2006-03-22 2010-06-15 Cadence Design Systems, Inc. Timing driven synthesis of sum-of-product functional blocks
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

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100882113B1 (ko) 2000-11-02 2009-02-06 소니 컴퓨터 엔터테인먼트 인코포레이티드 병렬 연산 장치, 엔터테인먼트 장치, 연산 방법, 컴퓨터 프로그램을 기록한 컴퓨터 판독가능한 기록 매체 및 반도체 소자
US7430577B2 (en) 2002-09-24 2008-09-30 Interdigital Technology Corporation Computationally efficient mathematical engine
US8112467B2 (en) 2002-09-24 2012-02-07 Interdigital Technology Corporation Computationally efficient mathematical engine
JP2009075676A (ja) * 2007-09-18 2009-04-09 Nec Electronics Corp マイクロプロセッサ

Also Published As

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

Similar Documents

Publication Publication Date Title
US5287299A (en) Method and apparatus for implementing a digital filter employing coefficients expressed as sums of 2 to an integer power
JP3479438B2 (ja) 乗算回路
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
JP3287305B2 (ja) 積和演算装置
JPH0235348B2 (ja)
US4817025A (en) Digital filter
JPH0793294A (ja) 2次元離散コサイン変換装置、2次元逆離散コサイン変換装置およびディジタル信号処理装置
JPS6125188B2 (ja)
US6279020B1 (en) Programmable circuit for realizing a digital filter
US5694349A (en) Low power parallel multiplier for complex numbers
JPH0744530A (ja) 演算装置
JP3064405B2 (ja) 複素数の演算処理方式
JP3684314B2 (ja) 複素乗算器および複素相関器
JPH0438005A (ja) ディジタル信号処理回路
JP3165687B2 (ja) ディジタル信号処理装置
JPH06196969A (ja) 有限インパルス応答フィルタ
JP2696903B2 (ja) 数値計算装置
JP2953918B2 (ja) 演算装置
JPH06216715A (ja) ディジタルフィルタ
JPS63133268A (ja) パイプライン式のfftバタフライ計算装置
Berkeman et al. A low logic depth complex multiplier
JPH0414173A (ja) 固定小数点演算器
JPH0455936A (ja) 逆数算出回路
CN116010762A (zh) 包括硬件计算器的集成电路和相应的计算方法
JPH0488473A (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