JP2645422B2 - 浮動小数点演算処理装置 - Google Patents

浮動小数点演算処理装置

Info

Publication number
JP2645422B2
JP2645422B2 JP63174872A JP17487288A JP2645422B2 JP 2645422 B2 JP2645422 B2 JP 2645422B2 JP 63174872 A JP63174872 A JP 63174872A JP 17487288 A JP17487288 A JP 17487288A JP 2645422 B2 JP2645422 B2 JP 2645422B2
Authority
JP
Japan
Prior art keywords
circuit
bit
point
output
multiplexer
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 - Fee Related
Application number
JP63174872A
Other languages
English (en)
Other versions
JPH0225924A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP63174872A priority Critical patent/JP2645422B2/ja
Priority to US07/374,299 priority patent/US4999801A/en
Priority to DE68929114T priority patent/DE68929114T2/de
Priority to KR1019890010030A priority patent/KR920005226B1/ko
Priority to EP89307180A priority patent/EP0351242B1/en
Publication of JPH0225924A publication Critical patent/JPH0225924A/ja
Application granted granted Critical
Publication of JP2645422B2 publication Critical patent/JP2645422B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】 〔概 要〕 浮動小数点演算処理装置、特に、開平を行う演算回路
に関し、 簡単な回路の改良で開平演算の反復演算を高速化し、
開平演算処理の高速化を実現することを目的とし、 整数乗算器、右シフト回路、および丸め回路を用い
て、2つの乗算すべき2進数の仮数部の乗算値が得られ
る浮動小数点演算処理装置であって、前記右シフト回路
と丸め回路の間に、ビット反転回路およびマルチプレク
サを設け、開平演算の一部の演算時のみ、該ビット反転
回路の出力が該マルチプレクサを介して該丸め回路へ供
給され、最小桁に「1」を加算され、1ビット右シフト
され、前記演算以外の時は、該右シフト回路の出力が該
マルチプレクサを介して該丸め回路へ供給されるように
構成される。
〔産業上の利用分野〕
本発明は、浮動小数点演算処理装置に関し、特に、浮
動小数点表記法の数値について開平を行う演算回路に関
する。浮動小数点演算は、整数(固定小数点)演算と比
べ、ダイナミックレンジが広く精度も高いので、最近で
は各種の高度な演算要求を満たすものが求められる傾向
にある。なかでも、開平に関する高速処理が重要になっ
てきている。
〔従来の技術〕
一般に開平の方式として、浮動小数点に限らず、収束
法(例えば、ニュートン・ラプソン法)を用いる方法が
知られている。数値B平方根を求めるために、まず を求め、それにBを乗じて の計算をニュートン・ラプソン法による収束計算によっ
て求める場合、収束までに要する繰り返し回数は逆数の
初期値が真の値に近いほど少なくなる。
現在発表されている浮動小数点演算処理装置では、ニ
ュートン・ラプソン法を用いて開平を行っているものが
多い。ニュートン・ラプソン法では逆数の初期値をある
精度内で与えれば、3〜4回程度の収束計算で収束値が
求められる。従ってニュートン・ラプソン法による開平
は高速処理が可能である。
ニュートン・ラプソン法を用いた開平について説明す
る。開平を実行するには、まず逆関数を求める。例え
ば、 という逆数の形で表現できる。ニュートン・ラプソン法
を用いて逆関数の反復表現を求めると次式のようにな
る。
Xi+1=1/2*Xi(3−BXi 2) ここに、i=0の場合のX0は最初の の逆数の近似値で、Xiは1番目の近似値である。符号*
は乗算の記号である。初期値X0が不等式 の条件を満たす時、乗算は終了する。初期値を得る代表
的な方法はBの上位10ビット程度をルックアップテーブ
ル(ROM等が用いられる)のポインタとして用い、ROMは
Bの値が示すアドレスの内容を初期値として出力する。
出力ビット数は入力ビット数とほぼ同じ場合が普通であ
る。一般に、浮動小数点の開平の場合、指数部と仮数部
の逆数を別々のルックアップテーブルから求める。
第4図に従来の浮動小数点演算処理装置(乗算器)を
示す。2つの入力(入力1および入力2)から入力され
る浮動小数点数を(−1)Sa2Ea-bias(1.Fa)と(−
1)Sb2Eb-bias(1.Fb)とする。この浮動小数点乗算器
は正規化数のみ扱う。それぞれの仮数部(1.Fa)と(1.
Fb)は整数(固定小数点)乗算器によって(1.Fa)×
(1.Fb)が実行される。この結果は、1.xxxx…、または
1x.xxxx…となる。1.xxxx…の場合は既に正規化されて
いる。1x.xxxx…の場合は正規化処理が必要である。す
なわち、右シフト回路5で1ビット右シフトを実行す
る。この時、指数部を+1する必要がある。
次に正規化された数値を出力データ形式に合わせるた
め丸め処理を行う。丸め回路6におけるラウンド回路12
で、出力データ形式におけるLSB(最小桁)以下の桁を
切り捨てると共に、丸めモードに従いLSBに「1」を加
えるかどうかを決定する。そして、LSBに「1」を加え
る操作は積算器(インクリメンタ)11によって実行され
る。この時、データがすべて「1」であればオーバフロ
ーが発生する。この場合は、右シフト回路13によって1
ビット右シフトされ、最終的な出力は正規化数となる。
指数部の演算について説明する。指数部の演算は図に
おける縦の鎖線の左側部分で行われる。1段目の加算器
21ではEa+Ebが実行され、2段目の加算器22では、その
結果に−biasを加える。従って、この2つの加算器によ
って、Ea+Eb−biasの計算が行われる。3段目の積算器
23では、正規化処理によるオーバフローの補正が必要な
時、+1加算が行われる。さらに4段目の積算器24で
は、丸め処理によるオーバフロー補正のために+1加算
が前もって行われ、オーバフロー信号Vによりマルチプ
レクサ(MUX)25でそのいずれかが選択される。符号の
計算は、SaとSbの排他的論理和によって実行される。
第4図に示したような従来の浮動小数点乗算器では、
2−BXiの計算をすることができず、2−BXiの計算を行
うためには、従来の浮動小数点乗算器を用いる場合、他
に加算器を必要とする。
〔発明が解決しようとする課題〕
前述のように、 Xi+1=1/2*Xi(3−BXi 2)の反復計算は、 乗算:B*Xi(以下=Aとする) 乗算:A*Xi 減算:3−(A*Xi) 乗算:Xi*(3−(A*Xi)) 乗算:1/2*(Xi*(3−(A*Xi))) の5つの算術演算が必要であり、全体の演算処理時間が
長く、高速化要求に添い難いという問題点があった。
本発明の目的は、浮動小数点演算処理装置における簡
単な改良で上記反復計算を高速化し、開平演算処理の高
速化を実現することにある。
〔課題を解決するための手段〕
本発明においては、第1図に例示されるように、2つ
の乗算すべき2進数の仮数部を整数(固定小数点)乗算
器20により乗算し、該乗算値を最上位ビットの値に対応
して1ビット右シフトする右シフト回路5を経て、丸め
回路6に供給し、該丸め回路6の出力に乗算された2進
数の仮数部が得られる浮動小数点演算処理装置に、さら
にビット反転回路7およびマルチプレクサ8を設ける。
該ビット反転回路7とマルチプレクサ8は前記右シフト
回路5と丸め回路6の間に設けられ、該ビット反転回路
7は小数点より上の桁に2進数「10」を設定し、小数点
より下の桁を反転する。マルチプレクサ8は開平演算に
おける一部の演算時のみ該ビット反転回路7の出力を該
丸め回路6へ供給する。そして、該ビット反転回路7の
出力は該丸め回路において最小桁に「1」が加算され、
1ビット右にシフトされる。前記演算以外の時は、該右
シフト回路5の出力が該マルチプレクサ8を介して該丸
め回路6へ直接供給される。
本発明の他の形態においては、第1図と第2図を用い
て例示されるように、2つの乗算すべき2進数の仮数部
を整数(固定小数点)乗算器20により乗算し、該乗算値
を最上位ビットの値に対応して1ビット右シフトする右
シフト回路5を経て、丸め回路36に供給し、該丸め回路
36の出力に乗算された2進数の仮数部が得られる浮動小
数点演算処理装置に、さらにビット反転回路37およびマ
ルチプレクサ8を設ける。該ビット反転回路37とマルチ
プレクサ8は前記右シフト回路5と丸め回路36の間に設
けられ、該ビット反転回路37は入力された数値の小数点
以下をビット反転し、小数点より上位のビットを「0」
にする。マルチプレクサ8は開平演算における一部の演
算時のみ該ビット反転回路37の出力を該丸め回路36へ供
給する。そして、該ビット反転回路37の出力は該丸め回
路において最小桁に「1」が加算され、1ビット右シフ
トされ最上位桁に「1」が設定される。前記演算以外の
時は該右シフト回路5の出力が該マルチプレクサ8を介
して該丸め回路36へ直接供給される。
〔作 用〕
前述の装置を用いれば、浮動小数点乗算を行う演算処
理装置において、ビット反転回路7または37とマルチプ
レクサ8を追加するのみで、1/2*(3−AXi)(ただ
し、0<AXi≦1)の2進計算を、浮動小数点乗算の可
能な演算処理装置を用いて1ステップで実行可能とな
り、開平演算に必要な反復計算を高速化できる。
〔実施例〕
実施例の説明に先立って、まず、本発明の原理を説明
する。
IEEE規格の浮動小数点データ・フォーマットによる、
正規化数(1≦B<2)の開平の仮数部の演算について
説明する。Cを開平値とすると、 の近似値Xi+1は、 Xi+1=1/2*Xi(3−)BXi 2) と表現できる。ただし、 B>0。
ここで、初期値X0をルックアップテーブル(ROM)に
より の範囲にすると、0<AX0≦1(ただし、A=BX0)故
に、2≦(3−AX0)<3故に、1≦1/2*(3−AX0
<3/2となり、1/2*(3−AXi)も正規化数になる。従
って、一般に1/2*(3−AX0)は正規化数になる。次に
1/2*(3−AXi)の計算を考える。0<AXi≦IよりAXi
の小数点以下のビット反転を▲▼とすると、(3
−AXi)d=(10.▲▼+LSB(1))bと変換で
きる。ここに、LSB(1):LSB(最小桁)に1を加算、
( )d:10進、( )b:2進を意味する。さらに求めら
れた(10.▲▼+LSB(1))bを1ビット右にシ
フトすることによって、ニュートン・ラプソン法を用い
た開平に必要な1/2*(3−AXi)、ここに、(0<AXi
≦1)の計算を実行できる。以上のようにすると、前述
の5回の反復計算は下記のように簡略される。
乗算:B*Xi、これを=Aとする 本発明による演算:1/2*(3−A*Xi) 乗算:Xi*(1/2*(3−A*Xi)) このように3つの算術演算だけで実行できる。
本発明の一実施例としての浮動小数点演算処理装置の
回路図が第1図に示される。この装置は第1図中央鎖線
によって左右に分けられ、左側は指数部についての演算
が加算器21および22、積算器(インクリメンタ)23およ
び24、およびマルチプレクサ25を用いて行われる。この
指数演算部分については従来の演算処理装置と同じであ
るので、説明を省略する。また符号決定回路も従来型の
ものと同様である。
第1図の中央鎖線の右側に仮数部の演算回路が示され
る。乗算されるべき2つの入力(入力1および入力2)
の仮数部は、整数(固定小数点)乗算器により、破線の
ブロックで示されるようなデータとして出力される。最
上位桁Vは指数部演算における積算器23へ供給されると
共に右シフト回路5を1ビットシフトさせる。整数乗算
器20の出力は右シフト回路5に供給される。右シフト回
路5の出力は本発明により新たに設けられた、ビット反
転回路7およびマルチプレクサ8に供給される。ビット
反転回路7は入力されたデータについて、小数点より下
位桁のビットは反転し、上位のビットは「10」とした数
値、すなわち、 「10.…」というデータを出力する。
以下に1/2*(3−A*Xi)の計算について説明す
る。整数乗算器20からの出力AXiは0<AXi≦1であるた
め、オーバフロービットVは0である。右シフト回路5
通過後のデータは1.0000...0または0.xxxx...である。
これらがビット反転回路7によって1.0000...は10.111
1..、0.xxxは10....となる。ここにはxの反
転値である。開平演算における一部の演算の時、すなわ
ち1/2*(3−A*Xi)の演算の時に与えられる制御信
号(開平)によってマルチプレクサ8はビット反転回路
7からの出力を選択し、開平信号のない時は右シフト回
路5の出力を丸め回路6の一要素である積算器(インク
リメンタ)11へ供給する。開平制御信号の与えられてい
る時はさらに積算器11においてLSBに「1」が加えられ
る。積算器11の出力は他の1つの右シフト回路13を介し
て仮数部出力を出力する。丸め回路6は積算器11、右シ
フト回路13およびラウンド回路12を具備し、丸めモード
において、マルチプレクサ8の出力を受け出力を積算器
11に供給し、演算出力の丸めを行う。
積算器11において最上位桁Vが「1」の時は指数部マ
ルチプレクサ25に信号を送り、積算器23からの出力を選
択し、右シフト回路13で1ビット右シフトを行う。開平
制御の時はオーバフロービットが(すなわち21の桁)が
「1」であるから1ビット右シフトされる。
従って、上述の積算器11の出力迄で、3−A*Xiの演
算が行われ、右シフト回路13によって1/2倍され、結局1
/2*(3−AXi)の演算が1ステップで行われる(ここ
に0<AXi≦1)。
前記実施例の変形例を第2図および第3図を用いて説
明する。第2図には変形例の部分回路図が示される。す
なわち仮数部演算回路における右シフト回路5以下の回
路図が示される。このほかの回路は第1図の回路と同様
である。
この回路においてはビット反転回路7の代りにビット
反転回路37が用いられる。ビット反転回路7においては
小数点より下位桁のビットは反転され、上位のビットは
「10」が設定されるが、ビット反転回路37では、上位ビ
ットは「0」に設定する。また、右シフト回路13の代り
に変形例では右シフト回路33が用いられる。右シフト回
路33の詳細は第3図に示される。この回路は制御信号S
が「1」であれば各マルチプレクサ41の左側の入力が選
択され、「0」であれば右側の入力が選択される。制御
信号Sが「1」の時、最上位桁(MSB)の入力は「1」
が設定されている。制御信号Sは開平演算における1/2
*(3−A*Xi)〔ただし0<AXi≦1〕を行う時に
「1」となるよう制御されている。
〔発明の効果〕
本発明によれば、浮動小数点演算処理装置における簡
単な回路の追加で、開平計算に必要な反復計算を高速化
し、開平演算処理の高速化を実現できる。
【図面の簡単な説明】
第1図は本発明の一実施例としての浮動小数点演算処理
装置の回路図、 第2図は第1図の実施例の変形を示す部分回路図、 第3図は第2図の丸め回路における右シフト回路を示す
回路図、および 第4図は従来例の浮動小数点演算処理装置の回路図であ
る。 図において、 5……右シフト回路、6……丸め回路、 7……ビット反転回路、8……マルチプレクサ、 11……積算器、12……ラウンド回路、 13……右シフト回路、20……整数乗算器、 21,22……加算器、 23,24……積算器、25……マルチプレクサ、 33……右シフト回路、36……丸め回路、 37……ビット反転回路、41……マルチプレクサ、 である。

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】2つの乗算すべき2進数の仮数部を固定小
    数点乗算器である整数乗算器(20)により乗算し、該乗
    算値を最上位ビットの値に対応して1ビット右シフトす
    る右シフト回路(5)を経て、丸め回路(6)に供給
    し、該丸め回路(6)の出力に乗算された2進数の仮数
    部が得られる浮動小数点演算処理装置であって、 前記右シフト回路(5)と丸め回路(6)の間に小数点
    より上の桁に2進数「10」を設定し、小数点より下の桁
    を反転するビット反転回路(7)およびマルチプレクサ
    (8)を設け、開平演算における一部の演算時のみ、該
    ビット反転回路(7)の出力が該マルチプレクサ(8)
    を介して該丸め回路(6)へ供給され、最小桁に「1」
    が加算され、1ビット右シフトされ、前記演算以外の時
    は、該右シフト回路(5)の出力が該マルチプレクサ
    (8)を介して該丸め回路(6)へ供給されるようにし
    た浮動小数点演算処理装置。
  2. 【請求項2】2つの乗算すべき2進数の仮数部を固定小
    数点乗算器である整数乗算器(20)により乗算し、該乗
    算値を最上位ビットの値に対応して1ビット右シフトす
    る右シフト回路(5)を経て、丸め回路(36)に供給
    し、該丸め回路(36)の出力に乗算された2進数の仮数
    部が得られる浮動小数点演算処理装置であって、 前記右シフト回路(5)と丸め回路(36)の間に、印加
    された数値の小数点以下をビット反転し、小数点より上
    位のビットを「0」にするビット反転回路(37)および
    マルチプレクサ(8)を設け、開平演算における一部の
    演算時のみ、該ビット反転回路(37)の出力が該マルチ
    プレクサ(8)を介して丸め回路(36)へ供給され、最
    小桁に「1」が加算され、1ビット右シフトされ最上位
    桁に「1」が設定され、前記演算以外の時は、該右シフ
    ト回路(5)の出力が該マルチプレクサ(8)を介して
    該丸め回路(36)へ供給されるようにした浮動小数点演
    算処理装置。
JP63174872A 1988-07-15 1988-07-15 浮動小数点演算処理装置 Expired - Fee Related JP2645422B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP63174872A JP2645422B2 (ja) 1988-07-15 1988-07-15 浮動小数点演算処理装置
US07/374,299 US4999801A (en) 1988-07-15 1989-06-30 Floating point operation unit in division and square root operations
DE68929114T DE68929114T2 (de) 1988-07-15 1989-07-14 Gleitkomma-arithmetische Einheiten
KR1019890010030A KR920005226B1 (ko) 1988-07-15 1989-07-14 부동 소수점 연산장치
EP89307180A EP0351242B1 (en) 1988-07-15 1989-07-14 Floating point arithmetic units

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63174872A JP2645422B2 (ja) 1988-07-15 1988-07-15 浮動小数点演算処理装置

Publications (2)

Publication Number Publication Date
JPH0225924A JPH0225924A (ja) 1990-01-29
JP2645422B2 true JP2645422B2 (ja) 1997-08-25

Family

ID=15986134

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63174872A Expired - Fee Related JP2645422B2 (ja) 1988-07-15 1988-07-15 浮動小数点演算処理装置

Country Status (1)

Country Link
JP (1) JP2645422B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2722858B2 (ja) * 1991-06-03 1998-03-09 松下電器産業株式会社 開平演算装置
US5278782A (en) * 1991-06-03 1994-01-11 Matsushita Electric Industrial Co., Ltd. Square root operation device
JPH0683591A (ja) * 1992-09-07 1994-03-25 Nec Corp 浮動小数点乗算器とそのテスト方式
US5729481A (en) * 1995-03-31 1998-03-17 International Business Machines Corporation Method and system of rounding for quadratically converging division or square root

Also Published As

Publication number Publication date
JPH0225924A (ja) 1990-01-29

Similar Documents

Publication Publication Date Title
KR920005226B1 (ko) 부동 소수점 연산장치
KR19980702882A (ko) 시프트 수단을 이용한 지수 회로 및 사용 방법
US5111421A (en) System for performing addition and subtraction of signed magnitude floating point binary numbers
KR100203468B1 (ko) 부동소수점수를 위한 산술연산장치
JPH04290122A (ja) 数値表現変換装置
US5260889A (en) Computation of sticky-bit in parallel with partial products in a floating point multiplier unit
US7809784B2 (en) Apparatus and method for calculation of divisions and square roots
JP2001222410A (ja) 除算器
JP2645422B2 (ja) 浮動小数点演算処理装置
GB2549153B (en) Apparatus and method for supporting a conversion instruction
US4823300A (en) Performing binary multiplication using minimal path algorithm
KR19980082906A (ko) 부동 소수점 숫자의 정수형으로의 변환 방법
JP2578482B2 (ja) 浮動小数点演算器
JPH0540605A (ja) 浮動小数点乗算装置
JP2777265B2 (ja) 高基数開平演算装置
KR20010067226A (ko) 인터폴레이션 방법 및 장치
JP3077880B2 (ja) スティッキービット検出回路
Natarajan et al. Arithmetic Operations and Circuits
JP3100868B2 (ja) 浮動小数点数のための算術演算装置
JPH1185471A (ja) 演算方法および演算装置
JP2000010763A (ja) 除算回路
JPH06195206A (ja) 除算器
KR940008610B1 (ko) 고속 수렴 인자 결정 방법 및 프로세서
JPH0778724B2 (ja) 除算器
JPH05216629A (ja) 除算装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees