JPH1063641A - Product sum circuit with shift - Google Patents
Product sum circuit with shiftInfo
- Publication number
- JPH1063641A JPH1063641A JP8214500A JP21450096A JPH1063641A JP H1063641 A JPH1063641 A JP H1063641A JP 8214500 A JP8214500 A JP 8214500A JP 21450096 A JP21450096 A JP 21450096A JP H1063641 A JPH1063641 A JP H1063641A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- shift
- register
- bits
- data
- 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.)
- Withdrawn
Links
Landscapes
- Complex Calculations (AREA)
Abstract
Description
【0001】[0001]
【発明の属する技術分野】本発明は、デジタルシグナル
プロセッサ(DSP)等で使用される積和回路に関し、
少ない命令サイクルで正確で高精度の演算を行うことが
できる積和回路の改良に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a product-sum circuit used in a digital signal processor (DSP) or the like.
The present invention relates to an improvement of a multiply-accumulate circuit capable of performing an accurate and high-precision operation with a small number of instruction cycles.
【0002】[0002]
【従来の技術】乗数と被乗数の積を求める乗算器とその
乗算結果と次の乗算結果との和を求める加算器とを組み
合わせた積和回路が種々提案されている。特に、DSP
内に設けられている積和回路は、ブースのアルゴリズム
を利用した乗算回路と通常の加算回路を組み合わせたも
のが一般的である。2. Description of the Related Art Various product-sum circuits have been proposed in which a multiplier for obtaining a product of a multiplier and a multiplicand and an adder for obtaining a sum of the result of the multiplication and the result of the next multiplication are combined. In particular, DSP
The product-sum circuit provided therein is generally a combination of a multiplication circuit using a Booth algorithm and a normal addition circuit.
【0003】この様な積和回路は、最近のマルチメディ
ア関連の技術において、圧縮処理などで多数回にわたる
積和演算を行う必要があることから中心的な存在であ
る。Such a product-sum circuit is central in recent multimedia-related technologies because it is necessary to perform product-sum operations many times in compression processing and the like.
【0004】一方、かかるDSP内の乗算回路では、デ
ータフォーマットを符号ビットと小数点以下のビットで
構成した固定小数点に対応させることが一般的に行われ
ている。かかるデータフォーマットを採用すると、如何
なる数値データでも−1以上+1未満で表現することが
でき、しかもハードウエアを簡単化することができる。[0004] On the other hand, in a multiplication circuit in such a DSP, it is general practice to make the data format correspond to a fixed point composed of a sign bit and bits below the decimal point. By adopting such a data format, any numerical data can be represented by -1 or more and less than +1 and the hardware can be simplified.
【0005】また、乗算演算をより高精度に行う為に、
倍精度演算が行えることがDSPに要求されている。倍
精度演算では、通常の倍のビット数の乗数と被乗数を乗
算する為に、部分積を求めてからそれらの和を求めると
いった積和演算を行うことが必要になる。In order to perform the multiplication operation with higher accuracy,
DSPs are required to be able to perform double precision calculations. In the double precision operation, it is necessary to perform a product-sum operation such as obtaining a partial product and then obtaining a sum thereof in order to multiply a multiplicand of a normal double bit number and a multiplicand.
【0006】[0006]
【発明が解決しようとする課題】しかしながら、固定少
数点のデータフォーマットの場合、1以上の数値データ
や−1より小さい数値データに対しては、一旦、−1〜
+1の範囲に正規化する為に、その数値データ対応する
1/2、1/4、1/8倍した被乗数をテーブルから読
み出し、乗算した後に再度2倍、4倍、8倍をそれぞれ
行う逆正規化処理が必要である。この数値データの非正
規化は、一種のデータビットのシフトにより実現できる
ので、演算結果をシフト回路にて対応するシフト量分だ
けシフトさせることが行われる。However, in the case of a fixed-point data format, for numerical data of 1 or more or numerical data smaller than -1, once -1 to 1 is set.
In order to normalize to the range of +1, the multiplicand corresponding to the numerical data corresponding to 、, 4, 1 / is read from the table, multiplied, and then multiplied by 2, 4, and 8 again. Normalization processing is required. Since the denormalization of the numerical data can be realized by a kind of data bit shift, the operation result is shifted by a corresponding shift amount by a shift circuit.
【0007】また、倍精度での演算では、部分積の桁合
わせを行う為に、適宜データビットをシフトする工程が
必要になる。そして、部分積の桁合わせの後に他の部分
積との和をとることになる。In addition, in the operation with double precision, a step of shifting data bits is necessary in order to perform digit alignment of a partial product. After the digit alignment of the partial product, the sum with the other partial products is obtained.
【0008】従って、従来の積和回路を利用して、デー
タフォーマットに納まらない数値データを乗算したり、
倍精度での演算をする場合は、頻繁にデータシフトの命
令を実行する必要があり、その様な演算が頻発するDS
Pにおいては命令数の増大を招いていた。Therefore, using a conventional multiply-accumulate circuit, it is possible to multiply numerical data that does not fit in the data format,
When performing an operation with double precision, it is necessary to frequently execute a data shift instruction, and a DS in which such an operation frequently occurs.
In P, the number of instructions increased.
【0009】そこで、本発明の目的は、命令数が少なく
より正確で精度の高い演算を実現することができる積和
回路を提供することにある。SUMMARY OF THE INVENTION An object of the present invention is to provide a multiply-accumulate circuit capable of realizing a more accurate and accurate operation with a small number of instructions.
【0010】更に、本発明の目的は、シフト回路を最適
化して付加した積和回路を提供することにある。Another object of the present invention is to provide a product-sum circuit in which a shift circuit is optimized and added.
【0011】[0011]
【課題を解決するための手段】上記目的は、本発明によ
れば、データを保持する第一、第二、第三のレジスタに
接続され、該第一のレジスタからの第一の入力データを
第一のシフト制御信号に従って0または所定ビットの算
術左シフトする第一のシフト回路と、該第二のレジスタ
からの第二の入力データと該第一のシフト回路の出力と
の乗算演算を行う乗算回路と、該第三のレジスタからの
第三の入力データと該乗算回路の乗算出力との加算演算
を行う加算回路とを有することを特徴とする積和回路を
提供することにより達成される。SUMMARY OF THE INVENTION According to the present invention, there is provided an electronic apparatus comprising: first, second, and third registers for holding data, and receiving first input data from the first register; A first shift circuit that performs arithmetic left shift of 0 or a predetermined bit in accordance with a first shift control signal, and performs a multiplication operation on second input data from the second register and an output of the first shift circuit. This is achieved by providing a multiply-accumulate circuit, comprising: a multiplication circuit; and an addition circuit that performs an addition operation of the third input data from the third register and the multiplication output of the multiplication circuit. .
【0012】また、上記の目的は、本発明によれば、デ
ータを保持する第一、第二、第三のレジスタに接続さ
れ、該第一のレジスタからの第一の入力データと該第二
のレジスタからの第二の入力データとの乗算演算を行う
乗算回路と、該第三のレジスタからの第三の入力データ
と該乗算回路の乗算出力との加算演算を行う加算回路
と、該加算回路の出力を第二のシフト制御信号に従って
0または所定ビットの算術右シフトする第二のシフト回
路とを有することを特徴とする積和回路を提供すること
により達成される。Further, according to the present invention, the above object is achieved by connecting first, second, and third registers for holding data, wherein the first input data from the first register and the second A multiplication circuit that performs a multiplication operation with the second input data from the register, an addition circuit that performs an addition operation of the third input data from the third register and the multiplication output of the multiplication circuit, A second shift circuit for arithmetically shifting the output of the circuit by 0 or a predetermined bit arithmetically right in accordance with a second shift control signal.
【0013】本発明は、更に、上記の第一と第二のシフ
ト回路を両方設けた積和回路によっても上記目的が達成
される。The present invention further achieves the above object by a sum-of-products circuit having both the first and second shift circuits.
【0014】[0014]
【発明の実施の形態】以下、図面に従って本発明の実施
の形態例を説明する。但し、本発明の技術的範囲がかか
る実施の形態によって限定的に解釈されることはない。DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Embodiments of the present invention will be described below with reference to the drawings. However, the technical scope of the present invention is not limitedly interpreted by such embodiments.
【0015】図1は、本発明の実施の形態にかかるDS
Pの概略的なブロック図である。図1のDSPでは、プ
ログラムカウンタPCはシステムクロックCLKを供給
されてマシンサイクルでカウントアップする。そのプロ
グラムカウンタPCの出力がアドレスとして命令コード
が格納されたROMに与えられる。ROMからアドレス
に対応す命令コードがインストラクションレジスタIR
0、IR1に出力され、それらの命令コードがデコーダ
DECでデコードされ制御信号を各ブロックに供給す
る。FIG. 1 shows a DS according to an embodiment of the present invention.
It is a schematic block diagram of P. In the DSP of FIG. 1, the program counter PC is supplied with the system clock CLK and counts up in a machine cycle. The output of the program counter PC is given as an address to the ROM in which the instruction code is stored. The instruction code corresponding to the address from the ROM is stored in the instruction register IR.
0, IR1, and their instruction codes are decoded by the decoder DEC to supply control signals to each block.
【0016】AALU1,2は、メモリRAM1、2の
アドレスを演算するアドレス演算回路で、それらで演算
して求めたアドレスに対応するメモリRAM1,2のデ
ータが、AバスAbus、BバスBbusを経由してレ
ジスタreg1,2に格納され、積和回路10で乗算さ
れ、レジスタreg3の値と加算され、最終的な演算結
果がレジスタreg3に格納される。The AALUs 1 and 2 are address operation circuits for calculating the addresses of the memory RAMs 1 and 2, and the data of the memory RAMs 1 and 2 corresponding to the addresses calculated by the ALUs 1 and 2 pass through the A bus Abus and the B bus Bbus. The result is stored in the registers reg 1 and reg 2, multiplied by the product-sum circuit 10, added to the value in the register reg 3, and the final operation result is stored in the register reg 3.
【0017】インストラクションレジスタIR0,IR
1が2つ設けられることにより、パイプライン処理が可
能になる。また、バスAbus,Bbusが2つ設けら
れているので、1マシンサイクルで2つのメモリRAM
1,2から2つのレジスタreg1,2に2つのデータ
を同時に転送することが可能になる。Instruction registers IR0, IR
By providing two 1s, pipeline processing becomes possible. Further, since two buses Abus and Bbus are provided, two memory RAMs are provided in one machine cycle.
It becomes possible to transfer two data simultaneously from 1,2 to two registers reg1,2.
【0018】図2は、図1のDSPにより、メモリRA
M1内の乗数と、メモリRAM2内の被乗数とを乗算し
てレジスタreg3内の値と加算を行う場合のタイミン
グフローチャート図である。この例では、プログラムカ
ウンタPCがn−1の時に、インストラクションメモリ
ROMから「メモリRAM1からレジスタreg1にデ
ータを転送する」なる命令コードを読み出し、次のマシ
ンサイクル(n)でインストラクションレジスタIR0
に格納する。同時に、プログラムカウンタPCのnに従
って、メモリROM内の「メモリRAM2からレジスタ
reg2にデータを転送する」なる命令コードを読み出
し、次のマシンサイクル(n+1)でインストラクショ
ンレジスタIR0に格納する。その時、最初の命令コー
ドはインストラクションレジスタIR1に転送される。FIG. 2 is a block diagram of the memory RA by the DSP of FIG.
FIG. 11 is a timing flowchart in a case where a multiplier in M1 is multiplied by a multiplicand in a memory RAM2 to add a value in a register reg3. In this example, when the program counter PC is n-1, the instruction code "Transfer data from the memory RAM1 to the register reg1" is read from the instruction memory ROM, and the instruction register IR0 is read in the next machine cycle (n).
To be stored. At the same time, the instruction code "Transfer data from memory RAM2 to register reg2" in the memory ROM is read according to n of the program counter PC, and stored in the instruction register IR0 in the next machine cycle (n + 1). At that time, the first instruction code is transferred to the instruction register IR1.
【0019】マシンサイクル(n+1)で、デコーダD
ECからの制御信号に従ってアドレス演算回路AALU
1でアドレスが演算され、メモリRAM1に対するアド
レス値が生成され、マシンサイクル(n+2)で、その
アドレス値に対応する乗数のデータがレジスタreg1
に与えられる。同様にして、被乗数も次のマシンサイク
ルでレジスタreg2に格納される。In the machine cycle (n + 1), the decoder D
Address operation circuit AALU according to control signal from EC
1, an address is calculated, an address value for the memory RAM1 is generated, and in a machine cycle (n + 2), a multiplier data corresponding to the address value is stored in the register reg1.
Given to. Similarly, the multiplicand is stored in the register reg2 in the next machine cycle.
【0020】マシンサイクル(n+3)にて、積和器1
0内でレジスタreg1,2内のデータの乗算演算とレ
ジスタreg3との加算演算が実行され、最終的な演算
結果がレジスタreg3に格納される。In the machine cycle (n + 3), the accumulator 1
In 0, the multiplication operation of the data in the registers reg1 and 2 and the addition operation of the register reg3 are executed, and the final operation result is stored in the register reg3.
【0021】尚、2つのバスAbus,Bbusを同時
に利用することでメモリRAM1、2からレジスタre
g1,2に2つのデータを同時に転送することができ
る。その場合は、図2の例よりも1マシンサイクル分だ
け少なくすることができる。By simultaneously using the two buses Abus and Bbus, the registers res
Two data can be simultaneously transferred to g1 and g2. In that case, it can be reduced by one machine cycle as compared with the example of FIG.
【0022】図3は、固定小数点でデータフォーマット
された例を説明する図である。図の(A)は、そのデー
タフォーマットを示していて、符号ビットSと小数点以
下を表すビットからなる。従って、このデータフォーマ
ットの例では表現できる数値の範囲が−1以上で+1未
満である。FIG. 3 is a diagram for explaining an example in which data is formatted in a fixed point. (A) of the figure shows the data format, which is composed of a sign bit S and a bit indicating a decimal part. Therefore, in the example of this data format, the range of numerical values that can be expressed is −1 or more and less than +1.
【0023】図の(B)は、かかるデータフォーマット
では対応できない+1以上の被乗数D2を乗数のデータ
D1に乗する場合の処理について説明する。この例で
は、被乗数D2は1/4倍されてデータフォーマットに
適応できる様に正規化された係数が使用される。通常
は、ROM等に格納した係数のテーブルから被乗数に対
応する係数のデータが読みだされて積和回路に与えられ
る。そして、両データD1,D2の乗算が行われた後
に、逆正規化の為に4倍される。具体的には、2ビット
分左シフトされて最終データD3(s)が求められる。
このシフトを算術左シフト処理という。従って、最初に
正規化された時のビット数分だけ算術左シフトの処理が
必要になる。FIG. 2B illustrates a process in which a multiplicand D2 of +1 or more, which cannot be handled by such a data format, is raised to the multiplier data D1. In this example, the multiplicand D2 is multiplied by 1/4 and a coefficient normalized so as to be adaptable to the data format is used. Normally, coefficient data corresponding to the multiplicand is read out from a coefficient table stored in a ROM or the like and supplied to the product-sum circuit. After multiplication of both data D1 and D2, the data is multiplied by 4 for denormalization. Specifically, the final data D3 (s) is obtained by shifting leftward by 2 bits.
This shift is called arithmetic left shift processing. Therefore, arithmetic left shift processing is required by the number of bits at the time of the first normalization.
【0024】この様に、データフォーマットに対応でき
ない数を積和器10で演算する為には、上述の係数テー
ブルから正規化した係数を積和器10に与え、乗算した
後に逆正規化の為の算術左シフト処理を行って、更に加
算演算を行うことになる。従って、プログラム命令とし
ては逆正規化の為の算術左シフト処理を余分に実行させ
る必要がある。As described above, in order to calculate a number which cannot correspond to the data format in the product-sum unit 10, a coefficient normalized from the above-described coefficient table is given to the product-sum unit 10, multiplied, and then denormalized. Is performed, and an addition operation is further performed. Therefore, it is necessary to additionally execute arithmetic left shift processing for denormalization as a program instruction.
【0025】図4は、倍精度データを乗算する場合を説
明する図である。倍精度データは、通常例えば20ビッ
トで構成されるところを、倍のビット数の40ビットで
構成したデータである。それらのデータを20ビットの
データ用に構成された積和回路を利用して乗算させる場
合は、図4に示す通り、データDaを20ビットづつの
データA1,A2に分割し、データDbも20ビットづ
つのデータB1,B2に分割し、それぞれの部分積を加
算することが行われる。即ち、部分積A0×B0、A1
×B0、A0×B1、A1×B1を、それぞれ必要な桁
合わせをして加算するのである。従って、部分積A0×
B0は20ビット分右側にシフトして桁あわせを行う必
要があり、部分積A0×B0、A1×B0、A0×B1
の累積データも右シフトして桁あわせを行う必要があ
る。FIG. 4 is a diagram for explaining the case of multiplying double precision data. Double-precision data is, for example, data composed of 20 bits, but composed of 40 bits, which is twice the number of bits. When multiplying these data using a product-sum circuit configured for 20-bit data, as shown in FIG. 4, the data Da is divided into 20-bit data A1 and A2, and the data Db is also 20 bits. The data is divided into bit-by-bit data B1 and B2, and the respective partial products are added. That is, the partial products A0 × B0, A1
× B0, A0 × B1, and A1 × B1 are added after performing necessary digit alignment. Therefore, the partial product A0 ×
B0 needs to be shifted to the right by 20 bits to perform digit alignment, and the partial products A0 × B0, A1 × B0, A0 × B1
It is necessary to shift right also the accumulated data of.
【0026】そして、最終的に求まる乗算結果のデータ
Dは、単純には80ビットのデータとなる。そこで一般
的には下40桁のデータC1,C0は切り捨てられる。
かかる切り捨ては、それぞれの算術右シフトを行う時に
フォーマットからの桁あふれにより切り捨てられる。下
位ビットの切り捨て自体は精度に影響を与えることはな
い。The multiplication result data D finally obtained is simply 80-bit data. Therefore, the data C1 and C0 of the lower 40 digits are generally discarded.
Such truncation is truncated due to overflow from the format when performing each arithmetic right shift. The truncation of the lower bits does not affect the precision.
【0027】以上の様に、倍精度データで乗算する場合
も、算術右シフトの処理が必要になり、図1の積和回路
10で演算させる為には、部分積を求めた後に適宜右シ
フト処理の命令を実行する必要がある。As described above, when multiplying by double-precision data, arithmetic right shift processing is required, and in order for the product-sum circuit 10 in FIG. Processing instructions need to be executed.
【0028】図5は、本発明の実施の形態のシフト回路
付きの積和回路の概略ブロック図である。従来と同様に
乗数Bと被乗数Aとの乗算を行う乗算回路22と、デー
タCとその乗算結果を加算する加算回路23とから構成
される。更に、この例では、固定小数点のフォーマット
に適応できない被乗数を正規化した係数で与えた時に、
その逆正規化の為の算術左シフトを行うシフト回路21
が、乗算回路22の前段に設けられる。また、倍精度演
算を行う場合に部分積の桁あわせの為の算術右シフト処
理を行う為のシフト回路24が、加算回路23の後段に
設けられている。FIG. 5 is a schematic block diagram of a product-sum circuit with a shift circuit according to an embodiment of the present invention. A multiplication circuit 22 for multiplying the multiplier B and the multiplicand A as in the prior art, and an addition circuit 23 for adding the data C and the multiplication result. Furthermore, in this example, when a multiplicand that cannot be applied to the fixed-point format is given by a normalized coefficient,
Shift circuit 21 for performing arithmetic left shift for the inverse normalization
Is provided before the multiplication circuit 22. In addition, a shift circuit 24 for performing arithmetic right shift processing for digit alignment of partial products when performing double-precision arithmetic is provided downstream of the adder circuit 23.
【0029】かかる構成にすることにより、正規化した
被乗数Aで乗算演算を行う時の算術左シフト処理や、倍
精度演算で必要な算術右シフト処理が、乗算命令のコー
ドで一括して行うことができることになる。With this configuration, the arithmetic left shift processing when performing the multiplication operation with the normalized multiplicand A and the arithmetic right shift processing required for the double precision operation are collectively performed by the code of the multiplication instruction. Can be done.
【0030】例えば、正規化した係数を前述した係数テ
ーブルから読みだして被乗数として積和回路10に与え
た場合は、命令コードにその正規化したシフト量を付加
しておくことで、積和回路10内で逆正規化の為の算術
左シフト処理を積和演算と一緒に行わせることが可能に
なる。そのシフトの有無及びシフト量は、シフト回路2
1に制御信号として与えられるシフトビットSFに従っ
て制御される。この算術左シフトは乗算した後に行うこ
とでも良いが、通常乗算した後のデータはビット数が多
くなりシフト回路の規模が大きくなるという問題点を有
するので、図5の例では乗算回路22の前段に設けてい
る。For example, when a normalized coefficient is read from the above-described coefficient table and given to the product-sum circuit 10 as a multiplicand, the normalized shift amount is added to the instruction code, so that the product-sum circuit It becomes possible to perform arithmetic left shift processing for denormalization together with the product-sum operation in 10. The presence or absence of the shift and the shift amount are determined by the shift circuit 2
It is controlled in accordance with a shift bit SF given as a control signal to 1. Although the arithmetic left shift may be performed after multiplication, the data after multiplication usually has a problem that the number of bits increases and the scale of the shift circuit becomes large. Therefore, in the example of FIG. Is provided.
【0031】従って、従来は乗算の命令コードと算術左
シフト処理の命令コードの2つのマシンサイクルを要し
ていたのに対して、図5の積和回路によれば1つの命令
コードで逆正規化のための左シフト処理も行うことがで
きるので1マシンサイクルで演算処理を完了することが
できる。Therefore, while two machine cycles of the multiplication instruction code and the arithmetic left shift processing instruction code were conventionally required, the product-sum circuit of FIG. Since a left shift process can be performed for the purpose of completion, the arithmetic process can be completed in one machine cycle.
【0032】次に、倍精度での乗算を行う場合は、図5
の積和回路ではそのプログラムは次の様になる。Next, when performing multiplication with double precision, FIG.
In the product-sum circuit, the program is as follows.
【0033】[0033]
【表1】 [Table 1]
【0034】それに対して、従来のシフト回路24が設
けられていない回路を使用した場合のプログラムは次の
様になる。On the other hand, a program in the case of using a circuit without the conventional shift circuit 24 is as follows.
【0035】[0035]
【表2】 [Table 2]
【0036】上記の例は、図4に示した倍精度の乗算を
行う例であり、AXレジスタ内の40ビットのデータD
aとBXレジスタ内の40ビットのデータDbとを乗算
してDXレジスタにその乗算結果を格納するアセンブラ
プログラムの例である。尚、AXレジスタは例えば図1
内のレジスタreg2に該当し、BXレジスタは例えば
レジスタreg1に該当する。また、DXレジスタは例
えば図1内のレジスタreg3に該当する。The above example is an example in which the double precision multiplication shown in FIG. 4 is performed, and the 40-bit data D in the AX register is
This is an example of an assembler program that multiplies a by 40-bit data Db in a BX register and stores the multiplication result in a DX register. The AX register is, for example, as shown in FIG.
, And the BX register corresponds to, for example, the register reg1. The DX register corresponds to, for example, the register reg3 in FIG.
【0037】上記のIのプログラム例では、左欄がオペ
レーションコードであり右欄がオペランドである。この
プログラム例では、先ず「MULUA DX,A0,B
0」により、データA0とB0を乗算してその乗算値
(部分積)を20ビット算術右シフトし、その結果をD
Xレジスタに格納する。この算術右シフト処理は、図5
の積和回路内のシフト回路24にて行われる。従って、
制御信号ASFにより20ビット右シフトの指令が与え
られる。この様に、図5の積和回路を利用することによ
り、乗算と算術右シフトを1つの命令コード、1マシン
サイクルで行うことができる。In the above example of the program I, the left column is an operation code and the right column is an operand. In this program example, first, “MULUA DX, A0, B
0 ”, the data A0 and B0 are multiplied, the multiplied value (partial product) is arithmetically shifted right by 20 bits, and the result is
Store in X register. This arithmetic right shift processing is performed as shown in FIG.
Is performed by the shift circuit 24 in the sum-of-products circuit. Therefore,
A 20-bit right shift command is given by control signal ASF. As described above, by using the product-sum circuit of FIG. 5, multiplication and arithmetic right shift can be performed with one instruction code and one machine cycle.
【0038】プログラムIでは、更に、「MSMS D
X,A1,B0」により、データA1とB0を乗算しD
Xレジスタのデータを加算する。次に、「MSMSA
DX,A0,B1」によりデータA0とB1を乗算しD
Xレジスタのデータを加算し、そして20ビットの算術
右シフト処理を行ってDXレジスタに格納する。この算
術右シフト処理も図5中のシフト回路24にて行われる
ので、上記と同様にして乗算と算術右シフトを1つの命
令コード、1マシンサイクルで行うことができる。In the program I, "MSMS D
X, A1, B0 ”, and multiplies the data A1 and B0 by D
Add the data in the X register. Next, "MSMSA
DX, A0, B1 "and multiply the data A0 and B1 by D
The data of the X register is added, and arithmetic right shift processing of 20 bits is performed and stored in the DX register. Since the arithmetic right shift process is also performed by the shift circuit 24 in FIG. 5, the multiplication and the arithmetic right shift can be performed in one instruction code and one machine cycle in the same manner as described above.
【0039】最後に、「MSM DX,A1,B1」に
より、データA1とB1を乗算しDXレジスタのデータ
を加算して、最終的な倍精度の乗算結果がDXレジスタ
に格納される。Finally, the data A1 and B1 are multiplied by "MSM DX, A1, B1" and the data in the DX register is added, and the final double-precision multiplication result is stored in the DX register.
【0040】上記のプログラムIに対して、従来のシフ
ト回路が設けられていない積和回路を利用する時は、プ
ログラムIIに通り、桁あわせの為のシフト命令「LSR
DX,20」と「ASR DX,20」を実行する必
要があり、図5のシフト回路24付きの積和回路を利用
する場合よりも、2マシンサイクル分余分に時間を要す
ることになる。When a product-sum circuit without a conventional shift circuit is used for the program I, a shift instruction "LSR" for digit alignment is used as in program II.
“DX, 20” and “ASR DX, 20” need to be executed, which requires two machine cycles more time than when using the product-sum circuit with the shift circuit 24 in FIG.
【0041】固定小数点のデータフォーマットに関する
アセンブラプログラムの例は、特に示すまでもなく、図
5の積和回路のメリットは明らかである。前述した通
り、シフト回路21を利用することにより、算術左シフ
ト処理の命令サイクルが不要になり、シフト回路21を
有しない従来の積和回路に比較してマシンサイクルを短
くすることができる。An example of an assembler program relating to the fixed-point data format is not particularly shown, and the merits of the product-sum circuit of FIG. 5 are apparent. As described above, the use of the shift circuit 21 eliminates the need for the instruction cycle of the arithmetic left shift processing, and can shorten the machine cycle as compared with a conventional product-sum circuit without the shift circuit 21.
【0042】図6は、図5の積和回路の詳細ブロック回
路図である。この回路例では、被乗数として4ビットの
データA1〜A4、乗数として4ビットのデータB1〜
B4の乗算回路22とその乗算結果とデータCとの加算
回路23が示されている。演算結果は、11ビットに拡
張されたデータX1〜X11に示されている。FIG. 6 is a detailed block circuit diagram of the product-sum circuit of FIG. In this circuit example, 4-bit data A1 to A4 as a multiplicand and 4-bit data B1 to B4 as a multiplier
The multiplication circuit 22 of B4 and the addition circuit 23 of the multiplication result and the data C are shown. The operation result is shown in data X1 to X11 extended to 11 bits.
【0043】図6中のシフト回路21は、固定小数点の
データフォーマットに適応できないで正規化されたデー
タを逆正規化の為に算術左シフト処理を行う。この例で
は、制御信号SF1,SF2によりシフトなし、1ビッ
トシフトまたは2ビットシフトかの指令が与えられ、そ
れに応じて4ビットのデータA1〜A4を、シフト処理
しないか或いは1ビットまたは2ビットの算術左シフト
処理を行う。シフト回路21は、従って6ビットの回路
211〜216から構成され、それぞれの回路は制御信
号SF1,2に応じて何れのビットを入力するかのセレ
クトを行う。The shift circuit 21 in FIG. 6 performs arithmetic left shift processing on data that cannot be adapted to the fixed-point data format and has been normalized for denormalization. In this example, an instruction of no shift, 1-bit shift or 2-bit shift is given by the control signals SF1 and SF2, and accordingly, the 4-bit data A1 to A4 are not shifted, or 1-bit or 2-bit data is not processed. Performs arithmetic left shift processing. The shift circuit 21 is therefore composed of 6-bit circuits 211 to 216, and each circuit selects which bit to input according to the control signals SF1 and SF2.
【0044】乗算回路22は、ブースのアルゴリズムに
より構成された例である。このアルゴリズムについて
は、例えば「デジタル信号処理システム」東京大学出版
会発行、持田侑宏、高橋宣明、津田俊隆、本間光一著、
等に解説されている通り、一般に良く知られている。ブ
ースのアルゴリズムに従えば、乗数のビットの組み合わ
せをデコードして、そのデコード結果に応じて適宜被乗
数をシフト処理して加減算を行うことで、部分積の加減
算の回数を減らすことができ、その分回路を簡単にする
ことができる。The multiplication circuit 22 is an example constituted by the Booth algorithm. This algorithm is described in, for example, "Digital Signal Processing System" published by The University of Tokyo Press, written by Yoshihiro Mochida, Nobuaki Takahashi, Toshitaka Tsuda, Koichi Honma,
Etc., as is generally known. According to Booth's algorithm, the combination of bits of the multiplier is decoded, the multiplicand is appropriately shifted according to the decoding result, and addition and subtraction are performed, so that the number of times of addition and subtraction of the partial product can be reduced. The circuit can be simplified.
【0045】この乗算回路22の例は、乗数B1〜B4
をデコードするブースデコーダ221、222、加減算
を指示する制御信号SGとデコード信号との排他的論理
和回路223、224、それぞれ3ビットのシフトビッ
トSFB1,2を与えられてシフト回路21の出力を適
宜シフトするブースセレクタ225〜236、更にブー
スセレクタの出力をそれぞれ加算する加算器237〜2
45を有する。その結果、2つのデータA,Bの乗算結
果がデータM1〜M11として出力される。The example of the multiplication circuit 22 includes multipliers B1 to B4
Booth decoders 221 and 222, exclusive OR circuits 223 and 224 of a control signal SG for instructing addition and subtraction and a decode signal, and 3-bit shift bits SFB1 and SFB2, respectively, to appropriately output the shift circuit 21. Booth selectors 225 to 236 for shifting, and adders 237 to 2 for respectively adding outputs of the booth selectors
45. As a result, the result of multiplication of the two data A and B is output as data M1 to M11.
【0046】そして、加算回路23はそれらのデータM
1〜M11とデータC1〜C11の和を演算する加算器
250〜260から構成される。それぞれの加算器はキ
ャリービットが発生すると上位の加算器にそのキャリー
ビットを与えている。The addition circuit 23 calculates the data M
1 to M11 and adders 250 to 260 for calculating the sum of the data C1 to C11. When a carry bit occurs, each adder gives the carry bit to a higher-order adder.
【0047】シフト回路24は、11個のセレクタから
構成され、シフト制御信号ASFに従って、4ビットの
算術右シフト処理を行う。右シフトが指令されると、こ
の例では、加算器254〜260の出力がシフト回路2
4の24(1)〜24(7)に供給されて、24(7)
〜24(11)には強制的に0がセレクトされる。ま
た、算術右シフト処理が必要ない時は、シフト処理は行
われない。The shift circuit 24 is composed of eleven selectors, and performs a 4-bit arithmetic right shift process according to the shift control signal ASF. When a right shift is commanded, in this example, the outputs of the adders 254 to 260 are
4 (1) to 24 (7), and 24 (7)
For 24 to (11), 0 is forcibly selected. When the arithmetic right shift processing is not required, the shift processing is not performed.
【0048】尚、4ビットのデータAをシフトした6ビ
ットデータと4ビットのデータBとの乗算であればその
演算結果は10ビット出力で足りる。しかしながら、積
和演算を多数回繰り返す様なプログラムルーチンにおい
て、途中で積和演算結果がその10ビットをオーバーフ
ローしてもそのビットを失うことなく保持できる様に、
図6の例では1ビット分(X11)余分に加算回路23
やシフト回路24を設けている。もちろん、複数ビット
余分にシフト回路24、加算回路23を設けても良い。In the case of multiplication of 4-bit data B and 6-bit data obtained by shifting 4-bit data A, a 10-bit output is sufficient as the operation result. However, in a program routine in which the product-sum operation is repeated many times, even if the product-sum operation result overflows the 10 bits in the middle, the bit can be retained without losing the bit.
In the example of FIG. 6, the adder circuit 23 has an extra bit (X11) for one bit.
And a shift circuit 24. Needless to say, the shift circuit 24 and the adder circuit 23 may be provided with a plurality of extra bits.
【0049】図5、6に示した積和回路では、シフト回
路21と24とが個別に制御信号SF,ASFにより制
御される。無論、1マシンサイクル内に両方のシフト回
路で算術左シフト処理と算術右シフト処理とが実行され
る場合もある。In the product-sum circuits shown in FIGS. 5 and 6, shift circuits 21 and 24 are individually controlled by control signals SF and ASF. Of course, the arithmetic left shift process and the arithmetic right shift process may be executed by both shift circuits within one machine cycle.
【0050】尚、図5、6ではシフト回路21、24が
両方設けられた積和回路の例がしめされているが、何れ
か一方のシフト回路を設けた積和回路であっても本発明
の目的を達成することができる。Although FIGS. 5 and 6 show an example of the product-sum circuit provided with both the shift circuits 21 and 24, the present invention can be applied to a product-sum circuit provided with either one of the shift circuits. Can achieve the purpose.
【0051】[0051]
【発明の効果】以上説明した通り、本発明によれば、積
和回路内に、固定小数点のデータフォーマットに対応さ
せた正規化された係数の為の逆正規化の算術左シフトの
回路と、倍精度演算等で必要な算術右シフト回路を追加
した。その結果、従来積和演算とは別のマシンサイクル
で実行していたシフト命令を省略することができ、短い
マシンサイクルでの演算を可能にする。As described above, according to the present invention, in the multiply-accumulate circuit, an arithmetic left shift circuit for inverse normalization for normalized coefficients corresponding to a fixed-point data format, Added an arithmetic right shift circuit required for double precision arithmetic etc. As a result, it is possible to omit a shift instruction that has been conventionally executed in a machine cycle different from the product-sum operation, thereby enabling an operation in a short machine cycle.
【図1】本発明の実施の形態にかかるDSPの概略的な
ブロック図である。FIG. 1 is a schematic block diagram of a DSP according to an embodiment of the present invention.
【図2】図1のDSPにより、メモリRAM1内の乗数
と、メモリRAM2内の被乗数とを乗算してレジスタr
eg3内の値と加算を行う場合のタイミングフローチャ
ート図である。2 multiplies a multiplier in a memory RAM1 and a multiplicand in a memory RAM2 by a DSP of FIG.
It is a timing flowchart figure in case of performing addition with the value in eg3.
【図3】固定小数点でデータフォーマットされた例を説
明する図である。FIG. 3 is a diagram illustrating an example in which data is formatted in a fixed point.
【図4】倍精度データを乗算する場合を説明する図であ
る。FIG. 4 is a diagram illustrating a case of multiplying double precision data.
【図5】本発明の実施の形態のシフト回路付きの積和回
路の概略ブロック図である。FIG. 5 is a schematic block diagram of a product-sum circuit with a shift circuit according to the embodiment of the present invention.
【図6】図5の積和回路の詳細ブロック回路図である。FIG. 6 is a detailed block circuit diagram of the product-sum circuit of FIG. 5;
10 積和回路 21 シフト回路(第一のシフト回路) 22 乗算回路 23 加算回路 24 シフト回路(第二のシフト回路) reg1,2,3 レジスタ Reference Signs List 10 sum-of-products circuit 21 shift circuit (first shift circuit) 22 multiplication circuit 23 addition circuit 24 shift circuit (second shift circuit) reg1,2,3 register
Claims (7)
スタに接続され、 該第一のレジスタからの第一の入力データを第一のシフ
ト制御信号に従って0または所定ビットの算術左シフト
する第一のシフト回路と、 該第二のレジスタからの第二の入力データと該第一のシ
フト回路の出力との乗算演算を行う乗算回路と、 該第三のレジスタからの第三の入力データと該乗算回路
の乗算出力との加算演算を行う加算回路とを有すること
を特徴とする積和回路。1. A first, second, and third register for holding data, wherein first input data from the first register is arithmetically operated with 0 or a predetermined bit according to a first shift control signal. A first shift circuit for shifting; a multiplication circuit for performing a multiplication operation of second input data from the second register and an output of the first shift circuit; and a third circuit from the third register. A product-sum circuit, comprising: an addition circuit that performs an addition operation on input data and a multiplication output of the multiplication circuit.
スタに接続され、 該第一のレジスタからの第一の入力データと該第二のレ
ジスタからの第二の入力データとの乗算演算を行う乗算
回路と、 該第三のレジスタからの第三の入力データと該乗算回路
の乗算出力との加算演算を行う加算回路と、 該加算回路の出力を第二のシフト制御信号に従って0ま
たは所定ビットの算術右シフトする第二のシフト回路と
を有することを特徴とする積和回路。And a second register connected to the first register for storing data, wherein the first input data from the first register and the second input data from the second register are connected to each other. A multiplication circuit for performing a multiplication operation; an addition circuit for performing an addition operation of the third input data from the third register and a multiplication output of the multiplication circuit; and an output of the addition circuit according to a second shift control signal. A second shift circuit for performing an arithmetic right shift of 0 or a predetermined bit.
スタに接続され、 該第一のレジスタからの第一の入力データを第一のシフ
ト制御信号に従って0または所定ビットの算術左シフト
する第一のシフト回路と、 該第二のレジスタからの第二の入力データと該第一のシ
フト回路の出力との乗算演算を行う乗算回路と、 該第三のレジスタからの第三の入力データと該乗算回路
の乗算出力との加算演算を行う加算回路と、 該加算回路の出力を第二のシフト制御信号に従って0ま
たは所定ビットの算術右シフトする第二のシフト回路と
を有することを特徴とする積和回路。3. The first input data from the first register is connected to first, second, and third registers for holding data, and the first input data from the first register is arithmetically operated by a 0 or a predetermined bit according to a first shift control signal. A first shift circuit for shifting; a multiplication circuit for performing a multiplication operation of second input data from the second register and an output of the first shift circuit; and a third circuit from the third register. An addition circuit for performing an addition operation of the input data and a multiplication output of the multiplication circuit; and a second shift circuit for arithmetically shifting the output of the addition circuit by 0 or a predetermined bit to the right according to a second shift control signal. A sum-of-products circuit.
ト数と第二の入力データのビット数を加算したビット数
よりも多いビット数に対応できる様に構成されているこ
とを特徴とする。4. The multiply-accumulate circuit according to claim 2, wherein said second shift circuit is larger than the number of bits obtained by adding the number of bits of said first input data and the number of bits of second input data. It is characterized in that it is configured to correspond to the number of bits.
ト数と第二の入力データのビット数を加算したビット数
よりも多いビット数に対応できる様に構成されているこ
とを特徴とする。5. The multiply-accumulate circuit according to claim 3, wherein said second shift circuit is larger than the number of bits obtained by adding the number of bits of said first shift circuit and the number of bits of second input data. It is characterized in that it is configured to correspond to the number of bits.
て、 前記加算回路が、前記第一のシフト回路のビット数と第
二の入力データのビット数を加算したビット数よりも多
いビット数に対応できる様に構成されていることを特徴
とする。6. The multiply-accumulate circuit according to claim 1, wherein said adder circuit has a larger number of bits than the number of bits obtained by adding the number of bits of said first shift circuit and the number of bits of second input data. It is characterized by being constituted so that it can respond to.
二の入力データのビット数を加算したビット数よりも多
いビット数に対応できる様に構成されていることを特徴
とする。7. The multiply-accumulate circuit according to claim 2, wherein said adder circuit sets the number of bits larger than the number of bits obtained by adding the number of bits of the first input data and the number of bits of the second input data. It is characterized in that it is configured to be compatible.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8214500A JPH1063641A (en) | 1996-08-14 | 1996-08-14 | Product sum circuit with shift |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8214500A JPH1063641A (en) | 1996-08-14 | 1996-08-14 | Product sum circuit with shift |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH1063641A true JPH1063641A (en) | 1998-03-06 |
Family
ID=16656748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8214500A Withdrawn JPH1063641A (en) | 1996-08-14 | 1996-08-14 | Product sum circuit with shift |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH1063641A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1311055A2 (en) | 2001-11-08 | 2003-05-14 | Kabushiki Kaisha Moric | Starter for engine |
-
1996
- 1996-08-14 JP JP8214500A patent/JPH1063641A/en not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1311055A2 (en) | 2001-11-08 | 2003-05-14 | Kabushiki Kaisha Moric | Starter for engine |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5991785A (en) | Determining an extremum value and its index in an array using a dual-accumulation processor | |
US6209017B1 (en) | High speed digital signal processor | |
US6009451A (en) | Method for generating barrel shifter result flags directly from input data | |
US6115729A (en) | Floating point multiply-accumulate unit | |
US5726924A (en) | Exponentiation circuit utilizing shift means and method of using same | |
US5862067A (en) | Method and apparatus for providing high numerical accuracy with packed multiply-add or multiply-subtract operations | |
US4866652A (en) | Floating point unit using combined multiply and ALU functions | |
US11816448B2 (en) | Compressing like-magnitude partial products in multiply accumulation | |
JPH10214176A (en) | Device for quickly calculating transcendental function | |
TWI493453B (en) | Microprocessor, video decoding device, method and computer program product for enhanced precision sum-of-products calculation on a microprocessor | |
US8316071B2 (en) | Arithmetic processing unit that performs multiply and multiply-add operations with saturation and method therefor | |
US6038675A (en) | Data processing circuit | |
TWI776213B (en) | Hardware circuit and method for multiplying sets of inputs, and non-transitory machine-readable storage device | |
US8909687B2 (en) | Efficient FIR filters | |
JPH11327875A (en) | Arithmetic circuit | |
JPH1063641A (en) | Product sum circuit with shift | |
US5539684A (en) | Method and apparatus for calculating floating point exponent values | |
Ashenhurst | The Maniac III arithmetic system | |
JPS6222178A (en) | Multiplier for multiplying two complex numbers | |
KR100251547B1 (en) | Digital signal processor | |
JP3336986B2 (en) | Signal processor and multiply-accumulate unit with rounding function used therefor | |
KR100315303B1 (en) | Digital signal processor | |
JPH06301710A (en) | Method and device for double precision product-sum operation | |
CN116756465A (en) | Computing unit, computing core, data computing method, chip and electronic device | |
JPH0414173A (en) | Fixed point product sum computing element |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20031104 |