JP2008510229A - 効率的浮動小数点式aluのための方法及び装置 - Google Patents
効率的浮動小数点式aluのための方法及び装置 Download PDFInfo
- Publication number
- JP2008510229A JP2008510229A JP2007525720A JP2007525720A JP2008510229A JP 2008510229 A JP2008510229 A JP 2008510229A JP 2007525720 A JP2007525720 A JP 2007525720A JP 2007525720 A JP2007525720 A JP 2007525720A JP 2008510229 A JP2008510229 A JP 2008510229A
- Authority
- JP
- Japan
- Prior art keywords
- exponent
- floating point
- difference
- point operands
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000012545 processing Methods 0.000 claims abstract description 101
- 230000006870 function Effects 0.000 claims 22
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 9
- 238000012937 correction Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 101001010835 Homo sapiens Intraflagellar transport protein 74 homolog Proteins 0.000 description 2
- 102100029997 Intraflagellar transport protein 74 homolog Human genes 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 102100031325 Anthrax toxin receptor 2 Human genes 0.000 description 1
- 101000796085 Homo sapiens Anthrax toxin receptor 2 Proteins 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
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
- G06F7/485—Adding; Subtracting
-
- 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/49905—Exception handling
- G06F7/4991—Overflow or underflow
-
- 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/49905—Exception handling
- G06F7/4991—Overflow or underflow
- G06F7/49915—Mantissa overflow or underflow in handling floating-point numbers
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Nonlinear Science (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
【選択図】図1
Description
2004年8月13日にSaurbh Srivastavaによって出願された、「32/40ビット浮動小数点式ALU」と題する米国仮出願第60/601,383号、および2005年6月21日にSaurbh Srivastavaによって出願された、「効率的な浮動小数点式Aluのための方法および装置」と題する米国特許出願第11/157650号に対する35.U.S.C.119(e)の利益を請求する。
(−I)s × 1.M23 × 2(E8-127)
…符号… …仮数… …指数…
1.低い指数を有するオペランドの仮数をダウンシフトすることにより、二つの浮動小数点式オペランド(オペランド)の指数を同じにする。
2.両方のオペランドの仮数を加算し(丸め操作を伴って、または伴わずに)、加算された数を出力する。
3.加算された数がオーバーフローするときは(例えば、32ビット加算において、加算された数が32ビットを越えれば、加算された数はオーバーフローする)、加算された数を1ビットだけダウンシフトする。
図1を参照すると、本発明の一実施形態に従うマイクロプロセッサの演算論理ユニット(ALU)において、二つの浮動小数点式オペランドの減算を行うための並行演算を実施する装置のブロック図が示されている。図1に示すように、装置100は、近距離処理経路110および遠距離処理経路140、入力論理回路160、入力データバス170、および最終結果マルチプレクサ180を含んでいる。
GT=(EXPsame[1] and XEXP[O] and 〜YEXP[O])または
(EXPdiffr[1] and YEXP[O] and 〜XEXP[O]) ;
LT=(EXPsame[l] and YEXP[O] and 〜XEXP[O])または
(EXPdiffr[1] and XEXP[O] and 〜YEXP[O]) ;
EQ= EXPsame[O] ;
GT=(EXPsame[1] and XEXP[O] and 〜YEXP[O])または
(EXPdiffr[1] and YEXP[O] and 〜XEXP[O]) ;
LT=(EXPsame[l] and YEXP[O] and 〜XEXP[O])または
(EXPdiffr[1] and XEXP[O] and 〜YEXP[O]) ;
EQ= EXPsame[O] ;
正しいデータ配列を備えた正しい減算結果を選択するためには、近距離/遠距離減算器110および140のMSB/キャリー信号が必要とされる。これらの信号は、減算結果選択論理回路SRS120/154が適切なときに選択信号を生じることができるように、減算結果よりも実質的に早期に発生される。
近距離処理経路110においては、減算結果のMSBが、データの最終ビット位置にあることはないであろう。アップシフト予測器124は、必要とされるアップシフトの量を予想する。アップシフト予測器124は、実際にはMSBが最終ビット位置の後の20もしくは21ビットであるときに、20ビットのアップシフトが必要であることを予測するならば、例えば1ビットの可能なエラーと共にアップシフトの大きさを通知する。アップシフトした後に得られた仮数がMSBに1を有していないならば、それは、アップシフト予測器124が一つ少ない予測を与えたこと、および更にもう1ビットのアップシフトが必要とされることを意味している。従って、アップシフタ(128)出力のMSBは、1ビットアップシフタのための制御信号のように作用する。アップシフタ128出力のMSBは、大きな選択論理回路を駆動するのに充分に強くなるようにバッファに通される。
1.MSB予測を支持するパターンを発生する。例えば、8ビット数については、アップシフト予測器124が、最後から3番目のビットとして最初の一つの位置を予測すれば、発生されるパターンは001xxxxxであり、ここでのxは0または1である。
2.上記の発生されたパターンから、前記アップシフト数を発生する。
New_patt[7 :0]= patt[7:0]|{0,patt[7:1]}|…{0,0,0,0,0,0,0,patt[7]}
PRED = New_patt[7:O]^{0,New_patt[7:l]}
ここで、「^」はXOR演算を示し、「|」はOR演算を示す。
上記パターンを発生させることは、アップシフト予測器124の如何なる追加の時間も必要としないことが分かる。
Correct_prediction = |(PRED[n-1:O] & subtraction_result [n-1:O]);
ここで、「&」はAND演算を意味する。
減算結果を容認するか否かの決定は、仮数アンダーフロー信号に依存する。減算結果が0であれば、それは仮数アンダーフロー状態にあることを意味する。このような状況(仮数アンダーフロー)が生じれば、最終結果としてIEEEのような標準結果が選択され、計算された減算結果には基づかない。
XD[n-1:0] = ({1'bO,B[n-1:1]}^{1'bO,A[n-1:1]}^(〜B[n-1:0]|A[n-1:0]));
YD[n-1:0] = ({1'b0,B[n-1:1]}^{1'b0,A[n-1:1]}^(〜A[n-1:0]|B[n-1:0]));
YDIF = &YD;
XDIF = &XD;
(A=B case:) EQ = YDIF & XDIF;
(A=B+1 case:) GT = 〜YDIF & XDIF;
Mantissa_Underflow = select_AeqB_or_BeqA ? EQ:GT
減算結果を最終結果とするか、またはアンダーフローの特別な結果を駆除するかどうかを決定するためには、指数アンダーフロー信号発生モジュール134によって出力される指数アンダーフロー信号が必要とされる。先に述べたように、ALUによる減算を完了した後に、減算結果のMSBが最終ビット位置の後にある可能性があり、IEEE適合性にするために、該減算結果をアップシフトしなければならない可能性がある。アップシフトを処理するために、指数は同じ量(仮数のアップシフトに等しい)だけ減分されなければならない。減少の大きさが指数を0または負にするならば、それは指数アンダーフローの状況にあるとみなされる。
Exponent_underflow = (1 or 0 or negative) & (one bit upshift correction required)|(0 or negative) & (no upshift correction is required)
上記で述べたように、遠距離処理経路140には、小さい指数を有するオペランドの仮数をダウンシフトさせるために、少なくとも一つのダウンシフタが必要とされる。ここでもまた上記で述べたのと同様に、何れの指数が大きいかの決定にはかなりの時間を要する可能性があるので、時間を節約するために、「大きな指数−小さい指数」の結果に従って小さい方の指数を有する仮数がダウンシフトされ、または両方の仮数がダウンシフトされる。第二の仮数は「第一の指数−第二の指数」の結果に従ってダウンシフトされ、第一の仮数は「第二の仮数−第一の仮数」の結果に従ってダウンシフトされる。そのときまでに大きい方の指数信号が利用可能になるであろうから、ダウンシフトした後に、関連のダウンシフトされた仮数を選択することができる。第二の仮数および第一の仮数のダウンシフトが起きる時までに、並列の論理回路が何れの指数が小さいかを決定し、次いで、それに従って対応する浮動小数点式オペランドについてダンシフトされる仮数を選択する。他の浮動小数点式オペランドについて、ALUは未シフトの仮数を選択する。大きい方の指数を有する浮動小数点式オペランドについては、直接仮数選択信号は高レベルになる。小さい方の指数を有する他の浮動小数点式オペランドについては、ダウンシフトされた仮数がゼロにならないような指数差である場合にのみ、シフトされた仮数選択信号は高レベルになる。例えば、32ビット仮数について指数差が33であれば、ダウンシフトされた仮数はゼロになるはずである。これを達成するために、両方の選択信号は低レベルのまま残る。このような場合、AND−OR論理は、正規化された仮数としてゼロを渡す。これは、ゼロ充填の役割をダンシフタから仮数選択マルチプレクサへと移し、これは幾らかの時間を節約するが、シフトされた仮数選択信号を更にタイミング臨界的にする。ブロックFPEC144は、新しい技術を用いてこの仕事を行い、従来のスキームに比較してより少ない時間で同じ信号を発生させる。
select_shifted_B = ((expA[7:5] ==expB[7:5]) and (expA[4:0] > expB[4:0]))
または
((expA[7:5]- expB[7:5] =1) and (expB[4:0] > expA[4:0]));
select_shifted_A = ((expB[7:5] ==expA[7:5]) and (expB[4:0] > expA[4:0]))
または
((expB[7:5] - expA[7:5] =1) and (expA[4:0] > expB[4:0]));
ここでのexpAおよびexpBは、第一および第二の浮動小数点式オペランドの指数である。
(expB[7:5] - expA[7:5] = 1) ⇒ YDIF & 〜XDIF
(expA[7:5] - expB[7:5] = 1) ⇒ XDIF & 〜YDIF
Claims (13)
- 浮動小数点式算術演算を実行するための装置(100)であって:
近距離処理経路(110)を具備し;
該近距離処理経路に対して並列の遠距離処理経路(140)を具備し;
第一および第二の浮動小数点式オペランドを、実質的に同時に、前記近距離処理経路(110)および前記遠距離処理経路(140)に与える入力データバス(170)であって、前記第一および第二の浮動小数点式オペランドの各々が符号ビット、仮数ビット、および指数ビットを含んでいる入力データバスを具備し;
前記近距離処理経路(110)は、前記第一および第二の浮動小数点式オペランドにおける指数のパターンの関数としての複数の指数差信号を発生し、ここでの前記近距離処理経路(110)は、前記指数差信号に基づいて近距離経路減算結果を発生し、
前記近距離経処理経路(110)は、前記第一および第二の浮動小数点式オペランドの指数差を計算し、ここでの前記近距離処理経路(110)は前記計算された指数差に基づいて指数差信号を発生し、
前記遠距離経処理経路(140)は、前記第一および第二の浮動小数点式オペランドの仮数差を計算し、ここでの前記遠距離処理経路(140)は、前記計算された指数差が0,1、または−1に等しくなければ、前記計算された仮数差に基づいて遠距離減算結果を発生し、
また、前記近距離処理経路(110)および遠距離処理経路(140)に結合された最終結果マルチプレクサ(180)であって、前記発生された指数差信号に基づいて前記遠距離経路減算結果、前記近距離経路減算結果、または標準結果の何れかを出力し、ここでの該標準結果は前記近距離処理経路(110)の状態または前記遠距離減算結果に基づいて選択されるマルチプレクサを具備する装置。 - 請求項1に記載の装置であって、前記kン距離処理経路(110)が、下記式に基づいて、前記第一および第二の浮動小数点式オペランドの指数のパターンの関数としてGT、LT、およびEQ指数差信号を発生し、
GT=(EXPsame[1] and XEXP[O] and 〜YEXP[O])または
(EXPdiffr[1] and YEXP[O] and 〜XEXP[O]) ;
LT=(EXPsame[l] and YEXP[O] and 〜XEXP[O])または
(EXPdiffr[1] and XEXP[O] and 〜YEXP[O]) ;
EQ= EXPsame[O] ;
ここでの「〜」は反転を意味し、EXPsame[i]=XEXP[i] xnor YEXP[i];EXPdiffr[i]=XEXP[i] xor YEXP[i]であり、またGT、LT、およびEQは上記式によって発生された指数差信号である装置。 - 請求項1に記載の装置であって、更に、
前記入力データバスから前記第一および第二の浮動小数点式オペランドを受け取り、また前記第一および第二の浮動小数点式オペランドに対応する複数の指数および仮数を与えるために、前記入力データバス(170)に結合された入力論理回路(160)を具備する装置。 - 請求項1に記載の装置であって、前記近距離処理経路(110)は、前記第一および第二の浮動小数点式オペランドに関連した指数の二つの最下位ビットを使用する関数として、複数の指数差信号を発生する装置。
- 第一および第二の浮動小数点式オペランドを受取り、ここでの第一および第二の浮動小数点式オペランドの各々は、符号ビット、仮数および指数を含むこと(210)と;
前記第一および第二の浮動小数点式オペランドにおける指数のパターンの関数として、複数の指数差信号を発生させること(230)と;
前記複数の指数差信号の関数として、近距離経路減算結果を発生させること(250)と;
前記第一および第二の浮動小数点式オペランドに関連した二つの指数のうちの小さい方に関連した仮数をシフトさせることによって、正規化された仮数を発生させることと;
前記第一および第二の浮動小数点式オペランドの前記正規化された仮数を減算することによって、仮数差を計算すること(240)と;
前記第一および第二の浮動小数点式オペランドの指数を減算することによって、指数差を計算すること(220)と;
前記計算された仮数差に基づいて、また前記計算された指数差が1、−1または0に等しくないときに、遠距離経路減算結果を計算すること(260)と
前記計算された指数差の関数として、前記遠距離経路減算結果、前記近距離経路減算結果、または標準結果の何れかを選択し、前記標準結果は前記近距離経路の状態または前記遠距離経路減算結果に基づいて選択されること(270)
を含んでなる方法。 - 請求項5に記載の方法であって:前記第一および第二の浮動小数点式オペランドにおける指数のパターンの関数として前記複数の指数差信号を発生させること(230)が、
前記第一および第二の浮動小数点式オペランドの間に+1の指数差を有することの指標が存在すれば、GT指数差信号を発生させることと;
前記第一および第二の浮動小数点式オペランドの間に−1の指数差を有することの指標が存在すれば、LT指数差信号を発生させることと;
前記第一および第二の浮動小数点式オペランドの間に0の指数差を有することの指標が存在すれば、EQ指数差信号を発生させること
を含んでなる方法。 - 請求項5に記載の方法であって:前記第一および第二の浮動小数点式の数における指数のパターンの関数として前記複数の指数差信号を発生させること(230)が、
次式を使用して、前記第一および第二の浮動小数点式オペランドにおける指数のパターンの関数としてのGT、LT、およびEQ指数パターン差信号を発生させることを含んでなる方法:
GT=(EXPsame[1] and XEXP[O] and 〜YEXP[O])または
(EXPdiffr[1] and YEXP[O] and 〜XEXP[O]) ;
LT=(EXPsame[l] and YEXP[O] and 〜XEXP[O])または
(EXPdiffr[1] and XEXP[O] and 〜YEXP[O]) ;
EQ= EXPsame[O]。 - コンピュータ処理プラットホームによりデコードされたときに、
第一および第二の浮動小数点式オペランドを受取り、ここでの第一および第二の浮動小数点式オペランドの各々は、符号ビット、仮数および指数を含むこと(210)と;
前記第一および第二の浮動小数点式オペランドにおける指数のパターンの関数として、複数の指数差信号を発生させること(230);
前記複数の指数差信号の関数として、近距離経路減算結果を発生させること(250);
前記第一および第二の浮動小数点式オペランドに関連した二つの指数のうちの小さい方に関連した仮数をシフトさせることによって、正規化された仮数を発生させることと;
前記第一および第二の浮動小数点式オペランドの前記正規化された仮数を減算することによって、仮数差を計算すること(240);
前記第一および第二の浮動小数点式オペランドの指数を減算することによって、指数差を計算すること(220);
前記計算された仮数差に基づいて、また前記計算された指数差が1、−1または0に等しくないときに、遠距離経路減算結果を計算すること(260);および
前記計算された指数差の関数として、前記遠距離経路減算結果、前記近距離経路減算結果、または標準結果の何れかを選択し、前記標準結果は前記近距離経路の状態または前記遠距離経路減算結果に基づいて選択されること(270)からなる方法の実行を生じる命令を有する記憶媒体を具備してなる物品。 - 請求項8に記載の物品であって:前記第一および第二の浮動小数点式オペランドにおける指数のパターンの関数として前記複数の指数差信号を発生させること(230)が、
前記第一および第二の浮動小数点式オペランドの指数が1、−1、または0の差を有していれば、また前記第一および第二の浮動小数点式オペランドの間に+1の指数差を有することの指標が存在すれば、GT指数差信号を発生させることと;
前記第一および第二の浮動小数点式オペランドの指数が1、−1、または0の差を有していれば、また前記第一および第二の浮動小数点式オペランドの間に−1の指数差を有することの指標が存在すれば、LT指数差信号を発生させることと;
前記第一および第二の浮動小数点式オペランドの指数が1、−1、または0の差を有していれば、また前記第一および第二の浮動小数点式オペランドの間に0の指数差を有することの指標が存在すれば、EQ指数差信号を発生させること
を含んでなる方法。 - 請求項8に記載の方法であって:前記第一および第二の浮動小数点式の数における指数のパターンの関数として前記複数の指数差信号を発生させること(230)が、
次式を使用して、前記第一および第二の浮動小数点式オペランドにおける指数のパターンの関数としてのGT、LT、およびEQ指数パターン差信号を発生させることを含んでなる方法:
GT=(EXPsame[1] and XEXP[O] and 〜YEXP[O])または
(EXPdiffr[1] and YEXP[O] and 〜XEXP[O]) ;
LT=(EXPsame[l] and YEXP[O] and 〜XEXP[O])または
(EXPdiffr[1] and XEXP[O] and 〜YEXP[O]) ;
EQ= EXPsame[O]。 - コンピュータシステムであって:
プロセッサと;
前記プロセッサに結合されたメモリーであって、その中に保存されたコードを有し、該コードは、前記プロセッサによりデコードされたときに、前記プロセッサに一つの方法を実行させるメモリーとを具備し、
前記方法は、
第一および第二の浮動小数点式オペランドを受取り、ここでの第一および第二の浮動小数点式オペランドの各々は、符号ビット、仮数および指数を含むこと(210)と;
前記第一および第二の浮動小数点式オペランドにおける指数のパターンの関数として、複数の指数差信号を発生させること(230);
前記複数の指数差信号の関数として近距離経路減算結果を発生させること(250);
前記第一および第二の浮動小数点式オペランドに関連した二つの指数のうちの小さい方に関連した仮数をシフトさせることによって、正規化された仮数を発生させることと;
前記第一および第二の浮動小数点式オペランドの前記正規化された仮数を減算することによって、仮数差を計算すること(240);
前記第一および第二の浮動小数点式オペランドの指数を減算することによって、指数差を計算すること(220);
前記計算された仮数差に基づいて、また前記計算された指数差が1、−1または0に等しくないときに、遠距離経路減算結果を計算すること(260);および
前記計算された指数差および前記選択されるべき結果の状態の関数として、前記遠距離経路減算結果、前記近距離経路減算結果、または標準結果の何れかを選択し、前記標準結果は前記近距離経路の状態または前記遠距離経路減算結果に基づいて選択されること(270)
を含んでなるコンピュータシステム。 - 請求項11に記載のシステムであって:前記第一および第二の浮動小数点式オペランドにおける指数のパターンの関数として前記複数の指数差信号を発生させること(230)が、
前記第一および第二の浮動小数点式オペランドの指数が1、−1、または0の差を有していれば、また前記第一および第二の浮動小数点式オペランドの間に+1の指数差を有することの指標が存在すれば、GT指数差信号を発生させることと;
前記第一および第二の浮動小数点式オペランドの指数が1、−1、または0の差を有していれば、また前記第一および第二の浮動小数点式オペランドの間に−1の指数差を有することの指標が存在すれば、LT指数差信号を発生させることと;
前記第一および第二の浮動小数点式オペランドの指数が1、−1、または0の差を有していれば、また前記第一および第二の浮動小数点式オペランドの間に0の指数差を有することの指標が存在すれば、EQ指数差信号を発生させること
を含んでなるシステム。 - 請求項11に記載のシステムであって:前記第一および第二の浮動小数点式の数における指数のパターンの関数として前記複数の指数差信号を発生させること(230)が、
次式を使用して、前記第一および第二の浮動小数点式オペランドにおける指数のパターンの関数としてのGT、LT、およびEQ指数パターン差信号を発生させることを含んでなるシステム:
GT=(EXPsame[1] and XEXP[O] and 〜YEXP[O])または
(EXPdiffr[1] and YEXP[O] and 〜XEXP[O]) ;
LT=(EXPsame[l] and YEXP[O] and 〜XEXP[O])または
(EXPdiffr[1] and XEXP[O] and 〜YEXP[O]) ;
EQ= EXPsame[O]。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US60138304P | 2004-08-13 | 2004-08-13 | |
US60/601,383 | 2004-08-13 | ||
US11/157,650 US7707236B2 (en) | 2004-08-13 | 2005-06-21 | Methods and apparatus for an efficient floating point ALU |
US11/157,650 | 2005-06-21 | ||
PCT/US2005/028202 WO2006020599A1 (en) | 2004-08-13 | 2005-08-09 | Method for an efficient floating point alu |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008510229A true JP2008510229A (ja) | 2008-04-03 |
JP5145040B2 JP5145040B2 (ja) | 2013-02-13 |
Family
ID=35801246
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007525720A Active JP5145040B2 (ja) | 2004-08-13 | 2005-08-09 | 効率的浮動小数点式aluのための方法及び装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7707236B2 (ja) |
EP (1) | EP1782268A4 (ja) |
JP (1) | JP5145040B2 (ja) |
WO (1) | WO2006020599A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015103245A (ja) * | 2013-11-21 | 2015-06-04 | 三星電子株式会社Samsung Electronics Co.,Ltd. | 浮動小数点加算ユニットを含む装置及びシステム、並びに浮動小数点加算方法 |
JP2015111421A (ja) * | 2010-09-24 | 2015-06-18 | インテル・コーポレーション | ベクトル機能ユニット、方法、およびコンピューティングシステム |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8463835B1 (en) * | 2007-09-13 | 2013-06-11 | Xilinx, Inc. | Circuit for and method of providing a floating-point adder |
US8620983B2 (en) * | 2011-01-05 | 2013-12-31 | Via Technologies, Inc. | Leading sign digit predictor for floating point near subtractor |
GB201111035D0 (en) | 2011-06-29 | 2011-08-10 | Advanced Risc Mach Ltd | Floating point adder |
CN102693118B (zh) * | 2011-10-18 | 2015-05-13 | 苏州科雷芯电子科技有限公司 | 一种标量浮点运算加速器 |
US20130218938A1 (en) * | 2012-02-17 | 2013-08-22 | Qualcomm Incorporated | Floating-point adder with operand shifting based on a predicted exponent difference |
US8898214B2 (en) | 2012-04-23 | 2014-11-25 | Lsi Corporation | Method and apparatus to perform floating point operations |
US9317478B2 (en) * | 2012-09-10 | 2016-04-19 | Crossfield Technology LLC | Dual-path fused floating-point add-subtract |
US9329936B2 (en) | 2012-12-31 | 2016-05-03 | Intel Corporation | Redundant execution for reliability in a super FMA ALU |
WO2018194952A1 (en) * | 2017-04-17 | 2018-10-25 | Octavo Systems Llc | Mixed signal computer architecture |
US10275218B1 (en) * | 2017-10-25 | 2019-04-30 | Arm Limited | Apparatus and method for subtracting significand values of floating-point operands |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58158739A (ja) * | 1982-02-22 | 1983-09-21 | レイセオン カンパニ− | 浮動小数点加算方法及び装置 |
US5136536A (en) * | 1990-05-04 | 1992-08-04 | Weitek Corporation | Floating-point ALU with parallel paths |
JPH05241792A (ja) * | 1992-02-27 | 1993-09-21 | Nec Corp | 浮動小数点加減算方式および装置 |
WO1998006031A1 (en) * | 1996-08-05 | 1998-02-12 | Valery Yakovlevich Gorshtein | Floating point addition methods and apparatus |
US5892697A (en) * | 1995-12-19 | 1999-04-06 | Brakefield; James Charles | Method and apparatus for handling overflow and underflow in processing floating-point numbers |
US6094668A (en) * | 1997-10-23 | 2000-07-25 | Advanced Micro Devices, Inc. | Floating point arithmetic unit including an efficient close data path |
JP2000322238A (ja) * | 1999-03-10 | 2000-11-24 | Toshiba Corp | 浮動小数点演算装置 |
JP2003029960A (ja) * | 2001-06-07 | 2003-01-31 | Fujitsu Ltd | 浮動小数点加算器のショートパスにおける丸めステップの排除 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6988115B2 (en) * | 2001-05-04 | 2006-01-17 | Broadcom Corporation | Method and apparatus to correct leading one prediction |
US20030055859A1 (en) * | 2001-05-04 | 2003-03-20 | Southern Methodist University | Fast IEEE floating-point adder |
-
2005
- 2005-06-21 US US11/157,650 patent/US7707236B2/en active Active
- 2005-08-09 JP JP2007525720A patent/JP5145040B2/ja active Active
- 2005-08-09 WO PCT/US2005/028202 patent/WO2006020599A1/en active Application Filing
- 2005-08-09 EP EP05783849A patent/EP1782268A4/en not_active Ceased
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58158739A (ja) * | 1982-02-22 | 1983-09-21 | レイセオン カンパニ− | 浮動小数点加算方法及び装置 |
US5136536A (en) * | 1990-05-04 | 1992-08-04 | Weitek Corporation | Floating-point ALU with parallel paths |
JPH05241792A (ja) * | 1992-02-27 | 1993-09-21 | Nec Corp | 浮動小数点加減算方式および装置 |
US5892697A (en) * | 1995-12-19 | 1999-04-06 | Brakefield; James Charles | Method and apparatus for handling overflow and underflow in processing floating-point numbers |
WO1998006031A1 (en) * | 1996-08-05 | 1998-02-12 | Valery Yakovlevich Gorshtein | Floating point addition methods and apparatus |
US6094668A (en) * | 1997-10-23 | 2000-07-25 | Advanced Micro Devices, Inc. | Floating point arithmetic unit including an efficient close data path |
JP2000322238A (ja) * | 1999-03-10 | 2000-11-24 | Toshiba Corp | 浮動小数点演算装置 |
JP2003029960A (ja) * | 2001-06-07 | 2003-01-31 | Fujitsu Ltd | 浮動小数点加算器のショートパスにおける丸めステップの排除 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015111421A (ja) * | 2010-09-24 | 2015-06-18 | インテル・コーポレーション | ベクトル機能ユニット、方法、およびコンピューティングシステム |
JP2015103245A (ja) * | 2013-11-21 | 2015-06-04 | 三星電子株式会社Samsung Electronics Co.,Ltd. | 浮動小数点加算ユニットを含む装置及びシステム、並びに浮動小数点加算方法 |
US10108398B2 (en) | 2013-11-21 | 2018-10-23 | Samsung Electronics Co., Ltd. | High performance floating-point adder with full in-line denormal/subnormal support |
Also Published As
Publication number | Publication date |
---|---|
EP1782268A1 (en) | 2007-05-09 |
WO2006020599A1 (en) | 2006-02-23 |
US7707236B2 (en) | 2010-04-27 |
EP1782268A4 (en) | 2008-11-26 |
JP5145040B2 (ja) | 2013-02-13 |
US20060036667A1 (en) | 2006-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5145040B2 (ja) | 効率的浮動小数点式aluのための方法及び装置 | |
JP6001276B2 (ja) | 浮動小数点加算を実行するための装置および方法 | |
US8626813B1 (en) | Dual-path fused floating-point two-term dot product unit | |
CN101263467B (zh) | 浮点规格化和反规格化 | |
US5646875A (en) | Denormalization system and method of operation | |
US5128889A (en) | Floating-point arithmetic apparatus with compensation for mantissa truncation | |
US20100042665A1 (en) | Subnormal Number Handling in Floating Point Adder Without Detection of Subnormal Numbers Before Exponent Subtraction | |
US5317526A (en) | Format conversion method of floating point number and device employing the same | |
US5602769A (en) | Method and apparatus for partially supporting subnormal operands in floating point multiplication | |
US6996596B1 (en) | Floating-point processor with operating mode having improved accuracy and high performance | |
JPH0544046B2 (ja) | ||
US7668892B2 (en) | Data processing apparatus and method for normalizing a data value | |
US7437400B2 (en) | Data processing apparatus and method for performing floating point addition | |
KR100241072B1 (ko) | 부동소수점 감산시 대량소거의 병렬예측 및 연산방법과 장치 | |
US7290023B2 (en) | High performance implementation of exponent adjustment in a floating point design | |
US7680874B2 (en) | Adder | |
US6701427B1 (en) | Data processing apparatus and method for processing floating point instructions | |
US7356553B2 (en) | Data processing apparatus and method for determining a processing path to perform a data processing operation on input data elements | |
JP2919386B2 (ja) | 浮動小数点数検出装置および浮動小数点数検出回路 | |
US7386580B2 (en) | Data processing apparatus and method for computing an absolute difference between first and second data elements | |
EP1282034A2 (en) | Elimination of rounding step in the short path of a floating point adder | |
JP3257278B2 (ja) | 冗長なシフト数予測とシフト誤り補正を用いた正規化装置 | |
JP3512700B2 (ja) | 浮動小数点演算装置 | |
JP3187402B2 (ja) | 浮動小数点データ加減算回路 | |
JP3174974B2 (ja) | 浮動小数点演算装置および方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080401 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100517 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100817 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100824 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101116 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110523 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110823 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110830 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111124 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120409 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120809 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120910 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120918 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20120921 |
|
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: 20121105 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121126 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151130 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5145040 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |