JP7042276B2 - 3つの128ビット拡張オペランドに対して融合積和演算を実行するように構成される浮動小数点ユニット、その方法、プログラム、およびシステム - Google Patents
3つの128ビット拡張オペランドに対して融合積和演算を実行するように構成される浮動小数点ユニット、その方法、プログラム、およびシステム Download PDFInfo
- Publication number
- JP7042276B2 JP7042276B2 JP2019534936A JP2019534936A JP7042276B2 JP 7042276 B2 JP7042276 B2 JP 7042276B2 JP 2019534936 A JP2019534936 A JP 2019534936A JP 2019534936 A JP2019534936 A JP 2019534936A JP 7042276 B2 JP7042276 B2 JP 7042276B2
- Authority
- JP
- Japan
- Prior art keywords
- addend
- product
- adder
- bit
- carry
- 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
Images
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
-
- 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/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)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Nonlinear Science (AREA)
- Complex Calculations (AREA)
Description
Claims (14)
- 3つの128ビット拡張オペランドに対して融合積和演算を実行するように構成される浮動小数点ユニットであって、
(i)乗算オペランドのデータフローに接続され、226ビット桁上げ保存積を反復して計算するように構成された113×113ビット乗算器であって、合計項および桁上げ項が、前記積の上部および下部に分離される、前記113×113ビット乗算器と、
(ii)加数の揃えた部分を送り出すように構成された、加数オペランドの上部および下部のデータフローに接続された左シフタと、
(iii)前記加数の前記揃えた部分を送り出すように構成された、前記加数オペランドの前記上部および前記下部の前記データフローに接続された右シフタと、
(iv)前記合計項および前記桁上げ項を前記加数と結合させるための3対2コンプレッサを備える前記左シフタと前記右シフタとの両シフタの出力に接続された選択回路と、
(v)前記選択回路らのデータフローに接続された加算器と、
(vi)その後の2つの加算において前記上部および前記下部に対する中間積と揃えた加数の拡張加法演算を行うために、前記加算器の桁上げ出力を前記選択回路に接続する第1のフィードバック経路と、
(vii)正規化のために中間拡張結果を前記両シフタを通過させるため、および丸めのために前記加算器を再度通過させるために、前記加算器の前記出力を前記両シフタに接続する第2のフィードバック経路と
を備える、浮動小数点ユニット。 - さらに前記左シフタがビット循環機能を有する右シフタとして実装される、請求項1に記載のユニット。
- さらに前記乗算器が、前記積の前記上部および前記下部を順次計算するように構成される、請求項1に記載のユニット。
- 前記加数オペランドのアンパック回路に接続される先頭ゼロ・カウンタをさらに備える、請求項1に記載のユニット。
- 前記加数の先頭ゼロの数を引いた前記加数の指数が、定数を加えた前記積の指数より大きい場合、前記積を前記加数に揃えるための手段をさらに備え、ここで前記定数が少なくとも2である、請求項1に記載のユニット。
- 非正規加数の場合、前記加数を正規化するための手段をさらに備える、請求項5に記載のユニット。
- 前記積の前記上部および前記下部を前記加数に揃え、単一のデータ部にマージするための手段をさらに備える、請求項5に記載のユニット。
- 前記加数の先頭ゼロの数を引いた前記加数の指数が、定数を加えた前記積の指数以下である場合、前記左シフタまたは前記右シフタあるいはその両方によって前記加数を前記積に揃えるための手段をさらに備える、ここで前記定数が少なくとも2である、請求項1に記載のユニット。
- 前記左シフタまたは前記右シフタあるいはその両方によって、前記加数の前記上部および前記下部を別々に前記積に揃えるための手段をさらに備える、請求項8に記載のユニット。
- 効果的な加法演算の場合、前記選択回路および前記3対2コンプレッサによって、前記積および前記加数の前記上部および前記下部を加算するための手段をさらに備える、請求項8に記載のユニット。
- エンド・アラウンド桁上げ演算の結果がゼロに等しい場合、前記積と否定加数の否定合計を結果として計算すること、そうでなければ、効果的な減法演算の場合、前記積と、1を加えた前記否定加数との合計を結果として計算すること、を行うための手段をさらに備える、請求項8に記載のユニット。
- 3つの128ビット拡張オペランドに対して融合積和演算を実行するように構成される浮動小数点ユニットで2進浮動小数点算術計算を行うための方法であって、
(i)113×113ビット乗算器によって乗算オペランドの226ビット桁上げ保存積を反復して計算することであって、合計項および桁上げ項が、前記積の上部および下部に分離される、前記計算することと、
(ii)データフローに接続された左シフタによって加数の揃えた部分を送り出すように構成された、加数オペランドの少なくとも上部および下部を揃えることと、
(iii)前記加数の前記揃えた部分を送り出すように構成された、前記データフローに接続された右シフタによって前記加数オペランドの前記上部および前記下部を揃えることと、
(iv)3対2コンプレッサを備える前記左シフタと前記右シフタとの両シフタの出力に接続された選択回路によって2つの積項を前記加数と結合させることと、
(v)前記選択回路からのデータフローに接続された加算器を動作させることと、
(vi)前記加算器の桁上げ出力を前記選択回路に接続する第1のフィードバック経路でその後の2つの加算において前記上部および前記下部に対する中間積と揃えた加数との拡張加算を行うことと、
(vii)正規化のために中間拡張結果を前記両シフタを通過させること、および前記加算器の前記出力を前記両シフタに接続する第2のフィードバック経路において丸めのために前記加算器を再度通過させることと
を含む、方法。 - 3つの128ビット拡張オペランドに対して融合積和演算を実行するように構成される浮動小数点ユニットで2進浮動小数点算術計算を行うためのコンピュータ・プログラムであって、
(i)113×113ビット乗算器によって乗算オペランドの226ビット桁上げ保存積を反復して計算することであって、合計項および桁上げ項が、前記積の上部および下部に分離される、前記計算することと、
(ii)データフローに接続された左シフタによって加数の揃えた部分を送り出すように構成された、加数オペランドの少なくとも上部および下部を揃えることと、
(iii)前記加数の前記揃えた部分を送り出すように構成された、前記データフローに接続された右シフタによって前記加数オペランドの前記上部および前記下部を揃えることと、
(iv)3対2コンプレッサを備える前記左シフタと前記右シフタとの両シフタの出力に接続された選択回路によって2つの積項を前記加数と結合させることと、
(v)前記選択回路からのデータフローに接続された加算器を動作させることと、
(vi)前記加算器の桁上げ出力を前記選択回路に接続する第1のフィードバック経路でその後の2つの加算において前記上部および前記下部に対する中間積と揃えた加数との拡張加算を行うことと、
(vii)正規化のために中間拡張結果を前記両シフタを通過させること、および前記加算器の前記出力を前記両シフタに接続する第2のフィードバック経路において丸めのために前記加算器を再度通過させることと
を含む方法をコンピュータ・システムの前記浮動小数点ユニットに行わせる、前記コンピュータ・システムによって実行可能な、コンピュータ・プログラム。 - 請求項13に記載の方法を行うためのコンピュータ可読プログラム命令を備える、データ処理プログラムの実行のためのデータ処理システム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/406,910 US10303438B2 (en) | 2017-01-16 | 2017-01-16 | Fused-multiply-add floating-point operations on 128 bit wide operands |
US15/406,910 | 2017-01-16 | ||
PCT/IB2018/050101 WO2018130925A1 (en) | 2017-01-16 | 2018-01-08 | Fused-multiply-add floating-point operations on 128 bit wide operands |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020514862A JP2020514862A (ja) | 2020-05-21 |
JP7042276B2 true JP7042276B2 (ja) | 2022-03-25 |
Family
ID=62839515
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019534936A Active JP7042276B2 (ja) | 2017-01-16 | 2018-01-08 | 3つの128ビット拡張オペランドに対して融合積和演算を実行するように構成される浮動小数点ユニット、その方法、プログラム、およびシステム |
Country Status (6)
Country | Link |
---|---|
US (1) | US10303438B2 (ja) |
JP (1) | JP7042276B2 (ja) |
CN (1) | CN110168493B (ja) |
DE (1) | DE112018000140T5 (ja) |
GB (1) | GB2573239B (ja) |
WO (1) | WO2018130925A1 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10303438B2 (en) | 2017-01-16 | 2019-05-28 | International Business Machines Corporation | Fused-multiply-add floating-point operations on 128 bit wide operands |
US10241756B2 (en) | 2017-07-11 | 2019-03-26 | International Business Machines Corporation | Tiny detection in a floating-point unit |
US10838718B2 (en) * | 2017-09-28 | 2020-11-17 | Fujitsu Limited | Processing device, arithmetic unit, and control method of processing device |
CN109284083A (zh) * | 2018-09-14 | 2019-01-29 | 北京探境科技有限公司 | 一种乘法运算装置及方法 |
CN109947391B (zh) * | 2019-03-11 | 2023-08-01 | 合芯科技(苏州)有限公司 | 一种数据处理方法和装置 |
CN110750232B (zh) * | 2019-10-17 | 2023-06-20 | 电子科技大学 | 一种基于sram的并行乘加装置 |
CN113031912A (zh) * | 2019-12-24 | 2021-06-25 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、装置及芯片 |
CN112230882B (zh) * | 2020-10-28 | 2021-06-01 | 海光信息技术股份有限公司 | 浮点数处理装置、浮点数加法装置及浮点数处理方法 |
CN112988112B (zh) * | 2021-04-27 | 2021-08-10 | 北京壁仞科技开发有限公司 | 点积计算装置 |
CN115344525B (zh) * | 2022-08-16 | 2023-04-18 | 江南信安(北京)科技有限公司 | 一种椭圆曲线点加硬件加速方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006221622A (ja) | 2005-02-09 | 2006-08-24 | Internatl Business Mach Corp <Ibm> | 正規化および丸め処理前にフィードバックを行う浮動小数点ユニットのためのシステムおよび方法 |
JP2016535360A (ja) | 2014-07-02 | 2016-11-10 | ヴィア アライアンス セミコンダクター カンパニー リミテッド | 非アトミック分割経路融合積和 |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6763367B2 (en) | 2000-12-11 | 2004-07-13 | International Business Machines Corporation | Pre-reduction technique within a multiplier/accumulator architecture |
US6963894B2 (en) | 2002-04-08 | 2005-11-08 | Intel Corporation | Methods and apparatus for predicting an underflow condition associated with a floating-point multiply-add operation |
US7593977B2 (en) | 2002-12-23 | 2009-09-22 | Intel Corporation | Method and system for avoiding underflow in a floating-point operation |
US7668896B2 (en) | 2004-11-30 | 2010-02-23 | Arm Limited | Data processing apparatus and method for performing floating point multiplication |
US7451172B2 (en) * | 2005-02-10 | 2008-11-11 | International Business Machines Corporation | Handling denormal floating point operands when result must be normalized |
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 |
US7720900B2 (en) | 2005-09-09 | 2010-05-18 | International Business Machines Corporation | Fused multiply add split for multiple precision arithmetic |
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 | 清华大学 | 一种具有五级流水线结构的浮点乘加融合单元 |
US8291003B2 (en) * | 2008-09-09 | 2012-10-16 | International Business Machines Corporation | Supporting multiple formats in a floating point processor |
US8499017B2 (en) | 2009-08-12 | 2013-07-30 | Arm Limited | Apparatus and method for performing fused multiply add floating point operation |
US8694572B2 (en) | 2010-07-06 | 2014-04-08 | Silminds, Llc, Egypt | Decimal floating-point fused multiply-add unit |
US8805903B2 (en) * | 2010-07-16 | 2014-08-12 | Texas Instruments Incorporated | Extended-width shifter for arithmetic logic unit |
US8577948B2 (en) | 2010-09-20 | 2013-11-05 | Intel Corporation | Split path multiply accumulate unit |
US8965945B2 (en) * | 2011-02-17 | 2015-02-24 | Arm Limited | Apparatus and method for performing floating point addition |
US8671129B2 (en) | 2011-03-08 | 2014-03-11 | Oracle International Corporation | System and method of bypassing unrounded results in a multiply-add pipeline unit |
FR2972957B1 (fr) | 2011-03-23 | 2014-02-21 | Areva Nc | Presse a maintenance amelioree |
US8838664B2 (en) * | 2011-06-29 | 2014-09-16 | Advanced Micro Devices, Inc. | Methods and apparatus for compressing partial products during a fused multiply-and-accumulate (FMAC) operation on operands having a packed-single-precision format |
CN104169850B (zh) | 2012-01-12 | 2017-06-06 | 辛纳普蒂克斯公司 | 单层电容性成像传感器 |
US9122517B2 (en) * | 2012-06-11 | 2015-09-01 | International Business Machines Corporation | Fused multiply-adder with booth-encoding |
US9213523B2 (en) | 2012-06-29 | 2015-12-15 | Intel Corporation | Double rounded combined floating-point multiply and add |
US8892619B2 (en) | 2012-07-24 | 2014-11-18 | The Board Of Trustees Of The Leland Stanford Junior University | Floating-point multiply-add unit using cascade design |
US9104474B2 (en) | 2012-12-28 | 2015-08-11 | Intel Corporation | Variable precision floating point multiply-add circuit |
US9542154B2 (en) | 2013-06-25 | 2017-01-10 | Intel Corporation | Fused multiply add operations using bit masks |
KR101684641B1 (ko) | 2013-11-12 | 2016-12-08 | 주식회사 센트론 | 상호용량방식과 자기용량방식 간을 전환하는 터치입력방법 및 이를 위한 터치입력장치 |
US9105255B2 (en) | 2013-12-20 | 2015-08-11 | Sharp Kabushiki Kaisha | Discriminative capacitive touch panel |
US9519459B2 (en) | 2014-06-20 | 2016-12-13 | Wisconsin Alumni Research Foundation | High efficiency computer floating point multiplier unit |
US9645792B2 (en) | 2014-08-18 | 2017-05-09 | Qualcomm Incorporated | Emulation of fused multiply-add operations |
GB2530990A (en) | 2014-10-06 | 2016-04-13 | Ibm | Decimal and binary floating point arithmetic calculations |
KR200489484Y1 (ko) | 2015-06-11 | 2019-06-24 | 알프스 알파인 가부시키가이샤 | 입력 장치 |
US9823897B2 (en) | 2015-09-25 | 2017-11-21 | Arm Limited | Apparatus and method for floating-point multiplication |
US10303438B2 (en) | 2017-01-16 | 2019-05-28 | International Business Machines Corporation | Fused-multiply-add floating-point operations on 128 bit wide operands |
-
2017
- 2017-01-16 US US15/406,910 patent/US10303438B2/en active Active
-
2018
- 2018-01-08 WO PCT/IB2018/050101 patent/WO2018130925A1/en active Application Filing
- 2018-01-08 CN CN201880006402.9A patent/CN110168493B/zh active Active
- 2018-01-08 JP JP2019534936A patent/JP7042276B2/ja active Active
- 2018-01-08 DE DE112018000140.7T patent/DE112018000140T5/de active Pending
- 2018-01-08 GB GB1911402.4A patent/GB2573239B/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006221622A (ja) | 2005-02-09 | 2006-08-24 | Internatl Business Mach Corp <Ibm> | 正規化および丸め処理前にフィードバックを行う浮動小数点ユニットのためのシステムおよび方法 |
JP2016535360A (ja) | 2014-07-02 | 2016-11-10 | ヴィア アライアンス セミコンダクター カンパニー リミテッド | 非アトミック分割経路融合積和 |
Also Published As
Publication number | Publication date |
---|---|
GB2573239B (en) | 2020-03-04 |
WO2018130925A1 (en) | 2018-07-19 |
GB2573239A (en) | 2019-10-30 |
GB201911402D0 (en) | 2019-09-25 |
US10303438B2 (en) | 2019-05-28 |
CN110168493A (zh) | 2019-08-23 |
CN110168493B (zh) | 2023-03-28 |
JP2020514862A (ja) | 2020-05-21 |
DE112018000140T5 (de) | 2019-07-11 |
US20180203667A1 (en) | 2018-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7042276B2 (ja) | 3つの128ビット拡張オペランドに対して融合積和演算を実行するように構成される浮動小数点ユニット、その方法、プログラム、およびシステム | |
US7720900B2 (en) | Fused multiply add split for multiple precision arithmetic | |
US10489153B2 (en) | Stochastic rounding floating-point add instruction using entropy from a register | |
US20120215823A1 (en) | Apparatus and method for performing floating point addition | |
US9959093B2 (en) | Binary fused multiply-add floating-point calculations | |
US10095475B2 (en) | Decimal and binary floating point rounding | |
US10416962B2 (en) | Decimal and binary floating point arithmetic calculations | |
US10649730B2 (en) | Normalization of a product on a datapath | |
US9430190B2 (en) | Fused multiply add pipeline | |
US10558432B2 (en) | Multiply-add operations of binary numbers in an arithmetic unit | |
US10445066B2 (en) | Stochastic rounding floating-point multiply instruction using entropy from a register | |
US9348796B2 (en) | Arithmetic operation in a data processing system | |
Han et al. | Decimal floating‐point fused multiply‐add with redundant internal encodings | |
JP2020071642A (ja) | 演算処理装置及びその制御方法 | |
US9519458B1 (en) | Optimized fused-multiply-add method and system | |
US11455142B2 (en) | Ultra-low precision floating-point fused multiply-accumulate unit | |
Han | Decimal Floating-point Fused Multiply Add with Redundant Number Systems | |
Amaricai et al. | Improving the Performance of the Divide-Add Fused Operation Using Variable Latency Quotient Generation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191004 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200722 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210729 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210805 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20211104 |
|
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: 20220308 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220314 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7042276 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |