JPH11102353A - Floating-point product-sum operating element - Google Patents

Floating-point product-sum operating element

Info

Publication number
JPH11102353A
JPH11102353A JP9261709A JP26170997A JPH11102353A JP H11102353 A JPH11102353 A JP H11102353A JP 9261709 A JP9261709 A JP 9261709A JP 26170997 A JP26170997 A JP 26170997A JP H11102353 A JPH11102353 A JP H11102353A
Authority
JP
Japan
Prior art keywords
floating
point
product
mantissa
sum operation
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.)
Granted
Application number
JP9261709A
Other languages
Japanese (ja)
Other versions
JP3132436B2 (en
Inventor
Shingo Kojima
伸吾 小嶋
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
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP09261709A priority Critical patent/JP3132436B2/en
Publication of JPH11102353A publication Critical patent/JPH11102353A/en
Application granted granted Critical
Publication of JP3132436B2 publication Critical patent/JP3132436B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To provide a floating-point product-sum operating element simple in configuration, high in performance and increased in product-sum operating speed without causing any overflown digits. SOLUTION: This element has a floating-point multiplier 101 which does not have a right shift circuit for normalization, a digit matching shifter 102 which performs floating-point addition of an intermediate result of product-sum operation and the output of the floating-point multiplier 101, a mantissa adder 103 which adds two mantissa parts having their digits matched by the digit matching shifter 102, and an intermediate result register 106 which holds the intermediate result of the product-sum operation; and normalization in the product-sum operation is omitted by using the intermediate result register 106 which can hold a 4-bit integer part since a one-bit right shift due to a mantissa part overflow after addition is not performed to speed up the product sum operation. Then the product sum operation is advanced in an unnormalized state and after the accumulation of all product items is completed, a normalizing shifter 107 which has both functions for a right and a left shift obtains the final product-sum operation result in the form of a normalized floating-point number.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は、浮動小数点積和演
算器に関し、特に浮動小数点積和演算速度の改善(高速
化)に係る浮動小数点積和演算器に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a floating-point multiply-accumulate unit, and more particularly, to a floating-point multiply-add unit for improving (speeding up) a floating-point multiply-add operation speed.

【0002】[0002]

【従来の技術】近年、デジタル信号処理やソフトウエア
によるデジタルサーボ制御など、高速な積和演算が要求
されるアプリケーションにおいては、高精度化を求める
ために浮動小数点による積和論理演算を要求されること
が多い。
2. Description of the Related Art In recent years, applications requiring a high-speed product-sum operation, such as digital signal processing and digital servo control by software, require a floating-point product-sum logic operation in order to obtain higher precision. Often.

【0003】従来の浮動小数点演算器を用いて積和演算
を行う場合、累算のための浮動小数点加算において演算
後の正規化と丸め処理が毎回行われる。従来の浮動小数
点演算器では、浮動小数点加算のみ独立して実行する場
合があるため、必ず演算語の正規化が行われていた。し
かし、このような浮動小数点演算器において、積和演算
のように加算が繰り返される場合は、加算後の正規化に
よる仮数部左シフトと次の加算での桁合わせによる仮数
部右シフトが両方発生する場合があり、相殺できるにも
関わらず無条件に両方のシフト動作が実行されていたた
めに、積和演算の高速化が困難になっていた。
When performing a product-sum operation using a conventional floating-point arithmetic unit, normalization and rounding after the operation are performed each time in floating-point addition for accumulation. In a conventional floating-point arithmetic unit, since only floating-point addition may be executed independently, normalization of operation words is always performed. However, in such a floating-point arithmetic unit, when addition is repeated as in a product-sum operation, both a mantissa left shift by normalization after addition and a mantissa right shift by digit alignment in the next addition occur. In some cases, both shift operations are executed unconditionally despite the fact that they can be canceled out, making it difficult to speed up the product-sum operation.

【0004】このような問題を解決するため、特公平3
−61224号公報には、積和演算の中間結果を倍精度の非
正規化数とすることによって積和中間結果の正規化を省
略し、浮動小数点積和演算の高速化を図る発明(浮動小
数点積和演算器に係る発明、以下“従来例”という)に
ついて開示されている。
In order to solve such a problem, Japanese Patent Publication No.
Japanese Unexamined Patent Application Publication No. 61-224 discloses an invention for improving the speed of a floating-point product-sum operation by omitting the normalization of the intermediate product-sum result by making the intermediate result of the product-sum operation a double-precision denormalized number. The invention relating to the product-sum operation unit, hereinafter referred to as “conventional example”) is disclosed.

【0005】ここで、具体的に図3を用いて、上述の従
来例(前掲の公報に開示されている“浮動小数点積和演
算器”)について、その概略を説明する。図3におい
て、浮動小数点積和演算器は、 ・入力浮動小数点数(オペランド、被乗数)531と入力浮
動小数点数(オペランド、乗数)532とに対する積和演算
において、各積項を求める浮動小数点乗算器501と、 ・積和演算の中間結果と浮動小数点乗算器501の出力と
を浮動小数点加算するための桁合 わせシフタ502と、 ・桁合わせシフタ502によって桁合わせされた2つの仮
数部を加算する仮数部加算器503と、 ・仮数部加算器503によって仮数部オーバーフローが発
生した場合に、桁合わせシフタ502によって選択された
大きいほうの指数部510に“1”を加える指数部加算器5
04と、 ・仮数部加算器503によて仮数部オーバーフローが発生
した場合に、仮数部加算器503の加算結果を右シフトに
よって調整する1ビット右シフタ505と、 ・積和演算の中間結果を保持する浮動小数点レジスタ50
6と、 ・正規化されていない積和演算結果を最後にのみ正規化
するための左正規化シフタ507と 、 を有している。
Here, the outline of the above-mentioned conventional example (“floating point multiply-accumulate unit” disclosed in the above-mentioned publication) will be specifically described with reference to FIG. In FIG. 3, a floating-point multiply-accumulate unit includes: a floating-point multiplier for calculating each product term in a multiply-accumulate operation on an input floating-point number (operand, multiplicand) 531 and an input floating-point number (operand, multiplier) 532 501; an alignment shifter 502 for floating-point addition of the intermediate result of the product-sum operation and the output of the floating-point multiplier 501; A mantissa adder 503; • an exponent adder 5 that adds “1” to the larger exponent 510 selected by the digit shifter 502 when a mantissa overflow occurs in the mantissa adder 503;
04; a 1-bit right shifter 505 that adjusts the addition result of the mantissa adder 503 by right-shifting when a mantissa overflow occurs due to the mantissa adder 503; Floating point register 50 to keep
6; and a left normalization shifter 507 for normalizing the non-normalized product-sum operation result only at the end.

【0006】なお、ここで言う仮数部オーバーフローと
は、仮数部同士の演算結果が“2”を超え、そのままで
は正規化数として扱えない状態になることを示す。
Here, the mantissa overflow means that the operation result between the mantissas exceeds "2" and cannot be handled as a normalized number as it is.

【0007】また、従来例では、図3に示すように、浮
動小数点乗算器501の内部には、浮動小数点乗算を行う
ためのいくつかのユニットが備えられている。具体的に
は、この浮動小数点乗算器501は、 ・乗算対象である二つのオペランド(入力浮動小数点数5
31,532)の仮数部の積を求める乗算器520と、 ・この乗算器520の乗算結果を保持するレジスタであり
正規化された仮数部同士の積が最大で「11.1111...」
(2進数表記)となるため、レジスタの整数部が2ビット
となっているレジスタ521と、 ・乗算器520により仮数部オーバーフローが発生した場
合に、正規化を行うための1ビット右シフタ522と、 ・乗算対象である二つのオペランド(入力浮動小数点53
1,532)の指数部同士を加算する指数部加算器523と、 ・乗算器520により仮数部オーバーフローが発生した場
合に、指数部をインクリメントするための指数部インク
リメンタ524と、 ・1ビット右シフタ522の出力と指数部インクリメンタ5
24の出力とを保持する浮動小数点レジスタ525と、 を有している。
In the prior art, as shown in FIG. 3, several units for performing floating-point multiplication are provided inside the floating-point multiplier 501. Specifically, the floating-point multiplier 501 has two operands to be multiplied (input floating-point number 5
A multiplier 520 for obtaining the product of the mantissas of (31, 532); a register for holding the multiplication result of the multiplier 520, wherein the product of the normalized mantissas is at most "11.1111 ..."
A register 521 in which the integer part of the register is 2 bits because it is expressed in binary notation; a 1-bit right shifter 522 for normalizing when a mantissa overflow occurs by the multiplier 520; , Two operands to be multiplied (input floating point 53
An exponent part adder 523 for adding exponent parts of (1,532); an exponent part incrementer 524 for incrementing the exponent part when a mantissa overflow occurs in the multiplier 520; Output of shifter 522 and exponent incrementer 5
And a floating point register 525 holding 24 outputs.

【0008】そして、上記従来例の“浮動小数点積和演
算器501”では、仮数部加算器503により桁落ちが発生
し、単独の浮動小数点加算では正規化のための左シフト
が必要な場合でもシフトを行わず、倍精度の非正規化浮
動小数点データとして扱うことにより、浮動小数点演算
の高速化を図っている。
[0008] In the above-mentioned conventional "floating-point multiply-accumulate unit 501", the mantissa adder 503 causes a dropout, and even if a single floating-point addition requires a left shift for normalization. The floating-point operation is speeded up by treating it as double-precision non-normalized floating-point data without shifting.

【0009】[0009]

【発明が解決しようとする課題】ところで、通常の浮動
小数点加算では、仮数部の加算後、仮数部が2を超えた
場合に正規化数に戻すための1ビット右シフトと、桁落
ちにより仮数部の整数ビットがゼロになった場合に正規
化数に戻すための左シフトが必要である。
By the way, in the ordinary floating-point addition, after the addition of the mantissa part, if the mantissa part exceeds 2, the mantissa is shifted right by one bit to return to a normalized number, and the mantissa is lost. A left shift is required to return to a normalized number when the integer bits of the part become zero.

【0010】前述した従来例の“浮動小数点積和演算
器”では、仮数部を倍精度で演算を行うことにより桁落
ちによる左シフトを省略して高速化を図っているが、仮
数部の整数ビットは1桁であるため、仮数部が“2”を
超えた場合の1ビット右シフトは省略することができな
い。また、浮動小数点乗算は、正規化を含めた結果が必
要であるため、ここでも仮数部が“2”を超えた場合の
1ビット右シフトが必要である。
In the above-mentioned conventional "floating-point multiply-accumulate unit", the mantissa is operated in double precision to eliminate left shift due to digit loss, thereby increasing the speed. Since the number of bits is one, the right shift by one bit when the mantissa exceeds "2" cannot be omitted. In addition, since floating-point multiplication requires a result including normalization, a 1-bit right shift is also required when the mantissa exceeds “2”.

【0011】さらに、積和演算では、桁合わせシフタ50
2による加算オペランドの仮数部桁合わせから浮動小数
点レジスタ506に中間結果が格納されるまでが繰り返し
実行されるため、この データパスに存在する桁合わせ
シフタ502,仮数部加算器503,1ビット右シフタ504な
どにおける各回路の動作速度の総和で積和演算の処理速
度が決まってしまう。
Further, in the product-sum operation, the digit alignment shifter 50 is used.
Since the mantissa digit alignment of the addition operand by 2 and the storage of the intermediate result in the floating-point register 506 are repeatedly executed, the digit alignment shifter 502, the mantissa adder 503, and the 1-bit right shifter existing in this data path are provided. The processing speed of the product-sum operation is determined by the sum of the operation speeds of the respective circuits in 504 and the like.

【0012】例えば、図3に示すように、「入力オペラ
ンドの仮数部同士の乗算に1クロック,乗算後の右シフ
トに1クロック,桁合わせと仮数部加算に1クロック,
加算後の右シフトに1クロック,最終結果の正規化左シ
フトに1クロック」それぞれ必要であるとすると、各処
理をパイプライン化し、乗算と加算とを並行して実行し
ても、1回の積項を求め中間結果に足し込むために毎回
2クロックの実行時間が必要となり、積和演算速度の高
速化の妨げとなっていた。
For example, as shown in FIG. 3, "one clock for multiplication of mantissa parts of input operands, one clock for right shift after multiplication, one clock for digit alignment and addition of mantissa parts,
Assuming that one clock is required for the right shift after the addition and one clock for the normalized left shift of the final result, each processing is pipelined, and even if the multiplication and the addition are executed in parallel, one processing is required. In order to find the product term and add it to the intermediate result, an execution time of two clocks is required each time, which hinders an increase in the product-sum operation speed.

【0013】本発明は、前記問題点に鑑みてなされたも
のであり、その目的とするところは、前記従来例以上に
積和演算速度の高速化を図ることができ、桁あふれする
ことがなく、高性能で簡単な構成からなる浮動小数点積
和演算器を提供することにある。
SUMMARY OF THE INVENTION The present invention has been made in view of the above-mentioned problems, and has as its object to increase the sum-of-products operation speed more than in the conventional example, without overflowing digits. Another object of the present invention is to provide a floating-point multiply-accumulate unit having a high-performance and simple configuration.

【0014】[0014]

【課題を解決するための手段】本発明に係る浮動小数点
積和演算器は、乗算結果の仮数部に2ビットの整数部を
与え、更に加算部の桁合わせシフタ,仮数部加算器,中
間結果レジスタなどの全ての仮数部に複数ビットの整数
部を与えることにより、仮数部が“2”を超えた場合の
1ビット右シフトを省略して積和演算を高速化すること
を特徴とし、これにより、前記目的を達成したものであ
る。
A floating-point multiply-accumulate unit according to the present invention provides a mantissa part of a multiplication result with a 2-bit integer part, and further includes a digit shifter, a mantissa adder, and an intermediate result of an addition unit. By providing a multi-bit integer part to all mantissa parts of registers and the like, the 1-bit right shift when the mantissa part exceeds "2" is omitted to speed up the product-sum operation. Thus, the above object has been achieved.

【0015】即ち、本発明に係る浮動小数点積和演算器
は、 ・正規化のための右シフト回路を持たない浮動小数点乗
算器と、 ・前記浮動小数点乗算器の出力を受け、仮数部内に複数
ビットの整数部分を保持できる乗算結果レジスタと、 ・正規化されていない二つの浮動小数点数を桁合わせ
し、浮動小数点加算を行った後正規化せずに出力する浮
動小数点加算器と、 ・前記浮動小数点加算器の出力を受け、仮数部内に複数
ビットの整数部分を保持できる加算結果レジスタと、 ・前記加算結果レジスタの内容を正規化して最終的な積
和演算結果を求める正規化シフタと、を備え、 ・前記浮動小数点乗算器から出力される各乗算結果と前
記加算結果レジスタの内容とを前記浮動小数点加算器で
逐次加算していくことによって積和演算を非正規化数の
状態で実行すること、 を“発明を特定する事項”とするものであり(請求項
1)、これにより上記目的を達成することができる。つ
まり、この構成によって、仮数部のオーバフローによる
1ビット右シフトを省略でき、積和演算の高速化を図る
ことができる。
That is, a floating-point multiply-accumulate unit according to the present invention includes: a floating-point multiplier having no right shift circuit for normalization; and A multiplication result register capable of holding an integer part of bits; a floating-point adder that aligns two floating-point numbers that are not normalized, performs floating-point addition, and outputs the result without normalization; An addition result register that receives an output of the floating-point adder and can hold an integer part of a plurality of bits in a mantissa; a normalization shifter that normalizes the content of the addition result register to obtain a final product-sum operation result; Denormalizing the product-sum operation by sequentially adding each multiplication result output from the floating-point multiplier and the content of the addition result register by the floating-point adder It is performed in the state, which the "matters specifying the invention" Wo (claim 1), thereby to achieve the above object. In other words, with this configuration, the 1-bit right shift due to the overflow of the mantissa can be omitted, and the product-sum operation can be speeded up.

【0016】また、本発明に係る浮動小数点積和演算器
は、前記加算結果レジスタの仮数部最上位ビットが
“1”になった場合に、随時前記正規化シフタを使って
前記積和演算の中間結果を正規化することによって、前
記中間結果の仮数部が桁あふれすることを防ぐように構
成できる(請求項2)。この場合には、桁あふれすること
のない、高性能な浮動小数点積和演算器を実現すること
ができる。
Further, the floating-point multiply-accumulate unit according to the present invention, when the most significant bit of the mantissa part of the addition result register becomes "1", uses the normalization shifter as needed to execute the multiply-accumulate operation. By normalizing the intermediate result, it is possible to prevent the mantissa part of the intermediate result from overflowing. In this case, a high-performance floating-point multiply-accumulate unit that does not overflow can be realized.

【0017】さらに、本発明に係る浮動小数点積和演算
器は、前記加算結果レジスタの仮数部最上位ビットの値
に応じて前記浮動小数点加算器に入力する積和中間結果
を“前記加算結果レジスタから得るか、前記正規化シフ
タから得るか否か”を選択するセレクタを備えるように
構成できる(請求項3)。これによって、簡単な構成で桁
あふれすることのない、高性能な浮動小数点積和演算器
を実現することができる。
Further, the floating-point multiply-accumulate unit according to the present invention includes the intermediate product-sum result input to the floating-point adder according to the value of the most significant bit of the mantissa part of the addition result register. , Or from the normalization shifter ”(claim 3). This makes it possible to realize a high-performance floating-point multiply-accumulate unit with a simple configuration and no overflow.

【0018】[0018]

【発明の実施の形態】次に、本発明に係る浮動小数点積
和演算器の好ましい実施の形態について、図面を用いて
詳細に説明する。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Next, a preferred embodiment of a floating-point multiply-accumulate unit according to the present invention will be described in detail with reference to the drawings.

【0019】(第1の実施の形態)図1は、本発明に係
る浮動小数点積和演算器における第1の実施の形態の回
路構成図であって、積和演算後にのみ正規化を行う例を
示すものである。
(First Embodiment) FIG. 1 is a circuit diagram of a first embodiment of a floating-point multiply-accumulate unit according to the present invention, in which normalization is performed only after a multiply-accumulate operation. It shows.

【0020】この図1において、本浮動小数点積和演算
器は、 ・入力浮動小数点数(オペランド)531と入力浮動小数点
数(オペランド)532とに対する積和演算において、各積
項を求める浮動小数点乗算器101と、 ・積和演算の中間結果と浮動小数点乗算器101の出力と
を浮動小数点加算するための桁合わせシフタ102と、 ・桁合わせシフタ102によって桁合わせされた2つの仮
数部を加算する仮数部加算器103と、 ・積和演算の中間結果を保持する中間結果レジスタであ
り、加算後の仮数部オーバーフローによる1ビット右シ
フトを行わないため、4ビットの整数部を保持できる中
間結果レジスタ106と、 ・正規化されていない積和演算結果を最後にのみ正規化
するための正規化シフタ107であって、中間結果レジス
タ106に保持されている仮数部が“2以上”の場合と
“1未満”の場合とがあるため、それぞれに対応して右
シフトと左シフトとの両方の機能を持つ正規化シフタ10
7と、 を有している。
In FIG. 1, the floating-point multiply-accumulate unit includes: a floating-point multiplication for obtaining each product term in a multiply-accumulate operation on an input floating-point number (operand) 531 and an input floating-point number (operand) 532 A digit shifter 102 for performing floating-point addition of an intermediate result of the product-sum operation and an output of the floating-point multiplier 101; and adding two mantissa parts digit-aligned by the digit shifter 102. A mantissa adder 103; an intermediate result register for holding an intermediate result of the product-sum operation, and an intermediate result register capable of holding a 4-bit integer part because it does not shift right by one bit due to an overflow of the mantissa after addition. 106; a normalization shifter 107 for normalizing the unnormalized product-sum operation result only last, wherein the mantissa part held in the intermediate result register 106 is “2 or more” Because if there is the case of "less than 1", the normalization shifter 10 with both the right shift and left shift function corresponding to each
7 and.

【0021】更に、浮動小数点乗算器101は、浮動小数
点乗算を行うため、内部にいくつかのユニットを備えて
いる。具体的には、 ・乗算対象である二つのオペランド(浮動小数点数)53
1,532の仮数部の積を求める乗算器120と、 ・乗算器120の乗算結果を保持するレジスタであり正規
化された仮数部同士の積は最大で「11.1111...」(2進
数表記)となるため、レジスタが持つ仮数部の整数部分
が2ビットとなっているレジスタ125と、 ・乗算対象である二つのオペランド531,532の指数部同
士を加算する指数部加算器123と、 を備えている。
Further, the floating-point multiplier 101 has several units therein for performing floating-point multiplication. Specifically, two operands (floating point numbers) to be multiplied 53
A multiplier 120 for calculating the product of the mantissas of 1,532; a register for holding the multiplication result of the multiplier 120; the product of the normalized mantissas is a maximum of "11.1111 ..." (binary notation) ), A register 125 in which the integer part of the mantissa of the register is 2 bits, and an exponent adder 123 that adds the exponents of the two operands 531 and 532 to be multiplied. Have.

【0022】本実施の形態の最も大きな特徴は、乗算部
/加算部共に仮数部オーバーフローを正規化するための
1ビット右シフタを持たない点である。この右シフタを
持たない場合、積和演算を続けるに従い、仮数部の整数
部分が大きくなり、中間結果レジスタ106が保持できる
仮数部の桁数を超えると上位ビットが失われ誤動作とな
る。よって、仮数部が最大でどの程度の値を取り得るか
を予測する必要がある。
The most significant feature of this embodiment is that neither the multiplier nor the adder has a 1-bit right shifter for normalizing the mantissa overflow. If the right shifter is not provided, as the product-sum operation is continued, the integer part of the mantissa becomes large, and if the number of digits of the mantissa that can be held by the intermediate result register 106 is exceeded, the upper bits are lost and a malfunction occurs. Therefore, it is necessary to predict how many values the mantissa can take at most.

【0023】正規化された浮動小数点同士の乗算の場
合、1回の乗算によりその積の仮数部が取り得る値は、
「1.0000...」から「11.1111...」の間である。
In the case of normalized floating-point multiplication, the value that the mantissa of the product can take in one multiplication is:
It is between "1.0000 ..." and "11.1111 ...".

【0024】次に、この範囲の仮数部を持つ浮動小数点
同士の加算の動作を説明する。加算する二つのオペラン
ド(入力浮動小数点数)531,532の指数部が異なる場合
は、桁合わせシフトによりどちらかの仮数部が右へシフ
トされる。つまり仮数部単独で考えれば値が小さくなる
ため、浮動小数点加算の仮数部の最大値を考える場合
は、指数部が同一であり、且つ仮数部が最大の場合を考
えればよい。
Next, an operation of adding floating points having mantissa parts in this range will be described. If the exponents of the two operands (input floating-point numbers) 531 and 532 to be added are different, one of the mantissas is shifted to the right by digit shift. That is, since the value is small if the mantissa is considered alone, when considering the maximum value of the mantissa for floating-point addition, the case where the exponent is the same and the mantissa is the maximum may be considered.

【0025】前述の通り、乗算結果の仮数部の最大値
は、「11.1111...」であるため、両方の加算オペランド
が最大の仮数部を持つ場合の加算結果は、「111.111
1...」となる。
As described above, since the maximum value of the mantissa of the multiplication result is "11.1111 ...", the addition result when both addition operands have the maximum mantissa is "111.111".
1 ... ".

【0026】積和演算における2回目の加算は、仮数部
が「11.1111...」である乗算結果と、仮数部が「111.11
11...」である1回目の加算結果同士の加算であるた
め、その最大値は「1011.1111...」となる。
In the second addition in the multiply-accumulate operation, the multiplication result whose mantissa is "11.1111 ..." and the mantissa are "111.11
Since the first addition result of "11 ..." is added, the maximum value is "1011.1111 ...".

【0027】同様に、3回目の加算結果は「1111.111
1...」となり、仮数部の整数部分が4ビットあれば3回
目の加算結果、つまり4積項の積和演算までは仮数部オ
ーバーフローを正規化するための1ビット右シフトを省
略しても上位ビットが失われることはない。
Similarly, the result of the third addition is “1111.111
If the integer part of the mantissa is 4 bits, the third addition result, that is, the 1-bit right shift for normalizing the mantissa overflow, is omitted until the product-sum operation of the fourth product term is omitted. The upper bits are not lost.

【0028】例えば、3次元グラフィックス演算などで
は、4積項の積和演算が多様されるため、本実施の形態
による浮動小数点積和演算器を用い、4積項までに限定
して積和演算を行えば、高速で浮動小数点積和演算を実
現することができる。
For example, in a three-dimensional graphics operation, since the product-sum operation of the fourth product term is diversified, the floating-point product-sum operation unit according to the present embodiment is used to limit the product-sum operation to the fourth product term. By performing the operation, a floating-point multiply-accumulate operation can be realized at high speed.

【0029】本実施の形態の浮動小数点積和演算器が、
前掲の図3に示した従来例の浮動小数点積和演算器の積
和演算速度に比べて、より高速化を図ることができるこ
とを以下に説明する。
The floating-point multiply-accumulate unit of this embodiment is
The fact that the speed can be further increased as compared with the product-sum operation speed of the floating-point product-sum operation unit of the conventional example shown in FIG. 3 will be described below.

【0030】従来例と同様、積和演算では、桁合わせシ
フタ102による加算オペランドの仮数部桁合わせから浮
動小数点レジスタ106に中間結果が格納されるまでが繰
り返し実行されるため、本実施の形態の浮動小数点積和
演算器では、そのデータパスに存在する桁合わせシフタ
102と仮数部加算器103のみが動作できれば繰り返し積和
演算を実行することができ、従来例のように毎回1ビッ
ト右シフトが発生し積和演算の動作速度を制限する、と
いうことがなくなる。
As in the conventional example, in the multiply-accumulate operation, the steps from the mantissa digit alignment of the addition operand by the digit alignment shifter 102 to the storage of the intermediate result in the floating point register 106 are repeatedly executed. In the floating point multiply-accumulate unit, the digit shifter existing in the data path
If only 102 and the mantissa adder 103 can operate, the product-sum operation can be repeatedly executed, and the operation speed of the product-sum operation is not limited as in the conventional example because a one-bit right shift occurs every time.

【0031】例えば、図1に示すように、「乗算に1ク
ロック,桁合わせと仮数部加算に1クロック,最終結果
の正規化左シフトに1クロック」それぞれ必要であると
すると、従来例と同様の条件で1回の積項を求め中間結
果に足し込むために、毎回1クロックで実行することが
可能になる。
For example, as shown in FIG. 1, assuming that "one clock is required for multiplication, one clock is required for digit alignment and mantissa addition, and one clock is required for normalized left shift of the final result", it is the same as the conventional example. In order to find one product term under the condition of (1) and add it to the intermediate result, it is possible to execute the process with one clock every time.

【0032】以上説明したように、本第1の実施の形態
の浮動小数点積和演算器は、乗算結果の仮数部に2ビッ
トの整数部を与え、更に加算部の桁合わせシフタ102
や、仮数部加算器103や、中間結果レジスタ106などの全
ての仮数部に複数ビットの整数部を与えることにより、
仮数部が2を超えた場合の1ビット右シフトを省略し、
積和途中の正規化を省略したので、積和演算を高速化す
ることができるようになり、この点で従来例と相違す
る。
As described above, the floating-point multiply-accumulate unit of the first embodiment provides a 2-bit integer part to the mantissa part of the multiplication result, and further adds a digit shifter 102 of the addition unit.
By giving a multi-bit integer part to all mantissa parts such as the mantissa adder 103 and the intermediate result register 106,
Omit the 1-bit right shift when the mantissa exceeds 2,
Since the normalization during the product-sum operation is omitted, the product-sum operation can be speeded up, which is different from the conventional example.

【0033】(第2の実施の形態)前述の第1の実施の
形態に係る浮動小数点積和演算器では、積和演算中の正
規化を一切行わず、積和演算終了後にのみ正規化シフタ
107(図1参照)により正規化を行っている例である。そ
して、積項数が例えば4に限定できる場合は、図1のよ
うな構成で充分であるが、5以上の積項の積和演算を行
う場合は、図1の回路構成を若干変更した回路構成で対
応することができ、具体的には、必要に応じて中間結果
の正規化を行うためのセレクタを追加することで対応す
ることができる。
(Second Embodiment) The floating-point multiply-accumulate unit according to the first embodiment does not perform any normalization during the multiply-accumulate operation, but only after the end of the multiply-add operation.
This is an example in which normalization is performed by 107 (see FIG. 1). When the number of product terms can be limited to, for example, four, the configuration as shown in FIG. 1 is sufficient. However, when performing a product-sum operation of five or more product terms, a circuit obtained by slightly modifying the circuit configuration of FIG. This can be dealt with by a configuration, and more specifically, by adding a selector for normalizing the intermediate result as needed.

【0034】図2は、本発明に係る浮動小数点積和演算
器における第2の実施の形態の回路構成図であって、必
要に応じ中間結果の正規化を行う例を示す。この図2に
おいて、前述の図1の構成ユニットと同じ機能のユニッ
トには同じ符号を付し、それらの説明を省略し、本第2
の実施の形態の浮動小数点積和演算器の説明を進める。
FIG. 2 is a circuit diagram of a floating-point multiply-accumulate unit according to a second embodiment of the present invention, showing an example in which intermediate results are normalized as necessary. In FIG. 2, units having the same functions as those of the above-described constituent units in FIG. 1 are denoted by the same reference numerals, and a description thereof will be omitted.
The description of the floating-point multiply-accumulate unit according to the embodiment will be given.

【0035】図2において、図1と異なるところは、中
間結果レジスタ106の仮数部最上位ビットに応じて桁合
わせシフタ102へ与える積和中間結果を、“中間結果レ
ジスタ106から得るか,それとも正規化シフタ107から得
るか否か”を選択するセレクタ230を追加した点にあ
る。なお、セレクタ230以外の構成要素は、図1に示し
た第1の実施の形態と同様であるので 説明を省略す
る。
In FIG. 2, the difference from FIG. 1 is that the product-sum intermediate result to be provided to the alignment shifter 102 in accordance with the most significant bit of the mantissa of the intermediate result register 106 is "whether obtained from the intermediate result register 106 or That is, a selector 230 for selecting “whether to obtain from the chemical shifter 107” is added. Components other than the selector 230 are the same as those in the first embodiment shown in FIG.

【0036】このセレクタ230を追加することで、積和
演算の中間結果が仮数部オーバーフローを発生した時の
み、その正規化を行うことができるため、積項数を制限
する必要がなく、中間結果の仮数部が桁あふれすること
を防ぐようにすることができ、簡単な構成で高性能な浮
動小数点積和演算器を実現できると共に、本実施の形態
の浮動小数点積和演算器をより柔軟に適用することがで
きる。
By adding the selector 230, normalization can be performed only when the intermediate result of the product-sum operation causes a mantissa overflow, so that it is not necessary to limit the number of product terms. Can prevent the mantissa part from overflowing, thereby realizing a high-performance floating-point multiply-accumulate unit with a simple configuration, and making the floating-point multiply-add unit of the present embodiment more flexible. Can be applied.

【0037】[0037]

【発明の効果】本発明に係る浮動小数点積和演算器は、
以上詳記したように、乗算結果の仮数部レジスタに複数
ビットの整数部を与え、さらに加算部の桁合わせシフ
タ,仮数部加算器,中間結果レジスタのすべての仮数部
に複数ビットの整数部を与えることにより、仮数部が
“2”を超えた場合の1ビット右シフトを省略するの
で、従来例に比べて積和演算速度の高速化を実現するこ
とができる。
The floating point multiply-accumulate unit according to the present invention comprises:
As described in detail above, a multi-bit integer part is given to the mantissa register of the multiplication result, and a multi-bit integer part is added to all the mantissa parts of the adder digit shifter, the mantissa adder, and the intermediate result register. By providing, the 1-bit right shift when the mantissa exceeds “2” is omitted, so that the product-sum operation speed can be increased as compared with the conventional example.

【0038】また、加算結果レジスタの仮数部最上位ビ
ットが“1”になった場合に、正規化シフタを使って積
和演算の中間結果を正規化し、中間結果の仮数部が桁あ
ふれすることを防ぐようにしたので、高性能な浮動小数
点積和演算器を実現することができる。
When the most significant bit of the mantissa of the addition result register becomes "1", the intermediate result of the multiply-accumulate operation is normalized using a normalization shifter, and the mantissa of the intermediate result overflows. Therefore, a high-performance floating-point multiply-accumulate unit can be realized.

【0039】さらに、加算結果レジスタの仮数部最上位
ビットの値に応じて前記浮動小数点加算器に入力する積
和中間結果を“前記加算結果レジスタから得るか、前記
正規化シフタから得るか否か”を選択するセレクタを備
えることで、簡単な構成で桁あふれすることのない、高
性能な浮動小数点積和演算器を実現することができる。
Further, according to the value of the most significant bit of the mantissa part of the addition result register, the intermediate product-sum result input to the floating-point adder is "whether to obtain from the addition result register or to obtain from the normalization shifter. ”, A high-performance floating-point multiply-accumulate unit with a simple configuration and no overflow can be realized.

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

【図1】本発明に係る浮動小数点積和演算器の第1の実
施の形態を示す回路構成図である。
FIG. 1 is a circuit diagram showing a first embodiment of a floating-point multiply-accumulate unit according to the present invention.

【図2】本発明に係る浮動小数点積和演算器の第2の実
施の形態を示す回路構成図である。
FIG. 2 is a circuit diagram showing a second embodiment of the floating-point multiply-accumulate unit according to the present invention.

【図3】従来例の浮動小数点積和演算器の回路構成図で
ある。
FIG. 3 is a circuit configuration diagram of a conventional floating-point multiply-add unit.

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

101 浮動小数点乗算器 102 桁合わせシフタ 103 仮数部加算器 106 中間結果レジスタ 107 正規化シフタ 120 乗算器 123 指数部加算器 125 レジスタ 230 セレクタ 101 Floating point multiplier 102 Digit alignment shifter 103 Mantissa adder 106 Intermediate result register 107 Normalization shifter 120 Multiplier 123 Exponent adder 125 Register 230 Selector

Claims (3)

【特許請求の範囲】[Claims] 【請求項1】 正規化のための右シフト回路を持たない
浮動小数点乗算器と、前記浮動小数点乗算器の出力を受
け、仮数部内に複数ビットの整数部分を保持できる乗算
結果レジスタと、正規化されていない二つの浮動小数点
数を桁合わせし、浮動小数点加算を行った後正規化せず
に出力する浮動小数点加算器と、前記浮動小数点加算器
の出力を受け、仮数部内に複数ビットの整数部分を保持
できる加算結果レジスタと、前記加算結果レジスタの内
容を正規化して最終的な積和演算結果を求める正規化シ
フタとを備え、 前記浮動小数点乗算器から出力される各乗算結果を前記
浮動小数点加算器で逐次加算していくことによって積和
演算を非正規化数の状態で実行することを特徴とする浮
動小数点積和演算器。
1. A floating point multiplier having no right shift circuit for normalization, a multiplication result register receiving an output of the floating point multiplier and capable of holding a plurality of bits of an integer part in a mantissa, A floating-point adder that performs digit alignment of two floating-point numbers that have not been processed, performs floating-point addition, and outputs the result without normalization, and receives an output of the floating-point adder, and outputs a multi-bit integer in a mantissa. An addition result register capable of holding a portion, and a normalization shifter for normalizing the contents of the addition result register to obtain a final product-sum operation result, wherein each of the multiplication results output from the floating point multiplier is floated. A floating-point multiply-accumulate unit that performs a multiply-accumulate operation in a denormalized state by successively adding with a decimal point adder.
【請求項2】 前記加算結果レジスタの仮数部最上位ビ
ットが1になった場合に、随時前記正規化シフタを使っ
て前記積和演算の中間結果を正規化することによって、
前記中間結果の仮数部が桁あふれすることを防ぐように
構成されたことを特徴とする請求項1に記載の浮動小数
点積和演算器。
2. When the most significant bit of the mantissa of the addition result register becomes 1, the intermediate result of the product-sum operation is normalized by using the normalization shifter as needed.
2. The floating point multiply-accumulate unit according to claim 1, wherein the mantissa of the intermediate result is prevented from overflowing.
【請求項3】 前記加算結果レジスタの仮数部最上位ビ
ットの値に応じて、前記浮動小数点加算器に入力する積
和中間結果を“前記加算結果レジスタから得るか,前記
正規化シフタから得るか否か”を選択するセレクタを備
えることを特徴とする請求項2に記載の浮動小数点積和
演算器。
3. According to the value of the most significant bit of the mantissa part of the addition result register, an intermediate product-sum result input to the floating-point adder is obtained from the addition result register or the normalization shifter. 3. The floating-point multiply-accumulate unit according to claim 2, further comprising a selector for selecting "whether or not".
JP09261709A 1997-09-26 1997-09-26 Floating-point multiply-accumulate unit Expired - Fee Related JP3132436B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP09261709A JP3132436B2 (en) 1997-09-26 1997-09-26 Floating-point multiply-accumulate unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP09261709A JP3132436B2 (en) 1997-09-26 1997-09-26 Floating-point multiply-accumulate unit

Publications (2)

Publication Number Publication Date
JPH11102353A true JPH11102353A (en) 1999-04-13
JP3132436B2 JP3132436B2 (en) 2001-02-05

Family

ID=17365627

Family Applications (1)

Application Number Title Priority Date Filing Date
JP09261709A Expired - Fee Related JP3132436B2 (en) 1997-09-26 1997-09-26 Floating-point multiply-accumulate unit

Country Status (1)

Country Link
JP (1) JP3132436B2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003529124A (en) * 1999-07-30 2003-09-30 ミップス テクノロジーズ インコーポレイテッド High precision processor for multiplication-addition operation
JP2010218197A (en) * 2009-03-17 2010-09-30 Nec Computertechno Ltd Floating point product sum arithmetic operation device, floating point product sum arithmetic operation method, and program for floating point product sum arithmetic operation
JP2012150821A (en) * 2006-05-10 2012-08-09 Qualcomm Inc Mode-based multiply-add recoding for denormal operands
US10340944B2 (en) 2015-02-25 2019-07-02 Renesas Electronics Corporation Floating-point adder, semiconductor device, and control method for floating-point adder

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003529124A (en) * 1999-07-30 2003-09-30 ミップス テクノロジーズ インコーポレイテッド High precision processor for multiplication-addition operation
JP2012150821A (en) * 2006-05-10 2012-08-09 Qualcomm Inc Mode-based multiply-add recoding for denormal operands
JP2010218197A (en) * 2009-03-17 2010-09-30 Nec Computertechno Ltd Floating point product sum arithmetic operation device, floating point product sum arithmetic operation method, and program for floating point product sum arithmetic operation
US10340944B2 (en) 2015-02-25 2019-07-02 Renesas Electronics Corporation Floating-point adder, semiconductor device, and control method for floating-point adder

Also Published As

Publication number Publication date
JP3132436B2 (en) 2001-02-05

Similar Documents

Publication Publication Date Title
US5844830A (en) Executing computer instrucrions by circuits having different latencies
US6009451A (en) Method for generating barrel shifter result flags directly from input data
US6697832B1 (en) Floating-point processor with improved intermediate result handling
Huang et al. A new architecture for multiple-precision floating-point multiply-add fused unit design
US5517438A (en) Fast multiply-add instruction sequence in a pipeline floating-point processor
US6401194B1 (en) Execution unit for processing a data stream independently and in parallel
US6813626B1 (en) Method and apparatus for performing fused instructions by determining exponent differences
EP1049025B1 (en) Method and apparatus for arithmetic operations
WO2016071661A1 (en) Apparatus and method for vector processing with selective rounding mode
JPH02196328A (en) Floating point computing apparatus
US8166092B2 (en) Arithmetic device for performing division or square root operation of floating point number and arithmetic method therefor
JP3600026B2 (en) Floating point arithmetic unit
US5301139A (en) Shifter circuit for multiple precision division
US5247471A (en) Radix aligner for floating point addition and subtraction
US20050228844A1 (en) Fast operand formatting for a high performance multiply-add floating point-unit
Agarwal et al. Series approximation methods for divide and square root in the Power3/sup TM/processor
EP0551531A1 (en) Apparatus for executing ADD/SUB operations between IEEE standard floating-point numbers
GB2549153B (en) Apparatus and method for supporting a conversion instruction
JP3132436B2 (en) Floating-point multiply-accumulate unit
Schwarz Binary Floating-Point Unit Design: the fused multiply-add dataflow
KR100317767B1 (en) Floating point binary quad word format multiply instruction unit
US5570309A (en) Iterative arithmetic processor
US6615228B1 (en) Selection based rounding system and method for floating point operations
JPH04172526A (en) Floating point divider
WO2004025453A2 (en) Apparatus and method for adding multiple-bit binary strings

Legal Events

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

Free format text: PAYMENT UNTIL: 20071124

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20081124

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20081124

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20091124

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20091124

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20101124

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20101124

Year of fee payment: 10

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20101124

Year of fee payment: 10

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20111124

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20111124

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20121124

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20121124

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20131124

Year of fee payment: 13

LAPS Cancellation because of no payment of annual fees