JPH05224921A - データ処理システム - Google Patents
データ処理システムInfo
- Publication number
- JPH05224921A JPH05224921A JP4293599A JP29359992A JPH05224921A JP H05224921 A JPH05224921 A JP H05224921A JP 4293599 A JP4293599 A JP 4293599A JP 29359992 A JP29359992 A JP 29359992A JP H05224921 A JPH05224921 A JP H05224921A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- instructions
- data processing
- execution
- processing system
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06F9/384—Register renaming
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a secondary processor, e.g. coprocessor
- G06F9/3879—Concurrent instruction execution, e.g. pipeline or look ahead using a secondary processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4494—Execution paradigms, e.g. implementations of programming paradigms data driven
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)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【目的】 待ち時間による処理性能全体に対する影響が
少なく、キャッシュミスレートの低い高速で高性能の処
理が可能なデータ処理システムを提供する。 【構成】 システムは、相当数のインストラクションス
トリームからインストラクションをスケジュールし、そ
れらインストラクションを相当数の実行ユニットへ割り
当てるスケジューリングユニットを具備する。終了ユニ
ットは、実行結果を受信してスケジューリングユニット
へどのオペランドが有効かを伝える。スケジューリング
ユニットは、インストラクションのスケジューリングを
制御するためオペランド使用可能性情報を使用する。
少なく、キャッシュミスレートの低い高速で高性能の処
理が可能なデータ処理システムを提供する。 【構成】 システムは、相当数のインストラクションス
トリームからインストラクションをスケジュールし、そ
れらインストラクションを相当数の実行ユニットへ割り
当てるスケジューリングユニットを具備する。終了ユニ
ットは、実行結果を受信してスケジューリングユニット
へどのオペランドが有効かを伝える。スケジューリング
ユニットは、インストラクションのスケジューリングを
制御するためオペランド使用可能性情報を使用する。
Description
【0001】
【産業上の利用分野】本発明は、データ処理システムに
関する。
関する。
【0002】
【従来の技術】データ処理ユニットの性能は、メインメ
モリ(RAM) 記憶容量が増大化する速度よりも速い速度で
改善されている。メモリアクセスに必要な待ち時間(lat
ency)は、通常はインストラクションの平均的な実行時
間の数倍となるため、処理性能を大幅に低下させること
となる。その一方で、この待ち時間は、通常はメモリが
アクセスされている間に異なる処理を実行すべくスイッ
チングを行なうのに十分な時間とはいえない。
モリ(RAM) 記憶容量が増大化する速度よりも速い速度で
改善されている。メモリアクセスに必要な待ち時間(lat
ency)は、通常はインストラクションの平均的な実行時
間の数倍となるため、処理性能を大幅に低下させること
となる。その一方で、この待ち時間は、通常はメモリが
アクセスされている間に異なる処理を実行すべくスイッ
チングを行なうのに十分な時間とはいえない。
【0003】データの処理性能におけるメモリ待ち時間
の影響はメインメモリへのアクセス数を減少させること
によって減少させることが可能である。これは、例えば
大容量の、おそらくはマルチレベルのキャッシュ(multi
-level cache) を用いることによって可能となる。しか
し、幾つかのタイプのアプリケーションについては、キ
ャッシュミスの割合(cache miss rate) を5乃至10%
以下に減少させることは殆ど不可能であるため、そのよ
うな場合におけるメモリアクセス時間は依然として処理
性能全体を左右し得るものである。例えば、大規模なデ
ータベースのアプリケーションは、通常、メモリのギガ
バイトの容量内で分配され得るレコードに対するランダ
ムアクセスなプロファイル(profiles)を示し、このよう
な場合にはキャッシュミスの割合が非常に高くなる。
の影響はメインメモリへのアクセス数を減少させること
によって減少させることが可能である。これは、例えば
大容量の、おそらくはマルチレベルのキャッシュ(multi
-level cache) を用いることによって可能となる。しか
し、幾つかのタイプのアプリケーションについては、キ
ャッシュミスの割合(cache miss rate) を5乃至10%
以下に減少させることは殆ど不可能であるため、そのよ
うな場合におけるメモリアクセス時間は依然として処理
性能全体を左右し得るものである。例えば、大規模なデ
ータベースのアプリケーションは、通常、メモリのギガ
バイトの容量内で分配され得るレコードに対するランダ
ムアクセスなプロファイル(profiles)を示し、このよう
な場合にはキャッシュミスの割合が非常に高くなる。
【0004】
【発明が解決しようとする課題】本発明は、このような
問題を解決し又は軽減する新規なデータ処理システムの
アーキテクチャを提供することを目的とする。
問題を解決し又は軽減する新規なデータ処理システムの
アーキテクチャを提供することを目的とする。
【0005】
【課題を解決するための手段】本発明によれば、(a) 複
数の独立したインストラクションストリームからのイン
ストラクションに対してバッファ動作を行なう複数のイ
ンストラクションバッファ、(b) インストラクションを
実行する複数の実行ユニット、(c) 実行ユニットからの
実行の結果を受信し、実行結果によってそのオペランド
が使用可能とされる指示(indication)を生成する終了ユ
ニット(termination unit)、及び(d) 終了ユニットから
の指示に応答し、インストラクションバッファにおける
どのインストラクションが全て使用可能なオペランドを
有しているか決定し、そしてそれらインストラクション
を実行のため実行ユニットに割り当てるスケジューリン
グユニットを具備するデータ処理システムが提供され
る。
数の独立したインストラクションストリームからのイン
ストラクションに対してバッファ動作を行なう複数のイ
ンストラクションバッファ、(b) インストラクションを
実行する複数の実行ユニット、(c) 実行ユニットからの
実行の結果を受信し、実行結果によってそのオペランド
が使用可能とされる指示(indication)を生成する終了ユ
ニット(termination unit)、及び(d) 終了ユニットから
の指示に応答し、インストラクションバッファにおける
どのインストラクションが全て使用可能なオペランドを
有しているか決定し、そしてそれらインストラクション
を実行のため実行ユニットに割り当てるスケジューリン
グユニットを具備するデータ処理システムが提供され
る。
【0006】これにより、本発明は、多重独立データ駆
動のインストラクションストリーム(multiple independ
ent data-driven instruction streams)をランさせる能
力を持つことが分かる。このストリームは夫々独立なの
で、1つのストリームからのインストラクションがメモ
リアクセスによって停止(hold up) された場合でも、別
のストリームの処理を継続させることが一般的に可能で
あり、それゆえメモリ待ち時間(memory latency)の影響
はなくなる。
動のインストラクションストリーム(multiple independ
ent data-driven instruction streams)をランさせる能
力を持つことが分かる。このストリームは夫々独立なの
で、1つのストリームからのインストラクションがメモ
リアクセスによって停止(hold up) された場合でも、別
のストリームの処理を継続させることが一般的に可能で
あり、それゆえメモリ待ち時間(memory latency)の影響
はなくなる。
【0007】これによる1つの特有かつ有効な結果とし
て、メモリ設計において少ない待ち時間用のメモリ帯域
を利用することが可能となる。高メモリ帯域は、例えば
分割された(pertitioned) 又はインターリーブされた(i
nterleaved) メモリを使用することによって、比較的低
価格で実現することが可能である。一方、少ない待ち時
間用のメモリは、より高速用の技術の使用を必要とし、
その結果一般には高コストで小規模なものとなる。
て、メモリ設計において少ない待ち時間用のメモリ帯域
を利用することが可能となる。高メモリ帯域は、例えば
分割された(pertitioned) 又はインターリーブされた(i
nterleaved) メモリを使用することによって、比較的低
価格で実現することが可能である。一方、少ない待ち時
間用のメモリは、より高速用の技術の使用を必要とし、
その結果一般には高コストで小規模なものとなる。
【0008】
【実施例】以下、本発明による1つのデータ処理システ
ムについて、図面を参照しつつその例を示す。
ムについて、図面を参照しつつその例を示す。
【0009】本システムは、複数の独立した処理を同時
に扱うよう設計されている。これらの処理の各々は、そ
れに割り当てられた唯一つのコンテクスト(context) 番
号を有し、そして独立したインストラクションのストリ
ーム(stream)から構成されている。
に扱うよう設計されている。これらの処理の各々は、そ
れに割り当てられた唯一つのコンテクスト(context) 番
号を有し、そして独立したインストラクションのストリ
ーム(stream)から構成されている。
【0010】図において、本システムは、データ(オペ
ランド)及びインストラクションの双方を収容するメイ
ンメモリ10を有している。直前に使用されたインスト
ラクションのコピーはインストラクションキャッシュ1
2に収容され、また直前に使用されたオペランドのコピ
ーはデータキャッシュ14に収容される。キャッシュ1
2及び14はメインメモリ10に対して小型で高速であ
り、それらキャッシュ内で使用され得るインストラクシ
ョンやオペランドが迅速にアクセスされ得るようになっ
ている。キャッシュにおける各エントリー(entry) は、
それが関連する処理のコンテクスト番号によって番号付
け(tag) される。
ランド)及びインストラクションの双方を収容するメイ
ンメモリ10を有している。直前に使用されたインスト
ラクションのコピーはインストラクションキャッシュ1
2に収容され、また直前に使用されたオペランドのコピ
ーはデータキャッシュ14に収容される。キャッシュ1
2及び14はメインメモリ10に対して小型で高速であ
り、それらキャッシュ内で使用され得るインストラクシ
ョンやオペランドが迅速にアクセスされ得るようになっ
ている。キャッシュにおける各エントリー(entry) は、
それが関連する処理のコンテクスト番号によって番号付
け(tag) される。
【0011】本システムは、また複数のインストラクシ
ョンプリフェッチ(prefetch)・バッファユニット16を
有し、各ユニットは相当数の独立したインストラクショ
ンストリームの各々に対するものである。これらユニッ
ト16の各々は、特定のインストラクションストリーム
に対し一連のインストラクションを、要求されたインス
トラクションがそのキャッシュ内にある場合はインスト
ラクションキャッシュ12から、そうでなければメイン
メモリ10からプリフェッチする。プリフェッチされた
インストラクションはファースト・イン・ファースト・
アウト待ち行列(first-in-first-out queue)に入れられ
る。尚、その待ち行列には処理コンテクスト番号が各イ
ンストラクションに沿って記憶されている。インストラ
クションフェッチ・バッファユニットは、また分岐予測
(branch prediction) 及び理論的分岐フェッチ(specula
tive branch fetch)を行なう。
ョンプリフェッチ(prefetch)・バッファユニット16を
有し、各ユニットは相当数の独立したインストラクショ
ンストリームの各々に対するものである。これらユニッ
ト16の各々は、特定のインストラクションストリーム
に対し一連のインストラクションを、要求されたインス
トラクションがそのキャッシュ内にある場合はインスト
ラクションキャッシュ12から、そうでなければメイン
メモリ10からプリフェッチする。プリフェッチされた
インストラクションはファースト・イン・ファースト・
アウト待ち行列(first-in-first-out queue)に入れられ
る。尚、その待ち行列には処理コンテクスト番号が各イ
ンストラクションに沿って記憶されている。インストラ
クションフェッチ・バッファユニットは、また分岐予測
(branch prediction) 及び理論的分岐フェッチ(specula
tive branch fetch)を行なう。
【0012】本システムは、更に、複数のレジスタリネ
ームユニット(register renamingunits)18を有してい
る。各ユニットは複数の独立したインストラクションス
トリームの各々に対するものである。これらユニットは
レジスタリネーム動作(レジスタに新しく名前付けをす
る動作)を行ない、それによりアーキテクチャにおいて
規定される処理状態のレジスタ(例えば、スタックフロ
ントレジスタ(stackfront register) 、アキュームレー
タ(accumulator) 及びディスクリプタレジスタ(descrip
tor register) 等)をレジスタファイル20中の相当数
の物理的レジスタ上にマッピングする。リネームユニッ
ト18は、各処理のリネーム状態のトラック(track) を
保持するが、全体にわたって唯一の方法でレジスタをス
トリームに割り当てるため共通のレジスタ割り当て理論
(ユニット)22を有する。
ームユニット(register renamingunits)18を有してい
る。各ユニットは複数の独立したインストラクションス
トリームの各々に対するものである。これらユニットは
レジスタリネーム動作(レジスタに新しく名前付けをす
る動作)を行ない、それによりアーキテクチャにおいて
規定される処理状態のレジスタ(例えば、スタックフロ
ントレジスタ(stackfront register) 、アキュームレー
タ(accumulator) 及びディスクリプタレジスタ(descrip
tor register) 等)をレジスタファイル20中の相当数
の物理的レジスタ上にマッピングする。リネームユニッ
ト18は、各処理のリネーム状態のトラック(track) を
保持するが、全体にわたって唯一の方法でレジスタをス
トリームに割り当てるため共通のレジスタ割り当て理論
(ユニット)22を有する。
【0013】プリフェッチ・バッファユニット16から
のインストラクションはレジスタリネームユニット18
を経由してインストラクションスケジューラ24へ供給
される。インストラクションスケジューラは、相当数の
実行ユニット26の1つ及び/又は相当数のメモリアド
レス発生ユニット28の1つに対する実行及びパス(exe
cution and passes)のインストラクションをスケジュー
ルする。スケジューラ24の操作機能については以下で
更に詳しく説明する。
のインストラクションはレジスタリネームユニット18
を経由してインストラクションスケジューラ24へ供給
される。インストラクションスケジューラは、相当数の
実行ユニット26の1つ及び/又は相当数のメモリアド
レス発生ユニット28の1つに対する実行及びパス(exe
cution and passes)のインストラクションをスケジュー
ルする。スケジューラ24の操作機能については以下で
更に詳しく説明する。
【0014】実行ユニット26は、並行して同時に相当
数の独立したインストラクションの実行が可能である。
いずれか1つのインストラクションストリームからのイ
ンストラクションはいずれか1つの実行ユニットについ
てスケジュールされることができる。実行ユニットは、
それらが行なう仕事の前後処理について知る必要はな
い。同様に、アドレス発生ユニット28は、相当数の独
立したインストラクションのメモリアドレスを同時に且
つ並行して発生することが可能である。実行ユニット2
6及びアドレス発生ユニット28は、レジスタファイル
が適正なレジスタを読み出し更新できるようにするた
め、共にレジスタファイル20に対するアクセスを有す
る。
数の独立したインストラクションの実行が可能である。
いずれか1つのインストラクションストリームからのイ
ンストラクションはいずれか1つの実行ユニットについ
てスケジュールされることができる。実行ユニットは、
それらが行なう仕事の前後処理について知る必要はな
い。同様に、アドレス発生ユニット28は、相当数の独
立したインストラクションのメモリアドレスを同時に且
つ並行して発生することが可能である。実行ユニット2
6及びアドレス発生ユニット28は、レジスタファイル
が適正なレジスタを読み出し更新できるようにするた
め、共にレジスタファイル20に対するアクセスを有す
る。
【0015】アドレス発生ユニット28の出力は、特定
のオペランドをフェッチするため、データキャッシュ1
4又はメインメモリ10をアクセスする共通メモリアク
セスユニット30へ供給される。
のオペランドをフェッチするため、データキャッシュ1
4又はメインメモリ10をアクセスする共通メモリアク
セスユニット30へ供給される。
【0016】実行ユニット26及びメモリアクセスユニ
ット30からの結果は終了ユニット32へ送られる。各
処理について、終了ユニット32はその処理の最も直前
に保証された正しい状態(most recent guaranteed corr
ect state)の記録を維持し、例外ケースにおいて処理が
回復できるようにする。上記処理を達成するため、終了
ユニット32は、各終了のためのインストラクションと
関係する処理コンテクスト番号を使用して状態テーブル
(state table) のインデックス動作を行ない、それによ
り問題となっている処理の状態を更新する。
ット30からの結果は終了ユニット32へ送られる。各
処理について、終了ユニット32はその処理の最も直前
に保証された正しい状態(most recent guaranteed corr
ect state)の記録を維持し、例外ケースにおいて処理が
回復できるようにする。上記処理を達成するため、終了
ユニット32は、各終了のためのインストラクションと
関係する処理コンテクスト番号を使用して状態テーブル
(state table) のインデックス動作を行ない、それによ
り問題となっている処理の状態を更新する。
【0017】インストラクションが首尾よく終了した場
合には、その結果は、この結果を入力オペランドとして
要求するどのようなインストラクションに対しても使用
可能となる。以下に説明するように、終了ユニット32
は、終了インストラクションの結果を、どのインストラ
クションがスケジュールを行なうか決定する際のスケジ
ューラによる使用のため、スケジューラ24へフィード
バックする。
合には、その結果は、この結果を入力オペランドとして
要求するどのようなインストラクションに対しても使用
可能となる。以下に説明するように、終了ユニット32
は、終了インストラクションの結果を、どのインストラ
クションがスケジュールを行なうか決定する際のスケジ
ューラによる使用のため、スケジューラ24へフィード
バックする。
【0018】物理的レジスタに対し関連し得る全てのイ
ンストラクションが首尾よく終了した場合、レジスタフ
ァイル20における物理的レジスタはフリー(free)とな
り、再使用に適するものとなる。終了ユニット32はこ
れを検知し、フリーレジスタの識別見出し(identity)を
レジスタ割り当てユニット22へ戻し、その結果再割り
当てが可能となる。
ンストラクションが首尾よく終了した場合、レジスタフ
ァイル20における物理的レジスタはフリー(free)とな
り、再使用に適するものとなる。終了ユニット32はこ
れを検知し、フリーレジスタの識別見出し(identity)を
レジスタ割り当てユニット22へ戻し、その結果再割り
当てが可能となる。
【0019】次に、スケジューリングユニット24の動
作について詳細に説明する。スケジューリングユニット
24は、インストラクションバッファ16からのインス
トラクションを受信し、これらのうちどれが(終了ステ
ージからの結果により示されるように)全て使用可能な
オペランドを持つか決定し、そしてそれにより即時の実
行に対し適合できることとなる。1以上のインストラク
ションが適格な場合、そのうち1つは所定のスケジュー
リング処理(scheduling policy) に基づいて選択され
る。例えば、その処理は所定の優先順位を基礎とするス
ケジューリングを含むものであってもよい。
作について詳細に説明する。スケジューリングユニット
24は、インストラクションバッファ16からのインス
トラクションを受信し、これらのうちどれが(終了ステ
ージからの結果により示されるように)全て使用可能な
オペランドを持つか決定し、そしてそれにより即時の実
行に対し適合できることとなる。1以上のインストラク
ションが適格な場合、そのうち1つは所定のスケジュー
リング処理(scheduling policy) に基づいて選択され
る。例えば、その処理は所定の優先順位を基礎とするス
ケジューリングを含むものであってもよい。
【0020】その後、選択されたインストラクション
は、要求された処理を行うため、実行ユニット及び/又
はメモリアドレス発生ユニットのうちの使用可能ないず
れか1つに送られる。
は、要求された処理を行うため、実行ユニット及び/又
はメモリアドレス発生ユニットのうちの使用可能ないず
れか1つに送られる。
【0021】
【発明の効果】以上のように、本発明によれば、待ち時
間による処理性能全体に対する影響が少なく、キャッシ
ュミスレートの低い高速且つ高性能の処理が可能とな
る。
間による処理性能全体に対する影響が少なく、キャッシ
ュミスレートの低い高速且つ高性能の処理が可能とな
る。
【図1】本発明を具体化したデータ処理システムのブロ
ック図である。
ック図である。
10 メインメモリ 12 インストラクションキャッシュ 14 データキャッシュ 16 インストラクションバッファ 18 レジスタリネームユニット 20 レジスタファイル 22 レジスタ割り当てユニット 24 スケジューラ 26 実行ユニット 28 メモリアドレス発生ユニット 30 メモリアクセスユニット 32 終了ユニット
Claims (6)
- 【請求項1】 データ処理システムにおいて、前記シス
テムが (a) 複数の独立したインストラクションストリームから
のインストラクションに対しバッファ動作を行なう複数
のインストラクションバッファ(16)、 (b) インストラクションを実行する複数の実行ユニット
(26)、 (c) 前記実行ユニットからの実行の結果を受信し、そし
て前記実行の結果によりそのオペランドが使用可能とさ
れる指示を生成する終了ユニット(32)、及び (d) 前記終了ユニットからの前記指示に応答して、前記
インストラクションバッファにおけるどのインストラク
ションが全ての使用可能なオペランドを有するか決定
し、そしてそれらインストラクションを実行のため前記
実行ユニットに割り当てるスケジューリングユニット
(24)を具備することを特徴とするデータ処理システ
ム。 - 【請求項2】 請求項1に記載のデータ処理システムに
おいて、更に、複数の物理的レジスタを保持するレジス
タファイル(20)、及び各インストラクションストリ
ームからの論理的レジスタの見出しを前記物理的レジス
タ上にマッピングする複数のレジスタリネームユニット
(18)を具備することを特徴とするデータ処理システ
ム。 - 【請求項3】 請求項2に記載のデータ処理システムに
おいて、更に、全ての前記レジスタリネームユニットに
共通し、フリーの物理的レジスタを論理的レジスタへ割
り当てるレジスタ割り当てユニット(22)を具備する
ことを特徴とするデータ処理システム。 - 【請求項4】 請求項3に記載のデータ処理システムに
おいて、前記終了ユニット(32)は、物理的レジスタ
がフリーとなった時を検出してそのレジスタについての
識別子を前記レジスタ割り当てユニットへ送る手段を具
備することを特徴とするデータ処理システム。 - 【請求項5】 請求項1、2、3又は4に記載のデータ
処理システムにおいて、更に、メインメモリ(10)、
及び前記メインメモリからのインストラクションのコピ
ーを保持するインストラクションキャッシュ(12)を
具備し、そして前記インストラクションキャッシュは全
ての前記インストラクションバッファ(16)にインス
トラクションを供給するよう接続されていることを特徴
とするデータ処理システム。 - 【請求項6】 データ処理方法において、前記方法が (a) 複数のインストラクションバッファにおける複数の
独立したインストラクションストリームからのインスト
ラクションに対するバッファ動作を行うステップ、 (b) バッファからのインストラクションを、実行のため
複数の実行ユニットに対してスケジューリングするステ
ップ、 (c) オペランド使用可能性情報を生成するため実行ユニ
ットからの実行の結果を使用するステップ、及び (d) インストラクションのスケジューリングを制御する
ためオペランド使用可能性情報を使用するステップを具
備することを特徴とするデータ処理方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GB9123271.0 | 1991-11-02 | ||
| GB919123271A GB9123271D0 (en) | 1991-11-02 | 1991-11-02 | Data processing system |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH05224921A true JPH05224921A (ja) | 1993-09-03 |
Family
ID=10703953
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4293599A Withdrawn JPH05224921A (ja) | 1991-11-02 | 1992-11-02 | データ処理システム |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US5530816A (ja) |
| EP (1) | EP0541216B1 (ja) |
| JP (1) | JPH05224921A (ja) |
| AU (1) | AU2744992A (ja) |
| DE (1) | DE69225195T2 (ja) |
| GB (1) | GB9123271D0 (ja) |
| ZA (1) | ZA926505B (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100725091B1 (ko) * | 2006-09-06 | 2007-06-04 | 최종욱 | 초화용 비료 |
Families Citing this family (28)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5689673A (en) * | 1995-02-14 | 1997-11-18 | Hal Computer Systems, Inc. | Apparatus and method for controlling instruction flow by using a matrix of transmission gates in super-scaler microprocessor and selectively delaying microprocessor instruction execution based on resource availability |
| US5884059A (en) * | 1996-01-26 | 1999-03-16 | Advanced Micro Devices, Inc. | Unified multi-function operation scheduler for out-of-order execution in a superscalar processor |
| JP3720371B2 (ja) | 1995-10-06 | 2005-11-24 | アドバンスト・マイクロ・デバイシズ・インコーポレイテッド | スーパースケーラープロセッサにおけるout−of−order実行のための統一化された機能オペレーションスケジューラ |
| US5958042A (en) | 1996-06-11 | 1999-09-28 | Sun Microsystems, Inc. | Grouping logic circuit in a pipelined superscalar processor |
| US5848257A (en) * | 1996-09-20 | 1998-12-08 | Bay Networks, Inc. | Method and apparatus for multitasking in a computer system |
| US6035388A (en) | 1997-06-27 | 2000-03-07 | Sandcraft, Inc. | Method and apparatus for dual issue of program instructions to symmetric multifunctional execution units |
| US6044438A (en) * | 1997-07-10 | 2000-03-28 | International Business Machiness Corporation | Memory controller for controlling memory accesses across networks in distributed shared memory processing systems |
| US6092155A (en) | 1997-07-10 | 2000-07-18 | International Business Machines Corporation | Cache coherent network adapter for scalable shared memory processing systems |
| US6119223A (en) * | 1998-07-31 | 2000-09-12 | Advanced Micro Devices, Inc. | Map unit having rapid misprediction recovery |
| US6122656A (en) * | 1998-07-31 | 2000-09-19 | Advanced Micro Devices, Inc. | Processor configured to map logical register numbers to physical register numbers using virtual register numbers |
| US6230262B1 (en) * | 1998-07-31 | 2001-05-08 | Advanced Micro Devices, Inc. | Processor configured to selectively free physical registers upon retirement of instructions |
| US6742111B2 (en) * | 1998-08-31 | 2004-05-25 | Stmicroelectronics, Inc. | Reservation stations to increase instruction level parallelism |
| US6378066B1 (en) | 1999-02-04 | 2002-04-23 | Sun Microsystems, Inc. | Method, apparatus, and article of manufacture for developing and executing data flow programs, and optimizing user input specifications |
| US6341338B1 (en) * | 1999-02-04 | 2002-01-22 | Sun Microsystems, Inc. | Protocol for coordinating the distribution of shared memory |
| US6434714B1 (en) | 1999-02-04 | 2002-08-13 | Sun Microsystems, Inc. | Methods, systems, and articles of manufacture for analyzing performance of application programs |
| HK1047326A1 (en) | 1999-08-30 | 2003-02-14 | Ip Flex Inc. | Data processor |
| DE10000960C1 (de) * | 2000-01-12 | 2001-12-20 | Infineon Technologies Ag | Datenverarbeitungsvorrichtung |
| AU2001241487A1 (en) * | 2000-02-14 | 2001-08-27 | Chicory Systems, Inc. | Transforming a stack-based code sequence to a register based code sequence |
| US7035989B1 (en) | 2000-02-16 | 2006-04-25 | Sun Microsystems, Inc. | Adaptive memory allocation |
| US6546359B1 (en) | 2000-04-24 | 2003-04-08 | Sun Microsystems, Inc. | Method and apparatus for multiplexing hardware performance indicators |
| US6647546B1 (en) | 2000-05-03 | 2003-11-11 | Sun Microsystems, Inc. | Avoiding gather and scatter when calling Fortran 77 code from Fortran 90 code |
| US6802057B1 (en) | 2000-05-03 | 2004-10-05 | Sun Microsystems, Inc. | Automatic generation of fortran 90 interfaces to fortran 77 code |
| US6986130B1 (en) | 2000-07-28 | 2006-01-10 | Sun Microsystems, Inc. | Methods and apparatus for compiling computer programs using partial function inlining |
| JP4025493B2 (ja) * | 2000-08-08 | 2007-12-19 | 富士通株式会社 | 適切な発行先に命令を発行する命令発行装置 |
| US6910107B1 (en) | 2000-08-23 | 2005-06-21 | Sun Microsystems, Inc. | Method and apparatus for invalidation of data in computer systems |
| DE10043003A1 (de) * | 2000-09-01 | 2002-03-14 | Infineon Technologies Ag | Programmgesteuerte Einheit |
| US6957208B1 (en) | 2000-10-31 | 2005-10-18 | Sun Microsystems, Inc. | Method, apparatus, and article of manufacture for performance analysis using semantic knowledge |
| US7234144B2 (en) | 2002-01-04 | 2007-06-19 | Microsoft Corporation | Methods and system for managing computational resources of a coprocessor in a computing system |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3728692A (en) * | 1971-08-31 | 1973-04-17 | Ibm | Instruction selection in a two-program counter instruction unit |
| US4901233A (en) * | 1987-07-20 | 1990-02-13 | International Business Machines Corporation | Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries |
| US5247628A (en) * | 1987-11-30 | 1993-09-21 | International Business Machines Corporation | Parallel processor instruction dispatch apparatus with interrupt handler |
| GB8817911D0 (en) * | 1988-07-27 | 1988-09-01 | Int Computers Ltd | Data processing apparatus |
| JP2810068B2 (ja) * | 1988-11-11 | 1998-10-15 | 株式会社日立製作所 | プロセッサシステム、コンピュータシステム及び命令処理方法 |
-
1991
- 1991-11-02 GB GB919123271A patent/GB9123271D0/en active Pending
-
1992
- 1992-08-21 EP EP92307642A patent/EP0541216B1/en not_active Expired - Lifetime
- 1992-08-21 DE DE69225195T patent/DE69225195T2/de not_active Expired - Lifetime
- 1992-08-27 ZA ZA926505A patent/ZA926505B/xx unknown
- 1992-10-30 AU AU27449/92A patent/AU2744992A/en not_active Abandoned
- 1992-11-02 JP JP4293599A patent/JPH05224921A/ja not_active Withdrawn
-
1994
- 1994-10-24 US US08/328,575 patent/US5530816A/en not_active Expired - Lifetime
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100725091B1 (ko) * | 2006-09-06 | 2007-06-04 | 최종욱 | 초화용 비료 |
Also Published As
| Publication number | Publication date |
|---|---|
| US5530816A (en) | 1996-06-25 |
| EP0541216A3 (en) | 1993-10-20 |
| EP0541216A2 (en) | 1993-05-12 |
| AU2744992A (en) | 1993-05-06 |
| ZA926505B (en) | 1993-03-04 |
| EP0541216B1 (en) | 1998-04-22 |
| DE69225195D1 (de) | 1998-05-28 |
| DE69225195T2 (de) | 1998-09-24 |
| GB9123271D0 (en) | 1991-12-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0541216B1 (en) | Data driven processing system | |
| US6173369B1 (en) | Computer system for processing multiple requests and out of order returns using a request queue | |
| US11507372B2 (en) | Processing of instructions fetched from memory | |
| KR100227278B1 (ko) | 캐쉬 제어 유닛 | |
| US12327023B2 (en) | System and method for stream based data placement on hybrid SSD | |
| US5553305A (en) | System for synchronizing execution by a processing element of threads within a process using a state indicator | |
| US5996068A (en) | Method and apparatus for renaming registers corresponding to multiple thread identifications | |
| CN100378655C (zh) | 并行处理器中的多线程执行 | |
| EP1247168B1 (en) | Memory shared between processing threads | |
| US8407451B2 (en) | Method and apparatus for enabling resource allocation identification at the instruction level in a processor system | |
| JP4599172B2 (ja) | フリーバッファプールを使用することによるメモリの管理 | |
| CN1047245C (zh) | 采用独立存取中间存储器的超标量处理器系统中加强指令调度的方法和系统 | |
| US9069609B2 (en) | Scheduling and execution of compute tasks | |
| US10019283B2 (en) | Predicting a context portion to move between a context buffer and registers based on context portions previously used by at least one other thread | |
| WO1993002414A2 (en) | Data processing system with synchronization coprocessor for multiple threads | |
| US20080141268A1 (en) | Utility function execution using scout threads | |
| US20130185725A1 (en) | Scheduling and execution of compute tasks | |
| JP2022151572A (ja) | メタデータ要求をスケジューリングするためのシステム、装置、および方法 | |
| US7313675B2 (en) | Register allocation technique | |
| US20090138880A1 (en) | Method for organizing a multi-processor computer | |
| JP7325437B2 (ja) | リソースインデックス置換を実施するデバイス及びプロセッサ | |
| US20020124157A1 (en) | Method and apparatus for fast operand access stage in a CPU design using a cache-like structure | |
| US7490223B2 (en) | Dynamic resource allocation among master processors that require service from a coprocessor | |
| KR20080065733A (ko) | 레지스터 값의 유사성에 기반을 둔 레지스터 리네이밍시스템 및 방법 | |
| EP0611462A1 (en) | Memory unit including a multiple write cache |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20000104 |