JP2015170359A - 浮動小数点オペランドを乗算するためのデータ処理装置及び方法 - Google Patents
浮動小数点オペランドを乗算するためのデータ処理装置及び方法 Download PDFInfo
- Publication number
- JP2015170359A JP2015170359A JP2015032244A JP2015032244A JP2015170359A JP 2015170359 A JP2015170359 A JP 2015170359A JP 2015032244 A JP2015032244 A JP 2015032244A JP 2015032244 A JP2015032244 A JP 2015032244A JP 2015170359 A JP2015170359 A JP 2015170359A
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 34
- 238000000034 method Methods 0.000 title claims abstract description 31
- 230000001419 dependent effect Effects 0.000 claims abstract description 5
- 238000010606 normalization Methods 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 2
- 230000004044 response Effects 0.000 claims description 2
- 230000007246 mechanism Effects 0.000 abstract description 10
- 239000000047 product Substances 0.000 description 48
- 238000010586 diagram Methods 0.000 description 11
- 238000007792 addition Methods 0.000 description 9
- 239000007924 injection Substances 0.000 description 8
- 238000002347 injection Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 239000004174 erythrosine Substances 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000012937 correction Methods 0.000 description 2
- 239000012467 final product Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
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)
Abstract
【解決手段】それぞれが仮数と指数とを含む第1及び第2の正規化された浮動小数点オペランドを乗算し、結果を生成するためのデータ処理装置及び方法が提供される。指数決定回路が、結果の正規化バージョンに対する結果指数を計算するのに用いられ、次いで、丸め値生成回路が、丸め定数を第1の方向に結果指数に依存するシフト量だけシフトさせることによって、丸め値を生成する。部分積生成回路が、第1及び第2の正規化された浮動小数点オペランドの仮数を乗算して第1及び第2の部分積を生成し、次に、正規化された結果仮数を生成するために、第1及び第2の部分積が丸め値と加算される。その後で、丸められた結果仮数を生成するために、正規化された結果仮数が、第1の方向とは逆の第2の方向にシフト量だけシフトされる。
【選択図】図2
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 US9483232B2 (en) | 2014-03-07 | 2014-03-07 | Data processing apparatus and method for multiplying floating point operands |
US14/200,923 | 2014-03-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015170359A true JP2015170359A (ja) | 2015-09-28 |
JP6360450B2 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) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018097864A (ja) * | 2016-12-06 | 2018-06-21 | エイアールエム リミテッド | リーディングゼロ予想 |
KR20180081106A (ko) * | 2015-11-12 | 2018-07-13 | 에이알엠 리미티드 | 중첩 표현을 이용한 제1 및 제2 피연산자의 승산 |
Families Citing this family (10)
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 |
US10061561B2 (en) * | 2016-09-07 | 2018-08-28 | Arm Limited | Floating point addition with early shifting |
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的多精度浮点乘法器结构 |
CN117687596B (zh) * | 2023-12-20 | 2024-07-19 | 摩尔线程智能科技(北京)有限责任公司 | 运算装置及方法、芯片和电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0540605A (ja) * | 1991-08-02 | 1993-02-19 | Toshiba Corp | 浮動小数点乗算装置 |
JPH09212337A (ja) * | 1996-01-31 | 1997-08-15 | Hitachi Ltd | 浮動小数点演算処理装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69132807T2 (de) * | 1990-08-24 | 2002-06-27 | Matsushita Electric Industrial Co., Ltd. | Verfahren und Gerät zur Berechnung von Gleitkommadaten |
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
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0540605A (ja) * | 1991-08-02 | 1993-02-19 | Toshiba Corp | 浮動小数点乗算装置 |
JPH09212337A (ja) * | 1996-01-31 | 1997-08-15 | Hitachi Ltd | 浮動小数点演算処理装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180081106A (ko) * | 2015-11-12 | 2018-07-13 | 에이알엠 리미티드 | 중첩 표현을 이용한 제1 및 제2 피연산자의 승산 |
KR102491789B1 (ko) | 2015-11-12 | 2023-01-26 | 에이알엠 리미티드 | 중첩 표현을 이용한 제1 및 제2 피연산자의 승산 |
JP2018097864A (ja) * | 2016-12-06 | 2018-06-21 | エイアールエム リミテッド | リーディングゼロ予想 |
JP7044528B2 (ja) | 2016-12-06 | 2022-03-30 | アーム・リミテッド | リーディングゼロ予想 |
Also Published As
Publication number | Publication date |
---|---|
GB201501577D0 (en) | 2015-03-18 |
US9483232B2 (en) | 2016-11-01 |
GB2524377A (en) | 2015-09-23 |
JP6360450B2 (ja) | 2018-07-18 |
US20150254066A1 (en) | 2015-09-10 |
GB2524377B (en) | 2021-02-24 |
CN104899004A (zh) | 2015-09-09 |
CN104899004B (zh) | 2019-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6360450B2 (ja) | 浮動小数点オペランドを乗算するためのデータ処理装置及び方法 | |
US9841948B2 (en) | Microarchitecture for floating point fused multiply-add with exponent scaling | |
KR102627299B1 (ko) | 부동소수점 곱셈 장치 및 방법 | |
JP5996946B2 (ja) | 浮動小数点加算器 | |
US8046399B1 (en) | Fused multiply-add rounding and unfused multiply-add rounding in a single multiply-add module | |
CN107769791B (zh) | 用于定点到浮点的转换的装置和方法及2的负幂检测器 | |
CN106250098B (zh) | 用于在执行浮点运算时控制舍入的装置及方法 | |
US9696964B2 (en) | Multiply adder | |
CN107025091B (zh) | 二进制融合乘加浮点计算 | |
JP6415236B2 (ja) | 浮動小数点加算ユニットを含む装置及びシステム、並びに浮動小数点加算方法 | |
KR20180050203A (ko) | 3-경로 단일 곱셈-누산기 설계에서 고속 근경로 증분합 | |
CN108694037B (zh) | 用于在执行浮点减法时估计移位量的装置和方法 | |
CN112241291A (zh) | 用于指数函数实施的浮点单元 | |
KR102412746B1 (ko) | 부동 소수점 제곱근 연산 장치 및 방법 | |
US10489115B2 (en) | Shift amount correction for multiply-add | |
CN108153513B (zh) | 前导零预测 | |
US9836279B2 (en) | Apparatus and method for floating-point multiplication | |
KR100974190B1 (ko) | 부동 소수점을 이용한 복소수 곱셈방법 | |
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |