JP3014385B1 - S/390プロセッサにおける2進4倍長語フォ―マット乗算命令の分割 - Google Patents

S/390プロセッサにおける2進4倍長語フォ―マット乗算命令の分割

Info

Publication number
JP3014385B1
JP3014385B1 JP11047468A JP4746899A JP3014385B1 JP 3014385 B1 JP3014385 B1 JP 3014385B1 JP 11047468 A JP11047468 A JP 11047468A JP 4746899 A JP4746899 A JP 4746899A JP 3014385 B1 JP3014385 B1 JP 3014385B1
Authority
JP
Japan
Prior art keywords
block stage
bit
mantissa
stage
multiplier
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
JP11047468A
Other languages
English (en)
Other versions
JP2000250736A (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
Priority to JP11047468A priority Critical patent/JP3014385B1/ja
Application granted granted Critical
Publication of JP3014385B1 publication Critical patent/JP3014385B1/ja
Publication of JP2000250736A publication Critical patent/JP2000250736A/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

【要約】 【課題】特に、本発明は、典型的なS/390乗算器に
おける2進4倍長語フォーマットのための乗算を実現す
ることに関する。 【解決手段】4倍長フォーマット乗算は、一連のいくつ
かの長い精度乗算および拡張精度または長い精度加算と
して実行しなければならない。S/390の16進4倍
長語フォーマットは、112ビット仮数部を有し、二つ
の56ビット部に容易に分割することができるため、2
進フォーマットよりも実現しやすい。しかし、113ビ
ット仮数部は、二つの分割部をちょうど超えてしまい、
第三の分割部を要することになる。拡張精度乗算の場
合、各分割部が互いに乗じられるため、二つの分割部が
あるならば、4回の乗算しか要らないが、三つの分割部
分がある場合、乗算は9回に増える。乗数オペランドの
仮数部を1ビット、56ビットおよび56ビットの3群
に分割し、被乗数オペランドの仮数部を56ビットおよ
び60ビットの2群に分割する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータおよ
びコンピュータ・システムならびにその浮動小数点装置
に関し、特に、2進4倍長語フォーマットによる乗算の
浮動小数点演算の実行に関する。
【0002】
【従来の技術】「2進浮動小数点演算のIEEE規格
(IEEE Standard for Binary Floating-Point Ari
thmetic」(IEEE754規格)は、1ビットの符
号、15ビット以上の指数部および64ビット以上の仮
数部によって表現を指定する「二重拡張」と呼ばれるフ
ォーマットを定義している。標準委員会の間では、より
制限的であるが、二重拡張フォーマットのサブセットで
ある4倍長語フォーマットを採用することが議論されて
きた。いくつかの製造業者が、Hewlett-PackardのPA
−RISC1.1アーキテクチャおよびIBMのS/3
90をはじめとする、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進倍長語の精度はハードウェア中で最適化さ
れ、これは、IEEE754規格倍長語フォーマットに
合わせて最適化する他の製造業者と同様である。理由
は、いずれのフォーマットも表現するのに64ビットを
要するからである。16進倍長語フォーマットは、1ビ
ットの符号情報、7ビットの指数部および56ビットの
仮数部を含む。S/390浮動小数点装置のデータフロ
ーは通常、56ビットのオペランドに最適化されてい
る。乗算器が他の目的、たとえば除算に使用されるなら
ば、その乗算器はさらなる保護ビットをいくつか有する
かもしれない。性能最適化した乗算器の実現態様では、
オペランドの一方、すなわち乗数は、一つの追加ビット
がカウンタ・ツリーの全遅延に対して劇的な影響を及ぼ
すため、いかなる保護ビット分も拡張されない。しか
し、他方のオペランド、すなわち被乗数は、カウンタ・
ツリーの遅延に対する実質的な影響がより小さく、一つ
または二つの16進数だけ容易に拡張することができ
る。典型的なS/390乗算器は、56ビットの乗数
と、60ビットまたは64ビットの被乗数とを有してい
る(たとえば「CMOS floating-point unit for the
S/390 Parallel Enterprise ServerG4」E. M. S
chwartz, L. Sigal, T. J. McPherson, IBM Jou
rnal of Reserch and Development, Vol. 41, N
o. 4/5, July/September 1997, pp. 475-488を参
照すること)。
【0005】
【発明が解決しようとする課題】10年以上の前にこの
IEEE規格が採用されて以来、56ビット仮数データ
フローが2進拡張フォーマットの113ビット仮数の半
分よりもわずかに少ないシステムで2進拡張フォーマッ
ト(4倍長語フォーマット)をS/390浮動小数点装
置に最適化する方法は見いだされていない。特に、本発
明は、典型的なS/390乗算器における2進4倍長語
フォーマットのための乗算を実現することに関する。
【0006】
【課題を解決するための手段】本発明は、56ビットお
よび60ビットのオペランドならびに16進ベースの指
数部をサポートするハードウェア乗算器において2進4
倍長語フォーマット乗算を実行する方法を提供する。こ
のタイプのハードウェア乗算器は、S/390浮動小数
点装置で一般に使用されている。この方法は、全4倍長
語フォーマット乗算を実行するのに最小限のハードウェ
ア演算を提供し、なおも、中間結果を、16進ベースの
設計にとって有利である16進ベースのフォーマットで
保持する。
【0007】本発明は、113ビットの仮数部を独自の
方法で分割して、4回の乗算しか要らないようにし、ま
た、16進データフローで2進オペランドを実行するさ
らなる課題を扱う。乗数オペランドの仮数部を1ビッ
ト、56ビットおよび56ビットの3群に分割し、被乗
数オペランドの仮数部を56ビットおよび60ビットの
2群に分割する。
【0008】S/390浮動小数点アーキテクチャは、
X=(−1)***0.F*16**(Xh−64)(式
中、Xはオペランドの値であり、Sは1ビット符号であ
り、Fは仮数であり、Xhは、64のバイアスだけ減じ
られて指数を形成する標数である)によって記述される
16進ベースのフォーマットを定義する。2進拡張フォ
ーマットは、X=(−1)***1.F***(Xb−1
6383)(式中、Xbは2進標数を表す)によって記
述されるフォーマットを有する。米国特許第5,68
7,106号[Schwarzら]は、内部浮動小数点データ
フローを16進浮動小数点フォーマットで使用して16
進浮動小数点フォーマットおよび2進浮動小数点フォー
マットの両方をサポートする方法を教示している。発案
された内部データフローは、14ビットの指数部と、X
=(−1)***0.F*16**(Xi−8192)(式
中、Xiは内部標数を表す)によって表現することがで
きる8192のバイアスとを有している。2進指数を1
6進フォーマットに変換することは、標数を右に2ビッ
トだけシフトし、バイアス調節を適用することに等し
い。2進指数のうち押し出される最下位2ビットは、値
**0、2**1、2**2または2**3を表現する。2進
設計フォーマットにおけるこの指数値は、内部16進ベ
ースのフォーマットに入るとき、3ビットまでの仮数の
シフトに変換される。53ビット長の2進仮数をこの1
6進フォーマットで表現するためには、全部で56ビッ
トになるこのシフトのために三つのさらなるビットが必
要である。拡張フォーマットの場合、これには116ビ
ット仮数を要するであろう。
【0009】分割方法は、3ビット2進シフトを一方の
オペランド、すなわち被乗数に適用するだけである。そ
して、使用する3ビットのシフトは両方の入力オペラン
ドの2進シフトの組み合わせである。乗数仮数を、合計
で113ビットである三つの部分、すなわち明示値1
と、56ビット高位部と、56ビット低位部とに分け
る。そして、被乗数仮数を両方の入力オペランドの2進
シフトの組み合わせで116ビット仮数に拡張し、56
ビット部と60ビット部とに分割する。したがって、乗
数は、1、YH(56ビット)およびYL(56ビッ
ト)と指定される三つの部分を有し、被乗数は、XH
(56ビット)およびXL(60ビット)と指定される
二つの部分を有する。
【0010】この分割によって拡張される2進乗算を計
算するのに4回の乗算、すなわち、YL*XL、YL*
H、YH*XLおよびYH*XHしか必要なく、乗数のサ
イズは56×60ビットでしかない。×1の乗算は計算
が不要である。このアルゴリズムのもう一つの利点は、
16進フォーマット内での仮数の2進正規化によって2
進指数の最下位2ビットがデータフロー中に維持される
ことであり、これはまた、それらが他の2進浮動小数点
演算について維持される方法である。
【0011】以下の詳細な説明によってこれらの改良点
および他の改良点を説明する。本発明をその利点および
特徴に関してより理解するために、以下の説明および図
面を参照されたい。
【0012】複数の図面を使用する場合には、説明しや
すくするため、図面をいくつかの部分に分割し、原則と
して、図面の一番上の部分を最初の紙面に配置し、その
後の紙面を下および横方向に続けていることに留意され
たい。
【0013】
【発明の実施の形態】本発明をさらに詳細に見ると、好
ましい実施態様を示す図1には、16進ベースの倍長語
フォーマットに最適化された浮動小数点ハードウェアの
ための、2進拡張精度フォーマットの浮動小数点乗算を
実行するプロセス・フローが示されている。プロセス・
フローは、特殊ケース・オペランドがないかどうか、オ
ペランドが脱正規化されているかどうかを検出するため
のサブプロセスと、符号計算ステップと、指数計算ステ
ップと、乗数仮数部および被乗数仮数部の分割ステップ
と、丸めステップと、オーバフロー検出ステップとを含
む。
【0014】乗数および被乗数入力オペランドは、符
号、指数部および仮数部を含み、これらが、入力オペラ
ンドのいずれがIEEE754特殊数0、NaN(非
数)または無限数に等しいかどうかを決定する決定ブロ
ック段10に入力される。いずれかのオペランドがこれ
らの特殊数の一つであるならば、計算は、特殊数ハンド
ラ11に進み、算術的な計算は不要である。いずれもこ
れら3種の特殊数ではないならば、プロセスは決定ブロ
ック段12に進み、ここで、いずれかのオペランドが脱
正規化数であるかどうかを決定する。いずれかのオペラ
ンドがIEEE754規格の定義によって脱正規化され
ているならば、プロセスは前正規化ブロック段に進み、
ここで、オペランドを正規化し、もう1ビットの拡張指
数範囲を生成したのち、マルチプレクサ15に続く。決
定ブロック段12の決定によっていずれのオペランドも
脱正規化されていないならば、処理ブロック段14で指
数が拡張され、プロセスは、マルチプレクサ15で前正
規化経路と合流する。
【0015】そして、プロセスは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進シフト量とを表す。乗数オペランド1
13ビット仮数は、分割ブロック段102に入力され、
ここで、そのオペランドを、明示値1と、YHと指定さ
れる56ビット高位部と、YLと指定される56ビット
低位部とに分ける。
【0016】米国特許第5,687,106号[Schwar
zら]では、2進指数変換ブロック段は、一つの2進指
数を取り出し、それを、以下の式にしたがって16進指
数および適切なシフト量に変換することからなるもので
あった。
【0017】
【表1】
【0018】表中、Xbは2進標数を表し、Xiは、変
換された16進内部標数を表し、Xb>>2は、切り捨
てによって2ビット右にシフトされたXbであり、||は
連結を表し、SIGNEXTは、Xiの最上位ビットを
Xbの最上位ビットで設定し、それ未満の有効ビットを
この補ビットで満たすことを含む。
【0019】拡張フォーマットの場合、Xbは15ビッ
トであり、シフトが最下位2ビットを切り捨てると、1
3ビットが残る。Xiは14ビットであり、13ビット
中間結果のSIGNEXTは、以下の式によって表すこ
とができる。
【0020】SIGNEXT(Xb(0:14)>>2)=Xb
(0)||Xb(0)′||Xb(1:12) ただし、′は1の補数を表す。
【0021】2進指数16進変換ブロック段100は、
両方の2進指数変換の組み合わせを実行するが、形態
1、YH、YLの固定乗数仮数と、両方の2進シフト量
をその仮数表現で取る被乗数とを用いる。以下の式は、
乗数が固定フォーマット仮数を有し、それが、後で被乗
数Yの変換に適用される補正項を要することを示す。
【0022】
【表2】
【0023】2進指数16進変換ブロック段100は、
固定乗数指数変換を実行し、補正項を被乗数指数変換に
送り、それがまた、2進シフト量信号を生成し、この信
号が被乗数仮数分割ブロック段101に伝送される。
【0024】分割ブロック段101の出力XHおよびX
Lならびに分割ブロック段102の出力1、YHおよび
YLは、計算ブロック段103に入力される。計算処理
は、4回の乗算および4回の加算の実行を含む。これら
の計算は、部分積P1、P2、P3およびP4、中間和
S1、S2およびS3ならびに最終積PRを出す、以下
の式によって表すことができる。
【0025】 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
【0026】積は、計算ブロック段103から出力さ
れ、合流ブロック段105で、計算ブロック段104か
らの16進指数および計算ブロック段16からの符号ビ
ットと合流する。16進内部フォーマットで表現された
積は、計算ブロック段106で2進フォーマットに戻さ
れ、計算ブロック段17で丸められる。そして、その結
果が、決定ブロック段18で、オーバフローまたはアン
ダフロー状態に関してチェックされ、真ならば、固定ブ
ロック段19に送られ、偽ならば、報告結果であると判
定され、処理が完了する。
【0027】ブロック段10〜19は、好ましい実施態
様に独自のものではなく、ブロック段100〜106だ
けが独自のものである。発案された方法は、計算時間を
乗算4回分および加算4回分の待ち時間に減らす、仮数
部の独自の分割を提供する。中間結果は16進フォーマ
ットで維持され、それは、ハードウェア問題をデバッグ
する容易さのため、16進ベース浮動小数点装置にとっ
て利点である。また、16進内部フォーマットを先にパ
イプラインの一番上に伝送して、次の順番の命令とのデ
ータ依存を解決することができる利点もある。
【0028】好ましい実施態様の3種の代替態様が図
2、3および4に示されている。図2では、ブロック段
10〜19ならびにブロック段104および105が図
1と同じである第一の代替態様が示されている。指数部
および仮数部の処理ブロック段が異なる。図2における
第一の代替方法は、二つの16ビット指数部を2進指数
16進変換ブロック段200に受ける。この変換ブロッ
ク段200が、米国特許第5,687,106号[Schw
arzら]に記載の実施方法にしたがって被乗数および乗
数の2進シフト量を別個に計算し、それらのシフト量を
分割ブロック段201および202に送る。2進シフト
量が乗数および被乗数の両方で表現されるものと仮定す
ると、いずれも表現するのに116ビットを要し、56
ビット部、56ビット部および4ビット部への分割が両
方に選択され、それぞれブロック段201および202
によって実行される。被乗数の3部をXH、XLおよび
XGと指定し、乗数部のそれらをYH、YLおよびYG
と指定する。この結果、仮数部計算ブロック段は、Xの
3部分×Yの3部分で9回の乗算と、9個の部分積を加
算するための8回の加算とを要する。これは、好ましい
実施態様よりもかなり低い性能になるが、この方式は、
乗数および被乗数が、パイプラインに対して内部的に、
オペランドあたり116ビットを要する16進フォーマ
ットで表現される場合に、それらを分割する簡潔な方法
である。
【0029】図3には、ブロック段10〜19ならびに
ブロック段104および105が図1と同じである第二
の代替態様が示されている。図3の2進指数16進変換
ブロック段200は、図2における第一の代替方法のも
のと同じである。仮数部の処理ブロック段が異なり、第
二の代替方法は、乗算器ハードウェアが60ビットの仮
数部一つをサポートすることを仮定して第一の代替方法
を最適化したものである。図3では、被乗数を分割ブロ
ック段301によって56ビットと60ビットとに分割
し、これらをXHおよびXLと指定する。乗数を分割ブ
ロック段302によって56ビット、56ビットおよび
4ビットの三つの部分に分割し、これらをそれぞれY
H、YLおよびYGと指定する。二つの被乗数部および
三つの乗数部があるため、この第二の代替方法の仮数部
計算ブロック段303は、6回の乗算を要し、また、部
分積を加算するために5回の加算を要する。これは、第
一の代替態様を上回る改善であるが、図1に示す好まし
い実施態様よりはかなり遅い。
【0030】図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と呼ぶ。仮数計算ブロック段は4
回の乗算だけで積を計算することができ、これは図1の
好ましい実施態様に等しいが、余計な暗示される1のた
め、より多くの加算を要する。また、この第三の代替態
様は、早期にデータ依存を解決する利点はなく、本来の
浮動小数点装置フォーマットが16進である場合に中間
結果を非本来のフォーマットで含む。
【0031】本発明の好ましい実施態様を記載したが、
当業者であれば、現在および今後、請求の範囲に該当す
る種々の改良および機能強化を加えうることを理解する
であろう。請求の範囲は、最初に開示した本発明の適切
な保護を維持するように解釈されるべきである。
【0032】まとめとして、本発明の構成に関して以下
の事項を開示する。 (1)4倍長語フォーマットのための2進拡張精度フォ
ーマットのIEEE754規格によって定義される浮動
小数点乗算命令を、16進ベース倍長語フォーマットに
最適化され、2進4倍長語フォーマットが113ビット
仮数部を有するように定義する浮動小数点ハードウェア
を有し、4倍長語フォーマット乗算を、一連のいくつか
の長い精度乗算および拡張精度もしくは長い精度加算と
して、コンピュータ・プロセッサにより、乗数および被
乗数入力を用いて実行しなければならないコンピュータ
・プロセッサ上で実行するための浮動小数点装置(FP
U)を使用する方法であって、浮動小数点乗算器を有す
る前記中央処理装置によって乗算を実行するためのFP
Uデータフロー・パイプライン中に、符号、指数部およ
び仮数部を含む乗数および被乗数入力オペランドを受
け、これらの符号、指数部および仮数部を決定ブロック
段に入力し、この決定ブロック段により、前記入力オペ
ランドのいずれかがIEEE754特殊数0、NaN
(非数)または無限数に等しいかどうかを決定するステ
ップと、いずれかのオペランドが前記特殊数の一つであ
るならば、算術的計算は不要であるため、前記データフ
ローを特殊数ハンドラによる処理に送るステップと、い
ずれのオペランドも前記3種の特殊数の一つではないな
らば、データフロー中のオペランドを決定ブロック段に
進め、この決定ブロック段により、いずれかのオペラン
ドが脱正規化数ではないかどうかを決定するステップ
と、いずれかのオペランドが、IEEE754規格によ
る定義で脱正規化されているならば、データフロー処理
を前正規化ブロック段に送り、このブロック段により、
前記オペランドを正規化し、もう1ビットの拡張指数範
囲を生成し、処理のデータフローを並行経路マルチプレ
クサ段に送るステップと、前記決定ブロック段による決
定でいずれのオペランドも脱正規化されていないなら
ば、拡張処理ブロック段で前記数の指数部を拡張するス
テップと、前記データフローを前記並行経路マルチプレ
クサに送り、このマルチプレクサにより、前記前正規化
経路からのデータフローと、前記拡張処理ブロック段か
らのデータフローとが合流したものを受けるステップ
と、処理のための前記データフローを、一つが符号計算
ブロック段を有し、第二のものが指数変換ブロック段を
有し、第三のものが被乗数仮数分割ブロック段を有し、
第四のものが乗数仮数分割ブロック段を有する4本の並
行な経路に分け、前記二つのオペランドの符号ビットを
前記符号計算ブロック段で処理し、前記オペランドの二
つの16ビット符号指数を前記指数変換ブロック段によ
って処理し、前記被乗数を被乗数仮数分割ブロック段で
分割し、このブロック段により、前記マルチプレクサか
ら入力される113ビット被乗数仮数を受けるステップ
と、113ビット乗数入力を有する前記第四の経路の中
の前記乗数を乗数仮数分割ブロック段で分割するステッ
プと、前記第三の経路からのデータフローと前記第四の
経路からのデータフローとを計算ブロック段で合流させ
て、この計算ブロック段によって乗算および加算を実行
して、部分積および中間和ならびに最終的には最終積を
提供して、計算ブロック段の出力を提供するステップ
と、前記計算ブロック段の出力と、前記第二の経路から
の前記指数と、前記第一の経路からの前記符号ビットと
を合流ブロック段で合流させて積を提供し、この積を1
6進内部フォーマットで表現し、計算ブロック段で2進
フォーマットに戻し、丸めるステップと、を含むことを
特徴とする方法。 (2)指数変換段を有する前記並行な経路の前記第二の
ものが2進指数16進変換ブロック段であり、前記並行
な経路の前記第三のものが被乗数仮数56/60ビット
分割ブロック段を有し、前記並行な経路の前記第四のも
のが乗数仮数1/56/56ビット分割ブロック段を有
し、前記二つのオペランドの符号ビットを前記符号計算
ブロック段で処理し、前記オペランドの二つの16ビッ
ト2進指数を2進指数16進変換ブロック段によって処
理し、この段から、前記二つのオペランドの16進指数
を前記第二の並行な経路の16進指数計算ブロック段に
出力し、この段が、前記指数を加算し、バイアスを減算
し、この2進指数16進変換ブロック段から、シフト
を、被乗数仮数ビット分割ブロック段を有する前記並行
な経路の第三のものに送り、これがまた、前記マルチプ
レクサから入力される113ビット被乗数仮数を受け、
この第四の経路の中で、113ビット乗数入力を、乗数
仮数ビット分割ブロック段を有する前記並行な経路の第
四のものに提供し、前記第三の経路と前記第四の経路と
が計算ブロック段で合流して、この計算ブロック段が乗
算および加算を実行して部分積および中間和ならびに最
終的には最終積を提供し、この最終積が計算ブロック段
の出力であり、前記計算ブロック段の出力と、前記第二
の経路からの前記16進指数と、前記第一の経路からの
前記符号ビットとを合流ブロック段で合流して積を提供
し、この積を16進内部フォーマットで表現し、計算ブ
ロック段で2進フォーマットに戻し、丸める上記(1)
記載の方法。 (3)前記被乗数を56ビット高位部と60ビット低位
部との二部に分割する上記(1)記載の方法。 (4)前記第四の乗数分割ブロック段の乗数オペランド
113ビット仮数が、前記オペランドを明示値1と、5
6ビット高位部と、56ビット低位部とに分ける上記
(3)記載の方法。 (5)前記並行な経路の前記第三のものが被乗数仮数5
6/60ビット分割ブロック段を有し、前記並行な経路
の前記第四のものが乗数仮数1/56/56ビット分割
ブロック段を有する上記(2)記載の方法。 (6)前記計算ブロック段が4回の乗算および4回の加
算を実行して、部分積および中間和ならびに最終積を提
供する上記(5)記載の方法。 (7)前記並行な経路の前記第三のものが被乗数仮数5
6/56/4ビット分割ブロック段を有し、前記並行な
経路の前記第四のものが乗数仮数56/56/4ビット
分割ブロック段を有する上記(2)記載の方法。 (8)前記計算ブロック段が9回の乗算および8回の加
算を実行して、部分積および中間和ならびに最終積を提
供する上記(7)記載の方法。 (9)前記並行な経路の前記第三のものが被乗数仮数5
6/60ビット分割ブロック段を有し、前記並行な経路
の前記第四のものが乗数仮数56/56/4ビット分割
ブロック段を有する上記(2)記載の方法。 (10)前記計算ブロック段が6回の乗算および5回の
加算を実行して、部分積および中間和ならびに最終積を
提供する上記(9)記載の方法。 (11)前記並行な経路の前記第三のものが被乗数仮数
1/56/56ビット分割ブロック段を有し、前記並行
な経路の前記第四のものが乗数仮数1/56/56ビッ
ト分割ブロック段を有する上記(1)記載の方法。 (12)前記計算ブロック段が4回の乗算および5回の
加算を実行して、部分積および中間和ならびに最終積を
提供する上記(11)記載の方法。
【図面の簡単な説明】
【図1】好ましい実施態様の概要を示し、被乗数を56
ビット部と60ビット部とに分割し、乗数を1ビット
部、56ビット部および56ビット部に分割する、2進
拡張フォーマットのための乗算のプロセス・フローを具
体的に示す図である。
【図2】第一の代替態様の概要を示し、被乗数を56ビ
ット部、56ビット部および4ビット部に分割し、乗数
を56ビット部、56ビット部および4ビット部に分割
する、2進拡張フォーマットための乗算のプロセス・フ
ローを具体的に示す図である。
【図3】第二の代替態様の概要を示し、被乗数を56ビ
ット部および60ビット部に分割し、乗数を56ビット
部、56ビット部および4ビット部に分割する、2進拡
張フォーマットための乗算のプロセス・フローを具体的
に示す図である。
【図4】第三の代替態様の概要を示し、被乗数を1ビッ
ト部、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)参考文献 特開 平10−207693(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 7/00 G06F 7/52 310

Claims (12)

    (57)【特許請求の範囲】
  1. 【請求項1】4倍長語フォーマットのための2進拡張精
    度フォーマットのIEEE754規格によって定義され
    る浮動小数点乗算命令を、16進ベース倍長語フォーマ
    ットに最適化され、2進4倍長語フォーマットが113
    ビット仮数部を有するように定義する浮動小数点ハード
    ウェアを有し、4倍長語フォーマット乗算を、一連のい
    くつかの長い精度乗算および拡張精度もしくは長い精度
    加算として、コンピュータ・プロセッサにより、乗数お
    よび被乗数入力を用いて実行しなければならないコンピ
    ュータ・プロセッサ上で実行するための浮動小数点装置
    (FPU)を使用する方法であって、 浮動小数点乗算器を有する前記中央処理装置によって乗
    算を実行するためのFPUデータフロー・パイプライン
    中に、符号、指数部および仮数部を含む乗数および被乗
    数入力オペランドを受け、これらの符号、指数部および
    仮数部を決定ブロック段に入力し、この決定ブロック段
    により、前記入力オペランドのいずれかがIEEE75
    4特殊数0、NaN(非数)または無限数に等しいかど
    うかを決定するステップと、 いずれかのオペランドが前記特殊数の一つであるなら
    ば、算術的計算は不要であるため、前記データフローを
    特殊数ハンドラによる処理に送るステップと、 いずれのオペランドも前記3種の特殊数の一つではない
    ならば、データフロー中のオペランドを決定ブロック段
    に進め、この決定ブロック段により、いずれかのオペラ
    ンドが脱正規化数ではないかどうかを決定するステップ
    と、 いずれかのオペランドが、IEEE754規格による定
    義で脱正規化されているならば、データフロー処理を前
    正規化ブロック段に送り、このブロック段により、前記
    オペランドを正規化し、もう1ビットの拡張指数範囲を
    生成し、処理のデータフローを並行経路マルチプレクサ
    段に送るステップと、 前記決定ブロック段による決定でいずれのオペランドも
    脱正規化されていないならば、拡張処理ブロック段で前
    記数の指数部を拡張するステップと、 前記データフローを前記並行経路マルチプレクサに送
    り、このマルチプレクサにより、前記前正規化経路から
    のデータフローと、前記拡張処理ブロック段からのデー
    タフローとが合流したものを受けるステップと、 処理のための前記データフローを、一つが符号計算ブロ
    ック段を有し、第二のものが指数変換ブロック段を有
    し、第三のものが被乗数仮数分割ブロック段を有し、第
    四のものが乗数仮数分割ブロック段を有する4本の並行
    な経路に分け、前記二つのオペランドの符号ビットを前
    記符号計算ブロック段で処理し、前記オペランドの二つ
    の16ビット符号指数を前記指数変換ブロック段によっ
    て処理し、前記被乗数を被乗数仮数分割ブロック段で分
    割し、このブロック段により、前記マルチプレクサから
    入力される113ビット被乗数仮数を受けるステップ
    と、 113ビット乗数入力を有する前記第四の経路の中の前
    記乗数を乗数仮数分割ブロック段で分割するステップ
    と、 前記第三の経路からのデータフローと前記第四の経路か
    らのデータフローとを計算ブロック段で合流させて、こ
    の計算ブロック段によって乗算および加算を実行して、
    部分積および中間和ならびに最終的には最終積を提供し
    て、計算ブロック段の出力を提供するステップと、 前記計算ブロック段の出力と、前記第二の経路からの前
    記指数と、前記第一の経路からの前記符号ビットとを合
    流ブロック段で合流させて積を提供し、この積を16進
    内部フォーマットで表現し、計算ブロック段で2進フォ
    ーマットに戻し、丸めるステップと、 を含むことを特徴とする方法。
  2. 【請求項2】指数変換段を有する前記並行な経路の前記
    第二のものが2進指数16進変換ブロック段であり、前
    記並行な経路の前記第三のものが被乗数仮数56/60
    ビット分割ブロック段を有し、前記並行な経路の前記第
    四のものが乗数仮数1/56/56ビット分割ブロック
    段を有し、前記二つのオペランドの符号ビットを前記符
    号計算ブロック段で処理し、前記オペランドの二つの1
    6ビット2進指数を2進指数16進変換ブロック段によ
    って処理し、この段から、前記二つのオペランドの16
    進指数を前記第二の並行な経路の16進指数計算ブロッ
    ク段に出力し、この段が、前記指数を加算し、バイアス
    を減算し、この2進指数16進変換ブロック段から、シ
    フトを、被乗数仮数ビット分割ブロック段を有する前記
    並行な経路の第三のものに送り、これがまた、前記マル
    チプレクサから入力される113ビット被乗数仮数を受
    け、この第四の経路の中で、113ビット乗数入力を、
    乗数仮数ビット分割ブロック段を有する前記並行な経路
    の第四のものに提供し、 前記第三の経路と前記第四の経路とが計算ブロック段で
    合流して、この計算ブロック段が乗算および加算を実行
    して部分積および中間和ならびに最終的には最終積を提
    供し、この最終積が計算ブロック段の出力であり、 前記計算ブロック段の出力と、前記第二の経路からの前
    記16進指数と、前記第一の経路からの前記符号ビット
    とを合流ブロック段で合流して積を提供し、この積を1
    6進内部フォーマットで表現し、計算ブロック段で2進
    フォーマットに戻し、丸める請求項1記載の方法。
  3. 【請求項3】前記被乗数を56ビット高位部と60ビッ
    ト低位部との二部に分割する請求項1記載の方法。
  4. 【請求項4】前記第四の乗数分割ブロック段の乗数オペ
    ランド113ビット仮数が、前記オペランドを明示値1
    と、56ビット高位部と、56ビット低位部とに分ける
    請求項3記載の方法。
  5. 【請求項5】前記並行な経路の前記第三のものが被乗数
    仮数56/60ビット分割ブロック段を有し、前記並行
    な経路の前記第四のものが乗数仮数1/56/56ビッ
    ト分割ブロック段を有する請求項2記載の方法。
  6. 【請求項6】前記計算ブロック段が4回の乗算および4
    回の加算を実行して、部分積および中間和ならびに最終
    積を提供する請求項5記載の方法。
  7. 【請求項7】前記並行な経路の前記第三のものが被乗数
    仮数56/56/4ビット分割ブロック段を有し、前記
    並行な経路の前記第四のものが乗数仮数56/56/4
    ビット分割ブロック段を有する請求項2記載の方法。
  8. 【請求項8】前記計算ブロック段が9回の乗算および8
    回の加算を実行して、部分積および中間和ならびに最終
    積を提供する請求項7記載の方法。
  9. 【請求項9】前記並行な経路の前記第三のものが被乗数
    仮数56/60ビット分割ブロック段を有し、前記並行
    な経路の前記第四のものが乗数仮数56/56/4ビッ
    ト分割ブロック段を有する請求項2記載の方法。
  10. 【請求項10】前記計算ブロック段が6回の乗算および
    5回の加算を実行して、部分積および中間和ならびに最
    終積を提供する請求項9記載の方法。
  11. 【請求項11】前記並行な経路の前記第三のものが被乗
    数仮数1/56/56ビット分割ブロック段を有し、前
    記並行な経路の前記第四のものが乗数仮数1/56/5
    6ビット分割ブロック段を有する請求項1記載の方法。
  12. 【請求項12】前記計算ブロック段が4回の乗算および
    5回の加算を実行して、部分積および中間和ならびに最
    終積を提供する請求項11記載の方法。
JP11047468A 1999-02-25 1999-02-25 S/390プロセッサにおける2進4倍長語フォ―マット乗算命令の分割 Expired - Fee Related JP3014385B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11047468A JP3014385B1 (ja) 1999-02-25 1999-02-25 S/390プロセッサにおける2進4倍長語フォ―マット乗算命令の分割

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11047468A JP3014385B1 (ja) 1999-02-25 1999-02-25 S/390プロセッサにおける2進4倍長語フォ―マット乗算命令の分割

Publications (2)

Publication Number Publication Date
JP3014385B1 true JP3014385B1 (ja) 2000-02-28
JP2000250736A JP2000250736A (ja) 2000-09-14

Family

ID=12775995

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11047468A Expired - Fee Related JP3014385B1 (ja) 1999-02-25 1999-02-25 S/390プロセッサにおける2進4倍長語フォ―マット乗算命令の分割

Country Status (1)

Country Link
JP (1) JP3014385B1 (ja)

Also Published As

Publication number Publication date
JP2000250736A (ja) 2000-09-14

Similar Documents

Publication Publication Date Title
US6292886B1 (en) Scalar hardware for performing SIMD operations
US7912883B2 (en) Exponent processing systems and methods
US6240433B1 (en) High accuracy estimates of elementary functions
US6697832B1 (en) Floating-point processor with improved intermediate result handling
US6256655B1 (en) Method and system for performing floating point operations in unnormalized format using a floating point accumulator
US6813626B1 (en) Method and apparatus for performing fused instructions by determining exponent differences
JPH02196328A (ja) 浮動小数点演算装置
JP3313560B2 (ja) 浮動小数点演算処理装置
JP5640081B2 (ja) 飽和を伴う整数乗算および乗算加算演算
US7493357B2 (en) Random carry-in for floating-point operations
US20050228844A1 (en) Fast operand formatting for a high performance multiply-add floating point-unit
US20090164544A1 (en) Dynamic range enhancement for arithmetic calculations in real-time control systems using fixed point hardware
JPH11296346A (ja) 浮動小数点2進4倍長語フォ―マット乗算命令装置
GB2549153B (en) Apparatus and method for supporting a conversion instruction
JPH0687218B2 (ja) 浮動小数点数演算処理装置及び除数倍数生成装置
JPH04355827A (ja) 開平演算装置
US7080112B2 (en) Method and apparatus for computing an approximation to the reciprocal of a floating point number in IEEE format
US4979141A (en) Technique for providing a sign/magnitude subtraction operation in a floating point computation unit
JP3014385B1 (ja) S/390プロセッサにおける2進4倍長語フォ―マット乗算命令の分割
JP2645422B2 (ja) 浮動小数点演算処理装置
US20070011222A1 (en) Floating-point processor for processing single-precision numbers
JP3137131B2 (ja) 浮動小数点乗算器及び乗算方法
Gopal Design and performance analysis of high throughput and low latency double precision floating point division on FPGA
CN114327360A (zh) 运算单元、浮点数计算的方法、装置、芯片和计算设备
Rice et al. Multiprecision division on small-word parallel processors: Expanded Version

Legal Events

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