JPH07253965A - 積和演算器 - Google Patents
積和演算器Info
- Publication number
- JPH07253965A JPH07253965A JP6044552A JP4455294A JPH07253965A JP H07253965 A JPH07253965 A JP H07253965A JP 6044552 A JP6044552 A JP 6044552A JP 4455294 A JP4455294 A JP 4455294A JP H07253965 A JPH07253965 A JP H07253965A
- Authority
- JP
- Japan
- Prior art keywords
- data
- register
- product
- sum
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/544—Methods 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/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03H—IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
- H03H17/00—Networks using digital techniques
- H03H17/02—Frequency selective networks
- H03H17/0223—Computation saving measures; Accelerating measures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Complex Calculations (AREA)
- Advance Control (AREA)
Abstract
(57)【要約】
【目的】本発明は積和演算器に関し、演算データを複数
個格納するレジスタのアドレスを自動生成、演算途中の
データの出力、オーバーフローの通知を可能とし、積和
演算器の処理効率を向上し、再帰型のフィルタを容易に
構成可能とすることを目的とする。 【構成】係数レジスタ100 、データレジスタ110 、乗算
器130 、加算器140 および外部装置との間でデータ転送
を行なうデータバス120 を有する積和演算器において、
データレジスタ110 のアドレスを外部から一々すべて指
定することなく、外部からは最初に一度だけ該データレ
ジスタ110 を示すアドレスを入力するだけでデータ格納
アドレスを自動生成し、一連のデータを格納するデータ
一括自動格納手段180 を有する。また、積和演算途中の
中間結果データをデータレジスタ110 に自動的に格納
し、再帰的な積和演算を行なう。
個格納するレジスタのアドレスを自動生成、演算途中の
データの出力、オーバーフローの通知を可能とし、積和
演算器の処理効率を向上し、再帰型のフィルタを容易に
構成可能とすることを目的とする。 【構成】係数レジスタ100 、データレジスタ110 、乗算
器130 、加算器140 および外部装置との間でデータ転送
を行なうデータバス120 を有する積和演算器において、
データレジスタ110 のアドレスを外部から一々すべて指
定することなく、外部からは最初に一度だけ該データレ
ジスタ110 を示すアドレスを入力するだけでデータ格納
アドレスを自動生成し、一連のデータを格納するデータ
一括自動格納手段180 を有する。また、積和演算途中の
中間結果データをデータレジスタ110 に自動的に格納
し、再帰的な積和演算を行なう。
Description
【0001】
【産業上の利用分野】本発明は、積和演算器に係り、さ
らに詳しくは、IIR(Infinite Impulse Response)フ
ィルタ(再帰型フィルタ)あるいは、FIR(Finite I
mpulse Response)フィルタ(非再帰型フィルタ)として
機能し、かつ、転送速度の速い、高速の積和演算器に関
する。
らに詳しくは、IIR(Infinite Impulse Response)フ
ィルタ(再帰型フィルタ)あるいは、FIR(Finite I
mpulse Response)フィルタ(非再帰型フィルタ)として
機能し、かつ、転送速度の速い、高速の積和演算器に関
する。
【0002】
【従来の技術】近年、自動車、メカトロニクス等の分野
で、データをディジタルフィルタを用いてフィルタリン
グする要求が高まっており、積和演算器やディジタル信
号処理専用のLSI(Large Scale Integration Circui
t) であるDSP(Digital Signal Processor) 等が活
用されている。これらの分野では、演算項数の少ないフ
ィルタ計算が主であり、処理速度の速いIIRフィルタ
がしばしば使用される。
で、データをディジタルフィルタを用いてフィルタリン
グする要求が高まっており、積和演算器やディジタル信
号処理専用のLSI(Large Scale Integration Circui
t) であるDSP(Digital Signal Processor) 等が活
用されている。これらの分野では、演算項数の少ないフ
ィルタ計算が主であり、処理速度の速いIIRフィルタ
がしばしば使用される。
【0003】図17は、FIRを使用した従来の積和演
算器の説明図である。この演算器は、RAM(Random A
ccress Memory)等で実現できる二つのレジスタ、すなわ
ち、係数レジスタ800 とデータレジスタ810 と、該係数
レジスタ800の出力および該データレジスタ810 の出力
を二つの入力として積を求める乗算器830 、該乗算器83
0 の出力を一方の入力とする加算器840 、該乗算器830
および加算器840 による積和演算途中の中間データを格
納する中間データレジスタ850、積和演算結果を格納す
る結果レジスタ860 、データレジスタ810 のアドレスを
指定するアドレス・デコーダ870 で構成される。ここ
で、中間データレジスタ850 の出力が該加算器850 のも
う一方の入力となり、これにより積和演算が可能とな
る。
算器の説明図である。この演算器は、RAM(Random A
ccress Memory)等で実現できる二つのレジスタ、すなわ
ち、係数レジスタ800 とデータレジスタ810 と、該係数
レジスタ800の出力および該データレジスタ810 の出力
を二つの入力として積を求める乗算器830 、該乗算器83
0 の出力を一方の入力とする加算器840 、該乗算器830
および加算器840 による積和演算途中の中間データを格
納する中間データレジスタ850、積和演算結果を格納す
る結果レジスタ860 、データレジスタ810 のアドレスを
指定するアドレス・デコーダ870 で構成される。ここ
で、中間データレジスタ850 の出力が該加算器850 のも
う一方の入力となり、これにより積和演算が可能とな
る。
【0004】まず、係数レジスタ800 とデータレジスタ
810 に、それぞれ係数データと入力データを予めデータ
バス820 を介して転送しておく。例えば、4項の積和演
算ならば、4つの入力データと4つの係数データをそれ
ぞれデータ・レジスタ810 と係数レジスタ800 に入力し
ておく。そして、このデータと係数を一つずつ順次掛け
合わせて加算することによりFIRフィルタ演算を実行
する。このとき、データレジスタ810 の書き込みアドレ
スは図示していない外部のCPU等がアドレス指定する
ことにより行なう。すなわち、図示されていない外部の
CPU等からアドレスをアドレス・デコーダ870 に入力
し、アドレスデコーダ870 がこのアドレスをデコードし
てデーダレジスタ810 の実アドレスを求め、そのアドレ
スにデータバス820 を介して入力データを書き込み、書
き込まれたデータを読みだして乗算器830 に入力し、積
和演算を起動させる。
810 に、それぞれ係数データと入力データを予めデータ
バス820 を介して転送しておく。例えば、4項の積和演
算ならば、4つの入力データと4つの係数データをそれ
ぞれデータ・レジスタ810 と係数レジスタ800 に入力し
ておく。そして、このデータと係数を一つずつ順次掛け
合わせて加算することによりFIRフィルタ演算を実行
する。このとき、データレジスタ810 の書き込みアドレ
スは図示していない外部のCPU等がアドレス指定する
ことにより行なう。すなわち、図示されていない外部の
CPU等からアドレスをアドレス・デコーダ870 に入力
し、アドレスデコーダ870 がこのアドレスをデコードし
てデーダレジスタ810 の実アドレスを求め、そのアドレ
スにデータバス820 を介して入力データを書き込み、書
き込まれたデータを読みだして乗算器830 に入力し、積
和演算を起動させる。
【0005】この演算器でIIRフィルタを実現するた
めには、結果レジスタ860 に格納された積和演算結果を
データバス820 を介してデータレジスタ810 に転送し、
再び積和演算を起動する必要がある。すなわち、図示さ
れていない外部のCPU等でアドレス指定を行ないアド
レスデータ870 により実アドレスを求めてデータレジス
タ810 の該アドレスに結果レジスタ860 の内容をデータ
バス820 を介して書き込み、さらに、データレジスタ81
0 の読み出しアドレスを指定し積和演算を再起動して次
の積和演算を開始するのである。
めには、結果レジスタ860 に格納された積和演算結果を
データバス820 を介してデータレジスタ810 に転送し、
再び積和演算を起動する必要がある。すなわち、図示さ
れていない外部のCPU等でアドレス指定を行ないアド
レスデータ870 により実アドレスを求めてデータレジス
タ810 の該アドレスに結果レジスタ860 の内容をデータ
バス820 を介して書き込み、さらに、データレジスタ81
0 の読み出しアドレスを指定し積和演算を再起動して次
の積和演算を開始するのである。
【0006】
【発明が解決しようとする課題】しかしながら、従来の
方法では、アドレス指定および積和演算の起動をすべて
外部のCPU等が実行しなければならず、そのためのソ
フトウエアが必要なうえ、データ転送等の処理速度が遅
いという問題があった。
方法では、アドレス指定および積和演算の起動をすべて
外部のCPU等が実行しなければならず、そのためのソ
フトウエアが必要なうえ、データ転送等の処理速度が遅
いという問題があった。
【0007】また、CPUがデータレジスタの書き込み
アドレスを指定するため、指定のためのアドレスを格納
しておく記憶域がデータ毎に必要であった。本発明は、
FIRフィルタ処理が行え、かつ、IIRフィルタの実
現に適し、転送速度の速い、高速の積和演算回路を提供
することを目的とする。
アドレスを指定するため、指定のためのアドレスを格納
しておく記憶域がデータ毎に必要であった。本発明は、
FIRフィルタ処理が行え、かつ、IIRフィルタの実
現に適し、転送速度の速い、高速の積和演算回路を提供
することを目的とする。
【0008】
【課題を解決するための手段】本発明のブロック図を図
1乃至図6に示す。本発明は、積和演算の係数を複数項
分格納する係数レジスタ100 と、積和演算のデータを複
数格納するデータレジスタ110 、データバス120 、係数
レジスタ100 内の係数とデータレジスタ110 内のデータ
の積和演算を行なう乗算器130 と加算器140 、積和演算
の中間データを格納する中間データレジスタ150 、積和
演算結果を格納する結果レジスタ160 、アドレスバス17
0 を前提とする。ここで、データバス120 およびアドレ
スバス170 は図示されていないCPUに接続されてお
り、データおよびアドレスの入出力に使用されることを
前提とする。
1乃至図6に示す。本発明は、積和演算の係数を複数項
分格納する係数レジスタ100 と、積和演算のデータを複
数格納するデータレジスタ110 、データバス120 、係数
レジスタ100 内の係数とデータレジスタ110 内のデータ
の積和演算を行なう乗算器130 と加算器140 、積和演算
の中間データを格納する中間データレジスタ150 、積和
演算結果を格納する結果レジスタ160 、アドレスバス17
0 を前提とする。ここで、データバス120 およびアドレ
スバス170 は図示されていないCPUに接続されてお
り、データおよびアドレスの入出力に使用されることを
前提とする。
【0009】係数レジスタ100 はデータバス120 と接続
され、該係数レジスタ120 の出力は乗算器130 の一方の
入力となり、データレジスタ110 の出力が乗算器130 の
もう一方の入力となる。乗算器130 の出力は加算器140
の一方の入力となり、中間データレジスタ150 の出力が
もう一方の入力となる。加算器140 の出力は中間データ
レジスタ150 および結果レジスタ160 の入力となり、該
結果レジスタ160 はデータバス120 に接続されている。
され、該係数レジスタ120 の出力は乗算器130 の一方の
入力となり、データレジスタ110 の出力が乗算器130 の
もう一方の入力となる。乗算器130 の出力は加算器140
の一方の入力となり、中間データレジスタ150 の出力が
もう一方の入力となる。加算器140 の出力は中間データ
レジスタ150 および結果レジスタ160 の入力となり、該
結果レジスタ160 はデータバス120 に接続されている。
【0010】図1は本発明の第1の構成のブロック図で
ある。データ一括自動格納手段180 を有する。データ一
括自動格納手段180 は、図示されていない外部のCPU
からのデータレジスタ110 のアドレスを最初に一度アド
レスバス170 を介して受けることにより、データレジス
タ110 の格納位置を自動的に順次指定する。これによ
り、初めの一回だけ外部のCPUからアドレスデータを
入力しさえすれば、データバス120 を介して送られてく
る入力データをデータレジスタ110 に順次書き込む処
理、およびデータレジスタ110 からデータを順次読み出
して積和演算を行なう処理が可能になる。
ある。データ一括自動格納手段180 を有する。データ一
括自動格納手段180 は、図示されていない外部のCPU
からのデータレジスタ110 のアドレスを最初に一度アド
レスバス170 を介して受けることにより、データレジス
タ110 の格納位置を自動的に順次指定する。これによ
り、初めの一回だけ外部のCPUからアドレスデータを
入力しさえすれば、データバス120 を介して送られてく
る入力データをデータレジスタ110 に順次書き込む処
理、およびデータレジスタ110 からデータを順次読み出
して積和演算を行なう処理が可能になる。
【0011】図2は本発明の第2の構成のブロック図で
ある。第2の構成は、第1の構成のデータ一括自動格納
手段180 に代えてアドレス自動設定手段200 を有する。
ある。第2の構成は、第1の構成のデータ一括自動格納
手段180 に代えてアドレス自動設定手段200 を有する。
【0012】アドレス自動設定手段200 は、図示されて
いない外部のCPUからのアドレスバス170 を介してデ
ータレジスタ110 のアドレスを受け取り、その後は最初
のアドレスと同一のダミー・アドレスをアドレスバス17
0 を介して受けることにより、データレジスタ110 の格
納位置を自動的に指定し、入力データの書き込みおよび
読み出しを行なう。
いない外部のCPUからのアドレスバス170 を介してデ
ータレジスタ110 のアドレスを受け取り、その後は最初
のアドレスと同一のダミー・アドレスをアドレスバス17
0 を介して受けることにより、データレジスタ110 の格
納位置を自動的に指定し、入力データの書き込みおよび
読み出しを行なう。
【0013】従来、図17に示したように、データレジ
スタ110 にデータを一つ格納するたびにその都度、外部
のCPUで指定したアドレスをデコードして実アドレス
を求めていた。しかし、この構成のデータ一括自動格納
手段180 により、データレジスタ110 のアドレスをダミ
ーアドレスとしてデータ入力の都度入力すれば自動的に
データレジスタ110 の格納位置を指定することが可能に
なる。これにより、CPU側でデータレジスタ110 の一
つ一つの格納位置のアドレス・データを記憶させておく
必要もなくなる。
スタ110 にデータを一つ格納するたびにその都度、外部
のCPUで指定したアドレスをデコードして実アドレス
を求めていた。しかし、この構成のデータ一括自動格納
手段180 により、データレジスタ110 のアドレスをダミ
ーアドレスとしてデータ入力の都度入力すれば自動的に
データレジスタ110 の格納位置を指定することが可能に
なる。これにより、CPU側でデータレジスタ110 の一
つ一つの格納位置のアドレス・データを記憶させておく
必要もなくなる。
【0014】図3は本発明の第3の構成のブロック図で
ある。第3の構成は、第1の構成のデータ一括自動格納
手段180 に代えてアドレス設定手段300 を有する。
ある。第3の構成は、第1の構成のデータ一括自動格納
手段180 に代えてアドレス設定手段300 を有する。
【0015】アドレス設定手段300 は、図示されていな
い外部のCPUから最初の一度だけアドレスデータをア
ドレスバス170 を介して入力し、また、データバス120
を介してデータ入力の都度ポインタ値を入力すれば、デ
ータレジスタ110 の格納位置を指定する。
い外部のCPUから最初の一度だけアドレスデータをア
ドレスバス170 を介して入力し、また、データバス120
を介してデータ入力の都度ポインタ値を入力すれば、デ
ータレジスタ110 の格納位置を指定する。
【0016】これにより、従来、その都度アドレスデー
タをアドレスバス170 を介して入力していた手間が省け
る。図4は本発明の第4の構成のブロック図である。
タをアドレスバス170 を介して入力していた手間が省け
る。図4は本発明の第4の構成のブロック図である。
【0017】第4の構成は、第3の構成に加えて、中間
データ再帰手段400 を有する。中間データ再帰手段400
は、乗算器130 および加算器140 による積和演算の中間
結果をデータバス120 を介することなくデータレジスタ
110 に戻す。
データ再帰手段400 を有する。中間データ再帰手段400
は、乗算器130 および加算器140 による積和演算の中間
結果をデータバス120 を介することなくデータレジスタ
110 に戻す。
【0018】これにより、IIRのような再帰型のフィ
ルタを構成する場合に、簡単に演算途中結果をデータレ
ジスタ110 に格納し、再度積和演算を行なうことが可能
になる。このとき、中間結果を格納するデータレジスタ
110 のアドレスは第3の構成のアドレス設定手段300 に
より発生する。
ルタを構成する場合に、簡単に演算途中結果をデータレ
ジスタ110 に格納し、再度積和演算を行なうことが可能
になる。このとき、中間結果を格納するデータレジスタ
110 のアドレスは第3の構成のアドレス設定手段300 に
より発生する。
【0019】第4の構成のアドレス設定手段300 は、第
1の構成のデータ一括自動格納手段180 あるいは第2の
構成のアドレス自動設定手段200 に置き換えることもで
きる。
1の構成のデータ一括自動格納手段180 あるいは第2の
構成のアドレス自動設定手段200 に置き換えることもで
きる。
【0020】図5は本発明の第5の構成のブロック図で
ある。第5の構成は、第4の構成に加えて、中間データ
読み出し手段500 を有する。中間データ読み出し手段50
0 は、乗算器130 および加算器140 による積和演算の中
間結果をデータバス120 に出力する。これにより、図示
されていないCPU等は、データバス120 を介して積和
演算途中の中間データを読みだすことが可能になる。
ある。第5の構成は、第4の構成に加えて、中間データ
読み出し手段500 を有する。中間データ読み出し手段50
0 は、乗算器130 および加算器140 による積和演算の中
間結果をデータバス120 に出力する。これにより、図示
されていないCPU等は、データバス120 を介して積和
演算途中の中間データを読みだすことが可能になる。
【0021】第5の構成のアドレス設定手段300 は、第
1の構成のデータ一括自動格納手段180 あるいは第2の
構成のアドレス自動設定手段200 に置き換えることもで
きる。
1の構成のデータ一括自動格納手段180 あるいは第2の
構成のアドレス自動設定手段200 に置き換えることもで
きる。
【0022】図6は本発明の第6の構成のブロック図で
ある。第6の構成は、第5の構成に加えて、オーバフロ
ー通知手段600 を有する。オーバーフロー通知手段600
は、演算途中にオーバーフローが起きた場合に、該オー
バーフローが発生したときに演算していた積和の項数番
号を格納し、図示していない外部のCPUに通知する。
ある。第6の構成は、第5の構成に加えて、オーバフロ
ー通知手段600 を有する。オーバーフロー通知手段600
は、演算途中にオーバーフローが起きた場合に、該オー
バーフローが発生したときに演算していた積和の項数番
号を格納し、図示していない外部のCPUに通知する。
【0023】第6の構成のアドレス設定手段300 は、第
1の構成のデータ一括自動格納手段180 あるいは第2の
構成のアドレス自動設定手段200 に置き換えることもで
きる。
1の構成のデータ一括自動格納手段180 あるいは第2の
構成のアドレス自動設定手段200 に置き換えることもで
きる。
【0024】
【作用】次に、図1乃至図6に示した第1乃至第6の構
成のブロック図の作用を説明する。
成のブロック図の作用を説明する。
【0025】まず、第1の構成(図1)の作用を説明す
る。積和演算に先立ち、係数レジスタ100 およびデータ
レジスタ110 に係数および入力データを格納する。デー
タレジスタ110 にデータを格納する場合、まず、データ
バス120 およびアドレスバス170 に接続され、図示され
ていないCPU等によりデータレジスタ110 のアドレス
をアドレスバス170 によりデータ一括自動格納手段180
に入力する。また、データバス120 を介して格納データ
をデータ一括自動格納手段180 に入力する。
る。積和演算に先立ち、係数レジスタ100 およびデータ
レジスタ110 に係数および入力データを格納する。デー
タレジスタ110 にデータを格納する場合、まず、データ
バス120 およびアドレスバス170 に接続され、図示され
ていないCPU等によりデータレジスタ110 のアドレス
をアドレスバス170 によりデータ一括自動格納手段180
に入力する。また、データバス120 を介して格納データ
をデータ一括自動格納手段180 に入力する。
【0026】データ一括自動格納手段180 は、入力され
たアドレスがデータレジスタ110 のアドレスであればデ
ータレジスタ110 の先頭実アドレスを指定し、該先頭実
アドレスに格納データを格納する。アドレスがデータレ
ジスタ110 のアドレスでなければ無視する。
たアドレスがデータレジスタ110 のアドレスであればデ
ータレジスタ110 の先頭実アドレスを指定し、該先頭実
アドレスに格納データを格納する。アドレスがデータレ
ジスタ110 のアドレスでなければ無視する。
【0027】最初のアドレス入力によりデータレジスタ
110 の先頭アドレスが指定され、その後はデータバス12
0 からデータが入力されるごとに順次データレジスタ11
0 の次のアドレスにデータを格納していく。
110 の先頭アドレスが指定され、その後はデータバス12
0 からデータが入力されるごとに順次データレジスタ11
0 の次のアドレスにデータを格納していく。
【0028】第1の構成は、図示していないCPUから
のアドレス指定を1回すればよい。従来の方式よりもデ
ータ転送、アドレス指定にかかる時間が短くでき、積和
演算処理を簡単に、また高速に実行することが可能にな
る。
のアドレス指定を1回すればよい。従来の方式よりもデ
ータ転送、アドレス指定にかかる時間が短くでき、積和
演算処理を簡単に、また高速に実行することが可能にな
る。
【0029】係数レジスタ100 には、図示されていない
CPUから係数データをデータバスを介して入力する。
係数データは入力データのように頻繁に書き換える訳で
はないので、従来通り該CPUによってアドレスを指定
し、データバスを介して係数データを書き込めばよい
が、データレジスタ110 の場合と同様にデータ一括自動
格納手段180 を係数レジスタ100 に接続して、データレ
ジスタ110 と同様のアドレス指定を行ってもよい。
CPUから係数データをデータバスを介して入力する。
係数データは入力データのように頻繁に書き換える訳で
はないので、従来通り該CPUによってアドレスを指定
し、データバスを介して係数データを書き込めばよい
が、データレジスタ110 の場合と同様にデータ一括自動
格納手段180 を係数レジスタ100 に接続して、データレ
ジスタ110 と同様のアドレス指定を行ってもよい。
【0030】係数レジスタ100 およびデータレジスタ11
0 に係数および入力データが格納されたら、乗算器130
および加算器140 により積和演算を行なう。この場合、
積和演算に最初に使用するデータが乗算器130 に入力さ
れる。係数レジスタ100 内の係数が乗算器130 のもう一
方の入力となる。乗算器130 が積を算出し、これを加算
器140 に入力する。最初加算器140 のもう一方の入力値
は0に設定しておき和を求める。加算器140 の出力は中
間データレジスタ150 に格納され、中間データレジスタ
150 の出力は加算器140 の入力となる。これにより、中
間結果に次の積が足しこまれていき、積和演算が実行さ
れる。積和演算の結果は結果レジスタ160 に格納され、
図示されていないCPU等から読みだすことができる。
0 に係数および入力データが格納されたら、乗算器130
および加算器140 により積和演算を行なう。この場合、
積和演算に最初に使用するデータが乗算器130 に入力さ
れる。係数レジスタ100 内の係数が乗算器130 のもう一
方の入力となる。乗算器130 が積を算出し、これを加算
器140 に入力する。最初加算器140 のもう一方の入力値
は0に設定しておき和を求める。加算器140 の出力は中
間データレジスタ150 に格納され、中間データレジスタ
150 の出力は加算器140 の入力となる。これにより、中
間結果に次の積が足しこまれていき、積和演算が実行さ
れる。積和演算の結果は結果レジスタ160 に格納され、
図示されていないCPU等から読みだすことができる。
【0031】次に、第2の構成(図2)の作用を説明す
る。第2の構成と第1の構成における相違点は、第2の
構成のアドレス自動設定手段200 によるデータレジスタ
110 のアドレス設定方法である。それ以外は第1の構成
の作用と同様である。
る。第2の構成と第1の構成における相違点は、第2の
構成のアドレス自動設定手段200 によるデータレジスタ
110 のアドレス設定方法である。それ以外は第1の構成
の作用と同様である。
【0032】第1の構成の場合は、データレジスタ110
にデータを最初に格納する際に1回だけアドレスバス17
0 を介してデータレジスタ110 のアドレスをデータ一括
自動格納手段180 に入力した。これに対して第2の構成
の場合は、データレジスタ110 にデータを入力するごと
に、図示していないCPUからアドレスバス170 を介し
てデータレジスタ110 のアドレスをアドレス自動設定手
段200 に入力する。この際、該アドレスはデータレジス
タ110 の一つ一つの格納領域のアドレスである必要はな
く、最初に入力したデータレジスタ110 のアドレスと同
一でよい(データレジスタ110 のアドレスであれば同じ
アドレスでよいのでダミーアドレスと呼ぶ)。
にデータを最初に格納する際に1回だけアドレスバス17
0 を介してデータレジスタ110 のアドレスをデータ一括
自動格納手段180 に入力した。これに対して第2の構成
の場合は、データレジスタ110 にデータを入力するごと
に、図示していないCPUからアドレスバス170 を介し
てデータレジスタ110 のアドレスをアドレス自動設定手
段200 に入力する。この際、該アドレスはデータレジス
タ110 の一つ一つの格納領域のアドレスである必要はな
く、最初に入力したデータレジスタ110 のアドレスと同
一でよい(データレジスタ110 のアドレスであれば同じ
アドレスでよいのでダミーアドレスと呼ぶ)。
【0033】アドレス自動設定手段200 は、入力された
アドレスがデータレジスタ110 のアドレスであれば最初
は先頭の実アドレスを、それ以後は順次格納されるべき
実アドレスを指定し、データバス120 から入力される入
力データを順次格納していく。アドレスバス170 を介し
てアドレス自動設定手段200 に入力されたアドレスがデ
ータレジスタ110 のアドレスでなければ、アドレス自動
設定手段200 は無視する。
アドレスがデータレジスタ110 のアドレスであれば最初
は先頭の実アドレスを、それ以後は順次格納されるべき
実アドレスを指定し、データバス120 から入力される入
力データを順次格納していく。アドレスバス170 を介し
てアドレス自動設定手段200 に入力されたアドレスがデ
ータレジスタ110 のアドレスでなければ、アドレス自動
設定手段200 は無視する。
【0034】これによって、従来のように実際にデータ
レジスタ110 に格納するのに使用するアドレスを保持し
ておく必要はなく、メモリ領域が削減できる。また、最
初の格納アドレス以外は従来のように一々入力されたア
ドレスをデコードする必要もなく、処理速度も速くな
る。
レジスタ110 に格納するのに使用するアドレスを保持し
ておく必要はなく、メモリ領域が削減できる。また、最
初の格納アドレス以外は従来のように一々入力されたア
ドレスをデコードする必要もなく、処理速度も速くな
る。
【0035】次に、第3の構成(図3)の作用を説明す
る。第3の構成と第1、第2の構成における相違点は、
アドレス設定手段300 によるデータレジスタ110 のアド
レス設定方法である。それ以外は第1および第2の構成
の作用と同様である。
る。第3の構成と第1、第2の構成における相違点は、
アドレス設定手段300 によるデータレジスタ110 のアド
レス設定方法である。それ以外は第1および第2の構成
の作用と同様である。
【0036】第3の構成では、図示していないCPUに
より、データレジスタ110 に最初に、例えばデータを格
納する先頭アドレスをアドレスバス170 を介して、ま
た、データバス120 を介してデータレジスタ110 のポイ
ンタ値と入力データを対にして入力する。すなわち、最
初のデータの場合はポインタ値0と入力データを、次に
ポインタ値1と入力データを、というように順次入力す
る。
より、データレジスタ110 に最初に、例えばデータを格
納する先頭アドレスをアドレスバス170 を介して、ま
た、データバス120 を介してデータレジスタ110 のポイ
ンタ値と入力データを対にして入力する。すなわち、最
初のデータの場合はポインタ値0と入力データを、次に
ポインタ値1と入力データを、というように順次入力す
る。
【0037】アドレス設定手段300 は、該先頭アドレス
からデータレジスタ110 に格納する先頭実アドレスを指
定し、ポインタ値によって当該入力データの格納アドレ
スを指定し、格納する。
からデータレジスタ110 に格納する先頭実アドレスを指
定し、ポインタ値によって当該入力データの格納アドレ
スを指定し、格納する。
【0038】第3の構成は、第1および第2の構成のよ
うにデータレジスタ110 のポインタは自動生成できな
い。しかしながら、アドレスの指定を最初のデータ転送
のときのみ行えばよいので、従来の方式よりもアドレス
転送処理が少なく、処理速度が向上する。よって、第3
の構成は、第1および第2の構成よりもハードウエア・
コストを抑えた普及版向けの構成と言える。
うにデータレジスタ110 のポインタは自動生成できな
い。しかしながら、アドレスの指定を最初のデータ転送
のときのみ行えばよいので、従来の方式よりもアドレス
転送処理が少なく、処理速度が向上する。よって、第3
の構成は、第1および第2の構成よりもハードウエア・
コストを抑えた普及版向けの構成と言える。
【0039】次に、第4の構成(図4)の作用を説明す
る。第4の構成は、第3の構成に中間データ再帰手段40
0 を加えた構成であり、データレジスタ110 のアドレス
指定は第3の構成の作用と同様で、前述の作用によりデ
ータレジスタ110 および係数レジスタ100 にそれぞれデ
ータおよび係数が格納され、積和演算が起動される。
る。第4の構成は、第3の構成に中間データ再帰手段40
0 を加えた構成であり、データレジスタ110 のアドレス
指定は第3の構成の作用と同様で、前述の作用によりデ
ータレジスタ110 および係数レジスタ100 にそれぞれデ
ータおよび係数が格納され、積和演算が起動される。
【0040】乗算器130 により係数レジスタ100 および
データレジスタ110 のそれぞれ先頭の係数とデータの積
が算出され、加算器140 に入力される。最初、加算器14
0 ののもう一方の入力値は0に設定され、和が算出さ
れ、出力される。該和は中間データレジスタ150 に格納
される。最初の積和が算出され、中間データレジスタ15
0 に格納されると、次の係数とデータの積和が読みださ
れて乗算器130 により積が算出される。該積は加算器14
0 の入力となり、中間データレジスタ150 に先に格納さ
れた該和をもう一方の入力として和を求め、再び中間デ
ータレジスタ150に格納される。この処理が繰り返され
ることにより、積和が求まる。
データレジスタ110 のそれぞれ先頭の係数とデータの積
が算出され、加算器140 に入力される。最初、加算器14
0 ののもう一方の入力値は0に設定され、和が算出さ
れ、出力される。該和は中間データレジスタ150 に格納
される。最初の積和が算出され、中間データレジスタ15
0 に格納されると、次の係数とデータの積和が読みださ
れて乗算器130 により積が算出される。該積は加算器14
0 の入力となり、中間データレジスタ150 に先に格納さ
れた該和をもう一方の入力として和を求め、再び中間デ
ータレジスタ150に格納される。この処理が繰り返され
ることにより、積和が求まる。
【0041】第4の構成では、中間データ再帰手段400
が該加算器140 の出力である積和の中間データを、図示
していないCPUからの指示によりデータレジスタ110
に戻す処理を行なう。該中間データは図示していないC
PUから指定されたデータレジスタ110 のアドレスに格
納される。これにより、積和の中間データを使用して再
帰的な積和演算が可能となる。この第4の構成はIIR
フィルタの構成に適している。
が該加算器140 の出力である積和の中間データを、図示
していないCPUからの指示によりデータレジスタ110
に戻す処理を行なう。該中間データは図示していないC
PUから指定されたデータレジスタ110 のアドレスに格
納される。これにより、積和の中間データを使用して再
帰的な積和演算が可能となる。この第4の構成はIIR
フィルタの構成に適している。
【0042】第5の構成(図5)は、第4の構成にさら
に中間データ読み出し手段500 を加えた構成である。よ
って、第5の構成の作用は、前述の第4の構成の作用に
加えて、加算器140 の出力である積和の中間データを、
図示していないCPUからの指示によりデータバス120
に出力し、該CPUに該中間データを転送する。
に中間データ読み出し手段500 を加えた構成である。よ
って、第5の構成の作用は、前述の第4の構成の作用に
加えて、加算器140 の出力である積和の中間データを、
図示していないCPUからの指示によりデータバス120
に出力し、該CPUに該中間データを転送する。
【0043】これにより、任意の時点で、図示していな
いCPUの指示により、積和の中間データを読みだすこ
とが可能になる。最後に、第6の構成(図6)は、第5
の構成にさらに加えてオーバーフロー通知手段600 を有
するものである。よって、データレジスタ110 へのデー
タ書き込みや積和演算処理は第5の構成と同様に行われ
る。
いCPUの指示により、積和の中間データを読みだすこ
とが可能になる。最後に、第6の構成(図6)は、第5
の構成にさらに加えてオーバーフロー通知手段600 を有
するものである。よって、データレジスタ110 へのデー
タ書き込みや積和演算処理は第5の構成と同様に行われ
る。
【0044】積和演算では乗算器130 および加算器140
で演算できるビット数に限りがあり、積和によりそのビ
ット数をオーバーフローしてしまうことがある。従来は
オーバフローを起こしてもそのまま処理が継続するだけ
であったが、第6の構成のオーバフロー通知手段600
は、乗算器130 および加算器140 により積和が算出され
中間データが求まるごとにオーバーフローが起きていな
いか否かを判断し、オーバーフローが起きた場合には、
オーバーフローを起こした中間データが何項目までの積
和であるかを示すために、オーバーフローを起こした項
数をデータバス120 に出力する。
で演算できるビット数に限りがあり、積和によりそのビ
ット数をオーバーフローしてしまうことがある。従来は
オーバフローを起こしてもそのまま処理が継続するだけ
であったが、第6の構成のオーバフロー通知手段600
は、乗算器130 および加算器140 により積和が算出され
中間データが求まるごとにオーバーフローが起きていな
いか否かを判断し、オーバーフローが起きた場合には、
オーバーフローを起こした中間データが何項目までの積
和であるかを示すために、オーバーフローを起こした項
数をデータバス120 に出力する。
【0045】図示されていないCPUはこの項数を読み
だすことにより、オーバーフローが起きないように係数
等を修正するデバグ処理を容易に行なうことが可能にな
る。
だすことにより、オーバーフローが起きないように係数
等を修正するデバグ処理を容易に行なうことが可能にな
る。
【0046】
【実施例】図7は、本発明の一実施例のシステム構成図
である。前述した本発明の第1乃至第6のいずれも、こ
のシステム構成で実現できる。
である。前述した本発明の第1乃至第6のいずれも、こ
のシステム構成で実現できる。
【0047】まず、CPU700 が存在する。このCPU
700 は第1乃至第6の構成の説明において図示していな
いCPUと記述していたものにあたる。CPU700 はア
ドレスバス710 およびデータバス720 を有している。ま
た、アドレスバス710 およびデータバス720 にはメモリ
730 と積和演算回路740 が接続されている。
700 は第1乃至第6の構成の説明において図示していな
いCPUと記述していたものにあたる。CPU700 はア
ドレスバス710 およびデータバス720 を有している。ま
た、アドレスバス710 およびデータバス720 にはメモリ
730 と積和演算回路740 が接続されている。
【0048】メモリ730 にはCPU700 の制御ソフトウ
エアや、積和演算回路740 が使用する入力データや係
数、アドレスデータ、ポインタ値等が格納されている。
一方、積和演算回路740 は、第1乃至第6の構成を実現
した積和演算回路が入る。
エアや、積和演算回路740 が使用する入力データや係
数、アドレスデータ、ポインタ値等が格納されている。
一方、積和演算回路740 は、第1乃至第6の構成を実現
した積和演算回路が入る。
【0049】尚、本発明は図7の構成に必ずしも限定さ
れるものではなく、例えば、CPUの代わりにシーケン
サを備えたDSPにも同様に適用できる。以下、第1乃
至第6の構成について、それぞれの実施例を説明する。
れるものではなく、例えば、CPUの代わりにシーケン
サを備えたDSPにも同様に適用できる。以下、第1乃
至第6の構成について、それぞれの実施例を説明する。
【0050】どの構成の実施例も、複数項分の係数デー
タを格納する係数レジスタ100 、複数項分の入力データ
を格納するデータレジスタ110 、積和演算処理を行なう
ための乗算器130 と加算器140 、積和演算途中の中間デ
ータを格納する中間データレジスタ150 、積和演算結果
を格納する結果レジスタ160 を前提とする。
タを格納する係数レジスタ100 、複数項分の入力データ
を格納するデータレジスタ110 、積和演算処理を行なう
ための乗算器130 と加算器140 、積和演算途中の中間デ
ータを格納する中間データレジスタ150 、積和演算結果
を格納する結果レジスタ160 を前提とする。
【0051】係数レジスタ100 およびデータレジスタ11
0 の出力はそれぞれ乗算器130 の2つの入力となり、係
数レジスタ100 はデータバス120 にも接続され、図7に
図示され、図8には図示されていないCPU700 によっ
てデータバス120 を介して係数データの書き込み/読み
出しを行える。乗算器130 の出力は加算器140 の入力と
なり、加算器140 のもう一つの入力には中間データレジ
スタ150 の出力が接続されている。加算器140 の出力は
中間データレジスタ150 および結果レジスタ160 の入力
となる。結果レジスタ160 はデータバス120 に接続さ
れ、該CPU700によって積和演算結果を結果レジスタ1
60 から読み出す等の処理が可能である。
0 の出力はそれぞれ乗算器130 の2つの入力となり、係
数レジスタ100 はデータバス120 にも接続され、図7に
図示され、図8には図示されていないCPU700 によっ
てデータバス120 を介して係数データの書き込み/読み
出しを行える。乗算器130 の出力は加算器140 の入力と
なり、加算器140 のもう一つの入力には中間データレジ
スタ150 の出力が接続されている。加算器140 の出力は
中間データレジスタ150 および結果レジスタ160 の入力
となる。結果レジスタ160 はデータバス120 に接続さ
れ、該CPU700によって積和演算結果を結果レジスタ1
60 から読み出す等の処理が可能である。
【0052】図8は第1の構成の積和演算回路について
の一実施例の構成図である。図1で説明した第1の構成
のデータ一括自動格納手段180 は、デコーダ800 と、カ
ウンタ810 、セレクタ820 で構成される。デコーダ800
はアドレスバス170とカウンタ810 に接続され、カウン
タ810 はデコーダ800 とセレクタ820 に接続される。セ
レクタ820 はカウンタ及びデータバス120 、データレジ
スタ110 に接続される。
の一実施例の構成図である。図1で説明した第1の構成
のデータ一括自動格納手段180 は、デコーダ800 と、カ
ウンタ810 、セレクタ820 で構成される。デコーダ800
はアドレスバス170とカウンタ810 に接続され、カウン
タ810 はデコーダ800 とセレクタ820 に接続される。セ
レクタ820 はカウンタ及びデータバス120 、データレジ
スタ110 に接続される。
【0053】該CPU700 の指示によりアドレスデータ
がアドレスバス170 を介してデコーダ800 に入力され
る。デコーダ800 は入力されたアドレスデータをデコー
ドする。すなわち、入力されたアドレスがデータレジス
タ110 のアドレスか否かを判定し、データレジスタ110
のアドレスでなければ無視する。一方、データレジスタ
110 のアドレスであればカウンタ810 にクリア信号を入
力する。
がアドレスバス170 を介してデコーダ800 に入力され
る。デコーダ800 は入力されたアドレスデータをデコー
ドする。すなわち、入力されたアドレスがデータレジス
タ110 のアドレスか否かを判定し、データレジスタ110
のアドレスでなければ無視する。一方、データレジスタ
110 のアドレスであればカウンタ810 にクリア信号を入
力する。
【0054】カウンタ810 は、データレジスタ110 の格
納位置に対応する項数番号をカウントする。例えば同図
の場合、データレジスタ110 には4項分の入力データが
格納できるので、カウンタ810 は0〜3をカウントす
る。8項の積和演算であれば0〜7、32項の積和演算
であれば0〜31をカウントするのは言うまでもない。
カウンタ810 はサイクリックなカウンタ回路で実現でき
る。
納位置に対応する項数番号をカウントする。例えば同図
の場合、データレジスタ110 には4項分の入力データが
格納できるので、カウンタ810 は0〜3をカウントす
る。8項の積和演算であれば0〜7、32項の積和演算
であれば0〜31をカウントするのは言うまでもない。
カウンタ810 はサイクリックなカウンタ回路で実現でき
る。
【0055】カウンタ810 はデコーダ800 からのクリア
信号を受けてカウントを0にクリアする。すなわち、外
部のCPU700 によってデータレジスタ110 のアドレス
がアドレスバス170 を介してデコーダ800 に入力される
と、カウンタ810 が0にクリアされる。
信号を受けてカウントを0にクリアする。すなわち、外
部のCPU700 によってデータレジスタ110 のアドレス
がアドレスバス170 を介してデコーダ800 に入力される
と、カウンタ810 が0にクリアされる。
【0056】カウンタ810 の出力はセレクタ820 に入力
され、選択信号となる。すなわち、カウンタ出力が0な
らばデータレジスタ110 の先頭アドレスに、カウンタ出
力が1ならばデータレジスタ110 の2番目の格納場所に
データバス120 を介してセレクタ820 に入力された入力
データを格納する。カウンタ810 はデータレジスタ110
へのデータ格納が完了するとインクリメントする。
され、選択信号となる。すなわち、カウンタ出力が0な
らばデータレジスタ110 の先頭アドレスに、カウンタ出
力が1ならばデータレジスタ110 の2番目の格納場所に
データバス120 を介してセレクタ820 に入力された入力
データを格納する。カウンタ810 はデータレジスタ110
へのデータ格納が完了するとインクリメントする。
【0057】この構成では、CPU700 は、最初のデー
タ格納時にのみアドレスデータと入力データの対を積和
演算回路740 に転送し、それ以降はデータのみをデータ
バス120 を介して積和演算回路740 に転送すればよい。
また、本構成のデコーダ800は、入力されるアドレスが
データレジスタ110 のアドレスか否かを判定し、データ
レジスタ110 のアドレスであればクリア信号をカウンタ
810 に出力する簡単な構成のデコーダである。
タ格納時にのみアドレスデータと入力データの対を積和
演算回路740 に転送し、それ以降はデータのみをデータ
バス120 を介して積和演算回路740 に転送すればよい。
また、本構成のデコーダ800は、入力されるアドレスが
データレジスタ110 のアドレスか否かを判定し、データ
レジスタ110 のアドレスであればクリア信号をカウンタ
810 に出力する簡単な構成のデコーダである。
【0058】以上のように、この構成は、データレジス
タ110 のアドレスを最初に一回指定すれば、その後はデ
ータを順次自動的にデータレジスタ110 に格納すること
が可能であり、複数のデータを一括して自動的にデータ
レジスタ110 に格納できる。
タ110 のアドレスを最初に一回指定すれば、その後はデ
ータを順次自動的にデータレジスタ110 に格納すること
が可能であり、複数のデータを一括して自動的にデータ
レジスタ110 に格納できる。
【0059】また、積和演算のためのデータの読み出し
にも適する構成である。すなわち、積和演算の起動時に
1回データレジスタ110 のアドレスを指定して読み出し
乗算器130 や加算器140 等を起動するようにすれば、デ
ータレジスタ110 の値を自動的に順次読み出して乗算器
130 に出力することが可能である。このときは、カウン
タ810 を積和演算1回が完了するごとにインクリメント
すればよい。
にも適する構成である。すなわち、積和演算の起動時に
1回データレジスタ110 のアドレスを指定して読み出し
乗算器130 や加算器140 等を起動するようにすれば、デ
ータレジスタ110 の値を自動的に順次読み出して乗算器
130 に出力することが可能である。このときは、カウン
タ810 を積和演算1回が完了するごとにインクリメント
すればよい。
【0060】同図では、係数レジスタ100 の書き込み/
読み出しはCPU700 が行ない自動化されていないが、
データレジスタ110 と同様の回路を付加して、係数の一
括自動書き込み/読み出しを行わせてもよい。
読み出しはCPU700 が行ない自動化されていないが、
データレジスタ110 と同様の回路を付加して、係数の一
括自動書き込み/読み出しを行わせてもよい。
【0061】図9は、第2の構成(図2)の実施例のシ
ステム構成図である。第2の構成のアドレス自動設定手
段200 は、第1の構成(図8)と同様に、デコーダ900
とカウンタ910 、セレクタ920 で構成する。デコーダ90
0 はアドレスバス170 とカウンタ910 に、カウンタ910
はデコーダ900 とセレクタ920 に、セレクタ920 はデー
タバス120 とカウンタ910 、データレジスタ110 に接続
される。この接続も第1の構成と同じである。
ステム構成図である。第2の構成のアドレス自動設定手
段200 は、第1の構成(図8)と同様に、デコーダ900
とカウンタ910 、セレクタ920 で構成する。デコーダ90
0 はアドレスバス170 とカウンタ910 に、カウンタ910
はデコーダ900 とセレクタ920 に、セレクタ920 はデー
タバス120 とカウンタ910 、データレジスタ110 に接続
される。この接続も第1の構成と同じである。
【0062】第1の構成(図8)との違いは、CPU70
0 が常にアドレスと入力データを対にして入力する点で
ある。アドレスはアドレスバス170 を介してデコーダ90
0 に、入力データはデータバス120 を介してセレクタ92
0 に入力される。但し、該アドレスからデータレジスタ
110 の実アドレスを求めるわけではないので、該アドレ
スはデータレジスタ110 を示すアドレスであれば何でも
よい。
0 が常にアドレスと入力データを対にして入力する点で
ある。アドレスはアドレスバス170 を介してデコーダ90
0 に、入力データはデータバス120 を介してセレクタ92
0 に入力される。但し、該アドレスからデータレジスタ
110 の実アドレスを求めるわけではないので、該アドレ
スはデータレジスタ110 を示すアドレスであれば何でも
よい。
【0063】デコーダ900 はアドレスバス170 から入力
される該アドレスをデコードし、該アドレスがデータレ
ジスタ110 を示すアドレスか否かを判断する。該アドレ
スがデータレジスタ110 を示すアドレスであればカウン
タ910 をインクリメントする信号をカウンタ910 に出力
する。一方、該アドレスが他のレジスタ等を示す異なる
アドレスであれば、該アドレスとデータの対は無視す
る。
される該アドレスをデコードし、該アドレスがデータレ
ジスタ110 を示すアドレスか否かを判断する。該アドレ
スがデータレジスタ110 を示すアドレスであればカウン
タ910 をインクリメントする信号をカウンタ910 に出力
する。一方、該アドレスが他のレジスタ等を示す異なる
アドレスであれば、該アドレスとデータの対は無視す
る。
【0064】カウンタ910 は、デコーダ900 からのイン
クリメント信号を受けてインクリメントし、カウンタ値
をセレクタ920 に出力する。カウンタ910 の値は、最初
のアドレス/データ入力の時点で0にクリアすればよ
い。
クリメント信号を受けてインクリメントし、カウンタ値
をセレクタ920 に出力する。カウンタ910 の値は、最初
のアドレス/データ入力の時点で0にクリアすればよ
い。
【0065】セレクタ920 はカウンタ910 からの入力
(カウンタ値)を選択信号とし、データレジスタ110 の
対応する格納位置に、データバス120 から入力されたデ
ータを格納する。
(カウンタ値)を選択信号とし、データレジスタ110 の
対応する格納位置に、データバス120 から入力されたデ
ータを格納する。
【0066】以上のように、第2の構成によれば、デー
タレジスタ110 のアドレスが指定されたデータだけをデ
ータレジスタ110 に順次格納することができる。従来の
方式では、アドレスバス170 から入力されるアドレスを
デコードして一々データレジスタ110 の実アドレスを求
めていたが、本構成の場合は、カウンタ910 をインクリ
メントしてデータレジスタ110 の格納位置を求めるの
で、デコーダ900 はデータレジスタ110 を示すアドレス
か否かを判定する機能だけを持っていればよい。
タレジスタ110 のアドレスが指定されたデータだけをデ
ータレジスタ110 に順次格納することができる。従来の
方式では、アドレスバス170 から入力されるアドレスを
デコードして一々データレジスタ110 の実アドレスを求
めていたが、本構成の場合は、カウンタ910 をインクリ
メントしてデータレジスタ110 の格納位置を求めるの
で、デコーダ900 はデータレジスタ110 を示すアドレス
か否かを判定する機能だけを持っていればよい。
【0067】図10は、第3の構成(図3)の実施例の
システム構成図である。第3の構成のアドレス設定手段
300 は、ポインタレジスタ1000、加算器1010、データ10
20、セレクタ1030からなる。ポインタレジスタ1000はデ
ータバス120 と加算器1010の一方の入力と接続され、加
算器1010のもう一方の入力はアドレスバス170 と接続さ
れる。加算器1010の出力がデコーダ1020に接続され、デ
コーダ1020の出力はセレクタ1030に接続される。セレク
タ1030はデータバス120 およびデコーダ1020、データレ
ジスタ110 と接続される。
システム構成図である。第3の構成のアドレス設定手段
300 は、ポインタレジスタ1000、加算器1010、データ10
20、セレクタ1030からなる。ポインタレジスタ1000はデ
ータバス120 と加算器1010の一方の入力と接続され、加
算器1010のもう一方の入力はアドレスバス170 と接続さ
れる。加算器1010の出力がデコーダ1020に接続され、デ
コーダ1020の出力はセレクタ1030に接続される。セレク
タ1030はデータバス120 およびデコーダ1020、データレ
ジスタ110 と接続される。
【0068】第3の構成は、第1および第2の構成のよ
うにデータレジスタ110 の格納位置の選択信号(ポイン
タ)を内部で自動的に生成するわけではない。すなわ
ち、CPU700 が、データレジスタ110 のアドレスと、
データレジスタ110 中での格納位置を示すポインタ値を
データレジスタ110 にデータを格納するごとに指定す
る。アドレスとしては例えば先頭アドレスを指定すれば
よい。あるいはまた、データアドレス110 に対応するダ
ミーアドレスを指定してもよい。
うにデータレジスタ110 の格納位置の選択信号(ポイン
タ)を内部で自動的に生成するわけではない。すなわ
ち、CPU700 が、データレジスタ110 のアドレスと、
データレジスタ110 中での格納位置を示すポインタ値を
データレジスタ110 にデータを格納するごとに指定す
る。アドレスとしては例えば先頭アドレスを指定すれば
よい。あるいはまた、データアドレス110 に対応するダ
ミーアドレスを指定してもよい。
【0069】該アドレスはアドレスバス170 を介して加
算器1010に、ポインタ値はデータバス120 を介してポイ
ンタレジスタ1000に格納される。ポインタ値は0〜(デ
ータレジスタ110 の格納個数−1)の値をとり、その値
はCPU700 が制御する。
算器1010に、ポインタ値はデータバス120 を介してポイ
ンタレジスタ1000に格納される。ポインタ値は0〜(デ
ータレジスタ110 の格納個数−1)の値をとり、その値
はCPU700 が制御する。
【0070】該アドレスおよびポインタレジスタ1000の
出力であるポインタ値が加算器1010に入力され、加算さ
れる。加算器1010の出力はデコーダ1020に入力され、ア
ドレスのデコードを行なう。デコーダ1020の出力はセレ
クタ1030に入力され、セレクタ1030の選択信号となる。
デコーダ1020からの選択信号により、データレジスタ11
0 中での格納位置が決まり、データバス120 を介してセ
レクタ1030に入力された入力データを該格納位置に格納
する。
出力であるポインタ値が加算器1010に入力され、加算さ
れる。加算器1010の出力はデコーダ1020に入力され、ア
ドレスのデコードを行なう。デコーダ1020の出力はセレ
クタ1030に入力され、セレクタ1030の選択信号となる。
デコーダ1020からの選択信号により、データレジスタ11
0 中での格納位置が決まり、データバス120 を介してセ
レクタ1030に入力された入力データを該格納位置に格納
する。
【0071】以上のように、本構成は、CPU700 がデ
ータレジスタ110 の先頭アドレスとポインタ値を指定す
る必要があり、第1、第2の構成に比べればCPU700
への依存度は大きい。しかし、CPU700 は従来方式の
ようにデータレジスタ110 の個々の格納位置のアドレス
を持つ必要はなく、先頭アドレスとポインタ値だけをメ
モリ領域に格納しておき、積和演算回路に対して指定し
てやればよい。また、第1、第2の構成と異なり、CP
U700 がデータレジスタ110 内の格納位置を先頭アドレ
スとポインタ値を使用して指定することが可能である。
ータレジスタ110 の先頭アドレスとポインタ値を指定す
る必要があり、第1、第2の構成に比べればCPU700
への依存度は大きい。しかし、CPU700 は従来方式の
ようにデータレジスタ110 の個々の格納位置のアドレス
を持つ必要はなく、先頭アドレスとポインタ値だけをメ
モリ領域に格納しておき、積和演算回路に対して指定し
てやればよい。また、第1、第2の構成と異なり、CP
U700 がデータレジスタ110 内の格納位置を先頭アドレ
スとポインタ値を使用して指定することが可能である。
【0072】第3の構成は、加算器1010がなしでも実現
できる。すなわち、アドレスバス170 から入力されるア
ドレスをデコーダ1020でデコードしたうえセレクタ1030
に入力するとともに、データバス120 を介してポインタ
レジスタ1000に格納されたポインタ値もセレクタ1030に
入力する。そして、セレクタ1030がデコード済みのアド
レス、例えばデータレジスタ110 の先頭アドレスと、ポ
インタ値の両方を選択信号としてデータレジスタ110 の
格納位置を指定する。
できる。すなわち、アドレスバス170 から入力されるア
ドレスをデコーダ1020でデコードしたうえセレクタ1030
に入力するとともに、データバス120 を介してポインタ
レジスタ1000に格納されたポインタ値もセレクタ1030に
入力する。そして、セレクタ1030がデコード済みのアド
レス、例えばデータレジスタ110 の先頭アドレスと、ポ
インタ値の両方を選択信号としてデータレジスタ110 の
格納位置を指定する。
【0073】図11は、第4の構成(図4)の実施例の
システム構成図である。第4の構成は、第3の構成に中
間データ再帰手段400 を加えたものであり、中間データ
再帰手段400 以外は第3の構成と同様である。
システム構成図である。第4の構成は、第3の構成に中
間データ再帰手段400 を加えたものであり、中間データ
再帰手段400 以外は第3の構成と同様である。
【0074】中間データ再帰手段400 は積和演算の加算
器140 の出力をデータレジスタ110に戻すデータ線1100
で実現する。データレジスタ110 への格納アドレスはC
PU700 で直接指定してもよいし、第3の構成の実施例
(図10)で説明したアドレス指定方法で指定してもよ
い。
器140 の出力をデータレジスタ110に戻すデータ線1100
で実現する。データレジスタ110 への格納アドレスはC
PU700 で直接指定してもよいし、第3の構成の実施例
(図10)で説明したアドレス指定方法で指定してもよ
い。
【0075】このように、加算器140 の出力をデータレ
ジスタ110 に戻すことにより、積和演算の途中データを
使用して再び積和演算を行なう再帰型の処理が可能とな
り、IIRフィルタを実現できる。
ジスタ110 に戻すことにより、積和演算の途中データを
使用して再び積和演算を行なう再帰型の処理が可能とな
り、IIRフィルタを実現できる。
【0076】図12は、第5の構成(図5)の実施例の
システム構成図である。第5の構成は、第4の構成に中
間データ読み出し手段500 を加えた構成であり、中間デ
ータ読み出し手段500 以外は第4の構成と同様である。
システム構成図である。第5の構成は、第4の構成に中
間データ読み出し手段500 を加えた構成であり、中間デ
ータ読み出し手段500 以外は第4の構成と同様である。
【0077】中間データ読み出し手段500 は、中間デー
タレジスタ150 の出力をデータバス120 に接続するデー
タ線1200で実現できる。CPU700 の命令により中間デ
ータレジスタ150 に格納されている積和演算の途中デー
タをデータバスを介して読み出す。
タレジスタ150 の出力をデータバス120 に接続するデー
タ線1200で実現できる。CPU700 の命令により中間デ
ータレジスタ150 に格納されている積和演算の途中デー
タをデータバスを介して読み出す。
【0078】読み出したデータはCPU700 で処理する
こともできるし、再びデータレジスタ110 に格納するこ
とも可能である。データレジスタ110 に格納する場合、
ポインタレジスタ1000、加算器1010、デコーダ1020、セ
レクタ1030を使用した第3の構成のアドレス指定方法で
データレジスタ110 のアドレスを指定し格納することが
できる。また、第1の構成のアドレス指定方法である、
カウンタを自動的にインクリメントしてデータレジスタ
110 のアドレスを指定する方法により、中間データを次
々にデータレジスタ110 に格納し、再び積和演算を行な
うこともできる。
こともできるし、再びデータレジスタ110 に格納するこ
とも可能である。データレジスタ110 に格納する場合、
ポインタレジスタ1000、加算器1010、デコーダ1020、セ
レクタ1030を使用した第3の構成のアドレス指定方法で
データレジスタ110 のアドレスを指定し格納することが
できる。また、第1の構成のアドレス指定方法である、
カウンタを自動的にインクリメントしてデータレジスタ
110 のアドレスを指定する方法により、中間データを次
々にデータレジスタ110 に格納し、再び積和演算を行な
うこともできる。
【0079】図13は、第6の構成(図6)の実施例の
システム構成図である。第6の構成は、第5の構成にオ
ーバーフロー通知手段600 を加えた構成であり、オーバ
ーフロー通知手段600 以外は第5の構成と同様である。
システム構成図である。第6の構成は、第5の構成にオ
ーバーフロー通知手段600 を加えた構成であり、オーバ
ーフロー通知手段600 以外は第5の構成と同様である。
【0080】オーバーフロー通知手段600 は、中間デー
タレジスタ150 の出力を入力とするオーバーフロー項数
レジスタ1300で実現する。オーバーフロー項数レジスタ
1300の出力はデータバス120 に接続される。
タレジスタ150 の出力を入力とするオーバーフロー項数
レジスタ1300で実現する。オーバーフロー項数レジスタ
1300の出力はデータバス120 に接続される。
【0081】オーバーフロー項数レジスタ1300には、積
和演算途中でオーバーフローが生じた場合に、オーバー
フローが生じた積和演算の項数が格納される。オーバー
フロー項数レジスタ1300に格納された項数や中間データ
レジスタ150 のオーバーフローした中間データをデータ
線1200を使用して読みだすことにより、オーバーフロー
しないように係数データを作り変える等のデバグ処理が
容易に行えるようになる。
和演算途中でオーバーフローが生じた場合に、オーバー
フローが生じた積和演算の項数が格納される。オーバー
フロー項数レジスタ1300に格納された項数や中間データ
レジスタ150 のオーバーフローした中間データをデータ
線1200を使用して読みだすことにより、オーバーフロー
しないように係数データを作り変える等のデバグ処理が
容易に行えるようになる。
【0082】図14は、第6の構成(図6、図13)の
実施例のより詳しいシステム構成図である。同図では、
例えば、4項の積和演算を想定し、係数レジスタ100 に
は4項分の係数データ(A0 、A1 、A2 、A3 )が、
データレジスタ110 には4項分の入力データ(X0 、X
1 、X2 、X3 )が格納できるようになっている。この
項数は、2以上ならいくらでも良い。
実施例のより詳しいシステム構成図である。同図では、
例えば、4項の積和演算を想定し、係数レジスタ100 に
は4項分の係数データ(A0 、A1 、A2 、A3 )が、
データレジスタ110 には4項分の入力データ(X0 、X
1 、X2 、X3 )が格納できるようになっている。この
項数は、2以上ならいくらでも良い。
【0083】本実施例では、図13のシステム構成に加
えて、中間データレジスタ150 の出力を入力としオーバ
ーフローしたデータを格納し、その出力がデータバス12
0 に接続されたオーバーフローデータレジスタ1400と、
データバス120 に接続されCPU700 が転送するポイン
タ値を格納する二つのレジスタ、ポインタレジスタ214
10とポインタレジスタ3 1420と、データレジスタ110
のデータ出力を入力データとし、ポインタレジスタ3
1420のポインタ値を選択信号とするセレクタ1430で実現
する。ポインタレジスタ2 1410のポインタ値はもう一
方のセレクタ1030の選択信号となる。
えて、中間データレジスタ150 の出力を入力としオーバ
ーフローしたデータを格納し、その出力がデータバス12
0 に接続されたオーバーフローデータレジスタ1400と、
データバス120 に接続されCPU700 が転送するポイン
タ値を格納する二つのレジスタ、ポインタレジスタ214
10とポインタレジスタ3 1420と、データレジスタ110
のデータ出力を入力データとし、ポインタレジスタ3
1420のポインタ値を選択信号とするセレクタ1430で実現
する。ポインタレジスタ2 1410のポインタ値はもう一
方のセレクタ1030の選択信号となる。
【0084】今、係数レジスタ100 には係数データ(A
0 、A1 、A2 、A3 )が、データレジスタ110 には入
力データ(X0 、X1 、X2 、X3 )が格納されたもの
とし、積和演算の手順を順を追って説明する。
0 、A1 、A2 、A3 )が、データレジスタ110 には入
力データ(X0 、X1 、X2 、X3 )が格納されたもの
とし、積和演算の手順を順を追って説明する。
【0085】この積和演算器では、乗算器130 で係数デ
ータ×入力データの演算を各項のデータについて行な
い、加算器140 で積の値を順次加算していく。すなわ
ち、A0×X0 +A1 ×X1 +A2 ×X2 +A3 ×X3
を演算することになる。
ータ×入力データの演算を各項のデータについて行な
い、加算器140 で積の値を順次加算していく。すなわ
ち、A0×X0 +A1 ×X1 +A2 ×X2 +A3 ×X3
を演算することになる。
【0086】係数データおよび入力データが8ビットな
らば、加算器140 の出力線は8+8+2(4項分を足す
ことにより生じる)=18ビットの幅があれば積和演算
でオーバーフローを起こすことはない。しかし、演算結
果も8ビットとすると、オーバーフローが起こることが
考えられ、オーバーフローへの対策が積和演算回路に必
要となる。
らば、加算器140 の出力線は8+8+2(4項分を足す
ことにより生じる)=18ビットの幅があれば積和演算
でオーバーフローを起こすことはない。しかし、演算結
果も8ビットとすると、オーバーフローが起こることが
考えられ、オーバーフローへの対策が積和演算回路に必
要となる。
【0087】本実施例で、例えば、Q6固定小数点デー
タで演算を行なうとする。すなわち、符号1ビットに整
数部1ビット、小数部6ビットのデータ形式である。そ
して、今、A0 =A1 =A2 =A3 =1(10進数)=
40H(Q6固定小数点表現を16進数で表記。2進数
で表現すると0100 0000)、X0 =X1 =X2=X3 =4
0Hとする。すると、最初の積演算A0 ×X0 =100
0H(2進数で表現すると0001 0000 0000 0000)とな
る。これは8ビットのQ6固定小数点で表すと40Hで
ある。次にA1 ×X1 =1000HをA0 ×X0 =10
00Hに加算すると2000Hとなる。これを8ビット
のQ6で表すと80Hとなってしまい、8ビットのQ6
固定小数点データとしてはオーバーフローしたことにな
る。すなわち、Q6固定小数点データは80H(2進数
では1000 0000 、10進数では−2)から7FH(2進
数では0111 1111 、10進数では1.984375)の
間の値しか表せない。
タで演算を行なうとする。すなわち、符号1ビットに整
数部1ビット、小数部6ビットのデータ形式である。そ
して、今、A0 =A1 =A2 =A3 =1(10進数)=
40H(Q6固定小数点表現を16進数で表記。2進数
で表現すると0100 0000)、X0 =X1 =X2=X3 =4
0Hとする。すると、最初の積演算A0 ×X0 =100
0H(2進数で表現すると0001 0000 0000 0000)とな
る。これは8ビットのQ6固定小数点で表すと40Hで
ある。次にA1 ×X1 =1000HをA0 ×X0 =10
00Hに加算すると2000Hとなる。これを8ビット
のQ6で表すと80Hとなってしまい、8ビットのQ6
固定小数点データとしてはオーバーフローしたことにな
る。すなわち、Q6固定小数点データは80H(2進数
では1000 0000 、10進数では−2)から7FH(2進
数では0111 1111 、10進数では1.984375)の
間の値しか表せない。
【0088】本実施例では、この場合、オーバーフロー
データレジスタ1400にオーバーフローしてしまった中間
データである80Hが、また、オーバーフロー項数レジ
スタ1300には第2項目の積和演算でオーバーフローを起
こしたので2という値が格納されたうえ、積和演算は続
けられる。そして、オーバーフローしたままA0 ×X 0
+A1 ×X1 +A2 ×X2 +A3 ×X3 を最後まで演算
し、4000Hを結果レジスタ160 に格納し、さらにデ
ータ線1200を介してデータバス120 に出力して処理を終
了する。このとき、8ビットのQ6固定小数点データと
して出力するように指定してあれば、結果レジスタ160
には00Hが格納され、処理を終了する。
データレジスタ1400にオーバーフローしてしまった中間
データである80Hが、また、オーバーフロー項数レジ
スタ1300には第2項目の積和演算でオーバーフローを起
こしたので2という値が格納されたうえ、積和演算は続
けられる。そして、オーバーフローしたままA0 ×X 0
+A1 ×X1 +A2 ×X2 +A3 ×X3 を最後まで演算
し、4000Hを結果レジスタ160 に格納し、さらにデ
ータ線1200を介してデータバス120 に出力して処理を終
了する。このとき、8ビットのQ6固定小数点データと
して出力するように指定してあれば、結果レジスタ160
には00Hが格納され、処理を終了する。
【0089】一方、連続して次の演算を行なう場合を考
える。今までのデータX0 、X1 、X2 、X3 の次に新
たな入力データX4 を持ってきてA0 ×X1 +A1 ×X
2 +A2 ×X3 +A3 ×X4 を演算したい場合には、X
0 が入っているデータレジスタ100 の格納位置にX4 を
格納する必要がある。
える。今までのデータX0 、X1 、X2 、X3 の次に新
たな入力データX4 を持ってきてA0 ×X1 +A1 ×X
2 +A2 ×X3 +A3 ×X4 を演算したい場合には、X
0 が入っているデータレジスタ100 の格納位置にX4 を
格納する必要がある。
【0090】この場合、CPU700 により、データバス
120 を介してポインタレジスタ11000に値0を、またデ
ータバス120 を介してセレクタ1030に入力データを、さ
らにアドレスバス170 を介して加算器1010にダミーアド
レス(データレジスタ110を示すアドレス)等を指定す
ることにより、今までのX0 の位置にX4 が格納され
る。
120 を介してポインタレジスタ11000に値0を、またデ
ータバス120 を介してセレクタ1030に入力データを、さ
らにアドレスバス170 を介して加算器1010にダミーアド
レス(データレジスタ110を示すアドレス)等を指定す
ることにより、今までのX0 の位置にX4 が格納され
る。
【0091】そして、積和演算を起動するのに先立ち、
CPU700 により、ポインタレジスタ3 1420の値を0
から1にする。これにより、セレクタ1430の選択信号の
値が1増え、データレジスタ110 からの先頭の読み出し
アドレスが1ずれてX1 になる。
CPU700 により、ポインタレジスタ3 1420の値を0
から1にする。これにより、セレクタ1430の選択信号の
値が1増え、データレジスタ110 からの先頭の読み出し
アドレスが1ずれてX1 になる。
【0092】以上のように、ポインタレジスタ3 1420
はデータレジスタ110 からの先頭読み出しアドレスをず
らす信号を発生する。さらに、積和演算結果あるいは中
間データをデータレジスタ110 に格納して次の積和演算
に使用する場合を考える。
はデータレジスタ110 からの先頭読み出しアドレスをず
らす信号を発生する。さらに、積和演算結果あるいは中
間データをデータレジスタ110 に格納して次の積和演算
に使用する場合を考える。
【0093】このような場合は、積和演算結果ならばC
PU700 により結果レジスタ160 の値をデータバス120
を介してセレクタ1030に戻し、2つ目のポインタレジス
タ21410に値を設定して該ポインタ値をセレクタ1030に
入力する。これにより、データレジスタ110 の格納位置
が定まり、演算結果を格納することが可能になる。
PU700 により結果レジスタ160 の値をデータバス120
を介してセレクタ1030に戻し、2つ目のポインタレジス
タ21410に値を設定して該ポインタ値をセレクタ1030に
入力する。これにより、データレジスタ110 の格納位置
が定まり、演算結果を格納することが可能になる。
【0094】一方、中間データをデータレジスタ110 に
戻す場合には、CPU700 によりデータ線1100を介して
中間データをセレクタ1030に戻してやればよい。データ
レジスタ110 の格納位置はポインタレジスタ2 1410に
ポインタ値を設定することにより決める。
戻す場合には、CPU700 によりデータ線1100を介して
中間データをセレクタ1030に戻してやればよい。データ
レジスタ110 の格納位置はポインタレジスタ2 1410に
ポインタ値を設定することにより決める。
【0095】ポインタレジスタ2 1410を置くことによ
り、IIRフィルタを容易に構成することが可能にな
る。図15は、図14の実施例の構成に加えてデータ長
選択セレクタ1500を加算器140 の出力と中間データレジ
スタ150 の間に挿入した構成である。データ長選択セレ
クタ1500は、積和結果のデータのうちの一部のビットを
選択するセレクタである。例えば16ビットのうちの8
ビットを選択したり、32ビットのうちの16ビットを
選択したり、8ビットをそのまま出したりすることが可
能になる。
り、IIRフィルタを容易に構成することが可能にな
る。図15は、図14の実施例の構成に加えてデータ長
選択セレクタ1500を加算器140 の出力と中間データレジ
スタ150 の間に挿入した構成である。データ長選択セレ
クタ1500は、積和結果のデータのうちの一部のビットを
選択するセレクタである。例えば16ビットのうちの8
ビットを選択したり、32ビットのうちの16ビットを
選択したり、8ビットをそのまま出したりすることが可
能になる。
【0096】最後に、図16は、図14の実施例の構成
に加えてポインタレジスタ4 1600とコントローラCT
L1610を加えた構成である。ポインタレジスタ4 1600
はデータバス120 およびコントローラ1610に接続され、
コントローラ1610はデータバス120 およびデータレジス
タ110 、係数レジスタ100 、乗算器130 、加算器140に
接続されている。
に加えてポインタレジスタ4 1600とコントローラCT
L1610を加えた構成である。ポインタレジスタ4 1600
はデータバス120 およびコントローラ1610に接続され、
コントローラ1610はデータバス120 およびデータレジス
タ110 、係数レジスタ100 、乗算器130 、加算器140に
接続されている。
【0097】積和演算をある項まで実行し、その後の演
算は図示していない他の処理装置等から送られてこない
と実行できないような場合、演算できる項まで演算して
おき、そこで止めておく場合に使用する。ポインタレジ
スタ4 1600には積和演算を止める項のアドレスを示す
ポインタ値を格納しておく。
算は図示していない他の処理装置等から送られてこない
と実行できないような場合、演算できる項まで演算して
おき、そこで止めておく場合に使用する。ポインタレジ
スタ4 1600には積和演算を止める項のアドレスを示す
ポインタ値を格納しておく。
【0098】データレジスタ110 から乗算器130 に入力
されるデータ読み出しのアドレスがポインタレジスタ4
1600が示すアドレスと一致すると、コントローラ1610
は積和演算を中止する。そして、コントローラ1610は必
要なデータがデータバス120を介して転送されるのを待
機し、該データがデータレジスタ110 あるいは係数レジ
スタ100 等に格納されると、コントローラ1610は中断し
た積和演算を再開するように乗算器130 、加算器140 等
を制御する。
されるデータ読み出しのアドレスがポインタレジスタ4
1600が示すアドレスと一致すると、コントローラ1610
は積和演算を中止する。そして、コントローラ1610は必
要なデータがデータバス120を介して転送されるのを待
機し、該データがデータレジスタ110 あるいは係数レジ
スタ100 等に格納されると、コントローラ1610は中断し
た積和演算を再開するように乗算器130 、加算器140 等
を制御する。
【0099】本発明の積和演算器では、係数レジスタに
格納する係数データを適当に選ぶことにより、様々な特
性を持つFIRフィルタを構成することができる。ま
た、積和演算の結果を入力データとしてデータレジスタ
に格納することにより、多様なIIRフィルタを構成で
きる。
格納する係数データを適当に選ぶことにより、様々な特
性を持つFIRフィルタを構成することができる。ま
た、積和演算の結果を入力データとしてデータレジスタ
に格納することにより、多様なIIRフィルタを構成で
きる。
【0100】例えば、遅延素子を介した信号に相当する
データを入力データとして用いれば、非再帰形の遅延フ
ィルタ(トランスバーサルフィルタ)や再帰形の遅延フ
ィルタを構成することができる。
データを入力データとして用いれば、非再帰形の遅延フ
ィルタ(トランスバーサルフィルタ)や再帰形の遅延フ
ィルタを構成することができる。
【0101】
【発明の効果】本発明によれば、第1および第2の構成
では、積和演算データを格納するデータレジスタの格納
アドレスを外部から指定することなく、積和演算回路内
でアドレス生成できるようになり、従来のように、アド
レスデータを外部のメモリ領域等に格納しておいて積和
演算回路に転送する必要がなくなり、転送時間、アドレ
ス生成時間が短縮され、処理速度が向上する。また、第
3の構成では、演算データを任意のタイミングでデータ
レジスタに格納することが可能になる。さらに、第4の
構成では、積和演算の途中データをデータレジスタ110
に戻すことにより再帰的な積和演算がデータバスを介す
ることなく実現でき、データ転送処理時間を短縮でき
る。また、第5の構成では、積和演算の途中データをデ
ータバスに出力することにより、外部での途中データの
処理が容易に行えるようになる。また、第6の構成で
は、積和演算中のオーバーフローを通知可能となり、係
数の再設定等のデバグ効率が向上する。
では、積和演算データを格納するデータレジスタの格納
アドレスを外部から指定することなく、積和演算回路内
でアドレス生成できるようになり、従来のように、アド
レスデータを外部のメモリ領域等に格納しておいて積和
演算回路に転送する必要がなくなり、転送時間、アドレ
ス生成時間が短縮され、処理速度が向上する。また、第
3の構成では、演算データを任意のタイミングでデータ
レジスタに格納することが可能になる。さらに、第4の
構成では、積和演算の途中データをデータレジスタ110
に戻すことにより再帰的な積和演算がデータバスを介す
ることなく実現でき、データ転送処理時間を短縮でき
る。また、第5の構成では、積和演算の途中データをデ
ータバスに出力することにより、外部での途中データの
処理が容易に行えるようになる。また、第6の構成で
は、積和演算中のオーバーフローを通知可能となり、係
数の再設定等のデバグ効率が向上する。
【0102】以上のように、本発明により、FIRフィ
ルタだけでなくIIRフィルタに適し、アドレス生成や
データ転送を高速に行える積和演算回路が実現できる。
ルタだけでなくIIRフィルタに適し、アドレス生成や
データ転送を高速に行える積和演算回路が実現できる。
【図1】本発明の第1の構成のブロック図である。
【図2】本発明の第2の構成のブロック図である。
【図3】本発明の第3の構成のブロック図である。
【図4】本発明の第4の構成のブロック図である。
【図5】本発明の第5の構成のブロック図である。
【図6】本発明の第6の構成のブロック図である。
【図7】一実施例のシステム構成図である。
【図8】積和演算回路の第1の構成の一実施例のシステ
ム構成図である。
ム構成図である。
【図9】積和演算回路の第2の構成の一実施例のシステ
ム構成図である。
ム構成図である。
【図10】積和演算回路の第3の構成の一実施例のシス
テム構成図である。
テム構成図である。
【図11】積和演算回路の第4の構成の一実施例のシス
テム構成図である。
テム構成図である。
【図12】積和演算回路の第5の構成の一実施例のシス
テム構成図である。
テム構成図である。
【図13】積和演算回路の第6の構成の一実施例のシス
テム構成図である。
テム構成図である。
【図14】積和演算回路の第6の構成のより詳細な構成
図である。
図である。
【図15】積和演算結果のデータ長を選択可能にするた
めの一実施例のシステム構成図である。
めの一実施例のシステム構成図である。
【図16】積和演算を一時中断可能にする一実施例のシ
ステム構成図である。
ステム構成図である。
【図17】従来の積和演算回路の構成図である。
100 係数レジスタ 110 データレジスタ 120 データバス 130 乗算器 140 加算器 150 中間データレジスタ 160 結果レジスタ 170 アドレスバス 180 データ一括自動格納手段 300 アドレス設定手段 400 中間データ再帰手段 500 中間データ読出し手段 600 オーバーフロー通知手段
Claims (22)
- 【請求項1】 2つ以上のデータを格納可能な積和演算
用のレジスタを有し、前記レジスタの各々に予め積和演
算用データを転送したのち、前記レジスタの各データを
順次使用して積和演算を行なう積和演算器において、 前記積和演算用データの転送時に、積和演算器以外のユ
ニットからまず前記レジスタのアドレスを指定し、その
後前記レジスタの格納位置を自動的に順次指定し、前記
レジスタへの演算データの書き込みを行なうデータ一括
自動格納手段を有することを特徴とする積和演算器。 - 【請求項2】 請求項1に記載の積和演算回路におい
て、 前記データ一括自動格納手段は、CPU等の積和演算器
以外のユニットから最初に転送されるアドレスをデコー
ドするデコーダと、演算データ項数をカウントするカウ
ンタと、演算データ項数を選択信号として前記レジスタ
の格納位置を選択し演算データを前記レジスタに格納す
るセレクタで構成することを特徴とする積和演算器。 - 【請求項3】 2つ以上のデータを格納可能な積和演算
用のレジスタを有し、前記レジスタの各々に予め積和演
算用データを転送したのち、前記レジスタの各データを
順次使用して積和演算を行なう積和演算器において、 前記積和演算用データの転送時に、積和演算器以外のユ
ニットから一つのアドレスを指定し、該アドレスが前記
レジスタのアドレスと一致すれば、前記レジスタの格納
位置を自動的に指定し、前記レジスタへの演算データの
書き込みを行なうアドレス自動設定手段を有することを
特徴とする積和演算器。 - 【請求項4】 請求項3に記載の積和演算回路におい
て、 前記アドレス自動設定手段は、CPU等の積和演算器以
外のユニットが指定するアドレスをデコードするデコー
ダと、前記デコーダによって該アドレスが前記レジスタ
のアドレスと一致する場合に演算データ項数をカウント
するカウンタと、演算データ項数を選択信号として前記
レジスタの格納位置を選択し演算データを前記レジスタ
に格納するセレクタで構成することを特徴とする積和演
算器。 - 【請求項5】 2つ以上のデータを格納可能な積和演算
用のレジスタを2組以上有し、前記レジスタの各々に予
め積和演算用データを転送したのち、前記レジスタの各
データを順次使用して積和演算を行なう積和演算器にお
いて、 前記積和演算用データの転送時に、積和演算器以外のユ
ニットから一つのアドレスと前記レジスタのポインタの
値を指定し、該アドレスとポインタ値の和によって格納
位置を指定し、前記レジスタへの演算データの書き込み
を行なうアドレス設定手段を有することを特徴とする積
和演算器。 - 【請求項6】 請求項5に記載の積和演算回路におい
て、 前記アドレス設定手段は、CPU等の積和演算器以外の
ユニットが指定するアドレスとポインタ値を加算する加
算器と、加算器の出力として得られる前記レジスタのア
ドレスをデコードするデコーダと、デコード結果を選択
信号として前記レジスタの格納位置を選択し演算データ
を前記レジスタに格納するセレクタで構成することを特
徴とする積和演算器。 - 【請求項7】 2つ以上のデータを格納可能な積和演算
用のレジスタを2組以上有し、前記レジスタの各々に予
め積和演算用データを転送したのち、前記レジスタの各
データを順次使用して積和演算を行なう積和演算器にお
いて、 前記積和演算用データの転送時に、CPU等の積和演算
器以外のユニットから一つのアドレスを指定し、該アド
レスと自動的にインクリメントするポインタの値の和に
よって格納位置を指定することを特徴とする積和演算
器。 - 【請求項8】 2つ以上のデータを格納可能な積和演算
用のレジスタを2組以上有し、前記レジスタの各々に予
め積和演算用データを転送したのち、前記レジスタの各
データを順次使用して積和演算を行なう積和演算器にお
いて、 演算結果のデータを積和演算器の演算データの一つとし
て前記レジスタに自動転送することを特徴とする積和演
算器。 - 【請求項9】 2つ以上のデータを格納可能な積和演算
用のレジスタを2組以上有し、前記レジスタの各々に予
め積和演算用データを転送したのち、前記レジスタの各
データを順次使用して積和演算を行なう積和演算器にお
いて、 演算結果のデータを積和演算器の演算データの一つとし
て前記レジスタに自動転送すると次の演算を起動するこ
とを特徴とする積和演算器。 - 【請求項10】 2つ以上のデータを格納可能な積和演
算用のレジスタを2組以上有し、前記レジスタの各々に
予め積和演算用データを転送したのち、前記レジスタの
各データを順次使用して積和演算を行なう積和演算器に
おいて、 積和演算途中の中間データを出力することを特徴とする
積和演算器。 - 【請求項11】 2つ以上のデータを格納可能な積和演
算用のレジスタを2組以上有し、前記レジスタの各々に
予め積和演算用データを転送したのち、前記レジスタの
各データを順次使用して積和演算を行なう積和演算器に
おいて、 積和演算中にオーバーフローが起きた場合に、オーバー
フローが起きた時点の項番号を格納するレジスタを有す
ることを特徴とする積和演算器。 - 【請求項12】 2つ以上のデータを格納可能な積和演
算用のレジスタを2組以上有し、前記レジスタの各々に
予め積和演算用データを転送したのち、前記レジスタの
各データを順次使用して積和演算を行なう積和演算器に
おいて、 積和演算中にオーバーフローが起きた場合に、オーバー
フローが起きた時点の項番号を格納するレジスタとオー
バーフローが起きた時点の演算途中の中間データを格納
するレジスタとを有することを特徴とする積和演算器。 - 【請求項13】 請求項12に記載の積和演算回路にお
いて、 積和演算中のオーバーフローの判定において、積和演算
器以外のユニットから有効なビット長を指定し、該有効
ビット長に対するオーバーフローを判定することを特徴
とする積和演算器。 - 【請求項14】 2つ以上のデータを格納可能な積和演
算用のレジスタを2組以上有し、前記レジスタの各々に
予め積和演算用データを転送したのち、前記レジスタの
各データを順次使用して積和演算を行なう積和演算器に
おいて、 前記レジスタへの演算データの書き込みを演算開始のト
リガとすることを特徴とする積和演算器。 - 【請求項15】 2つ以上のデータを格納可能な積和演
算用のレジスタを2組以上有し、前記レジスタの各々に
予め積和演算用データを転送したのち、前記レジスタの
各データを順次使用して積和演算を行なう積和演算器に
おいて、 前記レジスタの任意のアドレスを指定し、前記レジスタ
内の該アドレス以前の演算データに対して演算を行った
後演算を中断し、その後、演算開始のトリガを与えるこ
とにより演算を再開することを特徴とする積和演算器。 - 【請求項16】 請求項15に記載の積和演算回路にお
いて、 演算の中断後、前記レジスタへの演算データの書き込み
を演算開始のトリガとすることを特徴とする積和演算
器。 - 【請求項17】 2つ以上のデータを格納可能な積和演
算用のレジスタを2組以上有し、前記レジスタの各々に
予め積和演算用データを転送したのち、前記レジスタの
各データを順次使用して積和演算を行なうフィルタ回路
において、 前記積和演算用データの転送時に、最初に一度だけ前記
レジスタのアドレスを指定することにより、前記レジス
タの格納位置を自動的に順次指定し、前記レジスタへの
演算データの書き込みを行なうデータ一括自動格納手段
を有することを特徴とするデジタルフィルタ。 - 【請求項18】 2つ以上のデータを格納可能な積和演
算用のレジスタを2組以上有し、前記レジスタの各々に
予め積和演算用データを転送したのち、前記レジスタの
各データを順次使用して積和演算を行なうフィルタ回路
において、 前記積和演算用データの転送時に、一つのアドレスを指
定し、該アドレスが前記レジスタのアドレスと一致すれ
ば、前記レジスタへの格納位置を自動的に指定し、前記
レジスタへの演算データの書き込みを行なうアドレス自
動設定手段を有することを特徴とするデジタルフィル
タ。 - 【請求項19】 2つ以上のデータを格納可能な積和演
算用のレジスタを2組以上有し、前記レジスタの各々に
予め積和演算用データを転送したのち、前記レジスタの
各データを順次使用して積和演算を行なうフィルタ回路
において、 前記積和演算用データの転送時に、一つのアドレスと前
記レジスタのポインタの値を指定し、該アドレスとポイ
ンタ値の和によって格納位置を指定し、前記レジスタへ
の演算データの書き込みを行なうアドレス設定手段を有
することを特徴とするデジタルフィルタ。 - 【請求項20】 2個以上のデータを格納可能なレジス
タへのデータ転送において、 外部から最初に1度だけ前記レジスタのアドレスを指定
することにより、前記レジスタの格納位置を自動的に順
次指定し、前記レジスタへのデータの書き込みを行なう
ことを特徴とするレジスタの格納位置指定方式。 - 【請求項21】 2個以上のデータを格納可能なレジス
タへのデータ転送において、 外部から一つのアドレスを指定し、該アドレスが前記レ
ジスタのアドレスと一致すれば、前記レジスタの格納位
置を自動的に指定し、前記レジスタへの演算データの書
き込みを行なうことを特徴とするレジスタの格納位置指
定方式。 - 【請求項22】 2個以上のデータを格納可能なレジス
タへのデータ転送において、 外部から一つのアドレスと前記レジスタのポインタの値
を指定し、該アドレスとポインタ値の和によって格納位
置を指定し、前記レジスタへの演算データの書き込みを
行なうことを特徴とするレジスタの格納位置指定方式。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6044552A JPH07253965A (ja) | 1994-03-16 | 1994-03-16 | 積和演算器 |
| US08/904,441 US5944775A (en) | 1994-03-16 | 1997-07-31 | Sum-of-products arithmetic unit |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6044552A JPH07253965A (ja) | 1994-03-16 | 1994-03-16 | 積和演算器 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2004147053A Division JP2004280854A (ja) | 2004-05-17 | 2004-05-17 | 積和演算器 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH07253965A true JPH07253965A (ja) | 1995-10-03 |
Family
ID=12694673
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6044552A Pending JPH07253965A (ja) | 1994-03-16 | 1994-03-16 | 積和演算器 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5944775A (ja) |
| JP (1) | JPH07253965A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0948133A3 (en) * | 1998-03-30 | 2001-05-09 | Texas Instruments Incorporated | Digital filter with efficient quantization circuitry |
| JP2008102715A (ja) * | 2006-10-18 | 2008-05-01 | Toshiba Corp | 演算装置 |
| JP2015122036A (ja) * | 2013-12-25 | 2015-07-02 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
| JP2018085130A (ja) * | 2018-01-10 | 2018-05-31 | ルネサスエレクトロニクス株式会社 | データ転送装置及び半導体装置 |
Families Citing this family (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001229021A (ja) * | 2000-02-18 | 2001-08-24 | Mitsubishi Electric Corp | データ処理装置 |
| US6598062B1 (en) * | 2000-05-31 | 2003-07-22 | Northrop Grumman Corporation | Ram based processing engine for simultaneous sum of products computation |
| JP3709553B2 (ja) * | 2000-12-19 | 2005-10-26 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 演算回路および演算方法 |
| US20030163501A1 (en) * | 2001-05-30 | 2003-08-28 | Sony Corporation And Sony Electronics Inc. | Implementation to avoid overflow in IIR filter |
| US20070050438A1 (en) * | 2005-08-31 | 2007-03-01 | Microchip Technology Incorporated | Programmable digital filter |
| US7262717B2 (en) * | 2005-12-23 | 2007-08-28 | Cirrus Logic, Inc. | Sample rate conversion combined with filter |
| JP5305892B2 (ja) * | 2008-12-25 | 2013-10-02 | ラピスセミコンダクタ株式会社 | 信号処理装置及び信号処理システム |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2559285B1 (fr) * | 1984-02-03 | 1986-04-25 | Efcis | Unite arithmetique et logique avec indicateur de debordement |
| JP2600293B2 (ja) * | 1988-06-10 | 1997-04-16 | 日本電気株式会社 | オーバーフロー補正回路 |
| DE69131309T2 (de) * | 1990-08-30 | 2000-03-23 | Gold Star Co., Ltd. | Speicherdekodierungssystem für eine tragbare Datenendstation |
| US5315699A (en) * | 1991-03-20 | 1994-05-24 | Research Development Corporation Of Japan | Filtering operation method for very high-speed image processing system |
| JP3318753B2 (ja) * | 1991-12-05 | 2002-08-26 | ソニー株式会社 | 積和演算装置および積和演算方法 |
| US5457805A (en) * | 1992-06-30 | 1995-10-10 | Nec Corporation | Microcomputer enabling high speed execution of product-sum operation |
| US5420809A (en) * | 1993-11-30 | 1995-05-30 | Texas Instruments Incorporated | Method of operating a data processing apparatus to compute correlation |
-
1994
- 1994-03-16 JP JP6044552A patent/JPH07253965A/ja active Pending
-
1997
- 1997-07-31 US US08/904,441 patent/US5944775A/en not_active Expired - Lifetime
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0948133A3 (en) * | 1998-03-30 | 2001-05-09 | Texas Instruments Incorporated | Digital filter with efficient quantization circuitry |
| JP2008102715A (ja) * | 2006-10-18 | 2008-05-01 | Toshiba Corp | 演算装置 |
| JP2015122036A (ja) * | 2013-12-25 | 2015-07-02 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
| US9977753B2 (en) | 2013-12-25 | 2018-05-22 | Renesas Electronics Corporation | Semiconductor device |
| JP2018085130A (ja) * | 2018-01-10 | 2018-05-31 | ルネサスエレクトロニクス株式会社 | データ転送装置及び半導体装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| US5944775A (en) | 1999-08-31 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6049858A (en) | Modulo address generator with precomputed comparison and correction terms | |
| JPH07253965A (ja) | 積和演算器 | |
| US5898878A (en) | Data processing system having capability to interpolate processing coefficients | |
| WO1986002181A1 (en) | A digital signal processor for single cycle multiply/accumulation | |
| JPH11327875A (ja) | 演算回路 | |
| US12411607B2 (en) | Continuous memory access acceleration circuit, address shift circuit and address generation method | |
| JP2005149517A (ja) | 積和演算器 | |
| KR100188374B1 (ko) | 연산처리장치 | |
| JP2005353094A (ja) | 積和演算器 | |
| CN100550622C (zh) | 带有下采样功能的数字信号滤波装置及方法 | |
| JP2845115B2 (ja) | デジタル信号処理回路 | |
| JP2005149518A (ja) | 積和演算器 | |
| JP2005141764A (ja) | 積和演算器 | |
| US5650952A (en) | Circuit arrangement for forming the sum of products | |
| JP2006236369A (ja) | 積和演算器 | |
| JP2004280854A (ja) | 積和演算器 | |
| US6314132B1 (en) | Microprocessor structure and method for implementing digital filter operations | |
| JPH05174050A (ja) | 級数演算装置 | |
| US7412473B2 (en) | Arithmetic circuitry for averaging and methods thereof | |
| JPH0535867A (ja) | 画像処理装置 | |
| JP3441847B2 (ja) | データメモリを有するプロセッサ | |
| JP2821406B2 (ja) | 積和演算器およびこれを用いたディジタルフィルタ回路 | |
| JP3127838B2 (ja) | 信号処理方法および信号処理装置 | |
| JPH0828647B2 (ja) | メモリ装置及びそれを用いたディジタル信号処理装置 | |
| JPH1153344A (ja) | 行列演算装置及びそれを有する数値演算プロセッサ |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040316 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040517 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20041005 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20041210 |