JPH02226420A - 浮動小数点演算実行装置 - Google Patents
浮動小数点演算実行装置Info
- Publication number
- JPH02226420A JPH02226420A JP1324159A JP32415989A JPH02226420A JP H02226420 A JPH02226420 A JP H02226420A JP 1324159 A JP1324159 A JP 1324159A JP 32415989 A JP32415989 A JP 32415989A JP H02226420 A JPH02226420 A JP H02226420A
- Authority
- JP
- Japan
- Prior art keywords
- floating point
- result
- operand
- cycle
- operands
- 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.)
- Pending
Links
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 10
- 238000010606 normalization Methods 0.000 description 6
- 230000001419 dependent effect Effects 0.000 description 4
- 230000001934 delay Effects 0.000 description 2
- 238000000034 method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
-
- 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
-
- 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/544—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 for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49942—Significance control
- G06F7/49947—Rounding
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computing Systems (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Software Systems (AREA)
- Nonlinear Science (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
A、産業上の利用分野
本発明は、概してデータ処理システムに関し、さらに詳
細には、浮動小数点数演算を行なうデータ処理システム
に関する。
細には、浮動小数点数演算を行なうデータ処理システム
に関する。
B、従来の技術
従来、浮動小数点数演算はデータ処理システムで逐次方
式で実行されている。あるデータ処理システムでは、浮
動小数点数演算は実際には中央処理装置内で、ソフトウ
ェアが提供するアルゴリズムに従って実行される。他の
システムでは、専用の浮動小数点数処理装置が設けられ
ている。どちらの方法も、第2の演算を開始する前に第
1の演算の答を完了しておく必要がある。最近のパイプ
ライン処理では、第2の演算を開始する前に第1の演算
の完了を待つ必要があると、不必要な遅延が生じる可能
性がある。
式で実行されている。あるデータ処理システムでは、浮
動小数点数演算は実際には中央処理装置内で、ソフトウ
ェアが提供するアルゴリズムに従って実行される。他の
システムでは、専用の浮動小数点数処理装置が設けられ
ている。どちらの方法も、第2の演算を開始する前に第
1の演算の答を完了しておく必要がある。最近のパイプ
ライン処理では、第2の演算を開始する前に第1の演算
の完了を待つ必要があると、不必要な遅延が生じる可能
性がある。
C0発明が解決しようとする課題
本発明の目的は、データ依存性を決定し、データに依存
する浮動小数点数演算をより効率的に実行しながら、浮
動小数点数演算をパイプライン方式で実行する浮動小数
点処理装置を提供することである。
する浮動小数点数演算をより効率的に実行しながら、浮
動小数点数演算をパイプライン方式で実行する浮動小数
点処理装置を提供することである。
01課題を解決するための手段
本発明によれば、第1サイクルで1組のオペランドに対
して第1の浮動小数点数演算を実行し、第2サイクル中
に1つのオペランド及び第1の浮動小数点数演算の結果
に対して第2の浮動小数点数演算を実行する回路を備え
た、浮動小数点数演算を実行するための装置が提供され
る。第3サイクルで、第2の浮動小数点数演算の結果を
丸めながら、次の後続サイクルでの第1の浮動小数点数
演算のために第2の浮動小数点数演算の結果を第1の浮
動小数点回路に転送するための制御回路が設けられる。
して第1の浮動小数点数演算を実行し、第2サイクル中
に1つのオペランド及び第1の浮動小数点数演算の結果
に対して第2の浮動小数点数演算を実行する回路を備え
た、浮動小数点数演算を実行するための装置が提供され
る。第3サイクルで、第2の浮動小数点数演算の結果を
丸めながら、次の後続サイクルでの第1の浮動小数点数
演算のために第2の浮動小数点数演算の結果を第1の浮
動小数点回路に転送するための制御回路が設けられる。
好ましい実施例では、乗算及び加算の両方を実行する浮
動小数点数演算装置が設けられる。浮動小数点数演算装
置用の制御回路は、一連の浮動小数点数演算で第2組の
オペランドが第1組のオペランドから計算された結果を
いつ含むかを検出することができる。この第2組のオペ
ランドがこの結果を含む時、データ依存性が宣言される
。制御回路は、丸めが実際に完了する前に第1の演算の
結果をもたらすことにより、データ依存性を処理する。
動小数点数演算装置が設けられる。浮動小数点数演算装
置用の制御回路は、一連の浮動小数点数演算で第2組の
オペランドが第1組のオペランドから計算された結果を
いつ含むかを検出することができる。この第2組のオペ
ランドがこの結果を含む時、データ依存性が宣言される
。制御回路は、丸めが実際に完了する前に第1の演算の
結果をもたらすことにより、データ依存性を処理する。
好ましい実施例では、この丸め操作を使用して直接入力
を浮動小数点数乗算機構に供給する。
を浮動小数点数乗算機構に供給する。
また、制御回路は、第2の浮動小数点数演算を一層迅速
に実行するため、第1の浮動小数点数演算からの答が浮
動小数点回路に直接供給されるようにする。
に実行するため、第1の浮動小数点数演算からの答が浮
動小数点回路に直接供給されるようにする。
E、実施例
本発明は浮動小数点数演算装置に関する。第1図に浮動
小数点プロセッサのブロック・ダイヤグラムを示す。レ
ジスタ・ファイル10が設けられている。好ましい実施
例では、レジスタ・ファイル1oは、40ワードを記憶
する。レジスタ・ファイル10は、出力をAオペランド
・ラッチ12、Bオペランド・ラッチ14及びCオペラ
ンド・ラッチ16に供給する。好ましい実施例では、A
オペランド・ラッチ及びBオペランド・ラッチは、浮動
小数点数演算の乗算部分で使用されるオペランドを含む
。Cオペランド・ラッチ16は加算オペランドを含む。
小数点プロセッサのブロック・ダイヤグラムを示す。レ
ジスタ・ファイル10が設けられている。好ましい実施
例では、レジスタ・ファイル1oは、40ワードを記憶
する。レジスタ・ファイル10は、出力をAオペランド
・ラッチ12、Bオペランド・ラッチ14及びCオペラ
ンド・ラッチ16に供給する。好ましい実施例では、A
オペランド・ラッチ及びBオペランド・ラッチは、浮動
小数点数演算の乗算部分で使用されるオペランドを含む
。Cオペランド・ラッチ16は加算オペランドを含む。
Aオペランド・ラッチ12の出力は乗算機構22に供給
される。Bオペランド・ラッチ14の出力はマルチプレ
クサ18を介して乗算機構22に供給される。Cオペラ
ンド・ラッチ16の出力はマルチプレクサ20に供給さ
れ、次に桁合せシフタ24に供給される。桁合せシフタ
の目的は、加算オペランドを乗算機構22で実行される
乗算の結果と桁合せすることである。乗算機構22は出
力を第1の部分積ラッチ26及び第2の部分積ラッチ2
8に供給する。ラッチ26及び28の出力は3:2桁上
げ保管加算機構32に供給される。桁合せシフタ24は
、出力を加数ラッチ30に供給し、加数ラッチ30も出
力を3=2桁上げ保管加算機構32に供給する。桁上げ
保管加算機構32は2つの出力を全加算機構34に供給
する。全加算機構34の出力は、正規化回路36で正規
化される。結果ラッチ38は正規化動作の結果を記憶す
る。結果ラッチのデータは次に丸め回路40で丸められ
、通常の動作では、レジスタ・ファイル10に再び戻さ
れる。
される。Bオペランド・ラッチ14の出力はマルチプレ
クサ18を介して乗算機構22に供給される。Cオペラ
ンド・ラッチ16の出力はマルチプレクサ20に供給さ
れ、次に桁合せシフタ24に供給される。桁合せシフタ
の目的は、加算オペランドを乗算機構22で実行される
乗算の結果と桁合せすることである。乗算機構22は出
力を第1の部分積ラッチ26及び第2の部分積ラッチ2
8に供給する。ラッチ26及び28の出力は3:2桁上
げ保管加算機構32に供給される。桁合せシフタ24は
、出力を加数ラッチ30に供給し、加数ラッチ30も出
力を3=2桁上げ保管加算機構32に供給する。桁上げ
保管加算機構32は2つの出力を全加算機構34に供給
する。全加算機構34の出力は、正規化回路36で正規
化される。結果ラッチ38は正規化動作の結果を記憶す
る。結果ラッチのデータは次に丸め回路40で丸められ
、通常の動作では、レジスタ・ファイル10に再び戻さ
れる。
制御回路42は制御線8を含む。制御線8は実際には、
第1図に示す浮動小数点数演算装置の種々の要素を制御
する1組の制御線である。制御回路42の機能の1つは
、乗算機構22での乗算のため指数の加算を実行するこ
とである。桁合せシフタ24は、この情報を使って、加
算オペランドを適切に桁合せする。制御回路42のもう
1つの機能は、データ依存性がいつ存在するかを判定す
ることである。データ依存性は、実行しようとする浮動
小数点数演算が、前の浮動小数点数演算の結果であるオ
ペランドを含む時に定義される。通常の動作では、前の
浮動小数点数演算の結果をレジスタ・ファイルに記憶す
ることになる。制御回路42はデータ依存性を検出する
ことができるので、丸め回路40から結果を受は取って
それを2つのマルチプレクサ18及び20の一方に直接
供給する機能が備わっている。こうして、後続の浮動小
数点数演算での乗算用のオペランドである、ラッチ38
からの丸められていない結果、または加算用のオペラン
ドである丸められた結果を、レジスタ・ファイル10、
及びラッチ14及び16の一方を通過せずに演算機構に
直接供給することができる。さらに、制御回路42は、
丸め操作が必要か否かを示す入力41を乗算機構に供給
する機能を丸め回路40に与える。
第1図に示す浮動小数点数演算装置の種々の要素を制御
する1組の制御線である。制御回路42の機能の1つは
、乗算機構22での乗算のため指数の加算を実行するこ
とである。桁合せシフタ24は、この情報を使って、加
算オペランドを適切に桁合せする。制御回路42のもう
1つの機能は、データ依存性がいつ存在するかを判定す
ることである。データ依存性は、実行しようとする浮動
小数点数演算が、前の浮動小数点数演算の結果であるオ
ペランドを含む時に定義される。通常の動作では、前の
浮動小数点数演算の結果をレジスタ・ファイルに記憶す
ることになる。制御回路42はデータ依存性を検出する
ことができるので、丸め回路40から結果を受は取って
それを2つのマルチプレクサ18及び20の一方に直接
供給する機能が備わっている。こうして、後続の浮動小
数点数演算での乗算用のオペランドである、ラッチ38
からの丸められていない結果、または加算用のオペラン
ドである丸められた結果を、レジスタ・ファイル10、
及びラッチ14及び16の一方を通過せずに演算機構に
直接供給することができる。さらに、制御回路42は、
丸め操作が必要か否かを示す入力41を乗算機構に供給
する機能を丸め回路40に与える。
第2図は、第1図の乗算機構に含まれる桁上げ保管加算
機構ツリーの図である。線41が桁上げ保管加算機構C
SA#11に入力を供給することに留意されたい。この
入力は、前に計算された結果が切り上げられたかどうか
を示すのに使用される。切り上げられていた場合は、本
明細書に開示する方式で1が加算される。ツリーを介す
る伝播遅延のため、丸めを適時に加えることができる。
機構ツリーの図である。線41が桁上げ保管加算機構C
SA#11に入力を供給することに留意されたい。この
入力は、前に計算された結果が切り上げられたかどうか
を示すのに使用される。切り上げられていた場合は、本
明細書に開示する方式で1が加算される。ツリーを介す
る伝播遅延のため、丸めを適時に加えることができる。
第3図は、データ依存性が発生しなかった七きの制御回
路42の動作を示す流れ図である。ステップ100で、
浮動小数点命令を復号する。ステップ102で、レジス
タ・ファイル10からオペランドを読み取る。ステップ
100及びステップ102は、いわゆる復号サイクルを
構成する。次に、ステップ104で乗算を行ない、ステ
ップ106で加算桁合せを行なう。実際には、乗算ステ
ップ104及び加算桁合せステップ106はそれぞれオ
ーバーラツプする。これら2つのステップ1゜4及び1
06を乗算サイクルと呼ぶ。ステップ108で、加算を
実行する。次にステップ110で、正規化動作を実行す
る。ステップ108及び110を加算サイクルと呼ぶ。
路42の動作を示す流れ図である。ステップ100で、
浮動小数点命令を復号する。ステップ102で、レジス
タ・ファイル10からオペランドを読み取る。ステップ
100及びステップ102は、いわゆる復号サイクルを
構成する。次に、ステップ104で乗算を行ない、ステ
ップ106で加算桁合せを行なう。実際には、乗算ステ
ップ104及び加算桁合せステップ106はそれぞれオ
ーバーラツプする。これら2つのステップ1゜4及び1
06を乗算サイクルと呼ぶ。ステップ108で、加算を
実行する。次にステップ110で、正規化動作を実行す
る。ステップ108及び110を加算サイクルと呼ぶ。
ステップ112で、正規化サイクルの結果を丸める。次
にステップ114で、丸めた結果を浮動小数点レジスタ
・ファイル10に書き込む。
にステップ114で、丸めた結果を浮動小数点レジスタ
・ファイル10に書き込む。
第4図には、乗算オペランドに対するデータ依存性が存
在する演算の制御の流れを示す。復号サイクルでは、ス
テップ120でまず命令を復号する。ステップ122で
、その命令用のオペランドを検査して、実際にデータ依
存性があるかどうか判定する。この例では、オペランド
Bは依存オペランドである(すなわち、このBオペラン
ドは、実際には前の浮動小数点数演算の丸められていな
い結果である)。ステップ124で、浮動小数点レジス
タ10から、Aオペランド及びCオペランドをロードす
る。ステップ126で、マルチプレクサ18がBオペラ
ンドを乗算機構22にロードし、ステップ128で乗算
を実行する。ステップ128では、丸め回路40からの
丸め調整が、前述のように線41を介してもたらされる
。また、乗算機構22の動作と同時に、ステップ130
で、桁合せシフタが加算オペランドをシフトする。ステ
ップ132で加算を実行し、ステップ134で正規化を
行なう。前と同様にステップ136で丸めを行ない、最
後にステップ138で結果を浮動小数点レジスタ・ファ
イル10に書き込む。
在する演算の制御の流れを示す。復号サイクルでは、ス
テップ120でまず命令を復号する。ステップ122で
、その命令用のオペランドを検査して、実際にデータ依
存性があるかどうか判定する。この例では、オペランド
Bは依存オペランドである(すなわち、このBオペラン
ドは、実際には前の浮動小数点数演算の丸められていな
い結果である)。ステップ124で、浮動小数点レジス
タ10から、Aオペランド及びCオペランドをロードす
る。ステップ126で、マルチプレクサ18がBオペラ
ンドを乗算機構22にロードし、ステップ128で乗算
を実行する。ステップ128では、丸め回路40からの
丸め調整が、前述のように線41を介してもたらされる
。また、乗算機構22の動作と同時に、ステップ130
で、桁合せシフタが加算オペランドをシフトする。ステ
ップ132で加算を実行し、ステップ134で正規化を
行なう。前と同様にステップ136で丸めを行ない、最
後にステップ138で結果を浮動小数点レジスタ・ファ
イル10に書き込む。
第5図は、加算オペランドに対するデータ依存性が存在
する場合の、浮動小数点数演算の制御の流れを示す。ス
テップ140で命令を復号し、ステップ142でオペラ
ンドを検査する。この例では、Cオペランドは実際には
前の浮動小数点数演算の結果である。したがって、ステ
ップ144で浮動小数点レジスタ・ファイル10からA
オペランド及びBオペランドをロードする。ステップ1
46で、マルチプレクサ20が丸め回路40がらCオペ
ランドを受は取る。ステップ142で乗算を実行し、ス
テップ150で加算桁合せシフトを行なう。加算桁合せ
は比較的高速なので、丸め操作の完了後に行なう。ステ
ップ152で加算を実行し、ステップ154で加算結果
の正規化を行なう。ステップ156でこの正規化された
結果を丸め、ステップ158で浮動小数点レジスタ・フ
ァイル10に書き込む。
する場合の、浮動小数点数演算の制御の流れを示す。ス
テップ140で命令を復号し、ステップ142でオペラ
ンドを検査する。この例では、Cオペランドは実際には
前の浮動小数点数演算の結果である。したがって、ステ
ップ144で浮動小数点レジスタ・ファイル10からA
オペランド及びBオペランドをロードする。ステップ1
46で、マルチプレクサ20が丸め回路40がらCオペ
ランドを受は取る。ステップ142で乗算を実行し、ス
テップ150で加算桁合せシフトを行なう。加算桁合せ
は比較的高速なので、丸め操作の完了後に行なう。ステ
ップ152で加算を実行し、ステップ154で加算結果
の正規化を行なう。ステップ156でこの正規化された
結果を丸め、ステップ158で浮動小数点レジスタ・フ
ァイル10に書き込む。
第6図は、単一の命令に対する浮動小数点数演算装置の
パイプラインの流れを示す簡単なタイミング図である。
パイプラインの流れを示す簡単なタイミング図である。
これはパイプライン動作なので、第2の命令をその復号
サイクルをサイクル2で開始することを理解されたい。
サイクルをサイクル2で開始することを理解されたい。
同様に、第3の命令は、第6図に示すようにサイクル3
でその復号サイクルを開始する。
でその復号サイクルを開始する。
第7図は、乗算オペランド依存性が存在する状態でのパ
イプラインの流れを示すタイミング図である。サイクル
2での復号動作は、実際にはサイクル2及び3の間に行
なわれることに留意されたい。次にサイクル4で、デー
タ依存オペランドの多重化を実行する。これは結果の丸
めを含むサイクル4での初期の動作と同時に行なわれる
。
イプラインの流れを示すタイミング図である。サイクル
2での復号動作は、実際にはサイクル2及び3の間に行
なわれることに留意されたい。次にサイクル4で、デー
タ依存オペランドの多重化を実行する。これは結果の丸
めを含むサイクル4での初期の動作と同時に行なわれる
。
第8図は、加算オペランドが前の演算に依存する浮動小
数点数演算の場合の、パイプラインの流れを示すタイミ
ング図である。この場合も、サイクル2での第2の命令
のための復号動作に2サイクル(サイクル2及び3)か
かる。第2の命令の乗算サイクルが第1の命令の書込み
サイクル(サイクル4)とオーバーラツプし、したがっ
て、丸め動作の結果を加算桁合せ動作用のCオペランド
に多重化することができる。
数点数演算の場合の、パイプラインの流れを示すタイミ
ング図である。この場合も、サイクル2での第2の命令
のための復号動作に2サイクル(サイクル2及び3)か
かる。第2の命令の乗算サイクルが第1の命令の書込み
サイクル(サイクル4)とオーバーラツプし、したがっ
て、丸め動作の結果を加算桁合せ動作用のCオペランド
に多重化することができる。
F0発明の詳細
な説明したように、本発明によれば、第1サイクルで1
組のオペランドに対して第1の浮動小数点数演算を実行
し、第2サイクル中に1つのオペランド及び第1の浮動
小数点数演算の結果に対して第2の浮動小数点数演算を
実行する回路を備えた、浮動小数点数演算を実行するた
めの装置が提供される。第3サイクルで、第2の浮動小
数点数演算の結果を丸めながら、次の後続サイクルでの
第1の浮動小数点演算のために第2の浮動小数点数演算
の結果を第1の浮動小数点数回路に転送するための制御
回路が設けられる。
組のオペランドに対して第1の浮動小数点数演算を実行
し、第2サイクル中に1つのオペランド及び第1の浮動
小数点数演算の結果に対して第2の浮動小数点数演算を
実行する回路を備えた、浮動小数点数演算を実行するた
めの装置が提供される。第3サイクルで、第2の浮動小
数点数演算の結果を丸めながら、次の後続サイクルでの
第1の浮動小数点演算のために第2の浮動小数点数演算
の結果を第1の浮動小数点数回路に転送するための制御
回路が設けられる。
したがって、データ依存性を決定し、データに依存する
浮動小数点数演算をより効率的に実行しながら、浮動小
数点数演算をパイプライン方式で実行する浮動小数点処
理装置が実現される。
浮動小数点数演算をより効率的に実行しながら、浮動小
数点数演算をパイプライン方式で実行する浮動小数点処
理装置が実現される。
第1図は、浮動小数点数演算装置のブロック・ダイヤグ
ラムである。 第2図は、乗算機構のブロック・ダイヤグラムである。 第3図は、データ依存性なしに動作するときの制御回路
の動作を示す流れ図である。 第4図は、乗算オペランドの一方に対するデータ依存性
が存在するときの制御回路の動作を示す流れ図である。 第5図は、加算オペランドに対するデータ依存性が存在
するときの制御回路の動作を示す流れ図である。 第6図は、データ依存性が存在しないときの、浮動小数
点数演算装置のパイプライン動作を示すタイミング図で
ある。 第7図は、乗算オペランドのデータ依存性が存在すると
きの、浮動小数点数演算装置のパイプライン動作を示す
タイミング図である。 第8図は、加算オペランドのデータ依存性が存在すると
きの、浮動小数点数演算装置のパイプライン動作を示す
タイミング図である。 10・・・・レジスタ・ファイル、12.14.16・
・・・オペランド・ラッチ、18.20・・・・マルチ
プレクサ、22・・・・乗算機構、24・・・・桁合せ
シフタ、26.28・・・・部分積ラッチ、30・・・
・加算ラッチ、32・・・・3:2桁上げ保管加算機構
、34・・・・全加算機構、36・・・・正規化回路、
38・・・・結果ラッチ、40・・・・丸め回路、42
・・・・制御回路。 出願人 インターナシ日ナル・ビジネス・マンーンズ
・ツーボレーション 復代理人 弁理士 澤 1) 俊 夫 第6図 1動小数A詳細バイブライン・フロ (データ依存牲なし〕 1号サイクル g#夏プサイク ル算サイクル 書込みサイクル
ラムである。 第2図は、乗算機構のブロック・ダイヤグラムである。 第3図は、データ依存性なしに動作するときの制御回路
の動作を示す流れ図である。 第4図は、乗算オペランドの一方に対するデータ依存性
が存在するときの制御回路の動作を示す流れ図である。 第5図は、加算オペランドに対するデータ依存性が存在
するときの制御回路の動作を示す流れ図である。 第6図は、データ依存性が存在しないときの、浮動小数
点数演算装置のパイプライン動作を示すタイミング図で
ある。 第7図は、乗算オペランドのデータ依存性が存在すると
きの、浮動小数点数演算装置のパイプライン動作を示す
タイミング図である。 第8図は、加算オペランドのデータ依存性が存在すると
きの、浮動小数点数演算装置のパイプライン動作を示す
タイミング図である。 10・・・・レジスタ・ファイル、12.14.16・
・・・オペランド・ラッチ、18.20・・・・マルチ
プレクサ、22・・・・乗算機構、24・・・・桁合せ
シフタ、26.28・・・・部分積ラッチ、30・・・
・加算ラッチ、32・・・・3:2桁上げ保管加算機構
、34・・・・全加算機構、36・・・・正規化回路、
38・・・・結果ラッチ、40・・・・丸め回路、42
・・・・制御回路。 出願人 インターナシ日ナル・ビジネス・マンーンズ
・ツーボレーション 復代理人 弁理士 澤 1) 俊 夫 第6図 1動小数A詳細バイブライン・フロ (データ依存牲なし〕 1号サイクル g#夏プサイク ル算サイクル 書込みサイクル
Claims (2)
- (1)第1のサイクルで1組のオペランドに対して第1
の浮動小数点数演算を実行するための手段と、第2のサ
イクルでオペランドと上記第1の浮動小数点数演算の結
果とに対して第2の浮動小数点数演算を実行するための
手段と、 第3のサイクルで、第2の浮動小数点数演算の結果を丸
めながら、次の後続サイクルでの第1の浮動小数点数演
算のために、第2の浮動小数点数演算の結果を上記第1
の浮動小数点演算を実行する手段に供給するための制御
手段と を含む、浮動小数点数演算実行装置。 - (2)複数の浮動小数点オペランドを記憶するための手
段と、 上記記憶手段に接続された、第1組の記憶されたオペラ
ンドに対して第1の浮動小数点数演算を実行するための
第1の浮動小数点数演算手段と、上記記憶手段及び上記
第1の浮動小数点数演算手段に接続された、第1のオペ
ランドと第1の浮動小数点数演算の結果とに対して第2
の浮動小数点数演算を実行するための手段と、 第2の浮動小数点数演算の結果を丸めるための手段と、 第2組のオペランドが第1組のオペランド及び第1のオ
ペランドに対する浮動小数点数演算からの結果をいつ含
むかを判定し、第1組のオペランドと第1のオペランド
に対する浮動小数点数演算が丸め手段で丸められている
間に、第1組のオペランドと第1のオペランドに対する
浮動小数点数演算の結果を第1の浮動小数点数演算手段
に供給するための制御手段と を含む、浮動小数点数演算実行装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/297,781 US4999802A (en) | 1989-01-13 | 1989-01-13 | Floating point arithmetic two cycle data flow |
US297781 | 1989-01-13 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH02226420A true JPH02226420A (ja) | 1990-09-10 |
Family
ID=23147715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1324159A Pending JPH02226420A (ja) | 1989-01-13 | 1989-12-15 | 浮動小数点演算実行装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US4999802A (ja) |
EP (1) | EP0377994B1 (ja) |
JP (1) | JPH02226420A (ja) |
DE (1) | DE68923264T2 (ja) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5379351A (en) * | 1992-02-19 | 1995-01-03 | Integrated Information Technology, Inc. | Video compression/decompression processing and processors |
US5150470A (en) * | 1989-12-20 | 1992-09-22 | International Business Machines Corporation | Data processing system with instruction queue having tags indicating outstanding data status |
JPH04127364A (ja) * | 1990-09-19 | 1992-04-28 | Nec Corp | 積和算器 |
US5206823A (en) * | 1990-12-13 | 1993-04-27 | Micron Technology, Inc. | Apparatus to perform Newton iterations for reciprocal and reciprocal square root |
US5220524A (en) * | 1990-12-13 | 1993-06-15 | Micron Technology, Inc. | Machine method to perform newton iterations for reciprocals |
US5157624A (en) * | 1990-12-13 | 1992-10-20 | Micron Technology, Inc. | Machine method to perform newton iterations for reciprocal square roots |
US5241493A (en) * | 1991-12-16 | 1993-08-31 | International Business Machines Corporation | Floating point arithmetic unit with size efficient pipelined multiply-add architecture |
US5347482A (en) * | 1992-12-14 | 1994-09-13 | Hal Computer Systems, Inc. | Multiplier tree using nine-to-three adders |
CA2091539A1 (en) * | 1993-03-11 | 1994-09-12 | Jan Fandrianto | Video compression/decompression processing and processors |
US5341321A (en) * | 1993-05-05 | 1994-08-23 | Hewlett-Packard Company | Floating point arithmetic unit using modified Newton-Raphson technique for division and square root |
US5671170A (en) * | 1993-05-05 | 1997-09-23 | Hewlett-Packard Company | Method and apparatus for correctly rounding results of division and square root computations |
ATE184153T1 (de) * | 1994-06-10 | 1999-09-15 | Basf Ag | Fungizide mischungen |
US5530663A (en) * | 1994-11-14 | 1996-06-25 | International Business Machines Corporation | Floating point unit for calculating a compound instruction A+B×C in two cycles |
US5583805A (en) * | 1994-12-09 | 1996-12-10 | International Business Machines Corporation | Floating-point processor having post-writeback spill stage |
US6643765B1 (en) | 1995-08-16 | 2003-11-04 | Microunity Systems Engineering, Inc. | Programmable processor with group floating point operations |
US5880983A (en) * | 1996-03-25 | 1999-03-09 | International Business Machines Corporation | Floating point split multiply/add system which has infinite precision |
US5844830A (en) * | 1996-08-07 | 1998-12-01 | Sun Microsystems, Inc. | Executing computer instrucrions by circuits having different latencies |
WO1998006029A1 (en) * | 1996-08-07 | 1998-02-12 | Valery Yakovlevich Gorshtein | Apparatus and methods for execution of computer instructions |
US5790444A (en) * | 1996-10-08 | 1998-08-04 | International Business Machines Corporation | Fast alignment unit for multiply-add floating point unit |
US6148314A (en) * | 1998-08-28 | 2000-11-14 | Arm Limited | Round increment in an adder circuit |
AU2001286516B8 (en) * | 2000-08-22 | 2008-04-24 | Walrus Holdings, Llc | Remote detection, monitoring and information management system |
US6904446B2 (en) * | 2001-08-24 | 2005-06-07 | Freescale Semiconductor, Inc. | Floating point multiplier/accumulator with reduced latency and method thereof |
US20050228844A1 (en) * | 2004-04-08 | 2005-10-13 | International Business Machines Corporation | Fast operand formatting for a high performance multiply-add floating point-unit |
US7730117B2 (en) * | 2005-02-09 | 2010-06-01 | International Business Machines Corporation | System and method for a floating point unit with feedback prior to normalization and rounding |
US20060179096A1 (en) * | 2005-02-10 | 2006-08-10 | International Business Machines Corporation | System and method for a fused multiply-add dataflow with early feedback prior to rounding |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS55147737A (en) * | 1979-05-08 | 1980-11-17 | Nec Corp | Operation unit for variable pipe line |
JPS58151645A (ja) * | 1982-02-18 | 1983-09-08 | アイテイ−テイ−・インダストリ−ズ・インコ−ポレ−テツド | デジタル並列計算回路 |
JPS5932038A (ja) * | 1982-08-13 | 1984-02-21 | Hitachi Ltd | 浮動小数点加算器 |
JPS6186840A (ja) * | 1984-09-27 | 1986-05-02 | アドバンスト・マイクロ・デイバイシズ・インコーポレーテツド | 完全組合わせ算術装置 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3131293A (en) * | 1960-07-14 | 1964-04-28 | Ibm | Computing system |
US3508038A (en) * | 1966-08-30 | 1970-04-21 | Ibm | Multiplying apparatus for performing division using successive approximate reciprocals of a divisor |
US3551665A (en) * | 1966-09-13 | 1970-12-29 | Ibm | Floating point binary adder utilizing completely sequential hardware |
US3697734A (en) * | 1970-07-28 | 1972-10-10 | Singer Co | Digital computer utilizing a plurality of parallel asynchronous arithmetic units |
US3787673A (en) * | 1972-04-28 | 1974-01-22 | Texas Instruments Inc | Pipelined high speed arithmetic unit |
US4075704A (en) * | 1976-07-02 | 1978-02-21 | Floating Point Systems, Inc. | Floating point data processor for high speech operation |
US4179734A (en) * | 1976-07-02 | 1979-12-18 | Floating Point Systems, Inc. | Floating point data processor having fast access memory means |
US4295203A (en) * | 1979-11-09 | 1981-10-13 | Honeywell Information Systems Inc. | Automatic rounding of floating point operands |
US4390961A (en) * | 1980-12-24 | 1983-06-28 | Honeywell Information Systems Inc. | Data processor performing a decimal multiply operation using a read only memory |
US4484300A (en) * | 1980-12-24 | 1984-11-20 | Honeywell Information Systems Inc. | Data processor having units carry and tens carry apparatus supporting a decimal multiply operation |
JPS57134774A (en) * | 1981-02-13 | 1982-08-20 | Hitachi Ltd | Vector operating device |
JPS592143A (ja) * | 1982-06-29 | 1984-01-07 | Hitachi Ltd | 情報処理装置 |
US4598359A (en) * | 1983-04-01 | 1986-07-01 | Honeywell Information Systems Inc. | Apparatus for forward or reverse reading of multiple variable length operands |
US4589067A (en) * | 1983-05-27 | 1986-05-13 | Analogic Corporation | Full floating point vector processor with dynamically configurable multifunction pipelined ALU |
JPS60140422A (ja) * | 1983-12-28 | 1985-07-25 | Nec Corp | 演算処理装置 |
US4766564A (en) * | 1984-08-13 | 1988-08-23 | International Business Machines Corporation | Dual putaway/bypass busses for multiple arithmetic units |
WO1986002181A1 (en) * | 1984-09-28 | 1986-04-10 | Motorola, Inc. | A digital signal processor for single cycle multiply/accumulation |
US4799182A (en) * | 1984-10-16 | 1989-01-17 | The Commonwealth Of Australia | Cellular floating-point serial pipelined multiplier |
US4683547A (en) * | 1984-10-25 | 1987-07-28 | International Business Machines Corporation | Special accumulate instruction for multiple floating point arithmetic units which use a putaway bus to enhance performance |
US4825400A (en) * | 1986-01-13 | 1989-04-25 | General Electric Company | Floating point accumulator circuit |
JPH0644225B2 (ja) * | 1986-03-27 | 1994-06-08 | 日本電気株式会社 | 浮動小数点丸め正規化回路 |
US4849923A (en) * | 1986-06-27 | 1989-07-18 | Digital Equipment Corporation | Apparatus and method for execution of floating point operations |
US4841467A (en) * | 1987-10-05 | 1989-06-20 | General Electric Company | Architecture to implement floating point multiply/accumulate operations |
-
1989
- 1989-01-13 US US07/297,781 patent/US4999802A/en not_active Expired - Fee Related
- 1989-12-15 JP JP1324159A patent/JPH02226420A/ja active Pending
- 1989-12-20 EP EP89313405A patent/EP0377994B1/en not_active Expired - Lifetime
- 1989-12-20 DE DE68923264T patent/DE68923264T2/de not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS55147737A (en) * | 1979-05-08 | 1980-11-17 | Nec Corp | Operation unit for variable pipe line |
JPS58151645A (ja) * | 1982-02-18 | 1983-09-08 | アイテイ−テイ−・インダストリ−ズ・インコ−ポレ−テツド | デジタル並列計算回路 |
JPS5932038A (ja) * | 1982-08-13 | 1984-02-21 | Hitachi Ltd | 浮動小数点加算器 |
JPS6186840A (ja) * | 1984-09-27 | 1986-05-02 | アドバンスト・マイクロ・デイバイシズ・インコーポレーテツド | 完全組合わせ算術装置 |
Also Published As
Publication number | Publication date |
---|---|
US4999802A (en) | 1991-03-12 |
DE68923264T2 (de) | 1996-02-08 |
EP0377994A3 (en) | 1991-07-31 |
EP0377994A2 (en) | 1990-07-18 |
EP0377994B1 (en) | 1995-06-28 |
DE68923264D1 (de) | 1995-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH02226420A (ja) | 浮動小数点演算実行装置 | |
US5212662A (en) | Floating point arithmetic two cycle data flow | |
JP3983857B2 (ja) | ベクトルレジスタの複数バンクを用いた単一命令複数データ処理 | |
KR102413832B1 (ko) | 벡터 곱셈 덧셈 명령 | |
JP5647859B2 (ja) | 乗累算演算を実行するための装置および方法 | |
JP2645669B2 (ja) | データ処理システム | |
US5261113A (en) | Apparatus and method for single operand register array for vector and scalar data processing operations | |
US8918627B2 (en) | Multithreaded processor with multiple concurrent pipelines per thread | |
US7293159B2 (en) | Coupling GP processor with reserved instruction interface via coprocessor port with operation data flow to application specific ISA processor with translation pre-decoder | |
US5619664A (en) | Processor with architecture for improved pipelining of arithmetic instructions by forwarding redundant intermediate data forms | |
JPH09311786A (ja) | データ処理装置 | |
US20030005261A1 (en) | Method and apparatus for attaching accelerator hardware containing internal state to a processing core | |
EP0588341A2 (en) | Data processor | |
JP3578883B2 (ja) | データ処理装置 | |
JPH03286332A (ja) | デジタルデータ処理装置 | |
US6055628A (en) | Microprocessor with a nestable delayed branch instruction without branch related pipeline interlocks | |
US6092183A (en) | Data processor for processing a complex instruction by dividing it into executing units | |
WO2012061416A1 (en) | Methods and apparatus for a read, merge, and write register file | |
JP2874351B2 (ja) | 並列パイプライン命令処理装置 | |
JPH1091432A (ja) | プログラム実行方法およびプログラム実行装置 | |
EP1050800A1 (en) | A pipelined execution unit | |
JP3278441B2 (ja) | ベクトル処理装置 | |
Stephenson | Case study of the pipelined arithmetic unit for the TI advanced scientific computer | |
JP3524240B2 (ja) | 並列命令処理装置 | |
JP2861234B2 (ja) | 命令処理装置 |