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

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

Info

Publication number
JPH02294819A
JPH02294819A JP2099452A JP9945290A JPH02294819A JP H02294819 A JPH02294819 A JP H02294819A JP 2099452 A JP2099452 A JP 2099452A JP 9945290 A JP9945290 A JP 9945290A JP H02294819 A JPH02294819 A JP H02294819A
Authority
JP
Japan
Prior art keywords
processing
bit
floating point
rounding
normalization
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.)
Granted
Application number
JP2099452A
Other languages
English (en)
Other versions
JPH0727453B2 (ja
Inventor
Jeffrey D Brown
ジエフリイ・ダグラス・ブラウン
Donald L Freerksen
ドナルド・リイ・フリークソン
Scott A Hilker
スコツト・アレン・ヒルカー
Daniel L Stasiak
ダニエル・ローレンス・スタシイーク
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
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)

Abstract

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

Description

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

Claims (1)

  1. 【特許請求の範囲】 演算結果の特定ビットの検査により丸め処理の要否を判
    断する浮動小数点数演算処理装置であつて、 演算処理が乗算処理か、同符号の加算処理か、あるいは
    異符号の減算処理かを判断し、該判断に基づき転送シー
    ケンスを開始させる手段と、上記転送シーケンスにおい
    て結果小数の最上位ビットを検査し、小数結果および指
    数結果をレジスタに転送する手段であり、上記最上位ビ
    ットの状況によつて、 イ)乗算処理であり、2つの最上位ビットが1.XXの
    形態であるときに結果を直接、上記レジスタに転送する
    とともに指数を1つ増加させる、ロ)乗算処理であり、
    2つの最上位ビットが0.1Xの形態であるときに小数
    結果を1ビット左シフトを実行して上記レジスタに転送
    し、指数はそのまま上記レジスタに転送する、 ハ)加算、減算処理であり、2つの最上位ビットが1.
    XXの形態であるときに、上記レジスタに直接結果を転
    送する、 ニ)加算、減算処理であり、2つの最上位ビットが1X
    .Xの形態であるときに、1ビットの右シフトを実行し
    て小数結果を上記レジスタに転送し、指数を1増加して
    上記レジスタに転送する、上記イ)、ロ)、ハ)、また
    はニ)のいずれかを選択して実行する手段を有すること
    を特徴とする浮動小数点数演算処理装置。
JP2099452A 1989-04-17 1990-04-17 浮動小数点数演算処理装置 Expired - Lifetime JPH0727453B2 (ja)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
JPH02294819A true JPH02294819A (ja) 1990-12-05
JPH0727453B2 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5831884A (en) * 1994-12-02 1998-11-03 Mitsubishi Denki Kabushiki Kaisha Apparatus for performing arithmetic operation of floating point numbers capable of improving speed of operation by performing canceling prediction operation in parallel

Families Citing this family (42)

* 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
EP0560945A4 (en) * 1990-12-03 1995-07-12 Univ Leland Stanford Junior 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
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
US5748516A (en) * 1995-09-26 1998-05-05 Advanced Micro Devices, Inc. Floating point processing unit with forced arithmetic results
US5761105A (en) * 1995-09-26 1998-06-02 Advanced Micro Devices, Inc. Reservation station including addressable constant store for a floating point processing unit
US5878266A (en) * 1995-09-26 1999-03-02 Advanced Micro Devices, Inc. Reservation station for a floating point processing unit
US5844830A (en) * 1996-08-07 1998-12-01 Sun Microsystems, Inc. Executing computer instrucrions by circuits having different latencies
WO1998006029A1 (en) * 1996-08-07 1998-02-12 Valery Yakovlevich Gorshtein Apparatus and methods for execution of computer instructions
EP0869432B1 (en) * 1997-04-01 2002-10-02 Matsushita Electric Industrial Co., Ltd. Multiplication method and multiplication circuit
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
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
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
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
US7467178B2 (en) 2001-06-01 2008-12-16 Microchip Technology Incorporated Dual mode arithmetic saturation processing
US6728856B2 (en) 2001-06-01 2004-04-27 Microchip Technology Incorporated Modified Harvard architecture processor having program memory space mapped to data memory space
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
US6937084B2 (en) 2001-06-01 2005-08-30 Microchip Technology Incorporated Processor with dual-deadtime pulse width modulation generator
US6552625B2 (en) 2001-06-01 2003-04-22 Microchip Technology Inc. Processor with pulse width modulation generator with fault input prioritization
US6952711B2 (en) 2001-06-01 2005-10-04 Microchip Technology Incorporated Maximally negative signed fractional number multiplication
US6976158B2 (en) 2001-06-01 2005-12-13 Microchip Technology Incorporated Repeat instruction with interrupt
US6601160B2 (en) 2001-06-01 2003-07-29 Microchip Technology Incorporated Dynamically reconfigurable data space
US6985986B2 (en) * 2001-06-01 2006-01-10 Microchip Technology Incorporated Variable cycle interrupt disabling
US6934728B2 (en) 2001-06-01 2005-08-23 Microchip Technology Incorporated Euclidean distance instructions
US7020788B2 (en) 2001-06-01 2006-03-28 Microchip Technology Incorporated Reduced power option
US6604169B2 (en) 2001-06-01 2003-08-05 Microchip Technology Incorporated Modulo addressing based on absolute offset
US7003543B2 (en) * 2001-06-01 2006-02-21 Microchip Technology Incorporated Sticky z bit
US20040021483A1 (en) * 2001-09-28 2004-02-05 Brian Boles Functional pathway configuration at a system/IC interface
US6552567B1 (en) 2001-09-28 2003-04-22 Microchip Technology Incorporated 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

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5960637A (ja) * 1982-09-30 1984-04-06 Toshiba Corp 浮動小数点演算装置
JPS608933A (ja) * 1983-06-28 1985-01-17 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 浮動小数点演算装置
JPH02115926A (ja) * 1988-10-26 1990-04-27 Matsushita Electric Ind Co Ltd 浮動小数点正規化丸め装装置

Family Cites Families (8)

* 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
US4612628A (en) * 1983-02-14 1986-09-16 Data General Corp. Floating-point unit constructed of identical modules
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 丸め処理回路
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5960637A (ja) * 1982-09-30 1984-04-06 Toshiba Corp 浮動小数点演算装置
JPS608933A (ja) * 1983-06-28 1985-01-17 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 浮動小数点演算装置
JPH02115926A (ja) * 1988-10-26 1990-04-27 Matsushita Electric Ind Co Ltd 浮動小数点正規化丸め装装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5831884A (en) * 1994-12-02 1998-11-03 Mitsubishi Denki Kabushiki Kaisha Apparatus for performing arithmetic operation of floating point numbers capable of improving speed of operation by performing canceling prediction operation in parallel

Also Published As

Publication number Publication date
EP0394170A2 (en) 1990-10-24
JPH0727453B2 (ja) 1995-03-29
US4941120A (en) 1990-07-10
EP0394170A3 (en) 1992-07-01

Similar Documents

Publication Publication Date Title
JPH02294819A (ja) 浮動小数点数演算処理装置
US5357237A (en) In a data processor a method and apparatus for performing a floating-point comparison operation
US4969118A (en) Floating point unit for calculating A=XY+Z having simultaneous multiply and add
US5844830A (en) Executing computer instrucrions by circuits having different latencies
US6360189B1 (en) Data processing apparatus and method for performing multiply-accumulate operations
JPH02294820A (ja) 浮動小数点数演算処理装置および演算処理方法
US4922446A (en) Apparatus and method for floating point normalization prediction
Bruguera et al. Floating-point fused multiply-add: reduced latency for floating-point addition
JP2002108606A (ja) スティッキービット生成回路及び乗算器
JPH06236257A (ja) データ・プロセッサにおいて浮動小数点実行ユニット内で後正規化を実行する方法および装置
Hickmann et al. A parallel IEEE P754 decimal floating-point multiplier
US5548545A (en) Floating point exception prediction for compound operations and variable precision using an intermediate exponent bus
EP0487814A2 (en) Overflow determination for three-operand alus in a scalable compound instruction set machine
US20070050434A1 (en) Data processing apparatus and method for normalizing a data value
Nannarelli Tunable floating-point adder
US6499044B1 (en) Leading zero/one anticipator for floating point
US6519621B1 (en) Arithmetic circuit for accumulative operation
US6061707A (en) Method and apparatus for generating an end-around carry in a floating-point pipeline within a computer system
US7219117B2 (en) Methods and systems for computing floating-point intervals
US7054898B1 (en) Elimination of end-around-carry critical path in floating point add/subtract execution unit
JPH02294821A (ja) 浮動小数点数演算処理装置
US5117384A (en) Method and apparatus for exponent adder
US7236999B2 (en) Methods and systems for computing the quotient of floating-point intervals
US6594679B1 (en) Leading-zero anticipator having an independent sign bit determination module
US6178437B1 (en) Method and apparatus for anticipating leading digits and normalization shift amounts in a floating-point processor