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

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

Info

Publication number
JPH06236267A
JPH06236267A JP5319325A JP31932593A JPH06236267A JP H06236267 A JPH06236267 A JP H06236267A JP 5319325 A JP5319325 A JP 5319325A JP 31932593 A JP31932593 A JP 31932593A JP H06236267 A JPH06236267 A JP H06236267A
Authority
JP
Japan
Prior art keywords
instruction
instructions
buffer
application
dispatched
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
JP5319325A
Other languages
English (en)
Other versions
JP2742374B2 (ja
Inventor
James Allan Kahle
ジェームズ・アラン・カーレ
Chin-Cheng Kau
カウ・チン・チェン
David S Levitan
デーヴィッド・スティーブン・レヴィタン
Aubrey D Ogden
オーブリー・ディーン・オグデン
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)

Abstract

(57)【要約】 【目的】 アプリケーションによって指定された順序で
一群の命令を受け取る命令待ち行列と、関連する命令バ
ッファから複数の実行ユニットに適宜命令をディスパッ
チする命令ディスパッチ・ユニットとを有するスーパー
スカラ・プロセッサ・システムにおいて、命令ディスパ
ッチ効率を向上させること。 【構成】 関連する命令バッファ内の命令のディスパッ
チ状況が定期的に判定され、命令バッファの先頭にある
命令がディスパッチされるのに応じて、選択的に制御さ
れる多重回路を使用して、残りの命令が、命令バッファ
内で、アプリケーションによって指定された順序でシフ
トされ、一群の命令のうちの一部が命令待ち行列から命
令バッファにロードされる。このようにして、先行する
一群の命令のディスパッチが完了しなくても、利用可能
な実行ユニットに追加の命令をディスパッチすることが
できる。

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

Claims (8)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006012185A (ja) * 2005-08-02 2006-01-12 Matsushita Electric Ind Co Ltd プロセッサ

Families Citing this family (15)

* 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
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

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0342721A (ja) * 1989-07-11 1991-02-22 Fujitsu Ltd 情報処理装置
JPH0346028A (ja) * 1989-07-14 1991-02-27 Fujitsu Ltd 命令処理システム
JPH0362129A (ja) * 1989-07-31 1991-03-18 Hitachi Ltd 情報処理装置及び命令処理方法
JPH04127326A (ja) * 1990-09-19 1992-04-28 Hitachi Ltd 情報処理装置および命令生成方法
JPH052484A (ja) * 1991-06-24 1993-01-08 Mitsubishi Electric Corp スーパースカラプロセツサ

Family Cites Families (8)

* 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
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0342721A (ja) * 1989-07-11 1991-02-22 Fujitsu Ltd 情報処理装置
JPH0346028A (ja) * 1989-07-14 1991-02-27 Fujitsu Ltd 命令処理システム
JPH0362129A (ja) * 1989-07-31 1991-03-18 Hitachi Ltd 情報処理装置及び命令処理方法
JPH04127326A (ja) * 1990-09-19 1992-04-28 Hitachi Ltd 情報処理装置および命令生成方法
JPH052484A (ja) * 1991-06-24 1993-01-08 Mitsubishi Electric Corp スーパースカラプロセツサ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006012185A (ja) * 2005-08-02 2006-01-12 Matsushita Electric Ind Co Ltd プロセッサ

Also Published As

Publication number Publication date
CA2107046A1 (en) 1994-07-09
US5978896A (en) 1999-11-02
JP2742374B2 (ja) 1998-04-22
EP0605874A1 (en) 1994-07-13

Similar Documents

Publication Publication Date Title
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
US5546597A (en) Ready selection of data dependent instructions using multi-cycle cams in a processor performing out-of-order instruction execution
US5611063A (en) Method for executing speculative load instructions in high-performance processors
US5421020A (en) Counter register implementation for speculative execution of branch on count instructions
US5452426A (en) Coordinating speculative and committed state register source data and immediate source data in a processor
EP0762270B1 (en) Microprocessor with load/store operation to/from multiple registers
JP2742374B2 (ja) スーパースカラ・プロセッサ・システムにおける命令ディスパッチ効率を向上させる方法およびシステム
EP0365188A2 (en) Central processor condition code method and apparatus
JPH06236273A (ja) スーパースカラ・プロセッサ・システムにおいて複数命令を単一サイクルでディスパッチするための方法およびシステム
JPH10187443A (ja) 複数の非分岐命令と分岐命令とを有する基本ブロックにおける分岐実行システムおよび方法
US6393550B1 (en) Method and apparatus for pipeline streamlining where resources are immediate or certainly retired
US5898864A (en) Method and system for executing a context-altering instruction without performing a context-synchronization operation within high-performance processors
RU2142157C1 (ru) Способ функционирования системы обработки
JPH06242954A (ja) 独立にアクセスされる中間記憶域を利用してスーパースカラ・プロセッサ・システムにおける命令ディスパッチを改善する方法およびシステム
JP3207124B2 (ja) カウント/リンク・レジスタ変更命令の投機実行をサポートする方法及び装置
US6862676B1 (en) Superscalar processor having content addressable memory structures for determining dependencies
KR100431975B1 (ko) 분기에의한중단이없는파이프라인방식의마이크로프로세서를위한다중명령디스패치시스템
JP2001243071A (ja) 1サイクルのパイプライン・ストールを生成するパイプライン・プロセッサのシステム及び方法
US5619667A (en) Method and apparatus for fast fill of translator instruction queue
US5850542A (en) Microprocessor instruction hedge-fetching in a multiprediction branch environment
EP0496407A2 (en) Parallel pipelined instruction processing system for very long instruction word
JP2620505B2 (ja) スーパースカラ・プロセッサ・システムの同期化効率を向上させる方法およびシステム
US5850563A (en) Processor and method for out-of-order completion of floating-point operations during load/store multiple operations
US5926645A (en) Method and system for enabling multiple store instruction completions in a processing system