JPH03260723A - ハイブリッド式関数演算法及び演算処理システム - Google Patents

ハイブリッド式関数演算法及び演算処理システム

Info

Publication number
JPH03260723A
JPH03260723A JP5914490A JP5914490A JPH03260723A JP H03260723 A JPH03260723 A JP H03260723A JP 5914490 A JP5914490 A JP 5914490A JP 5914490 A JP5914490 A JP 5914490A JP H03260723 A JPH03260723 A JP H03260723A
Authority
JP
Japan
Prior art keywords
solution
bit
value
calculation
approximate solution
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.)
Pending
Application number
JP5914490A
Other languages
English (en)
Inventor
Shunpei Kawasaki
俊平 河崎
Jiyunichi Tatezaki
舘崎 順一
Norio Nakagawa
中川 典夫
Yuugo Kashiwagi
柏木 有吾
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 JP5914490A priority Critical patent/JPH03260723A/ja
Publication of JPH03260723A publication Critical patent/JPH03260723A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はハイブリッド式関数演算法、ことに浮動小数点
フォーマットで平方根の厳密解を得るための手法、そし
て当該手法を適用して成る演算処理システムに関し、例
えば浮動小数点演算を行うマイクロプロセッサや、浮動
小数点演算ライブラリや浮動小数点演算機能をもつ計算
機に適用して有効な技術に関する。
〔従来の技術〕
1)浮動小数点演算の歴史 科学技術計算では整数のみではなく実数を多く使用する
ため、これを計算機上で扱うために浮動小数点をデータ
として扱うようになった。第2図に浮動小数点データの
計算機上での表現方法を示す。浮動小数点演算プログラ
ムを通常のプログラマが書くことは専門の知識が必要で
あり難しい為に、専門のプログラマがライブラリを作成
してこれを通常のプログラマが使用するようになった。
これらのライブラリは加減乗除算だけでなく、平方根算
や初等関数の演算機能を持つようになった。
さらに最近では、浮動小数点データを用いて関数演算を
行う機能を命令として持つ計算機も提供されている。
2)平方根演算の手法 現在使われている平方根算や除算の実現方法は大別して
2つある。一つは中間値の定理と区間縮小法を使って一
桁ずつ解を求める二分法であり、またもう一つはニュー
トン・ラプソン法などに代表される近似法である。
3)標準化のための厳密解の要求(IEEE規格)メイ
ンフレームやミニコンピユータにおいては、浮動小数点
のデータ・フォーマットや演算精度が各社毎に異なって
いた為にプログラムやデータの互換性が無く、ソフトウ
ェアの移植性が悪かった。
この反省を踏まえて共通の国際規格(IEEE。
1985−754規格)に合せて業界の標準化が進んだ
。このIEEE、1985−754規格ではデータ・フ
ォーマット、演算結果2分岐条件。
例外処理の方法その他を規定しており極めて高い移植性
を保証できる。現在迄のところマイクロコンピュータの
業界の全てがI EEE規格基準に向かっており、この
規格の適用はさらに拡がっていくものと思われる。
IEEE1985−754規格では加減乗除算と平方根
算からなる基本演算処理について厳密解を要求している
。厳密解とは、無限の精度で得た演算結果と表現可能な
範囲で表わされる演算結果を丸めたものとが同一である
ということである。
4)厳密解を有限の演算器で得る方法 平方根演算で厳密解を得るために実際に無限精度の解を
求めることは不可能である。そこで二分法を使用して必
要な桁まで正しく求めて、その中間結果を使用して無限
精度の解と同一となる解を得る。
有限長のデータ・フォーマットの浮動小数点演算器で計
算するために、3つのフラッグビットを使用する方法が
IEEE委員会より提唱されている。第3図に厳密解を
上記演算資源で得る為に使用するデータ表現形式を示す
。第3図において、1はオーバーフローピッl〜、2は
モーストシグニフィカントビット(MSB)、3はラス
トシグニフィカントピット(LSB)、4はG(ガード
)ビット、5はR(ラウンド)ビット、6はS(ステイ
ッキ)ビットを示す、仮数部分はn+3ビツトからなり
、LSBより重みの小さい3ビツトはG、R,Sフラッ
グと呼ばれる。Sビット、nビットは各々n+1ビット
、n+2ビット目を示し、Sビットはn+3ビツト目か
ら無限に小さなビットのORをした結果を格納する。
上記のn+3のビット列を正しく得て、これに次の丸め
オペレーションを行う事でnビットの厳密解を得ること
ができる。IEEE、1985−754規格は丸めモー
ドを規定している。第4図に各丸めモード別にG、R,
Sビットから丸め結果を得る為のテーブルを示す。なお
、第4図において−”は、変化なしを示す。
5)二分法 二分法の原理を第5図により示す。二分法は中間値の定
理と区間縮小法という数学上の定理の応用であり、後で
述べる「参考文献」の欄において2で示されている文献
の第56頁乃至第76頁に触れられている。第5図に示
すように閉区間工。= (a、b)を二等分してどちら
か一方をI 1= (a x + b 1)とし、次に
■、をマタ二等分シてどちらか一方をI2とし、以下こ
れを繰り返して縮小区間列1.:)I、フ・・・・・・
を作っていくことが二分法である。
区間(a、b)でf (x)が連続で、f(a)≦3’
+11f(b)>y、ならば、必ずf(ξ)=y0であ
るξが区間a≦ξ〈b内にある。そのξは、毎回区間工
j=(ajn bj〕(ao=a+ b、=b)の中点
Cjをとり、 f(cj)≦y0ならば aj+1=cj、bj+1=bj、 f (c j)>yaならば a j”x= a j+  b j”i= Q J、と
してづぎに Ij=(ajn0.bj÷、〕 を求めるという算法を反復したとき、縮小区間列工。フ
エ□D・・・・・・の共通分(極限)として得られる9
5)近似解の性質 平方根の近似解を求める方法には様々のものが有り、ニ
ュートン・ラプソン法、シー・オー・アール・デイ−・
アイ・シー(CORDIC)法、ティラー展開等あるが
、収束の速さからニュートン・ラプソン法が頻繁に使わ
れている。
f(x)が微分可能な場合に1点 x=xnにおける接線 y=f(xn) +(x−xn)f’(xn)・・・・・・・・・・・・
・・・・・・(1)によってy = f (x)を近似
して(1)のO点xn+1=xn −f (x n )/ f ’ (x n )−−−−
(2)を次に近似とする。適当な初期値から初めて式(
2)で順次xnを作る。これを何回か繰り返して解を得
る。
6)参考文献 (1)アイ・イー・イー・イー・スタンダード 754
−1985  フォー バイナリ−フローティングポイ
ント アリスマティックス、アイ・イー・イー・イー、
  1985  (IEEE 5tandard 75
4−1985 for Binary−Floatin
g−Point Arithmetics。
IEEE、 1985) (2)−松、「初等関数の数値計算」、教育出版。
1984゜ (3)コーネエン、ジェ・ティ″アン インプリメンテ
ーション ガイド シリ ア プロポーズド スタンダ
ード フォー フローティングポイント アリスマティ
ック″、アイイイイコンピュータ、ジャニウアリイ 1
980゜(Coonen、J、T、”An Imple
mentation Guide to aPropo
sed 5tandard for Floating
−Point Arithmetic”、IEEE C
omputer、 Jaunary 1980.)〔発
明が解決しようとする課題〕 上記二分法だけによっても厳密解は得られるが。
求めたい桁数以上の条件判定を必要とするために演算速
度が桁数に比例し、高速に解を求めることができないと
いう問題点があった。乗算等の処理は専用の演算ハード
の発達により演算処理の時間は飛躍的に向上したが1条
件判定は1マシン・サイクルに1回であり判定コストは
依然として大きい。例えば、無限長の精度を持つ中間値
を予め定められたnビットの仮数を持つ浮動小数点フォ
ーマットに丸めて得られる厳密解を平方根演算で得る場
合には、第3図に示されるG、R,Sビットの決定を要
するために、少なくともn+3サイクルの演算ステップ
が必要とされる。
一方、平方根を演算する際、ニュートン・ラプソン法な
どの近似法は高速に解が求められるが、求めた桁のビッ
ト列が正しくない場合が有り、それだけでは厳密解が得
られない。
平方根の厳密解を能率良く演算するためには、二分法の
ように反復が多くなく、シかし全てのビットが正しく求
まる演算アルゴリズムが必要である。本発明の目的は、
そのような演算アルゴリズム、そして斯る演算アルゴリ
ズムを採用した演算処理システムを提供することにある
本発明の前記並びにその他の目的と新規な特徴は本明細
書の記述並びに添付図面から明らかになるであろう。
〔課題を解決するための手段〕
本願において開示される発明のうち代表的ものの概要を
簡単に説明すれば下記の通りである。
すなわち、第1図の原理的な処理手順で示されるように
、効率の良い平方根アルゴリズムを提供する為に、近似
解をニュートン・ラプソン法などで算出して(ステップ
P1)、このビット列を加算乗算器を使用して補正する
(ステップP2)。
近似解の精度が充分であれば、補正処理で全てのビット
を正しく補正する。近似解の精度が不充分な場合には、
上位のビット列のみを補正してそこから二分法を再開す
る(ステップP3)。そして何れの場合にも最後に丸め
処理を行う(ステップP4)。
上記処理の詳細な原理を順に説明する。
1)一定の精度を持つ近似解の算出 近似解の算出方法には様々あるが、算出された近似解を
真の値から一定の誤差範囲に収めることは可能である。
さらに、仮数のあるビットの重みに対して一定の大きさ
にすることが可能である。
このため、近似解と最大誤差より厳密解の存在する範囲
を限定する。
2)正しいビット列の回復 近似解と最大誤差より割り出せる厳密解の存在範囲にあ
る数値でどれが厳密解であるかを逆関数に各々の数値を
代入してこれを引き数と比較して割り出す。
3)二分法を途中から開始 最大誤差が比較的大きい場合には、厳密解が存在しろる
範囲に多くの数値表現が存在するため、結局これの中か
ら厳密解を割り出す為に二分法を使用する。
4)G、R,Sビットの生成 厳密解を割り出すためには、求める厳密解の桁数より二
指多く存在範囲を狭めてG、nビットの値を割り出す。
さらにG、nビットも含む求められた値yを逆関数に代
入してf−’(y’)−xを求める事によりSビットを
割り出す。
5)厳密解の生成 G、R,Sビットと丸めモードより厳密解を求める。
〔作 用〕
■)演算の過程で判定処理の減少 二分法では一回の演算から1ビット分の情報しか引き出
せないため、例えばIEEE、185−754規格の倍
精度フォーマットで平方根の厳密解を得る為には、55
回の判定処理が必要である。
一方、本発明のハイブリッド法では同様の結果を得るの
に必要な判定処理は6回から7回である。
この判定処理数の差はそのまま演算マシン・サイクル数
低減を達成する。
2)乗算処理の活用 専用乗算器を設けると引き数の桁数にかかわらず、1つ
のマシン・サイクルで乗算を行なう事ができる。従来は
乗算は多くのマシン・サイクル数を消費する処理であっ
たが、LSI技術の発展した現在では加減算と同様に乗
算を行なうことができる。このため本発明のハイブリッ
ド演算方式が乗算を使用することは何等不利にならない
〔実 施 例〕
先ず、第1図の原理的な処理手順に示されるところの、
近似解の精度が充分である場合における演算アルゴリズ
ムの一実施例を第10図乃至第12図を参照しながら説
明する。第10図にはその演算アルゴリズムの処理手順
が示され、第11図にはその処理内容が数直線上に模式
的に示され、第12図には平方根演算に利用する中間値
のフォーマット(仮数部のみ)が示される。
ここで、近似解の精度が充分とは、その解の誤差が2の
−(n+1)乗未満であること、即ち、Rビットの重み
よりも小さいということである。
このような演算精度的な条件を満足する近似計算を採用
する場合には、先ず、第12図に示される入力値(変域
)X、に対してニュートンラプソン法により近似解(仮
数値)aを求める(ステップSL)。数直線上における
この近似解aの位置は第11図に示され、そのフォーマ
ットは第12図に示される。この近似解aの高い演算精
度故に、第11図に示されるようにラウンドビットRの
重みよりもEnは小さくなっていて、aを中心に前後夫
々Enの範囲で真の解が存在することになる。
次にその仮数値aのn+3ビツト目以降を0にした値a
′を求める(ステップS2)。この値a″は近似解aの
上位n+2ビットのみ有効にした値であり、第11図の
数直線上においてはラウンドビットRの重みを最小とす
る近似解aの直近目盛10の位置に対応される。次いで
値a′を2乗した値Aを求める(ステップS3)。次に
引き数の桁をニュートンラプソン法の与える桁に合せる
ため、引き数X0の指数Xeが偶数か奇数かを判断する
(ステップS4)。奇数のときは引き数X。
を2で割る(ステップS5)。即ち、右に1ビツトシフ
トさせる。これを新たな引き数Xとする。
偶数の場合には引き数XはXoと等しくされる(ステッ
プS6)。
そして引き数Xを値Aと比較しくステップ87)、X>
A、X<A、X=Aの場合に応じた補正処理を行う。こ
の比較により、真の解が値a′よりも大きいか、小さい
か、または値a′と等しいかがわかる。
X=Aの場合には、値a′ (図においてa”= al
 とみなして、同a′″″を処理する)の上位nビット
以降をそのまま丸め処理して厳密解Yを求める(ステッ
プS8)。この丸め処理は第4図に従って行われる。
X<Aのとき、即ち真の解が値a′よりも小さい場合に
は、真の値は第11図において目盛10と11の間にあ
る。このときは、値a′からラウンドビットRの重みの
2の−(n+1)乗を引くと共に、ステイッキビットS
の重みの2の−(n+1)乗を足す(ステップS9)。
即ちステイッキビットSをセットすることになる。そし
てステップS8で示される丸め処理を行う。
X>Aのとき、即ち真の解が値a′よりも大きい場合に
は、真の値は第11図において目盛12の値よりも小さ
くなる。このとき真の値は■;第11図の目盛10と1
3の間にある場合、■;目盛13の値に等しい場合。
■;目盛13と12の間にある場合 の3通りが考えられる。先ず、どの場合に属するかを判
定可能にするために、値a′にラウンドビットRの重み
の2の−(n+1)乗を加えた値a′と、その値aII
 を2乗した値A′を求める(ステップ510)。そし
てその値A′と引き数Xとの大小を判定する。その比較
結果が等しければ■のケースに該当し、Xが値A′より
大きければ真の値は目盛13の値よりも大きくケース■
に該当する。Xが値A′より小さければ真の値は目盛1
3の値よりも小さくケース■に該当する。夫々に必要な
処理は第10図においてステップ811〜S13に示さ
れ、所要の処理を経た後に丸め処理(ステップS8)が
施されることによって値Yが取得される。
次に、第1図の原理的な処理手順に示されるところの、
近似解の精度が不充分である場合における演算アルゴリ
ズムの一実施例を第13A図及び第13B図から第15
図を参照しながら説明する。
第13A図及び第13B図にはその演算アルゴリズムの
処理手順が示され、第14図にはその処理内容が数直線
上に模式的に示され、第15図には平方根演算に利用す
る中間値のフォーマット(仮数部のみ)が示される。
ここで、近似解の精度が不充分とは、近似計算で得られ
る解と真値との誤差が2の−(p+1)乗未満であるこ
と(pはnよりも小さな正の整数)を意味し、近似解の
精度がp+1番目のビットの重みよりも小さくなるよう
な演算手法によって近似解を得る場合である。
この場合には、先ず、第15図に示される入力値(変域
)Xoに対してニュートンラプソン法により近似解(仮
数値)aを求める(ステップTl)。数直線上における
この近似解aの位置は第14図に示され、そのフォーマ
ットは第15図に示される。この近似解aにおいて、a
のp+2ビット目未満(aのp+3ビット目以降)をO
にしだ値a′を求める(ステップT2)。真の値は前記
値a′からEn即ち2の−(p+1)乗以内にあり、目
盛20から21の区間に存在する。そしてこの区間を必
ず包含する二分法で探索可能な区間、即ち、第14図に
おいて目盛22と23の間の区間を意味する[a’ −
(2の−p乗)、a″+(2の=p乗)]の区間に、二
分法を適用可能にすればよい。
以下そのためにはどのようにして二分法に必要な全桁圧
しい中間値と余剰値とを算出するかについて説明する。
(1)a’を2乗してAを求める(ステップT3)。
(2)引き数の桁をニュートンラプソン法の与える桁に
合せるため、引き数の指数Xeが偶数か奇数かを判定し
くステップT4)、奇数のときはりき続いて引き数を2
で割り(ステップT5)、偶数のときにはそのままにし
くステップT6)、これを新たな引き数Xとして採用す
る。
(3)XからAを引いてこれをBOとする(ステップT
7)。
(4)近似値a′の2乗値Aを引き数と比較して(ステ
ップT8)、その値a′を調整することにより、p+1
桁までの全ての桁が正しい中間値a’”を求める。即ち
この処理を詳述すれば、XとAの大小を、前記BOの値
の正負を判定することによって判断する(ステップT8
)。その判断結果に応する処理内容は概ね3通りとされ
る。
■X>A (BOは正) このとき真の値は第14図の目盛24と23との間に存
在することになる。この場合には第13A図のステップ
T9.TIOの処理を行って、真の値が目盛25の値よ
りも大きいか小さいかを判定する。大きければステップ
Tllの処理を行い、a”をその目盛25の値として採
用する。小さければ目盛24の値が最適値になり、これ
をa” とする(ステップT12)。また1等しい場合
には真の値が求まったことになるので、これをステップ
T13の処理でラウンドビットRとして、第13B図の
丸め処理(ステップT26)に進む。
■X<A(BOは負) このとき真の値は第14図の目盛22と24との間に存
在することになる。この場合には、ステップT14で示
される処理を行い、この結果得られた値A′とXを比較
しくステップT15)、x≠A’のときには、その値a
” をステップT16の処理で値a”にする。ステップ
T15判定でX=A’ が成立する場合は最初の近似解
が所定の誤差範囲内に入っていれば無いはずであるが、
これが生した場合にはステップT17の処理が行われる
■X=A (BOは零) このとき真の値は第14図の目盛24の値である。即ち
、a′をラウンドビットRとして(ステップT18)、
これを丸め処理した値を結果として返す。
(5)前記(4)の処理でp+1桁まで正しい値が算出
されているので、これを基に二分法を開始し、p+2桁
目からn+1桁目の計n−p回インテレ−ジョンを行う
。即ち、第13B図に示されるスチップT19では演算
数のループカウンタを初期化して、i=p+2にする。
ステップT20でi桁目に1を立てる。逆関数を使用し
てAを計算し、これをXと比較する(ステップT21)
。X>Aであればi桁目の1は正解なので、ステップT
22に示されるようにループカウンタをインクリメント
して次へ進む。X≦Aであれば、i桁目は零が正解なの
で、ステップT23に示されるようにRを元に戻して、
ループカウンタを1インクリメントする。そして、ステ
ップT24の判定を行って、そのような一連の処理をn
−p回繰り返す。
二分法のループ中における乗算(ステップT20)は実
際にはシフト演算と加算で代用され、また、ステップT
23における減算はi桁目の1をリセットするだけで実
現される。ループ中の演算は専用ハードウェアを持たせ
たり、パイプライン処理を採用することにより、極めて
少ない時間(1マシンサイクル)で処理することが可能
である。斯る開平演算的な簡易演算法を数学的な記法で
表現することは困難なため(但しその内容は公知)第1
3B図にはその原理的な記述しか含まれていない。
(6)二分法でn+1桁までの値が算出されると、ガー
ドビットG、及びラウンドビットRまでの値が決定され
る。その後は次のようにしてステイッキビットSを決定
する。即ち、ステップT25に示されるように、X−A
が零であればステイッキビットSをOにし、それが零で
なけ九ばステイッキビットSを1にする。
(7)上記のようにして得られた答えを第4図に示され
る丸めアルゴリズムに従って丸め処理を行い(ステップ
T26)、第15図の値域Yのフォーマットを得る。
第6図には浮動小数点プロセッサを使用したシステム例
が示される。このシステムはマイクロプロセッサ30、
浮動小数点プロセッサ31、メモリ32、割込み処理回
路33、及びクロック発生器34を含み、特に制限され
ないが、それらは個別的な半導体集積回路によって構成
されている。
前記浮動小数点プロセッサ31はマイクロプロセッサ3
0のスレーブモジュールとされ、コプロセッサとしてマ
イクロプロセッサ31の命令の実行の一端を担う。
第7図には前記浮動小数点プロセッサ31の内部構成例
が示される。浮動小数点プロセッサ31はマイクロシー
ケンサ部40、演算部41、そしてバス制御部42に大
別される。
バス制御部42は、マイクロプロセッサ30を含む外界
とのインタフェースを行なう部分でああり、フォーマッ
ト変換部45、パイプライン管理部46、プロトコル制
御部47を含む。
マイクロ・シーケンサ部40は、浮動小数点演算のため
の各種演算アルゴリズムをマイクロプログラムの形態で
格納するマイクロROM50と、このマイクロROM5
0から所定の手順に従ってマイクロ命令系列を読出して
いくためのマイクロアドレス制御部51、そしてマイク
ロROM50から読出されるマイクロ命令をデコードし
て演算や入出力動作を制御するための各種制御信号を出
力するマイクロ命令デコーダ52を備える。前記平方根
の厳密解を求めるための演算アルゴリズはそのマイクロ
ROM50に格納されている所定のマイクロ命令系列に
反映されている。
マイクロROM50に格納されるマイクロ命令フォーマ
ットは1例えば第8図に示されるように。
マイクロシーケンサ制御フィールドMSC、データバス
制御フィールドDBC1演算制御フィールドAUG、乗
算バス/演算制御フィールドMULCから成る。マイク
ロシーケンサ制御フィールドMSCは、分岐などの基本
的なシーケンス制御や、オーバーフロー/アンデフロー
など演算で発生する例外フラグのセッートなどの制御情
報が含まれる。
データバス制御フィールドDBCは、符号制御、データ
タイプ制御、指数制御、仮数制御などを行うときに利用
される各種レジスタの制御フィールドである。演算制御
フィールドAtJCは、指数・仮数算術論理演算、指数
・仮数のフラグ制御、バレルシフト演算、並びに丸め演
算たのめの制御情報が含まれる。前記乗算バス/演算制
御フィールドMULCには、乗数ROM、乗算機、指数
演算部、仮数演算部のデータ入出力制御情報などを保有
する。
演算部41はマイクロシーケンサ部40の指示に従い実
際に演算を行なう部分である。演算部41はデータタイ
プ演算部55.指数演算部56゜仮数演算部57.定数
ROM58.乗算器59を含む。データタイプ演算部5
5は浮動小数点プロセッサ31のデータフォーマットで
表現可能な無限大、非数、零などの特殊なデータの符号
の正負を認識してこれらの値同志の論理演算を行なう9
指数演算部56はマイクロROM50から読出されるマ
イクロ命令の指示にしたがって浮動小数点データの指数
部の演算処理を行なう。仮数演算部57はマイクロRO
Mから読出されるマイクロ命令の指示に従って浮動小数
点データの仮数部の演算処理を行なう。定数ROM58
は演算操作に必要な定数を格納するROMである。乗算
器59は浮動小数点の仮数部分の乗算などを行なう並列
乗算器として構成されている。
第9図には演算部41の更に詳細な一例が示される。前
記定数ROM58と乗算器59は、上位。
下位夫々33ビツトのバス61.62に共通接続され、
同バス61.62に、入力ポートロ3及び出力ポートロ
4を介して指数演算部56が結合されると共に、入力ポ
ートロ5及び出力ポートロ6を介して仮数演算部57が
結合される。指数演算部56はライトバス67と2本の
リードバス68゜69によって前記フォーマット変換部
45に接続され、また前記仮数演算部57はライトバス
70と2本のリードバス71.72によってフォーマッ
ト変換部45に接続される9そして、指数演算部56は
指数レジスタ75、加算器76、及びシフト量デコーダ
77などを備え、また、仮数演算部57は仮数レジスタ
80、正規化エンコーダ81、加算器82、バレルシフ
タ83、及び丸め回路84などを備える。
上記実施例によれば以下の作用効果がある。
(1)一定の精度を持つ近似解を算出し、近似解と最大
誤差より厳密解の存在する範囲を限定し、近似解と最大
誤差より割り出せる厳密解の存在範囲にある数値でどれ
が厳密解であるかを逆関数に各々の数値を代入してこれ
を引き数と比較して、正しいビット列を回復する。近似
解の精度が不充分である場合には、換言すれば、最大誤
差が比較的大きい場合には、厳密解が存在しうる範囲に
多くの数値表現が存在するため、結局これの中から厳密
解を割り出す為に二分法を使用する。近似解の演算精度
が充分であるならそのような二分法を再開しなくてもよ
い、そして、その結果から、厳密解を割り出すためには
、求める厳密解の桁数より二相多く存在範囲を狭めてG
、Rビットの値を割り出す。さらにSビットを割り出す
。最後に、G、R,Sビットと丸めモードより厳密解を
求める。このように近似解を流用して平方根の厳密解を
求めるから、無限長の精度を持つ中間値を予め定められ
たnビットの仮数を持つ浮動小数点フォーマットに丸め
て得られる厳密解を平方根演算で取得する場合に、その
演算ステップ数をn+2以下に低減することができる。
(2)これにより、平方根の厳密解を能率的に求めるこ
とができるようになる。
以上本発明者によってなされた発明を実施例に基づいて
具体的に説明したが、本発明はそれに限定されるもので
はなく、その要旨を逸脱ルない範囲において種々変更可
能であることは言うまでもない。例えば近似解の演算手
法はニュートンラプソン法に限定されずその他の手法を
採用してもよい。また、近似解の演算精度に応じた2通
りの処理はその演算精度に応じて決定されるものである
から、本発明に係る演算アルゴリズムを実行可能な浮動
小数点プロセッサなどはその何れか一方の手法だけを固
定的にサボー1〜する構成であってもよい。なお、その
動作プログラムによって何れも選択可能にすることは妨
げられない。
以上の説明では主として本発明者によってなされた発明
をその背景となったコプロセッサとしての浮動小数点プ
ロセッサを含むシステムに並びにそれによって実行され
る演算アルゴリズムに適用した場合について説明したが
1本発明はそれに限定されるものではなく、平方根の厳
密解を所定の浮動小数点フォーマットに従って演算し得
る各種データ処理システムに広く適用可能である。
〔発明の効果〕
本願において開示された発明のうち代表的な者によって
得られる効果を簡単に説明すれば下記の通りである。
すなわち、平方根の近似解、をニュートン・ラプソン法
などで算出して、このビット列を加算乗算器を使用して
補正し、一方において前記近似解の精度が充分であれば
その補正処理で全てのビットを正しく補正し、他方にお
いて前記厳密解の精度が不充分な場合には、上位のビッ
ト列のみを補正してそこから二分法を再開し、その何れ
の結果に対しても最後に丸め処理を行うという演算手順
を採るから、平方根の厳密解を所定の浮動小数点フォー
マットで得る演算能率を従来に比べて高くすることがで
きるという効果がある。
このような演算アルゴリズムを採用したデータ処理シス
テムさらには半導体集積回路を利用することにより、平
方根の厳密解演算に関してシステムの動作効率を向上さ
せることができる。
【図面の簡単な説明】
第1図は本発明に係る演算アルゴリズムの原理的な一例
を示すフローチャート、 第2図は浮動小数点数の一例フオーマット図、第3図は
、有限長の演算資源で厳密解を得る為の一例データフォ
ーマット図、 第4図は丸めのアルゴリズムを示す説明図、第5図は二
分法の原理説明図、 第6図は浮動小数点プロセッサを使用した一例システム
ブロック図、 第7図は浮動小数点プロセッサの一例ブロック図、 第8図は浮動小数点プロセッサで利用されるマイクロ命
令の一例アオーマット図、 第9図は浮動小数点プロセッサに含まれる演算部の詳細
な一例ブロック図、 第10図は平方根の近似解の精度が充分な場合にこれを
利用して厳密解を求めるための処理手順の一例を示すフ
ローチャート、 第11図は第10図の処理で利用される引き数や中間値
などを数直線上に示す説明図、第12図は第10の処理
で平方根を求める際の中間値のデータフォーマット図、 第13A図及び第13B図は平方根の近似解の精度が不
完十分なに場合にこれを利用して厳密解を求めるための
処理手順の一例を示すフローチャート。 第14図は第13A図及び第13B図の処理で利用され
る引き数や中間値などを数直線上に丞す説明図、 第15図は第13A図及び第13Bの処理で平方根を求
める際の中間値のデータフォーマット図である。 31・・・浮動小数点プロセッサ、41・・・演算部、
56・・・指数演算部、57・・・仮数演算部、58・
・・定数ROM、59・・・乗算器。 第  1  図 第 2 図 第 図 第 図 0 第 図 第 図 竺 134図

Claims (1)

  1. 【特許請求の範囲】 1、ある関数f(x)とその逆関数f^−^1(y)が
    あり、yはxの平方根であるという関係を持つとき、充
    分な精度の近似解を利用して、関数f(x)のnビット
    長の厳密解yを求める方法であって、全ての変域におい
    て厳密解の解像度より充分小さいEn以下の誤差をf^
    −(y)との間に持つ近似関数g(x)の結果よりn+
    2ビットの長さの近似解y’=g(x)を得、f^−^
    1(y’)とxの比較結果に応じてy’のビット列を補
    正してy”を得、さらにf^−^1(y”)とxとの比
    較結果に従いy”のビット列を補正してy’”を得て、
    y’”を丸めることにより厳密解yを得ることを特徴と
    するハイブリッド式関数演算法。 2、ある関数f(x)とその逆関数f^−^1(z)が
    あり、yはxの平方根であるという関係を持つとき、不
    充分な精度の近似解を利用して、f(x)のnビット長
    の厳密解yを求める方法であって、f(x)との間で厳
    密解のフォーマットのビットmより充分小さいEn以下
    の誤差を持つ近似関数g(x)を使用して、一定の精度
    を持つ近似解y’=g(x)を得、f^−^1(y’)
    とxの比較結果に応じてy’のビット列をmビット目ま
    で補正してy”を得ると共にf^−^1(y”)とxと
    の差分を得、これらの数値をもとに二分法を開始して残
    りのビット列を割り出して厳密解を得ることを特徴とす
    るハイブリッド式関数演算法。 3、無限長の精度を持つ中間値を予め定められたnビッ
    トの仮数を持つ浮動小数点フォーマットに丸めて得られ
    る厳密解を平方根演算について求める方法であって、1
    演算ステップに被乗数の複数桁以上を並列処理する乗算
    器を用いて、n+2以下の逐次的に行われる演算ステッ
    プでその厳密解を演算することを特徴とするハイブリッ
    ド式関数演算法。 4、前記演算ステップは、所定の精度で近似解を取得す
    るステップと、真の解に対して所定の誤差範囲にある近
    似解と最大誤差より割りだされる厳密解の存在範囲にあ
    る数値の内どれが厳密解であるかを逆関数に所定の数値
    を代入してこれを引き数と比較しながら決定する近似解
    補正ステップと、補正された値に丸め処理を施すステッ
    プとを含むことを特徴とする請求項3記載のハイブリッ
    ド式関数演算法。 5、前記演算ステップは、所定の精度で近似解を取得す
    るステップと、真の解に対して所定の誤差範囲にある近
    似解と最大誤差より割りだされる厳密解の存在範囲が相
    対的に広い場合に、近似解の結果を流用して途中から実
    行される二分法演算ステップと、二分法演算ステップで
    得られた値に丸め処理を施すステップとを含むことを特
    徴とする請求項3記載のハイブリッド式関数演算法。 6、請求項1乃至5の何れか1項に記載の演算アアルゴ
    リズムを実行可能な演算処理システム。 7、単一の半導体基板にマイクロコンピュータとして形
    成されて成る請求項6記載の演算処理システム。
JP5914490A 1990-03-09 1990-03-09 ハイブリッド式関数演算法及び演算処理システム Pending JPH03260723A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5914490A JPH03260723A (ja) 1990-03-09 1990-03-09 ハイブリッド式関数演算法及び演算処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5914490A JPH03260723A (ja) 1990-03-09 1990-03-09 ハイブリッド式関数演算法及び演算処理システム

Publications (1)

Publication Number Publication Date
JPH03260723A true JPH03260723A (ja) 1991-11-20

Family

ID=13104846

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5914490A Pending JPH03260723A (ja) 1990-03-09 1990-03-09 ハイブリッド式関数演算法及び演算処理システム

Country Status (1)

Country Link
JP (1) JPH03260723A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007264563A (ja) * 2006-03-30 2007-10-11 Sanyo Electric Co Ltd 自動調整方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007264563A (ja) * 2006-03-30 2007-10-11 Sanyo Electric Co Ltd 自動調整方法

Similar Documents

Publication Publication Date Title
US5631858A (en) System for obtaining strict solution in accordance with accuracy of approximate solutions
Ziv Fast evaluation of elementary mathematical functions with correctly rounded last bit
Zhang et al. Efficient multiple-precision floating-point fused multiply-add with mixed-precision support
US7720900B2 (en) Fused multiply add split for multiple precision arithmetic
Pineiro et al. Algorithm and architecture for logarithm, exponential, and powering computation
US20130246496A1 (en) Floating-point vector normalisation
JPH0635675A (ja) データプロセッサにおいて除算を行うための方法および装置
WO1993020502A1 (en) Exponential/logarithmic computational apparatus and method
US5426600A (en) Double precision division circuit and method for digital signal processor
TW201346715A (zh) 十進位浮點資料邏輯提取的方法與設備
US5341320A (en) Method for rapidly processing floating-point operations which involve exceptions
US7406589B2 (en) Processor having efficient function estimate instructions
Schulte et al. Hardware design and arithmetic algorithms for a variable-precision, interval arithmetic coprocessor
Schulte et al. A variable-precision interval arithmetic processor
US9335996B2 (en) Recycling error bits in floating point units
US6598065B1 (en) Method for achieving correctly rounded quotients in algorithms based on fused multiply-accumulate without requiring the intermediate calculation of a correctly rounded reciprocal
Tsen et al. A combined decimal and binary floating-point multiplier
US6175907B1 (en) Apparatus and method for fast square root calculation within a microprocessor
Pineiro et al. High-radix logarithm with selection by rounding
EP0840207A1 (en) A microprocessor and method of operation thereof
US6820106B1 (en) Method and apparatus for improving the performance of a floating point multiplier accumulator
JPH03260723A (ja) ハイブリッド式関数演算法及び演算処理システム
Iordache et al. An Overview of Floating-point Support and Math Library on the Intel/spl reg/XScale/spl trade/architecture
Knöfel A hardware kernel for scientific/engineering computations
Panyukov et al. Parallel algorithms of integer arithmetic in radix notations for heterogeneous computation systems with massive parallelism