JP2530504B2 - 浮動小数点演算器 - Google Patents

浮動小数点演算器

Info

Publication number
JP2530504B2
JP2530504B2 JP2006253A JP625390A JP2530504B2 JP 2530504 B2 JP2530504 B2 JP 2530504B2 JP 2006253 A JP2006253 A JP 2006253A JP 625390 A JP625390 A JP 625390A JP 2530504 B2 JP2530504 B2 JP 2530504B2
Authority
JP
Japan
Prior art keywords
mantissa
exponent
multiplication
division
data
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
JP2006253A
Other languages
English (en)
Other versions
JPH03211615A (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.)
Mitsubishi Electric Corp
Mitsubishi Precision Co Ltd
Original Assignee
Mitsubishi Electric Corp
Mitsubishi Precision Co 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 Mitsubishi Electric Corp, Mitsubishi Precision Co Ltd filed Critical Mitsubishi Electric Corp
Priority to JP2006253A priority Critical patent/JP2530504B2/ja
Publication of JPH03211615A publication Critical patent/JPH03211615A/ja
Application granted granted Critical
Publication of JP2530504B2 publication Critical patent/JP2530504B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は、電子計算機等に使用され、基数が16の浮動
小数点形式のデータを使って、加算、減算、乗算、除算
の四則演算を行う演算器に関し、仮数部分を最上位桁か
ら常時有効に使用して精度よく演算を実行する浮動小数
点演算器に関する。
[従来の技術] 電子計算機における計算は、特に科学技術計算等の分
野において、浮動小数点方式で行われるのが普通であ
る。浮動小数点方式での数値データは一般に次のように
表現される。
(符号;±1)×(d-1×2-1+d-2×2-2 +…)×Rn …(1) d-1,d-2…等は、0が1のビットであり、(d-1×2-1
+d-2×2-2+…)の部分は仮数部と称する。Rは基数と
いい、通常2か16が使われ、Rnは指数部である。浮動小
数点方式によるデータ形式の例を第2図に示す。この例
ではデータそのものを表現するのに全部で32ビットが使
われ、このうち、符号ビットに1ビット、指数部に7ビ
ット、仮数部に24ビットが使われている。
第2図の例では、指数部に7ビットが使われている
が、数値そのものの絶対値の大きさを表わすために、こ
の指数部にも符号を表わす部分が1ビット必要であり、
そのため、関係式(1)のnの絶対値を表わすのに使え
るビットは6ビットになる。実際には、指数部を表わす
のに符号と絶対値を用いることはあまりなく、通常は
「げたばき方式」と呼ばれるところの、実際のnに指数
部分最上位ビットのみ1で他が0の値(第2図の例では
1000000の値)を加えた形で指数部を表現している。こ
の方式によれば、指数部分がすべて0の値はnの最小値
(第2図の7ビットの場合、−1000000=−6410)に対
応し、最上位ビットのみ1の値(1000000)はn=0に
対応することになり、ビットデータとnとの対応は次の
ようになる。
しかしながら、このげたばき方式は、浮動小数点方式
での数値データを表現することにおいて、指数部を符号
と絶対値とで表わすことと本質的な差はないので、以下
においては、指数部はこの符号+絶対値の形式で考える
こととする。
さて、第2図の浮動小数点データ形式で数値データを
表わす場合、基数nを2とすると関係式(1)は、 (符号;±1)×(d-1×2-1+d-2×2-2 +…+d-24×2-24)×2n …(3) となる。また基数を16とすると (符号;±1)×(d-1×2-1+d-2×2-2 +d-3×2-3+d-4×2-4+…d-21×2-21 +d-22×2-22+d-23×2-23 +d-24×2-24)×16n =(符号;±1)×(h-1×16-1 +h-2×16-2+…+h-6×16-6)×16n …(4) なお、h-1=d-1×23+d-2×22 +d-3×21+d-4×20, h-2=d-5×23+d-6×22+d-7×21+d-8×20,…等であ
り、4ビット分で、16進数の桁を表現している。
基数が2の場合、第2のデータ形式によって表現でき
る絶対値の最大、最小値はそれぞれ 最大=263≒9.2×10-18,最小=0.5 ×2-63≒5.4×10-20 …(5) となり、これ以上、若しくは以下の絶対値の数値は、オ
ーバーフロー又はアンダーフローとなってしまう。基数
を16とすれば、表現できる最大、最小値はそれぞれ 最大=1663≒7.2×1075,最小=16-1 ×16-63≒8.6×10-78 …(6) というように広がる。したがって、科学技術計算をおも
に行う計算機においては、このように扱える数値の範囲
を大きくするために、基数が16の浮動小数点データ形式
が多く使われている。
[発明が解決しようとする課題] しかしながら、基数16で数値を表現する形式において
は、関係式(4)からもわかるように、仮数部分の最上
位ビットが常に1であるとは限らない。例えばπ/2=0.
1921FB16×161という数値を表現する場合、その仮数部
となり、最上位3ビット分が0となって、24ビット分の
精度が有効に使われていない。したがって、このことか
らわかるように基数16による浮動小数点データを使った
演算では、仮数部下位ビットの取りこぼしによる演算精
度の低下が生ずることになる。
本発明の課題は、基数16の浮動小数点データ演算にお
いて、仮数部の全ビットを常に有効に使用して、下位ビ
ットの取りこぼしによる演算精度の低下がない演算器を
得ることである。
[課題を解決するための手段] 本発明に係る浮動小数点演算器は、16を基数とした浮
動小数点データによる加算、減算、乗算、除算の四則演
算を行う浮動小数点演算器であって、該基数による指数
部分と、浮動小数点データの仮数部分の最上位ビットが
必ず1となるような2進表示を表現するためにlを0か
ら3までの自然数として2lのべき乗の形で与えられる調
整パラメータlとを入力し、加減算の場合に一方のデー
タの仮数部分のシフト数、及び乗除算の場合に指数部分
演算結果を与える指数部分演算部と、データの仮数部分
を入力し、前記指数部分演算部で与えられたシフト数で
一方のデータの仮数部分をシフトして加算又は減算する
とともに、演算結果の最上位ビットが1となるように正
規化する加減算仮数部分演算部と、データの仮数部分を
入力し、乗算または除算するとともに、演算結果の最上
位ビットが1となるように正規化する乗除算仮数部分演
算部と、前記指数部分演算部で与えられる指数部分を前
記加減算仮数部分演算部の正規化によるシフト数または
乗除算仮数部分演算部の正規化によるシフト数で調整し
た後、四則演算結果の新たな指数部分及び調整パラメー
タlとを得る指数部分パラメータ決定回路とからなるこ
とを特徴とするものである。
関係式(1)で表現される浮動小数点データ形式の絶
対値部分を、 (d-1×2-1+d-2×2-2+…)×16α ×2l …(8) のように定義しなおし、この関係式(8)で示されるデ
ータ形式で四則演算のできる演算器を構成したものであ
る。ここに、α、lは次のように与えられる。
α:整数 l:0〜3の範囲の自然数 …(9) [作用] 上記のように構成した浮動小数点演算器は次のように
使用する。指数部分演算部は、指数部分16αの中のαと
調整パラメータlとで、加減算の場合には一方の入力デ
ータの仮数部分のシフト数を得、乗除算の場合には指数
部分演算結果を得る。
加減算仮数部分演算部は、前記指数部分演算部で与え
られたシフト数で一方のデータの仮数部分をシフトする
ことにより2つのデータの桁合わせをし、加算又は減算
し、そのとき演算結果の最上位ビットが1となるように
桁移動して正規化する。
乗除算仮数部分演算部は、乗算又は除算し、そのとき
演算結果の最上位ビットが1となるように桁移動して正
規化する。
指数指数パラメータ決定回路は、前記指数部分演算部
で与えられた指数部分を、加減算仮数部分演算部から与
えられた正規化によるシフト数、または乗除算仮数部分
演算部から与えられた正規化によるシフト数で調整した
後、四則演算結果の新たな指数部分及び調整パラメータ
lとを得る。
このように作用して、浮動小数点データ形式を関係式
(8)のように定義しなおすことにより、仮数部分の全
ビットが常に有効に使用されたデータを使っての演算が
可能となる。例えば、関係式(7)について説明したよ
うに、2lの項の存在を考えない場合、π/2の数値表現の
仮数部分は、3ビット分むだになっているが、関係式
(8)において、α=0,l=1とすればπ/2=0.C90FDB
16×160×21と表現でき、その仮数部分は となり、仮数部分最上桁を1としてデータが表現でき
る。すなわちこの例からわかるように、演算結果に応じ
てlを値を0〜3の範囲で調整することにより、仮数部
の全ビットを有効に使用して演算の精度を保つことがで
きる。
(実施例) 以下、この発明に係る浮動小数点演算器の一実施例を
図面を参照して説明する。
まず、四則演算に対する被演算数を関係式(8)の形
式で次のように定義する。
x1=(d-1×2-1+d-2×2-2+…) ×16α×2l (d-1=1) x2=(d′-1×2-1+d′-2×2-2+…) ×16α′×2l′ (d′-1=1) …(11) 第1図は一実施例の機能ブロック図である。1は入力
データの仮数部分の加減算を行う加減算仮数部分演算部
であり、データを入力し2つのデータの桁合わせをする
ための仮数部シフト回路11と、選択により加算又は減算
を行う加減算演算器12と、演算結果の最上位ビットが1
になるように桁移動する正規化回路13とからなる。2は
入力データの仮数部分の乗除算を行う乗除算仮数部分演
算部であり、選択により乗算または除算を行う乗除算演
算器21と、演算結果の最上位ビットが1になるように桁
移動する正規化回路22とからなる。3は指数部分演算部
であり、16を基数とする浮動小数点データの指数部α、
α′を入力して4倍するために2ビットシフトする2ビ
ットシフト回路311,312と、前記2ビットシフト回路31
1,312の出力と仮数部分の最上位ビットがかならず1と
なるような2進表示を表現するためにlを0から3まで
の自然数として2lのべき乗の形で与えられる調整パラメ
ータl、l′とをそれぞれ加算する加算器321,322と、
前記加算器321,322の出力を入力して演算する大小比較
および減算器33と、やはり前記加算器321,322の出力を
入力して演算する加減算器34とを備える。大小比較及び
減算器33は加減算のとき有効となり、大小比較により小
さいほうの指数部に対応する仮数部分を選択し、かつ減
算によりシフト数をもとめ、前記小さいほうの指数部分
に対応する仮数部分をシフトするように前記加減算仮数
部分演算部1の仮数部シフト回路11に指示するととも
に、大小比較により大きいほうの指数部分を後述する指
数部分パラメータ決定回路に出力する。一方、加減算器
34は乗算のとき有効となり、加算器321,322の出力を乗
算のときに加算し、除算のとき減算し、これを出力す
る。4は指数部分パラメータ決定回路であり、加減算の
ときは指数部分演算部3の大小比較及び減算器33の出力
に加減算仮数部分演算部1の正規化回路13の出力を、乗
除算のときは加減算器34の指数部分出力に乗除算仮数部
分演算部2の正規化回路22の出力をそれぞれ加減算する
加減算器41と、その出力を2ビットシフトしてこれを演
算後の新たな16を基数とするデータの指数部分Aとして
得る2ビットシフト回路42と、前記2ビットシフトによ
りはみ出した分をストアしてこれを新たな調整パラメー
タLとして得るストア回路43とを有する。
次にこの演算器の動作を加減算と乗除算とに分けて説
明する。
○加減算 関係式(11)より、 x1±x2=(d-1×2-1+…) ×2(4α)×2l ±(d′-1×2-1+…) ×2(4α′)×2l′ ={(d-1×2-1+…) ±(d′-1×2-1+…) ×2(4α+l−4α′−l′)} ×2(4α+l) =(D-1×2-1+D-2×2-2+…) ×16A×2L …(12) (Aは整数であり、Lの定義は関係式(9)に同じ) 関係式(12)からわかるように、加減算においては2
つの被演算数の指数部分を比較して、その大きいほうに
仮数部の桁を合わせた後、仮数部の演算を行わなくては
ならない。関係式(12)ではx1の方の指数部が大きい場
合を想定している。2つの指数部を比較してその差であ
るところの桁移動量、すなわちビットシフト量を求め、
それを施す仮数部を選択するのが、第1図の大小比較及
び減算器33である。また、該大小比較及び減算器33は2
つの被演算数の指数部分のうち大きい方を加減算器41に
出力する機能も受け持っている。2ビットシフト回路31
1,312及び加算器321,322は、4n+l,4n′+l′の計算を
行うもので、n及びn′を4倍することは、2ビットシ
フト機能でじゅうぶんである。加減算演算器12は仮数部
分の加減算を行う要素であり、その演算結果は当然2-1
の桁が1の値となる最上位桁として演算が終了しない場
合も含まれるので、正規化回路13が必要である。正規化
回路13は仮数部演算結果を2-1の桁を1の値として最上
位桁となる様桁移動するもので、そのシフト数だけ4α
+l(または4α′+l′)に加えるか、減ずるかし
て、指数部分の調整が必要である。加減算器41はそのた
めのものである。このようにして、加減算における最終
的な正規化された仮数部分(関係式(12)の(D-1×2-1
+D-2×2-2+…)の部分)及びこの段階ではまだ2を基
数としての指数値(4A+L)が定まったわけであるが、
この指数部からA,Lを求めるアルゴリズム及び回路動作
については後述する。
○乗除算 関係式(11)より、乗算の場合、 x1×x2={(d-1×2-1+…) ×(d′-1×2-1+…)} ×2(4α+l+4α′+l′) =(D-1×2-1+D-2×2-2+…) ×16A×2L …(13) (Aは整数であり、Lの定義は関係式(9)に同じ) なお、除算においては、 x1÷x2={(d-1×2-1+…)÷(d′-1×2-1+…)}
×2(4α+l−4α′−l′)となり、仮数部の除算
をする以外は演算器の機能上特に新しい要素はないの
で、乗算についてのみ考えればよい。
関係式(13)からわかるように、乗除算においては、
仮数部と指数部とをそれぞれ独立に演算し、後で桁調整
しておけばよいことがわかる。第1図の加減算器34は、
関係式(13)の指数部分の演算(4α+l+4α′+
l′又は4α+l−4α′−l′)を行うもので、演算
結果は加減算のときと同様に指数部分パラメータ決定回
路4の加減算器41に送られる。乗除算仮数部分演算部2
の乗除算演算器21は仮数部分のみの乗算または除算を行
う要素であり、演算そのものについては、例えば乗算に
ついてはBoothのアルゴリズム、除算においては引戻し
法や引放し法等の優れたアルゴリズムが考案されてい
る。仮数部計算結果に対する正規化動作、これに伴なう
指数部演算結果の桁調整については、加減算のときと同
じである。
次に、加減算及び乗除算における、2の基数としての
指数部演算結果(関係式(12)での4α+l、関係式
(13)での4α+l±(4α′+l′))から、AとL
とを求めるアルゴリズム及び回路動作について説明す
る。この動作は基本的に基数を16に戻す動作であるから
指数部演算結果を2ビット分右へシフトすればよいこと
がわかる。そして、そのときはみ出してきた分がLとな
る。
第3図には、このアルゴリズム動作の例を示し、16を
基数とした指数部とするため、上段のデータ(=16
710)を2ビットシフト(÷4)して、下段に示すデー
タ(=4110)とし、右の2ビットがはみ出し分となり11
=310を得る。したがって、第3図の例では、A=4
110、L=310と定まる。なお、当然、4A+L=4×41+
3=16710である。同図の例からわかるように、この決
定アルゴリズムは単純なシフト回路とストア回路の組み
合わせで構成でき、第1図の2ビットシフト回路42、ス
トア回路43でこれらの機能を実現している。
(発明の効果) 以上のように、この発明によれば、関係式(8)で定
義された浮動小数点データ形式を扱って四則演算のでき
る演算器を構成することにより、仮数部の全ビットを常
に使用する演算が実行でき、基数が16の場合でも仮数部
下位ビットの取りこぼしによる演算精度の低下の少ない
浮動小数点演算器を得ることができる。
【図面の簡単な説明】
第1図は本発明による浮動小数点演算器の一実施例の機
能ブロック図、第2図はビット表示による浮動小数点デ
ータ形式の一例を示す図、第3図は指数部分の演算結果
からα、lを求める回路の動作を示すアルゴリズムの説
明図である。 1……加減算仮数部分演算部、11……仮数部シフト回
路、12……仮数部加減算演算器、13……正規化回路、2
……乗除算仮数部分演算部、21……乗算除算演算器、22
……正規化回路、3……指数部分演算部、311,312……
2ビットシフト回路、321,322……加算器、33……大小
比較及び減算器、34……加算減算器、4……指数部分パ
ラメータ決定回路、41……加減算器、42……2ビットシ
フト回路、43……ストア回路。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】16を基数とした浮動小数点データによる加
    算、減算、乗算、除算の四則演算を行う浮動小数点演算
    器であって、 該基数による指数部分と、浮動小数点データの仮数部分
    の最上位ビットが必ず1となるような2進表示を表現す
    るためにlを0から3までの自然数として2lのべき乗の
    形で与えられる調整パラメータlとを入力し、加減算の
    場合に一方のデータの仮数部分のシフト数、及び乗除算
    の場合に指数部分演算結果を与える指数部分演算部と、 データの仮数部分を入力し、前記指数部分演算部で与え
    られたシフト数で一方のデータの仮数部分をシフトして
    加算又は減算するとともに、演算結果の最上位ビットが
    1となるように正規化する加減算仮数部分演算部と、 データの仮数部分を入力し、乗算または除算するととも
    に、演算結果の最上位ビットが1となるように正規化す
    る乗除算仮数部分演算部と、 前記指数部分演算部で与えられる指数部分を前記加減算
    仮数部分演算部の正規化によるシフト数または乗除算仮
    数部分演算部の正規化によるシフト数で調整した後、四
    則演算結果の新たな指数部分及び調整パラメータlとを
    得る指数部分パラメータ決定回路とからなることを特徴
    とする浮動小数点演算器。
JP2006253A 1990-01-17 1990-01-17 浮動小数点演算器 Expired - Lifetime JP2530504B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006253A JP2530504B2 (ja) 1990-01-17 1990-01-17 浮動小数点演算器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006253A JP2530504B2 (ja) 1990-01-17 1990-01-17 浮動小数点演算器

Publications (2)

Publication Number Publication Date
JPH03211615A JPH03211615A (ja) 1991-09-17
JP2530504B2 true JP2530504B2 (ja) 1996-09-04

Family

ID=11633324

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006253A Expired - Lifetime JP2530504B2 (ja) 1990-01-17 1990-01-17 浮動小数点演算器

Country Status (1)

Country Link
JP (1) JP2530504B2 (ja)

Also Published As

Publication number Publication date
JPH03211615A (ja) 1991-09-17

Similar Documents

Publication Publication Date Title
KR920005226B1 (ko) 부동 소수점 연산장치
KR100203468B1 (ko) 부동소수점수를 위한 산술연산장치
JPH0454633A (ja) 高基数除算器
JP3313560B2 (ja) 浮動小数点演算処理装置
JP2530504B2 (ja) 浮動小数点演算器
JP2527373B2 (ja) 浮動小数点演算器
JPH0540605A (ja) 浮動小数点乗算装置
JP2517064B2 (ja) 非正規化数の処理方式
JP2003216419A (ja) 計算装置及び計算方法
JP2645422B2 (ja) 浮動小数点演算処理装置
JPH0283728A (ja) 浮動小数点乗算装置
JP4428778B2 (ja) 演算装置及び演算方法並びに計算装置
KR20010067226A (ko) 인터폴레이션 방법 및 장치
JPH0251732A (ja) 浮動小数点演算器
JP2777265B2 (ja) 高基数開平演算装置
JP3124286B2 (ja) 浮動小数点数演算装置
JPH11195012A (ja) 自由曲線演算方法および該方法に係るプログラムを格納した記憶媒体
JPH0778724B2 (ja) 除算器
JPH07120265B2 (ja) 2進浮動小数点乗算における丸め処理方式
JPH0361224B2 (ja)
JPH0814790B2 (ja) 演算処理装置
JPH01111229A (ja) 浮動小数点加減算器
JPH0540606A (ja) 浮動小数点乗除算装置
JPH0498524A (ja) 浮動小数点演算装置
JPH0540609A (ja) 浮動小数点除算装置