JPH08241213A - マイクロプロセッサにおける分散型制御システム - Google Patents

マイクロプロセッサにおける分散型制御システム

Info

Publication number
JPH08241213A
JPH08241213A JP8008029A JP802996A JPH08241213A JP H08241213 A JPH08241213 A JP H08241213A JP 8008029 A JP8008029 A JP 8008029A JP 802996 A JP802996 A JP 802996A JP H08241213 A JPH08241213 A JP H08241213A
Authority
JP
Japan
Prior art keywords
control
completion
instruction
dispatch
ordered
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
Application number
JP8008029A
Other languages
English (en)
Inventor
Christopher Hans Olson
クリストファー・ハンス・オルソン
Terence Matthew Potter
テレンス・マゼウ・ポター
Michael Thomas Vaden
マイケル・トーマス・バデン
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 JPH08241213A publication Critical patent/JPH08241213A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 or look ahead
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【課題】大きな直列的待ち行列構造と関連してサイクル
・タイムが課せられることなくスーパスカラ・プロセッ
サにおいて命令相互間の複雑な制御従属関係を維持する
ディスパッチ完了制御機構を提供する。 【解決手段】グローバル・バスは存在するが、それらの
うちサイクル制限するものはない(一般に、それらは殆
どラッチ対ラッチのパスである)。この完了制御機構の
コストは各命令ステージと関連した多数のタグ・ビット
である。しかし、リソグラフィの面積の削減から見て、
このコストは小さく、より新しい強力なテクノロジを利
用できる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、概して云えば、マ
イクロプロセッサに関するものであり、詳しく云えば、
そのようなマイクロプロセッサにおける命令の完了の制
御に関するものである。
【0002】
【従来の技術】制御の従属性(依存性)を処理すること
が、多くのマイクロプロセッサにおけるロジック及び複
雑さの大きな部分となる。マイクロプロセッサは、制御
従属性を処理するための多くの機構を持つであろうし、
種々のレベルの割込み精度(例えば、浮動小数点例外の
使用可/使用不可)が必要である時、これらの機構はか
なり異なって機能しなければならず、その結果、制御が
難しくなる。例えば、RISCプロセッサが浮動小数点
例外使用可モードに入る時、プロセッサは、一時に1つ
ずつ命令の発生を開始しなければならず(その結果、パ
フォーマンスの低下を生じる)、従って、そのモードの
完了要件は、そのプロセッサのディスパッチ・ロジック
にかなりの影響を与える。
【0003】別のプロセッサでは、浮動小数点命令は他
の命令と共にいつも順序正しく完了し、その結果、その
完了ロジックにおいて極めて伝統的な同期を生じる(即
ち、それはいつも浮動小数点例外使用可モードにあるが
如く振る舞う)。完了バッファ方法によれば、単一サイ
クルで多数の命令を完了させることは、待ち行列構造の
直列化という性質のために実行不可能である(例えば、
命令2が完了しようとしているかどうかを知るために
は、先ず、命令0及び1が完了しようとしているかどう
かを知らなければならない)。
【0004】完了(コンプリーション)ロジックに関連
するものにパージ(purging)ロジックがある。
1つの命令が完了する時、正しい制御/フローの判断及
び正しくない制御/フローの判断がある。これはブラン
チ(分岐)にとって真であるが、例外を生じさせうるす
べての命令に対しても真である(即ち、「例外パス」及
び「例外パスなし」がある)。それらは過去においては
異なって扱われていたけれども、制御/フロー管理が進
む限り、(同期的)例外、(非同期的)割込み、及びブ
ランチはすべて全く同じである。
【0005】従って、通常の完了制御(completion con
trol)システムは、すべての命令を受けるための集中型
の制御待ち行列を含む集中型コントローラを含む。命令
は、それらの実行中、その制御待ち行列に情報を送出す
るであろう。そこで、集中型の制御待ち行列は、命令の
実行に対する適正な順序を決定するであろう。その集中
制御待ち行列は、制御されるべき多数の種々の活動のた
め、プログラムの実行に対する大きな障害となることが
ある。従って、制御従属性の数が増加するにつれて、マ
イクロプロセッサの全体的なパフォーマンスはかなり減
少するであろう。
【0006】
【発明が解決しようとする課題】従って、これらの制御
従属性がより効率的な態様で処置されるシステムを提供
することが重要である。そのシステムは、マイクロプロ
セッサに複雑さを加えるものであってはならない。結
局、そのシステムは、既存のマイクロプロセッサの設計
において容易に実施可能なものでなければならない。本
発明はそのような要求に応えるものである。
【0007】
【課題を解決するための手段】分散完了(distributed
completion)は、一度に完了することを許される命令の
数が大きくなる(タイミング制約なしに)ように命令の
完了を制御する方法であり、すべての形式の制御従属性
が単一のコヒーレントな機構を通して処理される。
【0008】マイクロプロセッサのための分散完了制御
システムが開示される。そのシステムは、複数個のディ
スパッチ・ユニット(各ディスパッチ・ユニットは、更
に、フェッチされたアドレスに応答して命令を受けるた
めのディスパッチ待ち行列より成る)、複数個の制御従
属タグ、及びそれらの制御従属タグが適当な命令に割り
当てられていることを表すための手段より成る。更に、
そのシステムは、命令及び制御従属タグを受けるための
複数個の実行ユニットを含む。
【0009】その分散完了機構は、大きな順次待ち行列
構造と関連したサイクル・タイム制約のないスーパスカ
ラ・プロセッサにおいて命令相互間の複雑な制御従属関
係を維持する。
【0010】
【発明の実施の形態】本発明は、マイクロプロセッサに
おける命令の移動を制御するために利用される完了制御
システムに関する。以下の説明は、当業者が本発明を実
施し、利用することを可能にするように示され、特許出
願及びそれの要件に適合した形で行われる。当業者にと
って、好適な実施例に対する種々な修正は明らかであろ
うし、本願における一般的な原理は他の実施例にも適用
可能である。従って、本発明は、図示の実施例に限定さ
れるものではなく、ここに開示される原理及び特徴に合
致した幅広い技術範囲に適合すべきものである。
【0011】この例のために、多数の実行ユニット及び
それらを援助する多数のディスパッチャを持った汎用の
スーパスカラ・プロセッサが仮定される。これは、必ず
しも理路整然とした設計ポイントではない(例えば、多
数のディスパッチャと関連したディスパッチの複雑性は
無視される)が、種々の設計ポイントにおいて見られる
多くの特徴を組み込んだ原理的に実施可能な機械であ
る。単一のスレッド内の多数のコード・セグメントをフ
ェッチするために多数のディスパッチャが使用されるこ
と、換言すれば、ディスパッチャ間にコミッション配列
(commission ordering)要件があ
ることも仮定される。最後に、ディスパッチャ間で分離
可能なコード・セグメントの粒状性が基本的なブロック
・レベルにあること、及び制御従属関係を持ったディス
パッチャの部分的配列(partial orderi
ng)があることが仮定される。
【0012】図1は、上記の仮定に従って、マイクロプ
ロセッサにおいて利用可能な通常の完了制御システム1
0のブロック図である。図1の完了制御システム10
は、命令を受けるための複数個のディスパッチ装置(デ
ィスパッチャ)12を含む。それらのディスパッチ装置
の各々は、それの適当な実行装置に命令をディスパッチ
する。この実施例では、実行装置は、それらのディスパ
ッチ装置が信号を供給し得る多数の実行装置14として
示される。更に、ディスパッチ装置12の各々は集中型
完了バッファ16にも接続される。多数の実行装置14
及び集中型完了バッファ16が書戻しコミット・ロジッ
ク18に信号を与える。集中型完了バッファ16は、命
令が特定のアクションをコミットすることを可能にする
ための信号を与える。通常の完了制御機構の一般的な特
徴の1つは、完了が制御フローを解決しそして命令をコ
ミットする行為として考えられていたことである。この
実施例では、命令のスループットは、その集中型完了制
御装置から命令を取り除くことができる率によって制限
される。マイクロプロセッサは、より高速になり且つ1
サイクル当たりより多くの命令を処理する必要があるの
で、スループットにおけるこの障害は、そのような命令
の処理において大きな欠点を生じさせることがある。
【0013】図2を参照すると、プロセッサにおける命
令のライフタイムを表す概略図が示される。明らかに、
命令には、推測(speculative)状態及び非
推測(nonspeculative)状態という2つ
の状態がある。制御フロー解決はコミッションとは別な
ものである。制御フロー解決は、ロードが中断すべきか
どうかに関係なく、それがどの可能な制御パスを取ろう
としているか(例えば、ブランチがどの方向に進むか)
を命令が決定する時に生じる。これは、この命令制御が
従属する命令に無関係に生じることに留意すべきであ
る。
【0014】本願のために、命令Bによって生じたアー
キテクチャ的な状態の変化がアーキテクチャ的には正し
くないような命令Aが行い得る制御フローの判断がある
場合、命令Bは命令Aに制御フロー従属する。一般に、
制御従属関係は機械の状態に従属することに留意して欲
しい。コミッションは、命令の実行が保証された後に生
じる。命令が実行されるべきことをプロセッサが決定す
る時、プロセッサはその命令をコミットし、それは、設
計済みのレジスタを更新することが許されることを意味
する。このコミット・ポイントは、思索的実行及び非思
索的実行の間を分離するものである。命令は、コミット
されてしまった後は、パージされることはない。
【0015】本発明による分散型制御完了システムで
は、ディスパッチ時に、独特の完了タグが各命令に割り
当てられる。更に、命令は、それが制御従属する命令リ
ストに対応したコード完了タグのリストと関連付けられ
る。命令がそれの制御フロー判断を解決する時、それ
は、それのタグをパージ又は解決インディケータとして
すべての命令に送る。命令が、それが制御従属する命令
に対するパージ・インディケータを受け取る場合、それ
はそれ自身をパージする。命令が、それが制御従属する
命令に対する解決インディケータを受け取る場合、それ
はその命令を解決済みとしてマークする。命令の制御従
属性がすべて解決された時、それはコミットすることが
できる。この方法では、命令は、集中型完了装置をポー
ルする必要なくコミットすることができる。
【0016】本発明に従って複数個のディスパッチ装置
を使用することにより、所与の命令の完了要件は処理装
置の設計において変更可能であり、他の装置に対する完
了インターフェースは安定したままとなろう。(例え
ば、浮動小数点装置の設計が乗算段階における命令を制
御フロー解決するタイミング問題を有する場合、それは
解決ポイントを次のサイクルまで簡単に動かすことがで
きる。すべてのインターロックは既に適切な状態にある
ので、他の装置が影響されることはない。勿論、パフォ
ーマンスは影響されるであろう)。
【0017】図3は、制御フロー・グラフ・フォーマッ
トで表すことが可能なプログラム・コードを示す。その
制御フロー・グラフ・フォーマットはコード基本ブロッ
ク片をノードとして明示的に示し、1つのコード片が他
のコード片に後続する場所でノードを連結する。既にわ
かっていることは、1つの命令が多数の出力エッジを有
する時、新しいディスパッチ装置が使用可能であるとい
うことである。そこで、適切なパスを決定するために、
制御フロー情報がプロセッサにより利用可能になる。
【0018】図4は本発明によるディスパッチ装置10
0の簡単なブロック図である。ディスパッチ装置100
は、フェッチ・アドレスに従ってメモリ103から命令
を受けるためのディスパッチ待ち行列102、制御従属
タグ104、及び完了タグ割当て機構106を含む。命
令及びそれらの対応した制御従属情報が実行装置108
に与えられる。各ディスパッチ装置100は、特定の命
令に割り当てられたそれ自身の範囲の制御従属タグ10
4を持つであろう。これは、各ディスパッチ装置100
が如何なる集中型装置とのコミュニケーションなしにそ
れら自身の完了タグの適用及び割当て解除を管理するこ
とを可能にする。
【0019】プロセッサが1つの命令から多数のパスを
追跡することを決定する時、それは、そのパスの第1命
令に対する制御従属タグ104からのフェッチを始める
ためのアドレスでもって少なくとも1つの新しいディス
パッチ装置100を初期設定する。2つ以上のパスが追
跡される場合、他のディスパッチ装置100が初期設定
される(当初のディスパッチ装置100は2つのパスの
うちの1つを追跡することができることに留意してほし
い)。一旦ディスパッチ装置100が初期設定されてし
まうと、それは、それが終了するまでそれのコード・パ
スを処理することができる。そして、その終了時点で、
それは他のパスに対して再割当て可能になる。ディスパ
ッチ装置100は、それがフェッチしようとしているパ
スがパージされると終了したものと見なされ、それのデ
ィスパッチ待ち行列に命令は残っていないと見なされ
る。
【0020】図4から明らかなように、ディスパッチ装
置100が初期設定される時、それは初期アドレス10
9及び初期制御従属タグ110を与えられる。フェッチ
・アドレス111は、このディスパッチ装置100が処
理すべきコード・パスに対する開始アドレスを指定す
る。初期制御従属タグ110は、初期アドレス109に
おける命令に対するコード従属タグである。図4に示さ
れた完了タグ割当てロジックを実施するための数多くの
方法がある。そのような方法の1つを次に説明すること
にする。
【0021】図5を参照すると、ディスパッチ装置10
0の詳細なブロック図が示される。命令は、それらがデ
ィスパッチ待ち行列202に入れられる時に完了タグを
割り当てられるものと仮定する。所与の命令にタグを割
当てることができない場合、その命令をディスパッチす
ることはできない(それに対してタグが割振り可能にな
るまで)。どのタグを割り振るべきかを実際に決定する
ためのロジックは何らかのデコード・ロジックでよい。
例えば、第1の利用可能なタグが見つかりそしてディス
パッチ待ち行列202に入ってくる第1の命令に割り振
られ、第2の利用可能なタグが第2の命令に割当てられ
る。
【0022】完了タグ206及び制御従属タグ204の
各々は、どのタグを割り振るべきかを見つけることを容
易にするために、一緒に割当てられる。一組のタグが割
り振られていると仮定すると、制御従属リスト及び制御
従属タグを発生することは、単に、その割り当てられて
いるタグとその割り振られているタグとの結合の問題で
ある。
【0023】明らかなように、ディスパッチ待ち行列2
02が命令を処理する時、それは、それの順序付けられ
た制御従属タグ204及び順序付けられた完了タグ20
6を割り振る。完了タグ206の各々がKビットである
と仮定すると、制御従属タグ204は2K ビットであ
る。更に、1つの機械当たりに存在し得る命令の数は、
ディスパッチとコミットとの間の2K 個である。好適な
実施例では、1つの制御従属タグ204がディスパッチ
時に各命令に割り当てられる。命令がディスパッチされ
る時、それの完了タグ206及びそれが制御従属する命
令に対応した完了タグ(制御従属タグ204)のリスト
がそれと共にディスパッチされる。従って、m個のディ
スパッチ装置の各々に対して利用可能な合計n個の完了
タグ206が存在する場合、1つの命令に対する制御従
属のリストはn*mビット・バスより成り、それにおけ
る「1」は制御従属性の存在を意味し、「0」は制御従
属性の欠如を表す。
【0024】従って、1つの命令に対する完了タグ20
6は、正確に1ビットのオン(その命令に割り当てられ
たタグを意味する)を持ったn*mビット・バスである
か、又はn*m個の制御タグの1つに対するコード化ポ
イントである。実行装置は2つのグローバル・ビット単
位トライステート・バスの1つにおける制御従属解決を
意味する。1つのバスは、正しい解決を意味するために
使用され(解決バス)、一方、もう1つのバスは、その
命令に従属するすべての命令がパージされるべきである
ことを表す(パージ・バス)。1つの命令が多数の制御
従属パスを生じさせる時、各パスは独特のタグを与えら
れる。
【0025】各パイプライン・ステージは、マイクロプ
ロセッサの解決バス及びパージ・バスを監視する責任が
ある。解決バス上にタグが置かれる場合、各ステージは
それの現在の制御従属タグ204(現在そのステージに
おける命令に関連した)を調べ、そしてその制御従属タ
グ204が存在する場合、それはリストから除去されな
ければならない(制御従属性が解決される)。従って、
命令に対する制御従属タグ204のリストがエンプティ
(ゼロ)である時、その命令はコミット可能である。
【0026】制御従属タグ204がパージ・バス上に置
かれている場合、各ステージはそれの制御従属タグ・リ
ストを調べ、そしてその制御従属タグ204が存在する
場合、それはそれの命令の出力を(恐らく、それをパー
ジすることによって)抑止する。ステージが命令を解決
することができる場合、それは、それの現在の制御従属
タグ204(そのステージに現在存在する命令に割り当
てられた固有の制御従属タグ204)を使用してソリュ
ーション・タグ及びパージ・タグのそのビット上へのト
ライステート・ドライバをイネーブルし、適切な値を出
力する。図6乃至図8は、種々のパイプライン・ステー
ジに対して利用される種々のタイプの回路を示す。
【0027】図6は、制御従属情報を解決することがで
きる論理回路300のブロック図であり、それは、本発
明に従ってディスパッチ装置100を使用するための完
了論理回路302を含む。
【0028】図7は、本発明に従ってディスパッチ装置
100において使用するためのパージ・ロジック402
を含む論理回路400のブロック図である。
【0029】図8は、本発明に従ってディスパッチ装置
100において使用するためのレジスタを更新するため
に利用される論理回路500のブロック図である。
【0030】論理回路300、400、及び500は各
ステージにおいて繰り返され、その回路の非常にわずか
な領域しか占めていない。図6乃至図8に示された完了
ロジック及びパージ・ロジックは他の完了方法にとって
も必要であり、従って、論理バブルとして簡単に示され
る。一般に、パージ・ロジック402は状態機械をリセ
ットし、ある種の有効な命令信号をディケートする。完
了回路502は、制御命令がどの方向を取るかを決定す
るものであり、すべてのプロセッサにおいて必要とされ
るものである。
【0031】結局、論理回路300、400、及び50
0は、種々のパイプライン・ステージにおいて利用可能
なタイプの論理回路を表しているに過ぎないことは明ら
かである。従って、当業者には容易に明らかなように、
種々の論理回路が本発明によるシステムを利用可能であ
り、それらの使用は本発明の精神及び技術範囲内にあ
る。
【0032】従って、本発明によるシステムは、分散さ
れた完了制御方法を提供するものである。これは、命令
と共に制御従属情報を与えることによって達成される。
従って、集中型の完了制御を必要としない。従って、各
ディスパッチ装置は、その装置が命令をコミットすべき
か或いはパージすべきかに関する必要な情報を含んでい
る。
【0033】本発明による分散型完了制御システムは、
大きな逐次型待ち行列構造と関連してサイクル・タイム
が課せられることなく、スーパスカラ・プロセッサにお
いて命令相互間の複雑な制御従属関係を維持する。この
完了制御システムのコストは、多数のタグ・ビットが各
命令ステージと関連することによるものである。しか
し、リソグラフィの面積の削減から見て、このコストは
小さく、新しい強力なテクノロジを利用するものであ
る。
【0034】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0035】(1)マイクロプロセッサのための分散型
完了制御システムにして、各々が、フェッチされたアド
レスに応答して命令を受けるためのディスパッチ待ち行
列と、制御従属情報を与えるための手段と、複数個の制
御従属情報が適正な命令に割り当てられていることを表
すための手段とを含む複数個のディスパッチ装置と、命
令及び関連の制御従属情報を受け、各ディスパッチ装置
が該制御従属情報に依存した命令をコミットすることを
可能にするための複数個の実行装置と、を含む分散型完
了制御システム。 (2)前記制御従属情報は複数個の順序付けられた完了
タグと、複数個の順序付けられた制御従属タグとを含む
ことを特徴とする上記(1)に記載の分散型完了制御シ
ステム。 (3)前記ディスパッチ待ち行列は順序付けられた態様
で前記命令を受ける複数個のディスパッチ待ち行列装置
を含むことを特徴とする上記(2)に記載の分散型完了
制御システム。 (4)前記複数個の順序付けられた完了タグ及び前記複
数個の順序付けられた制御従属タグは前記適切な制御従
属情報が与えられるように前記順序付けられた命令に対
応することを特徴とする上記(3)に記載の分散型完了
制御システム。 (5)前記制御従属情報は前記命令をコミットするため
に利用されることを特徴とする上記(1)に記載の分散
型完了制御システム。 (6)前記制御従属情報は前記命令を解決するために利
用されることを特徴とする上記(1)に記載の分散型完
了制御システム。 (7)前記制御従属情報は前記命令をパージするために
利用されることを特徴とする上記(1)に記載の分散型
完了制御システム。 (8)プロセッサにおいて使用するためのディスパッチ
装置にして、ディスパッチ待ち行列と、制御従属情報を
与えるための制御従属タグ手段と、前記制御従属情報を
適切な命令に割当てるための完了タグ割当て手段と、を
含むディスパッチ装置。 (9)前記制御従属情報は複数個の直列的に順序付けら
れた完了タグと、複数個の直列的に順序付けられた制御
従属タグとを含むことを特徴とする上記(8)に記載の
ディスパッチ装置。 (10)前記ディスパッチ待ち行列は順序付けられた態
様で前記命令を受ける複数個のディスパッチ待ち行列装
置を含むことを特徴とする上記(9)に記載のディスパ
ッチ装置。 (11)前記複数個の順序付けられた完了タグ及び前記
複数個の順序付けられた制御従属タグは前記適切な制御
従属情報が与えられるように前記順序付けられた命令に
対応することを特徴とする上記(10)に記載のディス
パッチ装置。 (12)前記制御従属情報は前記命令をコミットするた
めに利用されることを特徴とする上記(8)に記載のデ
ィスパッチ装置。 (13)前記制御従属情報は前記命令を解決するために
利用されることを特徴とする上記(8)に記載のディス
パッチ装置。 (14)前記制御従属情報は前記命令をパージするため
に利用されることを特徴とする上記(8)に記載のディ
スパッチ装置。
【図面の簡単な説明】
【図1】マイクロプロセッサのための通常の完了制御シ
ステムのブロック図である。
【図2】マイクロプロセッサにおける制御フロー・ソリ
ューションを示すテーブルである。
【図3】本発明によるディスパッチ装置の簡単なブロッ
ク図である。
【図4】簡単なプログラムのフローチャートである。
【図5】本発明による図3のディスパッチ装置の詳細な
ブロック図である。
【図6】本発明によるディスパッチ装置を使用するため
の制御従属情報を解決し得る論理回路のブロック図であ
る。
【図7】本発明によるディスパッチ装置において使用す
るためのパージ・ロジックを含む論理回路のブロック図
である。
【図8】本発明によるディスパッチ装置において使用す
るための設計されたレジスタを更新するために利用され
る論理回路のブロック図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 テレンス・マゼウ・ポター アメリカ合衆国テキサス州、オースティ ン、トゥイン・レッジ・コーブ 6107 (72)発明者 マイケル・トーマス・バデン アメリカ合衆国テキサス州、オースティ ン、フォックスホンド・トレイル 8200

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】マイクロプロセッサのための分散型完了制
    御システムにして、 各々が、フェッチされたアドレスに応答して命令を受け
    るためのディスパッチ待ち行列と、制御従属情報を与え
    るための手段と、複数個の制御従属情報が適正な命令に
    割り当てられていることを表すための手段とを含む複数
    個のディスパッチ装置と、 命令及び関連の制御従属情報を受け、各ディスパッチ装
    置が該制御従属情報に依存した命令をコミットすること
    を可能にするための複数個の実行装置と、 を含む分散型完了制御システム。
  2. 【請求項2】前記制御従属情報は複数個の順序付けられ
    た完了タグと、複数個の順序付けられた制御従属タグと
    を含むことを特徴とする請求項1に記載の分散型完了制
    御システム。
  3. 【請求項3】前記ディスパッチ待ち行列は順序付けられ
    た態様で前記命令を受ける複数個のディスパッチ待ち行
    列装置を含むことを特徴とする請求項2に記載の分散型
    完了制御システム。
  4. 【請求項4】前記複数個の順序付けられた完了タグ及び
    前記複数個の順序付けられた制御従属タグは前記適切な
    制御従属情報が与えられるように前記順序付けられた命
    令に対応することを特徴とする請求項3に記載の分散型
    完了制御システム。
  5. 【請求項5】前記制御従属情報は前記命令をコミットす
    るために利用されることを特徴とする請求項1に記載の
    分散型完了制御システム。
  6. 【請求項6】前記制御従属情報は前記命令を解決するた
    めに利用されることを特徴とする請求項1に記載の分散
    型完了制御システム。
  7. 【請求項7】前記制御従属情報は前記命令をパージする
    ために利用されることを特徴とする請求項1に記載の分
    散型完了制御システム。
  8. 【請求項8】プロセッサにおいて使用するためのディス
    パッチ装置にして、 ディスパッチ待ち行列と、 制御従属情報を与えるための制御従属タグ手段と、 前記制御従属情報を適切な命令に割当てるための完了タ
    グ割当て手段と、 を含むディスパッチ装置。
  9. 【請求項9】前記制御従属情報は複数個の直列的に順序
    付けられた完了タグと、複数個の直列的に順序付けられ
    た制御従属タグとを含むことを特徴とする請求項8に記
    載のディスパッチ装置。
  10. 【請求項10】前記ディスパッチ待ち行列は順序付けら
    れた態様で前記命令を受ける複数個のディスパッチ待ち
    行列装置を含むことを特徴とする請求項9に記載のディ
    スパッチ装置。
  11. 【請求項11】前記複数個の順序付けられた完了タグ及
    び前記複数個の順序付けられた制御従属タグは前記適切
    な制御従属情報が与えられるように前記順序付けられた
    命令に対応することを特徴とする請求項10に記載のデ
    ィスパッチ装置。
  12. 【請求項12】前記制御従属情報は前記命令をコミット
    するために利用されることを特徴とする請求項8に記載
    のディスパッチ装置。
  13. 【請求項13】前記制御従属情報は前記命令を解決する
    ために利用されることを特徴とする請求項8に記載のデ
    ィスパッチ装置。
  14. 【請求項14】前記制御従属情報は前記命令をパージす
    るために利用されることを特徴とする請求項8に記載の
    ディスパッチ装置。
JP8008029A 1995-01-25 1996-01-22 マイクロプロセッサにおける分散型制御システム Pending JPH08241213A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US37781395A 1995-01-25 1995-01-25
US377813 1995-01-25

Publications (1)

Publication Number Publication Date
JPH08241213A true JPH08241213A (ja) 1996-09-17

Family

ID=23490618

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8008029A Pending JPH08241213A (ja) 1995-01-25 1996-01-22 マイクロプロセッサにおける分散型制御システム

Country Status (8)

Country Link
US (1) US5822556A (ja)
EP (1) EP0724214A3 (ja)
JP (1) JPH08241213A (ja)
KR (1) KR0175986B1 (ja)
CN (1) CN1075647C (ja)
BR (1) BR9600109A (ja)
CA (1) CA2163691A1 (ja)
TW (1) TW295646B (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6016540A (en) * 1997-01-08 2000-01-18 Intel Corporation Method and apparatus for scheduling instructions in waves
US6032249A (en) * 1998-02-02 2000-02-29 International Business Machines Corporation Method and system for executing a serializing instruction while bypassing a floating point unit pipeline
US6134645A (en) * 1998-06-01 2000-10-17 International Business Machines Corporation Instruction completion logic distributed among execution units for improving completion efficiency
US6636928B1 (en) * 2000-02-18 2003-10-21 Hewlett-Packard Development Company, L.P. Write posting with global ordering in multi-path systems
US20060090015A1 (en) * 2004-10-26 2006-04-27 Bradfield Travis A Pipelined circuit for tag availability with multi-threaded direct memory access (DMA) activity
US20060206732A1 (en) * 2005-03-14 2006-09-14 Sony Computer Entertainment Inc. Methods and apparatus for improving processing performance using instruction dependency check depth
US8327120B2 (en) 2007-12-29 2012-12-04 Intel Corporation Instructions with floating point control override
CN101706714B (zh) * 2009-11-23 2014-03-26 龙芯中科技术有限公司 指令发射系统及方法、处理器及其设计方法
GB2514618B (en) * 2013-05-31 2020-11-11 Advanced Risc Mach Ltd Data processing systems

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4149243A (en) * 1977-10-20 1979-04-10 International Business Machines Corporation Distributed control architecture with post and wait logic
US4740895A (en) * 1981-08-24 1988-04-26 Genrad, Inc. Method of and apparatus for external control of computer program flow
US4635186A (en) * 1983-06-20 1987-01-06 International Business Machines Corporation Detection and correction of multi-chip synchronization errors
US4903196A (en) * 1986-05-02 1990-02-20 International Business Machines Corporation Method and apparatus for guaranteeing the logical integrity of data in the general purpose registers of a complex multi-execution unit uniprocessor
US5127104A (en) * 1986-12-29 1992-06-30 Dataflow Computer Corporation Method and product involving translation and execution of programs by automatic partitioning and data structure allocation
US4762253A (en) * 1987-02-17 1988-08-09 Rhh Enterprises, Inc. Foam dispensing gun
US4991090A (en) * 1987-05-18 1991-02-05 International Business Machines Corporation Posting out-of-sequence fetches
EP0378415A3 (en) * 1989-01-13 1991-09-25 International Business Machines Corporation Multiple instruction dispatch mechanism
DE3908852A1 (de) * 1989-03-17 1990-09-20 Deutsch Franz Forsch Inst Verfahren und einrichtung zur bestimmung der mittleren signalfrequenz einer statistischen folge kurzer schwingungspakete
US5201056A (en) * 1990-05-02 1993-04-06 Motorola, Inc. RISC microprocessor architecture with multi-bit tag extended instructions for selectively attaching tag from either instruction or input data to arithmetic operation output
US5151981A (en) * 1990-07-13 1992-09-29 International Business Machines Corporation Instruction sampling instrumentation
WO1993020505A2 (en) * 1992-03-31 1993-10-14 Seiko Epson Corporation Superscalar risc instruction scheduling
CA2107305A1 (en) * 1993-01-08 1994-07-09 James Allen Kahle Method and system for nonsequential instruction dispatch and execution in a superscalar processor system

Also Published As

Publication number Publication date
TW295646B (ja) 1997-01-11
KR960029964A (ko) 1996-08-17
CA2163691A1 (en) 1996-07-26
CN1075647C (zh) 2001-11-28
US5822556A (en) 1998-10-13
KR0175986B1 (ko) 1999-05-15
EP0724214A3 (en) 1997-06-18
CN1136181A (zh) 1996-11-20
EP0724214A2 (en) 1996-07-31
BR9600109A (pt) 1998-01-27

Similar Documents

Publication Publication Date Title
US5070475A (en) Floating point unit interface
JP3093639B2 (ja) プロセッサ内の資源割当て追跡方法及びそのシステム
EP0762270B1 (en) Microprocessor with load/store operation to/from multiple registers
US6301655B1 (en) Exception processing in asynchronous processor
EP0789299A1 (en) Method for executing speculative load instructions in high-performance processors
KR20010095074A (ko) 다중 스레드 초장 명령어 프로세서, 명령어 처리 방법 및그 제품, 및 명령어 컴파일링 제품 및 컴파일러
JPH09185506A (ja) プロセッサ内で命令を実行する方法およびシステム
JPH10133873A (ja) 複数の分岐予測方式のうちの選択された1つを使用して条件分岐命令を投機的に実行するためのプロセッサおよび方法
KR100493126B1 (ko) 데이터정밀도모드표시기를구비한다중파이프라인형마이크로프로세서
JPH02227769A (ja) データ処理システム
KR20010095069A (ko) 다중 스레드 초장 명령어 프로세서, 명령어 처리 방법 및그 제품
KR940018742A (ko) 슈퍼스칼라 프로세서 시스템에서 복수의 명령어를 단일 사이클로 디스패치하기 위한 방법 및 장치
JPS633337B2 (ja)
KR20010095068A (ko) 다중 스레드 초장 명령어 프로세서, 명령어 처리 방법 및그 제품
KR20010095073A (ko) 다중 스레드 초장 명령어 프로세서, 명령어 처리 방법 및그 제품
JPH096611A (ja) データ処理システムにおけるデータをバッファリングする方法およびシステム
US6862676B1 (en) Superscalar processor having content addressable memory structures for determining dependencies
JPH08241213A (ja) マイクロプロセッサにおける分散型制御システム
JPH06236267A (ja) スーパースカラ・プロセッサ・システムにおける命令ディスパッチ効率を向上させる方法およびシステム
US7603543B2 (en) Method, apparatus and program product for enhancing performance of an in-order processor with long stalls
JPH1040105A (ja) リネーム・レジスタを割り付ける方法及びプロセッサ
EP2270652A1 (en) Priority circuit for dispatching instructions in a superscalar processor having a shared reservation station and processing method
CA2271533C (en) Distributed instruction completion logic
KR100431975B1 (ko) 분기에의한중단이없는파이프라인방식의마이크로프로세서를위한다중명령디스패치시스템
KR19980079726A (ko) 프로세서에 저장 인스트럭션을 전송하는 시스템 및 방법