JP6360450B2 - 浮動小数点オペランドを乗算するためのデータ処理装置及び方法 - Google Patents
浮動小数点オペランドを乗算するためのデータ処理装置及び方法 Download PDFInfo
- Publication number
- JP6360450B2 JP6360450B2 JP2015032244A JP2015032244A JP6360450B2 JP 6360450 B2 JP6360450 B2 JP 6360450B2 JP 2015032244 A JP2015032244 A JP 2015032244A JP 2015032244 A JP2015032244 A JP 2015032244A JP 6360450 B2 JP6360450 B2 JP 6360450B2
- Authority
- JP
- Japan
- Prior art keywords
- result
- value
- mantissa
- normalized
- 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.)
- 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/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
- 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/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
- G06F7/49952—Sticky bit
-
- 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
- G06F7/49957—Implementation of IEEE-754 Standard
-
- 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
- G06F7/523—Multiplying only
- G06F7/533—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
- G06F7/5334—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product
- G06F7/5336—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/483—Indexing scheme relating to group G06F7/483
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Nonlinear Science (AREA)
- Complex Calculations (AREA)
Description
二倍精度の仮数は53ビットを有するから、インジェクション丸めは、正規化された106ビットの積の53番目のビットにおいて生じる。この積が18ビットだけ右シフトされる場合には、丸めは、その代わりに、35番目のビットにおいて生じる必要がある。
125、135 左シフト回路
145、150、170、175 レジスタ
160 マルチプレクサ回路
235、240 最後のビット及びフラグ回路
300、305、310、320 加算器
375 AND関数
380、390 OR関数
Claims (12)
- それぞれが仮数と指数とを含む第1及び第2の正規化された浮動小数点オペランドを乗算し、結果を生成するためのデータ処理装置であって、
前記結果の正規化バージョンに対する結果指数を計算するように構成された指数決定回路と、
丸め定数を第1の方向に前記結果指数に依存するシフト量だけシフトさせることによって、丸め値を生成するように構成された丸め値生成回路と、
前記第1及び第2の正規化された浮動小数点オペランドの前記仮数を乗算して、第1及び第2の部分積を生成するように構成された部分積生成回路と、
正規化された結果仮数を生成するために、前記第1及び第2の部分積と前記丸め値とを加算するように構成された加算器回路と、
丸められた結果仮数を生成するために、前記正規化された結果仮数を前記第1の方向とは逆の第2の方向に前記シフト量だけシフトさせるように構成されたシフト回路と、
を備えているデータ処理装置。 - マスク定数を前記第1の方向に前記シフト量だけシフトさせることによって、マスク値を生成するように構成されたマスク生成回路と、
前記マスク値を前記正規化された結果仮数に適用して、前記正規化された結果仮数におけるガード及びスティッキー・ビットを識別するように構成されたガード及びスティッキー・ビット検出回路と、
前記ガード及びスティッキー・ビットに応じて、前記丸められた結果仮数を調節するように構成された結果調節回路と、
を更に備えている、請求項1に記載のデータ処理装置。 - 前記結果指数が正規の範囲にある場合には、前記シフト量はゼロ・シフトを識別するように設定されている、請求項1又は2に記載のデータ処理装置。
- 前記第1及び第2の正規化された浮動小数点オペランドを形成するのに用いられる第1及び第2の入力浮動小数点オペランドを受け取るための入力インターフェースを更に備え、
前記第1及び第2の入力浮動小数点オペランドの一方が非正規オペランドであることに応答して、前記非正規オペランドの前記仮数を前記第1の方向に正規化量だけシフトさせることによって仮数を形成し、前記正規化量に応じて前記非正規オペランドの前記指数を調節することによって指数を形成するために、対応する正規化された浮動小数点オペランドを形成するように構成された正規化回路を備えている、請求項1から3までのいずれか一項に記載のデータ処理装置。 - 前記結果指数が非正規である場合には、前記シフト量が前記結果指数と最小正規指数値との差に依存するように、前記シフト量を生成するように構成されたシフト量生成回路を更に備えている、請求項1から4までのいずれか一項に記載のデータ処理装置。
- 前記シフト量生成回路は、所定の最大シフト量を超えないように前記シフト量を制限するように構成されている、請求項5に記載のデータ処理装置。
- 前記丸め定数は前記データ処理装置によって用いられる丸めモードに依存する、請求項1から6までのいずれか一項に記載のデータ処理装置。
- 前記丸め値生成回路は、前記丸め定数を前記第1の方向に前記シフト量だけシフトさせるとき、前記丸め定数がそこからシフトされる最下位ビット位置を所定のビット値に設定し、前記最下位ビット位置を前記シフトされた丸め定数と共に前記丸め値に含むように構成されている、請求項1から7までのいずれか一項に記載のデータ処理装置。
- 前記所定のビット値は、前記データ処理装置によって用いられる丸めモードに依存する、請求項8に記載のデータ処理装置。
- 前記マスク定数の各ビットは所定のビット値に設定されており、前記マスク生成回路は、前記マスク定数を前記第1の方向に前記シフト量だけシフトさせるとき、前記マスク定数がそこからシフトされる最下位ビット位置を前記所定のビット値に設定し、前記最下位ビット位置を前記シフトされたマスク定数と共に前記マスク値に含むように構成されている、請求項2に従属するときの請求項1から9までのいずれか一項に記載のデータ処理装置。
- それぞれが仮数と指数とを含む第1及び第2の正規化された浮動小数点オペランドを乗算し、結果を生成するデータ処理装置を動作させる方法であって、
前記結果の正規化バージョンに対する結果指数を計算するステップと、
丸め定数を第1の方向に前記結果指数に依存するシフト量だけシフトさせることによって、丸め値を生成するステップと、
前記第1及び第2の正規化された浮動小数点オペランドの前記仮数を乗算して、第1及び第2の部分積を生成するステップと、
正規化された結果仮数を生成するために、前記第1及び第2の部分積と前記丸め値とを加算するステップと、
丸められた結果仮数を生成するために、前記正規化された結果仮数を前記第1の方向とは逆の第2の方向に前記シフト量だけシフトさせるステップと、
を含む方法。 - それぞれが仮数と指数とを含む第1及び第2の正規化された浮動小数点オペランドを乗算し、結果を生成するためのデータ処理装置であって、
前記結果の正規化バージョンに対する結果指数を計算するための指数決定手段と、
丸め定数を第1の方向に前記結果指数に依存するシフト量だけシフトさせることによって、丸め値を生成するための丸め値生成手段と、
前記第1及び第2の正規化された浮動小数点オペランドの前記仮数を乗算して、第1及び第2の部分積を生成するための部分積生成手段と、
正規化された結果仮数を生成するために、前記第1及び第2の部分積と前記丸め値とを加算するための加算器手段と、
丸められた結果仮数を生成するために、前記正規化された結果仮数を前記第1の方向とは逆の第2の方向に前記シフト量だけシフトさせるためのシフト手段と、
を備えているデータ処理装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/200,923 | 2014-03-07 | ||
US14/200,923 US9483232B2 (en) | 2014-03-07 | 2014-03-07 | Data processing apparatus and method for multiplying floating point operands |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015170359A JP2015170359A (ja) | 2015-09-28 |
JP6360450B2 true JP6360450B2 (ja) | 2018-07-18 |
Family
ID=52705520
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015032244A Active JP6360450B2 (ja) | 2014-03-07 | 2015-02-20 | 浮動小数点オペランドを乗算するためのデータ処理装置及び方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9483232B2 (ja) |
JP (1) | JP6360450B2 (ja) |
CN (1) | CN104899004B (ja) |
GB (1) | GB2524377B (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9823897B2 (en) * | 2015-09-25 | 2017-11-21 | Arm Limited | Apparatus and method for floating-point multiplication |
US9817661B2 (en) * | 2015-10-07 | 2017-11-14 | Arm Limited | Floating point number rounding |
GB2543511B (en) * | 2015-10-19 | 2018-07-25 | Imagination Tech Ltd | Rounding reciprocal square root results |
US9703531B2 (en) * | 2015-11-12 | 2017-07-11 | Arm Limited | Multiplication of first and second operands using redundant representation |
US10061561B2 (en) * | 2016-09-07 | 2018-08-28 | Arm Limited | Floating point addition with early shifting |
US10606557B2 (en) * | 2016-12-06 | 2020-03-31 | Arm Limited | Leading zero anticipation |
US11010131B2 (en) | 2017-09-14 | 2021-05-18 | Intel Corporation | Floating-point adder circuitry with subnormal support |
US10656913B2 (en) * | 2018-06-05 | 2020-05-19 | International Business Machines Corporation | Enhanced low precision binary floating-point formatting |
US10684824B2 (en) | 2018-06-06 | 2020-06-16 | Nvidia Corporation | Stochastic rounding of numerical values |
US20230015148A1 (en) * | 2021-07-16 | 2023-01-19 | Google Llc | Multiplier and Adder in Systolic Array |
CN117149130B (zh) * | 2023-10-31 | 2024-01-30 | 中科亿海微电子科技(苏州)有限公司 | 一种应用于fpga嵌入式dsp的多精度浮点乘法器结构 |
CN117687596A (zh) * | 2023-12-20 | 2024-03-12 | 摩尔线程智能科技(北京)有限责任公司 | 运算装置及方法、芯片和电子设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69133072T2 (de) * | 1990-08-24 | 2003-03-20 | Matsushita Electric Ind Co Ltd | Verfahren und Gerät zur Berechnung von Gleitkommadaten |
JPH0540605A (ja) * | 1991-08-02 | 1993-02-19 | Toshiba Corp | 浮動小数点乗算装置 |
JP3313560B2 (ja) * | 1996-01-31 | 2002-08-12 | 株式会社日立製作所 | 浮動小数点演算処理装置 |
US5844830A (en) | 1996-08-07 | 1998-12-01 | Sun Microsystems, Inc. | Executing computer instrucrions by circuits having different latencies |
US6049865A (en) * | 1997-12-18 | 2000-04-11 | Motorola, Inc. | Method and apparatus for implementing floating point projection instructions |
CN100405289C (zh) * | 2005-03-08 | 2008-07-23 | 中国科学院计算技术研究所 | 一种浮点乘法器及其兼容双精度和双单精度计算的方法 |
US8463834B2 (en) | 2009-11-03 | 2013-06-11 | Arm Limited | Floating point multiplier with first and second partial product shifting circuitry for result alignment |
-
2014
- 2014-03-07 US US14/200,923 patent/US9483232B2/en active Active
-
2015
- 2015-01-30 GB GB1501577.9A patent/GB2524377B/en active Active
- 2015-02-20 JP JP2015032244A patent/JP6360450B2/ja active Active
- 2015-02-28 CN CN201510092044.6A patent/CN104899004B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US20150254066A1 (en) | 2015-09-10 |
GB2524377B (en) | 2021-02-24 |
CN104899004B (zh) | 2019-08-09 |
GB201501577D0 (en) | 2015-03-18 |
US9483232B2 (en) | 2016-11-01 |
JP2015170359A (ja) | 2015-09-28 |
CN104899004A (zh) | 2015-09-09 |
GB2524377A (en) | 2015-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6360450B2 (ja) | 浮動小数点オペランドを乗算するためのデータ処理装置及び方法 | |
US9841948B2 (en) | Microarchitecture for floating point fused multiply-add with exponent scaling | |
JP5996946B2 (ja) | 浮動小数点加算器 | |
US8046399B1 (en) | Fused multiply-add rounding and unfused multiply-add rounding in a single multiply-add module | |
KR102627299B1 (ko) | 부동소수점 곱셈 장치 및 방법 | |
CN107769791B (zh) | 用于定点到浮点的转换的装置和方法及2的负幂检测器 | |
US9696964B2 (en) | Multiply adder | |
JP6415236B2 (ja) | 浮動小数点加算ユニットを含む装置及びシステム、並びに浮動小数点加算方法 | |
CN107608655B (zh) | 微处理器中执行fma指令的方法和微处理器 | |
CN107025091B (zh) | 二进制融合乘加浮点计算 | |
KR20180050203A (ko) | 3-경로 단일 곱셈-누산기 설계에서 고속 근경로 증분합 | |
CN106250098B (zh) | 用于在执行浮点运算时控制舍入的装置及方法 | |
CN108694037B (zh) | 用于在执行浮点减法时估计移位量的装置和方法 | |
CN112241291A (zh) | 用于指数函数实施的浮点单元 | |
KR102412746B1 (ko) | 부동 소수점 제곱근 연산 장치 및 방법 | |
US10489115B2 (en) | Shift amount correction for multiply-add | |
CN108153513B (zh) | 前导零预测 | |
JP6919539B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
US9836279B2 (en) | Apparatus and method for floating-point multiplication | |
JP2010049614A (ja) | 計算機 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180213 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180427 |
|
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: 20180529 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180622 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6360450 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 |