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
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)
Description
【0001】
【発明の属する技術分野】本発明は、コンピュータの浮
動小数点装置に関し、特に、2進ベースの4倍長語フォ
ーマットによる乗算の浮動小数点演算の実行に関する。
動小数点装置に関し、特に、2進ベースの4倍長語フォ
ーマットによる乗算の浮動小数点演算の実行に関する。
【0002】
【従来の技術】「2進浮動小数点演算のIEEE規格
(IEEE Standard for Binary Floating-Point Arithmet
ic」(IEEE754規格)は、1ビットの符号、15
ビット以上の指数部および64ビット以上の仮数部によ
って表現を指定する「2重拡張」と呼ばれるフォーマッ
トを定義している。標準委員会の間では、より制限的で
あるが、2重拡張フォーマットのサブセットである4倍
長語フォーマットを採用することが議論されてきた。い
くつかの製造業者が、Hewlett-Packard 社のPA−RI
SC1.1アーキテクチャおよびIBM社のS/390
をはじめとする、1ビットの符号情報と、15ビットの
指数部と、最上位ビットが暗示されている113ビット
の仮数部とを含む特定の4倍長語フォーマットを採用し
ている。このフォーマットは、オペランドを表現するの
に128ビット(4倍長語)を必要とする。
(IEEE Standard for Binary Floating-Point Arithmet
ic」(IEEE754規格)は、1ビットの符号、15
ビット以上の指数部および64ビット以上の仮数部によ
って表現を指定する「2重拡張」と呼ばれるフォーマッ
トを定義している。標準委員会の間では、より制限的で
あるが、2重拡張フォーマットのサブセットである4倍
長語フォーマットを採用することが議論されてきた。い
くつかの製造業者が、Hewlett-Packard 社のPA−RI
SC1.1アーキテクチャおよびIBM社のS/390
をはじめとする、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進倍
長語の精度がハードウェア中で最適化され、これは、I
EEE754規格の倍長語フォーマットに合わせて最適
化する他の製造業者と同様である。理由は、いずれのフ
ォーマットも表現するのに64ビットを要するからであ
る。16進倍長語フォーマットは、1ビットの符号情
報、7ビットの指数部および56ビットの仮数部を含
む。S/390浮動小数点装置のデータフローは通常、
56ビットのオペランドに最適化されている。乗算器が
他の目的、たとえば除算に使用されるならば、その乗算
器は追加の保護ビットをいくつか有するかもしれない。
性能を最適化した乗算器の実現態様では、オペランドの
一方、すなわち乗数は、1つの追加ビットがカウンタ・
ツリーの全遅延に対して劇的な影響を及ぼすため、いか
なる保護ビット分も拡張されない。しかし、他方のオペ
ランド、すなわち被乗数は、カウンタ・ツリーの遅延に
対する実質的な影響がより小さいため、1つまたは2つ
の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 を参照)。
1アーキテクチャで「4倍長語フォーマット」と呼ばれ
ている定義は、S/390アーキテクチャでは「2進拡
張フォーマット」と呼ばれるが、それらのフォーマット
は、一部の相違点(非数NaNの通知およびクァイエッ
トNaNの表現)を除き、同一である。S/390アー
キテクチャは、短フォーマット(語)、長フォーマット
(倍長語)および拡張フォーマット(4倍長語)を有す
る独自の16進ベースのフォーマットをサポートしてい
る。典型的なS/390浮動小数点装置では、16進倍
長語の精度がハードウェア中で最適化され、これは、I
EEE754規格の倍長語フォーマットに合わせて最適
化する他の製造業者と同様である。理由は、いずれのフ
ォーマットも表現するのに64ビットを要するからであ
る。16進倍長語フォーマットは、1ビットの符号情
報、7ビットの指数部および56ビットの仮数部を含
む。S/390浮動小数点装置のデータフローは通常、
56ビットのオペランドに最適化されている。乗算器が
他の目的、たとえば除算に使用されるならば、その乗算
器は追加の保護ビットをいくつか有するかもしれない。
性能を最適化した乗算器の実現態様では、オペランドの
一方、すなわち乗数は、1つの追加ビットがカウンタ・
ツリーの全遅延に対して劇的な影響を及ぼすため、いか
なる保護ビット分も拡張されない。しかし、他方のオペ
ランド、すなわち被乗数は、カウンタ・ツリーの遅延に
対する実質的な影響がより小さいため、1つまたは2つ
の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倍
長語フォーマットのための乗算を実現することに関す
る。
IEEE規格が採用されて以来、56ビットの仮数部デ
ータフローが2進拡張フォーマットの113ビット仮数
部の半分よりもわずかに少ないS/390浮動小数点装
置を対象として、2進拡張フォーマット(4倍長語フォ
ーマット)を最適化する方法は見いだされていない。特
に、本発明は、典型的なS/390乗算器上で2進4倍
長語フォーマットのための乗算を実現することに関す
る。
【0006】
【課題を解決するための手段】本発明は、56ビットお
よび60ビットの両オペランドならびに16進ベースの
指数部をサポートするハードウェア乗算器上で、2進4
倍長語フォーマットの乗算を実行するプロセスを提供す
る。このタイプのハードウェア乗算器は、S/390浮
動小数点装置で一般に使用されている。このプロセス
は、4倍長語フォーマットの乗算を全体として実行する
のに最小限のハードウェア演算しか必要としない上に、
中間結果を、16進ベースの設計にとって有利である1
6進ベースのフォーマットで保持する。
よび60ビットの両オペランドならびに16進ベースの
指数部をサポートするハードウェア乗算器上で、2進4
倍長語フォーマットの乗算を実行するプロセスを提供す
る。このタイプのハードウェア乗算器は、S/390浮
動小数点装置で一般に使用されている。このプロセス
は、4倍長語フォーマットの乗算を全体として実行する
のに最小限のハードウェア演算しか必要としない上に、
中間結果を、16進ベースの設計にとって有利である1
6進ベースのフォーマットで保持する。
【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浮動小数点アーキテクチャは、
16進ベースのフォーマットを次のように定義する。 X=(−1)**S*0.F*16**(Xh−64)式 中、Xはオペランドの値、Sは1ビットの符号、Fは
仮数部、Xhは、64のバイアスだけ減じられて指数を
形成する指数部である。2進拡張フォーマットは、次の
ように記述される。 X=(−1)**S*1.F*2**(Xb−1638
3)式 中、Xbは2進指数部を表す。米国特許第56871
06号は、16進浮動小数点フォーマットを有する内部
浮動小数点データフローを使用して、16進浮動小数点
フォーマットおよび2進浮動小数点フォーマットの両方
をサポートする方法を教示している。この米国特許で提
案された内部データフローは、14ビットの指数部と、
8192のバイアスとを有しており、そのオペランドの
値は、次のように表現することができる。 X=(−1)**S*0.F*16**(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ビットの仮数部を要するで
あろう。
16進ベースのフォーマットを次のように定義する。 X=(−1)**S*0.F*16**(Xh−64)式 中、Xはオペランドの値、Sは1ビットの符号、Fは
仮数部、Xhは、64のバイアスだけ減じられて指数を
形成する指数部である。2進拡張フォーマットは、次の
ように記述される。 X=(−1)**S*1.F*2**(Xb−1638
3)式 中、Xbは2進指数部を表す。米国特許第56871
06号は、16進浮動小数点フォーマットを有する内部
浮動小数点データフローを使用して、16進浮動小数点
フォーマットおよび2進浮動小数点フォーマットの両方
をサポートする方法を教示している。この米国特許で提
案された内部データフローは、14ビットの指数部と、
8192のバイアスとを有しており、そのオペランドの
値は、次のように表現することができる。 X=(−1)**S*0.F*16**(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ビットの2
進シフトを一方のオペランド、すなわち被乗数のみに適
用することを含んでいる。そして、この3ビットのシフ
トは両方の入力オペランドの2進シフトの組み合わせで
ある。乗数仮数部を、合計で113ビットである3つの
部分、すなわち明示値1と、56ビットの高位部と、5
6ビットの低位部とに分割する。そして、被乗数仮数部
を両方の入力オペランドの2進シフトの組み合わせで1
16ビットの仮数部に拡張し、56ビットの高位部と6
0ビットの低位部とに分割する。従って、乗数仮数部
は、1、YH(56ビット)およびYL(56ビット)
と表記される3つの部分を有し、被乗数仮数部は、XH
(56ビット)およびXL(60ビット)と表記される
2つの部分を有する。
進シフトを一方のオペランド、すなわち被乗数のみに適
用することを含んでいる。そして、この3ビットのシフ
トは両方の入力オペランドの2進シフトの組み合わせで
ある。乗数仮数部を、合計で113ビットである3つの
部分、すなわち明示値1と、56ビットの高位部と、5
6ビットの低位部とに分割する。そして、被乗数仮数部
を両方の入力オペランドの2進シフトの組み合わせで1
16ビットの仮数部に拡張し、56ビットの高位部と6
0ビットの低位部とに分割する。従って、乗数仮数部
は、1、YH(56ビット)およびYL(56ビット)
と表記される3つの部分を有し、被乗数仮数部は、XH
(56ビット)およびXL(60ビット)と表記される
2つの部分を有する。
【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】
【発明の実施の形態】本発明をさらに詳細に見ると、好
ましい実施態様を示す図1には、16進ベースの倍長語
フォーマットに最適化された浮動小数点ハードウェアの
ための、2進拡張精度フォーマットの浮動小数点乗算を
実行するプロセス・フローが示されている。このプロセ
ス・フローは、特殊数のオペランドがないか否か、オペ
ランドが非正規化(denormalize)されているか否かを
検出するためのサブプロセスと、符号計算ステップと、
指数部計算ステップと、乗数仮数部および被乗数仮数部
の分割ステップと、丸めステップと、オーバフロー検出
ステップとを含む。
ましい実施態様を示す図1には、16進ベースの倍長語
フォーマットに最適化された浮動小数点ハードウェアの
ための、2進拡張精度フォーマットの浮動小数点乗算を
実行するプロセス・フローが示されている。このプロセ
ス・フローは、特殊数のオペランドがないか否か、オペ
ランドが非正規化(denormalize)されているか否かを
検出するためのサブプロセスと、符号計算ステップと、
指数部計算ステップと、乗数仮数部および被乗数仮数部
の分割ステップと、丸めステップと、オーバフロー検出
ステップとを含む。
【0013】乗数および被乗数入力オペランドは、符
号、指数部および仮数部を含み、これらが、入力オペラ
ンドのいずれがIEEE754規格によって定義された
特殊数の0、NaNまたは無限数に等しいか否かを決定
する決定ブロック段10に入力される。いずれかのオペ
ランドがこれらの特殊数の1つであるならば、計算は、
特殊数ハンドラ11に進み、算術的な計算は不要であ
る。他方、いずれのオペランドもこれら3種の特殊数で
はないならば、プロセスは決定ブロック段12に進み、
ここで、いずれかのオペランドが非正規化数であるか否
かを決定する。いずれかのオペランドがIEEE754
規格の定義によって非正規化されているならば、プロセ
スは事前正規化ブロック段13に進み、ここで、オペラ
ンドを正規化し、もう1ビット余分の拡張指数部範囲を
生成したのち、プロセスはマルチプレクサ15に続く。
決定ブロック段12の決定によっていずれのオペランド
も非正規化されていないならば、処理ブロック段14で
指数部が拡張され、プロセスは、マルチプレクサ15で
事前正規化経路と合流する。
号、指数部および仮数部を含み、これらが、入力オペラ
ンドのいずれがIEEE754規格によって定義された
特殊数の0、NaNまたは無限数に等しいか否かを決定
する決定ブロック段10に入力される。いずれかのオペ
ランドがこれらの特殊数の1つであるならば、計算は、
特殊数ハンドラ11に進み、算術的な計算は不要であ
る。他方、いずれのオペランドもこれら3種の特殊数で
はないならば、プロセスは決定ブロック段12に進み、
ここで、いずれかのオペランドが非正規化数であるか否
かを決定する。いずれかのオペランドがIEEE754
規格の定義によって非正規化されているならば、プロセ
スは事前正規化ブロック段13に進み、ここで、オペラ
ンドを正規化し、もう1ビット余分の拡張指数部範囲を
生成したのち、プロセスはマルチプレクサ15に続く。
決定ブロック段12の決定によっていずれのオペランド
も非正規化されていないならば、処理ブロック段14で
指数部が拡張され、プロセスは、マルチプレクサ15で
事前正規化経路と合流する。
【0014】そして、プロセスは4つの並行な経路に分
かれる。2つのオペランドの符号ビットどうしが符号計
算ブロック段16で処理される。この処理は単に符号ど
うしの排他的論理和である。2つの16ビット2進指数
部は、2進指数16進変換ブロック段100によって処
理される。2つのオペランドの16進指数部は、16進
指数部計算ブロック段104に出力され、ここで、これ
らの指数部を加算し、バイアスを減算する。113ビッ
トの被乗数仮数部は、ブロック段101により、2進指
数16進変換ブロック段100からの2進シフト量情報
を使用して処理される。被乗数仮数部は、XHと表記さ
れる56ビットの高位部と、XLと表記される60ビッ
トの低位部の2つの部分に分割される。116ビットが
その仮数部のために使用されて、113ビットの被乗数
と、2**0、2**−1、2**−2または2**−3であり
うる2進シフト量とを表す。乗数オペランドを形成する
113ビットの仮数部は、分割ブロック段102に入力
され、ここで、そのオペランドを、明示値1と、YHと
表記される56ビット高位部と、YLと表記される56
ビットの低位部とに分割する。
かれる。2つのオペランドの符号ビットどうしが符号計
算ブロック段16で処理される。この処理は単に符号ど
うしの排他的論理和である。2つの16ビット2進指数
部は、2進指数16進変換ブロック段100によって処
理される。2つのオペランドの16進指数部は、16進
指数部計算ブロック段104に出力され、ここで、これ
らの指数部を加算し、バイアスを減算する。113ビッ
トの被乗数仮数部は、ブロック段101により、2進指
数16進変換ブロック段100からの2進シフト量情報
を使用して処理される。被乗数仮数部は、XHと表記さ
れる56ビットの高位部と、XLと表記される60ビッ
トの低位部の2つの部分に分割される。116ビットが
その仮数部のために使用されて、113ビットの被乗数
と、2**0、2**−1、2**−2または2**−3であり
うる2進シフト量とを表す。乗数オペランドを形成する
113ビットの仮数部は、分割ブロック段102に入力
され、ここで、そのオペランドを、明示値1と、YHと
表記される56ビット高位部と、YLと表記される56
ビットの低位部とに分割する。
【0015】前掲の米国特許第5687106号では、
2進指数変換ブロック段は、1つの2進指数部を取り出
し、それを、以下の式に従って16進指数部および適切
なシフト量に変換することから成るものであった。
2進指数変換ブロック段は、1つの2進指数部を取り出
し、それを、以下の式に従って16進指数部および適切
なシフト量に変換することから成るものであった。
【0016】
【表1】
【0017】表中、Xbは2進指数部を表し、Xiは、
変換された16進内部指数部を表し、Xb>>2は、2
ビット右にシフトされて最下位2ビットを切り捨てたX
bであり、||は連結を表し、SIGNEXTは、Xiの
最上位ビットをXbの最上位ビットで設定し、それ未満
の有効ビットをこのビットの補数で満たすことを含む。
変換された16進内部指数部を表し、Xb>>2は、2
ビット右にシフトされて最下位2ビットを切り捨てたX
bであり、||は連結を表し、SIGNEXTは、Xiの
最上位ビットをXbの最上位ビットで設定し、それ未満
の有効ビットをこのビットの補数で満たすことを含む。
【0018】拡張フォーマットの場合、Xbは15ビッ
トであり、シフトが最下位2ビットを切り捨てると、1
3ビットが残る。Xiは14ビットであり、13ビット
の中間結果のSIGNEXTは、以下の式によって表す
ことができる。
トであり、シフトが最下位2ビットを切り捨てると、1
3ビットが残る。Xiは14ビットであり、13ビット
の中間結果のSIGNEXTは、以下の式によって表す
ことができる。
【0019】SIGNEXT(Xb(0:14)>>2)=Xb
(0)||Xb(0)′||Xb(1:12) ただし、′は1の補数を表す。
(0)||Xb(0)′||Xb(1:12) ただし、′は1の補数を表す。
【0020】2進指数16進変換ブロック段100は、
両方の2進指数変換の組み合わせを実行するが、1、Y
H、YLという固定フォーマットを有する乗数仮数部
と、両方の2進シフト量をその仮数部表現で取る被乗数
とを用いる。以下の表2中の式は、乗数Xが固定フォー
マットの仮数部を有し、それが、後で被乗数Yの変換に
適用される補正項を要することを示す。
両方の2進指数変換の組み合わせを実行するが、1、Y
H、YLという固定フォーマットを有する乗数仮数部
と、両方の2進シフト量をその仮数部表現で取る被乗数
とを用いる。以下の表2中の式は、乗数Xが固定フォー
マットの仮数部を有し、それが、後で被乗数Yの変換に
適用される補正項を要することを示す。
【0021】
【表2】
【0022】2進指数16進変換ブロック段100は、
固定フォーマットの乗数指数変換を実行し、補正項を被
乗数指数変換に送り、それがまた、2進シフト量信号を
生成し、この信号が被乗数仮数部分割ブロック段101
に伝送される。
固定フォーマットの乗数指数変換を実行し、補正項を被
乗数指数変換に送り、それがまた、2進シフト量信号を
生成し、この信号が被乗数仮数部分割ブロック段101
に伝送される。
【0023】分割ブロック段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を生成す
るための、以下の式によって表すことができる。
【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に送られ、偽ならば、報告結
果であると判定され、処理が完了する。
れ、合流ブロック段105で、計算ブロック段104か
らの16進指数部および計算ブロック段16からの符号
ビットと合流する。16進内部フォーマットで表現され
た積は、計算ブロック段106で2進フォーマットに戻
され、計算ブロック段17で丸められる。そして、その
結果が、決定ブロック段18で、オーバフローまたはア
ンダフロー状態に関してチェックされ、真ならば、固定
(fix-up)ブロック段19に送られ、偽ならば、報告結
果であると判定され、処理が完了する。
【0026】ブロック段10〜19は、好ましい実施態
様に独自のものではなく、ブロック段100〜106だ
けが独自のものである。本プロセスは、計算時間を乗算
4回分および加算4回分の待ち時間に減らす、仮数部の
独自の分割を提供する。中間結果は16進フォーマット
で維持され、それは、ハードウェア問題をデバッグする
容易さのため、16進ベース浮動小数点装置にとって利
点である。また、16進内部フォーマットを先にパイプ
ラインの一番上に伝送して、次の順番の命令とのデータ
依存性を解決することができる利点もある。
様に独自のものではなく、ブロック段100〜106だ
けが独自のものである。本プロセスは、計算時間を乗算
4回分および加算4回分の待ち時間に減らす、仮数部の
独自の分割を提供する。中間結果は16進フォーマット
で維持され、それは、ハードウェア問題をデバッグする
容易さのため、16進ベース浮動小数点装置にとって利
点である。また、16進内部フォーマットを先にパイプ
ラインの一番上に伝送して、次の順番の命令とのデータ
依存性を解決することができる利点もある。
【0027】好ましい実施態様の3種の代替態様が図2
〜図4に示されている。図2では、ブロック段10〜1
9ならびにブロック段104および105が図1と同じ
である第1の代替態様が示されている。指数部および仮
数部の処理ブロック段が異なる。図2における第1の代
替態様は、2つの16ビット指数部を2進指数16進変
換ブロック段200に受ける。この変換ブロック段20
0が、前掲の米国特許第5687106号に記載の実現
態様に従って被乗数および乗数の2進シフト量を別個に
計算し、それらのシフト量を分割ブロック段201およ
び202に伝送する。これらの2進シフト量が乗数およ
び被乗数の両方で表現されるものと仮定すると、いずれ
も表現するのに116ビットを要し、56ビット部、5
6ビット部および4ビット部への分割が両方に選択さ
れ、それぞれブロック段201および202によって実
行される。被乗数仮数部の3つの部分をXH、XLおよ
びXGと表記し、乗数仮数部のそれらをYH、YLおよ
びYGと表記する。この結果、仮数部計算ブロック段2
03は、Xの3部分×Yの部分で9回の乗算と、9個の
部分積を加算するための8回の加算とを要する。これ
は、好ましい実施態様よりもかなり低い性能になるが、
この方式は、乗数および被乗数が、パイプラインに対し
て内部的に、オペランドあたり116ビットを要する1
6進フォーマットで表現される場合に、それらを分割す
る簡潔な方法である。
〜図4に示されている。図2では、ブロック段10〜1
9ならびにブロック段104および105が図1と同じ
である第1の代替態様が示されている。指数部および仮
数部の処理ブロック段が異なる。図2における第1の代
替態様は、2つの16ビット指数部を2進指数16進変
換ブロック段200に受ける。この変換ブロック段20
0が、前掲の米国特許第5687106号に記載の実現
態様に従って被乗数および乗数の2進シフト量を別個に
計算し、それらのシフト量を分割ブロック段201およ
び202に伝送する。これらの2進シフト量が乗数およ
び被乗数の両方で表現されるものと仮定すると、いずれ
も表現するのに116ビットを要し、56ビット部、5
6ビット部および4ビット部への分割が両方に選択さ
れ、それぞれブロック段201および202によって実
行される。被乗数仮数部の3つの部分をXH、XLおよ
びXGと表記し、乗数仮数部のそれらをYH、YLおよ
びYGと表記する。この結果、仮数部計算ブロック段2
03は、Xの3部分×Yの部分で9回の乗算と、9個の
部分積を加算するための8回の加算とを要する。これ
は、好ましい実施態様よりもかなり低い性能になるが、
この方式は、乗数および被乗数が、パイプラインに対し
て内部的に、オペランドあたり116ビットを要する1
6進フォーマットで表現される場合に、それらを分割す
る簡潔な方法である。
【0028】図3では、ブロック段10〜19ならびに
ブロック段104および105が図1と同じである第2
の代替態様が示されている。図3の2進指数16進変換
ブロック段200は、図2における第1の代替態様のも
のと同じである。仮数部の処理ブロック段301〜30
3が異なり、第2の代替態様は、乗算器ハードウェアが
60ビットの仮数部1つをサポートすることを仮定して
第1の代替態様を最適化したものである。図3では、被
乗数仮数部を分割ブロック段301によって56ビット
と60ビットとに分割し、これらをXHおよびXLと表
記する。乗数仮数部を分割ブロック段302によって5
6ビット、56ビットおよび4ビットの3つの部分に分
割し、これらをそれぞれYH、YLおよびYGと表記す
る。被乗数仮数部の2つの部分および乗数仮数部の3つ
の部分があるため、この第2の代替態様の仮数部計算ブ
ロック段303は、6回の乗算を要し、また、部分積を
加算するために5回の加算を要する。これは、第1の代
替態様を上回る改善であるが、図1に示す好ましい実施
態様よりはかなり遅い。
ブロック段104および105が図1と同じである第2
の代替態様が示されている。図3の2進指数16進変換
ブロック段200は、図2における第1の代替態様のも
のと同じである。仮数部の処理ブロック段301〜30
3が異なり、第2の代替態様は、乗算器ハードウェアが
60ビットの仮数部1つをサポートすることを仮定して
第1の代替態様を最適化したものである。図3では、被
乗数仮数部を分割ブロック段301によって56ビット
と60ビットとに分割し、これらをXHおよびXLと表
記する。乗数仮数部を分割ブロック段302によって5
6ビット、56ビットおよび4ビットの3つの部分に分
割し、これらをそれぞれYH、YLおよびYGと表記す
る。被乗数仮数部の2つの部分および乗数仮数部の3つ
の部分があるため、この第2の代替態様の仮数部計算ブ
ロック段303は、6回の乗算を要し、また、部分積を
加算するために5回の加算を要する。これは、第1の代
替態様を上回る改善であるが、図1に示す好ましい実施
態様よりはかなり遅い。
【0029】図4には、ブロック段10〜19が図1と
同じである第3の代替態様が示されている。この第3の
代替態様は、指数部計算を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のため、より多くの加算を
要する。また、この第3の代替態様は、早期にデータ依
存性を解決する利点はなく、ネイティブの浮動小数点装
置フォーマットが16進である場合に中間結果を非ネイ
ティブのフォーマットで保持する。
同じである第3の代替態様が示されている。この第3の
代替態様は、指数部計算を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のため、より多くの加算を
要する。また、この第3の代替態様は、早期にデータ依
存性を解決する利点はなく、ネイティブの浮動小数点装
置フォーマットが16進である場合に中間結果を非ネイ
ティブのフォーマットで保持する。
【図面の簡単な説明】
【図1】好ましい実施態様の概要を示し、被乗数仮数部
を56/60ビットに分割し、乗数仮数部を1/56/
56ビットに分割する、2進拡張フォーマットのための
乗算のプロセス・フローを具体的に示す図である。
を56/60ビットに分割し、乗数仮数部を1/56/
56ビットに分割する、2進拡張フォーマットのための
乗算のプロセス・フローを具体的に示す図である。
【図2】第1の代替態様の概要を示し、被乗数仮数部を
56/56/4ビットに分割し、乗数仮数部を56/5
6/4ビットに分割する、2進拡張フォーマットのため
の乗算のプロセス・フローを具体的に示す図である。
56/56/4ビットに分割し、乗数仮数部を56/5
6/4ビットに分割する、2進拡張フォーマットのため
の乗算のプロセス・フローを具体的に示す図である。
【図3】第2の代替態様の概要を示し、被乗数仮数部を
56/60ビットに分割し、乗数仮数部を56/56/
4ビットに分割する、2進拡張フォーマットのための乗
算のプロセス・フローを具体的に示す図である。
56/60ビットに分割し、乗数仮数部を56/56/
4ビットに分割する、2進拡張フォーマットのための乗
算のプロセス・フローを具体的に示す図である。
【図4】第3の代替態様の概要を示し、被乗数仮数部を
1/56/56ビットに分割し、乗数仮数部を1/56
/56ビットに分割する、2進拡張フォーマットのため
の乗算のプロセス・フローを具体的に示す図である。
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)参考文献 特開 平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)
- 【請求項1】2進拡張精度フォーマットのためのIEE
E754規格によって定義される浮動小数点乗算命令
を、16進ベース倍長語フォーマットに最適化され且つ
2進4倍長語フォーマットが113ビットの仮数部を有
するように定義する浮動小数点ハードウェアを有するコ
ンピュータ・プロセッサ上で実行するに際し、4倍長語
フォーマット乗算を、一連のいくつかの長精度乗算およ
び拡張精度もしくは長精度加算として、乗数および被乗
数オペランドを用いて実行するための浮動小数点装置
(FPU)であって、 浮動小数点乗算器を有する前記コンピュータ・プロセッ
サによって乗算を実行するためのFPUデータフロー・
パイプラインを備え、前記パイプライン中で、前記乗数
および被乗数オペランドが符号ビット、指数部および仮
数部を含み、前記乗数および被乗数オペランドが特殊数
決定ブロック段に入力され、当該特殊数決定ブロック段
が、前記オペランドのいずれかがIEEE754規格に
よって定義される特殊数のうち0、NaN(非数)また
は無限数に等しいか否かを決定し、いずれかのオペラン
ドが前記特殊数の1つであるならば、乗算計算プロセス
中のデータフローが特殊数ハンドラによって処理される
ように進み、そこでは、算術的計算は不要であるが、い
ずれのオペランドも前記特殊数の1つではないならば、
前記乗算計算プロセス中のデータフローが非正規化決定
ブロック段に進み、当該非正規化決定ブロック段が、い
ずれかのオペランドが非正規化数ではないか否かを決定
し、いずれかのオペランドが、IEEE754規格によ
って定義されているように非正規化されているならば、
前記乗算計算プロセス中のデータフローが事前正規化ブ
ロック段に進み、当該事前正規化ブロック段が、当該オ
ペランドを正規化し、もう1ビット余分の拡張指数部範
囲を生成し、前記乗算計算プロセス中のデータフローが
並行経路マルチプレクサ段に進むが、前記非正規化決定
ブロック段による決定でいずれのオペランドも非正規化
されていないならば、指数拡張処理ブロック段で当該オ
ペランドの指数部が拡張されて、前記並行経路マルチプ
レクサ段に送られ、当該並行経路マルチプレクサ段が、
前記事前正規化ブロック段からのデータフローと、前記
指数拡張処理ブロック段からのデータフローとが合流し
たものを受け、そこで、前記乗算計算プロセス中のデー
タフローが4つの並行な経路に分かれ、前記並行な経路
のうち第1の経路が符号計算ブロック段を有し、前記並
行な経路のうち第2の経路が2進指数16進変換ブロッ
ク段を有し、前記並行な経路のうち第3の経路が被乗数
仮数部分割ブロック段を有し、前記並行な経路のうち第
4の経路が乗数仮数部分割ブロック段を有し、前記乗数
および被乗数オペランドの符号ビットが前記符号計算ブ
ロック段で処理され、前記乗数および被乗数オペランド
の2つの16ビット長2進指数部が前記2進指数16進
変換ブロック段によって2つの16進指数部にそれぞれ
変換され、当該2進指数16進変換ブロック段からの、
前記乗数および被乗数オペランドの16進指数部が前記
第2の経路中の16進指数計算ブロック段に出力され、
当該16進指数計算ブロック段が、前記乗数および被乗
数オペランドの16進指数部を加算し且つバイアスを減
算し、前記被乗数仮数部分割ブロック段が、前記並行経
路マルチプレクサ段から入力された前記被乗数オペラン
ドの113ビットの仮数部を受け、前記乗数仮数部分割
ブロック段が、前記並行経路マルチプレクサ段から入力
された前記乗数オペランドの113ビットの仮数部を受
け、前記第3の経路と前記第4の経路とが仮数部計算ブ
ロック段で合流して、当該仮数部計算ブロック段が乗算
および加算を実行して、部分積および中間和ならびに最
終積を提供し、当該最終積が前記仮数部計算ブロック段
の出力であり、前記仮数部計算ブロック段の出力と、前
記16進指数計算ブロック段からの前記16進指数部
と、前記符号計算ブロック段からの前記符号ビットとが
合流ブロック段で合流して積を提供し、当該積が16進
内部フォーマットで表現され、2進変換ブロック段で2
進フォーマットに戻され、丸められることを特徴とす
る、前記浮動小数点装置。 - 【請求項2】前記被乗数仮数部分割ブロック段が前記被
乗数オペランドの仮数部を56/60ビットに分割し、
前記乗数仮数部分割ブロック段が前記乗数オペランドの
仮数部を1/56/56ビットに分割し、前記2進指数
16進変換ブロック段からのシフト量情報が、前記被乗
数仮数部分割ブロック段に送られる、請求項1記載の浮
動小数点装置。 - 【請求項3】前記仮数部計算ブロック段が4回の乗算お
よび4回の加算を実行して、部分積および中間和ならび
に最終積を提供する、請求項2記載の浮動小数点装置。 - 【請求項4】前記被乗数仮数部分割ブロック段が前記被
乗数オペランドの仮数部を56/56/4ビットに分割
し、前記乗数仮数部分割ブロック段が前記乗数オペラン
ドの仮数部を56/56/4ビットに分割する、請求項
1記載の浮動小数点装置。 - 【請求項5】前記仮数部計算ブロック段が9回の乗算お
よび8回の加算を実行して、部分積および中間和ならび
に最終積を提供する、請求項4記載の浮動小数点装置。 - 【請求項6】前記被乗数仮数部分割ブロック段が前記被
乗数オペランドの仮数部を56/60ビットに分割し、
前記乗数仮数部分割ブロック段が前記乗数オペランドの
仮数部を56/56/4ビットに分割する、請求項1記
載の浮動小数点装置。 - 【請求項7】前記仮数部計算ブロック段が6回の乗算お
よび5回の加算を実行して、部分積および中間和ならび
に最終積を提供する、請求項6記載の浮動小数点装置。 - 【請求項8】前記2進指数16進変換ブロック段からの
シフト量情報が、前記被乗数仮数部分割ブロック段およ
び前記乗数仮数部分割ブロック段に送られる、請求項4
から請求項7のいずれか1項に記載の浮動小数点装置。 - 【請求項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】前記仮数部計算ブロック段が4回の乗算
および5回の加算を実行して、部分積および中間和なら
びに最終積を提供する、請求項9記載の浮動小数点装
置。
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)
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 |
---|---|
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 |