(57)【特許請求の範囲】
【請求項１】
順序付けされた配列（２４０）のＮ個のエントリにおいて第１の基準と一致するエントリの存在をシグナリングするためのスキャンロジック（７００）であって、
前記エントリが最も低い順序のエントリから最も高い順序のエントリまでの範囲にあり、各エントリが前記順序内に画定された位置を有し、前記配列が選択されたエントリを含み、
前記第１基準と一致する前記エントリが、前記選択されたエントリより、前記順序において高い位置を有する場合、
各エントリは対応する選択信号及び第１の基準一致信号を供給するためのロジック（７２０，７１０）を有し、
前記スキャンロジック（７００）が、エントリのグループのレベルを画定するための階層的に構成され、前記スキャンロジックが、
それぞれの第１レベルグループの隣接エントリ内の各エントリに対する選択信号及び第１基準信号を受信し、かつそれぞれの前記第１レベルグループ内の前記選択されたエントリ及び前記高次エントリのそれぞれの結合を識別し、グループ内処理結合信号を与えるために接続されるグループ内処理ロジック（７４０）と、
隣接する低次及び高次第１レベルグループからのエントリに対応するそれぞれの選択信号及び第１基準信号を受信し、かつ前記低次第１レベルグループの１つにおける前記選択されたエントリ、並びにそれぞれの前記高次第１レベルグループ内の前記高次エントリのそれぞれの結合を識別し、グループ群一括処理結合信号を供給するために接続される第１レベルグループ群一括処理ロジック（７６０）と、
前記グループ内処理ロジック及び前記第１レベルグループ群一括処理ロジックに接続され、そこから結合信号を受信し、さらに任意の前記結合信号に応じて、前記選択されたエントリ及び少なくとも１つの前記第１基準と一致する高次エントリの存在を指示する高次エントリ識別信号を供給する結合処理ロジック（７７０）とを有することを特徴とするスキャンロジック。
【請求項２】
前記エントリが多重化実行ユニットプロセッサの実行ユニット（１５２−１５８）で評価するためのオペレーション（Ｏｐ）エントリからなり、
前記Ｏｐエントリが古さ順、すなわちより古いＯｐエントリからなる高次エントリ並びに新しいＯｐエントリからなる低次エントリからなり、
前記選択されたエントリがロードオペレーション（ＬｄＯｐ）エントリからなり、
前記第１の基準がストアオペレーション（ＳｔＯｐ）エントリに一致することを特徴とする請求項１に記載のスキャンロジック。
【請求項３】
前記エントリが多重化実行ユニットプロセッサの実行ユニット（１５２−１５８）で評価するためのオペレーション（Ｏｐ）エントリからなり、
前記Ｏｐエントリが古さ順、すなわちより古いＯｐエントリからなる高次エントリ並びに新しいＯｐエントリからなる低次エントリからなり、
前記選択されたエントリがストアオペレーション（ＳｔＯｐ）エントリからなり、
前記第１の基準がロードオペレーション（ＬｄＯｐ）エントリに一致することを特徴とする請求項１に記載のスキャンロジック。
【請求項４】
前記エントリが多重化実行ユニットプロセッサの実行ユニット（１５２−１５８）で評価するためのオペレーション（Ｏｐ）エントリからなり、前記多重化実行ユニットプロセッサがロードユニット（１５２）及びストアユニット（１５３）からなり、
前記Ｏｐエントリが古さ順、すなわちより古いＯｐエントリからなる高次エントリ並びに新しいＯｐエントリからなる低次エントリからなり、
前記選択されたエントリが、対応するいずれか１つの前記ストアユニット及び前記ロードユニットでの評価の第１段階におけるストアオペレーション（ＳｔＯｐ）及びロードオペレーション（ＬｄＯｐ）のうちの一方に対応する選択されたＯｐエントリからなり、
前記第１の基準が、前記ストアユニット及び前記ロードユニットの前記対応する１つでの評価の所定段階におけるストアオペレーション（ＳｔＯｐ）及びロードオペレーション（ＬｄＯｐ）のうちの他方に一致することを特徴とする請求項１に記載のスキャンロジック。
【請求項５】
請求項４に記載のスキャンロジックのストアオルダインスタンス及びロードオルダインスタンスであって、
前記ストアオルダスキャンロジックに対する前記選択信号が、もしあるなら、前記ロードユニットにおける段階２ＬｄＯｐに対応する前記Ｏｐエントリの１つを指示し、前記ロードオルダスキャンロジックに対する選択信号が、もしあるなら、前記ストアユニットにおける段階２ＳｔＯｐに対応する前記Ｏｐエントリの１つを指示し、前記ストアオルダスキャンロジックに対する前記第１の基準信号が前記ストアユニットでの評価の第１の所定段階におけるＳｔＯｐを指示し、前記ロードオルダスキャンロジックに対する第１の基準信号が、前記ロードユニットでの評価の第２の所定段階におけるＬｄＯｐを指示し、前記ストアオルダスキャンロジックの前記高次エントリ識別信号がストアオルダ信号であり、前記ロードオルダスキャンロジックの前記高次エントリ識別信号がロードオルダ信号であることを特徴とするスキャンロジックのストアオルダインスタンス及びロードオルダインスタンス。
【請求項６】
隣接する低次及び高次第２レベルグループからのエントリに対応するそれぞれの選択信号及び第１の基準信号を受信し、かつ前記低次第２レベルグループの１つにおける前記選択されたエントリ及び前記それぞれの高次第２レベルグループにおける高次エントリのそれぞれの結合を識別するために接続される第２レベルグループ群一括処理ロジック（７５０）と、
前記第２レベルグループ群一括処理ロジックにさらに接続され、そこから結合信号を受信し、かつ第２レベルグループ群一括処理ロジックからの信号を含む、任意の前記結合信号に応じて高次エントリ識別信号を供給する結合処理ロジック（７７０）とをさらに有することを特徴とする請求項１に記載のスキャンロジック。
【請求項７】
各前記第１次グループが前記第２レベルグループ内に階層的に定義されることを特徴とする請求項６に記載のスキャンロジック。
【請求項８】
各前記第１レベルグループが順序付け配列の３つのエントリ（２４０）を含み、各前記第２レベルグループが前記順序付け配列の６つのエントリを含むことを特徴とする請求項６に記載のスキャンロジック。
【請求項９】
連続的でより大きなグループの隣接エントリからのエントリに対応するそれぞれの選択信号及び第１の基準一致信号を受信し、かつより低次のグループにおける選択された信号、並びに前記それぞれの高次グループにおける高次エントリのそれぞれの結合を識別するために接続される階層構造を有するグループ群一括処理ロジック（７５０，７３０）の連続するレベルをさらに有し、
前記結合処理ロジック（７７０）がさらに階層構造を有するグループ群一括処理ロジックの各前記連続レベルに接続され、そこから結合信号を受信し、さらに階層構造を有するグループ群一括処理ロジックの連続レベルからの信号を含む、任意の前記結合信号に応じて高次エントリ識別信号を供給することを特徴とする請求項１に記載のスキャンロジック。
【請求項１０】
各前記第１次グループが順序付け配列の３つのエントリを含み、各前記連続的で大きなグループの隣接エントリはそこに含まれる順序付け配列のエントリ数を２倍にすることを特徴とする請求項９に記載のスキャンロジック。
【請求項１１】
前記順序付け配列は古さ順であり、２４オペレーションエントリを含み、
前記第１次グループのそれぞれが前記古さ順配列からの３つのエントリを含み、
前記第１レベルグループ及び連続的に大きなグループの隣接エントリのそれぞれは共に、階層的に画定されたグループの隣接エントリの４レベルを画定し、それぞれそこにおいて含まれる隣接エントリの数を２倍することを特徴とする請求項９に記載のスキャンロジック。
【請求項１２】
前記順序付け配列は古さ順であり、２４オペレーションエントリを含み、
エントリレベル選択からの前記高次エントリ識別信号及び第１の基準指示信号を計算するためにスキャンロジックを介して画定されるロジックパスは、一律に５ゲート遅延よりは大きくはないことを特徴とする請求項９に記載のスキャンロジック。
【請求項１３】
前記順序付け配列が古さ順配列のオペレーショエントリであり、
前記エントリの前記選択された１つが選択された実行段階のロード及びストアオペレーションの一方に対応し、
前記第１の基準が前記ストア及びロードオペレーションの他方に等しいオペレーションタイプであることを特徴とする請求項９に記載のスキャンロジック。
【請求項１４】
スーパスケーラプロセッサであって、
ロードユニット（１５２）及びストアユニット（１５３）と、
前記ロードユニット及び前記ストアユニットに接続されるロード及びストア実行制御ロジック（１８０）であって、前記ロード及びストア実行制御ロジックは、あるロード及びストア命令間でデータ依存性を強いる一方で、ロード及びストア命令が互いに関して普通にＯＵＴ−ＯＦ−ＯＲＤＥＲ実行できるようにし、ロード／ストア実行コントローラが請求項１に記載のスキャンロジックからなることを特徴とするスーパスケーラプロセッサ。
【請求項１５】
第１レベルグループが、３つの隣接する配列エントリのグループからなり、
階層構造を有するグループ群一括処理ロジックのｌｏｇ2（Ｎ／３）レベルが連続する大きなグループの隣接するエントリからのエントリに対応するそれぞれの選択信号及び第１基準一致信号を受信し、各連続レベルにて、低次グループにおいて前記選択されたエントリの、並びに前記それぞれの高次グループ内の高次配列エントリのそれぞれの結合を識別するために接続され、
前記階層構造を有するスキャンロジックが、わずかｌｏｇ2（Ｎ／３）＋２反転ゲート遅延からなることを特徴とする請求項１に記載のスキャンロジック。
【請求項１６】
選択されたＯｐエントリを含む、古さ順配列（２４０）のオペレーション（Ｏｐ）エントリにおいて、オペレーションタイプ基準と一致する１つ或いはそれ以上の古いエントリの存在をシグナリングするための方法であって、前記エントリが所定サイズのグループ内で構成され、各エントリが画定された順序位置を有し、前記方法が、
第１グループの前記Ｏｐエントリにおける前記選択されたＯｐエントリ及び前記オペレーションタイプ基準に一致する古いＯｐのグループ内結合を検出する過程と、
連続する第２、第３並びに第４のグループの前記Ｏｐエントリを含む、連続オルダグループ内の前記選択されたエントリ及び前記オペレーションタイプ基準と一致する古いＯｐのグループ内結合を検出する過程と、
前記第１グループのＯｐエントリの前記選択されたＯｐエントリ及び第２グループのＯｐエントリの前記オペレーションタイプ基準に一致する古いＯｐの第１レベルグループ間結合を検出する過程と、
前記連続する第３及び第４グループのＯｐエントリを含む、Ｏｐエントリのグループの各連続する組における、前記選択されたＯｐエントリ及び前記オペレーションタイプ基準と一致する古いＯｐの第１レベルグループ間結合を検出する過程と、
前記第１グループに対するグループ内結合検出、各連続グループに対するグループ内結合検出、第１及び第２グループに対する第１レベルグループ間結合検出、並びに各連続するグループの組に対する第１レベルグループ間結合検出を結合し、前記オペレーションタイプ基準と一致し、前記Ｏｐエントリの配列内に現れる前記選択されたＯｐより古いＯｐの信号指示を供給する過程とを有することを特徴とする方法。
【請求項１７】
前記第１及び第２グループの１つにおける前記選択されたＯｐエントリ及び前記第３及び第４グループのいずれかにおける前記オペレーションタイプ基準と一致する古いＯｐの第２レベルグループ間結合を検出する過程を有し、前記結合過程がさらに、前記第２レベルグループ間結合検出と、前記グループ内及び第１レベルグループ間検出とを結合する過程を含み、前記オペレーションタイプ基準と一致し、かつＯｐエントリの前記配列内に現れる前記選択されたＯｐより古い信号指示を供給する過程を有することを特徴とする請求項１６に記載の方法。
【請求項１８】
連続レベルの階層構造を有する複合グループにおいて連続レベルのグループ間結合を検出過程であって、前記選択されたＯｐエントリが複合グループの１組の第１グループ内にあり、かつ前記オペレーションタイプ基準と一致する古いＯｐが前記１組の複合グループの第２グループ内にあるとき、特定のレベルの複合グループにおける結合が生じる、該過程をさらに有し、前記結合過程がさらに、各連続レベルの階層構造を有する複合グループでのグループ間結合検出と、前記グループ内及び第１レベルグループ間検出とを結合する過程を含み、前記オペレーションタイプ基準と一致し、かつ前記Ｏｐエントリの配列内に現れる前記選択されたＯｐより古いＯｐの信号指示を供給する過程を有することを特徴とする請求項１６に記載の方法。
【発明の詳細な説明】
技術分野
本発明はプロセッサに関し、特に複数の実行ユニットを有するプロセッサに於けるＯＵＴ−ＯＦ−ＯＲＤＥＲ実行コントロールに関する。
背景技術
通常、汎用コンピュータは、順序付けられたマシン命令のシーケンスとして実行可能な形態で提供されるプログラムを実行する。人が読める表現形態のプログラムは、コンパイルとして知られているプロセスにより、所望のターゲットアーキテクチャ用のマシン命令のシーケンス、例えばｘ８６プロセッサアーキテクチャに適合したプロセッサ用のオブジェクトコードに変換される。コンピュータプログラムは、通常、単純化のための仮定、即ち変換の結果得られるオブジェクトがシーケンスの順番に実行されるという仮定に基づいて、デザインされ、コード化され、コンパイルされる。しかしこのような仮定にも関わらず、最近のプロセッサデザイン技術では、マシン命令の同時実行、即ち命令並行実行可能性（instruction parallelism）の利用に努めている。
計算の処理能力を最大にするために、命令並行実行を多数の実行ユニットにマップするためのスーパスケーラ技術を用いることができる。これとは対照的に、パイプライン処理技術では、１つの機能的単位、又は実行経路の一段階の中での命令並行実行を採用している。スーパスケーラ技術は、スーパスケーラデザインの分野に於いて知られている技術であり、この技術ではＯＵＴ−ＯＦ−ＯＲＤＥＲ命令発行、ＯＵＴ−ＯＦ−ＯＲＤＥＲ命令完了、及び命令の投機的実行が行われる。
ＯＵＴ−ＯＦ−ＯＲＤＥＲ命令発行では、実行コードに於ける実際の命令の順序とは殆ど無関係な順序で実行ユニットへの命令の発行が行われる。ＯＵＴ−ＯＦ−ＯＲＤＥＲ発行を利用するスーパスケーラプロセッサは、その命令ディスパッチシーケンスのフォーマッティングに於いて、所定の命令の出力（計算結果）と後続の命令の入力（オペランド）との間の依存性によってのみ条件付けられる必要がある。一方、ＯＵＴ−ＯＦ−ＯＲＤＥＲ完了は、プログラムシーケンスの中で先行する命令が完了する前に所定の命令が完了（例えば計算結果を格納すること）できるようにする技術である。最後に投機的実行は、予測された結果（例えば分岐）に基づいて命令シーケンスの実行を行う。投機的実行（即ち分岐が正確に予測されているという仮定のもとでの実行）により、命令を分岐条件が実際に評価されるまで待機することなくプロセッサが命令を実行可能となる。分岐が正しく予測されることが不正確に予測されることより多く、かつ不正確な予測結果を実行しない合理的で効率的な方法が利用可能であると仮定すると、命令並行実行可能性（即ち並行実行が利用可能な命令の数）は、投機的実行により増加することになる（Johnson、Superscalar processor Design, Prentice-Hall, Inc., New Jersey, 1991,pp.63-77 for an analysis参照）。
シーケンスの順番とは異なる順番での命令の実行、即ちシーケンスの順序とは異なる順序で命令を発行及び完了することにより、スーパスケーラプロセッサが多数の実行ユニットを同時並行的に動作させた状態を維持することが可能であるため、スーパスケーラプロセッサの処理能力は高くなる。従って、スーパスケーラプロセッサ用のスケジューラは、ＯＵＴ−ＯＦ−ＯＲＤＥＲ実行される命令が何れであるかを判定し、それらの命令を適当な実行ユニットに供給又はディスパッチすることにより全体の処理能力を改善することができる。スーパスケーラプロセッサ用のスケジューラは、割り込み及びトラップの処理も行わなければならない。ｘ８６プロセッサアーキテクチャを含む多くのプロセッサアーキテクチャでは、命令がエラー、割り込み、またはトラップを発生する直前又は直後にアーキテクチャーの状態を認識している必要がある。これにより命令のＯＵＴ−ＯＦ−ＯＲＤＥＲ実行が困難になる。従って、スケジューラは命令の取り消しや、命令があたかも順序通りに実行されたかのようなシステム状態の再構築ができなければならない。
これらの技術のそれぞれに関連をもつ、命令並行実行可能性を利用するためのアーキテクチャのデザインが様々な文献やテキストにおいて提案されてきた。Johnson pp.127-146（ＯＵＴ−ＯＦ−ＯＲＤＥＲ発行）、pp103-126（ＯＵＴ−ＯＦ−ＯＲＤＥＲ完了及び依存性）pp87-102（誤り分岐予測の回復）を参照されたい。
発明の開示
ロードオペレーション及びストアオペレーション（以下「オペレーション」を省略し単にロード、ストアと表記する）のＯＵＴ−ＯＦ−ＯＲＤＥＲ実行コントロールシステムを提供するプロセッサに於いて、ロード及びストアが互いに独立してＯＵＴ−ＯＦ−ＯＲＤＥＲ実行され得ることがわかった。特定のロードに対するストアの相対的古さ（及び特定のストアに対するロードの相対的古さ）追跡するスキャンロジックにより、本発明に基づいて構築されたロード／ストア実行コントロールシステムが、ロードが完了するまで新しいストアを停止（hold）（及び古いストアが完了するまで新しいロードを停止）させることが可能となる。特に、本発明に基づいて構築された、ツリー構造で階層的に編成されたスキャンロジックの様々な実施例は、多数のオペレーションを同時並行的に評価するために適合されたプロセッサの実施例においてすら、ゲートでの遅れが殆ど無しに、ストアオペレーションが古いことを表すストアオルダ指示信号、及びロードオペレーションが古いことを表すロードオルダ指示信号を提供する。アドレスマッチングロジックは、このスキャンロジックとともに動作して、ロード−ストア実行コントロールシステムが、ロード−ストア間（及びストア−ロード間）の依存性を回避して処理できるようにする。ロードオペレーションを実行するロードユニット及びストアオペレーションを実行するストアユニットを有するプロセッサに於いて、このようなロード／ストア実行コントロールシステムにより、ロード命令及びストア命令を、それらの間のデータ依存性を強制しつつ、それら相互について概ね順不同に実行、即ちＯＵＴ−ＯＦ−ＯＲＤＥＲ実行することが可能となる。
【図面の簡単な説明】
以下に説明する添付の図面を参照することにより、本発明はより良く理解され、またその様々な目的、特徴及び利点が当業者には明らかとなろう。
第１図は、本発明の一実施例によるＯＵＴ−ＯＦ−ＯＲＤＥＲ実行コントロールとなるスーパスケーラコンピュータプロセッサのブロック図である。
第２図は、本発明の一実施例によるスケジューラのブロック図である。
第３図は、本発明の一実施例による命令の実行に於けるアーキテクチャーの段階を示すパイプライン処理の各段階を示した図である。
第４図は、本発明の一実施例によるロード及びストアＯＵＴ−ＯＦ−ＯＲＤＥＲ実行コントロール要素のブロック図である。
第５図は、本発明の一実施例によるロード停止ロジックの回路図である。
第６図は、本発明の一実施例によるストア停止ロジックの回路図である。
第７図は、本発明の一実施例によるスキャンロジックのブロック図である。
第８図は、本発明の典型的な実施例によるスキャンロジックのためのグループ内ロジックの論理図である。
第９図は、本発明の一実施例によるスキャンロジックのための第１及び第２レベル一括グループロジックの論理図である。
第１０図は、本発明の一実施例によるスキャンロジックのための第３レベル一括グループロジックの論理図である。
第１１図は、本発明の一実施例による、ＯＵＴ−ＯＦ−ＯＲＤＥＲロード／ストア実行コントロールを提供するプロセッサを組み込んだコンピュータシステムのブロック図である。
第１２図は、スキャンロジックのＯｐクワッド依存部分のスピード経路処理能力を改善するための別形態のスキャン結合ロジックの論理図である。
図面全体に於いて同一の又は類似した構成要素には同じ符号を付して示した。
発明の実施の形態
第２図は２４個のエントリ（列として示す）を有するスケジューラ１８０の例示的実施例であって、各エントリが継続中のＯｐと関連している例示的実施例を示す。各エントリは継続中のＯｐに関連する静的及び動的データを表すためのスケジューラリザーバ２４０として一括して示される一連のフィールドを含む。付け加えるに、スケジューラ１８０は継続中のＯｐｓに関連したデータを受け取るためにスケジュールリザーバ２４０のエントリに接続された制御ロジック２３０として一括して示される一連の特殊ロジックブロックを提供する。制御ロジック２３０の特殊ロジックブロック（桁２３１、２３２、２３３、２３５及び２３６として示す）はＯｐ実行並びに実行ユニットへのオペランドの供給と実行ユニットからの結果の分配の順序付けを制御する信号を供給する。制御ロジック２３０は発行選択ロジック２３１、オペランド選択ロジック２３２、ロード・ストア命令ロジック２３４、状態フラグ処理ロジック２３５、及び自己修飾コード支援ロジック５３６を含む。
発行選択ロジック２３１は各サイクルの間有効な実行ユニットへの発行のためスケジュールリザーバ２４０からのＯｐｓの選択を制御する。オペランド選択ロジック２３２は実行ユニットに対して発行されたＯｐｓに必要とされるオペランドデータのための適当なソースを識別する。データ依存性と実行エンジン１５０内のＯｐｓの順序付けに依拠して適当なソースはレジスタファイル１９０であり、他の継続中のＯｐエントリ（スケジューラエントリのためのデスティネーション値フィールドは２５０として一括して示される）に関連するデスティネーション値フィールドまたは結果バス（結果バス２７２として一括して示される）の１つの供給される完了Ｏｐの結果がある。発行選択ロジック２３１とオペランド選択ロジック２３２によって供給される制御信号はスケジューラ１８０がスケジュールリザーバ２４０より有効実行ユニットへＯｐｓを発行しかつ発行された各Ｏｐのための適当なオペランドソースを選択するのを可能とする。
スケジューラ１８０は、各スケジューラエントリに関連したデスティネーション値フィールドを含む。これらのデスティネーション値フィールドは２５０として一括的に示されている。オペランド選択ロジック２３２との関係に於いて、デスティネーション値フィールド２５０は、リオーダバッファと暗黙レジスタの再命名を実施する。レジスタファイル１９０のアーキテクチュ配列ジスタに関連するオペランド値は、デスティネーション値フィールド２５０内に表され、典型的には、オペランドバス２７１を介してレジスタオペランド値として実行ユニットに供給される。しかしながら、デスティネーション値フィールド２５０のいずれもより現時点に近いレジスタ状態を表していない場合（すなわち、未だコミットされていないレジスタ状態）には、これに代えてオペランド値をレジスタファイル１９０から供給する事ができる。完了したＯｐｓの結果は結果バス２７２を介して完了したＯｐに関連するスケジューラエントリのデスティネーション値フィールドに供給される。付け加えるに、これらの結果は、また継続中のOpsのためのオペランドとして実行ユニットに供給することができる。結果は、結果バス２７２を介して転送される。
スケジュールリザーバエントリ（例証的にはスケジュールリザーバエントリ２４０．１）のフィールドは、実行を待っているか、実行される過程にあるか、または完了されたか、であるオペレーション（Ｏp）に関する情報を含んでいる。スケジュールリザーバエントリのフィールドの大部分は、命令デコーダ１３０が新規のOpをスケジュールリザーバ２４０にロードしたときに初期化される。しかしながら、他のフィールドは、後にロードされ又は更新される。例えば、状態フィールド（各エントリに対してフィールド２４２として示される）は符合するOpが実行パイプラインの段階を通って進むのに伴って更新される。Opがスケジュールリザーバ２４０内にロードされる時からスケジューラ１８０から退避される時までの値を保持する記憶フィールドは「静的フィールド」として言及される。新規の値によって更新されることのできるフィールドは「動的フィールド」として言及される。静的フィールドデータ及び動的フィールドの初期データ値は命令デコーダ１４０によって供給される。
各スケジュールリザーバエントリ（第２図中タイプフィールド２４１として示される）の３ビットフィールド、タイプ〔２：０〕は、スケジュールリザーバエントリに関連したOpのタイプを特定する。Opのタイプは発行選択目的のために特に重要である（例えば、LｄOpsは１５０の様なロードユニットに発行しなければならない）；しかしながら、ロード／ストア命令制御はまたタイプフィールド２４１も利用する。下記の信号は、タイプフィールド２４１から解読したものである：
0003681761.tif 000002
各スケジュールリザーバエントリ（図中タイプフィールド２４２として示されている）の４ビットフィールド、状態［３：０］はＯｐ（Ｓ３，Ｓ２，Ｓ１及びＳ０は状態［３：０］の交番信号名である）の現実行状態を示す。タイプフィールド２４２の５つの可能状態は以下の様なシフトフィールドによって符号化される：
0003681761.tif 000003
即時の状態は、タイプフィールドが現れるエントリに符合したＯｐのための現実行段階に符合する。ビットは、Ｏｐが段階の外で支承なく発行され進むのに伴って更新される（実際的には左シフトによって）。状態［３：０］はまた中心サイクルの間に１１１１に設定される。
スケジューラＯｐクワッド構成
スケジューラ１８０はスケジュールリザーバ２４０内の２４個のエントリと、ＦＩＦＯとして扱われるデスティネーション値フィールド２５０を含む。新規のＯｐｓに符号するデータは、最上部にロードされ実行の進行に伴って最下位に向かってシフトされ、スケジューラリザーバ２４０の最下位から退避される。制御の単純化のためにスケジューラ１８０は、スケジュールリザーバ２４０とデスティネーション値フィールド２５０をＯｐクワッドに基づいて処理する。Ｏｐｓは、４つのグループにてスケジュールリザーバ２４０にロードされ、スケジュールリザーバ２４０を通してシフトされ、且つスケジュールリザーバ２４０から退避される。このようにして、スケジューラの細分性が命令デコーダ１４０のエンコードＲＯＭ１４２及びＮａｃＤｅｃ１４１の両者のデコード帯域幅に適合する。スケジューラ１８０は、したがって深さ６幅４のＦＩＦＯ内の６個のＯｐクワッドエントリとして２４個のＯｐエントリを処理する。
スケジューラ１８０をＯｐクワッドにて編成しているが、スケジューラの動作の多くの側面は、スケジューリングリザーバ２４０、デスティネーション値フィールド２５０、及びコントロールロジック２３０を考察することにより良く理解されよう。例示のため、以下の議論は２４エントリスケジューラ１８０について説明しているが、上述の共願の特許出願の明細書に説明されているＯｐクワッドの細分性の利点について、当業者は理解されよう。
オペレーション（Op）のタイミング及び実行段階
スケジューラリザーバ２４０の各エントリは、未定のOpsを記述するフィールドを含む。これらのフィールドは、命令デコーダ１４０によって取り出され又は解読されたOpsから生来的に得られた静的状態情報及びOp実行から結果し、又は、与えられたOpの実行パイプライン状態を特徴づける動的状態情報を格納する。
プロセッサ制御の概観からスケジューラ１８０は、関連する制御ロジック２３０を備えたOp状態情報(スケジュールリザーバ２４０)の命令順序指定配列であって制御ロジック２３０は、配列から各実行ユニットへの発行Ops、パイプライン段階のシーケンスを介する制御Op実行及び最終的にはスケジューラからの退避Opsに対し、制御信号を発生する。第２図に示すように、制御ロジック２３０は、制御ロジックの５つの特殊ブロック(発行選択ロジック２３１、オペランド選択ロジック２３２、ロード・ストア命令ロジック２３４、状態フラグ処理ロジック２３５及び自己修飾コード支援ロジック２３６)を含み、その各々は、スケジューラリザーバ２４０の符合するエントリから情報を受け取る部分（ロード・ストア命令ロジック２３４の例証的部分２３４．３）を有する。制御ロジックブロックは、実行ユニットに制御信号を供給する。例えば、ロード・ストア命令ロジック２３４は、２７３として一括して表される制御線を介してロードユニット１５２とストアユニット１５３に制御信号を供給する。
スケジュールリザーバ２４０の制御ロジックブロックによって供給される特定制御信号はOpエントリ内のフィールドの状態に依存する。詳細には、状態〔３：０〕フィールドは、関連オペレーションの実行の進行を表わす。ロジックの概観からスケジューラ内の全ての状態順序付けは性質上単一サイクルである。状態遷移決定はそのサイクルの間の機械状態に基づいて各サイクルごとに行われる。スケジューラ１８０の構成はOp実行のパイプライン特性を反映する。スケジューラ１８０（及び符合する各エントリ）は、その各々がオペレーション又は実行パイプラインの与えられたタイプの特定進行段階に直接関連する多数の別個の、より正確には独立のロジック部に分割することができる。
実行エンジン１５０のパイプラインステージンクすなわち段階配置構成がここで第３図を参照して記述される。Opが一旦実行エンジン１５０内にロードされると、そのOpは、３又は４段階パイプラインを通り符号的にそのOpに関連するスケジューラエントリ内のフィールド状態〔３：０〕によって表される４又は５状態の間の遷移を通る。命令フェッチ及び解読は実行エンジン１５０の前に遂行される。従って、第１のスケジューラに関連するパイプライン段階は発行段階である。第３図は、RegOps及びLdStObsのためのパイプラインステージングを示す。
スケジューラ１８０は、発行段階及びオペランドフェッチ段階３３０及び３４０の間実行パイプライン上に基本的な制御を加える。発行段階３３０内及びオペランドフェッチ段階３４０内の処理は段階ごとに２個のフェーズに分割することができ、各フェーズは、公式的には半クロックサイクルを占める。発行段階３３０は、発行選択フェーズとブロードキャストフェーズを含み、一方オペランドフェッチ段階３４０は、オペランド選択フェーズとオペランド送りフェーズを含む。
発行段階
発行段階３３０の発行選択フェーズ３３０．１の間に於いて、スケジューラ１８０は、ロードユニット１５２、ストアユニット１５３，レジスタユニットＸ１５４、及びレジスタユニットＹ１５５に関連したパイプラインに入れるための次のOpsを選択する（４つのOp選択が一時に生起する）。発行段階３３０のブロードキャストフェーズ３３０．２の間に於いて、各選択されたOpのためのレジスタオペランドの各々に関する情報が全てのスケジューラエントリ及び外部ロジック（レジスタファイル１９０及び実行ユニットを含む）に同報的に送られる。このようにして、ブロードキャストフェーズ３３０．２は、スケジューラ１８０のデスティネーション値フィールド２５０の１つ又はレジスタフアイル１９０に存在するオペランド値又は結果バス２７２に生成する結果に符合するオペランド値を実行ユニット（例えばロードユニット１５２、ストアユニット１５３又はレジスタユニット１５４と１５５）の１つに位置づけるように設定する。
オペランドフェッチ段階
オペランドフェッチ段階３４０のオペランド選択フェーズ３４０．１の間に於いてスケジューラ１８０は、８までのオペランド値（４Ops＊２オペランド／Op）を位置づけ、そして各オペランド値の状態、すなわち指定されたソースからの有効値が実際に利用可能であるかどうかを決定する。この情報に基づいてスケジューラ１８０は、オペランドフェッチ段階０（段階３４０）のどのOpsがオペランド送りフェーズに続いて例えば段階１（段階３５０）であるそれらの各々の実行パイプ内に進むかを決定する。進めることの決定は、各Opのために独立して行われ、オペレーションが実際に実行される順序がオペランド依存性によって拘束されることのみが必要である。そのようなデータ依存性が無い場合には異なる実行ユニットに発行するOpsは一般的に他の実行ユニットに割り当てられたこれらのOpsに関する任意の順序にてそれらの各々のパイプラインを通って処理される。この一般的ルールに対する１つの例外はロード及びストアの個別的指定（すなわちLdOpsとStOps）を含みこれは以下に詳細に説明される。
LdStOp実行段階
第１の２個のスケジューラ関連段階であるオペランド発行段階３３０とオペランドフェッチ段階３４０は、RegOps及びLdStOpsに共通である。後続段階は、実行段階である。RegOpsは、全てのRegOpsが単一サイクルにて実行するので単一実行段階３５０で更に、一旦RegOpが実行段階に入るとそれは常に支障なく完了し、そのクロックサイクルの終わりに於いて段階３５０を出る。一方LdStOpsは、２個の実行段階３５２及び３６０をこの間に於いてアドレス計算、区分及びページ変換（及び記憶保護チェック）並びに（LdOpsの場合に）データキャッシュアクセスの全てが行われる。RegOpsとは異なり、LdStOpsは、任意の長さの時間に亘って段階３６０又は３７０のいずれかに停止せしめることができる。この停止の大部分は、第２の段階３７０に於いてである。最も共通的には段階３７０の停止は、データキャッシュ１７０の失敗、データTLB１７１の欠落及びページフォールトから結果する。段階３６０での停止は、メモリ引用の非整合から結果しまた完了へと進まないLdStOpによって占拠されブロックされた段階３７０から結果する。
オペランドフェッチ段階３４０のオペランド送りフェーズ３４０．２の間において、スケジューラ１８０は指定されたソースからのオペランド値を第２図においてバス２７１と２７２として一括して示されるオペランドバス及び／または結果バスを介してロードユニット１５２、ストアユニット１５３、レジスタユニットＸ１５４及びレジスタユニットＹ１５５のような実行ユニットへ転送する。例示的実施例は９個のオペランドバス２７１を含みそのうち８個は段階０でのオペレーションのためのオペランド値を提供する。例示的実施例においてはまた、値が有効であるか否かに関わりなくオペランド転送が生じ、これによって制御ロジックが単純化される。オペランド値が無効の場合には、スケジューラ１８０が関連するオペレーションを段階１へ進めないのでこれは各実行ユニットによって無視される。ＲｅｇＯｐｓのための即値は上述のレジスタオペランドを送る機構の一部として処理される。そのような場合、即値はそのＯｐに関連したスケジューラ１８０エントリのデスティネーション値フィールド２５０の特定の１つから直接送られる。
オペランド送りフェーズ３４０．２の間において変位値もまた変位バス１８９．４を介してロードユニット１５２とストアユニット１５３（各ユニットに独立値）に転送される。これらの変位値は３２ビット値であり常にスケジューラ１８０のエントリから来る。ソースエントリの選択はオペランド選択フェーズ３４０．１の間に生起する。ＬｄＯｐまたはＳｔＯｐが段階１に入った場合にはロードユニット１５２とストアユニット１５３が関連する変位値及びオペランド値をラッチする。
スケジューラ１８０はアドレスオペランドと変位を提供するために（上述したように）４フェーズ制御機構を実施するが、ＳｔＯｐｓはアドレスオペランド及び変位値に加えるにストアデータオペランドを必要とする。スケジューラ１８０はＳｔＯｐのためのストアデータを得るために４フェーズプロセスを遂行する。ＳｔＯｐデータを取得するプロセスは上述したものと類似するが、そのストアデータは実行段階２（３７０）の間に得られる。ストアデータを提供するプロセスはＳｔＯｐの段階１及び２に同期され、実行段階１においてＳｔＯｐを識別する選択フェーズ３９０．１、データオペランドのソースを記述する情報を伝送するブロードキャストフェーズ３９０．２、データオペランド選択フェーズ３９０．３及びデータオペランド送りフェーズ３９０．４を含む。ストアデータはＳｔＯｐ実行により並列に取り出され、実際のデータ値はＳｔＯｐ処理の完了の際に取得されストアキュー１５９に提供される。有効ストアデータ値が利用できない場合にはＳｔＯｐが段階２に停止される。
ロード／ストア実行順序付けの制約
ある程度の実行順序付けが、（レジスタのリネームを用いてスケジューラ１８０によって回避される、アーキテクチャのレジスタに対して希に発生する競合とは異なる）真のデータ依存性を示すＯｐｓ間で継続されなければならないのと同様に、実行順序付けは同じメモリの場所から読み出される（又は書き込まれる）ＬｄＯｐｓとＳｔＯｐｓとの間でも継続されなければならない。
一般に、ロード及びストアはお互いに対してＯＵＴ−ＯＦ−ＯＲＤＥＲ実行しうるが、メモリの同じ場所に新しいロードと古いストアがアクセスする場合は、古いストアは新しいロードのためのデータを供給すべきである。（即ち、新しいロードは古いストアを待機すべきである）。このような場合、ストアデータはデータキャッシュ１７０により新しいロードに供給される。同様に、新しいストアがメモリの同じ場所に書き込みを許可される前に、古いロードが完了しなくてはならない。このような場合、古いストアは待機しなくてはならない。スケジューラ１８０へのコントロールロジックとロード−ストアユニット１５２、１５３との組み合わせにより、このようなロード−ストア順序付けの制約が強制されている。
ロード−ストア順序付けコントロール
オペレーション（及びオペランドフェッチに関係するスケジューラロジックに加えて、スケジューラ１８０のエントリは、ロード−ストアＯＵＴ−ＯＦ−ＯＲＤＥＲ実行コントロールを提供するロード−ストア順序付けロジック２３４を有する。ロード−ストア順序付けロジック２３４の２つの部分は、それぞれロードユニット１５２及びストアユニット１５３に関係し、ロード順序付けロジック４３４ａ及びストア順序付けロジック４３４ｂとして第４図に示されている。各実行ユニットにおけるロード停止ロジック４０３及びストア停止ロジック４１３と共に、ロード−ストア順序付けロジック２３４はロード−ストア順序付け制約を強制する。
ロード停止ロジック
実例としてロードユニット１５２に焦点を合わせると、ロード停止ロジック４０３はロードユニット１５２の段階２（ＬＵ２  ４０２）におけるＬｄＯｐより古い様々なパイプライン処理段階におけるＳｔＯｐｓの存在をチェックする。特に、ロード停止ロジック４０３は、段階０、段階１（ＳＵ１  ４１１）、及び段階２（ＳＵ２  ４１２）、即ち第３図の段階３４０、３５２、及び３６０における古いＳｔＯｐｓの存在をチェックする。３つの信号（ＳＣ＿ＳＵ２ＯＬＤＥＲ，ＳＣ＿ＳＵ１ＯＬＤＥＲ及びＳＣ＿ＳＵ０ＯＬＤＥＲ）は、ロード順序付けロジック４３４ａによりロード停止ロジック４０３に供給され、段階２、段階１、及び段階０それぞれにおける古いＳｔＯｐの損残を信号化している。より正確にいえば、ＳＣ＿ＳＵＯＬＤＥＲは、実行段階１及び２より早い処理の段階（例えばオペランドフェッチ段階０  ３４０又は発行段階３３０）における古いＳｔＯｐの存在を表示する。ロード停止ロジック４０３は、ロードユニット１５２の段階２（ＬＵ２  ４０２）におけるＬｄＯｐに対する部分的なメモリアドレスを受け取り、ここに記述した条件のもと、ＬＵ２  ４０２に対する停止信号（ＬＵ２＿Ｈｏｌｄ）を選択的に供給することも行う。
段階０（又は初期の段階）での古いＳｔＯｐによりロード停止ロジック４０３が、ロードユニット１５２の段階２における現在ＬｄＯｐを無条件に停止させる。一方、段階２又は段階１における古いＳｔＯｐは、段階２におけるＬｄＯｐに対するメモリアドレスと古いＳｔＯｐとの間の一致が存在するときに現在ＬｄＯｐを停止させる。以下のＲＴＬはロード停止ロジック４０３のデザイン及びオペレーションを記述したものである。
0003681761.tif 000004
ロード停止ロジック４０３はＬＵ２  ４０２にＬＵ２＿Ｈｏｌｄ信号を供給し、上述の部分的アドレス一致の組み合わせのいずれか（ＡｄｄｒＭａｔｃｈ１又はＡｄｄｒＭａｔｃｈ２）及びスケジューラ１０８からの相対的古さ指示信号（ＳＣ＿ＳＵ２ＯＬＤＥＲ，ＳＣ＿ＳＵ１ＯＬＤＥＲ及びＳＣ＿ＳＵ０ＯＬＤＥＲ）が存在するときに、段階２のＬｄＯｐの実行を抑止する。段階１におけるＳｔＯｐに対してリニアアドレスがまだ計算されてないことから、段階２における新しいＬｄＯｐは古い段階０のＳｔＯｐが終わるのを無条件に待機することになる。古いＳｔＯｐが段階１及び２に進んだとき、部分的アドレス不一致によって、新しいＬｄＯｐと古いＳｔＯｐとのＯＵＴ−ＯＦ−ＯＲＤＥＲ競合により順序付け条件または制約が破られないことが確実となり、ロード停止ロジック４０３はＬＵ２＿Ｈｏｌｄ式に従って停止を解除する。
ここに記述された例では、部分的アドレスマッチオペレーションは、部分的に一致するＬｄＯｐ及びＳｔＯｐのためのリニアアドレスの下側部分に基づいて実行される。部分的マッチは、アドレスマッチ回路のクリティカルパスインパクトとスピードとのバランスをとりつつ、偽のマッチの数を制限するに十分な大きさのビットセットを選択するように設計される。この実施例においては、部分リニアアドレスマッチが各リニアアドレスの下側ビット（即ちＬｉｎＡｄｄｒ（９，３），ＳＵ２＿ＰａｇｅＯｆｆｓｅｔ（９，３）及びＳＵ１＿ＬｉｎＡｄｄｒ（９，３））に基づいており、所望の一致速度と許容範囲内の誤り一致程度とのバランスをとっているが、別の実施例では、より多い又はより少ないアドレスビット数のマッチングがとられ、ベースアドレス、論理アドレス、リニアアドレス、又は物理的アドレスに基づいてマッチ判定オペレーションを実行し得る。
８ビットバイトマーク（ＢｙｔｅＭａｒｋ，ＳＵ１＿Ｂｙｔｅｍａｒｋ及びＳＵ２＿ＢｙｔｅＭａｒｋ）も部分的アドレスマッチに含められる。これらのバイトマークは所定のＬｄＯｐ又はＳｔＯｐが対応する特定のバイトを指定する対応するアドレスビット０、１及び２の拡張された可変部であるが、これはこの実施例（ｘ８６プロセッサアーキテクチャに適合したプロセッサインプリメンテーション）では、１バイト、２バイト、４バイト、及び８バイトのロード及びストアが全てサポートされているからである。この実施例では、これらのバイトマークが比較されて、オーバーラップを同定し、従ってＬｄＯｐが読み出す特定のバイトとＳｔＯｐが書き込む特定のバイトとの間の依存性が同定される。
いくつかの追加のターム（term）がロード停止ロジック４０３を記述するＲＴＬに含められる。例えば、ロード停止ロジック４０３は、非投機的ＬｄＯｐ、即ちＤＴＢ＿ＩｎｈＳｐｔｉｖＬｄに示されているように古いメモリトランザクションにおいて読み出されることを許可されていないＬｄＯｐの実行も抑止する。非投機的ＬｄＯｐｓは、単に古いＳｔＯｐｓだけでなく全ての古いＬｄＳｔＯｐに従った厳格な順序付けを維持する。非投機的ロードの場合は、ロード停止ロジック４０３が、古いメモリトランザクションが未完了の（ペンディングされていない）状態を確保する。スケジューラ１８０が互いの順序付けに従ってロードを発行することから、データキャッシュ１７０にコミット（commit）された古いＳｔＯｐｓが存在しない状態が確保されることになる。スケジューラ１８０は、データキャッシュ１７０へのストアキュー１５９を通してＳｔＯｐｓのステータスを追跡し、データキャッシュ１７０にまだコミットされていない古いＳｔＯｐｓが存在しないことを示すＳＣ＿ＬｄＯｌｄｅｓｔ信号を供給する。
第４図によれば、ロード停止ロジック４０３がロード順序付けロジック４３４ａからロードユニット１５２のＬＵ２４０２におけるＬｄＯｐの相対的古さの指示信号を受け取る。特に、ロード停止ロジック４０３はロード順序付けロジック４３４ａの各スキャンチェーン（ＳＵ２オルダスキャンチェーン４３４ａ．１、ＳＵ１オルダスキャンチェーン４３４ａ．２、及び
ＳＵ０オルダスキャンチェーン４３４ａ．３）からＳＵ＿ＳＵ２ＯＬＤＥＲ指示信号、ＳＵ＿ＳＵ１ＯＬＤＥＲ指示信号、及びＳＵ＿ＳＵ０ＯＬＤＥＲ指示信号を受け取る。ロード停止ロジック４０３はストアユニット１５３のＳＵ１段階４１１及びＳＵ２段階４１２におけるＳｔＯｐｓに対する部分的アドレス信号、及びロードユニット１５２のＬＵ２４０２におけるＬｄＯｐに対する部分的アドレス信号も受け取る。これらの入力に基づいて、ロード停止ロジック４０３は上述のＲＴＬ記述に従って、ＬＵ２４０２におけるＬｄＯｐ（及び後続のＬｄＯｐｓ）を機能停止する停止信号（ＬＵ２＿Ｈｏｌｄ）を選択的にアサートする。
ＬｄＯｐｓ（Ｏｐｓ、オペランド、変位値、及びコントロール信号を含む）は、共同バス１８９として示されているバス及びラインを介してＬＵ１４０１に達する。ＬＵ２４０２におけるＬｄＯｐｓによりアドレス指定されたメモリロケーションは、ＬＵ２＿Ｈｏｌｄがアンアサート即ちアクティブ状態から解放され、共同バス１８９の結果バス１８９．２（図示せず）を介して実行ユニット及びスケジューラ１８０に供給されたとき、データキャッシュ１７０を介してアクセスされる。ロードユニット１５２の両段階（ＬＵ１  ４０１及びＬＵ２  ４０２）は、データＴＬＢ１７１及びメモリ階層の様々なレベルに存在する（Ｌ１データキャッシュ１７０、Ｌ２キャッシュ１１０、主メモリ等）他のメモリ管理構造とやりとりし、仮想アドレス（又はリニアアドレス）を物理的アドレスに変換する。
当業者は上述のＲＴＬに適合するロード停止ロジック４０３の様々なインプリメンテーションを理解することができるであろう。ロード停止ロジック４０３は適切なものであれば、どのようなインプリメンテーションでもよい。第５図には、ロード停止ロジックの組み合わせ論理回路としての実現形態の一例を示したものである。
ストア停止ロジック
ストアユニット１５３は類似した形態のオペレーション停止ロジック、即ち、ストアユニット１５３の段階２（ＳＵ２  ４１２）におけるＳｔＯｐより古い様々なパイプライン処理の段階におけるＬｄＯｐｓの存在をチェックするストア停止ロジック４１３を有する。ストア停止ロジック４１３のデザインはロード停止ロジック４０３に類似しているが、両者は対称的ではない。ストア停止ロジック４１３は段階１（ＬＵ１  ４０１）及び段階２（ＬＵ２  ４０２）、即ち第３図の段階３５２及び３６０における古いＬｄＯｐｓの存在をチェックする。ストア順序付けロジック４３４ｂによりストア停止ロジック４１３に供給される２つの信号（ＳＣ＿ＬＵ２ＯＬＤＥＲ及びＳＣ＿ＬＵ１ＯＬＤＥＲ）は、段階２及び１におけるそれぞれの古いＬｄＯｐの存在を示す信号である。より正確に言えば、ＳＣ＿ＬＵ１ＯＬＤＥＲは、実行段階２より早い処理の段階（例えば実行段階１３５２、オペランドフェッチ段階０３４０、又は発行段階３３０）における古いＬｄＯＰの存在を表示する。ストア停止ロジック４１３はストアユニット１５３の段階２（ＳＵ２４１２）におけるＳｔＯｐに対する部分的メモリアドレスを受け取り、上述の条件のもと停止信号（ＳＵ２＿Ｈｏｌｄ）を選択的にＳＵ２  ４１２にアサートする。
段階１（又はより早い段階）における古いＬｄＯｐによりストア停止ロジック４１３が、無条件にストアユニット１５３の段階２における現在ＳｔＯｐを停止する。一方、段階２における古いＬｄＯｐは段階２におけるＳｔＯｐに対するメモリアドレスと古いＬｄＯｐとの間の一致がありさえすれば現在ＳｔＯｐを停止する。以下のＲＴＬはストア停止ロジック４１３のデザイン及びオペレーションを記述したものである。
0003681761.tif 000005
ストア停止ロジック４１３は、部分アドレス一致（ＡｄｄｒＭａｔｃｈ２）とスケジューラ１８０からの相対的古さ指示信号（ＳＣ＿ＬＵ２ＯＬＤＥＲ及びＳＣ＿ＬＵ１ＯＬＤＥＲ）との上に指定した組み合わせのいずれかが存在するとき、ＳＵ２＿Ｈｏｌｄ信号をＳＵ２  ４１２に供給して、段階２ＳｔＯｐの実行を抑止する。段階２における新しいＳｔＯｐは古い段階１（又は早い）ＬｄＯｐを無条件に待機する。古いＬｄＯｐが段階２に進むと、部分アドレス不一致が新しいＳｔＯｐと古いＬｄＯｐのＯＵＴ−ＯＦ−ＯＲＤＥＲ競合により順序付け制約が破られていないことを確定し、ストア停止ロジック４１３はＳＵ２＿Ｈｏｌｄ式に従って停止を解放する。
ロード停止ロジック４０３については、ストア停止ロジック４１３がＳｔＯｐ及びＬｄＯｐｓに対するリニアアドレスの下側部分（即ちＬｉｎＡｄｄｒ（９，３）及びＬＵ２＿ＰａｇｅＯｆｆｓｅｔ（９，３））に基づいて部分的アドレスマッチング処理を実行する。バイトマーク（ＢｙｔｅＭａｒｋ及びＬＵ２＿ＢｙｔｅＭａｒｋ）も部分的アドレスマッチに含められる。
この実施例においては、ロード停止ロジック４０３に類似したストア停止ロジック４１３が、停止を開始（trigger）する条件の組を過剰に含んでいる。しかし、ストア停止ロジック４１３のデザインはロード停止ロジック４０３よりより過剰に包括的である。例えば、ストア停止ロジック４１３はアドレスマッチの存在をチェックする古い段階１のＬｄＯｐに対する新しい段階２のＳｔＯｐを停止する。別の実施例では、一層厳格に（又はより厳格度を小さくして）ストア停止ロジック４１３おける停止か、ストア停止ロジック４１３の動作そのもの、またはその両方を開始する条件の組を限定している。しかし、この実施例では、ストア停止ロジック４１３は一般的な命令プロフィールにおいてＬｄＯｐｓがＳｔＯｐｓに依存していることが多い、又は逆のことが多いという推定に基づいて、停止条件の限定度を緩めている。
第４図を参照すると、ストア停止ロジック４１３がストア順序付けロジック４３４ｂからのストアユニット４５３のＳＵ２  ４１２におけるＬｄＯｐの相対的古さの指示信号を受け取る。特に、ストア停止ロジック４１３はストア順序付けロジック４３４ｂの各スキャンチェーン（ＬＵ２オルダスキャンチェーン４３４ｂ．１及びＬＵ１オルダスキャンチェーン４３４ｂ．２）からのＳＣ＿ＬＵ１ＯＬＤＥＲ及びＳＣ＿ＬＵ２ＯＬＤＥＲ指示信号を受け取る。ストア停止ロジック４１３はロードユニット１５２のＬＵ２  ４０２段階におけるＬｄＯｐｓに対する部分的アドレス信号、及びストアユニット１５３のＳＵ２  ４１２におけるＳｔＯｐに対する部分的アドレス信号も受け取る。これらの入力に基づいて、ストア停止ロジック４１３は供述のＲＴＬ記述に従ってＳＵ２  ４１２におけるＳｔＯｐ（及び後続のＳｔＯｐｓ）を機能停止する停止信号（ＳＵ２＿Ｈｏｌｄ）を選択的にアサートする。
ＳｔＯｐｓ（Ｏｐｓ、オペランド、変位値、及びコントロール信号を含む）は、共同バス１８９として図示されている各バス及びラインを介してＳＵ１  ４１１に達する。ＳＵ２  ４１２におけるＳｔＯｐｓに対するメモリアドレス及びストアオペランドは、ＳＵ２＿Ｈｏｌｄが逆アサート（又は解放）されたときストアキュー１５９に供給される。次いで、ストアキュー１５９はストアオペランドをデータキャッシュ１７０を介してアドレス空間に書き込む。ストアユニット１５３の両段階（ＳＵ１  ４１１及びＳＵ２  ４１２）はデータＴＬＢ１７１及びメモリ階層の様々なレベル（Ｌ１データキャッシュ１７０、Ｌ２キャッシュ１１０、主メモリ等）に存在する他のメモリ管理構造とやりとりし、仮想アドレス（又はリニアアドレス）を物理的アドレスに変換する。
当業者は上述のＲＴＬに適合するストア停止ロジック４１３の様々なインプリメンテーションを理解することができるであろう。ストア停止ロジック４１３は適切なものであれば、どのようなインプリメンテーションでもよい。第６図には、ストア停止ロジックの組み合わせ論理回路としての実施形態の一例を示したものである。
スキャンチェーンを含むスケジューラロジック
スケジューラ１８０はＬｄＯｐｓとＳｔＯｐｓとの間の十分な実行順序付けを維持するためのサボートも提供する。この実施例においては、このサポートはロード停止ロジック４０３及びストア停止ロジック４１３へ相対的古さ指示信号を供給するスキャンチェーンの形態である。上述のように、順序付けはロード及びストアパイプライン処理の段階２（即ちＬＵ２４０２及びＳＵ２４１２）においてオペレーションを停止することにより維持される。実行順序付けは、メモリ位置を参照するＳｔＯｐｓに対して維持される。この実施例では、実際にメモリをアドレス指定しないＬＥＡＳｔＯｐｓ（ロード実行アドレス）に対しては順序付けは強制されていないが、誤りである可能性のあるアドレスを発生するＣＤＡ及びＣＩＡＳｔＯｐｓ（チェックデータ実行アドレス及びチェック命令実行アドレス）は順序付けスキームの中に含められ、回路デザインが単純化されている。ＬｄＯｐｓの中に順序付けスキームから除外されているものはないが、これは全てのＬｄＯｐｓｔがメモリを参照するからである。別の実施例には、ＬＥＡ、ＣＤＡ、及びＣＩＡＳｔＯｐｓのようなＯｐｓを適切なものとして含むものか、除外しているものかの何れかの場合がある。
第２図に戻ると、スケジューラ１８０内のロード−ストア順序付けロジック２３４は、ロード実行ユニット及びストア実行ユニットのそれぞれの段階２における特定のＬｄＯｐｓ及びＳｔＯｐｓに関してＬｄＳｔＯｐｓの相対古さ指示信号を供給する。ロード−ストア順序付けロジック２３４は、スケジューリングリザーバ２４０における各Ｏｐエントリ（例えばＯｐエントリ２４０．１）のＴｙｐｅ［２：０］フィールド２４１及びＳｔａｔｅ［３：０］フィールド２４２にアクセスし、相対ストア古さ指示信号（例えばＳＣ＿ＬＵ２ＯＬＤＥＲ、及びＳＣ＿ＬＵ１ＯＬＤＥＲ、及びＳＣ＿ＬＵ０ＯＬＤＥＲ）をロードユニット１５２に図面において１８９．５として示されている共通のラインを介して供給し、相対ロード古さ指示信号（例えばＳＣ＿ＬＵ２ＯＬＤＥＲ、及びＳＣ＿ＬＵ１ＯＬＤＥＲ）を同様に共通のラインを介してストアユニット１５３に供給する。
第４図には、ロード／ストア順序付けロジック２３４がロード順序付けロジック４３４ａ及びストア順序付けロジック４３４ｂの一部分として示されている。ＬｄＯｐｓの場合にはロード順序付けロジック４３４ａが、ＳＵ２  ４１２に於けるＳｔＯｐｓがあればそれに関連して、ＳＵ１  ４１１に於けるＳｔＯｐｓがあればそれに関連して、また処理の早い段階に於ける他のＳｔＯｐｓに関連して、ＬＵ１  ４０１に於けるＬｄＯｐの相対的古さを決定する。ＳｔＯｐｓについては、ストア順序付けロジック４３４ｂが、ＬＵ２  ４０２に於けるＬｄＯｐがあればそれに関連して、また処理の早い段階に於ける他のＬｄＯｐｓに関連してＳＵ１  ４１１に於けるＳＴＯＰの相対的古さを決定する。
第４図には、３要素スキャンチェーンＳＵ、即ちオルダスキャンチェーン４３４ａ．１、ＳＵ１オルダスキャンチェーン４３４ａ．２、及びＳＵ０オルダスキャンチェーン４３４ａ．３を含むロード順序付けロジック４３４ａが示されている。各要素スキャンチェーンは、スケジューリングリザバ２４０に於けるＯｐエントリのＴｙｐｅ［２：０］フィールド２４１及びＳｔａｔｅ［３：０］フィールド２４２（図示せず）に基づいて各相対的古さ指示信号を供給する。ＳＵ２オルダスキャンチェーン４３４ａ．１は、ＳＣ＿ＳＵ２ＯＬＤＥＲを供給し、ＳＵ１オルダスキャンチェーン４３４ａ．２は、ＳＣ＿ＳＵ１ＯＬＤＥＲを供給し、ＳＵ０オルダスキャンチェーン４３４ａ．３は、ＳＣ＿ＳＵ０ＯＬＤＥＲを供給する。
ストア順序付けロジック４３４ｂのデザインは、ロード順序付けロジック４３４ａに類似しているが対称的ではない。特に、ストア順序付けロジック４３４ｂは成分スキャンチェーンＬＵ２、オルダスキャンチェーン４３４ｂ．１及びＬＵ１オルダスキャンチェーン４３４ｂ．２を含む。ノード順序付けロジック４３４ａの場合と同様にストア順序付けロジック４３４ｂの各成文スキャンチェーンは、Ｔｙｐｅ［２：０］フィールド２４１及びＳｔａｔｅ［３：０］フィールド２４２を用いて、各相対的古さ指示信号を供給する。ＬＵ２オルダスキャンチェーン４３４ｂ．１は、ＳＣ＿ＳＵ２ＯＬＤＥＲを供給し、ＬＵ１オルダスキャンチェーン４３４ｂ．２は、ＳＣ＿ＬＵ１ＯＬＤＥＲを供給する。説明のため各スキャンチェーンは独立したスキャンチェーンとして示されているが、当業者は、ロード順序付けロジック４３４ａ及びストア順序付けロジック４３４ｂがロジックを共有し得る、例えばＴｙｐｅ［２：０］及びＳｔａｔｅ［３：０］検出回路を各成分スキャンチェーンの後で共有し得るということを理解できよう。
この好適実施例では、ロード順序付けロジック４３４ａ及びストア順序付けロジック４３４ｂが（ルックアヘッドでなく）階層的設計のスキャンロジックを有しており、これについて第４図〜第１０図を参照しつつここに説明する。ＬｄＳｔＯｐのための段階２の第１フェーズの間、ロード順序付けロジック４３４ａまたはストア順序付けロジック４３４ｂ、若しくはその双方のスキャンロジックは、スケジューラ１８０の古さで順序づけられたＯｐエントリ２４０の中から互いに反対の型の古いＬｄＳｔＯｐをスキャンする。即ちロード順序付けロジック４３４ａは、古いＳｔＯｐｓをスキャンし、ストア順序付けロジック４３４ｂは古いＬｄＳｔＯｐをスキャンする。この実施例では、ロード順序付けロジック４３４ａのスキャンロジックの３つのインスタンスのそれぞれ、及びストア順序付けロジック４３４ｂのスキャンロジックの２つのインスタンスのそれぞれが、古さで順序づけられたＯｐエントリ２４０のグループ内のスキャンと、及びグループ群の一括スキャンの双方を行うための階層的に編成されたスキャンロジックを含む。第７図〜第１０図には、それぞれ３つのＯｐエントリからなる８つのグループに編成された２４個のＯｐエントリを有するスケジューラの実施例のスキャンロジックが示されている。しかし、当業者は以下の説明に基づいて、異なる数のＯｐエントリ及び異なる数のグループから成る編成の実施例を理解することもできよう。
２４０ｐエントリ／８グループのスケジューラ１８０の実施例のためのスキャンロジックの例の一般的な構造について第７図を参照しつつここに説明する。存在指示ロジック（presence indication logic）７１０のインスタンスは、インプリメントされた特定のスキャンロジック（即ちＳＵ２オルダスキャンロジック４３４ａ．１、ＳＵ１オルダスキャンロジック４３４ａ．２、ＳＵ０オルダスキャンロジック４３４ａ．３、ＬＵ２オルダスキャンロジック４３４ｂ．１、又はＬＵ１オルダスキャンロジック４３４ｂ．２）が関係するＴｙｐｅ［２：０］及びＳｔａｔｅ［３：０］の組み合わせを検出する。例えば、第７図のようにインプリメントされたＳＵ１オルダスキャンロジック４３４ａ．２のための存在指示ロジック７１０は、対応するＯｐエントリが段階１ＳｔＯｐを含んでいるか否かを検出する。存在指示ロジック７１０の２３個のインスタンスのそれぞれは、グループ内処理ロジック７４０か、グループ群一括処理ロジック、若しくはその両方（即ち第１レベルグループ群一括処理ロジック７６０、第２レベルグループ群一括処理ロジック７５０、及び第３レベルグループ群一括処理ロジック７３０の何れか、若しくはその全て）が使用するためのスキャンロジックの特定のインスタンスに適切な対応する存在指示信号（即ちＰ［１］、ｐ［２］、．．．ｐ［２３］）を供給する。第７図の実施例では、Ｐ［０］が使用されない。
選択指示ロジック７２０の対応するインスタンスも、Ｔｙｐｅ［２：０］フィールド値とＳｔａｔｅ［３：０］フィールド値の組み合わせを検出する。しかし、選択指示ロジック７２０のインスタンスの場合、検出されたＴｙｐｅ［２：０］及びＳｔａｔｅ［３：０］フィールド値は、ストア順序付けロジック４３４ｂのスキャンロジックインスタンスのための段階２ＳｔＯｐ（即ちＳＵ２４１２におけるＳｔＯｐ）のスキャンロジックインスタンス、及びロード順序付けロジック４３４ａのスキャンロジックインスタンスのための段階２ＬｄＯｐ（即ちＬＵ２４０２におけるＬｄＯｐ）を表す。選択指示ロジック７２０の２３個のインスタンスのそれぞれは、グループ内ロジック７４０とグループ群一括処理ロジックの何れか、若しくはその両方（即ち第１レベルグループ群一括処理ロジック７６０、第２レベルグループ群一括処理ロジック７５０、及び第２レベルグループ群一括処理ロジック７３０の何れか、若しくはその全部）が使用するための特定のスキャンロジックインスタンスのロード又はストア順序付け機能に適した対応する選択指示信号
0003681761.tif 000006
を供給する。第７図の実施例では、ＳＥＬ［２３］は使用されない。
グループ内処理ロジック７４０は、それぞれが、特定のスキャンロジックの存在指示ロジック７１０によって検出されたＴｙｐｅ［２：０］及びＳｔａｔｅ［３：０］の組み合わせに一致し、同じグループ内の選択されたＯｐエントリより古いＯｐの各Ｏｐグループ内に存在していることを示す指示信号を供給する。スケジューリングリザーバ２４０のＯｐエントリが関係する各選択指示信号
0003681761.tif 000007
は、古いＯｐエントリのスキャンする場合の基礎となる選択されたＯｐエントリを示す。ここで説明する、ロード順序付けロジック４３４ａ及びストア順序付けロジック４３４ｂのスキャンロジックを実現する実施例では、１つのＯｐエントリ選択指示信号が、第７図のように実現されたスキャンロジックの各インスタンスに供給される。そのように供給された１つのＯｐエントリ選択は、それがあれば、ロードユニット１５２又はストアユニット１５３の段階２におけるＬｄＳｔＯｐに対応している。即ちＳＣ＿ＳｕｘＯＬＤＥＲスキャンロジックのための段階２ＬｄＯｐに対応し、且つＳＣ＿ＳＵｘＯＬＤＥＲスキャンロジックのための段階２ＳｔＯｐに対応している。別の実施例では、Ｏｐエントリ選択指示ロジックに適切な変更を加えて、異なる実行段階における異なる型のＯｐを選択し、更に、その様にして表示された多数のＯｐエントリに対して、相対的な古さ（又は他の優先順位で）の比較のための多数の選択指示信号を供給し得る。
第８図の実施例では、グループ内処理ロジック７４０が、６入力ＯＲ−ＮＡＮＤ複合ゲートによって実現された各グループのためのロジック（例示的には、ｗｉｔｈｉｎ−ｇｒｐ＿２ロジック８４２）を含む。勿論、当業者は、特定のＯｐエントリグループ内で選択されたＯｐエントリ及び古いオペレーション検出を示す指示信号を供給するための他の様々な適切なロジック構成を考えることができよう。各グループに対するグループ内指示信号（即ちＳＵＭ［０］、ＳＵＭ［１］、．．．ＳＵＭ［７］）は、結合処理ロジック７７０に部分的に結合され、そのいくつかのゲートは第７図に示されている。
第９図に示すのは、第１レベルグループ群一括処理ロジック７６０と第２レベルグループ群一括処理ロジック７５０共通の重複ロジック部分である。第１レベルグループ群一括処理ロジック７６０は、Ｏｐエントリの第１グループにおける選択されたＯｐエントリと、隣接する古いＯｐエントリのグループにおける古いオペレーション検出とを示す（例えばｇｒｐ＿０における選択されたＯｐエントリとｇｒｐ＿１における古いＯｐ検出や、ｇｒｐ＿２における選択されたＯｐエントリとｇｒｐ＿３における古いＯｐ検出等を示す）指示信号（Ｓ０Ｐ１＿Ｓ２Ｐ３及びＳ４Ｐ５＿Ｓ６Ｐ７）を供給する。第９図の実施例では、第１レベルグループ群一括処理ロジック７６０が、ＮＡＮＤゲートの第１段階とＡＮＤゲートの第２段階の機能性によりインプリメントされている。ＡＮＤゲートの機能性は、４入力複合ＡＮＤ−ＮＯＲゲート７７２及び７７３と結合処理ロジック７７０が関係するＮＯＲ機能により与えられている。勿論、当業者は、Ｏｐエントリの第１グループにおける選択されたＯｐエントリとＯｐエントリの第２グループにおける古いオペレーション検出を示す指示信号を供給するための他の様々な適切なロジック構成を考えることができよう。隣接する２グループの組のそれぞれに対する第１レベルグループ群一括処理指示信号は、部分的に結合処理ロジック７７０に結合され、そのいくつかのゲートは第９図に示されている。
第２レベルグループ群一括処理ロジック７５０は、２つの隣接するＯｐエントリのグループの何れかにおける選択されたＯｐエントリと、２つの隣接する古いＯｐエントリのグループの何れかにおける古いオペレーション検出とを示す（例えばｇｒｐ＿０かｇｒｐ＿１の何れかにおける選択されたＯｐエントリとｇｒｐ＿２かｇｒｐ＿３における古いＯｐ検出や、ｇｒｐ＿４かｇｒｐ＿５の何れかにおける選択されたＯｐエントリとｇｒｐ＿６かｇｒｐ＿７における古いＯｐ検出等を示す）指示信号（Ｓ０１Ｐ２３及びＳ４５Ｐ６７）を供給する。第９図の実施例では、第２レベルグループ群一括処理ロジック７５０が、ＮＡＮＤゲートの第１段階、４入力複合ＯＲ−ＮＡＮＤゲート（９５１及び９５２）の第２段階、及びインバータの第３段階によって実現されている。勿論、当業者は、２つのＯｐエントリのグループの何れかにおける選択されたＯｐエントリと２つの古いＯｐエントリのグループの何れかにおける古いオペレーション検出とを示す指示信号を供給するための他の様々な適切なロジック構成を考えることができよう。
第１０図に示すのは、初めの４つのＯｐエントリのグループの１つにある選択されたＯｐエントリと他の４つの古いＯｐエントリのグループの任意のグループにおける古いオペレーション検出とを示す（即ち、ｇｒｐ＿０、ｇｒｐ＿１、ｇｒｐ＿２、又はｇｒｐ＿３における選択されたＯｐエントリとｇｒｐ＿４、ｇｒｐ＿５、ｇｒｐ＿６、又はｇｒｐ＿７における古いＯｐ検出とを示す）即値指示信号（Ｓｇｒｐ＿１０２３及びＰｇｒｐ＿４５６７）を供給する第３レベルグループ一括処理ロジック７３０である。第７図及び第１０図の実施例では、Ｓｇｒｐ＿１０２３及びＰｇｒｐ＿４５６７即値指示信号は、ＮＡＮＤゲートの第１段階及びＯＲゲートの第２段階によって供給され、Ｓｇｒｐ＿１０２３及びＰｇｒｐ＿４５６７の結合即値指示信号は、３入力の複合ＡＮＤ−ＮＯＲゲート７７１のＡＮＤ機能性により供給される。このようにして、第３レベルグループ群一括処理ロジックの機能性及び結合処理ロジック機能性の一部は、複合ＡＮＤ−ＮＯＲゲート７７１により与えられる。勿論、当業者は、４つのＯｐエントリのグループの何れかにおける選択されたＯｐエントリと他の４つの古いＯｐエントリグループの１つにおける古いオペレーション検出とを示す指示信号を供給する様々な他の適切なロジック構成を考えることができよう。
第７図を再び参照されたい。ここで結合処理ロジック７７０は、グループ内処理ロジック７４０及びグループ群一括処理ロジック（即ち第１レベルグループ群一括処理ロジック７６０、第２レベルグループ群一括処理ロジック７５０、及び第３レベルグループ群一括処理ロジック７３０）からの指示信号を結合して、特定の実現されたスキャンロジックのための相対的古さ指示信号を供給する。結合処理ロジック７７０のＯＲゲート、ＮＯＲゲート、及びＮＡＮＤゲート段階を総合することにより、ＯＲツリーのド・モルガン等価論理（DeMorgan equivalent）が提供される。勿論、当業者は、グループ内処理及びグループ群一括処理指示信号を結合して、複合相対古さ指示信号を供給するための他の様々な適切なロジック構成を考えることができよう。有利な点は、結合処理ロジック７７０のロジック設計が、グループ内処理ロジック７４０、第１レベルグループ群一括処理ロジック７６０、第２レベルグループ群一括処理ロジック７５０、及び第３レベルグループ群一括処理ロジック７３０をまとめて考えたとき、どのような経路に沿ってもインバータゲート遅延が５未満で済む点である。
Ｏｐエントリの数がこれより多い場合や少ない場合も、同様にゲート遅延の数が少なくて済むという利点が得られる。例えば、当業者は、２ｘ、４ｘ等のＯｐエントリカウントが、Ｏｐエントリカウント増加の二進法で示す大きさの各オーダーに対して追加のインバータゲート遅延を与える似たようなグループ内処理ロジック、グループ群一括処理ロジック、及び結合処理ロジックでサポートされ得ることを理解されよう。Ｏｐエントリの数が少ない場合には、同様にインバータゲート遅延が少なくなり得る。より一般的には、本発明による、３つのグループとしてスキャンされるスキャンロジックのインプリメンテーションで、Ｏｐエントリの数が多いものや少ないもの（例えばＯｐエントリの数が３、６、１２、４８、９６、．．．）では、インバータゲート遅延がＬｏｇ2（Ｎ／３）＋２となる。ここでＮはＯｐエントリの数である。このようなスキャンロジックインプリメンテーションの実施例は、階層的に編成されたグループ群一括処理ロジックのＬｏｇ2（Ｎ／３）個の連続したレベルを有する。
ここに開示した２４個のＯｐエントリの実施例では、３つのメンバからなるグループが有利である。というのは、３の倍数の全ての数は２４個のＯｐエントリエントリにマップでき、ロジックセルライブラリのスーツ（suite）が利用可能だからである。にもかかわらず、より多い或いは少ないグループの数も、グループ群一括処理階層の各レベルにおいて適するものである。ゲート及び複合ゲートの適切な選択は当業者には明らかであろう。更に、ここでは各グループが同一の大きさのものとして示されており、グループ群一括処理ロジックが、グループ群一括処理階層の各連続したレベルでＯｐエントリ範囲が倍増してゆく形で示されているが、グループの大きさが一様でなく、グループ群一括処理階層の連続した各レベルにおいてＯｐエントリの範囲の増加度が異なっている別の実施例も可能である。スキャンロジックに適切な改変を加えることは、当業者には明らかであろう。
当業者には明らかなように、グループ内処理ロジック及びグループ群一括処理ロジック（例えばグループ群一括処理ロジック７４０、第１レベルグループ群一括処理ロジック７６０、第２レベルグループ群一括処理ロジック７５０、及び第３レベルグループ群一括処理ロジック７３０）、及び結合処理ロジック７７０の間の境界は、ある程度は任意であり。様々な境界の定義が可能である。更に、あるロジックの機能性が、異なる図面において示されたロジックブロックの間で共有され得る。例えば、第９図及び第１０図の双方に示された、グループ選択指示信号（例えばＳＥＬｇｒｐ［０］、ＳＥＬｇｒｐ［１］、ＳＥＬｇｒｐ［２］、及びＳＥＬｇｒｐ［３］）及びグループ存在指示信号（例えばＰｇｒｐ［４］、Ｐｇｒｐ［５］、Ｐｇｒｐ［６］、及びＰｇｒｐ［７］）に対するロジックは、第１レベルグループ群一括処理ロジック７６０、第２レベルグループ群一括処理ロジック７５０、及び第３レベルグループ群一括処理ロジック７３０の間で共有され得る。
スキャンロジックの１個のインスタンスに焦点を当てて説明すると、第７図〜第１０図に示すように実現されたＳＵ２オルダスキャンロジック４３４ａ．１は、段階２ＳｔＯｐが関係するＯｐエントリ２４０のＯｐエントリの存在指示信号を供給するように構成された存在指示ロジック７１０を含む。選択指示信号は、段階２ＬｄＯｐ（即ちＬＵ２４０２におけるＬｄＯｐ）が関係するＯｐエントリ２４０の特定のＯｐエントリを表示する選択指示ロジック７２０のインスタンスにより供給される。存在指示信号及び選択指示信号に基づき、グループ内処理ロジック７４０は、１つのグループが関係するＯｐエントリの１つにおける段階２ＬｄＯｐ、及び同じグループの古いＯｐエントリにおける段階２ＳｔＯｐの存在を示すグループ内指示信号を供給する。第２レベルグループ群一括処理ロジック７６０は、特定のグループが関係するＯｐエントリの１つにおける段階２ＬｄＯｐと、隣接する古いグループが関係するＯｐエントリにおける段階２ＳｔＯｐの存在とを示す第１レベルグループ群一括処理指示信号を供給する。それと同様に、第２レベルグループ群一括処理ロジック７５０は、一対の隣接するグループが関係するＯｐエントリの１つにおける段階２ＬｄＯｐと、一対の隣接する古いグループが関係するＯｐエントリにおける段階２ＳｔＯｐの存在とを示す第２レベルグループ群一括処理指示信号を供給する。最後に、第３レベルグループ群一括処理ロジック７３０は、４つの隣接するグループの組が関係するＯｐエントリの１つにおける段階２ＬｄＯｐと、４つの隣接する古いグループの組が関係するＯｐエントリの１つにおける段階ＬｄＯｐと、隣接する４つの古いグループの組が関係するＯｐエントリにおける段階２ＳｔＯｐの存在とを示す第３レベルグループ群一括処理指示信号を供給する。古い段階２ＳｔＯｐ指示信号は、グループ内処理ロジック又はグループ群一括処理ロジックの任意のものが対応する古い段階２ＳｔＯｐ指示信号を供給する場合、結合処理ロジック７７０から（ＳＣ＿ＳＵ２Ｏｌｄｅｒ信号として）供給される。
ロード順序付けロジック４３４ａの残りのスキャンロジックの設計及び動作は類似している。例えば、ＳＵ１オルダスキャンロジック４３４ａ．２のグループ内処理ロジック及びグループ群一括処理ロジックは、スケジューラ１８０のエントリをスキャンし、結合多重化ロジック４３４ａ．５は、ロード停止ロジック４０３にＳＣ＿ＳＵ１Ｏｌｄｅｒ信号を供給する。同様に、ＳＵ０オルダスキャンロジック４３４ａ．３のグループ内処理ロジック及びグループ群一括処理ロジックは、スケジューラ１８０のエントリをスキャンし、関連する結合処理ロジック４３４ａ．６は、ロード停止ロジック４０３にＳＣ＿ＳＵ０Ｏｌｄｅｒ信号を供給する。相対的古さ指示信号（ＳＣ＿ＳＵ２Ｏｌｄｅｒ、ＳＣ＿ＳＵ１Ｏｌｄｅｒ、及びＳＣ＿ＳＵ０Ｏｌｄｅｒ）がロード停止ロジック４０３に供給され、そこで５のＳＵアドレスコンパレータ信号（ＡｄｄｒＭａｔｃｈ１及びＡｄｄｒＭａｔｃｈ２）が検証するべきか、より一般的には段階２ＬｄＯｐを停止するべきか否かを決定する。
ストア順序付けロジック４３４ｂに対するスキャンロジックインスタンスは類似している。スキャンロジックの１つのインスタンスに焦点を当てて説明すると、第７図〜第１０図に示すように実現されたＬＵ２オルダスキャンロジック４３４ｂ．１は、段階２ＬｄＯｐが関係するＯｐエントリ２４０のＯｐエントリにおける存在指示信号を供給するように構成された存在指示ロジック７１０を含む。選択指示信号は、段階２ＳｔＯｐ（即ちＳＵ２４１２におけるＳｔＯｐ）が関係するＯｐエントリ２４０の特定のＯｐエントリを表示する選択指示ロジック７２０のインスタンスにより供給される。存在指示信号及び選択指示信号に基づき、グループ内処理ロジック７４０は、特定のグループが関係するＯｐエントリの１つにおける段階２ＳｔＯｐと、同じグループの古いＯｐエントリにおける段階２ＬｄＯｐの存在とを示すグループ内指示信号を供給する。第１レベルグループ群一括処理ロジック７６０は、特定のグループが関係するＯｐエントリの１つにおける段階２ＳｔＯｐと、隣接する古いグループが関係するＯｐエントリにおける段階２ＬｄＯｐの存在とを示す第１レベルグループ群一括処理指示信号を供給する。ここから類推されるように、第２レベルグループ群一括処理ロジック７５０は、一対の隣接するグループが関係するＯｐエントリの１つにおける段階２ＳｔＯｐと、隣接する一対の古いグループが関係するＯｐエントリにおける段階２ＬｄＯｐの存在とを示す第２レベルグループ群一括処理指示信号を供給する。最後に、第３レベルグループ群一括処理ロジック７３０は、４つの隣接するグループの組が関係するＯｐエントリの１つにおける段階２ＳｔＯｐと、４つの隣接する古いグループの組が関係するＯｐエントリにおける段階２ＬｄＯｐとを示す第３レベルグループ群一括処理指示信号を供給する。古い段階２ＬｄＯｐ指示信号は、グループ内処理ロジック又はグループ群一括処理ロジックの任意のものが対応する古い段階２ＬｄＯｐ指示信号を供給する場合、結合処理ロジック７７０から（ＳＣ＿ＳＵ２Ｏｌｄｅｒ信号として）供給される。
ストア順序付けロジック４３４ｂのスキャンロジックの残りのインスタンスの設計及び動作は類似している。具体的には、ＬＵ２オルダスキャンロジック４３４ｂ．２のグループ内処理ロジック及びグループ群一括処理ロジックは、スケジューラ１８０のエントリをスキャンし、結合処理ロジック４３４ｂ．５が、ストア停止ロジック４１３にＳＣ＿ＳＵ１Ｏｌｄｅｒ信号を供給する。相対的古さ指示信号（ＳＣ＿ＳＵ２Ｏｌｄｅｒ及びＳＣ＿ＳＵ１Ｏｌｄｅｒ）は、ストア停止ロジック４１３に供給され、そこで、ＬＵ段階２アドレスコンパレータ（ＡｄｄｒＭａｔｃｈ２）を検証すべきか否か、及び段階２ＳｔＯｐを停止すべきか否かが決定される。
Ｏｐエントリレベル存在指示信号Ｐ［ｘ］は、エントリのＳｔａｔｅ［３：０］フィールド（特にＳ１、Ｓ２、及びＳ３ビット）及びＴｙｐｅ［２：０］フィールド（ＳＴ又はＬＵ）に基づいている。ＬｄＯｐスキャンロジックの３つのインスタンスに対して、ＳＴタイプビットがＳＵビットの代わりに用いられる。これにより論理アドレスを発生するだけのＬＥＡオペレーションが実際にメモリを参照するＳｔＯｐが区別される。
後続の、Ｌｕｓｔ２、ＬＵｓｔ１、及びＬＵｓｔ０という添え字が付されたＯｐエントリ方程式は、ＳＵ２オルダスキャンロジック４３４ａ．１、ＳＵ１オルダスキャンロジック４３４ａ．２、及びＳＵ０オルダスキャンロジック４３４ａ．３として上述のようにそれぞれエミュレートされたスキャンロジックに対するＯｐエントリｘに対応するＰ［ｘ］タームを表示する。同様に、ＳＵｌｄ２及びＳＵｌｄ１という符号が付されたＯｐエントリ方程式は、ＬＵ２オルダスキャンロジック４３４ｂ．１及びＬＵ１オルダスキャンロジック４３４ｂ．２として上述のようにエミュレートされたスキャンロジックに対するＯｐエントリにｘに対応するＰ［ｘ］タームを表示する。
ビットラベルまたはＯｐエントリ方程式
0003681761.tif 000008
この実施例に於いては、（Ｓ２＋Ｓ１  ＳＵ２＿ＦｉｒｓｔＡｄｄｒＶ）及び（Ｓ２＋Ｓ１  ＬＵ２＿ＦｉｒｓｔＡｄｄｒＶ）タームは、位置合わせされていないメモリアクセスオペレーションの前半を実行する段階１ＬｄＳｔＯｐｓの機能停止を管理するためにＯｐエントリ方程式を拡張する。
再度第８図を参照すると、ＳＵＭ＿０１決定ゲートを含むスキャン及び結合処理ロジック８４１の実施例が示されている。この実施例の設計は、同様に図示されているＳＵＭ＿２３４及びＳＵＭ＿５６７決定ゲートの設計に類似している。第１Ｏｐクワッドが関係するＯｐエントリ、即ちｇｒｐ＿０及びｇｒｐ＿１のＯｐエントリ０、１、２、及び３に対するエントリ指示信号の相対的な遅さを取り扱うための実施例では、別のＳＵＭ＿０１決定ロジック８４１ａが好適である。このような別のＳＵＭ＿０１決定ロジック８４１ａは、第１２図に示されており、複合ゲート１２０１、１２０２、及び１２０３を含む。有利な点は、代わりのＳＵＭ＿０１決定ロジック８４１ａでは、命令デコーダ１４０から供給されるＯｐクワッド０のＯｐエントリフィールド値によって決まる信号経路におけるインバータゲートの遅れが３で済む点である。特に、代わりＳＵＭ＿０１決定ロジック８４１ａは、Ｏｐｓ０、１、２、及び３のＴｙｐｅ［２：０］及びＳｔａｔｅ［３：０］フィールド値に応じて信号の為のより短い信号経路を提供し、それらの信号に複合ゲート１２０１、１２０２、及び１２０３のより速い入力を割り当てる。このようにして、Ｏｐエントリの到着遅れの影響が低減される。
プロセッサ及びシステムの実例
第１図はこの発明のスーパースケーラプロセッサ実施例を示す。スーパースケーラプロセッサ１００は限定命令セット計算（ＲＩＳＣ）アーキテクチャを実施する実行エンジン１５０、命令デコーダ１４０、キャッシュ、及びメモリサブシステム１２２に表現されるアドレス空間へのアクセス及びローカルバス（図示しない）上のデバイスへのアクセスを提供するシステムインターフェース１２０を含む。
スーパースケーラプロセッサ１００は、ここに記載の実施例においては別個のデータ及び命令部として構成されたキャッシュを含む。データキャッシュ１７０及び命令キャッシュ１３０は、主メモリを含みかつオプションとして例証的にはＬ２キャッシュである追加的レベルのキャッシュを含むメモリサブシステム１２２に表されるアドレス空間に（キャッシュ制御ロジック１６０を介してかつシステムインターフェース１２０によって）接続される。Ｌ２レベルキャッシュへのアクセス、即ちＬ２キャッシュ制御ロジック及びＬ２データ部（図示しない）へのアクセスはシステムインターフェース１２０を介して提供される。代替的には、Ｌ２キャッシュ制御ロジックは（Ｌ１のための）キャッシュ制御ロジック１６０とシステムインターフェース１２０の間に介装することができる。
キャッシュシステム設計は当業界において周知である。特に、分割、ハーバードアーキテクチャ命令及びデータキャッシュ（符号１７０及び１３０のような）、並びに多重レベルキャッシュ階層構造を実現する適当な設計がキャッシュ技術分野において周知である。多くの点において、スーバースケーラプロセッサ１００のキャッシュサブシステム（即ちデータキャッシュ１７０、命令キャッシュ１３０、キャッシュ制御ロジック１６０、及びオプションであるＬ２キャッシュ）はそのような適当な設計の何れかである。しかしながら、そのキャッシュ性能からは別個の理由により命令キャッシュ１３０はプレデコードロジック（図示しない）と一体にされている。そのように一体化されたプレデコードロジックは取り出された命令ストリーム内のｘ８６命令境界を識別し、命令デコーダ１４０による命令の迅速なデコーディングを促進する。
第１図を再び参照するに、命令シーケンスは実行エンジン１５０により予想される実行のためにメモリサブシステムから命令キャッシュ１３０へとロードされる。第１図に示されるプロセッサ１００の実施例に従い、命令キャッシュ１３０内の命令はｘ８６プロセッサアーキテクチャに適合するプロセッサによって実施されるｘ８６命令のような複合命令セットから選択されたＣＩＳＣ命令である。命令デコーダ１４０は命令キャッシュ１３０から受け取ったＣＩＳＣ命令を実行エンジン１５０での実行のためのオペレーションへと変換する。第１図の実施例において、これらのオペレーションはＲＩＳＣ類似オペレーション（以下「ＯＰｓ」と言う）であり、命令キャッシュ１３０からの単一ｘ８６命令は実行エンジン１５０のための１以上のＯＰｓに復号する。個々のＯＰｓはレジスタオペレーション（ＲｅｇＯｐｓ）、ロード−ストアオペレーション（ＬｄＳｔＯｐｓ）、ロード即値オペレーション（ＬＩＭＭＯｐｓ）、特殊オペレーション（ＳｐｅｃＯｐｓ）、及び浮動小数点オペレーション（ＦｐＯｐｓ）を含む数種の型のグループの１つに分かれる。代替的実施例では異なる命令セットを解読して実行のために異なるオペレーション形式を供給してもよい。
命令デコーダ１４０は分岐予測ロジック１４３と共にハードウェア変換部ＭａｃＤｅｃ１４１及びＲＯＭベース変換部１４２である２個の命令変換部を含む。最も共通的なｘ８６命令はハードウェア変換部１４１内に含まれる多重並列ハードウェアデコーダを使用する１乃至４のＯＰｓの短いシーケンスに変換される。ハードウェア変換部１４１は命令キャッシュ１３０から受け取ったこれらの共通的なｘ８６命令を短いシーケンスに解読しこれは次にスケジューラ１８０に供給される。あまり共通的でないｘ８６命令及び４ＯＰｓよりも長いＯＰシーケンスに変換するこれらのｘ８６命令は変換されるべき特定ｘ８６命令に符合したＯＰｓの変換シーケンスを（ＲＯＭから）取り出すＲＯＭベース変換部１４２によって変換される。何れかのソースからの変換されたＯＰシーケンスは、ハードウェアデコーダによって生成されたかＲＯＭから取り出されたかに係わりなく、実行エンジン１５０による実行のためにスケジューラ１８０に供給される。
第１図を再度参照するに、実行エンジン１５０はスケジューラ１８０、レジスタファイル１９０及びスケジューラ１８０によってディスパッチされたＯＰｓを受取り実行する多重実行ユニットを含む。代替的実施例においては実行ユニットのセットに追加しまたはこれから差し引くことが可能であるが、第１図の実施例においては実行エンジン１５０はロードユニット１５２、ストアユニット１５３、レジスタユニット１５４及び１５５、浮動小数点ユニット１５６、マルチメディアユニット１５７、並びに分岐ユニット１５８である７つの実行ユニットを含む。例示的実施例においては、浮動小数点ユニット１５６とマルチメディアユニット１５７を省略する。実行エンジン１５０はまたストアユニット１５３とデータキャッシュ１７０の間に介装されるストアキュー１５９を含む。
スケジューラ１８０は記憶エントリとこれに接続するロジックブロックの指定された配列として構成され、この記憶エントリとロジックブロックは協働してＯｐｓの実行ユニットへのＯＵＴ−ＯＦ−ＯＲＤＥＲディスパッチのため且つＯｐ結果の１以上の実行ユニットへの転送のための支援を提供する。記憶エントリとロジックブロックの指定された配列はまた再命令バッファを実施し、レジスタファイル１９０内に形成されたアーキテクチャレジスタの再命名を提供し、投機的実行の回復を提供する。命令デコーダ１４０はスケジューラ１８０に命令ストリームから解読された新規のＯｐｓを供給する。次に、スケジューラ１８０は受け取った新規の各Ｏｐに関連したデータを（記憶エントリ内に）格納し保持する。このようにして、Ｏｐが実行ユニットに発行されかつ実行ユニットによって実行されるに伴いスケジューラ１８０が各Ｏｐの状態とその関連するデータを追跡調査する。与えられたＯｐが完全に実行されかつデータ依存性が明瞭になった後に、それは退避（ｒｅｔｉｒｅ）されそして符合するスケジューラエントリは解除される。
スケジューラ１８０はバス１８９として一括して示される一群のバス及び制御線を介して実行ユニット（即ち、ロードユニット１５２、ストアユニット１５３、レジスタユニット１５４及び１５５、浮動小数点ユニット１５６、マルチメディアユニット１５７並びに分岐ユニット１５８）に接続される。スケジューラ１８０は実行ユニットにＯｐｓ、レジスタオペランド及び制御信号を供給し、例証的にはバス１８９を介して実行ユニットから戻される結果値及び状態指示信号を受け取る。もちろん、全てのバスと制御線とは完全に接合している必要はなく、バス１８９は実行ユニットに対するスケジューラ１８０の双方向接続の単なる例示である。
ロードユニット１５２とストアユニット１５３は、それぞれアドレス可能なメモリからのロードしたデータとアドレス可能なメモリへの格納したデータであるＬｄＳｔＯｐｓ（即ちＬｄＯｐｓとＳｔＯｐｓ）を実行する。特定のメモリアドレスのキャッシュ状態に依拠して、ＬｄＳｔＯｐはＬ１データキャッシュ１７０、Ｌ２キャッシュ（図示しない）、主メモリ（図示しない）のいずれかにおいて完了する。ストアキュー１５９はストアユニット１５３からのデータを一時的に格納しストアユニット１５３とロードユニット１５２とはデータキャッシュ１７０へのアクセス競合無しに並行して演算することができる。レジスタユニット１５４と１５５はＲｅｇＯｐｓを実行しこのＲｅｇＯｐｓはレジスタファイル１９０のアーキテクチャレジスタに関連したデータに基づいて演算する。
本発明に基づくロード／ストアオペレーションのＯＵＴ−ＯＦ−ＯＲＤＥＲ実行コントロールを実現する様々なコンピュータシステムコンフィギュレーションが考えられる。例えば、このようなコンピュータシステム（例えばコンピュータシステム１０００）は、本発明によるロード／ストアＯＵＴ−ＯＦ−ＯＲＤＥＲ実行コントロールを提供するプロセッサ１００、メモリサブシステム（例えばＲＡＭ１０２０）、ディスプレイアダプタ１０１０、ディスクコントローラ／アダプタ１０３０、様々な入力／出力インタフェース及びアダプタ（例えば並列インタフェース１００９、直列インタフェース１００８、ＬＡＮアダプタ１０７等）、及び対応する外部装置（例えばディスプレイデバイス１００１、プリンタ１００２、モデム１００３、キーボード１００６、及びデータ記憶装置）を含む。データ記憶装置には、例えばハードディスク１０３２、フロッピーディスク１０３１、テープユニット、ＣＤ−ＲＯＭ、ジュークボックス、ＲＡＩＤ（redundant array of inexpensive disks）、フラッシュメモリ等のような装置が含まれる。
追加実施例
以下は追加の本発明による実施例である。
オペレーションエントリの古さ順配列において、オペレーションタイプ基準と一致する１つ或いはそれ以上の古いエントリからなる選択されたエントリを含む存在エントリをシグナリングするためのスキャンロジックが提供される。このスキャンロジックは、第１グループ内のオペレーションエントリの各エントリに対する選択指示信号及びオペレーションタイプ基準指示信号を受信するために接続される第１グループ内処理ロジックを有する。このような選択指示信号はそれぞれ対応するエントリが選択されたエントリであるか否かを指示し、第１グループ内処理ロジックは、第１グループ内において選択されたエントリ、並びにオペレーションタイプ基準と一致する古いオペレーションの第１の結合を識別する。このスキャンロジックはまた、第２グループのオペレーションエントリ内の各エントリに対する選択指示信号及びオペレーションタイプ基準指示信号を受信するために接続される第２グループ内処理ロジックを有する。そのような各選択指示信号はそれぞれ対応するエントリが選択されたエントリであるか否かを指示し、第２グループ内処理ロジックは、第２のグループにおいて選択されたエントリ、並びにオペレーションタイプ基準と一致する古いオペレーションの第２の結合を識別する。このスキャンロジックは更に、第１グループのオペレーションエントリ内の各エントリに対する選択指示信号及び第２グループのオペレーションエントリ内の各エントリに対する選択指示信号を受信するために接続される第１グループ群一括処理ロジックを有する。この第１のグループ群一括処理ロジックは、第１グループ内の選択されたエントリ、並びに第２グループ内のオペレーションタイプ基準と一致する古いオペレーションの第３の結合を識別する。前記スキャンロジックはまた、第１グループ内処理ロジック、第２グループ内処理ロジック並びに第１グループ群一括処理ロジックに接続される結合処理ロジックを有し、この結合処理ロジックは、それらの識別信号を受信し、任意の識別信号に応じてオルダ（older）エントリ識別信号を供給する。
上述のスキャンロジックはさらに、それぞれ第３及び第４のグループのオペレーションエントリにおける各エントリに対する選択指示信号及びオペレーションタイプ基準指示信号を受信するためにそれぞれ接続される第３及び第４のグループ内処理ロジック、及び第３グループのオペレーションエントリにおける各エントリに対する選択指示信号、並びに第４のグループのオペレーションエントリにおける各エントリに対するオペレーションタイプ基準指示信号を受信するために接続される第２のグループ群一括処理ロジックを有していてもよい。上述の第３及び第４のグループ内処理ロジックはそれぞれ、第３及び第４のグループのそれぞれにおける選択されたエントリ及びオペレーションタイプ基準に一致する古いオペレーションの第４及び第５の結合を識別する。また、上述の第２グループ群一括処理ロジックは第３グループ内の選択されたエントリ、並びに第３及び第４グループ内のオペレーションタイプ基準と一致する古いオペレーションの第６の結合を識別する。上述の結合処理ロジックはさらに第３グループ内処理ロジック、第４グループ内処理ロジック並びに第２グループ群一括処理ロジックに接続され、第４、第５並びに第６の結合信号をそこから受信し、また結合処理ロジックが任意の第１、第２、第３、第４、第５並びに第６の結合信号に応じてオルダエントリ識別信号を供給する。
別形態では、前記スキャンロジックがさらに、それぞれ第３及び第４グループのオペレーションエントリ内の各エントリに対する選択指示信号及びオペレーションタイプ基準指示信号を受信するためにそれぞれ接続される第３及び第４グループ内処理ロジック、及び第３グループのオペレーションエントリ内の各エントリに対する選択指示信号、並びに第４グループのオペレーションエントリ内の各エントリに対するオペレーションタイプ基準指示信号を受信するために接続される第２グループ群一括処理ロジックを有していてもよい。上述の第３及び第４グループ内処理ロジックは、それぞれ第３及び第のグループ内の選択されたエントリ及びオペレーションタイプ基準に一致する古いオペレーションの第４及び第５の結合を識別する。上述の第２グループ群一括処理ロジックは第３グループ内の選択されたエントリ、並びに第３及び第４のグループ内オペレーションタイプ基準と一致する古いオペレーションの第６の結合を識別する。上述の結合処理ロジックはさらに第３グループ内処理ロジック、第４グループ内処理ロジック並びに第２グループ群一括処理ロジックに接続され、第４、第５並びに第６の結合信号をそこから受信し、また結合処理ロジックが任意の第１、第２、第３、第４、第５並びに第６の結合信号に応じてオルダエントリ識別信号を供給する。
別実施例によれば、ロードユニット及びストアユニットを有するプロセッサにおいて、ロード及びストア命令間でデータ依存性を強いる一方で、ロード及びストア命令が互いに関して普通にＯＵＴ−ＯＦ−ＯＲＤＥＲ実行できるようにするためのロード／ストア実行コントローラが提供される。このロード／ストア実行コントローラは、古さ順配列のスケジューラオペレーションエントリを有する。各スケジューラオペレーションエントリはオペレーションシーケンス内の対応するオペレーションを指示する。ロード停止ロジックは、ロードユニットに接続され、ストアオルダ指示信号（store older indication）受信時に、ロードユニット内のロードオペレーションを選択的に禁止する。スキャンチェーンロジックは、オペレーションエントリ及びロード停止ロジックに接続され、ロードユニット内のロードオペレーションに関連する古いストアオペレーションの存在を指示するストアオルダ指示信号を供給する。このスキャンロジックはさらに、それぞれの第１レベルグループの隣接エントリ内の各エントリに対する選択信号及び第１の基準信号を受信し、それぞれの第１レベルグループ内の選択されたエントリ及びより高次のエントリのそれぞれの結合を識別するために接続されるグループ内処理ロジックと、隣接ずるより低次の及びより高次の第１レベルグループからのエントリに対応するそれぞれの選択信号及び第１の基準信号を受信し、低次第１レベルグループの１つにおいて選択されたエントリの結合を識別し、それぞれの高次第１レベルグループ内の高次エントリを識別するために接続される第１レベルグループ群一括処理ロジックと、グループ内処理ロジック及び第１レベルグループ群一括処理ロジックに接続され、そこからの結合信号を受信し、さらに任意の結合信号に応じて高次エントリ識別信号を供給する結合処理ロジックとを含む。
本発明は種々の実施例を参照して記載されているが、これらの実施例は例示にすぎず、本発明の範囲を制限するものではないことは理解されよう。ここで記載される実施例の種々の変形、変更、追加或いは改良が可能である。例えば、Ｏｐクワッドとしてスケジューラ１８０内にあるＯｐエントリの機構は単なる例示である。別の実施例では、他の構造並びにまた方法が組み込まれ、多重或いはパイプライン化実行ユニットを有するコンピュータにおけるオペレーションの性質或いは状態を表せるかもしれない。スキャンロジックは、より大きな或いはより小さなグループにグループ化された多数の或いは少数のＯｐエントリを収容するように構成されるかもしれない。ここに記載された階層的な機構から逸脱することなく、さらに種々のゲート／複雑ゲートレベルロジックにより設計することが適当である。別の実施例では、ロードユニット１５２及びストアユニット１５３において異なる構造及び機能が配分されるかもしれない。例えば、ロードユニット１５２及びストアユニット１５３は別々に変更され、多数の或いは少数の実行段階を含むかもしれない。所要のスキャンロジックインスタンスのセットへの相応の変更は、当業者には明らかであろう。アドレス比較を行うための構造は、ロードユニット１５２とストアユニット１５３との間で異なって配分されるかもしれない。さらに別の実施例では、多数の或いは少数のスキャンロジックインスタンスが組み込まれ、ＬｄＯｐｓ及びＳｔＯｐｓを停止するかもしれない。アドレス比較は、多くの従来の停止に関するポリシーを選択すればなくせるかもしれない。さらに、典型的な実施例においてハードウエアで提供される構造及び機能は、別の実施例では、ソフトウエア、ファームウエア或いはマイクロコードで実現されるかもしれない。以上の或いはこれ以外の変形、変更、追加並びに改良は以下に示す請求の範囲において画定される本発明の範囲内に含まれるであろう。
【図１】
0003681761.tif 000009
【図２】
0003681761.tif 000010
【図３】
0003681761.tif 000011
【図４】
0003681761.tif 000012
【図５】
0003681761.tif 000013
【図６】
0003681761.tif 000014
【図７】
0003681761.tif 000015
【図８】
0003681761.tif 000016
【図９】
0003681761.tif 000017
【図１０】
0003681761.tif 000018
【図１１】
0003681761.tif 000019
【図１２】
0003681761.tif 000020