JP2765516B2 - Multiply-accumulate unit - Google Patents

Multiply-accumulate unit

Info

Publication number
JP2765516B2
JP2765516B2 JP7153915A JP15391595A JP2765516B2 JP 2765516 B2 JP2765516 B2 JP 2765516B2 JP 7153915 A JP7153915 A JP 7153915A JP 15391595 A JP15391595 A JP 15391595A JP 2765516 B2 JP2765516 B2 JP 2765516B2
Authority
JP
Japan
Prior art keywords
partial product
bits
operation step
bit
output
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.)
Expired - Fee Related
Application number
JP7153915A
Other languages
Japanese (ja)
Other versions
JPH08328828A (en
Inventor
恒平 撫原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
Nippon Electric Co 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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP7153915A priority Critical patent/JP2765516B2/en
Priority to US08/640,701 priority patent/US5784305A/en
Publication of JPH08328828A publication Critical patent/JPH08328828A/en
Application granted granted Critical
Publication of JP2765516B2 publication Critical patent/JP2765516B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【産業上の利用分野】本発明は、積和演算器に関し、特
にCSA(Carry Save Adder。キャリ
セーブ加算器)ツリーを有して固定小数点積和演算を行
う積和演算器に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a product-sum operation unit, and more particularly to a product-sum operation unit having a CSA (Carry Save Adder: Carry Save Adder) tree for performing a fixed-point product-sum operation.

【0002】[0002]

【従来の技術】以前より、パーソナル・コンピュータや
エンジニアリング・ワークステーション等に採用される
汎用マイクロプロセッサは、符号付き整数乗算命令を命
令セットに備えていた。
2. Description of the Related Art Conventionally, general-purpose microprocessors employed in personal computers, engineering workstations, and the like have a signed integer multiply instruction in an instruction set.

【0003】ところで、近年、音声,オーディオまたは
画像の圧縮および伸長等のために、いわゆるディジタル
信号処理を高速に行う必要が生じてきた。
In recent years, it has become necessary to perform so-called digital signal processing at high speed in order to compress and decompress voice, audio or image.

【0004】したがって、最近のマイクロプロセッサで
は、上述の既存の命令セット(符号付き整数乗算命令を
備えた命令セット)に加えて、ディジタル信号処理で頻
繁に用いられる符号付き固定小数点積和演算を行うため
の符号付き固定小数点積和演算命令が命令セットに追加
されることが一般的になりつつある。
Therefore, in recent microprocessors, in addition to the above-mentioned existing instruction set (an instruction set having a signed integer multiplication instruction), a signed fixed-point multiply-accumulate operation frequently used in digital signal processing is performed. It is becoming common to add a signed fixed-point multiply-accumulate operation instruction to the instruction set.

【0005】このように、マイクロプロセッサの命令セ
ットに符号付き固定小数点積和演算命令を追加すること
により、次のような利点が生じる。すなわち、従来であ
れば、符号付き乗算命令および符号付き加算命令の2命
令で行われていた処理が、符号付き固定小数点積和演算
命令だけで(すなわち、1命令で)行えるようになるた
め、デジタル信号処理を大幅に高速化することができ
る。
[0005] By adding a signed fixed-point multiply-accumulate operation instruction to the instruction set of the microprocessor, the following advantages are obtained. That is, conventionally, the processing performed by two instructions of the signed multiplication instruction and the signed addition instruction can be performed only by the signed fixed-point multiply-add instruction (that is, by one instruction). Digital signal processing can be significantly speeded up.

【0006】本発明は、このようなマイクロプロセッサ
(ディジタル信号処理性能を強化したマイクロプロセッ
サ)に内蔵するための積和演算器(符号付き固定小数点
積和演算が可能な積和演算器)を対象とするものであ
る。
The present invention is directed to a product-sum operation unit (a product-sum operation unit capable of performing a fixed-point product-sum operation with a sign) built in such a microprocessor (a microprocessor having enhanced digital signal processing performance). It is assumed that.

【0007】ここで、本発明で対象とする積和演算器に
は、33ビット長の符号付き被乗数Xと、32ビット長
の符号付き乗数Yと、同じく32ビット長の加算値Zと
が入力されるものとする。ただし、被乗数Xは、32ビ
ット長の任意の符号付き数を33ビット長に符号拡張し
た値,または33ビット長の任意の正数であるものとす
る。
Here, a multiplicand X with a sign of 33 bits, a signed multiplier Y with a sign of 32 bits, and an addition value Z also with a sign of 32 bits are input to the multiply-accumulate unit targeted by the present invention. Shall be performed. However, the multiplicand X is a value obtained by sign-extending an arbitrary 32-bit signed number to a 33-bit length, or an arbitrary positive number having a 33-bit length.

【0008】この種の積和演算器では、次のおよび
に示すような処理が必要になる(図4参照)。なお、本
発明で対象とする積和演算器で採用される固定小数点数
表現は、最上位ビット側に小数点を固定する表現である
ものとする。
In this kind of product-sum operation unit, the following processing is required (see FIG. 4). It is assumed that the fixed-point number representation employed in the product-sum operation unit according to the present invention is an expression in which a decimal point is fixed on the most significant bit side.

【0009】 被乗数Xと乗数Yとの符号付き乗算を
行って65ビット長の中間結果を得る。
[0009] Signed multiplication of the multiplicand X and the multiplier Y is performed to obtain an intermediate result having a length of 65 bits.

【0010】 その中間結果の上位側33ビットに、
加算値Zが1ビット符号拡張された33ビット長の値を
符号付き加算して、65ビット長の結果Rを出力する。
In the upper 33 bits of the intermediate result,
Signed addition is performed on a 33-bit length value obtained by sign-extending the addition value Z by 1 bit, and a 65-bit length result R is output.

【0011】この種の積和演算器における「乗算を行う
手法」としては、乗数Yの一部と被乗数X全体とからブ
ースのデコーダで部分積を生成し、生成した複数個の部
分積をCSAツリーで加算する手法が一般的である。
As a "multiplication method" in this kind of multiply-accumulate unit, a partial product is generated by a Booth decoder from a part of the multiplier Y and the entire multiplicand X, and the generated partial products are CSA. A method of adding by a tree is general.

【0012】ブースのデコーダの構成手法は、ウェステ
(Neil H.E.Weste)らによる「プリンシ
プルズ・オブ・シーモス・ブイエルエスアイ・デザイ
ン,ア・システムズ・パースペクティブ,セカンド・エ
ディション(PRINCIPLES OF CMOS
VLSI DESIGN,A Systems Per
spective,Second Edition),
Addison−Wesley Publishing
Company,ISBN 0−201−53376
−6,第547〜555頁」に示されている。
The method of constructing the booth decoder is described in "Principles of Cimos VSI Design, A Systems Perspective, Second Edition" by Neil HE. Weste et al.
VLSI DESIGN, A Systems Per
selective, Second Edition),
Addison-Wesley Publishing
Company, ISBN 0-201-53376
-6, pp. 547-555 ".

【0013】ここで、ブースのデコーダについての基本
的な考え方を説明する(この考え方における各式ならび
に図5および図6は、後述する本発明の実施例の説明に
おいても引用する)。
Here, the basic concept of the Booth decoder will be described (Equations in this concept and FIGS. 5 and 6 will be referred to in the description of embodiments of the present invention described later).

【0014】今、符号付き33ビット長の被乗数Xと符
号付き33ビット長の乗数Yとの積P(P=X×Y)を
求めたいとする。
Now, it is assumed that a product P (P = X × Y) of a signed 33-bit multiplicand X and a signed 33-bit length multiplier Y is to be obtained.

【0015】被乗数Xおよび乗数Yの各ビット(最下位
ビットを第0ビットとしたときの第iビット(iは0ま
たは正整数))をそれぞれxi およびyi と示すと、被
乗数Xおよび乗数Yは次式で表される。
When the bits of the multiplicand X and the multiplier Y (the i-th bit (i is 0 or a positive integer) when the least significant bit is the 0th bit) are denoted by x i and y i , respectively, the multiplicand X and the multiplier Y is represented by the following equation.

【0016】[0016]

【数1】 (Equation 1)

【0017】乗数Yをブースのデコーダで以下のように
3ビット単位に分割すると、乗数Yを次のように書き換
えることができる。
When the multiplier Y is divided into three bits by a Booth decoder as follows, the multiplier Y can be rewritten as follows.

【0018】[0018]

【数2】 (Equation 2)

【0019】式(4)で定義されるYj (jは−1,0
または正整数)は、乗数Yの各ビット(y-1を含む)の
うちの3つのビットの組み合わせによって、−2,−
1,0,1,および2のいずれかの値をとる。すなわ
ち、図5に示すように、y(2j+1),y2j,およびy
(2j-1)の3つのビットの全ての組み合わせ(0または1
の組み合わせ)を検討しても、上記5つの値のうちのい
ずれかの値しかとらない。
Y j defined by equation (4) (j is −1,0
Or a positive integer) is -2,-by the combination of three bits of each bit (including y- 1 ) of the multiplier Y.
It takes one of the values 1, 0, 1, and 2. That is, as shown in FIG. 5, y (2j + 1) , y 2j , and y
All combinations of the three bits of (2j-1) (0 or 1
), Only one of the above five values is obtained.

【0020】求めたい積Pは、次式のように表される。The product P to be obtained is expressed by the following equation.

【0021】[0021]

【数3】 (Equation 3)

【0022】ここで、 Pj =X・Yj (6) とおくと、このPj は、各Yj の値について、図6に示
す方法(生成法)で生成することができる。すなわち、
j の値が負の場合には、被乗数Xの各ビットxi を反
転してcj =1を加算することにより、被乗数Xの2の
補数が求められる。
Here, if P j = X · Y j (6), this P j can be generated by the method (generation method) shown in FIG. 6 for each Y j value. That is,
If the value of Y j is negative, by adding the c j = 1 inverts each bit x i of the multiplicand X, the 2's complement of the multiplicand X is determined.

【0023】このPj をビット単位に書き表わすと、次
式のようになる(同式中のPjiおよびcj については図
6を参照されたい)。
When this P j is written in bit units, the following equation is obtained (for P ji and c j in the equation, see FIG. 6).

【0024】[0024]

【数4】 (Equation 4)

【0025】被乗数Xが33ビット長であり、Yj が−
2,1,0,1,または2であるので、Pj は最大34
ビット長になりうる。
The multiplicand X is 33 bits long and Y j is-
2, 1, 0, 1, or 2, P j is 34 at the maximum.
It can be bit length.

【0026】次に、上述のようにして求めた積Pに加算
値Zを加算し、積和演算の結果Rを求める考え方につい
て説明する。
Next, the concept of adding the addition value Z to the product P obtained as described above and obtaining the result R of the product-sum operation will be described.

【0027】符号付き固定小数点32ビット長の加算値
Zは、各ビットをzi と示し、z32=z31として1ビッ
トの符号拡張を行えば、次式のように表される。
The addition value Z having a fixed-point fixed-point 32-bit length is represented by the following equation when each bit is represented by z i and sign extension of one bit is performed by setting z 32 = z 31 .

【0028】[0028]

【数5】 (Equation 5)

【0029】したがって、積和演算の結果Rは、式
(5),(7)および(8)より、次式で表される。
Therefore, the result R of the product-sum operation is expressed by the following equation from equations (5), (7) and (8).

【0030】[0030]

【数6】 (Equation 6)

【0031】式(9)中の負数部Nの2の補数化を次式
のようにして行い、加算器で扱えるようにする。ここ
で、被乗数Xおよび乗数Yが32ビット長の負の最大値
であり加算値Zが正の最大値であるときに、積和演算の
結果Rは最大65ビット長になるので、当該演算は65
ビット長で行われる。
The two's complement conversion of the negative part N in the equation (9) is performed as in the following equation so that it can be handled by the adder. Here, when the multiplicand X and the multiplier Y are the negative maximum value having a 32-bit length and the addition value Z is the positive maximum value, the result R of the product-sum operation has a maximum length of 65 bits. 65
Performed in bit length.

【0032】[0032]

【数7】 (Equation 7)

【0033】このNを用いると、積和演算の結果Rは次
式で表される。
Using this N, the result R of the product-sum operation is expressed by the following equation.

【0034】[0034]

【数8】 (Equation 8)

【0035】式(13)より、積和演算の結果Rを求め
るには、ブースのデコーダを用いて式(13)に示すさ
れる各項目を全て生成し、CSAツリーで加算すればよ
いことが分かる。
From the equation (13), in order to obtain the result R of the product-sum operation, it is necessary to generate all the items shown in the equation (13) using the Booth's decoder and add them in the CSA tree. I understand.

【0036】次に、このような考え方に基づく従来の積
和演算器(固定小数点積和演算器)の構成および動作に
ついて、図7〜図9を参照しながら説明する。
Next, the configuration and operation of a conventional product-sum operation unit (fixed-point product-sum operation unit) based on such a concept will be described with reference to FIGS.

【0037】図7に示す積和演算器は、この種の積和演
算器の一例であり、第1のセレクタ101と、第2のセ
レクタ102と、第3のセレクタ103と、第4のセレ
クタ104と、ブースのデコーダ105と、11入力C
SAツリー106と、第1のパイプライン・レジスタ1
07と、第2のパイプライン・レジスタ108と、キャ
リ伝播加算器109と、符号拡張器110とを含んで構
成されている。
The product-sum operation unit shown in FIG. 7 is an example of this type of product-sum operation unit, and includes a first selector 101, a second selector 102, a third selector 103, and a fourth selector 104, booth decoder 105, and 11 inputs C
SA tree 106 and first pipeline register 1
07, a second pipeline register 108, a carry propagation adder 109, and a sign extender 110.

【0038】図7に示す構成の積和演算器では、基本的
に上述の考え方(式(13)によって積和演算の結果R
を求める考え方)を採用しながらも、部分積の生成およ
び加算を複数回に分割して行うことで、ハードウェア量
を削減している。なお、このような積和演算器と同種の
技術は、特開平4−205624号公報(直並列型乗算
器)に開示されている。ただし、特開平4−20562
4号公報に示された構成の直並列型乗算器では、部分積
加算の途中結果として、CSAに続いてキャリ伝播加算
器を通した後の単一の値を保持しているが、図7に示す
積和演算器の構成では、部分積加算の途中結果としてC
SAの出力であるハーフサムとハーフキャリとの組を保
持して演算を高速化している。
In the product-sum operation unit having the configuration shown in FIG. 7, the result R of the product-sum operation is basically calculated according to the above-mentioned concept (Equation (13)).
), The amount of hardware is reduced by dividing and generating the partial product a plurality of times. A technique similar to such a product-sum operation unit is disclosed in Japanese Patent Application Laid-Open No. 4-205624 (series-parallel type multiplier). However, JP-A-4-20562
In the serial / parallel type multiplier having the configuration disclosed in Japanese Patent Application Laid-Open No. 4 (1999) -1995, a single value after passing through the carry propagation adder following the CSA is held as an intermediate result of the partial product addition. In the configuration of the product-sum operation unit shown in FIG.
The operation is speeded up by holding a set of half sum and half carry, which are the outputs of SA.

【0039】次に、図7に示す積和演算器の動作につい
て、図8および図9を参照しながら説明する。
Next, the operation of the product-sum operation unit shown in FIG. 7 will be described with reference to FIGS.

【0040】図7に示す積和演算器は、ハードウェア量
を削減するために、部分積の生成および加算を「第1の
演算ステップ」と「第2の演算ステップ」との2回に分
けて行う。
The product-sum operation unit shown in FIG. 7 divides the generation and addition of partial products into two operations of a "first operation step" and a "second operation step" in order to reduce the amount of hardware. Do it.

【0041】第1に、第1の演算ステップにおける演算
実行時の動作を説明する。
First, the operation at the time of executing the operation in the first operation step will be described.

【0042】第1の演算ステップでは、被乗数Xと乗数
Yの下位16ビットとが乗算され、演算前半(第1の演
算ステップ)の演算結果(途中演算結果)が生成され
る。
In the first operation step, the multiplicand X and the lower 16 bits of the multiplier Y are multiplied to generate the operation result (intermediate operation result) of the first half of the operation (first operation step).

【0043】第1のセレクタ101は、演算ステップ切
替えビット(第1の演算ステップの演算を行うか第2の
演算ステップの演算を行うかを示す1ビット長の情報。
この場合には第1の演算ステップの演算を行う旨を示し
ている)を参照し、乗数Yの下位16ビットを選択出力
する。
The first selector 101 has an operation step switching bit (1-bit information indicating whether to perform the operation of the first operation step or the operation of the second operation step).
In this case, the calculation in the first calculation step is performed), and the lower 16 bits of the multiplier Y are selectively output.

【0044】また、第2のセレクタ102は、第1の演
算ステップの演算を行う旨を示している演算ステップ切
替えビットを参照し、第2の定数を選択出力する。ここ
で、第2の定数とは、式(13)における1・232(j
=0の場合の1・2(32+2j))とcn (1・231)とを
示す数値をいう(図8参照)。
Further, the second selector 102 selects and outputs a second constant with reference to an operation step switching bit indicating that the operation of the first operation step is performed. Here, the second constant is 1.232 (j in Expression (13).
= 1 · 2 (32 + 2j ) in the case of 0) and refers to a number indicating the c n (1 · 2 31) ( see FIG. 8).

【0045】さらに、第3のセレクタ103は、第1の
演算ステップの演算を行う旨を示している演算ステップ
切替えビットを参照し、全ビット0を示す定数(値0の
定数)を選択出力する。
Further, the third selector 103 selects and outputs a constant (constant of value 0) indicating all bits 0 with reference to the operation step switching bit indicating that the operation of the first operation step is performed. .

【0046】加えて、第4のセレクタ104は、第1の
演算ステップの演算を行う旨を示している演算ステップ
切替えビットを参照し、第1の定数を選択出力する。こ
こで、第1の定数とは、式(13)におけるcz (1・
31)とc15・230(j=15の場合のcj ・22j)と
7 ・214(j=7の場合のcj ・22j)とを示す数値
をいう(図8参照)。
In addition, the fourth selector 104 selects and outputs a first constant with reference to an operation step switching bit indicating that the operation of the first operation step is performed. Here, the first constant is c z (1 ·
2 31 ), c 15 · 2 30 (c j · 2 2j when j = 15) and c 7 · 2 14 (c j · 2 2j when j = 7) (FIG. 8). reference).

【0047】ブースのデコーダ105は、被乗数Xと第
1のセレクタ101の出力とを入力し、第1のセレクタ
101の出力を切出し開始位置を最上位ビットから2ビ
ットずつ下位ビットに移動しながら3ビット単位で切り
出した値を第8の部分積生成器,第7の部分積生成器,
第6の部分積生成器,第5の部分積生成器,第4の部分
積生成器,第3の部分積生成器,第2の部分積生成器,
および第1の部分積生成器に供給し、これらの値と被乗
数Xの値とから第8の部分積生成器〜第1の部分積生成
器により第8の部分積〜第1の部分積(被乗数Xと乗数
Yの下位16ビットとを乗算したときの8個の部分積P
7 〜P0 )を生成する。
The booth decoder 105 receives the multiplicand X and the output of the first selector 101, and cuts out the output of the first selector 101 to shift the start position from the most significant bit to the lower bit by two bits at a time. An eighth partial product generator, a seventh partial product generator,
A sixth partial product generator, a fifth partial product generator, a fourth partial product generator, a third partial product generator, a second partial product generator,
And the first partial product generator, and from these values and the value of the multiplicand X, from the eighth partial product generator to the first partial product generator, the eighth partial product to the first partial product ( Eight partial products P when multiplicand X is multiplied by lower 16 bits of multiplier Y
7 to P 0 ).

【0048】各部分積は、図5に示すように被乗数Xを
−2,−1,0,1,または2倍した値となり、図6に
示すようにして生成される。なお、部分積P0 〜P7
は式(13)における1・2(32+2j) (j=1〜8)を
示すビットが付加され、部分積P1 〜P7 には式(1
3)におけるcj ・22j(j=0〜6)を示すビットが
付加される(図8参照。このように部分積に付加される
ビットによって表される情報を「付加ビット情報」と呼
ぶ)。ここで、cj の値は、Yj の値に基づいて、図6
に示すように決定される。
Each partial product has a value obtained by multiplying the multiplicand X by -2, -1, 0, 1, or 2 as shown in FIG. 5, and is generated as shown in FIG. A bit indicating 1.2 (32 + 2j) (j = 1 to 8) in the equation (13) is added to the partial products P 0 to P 7, and the equation (1) is added to the partial products P 1 to P 7.
A bit indicating c j · 2 2j (j = 0 to 6) in 3) is added (see FIG. 8. The information represented by the bit added to the partial product in this manner is called “additional bit information”. ). Here, the value of c j is calculated based on the value of Y j in FIG.
Is determined as shown in FIG.

【0049】11入力CSAツリー106は、当該8個
の部分積(ブースのデコーダ105内の第1の部分積生
成器〜第8の部分積生成器によって生成される部分積。
付加ビット情報を含む),第2のセレクタ102の出
力,第3のセレクタ103の出力,および第4のセレク
タ104の出力を第1入力〜第11入力として入力し、
それらを加算し、その加算結果をハーフサムとハーフキ
ャリとの組として出力する。
The 11-input CSA tree 106 includes the eight partial products (the partial products generated by the first to eighth partial product generators in the Booth decoder 105).
Including the additional bit information), the output of the second selector 102, the output of the third selector 103, and the output of the fourth selector 104 as first to eleventh inputs.
They are added, and the addition result is output as a set of a half sum and a half carry.

【0050】当該ハーフサムおよびハーフキャリは、第
1の演算ステップの演算結果として、それぞれ、第1の
パイプライン・レジスタ107および第2のパイプライ
ン・レジスタ108に保持される。
The half sum and the half carry are held in the first pipeline register 107 and the second pipeline register 108, respectively, as the operation result of the first operation step.

【0051】なお、図8に、第1の演算ステップにおけ
る11入力CSAツリー106の各入力(ビット列)お
よび各出力(ハーフサムおよびハーフキャリのビット
列)の一覧を示す。
FIG. 8 shows a list of each input (bit string) and each output (half-sum and half-carry bit string) of the 11-input CSA tree 106 in the first operation step.

【0052】第2に、第2の演算ステップにおける演算
実行時の動作を説明する。
Second, the operation at the time of executing the calculation in the second calculation step will be described.

【0053】第2の演算ステップでは、被乗数Xと乗数
Yの上位17ビットとが乗算され、その乗算結果と第1
の演算ステップにおける演算結果と加算値Zとが加算さ
れ、最終的な積和演算の結果Rが生成される。
In the second operation step, the multiplicand X is multiplied by the upper 17 bits of the multiplier Y, and the result of the multiplication is multiplied by the first
Is added to the addition value Z to generate the final product-sum operation result R.

【0054】符号拡張器110は、加算値Zに対する1
ビットの符号拡張を行う。これにより、加算値Zは33
ビット長になる。
The sign extender 110 calculates 1
Performs bit sign extension. Thus, the added value Z is 33
It becomes bit length.

【0055】第1のセレクタ101は、第2の演算ステ
ップの演算を行う旨を示している演算ステップ切替えビ
ット(第1の演算ステップから第2の演算ステップへの
移行時に演算ステップ切替えビットの情報は切り替えら
れる)を参照し、乗数Yの上位17ビットを選択出力す
る。
The first selector 101 has an operation step switching bit indicating that the operation of the second operation step is to be performed (the information of the operation step switching bit at the time of transition from the first operation step to the second operation step). Is switched), and the higher 17 bits of the multiplier Y are selectively output.

【0056】また、第2のセレクタ102は、第2の演
算ステップの演算を行う旨を示している演算ステップ切
替えビットを参照し、第2のパイプライン・レジスタ1
08に保持されている値(第1の演算ステップの演算結
果のうちのハーフキャリ)の上位35ビットを選択出力
する。
Further, the second selector 102 refers to the operation step switching bit indicating that the operation of the second operation step is to be performed, and makes the second pipeline register 1
The upper 35 bits of the value held in 08 (half carry of the operation result of the first operation step) are selectively output.

【0057】さらに、第3のセレクタ103は、第2の
演算ステップの演算を行う旨を示している演算ステップ
切替えビットを参照し、符号拡張器110の出力(符号
拡張された加算値Z)を選択出力する。
Further, the third selector 103 refers to the operation step switching bit indicating that the operation in the second operation step is to be performed, and outputs the output of the sign extender 110 (the sign-extended added value Z). Select output.

【0058】加えて、第4のセレクタ104は、第2の
演算ステップの演算を行う旨を示している演算ステップ
切替えビットを参照し、第1のパイプライン・レジスタ
107に保持されている値(第1の演算ステップの演算
結果のうちのハーフサム)の上位34ビットを選択出力
する。
In addition, the fourth selector 104 refers to the operation step switching bit indicating that the operation of the second operation step is to be performed, and refers to the value held in the first pipeline register 107 ( The upper 34 bits of the half-sum of the operation result of the first operation step are selectively output.

【0059】ブースのデコーダ105は、被乗数Xと第
1のセレクタ101の出力とを入力し、第1のセレクタ
101の出力を切出し開始位置を最上位ビットから2ビ
ットずつ下位ビットに移動しながら3ビット単位で切り
出した値を第8の部分積生成器,第7の部分積生成器,
第6の部分積生成器,第5の部分積生成器,第4の部分
積生成器,第3の部分積生成器,第2の部分積生成器,
および第1の部分積生成器に供給し、これらの値と被乗
数Xの値とから第8の部分積生成器〜第1の部分積生成
器により第8の部分積〜第1の部分積(被乗数Xと乗数
Yの上位17ビットとを乗算したときの8個の部分積P
15〜P8 )を生成する。
The booth decoder 105 receives the multiplicand X and the output of the first selector 101, and cuts out the output of the first selector 101 to shift the start position from the most significant bit to the lower bit by two bits at a time. An eighth partial product generator, a seventh partial product generator,
A sixth partial product generator, a fifth partial product generator, a fourth partial product generator, a third partial product generator, a second partial product generator,
And the first partial product generator, and from these values and the value of the multiplicand X, from the eighth partial product generator to the first partial product generator, the eighth partial product to the first partial product ( Eight partial products P obtained by multiplying the multiplicand X and the higher 17 bits of the multiplier Y
15 to P 8 ).

【0060】各部分積は、図5に示すように被乗数Xを
−2,−1,0,1,または2倍した値となり、図6に
示すようにして生成される。なお、部分積P8 〜P14
は式(13)における1・2(32+2j) (j=9〜15)
を示すビットが付加され、部分積P9 〜P15には式(1
3)におけるcj ・22j(j=8〜14)を示すビット
が付加される(図9参照)。
Each partial product has a value obtained by multiplying the multiplicand X by -2, -1, 0, 1, or 2 as shown in FIG. 5, and is generated as shown in FIG. It should be noted that the partial products P 8 to P 14 have a value of 1.2 (32 + 2j) (j = 9 to 15) in the equation (13).
Are added, and the partial products P 9 to P 15 are given by the formula (1).
A bit indicating c j · 2 2j (j = 8 to 14) in 3) is added (see FIG. 9).

【0061】11入力CSAツリー106は、当該8個
の部分積(ブースのデコーダ105内の第1の部分積生
成器〜第8の部分積生成器によって生成される部分積。
付加ビット情報を含む),第2のセレクタ102の出
力,第3のセレクタ103の出力,および第4のセレク
タ104の出力を第1入力〜第11入力として入力し、
それらを加算し、その加算結果をハーフサムとハーフキ
ャリとの組として出力する。
The 11-input CSA tree 106 includes the eight partial products (the partial products generated by the first to eighth partial product generators in the Booth decoder 105).
Including the additional bit information), the output of the second selector 102, the output of the third selector 103, and the output of the fourth selector 104 as first to eleventh inputs.
They are added, and the addition result is output as a set of a half sum and a half carry.

【0062】キャリ伝播加算器109は、以下のの値
およびの値を加算し、単一の結果R(当該積和演算の
結果R)を得て出力する(以下のの値およびの値を
対象としてキャリ伝播加算を行う)。 49ビット長のハーフサム(第2の演算ステップで
求められたハーフサム)と、第1の演算ステップで求め
られたハーフサムの下位16ビット(第1のパイプライ
ン・レジスタ107に保持されている値の下位16ビッ
ト)とを連結した値(図8および図9参照) 48ビット長のハーフキャリ(第2の演算ステップ
で求められたハーフキャリ)と、第1の演算ステップで
求められたハーフキャリの下位15ビット(第2のパイ
プライン・レジスタ108に保持されている値の下位1
5ビット)とを連結した値(図8および図9参照)
Carry propagation adder 109 adds the following value and the following value to obtain and output a single result R (result R of the product-sum operation) (the following values and Carry propagation addition). A 49-bit half-sum (half-sum obtained in the second operation step) and the lower 16 bits of the half-sum obtained in the first operation step (lower value of the value held in the first pipeline register 107) 8 and 9 (see FIGS. 8 and 9). A half carry having a length of 48 bits (a half carry obtained in the second operation step) and a lower part of the half carry obtained in the first operation step 15 bits (lower 1 of the value held in the second pipeline register 108)
5 bits) (see FIGS. 8 and 9)

【0063】なお、図9に、第2の演算ステップにおけ
る11入力CSAツリー106の各入力(ビット列)お
よび各出力(ハーフサムおよびハーフキャリのビット
列)の一覧を示す。
FIG. 9 shows a list of each input (bit string) and each output (half-sum and half-carry bit string) of the 11-input CSA tree 106 in the second operation step.

【0064】式(13)中の各項目は、必ず、図8また
は図9中の入力のビット列に含まれている。したがっ
て、第1の演算ステップおよび第2の演算ステップのい
ずれかで、式(13)中の各項目の値は11入力CSA
ツリー106により入力され加算されることになる。
Each item in the equation (13) is always included in the input bit string in FIG. 8 or FIG. Therefore, in either the first operation step or the second operation step, the value of each item in the equation (13) is set to 11 input CSA.
The data is input and added by the tree 106.

【0065】[0065]

【発明が解決しようとする課題】上述した従来の積和演
算器(図7に示すような積和演算器)では、符号拡張さ
れた加算値Z全体が第2の演算ステップで加算されてい
るので、第2の演算ステップではCSAツリーで11個
の値を入力して加算する必要があり(図9参照)、入力
数が11のCSAツリーを用意する必要がある。CSA
ツリーの入力数が多くなると、当該CSAツリーの構成
が複雑になり、当該CSAツリーを実現するためのハー
ドウェア量の増大および当該CSAツリーを使用した演
算の遅延(加算器段数が増えることによる積和演算器全
体の動作速度の低下)が生じうるという問題点がある。
In the above-described conventional product-sum operation unit (product-sum operation unit as shown in FIG. 7), the entire sign-extended addition value Z is added in the second operation step. Therefore, in the second operation step, it is necessary to input and add 11 values in the CSA tree (see FIG. 9), and it is necessary to prepare a CSA tree having 11 inputs. CSA
When the number of tree inputs increases, the configuration of the CSA tree becomes complicated, the amount of hardware for realizing the CSA tree increases, and the delay of the operation using the CSA tree (the product due to the increase in the number of adder stages). However, there is a problem that the operating speed of the entire sum operation unit may be reduced.

【0066】本発明の目的は、上述の点に鑑み、符号拡
張された加算値Zを2分割するビット分割器を設けるこ
と等により、CSAツリーの入力数を削減することがで
き、ハードウェア量が少なくてすみ、高速に動作しうる
積和演算器を提供することにある。
In view of the above, an object of the present invention is to provide a bit divider for dividing the sign-extended addition value Z into two parts, thereby reducing the number of inputs to the CSA tree and reducing the amount of hardware. It is an object of the present invention to provide a multiply-accumulate unit which requires only a small amount of data and can operate at high speed.

【0067】すなわち、本発明の目的は、33ビット長
に符号拡張された加算値Zをビット分割器によって上位
15ビットと下位18ビットとに分割し、符号拡張され
た加算値Zのうちの下位18ビットは第1の定数と連結
して第1の演算ステップでCSAツリーに与え、符号拡
張された加算値Zのうちの上位15ビットは第1の演算
ステップにおけるハーフサムの上位34ビットと連結し
て第2の演算ステップでCSAツリーに与えることによ
り、CSAツリーの入力数を削減することにある。
That is, an object of the present invention is to divide an addition value Z sign-extended to a 33-bit length into upper 15 bits and lower 18 bits by a bit divider, and The 18 bits are concatenated with the first constant and provided to the CSA tree in the first operation step, and the upper 15 bits of the sign-extended addition value Z are concatenated with the upper 34 bits of the half sum in the first operation step. In the second operation step, the number of inputs to the CSA tree is reduced by providing the data to the CSA tree.

【0068】[0068]

【課題を解決するための手段】本発明の積和演算器は、
33ビット長の符号付き被乗数X,32ビット長の符号
付き乗数Y,および32ビット長の加算値Zを入力し、
これらの積和であるX×Y+Zを結果Rとして出力する
積和演算器において、加算値Zに対して1ビットの符号
拡張を行う符号拡張器と、前記符号拡張器の出力を下位
18ビットと上位15ビットとに分割するビット分割器
と、第1の演算ステップでは乗数Yの下位16ビットを
選択出力し、第2の演算ステップでは乗数Yの上位17
ビットを選択出力する第1のセレクタと、第1の演算ス
テップでは第2の定数を選択出力し、第2の演算ステッ
プでは第2のパイプライン・レジスタに保持されている
値の上位35ビットを選択出力する第2のセレクタと、
第1の演算ステップでは前記ビット分割器の出力の下位
18ビットと第1の定数とを連結した値を選択出力し、
第2の演算ステップでは前記ビット分割器の出力の上位
15ビットと第1のパイプライン・レジスタに保持され
ている値の上位34ビットとを連結した値を選択出力す
る第3のセレクタと、前記第1のセレクタの出力を切出
し開始位置を最上位ビットから2ビットずつ下位ビット
に移動しながら3ビット単位で切り出した値を第8の部
分積生成器,第7の部分積生成器,第6の部分積生成
器,第5の部分積生成器,第4の部分積生成器,第3の
部分積生成器,第2の部分積生成器,および第1の部分
積生成器に供給し、これらの値と被乗数Xの値とから第
8の部分積,第7の部分積,第6の部分積,第5の部分
積,第4の部分積,第3の部分積,第2の部分積,およ
び第1の部分積を生成するブースのデコーダと、前記ブ
ースのデコーダによって生成された第1の部分積,第2
の部分積,第3の部分積,第4の部分積,第5の部分
積,第6の部分積,第7の部分積,および第8の部分積
と前記第2のセレクタの出力と前記第3のセレクタの出
力と付加ビット情報群とを加算する10入力CSAツリ
ーと、第1の演算ステップにおける前記10入力CSA
ツリーの出力のうちのハーフサムを保持する前記第1の
パイプライン・レジスタと、第1の演算ステップにおけ
る前記10入力CSAツリーの出力のうちのハーフキャ
リを保持する前記第2のパイプライン・レジスタと、第
2の演算ステップで前記10入力CSAツリーにより出
力されたハーフサムと第1の演算ステップで前記第1の
パイプライン・レジスタに保持されたハーフサムの下位
16ビットとを連結した値,および第2の演算ステップ
で前記10入力CSAツリーにより出力されたハーフキ
ャリと第1の演算ステップで前記第2のパイプライン・
レジスタに保持されたハーフキャリの下位15ビットと
を連結した値を対象としてキャリ伝播加算を行うキャリ
伝播加算器とを有する。
According to the present invention, a multiply-accumulate unit according to the present invention comprises:
A signed multiplicand X having a length of 33 bits, a signed multiplier Y having a length of 32 bits, and an addition value Z having a length of 32 bits are input.
In a product-sum operation unit that outputs X × Y + Z, which is the sum of these products, as a result R, a sign extender that performs one-bit sign extension on the addition value Z, A bit divider for dividing into upper 15 bits, a lower 16 bits of the multiplier Y are selectively output in the first operation step, and a higher 17 bits of the multiplier Y are output in the second operation step.
A first selector for selecting and outputting a bit; and a first operation step for selectively outputting a second constant. In the second operation step, the upper 35 bits of the value held in the second pipeline register are read. A second selector for selecting and outputting;
In a first operation step, a value obtained by connecting the lower 18 bits of the output of the bit divider and a first constant is selected and output;
A second selector for selecting and outputting a value obtained by connecting the upper 15 bits of the output of the bit divider and the upper 34 bits of the value held in the first pipeline register; While shifting the output of the first selector from the most significant bit to the lower bit by two bits from the most significant bit, the values extracted in units of 3 bits are used as the values of the eighth partial product generator, the seventh partial product generator, and the sixth partial product generator. , A fifth partial product generator, a fourth partial product generator, a third partial product generator, a second partial product generator, and a first partial product generator, From these values and the value of the multiplicand X, the eighth partial product, the seventh partial product, the sixth partial product, the fifth partial product, the fourth partial product, the third partial product, and the second partial product A Booth decoder for generating a product and a first partial product; First partial product generated Te, the second
, The third partial product, the fourth partial product, the fifth partial product, the sixth partial product, the seventh partial product, the eighth partial product, the output of the second selector, A 10-input CSA tree for adding the output of the third selector and the additional bit information group, and the 10-input CSA tree in the first operation step
A first pipeline register for holding a half sum of an output of the tree, and a second pipeline register for holding a half carry of an output of the 10-input CSA tree in a first operation step; A value obtained by concatenating the half sum output by the 10-input CSA tree in the second operation step and the lower 16 bits of the half sum held in the first pipeline register in the first operation step; and The half carry output by the 10-input CSA tree in the operation step and the second pipeline in the first operation step.
A carry propagation adder that performs carry propagation addition on a value obtained by connecting the lower 15 bits of the half carry held in the register.

【0069】[0069]

【作用】本発明の積和演算器では、33ビット長の符号
付き被乗数X,32ビット長の符号付き乗数Y,および
32ビット長の加算値Zを入力しこれらの積和であるX
×Y+Zを結果Rとして出力する積和演算器において、
符号拡張器が加算値Zに対して1ビットの符号拡張を行
い、ビット分割器が符号拡張器の出力を下位18ビット
と上位15ビットとに分割し、第1のセレクタが第1の
演算ステップでは乗数Yの下位16ビットを選択出力し
第2の演算ステップでは乗数Yの上位17ビットを選択
出力し、第2のセレクタが第1の演算ステップでは第2
の定数を選択出力し第2の演算ステップでは第2のパイ
プライン・レジスタに保持されている値の上位35ビッ
トを選択出力し、第3のセレクタが第1の演算ステップ
ではビット分割器の出力の下位18ビットと第1の定数
とを連結した値を選択出力し第2の演算ステップではビ
ット分割器の出力の上位15ビットと第1のパイプライ
ン・レジスタに保持されている値の上位34ビットとを
連結した値を選択出力し、ブースのデコーダが第1のセ
レクタの出力を切出し開始位置を最上位ビットから2ビ
ットずつ下位ビットに移動しながら3ビット単位で切り
出した値を第8の部分積生成器,第7の部分積生成器,
第6の部分積生成器,第5の部分積生成器,第4の部分
積生成器,第3の部分積生成器,第2の部分積生成器,
および第1の部分積生成器に供給しこれらの値と被乗数
Xの値とから第8の部分積,第7の部分積,第6の部分
積,第5の部分積,第4の部分積,第3の部分積,第2
の部分積,および第1の部分積を生成し、10入力CS
Aツリーがブースのデコーダによって生成された第1の
部分積,第2の部分積,第3の部分積,第4の部分積,
第5の部分積,第6の部分積,第7の部分積,および第
8の部分積と第2のセレクタの出力と第3のセレクタの
出力と付加ビット情報群とを加算し、第1のパイプライ
ン・レジスタが第1の演算ステップにおける10入力C
SAツリーの出力のうちのハーフサムを保持し、第2の
パイプライン・レジスタが第1の演算ステップにおける
10入力CSAツリーの出力のうちのハーフキャリを保
持し、キャリ伝播加算器が第2の演算ステップで10入
力CSAツリーにより出力されたハーフサムと第1の演
算ステップで第1のパイプライン・レジスタに保持され
たハーフサムの下位16ビットとを連結した値,および
第2の演算ステップで10入力CSAツリーにより出力
されたハーフキャリと第1の演算ステップで第2のパイ
プライン・レジスタに保持されたハーフキャリの下位1
5ビットとを連結した値を対象としてキャリ伝播加算を
行う。
In the multiply-accumulate unit of the present invention, a signed multiplicand X having a length of 33 bits, a signed multiplier Y having a length of 32 bits, and an addition value Z having a length of 32 bits are inputted, and X, which is the product sum of these,
In a product-sum operation unit that outputs × Y + Z as a result R,
The sign extender performs one-bit sign extension on the addition value Z, the bit divider divides the output of the sign extender into lower 18 bits and upper 15 bits, and the first selector performs the first operation step. Selects and outputs the lower 16 bits of the multiplier Y, selects and outputs the upper 17 bits of the multiplier Y in the second operation step, and selects the second 16 bits in the first operation step.
In the second operation step, selects and outputs the upper 35 bits of the value held in the second pipeline register. In the first operation step, the third selector outputs the output of the bit divider. And outputs a value obtained by concatenating the lower 18 bits of the first constant with the lower 15 bits of the output of the bit divider and the upper 34 bits of the value held in the first pipeline register in the second operation step. A value obtained by concatenating the bits is selected and output, and the Booth decoder cuts out the output of the first selector and shifts the start position from the most significant bit to the lower bit by two bits at a time in units of three bits, and outputs the value extracted in the eighth bit. Partial product generator, seventh partial product generator,
A sixth partial product generator, a fifth partial product generator, a fourth partial product generator, a third partial product generator, a second partial product generator,
And the values supplied to the first partial product generator and these values and the value of the multiplicand X to calculate an eighth partial product, a seventh partial product, a sixth partial product, a fifth partial product, and a fourth partial product. , The third partial product, the second
, And a first partial product of 10 inputs CS
The A-tree is generated by the Booth decoder using the first partial product, the second partial product, the third partial product, the fourth partial product,
The fifth partial product, the sixth partial product, the seventh partial product, the eighth partial product, the output of the second selector, the output of the third selector, and the additional bit information group are added, and the first Pipeline registers have 10 inputs C in the first operation step
The second pipeline register holds the half carry of the output of the 10-input CSA tree in the first operation step, and the carry propagation adder holds the second operation of the second operation. A value obtained by concatenating the half sum output by the 10-input CSA tree in the step and the lower 16 bits of the half sum held in the first pipeline register in the first operation step, and the 10-input CSA in the second operation step The half carry output by the tree and the lower one of the half carry held in the second pipeline register in the first operation step
Carry propagation addition is performed on a value obtained by concatenating 5 bits.

【0070】[0070]

【実施例】次に、本発明について図面を参照して詳細に
説明する。
Next, the present invention will be described in detail with reference to the drawings.

【0071】図1は、本発明の積和演算器の一実施例の
構成を示すブロック図である。
FIG. 1 is a block diagram showing the configuration of one embodiment of the product-sum operation unit of the present invention.

【0072】本実施例の積和演算器は、33ビット長の
符号付き被乗数X,32ビット長の符号付き乗数Y,お
よび32ビット長の加算値Zを入力し、これらの積和で
あるX×Y+Zを結果Rとして出力する積和演算器であ
る。この積和演算器は、第1のセレクタ1と、第2セレ
クタ2と、第3のセレクタ3と、ブースのデコーダ4
と、ビット分割器5と、10入力CSAツリー6と、第
1のパイプライン・レジスタ7と、第2のパイプライン
・レジスタ8と、キャリ伝播加算器9と、符号拡張器1
0とを含んで構成されている。
The product-sum operation unit of this embodiment receives a signed multiplicand X having a length of 33 bits, a signed multiplier Y having a length of 32 bits, and an addition value Z having a length of 32 bits. A product-sum calculator that outputs × Y + Z as a result R. The multiply-accumulate unit includes a first selector 1, a second selector 2, a third selector 3, and a booth decoder 4.
, A bit divider 5, a 10-input CSA tree 6, a first pipeline register 7, a second pipeline register 8, a carry propagation adder 9, and a sign extender 1.
0 is included.

【0073】ブースのデコーダ4は、第1の部分積生成
器〜第8の部分積生成器を含んで構成されている。
The Booth's decoder 4 includes a first to an eighth partial product generator.

【0074】図2は、本実施例の積和演算器における第
1の演算ステップでの10入力CSAツリー6の各入力
(ビット重みを表すためのビット開始位置およびビット
長を示したビット列)および各出力(ハーフサムおよび
ハーフキャリのビット列)の一覧を示す図である。
FIG. 2 shows each input of the 10-input CSA tree 6 (a bit string indicating a bit start position and a bit length for representing a bit weight) in a first operation step in the product-sum operation unit of this embodiment and FIG. 6 is a diagram showing a list of each output (bit string of half sum and half carry).

【0075】図3は、本実施例の積和演算器における第
2の演算ステップでの10入力CSAツリー6の各入力
(ビット列)および各出力(ハーフサムおよびハーフキ
ャリのビット列)の一覧を示す図である。
FIG. 3 is a diagram showing a list of each input (bit string) and each output (bit string of half sum and half carry) of the 10-input CSA tree 6 in the second operation step in the product-sum operation unit of the present embodiment. It is.

【0076】図5および図6は、先にも言及したが、本
実施例の積和演算器の動作を説明するための図(本発明
で採用されるブースのデコーダの考え方を説明するため
の図)である。
FIGS. 5 and 6 are diagrams for describing the operation of the multiply-accumulate unit according to the present embodiment (refer to FIGS. 5 and 6 for explaining the concept of the booth decoder employed in the present invention). Figure).

【0077】次に、図1とともに図2および図3を参照
して、このように構成された本実施例の積和演算器の動
作について説明する。
Next, with reference to FIG. 1 and FIGS. 2 and 3, the operation of the multiply-accumulate unit according to the present embodiment will be described.

【0078】図1に示す本実施例の積和演算器は、ハー
ドウェア量を削減するために、部分積の生成および加算
を「第1の演算ステップ」と「第2の演算ステップ」と
の2回に分けて行う(この点は図7に示す従来の積和演
算器と同様である)。
The product-sum operation unit of the present embodiment shown in FIG. 1 performs generation and addition of partial products by a “first operation step” and a “second operation step” in order to reduce the amount of hardware. This operation is performed twice (this is the same as the conventional product-sum operation unit shown in FIG. 7).

【0079】第1に、第1の演算ステップにおける演算
実行時の動作を説明する。
First, the operation at the time of executing the calculation in the first calculation step will be described.

【0080】本実施例の積和演算器は、第1の演算ステ
ップでは、被乗数Xと乗数Yの下位16ビットとを乗算
し、さらに加算値Zの一部(下位18ビット)を加算
し、途中演算結果を生成する。
In the first operation step, the product-sum operation unit of this embodiment multiplies the multiplicand X by the lower 16 bits of the multiplier Y and further adds a part (lower 18 bits) of the addition value Z. Generate the intermediate calculation result.

【0081】符号拡張器10は、加算値Zに対する1ビ
ットの符号拡張を行う。これにより、加算値Zは33ビ
ット長になる。
The sign extender 10 performs 1-bit sign extension on the addition value Z. Thereby, the addition value Z becomes 33 bits long.

【0082】ビット分割器5は、符号拡張器10の出力
(符号拡張された加算値Z)を下位18ビットと上位1
5ビットとに分割する。
The bit divider 5 converts the output of the sign extender 10 (sign-extended addition value Z) into the lower 18 bits and the upper 1
Divide into 5 bits.

【0083】第1のセレクタ1は、演算ステップ切替え
ビット(第1の演算ステップの演算を行うか第2の演算
ステップの演算を行うかを示す1ビット長の情報。この
場合には第1の演算ステップの演算を行う旨を示してい
る)を参照し、乗数Yの下位16ビットを選択出力す
る。
The first selector 1 has an operation step switching bit (1-bit information indicating whether to perform the operation of the first operation step or the operation of the second operation step. In this case, the lower 16 bits of the multiplier Y are selectively output.

【0084】また、第2のセレクタ2は、第1の演算ス
テップの演算を行う旨を示している演算ステップ切替え
ビットを参照し、第2の定数を選択出力する。ここで、
第2の定数とは、式(13)における1・232(j=0
の場合の1・2(32+2j) )とcn (1・231)とを示す
数値をいう(図2参照)。
The second selector 2 selects and outputs a second constant with reference to an operation step switching bit indicating that the operation of the first operation step is performed. here,
The second constant is equal to 1.232 (j = 0) in Expression (13).
In the case of (1) (32 + 2j) ) and c n (1 · 2 31 ) (see FIG. 2).

【0085】さらに、第3のセレクタ3は、第1の演算
ステップの演算を行う旨を示している演算ステップ切替
えビットを参照し、ビット分割器5の出力の下位18ビ
ット(ビット分割器5によって出力された「符号拡張さ
れた加算値Zの下位18ビット」)と第1の定数とを連
結した値を選択出力する。ここで、第1の定数とは、式
(13)におけるcz (1・231)とc15・230(j=
15の場合のcj ・22j)とc7 ・214(j=7の場合
のcj ・22j)とを示す数値をいう(図2参照)。
Further, the third selector 3 refers to the operation step switching bit indicating that the operation of the first operation step is performed, and the lower 18 bits of the output of the bit divider 5 (by the bit divider 5). A value obtained by connecting the output “lower 18 bits of sign-extended added value Z”) and the first constant is selected and output. Here, the first constant is c z (1 · 2 31 ) and c 15 · 2 30 (j =
The numerical values indicate c j · 2 2j in the case of 15 and c 7 · 2 14 (c j · 2 2j in the case of j = 7) (see FIG. 2).

【0086】ブースのデコーダ4は、被乗数Xと第1の
セレクタ1の出力とを入力し、第1のセレクタ1の出力
を切出し開始位置を最上位ビットから2ビットずつ下位
ビットに移動しながら3ビット単位で切り出した値を第
8の部分積生成器,第7の部分積生成器,第6の部分積
生成器,第5の部分積生成器,第4の部分積生成器,第
3の部分積生成器,第2の部分積生成器,および第1の
部分積生成器に供給し、これらの値と被乗数Xの値とか
ら第8の部分積生成器〜第1の部分積生成器により第8
の部分積〜第1の部分積(被乗数Xと乗数Yの下位16
ビットとを乗算したときの8個の部分積P7 〜P0 )を
生成する。
The Booth's decoder 4 receives the multiplicand X and the output of the first selector 1 and cuts out the output of the first selector 1 while shifting the start position from the most significant bit to the lower bits by two bits. An eighth partial product generator, a seventh partial product generator, a sixth partial product generator, a fifth partial product generator, a fourth partial product generator, a third partial product generator, The partial product generator, the second partial product generator, and the first partial product generator are supplied to each other, and from these values and the value of the multiplicand X, an eighth partial product generator to a first partial product generator are provided. By the 8th
Product to the first partial product (lower 16 of multiplicand X and multiplier Y)
Eight partial products P 7 to P 0 ) are generated when multiplied by a bit.

【0087】各部分積は、図5に示すように被乗数Xを
−2,−1,0,1,または2倍した値となり、図6に
示すようにして生成される。なお、図7に示す従来の積
和演算器と同様に、部分積P0 〜P7 には式(13)に
おける1・2(32+2j) (j=1〜8)を示すビットが付
加され、部分積P1 〜P7 には式(13)におけるcj
・22j(j=0〜6)を示すビットが付加される(図2
参照。先に述べたように、各部分積に付加されるビット
によって表される情報を「付加ビット情報」と呼ぶ)。
ここで、cj の値は、Yj の値に基づいて、図6に示す
ように決定される。
Each partial product is a value obtained by multiplying the multiplicand X by -2, -1, 0, 1, or 2 as shown in FIG. 5, and is generated as shown in FIG. As in the conventional product-sum operation unit shown in FIG. 7, the partial product P 0 to P 7 bits added showing the Formula 1 and 2 in (13) (32 + 2j) (j = 1~8) And the partial products P 1 to P 7 have c j in equation (13).
A bit indicating 2 2j (j = 0 to 6) is added (FIG. 2)
reference. As described above, information represented by bits added to each partial product is called "additional bit information").
Here, the value of c j is determined based on the value of Y j as shown in FIG.

【0088】10入力CSAツリー6は、当該8個の部
分積(ブースのデコーダ4内の第1の部分積生成器〜第
8の部分積生成器によって生成される部分積。付加ビッ
ト情報を含む),第2のセレクタ2の出力,および第3
のセレクタ3の出力を第1入力〜第10入力として入力
し、それらを加算し、その加算結果をハーフサムとハー
フキャリとの組として出力する。
The 10-input CSA tree 6 includes the eight partial products (the partial products generated by the first to eighth partial product generators in the Booth's decoder 4 and includes additional bit information). ), The output of the second selector 2 and the third
Of the selector 3 are input as first to tenth inputs, and they are added, and the addition result is output as a set of a half sum and a half carry.

【0089】当該ハーフサムおよびハーフキャリは、第
1の演算ステップの演算結果として、それぞれ、第1の
パイプライン・レジスタ7および第2のパイプライン・
レジスタ8に保持される。
The half sum and the half carry are used as a result of the first operation step as a first pipeline register 7 and a second pipeline register, respectively.
It is held in the register 8.

【0090】第2に、第2の演算ステップにおける演算
実行時の動作を説明する。
Second, the operation at the time of executing the calculation in the second calculation step will be described.

【0091】本実施例の積和演算器は、第2の演算ステ
ップでは、被乗数Xと乗数Yの上位17ビットとを乗算
し、さらに第1の演算ステップの演算結果および加算値
Zの一部(第1の演算ステップで加算しなかった上位1
5ビット)を加算し、最終的な積和演算の結果Rを生成
する。
In the second operation step, the multiply-accumulate unit of this embodiment multiplies the multiplicand X by the higher 17 bits of the multiplier Y, and further calculates the result of the first operation step and a part of the added value Z. (Top 1 not added in the first calculation step
5 bits) to generate a final product-sum operation result R.

【0092】なお、第1の演算ステップから第2の演算
ステップへの移行時には、演算ステップ切替えビットが
「第1の演算ステップを行う旨を示す情報」から「第2
の演算ステップを行う旨を示す情報」に切り替えられ
る。
At the time of transition from the first operation step to the second operation step, the operation step switching bit changes from “information indicating that the first operation step is performed” to “second operation step”.
Information indicating that the calculation step is performed ”.

【0093】第1のセレクタ1は、第2の演算ステップ
の演算を行う旨を示している演算ステップ切替えビット
を参照し、乗数Yの上位17ビットを選択出力する。
The first selector 1 selects and outputs the upper 17 bits of the multiplier Y with reference to the operation step switching bit indicating that the operation of the second operation step is performed.

【0094】また、第2のセレクタ2は、第2の演算ス
テップの演算を行う旨を示している演算ステップ切替え
ビットを参照し、第2のパイプライン・レジスタ8に保
持されている値(第1の演算ステップの演算結果のうち
のハーフキャリ)の上位35ビットを選択出力する。
Further, the second selector 2 refers to the operation step switching bit indicating that the operation of the second operation step is to be performed, and refers to the value (second value) held in the second pipeline register 8. The upper 35 bits of the half carry of the operation result of the operation step 1 are selectively output.

【0095】さらに、第3のセレクタ3は、第2の演算
ステップの演算を行う旨を示している演算ステップ切替
えビットを参照し、ビット分割器5の出力の上位15ビ
ット(ビット分割器5によって出力された「符号拡張さ
れた加算値Zの上位15ビット」)と第1のパイプライ
ン・レジスタ7に保持されている値(第1の演算ステッ
プの演算結果のうちのハーフサム)の上位34ビットと
を連結した値を選択出力する。
Further, the third selector 3 refers to the operation step switching bit indicating that the operation of the second operation step is performed, and refers to the upper 15 bits of the output of the bit divider 5 (by the bit divider 5). The output “upper 15 bits of sign-extended added value Z”) and the upper 34 bits of the value (half-sum of the operation result of the first operation step) held in first pipeline register 7 Select and output the value concatenated with.

【0096】ブースのデコーダ4は、被乗数Xと第1の
セレクタ1の出力とを入力し、第1のセレクタ1の出力
を切出し開始位置を最上位ビットから2ビットずつ下位
ビットに移動しながら3ビット単位で切り出した値を第
8の部分積生成器,第7の部分積生成器,第6の部分積
生成器,第5の部分積生成器,第4の部分積生成器,第
3の部分積生成器,第2の部分積生成器,および第1の
部分積生成器に供給し、これらの値と被乗数Xの値とか
ら第8の部分積生成器〜第1の部分積生成器により第8
の部分積〜第1の部分積(被乗数Xと乗数Yの上位17
ビットとを乗算したときの8個の部分積P15〜P8 )を
生成する。
The booth decoder 4 receives the multiplicand X and the output of the first selector 1 and cuts out the output of the first selector 1 while shifting the start position from the most significant bit to the lower bit by two bits. An eighth partial product generator, a seventh partial product generator, a sixth partial product generator, a fifth partial product generator, a fourth partial product generator, a third partial product generator, The partial product generator, the second partial product generator, and the first partial product generator are supplied to each other, and from these values and the value of the multiplicand X, an eighth partial product generator to a first partial product generator are provided. By the 8th
Product to the first partial product (upper 17 of multiplicand X and multiplier Y)
Eight partial products P 15 to P 8 ) are generated when multiplied by the bits.

【0097】各部分積は、図5に示すように被乗数Xを
−2,−1,0,1,または2倍した値となり、図6に
示すようにして生成される。なお、図7に示す従来の積
和演算器と同様に、部分積P8 〜P14には式(13)に
おける1・2(32+2j) (j=9〜15)を示すビットが
付加され、部分積P9 〜P15には式(13)におけるc
j ・22j(j=8〜14)を示すビットが付加される
(図3参照)。
Each partial product has a value obtained by multiplying the multiplicand X by -2, -1, 0, 1, or 2 as shown in FIG. 5, and is generated as shown in FIG. As in the conventional product-sum operation unit shown in FIG. 7, the partial products P 8 to P 14-bit additional showing the Formula 1 and 2 in (13) (32 + 2j) (j = 9~15) And the partial products P 9 to P 15 have c in equation (13).
A bit indicating j · 2 2j (j = 8 to 14) is added (see FIG. 3).

【0098】10入力CSAツリー6は、当該8個の部
分積(ブースのデコーダ4内の第1の部分積生成器〜第
8の部分積生成器によって生成される部分積。付加ビッ
ト情報を含む),第2のセレクタ2の出力,および第3
のセレクタ3の出力を第1入力〜第10入力として入力
し、それらを加算し、その加算結果をハーフサムとハー
フキャリとの組として出力する。
The 10-input CSA tree 6 includes the eight partial products (the partial products generated by the first to eighth partial product generators in the Booth's decoder 4 and includes additional bit information). ), The output of the second selector 2 and the third
Of the selector 3 are input as first to tenth inputs, and they are added, and the addition result is output as a set of a half sum and a half carry.

【0099】キャリ伝播加算器9は、以下のの値およ
びの値を加算し、単一の結果R(当該積和演算の結果
R)を得て出力する(以下のの値およびの値を対象
としてキャリ伝播加算を行う)。 49ビット長のハーフサム(第2の演算ステップで
求められたハーフサム)と、第1の演算ステップで求め
られたハーフサムの下位16ビット(第1のパイプライ
ン・レジスタ7に保持されている値の下位16ビット)
とを連結した値(図2および図3参照) 48ビット長のハーフキャリ(第2の演算ステップ
で求められたハーフキャリ)と、第1の演算ステップで
求められたハーフキャリの下位15ビット(第2のパイ
プライン・レジスタ8に保持されている値の下位15ビ
ット)とを連結した値(図2および図3参照)
Carry propagation adder 9 adds the following values and the following values to obtain and output a single result R (result R of the product-sum operation) (the following values and Carry propagation addition). A 49-bit half-sum (half-sum obtained in the second operation step) and the lower 16 bits of the half-sum obtained in the first operation step (lower value of the value held in the first pipeline register 7) 16 bits)
(See FIGS. 2 and 3) A half carry of 48 bits (half carry obtained in the second operation step) and the lower 15 bits of the half carry obtained in the first operation step ( A value concatenated with the lower 15 bits of the value held in the second pipeline register 8 (see FIGS. 2 and 3)

【0100】図7に示した従来の積和演算器では、加算
値Zが符号拡張された値を加算するために、CSAツリ
ー(11入力CSAツリー106)に専用の入力が設け
られていた。これに対して、図1に示す本実施例の積和
演算器では、加算値Zが符号拡張された値が次の〜
に示すような手順でCSAツリー(10入力CSAツリ
ー6)に与えられる。 加算値Zが符号拡張された値が、他の入力値(式
(13)における各項目に対応する入力値)とビット重
みが重ならないようにビット分割器5で分割される。 ビット分割器5の出力の2つの値が、他の入力値と
連結される。 第1の演算ステップと第2の演算ステップとの2回
に分けて、で分割されで他の入力値と連結された
「加算値Zが符号拡張された値」が、CSAツリー(1
0入力CSAツリー6)に与えられる。
In the conventional product-sum operation unit shown in FIG. 7, a dedicated input is provided in the CSA tree (11-input CSA tree 106) in order to add a value obtained by sign-extending the addition value Z. On the other hand, in the product-sum operation unit of the present embodiment shown in FIG.
Is given to the CSA tree (10-input CSA tree 6) according to the procedure shown in FIG. The value obtained by sign-extending the addition value Z is divided by the bit divider 5 so that the bit weight does not overlap with another input value (input value corresponding to each item in the equation (13)). The two values at the output of the bit divider 5 are concatenated with the other input values. The “value in which the addition value Z is sign-extended” divided into two and divided into two by the first operation step and the second operation step and connected to other input values is a CSA tree (1
0 input CSA tree 6).

【0101】このため、従来11個必要であったCSA
ツリーの入力数を10個に減らすことができ、CSAツ
リーにおけるハードウェアの簡素化および演算の遅延の
短縮(動作の高速化)を達成することが可能となる。
For this reason, CSA conventionally required 11
The number of tree inputs can be reduced to ten, and hardware simplification of the CSA tree and shortening of operation delay (speeding up of operation) can be achieved.

【0102】なお、図2および図3を参照すると、式
(13)中の各項目は、必ず、図2または図3中の各入
力のビット列に含まれている。したがって、第1の演算
ステップおよび第2の演算ステップのいずれかで、式
(13)中の各項目の値は10入力CSAツリー6によ
り入力され加算されている。
Referring to FIG. 2 and FIG. 3, each item in equation (13) is always included in the bit string of each input in FIG. 2 or FIG. Therefore, in each of the first operation step and the second operation step, the value of each item in the equation (13) is input by the 10-input CSA tree 6 and added.

【0103】ここで、式(13)中に現れる1・2
(32+2j) (j=0〜16)とcj ・22j(j=0〜1
5)とcz とcn とをどの入力として10入力CSAツ
リー6に与えるかという態様は、図2および図3に示す
態様に限られない。図2および図3に示す位置と同じビ
ット重みの位置に上述の値(1・2(32+2j) (j=0〜
16),cj ・22j(j=0〜15),cz ,およびc
n )を示すビットを入力するのであれば、図2および図
3に示す態様以外の態様も許容される。したがって、第
1の定数および第2の定数の値も、本実施例における値
に限られるものではない。
Here, 1.2 appearing in equation (13)
(32 + 2j) (j = 0 to 16) and c j · 2 2j (j = 0 to 1)
The form in which 5), c z, and c n are given to the 10-input CSA tree 6 is not limited to the forms shown in FIGS. 2 and 3. The above value ( 1.2 (32 + 2j) (j = 0 to 0 ) is added to the position of the same bit weight as the position shown in FIGS.
16), c j · 2 2j (j = 0 to 15), c z , and c
As long as the bit indicating n ) is input, modes other than those shown in FIGS. 2 and 3 are also allowed. Therefore, the values of the first constant and the second constant are not limited to the values in the present embodiment.

【0104】また、本実施例では部分積P0 〜P15に対
する付加ビット情報がブースのデコーダ4側で付加され
るものとしたが、10入力CSAツリー6側でこれらの
付加ビット情報を付加することも可能である。
In the present embodiment, the additional bit information for the partial products P 0 to P 15 is added at the booth decoder 4 side. However, these additional bit information is added at the 10-input CSA tree 6 side. It is also possible.

【0105】なお、第1演算ステップの演算と第2演算
ステップの演算とのいずれを行っているかを示す情報を
第1のセレクタ1,第2のセレクタ2および第3のセレ
クタ3に指示する手法は、本実施例のように「演算ステ
ップ切替えビットによって指示する手法」に限られるも
のではない。
A method of instructing the first selector 1, the second selector 2 and the third selector 3 with information indicating which of the first calculation step and the second calculation step is being performed. Is not limited to the “method instructed by the operation step switching bit” as in the present embodiment.

【0106】[0106]

【発明の効果】以上説明したように本発明は、加算値Z
が符号拡張された値を他の入力値とビット重みが重なら
ないように分割して他の入力値と連結し、当該分割・連
結によって生成された値を第1の演算ステップと第2の
演算ステップとの2回に分けてCSAツリーに与えるこ
とにより、従来は11個必要であったCSAツリーの入
力数を10個に削減することができ(CSAツリーのハ
ードウェア量を削減することができ)、従来の積和演算
器(固定小数点積和演算器)よりもハードウェア量を減
らすことができ、従来の積和演算器よりも動作を高速化
できる(演算の遅延を短縮できる)積和演算器を実現す
ることが可能になるという効果を有する。
As described above, according to the present invention, the sum Z
Is divided so that the bit weight does not overlap with the other input value, and is connected to the other input value. The value generated by the division / concatenation is divided into a first operation step and a second operation By giving to the CSA tree in two steps, the number of inputs of the CSA tree conventionally required 11 can be reduced to 10 (the hardware amount of the CSA tree can be reduced. ), The amount of hardware can be reduced compared to the conventional product-sum operation unit (fixed-point product-sum operation unit), and the operation can be performed faster than the conventional product-sum operation unit (operation delay can be reduced) There is an effect that it becomes possible to realize a computing unit.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の積和演算器の一実施例の構成を示すブ
ロック図である。
FIG. 1 is a block diagram showing a configuration of an embodiment of a product-sum calculator according to the present invention.

【図2】図1に示す積和演算器における第1の演算ステ
ップでの図1中の10入力CSAツリーの各入力および
各出力の一覧を示す図である。
FIG. 2 is a diagram showing a list of each input and each output of a 10-input CSA tree in FIG. 1 in a first operation step in the product-sum operation unit shown in FIG. 1;

【図3】図1に示す積和演算器における第2の演算ステ
ップでの図1中の10入力CSAツリーの各入力および
各出力の一覧を示す図である。
3 is a diagram showing a list of each input and each output of a 10-input CSA tree in FIG. 1 in a second operation step in the product-sum operation unit shown in FIG. 1;

【図4】本発明で対象とする積和演算の態様を示す図で
ある。
FIG. 4 is a diagram showing an aspect of a product-sum operation targeted by the present invention.

【図5】本発明で採用されるブースのデコーダの考え方
を説明し、図1および図7に示す積和演算器の動作を説
明するための図である。
FIG. 5 is a diagram for explaining the concept of the Booth decoder employed in the present invention and explaining the operation of the product-sum operation unit shown in FIGS. 1 and 7;

【図6】本発明で採用されるブースのデコーダの考え方
を説明し、図1および図7に示す積和演算器の動作を説
明するための図である。
FIG. 6 is a diagram for explaining the concept of the Booth decoder employed in the present invention and explaining the operation of the product-sum operation unit shown in FIGS. 1 and 7;

【図7】従来の積和演算器の一例の構成を示すブロック
図である。
FIG. 7 is a block diagram illustrating a configuration of an example of a conventional product-sum operation unit.

【図8】図7に示す積和演算器における第1の演算ステ
ップでの図7中の11入力CSAツリーの各入力および
各出力の一覧を示す図である。
8 is a diagram showing a list of each input and each output of the 11-input CSA tree in FIG. 7 in a first operation step in the product-sum operation unit shown in FIG. 7;

【図9】図7に示す積和演算器における第2の演算ステ
ップでの図7中の11入力CSAツリーの各入力および
各出力の一覧を示す図である。
9 is a diagram showing a list of each input and each output of the 11-input CSA tree in FIG. 7 in a second operation step in the product-sum operation unit shown in FIG. 7;

【符号の説明】[Explanation of symbols]

1 第1のセレクタ 2 第2のセレクタ 3 第3のセレクタ 4 ブースのデコーダ 5 ビット分割器 6 10入力CSAツリー 7 第1のパイプライン・レジスタ 8 第2のパイプライン・レジスタ 9 キャリ伝播加算器 10 符号拡張器 R 結果 X 被乗数 Y 乗数 Z 加算値 DESCRIPTION OF SYMBOLS 1 1st selector 2 2nd selector 3 3rd selector 4 Booth's decoder 5 Bit divider 6 10-input CSA tree 7 1st pipeline register 8 2nd pipeline register 9 Carry propagation adder 10 Sign extender R Result X Multiplicand Y Multiplier Z Add value

Claims (3)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 33ビット長の符号付き被乗数X,32
ビット長の符号付き乗数Y,および32ビット長の加算
値Zを入力し、これらの積和であるX×Y+Zを結果R
として出力する積和演算器において、 加算値Zに対して1ビットの符号拡張を行う符号拡張器
と、 前記符号拡張器の出力を下位18ビットと上位15ビッ
トとに分割するビット分割器と、 第1の演算ステップでは乗数Yの下位16ビットを選択
出力し、第2の演算ステップでは乗数Yの上位17ビッ
トを選択出力する第1のセレクタと、 第1の演算ステップでは第2の定数を選択出力し、第2
の演算ステップでは第2のパイプライン・レジスタに保
持されている値の上位35ビットを選択出力する第2の
セレクタと、 第1の演算ステップでは前記ビット分割器の出力の下位
18ビットと第1の定数とを連結した値を選択出力し、
第2の演算ステップでは前記ビット分割器の出力の上位
15ビットと第1のパイプライン・レジスタに保持され
ている値の上位34ビットとを連結した値を選択出力す
る第3のセレクタと、 前記第1のセレクタの出力を切出し開始位置を最上位ビ
ットから2ビットずつ下位ビットに移動しながら3ビッ
ト単位で切り出した値を第8の部分積生成器,第7の部
分積生成器,第6の部分積生成器,第5の部分積生成
器,第4の部分積生成器,第3の部分積生成器,第2の
部分積生成器,および第1の部分積生成器に供給し、こ
れらの値と被乗数Xの値とから第8の部分積,第7の部
分積,第6の部分積,第5の部分積,第4の部分積,第
3の部分積,第2の部分積,および第1の部分積を生成
するブースのデコーダと、 前記ブースのデコーダによって生成された第1の部分
積,第2の部分積,第3の部分積,第4の部分積,第5
の部分積,第6の部分積,第7の部分積,および第8の
部分積と前記第2のセレクタの出力と前記第3のセレク
タの出力と付加ビット情報群とを加算する10入力CS
Aツリーと、 第1の演算ステップにおける前記10入力CSAツリー
の出力のうちのハーフサムを保持する前記第1のパイプ
ライン・レジスタと、 第1の演算ステップにおける前記10入力CSAツリー
の出力のうちのハーフキャリを保持する前記第2のパイ
プライン・レジスタと、 第2の演算ステップで前記10入力CSAツリーにより
出力されたハーフサムと第1の演算ステップで前記第1
のパイプライン・レジスタに保持されたハーフサムの下
位16ビットとを連結した値,および第2の演算ステッ
プで前記10入力CSAツリーにより出力されたハーフ
キャリと第1の演算ステップで前記第2のパイプライン
・レジスタに保持されたハーフキャリの下位15ビット
とを連結した値を対象としてキャリ伝播加算を行うキャ
リ伝播加算器とを有することを特徴とする積和演算器。
1. A signed multiplicand X, 32 having a length of 33 bits.
A signed multiplier Y having a bit length and an added value Z having a 32-bit length are input, and the product sum X × Y + Z is obtained as a result R
A sign extender that performs 1-bit sign extension on the addition value Z; a bit divider that divides the output of the sign extender into lower 18 bits and upper 15 bits; In the first operation step, the lower 16 bits of the multiplier Y are selectively output, and in the second operation step, the upper 17 bits of the multiplier Y are selectively output. In the first operation step, the second constant is set. Select output, 2nd
A second selector for selecting and outputting the upper 35 bits of the value held in the second pipeline register in the operation step, and a lower 18 bits of the output of the bit divider and the first selector in the first operation step. Select and output the value concatenated with the constant of
A second selector for selecting and outputting a value obtained by connecting the upper 15 bits of the output of the bit divider and the upper 34 bits of the value held in the first pipeline register; While shifting the output of the first selector from the most significant bit to the lower bit by two bits from the most significant bit, the values extracted in units of 3 bits are used as the values of the eighth partial product generator, the seventh partial product generator, and the sixth partial product generator. , A fifth partial product generator, a fourth partial product generator, a third partial product generator, a second partial product generator, and a first partial product generator, From these values and the value of the multiplicand X, the eighth partial product, the seventh partial product, the sixth partial product, the fifth partial product, the fourth partial product, the third partial product, and the second partial product A Booth decoder for generating a product and a first partial product; First partial product generated I, second partial product, the third partial product, the fourth partial product, the fifth
, The sixth partial product, the seventh partial product, the eighth partial product, the output of the second selector, the output of the third selector, and the additional bit information group and a 10-input CS.
An A-tree; the first pipeline register for holding a half-sum of the outputs of the 10-input CSA tree in a first operation step; and an output of the 10-input CSA tree in a first operation step. A second pipeline register for holding a half carry, a half sum output by the 10-input CSA tree in a second operation step, and a first sum in the first operation step.
The value obtained by concatenating the lower 16 bits of the half sum held in the pipeline register of the second register, the half carry output by the 10-input CSA tree in the second operation step, and the second pipe in the first operation step A carry-propagation adder for performing carry-propagation addition on a value obtained by concatenating the lower 15 bits of the half carry held in the line register.
【請求項2】 第1の演算ステップの演算を行うか第2
の演算ステップの演算を行うかを示す演算ステップ切替
えビットを第1のセレクタ,第2のセレクタおよび第3
のセレクタに与えることを特徴とする請求項1記載の積
和演算器。
2. The method according to claim 1, wherein the operation of the first operation step is performed.
The operation step switching bit indicating whether or not to perform the operation of the operation step of the first selector, the second selector, and the third selector
2. The multiply-accumulate unit according to claim 1, wherein the sum is given to the selector.
【請求項3】 第1の定数が「cz とc15・230とc7
・214とを示す数値」であり、 第2の定数が「1・232とcn とを示す数値」であり、 第1の演算ステップで、部分積P0 ,P1 ,P2
3 ,P4 ,P5 ,P6 ,およびP7 に1・2(32+2j)
(j=1,2,3,4,5,6,7,および8)を示す
ビットを付加し、部分積P1 ,P2 ,P3 ,P4
5 ,P6 ,およびP7にcj ・22j(j=0,1,
2,3,4,5,および6)を示すビットを付加し、 第2の演算ステップで、部分積P8 ,P9 ,P10
11,P12,P13,および〜P14に1・2(32+2j) (j
=9,10,11,12,13,14,および15)を
示すビットを付加し、部分積P9 ,P10,P11,P12
13,P14,およびP15にcj ・22j(j=8,9,1
0,11,12,13,および14)を示すビットを付
加することを特徴とする請求項1または請求項2記載の
積和演算器。
3. The first constant is “c z , c 15 · 230 and c 7
- 2 14 and a numerical value "indicating a second constant" number indicating the 1, 2 32 and the c n ", in the first operation step, the partial product P 0, P 1, P 2,
1.2 (32 + 2j) for P 3 , P 4 , P 5 , P 6 , and P 7
(J = 1, 2, 3, 4, 5, 6, 7, and 8) are added, and the partial products P 1 , P 2 , P 3 , P 4 ,
P 5, P 6, and P 7 in the c j · 2 2j (j = 0,1,
2, 3, 4, 5, and 6), and in a second operation step, the partial products P 8 , P 9 , P 10 ,
P 11 , P 12 , P 13 , and ~ P 14 have 1.2 (32 + 2j) (j
= 9, 10, 11, 12, 13, 14, and 15), and the partial products P 9 , P 10 , P 11 , P 12 ,
P 13 , P 14 , and P 15 have c j · 2 2j (j = 8, 9, 1
3. The sum-of-products arithmetic unit according to claim 1, wherein a bit indicating 0, 11, 12, 13, and 14) is added.
JP7153915A 1995-05-01 1995-05-29 Multiply-accumulate unit Expired - Fee Related JP2765516B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP7153915A JP2765516B2 (en) 1995-05-29 1995-05-29 Multiply-accumulate unit
US08/640,701 US5784305A (en) 1995-05-01 1996-05-01 Multiply-adder unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7153915A JP2765516B2 (en) 1995-05-29 1995-05-29 Multiply-accumulate unit

Publications (2)

Publication Number Publication Date
JPH08328828A JPH08328828A (en) 1996-12-13
JP2765516B2 true JP2765516B2 (en) 1998-06-18

Family

ID=15572888

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7153915A Expired - Fee Related JP2765516B2 (en) 1995-05-01 1995-05-29 Multiply-accumulate unit

Country Status (1)

Country Link
JP (1) JP2765516B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6233597B1 (en) 1997-07-09 2001-05-15 Matsushita Electric Industrial Co., Ltd. Computing apparatus for double-precision multiplication
KR20020082919A (en) * 2001-04-24 2002-11-01 엘지전자 주식회사 Method of Scrambling Code Saving
JP5115307B2 (en) 2008-04-25 2013-01-09 富士通セミコンダクター株式会社 Semiconductor integrated circuit

Also Published As

Publication number Publication date
JPH08328828A (en) 1996-12-13

Similar Documents

Publication Publication Date Title
JP3761977B2 (en) Floating-point multiplier with reduced critical path by using delay matching technology and its operation method
US5784305A (en) Multiply-adder unit
JP3667635B2 (en) Arithmetic unit
US5426598A (en) Adder and multiplier circuit employing the same
JPH0713742A (en) Multiplicaton device
JPH0612229A (en) Multiplication and accumulation circuit
JP5640081B2 (en) Integer and multiply-add operations with saturation
JPH0773227A (en) Automatic designing method for logical circuit, system and device therefor and multiplier
JP2765516B2 (en) Multiply-accumulate unit
JP3660075B2 (en) Dividing device
US4823300A (en) Performing binary multiplication using minimal path algorithm
JP3579087B2 (en) Arithmetic unit and microprocessor
JP3252954B2 (en) Multiplication method and multiplication circuit
KR100295646B1 (en) Multiplication method using wallace tree
JPH01251133A (en) Multiplying circuit and method
JP2705640B2 (en) Multiply-accumulate unit
EP0780759A1 (en) Elimination of math overflow flag generation delay in an alu
JPS6259828B2 (en)
Sasipriya et al. Vedic Multiplier Design Using Modified Carry Select Adder with Parallel Prefix Adder
JP2608090B2 (en) High radix non-restoring divider
KR950010451B1 (en) A flight speed multiplier using group tree structure algorithm
JP3462670B2 (en) Calculation execution method and calculation device
Mahmoud et al. A parallel combined binary/decimal fixed-point multiplier with binary partial products reduction tree
JPS593634A (en) Multiplier
Esmaeildoust et al. High Speed Reverse Converter for the Five Moduli Set {2n, 2n-1, 2n+ 1, 2n-3, 2n-1-1}

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080403

Year of fee payment: 10

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090403

Year of fee payment: 11

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100403

Year of fee payment: 12

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110403

Year of fee payment: 13

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120403

Year of fee payment: 14

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120403

Year of fee payment: 14

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130403

Year of fee payment: 15

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130403

Year of fee payment: 15

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140403

Year of fee payment: 16

LAPS Cancellation because of no payment of annual fees