JP3637920B2 - スーパースケーラマイクロプロセサに於て命令をリタイアさせるシステム及び方法 - Google Patents
スーパースケーラマイクロプロセサに於て命令をリタイアさせるシステム及び方法 Download PDFInfo
- Publication number
- JP3637920B2 JP3637920B2 JP51912893A JP51912893A JP3637920B2 JP 3637920 B2 JP3637920 B2 JP 3637920B2 JP 51912893 A JP51912893 A JP 51912893A JP 51912893 A JP51912893 A JP 51912893A JP 3637920 B2 JP3637920 B2 JP 3637920B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- instructions
- register
- order
- execution
- 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 - Fee Related
Links
- 238000000034 method Methods 0.000 title description 20
- 239000000872 buffer Substances 0.000 claims description 66
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 238000007667 floating Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000008439 repair process Effects 0.000 description 3
- 101100511858 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) LSB1 gene Proteins 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/3013—Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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)
Description
下記のものは、所有権を同じくし、係屬中の特許申請である:
*「スパースケーラーRISC命令スケジューリング」、出願番号07/860,719、1991年3月31日に申請(Attorney Docket No.SP035);
*「高性能RISCマイクロプロセサアーキテクチャ」、出願番号07/817,810、1992年1月8日申請(Attorney Docket No.SP015)。
上記特許申請の明細書は、参考文献として本申請に含める。
発明の背景
1.発明の利用分野
本発明は一般にスーパースケーラプロセサに関するもので、特にスーパースケーラプロセサに於て順不同に実行される複数の命令をリタイアさせるシステム及び方法に関するものである。
2.関連技術
マイクロプロセサを基礎にしたシステムの性能を向上させるひとつの方法は、パイプラインと呼ばれる技術を用いて異なる命令のステップを重複させることである。パイプライン動作において、命令実行(取り出し、デコード、実行等)の多くのステップが、パイプライン・ステージと呼ばれる独立したユニットで行われる。ステップは多くのパイプライン・ステージで並列に行われるので、プロセサは一時に2つ以上の命令を取り扱うことができる。
パイプラインの結果、プロセサを基礎にしたシステムは、典型的に、クロックサイクル当り2つ以上の命令を実行することができる。この方法によって命令実行速度がクロック速度を越えることが可能になる。1クロックサイクル当り多くの独立した命令を発したり、その実行を始めるプロセサはスーパースケーラープロセサとして知られている。スーパースケーラープロセサは、1つの命令当りの平均サイクル数を通常のパイプラインシステムよりさらに減少さすことが可能である。
スーパースケーラーシステムではハードウエアは、1つのクロックサイクル中に独立した少数の命令を実行することが可能である。データ従属性、手続き従属性、又は資源に関する不一致がないかぎり1つのクロックサイクル中に複数の命令を実行することが可能である。そのような従属性又は不一致があるときには、命令列のうち最初のもののみが実行可能となる。その結果、スーパースケーラーアーキテクチャの複数の機能ユニットを十分に活用できなくなる。
スーパースケーラーアーキテクチャをより有効に用いるため、プロセサ設計者はプロセサ先読み機能を充実させてきた;それは、即時に実行可能な独立した命令を探し出すため、現実行ポイントより先の命令を検査するプロセサの機能である。例えば、もし命令従属性又は資源における不一致のため命令実行が抑止されている場合には、先読み機能を持ったプロセサは現在の命令より先を見、独立した命令を見つけ、それを実行することが可能である。
その結果、より有効なプロセサは、命令を実行する際、命令を取り出す順序より、命令を実行する順序により大きな重点を置くのである。さらにその結果、命令は順不同に実行される。
スーパースケーラープロセサに関するさらに詳しい議論には、ジョンソン(Johnson)、スーパースケーラーマイクロプロセサ設計(Superscalar Microprocessor Design)、Prentice Hall,Inc.(1991)を参照のこと。
命令の実行が中断されたり変更されたりして、その命令の実行が正しい順序で再開されなくてはならないような状況がある。そのような2つの状況を以下に述べる。
第1の状況では、多くのプロセサ設計では、先読み動作中に、現在行っている命令実行に続いてプログラムが行うだろうブランチを予測する予測方式を採用している。これらのシステムでは、先読み動作の結果として取り出され、実行される命令は、予測したコードのブランチからの命令である。選択されたブランチは正しく予測され例外は起こらないという仮定の下に命令を取り出し、発することにより高い命令処理速度が達成される。憶測命令実行として知られるこの方式は、命令実行をそれ以前の命令の完了を待たずに行うことを可能とする。言い換えれば、ブランチターゲット命令ストリームの実行が、条件付きブランチがとられるかどうかを決定する以前に開始されるのである。
ブランチの決定はときには間違いをおこすため、プロセサには、予測で実行された命令の効果をキャンセルする回復機構が必要となる。プロセサには、正しい命令列を再確立するリスタート機構もなくてはならない。
第2の状況では、順不同に完了することが例外を作ることを困難にする。例外は、命令をハードウエアのみで正しく実行できない場合にその命令によって作られる。これらの例外は、普通に割り込みによって処理され、ソフトウエアルーティーンがその状況を訂正する。一旦そのルーティーンが完了すれば、その例外が起きる以前のごとくプログラムの実行を続けるため、割り込まれたプログラムの実行をリスタートしなくてはならない。
プロセサは、プログラムを一時停止し、次に、命令実行を継続するよう記憶されている情報を持っている。この情報はプロセサの‘状態’として知られている。状態情報は特色として、プログラムカウンタ(PC)、割り込みアドレスレジスタ(IAR)、及びプログラムステータスレジスタ(PSR;program status register)を含む;PSRは、割り込み可能(interrupt enable)及び条件コード(condition codes)のようなステータスフラッグを含んでいる。
プログラムの命令が実行されるに従い、状態マシンはその命令に基づいて更新されていく。命令が停止され、しかも後でリスタートが必要なとき(即ち、上の2つの状況のうちの1つの場合)には、プロセサは実行をリスタートさせる方法に関する情報を求めるべく状態マシンに頼る。スーパースケーラープロセサでは、復元とリスタートが頻繁に行われるので、それらは高速でなされなくてはならない。
従来のいくつかのシステムでは、命令が順不同で行われるとき、マシンの状態も順不同で更新される(即ち、命令が実行されたのと同じ順序で)。したがって、プロセサが命令をリスタートするため後戻りすると、マシンの状態も、命令がもう一度開始できるような条件にマシンをするため‘後戻し’しなくてはならない。
従来のシステムを理解するためには、共通した用語を理解するのが有用である。イン−オーダ状態は、連続した一連の既に実行された命令から生じた、最新の命令結果割り当てからできている。順不同で完了しているが、それより以前の命令は完了していないような命令によって作られた割り当ては、この状態には含まれない。
ある命令が完了し、しかもそれ以前のすべての命令が完了しているときには、その命令の結果をイン−オーダ状態に記憶することが可能である。命令がイン−オーダ状態に記憶されたとき、マシンはそれより以前の命令からの結果にアクセスする必要はなく、その命令はリタイア(退役;retire)したと見做される。
先読み状態は、最初の未完了の命令から始まり、完了及び未完了のすべての未来の割り当てからできている。完了した命令及び未完了の命令があるため、先読み状態には、実際のレジスタ値のほか保留レジスタ値も含まれている。
最後に、アーキテクチャ状態は、完了した命令の連続したストリング中の一番最近に完了した割り当ておよび各レジスタへのすべての保留割り当てからできている。その後に現われ、順不同で実行される命令は、アーキテクチャ状態にアクセスし、もし命令を順序通り実行するなら、レジスタはどの状態にいるかということを決定しなくてはならない。
間違ったブランチ及び例外から回復するため従来のシステムで用いられるひとつの方法は、チェックポイント修復として知られている。チェックポイント修復では、プロセサは、いくつかの論理空間を提供するが、その内の1つのみが現命令実行に用いられる。他の論理空間は、実行における前のポイントに対応した、イン−オーダ状態のバックアップコピーを含んでいる。チェックポイントは、実行中に、現在のアーキテクチャ状態をバックアップ空間にコピーすることによって得られる。このとき、最も古いバックアップ状態は放棄される。チェックポイントは、イン−オーダ状態に達するまで、命令が実行されるごとに更新される。もし例外が発生すれば、以前のすべての命令が実行され、従ってチェックポイントがイン−オーダ状態に来ることになる。
必要なオーバヘッド量を最小限にするため、チェックポイントはすべての命令に対して行われない。例外が起きたときには、リスタートは、例外の時点に先立つチェックポイントされた状態の内容をロードし、続いて例外の時点まで順序通り命令を実行していくことによって行われる。ブランチ予測外れに対する回復に関しては、チェックポイントがすべてのブランチで行われ、命令実行を即座にリスタートできる正確な状態を含むようになっている。
チェックポイント修復の欠点は、論理空間に対し非常に大きな記憶容量を必要とすることである。この記憶のためのオーバーヘッドは、マイクロプロセサの貴重で限られた資源であるチップ面積をさらに必要とすることになる。
従来の他のシステムでは、新しい状態により無効にされた古い状態を記憶するヒストリバッファを用いている。このアーキテクチャでは、レジスタバッファはアーキテクチャ状態を含んでいる。ヒストリバッファは、ラースト−インファースト−アウト(LIFO)スタックで、先読み値によって無効にされたイン−オーダ状態の項目(即ち、新しい値により置き換えられた古い値)を含んでいる。それ故、ヒストリの名前がついている。
命令の宛先レジスタの現在値(デコードの前)はスタックに押し込まれる。スタックの底にある値は、それに付随した命令が既に完了していれば、廃棄される。例外が起これば、プロセサはデコーディングを一時中止し、他のすべての保留された命令が完了するまで待機し、レジスタファイルを適宜更新する。すべての値はついでLIFOの順にヒストリバッファからポップし、レジスタファイルに書き戻される。レジスタファイルは、例外の時点でのイン−オーダ状態にある。
ヒストリバッファ方式の欠点は、イン−オーダ状態を復元するのにいくつかのクロックサイクルが必要なことである。
従来の、さらに異なったシステムでは、例外及び予測外れの後リスタートするのに、リオーダバッファをファースト−インファースト−アウト(FIFO)待ち行列として用いている。リオーダバッファは先読み状態を含み、レジスタファイルはイン−オーダ状態を含む。これら2つは組み合わさってアーキテクチャ状態を決定することが可能である。命令がデコードされるとき、それはリオーダバッファの一番上のエントリを割り当てられる。命令が完了すると、その得られた値はその割り当てられたエントリに書き込まれる。その値がバッファの底に達したとき、もし例外がなければ、それはレジスタファイルに書き込まれる。底に達したとき命令が完了していなければ、命令が完了するまでリオーダバッファは先に進まない。例外が起きれば、リオーダバッファは廃棄され、イン−オーダ状態がアクセスされる。
この方式の欠点は、イン−オーダ及び先読み状態を組み合わせるために連想ルックアップを必要とすることである。さらに、連想ルックアップは、与えられたレジスタに対して2つ以上の割り当てがあれば、最も最近の割り当てを決定しなくてはならないため、単純明快というわけにはいかない。
このことにより、リオーダバッファは、より簡単な循環的にアドレスされるレジスタアレーではなく、真のFIFOとして実現されなくてはならない。
IEEE MICRO vol.11,No.3,ページ10−13及び63−73から、スーパースケーラマイクロプロセサアーキテクチャは、順序不同に実行された命令を取り扱うことができることで知られている。それらの命令の結果をレジスタファイルに格納する前に、それらの結果は、レジスタファイルに書き込む前にある期間一次的に格納される。これはリタイアフェイズと呼ばれる。それより古いどの命令も割り込みを発生しないことが分かるまでリタイアを遅らすことがレジスタファイルを整合性のあるものにする。
したがって、我々が必要とするものは、マシンの現状態を維持し、順不同に実行された命令の結果に基づいてシステムレジスタを更新するシステムと方法である。このシステムと方法は最小限のチップ面積と電力を用いるもので、例外の時点までマシンの状態を素早く回復することを可能にするものでなくてはならない。さらに、システムは、レジスタの最も最近の値を得るため、連想ルックアップの複雑なステップを必要とすべきではない。
発明の概要
本発明は、スーパースケーラマイクロプロセサシステムで順不同に発せられた命令をリタイアさせるシステム及び方法である。本発明の方式によれば、順不同に実行された命令の結果は、それ以前の命令がすべて実行されるまで臨時バッファに記憶される。それ以前の命令がすべて実行され、それらの結果が順序通りレジスタアレーに記憶されると、当命令の結果がレジスタアレーに書き込まれ、その命令はリタイアしたと見做される。
レジスタアレーにはマシンの現状態が含まれている。レジスタアレーのデータの完全性を維持するため、ある命令より以前のすべての命令の結果がデータアレーに書き込まれるまでその命令の結果は書き込まれない。このようにして、マシンの状態は順序通り更新され、例外及びブランチの予測外れのような状況は素早くしかも効率的に処理される。
本発明は、命令の結果を一時記憶場所に割り当て書き込む手段、レジスタアレーが順序通りに更新されるよう一時記憶域からレジスタアレーに転送する手段、及び次の動作のためレジスタアレー及び臨時記憶域の結果にアクセスする手段を含む。
さらに、本発明の他の特徴及び利点、並びに本発明の種々の実施例の構造及び動作に関して、以下図面を参照しながら詳しく説明する。
【図面の簡単な説明】
第1図はスーパースケーラ命令実行ユニットのデータパスダイアグラムである。
第2図はスーパースケーラ命令実行ユニットの機能を示すブロックダイアグラムである。
第3図は命令FIFO及び命令ウインドーを示すダイアグラムである。
第4図は本発明による命令リタイアを示すダイアグラムである。
第5A図は命令ウインドーの構成を示す。
第5B図は、本発明による一時バッファの記憶場所への命令結果の割り当てを示すダイアグラムである。
第6A図は、本発明によるデータアレーへのデータ書き込みを示すタイミングダイアグラムである。
第6B図は、本発明によるクロックサイクル毎の4つのレジスタ場所への結果の書き込みを示すタイミングダイアグラムである。
図において、同一の要素又は同様の機能を持つ要素は同じ数で表す。さらに、番号の一番左の数字は、その番号が最初に出てくる図面の番号を表す。
詳細な説明
1.概要
本発明は、プログラムに対しては命令が元のプログラムの順序通り順番に実行されているようにみえるように、完了した命令をリタイアさせるシステム及び方法を提供する。本発明の方式は、順不同の命令の結果(プログラムの順序通り実行されていない命令の結果)をすべて、それ以前のすべての命令が例外なく完了するまで、一時バッファに記憶することである。その後その結果は一時バッファから、公式な状態を表すレジスタアレーに転送される。
命令がリタイアするときには、それ以前のすべての命令は既に完了しており、リタイアする命令はその時点で正式に完了する。本発明の方式によって命令がリタイアするときには、マシンの状態は順序通り更新される。それ故、例外が起きると、順不同の実行は一時中止され、その例外より以前の未完了のすべての命令が実行されリタイアする。したがって、マシンの状態は、例外が起きた時点までアップデイトされる。例外が完了すると、例外の時点から順不同の実行が再開される。ブランチの予測外れが見つかると、そのブランチ以前のすべての命令が実行されリタイアする。マシンの状態は現状態を表し、マシンはその点からリスタートすることが可能である。不適切なブランチの命令から得た、一時バッファにあるすべての結果は無視される。正しいブランチからの新しい命令が実行されるに従い、それらの結果は、思惑的に実行した命令ストリームから得られたすべての結果をオーバライトして、一時バッファに書き込まれる。
2.環境
第1図は、順不同命令を発することが可能な、スーパースケーラ命令実行ユニット(IEU;Instruction Execution Unit)のブロックダイアグラムである。第1図において、汎用レジスタを持ち、多重ポートを持つ2つのレジスタファイル102A、102Bがある。各レジスタファイル102は、5つの読み込みポート及び2つの書き込みポートを提供する。書き込みポートのそれぞれはサイクル当り2つの書き込みが可能である。一般的に、レジスタファイル102Aは整数データのみを保持するが、レジスタファイル102Bはフローティングポイント及び整数データの双方を保持する。
機能ユニット104はプロセス機能を行うためである。この例では、機能ユニット104は3つの算術論理演算ユニット(ALU)104A、1つのシフタ104B、フローティングポイントALU104C、及びフローティングポイント乗算器104Dである。フローティングポイントALU104C及びフローティングポイント乗算器104Dは、整数演算及びフローティングポイント演算の双方を実行することが可能である。
バイパスマルチプレクサ106は、どの機能ユニット104の出力もどの機能ユニット104の入力として用いられることを可能にする。この方式は、あるクロックサイクルで実行された命令の結果が、次のクロックサイクルで他の命令の実行に必要なときに用いられる。バイパスマルチプレクサ106を用いて、必要な結果を適切な機能ユニット104に直接入力することが可能となる。それらの結果を必要とする命令を同一クロックサイクルに発することができる。バイパスマルチプレクサ106がなければ、実行された命令の結果は、あるクロックサイクルで、レジスタファイル102に書き込まれ、そして次のクロックサイクルで機能ユニット104に出力されなければならない。このように、バイパスマルチプレクサ106がなければ、1つの完全なクロックサイクルが失われることになる。この方式は、フォアオーディングとしても知られているが、この分野で周知で、ヘネシー(Hennessy)等のコンピュータアーキテクチャ定量的方法(Computer Architecture a Quantitative Approach)、Morgan Kaufmann Publishers(1990)ページ260−262に詳しく述べられている。
選択マルチプレクサ108は機能ユニット104からレジスタファイル102に書き込む結果を選択する手段を与える。
第2図は、第1図に示されたIEU用のIEU制御ロジック200のブロックダイアグラムを示す。IEU制御ロジック200は命令ウインドウ202を含んでいる。命令ウインドウ202は、IEU制御ロジック200が1クロックサイクル中に発する可能性のある命令を定義している。命令ウインドウ202は、命令バッファの底の2つの場所を表しているが、それは実行すべき命令を含んだFIFOレジスタである。この命令バッファは、命令FIFOとも呼ばれる。命令が完了すると、それらは底から放出され、新しい命令が上から落とされる。命令ウインドウ202の底の場所はバケツ0と呼ばれ、命令ウインドウ202の上部の場所はバケツ1と呼ばれる。
バケツ0の4つの命令がすべてリタイアしてしまうと、それらはバケツ0から放出され、バケツ1の命令がバケツ0に落ち、4つの命令からなる新しいグループがバケツ1に入る。命令ウインドウ202は、多くの方法で実現できる。そのひとつの方法は、所有権を同じくし、係屬中の特許申請である「スパースケーラーRISC命令スケジューリング」(出願番号07/860,719;Attorney Docket No..SP035/1397.0170000、1992年3月31日申請)に詳しく述べられている。上記特許申請の明細書は、参考文献として本申請に含める。
本件の例では命令ウインドウ202は8つの命令を含んでいる。それ故、IEU制御ロジック200は、各クロックサイクルの間にそれら8つの中からできるだけ多くの数の命令を発しようとする。命令デコーディングはデコーダ203で行われる。命令デコーディングは、IEU制御ロジック200で中断なく継続して行われるプロセスである。命令は、従属性チェック(以下で述べる)並びその命令の発行及び実行の前にデコードされなくてはならない。
このように、命令をバッファリングし、バッファリングした命令をデコードする構成をとっており、デコードの前段にバッファがあるため処理の高速化が可能となる、コード化された信号の段階でのバッファリングのためバッファ構成をコンパクトにできることが可能となる等、マイクロプロセッサとして大きなメリットがある。
IEU制御ロジック200は、互いに関係し合う2つの機能を行うレジスタリネーミング回路204(RRC;register renaming circuitry)も含んでいる。第1の機能はデータ従属性チェックである。データ従属性チェックが完了すると、RRC204は、命令オペランドと結果の場所を記録するのに用いるタグを各命令に付ける。
RRC204の中にあるデータ従属性チェックロジックは、命令の従属性のチェックに用いられる。従属性をチェックするのに、データ従属性チェックロジックは、次の命令を実行する前に、ひとつまたはそれ以上のそれ以前の命令を実行しなくてはならないかどうかを決めるため、多くのレジスタファイルソース及び宛先アドレスを見る。さらに第3図は命令ウインドウ202及び命令FIFOを示す。第3図を参照して、命令I0の多くのレジスタファイルソース及び宛先アドレス302が他の命令のソース及び宛先アドレスに対してチェックされなくてはならない。
第2図に戻って、この例の命令ウインドウ202は8つの命令を含むことができるため、IEUは、スケジュールの目的で8つの命令を見ることができる。ソースレジスタアドレスのすべてをそれより以前の宛先アドレスと比べなくてはならない。もしある命令が、それ以前の命令の完了に従属していれば、これら2つの命令を順不同で行うことはできない。言い換えると、もし命令I2が命令I1の結果を必要とするなら、従属性が存在し、I1はI2の前に実行されなくてはならない。命令がロングワードの命令である場合には、従属性チェックの際特別の注意を要する。ロングワードの命令は2つのレジスタを占めるが、その命令の従属性をチェックする際には、その2つのレジスタ双方ともチェックしなくてはならない。
RRC204で行われるもうひとつの機能はタグ割り当てである。適切なタグ割り当ては、本発明の効果的な命令リタイアには極めて重要である。命令ウインドウ202のそれぞれの命令は、命令ウインドウ202中のその命令の位置及び上述したデータ従属性チェックの結果に基づいてタグが割り当てられる。各命令に割り当てられたタグは、その命令がリタイアするまでその命令の結果が一時バッファのどこに記憶されているかということ、及び、その命令が従属するすべてのそれ以前の命令が完了したかどうかを示している。タグ割り当て及び一時バッファについては以下に詳しく述べる。
IEU制御ロジック200が行う他の機能は、どの命令を発行してもよいかを決定することである。命令発行器208は、適切な機能ユニット104に命令を発し実行させる。RRC204内の回路は、命令ウインドウ202中のどの命令が命令発行ができる状態にあるかを決定し、命令発行器208にビットマップを送り、どの命令が命令発行のできる状態にあるかを示す。
命令デコードロジック203は、各命令に対する資源に関する要求事項を示している。発行器208も機能ユニット104から資源の入手可能性に関する情報を得る。この情報は発行器208によりスキャンされ、発行する命令が選択される。
命令発行器208は、マルチプレクサ210に制御信号209を出力し、機能ユニット104にどの命令を送るべきかを伝える。命令発行器208は、さらに制御信号211をマルチプレクサ212に送り、それが、その命令の結果を受け取るレジスタを構成するための適切なレジスタアドレスをそのレジスタに送れるよう、そのマルチプレクサを構成する。機能ユニット104の状況によって、命令発行器208は、一つのクロックサイクルに複数の命令を発してもよい。
再び第1図、第2図に戻って、一旦命令が機能ユニット104に発行され、それによって実行されれば、レジスタファイル102A及び102Bはマシンの現状態を反映するよう更新されなくてはならない。例外又はブランチの予測外れのためマシンが‘後退し’実行をリスタートしなければならないときには、マシンの状態は、例外又はブランチの予測外れが起きたときの最新の状態を反映しなくてはならない。命令が、順不同で発せられ実行されたとしても、マシンの状態は、例外又はブランチングが起きたときの現状態を反映するか、それに戻れるかしなくてはならない。
本発明の命令リタイアメントユニット(IRU)は、命令があたかも順序通りに実行されたかのようにリタイアさせる。このように、マシンの状態は、順序通りに、完了した一連の命令中最も最近の命令の時点に更新される。
本発明は、例外又はブランチ予測外れのためリスタートが必要なとき、その時点までの現状態が、順不同の命令実行の効果を相殺するようレジスタファイルが再構築されるのを待つことなく回復可能になるよう、命令をリタイアさせ、マシンの状態を更新するユニークなシステムと方法を提供する。
3.実現法
第4図は命令リタイアメントユニット400(IRU400と呼ぶ)の高水準ダイアグラムを示す。IRU400及びその機能は主にレジスタファイル102及びリタイアメント制御ブロック409(RCB;retirement control block)に含まれている。第4図に示すごとく、環境によって行われる機能も、適切な命令リタイアに極めて重要である。
第4図を参照して、IRU400の動作を説明する。この出願のサブセクション2で述べたように、スーパースケーラープロセサの環境で実行される命令は順不同で実行され、そのような順不同に得られた結果はそれより以前のすべての命令の結果が順序通りに書き込まれるまでレジスタに書き込まれない。レジスタアレー404はマシンの順序通りの状態を表す。例外なしに完了したすべての命令で、しかもそれより以前の不完了の命令がないものの結果はレジスタアレー404に記憶される。いったん結果がレジスターアレイ404に記憶されると、それらの結果に対し責任のある命令は“リタイアされた”とみなされる。
もし命令が順不同で完了し、しかもそれ以前の命令で完了していないものがあれば、その命令の結果は一時バッファ403に一時的に記憶される。考慮中の命令より以前のすべての命令が実行され、それらの結果がレジスタアレー404に転送されてしまえば、その命令はリタイアすることができ、その結果は一時バッファ403よりレジスタアレー404に転送される。これがなされれば、命令はリタイアしたと見做される。即ち、リタイアできる命令は、次の2つの条件が満足されるものである:(1)命令が完了している、(2)プログラムの順序でそれより以前に出てくる命令で実行されてないものがない。
もし実行された命令の結果がその後の命令に必要なときには、これらの結果は、それらが一時バッファ403にあろうが、レジスタアレー404にあろうが、適切な機能ユニット104で得られることができる。
第1、2および4図を参照して、IRU400をより詳しく説明する。レジスタファイル102は、一時バッファ403、レジスタアレー404及び選択ロジック408を含んでいる。2つの入力ポート110があり、それらは、結果を一時バッファ403及びレジスタアレー404に転送するのに用いられる。IEU制御ロジック200で生成された制御信号(ここに示されていない)は、選択マルチプレクサ108にある結果を、それらがレジスタファイル102に記憶される準備ができたとき、選択するのに用いられる。選択マルチプレクサ108はデータを多くの機能ユニットから入力し、このデータを入力ポート110上で多重化する。
本実施例の各レジスタファイル102への2つの入力ポート110は、同時に2つのレジスタ動作を行うことを可能にする。したがって、入力ポート110は、一時バッファ403に書き込まれるべき、2つの全レジスタ幅のデータ値を入力する。これは、1つのクロックサイクルで複数のレジスタの場所に書き込むことを可能にする。1つのクロックサイクルで複数のレジスタのアドレス場所に書き込む方法に関して以下に説明する。
第5A及び5B図は一時バッファ403の割り当てを示す。第5A図は命令ウインドウ202の構成を示し、第5B図は、一時バッファ403のデータ結果の順序づけの例を示す。前に述べたように、いつの時点でも最大8つの待機中の命令がある。各命令は、それが通常の長さかロングワードかによって、一時バッファ403の8つのレジスタ位置0−7の中ひとつまたは2つが必要である。
命令ウインドウ202にある8つの待機中の命令は4つのペアにグループ化される。バケツ0及び1の第1の命令(即ちI0及びI4)は第1のペアである。I1及びI5等の他のペアも同様にして作られる。I0の結果(I0RD)はレジスタ位置0に記憶され、I4の結果(I4RD)はレジスタ位置1に記憶される。もしI0がロングワードのエントリなら、ローワードの結果(ロングワードの命令の前半の結果)のI0RDは、前と同じく位置0に記憶されるが、ハイワードの結果(I0RD+1、命令の後半の結果)は位置1に記憶される。これは、I4のローワードの結果は、一時メモリ403にスペースがないことを意味しており、したがって、この時点ではこの命令は発行されない。
タグはRRC204で生成され各命令に割り当てられる。それぞれのタグは、例えば、3ビットを持ち、命令の結果を一時バッファ403に書き込むアドレスを示す。これら3ビットは、命令ウインドー202にある命令の位置によって割り当てられる。表1はこれら3つのタグビットに対する代表的な割り当てを示している。
命令ウインドー202の各位置は、一時バッファ403に対応した位置をもつ。最下位のビットは、命令ウインドー202のその命令が出てきたバケツを示している。このビットは、命令が入っているバケツが変われば、異なって解釈される。例えば、バケツ0の4つのすべての命令がリタイアすると、バケツ1の命令がバケツ0に落ちる。これが起きるとタグのLSB(最下位ビット)は前にはバケツ1を示していたのが、今はバケツ0を示すことになる。例えば表1で、LSB1はバケツ1の命令を表している。これらの命令がバケツ0に落ちると、そのLSBは変化せず、LSB1はバケツ0を意味するようになる。タグは各命令をどう処理するかということに関する情報を持っている。
命令が実行されその結果が機能ユニットから出力されると、タグもそれに従う。各命令に付いたタグの3ビットは、その命令の結果が記憶されるレジスタの位置をただひとつ決定する。この概念について以下に詳しく述べる。一時書き込みブロック(ここには示されていない)は、機能ユニット104、命令の結果及びタグを見る。各機能ユニット104には1ビットがあり、それは結果が次のクロックサイクルでその機能ユニットから出力されるかどうかを表している。一時書き込みブロックは、次のクロックサイクルで得られるそれぞれの結果のタグを得る。一時書き込みブロックは、今から来る結果が一時バッファ403に記憶されるアドレス(タグに基ずいて)を生成する。一時書き込みブロックは、その結果が機能ユニット104で準備できる次のクロックサイクルでRRC204をへて一時バッファ403をアドレスする。
タグの第2の機能は、ある機能ユニット104の結果を機能ユニット104のオペランド入力に直接転送できないかどうかをチェックすることである。これは、機能ユニット104が即座にレジスタ値を必要とするときに起きる。結果はレジスタアレー404又は一時バッファ403にも記憶することができる。
それに加えて、タグはIEUに、すぐ次のクロックサイクルに実行する命令に即座に用いられるよう、いつそれらの結果をバイパスマルチプレクサ106に直接返すかを示す。命令の結果は、バイパスマルチプレクサ106若しくはレジスタファイル102の一方か、又はその両者に送られてもよい。
順不同に実行されたすべての命令の結果は、まず一時バッファ403に記憶される。上述したように一時バッファ403には8つの記憶場所がある。この数は命令ウインドー202のサイズに対応している。上で議論した例において、命令ウインドー202には8つの場所があり、したがって最高8つまでの保留命令が存在する。その結果、最高8つまでの命令結果を一時バッファ403に記憶する必要があるかもしれない。
もし命令が順序通り完了すれば、即ち、それ以前のすべての命令が既に完了し、その結果がレジスタアレー404に書き込まれていれば、その命令の結果も直接レジスタアレー404に書き込むことができる。RCB409は結果がレジスタアレー404に直接行くことができるかどうかを知っている。この状況では、RCB409は、レジスタアレー404に対して書き込み動作を可能にする外部書き込みビットをセットする。この実施例においては、この状態での結果はまだ一時バッファ403に書き込まれることに注意。これは簡単さのために行われる。
一時バッファ403の各命令結果に対して、それ以前のすべての命令が例外又はブランチ予想外れがなく完了しているとき、その結果は一時バッファ403から選択ロジック408を経てレジスタアレー404に転送される。もし命令が順不同で完了しているがそれ以前の命令がすべては完了していないときには、その命令の結果は、それ以前のすべての命令が完了するまで一時バッファ403に留まる。1つ又はそれ以上の命令が完了しており、それらは皆プログラムの順序中でそれより以前の命令の完了を待っている場合には、それらの命令はリタイアできない。しかし、それ以前の命令が完了すれば、その全グループがリタイア可能になりリタイアされる。
完了ブロック420はプロセサのもうひとつの状態マシンである。完了ブロック420は、どの命令が完了したかの記録を取り、これらの命令にダンフラッグを用い‘ダン’のマークを付ける。完了ブロックはリタイア制御ブロック409にどの命令が済んだかを知らせる。リタイア制御回路を持つリタイア制御ブロック409は、ダンフラッグをチェックし、各保留命令のそれ以前のすべての命令が完了しているかどうかを見る。リタイア制御ブロック409が保留命令より前の(プログラムの順序で)すべての命令が完了したという報告を受けると、リタイア制御ブロック409はその保留命令がリタイア可能と決定する。
第6A図はレジスタアレー404への書き込みを表すタイミングダイアグラムで、第6B図は一時バッファ403からレジスタアレー404へのデータの転送を示すタイミングダイアグラムである。第4、6A及び6B図を参照してレジスタアレー404への書き込み方法を述べる。
一時バッファ403にはレジスタアレー404へデータを転送するのに用いる出力ポートF、G、H、およびIがある。レジスタアレー404には、一時バッファ403又は機能ユニット104からの命令結果を入力する入力ポートA'及びB'がある。書き込み可能信号602および604は、603で示されるように、それぞれ一時バッファ403およびレジスタアレー404への書き込みを可能にする。書かれてはいないが、レジスタアレー404に対して実際には2つの書き込み可能信号604がある。これら書き込み可能信号604の1つは、入力ポートA'への書き込みを可能にするもので、他のものは入力ポートB'への書き込みを可能にするものである。2つの入力ポートA'及びB'があるため、レジスタアレー404への2つの書き込みを同時に行うことが可能である。
レジスタアレー404へ書き込まれるデータは、一時バッファ403または機能ユニット104(選択マルチプレクサ108及びバス411を通して)のいずれかより入力される。制御信号606は、転送ロジック408でデータを選択するのに用いられる。制御信号606が、例えば、論理ハイのときには、データは一時バッファ403より選択される。信号410は書き込みアドレスで、一時バッファ403又はレジスタアレー404のいずれかにデータが書き込まれる場所を決定する。データ信号608は、一時バッファ403からレジスタアレー404へ転送されるデータを表している。あるいは、データ信号608は、機能ユニット104から選択マルチプレクサ108を経て送られるデータ110を表している。
レジスタアレー404は、1つのクロックサイクルで4つの場所に書き込みを行うことが可能である。アドレス信号410及び書き込み可能信号604が最初アサートされ、その後データ608及び制御信号606がアサートされる。制御信号606は605で示されているようにアサートされる。サイクルの前半で命令I0及びI1に対応するレジスタが更新される。サイクルの後半で命令I2及びI3に対応するレジスタが更新される。もし結果のどれかがロングワードなら、ワードの上半分は第2のサイクルに更新される。従って、2つの結果が同時に転送され、2つの命令がクロックサイクルの半サイクルで同時にリタイア可能となる。
第6B図を参照して、読み出しアドレス612F、612G、612H及び612Iが一時バッファ403の出力ポートF−−Iに対して得られる。データ614F、614G、614H及び614Iが一時バッファ403から615で示されるようにクロックサイクルの先頭で得られる。アドレス410Aは入力ポートA'に対して生成され、アドレス410Bは入力ポートB'に対して生成される。同様に、入力ポートA'に対する書き込み可能信号604A及び入力ポートB'に対する書き込み可能信号604Bはクロックサイクルの半分毎に生成される。611A及び611Bで示されるように、クロックサイクルの前半に現われるアドレス410は、605A及び605Bで示されるように、前半に現われる動作可能信号604の間にデータが書き込まれる場所である。同様に、データは後半のクロックサイクルに613A及び613Bで示されているように、そのときに現われているアドレス410に書き込まれる。データはA'及びB'に同時に書き込まれるので、1クロックサイクルに最大4つの命令結果をレジスタアレー404に書き込むことが可能である。したがって、1クロックサイクルに最大4つの命令がリタイア可能である。
制御ロジック408のラッチは、適切なアドレス410が出、書き込み可能信号604がデータ書き込みを許可するまでデータを一定に保持する。
一時バッファ403からレジスタアレー404へ結果を転送するプロセスを、上述したように、リタイアと呼ぶ。命令がリタイアすると、それは正式に完了したと見做される。その命令より前のすべての命令はブランチ予測外れや例外なく完了し、マシンの状態はそれより前の時点に決定し直さなくてよい。その結果プロセサで走っているプログラムにとっては、命令は順番に更新され実行されているように見える。
命令は順不同に発せられ実行されるので、後に続く命令がレジスタアレー404に記憶されている値を始め一時バッファ403にあるレジスタ値にアクセスする必要がある場合がある。
一時バッファ403及びレジスタアレー404への読み出しアクセスはレジスタリネーミング回路RRC204によって制御されている。そのような読み出しアクセスは、前に実行された命令の結果を命令実行に必要とするような命令にとって必要となる。上のサブセクション2の議論でRRC204がデータ従属性チェックをすることを述べた。RRC204はどの命令がどの命令に従属し、その命令が完了したかを知っている。RRC204はある命令に必要な結果がそれ以前の命令で生成されなくてはならないかどうか、即ち、従属性が存在するかどうかを決定する。もし従属性が存在するときには、前の命令を先に実行しなくてはならない。しかし、従属性が存在するときには、もうひとつのステップが必要となる。このステップは命令の結果がどこにあるかを決定する。RRC204はどの命令が完了したかを知っているので、それはそれらの命令の結果が一時バッファ403にあるのか又はレジスタアレー404にあるのかも知っている。
RRC204は、一時バッファ403及びレジスタアレー404へポート読み出しアドレス410を出力し、データを正しい場所から出力ライン412に読み出す。読み出しアドレス410の1ビットは,その場所が一時バッファ403にあるか又はレジスタアレー404にあるかを示す。
本発明の実施例では、一時バッファ403及びレジスタアレー404の出力ポートA−−Eの各々はそれ自身のアドレスラインを持っている。即ち、どの記憶場所からもすべてのポートに出力できる。
4.本発明の追加的特徴
IRU200は他のユニットにもいつ命令がリタイアするかを通知する。IRU200は、命令取り出しユニット(IFU;instruction fetch unit)にいつIRUがプロセサの状態を変更したかを通知する。このようにして、IFUはIFU100と一貫性を維持することができる。IFUに送られる状態情報は、プログラムカウンタを更新しIFUからさらに命令を要求するのに必要な情報である。上の例では、4つの命令がリタイアするとき、IFUはPCを4だけ進め、4つの命令のバケツをもうひとつ取り出すことが可能である。
IFUの例は、所有権を同じくし、係屬中の特許申請で、出願番号07/817,810、「高性能RISCマイクロプロセサアーキテクチャ」に示されている。
さらに、本発明の実施例によると、状況ビットおよび条件コードも順序通りにリタイアする。命令ウインドー202の8つの命令はそれぞれ状況ビットおよび条件コードの自分自身のコピーを持っている。もし命令が状況ビットのどれにも影響しなければ、それは前の命令からの状況ビットを伝搬させる。
命令がリタイアする時、その状況ビットのすべてが正式に更新されなければならない。1サイクル中に2つ以上の命令がリタイアするときには、最も最近の(順序どおりで)命令の状況ビットを更新用に用いる。
5.結論
本発明の多くの実施例について上に述べたが、それらは例として挙げられたものであり、限度を示すためのものではない。従って、本発明の精神と範囲は、上述したいかなる典型的な実施例もその限界を与えるものではなく、以下の特許請求範囲及びそれと同等のものに従ってのみ規定される。
Claims (2)
- 1以上の命令をプログラム順序不同に実行 可能なスーパースケーラーマイクロプロセッサであっ て、
プログラム順序不同に実行された命令の実行結果を格納 するバッファと、
前記バッファにおける、命令の実行結果が格納される位 置を示す情報を含むタグを命令に対して一義的に割り当 てるレジスタリネーム部と、
命令の実行結果をプログラム順序で格納するレジスタア レイと、
実行結果が前記バッファに格納されている1または複数 の命令がリタイア可能であるか否かを判定し、リタイア 可能な場合には、前記タグを用いてリタイア可能な命令 を同時にリタイアさせる命令リタイア制御部と
を備えるスーパースケーラーマイクロプロセッサ。 - 請求項1に記載のスーパースケーラマイク ロプロセッサにおいて、
前記命令リタイア制御部は、前記タグを参照して、保留 中の命令の実行が完了していると共に、プログラム順序 において保留中の命令よりも先の全ての命令の実行が完 了している場合に、前記バッファに実行結果が格納され ている1または複数の命令がリタイア可能であると判定 する、スーパースケーラマイクロプロセッサ。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US87745192A | 1992-05-01 | 1992-05-01 | |
US877,451 | 1992-05-01 | ||
PCT/JP1993/000553 WO1993022722A1 (en) | 1992-05-01 | 1993-04-27 | A system and method for retiring instructions in a superscalar microprocessor |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004006069A Division JP3675466B2 (ja) | 1992-05-01 | 2004-01-13 | スーパースケーラマイクロプロセサ |
JP2004343857A Division JP3788470B2 (ja) | 1992-05-01 | 2004-11-29 | スーパースケーラマイクロプロセサに於て命令をリタイアさせるシステム及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07506445A JPH07506445A (ja) | 1995-07-13 |
JP3637920B2 true JP3637920B2 (ja) | 2005-04-13 |
Family
ID=25369990
Family Applications (11)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP51912893A Expired - Fee Related JP3637920B2 (ja) | 1992-05-01 | 1993-04-27 | スーパースケーラマイクロプロセサに於て命令をリタイアさせるシステム及び方法 |
JP2004006069A Expired - Lifetime JP3675466B2 (ja) | 1992-05-01 | 2004-01-13 | スーパースケーラマイクロプロセサ |
JP2004343857A Expired - Fee Related JP3788470B2 (ja) | 1992-05-01 | 2004-11-29 | スーパースケーラマイクロプロセサに於て命令をリタイアさせるシステム及び方法 |
JP2004381020A Expired - Fee Related JP3788472B2 (ja) | 1992-05-01 | 2004-12-28 | スーパースケーラマイクロプロセサに於て命令をリタイアさせるシステム及び方法 |
JP2005019696A Expired - Lifetime JP3832487B2 (ja) | 1992-05-01 | 2005-01-27 | スーパースケーラマイクロプロセサに於て命令をリタイアさせるシステム及び方法 |
JP2005062265A Expired - Lifetime JP3781051B2 (ja) | 1992-05-01 | 2005-03-07 | スーパースケーラマイクロプロセサ |
JP2005109631A Expired - Lifetime JP3824006B2 (ja) | 1992-05-01 | 2005-04-06 | スーパースケーラマイクロプロセサ |
JP2005134892A Expired - Lifetime JP3818315B2 (ja) | 1992-05-01 | 2005-05-06 | スーパースケーラマイクロプロセサ |
JP2005165024A Expired - Lifetime JP3781052B2 (ja) | 1992-05-01 | 2005-06-06 | スーパースケーラマイクロプロセサ |
JP2006034741A Expired - Lifetime JP3858939B2 (ja) | 1992-05-01 | 2006-02-13 | スーパースケーラマイクロプロセサに於て命令をリタイアさせるシステム及び方法 |
JP2006112998A Expired - Fee Related JP3870973B2 (ja) | 1992-05-01 | 2006-04-17 | スーパースケーラマイクロプロセサ |
Family Applications After (10)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004006069A Expired - Lifetime JP3675466B2 (ja) | 1992-05-01 | 2004-01-13 | スーパースケーラマイクロプロセサ |
JP2004343857A Expired - Fee Related JP3788470B2 (ja) | 1992-05-01 | 2004-11-29 | スーパースケーラマイクロプロセサに於て命令をリタイアさせるシステム及び方法 |
JP2004381020A Expired - Fee Related JP3788472B2 (ja) | 1992-05-01 | 2004-12-28 | スーパースケーラマイクロプロセサに於て命令をリタイアさせるシステム及び方法 |
JP2005019696A Expired - Lifetime JP3832487B2 (ja) | 1992-05-01 | 2005-01-27 | スーパースケーラマイクロプロセサに於て命令をリタイアさせるシステム及び方法 |
JP2005062265A Expired - Lifetime JP3781051B2 (ja) | 1992-05-01 | 2005-03-07 | スーパースケーラマイクロプロセサ |
JP2005109631A Expired - Lifetime JP3824006B2 (ja) | 1992-05-01 | 2005-04-06 | スーパースケーラマイクロプロセサ |
JP2005134892A Expired - Lifetime JP3818315B2 (ja) | 1992-05-01 | 2005-05-06 | スーパースケーラマイクロプロセサ |
JP2005165024A Expired - Lifetime JP3781052B2 (ja) | 1992-05-01 | 2005-06-06 | スーパースケーラマイクロプロセサ |
JP2006034741A Expired - Lifetime JP3858939B2 (ja) | 1992-05-01 | 2006-02-13 | スーパースケーラマイクロプロセサに於て命令をリタイアさせるシステム及び方法 |
JP2006112998A Expired - Fee Related JP3870973B2 (ja) | 1992-05-01 | 2006-04-17 | スーパースケーラマイクロプロセサ |
Country Status (6)
Country | Link |
---|---|
US (8) | US6131157A (ja) |
EP (1) | EP0638183B1 (ja) |
JP (11) | JP3637920B2 (ja) |
KR (2) | KR950701437A (ja) |
DE (1) | DE69308548T2 (ja) |
WO (1) | WO1993022722A1 (ja) |
Families Citing this family (77)
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 |
DE69311330T2 (de) | 1992-03-31 | 1997-09-25 | Seiko Epson Corp., Tokio/Tokyo | Befehlsablauffolgeplanung von einem risc-superskalarprozessor |
EP0638183B1 (en) * | 1992-05-01 | 1997-03-05 | Seiko Epson Corporation | A system and method for retiring instructions in a superscalar microprocessor |
WO1994016384A1 (en) * | 1992-12-31 | 1994-07-21 | Seiko Epson Corporation | System and method for register renaming |
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 |
US6128721A (en) * | 1993-11-17 | 2000-10-03 | Sun Microsystems, Inc. | Temporary pipeline register file for a superpipelined superscalar processor |
US5546599A (en) * | 1994-03-31 | 1996-08-13 | International Business Machines Corporation | Processing system and method of operation for processing dispatched instructions with detected exceptions |
US5559976A (en) * | 1994-03-31 | 1996-09-24 | International Business Machines Corporation | System for instruction completion independent of result write-back responsive to both exception free completion of execution and completion of all logically prior instructions |
US5644742A (en) * | 1995-02-14 | 1997-07-01 | Hal Computer Systems, Inc. | Processor structure and method for a time-out checkpoint |
US5841999A (en) * | 1996-04-17 | 1998-11-24 | International Business Machines Corporation | Information handling system having a register remap structure using a content addressable table |
US6108771A (en) * | 1997-12-19 | 2000-08-22 | International Business Machines Corporation | Register renaming with a pool of physical registers |
EP1004959B1 (en) * | 1998-10-06 | 2018-08-08 | Texas Instruments Incorporated | Processor with pipeline protection |
US6898696B1 (en) * | 1999-06-14 | 2005-05-24 | International Business Machines Corporation | Method and system for efficiently restoring a processor's execution state following an interrupt caused by an interruptible instruction |
WO2001014980A1 (fr) * | 1999-08-19 | 2001-03-01 | Fujitsu Limited | Procede permettant de commander le fonctionnement du systeme d'exploitation d'un systeme informatique et support d'enregistrement sur lequel le programme destine a cet effet est enregistre |
US6553480B1 (en) * | 1999-11-05 | 2003-04-22 | International Business Machines Corporation | System and method for managing the execution of instruction groups having multiple executable instructions |
US6601162B1 (en) * | 2000-01-19 | 2003-07-29 | Kabushiki Kaisha Toshiba | Processor which executes pipeline processing having a plurality of stages and which has an operand bypass predicting function |
WO2002021323A2 (en) * | 2000-09-08 | 2002-03-14 | Avaz Networks | Hardware function generator support in a dsp |
US7861104B2 (en) * | 2001-08-24 | 2010-12-28 | Broadcom Corporation | Methods and apparatus for collapsing interrupts |
US7406587B1 (en) * | 2002-07-31 | 2008-07-29 | Silicon Graphics, Inc. | Method and system for renaming registers in a microprocessor |
US20040128482A1 (en) * | 2002-12-26 | 2004-07-01 | Sheaffer Gad S. | Eliminating register reads and writes in a scheduled instruction cache |
US7437532B1 (en) | 2003-05-07 | 2008-10-14 | Marvell International Ltd. | Memory mapped register file |
US7096345B1 (en) | 2003-09-26 | 2006-08-22 | Marvell International Ltd. | Data processing system with bypass reorder buffer having non-bypassable locations and combined load/store arithmetic logic unit and processing method thereof |
USH2212H1 (en) * | 2003-09-26 | 2008-04-01 | The United States Of America As Represented By The Secretary Of The Navy | Method and apparatus for producing an ion-ion plasma continuous in time |
TWI246023B (en) * | 2003-11-26 | 2005-12-21 | Admtek Inc | Very long instruction word architecture |
US7502725B2 (en) | 2004-04-29 | 2009-03-10 | International Business Machines Corporation | Method, system and computer program product for register management in a simulation environment |
US8230423B2 (en) * | 2005-04-07 | 2012-07-24 | International Business Machines Corporation | Multithreaded processor architecture with operational latency hiding |
GB0605383D0 (en) * | 2006-03-17 | 2006-04-26 | Williams Paul N | Processing system |
US8327115B2 (en) | 2006-04-12 | 2012-12-04 | Soft Machines, Inc. | Plural matrices of execution units for processing matrices of row dependent instructions in single clock cycle in super or separate mode |
US8188170B2 (en) * | 2006-06-20 | 2012-05-29 | Chemtura Corporation | Polymers with low gel content and enhanced gas-fading |
EP2527972A3 (en) * | 2006-11-14 | 2014-08-06 | Soft Machines, Inc. | Apparatus and method for processing complex instruction formats in a multi- threaded architecture supporting various context switch modes and virtualization schemes |
JP4996945B2 (ja) * | 2007-02-28 | 2012-08-08 | 公立大学法人広島市立大学 | データ処理装置、データ処理方法 |
JP5149567B2 (ja) * | 2007-08-29 | 2013-02-20 | キヤノン株式会社 | 画像処理装置及び方法 |
US7882325B2 (en) * | 2007-12-21 | 2011-02-01 | Intel Corporation | Method and apparatus for a double width load using a single width load port |
US7921280B2 (en) * | 2008-06-27 | 2011-04-05 | Intel Corporation | Selectively powered retirement unit using a partitioned allocation array and a partitioned writeback array |
US8219784B2 (en) * | 2008-12-09 | 2012-07-10 | International Business Machines Corporation | Assigning and pre-decoding group ID and tag ID prior to dispatching instructions in out-of-order processor |
US20110296437A1 (en) * | 2010-05-28 | 2011-12-01 | Devendra Raut | Method and apparatus for lockless communication between cores in a multi-core processor |
US9104991B2 (en) * | 2010-07-30 | 2015-08-11 | Bank Of America Corporation | Predictive retirement toolset |
KR101685247B1 (ko) | 2010-09-17 | 2016-12-09 | 소프트 머신즈, 인크. | 조기 원거리 분기 예측을 위한 섀도우 캐시를 포함하는 단일 사이클 다중 분기 예측 |
EP2689326B1 (en) | 2011-03-25 | 2022-11-16 | Intel Corporation | Memory fragments for supporting code block execution by using virtual cores instantiated by partitionable engines |
CN108376097B (zh) | 2011-03-25 | 2022-04-15 | 英特尔公司 | 用于通过使用由可分割引擎实例化的虚拟核来支持代码块执行的寄存器文件段 |
CN103547993B (zh) | 2011-03-25 | 2018-06-26 | 英特尔公司 | 通过使用由可分割引擎实例化的虚拟核来执行指令序列代码块 |
US8862861B2 (en) | 2011-05-13 | 2014-10-14 | Oracle International Corporation | Suppressing branch prediction information update by branch instructions in incorrect speculative execution path |
US8886920B2 (en) | 2011-05-13 | 2014-11-11 | Oracle International Corporation | Associating tag to branch instruction to access array storing predicted target addresses for page crossing targets for comparison with resolved address at execution stage |
WO2012162189A1 (en) | 2011-05-20 | 2012-11-29 | Soft Machines, Inc. | An interconnect structure to support the execution of instruction sequences by a plurality of engines |
TWI603198B (zh) | 2011-05-20 | 2017-10-21 | 英特爾股份有限公司 | 以複數個引擎作資源與互連結構的分散式分配以支援指令序列的執行 |
JP2013015912A (ja) * | 2011-06-30 | 2013-01-24 | Toshiba Corp | データ転送装置及びデータ転送方法 |
US8683261B2 (en) * | 2011-07-20 | 2014-03-25 | International Business Machines Corporation | Out of order millicode control operation |
EP2783280B1 (en) | 2011-11-22 | 2019-09-11 | Intel Corporation | An accelerated code optimizer for a multiengine microprocessor |
WO2013077876A1 (en) | 2011-11-22 | 2013-05-30 | Soft Machines, Inc. | A microprocessor accelerated code optimizer |
CN108681465B (zh) * | 2011-12-22 | 2022-08-02 | 英特尔公司 | 用于产生整数序列的处理器、处理器核及系统 |
US10565283B2 (en) | 2011-12-22 | 2020-02-18 | Intel Corporation | Processors, methods, systems, and instructions to generate sequences of consecutive integers in numerical order |
US10223112B2 (en) | 2011-12-22 | 2019-03-05 | Intel Corporation | Processors, methods, systems, and instructions to generate sequences of integers in which integers in consecutive positions differ by a constant integer stride and where a smallest integer is offset from zero by an integer offset |
CN104011644B (zh) | 2011-12-22 | 2017-12-08 | 英特尔公司 | 用于产生按照数值顺序的相差恒定跨度的整数的序列的处理器、方法、系统和指令 |
US9886279B2 (en) | 2013-03-15 | 2018-02-06 | Intel Corporation | Method for populating and instruction view data structure by using register template snapshots |
US10140138B2 (en) | 2013-03-15 | 2018-11-27 | Intel Corporation | Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation |
WO2014150991A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for implementing a reduced size register view data structure in a microprocessor |
US10275255B2 (en) | 2013-03-15 | 2019-04-30 | Intel Corporation | Method for dependency broadcasting through a source organized source view data structure |
US20140281116A1 (en) | 2013-03-15 | 2014-09-18 | Soft Machines, Inc. | Method and Apparatus to Speed up the Load Access and Data Return Speed Path Using Early Lower Address Bits |
US9436476B2 (en) | 2013-03-15 | 2016-09-06 | Soft Machines Inc. | Method and apparatus for sorting elements in hardware structures |
US9904625B2 (en) | 2013-03-15 | 2018-02-27 | Intel Corporation | Methods, systems and apparatus for predicting the way of a set associative cache |
US9569216B2 (en) | 2013-03-15 | 2017-02-14 | Soft Machines, Inc. | Method for populating a source view data structure by using register template snapshots |
US9582322B2 (en) | 2013-03-15 | 2017-02-28 | Soft Machines Inc. | Method and apparatus to avoid deadlock during instruction scheduling using dynamic port remapping |
US9627038B2 (en) | 2013-03-15 | 2017-04-18 | Intel Corporation | Multiport memory cell having improved density area |
WO2014150806A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for populating register view data structure by using register template snapshots |
US9891924B2 (en) | 2013-03-15 | 2018-02-13 | Intel Corporation | Method for implementing a reduced size register view data structure in a microprocessor |
US9811342B2 (en) | 2013-03-15 | 2017-11-07 | Intel Corporation | Method for performing dual dispatch of blocks and half blocks |
EP2972845B1 (en) | 2013-03-15 | 2021-07-07 | Intel Corporation | A method for executing multithreaded instructions grouped onto blocks |
WO2014150971A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for dependency broadcasting through a block organized source view data structure |
CN105247484B (zh) | 2013-03-15 | 2021-02-23 | 英特尔公司 | 利用本地分布式标志体系架构来仿真访客集中式标志体系架构的方法 |
JP2017516228A (ja) | 2014-05-12 | 2017-06-15 | インテル・コーポレーション | 自己書き換えコードのハードウェアサポートを提供する方法及び装置 |
US10691457B1 (en) * | 2017-12-13 | 2020-06-23 | Apple Inc. | Register allocation using physical register file bypass |
US11269650B2 (en) * | 2018-12-29 | 2022-03-08 | Texas Instruments Incorporated | Pipeline protection for CPUs with save and restore of intermediate results |
US11403067B2 (en) * | 2019-03-20 | 2022-08-02 | Micron Technology, Inc. | Memory array data structure for posit operations |
US11194584B1 (en) | 2019-07-19 | 2021-12-07 | Marvell Asia Pte, Ltd. | Managing out-of-order retirement of instructions |
US11403110B2 (en) * | 2019-10-23 | 2022-08-02 | Texas Instruments Incorporated | Storing a result of a first instruction of an execute packet in a holding register prior to completion of a second instruction of the execute packet |
KR102616015B1 (ko) | 2021-12-28 | 2023-12-20 | 한국화학연구원 | 결정성 그래피틱 탄소계 물질이 무기물 매트릭스 내에 고 분산된 메탄 염소화 반응용 촉매 |
Family Cites Families (227)
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 |
US4262989A (en) * | 1979-11-05 | 1981-04-21 | Applied Fiberoptics | Surgical microscope with solenoid driven magnification changer |
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 |
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 | マイクロコンピユ−タ |
US4775927A (en) | 1984-10-31 | 1988-10-04 | International Business Machines Corporation | Processor including fetch operation for branch instruction with control tag |
JPH0769818B2 (ja) | 1984-10-31 | 1995-07-31 | 株式会社日立製作所 | デ−タ処理装置 |
US4991081A (en) * | 1984-10-31 | 1991-02-05 | Texas Instruments Incorporated | Cache memory addressable by both physical and virtual addresses |
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 | 命令コ−ドアクセス制御方式 |
DE3751503T2 (de) | 1986-03-26 | 1996-05-09 | Hitachi Ltd | Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen. |
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 | 計算機 |
US4841453A (en) | 1986-11-10 | 1989-06-20 | Ibm Corporation | Multidirectional scan and print capability |
JPH0793358B2 (ja) | 1986-11-10 | 1995-10-09 | 日本電気株式会社 | ブロック配置処理方式 |
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 |
US4822599A (en) * | 1987-08-26 | 1989-04-18 | The Procter & Gamble Company | Oral compositions |
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 | 株式会社東芝 | バッファ装置 |
US5127091A (en) | 1989-01-13 | 1992-06-30 | International Business Machines Corporation | System for reducing delay in instruction execution by executing branch instructions in separate processor while dispatching subsequent instructions to primary processor |
US5142634A (en) | 1989-02-03 | 1992-08-25 | Digital Equipment Corporation | Branch prediction |
US5067069A (en) * | 1989-02-03 | 1991-11-19 | Digital Equipment Corporation | Control of multiple functional units with parallel operation in a microcoded execution unit |
US5222223A (en) | 1989-02-03 | 1993-06-22 | Digital Equipment Corporation | Method and apparatus for ordering and queueing multiple memory requests |
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 |
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 |
US5142633A (en) | 1989-02-03 | 1992-08-25 | Digital Equipment Corporation | Preprocessing implied specifiers in a pipelined processor |
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 |
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 |
US5133074A (en) | 1989-02-08 | 1992-07-21 | Acer Incorporated | Deadlock resolution with cache snooping |
US5226166A (en) | 1989-02-10 | 1993-07-06 | Mitsubishi Denki K.K. | Parallel operation processor with second command unit |
US5293500A (en) * | 1989-02-10 | 1994-03-08 | Mitsubishi Denki K.K. | Parallel processing method and apparatus |
JP3153906B2 (ja) | 1989-02-24 | 2001-04-09 | アドヴァンスド マイクロ デヴァイセス インコーポレイテッド | コンピュータの分散型パイプライン制御装置及び方法 |
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 |
EP0407911B1 (en) * | 1989-07-07 | 1998-12-09 | Hitachi, Ltd. | Parallel processing apparatus and parallel processing method |
US5440749A (en) * | 1989-08-03 | 1995-08-08 | Nanotronics Corporation | High performance, low cost microprocessor architecture |
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 |
JP2814683B2 (ja) | 1989-11-08 | 1998-10-27 | 日本電気株式会社 | 命令処理装置 |
US5226125A (en) | 1989-11-17 | 1993-07-06 | Keith Balmer | Switch matrix having integrated crosspoint logic and method of operation |
DE68928980T2 (de) | 1989-11-17 | 1999-08-19 | Texas Instruments Inc. | Multiprozessor mit Koordinatenschalter zwischen Prozessoren und Speichern |
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 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチプロセッサ・システムおよびそのプライベート・キャッシュ制御方法 |
US5241636A (en) | 1990-02-14 | 1993-08-31 | Intel Corporation | Method for parallel instruction execution in a computer |
US5222240A (en) * | 1990-02-14 | 1993-06-22 | Intel Corporation | Method and apparatus for delaying writing back the results of instructions to a processor |
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 | 株式会社東芝 | 電子計算機 |
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 |
EP0457403B1 (en) | 1990-05-18 | 1998-01-21 | Koninklijke Philips Electronics N.V. | Multilevel instruction cache and method for using said cache |
US5249286A (en) | 1990-05-29 | 1993-09-28 | National Semiconductor Corporation | Selectively locking memory locations within a microprocessor's on-chip cache |
JP2878792B2 (ja) | 1990-06-22 | 1999-04-05 | 株式会社東芝 | 電子計算機 |
CA2038264C (en) | 1990-06-26 | 1995-06-27 | Richard James Eickemeyer | In-memory preprocessor for a scalable compound instruction set machine processor |
CA2045773A1 (en) * | 1990-06-29 | 1991-12-30 | Compaq Computer Corporation | Byte-compare operation for high-performance processor |
EP0463965B1 (en) * | 1990-06-29 | 1998-09-09 | Digital Equipment Corporation | Branch prediction unit for high-performance processor |
DE69127936T2 (de) * | 1990-06-29 | 1998-05-07 | Digital Equipment Corp | Busprotokoll für Prozessor mit write-back cache |
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 |
JP2877468B2 (ja) | 1990-08-09 | 1999-03-31 | 株式会社東芝 | 電子計算機 |
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 |
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 |
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 |
US5826055A (en) * | 1991-07-08 | 1998-10-20 | Seiko Epson Corporation | System and method for retiring instructions in a superscalar microprocessor |
US5493687A (en) | 1991-07-08 | 1996-02-20 | Seiko Epson Corporation | RISC microprocessor architecture implementing multiple typed register sets |
KR100299691B1 (ko) | 1991-07-08 | 2001-11-22 | 구사마 사부로 | 확장가능알아이에스씨마이크로프로세서구조 |
US5961629A (en) * | 1991-07-08 | 1999-10-05 | Seiko Epson Corporation | High performance, superscalar-based computer system with out-of-order instruction execution |
US5539911A (en) * | 1991-07-08 | 1996-07-23 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution |
EP0547242B1 (en) * | 1991-07-08 | 1998-03-25 | Seiko Epson Corporation | Single chip page printer controller |
EP0547240B1 (en) | 1991-07-08 | 2000-01-12 | Seiko Epson Corporation | Risc microprocessor architecture implementing fast trap and exception state |
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 |
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 |
JPH07504773A (ja) | 1992-03-18 | 1995-05-25 | セイコーエプソン株式会社 | マルチ幅のメモリ・サブシステムをサポートするためのシステム並びに方法 |
US5371684A (en) | 1992-03-31 | 1994-12-06 | Seiko Epson Corporation | Semiconductor floor plan for a register renaming circuit |
DE69311330T2 (de) * | 1992-03-31 | 1997-09-25 | Seiko Epson Corp., Tokio/Tokyo | Befehlsablauffolgeplanung von einem risc-superskalarprozessor |
EP0638183B1 (en) | 1992-05-01 | 1997-03-05 | Seiko Epson Corporation | A system and method for retiring instructions in a superscalar microprocessor |
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 |
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 |
WO1994016384A1 (en) | 1992-12-31 | 1994-07-21 | Seiko Epson Corporation | System and method for register renaming |
US5604912A (en) * | 1992-12-31 | 1997-02-18 | Seiko Epson Corporation | System and method for assigning tags to instructions to control instruction execution |
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 |
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 |
JPH09500989A (ja) | 1993-05-14 | 1997-01-28 | インテル・コーポレーション | 分岐ターゲット・バッファにおける推論履歴 |
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 |
DE69429061T2 (de) | 1993-10-29 | 2002-07-18 | Advanced Micro Devices, Inc. | Superskalarmikroprozessoren |
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 |
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 |
US5627985A (en) | 1994-01-04 | 1997-05-06 | Intel Corporation | Speculative and committed resource files in an out-of-order processor |
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 |
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 |
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 |
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 |
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 |
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 |
CN1094610C (zh) * | 1994-12-02 | 2002-11-20 | 英特尔公司 | 可以对复合操作数进行压缩操作和拆开操作的微处理器 |
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 |
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 |
US6418529B1 (en) | 1998-03-31 | 2002-07-09 | Intel Corporation | Apparatus and method for performing intra-add operation |
US6714994B1 (en) * | 1998-12-23 | 2004-03-30 | Advanced Micro Devices, Inc. | Host bridge translating non-coherent packets from non-coherent link to coherent packets on conherent link and vice versa |
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 |
-
1993
- 1993-04-27 EP EP93909433A patent/EP0638183B1/en not_active Expired - Lifetime
- 1993-04-27 DE DE69308548T patent/DE69308548T2/de not_active Expired - Lifetime
- 1993-04-27 KR KR1019940703884A patent/KR950701437A/ko not_active IP Right Cessation
- 1993-04-27 JP JP51912893A patent/JP3637920B2/ja not_active Expired - Fee Related
- 1993-04-27 WO PCT/JP1993/000553 patent/WO1993022722A1/en active Application Filing
-
1998
- 1998-01-20 US US09/009,412 patent/US6131157A/en not_active Expired - Lifetime
-
2000
- 2000-08-02 US US09/631,640 patent/US6412064B1/en not_active Expired - Fee Related
-
2001
- 2001-05-07 KR KR1020017005745A patent/KR100329226B1/ko not_active IP Right Cessation
-
2002
- 2002-05-22 US US10/151,932 patent/US6775761B2/en not_active Expired - Fee Related
-
2004
- 2004-01-13 JP JP2004006069A patent/JP3675466B2/ja not_active Expired - Lifetime
- 2004-04-02 US US10/815,742 patent/US6920548B2/en not_active Expired - Fee Related
- 2004-11-29 JP JP2004343857A patent/JP3788470B2/ja not_active Expired - Fee Related
- 2004-12-28 JP JP2004381020A patent/JP3788472B2/ja not_active Expired - Fee Related
-
2005
- 2005-01-27 JP JP2005019696A patent/JP3832487B2/ja not_active Expired - Lifetime
- 2005-03-07 JP JP2005062265A patent/JP3781051B2/ja not_active Expired - Lifetime
- 2005-04-06 JP JP2005109631A patent/JP3824006B2/ja not_active Expired - Lifetime
- 2005-05-06 JP JP2005134892A patent/JP3818315B2/ja not_active Expired - Lifetime
- 2005-06-06 JP JP2005165024A patent/JP3781052B2/ja not_active Expired - Lifetime
- 2005-06-10 US US11/149,227 patent/US7523296B2/en not_active Expired - Fee Related
-
2006
- 2006-02-13 JP JP2006034741A patent/JP3858939B2/ja not_active Expired - Lifetime
- 2006-04-17 JP JP2006112998A patent/JP3870973B2/ja not_active Expired - Fee Related
- 2006-12-21 US US11/642,625 patent/US7516305B2/en not_active Expired - Fee Related
-
2008
- 2008-09-17 US US12/212,361 patent/US7934078B2/en not_active Expired - Fee Related
-
2009
- 2009-02-26 US US12/393,257 patent/US7958337B2/en not_active Expired - Fee Related
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3637920B2 (ja) | スーパースケーラマイクロプロセサに於て命令をリタイアさせるシステム及び方法 | |
US5826055A (en) | System and method for retiring instructions in a superscalar microprocessor | |
US5887161A (en) | Issuing instructions in a processor supporting out-of-order execution | |
US5398330A (en) | Register file backup queue | |
US5913048A (en) | Dispatching instructions in a processor supporting out-of-order execution | |
US6098167A (en) | Apparatus and method for fast unified interrupt recovery and branch recovery in processors supporting out-of-order execution | |
JPH07160501A (ja) | データ処理システム | |
JPH10301778A (ja) | レジスタの名前変更を管理する方法および装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040113 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040302 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040506 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20040708 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20040729 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040928 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041129 |
|
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: 20041222 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050104 |
|
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: 20090121 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100121 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110121 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110121 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120121 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120121 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130121 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130121 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130121 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130121 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130121 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130121 Year of fee payment: 8 |
|
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: 20130121 Year of fee payment: 8 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |