JP6001276B2 - 浮動小数点加算を実行するための装置および方法 - Google Patents
浮動小数点加算を実行するための装置および方法 Download PDFInfo
- Publication number
- JP6001276B2 JP6001276B2 JP2012031642A JP2012031642A JP6001276B2 JP 6001276 B2 JP6001276 B2 JP 6001276B2 JP 2012031642 A JP2012031642 A JP 2012031642A JP 2012031642 A JP2012031642 A JP 2012031642A JP 6001276 B2 JP6001276 B2 JP 6001276B2
- Authority
- JP
- Japan
- Prior art keywords
- operand
- result
- circuit
- mantissa
- addition
- 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.)
- Active
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/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
-
- 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/485—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/01—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
- G06F5/012—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising in floating-point computations
-
- 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/74—Selecting or encoding within a word the position of one or more bits having a specified value, e.g. most or least significant one or zero detection, priority encoders
-
- 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/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
-
- 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/544—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 for evaluating functions by calculation
- G06F7/5443—Sum of products
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Nonlinear Science (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
Description
±1.x*2y
ただし式中で、
xは小数部、
1.xは仮数部(仮数としても知られる)、
yは指数である。
上位24ビット:ゼロ
第25番目のビット:RUまたはRNモードを用いる場合、1
第26番目および残りのビット:RUモードを用いる場合、1
となる。
上位23ビット:ゼロ
第24番目のビット:RUモードまたはRNモードを用いる場合、1
第25番目および残りのビット:RUモードを用いる場合、1
となる。
上位53ビット:ゼロ
第54番目のビット:RUモードまたはRNモードを用いる場合、1
第55番目および残りのビット:RUモードを用いる場合、1
となる。
上位52ビット:ゼロ
第53番目のビット:RUモードまたはRNモードを用いる場合、1
第54番目および残りのビット:RUモードを用いる場合、1
となる。
正のAプラス正のB
負のAプラス負のB
正のAマイナス負のB
負のAマイナス正のB
である。
正のAプラス負のB
負のAプラス正のB
正のAマイナス正のB
負のAマイナス負のB
である。
LSA、従来の遠隔パス(LSAは常に右シフトの場合である)
1.011 e4
+1.101 e2
加算を実行する前に、指数を同一にする必要がある。したがって、小さい方の数は、2桁だけ右シフトされる必要がある。
1.011 e4
+0.01101 e4
−−−−−−−−
1.11001 e4
USA右シフト、従来の遠隔パス
1.011 e4
−1.001 e2
減算する前に、指数を同一にする必要がある。したがって、小さい方の数は、右シフト回路200により、2桁だけ右シフトされる必要がある。
1.011 e4
−0.01001 e4
−−−−−−−−
1.00011 e4
0.1100 e3
+1.0110 e3
+ 1
−−−−−−−
10.0011 e3
と示すことができる。
1.000 e4 (RZ丸め)
が得られる。
同一の指数、左シフトが要求され、従来の近接パスを有する、USA
1.110 e4
−1.100 e4
1.110 e4
+0.011 e4
+ 1
−−−−−−
0.010 e4
となる。
0.000 e1
+1.111 e1 (減数を左シフトするとき、1が挿入される)
+ 1
−−−−−−
10.000 e1
となる。
1.000 e2
となる。
1だけずれた指数、左シフトが要求され、従来の近接パスを有する、USA
1.011 e4
−1.100 e3
1.011 e4
−0.1100 e4
1.011 e4
+1.0011 e4
+ 1
となる。
1.100 e2
+0.111 e2
+ 1
−−−−−−
10.100 e2
が得られる。
1.010 e3
が得られる。
二重オーバーフロー、従来の遠隔パスを有する、USA
この例に対しては、入力のうちの1つは、融合乗算加算の一部として乗算器4から出力される必要がある。この入力は他の入力の2倍の長さとなるであろう。さらに、この入力は丸められていないため、丸められた同一結果と比較すると1だけずれている指数を有する場合がある。例えば、乗算器出力が、
1.111_1110e7
であるとする(式中のアンダースコアは長いビットの列を読みやすくするためにのみ置いたものであり、他に特段の意味を有すものではない)。
1.000 e8
が得られる。
1.111_1110 e7
−1.000 e2
を考える。
1.111_1110 e7
−0.000_0100 e7
が得られる。
1.11_1110 e6
+1.11_1011 e6
+ 1
−−−−−−−−−−
11.11_1010 e6
が得られる。
1.111_1010 e7
+ 1000 (RN丸め定数)
−−−−−−−−−−−
10.000_0010
から、正しく丸められた答え、
1.000 e8
が得られる。
Claims (20)
- 結果Rを得るためにオペランドAおよびオペランドBに加算演算を実行する装置であって、前記オペランドA、前記オペランドB、および前記結果Rは、仮数部および指数を各々有する浮動小数点値である、装置であって、
前記オペランドAおよび前記オペランドBに異符号加算を実行することにより生成される出力に存在するであろう先行するゼロの個数の予測に基づいてシフト表示を生成するように構成された予測回路と、
前記仮数部の加算の前に、前記オペランドAおよび前記オペランドBの両方の前記仮数部にシフト演算を実行するように構成され、前記シフト演算は、前記オペランドAおよび前記オペランドBに対して修正された仮数部を生成するために、前記シフト表示による決定に応じて、前記オペランドAおよび前記オペランドBの両方の前記仮数部の最上位ビットのいくつかを廃棄するように作用する、結果前正規化回路と、
前記オペランドAおよび前記オペランドBの前記指数を参照して、先行ビット相殺状態の存在を検出するように構成されたオペランド解析回路と、
前記先行ビット相殺状態の存在下で、前記結果Rの前記仮数部を生成するために、前記オペランドAおよび前記オペランドBに対する前記修正された仮数部の加算を実行するように構成された加算回路と、
を備え、
前記加算回路は、前記先行ビット相殺状態の不存在下で、前記結果Rの前記仮数部を生成するために、前記結果前正規化回路によって生成された前記修正された仮数部を使用することなく、前記オペランドAおよび前記オペランドBの両方の前記仮数部の加算を実行し、
前記オペランドBは2つの浮動小数点オペランドに乗算演算を実行した結果であり、前記オペランドBは、前記結果Rが融合乗算累積演算の結果を表すように、入力として丸められない状態で前記装置に提供され、
前記結果Rの前記仮数部は、Nビットを有しており、前記オペランドBの前記仮数部は、丸められない状態に起因してNビットよりも多いビット数を有しており、
前記加算回路は、前記加算の実行時、挿入丸めを実行して丸め増分値を加算するように構成され、
前記加算回路の前に前記結果前正規化回路が動作することにより、前記オペランドAおよび前記オペランドBの前記修正された仮数部が、前記挿入丸めに対して正しく整置されることを確実にする装置。 - 前記オペランド解析回路は、前記オペランドAおよび前記オペランドBの前記指数が同一の値または1だけ異なる値を有し、かつ前記オペランドAと前記オペランドBとに前記加算演算を実行するために、異符号加算が用いられる場合に、前記先行ビット相殺状態の存在を検出する、請求項1に記載の装置。
- 前記予測回路は、前記異符号加算により、前記オペランドAおよび前記オペランドBのうちの小さい方のオペランドが前記オペランドAおよび前記オペランドBのうちの大きい方のオペランドから引かれる場合に対して、前記シフト表示を算出する、請求項1または請求項2に記載の装置。
- 前記オペランドAおよび前記オペランドBのいずれがより大きいかの判定は、前記予測回路が先行ゼロ値の計算を開始する時点では得られず、
前記予測回路は、第1シフト表示候補および第2シフト表示候補を生成するように準備され、前記第1シフト表示候補は前記オペランドAが前記オペランドBよりも大きいことを仮定し、前記第2シフト表示候補は前記オペランドBが前記オペランドAよりも大きいことを仮定する、
請求項3に記載の装置。 - 前記オペランドAおよび前記オペランドBのいずれが大きい方のオペランドであるかを判定するためのより大きいオペランドの判定回路と、
前記より大きいオペランドの判定回路に応答して、前記オペランドAが前記大きい方のオペランドである場合は、前記シフト表示として、前記第1シフト表示候補を選択するように構成され、前記オペランドBが前記大きい方のオペランドである場合は、前記シフト表示として、前記第2シフト表示候補を選択するように構成された選択回路と、
をさらに備える、請求項4に記載の装置。 - 前記オペランドAの前記指数の最下位ビットが前記オペランドBの前記指数の最下位ビットと同一であるかどうかを示す比較結果を出力するように構成された比較回路をさらに備え、
前記比較結果が前記指数の前記最下位ビットが同一であることを示す場合、前記予測回路は、前記異符号加算により、前記オペランドAおよび前記オペランドBのうちの小さい方のオペランドが前記オペランドAおよび前記オペランドBの大きい方のオペランドから減算される場合に対して、前記シフト表示を計算し、
前記比較結果が前記指数の前記最下位ビットが同一でないことを示す場合、前記予測回路は、前記異符号加算により、前記オペランドAおよび前記オペランドBのうちの前記小さい方のオペランドの1ビット右シフトされたバージョンが前記オペランドAおよび前記オペランドBのうちの前記大きい方のオペランドから減算される場合に対して、前記シフト表示を計算する、
請求項3から請求項5のいずれかに記載の装置。 - 前記加算回路は、
オーバーフロー状態が存在しないことを仮定して、第1丸め増分値を用いて前記加算を実行するように構成された第1加算回路と、
オーバーフロー状態が存在することを仮定して、第2丸め増分値を用いて前記加算を実行するように構成された第2加算回路と、
を備え、
先行ゼロ訂正状態が存在する場合には、前記加算回路は、前記結果Rの前記仮数部として、前記オペランドAおよび前記オペランドBの前記修正された仮数部から前記第2加算回路により生成された結果を出力するように構成された、
請求項1に記載の装置。 - 前記加算回路が前記オペランドAおよび前記オペランドBに対する前記修正された仮数部の前記加算を実行するとき、前記先行ゼロ訂正状態は、前記第1加算回路から桁上げ出力が生成された場合に検出される、請求項7に記載の装置。
- 前記結果前正規化回路は、前記オペランドAおよび前記オペランドBに対する前記修正された仮数部を生成するために、前記オペランドAおよび前記オペランドBの両方の前記仮数部に左シフト演算を実行することにより、前記シフト演算を実行する、
請求項1から請求項8のいずれかに記載の装置。 - 前記仮数部の前記加算の前に、前記オペランドAおよび前記オペランドBのうちの前記小さい方のオペランドの前記仮数部と、前記オペランドAおよび前記オペランドBのうちの前記大きい方のオペランドの前記仮数部とを整置を実行するように構成された整置回路をさらに備え、
前記加算回路は、前記先行ビット相殺状態が存在しない場合、前記整置回路により整置された前記オペランドAおよび前記オペランドBの前記仮数部の加算を実行するように構成された、
請求項1から請求項9のいずれかに記載の装置。 - 前記整置回路は、シフトするビットの個数が前記オペランドAおよび前記オペランドBの前記指数の差に依存する状態で、前記オペランドAおよび前記オペランドBのうちの前記小さい方のオペランドの前記仮数部に右シフト演算を実行することにより、整置演算を実行する、請求項10に記載の装置。
- 前記装置は、一連のパイプラインステージとして構成され、前記結果前正規化回路は、前記加算回路が配置された後続のパイプラインステージの前のパイプラインステージに配置される、請求項1から請求項11のいずれかに記載の装置。
- 前記予測回路は、前記結果前正規化回路が配置された前記パイプラインステージの前の、先行するパイプラインステージに配置される、請求項12に記載の装置。
- 前記加算回路の入力の前に、非正規化状態の検出に応答して、前記オペランドAおよび前記オペランドBに対する前記修正された仮数部に1ビット訂正右シフトを実行するシフト訂正回路をさらに備える、請求項1から請求項13のいずれかに記載の装置。
- 前記非正規化状態は、前記結果Rの前記指数が予め定められた値をとる場合に検出される、請求項14に記載の装置。
- 二重オーバーフロー状態の検出に応答して、前記加算回路の前記出力に関わりなく、前記結果Rの前記仮数部の全小数部ビットを論理ゼロ値として出力する、結果仮数部出力回路をさらに備える、請求項1から請求項15のいずれかに記載の装置。
- 前記加算回路は、
オーバーフロー状態が存在しないことを仮定して、第1丸め増分値を用いて前記加算を実行するように構成された第1加算回路と、
オーバーフロー状態が存在することを仮定して、第2丸め増分値を用いて前記加算を実行するように構成された第2加算回路と、
を備え、
前記二重オーバーフロー状態は、異符号加算演算の実行時、前記第2加算回路から桁上げ出力が生じた場合に検出され、
前記二重オーバーフロー状態が存在する場合、前記結果の前記指数は、前記第1加算回路からの前記出力に関連する前記指数よりも2だけ大きく設定される、
請求項16に記載の装置。 - 前記予測回路は、前記オペランドAおよび前記オペランドBに異符号加算を実行することにより生成される出力に存在するであろう先行ゼロの個数を示す先行ゼロ値を、前記シフト表示として計算するように構成された先行ゼロ予測回路を備える、請求項1から請求項17の請求項のいずれかに記載の装置。
- データ処理装置のプロセッサによって実行される方法であり、結果Rを生成するためにオペランドAおよびオペランドBに加算演算を実行する方法であって、前記オペランドA、前記オペランドB、および前記結果Rは、仮数部および指数を各々有する浮動小数点値である、方法であって、
前記オペランドAおよび前記オペランドBに異符号加算を実行することにより生成される出力において存在するであろう先行ゼロの個数の予測に基づいて、シフト表示を生成することと、
結果前正規化回路を用いて、前記仮数部の加算の前に、前記オペランドAおよび前記オペランドBの両方の前記仮数部にシフト演算を実行し、前記シフト演算は、前記オペランドAおよび前記オペランドBに対して修正された仮数部を生成するために、前記シフト表示による決定に応じて、前記オペランドAおよび前記オペランドBの両方の前記仮数部の最上位ビットのいくつかを廃棄するように作用することと、
前記オペランドAおよび前記オペランドBの前記指数を参照して、先行ビット相殺状態の存在を検出することと、
前記結果Rの前記仮数部を生成するために、前記先行ビット相殺状態の存在に応答して、前記オペランドAおよび前記オペランドBに対する前記修正された仮数部の加算を実行するように、加算回路を動作させることと、
を含み、
前記加算回路は、前記先行ビット相殺状態の不存在下で、前記結果Rの前記仮数部を生成するために、前記結果前正規化回路によって生成された前記修正された仮数部を使用することなく、前記オペランドAおよび前記オペランドBの両方の前記仮数部の加算を実行し、
前記オペランドBは2つの浮動小数点オペランドに乗算演算を実行した結果であり、前記オペランドBは、前記結果Rが融合乗算累積演算の結果を表すように、入力として丸められない状態で前記装置に提供され、
前記結果Rの前記仮数部は、Nビットを有しており、前記オペランドBの前記仮数部は、丸められない状態に起因してNビットよりも多いビット数を有しており、
前記加算回路は、前記加算の実行時、挿入丸めを実行して丸め増分値を加算するように構成され、
前記加算回路の前に前記結果前正規化回路が動作することにより、前記オペランドAおよび前記オペランドBの前記修正された仮数部が、前記挿入丸めに対して正しく整置されることを確実にする方法。 - 結果Rを得るためにオペランドAおよびオペランドBに加算演算を実行する装置であって、前記オペランドA、前記オペランドB、前記結果Rは、仮数部および指数を各々有する浮動小数点値である、装置であって、
前記オペランドAおよび前記オペランドBに異符号加算を実行することにより生成される出力に存在するであろう先行するゼロの個数の予測に基づいてシフト表示を生成する予想手段と、
前記仮数部の加算の前に、前記オペランドAおよび前記オペランドBの両方の前記仮数部にシフト演算を実行し、前記シフト演算は、前記オペランドAおよび前記オペランドBに対して修正された仮数部を生成するために、前記シフト表示による決定に応じて、前記オペランドAおよび前記オペランドBの両方の前記仮数部の最上位ビットのいくつかを廃棄するように作用する、結果前正規化手段と、
前記オペランドAおよび前記オペランドBの前記指数を参照して、先行ビット相殺状態の存在を検出するオペランド解析手段と、
前記先行ビット相殺状態の存在下で、前記結果Rの前記仮数部を生成するために、前記オペランドAおよび前記オペランドBに対する前記修正された仮数部の加算を実行する加算手段と、
を備え、
前記加算手段は、前記先行ビット相殺状態の不存在下で、前記結果Rの前記仮数部を生成するために、前記結果前正規化手段によって生成された前記修正された仮数部を使用することなく、前記オペランドAおよび前記オペランドBの両方の前記仮数部の加算を実行し、
前記オペランドBは2つの浮動小数点オペランドに乗算演算を実行した結果であり、前記オペランドBは、前記結果Rが融合乗算累積演算の結果を表すように、入力として丸められない状態で前記装置に提供され、
前記結果Rの前記仮数部は、Nビットを有しており、前記オペランドBの前記仮数部は、丸められない状態に起因してNビットよりも多いビット数を有しており、
前記加算手段は、前記加算の実行時、挿入丸めを実行して丸め増分値を加算するように構成され、
前記加算手段の前に前記結果前正規化手段が動作することにより、前記オペランドAおよび前記オペランドBの前記修正された仮数部が、前記挿入丸めに対して正しく整置されることを確実にする装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/929,827 US8965945B2 (en) | 2011-02-17 | 2011-02-17 | Apparatus and method for performing floating point addition |
US12/929,827 | 2011-02-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012174269A JP2012174269A (ja) | 2012-09-10 |
JP6001276B2 true JP6001276B2 (ja) | 2016-10-05 |
Family
ID=45814184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012031642A Active JP6001276B2 (ja) | 2011-02-17 | 2012-02-16 | 浮動小数点加算を実行するための装置および方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8965945B2 (ja) |
JP (1) | JP6001276B2 (ja) |
CN (1) | CN102707921B (ja) |
GB (1) | GB2488863B (ja) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102013209657A1 (de) * | 2013-05-24 | 2014-11-27 | Robert Bosch Gmbh | FMA-Einheit, insbesondere zur Verwendung in einer Modellberechnungseinheit zur rein hardwarebasierten Berechnung von Funktionsmodellen |
US9361267B2 (en) | 2013-09-03 | 2016-06-07 | International Business Machines Corporation | Splitable and scalable normalizer for vector data |
US9830129B2 (en) | 2013-11-21 | 2017-11-28 | Samsung Electronics Co., Ltd. | High performance floating-point adder with full in-line denormal/subnormal support |
US9461667B2 (en) | 2013-12-30 | 2016-10-04 | Samsung Electronics Co., Ltd. | Rounding injection scheme for floating-point to integer conversion |
GB2522194B (en) * | 2014-01-15 | 2021-04-28 | Advanced Risc Mach Ltd | Multiply adder |
WO2016003740A1 (en) | 2014-07-02 | 2016-01-07 | Via Alliance Semiconductor Co., Ltd. | Split-path fused multiply-accumulate operation using first and second sub-operations |
US9582248B2 (en) * | 2014-09-26 | 2017-02-28 | Arm Limited | Standalone floating-point conversion unit |
US10019227B2 (en) | 2014-11-19 | 2018-07-10 | International Business Machines Corporation | Accuracy-conserving floating-point value aggregation |
GB2537419B (en) * | 2015-04-17 | 2021-09-01 | Advanced Risc Mach Ltd | Accumulation of floating-point values |
US11061672B2 (en) | 2015-10-02 | 2021-07-13 | Via Alliance Semiconductor Co., Ltd. | Chained split execution of fused compound arithmetic operations |
US10540143B2 (en) | 2015-10-24 | 2020-01-21 | Alan A. Jorgensen | Apparatus for calculating and retaining a bound on error during floating point operations and methods thereof |
US9817662B2 (en) | 2015-10-24 | 2017-11-14 | Alan A Jorgensen | Apparatus for calculating and retaining a bound on error during floating point operations and methods thereof |
US10114642B2 (en) * | 2015-12-20 | 2018-10-30 | Intel Corporation | Instruction and logic for detecting the floating point cancellation effect |
US10489152B2 (en) * | 2016-01-28 | 2019-11-26 | International Business Machines Corporation | Stochastic rounding floating-point add instruction using entropy from a register |
US10671347B2 (en) | 2016-01-28 | 2020-06-02 | International Business Machines Corporation | Stochastic rounding floating-point multiply instruction using entropy from a register |
US10061561B2 (en) * | 2016-09-07 | 2018-08-28 | Arm Limited | Floating point addition with early shifting |
US10157059B2 (en) * | 2016-09-29 | 2018-12-18 | Intel Corporation | Instruction and logic for early underflow detection and rounder bypass |
US10078512B2 (en) | 2016-10-03 | 2018-09-18 | Via Alliance Semiconductor Co., Ltd. | Processing denormal numbers in FMA hardware |
US10303438B2 (en) * | 2017-01-16 | 2019-05-28 | International Business Machines Corporation | Fused-multiply-add floating-point operations on 128 bit wide operands |
US10140093B2 (en) * | 2017-03-30 | 2018-11-27 | Arm Limited | Apparatus and method for estimating a shift amount when performing floating-point subtraction |
CN107168678B (zh) * | 2017-05-09 | 2020-10-27 | 清华大学 | 一种乘加计算装置及浮点乘加计算方法 |
CN107291420B (zh) * | 2017-06-27 | 2020-06-05 | 上海兆芯集成电路有限公司 | 整合算术及逻辑处理的装置 |
US10241756B2 (en) | 2017-07-11 | 2019-03-26 | International Business Machines Corporation | Tiny detection in a floating-point unit |
JP2019141327A (ja) * | 2018-02-21 | 2019-08-29 | 株式会社三洋物産 | 遊技機 |
JP7115211B2 (ja) * | 2018-10-18 | 2022-08-09 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
US11119729B2 (en) * | 2019-03-28 | 2021-09-14 | Arm Limited | Alignment shifting and incrementing to determine a rounded result of adding first and second floating-point operands |
CN111753317A (zh) * | 2020-05-27 | 2020-10-09 | 长沙睿永信息技术有限公司 | 一种等长数字加密的实现方法 |
WO2020264540A2 (en) * | 2020-05-30 | 2020-12-30 | Futurewei Technologies, Inc. | Methods and apparatus for efficient denormal handling in floating-point units |
US11983237B2 (en) * | 2021-02-21 | 2024-05-14 | Ceremorphic, Inc. | Floating point dot product multiplier-accumulator |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4969118A (en) * | 1989-01-13 | 1990-11-06 | International Business Machines Corporation | Floating point unit for calculating A=XY+Z having simultaneous multiply and add |
US5027308A (en) * | 1989-02-14 | 1991-06-25 | Intel Corporation | Circuit for adding/subtracting two floating point operands |
US5010508A (en) * | 1989-02-14 | 1991-04-23 | Intel Corporation | Prenormalization for a floating-point adder |
JPH0635671A (ja) * | 1992-07-14 | 1994-02-10 | Matsushita Electric Ind Co Ltd | 浮動小数点加減算装置 |
JPH07121353A (ja) * | 1993-10-20 | 1995-05-12 | Matsushita Electric Ind Co Ltd | 浮動小数点加減算装置 |
US5631859A (en) | 1994-10-27 | 1997-05-20 | Hewlett-Packard Company | Floating point arithmetic unit having logic for quad precision arithmetic |
US5633819A (en) * | 1995-10-24 | 1997-05-27 | Exponential Technology, Inc. | Inexact leading-one/leading-zero prediction integrated with a floating-point adder |
US5996066A (en) * | 1996-10-10 | 1999-11-30 | Sun Microsystems, Inc. | Partitioned multiply and add/subtract instruction for CPU with integrated graphics functions |
US6223198B1 (en) * | 1998-08-14 | 2001-04-24 | Advanced Micro Devices, Inc. | Method and apparatus for multi-function arithmetic |
US6085208A (en) * | 1997-10-23 | 2000-07-04 | Advanced Micro Devices, Inc. | Leading one prediction unit for normalizing close path subtraction results within a floating point arithmetic unit |
US6131104A (en) * | 1998-03-27 | 2000-10-10 | Advanced Micro Devices, Inc. | Floating point addition pipeline configured to perform floating point-to-integer and integer-to-floating point conversion operations |
WO1999031573A1 (fr) | 1997-12-17 | 1999-06-24 | Kabushiki Kaisha Ultraclean Technology Research Institute | Procede et circuit semi-conducteur pour effectuer des operations arithmetiques |
US7346643B1 (en) * | 1999-07-30 | 2008-03-18 | Mips Technologies, Inc. | Processor with improved accuracy for multiply-add operations |
US6594679B1 (en) | 2000-03-20 | 2003-07-15 | International Business Machines Corporation | Leading-zero anticipator having an independent sign bit determination module |
CA2327924A1 (en) | 2000-12-08 | 2002-06-08 | Ibm Canada Limited-Ibm Canada Limitee | Processor design for extended-precision arithmetic |
US7392273B2 (en) * | 2002-12-20 | 2008-06-24 | International Business Machines Corporation | High-sticky calculation in pipelined fused multiply/add circuitry |
US7337202B2 (en) * | 2003-12-24 | 2008-02-26 | International Business Machines Corporation | Shift-and-negate unit within a fused multiply-adder circuit |
US7428566B2 (en) | 2004-11-10 | 2008-09-23 | Nvidia Corporation | Multipurpose functional unit with multiply-add and format conversion pipeline |
US7225323B2 (en) * | 2004-11-10 | 2007-05-29 | Nvidia Corporation | Multi-purpose floating point and integer multiply-add functional unit with multiplication-comparison test addition and exponent pipelines |
US8015231B2 (en) | 2004-11-30 | 2011-09-06 | Arm Limited | Data processing apparatus and method for performing floating point multiplication |
US7433911B2 (en) | 2004-12-21 | 2008-10-07 | Arm Limited | Data processing apparatus and method for performing floating point addition |
US7461117B2 (en) * | 2005-02-11 | 2008-12-02 | International Business Machines Corporation | Floating point unit with fused multiply add and method for calculating a result with a floating point unit |
US7437400B2 (en) | 2005-03-14 | 2008-10-14 | Arm Limited | Data processing apparatus and method for performing floating point addition |
US7668892B2 (en) | 2005-08-25 | 2010-02-23 | Arm Limited | Data processing apparatus and method for normalizing a data value |
US7912887B2 (en) * | 2006-05-10 | 2011-03-22 | Qualcomm Incorporated | Mode-based multiply-add recoding for denormal operands |
US8078660B2 (en) | 2007-04-10 | 2011-12-13 | The Board Of Regents, University Of Texas System | Bridge fused multiply-adder circuit |
CN101174200B (zh) * | 2007-05-18 | 2010-09-08 | 清华大学 | 一种具有五级流水线结构的浮点乘加融合单元 |
US8106914B2 (en) * | 2007-12-07 | 2012-01-31 | Nvidia Corporation | Fused multiply-add functional unit |
CN100570552C (zh) * | 2007-12-20 | 2009-12-16 | 清华大学 | 一种并行浮点乘加单元 |
US8239440B2 (en) | 2008-03-28 | 2012-08-07 | Oracle America, Inc. | Processor which implements fused and unfused multiply-add instructions in a pipelined manner |
US8495121B2 (en) | 2008-11-20 | 2013-07-23 | Advanced Micro Devices, Inc. | Arithmetic processing device and methods thereof |
US8489663B2 (en) | 2009-06-05 | 2013-07-16 | Advanced Micro Devices | Decimal floating-point adder with leading zero anticipation |
-
2011
- 2011-02-17 US US12/929,827 patent/US8965945B2/en active Active
-
2012
- 2012-01-18 GB GB1200822.3A patent/GB2488863B/en active Active
- 2012-02-16 JP JP2012031642A patent/JP6001276B2/ja active Active
- 2012-02-17 CN CN201210039154.2A patent/CN102707921B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US8965945B2 (en) | 2015-02-24 |
CN102707921A (zh) | 2012-10-03 |
JP2012174269A (ja) | 2012-09-10 |
GB2488863B (en) | 2017-12-06 |
CN102707921B (zh) | 2017-06-30 |
GB2488863A (en) | 2012-09-12 |
US20120215823A1 (en) | 2012-08-23 |
GB201200822D0 (en) | 2012-02-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6001276B2 (ja) | 浮動小数点加算を実行するための装置および方法 | |
US9110713B2 (en) | Microarchitecture for floating point fused multiply-add with exponent scaling | |
US8447800B2 (en) | Mode-based multiply-add recoding for denormal operands | |
US6904446B2 (en) | Floating point multiplier/accumulator with reduced latency and method thereof | |
US6360189B1 (en) | Data processing apparatus and method for performing multiply-accumulate operations | |
TWI405126B (zh) | 微處理器及其執行指令之方法 | |
CN107608655B (zh) | 微处理器中执行fma指令的方法和微处理器 | |
US5993051A (en) | Combined leading one and leading zero anticipator | |
JPH0544046B2 (ja) | ||
US7668892B2 (en) | Data processing apparatus and method for normalizing a data value | |
CN111752526A (zh) | 浮点相加 | |
Quinnell et al. | Bridge floating-point fused multiply-add design | |
US7437400B2 (en) | Data processing apparatus and method for performing floating point addition | |
US8620983B2 (en) | Leading sign digit predictor for floating point near subtractor | |
US7373369B2 (en) | Advanced execution of extended floating-point add operations in a narrow dataflow | |
US7356553B2 (en) | Data processing apparatus and method for determining a processing path to perform a data processing operation on input data elements | |
Thiruvenkadam et al. | Area-efficient dual-mode fused floating-point three-term adder | |
US7386580B2 (en) | Data processing apparatus and method for computing an absolute difference between first and second data elements | |
He et al. | Multiply-add fused float point unit with on-fly denormalized number processing | |
US20190121615A1 (en) | Apparatus and method for subtracting significand values of floating-point operands | |
US20240004611A1 (en) | Tininess detection | |
US20230305805A1 (en) | Chained multiply accumulate using an unrounded product | |
US9519458B1 (en) | Optimized fused-multiply-add method and system | |
KR20230015844A (ko) | 극소 검출 | |
Gopal | A novel low power multi path double precision fused multiplier accumulator architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150122 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160225 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160301 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160601 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160616 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160719 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20160809 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160901 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6001276 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |