JP2008502036A - パイプライン化された実数または複素数alu - Google Patents
パイプライン化された実数または複素数alu Download PDFInfo
- Publication number
- JP2008502036A JP2008502036A JP2007513850A JP2007513850A JP2008502036A JP 2008502036 A JP2008502036 A JP 2008502036A JP 2007513850 A JP2007513850 A JP 2007513850A JP 2007513850 A JP2007513850 A JP 2007513850A JP 2008502036 A JP2008502036 A JP 2008502036A
- Authority
- JP
- Japan
- Prior art keywords
- stage
- logarithmic
- output
- subfunction
- input
- 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.)
- Pending
Links
- 230000006870 function Effects 0.000 claims abstract description 112
- 238000000034 method Methods 0.000 claims abstract description 75
- 238000012937 correction Methods 0.000 claims description 51
- 238000004364 calculation method Methods 0.000 claims description 25
- 230000007423 decrease Effects 0.000 claims description 5
- 238000009825 accumulation Methods 0.000 claims 1
- 238000004422 calculation algorithm Methods 0.000 description 35
- 238000007667 floating Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 11
- 230000008901 benefit Effects 0.000 description 10
- 230000000295 complement effect Effects 0.000 description 10
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 9
- 229910052710 silicon Inorganic materials 0.000 description 9
- 239000010703 silicon Substances 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000001934 delay Effects 0.000 description 5
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012804 iterative process Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 238000013139 quantization Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 230000003340 mental effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/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/556—Logarithmic or exponential functions
-
- 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/4806—Computations with complex numbers
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Complex Calculations (AREA)
- Image Processing (AREA)
Abstract
Description
本出願は2004年6月4日出願の米国特許仮出願第60/577,386号および2005年1月12日出願の第60/643,259号を優先権主張するものであり、その内容は参照により本明細書に引用される。
本発明は、一般にコンピュータ処理およびデジタル信号処理に関し、より具体的には算術論理ユニット(ALU)のパイプライン化された対数演算に関する。
SEEEEEEEE.MMMMMMMMMMMMMMMMMMMMMMM
である。ここにSは、値の符号(0=+;1=−)、EEEEEEEEは8ビットの指数であり、MMM...MMは23ビットの仮数である。IEEE標準浮動小数点形式により、仮数の第24番目の上位ビットは常に1(真のゼロを除く)であり、従って省略される。IEEE形式では、仮数の実際の値は以下となる。
1.MMMMMMMMMMMMMMMMMMMMMMM
例えば、底が2の対数−1.40625×10−2=−1.8×2−7は、IEEE標準形式により以下のように表わすことができる。
1 01111000.11001100110011001100110
更に、ゼロ指数は01111111であり、従って数+1.0は以下のように書くことができる。
0 01111111.00000000000000000000000
真のゼロを表わすには負に無限の指数を必要とするが、現実的でないため、2−127の代わりに真のゼロとして全桁が0のビット・パターンを解釈することにより擬似的なゼロが作られた。
本発明は、対数形式で表現された数を用いて算術演算を実行する算術論理ユニットに関する。対数表現を用いることにより、乗算と除算操作は簡素化されるが、加算と減算はより難しくなる。しかし、以下に簡単に述べる公知のアルゴリズムを用いて2個の数値の和や差の対数計算を簡素化することができる。以下の説明において、a>b且つc=a+bと仮定する。次式が示される。
C=logq(c)=logq(a+b)=A+logq(1+q−r) (1)
ここにqは対数の底、r=A−B、A=logq(a)、B=logq(b)である。式(1)で表わされた演算(以下、対数加算と称す)は、aとbの和の対数を加算と減算操作だけを用いて計算できるようにし、logq(1+q−r)の値は参照表を用いて決定される。しかし、プロセッサは参照表を格納するために十分なメモリを必要とする。32ビットの高精度数値の場合、多くの回路において参照表が実用には大き過ぎるため、直接的に参照する方法(direct look-up method)は一般に16ビットの数値にしか適用できない。
ここに、rM +はrMの拡大されたバージョンを表わし、rは次式で表わすことができる。
また、以下の詳述するように
であり、ここに、rL −は、元の最下位部分rLより、rM +を取得するためにrMを拡大した量だけ少ない量に等しい。所望の値Cはこのように、Aと、参照関数により決定される3個の部分値の和として、計算することができる。式(2)に示すように、参照関数は、3個の部分値の全てについて同一であり、引数だけが変化する。参照関数に対する引数はr=A−Bに基づいており、反復的に計算することができる。第1の参照関数の引数rはA−Bであり、rMおよびrLで表わすことができる。第2の参照関数の引数r’={r’M;r’L}はr+F(rM)+G(rL)により決定され、第3の参照関数の引数r”={r”M;r”L}はr’+F(r’M)+G(r’L)により決定される。
本発明は、対数計算を実行すべく簡素化された多段パイプラインを有するALUを提供する。概して、多段パイプラインの各段階は、段階入力によりアドレス指定される関数表Fに基づいて部分対数出力を生成する。パイプラインを簡素化すべく、少なくとも1段階の関数表は、要素数または語長または両方のいずれかにおいて、他の段階の関数表とは異なるサイズであってよい。好適な実施形態において、主関数参照表を複数の副関数参照表に分解することができ、各々の副関数参照表はパイプラインの対応する段階で使用される。ここで用いるように、「主関数参照表」とは主参照関数に関連付けられた主参照表を指す。本実施形態では、全ての段階からの全ての副関数参照表を組み合わせたサイズは、主関数参照表のサイズにほぼ等しい。本発明の詳細および利点をよりよく理解されるよう、以下において数値表現、従来方式の補間、反復的対数演算、高精度の反復的対数加算、高精度の反復的対数減算、および指数近似に関する詳細を述べる。
ALU内で実施される対数演算は一般に、固有の数形式を必要とする。上記のように、従来のプロセッサは、実数または複素数を、固定小数点バイナリ形式または浮動小数点形式にフォーマットすることができる。上記のように、固定小数点形式は純粋に線形形式である。従って、固定小数点で表わされた数を用いる加算と減算は単純であり、一方、乗算はより複雑である。浮動小数点で表わされた数は、対数と線型表現の混合型である。従って、加算、減算、乗算、および除算は、浮動小数点形式では全て複雑である。これらの形式に付随するいくつかの問題を克服すべく、純粋な対数形式を適切なアルゴリズムと共に用いて、対数形式に付随する加算と減算の問題を解決することができる。以下に、本発明に当てはまる範囲で、純粋対数形式に付随する更なる詳細事項について述べる。
S xxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxx
2個のこのような実数を、複素数を表わす一つの方法として用いることができる。しかし、関連する米国特許出願第___号(代理人整理番号4015−5281)に述べられているように、複素数を表わすのに対数極形式の方が有利である。
純粋対数:S xx...xx.xx ...xx⇔(−1)S×2−xx...xx.xx...xx
IEEE:S EE...EE.MM...MM⇔(−1)S×(1+0.MM...MM...MM)×2−EE...EE (5)
底2に対する対数の整数部は、IEEE形式に従い127によりオフセットされて、数1.0はいずれの形式でも次のように表現できる。
0 01111111.00000000000000000000000
あるいは、128のオフセットを用いてもよく、この場合、1.0は次のように表現される。
0 10000000.00000000000000000000000
127または128のどちらを好適なオフセットとして用いるかは、実装上の問題である。
0 11111111.11111111111111111111111
これは底が2の場合、ほぼ256から127のオフセットを差し引いた対数、すなわち約2129または6.81×1038を表わす。
0 00000000.00000000000000000000000
これは底が2の場合、−127に等しい対数、すなわち5.88×10−39を表わす。必要ならば、全ゼロ形式は、IEEEの場合と同様に、擬似的な真ゼロを表わすために予約することができる。このシナリオにおいて、表現可能な最小な数は以下の通りである。
0 00000000.00000000000000000000001
これは底が2の場合、ほぼ−127に等しい対数、すなわち約5.88×10−39に対応する。
S xxxxxxx.xxxxxxxxxxxxxxxxxxxxxxxx
または簡便に(S7.24)で表わす。底が大きい(e=2.718)ため、小数点の左側のビットの個数が少なくてもダイナミックレンジを与えるのに十分である。一方、以下に詳述するように、同じまたはより良い精度を得るには小数点の右側に追加的なビットを必要とする。
0 1000000.000000000000000000000000
はゼロ対数(数値=1.0)を表わす。後者の場合、表現可能な最大数は、以下の底eの対数を有する。
0 1111111.111111111111111111111111
これは、ほぼ128であり、64のオフセットを引いて(less the offset of 64)、すなわちe64または6.24×1027であり、その逆数は表現可能な最小数を表わす。式(6)は、底eの対数表現の量子化精度を表わす。
図2は、IEEE浮動小数点形式(オフセットが+127)を、底がeの形式(オフセットが+64)および底が2の形式(オフセットが+127)と比較する。
の底を選択すること(一般的には
、但しNは正または負の整数)は、同一性能をもたらしつつ小数点をプラスまたはマイナスNビット分移動させることに等しい。しかし、8の底を選択することは、対数を3で除算するため、小数点を整数個分移動させることには等しくない。換言すれば、対数の底の選択は、数学的に2進小数点の右側と左側の間のビットの分割を変更することに等しく、精度とダイナミックレンジの間の妥協点が変わる。しかし、小数点はステップ単位でしか移動されず、一方、底は連続的に変更され得る。符号付き対数絶対値の場合(符号無し、127オフセットの対数絶対値とは対照的に)、符号ビットは、これを対数絶対値の符号として参照することにより、数値(Sビット)の符号とは区別される。これを更に明らかにするために、底が10の対数log10(3)=0.4771、あるいはlog10(1/3)=−0.4771を考慮する。このように、+3の値を対数で示すには、数値とその対数の符号は共に+であり、++0.4771と書くことができる。下表にこの表記法を示す。
log10(6)=log10(2×3)=log10(3)+log10(2)=0.4771+0.3010=0.7781
これを演繹すれば直ちに以下も得られる。
log10(1.5)=log10(3/2)=log10(3)−log10(2)=0.4771−0.3010=0.1761
しかし、与えられた数値0.4771および0.3010をどのように単純に演算しても直ちに以下を演繹することはできない。
log10(5)=log10(2+3)=0.6990
更に、3と2の対数からどのように以下を推論できるかも明らかではない。
log10(1)=log10(3−2)=0
Fa(x)=log10(1+10−x) (7)
同様に、3−2の対数は、log10(3)とlog10(2)のうち大きい方から関数Fs(0.1761)を減算して得られる。ここに、底が10の場合のFs(x)は以下の通りである。
Fs(x)=log10(1−10−x) (8)
しかし、Fa(x)およびFs(x)用の参照表は依然として、各々の関数用に少なくとも10,000個の数値を格納する必要がある。
補間を用いて、参照表に格納する値の数を減らすことができる。後の考察を容易にすべく、以下で補間を更に詳しく調べる。説明を簡便にすべく、底eを用いる。しかし、他の底も同様に適用できる点を理解されたい。
F(x)=F(xo)+(x−xo)F’(xo)+0.5(x−xo)2F”(xo)..., (9)
ここに、’は1次導関数を表わし、”は2次導関数を表わす。この展開に基づいて、loge(c)=loge(a+b)をテイラー/マクローリン展開の利点を用いてloge(a)+Fa(x)として計算することができる。ここに、x=loge(a)−loge(b)であり、xoの値は表で提供される。
Fa”(x)は、x=0のとき最大値0.25をとる。従って、2次項は、(x−xo)<2−11のとき2−25未満である。この必要条件を満たすには、最上位ビットは、形式(5.11)で表の点xoをアドレス指定する。すなわち、
xxxxx.xxxxxxxxxxx
である。これは、剰余dx=x−xoが以下の形式であって、
0.00000000000xxxxxxxxxxxxx、
従って2−11未満であるようにするためである。このように、dxは13ビットの数値であり、xoは16ビットの数値である。
を乗ずる。更に、乗算器40は、結果がFa’(XM)と
の27ビットで表わされる積であるように構成されている。
FS(x)=loge(1−e−x) (11)
Fs(x)のテイラー/マクローリン補間は、以下の1次導関数を含んでいる。
これはxが0に近づくにつれ無限大に発散する。この特異点からの演算を遠ざけるべく、次式を用いて、x=loge(A)−loge(B)(A>Bの場合)の実際の値より大きいLSB1個分タブラー値から後方に関数を補間する場合がある。
Fs(x)=Fs(xo)−(xo−x)Fs’(xo) (13)
これは、図3の対数加算について示した実装方式である。次いで、少なくともxの最上位ビットがゼロである場合、特異点を回避するためにのみ、xoは値においてLSB1個分大きい。
上述の補間処理に代わるものとして、また記憶要件を減らすために、反復的解法を用いる場合がある。反復的解法は2個の比較的小さい参照表を用いて、表にされた関数に基づき反復的な処理を用いて対数出力を計算する。反復的解法を示すために、10進数の例として、log10(3)=0.4771およびlog10(2)=0.3010からlog10(5)=log10(3+2)およびlog10(1)=log10(3−2)を推論する仕方について説明する。
G(y)=−log10(1−10−y) (14)
以下に、これら2個の参照表を用いて上述のlog(5)=log(3+2)の例に対する2表反復処理を示す。以下は底が10の場合について記述しているが、当業者であれば任意の底を用いてもよいことが理解されよう。底10とは異なる底を用いる実施形態のために、式(7)および(14)が各々底10での計算用の関数および補正表を定義する一方、式(15)は一般に、任意の底qについて関数および補正表を定義することが理解されよう。
Fa(x)=logq(1+q−x)
G(y)=−logq(1−q−y) (15)
Fs(x)=log10(1−10−x)(底が10の場合)
Fs(x)=logq(1−q−x)(一般的な底qの場合) (16)
log10(3)とlog10(2)の差0.1761は最も近い小数点以下1桁0.2へ切上げられる。減算関数表で0.2を参照すればFs(0.2)=−0.4329が得られる。開始時近似値0.4771に−0.4329を加算すればlog10(1)に対する第1近似値0.0442が得られる。
一般に、より一般的な底がqの対数について解決すべき対数加算問題は、以下のステップで与えることができる。
・A=logq(a)およびB=logq(b)と仮定する。ここに、aおよびbは正数、且つqは底である。
・目的:C=logq(c)を見つけること。ここで、c=a+bである。
・従って、C=logq(a+b)=logq(qA+qB)である。
・AをAとBのうち大きい方とする。
・この場合C=logq(qA(1+q−(A−B))
=A+logq(1+q−(A−B))
=A+logq(1+q−r)、ここにr=A−B、且つ正である。
従って、当該問題は1変数rの関数logq(1+q−r)の計算に帰着された。
rM=xxxxx.xxxxxxxxx
rL=00000.000000000xxxxxxxxxxxxxxx (17)
簡便のため、rMおよびrLの長さを略して(5.9)および(15)と表記する場合がある。本方法に明らかな変更を加えることにより、rを最上位および最下位ビット部分に分割する他の仕方も等しく使用可能であり、以下に詳述する特定の分割を好適な対象とした考察では、異なる語長(例:16ビット)または複素数演算に対して同じFおよびG表を再利用可能なことが関心事項である。
rM +=xxxxx.xxxxxxxxx+00000.000000001 (18)
rLの補数値を次式で表わすことができる。
rL −=rM +−r (19)
これは、rMに対する上述の2個の代替的な増分のどちらが使われるかに応じて、rLの補数または2の補数のいずれかである。すなわち、rL −=
00000.000000000111111111111111−00000.000000000xxxxxxxxxxxxxxx(rLの補数)またはrL −=00000.000000001000000000000000−00000.000000000xxxxxxxxxxxxxxx(rLの2の補数)である。ここから、底eの場合に以下の結果が得られる。
ここに、
である。log(1+e−r)を同様に拡張すれば次式が得られる。
ここに、
である。結論に至るまで反復することにより、所望の解は以下の関数の和を含んでいることがわかる。
これらは各々のr引数の最上位14ビットだけに依存し、それらの引数は16,384ワードしか含まない参照表から取得することができる。
に依存する値を加算することにより、導かれる。
1.出力アキュムレータ値CをAとBのうち大きい方に初期化する。
2.Aの方が大きい場合はrをA−Bに、またはBの方が大きい場合はB−Aに初期化する。
3.rをrMとrLに分割する。
4.各々rMおよびrLによる指定に従いFa(rM +)およびG(rL −)を参照する。
5.FaにCを、およびFa+Gにrを累算する。
6.r<STOP_THRESHOLD(以下に詳述)の場合はステップ3から繰返す。
の値は常に約6.24より大きく、従って反復は常に3サイクル以下で終了する。底が2の場合、補正値は比例的に大きく、そのため底が2の場合にrは常に高々3サイクルで25を超える。一般に、任意の底に対して3サイクルで十分である。
AおよびBに関連付けられた符号Sが、aとbは同じ符号を有することを示す場合、上述の対数加算アルゴリズム(「対数加算」と略す)を用いることができる。そうでない場合、対数減算アルゴリズム(「対数減算」と略す)が必要である。下表に各々のアルゴリズムが用いられる場合分けを示す。
対数加算アルゴリズムを用いた場合、結果の符号は常に大きい方の対数絶対値に関連付けられた符号である。
C=loge(a−b)=loge(eA−eB) (23)
対数加算と同様に、本例でも説明目的だけのために底としてeを用いているが、これに限定されない。
C=loge(eA(1−e−(A−B)))
=A+loge(1−e−(A−B))
=A+loge(1−e−r) (24)
ここにr=A−Bであり、その値は正である。従って、問題は1変数rの関数log(1−e−r)の計算に帰着する。rM、rL、rM +およびrL −を以前定義された通りとする。すると、底eの場合、次式が得られる。
ここに、
である。loge(1−e−r’)を拡張すれば次式が得られる。
ここに、
であり、以下同様である。結論に至るまで反復することにより、所望の解は以下の関数の和を含んでいることがわかる。
これらは各々の全語長r値の最上位14ビットだけに依存し、16,384のワードだけを含む参照表により与えられる。
1.出力アキュムレータ値CをAとBのうち大きい方に初期化する。
2.Aの方が大きい場合はrをA−Bに、またはBの方が大きい場合はB−Aに初期化する。
3.rをrMとrLに分割する。
4.各々rMおよびrLによる指定に従いFs(rM +)およびG(rL −)を参照する。
5.FsにCを、およびFs+Gにrを累算する。
6.r<STOP_THRESHOLD(以下に詳述)の場合はステップ3から繰返す。
を、
から切上げるのではなく切捨てれば、有限回数の反復の後で精度が向上する。2表反復処理が常に一定回数の反復を実行するか、あるいは処理が最後の反復を識別するならば、Fの引数を最後の反復で切り捨てることができる。最後の反復は、rが例えばSTOP_THRESHOLDのある範囲(底eの場合〜6、底が2の場合〜8)内にあって、次の反復がSTOP_THRESHOLDを超える筈であることが示されることにより識別できる。この方法を用いる場合、rLの左端ビットが最後の反復でゼロになったならば、F表へのアドレスを1だけ減らすことができる。後述するパイプライン実装において、最終的なF表の内容は、切り捨てられた引数のために単純に計算される。
上述のように、rM +は、rLの取り得る最大の値(0.00000000011111111111111)だけ増やしたrMを含んでいても、あるいは0.000000001だけ増やしたrMを含んでいてよい。rMの増分として0.000000001ではなく0.0000000001111111....1を選択する利点は、rM=0の場合に直接Fの値を得るために、反復的アルゴリズムを実行する間にrLの補数でG表をアドレス指定しても、あるいはrL(補数を取られていない)により参照してもよい点であり、従って他の方法では困難な、2個のほぼ等しい値の減算を行なうのに単一の反復で十分な点である。補数を取った値及び補数を取らなかった値の両方を利用可能にする方が、桁上げを伝播する必要がなくなるため、2の補数を求めるよりも簡単且つ高速に行なえる。
ここにdは、好適にはXLが取り得る最大値、すなわち全桁1である増分を表わす。当該関数は、XMによりアドレス指定される参照表として構成することができる。減算の場合、Fs表の値は次式で定義することができる。
XMの大きい値に対してFa(XM)=Fs(XM)であり、且つ32ビット演算および16〜24の範囲の引数に対して両方とも次式により正確に近似することができる。
ここに、XM1はXMの整数部(小数点の左側のビット)、XM2は小数部、すなわち小数点の右側のビットである。カッコ内の関数は、小さい指数参照表に格納することができる。右シフタが整数部を実装することにより、小数ビットだけが指数関数を参照すればよくなるため、表のサイズが小さくなる。
従って、図4から分かるように、8〜16の範囲のXMに対して、長さが8ビット以下の小さい補正値E2により補正された場合に指数近似Eを用いてもよい。その結果は、2進小数点以下24桁が必要な場合、長さが17ビットである。
ここに、(d−XL)はdが全1である場合のXLの補数に等しい。G(XL)の最小値は、XMとXLの間で31ビットの対数絶対値の分割に依存する。XMが5.8形式である場合、XLは0.00000000xxxxxxxxxxxxxxx形式であって2−8より小さい。従って、XL=0の場合、Gの最小値は8.5である。形式(5.7)のXMの場合、Gの最小値は7.5であり、形式(5.9)のXMの場合、Gの最小値は9.5である。各サイクルでXの値は少なくともGの値分増加するため、3個のG値が平均して8を超える限り、Xは3サイクル以内に24を超える。以下、説明の都合上引き続き32ビット演算であると仮定する。Gの最小値が8.5である場合、格納されている値から底の値8を減算する場合がある。
上で述べた各種の2表反復的方法を用いて、対数演算の実行に必要なメモリの量を減らすことができるが、所望の結果を得るために必要な複数回の反復の実行が、長時間を要することを理解されたい。対数演算処理の時間を短縮するため、従って速度を上げるために、本発明は、ある段階から後続段階へのフィードフォワードを有するハードウェアの新規な多段パイプラインを実装するALUを開示する。F(r)関数用の参照表が各段階において連続的に大きくなるr値によりアドレス指定されるため、各段階における参照表は、先行段階で扱われた最大r値と後続段階で扱われる最小r値の間にあるアドレスの範囲だけを扱えばよい。実際に、単一の参照表F(r)は、各々にパイプラインの各段階が関連付けられている、同時にアドレス指定可能な複数の副関数参照表に分解することができる。更に、rが増加するにつれてF(r)の値が減少するため、各連続する表の語長を短縮することができる。チップに占める読み出し専用メモリ(ROM)のシリコン領域はビット数、より具体的には格納されている2進の1、先行するゼロ(leading zeros)、および特定の構造を必要としない他のゼロの個数に比例するため、F(r)表の分割により全体のシリコン領域を減らすことができる。
・XMの最小開始値は0より僅かに大きい。
・従ってFa表122からの値はほぼ1である。
・G表120からの最小値は−log2(1−2−8)= 8.53である。
従って、副関数表122に対する最小の引数は9.5である。従って、9.5と24の間でXMの値を提供すれば済むため、大幅に少ないビット数で済む。しかし、8まで下げたXMを提供することにより、2個のMSビットだけに基づいて第1段階を迂回することをより簡単に決定することができる。コンバイナ128は、副関数表122からの部分出力を、これまでの結果と組み合わせる。
この結果を得るには、Xは0.00000000111111111111111でなければならず、X’は少なくとも1.001977となる。従って、FS表232は、原理的に全範囲を扱わねばならないFS表212に比べて、1〜24の範囲の引数だけを扱えばよい。しかし、パイプライン化された対数加算について上で述べた迂回原理を実装することにより、Xの初期値が1以上ならば、パイプラインの第1段階を迂回してXを最初にFS表232へ渡すことができる。従って、FS表212は0≦X<1の範囲だけを扱えばよい。
X’=X+F(XM)+G(XL)
=(XM,XL)+F(XM)+G(XL)
=[XM+F(XM)]+[XL+G(XL)] (33)
=F#(XM)+G#(XL)
ここに、関数F#およびG#は、各々既に組み込まれたXMおよびXLの加算を有する(the addition of XM and XL, respectively, already built in)。X”も同様にX’から計算することができ、以下同様である。このように、パイプライン段階毎に1個の組み合せが除去された。対数加算処理の所望の結果は次式で得られる。
A+Fa(X)+Fa(X’)+Fa(X”)=(AM,AL)+F#(XM)+F#(X’M)+F#(X”M)−(XM+X’M+X” M)
(34)
BM+bをAM−XMで置換すれば、上式はまた次式のように書くことができる。
A+Fa(X)+Fa(X’)+Fa(X”)=(BM+b,AL)+F#(XM)+F#(X’M)+F#(X”M)−(X’M+X” M)
(35)
X’’’が必要でないため、パイプラインの最終段階にF#関数を用いる必要がない。従って、最終段階は、余分のXM”を組み込むことなく、上述の正規のFa関数を使用し、その結果、次式を得る。
A+Fa(X)+Fa(X’)+Fa(X”)=(BM+b,AL)+F#(XM)+F#(X’M)+Fa(X” M)−X’M
(36)
ここに、(X’M,X’L)=X’=F#(XM)+G#(XL)且つ(X”M,X”L)=X”=F#(X’M)+G#(X’L)である。更に、上で指摘したように、X”Lを計算する必要がないため、第2のG表は、G値で最上位部分だけを含んでいればよい。しかし、第2段階の副関数参照表は、対数加算処理の結果に寄与するため、Fa値の最下位(LS)部分を含んでいなければならない。
Claims (55)
- 多段パイプラインにおける第1および第2のオペランドに基づいて対数計算を実行する方法であって、
主参照表に関連付けられた主参照関数を2個以上の副関数に分解するステップと、
各々の副関数に対して副関数参照表をメモリに格納するステップであって、各々の副関数参照表が前記主参照表の一部を含んでいる、ステップと、
前記多段パイプラインの各段階において少なくとも1個の副関数参照表を使用して段階入力に基づいて段階出力を得るステップと、
各段階出力を組み合わせて対数出力を生成するステップとを含む方法。 - 各段階入力が、対応する前記副関数参照表をアドレス指定する、請求項1に記載の方法。
- 前記段階入力が、MS部およびLS部を含んでいて、前記段階入力のMS部が前記副関数参照表をアドレス指定する、請求項1に記載の方法。
- 前記第2オペランドから前記第1オペランドを減算して前記多段パイプラインの第1段階用に段階入力を生成するステップを更に含む、請求項3に記載の方法。
- 先行段階からの段階入力および段階出力に補正値を累算することにより、後続段階への段階入力を生成するステップを更に含む、請求項4に記載の方法。
- 前記メモリに格納された補正表を前記段階入力のLS部によりアドレス指定して前記補正値を生成するステップを更に含む、請求項5に記載の方法。
- 前記対数計算の実行が、第1および第2の値の和または差の対数を決定するステップを含んでいて、前記第1オペランドが前記第1値の対数を表わし、前記第2オペランドが前記第2値の対数を表わす、請求項1に記載の方法。
- 前記段階出力を組み合わせて対数出力を生成するステップが、前記段階出力を前記第1および第2オペランドのうち一方と組み合わせて対数出力を生成するステップを含む、請求項7に記載の方法。
- 前記第1オペランドをMSおよびLS部に分割するステップと、
前記第2オペランドをMSおよびLS部に分割するステップと、
前記第1および第2オペランドのLS部を減算して前記パイプラインの第1段階用の段階入力のLS部を生成するステップと、
前記第1および第2オペランドのMS部を減算して前記パイプラインの第1段階用の段階入力のMS部を生成するステップとを更に含む、請求項1に記載の方法。 - 前記第1および第2オペランドのLS部を減算するステップが更に桁下げ部を生成し、前記第1および第2オペランドのMS部を減算するステップが前記桁下げ部を考慮している、請求項9に記載の方法。
- 先行段階からの段階出力のLS部にLS補正値を累算することにより、後続段階への段階入力のLS部を生成するステップと、
先行段階からの段階出力のMS部にMS補正値を累算することにより、後続段階への段階入力のMS部を生成するステップとを更に含む、請求項9に記載の方法。 - 先行段階から段階出力のLS部にLS補正値を累算するステップが更に桁上げ部を生成し、後続段階への段階入力のMS部を生成するステップが、前記桁上げ部に先行段階からの段階出力のMS部および前記MS補正値を累算するステップを含む、請求項11に記載の方法。
- 変更された補正表を前記段階入力のLS部でアドレス指定して前記MS補正値およびLS補正値を生成するステップを更に含む、請求項11に記載の方法。
- 各々の副関数を実行するステップが、対応する副関数参照表または変更された副関数参照表を前記段階入力のMS部でアドレス指定して前記段階出力のMS部および前記段階出力のLS部を生成するステップを含む、請求項11に記載の方法。
- 前記段階出力を組み合わせて対数出力を生成するステップが、
段階出力のLS部を前記第2オペランドのLS部と組み合わせて前記出力のLS部を生成するステップと、
段階出力のMS部を前記第1オペランドのMS部と組み合わせて前記出力のMS部を生成するステップと、
前記出力のMSおよびLS部を結合して対数出力を生成するステップとを含む、請求項14に記載の方法。 - 前記段階出力を組み合わせるステップが、前記第1オペランドのMS部を前記桁下げ部を考慮している少なくとも1個の段階出力のMS部と組み合わせるステップを含む、請求項15に記載の方法。
- 前記段階出力のLS部を前記第2オペランドのLS部と組み合わせるステップが更に桁上げ部を生成し、前記段階出力のMS部を前記第1オペランドのMS部と組み合わせるステップが、前記段階出力のMS部を前記桁上げ部と組み合わせるステップを含む、請求項15に記載の方法。
- 前記段階入力が所定の値を超えた場合に段階を迂回するステップを更に含む、請求項1に記載の方法。
- 段階を迂回するステップが、迂回された段階についてゼロに等しい段階出力を生成し、前記迂回された段階への段階入力を後続段階の段階入力として用いるステップを含む、請求項18に記載の方法。
- 各段への段階入力をMSおよびLS部に分割するステップを更に含む、請求項1に記載の方法。
- 前記段階入力のMSおよびLS部が、異なる段階において異なるサイズを有している、請求項20に記載の方法。
- 少なくとも1個の副関数参照表のサイズが、段階入力値の予想範囲に基づいている、請求項1に記載の方法。
- 前記格納された参照表は、語長が少なくとも2個の連続する段階で減少する、請求項1に記載の方法。
- 1個以上の副関数参照表が異なるサイズを有している、請求項1に記載の方法。
- 各段階からの前記副関数参照表をまとめると前記主参照表に等しい、請求項1に記載の方法。
- 第1および第2のオペランドに基づいて対数計算を実行する対数ALUであって、
パイプラインの各々の段階が、主関数を分解した各副関数を実行して段階出力を生成する多段パイプラインと、
各々の副関数に対する副関数参照表を格納するメモリであって、各々の副関数参照表が前記主関数に関連する前記主参照表の一部を含んでいる、メモリと、
前記パイプラインの各段階により生成された段階出力に基づいて対数出力を生成する少なくとも1個のコンバイナとを含むALU。 - 各段階入力が、対応する副関数参照表をアドレス指定する、請求項26に記載の対数ALU。
- 各段階入力が、MS部およびLS部を含んでいて、各段階入力のMS部が前記対応副関数参照表をアドレス指定する、請求項27に記載の対数ALU。
- 前記第2オペランドから第1オペランドを減算して前記第1段階への段階入力を生成する減算器を更に含む、請求項28に記載の対数ALU。
- 前記多段パイプラインの少なくとも1個の段階が、先行段階からの段階入力および段階出力を先行段階からの補正値と組み合わせて後続段階への段階入力を生成する段階コンバイナを含む、請求項29に記載の対数ALU。
- 前記メモリが更に補正表を格納し、前記段階入力のLS部が前記補正表をアドレス指定して対応する段階の補正値を生成する、請求項30記載の対数ALU。
- 前記ALUが、第1および第2の値の和または差の対数を決定することにより対数計算を実行し、前記第1オペランドが前記第1値の対数を表わし、前記第2オペランドが前記第2値の対数を表わす、請求項26に記載の対数ALU。
- 前記出力コンバイナが、前記第2オペランドに前記段階出力を累算して対数出力を生成する2個以上のアキュムレータを含む、請求項32に記載の対数ALU。
- 前記第1および第2オペランドのLS部を減算して前記第1段階への段階入力のLS部を生成し、前記第1および第2オペランドのMS部を減算して前記第1段階への段階入力のMS部を生成する減算器を更に含む、請求項26に記載の対数ALU。
- 前記減算器が更に、前記第1および第2オペランドのLS部の減算に基づいて桁下げ部を生成し、前記減算器が更に、前記第1および第2オペランドのMS部を減算して前記第1段階への段階入力のMS部を生成する際に前記桁下げ部を考慮に入れる、請求項34に記載の対数ALU。
- 前記多段パイプラインの少なくとも1段階が、
先行段階からの段階出力のLS部にLS補正値を累算して後続段階への段階入力のLS部を生成するLS段階コンバイナと、
先行段階からの段階出力のMS部にMS補正値を累算して後続段階への段階入力のMS部を生成するMS段階コンバイナとを含む、請求項35に記載の対数ALU。 - 前記LS段階コンバイナが更に、先行段階からの段階出力のLS部へのLS補正値の累算に基づいて桁上げ部を生成し、前記MS段階コンバイナが前記桁上げ部に先行段階からの段階出力のMS部および前記MS補正値を累算して後続段階入力のMS部を生成する、請求項36に記載の対数ALU。
- 前記メモリが更に、前記パイプラインの少なくとも1段階用に、変更された補正表を格納し、前記段階入力のLS部が前記補正表をアドレス指定して前記補正値を生成する、請求項37に記載の対数ALU。
- 前記メモリに格納された少なくとも1個の副関数参照表が、変更された副関数参照表を含む、請求項37に記載の対数ALU。
- 前記段階入力のMS部が、前記副関数参照表または変更された副関数参照表をアドレス指定して、前記段階出力のMS部および前記段階出力のLS部を生成する、請求項39に記載の対数ALU。
- 少なくとも1個の出力コンバイナが、
前記段階出力のLS部を前記第2オペランドのLS部と組み合わせて前記対数出力のLS部を生成するLSコンバイナと、
前記段階出力のMS部を前記第1オペランドのMS部と組み合わせて前記対数出力のMS部を生成するMSコンバイナとを含む、請求項40に記載の対数ALU。 - 前記MSコンバイナが、前記桁下げ部を考慮に入れながら、前記第1オペランドのMS部を段階出力のMS部と組み合わせる、請求項41に記載の対数ALU。
- 前記LSコンバイナが更に、前記段階出力のLS部と前記対数出力のLS部の組合せに基づいて桁上げ部を生成し、MSコンバイナが更に、前記段階出力のMS部を前記第1オペランドのMS部および前記桁上げ部と組み合わせて前記対数出力のMS部を生成すべく構成されている、請求項41に記載の対数ALU。
- 各々の副関数参照表の語長が、少なくとも2個の連続する段階で減少する、請求項26に記載の対数ALU。
- 前記段階入力がMS部およびLS部を含んでいて、前記MSおよびLS部が異なる段階において異なるサイズを有し得る、請求項26に記載の対数ALU。
- 少なくとも1個の副関数参照表のサイズが、予想される段階入力値の範囲に基づいている、請求項26に記載の対数ALU。
- 1個以上の副関数参照表が異なるサイズを有している、請求項26に記載の対数ALU。
- 各段階からの前記副関数参照表をまとめると前記主参照表に等しい、請求項26に記載の対数ALU。
- 多段パイプラインにおいて対数計算を実行する方法であって、
前記多段パイプラインの各段階に対する副関数参照表を格納するステップであって、前記副関数参照表が主関数表の一部を含んでいる、ステップと、
対応する副関数参照表および段階入力を用いて、少なくとも1段階に対する段階出力を計算するステップと、
各段階出力を組み合わせて対数出力を生成するステップとを含む方法。 - 各段階への段階入力をMSおよびLS部に分割するステップを更に含む、請求項49に記載の方法。
- 前記段階入力の前記MSおよびLS部が異なる段階において異なるサイズを有し得る、請求項50に記載の方法。
- 前記段階入力が所定の値を超えた場合、段階を迂回するステップを更に含む、請求項49に記載の方法。
- 少なくとも1個の副関数参照表のサイズが、予想される前記段階入力値の範囲に基づいている、請求項49に記載の方法。
- 1個以上の副関数参照表が異なるサイズを有している、請求項49に記載の方法。
- 対数形式の数に対して演算を実行するALUであって、対数関数に関連付けられた参照表を格納するメモリを含み、前記参照表が、アドレス範囲により少なくとも2個の同時にアドレス指定可能な副表に分割されていて、前記ALUが、前記副表のうち少なくとも1個をアドレス指定する入力に基づいて、前記参照表を使用して対数加算および対数減算処理のうち少なくとも一つを行なうALU。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US57738604P | 2004-06-04 | 2004-06-04 | |
US64325905P | 2005-01-12 | 2005-01-12 | |
US11/142,485 US7711764B2 (en) | 2004-06-04 | 2005-06-01 | Pipelined real or complex ALU |
PCT/EP2005/005911 WO2005119427A2 (en) | 2004-06-04 | 2005-06-02 | Pipelined real or complex alu |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008502036A true JP2008502036A (ja) | 2008-01-24 |
Family
ID=35450231
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007513850A Pending JP2008502036A (ja) | 2004-06-04 | 2005-06-02 | パイプライン化された実数または複素数alu |
Country Status (4)
Country | Link |
---|---|
US (1) | US7711764B2 (ja) |
EP (1) | EP1766508A2 (ja) |
JP (1) | JP2008502036A (ja) |
WO (1) | WO2005119427A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3118737A1 (en) | 2015-07-16 | 2017-01-18 | Fujitsu Limited | Arithmetic processing device and method of controlling arithmetic processing device |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7945765B2 (en) * | 2008-01-31 | 2011-05-17 | International Business Machines Corporation | Method and structure for asynchronous skip-ahead in synchronous pipelines |
US20120188406A1 (en) * | 2011-01-20 | 2012-07-26 | Apple Inc. | Reduced power consumption filter |
US9753695B2 (en) | 2012-09-04 | 2017-09-05 | Analog Devices Global | Datapath circuit for digital signal processors |
US9329936B2 (en) | 2012-12-31 | 2016-05-03 | Intel Corporation | Redundant execution for reliability in a super FMA ALU |
US9779272B2 (en) * | 2015-04-14 | 2017-10-03 | Analog Devices, Inc. | Extended use of logarithm and exponent instructions |
GB2581507B (en) * | 2019-02-21 | 2022-10-19 | Xmos Ltd | Logarithmic number system |
US12039330B1 (en) * | 2021-09-14 | 2024-07-16 | Amazon Technologies, Inc. | Programmable vector engine for efficient beam search |
CN116070556A (zh) * | 2021-11-01 | 2023-05-05 | 华为技术有限公司 | 一种多级查找表电路、函数求解方法及相关设备 |
US12008368B2 (en) | 2022-09-21 | 2024-06-11 | Amazon Technologies, Inc. | Programmable compute engine having transpose operations |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6334623A (ja) * | 1986-07-29 | 1988-02-15 | Mitsubishi Electric Corp | ルツクアツプテ−ブル |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US577386A (en) | 1897-02-16 | Sylvester s | ||
US4727508A (en) * | 1984-12-14 | 1988-02-23 | Motorola, Inc. | Circuit for adding and/or subtracting numbers in logarithmic representation |
US4626825A (en) | 1985-07-02 | 1986-12-02 | Vlsi Technology, Inc. | Logarithmic conversion apparatus |
US4737925A (en) * | 1985-12-06 | 1988-04-12 | Motorola, Inc. | Method and apparatus for minimizing a memory table for use with nonlinear monotonic arithmetic functions |
US5337266A (en) * | 1987-12-21 | 1994-08-09 | Arnold Mark G | Method and apparatus for fast logarithmic addition and subtraction |
SE463540B (sv) | 1988-09-19 | 1990-12-03 | Ericsson Telefon Ab L M | Saett foer att i ett radiokommunikationssystem digitalisera godtyckliga radiosignaler samt anordning foer utoevande av saettet |
SE463584B (sv) | 1989-04-20 | 1990-12-10 | Ericsson Telefon Ab L M | Saett och anordning foer noggrann digital maetning av tids- eller faslaeget i ett signalpulstaag |
US5070303A (en) | 1990-08-21 | 1991-12-03 | Telefonaktiebolaget L M Ericsson | Logarithmic amplifier/detector delay compensation |
US5944774A (en) | 1997-09-26 | 1999-08-31 | Ericsson Inc. | Methods apparatus and computer program products for accumulating logarithmic values |
US6711596B1 (en) | 1999-05-14 | 2004-03-23 | University Of Newcastle Upon Tyne | Method and apparatus for determining the approximate valve of a logarithmic function |
-
2005
- 2005-06-01 US US11/142,485 patent/US7711764B2/en active Active
- 2005-06-02 EP EP05768648A patent/EP1766508A2/en not_active Ceased
- 2005-06-02 WO PCT/EP2005/005911 patent/WO2005119427A2/en active Application Filing
- 2005-06-02 JP JP2007513850A patent/JP2008502036A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6334623A (ja) * | 1986-07-29 | 1988-02-15 | Mitsubishi Electric Corp | ルツクアツプテ−ブル |
Non-Patent Citations (1)
Title |
---|
JPN6010024984, CHICHYANG CHEN, "Pipelined computation of LNS addition/subtraction with very small lookup tables", Computer Design: VLSI in Computers and Processors, 1998. ICCD ’98. Proceedings., 19981005, p.292−297, US, IEEE COMPUT.SOC * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3118737A1 (en) | 2015-07-16 | 2017-01-18 | Fujitsu Limited | Arithmetic processing device and method of controlling arithmetic processing device |
US10037188B2 (en) | 2015-07-16 | 2018-07-31 | Fujitsu Limited | Arithmetic processing device and method of controlling arithmetic processing device |
Also Published As
Publication number | Publication date |
---|---|
US7711764B2 (en) | 2010-05-04 |
WO2005119427A3 (en) | 2006-06-29 |
WO2005119427A2 (en) | 2005-12-15 |
US20050273481A1 (en) | 2005-12-08 |
EP1766508A2 (en) | 2007-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008502036A (ja) | パイプライン化された実数または複素数alu | |
US7689639B2 (en) | Complex logarithmic ALU | |
JP6694880B2 (ja) | 有効度整合 | |
JP5175379B2 (ja) | 選択可能な下位精度を有する浮動小数点プロセッサ | |
US7395304B2 (en) | Method and apparatus for performing single-cycle addition or subtraction and comparison in redundant form arithmetic | |
US20160004508A1 (en) | Subdivision of a fused compound arithmetic operation | |
JPH1078863A (ja) | 浮動小数点式ハードウェアを用いたマイクロプロセッサ整数除法演算を実行するための方法および装置 | |
US6108682A (en) | Division and/or square root calculating circuit | |
JPH0749772A (ja) | 除算及び開平算に関して修正ニュートン−ラプソン技術を用いる浮動小数点演算装置 | |
TW200907793A (en) | Exponent processing systems and related methods | |
JPH11288411A (ja) | 基本関数の高精度推定 | |
JP2012089144A (ja) | ブース乗算方法及びシステムのための電力効率の良い符号拡張 | |
US10101970B2 (en) | Efficient modulo calculation | |
US6941334B2 (en) | Higher precision divide and square root approximations | |
KR100433131B1 (ko) | 작은 사이즈의 룩업 테이블을 갖는 파이프라인 나눗셈연산기 및 연산방법 | |
JP3598096B2 (ja) | ニュートンラフソン法を用いた演算方式 | |
JP2003271056A (ja) | 剰余演算器 | |
CN115562622A (zh) | 平方根处理电路系统和方法 | |
Schulte et al. | Floating-point division algorithms for an x86 microprocessor with a rectangular multiplier | |
Jaiswal et al. | Taylor series based architecture for quadruple precision floating point division | |
Wires et al. | Reciprocal and reciprocal square root units with operand modification and multiplication | |
Bruguera | Radix-64 floating-point division and square root: Iterative and pipelined units | |
Hsiao et al. | Multi-Precision Table-Addition Designs for Computing Nonlinear Functions in Deep Neural Networks | |
Kumm et al. | Reduced complexity single and multiple constant multiplication in floating point precision | |
AU2020424575B2 (en) | Secure square root computation system, secure normalization system, methods therefor, secure computation apparatus, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080502 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100507 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100806 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100813 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100907 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100914 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101007 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110506 |