JP2005353094A - Product-sum computing unit - Google Patents

Product-sum computing unit Download PDF

Info

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
Application number
JP2005214150A
Other languages
Japanese (ja)
Inventor
Satoshi Matsui
聡 松井
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2005214150A priority Critical patent/JP2005353094A/en
Publication of JP2005353094A publication Critical patent/JP2005353094A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a product-sum computing unit for automatically generating an address of a register in which a plurality of calculation data are stored, outputting data in the midst of calculation processes and notifying an overflow, improving processing efficiency of the product-sum computing unit, and simplifying a recursive filter. <P>SOLUTION: The product-sum computing unit is provided with a coefficient register 100, a data register 110, a multiplier 130, an adder 140, and a data bus 120 for performing data transfer to/from an external device. The product-sum computing unit is further provided with a data collectively automatically storing means 180 for automatically generating a data storage address only by inputting an address showing the data register 110 only once at the beginning from an external without individually designating all the addresses of the data register 110 from the external, and storing a series of data. Also, recursive product-sum calculations are performed by automatically storing intermediate result data in the midst of the product-sum calculation processes in the data register 110. <P>COPYRIGHT: (C)2006,JPO&NCIPI

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 coefficient register 800 and the data register 810, the output of the coefficient register 800, and the output of the data register 810 as two inputs. A multiplier 830 to be obtained; an adder 840 having the output of the multiplier 830 as one input; an intermediate data register 850 for storing intermediate data in the middle of a product-sum operation by the multiplier 830 and the adder 840; and a product-sum operation result The result register 860 to be stored and the address decoder 870 for designating the address of the data register 810 are constituted. Here, the output of the intermediate data register 850 becomes the other input of the adder 850, thereby enabling a product-sum operation.

まず、係数レジスタ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 coefficient register 800 and the data register 810 via the data bus 820, respectively. For example, in the case of four-term product-sum operation, four input data and four coefficient data are input to the data register 810 and the coefficient register 800, respectively. Then, the FIR filter operation is executed by sequentially multiplying the data and coefficient one by one and adding them. At this time, the write address of the data register 810 is set by an external CPU (not shown) or the like. That is, an address from an external CPU (not shown) is input to the address decoder 870, and the address decoder 870 decodes this address to obtain the real address of the data register 810, and inputs that address via the data bus 820. The data is written, the written data is read and input to the multiplier 830, and the product-sum operation is started.

この演算器で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 data register 810 via the data bus 820 and start the product-sum operation again. That is, address designation is performed by an external CPU (not shown), an actual address is obtained from the address data 870, the contents of the result register 860 are written to the address of the data register 810 via the data bus 820, and the data register 810 The read-and-write address is specified, the product-sum operation is restarted, and the next product-sum operation is started.

しかしながら、従来の方法では、アドレス指定および積和演算の起動をすべて外部の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 coefficient register 100 that stores a plurality of terms of a product-sum operation coefficient, a data register 110 that stores a plurality of product-sum operation data, a data bus 120, a coefficient in the coefficient register 100, and a data in the data register 110. It is assumed that a multiplier 130 and an adder 140 for performing the product-sum operation, an intermediate data register 150 for storing intermediate data of the product-sum operation, a result register 160 for storing the product-sum operation result, and an address bus 170 are assumed. Here, it is assumed that the data bus 120 and the address bus 170 are connected to a CPU (not shown) and are used for data and address input / output.

係数レジスタ100 はデータバス120 と接続され、該係数レジスタ120 の出力は乗算器130 の一方の入力となり、データレジスタ110 の出力が乗算器130 のもう一方の入力となる。乗算器130 の出力は加算器140 の一方の入力となり、中間データレジスタ150 の出力がもう一方の入力となる。加算器140 の出力は中間データレジスタ150 および結果レジスタ160 の入力となり、該結果レジスタ160 はデータバス120 に接続されている。   The coefficient register 100 is connected to the data bus 120, the output of the coefficient register 120 is one input of the multiplier 130, and the output of the data register 110 is the other input of the multiplier 130. The output of the multiplier 130 becomes one input of the adder 140, and the output of the intermediate data register 150 becomes the other input. The output of the adder 140 becomes the input of the intermediate data register 150 and the result register 160, and the result register 160 is connected to the data bus 120.

図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 data register 110 by first receiving the address of the data register 110 from an external CPU (not shown) once through the address bus 170. Thus, as long as the address data is input from the external CPU only once at the beginning, the process of sequentially writing the input data sent via the data bus 120 to the data register 110 and the data from the data register 110 are sequentially performed. It is possible to perform a process of reading and performing a product-sum operation.

図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 data register 110 from the external CPU (not shown) via the address bus 170, and thereafter receives the same dummy address as the first address via the address bus 170. Thus, the storage position of the data register 110 is automatically designated, and input data is written and read.

従来、図17に示したように、データレジスタ110 にデータを一つ格納するたびにその都度、外部のCPUで指定したアドレスをデコードして実アドレスを求めていた。しかし、この構成のデータ一括自動格納手段180 により、データレジスタ110 のアドレスをダミーアドレスとしてデータ入力の都度入力すれば自動的にデータレジスタ110 の格納位置を指定することが可能になる。これにより、CPU側でデータレジスタ110 の一つ一つの格納位置のアドレス・データを記憶させておく必要もなくなる。   Conventionally, as shown in FIG. 17, every time one piece of data is stored in the data register 110, an address designated by an external CPU is decoded to obtain an actual address. However, the data batch automatic storage means 180 having this configuration makes it possible to automatically specify the storage position of the data register 110 by inputting the address of the data register 110 as a dummy address each time data is input. This eliminates the need for the CPU to store the address data of each storage location of the data register 110.

図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 address bus 170, and if the pointer value is input for each data input via the data bus 120, the address setting means 300 Specifies the storage location of register 110.

これにより、従来、その都度アドレスデータをアドレスバス170 を介して入力していた手間が省ける。
図4は本発明の第4の構成のブロック図である。
As a result, it is possible to save the trouble of inputting address data through the address bus 170 each time.
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 multiplier 130 and the adder 140 to the data register 110 without passing through the data bus 120.

これにより、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 data register 110 and perform the product-sum operation again. At this time, the address of the data register 110 for storing the intermediate result is generated by the address setting means 300 having the third configuration.

第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 multiplier 130 and adder 140 to data bus 120. As a result, a CPU or the like (not shown) can read intermediate data during the product-sum operation via the data bus 120.

第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 coefficient register 100 and the data register 110. When data is stored in the data register 110, first, the data bus 110 and the address bus 170 are connected to each other, and the address of the data register 110 is input to the data batch automatic storage means 180 via the address bus 170 by a CPU or the like (not shown). Further, the stored data is input to the data batch automatic storage means 180 via the data bus 120.

データ一括自動格納手段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 storage unit 180 may be connected to the coefficient register 100 and addressing similar to that of the data register 110 may be performed.

係数レジスタ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 coefficient register 100 and the data register 110, the multiplier 130 and the adder 140 perform a product-sum operation. In this case, the data used first for the product-sum operation is input to the multiplier 130. The coefficient in the coefficient register 100 becomes the other input of the multiplier 130. Multiplier 130 calculates the product and inputs it to adder 140. First, the other input value of the adder 140 is set to 0 to obtain the sum. The output of the adder 140 is stored in the intermediate data register 150, and the output of the intermediate data register 150 becomes the input of the adder 140. As a result, the next product is added to the intermediate result, and the product-sum operation is executed. The result of the product-sum operation is stored in the result register 160 and can be read from a CPU or the like (not shown).

次に、第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 address bus 170 only once. On the other hand, in the second configuration, every time data is input to the data register 110, the address of the data register 110 is input to the address automatic setting means 200 via the address bus 170 from a CPU (not shown). At this time, the address need not be the address of each storage area of the data register 110, and may be the same as the address of the data register 110 inputted first (the same address may be used if it is the address of the data register 110). Therefore, it is called a dummy address).

アドレス自動設定手段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 address bus 170 is not the address of the data register 110, the address automatic setting means 200 ignores it.

これによって、従来のように実際にデータレジスタ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 address bus 170 and the pointer value of the data register 110 via the data bus 120. Input a pair of input data. That is, in the case of the first data, the pointer value 0 and the input data are sequentially input, and then the pointer value 1 and the input data are sequentially input.

アドレス設定手段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 multiplier 130 calculates the product of the first coefficient and the data in the coefficient register 100 and the data register 110 and inputs them to the adder 140. Initially, the other input value of the adder 140 is set to 0, the sum is calculated,
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 multiplier 130. The product is input to the adder 140, and the sum stored in the intermediate data register 150 is used as the other input to obtain the sum and stored in the intermediate data register 150 again. The product sum is obtained by repeating this process.

第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 adder 140 to the data register 110 in response to an instruction from a CPU (not shown). The intermediate data is stored at the address of the data register 110 designated by the CPU (not shown). Thereby, recursive product-sum operation is possible using intermediate data of product-sum. This fourth configuration is suitable for the configuration of the IIR filter.

第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 adder 140 to the data bus 120 in response to an instruction from the CPU (not shown). The intermediate data is transferred to the CPU.

これにより、任意の時点で、図示していない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 multiplier 130 and the adder 140 is limited, and the number of bits may overflow due to the product-sum operation. Conventionally, even if an overflow occurs, the processing is continued as it is. However, the overflow notification means 600 of the sixth configuration causes an overflow every time intermediate data is obtained by calculating the product sum by the multiplier 130 and the adder 140. In the event of an overflow, the number of overflowed items is sent to the data bus 120 to indicate how many items of product data the overflowed intermediate data is. Output.

図示されていない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 CPU 700 exists. The CPU 700 corresponds to what is described as a CPU not shown in the explanation of the first to sixth configurations. The CPU 700 has an address bus 710 and a data bus 720. A memory 730 and a product-sum operation circuit 740 are connected to the address bus 710 and the data bus 720.

メモリ730 にはCPU700 の制御ソフトウエアや、積和演算回路740 が使用する入力データや係数、アドレスデータ、ポインタ値等が格納されている。
一方、積和演算回路740 は、第1乃至第6の構成を実現した積和演算回路が入る。
The memory 730 stores control software for the CPU 700, input data used by the product-sum operation circuit 740, coefficients, address data, pointer values, and the like.
On the other hand, the product-sum operation circuit 740 includes a product-sum operation circuit that realizes the first to sixth configurations.

尚、本発明は図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 coefficient register 100 for storing coefficient data for a plurality of terms, a data register 110 for storing input data for a plurality of terms, a multiplier 130 and an adder 140 for performing product-sum operation processing, It is assumed that an intermediate data register 150 for storing intermediate data in the middle of a sum operation and a result register 160 for storing a product-sum operation result are assumed.

係数レジスタ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 coefficient register 100 and the data register 110 become two inputs of the multiplier 130, respectively. The coefficient register 100 is also connected to the data bus 120, and is shown in FIG. 7 by the CPU 700 not shown in FIG. Coefficient data can be written / read through 120. The output of the multiplier 130 becomes the input of the adder 140, and the output of the intermediate data register 150 is connected to the other input of the adder 140. The output of the adder 140 becomes the input of the intermediate data register 150 and the result register 160. The result register 160 is connected to the data bus 120, and the CPU 700 can perform processing such as reading the product-sum operation result from the result register 160. FIG. 8 is a configuration diagram of an embodiment of the product-sum operation circuit having the first configuration.

図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 decoder 800, a counter 810, and a selector 820. Decoder 800 is connected to address bus 170 and counter 810, and counter 810 is connected to decoder 800 and selector 820. The selector 820 is connected to the counter and data bus 120 and the data register 110.

該CPU700 の指示によりアドレスデータがアドレスバス170 を介してデコーダ800 に入力される。デコーダ800 は入力されたアドレスデータをデコードする。すなわち、入力されたアドレスがデータレジスタ110 のアドレスか否かを判定し、データレジスタ110 のアドレスでなければ無視する。一方、データレジスタ110 のアドレスであればカウンタ810 にクリア信号を入力する。   Address data is input to the decoder 800 via the address bus 170 according to the instruction of the CPU 700. The decoder 800 decodes the input address data. That is, it is determined whether or not the input address is the address of the data register 110, and if it is not the address of the data register 110, it is ignored. On the other hand, a clear signal is input to the counter 810 if it is the address of the data register 110.

カウンタ810 は、データレジスタ110 の格納位置に対応する項数番号をカウントする。例えば同図の場合、データレジスタ110 には4項分の入力データが格納できるので、カウンタ810 は0〜3をカウントする。8項の積和演算であれば0〜7、32項の積和演算であれば0〜31をカウントするのは言うまでもない。カウンタ810 はサイクリックなカウンタ回路で実現できる。   The counter 810 counts the number of terms corresponding to the storage position of the data register 110. For example, in the case of the figure, since the input data for four terms can be stored in the data register 110, the counter 810 counts 0-3. It goes without saying that 0 to 7 is counted for the product-sum operation of 8 terms, and 0 to 31 is counted for the product-sum operation of 32 terms. The counter 810 can be realized by a cyclic counter circuit.

カウンタ810 はデコーダ800 からのクリア信号を受けてカウントを0にクリアする。すなわち、外部のCPU700 によってデータレジスタ110 のアドレスがアドレスバス170 を介してデコーダ800 に入力されると、カウンタ810 が0にクリアされる。   The counter 810 receives the clear signal from the decoder 800 and clears the count to zero. That is, when the address of the data register 110 is input to the decoder 800 via the address bus 170 by the external CPU 700, the counter 810 is cleared to zero.

カウンタ810 の出力はセレクタ820 に入力され、選択信号となる。すなわち、カウンタ出力が0ならばデータレジスタ110 の先頭アドレスに、カウンタ出力が1ならばデータレジスタ110 の2番目の格納場所にデータバス120 を介してセレクタ820 に入力された入力データを格納する。カウンタ810 はデータレジスタ110 へのデータ格納が完了するとインクリメントする。   The output of the counter 810 is input to the selector 820 and becomes a selection signal. That is, if the counter output is 0, the input data input to the selector 820 via the data bus 120 is stored in the first address of the data register 110, and if the counter output is 1, the second storage location of the data register 110 is stored. The counter 810 increments when data storage in the data register 110 is completed.

この構成では、CPU700 は、最初のデータ格納時にのみアドレスデータと入力データの対を積和演算回路740 に転送し、それ以降はデータのみをデータバス120 を介して積和演算回路740 に転送すればよい。また、本構成のデコーダ800 は、入力されるアドレスがデータレジスタ110 のアドレスか否かを判定し、データレジスタ110 のアドレスであればクリア信号をカウンタ810 に出力する簡単な構成のデコーダである。   In this configuration, the CPU 700 transfers the pair of address data and input data to the product-sum operation circuit 740 only when the first data is stored, and thereafter, only the data is transferred to the product-sum operation circuit 740 via the data bus 120. That's fine. The decoder 800 having this configuration is a decoder having a simple configuration that determines whether the input address is the address of the data register 110 and outputs a clear signal to the counter 810 if the address is the data register 110.

以上のように、この構成は、データレジスタ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 read multiplier 130, adder 140, etc. are started, the values of the data register 110 are automatically read sequentially. It is possible to output to 130. At this time, the counter 810 may be incremented every time one product-sum operation is completed.

同図では、係数レジスタ100 の書き込み/読み出しはCPU700 が行ない自動化されていないが、データレジスタ110 と同様の回路を付加して、係数の一括自動書き込み/読み出しを行わせてもよい。   In the drawing, the writing / reading of the coefficient register 100 is not performed automatically by the CPU 700, but a circuit similar to the data register 110 may be added to perform batch automatic writing / reading of coefficients.

図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 decoder 900, a counter 910, and a selector 920. The decoder 900 is connected to the address bus 170 and the counter 910, the counter 910 is connected to the decoder 900 and the selector 920, and the selector 920 is connected to the data bus 120, the counter 910 and the data register 110. This connection is also the same as in the first configuration.

第1の構成(図8)との違いは、CPU700 が常にアドレスと入力データを対にして入力する点である。アドレスはアドレスバス170 を介してデコーダ900 に、入力データはデータバス120 を介してセレクタ920 に入力される。但し、該アドレスからデータレジスタ110 の実アドレスを求めるわけではないので、該アドレスはデータレジスタ110 を示すアドレスであれば何でもよい。   The difference from the first configuration (FIG. 8) is that the CPU 700 always inputs a pair of address and input data. The address is input to the decoder 900 via the address bus 170, and the input data is input to the selector 920 via the data bus 120. However, since the actual address of the data register 110 is not obtained from the address, the address may be any address indicating the data register 110.

デコーダ900 はアドレスバス170 から入力される該アドレスをデコードし、該アドレスがデータレジスタ110 を示すアドレスか否かを判断する。該アドレスがデータレジスタ110 を示すアドレスであればカウンタ910 をインクリメントする信号をカウンタ910 に出力する。一方、該アドレスが他のレジスタ等を示す異なるアドレスであれば、該アドレスとデータの対は無視する。   The decoder 900 decodes the address input from the address bus 170 and determines whether the address is an address indicating the data register 110. If the address indicates the data register 110, a signal for incrementing the counter 910 is output to the counter 910. On the other hand, if the address is a different address indicating another register, the address and data pair is ignored.

カウンタ910 は、デコーダ900 からのインクリメント信号を受けてインクリメントし、カウンタ値をセレクタ920 に出力する。カウンタ910 の値は、最初のアドレス/データ入力の時点で0にクリアすればよい。   The counter 910 receives the increment signal from the decoder 900, increments it, and outputs the counter value to the selector 920. The value of the counter 910 may be cleared to 0 at the time of the first address / data input.

セレクタ920 はカウンタ910 からの入力(カウンタ値)を選択信号とし、データレジスタ110 の対応する格納位置に、データバス120 から入力されたデータを格納する。
以上のように、第2の構成によれば、データレジスタ110 のアドレスが指定されたデータだけをデータレジスタ110 に順次格納することができる。従来の方式では、アドレスバス170 から入力されるアドレスをデコードして一々データレジスタ110 の実アドレスを求めていたが、本構成の場合は、カウンタ910 をインクリメントしてデータレジスタ110 の格納位置を求めるので、デコーダ900 はデータレジスタ110 を示すアドレスか否かを判定する機能だけを持っていればよい。 図10は、第3の構成(図3)の実施例のシステム構成図である。
The selector 920 uses the input (counter value) from the counter 910 as a selection signal, and stores the data input from the data bus 120 in the corresponding storage position of the data register 110.
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 address bus 170 is decoded to obtain the real address of the data register 110 one by one. In this configuration, the counter 910 is incremented to obtain the storage position of the data register 110. Therefore, the decoder 900 need only have a function of determining whether the address indicates the data register 110 or not. FIG. 10 is a system configuration diagram of an embodiment of the third configuration (FIG. 3).

第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 pointer register 1000, an adder 1010, data 1020, and a selector 1030. The pointer register 1000 is connected to the data bus 120 and one input of the adder 1010, and the other input of the adder 1010 is connected to the address bus 170. The output of the adder 1010 is connected to the decoder 1020, and the output of the decoder 1020 is connected to the selector 1030. The selector 1030 is connected to the data bus 120, the decoder 1020, and the data register 110.

第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 CPU 700 designates the address of the data register 110 and the pointer value indicating the storage position in the data register 110 every time data is stored in the data register 110. As the address, for example, the head address may be designated. Alternatively, a dummy address corresponding to the data address 110 may be designated.

該アドレスはアドレスバス170 を介して加算器1010に、ポインタ値はデータバス120 を介してポインタレジスタ1000に格納される。ポインタ値は0〜(データレジスタ110 の格納個数−1)の値をとり、その値はCPU700 が制御する。   The address is stored in the adder 1010 via the address bus 170, and the pointer value is stored in the pointer register 1000 via the data bus 120. The pointer value takes a value from 0 to (the number stored in the data register 110 minus 1), and the value is controlled by the CPU 700.

該アドレスおよびポインタレジスタ1000の出力であるポインタ値が加算器1010に入力され、加算される。加算器1010の出力はデコーダ1020に入力され、アドレスのデコードを行なう。デコーダ1020の出力はセレクタ1030に入力され、セレクタ1030の選択信号となる。デコーダ1020からの選択信号により、データレジスタ110 中での格納位置が決まり、データバス120 を介してセレクタ1030に入力された入力データを該格納位置に格納する。   The address and the pointer value output from the pointer register 1000 are input to the adder 1010 and added. The output of the adder 1010 is input to the decoder 1020 to decode the address. The output of the decoder 1020 is input to the selector 1030 and becomes a selection signal of the selector 1030. The storage position in the data register 110 is determined by the selection signal from the decoder 1020, and the input data input to the selector 1030 via the data bus 120 is stored in the storage position.

以上のように、本構成は、CPU700 がデータレジスタ110 の先頭アドレスとポインタ値を指定する必要があり、第1、第2の構成に比べればCPU700 への依存度は大きい。しかし、CPU700 は従来方式のようにデータレジスタ110 の個々の格納位置のアドレスを持つ必要はなく、先頭アドレスとポインタ値だけをメモリ領域に格納しておき、積和演算回路に対して指定してやればよい。また、第1、第2の構成と異なり、CPU700 がデータレジスタ110 内の格納位置を先頭アドレスとポインタ値を使用して指定することが可能である。   As described above, this configuration requires the CPU 700 to specify the start address and pointer value of the data register 110, and the dependency on the CPU 700 is greater than that in the first and second configurations. However, unlike the conventional method, the CPU 700 does not need to have an address of each storage position of the data register 110. If only the start address and the pointer value are stored in the memory area and specified to the product-sum operation circuit, Good. Further, unlike the first and second configurations, the CPU 700 can specify the storage position in the data register 110 using the start address and the pointer value.

第3の構成は、加算器1010がなしでも実現できる。すなわち、アドレスバス170 から入力されるアドレスをデコーダ1020でデコードしたうえセレクタ1030に入力するとともに、データバス120 を介してポインタレジスタ1000に格納されたポインタ値もセレクタ1030に入力する。そして、セレクタ1030がデコード済みのアドレス、例えばデータレジスタ110 の先頭アドレスと、ポインタ値の両方を選択信号としてデータレジスタ110 の格納位置を指定する。   The third configuration can be realized without the adder 1010. That is, the address input from the address bus 170 is decoded by the decoder 1020 and input to the selector 1030, and the pointer value stored in the pointer register 1000 is also input to the selector 1030 via the data bus 120. Then, the selector 1030 designates the storage position of the data register 110 by using both the decoded address, for example, the head address of the data register 110 and the pointer value as selection signals.

図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 data line 1100 that returns the output of the adder 140 for the product-sum operation to the data register 110. The storage address in the data register 110 may be directly designated by the CPU 700, or may be designated by the address designation method described in the third configuration example (FIG. 10).

このように、加算器140 の出力をデータレジスタ110 に戻すことにより、積和演算の途中データを使用して再び積和演算を行なう再帰型の処理が可能となり、IIRフィルタを実現できる。   In this way, by returning the output of the adder 140 to the data register 110, a recursive type process that performs the product-sum operation again using the intermediate data of the product-sum operation can be performed, and an IIR filter can be realized.

図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 data line 1200 that connects the output of the intermediate data register 150 to the data bus 120. Data in the middle of the multiply-accumulate operation stored in the intermediate data register 150 is read via the data bus by the instruction of the CPU 700.

読み出したデータはCPU700 で処理することもできるし、再びデータレジスタ110 に格納することも可能である。データレジスタ110 に格納する場合、ポインタレジスタ1000、加算器1010、デコーダ1020、セレクタ1030を使用した第3の構成のアドレス指定方法でデータレジスタ110 のアドレスを指定し格納することができる。また、第1の構成のアドレス指定方法である、カウンタを自動的にインクリメントしてデータレジスタ110 のアドレスを指定する方法により、中間データを次々にデータレジスタ110 に格納し、再び積和演算を行なうこともできる。   The read data can be processed by the CPU 700 or stored in the data register 110 again. When data is stored in the data register 110, the address of the data register 110 can be specified and stored by the third addressing method using the pointer register 1000, the adder 1010, the decoder 1020, and the selector 1030. Further, the intermediate data is successively stored in the data register 110 by the method of automatically incrementing the counter and designating the address of the data register 110, which is the address design method of the first configuration, and the product-sum operation is performed again. You can also.

図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 overflow notification unit 600 is added to the fifth configuration, and is the same as the fifth configuration except for the overflow notification unit 600.

オーバーフロー通知手段600 は、中間データレジスタ150 の出力を入力とするオーバーフロー項数レジスタ1300で実現する。オーバーフロー項数レジスタ1300の出力はデータバス120 に接続される。   The overflow notification means 600 is realized by an overflow term register 1300 that receives the output of the intermediate data register 150 as an input. The output of the overflow term register 1300 is connected to the data bus 120.

オーバーフロー項数レジスタ1300には、積和演算途中でオーバーフローが生じた場合に、オーバーフローが生じた積和演算の項数が格納される。オーバーフロー項数レジスタ1300に格納された項数や中間データレジスタ150 のオーバーフローした中間データをデータ線1200を使用して読みだすことにより、オーバーフローしないように係数データを作り変える等のデバグ処理が容易に行えるようになる。   The overflow term number register 1300 stores the number of terms of the product-sum operation in which an overflow occurs when an overflow occurs during the product-sum operation. By using the data line 1200 to read the number of terms stored in the overflow term register 1300 and the overflowed intermediate data in the intermediate data register 150, debugging processing such as reshaping coefficient data to prevent overflow is easy. You can do it.

図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 coefficient register 100, and input data for 4 terms is stored in the data register 110 ( X0, X1, X2, X3) can be stored. Any number of terms can be used as long as it is two or more.

本実施例では、図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 CPU 700, a pointer register 2 1410, a pointer register 3 1420, and a data output from the data register 110 as input data, and a selector that uses the pointer value in the pointer register 3 1420 as a selection signal Realized in 1430. The pointer value of the pointer register 2 1410 becomes the selection signal of the other selector 1030.

今、係数レジスタ100 には係数データ(A0 、A1 、A2 、A3 )が、データレジスタ110 には入力データ(X0 、X1 、X2 、X3 )が格納されたものとし、積和演算の手順を順を追って説明する。   Assume that coefficient data (A0, A1, A2, A3) is stored in the coefficient register 100 and input data (X0, X1, X2, X3) is stored in the data register 110. I will explain later.

この積和演算器では、乗算器130 で係数データ×入力データの演算を各項のデータについて行ない、加算器140 で積の値を順次加算していく。すなわち、A0 ×X0 +A1 ×X1 +A2 ×X2 +A3 ×X3 を演算することになる。   In this product-sum operation unit, the multiplier 130 performs the operation of coefficient data × input data on the data of each term, and the adder 140 sequentially adds the product values. That is, A0 * X0 + A1 * X1 + A2 * X2 + A3 * X3 is calculated.

係数データおよび入力データが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 adder 140 has a width of 8 + 8 + 2 (which is generated by adding four terms) = 18 bits, the product-sum operation does not cause an overflow. However, if the calculation result is also 8 bits, overflow may occur, and measures against overflow are required for the product-sum operation circuit.

本実施例で、例えば、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 overflow data register 1400, has a value of 2 because the overflow term register 1300 has overflowed in the product-sum operation of the second item. Is stored, and the product-sum operation is continued. Then, A0.times.X0 + A1.times.X1 + A2.times.X2 + A3.times.X3 is calculated to the end, 4000H is stored in the result register 160, and further output to the data bus 120 via the data line 1200 to complete the processing. . At this time, if the output is specified as 8-bit Q6 fixed-point data, 00H is stored in the result register 160, and the process is terminated.

一方、連続して次の演算を行なう場合を考える。今までのデータ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 CPU 700 sets the value 0 to the pointer register 11000 via the data bus 120, the input data to the selector 1030 via the data bus 120, and the dummy address (data to the adder 1010 via the address bus 170). By designating the address indicating the register 110, etc., X4 is stored at the position of X0 so far.

そして、積和演算を起動するのに先立ち、CPU700 により、ポインタレジスタ3 1420の値を0から1にする。これにより、セレクタ1430の選択信号の値が1増え、データレジスタ110 からの先頭の読み出しアドレスが1ずれてX1 になる。   Prior to starting the product-sum operation, the CPU 700 changes the value of the pointer register 3 1420 from 0 to 1. As a result, the value of the selection signal of the selector 1430 is increased by 1, and the head read address from the data register 110 is shifted by 1 to become X1.

以上のように、ポインタレジスタ3 1420はデータレジスタ110 からの先頭読み出しアドレスをずらす信号を発生する。
さらに、積和演算結果あるいは中間データをデータレジスタ110 に格納して次の積和演算に使用する場合を考える。
As described above, the pointer register 3 1420 generates a signal for shifting the head read address from the data register 110.
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 CPU 700 returns the value of the result register 160 to the selector 1030 via the data bus 120, sets the value in the second pointer register 2 1410, and sets the pointer value to the selector. Enter in 1030. As a result, the storage position of the data register 110 is determined, and the calculation result can be stored. On the other hand, when the intermediate data is returned to the data register 110, the intermediate data may be returned to the selector 1030 by the CPU 700 via the data line 1100. The storage position of the data register 110 is determined by setting a pointer value in the pointer register 2 1410.

ポインタレジスタ2 1410を置くことにより、IIRフィルタを容易に構成することが可能になる。
図15は、図14の実施例の構成に加えてデータ長選択セレクタ1500を加算器140 の出力と中間データレジスタ150 の間に挿入した構成である。データ長選択セレクタ1500は、積和結果のデータのうちの一部のビットを選択するセレクタである。例えば16ビットのうちの8ビットを選択したり、32ビットのうちの16ビットを選択したり、8ビットをそのまま出したりすることが可能になる。
By placing the pointer register 2 1410, the IIR filter can be easily configured.
FIG. 15 shows a configuration in which a data length selection selector 1500 is inserted between the output of the adder 140 and the intermediate data register 150 in addition to the configuration of the embodiment of FIG. The data length selection selector 1500 is a selector that selects some bits of the product-sum result data. For example, 8 bits out of 16 bits can be selected, 16 bits out of 32 bits can be selected, or 8 bits can be output as they are.

最後に、図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 controller CTL 1610 are added to the configuration of the embodiment of FIG. The pointer register 4 1600 is connected to the data bus 120 and the controller 1610. The controller 1610 is connected to the data bus 120 and the data register 110, the coefficient register 100, the multiplier 130, and the adder 140.

積和演算をある項まで実行し、その後の演算は図示していない他の処理装置等から送られてこないと実行できないような場合、演算できる項まで演算しておき、そこで止めておく場合に使用する。ポインタレジスタ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 pointer register 4 1600 stores a pointer value indicating an address of a term to stop the product-sum operation.

データレジスタ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 multiplier 130 matches the address indicated by the pointer register 41600, the controller 1610 stops the product-sum operation. Then, the controller 1610 waits for necessary data to be transferred via the data bus 120. When the data is stored in the data register 110 or the coefficient register 100, the controller 1610 resumes the interrupted product-sum operation. Thus, the multiplier 130, the adder 140, etc. are controlled.

本発明の積和演算器では、係数レジスタに格納する係数データを適当に選ぶことにより、様々な特性を持つ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.

本発明の第1の構成のブロック図である。It is a block diagram of the 1st composition of the present invention. 本発明の第2の構成のブロック図である。It is a block diagram of the 2nd composition of the present invention. 本発明の第3の構成のブロック図である。It is a block diagram of the 3rd composition of the present invention. 本発明の第4の構成のブロック図である。It is a block diagram of the 4th composition of the present invention. 本発明の第5の構成のブロック図である。It is a block diagram of the 5th composition of the present invention. 本発明の第6の構成のブロック図である。It is a block diagram of the 6th composition of the present invention. 一実施例のシステム構成図である。It is a system configuration diagram of one embodiment. 積和演算回路の第1の構成の一実施例のシステム構成図である。1 is a system configuration diagram of an embodiment of a first configuration of a product-sum operation circuit. FIG. 積和演算回路の第2の構成の一実施例のシステム構成図である。It is a system block diagram of one Example of the 2nd structure of a product-sum operation circuit. 積和演算回路の第3の構成の一実施例のシステム構成図である。It is a system configuration | structure figure of one Example of the 3rd structure of a product-sum operation circuit. 積和演算回路の第4の構成の一実施例のシステム構成図である。It is a system configuration | structure figure of one Example of the 4th structure of a product-sum operation circuit. 積和演算回路の第5の構成の一実施例のシステム構成図である。It is a system configuration | structure figure of one Example of the 5th structure of a product-sum operation circuit. 積和演算回路の第6の構成の一実施例のシステム構成図である。It is a system block diagram of one Example of the 6th structure of a product-sum operation circuit. 積和演算回路の第6の構成のより詳細な構成図である。It is a more detailed block diagram of the 6th structure of a product-sum operation circuit. 積和演算結果のデータ長を選択可能にするための一実施例のシステム構成図である。It is a system configuration | structure figure of one Example for enabling selection of the data length of the product-sum operation result. 積和演算を一時中断可能にする一実施例のシステム構成図である。1 is a system configuration diagram of an embodiment that enables a product-sum operation to be temporarily interrupted. FIG. 従来の積和演算回路の構成図である。It is a block diagram of the conventional product-sum operation circuit.

符号の説明Explanation of symbols

100 係数レジスタ
110 データレジスタ
120 データバス
130 乗算器
140 加算器
150 中間データレジスタ
160 結果レジスタ
170 アドレスバス
180 データ一括自動格納手段
300 アドレス設定手段
400 中間データ再帰手段
500 中間データ読出し手段
600 オーバーフロー通知手段
100 coefficient register 110 data register 120 data bus 130 multiplier 140 adder 150 intermediate data register 160 result register 170 address bus 180 data batch automatic storage means 300 address setting means 400 intermediate data recursion means 500 intermediate data reading means 600 overflow notification means

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.
請求項1又は請求項2の記載の積和演算器を備えるデータ計算装置。   A data calculation apparatus comprising the product-sum operation unit according to claim 1. 積和演算用データをレジスタの格納し、
前記レジスタに格納された積和演算用データを使用して積和演算を行い、
積和演算途中の中間結果を前記レジスタにバスを介することなく帰還すること
を特徴とする積和演算方法。
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.
JP2005214150A 2005-07-25 2005-07-25 Product-sum computing unit Pending JP2005353094A (en)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102375802A (en) * 2010-08-23 2012-03-14 深圳市鹏海运电子数据交换有限公司 System and method for automatically creating calculation formula

Cited By (1)

* Cited by examiner, † Cited by third party
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
US4809208A (en) Programmable multistage digital filter
JP4388141B2 (en) Shared resources for digital filters
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
CN108140017B (en) Method and apparatus for linear phase finite impulse response decimation filter
JP4295234B2 (en) FIR type digital 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
JPH05174050A (en) Series arithmetic unit
JPH0828647B2 (en) Memory device and digital signal processing device using the same

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