(57)【要約】      （修正有）【課題】複数のオーナー権に対する読み取り動作をばらばらの順序で発しさせるのを可能にし、より効果的に複数の記憶バッファ待ち時間を用いることにより１つのマイクロプロセッサでの記憶性能を改善する。【解決手段】一つの大域的に観測可能な記憶バッファ（ＧｏＳＢ）のような一つの記憶媒体を用いて、大域的に観測可能になった記憶データの追跡を続ける。ＧｏＳＢ内で大域的に観測されたデータを追跡することにより、前の記憶データが大域的に観測されたかどうかにかかわらず、記憶データを、一つのレベル１キャッシュや一つのラインフィルバッファのように監視可能な複数の記憶装置に記憶でき、これによりマイクロプロセッサ内の記憶データの処理能力を増大させる。【選択図】図２
2005310134.tif 000002
【特許請求の範囲】
【請求項１】
１つのプロセッサであって、
データを記憶する１つの第１記憶ユニットと、
前記第１記憶ユニットに結合されて、前記データが１つのバスエージェントにより検知可能になった後のみに前記データを記憶する１つの第２記憶ユニットと
を備える、プロセッサ。
【請求項２】
前記データが前記第１記憶ユニット内に記憶されているかどうかを前記第２記憶ユニットに示す１つのインジケータを更に備える、請求項１に記載のプロセッサであって、プロセッサ。
【請求項３】
前記第１記憶ユニットが１つのラインフィルバッファである、請求項１に記載のプロセッサ。
【請求項４】
前記第１記憶ユニットが１つのレベル１キャッシュである、請求項１に記載のプロセッサ。
【請求項５】
前記第１記憶ユニットが、１つのバスエージェント内に記憶されるべきデータを記憶する１つの記憶バッファである、請求項１に記載のプロセッサ。
【請求項６】
前記インジケータが、１つのバスエージェントにより検知可能でない前記データを記憶する１つの先入れ先出し（ＦＩＦＯ）待ち行列である、請求項２に記載のプロセッサ。
【請求項７】
前記第２記憶ユニットが、前記ＦＩＦＯ待ち行列内での複数のエントリーの１つの総数をカウントする１つのカウンタを備える１つのバッファである、請求項６に記載のプロセッサ。
【請求項８】
１つの厳しい順序付け指示アーキテクチャを有する１つのプロセッサであって、
このプロセッサが１つの記憶バッファを具え、前記記憶バッファから１つの第２データ値が読み取られる前に前記記憶バッファから読み取られる１つの第１データ値が大域的に観測されているかどうかに関わらず、前記記憶バッファから前記第２データ値が読み取られ、１つのキャッシュメモリに記憶されるようになっているプロセッサ。
【請求項９】
前記第１及び第２データ値が大域的に観測されるようになった後、これら第１及び第２データ値のみを記憶する大域的観測記憶バッファ（ＧｏＳＢ）を更に備える、請求項８に記載のプロセッサ。
【請求項１０】
前記キャッシュメモリ内に記憶されているが、まだ大域的に観測されていないデータを記憶する１つの非コミット記憶待ち行列（ＮｃＳＱ）を更に備える、請求項９に記載のプロセッサ。
【請求項１１】
前記ＧｏＳＢが、前記ＮｃＳＱ内に記憶されたデータの１つの総数に対応する１つのカウント値を備える、請求項１０に記載のプロセッサ。
【請求項１２】
前記ＧｏＳＢが、このＧｏＳＢ内に記憶されるべき各データ値に対する１つのインデックスフィールドと、前記ＧｏＳＢ内に記憶されるべき１つのデータ値が書き込まれる１つの位置に対応する１つのアドレスフィールドとを備える、請求項９に記載のプロセッサ。
【請求項１３】
前記ＮｃＳＱが、前記ＧｏＳＢ内の１つの位置を示す１つのインデックス値を記憶する１つのインデックスフィールドを具え、前記ＧｏＳＢでは、１つの対応のデータ値が大域的に観測可能になった後にこのデータ値が記憶されるようになっている、請求項１０に記載のプロセッサ。
【請求項１４】
前記キャッシュメモリが１つのレベル１（Ｌ１）キャッシュを備える、請求項１３に記載のプロセッサ。
【請求項１５】
前記キャッシュメモリが、１つのレベル１（Ｌ１）キャッシュに書き込まれるべきデータを記憶する１つのラインフィルバッファ（ＬＦＢ）を備える、請求項１３に記載のプロセッサ。
【請求項１６】
データが大域的に観測されるようになった後にこのデータが前記ＮｃＳＱから除去されるようになっている、請求項１３に記載のプロセッサ。
【請求項１７】
前記Ｌ１キャッシュまたは前記ＬＳＢが１つのデータ値を１つの監視エージェントに供給する前に前記ＧｏＳＢが前記データ値を前記監視エージェントに供給するようになっている、請求項１５に記載のプロセッサ。
【請求項１８】
１つのコンピュータシステムであって、
１つの第１データ値を少なくとも１つのバスエージェントに記憶するための１つの第１命令と、前記第１データ値が少なくとも１つのバスエージェントに記憶された後に１つの第２データ値を少なくとも１つのバスエージェントに記憶するための１つの第２命令とを記憶する１つのメモリユニットと、
前記第１及び第２データ値のどちらかが少なくとも１つのバスエージェントにより検知可能になる前に前記第１及び第２データ値を同時に記憶する１つのレベル１（Ｌ１）キャッシュ及び１つのラインフィルバッファ（ＬＦＢ）と、
１つの第１バスエージェントと
を備え、
前記第１及び第２データ値の双方またはいずれか一方が前記第１バスエージェントにより前記Ｌ１キャッシュまたは前記ＬＦＢ内で検知可能になる前に前記第１バスエージェントが前記第１及び第２データ値の双方またはいずれか一方を検知するようになっている、
コンピュータシステム。
【請求項１９】
前記第１及び第２データ値が少なくとも１つのバスエージェントにより検知可能になった後に前記第１及び第２データ値を記憶する１つの記憶構造体を更に備える、請求項１８に記載のコンピュータシステム。
【請求項２０】
前記第１バスエージェントが、前記第１及び第２データ値の双方またはいずれか一方に対する前記Ｌ１キャッシュ及び前記ＬＳＢの双方またはいずれか一方を監視するようになっている、請求項１８に記載のコンピュータシステム。
【請求項２１】
前記第１及び第２データ値が、少なくとも１つのバスエージェント内にプログラム順に記憶される、請求項１９に記載のコンピュータシステム。
【請求項２２】
前記第１及び第２命令が前記メモリユニット内にプログラム順に記憶される、請求項２１に記載のコンピュータシステム。
【請求項２３】
前記Ｌ１キャッシュ及び前記ＬＦＢの双方またはいずれか一方が、１つのポイントツーポイントバスを介して前記第１バスエージェントに結合されている、請求項２２に記載のコンピュータシステム。
【請求項２４】
前記メモリユニットが１つのダイナミックランダムアクセスメモリ（ＤＲＡＭ）である、請求項２３に記載のコンピュータシステム。
【請求項２５】
前記Ｌ１キャッシュ及び前記ＬＦＢの双方またはいずれか一方が１つのマイクロプロセッサ内に存在している、請求項２４に記載のコンピュータシステム。
【請求項２６】
前記第１バスエージェントが、１つのマイクロプロセッサ、１つのＤＲＡＭ、１つの磁気記憶媒体、１つのバスアービトレーション装置及び１つの無線記憶媒体から成る１つのリストから選択される１つの装置を備える、請求項２５に記載のコンピュータシステム。
【請求項２７】
１つの装置であって、
大域的に観測可能なデータが対応する１つの記憶動作が非投機的になった後で、かつ、前記データが１つの記憶バッファから読み取られる前に前記データを記憶するように１つの大域的観測記憶バッファ（ＧｏＳＢ）内に１つのエントリーを割り当てる割り当てロジックと、
前記データが大域的に観測可能になる前に前記データを記憶するように前記ＧｏＳＢに結合された１つのキャッシュメモリと、
前記キャッシュメモリ内に前記データを記憶する前に前記キャッシュ内で１つのラインの排他的オーナー権を得る、オーナー権に対する読み取り（ＲＦＯ）ロジックと
を備える、装置。
【請求項２８】
前記ＧｏＳＢのエントリーが割り当てられる前に前記ＲＦＯロジックが前記キャッシュメモリ内に前記ラインの排他的オーナー権を得るようになっている、請求項２７に記載の装置。
【請求項２９】
前記記憶バッファが、前記ＧｏＳＢ内で前記割り当てられたエントリーの前記位置を示す１つのインデックスを備える、請求項２８に記載の装置。
【請求項３０】
前記データが大域的に観測可能になると、前記ＧｏＳＢ内で前記割り当てられたエントリーが再割り当てされる、請求項２９に記載の装置。
【請求項３１】
複数の厳しく順序付けられたメモリ動作を発する１つの方法であって、
１つの第１記憶動作を発しさせる段階と、
前記第１記憶動作と関連する１つの第１データを１つの記憶バッファ内に記憶する段階と、
１つの第２記憶動作を発しさせる段階と、
前記第２記憶動作と関連する１つの第２データを前記記憶バッファ内に記憶する段階と、
前記第１データを１つの記憶ユニットに記憶する段階と、
前記第１データが前記記憶ユニット内に記憶されているが、大域的に観測可能でない一期間中に前記第２データを前記記憶ユニットに記憶する段階と
を備える、方法。
【請求項３２】
前記第１データまたは第２データの一方が前記記憶ユニット内に記憶される前に、前記記憶ユニット内の１つのラインについて排他的制御を得る１つの、オーナー権に対する読み取り（ＲＦＯ）動作を発する段階を更に備える、請求項３１に記載の方法。
【請求項３３】
前記第１データまたは第２データのどちらかが大域的に観測可能になった後、１つのエントリーを１つの大域的観測記憶バッファ（ＧｏＳＢ）内に割り当てる段階を更に備える、請求項３２に記載の方法。
【請求項３４】
前記記憶ユニット内に記憶されているが、大域的に観測されていない複数のデータ値の１つの総数を反映するように、１つの記憶アドレス位置に対応して１つのカウンタを更新する段階を更に備える、請求項３３に記載の方法。
【請求項３５】
前記カウンタが零に等しくなった後、別のデータを記憶するのに前記エントリーを再割り当てする、請求項３４に記載の方法。
【請求項３６】
複数のデータ値の前記総数に示すように１つの非コミット記憶待ち行列（ＮｃＳＱ）を更新する段階を更に備える、請求項３５に記載の方法。
【請求項３７】
前記記憶ユニットが１つのレベル１（Ｌ１）キャッシュである、請求項３６に記載の方法。
【請求項３８】
前記記憶ユニットが１つのラインフィルバッファである、請求項３６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の複数の実施形態は、マイクロプロセッサアーキテクチャに関する。より詳細には、本発明の複数の実施形態は、複数のオーナー権に対する読み取り動作をばらばらの順序で発しさせるのを可能にし、より効果的に複数の記憶バッファ待ち時間を用いることにより１つのマイクロプロセッサでの記憶性能を改善する１つの方法及び装置に関する。
【背景技術】
【０００２】
１つのマイクロプロセッサは、１つの「フロントサイドバス」（ＦＳＢ）として既知である１つの共有コンピュータシステムバスを介して１つのコンピュータシステムと典型的に通信する。しかし、マイクロプロセッサ性能が改善されるにつれて、そして、複数のコンピュータシステムが、同じＦＳＢに沿って相互接続された複数のプロセッサを用いる程、ＦＳＢは１つの性能障害になる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
この問題に対する１つのアプローチは、１つのマルチプロセッサシステム内の様々な複数のプロセッサ間で複数のポイントツーポイント（ＰｔＰ）リンクを使用することである。複数のＰｔＰリンクは、マルチプロセッサネットワーク内の各プロセッサに対して専用の複数のバストレースとして典型的に実施される。典型的な複数のＰｔＰリンクはＦＳＢよりも大きい処理能力を備えるが、複数のＰｔＰリンクの待ち時間がＦＳＢの待ち時間よりもひどい可能性がある。
【０００４】
ＰｔＰの待ち時間は、特に、複数の記憶動作間で厳しい順序付けを必要とする複数のマイクロプロセッサアーキテクチャ内のマイクロプロセッサにより実行される複数の記憶動作の性能に特に影響を与える可能性がある。複数の厳しい順序付け要件のため、例えば、前に発せられた複数の記憶動作は、後の複数の記憶動作をプロセッサにより発しさせる前にシステム内のその他の複数のバスエージェントに対して典型的にアクセス可能である必要があり、または、少なくとも検知可能である必要がある。１つのコンピュータシステム内のその他の複数のバスエージェントに対する１つの動作、例えば、１つの記憶動作、ロード動作またはその他の動作の検知能力はしばしば、動作の「大域的観測」と称される。典型的に、システム内のその他の複数のエージェントが動作または命令の存在を検知できる１つのキャッシュまたはその他のメモリに、複数のマイクロプロセッサ動作または命令が記憶された後にこれらマイクロプロセッサ動作または命令だけが大域的に観測可能となる。
【０００５】
１つの厳しい順序付けマイクロプロセッサアーキテクチャでの複数の記憶動作の場合、前の記憶動作が大域的に観測されるまで、典型的な複数のマイクロプロセッサは１つの記憶バッファまたはその他の記憶待ち行列構造体から、あるいは場合によってプロセッサ実行ユニットから１つの記憶動作を発しない。１つの記憶動作を大域的に観測できるように記憶動作が記憶されるキャッシュまたはその他の記憶領域の１つのラインの排他的制御を得るために、典型的な複数のマイクロプロセッサアーキテクチャでの記憶動作の発生は、オーナー権に対する読み取り（ＲＦＯ）動作のような１つの動作により先行される。しかし、典型的な複数のマイクロプロセッサアーキテクチャでは、前の複数の記憶動作が大域的に観測されるまで複数のＲＦＯ動作は発せられない。
【０００６】
図１には、１つの厳しく順序付けられたマイクロプロセッサアーキテクチャで発せられた複数の記憶動作を処理する１つの従来技術のキャッシュアーキテクチャを示す。記憶バッファは、キャッシュラインフィルバッファ（ＬＦＢ）を介してレベル１（Ｌ１）キャッシュの複数のアドレスＸ，Ｙにそれぞれ記憶されるデータＸ１，Ｙ１を含む。しかし、典型的な従来技術の複数のアーキテクチャでは、Ｌ１キャッシュ内のデータＸ０及びアドレスＸが大域的に観測されるまで、記憶データＸ１，Ｙ１のどちらも、あるいは、それらの対応の複数のＲＦＯ動作を発しさせられない。
【０００７】
従来技術の複数のアーキテクチャで複数の記憶動作を発しさせる際の待ち時間のため、最終的にはリタイアのため、１つのマイクロプロセッサと、それが存在するシステムとの全性能を妥協するおそれがある。更に、ＰｔＰの複数のプロセッサシステムがもっと広がるにつれ、この問題を悪化させるおそれがある。その理由は、システム内の各プロセッサが、システム内のその他の複数のプロセッサにより記憶されているデータに依存する可能性があるためである。
【発明を実施するための最良の形態】
【０００８】
本発明の複数の実施形態を例として示すが、複数の添付図面の複数の図表に限定しない。図中、複数の同一符号は、複数の類似の構成要素を示す。
【０００９】
本発明の複数の実施形態はマイクロプロセッサアーキテクチャに関する。特に、本発明の複数の実施形態は、複数のオーナー権に対する読み取り（ＲＦＯ）動作をばらばらの順序で発しさせるのを可能にし、より効果的に複数の記憶バッファ待ち時間を用いることにより１つのマイクロプロセッサでの記憶性能を改善する１つの方法及び装置に関する。
【００１０】
記憶バッファ効率を改善しながら、ばらばらの順序の複数のＲＦＯ動作を容易にするため、本発明の少なくとも１つの実施形態は、１つの大域的に観測可能な記憶バッファ（ＧｏＳＢ）のような１つの記憶媒体を用いて、大域的に観測可能になった記憶データの追跡を続けることを含む。ＧｏＳＢ内で大域的に観測されたデータを追跡することにより、前の記憶データが大域的に観測されたかどうかにかかわらず、記憶データを、１つのレベル１（Ｌ１）キャッシュや１つのラインフィルバッファ（ＬＦＢ）のように監視可能な複数の記憶装置に記憶でき、これによりマイクロプロセッサ内の記憶データの処理能力及び複数の記憶動作の性能を増大させる。
【００１１】
図２には、本発明の少なくとも１つの実施形態と併せて用いることができる１つのコンピュータシステムを示す。１つのプロセッサ２０５は、１つのキャッシュメモリ２１０及びメインメモリ２１５からのデータにアクセスする。本発明の一実施形態の位置２０６を図２のプロセッサ内に示す。しかし、本発明の複数の実施形態を、１つの分離したバスエージェントのようなシステム内の、または、システムを通して分散されたその他の複数の装置で実施できる。メインメモリをダイナミックランダムアクセスメモリ（ＤＲＡＭ）、１つのハードディスクドライブ（ＨＤＤ）２２０、または、様々な複数の記憶装置及び複数の技術を含むコンピュータシステムから離れて配置された１つのメモリソース２３０とすることができる。キャッシュメモリをプロセッサ内に配置でき、または、プロセッサのローカルバス２０７上のようにプロセッサに極めて接近して配置できる。更に、６個のトランジスタ（６Ｔ）セルのような比較的高速の複数のメモリセルあるいは、ほぼ等しい、または、より高速のアクセス速度のその他の複数のメモリセルをもってキャッシュメモリを構成することができる。
【００１２】
図３には、本発明の少なくとも１つの実施形態を用いることができる１つのバスエージェントを示す。特に、図３には、本発明の少なくとも１つの実施形態の１つ以上の部分３０５を含む１つのマイクロプロセッサ３０１を示す。図３のマイクロプロセッサ内には、複数の記憶動作のような複数の動作をマイクロプロセッサ内で実行する１つの実行ユニット３１０を更に示す。本発明の複数の実施形態の複数の部分及び実行ユニットの正確な、または相対的な位置は、図３に示すそれらに限定されるものではない。
【００１３】
図４には、１つのＧｏＳＢ４０１が、複数の記憶動作を追跡し、大域的に観測可能になった複数の対応のデータ値を記憶するのに用いられる本発明の一実施形態を示す。図２のＧｏＳＢの各エントリー４０５は、エントリーに参照を付けることができる１つのインデックス値フィールド４０６と、記憶動作の対象アドレスを示す１つのアドレス値フィールド４０７と、記憶動作と関連するデータを記憶する１つのデータ値フィールド４０８と、まだ大域的に観測可能になっていない複数の記憶動作の１つの総数をカウントする１つのカウンタフィールド４０９と、大域的に観測可能な記憶動作に対応するデータを利用できるかどうか、そして、ＧｏＳＢのデータフィールド内に記憶されているかどうかを示す１つの有効ビットフィールド４１０とを含む。
【００１４】
図４には、１つの非コミット記憶待ち行列（ＮｃＳＱ）４１５をも示す。ＮｃＳＱは、ラインフィルバッファ（ＬＦＢ）４２０またはレベル１（Ｌ１）キャッシュ４２５に記憶されているが、まだ大域的に観測可能になっていない複数の記憶動作に対応するデータ及びアドレス情報を記憶する。図４に示す実施形態では、ＮｃＳＱは、複数のエントリーを有する１つの先入れ先出し（ＦＩＦＯ）待ち行列であり、これらエントリーは、１つの特定の記憶動作に対応するアドレス情報を記憶する１つのアドレスフィールド４１６と、記憶動作に対応するデータを記憶する１つのデータフィールド４１７と、ＧｏＳＢ内の対応のエントリーに参照を付けるインデックス情報を記憶する１つのＧｏＳＢインデックスフィールド４１８とを含む。
【００１５】
図４に示す実施例では、記憶バッファ４３０から複数の記憶動作が発せられ、転送され、または読み取られ、ＮｃＳＱ並びに、Ｌ１キャッシュまたはＬＦＢのどちらかに記憶され、１つの対応のエントリーがＧｏＳＢ内に割り付けられる。記憶データが大域的に観測可能になった後、データがＮｃＳＱから対応のＧｏＳＢエントリーに記憶される。
【００１６】
１つの特定の対象アドレスに対応する記憶データがＮｃＳＱ内に記憶されているので、ＧｏＳＢ内の対応のカウンタフィールドがインクリメントされる。複数の記憶動作が大域的に観測可能になったので、対応の記憶アドレス及びデータがＮｃＳＱから除去され、ＧｏＳＢ内の対応のカウンタフィールドがデクリメントされる。１つのＧｏＳＢカウンタフィールドが零に達した後、対応のＧｏＳＢエントリーを割り当て解除し、１つの新たな記憶動作に再割り当てすることができる。
【００１７】
図４に示す本発明の実施形態では、Ｌ１キャッシュ及びＬＦＢの各々を、１つの記憶データに対する１つ以上のバスエージェント、例えば１つのマイクロプロセッサにより監視できる。Ｌ１キャッシュ及びＬＦＢの各エントリー内には、１つのＧｏＳＢインデックスフィールド４２６及び１つのＧｏＳＢ有効フィールド４２７がある。ＧｏＳＢインデックスフィールドは、ＧｏＳＢ内で対応する記憶データの位置を１つの監視エージェントに示す。ＧｏＳＢ有効フィールドは、対応のＧｏＳＢインデックスが有効であるか、そして、まだ大域的に観測可能になっていないかを示す。また、データに対する１つのバスエージェントによりＧｏＳＢを監視でき、ＧｏＳＢはデータを発生し、あるいはその代わりに、監視エージェントにより用いられるべき最も有効なデータを指す。Ｌ１キャッシュまたはＬＦＢとＧｏＳＢとの双方が、要求されたデータを含んでいれば、ＧｏＳＢはデータを要求エージェントに供給する。
【００１８】
図５には、本発明の一実施形態を示し、この場合、複数のＧｏＳＢインデックス及びＧｏＳＢ有効フィールドが複数のＬ１キャッシュまたはＬＦＢエントリー内に記憶されていないが、その代わり、ＧｏＳＢインデックス５０１フィールドが記憶バッファの複数のエントリー内に記憶されている。図５に示す実施形態では、記憶動作が記憶バッファからＬＦＢまたはＬ１キャッシュへ読み取られ、転送され、または発せられるまで待つというよりはむしろ、記憶動作が非投機的に、または「上位」になると直ぐに１つのＧｏＳＢエントリーを１つの記憶動作に対して割り付けできる。
【００１９】
あるいはまた、１つの対応の記憶バッファフィールドがアクセスされた時に、ロジックを用いて１つの特定のＧｏＳＢインデックスフィールドを指すことによりＧｏＳＢインデックスフィールド５０１を、記憶バッファと同じ構造体内に物理的にではなく、論理的に記憶バッファと関連付けることができる。いずれにしても、記憶バッファの各エントリーと関連するＧｏＳＢインデックスフィールドにより複数の監視エージェントが記憶データをＧｏＳＢ内に早期に位置付けできるので、監視エージェントは、データがＧｏＳＢ内で大域的に観測可能になると直ぐにデータを取り出せるようになる。図５に示す実施形態では、対応の記憶データが記憶バッファ内に記憶される前に、複数のオーナー権に対する読み取り（ＲＦＯ）動作を発しさせることができる。図５に示す実施形態のその他の複数の態様は、図４に示す本発明の実施形態に関して既に説明した態様に類似する。
【００２０】
図６は、本発明の少なくとも１つの実施形態と関連する複数の動作を示す１つのフローチャートである。図６を参照する。動作６０１において、１つの第１の記憶動作をマイクロプロセッサ実行ロジックから発し、対応のデータを１つの記憶バッファエントリー内に記憶する。第１の記憶動作を記憶バッファから発しさせる前か後かに、動作６０２において、１つのＧｏＳＢエントリーを割り付け、１つのＲＦＯ動作を実行して、ＧｏＳＢ内並びに、Ｌ１キャッシュまたはＬＦＢ内で１つのラインの排他的なオーナー権を得る。次に、第１の記憶動作データをＮｃＳＱ並びに、１つのＬＦＢまたは１つのＬ１キャッシュエントリー内に記憶する。動作６０３において、対応のＧｏＳＢカウンタをインクリメントする。
【００２１】
動作６０４において、１つの第２の記憶動作を発し、対応のデータを１つの記憶バッファエントリー内に記憶する。動作６０５において、第２の記憶動作を記憶バッファから発しさせる前か後かに、１つのＧｏＳＢエントリーを割り付け、１つのＲＦＯ動作を実行して、ＧｏＳＢ内並びに、Ｌ１キャッシュまたはＬＦＢ内で１つのラインの排他的なオーナー権を得る。次に、動作６０６において、第２の記憶動作をＮｃＳＱ並びに、ＬＦＢまたはＬ１キャッシュに移動し、対応のＧｏＳＢのカウンタをインクリメントする。
【００２２】
本発明の少なくとも１つの実施形態では、第１及び第２の記憶動作データが、同じ期間にＬＦＢ及びＬ１キャッシュ内に存在する。第１の記憶動作のデータが大域的に観測可能になる前に、第２の記憶に対応するＲＦＯデータがＬ１キャッシュまたはＬＦＢから戻されていれば、操作６０７において、第２の記憶動作を、ＧｏＳＢの対応のエントリーにでなく、Ｌ１及び／またはＬＦＢの適切なエントリーに併合する。しかし、第２の記憶動作のＲＦＯデータがＬ１キャッシュまたはＬＦＢから戻される前に第１の記憶動作のデータが大域的に観測可能であれば、動作６０８において、第２の記憶動作データをＧｏＳＢの適切なエントリーに併合できる。大域的に観測可能になっていない、あるいは、大域的に観測可能になった、ＧｏＳＢ内に割り当てられた１つの特定の記憶動作に関連するデータの数を示すように１つのカウンタをインクリメントまたはデクリメントする。
【００２３】
複数の相補型金属酸化膜半導体（ＣＭＯＳ）回路素子（ハードウェア）、または、１つの記憶媒体内に記憶された複数の命令（ソフトウェア）であって、１つのマイクロプロセッサのような１つの機械により実行されると、ここで説明した複数の動作をマイクロプロセッサに実行させる複数の命令、あるいは、ハードウェア及びソフトウェアの１つの組み合わせを用いるロジックを含むが、これに限定されない多くの手段で、ここで示した本発明の複数の実施形態のいずれかまたはすべての部分を実施できる。ここで言及した「マイクロプロセッサ」または「プロセッサ」は、複数のＣＭＯＳ装置を含み、１つ以上の入力信号または命令を受信した１つの結果として複数の動作を実行できるいかなる機械または装置をも意味するものとする。
【００２４】
複数の例示的な実施形態を参照して本発明を説明したが、この説明は、１つの制限的な意味に解釈されるものではない。本発明が関連する複数の当業者にとって明らかであるその他の複数の実施形態と同様に、複数の例示的な実施形態の様々な複数の変形形態が本発明の精神及び範囲内にあると見なす。
【図面の簡単な説明】
【００２５】
【図１】複数の発せられた記憶動作を、１つの厳しく順序付けられたマイクロプロセッサアーキテクチャ内で処理する１つの従来技術のキャッシュアーキテクチャを示す。
【図２】本発明の少なくとも１つの実施形態を用いうる１つのコンピュータシステムを示す。
【図３】本発明の少なくとも１つの実施形態を用いうる１つのバスエージェントを示す。
【図４】複数の記憶動作を追跡し、大域的に観測可能になった複数の対応のデータ値を記憶するのに１つの大域的観測記憶バッファ（ＧｏＳＢ）が用いられる本発明の一実施形態を示す。
【図５】複数のＧｏＳＢインデックス及びＧｏＳＢ有効フィールドが複数のレベル１（Ｌ１）キャッシュまたはラインフィルバッファ（ＬＦＢ）エントリー内に記憶されていないが、その代わり、ＧｏＳＢインデックスフィールドが記憶バッファの複数のエントリー内に記憶されている本発明の一実施形態を示す。
【図６】本発明の少なくとも１つの実施形態と関連する複数の動作を示す１つのフローチャートである。
【図１】
2005310134.tif 000003
【図２】
2005310134.tif 000004
【図３】
2005310134.tif 000005
【図４】
2005310134.tif 000006
【図５】
2005310134.tif 000007
【図６】
2005310134.tif 000008
【外国語明細書】
2005310134.tif 000009
2005310134.tif 000010
2005310134.tif 000011
2005310134.tif 000012
2005310134.tif 000013
2005310134.tif 000014
2005310134.tif 000015
2005310134.tif 000016
2005310134.tif 000017
2005310134.tif 000018
2005310134.tif 000019
2005310134.tif 000020
2005310134.tif 000021
2005310134.tif 000022
2005310134.tif 000023
2005310134.tif 000024
2005310134.tif 000025
2005310134.tif 000026
2005310134.tif 000027
2005310134.tif 000028
2005310134.tif 000029
2005310134.tif 000030
2005310134.tif 000031