JP2005353094A - Product-sum computing unit - Google Patents
Product-sum computing unit Download PDFInfo
- Publication number
- JP2005353094A JP2005353094A JP2005214150A JP2005214150A JP2005353094A JP 2005353094 A JP2005353094 A JP 2005353094A JP 2005214150 A JP2005214150 A JP 2005214150A JP 2005214150 A JP2005214150 A JP 2005214150A JP 2005353094 A JP2005353094 A JP 2005353094A
- Authority
- JP
- Japan
- Prior art keywords
- data
- register
- product
- address
- configuration
- 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
Images
Landscapes
- Complex Calculations (AREA)
Abstract
Description
本発明は、積和演算器に係り、さらに詳しくは、IIR(Infinite Impulse Response)フィルタ(再帰型フィルタ)あるいは、FIR(Finite Impulse Response)フィルタ(非再帰型フィルタ)として機能し、かつ、転送速度の速い、高速の積和演算器に関する。 The present invention relates to a product-sum calculator, and more specifically, functions as an IIR (Infinite Impulse Response) filter (recursive filter) or FIR (Finite Impulse Response) filter (non-recursive filter), and has a transfer rate. The present invention relates to a fast and high-speed product-sum calculator.
近年、自動車、メカトロニクス等の分野で、データをディジタルフィルタを用いてフィルタリングする要求が高まっており、積和演算器やディジタル信号処理専用のLSI(Large Scale Integration Circuit) であるDSP(Digital Signal Processor) 等が活用されている。これらの分野では、演算項数の少ないフィルタ計算が主であり、処理速度の速いIIRフィルタがしばしば使用される。 In recent years, in the fields of automobiles, mechatronics, etc., there has been an increasing demand for filtering data using a digital filter, and a DSP (Digital Signal Processor), which is a product-sum calculator and an LSI (Large Scale Integration Circuit) dedicated to digital signal processing. Etc. are utilized. In these fields, filter calculation with a small number of operation terms is the main, and IIR filters with high processing speed are often used.
図17は、FIRを使用した従来の積和演算器の説明図である。
この演算器は、RAM(Random Accress Memory)等で実現できる二つのレジスタ、すなわち、係数レジスタ800 とデータレジスタ810 と、該係数レジスタ800 の出力および該データレジスタ810 の出力を二つの入力として積を求める乗算器830 、該乗算器830 の出力を一方の入力とする加算器840 、該乗算器830 および加算器840 による積和演算途中の中間データを格納する中間データレジスタ850 、積和演算結果を格納する結果レジスタ860 、データレジスタ810 のアドレスを指定するアドレス・デコーダ870 で構成される。ここで、中間データレジスタ850 の出力が該加算器850 のもう一方の入力となり、これにより積和演算が可能となる。
FIG. 17 is an explanatory diagram of a conventional product-sum calculator using FIR.
This computing unit multiplies two registers that can be realized by a RAM (Random Accress Memory) or the like, that is, the
まず、係数レジスタ800 とデータレジスタ810 に、それぞれ係数データと入力データを予めデータバス820 を介して転送しておく。例えば、4項の積和演算ならば、4つの入力データと4つの係数データをそれぞれデータ・レジスタ810 と係数レジスタ800 に入力しておく。そして、このデータと係数を一つずつ順次掛け合わせて加算することによりFIRフィルタ演算を実行する。このとき、データレジスタ810 の書き込みアドレスは図示していない外部のCPU等がアドレス指定することにより行なう。すなわち、図示されていない外部のCPU等からアドレスをアドレス・デコーダ870 に入力し、アドレスデコーダ870 がこのアドレスをデコードしてデーダレジスタ810 の実アドレスを求め、そのアドレスにデータバス820 を介して入力データを書き込み、書き込まれたデータを読みだして乗算器830 に入力し、積和演算を起動させる。
First, coefficient data and input data are previously transferred to the
この演算器でIIRフィルタを実現するためには、結果レジスタ860 に格納された積和演算結果をデータバス820 を介してデータレジスタ810 に転送し、再び積和演算を起動する必要がある。すなわち、図示されていない外部のCPU等でアドレス指定を行ないアドレスデータ870 により実アドレスを求めてデータレジスタ810 の該アドレスに結果レジスタ860 の内容をデータバス820 を介して書き込み、さらに、データレジスタ810 の読み出しアドレスを指定し積和演算を再起動して次の積和演算を開始するのである。
In order to realize an IIR filter with this arithmetic unit, it is necessary to transfer the product-sum operation result stored in the result register 860 to the
しかしながら、従来の方法では、アドレス指定および積和演算の起動をすべて外部のCPU等が実行しなければならず、そのためのソフトウエアが必要なうえ、データ転送等の処理速度が遅いという問題があった。 However, in the conventional method, there is a problem that an external CPU or the like must execute all addressing and activation of product-sum operations, and software for that is required, and processing speed such as data transfer is slow. It was.
また、CPUがデータレジスタの書き込みアドレスを指定するため、指定のためのアドレスを格納しておく記憶域がデータ毎に必要であった。
本発明は、FIRフィルタ処理が行え、かつ、IIRフィルタの実現に適し、転送速度の速い、高速の積和演算回路を提供することを目的とする。
Further, since the CPU designates the write address of the data register, a storage area for storing the designation address is required for each data.
An object of the present invention is to provide a high-speed multiply-accumulate circuit that can perform FIR filter processing, is suitable for realizing an IIR filter, and has a high transfer speed.
本発明のブロック図を図1乃至図6に示す。本発明は、積和演算の係数を複数項分格納する係数レジスタ100 と、積和演算のデータを複数格納するデータレジスタ110 、データバス120 、係数レジスタ100 内の係数とデータレジスタ110 内のデータの積和演算を行なう乗算器130 と加算器140 、積和演算の中間データを格納する中間データレジスタ150 、積和演算結果を格納する結果レジスタ160 、アドレスバス170 を前提とする。ここで、データバス120 およびアドレスバス170 は図示されていないCPUに接続されており、データおよびアドレスの入出力に使用されることを前提とする。
A block diagram of the present invention is shown in FIGS. The present invention relates to a
係数レジスタ100 はデータバス120 と接続され、該係数レジスタ120 の出力は乗算器130 の一方の入力となり、データレジスタ110 の出力が乗算器130 のもう一方の入力となる。乗算器130 の出力は加算器140 の一方の入力となり、中間データレジスタ150 の出力がもう一方の入力となる。加算器140 の出力は中間データレジスタ150 および結果レジスタ160 の入力となり、該結果レジスタ160 はデータバス120 に接続されている。
The
図1は本発明の第1の構成のブロック図である。
データ一括自動格納手段180 を有する。データ一括自動格納手段180 は、図示されていない外部のCPUからのデータレジスタ110 のアドレスを最初に一度アドレスバス170 を介して受けることにより、データレジスタ110 の格納位置を自動的に順次指定する。これにより、初めの一回だけ外部のCPUからアドレスデータを入力しさえすれば、データバス120 を介して送られてくる入力データをデータレジスタ110 に順次書き込む処理、およびデータレジスタ110 からデータを順次読み出して積和演算を行なう処理が可能になる。
FIG. 1 is a block diagram of a first configuration of the present invention.
Data batch automatic storage means 180 is provided. The data batch automatic storage means 180 automatically and sequentially designates the storage position of the
図2は本発明の第2の構成のブロック図である。
第2の構成は、第1の構成のデータ一括自動格納手段180 に代えてアドレス自動設定手段200 を有する。
FIG. 2 is a block diagram of the second configuration of the present invention.
The second configuration has automatic address setting means 200 instead of the data batch automatic storage means 180 of the first configuration.
アドレス自動設定手段200 は、図示されていない外部のCPUからのアドレスバス170 を介してデータレジスタ110 のアドレスを受け取り、その後は最初のアドレスと同一のダミー・アドレスをアドレスバス170 を介して受けることにより、データレジスタ110 の格納位置を自動的に指定し、入力データの書き込みおよび読み出しを行なう。
The address automatic setting means 200 receives the address of the
従来、図17に示したように、データレジスタ110 にデータを一つ格納するたびにその都度、外部のCPUで指定したアドレスをデコードして実アドレスを求めていた。しかし、この構成のデータ一括自動格納手段180 により、データレジスタ110 のアドレスをダミーアドレスとしてデータ入力の都度入力すれば自動的にデータレジスタ110 の格納位置を指定することが可能になる。これにより、CPU側でデータレジスタ110 の一つ一つの格納位置のアドレス・データを記憶させておく必要もなくなる。
Conventionally, as shown in FIG. 17, every time one piece of data is stored in the
図3は本発明の第3の構成のブロック図である。
第3の構成は、第1の構成のデータ一括自動格納手段180 に代えてアドレス設定手段300 を有する。
FIG. 3 is a block diagram of the third configuration of the present invention.
The third configuration has address setting means 300 in place of the data batch automatic storage means 180 of the first configuration.
アドレス設定手段300 は、図示されていない外部のCPUから最初の一度だけアドレスデータをアドレスバス170 を介して入力し、また、データバス120 を介してデータ入力の都度ポインタ値を入力すれば、データレジスタ110 の格納位置を指定する。
The address setting means 300 receives the address data from the external CPU (not shown) only once for the first time via the
これにより、従来、その都度アドレスデータをアドレスバス170 を介して入力していた手間が省ける。
図4は本発明の第4の構成のブロック図である。
As a result, it is possible to save the trouble of inputting address data through the
FIG. 4 is a block diagram of the fourth configuration of the present invention.
第4の構成は、第3の構成に加えて、中間データ再帰手段400 を有する。
中間データ再帰手段400 は、乗算器130 および加算器140 による積和演算の中間結果をデータバス120 を介することなくデータレジスタ110 に戻す。
The fourth configuration has intermediate data recursion means 400 in addition to the third configuration.
The intermediate data recursive means 400 returns the intermediate result of the product-sum operation by the
これにより、IIRのような再帰型のフィルタを構成する場合に、簡単に演算途中結果をデータレジスタ110 に格納し、再度積和演算を行なうことが可能になる。このとき、中間結果を格納するデータレジスタ110 のアドレスは第3の構成のアドレス設定手段300 により発生する。
As a result, when configuring a recursive filter such as IIR, it is possible to easily store the result of the operation in the
第4の構成のアドレス設定手段300 は、第1の構成のデータ一括自動格納手段180 あるいは第2の構成のアドレス自動設定手段200 に置き換えることもできる。
図5は本発明の第5の構成のブロック図である。
The fourth configuration address setting means 300 can be replaced by the first configuration data batch automatic storage means 180 or the second configuration address automatic setting means 200.
FIG. 5 is a block diagram of the fifth configuration of the present invention.
第5の構成は、第4の構成に加えて、中間データ読み出し手段500 を有する。 中間データ読み出し手段500 は、乗算器130 および加算器140 による積和演算の中間結果をデータバス120 に出力する。これにより、図示されていないCPU等は、データバス120 を介して積和演算途中の中間データを読みだすことが可能になる。
The fifth configuration includes intermediate data reading means 500 in addition to the fourth configuration. Intermediate data reading means 500 outputs an intermediate result of the product-sum operation by
第5の構成のアドレス設定手段300 は、第1の構成のデータ一括自動格納手段180 あるいは第2の構成のアドレス自動設定手段200 に置き換えることもできる。
図6は本発明の第6の構成のブロック図である。
The fifth configuration address setting means 300 can be replaced with the first configuration data batch automatic storage means 180 or the second configuration address automatic setting means 200.
FIG. 6 is a block diagram of the sixth configuration of the present invention.
第6の構成は、第5の構成に加えて、オーバフロー通知手段600 を有する。
オーバーフロー通知手段600 は、演算途中にオーバーフローが起きた場合に、該オーバーフローが発生したときに演算していた積和の項数番号を格納し、図示していない外部のCPUに通知する。
The sixth configuration has an overflow notification means 600 in addition to the fifth configuration.
When an overflow occurs during the calculation, the overflow notification means 600 stores the product sum term number calculated when the overflow occurs, and notifies an external CPU (not shown).
第6の構成のアドレス設定手段300 は、第1の構成のデータ一括自動格納手段180 あるいは第2の構成のアドレス自動設定手段200 に置き換えることもできる。
次に、図1乃至図6に示した第1乃至第6の構成のブロック図の作用を説明する。
The address setting means 300 of the sixth configuration can be replaced with the data batch automatic storage means 180 of the first configuration or the address automatic setting means 200 of the second configuration.
Next, the operation of the block diagrams of the first to sixth configurations shown in FIGS. 1 to 6 will be described.
まず、第1の構成(図1)の作用を説明する。
積和演算に先立ち、係数レジスタ100 およびデータレジスタ110 に係数および入力データを格納する。データレジスタ110 にデータを格納する場合、まず、データバス120 およびアドレスバス170 に接続され、図示されていないCPU等によりデータレジスタ110 のアドレスをアドレスバス170 によりデータ一括自動格納手段180 に入力する。また、データバス120 を介して格納データをデータ一括自動格納手段180 に入力する。
First, the operation of the first configuration (FIG. 1) will be described.
Prior to the multiply-accumulate operation, the coefficient and input data are stored in the
データ一括自動格納手段180 は、入力されたアドレスがデータレジスタ110 のアドレスであればデータレジスタ110 の先頭実アドレスを指定し、該先頭実アドレスに格納データを格納する。アドレスがデータレジスタ110 のアドレスでなければ無視する。 If the input address is the address of the data register 110, the data batch automatic storage means 180 designates the head real address of the data register 110 and stores the stored data at the head real address. If the address is not the address of the data register 110, it is ignored.
最初のアドレス入力によりデータレジスタ110 の先頭アドレスが指定され、その後はデータバス120 からデータが入力されるごとに順次データレジスタ110 の次のアドレスにデータを格納していく。 The start address of the data register 110 is designated by the first address input, and thereafter, the data is sequentially stored at the next address of the data register 110 each time data is input from the data bus 120.
第1の構成は、図示していないCPUからのアドレス指定を1回すればよい。従来の方式よりもデータ転送、アドレス指定にかかる時間が短くでき、積和演算処理を簡単に、また高速に実行することが可能になる。 In the first configuration, address designation from a CPU (not shown) may be performed once. The time required for data transfer and address designation can be shortened compared to the conventional method, and the product-sum operation processing can be executed easily and at high speed.
係数レジスタ100 には、図示されていないCPUから係数データをデータバスを介して入力する。係数データは入力データのように頻繁に書き換える訳ではないので、従来通り該CPUによってアドレスを指定し、データバスを介して係数データを書き込めばよいが、データレジスタ110 の場合と同様にデータ一括自動格納手段180 を係数レジスタ100 に接続して、データレジスタ110 と同様のアドレス指定を行ってもよい。
Coefficient data is input to the coefficient register 100 from a CPU (not shown) via a data bus. Since coefficient data is not rewritten as often as input data, it is sufficient to specify the address by the CPU and write the coefficient data via the data bus as before. The
係数レジスタ100 およびデータレジスタ110 に係数および入力データが格納されたら、乗算器130 および加算器140 により積和演算を行なう。この場合、積和演算に最初に使用するデータが乗算器130 に入力される。係数レジスタ100 内の係数が乗算器130 のもう一方の入力となる。乗算器130 が積を算出し、これを加算器140 に入力する。最初加算器140 のもう一方の入力値は0に設定しておき和を求める。加算器140 の出力は中間データレジスタ150 に格納され、中間データレジスタ150 の出力は加算器140 の入力となる。これにより、中間結果に次の積が足しこまれていき、積和演算が実行される。積和演算の結果は結果レジスタ160 に格納され、図示されていないCPU等から読みだすことができる。
When coefficients and input data are stored in the
次に、第2の構成(図2)の作用を説明する。
第2の構成と第1の構成における相違点は、第2の構成のアドレス自動設定手段200 によるデータレジスタ110 のアドレス設定方法である。それ以外は第1の構成の作用と同様である。
Next, the operation of the second configuration (FIG. 2) will be described.
The difference between the second configuration and the first configuration is the address setting method of the data register 110 by the address automatic setting means 200 of the second configuration. Otherwise, the operation is the same as that of the first configuration.
第1の構成の場合は、データレジスタ110 にデータを最初に格納する際に1回だけアドレスバス170 を介してデータレジスタ110 のアドレスをデータ一括自動格納手段180 に入力した。これに対して第2の構成の場合は、データレジスタ110 にデータを入力するごとに、図示していないCPUからアドレスバス170 を介してデータレジスタ110 のアドレスをアドレス自動設定手段200 に入力する。この際、該アドレスはデータレジスタ110 の一つ一つの格納領域のアドレスである必要はなく、最初に入力したデータレジスタ110 のアドレスと同一でよい(データレジスタ110 のアドレスであれば同じアドレスでよいのでダミーアドレスと呼ぶ)。
In the case of the first configuration, when data is first stored in the data register 110, the address of the data register 110 is inputted to the data batch automatic storage means 180 via the
アドレス自動設定手段200 は、入力されたアドレスがデータレジスタ110 のアドレスであれば最初は先頭の実アドレスを、それ以後は順次格納されるべき実アドレスを指定し、データバス120 から入力される入力データを順次格納していく。アドレスバス170 を介してアドレス自動設定手段200 に入力されたアドレスがデータレジスタ110 のアドレスでなければ、アドレス自動設定手段200 は無視する。
If the input address is the address of the data register 110, the automatic address setting means 200 first designates the first real address, and thereafter designates the real address to be stored sequentially, and the input inputted from the data bus 120. Data is stored sequentially. If the address input to the address automatic setting means 200 via the
これによって、従来のように実際にデータレジスタ110 に格納するのに使用するアドレスを保持しておく必要はなく、メモリ領域が削減できる。また、最初の格納アドレス以外は従来のように一々入力されたアドレスをデコードする必要もなく、処理速度も速くなる。 As a result, it is not necessary to hold an address used for actual storage in the data register 110 as in the prior art, and the memory area can be reduced. Further, it is not necessary to decode the input addresses one by one as in the prior art except for the first storage address, and the processing speed is increased.
次に、第3の構成(図3)の作用を説明する。
第3の構成と第1、第2の構成における相違点は、アドレス設定手段300 によるデータレジスタ110 のアドレス設定方法である。それ以外は第1および第2の構成の作用と同様である。
Next, the operation of the third configuration (FIG. 3) will be described.
The difference between the third configuration and the first and second configurations is the address setting method of the data register 110 by the address setting means 300. Other than that, the operation is the same as that of the first and second configurations.
第3の構成では、図示していないCPUにより、データレジスタ110 に最初に、例えばデータを格納する先頭アドレスをアドレスバス170 を介して、また、データバス120 を介してデータレジスタ110 のポインタ値と入力データを対にして入力する。すなわち、最初のデータの場合はポインタ値0と入力データを、次にポインタ値1と入力データを、というように順次入力する。
In the third configuration, a CPU (not shown) first stores, for example, the head address for storing data in the data register 110 via the
アドレス設定手段300 は、該先頭アドレスからデータレジスタ110 に格納する先頭実アドレスを指定し、ポインタ値によって当該入力データの格納アドレスを指定し、格納する。 The address setting means 300 designates the head real address stored in the data register 110 from the head address, designates the storage address of the input data by the pointer value, and stores it.
第3の構成は、第1および第2の構成のようにデータレジスタ110 のポインタは自動生成できない。しかしながら、アドレスの指定を最初のデータ転送のときのみ行えばよいので、従来の方式よりもアドレス転送処理が少なく、処理速度が向上する。よって、第3の構成は、第1および第2の構成よりもハードウエア・コストを抑えた普及版向けの構成と言える。 In the third configuration, the pointer of the data register 110 cannot be automatically generated as in the first and second configurations. However, since it is only necessary to specify the address at the time of the first data transfer, the address transfer processing is less than the conventional method, and the processing speed is improved. Therefore, it can be said that the third configuration is a configuration for a popular version with reduced hardware cost compared to the first and second configurations.
次に、第4の構成(図4)の作用を説明する。
第4の構成は、第3の構成に中間データ再帰手段400 を加えた構成であり、データレジスタ110 のアドレス指定は第3の構成の作用と同様で、前述の作用によりデータレジスタ110 および係数レジスタ100 にそれぞれデータおよび係数が格納され、積和演算が起動される。
Next, the operation of the fourth configuration (FIG. 4) will be described.
The fourth configuration is a configuration in which intermediate data recursion means 400 is added to the third configuration, and the addressing of the data register 110 is the same as the operation of the third configuration. Data and coefficients are stored in 100, and the product-sum operation is started.
乗算器130 により係数レジスタ100 およびデータレジスタ110 のそれぞれ先頭の係数とデータの積が算出され、加算器140 に入力される。最初、加算器140 ののもう一方の入力値は0に設定され、和が算出され、
出力される。該和は中間データレジスタ150 に格納される。最初の積和が算出され、中間データレジスタ150 に格納されると、次の係数とデータの積和が読みだされて乗算器130 により積が算出される。該積は加算器140 の入力となり、中間データレジスタ150 に先に格納された該和をもう一方の入力として和を求め、再び中間データレジスタ150 に格納される。この処理が繰り返されることにより、積和が求まる。
The
Is output. The sum is stored in the intermediate data register 150. When the first product sum is calculated and stored in the intermediate data register 150, the product sum of the next coefficient and data is read and the product is calculated by the
第4の構成では、中間データ再帰手段400 が該加算器140 の出力である積和の中間データを、図示していないCPUからの指示によりデータレジスタ110 に戻す処理を行なう。該中間データは図示していないCPUから指定されたデータレジスタ110 のアドレスに格納される。これにより、積和の中間データを使用して再帰的な積和演算が可能となる。この第4の構成はIIRフィルタの構成に適している。
In the fourth configuration, the intermediate data recursive means 400 performs processing for returning the product-sum intermediate data output from the
第5の構成(図5)は、第4の構成にさらに中間データ読み出し手段500 を加えた構成である。よって、第5の構成の作用は、前述の第4の構成の作用に加えて、加算器140 の出力である積和の中間データを、図示していないCPUからの指示によりデータバス120 に出力し、該CPUに該中間データを転送する。
The fifth configuration (FIG. 5) is a configuration in which intermediate data reading means 500 is further added to the fourth configuration. Therefore, in addition to the operation of the above-described fourth configuration, the operation of the fifth configuration outputs the product-sum intermediate data output from the
これにより、任意の時点で、図示していないCPUの指示により、積和の中間データを読みだすことが可能になる。
最後に、第6の構成(図6)は、第5の構成にさらに加えてオーバーフロー通知手段600 を有するものである。よって、データレジスタ110 へのデータ書き込みや積和演算処理は第5の構成と同様に行われる。
As a result, intermediate product-sum data can be read at an arbitrary time according to an instruction from a CPU (not shown).
Finally, the sixth configuration (FIG. 6) has an overflow notification means 600 in addition to the fifth configuration. Therefore, data writing to the data register 110 and product-sum operation processing are performed in the same manner as in the fifth configuration.
積和演算では乗算器130 および加算器140 で演算できるビット数に限りがあり、積和によりそのビット数をオーバーフローしてしまうことがある。従来はオーバフローを起こしてもそのまま処理が継続するだけであったが、第6の構成のオーバフロー通知手段600 は、乗算器130 および加算器140 により積和が算出され中間データが求まるごとにオーバーフローが起きていないか否かを判断し、オーバーフローが起きた場合には、オーバーフローを起こした中間データが何項目までの積和であるかを示すために、オーバーフローを起こした項数をデータバス120 に出力する。
In the product-sum operation, the number of bits that can be calculated by the
図示されていないCPUはこの項数を読みだすことにより、オーバーフローが起きないように係数等を修正するデバグ処理を容易に行なうことが可能になる。 A CPU (not shown) can easily perform a debugging process for correcting coefficients and the like so that overflow does not occur by reading the number of terms.
本発明によれば、第1および第2の構成では、積和演算データを格納するデータレジスタの格納アドレスを外部から指定することなく、積和演算回路内でアドレス生成できるようになり、従来のように、アドレスデータを外部のメモリ領域等に格納しておいて積和演算回路に転送する必要がなくなり、転送時間、アドレス生成時間が短縮され、処理速度が向上する。また、第3の構成では、演算データを任意のタイミングでデータレジスタに格納することが可能になる。さらに、第4の構成では、積和演算の途中データをデータレジスタ110 に戻すことにより再帰的な積和演算がデータバスを介することなく実現でき、データ転送処理時間を短縮できる。また、第5の構成では、積和演算の途中データをデータバスに出力することにより、外部での途中データの処理が容易に行えるようになる。また、第6の構成では、積和演算中のオーバーフローを通知可能となり、係数の再設定等のデバグ効率が向上する。 According to the present invention, in the first and second configurations, it is possible to generate an address in the product-sum operation circuit without specifying the storage address of the data register for storing the product-sum operation data from the outside. Thus, there is no need to store the address data in an external memory area or the like and transfer it to the product-sum operation circuit, the transfer time and address generation time are shortened, and the processing speed is improved. In the third configuration, the operation data can be stored in the data register at an arbitrary timing. Further, in the fourth configuration, by returning the intermediate data of the product-sum operation to the data register 110, a recursive product-sum operation can be realized without going through the data bus, and the data transfer processing time can be shortened. Further, in the fifth configuration, by outputting the intermediate data of the product-sum operation to the data bus, the intermediate data can be easily processed outside. In the sixth configuration, it is possible to notify an overflow during a product-sum operation, and debugging efficiency such as resetting of coefficients is improved.
以上のように、本発明により、FIRフィルタだけでなくIIRフィルタに適し、アドレス生成やデータ転送を高速に行える積和演算回路が実現できる。 As described above, according to the present invention, it is possible to realize a product-sum operation circuit suitable for not only an FIR filter but also an IIR filter and capable of generating addresses and transferring data at high speed.
図7は、本発明の一実施例のシステム構成図である。前述した本発明の第1乃至第6のいずれも、このシステム構成で実現できる。
まず、CPU700 が存在する。このCPU700 は第1乃至第6の構成の説明において図示していないCPUと記述していたものにあたる。CPU700 はアドレスバス710 およびデータバス720 を有している。また、アドレスバス710 およびデータバス720 にはメモリ730 と積和演算回路740 が接続されている。
FIG. 7 is a system configuration diagram of an embodiment of the present invention. Any of the first to sixth aspects of the present invention described above can be realized with this system configuration.
First, the
メモリ730 にはCPU700 の制御ソフトウエアや、積和演算回路740 が使用する入力データや係数、アドレスデータ、ポインタ値等が格納されている。
一方、積和演算回路740 は、第1乃至第6の構成を実現した積和演算回路が入る。
The
On the other hand, the product-
尚、本発明は図7の構成に必ずしも限定されるものではなく、例えば、CPUの代わりにシーケンサを備えたDSPにも同様に適用できる。
以下、第1乃至第6の構成について、それぞれの実施例を説明する。
Note that the present invention is not necessarily limited to the configuration shown in FIG. 7, and can be similarly applied to, for example, a DSP including a sequencer instead of a CPU.
Examples of the first to sixth configurations will be described below.
どの構成の実施例も、複数項分の係数データを格納する係数レジスタ100 、複数項分の入力データを格納するデータレジスタ110 、積和演算処理を行なうための乗算器130 と加算器140 、積和演算途中の中間データを格納する中間データレジスタ150 、積和演算結果を格納する結果レジスタ160 を前提とする。
In any embodiment, a
係数レジスタ100 およびデータレジスタ110 の出力はそれぞれ乗算器130 の2つの入力となり、係数レジスタ100 はデータバス120 にも接続され、図7に図示され、図8には図示されていないCPU700 によってデータバス120 を介して係数データの書き込み/読み出しを行える。乗算器130 の出力は加算器140 の入力となり、加算器140 のもう一つの入力には中間データレジスタ150 の出力が接続されている。加算器140 の出力は中間データレジスタ150 および結果レジスタ160 の入力となる。結果レジスタ160 はデータバス120 に接続され、該CPU700 によって積和演算結果を結果レジスタ160 から読み出す等の処理が可能である。 図8は第1の構成の積和演算回路についての一実施例の構成図である。
The outputs of the
図1で説明した第1の構成のデータ一括自動格納手段180 は、デコーダ800 と、カウンタ810 、セレクタ820 で構成される。デコーダ800 はアドレスバス170 とカウンタ810 に接続され、カウンタ810 はデコーダ800 とセレクタ820 に接続される。セレクタ820 はカウンタ及びデータバス120 、データレジスタ110 に接続される。
The data batch automatic storage means 180 of the first configuration described in FIG. 1 includes a
該CPU700 の指示によりアドレスデータがアドレスバス170 を介してデコーダ800 に入力される。デコーダ800 は入力されたアドレスデータをデコードする。すなわち、入力されたアドレスがデータレジスタ110 のアドレスか否かを判定し、データレジスタ110 のアドレスでなければ無視する。一方、データレジスタ110 のアドレスであればカウンタ810 にクリア信号を入力する。
Address data is input to the
カウンタ810 は、データレジスタ110 の格納位置に対応する項数番号をカウントする。例えば同図の場合、データレジスタ110 には4項分の入力データが格納できるので、カウンタ810 は0〜3をカウントする。8項の積和演算であれば0〜7、32項の積和演算であれば0〜31をカウントするのは言うまでもない。カウンタ810 はサイクリックなカウンタ回路で実現できる。
The
カウンタ810 はデコーダ800 からのクリア信号を受けてカウントを0にクリアする。すなわち、外部のCPU700 によってデータレジスタ110 のアドレスがアドレスバス170 を介してデコーダ800 に入力されると、カウンタ810 が0にクリアされる。
The
カウンタ810 の出力はセレクタ820 に入力され、選択信号となる。すなわち、カウンタ出力が0ならばデータレジスタ110 の先頭アドレスに、カウンタ出力が1ならばデータレジスタ110 の2番目の格納場所にデータバス120 を介してセレクタ820 に入力された入力データを格納する。カウンタ810 はデータレジスタ110 へのデータ格納が完了するとインクリメントする。
The output of the
この構成では、CPU700 は、最初のデータ格納時にのみアドレスデータと入力データの対を積和演算回路740 に転送し、それ以降はデータのみをデータバス120 を介して積和演算回路740 に転送すればよい。また、本構成のデコーダ800 は、入力されるアドレスがデータレジスタ110 のアドレスか否かを判定し、データレジスタ110 のアドレスであればクリア信号をカウンタ810 に出力する簡単な構成のデコーダである。
In this configuration, the
以上のように、この構成は、データレジスタ110 のアドレスを最初に一回指定すれば、その後はデータを順次自動的にデータレジスタ110 に格納することが可能であり、複数のデータを一括して自動的にデータレジスタ110 に格納できる。 また、積和演算のためのデータの読み出しにも適する構成である。 As described above, in this configuration, if the address of the data register 110 is first specified once, then the data can be automatically and sequentially stored in the data register 110. Data can be automatically stored in the data register 110. The configuration is also suitable for reading data for product-sum operation.
すなわち、積和演算の起動時に1回データレジスタ110 のアドレスを指定して読み出し乗算器130 や加算器140 等を起動するようにすれば、データレジスタ110 の値を自動的に順次読み出して乗算器130 に出力することが可能である。このときは、カウンタ810 を積和演算1回が完了するごとにインクリメントすればよい。
In other words, if the address of the data register 110 is designated once at the start of the multiply-accumulate operation and the
同図では、係数レジスタ100 の書き込み/読み出しはCPU700 が行ない自動化されていないが、データレジスタ110 と同様の回路を付加して、係数の一括自動書き込み/読み出しを行わせてもよい。
In the drawing, the writing / reading of the
図9は、第2の構成(図2)の実施例のシステム構成図である。
第2の構成のアドレス自動設定手段200 は、第1の構成(図8)と同様に、デコーダ900 とカウンタ910 、セレクタ920 で構成する。デコーダ900 はアドレスバス170 とカウンタ910 に、カウンタ910 はデコーダ900 とセレクタ920 に、セレクタ920 はデータバス120 とカウンタ910 、データレジスタ110 に接続される。この接続も第1の構成と同じである。
FIG. 9 is a system configuration diagram of an embodiment of the second configuration (FIG. 2).
Similarly to the first configuration (FIG. 8), the address automatic setting means 200 of the second configuration includes a
第1の構成(図8)との違いは、CPU700 が常にアドレスと入力データを対にして入力する点である。アドレスはアドレスバス170 を介してデコーダ900 に、入力データはデータバス120 を介してセレクタ920 に入力される。但し、該アドレスからデータレジスタ110 の実アドレスを求めるわけではないので、該アドレスはデータレジスタ110 を示すアドレスであれば何でもよい。
The difference from the first configuration (FIG. 8) is that the
デコーダ900 はアドレスバス170 から入力される該アドレスをデコードし、該アドレスがデータレジスタ110 を示すアドレスか否かを判断する。該アドレスがデータレジスタ110 を示すアドレスであればカウンタ910 をインクリメントする信号をカウンタ910 に出力する。一方、該アドレスが他のレジスタ等を示す異なるアドレスであれば、該アドレスとデータの対は無視する。
The
カウンタ910 は、デコーダ900 からのインクリメント信号を受けてインクリメントし、カウンタ値をセレクタ920 に出力する。カウンタ910 の値は、最初のアドレス/データ入力の時点で0にクリアすればよい。
The
セレクタ920 はカウンタ910 からの入力(カウンタ値)を選択信号とし、データレジスタ110 の対応する格納位置に、データバス120 から入力されたデータを格納する。
以上のように、第2の構成によれば、データレジスタ110 のアドレスが指定されたデータだけをデータレジスタ110 に順次格納することができる。従来の方式では、アドレスバス170 から入力されるアドレスをデコードして一々データレジスタ110 の実アドレスを求めていたが、本構成の場合は、カウンタ910 をインクリメントしてデータレジスタ110 の格納位置を求めるので、デコーダ900 はデータレジスタ110 を示すアドレスか否かを判定する機能だけを持っていればよい。 図10は、第3の構成(図3)の実施例のシステム構成図である。
The
As described above, according to the second configuration, only data for which the address of the data register 110 is designated can be sequentially stored in the data register 110. In the conventional method, the address input from the
第3の構成のアドレス設定手段300 は、ポインタレジスタ1000、加算器1010、データ1020、セレクタ1030からなる。ポインタレジスタ1000はデータバス120 と加算器1010の一方の入力と接続され、加算器1010のもう一方の入力はアドレスバス170 と接続される。加算器1010の出力がデコーダ1020に接続され、デコーダ1020の出力はセレクタ1030に接続される。セレクタ1030はデータバス120 およびデコーダ1020、データレジスタ110 と接続される。
The address setting means 300 having the third configuration includes a
第3の構成は、第1および第2の構成のようにデータレジスタ110 の格納位置の選択信号(ポインタ)を内部で自動的に生成するわけではない。すなわち、CPU700 が、データレジスタ110 のアドレスと、データレジスタ110 中での格納位置を示すポインタ値をデータレジスタ110 にデータを格納するごとに指定する。アドレスとしては例えば先頭アドレスを指定すればよい。あるいはまた、データアドレス110 に対応するダミーアドレスを指定してもよい。
The third configuration does not automatically generate a selection signal (pointer) for the storage position of the data register 110 internally as in the first and second configurations. That is, the
該アドレスはアドレスバス170 を介して加算器1010に、ポインタ値はデータバス120 を介してポインタレジスタ1000に格納される。ポインタ値は0〜(データレジスタ110 の格納個数−1)の値をとり、その値はCPU700 が制御する。
The address is stored in the
該アドレスおよびポインタレジスタ1000の出力であるポインタ値が加算器1010に入力され、加算される。加算器1010の出力はデコーダ1020に入力され、アドレスのデコードを行なう。デコーダ1020の出力はセレクタ1030に入力され、セレクタ1030の選択信号となる。デコーダ1020からの選択信号により、データレジスタ110 中での格納位置が決まり、データバス120 を介してセレクタ1030に入力された入力データを該格納位置に格納する。
The address and the pointer value output from the
以上のように、本構成は、CPU700 がデータレジスタ110 の先頭アドレスとポインタ値を指定する必要があり、第1、第2の構成に比べればCPU700 への依存度は大きい。しかし、CPU700 は従来方式のようにデータレジスタ110 の個々の格納位置のアドレスを持つ必要はなく、先頭アドレスとポインタ値だけをメモリ領域に格納しておき、積和演算回路に対して指定してやればよい。また、第1、第2の構成と異なり、CPU700 がデータレジスタ110 内の格納位置を先頭アドレスとポインタ値を使用して指定することが可能である。
As described above, this configuration requires the
第3の構成は、加算器1010がなしでも実現できる。すなわち、アドレスバス170 から入力されるアドレスをデコーダ1020でデコードしたうえセレクタ1030に入力するとともに、データバス120 を介してポインタレジスタ1000に格納されたポインタ値もセレクタ1030に入力する。そして、セレクタ1030がデコード済みのアドレス、例えばデータレジスタ110 の先頭アドレスと、ポインタ値の両方を選択信号としてデータレジスタ110 の格納位置を指定する。
The third configuration can be realized without the
図11は、第4の構成(図4)の実施例のシステム構成図である。
第4の構成は、第3の構成に中間データ再帰手段400 を加えたものであり、中間データ再帰手段400 以外は第3の構成と同様である。
FIG. 11 is a system configuration diagram of an embodiment of the fourth configuration (FIG. 4).
The fourth configuration is obtained by adding the intermediate data recursive means 400 to the third configuration, and is the same as the third configuration except for the intermediate data recursive means 400.
中間データ再帰手段400 は積和演算の加算器140 の出力をデータレジスタ110 に戻すデータ線1100で実現する。データレジスタ110 への格納アドレスはCPU700 で直接指定してもよいし、第3の構成の実施例(図10)で説明したアドレス指定方法で指定してもよい。
The intermediate data recursive means 400 is realized by a
このように、加算器140 の出力をデータレジスタ110 に戻すことにより、積和演算の途中データを使用して再び積和演算を行なう再帰型の処理が可能となり、IIRフィルタを実現できる。
In this way, by returning the output of the
図12は、第5の構成(図5)の実施例のシステム構成図である。
第5の構成は、第4の構成に中間データ読み出し手段500 を加えた構成であり、中間データ読み出し手段500 以外は第4の構成と同様である。
FIG. 12 is a system configuration diagram of an embodiment of the fifth configuration (FIG. 5).
The fifth configuration is a configuration obtained by adding intermediate data reading means 500 to the fourth configuration, and is the same as the fourth configuration except for the intermediate data reading means 500.
中間データ読み出し手段500 は、中間データレジスタ150 の出力をデータバス120 に接続するデータ線1200で実現できる。CPU700 の命令により中間データレジスタ150 に格納されている積和演算の途中データをデータバスを介して読み出す。
The intermediate data reading means 500 can be realized by a
読み出したデータはCPU700 で処理することもできるし、再びデータレジスタ110 に格納することも可能である。データレジスタ110 に格納する場合、ポインタレジスタ1000、加算器1010、デコーダ1020、セレクタ1030を使用した第3の構成のアドレス指定方法でデータレジスタ110 のアドレスを指定し格納することができる。また、第1の構成のアドレス指定方法である、カウンタを自動的にインクリメントしてデータレジスタ110 のアドレスを指定する方法により、中間データを次々にデータレジスタ110 に格納し、再び積和演算を行なうこともできる。
The read data can be processed by the
図13は、第6の構成(図6)の実施例のシステム構成図である。
第6の構成は、第5の構成にオーバーフロー通知手段600 を加えた構成であり、オーバーフロー通知手段600 以外は第5の構成と同様である。
FIG. 13 is a system configuration diagram of an embodiment of the sixth configuration (FIG. 6).
The sixth configuration is a configuration in which an
オーバーフロー通知手段600 は、中間データレジスタ150 の出力を入力とするオーバーフロー項数レジスタ1300で実現する。オーバーフロー項数レジスタ1300の出力はデータバス120 に接続される。
The overflow notification means 600 is realized by an
オーバーフロー項数レジスタ1300には、積和演算途中でオーバーフローが生じた場合に、オーバーフローが生じた積和演算の項数が格納される。オーバーフロー項数レジスタ1300に格納された項数や中間データレジスタ150 のオーバーフローした中間データをデータ線1200を使用して読みだすことにより、オーバーフローしないように係数データを作り変える等のデバグ処理が容易に行えるようになる。
The overflow
図14は、第6の構成(図6、図13)の実施例のより詳しいシステム構成図である。
同図では、例えば、4項の積和演算を想定し、係数レジスタ100 には4項分の係数データ(A0 、A1 、A2 、A3 )が、データレジスタ110 には4項分の入力データ(X0 、X1 、X2 、X3 )が格納できるようになっている。この項数は、2以上ならいくらでも良い。
FIG. 14 is a more detailed system configuration diagram of the embodiment of the sixth configuration (FIGS. 6 and 13).
In the figure, for example, a product-sum operation of 4 terms is assumed, coefficient data (A0, A1, A2, A3) for 4 terms is stored in the
本実施例では、図13のシステム構成に加えて、中間データレジスタ150 の出力を入力としオーバーフローしたデータを格納し、その出力がデータバス120 に接続されたオーバーフローデータレジスタ1400と、データバス120 に接続されCPU700 が転送するポインタ値を格納する二つのレジスタ、ポインタレジスタ2 1410とポインタレジスタ3 1420と、データレジスタ110 のデータ出力を入力データとし、ポインタレジスタ3 1420のポインタ値を選択信号とするセレクタ1430で実現する。ポインタレジスタ2 1410のポインタ値はもう一方のセレクタ1030の選択信号となる。
In this embodiment, in addition to the system configuration of FIG. 13, the output of the intermediate data register 150 is used as an input to store the overflowed data, and the output is stored in the overflow data register 1400 connected to the data bus 120 and the data bus 120. Two registers that are connected to store pointer values transferred by the
今、係数レジスタ100 には係数データ(A0 、A1 、A2 、A3 )が、データレジスタ110 には入力データ(X0 、X1 、X2 、X3 )が格納されたものとし、積和演算の手順を順を追って説明する。
Assume that coefficient data (A0, A1, A2, A3) is stored in the
この積和演算器では、乗算器130 で係数データ×入力データの演算を各項のデータについて行ない、加算器140 で積の値を順次加算していく。すなわち、A0 ×X0 +A1 ×X1 +A2 ×X2 +A3 ×X3 を演算することになる。
In this product-sum operation unit, the
係数データおよび入力データが8ビットならば、加算器140 の出力線は8+8+2(4項分を足すことにより生じる)=18ビットの幅があれば積和演算でオーバーフローを起こすことはない。しかし、演算結果も8ビットとすると、オーバーフローが起こることが考えられ、オーバーフローへの対策が積和演算回路に必要となる。
If the coefficient data and the input data are 8 bits, if the output line of the
本実施例で、例えば、Q6固定小数点データで演算を行なうとする。すなわち、符号1ビットに整数部1ビット、小数部6ビットのデータ形式である。
そして、今、A0 =A1 =A2 =A3 =1(10進数)=40H(Q6固定小数点表現を16進数で表記。2進数で表現すると0100 0000)、X0 =X1 =X2 =X3 =40Hとする。すると、最初の積演算A0 ×X0 =1000H(2進数で表現すると0001 0000 0000 0000)となる。これは8ビットのQ6固定小数点で表すと40Hである。次にA1 ×X1 =1000HをA0 ×X0 =1000Hに加算すると2000Hとなる。これを8ビットのQ6で表すと80Hとなってしまい、8ビットのQ6固定小数点データとしてはオーバーフローしたことになる。すなわち、Q6固定小数点データは80H(2進数では1000 0000 、10進数では−2)から7FH(2進数では0111 1111 、10進数では1.984375)の間の値しか表せない。
In this embodiment, for example, it is assumed that calculation is performed with Q6 fixed-point data. That is, it is a data format in which an integer part is 1 bit and a decimal part is 6 bits per code bit.
Now, A0 = A1 = A2 = A3 = 1 (decimal number) = 40H (Q6 fixed-point representation is expressed in hexadecimal number, 0100 0000 when expressed in binary number), X0 = X1 = X2 = X3 = 40H . Then, the first product operation A 0 × X 0 = 1000H (0001 0000 0000 0000 in binary number) is obtained. This is 40H in terms of 8-bit Q6 fixed point. Next, when A1 * X1 = 1000H is added to A0 * X0 = 1000H, 2000H is obtained. If this is expressed by 8-bit Q6, it becomes 80H, and the 8-bit Q6 fixed-point data overflows. That is, Q6 fixed-point data can represent only a value between 80H (1000 0000 in binary number and -2 in decimal number) to 7FH (0111 1111 in binary number and 1.984375 in decimal number).
本実施例では、この場合、オーバーフローデータレジスタ1400にオーバーフローしてしまった中間データである80Hが、また、オーバーフロー項数レジスタ1300には第2項目の積和演算でオーバーフローを起こしたので2という値が格納されたうえ、積和演算は続けられる。そして、オーバーフローしたままA0 ×X0 +A1 ×X1 +A2 ×X2 +A3 ×X3 を最後まで演算し、4000Hを結果レジスタ160 に格納し、さらにデータ線1200を介してデータバス120 に出力して処理を終了する。このとき、8ビットのQ6固定小数点データとして出力するように指定してあれば、結果レジスタ160 には00Hが格納され、処理を終了する。
In this embodiment, in this case, 80H, which is the intermediate data that has overflowed into the
一方、連続して次の演算を行なう場合を考える。今までのデータX0 、X1 、X2 、X3 の次に新たな入力データX4 を持ってきてA0 ×X1 +A1 ×X2 +A2 ×X3 +A3 ×X4 を演算したい場合には、X0 が入っているデータレジスタ100 の格納位置にX4 を格納する必要がある。 On the other hand, let us consider a case where the next operation is continuously performed. Data register 100 containing X0 when new input data X4 is brought next to previous data X0, X1, X2, X3, and A0.times.X1 + A1.times.X2. + A2.times.X3 + A3.times.X4 is calculated. X4 needs to be stored in the storage location.
この場合、CPU700 により、データバス120 を介してポインタレジスタ1 1000に値0を、またデータバス120 を介してセレクタ1030に入力データを、さらにアドレスバス170 を介して加算器1010にダミーアドレス(データレジスタ110 を示すアドレス)等を指定することにより、今までのX0 の位置にX4 が格納される。
In this case, the
そして、積和演算を起動するのに先立ち、CPU700 により、ポインタレジスタ3 1420の値を0から1にする。これにより、セレクタ1430の選択信号の値が1増え、データレジスタ110 からの先頭の読み出しアドレスが1ずれてX1 になる。
Prior to starting the product-sum operation, the
以上のように、ポインタレジスタ3 1420はデータレジスタ110 からの先頭読み出しアドレスをずらす信号を発生する。
さらに、積和演算結果あるいは中間データをデータレジスタ110 に格納して次の積和演算に使用する場合を考える。
As described above, the
Further, consider a case where the product-sum operation result or intermediate data is stored in the data register 110 and used for the next product-sum operation.
このような場合は、積和演算結果ならばCPU700 により結果レジスタ160 の値をデータバス120 を介してセレクタ1030に戻し、2つ目のポインタレジスタ2 1410に値を設定して該ポインタ値をセレクタ1030に入力する。これにより、データレジスタ110 の格納位置が定まり、演算結果を格納することが可能になる。 一方、中間データをデータレジスタ110 に戻す場合には、CPU700 によりデータ線1100を介して中間データをセレクタ1030に戻してやればよい。データレジスタ110 の格納位置はポインタレジスタ2 1410にポインタ値を設定することにより決める。
In such a case, if the product-sum operation result is obtained, the
ポインタレジスタ2 1410を置くことにより、IIRフィルタを容易に構成することが可能になる。
図15は、図14の実施例の構成に加えてデータ長選択セレクタ1500を加算器140 の出力と中間データレジスタ150 の間に挿入した構成である。データ長選択セレクタ1500は、積和結果のデータのうちの一部のビットを選択するセレクタである。例えば16ビットのうちの8ビットを選択したり、32ビットのうちの16ビットを選択したり、8ビットをそのまま出したりすることが可能になる。
By placing the
FIG. 15 shows a configuration in which a data length selection selector 1500 is inserted between the output of the
最後に、図16は、図14の実施例の構成に加えてポインタレジスタ4 1600とコントローラCTL1610を加えた構成である。ポインタレジスタ4 1600はデータバス120 およびコントローラ1610に接続され、コントローラ1610はデータバス120 およびデータレジスタ110 、係数レジスタ100 、乗算器130 、加算器140 に接続されている。
Finally, FIG. 16 shows a configuration in which a pointer register 41600 and a
積和演算をある項まで実行し、その後の演算は図示していない他の処理装置等から送られてこないと実行できないような場合、演算できる項まで演算しておき、そこで止めておく場合に使用する。ポインタレジスタ4 1600には積和演算を止める項のアドレスを示すポインタ値を格納しておく。
When performing sum-of-products operations up to a certain term, and subsequent operations cannot be performed unless sent from another processing device (not shown), etc. use. The
データレジスタ110 から乗算器130 に入力されるデータ読み出しのアドレスがポインタレジスタ4 1600が示すアドレスと一致すると、コントローラ1610は積和演算を中止する。そして、コントローラ1610は必要なデータがデータバス120 を介して転送されるのを待機し、該データがデータレジスタ110 あるいは係数レジスタ100 等に格納されると、コントローラ1610は中断した積和演算を再開するように乗算器130 、加算器140 等を制御する。
When the data read address input from the data register 110 to the
本発明の積和演算器では、係数レジスタに格納する係数データを適当に選ぶことにより、様々な特性を持つFIRフィルタを構成することができる。また、積和演算の結果を入力データとしてデータレジスタに格納することにより、多様なIIRフィルタを構成できる。 In the product-sum calculator of the present invention, an FIR filter having various characteristics can be configured by appropriately selecting coefficient data stored in the coefficient register. In addition, by storing the result of the product-sum operation as input data in the data register, various IIR filters can be configured.
例えば、遅延素子を介した信号に相当するデータを入力データとして用いれば、非再帰形の遅延フィルタ(トランスバーサルフィルタ)や再帰形の遅延フィルタを構成することができる。 For example, if data corresponding to a signal via a delay element is used as input data, a non-recursive delay filter (transversal filter) or a recursive delay filter can be configured.
100 係数レジスタ
110 データレジスタ
120 データバス
130 乗算器
140 加算器
150 中間データレジスタ
160 結果レジスタ
170 アドレスバス
180 データ一括自動格納手段
300 アドレス設定手段
400 中間データ再帰手段
500 中間データ読出し手段
600 オーバーフロー通知手段
100
Claims (4)
積和演算途中の中間データを前記レジスタにデータバスを介することなく出力する
こと
を特徴とする積和演算器。 In a product-sum operation unit having a register for product-sum operation, transferring product-sum operation data to the register in advance, and performing product-sum operation using the data of the register,
A product-sum operation unit that outputs intermediate data in the middle of product-sum operation to the register without going through a data bus.
前記データレジスタからのデータに基づいて積和演算を行なう積和演算部と、
を備える積和演算器において、
前記積和演算部で処理された中間結果をデータバスを介することなく前記データレジスタに出力すること
を特徴とする積和演算器。 A data register for storing data;
A product-sum operation unit for performing a product-sum operation based on data from the data register;
In a product-sum calculator comprising:
The product-sum operation unit, wherein the intermediate result processed by the product-sum operation unit is output to the data register without passing through a data bus.
前記レジスタに格納された積和演算用データを使用して積和演算を行い、
積和演算途中の中間結果を前記レジスタにバスを介することなく帰還すること
を特徴とする積和演算方法。 Store the sum-of-products data in the register,
Perform product-sum operation using the product-sum operation data stored in the register,
A product-sum operation method, wherein an intermediate result in the middle of a product-sum operation is fed back to the register without going through a bus.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005214150A JP2005353094A (en) | 2005-07-25 | 2005-07-25 | Product-sum computing unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005214150A JP2005353094A (en) | 2005-07-25 | 2005-07-25 | Product-sum computing unit |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004353408A Division JP2005149517A (en) | 2004-12-06 | 2004-12-06 | Product-sum computing element |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005353094A true JP2005353094A (en) | 2005-12-22 |
Family
ID=35587465
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005214150A Pending JP2005353094A (en) | 2005-07-25 | 2005-07-25 | Product-sum computing unit |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005353094A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102375802A (en) * | 2010-08-23 | 2012-03-14 | 深圳市鹏海运电子数据交换有限公司 | System and method for automatically creating calculation formula |
-
2005
- 2005-07-25 JP JP2005214150A patent/JP2005353094A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102375802A (en) * | 2010-08-23 | 2012-03-14 | 深圳市鹏海运电子数据交换有限公司 | System and method for automatically creating calculation formula |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8271571B2 (en) | Microprocessor | |
WO2021056711A1 (en) | Interpolation filter system implemented by digital circuit | |
JPH07253965A (en) | Product sum computing element | |
US5898878A (en) | Data processing system having capability to interpolate processing coefficients | |
JPH0514936B2 (en) | ||
EP0285316A2 (en) | Programmable multistage digital filter | |
EP0474246A2 (en) | Image signal processor | |
JP2005353094A (en) | Product-sum computing unit | |
JP2005149517A (en) | Product-sum computing element | |
JP6311601B2 (en) | Multistage filter processing apparatus and method | |
JP2005141764A (en) | Product sum computing unit | |
JP2006236369A (en) | Product-sum computing unit | |
JP2005149518A (en) | Product-sum computing element | |
CN210466088U (en) | Microcontroller and hardware module | |
JP2856064B2 (en) | Digital filter | |
JP2004280854A (en) | Product-sum computing element | |
JP2012205298A (en) | Digital signal processor and program | |
US5650952A (en) | Circuit arrangement for forming the sum of products | |
JP4295234B2 (en) | FIR type digital filter | |
CN108140017B (en) | Method and apparatus for linear phase finite impulse response decimation filter | |
US6314132B1 (en) | Microprocessor structure and method for implementing digital filter operations | |
JP2013161325A (en) | Simd (single instruction-stream multiple data-stream) type microprocessor, processor system and data processing method for simd type microprocessor | |
JP2864598B2 (en) | Digital arithmetic circuit | |
CN117316217A (en) | Continuous memory access acceleration circuit, address shift circuit and address generation method | |
JP2004086259A (en) | Data processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060131 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060403 |
|
A02 | Decision of refusal |
Effective date: 20060905 Free format text: JAPANESE INTERMEDIATE CODE: A02 |