JP4476210B2 - 逆数演算の結果値の初期推定値を求めるデータ処理装置および方法 - Google Patents
逆数演算の結果値の初期推定値を求めるデータ処理装置および方法 Download PDFInfo
- Publication number
- JP4476210B2 JP4476210B2 JP2005341857A JP2005341857A JP4476210B2 JP 4476210 B2 JP4476210 B2 JP 4476210B2 JP 2005341857 A JP2005341857 A JP 2005341857A JP 2005341857 A JP2005341857 A JP 2005341857A JP 4476210 B2 JP4476210 B2 JP 4476210B2
- Authority
- JP
- Japan
- Prior art keywords
- value
- input value
- data processing
- input
- result
- 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
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000007667 floating Methods 0.000 claims abstract description 47
- 238000004364 calculation method Methods 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 14
- 230000000694 effects Effects 0.000 claims description 4
- 230000001419 dependent effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 11
- 238000009825 accumulation Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000002940 Newton-Raphson method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000009795 derivation Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003252 repetitive effect Effects 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/52—Multiplying; Dividing
- G06F7/535—Dividing only
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- 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/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3812—Devices capable of handling different types of numbers
-
- 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/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3812—Devices capable of handling different types of numbers
- G06F2207/3824—Accepting both fixed-point and floating-point numbers
-
- 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/535—Indexing scheme relating to groups G06F7/535 - G06F7/5375
- G06F2207/5354—Using table lookup, e.g. for digit selection in division by digit recurrence
-
- 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/535—Indexing scheme relating to groups G06F7/535 - G06F7/5375
- G06F2207/5355—Using iterative approximation not using digit recurrence, e.g. Newton Raphson or Goldschmidt
-
- 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/535—Indexing scheme relating to groups G06F7/535 - G06F7/5375
- G06F2207/5356—Via reciprocal, i.e. calculate reciprocal only, or calculate reciprocal first and then the quotient from the reciprocal and the numerator
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
Description
初期推定値の品質は逆数演算の高速実行にとって重要であり、初期推定値のサイズは指定された精度に達するのに必要な反復ステップ数を規定する。
±1.x*2y
ここに、x=小数部(fraction)
1.x=仮数部(significand)(mantissaとしても知られる)
y=指数部
規定された正規以下範囲内の浮動小数点データ値は次のように表すことができ、
±0.x*2min
ここに、x=小数部(fraction)
0.x=仮数部(significand)(mantissaとしても知られる)
min=-126(単精度値に対して)、-1022(倍精度値に対して)
一実施例では、データ処理装置は正規浮動小数点値および特殊ケース(無限大、非数値(Not a Number values:NaNs)およびゼロ)を処理するようにされており、正規以下値は符号付ゼロ値に揃えられる。しかしながら、後述するように、代替実施例は同じ原理を使用して正規以下値を直接処理するようすることができる。
一実施例では、逆数演算は結果値として入力値の逆数を作り出し、処理論理は修正入力値としてその仮数部(significand)が0.5以上1未満の範囲内である値を選択するように入力値を操作するように動作することができる。入力値のこのような操作を実施することにより、浮動小数点数の仮数部(significand)に対する所要範囲である1以上2未満の範囲内である結果値の推定値の仮数部(significand)を形成するのにテーブル出力値を容易に使用できることが保証される。したがって、それに続く正規化ステップは不要である。
一実施例では、逆数演算は結果値として入力値の逆平方根を作り出し、処理論理は修正入力値としてその仮数部(significand)が0.25以上1未満の範囲内である値を選択するように入力値を操作するように動作することができる。修正入力値がこの範囲内に仮数部(significand)を有することを保証することにより、1以上2未満の範囲内に入る結果値の推定値の仮数部(significand)を形成するのにテーブル出力値を使用できることが保証され、したがって、それに続く正規化ステップを実施する必要性が回避される。
特定の一実施例では、逆数演算は結果値として入力値の逆数を作り出し、修正入力値は0.5以上1未満の範囲内の値である。別の実施例では、逆数演算は結果値として入力値の逆平方根を作り出し、修正入力値は0.25以上1未満の範囲内の値である。
±1.x*2y
ここに、x=小数部(fraction)
1.x=仮数部(significand)(mantissaとしても知られる)
y=指数部
±0.x*2min
ここに、x=小数部(fraction)
0.x=仮数部(significand)(mantissaとしても知られる)
min=-126(単精度値に対して)、-1022(2倍精度値に対して)
1)逆数演算が固定小数点入力の逆数を作り出している時は、範囲内は高位ビットが1であることを意味する(したがって、数は1/2以上である)。
2)逆数演算が固定小数点入力の逆平方根を作り出している時は、範囲内は高位2ビットの少なくとも1つが1であることを意味する(したがって、数は1/4以上である)。
Xi=Xi-1*M(ここに、Xiはi番目の反復に対する結果値の推定値)である。
M=2-Xi-1*d(ここに、dは入力値)である。
M=(3-Zi-1*d)/2,ここに、Zi-1=(Xi-1)2である。
逆数
レジスタファイル内で、reg S0はdを保持し、
reg S1はX(ここに、X=1/d)を保持し、
reg S2は仮の値を保持する。
下記の命令シーケンスが実施される。
Vrecpe S1,S0 S0内の値を使用してテーブルルックアップを実施してX0を求め、レジス
タS1内にX0を置く。
Vrecps S2,S1,S0 M=2-X0dの計算を実施し、レジスタS2内にMを置く。
Vmul S1,S2,S1 X1=X0xMの計算を実施し、レジスタS1内にX1を置く。
そこで命令VrecpsおよびVmulは結果が所望の精度を有するまで繰り返される。
逆平方根
レジスタファイル内で、reg S0はdを保持し、
reg S1はX(ここに、X=1/√d)を保持し、
reg S2は仮の値を保持する。
下記の命令シーケンスが実施される。
Vrsqrte S1,S0 S0内の値を使用してテーブルルックアップを実施してX0を求め、レジ
スタS1内にX0を置く。
Vmul S2,S1,S1 Z0=(X0)2の計算を実施し、レジスタS2内にz0を置く。
Vrsqrts S2,S2,S0 M=(3-Z0d)/2の計算を実施し、レジスタS2内にMを置く。
Vmul S1,S2,S1 X1=X0xMの計算を実施し、レジスタS1内にX1を置く。
命令Vmul, VrsqrtsおよびVmulは結果が所望の精度を有するまで繰り返される。
1) 浮動小数点逆数
推定値プロセス
d=6=40c00000
1/d=0.1666667=3e2aaaab
6=1.1000 0000x22 浮動小数点フォーマット
したがって、小数部(fraction)は.1000 0000
ルックアッププロセスはテーブルから返される値として.01010101を作り出す
=1.01010101 プリペンドされた1を有する
最終指数部は-(exp+1)=-3
返される推定値=3e2a8000
=0.166504
精緻化ステップ
d=6.0=40c00000
X0=0.166504=3e2a8000
2=4000 0000
M=2-X0*d=4000 0000-(3e2a8000x40c00000)
=4000 0000-3f7c0009
=3f801ffc
X1 =M*X0
=3f801ffcx3e2a8000
X 1 =3e2aaa9b=0.1666664(すなわち、1/dへの良い近似値)
2)浮動小数点逆平方根(奇数指数部を有する)
推定値プロセス
d=0.875 =3f60 0000
1/√d=1.0690445=3f88d677
d=1.1100 0000x2-1 浮動小数点フォーマット(指数部は奇数)
=0.1110 0000x20
ルックアッププロセスはテーブルから返される値として.0001 0001を与える
=1.0001 0001 プリペンドされた1を有する
推定値指数部=-(-1+1)/2=0
返される推定値=1.00010001x20
=3f888000
精緻化ステップ
Z=X0*X0
=3f888000*3f888000
=3f919080
M=(3-Z*d)/2
=(4040 0000-(3f919080x3f600000)/2
=(4040 0000-3f7ebcco)/2
=3f8050c8
X1=X0*M
=3f888000x3f8050c8
X1=3f88d625
=1.0690352(すなわち、1/√dへの良い近似値)
3) 浮動小数点逆平方根(偶数指数部を有する)
推定値プロセス
d=6.0=40c00000
1/√d=0.4082483=3ed105eb
d=6.0=1.10000000x22 浮動小数点フォーマット(指数部は偶数)
=0.01100000x24 2だけ右シフトの場合
テーブルルックアップにより.10100010が与えられる。
=1.10100010 1がプリペンドされている。
推定値指数部=-exp/2=-4/2=-2
返される推定値=3ed10000
精緻化ステップ
Z=X0*X0=3ed10000.3ed10000
=3e2aa100
M=(3-Z*d)/2
=(3-(3e2aa100x40c00000))/2
=(40400000-3f7ff180)/2
M=3f8003a0
X1=X0*M
=3ed10000.3f8003a0
X 1 =3ed105eb
=0.4082483 (すなわち、1/√dの良い近似値)
4. 1/6, 16.16フォーマットに対する固定小数点推定
入力d=6=0000000000000110.0000000000000000(2進)
ソフトウェアは先導する1が高位ビットにあるように13だけ左シフトを実施する。
d’=1100000000000000.0000000000000000
テーブルルックアップは下記を返す。
X’=1010101010000000.0000000000000000
ソフトウェアは31-13=18ビット位置だけ右シフトして16.16フォーマットを回復する。
X0=0000000000000000.0010101010100000=0.166504
真の1/6=0.166667(6有効数字)
5. 1/√6, 16.16フォーマットに対する固定小数点推定
入力d=6=0000000000000110.0000000000000000(2進)
ソフトウェアは先導する1が高位2ビットにあるように12だけ左シフトを実施する。
左シフトは偶数のビット位置でなければならない。
d’=0110000000000000.0000000000000000
テーブルルックアップは下記を返す。
X’=1101000100000000.0000000000000000
ソフトウェアは23-(12/2)=17ビット位置だけ右シフトして16.16フォーマットを回復する。
X0=0000000000000000.0110100010000000=.408203
真の1/√6=0.408248(6有効数字)
6. 1/√3, 16.16フォーマットに対する固定小数点推定値
入力d=3=0000000000000011.0000000000000000(2進)
ソフトウェアは先導する1が高位2ビットにあるように14だけ左シフトを実施する。
左シフトは偶数のビット位置でなければならない。
d’=1100000000000000.0000000000000000
テーブルルックアップは下記を返す。
X’=1001001110000000.0000000000000000
ソフトウェアは23-(14/2)=16ビット位置だけ右シフトして16.16フォーマットを回復する。
X0=0000000000000000.1001001110000000=.576172
真の1/√3=0.577350(6有効数字)
20 メモリシステム
30 レジスタファイル
40 入力マルチプレクサ
50 ALUパイプライン
60 ロード/ストア・ユニット
70 命令デコーダ
400 乗算ユニット
402,404,415,442,444,446,450 パス
420 累算ユニット
430 マルチプレクサ
440 加算器ユニット
Claims (13)
- 入力値に逆数演算を実施することにより作り出される結果値の初期推定値を発生するデータ処理装置であって、入力値および結果値は固定小数点値または浮動小数点値であり、前記データ処理装置は、
命令を実行してデータにデータ処理演算を実施するように動作する処理論理と、
結果値の初期推定値の発生中に処理論理が参照するルックアップテーブルと、
を含み、
処理論理は推定値命令に応答してルックアップテーブルを参照し、予め定められた範囲内の修正入力値に応じて、テーブル出力値を発生し、特定の修正入力値に対しては入力値が固定小数点値であるか浮動小数点値であるかにかかわらず同じテーブル出力値が発生され、
結果値の初期推定値はテーブル出力値から引き出すことができるデータ処理装置。 - 請求項1に記載のデータ処理装置であって、入力値が固定小数点値であるか浮動小数点値であるかにかかわらず同じ推定値命令が使用されるデータ処理装置。
- 請求項1に記載のデータ処理装置であって、
入力値および結果値は浮動小数点数であり、
推定値命令はオペランドとして入力値を指定するように動作することができ、
処理論理は推定値命令に応答して修正入力値を評価し、ルックアップテーブルを参照してテーブル出力値を発生し、テーブル出力値から結果値の初期推定値を引き出すように動作することができる、データ処理装置。 - 請求項3に記載のデータ処理装置であって、逆数演算は結果値として入力値の逆数を作り出し、処理論理はその仮数部(significand)が0.5以上1未満の範囲内である値を修正入力値として選択するように入力値を操作するように動作することができるデータ処理装置。
- 請求項4に記載のデータ処理装置であって、処理論理は修正入力値として入力値の仮数部(significand)の有効1ビット右シフトの結果を選択するように動作することができ、結果値の初期推定値はテーブル出力値を使用して結果値の推定値の仮数部(significand)を形成し、入力値の指数部を増分かつ否定して結果値の推定値の指数部を作り出すことにより引き出されるデータ処理装置。
- 請求項3に記載のデータ処理装置であって、逆数演算は結果値として入力値の逆平方根を作り出し、処理論理はその仮数部(significand)が0.25以上1未満の範囲内である値を修正入力値として選択するように入力値を操作するように動作することができるデータ処理装置。
- 請求項6に記載のデータ処理装置であって、処理論理は、修正入力値が偶数の指数部を有するように、入力値の指数部の関連する増分と共に、入力値の仮数部(significand)の有効1ビットまたは有効2ビット右シフトの結果を修正入力値として選択するように動作することができ、結果値の初期推定値はテーブル出力値を使用して結果値の推定値の仮数部(significand)を形成し、かつ修正入力値の指数部を半分して否定することにより結果値の推定値の指数部を作り出すことにより引き出されるデータ処理装置。
- 請求項1に記載のデータ処理装置であって、
入力値および結果値は固定小数点数であり、
修正入力値は推定値命令を実行する前に作り出され、
推定値命令はオペランドとして修正入力値を指定し、
処理論理は推定値命令に応答してルックアップテーブルを参照しテーブル出力値を発生し、
推定値命令を実行した後で後続処理ステップが実施されてテーブル出力値から結果値の初期推定値を引き出す、データ処理装置。 - 請求項8に記載のデータ処理装置であって、逆数演算は結果値として入力値の逆数を作り出し、修正入力値は0.5以上1未満の範囲内の値であるデータ処理装置。
- 請求項8に記載のデータ処理装置であって、逆数演算は結果値として入力値の逆平方根を作り出し、修正入力値は0.25以上1未満の範囲内の値であるデータ処理装置。
- 請求項8に記載のデータ処理装置であって、修正入力値は入力値の有効左シフトを実施して予め定められた範囲内の値を作り出すことにより作り出され、結果値の初期推定値は前の有効左シフトの影響を取り消すのに十分なテーブル出力値の有効右シフトを実施して作り出されるデータ処理装置。
- 入力値に逆数演算を実施することにより作り出される結果値の初期推定値を発生するデータ処理装置であって、入力値および結果値は固定小数点値または浮動小数点値であり、前記データ処理装置は、
命令を実行してデータにデータ処理演算を実施する処理手段と、
結果値の初期推定値の発生中に処理手段が参照するルックアップテーブルと、
を含み、
処理手段は推定値命令に応答してルックアップテーブルを参照し、予め定められた範囲内の修正入力値に応じて、テーブル出力値を発生し、特定の修正入力値に対しては入力値が固定小数点値であるか浮動小数点値であるかにかかわらず同じテーブル出力値が発生され、
結果値の初期推定値はテーブル出力値から引き出すことができるデータ処理装置。 - 入力値に逆数演算を実施することにより作り出される結果値の初期推定値を発生するデータ処理装置の動作方法であって、入力値および結果値は固定小数点値または浮動小数点値であり、前記方法は、
(a)入力値から予め定められた範囲内である修正入力値を評価するステップと、
(b)推定値命令に応答し、処理論理を利用してルックアップテーブルを参照して、修正入力値に応じて、テーブル出力値を発生し、特定の修正入力値に対しては入力値が固定小数点値であるか浮動小数点値であるかにかかわらず同じテーブル出力値が発生されるステップと、
(c)テーブル出力値から結果値の初期推定値を引き出すステップと、
を含む方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/058,421 US7747667B2 (en) | 2005-02-16 | 2005-02-16 | Data processing apparatus and method for determining an initial estimate of a result value of a reciprocal operation |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006228191A JP2006228191A (ja) | 2006-08-31 |
JP4476210B2 true JP4476210B2 (ja) | 2010-06-09 |
Family
ID=34976544
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005341857A Active JP4476210B2 (ja) | 2005-02-16 | 2005-11-28 | 逆数演算の結果値の初期推定値を求めるデータ処理装置および方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7747667B2 (ja) |
JP (1) | JP4476210B2 (ja) |
GB (1) | GB2423385B (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8015228B2 (en) | 2005-02-16 | 2011-09-06 | Arm Limited | Data processing apparatus and method for performing a reciprocal operation on an input value to produce a result value |
JP4546557B2 (ja) * | 2008-04-21 | 2010-09-15 | 三菱電機株式会社 | 演算装置 |
CN103348300B (zh) | 2011-01-21 | 2016-03-23 | 飞思卡尔半导体公司 | 计算函数的函数值的装置和方法 |
US8990278B1 (en) * | 2011-10-17 | 2015-03-24 | Xilinx, Inc. | Circuitry for computing mathematical functions |
JP2016062404A (ja) * | 2014-09-19 | 2016-04-25 | サンケン電気株式会社 | 演算処理方法及び演算処理装置 |
US20170169132A1 (en) * | 2015-12-15 | 2017-06-15 | Analog Devices, Inc. | Accelerated lookup table based function evaluation |
GB2582146B (en) * | 2019-03-11 | 2021-08-18 | Graphcore Ltd | Execution Unit for Evaluating Functions Using Newton Raphson Iterations |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3828175A (en) * | 1972-10-30 | 1974-08-06 | Amdahl Corp | Method and apparatus for division employing table-lookup and functional iteration |
US4878190A (en) * | 1988-01-29 | 1989-10-31 | Texas Instruments Incorporated | Floating point/integer processor with divide and square root functions |
US4999801A (en) * | 1988-07-15 | 1991-03-12 | Fujitsu Limited | Floating point operation unit in division and square root operations |
DE68928376T2 (de) * | 1988-11-04 | 1998-04-02 | Hitachi Ltd | Vorrichtung zum multiplizieren, teilen und ziehen der quadratwurzel |
JPH02156328A (ja) | 1988-12-08 | 1990-06-15 | Toshiba Corp | 逆数回路 |
US5249149A (en) * | 1989-01-13 | 1993-09-28 | International Business Machines Corporation | Method and apparatus for performining floating point division |
US5274580A (en) * | 1990-03-21 | 1993-12-28 | Bull, S.A. | Method for calculating the inverse of a number, and computer for performing the method |
US5220524A (en) * | 1990-12-13 | 1993-06-15 | Micron Technology, Inc. | Machine method to perform newton iterations for reciprocals |
US5537345A (en) * | 1993-10-14 | 1996-07-16 | Matsushita Electrical Industrial Co. Ltd. | Mathematical function processor utilizing table information |
JPH07253874A (ja) | 1994-03-15 | 1995-10-03 | Fujitsu Ltd | 演算装置 |
US5768170A (en) * | 1996-07-25 | 1998-06-16 | Motorola Inc. | Method and apparatus for performing microprocessor integer division operations using floating point hardware |
JP3352887B2 (ja) * | 1996-09-09 | 2002-12-03 | 株式会社東芝 | クランプ付除算器、このクランプ付除算器を備えた情報処理装置及び除算処理におけるクランプ方法 |
US6115733A (en) * | 1997-10-23 | 2000-09-05 | Advanced Micro Devices, Inc. | Method and apparatus for calculating reciprocals and reciprocal square roots |
US6163791A (en) | 1998-02-02 | 2000-12-19 | International Business Machines Corporation | High accuracy estimates of elementary functions |
US6341300B1 (en) * | 1999-01-29 | 2002-01-22 | Sun Microsystems, Inc. | Parallel fixed point square root and reciprocal square root computation unit in a processor |
JP3447614B2 (ja) * | 1999-05-31 | 2003-09-16 | 株式会社東芝 | 分数演算器、グラフィック用セットアップエンジン、分数演算方法、及び機械読み出し可能な記憶媒体 |
US6912559B1 (en) * | 1999-07-30 | 2005-06-28 | Mips Technologies, Inc. | System and method for improving the accuracy of reciprocal square root operations performed by a floating-point unit |
US7366748B1 (en) * | 2000-06-30 | 2008-04-29 | Intel Corporation | Methods and apparatus for fast argument reduction in a computing system |
US6598063B1 (en) * | 2000-08-14 | 2003-07-22 | Lntel Corporation | Fast calculation of (A/B)K by a parallel floating-point processor |
US6732134B1 (en) * | 2000-09-11 | 2004-05-04 | Apple Computer, Inc. | Handler for floating-point denormalized numbers |
GB2372353A (en) | 2000-12-20 | 2002-08-21 | Sicon Video Corp | Method and apparatus for calculating a reciprocal |
US7080112B2 (en) * | 2002-11-13 | 2006-07-18 | International Business Machines Corporation | Method and apparatus for computing an approximation to the reciprocal of a floating point number in IEEE format |
US7346642B1 (en) * | 2003-11-14 | 2008-03-18 | Advanced Micro Devices, Inc. | Arithmetic processor utilizing multi-table look up to obtain reciprocal operands |
US7467174B2 (en) * | 2004-09-23 | 2008-12-16 | Wisconsin Alumni Research Foundation | Processing unit having decimal floating-point divider using Newton-Raphson iteration |
US20060179092A1 (en) * | 2005-02-10 | 2006-08-10 | Schmookler Martin S | System and method for executing fixed point divide operations using a floating point multiply-add pipeline |
-
2005
- 2005-02-16 US US11/058,421 patent/US7747667B2/en active Active
- 2005-07-25 GB GB0515256A patent/GB2423385B/en active Active
- 2005-11-28 JP JP2005341857A patent/JP4476210B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
US7747667B2 (en) | 2010-06-29 |
JP2006228191A (ja) | 2006-08-31 |
GB0515256D0 (en) | 2005-08-31 |
US20060184594A1 (en) | 2006-08-17 |
GB2423385B (en) | 2009-05-13 |
GB2423385A (en) | 2006-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6694880B2 (ja) | 有効度整合 | |
US20170139677A1 (en) | Multiplication of first and second operands using redundant representation | |
JP4476210B2 (ja) | 逆数演算の結果値の初期推定値を求めるデータ処理装置および方法 | |
US9733899B2 (en) | Lane position information for processing of vector | |
US8965946B2 (en) | Data processing apparatus and method for performing a reciprocal operation on an input value to produce a result value | |
US9720646B2 (en) | Redundant representation of numeric value using overlap bits | |
JP2011501310A (ja) | 算術演算のためにマグニチュード検出を実行するための装置および方法 | |
WO2018138469A1 (en) | An apparatus and method for processing input operand values | |
US6912559B1 (en) | System and method for improving the accuracy of reciprocal square root operations performed by a floating-point unit | |
US10459688B1 (en) | Encoding special value in anchored-data element | |
US6598065B1 (en) | Method for achieving correctly rounded quotients in algorithms based on fused multiply-accumulate without requiring the intermediate calculation of a correctly rounded reciprocal | |
US20170139675A1 (en) | Overlap propagation operation | |
JPH04355827A (ja) | 開平演算装置 | |
US10963245B2 (en) | Anchored data element conversion | |
TWI822952B (zh) | 迭代運算的處理 | |
JP4613992B2 (ja) | Simd演算器、simd演算器の演算方法、演算処理装置及びコンパイラ | |
JP3727039B2 (ja) | コンパイラにおける乗算実施方法 | |
Kehtarnavaz et al. | Fixed-Point vs. Floating-Point | |
Ziaullah et al. | Design and Implementation of Floating Point ALU with Parity Generator Using Verilog HDL | |
WO2000048080A1 (en) | Processor having a compare extension of an instruction set architecture | |
Kumazawa et al. | Hardware algorithm for computing reciprocal of euclidean norm of a 3-D vector | |
JPH04358224A (ja) | 開平演算装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080310 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100204 |
|
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: 20100219 |
|
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: 20100309 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4476210 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130319 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130319 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140319 Year of fee payment: 4 |
|
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 |
|
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 |