JP3306497B2 - Rounding circuit in floating point multiplier - Google Patents
Rounding circuit in floating point multiplierInfo
- Publication number
- JP3306497B2 JP3306497B2 JP13967592A JP13967592A JP3306497B2 JP 3306497 B2 JP3306497 B2 JP 3306497B2 JP 13967592 A JP13967592 A JP 13967592A JP 13967592 A JP13967592 A JP 13967592A JP 3306497 B2 JP3306497 B2 JP 3306497B2
- Authority
- JP
- Japan
- Prior art keywords
- bits
- mantissa
- carry
- bit
- rounding
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/487—Multiplying; Dividing
- G06F7/4876—Multiplying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49905—Exception handling
- G06F7/4991—Overflow or underflow
- G06F7/49915—Mantissa overflow or underflow in handling floating-point numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49942—Significance control
- G06F7/49947—Rounding
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Nonlinear Science (AREA)
- Complex Calculations (AREA)
Description
【0001】[0001]
【産業上の利用分野】本発明は浮動小数点乗算器に関
し、特に、そのような乗算器における丸めの速度を増す
方法及び装置に関する。FIELD OF THE INVENTION The present invention relates to floating point multipliers and, more particularly, to a method and apparatus for increasing the rounding speed in such multipliers.
【0002】[0002]
【従来の技術】コンピュータで使用するための高速乗算
回路を形成する構成は様々に提案されている。基本的に
は、それぞれが先行する部分積より1ビットだけ左にず
れている複数の部分積を確定することにより、2つのn
ビット2進オペランドの積を実現する。次に、それらの
部分積を加算して、結果に到達する。部分積を迅速に加
算するために、個々の部分積を対ごとにまとめ、それら
の部分積の対をけた上げ−保存加算器により並行して加
算する2進ツリー構成が示唆されている。それらの部分
積の加算の結果を再び対ごとにまとめ、それらのグルー
プを別のけた上げ−保存加算器により並行して同じよう
に加算する。最後に残る2つの部分積を加算し終わるま
でこのプロセスを続けてゆき、積を得る。1987年2
月刊のIEEE Journal of Solid−
State Circuits第SC−22巻第1号に
掲載されたHarata他のHigh Speed M
ultiplier Using a Redunda
nt Binary Adder Treeは、そのよ
うな回路を説明している。2進ツリー乗算器の先行する
段からの2つの最後の部分積の和とけた上げを加算する
ために、けた上げ伝播加算器を使用しても良い。2. Description of the Related Art Various configurations for forming a high-speed multiplication circuit for use in a computer have been proposed. Basically, by determining a plurality of partial products, each shifted one bit to the left from the preceding partial product, two n
Implements the product of bit binary operands. Next, the partial products are added to arrive at the result. To quickly add partial products, a binary tree configuration has been suggested in which individual partial products are grouped in pairs and the pairs of partial products are added in parallel by a carry-save adder. The result of the addition of these partial products is again grouped in pairs and the groups are likewise added in parallel by another carry-save adder. This process is continued until the last two partial products have been added to obtain a product. 1987 2
Monthly IEEE Journal of Solid-
High Speed M of Harata et al., Published in State Circuits SC-22, Volume 1, No. 1.
ultraplier Using a Redunda
The nt Binary Adder Tree describes such a circuit. A carry propagation adder may be used to add the carry and carry of the two last partial products from the previous stage of the binary tree multiplier.
【0003】それらの回路は整数の乗算に使用されても
良いし、あるいは、浮動小数点において仮数を生成する
ときに使用されても良い。浮動小数点乗算器構成で乗算
器回路を使用する場合、乗算器回路は、機械処理による
ときの2倍の数のビットを含む結果を発生するのが普通
であるので、結果を丸めなければならないことが多い。
たとえば、二倍精度2進数に関する規格は53ビットを
要求する。2つの53ビット2進数の積は106ビット
の長さである。ところが、二倍精度の結果はこの積のう
ち上位の54ビットしか使用せず、最上位ビットはあふ
れを示す。下位の53ビットは、下位ビットからけた上
げが生成されるか否か、丸めが必要であるか否か及び精
密な丸め値を確定するためにのみ使用される。[0003] These circuits may be used for integer multiplication or for generating mantissas at floating point. When using a multiplier circuit in a floating-point multiplier configuration, the multiplier circuit must produce a result that contains twice as many bits as it would with machine processing, so the result must be rounded. There are many.
For example, the standard for double precision binary numbers requires 53 bits. The product of two 53-bit binary numbers is 106 bits long. However, the double precision result uses only the upper 54 bits of this product, and the most significant bit indicates overflow. The lower 53 bits are used only to determine whether a carry is generated from the lower bits, whether rounding is required, and the precise rounding value.
【0004】積の丸めを行うには、まず、仮数を正規化
しなければならない。2つの正規化オペランドを使用す
る2進乗算においては、そのために仮数の右へ1ビット
のシフトが要求されるだけであるので、2進小数点の左
には1つの有位ビットしかなく、指数のべきは増加す
る。仮数が正規化されるまで、丸めが実行されるビット
位置はわからない。積の下位ビットはけた上げを生成し
且つ丸めを確定する目的で使用されるだけではあるが、
上位ビットのけた上げ伝播加算器が演算を開始できるよ
うになる前に、下位ビットのけた上げ結果を生成しなけ
ればならない。上位ビットのけた上げ伝播加算が完了し
なければ、仮数を取出せず、それを正規化することもで
きないので、演算は全体として下位けた上げが生成さ
れ、そのけた上げビットが上位ビットを通って伝播して
ゆくのを待っていなければならないのが普通である。従
って、下位ビットからのけた上げはクリティカルパスに
入っている。In order to perform product rounding, first, the mantissa must be normalized. In a binary multiplication using two normalized operands, which only requires a one bit shift to the right of the mantissa, there is only one significant bit to the left of the binary point and the exponent Power should increase. Until the mantissa is normalized, the bit position at which rounding is performed is not known. Although the low order bits of the product are only used to generate carry and determine rounding,
Before the upper bit carry propagation adder can begin operation, the lower bit carry result must be generated. If carry addition of the upper bit is not completed, the mantissa cannot be extracted and cannot be normalized, so that the operation generates a lower carry as a whole, and the carry bit propagates through the upper bit. You usually have to wait for it to go. Therefore, the carry from the lower bit is in the critical path.
【0005】このような乗算器においては、丸め条件を
生成するために正規化が起こったならば、また、必要に
応じて、最下位ビットで正規化仮数に1を加算して、丸
め結果を発生するのが典型的である。この方式は乗算器
ツリーの出力側でけた上げ伝播加算器を使用し、その加
算器の出力側には増分器を使用して、丸めを発生する。
この構成の動作の速度を増すために一般的な方式は、2
つの丸め回路を並行して使用するというものである。一
方の回路は仮数があふれると仮定し、他方の回路は仮数
があふれないと仮定する。丸められていない仮数の最上
位ビットが利用可能になった時点で、正しい結果を選択
する。いずれの場合にも、従来の典型的な浮動小数点乗
算器では、下位ビットのけた上げ伝播の結果を待つこと
になる。In such a multiplier, if normalization occurs to generate a rounding condition, if necessary, 1 is added to the normalized mantissa at the least significant bit, and the rounding result is obtained. It typically occurs. This scheme uses a carry propagation adder at the output of the multiplier tree and uses an incrementer at the output of the adder to generate rounding.
A common scheme to increase the speed of operation of this configuration is 2
One rounding circuit is used in parallel. One circuit assumes that the mantissa overflows, and the other circuit assumes that the mantissa does not overflow. When the most significant bit of the unrounded mantissa becomes available, select the correct result. In either case, a typical prior art floating point multiplier would wait for the result of carry propagation of the lower bits.
【0006】[0006]
【発明が解決しようとする課題】従って、本発明の目的
は、浮動小数点乗算器回路が結果に到達するまでの速度
を増すことである。本発明の別の、より特定的な目的
は、下位ビットからのけた上げ伝播の結果を待つ必要が
あることによって起こる浮動小数点乗算器回路の遅延の
大部分を排除することである。Accordingly, it is an object of the present invention to increase the speed at which a floating point multiplier circuit reaches a result. Another, more specific objective of the present invention is to eliminate most of the delays of the floating point multiplier circuit caused by having to wait for the result of carry propagation from the lower bits.
【0007】[0007]
【課題を解決するための手段】本発明の上記の目的及び
その他の目的は、下位ビットからのキャリーインの生成
を待たずに、キャリーインが起こらなかったものと仮定
して、仮数の上位ビットを供給する手段と;下位ビット
からのキャリーインの生成を待たずに、キャリーインが
起こったものと仮定して、仮数の上位ビットを供給する
手段と;下位ビット加算器からの実際のキャリーイン及
び丸め条件に基づいて、仮数あふれがない場合に対して
選択される仮数に関する第1組の下位ビットを供給する
手段と;下位ビット加算器からの実際のキャリーイン及
び丸め条件に基づいて、仮数あふれがある場合に対して
選択される仮数に関する第2組の下位ビットを供給する
手段と;仮数の下位ビットを通ってキャリーインが伝播
するか否か及び仮数あふれが起こったか否かに基づいて
仮数の上位ビットと下位ビットを選択する手段とを具備
する浮動小数点乗算器の丸め回路において実現される。SUMMARY OF THE INVENTION The above and other objects of the present invention are based on the assumption that no carry-in has occurred without waiting for the generation of carry-in from the lower bits, and that the upper bits of the mantissa have not been generated. Means for supplying the upper bits of the mantissa, without waiting for the generation of the carry-in from the lower bits, assuming that the carry-in has occurred; and the actual carry-in from the lower bit adder. Means for providing a first set of low-order bits for the mantissa selected for a case without mantissa overflow based on the rounding condition; and based on the actual carry-in from the low-order bit adder and the rounding condition, Means for providing a second set of lower bits for the mantissa selected for the overflow case; whether carry-in propagates through the lower bits of the mantissa, and Implemented in rounding circuit of a floating-point multiplier and means for selecting upper and lower bits of the mantissa based on whether overflow has occurred.
【0008】本発明の上記の目的及び特徴並びにその他
の目的及び特徴は、添付の図面に関連する以下の詳細な
説明を参照することにより理解されるであろう。尚、図
面中、いくつかの図を通して同じ図中符号は同じ素子を
指示する。 〔表記法及び用語〕以下の詳細な説明の中には、コンピ
ュータメモリ内部にあるデータビットに関する演算を記
号によって表示している部分がある。そのような説明や
表示は、データ処理技術に熟達した人がその研究の内容
をその技術分野の他の当業者に最も有効に伝達するため
に使用する手段である。ステップは物理的量の物理的操
作を要求するステップである。通常、それらの量は記
憶、転送、組合せ、比較及びその他の方法による操作が
可能な電気的信号又は磁気信号の形態をとるが、必ずそ
うであるとは限らない。時によっては、主に一般に使用
されている用語であるという理由により、それらの信号
をビット、値、要素、記号、文字、項、数などと呼ぶと
好都合であることがわかっている。尚、それらの用語及
びそれに類する用語は、全て、適切な物理的量と関連さ
せるべきものであり、単にそのような量に便宜上付され
たラベルであるにすぎないということを忘れてはならな
い。さらに、実行される操作を、一般にはオペレータが
実行する知的動作と関連している加算又は比較などの用
語で呼ぶことが多いが、本発明の一部を成す、ここに説
明する動作のいずれをとっても、そのようなオペレータ
の能力は不要であり、多くの場合に望ましくない。動作
は機械の動作である。本発明の動作を実行するのに有用
な機械には、汎用デジタルコンピュータ又はそれに類す
る他の装置がある。あらゆる場合、コンピュータを動作
させるときの方法動作と、計算それ自体の方法との明確
な区別に留意すべきである。本発明は、電気的信号又は
他の物理的(たとえば、機械的、化学的)信号を処理し
て、他の所望の物理的信号を発生するに際してコンピュ
ータを動作させる装置に関する。[0008] These and other objects and features of the present invention will be understood by reference to the following detailed description, taken in conjunction with the accompanying drawings. In the drawings, the same reference numerals indicate the same elements throughout several drawings. [Notation and Terminology] In the following detailed description, there is a portion in which an operation regarding a data bit in a computer memory is indicated by a symbol. Such descriptions and displays are the means used by those skilled in data processing techniques to most effectively convey the substance of their work to others skilled in the art. The steps are those requiring physical manipulations of physical quantities. Usually, but not necessarily, these quantities take the form of electrical or magnetic signals that can be stored, transferred, combined, compared, and otherwise manipulated. At times, it has proven convenient to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like, primarily because they are terms commonly used. It should be remembered that all of these and similar terms are to be associated with the appropriate physical quantities and are merely labels attached to such quantities for convenience. Further, the manipulations performed are often referred to in terms, such as adding or comparing, which are commonly associated with intelligent operations performed by an operator, but any of the operations described herein that form part of the present invention. However, such operator capabilities are unnecessary and often undesirable. The operation is an operation of a machine. Useful machines for performing the operations of the present invention include general purpose digital computers or other similar devices. In all cases, it should be noted that there is a clear distinction between the method operation when operating the computer and the method of calculation itself. The present invention relates to an apparatus for processing electrical or other physical (eg, mechanical, chemical) signals to operate a computer in generating other desired physical signals.
【0009】[0009]
【実施例】浮動小数点乗算器が最終結果に到達する速度
を増すために、本発明はクリティカルパスから下位けた
上げビットの生成を排除する。これを実現するための動
作を理解するために、図1に、最終積を生成する目的で
使用されるけた上げ伝播加算器の出力の様々な条件を表
すいくつかの図を示してある。そこに示されている場合
のいずれにおいても、この積MAN_PR〔105:5
2〕は、乗算器の2進ツリー構成により発生されるオペ
ランド(2つのオペランドS1〔105:52〕及びS
2〔105:52〕として指示されている)の上位ビッ
トを加算することにより発生するけた上げ伝播加算器の
出力である。初めの4つのケースは、正規化を要求する
仮数あふれが存在しないことを想定しており、下の4つ
のケースは仮数あふれが存在することを想定している。
いずれの場合にも、上方の値として仮数値を示し、その
下に2つの最下位ビットについてありうる4つの条件を
示す。DETAILED DESCRIPTION OF THE INVENTION To increase the speed at which a floating point multiplier reaches the end result, the present invention eliminates the generation of lower carry bits from the critical path. To understand the operation to accomplish this, FIG. 1 shows several diagrams representing various conditions at the output of the carry propagation adder used to generate the final product. In any of the cases shown there, this product MAN_PR [105: 5
2] are operands generated by the binary tree structure of the multiplier (two operands S1 [105: 52] and S1).
2 [105: 52] is the output of the carry propagation adder generated by adding the upper bits. The first four cases assume that there is no mantissa overflow that requires normalization, and the bottom four cases assume that there is a mantissa overflow.
In each case, the mantissa value is shown as the upper value, and the four possible conditions for the two least significant bits are shown below.
【0010】第1のケースから第4のケースでは、仮数
あふれが存在しないので、仮数を正規化する(指数を増
加して右へシフトする)必要はなく、従って、けた上げ
伝播加算器による下位ビットの加算から供給される丸め
ビットとけた上げビットは同一のビット位置で与えられ
る。第1のケースでは、下位ビットのビット51からの
桁上げはなく、丸めは不要である。従って、けた上げ伝
播加算器により発生される仮数MAN_PR〔105:
52〕は既に正しい。第2のケースでは、けた上げ伝播
加算器の下位ビットからけた上げビット(C51=1)
は生成されるが、丸めは不要であるので、丸めビットは
生成されない。図からわかるように、仮数MAN_PR
〔105:52〕の2つの最下位ビットが共に1である
場合に限って、下位ビットからのけた上げは仮数のビッ
ト54の位置を通って伝播する。このことは、図1に、
けた上げと仮数を組合せた結果の中の左側の一連の点に
より表されている。従って、2つの最下位ビット位置に
1を有する仮数MAN_PR〔105:52〕のみがけ
た上げビットC51の存在によってあふれることにな
る。In the first to fourth cases, since there is no mantissa overflow, it is not necessary to normalize the mantissa (increase the exponent and shift it to the right), and therefore, the lower order by the carry propagation adder is not necessary. The rounding and carry bits supplied from the bit addition are provided at the same bit position. In the first case, there is no carry from bit 51 of the lower bits and no rounding is required. Therefore, the mantissa MAN_PR [105: generated by the carry propagation adder]
52] is already correct. In the second case, the carry bit (C51 = 1) from the lower bit of the carry propagation adder
Is generated, but no rounding bits are generated because rounding is not required. As can be seen, the mantissa MAN_PR
The carry from the least significant bit propagates through the position of bit 54 of the mantissa only if the two least significant bits of [105: 52] are both one. This is illustrated in FIG.
It is represented by a series of points on the left in the result of combining carry and mantissa. Therefore, only the mantissa MAN_PR [105: 52] having 1 in the two least significant bit positions overflows due to the presence of the carry bit C51.
【0011】第3のケース(けた上げビットはなく、丸
めビットは存在している)は、仮数の最下位ビット位置
で1つの1のみが加算するので、第2のケースと同一で
ある。従って、第3のケースでは、2つの最下位ビット
位置に1を有する仮数MAN_PR〔105:52〕の
みがけた上げビットC51の存在によってあふれること
になる。The third case (there is no carry bit and there is a rounding bit) is the same as the second case since only one 1 is added at the least significant bit position of the mantissa. Therefore, in the third case, only the mantissa MAN_PR [105: 52] having 1 in the two least significant bit positions is overflowed by the presence of the carry bit C51.
【0012】第4のケースでは、下位ビットからけた上
げビットC51と、丸めビットの双方が生成される。そ
れら2つのビットを加算すると、仮数の次に低いビット
位置で1が加算されることになる。図からわかるよう
に、次に低いビット位置に1を有する仮数値のみが仮数
のビット54を通ってけた上げを伝播させる。この場合
にも、それらは第4のケースの例の中の2つの最下位ビ
ットの左側の点により指示されている。In the fourth case, both the carry bit C51 and the round bit are generated from the lower bits. When these two bits are added, 1 is added at the bit position next to the mantissa. As can be seen, only the mantissa value having a 1 in the next lower bit position propagates the carry through mantissa bit 54. Again, they are indicated by the points to the left of the two least significant bits in the fourth case example.
【0013】第5のケースから第8のケースは、仮数あ
ふれがあるために、仮数を正規化しなければならないこ
とを想定している。この正規化は仮数のビットを右へ位
置1つだけ移動させるもので、けた上げビットが仮数の
ビット52に注入され続けている間に下位けた上げ伝播
加算器からの丸めビットを仮数のビット53のレベルに
注入する効果をもつ。The fifth to eighth cases assume that the mantissa must be normalized because of the overflow of the mantissa. This normalization shifts the mantissa bit by one position to the right, while the carry bit continues to be injected into the mantissa bit 52 while the rounding bit from the lower carry propagation adder is replaced by the mantissa bit 53. Has the effect of injecting into the level.
【0014】従って、丸めビットとけた上げビットは2
つの異なるビット位置で与えられる。第5のケースで
は、下位ビットのビット51からのけた上げはなく、丸
めは不要である。そのため、けた上げ伝播加算器により
発生される仮数MAN_PR〔105:52〕は、その
仮数の最下位ビットがどのようなものであっても、既に
正しい結果となっている。ところが、第6のケースで
は、けた上げ伝播加算器の下位ビットからけた上げビッ
ト(C51=1)は生成されるが、丸めビットは生成さ
れない。図からわかるように、仮数MAN_PR〔10
5:52〕の2つの最下位ビットが共に1である場合に
限って、下位ビットからのけた上げは仮数のビット54
の位置を通って伝播する。このことも、同様に、図1の
結果の左側の一連の点により指示されている。従って、
2つの最下位ビット位置に1を有する仮数MAN_PR
〔105:52〕のみがけた上げビットC51の存在に
よってあふれを生じうる。Therefore, the rounding bit and the carry bit are 2
Given in two different bit positions. In the fifth case, there is no carry from bit 51 of the lower bit, and no rounding is required. Therefore, the mantissa MAN_PR [105: 52] generated by the carry propagation adder is already correct regardless of the least significant bit of the mantissa. However, in the sixth case, the carry bit (C51 = 1) is generated from the lower bits of the carry propagation adder, but the rounding bit is not generated. As can be seen, the mantissa MAN_PR [10
5:52], the carry from the least significant bit is only the bit 54 of the mantissa.
Propagating through the location of This is also indicated by a series of points on the left side of the result of FIG. Therefore,
Mantissa MAN_PR with 1 in two least significant bit positions
[105: 52] Only the carry bit C51 may cause overflow.
【0015】第7のケース(けた上げビットはないが、
丸めビットは存在している)は、仮数の次に低いビット
位置で単一の1が加算される第4のケースと同一であ
る。次に低いビット位置に1を有する仮数値MAN_P
R〔105:52〕のみが次に低いビット位置に存在す
る1によってあふれを生じて、仮数のビット54を通っ
てけた上げを伝播しうる。The seventh case (there is no carry bit,
The rounding bit is present) is identical to the fourth case where a single 1 is added at the next lower bit position after the mantissa. The mantissa value MAN_P having 1 in the next lower bit position
Only R [105: 52] may be flooded by a one present in the next lower bit position and propagate the carry through the mantissa bit 54.
【0016】第8のケースでは、けた上げビットC51
と、丸めビットの双方が存在している。それら2つのビ
ットを加算すると、最下位ビット位置の双方に1が現れ
る。図からわかるように、仮数値が最下位ビット位置の
双方に0を有している場合に限って、けた上げは仮数の
ビット54を通って伝播しない。同様に、それらの伝播
は第8のケースの例の中の2つの最下位ビットの左側の
点により指示されている。In the eighth case, the carry bit C51
And a rounding bit. When the two bits are added, a 1 appears in both least significant bit positions. As can be seen, the carry does not propagate through the mantissa bit 54 only if the mantissa value has a 0 in both least significant bit positions. Similarly, their propagation is indicated by the points to the left of the two least significant bits in the eighth case example.
【0017】このように、ビット54を通るけた上げが
ない仮数と、ビット54を通るけた上げがある仮数とい
う一対の仮数を生成することにより、上記のケースで表
されている全ての条件を容易に発生できることがわかる
であろう。それらの仮数は、下位ビットからのけた上げ
を待たずに生成可能である。それらの仮数は一連のマル
チプレクサに供給され、マルチプレクサの出力は丸め,
下位けた上げ及びあふれの実際の発生により選択される
ので、乗算器から結果を得るときに相当の時間を節約で
きる。As described above, by generating a pair of mantissas of a mantissa having no carry through the bit 54 and a mantissa having a carry through the bit 54, all conditions expressed in the above case can be easily satisfied. It can be seen that this can occur. These mantissas can be generated without waiting for carry from the lower bits. The mantissas are fed to a series of multiplexers, whose outputs are rounded,
As selected by the actual occurrence of lower carry and overflow, considerable time can be saved when obtaining results from the multiplier.
【0018】図2は、本発明を実現する回路のブロック
線図である。回路10は第1のけた上げ伝播加算器12
と、第2のけた上げ伝播加算器13とを含む。第1のけ
た上げ伝播加算器12は入力として1対のオペランドS
1〔105:52〕及びS2〔105:52〕を受信
し、それら2つの値を加算して、仮数値MAN_0〔5
3:0〕を発生する。加算器12は下位ビットから0の
キャリーインを受信するので、ビット51にけた上げが
なかったものと仮定する仮数を発生する。第2のけた上
げ伝播加算器13は入力として一対のオペランドS1
〔105:54〕及びS2〔105:54〕を受信し、
それら2つの値を加算して、仮数値MAN_4〔53:
2〕を発生する。加算器13はビット54のレベルで下
位ビットから1のキャリーインを受信するので、ビット
53を通ってけた上げが伝播したものと仮定する仮数を
発生する。FIG. 2 is a block diagram of a circuit for realizing the present invention. The circuit 10 includes a first carry propagation adder 12
And a second carry propagation adder 13. The first carry propagation adder 12 has a pair of operands S as inputs.
1 [105: 52] and S2 [105: 52] are received, the two values are added, and the mantissa value MAN_0 [5
3: 0]. Since adder 12 receives a carry-in of 0 from the lower bit, it generates a mantissa assuming that there was no carry in bit 51. The second carry propagation adder 13 receives a pair of operands S1 as input.
[105: 54] and S2 [105: 54] are received,
The two values are added and the mantissa value MAN_4 [53:
2]. Adder 13 receives a carry-in of one from the least significant bit at the level of bit 54, and thus generates a mantissa assuming that the carry has propagated through bit 53.
【0019】このように、これら2つのけた上げ伝播加
算器は、ビット52ではキャリーインがなく、ビット5
4へキャリーインが伝播したものと仮定して、ビット5
4〜ビット105から仮数ビットを発生する。加算器1
2からの仮数の2つの最下位ビットは脱落し、2つの加
算器12及び13からの残る数字は最終仮数の可能な2
つの上位値〔53:2〕として一対のマルチプレクサ1
5及び16のそれぞれに供給される。従って、けた上げ
伝播加算器12及び13による演算が完了したならば、
オペランドの下位ビットの加算の結果として起こるけた
上げを待たずに、直ちに2つの最下位ビットを除く仮数
値を利用できるのである。マルチプレクサ15及び16
で選択する値は図2のその他の回路により確定される。Thus, these two carry propagation adders have no carry-in at bit 52 and bit 5
Assuming that the carry-in has propagated to 4, bit 5
From 4 to 105, a mantissa bit is generated. Adder 1
The two least significant bits of the mantissa from 2 are dropped and the remaining digits from the two adders 12 and 13 are
One pair of multiplexers 1 as one upper value [53: 2]
5 and 16 respectively. Therefore, if the operation by the carry propagation adders 12 and 13 is completed,
Rather than waiting for the carry resulting from the addition of the lower bits of the operands, the mantissa value is immediately available except for the two least significant bits. Multiplexers 15 and 16
The value selected by is determined by the other circuits in FIG.
【0020】加算器12及び13が可能な2つの仮数値
の上位ビットを生成するために動作している間、組合わ
せ論理18は2つのオペランドの下位ビットS1_M
〔50:0〕及びS2_M〔50:0〕を加算し、出力
としてけた上げビット51と、スティッキービットとを
発生する。それら2つのビットを使用して、上位ビット
位置で要求される実際の丸めとけた上げを確定する。2
進浮動小数点演算に関するIEEE規格754は、「ラ
ウンド・トゥ・ニアレスト(最も近い値への丸め)」の
デフォルト丸めモードを生成し、タイの場合には「ラウ
ンド・トゥ・ニアレスト/イーブン(最も近い値/偶数
への丸め)」を選択する。タイを解決するために、IE
EE754に従って「スティッキービット」を生成す
る。スティッキービットは、2つのオペランドのいずれ
か一方の保護ビット位置を通過するいずれかの下位ビッ
トが1であるときに1の値を有する。1のビットがなけ
れば、スティッキービットは1である。While the adders 12 and 13 are operating to generate the upper bits of the two possible mantissa values, the combinational logic 18 uses the lower bits S1_M of the two operands.
[50: 0] and S2_M [50: 0] are added to generate a carry bit 51 and a sticky bit as output. The two bits are used to determine the actual rounding and carry required at the upper bit positions. 2
The IEEE Standard 754 for Hexadecimal Floating-Point Arithmetic creates a default rounding mode of "round to nearest", and in the case of Thailand, "round to nearest / even". / Round to even number) ". IE to solve Thailand
Generate a "sticky bit" according to EE754. The sticky bit has a value of 1 when any of the lower bits passing through the guard bit position of either of the two operands is 1. If there is no one bit, the sticky bit is one.
【0021】IEEEは先に示したデフォルトモードを
規定するのみならず、他の3つのモードをも提示してい
る。それらは0に向かう丸め、正の無限大に向かう丸め
及び負の無限大に向かう丸めである。これらの丸めモー
ドに関わる丸め値は、スティッキービットの値がわかっ
ているときにそれぞれ発生されると思われる。The IEEE defines not only the default mode described above but also other three modes. They are rounding toward zero, rounding toward positive infinity, and rounding toward negative infinity. The rounding values associated with these rounding modes would each be generated when the value of the sticky bit is known.
【0022】丸め、けた上げ及びあふれに応じて変化す
るそれぞれのオペランドS1,S2の3つのビット〔5
3:51〕は、3ビット加算器回路20に供給される。
この回路20は加算器18から生成されるけた上げビッ
トC51及びスティッキービットと、4つの丸めモード
の中のどれが希望されるかを指示する信号RAN_MO
DEとをさらに受信する。加算器回路20はそれらの信
号を丸めモードに従った方式で加算し、出力信号RN
と、出力信号RVとを発生する。信号RNは仮数のあふ
れがない場合に使用すべき丸め値であり、RVは仮数の
あふれがある場合に使用すべき丸め値である。The three bits [5] of each of the operands S1 and S2 which change according to rounding, carry and overflow
3:51] is supplied to the 3-bit adder circuit 20.
This circuit 20 carries a carry bit C51 and a sticky bit generated by the adder 18 and a signal RAN_MO indicating which of the four rounding modes is desired.
The DE is further received. The adder circuit 20 adds the signals in a manner according to a rounding mode, and outputs an
And an output signal RV. Signal RN is a round value to be used when there is no mantissa overflow, and RV is a round value to be used when there is mantissa overflow.
【0023】2ビット加算器22には最下位ビット位置
のRN値が供給される。加算器22には、けた上げ伝播
加算器12により仮数について生成され、仮数値がマル
チプレクサ15及び16へ転送されるときに脱落した2
つの最下位ビット〔52:51〕(MAN_0〔1:
0〕として示してある)も供給される。それらの値と、
けた上げビット51の値とを組合わせて、最終仮数の2
つの最下位ビットについて値RDO〔1:0〕を発生す
る。その組合わせによって、信号CNも発生する。信号
CNの値は、仮数のあふれが含まれていない場合に仮数
のビット2へのキャリーインがあるか否かを示す。この
信号CNの有無を利用して、マルチプレクサ15からの
出力を選択する。けた上げがある場合、キャリーインを
受信した加算器13が発生した値(MAN_4〔53:
2〕を選択する。また、けた上げがない場合には、キャ
リーインを伴わない加算器12が発生した値MAN_0
〔53:2〕を選択する。従って、加算器22からの信
号CNは、最終仮数のビット2へキャリーインが伝播さ
れるか否かに応じて、2つの部分仮数のうち一方を正し
く選択する。The 2-bit adder 22 is supplied with the RN value of the least significant bit position. The adder 22 generates 2 for the mantissa by the carry propagation adder 12 and drops the mantissa when the mantissa is transferred to the multiplexers 15 and 16.
The least significant bits [52:51] (MAN_0 [1:
0] are also supplied. Their values,
The value of the carry bit 51 is combined with the final mantissa of 2
Generate the value RDO [1: 0] for the two least significant bits. The combination also generates the signal CN. The value of signal CN indicates whether there is a carry-in to bit 2 of the mantissa when overflow of the mantissa is not included. The output from the multiplexer 15 is selected using the presence or absence of the signal CN. If there is a carry, the value generated by the adder 13 receiving the carry-in (MAN_4 [53:
Select 2). When there is no carry, the value MAN_0 generated by the adder 12 without carry-in is output.
Select [53: 2]. Therefore, the signal CN from the adder 22 correctly selects one of the two partial mantissas depending on whether the carry-in is propagated to bit 2 of the final mantissa.
【0024】同じように、RV値は、最下位ビット位置
の1に関連する次に低いビット位置で2ビット加算器2
3に供給される。加算器23には、けた上げ伝播加算器
12により仮数として生成されたが、マルチプレクサ1
5及び16へ転送されない2つの最下位ビット〔52:
51〕(ここではMAN_0〔1:0〕として示してあ
る)も供給される。それらの値と、けた上げビット51
の値とを組合わせて、仮数あふれの場合に使用すべき仮
数の2つの最下位ビットに関して可能な値RD4〔1:
0〕を発生する。その組合わせは、仮数のあふれが起こ
ったときに仮数のビット2へのキャリーインが存在する
か否かを示す値CVをさらに発生させる。この信号CV
の有無を利用して、マルチプレクサ16からの出力を選
択する。けた上げがある場合、キャリーインを受信した
加算器13が発生した値MAN_4〔53:2〕を選択
する。また、けた上げがない場合には、キャリーインを
伴わない加算器12が発生した値MAN_0〔53:
2〕を選択する。従って、加算器23からの信号CV
は、最終仮数のビット2へキャリーインが伝播されるか
否かに応じて、2つの部分仮数のうち一方を正しく選択
するのである。Similarly, the RV value is a two bit adder 2 at the next lower bit position associated with the least significant bit position of one.
3 is supplied. The adder 23 generates the mantissa by the carry propagation adder 12, but the multiplexer 1
The two least significant bits not transferred to 5 and 16 [52:
51] (shown here as MAN_0 [1: 0]). These values and the carry bit 51
And the possible values RD4 [1: for the two least significant bits of the mantissa to be used in the case of mantissa overflow
0]. The combination further generates a value CV that indicates whether there is a carry-in to bit 2 of the mantissa when a mantissa overflow occurs. This signal CV
The output from the multiplexer 16 is selected by using the presence or absence of. If there is a carry, the adder 13 that receives the carry-in selects the value MAN_4 [53: 2]. If there is no carry, the value MAN_0 [53:
Select 2). Therefore, the signal CV from the adder 23
Will correctly select one of the two partial mantissas depending on whether the carry-in is propagated to bit 2 of the final mantissa.
【0025】最後に、マルチプレクサ15により転送さ
れた上位ビットを加算器22からの2つの下位ビットと
連絡して、第3のマルチプレクサ25に1つの入力とし
て供給する。同様に、マルチプレクサ16により転送さ
れた上位ビット値を2ビット加算器23により供給され
た2つの下位ビットと連絡して、第3のマルチプレクサ
25に別の入力として供給する。マルチプレクサ25が
発生する出力は、このマルチプレクサ25の右側に示し
た論理項により制御される。キャリーインを伴わない加
算器12の仮数からのあふれが起こったならば、1のキ
ャリーインを伴う加算器13の仮数からあふれが起こら
なければならない。ところが、その逆は真ではない。す
なわち、1のキャリーインによって加算器13のあふれ
は起こっても良いが、加算器12があふれている必要は
ない。Finally, the upper bits transferred by the multiplexer 15 are communicated with the two lower bits from the adder 22 and supplied to the third multiplexer 25 as one input. Similarly, the upper bit value transferred by multiplexer 16 is communicated with the two lower bits provided by 2-bit adder 23 and provided to third multiplexer 25 as another input. The output generated by multiplexer 25 is controlled by the logic terms shown to the right of multiplexer 25. If overflow from the mantissa of the adder 12 without carry-in occurs, overflow must occur from the mantissa of the adder 13 with one carry-in. However, the opposite is not true. That is, the overflow of the adder 13 may occur due to one carry-in, but the adder 12 does not need to overflow.
【0026】従って、けたけた上げ伝播加算器12が発
生する上位ビットが1(仮数あふれを示す)である場
合、マルチプレクサ16からの値と加算器23により発
生される値を選択する。同様に、けた上げ伝播加算器1
3が発生する上位ビットが1(仮数あふれを示す)であ
り且つ最終仮数のビット2へのキャリーインがある(C
N=1)場合には、マルチプレクサ16からの値と加算
器23により発生される結果を選択する。それらの事態
がいずれも起こらないならば、マルチプレクサ15と加
算器22により発生される仮数を選択する。Therefore, when the upper bit generated by the carry propagation adder 12 is 1 (indicating a mantissa overflow), the value from the multiplexer 16 and the value generated by the adder 23 are selected. Similarly, the carry propagation adder 1
The upper bit where 3 occurs is 1 (indicating mantissa overflow) and there is a carry-in to bit 2 of the final mantissa (C
If N = 1), select the value from multiplexer 16 and the result generated by adder 23. If neither of these events occurs, select the mantissa generated by multiplexer 15 and adder 22.
【0027】ここまで説明したような図2の回路が正し
い結果を発生しないケースが1つある。ビット51のす
ぐ左側の2つのオペランドS1及びS2の全てのビット
が1であるという条件が存在する。ビット51に1が加
算されると、けた上げは各段階を経て左へ伝播してゆく
はずである。ビット54から始まって加算を実行する加
算器13により伝播は実行されないので、このような事
態は起こらない。そこで、乗算器ツリーの出力がビット
51のすぐ左側の全て1のストリングである場合に初期
けた上げビットを同化するために、一連の半加算器から
成る回路30を使用する。There is one case where the circuit of FIG. 2 as described above does not produce a correct result. There is a condition that all bits of the two operands S1 and S2 immediately to the left of bit 51 are one. If one is added to bit 51, the carry should propagate to the left through each step. Such a situation does not occur because no propagation is performed by the adder 13 that performs the addition starting from bit 54. Thus, a circuit 30 consisting of a series of half-adders is used to assimilate the initial carry bits when the output of the multiplier tree is an all ones string immediately to the left of bit 51.
【0028】当業者にはわかるであろうが、本発明の回
路は、上位ビットについてのけた上げ伝播加算器の動作
が完了すると、動作の開始前に下位ビットからのけた上
げを待たずに、直ちに可能な仮数の最下位ビットを除く
全てのビットを生成させ、あふれを確定する。そこで、
回路は、下位ビットを与えるために、ビット51へのキ
ャリーインの値、スティッキービット及び3つのビット
位置にまたがる丸めモードを評価するだけで良い。従っ
て、けた上げビットC51は上位けた上げ伝播加算器の
全ての段を通るのではなく、3つのビット段を経て伝播
するだけで良い。このように、本発明の回路は、クリテ
ィカルパスから下位けた上げ伝播加算器により供給され
るけた上げビットをほぼ排除することにより、はるかに
急速に結果を提供する。As will be appreciated by those skilled in the art, once the operation of the carry propagation adder for the upper bits is completed, the circuit of the present invention does not have to wait for the carry from the lower bits before starting operation. Immediately generate all bits except the least significant bit of the possible mantissa to determine overflow. Therefore,
The circuit need only evaluate the value of the carry-in to bit 51, the sticky bit, and the rounding mode over three bit positions to provide the lower bits. Thus, carry bit C51 need only propagate through three bit stages, rather than through all stages of the higher carry propagation adder. Thus, the circuit of the present invention provides results much more quickly by substantially eliminating carry bits provided by the lower carry propagation adder from the critical path.
【0029】本発明を好ましい一実施例に関連して説明
したが、当業者により本発明の趣旨から逸脱せずに様々
な変形や変更を実施しうることは理解されるであろう。
従って、本発明は特許請求の範囲及び次の実施態様によ
って評価されるべきである。Although the present invention has been described with reference to a preferred embodiment, it will be understood that various modifications and changes can be made by those skilled in the art without departing from the spirit of the invention.
Therefore, the present invention should be evaluated by the appended claims and the following embodiments.
【0030】1.仮数の下位ビットを通ってキャリーイ
ンが伝播するか否か及び仮数あふれが起こったかに否か
に基づいて仮数の上位ビットと下位ビットを選択する手
段は、仮数に関わる1組の下位ビットを供給する手段の
それぞれによりキャリーアウトが生成されるか否かを検
出する手段を具備する請求項1記載の2進ツリー浮動小
数点乗算器の丸め回路。1. Means for selecting the upper and lower bits of the mantissa based on whether the carry-in propagates through the lower bits of the mantissa and whether or not the mantissa overflows provide a set of lower bits related to the mantissa. 2. A rounding circuit for a binary tree floating point multiplier according to claim 1, further comprising: means for detecting whether a carry-out is generated by each of the means for performing the carry-out.
【0031】2.仮数の下位ビットを通ってキャリーイ
ンが伝播するか否か及び仮数あふれが起こったか否かに
基づいて仮数の上位ビットと下位ビットを選択する手段
は、仮数の上位ビットを供給する手段のそれぞれにより
供給されるビットのうち最上位のビットの条件を評価す
る手段を具備する上記1記載の2進ツリー浮動小数点乗
算器の丸め回路。2. The means for selecting the upper and lower bits of the mantissa based on whether or not the carry-in propagates through the lower bits of the mantissa and whether or not the mantissa overflows are provided by means for supplying the upper bits of the mantissa, respectively. 2. The rounding circuit for a binary tree floating-point multiplier according to claim 1, further comprising means for evaluating a condition of a most significant bit among supplied bits.
【0032】3.仮数の下位ビットを通ってキャリーイ
ンが伝播するか否か及び仮数あふれが起こったか否かに
基づいて仮数の上位ビットと下位ビットを選択する手段
は、仮数の上位ビットを供給する手段のそれぞれにより
供給されるビットのうち最上位のビットの条件を評価す
る手段を具備する請求項1記載の2進ツリー浮動小数点
乗算器の丸め回路。3. The means for selecting the upper and lower bits of the mantissa based on whether or not the carry-in propagates through the lower bits of the mantissa and whether or not the mantissa overflows are provided by means for supplying the upper bits of the mantissa, respectively. 2. A rounding circuit for a binary tree floating-point multiplier according to claim 1, further comprising means for evaluating a condition of a most significant bit among supplied bits.
【0033】4.下位ビット加算器からの実際のキャリ
ーイン及び丸め条件に基づいて仮数の第1組の下位ビッ
トを供給する手段は、キャリーインが起こらなかったも
のと仮定して仮数の上位ビットを供給する手段により生
成される最下位ビットと、下位ビットから生成される丸
め値と、下位ビットからのキャリーインとをそれらの値
が仮数あふれを伴わずに加算されるであろうように加算
する第1の加算器から成り;下位ビット加算器からの実
際のキャリーイン及び丸め条件に基づいて仮数の第2組
の下位ビットを供給する手段は、キャリーインが起こら
なかったものと仮定して仮数の上位ビットを供給する手
段により生成される最下位ビットと、下位ビットから生
成される丸め値と、下位ビットからのキャリーインとを
それらの値が仮数あふれを伴って加算されるであろうよ
うに加算する第2の加算器から成る上記1記載の2進ツ
リー浮動小数点乗算器の丸め回路。4. The means for providing the first set of lower bits of the mantissa based on the actual carry-in from the lower bit adder and the rounding condition comprises means for providing the upper bits of the mantissa assuming that no carry-in has occurred. A first addition that adds the least significant bit generated, the rounded value generated from the lower bit, and the carry-in from the lower bit such that their values would be added without mantissa overflow. Means for providing a second set of low-order bits of the mantissa based on the actual carry-in from the low-order bit adder and the rounding condition, the high-order bits of the mantissa being assumed as if no carry-in had occurred. The least significant bit generated by the supplying means, the rounded value generated from the lower bit, and the carry-in from the lower bit are added together with their mantissa overflow. Binary tree floating point multiplier rounding circuit according to the above item 1, wherein comprising a second adder for adding as would be.
【図1】浮動小数点乗算器回路における様々なあふれ、
キャリーイン及び丸めの可能性の結果として起こりうる
条件を示す図。FIG. 1 shows various overflows in a floating point multiplier circuit;
FIG. 7 shows possible conditions as a result of carry-in and rounding possibilities.
【図2】本発明に従って構成した回路のブロック線図。FIG. 2 is a block diagram of a circuit configured according to the present invention.
12 第1のけた上げ伝播加算器 13 第2のけた上げ伝播加算器 15,16 マルチプレクサ 18 組合わせ論理 20 3ビット加算器回路 22,23 2ビット加算器 25 マルチプレクサ 30 一連の半加算器 12 First Carry Propagation Adder 13 Second Carry Propagation Adder 15, 16 Multiplexer 18 Combination Logic 20 3-Bit Adder Circuit 22, 23 2-Bit Adder 25 Multiplexer 30 Series of Half Adders
───────────────────────────────────────────────────── フロントページの続き (73)特許権者 591064003 901 SAN ANTONIO ROA D PALO ALTO,CA 94303, U.S.A. (56)参考文献 特開 平3−18925(JP,A) 特開 平2−231629(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 7/52 310 G06F 7/38 ──────────────────────────────────────────────────続 き Continuing from the front page (73) Patentee 591064003 901 SAN ANTONIO ROAD PALO ALTO, CA 94303, U.S.A. S. A. (56) References JP-A-3-18925 (JP, A) JP-A-2-231629 (JP, A) (58) Fields investigated (Int. Cl. 7 , DB name) G06F 7/52 310 G06F 7/38
Claims (1)
0〕の浮動小数点乗算においてビット〔2n+1:0〕
の最終仮数を丸める、2進ツリー浮動小数点乗算器用の
丸め回路であって、前記2進ツリー浮動小数点乗算器
は、複数対のビット〔2n+1:0〕の部分積を複数の
桁上げ伝播加算器で加算して前記最終加算を発生するも
のであり、 第1の仮数のビット〔n+1:0〕を与える第1の加算
手段(12)にして、キャリーインがビットnのレベルで起
こらなかったものと仮定して、前記第1及び第2の部分
積のビット〔n−1:0〕からのキャリーインの生成を
待たずに、ビット〔2n+1:n〕の第1及び第2の部
分積の加算を行うことによって、第1の仮数のビット
〔n+1:0〕を与える第1の加算手段(12)を備え; 第2の仮数のビット〔n+1:2〕を与える第2の加算
手段(13)にして、キャリーインがビットn+2のレベル
で起こらなかったものと仮定して、前記第1及び第2の
部分積のビット〔n+1:0〕からのキャリーインの生
成を待たずに、ビット〔2n+1:n+2〕の第1及び
第2の部分積の加算を行うことによって、第1の仮数の
ビット〔n+1:2〕を与える第1の加算手段(13)を備
え; 前記最終仮数のビット〔1:0〕の第1セットを与える
第1の回路手段(22)にして、前記第1及び第2のビット
〔n−2:0〕の加算からの実際のキャリーインと丸め
条件とに基づいて、仮数あふれがない場合に対して選択
されるものとして、前記最終仮数のビット〔1:0〕の
第1セットを与える第1の回路手段(22)を備え、 前記最終仮数のビット〔1:0〕の第2セットを与える
第2の回路手段(23)にして、前記第1及び第2のビット
〔n−2:0〕の加算からの実際のキャリーインと丸め
条件とに基づいて、仮数あふれがある場合に対して選択
されるものとして、前記最終仮数のビット〔1:0〕の
第2セットを与える第2の回路手段(23)を備え、 前記最終仮数のビット〔n+1:2〕およびビット
〔1:0〕を選択するマルチプレクサ手段(15,16,25)に
して、当該ビット〔n+1:2〕は前記第1の加算手段
(12)で与えられる前記第1の仮数のビット〔n+1:
2〕および前記第2の加算手段(13)で与えられる前記第
2の仮数のビット〔n+1:2〕から、当該ビット
〔1:0〕は前記第1の回路手段(22)で与えられるビッ
ト〔1:0〕の前記1セットおよび前記第2の回路手段
(23)で与えられるビット〔1:0〕の前記2セットか
ら、キャリーインが前記最終仮数のビット〔1:0〕を
通して伝播したか否かおよび仮数あふれが起こったか否
かに基づいて、それぞれ選択をするマルチプレクサ手段
(15,16,25)を備えていることを特徴とする、浮動小数点
乗算器における丸め回路。1. Two binary operand bits [n:
0] in the floating point multiplication of bits [2n + 1: 0]
A rounding circuit for a binary tree floating point multiplier, wherein the binary tree floating point multiplier converts a partial product of a plurality of pairs of bits [2n + 1: 0] into a plurality of carry propagation adders. And the first addition means (12) for providing the first mantissa bits [n + 1: 0], wherein carry-in does not occur at the level of bit n. Assuming that the carry-in is not generated from the bits [n-1: 0] of the first and second partial products, the first and second partial products of the bits [2n + 1: n] are not waited for. A first adding means (12) for providing a first mantissa bit [n + 1: 0] by performing addition; a second adding means (13) for providing a second mantissa bit [n + 1: 2]; ) And carry-in does not occur at the level of bit n + 2 And adding the first and second partial products of bits [2n + 1: n + 2] without waiting for the generation of carry-in from bits [n + 1: 0] of the first and second partial products. And a first circuit means for providing a first set of bits of the final mantissa [1: 0] by providing a first mantissa bit [n + 1: 2]. (22) to be selected based on the actual carry-in from the addition of the first and second bits [n−2: 0] and the rounding condition in the case where there is no mantissa overflow. , A first circuit means (22) for providing a first set of bits [1: 0] of the final mantissa, and a second circuit means (22) for providing a second set of bits [1: 0] of the final mantissa. 23) to calculate the actual carry from the addition of the first and second bits [n−2: 0]. A second circuit means (23) for providing a second set of bits [1: 0] of the final mantissa as to be selected in the case where there is a mantissa overflow based on the key-in and the rounding condition; A multiplexer means (15, 16, 25) for selecting the bits [n + 1: 2] and bits [1: 0] of the final mantissa, and the bits [n + 1: 2] are added to the first adding means.
The bits of the first mantissa [n + 1:
2] and the second mantissa bits [n + 1: 2] given by the second adding means (13), the bits [1: 0] are converted to bits given by the first circuit means (22). [1: 0] the one set and the second circuit means
From the two sets of bits [1: 0] given in (23), based on whether the carry-in has propagated through bits [1: 0] of the final mantissa and whether a mantissa overflow has occurred, Multiplexer means for selecting
A rounding circuit in a floating-point multiplier, comprising (15,16,25).
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/695,423 US5150319A (en) | 1991-05-03 | 1991-05-03 | Circuitry for rounding in a floating point multiplier |
US695423 | 1991-05-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH05150948A JPH05150948A (en) | 1993-06-18 |
JP3306497B2 true JP3306497B2 (en) | 2002-07-24 |
Family
ID=24792917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP13967592A Expired - Fee Related JP3306497B2 (en) | 1991-05-03 | 1992-05-06 | Rounding circuit in floating point multiplier |
Country Status (5)
Country | Link |
---|---|
US (1) | US5150319A (en) |
EP (1) | EP0512686B1 (en) |
JP (1) | JP3306497B2 (en) |
KR (1) | KR950006582B1 (en) |
DE (1) | DE69225638T2 (en) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5218564A (en) * | 1991-06-07 | 1993-06-08 | National Semiconductor Corporation | Layout efficient 32-bit shifter/register with 16-bit interface |
JPH06348455A (en) * | 1993-06-14 | 1994-12-22 | Matsushita Electric Ind Co Ltd | Rounding method for multiplication and multiplying circuit |
US5430668A (en) * | 1994-03-07 | 1995-07-04 | Nec Corporation | Floating point multiplier capable of easily performing a failure detection test |
US5790446A (en) * | 1995-07-05 | 1998-08-04 | Sun Microsystems, Inc. | Floating point multiplier with reduced critical paths using delay matching techniques |
KR100290906B1 (en) * | 1998-03-10 | 2001-07-12 | 김영환 | method and appratus for performing simultaneously addition and rounding in a floating point multiplier |
US20080028014A1 (en) * | 2006-07-26 | 2008-01-31 | Hilt Jason W | N-BIT 2's COMPLEMENT SYMMETRIC ROUNDING METHOD AND LOGIC FOR IMPLEMENTING THE SAME |
US9489174B2 (en) | 2014-09-26 | 2016-11-08 | Imagination Technologies Limited | Rounding floating point numbers |
CN109634555B (en) * | 2018-12-19 | 2022-11-01 | 深圳信息职业技术学院 | Floating-point addition mantissa fast rounding method based on injection value |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4849923A (en) * | 1986-06-27 | 1989-07-18 | Digital Equipment Corporation | Apparatus and method for execution of floating point operations |
US4922446A (en) * | 1988-04-01 | 1990-05-01 | Digital Equipment Corporation | Apparatus and method for floating point normalization prediction |
US4972362A (en) * | 1988-06-17 | 1990-11-20 | Bipolar Integrated Technology, Inc. | Method and apparatus for implementing binary multiplication using booth type multiplication |
US5027308A (en) * | 1989-02-14 | 1991-06-25 | Intel Corporation | Circuit for adding/subtracting two floating point operands |
US4926370A (en) * | 1989-04-17 | 1990-05-15 | International Business Machines Corporation | Method and apparatus for processing postnormalization and rounding in parallel |
US4941120A (en) * | 1989-04-17 | 1990-07-10 | International Business Machines Corporation | Floating point normalization and rounding prediction circuit |
US4977535A (en) * | 1989-12-08 | 1990-12-11 | Motorola, Inc. | Method of computation of normalized numbers |
-
1991
- 1991-05-03 US US07/695,423 patent/US5150319A/en not_active Expired - Lifetime
-
1992
- 1992-04-07 DE DE69225638T patent/DE69225638T2/en not_active Expired - Fee Related
- 1992-04-07 EP EP92303040A patent/EP0512686B1/en not_active Expired - Lifetime
- 1992-04-28 KR KR1019920007160A patent/KR950006582B1/en not_active IP Right Cessation
- 1992-05-06 JP JP13967592A patent/JP3306497B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH05150948A (en) | 1993-06-18 |
EP0512686B1 (en) | 1998-05-27 |
KR950006582B1 (en) | 1995-06-19 |
DE69225638T2 (en) | 1999-01-28 |
US5150319A (en) | 1992-09-22 |
EP0512686A3 (en) | 1993-05-19 |
DE69225638D1 (en) | 1998-07-02 |
KR920022667A (en) | 1992-12-19 |
EP0512686A2 (en) | 1992-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6099158A (en) | Apparatus and methods for execution of computer instructions | |
EP0483864B1 (en) | Hardware arrangement for floating-point addition and subtraction | |
US6647404B2 (en) | Double precision floating point multiplier having a 32-bit booth-encoded array multiplier | |
JP2002108606A (en) | Sticky bit generating circuit and multiplier | |
US4941120A (en) | Floating point normalization and rounding prediction circuit | |
EP0351242B1 (en) | Floating point arithmetic units | |
US4866652A (en) | Floating point unit using combined multiply and ALU functions | |
JPH02196328A (en) | Floating point computing apparatus | |
JP2000259394A (en) | Floating point multiplier | |
US5023827A (en) | Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction | |
JP3306497B2 (en) | Rounding circuit in floating point multiplier | |
EP0416308A2 (en) | Rectangular array signed digit multiplier | |
US5177703A (en) | Division circuit using higher radices | |
US7337202B2 (en) | Shift-and-negate unit within a fused multiply-adder circuit | |
US5117384A (en) | Method and apparatus for exponent adder | |
EP1052568B1 (en) | Three input split-adder | |
JP2511527B2 (en) | Floating point arithmetic unit | |
JPH04355827A (en) | Square root extracting operation device | |
US6684236B1 (en) | System of and method for efficiently performing computations through extended booth encoding of the operands thereto | |
US4190894A (en) | High speed parallel multiplication apparatus with single-step summand reduction | |
US20030084084A1 (en) | Method and apparatus for a multi-purpose domino adder | |
JPH04172526A (en) | Floating point divider | |
EP0438962A2 (en) | Method and apparatus for exponent adder | |
US6067556A (en) | Method and apparatus for adding floating point numbers in a data processing system | |
JP2856792B2 (en) | Floating point arithmetic unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |