JPH0368414B2 - - Google Patents

Info

Publication number
JPH0368414B2
JPH0368414B2 JP57038016A JP3801682A JPH0368414B2 JP H0368414 B2 JPH0368414 B2 JP H0368414B2 JP 57038016 A JP57038016 A JP 57038016A JP 3801682 A JP3801682 A JP 3801682A JP H0368414 B2 JPH0368414 B2 JP H0368414B2
Authority
JP
Japan
Prior art keywords
register
value
remainder
quotient
divisor
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.)
Expired - Lifetime
Application number
JP57038016A
Other languages
English (en)
Other versions
JPS58155456A (ja
Inventor
Hozumi Hamada
Hiroaki Nakanishi
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP57038016A priority Critical patent/JPS58155456A/ja
Publication of JPS58155456A publication Critical patent/JPS58155456A/ja
Publication of JPH0368414B2 publication Critical patent/JPH0368414B2/ja
Granted 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

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)

Description

【発明の詳細な説明】 本発明は、電子計算機の演算命令により、浮動
小数点数の除算の商と剰余を汎用レジスタ等の上
に与える情報処理装置に関するものである。
この種情報処理装置における実数値の演算は浮
動小数点によるのが通例である。従来の浮動小数
点除算は、結果として要求される精度までの除算
を行なつて商を得るものであり、剰余は得られな
い。しかしながら、商を整数値として得られるま
で計算した場合の剰余を必要とする場合がある。
これを求めるために、従来は、例えば、(米国特
許第3871578号)に示す装置を用いることができ
る。このような従来の装置では、本来除数である
べき数の逆数を乗数とする乗算を行ない、この整
数部と小数部とを分離して、それぞれを演算結果
とするものである。しかしこの計算は本質的に近
似法であるため、正確な剰余を必要とする計算に
は使用できない。
すなわち、従来は除数の逆数を乗数とする乗算
を行なつているので、一般に除数が正しく浮動小
数点数として表わされていても、逆数の浮動小数
点数表現は正しい値を表わし得ない。これが近似
計算である理由の第1である。次に、除数の逆数
との積の値の小数点位置以上の整数部は正しい商
を表わしているが、積の値の小数点位置以下の小
数部は、このままでは剰余を表わさず、この値と
除数との積が剰余である。この剰余を求める演算
によつて誤差が生じることが、近似計算である理
由の第2である。従来は、以上の2つの理由によ
り、近似計算を行なうに過ぎず、正確な剰余を得
ることができなかつた。
本発明の目的は、浮動小数点データの除算にお
いて、演算結果としての商および剰余を、非常に
精度良く得ることができる情報処理装置を提供す
ることにある。
このような目的を達成するために、本発明で
は、被除数の指数部および仮数部をそれぞれ保持
する第1および第2のレジスタと、除数の指数部
および仮数部をそれぞれ保持する第3および第4
のレジスタと、第1および第3のレジスタの指数
部の差を求める第1の演算手段と、第2および第
4のレジスタの符号が同一かどうかを判定する比
較手段と、この比較手段の比較結果に応じて、第
2および第4のレジスタの内容の加算または減算
を行なう第2の演算手段と、第1の演算手段での
演算結果に応じた回数だけ、第2の演算手段での
演算を繰り返し、その中間過程で除数の仮数部を
第2の演算手段での演算結果で更新し、かつ、除
数の仮数部の値を桁移動させるようにする制御手
段とを備えたことに特徴がある。
以下、本発明の実施例を図面により詳細に説明
する。
第1図は本発明による情報処理装置の主要部の
一実施例の構成を示すものである。
第1図において、レジスタ1,2は被除数を保
持するレジスタで、指数部レジスタ1と仮数部レ
ジスタ2よりなる。レジスタ3,4は除数を保持
するレジスタで、指数部レジスタ3と仮数部レジ
スタ4よりなる。レジスタ5,6は演算結果の剰
余を保持するレジスタで、指数部レジスタ5と仮
数部レジスタ6よりなる。これら3個のレジスタ
に保持されるデータは、正規化された浮動小数点
表現によるものとする。もしデータが正規化され
ていない場合には、以下に述べる処理に先立つ
て、正規化処理を行なうことは従来通りである。
また除数の値が0であるときは、従来通りの除算
の例外として扱う。除数の値が0でなく被除数の
値が0のときは、剰余および商を0とする。以下
の説明は除数、被除数ともに0でない場合につい
て行なう。
指数部と仮数部の表現形式は種々存在するが、
ここでは説明の便宜上次の通りとする。これ以外
の表現形式をとる場合でも本質的な差異はなく適
用可能であることはいうまでもない。すなわち、
指数部は整数で表わし、その負数は2の補数で表
わす。仮数部は値xに関する次の不等式を満たす
数値の2進ビツト列で表わし、その負数は2の補
数で表わす。
−2x<−1あるいは1x<2 レジスタ9は除算の途中における中間剰余を保
持するレジスタであり、その最左の1ビツト10
は剰余の符号を表わす。符号10が値0のとき非
負であり、値1のとき負であることは通例によ
る。レジスタ9には最初に、被除数の仮数の値を
格納し、これが最初の中間剰余となる。レジスタ
11は除数の仮数の値を格納するためのレジスタ
であり、その除算の間その値を変えない。なお、
レジスタ9はレジスタ2で、レジスタ11はレジ
スタ4で兼ねることもできる。
レジスタ7は被除数の指数部レジスタ1の値と
除数の指数部レジスタ3の値の差を保持するレジ
スタであり、これは除算の主要部を占める繰返し
の回数を定めるために用いられる。レジスタ8は
シフトレジスタであり、符号比較器15の結果に
よつて値が設定されるが、設定方法は除算の3ス
テツプ(a)前処理、(b)繰返し、(c)後処理によつて異
なる。演算器14は、加減算を行なうもので、そ
こで加算を行なうか、減算を行なうかは比較器1
5の結果によつて定まる。この演算器14は、比
較器15の結果が0のとき、すなわち中間剰余の
符号と除数の符号が一致しないとき加算器とし
て、同じく1のとき、すなわち両符号が一致する
とき減算器として働らく。演算器13は常に減算
器として働らき、レジスタ1からの入力13aの
値から、レジスタ3からの入力13bの値を減じ
た結果を出力レジスタ7に保持する。なお、この
演算器13は演算器14で兼ねてもよい。
比較器15は、レジスタ9の符号ビツト10
と、レジスタ11の符号ビツト12の値によつて
結果が定まり、その結果は、第2図に示す通り、
両入力が等しいとき1、等しくないとき0とな
る。
シフタ16はレジスタ9の値を演算器14の第
1入力14aに1ビツト左シフトしたものを転送
するためのものである。1ビツト左シフトする母
線20の他に、シフトしない母線21を設ける。
第3図は、第1図の装置によつて除算を行なう
制御手順の一例を示すもので、これらの制御は、
図示されていないプロセツサによつて行なわれ
る。
除算は(a)前処理、(b)繰返し処理、(c)後処理の3
つの処理からなつており、これらを順次、第3図
を参照しながら説明する。
(a) 前処理 まず、被除数の仮数部レジスタ2の値をレジ
スタ9に除数の仮数部レジスタ4の値をレジス
タ11に転送する(第3図のステツプ31,32)
レジスタ9の値を演算器14の第1入力14a
として、母線21を通して転送する。また、レ
ジスタ11の値を演算器14の第2入力14b
として転送する。演算器14の減算の結果をレ
ジスタ9に転送する。一方、レジスタ9の符号
ビツト10とレジスタ11の符号ビツト12を
比較器15に送り比較を行ない、両ビツトが同
じであれば1を出力し、同じでなければ0を出
力する。比較器15の比較結果の値が、0のと
きシフトレジスタ8をすべて1に、1のときす
べて0に設定する(第3図のステツプ33)。こ
れは、「足し戻しをしない除算」として知られ
た演算のための初期条件の設定である。通常こ
の演算は、次項の繰返し処理と同じ操作を行な
つて、最後に符号ビツトの0と1の反転によつ
て実現するが、本発明の場合には、一般の手法
と異なり、次項の繰返し処理の回数が、仮数部
の有効ビツト数とは異なるため、最後の符号ビ
ツトの0と1の反転のみでは実現できないから
である。
指数部レジスタ1の値を演算器13の第1入
力13aとして入れるとともに、指数部レジス
タ3の値を演算器13の第2入力13bとして
入れる。演算器13は、第1入力13aの値か
ら第2入力13bの値を減じ、その結果の値n
をレジスタ7に保持する(第3図のステツプ
34) (b) 繰返し処理 次のことを、レジスタ7の値nに1を加えた
回数だけ行なう。
すなわち、レジスタ7の値nを調べ(第3図
のステツプ35)、それが負でなければ、レジス
タ7の値を1だけ減少する(第3図のステツプ
36)とともに、比較器15で、レジスタ9と1
1の符号を比較する(第3図のステツプ37)。
レジスタ9の値を、シフタ16を通して、母
線20によつて、演算器14の第1入力14a
として転送する。レジスタ11の値を演算器1
4の第2入力14bとして転送する。比較器1
5の結果によつて演算器14を加算器あるいは
減算器として働かせ、出力結果をレジスタ9に
転送する(第3図のステツプ39,41)。
また、シフトレジスタ8の内容を1ビツト左
にシフトし、最も右のビツトとし、比較器15
の結果の値を設定する(第3図のステツプ38,
40)。
この部分の処理は、「足し戻しをしない除算」
として知られた演算である。剰余と除数が同符
号のときは商1を立てて減算し、異符号のとき
は商−1を立てて加算する。この演算によれば
常に最新の商のビツトは1であるが、その直前
の商は、商1が立つときは1のまま、商−1が
立つときは引算の借りにより0となる。したが
つて、直前の商として、同符号のとき1、異符
号のとき0を立てるわけである。
以上のことから、この繰返しを終つたとき、
最後の商は1であることを考慮しなければなら
ない。繰返しの回数を、レジスタ7の値に1を
加えたものとする理由は、商として0.5あるい
は−0.5まで求めるためである。これによつて、
剰余rの範囲が、除数dによつて次の範囲とな
る。
−|d|/2r<|d|/2 剰余rの範囲をこの通りとすることによつて、
次の後処理を容易にすることができる。
(c) 後処理 レジスタ9の値を、母線21を通つて演算器
14の第1入力14aとして転送する。その第
2入力についてはこれまでと同じである。演算
器14において、比較器15の比較結果によつ
て加算あるいは減算を行なつて、演算結果をレ
ジスタ6に転送する(第5図のステツプ43)。
レジスタ3の値から1だけ減じた値をレジスタ
5に転送する。シフトレジスタ8については、
比較器15の値が0のときはそのまま、1のと
きは、1を加える(第3図のステツプ42)。
この処理は、(b)繰返しの最後の商が0.5ある
いは−0.5であるものを整数に補正するための
ものである。
以上によつて、シフトレジスタ8には商が固定
小数点形式で、レジスタ5,6に剰余が浮動小数
点形式が得られる。固定小数点形式から浮動小数
点形式への変形、浮動小数点数の正規化について
は、必要に応じてこれを行なつてもよい。
本発明によれば、浮動小数点形式で表現された
数値の除算の商を整数値として得るように繰返し
回数を制御し、整数の商とそのときの剰余とを得
るための手段を与えることによつて、正しく剰余
を得ることができるため、例えば、次に述べる周
期関数値等の計算を精度よく行なえる。
浮動小数点数の除算において、商と剰余を同時
に求め得ることによる効果を示す例を述べる。
三角関数は周期関数である。このうち正接関数
の周期は弧度法で表わすときπ(円周率)である。
しかし次の関係式も知られている。
tan((2i+1)π/2+r)=−1/tanr これを用いて、正接関数値の値を −π/4r<π/4 におけるtan rの値の計算に基づいて計算するこ
とができるから、実質的に周期はπ/2であると
考えて差しつかえない。また従来多くの正接関数
計算用サブルーチンはこのように作られてきてい
る。
以上のことから、正接関数値の計算においては
独立変数xをπ/2で除した商qと剰余rとを求
めることによつて、次の2ステツプで計算でき
る。
(a) 区間 −π/4r<π/4 における正接関数値計算ルーチンによりtan
rの値を求める。
(b) qの偶奇により、qが偶数のときはそのまま
奇数のときは−1/tan rを計算する。
ここでqは整数、rは次の区間を満たすよう
に定める。
−π/4r<π/4 このように、単に剰余のみでなく、商も同時に
求められると効果的である場合が存在し、三角関
数の計算は多くの場合そうである。
剰余として得られる結果の値の範囲は、理論的
には一通りに決まるわけではないが、実用的には
それらのうちの一つとして、絶対値が最も小とな
るものを選ぶのがよい。その理由は、浮動小数点
表現が、数値の有効桁数を可能なかぎり保持する
目的で使われるものであるから、絶対値の小なる
数値ほど、絶対値としてのきめ細かさが保存され
るからである。したがつて、剰余の値rとしてと
り得る範囲は、除数の絶対値をdとするとき、 −d/2r<d/2 とする。符号については、上のものに限ることは
なく、右の不等号に付けてもよいし、除数、被除
数の符号によつて定まるようにしても、実用的に
何ら差し支えない。
除数dによる除算の代りに1/dとの積を計算
し、整数部と小数部に分離するようにした従来の
装置(例えば、米国特許第3871578号)に比べて、
本発明は次のような効果がある。
(1) 従来のものでは、浮動小数点除算での商は計
算できるが剰余は直接できないのに対して、本
発明では、商とともに、剰余を直接計算でき
る。
(2) 従来のものでは、求めた小数部に除数dを乗
ずれば剰余を求めることができるが、正しい値
でないのに対して、本発明は正しい剰余が得ら
れる。
(3) 従来の場合、浮動小数点数の乗法の演算の結
果、乗数と同じ有効桁数だけ得られるが、小数
点以上の整数部の有効桁数の分だけ小数部の有
効桁数が減少するため、剰余計算の代替演算と
はなり得ないのに対して、本発明ではそのよう
な不都合はない。
(4) 従来のものでは、三角関数等の近似公式は独
立変数の簡単な関数になつているが、乗法によ
る小数部を用いる時は独立変数に一次変換を施
した公式を用いなければならないので、公式の
係数の誤差が生ずるとともに、小数部を得るた
めに、dを乗じた時に誤差が生じ、それらの誤
差が複合して大きな誤差となるのに対して、本
発明はそのような誤差は全く生じない。
【図面の簡単な説明】
第1図は本発明による情報処理装置の主要部の
一実施例の構成図、第2図は第1図の比較器での
比較結果を表わす図、第3図は第1図の制御手順
の一例を示すフローチヤートである。 1〜12……レジスタ、13,14……演算
器、15……比較器、16……シフタ。
【特許請求の範囲】
1 サイクルタイムで、nビツトの商を生成する
高基数非回復型除算器であつて、除数レジスタ
と、除数の倍数発生回路と、桁上げ先見回路を持
つ加算器と、部分商予測器と、部分商発生器と、
部分剰余レジスタと、剰余補正回路とから構成さ
れる除算装置において、上記倍数発生回路と、桁
上げ先見回路とを、複数個の乗算ルートを備えた
nより少ない複数の乗算器、及び減数レジスタ
と、1段、又は複数段の桁上げ保存加算器と、桁
上げ先見回路を持つ加算器とで構成し、上記複数
個の乗算ルートを備えたnより少ない複数の乗算
器のそれぞれで形成される複数の乗算ルートを、
上記部分予測器からの部分予測信号に基づいて選
択して得た乗算出力値を、それぞれ対応した減数
レジスタにセツトし、該セツトされた上記複数個
の減数レジスタのデータを加算することで、上記
除数の倍数データを生成し、該生成された倍数デ
ータを、上記部分剰余レジスタの値から加減算し
て、和ビツト(S)とキヤリビツト(C)とを得ることを
上記1段、又は複数段の桁上げ保存加算器で行
い、該得られた和ビツト(S)とキヤリビツト(C)を上
記桁上げ先見回路を持つ加算器に入力して次のサ
イクルの部分剰余とすることを特徴とする除算装
置。
JP57038016A 1982-03-12 1982-03-12 情報処理装置 Granted JPS58155456A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP57038016A JPS58155456A (ja) 1982-03-12 1982-03-12 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP57038016A JPS58155456A (ja) 1982-03-12 1982-03-12 情報処理装置

Publications (2)

Publication Number Publication Date
JPS58155456A JPS58155456A (ja) 1983-09-16
JPH0368414B2 true JPH0368414B2 (ja) 1991-10-28

Family

ID=12513773

Family Applications (1)

Application Number Title Priority Date Filing Date
JP57038016A Granted JPS58155456A (ja) 1982-03-12 1982-03-12 情報処理装置

Country Status (1)

Country Link
JP (1) JPS58155456A (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4846237A (ja) * 1971-10-13 1973-07-02
JPS5010933A (ja) * 1973-05-28 1975-02-04

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4846237A (ja) * 1971-10-13 1973-07-02
JPS5010933A (ja) * 1973-05-28 1975-02-04

Also Published As

Publication number Publication date
JPS58155456A (ja) 1983-09-16

Similar Documents

Publication Publication Date Title
JP3541066B2 (ja) コンピュータにおいて除算および平方根計算を実施するための方法および装置
EP0149248B1 (en) Method and apparatus for division using interpolation approximation
US5249149A (en) Method and apparatus for performining floating point division
USRE39385E1 (en) Method and apparatus for performing mathematical functions using polynomial approximation and a rectangular aspect ratio multiplier
US5184318A (en) Rectangular array signed digit multiplier
JPH03136129A (ja) 除算回路及び除算方法
KR100241076B1 (ko) 조정및정규화클래스를구비한부동소수점승산및누산장치
KR100203468B1 (ko) 부동소수점수를 위한 산술연산장치
US8060551B2 (en) Method and apparatus for integer division
US5144576A (en) Signed digit multiplier
JPH02112023A (ja) 基数16除算器
US4594680A (en) Apparatus for performing quadratic convergence division in a large data processing system
US5784307A (en) Division algorithm for floating point or integer numbers
US5408426A (en) Arithmetic unit capable of performing concurrent operations for high speed operation
US5278782A (en) Square root operation device
JPH0477932B2 (ja)
US5818745A (en) Computer for performing non-restoring division
EP0436905B1 (en) High performance adder using carry predictions
EP0377992A2 (en) Floating point division method and apparatus
JP2558669B2 (ja) 浮動小数点演算装置
JPH0772860B2 (ja) 演算方式
JPH0368414B2 (ja)
US5689721A (en) Detecting overflow conditions for negative quotients in nonrestoring two's complement division
JP2578482B2 (ja) 浮動小数点演算器
US5208769A (en) Unsigned integer multiply/divide circuit