JP2000066894A - パイプライン化浮動小数点ストア - Google Patents

パイプライン化浮動小数点ストア

Info

Publication number
JP2000066894A
JP2000066894A JP11037239A JP3723999A JP2000066894A JP 2000066894 A JP2000066894 A JP 2000066894A JP 11037239 A JP11037239 A JP 11037239A JP 3723999 A JP3723999 A JP 3723999A JP 2000066894 A JP2000066894 A JP 2000066894A
Authority
JP
Japan
Prior art keywords
instruction
pipeline
floating
point
data
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
Application number
JP11037239A
Other languages
English (en)
Other versions
JP3336987B2 (ja
Inventor
A Krigovski Christopher
クリストファー・エイ・クリゴフスキ
Mark Schwartz Eric
エリック・マーク・シュワルツ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2000066894A publication Critical patent/JP2000066894A/ja
Application granted granted Critical
Publication of JP3336987B2 publication Critical patent/JP3336987B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing

Abstract

(57)【要約】 (修正有) 【課題】 停止サイクルの発生を最小限にすること。 【解決手段】 この浮動小数点ユニットは、通常、算術
計算用の複数のパイプライン・ステージと、1つの正規
化ステージと、1つの丸めステージとを有し、それぞれ
のパイプライン・ステージは命令ストリームの処理中に
個別の命令を含むことができる。先行命令のために必要
なデータが使用不能でデータ依存性が生じているためパ
イプライン内の新しいステージへの順方向進行が許され
ない場合、活動命令はパイプライン内で「停止」命令に
なる。にもかかわらず、データ依存浮動小数点ストア命
令の場合は、先行命令からの中間結果データを提供し、
浮動小数点パイプライン内のステージをスキップするた
めにデータ依存浮動小数点ストア命令用の転送経路を提
供することにより、その実行がまだ完了していない先行
命令にデータが依存する場合でも、パイプライン内で進
行することができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、浮動小数点命令を
実行するコンピュータ・システムに関し、特にデータ依
存性の解決を改善するために浮動小数点パイプライン内
の浮動小数点ストア命令を処理するための方法およびシ
ステムに関する。
【0002】
【従来の技術】最新のマイクロプロセッサのほとんど
は、浮動小数点命令をハードウェアで実現している。浮
動小数点命令はしばしば複数の実行サイクルを必要とす
るので、これらの命令をオーバラップ実行できるように
するためにパイプライン構造が実現される。このパイプ
ラインの実現により、すべてのサイクルで命令が受け入
れられ、すべてのサイクルで結果を生成することができ
る。パイプラインに閉塞が生じると停止が発生し、その
結果、パイプラインのスループットが減少し、マイクロ
プロセッサのパフォーマンスが低下する。
【0003】浮動小数点計算中は、しばしば中間結果の
格納が必要になる。これは、指定の浮動小数点レジスタ
を指定の記憶アドレスに格納する浮動小数点命令の使用
によって行われる。単一命令の発行および完了を順序通
りに行うマイクロアーキテクチャでは、制御を単純化
し、領域を最小限にするために、他の浮動小数点命令と
ともに、パイプラインでストア命令を実行することが望
ましい。
【0004】
【発明が解決しようとする課題】浮動小数点ストア命令
をパイプライン化すると、問題が発生する。1つの浮動
小数点ストア命令は、1つの実行サイクルのみを必要と
する可能性がある。同じパイプライン内で他の浮動小数
点算術命令とともに浮動小数点ストアを実行すると、ス
トアの待ち時間が増大する。パイプラインのスループッ
トは、停止サイクルの発生によって脅かされる。したが
って、停止サイクルの発生を最小限にすることが望まし
い。停止サイクルの発生源の1つは、ある命令がパイプ
ライン内の前の命令にデータ依存する場合である。従来
は、必要なデータがパイプラインの一番下から入力レジ
スタロードできるようになるまで、その命令はパイプラ
インの一番上で停止する。しかし、パイプラインの一番
上で命令を停止すると、他の命令がパイプラインに入れ
なくなる。これが、本発明で対処する問題である。
【0005】浮動小数点ストア命令は、通常、専用ロー
ド/ストア実行ユニットで実行されていた。独立したロ
ード/ストア・ユニットの使用には数多くの欠点が存在
する。追加ユニットにより領域コストが追加される。追
加ユニットからのディスパッチおよび完了の制御シーケ
ンスはより複雑になる。浮動小数点レジスタ・アレイへ
の追加の読取りポートが必要になり、それにより、その
サイズが増大する。独立したロード/ストア・ユニット
を使用して停止サイクルを除去するために、浮動小数点
実行ユニットとロード/ストア・ユニットとの間で転送
を行うデータ転送経路が必要になる。これらの経路は長
くなる可能性があり、プロセッサのサイクル時間を潜在
的に制限する可能性がある。しかも、この転送経路は、
潜在的に、チップの最適な配線を阻害する一因となる。
【0006】
【課題を解決するための手段】好ましい実施形態では、
制御ユニットと、データ入力レジスタと、命令を記憶ユ
ニットに転送する書込みステージ・レジスタとを有する
浮動小数点ユニットを提供する。この浮動小数点ユニッ
トは、通常、算術計算用の複数のパイプライン・ステー
ジと、1つの正規化ステージと、1つの丸めステージと
を有し、それぞれのパイプライン・ステージは命令スト
リームの処理中に個別の命令を含むことができる。これ
らのステージは、命令の処理がパイプライン内で行われ
るように規則正しく接続されている。先行命令のために
必要なデータが使用不能でデータ依存性が生じているた
めパイプライン内の新しいステージへの順方向進行が許
されない場合、活動命令はパイプライン内で「停止」命
令になる。にもかかわらず、データ依存浮動小数点スト
ア命令の場合は、先行命令からの中間結果データを提供
し、浮動小数点パイプライン内のステージをスキップす
るためにデータ依存浮動小数点ストア命令用の転送経路
を提供することにより、その実行がまだ完了していない
先行命令にデータが依存する場合でもパイプライン内で
進行することができる。
【0007】本発明の解決策は、パイプライン内に導入
されるデータ依存ストア命令に関する停止サイクルを除
去するものである。実行がまだ完了していない先行命令
にデータが依存する場合でも、ストア命令はパイプライ
ン内で進行することができる。
【0008】本発明による改善策は、データ依存性によ
って発生しうる停止サイクルを除去することにより、ス
トア命令のパイプライン化によって発生しうるパフォー
マンス上の欠点を除去するものである。本発明の解決策
は、独立したロード/ストア・ユニットの必要性と、そ
れに関連する領域および複雑さを解消するものである。
また、その解決策は、命令をディスパッチするための制
御も単純化する。これは、命令間のインタロックの検
出、浮動小数点レジスタ・ファイル用の読取りポート、
浮動小数点パイプラインの基本データフロー、およびパ
イプライン内のデータ転送経路のために既存のハードウ
ェアの再使用を可能にする。
【0009】このような改善策は、パイプラインの終わ
りにデータ依存ストアを解決するための折返し経路を提
供することにより達成される。この折返し経路は、高速
インタロック解決回路によって制御される。これらの改
善策のコストは最小限のものである。格納すべきデータ
を位置合わせするために、パイプライン内においてパイ
プライン出力レジスタの直前に、ストア命令用の64ビ
ットのバイト回転データ位置合わせ回路が設けられてい
る。この64ビットのバイト回転機能は8ウェイのマル
チプレクサ回路と同様である。高速インタロック解決検
出は、ストア命令がパイプラインに入るときに行われ
る。非ストア命令用のインタロック検出がストア命令の
ために再使用されているので、この回路に関連して追加
のハードウェア・コストは一切発生しない。このインタ
ロック検出情報は、パイプラインの最終ステージ内の先
行命令からの結果を回転機構を介して結果レジスタ内に
折り返すために使用する。このための追加コストは2ウ
ェイ・マルチプレクサである。
【0010】
【発明の実施の形態】浮動小数点ユニットは、通常、算
術計算(加算または乗算)用の複数のパイプライン・ス
テージ、1つの正規化ステージ、および1つの丸めステ
ージなどの複数のパイプライン・ステージからなる。各
パイプライン・ステージは個別の命令を含むことがで
き、これらのステージは規則正しく接続されている。命
令がパイプラインに入るとき、必要な入力データ・オペ
ランドがアクセスされ、パイプラインの第1のステージ
内に置かれる。命令は、許可されるとパイプライン内を
ステージからステージへ前進する。順方向進行が許され
ない場合、命令はパイプライン内で「停止」したと見な
される。後続のパイプライン・ステージが、それ自体で
は前進できない他の先行命令を含む場合、命令はパイプ
ライン内の新しいステージに前進することができない。
命令は、操作すべきデータを有するまで実行を開始する
ことができない。後続命令が操作することになるデータ
を先行命令が更新する場合、後続命令は更新が終るまで
データを操作できない。これを、データ依存性と呼ぶ。
このため、後続命令は、更新したデータを受け取るま
で、パイプラインの入口で「停止」することになる。
【0011】図1は、命令実行のパイプライン化を示す
図である。これは、パイプラインの各種ステージ10〜
13を通る3つの命令I1、I2、I3の流れを示して
いる。
【0012】各ステージで1マシン・サイクルが完了す
ると想定されており、したがって、時間の経過がグラフ
の下方に向かって示されている。この例では、I1、I
2、およびI3は、互いに依存しない命令であると想定
され、パイプライン内に順次導入される。
【0013】次に浮動小数点ユニットのデータフロー・
パイプラインを示す図2に移行すると、命令は制御ユニ
ット210内に受け入れられる。命令データはデータ入
力レジスタ20内に受け入れられ、データは書込みステ
ージ・レジスタ29から出力される。
【0014】制御ユニット210は、パイプライン・ス
テージのそれぞれに存在する命令に関する情報を維持
し、その情報を使用してデータフロー・パイプラインへ
の制御信号を形成する。制御ユニット210は、データ
フロー・パイプライン内の様々な制御点に制御を提供す
る。これらの制御点は、パイプラインを通る命令の進行
を制御する。
【0015】図3は、パイプラインの制御状態図の概略
を示している。パイプラインの4つの制御ステージ3
0、31、32、33が存在する。各制御ステージは、
浮動小数点パイプライン内に共存する可能性のある複数
命令に関する制御情報を含む。条件が好都合である場
合、制御ステージは次の順次制御ステージに前進するこ
とができる。前述のように、次の順次ステージが使用中
である場合、制御ステージは「停止」し、前進しなくな
る。制御ステージ1 30は、その命令に関するデータ
が使用不能である場合、停止し得る。しかし、即時デー
タ依存性を備えたストア命令の場合、制御状態の前進が
可能である。これについては後述する。
【0016】図2に戻ると、命令データはパイプライン
の4つのステージング・レジスタ20、22、25、2
9内に保持される。これらのステージング・レジスタ
は、単一実行サイクルの間、一定に保持される。命令が
次のパイプライン・ステージに進行できない場合、もう
1つの実行サイクルの間、ステージング・レジスタは一
定に保持される。実行サイクルの終わりにステージング
・レジスタは新しい命令データを受け入れるかまたは前
の値を保持する。
【0017】パイプライン・ステージング・レジスタ2
0、22、25、29の間には、ステージング・レジス
タ20、22、25内の命令データに関する計算を実行
する計算ステージ21、23、26が存在する。実行さ
れる計算は、乗算、加算、正規化、丸めなどである。
【0018】パイプラインには2つのマルチプレクサ2
4、27が存在する。これらのマルチプレクサ24、2
7は、制御ユニット210の制御下で2つのデータ入力
から選択する能力を提供する。
【0019】ストア回転機構28は、命令データを記憶
境界に位置合わせするために使用する右バイト回転機構
である。
【0020】外部フィードバック経路220は、浮動小
数点パイプライン・データフローの内部で解決できない
データ依存性を迅速に解決するために設けられている。
【0021】浮動小数点ストアの処理は、3つのケース
について説明することができる。第1のケースは、スト
アがパイプライン内の先行命令に対してデータ依存して
いない場合である。ストア命令がパイプラインに入ると
き、ストア命令のソースの内容Sが浮動小数点レジスタ
・アレイ230から読み出され、データ入力レジスタ2
0内に入れられる。ストア命令は、それ以外にパイプラ
イン・ステージング・レジスタ22またはパイプライン
・ステージング・レジスタ25内に移動する命令がない
場合、マルチプレクサ24を通ってパイプラインの第3
のステージに前進移動する。次にストア命令は、書込み
ステージ・レジスタ29が使用可能になると、ストア回
転機構28を通ってパイプラインの書込みステージ・レ
ジスタ29に供給される。ストア命令はパイプラインの
書込みステージ・レジスタ29に入ると、記憶ユニット
に転送される。データ依存性のないストア命令を示すサ
イクル図は図4に示されている。I1、I2、I3は独
立した順次命令である。I2がストア命令である。
【0022】第2のケースは、ストアがパイプライン内
の他の命令に対してデータ依存しているが、ストア命令
とインタロック命令との間に1つまたは複数の命令が存
在する場合である。実行ステップは以下の通りである。
すなわち、ストア命令がパイプラインに入るとき、デー
タがこの場合に正しいデータではなくても、ストアのソ
ースの内容Sが浮動小数点レジスタ・アレイ230から
読み出され、データ入力レジスタ20内に入れられる。
制御ユニット210は、パイプライン内にすでにある他
の命令とのインタロックが存在することを検出する。こ
のインタロックは、遅延タイプのものであると記述され
る。制御ユニット210はサイクルごとにインタロック
の状態を監視する。外部フィードバック経路220を通
ってデータ入力レジスタ20内に結果データを折り返す
ことができるパイプラインの書込みステージ・レジスタ
29にインタロック命令が達するまで、ストア命令はパ
イプラインのデータ入力レジスタ20内に保持される。
これが行われると、ストア命令はマルチプレクサ24を
通ってパイプラインのパイプライン・ステージング・レ
ジスタ3 25に進む。次にストア命令は、書込みステ
ージ・レジスタ29が使用可能になると、ストア回転機
構28を通ってパイプラインの書込みステージ・レジス
タ29に供給される。ストア命令はパイプラインの書込
みステージ・レジスタ29に入ると、記憶ユニットに転
送される。遅延データ依存性のストア命令を示すサイク
ル図は図5に示されている。同図のI3が、命令I1の
結果に対してデータ依存しているストア命令である。I
2はパイプライン内の介在命令である。
【0023】第3の最も興味深いケースは、ストア命令
がパイプライン内の他の命令とインタロックされ、2つ
の命令間に命令が一切存在しない場合である。ストア命
令がパイプラインに入るとき、それがこの場合に有効で
はなくても、ストアのソースの内容Sが浮動小数点レジ
スタ・アレイ230から読み出され、データ入力レジス
タ20内に入れられる。制御ユニット210は、パイプ
ライン内にすでにある他の命令とのインタロックが存在
することを検出する。このインタロックは、即時タイプ
のものであると記述される。即時インタロック命令がパ
イプラインの書込みステージ・レジスタ29に移動する
と、ただちにストアはパイプラインのパイプライン・ス
テージング・レジスタ3 25に前進移動する。データ
が有効ではなくても、ストア命令がパイプライン内で前
進移動することに留意されたい。インタロック命令が書
込みステージ・レジスタ29内にあって、パイプライン
から出る準備ができていると、そのデータはマルチプレ
クサ27およびストア回転機構28を通って選択され、
パイプラインの書込みステージ・レジスタ29内にもう
一度ラッチされる。ストア命令はパイプラインの書込み
ステージ・レジスタ29に入ると、記憶ユニットに転送
される。即時データ依存性のストア命令を示すサイクル
図は図6に示されている。同図のI2が、命令I1の結
果に対して依存しているストア命令である。I3は後に
続く命令である。
【0024】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0025】(1)複数のパイプライン・ステージを含
む浮動小数点ユニットにおいて、先行命令からのデータ
に依存する浮動小数点ストア命令を処理する際の待ち時
間削減のための方法であって、前記先行命令の結果デー
タを提供するステップと、前記浮動小数点ストア命令用
の転送経路を提供することにより前記浮動小数点ストア
命令に前記浮動小数点ユニットのパイプラインの中間ス
テージをスキップさせるステップと、前記結果データを
前記パイプラインの選択されたステージに折り返すステ
ップと、を含む方法。 (2)浮動小数点ストア命令が前記パイプラインに入る
とき、前記パイプライン内の他の命令にデータ依存して
いるかどうか、および前記浮動小数点命令と前記他の命
令との間に介在する命令があるかどうかをチェックする
ステップを含む、上記(1)に記載の方法。 (3)前記浮動小数点ストア命令が前記他の命令にデー
タ依存しており、かつ前記浮動小数点命令と前記他の命
令と間に少なくとも1つの介在命令が存在する場合に、
前記浮動小数点ストア命令が前記パイプラインに入ると
き、前記他の命令が完了していなくても前記浮動小数点
ストア命令のソースの内容を読み出すステップと、前記
浮動小数点ストア命令を前記パイプラインの入力ステー
ジに保持するステップと、前記結果データを前記入力ス
テージに折り返すステップと、を含む、上記(2)に記
載の方法。 (4)前記浮動小数点ストア命令が前記他の命令にデー
タ依存しており、かつ前記浮動小数点命令と前記他の命
令と間に介在命令が存在しない場合に、前記浮動小数点
ストア命令が前記パイプラインに入るとき、前記他の命
令が完了していなくても前記浮動小数点ストア命令のソ
ースの内容を読み出すステップと、前記他の命令が前記
パイプラインの出力ステージに進むとき、前記浮動小数
点ストア命令を前記出力ステージの前のステージまで進
めるステップと、前記結果データを前記出力ステージに
折り返すステップと、を含む、上記(2)に記載の方
法。 (5)先行命令にデータ依存する浮動小数点ストア命令
を処理する際の待ち時間を削減できる浮動小数点ユニッ
トであって、複数のパイプライン・ステージを含む浮動
小数点パイプラインと、前記浮動小数点命令に前記パイ
プラインの中間ステージをスキップさせる手段と、前記
先行命令の結果データを前記パイプラインの選択された
ステージに折り返す手段と、を含む浮動小数点ユニッ
ト。 (6)浮動小数点ストア命令が前記パイプラインに入る
とき、前記パイプライン内の他の命令にデータ依存して
いるかどうか、および前記浮動小数点命令と前記他の命
令との間に介在する命令があるかどうかをチェックする
制御ユニットを含む、上記(5)に記載の浮動小数点ユ
ニット。 (7)前記制御ユニットは、前記浮動小数点ストア命令
が前記他の命令にデータ依存しており、かつ前記浮動小
数点命令と前記他の命令と間に少なくとも1つの介在命
令が存在する場合に、前記浮動小数点ストア命令が前記
パイプラインに入るとき、前記他の命令が完了していな
くても前記浮動小数点ストア命令のソースの内容を読み
出し、前記浮動小数点ストア命令を前記パイプラインの
入力ステージに保持し、前記結果データを前記入力ステ
ージに折り返す、上記(6)に記載の浮動小数点ユニッ
ト。 (8)前記制御ユニットは、前記浮動小数点ストア命令
が前記他の命令にデータ依存しており、かつ前記浮動小
数点命令と前記他の命令と間に介在命令が存在しない場
合に、前記浮動小数点ストア命令が前記パイプラインに
入るとき、前記他の命令が完了していなくても前記浮動
小数点ストア命令のソースの内容を読み出し、前記他の
命令が前記パイプラインの出力ステージに進むとき、前
記浮動小数点ストア命令を前記出力ステージの前のステ
ージまで進め、前記結果データを前記出力ステージに折
り返す、上記(6)に記載の浮動小数点ユニット。
【図面の簡単な説明】
【図1】命令パイプライン化の一例を示す図である。
【図2】好ましい実施形態の浮動小数点ユニットのデー
タフローの概要を示す概略図である。
【図3】好ましい実施形態の浮動小数点ユニットの制御
フローを示す概略図である。
【図4】データ依存性のない3つの命令に関する好まし
い実施形態の浮動小数点ユニットのデータフローのパイ
プライン化を示す図である。
【図5】遅延タイプのデータ依存性を備えた3つの命令
に関する好ましい実施形態の浮動小数点ユニットのデー
タフローのパイプライン化を示す図である。
【図6】即時タイプのデータ依存性を備えた3つの命令
に関する好ましい実施形態の浮動小数点ユニットのデー
タフローのパイプライン化を示す図である。
【符号の説明】
20 データ入力レジスタ 21 ステージ1の計算 22 パイプライン・ステージ・レジスタ2 23 ステージ2の計算 24 マルチプレクサ 25 パイプライン・ステージ・レジスタ3 26 ステージ3の計算 27 マルチプレクサ 28 ストア・ロテータ 29 書込みステージ・レジスタ 210 制御ユニット 220 外部フィードバック経路 230 浮動小数点レジスタ・アレイ
フロントページの続き (72)発明者 クリストファー・エイ・クリゴフスキ アメリカ合衆国12533 ニューヨーク州ホ ープウェル・ジャンクション オールド・ グレンジ・ロード 39 (72)発明者 エリック・マーク・シュワルツ アメリカ合衆国12525 ニューヨーク州ガ ードナー ティナ・ドライブ 5

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】複数のパイプライン・ステージを含む浮動
    小数点ユニットにおいて、先行命令からのデータに依存
    する浮動小数点ストア命令を処理する際の待ち時間削減
    のための方法であって、 前記先行命令の結果データを提供するステップと、 前記浮動小数点ストア命令用の転送経路を提供すること
    により前記浮動小数点ストア命令に前記浮動小数点ユニ
    ットのパイプラインの中間ステージをスキップさせるス
    テップと、 前記結果データを前記パイプラインの選択されたステー
    ジに折り返すステップと、 を含む方法。
  2. 【請求項2】浮動小数点ストア命令が前記パイプライン
    に入るとき、前記パイプライン内の他の命令にデータ依
    存しているかどうか、および前記浮動小数点命令と前記
    他の命令との間に介在する命令があるかどうかをチェッ
    クするステップを含む、請求項1に記載の方法。
  3. 【請求項3】前記浮動小数点ストア命令が前記他の命令
    にデータ依存しており、かつ前記浮動小数点命令と前記
    他の命令との間に少なくとも1つの介在命令が存在する
    場合に、 前記浮動小数点ストア命令が前記パイプラインに入ると
    き、前記他の命令が完了していなくても前記浮動小数点
    ストア命令のソースの内容を読み出すステップと、 前記浮動小数点ストア命令を前記パイプラインの入力ス
    テージに保持するステップと、 前記結果データを前記入力ステージに折り返すステップ
    と、 を含む、請求項2に記載の方法。
  4. 【請求項4】前記浮動小数点ストア命令が前記他の命令
    にデータ依存しており、かつ前記浮動小数点命令と前記
    他の命令と間に介在命令が存在しない場合に、 前記浮動小数点ストア命令が前記パイプラインに入ると
    き、前記他の命令が完了していなくても前記浮動小数点
    ストア命令のソースの内容を読み出すステップと、 前記他の命令が前記パイプラインの出力ステージに進む
    とき、前記浮動小数点ストア命令を前記出力ステージの
    前のステージまで進めるステップと、 前記結果データを前記出力ステージに折り返すステップ
    と、 を含む、請求項2に記載の方法。
  5. 【請求項5】先行命令にデータ依存する浮動小数点スト
    ア命令を処理する際の待ち時間を削減できる浮動小数点
    ユニットであって、 複数のパイプライン・ステージを含む浮動小数点パイプ
    ラインと、 前記浮動小数点命令に前記パイプラインの中間ステージ
    をスキップさせる手段と、 前記先行命令の結果データを前記パイプラインの選択さ
    れたステージに折り返す手段と、 を含む浮動小数点ユニット。
  6. 【請求項6】浮動小数点ストア命令が前記パイプライン
    に入るとき、前記パイプライン内の他の命令にデータ依
    存しているかどうか、および前記浮動小数点命令と前記
    他の命令との間に介在する命令があるかどうかをチェッ
    クする制御ユニットを含む、請求項5に記載の浮動小数
    点ユニット。
  7. 【請求項7】前記制御ユニットは、前記浮動小数点スト
    ア命令が前記他の命令にデータ依存しており、かつ前記
    浮動小数点命令と前記他の命令との間に少なくとも1つ
    の介在命令が存在する場合に、前記浮動小数点ストア命
    令が前記パイプラインに入るとき、前記他の命令が完了
    していなくても前記浮動小数点ストア命令のソースの内
    容を読み出し、前記浮動小数点ストア命令を前記パイプ
    ラインの入力ステージに保持し、前記結果データを前記
    入力ステージに折り返す、請求項6に記載の浮動小数点
    ユニット。
  8. 【請求項8】前記制御ユニットは、前記浮動小数点スト
    ア命令が前記他の命令にデータ依存しており、かつ前記
    浮動小数点命令と前記他の命令と間に介在命令が存在し
    ない場合に、前記浮動小数点ストア命令が前記パイプラ
    インに入るとき、前記他の命令が完了していなくても前
    記浮動小数点ストア命令のソースの内容を読み出し、前
    記他の命令が前記パイプラインの出力ステージに進むと
    き、前記浮動小数点ストア命令を前記出力ステージの前
    のステージまで進め、前記結果データを前記出力ステー
    ジに折り返す、請求項6に記載の浮動小数点ユニット。
JP03723999A 1998-02-19 1999-02-16 パイプライン化浮動小数点ストア Expired - Fee Related JP3336987B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/025,939 US6049860A (en) 1998-02-19 1998-02-19 Pipelined floating point stores
US09/025939 1998-02-19

Publications (2)

Publication Number Publication Date
JP2000066894A true JP2000066894A (ja) 2000-03-03
JP3336987B2 JP3336987B2 (ja) 2002-10-21

Family

ID=21828886

Family Applications (1)

Application Number Title Priority Date Filing Date
JP03723999A Expired - Fee Related JP3336987B2 (ja) 1998-02-19 1999-02-16 パイプライン化浮動小数点ストア

Country Status (3)

Country Link
US (1) US6049860A (ja)
JP (1) JP3336987B2 (ja)
KR (1) KR100305467B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE48845E1 (en) 2002-04-01 2021-12-07 Broadcom Corporation Video decoding system supporting multiple standards

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6408379B1 (en) * 1999-06-10 2002-06-18 Advanced Micro Devices, Inc. Apparatus and method for executing floating-point store instructions in a microprocessor
US6643770B1 (en) * 1999-09-16 2003-11-04 Intel Corporation Branch misprediction recovery using a side memory
JP3776644B2 (ja) * 1999-10-05 2006-05-17 富士通株式会社 パイプライン演算装置、情報処理装置およびパイプライン演算装置の演算方法
US6859873B2 (en) * 2001-06-08 2005-02-22 Infineon Technologies Ag Variable length instruction pipeline
GB2395298B (en) * 2002-09-17 2007-02-14 Micron Technology Inc Flexible results pipeline for processing element
US7188233B2 (en) * 2005-02-09 2007-03-06 International Business Machines Corporation System and method for performing floating point store folding
US8271993B2 (en) * 2005-03-04 2012-09-18 Hewlett-Packard Development Company, L.P. Method and apparatus for facilitating pipeline throughput
US7624251B2 (en) * 2006-11-01 2009-11-24 Apple Inc. Instructions for efficiently accessing unaligned partial vectors
US7620797B2 (en) * 2006-11-01 2009-11-17 Apple Inc. Instructions for efficiently accessing unaligned vectors
US7921279B2 (en) * 2008-03-19 2011-04-05 International Business Machines Corporation Operand and result forwarding between differently sized operands in a superscalar processor
JP5326314B2 (ja) * 2008-03-21 2013-10-30 富士通株式会社 プロセサおよび情報処理装置
US9146741B2 (en) 2012-04-26 2015-09-29 Qualcomm Incorporated Eliminating redundant masking operations instruction processing circuits, and related processor systems, methods, and computer-readable media
JP2014160393A (ja) * 2013-02-20 2014-09-04 Casio Comput Co Ltd マイクロプロセッサ及び演算処理方法
US11276223B2 (en) * 2018-12-13 2022-03-15 Advanced Micro Devices, Inc. Merged data path for triangle and box intersection test in ray tracing

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5051940A (en) * 1990-04-04 1991-09-24 International Business Machines Corporation Data dependency collapsing hardware apparatus
US5555384A (en) * 1989-12-01 1996-09-10 Silicon Graphics, Inc. Rescheduling conflicting issued instructions by delaying one conflicting instruction into the same pipeline stage as a third non-conflicting instruction
US5471593A (en) * 1989-12-11 1995-11-28 Branigin; Michael H. Computer processor with an efficient means of executing many instructions simultaneously
US5361345A (en) * 1991-09-19 1994-11-01 Hewlett-Packard Company Critical line first paging system
US5559977A (en) * 1992-08-04 1996-09-24 Intel Corporation Method and apparatus for executing floating point (FP) instruction pairs in a pipelined processor by stalling the following FP instructions in an execution stage
JPH06110687A (ja) * 1992-09-30 1994-04-22 Toshiba Corp 情報処理装置および情報処理方法
JPH07295810A (ja) * 1994-04-27 1995-11-10 Toshiba Corp 命令列最適化処理方法及び装置
JPH08305567A (ja) * 1995-05-10 1996-11-22 Hitachi Ltd 演算命令の並列処理方法および並列処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE48845E1 (en) 2002-04-01 2021-12-07 Broadcom Corporation Video decoding system supporting multiple standards

Also Published As

Publication number Publication date
US6049860A (en) 2000-04-11
KR100305467B1 (ko) 2001-09-26
JP3336987B2 (ja) 2002-10-21
KR19990072287A (ko) 1999-09-27

Similar Documents

Publication Publication Date Title
JP2597811B2 (ja) データ処理システム
EP0111776B1 (en) Interrupt processor
US7281119B1 (en) Selective vertical and horizontal dependency resolution via split-bit propagation in a mixed-architecture system having superscalar and VLIW modes
US6374347B1 (en) Register file backup queue
EP0399762B1 (en) Multiple instruction issue computer architecture
US4745547A (en) Vector processing
JP3336987B2 (ja) パイプライン化浮動小数点ストア
US4587632A (en) Lookahead stack oriented computer
US5596733A (en) System for exception recovery using a conditional substitution instruction which inserts a replacement result in the destination of the excepting instruction
US6289445B2 (en) Circuit and method for initiating exception routines using implicit exception checking
US6131158A (en) Data processing system capable of executing groups of instructions, including at least one arithmetic instruction, in parallel
JPS592143A (ja) 情報処理装置
JP2001516918A (ja) データプロセッサ
JPS59173850A (ja) パイプライン式プロセツサ
US5461715A (en) Data processor capable of execution of plural instructions in parallel
US20020199084A1 (en) Method and apparatus for dual issue of program instructions to symmetric multifunctional execution units
KR100431975B1 (ko) 분기에의한중단이없는파이프라인방식의마이크로프로세서를위한다중명령디스패치시스템
US7111152B1 (en) Computer system that operates in VLIW and superscalar modes and has selectable dependency control
US7437544B2 (en) Data processing apparatus and method for executing a sequence of instructions including a multiple iteration instruction
JP3146058B2 (ja) 並列処理型プロセッサシステムおよび並列処理型プロセッサシステムの制御方法
US5745723A (en) Data processing system capable of execution of plural instructions in parallel
US6260133B1 (en) Processor having operating instruction which uses operation units in different pipelines simultaneously
EP1050805B1 (en) Transfer of guard values in a computer system
JP2875864B2 (ja) パイプライン処理方式
JP2824484B2 (ja) パイプライン処理計算機

Legal Events

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