JP2001092656A - 命令のインオーダ処理を効率的に実行するスーパースケーラ処理システム及び方法 - Google Patents
命令のインオーダ処理を効率的に実行するスーパースケーラ処理システム及び方法Info
- Publication number
- JP2001092656A JP2001092656A JP2000269771A JP2000269771A JP2001092656A JP 2001092656 A JP2001092656 A JP 2001092656A JP 2000269771 A JP2000269771 A JP 2000269771A JP 2000269771 A JP2000269771 A JP 2000269771A JP 2001092656 A JP2001092656 A JP 2001092656A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- instructions
- stage
- processing
- issue group
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 115
- 238000000034 method Methods 0.000 title abstract description 39
- 238000004590 computer program Methods 0.000 claims abstract description 19
- 230000007246 mechanism Effects 0.000 claims description 61
- 230000001419 dependent effect Effects 0.000 abstract description 9
- 230000008569 process Effects 0.000 description 24
- 238000001514 detection method Methods 0.000 description 22
- 238000003672 processing method Methods 0.000 description 8
- 230000004044 response Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- FQCKMBLVYCEXJB-MNSAWQCASA-L atorvastatin calcium Chemical compound [Ca+2].C=1C=CC=CC=1C1=C(C=2C=CC(F)=CC=2)N(CC[C@@H](O)C[C@@H](O)CC([O-])=O)C(C(C)C)=C1C(=O)NC1=CC=CC=C1.C=1C=CC=CC=1C1=C(C=2C=CC(F)=CC=2)N(CC[C@@H](O)C[C@@H](O)CC([O-])=O)C(C(C)C)=C1C(=O)NC1=CC=CC=C1 FQCKMBLVYCEXJB-MNSAWQCASA-L 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 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/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
-
- 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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
効率を改善するシステム及び方法を提供すること。 【解決手段】 コンピュータプログラム(41)からの命令
を受信する処理システム(20)。各命令は、同時に処理す
ることが可能な命令のみを含む発行グループ内に含まれ
る。次いで該発行グループが、発行グループ内の複数の
命令をプログラム順で同時に処理し実行する複数のパイ
プライン(75)へ順次送信される。実行中に、発行グルー
プ内の命令が分析されて、該発行グループ中の命令の何
れかが利用不能な命令に依存するか否かが判定される。
利用不能なデータに依存すると判定された発行グループ
中の命令の何れかが独立して停止される一方、該発行グ
ループ中の他の命令は処理を続行することが可能とな
る。
Description
タ処理技術に関し、特に複数の命令をインオーダ式に実
行し、該命令の処理を必要に応じて独立して停止させる
(stall)スーパースケーラ処理システム及び方法に関す
る。
は、コンピュータプログラムの未完了状態の命令を完全
に実行し、その実行結果をレジスタ又はメモリ内の所定
場所に書き込んだ後、プログラムの次の命令の実行を開
始していた。複数の命令の実行は、一度に1つ行われて
いたため、データ依存性ハザード(即ちデータの依存性
に起因する危険性)によるエラーを容易に防ぐことが可
能であった。
中に、第1の命令が、第2の命令の実行に必要とされる
データを生成し又は読み出す状況をいう。かかる状況に
おいて、データ依存性は、該2つの命令間に存在すると
言われ、それらの命令の実行のタイミングは、第1の命
令の実行により生成される必要とされるデータが、第2
の命令の実行中に利用可能となるように、制御されなけ
ればならない。第1の命令が第2の命令の前に必ず実行
されることを確実にするステップを採らない場合には、
データ依存性ハザードが存在する。「データ依存性ハザ
ード」とは、別の命令によるデータに依存する命令が該
別の命令よりも先に実行されてしまう(このため別の命
令によるデータに依存する命令がその実行時に不正なデ
ータを利用することになる)ためにエラーが生じ得る状
況をいう。
プログラムの複数の命令を一度に1つ実行する場合に
は、データ依存性ハザードにより生じるエラーを防止す
ることは比較的簡単である。これに関連して、別の命令
からのデータに依存する各命令が該別の命令の後にプロ
セッサに入力される限り、データ依存性ハザードによる
エラーが生じることはない。
せるために、パイプライン処理が開発された。パイプラ
イン処理では、1つのパイプラインが、多数の命令を同
時に処理する。これにより、パイプラインにおける1つ
の命令の実行を、該パイプラインにおける先行する命令
の実行結果が利用可能となる前に、開始させることが可
能となる。その結果として、パイプライン処理では、デ
ータ依存性ハザードに起因するエラーが生じ得る。
御機構を使用して、データ依存性ハザードに起因するエ
ラーを防止している。該制御機構は、プロセッサに入力
された命令間に存在するデータ依存性を検出する。各命
令の実行時に、制御機構は、実行中の命令(以下「未完
命令」と称す)が、別の命令の実行により生成されるデ
ータを必要とするか否かを判定する。未完命令が別の命
令の実行により生成されるデータを必要とする場合に
は、制御機構は、少なくとも、必要とされるデータが利
用可能となる時点まで、前記別の命令が実行されている
か否かを判定する。必要とされるデータがまだ利用可能
でない場合には、制御機構は、該データが利用可能にな
るまで未完命令の実行を停止させる(stall)(即ち一
時的に止める)。
を実行しているパイプラインに送信される停止信号をア
サートすることにより達成される。該停止信号に応じ
て、パイプラインは、制御機構により該停止信号がデア
サートされるまで未完命令の実行を停止するよう設計さ
れる。必要なデータが利用可能になると、制御機構が停
止信号をデアサートし、これに応じてパイプラインが未
完命令の実行を再開する。
めに、スーパースケーラ処理としても知られる並列処理
が開発された。並列処理では、複数の命令を同時に実行
する複数のパイプラインが規定される。並列処理の1つ
のタイプがアウトオブオーダ(out-of-order:順序を外
れた)処理である。アウトオブオーダ処理では、プロセ
ッサの各パイプラインが他の1つ又は複数のパイプライ
ンとは別個に異なる複数の命令を同時に実行する。
要するものであり、このため、1つの命令が1つのパイ
プラインに入力されるのが別の命令が別のパイプライン
に入力されるのよりも先であったとしても、該別の命令
が前記1つの命令よりも先に実行完了することが可能で
ある。したがって、命令は、必ずしもパイプラインに該
命令が入力された順序と同じ順序で実行されるとは限ら
ず、その結果として、データ依存性ハザードに起因する
エラーを回避するために必要となる制御機構は、アウト
オブオーダ型プロセッサの場合には比較的複雑なものと
なる。更に、パイプラインの数が増えると、制御機構も
劇的にその複雑性を増す。このため、多くの従来の並列
プロセッサ、特に多数のパイプラインを有するプロセッ
サは、上述のアウトオブオーダ型の処理の代わりにイン
オーダ型の処理を採用している。
インにより処理される複数の命令は、システムクロック
信号の特定のエッジでパイプラインの各ステージを段階
的に進行する。ここで、パイプラインにおける複数の命
令の処理は通常は複数ステージへと分割され、該パイプ
ラインの各ステージが異なる命令を同時に処理する。
れる処理は、レジスタステージ、実行ステージ、例外検
出ステージ、及び書き込みステージへと分割することが
可能である。レジスタステージにおいて命令の実行に必
要なオペランドが取得される。オペランドが取得される
と、命令の処理が実行ステージに入って、命令が実行さ
れる。命令の実行が完了すると、命令の処理は例外検出
ステージに入り、実行時のオーバーラン等、例えばデー
タが信頼できないことを示す条件がチェックされる。例
外検出ステージが終了すると、書き込みステージに入
り、実行ステージの結果がレジスタ又はメモリ内の所与
の場所に書き込まれる。
行グループの各命令が同時に各ステージを段階的に進行
することである。本書で規定する「発行グループ」と
は、単一のプロセッサ内において異なるパイプラインの
同一のステージにより同時に(即ち、同一クロックサイ
クルで)処理される1組の命令である。一例として、各
パイプラインの各ステージは、当業界で一般に行われて
いるように一度に1つの命令を処理するものと仮定す
る。パイプラインの例外検出ステージにおける命令は第
1の発行グループを構成し、パイプラインの実行ステー
ジにおける命令は第2の発行グループを構成する。更
に、パイプラインのレジスタステージにおける命令は第
3の発行グループを構成する。発行グループの各々は、
システムクロック信号のアクティブエッジに応じて、そ
れぞれの次のステージへと進む。換言すれば、システム
クロック信号のアクティブエッジに応じて、第1の発行
グループは書き込みステージへ進み、第2の発行グルー
プは例外検出ステージへと進み、第3の発行グループは
実行ステージへと進む。
システムクロック信号の任意のエッジであり、該エッジ
の発生により、パイプライン中の未停止状態の各命令が
該パイプライン中の次の処理ステージへと誘導される。
例えば、未停止状態の各命令を3クロックサイクル毎に
次の処理ステージへ進めるようプロセッサが設計されて
いるものと仮定する。本例では、アクティブエッジは、
クロック信号の各3番目のアップエッジと規定すること
ができる。なお、クロック信号のどのエッジを「アクテ
ィブエッジ」に指定するかは、設計パラメータに基づく
ものであり、プロセッサ毎に異ならせることが可能であ
る。
プ中の各命令が別の発行グループ中の別の命令を◆通過
させる◆ことが防止される。換言すれば、◆1つの発行
グループの命令の後にパイプラインに入力される別の発
行グループの命令が前記1つの発行グループの命令を処
理するステージと同一のステージに入ることが防止され
る。◆したがって、如何なる時点においても、パイプラ
インの各ステージは、1つの発行グループのみからの命
令をそれぞれ処理する。異なる発行グループからの命令
を相互に◆通過させる◆ことが防止されるため、パイプ
ラインを制御すると共にデータ依存性ハザードに起因す
るエラーを防止する制御機構は、アウトオブオーダ処理
と比べて大幅に単純化される。
の犠牲の下に達成されるものである。即ち、インオーダ
処理は、幾つかの命令が考え得る最大速度でパイプライ
ンを通過するのを妨げるものとなる。これに関し、1つ
の発行グループの1つの命令が別の発行グループの命令
を通さないことを確実にするために、該1つの命令は、
該1つの発行グループ中の全ての命令が次のステージに
進むことができる状態になるまで、次のステージに進む
ことが許可されない。換言すれば、1つの発行グループ
の1つの命令が停止された場合には、該発行グループの
全ての命令が停止され、この命令の停止処理は、該発行
グループの命令の一部が現行ステージを完了して次のス
テージへ進むために利用できる十分なデータを有してい
る場合であっても行われる。
ダ処理を採用する並列プロセッサの効率性を改善するシ
ステム及び方法を提供する必要性は、当該業界において
これまで取り組まれずに残存している。
従来技術の不十分さ又は欠点を克服するものである。一
般に、本発明は、発行グループ内の複数の命令の処理を
実行可能にすると共に該発行グループ中の他の命令を独
立して停止させることによりコンピュータプログラムか
らの命令を効率的に処理するシステム及び方法を提供す
る。
テムは、複数のパイプライン、命令分散ユニット、及び
制御機構を使用する。命令分散ユニットは、コンピュー
タプログラムの命令を受信し、該受信した命令に基づい
て発行グループを規定する。各発行グループは、パイプ
ラインへ順次送信され、該パイプラインにより同時に処
理することが可能な複数の命令をそれぞれ含むものであ
る。
命令がパイプラインにより処理される際に分析する。制
御機構は、発行グループのうちの1つにおける何れかの
命令を停止させるべきか否かを判定する。制御機構は次
いで、1つの発行グループ中の停止させるべき1つの命
令を処理しているパイプラインの各々にそれぞれ接続さ
れた接続部を介して停止信号をアサートし、該制御機構
はまた、該1つの発行グループ中の他の命令を処理して
いるパイプラインの各々にそれぞれ接続された接続部を
介して停止信号をデアサートする。アサートされた停止
信号のうちの1つを受信した各パイプラインは、前記1
つの発行グループ中の1つの命令を停止させ、またデア
サートされた停止信号のうちの1つを受信した各パイプ
ラインは、前記1つの発行グループ中の命令の処理を続
行させることを可能にする。
複数の命令を効率的に処理するための方法を提供するも
のと考えることができる。該方法は、コンピュータプロ
グラムから複数の命令を受信し、同時に処理することが
可能な複数の命令を各々が含む複数の発行グループを前
記命令に基づいて規定し、該発行グループを複数のパイ
プラインへ順次送信し、該発行グループのうちの1つに
おける各命令を同時に処理し、該1つの発行グループ中
の1つの命令を停止させ、該停止ステップで該1つの命
令を停止させた状態で前記1つの発行グループ中の他の
命令を処理可能にする、という各ステップにより広義に
概念化することが可能である。
は、当業者であれば以下の詳細な説明を図面を参照して
検討することにより明らかとなろう。本書では、かかる
特徴及び利点の全てを本発明の範囲内に含め、また特許
請求の範囲により保護することが意図されている。
を一層良好に理解することができる。図面の各要素は、
必ずしも互いに同一の尺度で表されておらず、本発明の
原理を明確に図示することに重点がおかれている。更
に、同様の符号は幾つかの図面を通して対応する部分を
示している。
式に効率的に処理する処理システム及び方法に関する。
図1は、本発明の処理システム20を採用したコンピュー
タシステム15の好ましい実施形態を示している。該好ま
しい実施形態の処理システム20は、ハードウェアとして
実施することが好ましいが、必要であれば、処理システ
ム20の一部をソフトウェアで実施することも可能であ
る。
15は、ローカルインタフェース22を備えており、該ロー
カルインタフェース22は、処理システム20がコンピュー
タシステム15の他の構成要素と通信することを可能にす
る1つ又は2つ以上のバスを備えることが可能である。
更に、入力デバイス25(例えば、キーボード及び/又は
マウス)を使用してシステム15のユーザがデータを入力
することが可能であり、またディスプレイ27及び/又は
プリンタ29を使用してユーザに対するデータ出力を行う
ことが可能である。システムクロック31はクロック信号
を生成し、該信号が当業界で公知の技術を介して使用さ
れて、システム15により通信されるデータのタイミング
が制御される。ディスク記憶装置32をローカルインタフ
ェース22に接続して、不揮発性ディスク(例えば磁気デ
ィスクや光ディスク等)との間でデータ転送を行うこと
が可能である。必要であれば、システム15をネットワー
クインタフェース33に接続して、該システム15がネット
ワーク35とデータ交換を行うことができるようにするこ
とも可能である。
たプログラム41、システムマネージャ42、及びコンパイ
ラ46を有することが可能である。プログラム41は、処理
システム20により処理され実行されることになる複数の
命令を含む。システムマネージャ42は、入力デバイス25
及び/又はネットワークインタフェース33からの入力を
受信し、及び必要に応じてプログラム41の命令を処理シ
ステム20に送信するように設計されている。プログラム
41の命令を処理システム20に送信する前に、該命令は、
コンパイラ46により、処理システム20と互換性のある形
式へと翻訳されることが好ましい。例えば、プログラム
41の命令が高級コンピュータ言語(例えばC又はFORTRAN
等)で書かれている場合には、コンパイラ46は、該命令
を処理システム20と互換性のある機械言語へと翻訳する
よう設計される。
翻訳された複数の命令を含み、及び処理システム20へ直
接送信することが可能な命令バンドル(instruction bun
dle:一組の命令)を規定する。図2は、本発明の原理に
よる命令バンドル52を示している。同図に示すように、
各命令バンドル52は、1つ又は2つ以上の命令を規定す
るデータを有すると共にヘッダ55を有している。該ヘッ
ダ55は、命令バンドル52に含まれる命令のタイプを識別
する識別子情報を有している。例えば、ヘッダ55は、命
令バンドル52中の第1の命令がメモリ操作命令であり、
命令バンドル52中の第2の命令が整数演算命令であり、
及び命令バンドル52中の第3の命令が浮動小数点演算命
令であることを示す情報を有することが可能である。該
ヘッダ55はまた、ストップビット57を有することが可能
であり、これについては以下で詳述することとする。
ラ46は、データ依存性に関するチェックを行い、及び別
の命令に対するデータ依存性を有する命令がそれ以外の
命令と同一の命令バンドル52中に配置されることがない
ことを確実にするよう設計されるのが好ましい。更に、
コンパイラ46は、命令バンドル52を特定の順序(以下
「プログラム順序」と称す)で処理システム20に連続し
て送信するよう設計され、また、アサートされたストッ
プビット57により境界が画定される命令バンドル52中の
命令間にデータ依存性が存在しないことを確実にするよ
う設計されるのが好ましい。したがって、処理システム
20は、デアサートされたストップビット57を有する複数
の命令バンドル52からなるストリング(即ち一連の命令
バンドル)を受信する場合に、該ストリング中の命令で
該ストリング中の他の命令に依存するものが全く存在し
ないことを認識することになる。
形で処理システム20に送信することは、システム20の最
適な性能を向上させる一助となるものである、というこ
とが理解されよう。しかし、上述の命令バンドル52とい
う形で命令を処理システム20に送信することは必ずしも
必要ではない。命令を処理システム20に送信する技術で
あればそれが如何なる技術であっても本発明の実施に適
したものとなる。
理システム20に送信される命令を受信するよう設計され
た命令分散ユニット(IDU)72を備えている。該IDU72
は、該IDU72が受信した命令を用いて発行グループを規
定し、及び1つの発行グループの命令をパイプライン75
に送信し、これにより該1つの発行グループ中の各命令
がアクティブクロックエッジでパイプライン75のうちの
1つのみにより受信されると共に各パイプライン75が複
数の命令のうちの1つだけを受信するように構成され
る。
理し実行するよう設計される。並列のインオーダ型のプ
ロセッサにおける従来方式のパイプラインと同様に、パ
イプライン75は、各ステージで受信した各命令を処理す
ることが好ましい。図4は、パイプライン75の典型的な
1組のステージを示している。ここで、各パイプライン
75は、1つの命令を受信し、該1つの命令を、レジスタ
ステージ77、実行ステージ79、例外検出ステージ81、及
び最後に書き込みステージ83で、順次処理する。これら
のステージについては、既に従来の技術の欄で一層詳細
に説明しており、他のステージ及び/又は複数ステージ
の他の組み合わせを用いて命令を処理し実行することが
可能であることに留意されたい。
命令が該命令との互換性を有するパイプライン75にのみ
送信されるよう設計されることが好ましい。ここで、パ
イプライン75の一部を、特定のタイプの命令しか扱わな
いよう設計することが可能である。例えば、1つ又は2
つ以上のパイプライン75を、メモリ操作命令、整数演算
命令、浮動小数点演算命令、及びその他の既知のタイプ
の命令しか扱わないよう構成することが可能である。し
たがって、IDU72は、受信した命令を分析して発行グル
ープを規定し、これにより適当なタイプの命令が各パイ
プライン75に送信されるように設計される。好ましい実
施形態では、IDU72は、各命令バンドル52のヘッダ55を
分析して、どの命令がどのパイプライン75と互換性を有
するかを判定することが可能である。
する2つの命令が同一の発行グループ中に配置されない
ことを確実にするよう設計される。したがって、クロッ
ク31により生成されるクロック信号のアクティブエッジ
で第1の処理ステージ(即ち、好ましい実施形態ではレ
ジスタステージ77)に入る各命令は、同一のクロックエ
ッジで第1のステージに入る他の命令とのデータ依存性
を全く有さない。上述のように、連続する命令バンドル
52がデータ依存性を有するか否かを命令バンドル52のス
トップビット57が示すため、IDU72は、該ストップビッ
ト57を使用して、発行グループを規定するプロセスを簡
素化することが可能である。ここで、IDU72は、デアサ
ートされたストップビット57を有する命令バンドル52の
ストリングにおける任意の命令を、該命令間のデータ依
存性をチェックすることなく同一の発行グループに配置
することが可能である。これは、該命令間にデータ依存
性がないことをストップビット57のアサート/デアサー
トを介してコンパイラ46が保証しているからである。
対する所与の命令の年齢(age)を表すデータを各命令に
挿入するように設計される。ここで、命令の処理をオリ
ジナルプログラム41が規定するのと同一の順序(「プロ
グラム順」という)で完了すべきであることは周知であ
る。プログラム順は、命令が処理システム20により受信
される順序である。
における位置に基づく。例えば、プログラム41において
実行される第1の命令(即ち、処理システム20に送信さ
れるプログラムの第1の命令)は、最も古い命令であ
り、該プログラムの他の命令は全て前記第1の命令より
も若い。第1の命令の後に実行される次の命令(即ち、
第1の命令の後に処理システム20により受信されるプロ
グラムの次の命令)は、第1の命令よりも若いがプログ
ラム41の残りの命令よりも古い。更に、実行される最後
の命令が最も若い命令である。スーパースケーラプロセ
ッサが多数の命令を一度に処理する場合であっても、該
命令は、非スーパースケーラプロセッサがプログラム41
を1ステップずつ進めて命令を一度に1つずつ処理して
いく場合と同一の順序で処理(即ち、上記の例では書き
込みステージ)を完了させなければならない。
しないことを確実にするために、IDU72は、若い命令を
含む発行グループの後にパイプライン75に送信されるこ
とになる発行グループに古い命令を割り当てないことが
好ましい。更に、若い命令が最終的に古い命令よりも先
に処理を完了しないことを確実にするための一助とし
て、IDU72は、年齢(age)データを命令に挿入して、どの
命令を最初に実行すべきかの判定をパイプライン75によ
る処理時に行うことができるようにする。「プログラム
順通り(in program order)」の処理を維持するために該
年齢データを如何に使用するかについては以下で詳述す
ることとする。
際に、各発行グループをインオーダ式にパイプライン75
へ順次送信するよう設計される。したがって、発行グル
ープ中の各命令は、該発行グループの各々にそれぞれ対
応するパイプライン75へクロック信号の同一のアクティ
ブエッジで送信される。理想的には、各発行グループ中
の各命令がクロック信号のアクティブエッジ間でそれぞ
れのステージにおいて完全に処理され、各発行グループ
が同一のクロックエッジで次のステージへと進むように
する。したがって、レジスタステージ77における発行グ
ループの各命令が実行ステージ79に入るクロックエッジ
は、実行ステージ79及び例外検出ステージ81における各
発行グループの命令が例外検出ステージ81及び書き込み
ステージ83にそれぞれ進むクロックエッジと同一であ
る。更に、レジスタステージ77、実行ステージ79、及び
例外検出ステージ81における各発行グループの命令がそ
れぞれの次のステージに進む際に、新たな発行グループ
の命令がレジスタステージ77に進む。その結果として、
それらの発行グループの処理は、1つの発行グループか
らの命令が別の発行グループ中の命令と同一のステージ
に入ることがないという点でインオーダ式のものとな
る。
行する際に予想よりも多くの時間を要することがある。
例えば、別の発行グループ中の別の命令からのデータに
依存する命令が、該別の命令からの必要なデータが利用
可能になる前に実行ステージ79に入ることがある。かか
る場合、実行ステージ79における命令は、前記必要なデ
ータが利用可能になるまで停止され(即ち一時的に実行
が阻止され)なければならない。かかる状況において、
従来の知識により示唆されるところは次の通りである。
即ち、停止信号を各パイプライン75の実行ステージ79に
送信して実行ステージ79における発行グループを停止さ
せ、これにより、必要なデータが利用可能になるまで実
行ステージ79における命令が実行されるのを阻止すべき
である。更に、現在実行ステージ79にある発行グループ
が該実行ステージ79を完了する前に別の発行グループが
実行ステージ79に入るのを阻止するために、各パイプラ
イン75の一層早期のステージ(即ちレジスタステージ7
7)にも停止信号を送信する必要がある。その結果とし
て、実行ステージ79及びレジスタステージ77における各
命令は、実行ステージ79における各命令の実行に必要な
データが利用可能になるまで停止状態になる。該必要な
データが利用可能になった場合には、前記停止信号をデ
アサートし、停止されていた発行グループを次のステー
ジ79,81へと進行させなければならない。
実行ステージ79中の命令の一部を不必要に停止させるも
のであることに気づいた。したがって、システム20は、
各パイプライン75の実行ステージ79に独立した停止信号
を送信するよう設計された制御機構85(図5)を備える
ことが好ましい。ここで、制御機構85は、図5に示すよ
うに、各パイプライン75の実行ステージ79を実行する部
分に接続部88を介して接続され、各接続部88は異なるパ
イプライン75に接続される。
いて、制御機構85は、実行ステージ79における命令を
「プログラム順通り」に分析し、該分析された命令が利
用不能なデータに依存するか否かを判定する。したがっ
て、制御機構85は、発行グループ中の最も古い命令を分
析した後、その次に古い命令に移行し、これを命令の全
てが分析されるまで又は利用不能なデータに依存する命
令が見つかるまで行う。
用不能なデータに依存しないものであると判定した場合
に、分析中の命令を処理するパイプライン75に接続され
た接続部88上の停止信号をデアサートする。次いで制御
機構85は次に古い命令を分析する。制御機構85は、パイ
プライン75のうちの1つの実行ステージ79における1つ
の命令が利用不能なデータに依存すると判定した場合
に、該利用不能なデータに依存する命令を処理するパイ
プライン75に接続された接続部88を介して停止信号をア
サートするよう構成される。更に、「プログラム順」を
確実に維持するために、制御機構85は、次いで残りのパ
イプライン75(即ち、現在分析中の命令よりも若い命令
を処理するパイプライン75)に接続された接続部88上に
停止信号をアサートする。
つ利用不能なデータに依存する命令の何れよりも古い
(IDU72により挿入された年齢データにより規定され
る)実行ステージ79における命令を実行すること、及び
該命令をクロック信号のアクティブエッジで他のステー
ジ(即ち、例外検出ステージ81及び書き込みステージ8
3)へと移行することが可能となる一方、利用不能なデ
ータに依存する命令と、利用不能なデータに依存する命
令の何れよりも若い(IDU72により挿入された年齢デー
タにより規定される)命令とが、実行ステージ79におい
て停止される。
を引き続き行う。停止されている命令が、実行に必要な
データへのアクセスを有しており、且つ利用不能なデー
タに依存する実行ステージ79中の他の全ての命令よりも
古い場合に、該停止されている命令のパイプライン75に
加えられている停止信号がデアサートされ、このため、
該停止されている命令がクロックサイクルの次のアクテ
ィブエッジで次のステージ81,83に進行する(即ち1ス
テップ進む)ことが可能となる。
ージ79における命令の何れか1つが停止されている場合
には、実行ステージ79に先立つ各ステージにおける発行
グループを停止させる必要がある。したがって、接続部
88上の信号は、図5に示すORゲート91に入力されること
が好ましい。接続部88の何れかがアサートされると、OR
ゲート91の出力もアサートされる。ORゲート91の出力
は、接続部96上の信号と共にORゲート93に入力される。
制御機構85は、レジスタステージ77における命令の何れ
か1つを停止させる必要がある状況を検出した場合に接
続部96上に信号をアサートするよう設計される。ORゲー
ト91の出力又は接続部96上の信号の何れか一方がアサー
トされると、ORゲート93の出力がアサートされる。
うちレジスタステージ77を実行する部分に接続部99を介
して接続される。接続部99上の信号がアサートされる
と、レジスタステージ77における命令が停止される。し
たがって、レジスタステージ77における発行グループ
は、レジスタステージ77における命令又は実行ステージ
79における命令を停止させるべきことを制御機構85が検
出した場合に必ず停止される。したがって、実行ステー
ジ79における各命令がその実行を完了して実行ステージ
79から出るまで、レジスタステージ77における命令が実
行ステージ79に進むことはない。その結果として、処理
システム20のインオーダ的な性質が維持される。
りも後のステージの発行グループを停止させる必要があ
ることに留意されたい。このため、制御機構85は、例外
検出ステージ81及び書き込みステージ83に送信される停
止信号をアサートするよう設計される。好ましい実施形
態では、制御機構85は、接続部106,105(図6)上に信
号をアサートして、例外検出ステージ81及び書き込みス
テージ83における発行グループをそれぞれ停止させるよ
う設計される。
特性を保持するために、停止された命令を有するステー
ジよりも前のステージにおける発行グループを停止させ
る必要がある。したがって、接続部105を介して加えら
れたアサートされた停止信号は、パイプライン75の前の
ステージ77,79,81の各々にORゲート91,93,107,111を介
して提供され、また接続部106を介して加えられたアサ
ートされた停止信号は、パイプライン75の前のステージ
77,79の各々にORゲート91,93,107,111を介して提供され
る。何れかのステージ77,79,81,83がアサートされた停
止信号を有さない場合には、該何れかのステージ77,79,
81,83が現在の命令をクロック信号の次のアクティブエ
ッジで次のステージへ1ステップ進めることが可能とな
る。
本質的な特徴ではないことに留意されたい。ここで、OR
ゲート91,93,107,111は、後のステージにおける命令が
停止されている場合に前のステージにおける命令を停止
させることを可能にし、これによりシステム20のインオ
ーダ処理を維持するものである。しかし、これと同一の
機能は、異なる多くの構成及び装置により達成可能なも
のであり、ORゲート91,93,107,111を不要にすることが
可能である。更に、必要であれば、ORゲート91,93,107,
111を制御機構85の回路内に組み込むことが可能であ
る。動作処理システム20及びそれに関連する方法につい
て、その好ましい用途及び動作を以下で説明する。
令は、コンパイラ46によりコンパイルされて処理システ
ム20(図1)に送信される。処理システム20内のIDU72
(図3)は、前記命令を受信して該命令を複数の発行グ
ループへと分割する。該発行グループは複数の命令セッ
トであり、該命令セットは該命令セットのうちの他の命
令との間でのデータ依存性を有さない複数の命令から構
成される。次いで、該発行グループは、システムクロッ
ク31により生成されたクロック信号のアクティブエッジ
に応じてパイプライン75のステージ77,79,81,83を1ス
テップずつ順次進行する。したがって、停止状態が存在
しない場合には、ステージ77,79,81,83の何れかにおけ
る命令が、クロック信号の同一エッジで次のステージへ
と進み、別の発行グループからの命令がパイプライン75
の何れかにおいて現在処理されているステージ77,79,8
1,又は83と同一のステージに、1つの発行グループから
の任意の命令が入ることは決してない。
されている命令を監視し、当業界で周知の技術を介し
て、停止を生じさせるべきか否かを判定する。図7にブ
ロック115,118で示すように、制御機構85は、書き込み
ステージ83における各命令を規定するデータをチェック
し、書き込みステージ83における命令の何れかを停止さ
せるべきか否かを判定する。書き込みステージ83におけ
る命令の何れかを停止させるべき場合には、制御機構85
は、ブロック119で接続部105上に停止信号をアサートす
る。また、書き込みステージ83における命令の何れかを
停止させるべきでない場合には、制御機構85は、ブロッ
ク121で接続部105上の停止信号をデアサートした後、ブ
ロック122,123に示すように、例外検出ステージ81にお
ける命令をチェックして、それらの命令の何れかを停止
させるべきか否かを判定する。例外検出ステージ81にお
ける命令の何れかを停止させるべき場合には、制御機構
85は、ブロック124で接続部106上に停止信号をアサート
する。また、例外検出ステージ81における命令の何れか
を停止させるべきでない場合には、制御機構85は、ブロ
ック125で接続部106上の停止信号をデアサートする。
は、ブロック132に示すように、実行ステージ79におけ
る命令をチェックし、接続部88上に停止信号を適宜アサ
ートする。ここで、制御機構85は、図8のブロック141,
145に示すように、実行ステージ79における第1の命令
を「プログラム順通り」にチェックする(即ち、最も古
い命令をチェックする)。命令を停止させるべき場合
(例えば、命令を正しく実行するために必要なデータが
まだ利用可能でない場合)には、制御機構85は、ブロッ
ク147,149に示すように、該命令を処理するパイプライ
ン75に接続された接続部88上に信号をアサートすると共
に、ブロック145でチェックされた命令よりも若い命令
を処理するパイプライン75に接続された各接続部88上に
信号をアサートする。また、命令を停止させるべきでな
い場合には、制御機構85は、ブロック152に示すよう
に、チェックされた命令を処理しているパイプライン75
に接続された接続部88上の信号をデアサートする。次い
で制御機構85は、ブロック145,152,155,157に示すよう
に、停止させる必要のある命令が見つかるまで、実行ス
テージ79における各命令毎に上記と同様の操作を行う。
ィブエッジ毎に、実行に必要なデータへのアクセスを有
し、且つ利用不能なデータに依存する全ての命令よりも
古い、実行ステージ79における命令を実行すること及び
該命令を次のステージ(即ち、好ましい実施形態では例
外検出ステージ81)へ進めることが可能となる。しか
し、実行に必要なデータへのアクセスをまだ有しておら
ず、又は利用不能なデータに依存する何れかの命令より
も若い、実行ステージ79における命令は、停止される
(即ち、次のステージに移行することが阻止される)。
また、ブロック165,167に示すように、レジスタステー
ジ77における命令をチェックし、これらの命令の何れか
を停止させるべきか否かを判定する。レジスタステージ
77における命令の何れかを停止させるべき場合には、制
御機構85は、ブロック169で接続部96上に停止信号をア
サートする。また、レジスタステージ77における命令の
何れかを停止させるべきでない場合には、制御機構85
は、ブロック172で接続部96上の停止信号をデアサート
する。
命令の何れかを停止させるべき場合には、ステージ77,7
9,81,83の全てにおける各命令が停止される。例外検出
ステージ81における命令の何れかを停止させるべき場合
は、該例外検出ステージ81、実行ステージ79、及びレジ
スタステージ77における各命令が停止される。更に、実
行ステージ79における命令の何れかを停止させるべき場
合には、それらの命令と、それらの命令の何れよりも若
い実行ステージ79における各命令とが停止される。更
に、レジスタステージ77における各命令もまた停止され
る。最後に、レジスタステージ77における命令の何れか
を停止させるべき場合には、レジスタステージ77におけ
る命令の各々が停止される。ブロック175に示すよう
に、クロック信号の次のアクティブエッジが発生する
と、上述の処理が繰り返される。
77,79,81,83の各々における命令をそれぞれチェックし
た後、実行ステージ79における1つの命令のみが利用不
能なデータに依存することが判明したと仮定する。その
結果として、該1つの命令又は該1つの命令よりも若い
命令を処理する実行ステージ79に接続された接続部88上
の信号がアサートされる。換言すれば、該1つの命令
と、該1つの命令よりも若い実行ステージ79における複
数の命令とが停止される。その結果として、接続部99上
の信号もまたアサートされることになる。しかし、接続
部105,106上の他の信号の各々と残りの接続部88上の信
号とはデアサートされる。
ける命令の各々は、クロック信号の次のアクティブエッ
ジで書き込みステージ83に進み、実行ステージ79におけ
る命令の各々(停止されている命令は除く)は、前記と
同一のクロック信号のアクティブエッジで例外検出ステ
ージ81に進む。しかし、該クロック信号のアクティブエ
ッジが発生しても、レジスタステージ77における命令は
該レジスタステージ77に残留し、また実行ステージ79に
おける停止されている命令は該実行ステージ79に残留す
る。
能なデータに依存する実行ステージ79における1つの命
令)を実行するのに必要なデータが利用可能になったと
仮定する。この命令が図8のブロック141で制御機構85
によりチェックされた後、この命令を処理するパイプラ
イン75に接続された接続部88上の信号がブロック152で
デアサートされる。更に、この命令よりも若い実行ステ
ージ79における命令を処理するパイプライン75に接続さ
れた接続部88上の信号もまたデアサートされる(これら
の命令の各々は利用不能なデータに依存しないものとす
る)。その結果として、接続部99上の信号もまたデアサ
ートされる。例外検出ステージ81における命令が、クロ
ック信号の次のアクティブエッジで書き込みステージ83
に進む場合には、先に停止されている実行ステージ79に
おける命令が例外検出ステージ81に進む。更に、レジス
タステージ77における命令が実行ステージ79に進み、新
たな発行グループがレジスタステージ77に進む。
な実行ステージ79における命令は、該命令の実行及び他
のステージへの進行が可能となり、一方、実行の準備が
整っていない実行ステージ79における命令(例えば、利
用不能なデータに依存する命令、及び利用不能なデータ
に依存する実行ステージにおける別の命令よりも若い各
命令)は、実行ステージ79において停止される。更に、
パイプライン75によりデータを処理する時点で、1つの
発行グループからの1つの命令が、パイプライン75の何
れか1つにおける別の発行グループからの命令を処理し
ているステージと同一タイプのステージに入ることはな
い。換言すれば、システム20の処理は、インオーダ式で
ある。その結果として、制御機構85の複雑性を大幅に増
大させることなくシステム20の効率が最大限になる。
理システム20に命令を提供しているが、本発明の原理か
ら逸脱することなく様々なソースから命令を供給するこ
とが可能であることが理解されよう。例えば、コンピュ
ータディスク上に命令を配置し、ディスク記憶装置32を
介して該ディスクと処理システム20とのインタフェース
をとることが可能である。別の例として、命令はネット
ワーク35から提供することが可能である。更に、命令
は、システム15とインタフェースされる前にコンパイル
することが可能であり、又は処理システム20と互換性の
ある形式で書き込むことが可能であり、これによりコン
パイルの必要がなくなる。したがって、ローカルメモリ
44に格納されたプログラム41から命令を受信すること
は、本発明の本質的な特徴とみなすべきではない。
停止させるものとして本発明を説明してきた。しかし、
当業界で知られているように、命令を停止させる別の理
由が存在する場合がある。本発明の原理を用いてかかる
別の理由から命令を停止させることが可能であることは
当業者には明らかであろう。したがって、分析中の命令
を何らかの理由から停止させることになる場合には必
ず、図7及び図8のブロック118,123,167,145で「YES」
の判定が行われることが好ましい。分析された命令が利
用不能なデータに依存することは、命令を停止させるべ
き場合の単なる一例にすぎない。
79における命令の一部が、実行ステージ79を完了して次
のステージ81に進む一方、実行ステージ79における他の
命令を停止させることが可能となる。しかし、これらの
原理は実行ステージ79のみに限定されるものではない。
ここで、本発明の原理を他のステージ77,81,83に適用し
て、ステージ77,81,83のうちの1つにおける命令の一部
のみを停止させる一方、同ステージにおける他の命令を
次のステージに進めることが可能である、ということ
が、当業者であれば本開示を読み進めることにより明ら
かとなろう。したがって、必要であれば、実行ステージ
79における命令を分析し停止させるために使用される方
法と同一の方法を使用して、他のステージ77,81,及び/
又は83の何れかにおける命令の分析及び停止を行うこと
が可能である。
しい」実施形態の何れも、単に考え得る実施例にすぎ
ず、本発明の原理を明確に理解するためだけに記載され
ていることを強調しておく。本発明の思想及び原理から
実質的に逸脱することなく上述の発明の実施形態に多数
の変更及び変形を加えることが可能である。かかる変形
及び変更の全てを本発明の範囲に含ませると共に特許請
求の範囲により保護することが意図されている。
の組み合わせからなる例示的な実施態様を示す。
的に処理するインオーダ型のスーパースケーラ処理シス
テムであって、複数のパイプライン(75)と、コンピュー
タプログラム(41)の複数の命令を受信し、及び該受信し
た命令に基づき複数の発行グループを規定するよう構成
された命令分散ユニット(72)であって、更に、前記発行
グループを前記パイプライン(75)に送信するよう構成さ
れており、該発行グループの各々が、前記パイプライン
(75)により同時に処理されるべき複数の命令を有してい
る、命令分散ユニット(72)と、前記複数の発行グループ
のうちの1つにおける複数の命令の前記パイプライン(7
5)による処理中に該1つの発行グループ中の複数の命令
を分析するよう構成された制御機構(85)であって、更
に、前記1つの発行グループ中の前記命令の何れかが利
用不能なデータに依存するか否かを判定するよう構成さ
れ、及び利用不能なデータに依存する前記1つの発行グ
ループ中の命令を停止させるよう構成され、及び前記1
つの発行グループ中の他の命令の更なる処理を同時に可
能とするよう構成されている、制御機構(85)とを備えて
いる、インオーダ型のスーパースケーラ処理システム。 2.前記制御機構(85)が、利用不能なデータに依存する
と判定された前記命令よりも若いと前記制御機構(85)に
より判定された前記1つの発行グループ中の各命令を停
止させるよう構成されている、前項1に記載のインオー
ダ型のスーパースケーラ処理システム。 3.コンピュータプログラムの命令を効率的に処理する
処理システムであって、コンピュータプログラム(41)の
複数の命令を受信し、及び該受信した命令に基づいて発
行グループを規定するように構成された命令分散ユニッ
ト(72)であって、更に前記発行グループを送信するよう
構成され、該発行グループの各々が前記システムにより
同時に処理されるべき複数の命令を有している、命令分
散ユニット(72)と、少なくとも第1のステージ及び第2
のステージを各々有する複数のパイプライン(75)であっ
て、前記第1のステージが、一度に1つの発行グループ
のみからの複数の命令を処理し、前記第2のステージ
が、一度に1つの発行グループのみからの複数の命令を
処理する、複数のパイプライン(75)と、前記発行グルー
プのうちの1つにおける各命令を停止させるか否かを判
定するよう構成された制御機構(85)であって、更に、停
止させるべき前記1つの発行グループ中の命令を処理し
ている前記パイプライン(75)の前記第1のステージの各
々にそれぞれ接続された第1の接続部(88)上に停止信号
をアサートするよう構成され、更に、前記1つの発行グ
ループ中の他の命令を処理している前記パイプライン(7
5)の前記第1のステージにそれぞれ接続された第2の接
続部(88)上の停止信号をデアサートするよう構成されて
いる、前記制御機構(85)とを備えており、前記制御機構
(85)が、前記第1及び第2の接続部(88)上の前記停止信
号のアサート及びデアサートをそれぞれ同時に行う、処
理システム。 4.前記パイプライン(75)の各々が、前記接続部(88)の
うちの1つを介して送信されたデアサートされた停止信
号の受信時にのみ1つの命令を前記第1のステージから
前記第2のステージへと1ステップ進めるよう構成さ
れ、更に、前記パイプライン(75)の各々が、前記接続部
(88)のうちの1つを介して送信されたアサートされた停
止信号に応じて前記第1のステージにおける1つの命令
を停止させるよう構成されている、前項3に記載の処理
システム。 5.コンピュータプログラムの命令を効率的に処理する
インオーダ型のスーパースケーラ処理方法であって、コ
ンピュータプログラム(41)から複数の命令を受信し、同
時に処理することが可能な複数の命令を各々含む複数の
発行グループを前記命令に基づいて規定し、該発行グル
ープを複数のパイプライン(75)に順次送信し、前記発行
グループのうちの1つにおける各命令を同時に処理し、
前記1つの発行グループ中の1つの命令を停止させ、該
停止ステップで前記1つの命令が停止されている際に前
記1つの発行グループ中の他の命令の処理を可能にす
る、という各ステップを有する、インオーダ型のスーパ
ースケーラ処理方法。 6.前記1つの発行グループ中の命令が利用可能なデー
タに依存するか否かを判定し、前記停止されている命令
が利用不能なデータに依存するという前記判定ステップ
における判定に応じて前記停止ステップを実行する、と
いう各ステップを更に有する、前項5に記載のインオー
ダ型のスーパースケーラ処理方法。 7.前記停止ステップで停止された前記命令よりも若い
命令が、前記停止ステップで停止された前記命令よりも
前にその実行が完了しないことを確実にするステップを
更に有している、前項5に記載のインオーダ型のスーパ
ースケーラ処理方法。 8.コンピュータプログラムの複数の命令を効率的に処
理するインオーダ型のスーパースケーラ処理方法であっ
て、コンピュータプログラム(41)から複数の命令を受信
し、前記複数の命令に基づいて発行グループを規定し、
該発行グループの各々が、コンピュータプロセッサ(20)
において同時に実行することが可能な複数の命令を有し
ており、前記コンピュータプロセッサ(20)において複数
のステージで前記発行グループを処理し、前記発行グル
ープのうちの1つにおける複数の命令が、別の発行グル
ープ中の複数の命令と同一のステージで同時に処理され
ないことを確実にし、前記1つの発行グループ中の1つ
の命令を停止させ、該停止ステップにより前記命令が停
止されている際に前記1つの発行グループ中の他の命令
を別のステージへ進行させることを可能にする、という
各ステップを有する、インオーダ型のスーパースケーラ
処理方法。 9.前記1つの発行グループ中の命令が利用不能なデー
タに依存するか否かを判定し、前記停止された命令が利
用不能なデータに依存するという前記判定ステップでの
判定に応じて前記停止ステップを実行する、という各ス
テップを更に有する、前項8に記載のインオーダ型のス
ーパースケーラ処理方法。 10.前記1つの発行グループ中の前記命令の何れが前記
停止ステップで停止された前記命令よりも若いかを判定
し、前記停止ステップで停止された前記命令よりも若い
と判定された前記1つの発行グループ中の前記命令の各
々を停止させる、という各ステップを更に有する、前項
8に記載のインオーダ型のスーパースケーラ処理方法。
ータシステムを示すブロック図である。
命令バンドルを示すブロック図である。
ック図である。
明するフローチャートである。
される制御機構を詳細に示すブロック図である。
示すパイプラインとの間の接続を一層詳細に示すブロッ
ク図である。
を示すフローチャートである。
の一部を一層詳細に示すフローチャートである。
Claims (1)
- 【請求項1】コンピュータプログラムの命令を効率的に
処理するインオーダ型のスーパースケーラ処理システム
であって、 複数のパイプライン(75)と、 コンピュータプログラム(41)の複数の命令を受信し、及
び該受信した命令に基づき複数の発行グループを規定す
るよう構成された命令分散ユニット(72)であって、更
に、前記発行グループを前記パイプライン(75)に送信す
るよう構成されており、該発行グループの各々が、前記
パイプライン(75)により同時に処理されるべき複数の命
令を有している、命令分散ユニット(72)と、 前記複数の発行グループのうちの1つにおける複数の命
令の前記パイプライン(75)による処理中に該1つの発行
グループ中の複数の命令を分析するよう構成された制御
機構(85)であって、更に、前記1つの発行グループ中の
前記命令の何れかが利用不能なデータに依存するか否か
を判定するよう構成され、及び利用不能なデータに依存
する前記1つの発行グループ中の命令を停止させるよう
構成され、及び前記1つの発行グループ中の他の命令の
更なる処理を同時に可能とするよう構成されている、制
御機構(85)とを備えている、インオーダ型のスーパース
ケーラ処理システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/390199 | 1999-09-07 | ||
US09/390,199 US6618802B1 (en) | 1999-09-07 | 1999-09-07 | Superscalar processing system and method for selectively stalling instructions within an issue group |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2001092656A true JP2001092656A (ja) | 2001-04-06 |
JP2001092656A5 JP2001092656A5 (ja) | 2005-07-07 |
JP3773769B2 JP3773769B2 (ja) | 2006-05-10 |
Family
ID=23541515
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000269771A Expired - Fee Related JP3773769B2 (ja) | 1999-09-07 | 2000-09-06 | 命令のインオーダ処理を効率的に実行するスーパースケーラ処理システム及び方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6618802B1 (ja) |
JP (1) | JP3773769B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006134693A1 (ja) * | 2005-06-15 | 2006-12-21 | Matsushita Electric Industrial Co., Ltd. | プロセッサ |
WO2010128582A1 (ja) * | 2009-05-08 | 2010-11-11 | パナソニック株式会社 | プロセッサ |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6885375B2 (en) * | 2002-03-11 | 2005-04-26 | Sun Microsystems, Inc. | Stalling pipelines in large designs |
US20040142620A1 (en) * | 2002-09-10 | 2004-07-22 | Fibermark, Inc. | Nonwoven fiber webs with poly(phenylene sulfide) binder |
US7627735B2 (en) * | 2005-10-21 | 2009-12-01 | Intel Corporation | Implementing vector memory operations |
US20090210664A1 (en) * | 2008-02-15 | 2009-08-20 | Luick David A | System and Method for Issue Schema for a Cascaded Pipeline |
US20090210672A1 (en) * | 2008-02-19 | 2009-08-20 | Luick David A | System and Method for Resolving Issue Conflicts of Load Instructions |
US20090210666A1 (en) * | 2008-02-19 | 2009-08-20 | Luick David A | System and Method for Resolving Issue Conflicts of Load Instructions |
US7877579B2 (en) * | 2008-02-19 | 2011-01-25 | International Business Machines Corporation | System and method for prioritizing compare instructions |
US20090210677A1 (en) * | 2008-02-19 | 2009-08-20 | Luick David A | System and Method for Optimization Within a Group Priority Issue Schema for a Cascaded Pipeline |
US7984270B2 (en) * | 2008-02-19 | 2011-07-19 | International Business Machines Corporation | System and method for prioritizing arithmetic instructions |
US20090210669A1 (en) * | 2008-02-19 | 2009-08-20 | Luick David A | System and Method for Prioritizing Floating-Point Instructions |
US7882335B2 (en) * | 2008-02-19 | 2011-02-01 | International Business Machines Corporation | System and method for the scheduling of load instructions within a group priority issue schema for a cascaded pipeline |
US8095779B2 (en) * | 2008-02-19 | 2012-01-10 | International Business Machines Corporation | System and method for optimization within a group priority issue schema for a cascaded pipeline |
US8108654B2 (en) * | 2008-02-19 | 2012-01-31 | International Business Machines Corporation | System and method for a group priority issue schema for a cascaded pipeline |
US7865700B2 (en) * | 2008-02-19 | 2011-01-04 | International Business Machines Corporation | System and method for prioritizing store instructions |
US7870368B2 (en) * | 2008-02-19 | 2011-01-11 | International Business Machines Corporation | System and method for prioritizing branch instructions |
US7996654B2 (en) * | 2008-02-19 | 2011-08-09 | International Business Machines Corporation | System and method for optimization within a group priority issue schema for a cascaded pipeline |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2911278B2 (ja) * | 1990-11-30 | 1999-06-23 | 松下電器産業株式会社 | プロセッサ |
US6138230A (en) * | 1993-10-18 | 2000-10-24 | Via-Cyrix, Inc. | Processor with multiple execution pipelines using pipe stage state information to control independent movement of instructions between pipe stages of an execution pipeline |
US5592679A (en) * | 1994-11-14 | 1997-01-07 | Sun Microsystems, Inc. | Apparatus and method for distributed control in a processor architecture |
US5958042A (en) * | 1996-06-11 | 1999-09-28 | Sun Microsystems, Inc. | Grouping logic circuit in a pipelined superscalar processor |
US6047368A (en) * | 1997-03-31 | 2000-04-04 | Sun Microsystems, Inc. | Processor architecture including grouping circuit |
-
1999
- 1999-09-07 US US09/390,199 patent/US6618802B1/en not_active Expired - Lifetime
-
2000
- 2000-09-06 JP JP2000269771A patent/JP3773769B2/ja not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006134693A1 (ja) * | 2005-06-15 | 2006-12-21 | Matsushita Electric Industrial Co., Ltd. | プロセッサ |
US7953959B2 (en) * | 2005-06-15 | 2011-05-31 | Panasonic Corporation | Processor |
WO2010128582A1 (ja) * | 2009-05-08 | 2010-11-11 | パナソニック株式会社 | プロセッサ |
JP2010262542A (ja) * | 2009-05-08 | 2010-11-18 | Panasonic Corp | プロセッサ |
Also Published As
Publication number | Publication date |
---|---|
US6618802B1 (en) | 2003-09-09 |
JP3773769B2 (ja) | 2006-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3773769B2 (ja) | 命令のインオーダ処理を効率的に実行するスーパースケーラ処理システム及び方法 | |
JP3659877B2 (ja) | ライトアフターライトデータハザードにより生じるエラーを効率的に防止するためのスーパースケーラ処理システム及び方法 | |
KR100951092B1 (ko) | 정교한 멀티스레드 디스패치 차단 방법, 장치 및 컴퓨터 판독가능한 기록 매체 | |
US7664928B1 (en) | Method and apparatus for providing user-defined interfaces for a configurable processor | |
JP2001521215A (ja) | マルチスレッド式プロセッサでスレッド切替えイベントを選択するための方法および装置 | |
US20060206693A1 (en) | Method and apparatus to execute an instruction with a semi-fast operation in a staggered ALU | |
JP2004171573A (ja) | 新規な分割命令トランズアクションモデルを使用して構築したコプロセッサ拡張アーキテクチャ | |
JP3756409B2 (ja) | データハザード検出システム | |
JP3756410B2 (ja) | 述語データを提供するシステム | |
US7181601B2 (en) | Method and apparatus for prediction for fork and join instructions in speculative execution | |
JP5528804B2 (ja) | 効率的な割込み復帰アドレス保存メカニズム | |
JP2001142699A (ja) | パイプラインプロセッサにおける命令データの転送メカニズム | |
JP3704046B2 (ja) | データハザードを検出するために用いられるデータを融合するためのシステム及び方法 | |
JP2001216160A (ja) | 長レイテンシ命令に対する命令属性およびステータス情報を示す処理システムおよび方法 | |
US6711670B1 (en) | System and method for detecting data hazards within an instruction group of a compiled computer program | |
JP2001142701A (ja) | プロセッサにおけるパイプライン制御用メカニズムおよび方法 | |
JP4745960B2 (ja) | マイクロプロセッサにおいてデータ推測オペレーションを識別する推測ポインタ | |
JP2008537208A (ja) | 条件付命令を実行しない時のソース・オペランドの停止待機 | |
KR20140131199A (ko) | 재구성 가능 프로세서 및 재구성 가능 프로세서의 동작 방법 | |
JP3756411B2 (ja) | データハザードを検出するシステム | |
JP3759398B2 (ja) | コンピュータ・プログラムのハザードを検出するシステム | |
US6769057B2 (en) | System and method for determining operand access to data | |
JPH1049373A (ja) | パイプライン・デジタル・プロセッサにおいて多重で高精度の事象を操作する方法と装置 | |
JP3158107B2 (ja) | 浮動小数点状態および制御レジスタ(fpscr)命令を直接実行するための方法および装置 | |
JPH09274567A (ja) | プログラムの実行制御方法及びそのためのプロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041101 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041101 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060210 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060214 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060215 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090224 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100224 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |