JP7115211B2 - 演算処理装置および演算処理装置の制御方法 - Google Patents
演算処理装置および演算処理装置の制御方法 Download PDFInfo
- Publication number
- JP7115211B2 JP7115211B2 JP2018196803A JP2018196803A JP7115211B2 JP 7115211 B2 JP7115211 B2 JP 7115211B2 JP 2018196803 A JP2018196803 A JP 2018196803A JP 2018196803 A JP2018196803 A JP 2018196803A JP 7115211 B2 JP7115211 B2 JP 7115211B2
- Authority
- JP
- Japan
- Prior art keywords
- operand
- exponent
- sum
- zero
- mantissa
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- 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
- 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/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
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Nonlinear Science (AREA)
- Complex Calculations (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
OP4=OP1*OP2+OP3 ‥(1)
preSA=(OP1E[1])+OP2E[1])-bias[127]-OP3E[1]=-126 ‥(2)
preSA[-27]≧(OP1E+OP2E)-bias[127]-OP3E[1] ‥(3)
OP1E+OP2E≦-27+127+1=101 ‥(4)
OP1E+OP2E≦bias+1-(n+3)‥(5)
OP1E+OP2E≦bias-(W1-W2)‥(6)
preSA[-14]≧(OP1E+OP2E)-bias[15]-OP3E[1] ‥(7)
OP1E+OP2E≦-14+15+1=2 ‥(8)
preSA[-56]≧(OP1E+OP2E)-bias[1023]-OP3E[1] ‥(9)
OP1E+OP2E≦-56+1023+1=968 ‥(10)
10 積和演算器
11 ゼロ検出部
11a、11b ゼロ検出器
12 指数設定部
12a、12b セレクタ
13 指数算出部
14 乗算部
15 桁合わせ部
16 加算部
100、101 積和演算器
102、104 ゼロ検出器
106 オアゲート
108、110 セレクタ
112 加算器
114 減算器
116 セレクタ
118 指数補正回路
120 シフタ
122 ブースエンコーダ
124 部分積加算回路
126 加算器
128 左シフタ
130 丸め回路
200 ホストコンピュータ
201 通信インタフェース
202 制御装置
203 プロセッサ
204 メモリ
205 通信制御部
206 メモリコントローラ
207 全体命令制御部
208 処理ユニット
209 演算命令バッファ
210 演算命令制御部
211 複数のベクタレジスタ
300 情報処理装置
OP1、OP2、OP3、OP4 オペランド
OP1E、OP2E、OP3E、OP4E 指数
OP1F、OP2F、OP3F、OP4F 仮数
Claims (8)
- 浮動小数点積和演算器を有する演算処理装置において、
前記浮動小数点積和演算器は、
積和演算命令に含まれる第1オペランドと第2オペランドのいずれか、または前記第1オペランドと前記第2オペランドの両方がゼロであることを検出するゼロ検出部と、
前記ゼロ検出部がゼロを検出した場合、前記第1オペランドの指数を第1設定値に設定し、前記第2オペランドの指数を第2設定値に設定する指数設定部と、
前記指数設定部が出力する前記第1オペランドの指数と前記第2オペランドの指数と、前記積和演算命令に含まれる第3オペランドの指数とに基づいて、積和演算により得られる指数を算出する指数算出部と、
前記第1オペランドの仮数と前記第2オペランドの仮数との積を算出する乗算部と、
前記乗算部が算出した積に、桁合わせした前記第3オペランドの仮数を加算する加算部と、を有し、
前記第1設定値と前記第2設定値の和は、前記第3オペランドのビット位置が、前記第1オペランドと前記第2オペランドの積の最上位ビットより上位ビット側に位置するように設定されることを特徴とする演算処理装置。 - 前記加算部が、仮数の最下位ビットより下位に位置する所定数の付加ビットを使用して演算を実行する場合、さらに前記第1設定値と前記第2設定値の和は、前記第3オペランドの仮数に付加される前記付加ビットの最下位ビットが、前記第1オペランドと前記第2オペランドの積の最上位ビットと同じ位置か、あるいは前記最上位ビットより上位ビット側に位置するように設定されることを特徴とする請求項1に記載の演算処理装置。
- 指数のバイアスをbias、仮数のビット幅をnとする場合、前記第1設定値と前記第2設定値の和は、”bias+1-(n+3)”以下に設定されることを特徴とする請求項1または請求項2に記載の演算処理装置。
- 指数のバイアスをbias、前記加算部が演算に使用するビット幅をW1、前記第1オペランドと前記第2オペランドとの積のビット幅W2とする場合、前記第1設定値と前記第2設定値の和は、”bias-(W1-W2)”以下に設定されることを特徴とする請求項1または請求項2に記載の演算処理装置。
- 前記第1設定値と前記第2設定値とは、”1”に設定されることを特徴とする請求項1または請求項2に記載の演算処理装置。
- 前記指数設定部は、
前記ゼロ検出部が非ゼロを検出した場合、前記第1オペランドの指数を選択し、前記ゼロ検出部がゼロを検出した場合、前記第1設定値を前記第1オペランドの指数として選択する第1選択部と、
前記ゼロ検出部が非ゼロを検出した場合、前記第2オペランドの指数を選択し、前記ゼロ検出部がゼロを検出した場合、前記第2設定値を前記第2オペランドの指数として選択する第2選択部と、を有し、
前記指数算出部は、
前記第1選択部が出力する前記第1オペランドの指数と、前記第2選択部が出力する前記第2オペランドの指数とを加算する加算器と、
前記加算器が出力する加算結果と前記第3オペランドの指数とに基づいて、加算結果または前記第3オペランドの指数のいずれかを積和演算により得られる指数として選択する第3選択部と、を有することを特徴とする請求項1ないし請求項5のいずれか1項に記載の演算処理装置。 - 前記第1オペランド、前記第2オペランドおよび前記第3オペランドは、IEEE754の2進浮動小数点形式で表現されることを特徴とする請求項1ないし請求項6のいずれか1項に記載の演算処理装置。
- 浮動小数点積和演算器を有する演算処理装置の制御方法において、
前記浮動小数点積和演算器が有するゼロ検出部が、積和演算命令に含まれる第1オペランドと第2オペランドのいずれか、または前記第1オペランドと前記第2オペランドの両方がゼロであることを検出し、
前記浮動小数点積和演算器が有する指数設定部が、前記ゼロ検出部がゼロを検出した場合、前記第1オペランドの指数を第1設定値に設定し、前記第2オペランドの指数を第2設定値に設定し、
前記浮動小数点積和演算器が有する指数算出部が、前記指数設定部が出力する前記第1オペランドの指数と前記第2オペランドの指数と、積和演算命令に含まれる第3オペランドの指数とに基づいて、積和演算により得られる指数を算出し、
前記浮動小数点積和演算器が有する乗算部が、前記第1オペランドの仮数と前記第2オペランドの仮数との積を算出し、
前記浮動小数点積和演算器が有する加算部が、前記乗算部が算出した積に、桁合わせした前記第3オペランドの仮数を加算し、
前記第1設定値と前記第2設定値の和は、前記第3オペランドのビット位置が、前記第1オペランドと前記第2オペランドの積の最上位ビットより上位ビット側に位置するように設定されることを特徴とする演算処理装置の制御方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018196803A JP7115211B2 (ja) | 2018-10-18 | 2018-10-18 | 演算処理装置および演算処理装置の制御方法 |
US16/590,637 US11226791B2 (en) | 2018-10-18 | 2019-10-02 | Arithmetic processing device and method of controlling arithmetic processing device that enables suppression of size of device |
EP19201747.3A EP3640792A1 (en) | 2018-10-18 | 2019-10-07 | Arithmetic processing device and method of controlling arithmetic processing device |
CN201910973303.4A CN111078292A (zh) | 2018-10-18 | 2019-10-14 | 算术处理设备和控制算术处理设备的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018196803A JP7115211B2 (ja) | 2018-10-18 | 2018-10-18 | 演算処理装置および演算処理装置の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020064504A JP2020064504A (ja) | 2020-04-23 |
JP7115211B2 true JP7115211B2 (ja) | 2022-08-09 |
Family
ID=68172126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018196803A Active JP7115211B2 (ja) | 2018-10-18 | 2018-10-18 | 演算処理装置および演算処理装置の制御方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11226791B2 (ja) |
EP (1) | EP3640792A1 (ja) |
JP (1) | JP7115211B2 (ja) |
CN (1) | CN111078292A (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11650819B2 (en) | 2019-12-13 | 2023-05-16 | Intel Corporation | Apparatuses, methods, and systems for instructions to multiply floating-point values of about one |
US20210182056A1 (en) * | 2019-12-13 | 2021-06-17 | Intel Corporation | Apparatuses, methods, and systems for instructions to multiply values of one |
US11875154B2 (en) | 2019-12-13 | 2024-01-16 | Intel Corporation | Apparatuses, methods, and systems for instructions to multiply floating-point values of about zero |
US11847450B2 (en) | 2019-12-13 | 2023-12-19 | Intel Corporation | Apparatuses, methods, and systems for instructions to multiply values of zero |
CN113835675A (zh) * | 2020-06-23 | 2021-12-24 | 深圳市中兴微电子技术有限公司 | 数据处理装置及数据处理方法 |
US20230129750A1 (en) * | 2021-10-27 | 2023-04-27 | International Business Machines Corporation | Performing a floating-point multiply-add operation in a computer implemented environment |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009140491A (ja) | 2007-12-07 | 2009-06-25 | Nvidia Corp | 融合型積和演算機能ユニット |
JP2010218197A (ja) | 2009-03-17 | 2010-09-30 | Nec Computertechno Ltd | 浮動小数点積和演算装置、浮動小数点積和演算方法、及び浮動小数点積和演算用プログラム |
JP2014093085A (ja) | 2012-10-31 | 2014-05-19 | Intel Corp | 入力データ値に応じたfmaユニットにおける電力消費の低減 |
JP2020500365A (ja) | 2016-10-27 | 2020-01-09 | グーグル エルエルシー | ニューラルネットワーク計算ユニットにおける入力データのスパース性の活用 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5574672A (en) * | 1992-09-25 | 1996-11-12 | Cyrix Corporation | Combination multiplier/shifter |
EP0645699A1 (en) * | 1993-09-29 | 1995-03-29 | International Business Machines Corporation | Fast multiply-add instruction sequence in a pipeline floating-point processor |
JPH09507941A (ja) * | 1995-04-18 | 1997-08-12 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | multiply−add浮動小数点シーケンスにおけるウエイト・サイクルなしのブロック正規化 |
US5748516A (en) * | 1995-09-26 | 1998-05-05 | Advanced Micro Devices, Inc. | Floating point processing unit with forced arithmetic results |
US6298367B1 (en) * | 1998-04-06 | 2001-10-02 | Advanced Micro Devices, Inc. | Floating point addition pipeline including extreme value, comparison and accumulate functions |
JP3600026B2 (ja) * | 1998-08-12 | 2004-12-08 | 株式会社東芝 | 浮動小数点演算器 |
US7058830B2 (en) | 2003-03-19 | 2006-06-06 | International Business Machines Corporation | Power saving in a floating point unit using a multiplier and aligner bypass |
US8255726B2 (en) | 2008-07-18 | 2012-08-28 | International Business Machines Corporation | Zero indication forwarding for floating point unit power reduction |
CN101692202B (zh) * | 2009-09-27 | 2011-12-28 | 龙芯中科技术有限公司 | 一种64比特浮点乘加器及其浮点运算流水节拍处理方法 |
US8667042B2 (en) * | 2010-09-24 | 2014-03-04 | Intel Corporation | Functional unit for vector integer multiply add instruction |
US8965945B2 (en) * | 2011-02-17 | 2015-02-24 | Arm Limited | Apparatus and method for performing floating point addition |
US9317250B2 (en) * | 2012-11-12 | 2016-04-19 | Advanced Micro Devices, Inc. | Floating point multiply-add unit with denormal number support |
US9830129B2 (en) * | 2013-11-21 | 2017-11-28 | Samsung Electronics Co., Ltd. | High performance floating-point adder with full in-line denormal/subnormal support |
US20150193203A1 (en) | 2014-01-07 | 2015-07-09 | Nvidia Corporation | Efficiency in a fused floating-point multiply-add unit |
CN108287681B (zh) * | 2018-02-14 | 2020-12-18 | 中国科学院电子学研究所 | 一种单精度浮点融合点乘运算装置 |
-
2018
- 2018-10-18 JP JP2018196803A patent/JP7115211B2/ja active Active
-
2019
- 2019-10-02 US US16/590,637 patent/US11226791B2/en active Active
- 2019-10-07 EP EP19201747.3A patent/EP3640792A1/en not_active Withdrawn
- 2019-10-14 CN CN201910973303.4A patent/CN111078292A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009140491A (ja) | 2007-12-07 | 2009-06-25 | Nvidia Corp | 融合型積和演算機能ユニット |
JP2010218197A (ja) | 2009-03-17 | 2010-09-30 | Nec Computertechno Ltd | 浮動小数点積和演算装置、浮動小数点積和演算方法、及び浮動小数点積和演算用プログラム |
JP2014093085A (ja) | 2012-10-31 | 2014-05-19 | Intel Corp | 入力データ値に応じたfmaユニットにおける電力消費の低減 |
JP2020500365A (ja) | 2016-10-27 | 2020-01-09 | グーグル エルエルシー | ニューラルネットワーク計算ユニットにおける入力データのスパース性の活用 |
Also Published As
Publication number | Publication date |
---|---|
JP2020064504A (ja) | 2020-04-23 |
US11226791B2 (en) | 2022-01-18 |
CN111078292A (zh) | 2020-04-28 |
US20200125331A1 (en) | 2020-04-23 |
EP3640792A1 (en) | 2020-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7115211B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
US9841948B2 (en) | Microarchitecture for floating point fused multiply-add with exponent scaling | |
US6751644B1 (en) | Method and apparatus for elimination of inherent carries | |
US8694572B2 (en) | Decimal floating-point fused multiply-add unit | |
US7720900B2 (en) | Fused multiply add split for multiple precision arithmetic | |
US10489153B2 (en) | Stochastic rounding floating-point add instruction using entropy from a register | |
US9317251B2 (en) | Efficient correction of normalizer shift amount errors in fused multiply add operations | |
US8751555B2 (en) | Rounding unit for decimal floating-point division | |
Brunie | Modified fused multiply and add for exact low precision product accumulation | |
US11294627B2 (en) | Floating point dot-product operator with correct rounding | |
US20100125621A1 (en) | Arithmetic processing device and methods thereof | |
US8239441B2 (en) | Leading zero estimation modification for unfused rounding catastrophic cancellation | |
JP3313560B2 (ja) | 浮動小数点演算処理装置 | |
US11550544B2 (en) | Fused Multiply-Add operator for mixed precision floating-point numbers with correct rounding | |
US10489115B2 (en) | Shift amount correction for multiply-add | |
US7752250B2 (en) | Rounding floating point division results | |
US20090164544A1 (en) | Dynamic range enhancement for arithmetic calculations in real-time control systems using fixed point hardware | |
Tsen et al. | A combined decimal and binary floating-point multiplier | |
JP7087918B2 (ja) | 演算処理装置及びその制御方法 | |
US8041927B2 (en) | Processor apparatus and method of processing multiple data by single instructions | |
JP5010648B2 (ja) | 演算装置及び演算方法 | |
WO2022090690A1 (en) | High-precision anchored-implicit processing | |
JP5376659B2 (ja) | 積和演算装置及び積和演算装置の制御方法 | |
JPS62168228A (ja) | 浮動小数点積和演算器 | |
JPH0498524A (ja) | 浮動小数点演算装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210709 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220531 |
|
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: 20220628 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220711 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7115211 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |