JPH10111791A - 除算装置 - Google Patents

除算装置

Info

Publication number
JPH10111791A
JPH10111791A JP8264902A JP26490296A JPH10111791A JP H10111791 A JPH10111791 A JP H10111791A JP 8264902 A JP8264902 A JP 8264902A JP 26490296 A JP26490296 A JP 26490296A JP H10111791 A JPH10111791 A JP H10111791A
Authority
JP
Japan
Prior art keywords
divisor
multiplier
redundant binary
quotient
bits
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
Application number
JP8264902A
Other languages
English (en)
Other versions
JP3660075B2 (ja
Inventor
Hiroyuki Makino
博之 牧野
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP26490296A priority Critical patent/JP3660075B2/ja
Priority to TW086101357A priority patent/TW521207B/zh
Priority to US08/801,133 priority patent/US5999962A/en
Priority to KR1019970009198A priority patent/KR100329914B1/ko
Publication of JPH10111791A publication Critical patent/JPH10111791A/ja
Application granted granted Critical
Publication of JP3660075B2 publication Critical patent/JP3660075B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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/52Multiplying; Dividing
    • G06F7/535Dividing only

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Error Detection And Correction (AREA)

Abstract

(57)【要約】 【課題】 必要精度に応じて乗算器の出力を再び入力に
戻して何回も用いるため、乗算での遅延時間の無駄が多
く、構成が複雑であるという課題があった。 【解決手段】 除数1に基づいて生成した第1の乗数を
除数および被除数2に乗じることにより、それぞれ中間
除数および中間商を演算し、この演算結果に基づいて必
要回数演算を繰り返すことによって、上記中間除数を所
定の値に近づけ、同時に上記中間商を上記被除数2を上
記除数1で割った商に近づけるようにしたものである。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、半導体集積回路
による除算を実行するための除算装置に関し、特にその
除算処理の高速化に関するものである。
【0002】
【従来の技術】近年、コンピュータの高性能化に伴いコ
ンピュータグラフィックス技術が急速に発展している。
コンピュータグラフィックスでは膨大な量の数値演算が
要求されるため、その実現には極めて高速の数値演算処
理が必要とされる。またコンピュータグラフィックにお
いては、通常の数値演算処理に比べて除算の頻度が高
く、これまでソフトウエアを用いてある程度時間をかけ
て処理していたのに対し、除算をハードウエアで高速に
処理する必要が生じている。
【0003】図19は例えば、特開平1−321517
号公報に記載された従来のハードウエアによる除算装置
を示す回路構成図であり、図において、123はROM
等の記憶手段、125,126,127,128は第
1、第2、第3、第4のデータバスセレクタ(MU
X)、133,134は第1、第2の乗算器、137は
2の補数器、139は加算器である。
【0004】次に動作について説明する。記憶手段12
3は除数1(ai )をアドレス入力として除数の逆数の
近似値を出力し、第1のデータバスセレクタ125は記
憶手段123の出力124と2の補数器137の出力1
38とを入力とし、第2のデータバスセレクタ126は
除数と第1の乗算器133の出力135と第2の乗算器
134の出力136とを入力とし、第3のデータバスセ
レクタ127は記憶手段123の出力124と2の補数
器137の出力138とを入力とし、第4のデータバス
セレクタ128は被除数と第2の乗算器134の出力1
36とを入力とし、第1の乗算器133は第1のデータ
バスセレクタ125の出力129を第1の入力とし、第
2のデータバスセレクタ126の出力130を第2の入
力として乗算結果を第2のデータバスセレクタ126、
2の補数器137および加算器139へ出力し、第2の
乗算器134は第3のデータバスセレクタ127の出力
131を第1の入力とし、第4のデータバスセレクタ1
28の出力132を第2の入力として、乗算結果を第
2、第4のデータバスセレクタ126,128および加
算器139へ出力し、加算器139は第1、第2の乗算
器133,134の出力の和を商として出力するもので
ある。
【0005】
【発明が解決しようとする課題】従来の除算装置は以上
のように構成されているので、次のような課題があっ
た。 1.第1の乗算器および第2の乗算器はともにm×m/
2ビット構成となっており、計算のループの度にこの乗
算が行われることになり、乗算器による遅延時間が大き
い。通常、乗算器は乗数と被乗数から複数の部分積を生
成し、これを例えばキャリーセーブアダー等によって部
分積が2つになるまで足し上げ、さらにこの2つの部分
積を加算器によって最終加算することによって乗算を行
う。この乗算を高速化するために、従来ブースのアルゴ
リズムによる部分積数の低減、ワレスのトリーによる部
分積の高速な足し上げ、およびキャリールックアヘッド
方式による高速の最終加算などの工夫が行われている。
【0006】しかし、このような工夫を行っても第1、
第2の乗算器による遅延時間は依然大きく、これを複数
回実行する従来の除算装置では、この実行回数に比例す
る遅延時間がかかることを避けることはできない。すな
わち、上記従来の除算装置のような通常の乗算器を用い
ると、乗算器における遅延のために除算時間が長くかか
ってしまう。
【0007】2.計算のループの度に2の補数器を通過
するが、2の補数器は一種の加算器で構成するため、こ
の加算器における遅延時間が加わりさらに除算実行時間
が長くなる。また、2の補数器を別に用いなければなら
ないので、ハードウエア量も増加する。
【0008】3.一つの除算が行われる間、回路全体が
占有されるため、その1つの除算が終了するまで次の計
算をはじめることができない。したがって、パイプライ
ン処理による高速化ができない。
【0009】この発明は上記のような課題を解決するた
めになされたもので、除算処理の高速化を図り、構成の
単純化を図ることを実現した除算装置を得ることを目的
とする。
【0010】
【課題を解決するための手段】請求項1記載の発明に係
る除算装置は、被除数および除数を入力し、上記除数に
基づいて生成した第1の乗数を、除数および被除数に乗
じることにより、それぞれ第1の中間除数および中間商
を得る第1の演算手段と、上記第1の中間除数に基づい
て生成した第2の乗数を、上記第1の中間除数および上
記第1の中間商に乗ずることにより、それぞれ第2の中
間除数および上記第2の中間商を得る如く前段の演算結
果に基づいて必要回数演算を繰り返すことによって、上
記中間除数を所定の値に近づけ、同時に上記中間商を上
記被除数を上記除数で割った商に近づける必要回数演算
手段とを備え、上記第1および第2の乗数のビット数を
それぞれ上記除数および上記中間除数のビット数よりも
小さくしたものである。
【0011】請求項2記載の発明に係る除算装置は、除
数の上位側の所定桁数ビットあるいはそのうちの最上位
1ビットを除くビット桁からなる第1の乗数を入力して
制御信号を出力する制御回路と、上記第1の乗数と上記
除数とを乗じることによって整数部分が“1”で小数点
以下第1位から少なくとも2個のゼロが並ぶ冗長二進表
現の第1の中間除数を得る第1の乗算器と、上記第1の
乗数と上記被除数とを乗じることによって冗長二進表現
の第1の中間商を得る第2の乗算器と、上記第1の中間
除数の上位複数桁を取り出して小数点以下第3位と第4
位の冗長二進ビットを正負反転させることによって第2
の乗数を生成し、この第2の乗数と上記第1の中間除数
とを乗じることによって、整数部分が“1”で小数点以
下第1位から少なくとも3個のゼロが並ぶ冗長二進表現
の第2の中間除数を得る第3の乗算器と、上記第2の乗
数と上記第1の中間商とを乗じることによって冗長二進
表現の第2の中間商を得る第4の乗算器と、整数部分が
“1”で小数点以下m個のゼロが続く第2の中間除数に
対して上位n桁(m+3≦n≦2m+1)を取り出して
小数点以下第(m+1)位から第(n−1)位までの冗
長二進ビットを正負反転させることによって第3の乗数
を生成し、この第3の乗数と上記第2の中間除数とを乗
じることによって、整数部分が“1”で小数点以下第1
位から少なくとも(2m−1)個のゼロが並ぶ冗長二進
表現の第3の中間除数を得る第a(aは5以上の奇数)
の乗算器と、上記第3の乗数と上記第2の中間商とを乗
じることにより冗長二進表現の第3の中間商を得る第c
(cは6以上の偶数)の乗算器と、整数部分が“1”で
小数点以下p個のゼロが続く第3の中間除数に対して上
位q桁(p+3≦q≦2p+1)を取り出して小数点以
下第(p+1)位から第(q−1)位までの冗長二進ビ
ットを正負反転させることによって第4の乗数を生成
し、この第4の乗数と上記第3の中間商とを乗じること
により冗長二進表現の商を得る第b(bは6以上の偶
数)の乗算器とを備え、上記第1から第4の乗算器によ
る演算実行後、上記第a(aは5以上の奇数)の乗算器
と第b(bは6以上の偶数)の乗算器による演算を必要
回数繰り返し、最後に上記第c(cは6以上の偶数)の
乗算器第3のステップを実行する。
【0012】請求項3記載の発明に係る除算装置は、得
られた冗長二進表現の商を二進数に変換して出力する変
換器を備えたものである。
【0013】請求項4記載の発明に係る除算装置は、制
御回路は除数(ai )の上位複数桁ビットを入力して、
下記演算式を実行して第1の乗数を生成するものであ
る。 1≦(ai )<5/4のとき :(ci )=(ai ) 5/4≦(ai )<13/8のとき:(ci )=(3/4)×(ai ) 13/8≦(ai )<2のとき :(ci )=(1/2)×(ai
【0014】請求項5記載の発明に係る除算装置は、元
の除数と小数点以下2桁を“0”とするに必要なだけシ
フトさせた該除数とを引き算して第1の中間除数を得る
ものである。
【0015】請求項6記載の発明に係る除算装置は、制
御回路は除数のうちの小数点以下第1位から第3位まで
の3ビットを入力として、上記除数の各ビットを全てゼ
ロにするか、1ビット下位桁側へシフトするか、2ビッ
ト下位桁側へシフトするかを制御する信号と、冗長二進
表現された第1の中間除数の小数点以下第3桁の値を示
す信号とを出力させるものである。
【0016】請求項7記載の発明に係る除算装置は、第
1の乗算器は、制御信号により除数の各ビットを全てゼ
ロにするか、1ビット下位桁側ヘシフトするか、2ビッ
ト下位桁側ヘシフトするかを行うシフタ回路を備え、こ
のシフタ回路の出力と上記除数とから上記冗長二進表現
された第1の中間除数の小数点以下第4桁目以下を生成
するものである。
【0017】請求項8記載の発明に係る除算装置は、第
2の乗算器は、制御信号により被除数の各ビットを全て
ゼロにするか、1ビット下位桁側ヘシフトするか、2ビ
ット下位桁側ヘシフトするかを行うシフタ回路とを備
え、このシフタ回路の出力と上記被除数とから上記冗長
二進表現された第1の中間商を生成するものである。
【0018】請求項9記載の発明に係る除算装置は、第
3あるいは第aの乗算器は、入力される第1の中間除数
を符号反転して二つの冗長二進数を発生させる二つの符
号反転器と、上記二つの冗長二進数を加算して一つの冗
長二進数を出力する二つの冗長二進加算器とを備えたも
のである。
【0019】請求項10記載の発明に係る除算装置は、
第4あるいは第bの乗算器は、入力された第1の中間商
を符号反転して二つの冗長二進数を発生させる二つの符
号反転器と、上記二つの冗長二進数を加算して一つの冗
長二進数を出力する二つの冗長二進加算器とを備えたも
のである。
【0020】請求項11記載の発明に係る除算装置は、
符号反転器は、一対の冗長二進数の成分を入力し、冗長
二進数の制御入力によって出力を選択するマルチプレク
サ回路を備えたものである。
【0021】請求項12記載の発明に係る除算装置は、
冗長二進加算器は、二組の冗長二進数を加算して冗長二
進数を出力する各桁毎の加算器を複数備えたものであ
る。
【0022】請求項13記載の発明に係る除算装置は、
被除数として定数“1”を用いることにより、除数の逆
数を商として出力するものである。
【0023】請求項14記載の発明に係る除算装置は、
第2の中間除数に対して上位n桁または第3の中間除数
に対して上位q桁を、(n−m−1)または(q−p−
1)が2のべき乗から1を引いた値となるように設定す
るものである。
【0024】請求項15記載の発明に係る除算装置は、
中間除数と同時に制御信号を選択し、この二つから演算
を実行した演算器の出力を選択するマルチプレクサと、
中間商を選択し、この中間商を上記制御信号と乗算した
演算器の出力を選択するマルチプレクサとを備えたもの
である。
【0025】請求項16記載の発明に係る除算装置は、
クロック信号で制御され、中間除数および中間商を一時
蓄え、演算器に出力するパイプラインレジスタを備えた
ものである。
【0026】請求項17記載の発明に係る除算装置は、
除数の上位側の所定桁数ビットあるいはそのうちの最上
位1ビットを除く所定桁数のビットからなるビット列を
アドレス入力とし、そこから第1の乗数を出力する記憶
手段と、上記第1の乗数と上記除数とを乗じることによ
って整数部分が“1”で小数点以下第1位から少なくと
もr個のゼロが並ぶ冗長二進表現の第1の中間除数を得
る第1の乗算器と、上記第1の乗数と上記被除数とを乗
じることによって冗長二進表現の第1の中間商を得る第
2の乗算器と、上記第1の中間除数に対して上位s桁
(r+3≦s≦2r+1)を取り出して小数点以下第
(r+1)位から第(s−1)位までの冗長二進ビット
を正負反転させることによって第2の乗数を生成し、こ
の第2の乗数と上記第1の中間除数とを乗じることによ
って、整数部分が“1”で小数点以下第1位から少なく
とも(2r−1)個のゼロが並ぶ冗長二進表現の第2の
中間除数を得る第t(tは3以上の奇数)の乗算器と、
上記第2の乗数と上記第1の中間商とを乗じることによ
って冗長二進表現の第2の中間商を得る第u(uは4以
上の偶数)の乗算器と、整数部分が“1”で小数点以下
v個のゼロが続く第2の中間除数に対して上位w桁(v
+3≦w≦2v+1)を取り出して小数点以下第(v+
1)位から第(w−1)位までの冗長二進ビットを正負
反転させることによって第3の乗数を生成し、この第3
の乗数と上記第2の中間除数とを乗じることにより,冗
長二進表現の商を得る第y(yは4以上の偶数)の乗算
器とを備え、上記第1および第2の乗算器による演算実
行後、上記第t(tは3以上の奇数)の乗算器と第u
(uは4以上の偶数)の乗算器による演算を必要回数繰
り返し、最後に上記第y(yは4以上の偶数)の乗算器
による演算を実行するものである。
【0027】
【発明の実施の形態】以下、この発明の実施の一形態を
説明する。 実施の形態1.図1はこの発明の実施の形態1による除
算装置の構成を示すブロック図であり、図において、1
は除数(ai )、2は被除数(bi )であり、この実施
の形態1では、除数1(ai )および被除数2(bi
はともに整数部分1桁、小数点以下7桁で合計8桁の2
進数、すなわち、 (ai )=a0 .a1234567 [1] (bi )=b0 .b1234567 [2] とし、さらに最上位の一の位は“1”とする。すなわ
ち、 a0 =1 [3] b0 =1 [4] とする。
【0028】除算においては、除数および被除数の小数
点位置を移動させても商のビット並びは変わらないの
で、式[1]〜[4]の仮定によって一般性が失われる
ことはない。3は除数1(ai )のうちの最上位a0
除く上位3ビットの第1の乗数(a1 〜a3 )である。
【0029】6は第1の乗数3(a1 〜a3 )を入力と
して制御信号7を発生させる制御回路、4は除数1(a
i )と制御信号7から乗算を行う第1の乗算器、5は被
除数2(bi )と制御信号7から乗算を行う第2の乗算
器、8は第1の乗算器4の出力結果で冗長2進数で表さ
れた第1の中間除数(ci )、9は第2の乗算器5の出
力結果で冗長2進数で表された第1の中間商(di )で
ある。
【0030】10は第1の中間除数8(ci )のうちの
2ビットの第2の乗数(c3 〜c4)、11は第1の中
間除数8(ci )と第2の乗数10(c3 〜c4 )に基
づいて乗算を行う第3の乗算器、12は第1の中間商9
(di )と第2の乗数10(c3 〜c4 )に基づいて乗
算を行う第4の乗算器、13は第3の乗算器11の出力
結果で冗長2進数で表された第2の中間除数(ei )、
14は第2の乗算器5の出力結果で冗長2進数で表され
た第2の中間商(fi )である。
【0031】15は第2の中間除数13(ei )のうち
の3ビットの第3の乗数(e4 〜e6 )、16は第2の
中間除数13(ei )と第3の乗数15(e4 〜e6
に基づいて乗算を行う第5の乗算器、17は第2の中間
商14(fi )と第3の乗数15(e4 〜e6 )に基づ
いて乗算を行う第6の乗算器、18は第5の乗算器16
の出力結果で冗長2進数で表された第3の中間除数(g
i )、19は第4の乗算器12の出力結果で冗長2進数
で表された第3の中間商(hi )である。
【0032】20は第3の中間除数18(gi )のうち
の5ビットの第4の乗数(g6 〜g10)、21は第3の
中間商19(hi )と第4の乗数20(g6 〜g10)に
基づいて乗算を行う第7の乗算器、22は第7の乗算器
21の出力結果で冗長2進数で表された第4の中間商
(ki )である。23は冗長二進数で表された第4の中
間商22(ki )を通常の二進数に変換する冗長二進→
二進変換器、24は除算の答えとなる商(qi )であ
る。
【0033】次に動作について説明する。まず、除数1
(ai )の上位4ビットから以下のような乗算を実行す
る。 1≦(ai )<5/4のとき :(ci )=(ai ) [5] 5/4≦(ai )<13/8のとき:(ci )=(3/4)×(ai ) [6] 13/8≦(ai )<2のとき :(ci )=(1/2)×(ai ) [7] これによって、全ての入力(ai )に対して 3/4<(ci )<5/4 [8] とすることができる。
【0034】ここで(ci )を各桁が−1,1,0の3
値をもついわゆる冗長二進数で表現すると、 (ci )=1.00c456 … [9] という形に書くことができる。なぜならば、冗長二進表
現では3/4と5/4は、 3/4=1.00−1−1−1… [10] 5/4=1.00111… [11] と表されるので、その間の値を持つ(ci )は必ず式
[9]の形で表すことができるからである。
【0035】第2の乗算器5においては、被除数2(b
i )に対して式[5]〜[7]と同様の以下の計算が行
われる。 1≦(bi )<5/4のとき :(ci )=(bi ) [12] 5/4≦(bi )<13/8のとき :(ci )=(3/4)×(bi ) [13] 13/8≦(bi )<2のとき :(ci )=(1/2)×(bi ) [14]
【0036】次に、第3の乗算器11および第5の乗算
器16における乗算を説明するために、まず、次の一般
的な冗長二進数の性質について説明する。仮に冗長二進
数(xi )が、 (xi )=1.00・・0xn+1 …x2n2n+1… [15] という形で表されるとする。ただし、小数第1位から始
まる“0”はn個続くとする。
【0037】ここで、 α=(xn+1 …x2n)/22n [16] β=(0.x2n+1…)/22n [17] と置くと、 (xi )=1+α+β と書ける。(xi )は冗長二進表現なので、 −(2n −1)/22n<α<(2n −1)/22n すなわち、|α|<(2n −1)/22n [18] −1/22n<β<1/22n すなわち、|β|<1/22n [19] となる。
【0038】ここで、(yi )を、 (yi )=(1+α+β)×(1−α) [20] と置いて計算すると、 (yi )=1−α2 −αβ+β [21] となる。
【0039】この第2項目以降(−α2 −αβ+β)の
絶対値をεと置くと、式[16]および[17]から、 ε=|α|2 +|α||β|+|β| <((2n −1)/22n2 +((2n −1)/22n×1/22n) +(1/22n)=(22n+1−2n )/24n <2-(2n-1) [22] となる。
【0040】したがって、(yi )は冗長二進表現で次
のように表すことができる。 (yi )=1.00・・・0y2n2n+1… [23] ただし、小数第1位から続く“0”の数は(2n−1)
個である。
【0041】このように式[15]の形で表される任意
の冗長二進数(xi )に対し、その小数以下はじめて
“0”でない数字が現れる桁から下位方向に向かって、
小数第1位から続く“0”の数nと同数の桁数分だけ取
り出したものをαとし、(1−α)を乗ずることによっ
て、式[23]のような小数第1位以下(2n−1)個
の“0”が続く冗長二進数(yi )を得ることができ
る。
【0042】第3の乗算器11および第5の乗算器16
は、以上の考えに基づいて乗算を行うためのもので、ま
ず第2の乗算器5においては式[9]のように小数以下
2個の“0”を持つ第1の中間除数8(ci )と数
(1.00−c3 −c4 )との掛け算が行われる。その
結果、出力の第2の中間除数13(ei )は、 (ei )=(ci )×(1.00−c3 −c4 )=1.000e45 … [24] と小数以下3個の“0”が並ぶ形で表される。
【0043】(1.00−c3 −c4 )は二つの冗長二
進ビットc3 とc4 とを符号反転することで生成できる
ので、(ci )を被乗数とした場合、第2の乗数10は
3とc4 との二つから生成することができる。例え
ば、c3 が“1”の場合はこれを“−1”とし、“0”
の場合は“0”、“−1”の場合は“1”とする。同様
に第5の乗算器16においては小数以下3個の“0”を
持つ第2の中間除数13(ei )と(1.000−e4
−e5 −e6 )との掛け算が行われる。
【0044】その結果、出力の第3の中間除数18(g
i )は、 (gi )=1.00000g67 … [25] と小数以下5個の“0”が並ぶ形で表される。(1.0
00−e4 −e5 −e6)は三つの冗長二進ビットe
4 ,e5 ,e6 を符号反転することで生成できるので、
(ei )を被乗数とした場合、第3の乗数15はe4
5 ,e6 の三つから生成することができる。
【0045】また、第4の乗算器12では第1の中間商
(di )と第2の乗数10(c3 〜c4 )より生成され
た(1.00−c3 −c4 )との乗算が行われ、その結
果、第2の中間商14(fi )を生成し、第6の乗算器
17では第2の中間商14(fi )と第3の乗数15
(e4 〜e6 )より生成された(1.000−e4 −e
5 −e6 )との乗算が行われ、その結果、第3の中間商
19(hi )を生成し、第7の乗算器21では第3の中
間商19(hi )と第3の中間除数18の一部の第4の
乗数20(g6 〜g10)から生成された(1.0000
0−g6 −g7 −g8 −g9 −g10)との乗算が行わ
れ、その結果、第4の中間商22(ki )を生成する。
【0046】このような乗算により、中間商は以下の理
由で次第に被除数2(bi )を除数1(ai )で割った
商に近づいていく。すなわち、 r=(m0 .m12 )×(1.00−c3 −c4 ) ×(1.000−e4 −e5 −e6 ) ×(1.00000−g6 −g7 −g8 −g9 −g10) [26] とおくと、第4の中間商22(ki )は、 (ki )=r×(bi ) [27] と書ける。
【0047】また、 (m0 .m12 )×(1.00−c3 −c4 ) ×(1.000−e4 −e5 −e6 )×(ai )=(gi ) [28] なので、 r×(ai )=(gi ) ×(1.00000−g6 −g7 −g8 −g9 −g10) [29] となり、式[23]よりこれは小数点以下(2×5−
1)=9個の“0”が並ぶ。すなわち、 1−10-9<r×(ai )<1+10-9 [30] となる。
【0048】式[27]を、 (ki )=(r×(ai ))×((bi )/(ai )) [31] と変形して式[28]を代入し、さらに、 (bi )/(ai )<2 [32] であることを用いると次の式が得られる。 (bi )/(ai )−10-8<(ki )<(bi )/(ai )+10-8 [33]
【0049】したがって、第4の中間商22(ki )は
小数点以下7桁の精度で商(bi )/(ai )に等しい
ことが分かる。このように、この実施の形態1により入
力の乗数および被乗数の精度に等しい精度を持つ商の値
を得ることができる。
【0050】さらに、第4の中間商22(ki )は冗長
二進→二進変換器23によって冗長二進数から通常の二
進数に変換され、最終的に二進数の商24(qi )とし
て出力される。
【0051】以上のように、実施の形態1によれば、乗
算器はそれぞれ冗長二進数による乗算を行うため、従来
の乗算器で行っていたキャリールックアヘッド方式など
による最終加算が不要となり高速化が可能となる。ま
た、従来例のように、2の補数器を使うことなしに各乗
算器の除数を被除数の一部から容易に生成できるので、
さらに高速化が可能になる。また、データが図1の上か
ら下に向かって一方向に流れるので、実行中に次のデー
タを入力することも可能で、さらに処理能力を向上させ
ることができる。
【0052】なお、実施の形態1では商の精度が小数点
以下7桁までとした場合について示したが、商に対して
より高精度が要求される際には、この実施の形態1に述
べた計算ステップをさらに増加させることによって任意
の精度の商を得ることができる。
【0053】実施の形態2.図2はこの発明の実施の形
態2による制御回路6の説明図であり、3つの入力信号
1 ,a2 ,a3 から2つの出力m1 ,m2 を生成す
る。式[5]〜[7]の乗算は制御回路6に図3の表に
示した機能を持たせることによって実現できる。すなわ
ち、制御回路6の出力である制御信号7を3桁の冗長二
進数、 (mi )=m0 .m12 (ただしm0 =1) [34] で表し、入力信号a1 〜a3 に対して図3の表に示すよ
うな規則で(mi )を発生させて、これと除数1(a
i )とを第1の乗算器4によって掛け合わせることによ
り、式[5]〜[7]のような乗算が実行でき、その結
果、式[9]のような第1の中間除数8(ci )を得る
ことができる。m0 は常に“1”なので特に発生させる
必要はない。
【0054】また、第2の乗算器5では式[12]〜
[14]に従って(mi )と被除数2(bi )との積が
行われ、その結果が冗長二進数の第1の中間商9(d
i )として出力される。
【0055】以上のように、この実施の形態2によれ
ば、上記構成の制御回路6を用いることにより前記実施
の形態1の効果を実現することができる。なお、冗長二
進数は3値をとるため、通常2ビットの信号の組み合わ
せで表現されるが、この実施の形態2はそのあらゆる表
現方法に対して適用することができる。
【0056】実施の形態3.図4および図5はこの発明
の実施の形態3による制御回路6と第1の乗算器4によ
る第1の中間除数8(ci )の生成方法を示す説明図で
あり、図4および図5において、除数1(ai )の上位
から4桁の組み合わせはa0 が常に“1”なので全部で
8通あり、図4においてはそれぞれの場合をcase1
〜case8として示している。第1の中間除数8(c
i )は、式[9]のように小数点以下上位2桁を“0”
とする必要があるが、もともとa1 およびa2 が“0”
である。case1とcase2については、そのまま
(ai )を(ci )とすればよい。これは式[5]に対
応する。case3〜case8の場合に行う処理を図
5に示す。
【0057】case3〜case5はそれぞれ図5の
(a)〜(c)に対応しており、いずれも自分自身を右
方向へ2ビットシフトしたものを自分自身から引くとい
う操作を行っている。これは、式[6]に対応した操作
である。case3およびcase4では引いた結果の
上位4桁が“1.001”となるので、そのまま出力す
ればよい。これに対してcase5では引いた結果の上
位4桁が“1.1−1−1”となるが、冗長二進数にお
いて“1−1−1”は“001”と同じ値なので、上位
4桁を強制的に“1.001”とすることができる。
【0058】case6〜case8はそれぞれ図5の
(d)〜(f)に対応しており、いずれもcase3〜
case5と同様に自分自身を右方向へ1ビットシフト
したものを自分自身から引くという操作を行っている。
これは、式[7]に対応した操作である。case6は
引いた値の上位4桁が“1.0−11”となるが冗長二
進数においては“−11”は“0−1”に等しいので、
上位4桁を強制的に“1.00−1”とすることができ
る。case7およびcase8では引いた値の上位4
桁がそれぞれ“1.00−1”および“1.000”と
なるのでそのまま出力することができる。
【0059】このように図4および図5に示されたルー
ルによって第1の中間除数8(ci)を生成することに
より、式[9]の形の第1の中間除数8(ci )を容易
に得ることができる。なお、この実施の形態3も冗長二
進のあらゆる表現方法に対して適用することができる。
【0060】実施の形態4.図6は上記実施の形態3を
実現するこの発明の実施の形態4による制御回路6の構
成を示す説明図であり、出力される制御信号7として2
5〜29の5種類の信号を用いている。また冗長二進数
の表現方法としては、冗長二進数pに対し、 p≡(p_plus,p_minus)=p_plus−p_minus [35] という定義を用いている。すなわち一対の二進数の差を
その値としている。
【0061】上記実施の形態3において、出力の第1の
中間除数8(ci )は、除数1(ai )から図4に示す
ルールで計算されるが、式[34]を用いれば、このル
ールは、除数1(ai )の各ビットを全て“0”にする
ことと、右方向に1ビットシフトさせることと、右方向
に2ビットシフトさせることによって実現することがで
きる。このそれぞれを制御する信号が、zero25、
第1のshift26および第2のshift27であ
る。また、c0 〜c2 は“1.00”となるようにして
いるが、c3 は入力によって変化するので、c3 _pl
us28とc3_minus29とを発生させている。
【0062】以上のように、この実施の形態4によれ
ば、実際の乗算を行うことなしに、シフト操作のみで第
1の中間除数8(ci )を得ることができる。
【0063】実施の形態5.図7は上記の実施の形態3
および4を実現するこの発明の実施の形態5による第1
の乗算器4の構成図を示すもので、zero25、第1
のshift26および第2のshift27の制御入
力に対してシフトを行うシフタ回路30を備えている。
zero25が“1”のときは出力(qi )31に全て
“0”が出力され、第1のshift26が“1”のと
きは除数1(ai )を右方向へ1ビットシフトしたもの
が(qi )31として出力される。また、第2のshi
ft27が“1”のときは除数1(ai )を右方向へ2
ビットシフトしたものが出力(qi )31として出力さ
れる。出力された(qi )31は、除数1(ai )とペ
アにして、第1の中間除数8(ci )のうちの小数第4
位以下(c45 …)33を生成する。
【0064】すなわち、 ci =(ai ,qi ) (i=4,5,…) [36] また、第1の中間除数32(c3 )は図4のルールに従
ってc3 _plusとc3 _minusとのペアでその
まま出力される。第1の中間除数c0 〜c2 “1.0
0”と一定なので、ここでは特に生成する必要はない。
【0065】以上のように、この実施の形態5によれ
ば、特に乗算を実行することなく単なるシフト操作のみ
によって、乗算結果である第1の中間除数8(ci )を
得ることができるので、高速で小面積の第1の乗算器4
を構成することができる。
【0066】実施の形態6.図8は上記実施の形態3お
よび4を実現するこの発明の実施の形態6による第2の
乗算器5の構成を示すもので、実施の形態5と同様にz
ero25、第1のshift26および第2のshi
ft27の制御入力に対してシフトを行うシフタ回路3
4を備えている。zero25が“1”のときは出力
(ri )35に全て“0”が出力され、第1のshif
t26が“1”のときは被除数2(bi)を右方向へ1
ビットシフトしたものが出力(ri )35として出力さ
れる。
【0067】また、第2のshift27が“1”のと
きは被除数2(bi )を右方向へ2ビットシフトしたも
のが出力(ri )35として出力される。シフタの制御
は図4の場合と同様であるが、ここでは図9に示すよう
に入力被除数2(bi )の小数点以下全ビットに対して
行われ、被除数2(bi )とシフタ回路34の出力(r
i )35とのペアにより、第1の中間商9(di )が生
成される。
【0068】以上のように、この実施の形態6によれ
ば、特に乗算を実行することなく単なるシフト操作のみ
によって乗算結果である第1の中間商9(di )を得る
ことができるので、高速で小面積の第2の乗算器5を構
成することができる。
【0069】実施の形態7.図10はこの発明の実施の
形態7としての第3の乗算器11の構成を示すもので、
図において、36,38は第1の中間除数8(ci )か
らの乗数(c3 あるいはc4 )を制御信号として冗長二
進入力を符号反転する符号反転器、40,42は二つの
冗長二進入力を加算して一つの冗長二進数を出力する冗
長二進加算器である。この実施の形態7による第3の乗
算器11は、式[24]を計算するための回路で、入力
の第1の中間除数8(ci )から二つの冗長二進数37
および39を発生させ、さらに第1の中間除数8(c
i )、二つの冗長二進数37および39をいわゆるワレ
ストリーと呼ばれる樹木状に足し合わせる方式が用いら
れている。
【0070】次に動作について説明する。まず、入力の
第1の中間除数8(ci )のうちの有効ビットc3 〜c
9 が、符号反転器36および38によって乗数c3 を制
御信号として符号反転される。すなわち、符号反転器3
6においては乗数c3 が“0”のときは冗長二進数37
に全て“0”が出力され、乗数c3 が“1”のときは有
効ビットc3 〜c9 を各ビット毎に全て符号反転したも
のが冗長二進数37に出力され、乗数c3 が“1”のと
きは有効ビットc3 〜c9 がそのまま冗長二進数37に
出力される。冗長二進数37は入力に対して3ビット右
方向にシフトした位置に出力される。
【0071】また、符号反転器38においては乗数c4
が“0”のときは冗長二進数39に全て“0”が出力さ
れ、乗数c4 が“−1”のときは有効ビットc3 〜c9
を各ビット毎に全て符号反転したものが冗長二進数39
に出力され、乗数c4 が“−1”のときは有効ビットc
3 〜c9 がそのまま冗長二進数39に出力される。冗長
二進数39は入力に対して4ビット右方向にシフトした
位置に出力される。
【0072】次に、冗長二進加算器40では、二つの冗
長二進数37と39が足し合わされて一つの冗長二進数
41が出力される。また、冗長二進加算器42では、入
力の第1の中間除数8(ci )と冗長二進数41が足し
合わされて一つの冗長二進数が出力される。冗長二進数
は第2の中間除数13(ei )となる。なお、有効ビッ
トc3 〜c9 の符号反転は式[36]の(ai ,qi
を(qi ,ai )とするだけで容易に得ることができ
る。
【0073】以上のように、この実施の形態7によれ
ば、第1の中間除数8(ci )の上位3ビットを直接扱
うことなく、また冗長二進加算は一般にキャリー信号の
伝搬が起きないので、極めて高速に乗算結果を得ること
ができる。また、この実施の形態7による乗算器は、第
3の乗算器11だけでなく第5の乗算器16にも適用す
ることができる。
【0074】実施の形態8.図11はこの発明の実施の
形態8としての第4の乗算器12の構成を示すもので、
上記実施の形態7に示した第3の乗算器11とほぼ同様
である。図において、43,45は乗数(c3 あるいは
4 )を制御信号として冗長二進入力を符号反転する符
号反転器、47,49は二つの冗長二進入力を加算して
一つの冗長二進数を出力する冗長二進加算器である。
【0075】次に動作について説明する。まず、入力の
第1の中間商9(di )が、符号反転器43および45
によって乗数c3 を制御信号として符号反転される。す
なわち、符号反転器43においては乗数c3 が“0”の
ときは冗長二進数44に全て“0”が出力され、乗数c
3が“1”のときは有効ビットc3 〜c9 を各ビット毎
に全て符号反転したものが冗長二進数44に出力され、
乗数c3 が“−1”のときは有効ビットc3 〜c9がそ
のまま冗長二進数44に出力される。冗長二進数44は
入力に対して3ビット右方向にシフトした位置に出力さ
れる。
【0076】また、符号反転器45においては乗数c4
が“0”のときは冗長二進数46に全て“0”が出力さ
れ、乗数c4 が“1”のときは有効ビットc3 〜c9
各ビット毎に全て符号反転したものが冗長二進数46に
出力され、乗数c4 が“−1”のときは有効ビットc3
〜c9 がそのまま冗長二進数46に出力される。冗長二
進数46は入力に対して4ビット右方向にシフトした位
置に出力される。
【0077】次に、冗長二進加算器47では、二つの冗
長二進数44と46が足し合わされて一つの冗長二進数
48が出力される。また、冗長二進加算器49では、入
力の第1の中間商9(di )と冗長二進数48が足し合
わされて一つの冗長二進数が出力される。冗長二進数は
第2の中間商14(fi )となる。
【0078】以上のように、この実施の形態8によれ
ば、キャリー信号の伝搬が起きない高速の冗長二進加算
を用いて乗算が実行できるため、極めて高速に乗算結果
を得ることができる。またこの実施の形態8による乗算
器は、第4の乗算器12だけでなく第6の乗算器17お
よび第7の乗算器21にも適用することができる。
【0079】実施の形態9.図12は実施の形態7およ
び8を実現するこの発明の実施の形態9による符号反転
器の構成を示すもので、図は1ビット分の構成を示して
いる。図において、in_plus50とin_min
us51は入力となる一対の冗長二進数の成分、(s)
54は冗長二進数の制御入力、out_plus55と
out_minus56は出力となる一対の冗長二進数
の成分となる。52と53は制御入力(s)54の値に
よって出力を選択するマルチプレクサ回路である。
【0080】図のような構成により、 s=0のとき:out_plus=0,out_minus=0 s=1のとき:out_plus=in−minus,out_minus =in_plus s=−1のとき:out_plus=in_minus=in_minus とすることができ、所望の出力を得ることができる。
【0081】実施の形態10.図13は上記実施の形態
7および8を実現するこの発明の実施の形態10の冗長
二進加算器の構成例を示すもので、図において、57は
それぞれ(i+1)〜(i−1)桁目の1桁分の加算器
58〜60を有する冗長二進加算器である。(i+1)
桁目の加算器58は、二組の冗長二進数in1_plu
i+1 61とin1_minusi+1 62、およびin
2_plusi+1 63とin2_minusi+1 64を
足し合わせて冗長二進数の出力out_plusi+1
3とout_minusi+1 74を出力する。
【0082】同様にi桁目の加算器59は、二組の冗長
二進数in1_plusi 65とin1_minusi
66、およびin2_plusi 67とin2_min
usi 68を足し合わせて冗長二進数の出力out_p
lusi 75とout_minusi 76を出力し、
(i−1)桁目の加算器60は、二組の冗長二進数in
1_plusi-1 69とin1_minusi-1 70、
およびin2_plusi-1 71とin2_minus
i-1 72を足し合わせて冗長二進数の出力out_pl
usi-1 77とout_minusi-1 78を出力す
る。ti+1 〜ti-279〜82は、それぞれ一本または
複数本の信号線からなる中間信号で、下位側の加算器か
ら上位側の加算器へ伝えられる。一般に隣り含う中間信
号ti+1 79とti 80は互いに独立とすることができ
るので、通常の二進数の加算の際に生じるいわゆるキャ
リー信号の伝搬が起きない。
【0083】以上のように、この実施の形態10によれ
ば、上記の構成により高速の冗長二進加算を実現するこ
とができる。
【0084】実施の形態11.図14はこの発明の実施
の形態11による除算装置を示す構成図であり、図1に
おける被除数2(bi )を“1”の被除数83としたも
ので、他の構成は図1に示す実施の形態1と同じである
が、この構成によって、高速の逆数器が得られる。
【0085】実施の形態12.図15はこの発明の実施
の形態12による除算装置を示す構成図であり、第2、
第3、第4の中間除数13,18,87から取り出す乗
数15(e4 〜e6 )、乗数84(g6 〜g8 )、乗数
89(j8 〜j14)のビット数を(2n −1)個とした
場合を示す。この実施の形態12では、商を小数点以下
24桁の精度で求める場合を示している。
【0086】動作は第3の中間除数18(gi )を求め
るところまでは実施の形態1と同様であるが、そこから
乗数84として取り出す信号のビット数を実施の形態1
の5ビットではなく3ビットとしている。ここで、実施
の形態1の式[16]〜[22]を一般化するために、
mをm≦nとして、 α=(xn+1 …Xn+m )/2n+m [37] β=(0.xn+m+1 …)/2n+m [38] と置くと、 −(2m −1)/2n+m <α<(2m −1)/2n+m すなわち、|α|<(2m −1)/2n+m [39] 1/2n+m <β<1/2n+m すなわち、|β|<1/2n+m [40] となる。
【0087】εを計算すると最終的に ε=|α|2 +|α||β|+|β|<2-(n+m-1) [41] が得られる。すなわち、(1−α)を掛けることによっ
て小数点以下に続く“0”の数を(n+m−1)とする
ことができる。この考えから第7の乗算器85における
乗算の結果、第4の中間除数87(ji )は小数点以下
に続く“0”の数は7個となる。
【0088】次に第4の中間除数87(ji )から取り
出す乗数89のビット数は7ビットとしている。このた
め、第9の乗算器90における乗算の結果、第5の中間
除数92(li )は小数点以下に続く“0”の数は13
個となる。さらに、第5の中間除数92(li )からは
乗数94(i14〜i26)として13ビットが取り出され
る。
【0089】一方、第8の乗算器86、第10の乗算器
91、第11の乗算器95はそれぞれ実施の形態1の第
4、第6、第7の乗算器12,17,21と同様の働き
をして、それぞれ第4の中間商88(ki )、第5の中
間商93(mi )、第6の中間商96(ni )を生成す
る。第6の中間商96(ni )は、さらに冗長二進→二
進変換器23によって二進数に変換され、最終的に商2
4(qi )が出力される。この実施の形態12によっ
て、乗数15(e4 〜e6 )、乗数84(g6 〜g
8 )、乗数89(j8 〜j14)のビット数はそれぞれ
3,3,7と(2n −1)で表される数となる。
【0090】以上のように、この実施の形態12によれ
ば、第5の乗算器16、第7の乗算器85、第9の乗算
器90では、入力する乗数15(e4 〜e6 )、乗数8
4(g6 〜g8 )、乗数89(j8 〜j14)のビット数
に1を加えた数の冗長二進数の総和を計算するので、乗
数のビット数が(2n −1)のときは、加算すべき冗長
二進数が2n となり、ワレストリーによる足し上げの効
率が最も大きくなる。すなわち、2n は加算器n段で足
し上げられる最大の数で、従って最も効率よく高速に足
し上げを実行することができる。
【0091】実施の形態13.図16はマルチプレクサ
回路を用いてハードウエア量を低減した場合のこの発明
の実施の形態13による除算装置を示す構成図であり、
マルチプレクサ回路97においては最初、第2の中間除
数13(ei )が選択されて出力99が出力され、同時
に乗数101(e4 〜e6 )が出力され、これら二つか
ら第5の乗算器102において乗算が実行される。
【0092】次にマルチプレクサ回路97では第5の乗
算器102の出力104が選択されて出力99に中間除
数(gi )として出力され、同時に乗数101(g6
8)が選択されて出力され、これら二つから第5の乗
算器102において乗算が実行される。この乗算結果は
第3の中間除数106(gi)となる。
【0093】また、マルチプレクサ回路108において
は、最初、第3の中間除数106(gi )が出力110
として選択されて出力され、同時に乗数112(j8
14)が選択されて出力され、これら二つから第9の乗
算器113において乗算が実行される。
【0094】次にマルチプレクサ回路108では第9の
乗算器113の出力115が選択されて、出力110に
は中間除数(li )として出力され、同時に乗数112
(l14〜l20)が選択されて出力され、これら二つから
第9の乗算器113において乗算が実行される。
【0095】さらに、マルチプレクサ回路108では次
にもう一度、第9の乗算器113の出力115が選択さ
れて、乗数112(n20〜n26)が選択されて出力され
る。この際、第9の乗算器113における乗算は不要な
ので実行されない。
【0096】一方、マルチプレクサ回路98では、最
初、第2の中間商14(fi )が選択されて出力100
に出力され、第6の乗算器103において第2の中間商
14(fi )と乗数101(e4 〜e6 )とから乗算が
実行される。
【0097】次に、マルチプレクサ回路98においては
第6の乗算器103の出力105が選択されて出力10
0に出力され、乗数101(g6 〜g8 )とから第6の
乗算器103において乗算が実行される。この乗算結果
が第3の中間商107(hi)となる。
【0098】また、マルチプレクサ回路109において
は、最初、第3の中間商107(hi )が選択されて出
力111に出力され、乗数112(j8 〜j14)とから
第10の乗算器114において乗算が実行される。
【0099】次に、マルチプレクサ回路109では第1
0の乗算器114の出力116が選択されて出力111
に出力され、乗数112(l14〜l20)とから第10の
乗算器114で乗算が実行される。
【0100】さらに、マルチプレクサ回路109では次
にもう一度、第10の乗算器114の出力116が選択
されて、乗数112(n20〜n26)が選択されて出力さ
れる。この結果、第10の乗算器114で乗算が実行さ
れ、第4の中間商117(ki )として出力される。第
4の中間商117(ki )は冗長二進→二進変換器23
によって通常の二進数に変換され、商24(qi )とし
て出力される。
【0101】以上のように、この実施の形態13によれ
ば、マルチプレクサ回路により、乗算器よりも小さいハ
ードウエア量で実現できるので、全体のハードウエア量
を大幅に低減することができる。
【0102】実施の形態14.図17はこの発明の実施
の形態14による除算装置を示す構成図であり、パイプ
ラインレジスタ118および119によって2段のパイ
プライン構成とした場合を示す。すなわち、第2の中間
除数13(ei )および第2の中間商14(fi )はそ
れぞれパイプラインレジスタ118および119によっ
て一時蓄えられ、次に第5の乗算器16および第6の乗
算器17に入力する。
【0103】パイプラインレジスタ118および119
の制御はクロック信号120によって行われ、例えばク
ロック信号120が“low”のときにデータが蓄えら
れ、クロック信号120が“high”になったときに
データが出力されるといった動作をする。
【0104】以上のように、この実施の形態14によれ
ば、パイプラインレジスタ118および119によって
分けられた前後の回路を並列に動作させる、いわゆるパ
イプライン動作が可能となるので、高速動作を実現する
ことができる。また、この実施の形態14では2段のパ
イプライン構成とする場合を示したが、パイプラインレ
ジスタの数を増加させて段数を増やすことにより、さら
に高速動作を実現することができる。
【0105】実施の形態15.図18はこの発明の実施
の形態15による除算装置を示す構成図であり、上記各
実施の形態における制御回路6の代わりに記憶手段とし
てROM121を用いた場合を示す。このROM121
は、乗数3(a1 〜a4 )をアドレス入力として、制御
信号122を出力するもので、制御信号122を上記各
実施の形態における制御信号7と同様とすることによっ
て実施の形態1と同様の動作を実現することができ、同
様の効果を得ることができる。
【0106】以上のように、この実施の形態15によれ
ば、ROM121への入力を4ビットとしているが、R
OMの規模を大きくして入力のビット数を多くすること
によって第1の乗算器の出力である第2の中間除数13
(ei )の小数点以下に続く“0”の数を実施の形態1
の場合よりも増やすことができ、高速の除算が実現でき
る。また、ROM121はRAMやその他の記憶素子で
あってもかまわない。
【0107】
【発明の効果】以上のように、請求項1記載の発明によ
れば、除数に基づいて生成した第1の乗数を除数および
被除数に乗じることにより、それぞれ中間除数および中
間商を演算し、この演算結果に基づいて必要回数演算を
繰り返すことによって、上記中間除数を所定の値に近づ
け、同時に上記中間商を上記被除数を上記除数で割った
商に近づけるように構成したので、除算処理の高速化と
構成の単純化を図ることができる効果がある。
【0108】請求項2記載の発明によれば、除数から制
御回路によって制御信号を出力させ、これに基づいて第
1の乗算器と第2の乗算器で演算を行い、冗長二進数の
中間除数と中間商を発生させ、その後、除数の上位2桁
以降に並ぶ“0”の次の複数ビットの符号ビットの符号
を反転させた信号と上記中間除数および中間商との演算
を実行し、中間除数を1に収束させるように構成したの
で、計算に無駄がなく、除算処理の高速化を図ることが
できる。また、冗長二進数で乗算を行うので、除算処理
のより高速化を図ることができる。さらに、2の補数器
が不要、除数側の最後の乗算は実行不要等のため、ハー
ドウエアを削減できる効果がある。
【0109】請求項3記載の発明によれば、冗長二進表
現の商を二進数に変換する変換器を備えるように構成し
たので、得られた冗長二進表現の商を二進数に変換して
出力することができる効果がある。
【0110】請求項4記載の発明によれば、制御回路は
除数(ai )の上位複数桁ビットを入力して、第1の乗
数を生成するように構成したので、請求項2記載の発明
の効果を容易に実現することができる効果がある。
【0111】請求項5記載の発明によれば、元の除数と
小数点以下2桁を“0”とするに必要なだけシフトさせ
た該除数とを引き算するように構成したので、第1の中
間除数を容易に得ることができる効果がある。
【0112】請求項6記載の発明によれば、制御回路は
除数のうちの小数点以下第1位から第3位までの3ビッ
トを入力として、上記除数の各ビットを全てゼロにする
か、1ビット下位桁側へシフトするか、2ビット下位桁
側へシフトするかを制御する信号と、冗長二進表現され
た第1の中間除数の小数点以下第3桁の値を示す信号と
を出力させるように構成したので、実際の乗算を行うこ
となく、中間除数を得ることができる効果がある。
【0113】請求項7記載の発明によれば、第1の乗算
器は、制御信号により除数の各ビットを全てゼロにする
か、1ビット下位桁側ヘシフトするか、2ビット下位桁
側ヘシフトするかを行うシフタ回路の出力と上記除数と
から、上記冗長二進表現された第1の中間除数の小数点
以下第4桁目以下を生成するように構成したので、高速
で小面積の第1の乗算器を得ることができる効果があ
る。
【0114】請求項8記載の発明によれば、第2の乗算
器は、制御信号により被除数の各ビットを全てゼロにす
るか、1ビット下位桁側ヘシフトするか、2ビット下位
桁側ヘシフトするかを行うシフタ回路の出力と上記被除
数とから上記冗長二進表現された第1の中間商を生成す
るように構成したので、高速で小面積の第2の乗算器を
得ることができる効果がある。
【0115】請求項9記載の発明によれば、第3あるい
は第aの乗算器は、入力される第1の中間除数を符号反
転して二つの冗長二進数を発生させる二つの符号反転器
と、上記二つの冗長二進数を加算して一つの冗長二進数
を出力する二つの冗長二進加算器とを備えるように構成
したので、極めて高速に乗算結果を得ることができる効
果がある。
【0116】請求項10記載の発明によれば、第4ある
いは第bの乗算器は、入力された第1の中間商を符号反
転して二つの冗長二進数を発生させる二つの符号反転器
と、上記二つの冗長二進数を加算して一つの冗長二進数
を出力する二つの冗長二進加算器とを備えるように構成
したので、極めて高速に乗算結果を得ることができる効
果がある。
【0117】請求項11記載の発明によれば、符号反転
器は、一対の冗長二進数の成分を入力し、冗長二進数の
制御入力によって出力を選択するマルチプレクサ回路を
備えるように構成したので、所望の出力を得ることがで
きる効果がある。
【0118】請求項12記載の発明によれば、冗長二進
加算器は、二組の冗長二進数を加算して冗長二進数を出
力する各桁毎の加算器を複数備えるように構成したの
で、高速の冗長二進加算器を実現することができる効果
がある。
【0119】請求項13記載の発明によれば、被除数と
して定数“1”を用いるように構成したので、除数の逆
数を商として出力することができる効果がある。
【0120】請求項14記載の発明によれば、第2の中
間除数に対して上位n桁または第3の中間除数に対して
上位q桁を、(n−m−1)または(q−p−1)が2
のべき乗から1を引いた値となるように設定するように
構成したので、効率よく高速に足し上げを実現すること
ができる効果がある。
【0121】請求項15記載の発明によれば、中間除数
と同時に制御信号を選択し、この二つから演算を実行し
た演算器の出力を選択するマルチプレクサと、中間商を
選択し、この中間商を上記制御信号と乗算した演算器の
出力を選択するマルチプレクサとを備えるように構成し
たので、装置全体のハードウエアを大幅に低減すること
ができる効果がある。
【0122】請求項16記載の発明によれば、クロック
信号で制御され、中間除数および中間商を一時蓄え、演
算器に出力するパイプラインレジスタを備えるように構
成したので、パイプラインレジスタによって分けられた
前後の回路を並列に動作させ、高速動作を実現すること
ができる効果がある。
【0123】請求項17記載の発明によれば、制御回路
としてROMを用いるように構成したので、請求項2記
載の発明の場合よりも小数点以下に続く“0”の数を増
やすことができ、より高速の除算処理を実現できる効果
がある。
【図面の簡単な説明】
【図1】 この発明の実施の形態1による除算装置の構
成を示すブロック図である。
【図2】 この発明の実施の形態2による制御回路の説
明図である。
【図3】 この発明の実施の形態2による制御回路が有
する機能を表した図である。
【図4】 この発明の実施の形態3による中間除数の生
成を表した図である。
【図5】 その中間除数の生成処理の説明図である。
【図6】 この発明の実施の形態4による制御回路の説
明図である。
【図7】 この発明の実施の形態5による第1の乗算器
の説明図である。
【図8】 この発明の実施の形態6による第2の乗算器
の説明図である。
【図9】 その乗算器による中間商の生成を表した図で
ある。
【図10】 この発明の実施の形態7による第3の乗算
器の説明図である。
【図11】 この発明の実施の形態8による第4の乗算
器の説明図である。
【図12】 この発明の実施の形態9による符号反転器
の構成図である。
【図13】 この発明の実施の形態10による冗長二進
加算器の構成図である。
【図14】 この発明の実施の形態11による除算装置
の構成を示すブロック図である。
【図15】 この発明の実施の形態12による除算装置
の構成を示すブロック図である。
【図16】 この発明の実施の形態13による除算装置
の構成を示すブロック図である。
【図17】 この発明の実施の形態14による除算装置
の構成を示すブロック図である。
【図18】 この発明の実施の形態15による除算装置
の構成を示すブロック図である。
【図19】 従来の除算装置の構成を示すブロック図で
ある。
【符号の説明】
1 除数、2 被除数、3 第1の乗数、4 第1の乗
算器、5 第2の乗算器、8 第1の中間除数、10
第2の乗数、11 第3の乗算器、12 第4の乗算
器、13 第2の中間除数、14 第2の中間商、15
第3の乗数、18 第3の中間除数、19 第3の中
間商、20 第4の乗数、30,34 シフタ回路、3
6,38,43,45 符号反転器、40,42,4
7,49 冗長二進加算器、52,53,97,98
マルチプレクサ回路、58〜60 加算器、118,1
19 パイプラインレジスタ。

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】 被除数および除数を入力し、上記除数に
    基づいて生成した第1の乗数を、除数および被除数に乗
    じることにより、それぞれ第1の中間除数および第1の
    中間商を得る第1の演算手段と、上記第1の中間除数に
    基づいて生成した第2の乗数を、上記第1の中間除数お
    よび上記第1の中間商に乗ずることにより、それぞれ第
    2の中間除数および上記第2の中間商を得る如く前段の
    演算結果に基づいて必要回数演算を繰り返すことによっ
    て、上記中間除数を所定の値に近づけ、同時に上記中間
    商を上記被除数を上記除数で割った商に近づける必要回
    数演算手段とを備え、上記第1および第2の乗数のビッ
    ト数がそれぞれ上記除数および上記中間除数のビット数
    よりも小さいことを特徴とする除算装置。
  2. 【請求項2】 被除数および1以上2未満の値を持つ除
    数を入力とし、被除数を除数で割った商を出力とする除
    算装置において、上記除数の上位側の所定桁数ビットあ
    るいはそのうちの最上位1ビットを除くビット桁からな
    る第1の乗数を入力して制御信号を出力する制御回路
    と、上記第1の乗数と上記除数とを乗じることによって
    整数部分が“1”で小数点以下第1位から少なくとも2
    個のゼロが並ぶ冗長二進表現の第1の中間除数を得る第
    1の乗算器と、上記第1の乗数と上記被除数とを乗じる
    ことによって冗長二進表現の第1の中間商を得る第2の
    乗算器と、上記第1の中間除数の上位複数桁を取り出し
    て小数点以下第3位と第4位の冗長二進ビットを正負反
    転させることによって第2の乗数を生成し、この第2の
    乗数と上記第1の中間除数とを乗じることによって、整
    数部分が“1”で小数点以下第1位から少なくとも3個
    のゼロが並ぶ冗長二進表現の第2の中間除数を得る第3
    の乗算器と、上記第2の乗数と上記第1の中間商とを乗
    じることによって冗長二進表現の第2の中間商を得る第
    4の乗算器と、整数部分が“1”で小数点以下m個のゼ
    ロが続く第2の中間除数に対して上位n桁(m+3≦n
    ≦2m+1)を取り出して小数点以下第(m+1)位か
    ら第(n−1)位までの冗長二進ビットを正負反転させ
    ることによって第3の乗数を生成し、この第3の乗数と
    上記第2の中間除数とを乗じることによって、整数部分
    が“1”で小数点以下第1位から少なくとも(2m−
    1)個のゼロが並ぶ冗長二進表現の第3の中間除数を得
    る第a(aは5以上の奇数)の乗算器と、上記第3の乗
    数と上記第2の中間商とを乗じることにより冗長二進表
    現の第3の中間商を得る第b(bは6以上の偶数)の乗
    算器と、整数部分が“1”で小数点以下p個のゼロが続
    く第3の中間除数に対して上位q桁(p+3≦q≦2p
    +1)を取り出して小数点以下第(p+1)位から第
    (q−1)位までの冗長二進ビットを正負反転させるこ
    とによって第4の乗数を生成し、この第4の乗数と上記
    第3の中間商とを乗じることにより冗長二進表現の商を
    得る第c(cは6以上の偶数)の乗算器とを備え、上記
    第1から第4の乗算器による演算実行後、上記第a(a
    は5以上の奇数)の乗算器と第b(bは6以上の偶数)
    の乗算器による演算を必要回数繰り返し、最後に上記第
    c(cは6以上の偶数)の乗算器による演算を実行する
    ことを特徴とする除算装置。
  3. 【請求項3】 得られた冗長二進表現の商を二進数に変
    換して出力する変換器を備えたことを特徴とする請求項
    2記載の除算装置。
  4. 【請求項4】 制御回路は除数(ai )の上位複数桁ビ
    ットを入力して、下記演算式を実行して第1の乗数を生
    成することを特徴とする請求項2記載の除算装置。 1≦(ai )<5/4のとき :(ci )=(ai ) 5/4≦(ai )<13/8のとき:(ci )=(3/4)×(ai ) 13/8≦(ai )<2のとき :(ci )=(1/2)×(ai
  5. 【請求項5】 元の除数と小数点以下2桁を“0”とす
    るに必要なだけシフトさせた該除数とを引き算し、第1
    の中間除数を得ることを特徴とする請求項2記載の除算
    装置。
  6. 【請求項6】 制御回路は除数のうちの小数点以下第1
    位から第3位までの3ビットを入力として、上記除数の
    各ビットを全てゼロにするか、1ビット下位桁側へシフ
    トするか、2ビット下位桁側へシフトするかを制御する
    信号と、冗長二進表現された第1の中間除数の小数点以
    下第3桁の値を示す信号とを出力させることを特徴とす
    る請求項2記載の除算装置。
  7. 【請求項7】 第1の乗算器は、制御信号により除数の
    各ビットを全てゼロにするか、1ビット下位桁側ヘシフ
    トするか、2ビット下位桁側ヘシフトするかを行うシフ
    タ回路を備え、このシフタ回路の出力と上記除数とから
    上記冗長二進表現された第1の中間除数の小数点以下第
    4桁目以下を生成することを特徴とする請求項2記載の
    除算装置。
  8. 【請求項8】 第2の乗算器は、制御信号により被除数
    の各ビットを全てゼロにするか、1ビット下位桁側ヘシ
    フトするか、2ビット下位桁側ヘシフトするかを行うシ
    フタ回路とを備え、このシフタ回路の出力と上記被除数
    とから上記冗長二進表現された第1の中間商を生成する
    ことを特徴とする請求項2記載の除算装置。
  9. 【請求項9】 第3あるいは第aの乗算器は、入力され
    る第1の中間除数を符号反転して二つの冗長二進数を発
    生させる二つの符号反転器と、上記二つの冗長二進数を
    加算して一つの冗長二進数を出力する二つの冗長二進加
    算器とを備えたことを特徴とする請求項2記載の除算装
    置。
  10. 【請求項10】 第4あるいは第bの乗算器は、入力さ
    れた第1の中間商を符号反転して二つの冗長二進数を発
    生させる二つの符号反転器と、上記二つの冗長二進数を
    加算して一つの冗長二進数を出力する二つの冗長二進加
    算器とを備えたことを特徴とする請求項2記載の除算装
    置。
  11. 【請求項11】 符号反転器は、一対の冗長二進数の成
    分を入力し、冗長二進数の制御入力によって出力を選択
    するマルチプレクサ回路を備えたことを特徴とする請求
    項9または請求項10記載の除算装置。
  12. 【請求項12】 冗長二進加算器は、二組の冗長二進数
    を加算して冗長二進数を出力する各桁毎の加算器を複数
    備えたことを特徴とする請求項9または請求項10記載
    の除算装置。
  13. 【請求項13】 被除数として定数“1”を用いること
    により、除数の逆数を商として出力することを特徴とす
    る請求項2記載の除算装置。
  14. 【請求項14】 第2の中間除数に対して上位n桁また
    は第3の中間除数に対して上位q桁を、(n−m−1)
    または(q−p−1)が2のべき乗から1を引いた値と
    なるように設定することを特徴とする請求項2記載の除
    算装置。
  15. 【請求項15】 中間除数と同時に制御信号を選択し、
    この二つから演算を実行した演算器の出力を選択するマ
    ルチプレクサ回路と、中間商を選択し、この中間商を上
    記制御信号と乗算した演算器の出力を選択するマルチプ
    レクサ回路とを備えたことを特徴とする請求項2記載の
    除算装置。
  16. 【請求項16】 クロック信号で制御され、中間除数お
    よび中間商を一時蓄え、演算器に出力するパイプライン
    レジスタを備えたことを特徴とする請求項2記載の除算
    装置。
  17. 【請求項17】 被除数および1以上2未満の値を持つ
    除数を入力とし、被除数を除数で割った商を出力とする
    除算装置において、上記除数の上位側の所定桁数ビット
    あるいはそのうちの最上位1ビットを除く所定桁数のビ
    ットからなるビット列をアドレス入力とし、そこから第
    1の乗数を出力する記憶手段と、上記第1の乗数と上記
    除数とを乗じることによって整数部分が“1”で小数点
    以下第1位から少なくともr個のゼロが並ぶ冗長二進表
    現の第1の中間除数を得る第1の乗算器と、上記第1の
    乗数と上記被除数とを乗じることによって冗長二進表現
    の第1の中間商を得る第2の乗算器と、上記第1の中間
    除数に対して上位s桁(r+3≦s≦2r+1)を取り
    出して小数点以下第(r+1)位から第(s−1)位ま
    での冗長二進ビットを正負反転させることによって第2
    の乗数を生成し、この第2の乗数と上記第1の中間除数
    とを乗じることによって、整数部分が“1”で小数点以
    下第1位から少なくとも(2r−1)個のゼロが並ぶ冗
    長二進表現の第2の中間除数を得る第t(tは3以上の
    奇数)の乗算器と、上記第2の乗数と上記第1の中間商
    とを乗じることによって冗長二進表現の第2の中間商を
    得る第u(uは4以上の偶数)の乗算器と、整数部分が
    “1”で小数点以下v個のゼロが続く第2の中間除数に
    対して上位w桁(v+3≦w≦2v+1)を取り出して
    小数点以下第(v+1)位から第(w−1)位までの冗
    長二進ビットを正負反転させることによって第3の乗数
    を生成し、この第3の乗数と上記第2の中間除数とを乗
    じることにより、冗長二進表現の商を得る第y(yは4
    以上の偶数)の乗算器とを備え、上記第1および第2の
    乗算器による演算実行後、上記第t(tは3以上の奇
    数)の乗算器と第u(uは4以上の偶数)の乗算器によ
    る演算を必要回数繰り返し、最後に上記第y(yは4以
    上の偶数)の乗算器による演算を実行することを特徴と
    する除算装置。
JP26490296A 1996-10-04 1996-10-04 除算装置 Expired - Fee Related JP3660075B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP26490296A JP3660075B2 (ja) 1996-10-04 1996-10-04 除算装置
TW086101357A TW521207B (en) 1996-10-04 1997-02-04 Division calculator
US08/801,133 US5999962A (en) 1996-10-04 1997-02-14 Divider which iteratively multiplies divisor and dividend by multipliers generated from the divisors to compute the intermediate divisors and quotients
KR1019970009198A KR100329914B1 (ko) 1996-10-04 1997-03-18 제산장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP26490296A JP3660075B2 (ja) 1996-10-04 1996-10-04 除算装置

Publications (2)

Publication Number Publication Date
JPH10111791A true JPH10111791A (ja) 1998-04-28
JP3660075B2 JP3660075B2 (ja) 2005-06-15

Family

ID=17409810

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26490296A Expired - Fee Related JP3660075B2 (ja) 1996-10-04 1996-10-04 除算装置

Country Status (4)

Country Link
US (1) US5999962A (ja)
JP (1) JP3660075B2 (ja)
KR (1) KR100329914B1 (ja)
TW (1) TW521207B (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10205713C1 (de) * 2002-02-12 2003-08-07 Infineon Technologies Ag Vorrichtung und Verfahren zum Berechnen eines Ergebnisses aus einer Division
US7149767B2 (en) * 2003-05-12 2006-12-12 International Business Machines Corporation Method and system for determining quotient digits for decimal division in a superscaler processor
US20050289208A1 (en) * 2004-06-23 2005-12-29 Harrison John R Methods and apparatus for determining quotients
US20060294177A1 (en) * 2005-06-27 2006-12-28 Simon Rubanovich Method, system and apparatus of performing division operations
US8898215B2 (en) * 2007-06-28 2014-11-25 King Fahd University Of Petroleum And Minerals High-radix multiplier-divider
US20090006509A1 (en) * 2007-06-28 2009-01-01 Alaaeldin Amin High-radix multiplier-divider
US9377996B2 (en) * 2012-07-27 2016-06-28 Avago Technologies General Ip (Singapore) Pte. Ltd. Parameterized digital divider

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3508038A (en) * 1966-08-30 1970-04-21 Ibm Multiplying apparatus for performing division using successive approximate reciprocals of a divisor
US3828175A (en) * 1972-10-30 1974-08-06 Amdahl Corp Method and apparatus for division employing table-lookup and functional iteration
JPS60142738A (ja) * 1983-12-30 1985-07-27 Hitachi Ltd 内挿近似を使用する除算装置
JPS6286434A (ja) * 1985-10-14 1987-04-20 Oki Electric Ind Co Ltd 除算方式
US4866655A (en) * 1986-07-18 1989-09-12 Matsushita Electric Industrial Co., Ltd. Arithmetic processor and divider using redundant signed digit
JP2609630B2 (ja) * 1987-09-26 1997-05-14 株式会社東芝 除算器及び除算方法
JPH0769785B2 (ja) * 1987-12-17 1995-07-31 松下電器産業株式会社 除算装置
JP2737933B2 (ja) * 1988-06-23 1998-04-08 日本電気株式会社 除算装置
US5046038A (en) * 1989-07-07 1991-09-03 Cyrix Corporation Method and apparatus for performing division using a rectangular aspect ratio multiplier
US5307303A (en) * 1989-07-07 1994-04-26 Cyrix Corporation Method and apparatus for performing division using a rectangular aspect ratio multiplier
US5128891A (en) * 1990-04-02 1992-07-07 Advanced Micro Devices, Inc. High speed divider with square root capability
JPH0731592B2 (ja) * 1990-11-29 1995-04-10 株式会社東芝 除算回路
JPH0535773A (ja) * 1991-07-30 1993-02-12 Nec Corp ベクトル除算方式とその装置
US5784307A (en) * 1996-05-31 1998-07-21 Intel Corporation Division algorithm for floating point or integer numbers

Also Published As

Publication number Publication date
KR19980032055A (ko) 1998-07-25
US5999962A (en) 1999-12-07
TW521207B (en) 2003-02-21
JP3660075B2 (ja) 2005-06-15
KR100329914B1 (ko) 2002-07-22

Similar Documents

Publication Publication Date Title
US5245564A (en) Apparatus for multiplying operands
JPS6347874A (ja) 算術演算装置
JPH0612229A (ja) 乗累算回路
JPH0831025B2 (ja) 乗算回路
US3878985A (en) Serial-parallel multiplier using booth{3 s algorithm with combined carry-borrow feature
JP4273071B2 (ja) 除算・開平演算器
JP3660075B2 (ja) 除算装置
JPH1195982A (ja) 演算処理回路及び演算処理方法並びに演算処理システム
JPH08221256A (ja) 乗算器及び積和演算装置
US5870322A (en) Multiplier to selectively perform unsigned magnitude multiplication or signed magnitude multiplication
JPS58129653A (ja) 乗算方式
JP2765516B2 (ja) 積和演算器
LaMeres Arithmetic Circuits
Deepa et al. Performance Analysis of FPGA Implementation of 4 x 4 Vedic Multiplier using different adder architectures
JP3563043B2 (ja) 平方根の逆数計算方法、計算回路、及びプログラム
RU2797164C1 (ru) Конвейерный умножитель по модулю
Teja et al. Implementation of vedic multiplier using modified architecture by routing rearrangement for high-optimization
JPS6259828B2 (ja)
JP2734438B2 (ja) 乗算装置
JPH0368415B2 (ja)
KR100386979B1 (ko) 갈로아체상에서 비트 직렬 승산기의 병렬화 방법 및 이를이용한 직병렬 승산기
JPH1049347A (ja) 乗算器
JPS63254525A (ja) 除算装置
JP2580413B2 (ja) 乗算処理装置
JPH0784762A (ja) 乗算回路

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040831

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041018

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050316

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090325

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees