JPH02156375A - ハイブリッド式関数演算法 - Google Patents

ハイブリッド式関数演算法

Info

Publication number
JPH02156375A
JPH02156375A JP63309968A JP30996888A JPH02156375A JP H02156375 A JPH02156375 A JP H02156375A JP 63309968 A JP63309968 A JP 63309968A JP 30996888 A JP30996888 A JP 30996888A JP H02156375 A JPH02156375 A JP H02156375A
Authority
JP
Japan
Prior art keywords
solution
algorithm
method characterized
bit
calculation
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
JP63309968A
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 JP63309968A priority Critical patent/JPH02156375A/ja
Priority to US07/536,565 priority patent/US5293558A/en
Priority to EP89912134A priority patent/EP0394499B1/en
Priority to DE68928376T priority patent/DE68928376T2/de
Priority to PCT/JP1989/001134 priority patent/WO1990005335A1/ja
Publication of JPH02156375A publication Critical patent/JPH02156375A/ja
Priority to KR1019900701428A priority patent/KR100198472B1/ko
Priority to US08/089,103 priority patent/US5631858A/en
Priority to US08/797,653 priority patent/US5956263A/en
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はデータ処理装置に関し、例えば浮動小数点演算
を行うマイクロブ四セッサに利用して有効な技術に関す
るものである。また、本発明は浮動小数点演算ライブラ
リや浮動小数点演算機能をもつ計算機に適用される技術
にかかわり、これらに適用することができる。
〔従来の技術〕
1) 浮動小数点演算の歴史 科学技術計算では組数のみでなく実数を多く使用するた
め、これを計算機上で扱うために浮動少数点をデータと
して扱う様になった。第2図に浮動小数点データの計算
機上での表現方法を示す。
浮動小数点演算プログラムを通常のプログラマが誓くこ
とは専門の知識が必要であり難しい為に、専門のプログ
ラマがライブラリを作成してこれを通常のプログラマが
使用するようになった。これらのライブラリは加減乗除
算だけでなく、平方根算や初等関数の演算機能を持つ様
になった。
さらに最近では、浮動小数点データを用いて関数演算を
行う機能を命令として持つ計算機も表れてきた。
2) 除算、平方根算の手法 現在使われている平方根算や除算の実現方法は大別して
2つ有る。一つは中間値の定理と区間縮小法を使りて一
桁ずつ解を求める二分法であり、またもう一つは二島−
トン・ランノン法などに代表される近似法である。
3) 標準化のための厳密解の要求(IEEE規格) メインフレームやはニコンピエータにおいては、浮動小
数点のデータ・フォーマットや演算精度が各社毎に異な
っていた為にプログラムやデータの互換性が無く、ソフ
トウェアの移愼性が悪かった。
この反省を踏まえて共通の国際規格(I BEE752
規格)に合わせて業界の標準化が進んだ。
このIEEE752現格ではデータ・フォーマット、?
)i(昇結果2分岐条件2例外処理の方法その他を規足
しており極めて高い移植性を保証できる。
埃在迄のところマイクロコンピュータの業界の全てがI
EEIJI格準拠に向かりており、この規格の適用はさ
らに拡がってい(ものと思われる。
I EEE752規格では加減乗除算と平方根算からな
る基本演算処理についてi&密解を要求している。ポ密
解とは無限の精度と表現範囲で表される演算結果を丸め
たものと同一の答えである。
4) 厳密解を有限の演算器で得る方法除算と平方根算
でに!を密解を得る為に実際に無限精度の解を求めるこ
とは不可能である。そこで二分法を使用して必要な桁ま
でを正しく求めて、その中間結果を使用して無限相反の
解と同一となる解を得る。
有限長のデータ・フォーマットの浮動小数点演算器で計
算するために、3つのフラッグを使用する方法がIEE
Ei員会より提唱されている。第3図に散密解を有限の
演′i#資源で得る為に使用するデータ表視形式を示す
。第3図において、1はオーバーフロービット、2はM
SBビット、3はLSBビット、4はG(ガード)ビッ
ト、5はR(ラウンド)ビット、6はS(ステイッキ)
ビットを示す、仮数部分はn+3ビツトからなり、LS
Bより重みの小さい3ビツトはG、 R,Sフラッグと
呼ばれる。Gビット、nビットは各々n+1ビット、n
+2ビット目を示し、Sビットはn+3ビツト目から無
限に小さなビットのORをした結果を格納する。
上記のn+3のビット列を正しく得て、これに次の丸め
オペレージ璽ンを行5事でnビットの敵密解を得る事が
できる。IEEE754規格は丸めモードを規定してい
る。第4図に各丸めモード別にG、  R,Sビットか
ら丸め結果を得る為のテ−プルを示す。なお、第4図に
おいて1−”は、変化なしを示す。
5) 二分法 二分法の原理を第5図により示す、二分法は中間値の定
理と区間縮小法という数学上の定理の応用であり、後で
述べる「参考文献」の欄において2で示されている文献
のp、56〜p、76に触れられている。第5図に示す
様に閉区間I(1=(aeb〕を三等分してどちらか一
方を11=(:alt bt  )とし、次にI、をま
た三等分してどちらか一方をI、とし、以下これを繰り
返して縮小区間列工◎フエ、フ・・・・・・を作ってい
くことが二分法である。
区間(a、b)でf(x)が連続で、f (a)≦y0
゜f(b)>yeならば、必ずf(0=yoであるξが
区間a≦ξくb内にある。そのξは、毎回区間工j。
=〔aj、bj〕(a6;a、b0=b)の中点cjを
とり f(cj)≦y0ならば a j+1=cj 、  b j+t=bjf(cj)
>yoならば ” j+””aj s  b jet =c 」として
つぎに 工j=(JL j+l、 bias ”]を求めるとい
う算法を反復した時、縮小区間列工。フエ、フ・・・・
・・の共通分(極限)として得られる。
5) 近似解の性質 除算や平方根の近似解を求める方法には様々のものが有
り、二ニートン・う7ソン法、シオアルデアイシ(CO
RDIC)法、ティラー展開等あるが、収束の速さから
ニュートン・う7ソン法が頻素に使われている。
f(ロ)が微分可能な場合に、点 x=xnにおける接肪 y=f(xn) +(x−Xfi ) f’ (xn) ”・−−−””
  (1)によりてy = f (x)を近似して(1
)00点X n+1 =X n −f (xn)/f’ (xn)mma**  (2)
を次に近似とする。適当な初期値から初めて式(2)で
鳩次xnを作る。これを何回か繰り返して解を得る。
6) 参考文献 (1)  アイイイイスタンダード 754−1985
フオー パイナリーフローティングーポイントアリスマ
ティックス、アイイイイ、1985(I EEE  5
tandard 754−1985  forBina
ry−Floating−Point Arithme
ticspIEEE、1985) (2)−松、「初等関数の数値計算」、教育出版。
1984゜ (3)コーネエン、ジェ・ティ”アン インプリメンテ
ーシ曹ン ガイド ツク ア プロポーズド スタンダ
ード フォー 70−テイングーボイ/ト アリスマテ
ィック”、アイイイイコンビエータ、ジャニウアリイ 
1980゜(Coonen* J、 T、*” An 
ImplementationGuide to a 
Proposed 5tandard for Fl。
ating−Point Arithmetiど−IE
EEComputer+ Jaunary  1980
 、 )〔発明が解決しようとする課題〕 二分法は厳密解を得られるが、求めたい桁数の数取上の
条件判定を必要とするため演算速度が桁歓に比例し、高
速に解を求める事が出来ない。栄算吟の処理は専用の演
算ハードの発達により演算処理の時間は飛謙的に向上し
たが、条件判定は1マシン・サイクルに1回であり判定
のコストは依然として大きい。
一方、除算や平方根を演算する際、二ニートン・ラプソ
ン法などの近似法は高速に解が得られるが、求めた桁の
ビット列が正しくない場合が有り、喚密解が得られない
平方根や除算の厳密解を能率良く演算するためには二分
法のように反復が多くなく、しかし全てのビットが正し
く求まる演算アルゴリズムが必要である。本発明の目的
はその様な演算アルゴリズムを提供することに有る。
〔課題を解決するための手段〕
効率の良い除算、平方根アルゴリズム・を提供する為に
近似解をニエートン・ラプソン法などで算出して、この
ビット列を加減乗算を使用して補正する。近似解の精度
が良けれは、全てのビットを正しく補正できる。近似解
の′N度が悪けれは、上位のビット列のみを補正してそ
こから二分法を再開する。
以下に上に述ぺた手続きをステップを追りて詳細に説明
する。
1) 一定の精度を持つ近似解の算出 近似解の算出方法には株々有るが、算出された近似解を
真の値から一定の誤差範囲に収める事は可能である。さ
らに、仮数のあるビットの重みに対して一定の大きさに
する事が可能である。このため、近似解と最大誤差より
厳密解の存在する範囲を限定することができる。
2) 正しいビット列の同機 近似解と最大誤差より割り出せる厳贅解の存在範囲に有
る数値でどれが厳密解であるかを逆FIA数に各々の数
値を代入しこれを引き数と比較して割り田す。
3) 二分法を途中から開始 最大誤差が比較的大きい場合には、厳密解が存在し5る
範囲に多くの数値表現が存在するため、結局これの中か
ら厳@解を割り出す為に二分法を使用することも出来る
4)G、R,Sビットの生成 厳密解を割り出すためには、求める厳誓解の桁数より二
桁多く存在範囲を狭めてG、  Rビットの値を割り出
す、さらにG、 Rビットも含む求められた値yを逆関
数に代入してf−”(y’)−xを求める事によりSビ
ットを割り出す。
5) 厳密解の生成 G、R,Sビットと丸めモードより厳密解を求める。
〔作 用〕
1) 演算の過程での判定処理の減少 二分法では一回の演算から1ビット分の情報しか引き出
せないため、例えばIEEE752規格の倍精度フォー
マットで平方根や除算の厳+M解を得る為には、55回
の判定処理が心安である。
一方、本発明のハイブリッド法では同様の結果を得るの
に必要な判定処理は6回から7回である。
この判定処理数の差はそのまま演算マシン・サイクルの
低減の漕在性を意味する。
2) 乗算処理の活用 専用乗算器を設けると引き数の桁数にかかわらず、1つ
のマシン・サイクルで乗算を行う事ができる。従来は乗
算は多くのマシン・サイクル数を消費する処理であった
が、LSI技術の発展した現在では加減算と同碌に乗算
を行うことができる。
このため本発明のハイブリッド方式が乗算を使用するこ
とは短所にはならない。
〔実施例〕
以下に平方板葺の場合についての実施例を示す。
第1因には、アルゴリズムの概略フローが示されている
。同図において、f(x)は、求めたい関数。
g(x)はf (x)の近似関数、但しIg(x)−f
(x)1≦’0tf−’(x)は求めたい関数の逆関数
を示している。また、同図において1は近似解の算出、
2は逆関数の使用、3は逆関数値と引数との比較、4は
ビット列修正、5は逆関数の使用、6は連関数値と引数
との比較、7及び8のそれぞれはSビットの決定、9は
丸め操作を表わしている。
1) 第6図に浮動小数点プロセッサを使用したシステ
ム例をポス。システムはマイクロプロセッサ(以下単に
MPUと記す)と浮動小数点プロセッサとメモリからな
る。浮動小数点プロセッサはマイクロプロセッサのスレ
ーブであり、コプロセッサ制′@線を介したMPUの指
示によって、MPUの命令の実行の一端を担う。
第7図に浮動小数点プロセッサの内部構成を示す、浮動
小数点プロセッサは大きく3つの部分からなる。バス制
ahはMPUを含む外界とのインタフェースを行う部分
である。マイクロ・シーケンサ部は浮動小数点演算のマ
イクロプログラムの形態でアルゴリズムを格納しこの内
容を実行する部分である。演算部はマイクロ・シーケン
サ部の指示に従い実際に演算を行う部分である。演算部
はデータタイプ演算部、指数演算部、仮数演算部。
定数ROM、乗算器よりなる。データ・タイプ演鉢部は
浮動小数点プロセッサのデータフォーマットで表現可能
な無限大、非数、零などの特殊なデータの符号の正負を
認識してこれらの値同志の論理演算を行う、指数演算部
はマイクロROMの指示にしたがって浮動小数点データ
の指数部の演算処理を行う、仮数演算部はマイクロRO
Mの指示に従って浮動小数点データの仮数部の演算処理
を行う。定数ROMは演算操作に必要な定数を格納する
ROMである0乗算器は浮動少畝点数の仮数部分の乗算
を行う。
2) 第8図に平方根を求める際に使用する中間値のフ
ォーマット(仮数部分のみ)、紀9図に近似解の精度が
厳密解の解像度より充分高い場合の平方根の演算方法、
第10図及び第11図に近似解の精度が厳密解の解像度
より低い場合の平方根の演算方法を示す、第9図は、ニ
エートン・ラプソンの右”度より短いデータを求める場
合を示しており、同図において、nは求める仮数のビッ
ト数を示している。また第10図及び第11図は、ニュ
ートン・ラプソンの精度より長いデータを求める場合を
示しており、同図において、nはニュートン・2プソン
の精度を±2−βとしたときのβイ直かそれ以下の値を
示している。
3) 近似解の精度が敞舒解の解像度より充分測い場合
には平方根は次の演算方法により求められる。
平方根演算の引き数をmビットとし、平方根の値域をn
ビットとする。引き数をもとにニエートン・ラプンン法
を行いmビットの産米を得る(図8 a )、  (m
)n )。
上記の結果をn+2ビット長に丸めてn+3ビツト以降
には0を詰め、近似解a′を得る。aoを二乗してAを
得る。ニエートン・ラプンン法の内部処理に合わせた悄
合わせ(4)を行った後二乗値Aと引き叡Xを比較する
x = Aの場合は、aoの値をnビット長に丸めYを
求める。
x ) Aの場合にはaoの値をaoと隣接して且つa
oより大きい値にし、これを二乗して新しいAを得る。
その後引き数XとAを再び比較する。x=Aの場合には
、lの値をnビット長に丸めYを求める。
x(Aの場合にはaoの値をaoと隣接しておりかつa
oより小さい値にし、これをnビット長に丸める。
4) 近似解の精度が厳密解の解像度より低い場合には
平方根は次の演算方法により求められる。
これは3)の場合とほぼ同じであるが比較を行った後に
二分法を回復するところに相違が有る。
詳細はフローチャー上図(第10図、8g11図)を参
照されたい。
〔発明の効果〕 1) 判定処理の回数の減少 現在のアーキテクチャ技術では、演算中の条件判定は1
マシン・サイクルに1回であり判定のコストは依然とし
て大きい、このためアルゴリズムにおいて判定処理が少
ない事がいまや重要な要件となりている。また、演算時
間のコストが大きく、アルゴリズム中に乗算をなるべく
入れない様に努力することが高速化の為の重要な要件で
あった。
2) 演算処理時間の短縮 しかしながら、半纏体技術の発展によりLSIチップ上
に専用の乗算器を搭載する事が可能となった。これによ
り演算時間のコストが低くなり、*nを多く含むアルゴ
リズムも局迷に実行できる休になった。
3)  #珠な演算回路の節約 従来のチップでは平方根を二分法で行う為だけの回路を
演算部に持っていた、しかしこの回路は吻倉を必景とす
る割には使う頻度が平方根演算のみとなり効率が極めて
思い、この為演算リソースを有効に使う意味からも不発
明のアルゴリズムはメリットを持つ。
【図面の簡単な説明】
第1図は、アルゴリズムの恢略フ四−を示す図、第2図
は、浮動小数点数の表現方法を示す図、第3図は、有限
長の演算資源で厳密層を得る為のデータフォーマットを
示す図、 第4図は、丸めのアルゴリズムを示す図、第5図は、三
方法の原理を示す図、 第6図、浮動小数点プロセッサを使用したシステム例を
示すブロック図、 第7図は、浮動小数点プロセッサの内部構成を示す図、 第8図は、平方根を求める際の中間値を示す図、第9図
は、近似法の結果が十分な精度を持っている場合の詳細
フローチャートを示す図、第10図及び第11図は、近
似法の結果か十分な精度を持りていない場合の詳細フロ
ーチャートを示す囚である。

Claims (1)

  1. 【特許請求の範囲】 1、近似解の精度が十分の場合であって、ある関数f(
    x)とその逆関数f^−^1(y)があり、f(x)の
    nビット長の厳密解yを求める方法であって、全ての変
    域において厳密解の解像度より充分小さいε_0以下の
    誤差をf^−^1(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)があり、f(x)の
    nビット長の厳密解yを求める方法であって、f(x)
    との間で厳密解のフォーマットのビットmより充分小さ
    いε_0以下の誤差を持つ近似関数g(x)を使用して
    、一定の精度を持つ近似解y’=g(x)を得、f^−
    ^1(y’)とxの比較結果に応じてy’のビット列を
    mビット目まで補正してy”を得ると共にf^−^1(
    y”)とxとの差分を得、これらの数値をもとに二分法
    を開始して残りのビット列を割り出して厳密解を得るこ
    とを特徴とするハイブリッド式関数演算法。 3、除算の演算アルゴリズムに対して、特許請求の範囲
    第1項記載のアルゴリズムを適用することを特徴とする
    ハイブリッド式関数演算法。 4、除算の演算アルゴリズムに対して、特許請求の範囲
    第2項記載のアルゴリズムを適用することを特徴とする
    ハイブリッド式関数演算法。 5、平方根の演算アルゴリズムに対して、特許請求の範
    囲第1項記載のアルゴリズムを適用することを特徴とす
    るハイブリッド式関数演算法。 6、平方根の演算アルゴリズムに対して、特許請求の範
    囲第2項記載のアルゴリズムを適用することを特徴とす
    るハイブリッド式関数演算法。 7、専用乗算器を使用して、特許請求の範囲第1項又は
    第2項記載のアルゴリズムを利用して除算を行うことを
    特徴とするハイブリッド式関数演算法。 8、専用乗算器を使用して、特許請求の範囲第1項又は
    第2項記載のアルゴリズムを利用して平方根算を行うこ
    とを特徴とするハイブリッド式関数演算法。
JP63309968A 1988-11-04 1988-12-09 ハイブリッド式関数演算法 Pending JPH02156375A (ja)

Priority Applications (8)

Application Number Priority Date Filing Date Title
JP63309968A JPH02156375A (ja) 1988-12-09 1988-12-09 ハイブリッド式関数演算法
US07/536,565 US5293558A (en) 1988-11-04 1989-11-02 Multiplication, division and square root extraction apparatus
EP89912134A EP0394499B1 (en) 1988-11-04 1989-11-02 Apparatus for multiplication, division and extraction of square root
DE68928376T DE68928376T2 (de) 1988-11-04 1989-11-02 Vorrichtung zum multiplizieren, teilen und ziehen der quadratwurzel
PCT/JP1989/001134 WO1990005335A1 (en) 1988-11-04 1989-11-02 Apparatus for multiplication, division and extraction of square root
KR1019900701428A KR100198472B1 (en) 1988-11-04 1990-07-04 Apparatus for multiplication, division and extraction of square root
US08/089,103 US5631858A (en) 1988-11-04 1993-08-12 System for obtaining strict solution in accordance with accuracy of approximate solutions
US08/797,653 US5956263A (en) 1988-11-04 1997-01-31 Multiplication, division and square root extraction apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63309968A JPH02156375A (ja) 1988-12-09 1988-12-09 ハイブリッド式関数演算法

Publications (1)

Publication Number Publication Date
JPH02156375A true JPH02156375A (ja) 1990-06-15

Family

ID=17999534

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63309968A Pending JPH02156375A (ja) 1988-11-04 1988-12-09 ハイブリッド式関数演算法

Country Status (1)

Country Link
JP (1) JPH02156375A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5604652A (en) * 1991-09-10 1997-02-18 Matsushita Electric Industrial Co., Ltd. Tape speed control apparatus using rotation speed ratio of first and second tape reels

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5604652A (en) * 1991-09-10 1997-02-18 Matsushita Electric Industrial Co., Ltd. Tape speed control apparatus using rotation speed ratio of first and second tape reels

Similar Documents

Publication Publication Date Title
EP0377837B1 (en) Floating point unit having simultaneous multiply and add
EP0394499B1 (en) Apparatus for multiplication, division and extraction of square root
US6138135A (en) Propagating NaNs during high precision calculations using lesser precision hardware
JPH0776911B2 (ja) 浮動小数点演算装置
JP2676410B2 (ja) ステイツキ‐ビツト値を予測する回路およびその方法
US5341320A (en) Method for rapidly processing floating-point operations which involve exceptions
Zhu et al. Low latency and low error floating-point sine/cosine function based TCORDIC algorithm
US7725522B2 (en) High-speed integer multiplier unit handling signed and unsigned operands and occupying a small area
Schulte et al. Hardware design and arithmetic algorithms for a variable-precision, interval arithmetic coprocessor
US10983755B2 (en) Transcendental calculation unit apparatus and method
US4590584A (en) Method and system for processing exponents in floating-point multiplication
JPH0250492B2 (ja)
JPH09146924A (ja) 演算方法、演算装置及びマイクロプロセッサ
JPH02156375A (ja) ハイブリッド式関数演算法
Hashemian Square rooting algorithms for integer and floating-point numbers
Brand et al. Anytime floating-point addition and multiplication-concepts and implementations
US7051062B2 (en) Apparatus and method for adding multiple-bit binary-strings
Bärthel et al. Hardware implementation of basic arithmetics and elementary functions for unum computing
Schulte et al. A software interface and hardware design for variable-precision interval arithmetic
US6519620B1 (en) Saturation select apparatus and method therefor
JPH03260723A (ja) ハイブリッド式関数演算法及び演算処理システム
JP4109181B2 (ja) 論理回路、および、それを使用した浮動小数点演算回路とマイクロプロセッサ
JPH081592B2 (ja) 演算処理装置
JP2792803B2 (ja) 平方根演算回路
US5297072A (en) Square-root operating circuit adapted to perform a square-root at high speed and apply to both of binary signal and quadruple signal