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

浮動小数点数演算処理装置

Info

Publication number
JPH0727453B2
JPH0727453B2 JP2099452A JP9945290A JPH0727453B2 JP H0727453 B2 JPH0727453 B2 JP H0727453B2 JP 2099452 A JP2099452 A JP 2099452A JP 9945290 A JP9945290 A JP 9945290A JP H0727453 B2 JPH0727453 B2 JP H0727453B2
Authority
JP
Japan
Prior art keywords
bit
register
floating point
processing
rounding
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
JP2099452A
Other languages
English (en)
Other versions
JPH02294819A (ja
Inventor
ジエフリイ・ダグラス・ブラウン
ドナルド・リイ・フリークソン
スコツト・アレン・ヒルカー
ダニエル・ローレンス・スタシイーク
Original Assignee
インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
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 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン filed Critical インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
Publication of JPH02294819A publication Critical patent/JPH02294819A/ja
Publication of JPH0727453B2 publication Critical patent/JPH0727453B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49936Normalisation mentioned as feature only
    • 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Nonlinear Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Description

【発明の詳細な説明】 A.産業上の利用分野 本発明はデータ処理装置において所定の浮動小数点演算
処理を実行する装置に関する。さらに詳しくは、浮動小
数点演算において、両オペランドの先行正規化、所定ビ
ツト・パターンの存在チエツク、オペランドに対する浮
動小数点処理、そしてオペランド状況が所定状況にない
場合には事後正規化、またオペランド状況が所定のもの
である場合は直接処理結果を導くことによつて浮動小数
点演算処理を簡易に実行する装置に関する。
B.従来技術および課題 データ処理装置における浮動小数点演算はコンピユータ
技術の初期から一般に行なわれてきたものである。浮動
小数点演算のハードウエアの開発は様々な方向を持ち、
ハードウエア構成の簡略化、あるいは計算処理の高速化
等を図つている。加減乗除の4つの演算処理は加算と減
算を持つプロセスの特別なサブセツトを用いて実行され
る。例えば乗算は加算処理を繰り返し実行する処理であ
り、除算は減算処理の繰り返しである。この処理の促
進、及び簡略化に様々な工夫がなされており、特に全て
の計算処理の処理速度を決定する加算回路のハードウエ
ア回路構成に努力が注がれている。除算の場合は、部分
商によつて、あるいは同時に多重商ビツトを予測するこ
とによつて除算に要する加算、あるいは減算処理の繰り
返し数を引き下げて処理速度を上げる工夫がされてい
る。
浮動小数点演算の実行のためのルールの統一基準を作成
するために米国基準が作成されている。この基準はANSI
/IEEEスタンダードNo.754−1985に記載されている。浮
動小数点演算のシステムおよびアルゴリズム構成におい
て、この基準を満たすことは必須であり、これによつて
このシステムおよびアルゴリズムのユーザが異なるコン
ピュータを用いて所定の計算を実行した際に調和が達成
される。基準は基本及び拡張浮動小数点数フオーマツ
ト、計算処理、整数と浮動小数点数間の変換、異なる浮
動小数点数間の変換、基本フオーマツト浮動小数点数と
10進ストリング間の変換、及び所定の浮動小数点例外の
扱いについて規定している。
一般的な浮動小数点演算処理は単精度、あるいは倍精度
のフオーマツトのどちらかによつて達成される。これら
各々のフオーマツトは符号、指数、および各フイールド
が浮動小数点数の所定部分を占めるような小数フイール
ドを使用する。32ビツト単精度の場合、符号フイールド
数は最上位ビツトポジシヨンが占める単ビツトであり、
指数フイールドは次の上位8ビツト、小数フイールドは
下位23ビツトとなる。倍精度浮動小数点数の場合は符号
フイールドが最上位単ビツト、指数フイールドは次の上
位11ビツト、小数フイールドは下位52ビツトとなる。
各浮動小数点の答えが導かれた後に正規化及び丸め処理
が必要となる。答えが正規化されると、小数フイールド
中の先行ゼロの数がカウントされる。次にこの数が指数
から差し引かれ、小数は小数フイールドの最上位ビツト
位置に1が存在するまで左にシフトされる。浮動小数点
数の答えには指数がすでに可能な最低値を持ち、小数フ
イールドの最上位ビツト値が1でないために正規化でき
ないものもある。
ANSI/IEEE規格754−1985を満足する浮動小数点実行のハ
ードウエアおよび論理の設計においては浮動小数点ハー
ドウエア処理に所定の追加ビツトを導入することが望ま
しく、また必要である。この指示ビツトは浮動小数点数
の小数フイールドに入りこみ、浮動小数点処理中に一定
の状態が発生したことを示すのに演算制御論理によつて
使用される。例えば、暗黙(IMPLICIT)ビツトIは浮動
小数点数の指数がゼロ以外の値を持つときに演算制御論
理によつて生成される。暗黙ビツトIは浮動小数点数が
演算ロジツクにロードされたときに生成され、暗黙ビツ
トIはその小数フイールドの第1ビツト位置を占める。
さらにガード(GUARD)ビツトGは所定の演算処理の際
に浮動小数点制御論理によつてセツトされる。これは処
理浮動小数点数の精度ロスを示す。Gビツトは右シフト
の際正規化を必要とするときにレジスタ・キヤパシテイ
の右サイドから上位ビツトがシフト・オフするときにセ
ツトされる。単精度数の場合、Gビツトは小数フイール
ドのドツト位置25を占める。倍精度数の場合はビツト位
置54となる。丸め(ROUND)ビツトも所定の浮動小数点
演算処理に使用され、演算制御論理によつてセツトされ
る。Rビツトは単精度数の場合には小数フイールドの26
ビツト位置、倍精度の場合はビツト位置55を占める。最
後にステイツキー(STICKY)ビツトは所定の浮動小数点
数演算においてセツトされ、いずれの低精度ビツトも1
であり、浮動小数点数がいくつかの精度を失つたことを
示すときの指示ビツトである。Sビツトは単精度数の場
合には小数フイールドの27ビツト位置、倍精度の場合は
ビツト位置56を占める。
小数フイールドの3つのエクストラ・ビツトは結果が正
規化された後の丸め処理に専ら使用される。ガード
(G)、丸め(R)ビツトはあたかも自身が小数の一部
であるかのように扱われる。これらは他の小数に伴つて
シフトされ、すべての演算に含まれる。ステイツキー
(S)ビツトは小数と共にシフトされないが演算には含
まれる。これは1が小数の右側にシフト・オフされた場
合、小数の右側にシフト・オフされた1つのキヤツチヤ
として動作し、このSビツトは正規化および丸めが完了
するまで、1のままに維持される。
丸め処理においては以下のような4つの典型モードがあ
る。
1)最近接部への丸め 2)正限界への丸め 3)負限界への丸め 4)ゼロへの丸め 「最近接部への丸め」モードは最大限正確な結果に近い
値が導かれることを意味する。もし、2つの最近接値が
まつたく等しい距離にある場合はその最低位ビツトがゼ
ロの方が導かれる。「正限界への丸め」モードは最大限
正確な値に最も近く、かつそれよりも小さくない値が導
かれる。「負限界への丸め」モードは最大限正確な値に
最も近く、かつそれよりも大きくない値が導かれる。
「ゼロへの丸め」モードは最大限正確な値に最も近くし
の絶対値がそれよりも大きくない値を導くものである。
もし、G,R,Sビツトがどれも1でないなら、丸めモード
が選択されても丸めは実行されない。
しかし、加算あるいは減算を実行する加算器を用いた演
算回路では必ず最下位ビツトから上位ビツト位置へ伝搬
するキヤリ・ビツトの生成が実行され、演算処理の間す
べてのビツト位置を伝搬する。これは演算の完了に要す
る時間の増大をもたらすものであり、この改良に多くの
提案がなされている。米国特許第4,754,422号は演算処
理のサイクルおよび繰り返しの間に複数の商ビツトを生
成するのに3つのキヤリ保持加算器を用いた除算装置を
開示している。米国特許第3,621,218号は演算処理の繰
り返しの間に複数の商ビツトを生成する単一キヤリ保持
加算器、および処理中に部分商のシーケンスを保持する
複数のレジスタを使用した除算装置を開示している。
米国特許第4,639,887号は浮動小数点数加算および減算
に要する潜在的な時間を削減する装置を示している。こ
れは浮動小数点数の小数部の計算に複数のハードウエア
を用い、指数差に基づいた結果値を選択するものであ
る。
データ処理装置における浮動小数点処理では、その効率
を向上させることが望まれ、この効率向上がシステム全
体の処理時間を削減する。特定な条件の基では効率向上
は可能である。そのいくつかが前述の先行技術である。
データ処理において、この特定の条件が頻繁に発生する
ものである場合はこの効率向上は非常に意味がある。例
えば、浮動小数点数演算において結果が導かれたときに
は正規化処理が必要となり、結果の適正化のために丸め
処理が必要とされる。しかし、所定条件が満たされこれ
らの処理のいづれか、あるいは両者がスキツプ可能であ
れば、これらの処理に要する時間は削減される。浮動小
数点数乗算では特定処理条件下では正規化および丸め処
理時間は50%削減可能であり、加算、減算処理では25%
削減可能である。ステツプの削除が可能な場合にこれら
のステツプを削除することで計算機の処理時間全体を減
少できる。
C.発明の概要および解決課題 本発明はANZI/IEEE基準754−1985を満足する浮動小数点
数演算処理装置および方法を提供する。
本発明の目的は所定の浮動小数点数演算においてこれに
要求されるマシン・サイクルの選択的削減を図り、所要
時間を従来に比して削減する演算装置および方法を提供
することである。
さらに、処理時間の削減のために事後正規化および丸め
処理をスキツプすることを予測する装置および方法を提
供することである。
本発明は浮動小数点数乗算、加算減算において事後正規
化ステツプがスキツプできることを予測するオペランド
検査回路を有する。さらに、この浮動小数点処理の小数
および指数結果を検査して丸め処理がスキツプ可能か否
かを検査する回路も有する。さらに要求される条件が整
つているときに事後の処理を短縮して計算効率を向上さ
せる回路を有する。
D.実施例 第1図に本発明による浮動小数点演算回路のブロツク図
を示す。浮動小数点演算の実行は最適な結果を導く特別
なアルゴリズムが必要であるため、その実現のためにこ
の回路が使用される。この回路は浮動小数点数は予め特
定のフオーマツトに従つてアレンジされているものと仮
定されている。すなわち、最上位ビツトが浮動小数点数
の符号を表し、次の上位ビツト・グループが浮動小数点
数の指数、そして他のビツトが小数値を表すごとくであ
る。小数値において2進位置は小数値の最も左端にあ
る。浮動小数点演算が32ビツト・サイズの単精度計算に
おいて実行される場合、符号ビツトはビツト0、指数ビ
ツトは1〜8、小数値ビツトは9〜31となる。浮動小数
点演算が倍精度数において実行される場合は符号ビツト
はビツト0、指数ビツトは1〜11、小数値ビツトは12〜
63となる。これらの識別ビツトに加えて、第1図に関す
るハードウエアおよびレジスタは4つの付加ビツトを持
つ。Iビツトは小数フイールドの最上位を占め、G、
R、およびSビツトは各々小数フイールドの最下位ビツ
トの位置を占める。
浮動小数点オペランドはそれらの指数が等しくなるまで
は相互に加算あるいは減算できない。このことはすなわ
ち、両指数が比較され、小さい指数を有するオペランド
の小数が、指数が等しくなるまで指数の差分シフトされ
るということになる。小数はその後、結果として得られ
た大きい指数のもとで加算あるいは減算される。浮動小
数点オペランドの乗算には指数が加算され、小数が乗算
されることが必要である。浮動小数点数の除算は除数の
指数が被除数の指数から減算され、被除数の小数が除数
の小数によつて除算されることが必要となる。
第1図に示した浮動小数点演算回路は単精度および倍精
度両者の演算処理が実行可能である。浮動小数点の加
算、減算、14ビツト浮動小数点乗算処理、2ビツト浮動
小数点除算処理が実行可能である。
第1図の浮動小数点演算回路10はデータ処理装置のよう
な他ソースからのデータの転送のためのデータ・バス12
を有している。データ・バス12を介して受領した情報は
複数の浮動小数点レジスタに転送される。この実施例に
おいては8つの浮動小数点レジスタ14が存在し、各々が
浮動小数点オペランドを保持し、浮動小数点処理の結果
を保持する。浮動小数点レジスタ14はFAレジスタ16、FB
レジスタ18、およびFCレジスタ22に情報転送を行なう。
FAレジスタ16は、また逆に浮動小数点レジスタ14に情報
を転送する。
FAレジスタ16は浮動小数点レジスタ14からのデータの宛
先レジスタであり、かつ浮動小数点レジスタ14へ点転送
するデータのソース・レジスタである。さらにFAレジス
タ16はメモリへ対して記憶データ・バス12を介して転送
されるデータのソース・レジスタであり、また桁上げ伝
搬加算機30、正規化丸め処理装置34から転送されるデー
タの宛先レジスタでもある。FAレジスタ16はマルチプル
・セレクタ24、正規化丸め処理装置34、および指数加算
器20に対する出力を持つ。FAレジスタ16は加算、減算、
比較、乗算、および除算処理の第2オペランドを保有す
る。FAレジスタ16は浮動小数点数の指数を保持するセク
シヨン16aと浮動小数点数のオペランド部を保持するセ
クシヨン16bを持つ。
FAレジスタに対する複数入力のうちいずれをレジスタに
ゲートさせるかを決定する選択制御のためにFAレジスタ
はその中にマルチプレクサ回路15を有している。マルチ
プレクサ回路15は活動化信号Aの制御の下でレジスタ16
に対する複数入力の選択制御を行う。浮動小数点演算回
路の他のレジスタも同様の機能を持つ。
制御論理回路11は浮動小数点演算回路中でのテータ交
換、およびデータ処理に必要とされる活動信号を送出す
る。制御論理回路11はAと定義される複数の制御信号出
力を持ち、これらの各々は多数の回路およびレジスタに
対する制御入力を供給する。浮動小数点演算処理におい
て必要とされる活動信号と同様、制御論理回路11の構成
については当業者においては明らかなところであるので
詳細な説明は省くこととする。
FBレジスタ18は浮動小数点レジスタ14のデータの宛先レ
ジスタであり、桁上げ伝搬加算器30と正規化丸め処理装
置34、記憶データ・バス12からのデータのための宛先レ
ジスタである。これはマルチプル・セレクタ24、事前位
置合せ装置26、指数加算器20への出力を有する。FBレジ
スタは加算、減算、比較、除算を行う第1オペランドを
保持し、加算、減算、乗算処理の中間結果を保持する。
FBレジスタ18は浮動小数点数の指数部を保持するセクシ
ヨン18aと浮動小数点数の小数部を保持するセクシヨン1
8bとを持ち、さらに制御論理回路11からの活動信号の制
御の基でレジスタにデータをゲートするための入力マル
チプレクサ回路17を持つ。
FCレジスタ22は記憶データ・バス12を介したメモリから
のデータ用の宛先レジスタであり、かつ桁下伝搬加算器
30と正規化丸め処理装置34からのデータの宛先レジスタ
である。これは、さらに浮動小数点レジスタ14からの宛
先レジスタでもある。FCレジスタ22はマルチプル・セレ
クタ24、事前位置合せ装置26、正規化丸め処理装置34へ
の出力を持つ。FCレジスタ22は乗算処理の第1オペラン
ドを保持しするのに用いられ、除算処理結果の宛先レジ
スタとなる。入力マルチプレク回路21は制御論理回路11
からの活動信号の制御の基でFCレジスタ22へのデータ・
ゲートを制御する。
指数加算器20は指数演算に使用される13ビツト加算回路
である。これは単精度、および倍精度の指数演算を扱
う。指数加算器はFAレジスタのセクシヨン16aとFBレジ
スタのセクシヨン18aに転送されるデータのソースであ
るる指数加算器20は入力マルチプレクサ回路19を有す
る。
事前位置合せ装置26は加算あるいは減算処理に先んじて
必要となる浮動小数点数オペランドの指数合わせである
小さい指数を有する小数の予備シフトの実行に使用され
る。事前位置合せ装置26は実行中の演算が単精度か倍精
度かに依存して浮動小数点小数を右に0から55ビツトま
でシフトすることができる。事前位置合せ装置26は桁上
げ伝搬加算器30、FCレジスタ22に対する出力を有する。
マルチプル・セレクタ24は乗算処理の被乗数の倍数、お
よび除算処理の除数の倍数を生成する。除算処理の場合
は被除数、あるいは部分的な被除数の上位ビツト、およ
び除数の上位ビツトら倍数が導かれる。オペランドの補
数は必要に応じてマルチプル・セレクタから生成され
る。マルチプル・セレクタ24はFAレジスタ16、FBレジス
タ18、FCレジスタ22からのデータを受領する。マルチプ
ル・セレクタ24は桁上げ保持加算器28への出力を持つ。
桁上げ保持加算器28は同時に3オペランドを加算するこ
とができる。これは1つの繰り返しごとに2つの商ビツ
トを生成する除算アルゴリズムを使用する。桁上げ保持
加算器ツリー28はマルチプル・セレクタ24からのデー
タ、および桁上げ伝搬加算器30への転送データを受領す
る。
桁上げ伝搬加算器30は57ビツト加算器であり、乗算処理
の部分積、あるいは除算処理の部分被除数を生成するた
めの桁上げ保持加算器28からの入力を持つ。桁上げ伝搬
加算器30はさらに事前位置合せ装置26、FAレジスタ16、
およびFBレジスタ18からの入力を受領する。桁上げ伝搬
加算器30はFAレジスタ16、およびFBレジスタ18への出力
接続を持つ。入力マルチプレクサ回路29は制御論理回路
11からの活動信号Aの制御の下で桁上げ伝搬加算器30へ
のデータ・ゲートを制御する。
正規化丸め処理装置34は浮動小数点処理の結果の正規化
に使用される。例えば、乗算処理結果は小数の正規化の
ために1ビツトの左シフトが要求され、加算および減算
処理の場合は54ビツト位置までの左シフトが要求され
る。正規化丸め回路34はさらに所定の丸め処理に使用さ
れるインクリメンタ回路を有する。ここで下位ビツト位
置において1だけインクリメントされる。
浮動小数点解が導かれた後に正規化および丸めが実行さ
れる。解が正規化されるとき、浮動小数点結果の小数部
において先行ゼロ数がカウントされる。この数はその
後、浮動小数点結果の指数部から減じられ、小数部は小
数部の最上位ビツトに1が存在する状態となるまで左に
シフトされる。以下の表はこのプロセスを示すものであ
る。表1は正規化前の浮動小数点結果であり、表2は正
規化後の浮動小数点結果である。
丸め処理には浮動小数点数で通常使用される符号ビツ
ト、指数ビツト、小数ビツトの他に3つの特別のビツト
が使用される。これらのビツトはガード・ビツト
(G)、丸めビツト(R)、ステイツキー・ビツト
(S)である。倍精度浮動小数点数処理においては、こ
れらの3ビツトはビツト位置54〜56にあり、ガード・ビ
ツト(G)がビツト位置54、丸めビツト(R)がビツト
位置55、ステイツキー・ビツト(S)がビツト位置56で
ある。単精度数ではガード・ビツト(G)がビツト位置
25、丸めビツト(R)がビツト位置26、ステイツキー・
ビツト(S)がビツト位置27である。これら3つの特別
ビツトは正規化結果の丸め処理に使用され、これらは小
数部の一部であるごとく扱われ、すべての演算に含まれ
る。
第2図は第1図の一部を示すブロツク図であり、従来技
術に沿つた正規化および丸め処理を実行する部分のブロ
ツク図である。これらの正規化および丸め処理は計算処
理が終了した後に実行される。通常の計算処理は第1図
の回路を使用して結果を導くための繰り返し動作がさ
れ、この結果が最後にレジスタ16にロードされる。小数
結果はレジスタ部16bにロードされ、指数結果はレジス
タ部16aにロードされる。その後、正規化および丸め処
理が事後正規化/丸め制御論理の制御下で実行される。
従来、事後正規化および丸め処理は第3図に示すごとく
3あるいは4サイクルで実行されていた。第3図に示す
ごとく判断のための論理回路は制御論理11に位置してい
る。
事後正規化および丸め処理の第1サイクルは計算機能の
最後の反復の直後に発生する。計算結果はそれが「特殊
ケース」であるか、すなわち事後正規化及び丸め処理を
必要とせず、直接レジスタ16から浮動小数点レジスタ14
にロードしてよいものであるかが制御論理回路11におい
て判断される。この「特殊ケースはANSI/IEEE基準754−
1985では正負無限大、非数値(NAN)、および±0とし
て定義されている。しかし、ほとんどの場合演算結果は
事後正規化および丸め処理が必要であり、これは処理の
第2サイクルで実行される。このサイクルが完了すると
結果はオーバーフロー/アンダーフローの確認がされ、
問題がなければ結果は浮動小数点数レジスタ14に送られ
る。もしオーバーフロー/アンダーフローの問題があれ
ば、ANSI/IEEE基準に従つてこれを解決する第3の処理
が実行され適当な表示がなされる。このサイクルの後、
結果が浮動小数点数レジスタ14に送られる。
本発明はある特定のオペランドは乗算、加算、減算の際
に事後正規化処理をスキツプ可能であるという認識に基
づくものである。さらに本発明はある特定の小数結果は
丸め処理を必要としないという認識にも基づくものであ
る。これらの可能性は制御論理11に「特殊ケース」にお
いて正規化および丸め処理が要求されるか否かを判断す
るという新しい機能を付与することになる。この予測判
断を実行するフロー図を第4図に示す。この判断は計算
処理の最終反復の直後に実行される。このことは第4図
のサイクル1で示される。もし前述のような「特殊ケー
ス」である場合はサイクル2は単に結果を浮動小数点数
レジスタ14に転送するのみとなる。もし特殊なケースが
存在しない場合はサイクル1とサイクル2との間で本発
明に係わる試験が実行される。計算処理において、本発
明の摘要できる3タイプの1つであるかが確認される。
I)同符号の2数の加算、2)異符号の2数の減算、
3)乗算である。演算処理がこれらのいずれでもない場
合は通常の事後正規化および丸め処理がサイクル2で実
行される。演算処理が上記3つのいずれかである場合は
丸め処理が必要か否かの判断がなされる。丸め処理が必
要であれば通常の事後正規化および丸め処理がサイクル
2で実行される。もし丸め処理が必要でないときにはオ
ーバーフロー/アンダーフロー状況がチエツク、処理さ
れ、結果が浮動小数点数レジスタ14に転送される(サイ
クル2またはサイクル3)。本発明はある特定の計算処
理および計算結果に対して事後正規化および丸め処理の
スキツプを許容する。これらの場合サイクル2は直接結
果を浮動小数点数レジスタ14に転送するだけのステツプ
となる。
乗算における事後正規化予測は両オペランドが乗算命令
の実行以前の事前正規化要請に依存する。これは結果小
数が1.XXX...あるいは0.1XXX...のいずれか(Xは任意
の数値)であることが予測されるときである。すなわ
ち、結果小数がすでに正規化されているか、あるいは正
規化から1つ左にシフトされた状態であるかのいずれか
であるということである。
ロジツクによつて原オペランドが正規化予測を満たすも
のであることが確認されると、結果小数の第1ビツトが
の検査によつてどちらの答えが導かれるかの確認がなさ
れる。小数部加算器28、30の最上位ビツトがゼロであれ
ば、小数は0.1XXX...の形であり指数は単にオペランド
の2指数を加算したものとなる。小数加算器28、30の最
上位ビツトが1であれば小数部は1.XXX...の形であり2
つのオペランド指数の加算値は結果の指数から1ずれた
ものとなる。この処理の流れは第5図のフロー図に示さ
れ、さらに表3に示す。表3において正規化の欄は結果
がすでに正規化されている(None)が正規化のために1
つの左シフトが必要か(SL1)を示す。
乗算処理の最終反復の後、小数結果は加算器28、30の出
力に送出される。小数結果が0.1Xの形である場合、入力
マルチプレクサ回路15を介してレジスタ16bに転送さ
れ、この際1ビツトの左シフトが実行される。小数結果
が1.Xの形の場合はシフト処理無しで入力マルチプレク
サ回路15からレジスタ16bに送られる。小数結果が1.Xで
あれば指数加算器20の出力は1つ増加され、指数結果が
入力マルチプレクサ回路15を介してレジスタ16aに転送
される。結果が0.1Xであるときは指数加算器20の結果は
直接入力マルチプレクサ回路15を介してジレスタ16aに
転送される。このようにデータ転送の間に1ビツト正規
化が必要に応じて実行され、事後正規化および丸め処理
は不要となる。
加算および減算演算処理における事後正規化予測は原オ
ペランドの符号が同じ場合の加算処理、原オペランドの
符号が異なる場合の減算処理において可能である。
正規化予測の要求を満たす源オペランドが確認された場
合、結果小数のキヤリ・ビツトの検査によつていずれの
答えが導かれるかが判断される。小数加算器28、30がキ
ヤリ・ビツトを示せば、結果小数は1X.XXX...の形であ
り小数部は右に1ポジシヨン、シフトされなければなら
ず、指数が1増加される。小数加算器28、30がキヤリ・
ビツトを示さないときには結果小数は1.XXX...の形であ
り、シフトの必要はなく、指数の変更も不要である。第
6図はこの加算、減算処理のフローを示す図であり、表
4は小数結果から判断される条件を示す表である。
小数結果が1X.Xの形であるとき小数加算器28、30からの
レジスタ16bへの転送は入力マルチプレクサ15を介し
て、1ビツト位置右シフトを実行して行なわれる。
小数結果が1.Xであれば転送は入力マルチプレクサ15を
介して直接レジスタ16bに転送される。小数結果が1X.X
の形であるときは指数加算器20からの指数結果は1増加
され、入力マルチプレクサ15を介してレジスタ16aに転
送される。小数結果が1.Xの形であるときは指数は入力
マルチプレクサ15を介して直接レジスタ16aに転送され
る。結果は1以上のシフトを要求しないのでこのデータ
転送中に正規化ステツプは効率的に完了する。
表4中、正規化の欄は正規化の実行を示すもので、SR1
は正規化予測のために1位置の右シフトが実行されるこ
とを示し、Noneは数値がすでに正規化されたものである
ことを示す。
第4図に示すように丸め予測は加算、減算および乗算の
小数結果の特定のビツトの検査によつて行なわれる。検
査される特定のビツトは結果小数の最下位ビット(LS
B)、結果小数のガード・ビツト、結果小数の丸めビツ
ト(R)結果小数のステツイキー・ビツト(S)そして
結果小数の符号ビツト(SIGN)である。
丸め予測はさらに浮動小数点演算処理に結びつけられ選
択された特定の丸めモードに依存する。以下に示す表5
はANSI/IEEE基準754−1985から導かれたもので、先行す
る要素すべての関数として丸め処理予測を行うものであ
る。ここでNoは丸め処理が不要であることを示し、Yes
は丸め処理が必要なことを示す。事後正規化及び丸め処
理制御論理回路11によつて、明確に丸め処理予測を実行
するには全ての状況検査が必要である。これが第1図、
第2図から読み取れる。当業者であれば丸め処理予測を
明確に実行するための特定の状況は第1図、第2図に示
すキヤリ伝搬加算器30の出力を参照することで得られる
ことが理解されるであろう。
処理に際して、本発明はある一定の浮動小数点計算の最
終反復の後に実行される。ここでは演算が前述した特別
のケースを含まないと仮定している。適当な状況が存在
するとき、本発明によつて事後正規化および丸め処理が
スキツプ可能となり、全ての演算処理中の1あるいはそ
れ以上のサイクルが省略できる。さいわいにも、こうい
つた状況は25〜50%の確立で発生する。従つてマシン・
サイクルの省略は十分効果的なものとなる。
本発明はすべての浮動小数点数乗算、同符号を有する浮
動小数点数加算、異符号を有する浮動小数点数減算処理
に適用できる。これらの場合において、結果小数の最上
位ビツトが検査され、その結果によつて正規化要求の完
全な予測が可能となる。正規化が全く不要であるか、1
ビツトの左シフトで実行可能か、あるいは1ビツトの右
シフトで実行可能かのいずれかである。
丸め処理予測を実行するためには、計算処理の丸めモー
ド選択関数として小数結果の他のビツトを検査すること
が必要となる。検査ビツトの相対位置についてはよく知
られており、制御論理回路11に適当な論理機能を導入す
ることは従来から行なわれている。検査されるビツトは
結果小数の最下位ビツト、ガード・ビツト、丸めビツ
ト、ステツイキー・ビツト、そして符号ビツトである。
計算処理によつて選択された丸めモードによつて、これ
ら5つのビツトの様々な組合せが次に続く丸め処理を導
くことになる。丸め処理が不要の場合は事後正規化およ
び丸めステツプは完全にスキツプでき、マシン・サイク
ルの節約が可能である。丸め処理を要する場合は事後正
規化および丸め処理が従来同様実行される。
E.発明の効果 以上のように本発明によつて正規化処理および丸め処理
のステツプがスキツプ可能となり、マシン・サイクルの
節約により演算処理速度の向上が達成される。
【図面の簡単な説明】
第1図は本発明の浮動小数点演算回路を示すブロツク
図、第2図は正規化および丸め処理に用いられる第1図
の回路の一部を構成する部分回路図、第3図は従来の丸
み処理および正規化処理の流れを示すフロー図、第4図
は本発明の正規化および丸め処理の流れを示すフロー
図、第5図は本発明の浮動小数点数乗算処理のデータ経
路を示すブロツク図、第6図は本発明の浮動小数点数加
算処理のデータ経路を示すブロツク図である。 11…制御論理、34a…正規化装置、34b…丸め処理装置。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 スコツト・アレン・ヒルカー アメリカ合衆国ミネソタ州ロチエスター、 ノース・ウエスト・トウエンテイシイツク スス・アヴエニユー5500エー番地 (72)発明者 ダニエル・ローレンス・スタシイーク アメリカ合衆国ミネソタ州ロチエスター、 ノース・ウエスト・トウエンテイシイツク スス・ストリート1463番地 (56)参考文献 特開 平2−115926(JP,A)

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】所定のタイプの浮動小数点演算の結果を正
    規化し、演算結果の所定のビットを検査して丸めが必要
    かどうかを判断する浮動小数点数演算処理装置であっ
    て、 演算処理が乗算処理か、同符号の加算処理か、或いは異
    符号の減算処理かを判断し、該判断に基づき演算結果を
    レジスタに転送する転送手段を作動させる手段を有し、 上記転送手段は、小数部の演算結果の上位2ビットを検
    査し、上記上位2ビットの状況によって、Xを任意の数
    とするとき、 イ)乗算処理であり、上記上位2ビットが1.Xの形態で
    あれば、演算結果を直接レジスタに転送すると共に指数
    を1増加させ、 ロ)乗算処理であり、上記上位2ビットが0.1の形態で
    あれば、小数部の演算結果を1ビット左シフトして上記
    レジスタに転送し、指数はそのまま上記レジスタに転送
    し、 ハ)同符号の加算、または異符号の減算処理であり、上
    記上位2ビットが1.Xの形態であれば、演算結果を直接
    上記レジスタに転送し、 ニ)同符号の加算、または異符号の減算処理であり、上
    記上位2ビットが1X.の形態であれば、小数部の演算結
    果を1ビット右シフトして上記レジスタに転送し、指数
    を1増加させて上記レジスタに転送する、 ようにした浮動小数点数演算処理装置。
JP2099452A 1989-04-17 1990-04-17 浮動小数点数演算処理装置 Expired - Lifetime JPH0727453B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/339,347 US4941120A (en) 1989-04-17 1989-04-17 Floating point normalization and rounding prediction circuit
US339347 1989-04-17

Publications (2)

Publication Number Publication Date
JPH02294819A JPH02294819A (ja) 1990-12-05
JPH0727453B2 true JPH0727453B2 (ja) 1995-03-29

Family

ID=23328604

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2099452A Expired - Lifetime JPH0727453B2 (ja) 1989-04-17 1990-04-17 浮動小数点数演算処理装置

Country Status (3)

Country Link
US (1) US4941120A (ja)
EP (1) EP0394170A3 (ja)
JP (1) JPH0727453B2 (ja)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0792739B2 (ja) * 1989-05-22 1995-10-09 甲府日本電気株式会社 浮動小数点データ正規化方式
US5212661A (en) * 1989-10-16 1993-05-18 Matsushita Electric Industrial Co., Ltd. Apparatus for performing floating point arithmetic operation and rounding the result thereof
US5430661A (en) * 1990-12-03 1995-07-04 Board Of Trustees Leland Stanford, Jr. University Adaptive decision feedback equalizer apparatus for processing information stored on digital storage media
US5150319A (en) * 1991-05-03 1992-09-22 Sun Microsystems, Inc. Circuitry for rounding in a floating point multiplier
US5408426A (en) * 1992-03-17 1995-04-18 Hitachi, Ltd. Arithmetic unit capable of performing concurrent operations for high speed operation
US5339266A (en) * 1993-11-29 1994-08-16 Motorola, Inc. Parallel method and apparatus for detecting and completing floating point operations involving special operands
US5612909A (en) * 1994-09-29 1997-03-18 Intel Corporation Method and apparatus for rounding operands using previous rounding history
US5548544A (en) * 1994-10-14 1996-08-20 Ibm Corporation Method and apparatus for rounding the result of an arithmetic operation
US5530663A (en) * 1994-11-14 1996-06-25 International Business Machines Corporation Floating point unit for calculating a compound instruction A+B×C in two cycles
US5511016A (en) * 1994-11-30 1996-04-23 International Business Machines Corporation Method for store rounding and circuit therefor
JP3313002B2 (ja) * 1994-12-02 2002-08-12 三菱電機株式会社 浮動小数点演算装置
RU95107478A (ru) * 1995-05-18 1997-02-10 А.И. Грушин Способ устранения старших незначащих цифр при вычислениях с плавающей запятой и устройство для его осуществления
US5808926A (en) * 1995-06-01 1998-09-15 Sun Microsystems, Inc. Floating point addition methods and apparatus
US5878266A (en) * 1995-09-26 1999-03-02 Advanced Micro Devices, Inc. Reservation station for a floating point processing unit
US5761105A (en) * 1995-09-26 1998-06-02 Advanced Micro Devices, Inc. Reservation station including addressable constant store for a floating point processing unit
US5748516A (en) * 1995-09-26 1998-05-05 Advanced Micro Devices, Inc. Floating point processing unit with forced arithmetic results
WO1998006029A1 (en) * 1996-08-07 1998-02-12 Valery Yakovlevich Gorshtein Apparatus and methods for execution of computer instructions
US5844830A (en) * 1996-08-07 1998-12-01 Sun Microsystems, Inc. Executing computer instrucrions by circuits having different latencies
EP0869432B1 (en) * 1997-04-01 2002-10-02 Matsushita Electric Industrial Co., Ltd. Multiplication method and multiplication circuit
US6185593B1 (en) 1997-09-02 2001-02-06 Intrinsity, Inc. Method and apparatus for parallel normalization and rounding technique for floating point arithmetic operations
US6173299B1 (en) 1997-09-02 2001-01-09 Intrinsity, Inc. Method and apparatus for selecting an intermediate result for parallel normalization and rounding technique for floating point arithmetic operations
US6151615A (en) * 1997-09-02 2000-11-21 Intrinsity, Inc. Method and apparatus for formatting an intermediate result for parallel normalization and rounding technique for floating point arithmetic operations
US5974432A (en) * 1997-12-05 1999-10-26 Advanced Micro Devices, Inc. On-the-fly one-hot encoding of leading zero count
US6175847B1 (en) 1998-07-22 2001-01-16 Intrinsity, Inc. Shifting for parallel normalization and rounding technique for floating point arithmetic operations
US6934728B2 (en) 2001-06-01 2005-08-23 Microchip Technology Incorporated Euclidean distance instructions
US7467178B2 (en) 2001-06-01 2008-12-16 Microchip Technology Incorporated Dual mode arithmetic saturation processing
US6604169B2 (en) 2001-06-01 2003-08-05 Microchip Technology Incorporated Modulo addressing based on absolute offset
US20020184566A1 (en) 2001-06-01 2002-12-05 Michael Catherwood Register pointer trap
US6975679B2 (en) 2001-06-01 2005-12-13 Microchip Technology Incorporated Configuration fuses for setting PWM options
US6728856B2 (en) 2001-06-01 2004-04-27 Microchip Technology Incorporated Modified Harvard architecture processor having program memory space mapped to data memory space
US6976158B2 (en) 2001-06-01 2005-12-13 Microchip Technology Incorporated Repeat instruction with interrupt
US6552625B2 (en) 2001-06-01 2003-04-22 Microchip Technology Inc. Processor with pulse width modulation generator with fault input prioritization
US6985986B2 (en) * 2001-06-01 2006-01-10 Microchip Technology Incorporated Variable cycle interrupt disabling
US7020788B2 (en) 2001-06-01 2006-03-28 Microchip Technology Incorporated Reduced power option
US6937084B2 (en) 2001-06-01 2005-08-30 Microchip Technology Incorporated Processor with dual-deadtime pulse width modulation generator
US7007172B2 (en) 2001-06-01 2006-02-28 Microchip Technology Incorporated Modified Harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection
US7003543B2 (en) * 2001-06-01 2006-02-21 Microchip Technology Incorporated Sticky z bit
US6601160B2 (en) 2001-06-01 2003-07-29 Microchip Technology Incorporated Dynamically reconfigurable data space
US6952711B2 (en) 2001-06-01 2005-10-04 Microchip Technology Incorporated Maximally negative signed fractional number multiplication
US6552567B1 (en) 2001-09-28 2003-04-22 Microchip Technology Incorporated Functional pathway configuration at a system/IC interface
US20040021483A1 (en) * 2001-09-28 2004-02-05 Brian Boles Functional pathway configuration at a system/IC interface
JP4571903B2 (ja) 2005-12-02 2010-10-27 富士通株式会社 演算処理装置,情報処理装置,及び演算処理方法
GB2581542A (en) * 2019-07-19 2020-08-26 Imagination Tech Ltd Apparatus and method for processing floating-point numbers

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3621218A (en) * 1967-09-29 1971-11-16 Hitachi Ltd High-speed divider utilizing carry save additions
JPS5960637A (ja) * 1982-09-30 1984-04-06 Toshiba Corp 浮動小数点演算装置
US4612628A (en) * 1983-02-14 1986-09-16 Data General Corp. Floating-point unit constructed of identical modules
JPS608933A (ja) * 1983-06-28 1985-01-17 Nec Corp 演算処理装置
JPS60140428A (ja) * 1983-12-28 1985-07-25 Hitachi Ltd 除算装置
US4639887A (en) * 1984-02-24 1987-01-27 The United States Of America As Represented By The United States Department Of Energy Bifurcated method and apparatus for floating point addition with decreased latency time
JPS6125245A (ja) * 1984-07-12 1986-02-04 Nec Corp 丸め処理回路
JPS61122750A (ja) * 1984-11-20 1986-06-10 Matsushita Electric Ind Co Ltd 演算装置
JPS61131123A (ja) * 1984-11-30 1986-06-18 Toshiba Corp 浮動小数点演算装置
JPH0644225B2 (ja) * 1986-03-27 1994-06-08 日本電気株式会社 浮動小数点丸め正規化回路
US4758972A (en) * 1986-06-02 1988-07-19 Raytheon Company Precision rounding in a floating point arithmetic unit
US4800516A (en) * 1986-10-31 1989-01-24 Amdahl Corporation High speed floating-point unit
JPH02115926A (ja) * 1988-10-26 1990-04-27 Matsushita Electric Ind Co Ltd 浮動小数点正規化丸め装装置

Also Published As

Publication number Publication date
EP0394170A3 (en) 1992-07-01
US4941120A (en) 1990-07-10
JPH02294819A (ja) 1990-12-05
EP0394170A2 (en) 1990-10-24

Similar Documents

Publication Publication Date Title
JPH0727453B2 (ja) 浮動小数点数演算処理装置
EP0377837B1 (en) Floating point unit having simultaneous multiply and add
US5357237A (en) In a data processor a method and apparatus for performing a floating-point comparison operation
US5844830A (en) Executing computer instrucrions by circuits having different latencies
US4758972A (en) Precision rounding in a floating point arithmetic unit
US4926370A (en) Method and apparatus for processing postnormalization and rounding in parallel
KR100302686B1 (ko) 독립적인승산및가산명령어를이용하여고정밀도승산-가산연산을수행하기위한방법및장치
US5995991A (en) Floating point architecture with tagged operands
US4922446A (en) Apparatus and method for floating point normalization prediction
JPH06236257A (ja) データ・プロセッサにおいて浮動小数点実行ユニット内で後正規化を実行する方法および装置
JPS584441A (ja) デ−タ処理システム
US7395297B2 (en) Floating point system that represents status flag information within a floating point operand
Hickmann et al. A parallel IEEE P754 decimal floating-point multiplier
US7725522B2 (en) High-speed integer multiplier unit handling signed and unsigned operands and occupying a small area
WO1989002119A1 (en) Apparatus and method for using a single carry chain for leading one detection and for ''sticky'' bit calculation
USH1222H (en) Apparatus for determining sticky bit value in arithmetic operations
US4979142A (en) Two-bit floating point divide circuit with single carry-save adder
EP0394161A2 (en) Selection of divisor multipliers in a floating point divide circuit
US6233595B1 (en) Fast multiplication of floating point values and integer powers of two
US7054898B1 (en) Elimination of end-around-carry critical path in floating point add/subtract execution unit
US5117384A (en) Method and apparatus for exponent adder
US8185723B2 (en) Method and apparatus to extract integer and fractional components from floating-point data
US7051062B2 (en) Apparatus and method for adding multiple-bit binary-strings
RU2276805C2 (ru) Способ и устройство для выделения целой и дробных компонент из данных с плавающей точкой
EP0438962A2 (en) Method and apparatus for exponent adder