JP2000515268A - ロード/ストアオペレーションのout―of―order実行コントロールのための階層的スキャンロジック - Google Patents

ロード/ストアオペレーションのout―of―order実行コントロールのための階層的スキャンロジック

Info

Publication number
JP2000515268A
JP2000515268A JP09526874A JP52687497A JP2000515268A JP 2000515268 A JP2000515268 A JP 2000515268A JP 09526874 A JP09526874 A JP 09526874A JP 52687497 A JP52687497 A JP 52687497A JP 2000515268 A JP2000515268 A JP 2000515268A
Authority
JP
Japan
Prior art keywords
group
logic
entry
store
entries
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP09526874A
Other languages
English (en)
Other versions
JP3681761B2 (ja
Inventor
トュルル、ジェフリー・イー
Original Assignee
アドバンスト・マイクロ・デバイシズ・インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US08/592,209 external-priority patent/US5754812A/en
Application filed by アドバンスト・マイクロ・デバイシズ・インコーポレイテッド filed Critical アドバンスト・マイクロ・デバイシズ・インコーポレイテッド
Publication of JP2000515268A publication Critical patent/JP2000515268A/ja
Application granted granted Critical
Publication of JP3681761B2 publication Critical patent/JP3681761B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】 特定のロードオペレーションに関連するストアオペレーションの相対的古さ(及び特定のストアオペレーションに関連するロードオペレーションの相対的古さ)を追跡するスケジューラロジック(180)により、本発明に基づいて構成されたロード−ストア実行コントローラが、新しいストアオペレーションを古いロードオペレーションが終了するまで停止(及び新しいロードオペレーションを古いストアオペレーションが終了するまで停止)することができる。階層的スキャンロジック(例えばスキャンロジック700)が、ストアオペレーションに関連するロードオペレーションの相対的古さ指示信号(及びロードオペレーションに関連するストアオペレーションの相対的古さ指示信号)を供給し、またこれにより、本発明に基づいて構成されたロード停止ロジック及び/またはストア停止ロジック(例えば403及び413)、ロード−ストア実行コントローラが、ロード−ストア(及びストア−ロード)相互依存性を回避することが可能となる。

Description

【発明の詳細な説明】 ロード/ストアオペレーションのOUT−OF−ORDER実行コントロールの ための階層的スキャンロジック技術分野 本発明はプロセッサに関し、特に複数の実行ユニットを有するプロセッサに於 けるOUT−OF−ORDER実行コントロールに関する。背景技術 通常、汎用コンピュータは、順序付けられたマシン命令のシーケンスとして実 行可能な形態で提供されるプログラムを実行する。人が読める表現形態のプログ ラムは、コンパイルとして知られているプロセスにより、所望のターゲットアー キテクチャ用のマシン命令のシーケンス、例えばx86プロセッサアーキテクチ ャに適合したプロセッサ用のオブジェクトコードに変換される。コンピュータプ ログラムは、通常、単純化のための仮定、即ち変換の結果得られるオブジェクト がシーケンスの順番に実行されるという仮定に基づいて、デザインされ、コード 化され、コンパイルされる。しかしこのような仮定にも関わらず、最近のプロセ ッサデザイン技術では、マシン命令の同時実行、則ち命令並行実行可能性(inst ruction parallelism)の利用に努めている。 計算の処理能力を最大にするために、命令並行実行を多数の実行ユニットにマ ップするためのスーパスケーラ技術を用いることができる。これとは対照的に、 パイプライン処理技術では、1つの機能的単位、又は実行経路の一段階の中での 命令並行実行を採用している。スーパスケーラ技術は、スーパスケーラデザイン の分野に於いて知られている技術であり、この技術ではOUT−OF−ORDE R命令発行、OUT−OF−ORDER命令完了、及び命令の投機的実行が行わ れる。 OUT−OF−ORDER命令発行では、実行コードに於ける実際の 命令の順序とは殆ど無関係な順序で実行ユニットへの命令の発行が行われる。O UT−OF−ORDER発行を利用するスーパスケーラプロセッサは、その命令 ディスパッチシーケンスのフォーマッティングに於いて、所定の命令の出力(計 算結果)と後続の命令の入力(オペランド)との間の依存性によってのみ条件付 けられる必要かある。一方、OUT−OF−ORDER完了は、プログラムシー ケンスの中で先行する命令が完了する前に所定の命令が完了(例えば計算結果を 格納すること)できるようにする技術である。最後に投機的実行は、予測された 結果(例えば分岐)に基づいて命令シーケンスの実行を行う。投機的実行(則ち 分岐が正確に予測されているという仮定のもとでの実行)により、命令を分岐条 件が実際に評価されるまで待機することなくプロセッサが命令を実行可能となる 。分岐が正しく予測されることが不正確に予測されることより多く、かつ不正確 な予測結果を実行しない合理的で効率的な方法が利用可能であると仮定すると、 命令並行実行可能性(則ち並行実行が利用可能な命令の数)は、投機的実行によ り増加することになる(Johnson、Superscalar processor Design,Prentice-Ha ll,Inc.,New Jersey,1991,pp.63-77 for an analysis参照)。 シーケンスの順番とは異なる順番での命令の実行、則ちシーケンスの順序とは 異なる順序で命令を発行及び完了することにより、スーパスケーラプロセッサが 多数の実行ユニットを同時並行的に動作させた状態を維持することが可能である ため、スーパスケーラプロセッサの処理能力は高くなる。従って、スーパスケー ラプロセッサ用のスケジューラは、OUT−OF−ORDER実行される命令が 何れであるかを判定し、それらの命令を適当な実行ユニットに供給又はディスパ ッチすることにより全体の処理能力を改善することができる。スーパスケーラプ ロセッサ用のスケジューラは、割り込み及びトラップの処理も行わなければなら ない。x86プロセッサアーキテクチャを含む多くのプロセッサアーキテクチャ では、命令がエラー、割り込み、またはトラップを発生する直前又は直後にアー キテクチャーの状態を認識している必要がある。これにより命令のOUT−OF −ORDER実行が困難になる。従って、スケジューラは命令の取り消しや、命 令があたかも順序通りに実行されたかのようなシステム状態の再構築ができなけ ればならない。 これらの技術のそれぞれに関連をもつ、命令並行実行可能性を利用するための アーキテクチャのデザインが様々な文献やテキストにおいて提案されてきた。Jo hnsonpp.127-146(OUT−OF−ORDER発行)、pp103-126(OUT−OF −ORDER完了及び依存性)pp87-102(誤り分岐予測の回復)を参照されたい 。発明の開示 ロードオペレーション及びストアオペレーション(以下「オペレーション」を 省略し単にロード、ストアと表記する)のOUT−OF−ORDER実行コント ロールシステムを提供するプロセッサに於いて、ロード及びストアが互いに独立 してOUT−OF−ORDER実行され得ることがわかった。特定のロードに対 するストアの相対的古さ(及び特定のストアに対するロードの相対的古さ)追跡 するスキャンロジックにより、本発明に基づいて構築されたロード/ストア実行 コントロールシステムが、ロードが完了するまで新しいストアを停止(hold)( 及び古いストアが完了するまで新しいロードを停止)させることが可能となる。 特に、本発明に基づいて構築された、ツリー構造で階層的に編成されたスキャン ロジックの様々な実施例は、多数のオペレーションを同時並行的に評価するため に適合されたプロセッサの実施例においてすら、ゲートでの遅れが殆ど無しに、 ストアオペレーションが古いことを表すストアオルダ指示信号、及びロードオペ レーションが古いことを表すロード オルダ指示信号を提供する。アドレスマッチングロジックは、このスキャンロジ ックとともに動作して、ロード−ストア実行コントロールシステムが、ロード− ストア間(及びストア−ロード間)の依存性を回避して処理できるようにする。 ロードオペレーションを実行するロードユニット及びストアオペレーションを実 行するストアユニットを有するプロセッサに於いて、このようなロード/ストア 実行コントロールシステムにより、ロード命令及びストア命令を、それらの間の データ依存性を強制しつつ、それら相互について概ね順不同に実行、即ちOUT −OF−ORDER実行することが可能となる。図面の簡単な説明 以下に説明する添付の図面を参照することにより、本発明はより良く理解され 、またその様々な目的、特徴及び利点が当業者には明らかとなろう。 第1図は、本発明の一実施例によるOUT−OF−ORDER実行コントロー ルとなるスーパスケーラコンピュータプロセッサのブロック図である。 第2図は、本発明の一実施例によるスケジューラのブロック図である。 第3図は、本発明の一実施例による命令の実行に於けるアーキテクチャーの段 階を示すパイプライン処理の各段階を示した図である。 第4図は、本発明の一実施例によるロード及びストアOUT−OF−ORDE R実行コントロール要素のブロック図である。 第5図は、本発明の一実施例によるロード停止ロジックの回路図である。 第6図は、本発明の一実施例によるストア停止ロジックの回路図である。 第7図は、本発明の一実施例によるスキャンロジックのブロック図で ある。 第8図は、本発明の典型的な実施例によるスキャンロジックのためのグループ 内ロジックの論理図である。 第9図は、本発明の一実施例によるスキャンロジックのための第1及び第2レ ベル一括グループロジックの論理図である。 第10図は、本発明の一実施例によるスキャンロジックのための第3レベル一 括グループロジックの論理図である。 第11図は、本発明の一実施例による、OUT−OF−ORDERロード/ス トア実行コントロールを提供するプロセッサを組み込んだコンピュータシステム のブロック図である。 第12図は、スキャンロジックのOpクワッド依存部分のスピード経路処理能 力を改善するための別形態のスキャン結合ロジックの論理図である。 図面全体に於いて同一の又は類似した構成要素には同じ符号を付して示した。発明の実施の形態 第2図は24個のエントリ(列として示す)を有するスケジューラ180の例 示的実施例であって、各エントリが継続中のOpと関連している例示的実施例を 示す。各エントリは継続中のOpに関連する静的及び動的データを表すためのス ケジューラリザーバ240として一括して示される一連のフィールドを含む。付 け加えるに、スケジューラ180は継続中のOpsに関連したデータを受け取る ためにスケジュールリザーバ240のエントリに接続された制御ロジック230 として一括して示される一連の特殊ロジックブロックを提供する。制御ロジック 230の特殊ロジックブロック(桁231、232、233、235及び236 として示す)はOp実行並びに実行ユニットへのオペランドの供給と実 行ユニットからの結果の分配の順序付けを制御する信号を供給する。制御ロジッ ク230は発行選択ロジック231、オペランド選択ロジック232、ロード・ ストア命令ロジック234、状態フラグ処理ロジック235、及び自己修飾コー ド支援ロジック536を含む。 発行選択ロジック231は各サイクルの間有効な実行ユニットへの発行のため スケジュールリザーバ240からのOpsの選択を制御する。オペランド選択ロ ジック232は実行ユニットに対して発行されたOpsに必要とされるオペラン ドデータのための適当なソースを識別する。データ依存性と実行エンジン150 内のOpsの順序付けに依拠して適当なソースはレジスタファイル190であり 、他の継続中のOpエントリ(スケジューラエントリのためのデスティネーショ ン値フィールドは250として一括して示される)に関連するデスティネーショ ン値フィールドまたは結果バス(結果バス272として一括して示される)の1 つに供給される完了Opの結果がある。発行選択ロジック231とオペランド選 択ロジック232によって供給される制御信号はスケジューラ180がスケジュ ールリザーバ240より有効実行ユニットへOpsを発行しかつ発行された各O pのための適当なオペランドソースを選択するのを可能とする。 スケジューラ180は、各スケジューラエントリに関連したデスティネーショ ン値フィールドを含む。これらのデスティネーション値フィールドは250とし て一括的に示されている。オペランド選択ロジック232との関係に於いて、デ スティネーション値フィールド250は、リオーダバッファと暗黙レジスタの再 命名を実施する。レジスタファイル190のアーキテクチュ配列ジスタに関連す るオペランド値は、デスティネーション値フィールド250内に表され、典型的 には、オペランドバス271を介してレジスタオペランド値として実行ユニット に供給さ れる。しかしながら、デスティネーション値フィールド250のいずれもより現 時点に近いレジスタ状態を表していない場合(すなわち、未だコミットされてい ないレジスタ状態)には、これに代えてオペランド値をレジスタファイル190 から供給する事ができる。完了したOpsの結果は結果バス272を介して完了 したOpに関連するスケジューラエントリのデスティネーション値フィールドに 供給される。付け加えるに、これらの結果は、また継続中のOpsのためのオペ ランドとして実行ユニットに供給することができる。結果は、結果バス272を 介して転送される。 スケジュールリザーバエントリ(例証的にはスケジュールリザーバエントリ2 40.1)のフィールドは、実行を待っているか、実行される過程にあるか、ま たは完了されたか、であるオペレーション(Op)に関する情報を含んでいる。 スケジュールリザーバエントリのフィールドの大部分は、命令デコーダ130が 新規のOpをスケジュールリザーバ240にロードしたときに初期化される。し かしながら、他のフィールドは、後にロードされ又は更新される。例えば、状態 フィールド(各エントリに対してフィールド242として示される)は符合する Opが実行パイプラインの段階を通って進むのに伴って更新される。Opがスケ ジュールリザーバ240内にロードされる時からスケジューラ180から退避さ れる時までの値を保持する記憶フィールドは「静的フィールド」として言及され る。新規の値によって更新されることのできるフィールドは「動的フィールド」 として言及される。静的フィールドデータ及び動的フィールドの初期データ値は 命令デコーダ140によって供給される。 各スケジュールリザーバエントリ(第2図中タイプフィールド241として示 される)の3ビットフィールド、タイプ〔2:0〕は、スケジ ュールリザーバエントリに関連したOpのタイプを特定する。Opのタイプは発 行選択目的のために特に重要である(例えば、LdOpsは150の様なロード ユニットに発行しなければならない);しかしながら、ロード/ストア命令制御 はまたタイプフィールド241も利用する。下記の信号は、タイプフィールド2 41から解読したものである: 各スケジュールリザーバエントリ(図中タイプフィールド242として示され ている)の4ビットフィールド、状態[3:0]はOp(S3,S2,S1及び S0は状態[3:0]の交番信号名である)の現実行状態を示す。タイプフィー ルド242の5つの可能状態は以下の様なシフトフィールドによって符号化され る: 即時の状態は、タイプフィールドが現れるエントリに符合したOpのための現 実行段階に符合する。ビットは、Opが段階の外で支承なく発行され進むのに伴 って更新される(実際的には左シフトによって)。状態[3:0]はまた中止サ イクルの間に1111に設定される。スケジューラOpクワッド構成 スケジューラ180はスケジュールリザーバ240内の24個のエントリと、 FIFOとして扱われるデスティネーション値フィールド250を含む。新規の Opsに符号するデータは、最上部にロードされ実行の進行に伴って最下位に向 かってシフトされ、スケジューラリザーバ240の最下位から退避される。制御 の単純化のためにスケジューラ180は、スケジュールリザーバ240とデステ ィネーション値フィールド250をOpクワッドに基づいて処理する。Opsは 、4つのグループにてスケジュールリザーバ240にロードされ、スケジュール リザーバ240を通してシフトされ、且つスケジュールリザーバ240から退避 される。このようにして、スケジューラの細分性が命令デコーダ140のエンコ ードROM142及びNacDec141の両者のデコード帯域幅に適合する。 スケジューラ180は、したがって深さ6幅4のFIFO内の6個のOpクワッ ドエントリとして24個のOpエントリを処理する。 スケジューラ180をOpクワッドにて編成しているが、スケジューラの動作 の多くの側面は、スケジューリングリザーバ240、デスティネーション値フィ ールド250、及びコントロールロジック230を考察することにより良く理解 されよう。例示のため、以下の議論は24エントリスケジューラ180について 説明しているが、上述の共願の特許出願の明細書に説明されているOpクワッド の細分性の利点について、当業者は理解されよう。オペレーション(Op)のタイミング及び実行段階 スケジューラリザーバ240の各エントリは、未定のOpsを記述するフィー ルドを含む。これらのフィールドは、命令デコーダ140によって取り出され又 は解読されたOpsから生来的に得られた静的状態情報及びOp実行から結果し 、又は、与えられたOpの実行パイプライン状態を特徴づける動的状態情報を格 納する。 プロセッサ制御の概観からスケジューラ180は、関連する制御ロジック23 0を備えたOp状態情報(スケジュールリザーバ240)の命令順序指定配列で あって制御ロジック230は、配列から各実行ユニットへの発行OPS、パイプ ライン段階のシーケンスを介する制御Op実行及び最終的にはスケジューラから の退避Opsに対し、制御信号を発生する。第2図に示すように、制御ロジック 230は、制御ロジックの5つの特殊ブロック(発行選択ロジック231、オペ ランド選択ロジック232、ロード・ストア命令ロジック234、状態フラグ処 理ロジック235及び自己修飾コード支援ロジック236)を含み、その各々は 、スケジューラリザーバ240の符合するエントリから情報を受け取る部分(ロ ード・ストア命令ロジック234の例証的部分234.3)を有する。制御ロジ ックブロックは、実行ユニットに制御信号を供給する。例えば、ロード・ストア 命令ロジック234は、273として一括して表される制御線を介してロードユ ニット152とストアユニット153に制御信号を供給する。 スケジュールリザーバ240の制御ロジックブロックによって供給される特定 制御信号はOpエントリ内のフィールドの状態に依存する。詳細には、状態〔3 :0〕フィールドは、関連オペレーションの実行の進行を表わす。ロジックの概 観からスケジューラ内の全ての状態順序付けは性質上単一サイクルである。状態 遷移決定はそのサイクルの間の機械 状態に基づいて各サイクルごとに行われる。スケジューラ180の構成はOp実 行のパイプライン特性を反映する。スケジューラ180(及び符合する各エント リ)は、その各々がオペレーション又は実行パイプラインの与えられたタイプの 特定進行段階に直接関連する多数の別個の、より正確には独立のロジック部に分 割することができる。 実行エンジン150のパイプラインステージンクすなわち段階配置構成がここ で第3図を参照して記述される。Opが一旦実行エンジン150内にロードされ ると、そのOpは、3又は4段階パイプラインを通り符号的にそのOpに関連す るスケジューラエントリ内のフィールド状態〔3:0〕によって表される4又は 5状態の間の遷移を通る。命令フェッチ及び解読は実行エンジン150の前に遂 行される。従って、第1のスケジューラに関連するパイプライン段階は発行段階 である。第3図は、RegOps及びLdStObsのためのパイプラインステ ージングを示す。 スケジューラ180は、発行段階及びオペランドフェッチ段階330及び34 0の間実行パイプライン上に基本的な制御を加える。発行段階330内及びオペ ランドフェッチ段階340内の処理は段階ごとに2個のフェーズに分割すること ができ、各フェーズは、公式的には半クロックサイクルを占める。発行段階33 0は、発行選択フェーズとブロードキャストフェーズを含み、一方オペランドフ ェッチ段階340は、オペランド選択フェーズとオペランド送りフェーズを含む 。発行段階 発行段階330の発行選択フェーズ330.1の間に於いて、スケジューラ1 80は、ロードユニット152、ストアユニット153,レジスタユニットX1 54、及びレジスタユニットY155に関連したパイプラインに入れるための次 のOpsを選択する(4つのOp選択が一時に生起する)。発行段階330のブ ロードキャストフェーズ330.2の 間に於いて、各選択されたOpのためのレジスタオペランドの各々に関する情報 が全てのスケジューラエントリ及び外部ロジック(レジスタファイル190及び 実行ユニットを含む)に同報的に送られる。このようにして、ブロードキャスト フェーズ330.2は、スケジューラ180のデスティネーション値フィールド 250の1つ又はレジスタフアイル190に存在するオペランド値又は結果バス 272に生成する結果に符合するオペランド値を実行ユニット(例えばロードユ ニット152、ストアユニット153又はレジスタユニット154と155)の 1つに位置づけるように設定する。オペランドフェッチ段階 オペランドフェッチ段階340のオペランド選択フェーズ340.1の間に於 いてスケジューラ180は、8までのオペランド値(4Ops*2オペランド/ Op)を位置づけ、そして各オペランド値の状態、すなわち指定されたソースか らの有効値が実際に利用可能であるかどうかを決定する。この情報に基づいてス ケジューラ180は、オペランドフェッチ段階0(段階340)のどのOpsが オペランド送りフェーズに続いて例えば段階1(段階350)であるそれらの各 々の実行パイプ内に進むかを決定する。進めることの決定は、各Opのために独 立して行われ、オペレーションが実際に実行される順序がオペランド依存性によ って拘束されることのみが必要である。そのようなデータ依存性が無い場合には 異なる実行ユニットに発行するOpsは一般的に他の実行ユニットに割り当てら れたこれらのOpsに関する任意の順序にてそれらの各々のパイプラインを通っ て処理される。この一般的ルールに対する1つの例外はロード及びストアの個別 的指定(すなわちLdOpsとstOps)を含みこれは以下に詳細に説明され る。LdStOp実行段階 第1の2個のスケジューラ関連段階であるオペランド発行段階330とオペラ ンドフェッチ段階340は、RegOps及びLdStOpsに共通である。後 続段階は、実行段階である。RegOpsは、全てのRegOpsが単一サイク ルにて実行するので単一実行段階350で更に、一旦RegOpが実行段階に入 るとそれは常に支障なく完了し、そのクロックサイクルの終わりに於いて段階3 50を出る。一方LdStOpsは、2個の実行段階352及び360をこの間 に於いてアドレス計算、区分及びページ変換(及び記憶保護チェック)並びに( LdOpsの場合に)データキャッシュアクセスの全てが行われる。RegOp sとは異なり、LdStOpsは、任意の長さの時間に亘って段階360又は3 70のいずれかに停止せしめることができる。この停止の大部分は、第2の段階 370に於いてである。最も共通的には段階370の停止は、データキャッシュ 170の失敗、データTLB171の欠落及びページフォールトから結果する。 段階360での停止は、メモリ引用の非整合から結果しまた完了へと進まないL dStOpによって占拠されブロックされた段階370から結果する。 オペランドフェッチ段階340のオペランド送りフェーズ340.2の間にお いて、スケジューラ180は指定されたソースからのオペランド値を第2図にお いてバス271と272として一括して示されるオペランドバス及び/または結 果バスを介してロードユニット152、ストアユニット153、レジスタユニッ トX154及びレジスタユニットY155のような実行ユニットへ転送する。例 示的実施例は9個のオペランドバス271を含みそのうち8個は段階0でのオペ レーションのためのオペランド値を提供する。例示的実施例においてはまた、値 が有効であるか否かに関わりなくオペランド転送が生じ、これによって制御ロジ ックが単純化される。オペランド値が無効の場合には、スケジューラ180が関 連するオペレーションを段階1へ進めないのでこれは各実行ユ ニットによって無視される。RegOpsのための即値は上述のレジスタオペラ ンドを送る機構の一部として処理される。そのような場合、即値はそのOpに関 連したスケジューラ180エントリのデスティネーション値フィールド250の 特定の1つから直接送られる。 オペランド送りフェーズ340.2の間において変位値もまた変位バス189 .4を介してロードユニット152とストアユニット153(各ユニットに独立 値)に転送される。これらの変位値は32ビット値であり常にスケジューラ18 0のエントリから来る。ソースエントリの選択はオペランド選択フェーズ340 .1の間に生起する。LdOpまたはStOpが段階1に入った場合にはロード ユニット152とストアユニット153が関連する変位値及びオペランド値をラ ッチする。 スケジューラ180はアドレスオペランドと変位を提供するために(上述した ように)4フェーズ制御機構を実施するが、StOpsはアドレスオペランド及 び変位値に加えるにストアデータオペランドを必要とする。スケジューラ180 はStOpのためのストアデータを得るために4フェーズプロセスを遂行する。 StOpデータを取得するプロセスは上述したものと類似するが、そのストアデ ータは実行段階2(370)の間に得られる。ストアデータを提供するプロセス はStOpの段階1及び2に同期され、実行段階1においてStOpを識別する 選択フェーズ390.1、データオペランドのソースを記述する情報を伝送する ブロードキャストフェーズ390.2、データオペランド選択フェーズ390. 3及びデータオペランド送りフェーズ390.4を含む。ストアデータはStO p実行により並列に取り出され、実際のデータ値はStOp処理の完了の際に取 得されストアキュー159に提供される。有効ストアデータ値が利用できない場 合にはStOpが段階2に停止される。ロード/ストア順序付けの制約 ある程度の実行順序付けが、(レジスタのリネームを用いてスケジューラ18 0によって回避される、アーキテクチャのレジスタに対して希に発生する競合と は異なる)真のデータ依存性を示すOps間で継続されなければならないのと同 様に、実行順序付けは同じメモリの場所から読み出される(又は書き込まれる) LdOpsとStOpsとの間でも継続されなければならない。 一般に、ロード及びストアはお互いに対してOUT−OF−ORDER実行し うるが、メモリの同じ場所に新しいロードと古いストアがアクセスする場合は、 古いストアは新しいロードのためのデータを供給すべきである。(即ち、新しい ロードは古いストアを待機すべきである)。このような場合、ストアデータはデ ータキャッシュ170により新しいロードに供給される。同様に、新しいストア がメモリの同じ場所に書き込みを許可される前に、古いロードが完了しなくては ならない。このような場合、古いストアは待機しなくてはならない。スケジュー ラ180へのコントロールロジックとロード−ストアユニット152、153と の組み合わせにより、このようなロード−ストア順序付けの制約が強制されてい る。ロード−ストア順序付けコントロール オペレーション(及びオペランドフェッチに関係するスケジューラロジックに 加えて、スケジューラ180のエントリは、ロード−ストアOUT−OF−OR DER実行コントロールを提供するロード−ストア順序付けロジック234を有 する。ロード−ストア順序付けロジック234の2つの部分は、それぞれロード ユニット152及びストアユニット153に関係し、ロード順序付けロジック4 34a及びストア順序付けロジック434bとして第4図に示されている。各実 行ユニットにおけ るロード停止ロジック403及びストア停止ロジック413と共に、ロード−ス トア順序付けロジック234はロード−ストア実行順序付け制約を強制する。ロード停止ロジック 実例としてロードユニット152に焦点を合わせると、ロード停止ロジック4 03はロードユニット152の段階2(LU2 402)におけるLdOpより 古い様々なパイプライン処理段階におけるStOpsの存在をチェックする。特 に、ロード停止ロジック403は、段階0、段階1(SU1 411)、及び段 階2(SU2 412)、即ち第3図の段階340、352、及び360におけ る古いStOpsの存在をチェックする。3つの信号(SC_SU2OLDER ,SC_SU1OLDER及びSC_SU0OLDER)は、ロード順序付けロ ジック434aによりロード停止ロジック403に供給され、段階2、段階1、 及び段階0それぞれにおける古いStOpの損残を信号化している。より正確に いえば、SC_SUOLDERは、実行段階1及び2より早い処理の段階(例え ばオペランドフェッチ段階0 340又は発行段階330)における古いStO pの存在を表示する。ロード停止ロジック403は、ロードユニット152の段 階2(LU2 402)におけるLdOpに対する部分的なメモリアドレスを受 け取り、ここに記述した条件のもと、LU2 402に対する停止信号(LU2 _Hold)を選択的に供給することも行う。 段階0(又は初期の段階)での古いStOpによりロード停止ロジック403 が、ロードユニット152の段階2における現在LdOpを無条件に停止させる 。一方、段階2又は段階1における古いStOpは、段階2におけるLdOpに 対するメモリアドレスと古いStOpとの間の一致が存在するときに現在LdO pを停止させる。以下のRTLはロ ード停止ロジック403のデザイン及びオペレーションを記述したものである。 ロード停止ロジック403はLU2 402にLU2_Hold信号を供給し 、上述の部分的アドレス一致の組み合わせのいずれか(AddrMatchl又 はAddrMatch2)及びスケジューラ108か らの相対的古さ指示信号(SC_SU2OLDER,SC_SU1OLDER及 びSC_SU0OLDER)が存在するときに、段階2のLdOpの実行を抑止 する。段階1におけるStOpに対してリニアアドレスがまだ計算されてないこ とから、段階2における新しいLdOpは古い段階0のStOpが終わるのを無 条件に待機することになる。古いStOpが段階1及び2に進んだとき、部分的 アドレス不一致によって、新しいLdOpと古いStOpとのOUT−OF−O RDER競合により順序付け条件または制約が破られないことが確実となり、ロ ード停止ロジック403はLU2_Hold式に従って停止を解除する。 ここに記述された例では、部分的アドレスマッチオペレーションは、部分的に 一致するLdOp及びStOpのためのリニアアドレスの下側部分に基づいて実 行される。部分的マッチは、アドレスマッチ回路のクリティカルパスインパクト とスピードとのバランスをとりつつ、偽のマッチの数を制限するに十分な大きさ のビットセットを選択するように設計される。この実施例においては、部分リニ アアドレスマッチが各リニアアドレスの下側ビット(即ちLinAddr(9, 3),SU2_PageOffset(9,3)及びSU1_LinAddr( 9,3))に基づいており、所望の一致速度と許容範囲内の誤り一致程度とのバ ランスをとっているが、別の実施例では、より多い又はより少ないアドレスビッ ト数のマッチングがとられ、ベースアドレス、論理アドレス、リニアアドレス、 又は物理的アドレスに基づいてマッチ判定オペレーションを実行し得る。 8ビットバイトマーク(ByteMark,SU1_Bytemark及びS U2_ByteMark)も部分的アドレスマッチに含められる。これらのバイ トマークは所定のLdOp又はStOpが対応する特定のバイトを指定する対応 するアドレスビット0、1及び2の拡張され た可変部であるが、これはこの実施例(x86プロセッサアーキテクチャに適合 したプロセッサインプリメンテーション)では、1バイト、2バイト、4バイト 、及び8バイトのロード及びストアが全てサポートされているからである。この 実施例では、これらのバイトマークが比較されて、オーバーラップを同定し、従 ってLdOpが読み出す特定のバイトとStOpが書き込む特定のバイトとの間 の依存性が同定される。 いくつかの追加のターム(term)がロード停止ロジック403を記述するRT Lに含められる。例えば、ロード停止ロジック403は、非投機的LdOp、即 ちDTB_InhSptivLdに示されているように古いメモリトランザクシ ョンにおいて読み出されることを許可されていないLdOpの実行も抑止する。 非投機的LdOpsは、単に古いStOpsだけでなく全ての古いLdStOp に従った厳格な順序付けを維持する。非投機的ロードの場合は、ロード停止ロジ ック403が、古いメモリトランザクションが未完了の(ペンディングされてい ない)状態を確保する。スケジューラ180が互いの順序付けに従ってロードを 発行することから、データキャッシュ170にコミット(commit)された古いS tOpsが存在しない状態が確保されることになる。スケジューラ180は、デ ータキャッシュ170へのストアキュー159を通してStOpsのステータス を追跡し、データキャッシュ170にまだコミットされていない古いStOps が存在しないことを示すSC_LdOldest信号を供給する。 第4図によれば、ロード停止ロジック403がロード順序付けロジック434 aからロードユニット152のLU2402におけるLdOpの相対的古さの指 示信号を受け取る。特に、ロード停止ロジック403はロード順序付けロジック 434aの各スキャンチェーン(SU2オルダスキャンチェーン434a.1、 SU1オルダスキャンチェーン43 4a.2、及び SU0オルダスキャンチェーン434a.3)からSU_SU2OLDER指示 信号、SU_SU1OLDER指示信号、及びSU_SU0OLDER指示信号 を受け取る。ロード停止ロジック403はストアユニット153のSU1段階4 11及びSU2段階412におけるStOpsに対する部分的アドレス信号、及 びロードユニット152のLU2402におけるLdOPに対する部分的アドレ ス信号も受け取る。これらの入力に基づいて、ロード停止ロジック403は上述 のRTL記述に従って、LU2402におけるLdOp(及び後続のLdOps )を機能停止する停止信号(LU2_Hold)を選択的にアサートする。 LdOps(Ops、オペランド、変位値、及びコントロール信号を含む)は 、共同バス189として示されているバス及びラインを介してLU1401に達 する。LU2402におけるLdOpsによりアドレス指定されたメモリロケー ションは、LU2_Holdがアンアサート即ちアクティブ状態から解放され、 共同バス189の結果バス189.2(図示せず)を介して実行ユニット及びス ケジューラ180に供給されたとき、データキャッシュ170を介してアクセス される。ロードユニット152の両段階(LU1 401及びLU2 402) は、データTLB171及びメモリ階層の様々なレベルに存在する(L1データ キャッシュ170、L2キャッシュ110、主メモリ等)他のメモリ管理構造と やりとりし、仮想アドレス(又はリニアアドレス)を物理的アドレスに変換する 。 当業者は上述のRTLに適合するロード停止ロジック403の様々なインプリ メンテーションを理解することができるであろう。ロード停止ロジック403は 適切なものであれば、どのようなインプリメンテーションでもよい。第5図には 、ロード停止ロジックの組み合わせ論理回路 としての実現形態の一例を示したものである。ストア停止ロジック ストアユニット153は類似した形態のオペレーション停止ロジック、即ち、 ストアユニット153の段階2(SU2 412)におけるStOpより古い様 々なパイプライン処理の段階におけるLdOpsの存在をチェックするストア停 止ロジック413を有する。ストア停止ロジック413のデザインはロード停止 ロジック403に類似しているが、両者は対称的ではない。ストア停止ロジック 413は段階1(LU1 401)及び段階2(LU2 402)、即ち第3図 の段階352及び360における古いLdOpsの存在をチェックする。ストア 順序付けロジック434bによりストア停止ロジック413に供給される2つの 信号(SC_LU2OLDER及びSC_LU1OLDER)は、段階2及び1 におけるそれぞれの古いLdOpの存在を示す信号である。より正確に言えば、 SC_LU1OLDERは、実行段階2より早い処理の段階(例えば実行段階1 352、オペランドフェッチ段階0340、又は発行段階330)における古い LdOpの存在を表示する。ストア停止ロジック413はストアユニット153 の段階2(SU2412)におけるStOpに対する部分的メモリアドレスを受 け取り、上述の条件のもと停止信号(SU2_Hold)を選択的にSU2 4 12にアサートする。 段階1(又はより早い段階)における古いLdOpによりストア停止ロジック 413が、無条件にストアユニット153の段階2における現在StOpを停止 する。一方、段階2における古いLdOpは段階2におけるStOpに対するメ モリアドレスと古いLdOpとの間の一致がありさえすれば現在StOpを停止 する。以下のRTLはストア停止ロジック413のデザイン及びオペレーション を記述したものである。 ストア停止ロジック413は、部分アドレス一致(AddrMatch2)と スケジューラ180からの相対的古さ指示信号(SC_LU2OLDER及びS C_LU1OLDER)との上に指定した組み合わせのいずれかが存在するとき 、SU2_Hold信号をSU2 412に供給して、段階2StOpの実行を 抑止する。段階2における新しいStOpは古い段階1(又は早い)LdOpを 無条件に待機する。古いLdOpが段階2に進むと、部分アドレス不一致が新し いStOpと古いLdOpのOUT−OF−ORDER競合により順序付け制約 が破られていないことを確定し、ストア停止ロジック413はSU2_Hold 式に従って停止を解放する。 ロード停止ロジック403については、ストア停止ロジック413が StOp及びLdOpsに対するリニアアドレスの下側部分(即ちLinAdd r(9,3)及びLU2_PageOffset(9,3))に基づいて部分的 アドレスマッチング処理を実行する。バイトマーク(ByteMark及びLU 2_ByteMark)も部分的アドレスマッチに含められる。 この実施例においては、ロード停止ロジック403に類似したストア停止ロジ ック413が、停止を開始(trigger)する条件の組を過剰に含んでいる。しか し、ストア停止ロジック413のデザインはロード停止ロジック403よりより 過剰に包括的である。例えば、ストア停止ロジック413はアドレスマッチの存 在をチェックする古い段階1のLdOpに対する新しい段階2のStOpを停止 する。別の実施例では、一層厳格に(又はより厳格度を小さくして)ストア停止 ロジック413おける停止か、ストア停止ロジック413の動作そのもの、また はその両方を開始する条件の組を限定している。しかし、この実施例では、スト ア停止ロジック413は一般的な命令プロフィールにおいてLdOpsがStO psに依存していることが多い、又は逆のことか多いという推定に基づいて、停 止条件の限定度を緩めている。 第4図を参照すると、ストア停止ロジック413がストア順序付けロジック4 34bからのストアユニット453のSU2 412におけるLdOpの相対的 古さの指示信号を受け取る。特に、ストア停止ロジック413はストア順序付け ロジック434bの各スキャンチェーン(LU2オルダスキャンチェーン434 b.1及びLU1オルダスキャンチェーン434b.2)からのSC_LU1O LDER及びSC_LU2OLDER指示信号を受け取る。ストア停止ロジック 413はロードユニット152のLU2 402段階におけるLdOpsに対す る部分的アドレス信号、及びストアユニット153のSU2 412におけるS tOpに対する部分的アドレス信号も受け取る。これらの入力に基づいて、スト ア停止ロジック413は供述のRTL記述に従ってSU2 412におけるSt Op(及び後続のStOps)を機能停止する停止信号(SU2_Hold)を 選択的にアサートする。 StOps(Ops、オペランド、変位値、及びコントロール信号を含む)は 、共同バス189として図示されている各バス及びラインを介してSU1 41 1に達する。SU2 412におけるStOpsに対するメモリアドレス及びス トアオペランドは、SU2_Holdが逆アサート(又は解放)されたときスト アキュー159に供給される。次いで、ストアキュー159はストアオペランド をデータキャッシュ170を介してアドレス空間に書き込む。ストアユニット1 53の両段階(SU1 411及びSU2 412)はデータTLB171及び メモリ階層の様々なレベル(L1データキャッシュ170、L2キャッシュ11 0、主メモリ等)に存在する他のメモリ管理構造とやりとりし、仮想アドレス( 又はリニアアドレス)を物理的アドレスに変換する。 当業者は上述のRTLに適合するストア停止ロジック413の様々なインプリ メンテーションを理解することができるであろう。ストア停止ロジック413は 適切なものであれば、どのようなインプリメンテーションでもよい。第6図には 、ストア停止ロジックの組み合わせ論理回路としての実現形態の一例を示したも のである。スキャンチェーンを含むスケジューラロジック スケジューラ180はLdOpsとStOpsとの間の十分な実行順序付けを 維持するためのサボートも提供する。この実施例においては、このサポートはロ ード停止ロジック403及びストア停止ロジック413へ相対的古さ指示信号を 供給するスキャンチェーンの形態である。上述のように、順序付けはロード及び ストアパイプライン処理の段階2(即 ちLU2402及びSU2412)においてオペレーションを停止することによ り維持される。実行順序付けは、メモリ位置を参照するStOpsに対して維持 される。この実施例では、実際にメモリをアドレス指定しないLEAStOps (ロード実行アドレス)に対しては順序付けは強制されていないが、誤りである 可能性のあるアドレスを発生するCDA及びCIAStOps(チェックデータ 実行アドレス及びチェック命令実行アドレス)は順序付けスキームの中に含めら れ、回路デザインが単純化されている。LdOpsの中に順序付けスキームから 除外されているものはないが、これは全てのLdOpstがメモリを参照するか らである。別の実施例には、LEA、CDA、及びCIAStOpsのようなO psを適切なものとして含むものか、除外しているものかの何れかの場合がある 。 第2図に戻ると、スケジューラ180内のロードーストア順序付けロジック2 34は、ロード実行ユニット及びストア実行ユニットのそれぞれの段階2におけ る特定のLdOps及びStOpsに関してLdStOpsの相対古さ指示信号 を供給する。ロードーストア順序付けロジック234は、スケジューリングリザ ーバ240における各Opエントリ(例えばOpエントリ240.1)のTyp e[2:0]フィールド241及びState[3:0]フィールド242にア クセスし、相対ストア古さ指示信号(例えばSC_LU2OLDER、及びSC _LU1OLDER、及びSC_LU0OLDER)をロードユニット152に 図面において189.5として示されている共通のラインを介して供給し、相対 ロード古さ指示信号(例えばSC_LU2OLDER、及びSC_LU1OLD ER)を同様に共通のラインを介してストアユニット153に供給する。 第4図には、ロード/ストア順序付けロジック234がロード順序付 けロジック434a及びストア順序付けロジック434bの一部分として示され ている。LdOpsの場合にはロード順序付けロジック434aが、SU2 4 12に於けるStOpsがあればそれに関連して、SU1 411に於けるSt Opsがあればそれに関連して、また処理の早い段階に於ける他のStOpsに 関連して、LU1 401に於けるLdOpの相対的古さを決定する。StOp sについては、ストア順序付けロジック434bが、LU2 402に於けるL dOpがあればそれに関連して、また処理の早い段階に於ける他のLdOpsに 関連してSU1 411に於けるSTOPの相対的古さを決定する。 第4図には、3要素スキャンチェーンSU、即ちオルダスキャンチェーン43 4a.1、SU1オルダスキャンチェーン434a.2、及びSU0オルダスキ ャンチェーン434a.3を含むロード順序付けロジック434aが示されてい る。各要素スキャンチェーンは、スケジューリングリザバ240に於けるOpエ ントリのType[2:0]フィールド241及びState[3:0]フィー ルド242(図示せず)に基づいて各相対的古さ指示信号を供給する。SU2オ ルダスキャンチェーン434a.1は、SC_SU2OLDERを供給し、SU 1オルダスキャンチェーン434a.2は、SC_SU1OLDERを供給し、 SU0オルダスキャンチェーン434a.3は、SC_SU0OLDERを供給 する。 ストア順序付けロジック434bのデザインは、ロード順序付けロジック43 4aに類似しているが対称的ではない。特に、ストア順序付けロジック434b は成分スキャンチェーンLU2、オルダスキャンチェーン434b.1及びLU 1オルダスキャンチェーン434b.2を含む。ノード順序付けロジック434 aの場合と同様にストア順序付けロジック434bの各成文スキャンチェーンは 、Type[2:0]フィ ールド241及びState[3:0]フィールド242を用いて、各相対的古 さ指示信号を供給する。LU2オルダスキャンチェーン434b.1は、SC_ SU2OLDERを供給し、LU1オルダスキャンチェーン434b.2は、S C_LU1OLDERを供給する。説明のため各スキャンチェーンは独立したス キャンチェーンとして示されているか、当業者は、ロード順序付けロジック43 4a及びストア順序付けロジック434bがロジックを共有し得る、例えばTy pe[2:0]及びState[3:0]検出回路を各成分スキャンチェーンの 後で共有し得るということを理解できよう。 この好適実施例では、ロード順序付けロジック434a及びストア順序付けロ ジック434bが(ルックアヘッドでなく)階層的設計のスキャンロジックを有 しており、これについて第4図〜第10図を参照しつつここに説明する。LdS tOpのための段階2の第1フェーズの間、ロード順序付けロジック434aま たはストア順序付けロジック434b、若しくはその双方のスキャンロジックは 、スケジューラ180の古さで順序づけられたOpエントリ240の中から互い に反対の型の古いLdStOpをスキャンする。即ちロード順序付けロジック4 34aは、古いStOpsをスキャンし、ストア順序付けロジック434bは古 いLdStOpをスキャンする。この実施例では、ロード順序付けロジック43 4aのスキャンロジックの3つのインスタンスのそれぞれ、及びストア順序付け ロジック434bのスキャンロジックの2つのインスタンスのそれぞれが、古さ で順序づけられたOpエントリ240のグループ内のスキャンと、及びグループ 群の一括スキャンの双方を行うための階層的に編成されたスキャンロジックを含 む。第7図〜第10図には、それぞれ3つのOpエントリからなる8つのグルー プに編成された24個のOpエントリを有するスケジューラの実施例のスキャン ロジックが 示されている。しかし、当業者は以下の説明に基づいて、異なる数のOpエント リ及び異なる数のグループから成る編成の実施例を理解することもできよう。 24Opエントリ/8グループのスケジューラ180の実施例のためのスキャ ンロジックの例の一般的な構造について第7図を参照しつつここに説明する。存 在指示ロジック(presence indication logic)710のインスタンスは、イン プリメントされた特定のスキャンロジック(即ちSU2オルダスキャンロジック 434a.1、SU1オルダスキャンロジック434a.2、SU0オルダスキ ャンロジック434a.3、LU2オルダスキャンロジック434b.1、又は LU1オルダスキャンロジック434b.2)が関係するType[2:0]及 びState[3:0]の組み合わせを検出する。例えば、第7図のようにイン プリメントされたSU1オルダスキャンロジック434a.2のための存在指示 ロジック710は、対応するOpエントリが段階1StOpを含んでいるか否か を検出する。存在指示ロジック710の23個のインスタンスのそれぞれは、グ ループ内処理ロジック740か、グループ群一括処理ロジック、若しくはその両 方(即ち第1レベルグループ群一括処理ロジック760、第2レベルグループ群 一括処理ロジック750、及び第3レベルグループ群一括処理ロジック730の 何れか、若しくはその全て)が使用するためのスキャンロジックの特定のインス タンスに適切な対応する存在指示信号(即ちP[1]、p[2]、...p[2 3])を供給する。第7図の実施例では、P[0]が使用されない。 選択指示ロジック720の対応するインスタンスも、Type[2:0]フィ ールド値とState[3:0]フィールド値の組み合わせを検出する。しかし 、選択指示ロジック720のインスタンスの場合、検出されたType[2:0 ]及びState[3:0]フィールド値は、 ストア順序付けロジック434bのスキャンロジックインスタンスのための段階 2StOp(即ちSU2412におけるStOp)のスキャンロジックインスタ ンス、及びロード順序付けロジック434aのスキャンロジックインスタンスの ための段階2LdOp(即ちLU2402におけるLdOp)を表す。選択指示 ロジック720の23個のインスタンスのそれぞれは、グループ内ロジック74 0とグループ群一括処理ロジックの何れか、若しくはその両方(即ち第1レベル グループ群一括処理ロジック760、第2レベルグループ群一括処理ロジック7 50、及び第2レベルグループ群一括処理ロジック730の何れか、若しくはそ の全部)が使用するための特定のスキャンロジックインスタンスのロー グループ内処理ロジック740は、それぞれが、特定のスキャンロジックの存 在指示ロジック710によって検出されたType[2:0]及びState[ 3:0]の組み合わせに一致し、同じグループ内の選択されたOpエントリより 古いOpの各Opグループ内に存在していることを示す指示信号を供給する。ス ケジューリングリザーバ240のO 場合の基礎となる選択されたOpエントリを示す。ここで説明する、ロード順序 付けロジック434a及びストア順序付けロジック434bのスキャンロジック を実現する実施例では、1つのOpエントリ選択指示信号が、第7図のように実 現されたスキャンロジックの各インスタンスに供給される。そのように供給され た1つのOpエントリ選択は、それがあれば、ロードユニット152又はストア ユニット153の段階2に おけるLdStOpに対応している。即ちSC_SUxOLDERスキャンロジ ックのための段階2LdOpに対応し、且つSC_SUxOLDERスキャンロ ジックのための段階2StOpに対応している。別の実施例では、Opエントリ 選択指示ロジックに適切な変更を加えて、異なる実行段階における異なる型のO pを選択し、更に、その様にして表示された多数のOpエントリに対して、相対 的な古さ(又は他の優先順位で)の比較のための多数の選択指示信号を供給し得 る。 第8図の実施例では、グループ内処理ロジック740が、6入力OR−NAN D複合ゲートによって実現された各グループのためのロジック(例示的には、w ithin−grp_2ロジック842)を含む。勿論、当業者は、特定のOp エントリグループ内で選択されたOpエントリ及び古いオペレーション検出を示 す指示信号を供給するための他の様々な適切なロジック構成を考えることができ よう。各グループに対するグループ内指示信号(即ちSUM[0]、SUM[1 ]、...SUM[7])は、結合処理ロジック770に部分的に結合され、そ のいくつかのゲートは第7図に示されている。 第9図に示すのは、第1レベルグループ群一括処理ロジック760と第2レベ ルグループ群一括処理ロジック750共通の重複ロジック部分である。第1レベ ルグループ群一括処理ロジック760は、Opエントリの第1グループにおける 選択されたOpエントリと、隣接する古いOpエントリのグループにおける古い オペレーション検出とを示す(例えばgrp_0における選択されたOpエント リとgrp_1における古いOp検出や、grp_2における選択されたOpエ ントリとgrp_3における古いOp検出等を示す)指示信号(S0P1_S2 P3及びS4P5_S6P7)を供給する。第9図の実施例では、第1レベルグ ループ群一括処理ロジック760が、NANDゲートの第1段階とAN Dゲートの第2段階の機能性によりインプリメントされている。ANDゲートの 機能性は、4入力複合AND−NORゲート772及び773と結合処理ロジッ ク770が関係するNOR機能により与えられている。勿論、当業者は、Opエ ントリの第1グループにおける選択されたOpエントリとOpエントリの第2グ ループにおける古いオペレーション検出を示す指示信号を供給するための他の様 々な適切なロジック構成を考えることができよう。隣接する2グループの組のそ れぞれに対する第1レベルグループ群一括処理指示信号は、部分的に結合処理ロ ジック770に結合され、そのいくつかのゲートは第9図に示されている。 第2レベルグループ群一括処理ロジック750は、2つの隣接するOpエント リのグループの何れかにおける選択されたOpエントリと、2つの隣接する古い Opエントリのグループの何れかにおける古いオペレーション検出とを示す(例 えばgrp_0かgrp_1の何れかにおける選択されたOpエントリとgrp _2かgrp_3における古いOp検出や、grp_4かgrp_5の何れかに おける選択されたOpエントリとgrp_6かgrp_7における古いOp検出 等を示す)指示信号(S01P23及びS45P67)を供給する。第9図の実 施例では、第2レベルグループ群一括処理ロジック750が、NANDゲートの 第1段階、4入力複合OR−NANDゲート(951及び952)の第2段階、 及びインバータの第3段階によって実現されている。勿論、当業者は、2つのO pエントリのグループの何れかにおける選択されたOpエントリと2つの古いO pエントリのグループの何れかにおける古いオペレーション検出とを示す指示信 号を供給するための他の様々な適切なロジック構成を考えることができよう。 第10図に示すのは、初めの4つのOpエントリのグループの1つにある選択 されたOpエントリと他の4つの古いOpエントリのグループ の任意のグループにおける古いオペレーション検出とを示す(即ち、grp_0 、grp_1、grp_2、又はgrp_3における選択されたOpエントリと grp_4、grp_5、grp_6、又はgrp_7における古いOp検出と を示す)即値指示信号(Sgrp 1023及びPgrp 4567)を供給す る第3レベルグループ群一括処理ロジック730である。第7図及び第10図の 実施例では、Sgrp_1023及びPgrp_4567即値指示信号は、NA NDゲートの第1段階及びORゲートの第2段階によって供給され、Sgrp_ 1023及びPgrp_4567の結合即値指示信号は、3入力の複合AND− NORゲート771のAND機能性により供給される。このようにして、第3レ ベルグループ群一括処理ロジックの機能性及び結合処理ロジック機能性の一部は 、複合AND−NORゲート771により与えられる。勿論、当業者は、4つの Opエントリのグループの何れかにおける選択されたOpエントリと他の4つの 古いOpエントリグループの1つにおける古いオペレーション検出とを示す指示 信号を供給する様々な他の適切なロジック構成を考えることができよう。 第7図を再び参照されたい。ここで結合処理ロジック770は、グループ内処 理ロジック740及びグループ群一括処理ロジック(即ち第1レベルグループ群 一括処理ロジック760、第2レベルグループ群一括処理ロジック750、及び 第3レベルグループ群一括処理ロジック730)からの指示信号を結合して、特 定の実現されたスキャンロジックのための相対的古さ指示信号を供給する。結合 処理ロジック770のORゲート、NORゲート、及びNANDゲート段階を総 合することにより、ORツリーのド・モルガン等価論理(DeMorgan equivalent )が提供される。勿論、当業者は、グループ内処理及びグループ群一括処理指示 信号を結合して、複合相対古さ指示信号を供給するための他の様々な適切 なロジック構成を考えることができよう。有利な点は、結合処理ロジック770 のロジック設計が、グループ内処理ロジック740、第1レベルグループ群一括 処理ロジック760、第2レベルグループ群一括処理ロジック750、及び第3 レベルグループ群一括処理ロジック730をまとめて考えたとき、どのような経 路に沿ってもインバータゲート遅延が5未満で済む点である。 Opエントリの数がこれより多い場合や少ない場合も、同様にゲート遅延の数 が少なくて済むという利点が得られる。例えば、当業者は、2x、4x等のOp エントリカウントが、Opエントリカウント増加の二進法で示す大きさの各オー ダーに対して追加のインバータゲート遅延を与える似たようなグループ内処理ロ ジック、グループ群一括処理ロジック、及び結合処理ロジックでサポートされ得 ることを理解されよう。Opエントリの数が少ない場合には、同様にインバータ ゲート遅延が少なくなり得る。より一般的には、本発明による、3つのグループ としてスキャンされるスキャンロジックのインプリメンテーションで、Opエン トリの数が多いものや少ないもの(例えばOpエントリの数が3、6、12、4 8、96、...)では、インバータゲート遅延がLog2(N/3)+2とな る。ここでNはOpエントリの数である。このようなスキャンロジックインプリ メンテーションの実施例は、階層的に編成されたグループ群一括処理ロジックの Log2(N/3)個の連続したレベルを有する。 ここに開示した24個のOpエントリの実施例では、3つのメンバからなるグ ループが有利である。というのは、3の倍数の全ての数は24個のOpエントリ エントリにマップでき、ロジックセルライブラリのスーツ(suite)が利用可能 だからである。にもかかわらず、より多い或いは少ないグループの数も、グルー プ群一括処理階層の各レベルにおい て適するものである。ゲート及び複合ゲートの適切な選択は当業者には明らかで あろう。更に、ここでは各グループが同一の大きさのものとして示されており、 グループ群一括処理ロジックが、グループ群一括処理階層の各連続したレベルで Opエントリ範囲が倍増してゆく形で示されているが、グループの大きさが一様 でなく、グループ群一括処理階層の連続した各レベルにおいてOpエントリの範 囲の増加度が異なっている別の実施例も可能である。スキャンロジックに適切な 改変を加えることは、当業者には明らかであろう。 当業者には明らかなように、グループ内処理ロジック及びグループ群一括処理 ロジック(例えばグループ群一括処理ロジック740、第1レベルグループ群一 括処理ロジック760、第2レベルグループ群一括処理ロジック750、及び第 3レベルグループ群一括処理ロジック730)、及び結合処理ロジック770の 間の境界は、ある程度は任意であり。様々な境界の定義が可能である。更に、あ るロジックの機能性が、異なる図面において示されたロジックブロックの間で共 有され得る。例えば、第9図及び第10図の双方に示された、グループ選択指示 信号(例えばSELgrp[0]、SELgrp[1]、SELgrp[2]、 及びSELgrp[3])及びグループ存在指示信号(例えばPgrp[4]、 Pgrp[5]、Pgrp[6]、及びPgrp[7])に対するロジックは、 第1レベルグループ群一括処理ロジック760、第2レベルグループ群一括処理 ロジック750、及び第3レベルグループ群一括処理ロジック730の間で共有 され得る。 スキャンロジックの1個のインスタンスに焦点を当てて説明すると、第7図〜 第10図に示すように実現されたSU2オルダスキャンロジック434a.1は 、段階2StOpが関係するOpエントリ240のOpエントリの存在指示信号 を供給するように構成された存在指示ロジッ ク710を含む。選択指示信号は、段階2LdOp(即ちLU2402における LdOp)が関係するOpエントリ240の特定のOpエントリを表示する選択 指示ロジック720のインスタンスにより供給される。存在指示信号及び選択指 示信号に基づき、グループ内処理ロジック740は、1つのグループが関係する Opエントリの1つにおける段階2LdOp、及び同じグループの古いOpエン トリにおける段階2StOpの存在を示すグループ内指示信号を供給する。第2 レベルグループ群一括処理ロジック760は、特定のグループが関係するOpエ ントリの1つにおける段階2LdOpと、隣接する古いグループが関係するOp エントリにおける段階2StOpの存在とを示す第1レベルグループ群一括処理 指示信号を供給する。それと同様に、第2レベルグループ群一括処理ロジック7 50は、一対の隣接するグループが関係するOpエントリの1つにおける段階2 LdOpと、一対の隣接する古いグループが関係するOpエントリにおける段階 2StOpの存在とを示す第2レベルグループ群一括処理指示信号を供給する。 最後に、第3レベルグループ群一括処理ロジック730は、4つの隣接するグル ープの組が関係するOpエントリの1つにおける段階2LdOpと、4つの隣接 する古いグループの組が関係するOpエントリの1つにおける段階LdOpと、 隣接する4つの古いグループの組が関係するOpエントリにおける段階2StO pの存在とを示す第3レベルグループ群一括処理指示信号を供給する。古い段階 2StOp指示信号は、グループ内処理ロジック又はグループ群一括処理ロジッ クの任意のものが対応する古い段階2StOp指示信号を供給する場合、結合処 理ロジック770から(SC_SU2Older信号として)供給される。 ロード順序付けロジック434aの残りのスキャンロジックの設計及び動作は 類似している。例えば、SU1オルダスキャンロジック434 a.2のグループ内処理ロジック及びグループ群一括処理ロジックは、スケジュ ーラ180のエントリをスキャンし、結合多重化ロジック434a.5は、ロー ド停止ロジック403にSC_SU1Older信号を供給する。同様に、SU 0オルダスキャンロジック434a.3のグループ内処理ロジック及びグループ 群一括処理ロジックは、スケジューラ180のエントリをスキャンし、関連する 結合処理ロジック434a.6は、ロード停止ロジック403にSC_SU0O lder信号を供給する。相対的古さ指示信号(SC_SU2Older、SC _SU1Older、及びSC_SU0Older)がロード停止ロジック40 3に供給され、そこで5のSUアドレスコンパレータ信号(AddrMatch 1及びAddrMatch2)が検証するべきか、より一般的には段階2LdO pを停止するべきか否かを決定する。 ストア順序付けロジック434bに対するスキャンロジックインスタンスは類 似している。スキャンロジックの1つのインスタンスに焦点を当てて説明すると 、第7図〜第10図に示すように実現されたLU2オルダスキャンロジック43 4b.1は、段階2LdOpが関係するOpエントリ240のOpエントリにお ける存在指示信号を供給するように構成された存在指示ロジック710を含む。 選択指示信号は、段階2StOp(即ちSU2412におけるStOp)が関係 するOpエントリ240の特定のOpエントリを表示する選択指示ロジック72 0のインスタンスにより供給される。存在指示信号及び選択指示信号に基づき、 グループ内処理ロジック740は、特定のグループが関係するOpエントリの1 つにおける段階2StOpと、同じグループの古いOpエントリにおける段階2 LdOpの存在とを示すグループ内指示信号を供給する。第1レベルグループ群 一括処理ロジック760は、特定のグループが関係するOpエントリの1つにお ける段階2StOpと、隣接する古 いグループが関係するOpエントリにおける段階2LdOpの存在とを示す第1 レベルグループ群一括処理指示信号を供給する。ここから類推されるように、第 2レベルグループ群一括処理ロジック750は、一対の隣接するグループが関係 するOpエントリの1つにおける段階2StOpと、隣接する一対の古いグルー プが関係するOpエントリにおける段階2LdOpの存在とを示す第2レベルグ ループ群一括処理指示信号を供給する。最後に、第3レベルグループ群一括処理 ロジック730は、4つの隣接するグループの組が関係するOpエントリの1つ における段階2StOpと、4つの隣接する古いグループの組が関係するOpエ ントリにおける段階2LdOpとを示す第3レベルグループ群一括処理指示信号 を供給する。古い段階2LdOp指示信号は、グループ内処理ロジック又はグル ープ群一括処理ロジックの任意のものが対応する古い段階2LdOp指示信号を 供給する場合、結合処理ロジック770から(SC_SU2Older信号とし て)供給される。 ストア順序付けロジック434bのスキャンロジックの残りのインスタンスの 設計及び動作は類似している。具体的には、LU2オルダスキャンロジック43 4b.2のグループ内処理ロジック及びグループ群一括処理ロジックは、スケジ ューラ180のエントリをスキャンし、結合処理ロジック434b.5が、スト ア停止ロジック413にSC_SU1Older信号を供給する。相対的古さ指 示信号(SC_SU2Older及びSC_SU1Older)は、ストア停止 ロジック413に供給され、そこで、LU段階2アドレスコンパレータ(Add rMatch2)を検証すべきか否か、及び段階2StOpを停止すべきか否か が決定される。 Opエントリレベル存在指示信号P[x]は、エントリのState[3:0 ]フィールド(特にS1、S2、及びS3ビット)及びTyp e[2:0]フィールド(ST又はLU)に基づいている。LdOpスキャンロ ジックの3つのインスタンスに対して、STタイプビットがSUビットの代わり に用いられる。これにより論理アドレスを発生するだけのLEAオペレーション が実際にメモリを参照するStOpが区別される。 後続の、LUst2、LUst1、及びLUst0という添え字が付されたO pエントリ方程式は、SU2オルダスキャンロジック434a.1、SU1オル ダスキャンロジック 434a.2、及びSU0オルダスキャンロジック434 a.3として上述のようにそれぞれエミュレートされたスキャンロジックに対す るOpエントリXに対応するP[x]タームを表示する。同様に、SUld2及 びSUld1という符号が付されたOpエントリ方程式は、LU2オルダスキャ ンロジック434b.1及びLU1オルダスキャンロジック434b.2として 上述のようにエミュレートされたスキャンロジックに対するOpエントリにxに 対応するP[x]タームを表示する。ビットラベルまたはOpエントリ方程式 この実施例に於いては、(S2+S1 SU2 FirstAddrV)及び (S2+S1 LU2_FirstAddrV)タームは、位置合わせされてい ないメモリアクセスオペレーションの前半を実行する段階1LdStOpsの機 能停止を管理するためにOpエントリ方程式を拡張する。 再度第8図を参照すると、SUM_01決定ゲートを含むスキャン及び結合処 理ロジック841の実施例が示されている。この実施例の設計は、同様に図示さ れているSUM_234及びSUM_567決定ゲートの設計に類似している。 第10pクワッドが関係するOpエントリ、即ちgrp_0及びgrp_1のO pエントリ0、1、2、及び3に対するエントリ指示信号の相対的な遅さを取り 扱うための実施例では、別のSUM 01決定ロジック841aが好適である。 このような別のSUM 01決定ロジック841aは、第12図に示されており 、複合ゲート1201、1202、及び1203を含む。有利な点は、代わりの SUM_01決定ロジック841aでは、命令デコーダ140から供給されるO pクワッドOのOpエントリフィールド値によって決まる信号経路におけるイン バータゲートの遅れが3で済む点である。特に、代わりSUM_01決定ロジッ ク841aは、Ops0、1、2、及び3のType[2:0]及びState [3:0]フィールド値に応じて信号の為のより短い信号経路を提供し、それら の信号に複合ゲート1201、1202、及び1203のより速い入力を割り当 てる。このようにして、Opエントリの到着遅れの影響が低減される。プロセッサ及びシステムの実例 第1図はこの発明のスーパースケーラプロセッサ実施例を示す。スーパースケ ーラプロセッサ100は限定命令セット計算(RISC)アーキテクチャを実施 する実行エンジン150、命令デコーダ140、キャッシュ、及びメモリサブシ ステム122に表現されるアドレス空間へのアクセス及びローカルバス(図示し ない)上のデバイスへのアクセスを提供するシステムインターフェース120を 含む。 スーパースケーラプロセッサ100は、ここに記載の実施例においては別個の データ及び命令部として構成されたキャッシュを含む。データ キャッシュ170及び命令キャッシュ130は、主メモリを含みかつオプション として例証的にはL2キャッシュである追加的レベルのキャッシュを含むメモリ サブシステム122に表されるアドレス空間に(キャッシュ制御ロジック160 を介してかつシステムインターフェース120によって)接続される。L2レベ ルキャッシュへのアクセス、即ちL2キャッシュ制御ロジック及びL2データ部 (図示しない)へのアクセスはシステムインターフェース120を介して提供さ れる。代替的には、L2キャッシュ制御ロジックは(L1のための)キャッシュ 制御ロジック160とシステムインターフェース120の間に介装することがで きる。 キャッシュシステム設計は当業界において周知である。特に、分割、ハーバー ドアーキテクチャ命令及びデータキャッシュ(符号170及び130のような) 、並びに多重レベルキャッシュ階層構造を実現する適当な設計がキャッシュ技術 分野において周知である。多くの点において、スーバースケーラプロセッサ10 0のキャッシュサブシステム(即ちデータキャッシュ170、命令キャッシュ1 30、キャッシュ制御ロジック160、及びオプションであるL2キャッシュ) はそのような適当な設計の何れかである。しかしながら、そのキャッシュ性能か らは別個の理由により命令キャッシュ130はプレデコードロジック(図示しな い)と一体にされている。そのように一体化されたプレデコードロジックは取り 出された命令ストリーム内のx86命令境界を識別し、命令デコーダ140によ る命令の迅速なデコーディングを促進する。 第1図を再び参照するに、命令シーケンスは実行エンジン150により予想さ れる実行のためにメモリサブシステムから命令キャッシュ130へとロードされ る。第1図に示されるプロセッサ100の実施例に従い、命令キャッシュ130 内の命令はx86プロセッサアーキテクチャ に適合するプロセッサによって実施されるx86命令のような複合命令セットか ら選択されたCISC命令である。命令デコーダ140は命令キャッシュ130 から受け取ったCISC命令を実行エンジン150での実行のためのオペレーシ ョンへと変換する。第1図の実施例において、これらのオペレーションはRIS C類似オペレーション(以下「OPs」と言う)であり、命令キャッシュ130 からの単一x86命令は実行エンジン150のための1以上のOPsに復号する 。個々のOPsはレジスタオペレーション(RegOps)、ロード−ストアオ ペレーション(LdStOps)、ロード即値オペレーション(LIMMOps )、特殊オペレーション(SpecOps)、及び浮動小数点オペレーション( FpOps)を含む数種の型のグループの1つに分かれる。代替的実施例では異 なる命令セットを解読して実行のために異なるオペレーション形式を供給しても よい。 命令デコーダ140は分岐予測ロジック143と共にハードウェア変換部Ma cDec141及びROMベース変換部142である2個の命令変換部を含む。 最も共通的なx86命令はハードウェア変換部141内に含まれる多重並列ハー ドウェアデコーダを使用する1乃至4のOPsの短いシーケンスに変換される。 ハードウェア変換部141は命令キャッシュ130から受け取ったこれらの共通 的なx86命令を短いシーケンスに解読しこれは次にスケジューラ180に供給 される。あまり共通的でないx86命令及び4OPsよりも長いOPシーケンス に変換するこれらのx86命令は変換されるべき特定x86命令に符合したOP sの変換シーケンスを(ROMから)取り出すROMベース変換部142によっ て変換される。何れかのソースからの変換されたOPシーケンスは、ハードウェ アデコーダによって生成されたかROMから取り出されたかに係わりなく、実行 エンジン150による実行のためにスケジューラ180に供給される。 第1図を再度参照するに、実行エンジン150はスケジューラ180、レジス タファイル190及びスケジューラ180によってディスパッチされたOPsを 受取り実行する多重実行ユニットを含む。代替的実施例においては実行ユニット のセットに追加しまたはこれから差し引くことが可能であるが、第1図の実施例 においては実行エンジン150はロードユニット152、ストアユニット153 、レジスタユニット154及び155、浮動小数点ユニット156、マルチメデ ィアユニット157、並びに分岐ユニット158である7つの実行ユニットを含 む。例示的実施例においては、浮動小数点ユニット156とマルチメディアユニ ット157を省略する。実行エンジン150はまたストアユニット153とデー タキャッシュ170の間に介装されるストアキュー159を含む。 スケジューラ180は記憶エントリとこれに接続するロジックブロックの指定 された配列として構成され、この記憶エントリとロジックブロックは協働してO psの実行ユニットへのOUT−OF−ORDERディスパッチのため且つOp 結果の1以上の実行ユニットへの転送のための支援を提供する。記憶エントリと ロジックブロックの指定された配列はまた再命令バッファを実施し、レジスタフ ァイル190内に形成されたアーキテクチャレジスタの再命名を提供し、投機的 実行の回復を提供する。命令デコーダ140はスケジューラ180に命令ストリ ームから解読された新規のOpsを供給する。次に、スケジューラ180は受け 取った新規の各Opに関連したデータを(記憶エントリ内に)格納し保持する。 このようにして、Opが実行ユニットに発行されかつ実行ユニットによって実行 されるに伴いスケジューラ180が各Opの状態とその関連するデータを追跡調 査する。与えられたOpが完全に実行されかつデータ依存性が明瞭になった後に 、それは退避(retire)されそして符合するスケジューラエントリは解除 される。 スケジューラ180はバス189として一括して示される一群のバス及び制御 線を介して実行ユニット(即ち、ロードユニット152、ストアユニット153 、レジスタユニット154及び155、浮動小数点ユニット156、マルチメデ ィアユニット157並びに分岐ユニット158)に接続される。スケジューラ1 80は実行ユニットにOps、レジスタオペランド及び制御信号を供給し、例証 的にはバス189を介して実行ユニットから戻される結果値及び状態指示信号を 受け取る。もちろん、全てのバスと制御線とは完全に接合している必要はなく、 バス189は実行ユニットに対するスケジューラ180の双方向接続の単なる例 示である。 ロードユニット152とストアユニット153は、それぞれアドレス可能なメ モリからのロードしたデータとアドレス可能なメモリへの格納したデータである LdStOps(即ちLdOpsとStOps)を実行する。特定のメモリアド レスのキャッシュ状態に依拠して、LdStOpはL1データキャッシュ170 、L2キャッシュ(図示しない)、主メモリ(図示しない)のいずれかにおいて 完了する。ストアキュー159はストアユニット153からのデータを一時的に 格納しストアユニット153とロードユニット152とはデータキャッシュ17 0へのアクセス競合無しに並行して演算することができる。レジスタユニット1 54と155はRegOpsを実行しこのRegOpsはレジスタファイル19 0のアーキテクチャレジスタに関連したデータに基づいて演算する。 本発明に基づくロード/ストアオペレーションのOUT−OF−ORDER実 行コントロールを実現する様々なコンピュータシステムコンフィギュレーション が考えられる。例えば、このようなコンピュータシステム(例えばコンピュータ システム1000)は、本発明によるロード /ストアOUT−OF−ORDER実行コントロールを提供するプロセッサ10 0、メモリサブシステム(例えばRAM1020)、ディスプレイアダプタ10 10、ディスクコントローラ/アダプタ1030、様々な入力/出力インタフェ ース及びアダプタ(例えば並列インタフェース1009、直列インタフェース1 008、LANアダプタ107等)、及び対応する外部装置(例えばディスプレ イデバイス1001、プリンタ1002、モデム1003、キーボード1006 、及びデータ記憶装置)を含む。データ記憶装置には、例えばハードディスク1 032、フロッピーディスク1031、テープユニット、CD−ROM、ジュー クボックス、RAID(redundant array of inexpensive disks)、フラッシュ メモリ等のような装置が含まれる。追加実施例 以下は本発明による追加実施例である。 A1. オペレーションエントリの古さ順配列において、オペレーションタイプ 基準と一致する1つ或いはそれ以上の古いエントリからなる選択されたエントリ を含む存在エントリをシグナリングするためのスキャンロジックにおいて、 第1グループ内のオペレーションエントリの各エントリに対する選択指示信号 及びオペレーションタイプ基準指示信号を受信するために接続される第1グルー プ内処理ロジックにおいて、そのような各選択指示信号がそれぞれ、対応するエ ントリが選択されたエントリであるか否かを指示し、第1グループ内処理ロジッ クが、第1グループ内において選択されたエントリ、並びにオペレーションタイ プ基準と一致する古いオペレーションの第1の結合を識別し、 第2グループのオペレーションエントリ内の各エントリに対する選択 指示信号及びオペレーションタイプ基準指示信号を受信するために接続される第 2グループ内処理ロジックにおいて、そのような各選択指示信号がそれぞれ、対 応するエントリが選択されたエントリであるか否かを指示し、第2グループ内処 理ロジックが、第2のグループにおいて選択されたエントリ、並びにオペレーシ ョンタイプ基準と一致する古いオペレーションの第2の結合を識別し、 第1グループのオペレーションエントリ内の各エントリに対する選択指示信号 及び第2グループのオペレーションエントリ内の各エントリに対する選択指示信 号を受信するために接続される第1グループ群一括処理ロジックであって、その 第1のグループ群一括処理ロジックが、第1グループ内の選択されたエントリ、 並びに第2グループ内のオペレーションタイプ基準と一致する古いオペレーショ ンの第3の結合を識別し、 第1グループ内処理ロジック、第2グループ内処理ロジック並びに第1グルー プ群一括処理ロジックに接続される結合処理ロジックが、それらの識別信号を受 信し、任意の識別信号に応じてオルダ(older)エントリ識別信号を供給する。 A2. 請求項A1のスキャンロジックがさらに、 それぞれ第3及び第4のグループのオペレーションエントリにおける各エント リに対する選択指示信号及びオペレーションタイプ基準指示信号を受信するため にそれぞれ接続される第3及び第4のグループ内処理ロジックにおいて、第3及 び第4のグループ内処理ロジックがそれぞれ、第3及び第4のグループのそれぞ れにおける選択されたエントリ及びオペレーションタイプ基準に一致する古いオ ペレーションの第4及び第5の結合を識別し、 第3グループのオペレーションエントリにおける各エントリに対する選択指示 信号、並びに第4のグループのオペレーションエントリにおけ る各エントリに対するオペレーションタイプ基準指示信号を受信するために接続 される第2のグループ群一括処理ロジックにおいて、その第2グループ群一括処 理ロジックが第3グループ内の選択されたエントリ、並びに第3及び第4グルー プ内のオペレーションタイプ基準と一致する古いオペレーションの第6の結合を 識別し、 先に述べた結合処理ロジックがさらに第3グループ内処理ロジック、第4グル ープ内処理ロジック並びに第2グループ群一括処理ロジックに接続され、第4、 第5並びに第6の結合信号をそこから受信し、また結合処理ロジックが任意の第 1、第2、第3、第4、第5並びに第6の結合信号に応じてオルダエントリ識別 信号を供給する。 A3. 請求項A1のスキャンロジックがさらに、 それぞれ第3及び第4グループのオペレーションエントリ内の各エントリに対 する選択指示信号及びオペレーションタイプ基準指示信号を受信するためにそれ ぞれ接続される第3及び第4グループ内処理ロジックにおいて、第3及び第4グ ループ内処理ロジックが、それぞれ第3及び第のグループ内の選択されたエント リ及びオペレーションタイプ基準に一致する古いオペレーションの第4及び第5 の結合を識別し、 第3グループのオペレーションエントリ内の各エントリに対する選択指示信号 、並びに第4グループのオペレーションエントリ内の各エントリに対するオペレ ーションタイプ基準指示信号を受信するために接続される第2グループ群一括処 理ロジックにおいて、その第2グループ群一括処理ロジックが第3グループ内の 選択されたエントリ、並びに第3及び第4のグループ内オペレーションタイプ基 準と一致する古いオペレーションの第6の結合を識別し、 先に述べた結合処理ロジックがさらに第3グループ内処理ロジック、第4グル ープ内処理ロジック並びに第2グループ群一括処理ロジックに 接続され、第4、第5並びに第6の結合信号をそこから受信し、また結合処理ロ ジックが任意の第1、第2、第3、第4、第5並びに第6の結合信号に応じてオ ルダエントリ識別信号を供給する。 B1. ロードユニット及びストアユニットを有するプロセッサにおいて、ロー ド及びストア命令間でデータ依存性を強いる一方で、ロード及びストア命令が互 いに関して普通にOUT−OF−ORDER実行できるようするためのロード/ ストア実行コントローラであって、そのロード/ストア実行コントローラが、 各スケジューラオペレーションエントリがオペレーションシーケンス内の対応 するオペレーションを指示するような、古さ順配列のスケジューラオペレーショ ンエントリと、 ロードユニットに接続され、ストアオルダ指示信号(store older indication )受信時に、ロードユニット内のロードオペレーションを選択的に禁止するロー ド停止ロジックと、 オペレーションエントリ及びロード停止ロジックに接続され、ロードユニット 内のロードオペレーションに関連する古いストアオペレーションの存在を指示す るストアオルダ指示信号を供給するスキャンチェーンロジックとを含み、そのス キャンロジックがさらに、 それぞれの第1レベルグループの隣接エントリ内の各エントリに対する選択 信号及び第1の基準信号を受信し、それぞれの第1レベルグループ内の選択され たエントリ及びより高次のエントリのそれぞれの結合を識別するために接続され るグループ内処理ロジックと、 隣接ずるより低次の及びより高次の第1レベルグループからのエントリに対 応するそれぞれの選択信号及び第1の基準信号を受信し、低次第1レベルグルー プの1つにおいて選択されたエントリの結合を識別し、それぞれの高次第1レベ ルグループ内の高次エントリを識別するために 接続される第1レベルグループ群一括処理ロジックと、 グループ内処理ロジック及び第1レベルグループ群一括処理ロジックに接続さ れ、そこからの結合信号を受信し、さらに任意の結合信号に応じて高次エントリ 識別信号を供給する結合処理ロジックとを含む。 本発明は種々の実施例を参照して記載されているが、これらの実施例は例示に すぎず、本発明の範囲を制限するものではないことは理解されよう。ここで記載 される実施例の種々の変形、変更、追加或いは改良が可能である。例えば、Op クワッドとしてスケジューラ180内にあるOpエントリの機構は単なる例示で ある。別の実施例では、他の構造並びにまた方法が組み込まれ、多重或いはパイ プライン化実行ユニットを有するコンピュータにおけるオペレーションの性質或 いは状態を表せるかもしれない。スキャンロジックは、より大きな或いはより小 さなグループにグループ化された多数の或いは少数のOpエントリを収容するよ うに構成されるかもしれない。ここに記載された階層的な機構から逸脱すること なく、さらの種々のゲート/複雑ゲートレベルロジックにより設計することが適 当である。別の実施例では、ロードユニット152及びストアユニット153に おいて異なる構造及び機能が配分されるかもしれない。例えば、ロードユニット 152及びストアユニット153は別々に変更され、多数の或いは少数の実行段 階を含むかもしれない。所要のスキャンロジックインスタンスのセットへの相応 の変更は、当業者には明らかであろう。アドレス比較を行うための構造は、ロー ドユニット152とストアユニット153との間で異なって配分されるかもしれ ない。さらに別の実施例では、多数の或いは少数のスキャンロジックインスタン スが組み込まれ、LdOps及びStOpsを停止するかもしれない。アドレス 比較は、多くの従来の停止に関するポリシーを選択す ればなくせるかもしれない。さらに、典型的な実施例においてハードウエアで提 供される構造及び機能は、別の実施例では、ソフトウエア、ファームウエア或い はマイクロコードで実現されるかもしれない。以上の或いはこれ以外の変形、変 更、追加並びに改良は以下に示す請求の範囲において画定される本発明の範囲内 に含まれるであろう。
【手続補正書】特許法第184条の8第1項 【提出日】平成10年4月2日(1998.4.2) 【補正内容】 明細書 ロード/ストアオペレーションのOUT−OF−ORDER実行コントロールの ための階層的スキャンロジック技術分野 本発明はプロセッサに関し、特に複数の実行ユニットを有するプロセッサに於 けるOUT−OF−ORDER実行コントロールに関する。背景技術 通常、汎用コンピュータは、順序付けられたマシン命令のシーケンスとして実 行可能な形態で提供されるプログラムを実行する。人が読める表現形態のプログ ラムは、コンパイルとして知られているプロセスにより、所望のターゲットアー キテクチャ用のマシン命令のシーケンス、例えばx86プロセッサアーキテクチ ャに適合したプロセッサ用のオブジェクトコードに変換される。コンピュータプ ログラムは、通常、単純化のための仮定、即ち変換の結果得られるオブジェクト がシーケンスの順番に実行されるという仮定に基づいて、デザインされ、コード 化され、コンパイルされる。しかしこのような仮定にも関わらず、最近のプロセ ッサデザイン技術では、マシン命令の同時実行、則ち命令並行実行可能性(inst ruction parallelism)の利用に努めている。 計算の処理能力を最大にするために、命令並行実行を多数の実行ユニットにマ ップするためのスーパスケーラ技術を用いることができる。これとは対照的に、 パイプライン処理技術では、1つの機能的単位、又は実行経路の一段階の中での 命令並行実行を採用している。スーパスケーラ技術は、スーパスケーラデザイン の分野に於いて知られている技術であり、この技術ではOUT−OF−ORDE R命令発行、OUT−OF−ORDER命令完了、及び命令の投機的実行が行わ れる。 OUT−OF−ORDER命令発行では、実行コードに於ける実際の 命令の順序とは殆ど無関係な順序で実行ユニットへの命令の発行が行われる。O UT−OF−ORDER発行を利用するスーパスケーラプロセッサは、その命令 ディスパッチシーケンスのフォーマッティングに於いて、所定の命令の出力(計 算結果)と後続の命令の入力(オペランド)との間の依存性によってのみ条件付 けられる必要がある。一方、OUT−OF−ORDER完了は、プログラムシー ケンスの中で先行する命令が完了する前に所定の命令が完了(例えば計算結果を 格納すること)できるようにする技術である。最後に投機的実行は、予測された 結果(例えば分岐)に基づいて命令シーケンスの実行を行う。投機的実行(則ち 分岐が正確に予測されているという仮定のもとでの実行)により、命令を分岐条 件が実際に評価されるまで待機することなくプロセッサが命令を実行可能となる 。分岐が正しく予測されることが不正確に予測されることより多く、かつ不正確 な予測結果を実行しない合理的で効率的な方法が利用可能であると仮定すると、 命令並行実行可能性(則ち並行実行が利用可能な命令の数)は、投機的実行によ り増加することになる(Johnson、Superscalar processor Design,Prentice-Ha ll,Inc.,New Jersey,1991,pp.63-77 for an analysis参照)。 シーケンスの順番とは異なる順番での命令の実行、則ちシーケンスの順序とは 異なる順序で命令を発行及び完了することにより、スーパスケーラプロセッサが 多数の実行ユニットを同時並行的に動作させた状態を維持することが可能である ため、スーパスケーラプロセッサの処理能力は高くなる。従って、スーパスケー ラプロセッサ用のスケジューラは、OUT−OF−ORDER実行される命令が 何れであるかを判定し、それらの命令を適当な実行ユニットに供給又はディスパ ッチすることにより全体の処理能力を改善することができる。スーパスケーラプ ロセッサ用のスケジューラは、割り込み及びトラップの処理も行わなければなら ない。x86プロセッサアーキテクチャを含む多くのプロセッサアーキテクチャ では、命令がエラー、割り込み、またはトラップを発生する直前又は直後にアー キテクチャーの状態を認識している必要がある。これにより命令のOUT−OF −ORDER実行が困難になる。従って、スケジューラは命令の取り消しや、命 令があたかも順序通りに実行されたかのようなシステム状態の再構築ができなけ ればならない。 これらの技術のそれぞれに関連をもつ、命令並行実行可能性を利用するための アーキテクチャのデザインが様々な文献やテキストにおいて提案されてきた。Jo hnsonpp.127-146(OUT−OF−ORDER発行)、pp103-126(OUT−O F−ORDER完了及び依存性)pp87-102(誤り分岐予測の回復)を参照された い。発明の開示 ロードオペレーション及びストアオペレーション(以下「オペレーション」を 省略し単にロード、ストアと表記する)のOUT−OF−ORDER実行コント ロールシステムを提供するプロセッサに於いて、ロード及びストアが互いに独立 してOUT−OF−ORDER実行され得ることがわかった。特定のロードに対 するストアの相対的古さ(及び特定のストアに対するロードの相対的古さ)追跡 するスキャンロジックにより、本発明に基づいて構築されたロード/ストア実行 コントロールシステムが、ロードが完了するまで新しいストアを停止(hold)( 及び古いストアが完了するまで新しいロードを停止)させることが可能となる。 特に、本発明に基づいて構築された、ツリー構造で階層的に編成されたスキャン ロジックの様々な実施例は、多数のオペレーションを同時並行的に評価するため に適合されたプロセッサの実施例においてすら、ゲートでの遅れが殆ど無しに、 ストアオペレーションが古いことを表すストアオルダ指示信号、及びロードオペ レーションが古いことを表すロード オルダ指示信号を提供する。アドレスマッチングロジックは、このスキャンロジ ックとともに動作して、ロード−ストア実行コントロールシステムが、ロード− ストア間(及びストアーロード間)の依存性を回避して処理できるようにする。 ロードオペレーションを実行するロードユニット及びストアオペレーションを実 行するストアユニットを有するプロセッサに於いて、このようなロード/ストア 実行コントロールシステムにより、ロード命令及びストア命令を、それらの間の データ依存性を強制しつつ、それら相互について概ね順不同に実行、即ちOUT −OF−ORDER実行することが可能となる。図面の簡単な説明 以下に説明する添付の図面を参照することにより、本発明はより良く理解され 、またその様々な目的、特徴及び利点が当業者には明らかとなろう。 第1図は、本発明の一実施例によるOUT−OF−ORDER実行コントロー ルとなるスーパスケーラコンピュータプロセッサのブロック図である。 第2図は、本発明の一実施例によるスケジューラのブロック図である。 第3図は、本発明の一実施例による命令の実行に於けるアーキテクチャーの段 階を示すパイプライン処理の各段階を示した図である。 第4図は、本発明の一実施例によるロード及びストアOUT−OF−ORDE R実行コントロール要素のブロック図である。 第5図は、本発明の一実施例によるロード停止ロジックの回路図である。 第6図は、本発明の一実施例によるストア停止ロジックの回路図である。 第7図は、本発明の一実施例によるスキャンロジックのブロック図で ある。 第8図は、本発明の典型的な実施例によるスキャンロジックのためのグループ 内ロジックの論理図である。 第9図は、本発明の一実施例によるスキャンロジックのための第1及び第2レ ベル一括グループロジックの論理図である。 第10図は、本発明の一実施例によるスキャンロジックのための第3レベル一 括グループロジックの論理図である。 第11図は、本発明の一実施例による、OUT−OF−ORDERロード/ス トア実行コントロールを提供するプロセッサを組み込んだコンピュータシステム のブロック図である。 第12図は、スキャンロジックのOpクワッド依存部分のスピード経路処理能 力を改善するための別形態のスキャン結合ロジックの論理図である。 図面全体に於いて同一の又は類似した構成要素には同じ符号を付して示した。発明の実施の形態 第2図は24個のエントリ(列として示す)を有するスケジューラ180の例 示的実施例であって、各エントリが継続中のOpと関連している例示的実施例を 示す。各エントリは継続中のOpに関連する静的及び動的データを表すためのス ケジューラリザーバ240として一括して示される一連のフィールドを含む。付 け加えるに、スケジューラ180は継続中のOpsに関連したデータを受け取る ためにスケジュールリザーバ240のエントリに接続された制御ロジック230 として一括して示される一連の特殊ロジックブロックを提供する。制御ロジック 230の特殊ロジックブロック(桁231、232、233、235及び236 として示す)はOp実行並びに実行ユニットへのオペランドの供給と実 行ユニットからの結果の分配の順序付けを制御する信号を供給する。制御ロジッ ク230は発行選択ロジック231、オペランド選択ロジック232、ロード・ ストア命令ロジック234、状態フラグ処理ロジック235、及び自己修飾コー ド支援ロジック536を含む。 発行選択ロジック231は各サイクルの間有効な実行ユニットへの発行のため スケジュールリザーバ240からのOpsの選択を制御する。オペランド選択ロ ジック232は実行ユニットに対して発行されたOpsに必要とされるオペラン ドデータのための適当なソースを識別する。データ依存性と実行エンジン150 内のOpsの順序付けに依拠して適当なソースはレジスタファイル190であり 、他の継続中のOpエントリ(スケジューラエントリのためのデスティネーショ ン値フィールドは250として一括して示される)に関連するデスティネーショ ン値フィールドまたは結果バス(結果バス272として一括して示される)の1 つに供給される完了Opの結果がある。発行選択ロジック231とオペランド選 択ロジック232によって供給される制御信号はスケジューラ180がスケジュ ールリザーバ240より有効実行ユニットへOpsを発行しかつ発行された各O pのための適当なオペランドソースを選択するのを可能とする。 スケジューラ180は、各スケジューラエントリに関連したデスティネーショ ン値フィールドを含む。これらのデスティネーション値フィールドは250とし て一括的に示されている。オペランド選択ロジック232との関係に於いて、デ スティネーション値フィールド250は、リオーダバッファと暗黙レジスタの再 命名を実施する。レジスタファイル190のアーキテクチュ配列ジスタに関連す るオペランド値は、デスティネーション値フィールド250内に表され、典型的 には、オペランドバス271を介してレジスタオペランド値として実行ユニット に供給さ れる。しかしながら、デスティネーション値フィールド250のいずれもより現 時点に近いレジスタ状態を表していない場合(すなわち、未だコミットされてい ないレジスタ状態)には、これに代えてオペランド値をレジスタファイル190 から供給する事ができる。完了したOpsの結果は結果バス272を介して完了 したOpに関連するスケジューラエントリのデスティネーション値フィールドに 供給される。付け加えるに、これらの結果は、また継続中のOpsのためのオペ ランドとして実行ユニットに供給することができる。結果は、結果バス272を 介して転送される。 スケジュールリザーバエントリ(例証的にはスケジュールリザーバエントリ2 40.1)のフィールドは、実行を待っているか、実行される過程にあるか、ま たは完了されたか、であるオペレーション(Op)に関する情報を含んでいる。 スケジュールリザーバエントリのフィールドの大部分は、命令デコーダ130が 新規のOpをスケジュールリザーバ240にロードしたときに初期化される。し かしながら、他のフィールドは、後にロードされ又は更新される。例えば、状態 フィールド(各エントリに対してフィールド242として示される)は符合する Opが実行パイプラインの段階を通って進むのに伴って更新される。Opがスケ ジュールリザーバ240内にロードされる時からスケジューラ180から退避さ れる時までの値を保持する記憶フィールドは「静的フィールド」として言及され る。新規の値によって更新されることのできるフィールドは「動的フィールド」 として言及される。静的フィールドデータ及び動的フィールドの初期データ値は 命令デコーダ140によって供給される。 各スケジュールリザーバエントリ(第2図中タイプフィールド241として示 される)の3ビットフィールド、タイプ〔2:0〕は、スケジ ュールリザーバエントリに関連したOpのタイプを特定する。Opのタイプは発 行選択目的のために特に重要である(例えば、LdOpsは150の様なロード ユニットに発行しなければならない);しかしながら、ロード/ストア命令制御 はまたタイプフィールド241も利用する。下記の信号は、タイプフィールド2 41から解読したものである: 各スケジュールリザーバエントリ(図中タイプフィールド242として示され ている)の4ビットフィールド、状態[3:0]はOp(S3,S2,S1及び S0は状態[3:0]の交番信号名である)の現実行状態を示す。タイプフィー ルド242の5つの可能状態は以下の様なシフトフィールドによって符号化され る: 即時の状態は、タイプフィールドが現れるエントリに符合したOpのための現 実行段階に符合する。ビットは、Opが段階の外で支承なく発行され進むのに伴 って更新される(実際的には左シフトによって)。状態[3:0]はまた中止サ イクルの間に1111に設定される。スケジューラOpクワッド構成 スケジューラ180はスケジュールリザーバ240内の24個のエントリと、F IFOとして扱われるデスティネーション値フィールド250を含む。新規のO psに符号するデータは、最上部にロードされ実行の進行に伴って最下位に向か ってシフトされ、スケジューラリザーバ240の最下位から退避される。制御の 単純化のためにスケジューラ180は、スケジュールリザーバ240とデスティ ネーション値フィールド250をOpクワッドに基づいて処理する。Opsは、 4つのグループにてスケジュールリザーバ240にロードされ、スケジュールリ ザーバ240を通してシフトされ、且つスケジュールリザーバ240から退避さ れる。このようにして、スケジューラの細分性が命令デコーダ140のエンコー ドROM142及びNacDec141の両者のデコード帯域幅に適合する。ス ケジューラ180は、したがって深さ6幅4のFIFO内の6個のOpクワッド エントリとして24個のOpエントリを処理する。 スケジューラ180をOpクワッドにて編成しているが、スケジューラの動作 の多くの側面は、スケジューリングリザーバ240、デスティネーション値フィ ールド250、及びコントロールロジック230を考察することにより良く理解 されよう。例示のため、以下の議論は24エントリスケジューラ180について 説明しているが、上述の共願の特許出願の明細書に説明されているOpクワッド の細分性の利点について、当業者は理解されよう。オペレーション(Op)のタイミング及び実行段階 スケジューラリザーバ240の各エントリは、未定のOpsを記述するフィー ルドを含む。これらのフィールドは、命令デコーダ140によって取り出され又 は解読されたOpsから生来的に得られた静的状態情報及びOp実行から結果し 、又は、与えられたOpの実行パイプライン状態を特徴づける動的状態情報を格 納する。 プロセッサ制御の概観からスケジューラ180は、関連する制御ロジック23 0を備えたOp状態情報(スケジュールリザーバ240)の命令順序指定配列で あって制御ロジック230は、配列から各実行ユニットへの発行Ops、パイプ ライン段階のシーケンスを介する制御Op実行及び最終的にはスケジューラから の退避Opsに対し、制御信号を発生する。第2図に示すように、制御ロジック 230は、制御ロジックの5つの特殊ブロック(発行選択ロジック231、オペ ランド選択ロジック232、ロード・ストア命令ロジック234、状態フラグ処 理ロジック235及び自己修飾コード支援ロジック236)を含み、その各々は 、スケジューラリザーバ240の符合するエントリから情報を受け取る部分(ロ ード・ストア命令ロジック234の例証的部分234.3)を有する。制御ロジ ックブロックは、実行ユニットに制御信号を供給する。例えば、ロード・ストア 命令ロジック234は、273として一括して表される制御線を介してロードユ ニット152とストアユニット153に制御信号を供給する。 スケジュールリザーバ240の制御ロジックブロックによって供給される特定 制御信号はOpエントリ内のフィールドの状態に依存する。詳細には、状態〔3 :0〕フィールドは、関連オペレーションの実行の進行を表わす。ロジックの概 観からスケジューラ内の全ての状態順序付けは性質上単一サイクルである。状態 遷移決定はそのサイクルの間の機械 状態に基づいて各サイクルごとに行われる。スケジューラ180の構成はOp実 行のパイプライン特性を反映する。スケジューラ180(及び符合する各エント リ)は、その各々がオペレーション又は実行パイプラインの与えられたタイプの 特定進行段階に直接関連する多数の別個の、より正確には独立のロジック部に分 割することができる。 実行エンジン150のパイプラインステージンクすなわち段階配置構成がここ で第3図を参照して記述される。Opが一旦実行エンジン150内にロードされ ると、そのOpは、3又は4段階パイプラインを通り符号的にそのOpに関連す るスケジューラエントリ内のフィールド状態〔3:0〕によって表される4又は 5状態の間の遷移を通る。命令フェッチ及び解読は実行エンジン150の前に遂 行される。従って、第1のスケジューラに関連するパイプライン段階は発行段階 である。第3図は、RegOps及びLdStObsのためのパイプラインステ ージングを示す。 スケジューラ180は、発行段階及びオペランドフェッチ段階330及び34 0の間実行パイプライン上に基本的な制御を加える。発行段階330内及びオペ ランドフェッチ段階340内の処理は段階ごとに2個のフェーズに分割すること ができ、各フェーズは、公式的には半クロックサイクルを占める。発行段階33 0は、発行選択フェーズとブロードキャストフェーズを含み、一方オペランドフ ェッチ段階340は、オペランド選択フェーズとオペランド送りフェーズを含む 。発行段階 発行段階330の発行選択フェーズ330.1の間に於いて、スケジューラ1 80は、ロードユニット152、ストアユニット153,レジスタユニットX1 54、及びレジスタユニットY155に関連したパイプラインに入れるための次 のOpsを選択する(4つのOp選択が一時に生起する)。発行段階330のブ ロードキャストフェーズ330.2の 間に於いて、各選択されたOpのためのレジスタオペランドの各々に関する情報 が全てのスケジューラエントリ及び外部ロジック(レジスタファイル190及び 実行ユニットを含む)に同報的に送られる。このようにして、ブロードキャスト フェーズ330.2は、スケジューラ180のデスティネーション値フィールド 250の1つ又はレジスタフアイル190に存在するオペランド値又は結果バス 272に生成する結果に符合するオペランド値を実行ユニット(例えばロードユ ニット152、ストアユニット153又はレジスタユニット154と155)の 1つに位置づけるように設定する。オペランドフェッチ段階 オペランドフェッチ段階340のオペランド選択フェーズ340.1の間に於 いてスケジューラ180は、8までのオペランド値(4Ops*2オペランド/ Op)を位置づけ、そして各オペランド値の状態、すなわち指定されたソースか らの有効値が実際に利用可能であるかどうかを決定する。この情報に基づいてス ケジューラ180は、オペランドフェッチ段階0(段階340)のどのOpsが オペランド送りフェーズに続いて例えば段階1(段階350)であるそれらの各 々の実行パイプ内に進むかを決定する。進めることの決定は、各Opのために独 立して行われ、オペレーションが実際に実行される順序がオペランド依存性によ って拘束されることのみが必要である。そのようなデータ依存性が無い場合には 異なる実行ユニットに発行するOpsは一般的に他の実行ユニットに割り当てら れたこれらのOpsに関する任意の順序にてそれらの各々のパイプラインを通っ て処理される。この一般的ルールに対する1つの例外はロード及びストアの個別 的指定(すなわちLdOpsとStOps)を含みこれは以下に詳細に説明され る。LdStOp実行段階 第1の2個のスケジューラ関連段階であるオペランド発行段階330とオペラ ンドフェッチ段階340は、RegOps及びLdStOpsに共通である。後 続段階は、実行段階である。RegOpsは、全てのRegOpsが単一サイク ルにて実行するので単一実行段階350で更に、一旦RegOpが実行段階に入 るとそれは常に支障なく完了し、そのクロックサイクルの終わりに於いて段階3 50を出る。一方LdStOpsは、2個の実行段階352及び360をこの間 に於いてアドレス計算、区分及びページ変換(及び記憶保護チェック)並びに( LdOpsの場合に)データキャッシュアクセスの全てが行われる。RegOp sとは異なり、LdStOpsは、任意の長さの時間に亘って段階360又は3 70のいずれかに停止せしめることができる。この停止の大部分は、第2の段階 370に於いてである。最も共通的には段階370の停止は、データキャッシュ 170の失敗、データTLB171の欠落及びページフォールトから結果する。 段階360での停止は、メモリ引用の非整合から結果しまた完了へと進まないL dStOpによって占拠されブロックされた段階370から結果する。 オペランドフェッチ段階340のオペランド送りフェーズ340.2の間にお いて、スケジューラ180は指定されたソースからのオペランド値を第2図にお いてバス271と272として一括して示されるオペランドバス及び/または結 果バスを介してロードユニット152、ストアユニット153、レジスタユニッ トX154及びレジスタユニットY155のような実行ユニットへ転送する。例 示的実施例は9個のオペランドバス271を含みそのうち8個は段階0でのオペ レーションのためのオペランド値を提供する。例示的実施例においてはまた、値 が有効であるか否かに関わりなくオペランド転送が生じ、これによって制御ロジ ックが単純化される。オペランド値が無効の場合には、スケジューラ180が関 連するオペレーションを段階1へ進めないのでこれは各実行ユ ニットによって無視される。RegOpsのための即値は上述のレジスタオペラ ンドを送る機構の一部として処理される。そのような場合、即値はそのOpに関 連したスケジューラ180エントリのデスティネーション値フィールド250の 特定の1つから直接送られる。 オペランド送りフェーズ340.2の間において変位値もまた変位バス189 .4を介してロードユニット152とストアユニット153(各ユニットに独立 値)に転送される。これらの変位値は32ビット値であり常にスケジューラ18 0のエントリから来る。ソースエントリの選択はオペランド選択フェーズ340 .1の間に生起する。LdOpまたはStOpが段階1に入った場合にはロード ユニット152とストアユニット153が関連する変位値及びオペランド値をラ ッチする。 スケジューラ180はアドレスオペランドと変位を提供するために(上述した ように)4フェーズ制御機構を実施するが、StOpsはアドレスオペランド及 び変位値に加えるにストアデータオペランドを必要とする。スケジューラ180 はStOpのためのストアデータを得るために4フェーズプロセスを遂行する。 StOpデータを取得するプロセスは上述したものと類似するが、そのストアデ ータは実行段階2(370)の間に得られる。ストアデータを提供するプロセス はStOpの段階1及び2に同期され、実行段階1においてStOpを識別する 選択フェーズ390.1、データオペランドのソースを記述する情報を伝送する ブロードキャストフェーズ390.2、データオペランド選択フェーズ390. 3及びデータオペランド送りフェーズ390.4を含む。ストアデータはStO p実行により並列に取り出され、実際のデータ値はStOp処理の完了の際に取 得されストアキュー159に提供される。 有効ストアデータ値が利用できない場合にはStOpが段階2に停止される。ロード/ストア順序付けの制約 ある程度の実行順序付けが、(レジスタのリネームを用いてスケジューラ18 0によって回避される、アーキテクチャのレジスタに対して希に発生する競合と は異なる)真のデータ依存性を示すOps間で継続されなければならないのと同 様に、実行順序付けは同じメモリの場所から読み出される(又は書き込まれる) LdOpsとStOpsとの間でも継続されなければならない。 一般に、ロード及びストアはお互いに対してOUT−OF−ORDER実行し うるが、メモリの同じ場所に新しいロードと古いストアがアクセスする場合は、 古いストアは新しいロードのためのデータを供給すべきである。(即ち、新しい ロードは古いストアを待機すべきである)。このような場合、ストアデータはデ ータキャッシュ170により新しいロードに供給される。同様に、新しいストア がメモリの同じ場所に書き込みを許可される前に、古いロードが完了しなくては ならない。このような場合、古いストアは待機しなくてはならない。スケジュー ラ180へのコントロールロジックとロード−ストアユニット152、153と の組み合わせにより、このようなロード−ストア順序付けの制約が強制されてい る。ロード−ストア順序付けコントロール オペレーション(及びオペランドフェッチに関係するスケジューラロジックに 加えて、スケジューラ180のエントリは、ロード−ストアOUT−OF−OR DER実行コントロールを提供するロード−ストア順序付けロジック234を有 する。ロード−ストア順序付けロジック234の2つの部分は、それぞれロード ユニット152及びストアユニット153に関係し、ロード順序付けロジック4 34a及びストア順序付けロジック434bとして第4図に示されている。各実 行ユニットにおけ るロード停止ロジック403及びストア停止ロジック413と共に、ロード−ス トア順序付けロジック234はロード−ストア実行順序付け制約を強制する。ロード停止ロジック 実例としてロードユニット152に焦点を合わせると、ロード停止ロジック4 03はロードユニット152の段階2(LU2 402)におけるLdOpより 古い様々なパイプライン処理段階におけるStOpsの存在をチェックする。特 に、ロード停止ロジック403は、段階0、段階1(SU1 411)、及び段 階2(SU2 412)、即ち第3図の段階340、352、及び360におけ る古いStOpsの存在をチェックする。3つの信号(SC_SU2OLDER ,SC_SU1OLDER及びSC_SU0OLDER)は、ロード順序付けロ ジック434aによりロード停止ロジック403に供給され、段階2、段階1、 及び段階0それぞれにおける古いStOpの損残を信号化している。より正確に いえば、SC_SUOLDERは、実行段階1及び2より早い処理の段階(例え ばオペランドフェッチ段階0 340又は発行段階330)における古いStO pの存在を表示する。ロード停止ロジック403は、ロードユニット152の段 階2(LU2 402)におけるLdOpに対する部分的なメモリアドレスを受 け取り、ここに記述した条件のもと、LU2 402に対する停止信号(LU2 _Hold)を選択的に供給することも行う。 段階0(又は初期の段階)での古いStOpによりロード停止ロジック403 が、ロードユニット152の段階2における現在LdOpを無条件に停止させる 。一方、段階2又は段階1における古いStOpは、段階2におけるLdOpに 対するメモリアドレスと古いStOpとの間の一致が存在するときに現在LdO pを停止させる。以下のRTLはロ ード停止ロジック403のデザイン及びオペレーションを記述したものである。 ロード停止ロジック403はLU2 402にLU2_Hold信号を供給し 、上述の部分的アドレス一致の組み合わせのいずれか(AddrMatchl又 はAddrMatch2)及びスケジューラ108か らの相対的古さ指示信号(SC_SU2OLDER,SC_SU1OLDER及 びSC_SU0OLDER)が存在するときに、段階2のLdOpの実行を抑止 する。段階1におけるStOpに対してリニアアドレスがまだ計算されてないこ とから、段階2における新しいLdOpは古い段階0のStOpが終わるのを無 条件に待機することになる。古いStopが段階1及び2に進んだとき、部分的 アドレス不一致によって、新しいLdOpと古いStOpとのOUT−OF−O RDER競合により順序付け条件または制約が破られないことが確実となり、ロ ード停止ロジック403はLU2_Hold式に従って停止を解除する。 ここに記述された例では、部分的アドレスマッチオペレーションは、部分的に 一致するLdOp及びStOpのためのリニアアドレスの下側部分に基づいて実 行される。部分的マッチは、アドレスマッチ回路のクリティカルパスインパクト とスピードとのバランスをとりつつ、偽のマッチの数を制限するに十分な大きさ のビットセットを選択するように設計される。この実施例においては、部分リニ アアドレスマッチが各リニアアドレスの下側ビット(即ちLinAddr(9, 3),SU2_PageOffset(9,3)及びSU1_LinAddr( 9,3))に基づいており、所望の一致速度と許容範囲内の誤り一致程度とのバ ランスをとっているが、別の実施例では、より多い又はより少ないアドレスビッ ト数のマッチングがとられ、ベースアドレス、論理アドレス、リニアアドレス、 又は物理的アドレスに基づいてマッチ判定オペレーションを実行し得る。 8ビットバイトマーク(ByteMark,SU1_Bytemark及びS U2_ByteMark)も部分的アドレスマッチに含められる。これらのバイ トマークは所定のLdOp又はStOpが対応する特定のバイトを指定する対応 するアドレスビット0、1及び2の拡張され た可変部であるが、これはこの実施例(x86プロセッサアーキテクチャに適合 したプロセッサインプリメンテーション)では、1バイト、2バイト、4バイト 、及び8バイトのロード及びストアが全てサポートされているからである。この 実施例では、これらのバイトマークが比較されて、オーバーラップを同定し、従 ってLdOpが読み出す特定のバイトとStOpが書き込む特定のバイトとの間 の依存性が同定される。 いくつかの追加のターム(term)がロード停止ロジック403を記述するRT Lに含められる。例えば、ロード停止ロジック403は、非投機的LdOp、即 ちDTB_InhSptivLdに示されているように古いメモリトランザクシ ョンにおいて読み出されることを許可されていないLdOpの実行も抑止する。 非投機的LdOpsは、単に古いStOpsだけでなく全ての古いLdStOp に従った厳格な順序付けを維持する。非投機的ロードの場合は、ロード停止ロジ ック403が、古いメモリトランザクションが未完了の(ペンディングされてい ない)状態を確保する。スケジューラ180が互いの順序付けに従ってロードを 発行することから、データキャッシュ170にコミット(commit)された古いS tOpsが存在しない状態が確保されることになる。スケジューラ180は、デ ータキャッシュ170へのストアキュー159を通してStOpsのステータス を追跡し、データキャッシュ170にまだコミットされていない古いStOps が存在しないことを示すSC_LdOldest信号を供給する。 第4図によれば、ロード停止ロジック403がロード順序付けロジック434 aからロードユニット152のLU2402におけるLdOpの相対的古さの指 示信号を受け取る。特に、ロード停止ロジック403はロード順序付けロジック 434aの各スキャンチェーン(SU2オルダスキャンチェーン434a.1、 SU1オルダスキャンチェーン43 4a.2、及び SU0オルダスキャンチェーン434a.3)からSU_SU2OLDER指示 信号、SU_SU1OLDER指示信号、及びSU_SU0OLDER指示信号 を受け取る。ロード停止ロジック403はストアユニット153のSU1段階4 11及びSU2段階412におけるStOpsに対する部分的アドレス信号、及 びロードユニット152のLU2402におけるLdOPに対する部分的アドレ ス信号も受け取る。これらの入力に基づいて、ロード停止ロジック403は上述 のRTL記述に従って、LU2402におけるLdOp(及び後続のLdOps )を機能停止する停止信号(LU2_Hold)を選択的にアサートする。 LdOps(Ops、オペランド、変位値、及びコントロール信号を含む)は 、共同バス189として示されているバス及びラインを介してLU1401に達 する。LU2402におけるLdOpsによりアドレス指定されたメモリロケー ションは、LU2_Holdがアンアサート即ちアクティブ状態から解放され、 共同バス189の結果バス189.2(図示せず)を介して実行ユニット及びス ケジューラ180に供給されたとき、データキャッシュ170を介してアクセス される。ロードユニット152の両段階(LU1 401及びLU2 402) は、データTLB171及びメモリ階層の様々なレベルに存在する(L1データ キャッシュ170、L2キャッシュ110、主メモリ等)他のメモリ管理構造と やりとりし、仮想アドレス(又はリニアアドレス)を物理的アドレスに変換する 。 当業者は上述のRTLに適合するロード停止ロジック403の様々なインプリ メンテーションを理解することができるであろう。ロード停止ロジック403は 適切なものであれば、どのようなインプリメンテーションでもよい。第5図には 、ロード停止ロジックの組み合わせ論理回路 としての実現形態の一例を示したものである。ストア停止ロジック ストアユニット153は類似した形態のオペレーション停止ロジック、即ち、 ストアユニット153の段階2(SU2 412)におけるStOpより古い様 々なパイプライン処理の段階におけるLdOpsの存在をチェックするストア停 止ロジック413を有する。ストア停止ロジック413のデザインはロード停止 ロジック403に類似しているが、両者は対称的ではない。ストア停止ロジック 413は段階1(LU1 401)及び段階2(LU2 402)、即ち第3図 の段階352及び360における古いLdOpsの存在をチェックする。ストア 順序付けロジック434bによりストア停止ロジック413に供給される2つの 信号(SC_LU2OLDER及びSC_LU1OLDER)は、段階2及び1 におけるそれぞれの古いLdOpの存在を示す信号である。より正確に言えば、 SC_LU1OLDERは、実行段階2より早い処理の段階(例えば実行段階1 352、オペランドフェッチ段階0340、又は発行段階330)における古い LdOpの存在を表示する。ストア停止ロジック413はストアユニット153 の段階2(SU2412)におけるStOpに対する部分的メモリアドレスを受 け取り、上述の条件のもと停止信号(SU2_Hold)を選択的にSU2 4 12にアサートする。 段階1(又はより早い段階)における古いLdOpによりストア停止ロジック 413が、無条件にストアユニット153の段階2における現在StOpを停止 する。一方、段階2における古いLdOpは段階2におけるStOpに対するメ モリアドレスと古いLdOpとの間の一致がありさえすれば現在StOpを停止 する。以下のRTLはストア停止ロジック413のデザイン及びオペレーション を記述したものである。 ストア停止ロジック413は、部分アドレス一致(AddrMatch2)と スケジューラ180からの相対的古さ指示信号(SC_LU2OLDER及びS C_LU1OLDER)との上に指定した組み合わせのいずれかが存在するとき 、SU2_Hold信号をSU2 412に供給して、段階2StOpの実行を 抑止する。段階2における新しいStOpは古い段階1(又は早い)LdOpを 無条件に待機する。古いLdOpが段階2に進むと、部分アドレス不一致が新し いStOpと古いLdOpのOUT−OF−ORDER競合により順序付け制約 が破られていないことを確定し、ストア停止ロジック413はSU2_Hold 式に従って停止を解放する。 ロード停止ロジック403については、ストア停止ロジック413が StOp及びLdOpsに対するリニアアドレスの下側部分(即ちLinAdd r(9,3)及びLU2_PageOffset(9,3))に基づいて部分的 アドレスマッチング処理を実行する。バイトマーク(ByteMark及びLU 2_ByteMark)も部分的アドレスマッチに含められる。 この実施例においては、ロード停止ロジック403に類似したストア停止ロジッ ク413が、停止を開始(trigger)する条件の組を過剰に含んでいる。しかし 、ストア停止ロジック413のデザインはロード停止ロジック403よりより過 剰に包括的である。例えば、ストア停止ロジック413はアドレスマッチの存在 をチェックする古い段階1のLdOpに対する新しい段階2のStOpを停止す る。別の実施例では、一層厳格に(又はより厳格度を小さくして)ストア停止ロ ジック413おける停止か、ストア停止ロジック413の動作そのもの、または その両方を開始する条件の組を限定している。しかし、この実施例では、ストア 停止ロジック413は一般的な命令プロフィールにおいてLdOpsがStOp sに依存していることが多い、又は逆のことが多いという推定に基づいて、停止 条件の限定度を緩めている。 第4図を参照すると、ストア停止ロジック413がストア順序付けロジック4 34bからのストアユニット453のSU2 412におけるLdOpの相対的 古さの指示信号を受け取る。特に、ストア停止ロジック413はストア順序付け ロジック434bの各スキャンチェーン(LU2オルダスキャンチェーン434 b.1及びLU1オルダスキャンチェーン434b.2)からのSC_LU1O LDER及びSC_LU2OLDER指示信号を受け取る。ストア停止ロジック 413はロードユニット152のLU2 402段階におけるLdOpsに対す る部分的アドレス信号、及びストアユニット153のSU2 412におけるS tOpに対する部分的アドレス信号も受け取る。これらの入力に基づいて、スト ア停止ロジック413は供述のRTL記述に従ってSU2 412におけるSt Op(及び後続のStOps)を機能停止する停止信号(SU2_Hold)を 選択的にアサートする。 StOps(Ops、オペランド、変位値、及びコントロール信号を含む)は 、共同バス189として図示されている各バス及びラインを介してSU1 41 1に達する。SU2 412におけるStOpsに対するメモリアドレス及びス トアオペランドは、SU2_Holdが逆アサート(又は解放)されたときスト アキュー159に供給される。次いで、ストアキュー159はストアオペランド をデータキャッシュ170を介してアドレス空間に書き込む。ストアユニット1 53の両段階(SU1 411及びSU2 412)はデータTLB171及び メモリ階層の様々なレベル(L1データキャッシュ170、L2キャッシュ11 0、主メモリ等)に存在する他のメモリ管理構造とやりとりし、仮想アドレス( 又はリニアアドレス)を物理的アドレスに変換する。 当業者は上述のRTLに適合するストア停止ロジック413の様々なインプリ メンテーションを理解することができるであろう。ストア停止ロジック413は 適切なものであれば、どのようなインプリメンテーションでもよい。第6図には 、ストア停止ロジックの組み合わせ論理回路としての実現形態の一例を示したも のである。スキャンチェーンを含むスケジューラロジック スケジューラ180はLdOpsとStOpsとの間の十分な実行順序付けを 維持するためのサボートも提供する。この実施例においては、このサポートはロ ード停止ロジック403及びストア停止ロジック413へ相対的古さ指示信号を 供給するスキャンチェーンの形態である。上述のように、順序付けはロード及び ストアパイプライン処理の段階2(即 ちLU2402及びSU2412)においてオペレーションを停止することによ り維持される。実行順序付けは、メモリ位置を参照するStOpsに対して維持 される。この実施例では、実際にメモリをアドレス指定しないLEAStOps (ロード実行アドレス)に対しては順序付けは強制されていないが、誤りである 可能性のあるアドレスを発生するCDA及びCIAStOps(チェックデータ 実行アドレス及びチェック命令実行アドレス)は順序付けスキームの中に含めら れ、回路デザインが単純化されている。LdOpsの中に順序付けスキームから 除外されているものはないが、これは全てのLdOpstがメモリを参照するか らである。別の実施例には、LEA、CDA、及びCIAStOpsのようなO psを適切なものとして含むものか、除外しているものかの何れかの場合がある 。 第2図に戻ると、スケジューラ180内のロード−ストア順序付けロジック2 34は、ロード実行ユニット及びストア実行ユニットのそれぞれの段階2におけ る特定のLdOps及びStOpsに関してLdStOpsの相対古さ指示信号 を供給する。ロード−ストア順序付けロジック234は、スケジューリングリザ ーバ240における各Opエントリ(例えばOpエントリ240.1)のTyp e[2:0]フィールド241及びState[3:0]フィールド242にア クセスし、相対ストア古さ指示信号(例えばSC_LU2OLDER、及びSC _LU1OLDER、及びSC_LU0OLDER)をロードユニット152に 図面において189.5として示されている共通のラインを介して供給し、相対 ロード古さ指示信号(例えばSC_LU2OLDER、及びSC_LU1OLD ER)を同様に共通のラインを介してストアユニット153に供給する。 第4図には、ロード/ストア順序付けロジック234がロード順序付 けロジック434a及びストア順序付けロジック434bの一部分として示され ている。LdOpsの場合にはロード順序付けロジック434aが、SU2 4 12に於けるStOpsがあればそれに関連して、SU1 411に於けるSt Opsがあればそれに関連して、また処理の早い段階に於ける他のStOpsに 関連して、LU1 401に於けるLdOpの相対的古さを決定する。StOp sについては、ストア順序付けロジック434bが、LU2 402に於けるL dOpがあればそれに関連して、また処理の早い段階に於ける他のLdOpsに 関連してSU1 411に於けるSTOPの相対的古さを決定する。 第4図には、3要素スキャンチェーンSU、即ちオルダスキャンチェーン43 4a.1、SU1オルダスキャンチェーン434a.2、及びSU0オルダスキ ャンチェーン434a.3を含むロード順序付けロジック434aが示されてい る。各要素スキャンチェーンは、スケジューリングリザバ240に於けるOpエ ントリのType[2:0]フィールド241及びState[3:0]フィー ルド242(図示せず)に基づいて各相対的古さ指示信号を供給する。SU2オ ルダスキャンチェーン434a.1は、SC_SU2OLDERを供給し、SU 1オルダスキャンチェーン434a.2は、SC_SU1OLDERを供給し、 SU0オルダスキャンチェーン434a.3は、SC_SU0OLDERを供給 する。 ストア順序付けロジック434bのデザインは、ロード順序付けロジック43 4aに類似しているが対称的ではない。特に、ストア順序付けロジック434b は成分スキャンチェーンLU2、オルダスキャンチェーン434b.1及びLU 1オルダスキャンチェーン434b.2を含む。ノード順序付けロジック434 aの場合と同様にストア順序付けロジック434bの各成文スキャンチェーンは 、Type[2:0]フィ ールド241及びState[3:0]フィールド242を用いて、各相対的古 さ指示信号を供給する。LU2オルダスキャンチェーン434b.1は、SC_ SU2OLDERを供給し、LU1オルダスキャンチェーン434b.2は、S C_LU1OLDERを供給する。説明のため各スキャンチェーンは独立したス キャンチェーンとして示されているが、当業者は、ロード順序付けロジック43 4a及びストア順序付けロジック434bがロジックを共有し得る、例えばTy pe[2:0]及びState[3:0]検出回路を各成分スキャンチェーンの 後で共有し得るということを理解できよう。 この好適実施例では、ロード順序付けロジック434a及びストア順序付けロ ジック434bが(ルックアヘッドでなく)階層的設計のスキャンロジックを有 しており、これについて第4図〜第10図を参照しつつここに説明する。LdS tOpのための段階2の第1フェーズの間、ロード順序付けロジック434aま たはストア順序付けロジック434b、若しくはその双方のスキャンロジックは 、スケジューラ180の古さで順序づけられたOpエントリ240の中から互い に反対の型の古いLdStOpをスキャンする。即ちロード順序付けロジック4 34aは、古いStOpsをスキャンし、ストア順序付けロジック434bは古 いLdStOpをスキャンする。この実施例では、ロード順序付けロジック43 4aのスキャンロジックの3つのインスタンスのそれぞれ、及びストア順序付け ロジック434bのスキャンロジックの2つのインスタンスのそれぞれが、古さ で順序づけられたOpエントリ240のグループ内のスキャンと、及びグループ 群の一括スキャンの双方を行うための階層的に編成されたスキャンロジックを含 む。第7図〜第10図には、それぞれ3つのOpエントリからなる8つのグルー プに編成された24個のOpエントリを有するスケジューラの実施例のスキャン ロジックが 示されている。しかし、当業者は以下の説明に基づいて、異なる数のOpエント リ及び異なる数のグループから成る編成の実施例を理解することもできよう。 24Opエントリ/8グループのスケジューラ180の実施例のためのスキャ ンロジックの例の一般的な構造について第7図を参照しつつここに説明する。存 在指示ロジック(presence indication logic)710のインスタンスは、イン プリメントされた特定のスキャンロジック(即ちSU2オルダスキャンロジック 434a.1、SU1オルダスキャンロジック434a.2、SU0オルダスキ ャンロジック434a.3、LU2オルダスキャンロジック434b.1、又は LU1オルダスキャンロジック434b.2)が関係するType[2:0]及 びState[3:0]の組み合わせを検出する。例えば、第7図のようにイン プリメントされたSU1オルダスキャンロジック434a.2のための存在指示 ロジック710は、対応するOpエントリが段階1StOpを含んでいるか否か を検出する。存在指示ロジック710の23個のインスタンスのそれぞれは、グ ループ内処理ロジック740か、グループ群一括処理ロジック、若しくはその両 方(即ち第1レベルグループ群一括処理ロジック760、第2レベルグループ群 一括処理ロジック750、及び第3レベルグループ群一括処理ロジック730の 何れか、若しくはその全て)が使用するためのスキャンロジックの特定のインス タンスに適切な対応する存在指示信号(即ちP[1]、p[2]、...p[2 3])を供給する。第7図の実施例では、P[0]が使用されない。 選択指示ロジック720の対応するインスタンスも、Type[2:0]フィ ールド値とState[3:0]フィールド値の組み合わせを検出する。しかし 、選択指示ロジック720のインスタンスの場合、検出されたType[2:0 ]及びState[3:0]フィールド値は、 ストア順序付けロジック434bのスキャンロジックインスタンスのための段階 2StOp(即ちSU2412におけるStOp)のスキャンロジックインスタ ンス、及びロード順序付けロジック434aのスキャンロジックインスタンスの ための段階2LdOp(即ちLU2402におけるLdOp)を表す。選択指示 ロジック720の23個のインスタンスのそれぞれは、グループ内ロジック74 0とグループ群一括処理ロジックの何れか、若しくはその両方(即ち第1レベル グループ群一括処理ロジック760、第2レベルグループ群一括処理ロジック7 50、及び第2レベルグループ群一括処理ロジック730の何れか、若しくはそ の全部)が使用するための特定のスキャンロジックインスタンスのロー グループ内処理ロジック740は、それぞれが、特定のスキャンロジックの存 在指示ロジック710によって検出されたType[2:0]及びState[ 3:0]の組み合わせに一致し、同じグループ内の選択されたOpエントリより 古いOpの各Opグループ内に存在していることを示す指示信号を供給する。ス ケジューリングリザーバ240のO 場合の基礎となる選択されたOpエントリを示す。ここで説明する、ロード順序 付けロジック434a及びストア順序付けロジック434bのスキャンロジック を実現する実施例では、1つのOpエントリ選択指示信号が、第7図のように実 現されたスキャンロジックの各インスタンスに供給される。そのように供給され た1つのOpエントリ選択は、それがあれば、ロードユニット152又はストア ユニット153の段階2に おけるLdStOpに対応している。即ちSC_SUxOLDERスキャンロジ ックのための段階2LdOpに対応し、且つSC_SUxOLDERスキャンロ ジックのための段階2StOpに対応している。別の実施例では、Opエントリ 選択指示ロジックに適切な変更を加えて、異なる実行段階における異なる型のO pを選択し、更に、その様にして表示された多数のOpエントリに対して、相対 的な古さ(又は他の優先順位で)の比較のための多数の選択指示信号を供給し得 る。 第8図の実施例では、グループ内処理ロジック740が、6入力OR−NAN D複合ゲートによって実現された各グループのためのロジック(例示的には、w ithin−grp_2ロジック842)を含む。勿論、当業者は、特定のOp エントリグループ内で選択されたOpエントリ及び古いオペレーション検出を示 す指示信号を供給するための他の様々な適切なロジック構成を考えることができ よう。各グループに対するグループ内指示信号(即ちSUM[0]、SUM[1 ]、...SUM[7])は、結合処理ロジック770に部分的に結合され、そ のいくつかのゲートは第7図に示されている。 第9図に示すのは、第1レベルグループ群一括処理ロジック760と第2レベ ルグループ群一括処理ロジック750共通の重複ロジック部分である。第1レベ ルグループ群一括処理ロジック760は、Opエントリの第1グループにおける 選択されたOpエントリと、隣接する古いOpエントリのグループにおける古い オペレーション検出とを示す(例えばgrp_0における選択されたOpエント リとgrp_1における古いOp検出や、grp_2における選択されたOpエ ントリとgrp_3における古いOp検出等を示す)指示信号(SOP1_S2 P3及びS4P5_S6P7)を供給する。第9図の実施例では、第1レベルグ ループ群一括処理ロジック760が、NANDゲートの第1段階とAN Dゲートの第2段階の機能性によりインプリメントされている。ANDゲートの 機能性は、4入力複合AND−NORゲート772及び773と結合処理ロジッ ク770が関係するNOR機能により与えられている。勿論、当業者は、Opエ ントリの第1グループにおける選択されたOpエントリとOpエントリの第2グ ループにおける古いオペレーション検出を示す指示信号を供給するための他の様 々な適切なロジック構成を考えることができよう。隣接する2グループの組のそ れぞれに対する第1レベルグループ群一括処理指示信号は、部分的に結合処理ロ ジック770に結合され、そのいくつかのゲートは第9図に示されている。 第2レベルグループ群一括処理ロジック750は、2つの隣接するOpエント リのグループの何れかにおける選択されたOpエントリと、2つの隣接する古い Opエントリのグループの何れかにおける古いオペレーション検出とを示す(例 えばgrp_0かgrp_1の何れかにおける選択されたOpエントリとgrp _2かgrp_3における古いOp検出や、grp_4かgrp_5の何れかに おける選択されたOpエントリとgrp_6かgrp_7における古いOp検出 等を示す)指示信号(S01P23及びS45P67)を供給する。第9図の実 施例では、第2レベルグループ群一括処理ロジック750が、NANDゲートの 第1段階、4入力複合OR−NANDゲート(951及び952)の第2段階、 及びインバータの第3段階によって実現されている。勿論、当業者は、2つのO pエントリのグループの何れかにおける選択されたOpエントリと2つの古いO pエントリのグループの何れかにおける古いオペレーション検出とを示す指示信 号を供給するための他の様々な適切なロジック構成を考えることができよう。 第10図に示すのは、初めの4つのOpエントリのグループの1つにある選択 されたOpエントリと他の4つの古いOpエントリのグループ の任意のグループにおける古いオペレーション検出とを示す(即ち、grp_0 、grp_1、grp_2、又はgrp_3における選択されたOpエントリと grp_4、grp_5、grp_6、又はgrp_7における古いOp検出と を示す)即値指示信号(Sgrp_1023及びPgrp_4567)を供給す る第3レベルグループ群一括処理ロジック730である。第7図及び第10図の 実施例では、Sgrp_1023及びPgrp_4567即値指示信号は、NA NDゲートの第1段階及びORゲートの第2段階によって供給され、Sgrp_ 1023及びPgrp_4567の結合即値指示信号は、3入力の複合AND− NORゲート771のAND機能性により供給される。このようにして、第3レ ベルグループ群一括処理ロジックの機能性及び結合処理ロジック機能性の一部は 、複合AND−NORゲート771により与えられる。勿論、当業者は、4つの Opエントリのグループの何れかにおける選択されたOpエントリと他の4つの 古いOpエントリグループの1つにおける古いオペレーション検出とを示す指示 信号を供給する様々な他の適切なロジック構成を考えることができよう。 第7図を再び参照されたい。ここで結合処理ロジック770は、グループ内処 理ロジック740及びグループ群一括処理ロジック(即ち第1レベルグループ群 一括処理ロジック760、第2レベルグループ群一括処理ロジック750、及び 第3レベルグループ群一括処理ロジック730)からの指示信号を結合して、特 定の実現されたスキャンロジックのための相対的古さ指示信号を供給する。結合 処理ロジック770のORゲート、NORゲート、及びNANDゲート段階を総 合することにより、ORツリーのド・モルガン等価論理(DeMorgan equivalent )が提供される。勿論、当業者は、グループ内処理及びグループ群一括処理指示 信号を結合して、複合相対古さ指示信号を供給するための他の様々な適切 なロジック構成を考えることができよう。有利な点は、結合処理ロジック770 のロジック設計が、グループ内処理ロジック740、第1レベルグループ群一括 処理ロジック760、第2レベルグループ群一括処理ロジック750、及び第3 レベルグループ群一括処理ロジック730をまとめて考えたとき、どのような経 路に沿ってもインバータゲート遅延が5未満で済む点である。 Opエントリの数がこれより多い場合や少ない場合も、同様にゲート遅延の数 が少なくて済むという利点が得られる。例えば、当業者は、2x、4x等のOp エントリカウントが、Opエントリカウント増加の二進法で示す大きさの各オー ダーに対して追加のインバータゲート遅延を与える似たようなグループ内処理ロ ジック、グループ群一括処理ロジック、及び結合処理ロジックでサポートされ得 ることを理解されよう。Opエントリの数が少ない場合には、同様にインバータ ゲート遅延が少なくなり得る。より一般的には、本発明による、3つのグループ としてスキャンされるスキャンロジックのインプリメンテーションで、Opエン トリの数が多いものや少ないもの(例えばOpエントリの数が3、6、12、4 8、96、...)では、インバータゲート遅延がLog2(N/3)+2とな る。ここでNはOpエントリの数である。このようなスキャンロジックインプリ メンテーションの実施例は、階層的に編成されたグループ群一括処理ロジックの Log2(N/3)個の連続したレベルを有する。 ここに開示した24個のOpエントリの実施例では、3つのメンバからなるグ ループが有利である。というのは、3の倍数の全ての数は24個のOpエントリ エントリにマップでき、ロジックセルライブラリのスーツ(suite)が利用可能 だからである。にもかかわらず、より多い或いは少ないグループの数も、グルー プ群一括処理階層の各レベルにおい て適するものである。ゲート及び複合ゲートの適切な選択は当業者には明らかで あろう。更に、ここでは各グループが同一の大きさのものとして示されており、 グループ群一括処理ロジックが、グループ群一括処理階層の各連続したレベルで Opエントリ範囲が倍増してゆく形で示されているが、グループの大きさが一様 でなく、グループ群一括処理階層の連続した各レベルにおいてOpエントリの範 囲の増加度が異なっている別の実施例も可能である。スキャンロジックに適切な 改変を加えることは、当業者には明らかであろう。 当業者には明らかなように、グループ内処理ロジック及びグループ群一括処理 ロジック(例えばグループ群一括処理ロジック740、第1レベルグループ群一 括処理ロジック760、第2レベルグループ群一括処理ロジック750、及び第 3レベルグループ群一括処理ロジック730)、及び結合処理ロジック770の 間の境界は、ある程度は任意であり。様々な境界の定義が可能である。更に、あ るロジックの機能性が、異なる図面において示されたロジックブロックの間で共 有され得る。例えば、第9図及び第10図の双方に示された、グループ選択指示 信号(例えばSELgrp[0]、SELgrp[1]、SELgrp[2]、 及びSELgrp[3])及びグループ存在指示信号(例えばPgrp[4]、 Pgrp[5]、Pgrp[6]、及びPgrp[7])に対するロジックは、 第1レベルグループ群一括処理ロジック760、第2レベルグループ群一括処理 ロジック750、及び第3レベルグループ群一括処理ロジック730の間で共有 され得る。 スキャンロジックの1個のインスタンスに焦点を当てて説明すると、第7図〜 第10図に示すように実現されたSU2オルダスキャンロジック434a.1は 、段階2StOpが関係するOpエントリ240のOpエントリの存在指示信号 を供給するように構成された存在指示ロジッ ク710を含む。選択指示信号は、段階2LdOp(即ちLU2402における LdOp)が関係するOpエントリ240の特定のOpエントリを表示する選択 指示ロジック720のインスタンスにより供給される。存在指示信号及び選択指 示信号に基づき、グループ内処理ロジック740は、1つのグループが関係する Opエントリの1つにおける段階2LdOp、及び同じグループの古いOpエン トリにおける段階2StOpの存在を示すグループ内指示信号を供給する。第2 レベルグループ群一括処理ロジック760は、特定のグループが関係するOpエ ントリの1つにおける段階2LdOpと、隣接する古いグループが関係するOp エントリにおける段階2StOpの存在とを示す第1レベルグループ群一括処理 指示信号を供給する。それと同様に、第2レベルグループ群一括処理ロジック7 50は、一対の隣接するグループが関係するOpエントリの1つにおける段階2 LdOpと、一対の隣接する古いグループが関係するOpエントリにおける段階 2StOpの存在とを示す第2レベルグループ群一括処理指示信号を供給する。 最後に、第3レベルグループ群一括処理ロジック730は、4つの隣接するグル ープの組が関係するOpエントリの1つにおける段階2LdOpと、4つの隣接 する古いグループの組が関係するOpエントリの1つにおける段階LdOpと、 隣接する4つの古いグループの組が関係するOpエントリにおける段階2StO pの存在とを示す第3レベルグループ群一括処理指示信号を供給する。古い段階 2StOp指示信号は、グループ内処理ロジック又はグループ群一括処理ロジッ クの任意のものが対応する古い段階2StOp指示信号を供給する場合、結合処 理ロジック770から(SC_SU2Older信号として)供給される。 ロード順序付けロジック434aの残りのスキャンロジックの設計及び動作は 類似している。例えば、SU1オルダスキャンロジック434 a.2のグループ内処理ロジック及びグループ群一括処理ロジックは、スケジュ ーラ180のエントリをスキャンし、結合多重化ロジック434a.5は、ロー ド停止ロジック403にSC_SU1Older信号を供給する。同様に、SU 0オルダスキャンロジック434a.3のグループ内処理ロジック及びグループ 群一括処理ロジックは、スケジューラ180のエントリをスキャンし、関連する 結合処理ロジック434a.6は、ロード停止ロジック403にSC_SU0O lder信号を供給する。相対的古さ指示信号(SC_SU2Older、SC _SU1Older、及びSC_SU0Older)がロード停止ロジック40 3に供給され、そこで5のSUアドレスコンパレータ信号(AddrMatch 1及びAddrMatch2)が検証するべきか、より一般的には段階2LdO pを停止するべきか否かを決定する。 ストア順序付けロジック434bに対するスキャンロジックインスタンスは類 似している。スキャンロジックの1つのインスタンスに焦点を当てて説明すると 、第7図〜第10図に示すように実現されたLU2オルダスキャンロジック43 4b.1は、段階2LdOpが関係するOpエントリ240のOpエントリにお ける存在指示信号を供給するように構成された存在指示ロジック710を含む。 選択指示信号は、段階2StOp(即ちSU2412におけるStOp)が関係 するOpエントリ240の特定のOpエントリを表示する選択指示ロジック72 0のインスタンスにより供給される。存在指示信号及び選択指示信号に基づき、 グループ内処理ロジック740は、特定のグループが関係するOpエントリの1 つにおける段階2StOpと、同じグループの古いOpエントリにおける段階2 LdOpの存在とを示すグループ内指示信号を供給する。第1レベルグループ群 一括処理ロジック760は、特定のグループが関係するOpエントリの1つにお ける段階2StOpと、隣接する古 いグループが関係するOpエントリにおける段階2LdOpの存在とを示す第1 レベルグループ群一括処理指示信号を供給する。ここから類推されるように、第 2レベルグループ群一括処理ロジック750は、一対の隣接するグループが関係 するOpエントリの1つにおける段階2StOpと、隣接する一対の古いグルー プが関係するOpエントリにおける段階2LdOpの存在とを示す第2レベルグ ループ群一括処理指示信号を供給する。最後に、第3レベルグループ群一括処理 ロジック730は、4つの隣接するグループの組が関係するOpエントリの1つ における段階2StOpと、4つの隣接する古いグループの組が関係するOpエ ントリにおける段階2LdOpとを示す第3レベルグループ群一括処理指示信号 を供給する。古い段階2LdOp指示信号は、グループ内処理ロジック又はグル ープ群一括処理ロジックの任意のものが対応する古い段階2LdOp指示信号を 供給する場合、結合処理ロジック770から(SC_SU2Older信号とし て)供給される。 ストア順序付けロジック434bのスキャンロジックの残りのインスタンスの 設計及び動作は類似している。具体的には、LU2オルダスキャンロジック43 4b.2のグループ内処理ロジック及びグループ群一括処理ロジックは、スケジ ューラ180のエントリをスキャンし、結合処理ロジック434b.5が、スト ア停止ロジック413にSC_SU1Older信号を供給する。相対的古さ指 示信号(SC_SU2Older及びSC_SU1Older)は、ストア停止 ロジック413に供給され、そこで、LU段階2アドレスコンパレータ(Add rMatch2)を検証すべきか否か、及び段階2StOpを停止すべきか否か が決定される。 Opエントリレベル存在指示信号P[x]は、エントリのState[3:0 ]フィールド(特にS1、S2、及びS3ビット)及びTyp e[2:0]フィールド(ST又はLU)に基づいている。LdOpスキャンロ ジックの3つのインスタンスに対して、STタイプビットがSUビットの代わり に用いられる。これにより論理アドレスを発生するだけのLEAオペレーション が実際にメモリを参照するStOpが区別される。 後続の、LUst2、LUst1、及びLUst0という添え字が付されたO pエントリ方程式は、SU2オルダスキャンロジック434a.1、SU1オル ダスキャンロジック 434a.2、及びSU0オルダスキャンロジック434 a.3として上述のようにそれぞれエミュレートされたスキャンロジックに対す るOpエントリxに対応するP[x]タームを表示する。同様に、SUld2及 びSUld1という符号が付されたOpエントリ方程式は、LU2オルダスキャ ンロジック434b.1及びLU1オルダスキャンロジック434b.2として 上述のようにエミュレートされたスキャンロジックに対するOpエントリにxに 対応するP[x]タームを表示する。ビットラベルまたはOpエントリ方程式 この実施例に於いては、(S2+S1 SU2_FirstAddrV)及び (S2+S1 LU2_FirstAddrV)タームは、位置合わせされてい ないメモリアクセスオペレーションの前半を実行する段階1LdStOpsの機 能停止を管理するためにOpエントリ方程式を拡張する。 再度第8図を参照すると、SUM_01決定ゲートを含むスキャン及び結合処 理ロジック841の実施例が示されている。この実施例の設計は、同様に図示さ れているSUM_234及びSUM_567決定ゲートの設計に類似している。 第1Opクワッドが関係するOpエントリ、即ちgrp_0及びgrp_1のO pエントリ0、1、2、及び3に対するエントリ指示信号の相対的な遅さを取り 扱うための実施例では、別のSUM_01決定ロジック841aが好適である。 このような別のSUM_01決定ロジック841aは、第12図に示されており 、複合ゲート1201、1202、及び1203を含む。有利な点は、代わりの SUM_01決定ロジック841aでは、命令デコーダ140から供給されるO pクワッド0のOpエントリフィールド値によって決まる信号経路におけるイン バータゲートの遅れが3で済む点である。特に、代わりSUM_01決定ロジッ ク841aは、Ops0、1、2、及び3のType[2:0]及びState [3:0]フィールド値に応じて信号の為のより短い信号経路を提供し、それら の信号に複合ゲート1201、1202、及び1203のより速い入力を割り当 てる。このようにして、Opエントリの到着遅れの影響が低減される。プロセッサ及びシステムの実例 第1図はこの発明のスーパースケーラプロセッサ実施例を示す。スーパースケ ーラプロセッサ100は限定命令セット計算(RISC)アーキテクチャを実施 する実行エンジン150、命令デコーダ140、キャッシュ、及びメモリサブシ ステム122に表現されるアドレス空間へのアクセス及びローカルバス(図示し ない)上のデバイスへのアクセスを提供するシステムインターフェース120を 含む。 スーパースケーラプロセッサ100は、ここに記載の実施例においては別個の データ及び命令部として構成されたキャッシュを含む。データ キャッシュ170及び命令キャッシュ130は、主メモリを含みかつオプション として例証的にはL2キャッシュである追加的レベルのキャッシュを含むメモリ サブシステム122に表されるアドレス空間に(キャッシュ制御ロジック160 を介してかつシステムインターフェース120によって)接続される。L2レベ ルキャッシュへのアクセス、即ちL2キャッシュ制御ロジック及びL2データ部 (図示しない)へのアクセスはシステムインターフェース120を介して提供さ れる。代替的には、L2キャッシュ制御ロジックは(L1のための)キャッシュ 制御ロジック160とシステムインターフェース120の間に介装することがで きる。 キャッシュシステム設計は当業界において周知である。特に、分割、ハーバー ドアーキテクチャ命令及びデータキャッシュ(符号170及び130のような) 、並びに多重レベルキャッシュ階層構造を実現する適当な設計がキャッシュ技術 分野において周知である。多くの点において、スーバースケーラプロセッサ10 0のキャッシュサブシステム(即ちデータキャッシュ170、命令キャッシュ1 30、キャッシュ制御ロジック160、及びオプションであるL2キャッシュ) はそのような適当な設計の何れかである。しかしながら、そのキャッシュ性能か らは別個の理由により命令キャッシュ130はプレデコードロジック(図示しな い)と一体にされている。そのように一体化されたプレデコードロジックは取り 出された命令ストリーム内のx86命令境界を識別し、命令デコーダ140によ る命令の迅速なデコーディングを促進する。 第1図を再び参照するに、命令シーケンスは実行エンジン150により予想さ れる実行のためにメモリサブシステムから命令キャッシュ130へとロードされ る。第1図に示されるプロセッサ100の実施例に従い、命令キャッシュ130 内の命令はx86プロセッサアーキテクチャ に適合するプロセッサによって実施されるx86命令のような複合命令セットか ら選択されたCISC命令である。命令デコーダ140は命令キャッシュ130 から受け取ったCISC命令を実行エンジン150での実行のためのオペレーシ ョンへと変換する。第1図の実施例において、これらのオペレーションはRIS C類似オペレーション(以下「OPs」と言う)であり、命令キャッシュ130 からの単一x86命令は実行エンジン150のための1以上のOPsに復号する 。個々のOPsはレジスタオペレーション(RegOps)、ロード−ストアオ ペレーション(LdStOps)、ロード即値オペレーション(LIMMOps )、特殊オペレーション(SpecOps)、及び浮動小数点オペレーション( FpOps)を含む数種の型のグループの1つに分かれる。代替的実施例では異 なる命令セットを解読して実行のために異なるオペレーション形式を供給しても よい。 命令デコーダ140は分岐予測ロジック143と共にハードウェア変換部Ma cDec141及びROMベース変換部142である2個の命令変換部を含む。 最も共通的なx86命令はハードウェア変換部141内に含まれる多重並列ハー ドウェアデコーダを使用する1乃至4のOPsの短いシーケンスに変換される。 ハードウェア変換部141は命令キャッシュ130から受け取ったこれらの共通 的なx86命令を短いシーケンスに解読しこれは次にスケジューラ180に供給 される。あまり共通的でないx86命令及び4OPsよりも長いOPシーケンス に変換するこれらのx86命令は変換されるべき特定x86命令に符合したOP sの変換シーケンスを(ROMから)取り出すROMベース変換部142によっ て変換される。何れかのソースからの変換されたOPシーケンスは、ハードウェ アデコーダによって生成されたかROMから取り出されたかに係わりなく、実行 エンジン150による実行のためにスケジューラ180に供給される。 第1図を再度参照するに、実行エンジン150はスケジューラ180、レジス タファイル190及びスケジューラ180によってディスパッチされたOPsを 受取り実行する多重実行ユニットを含む。代替的実施例においては実行ユニット のセットに追加しまたはこれから差し引くことが可能であるが、第1図の実施例 においては実行エンジン150はロードユニット152、ストアユニット153 、レジスタユニット154及び155、浮動小数点ユニット156、マルチメデ ィアユニット157、並びに分岐ユニット158である7つの実行ユニットを含 む。例示的実施例においては、浮動小数点ユニット156とマルチメディアユニ ット157を省略する。実行エンジン150はまたストアユニット153とデー タキャッシュ170の間に介装されるストアキュー159を含む。 スケジューラ180は記憶エントリとこれに接続するロジックブロックの指定 された配列として構成され、この記憶エントリとロジックブロックは協働してO psの実行ユニットへのOUT−OF−ORDERディスパッチのため且つOp 結果の1以上の実行ユニットへの転送のための支援を提供する。記憶エントリと ロジックブロックの指定された配列はまた再命令バッファを実施し、レジスタフ ァイル190内に形成されたアーキテクチャレジスタの再命名を提供し、投機的 実行の回復を提供する。命令デコーダ140はスケジューラ180に命令ストリ ームから解読された新規のOpsを供給する。次に、スケジューラ180は受け 取った新規の各Opに関連したデータを(記憶エントリ内に)格納し保持する。 このようにして、Opが実行ユニットに発行されかつ実行ユニットによって実行 されるに伴いスケジューラ180が各Opの状態とその関連するデータを追跡調 査する。与えられたOpが完全に実行されかつデータ依存性が明瞭になった後に 、それは退避(retire)されそして符合するスケジューラエントリは解除 される。 スケジューラ180はバス189として一括して示される一群のバス及び制御 線を介して実行ユニット(即ち、ロードユニット152、ストアユニット153 、レジスタユニット154及び155、浮動小数点ユニット156、マルチメデ ィアユニット157並びに分岐ユニット158)に接続される。スケジューラ1 80は実行ユニットにOps、レジスタオペランド及び制御信号を供給し、例証 的にはバス189を介して実行ユニットから戻される結果値及び状態指示信号を 受け取る。もちろん、全てのバスと制御線とは完全に接合している必要はなく、 バス189は実行ユニットに対するスケジューラ180の双方向接続の単なる例 示である。 ロードユニット152とストアユニット153は、それぞれアドレス可能なメ モリからのロードしたデータとアドレス可能なメモリへの格納したデータである LdStOps(即ちLdOpsとStOps)を実行する。特定のメモリアド レスのキャッシュ状態に依拠して、LdStOpはL1データキャッシュ170 、L2キャッシュ(図示しない)、主メモリ(図示しない)のいずれかにおいて 完了する。ストアキュー159はストアユニット153からのデータを一時的に 格納しストアユニット153とロードユニット152とはデータキャッシュ17 0へのアクセス競合無しに並行して演算することができる。レジスタユニット1 54と155はRegOpsを実行しこのRegOpsはレジスタファイル19 0のアーキテクチャレジスタに関連したデータに基づいて演算する。 本発明に基づくロード/ストアオペレーションのOUT−OF−ORDER実 行コントロールを実現する様々なコンピュータシステムコンフィギュレーション が考えられる。例えば、このようなコンピュータシステム(例えばコンピュータ システム1000)は、本発明によるロード /ストアOUT−OF−ORDER実行コントロールを提供するプロセッサ10 0、メモリサブシステム(例えばRAM1020)、ディスプレイアダプタ10 10、ディスクコントローラ/アダプタ1030、様々な入力/出力インタフェ ース及びアダプタ(例えば並列インタフェース1009、直列インタフェース1 008、LANアダプタ107等)、及び対応する外部装置(例えばディスプレ イデバイス1001、プリンタ1002、モデム1003、キーボード1006 、及びデータ記憶装置)を含む。データ記憶装置には、例えばハードディスク1 032、フロッピーディスク1031、テープユニット、CD−ROM、ジュー クボックス、RAID(redundant array of inexpensive disks)、フラッシュ メモリ等のような装置が含まれる。 追加実施例 以下は追加の本発明による実施例である。 オペレーションエントリの古さ順配列において、オペレーションタイプ基準と 一致する1つ或いはそれ以上の古いエントリからなる選択されたエントリを含む 存在エントリをシグナリングするためのスキャンロジックが提供される。このス キャンロジックは、第1グループ内のオペレーションエントリの各エントリに対 する選択指示信号及びオペレーションタイプ基準指示信号を受信するために接続 される第1グループ内処理ロジックを有する。このような選択指示信号はそれぞ れ対応するエントリが選択されたエントリであるか否かを指示し、第1グループ 内処理ロジックは、第1グループ内において選択されたエントリ、並びにオペレ ーションタイプ基準と一致する古いオペレーションの第1の結合を識別する。こ のスキャンロジックはまた、第2グループのオペレーションエントリ内の各エン トリに対する選択指示信号及びオペレーションタイプ 基準指示信号を受信するために接続される第2グループ内処理ロジックを有する 。そのような各選択指示信号はそれぞれ対応するエントリが選択されたエントリ であるか否かを指示し、第2グループ内処理ロジックは、第2のグループにおい て選択されたエントリ、並びにオペレーションタイプ基準と一致する古いオペレ ーションの第2の結合を識別する。 このスキャンロジックは更に、第1グループのオペレーションエントリ内の各エ ントリに対する選択指示信号及び第2グループのオペレーションエントリ内の各 エントリに対する選択指示信号を受信するために接続される第1グループ群一括 処理ロジックを有する。この第1のグループ群一括処理ロジックは、第1グルー プ内の選択されたエントリ、並びに第2グループ内のオペレーションタイプ基準 と一致する古いオペレーションの第3の結合を識別する。前記スキャンロジック はまた、第1グループ内処理ロジック、第2グループ内処理ロジック並びに第1 グループ群一括処理ロジックに接続される結合処理ロジックを有し、この結合処 理ロジックは、それらの識別信号を受信し、任意の識別信号に応じてオルダ(ol der)エントリ識別信号を供給する。 上述のスキャンロジックはさらに、それぞれ第3及び第4のグループのオペレ ーションエントリにおける各エントリに対する選択指示信号及びオペレーション タイプ基準指示信号を受信するためにそれぞれ接続される第3及び第4のグルー プ内処理ロジック、及び第3グループのオペレーションエントリにおける各エン トリに対する選択指示信号、並びに第4のグループのオペレーションエントリに おける各エントリに対するオペレーションタイプ基準指示信号を受信するために 接続される第2のグループ群一括処理ロジックを有していてもよい。上述の第3 及び第4のグループ内処理ロジックはそれぞれ、第3及び第4のグループのそれ ぞれにおける選択されたエントリ及びオペレーションタイプ基準に一致 する古いオペレーションの第4及び第5の結合を識別する。また、上述の第2グ ループ群一括処理ロジックは第3グループ内の選択されたエントリ、並びに第3 及び第4グループ内のオペレーションタイプ基準と一致する古いオペレーション の第6の結合を識別する。上述の結合処理ロジックはさらに第3グループ内処理 ロジック、第4グループ内処理ロジック並びに第2グループ群一括処理ロジック に接続され、第4、第5並びに第6の結合信号をそこから受信し、また結合処理 ロジックが任意の第1、第2、第3、第4、第5並びに第6の結合信号に応じて オルダエントリ識別信号を供給する。 別形態では、前記スキャンロジックがさらに、それぞれ第3及び第4グループ のオペレーションエントリ内の各エントリに対する選択指示信号及びオペレーシ ョンタイプ基準指示信号を受信するためにそれぞれ接続される第3及び第4グル ープ内処理ロジック、及び第3グループのオペレーションエントリ内の各エント リに対する選択指示信号、並びに第4グループのオペレーションエントリ内の各 エントリに対するオペレーションタイプ基準指示信号を受信するために接続され る第2グループ群一括処理ロジックを有していてもよい。上述の第3及び第4グ ループ内処理ロジックは、それぞれ第3及び第のグループ内の選択されたエント リ及びオペレーションタイプ基準に一致する古いオペレーションの第4及び第5 の結合を識別する。上述の第2グループ群一括処理ロジックは第3グループ内の 選択されたエントリ、並びに第3及び第4のグループ内オペレーションタイプ基 準と一致する古いオペレーションの第6の結合を識別する。上述の結合処理ロジ ックはさらに第3グループ内処理ロジック、第4グループ内処理ロジック並びに 第2グループ群一括処理ロジックに接続され、第4、第5並びに第6の結合信号 をそこから受信し、また結合処理ロジックが任意の第1、第2、第3、第4、第 5並びに第 6の結合信号に応じてオルダエントリ識別信号を供給する。 別実施例によれば、ロードユニット及びストアユニットを有するプロセッサに おいて、ロード及びストア命令間でデータ依存性を強いる一方で、ロード及びス トア命令が互いに関して普通にOUT−OF−ORDER実行できるようするた めのロード/ストア実行コントローラが提供される。このロード/ストア実行コ ントローラは、古さ順配列のスケジューラオペレーションエントリを有する。各 スケジューラオペレーションエントリはオペレーションシーケンス内の対応する オペレーションを指示する。ロード停止ロジックは、ロードユニットに接続され 、ストアオルダ指示信号(store older indication)受信時に、ロードユニット 内のロードオペレーションを選択的に禁止する。スキャンチェーンロジックは、 オペレーションエントリ及びロード停止ロジックに接続され、ロードユニット内 のロードオペレーションに関連する古いストアオペレーションの存在を指示する ストアオルダ指示信号を供給する。このスキャンロジックはさらに、それぞれの 第1レベルグループの隣接エントリ内の各エントリに対する選択信号及び第1の 基準信号を受信し、それぞれの第1レベルグループ内の選択されたエントリ及び より高次のエントリのそれぞれの結合を識別するために接続されるグループ内処 理ロジックと、隣接ずるより低次の及びより高次の第1レベルグループからのエ ントリに対応するそれぞれの選択信号及び第1の基準信号を受信し、低次第1レ ベルグループの1つにおいて選択されたエントリの結合を識別し、それぞれの高 次第1レベルグループ内の高次エントリを識別するために接続される第1レベル グループ群一括処理ロジックと、グループ内処理ロジック及び第1レベルグルー プ群一括処理ロジックに接続され、そこからの結合信号を受信し、さらに任意の 結合信号に応じて高次エントリ識別信号を供給する結合処理ロジックとを含む。 本発明は種々の実施例を参照して記載されているが、これらの実施例は例示に すぎず、本発明の範囲を制限するものではないことは理解されよう。ここで記載 される実施例の種々の変形、変更、追加或いは改良が可能である。例えば、Op クワッドとしてスケジューラ180内にあるOpエントリの機構は単なる例示で ある。別の実施例では、他の構造並びにまた方法が組み込まれ、多重或いはパイ プライン化実行ユニットを有するコンピュータにおけるオペレーションの性質或 いは状態を表せるかもしれない。スキャンロジックは、より大きな或いはより小 さなグループにグループ化された多数の或いは少数のOpエントリを収容するよ うに構成されるかもしれない。ここに記載された階層的な機構から逸脱すること なく、さらに種々のゲート/複雑ゲートレベルロジックにより設計することが適 当である。別の実施例では、ロードユニット152及びストアユニット153に おいて異なる構造及び機能が配分されるかもしれない。例えば、ロードユニット 152及びストアユニット153は別々に変更され、多数の或いは少数の実行段 階を含むかもしれない。所要のスキャンロジックインスタンスのセットへの相応 の変更は、当業者には明らかであろう。アドレス比較を行うための構造は、ロー ドユニット152とストアユニット153との間で異なって配分されるかもしれ ない。さらに別の実施例では、多数の或いは少数のスキャンロジックインスタン スが組み込まれ、LdOps及びStOpsを停止するかもしれない。アドレス 比較は、多くの従来の停止に関するポリシーを選択すればなくせるかもしれない 。さらに、典型的な実施例においてハードウエアで提供される構造及び機能は、 別の実施例では、ソフトウエア、ファームウエア或いはマイクロコードで実現さ れるかもしれない。以上の或いはこれ以外の変形、変更、追加並びに改良は以下 に示す請求の範囲 において画定される本発明の範囲内に含まれるであろう。請求の範囲 1. 順序付けされた配列(240)のN個のエントリにおいて第1の基準と一 致するエントリの存在をシグナリングするためのスキャンロジック(700)で あって、 前記エントリが最も低い順序のエントリから最も高い順序のエントリまでの範 囲にあり、各エントリが前記順序内に画定された位置を有し、前記配列が選択さ れたエントリを含み、 前記第1基準と一致する前記エントリが、前記選択されたエントリより、前記 順序において高い位置を有する場合、 各エントリは対応する選択信号及び第1の基準一致信号を供給するためのロジ ック(720,710)を有し、 前記スキャンロジック(700)が、エントリのグループのレベルを画定する ための階層的に構成され、前記スキャンロジックが、 それぞれの第1レベルグループの隣接エントリ内の各エントリに対する選択信 号及び第1基準信号を受信し、かつそれぞれの前記第1レベルグループ内の前記 選択されたエントリ及び前記高次エントリのそれぞれの結合を識別し、グループ 内処理結合信号を与えるために接続されるグループ内処理ロジック(740)と 、 隣接する低次及び高次第1レベルグループからのエントリに対応するそれぞれ の選択信号及び第1基準信号を受信し、かつ前記低次第1レベルグループの1つ における前記選択されたエントリ、並びにそれぞれの前記高次第1レベルグルー プ内の前記高次エントリのそれぞれの結合を識別し、グループ群一括処理結合信 号を供給するために接続される第1レベルグループ群一括処理ロジック(760 )と、 前記グループ内処理ロジック及び前記第1レベルグループ群一括処理ロジック に接続され、そこから結合信号を受信し、さらに任意の前記結 合信号に応じて、前記選択されたエントリ及び少なくとも1つの前記第1基準と 一致する高次エントリの存在を指示する高次エントリ識別信号を供給する結合処 理ロジック(770)とを有することを特徴とするスキャンロジック。 2. 前記エントリが多重化実行ユニットプロセッサの実行ユニット(152− 158)で評価するためのオペレーション(Op)エントリからなり、 前記Opエントリが古さ順、すなわちより古いOpエントリからなる高次エン トリ並びに新しいOpエントリからなる低次エントリからなり、 前記選択されたエントリがロードオペレーション(LdOp)エントリからな り、 前記第1の基準がストアオペレーション(StOp)エントリに一致すること を特徴とする請求項1に記載のスキャンロジック。 3. 前記エントリが多重化実行ユニットプロセッサの実行ユニット(152− 158)で評価するためのオペレーション(Op)エントリからなり、 前記Opエントリが古さ順、すなわちより古いOpエントリからなる高次エン トリ並びに新しいOpエントリからなる低次エントリからなり、 前記選択されたエントリがストアオペレーション(StOp)エントリからな り、 前記第1の基準がロードオペレーション(LdOp)エントリに一致すること を特徴とする請求項1に記載のスキャンロジック。 4. 前記エントリが多重化実行ユニットプロセッサの実行ユニット(152− 158)で評価するためのオペレーション(Op)エントリからなり、前記多重 化実行ユニットプロセッサがロードユニット(152)及びストアユニット(1 53)からなり、 前記Opエントリが古さ順、すなわちより古いOpエントリからなる高次エン トリ並びに新しいOpエントリからなる低次エントリからなり、 前記選択されたエントリが、対応するいずれか1つの前記ストアユニット及び 前記ロードユニットでの評価の第1段階におけるストアオペレーション(StO p)及びロードオペレーション(LdOp)のうちの一方に対応する選択された Opエントリからなり、 前記第1の基準が、前記ストアユニット及び前記ロードユニットの前記対応す る1つでの評価の所定段階におけるストアオペレーション(StOp)及びロー ドオペレーション(LdOp)のうちの他方に一致することを特徴とする請求項 1に記載のスキャンロジック。 5. 請求項4に記載のスキャンロジックのストアオルダインスタンス及びロー ドオルダインスタンスであって、 前記ストアオルダスキャンロジックに対する前記選択信号が、もしあるなら、 前記ロードユニットにおける段階2LdOpに対応する前記Opエントリの1つ を指示し、前記ロードオルダスキャンロジックに対する選択信号が、もしあるな ら、前記ストアユニットにおける段階2StOpに対応する前記Opエントリの 1つを指示し、前記ストアオルダスキャンロジックに対する前記第1の基準信号 が前記ストアユニットでの評価の第1の所定段階におけるStOpを指示し、前 記ロードオルダスキャンロジックに対する第1の基準信号が、前記ロードユニッ トでの評価の第2の所定段階におけるLdOpを指示し、前記ストアオルダスキ ャンロジックの前記高次エントリ識別信号がストアオルダ信号であり、前記ロー ドオルダスキャンロジックの前記高次エントリ識別信号がロードオルダ信号であ ることを特徴とするスキャンロジックのストアオルダインスタンス及びロードオ ルダインスタンス。 6. 隣接する低次及び高次第2レベルグループからのエントリに対応 するそれぞれの選択信号及び第1の基準信号を受信し、かつ前記低次第2レベル グループの1つにおける前記選択されたエントリ及び前記それぞれの高次第2レ ベルグループにおける高次エントリのそれぞれの結合を識別するために接続され る第2レベルグループ群一括処理ロジック(750)と、 前記第2レベルグループ群一括処理ロジックにさらに接続され、そこから結合 信号を受信し、かつ第2レベルグループ群一括処理ロジックからの信号を含む、 任意の前記結合信号に応じて高次エントリ識別信号を供給する結合処理ロジック (770)とをさらに有することを特徴とする請求項1に記載のスキャンロジッ ク。 7. 各前記第1次グループが前記第2レベルグループ内に階層的に定義される ことを特徴とする請求項6に記載のスキャンロジック。 8. 各前記第1レベルグループが順序付け配列の3つのエントリ(240)を 含み、各前記第2レベルグループが前記順序付け配列の6つのエントリを含むこ とを特徴とする請求項6に記載のスキャンロジック。 9. 連続的でより大きなグループの隣接エントリからのエントリに対応するそ れぞれの選択信号及び第1の基準一致信号を受信し、かつより低次のグループに おける選択された信号、並びに前記それぞれの高次グループにおける高次エント リのそれぞれの結合を識別するために接続される階層構造を有するグループ群一 括処理ロジック(750,730)の連続するレベルをさらに有し、 前記結合処理ロジック(770)がさらに階層構造を有するグループ群一括処 理ロジックの各前記連続レベルに接続され、そこから結合信号を受信し、さらに 階層構造を有するグループ群一括処理ロジックの連続レベルからの信号を含む、 任意の前記結合信号に応じて高次エントリ識別信号を供給することを特徴とする 請求項1に記載のスキャンロジック。 10. 各前記第1次グループが順序付け配列の3つのエントリを含み、各前記 連続的で大きなグループの隣接エントリはそこに含まれる順序付け配列のエント リ数を2倍にすることを特徴とする請求項9に記載のスキャンロジック。 11. 前記順序付け配列は古さ順であり、24オペレーションエントリを含み 、 前記第1次グループのそれぞれが前記古さ順配列からの3つのエントリを含み 、 前記第1レベルグループ及び連続的に大きなグループの隣接エントリのそれぞ れは共に、階層的に画定されたグループの隣接エントリの4レベルを画定し、そ れぞれそこにおいて含まれる隣接エントリの数を2倍することを特徴とする請求 項9に記載のスキャンロジック。 12. 前記順序付け配列は古さ順であり、24オペレーションエントリを含み 、 エントリレベル選択からの前記高次エントリ識別信号及び第1の基準指示信号 を計算するためにスキャンロジックを介して画定されるロジックパスは、一律に 5ゲート遅延よりは大きくはないことを特徴とする請求項9に記載のスキャンロ ジック。 13. 前記順序付け配列が古さ順配列のオペレーションエントリであり、 前記エントリの前記選択された1つが選択された実行段階のロード及びストア オペレーションの一方に対応し、 前記第1の基準が前記ストア及びロードオペレーションの他方に等しいオペレ ーションタイプであることを特徴とする請求項9に記載のスキャンロジック。 14. スーパスケーラプロセッサであって、 ロードユニット(152)及びストアユニット(153)と、 前記ロードユニット及び前記ストアユニットに接続されるロード及びストア実 行制御ロジック(180)であって、前記ロード及びストア実行制御ロジックは 、あるロード及びストア命令間でデータ依存性を強いる一方で、ロード及びスト ア命令が互いに関して普通にOUT−OF−ORDER実行できるようにし、ロ ード/ストア実行コントローラが請求項1に記載のスキャンロジックからなるこ とを特徴とするスーパスケーラプロセッサ。 15. 第1レベルグループが、3つの隣接する配列エントリのグループからな り、 階層構造を有するグループ群一括処理ロジックのlog2(N/3)レベルが 連続する大きなグループの隣接するエントリからのエントリに対応するそれぞれ の選択信号及び第1基準一致信号を受信し、各連続レベルにて、低次グループに おいて前記選択されたエントリの、並びに前記それぞれの高次グループ内の高次 配列エントリのそれぞれの結合を識別するために接続され、 前記階層構造を有するスキャンロジックが、わずかlog2(N/3)+2反 転ゲート遅延からなることを特徴とする請求項1に記載のスキャンロジック。 16. 選択されたOpエントリを含む、古さ順配列(240)のオペレーショ ン(Op)エントリにおいて、オペレーションタイプ基準と一致する1つ或いは それ以上の古いエントリの存在をシグナリングするための方法であって、前記エ ントリが所定サイズのグループ内で構成され、各エントリが画定された順序位置 を有し、前記方法が、 第1グループの前記Opエントリにおける前記選択されたOpエントリ及び前 記オペレーションタイプ基準に一致する古いOpのグループ内 結合を検出する過程と、 連続する第2、第3並びに第4のグループの前記Opエントリを含む、連続オ ルダグループ内の前記選択されたエントリ及び前記オペレーションタイプ基準と 一致する古いOpのグループ内結合を検出する過程と、 前記第1グループのOpエントリの前記選択されたOpエントリ及び第2グル ープのOpエントリの前記オペレーションタイプ基準に一致する古いOpの第1 レベルグループ間結合を検出する過程と、 前記連続する第3及び第4グループのOpエントリを含む、Opエントリのグ ループの各連続する組における、前記選択されたOpエントリ及び前記オペレー ションタイプ基準と一致する古いOpの第1レベルグループ間結合を検出する過 程と、 前記第1グループに対するグループ内結合検出、各連続グループに対するグル ープ内結合検出、第1及び第2グループに対する第1レベルグループ間結合検出 、並びに各連続するグループの組に対する第1レベルグループ間結合検出を結合 し、前記オペレーションタイプ基準と一致し、前記Opエントリの配列内に現れ る前記選択されたOpより古いOpの信号指示を供給する過程とを有することを 特徴とする方法。 17. 前記第1及び第2グループの1つにおける前記選択されたOpエントリ 及び前記第3及び第4グループのいずれかにおける前記オペレーションタイプ基 準と一致する古いOpの第2レベルグループ間結合を検出する過程を有し、前記 結合過程がさらに、前記第2レベルグループ間結合検出と、前記グループ内及び 第1レベルグループ間検出とを結合する過程を含み、前記オペレーションタイプ 基準と一致し、かつOpエントリの前記配列内に現れる前記選択されたOpより 古い信号指示を供給する過程を有することを特徴とする請求項16に記載の方法 。 18. 連続レベルの階層構造を有する複合グループにおいて連続レベ ルのグループ間結合を検出過程であって、前記選択されたOpエントリが複合グ ループの1組の第1グループ内にあり、かつ前記オペレーションタイプ基準と一 致する古いOpが前記1組の複合グループの第2グループ内にあるとき、特定の レベルの複合グループにおける結合が生じる、該過程をさらに有し、前記結合過 程がさらに、各連続レベルの階層構造を有する複合グループでのグループ間結合 検出と、前記グループ内及び第1レベルグループ間検出とを結合する過程を含み 、前記オペレーションタイプ基準と一致し、かつ前記Opエントリの配列内に現 れる前記選択されたOpより古いOpの信号指示を供給する過程を有することを 特徴とする請求項16に記載の方法。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,DE, DK,ES,FI,FR,GB,GR,IE,IT,L U,MC,NL,PT,SE),OA(BF,BJ,CF ,CG,CI,CM,GA,GN,ML,MR,NE, SN,TD,TG),AP(KE,LS,MW,SD,S Z,UG),EA(AM,AZ,BY,KG,KZ,MD ,RU,TJ,TM),AL,AM,AT,AU,AZ ,BA,BB,BG,BR,BY,CA,CH,CN, CU,CZ,DE,DK,EE,ES,FI,GB,G E,HU,IL,IS,JP,KE,KG,KP,KR ,KZ,LC,LK,LR,LS,LT,LU,LV, MD,MG,MK,MN,MW,MX,NO,NZ,P L,PT,RO,RU,SD,SE,SG,SI,SK ,TJ,TM,TR,TT,UA,UG,UZ,VN

Claims (1)

  1. 【特許請求の範囲】 1. 選択されたエントリを含む順序付けられた配列のN個のエントリにおいて 、第1の基準に一致する高次エントリの存在をシグナリングするためのスキャン ロジックであって、前記スキャンロジックが、 それぞれの第1レベルグループの隣接エントリ内の各エントリに対する選択信 号及び第1基準信号を受信し、かつそれぞれの前記第1レベルグループ内の前記 選択されたエントリ及び前記高次エントリのそれぞれの結合を識別するために接 続されるグループ内処理ロジックと、 隣接する低次及び高次第1レベルグループからのエントリに対応するそれぞれ の選択信号及び第1基準信号を受信し、かつ前記低次第1レベルグループの1つ における前記選択されたエントリ、並びにそれぞれの前記高次第1レベルグルー プ内の前記高次エントリのそれぞれの結合を識別するために接続される第1レベ ルグループ群一括処理ロジックと、 前記グループ内処理ロジック及び前記第1レベルグループ群一括処理ロジック に接続され、そこから結合信号を受信し、さらに任意の前記結合信号に応じて高 次エントリ識別信号を供給する結合処理ロジックとを有することを特徴とするス キャンロジック。 2. 前記エントリが多重化実行ユニットプロセッサの実行ユニットで評価する ためのオペレーション(Op)エントリからなり、 前記Opエントリが古さ順、すなわちより古いOpエントリからなる高次エン トリ並びに新しいOpエントリからなる低次エントリからなり、 前記選択されたエントリがロードオペレーション(LdOp)エントリからな り、 前記第1の基準がストアオペレーション(StOp)エントリに一致すること を特徴とする請求項1に記載のスキャンロジック。 3. 前記エントリが多重化実行ユニットプロセッサの実行ユニットで 評価するためのオペレーション(Op)エントリからなり、 前記Opエントリが古さ順、すなわちより古いOpエントリからなる高次エン トリ並びに新しいOpエントリからなる低次エントリからなり、 前記選択されたエントリがストアオペレーション(StOp)エントリからな り、 前記第1の基準がロードオペレーション(LdOp)エントリに一致すること を特徴とする請求項1に記載のスキャンロジック。 4. 前記エントリが多重化実行ユニットプロセッサの実行ユニットで評価する ためのオペレーション(Op)エントリからなり、前記多重化実行ユニットプロ セッサがロードユニット及びストアユニットからなり、 前記Opエントリが古さ順、すなわちより古いOpエントリからなる高次エン トリ並びに新しいOpエントリからなる低次エントリからなり、 前記選択されたエントリが、対応するいずれか1つの前記ストアユニット及び 前記ロードユニットでの評価の第1段階におけるストアオペレーション(StO p)及びロードオペレーション(LdOp)のうちの一方に対応する選択された Opエントリからなり、 前記第1の基準が、前記ストアユニット及び前記ロードユニットの前記対応す る1つでの評価の所定段階におけるストアオペレーション(StOp)及びロー ドオペレーション(LdOp)のうちの他方に一致することを特徴とする請求項 1に記載のスキャンロジック。 5. 請求項4に記載のスキャンロジックのストアオルダインスタンス及びロー ドオルダインスタンスであって、 前記ストアオルダスキャンロジックに対する前記選択信号が、もしあるなら、 前記ロードユニットにおける段階2LdOpに対応する前記Opエントリの1つ を指示し、前記ロードオルダスキャンロジックに対する選択信号が、もしあるな ら、前記ストアユニットにおける段階2St Opに対応する前記Opエントリの1つを指示し、前記ストアオルダスキャンロ ジックに対する前記第1の基準信号が前記ストアユニットでの評価の第1の所定 段階におけるStOpを指示し、前記ロードオルダスキャンロジックに対する第 1の基準信号が、前記ロードユニットでの評価の第2の所定段階におけるLdO pを指示し、前記ストアオルダスキャンロジックの前記高次エントリ識別信号が ストアオルダ信号であり、前記ロードオルダスキャンロジックの前記高次エント リ識別信号がロードオルダ信号であることを特徴とするスキャンロジックのスト アオルダインスタンス及びロードオルダインスタンス。 6. 隣接する低次及び高次第2レベルグループからのエントリに対応するそれ ぞれの選択信号及び第1の基準信号を受信し、かつ前記低次第2レベルグループ の1つにおける前記選択されたエントリ及び前記それぞれの高次第2レベルグル ープにおける高次エントリのそれぞれの結合を識別するために接続される第2レ ベルグループ群一括処理ロジックと、 前記第2レベルグループ群一括処理ロジックにさらに接続され、そこから結合 信号を受信し、かつ第2レベルグループ群一括処理ロジックからの信号を含む、 任意の前記結合信号に応じて高次エントリ識別信号を供給する結合処理ロジック とをさらに有することを特徴とする請求項1に記載のスキャンロジック。 7. 各前記第1次グループが前記第2次グループ内に階層的に定義されること を特徴とする請求項6に記載のスキャンロジック。 8. 各前記第1次グループが順序付け配列の3つのエントリを含み、各前記第 2次グループが前記順序付け配列の6つのエントリを含むことを特徴とする請求 項6に記載のスキャンロジック。 9. 連続的でより大きなグループの隣接エントリからのエントリに対応するそ れぞれの選択信号及び第1の基準信号を受信し、かつより低次 のグループにおける選択された信号、並びに前記それぞれの高次グループにおけ る高次エントリのそれぞれの結合を識別するために接続される階層構造を有する グループ群一括処理ロジックの連続するレベルをさらに有し、 前記結合処理ロジックがさらに階層構造を有するグループ群一括処理ロジック の各前記連続レベルに接続され、そこから結合信号を受信し、さらに階層構造を 有するグループ群一括処理ロジックの連続レベルからの信号を含む、任意の前記 結合信号に応じて高次エントリ識別信号を供給することを特徴とする請求項1に 記載のスキャンロジック。 10. 各前記第1次グループが順序付け配列の3つのエントリを含み、各前記 連続的で大きなグループの隣接エントリはそこに含まれる順序付け配列のエント リ数を2倍にすることを特徴とする請求項9に記載のスキャンロジック。 11. 前記順序付け配列は古さ順であり、24オペレーションエントりを含み 、 前記第1次グループのそれぞれが前記古さ順配列からの3つのエントリを含み 、 前記第1レベルグループ及び連続的に大きなグループの隣接エントリのそれぞ れは共に、階層的に画定されたグループの隣接エントリの4レベルを画定し、そ れぞれそこにおいて含まれる隣接エントリの数を2倍することを特徴とする請求 項9に記載のスキャンロジック。 12. 前記順序付け配列は古さ順であり、24オペレーションエントリを含み 、 エントリレベル選択からの前記高次エントリ識別信号及び第1の基準指示信号 を計算するためにスキャンロジックを介して画定されるロジックパスは、一律に 5ゲート遅延よりは大きくはないことを特徴とする請 求項9に記載のスキャンロジック。 13. 前記順序付け配列が古さ順配列のオペレーションエントリであり、 前記エントリの前記選択された1つが選択された実行段階のロード及びストア オペレーションの一方に対応し、 前記第1の基準が前記ストア及びロードオペレーションの他方に等しいオペレ ーションタイプであることを特徴とする請求項9に記載のスキャンロジック。 14. スーパスケーラプロセッサであって、 ロードユニット及びストアユニットと、 前記ロードユニット及び前記ストアユニットに接続されるロード及びストア実 行制御ロジックであって、前記ロード及びストア実行制御ロジックは、あるロー ド及びストア命令間でデータ依存性を強いる一方で、ロード及びストア命令が互 いに関して普通にOUT−OF−ORDER実行できるようにし、ロード/スト ア実行コントローラが請求項1に記載のスキャンロジックからなることを特徴と するスーパスケーラプロセッサ。 15. 選択されたOpエントリを含む、古さ順配列のオペレーション(Op) エントリにおいて、オペレーションタイプ基準と一致する1つ或いはそれ以上の 古いエントリの存在をシグナリングするための方法であって、前記方法が、 第1グループの前記Opエントリにおける前記選択されたOpエントリ及び前 記オペレーションタイプ基準に一致する古いOpのグループ内結合を検出する過 程と、 連続する第2、第3並びに第4のグループの前記Opエントリを含む、連続オ ルダグループ内の前記選択されたエントリ及び前記オペレーショ ンタイプ基準と一致する古いOpのグループ内結合を検出する過程と、 前記第1グループのOpエントリの前記選択されたOpエントリ及び第2グル ープのOpエントリの前記オペレーションタイプ基準に一致する古いOpの第1 レベルグループ間結合を検出する過程と、 前記連続する第3及び第4グループのOpエントリを含む、Opエントリのグ ループの各連続する組における、前記選択されたOpエントリ及び前記オペレー ションタイプ基準と一致する古いOpの第1レベルグループ間結合を検出する過 程と、 前記第1グループに対するグループ内結合検出、各連続グループに対するグル ープ内結合検出、第1及び第2グループに対する第1レベルグループ間結合検出 、並びに各連続するグループの組に対する第1レベルグループ間結合検出を結合 し、前記オペレーションタイプ基準と一致し、前記Opエントリの配列内に現れ る前記選択されたOpより古いOpの信号指示を供給する過程とを有することを 特徴とする方法。 16. 前記第1及び第2グループの1つにおける前記選択されたOpエントリ 及び前記第3及び第4グループのいずれかにおける前記オペレーションタイプ基 準と一致する古いOpの第2レベルグループ間結合を検出する過程を有し、前記 結合過程がさらに、前記第2レベルグループ間結合検出と、前記グループ内及び 第1レベルグループ間検出とを結合する過程を含み、前記オペレーションタイプ 基準と一致し、かつOpエントリの前記配列内に現れる前記選択されたOpより 古い信号指示を供給する過程を有することを特徴とする請求項15に記載の方法 。 17. 連続レベルの階層構造を有する複合グループにおいて連続レベルのグル ープ間結合を検出過程であって、前記選択されたOpエントリが複合グループの 1組の第1グループ内にあり、かつ前記オペレーションタイプ基準と一致する古 いOpが前記1組の複合グループの第2グル ープ内にあるとき、特定のレベルの複合グループにおける結合が生じる、該過程 をさらに有し、前記結合過程がさらに、各連続レベルの階層構造を有する複合グ ループでのグループ間結合検出と、前記グループ内及び第1レベルグループ間検 出とを結合する過程を含み、前記オペレーションタイプ基準と一致し、かつ前記 Opエントリの配列内に現れる前記選択されたOpより古いOpの信号指示を供 給する過程を有することを特徴とする請求項15に記載の方法。 18. 選択されたエントリを含む、Nエントリの順序付け配列における、基準 と一致する高次エントリの存在をシグナリングするためにオペレーション配列用 ロジックにおいて、選択ラインが各配列エントリに対応し、前記選択ラインの1 つにおける選択信号が前記選択されたエントリを指示し、一致基準ラインが各前 記エントリに対応し、任意の一致基準ライン上の一致信号が前記対応する配列エ ントリが前記基準と一致することを示し、スキャンロジックが、 高次エントリ指示ライン上の指示が、前記選択されたエントリより古い基準に 一致し、かつ高次のエントリの存在を示し、 前記選択指示ライン及び一致基準指示ラインと、前記高次エントリ指示ライン との間に接続されるツリー構造ロジック回路を有し、前記ツリー構造ロジック回 路が、 前記選択指示ライン及び前記一致基準指示ラインの接続され、3つの隣接配 列エントリ内の前記選択されたエントリ及び前記基準と一致する高次配列エント リの第1の結合を識別するグループ内処理ロジックと、 隣接エントリの連続的で大きなグループからのエントリに対応するそれぞれ の選択指示ライン及び一致基準指示ラインに接続され、各連続レベルにおいて、 低次グループ内の前記選択されたエントリ及びそれぞれの前記高次グループ内の 前記高次配列エントリのそれぞれの結合を識 別するために接続される階層構造を有するグループ群一括処理ロジックのlog2 (N/3)連続レベルとを有し、 前記ツリー構造ロジック回路が、わずかlog2(N/3)+2反転ゲート遅 延からなることを特徴とするスキャンロジック。
JP52687497A 1996-01-26 1997-01-22 ロード/ストアオペレーションのout―of―order実行コントロールのための階層的スキャンロジック Expired - Fee Related JP3681761B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US592,209 1996-01-26
US08/592,209 US5754812A (en) 1995-10-06 1996-01-26 Out-of-order load/store execution control
US740,119 1996-10-23
US08/740,119 US5835747A (en) 1996-01-26 1996-10-23 Hierarchical scan logic for out-of-order load/store execution control
PCT/US1997/000294 WO1997027538A1 (en) 1996-01-26 1997-01-22 Hierarchical scan logic for out-of-order load/store execution control

Publications (2)

Publication Number Publication Date
JP2000515268A true JP2000515268A (ja) 2000-11-14
JP3681761B2 JP3681761B2 (ja) 2005-08-10

Family

ID=27081403

Family Applications (1)

Application Number Title Priority Date Filing Date
JP52687497A Expired - Fee Related JP3681761B2 (ja) 1996-01-26 1997-01-22 ロード/ストアオペレーションのout―of―order実行コントロールのための階層的スキャンロジック

Country Status (6)

Country Link
US (1) US5835747A (ja)
EP (1) EP0876646B1 (ja)
JP (1) JP3681761B2 (ja)
AU (1) AU1530997A (ja)
DE (1) DE69736105T2 (ja)
WO (1) WO1997027538A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003519832A (ja) * 2000-01-03 2003-06-24 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド アントレーニングを備えるストア−ロード転送プレディクタ
CN100524203C (zh) * 2003-11-26 2009-08-05 英特尔公司 用于检测和处理未对齐数据访问的设备、系统和方法

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5987595A (en) * 1997-11-25 1999-11-16 Intel Corporation Method and apparatus for predicting when load instructions can be executed out-of order
US6192464B1 (en) * 1997-12-31 2001-02-20 Intel Corporation Method and apparatus for decoding one or more instructions after renaming destination registers
US6212622B1 (en) 1998-08-24 2001-04-03 Advanced Micro Devices, Inc. Mechanism for load block on store address generation
US6122727A (en) * 1998-08-24 2000-09-19 Advanced Micro Devices, Inc. Symmetrical instructions queue for high clock frequency scheduling
WO2000011548A1 (en) * 1998-08-24 2000-03-02 Advanced Micro Devices, Inc. Mechanism for load block on store address generation and universal dependency vector
US6212623B1 (en) 1998-08-24 2001-04-03 Advanced Micro Devices, Inc. Universal dependency vector/queue entry
US6141747A (en) * 1998-09-22 2000-10-31 Advanced Micro Devices, Inc. System for store to load forwarding of individual bytes from separate store buffer entries to form a single load word
US6223259B1 (en) 1998-10-30 2001-04-24 Telefonaktiebolaget Lm Ericsson (Publ) Reducing read cycle of memory read request for data to be partially modified by a pending write request
US6167492A (en) 1998-12-23 2000-12-26 Advanced Micro Devices, Inc. Circuit and method for maintaining order of memory access requests initiated by devices coupled to a multiprocessor system
US6304955B1 (en) * 1998-12-30 2001-10-16 Intel Corporation Method and apparatus for performing latency based hazard detection
EP1050806A1 (en) * 1999-05-03 2000-11-08 STMicroelectronics SA Memory access address comparison
US6523109B1 (en) 1999-10-25 2003-02-18 Advanced Micro Devices, Inc. Store queue multimatch detection
US6481251B1 (en) 1999-10-25 2002-11-19 Advanced Micro Devices, Inc. Store queue number assignment and tracking
US6622235B1 (en) 2000-01-03 2003-09-16 Advanced Micro Devices, Inc. Scheduler which retries load/store hit situations
US6542984B1 (en) 2000-01-03 2003-04-01 Advanced Micro Devices, Inc. Scheduler capable of issuing and reissuing dependency chains
US6694424B1 (en) 2000-01-03 2004-02-17 Advanced Micro Devices, Inc. Store load forward predictor training
US6564315B1 (en) 2000-01-03 2003-05-13 Advanced Micro Devices, Inc. Scheduler which discovers non-speculative nature of an instruction after issuing and reissues the instruction
US6622237B1 (en) 2000-01-03 2003-09-16 Advanced Micro Devices, Inc. Store to load forward predictor training using delta tag
DE10110578B4 (de) * 2000-03-29 2004-06-03 International Business Machines Corporation Hierarchisches Prioritätsfilter mit integrierter Serialisierung
US6662293B1 (en) 2000-05-23 2003-12-09 Sun Microsystems, Inc. Instruction dependency scoreboard with a hierarchical structure
US6857060B2 (en) 2001-03-30 2005-02-15 Intel Corporation System, apparatus and method for prioritizing instructions and eliminating useless instructions
US6963961B1 (en) * 2001-07-09 2005-11-08 Lsi Logic Corporation Increasing DSP efficiency by independent issuance of store address and data
US6803786B1 (en) * 2003-03-11 2004-10-12 Xilinx, Inc. Structures and methods providing columns of tightly coupled processor and RAM blocks within an array of logic blocks
US7321964B2 (en) * 2003-07-08 2008-01-22 Advanced Micro Devices, Inc. Store-to-load forwarding buffer using indexed lookup
US7376817B2 (en) * 2005-08-10 2008-05-20 P.A. Semi, Inc. Partial load/store forward prediction
US9128725B2 (en) 2012-05-04 2015-09-08 Apple Inc. Load-store dependency predictor content management
US9600289B2 (en) 2012-05-30 2017-03-21 Apple Inc. Load-store dependency predictor PC hashing
US9710268B2 (en) 2014-04-29 2017-07-18 Apple Inc. Reducing latency for pointer chasing loads
US10514925B1 (en) 2016-01-28 2019-12-24 Apple Inc. Load speculation recovery
US10437595B1 (en) 2016-03-15 2019-10-08 Apple Inc. Load/store dependency predictor optimization for replayed loads
US11106469B2 (en) 2019-08-14 2021-08-31 International Business Machines Corporation Instruction selection mechanism with class-dependent age-array

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55147744A (en) * 1979-05-07 1980-11-17 Hitachi Ltd Memory controlling unit
JPH04503582A (ja) * 1989-02-24 1992-06-25 アドヴァンスド マイクロ デヴァイセス インコーポレイテッド コンピュータの分散型パイプライン制御装置及び方法
WO1994008287A1 (en) * 1992-09-29 1994-04-14 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
JPH06161753A (ja) * 1992-08-12 1994-06-10 Advanced Micro Devicds Inc プロセッサ内で用いられるための命令デコーダ、命令発行構成およびマイクロプロセッサ
JPH0793152A (ja) * 1993-09-20 1995-04-07 Fujitsu Ltd マイクロプロセッサ制御装置
JPH07182163A (ja) * 1993-10-29 1995-07-21 Advanced Micro Devicds Inc スーパスカラ命令デコード/発行装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4180861A (en) * 1978-03-31 1979-12-25 Ncr Corporation Selectively operable mask generator
JPS6462764A (en) * 1987-09-03 1989-03-09 Agency Ind Science Techn Vector computer
WO1990010267A1 (en) * 1989-02-24 1990-09-07 Nexgen Microsystems Distributed pipeline control for a computer
US5095458A (en) * 1990-04-02 1992-03-10 Advanced Micro Devices, Inc. Radix 4 carry lookahead tree and redundant cell therefor
JPH0820949B2 (ja) * 1991-11-26 1996-03-04 松下電器産業株式会社 情報処理装置
US5450560A (en) * 1992-12-21 1995-09-12 Motorola, Inc. Pointer for use with a buffer and method of operation
US5467473A (en) * 1993-01-08 1995-11-14 International Business Machines Corporation Out of order instruction load and store comparison
US5724536A (en) * 1994-01-04 1998-03-03 Intel Corporation Method and apparatus for blocking execution of and storing load operations during their execution
US5689693A (en) * 1994-04-26 1997-11-18 Advanced Micro Devices, Inc. Range finding circuit for selecting a consecutive sequence of reorder buffer entries using circular carry lookahead
US5559975A (en) * 1994-06-01 1996-09-24 Advanced Micro Devices, Inc. Program counter update mechanism
US5745726A (en) * 1995-03-03 1998-04-28 Fujitsu, Ltd Method and apparatus for selecting the oldest queued instructions without data dependencies
US5745724A (en) * 1996-01-26 1998-04-28 Advanced Micro Devices, Inc. Scan chain for rapidly identifying first or second objects of selected types in a sequential list
US5754812A (en) * 1995-10-06 1998-05-19 Advanced Micro Devices, Inc. Out-of-order load/store execution control
US5748934A (en) * 1996-05-31 1998-05-05 Hewlett-Packard Company Operand dependency tracking system and method for a processor that executes instructions out of order and that permits multiple precision data words

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55147744A (en) * 1979-05-07 1980-11-17 Hitachi Ltd Memory controlling unit
JPH04503582A (ja) * 1989-02-24 1992-06-25 アドヴァンスド マイクロ デヴァイセス インコーポレイテッド コンピュータの分散型パイプライン制御装置及び方法
JPH06161753A (ja) * 1992-08-12 1994-06-10 Advanced Micro Devicds Inc プロセッサ内で用いられるための命令デコーダ、命令発行構成およびマイクロプロセッサ
WO1994008287A1 (en) * 1992-09-29 1994-04-14 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
JPH08504977A (ja) * 1992-09-29 1996-05-28 セイコーエプソン株式会社 スーパースカラ・マイクロプロセサにおけるロード及び/又はストア動作を扱うシステム及び方法
JPH0793152A (ja) * 1993-09-20 1995-04-07 Fujitsu Ltd マイクロプロセッサ制御装置
JPH07182163A (ja) * 1993-10-29 1995-07-21 Advanced Micro Devicds Inc スーパスカラ命令デコード/発行装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003519832A (ja) * 2000-01-03 2003-06-24 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド アントレーニングを備えるストア−ロード転送プレディクタ
CN100524203C (zh) * 2003-11-26 2009-08-05 英特尔公司 用于检测和处理未对齐数据访问的设备、系统和方法

Also Published As

Publication number Publication date
AU1530997A (en) 1997-08-20
US5835747A (en) 1998-11-10
DE69736105D1 (de) 2006-07-27
EP0876646A1 (en) 1998-11-11
EP0876646B1 (en) 2006-06-14
JP3681761B2 (ja) 2005-08-10
DE69736105T2 (de) 2007-01-11
WO1997027538A1 (en) 1997-07-31

Similar Documents

Publication Publication Date Title
JP2000515268A (ja) ロード/ストアオペレーションのout―of―order実行コントロールのための階層的スキャンロジック
JP3714961B2 (ja) ロード/ストアオペレーションのout−of−order実行の制御
US10120685B2 (en) Tightly coupled processor arrays using coarse grained reconfigurable architecture with iteration level commits
US10528356B2 (en) Tightly coupled processor arrays using coarse grained reconfigurable architecture with iteration level commits
US5630149A (en) Pipelined processor with register renaming hardware to accommodate multiple size registers
US6138230A (en) Processor with multiple execution pipelines using pipe stage state information to control independent movement of instructions between pipe stages of an execution pipeline
US6088788A (en) Background completion of instruction and associated fetch request in a multithread processor
EP0853785B1 (en) Self-modifying code handling system
EP0649085B1 (en) Microprocessor pipe control and register translation
US5471598A (en) Data dependency detection and handling in a microprocessor with write buffer
EP0871109B1 (en) Forwarding of results of store instructions
JP3540743B2 (ja) 1次発行キューと2次発行キューを持つマイクロプロセッサ
US6052776A (en) Branch operation system where instructions are queued until preparations is ascertained to be completed and branch distance is considered as an execution condition
JP2839075B2 (ja) 処理システムを動作させる方法及び処理システム
JP3678443B2 (ja) スーパーパイプライン式スーパースカラーマイクロプロセッサ用の書き込みバッファ
JP2000148480A (ja) 要求管理方法
US6073231A (en) Pipelined processor with microcontrol of register translation hardware
HK1214377A1 (zh) 具有世代重命名的計算機處理器
JP2001297001A (ja) 命令履歴情報を持つ基本キャッシュ・ブロック・マイクロプロセッサ
JP2002527798A (ja) ストアアドレス生成およびユニバーサルな依存性ベクトルに基づくロードブロックのためのメカニズム
US6038657A (en) Scan chains for out-of-order load/store execution control
JP2001229024A (ja) 基本キャッシュ・ブロックを利用したマイクロプロセッサ
US6658555B1 (en) Determining successful completion of an instruction by comparing the number of pending instruction cycles with a number based on the number of stages in the pipeline
US20040193844A1 (en) Load and/or store queue emptying technique to facilitate atomicity in processor execution of helper set
JPH117389A (ja) プロセサ用の命令を処理するシステム及び方法

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20031222

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20031222

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040114

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: 20050510

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050519

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: 20080527

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090527

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090527

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100527

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110527

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110527

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120527

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees