JP2013543176A - Scale、round、getexp、round、getmant、reduce、range及びclass命令を実行できる乗加算機能ユニット - Google Patents
Scale、round、getexp、round、getmant、reduce、range及びclass命令を実行できる乗加算機能ユニット Download PDFInfo
- Publication number
- JP2013543176A JP2013543176A JP2013530370A JP2013530370A JP2013543176A JP 2013543176 A JP2013543176 A JP 2013543176A JP 2013530370 A JP2013530370 A JP 2013530370A JP 2013530370 A JP2013530370 A JP 2013530370A JP 2013543176 A JP2013543176 A JP 2013543176A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- functional unit
- shifter
- round
- exp
- 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
- 238000000034 method Methods 0.000 claims abstract description 9
- 239000013598 vector Substances 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000000873 masking effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- XDDAORKBJWWYJS-UHFFFAOYSA-N glyphosate Chemical compound OC(=O)CNCP(O)(O)=O XDDAORKBJWWYJS-UHFFFAOYSA-N 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
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/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
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
-
- 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
-
- 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
-
- 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49942—Significance control
- G06F7/49947—Rounding
-
- 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/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
- 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
-
- 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
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3893—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Nonlinear Science (AREA)
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
Abstract
Description
図2のアーキテクチャが実行できる基本命令は、MADD(multiply add)命令である。これは被乗数(A)と乗数(B)を乗算して、その積(AB)を被加数(C)に加算する。すなわち、MADD命令は、命令R=(AB)+Cを実行する(一実施形態では、MADD命令を用いて、AB+C、AB−C、−AB+C、−AB−Cのうちどれかを実行できる)。浮動小数点形式では、本技術分野で知られているように、値は仮数項と指数項で表される。このように、例えば、被乗数Aは(A.mant,A.exp)と表され、乗数Bは(B.mand,B.exp)と表され、被加数Cは(C.mant,C.exp)と表される。
SCALE命令のフロー図を図3に示した。SCALE命令は第1の浮動小数点項Xを(浮動小数点項Yの最小整数表示である)フロアYだけスケールする。VSCALE命令は、実際、Xのバイナリポイントをフロア量Yだけ動かす命令と見ることができる。これは、数学的には、以下のように表現することができる:R = (X.mant E X.exp)<*>2<A>(floor: Y.mant E Y.exp) = X.mant E (X.exp + (floor: Y.mant E Y.exp))。
GETEXP命令のフロー図を図4に示した。GETEXP命令は入力項(Z.mant、Z.exp)を受け取り、Z.expの値からバイアスを減算し、答えを浮動小数点形式で提供する。基本的に、この命令は入力Zの真の指数を浮動小数点形式で提供する。ここで、本技術分野では知られているように、浮動小数点の指数値は、計算で負の指数を容易に扱えるように、一般的にはバイアスされている。例えば、単精度の場合、8ビットが指数項のために予約されており、254通りの値を与える(この他の2つの値には特別な意味が与えられている)。ここで、−127乃至+127の実際の指数範囲に対して、かかる実際の指数値に+127のバイアスがハードウェアにより加算され、指数に対してハードウェアで物理的に計算される数値範囲が0から254になる。よって、単精度の場合、GETEXP命令はZ.expから値127を減算し、答えを浮動小数点形式で提供する。倍精度の場合には、Z.expから値1023が減算される(倍精度では.exp項は11ビットである)。
ROUND命令のフロー図を図5に示す。ROUND命令は、入力項(S.mant;S.exp)の仮数S.mantを、入力項Qにより指定されたバイナリ桁数まで丸める。例えば、S=10111.11001E0であり、Q=2である場合、この命令は結果R=10111.11E0(すなわち、R.mant=10111.11;R.exp=0)を与える。この演算を実行するため、S.mant項は加数仮数入力(C.mant)として受け入れられ、右シフタ205により、(S.mant中の端数ビット数)−Qだけ右シフトされる。
GETMANT命令のフロー図を図6に示した。GETMANTは浮動小数点形式で仮数の値を提供する。浮動小数点形式で表す仮数をC.mant入力で受け取る。結果の仮数部(ここでは、「仮数(significand)」と呼ぶ)は、1.XXXX...Xの形式である。出力値が入らねばならない数値範囲(正規化値とも呼ぶ)も入力パラメータとして提供される。一実施形態では、指定できる区間が4つある:[1,2);[1/2,1);[1/2,2);及び[3/4,3/2)。
REDUCE命令のフロー図を図7に示した。REDUCEは、入力値の縮尺した引数を、関係R=X−Round(2MX)2−Mにより抽出する。ここで、Mは、抽出で参照するビット位置を決定するスケーリングファクタである。また、入力値は、ROUND演算が切り上げか、切り下げか、それとも最も近い偶数値への丸めか指定する。例えば、X=1.01010101であり、切り下げが指定され、スケーリングファクタが3である場合、Round(23X)=1010.00000であり、Round(23X)23=1.01000000である。よって、X−Round(2MX)2−M=1.01010101−1.01000000=0.00010101である。この場合、Rは1.0101と表され、指数はゼロである。
RANGE命令のフロー図を図8に示した。RANGE命令は2つの値FとGを受け取り、次のうちのどれかを返す:i)FとGの最小値;ii)FとGの最大値;iii)Fの絶対値とGの絶対値の最小値;及びiv)Fの絶対値とGの絶対値の最大値。一実施形態では、上記のi)ないしiv)の一が実行する命令で特定される。図2を参照して、一実施形態では、上記の命令i)とii)に対して、FはC.mant.inputで与えられ、GはA.mant.inputで与えられる。B.mant.inputの値は1.0にされる。Gの符号項はスイッチされ、ウァラスツリーと加算器209により計算F−Gをする。加算器209の出力の符号項は、FとGのどちらが大きいか示す。具体的に、符号項が正であれば、Fの方が大きく、符号項が負であれば、Gの方が大きい。よって、前者の場合は出力としてFがルーティングされ、後者の場合は出力としてGがルーティングされる。命令iii)とiv)では同様に、乗算器への出力に先立ちFとGの値の符号項が正の値である。
CLASS命令はオペランドのタイプを決定する。一実施形態では、命令は、複数の異なるデータタイプのテストと、各タイプのビット位置を基本的に確保する特殊な出力フォーマットに対応し、オペランドがタイプをテストされたものである場合、機能部はそのタイプに対応する出力のビット位置に1を置く。別の一実施形態では、8個の異なるデータタイプがテストされる。これらはi)ANaN;ii)Negative Finite;iii)Denormall;iv)vegative infinity;v)positive infinity;vi)negative zero;vii)positive zero;viii)SNANである。一実施形態では、機能部中の制御ロジック(図2には図示せず)は、C.mant.inputにあるオペランドを決定し、それに応じて特殊な出力を生成する。
このBLENDSEM命令は、対応するビット[7:0]ごとに、条件付きで、第2のソースオペランド中の倍精度浮動小数点値の符号、指数、及び仮数を、第1のソースオペランド中の倍精度浮動小数点値から符号、指数、及び仮数とマージする。結果のパックされた倍精度浮動小数点値は、宛先レジスタに記憶される。直近のビット[7:0]により、第2のソースオペランド又は第1のソースオペランドの単精度値からの対応する符号、指数、及び仮数を宛先にコピーしなければならないか決まる。特殊値も直近の制御により操作される。
RCP14命令は、ソースオペランド(第2のオペランド)中の4/2パックされた倍精度浮動小数点値の逆数のSIMD計算を実行し、パックされた倍精度浮動小数点結果を宛先オペランドに格納する。この近似の最大相対誤差は2−14より小さい。ソースオペランドは、ZMMレジスタ又は512ビットメモリロケーションである。宛先オペランドはZMMレジスタである。RCP14PD命令は丸め制御ビットにより影響されない。ソース値が0.0であるとき、ソース値の符号を有する∞が返される。ソース値がSNaN又はQNaNであるとき、SNaNはQNaNに変換され、ソースQNaNが返される。
Claims (17)
- プロセッサであって、
multiply-add命令をサポートする指数差分計算ロジック、乗算器、及び加算器を有する機能部を有し、
前記機能部は、仮数値を何桁丸めるか指定するround命令をサポートするラウンダも有し、
前記指数差分計算ロジックは前記multiply-add命令と前記round命令の実行をサポートするシフタを有する、
プロセッサ。 - 前記シフタは前記機能部により実行されるscale命令もサポートする、
請求項1に記載のプロセッサ。 - 前記指数差分計算ロジックは、前記multiply-add命令の実行をサポートする第2のシフタを含み、
前記第2のシフタは前記機能部により実行されるget exponent命令もサポートする、
請求項2に記載のプロセッサ。 - 前記指数差分計算ロジックは、前記multiply-add命令の実行をサポートする第2のシフタを含み、
前記第2のシフタは前記機能部により実行されるget exponent命令もサポートする、
請求項1に記載のプロセッサ。 - 前記第1のシフタ、第2のシフタ、及びラウンダは、前記機能部により実行されるreduce命令もサポートする、
請求項4に記載のプロセッサ。 - 前記第1のシフタ及びラウンダは、前記機能部により実行されるreduce命令もサポートする、
請求項1に記載のプロセッサ。 - 機能部が第1の命令を実行する、前記第1の命令はmultiply-add命令であるステップと、
前記機能部が第2の命令を実行する、前記第2の命令はround命令であるステップとを有する、
方法。 - 前記機能部が第3の命令を実行する、前記第3の命令はscale命令であるステップをさらに有する、
請求項7に記載の方法。 - 前記機能部が第4の命令を実行する、前記第4の命令はget exponent命令であるステップをさらに有する、
請求項8に記載の方法。 - 前記機能部が第5の命令を実行する、前記第5の命令はreduce命令であるステップをさらに有する、
請求項9に記載の方法。 - 前記機能部が第6の命令を実行する、前記第6の命令はget mantissa命令であるステップをさらに有する、
請求項10に記載の方法。 - 前記機能部が第7の命令を実行する、前記第7の命令はrange命令であるステップと、
請求項11に記載の方法。 - 計算システムであって、
ハードディスクドライブと、
プロセッサとを有し、前記プロセッサは機能部を有し、
前記機能部は、multiply-add命令をサポートする指数差分計算ロジック、乗算器、及び加算器を有し、
前記機能部は、仮数値を何桁丸めるか指定するround命令をサポートするラウンダも有し、
前記指数差分計算ロジックは前記multiply-add命令と前記round命令の実行をサポートするシフタを有する、計算システム。 - 前記シフタは前記機能部により実行されるscale命令もサポートする、
請求項13に記載のプロセッサ。 - 前記指数差分計算ロジックは、前記multiply-add命令の実行をサポートする第2のシフタを含み、
前記第2のシフタは前記機能部により実行されるget exponent命令もサポートする、
請求項14に記載のプロセッサ。 - 前記指数差分計算ロジックは、前記multiply-add命令の実行をサポートする第2のシフタを含み、
前記第2のシフタは前記機能部により実行されるget exponent命令もサポートする、
請求項13に記載のプロセッサ。 - 前記第1のシフタ、第2のシフタ、及びラウンダは、前記機能部により実行されるreduce命令もサポートする、
請求項16に記載のプロセッサ。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/890,543 | 2010-09-24 | ||
US12/890,543 US8914430B2 (en) | 2010-09-24 | 2010-09-24 | Multiply add functional unit capable of executing scale, round, GETEXP, round, GETMANT, reduce, range and class instructions |
PCT/US2011/053094 WO2012040632A2 (en) | 2010-09-24 | 2011-09-23 | Multiply add functional unit capable of executing scale, round, getexp, round, getmant, reduce, range and class instructions |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013543176A true JP2013543176A (ja) | 2013-11-28 |
JP5684393B2 JP5684393B2 (ja) | 2015-03-11 |
Family
ID=45871876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013530370A Active JP5684393B2 (ja) | 2010-09-24 | 2011-09-23 | Scale、round、getexp、round、getmant、reduce、range及びclass命令を実行できる乗加算機能ユニット |
Country Status (8)
Country | Link |
---|---|
US (4) | US8914430B2 (ja) |
JP (1) | JP5684393B2 (ja) |
KR (1) | KR101533516B1 (ja) |
CN (1) | CN106528044A (ja) |
DE (1) | DE112011103206B4 (ja) |
GB (1) | GB2497469B (ja) |
TW (1) | TWI544413B (ja) |
WO (1) | WO2012040632A2 (ja) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8914430B2 (en) | 2010-09-24 | 2014-12-16 | Intel Corporation | Multiply add functional unit capable of executing scale, round, GETEXP, round, GETMANT, reduce, range and class instructions |
US10209986B2 (en) | 2011-12-22 | 2019-02-19 | Intel Corporation | Floating point rounding processors, methods, systems, and instructions |
CN108647044B (zh) | 2011-12-28 | 2022-09-13 | 英特尔公司 | 浮点缩放处理器、方法、系统和指令 |
WO2013101233A1 (en) | 2011-12-30 | 2013-07-04 | Intel Corporation | Floating point round-off amount determination processors, methods, systems, and instructions |
US8924454B2 (en) | 2012-01-25 | 2014-12-30 | Arm Finance Overseas Limited | Merged floating point operation using a modebit |
US10289412B2 (en) * | 2012-02-09 | 2019-05-14 | Qualcomm Incorporated | Floating point constant generation instruction |
US9542154B2 (en) * | 2013-06-25 | 2017-01-10 | Intel Corporation | Fused multiply add operations using bit masks |
WO2015116176A1 (en) * | 2014-01-31 | 2015-08-06 | Hewlett-Packard Development Company, L.P. | Device provided script to convert command |
US10489114B2 (en) * | 2014-06-27 | 2019-11-26 | International Business Machines Corporation | Shift amount correction for multiply-add |
CN106293610B (zh) | 2014-07-02 | 2019-03-15 | 上海兆芯集成电路有限公司 | 微处理器及其方法 |
US11061672B2 (en) | 2015-10-02 | 2021-07-13 | Via Alliance Semiconductor Co., Ltd. | Chained split execution of fused compound arithmetic operations |
WO2017184011A1 (en) * | 2016-04-21 | 2017-10-26 | Oracle International Corporation | Iterative division with reduced latency |
US10078512B2 (en) * | 2016-10-03 | 2018-09-18 | Via Alliance Semiconductor Co., Ltd. | Processing denormal numbers in FMA hardware |
CN106775587B (zh) * | 2016-11-30 | 2020-04-14 | 上海兆芯集成电路有限公司 | 计算机指令的执行方法以及使用此方法的装置 |
US20180173527A1 (en) * | 2016-12-15 | 2018-06-21 | Optimum Semiconductor Technologies, Inc. | Floating point instruction format with embedded rounding rule |
US11366663B2 (en) | 2018-11-09 | 2022-06-21 | Intel Corporation | Systems and methods for performing 16-bit floating-point vector dot product instructions |
CN109840067B (zh) * | 2019-01-14 | 2021-04-20 | 中国人民解放军国防科技大学 | 一种基于数学近似的浮点程序精度缺陷修复方法 |
US11625244B2 (en) * | 2021-06-22 | 2023-04-11 | Intel Corporation | Native support for execution of get exponent, get mantissa, and scale instructions within a graphics processing unit via reuse of fused multiply-add execution unit hardware logic |
TWI794967B (zh) * | 2021-09-10 | 2023-03-01 | 臺灣發展軟體科技股份有限公司 | 資料處理電路及故障修補方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63189936A (ja) * | 1987-02-03 | 1988-08-05 | Fujitsu Ltd | 浮動少数点乗算装置 |
JPH11353305A (ja) * | 1998-05-27 | 1999-12-24 | Arm Ltd | ベクトルレジスタのアドレス指定 |
JP2002007111A (ja) * | 2000-05-30 | 2002-01-11 | Hewlett Packard Co <Hp> | 多重データ・セットを処理するためのセルフタイム式伝送方法 |
US20060136536A1 (en) * | 2004-12-22 | 2006-06-22 | Arm Limited | Data processing apparatus and method for converting a fixed point number to a floating point number |
US20060184601A1 (en) * | 2005-02-11 | 2006-08-17 | Trong Son D | Floating point unit with fused multiply add and method for calculating a result with a floating point unit |
WO2008096446A1 (ja) * | 2007-02-09 | 2008-08-14 | Fujitsu Limited | 演算処理装置、情報処理装置、および演算方法 |
JP2010503935A (ja) * | 2006-09-22 | 2010-02-04 | インテル コーポレイション | 命令に応じた丸め処理の実行 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5673407A (en) * | 1994-03-08 | 1997-09-30 | Texas Instruments Incorporated | Data processor having capability to perform both floating point operations and memory access in response to a single instruction |
US5598362A (en) * | 1994-12-22 | 1997-01-28 | Motorola Inc. | Apparatus and method for performing both 24 bit and 16 bit arithmetic |
US6282634B1 (en) * | 1998-05-27 | 2001-08-28 | Arm Limited | Apparatus and method for processing data having a mixed vector/scalar register file |
US7346643B1 (en) | 1999-07-30 | 2008-03-18 | Mips Technologies, Inc. | Processor with improved accuracy for multiply-add operations |
US6996596B1 (en) | 2000-05-23 | 2006-02-07 | Mips Technologies, Inc. | Floating-point processor with operating mode having improved accuracy and high performance |
CA2327924A1 (en) * | 2000-12-08 | 2002-06-08 | Ibm Canada Limited-Ibm Canada Limitee | Processor design for extended-precision arithmetic |
US20060047738A1 (en) * | 2004-08-31 | 2006-03-02 | International Business Machines Corporation | Decimal rounding mode which preserves data information for further rounding to less precision |
US7499962B2 (en) | 2004-12-21 | 2009-03-03 | Intel Corporation | Enhanced fused multiply-add operation |
US7720900B2 (en) | 2005-09-09 | 2010-05-18 | International Business Machines Corporation | Fused multiply add split for multiple precision arithmetic |
CN101021832A (zh) * | 2007-03-19 | 2007-08-22 | 中国人民解放军国防科学技术大学 | 支持局部寄存和条件执行的64位浮点整数融合运算群 |
US8838663B2 (en) * | 2007-03-30 | 2014-09-16 | Intel Corporation | Method and apparatus for performing multiplicative functions |
US7917568B2 (en) * | 2007-04-10 | 2011-03-29 | Via Technologies, Inc. | X87 fused multiply-add instruction |
CN101174200B (zh) * | 2007-05-18 | 2010-09-08 | 清华大学 | 一种具有五级流水线结构的浮点乘加融合单元 |
CN101221490B (zh) * | 2007-12-20 | 2010-11-10 | 清华大学 | 一种具有数据前送结构的浮点乘加单元 |
US8032854B2 (en) | 2008-08-29 | 2011-10-04 | International Business Machines Corporation | 3-stack floorplan for floating point unit |
CN101692202B (zh) * | 2009-09-27 | 2011-12-28 | 龙芯中科技术有限公司 | 一种64比特浮点乘加器及其浮点运算流水节拍处理方法 |
US8914430B2 (en) | 2010-09-24 | 2014-12-16 | Intel Corporation | Multiply add functional unit capable of executing scale, round, GETEXP, round, GETMANT, reduce, range and class instructions |
-
2010
- 2010-09-24 US US12/890,543 patent/US8914430B2/en active Active
-
2011
- 2011-09-23 GB GB1304865.7A patent/GB2497469B/en active Active
- 2011-09-23 CN CN201611001272.9A patent/CN106528044A/zh active Pending
- 2011-09-23 WO PCT/US2011/053094 patent/WO2012040632A2/en active Application Filing
- 2011-09-23 KR KR1020137007355A patent/KR101533516B1/ko active IP Right Grant
- 2011-09-23 JP JP2013530370A patent/JP5684393B2/ja active Active
- 2011-09-23 TW TW100134351A patent/TWI544413B/zh active
- 2011-09-23 DE DE112011103206.4T patent/DE112011103206B4/de active Active
-
2014
- 2014-12-03 US US14/559,160 patent/US9606770B2/en active Active
-
2017
- 2017-03-27 US US15/469,919 patent/US10318244B2/en active Active
-
2019
- 2019-06-10 US US16/436,901 patent/US10649733B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63189936A (ja) * | 1987-02-03 | 1988-08-05 | Fujitsu Ltd | 浮動少数点乗算装置 |
JPH11353305A (ja) * | 1998-05-27 | 1999-12-24 | Arm Ltd | ベクトルレジスタのアドレス指定 |
JP2002007111A (ja) * | 2000-05-30 | 2002-01-11 | Hewlett Packard Co <Hp> | 多重データ・セットを処理するためのセルフタイム式伝送方法 |
US20060136536A1 (en) * | 2004-12-22 | 2006-06-22 | Arm Limited | Data processing apparatus and method for converting a fixed point number to a floating point number |
US20060184601A1 (en) * | 2005-02-11 | 2006-08-17 | Trong Son D | Floating point unit with fused multiply add and method for calculating a result with a floating point unit |
JP2010503935A (ja) * | 2006-09-22 | 2010-02-04 | インテル コーポレイション | 命令に応じた丸め処理の実行 |
WO2008096446A1 (ja) * | 2007-02-09 | 2008-08-14 | Fujitsu Limited | 演算処理装置、情報処理装置、および演算方法 |
Also Published As
Publication number | Publication date |
---|---|
US10318244B2 (en) | 2019-06-11 |
US20170199726A1 (en) | 2017-07-13 |
CN106528044A (zh) | 2017-03-22 |
TW201224922A (en) | 2012-06-16 |
KR20130079511A (ko) | 2013-07-10 |
US20120079251A1 (en) | 2012-03-29 |
US9606770B2 (en) | 2017-03-28 |
CN103119532A (zh) | 2013-05-22 |
US10649733B2 (en) | 2020-05-12 |
GB2497469A (en) | 2013-06-12 |
WO2012040632A2 (en) | 2012-03-29 |
WO2012040632A3 (en) | 2012-05-18 |
US20150088947A1 (en) | 2015-03-26 |
DE112011103206B4 (de) | 2021-02-18 |
JP5684393B2 (ja) | 2015-03-11 |
US8914430B2 (en) | 2014-12-16 |
GB2497469B (en) | 2019-06-05 |
GB201304865D0 (en) | 2013-05-01 |
KR101533516B1 (ko) | 2015-07-02 |
US20190361676A1 (en) | 2019-11-28 |
TWI544413B (zh) | 2016-08-01 |
DE112011103206T5 (de) | 2013-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10649733B2 (en) | Multiply add functional unit capable of executing scale, round, getexp, round, getmant, reduce, range and class instructions | |
JP6248328B2 (ja) | ベクトル機能ユニット、方法、およびコンピューティングシステム | |
US11347511B2 (en) | Floating-point scaling operation | |
US7720900B2 (en) | Fused multiply add split for multiple precision arithmetic | |
JP5636110B2 (ja) | ベクトル先頭ゼロ、ベクトル末尾ゼロ、ベクトルオペランド1sカウントおよびベクトルパリティ計算のための機能ユニット | |
US8676871B2 (en) | Functional unit capable of executing approximations of functions | |
US10078512B2 (en) | Processing denormal numbers in FMA hardware | |
US9703626B2 (en) | Recycling error bits in floating point units | |
GB2423386A (en) | Performing a reciprocal operation on an input value to produce a result value | |
US10445066B2 (en) | Stochastic rounding floating-point multiply instruction using entropy from a register | |
US10963245B2 (en) | Anchored data element conversion | |
US11704092B2 (en) | High-precision anchored-implicit processing | |
CN103119532B (zh) | 处理器、指令执行方法和计算系统 | |
Saini et al. | Floating Point Unit Implementation on FPGA |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140311 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20140611 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20140618 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20140708 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20140715 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20140806 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20140813 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140910 |
|
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: 20141216 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150114 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5684393 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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |