JP3163072B2 - 浮動小数点装置 - Google Patents

浮動小数点装置

Info

Publication number
JP3163072B2
JP3163072B2 JP04635999A JP4635999A JP3163072B2 JP 3163072 B2 JP3163072 B2 JP 3163072B2 JP 04635999 A JP04635999 A JP 04635999A JP 4635999 A JP4635999 A JP 4635999A JP 3163072 B2 JP3163072 B2 JP 3163072B2
Authority
JP
Japan
Prior art keywords
mantissa
stage
block stage
multiplier
block
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 - Fee Related
Application number
JP04635999A
Other languages
English (en)
Other versions
JPH11296346A (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.)
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 JPH11296346A publication Critical patent/JPH11296346A/ja
Application granted granted Critical
Publication of JP3163072B2 publication Critical patent/JP3163072B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/52Multiplying; Dividing
    • 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
    • G06F7/487Multiplying; Dividing
    • G06F7/4876Multiplying
    • 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5324Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel partitioned, i.e. using repetitively a smaller parallel parallel multiplier or using an array of such smaller multipliers

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータの
動小数点装置に関し、特に、2進ベースの4倍長語フォ
ーマットによる乗算の浮動小数点演算の実行に関する。
【0002】
【従来の技術】「2進浮動小数点演算のIEEE規格
(IEEE Standard for Binary Floating-Point Arithmet
ic」(IEEE754規格)は、1ビットの符号、15
ビット以上の指数部および64ビット以上の仮数部によ
って表現を指定する「重拡張」と呼ばれるフォーマッ
トを定義している。標準委員会の間では、より制限的で
あるが、重拡張フォーマットのサブセットである4倍
長語フォーマットを採用することが議論されてきた。い
くつかの製造業者が、Hewlett-Packard のPA−RI
SC1.1アーキテクチャおよびIBMのS/390
をはじめとする、1ビットの符号情報と、15ビットの
指数部と、最上位ビットが暗示されている113ビット
の仮数部とを含む特定の4倍長語フォーマットを採用し
ている。このフォーマットは、オペランドを表現するの
に128ビット(4倍長語する。
【0003】大部分の浮動小数点装置は、4倍長語フォ
ーマットに最適化されてはおらず、頻繁に使用される倍
長語フォーマットに最適化されている。4倍長語フォー
マットのオペランドは、ハードウェア現されている
フォーマットに分割したのち、多数のより小さな演算を
実行して、全体として4倍長語フォーマット演算を達
成しなければならない。通常このようにしてサポートさ
れるある種の浮動小数点演算は、4倍長語フォーマット
の乗算である。
【0004】Hewlett-Packard のPA−RISC1.
1アーキテクチャで「4倍長語フォーマット」と呼ばれ
ている定義は、S/390アーキテクチャでは「2進拡
張フォーマット」と呼ばれるが、それらのフォーマット
は、一部の相違点(非数NaNの通知およびクァイエッ
NaNの表現を除き、同一である。S/390アー
キテクチャは、短フォーマット(語)、長フォーマット
(倍長語)および拡張フォーマット(4倍長語)を有す
る独自の16進ベースのフォーマットをサポートしてい
る。典型的なS/390浮動小数点装置では、16進倍
長語の精度ハードウェア中で最適化され、これは、I
EEE754規格倍長語フォーマットに合わせて最適
化する他の製造業者と同様である。理由は、いずれのフ
ォーマットも表現するのに64ビットを要するからであ
る。16進倍長語フォーマットは、1ビットの符号情
報、7ビットの指数部および56ビットの仮数部を含
む。S/390浮動小数点装置のデータフローは通常、
56ビットのオペランドに最適化されている。乗算器が
他の目的、たとえば除算に使用されるならば、その乗算
器は追加の保護ビットをいくつか有するかもしれない。
性能最適化した乗算器の実現態様では、オペランドの
一方、すなわち乗数は、つの追加ビットがカウンタ・
ツリーの全遅延に対して劇的な影響を及ぼすため、いか
なる保護ビット分も拡張されない。しかし、他方のオペ
ランド、すなわち被乗数は、カウンタ・ツリーの遅延に
対する実質的な影響がより小さいためつまたは
の16進数だけ容易に拡張することができる。典型的な
S/390乗算器は、56ビットの乗数と、60ビット
または64ビットの被乗数とを有している(たとえば
E. M. Schwartz et al., "CMOS floating-point unit f
or the S/390 Parallel Enterprise Server G4", IBM J
ournal of Research and Development, Vol. 41, No.4/
5, July/September 1997, pp. 475-488 を参照)
【0005】
【発明が解決しようとする課題】10年以上前にこの
IEEE規格が採用されて以来、56ビット仮数
ータフローが2進拡張フォーマットの113ビット仮数
の半分よりもわずかに少ないS/390浮動小数点装
置を対象として、2進拡張フォーマット(4倍長語フォ
ーマット)を最適化する方法は見いだされていない。特
に、本発明は、典型的なS/390乗算器上で2進4倍
長語フォーマットのための乗算を実現することに関す
る。
【0006】
【課題を解決するための手段】本発明は、56ビットお
よび60ビットのオペランドならびに16進ベースの
指数部をサポートするハードウェア乗算器上で、2進4
倍長語フォーマット乗算を実行するプロセスを提供す
る。このタイプのハードウェア乗算器は、S/390浮
動小数点装置で一般に使用されている。このプロセス
、4倍長語フォーマット乗算を全体として実行する
のに最小限のハードウェア演算しか必要としない上に
中間結果を、16進ベースの設計にとって有利である1
6進ベースのフォーマットで保持する。
【0007】本発明は、113ビットの仮数部を独自の
態様で分割して、4回の乗算しか要ないようにし、ま
た、16進データフローで2進オペランドを処理する
という複雑且つ追加の状況を扱う。乗数オペランドの仮
数部(以下「乗数仮数部」ともいう)を1ビット、56
ビットおよび56ビットの3つの部分に分割し、被乗数
オペランドの仮数部(以下「被乗数仮数部」ともいう)
を56ビットおよび60ビットの2つの部分に分割す
る。
【0008】S/390浮動小数点アーキテクチャは、
16進ベースのフォーマットを次のように定義する。 X=(−1)**0.F16**(Xh−64) 中、Xはオペランドの値、Sは1ビット号、Fは
数部、Xhは、64のバイアスだけ減じられて指数を
形成する指数部である。2進拡張フォーマットは、次の
ように記述される。 X=(−1)**1.F**(Xb−1638
3) 中、Xbは2進指数部を表す。米国特許第5671
06号は16進浮動小数点フォーマットを有する内部
浮動小数点データフローを使用して16進浮動小数点
フォーマットおよび2進浮動小数点フォーマットの両方
をサポートする方法を教示している。この米国特許で提
案された内部データフローは、14ビットの指数と、
8192のバイアスとを有しており、そのオペランドの
値は、次のように表現することができる。 X=(−1)**0.F16**(Xi−819
2) 中、Xiは内部指数部を表す。2進指数を16進フ
ォーマットに変換することは、その指数部を右に2ビッ
トだけシフトし、バイアス調節を適用することに等し
い。2進指数のうちシフト・アウトされる最下位2ビ
ットは、値2**0、2**1、2**2または2**
3を表現する。2進設計フォーマットにおけるこの指数
値は、内部16進ベースのフォーマットに入るとき、3
ビットまでの仮数のシフトに変換される。53ビット
長の2進仮数をこの16進フォーマットで表現するた
めには、このシフトのために追加の3ビットが必要であ
り、その結果、全部で56ビットになる。拡張フォーマ
ットの場合、これには116ビット仮数を要するで
あろう。
【0009】この分割による解決方法は、3ビット
進シフトを一方のオペランド、すなわち被乗数のみに適
用することを含んでいる。そして、この3ビットのシフ
トは両方の入力オペランドの2進シフトの組み合わせで
ある。乗数仮数を、合計で113ビットであるつの
部分、すなわち明示値1と、56ビットの高位部と、5
6ビットの低位部とに分割する。そして、被乗数仮数
を両方の入力オペランドの2進シフトの組み合わせで1
16ビット仮数に拡張し、56ビットの高位部と6
0ビットの低位部とに分割する。って、乗数仮数部
は、1、YH(56ビット)およびYL(56ビット)
表記されるつの部分を有し、被乗数仮数部は、XH
(56ビット)およびXL(60ビット)と表記される
つの部分を有する。
【0010】この分割によって拡張される2進乗算を計
算するのに4回の乗算、すなわち、YL*XL、YL*X
H、YH*XLおよびYH*XHしか必要なく、乗数のサ
イズは56×60ビットでしかない。×1の乗算は計算
が不要である。このアルゴリズムのの利点は、16進
フォーマット内での仮数の2進正規化によって2進指
の最下位2ビットがデータフロー中に維持されるこ
とであり、これはまた、それらが他の2進浮動小数点演
算について維持される方法である。
【0011】以下の詳細な説明によってこれらの改良点
および他の改良点を説明する。本発明をその利点および
特徴に関してより理解するために、以下の説明および図
面を参照されたい。
【0012】
【発明の実施の形態】本発明をさらに詳細に見ると、好
ましい実施態様を示す図1には、16進ベースの倍長語
フォーマットに最適化された浮動小数点ハードウェアの
ための、2進拡張精度フォーマットの浮動小数点乗算を
実行するプロセス・フローが示されている。このプロセ
ス・フローは、特殊数のオペランドがないかか、オペ
ランドが正規化(denormalize)されているかかを
検出するためのサブプロセスと、符号計算ステップと、
指数計算ステップと、乗数仮数部および被乗数仮数部
の分割ステップと、丸めステップと、オーバフロー検出
ステップとを含む。
【0013】乗数および被乗数入力オペランドは、符
号、指数部および仮数部を含み、これらが、入力オペラ
ンドのいずれがIEEE754規格によって定義された
特殊数0、NaNまたは無限数に等しいかかを決定
する決定ブロック段10に入力される。いずれかのオペ
ランドがこれらの特殊数のつであるならば、計算は、
特殊数ハンドラ11に進み、算術的な計算は不要であ
る。他方、いずれのオペランドもこれら3種の特殊数で
はないならば、プロセスは決定ブロック段12に進み、
ここで、いずれかのオペランドが正規化数であるか
かを決定する。いずれかのオペランドがIEEE754
規格の定義によって正規化されているならば、プロセ
スは前正規化ブロック段13に進み、ここで、オペラ
ンドを正規化し、もう1ビット余分の拡張指数範囲を
生成したのち、プロセスはマルチプレクサ15に続く。
決定ブロック段12の決定によっていずれのオペランド
正規化されていないならば、処理ブロック段14で
指数が拡張され、プロセスは、マルチプレクサ15で
前正規化経路と合流する。
【0014】そして、プロセスは4の並行な経路に分
かれる。つのオペランドの符号ビットどうしが符号計
算ブロック段16で処理される。この処理は単に符号ど
うしの排他的論理和である。つの16ビット2進指数
は、2進指数16進変換ブロック段100によって処
理される。つのオペランドの16進指数は、16進
指数計算ブロック段104に出力され、ここで、これ
らの指数を加算し、バイアスを減算する。113ビッ
被乗数仮数は、ブロック段101により、2進指
数16進変換ブロック段100からの2進シフト量情報
を使用して処理される。被乗数仮数部は、XHと表記
れる56ビット高位部と、XLと表記される60ビッ
低位部のつの部分に分割される。116ビットが
その仮数部のために使用されて、113ビット被乗数
と、2**0、2**−1、2**−2または2**−3であり
うる2進シフト量とを表す。乗数オペランドを形成する
113ビット仮数は、分割ブロック段102に入力
され、ここで、そのオペランドを、明示値1と、YHと
表記される56ビット高位部と、YLと表記される56
ビット低位部とに分割する。
【0015】前掲の米国特許第567106号では、
2進指数変換ブロック段は、つの2進指数を取り出
し、それを、以下の式にって16進指数および適切
なシフト量に変換することからるものであった。
【0016】
【表1】
【0017】表中、Xbは2進指数部を表し、Xiは、
変換された16進内部指数部を表し、Xb>>2は、2
ビット右にシフトされて最下位2ビットを切り捨てた
bであり、||は連結を表し、SIGNEXTは、Xiの
最上位ビットをXbの最上位ビットで設定し、それ未満
の有効ビットをこのビットの補数で満たすことを含む。
【0018】拡張フォーマットの場合、Xbは15ビッ
トであり、シフトが最下位2ビットを切り捨てると、1
3ビットが残る。Xiは14ビットであり、13ビット
中間結果のSIGNEXTは、以下の式によって表す
ことができる。
【0019】SIGNEXT(Xb(0:14)>>2)=Xb
(0)||Xb(0)′||Xb(1:12) ただし、′は1の補数を表す。
【0020】2進指数16進変換ブロック段100は、
両方の2進指数変換の組み合わせを実行するが、1、Y
H、YLという固定フォーマットを有する乗数仮数
と、両方の2進シフト量をその仮数表現で取る被乗数
とを用いる。以下の表2中の式は、乗数が固定フォー
マット仮数を有し、それが、後で被乗数Yの変換に
適用される補正項を要することを示す。
【0021】
【表2】
【0022】2進指数16進変換ブロック段100は、
固定フォーマットの乗数指数変換を実行し、補正項を被
乗数指数変換に送り、それがまた、2進シフト量信号を
生成し、この信号が被乗数仮数分割ブロック段101
に伝送される。
【0023】分割ブロック段101の出力XHおよびX
Lならびに分割ブロック段102の出力1、YHおよび
YLは、計算ブロック段103に入力される。この計算
処理は、4回の乗算および4回の加算の実行を含む。こ
れらの計算は、部分積P1、P2、P3およびP4、中
間和S1、S2およびS3ならびに最終積PRを生成す
るための、以下の式によって表すことができる。
【0024】1)P1=XL*YL 2)P2=XL*YH 3)S1=P2+P1 4)P3=XH*YL 5)S2=S1+P3 6)P4=XH*YH 7)S3=P4+S2 8)PR=S3+X
【0025】積は、計算ブロック段103から出力さ
れ、合流ブロック段105で、計算ブロック段104か
らの16進指数および計算ブロック段16からの符号
ビットと合流する。16進内部フォーマットで表現され
た積は、計算ブロック段106で2進フォーマットに戻
され、計算ブロック段17で丸められる。そして、その
結果が、決定ブロック段18で、オーバフローまたはア
ンダフロー状態に関してチェックされ、真ならば、固定
(fix-up)ブロック段19に送られ、偽ならば、報告結
果であると判定され、処理が完了する。
【0026】ブロック段10〜19は、好ましい実施態
様に独自のものではなく、ブロック段100〜106だ
けが独自のものである。本プロセスは、計算時間を乗算
4回分および加算4回分の待ち時間に減らす、仮数部の
独自の分割を提供する。中間結果は16進フォーマット
で維持され、それは、ハードウェア問題をデバッグする
容易さのため、16進ベース浮動小数点装置にとって利
点である。また、16進内部フォーマットを先にパイプ
ラインの一番上に伝送して、次の順番の命令とのデータ
依存を解決することができる利点もある。
【0027】好ましい実施態様の3種の代替態様が図2
〜図4に示されている。図2では、ブロック段10〜1
9ならびにブロック段104および105が図1と同じ
である第の代替態様が示されている。指数部および仮
数部の処理ブロック段が異なる。図2における第の代
態様は、つの16ビット指数部を2進指数16進変
換ブロック段200に受ける。この変換ブロック段20
0が、前掲の米国特許第567106号に記載の実
態様って被乗数および乗数の2進シフト量を別個に
計算し、それらのシフト量を分割ブロック段201およ
び202にる。これらの2進シフト量が乗数およ
び被乗数の両方で表現されるものと仮定すると、いずれ
も表現するのに116ビットを要し、56ビット部、5
6ビット部および4ビット部への分割が両方に選択さ
れ、それぞれブロック段201および202によって実
行される。被乗数仮数部の3つのをXH、XLおよ
びXGと表記し、乗数仮数部のそれらをYH、YLおよ
びYGと表記する。この結果、仮数部計算ブロック段
03は、Xの3部分×Yの部分で9回の乗算と、9個の
部分積を加算するための8回の加算とを要する。これ
は、好ましい実施態様よりもかなり低い性能になるが、
この方式は、乗数および被乗数が、パイプラインに対し
て内部的に、オペランドあたり116ビットを要する1
6進フォーマットで表現される場合に、それらを分割す
る簡潔な方法である。
【0028】図3では、ブロック段10〜19ならびに
ブロック段104および105が図1と同じである第
の代替態様が示されている。図3の2進指数16進変換
ブロック段200は、図2における第の代替態様のも
のと同じである。仮数部の処理ブロック段301〜30
が異なり、第の代替態様は、乗算器ハードウェアが
60ビットの仮数部つをサポートすることを仮定して
の代替態様を最適化したものである。図3では、被
乗数仮数部を分割ブロック段301によって56ビット
と60ビットとに分割し、これらをXHおよびXLと
する。乗数仮数部を分割ブロック段302によって5
6ビット、56ビットおよび4ビットのつの部分に分
割し、これらをそれぞれYH、YLおよびYGと表記
る。乗数仮数部の2つの部分および乗仮数部の3つ
の部分があるため、この第の代替態様の仮数部計算ブ
ロック段303は、6回の乗算を要し、また、部分積を
加算するために5回の加算を要する。これは、第の代
替態様を上回る改善であるが、図1に示す好ましい実施
態様よりはかなり遅い。
【0029】図4には、ブロック段10〜19が図1と
同じである第の代替態様が示されている。この第
代替態様は、指数計算を2進指数に対して直接実行
し、対応する16進指数なしで仮数部を113ビット
量として扱うものと仮定する。2進指数計算ブロック
段400が2進指数どうしを加算する。113ビット
被乗数仮数部を分割ブロック段401によって1ビッ
ト、56ビットおよび56ビットの各部に分割し、これ
らをそれぞれ1、XHおよびXLと表記する。113ビ
ット乗数仮数部もまた、分割ブロック段402によっ
て1ビット、56ビットおよび56ビットの各部に分割
し、これらをそれぞれ1、YHおよびYLと表記する
仮数計算ブロック段403は4回の乗算だけで積を計
算することができ、これは図1の好ましい実施態様に等
しいが、余計な暗示される1のため、より多くの加算を
要する。また、この第の代替態様は、早期にデータ依
を解決する利点はなく、ネイティブの浮動小数点装
置フォーマットが16進である場合に中間結果を非ネイ
ティブのフォーマットで保持する
【図面の簡単な説明】
【図1】好ましい実施態様の概要を示し、被乗数仮数部
を56/60ビットに分割し、乗数仮数部を1/5
6ビットに分割する、2進拡張フォーマットのための
乗算のプロセス・フローを具体的に示す図である。
【図2】第の代替態様の概要を示し、被乗数仮数部
56/5/4ビットに分割し、乗数仮数部を56/5
/4ビットに分割する、2進拡張フォーマットため
の乗算のプロセス・フローを具体的に示す図である。
【図3】第の代替態様の概要を示し、被乗数仮数部
56/60ビットに分割し、乗数仮数部を56/5
ビットに分割する、2進拡張フォーマットための乗
算のプロセス・フローを具体的に示す図である。
【図4】第の代替態様の概要を示し、被乗数仮数部
/56/56ビットに分割し、乗数仮数部を1/56
/56ビットに分割する、2進拡張フォーマットため
の乗算のプロセス・フローを具体的に示す図である。
【符号の説明】 10 決定ブロック段 11 特殊数ハンドラ 12 決定ブロック段 13 前正規化ブロック段 14 処理ブロック段 15 マルチプレクサ 16 符号計算ブロック段 17 計算ブロック段 18 決定ブロック段 19 固定ブロック段 100 2進指数16進変換ブロック段 101 分割ブロック段 102 分割ブロック段 103 計算ブロック段 104 計算ブロック段 105 合流ブロック段 106 計算ブロック段
フロントページの続き (56)参考文献 特開 平5−289851(JP,A) 特開 平9−212337(JP,A) 特開 平8−292876(JP,A) 特開 平8−55011(JP,A) 国際公開97/12317(WO,A1) (58)調査した分野(Int.Cl.7,DB名) G06F 7/38 - 7/54 G06F 7/00

Claims (10)

    (57)【特許請求の範囲】
  1. 【請求項1】進拡張精度フォーマットのためのIEE
    E754規格によって定義される浮動小数点乗算命令
    を、16進ベース倍長語フォーマットに最適化され且つ
    2進4倍長語フォーマットが113ビット仮数部を有
    するように定義する浮動小数点ハードウェアを有するコ
    ンピュータ・プロセッサ上で実行するに際し、4倍長語
    フォーマット乗算を、一連のいくつかの長精度乗算およ
    び拡張精度もしくは長精度加算として、乗数および被乗
    オペランドを用いて実行するための浮動小数点装置
    (FPU)であって、 浮動小数点乗算器を有する前記コンピュータ・プロセッ
    によって乗算を実行するためのFPUデータフロー・
    パイプラインを備え、前記パイプライン中で、前記乗数
    および被乗数オペランドが符号ビット、指数部および仮
    数部を含み、前記乗数および被乗数オペランド特殊数
    決定ブロック段に入力され、当該特殊数決定ブロック段
    が、前記オペランドのいずれかがIEEE754規格に
    よって定義される特殊数のうち0、NaN(非数)また
    は無限数に等しいかかを決定し、いずれかのオペラン
    ドが前記特殊数のつであるならば、乗算計算プロセス
    中のデータフローが特殊数ハンドラによって処理され
    ように進み、そこでは、算術的計算は不要であるが、い
    ずれのオペランドも前記特殊数のつではないならば、
    前記乗算計算プロセス中のデータフローが非正規化決定
    ブロック段に進み、当該非正規化決定ブロック段が、い
    ずれかのオペランドが正規化数ではないかかを決定
    し、いずれかのオペランドが、IEEE754規格によ
    って定義されているように非正規化されているならば、
    前記乗算計算プロセス中のデータフローが事前正規化ブ
    ロック段に進み当該事前正規化ブロック段が、当該
    ペランドを正規化し、もう1ビット余分の拡張指数
    囲を生成し、前記乗算計算プロセス中のデータフロー
    並行経路マルチプレクサ段に進むが、前記非正規化決定
    ブロック段による決定でいずれのオペランドも正規化
    されていないならば、指数拡張処理ブロック段で当該オ
    ペランドの指数部が拡張され、前記並行経路マルチプ
    レクサに送られ、当該並行経路マルチプレクサが、
    前記前正規化ブロック段からのデータフローと、前記
    指数拡張処理ブロック段からのデータフローとが合流し
    たものを受け、そこで、前記乗算計算プロセス中のデー
    タフローがの並行な経路に分かれ、前記並行な経路
    うち第1の経路が符号計算ブロック段を有し、前記並
    行な経路のうち経路2進指数16進変換ブロッ
    ク段を有し、前記並行な経路のうち経路が被乗数
    仮数分割ブロック段を有し、前記並行な経路のうち
    経路が乗数仮数分割ブロック段を有し、前記乗数
    および被乗数オペランドの符号ビットが前記符号計算ブ
    ロック段で処理され、前記乗数および被乗数オペランド
    16ビット長2進指数が前記2進指数16進
    変換ブロック段によって2つの16進指数部にそれぞれ
    変換され、当該2進指数16進変換ブロック段からの、
    前記乗数および被乗数オペランドの16進指数部が前記
    第2の経路中の16進指数計算ブロック段に出力され、
    当該16進指数計算ブロック段が、前記乗数および被乗
    数オペランドの16進指数部を加算し且つバイアスを減
    算し、前記被乗数仮数分割ブロック段が、前記並行経
    マルチプレクサから入力された前記被乗数オペラン
    ドの113ビットの仮を受け、前記乗数仮数部分割
    ブロック段が、前記並行経路マルチプレクサ段から入力
    された前記乗オペランドの113ビットの仮数部を受
    け、前記第の経路と前記第の経路とが仮数部計算ブ
    ロック段で合流して、当該仮数部計算ブロック段が乗算
    および加算を実行して、部分積および中間和ならびに最
    終積を提供し、当該最終積が前記仮数部計算ブロック段
    の出力であり、前記仮数部計算ブロック段の出力と、前
    16進指数計算ブロック段からの前記16進指数
    と、前記符号計算ブロック段からの前記符号ビットとが
    合流ブロック段で合流して積を提供し、当該積が16進
    内部フォーマットで表現され、2進変換ブロック段で2
    進フォーマットに戻され、丸められることを特徴とす
    、前記浮動小数点装置。
  2. 【請求項2】被乗数仮数部分割ブロック段前記
    乗数オペランドの仮数部を56/60ビット割し、
    乗数仮数部分割ブロック段前記乗数オペランドの
    仮数部を1/56/56ビット割し、前記2進指数
    16進変換ブロック段からのシフト量情報が、前記被乗
    数仮数部分割ブロック段に送られる、請求項1記載の浮
    動小数点装置。
  3. 【請求項3】前記仮数部計算ブロック段が4回の乗算お
    よび4回の加算を実行して、部分積および中間和ならび
    に最終積を提供する請求項記載の浮動小数点装置。
  4. 【請求項4】前記被乗数仮数部分割ブロック段が前記
    乗数オペランドの仮数部を56/56/4ビット
    し、前乗数仮数部分割ブロック段が前記乗数オペラン
    ドの仮数部を56/56/4ビット割す請求項
    記載の浮動小数点装置。
  5. 【請求項5】前記仮数部計算ブロック段が9回の乗算お
    よび8回の加算を実行して、部分積および中間和ならび
    に最終積を提供する請求項記載の浮動小数点装置。
  6. 【請求項6】被乗数仮数部分割ブロック段が前記
    乗数オペランドの仮数部を56/60ビット割し、
    乗数仮数部分割ブロック段が前記乗数オペランドの
    仮数部を56/56/4ビット割す請求項
    載の浮動小数点装置。
  7. 【請求項7】前記仮数部計算ブロック段が6回の乗算お
    よび5回の加算を実行して、部分積および中間和ならび
    に最終積を提供する請求項記載の浮動小数点装置。
  8. 【請求項8】前記2進指数16進変換ブロック段からの
    シフト量情報が、前記被乗数仮数部分割ブロック段およ
    び前記乗数仮数部分割ブロック段に送られる、請求項4
    から請求項7のいずれか1項に記載の浮動小数点装置。
  9. 【請求項9】2進拡張精度フォーマットのためのIEE
    E754規格によって定義される浮動小数点乗算命令
    を、16進ベース倍長語フォーマットに最適化され、且
    つ2進4倍長語フォーマットが113ビットの仮数部を
    有するように定義する浮動小数点ハードウェアを有する
    コンピュータ・プロセッサ上で実行するに際し、4倍長
    語フォーマット乗算を、一連のいくつかの長精度乗算お
    よび拡張精度もしくは長精度加算として、乗数および被
    乗数オペランドを用いて実行するための浮動小数 点装置
    (FPU)であって、 浮動小数点乗算器を有する前記コンピュータ・プロセッ
    サによって乗算を実行するためのFPUデータフロー・
    パイプラインを備え、前記パイプライン中で、前記乗数
    および被乗数オペランドが符号ビット、指数部および仮
    数部を含み、前記乗数および被乗数オペランドが特殊数
    決定ブロック段に入力され、当該特殊数決定ブロック段
    が、前記オペランドのいずれかがIEEE754規格に
    よって定義される特殊数のうち0、NaN(非数)また
    は無限数に等しいか否かを決定し、いずれかのオペラン
    ドが前記特殊数の1つであるならば、乗算計算プロセス
    中のデータフローが特殊数ハンドラによって処理される
    ように進み、そこでは、算術的計算は不要であるが、い
    ずれのオペランドも前記特殊数の1つではないならば、
    前記乗算計算プロセス中のデータフローが非正規化決定
    ブロック段に進み、当該非正規化決定ブロック段が、い
    ずれかのオペランドが非正規化数ではないか否かを決定
    し、いずれかのオペランドが、IEEE754規格によ
    って定義されているように非正規化されているならば、
    前記乗算計算プロセス中のデータフローが事前正規化ブ
    ロック段に進み、当該事前正規化ブロック段が、当該オ
    ペランドを正規化し、もう1ビット余分の拡張指数部範
    囲を生成し、前記乗算計算プロセス中のデータフローが
    並行経路マルチプレクサ段に進むが、前記非正規化決定
    ブロック段による決定でいずれのオペランドも非正規化
    されていないならば、指数拡張処理ブロック段で当該オ
    ペランドの指数部が拡張されて、前記並行経路マルチプ
    レクサ段に送られ、当該並行経路マルチプレクサ段が、
    前記事前正規化ブロック段からのデータフローと、前記
    指数拡張処理ブロック段からのデータフローとが合流し
    たものを受け、そこで、前記乗算計算プロセス中のデー
    タフローが4つの並行な経路に分かれ、前記並行な経路
    のうち第1の経路が符号計算ブロック段を有し、前記並
    行な経路のうち第2の経路が2進指数計算ブロック段を
    有し、前記並行な経路のうち第3の経路が被乗数仮数部
    分割ブロック段を有し、前記並行な経路のうち第4の経
    路が乗数仮数部分割ブロック段を有し、前記乗数および
    被乗数オペランドの符号ビットが前記符号計算ブロック
    段で処理され、前記乗数および被乗数オペランドの2つ
    の16ビット長2進指数部が前記2進指数計算ブロック
    段によって加算され且つバイアスを減算され、前記被乗
    数仮数部分割ブ ロック段が、前記並行経路マルチプレク
    サ段から入力された前記被乗数オペランドの113ビッ
    トの仮数部を受けて、当該 被乗数オペランドの仮数部を
    1/56/56ビット割し、前記乗数仮数部分割ブ
    ロック段が、前記並行経路マルチプレクサ段から入力さ
    れた前記乗数オペランドの113ビットの仮数部を受け
    て、当該乗数オペランドの仮数部を1/56/56ビッ
    割し、前記第3の経路と前記第4の経路とが仮数
    部計算ブロック段で合流して、当該仮数部計算ブロック
    段が乗算および加算を実行して、部分積および中間和な
    らびに最終積を提供し、当該最終積が前記仮数部計算ブ
    ロック段の出力であり、前記仮数部計算ブロック段の出
    力と、前記2進指数計算ブロック段からの前記2進指数
    部と、前記符号計算ブロック段からの前記符号ビットと
    が合流ブロック段で合流して積を提供し、当該積が2進
    フォーマットで表現され、丸められることを特徴とす
    る、前記浮動小数点装置。
  10. 【請求項10】前記仮数部計算ブロック段が4回の乗算
    および5回の加算を実行して、部分積および中間和なら
    びに最終積を提供する請求項記載の浮動小数点装
    置。
JP04635999A 1998-03-04 1999-02-24 浮動小数点装置 Expired - Fee Related JP3163072B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/034,718 US6055554A (en) 1998-03-04 1998-03-04 Floating point binary quad word format multiply instruction unit
US09/034718 1998-03-04

Publications (2)

Publication Number Publication Date
JPH11296346A JPH11296346A (ja) 1999-10-29
JP3163072B2 true JP3163072B2 (ja) 2001-05-08

Family

ID=21878160

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04635999A Expired - Fee Related JP3163072B2 (ja) 1998-03-04 1999-02-24 浮動小数点装置

Country Status (3)

Country Link
US (1) US6055554A (ja)
JP (1) JP3163072B2 (ja)
KR (1) KR100317767B1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6829627B2 (en) * 2001-01-18 2004-12-07 International Business Machines Corporation Floating point unit for multiple data architectures
FR2853425B1 (fr) * 2003-04-07 2006-01-13 Atmel Corp Sequence de multiplication efficace pour operandes a grands nombres entiers plus larges que le materiel multiplicateur
US20090198758A1 (en) * 2008-01-31 2009-08-06 International Business Machines Corporation Method for sign-extension in a multi-precision multiplier
KR101490153B1 (ko) * 2010-11-30 2015-02-05 엠.에스. 라마이아 스쿨 오브 어드밴스드 스터디스 멀티코어 프로세서를 사용하는 웨이블릿 변환
US11175394B2 (en) 2019-03-27 2021-11-16 Raytheon Company Binary to quad phase generator
US10990389B2 (en) 2019-04-29 2021-04-27 Micron Technology, Inc. Bit string operations using a computing tile
CN111198672B (zh) * 2019-12-30 2022-03-25 华南师范大学 一种基于二元扩域的点加和倍点电路及其控制方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4594679A (en) * 1983-07-21 1986-06-10 International Business Machines Corporation High speed hardware multiplier for fixed floating point operands
US5687106A (en) * 1995-03-31 1997-11-11 International Business Machines Corporation Implementation of binary floating point using hexadecimal floating point unit
US5740093A (en) * 1995-12-20 1998-04-14 Intel Corporation 128-bit register file and 128-bit floating point load and store for quadruple precision compatibility
JPH09269891A (ja) * 1996-04-01 1997-10-14 Hitachi Ltd 部分積加算方法および装置、浮動小数点乗算方法および装置、浮動小数点積和演算方法および装置

Also Published As

Publication number Publication date
JPH11296346A (ja) 1999-10-29
US6055554A (en) 2000-04-25
KR100317767B1 (ko) 2001-12-22
KR19990077418A (ko) 1999-10-25

Similar Documents

Publication Publication Date Title
JP3761977B2 (ja) 遅延整合技術の利用によりクリティカル・パスを減少させた浮動小数点型掛け算器及びその演算方法
US6847985B1 (en) Floating point divide and square root processor
US6292886B1 (en) Scalar hardware for performing SIMD operations
JP2651267B2 (ja) 演算処理装置及び演算処理方法
US6751644B1 (en) Method and apparatus for elimination of inherent carries
US5148386A (en) Adder-subtracter for signed absolute values
Thompson et al. A 64-bit decimal floating-point adder
US6549926B1 (en) SRT divider having several bits of each partial remainder one-hot encoded to minimize the logic levels needed to estimate quotient bits
JP3313560B2 (ja) 浮動小数点演算処理装置
JP3163072B2 (ja) 浮動小数点装置
Erle et al. Decimal floating-point multiplication
Wang et al. Hardware designs for decimal floating-point addition and related operations
EP1052568B1 (en) Three input split-adder
Gök et al. Multi-functional floating-point MAF designs with dot product support
JPH04355827A (ja) 開平演算装置
EP1282034A2 (en) Elimination of rounding step in the short path of a floating point adder
JP3014385B1 (ja) S/390プロセッサにおける2進4倍長語フォ―マット乗算命令の分割
US5416733A (en) Apparatus for finding quotient in a digital system
JP3517162B2 (ja) 除算・開平演算装置
Gopal Design and performance analysis of high throughput and low latency double precision floating point division on FPGA
JP2972326B2 (ja) 平方根計算装置
Ercegovac et al. On-line scheme for normalizing a 3-D vector
JP3187402B2 (ja) 浮動小数点データ加減算回路
US7516172B1 (en) Method for finding quotient in a digital system
JPH0667852A (ja) 除算器

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees