JP3561915B2 - スーパースカラ型プロセサにおいて命令処理を制御するためタグを割り当てるシステム及び方法 - Google Patents
スーパースカラ型プロセサにおいて命令処理を制御するためタグを割り当てるシステム及び方法 Download PDFInfo
- Publication number
- JP3561915B2 JP3561915B2 JP52591495A JP52591495A JP3561915B2 JP 3561915 B2 JP3561915 B2 JP 3561915B2 JP 52591495 A JP52591495 A JP 52591495A JP 52591495 A JP52591495 A JP 52591495A JP 3561915 B2 JP3561915 B2 JP 3561915B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- tag
- register file
- information
- slot
- 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
Links
Images
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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
-
- G—PHYSICS
- G06—COMPUTING 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
-
- 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
-
- 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/3854—Instruction completion, e.g. retiring, committing or graduating
-
- 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/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
-
- 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/3885—Concurrent 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)
- Executing Machine-Instructions (AREA)
Description
1. 産業上の利用分野
本発明は、一般的にスーパースカラ・コンピュータに関し、より具体的には、スーパースカラ型縮小命令セット・コンピュータ(RISC)に於て命令実行を制御するためタグを用いるシステム及び方法に関する。
2. 関連技術
従来のコンピュータ・システムで用いられるプロセサは、一般的に、プログラム命令を一度に一つづつ順次実行する。一つの命令を実行するプロセスにはいくつかのシーケンシャルなステップが含まれている。第1のステップは、普通、メモリ素子から命令を取り出すことである。第2のステップは、普通、命令をデコードしオペランドをアセンブルすることである。
第3のステップは、普通、命令を実行しその結果を格納することである。プロセサによっては、プロセサの一回のクロック・サイクルで各ステップを行うように設計されているものがある。あるいは、ステップ当たりのプロセサのクロック・サイクル数が命令によって変わるようにプロセサを設計することも可能である。
性能向上のため現代のコンピュータはパイプライン方式として知られる手法を用いる。パイプライン方式では、命令実行過程のシーケンシャルなステップが重なり合うことになる。例えば、プロセサは、一つの命令に対して実行ステップを行っている間に、同時に、第2の命令に対してはデコードのステップを行い、第3の命令に対しては取り出しを行うのである。このようにして、パイプライン方式は命令の一つのシーケンスにかかる実行時間を短縮することが出来る。
先に説明したシーケンシャルな3つのステップのサブステップと重なり合わせることによって性能を向上させる別の部類のプロセサは、スーパーパイプライン式プロセサと呼ばれる。
性能向上のためのまた別の手法では、複数の命令を同時に実行することになる。この手法を用いるプロセサは普通、スーパースカラ型プロセサと呼ばれる。2つ以上の命令を同時に実行するスーパースカラ型プロセサの能力は実行される命令によって異なる。例えば、限られた同じプロセサ資源(浮動小数点ユニットなど)の使用を共に必要とする2つの命令を同時に実行することは出来ない。この種の衝突は資源依存性として知られている。さらに、別の命令実行から得られた結果を使用する命令は、他の命令と同時に実行することは出来ない。別の命令の結果に依存する命令は他の命令に対してデータ依存性があるという。同様に、命令セットによって特定のタイプの命令は相対的な所定の順序で実行しなければならないことを指定することができる。こうした命令は手続き依存性があるという。
性能向上のための3番目の手法ではプログラムの順序に関係なく命令を実行することになる。この手法を用いるプロセサは普通、out−of−orderプロセサと呼ばれる。通常、out−of−orderプロセサはスーパースカラ型プロセサでもある。データ依存性及び手続き依存性は、スーパースカラ方式の実行を限定するのと同じようにout−of−order実行を限定する。
以降、本明細書において、複数の命令を同時に実行できるか、命令をプログラムの順序に関係なく実行できるか、またはその両方を実行できるプロセサをさして「スーパースカラ型プロセサ」という用語を用いる。
命令を同時にまたはプログラムの順序に関係なく(out of order)で実行するには、スーパースカラ型プロセサには実行ユニットと呼ばれるシステムが入っていなければならない。実行ユニットは命令を実行するための複数の機能ユニット(例えば、浮動小数点マルチプレクサ、加算器など)を含む。複数の機能ユニットに命令を送るにはスケデュールの制御が必要である。プログラムと同じ順序(in order)で命令を発行する場合には、デコードされた命令が資源衝突を起こすとか、まだ完了していない命令に対して真の依存性または出力依存性をもつといったことが起きれば、その時点でプロセサは命令のデコーディングを停止する。その結果、一つまたは複数の後続命令が実行可能な場合でも、プロセサは資源衝突や依存性を有する命令より先を見ることができなくなる。この制約を克服するために、プロセサは実行ステージからデコーダを切り離す。そうすることによって、即実行可能であるか否かにかかわらずデコーダは命令のデコーディングを続ける。この切り離しは、命令ウインドウと呼ばれるデコードと実行ステージの間のバッファによって実現される。
ルックアヘッドを活用するために、プロセサは命令をデコードしウインドウに余裕がある限りウインドウの中に収め、と同時にウインドウ内の命令に実行可能な命令(つまり、資源衝突や依存性のない命令)があるかどうか調べる。命令ウインドウは、ウインドウの大きさと命令ソースの機能によってのみ制約されるルックアヘッド機能をプロセサにもたらし、命令のプールとしての働きをする。従って、out−of−order(アウト・オブ・オーダー)命令発行にはデコーダと機能ユニットとの間に命令ウインドウと呼ばれるバッファが必要で、命令ウインドウ(インストラクション・ウインドウ)はコンピュータが実行するプログラムの一部分のスナップショットを提供する。
命令の実行が終了した後、新たな命令と入れ替わるように、命令をウインドウから除去しなければならない。現在の設計では先入れ先出しのキュー(FIFO)を活用する命令ウインドウが用いられている。特定の設計においては、新規命令がウインドウに入り、完了した命令が固定サイズのグループになってウインドウから出ていく。例えば、命令ウインドウに8つの命令(I0〜I7)が入っていると、4つの命令からなるグループに変えることができる。この場合、命令I0、I1、I2、及びI3が実行後にウインドウから除去されると同時に4つの新規命令がそのウインドウの中に入って来る。命令が固定サイズのグループで出入りする命令ウインドウは「固定アドバンス命令ウインドウ」と呼ばれる。
別のタイプの設計では、新規命令がウインドウに入り、完了した命令は様々なサイズのグループでウインドウを出ていく。例えば、命令ウインドウに8つの命令(I0〜I7)が入っているとすれば、1つの命令、2つの命令、または3つの命令からなるグループに変えることができる。この場合、命令I0、I1、もしいくはI2のいずれかが実行された後、ウインドウから除去されて新規命令がそのウインドウに入って来る。命令が様々なサイズで出入りする命令ウインドウは「可変アドバンス命令ウインドウ」と呼ばれる。
可変アドバンス命令ウインドウ(VAIW)を用いるプロセサは固定アドバンス命令ウインドウ(FAIW)のプロセサより性能が高くなりがちである。しかしながら、特定の命令がウインドウ内の決まった番号のロケーションにしか入れないので、固定アドバンス命令ウインドウの方がプロセサにとっては管理しやすい。例えば、8つの命令(I1〜I7)を収納し4つの命令からなるグループで命令を入れたり取り出したりする命令ウインドウでは、命令はウインドウ内の2つのロケーション(例えば、I0とI4)の一個所にしか入れない。可変アドバンス命令ウインドウでは、その命令はいろいろ異なる時点でウインドウ内のロケーションのどれにでも入ることができるので、可変アドバンス命令ウインドウのプロセサは、固定アドバンス命令ウインドウのプロセサに比べて、各命令の存在位置を捜し当てるのにより多くの資源がなければならない。
現在の設計は命令ウインドウを実現するのに大きなキューを用いている。キューを用いることは、次のような理由から、不都合である。つまり、大きなチップ面積資源を複数のキュー専用に割かなければならないが、可変アドバンス命令ウインドウを実現する場合には特にそうである。また、1個以上のキューを用いるシステムの設計は柔軟性に限りがある。さらに、キューに入っているデータを振り分ける制御ロジックが複雑で柔軟性に欠ける。
従って、必要なのは命令がウインドウを通過するのに伴ってその命令を「追跡」または監視する手法である。柔軟性に富みチップの面積が小さくてすむシステムでなければならない。
発明の要約
本発明は、複数の命令にタグを割り当てまた複数の命令を収める命令ウインドウを保持するシステムを用いて複数の命令が並列で且つプログラムの順序に関係なく実行されるのを監視する手法に関する。このシステムは、スーパースカラ・ユニットの1個の構成要素で、命令ソースと、命令を実行する機能ユニットとの間に接続される。スーパースカラ・ユニットの役割は、命令ウインドウの保持、実行ユニットの様々な機能ユニットに命令を振り分け、さらに命令が実行された後ソースから新規命令を受け取ることである。
本発明は、タグ・モニタ・システムを用いるが、このシステムはスーパースカラ・ユニットの一部である。タグ・モニタ・システムは、レジスタ・ファイルと、先入れ先出しに基づいて動作するキューを備える(キューはマルチ・アドバンス、多重出力でFIFOをリサイクルする)。キューはレジスタ・ファイルに接続される。レジスタ・ファイルは命令ソースに接続され、命令の情報(つまり、各命令の資源要件)を格納するのに用いられる。命令が命令ソースからレジスタ・ファイルに送られると、現在どの命令にも割り当てられていないタグがその命令に割り当てられる。命令の情報はその後命令のタグで示されたレジスタ・ファイル内のアドレス位置に格納される。一旦命令の情報がレジスタ・ファイルに格納されれば、それを「命令ウインドウ内」に入っているという。命令ウインドウ内の各命令のタグはキューに格納される。タグは、その対応する命令がプログラムで決められている順序と同じ順序でキューに入れられる。
命令が終了すると、キューがアドバンスし、命令のタグがキューの下部から事実上押し出される。次にそのタグは命令ウインドウに入る新規命令に再度割り当てられる。このように、タグはキューの最上部に送り返される(言い換えれば、リサイクルされる)ことになる。複数の命令が同時に終了した場合、同時に複数のタグをリサイクルすることも可能である。好適な実施例においては、命令はプログラムの順序通りに終了することが必要である。命令が間違って他の命令の結果を上書きすることがないようにするために、こうすることが必要なことが多い。例えば、メモリの同じロケーションに書き込む2つの命令がプログラムに入っているとしたら、プログラムで先行する命令が2番目の命令より前にメモリに書き込まれなければならない。従って、プログラムの順序に関係なく実行される命令の結果はどれか一時記憶領域に保持され、命令自体は全ての先行命令が実行され終わるまで命令ウインドウにそのまま残っていなければならない。1個のグループの命令が終了すると、その結果は全て一時記憶領域から本当のデスティネーションに移される。その後命令はウインドウから除去され、それらのタグはリサイクルされる。
レジスタ・ファイルは新規命令の情報を命令ソースから受け取る書き込みポートを有する。レジスタ・ファイルは、一回にウインドウに入れられる新規命令の数と同じ数の書き込みポートを有する。レジスタ・ファイルはウインドウの命令毎に1個のエントリを有する。レジスタ・ファイルはまたウインドウの全ての命令毎に1つの出力ポートを有する。出力ポート毎に対応するアドレス・ポートがある。アドレス・ポートを用いて、どのレジスタ・ファイルのエントリの内容をその対応する出力ポートで出力するか選択する。
キューはスロット(例えば、キュー内の特定のバッファの位置)毎に1個の出力ポートを有し、そのスロットに格納されたタグの値を示す。これらの出力はレジスタ・ファイルの読み出しアドレス・ポートに接続される。この接続によって、タグ・バルブが読み出しアドレス・ポートへのキューで表されていると、レジスタ・ファイルがエントリの内容をその対応出力ポートに表示するようになる。レジスタ・ファイルの出力はスーパースカラ・ユニット及び実行ユニットの様々なロケーションに送られ、そこでその命令情報は命令のスケデューリング、命令実行などのために使用される。
命令ウインドウのロケーションによっては所定の時点に空になることがある。この空のウインドウ・ロケーションは「バブル」と呼ばれる。命令がウインドウから出ていき命令ソースが直ちに別の命令を送って置き換えることができない場合、時々バブルが発生する。ウインドウにバブルがあると、レジスタ・ファイルのエントリによっては古い命令情報や虚偽の命令情報を収納することになる。レジスタ・ファイル内のデータは全て常時使用可能だから、レジスタ・ファイル内のデータを限定する何らかの方法が必要である。
本発明では、命令ウインドウのエントリ毎に「バリディティ・ビット」が対応付けられており、レジスタ・ファイル内の対応する命令情報が有効かどうかを示す。これらのバリディティ・ビットはタグの入っているタグFIFOに保持することができる。FIFO内のタグには各々に1つのバリディティ・ビットがある。これらのビットはタグがリサイクルされる度に更新される。タグが更新された時にもし有効な命令が割り当てられていれば、そのビットはアサートされる。そうでなければ、デアサートされる。
バリディティ・ビットは、レジスタ・ファイルの出力と共にタグ・モニタ・システムからの出力である。バリディティ・ビットはレジスタ・ファイルの出力と同じロケーションに送られ、それによってスーパースカラ・ユニットや実行ユニットがその命令情報を使用できるかどうかを知る。
本発明の特徴は、大きなキューに命令情報を格納しなくても命令ウインドウを保持できることである。そのため設計が簡素化されオペレーション上の柔軟性が高まる。例えば、n個の命令を収めるウインドウがあるとすれば、タグ・モニタ・システムにはn個のエントリの入ったキュー、及びn個のエントリとn個の出力ポートを有するレジスタ・ファイルがある。キューの各出力がレジスタ・ファイルの対応する読み出しアドレス・ポートに接続されて(例えば、出力0は読み出しアドレス・ポート0に、出力1は読み出しアドレス・ポート1にといったようにそれぞれ接続される)いえば、レジスタ・ファイルの出力はプログラムと同じ順序(例えば、出力ポート0は命令0の情報を表示し、出力ポート1は命令1の情報を表示するといった具合)でウインドウ内の各命令に関する情報を「表示する」(つまり、出力ポートで使用可能にする)。ウインドウがアドバンスすると、キューがアドバンスし読み出しアドレス・ポートのアドレスが変わる。これによってレジスタ・ファイルの出力が変わりウインドウ内の命令の新たな配列を反映したものになる。命令情報がプログラムの順序で(in order)スーパースカラ・ユニットの他のところに送られるように、レジスタ・ファイル出力にプログラムの順序で命令情報が表示されることが必要である。スーパースカラ・ユニットが実行及びその完了をスケデュールできるように、スーパースカラ・ユニットはウインドウ内の命令の順序を知る必要がある。
本発明の様々な実施例の構成とオペレーションの他、本発明の更なる特徴及び優れた点については添付の図面との関連において以下に詳細に説明する。
【図面の簡単な説明】
第1図は本発明のスーパースカラ環境の代表的なブロック図を示す。
第2図は本発明のタグ・モニタ・システムの代表的なブロック図を示す。
第3図は第2図のタグ・モニタ・システムによるタグ・モニタに関する代表的なオペレーション・フローチャートを示す。
第4図は2個のレジスタ・ファイルを有するタグ・モニタ・システムを示す。
第5図は単純なFIFOの図を示す。
第6図は多重出力の単純なFIFOの図を示す。
第7図は複数の出力端子を有するFIFOを示す。
第8図はリサイクル型FIFOを示す。
第9図はマルチ・アドバンスのFIFOを示す。
第10図はリサイクル型マルチ・アドバンスのFIFOを示す。
発明の詳細な説明
1.0 システム環境
第1図はスーパースカラ環境101のブロック図である。スーパースカラ環境101は、命令ソース102、スーパースカラ・ユニット104、機能ユニット106を備える。スーパースカラ・ユニット104は機能ユニット106によって命令の実行を制御する。機能ユニット106は、浮動小数点ユニット(未表示)、整数ユニット(未表示)、ロード/ストア・ユニット(未表示)と、所望するアプリケーションによってプロセサが通常用いるようなその他のハードウエアを備えていてもよい。命令ソース102及び機能ユニット106の具体的な実現については当業者には明らかであろう。
命令ソース102はバス103を介してスーパースカラ・ユニット104に命令情報を送る。スーパースカラ・ユニット104は次に機能ユニット106に対して命令を発行する。普通、スーパースカラ・ユニット104は機能ユニット106の可用性を監視し、命令相互間の依存性を調べる。一旦命令が完了すると、命令ソース102はスーパースカラ・ユニット104にさらに命令情報を送る。
第1図に示すバスはデータ信号及び制御信号を表している。バス及び命令のサイズはアプリケーションにより異なっていてよい。以下に、スーパースカラ・ユニット104に対する命令を追跡するタグ・モニタ・システムを中心に説明する。
2.0 タグ・モニタ・システムの構成とオペレーション
A.構成
第2図はスーパースカラ・ユニット104の一部に組み込まれたタグ・モニタ・システム(第2図の内側の破線で表示した部分)のブロック図である。タグ・モニタ・システム222には、レジスタ・ファイル202、タグFIFO 204、制御ロジック207が含まれる。
タグFIFO 204はマルチ・アドバンス、多重出力のリサイクル型FIFOで、複数のスロット206にタグを格納する。「マルチ・アドバンス」とは、FIFOを一度にスロット幾つでもアドバンスさせることができることを意味する。例えば、マルチ・アドバンスのスロットは4個のFIFOを一度に0から3スロットまでアドバンスさせることができる。「多重出力」とはFIFOの各スロットの内容が使用可能であることを意味する。タグは命令が命令ウインドウに入ると命令毎に割り当てられる固有のラベルである。タグFIFO 204はウインドウ内の命令毎に1つのスロットを有する。スロット206は各々が出力203を有し、それによって対応するスロット206にあるタグの値を示す(つまり、出力する)。スロット206はまた各々が、スロット206のタグを割り当てられた命令が有効であるかどうかを示すバリディティ・ビットを有する。好適な実施例において、タグFIFO 204にはスロット206が8個ある。これらのスロット206に各々には0から7までの固有の2進数(タグ)が収めれている。例えば、タグが3ビット(例えば、000、001、010、といったように)で、バリディティ・ビットがあれば、各スロットに4ビットを保持させる。従って、出力232は各々4ビット幅である。チップの電源投入時またはリセット時にタグFIFO 204のスロット206の各々の固有のタグがロードされる。
一旦タグが命令に割り当てられると、タグは命令がウインドウからなくなるまでずっとその命令についたままである。一旦命令がウインドウから除去されると、そのタグはタグFIFO 204の最上部212に送り返される。最上部212に送られたタグは新規命令がウインドウに入るとそれに再び割り当てられる。このようにして、タグは「リサイクル」される、つまり、タグFIFO 204の中で再び一周する。普通、タグは最上部212から下部210に向かってタグFIFO 204の中をアドバンスする。そのため、タグFIFO 204をリサイクル型キューを呼ぶ。
レジスタ・ファイル202はタグFIFO 204と命令ソース102に接続されている。レジスタ・ファイル202は命令ソース102から送られてくる命令情報を格納する。命令ソース102からレジスタ・ファイル202に送ることができる情報のタイプは次の通りである。デコードされた命令情報、命令機能ユニット要件、命令によって実行されるオペレーションのタイプ、命令結果が格納される記憶場所を指定する情報、命令オペランドが格納されている記憶場所を指定する情報、コントロール・フロー命令のターゲット・アドレスを指定する情報、及び命令で指定したオペレーションで使用されるイミディエト・データを指定する情報である
レジスタ・ファイル202は、書き込みデータポート214、書き込みアドレス・ポート216、ライトイネーブル(書き込み可能)ポート218、読み出しアドレス・ポート220、及び読み出しデータポート224を備える。
書き込みデータポート214はバス103を介して命令ソース102から命令情報を受け取る。書き込みアドレス・ポート216は、書き込みデータポート214を経由して受け取った命令情報がレジスタ・ファイル202のどのアドレス指定可能なロケーションに格納されるかを指定する。書き込みアドレス・ポート216はバス226を介して制御ロジック207に接続されている。ライトイネーブル・ポート218は命令ソース102からのデータがいつレジスタ・ファイル202に書き込まれるかを示す。ライトイネーブル・ポートはバス228を介して制御ロジック207に接続されている。好適な実施例(第2図に表示)において、レジスタ・ファイル202はAからDのラベルのついた4つの書き込みデータポートを有する。書き込みデータポート214はAからDのラベルのついた対応する書き込みアドレス・ポート216と、AからDのラベルのついた対応するライトイネーブル・ポート218とを有する。
読み出しアドレス・ポート220はバス230を介してタグFIFO 204に接続されている。バス230はタグFIFO 204のスロット206の各々の出力232を伝送する。読み出しアドレス・ポート220は読み出しデータポート224を経由してアクセスされる命令情報を選択する。読み出しアドレス・ポート220は各々対応する読み出しデータポート224を有する。好適な実施例(第2図に表示)において、命令ウインドウには8つのエントリ(つまり、タグFIFO 204の深さ)があり、レジスタ・ファイル202はウインドウ内の各命令に対して読み出しアドレス・ポート220を1個、読み出しデータポート224を1個有する。読み出しアドレス・ポート220には0から7までのラベルが付けられ、それに対応する読み出しデータポート224にも0から7までのラベルが付いている。
典型的には、レジスタ・ファイル202はスーパースカラ環境101内になる他の要素(例えば、表示されてはいないが、イシュア)に接続されている。
制御ロジック207は論理回路を備える。制御ロジック207はバス234と230を介してタグFIFO 204から機能ユニット106を監視する。制御ロジック207はバス238を介して命令ソース102に信号を送り、命令がウインドウから出ると新規命令情報をレジスタ・ファイル202に送る。制御ロジック207は命令ソース102が新規命令をいくつ送るべきかを知らせる。好適な実施例(第2図に表示)において、一回に送れる命令数は最大で4個であるが、これはレジスタ・ファイル202の書き込みデータポート214の総数に相当する。制御ロジック207は、命令がウインドウから出ていくとバス236を介してタグFIFO 204と同期をとりアドバンスする。このように、制御ロジック207のコマンドに基づいて、タグFIFO 204は一回にウインドウから出ていく命令数と同じステップだけアドバンスする。制御ロジック207はバス236を介してタグFIFO 204に格納されたバリディティ・ビットの保持もする。制御ロジック207の回路のインプリメンテーションについては当業者には明らかであろう。例えば、現在よく知られ既に市販されている論理合成やレイアウトのシステムを用いて動作記述(例えば、VerilogやV.H.D.L)をシリコンやチップの設計に変換することができる。
本明細書に記載の様々なバスのビット幅はパラレルまたはシリアルのアドレスやデータ転送をサポートする。インプリメンテーションに固有であるその選択は当業者には明らかであろう。
タグ・モニタ・システムに1個以上のレジスタ・ファイルを備えることも可能である。好適な実施例では、命令情報は複数のレジスタ・ファイル間に配られる。例えば、1個のレジスタ・ファイルには命令毎のデスティネーション・レジスタ・アドレスが入っている。別のレジスタ・ファイルには各命令の機能ユニット要件などが入っている。複数のレジスタ・ファイルを使用する利点の一つは、設計者が小さめのレジスタ・ファイルを用い、それらを使用する内容に接近した配置にすることができることである。そのためプロセサの物理的設計が容易になる。レジスタ・ファイルの読み出し及び書き込みの各アドレスは一つに接続され、出所は同じである。レジスタ・ファイルの書き込みアドレスも命令ソースからくるが、全てのレジスタ・ファイルが各命令に関する全ての情報を保持しなければならないというわけではない。各レジスタ・ファイルの出力は、レジスタ・ファイルに保持されているデータを必要とするところだけに送られる。
第4図は2個のレジスタ・ファイルを有するタグ・モニタ・システム222を示す。好適な実施例においては、各命令の情報の一部分だけがレジスタ・ファイル202aと202bの各々に格納される。従って、命令ソース102からバス103上を送られるデータは分割される。1個の部分103aはレジスタ・ファイル202aに送られ、もう1個の部分103bはレジスタ・ファイル202bに送られる。202aと202bの両レジスタ・ファイルはバス226と228に接続されており、バス226と228は制御ロジック207からの制御信号とバス230への制御信号を届け、バス230はタグFIFO 204からの出力を届ける。レジスタ・ファイル202aと202bの出力はスーパースカラ・ユニット104中の別々の場所にまた別のバス240aと240bを通って供給される。
タグFIFO 204について実施例との関連において説明する。
第5図はFIFO 500を示す。FIFO 500は4個のスロット504、508、512、516に4つのデータを保持する。その4個のスロットはバス506、510、514を介して接続されている。FIFO 500には入力502と出力518とがあり、そこを通ってデータがFIFO 500に出入りする。
FIFO 500はポジションが4個あるキューのように動作する。FIFO 500がアドバンスすると、スロット516にあるデータは出力518を通ってFIFO 500から出ていく。スロット512にあるデータはバス514を通ってスロット516に移動する。スロット508にあるデータはバス510を通ってスロット512に移動する。スロット514にあるデータはバス506を通ってスロット508に移動し、入力502にあるデータが移動してスロット504に入る。これらのデータ転送は各々FIFO 500がアドバンスする度に起きる。
第6図は複数の出力を有するFIFO 600を示す。FIFO 600は第5図のFIFO 500とほとんど同じ構成である。データは入力602からFIFO 600に入り、604、610、616、618の4個のスロットと通って移動し出力626から出ていく。FIFO 500とFIFO 600の相違点は、604、610、616、622の各スロットに格納されたデータは各スロットに入った時点からFIFO 600が次にアドバンスするまで対応するバス606、612、618、叉は624上で見ることができる(つまり、その4個のバスを読むことができる)ことである。出力606、612、618、叉は624によって所定の時点でFIFO 600にどんなデータが格納されているかをユーザは知ることができる。
好適な実施例においては、スロット604、610、616、及び622に格納されたデータは各スロットの出力バス上(つまり、バス608、614、620、及び626)で常時見ることができる。この場合、バス606、612、618、叉は624は不要である。この種の実施例を第7図に示す。バス706、710、及び714を用いてスロット1と4(704、708、712、及び716のそれぞれ)の間でデータを搬送し、スロット1、2、及び3、つまり704、708、712の内容も示す。出力バス718においては常にスロット716の内容を読むことができる。
第8図はリサイクル型FIFO 800を示す。リサイクル型FIFO 800は第5図に示したFIFO 500とほとんど同じように機能する。リサイクル型FIFO 800は4個のスロット804、808、812、816を備える。主たる相違点は、FIFO 800がアドバンスするとスロット816のデータがスロット804に移動する。FIFO 800は新規のデータをスロット804に入力する手段を有していないから、電源を入れたりリセットしたりする時には804、808、812、816の各スロットが何らかの値で初期化されるように設計する必要がある。これらの初期値は、周知のように再初期化されるまでFIFO 800中を巡回する。
一回で複数のステップでFIFOをアドバンスさせることが必要な場合がある。FIFOは1ステップ分アドバンスする度にデータの一部分を入力するから、FIFOには少なくともFIFOがアドバンスできる上限のステップ数と同じだけの入力がなければならない。FIFOは、各スロットからのデータや正しいデスティネーションへの入力を搬送するバス以外にもいくつかバスを有していなければならない。
第9図はマルチ・アドバンスのFIFO 900を示す。FIFO 900は一回で1、2、3、叉は4のステップ(つまり、スロット)でアドバンスさせることができる。FIFO 900は、4個の入力902、904、906、908と、4個のスロット904、922、930、938を有する。FIFO 900が4ステップでアドバンスする時には、入力902にあるデータはスロット938に行き、入力904がスロット930に、入力906がスロット922に、そして入力908がスロット914にそれぞれ移動する。FIFO 900が3ステップでアドバンスする時には、スロット914のデータがスロット938に、入力902がスロット930に、入力904がスロット922に、そして入力906がスロット914にそれぞれ移動する。この場合、入力908にあるデータはFIFO 900には入らない。FIFO 900が2ステップでアドバンスする場合、スロット922のデータがスロット938に、スロット914のデータがスロット930に、入力902がスロット922に、そして入力904がスロット914にそれぞれ移動する。最後に、単純なFIFOの場合であるが、1ステップでFIFOがアドバンスする時にはスロット930のデータがスロット938に、スロット922のデータがスロット930に、スロット914のデータがスロット922に、そして入力902にあるデータがスロット914にそれぞれ移動する。
一回に複数のステップでアドバンスするには、各スロットと幾つかのスロットの出力がそれ以外の複数のスロットに通じるように切り換え可能な方法で接続されていなければならない。従って、FIFO 900には4個のマルチプレクサがある。つまり、910、918、926、934にそれぞれ表示されたMUX1、MUX2、MUX3、MUX4である。これらのマルチプレクサを用いてFIFO 900がアドバンスする時に各スロットに移動するデータを選択する。各マルチプレクサへの入力はそれに対応するスロットに移動する必要があるかもしれないデータである。例えば、FIFO 900がアドバンスするステップ数いかんで、スロット914、スロット922、スロット930、もしくはスロット930からデータがスロット938に移動することになる。従って、934への入力は、スロット916、スロット924、スロット932、及び入力902からの出力である。マルチプレクサ910、918、926、934を制御するのに必要な論理回路の構成及びオペレーションについては当業者には明らかであろう。
内容をリサイクルするマルチ・アドバンスのFIFOを設計することも可能である。第8及び第9図に示すFIFOの組み合わせがこのFIFOである。リサイクル型マルチ・アドバンスのFIFO 1000を第10図に示す。FIFO 1000は一回に1ステップ、2ステップ、または3ステップのいずれでもアドバンスすることができる。FIFO 1000には4ステージ(1006、1014、1022、1030のラベルのついたスロット1〜4)あるから、4ステップでのアドバンスは論理的には全くアドバンスしないのと同じことである。従って、4ステップでのアドバンスは全く必要ないから、リサイクル型マルチ・アドバンスのFIFO 1000に用いるマルチプレクサの構成はマルチ・アドバンスのFIFO 900で示した構成とは異なる。FIFO 1000は第7図に示したFIFO 700のような多重出力のFIFOでもある。さらに、第8図のリサイクル型のFIFO 800のように、FIFO 1000は初期化のため何らかの手段を有してもいなければならない。
第5図、第6図、第7図、第8図、第9図、及び第10図は例として4ステージで表示している。4個以外のスロット数にするために設計を変更することは勿論可能である。そうした変更については当業者には明らかであろう。
B.オペレーション
第3図はタグ・モニタ・システム222のオペレーションを図解するフローチャートである。オペレーションのステップ310〜312について第1図と第2図のハードウエア要素との関連において説明する。
ステップ301でオペレーションを開始する。ステップ302で、制御ロジック207は命令ソースに命令情報を送るよう要求するリクエスト・データ信号238を送る。制御ロジック207は命令ウインドウ内の空きスペースの数と同じ数の命令の情報を要求する。好適な実施例において、命令ウインドウに新規の命令をいくつ入れるか決定した後に、キューの最上部の空のスロットを埋めるため命令ソース102に対して十分な命令情報を要求するのは、事実上、制御ロジックである。情報を送れる命令数には上限があるが、それはウインドウ内のスペース数以下である。
ステップ304で、書き込み可能及び書き込みアドレスを起動させ、タグを割り当て、バリディテイ・ビットを更新する。制御ロジック207は、イネーブル信号をバス226で、アドレス信号をバス228で、ライトイネーブル・ポート218と書き込みアドレス・ポート216にそれぞれ送る。各ポート216のアドレスによって、対応するデータポート214の命令情報をステップ306でレジスタ・ファイル202のどこに格納すべきか指定する。命令情報はバス103を介して命令ソース102からレジスタ・ファイル202に送られる。典型的には、バス226のイネーブル・ビットの総数は情報を一回に送れる命令の上限数に等しく、好適な実施例においては4である。
レジスタ・ファイル202内で各命令の情報が格納されているアドレスをその命令のタグで指定する。書き込みデータポート214のデータは必ずしもレジスタ・ファイル202に格納する必要はないから、制御ロジック207はバス228のイネーブル信号を用いて書き込まれるべきデータだけを選択する。例えば、命令ウインドウの最上部に1個だけ空きスペースがあるとすれば、制御ロジック207はバス228のキューの最上部のスロット212に収められているタグを書き込みアドレス・ポート216Aに送り、バス226を介してライトイネーブル・ポート218Aをアサートする。このオペレーションで書き込みデータポート214Aの命令情報がレジスタ・ファイル202内のタグFIFO 204の最上部のスロット212のタグで指定された場所に格納される。命令ウインドウに2個の空きスペースがあれば、制御ロジック207は2つのイネーブル信号をポート218Aと218Bに送り、ウインドウの最上部の2つのタグを書き込みアドレス・ポート216Aと216B(216Bに移動する最上部のスロット212のタグ)に送り、そうすることによってポート214Aと214Bの命令情報がレジスタ・ファイル202に格納されるようになる。命令情報はタグで指定されたレジスタ・ファイル202内の場所に格納されると、その命令はそのタグが「割り当てられた」という。制御ロジック207はステップ304でタグFIFO 204のバリディティ・ビットの更新もする。命令ソース102がステップ302でなされた全ての要求に対して命令を供給できなければ、制御ロジック207はステップ304で有効命令に割り当てられたタグのバリディティ・ビットだけしかアサートしない。割り当てられなかったタグについては、そのバリディティ・ビットは有効命令に割り当てられるまでアサートされないままにしておかれる。
ステップ308で、レジスタ・ファイル202の内容は全て読み出しデータ・ポート224から読み出される。使用されるのはレジスタ・ファイル202の全内容以下であるとの想定になっている。レジスタ・ファイル202から読み出されるべきデータは読み出しアドレス・ポート220を通ってレジスタ・ファイル202に入るアドレスで指定される。そしてデータはウインドウ内の一部か全ての命令の実行に使用される。好適な実施例においては、読み出しアドレス220は常時アサートされている。言い換えれば、各スロット206には常にタグが入っているということである。
判断のステップ310で、制御ロジック207はステップ308で実行された命令でどれかリタイアするか判断する。リタイアする命令がなければ、判断のステップ310の「NO」のパス311で示すように、継続してデータがレジスタ・ファイル202から読み出され、ウインドウ内の命令が実行され続ける。命令がリタイアする場合、制御ロジック207はステップ312に示すようにバス234を介してリタイアする命令数を知らせる情報を受け取る。バス234を通して受け取る情報はリタイアメント・ユニット(未表示)から送られてくる。リタイアメント・ユニットの詳細は本発明の実行に関係することではない。(但し、1992年5月15日出願の同時係属中の米国出願番号07/877,451に命令リタイアメント・ユニットの一例を記載している。)制御ロジック207はその後、バス236を介して、タグFIFO 204が何段アドバンスすべきかを知らせる。
第2図において、命令が1個リタイアするとすれば、タグFIFO 204は1ステップだけアドバンス(進捗)する。タグ1が下部の210から最上部の212に移動して現在タグ0がある場所に入り、それに伴って他のタグ全てがアドバンスする。タグ1が下部の210から最上部の212に移動すると、そのバリディティ・ビットはデアサートされる。タグ1は次に新しく命令ウインドウに入る命令に再び割り当てられる。タグ2は、ステップ312終了後、タグFIFO 204の下部210の位置にあるはずである。タグ・モニタ・システム222のオペレーションはブランチ314を介して先に説明したオペレーションのステップ302に戻ることによって継続される。
本発明の様々な実施例について説明してきたが、あくまで例題として提示したのであってそれにより限定されるものではないことが理解されるだろう。従って、本発明の広さと範囲は上述の典型的な実施例のいずれによっても限定されるものではなく、特許出願の請求範囲及びそれに均等のものによってのみ限定される。
Claims (12)
- 命令ソースから命令情報を受け取りレジスタ・ファイルに格納する可変アドバンス命令ウインドウを実現する方法であって、
(1)レジスタ・ファイルに関連する命令情報を格納できる新規命令がいくつあるか決定するステップと、
(2)特定の命令のタグはその命令に関連する情報がレジスタ・ファイルに存在している限り変わることがないように、新規命令毎にタグを割り当てるステップと、
(3)各命令に関する情報をレジスタ・ファイル内のその命令に割り当てられたタグで指定された場所に格納し、前記レジスタ・ファイルは複数のレジスタと、複数の読み出しアドレス・ポート及び複数の読み出しデータポートとを備える、情報格納のステップと、
(4)キューのスロット毎にタグを1個づつ格納し、前記キューは所定の時点でレジスタ・ファイルに命令情報を入れられる上限の命令数に等しいスロット数を有し、タグは各命令に対する命令情報がレジスタ・ファイルに格納されるのと同じ順序でキューに入られ、前記キューはさらにスロット毎にスロット出力を有し、各スロット出カによって対応するスロットのタグをアクセスできるようになる、タグ格納のステップと、
(5)前記スロットの1個を対応するスロット出力を介してアクセスするステップと、
(6)そのスロットに格納されたタグをレジスタ・ファイルの前記複数の読み出しアドレス・ポートのうちの特定の1個に引き渡してレジスタ・ファイルがそのタグに対応する命令に関連する情報を前記読み出しアドレス・ポートに対応する特定の読み出しデータポートから出力するようにするステップと、
を含むことを特徴とする方法。 - 情報格納の前記ステップ(3)が命令のメモリ・アドレスを格納してなることを特徴とする請求項1に記載の方法。
- 情報格納の前記ステップ(3)が命令を格納してなることを特徴とする請求項1に記載の方法。
- さらにレジスタ・ファイルに入れられるべき新規命令の数と同じスロット数だけ前記キューをアドバンスさせるステップを有することを特徴とする請求項1に記載の方法。
- 前記キューの中にタグ毎の有効ビットを格納するステップをさらに有し、有効ビットと対応しているタグに該当する命令が有効ならば有効ビットが設定されることを特徴とする請求項4に記載の方法。
- 命令のソースから命令情報を受け取りレジスタ・ファイルに格納する可変アドバンス命令ウインドウを実現するシステムであって、
レジスタ・ファイルに関連命令情報を入れられる新規命令がいくつあるか決定し、特定の命令に関する情報がレジスタ・ファイルにある限りその命令のタグが変わることがないように新規命令毎にタグを割り当てる制御手段と、
前記制御手段に接続され、各命令に関する情報を前記レジスタ・ファイル内の1つの場所に格納し、前記場所はその命令に割り当てられたタグで指定され、前記レジスタ・ファイルは前記場所を形成する複数からなるレジスタと、
複数の読み出しデータポート及び複数の読み出しアドレス・ポートを有し、読み出しアドレス・ポートには読み出しデータポートが対応している、レジスタ・ファイルと、
前記制御手段及び前記レジスタ・ファイルに接続され、複数のスロットを有し、前記スロットには各々に前記レジスタ・ファイル内の場所のアドレスに対応する固有のタグが収められ、さらにスロット毎にスロット出力を有し、各スロット出力によって対応するスロットにあるタグをアクセスできるようになる、リサイクル型キューを備え、
スロットに格納されたタグをレジスタ・ファイルの前記複数の読み出しアドレス・ポートの特定の1個に引き渡してレジスタ・ファイルがそのタグに対応するレジスタ・ファイルの場所に格納された命令情報を対応する読み出しデータポートから出力するようにすることを特徴とするシステム。 - 命令のソースから命令情報を受け取りメモリ素子に格納する可変アドバンス命令ウインドウを実現する方法であって、
(1)前記メモリ素子に入れる関連情報をもつ新規命令毎にタグを割り当て、各タグは前記メモリ素子の固有のアドレスに相当する値を有する、タグ割り当てのステップと、
(2)前記メモリ素子内のその対応するタグで識別されたアドレスに各命令に関する情報を格納するステップと、
(3)リサイクル型キューに入るタグの順序が前記メモリ素子に入る命令情報の順序に一致し、リサイクル型キューのスロットのタグの順序が前記メモリ素子から読み出される命令情報の正しい順序を識別するように、リサイクル型キューの最上部のスロットにタグを入れるステップと、
(4)前記メモリ素子から出ていく実行済みの命令に対応したタグをリサイクルし、前記メモリ素子に入る新規命令に前記リサイクルされたタグを割り当てるステップと、
を含むことを特徴とする方法。 - 新規命令をいくつメモリ素子に入れられるか決定するステップをさらに含むことを特徴とする請求項7に記載の方法。
- 命令のソースから命令情報を受け取りメモリ素子に格納する可変アドバンス命令ウインドウを実現するシステムであって、
複数のスロットを有するリサイクル型キューと、
タグによって識別されるアドレスに命令に関する情報を格納し、複数の読み出しアドレス・ポートと複数の読み出しデータポートを有するメモリ素子と、
前記メモリ素子に入れる関連情報をもつ新規命令毎にタグを割り当て、タグは各々前記メモリ素子の固有なアドレスに該当する値を有する、タグ割り当て手段と、
前記リサイクル型キューのスロットに入るタグの順序が命令情報が前記メモリ素子に入る順序に一致するように前記リサイクル型キューにタグを入れる手段と、
前記リサイクル型キューのタグの値を前記読み出しアドレス・ポートに送り、前記メモリ素子の命令情報が前記読み出しデータから読み出される順序を決定する手段と、
前記メモリ素子に入れる1つの新規命令情報にリサイクルされたタグを1個割り当てる手段と、
を備えることを特徴とするシステム。 - 新規命令をいくつメモリ素子に入れられるか決定する手段をさらに備えることを特徴とする請求項9に記載のシステム。
- 命令ソースから命令情報を受け取りメモリ素子に格納する可変アドバンス命令ウインドウを実現する方法であって、
(1)レジスタ・ファイルに関連命令情報を格納できる新規命令がいくつあるか決定するステップと、
(2)特定の命令のタグはその命令に関する情報がレジスタ・ファイルに存在する限り変わることがないように新規命令毎にタグを割り当てるステップと、
(3)各命令に関連する情報をレジスタ・ファイル内のその命令に割り当てられたタグで指定する場所に格納し、前記レジスタ・ファイルは複数のレジスタと、複数の読み出しアドレス・ポート及び複数の読み出しデータポートを含む、情報格納のステップと、
(4)キューのスロット毎にタグを1個づつ格納し、前記キューは所定の時点でレジスタ・ファイルに命令情報を入れられる上限の命令数に等しいスロット数を有し、タグは各命令に対する命令情報がレジスタ・ファイルに格納されるのと同じ順序でキューの中に入れられ、前記キューはスロット毎にスロット出力を有し、各スロット出力によって対応するスロットのタグをアクセスできるようになる、タグ格納のステップと、
(5)前記キューのスロットに格納されたタグをレジスタ・ファイルの複数からなる読み出しアドレス・ポートに引き渡してレジスタ・ファイルの複数の読み出しデータポートから命令に関する情報がレジスタ・ファイルに格納されたと同じ順序でレジスタ・ファイルが命令に関する情報を出力するようにするステップと、
を含むことを特徴とする方法。 - 命令のソースから命令情報を受け取りレジスタ・ファイルに格納する可変アドバンス命令ウインドウを実現するシステムであって、
レジスタ・ファイルに関連する命令情報を入れられる新規命令がいくつあるか決定し、特定の命令に関する情報がレジスタ・ファイルにある限りその命令のタグが変わることがないように新規命令毎にタグを割り当てる制御手段と、
前記制御手段に接続され、各命令に関する情報をレジスタ・ファイル内の1個の場所に格納し、前記場所はその命令に割り当てられたタグで指定され、レジスタ・ファイルは前記場所を形成する複数からなるレジスタと、
複数の読み出しデータポート及び複数の読み出しアドレス・ポートを有し、読み出しアドレス・ポートには読み出しデータポートが対応している、レジスタ・ファイルと、
前記制御手段及びレジスタ・ファイルに接続され、複数のスロットを有し、前記スロットには各々にレジスタ・ファイル内の場所のアドレスに対応する固有のタグが収められ、さらにスロット毎のスロット出力を有し、各スロット出力によって対応するスロットにあるタグをアクセスできるようになる、リサイクル型キューを備え、
前記リサイクル型キューのスロットに格納されたタグはレジスタ・ファイルの前記複数の読み出しアドレス・ポートに引き渡され、レジスタ・ファイルは前記複数の読み出しデータポートから命令情報がレジスタ・ファイルに格納されたと同じ順序でレジスタ・ファイルに格納されている命令情報を出カするようにすることを特徴とするシステム。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/224,328 | 1994-04-04 | ||
| US08/224,328 US5628021A (en) | 1992-12-31 | 1994-04-04 | System and method for assigning tags to control instruction processing in a superscalar processor |
| PCT/US1995/004132 WO1995027247A1 (en) | 1994-04-04 | 1995-04-04 | System and method for assigning tags to control instruction processing in a superscalar processor |
Related Child Applications (7)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2002246587A Division JP3587256B2 (ja) | 1994-04-04 | 2002-08-27 | コンピュータ装置 |
| JP2002246592A Division JP3587261B2 (ja) | 1994-04-04 | 2002-08-27 | 命令処理制御方法 |
| JP2002246589A Division JP3587258B2 (ja) | 1994-04-04 | 2002-08-27 | 命令実行監視方法 |
| JP2002246591A Division JP3587260B2 (ja) | 1994-04-04 | 2002-08-27 | 命令処理制御方法 |
| JP2002246588A Division JP3587257B2 (ja) | 1994-04-04 | 2002-08-27 | 命令実行監視システム |
| JP2002246590A Division JP3587259B2 (ja) | 1994-04-04 | 2002-08-27 | 命令処理制御システム |
| JP2002246586A Division JP3587255B2 (ja) | 1994-04-04 | 2002-08-27 | スーパースカラプロセッサ |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH11511871A JPH11511871A (ja) | 1999-10-12 |
| JP3561915B2 true JP3561915B2 (ja) | 2004-09-08 |
Family
ID=22840187
Family Applications (8)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP52591495A Expired - Lifetime JP3561915B2 (ja) | 1994-04-04 | 1995-04-04 | スーパースカラ型プロセサにおいて命令処理を制御するためタグを割り当てるシステム及び方法 |
| JP2002246592A Expired - Lifetime JP3587261B2 (ja) | 1994-04-04 | 2002-08-27 | 命令処理制御方法 |
| JP2002246588A Expired - Lifetime JP3587257B2 (ja) | 1994-04-04 | 2002-08-27 | 命令実行監視システム |
| JP2002246589A Expired - Lifetime JP3587258B2 (ja) | 1994-04-04 | 2002-08-27 | 命令実行監視方法 |
| JP2002246587A Expired - Lifetime JP3587256B2 (ja) | 1994-04-04 | 2002-08-27 | コンピュータ装置 |
| JP2002246586A Expired - Lifetime JP3587255B2 (ja) | 1994-04-04 | 2002-08-27 | スーパースカラプロセッサ |
| JP2002246591A Expired - Lifetime JP3587260B2 (ja) | 1994-04-04 | 2002-08-27 | 命令処理制御方法 |
| JP2002246590A Expired - Lifetime JP3587259B2 (ja) | 1994-04-04 | 2002-08-27 | 命令処理制御システム |
Family Applications After (7)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2002246592A Expired - Lifetime JP3587261B2 (ja) | 1994-04-04 | 2002-08-27 | 命令処理制御方法 |
| JP2002246588A Expired - Lifetime JP3587257B2 (ja) | 1994-04-04 | 2002-08-27 | 命令実行監視システム |
| JP2002246589A Expired - Lifetime JP3587258B2 (ja) | 1994-04-04 | 2002-08-27 | 命令実行監視方法 |
| JP2002246587A Expired - Lifetime JP3587256B2 (ja) | 1994-04-04 | 2002-08-27 | コンピュータ装置 |
| JP2002246586A Expired - Lifetime JP3587255B2 (ja) | 1994-04-04 | 2002-08-27 | スーパースカラプロセッサ |
| JP2002246591A Expired - Lifetime JP3587260B2 (ja) | 1994-04-04 | 2002-08-27 | 命令処理制御方法 |
| JP2002246590A Expired - Lifetime JP3587259B2 (ja) | 1994-04-04 | 2002-08-27 | 命令処理制御システム |
Country Status (3)
| Country | Link |
|---|---|
| US (8) | US5628021A (ja) |
| JP (8) | JP3561915B2 (ja) |
| WO (1) | WO1995027247A1 (ja) |
Families Citing this family (66)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5493687A (en) | 1991-07-08 | 1996-02-20 | Seiko Epson Corporation | RISC microprocessor architecture implementing multiple typed register sets |
| US5539911A (en) | 1991-07-08 | 1996-07-23 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution |
| EP0636256B1 (en) | 1992-03-31 | 1997-06-04 | Seiko Epson Corporation | Superscalar risc processor instruction scheduling |
| JP3637920B2 (ja) | 1992-05-01 | 2005-04-13 | セイコーエプソン株式会社 | スーパースケーラマイクロプロセサに於て命令をリタイアさせるシステム及び方法 |
| US5628021A (en) | 1992-12-31 | 1997-05-06 | Seiko Epson Corporation | System and method for assigning tags to control instruction processing in a superscalar processor |
| US5604912A (en) * | 1992-12-31 | 1997-02-18 | Seiko Epson Corporation | System and method for assigning tags to instructions to control instruction execution |
| JP3531166B2 (ja) | 1992-12-31 | 2004-05-24 | セイコーエプソン株式会社 | レジスタ・リネーミングのシステム及び方法 |
| JP3494484B2 (ja) * | 1994-10-12 | 2004-02-09 | 株式会社ルネサステクノロジ | 命令処理装置 |
| US5675758A (en) * | 1994-11-15 | 1997-10-07 | Advanced Micro Devices, Inc. | Processor having primary integer execution unit and supplemental integer execution unit for performing out-of-order add and move operations |
| US5712997A (en) * | 1996-01-31 | 1998-01-27 | Sun Microsystems, Inc | System and method for processing load instruction in accordance with "no-fault " processing facility including arrangement for preserving access fault indicia |
| US5859992A (en) * | 1997-03-12 | 1999-01-12 | Advanced Micro Devices, Inc. | Instruction alignment using a dispatch list and a latch list |
| US5878242A (en) * | 1997-04-21 | 1999-03-02 | International Business Machines Corporation | Method and system for forwarding instructions in a processor with increased forwarding probability |
| US5983341A (en) * | 1997-04-25 | 1999-11-09 | International Business Machines Corporation | Data processing system and method for extending the time for execution of an instruction |
| US5860018A (en) * | 1997-06-25 | 1999-01-12 | Sun Microsystems, Inc. | Method for tracking pipeline resources in a superscalar processor |
| US6035388A (en) * | 1997-06-27 | 2000-03-07 | Sandcraft, Inc. | Method and apparatus for dual issue of program instructions to symmetric multifunctional execution units |
| US6112293A (en) * | 1997-11-17 | 2000-08-29 | Advanced Micro Devices, Inc. | Processor configured to generate lookahead results from operand collapse unit and for inhibiting receipt/execution of the first instruction based on the lookahead result |
| US6336182B1 (en) * | 1999-03-05 | 2002-01-01 | International Business Machines Corporation | System and method for utilizing a conditional split for aligning internal operation (IOPs) for dispatch |
| US6425069B1 (en) * | 1999-03-05 | 2002-07-23 | International Business Machines Corporation | Optimization of instruction stream execution that includes a VLIW dispatch group |
| US6304959B1 (en) | 1999-03-05 | 2001-10-16 | International Business Machines Corporation | Simplified method to generate BTAGs in a decode unit of a processing system |
| JP2001092657A (ja) * | 1999-09-22 | 2001-04-06 | Toshiba Corp | 中央演算装置、コンパイル方法、及びコンパイルプログラムを記録した記録媒体 |
| US6691240B1 (en) * | 1999-12-30 | 2004-02-10 | Texas Instruments Incorporated | System and method of implementing variabe length delay instructions, which prevents overlapping lifetime information or values in efficient way |
| GB0002848D0 (en) * | 2000-02-08 | 2000-03-29 | Siroyan Limited | Communicating instruction results in processors and compiling methods for processors |
| US6785802B1 (en) | 2000-06-01 | 2004-08-31 | Stmicroelectronics, Inc. | Method and apparatus for priority tracking in an out-of-order instruction shelf of a high performance superscalar microprocessor |
| GB2363480B (en) * | 2000-06-13 | 2002-05-08 | Siroyan Ltd | Predicated execution of instructions in processors |
| US6804815B1 (en) * | 2000-09-18 | 2004-10-12 | Cisco Technology, Inc. | Sequence control mechanism for enabling out of order context processing |
| US6813704B1 (en) * | 2001-12-20 | 2004-11-02 | Lsi Logic Corporation | Changing instruction order by reassigning only tags in order tag field in instruction queue |
| US20040181651A1 (en) * | 2003-03-11 | 2004-09-16 | Sugumar Rabin A. | Issue bandwidth in a multi-issue out-of-order processor |
| JP5032769B2 (ja) * | 2003-03-25 | 2012-09-26 | アークレイ株式会社 | センサ収納容器 |
| JP2005038016A (ja) | 2003-07-15 | 2005-02-10 | Canon Inc | データ処理装置、データ処理方法、データ処理プログラム、及び画像形成装置 |
| EP1548537A1 (en) * | 2003-12-23 | 2005-06-29 | STMicroelectronics Limited | Secure processor arrangement |
| SE525930C2 (sv) | 2004-07-23 | 2005-05-31 | Kvaser Consultant Ab | Anordning för tidsstämpling av referenshändelser |
| KR20080078255A (ko) * | 2007-02-22 | 2008-08-27 | 삼성전자주식회사 | 파일 관리 방법 및 장치와 그 파일을 저장한 정보저장매체 |
| CN101605932A (zh) * | 2007-03-23 | 2009-12-16 | 索维高级聚合物股份有限公司 | 聚合物纤维、引入此类聚合物纤维的装置和引入此类过滤装置的系统 |
| US20100024695A1 (en) * | 2007-03-23 | 2010-02-04 | Solvay Advanced Polymers, L.L.C. | Fabrics |
| US7831784B2 (en) * | 2007-07-16 | 2010-11-09 | Apple Inc. | Managing purgeable memory objects |
| US8380948B2 (en) * | 2007-09-04 | 2013-02-19 | Apple Inc. | Managing purgeable memory objects using purge groups |
| US9058180B2 (en) * | 2009-06-29 | 2015-06-16 | Oracle America, Inc. | Unified high-frequency out-of-order pick queue with support for triggering early issue of speculative instructions |
| US8429386B2 (en) * | 2009-06-30 | 2013-04-23 | Oracle America, Inc. | Dynamic tag allocation in a multithreaded out-of-order processor |
| US9286075B2 (en) * | 2009-09-30 | 2016-03-15 | Oracle America, Inc. | Optimal deallocation of instructions from a unified pick queue |
| US9588770B2 (en) * | 2013-03-15 | 2017-03-07 | Samsung Electronics Co., Ltd. | Dynamic rename based register reconfiguration of a vector register file |
| US9792252B2 (en) | 2013-05-31 | 2017-10-17 | Microsoft Technology Licensing, Llc | Incorporating a spatial array into one or more programmable processor cores |
| JP6520416B2 (ja) * | 2015-06-02 | 2019-05-29 | 富士通株式会社 | 演算処理装置および演算処理装置の処理方法 |
| US10191747B2 (en) | 2015-06-26 | 2019-01-29 | Microsoft Technology Licensing, Llc | Locking operand values for groups of instructions executed atomically |
| US9946548B2 (en) | 2015-06-26 | 2018-04-17 | Microsoft Technology Licensing, Llc | Age-based management of instruction blocks in a processor instruction window |
| US9720693B2 (en) | 2015-06-26 | 2017-08-01 | Microsoft Technology Licensing, Llc | Bulk allocation of instruction blocks to a processor instruction window |
| US10409599B2 (en) | 2015-06-26 | 2019-09-10 | Microsoft Technology Licensing, Llc | Decoding information about a group of instructions including a size of the group of instructions |
| US10175988B2 (en) | 2015-06-26 | 2019-01-08 | Microsoft Technology Licensing, Llc | Explicit instruction scheduler state information for a processor |
| US10169044B2 (en) | 2015-06-26 | 2019-01-01 | Microsoft Technology Licensing, Llc | Processing an encoding format field to interpret header information regarding a group of instructions |
| US10346168B2 (en) | 2015-06-26 | 2019-07-09 | Microsoft Technology Licensing, Llc | Decoupled processor instruction window and operand buffer |
| US10409606B2 (en) | 2015-06-26 | 2019-09-10 | Microsoft Technology Licensing, Llc | Verifying branch targets |
| US9952867B2 (en) | 2015-06-26 | 2018-04-24 | Microsoft Technology Licensing, Llc | Mapping instruction blocks based on block size |
| US10936713B2 (en) * | 2015-12-17 | 2021-03-02 | The Charles Stark Draper Laboratory, Inc. | Techniques for metadata processing |
| US10235176B2 (en) | 2015-12-17 | 2019-03-19 | The Charles Stark Draper Laboratory, Inc. | Techniques for metadata processing |
| US11150910B2 (en) | 2018-02-02 | 2021-10-19 | The Charles Stark Draper Laboratory, Inc. | Systems and methods for policy execution processing |
| TW201941049A (zh) | 2018-02-02 | 2019-10-16 | 美商多佛微系統公司 | 用於轉換詮釋資料處理的指令的系統和方法 |
| WO2019152805A1 (en) | 2018-02-02 | 2019-08-08 | Dover Microsystems, Inc. | System and method for translating mapping policy into code |
| US11797398B2 (en) | 2018-04-30 | 2023-10-24 | Dover Microsystems, Inc. | Systems and methods for checking safety properties |
| WO2020097177A1 (en) | 2018-11-06 | 2020-05-14 | Dover Microsystems, Inc. | Systems and methods for stalling host processor |
| EP3881190A1 (en) | 2018-11-12 | 2021-09-22 | Dover Microsystems, Inc. | Systems and methods for metadata encoding |
| US11841956B2 (en) | 2018-12-18 | 2023-12-12 | Dover Microsystems, Inc. | Systems and methods for data lifecycle protection |
| WO2020150351A1 (en) | 2019-01-18 | 2020-07-23 | Dover Microsystems, Inc. | Systems and methods for metadata classification |
| US12079197B2 (en) | 2019-10-18 | 2024-09-03 | Dover Microsystems, Inc. | Systems and methods for updating metadata |
| WO2021178493A1 (en) | 2020-03-03 | 2021-09-10 | Dover Microsystems, Inc. | Systems and methods for caching metadata |
| US12124576B2 (en) | 2020-12-23 | 2024-10-22 | Dover Microsystems, Inc. | Systems and methods for policy violation processing |
| US12040967B2 (en) | 2022-01-25 | 2024-07-16 | Bank Of America Corporation | System and method for splitting data elements for data communication based on transformation types implemented on the data elements at different devices |
| CN117951049B (zh) * | 2024-03-27 | 2024-06-07 | 沐曦集成电路(上海)有限公司 | 一种标签的处理方法 |
Family Cites Families (231)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3346851A (en) | 1964-07-08 | 1967-10-10 | Control Data Corp | Simultaneous multiprocessing computer system |
| US3718912A (en) * | 1970-12-22 | 1973-02-27 | Ibm | Instruction execution unit |
| US3789365A (en) * | 1971-06-03 | 1974-01-29 | Bunker Ramo | Processor interrupt system |
| US3771138A (en) | 1971-08-31 | 1973-11-06 | Ibm | Apparatus and method for serializing instructions from two independent instruction streams |
| US3913074A (en) | 1973-12-18 | 1975-10-14 | Honeywell Inf Systems | Search processing apparatus |
| US4034349A (en) | 1976-01-29 | 1977-07-05 | Sperry Rand Corporation | Apparatus for processing interrupts in microprocessing systems |
| US4128880A (en) | 1976-06-30 | 1978-12-05 | Cray Research, Inc. | Computer vector register processing |
| US4212076A (en) | 1976-09-24 | 1980-07-08 | Giddings & Lewis, Inc. | Digital computer structure providing arithmetic and boolean logic operations, the latter controlling the former |
| US4315314A (en) * | 1977-12-30 | 1982-02-09 | Rca Corporation | Priority vectored interrupt having means to supply branch address directly |
| US4200927A (en) * | 1978-01-03 | 1980-04-29 | International Business Machines Corporation | Multi-instruction stream branch processing mechanism |
| US4228495A (en) | 1978-12-19 | 1980-10-14 | Allen-Bradley Company | Multiprocessor numerical control system |
| US4315308A (en) * | 1978-12-21 | 1982-02-09 | Intel Corporation | Interface between a microprocessor chip and peripheral subsystems |
| US4296470A (en) | 1979-06-21 | 1981-10-20 | International Business Machines Corp. | Link register storage and restore system for use in an instruction pre-fetch micro-processor interrupt system |
| JPS5616248A (en) | 1979-07-17 | 1981-02-17 | Matsushita Electric Ind Co Ltd | Processing system for interruption |
| JPS6028015B2 (ja) | 1980-08-28 | 1985-07-02 | 日本電気株式会社 | 情報処理装置 |
| US4434461A (en) * | 1980-09-15 | 1984-02-28 | Motorola, Inc. | Microprocessor with duplicate registers for processing interrupts |
| JPS5757345A (en) | 1980-09-24 | 1982-04-06 | Toshiba Corp | Data controller |
| US4574349A (en) * | 1981-03-30 | 1986-03-04 | International Business Machines Corp. | Apparatus for addressing a larger number of instruction addressable central processor registers than can be identified by a program instruction |
| US4814979A (en) * | 1981-04-01 | 1989-03-21 | Teradata Corporation | Network to transmit prioritized subtask pockets to dedicated processors |
| JPS57204125A (en) | 1981-06-10 | 1982-12-14 | Hitachi Ltd | Electron-ray drawing device |
| US4482950A (en) | 1981-09-24 | 1984-11-13 | Dshkhunian Valery | Single-chip microcomputer |
| US4498134A (en) * | 1982-01-26 | 1985-02-05 | Hughes Aircraft Company | Segregator functional plane for use in a modular array processor |
| JPS58151655A (ja) * | 1982-03-03 | 1983-09-08 | Fujitsu Ltd | 情報処理装置 |
| JPS5932045A (ja) * | 1982-08-16 | 1984-02-21 | Hitachi Ltd | 情報処理装置 |
| US4500963A (en) * | 1982-11-29 | 1985-02-19 | The United States Of America As Represented By The Secretary Of The Army | Automatic layout program for hybrid microcircuits (HYPAR) |
| US4597054A (en) | 1982-12-02 | 1986-06-24 | Ncr Corporation | Arbiter circuit and method |
| US4594655A (en) | 1983-03-14 | 1986-06-10 | International Business Machines Corporation | (k)-Instructions-at-a-time pipelined processor for parallel execution of inherently sequential instructions |
| US4807115A (en) * | 1983-10-07 | 1989-02-21 | Cornell Research Foundation, Inc. | Instruction issuing mechanism for processors with multiple functional units |
| GB8329509D0 (en) | 1983-11-04 | 1983-12-07 | Inmos Ltd | Computer |
| JPS60120439A (ja) * | 1983-12-05 | 1985-06-27 | Nec Corp | 演算処理装置 |
| US4561051A (en) | 1984-02-10 | 1985-12-24 | Prime Computer, Inc. | Memory access method and apparatus in multiple processor systems |
| JPS60225943A (ja) | 1984-04-25 | 1985-11-11 | Hitachi Ltd | 例外割込み処理方式 |
| US4648045A (en) * | 1984-05-23 | 1987-03-03 | The Board Of Trustees Of The Leland Standford Jr. University | High speed memory and processor system for raster display |
| JPS6140650A (ja) | 1984-08-02 | 1986-02-26 | Nec Corp | マイクロコンピユ−タ |
| US4991081A (en) * | 1984-10-31 | 1991-02-05 | Texas Instruments Incorporated | Cache memory addressable by both physical and virtual addresses |
| US4775927A (en) | 1984-10-31 | 1988-10-04 | International Business Machines Corporation | Processor including fetch operation for branch instruction with control tag |
| JPH0652784B2 (ja) | 1984-12-07 | 1994-07-06 | 富士通株式会社 | ゲートアレイ集積回路装置及びその製造方法 |
| US4829467A (en) | 1984-12-21 | 1989-05-09 | Canon Kabushiki Kaisha | Memory controller including a priority order determination circuit |
| US5255384A (en) * | 1985-02-22 | 1993-10-19 | Intergraph Corporation | Memory address translation system having modifiable and non-modifiable translation mechanisms |
| US4714994A (en) | 1985-04-30 | 1987-12-22 | International Business Machines Corp. | Instruction prefetch buffer control |
| JPH0762823B2 (ja) | 1985-05-22 | 1995-07-05 | 株式会社日立製作所 | デ−タ処理装置 |
| US4613941A (en) | 1985-07-02 | 1986-09-23 | The United States Of America As Represented By The Secretary Of The Army | Routing method in computer aided customization of a two level automated universal array |
| US4945479A (en) | 1985-07-31 | 1990-07-31 | Unisys Corporation | Tightly coupled scientific processing system |
| US4777588A (en) | 1985-08-30 | 1988-10-11 | Advanced Micro Devices, Inc. | General-purpose register file optimized for intraprocedural register allocation, procedure calls, and multitasking performance |
| US4722049A (en) * | 1985-10-11 | 1988-01-26 | Unisys Corporation | Apparatus for out-of-order program execution |
| US4719569A (en) * | 1985-10-11 | 1988-01-12 | Sun Microsystems, Inc. | Arbitrator for allocating access to data processing resources |
| JPS62152043A (ja) | 1985-12-26 | 1987-07-07 | Nec Corp | 命令コ−ドアクセス制御方式 |
| EP0239081B1 (en) | 1986-03-26 | 1995-09-06 | Hitachi, Ltd. | Pipelined data processor capable of decoding and executing plural instructions in parallel |
| JP2545789B2 (ja) | 1986-04-14 | 1996-10-23 | 株式会社日立製作所 | 情報処理装置 |
| 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 |
| US4811208A (en) * | 1986-05-16 | 1989-03-07 | Intel Corporation | Stack frame cache on a microprocessor chip |
| JP2684362B2 (ja) * | 1986-06-18 | 1997-12-03 | 株式会社日立製作所 | 可変長データの記憶方式 |
| US4814978A (en) * | 1986-07-15 | 1989-03-21 | Dataflow Computer Corporation | Dataflow processing element, multiprocessor, and processes |
| JPS6324428A (ja) * | 1986-07-17 | 1988-02-01 | Mitsubishi Electric Corp | キヤツシユメモリ |
| US4766566A (en) | 1986-08-18 | 1988-08-23 | International Business Machines Corp. | Performance enhancement scheme for a RISC type VLSI processor using dual execution units for parallel instruction processing |
| JPS6393041A (ja) | 1986-10-07 | 1988-04-23 | Mitsubishi Electric Corp | 計算機 |
| JPH0793358B2 (ja) | 1986-11-10 | 1995-10-09 | 日本電気株式会社 | ブロック配置処理方式 |
| US4841453A (en) | 1986-11-10 | 1989-06-20 | Ibm Corporation | Multidirectional scan and print capability |
| JPS63131230A (ja) | 1986-11-21 | 1988-06-03 | Hitachi Ltd | 情報処理装置 |
| JPH0810430B2 (ja) | 1986-11-28 | 1996-01-31 | 株式会社日立製作所 | 情報処理装置 |
| US5283903A (en) * | 1986-12-25 | 1994-02-01 | Nec Corporation | Priority selector |
| US5226170A (en) | 1987-02-24 | 1993-07-06 | Digital Equipment Corporation | Interface between processor and special instruction processor in digital data processing system |
| US5179689A (en) * | 1987-03-13 | 1993-01-12 | Texas Instruments Incorporated | Dataprocessing device with instruction cache |
| US4833599A (en) | 1987-04-20 | 1989-05-23 | Multiflow Computer, Inc. | Hierarchical priority branch handling for parallel execution in a parallel processor |
| US4858116A (en) | 1987-05-01 | 1989-08-15 | Digital Equipment Corporation | Method and apparatus for managing multiple lock indicators in a multiprocessor computer system |
| US4811296A (en) * | 1987-05-15 | 1989-03-07 | Analog Devices, Inc. | Multi-port register file with flow-through of data |
| JPH07113903B2 (ja) * | 1987-06-26 | 1995-12-06 | 株式会社日立製作所 | キャッシュ記憶制御方式 |
| US4992938A (en) * | 1987-07-01 | 1991-02-12 | International Business Machines Corporation | Instruction control mechanism for a computing system with register renaming, map table and queues indicating available registers |
| 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 |
| US5134561A (en) | 1987-07-20 | 1992-07-28 | International Business Machines Corporation | Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries |
| US5150309A (en) | 1987-08-04 | 1992-09-22 | Texas Instruments Incorporated | Comprehensive logic circuit layout system |
| US4980817A (en) | 1987-08-31 | 1990-12-25 | Digital Equipment | Vector register system for executing plural read/write commands concurrently and independently routing data to plural read/write ports |
| US4991078A (en) * | 1987-09-29 | 1991-02-05 | Digital Equipment Corporation | Apparatus and method for a pipelined central processing unit in a data processing system |
| EP0312764A3 (en) | 1987-10-19 | 1991-04-10 | International Business Machines Corporation | A data processor having multiple execution units for processing plural classes of instructions in parallel |
| US5089951A (en) * | 1987-11-05 | 1992-02-18 | Kabushiki Kaisha Toshiba | Microcomputer incorporating memory |
| US5197136A (en) * | 1987-11-12 | 1993-03-23 | Matsushita Electric Industrial Co., Ltd. | Processing system for branch instruction |
| US4823201A (en) * | 1987-11-16 | 1989-04-18 | Technology, Inc. 64 | Processor for expanding a compressed video signal |
| US5185878A (en) * | 1988-01-20 | 1993-02-09 | Advanced Micro Device, Inc. | Programmable cache memory as well as system incorporating same and method of operating programmable cache memory |
| US4926323A (en) | 1988-03-03 | 1990-05-15 | Advanced Micro Devices, Inc. | Streamlined instruction processor |
| JPH01228865A (ja) | 1988-03-09 | 1989-09-12 | Minolta Camera Co Ltd | プリンタ制御装置 |
| US5187796A (en) * | 1988-03-29 | 1993-02-16 | Computer Motion, Inc. | Three-dimensional vector co-processor having I, J, and K register files and I, J, and K execution units |
| US5301278A (en) * | 1988-04-29 | 1994-04-05 | International Business Machines Corporation | Flexible dynamic memory controller |
| US5003462A (en) * | 1988-05-31 | 1991-03-26 | International Business Machines Corporation | Apparatus and method for implementing precise interrupts on a pipelined processor with multiple functional units with separate address translation interrupt means |
| US4897810A (en) * | 1988-06-13 | 1990-01-30 | Advanced Micro Devices, Inc. | Asynchronous interrupt status bit circuit |
| US5261057A (en) | 1988-06-30 | 1993-11-09 | Wang Laboratories, Inc. | I/O bus to system interface |
| US5097409A (en) * | 1988-06-30 | 1992-03-17 | Wang Laboratories, Inc. | Multi-processor system with cache memories |
| JP2761506B2 (ja) | 1988-07-08 | 1998-06-04 | 株式会社日立製作所 | 主記憶制御装置 |
| US5032985A (en) | 1988-07-21 | 1991-07-16 | International Business Machines Corporation | Multiprocessor system with memory fetch buffer invoked during cross-interrogation |
| US5148536A (en) | 1988-07-25 | 1992-09-15 | Digital Equipment Corporation | Pipeline having an integral cache which processes cache misses and loads data in parallel |
| US5291615A (en) * | 1988-08-11 | 1994-03-01 | Kabushiki Kaisha Toshiba | Instruction pipeline microprocessor |
| JPH0673105B2 (ja) | 1988-08-11 | 1994-09-14 | 株式会社東芝 | 命令パイプライン方式のマイクロプロセッサ |
| US4974155A (en) | 1988-08-15 | 1990-11-27 | Evans & Sutherland Computer Corp. | Variable delay branch system |
| US5101341A (en) * | 1988-08-25 | 1992-03-31 | Edgcore Technology, Inc. | Pipelined system for reducing instruction access time by accumulating predecoded instruction bits a FIFO |
| US5167035A (en) | 1988-09-08 | 1992-11-24 | Digital Equipment Corporation | Transferring messages between nodes in a network |
| DE68927218T2 (de) * | 1988-10-18 | 1997-02-06 | Hewlett Packard Co | Verfahren und Vorrichtung für Zustandskode in einem Zentralprozessor |
| JP2810068B2 (ja) | 1988-11-11 | 1998-10-15 | 株式会社日立製作所 | プロセッサシステム、コンピュータシステム及び命令処理方法 |
| JPH0769811B2 (ja) | 1988-12-21 | 1995-07-31 | 松下電器産業株式会社 | データ処理装置 |
| US5148533A (en) | 1989-01-05 | 1992-09-15 | Bull Hn Information Systems Inc. | Apparatus and method for data group coherency in a tightly coupled data processing system with plural execution and data cache units |
| US5125092A (en) | 1989-01-09 | 1992-06-23 | International Business Machines Corporation | Method and apparatus for providing multiple condition code fields to to allow pipelined instructions contention free access to separate condition codes |
| JP2736092B2 (ja) * | 1989-01-10 | 1998-04-02 | 株式会社東芝 | バッファ装置 |
| US5067069A (en) * | 1989-02-03 | 1991-11-19 | Digital Equipment Corporation | Control of multiple functional units with parallel operation in a microcoded execution unit |
| US5142634A (en) | 1989-02-03 | 1992-08-25 | Digital Equipment Corporation | Branch prediction |
| US5125083A (en) | 1989-02-03 | 1992-06-23 | Digital Equipment Corporation | Method and apparatus for resolving a variable number of potential memory access conflicts in a pipelined computer system |
| US5167026A (en) | 1989-02-03 | 1992-11-24 | Digital Equipment Corporation | Simultaneously or sequentially decoding multiple specifiers of a variable length pipeline instruction based on detection of modified value of specifier registers |
| US5142633A (en) * | 1989-02-03 | 1992-08-25 | Digital Equipment Corporation | Preprocessing implied specifiers in a pipelined processor |
| US5222223A (en) | 1989-02-03 | 1993-06-22 | Digital Equipment Corporation | Method and apparatus for ordering and queueing multiple memory requests |
| US5109495A (en) * | 1989-02-03 | 1992-04-28 | Digital Equipment Corp. | Method and apparatus using a source operand list and a source operand pointer queue between the execution unit and the instruction decoding and operand processing units of a pipelined data processor |
| US4985825A (en) * | 1989-02-03 | 1991-01-15 | Digital Equipment Corporation | System for delaying processing of memory access exceptions until the execution stage of an instruction pipeline of a virtual memory system based digital computer |
| US5133074A (en) | 1989-02-08 | 1992-07-21 | Acer Incorporated | Deadlock resolution with cache snooping |
| US5293500A (en) * | 1989-02-10 | 1994-03-08 | Mitsubishi Denki K.K. | Parallel processing method and apparatus |
| US5226166A (en) | 1989-02-10 | 1993-07-06 | Mitsubishi Denki K.K. | Parallel operation processor with second command unit |
| US5768575A (en) * | 1989-02-24 | 1998-06-16 | Advanced Micro Devices, Inc. | Semi-Autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for sepculative and out-of-order execution of complex instructions |
| US5226126A (en) * | 1989-02-24 | 1993-07-06 | Nexgen Microsystems | Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags |
| US5119485A (en) | 1989-05-15 | 1992-06-02 | Motorola, Inc. | Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation |
| US5155809A (en) * | 1989-05-17 | 1992-10-13 | International Business Machines Corp. | Uncoupling a central processing unit from its associated hardware for interaction with data handling apparatus alien to the operating system controlling said unit and hardware |
| US5072364A (en) | 1989-05-24 | 1991-12-10 | Tandem Computers Incorporated | Method and apparatus for recovering from an incorrect branch prediction in a processor that executes a family of instructions in parallel |
| CA2016068C (en) | 1989-05-24 | 2000-04-04 | Robert W. Horst | Multiple instruction issue computer architecture |
| US5136697A (en) | 1989-06-06 | 1992-08-04 | Advanced Micro Devices, Inc. | System for reducing delay for execution subsequent to correctly predicted branch instruction using fetch information stored with each block of instructions in cache |
| US5129067A (en) | 1989-06-06 | 1992-07-07 | Advanced Micro Devices, Inc. | Multiple instruction decoder for minimizing register port requirements |
| JP2550213B2 (ja) | 1989-07-07 | 1996-11-06 | 株式会社日立製作所 | 並列処理装置および並列処理方法 |
| JPH07120284B2 (ja) | 1989-09-04 | 1995-12-20 | 三菱電機株式会社 | データ処理装置 |
| US5303382A (en) * | 1989-09-21 | 1994-04-12 | Digital Equipment Corporation | Arbiter with programmable dynamic request prioritization |
| US5179530A (en) * | 1989-11-03 | 1993-01-12 | Zoran Corporation | Architecture for integrated concurrent vector signal processor |
| US5226125A (en) | 1989-11-17 | 1993-07-06 | Keith Balmer | Switch matrix having integrated crosspoint logic and method of operation |
| EP0429733B1 (en) | 1989-11-17 | 1999-04-28 | Texas Instruments Incorporated | Multiprocessor with crossbar between processors and memories |
| US5268021A (en) * | 1989-11-20 | 1993-12-07 | Dynotec Corporation | Fluid fractionator |
| US5487156A (en) * | 1989-12-15 | 1996-01-23 | Popescu; Valeri | Processor architecture having independently fetching issuing and updating operations of instructions which are sequentially assigned and stored in order fetched |
| JPH03186928A (ja) * | 1989-12-16 | 1991-08-14 | Mitsubishi Electric Corp | データ処理装置 |
| US5179673A (en) * | 1989-12-18 | 1993-01-12 | Digital Equipment Corporation | Subroutine return prediction mechanism using ring buffer and comparing predicated address with actual address to validate or flush the pipeline |
| US5197130A (en) | 1989-12-29 | 1993-03-23 | Supercomputer Systems Limited Partnership | Cluster architecture for a highly parallel scalar/vector multiprocessor system |
| US5251306A (en) * | 1990-01-16 | 1993-10-05 | Advanced Micro Devices, Inc. | Apparatus for controlling execution of a program in a computing device |
| JPH061463B2 (ja) | 1990-01-16 | 1994-01-05 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチプロセッサ・システムおよびそのプライベート・キャッシュ制御方法 |
| US5222240A (en) | 1990-02-14 | 1993-06-22 | Intel Corporation | Method and apparatus for delaying writing back the results of instructions to a processor |
| US5241636A (en) | 1990-02-14 | 1993-08-31 | Intel Corporation | Method for parallel instruction execution in a computer |
| US5230068A (en) * | 1990-02-26 | 1993-07-20 | Nexgen Microsystems | Cache memory system for dynamically altering single cache memory line as either branch target entry or pre-fetch instruction queue based upon instruction sequence |
| US5185872A (en) * | 1990-02-28 | 1993-02-09 | Intel Corporation | System for executing different cycle instructions by selectively bypassing scoreboard register and canceling the execution of conditionally issued instruction if needed resources are busy |
| US5120083A (en) * | 1990-03-19 | 1992-06-09 | Henkels & Mccoy, Inc. | Expansion joint for conduit for cables |
| JP2818249B2 (ja) | 1990-03-30 | 1998-10-30 | 株式会社東芝 | 電子計算機 |
| US5299137A (en) * | 1990-04-05 | 1994-03-29 | Vlsi Technology, Inc. | Behavioral synthesis of circuits including high impedance buffers |
| US5867399A (en) * | 1990-04-06 | 1999-02-02 | Lsi Logic Corporation | System and method for creating and validating structural description of electronic system from higher-level and behavior-oriented description |
| IT1247640B (it) | 1990-04-26 | 1994-12-28 | St Microelectronics Srl | Operazioni booleane tra due qualsiasi bit di due qualsiasi registri |
| 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 |
| US5214763A (en) * | 1990-05-10 | 1993-05-25 | International Business Machines Corporation | Digital computer system capable of processing two or more instructions in parallel and having a coche and instruction compounding mechanism |
| DE69128741T2 (de) | 1990-05-18 | 1998-07-16 | Koninkl Philips Electronics Nv | Mehrstufiger Befehlscachespeicher und Verwendungsverfahren dafür |
| US5249286A (en) | 1990-05-29 | 1993-09-28 | National Semiconductor Corporation | Selectively locking memory locations within a microprocessor's on-chip cache |
| CA2038264C (en) | 1990-06-26 | 1995-06-27 | Richard James Eickemeyer | In-memory preprocessor for a scalable compound instruction set machine processor |
| EP0463965B1 (en) * | 1990-06-29 | 1998-09-09 | Digital Equipment Corporation | Branch prediction unit for high-performance processor |
| CA2045773A1 (en) | 1990-06-29 | 1991-12-30 | Compaq Computer Corporation | Byte-compare operation for high-performance processor |
| US5155843A (en) | 1990-06-29 | 1992-10-13 | Digital Equipment Corporation | Error transition mode for multi-processor system |
| US5197132A (en) * | 1990-06-29 | 1993-03-23 | Digital Equipment Corporation | Register mapping system having a log containing sequential listing of registers that were changed in preceding cycles for precise post-branch recovery |
| EP0468831B1 (en) * | 1990-06-29 | 1997-10-15 | Digital Equipment Corporation | Bus protocol for write-back cache processor |
| JP3035324B2 (ja) | 1990-09-03 | 2000-04-24 | 日本電信電話株式会社 | 衛星スピン軸変更方法 |
| US5655096A (en) | 1990-10-12 | 1997-08-05 | Branigin; Michael H. | Method and apparatus for dynamic scheduling of instructions to ensure sequentially coherent data in a processor employing out-of-order execution |
| JP2911278B2 (ja) | 1990-11-30 | 1999-06-23 | 松下電器産業株式会社 | プロセッサ |
| US5222244A (en) | 1990-12-20 | 1993-06-22 | Intel Corporation | Method of modifying a microinstruction with operands specified by an instruction held in an alias register |
| USH1291H (en) * | 1990-12-20 | 1994-02-01 | Hinton Glenn J | Microprocessor in which multiple instructions are executed in one clock cycle by providing separate machine bus access to a register file for different types of instructions |
| US5604885A (en) * | 1991-02-01 | 1997-02-18 | Texas Instruments Incorporated | Apparatus and method enabling a computer to transfer control between two program segments that call one another but operate in different modes |
| US5303362A (en) * | 1991-03-20 | 1994-04-12 | Digital Equipment Corporation | Coupled memory multiprocessor computer system including cache coherency management protocols |
| US5261071A (en) * | 1991-03-21 | 1993-11-09 | Control Data System, Inc. | Dual pipe cache memory with out-of-order issue capability |
| US5287467A (en) * | 1991-04-18 | 1994-02-15 | International Business Machines Corporation | Pipeline for removing and concurrently executing two or more branch instructions in synchronization with other instructions executing in the execution unit |
| US5488729A (en) * | 1991-05-15 | 1996-01-30 | Ross Technology, Inc. | Central processing unit architecture with symmetric instruction scheduling to achieve multiple instruction launch and execution |
| US5355457A (en) * | 1991-05-21 | 1994-10-11 | Motorola, Inc. | Data processor for performing simultaneous instruction retirement and backtracking |
| US5630157A (en) | 1991-06-13 | 1997-05-13 | International Business Machines Corporation | Computer organization for multiple and out-of-order execution of condition code testing and setting instructions |
| US5278963A (en) * | 1991-06-21 | 1994-01-11 | International Business Machines Corporation | Pretranslation of virtual addresses prior to page crossing |
| EP0547247B1 (en) | 1991-07-08 | 2001-04-04 | Seiko Epson Corporation | Extensible risc microprocessor architecture |
| US5539911A (en) | 1991-07-08 | 1996-07-23 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution |
| US5493687A (en) | 1991-07-08 | 1996-02-20 | Seiko Epson Corporation | RISC microprocessor architecture implementing multiple typed register sets |
| US5440752A (en) * | 1991-07-08 | 1995-08-08 | Seiko Epson Corporation | Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU |
| JP3333196B2 (ja) * | 1991-07-08 | 2002-10-07 | セイコーエプソン株式会社 | トラップ処理方法 |
| US5961629A (en) | 1991-07-08 | 1999-10-05 | Seiko Epson Corporation | High performance, superscalar-based computer system with out-of-order instruction execution |
| US5826055A (en) | 1991-07-08 | 1998-10-20 | Seiko Epson Corporation | System and method for retiring instructions in a superscalar microprocessor |
| ATE164463T1 (de) * | 1991-07-08 | 1998-04-15 | Seiko Epson Corp | Single-chip seitendrucker-steuerschaltung |
| US5345569A (en) * | 1991-09-20 | 1994-09-06 | Advanced Micro Devices, Inc. | Apparatus and method for resolving dependencies among a plurality of instructions within a storage device |
| GB2260628A (en) | 1991-10-11 | 1993-04-21 | Intel Corp | Line buffer for cache memory |
| JPH0621466Y2 (ja) * | 1991-11-11 | 1994-06-08 | キャピーインターナショナル株式会社 | 担 架 |
| JPH0820949B2 (ja) * | 1991-11-26 | 1996-03-04 | 松下電器産業株式会社 | 情報処理装置 |
| US5285527A (en) * | 1991-12-11 | 1994-02-08 | Northern Telecom Limited | Predictive historical cache memory |
| US5617554A (en) | 1992-02-10 | 1997-04-01 | Intel Corporation | Physical address size selection and page size selection in an address translator |
| US5398330A (en) * | 1992-03-05 | 1995-03-14 | Seiko Epson Corporation | Register file backup queue |
| WO1993019424A1 (en) | 1992-03-18 | 1993-09-30 | Seiko Epson Corporation | System and method for supporting a multiple width memory subsystem |
| US5371684A (en) | 1992-03-31 | 1994-12-06 | Seiko Epson Corporation | Semiconductor floor plan for a register renaming circuit |
| EP0636256B1 (en) * | 1992-03-31 | 1997-06-04 | Seiko Epson Corporation | Superscalar risc processor instruction scheduling |
| US5438668A (en) * | 1992-03-31 | 1995-08-01 | Seiko Epson Corporation | System and method for extraction, alignment and decoding of CISC instructions into a nano-instruction bucket for execution by a RISC computer |
| JP3637920B2 (ja) | 1992-05-01 | 2005-04-13 | セイコーエプソン株式会社 | スーパースケーラマイクロプロセサに於て命令をリタイアさせるシステム及び方法 |
| US5491640A (en) * | 1992-05-01 | 1996-02-13 | Vlsi Technology, Inc. | Method and apparatus for synthesizing datapaths for integrated circuit design and fabrication |
| US5442756A (en) * | 1992-07-31 | 1995-08-15 | Intel Corporation | Branch prediction and resolution apparatus for a superscalar computer processor |
| US5619668A (en) * | 1992-08-10 | 1997-04-08 | Intel Corporation | Apparatus for register bypassing in a microprocessor |
| US6735685B1 (en) | 1992-09-29 | 2004-05-11 | Seiko Epson Corporation | System and method for handling load and/or store operations in a superscalar microprocessor |
| US5524225A (en) * | 1992-12-18 | 1996-06-04 | Advanced Micro Devices Inc. | Cache system and method for providing software controlled writeback |
| JP3531166B2 (ja) * | 1992-12-31 | 2004-05-24 | セイコーエプソン株式会社 | レジスタ・リネーミングのシステム及び方法 |
| US5604912A (en) * | 1992-12-31 | 1997-02-18 | Seiko Epson Corporation | System and method for assigning tags to instructions to control instruction execution |
| US5628021A (en) * | 1992-12-31 | 1997-05-06 | Seiko Epson Corporation | System and method for assigning tags to control instruction processing in a superscalar processor |
| US5627984A (en) | 1993-03-31 | 1997-05-06 | Intel Corporation | Apparatus and method for entry allocation for a buffer resource utilizing an internal two cycle pipeline |
| KR100310581B1 (ko) | 1993-05-14 | 2001-12-17 | 피터 엔. 데트킨 | 분기목표버퍼의추측기록메카니즘 |
| US5577217A (en) | 1993-05-14 | 1996-11-19 | Intel Corporation | Method and apparatus for a branch target buffer with shared branch pattern tables for associated branch predictions |
| JPH0728695A (ja) | 1993-07-08 | 1995-01-31 | Nec Corp | メモリコントローラ |
| US5613132A (en) | 1993-09-30 | 1997-03-18 | Intel Corporation | Integer and floating point register alias table within processor device |
| US5446912A (en) | 1993-09-30 | 1995-08-29 | Intel Corporation | Partial width stalls within register alias table |
| US5630149A (en) | 1993-10-18 | 1997-05-13 | Cyrix Corporation | Pipelined processor with register renaming hardware to accommodate multiple size registers |
| US5689672A (en) * | 1993-10-29 | 1997-11-18 | Advanced Micro Devices, Inc. | Pre-decoded instruction cache and method therefor particularly suitable for variable byte-length instructions |
| DE69429061T2 (de) | 1993-10-29 | 2002-07-18 | Advanced Micro Devices, Inc. | Superskalarmikroprozessoren |
| US5572704A (en) * | 1993-12-15 | 1996-11-05 | Silicon Graphics, Inc. | System and method for controlling split-level caches in a multi-processor system including data loss and deadlock prevention schemes |
| JP3218524B2 (ja) | 1993-12-22 | 2001-10-15 | 村田機械株式会社 | ワークホルダーのはみ出し検出装置 |
| US5574935A (en) | 1993-12-29 | 1996-11-12 | Intel Corporation | Superscalar processor with a multi-port reorder buffer |
| US5630075A (en) | 1993-12-30 | 1997-05-13 | Intel Corporation | Write combining buffer for sequentially addressed partial line operations originating from a single instruction |
| US5604877A (en) | 1994-01-04 | 1997-02-18 | Intel Corporation | Method and apparatus for resolving return from subroutine instructions in a computer processor |
| US5452426A (en) | 1994-01-04 | 1995-09-19 | Intel Corporation | Coordinating speculative and committed state register source data and immediate source data in a processor |
| US5627985A (en) | 1994-01-04 | 1997-05-06 | Intel Corporation | Speculative and committed resource files in an out-of-order processor |
| US5619664A (en) | 1994-01-04 | 1997-04-08 | Intel Corporation | Processor with architecture for improved pipelining of arithmetic instructions by forwarding redundant intermediate data forms |
| US5577200A (en) | 1994-02-28 | 1996-11-19 | Intel Corporation | Method and apparatus for loading and storing misaligned data on an out-of-order execution computer system |
| US5586278A (en) | 1994-03-01 | 1996-12-17 | Intel Corporation | Method and apparatus for state recovery following branch misprediction in an out-of-order microprocessor |
| US5564056A (en) | 1994-03-01 | 1996-10-08 | Intel Corporation | Method and apparatus for zero extension and bit shifting to preserve register parameters in a microprocessor utilizing register renaming |
| US5630083A (en) | 1994-03-01 | 1997-05-13 | Intel Corporation | Decoder for decoding multiple instructions in parallel |
| US5625788A (en) | 1994-03-01 | 1997-04-29 | Intel Corporation | Microprocessor with novel instruction for signaling event occurrence and for providing event handling information in response thereto |
| US5608885A (en) | 1994-03-01 | 1997-03-04 | Intel Corporation | Method for handling instructions from a branch prior to instruction decoding in a computer which executes variable-length instructions |
| US5623628A (en) | 1994-03-02 | 1997-04-22 | Intel Corporation | Computer system and method for maintaining memory consistency in a pipelined, non-blocking caching bus request queue |
| US5394351A (en) | 1994-03-11 | 1995-02-28 | Nexgen, Inc. | Optimized binary adder and comparator having an implicit constant for an input |
| US5574927A (en) | 1994-03-25 | 1996-11-12 | International Meta Systems, Inc. | RISC architecture computer configured for emulation of the instruction set of a target computer |
| US5490280A (en) | 1994-03-31 | 1996-02-06 | Intel Corporation | Apparatus and method for entry allocation for a resource buffer |
| US5615126A (en) * | 1994-08-24 | 1997-03-25 | Lsi Logic Corporation | High-speed internal interconnection technique for integrated circuits that reduces the number of signal lines through multiplexing |
| US5819101A (en) | 1994-12-02 | 1998-10-06 | Intel Corporation | Method for packing a plurality of packed data elements in response to a pack instruction |
| CN101211255B (zh) * | 1994-12-02 | 2012-07-04 | 英特尔公司 | 对复合操作数进行压缩操作的处理器、设备和计算系统 |
| US5666494A (en) | 1995-03-31 | 1997-09-09 | Samsung Electronics Co., Ltd. | Queue management mechanism which allows entries to be processed in any order |
| US6385634B1 (en) | 1995-08-31 | 2002-05-07 | Intel Corporation | Method for performing multiply-add operations on packed data |
| US5745375A (en) | 1995-09-29 | 1998-04-28 | Intel Corporation | Apparatus and method for controlling power usage |
| US5778210A (en) | 1996-01-11 | 1998-07-07 | Intel Corporation | Method and apparatus for recovering the state of a speculatively scheduled operation in a processor which cannot be executed at the speculated time |
| US5832205A (en) | 1996-08-20 | 1998-11-03 | Transmeta Corporation | Memory controller for a microprocessor for detecting a failure of speculation on the physical nature of a component being addressed |
| JP4096132B2 (ja) | 1997-07-24 | 2008-06-04 | 富士ゼロックス株式会社 | 時系列情報の特定区間決定装置、情報蓄積装置および情報蓄積再生装置 |
| US6418529B1 (en) | 1998-03-31 | 2002-07-09 | Intel Corporation | Apparatus and method for performing intra-add operation |
| JP4054638B2 (ja) | 2002-08-30 | 2008-02-27 | スミダコーポレーション株式会社 | 光ピックアップ |
| US7897110B2 (en) | 2005-12-20 | 2011-03-01 | Asml Netherlands B.V. | System and method for detecting at least one contamination species in a lithographic apparatus |
-
1994
- 1994-04-04 US US08/224,328 patent/US5628021A/en not_active Expired - Lifetime
-
1995
- 1995-04-04 WO PCT/US1995/004132 patent/WO1995027247A1/en not_active Ceased
- 1995-04-04 JP JP52591495A patent/JP3561915B2/ja not_active Expired - Lifetime
-
1997
- 1997-03-03 US US08/811,237 patent/US5896542A/en not_active Expired - Lifetime
-
1999
- 1999-02-19 US US09/252,655 patent/US6092176A/en not_active Expired - Lifetime
-
2000
- 2000-05-19 US US09/574,251 patent/US6360309B1/en not_active Expired - Fee Related
-
2002
- 2002-01-03 US US10/034,252 patent/US6757808B2/en not_active Expired - Fee Related
- 2002-08-27 JP JP2002246592A patent/JP3587261B2/ja not_active Expired - Lifetime
- 2002-08-27 JP JP2002246588A patent/JP3587257B2/ja not_active Expired - Lifetime
- 2002-08-27 JP JP2002246589A patent/JP3587258B2/ja not_active Expired - Lifetime
- 2002-08-27 JP JP2002246587A patent/JP3587256B2/ja not_active Expired - Lifetime
- 2002-08-27 JP JP2002246586A patent/JP3587255B2/ja not_active Expired - Lifetime
- 2002-08-27 JP JP2002246591A patent/JP3587260B2/ja not_active Expired - Lifetime
- 2002-08-27 JP JP2002246590A patent/JP3587259B2/ja not_active Expired - Lifetime
-
2004
- 2004-05-18 US US10/847,460 patent/US7043624B2/en not_active Expired - Fee Related
-
2006
- 2006-01-25 US US11/338,817 patent/US7430651B2/en not_active Expired - Fee Related
-
2008
- 2008-09-15 US US12/210,738 patent/US8074052B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2003076542A (ja) | 2003-03-14 |
| JP3587259B2 (ja) | 2004-11-10 |
| US7430651B2 (en) | 2008-09-30 |
| JP3587258B2 (ja) | 2004-11-10 |
| JP2003122562A (ja) | 2003-04-25 |
| JP3587256B2 (ja) | 2004-11-10 |
| JP2003076541A (ja) | 2003-03-14 |
| JP3587257B2 (ja) | 2004-11-10 |
| US20040199746A1 (en) | 2004-10-07 |
| JP2003076540A (ja) | 2003-03-14 |
| US8074052B2 (en) | 2011-12-06 |
| US20060123218A1 (en) | 2006-06-08 |
| JP3587255B2 (ja) | 2004-11-10 |
| JP2003122564A (ja) | 2003-04-25 |
| JP2003122563A (ja) | 2003-04-25 |
| US5628021A (en) | 1997-05-06 |
| US5896542A (en) | 1999-04-20 |
| US20090013158A1 (en) | 2009-01-08 |
| JP3587260B2 (ja) | 2004-11-10 |
| US20020053014A1 (en) | 2002-05-02 |
| JPH11511871A (ja) | 1999-10-12 |
| US6360309B1 (en) | 2002-03-19 |
| US7043624B2 (en) | 2006-05-09 |
| JP3587261B2 (ja) | 2004-11-10 |
| WO1995027247A1 (en) | 1995-10-12 |
| US6092176A (en) | 2000-07-18 |
| JP2003122565A (ja) | 2003-04-25 |
| US6757808B2 (en) | 2004-06-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3561915B2 (ja) | スーパースカラ型プロセサにおいて命令処理を制御するためタグを割り当てるシステム及び方法 | |
| KR100292300B1 (ko) | 레지스터재명명시스템및방법 | |
| US5604912A (en) | System and method for assigning tags to instructions to control instruction execution | |
| US6009509A (en) | Method and system for the temporary designation and utilization of a plurality of physical registers as a stack | |
| US6338134B1 (en) | Method and system in a superscalar data processing system for the efficient processing of an instruction by moving only pointers to data | |
| US6003126A (en) | Special instruction register including allocation field utilized for temporary designation of physical registers as general registers | |
| US5765017A (en) | Method and system in a data processing system for efficient management of an indication of a status of each of multiple registers | |
| JP2620519B2 (ja) | オペレーションの処理システムおよび方法 | |
| HK1025161B (en) | System and method for register renaming | |
| HK1014786B (en) | System and method for register renaming | |
| HK1039660A (en) | System and method for register renaming |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040511 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040524 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090611 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100611 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110611 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110611 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120611 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130611 Year of fee payment: 9 |
|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130611 Year of fee payment: 9 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| EXPY | Cancellation because of completion of term |