JPWO2002029546A1 - 演算器及びそれを用いた電子回路装置 - Google Patents
演算器及びそれを用いた電子回路装置 Download PDFInfo
- Publication number
- JPWO2002029546A1 JPWO2002029546A1 JP2002533053A JP2002533053A JPWO2002029546A1 JP WO2002029546 A1 JPWO2002029546 A1 JP WO2002029546A1 JP 2002533053 A JP2002533053 A JP 2002533053A JP 2002533053 A JP2002533053 A JP 2002533053A JP WO2002029546 A1 JPWO2002029546 A1 JP WO2002029546A1
- Authority
- JP
- Japan
- Prior art keywords
- carry
- quotient
- partial remainder
- quotient digit
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 description 38
- 238000004364 calculation method Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 6
- 239000004065 semiconductor Substances 0.000 description 4
- 239000000758 substrate Substances 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 244000208734 Pisonia aculeata Species 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009466 transformation 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
- 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
- G06F7/537—Reduction of the number of iteration steps or stages, e.g. using the Sweeny-Robertson-Tocher [SRT] algorithm
- G06F7/5375—Non restoring calculation, where each digit is either negative, zero or positive, e.g. SRT
-
- 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/552—Powers or roots, e.g. Pythagorean sums
- G06F7/5525—Roots or inverse roots of single operands
-
- 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/382—Reconfigurable for different fixed word lengths
-
- 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/552—Indexing scheme relating to groups G06F7/552 - G06F7/5525
- G06F2207/5526—Roots or inverse roots of single operands
- G06F2207/5528—Non-restoring calculation, where each result digit is either negative, zero or positive, e.g. SRT
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/487—Multiplying; Dividing
- G06F7/4873—Dividing
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
Description
本発明は演算器、特に倍精度のbit幅を有するSRT法を用いた浮動小数点演算器、及びそれを用いた電子回路装置に関する。
背景技術
一般に、除算は机上の筆算と同様に繰返し型で演算が行われる。繰返し型の除算は引戻し法、引放し法、SRT法に大別される。演算原理は共通であるが、商デジットの冗長性を利用することにより、この順に高速性に向く方式となっている。なお、その他の除算方式、として収束法があるが説明を省略する。
まず、引戻し法について説明する。被除数を部分剰余とし、部分剰余から除数を減算し、その結果が正または0のときは商デジットを1とする。そして、負のときは商デジットを0として減算した除数を再び加算することで元の値に戻す(これを引戻しという)。そして、左シフトして部分剰余を2倍し、次の商デジットを求めることを繰り返す。筆算の10倍が、1bit左シフトの2倍に相当する。この引戻し法は部分剰余が負のときは常に除数を加算して引戻す必要があるので、高速除算には限界がある。
これに対し、商デジットを−1又は1として商デジットに負値を設けることで、部分剰余の引戻しによる補正をなくしたのが引放し法である。商デジットには−1を含むので、0、1のみの商を生成するための商生成回路が必要となる。この引放し法は前記引戻し法と同様に、部分剰余と除数の減算結果により商デジットを判定するため、部分剰余、除数のbit幅が大きい場合には高速化処理は困難である。この引放し法については、後述するように例えば特開平4−172526「浮動小数点除算器」に記載されている。
一方、SRT法は商デジットとして−1、0又は1をとり、除数、被除数を正規化することで、部分剰余の上位数bitで高速に商デジットを判定できる方法である。このSRT法による演算方法については、特開平6−290030「除算装置」、特開平9−69040「推測的演算を有する3つのオーバラップしたステージにより基数2の平方根演算/除算を行う回路」、特開平9−91270「演算器」、及び本願発明者等による特開平10−187420「除算・開平演算器」に記載されている。
一方、使用しない倍精度bit幅の演算器の下位bitにおいて単精度演算を可能とし単精度演算の性能を二倍とする方法として、前記した引放し法に関する特開平4−172526に倍精度の浮動小数点除算器に小規模の回路を追加し、単精度の浮動小数点除算を2つ並列に処理する演算器が示されている。加減算器は、上位と下位でそれぞれの単精度演算を行うため分割されている。また、部分剰余は上位と下位のそれぞれの符号により、除数との加減算が選択される。倍精度時は、下位側にも上位側の符号が選択されることと下位側から上位側へキャリーを伝搬させることにより倍精度幅の演算器と同じ結果が得られるようにしている。
しかしながら、この特開平4−172526には単精度の並列実行を行うために極めて有効な倍精度幅の浮動小数点除算器が示されてはいるが、更に演算方法に改善の余地がある。
即ち、部分剰余計算には回路の構成上引放し法が用いられており、部分剰余の符号により部分剰余の正負を判定し除数との加減算を決定するが、部分剰余の符号による部分剰余の正負判定には、部分剰余を全bitにわたって桁上げ伝搬させる必要があり、処理時間が多くかかり高速処理が難しいという問題点がある。更にまたこの特開平4−172526には開平演算を高速に実行する手法については開示されていない。
本発明の目的は、高速な除算器、開平演算器等の演算器、及びそれを用いた電子回路装置を提供することである。
本発明の具体的な目的は、単精度1演算、単精度2演算、倍精度演算の可能な高速な演算器及びそれを用いた電子回路装置を提供することである。
本発明の更に具体的な目的は、高精度で高速なSRT演算器、特に倍精度のbit幅を有するSRT法を用いた浮動小数点除算器及び開平演算器等の演算器、及びそれを用いた電子回路装置を提供することである。
発明の開示
倍精度のbit幅を有する高速の浮動小数点除算器及び開平演算器を説明する前に、ここで本発明に係わるSRT法のアルゴリズム等について若干説明する。
SRT除算は部分剰余の上位桁数bitから商デジットを選択し、選択された商デジットに従って、部分剰余から除数を減算し、新たな部分剰余を得るループを繰り返しながら演算が進められる。
次に、SRT除算方式を本発明者等が独自にSRT除算の仮数部ループ部の機能及びその構成に着目して理解しやすく整理すると第2図のように表わすことができる。
まず部分剰余に被除数Xが代入される。繰り返しループの回数をステップ数で表すことにすると、iステップ目の部分剰余は桁上げ保存形式で表され、sum、carryをそれぞれPRSi、PRCiと表記することにする。部分剰余の上位桁は、桁上げ伝搬加算器(CPA:Carry Propagation Adder)201にて桁上げ伝搬を行なう。この桁上げ伝搬された部分剰余を入力として、商デジット選択回路202によって商デジットが選択される。商デジットは−1、0、1のいずれかで、部分剰余は選択された商デジットの値に応じて除数Dとの部分剰余計算を行なう。この部分剰余の計算は、桁上げ保存加算器(CSA:Carry Save Adder)205にて桁上げ保存形式にて実行される。部分剰余は商デジットの選択のために上位数bitのみ桁上げ伝搬しておけばよいので、下位bitは高速化のために桁上げ保存形式とする。商デジットが−1、1のときは、それぞれ部分剰余と除数Dとの加算、減算を行い、その結果をシフタ206によって1bit左シフトして次ステップの部分剰余PRSi+1、PRCi+1とする。また、商デジットが0のときは、部分剰余と0との加算を行い、その結果を1bit左シフトして次ステップの部分剰余とする。上記動作を繰り返すとともに、並行して商デジット値−1を含まない商への変換、すなわち商計算が商生成回路203にて行われ、商Qを出力することで商が求められる。
また、開平演算については、除数Dの代りに部分開平値を用いて部分剰余計算が行われる。SRT開平回路は部分開平値を求める回路を付加すればSRT除算回路と共通化できる。なお、開平演算の商デジット選択回路202で求められる開平値デジットはここでは除算と同じく商デジットと呼ぶことにする。
ここで、桁上げ保存加算器CSA205と商生成回路203を倍精度bit幅とすることにより、単精度、倍精度どちらも演算できる。単精度の除算、開平演算においては、倍精度の桁上げ保存加算器CSA、商生成回路の下位bitは全て0とすることにより実現される。
以上が本発明で用いられるSRT法の基本的なアルゴリズムである。
本発明は、高速除算器に広く用いられているSRT法のアルゴリズムを前記したように、部分剰余の全bit桁上げ伝搬をさせずに、除数との加減算の判定に最小限必要なbit幅(通常3〜4bit)だけ桁上げ伝搬し、残りのbitは高速化のために桁上げ保存形式で演算する方法として捉えることによってはじめてなされたものであり、倍精度bit幅の演算器の下位bitを単精度演算することを可能とし、倍精度bit幅で単精度の2命令並列実行をも可能としたSRT除算演算器及び又はSRT開平演算器を提供するものである。
本願において開示される発明のうち、代表的なものの概要を説明すれば次の通りである。
本発明に係わる演算器は、被除数又はその部分剰余及び除数が入力される入力部、上記被除数又は部分剰余の上位側と下位側を選択するセレクタ、上記セレクトされた上位側と下位側の上記被除数又は部分剰余部の桁上げを行う桁上げ伝搬手段(CPA)、上記桁上げ伝搬手段出力を入力とする商デジット選択手段、上記商デジットを入力とし商を生成する商生成手段、及び上記商デジット選択手段により得られた商デジットの値に応じて上記被除数又は部分剰余部と上記除数との加減算を行う桁上げ保存加算手段(CSA)を有し、上記桁上げ保存加算手段の出力を所定ビットシフトして新しい被除数又は部分剰余として上記入力部に再び入力してこの一連の動作を繰り返すことによって所望の演算が実行される。
本発明に係わる被除数の開平値を演算する開平演算器では、上記被除数又はその部分剰余が入力される入力部、上記被除数又は部分剰余の上位側と下位側を選択するセレクタ、上記セレクトされた上位側と下位側の上記被除数又は部分剰余部の桁上げを行う桁上げ伝搬手段、上記桁上げ伝搬手段の出力を入力とする商デジット選択手段、上記商デジットを入力とし開平値を生成する商生成手段、上記商デジットを入力とし部分開平値を生成する部分開平値生成手段、及び上記商デジット選択手段により得られた上記商デジットの値に応じて上記除数又は上記部分開平値と上記部分剰余との加減演算を行いその結果を桁上げ保存する桁上げ保存加算手段とを有し、上記桁上げ保存加算手段の出力を所定ビットシフトしそれを新しい被除数又は部分剰余として上記入力部に再び入力しこの一連の動作を繰り返すことによって上記被除数の開平値が演算される。
更に本発明に係わる除算器は、部分剰余の上位桁から第1商デジットを選択し、上記選択された第1商デジットに従って上記部分剰余から除数を減算し、新たな第1部分剰余を得るループを繰り返しながら演算が進められるSRT除算器に、上記第1商デジットとは別に上記上位桁又は下位桁から第2商デジットを選択し、上記選択された第2商デジットに従って上記部分剰余から上記除数を減算して新たな第2部分剰余を得る機能を付加し、得られた上記第2部分剰余を上記第1部分剰余にマージして上記ループを繰り返しながら演算し、倍精度演算、単精度演算及び単精度複数並列演算を実行可能にしたものである。
また、本発明によれば上記した単精度1演算、単精度2演算、倍精度演算での除算及び又は開平演算の可能な高速な演算器が実質的に同じ回路構成で実現できるので、1枚の半導体基板への電子回路システムの高集積化に適している。そのような電子回路装置においてはそのユーザが上記演算器の動作モードを任意に指定できることが必要であり、例えばマイクロプロセッサにおいては、命令キャッシュ及びデータキャッシュとバスを介して結合されたCPU及び浮動小数点演算ユニットとを有し、上記浮動小数点演算ユニットは相互に結合されたロードストアユニット、レジスタファイル、積和演算器、及び倍精度演算、単精度演算及び単精度複数並列演算の複数の動作モードを実行可能な除算器とからなり、上記レジスタファイルは上記演算器の上記動作モードを外部からユーザが指定できるようにするために上記動作モードの内倍精度演算と単精度複数並列演算との同時実行を禁止した浮動小数点演算ステータスレジスタを有しそれによって上記除算器の上記動作モードが設定されるようにされている。
発明を実施するための最良の形態
本発明では、データは浮動小数点データとし、仮数部の演算に関して以下のSRT除算アルゴリズム及び又はSRT開平演算のアルゴリズムに従って動作する。
除算と開平演算の部分剰余は次式のように表される。開平演算は除算における除数Dを部分開平値であるQ1+qi+1×2−(i+2)で置き換えることにより除算と同様の演算となり、回路の共通化が行える。開平演算の部分開平値は除算の除数Dに相当し、開平値Qiと区別して扱う。次の数式での×2乗算は左1bitシフトにより行う。
除算 : Ri+1=2(Ri―qiD)
開平演算: Ri+1=2{Ri−qi+1(Qi+qi+12−(i+2)
)}
商又は開平値: Qi =q0.q1q2q3q4…qi
但し、iステップにおいて、qiは商デジット(−1,0,1)、Riは部分剰余、Dは除数、Qi+qi+12−(i+2)は部分開平値、Qiは商又は開平値をそれぞれ意味している。
SRT法では、部分剰余は上位数bitのみ桁上げ伝搬が行われ、部分剰余の上位数桁から商デジットが選択される。上記式により各ステップで部分剰余と商デジットが求まっていく。全ステップが終了すると、商又は開平値(以下、商/開平値と記されることがある)が得られる。
商デジットには−1を含むので、商、開平値、部分開平値は−1を含まない0,1のみの数に変換する(即ち、冗長な商デジットを非冗長な商デジットの商又は開平値に変換する)必要があるが、演算終了後に変換するのではなく、商デジットが求まる度に商生成回路にてOn−the−Flyで変換する。このOn−the−Fly変換とは特開平10−187420にも記載されているように、Qi(positive)とQi−2−i(negative)の二進表現を保持しておき商デジット−1を桁上げ伝搬せずに変換させる方式である。
なお、開平演算では部分開平回路にてOn−the−Flyで変換された部分開平値を用いて部分剰余を求める点が、除数を用いる除算と異なっている。
初期値はi=0のときR0=X(被除数又は被開平値)、q0=1(除算)、q0=0、q1=1(開平)である。除算では被除数Xは[1/2、1)除数Dは[1/2、1)と正規化されている。開平演算では被開平値Xは[1/4、1)とする。開平値は指数部が偶数となるよう仮数部を1bit右シフトして調整する。なお、[1/2、1)は1/2以上で1未満を表わす記号表現であり、他も同様である。
第2図は、iステップのSRT除算を表わしている。iステップの部分剰余のsum、carryをそれぞれPRSi、PRCiとすると、桁上げ伝搬手段CPA201にて桁上げ伝搬した部分剰余の上位桁を入力とし、商デジット選択回路202にて商デジットqi+1を選択し、選択された商デジットで除数+D、0、−Dを除数セレクタ204で選択し、選択された除数と部分剰余との加減算を桁上げ保存加算手段CSA205にて行い、1bitシフタ206で左1bitシフト後、結果PRSi+1、PRCi+1を得る。桁上げ保存加算手段CSAのキャリー入力信号207は、商デジットqi+1=−1のとき1となる信号である。また同時に商デジットの−1を含まない商Qi+1を商生成回路203にて求める。入力データが単精度、倍精度に関わらず、上位桁の桁上げ伝搬加算器CPA、商デジット選択回路は共通であり、桁上げ保存加算手段CSAと商生成回路が倍精度bit幅の演算器であれば、倍精度演算が可能である。しかしながら、倍精度bit幅の演算器で単精度演算を行うときは、桁上げ保存加算手段CSAと商生成回路の下位bitは0が入力されるが、演算器が効率的に使用されているとはいえない。
実施例1
そこで、SRT法において倍精度bit幅の演算器で上位と下位で単精度除算を高速に並行して実行する機能を有する本発明に係わる第一の実施例を第1図に示す。
倍精度bit幅の演算器の上位側をupper、下位側をlowerと便宜上呼ぶことにする。lower側の部分剰余上位桁用の桁上げ伝搬手段CPA107、商デジット選択回路108、除数セレクタ109を第2図に新たに追加して設ける。upperとlower側のデータセレクタ106では、選択信号sel1(110)において単精度1演算と倍精度演算ではupper側を選択し、単精度2演算の並列実行ではlower側を選択する。
本発明に係わるこの第1図で実行される倍精度の演算方法は次の通りである。
upperとlower側のデータセレクタ106においてupper側が選択され、桁上げ伝搬手段CPA107には桁上げ伝搬手段CPA101と同じ部分剰余が与えられるため、2つの商デジット選択回路102、108から同じ商デジットが選択される。商デジットに従い除数セレクタ104、109で除数を選択し、部分剰余との加減算を桁上げ保存加算手段CSA105、114にて行う。
上位側キャリー入力信号111は上位側の単精度演算のキャリー入力であるため、倍精度演算時は無効化される。下位側キャリー入力信号112は下位側の単精度演算または倍精度演算のキャリー入力であるため、q=−1のとき部分剰余と除数との減算を行うよう下位側キャリー入力信号は有効となり、キャリーが入力される。上位側の桁上げ保存加算手段CSA105と下位側の桁上げ保存加算手段CSA114間でキャリーの桁上げを行うため、キャリーセレクタ113は下位側の桁上げ保存加算手段CSA114のキャリー出力を選択する。
演算結果の部分剰余は1bitシフタ115にて左1bitシフトを行い、次ステップの部分剰余PRSi+1、PRCi+1を得る。
このように、倍精度では同じ商デジットが選択され、該商デジットは倍精度幅の除数を選択するため負荷が大きいが、商選択回路が2つになることによりそのドライブ能力(パワー)が増強され、回路が高速化されるという利点がある。
また、第1図の構成で単精度1演算を行う場合には、被除数を初期部分剰余とするとき倍精度幅の残りのbitを0にしておくことを除けば、上記と同様の方法で演算することができる。また別の方法として倍精度のキャリー入力112の代わりに上位側キャリー入力111を与えて桁上げ保存加算器のキャリー伝搬を制御するセレクタsel4(113)で0側を選択することによっても演算することができる。どちらの場合もupperとlower側のデータセレクタ106はupper側を選択する。
次に、第1図の構成で単精度の2演算を並列実行する方法について説明する。
upperとlower側のデータセレクタ106はlower側が選択されるため、2つの商デジット選択回路102、108からはそれぞれ上位側qui+1、下位側qli+1の商デジットが選択される。商デジットに従い除数セレクタ104、109で除数を選択し、部分剰余との加減算を桁上げ保存加算手段CSA105、114にて行う。
上位側キャリーに入力信号111は上位側の単精度演算のキャリー入力であるため、上位側商デジットqui+1=−1のとき部分剰余と除数との減算を行うよう上位側キャリー入力信号は有効となる。
下位側キャリー入力信号112は下位側の商デジットqli+1=−1のとき部分剰余と除数との減算を行うよう下位側キャリー入力信号は有効となり、キャリーが入力される。
上位側の桁上げ保存加算手段CSA105と下位側の桁上げ保存加算手段CSA114間でキャリーの伝搬を行わないため、キャリーセレクタ113は0を選択し、上位側の桁上げ保存加算手段CSA105のキャリー入力とする。
演算結果の部分剰余は1bitシフタ115にて左1bitシフトを行い、次ステップの部分剰余PRSi+1、PRCi+1を得る。同時に商生成回路103にて商デジット−1を含まない商へ商デジットが求まる度に逐次変換する。
商生成回路103はbit幅を変えることなく、演算器の前段にセレクタを追加することにより単精度2演算の並列実行を実現できる。
次に、本発明に係わる商生成回路のアルゴリズム及び商生成回路の構成を第3図に示す。
第3図の(a)にpositive値Mi、negative値Niを用いた商生成回路のアルゴリズムを示す。商Qiはpositive値であり、negative値はpositive−2−iである。商デジットが求まる度に逐次Mi、Niを求めていく。演算のbit位置のposition値Piは、第3図の(b)にPi及びPi+1で例示した通り、i番目のbit位置のみ1で他のbitは0となるデータで、2−iとして使用される。第3図の(c)に倍精度または単精度1演算用の商選択回路の構成を示す。右1bitシフタ301はPi+1=2−(i+1)の生成に使用される。OR回路302、303はそれぞれMi−1+2−i、Ni−1+2−iの計算を実行する。セレクタ304、305にて商デジットqiに従って、Mi、Niが決定される。
第3図の商生成回路のアルゴリズムを用いた商生成の例を次に示す。
q0=0、q1=1、q2=0、q3=1、q4=1
Q1=M1 0.1 、N1 0.0
Q2=M2 0.10 、N2 0.01
Q3=M3 0.101 、N3 0.100
Q4=M4 0.1001 、N4 0.1000
即ち、商デジットを順にq0=0、q1=1、q2=0、q3=1、q4=−1とし、q0とq1の間に小数点があると仮定した。Mi=Qiであり、Ni,はMi−2−iとなっている。Mi、Niを常に保持しておくことで、商生成に桁上げ伝搬が不要となる。本論理は後に述べる開平演算の部分開平値計算にも用いられる。部分開平値は商デジットを求める際に必要であることから、桁上げ伝搬が不要なことは商デジットを高速に演算する点で効果がある。
第4図に基づいて本発明に係わる商生成回路を用いた商生成の例を説明する。
第4図は単精度2演算の並列実行が可能な商生成回路を示している。Position上位側には、単精度、倍精度の開始時とそれ以外の場合のセレクタ501、Position下位側には単精度下位側の開始時とそれ以外の場合のセレクタ502があり、演算中のbit位置を2演算同時に示すことができる。
上位側の商選択回路503と下位側の商選択回路504にはそれぞれPositive Mi−1、Negative Ni−1の上位側と下位側が入力され、出力結果はマージされる。上位側のPositionの右シフトアウトデータ505は下位側の商選択回路504に接続され、下位側の右シフタのシフトインデータとなる。下位側の商選択回路504には、シフトイン信号用に0と上位側からのシフトインデータを選択するセレクタを追加しておけばよい。
以上の説明から理解されるように、本発明に係わる第一の実施例によって倍精度、単精度、単精度2演算並列の演算が切り替えられてそれぞれ高速に実行される。
実施例2
次に、第5図を用いて倍精度bit幅の演算器で上位と下位で単精度除算を並行して実行する機能を有する本発明に係わる第二の実施例を説明する。
上記第一の実施例との相違点は、upperとlower側のデータセレクタ610が商選択回路出力の商デジットを入力としている点である。上記第一の実施例では部分剰余が入力である。第一の実施例と第二の実施例では、単精度1演算及び倍精度演算において、upper側とlower側のデータセレクタの位置が違うため除数の選択方法が異なる。
即ち、上記第一の実施例では上位側と下位側の除数セレクタ104、109のセレクタ信号はそれぞれ上位側の商デジットqui+1、下位側の商デジットqli+1により除数を選択するが、この第二の実施例では上位側、下位側の除数セレクタ604、609のセレクタ信号はどちらも上位側の商デジットqui+1により除数が選択される。
商デジットによる除数選択のパスはクリティカルパスであり、第一の実施例の方が第二の実施例より高速である。
前述した特開平4−172526でのSRT法を対象としない演算器であっても、このように、その回路に対しSRT法を適用できるように新たに回路を付加、変更を行うことによって高速な演算器を構成することができる。
実施例3
次に、第6図を用いて単精度開平演算を並行して高速に実行する機能を有する本発明の第三の実施例を説明する。
第一の実施例との相違点は、第一の実施例の除数セレクタ104、109に対し、この第三の実施例では部分開平回路704、709となっている点である。開平演算では、固定値の除数の代わりに、商デジットが求まる度に逐次的に変化する部分開平値を使用する。
桁上げ伝搬手段CPA701、707、商デジット選択回路702、708、開平値を生成する商生成回路703、桁上げ保存加算手段CSA705、714、キャリー伝搬セレクタ713、1bit左シフタ715は前記した除算と回路の共有化ができるので、電子回路装置の高集積化に適している。
第7図にその部分開平回路のアルゴリズムを示す。同図の左側(1)に除算のアルゴリズムを比較のために示してあり、右側(2)に開平のアルゴリズムを示してある。この図から判るように商デジットqi+1=1のとき、除数Dの代わりに部分開平値Mi+2−(i+2)、また商デジットqi+1=−1のとき、除数Dの代わりに部分開平値Ni+2−(i+1)+2−(i+2)を使用することで前記した除算と同様に開平演算ができる。ここで、Mi、NiはそれぞれMi=Qi、Ni=Qi−2−iである。
回路の構成としては、商生成回路と同様に、Position Pi、Positive Mi−1、Negative Ni−1信号を入力とするOn−the−Fly回路と商デジット−1、0、1における除数または部分開平値用のセレクタを設ければよい。
以上の説明から明らかなように、本発明はSRT法の様々な高速化回路にも適用が可能である。
実施例4
例えば、前記した特開平9−69040では、i+1ステップの商デジット選択回路の商デジット結果qi+1を得る前に商デジットqi+1の−1、0、1の3通りについて先行してi+2ステップのQSLの商デジットを計算し高速化を行っている。
第8図を用いて上記並列除算器に対して、単精度2演算並列実行可能な本発明に係わる第四の実施例を説明する。
倍精度または単精度1演算のみの回路構成としては、商デジットqui+1が−1、0、1の3通りの桁上げ保存加算手段CSA901、桁上げ伝搬手段CPA902、商デジット選択回路903に加え、商デジット選択回路905、商デジットqui+1によるセレクタ904、906、商デジットqui+2によるセレクタ908、桁上げ保存加算手段CSA907、913、商生成回路909となる。単精度2演算を並列実行可能とするためには上記の回路の単精度下位側用に新たに次の回路を設ければよい。
即ち、単精度2演算と倍精度または単精度1演算用に部分剰余を選択するセレクタ914、商デジットqli+1が−1、0、1の3通りの桁上げ保存加算手段CSA915、桁上げ伝搬手段CPA916、商デジット選択回路917に加え、商デジット選択回路910、商デジットqli+1によるセレクタ911、918、商デジットqli+2によるセレクタ912を付加すれば良い。各回路の機能は前記回路と同様であるので詳細は省略する。
桁上げ保存加算手段CSA907、913には商デジットが−1のときのキャリーイン論理と下位側から上位側へのキャリーの伝搬と伝搬抑止のセレクタ、1bit左シフタが内蔵されている。
また、除算だけでなく、開平演算を行うためには第6図と同様に除数のセレクタを部分開平回路に置き換えることにより実現できる。
実施例5
また、前記した特開平10−187420では商デジット選択と並行して次ステップの部分剰余を予測し、CPAの回路を簡略化し高速化を計っている。このような演算器にも本発明を適用することができる。
第9図を用いて、上記部分剰余予測を行う除算器に本発明を適用することによって、単精度2演算並列実行可能とした第五の実施例を説明する。
倍精度または単精度1演算のみの回路構成としては、部分剰余上位桁決定回路REM1001、商デジット選択回路1002、部分剰余上位桁予測回路REL1003、商デジットqui+1によるセレクタ1005、桁上げ保存加算手段CSA1011、商生成回路1004となる。
単精度2演算を並列実行可能とするためには上記の回路の単精度下位側用に新たに次の回路を設ければよい。即ち、単精度2演算と倍精度または単精度1演算用に部分剰余を選択するセレクタ1006、部分剰余上位桁決定回路REM1007、商デジット選択回路1008、部分剰余上位桁予測回路REL1009、商デジットqli+1によるセレクタ1010である。
各回路の機能は第一の実施例で示した回路と同様であるので詳細説明は省略するが、桁上げ保存加算手段CSA1011には商デジットが−1のときのキャリーイン論理と下位側から上位側へのキャリーの伝搬と伝搬抑止のセレクタ、1bit左シフタが内蔵されている。
また、除算だけでなく、開平演算を行うためには第6図と同様に除数のセレクタを部分開平回路に置き換えることにより実現することができる。
実施例6
更に本発明の第四の実施例では2bit,他の実施例では1bitの商デジットが求められる例を示したが、これらを数bitの商デジットが求められるよう拡張することが可能である。
例えば、第一の実施例での1bitの商デジットを求める回路を1ステージの回路と呼ぶことにすると、逐次的に3ステージ分連結すれば、3bitの商デジットが得られる。詳細説明は省略するが、他の実施例に関しても同様に構成できる。
実施例7
以上の種々の実施例では、倍精度幅の演算器で単精度の2演算並列実行の例を示したが、bit幅は倍精度に限定されない。bit幅を大きくすれば、単精度の並列実行できる演算の数を増やすことができる。そして、本発明は同期回路だけでなく、非同期回路にも適用が可能であり、種々の高速な電子回路装置を実現することができる。
第10図を用いて本発明に係わる第七の実施例として浮動小数点除算器(又は開平演算器)を用いたマイクロプロセッサの構成図を示す。
DRAMやSDRAM等のメインメモリ1101は外部データバス1102、外部アドレスバス1103によりマイクロプロセッサ1104と接続されている。マイクロプロセッサ1104は、外部とのデータの授受を行うバスインターフェースユニット1105、命令キャッシュ1106、データキャッシュ1107、命令キャッシュ1106からの命令コードを乗せるアドレスバス1108、データキャッシュ1107からのデータの読み出しやデータキャッシュ1107への書きこみを行うデータバス1109、CPU1110、FPU(Floating Point Unit)1111から構成される。なお、上記DRAMやSDRAM等のメインメモリ1101は外部に設けるのではなく、マイクロプロセッサ1104と一緒に1枚の半導体基板内に内蔵されていても良い。その場合は、バス1102や1103は同一チップ上での内部バスで構成されることになる。
FPU1111は、前記した本発明の種々の実施例で説明された倍精度演算、単精度演算及び単精度複数並列演算の複数の動作モードを実行可能な浮動小数点除算器(又は浮動小数点開平演算器)1115を搭載し、その他にデータバス1109へのデータのロード、ストアを行う浮動小数点ロードストアユニット1112、浮動小数点レジスタファイル1113、浮動小数点積和演算器1114等から成る。
なお、前記実施例で述べていない浮動小数点除算器の指数演算部、sum、carryと桁上げ保存形式で出力される部分剰余の桁上げ伝搬部、正規化処理部、丸め処理部、ゼロ除算等の例外検出部は別論理が必要となる。第10図では浮動小数点積和演算器1114内部に上記論理が存在すると仮定している。
なお、このような電子回路装置においてはそのユーザが外部から任意に上記演算器の動作モードを簡単に指定できるようにすることが必要である。
次に、第11図に基づいて、第10図に示した本発明に係わるマイクロプロセッサを動作させるに特に必要な浮動小数点レジスタファイル1113について説明する。ここでは特に、その中のFPUステータスレジスタに格納される単精度2演算同時実行を指定する命令コードの一例を説明する。
第11図の(a)から判るように、浮動小数点ステータスレジスタには単精度2演算の並列実行をON、OFFするモードビット(0/1)と倍精度、単精度のモードビット(0/1)とが設けられ、外部からユーザがソフトウェアで動的に制御乃至セレクトできるようにされている。ただし、単精度2演算と倍精度のモードを同時にON(1)に設定することは禁止とされている。
また、このFPUステータスレジスタの具体的な指定方法としては、第11図の(b)に例示したように32bitレジスタで連続する2つのレジスタをペアで指定する方法と、(c)に例示したように64bitレジスタで指定する方法があり、(b)(c)のそれぞれの指定方法において(1)FDIV FRm,FRnを指定する2オペランド方式と(2)FDIV FRI,FRm,FRnを指定する3オペランド方式の例が示されている。このレジスタをペアで指定する場合は、例えばFRnに対しては、FRnとFRn+1レジスタが指定される。
このようにすることによって、本発明によればユーザがその使用目的に応じて浮動小数点の除算や開平演算での単精度1演算の実行、単精度2演算の並列実行、倍精度演算の実行、開平演算の実行等の動作処理モードを任意に簡単に設定することができる。
しかも、前記したようにこれら複数の動作モードを殆ど同じ回路構成で実現できるので、高速動作可能な演算器を内蔵した高性能な電子回路装置を一つの半導体基板内に集積化した大規模半導体集積回路装置(LSI)を実現することができる。
産業上の利用可能性
浮動小数点倍精度bit幅のSRT除算器や開平演算器に対し、下位側に単精度と倍精度のセレクタ、部分剰余の桁上げ伝搬を行う桁上げ伝搬手段CPA、商デジットの選択を行う商デジット選択回路、除数のセレクタまたは部分開平回路を設けることと、上位側と下位側の桁上げ保存加算手段CSAの間にcarryの伝搬を選択するセレクタ、商生成回路内部に開始位置のセレクタを設けることにより、演算器の幅を増やすことなく、浮動小数点単精度の除算または開平演算を2演算同時実行できる。また、セレクタで倍精度を選択する場合、商デジット選択回路に同じ入力が与えられ、選択された商デジットのドライブ力を2倍に増加させるので、倍精度演算においても回路を高速化することができる。
また、この発明を使用した除算器及び又は開平器をマイクロプロセッサ等の電子機器に搭載することによって、高速高性能な電子機器を実現することができる。
【図面の簡単な説明】
第1図は、本発明に係わる第一の実施例を説明するための回路システム構成図である。
第2図は、本発明で用いられるSRT除算のアルゴリズムを説明するための回路システム構成図である。
第3図は、本発明に係わる第一の実施例における商生成回路を説明するためのアルゴリズム及び回路構成図である。
第4図は、本発明に係わる第一の実施例での商生成回路の回路システム構成図である。
第5図は、本発明に係わる第二の実施例を説明するための回路システム構成図である。
第6図は、本発明に係わる第三の実施例を説明するための回路システム構成図である。
第7図は、第三の実施例における動作を説明するためのアルゴリズムである。
第8図は、本発明に係わる第四の実施例を説明するための回路システム構成図である。
第9図は、本発明に係わる第五の実施例を説明するための回路システム構成図である。
第10図は、本発明に係わる浮動小数点SRT除算器を搭載した電子回路装置の第七の実施例を説明するための回路システム構成図である。
第11図は、本発明に係わる第七の実施例での浮動小数点SRT除算用の命令コードを説明するためのレジスタ内の命令コードの構成図である。
Claims (8)
- 被除数又はその部分剰余及び除数が入力される入力部、上記被除数又は部分剰余の上位側と下位側を選択するセレクタ、上記セレクトされた上位側及び又は下位側の上記被除数又は部分剰余部の桁上げを行う桁上げ伝搬手段、上記桁上げ伝搬手段の出力を入力とする商デジット選択手段、上記商デジットを入力とし商を生成する商生成手段、上記商デジット選択手段により得られた商デジットの値に応じて上記被除数又は部分剰余部と上記除数との加減算を行う桁上げ保存加算手段、下位側から上位側にキャリー伝搬を行うか行わないかを選択するキャリー伝搬選択手段、及び上記桁上げ保存加算手段の出力を所定ビットシフトして新しい被除数又は部分剰余として上記入力部に再び入力することを特徴とする演算器。
- 被除数の開平値を演算する開平演算器において、上記被除数又はその部分剰余が入力される入力部、上記被除数又は部分剰余の上位側と下位側を選択するセレクタ、上記部分剰余の上位側及び又は下位側の桁上げを行う桁上げ伝搬手段、上記桁上げ伝搬手段の出力を入力とする商デジット選択手段、上記商デジットを入力とし開平値を生成する商生成手段、上記商デジットを入力とし部分開平値を生成する部分開平値生成手段、及び上記商デジット選択手段により得られた上記商デジットの値に応じて上記除数又は上記部分開平値と上記部分剰余との加減算を行いその結果を桁上げ保存する桁上げ保存加算手段とを有し、下位側から上位側にキャリー伝搬を行うか行わないかを選択するキャリー伝搬選択手段、及び上記桁上げ保存加算手段の出力を所定ビットシフトしそれを新しい被除数又は部分剰余として上記入力部に再び入力しこの一連の動作を繰り返すことによって上記被除数の開平値を演算することを特徴とする開平演算器。
- 入力部に被除数又はその部分剰余と除数が入力され、第1桁上げ伝搬手段によって上記被除数又は部分剰余の桁上げ伝搬を行い、上記第1桁上げ伝搬手段の出力を第1商デジット選択回路に入力して第1商デジットを得て、上記第1商デジットの値に応じて上記被除数又は部分剰余と上記除数とを第1桁上げ保存加算手段によって加減算し、上記加減算の結果をシフタによって所定ビットシフトし新しい被除数又は部分剰余として再び上記入力部に入力してこれら一連の動作を繰り返し、上記第1商デジットを入力とし、上記商生成手段にて第1商を算出する演算器に、上記入力部に対して並列に、上記被除数又は部分剰余の上位部と下位部をセレクトするセレクタ、上記セレクトされた上記被除数又は部分剰余部の桁上げ伝搬を行う第2桁上げ伝搬手段、及び上記第2桁上げ伝搬手段の出力を受けて第2商デジットを出力する第2商デジット選択回路、及び上記第2商デジットの値に応じて上記セレクトされた被除数又は部分剰余部と上記除数とを加減算する第2桁上げ保存加算手段とを設け、上記第2商デジットを入力とし、上記商生成手段にて第2商を算出し、上記第1桁上げ保存加算手段と上記第2桁上げ保存加算手段との間にキャリーの伝搬を選択する手段を設け、上記第2桁上げ保存加算手段によって加減算された上記結果を上記第1桁上げ保存加算手段による上記加減算結果とマージして上記シフタによって上記所定ビットシフトし、上記マージされたシフト結果を上記入力部に入力するようにしたことを特徴とする演算器。
- 入力部に被除数又はその部分剰余が入力され、第1桁上げ伝搬手段によって上記被除数又は部分剰余の桁上げ伝搬を行い、上記第1桁上げ伝搬手段の出力を第1商デジット選択回路に入力して第1商デジットを得、上記商デジットを入力とする商生成手段によって第1開平値を生成し、上記商デジットを入力とする部分開平値生成手段によって第1部分開平値を生成し、上記第1桁上げ伝搬手段の出力部に結合された商生成手段によって第1部分開平値を生成し、上記第1商デジットの値に応じて上記被除数又は部分剰余と上記除数又は上記第1部分開平値とを第1桁上げ保存加算手段によって加減算し、上記加減算の結果をシフタによって所定ビットシフトし新しい被除数又は部分剰余として再び上記入力部に入力してこれら一連の動作を繰り返し、上記商生成手段によって被除数の開平値を演算する開平演算器に、上記入力部に対して並列に、上記被除数又は部分剰余の上位部と下位部をセレクトするセレクタ、上記セレクトされた上記被除数又は部分剰余部の桁上げ伝搬を行う第2桁上げ伝搬手段、上記第2桁上げ伝搬手段の出力を受けて第2商デジットを出力する第2商デジット選択回路、上記商生成手段は上記第2商デジットを入力とする商生成手段によって第2開平値を生成し、上記第2商デジットを入力とする部分開平値生成手段によって第2部分開平値を生成し、及び上記第2商デジット選択回路の上記第2商デジットの値に応じて上記セレクトされた被除数又は部分剰余部と上記除数又は上記第2部分開平値とを加減算する第2桁上げ保存加算手段とが設けられ、上記第1桁上げ保存加算手段と上記第2桁上げ保存加算手段との間にキャリーの伝搬を選択する手段が設けられ、上記第2桁上げ保存加算手段によって加減算された上記結果を上記第1桁上げ保存加算手段による上記加減算結果とマージして上記シフタによって上記所定ビットシフトし、上記マージされたシフト結果を上記入力部に入力されるようにしたことを特徴とする開平演算器。
- 上記請求項1から4のいずれかに記載の演算器を搭載したことを特徴とする電子回路装置。
- 部分剰余の上位桁から第1商デジットを選択し、上記選択された第1商デジットに従って、上記上位桁に対応して上記部分剰余から除数を減算し、新たな第1部分剰余を得るループを繰り返しながら演算が進められるSRT除算器に、上記第1商デジットとは別に上記上位桁又は下位桁から第2商デジットを選択し、上記選択された第2商デジットに従って、上記上位桁又は下位桁に対応して上記部分剰余から上記除数を減算して新たな第2部分剰余を得る機能を付加し、得られた上記第2部分剰余を上記第1部分剰余にマージして上記ループを繰り返しながら演算し、倍精度演算、単精度演算及び単精度複数並列演算を実行可能にしたことを特徴とするSRT除算器。
- 上記請求項6記載の除算器を搭載したことを特徴とする電子回路装置。
- 命令キャッシュ及びデータキャッシュとバスを介して結合されたCPU及び浮動小数点演算ユニットとを有し、上記浮動小数点演算ユニットは相互に結合されたロードストアユニット、レジスタファイル、積和演算器、及び倍精度演算、単精度演算及び単精度複数並列演算の複数の動作モードを実行可能な除算器とからなり、上記レジスタファイルは上記演算器の上記動作モードを外部からユーザが指定できるようにするために上記動作モードのうち倍精度演算と単精度複数並列演算との同時実行を禁止した浮動小数点演算ステータスレジスタを有しそれによって上記除算器の上記動作モードが設定されるようにされていることを特徴とするマイクロプロセッサ。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2000/006612 WO2002029546A1 (fr) | 2000-09-26 | 2000-09-26 | Unite de calcul et dispositif de circuit electronique utilisant cette unite |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2002029546A1 true JPWO2002029546A1 (ja) | 2004-02-12 |
JP3793505B2 JP3793505B2 (ja) | 2006-07-05 |
Family
ID=11736521
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002533053A Expired - Fee Related JP3793505B2 (ja) | 2000-09-26 | 2000-09-26 | 演算器及びそれを用いた電子回路装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7243119B1 (ja) |
JP (1) | JP3793505B2 (ja) |
AU (1) | AU2000273214A1 (ja) |
WO (1) | WO2002029546A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4273071B2 (ja) * | 2004-12-15 | 2009-06-03 | エヌイーシーコンピュータテクノ株式会社 | 除算・開平演算器 |
US8868633B2 (en) * | 2012-03-30 | 2014-10-21 | Advanced Micro Devices, Inc. | Method and circuitry for square root determination |
US9785407B2 (en) * | 2014-11-21 | 2017-10-10 | Arm Limited | Data processing apparatus having combined divide-square root circuitry |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03166623A (ja) * | 1989-11-27 | 1991-07-18 | Matsushita Electric Ind Co Ltd | 除算回路 |
JPH04172526A (ja) | 1990-11-07 | 1992-06-19 | Toshiba Corp | 浮動小数点除算器 |
US5386376A (en) * | 1992-08-31 | 1995-01-31 | Intel Corporation | Method and apparatus for overriding quotient prediction in floating point divider information processing systems |
JPH06282416A (ja) * | 1993-03-30 | 1994-10-07 | Mitsubishi Electric Corp | 除算器及びそれを備えた計算機 |
JPH06290030A (ja) | 1993-03-31 | 1994-10-18 | Toshiba Corp | 除算装置 |
JP3609512B2 (ja) | 1994-12-15 | 2005-01-12 | 株式会社東芝 | 演算器 |
US5696712A (en) | 1995-07-05 | 1997-12-09 | Sun Microsystems, Inc. | Three overlapped stages of radix-2 square root/division with speculative execution |
US5787030A (en) * | 1995-07-05 | 1998-07-28 | Sun Microsystems, Inc. | Correct and efficient sticky bit calculation for exact floating point divide/square root results |
JPH10187420A (ja) | 1996-12-26 | 1998-07-21 | Hitachi Ltd | 除算・開平演算器 |
US6549926B1 (en) * | 1999-10-26 | 2003-04-15 | Sun Microsystems, Inc. | SRT divider having several bits of each partial remainder one-hot encoded to minimize the logic levels needed to estimate quotient bits |
-
2000
- 2000-09-26 US US10/362,775 patent/US7243119B1/en not_active Expired - Fee Related
- 2000-09-26 WO PCT/JP2000/006612 patent/WO2002029546A1/ja active Application Filing
- 2000-09-26 AU AU2000273214A patent/AU2000273214A1/en not_active Abandoned
- 2000-09-26 JP JP2002533053A patent/JP3793505B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US7243119B1 (en) | 2007-07-10 |
AU2000273214A1 (en) | 2002-04-15 |
WO2002029546A1 (fr) | 2002-04-11 |
JP3793505B2 (ja) | 2006-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6495220B2 (ja) | 選択可能な副精度に対して、低減された電力要求を有する浮動小数点プロセッサ | |
EP1293891B2 (en) | Arithmetic processor accomodating different finite field size | |
JP3689183B2 (ja) | 正確な浮動小数点除算/平方根演算を実現する正確、かつ効果的なスティッキー・ビット計算 | |
US7949696B2 (en) | Floating-point number arithmetic circuit for handling immediate values | |
US8341204B2 (en) | Vector SIMD processor | |
KR20080055985A (ko) | 선택가능 준정밀도를 가진 부동―소수점 프로세서 | |
US5132925A (en) | Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction | |
JPH0969040A (ja) | 推測的演算を有する3つのオーバーラップしたステージにより基数2の平方根演算/除算を行う回路 | |
US5023827A (en) | Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction | |
US6009450A (en) | Finite field inverse circuit | |
US6728744B2 (en) | Wide word multiplier using booth encoding | |
JPWO2007094047A1 (ja) | 演算装置および演算方法 | |
JP4273071B2 (ja) | 除算・開平演算器 | |
US7016930B2 (en) | Apparatus and method for performing operations implemented by iterative execution of a recurrence equation | |
Nannarelli | Radix-16 combined division and square root unit | |
JP3793505B2 (ja) | 演算器及びそれを用いた電子回路装置 | |
US8892622B2 (en) | Pipelined divide circuit for small operand sizes | |
Pineiro et al. | A radix-2 digit-by-digit architecture for cube root | |
JP3517162B2 (ja) | 除算・開平演算装置 | |
JP3638218B2 (ja) | シフト機能付きalu命令を持つマイクロプロセッサ | |
JPH10187420A (ja) | 除算・開平演算器 | |
JPH04314126A (ja) | 逆数発生装置 | |
JP3100868B2 (ja) | 浮動小数点数のための算術演算装置 | |
Bordiya et al. | Comparative Analysis Of Multipliers | |
JPH1173409A (ja) | 積和演算装置および積和演算方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040419 |
|
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: 20060322 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060407 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090414 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100414 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100414 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110414 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110414 Year of fee payment: 5 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110414 Year of fee payment: 5 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120414 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120414 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130414 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140414 Year of fee payment: 8 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |