JP4273071B2 - 除算・開平演算器 - Google Patents

除算・開平演算器 Download PDF

Info

Publication number
JP4273071B2
JP4273071B2 JP2004362300A JP2004362300A JP4273071B2 JP 4273071 B2 JP4273071 B2 JP 4273071B2 JP 2004362300 A JP2004362300 A JP 2004362300A JP 2004362300 A JP2004362300 A JP 2004362300A JP 4273071 B2 JP4273071 B2 JP 4273071B2
Authority
JP
Japan
Prior art keywords
square root
partial
bits
divisor
complement
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
Application number
JP2004362300A
Other languages
English (en)
Other versions
JP2006172035A (ja
Inventor
貴彦 上杉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Computertechno Ltd
Original Assignee
NEC Computertechno Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP2004362300A priority Critical patent/JP4273071B2/ja
Priority to US11/299,697 priority patent/US7921149B2/en
Priority to CA002530015A priority patent/CA2530015C/en
Priority to EP05027390A priority patent/EP1672481B1/en
Priority to DK05027390T priority patent/DK1672481T3/da
Priority to DE602005011742T priority patent/DE602005011742D1/de
Priority to KR1020050123009A priority patent/KR100756137B1/ko
Priority to AU2005256094A priority patent/AU2005256094A1/en
Priority to SG200508127A priority patent/SG123731A1/en
Publication of JP2006172035A publication Critical patent/JP2006172035A/ja
Application granted granted Critical
Publication of JP4273071B2 publication Critical patent/JP4273071B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/491Computations with decimal numbers radix 12 or 20.
    • G06F7/492Computations with decimal numbers radix 12 or 20. using a binary weighted representation within each denomination
    • G06F7/493Computations with decimal numbers radix 12 or 20. using a binary weighted representation within each denomination the representation being the natural binary coded representation, i.e. 8421-code
    • G06F7/496Multiplying; Dividing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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/552Powers or roots, e.g. Pythagorean sums
    • G06F7/5525Roots or inverse roots of single operands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/4824Methods 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 using signed-digit representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; Dividing
    • G06F7/4873Dividing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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/552Powers or roots, e.g. Pythagorean sums

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)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Complex Calculations (AREA)
  • Executing Machine-Instructions (AREA)

Description

本発明は、除算・開平演算器に関するものであり、特に高基数型の除算器と低基数型の開平器を実装した除算・開平演算器に関する。
除算器・開平器の実装においては、アルゴリズムとして減算シフト法、あるいは減算引き離し法等を用いたものが、ハードウェア量と性能のバランスを考慮して、一般的に用いられている。このアルゴリズムは我々が通常、筆算で除算を行うのと同様に、商の決定を、余り(部分剰余)のシフトと余りからの分母(除数・部分開平値)の倍数の減算により除算を行う手法で、具体的に、n桁単位に商/開平数字が決定され、その商/開平数字の決定にもとづいて部分剰余が計算され、次の演算ステップでは、この部分剰余値がn桁シフトされ、それにもとづいて次のn桁の商/開平数字が決定され、という具合に、繰り返し演算を行うことで実行される。
このn桁単位に商/開平数字を決定して行く方法は、2のn乗をr(これを基数と呼ぶ)とするとき、基数rの除算/開平法と呼ばれている。このようなアルゴリズムの除算処理について述べたものとして、「コンピュータの高速演算方式、1980、近代科学社、pp.214−249」(非特許文献1)には、回復型除算、非回復型除算、SRT除算、拡張SRT除算といった各種の除算手法について述べられている。
減算シフト法を用いた除算の手順について簡単に説明する。
演算のビット長(商/開平数字を決定していく単位桁数)をn(任意の正整数)、演算の基数をr(=2のn乗)、除数をD、被除数をR(0)、jを0以上の整数としてj回目の部分剰余をR(j)、j回目の商をq(j)とする。また、ここでは除数D、被除数R(0)は正規化されているとする。ここでは正規化浮動小数点フォーマットとして、「1.xxxx」を用いるものとし、除数、被除数共に正規化されているとする。本フォーマットに合致しないデータ形式を扱う場合でも、演算前後に適当なシフト処理を実行することで本浮動小数点フォーマットについての処理を適用可能である。
ここで使用される商及び部分剰余は、冗長2進表現により表される。すなわち、2補数表現であれば各ビットが{0,1}で表されるところを、{−1,0,1}の3値を採ることを許し、負の値を可能としている。
入力データが上述のように正規化されている条件の下で、次の(1)式に示される漸化式を用いて、順次、商及び部分剰余を求めることができる。
R(j+1)=r×R(j)-q(j+1)×D・・・(1)
SRT法では、商デジットとして{0,1}に加えて{−1}をとり、部分剰余の上位数ビットで高速に商デジットを判定できる方法である。SRTアルゴリズムは、開平演算にも適用できるので、除算ハードウェアの使用が可能である。
開平演算の手順について簡単に説明する。
演算の基数をr、被開平数をR(0)、jを0以上の整数としてj回目の部分剰余をR(j)、部分開平値をQ(j)、j回目の商をq(j)とする。被開平数R(0)は正規化されているとする。部分開平値Q(j)は、j回目まで算出された商である。
ここで使用される商(部分開平値も含む)及び部分剰余は、冗長2進表現により表される。すなわち、2補数表現であれば各ビットが{0,1}で表されるところを、{−1,0,1}の3値を採ることを許し、負の値を可能としている。
入力データが上述のように正規化されている条件の下で、次の(2)、(3)式に示される漸化式を用いて、順次、商及び部分剰余を求めることができる。
R(j+1)=r×R(j)-q(j+1)×(r×Q(j)+q(j+1)×r-(j+1))・・・(2)
Q(j+1)=Q(j)+q(j+1)×r-(j+1) ・・・(3)
開平演算では、j回目の部分剰余から部分開平値を減算する演算により、j+1回目の部分剰余算出を行うアルゴリズムとなっており、そのまま処理を行うとすると、冗長2進数表現の部分剰余と冗長2進数表現の部分開平値との演算となり、複雑な演算となってしまう。
冗長2進数表現の部分開平値が全て求まってから2補数表現に変換すると、変換に要する時間が計算時間に追加されてしまい、処理低下を招く。
そこで、除算で実現したハードウェアを開平演算で共用する為に、オン・ザ・フライ変換と呼ばれる回路によって、商決定と同時に得られた部分開平値を2補数表現に変換して、冗長2進数表現の部分剰余と2補数表現の部分開平値の演算として処理を行う。
オン・ザ・フライ変換は、例えば非特許文献2(On-the-fly conversion of redundant into conventional representations、エム.ディ.エルセゴバック及びティ.ラング、IEEE Transactions on Computers、第36巻第7号、1987年6月、895〜897頁)に開示されている。
基数2の場合のオン・ザ・フライ変換について簡単に説明する。
例えば、冗長2進表現{1,-1}を2補数表現に変換すると{0,1}となる(いずれも10進数で1を表す)。冗長2進から2補数への変換を加算と減算で実現すると,-1が入力されたときにキャリー伝播するので、この例では-1が入力される前の値{1,0}以外に、{0,1}を用意しておき、-1が入力されたとき、{0,1}を選択すればキャリー伝播は発生しない。つまり、キャリーの伝播を無くし固定時間で処理するために,-1が入力された場合の答え(言い換えるなら1小さい表現)を予め内部に用意しておけば、キャリー伝播を抑止できる事になる。
冗長2進表現で上位桁から順に求まる商Qと、2補数表現の商Z の小数点以下j桁までをそれぞれQ(j)(=.q(1)q(2)・・・q(j))とZ(j)(=.z(1)z(2)・・・z(j))とすると、上記からZ(j)は、Q(j)またはQ(j)−2-jのいずれかの2補数で表せる。従って、各演算ステップで、Q(j)およびQ(j)―2-jの2補数表現を保持しておけば、q(j)が求まった時点で、即座にZ(j)を求める事が出来る。
演算途中のj+1回目の商デジットをq(j+1)とし、Q(j)またはQ(j)−2-jの2補数をそれぞれQP(j)、QN(j)とし、部分開平値正、部分開平値負と呼ぶ事にする。演算を基数に従い処理を行い、q(j+1)が求まれば、QP(j)、QN(j)から次のようにQP(j+1)、QN(j+1)を求める事が出来る。q(j+1)=−1の場合は、
QP(j+1)= QP(j)−2-(j+1)=QN(j)+2-j−2-(j+1)=QN(j)+2-(j+1) ・・・(4)
QN(j+1) {=QP(j+1)−2-(j+1)}=QP(j)−2-(j+1)−2-(j+1)=QP(j)−2-j=QN(j) ・・・(5)
q(j+1)=0の場合、
QP(j+1)= QP(j) ・・・(6)
QN(j+1)= QN(j) +2-(j+1) ・・・(7)
q(j+1)=1の場合、
QP(j+1)= QP(j)+2-(j+1) ・・・(8)
QN(j+1) {=QP(j+1)−2-(j+1)}=QP(j)+2-(j+1)−2-(j+1)=QP(j) ・・・(9)
式(4)と式(7)と式(8)は、Qx(j+1)=Qy(j)+2-(j+1) (演算の基数を2と仮定している)で表せる。この演算は、j桁目までの部分開平値Qy(j)の後ろに、j+1桁目の商(0または1)であるq(j+1)のビット列を連結するだけでよいので、実質的に演算は行われない。他式は、QP(j)かQN(j)を選択すればよい。これは、j回目の部分開平値正であるQP(j)、部分開平値負であるQN(j)を求めて保持しておくことにより、j+1回目の部分開平値Q(j+1)すなわちQP(j+1)は、単純なビット演算のみで、冗長2進数から2補数(通常数)を得る事が出来る。
また、SRT法による除算演算方法については、特開2001−222410「除算器」(特許文献1)に記載されている。特許文献1には、除数を5/3≦除数<1.75の範囲にスケーリングを行うことにより、部分剰余の上位4ビットの正規化及びその4ビットの参照により、商2bitを決定(基数4の除算回路)することができるという効果が報告されている。
除算演算の部分剰余生成は、固定値の除数Dを考慮して減算すれば実現出来るので、除数範囲をスケーリングする事で高基数を実現できるが、開平演算の部分剰余生成は、j回目の部分開平値Q(j)と商q(j)を考慮して減算する必要があり、高基数を実現するには、商生成桁の1つ前の商考慮が必要であるので、回路が複雑となり、処理にも時間を要する事になる。高基数の開平演算処理について、非特許文献3((「Radix-4 square root without initial PLA」、エム.ディ.エルセゴバック及びティ.ラング、IEEE Transactions on Computers、第39巻第8号、1990年8月、1016〜1024頁」)に部分開平値3ビットと部分剰余上位7ビットから商2ビットを決定できる例が記載されているが、このように高基数の開平演算を採用しようとすると、開平演算の商決定回路規模や論理段数が複雑となる。
また、特開平10−187420「除算・開平演算器」(特許文献2)に除算演算器と開平演算器とを共用したものが開示されている。
特開2001−222410「除算器」 特開平10−187420「除算・開平演算器」 コンピュータの高速演算方式、1980、近代科学社、pp.214−249 On-the-fly conversion of redundant into conventional representations、エム.ディ.エルセゴバック及びティ.ラング、IEEE Transactions on Computers、第36巻第7号、1987年6月、895〜897頁 Radix-4 square root without initial PLA、エム.ディ.エルセゴバック及びティ.ラング、IEEE Transactions on Computers、第39巻第8号、1990年8月、1016〜1024頁
上述のように高基数の開平演算における商決定は、高基数の除算より論理段数が多く複雑なので、除算演算と開平演算で同じ基数を採用した場合、開平演算の論理段数が処理性能を決めてしまう事になり、除算処理性能が落ちてしまう問題が発生する。除算処理性能を落さない為には、開平演算の基数は除算演算より低く設定される事になる。例えば、開平演算で部分剰余上位4ビット参照の回路方式を実現するには、基数2の採用が妥当である。
特許文献2は、低基数である基数2の除算器と除算器と同じ基数2の開平演算について開示しているが、高基数の除算と低基数の開平演算を行う除算・開平演算器については開示していない。
本発明の目的は、このような事情に鑑みてなされたもので、除算と開平演算に多くの部分を共用でき効率的であるとともに、除算演算の基数を開平演算より高く設定でき、除算処理性能を落とすことがない除算・開平演算器を提供することにある。
上記目的を達成するために、本発明の除算・開平演算器は、高基数の除算及び低基数の開平演算を行う除算・開平演算器において、部分剰余の上位ビットを参照して商を定める商生成手段と、前記部分剰余の前記上位ビットを2補数表現で保持し、前記部分剰余の前記上位ビット以外の下位ビットは冗長2進数表現で保持する部分剰余保持手段と、除数と部分開平値を演算種別に応じて切り替えて保持する除数・部分開平値保持手段と、前記商により前記除数・部分開平値保持手段からの除数及び部分開平値を選択する除数・部分開平値選択回路と、前記下位ビットの冗長2進数表現の部分剰余と前記除数・部分開平値選択回路の出力とを入力する桁上げ保存加算器と、前記上位ビットの2補数表現の部分剰余、前記下位ビットの冗長2進数表現の部分剰余、前記除数・部分開平値選択回路の出力、及び前記桁上げ保存加算器のキャリー信号を加算する桁上げ伝播加算器と、前記桁上げ保存加算器の出力の上位ビットから基数に基づくビット数のビットデータ及び桁上げ伝播加算器の出力を入力して2補数化し演算の基数に基づくビット数シフトして次回の部分剰余として使用する2補数化・シフト手段とを有する。
また、前記2補数化・シフト手段は、除算と開平演算の基数の違いにより定められるビット数、前記上位ビットの2補数表現の部分剰余を下位へシフトして前記桁上げ保存加算器に入力する第1のシフタと、前記基数の違いにより定められるビット数、前記下位ビットの冗長2進数表現の部分剰余を下位へシフトして前記桁上げ伝播加算器に入力する第2のシフタと、前記桁上げ保存加算器の出力の上位ビットから前記高基数に基づいて取り出したビット数のビットデータ及び前記桁上げ伝播加算器の出力を入力して2補数化する2補数変換手段と、前記2補数変換手段の出力を次回の部分剰余として使用するよう前記高基数に基づくビット数シフトする第3のシフタとを有するものとしてもよい。
本発明によれば、桁上げ保存加算器の出力の上位ビットから演算の基数に基づくビット数のビットデータと、桁上げ伝播加算器の出力とを入力して2補数化し、演算の基数に基づくビット数シフトして次回の部分剰余として使用する。これにより除算と開平演算において、除数と部分開平値とのレジスタ共有などの多くの部分を共用できる効率的な回路となり、除算演算の基数を開平演算より高く設定でき、除算処理性能を向上することができる。
さらに開平演算の場合、除算演算と開平演算の基数の違いにより定められるビット数、前記上位ビットの2補数化された部分剰余及び前記下位ビットの冗長2進数の部分剰余をシフトして加算器及び桁上げ保存加算器に入力し、桁上げ保存加算器の出力の上位ビットから高基数に基づいて取り出したビット数のビットデータと加算器の出力とを入力して2補数化し、高基数に基づくビット数シフトして次回の部分剰余として使用することにより、部分剰余から除数を減算した結果を部分剰余レジスタに戻すパスの回路遅延時間が抑制し、除算演算と開平演算の処理速度を向上させることができる。
次に、本発明の構成について図面を参照して詳細に説明する。
以下に説明する実施形態においては、除算演算の基数が4、デジット集合が{−3、−2、−1、0、1、2、3}、除数、被除数がnビット長の少数で、演算アルゴリズムに拡張SRT除算アルゴリズムを採用し、開平演算の基数が2、デジット集合が{−1、0、1}、被開平数がnビット長の少数で、演算アルゴリズムにSRT開平アルゴリズムを採用している回路について説明する。
図1は、本発明の除算・開平演算器の第1の実施形態の構成を示すブロック図である。
スケーリングファクタ生成部1は、スケーリングに用いる乗算係数を生成する。スケーリングファクタ生成部1は、除算演算では、除数から除数を5/3≦除数<1.75の範囲にスケーリングを行うための乗算係数を生成するが、開平演算では、乗算係数=1で処理を行う。53ビット×6ビット乗算器2,3が、スケーリングファクタ生成部1が出力した乗算係数を、入力された53ビットの除数、被除数に乗算して出力する。このことにより、部分剰余の上位4ビットの正規化及びその4ビットの参照により、商2bitを決定(基数4の除算回路)できる。
基数4の除算演算は、除数範囲を5/3≦除数<1.75の範囲にスケーリングを行うことで、部分剰余上位4ビットから商2ビットを生成出来、開平演算においても、部分剰余上位4ビットだけで商生成する方式を採用出来れば、除算処理性能を落さない事が可能となる。
除数3倍数生成部4は、53ビット×6ビット乗算器2の出力を3倍して除数3倍数を生成し、出力する。
部分剰余レジスタ5は、2補数表現の部分剰余上位4ビットを保持する。
部分剰余レジスタ6は、部分剰余レジスタ5で保持される上位ビット以外の下位ビットを冗長2進数表現で保持する。
商生成回路7は、レジスタ5に保持された2補数表現の部分剰余上位4ビットから、除算においてはデジット集合{−3、−2、−1、0、1、2、3}のうちから、開平演算においてはデジット集合{−1、0、1}のうちから1つを選択し、商を生成する。
除数・部分開平値選択回路10は、除算動作時は商生成回路7で生成された商により除数を選択する。また開平動作時は商生成回路7で生成された商とPOSITION レジスタ16のPOSITIONデータとから部分開平値を選択する。
桁上げ保存加算器(Carry Save Adder)11は、部分剰余レジスタ6からの下位ビットの冗長2進数表現の部分剰余と除数・部分開平値選択回路10の出力を入力データとし、桁上げ伝播なく加算する。キャリー発生する場合は、キャリー信号をキャリー伝播加算器(Carry Propagate Adder)12に出力する。
キャリー伝播加算器(Carry Propagate Adder)12は、部分剰余レジスタ5からの上位ビットの2補数表現の部分剰余と、除数・部分開平値選択回路10の出力と、加算器11のキャリー信号を加算する。
部分剰余から除数・部分開平値選択データ減算後の部分剰余データのシフト操作で基数を考慮する必要があり、基数2である開平演算の場合、j回目の部分剰余から除数・部分開平値選択データを減算した結果を、1ビット左シフトしてj+1回目の部分剰余データとして使用する。一方、基数4である除算の場合、j回目の部分剰余から除数・部分開平値選択データを減算した結果を、2ビット左シフトしてj+1回目の部分剰余データとして使用する。加えて、部分剰余上位ビットは、商生成で参照するデータを2補数表現で保持することで、商生成を高速しているので、上記シフト処理では冗長2進数表現の下位ビットからシフトビット分だけ2補数表現のデータに変換する2補数変換回路13―1、13―2を使用しながら、シフト処理を行っている。
2補数変換回路13―1は、桁上げ保存加算器11の出力の上位ビットから除算の基数に基づいて2補数化する必要のあるビット数、ここでは2ビットのデータを取り出し、2補数化する。2補数変換回路13−2は、桁上げ保存加算器11の出力の上位ビットから開平演算の基数に基づいて2補数化する必要のあるビット数、ここでは1ビットのデータを取り出し、2補数化する。セレクタ20は、除算においては2補数変換回路13―1の出力を、開平演算においては2補数変換回路13−2の出力を選択する。シフタ27は、除算においてはセレクタ20の出力を2ビットシフトし、開平演算においては1ビットシフトしてセレクタ23に入力する。シフタ28は、桁上げ保存加算器11の出力の2補数変換回路13―1に出力した上位ビット以外の下位ビットを、除算においては2ビットシフトし、開平演算においては1ビットシフトしてセレクタ24に入力する。
除数・部分開平値正レジスタ14は、除算においては除数、開平演算においては部分開平値を保持する。
3倍除数・部分開平値負レジスタ15は、除算においては3倍除数、開平演算においては部分開平値-1を保持する。
POSITIONレジスタ16は、開平演算において商生成回路7で生成した商デジットと部分開平値を結合する為の処理ビット情報を保持する。
オン・ザ・フライ商生成正回路17は、従来技術と同様に、商生成と並行して、冗長2進数表現のデータから2補数表現のデータへの変換を行うため、従来技術と同様に2補数表現の部分開平値データを生成する。
オン・ザ・フライ商生成負回路18は、従来技術と同様に商生成と並行して、冗長2進数表現のデータから2補数表現のデータへの変換を行うため、従来技術と同様に2補数表現の部分開平値-1データを生成する。
シフタ19は、POSITION レジスタ16のPOSITIONデータをサイクル毎に1ビット右シフトする。
セレクタ21は、開平演算においてはオン・ザ・フライ商生成正回路17の出力、除算においては除数・部分開平値正レジスタ14の出力を選択する。
セレクタ22は、開平演算においてはオン・ザ・フライ商生成負回路18の出力、除算においては3倍除数・部分開平値負レジスタ15の出力を選択する。
セレクタ23は、1サイクル目は乗算器2の出力、2サイクル以降はシフタ27を経由した2補数変換回路13の出力を選択する。
セレクタ24は、1サイクル目は乗算器2の出力、2サイクル以降は桁上げ保存加算器11の出力を選択する。
セレクタ25は、1サイクル目は乗算器3の出力、2サイクル以降はセレクタ21の出力を選択する。
セレクタ26は、1サイクル目は3倍除数生成器4の出力、2サイクル以降はセレクタ22の出力を選択する。
次に図1の除算演算の動作について説明する。
まず、スケーリングファクタ生成部1は、除数上位ビットから除数を5/3≦除数<1.75の範囲にスケーリングを行う乗算係数を生成する。
生成した乗算係数を、53ビット×6ビット乗算器2,3に入力し、除数、被除数をスケーリングし、スケーリング後の除数から3倍除数を3倍除数生成器4で生成する。
セレクタ23,24,25,26は、1サイクル目は乗算器2,3と3倍生成器4を選択し、部分剰余レジスタ5,6、除数・部分開平値正レジスタ14、3倍除数・部分開平値負レジスタ15に入力する。
乗算器2から冗長2進数表現で部分剰余の下位ビットがセットされる部分剰余レジスタ6には、{−1}の値は生成されていないので、{0,1}の数値がセットされる。
部分剰余の上位ビットがセットされ2補数表現で保持された部分剰余レジスタ5の内容から、商生成回路7が商2ビットを生成する。
生成された商から除数を選択する為、除数・部分開平値選択回路10で、スケーリングされた除数の{−3倍、−2倍、−1倍、0、1倍、2倍、3倍}データから選択する。
選択された除数の下位ビットと、冗長2進数表現で保持された部分剰余の下位ビットを入力して桁上げ伝播の無い桁上げ保存加算器11で計算を行う。
桁上げ保存加算器11からキャリー発生する場合は、キャリー伝播加算器12にキャリー信号を送信する。
キャリー伝播加算器12では、部分剰余レジスタ5からの部分剰余の上位ビットと、選択された除数の上位ビットと、桁上げ保存加算器11からのキャリー信号を入力して加算を行う。
次サイクルで使用する部分剰余は、基数に従い2ビットシフトする必要があるが、部分剰余データの商生成で必要なビット数は2補数化して保持しているので、桁上げ保存加算器11からの冗長2進数表現の部分剰余下位ビットから、2補数化することが必要な2ビット分を2補数変換回路13−1で変換し、得られた2補数表現の部分剰余上位ビットを、セレクタ20、23を介し、シフタ27で2ビット左シフトして、部分剰余レジスタ5にセットし、次桁の商生成を行っていく。
併せて、同様に、桁上げ保存加算器11の冗長2進数表現の出力のうち、2補数変換回路13―1、13−2に出力した上位ビット以外の下位ビットを、シフタ28により、除算においては2ビットシフトし、開平演算においては1ビットシフトし、セレクタ24を介して部分剰余レジスタ6にセットする。
除算演算においては、除数、3倍除数は固定値を使用するので、除数・部分開平値正レジスタ14のデータをセレクタ21で選択し、さらにセレクタ25ではセレクタ21を選択する事で除数データを保持する。同様に、3倍除数・部分開平値負レジスタ15に保持された3倍除数データをセレクタ22で選択し、さらにセレクタ26ではセレクタ22を選択する事で保持する。
次に図2の開平演算の動作について説明する。
開平演算では、除数の変わりに部分開平値を用いて部分剰余計算が行われる。被演算数を乗算器2とセレクタ23、24を介して、部分剰余レジスタ5,6にセットする。
2補数表現で保持された部分剰余レジスタ5から商1ビットを生成する。
1回目の部分開平値R(0)=0なので、除数・部分開平値正レジスタ14と3倍除数・部分開平値負レジスタ15には0がセットされている。
除数・部分開平値選択回路10には商生成回路7で生成された商から部分開平値が選択される。
選択された部分開平値の下位データと、部分剰余レジスタ6からの部分剰余下位データを入力して桁上げ伝播の無い桁上げ保存加算器11で計算を行う。
桁上げ保存加算器11からキャリー発生する場合は、キャリー伝播加算器12にキャリー信号を送信する。
キャリー伝播加算器12では、部分剰余レジスタ5からの部分剰余上位データと、選択された部分開平値と、桁上げ保存加算器11からのキャリー信号を入力して加算を行う。
次サイクルで使用する部分剰余は、基数に従いシフトしたデータを使用する為、1ビット左シフトする事になる。
桁上げ保存加算器11からの冗長2進数表現の部分剰余下位ビットから2補数化するのに必要な1ビット分を2補数変換回路13−2で変換し、セレクタ20、23を使用し、シフタ27で1ビット左シフトして、レジスタ5にセットし、次桁の商生成を行っていく。
同様に、桁上げ保存加算器11の冗長2進数表現の出力のうち、2補数変換回路13―1、13−2に出力した上位ビット以外の下位ビットを、シフタ28により、除算においては2ビットシフトし、開平演算においては1ビットシフトし、セレクタ24を介して部分剰余レジスタ6にセットする。
除数・部分開平値選択回路10に入力される商を結合した部分開平値は、冗長2進数表現ではなく2補数表現のデータを入力させるために、商生成回路7で生成された商を考慮しながら、オン・ザ・フライ商生成正回路17と、オン・ザ・フライ商生成負回路18とで従来技術と同様に部分開平値及び部分開平値-1を生成していく。
オン・ザ・フライ商生成正回路17は、2補数表現で生成された部分開平値を生成し、セレクタ21、25を介して、除数・部分開平値正レジスタ14に保持される。
同様にオン・ザ・フライ商生成負回路18は、2補数表現で生成された部分開平値-1を生成し、セレクタ22、26を介して、3倍除数・部分開平値負レジスタ15に保持されて、次桁の商生成に使用される。
POSITIONレジスタ16は、商生成桁を指示する回路であり、初期状態でMSB=1のみがセットされる。
シフタ19では、1ビット右シフトされるので、サイクル毎に1ビット右シフトしたデータがPOSITIONレジスタ16にはセットされる事になる。
以上説明したように、本発明の除算・開平演算器によれば、桁上げ保存加算器の出力の上位ビットから演算の基数に基づくビット数のビットデータと、加算器の出力とを入力して2補数化し、演算の基数に基づくビット数シフトして次回の部分剰余として使用する。これにより除算回路と開平演算回路において、除数と部分開平値とのレジスタ共用などの共用出来る部分が多く効率的な回路となり、除算演算の基数を開平演算より高く設定でき、除算処理性能を向上することができる。
次に、本発明の第2の実施形態について図面を参照して詳細に説明する。
図3は、本発明の第2の実施形態の構成を示すブロック図である。
第1の実施形態では次回の部分剰余データを生成するには、除算演算で2ビットの2補数化処理、開平演算で1ビットの2補数化処理を行い、加えて除算演算と開平演算で回路を切り替えるセレクタを備えている。部分剰余から除数を減算した結果を部分剰余レジスタに戻すパスは、一番論理段数の多いパスであり、この部分にセレクタを追加すると、回路遅延時間が増加するので、クロックを遅くするか、レジスタ追加が必要になり、除算演算と開平演算の処理速度を低下させてしまうという問題がある。
本発明の第2の実施形態は、上記の第1の実施形態と異なり、開平演算において2補数化された部分剰余ビットを右1ビットシフトするシフタ8、及び、開平演算において部分剰余下位ビットを右1ビットシフトするシフタ9を備え、また、2補数変換回路13―1,13−2に変えて、桁上げ保存加算器11の上位ビットから2ビットデータを取り出し、2補数化する2補数変換回路13を備え、j回目の部分剰余から除数・部分開平値選択データを減算した結果を、除算及び開平演算のどちらも、2ビット左シフトしてj+1回目の部分剰余データとして使用することにより、部分剰余から除数を減算した結果を部分剰余レジスタに戻すパスの回路遅延時間が抑制し、除算演算と開平演算の処理速度を向上させるものである。
次に本実施形態の除算演算の動作について説明する。第1の実施形態と同様に、まずスケーリングファクタ生成部1は、スケーリングに用いる乗数係数を除数上位ビットから生成する。53ビット×6ビット乗算器2は、入力された乗算係数により、入力された被除数をスケーリングする。53ビット×6ビット乗算器3は、入力された乗算係数により、入力された除数をスケーリングする。3倍除数生成器4は、スケーリング後の除数から3倍除数を生成する。
セレクタ23は、1サイクル目は乗算器2の出力を選択し、部分剰余レジスタ5に入力する。セレクタ24は、1サイクル目は乗算器2の出力を選択し、部分剰余レジスタ6に入力する。セレクタ25は、1サイクル目は乗算器3の出力を選択し、除数・部分開平値正レジスタ14に入力する。セレクタ26は、1サイクル目は3倍除数生成器4の生成結果を選択し、3倍除数・部分開平値負レジスタ15に入力する。
部分剰余レジスタ5には、上位4ビットが2補数表現で保持されるセットされる。部分剰余レジスタ6には、上位4ビット以外の下位ビットが冗長2進数表現{0,1}の数値でセットされる。
商生成回路7は、2補数表現で保持された部分剰余レジスタ5の4ビットデータから商2ビットを生成する。
除数・部分開平値選択10は、生成された商から除数を選択する為、スケーリングされた除数の{−3倍、−2倍、−1倍、0、1倍、2倍、3倍}データから選択する。
桁上げ保存加算器11は、選択された除数の下位ビットと、部分剰余レジスタ6に冗長2進数表現で保持された部分剰余下位ビットとを入力して、桁上げ伝播無く、部分剰余計算を行う。桁上げ保存加算器11からキャリー発生する場合は、キャリー伝播加算器12にキャリー信号を送信する。
キャリー伝播加算器12は、部分剰余レジスタ5に保持された部分剰余の上位ビットと選択された除数の上位ビットと、桁上げ保存加算器11からのキャリー信号を入力して加算を行う。
次サイクルで使用する部分剰余は、基数に従いシフトする必要があるが、部分剰余データの商生成で必要な上位ビットは2補数化して部分剰余レジスタ5に保持しているので、2補数変換回路13は、2補数化する必要のある上位2ビット分を部分剰余計算回路11から入力して冗長2進数表現から2補数表現に変換する。得られた2補数化部分剰余上位データを、セレクタ23を介し、シフタ27で2ビットシフトして部分剰余レジスタ5にセットし、次桁の商生成を行っていく。併せて、同様に、桁上げ保存加算器11の冗長2進数表現の出力のうち、2補数変換回路13に出力した上位ビット以外の下位ビットを、シフタ28により2ビットシフトし、セレクタ24を介して部分剰余レジスタ6にセットする。
除算演算においては、除数は固定値を使用するので、除数・部分開平値正レジスタ14のデータをセレクタ21で選択し、さらにセレクタ25ではセレクタ21の出力を選択することで除数データを保持する。同様に、3倍除数は固定値を使用するので、3倍除数・部分開平値負レジスタ15に保持された3倍除数データをセレクタ22で選択し、さらにセレクタ26ではセレクタ22の出力を選択することで保持する。
次に本実施形態の開平演算の動作について説明する。まず、被演算数を、乗算器2とセレクタ23、24を介して、部分剰余レジスタ5,6にセットする。
商生成回路7は、2補数形式で保持された部分剰余レジスタ5の4ビットデータから商1ビットを生成する。
1回目の部分開平値R(0)=0なので、除数・部分開平値正レジスタ14と3倍除数・部分開平値負レジスタ15には0がセットされる。
除数・部分開平値選択回路10は、商生成回路7で生成された商から、部分開平値を選択する。
シフタ8は、2補数形式で保持された部分剰余上位レジスタ5の出力を、下位側へ1ビットシフトする。
同様に、シフタ9は、冗長形式で保持された部分剰余下位レジスタ6の出力を下位側で1ビットシフトする。
桁上げ保存加算器11は、除数・部分開平値選択回路10が選択した部分開平値の下位データと、シフタ9で1ビット右シフトされた部分剰余下位データとを入力して、桁上げ伝播無く、部分剰余計算を行う。桁上げ保存加算器11からキャリー発生する場合は、キャリー伝播加算器12にキャリー信号を送信する。
キャリー伝播加算器12は、シフタ8で1ビット右シフトされた部分剰余上位データと、除数・部分開平値選択回路10が選択した部分開平値の上位データと、桁上げ保存加算器11からのキャリー信号とを入力して加算を行う。
次サイクルで使用する部分剰余は、上位ビットについては、2補数変換回路13により、桁上げ保存加算器11からの冗長2進数表現の入力の、2補数化が必要な上位2ビット分を2補数表現に変換する。演算の基数に従いシフトする必要があるが、部分剰余計算回路11及びキャリー伝播加算器12に入力する前に1ビット右シフトしているので、1ビット左シフトでなく、除算演算と同じく2ビット左シフトすることになる。シフタ27で2ビット左シフトし、セレクタ23を使用し、部分剰余レジスタ5にセットし、次桁の商生成を行っていく。
下位ビットについては、桁上げ保存加算器11の冗長2進数表現の出力のうち、2補数変換回路13に出力した上位ビット以外の下位ビットを、シフタ28により2ビットシフトし、セレクタ24を介して部分剰余レジスタ6にセットする。
除数・部分開平値選択回路10に入力される商を結合した部分開平値は、冗長2進数表現ではなく2補数表現であるために、オン・ザ・フライ商生成正回路17、オン・ザ・フライ商生成負回路18と、商生成回路7で生成された商を考慮しながら生成していく。オン・ザ・フライ商生成正回路17は、2補数表現で生成された部分開平値を生成し、生成された部分開平値は、セレクタ21、25を介して、除数・部分開平値正レジスタ14に保持される。同様にオン・ザ・フライ商生成負回路18は、2補数表現で生成された部分開平値-1を生成し、生成された部分開平値-1は、セレクタ22、26を介して、3倍除数・部分開平値負レジスタ15に保持されて、次桁の部分開平値生成において除数・部分開平値選択回路10に入力され使用される。
POSITIONレジスタ16は、商生成桁を指示する回路であり、初期状態でMSB=1のみがセットされる。
シフタ19は、1ビット右シフトされるので、サイクル毎に1ビット右シフトしたデータがPOSITIONレジスタ16にはセットされる事になる。
以上説明したように、本実施形態では、開平演算において、予め1ビット右シフトした部分剰余を用意しておき、このシフトした部分剰余から部分開平値を演算する事で、開平演算結果のシフト数を除算演算と同じシフト数に出来るので、2補数化回路を共用化出来、余分なセレクタ追加もなく、除算・開平演算の処理速度を落さない演算器を提供することができる。
数値計算結果の可視化で使用される座標計算などで使用される開平演算を含む高速計算分野。
本発明の除算・開平演算器の第1の実施形態の構成を示すとともに除算の動作を説明するためのブロック図である。 本発明の除算・開平演算器の第1の実施形態の構成を示すとともに開平演算の動作を説明するためのブロック図である。 本発明の除算・開平演算器の第2の実施形態の構成を示すブロック図である。
符号の説明
1 スケーリングファクタ生成部
2 53ビット×6ビット乗算器
3 53ビット×6ビット乗算器
4 除数3倍数生成部
5 部分剰余上位保持レジスタ
6 部分剰余下位保持レジスタ
7 商デジット生成回路
8 シフタ
9 シフタ
10 除数・部分開平値選択回路
11 桁上げ保存加算器(CSA)
12 キャリー伝播加算器(CPA)
13,13−1,13−2 2補数変換回路
14 除数・部分開平値正レジスタ
15 3倍除数・部分開平値負レジスタ
16 POSITIONレジスタ
17 オン・ザ・フライ商生成正回路
18 オン・ザ・フライ商生成負回路
19 シフタ
20,21,22,23,24,25,26 セレクタ
27,28 シフタ

Claims (2)

  1. 高基数の除算及び低基数の開平演算を行う除算・開平演算器において、
    部分剰余の上位ビットを参照して商を定める商生成手段と、
    前記部分剰余の前記上位ビットを2補数表現で保持し、前記部分剰余の前記上位ビット以外の下位ビットは冗長2進数表現で保持する部分剰余保持手段と、
    除数と部分開平値を演算種別に応じて切り替えて保持する除数・部分開平値保持手段と、
    前記商により前記除数・部分開平値保持手段からの除数及び部分開平値を選択する除数・部分開平値選択回路と、
    前記下位ビットの冗長2進数表現の部分剰余と前記除数・部分開平値選択回路の出力とを入力する桁上げ保存加算器と、
    前記上位ビットの2補数表現の部分剰余、前記除数・部分開平値選択回路の出力、及び前記桁上げ保存加算器のキャリー信号を加算する桁上げ伝播加算器と、
    前記桁上げ伝播加算器の出力と前記桁上げ保存加算器の出力の上位ビットから前記高基数に基づいて定められたビット数のビットデータとを入力して2補数化する第1の2補数変換手段と、
    前記桁上げ伝播加算器の出力と前記桁上げ保存加算器の上位ビットから前記低基数に基づいて取り出したビット数のビットデータとを入力して2補数化する第2の2補数変換手段と、
    除算においては第1の2補数変換回路を、開平演算においては第2の2補数変換手段の力を選択するセレクタと、
    前記セレクタの出力を、次回の部分剰余の上位ビットとして使用するよう、除算においては高基数に基づくビット数、開平演算においては低基数に基づくビット数シフトするシフタとを有することを特徴とする除算・開平演算器。
  2. 高基数の除算及び低基数の開平演算を行う除算・開平演算器において、
    部分剰余の上位ビットを参照して商を定める商生成手段と、
    前記部分剰余の前記上位ビットを2補数表現で保持し、前記部分剰余の前記上位ビット以外の下位ビットは冗長2進数表現で保持する部分剰余保持手段と、
    除数と部分開平値を演算種別に応じて切り替えて保持する除数・部分開平値保持手段と、
    前記商により前記除数・部分開平値保持手段からの除数及び部分開平値を選択する除数・部分開平値選択回路と、
    除算と開平演算の基数の違いにより定められるビット数、前記上位ビットの2補数表現の部分剰余を下位へシフトして前記桁上げ伝播加算器に入力する第1のシフタと、
    前記基数の違いにより定められるビット数、前記下位ビットの冗長2進数表現の部分剰余を下位へシフトして前記桁上げ保存加算器に入力する第2のシフタと、
    前記第2のシフタの出力と、前記除数・部分開平値選択回路の出力とを入力する桁上げ保存加算器と、
    前記第1のシフタの出力と、前記除数・部分開平値選択回路の出力、及び前記桁上げ保存加算器のキャリー信号とを加算する桁上げ伝播加算器と、
    前記桁上げ保存加算器の出力の上位ビットから前記高基数に基づいて取り出したビット数のビットデータ及び前記桁上げ伝播加算器の出力を入力して2補数化する2補数変換手段と、
    前記2補数変換手段の出力を次回の部分剰余の上位ビットとして使用するよう前記高基数に基づくビット数シフトする第3のシフタとを有することを特徴とする除算・開平演算器。
JP2004362300A 2004-12-15 2004-12-15 除算・開平演算器 Active JP4273071B2 (ja)

Priority Applications (9)

Application Number Priority Date Filing Date Title
JP2004362300A JP4273071B2 (ja) 2004-12-15 2004-12-15 除算・開平演算器
CA002530015A CA2530015C (en) 2004-12-15 2005-12-13 Division and square root arithmetic unit
US11/299,697 US7921149B2 (en) 2004-12-15 2005-12-13 Division and square root arithmetic unit
DK05027390T DK1672481T3 (da) 2004-12-15 2005-12-14 Aritmetisk divisions- og kvadratrodsenhed
EP05027390A EP1672481B1 (en) 2004-12-15 2005-12-14 Division and square root arithmetic unit
DE602005011742T DE602005011742D1 (de) 2004-12-15 2005-12-14 Arithmetische Divisions- und Quadratwurzeleinheit
KR1020050123009A KR100756137B1 (ko) 2004-12-15 2005-12-14 제산 및 제곱근 연산 유닛
AU2005256094A AU2005256094A1 (en) 2004-12-15 2005-12-14 Division and square root arithmetic unit
SG200508127A SG123731A1 (en) 2004-12-15 2005-12-15 Division and square root arithmetic unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004362300A JP4273071B2 (ja) 2004-12-15 2004-12-15 除算・開平演算器

Publications (2)

Publication Number Publication Date
JP2006172035A JP2006172035A (ja) 2006-06-29
JP4273071B2 true JP4273071B2 (ja) 2009-06-03

Family

ID=35999596

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004362300A Active JP4273071B2 (ja) 2004-12-15 2004-12-15 除算・開平演算器

Country Status (9)

Country Link
US (1) US7921149B2 (ja)
EP (1) EP1672481B1 (ja)
JP (1) JP4273071B2 (ja)
KR (1) KR100756137B1 (ja)
AU (1) AU2005256094A1 (ja)
CA (1) CA2530015C (ja)
DE (1) DE602005011742D1 (ja)
DK (1) DK1672481T3 (ja)
SG (1) SG123731A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7509365B2 (en) * 2005-02-11 2009-03-24 International Business Machines Corporation Inverting data on result bus to prepare for instruction in the next cycle for high frequency execution units
EP2341425A1 (en) * 2009-12-30 2011-07-06 STMicroelectronics (Grenoble 2) SAS control of electric machines involving calculating a square root
US8819098B2 (en) 2010-11-23 2014-08-26 International Business Machines Corporation Computation of a remainder by division using pseudo-remainders
US8868633B2 (en) * 2012-03-30 2014-10-21 Advanced Micro Devices, Inc. Method and circuitry for square root determination
RU2510072C1 (ru) * 2012-10-25 2014-03-20 Открытое акционерное общество "Российская корпорация ракетно-космического приборостроения и информационных систем" (ОАО "Российские космические системы") Устройство деления и извлечения квадратного корня
US9348796B2 (en) 2013-09-19 2016-05-24 International Business Machines Corporation Arithmetic operation in a data processing system
US9785407B2 (en) * 2014-11-21 2017-10-10 Arm Limited Data processing apparatus having combined divide-square root circuitry
US10209957B2 (en) * 2015-05-04 2019-02-19 Samsung Electronics Co., Ltd. Partial remainder/divisor table split implementation
US10209959B2 (en) 2016-11-03 2019-02-19 Samsung Electronics Co., Ltd. High radix 16 square root estimate
WO2020090024A1 (ja) * 2018-10-31 2020-05-07 富士通株式会社 演算処理装置
US11119731B2 (en) 2019-03-12 2021-09-14 Arm Limited Apparatus and method for rounding
US11281428B2 (en) * 2019-03-12 2022-03-22 Arm Limited Conversion circuitry

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4939686A (en) * 1987-05-18 1990-07-03 Weitek Corporation Method and apparatus for shared radix 4 division and radix 4 square root
US5023827A (en) * 1988-08-18 1991-06-11 Digital Equipment Corporation Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
US5128891A (en) 1990-04-02 1992-07-07 Advanced Micro Devices, Inc. High speed divider with square root capability
US5386376A (en) * 1992-08-31 1995-01-31 Intel Corporation Method and apparatus for overriding quotient prediction in floating point divider information processing systems
US5687106A (en) * 1995-03-31 1997-11-11 International Business Machines Corporation Implementation of binary floating point using hexadecimal floating point unit
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
JP3514566B2 (ja) 1995-12-13 2004-03-31 株式会社ルネサステクノロジ 除算/開平回路
JPH10187420A (ja) 1996-12-26 1998-07-21 Hitachi Ltd 除算・開平演算器
US6490607B1 (en) * 1998-01-28 2002-12-03 Advanced Micro Devices, Inc. Shared FP and SIMD 3D multiplier
US6108682A (en) * 1998-05-14 2000-08-22 Arm Limited Division and/or square root calculating circuit
JP3517162B2 (ja) 1999-09-22 2004-04-05 株式会社東芝 除算・開平演算装置
JP3551113B2 (ja) 2000-02-07 2004-08-04 日本電気株式会社 除算器
WO2002029546A1 (fr) * 2000-09-26 2002-04-11 Hitachi, Ltd. Unite de calcul et dispositif de circuit electronique utilisant cette unite
US7016930B2 (en) * 2002-10-25 2006-03-21 Arm Limited Apparatus and method for performing operations implemented by iterative execution of a recurrence equation

Also Published As

Publication number Publication date
US7921149B2 (en) 2011-04-05
KR20060067874A (ko) 2006-06-20
EP1672481B1 (en) 2008-12-17
US20060129623A1 (en) 2006-06-15
EP1672481A1 (en) 2006-06-21
JP2006172035A (ja) 2006-06-29
CA2530015C (en) 2010-01-05
DE602005011742D1 (de) 2009-01-29
DK1672481T3 (da) 2009-03-16
AU2005256094A1 (en) 2006-06-29
CA2530015A1 (en) 2006-06-15
KR100756137B1 (ko) 2007-09-05
SG123731A1 (en) 2006-07-26

Similar Documents

Publication Publication Date Title
Mohan et al. Residue Number Systems
Lang et al. A radix-10 combinational multiplier
US7921149B2 (en) Division and square root arithmetic unit
JPH02196328A (ja) 浮動小数点演算装置
JP2835153B2 (ja) 高基数除算器
US8898215B2 (en) High-radix multiplier-divider
Lang et al. A radix-10 digit-recurrence division unit: algorithm and architecture
US5132925A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
US5023827A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
JPH0773227A (ja) 論理回路の自動設計方法、そのシステム及びその装置並びに乗算器
US6847986B2 (en) Divider
JP2005018759A (ja) 2の浮動小数点数乗の概算を実施するための方法および装置
Nannarelli Tunable floating-point for energy efficient accelerators
US20230086090A1 (en) Methods and Apparatus for Quotient Digit Recoding in a High-Performance Arithmetic Unit
JP3660075B2 (ja) 除算装置
Takagi et al. A VLSI algorithm for computing the Euclidean norm of a 3D vector
US6317772B1 (en) Split remainder divider
Mohan et al. Implementation of Quaternary Signed Adder System
JPH086766A (ja) 正弦余弦演算装置
US7266578B2 (en) Method and hardware for computing reciprocal square root and program for the same
JP3793505B2 (ja) 演算器及びそれを用いた電子回路装置
JP2795253B2 (ja) 除算器
Shapran et al. DIVISION USING THE BASE RADIX16 NUMBER SYSTEM TO FORM FRACTION DIGITS
JP2580413B2 (ja) 乗算処理装置
JP2000010763A (ja) 除算回路

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20070126

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20080616

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081007

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090128

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: 20090224

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: 20090302

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120306

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4273071

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: 20120306

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130306

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130306

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140306

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350