JPH11296346A - 浮動小数点2進4倍長語フォ―マット乗算命令装置 - Google Patents
浮動小数点2進4倍長語フォ―マット乗算命令装置Info
- Publication number
- JPH11296346A JPH11296346A JP11046359A JP4635999A JPH11296346A JP H11296346 A JPH11296346 A JP H11296346A JP 11046359 A JP11046359 A JP 11046359A JP 4635999 A JP4635999 A JP 4635999A JP H11296346 A JPH11296346 A JP H11296346A
- Authority
- JP
- Japan
- Prior art keywords
- block stage
- bit
- stage
- mantissa
- floating point
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/487—Multiplying; Dividing
- G06F7/4876—Multiplying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/53—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
- G06F7/5324—Multiplying 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)
Abstract
(57)【要約】
【課題】特に、本発明は、典型的なS/390乗算器に
おける2進4倍長語フォーマットのための乗算を実現す
ることに関する。 【解決手段】4倍長フォーマット乗算は、一連のいくつ
かの長い精度乗算および拡張精度または長い精度加算と
して実行しなければならない。S/390の16進4倍
長語フォーマットは、112ビット仮数部を有し、二つ
の56ビット部に容易に分割することができるため、2
進フォーマットよりも実現しやすい。しかし、113ビ
ット仮数部は、二つの分割部をちょうど超えてしまい、
第三の分割部を要することになる。拡張精度乗算の場
合、各分割部が互いに乗じられるため、二つの分割部が
あるならば、4回の乗算しか要らないが、三つの分割部
分がある場合、乗算は9回に増える。乗数オペランドの
仮数部を1ビット、56ビットおよび56ビットの3群
に分割し、被乗数オペランドの仮数部を56ビットおよ
び60ビットの2群に分割する。
おける2進4倍長語フォーマットのための乗算を実現す
ることに関する。 【解決手段】4倍長フォーマット乗算は、一連のいくつ
かの長い精度乗算および拡張精度または長い精度加算と
して実行しなければならない。S/390の16進4倍
長語フォーマットは、112ビット仮数部を有し、二つ
の56ビット部に容易に分割することができるため、2
進フォーマットよりも実現しやすい。しかし、113ビ
ット仮数部は、二つの分割部をちょうど超えてしまい、
第三の分割部を要することになる。拡張精度乗算の場
合、各分割部が互いに乗じられるため、二つの分割部が
あるならば、4回の乗算しか要らないが、三つの分割部
分がある場合、乗算は9回に増える。乗数オペランドの
仮数部を1ビット、56ビットおよび56ビットの3群
に分割し、被乗数オペランドの仮数部を56ビットおよ
び60ビットの2群に分割する。
Description
【0001】
【発明の属する技術分野】本発明は、コンピュータおよ
びコンピュータ・システムならびにその浮動小数点装置
に関し、特に、2進4倍長語フォーマットによる乗算の
浮動小数点演算の実行に関する。
びコンピュータ・システムならびにその浮動小数点装置
に関し、特に、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倍長語を要する。
(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倍長語フォーマットの乗算である。
ーマットに最適化されてはおらず、頻繁に使用される倍
長語フォーマットに最適化されている。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を参
照すること)。
アーキテクチャで「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倍長語
フォーマットのための乗算を実現することに関する。
IEEE規格が採用されて以来、56ビット仮数データ
フローが2進拡張フォーマットの113ビット仮数の半
分よりもわずかに少ないシステムで2進拡張フォーマッ
ト(4倍長語フォーマット)をS/390浮動小数点装
置に最適化する方法は見いだされていない。特に、本発
明は、典型的なS/390乗算器における2進4倍長語
フォーマットのための乗算を実現することに関する。
【0006】
【課題を解決するための手段】本発明は、56ビットお
よび60ビットのオペランドならびに16進ベースの指
数部をサポートするハードウェア乗算器において2進4
倍長語フォーマット乗算を実行する方法を提供する。こ
のタイプのハードウェア乗算器は、S/390浮動小数
点装置で一般に使用されている。この方法は、全4倍長
語フォーマット乗算を実行するのに最小限のハードウェ
ア演算を提供し、なおも、中間結果を、16進ベースの
設計にとって有利である16進ベースのフォーマットで
保持する。
よび60ビットのオペランドならびに16進ベースの指
数部をサポートするハードウェア乗算器において2進4
倍長語フォーマット乗算を実行する方法を提供する。こ
のタイプのハードウェア乗算器は、S/390浮動小数
点装置で一般に使用されている。この方法は、全4倍長
語フォーマット乗算を実行するのに最小限のハードウェ
ア演算を提供し、なおも、中間結果を、16進ベースの
設計にとって有利である16進ベースのフォーマットで
保持する。
【0007】本発明は、113ビットの仮数部を独自の
方法で分割して、4回の乗算しか要らないようにし、ま
た、16進データフローで2進オペランドを実行するさ
らなる課題を扱う。乗数オペランドの仮数部を1ビッ
ト、56ビットおよび56ビットの3群に分割し、被乗
数オペランドの仮数部を56ビットおよび60ビットの
2群に分割する。
方法で分割して、4回の乗算しか要らないようにし、ま
た、16進データフローで2進オペランドを実行するさ
らなる課題を扱う。乗数オペランドの仮数部を1ビッ
ト、56ビットおよび56ビットの3群に分割し、被乗
数オペランドの仮数部を56ビットおよび60ビットの
2群に分割する。
【0008】S/390浮動小数点アーキテクチャは、
X=(−1)**S*0.F*16**(Xh−64)(式
中、Xはオペランドの値であり、Sは1ビット符号であ
り、Fは仮数であり、Xhは、64のバイアスだけ減じ
られて指数を形成する標数である)によって記述される
16進ベースのフォーマットを定義する。2進拡張フォ
ーマットは、X=(−1)**S*1.F*2**(Xb−1
6383)(式中、Xbは2進標数を表す)によって記
述されるフォーマットを有する。米国特許第5,68
7,106号[Schwarzら]は、内部浮動小数点データ
フローを16進浮動小数点フォーマットで使用して16
進浮動小数点フォーマットおよび2進浮動小数点フォー
マットの両方をサポートする方法を教示している。発案
された内部データフローは、14ビットの指数部と、X
=(−1)**S*0.F*16**(Xi−8192)(式
中、Xiは内部標数を表す)によって表現することがで
きる8192のバイアスとを有している。2進指数を1
6進フォーマットに変換することは、標数を右に2ビッ
トだけシフトし、バイアス調節を適用することに等し
い。2進指数のうち押し出される最下位2ビットは、値
2**0、2**1、2**2または2**3を表現する。2進
設計フォーマットにおけるこの指数値は、内部16進ベ
ースのフォーマットに入るとき、3ビットまでの仮数の
シフトに変換される。53ビット長の2進仮数をこの1
6進フォーマットで表現するためには、全部で56ビッ
トになるこのシフトのために三つのさらなるビットが必
要である。拡張フォーマットの場合、これには116ビ
ット仮数を要するであろう。
X=(−1)**S*0.F*16**(Xh−64)(式
中、Xはオペランドの値であり、Sは1ビット符号であ
り、Fは仮数であり、Xhは、64のバイアスだけ減じ
られて指数を形成する標数である)によって記述される
16進ベースのフォーマットを定義する。2進拡張フォ
ーマットは、X=(−1)**S*1.F*2**(Xb−1
6383)(式中、Xbは2進標数を表す)によって記
述されるフォーマットを有する。米国特許第5,68
7,106号[Schwarzら]は、内部浮動小数点データ
フローを16進浮動小数点フォーマットで使用して16
進浮動小数点フォーマットおよび2進浮動小数点フォー
マットの両方をサポートする方法を教示している。発案
された内部データフローは、14ビットの指数部と、X
=(−1)**S*0.F*16**(Xi−8192)(式
中、Xiは内部標数を表す)によって表現することがで
きる8192のバイアスとを有している。2進指数を1
6進フォーマットに変換することは、標数を右に2ビッ
トだけシフトし、バイアス調節を適用することに等し
い。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ビット仮数に拡張し、5
6ビット部と60ビット部とに分割する。したがって、
乗数は、1、YH(56ビット)およびYL(56ビッ
ト)と指定される三つの部分を有し、被乗数は、XH
(56ビット)およびXL(60ビット)と指定される
二つの部分を有する。
オペランド、すなわち被乗数に適用するだけである。そ
して、使用する3ビットのシフトは両方の入力オペラン
ドの2進シフトの組み合わせである。乗数仮数を、合計
で113ビットである三つの部分、すなわち明示値1
と、56ビットの高位部と、56ビットの低位部とに分
ける。そして、被乗数仮数を両方の入力オペランドの2
進シフトの組み合わせで116ビット仮数に拡張し、5
6ビット部と60ビット部とに分割する。したがって、
乗数は、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進浮動小数点
演算について維持される方法である。
算するのに4回の乗算、すなわち、YL*XL、YL*X
H、YH*XLおよびYH*XHしか必要なく、乗数のサ
イズは56×60ビットでしかない。×1の乗算は計算
が不要である。このアルゴリズムのもう一つの利点は、
16進フォーマット内での仮数の2進正規化によって2
進指数の最下位2ビットがデータフロー中に維持される
ことであり、これはまた、それらが他の2進浮動小数点
演算について維持される方法である。
【0011】以下の詳細な説明によってこれらの改良点
および他の改良点を説明する。本発明をその利点および
特徴に関してより理解するために、以下の説明および図
面を参照されたい。
および他の改良点を説明する。本発明をその利点および
特徴に関してより理解するために、以下の説明および図
面を参照されたい。
【0012】複数の図面を使用する場合には、説明しや
すくするため、図面をいくつかの部分に分割し、原則と
して、図面の一番上の部分を最初の紙面に配置し、その
後の紙面を下および横方向に続けていることに留意され
たい。
すくするため、図面をいくつかの部分に分割し、原則と
して、図面の一番上の部分を最初の紙面に配置し、その
後の紙面を下および横方向に続けていることに留意され
たい。
【0013】
【発明の実施の形態】本発明をさらに詳細に見ると、好
ましい実施態様を示す図1には、16進ベースの倍長語
フォーマットに最適化された浮動小数点ハードウェアの
ための、2進拡張精度フォーマットの浮動小数点乗算を
実行するプロセス・フローが示されている。プロセス・
フローは、特殊ケース・オペランドがないかどうか、オ
ペランドが脱正規化されているかどうかを検出するため
のサブプロセスと、符号計算ステップと、指数計算ステ
ップと、乗数仮数部および被乗数仮数部の分割ステップ
と、丸めステップと、オーバフロー検出ステップとを含
む。
ましい実施態様を示す図1には、16進ベースの倍長語
フォーマットに最適化された浮動小数点ハードウェアの
ための、2進拡張精度フォーマットの浮動小数点乗算を
実行するプロセス・フローが示されている。プロセス・
フローは、特殊ケース・オペランドがないかどうか、オ
ペランドが脱正規化されているかどうかを検出するため
のサブプロセスと、符号計算ステップと、指数計算ステ
ップと、乗数仮数部および被乗数仮数部の分割ステップ
と、丸めステップと、オーバフロー検出ステップとを含
む。
【0014】乗数および被乗数入力オペランドは、符
号、指数部および仮数部を含み、これらが、入力オペラ
ンドのいずれがIEEE754特殊数0、NaN(非
数)または無限数に等しいかどうかを決定する決定ブロ
ック段10に入力される。いずれかのオペランドがこれ
らの特殊数の一つであるならば、計算は、特殊数ハンド
ラ11に進み、算術的な計算は不要である。いずれもこ
れら3種の特殊数ではないならば、プロセスは決定ブロ
ック段12に進み、ここで、いずれかのオペランドが脱
正規化数であるかどうかを決定する。いずれかのオペラ
ンドがIEEE754規格の定義によって脱正規化され
ているならば、プロセスは前正規化ブロック段に進み、
ここで、オペランドを正規化し、もう1ビットの拡張指
数範囲を生成したのち、マルチプレクサ15に続く。決
定ブロック段12の決定によっていずれのオペランドも
脱正規化されていないならば、処理ブロック段14で指
数が拡張され、プロセスは、マルチプレクサ15で前正
規化経路と合流する。
号、指数部および仮数部を含み、これらが、入力オペラ
ンドのいずれが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ビット
低位部とに分ける。
かれる。二つのオペランドの符号ビットどうしが符号計
算ブロック段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進指
数および適切なシフト量に変換することからなるもので
あった。
zら]では、2進指数変換ブロック段は、一つの2進指
数を取り出し、それを、以下の式にしたがって16進指
数および適切なシフト量に変換することからなるもので
あった。
【0017】
【表1】
【0018】表中、Xbは2進標数を表し、Xiは、変
換された16進内部標数を表し、Xb>>2は、切り捨
てによって2ビット右にシフトされたXbであり、||は
連結を表し、SIGNEXTは、Xiの最上位ビットを
Xbの最上位ビットで設定し、それ未満の有効ビットを
この補ビットで満たすことを含む。
換された16進内部標数を表し、Xb>>2は、切り捨
てによって2ビット右にシフトされたXbであり、||は
連結を表し、SIGNEXTは、Xiの最上位ビットを
Xbの最上位ビットで設定し、それ未満の有効ビットを
この補ビットで満たすことを含む。
【0019】拡張フォーマットの場合、Xbは15ビッ
トであり、シフトが最下位2ビットを切り捨てると、1
3ビットが残る。Xiは14ビットであり、13ビット
中間結果のSIGNEXTは、以下の式によって表すこ
とができる。
トであり、シフトが最下位2ビットを切り捨てると、1
3ビットが残る。Xiは14ビットであり、13ビット
中間結果のSIGNEXTは、以下の式によって表すこ
とができる。
【0020】SIGNEXT(Xb(0:14)>>2)=Xb
(0)||Xb(0)′||Xb(1:12) ただし、′は1の補数を表す。
(0)||Xb(0)′||Xb(1:12) ただし、′は1の補数を表す。
【0021】2進指数16進変換ブロック段100は、
両方の2進指数変換の組み合わせを実行するが、形態
1、YH、YLの固定乗数仮数と、両方の2進シフト量
をその仮数表現で取る被乗数とを用いる。以下の式は、
乗数が固定フォーマット仮数を有し、それが、後で被乗
数Yの変換に適用される補正項を要することを示す。
両方の2進指数変換の組み合わせを実行するが、形態
1、YH、YLの固定乗数仮数と、両方の2進シフト量
をその仮数表現で取る被乗数とを用いる。以下の式は、
乗数が固定フォーマット仮数を有し、それが、後で被乗
数Yの変換に適用される補正項を要することを示す。
【0022】
【表2】
【0023】2進指数16進変換ブロック段100は、
固定乗数指数変換を実行し、補正項を被乗数指数変換に
送り、それがまた、2進シフト量信号を生成し、この信
号が被乗数仮数分割ブロック段101に伝送される。
固定乗数指数変換を実行し、補正項を被乗数指数変換に
送り、それがまた、2進シフト量信号を生成し、この信
号が被乗数仮数分割ブロック段101に伝送される。
【0024】分割ブロック段101の出力XHおよびX
Lならびに分割ブロック段102の出力1、YHおよび
YLは、計算ブロック段103に入力される。計算処理
は、4回の乗算および4回の加算の実行を含む。これら
の計算は、部分積P1、P2、P3およびP4、中間和
S1、S2およびS3ならびに最終積PRを出す、以下
の式によって表すことができる。
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に送られ、偽ならば、報告結果であると判
定され、処理が完了する。
れ、合流ブロック段105で、計算ブロック段104か
らの16進指数および計算ブロック段16からの符号ビ
ットと合流する。16進内部フォーマットで表現された
積は、計算ブロック段106で2進フォーマットに戻さ
れ、計算ブロック段17で丸められる。そして、その結
果が、決定ブロック段18で、オーバフローまたはアン
ダフロー状態に関してチェックされ、真ならば、固定ブ
ロック段19に送られ、偽ならば、報告結果であると判
定され、処理が完了する。
【0027】ブロック段10〜19は、好ましい実施態
様に独自のものではなく、ブロック段100〜106だ
けが独自のものである。発案された方法は、計算時間を
乗算4回分および加算4回分の待ち時間に減らす、仮数
部の独自の分割を提供する。中間結果は16進フォーマ
ットで維持され、それは、ハードウェア問題をデバッグ
する容易さのため、16進ベース浮動小数点装置にとっ
て利点である。また、16進内部フォーマットを先にパ
イプラインの一番上に伝送して、次の順番の命令とのデ
ータ依存を解決することができる利点もある。
様に独自のものではなく、ブロック段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進フォーマ
ットで表現される場合に、それらを分割する簡潔な方法
である。
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に示す好まし
い実施態様よりはかなり遅い。
ブロック段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進である場合に中間
結果を非本来のフォーマットで含む。
同じである第三の代替態様が示されている。この第三の
代替態様は、指数計算を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)であって、浮動小数点乗算器を有する前記中央処理
装置によって乗算を実行するためのFPUデータフロー
・パイプラインを含み、前記パイプライン中で、乗数お
よび被乗数入力オペランドが符号、指数部および仮数部
を含み、これらが決定ブロック段に入力され、決定ブロ
ック段が、前記入力オペランドのいずれかがIEEE7
54特殊数0、NaN(非数)または無限数に等しいか
どうかを決定し、いずれかのオペランドが前記特殊数の
一つであるならば、特殊数ハンドラによって処理され、
算術的計算は不要であるが、いずれのオペランドも前記
3種の特殊数の一つではないならば、プロセス中のデー
タフローが決定ブロック段に進み、その決定ブロック段
が、いずれかのオペランドが脱正規化数ではないかどう
かを決定し、いずれかのオペランドが、IEEE754
規格による定義で脱正規化されているならば、プロセス
は前正規化ブロック段に送られ、このブロック段が、オ
ペランドを正規化し、もう1ビットの拡張指数範囲を生
成し、プロセスが並行経路マルチプレクサ段に進むが、
前記決定ブロック段による決定でいずれのオペランドも
脱正規化されていないならば、拡張処理ブロック段で数
の指数部が拡張され、前記並行経路マルチプレクサに送
られ、このマルチプレクサが、前記前正規化経路からの
データフローと、前記拡張処理ブロック段からのデータ
フローとが合流したものを受け、そこで、前記データフ
ロープロセスが4本の並行な経路に分かれ、前記並行な
経路の一つが符号計算ブロック段を有し、前記並行な経
路の第二のものが指数変換ブロック段を有し、前記並行
な経路の第三のものが被乗数仮数分割ブロック段を有
し、前記並行な経路の第四のものが乗数仮数分割ブロッ
ク段を有し、前記二つのオペランドの符号ビットが前記
符号計算ブロック段で処理され、前記オペランドの二つ
の16ビット符号指数が前記指数変換ブロック段によっ
て処理され、前記被乗数仮数分割ブロック段が、前記マ
ルチプレクサから入力された113ビット被乗数仮数を
受け、第四の経路の中で、113ビット乗数入力が、乗
数仮数分割ブロック段を有する前記並行な経路の第四の
ものに提供され、前記第三の経路と前記第四の経路とが
計算ブロック段で合流して、この計算ブロック段が乗算
および加算を実行して、部分積および中間和ならびに最
終的には最終積を提供し、この最終積が計算ブロック段
の出力であり、前記計算ブロック段の出力と、前記第二
の経路からの前記指数と、前記第一の経路からの前記符
号ビットとが合流ブロック段で合流して積を提供し、こ
の積が16進内部フォーマットで表現され、計算ブロッ
ク段で2進フォーマットに戻され、丸められることを特
徴とする浮動小数点装置(FPU)。 (2)指数変換段を有する前記並行な経路の前記第二の
ものが2進指数16進変換ブロック段であり、前記並行
な経路の前記第三のものが被乗数仮数56/60ビット
分割ブロック段を有し、前記並行な経路の前記第四のも
のが乗数仮数1/56/56ビット分割ブロック段を有
し、前記二つのオペランドの符号ビットが前記符号計算
ブロック段によって処理され、前記オペランドの二つの
16ビット2進指数が2進指数16進変換ブロック段に
よって処理され、この段から、前記二つのオペランドの
16進指数が前記第二の並行な経路の16進指数計算ブ
ロック段に出力され、この段が、指数を加算し、バイア
スを減算し、この2進指数16進変換ブロック段から、
シフトが、被乗数仮数ビット分割ブロック段を有する前
記第三の並行な経路に送られ、これがまた、前記マルチ
プレクサから入力される113ビット被乗数仮数を受
け、前記第四の経路の中で、113ビット乗数入力が、
乗数仮数ビット分割ブロック段を有する前記第四の経路
に提供され、前記第三の経路と前記第四の経路とが計算
ブロック段で合流して、この計算ブロック段が乗算およ
び加算を実行して部分積および中間和ならびに最終的に
は最終積を提供し、この最終積が計算ブロック段の出力
であり、前記計算ブロック段の出力と、前記第二の経路
からの前記16進指数と、前記第一の経路からの前記符
号ビットとが合流ブロック段で合流して積を提供し、こ
の積が16進内部フォーマットで表現され、計算ブロッ
ク段で2進フォーマットに戻され、丸められる上記
(1)記載の浮動小数点装置(FPU)。 (3)前記被乗数の分割が、56ビット高位部と60ビ
ット低位部との二部である上記(2)記載の浮動小数点
装置(FPU)。 (4)前記第四の乗数分割ブロック段の乗数オペランド
113ビット仮数が、前記オペランドを明示値1と、5
6ビット高位部と、56ビット低位部とに分ける上記
(3)記載の浮動小数点装置(FPU)。 (5)前記並行な経路の前記第三のものが被乗数仮数5
6/60ビット分割ブロック段を有し、前記並行な経路
の前記第四のものが乗数仮数1/56/56ビット分割
ブロック段を有する上記(2)記載の浮動小数点装置
(FPU)。 (6)前記計算ブロック段が4回の乗算および4回の加
算を実行して、部分積および中間和ならびに最終積を提
供する上記(5)記載の浮動小数点装置(FPU)。 (7)前記並行な経路の前記第三のものが被乗数仮数5
6/56/4ビット分割ブロック段を有し、前記並行な
経路の前記第四のものが乗数仮数56/56/4ビット
分割ブロック段を有する上記(2)記載の浮動小数点装
置(FPU)。 (8)前記計算ブロック段が9回の乗算および8回の加
算を実行して、部分積および中間和ならびに最終積を提
供する上記(7)記載の浮動小数点装置(FPU)。 (9)前記並行な経路の前記第三のものが被乗数仮数5
6/60ビット分割ブロック段を有し、前記並行な経路
の前記第四のものが乗数仮数56/56/4ビット分割
ブロック段を有する上記(2)記載の浮動小数点装置
(FPU)。 (10)前記計算ブロック段が6回の乗算および5回の
加算を実行して、部分積および中間和ならびに最終積を
提供する上記(9)記載の浮動小数点装置(FPU)。 (11)前記並行な経路の前記第三のものが被乗数仮数
1/56/56ビット分割ブロック段を有し、前記並行
な経路の前記第四のものが乗数仮数1/56/56ビッ
ト分割ブロック段を有する上記(1)記載の浮動小数点
装置(FPU)。 (12)前記計算ブロック段が4回の乗算および5回の
加算を実行して、部分積および中間和ならびに最終積を
提供する上記(11)記載の浮動小数点装置(FP
U)。
の事項を開示する。 (1)4倍長語フォーマットのための2進拡張精度フォ
ーマットのIEEE754規格によって定義される浮動
小数点乗算命令を、16進ベース倍長語フォーマットに
最適化され、2進4倍長語フォーマットが113ビット
仮数部を有するように定義する浮動小数点ハードウェア
を有し、4倍長語フォーマット乗算を、一連のいくつか
の長い精度乗算および拡張精度もしくは長い精度加算と
して、コンピュータ・プロセッサにより、乗数および被
乗数入力を用いて実行しなければならないコンピュータ
・プロセッサ上で実行するための浮動小数点装置(FP
U)であって、浮動小数点乗算器を有する前記中央処理
装置によって乗算を実行するためのFPUデータフロー
・パイプラインを含み、前記パイプライン中で、乗数お
よび被乗数入力オペランドが符号、指数部および仮数部
を含み、これらが決定ブロック段に入力され、決定ブロ
ック段が、前記入力オペランドのいずれかがIEEE7
54特殊数0、NaN(非数)または無限数に等しいか
どうかを決定し、いずれかのオペランドが前記特殊数の
一つであるならば、特殊数ハンドラによって処理され、
算術的計算は不要であるが、いずれのオペランドも前記
3種の特殊数の一つではないならば、プロセス中のデー
タフローが決定ブロック段に進み、その決定ブロック段
が、いずれかのオペランドが脱正規化数ではないかどう
かを決定し、いずれかのオペランドが、IEEE754
規格による定義で脱正規化されているならば、プロセス
は前正規化ブロック段に送られ、このブロック段が、オ
ペランドを正規化し、もう1ビットの拡張指数範囲を生
成し、プロセスが並行経路マルチプレクサ段に進むが、
前記決定ブロック段による決定でいずれのオペランドも
脱正規化されていないならば、拡張処理ブロック段で数
の指数部が拡張され、前記並行経路マルチプレクサに送
られ、このマルチプレクサが、前記前正規化経路からの
データフローと、前記拡張処理ブロック段からのデータ
フローとが合流したものを受け、そこで、前記データフ
ロープロセスが4本の並行な経路に分かれ、前記並行な
経路の一つが符号計算ブロック段を有し、前記並行な経
路の第二のものが指数変換ブロック段を有し、前記並行
な経路の第三のものが被乗数仮数分割ブロック段を有
し、前記並行な経路の第四のものが乗数仮数分割ブロッ
ク段を有し、前記二つのオペランドの符号ビットが前記
符号計算ブロック段で処理され、前記オペランドの二つ
の16ビット符号指数が前記指数変換ブロック段によっ
て処理され、前記被乗数仮数分割ブロック段が、前記マ
ルチプレクサから入力された113ビット被乗数仮数を
受け、第四の経路の中で、113ビット乗数入力が、乗
数仮数分割ブロック段を有する前記並行な経路の第四の
ものに提供され、前記第三の経路と前記第四の経路とが
計算ブロック段で合流して、この計算ブロック段が乗算
および加算を実行して、部分積および中間和ならびに最
終的には最終積を提供し、この最終積が計算ブロック段
の出力であり、前記計算ブロック段の出力と、前記第二
の経路からの前記指数と、前記第一の経路からの前記符
号ビットとが合流ブロック段で合流して積を提供し、こ
の積が16進内部フォーマットで表現され、計算ブロッ
ク段で2進フォーマットに戻され、丸められることを特
徴とする浮動小数点装置(FPU)。 (2)指数変換段を有する前記並行な経路の前記第二の
ものが2進指数16進変換ブロック段であり、前記並行
な経路の前記第三のものが被乗数仮数56/60ビット
分割ブロック段を有し、前記並行な経路の前記第四のも
のが乗数仮数1/56/56ビット分割ブロック段を有
し、前記二つのオペランドの符号ビットが前記符号計算
ブロック段によって処理され、前記オペランドの二つの
16ビット2進指数が2進指数16進変換ブロック段に
よって処理され、この段から、前記二つのオペランドの
16進指数が前記第二の並行な経路の16進指数計算ブ
ロック段に出力され、この段が、指数を加算し、バイア
スを減算し、この2進指数16進変換ブロック段から、
シフトが、被乗数仮数ビット分割ブロック段を有する前
記第三の並行な経路に送られ、これがまた、前記マルチ
プレクサから入力される113ビット被乗数仮数を受
け、前記第四の経路の中で、113ビット乗数入力が、
乗数仮数ビット分割ブロック段を有する前記第四の経路
に提供され、前記第三の経路と前記第四の経路とが計算
ブロック段で合流して、この計算ブロック段が乗算およ
び加算を実行して部分積および中間和ならびに最終的に
は最終積を提供し、この最終積が計算ブロック段の出力
であり、前記計算ブロック段の出力と、前記第二の経路
からの前記16進指数と、前記第一の経路からの前記符
号ビットとが合流ブロック段で合流して積を提供し、こ
の積が16進内部フォーマットで表現され、計算ブロッ
ク段で2進フォーマットに戻され、丸められる上記
(1)記載の浮動小数点装置(FPU)。 (3)前記被乗数の分割が、56ビット高位部と60ビ
ット低位部との二部である上記(2)記載の浮動小数点
装置(FPU)。 (4)前記第四の乗数分割ブロック段の乗数オペランド
113ビット仮数が、前記オペランドを明示値1と、5
6ビット高位部と、56ビット低位部とに分ける上記
(3)記載の浮動小数点装置(FPU)。 (5)前記並行な経路の前記第三のものが被乗数仮数5
6/60ビット分割ブロック段を有し、前記並行な経路
の前記第四のものが乗数仮数1/56/56ビット分割
ブロック段を有する上記(2)記載の浮動小数点装置
(FPU)。 (6)前記計算ブロック段が4回の乗算および4回の加
算を実行して、部分積および中間和ならびに最終積を提
供する上記(5)記載の浮動小数点装置(FPU)。 (7)前記並行な経路の前記第三のものが被乗数仮数5
6/56/4ビット分割ブロック段を有し、前記並行な
経路の前記第四のものが乗数仮数56/56/4ビット
分割ブロック段を有する上記(2)記載の浮動小数点装
置(FPU)。 (8)前記計算ブロック段が9回の乗算および8回の加
算を実行して、部分積および中間和ならびに最終積を提
供する上記(7)記載の浮動小数点装置(FPU)。 (9)前記並行な経路の前記第三のものが被乗数仮数5
6/60ビット分割ブロック段を有し、前記並行な経路
の前記第四のものが乗数仮数56/56/4ビット分割
ブロック段を有する上記(2)記載の浮動小数点装置
(FPU)。 (10)前記計算ブロック段が6回の乗算および5回の
加算を実行して、部分積および中間和ならびに最終積を
提供する上記(9)記載の浮動小数点装置(FPU)。 (11)前記並行な経路の前記第三のものが被乗数仮数
1/56/56ビット分割ブロック段を有し、前記並行
な経路の前記第四のものが乗数仮数1/56/56ビッ
ト分割ブロック段を有する上記(1)記載の浮動小数点
装置(FPU)。 (12)前記計算ブロック段が4回の乗算および5回の
加算を実行して、部分積および中間和ならびに最終積を
提供する上記(11)記載の浮動小数点装置(FP
U)。
【図1】好ましい実施態様の概要を示し、被乗数を56
ビット部と60ビット部とに分割し、乗数を1ビット
部、56ビット部および56ビット部に分割する、2進
拡張フォーマットのための乗算のプロセス・フローを具
体的に示す図である。
ビット部と60ビット部とに分割し、乗数を1ビット
部、56ビット部および56ビット部に分割する、2進
拡張フォーマットのための乗算のプロセス・フローを具
体的に示す図である。
【図2】第一の代替態様の概要を示し、被乗数を56ビ
ット部、56ビット部および4ビット部に分割し、乗数
を56ビット部、56ビット部および4ビット部に分割
する、2進拡張フォーマットための乗算のプロセス・フ
ローを具体的に示す図である。
ット部、56ビット部および4ビット部に分割し、乗数
を56ビット部、56ビット部および4ビット部に分割
する、2進拡張フォーマットための乗算のプロセス・フ
ローを具体的に示す図である。
【図3】第二の代替態様の概要を示し、被乗数を56ビ
ット部および60ビット部に分割し、乗数を56ビット
部、56ビット部および4ビット部に分割する、2進拡
張フォーマットための乗算のプロセス・フローを具体的
に示す図である。
ット部および60ビット部に分割し、乗数を56ビット
部、56ビット部および4ビット部に分割する、2進拡
張フォーマットための乗算のプロセス・フローを具体的
に示す図である。
【図4】第三の代替態様の概要を示し、被乗数を1ビッ
ト部、56ビット部および56ビット部に分割し、乗数
を1ビット部、56ビット部および56ビット部に分割
する、2進拡張フォーマットための乗算のプロセス・フ
ローを具体的に示す図である。
ト部、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 計算ブロック段
Claims (12)
- 【請求項1】4倍長語フォーマットのための2進拡張精
度フォーマットのIEEE754規格によって定義され
る浮動小数点乗算命令を、16進ベース倍長語フォーマ
ットに最適化され、2進4倍長語フォーマットが113
ビット仮数部を有するように定義する浮動小数点ハード
ウェアを有し、4倍長語フォーマット乗算を、一連のい
くつかの長い精度乗算および拡張精度もしくは長い精度
加算として、コンピュータ・プロセッサにより、乗数お
よび被乗数入力を用いて実行しなければならないコンピ
ュータ・プロセッサ上で実行するための浮動小数点装置
(FPU)であって、 浮動小数点乗算器を有する前記中央処理装置によって乗
算を実行するためのFPUデータフロー・パイプライン
を含み、前記パイプライン中で、乗数および被乗数入力
オペランドが符号、指数部および仮数部を含み、これら
が決定ブロック段に入力され、決定ブロック段が、前記
入力オペランドのいずれかがIEEE754特殊数0、
NaN(非数)または無限数に等しいかどうかを決定
し、いずれかのオペランドが前記特殊数の一つであるな
らば、特殊数ハンドラによって処理され、算術的計算は
不要であるが、いずれのオペランドも前記3種の特殊数
の一つではないならば、プロセス中のデータフローが決
定ブロック段に進み、その決定ブロック段が、いずれか
のオペランドが脱正規化数ではないかどうかを決定し、
いずれかのオペランドが、IEEE754規格による定
義で脱正規化されているならば、プロセスは前正規化ブ
ロック段に送られ、このブロック段が、オペランドを正
規化し、もう1ビットの拡張指数範囲を生成し、プロセ
スが並行経路マルチプレクサ段に進むが、前記決定ブロ
ック段による決定でいずれのオペランドも脱正規化され
ていないならば、拡張処理ブロック段で数の指数部が拡
張され、前記並行経路マルチプレクサに送られ、このマ
ルチプレクサが、前記前正規化経路からのデータフロー
と、前記拡張処理ブロック段からのデータフローとが合
流したものを受け、そこで、前記データフロープロセス
が4本の並行な経路に分かれ、前記並行な経路の一つが
符号計算ブロック段を有し、前記並行な経路の第二のも
のが指数変換ブロック段を有し、前記並行な経路の第三
のものが被乗数仮数分割ブロック段を有し、前記並行な
経路の第四のものが乗数仮数分割ブロック段を有し、前
記二つのオペランドの符号ビットが前記符号計算ブロッ
ク段で処理され、前記オペランドの二つの16ビット符
号指数が前記指数変換ブロック段によって処理され、前
記被乗数仮数分割ブロック段が、前記マルチプレクサか
ら入力された113ビット被乗数仮数を受け、第四の経
路の中で、113ビット乗数入力が、乗数仮数分割ブロ
ック段を有する前記並行な経路の第四のものに提供さ
れ、前記第三の経路と前記第四の経路とが計算ブロック
段で合流して、この計算ブロック段が乗算および加算を
実行して、部分積および中間和ならびに最終的には最終
積を提供し、この最終積が計算ブロック段の出力であ
り、 前記計算ブロック段の出力と、前記第二の経路からの前
記指数と、前記第一の経路からの前記符号ビットとが合
流ブロック段で合流して積を提供し、この積が16進内
部フォーマットで表現され、計算ブロック段で2進フォ
ーマットに戻され、丸められることを特徴とする浮動小
数点装置(FPU)。 - 【請求項2】指数変換段を有する前記並行な経路の前記
第二のものが2進指数16進変換ブロック段であり、前
記並行な経路の前記第三のものが被乗数仮数56/60
ビット分割ブロック段を有し、前記並行な経路の前記第
四のものが乗数仮数1/56/56ビット分割ブロック
段を有し、前記二つのオペランドの符号ビットが前記符
号計算ブロック段によって処理され、前記オペランドの
二つの16ビット2進指数が2進指数16進変換ブロッ
ク段によって処理され、この段から、前記二つのオペラ
ンドの16進指数が前記第二の並行な経路の16進指数
計算ブロック段に出力され、この段が、指数を加算し、
バイアスを減算し、この2進指数16進変換ブロック段
から、シフトが、被乗数仮数ビット分割ブロック段を有
する前記第三の並行な経路に送られ、これがまた、前記
マルチプレクサから入力される113ビット被乗数仮数
を受け、前記第四の経路の中で、113ビット乗数入力
が、乗数仮数ビット分割ブロック段を有する前記第四の
経路に提供され、 前記第三の経路と前記第四の経路とが計算ブロック段で
合流して、この計算ブロック段が乗算および加算を実行
して部分積および中間和ならびに最終的には最終積を提
供し、この最終積が計算ブロック段の出力であり、 前記計算ブロック段の出力と、前記第二の経路からの前
記16進指数と、前記第一の経路からの前記符号ビット
とが合流ブロック段で合流して積を提供し、この積が1
6進内部フォーマットで表現され、計算ブロック段で2
進フォーマットに戻され、丸められる請求項1記載の浮
動小数点装置(FPU)。 - 【請求項3】前記被乗数の分割が、56ビット高位部と
60ビット低位部との二部である請求項2記載の浮動小
数点装置(FPU)。 - 【請求項4】前記第四の乗数分割ブロック段の乗数オペ
ランド113ビット仮数が、前記オペランドを明示値1
と、56ビット高位部と、56ビット低位部とに分ける
請求項3記載の浮動小数点装置(FPU)。 - 【請求項5】前記並行な経路の前記第三のものが被乗数
仮数56/60ビット分割ブロック段を有し、前記並行
な経路の前記第四のものが乗数仮数1/56/56ビッ
ト分割ブロック段を有する請求項2記載の浮動小数点装
置(FPU)。 - 【請求項6】前記計算ブロック段が4回の乗算および4
回の加算を実行して、部分積および中間和ならびに最終
積を提供する請求項5記載の浮動小数点装置(FP
U)。 - 【請求項7】前記並行な経路の前記第三のものが被乗数
仮数56/56/4ビット分割ブロック段を有し、前記
並行な経路の前記第四のものが乗数仮数56/56/4
ビット分割ブロック段を有する請求項2記載の浮動小数
点装置(FPU)。 - 【請求項8】前記計算ブロック段が9回の乗算および8
回の加算を実行して、部分積および中間和ならびに最終
積を提供する請求項7記載の浮動小数点装置(FP
U)。 - 【請求項9】前記並行な経路の前記第三のものが被乗数
仮数56/60ビット分割ブロック段を有し、前記並行
な経路の前記第四のものが乗数仮数56/56/4ビッ
ト分割ブロック段を有する請求項2記載の浮動小数点装
置(FPU)。 - 【請求項10】前記計算ブロック段が6回の乗算および
5回の加算を実行して、部分積および中間和ならびに最
終積を提供する請求項9記載の浮動小数点装置(FP
U)。 - 【請求項11】前記並行な経路の前記第三のものが被乗
数仮数1/56/56ビット分割ブロック段を有し、前
記並行な経路の前記第四のものが乗数仮数1/56/5
6ビット分割ブロック段を有する請求項1記載の浮動小
数点装置(FPU)。 - 【請求項12】前記計算ブロック段が4回の乗算および
5回の加算を実行して、部分積および中間和ならびに最
終積を提供する請求項11記載の浮動小数点装置(FP
U)。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/034718 | 1998-03-04 | ||
US09/034,718 US6055554A (en) | 1998-03-04 | 1998-03-04 | Floating point binary quad word format multiply instruction unit |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11296346A true JPH11296346A (ja) | 1999-10-29 |
JP3163072B2 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)
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)
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 | 部分積加算方法および装置、浮動小数点乗算方法および装置、浮動小数点積和演算方法および装置 |
-
1998
- 1998-03-04 US US09/034,718 patent/US6055554A/en not_active Expired - Lifetime
-
1999
- 1999-02-10 KR KR1019990004766A patent/KR100317767B1/ko not_active IP Right Cessation
- 1999-02-24 JP JP04635999A patent/JP3163072B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR19990077418A (ko) | 1999-10-25 |
JP3163072B2 (ja) | 2001-05-08 |
KR100317767B1 (ko) | 2001-12-22 |
US6055554A (en) | 2000-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5790446A (en) | Floating point multiplier with reduced critical paths using delay matching techniques | |
US6240433B1 (en) | High accuracy estimates of elementary functions | |
US7395304B2 (en) | Method and apparatus for performing single-cycle addition or subtraction and comparison in redundant form arithmetic | |
US6751644B1 (en) | Method and apparatus for elimination of inherent carries | |
EP3374853A1 (en) | Multiplication of first and second operands using redundant representation | |
GB2294565A (en) | Floating point arithmetic unit | |
JPH02196328A (ja) | 浮動小数点演算装置 | |
US20100125621A1 (en) | Arithmetic processing device and methods thereof | |
JPH01112332A (ja) | 乗算及び算術論理演算機能を組合わせて使用する浮動小数点ユニット | |
US20130282784A1 (en) | Arithmetic processing device and methods thereof | |
WO2017081434A1 (en) | Redundant representation of numeric value using overlap bits | |
JPH07168697A (ja) | 倍精度除算回路および方法 | |
JP3313560B2 (ja) | 浮動小数点演算処理装置 | |
JP2012528391A (ja) | 飽和を伴う整数乗算および乗算加算演算 | |
US7493357B2 (en) | Random carry-in for floating-point operations | |
US20050228844A1 (en) | Fast operand formatting for a high performance multiply-add floating point-unit | |
Erle et al. | Decimal floating-point multiplication | |
JPH11296346A (ja) | 浮動小数点2進4倍長語フォ―マット乗算命令装置 | |
WO2017081436A1 (en) | Overlap propagation operation | |
EP1052568B1 (en) | Three input split-adder | |
JPH04355827A (ja) | 開平演算装置 | |
Gök et al. | Multi-functional floating-point MAF designs with dot product support | |
GB2549153A (en) | Apparatus and method for supporting a conversion instruction | |
JP3014385B1 (ja) | S/390プロセッサにおける2進4倍長語フォ―マット乗算命令の分割 | |
JPH04172526A (ja) | 浮動小数点除算器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |