JP2742374B2 - スーパースカラ・プロセッサ・システムにおける命令ディスパッチ効率を向上させる方法およびシステム - Google Patents

スーパースカラ・プロセッサ・システムにおける命令ディスパッチ効率を向上させる方法およびシステム

Info

Publication number
JP2742374B2
JP2742374B2 JP5319325A JP31932593A JP2742374B2 JP 2742374 B2 JP2742374 B2 JP 2742374B2 JP 5319325 A JP5319325 A JP 5319325A JP 31932593 A JP31932593 A JP 31932593A JP 2742374 B2 JP2742374 B2 JP 2742374B2
Authority
JP
Japan
Prior art keywords
instructions
instruction
group
dispatch
buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP5319325A
Other languages
English (en)
Other versions
JPH06236267A (ja
Inventor
ジェームズ・アラン・カーレ
カウ・チン・チェン
デーヴィッド・スティーブン・レヴィタン
オーブリー・ディーン・オグデン
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 JPH06236267A publication Critical patent/JPH06236267A/ja
Application granted granted Critical
Publication of JP2742374B2 publication Critical patent/JP2742374B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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 or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • 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 or look ahead
    • G06F9/3802Instruction prefetching
    • 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 or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

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)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、全般的に、改良された
データ処理システムに関し、詳しくは、データ処理シス
テムにおける命令ディスパッチ効率の改善に関する。さ
らに詳細には、本発明は、スーパースカラ・プロセッサ
・システムにおける命令ディスパッチ効率を上げる方法
およびシステムに関する。
【0002】
【従来の技術】現代の最新データ処理システムの設計者
は、絶えずそのようなシステムの性能面の向上に努めて
いる。データ処理システム効率を向上させる1つの技法
は、サイクル・タイムを短くし、1命令当たりサイクル
(CPI)率を下げることである。このような技法を拡
張データ処理システムに巧みに応用した例に、インター
ナショナル・ビジネス・マシーンズ・コーポレーション
(IBM)のRISCシステム/6000(RS/60
00)コンピュータがある。RS/6000システム
は、数値中心の科学技術の応用分野およびマルチユーザ
商業環境でうまく機能するように設計されている。RS
/6000プロセッサは、スーパースカラ実施態様を使
用する。すなわち、複数の命令が同時に発行され実行さ
れる。
【0003】複数の命令を同時に発行して実行するに
は、高命令帯域幅で同時に実行できる独立した機能ユニ
ットが必要である。RS/6000システムは、本来的
にパイプライン式の別々のブランチ処理ユニット、固定
小数点処理ユニット、および浮動小数点処理ユニットを
使ってこれを実現している。そのようなシステムでは、
条件付きブランチ命令を実行すると、重大なパイプライ
ン遅延が発生するおそれがある。条件付きブランチ命令
とは、1つまたは複数の他の命令の処理の特定の結果に
応じて、アプリケーション内の指定された条件付きブラ
ンチをとることを指令する命令である。したがって、条
件付きブランチ命令がパイプライン待ち行列内の実行位
置に伝搬するまでに、条件付きブランチを解決する前に
待ち行列の条件付きブランチ命令の後に命令をロードし
ておいて、実行時遅延を避ける必要があった。
【0004】スーパースカラ・プロセッサ・システム内
の遅延の他の原因は、そのようなシステムが通常複数の
タスクを同時に実行することである。これらの複数のタ
スクはそれぞれ通常、そのタスクの実行に利用される有
効または仮想アドレス空間をもつ。そのような有効また
は仮想アドレス空間内の位置は、システム・メモリ内の
実アドレスに「マップ」されるアドレスを含む。実メモ
リ内の単一の空間をマルチスカラ・プロセッサ・システ
ム内の複数の有効または仮想メモリ・アドレスにマップ
することはまれである。複数のタスクがそれぞれ有効ま
たは仮想アドレスを使用する場合、これらのアドレスを
システム・メモリ内の実アドレスに変換して、適切な命
令またはデータを、メモリから取り出し、マルチスカラ
・プロセッサ・システムを構成している複数の独立機能
ユニットの1つにディスパッチするために命令待ち行列
内に入れておく必要があるので、マルチスカラ・プロセ
ッサ・システム内で追加の遅延が発生する。
【0005】現代のスーパースカラ・プロセッサでは、
一群の命令が、その処理に実行ユニットが利用可能にな
った時点で、命令バッファから優先度の順序でディスパ
ッチされることが多い。多くの場合、命令バッファの先
頭にある命令がディスパッチされ、その命令群の残りの
命令は、実行ユニットまたはその他の資源を待ってバッ
ファ内に数サイクルの間留まる。また、残りの命令に必
要でない種類の利用可能な実行ユニットがある場合もあ
る。したがって、命令バッファ内の命令をアプリケーシ
ョンによって指定された順序でシフトして、追加の命令
を、実行ユニットにディスパッチするためにバッファに
格納できるようにする方法およびシステムが利用可能に
なれば、明らかに命令ディスパッチ効率を上げることが
できるはずである。
【0006】
【発明が解決しようとする課題】本発明の一目的は、改
良されたデータ処理システムを提供することである。
【0007】本発明の他の目的は、データ処理システム
における命令ディスパッチ効率を改善することである。
【0008】本発明の他の目的は、スーパースカラ・プ
ロセッサ・システムにおける命令ディスパッチ効率を上
げるための改良された方法およびシステムを提供するこ
とである。
【0009】
【課題を解決するための手段】前述の目的は、以下に述
べるようにして達成される。本発明の方法およびシステ
ムにより、アプリケーションによって指定された順序で
一群の命令を受け取るための命令待ち行列と、関連する
命令バッファから複数の実行ユニットに適宜命令をディ
スパッチする命令ディスパッチ・ユニットとを有するス
ーパースカラ・プロセッサ・システムにおける命令ディ
スパッチ効率を上げることができる。関連する命令バッ
ファ内の命令のディスパッチ状況が定期的に決定され、
命令バッファの先頭にある命令のディスパッチに応じ
て、選択的に制御される多重回路を使用して、残りの命
令が、命令バッファ内で、アプリケーションによって指
定された順序でシフトされ、一群の命令のうちの一部分
が命令待ち行列から命令バッファにロードされる。この
ようにして、先行する一群の命令のディスパッチが完了
しなくても、利用可能な実行ユニットに追加の命令をデ
ィスパッチすることができる。
【0010】本発明の前記その他の目的、特徴、および
利点は、以下の詳細な説明で明らかになろう。
【0011】
【実施例】図面、特に図1を参照すると、本発明の方法
およびシステムを実施するために利用できるスーパース
カラ・プロセッサ10を示す高水準ブロック図が示され
ている。図のように、スーパースカラ・プロセッサ10
は、システム・メモリからスーパースカラ・プロセッサ
10に読み取られる、あるいはシステム・メモリに書き
込まれるデータ、命令などを記憶するために利用される
メモリ待ち行列36を含むことが好ましい。メモリ待ち
行列36内に記憶されるデータまたは命令には、当業者
に周知の方法でキャッシュ/メモリ・インタフェース2
0を使用してアクセスすることが好ましい。キャッシュ
・メモリ・システムのサイズ設定および利用法は、デー
タ処理技術分野内の周知の一部門であり、本発明では取
り上げない。しかし、現代の連想式キャッシュ技術を使
用することにより、キャッシュ/メモリ・インタフェー
ス20内に一時的に記憶されたデータを利用して高率の
メモリ・アクセスを実現できることが、当業者には理解
されよう。
【0012】キャッシュ/メモリ・インタフェース20
からの命令は通常、好ましくは複数の待ち行列位置を含
む命令待ち行列/ディスパッチ機構22にロードされ
る。スーパースカラ・コンピュータ・システムの典型的
な実施例では、命令待ち行列が、8個の待ち行列位置を
含むことができ、したがって所与のサイクル中に、キャ
ッシュ/メモリ・インタフェース20によって渡される
有効な命令の数と、命令待ち行列/ディスパッチ機構2
2内で利用可能な空間の量とに応じて、命令待ち行列/
ディスパッチ機構22に0ないし8個の命令をロードす
ることができる。
【0013】そのようなスーパースカラ・プロセッサ・
システムでは普通であるが、命令待ち行列/ディスパッ
チ機構22は、複数の実行ユニットに命令をディスパッ
チするために使用される。図2に示すように、スーパー
スカラ・プロセッサ10は、浮動小数点処理ユニット2
4、固定小数点処理ユニット26、およびブランチ処理
ユニット28を含む。したがって、命令待ち行列/ディ
スパッチ機構22は、単一のサイクル中に、0ないし3
個の命令を各実行ユニットに1個ずつディスパッチする
ことができる。
【0014】命令待ち行列/ディスパッチ機構22から
ディスパッチされる逐次命令だけでなく、いわゆる「条
件付きブランチ命令」も、ブランチ処理ユニットで実行
するために命令待ち行列/ディスパッチ機構22にロー
ドすることができる。条件付きブランチ命令とは、1つ
または複数の逐次命令の処理の選択された結果に応じて
アプリケーション内でとる、関連する条件付きブランチ
を指定する命令である。スーパースカラ・プロセッサ1
0などのパイプライン式プロセッサ・システムの実行時
遅延を最小限にするために、命令待ち行列/ディスパッ
チ機構22内の条件付きブランチ命令の存在を検出し、
条件付きブランチの結果を予測する。当業者には明らか
なように、条件付きブランチが「選択されない」と予測
されると、命令待ち行列/ディスパッチ機構内の逐次命
令は単に現経路に沿って進行し、命令は修正されない。
しかし、ブランチの発生に関する予測が誤っている場
合、命令待ち行列/ディスパッチ機構22から、プログ
ラムの順序で条件付きブランチ命令の次にくる逐次命令
をパージし、ターゲット命令を取り出す必要がある。ま
た、条件付きブランチが「選択される」と予測され、予
測が正しいことが分かった場合は、ターゲット命令が取
り出され、それらの命令を使用して条件付きブランチを
たどる。言うまでもなく、「選択される」という予測が
誤っている場合は、ターゲット命令をパージし、プログ
ラムの順序で条件付きブランチ命令の次にくる逐次命令
を取り出す必要がある。
【0015】図示したように、スーパースカラ・プロセ
ッサ10はまた、条件レジスタ32を含むことが好まし
い。条件レジスタ32は、スーパースカラ・プロセッサ
10内で処理される逐次命令の結果を使用して実行され
る様々な比較の結果を一時的に記憶するために使用され
る。したがって、浮動小数点処理ユニット24、固定小
数点処理ユニット26、およびブランチ処理ユニット2
8がすべて、条件レジスタ32に結合される。条件レジ
スタ32内の特定の条件の状況を検出し、それをブラン
チ処理ユニット28に結合して、ターゲット・アドレス
を生成することができる。その後、ターゲット・アドレ
スを使用し、ブランチを開始する条件の発生に応じて、
ターゲット命令を取り出す。
【0016】次に、ブランチ処理ユニット28は、ター
ゲット・アドレスを取出し機構30に結合する。取出し
機構30は、条件付きブランチをたどるのに必要なター
ゲット命令の取出しアドレスを計算し、それらの取出し
アドレスをキャッシュ/メモリ・インタフェース20に
結合する。当業者には明らかなように、それらの取出し
アドレスに関連するターゲット命令がキャッシュ/メモ
リ・インタフェース20内に存在する場合、それらのタ
ーゲット命令は命令待ち行列/ディスパッチ機構22に
ロードされる。あるいは、ターゲット命令を、システム
・メモリ18から取り出し、それらのターゲット命令の
取出しに必要な遅延の後、キャッシュ/メモリ・インタ
フェース20から命令待ち行列/ディスパッチ機構22
にロードすることもできる。
【0017】当業者には明らかなように、スーパースカ
ラ・プロセッサ10内の各タスクは通常、実効メモリ空
間または仮想メモリ空間と関連しており、各タスクを実
行するのに必要な命令は、その空間内で実効アドレスま
たは仮想アドレスを使用して指定される。したがって、
取出し機構30は、各タスクが使用する実効アドレスか
ら、その命令の実アドレスを決定することができなけれ
ばならない。前述のように、従来技術の実施態様の取出
し機構30は通常、複雑な変換索引バッファ(TL
B)、逐次レジスタ、および複数の変換アルゴリズムを
備えている。あるいは、そのような複雑な変換機能をも
つメモリ管理ユニット(MMU)にアクセスし、実効命
令アドレスまたは仮想命令アドレスから実命令アドレス
を決定するには、そのような命令取出し機構が必要であ
る。
【0018】スーパースカラ・プロセッサ10内には、
メモリ管理ユニット(MMU)34も示されている。メ
モリ管理ユニットは、本明細書で以下に詳細に説明する
ように、スーパースカラ・プロセッサ10内の各実効ア
ドレスをシステム・メモリ18内の実アドレスに変換す
るために使用できる、変換索引バッファ(TLB)40
およびすべての必要なレジスタおよび変換アルゴリズム
を含むことが好ましい。取出し機構30は通常、メモリ
管理ユニット(MMU)にアクセスする優先順位が極め
て低く、したがってメモリ管理ユニット(MMU)34
を使用して実命令アドレスを得る際には若干の遅延が予
期される。
【0019】図2ないし5を参照すると、本発明の方法
およびシステムによる一連の命令の処理を示す、命令制
御装置50の一連の高水準ブロック図が示されている。
図示したように、命令制御装置50は、一群の4個の命
令を、キャッシュから、アプリケーションによって指定
された順序で受け取ることのできる命令待ち行列52を
含む。次いでこれらの命令は、複数の実行ユニットにデ
ィスパッチするために、周知のデータ処理技術を使用し
て、命令バッファ54に転送される。本発明の重要な特
徴によれば、複数の多重回路56、58、60、62
が、命令待ち行列52と命令バッファ54の間に配置さ
れている。これらの回路は、本明細書で詳細に説明する
方法で使用され、命令ディスパッチの効率が大幅に上が
るように、命令バッファ54内で命令を効果的にシフト
する。図2では、一群の4個の命令A、B、C、Dが、
命令バッファ54にロードされており、ディスパッチの
準備ができている。第2群の命令E、F、G、Hは、命
令待ち行列52内でステージングされており、命令バッ
ファ54内の命令のディスパッチに続いて、命令バッフ
ァ54にロードする準備ができている。
【0020】次に、図3を参照すると、命令AおよびB
がディスパッチされており、一方、命令CおよびDはそ
れらを完全にディスパッチするのに必要な特定の種類の
実行ユニットまたはその他の資源が利用可能になるのを
待っていることに留意されたい。既知のスーパースカラ
・プロセッサ・システムで使用される技法によれば、命
令E、F、G、Hは、命令CおよびDのディスパッチが
完了するまで命令バッファ54にロードされない。この
結果、追加の命令のディスパッチを可能にする実行ユニ
ットまたは資源が利用可能になるという点で、命令ディ
スパッチは非効率的になる。しかし、複数の命令群が同
時にディスパッチされるシステムでは、命令バッファ5
4内のすべての命令が完全にディスパッチされるまで、
追加の命令を命令待ち行列52から命令バッファ54に
ディスパッチすることはできない。
【0021】図4を参照すると、命令ディスパッチ効率
を上げるための本発明の方法およびシステムが示されて
いる。図4に示すように、命令CおよびDは、関連す
る"SHIFT"信号によって制御され、多重回路56および
58を使用して、命令バッファ54内の最初の2つの位
置にシフトされている。次に、命令EおよびFが、多重
回路60および62を使用して命令バッファ54内の後
端位置にロードされる。したがって、図4に示すよう
に、図示した多重回路の選択的動作により、命令バッフ
ァ54をシフトし、命令C、D、E、Fをロードするこ
とが可能になり、それによってディスパッチを保留され
ている命令で命令バッファ54を完全に充填することが
できる。このようにして、利用可能な実行ユニットへの
命令のディスパッチが大幅に改善される。
【0022】最後に、図5では、命令待ち行列52内の
命令がキャッシュから再ロードされており、命令待ち行
列52内の前の命令が重ね書きされ、命令G、H、I、
Jがロードされている。したがって、命令バッファ54
内の命令がシフトされ、命令待ち行列52内の一群の4
個の命令の一部が命令バッファ54にロードされてお
り、それらの命令の、アプリケーションによって指定さ
れた順序が維持されると同時に、命令制御装置50内の
命令ディスパッチ効率が大幅に改善されることに留意さ
れたい。
【0023】最後に、図6を参照すると、本発明の方法
およびシステムを実施するためのプロセスを示す高水準
論理フローチャートが示されている。図のように、プロ
セスはブロック80から開始し、次にブロック82に進
む。ブロック82で、命令バッファ54内のすべての命
令(図2ないし5参照)がディスパッチされているか否
かを定期的に判定する。ディスパッチされている場合、
ブロック84に進む。ブロック84で、"LOAD"信号を活
動化する。それによって、命令待ち行列52内の一群の
命令を命令バッファ54に直接ロードすることができ
る。次にブロック86で、前述のように、新しい一群の
命令を命令バッファ54から命令待ち行列52にロード
する。次にブロック88に進む。ブロック88で、キャ
ッシュから命令待ち行列52を再ロードする。次に、プ
ロセスは反復的にブロック82に戻る。
【0024】再びブロック82を参照すると、命令バッ
ファ54内の命令のうちでディスパッチされていないも
のがある場合、ブロック90に進む。ブロック90で、
先行命令がディスパッチされているか否かを判定する。
すなわち、それらの命令は、最初に、アプリケーション
によって指定された順序でディスパッチしなければなら
ない。命令依存性制御の維持が複雑なので、命令ディス
パッチ効率が向上しても、先行命令よりも先に後続命令
をディスパッチする場合、全体的なシステム効率は上が
らないことが、当業者には理解されよう。しかし、命令
依存性制御を維持できるシステムでは、先行命令のディ
スパッチ状況とは無関係に命令バッファ内の任意の位置
から任意の命令をディスパッチするときはつねに、本発
明の方法およびシステムを適用することができる。命令
バッファ54内の一群の命令のうちの先行命令がディス
パッチされていない場合、プロセスは反復的にブロック
82に戻り、すべての命令がディスパッチされているか
否かを再び判定し、あるいはその後に先行命令がディス
パッチされているか否かを判定する。
【0025】再びブロック90を参照すると、命令バッ
ファ54内の一群の命令のうちの先行命令がディスパッ
チされている場合、ブロック92に進む。ブロック92
で、"SHIFT"信号を活動化する。次にブロック94に進
む。ブロック94で、図4に関して説明したように、命
令バッファ54内の残りの命令を先行命令位置にシフト
する。次にブロック96に進む。ブロック96で、前述
のように、新しい命令をオフセットし、命令待ち行列5
2から命令バッファ54の後端位置にロードする。次に
ブロック88に進む。ブロック88で、やはりキャッシ
ュから命令待ち行列を再ロードする。次にプロセスは、
反復的にブロック82に戻る。
【0026】前述の内容を参照すれば、本発明者が、命
令バッファから命令がディスパッチされるのに応じて選
択的に制御される一連の多重回路から成る単純な手段を
提供することにより、命令バッファ内の選択された命令
の一部のディスパッチに応じて命令バッファ内に追加の
命令を格納し、先行する一群の命令のディスパッチが完
了しなくても、実行ユニットにディスパッチするために
追加の命令を利用可能にすることによって、スーパース
カラ・プロセッサ内での命令ディスパッチ効率を大幅に
改善できる技法を提供したことが、当業者には理解され
よう。
【図面の簡単な説明】
【図1】本発明の方法およびシステムを実施するために
利用されるスーパースカラ・プロセッサの高水準ブロッ
ク図である。
【図2】本発明の方法およびシステムによる一連の命令
の処理を示す、命令制御装置の高水準ブロック図であ
る。
【図3】本発明の方法およびシステムによる一連の命令
の処理を示す、命令制御装置の高水準ブロック図であ
る。
【図4】本発明の方法およびシステムによる一連の命令
の処理を示す、命令制御装置の高水準ブロック図であ
る。
【図5】本発明の方法およびシステムによる一連の命令
の処理を示す、命令制御装置の高水準ブロック図であ
る。
【図6】本発明の方法およびシステムを実施するための
プロセスを示す、高水準論理フローチャートである。
【符号の説明】
10 スーパースカラ・プロセッサ 18 システム・メモリ 20 キャッシュ/メモリ・インタフェース 22 命令待ち行列/ディスパッチ機構 24 浮動小数点処理ユニット 26 固定小数点処理ユニット 28 ブランチ処理ユニット 30 取出し機構 32 条件レジスタ 34 メモリ管理装置 50 命令制御装置 52 命令待ち行列 54 命令バッファ 56 多重回路
───────────────────────────────────────────────────── フロントページの続き (72)発明者 カウ・チン・チェン アメリカ合衆国78749、テキサス州オー スチン、ホイスルストップ・コーヴ 6000 (72)発明者 デーヴィッド・スティーブン・レヴィタ ン アメリカ合衆国78717、テキサス州オー スチン、マーサス・ドライブ 9031 (72)発明者 オーブリー・ディーン・オグデン アメリカ合衆国78681、テキサス州ラウ ンド・ロック、ストーンリース・ドライ ブ 1905 (56)参考文献 特開 平4−127326(JP,A) 特開 平5−2484(JP,A) 特開 平3−46028(JP,A) 特開 平3−62129(JP,A) 特開 平3−42721(JP,A)

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】アプリケーションによって呼出された順序
    で一群の命令を受け取り命令バッファに一群の命令をロ
    ードする命令待ち行列と、前記命令バッファから複数の
    実行ユニットに適宜命令をディスパッチする命令ディス
    パッチ機構とを有するスーパースカラ・プロセッサ・シ
    ステムにおける命令ディスパッチ効率を向上させる方法
    であって、 前記命令バッファ内の第1の一群の命令のうちの1つの
    命令が前記複数の実行ユニットの1つにディスパッチさ
    れているか否かを判定するディスパッチ判定ステップ
    と、 前記関連する命令バッファ内の前記第1の一群の命令の
    うちの1つの命令がディスパッチされているとの判定に
    応答して、前記関連する命令バッファ内の前記第1の一
    群の命令のうちの残りの命令を、前記アプリケーション
    によって呼出された順序でシフトする命令シフトステッ
    プと、 前記残りの命令の前記シフトに応答して、アプリケーシ
    ョンによって呼出された順序で、前記命令待ち行列内の
    第2の一群の命令のうちの一部分を追加の命令として前
    記命令バッファに選択的にロードする選択ロードステッ
    プとを含む方法。
  2. 【請求項2】前記一群の命令が4個の命令から成り、前
    記ディスパッチ判定ステップが前記第1の一群の4個の
    命令のうちの最初の2個が前記複数の実行ユニットにデ
    ィスパッチされているか否かを判定するステップを含む
    請求項1に記載のスーパースカラ・プロセッサ・システ
    ムにおける命令ディスパッチ効率を向上させる方法。
  3. 【請求項3】前記選択ロードステップが、前記残りの命
    令の前記シフトに応答して、前記命令バッファに、アプ
    リケーションによって呼出された順序で選択的に第2の
    一群の命令のうちの2個の命令をロードするステップを
    含む請求項2に記載のスーパースカラ・プロセッサ・シ
    ステムにおける命令ディスパッチ効率を向上させる方
    法。
  4. 【請求項4】アプリケーションによって呼出された順序
    で一群の命令を受け取り命令バッファに一群の命令をロ
    ードする命令待ち行列と、前記命令バッファから複数の
    実行ユニットに適宜命令をディスパッチする命令ディス
    パッチ機構とを有するスーパースカラ・プロセッサ・シ
    ステムにおける命令ディスパッチ効率を向上させる命令
    シフト機構であって、 前記命令バッファ内の第1の一群の命令のうちの1つの
    命令が前記複数の実行ユニットの1つにディスパッチさ
    れているか否かを判定するディスパッチ判定手段と、 前記関連する命令バッファ内の前記第1の一群の命令の
    うちの1つの命令がディスパッチされているとの判定に
    応答して、前記関連する命令バッファ内の前記第1の一
    群の命令のうちの残りの命令を、前記アプリケーション
    によって呼出された順序でシフトする命令シフト手段
    と、 前記残りの命令の前記シフトに応答して、アプリケーシ
    ョンによって呼出された順序で、前記命令待ち行列内の
    第2の一群の命令のうちの一部分を追加の命令として前
    記命令バッファに選択的にロードする選択ロード手段と
    を備える命令シフト機構。
  5. 【請求項5】前記一群の命令が4個の命令から成り、前
    記ディスパッチ判定手段が前記第1の一群の4個の命令
    のうちの最初の2個が前記複数の実行ユニットにディス
    パッチされているか否かを判定する手段を備える請求項
    4に記載の命令シフト機構。
  6. 【請求項6】前記選択ロード手段が、前記残りの命令の
    前記シフトに応答して、前記命令バッファに、アプリケ
    ーションによって呼出された順序で選択的に第2の一群
    の命令のうちの2個の命令をロードする手段を備える請
    求項5に記載の命令シフト機構。
  7. 【請求項7】前記命令シフト手段が、多重手段を備える
    請求項4に記載の命令シフト機構。
  8. 【請求項8】前記選択ロード手段が、多重手段を備える
    請求項4に記載の命令シフト機構。
JP5319325A 1993-01-08 1993-12-20 スーパースカラ・プロセッサ・システムにおける命令ディスパッチ効率を向上させる方法およびシステム Expired - Lifetime JP2742374B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US186793A 1993-01-08 1993-01-08
US001867 1993-01-08

Publications (2)

Publication Number Publication Date
JPH06236267A JPH06236267A (ja) 1994-08-23
JP2742374B2 true JP2742374B2 (ja) 1998-04-22

Family

ID=21698188

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5319325A Expired - Lifetime JP2742374B2 (ja) 1993-01-08 1993-12-20 スーパースカラ・プロセッサ・システムにおける命令ディスパッチ効率を向上させる方法およびシステム

Country Status (4)

Country Link
US (1) US5978896A (ja)
EP (1) EP0605874A1 (ja)
JP (1) JP2742374B2 (ja)
CA (1) CA2107046A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5604909A (en) * 1993-12-15 1997-02-18 Silicon Graphics Computer Systems, Inc. Apparatus for processing instructions in a computing system
WO1996038783A1 (en) * 1995-06-01 1996-12-05 Hal Computer Systems, Inc. Method and apparatus for rotating active instructions in a parallel data processor
US5850563A (en) * 1995-09-11 1998-12-15 International Business Machines Corporation Processor and method for out-of-order completion of floating-point operations during load/store multiple operations
US5974538A (en) * 1997-02-21 1999-10-26 Wilmot, Ii; Richard Byron Method and apparatus for annotating operands in a computer system with source instruction identifiers
US6694423B1 (en) * 1999-05-26 2004-02-17 Infineon Technologies North America Corp. Prefetch streaming buffer
JP2002318687A (ja) * 2001-04-18 2002-10-31 Fujitsu Ltd 情報処理装置及び計算機システム
US7114058B1 (en) * 2001-12-31 2006-09-26 Apple Computer, Inc. Method and apparatus for forming and dispatching instruction groups based on priority comparisons
US7681013B1 (en) 2001-12-31 2010-03-16 Apple Inc. Method for variable length decoding using multiple configurable look-up tables
US7034849B1 (en) * 2001-12-31 2006-04-25 Apple Computer, Inc. Method and apparatus for image blending
US7467325B2 (en) * 2005-02-10 2008-12-16 International Business Machines Corporation Processor instruction retry recovery
US7478276B2 (en) * 2005-02-10 2009-01-13 International Business Machines Corporation Method for checkpointing instruction groups with out-of-order floating point instructions in a multi-threaded processor
US7409589B2 (en) * 2005-05-27 2008-08-05 International Business Machines Corporation Method and apparatus for reducing number of cycles required to checkpoint instructions in a multi-threaded processor
JP2006012185A (ja) * 2005-08-02 2006-01-12 Matsushita Electric Ind Co Ltd プロセッサ
US8219784B2 (en) * 2008-12-09 2012-07-10 International Business Machines Corporation Assigning and pre-decoding group ID and tag ID prior to dispatching instructions in out-of-order processor
CN104657114B (zh) * 2015-03-03 2019-09-06 上海兆芯集成电路有限公司 并行化的多分派系统和用于排序队列仲裁的方法
US10574521B2 (en) * 2017-06-19 2020-02-25 Cisco Technology, Inc. Method and apparatus to predict configuration viability and dynamically manage multi-dimensional system scale in MSDC switches

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4081612A (en) * 1975-07-31 1978-03-28 Hasler Ag Method for building-up of routing addresses in a digital telecommunication network
US4261035A (en) * 1979-09-28 1981-04-07 Honeywell Information Systems Inc. Broadband high level data link communication line adapter
JPS5729153A (en) * 1980-07-29 1982-02-17 Fujitsu Ltd Control system for instruction processing order
US4724517A (en) * 1982-11-26 1988-02-09 Inmos Limited Microcomputer with prefixing functions
US4754457A (en) * 1986-09-03 1988-06-28 Motorola, Inc. Digital sequence polarity detection with adaptive synchronization
US5127091A (en) * 1989-01-13 1992-06-30 International Business Machines Corporation System for reducing delay in instruction execution by executing branch instructions in separate processor while dispatching subsequent instructions to primary processor
JPH0342721A (ja) * 1989-07-11 1991-02-22 Fujitsu Ltd 情報処理装置
JP2505887B2 (ja) * 1989-07-14 1996-06-12 富士通株式会社 命令処理システム
JP2865717B2 (ja) * 1989-07-31 1999-03-08 株式会社日立製作所 情報処理装置及び命令処理方法
JPH04242852A (ja) * 1990-02-13 1992-08-31 Internatl Business Mach Corp <Ibm> 多重処理のための先入れ先出しバッファ待ち行列の管理機構および方法
US5202975A (en) * 1990-06-11 1993-04-13 Supercomputer Systems Limited Partnership Method for optimizing instruction scheduling for a processor having multiple functional resources
JPH04127326A (ja) * 1990-09-19 1992-04-28 Hitachi Ltd 情報処理装置および命令生成方法
JPH052484A (ja) * 1991-06-24 1993-01-08 Mitsubishi Electric Corp スーパースカラプロセツサ

Also Published As

Publication number Publication date
JPH06236267A (ja) 1994-08-23
CA2107046A1 (en) 1994-07-09
US5978896A (en) 1999-11-02
EP0605874A1 (en) 1994-07-13

Similar Documents

Publication Publication Date Title
US5611063A (en) Method for executing speculative load instructions in high-performance processors
US5546597A (en) Ready selection of data dependent instructions using multi-cycle cams in a processor performing out-of-order instruction execution
EP0605872B1 (en) Method and system for supporting speculative execution of instructions
JP2531495B2 (ja) ス―パ―スカラ・プロセッサ・システムにおいてブランチ・ヒストリ予測精度を向上させる方法およびシステム
US5127091A (en) System for reducing delay in instruction execution by executing branch instructions in separate processor while dispatching subsequent instructions to primary processor
US5958041A (en) Latency prediction in a pipelined microarchitecture
JP2742374B2 (ja) スーパースカラ・プロセッサ・システムにおける命令ディスパッチ効率を向上させる方法およびシステム
US7437543B2 (en) Reducing the fetch time of target instructions of a predicted taken branch instruction
KR100559482B1 (ko) 고성능 알아이에스씨 마이크로프로세서 구조
JP2793488B2 (ja) スーパースカラ・プロセッサ・システムにおいて複数命令を単一サイクルでディスパッチするための方法およびシステム
EP0762270B1 (en) Microprocessor with load/store operation to/from multiple registers
JPH09185506A (ja) プロセッサ内で命令を実行する方法およびシステム
US5898864A (en) Method and system for executing a context-altering instruction without performing a context-synchronization operation within high-performance processors
JP3207124B2 (ja) カウント/リンク・レジスタ変更命令の投機実行をサポートする方法及び装置
US5802340A (en) Method and system of executing speculative store instructions in a parallel processing computer system
US5784604A (en) Method and system for reduced run-time delay during conditional branch execution in pipelined processor systems utilizing selectively delayed sequential instruction purging
US5619667A (en) Method and apparatus for fast fill of translator instruction queue
JP2001243071A (ja) 1サイクルのパイプライン・ストールを生成するパイプライン・プロセッサのシステム及び方法
JP3779012B2 (ja) 分岐による中断のないパイプライン化されたマイクロプロセッサ及びその動作方法
US5850542A (en) Microprocessor instruction hedge-fetching in a multiprediction branch environment
US5410657A (en) Method and system for high speed floating point exception enabled operation in a multiscalar processor system
US5850563A (en) Processor and method for out-of-order completion of floating-point operations during load/store multiple operations
US6163821A (en) Method and apparatus for balancing load vs. store access to a primary data cache
JP3721002B2 (ja) メモリ要求を形成するために並列に生成される複数の取出アドレスのうちの1つを選択する、プロセッサおよび命令取出方法
US5758117A (en) Method and system for efficiently utilizing rename buffers to reduce dispatch unit stalls in a superscalar processor