(57)【要約】一実施例に従って、本発明は一般にプロセッサのキャッシュの性能を改善する方法を提供する。本方法は、データ・ランダム・アクセス・メモリ（ＲＡＭ）内に複数のデータを格納することを含む。本方法は、さらに、次のレベルのメモリ・サブシステムへ転送された全ての未処理の要求のための情報を保持することを含む。本方法は、さらに、要求が実行された後、サービスされた要求に関連する情報をクリアすることを含む。本方法は、さらに、後続の要求が、次のレベルのメモリ・サブシステムに既にインフライトしている１またはそれ以上の要求に提供されたアドレスと一致するかどうかを決定することを含む。本方法は、さらに、次のレベルのメモリ・サブシステムによってサービスされた実行済みの要求を、オリジナルの要求が次のレベルのメモリ・サブシステムへインフライトしていた間に要求を出した少なくとも１つのリクエスタと一致させることを含む。本方法は、さらに、各要求に特有の情報を格納することを含み、その情報は設定属性および経路属性を含み、設定および経路属性は、データが戻されると直ちに、戻されたデータがデータＲＡＭ内のどこに保持されるべきかを識別するために形成され、各要求に特有の情報は、さらに、スレッドＩＤ、命令待ち行列の位置、およびカラーのうちの１つを含む。本方法は、さらに、ヒットおよびミス・データの戻りをスケジュールすることを含む。もちろん、これ以外の様々な実施例も、本発明の範囲内である。
2010532057.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサのためのキャッシュにおいて、前記キャッシュは、
少なくとも１つのアウト−オブ−オーダ命令の戻りを処理するために形成された複数の命令待ち行列と、
複数のデータを格納することができるデータ・ランダム・アクセス・メモリ（ＲＡＭ）と、
前記データＲＡＭ内に格納された前記複数のデータのメモリ・アドレスおよびデータを格納することができるタグＲＡＭと、
インフライトＲＡＭであって、
次のレベルのメモリ・サブシステムへ転送された全ての未処理の要求のための情報を保持し、
前記要求が処理された後、サービスされた要求に関連する情報をクリアにし、
後続の要求が、前記次のレベルのメモリ・サブシステムに既にインフライトにある１またはそれ以上の要求に提供されたアドレスと一致するかどうかを決定し、
前記次のレベルのメモリ・サブシステムによってサービスされた処理済みの要求を、オリジナルの要求が前記次のレベルのメモリ・サブシステムにインフライトにある間に要求を出した少なくとも１つのリクエスタと一致させ、および、
各要求に特有の情報を格納する、ことが可能であり、
前記情報は設定属性および経路属性を含み、前記設定および経路属性は、前記データが戻ると直ちに、前記戻されたデータが前記データＲＡＭ内のどこに保持されるべきかを識別するために形成され、各要求に特有の前記情報は、スレッドＩＤ、命令待ち行列の位置、およびカラーのうちの少なくとも１つをさらに含む、
インフライトＲＡＭと、
ヒットおよびミスのデータの戻りをスケジュールするためのアービタと、
から構成されることを特徴とするキャッシュ。
【請求項２】
前記キャッシュは、前記データＲＡＭ内に格納された前記複数のデータへのアクセスを前記複数のコアに提供することができることを特徴とする請求項１記載のキャッシュ。
【請求項３】
前記データＲＡＭは、前記データＲＡＭ内に格納された前記複数のデータのレイテンシを低減することを特徴とする請求項１記載のキャッシュ。
【請求項４】
前記スレッドＩＤ、命令待ち行列の位置、およびカラーのうちの少なくとも１つは、前記要求が処理されると直ちに、前記リクエスタに戻されることを特徴とする請求項１記載のキャッシュ。
【請求項５】
前記キャッシュは、単一のクロック・タイム中に前記複数のスレッドへデータを戻すことを特徴とする請求項４記載のキャッシュ。
【請求項６】
前記データが戻された時に、前記戻されたデータの適合性を決定するためのカラー・ビットを含むＥＵインターフェイスをさらに含むことを特徴とする請求項１記載のキャッシュ。
【請求項７】
前記ＥＵインターフェイスは、低いヒット率を有する前記プロセッサの前記キャッシュの性能を改善することを特徴とする請求項６記載のキャッシュ。
【請求項８】
マルチコアおよびマルチスレッド・システムにおいて、前記システムは、
複数のコアと、
前記複数のコアに接続されたキャッシュとからなり、前記キャッシュは、
少なくとも１つのアウト−オブ−オーダ命令の戻りを処理するために形成された複数の命令待ち行列と、
複数のデータを格納することができるデータ・ランダム・アクセス・メモリ（ＲＡＭ）と、
前記データＲＡＭ内に格納された前記複数のデータのメモリ・アドレスおよびデータを格納することができるタグＲＡＭと、
インフライトＲＡＭであって、
次のレベルのメモリ・サブシステムへ転送された全ての未処理の要求のための情報を保持し、
前記要求が処理された後、サービスされた要求に関連する情報をクリアにし、
後続の要求が、前記次のレベルのメモリ・サブシステムに既にインフライトにある１またはそれ以上の要求に提供されたアドレスと一致するかどうかを決定し、
前記次のレベルのメモリ・サブシステムによってサービスされた処理済みの要求を、オリジナルの要求が前記次のレベルのメモリ・サブシステムにインフライトにある間に要求を出した少なくとも１つのリクエスタと一致させ、および、
各要求に特有の情報を格納する、ことが可能であり、
前記情報は設定属性および経路属性を含み、前記設定および経路属性は、前記データが戻ると直ちに、前記戻されたデータが前記データＲＡＭ内のどこに保持されるべきかを識別するために形成され、各要求に特有の前記情報は、スレッドＩＤ、命令待ち行列の位置、およびカラーのうちの少なくとも１つをさらに含む、
インフライトＲＡＭと、
ヒットおよびミスのデータの戻りをスケジュールするためのアービタと、
から構成されることを特徴とするシステム。
【請求項９】
前記キャッシュは、前記データＲＡＭ内に格納された前記複数のデータへのアクセスを前記複数のコアに提供することができることを特徴とする請求項８記載のシステム。
【請求項１０】
前記データＲＡＭは、前記データＲＡＭ内に格納された前記複数のデータのレイテンシを低減することを特徴とする請求項８記載のシステム。
【請求項１１】
前記スレッドＩＤ、命令待ち行列の位置、およびカラーのうちの少なくとも１つは、前記要求が処理されると直ちに、前記リクエスタに戻されることを特徴とする請求項８記載のシステム。
【請求項１２】
前記キャッシュは、単一のクロック・タイム中に前記命令データへのアクセスを前記複数のスレッドへ提供することを特徴とする請求項１１記載のシステム。
【請求項１３】
前記データが戻された時に、前記戻されたデータの適合性を決定するためのカラー・ビットを含むＥＵインターフェイスをさらに含み、前記ＥＵによる推論的な要求を許可することを特徴とする請求項８記載のシステム。
【請求項１４】
前記ＥＵインターフェイスは、低いヒット率を有する前記プロセッサの前記キャッシュの性能を改善することを特徴とする請求項１３記載のシステム。
【請求項１５】
プロセッサのキャッシュの性能を改善する方法において、前記方法は、
複数のデータをデータ・ランダム・アクセス・メモリ（ＲＡＭ）に格納する段階と、
前記データＲＡＭ内に格納された前記複数のデータのメモリ・アドレスをタグＲＡＭ内に格納する段階と、
次のレベルのメモリ・サブシステムへ転送された全ての未処理の要求のための情報を保持する段階と、
前記要求が処理された後、サービスされた要求に関連する情報をクリアにする段階と、
後続の要求が、前記次のレベルのメモリ・サブシステムに既にインフライトしている１またはそれ以上の要求に提供されたアドレスと一致するかどうかを決定する段階と、
前記次のレベルのメモリ・サブシステムによってサービスされた実行済みの要求を、オリジナルの要求が前記次のレベルのメモリ・サブシステムにインフライトにある間に要求を出した少なくとも１つのリクエスタと一致させる段階であって、
前記情報は設定属性および経路属性を含み、前記設定および経路属性は、前記データが戻ると直ちに、前記戻されたデータが前記データＲＡＭ内のどこに保持されるべきかを識別するために形成され、各要求に特有の前記情報は、スレッドＩＤ、命令待ち行列の位置、およびカラーのうちの少なくとも１つをさらに含む、段階と、
ヒットおよびミスのデータの戻りをスケジュールする段階と、
から構成されることを特徴とする方法。
【請求項１６】
前記キャッシュは、前記データＲＡＭ内に格納された前記複数のデータへのアクセスを前記複数のコアに提供することができることを特徴とする請求項１５記載の方法。
【請求項１７】
前記データＲＡＭは、前記データＲＡＭ内に格納された前記複数のデータのレイテンシを低減することを特徴とする請求項１５記載の方法。
【請求項１８】
前記スレッドＩＤ、命令待ち行列の位置、およびカラーのうちの少なくとも１つは、前記要求が処理されると直ちに、前記リクエスタに戻されることを特徴とする請求項１５記載の方法。
【請求項１９】
前記キャッシュは、単一のクロック・タイム中に前記命令データのアクセスを前記複数のスレッドに提供することを特徴とする請求項１８記載の方法。
【請求項２０】
ジャンプ命令の場合にレイテンシを低減するためのカラー・ビットを含むＥＵインターフェイスをさらに含むことを特徴とする請求項１５記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサの性能を改善するためのキャッシュに関し、より詳しくは、プロセッサのキャッシュの性能を改善するためのマルチスレッドおよび／またはマルチコア・システムのためのキャッシュに関する。
【図面の簡単な説明】
【０００２】
本発明の利点および特徴は、詳細な説明および請求項を添付図面と共に参照することにより、より一層理解されるであろう。図面において、同様の要素は同様の記号により示される。
【０００３】
【図１】本発明の典型的な実施例に従って、プロセッサの性能を改善するためのマルチスレッドおよびマルチコア・システムを示すブロック図である。
【０００４】
【図２】本発明の典型的な実施例に従って、キャッシュのアーキテクチャを示すブロック図である。
【０００５】
【図３】本発明の典型的な実施例に従って、プロセッサのキャッシュの性能を改善する方法を示すフローチャートである。
【発明を実施するための形態】
【０００６】
本発明を完全に理解するために、上記の図面と共に、添付の請求項を含む以下の詳細な説明を参照する。本発明は、典型的な実施例に関して記述されるが、本発明がここに述べられた特定の形態に制限されることを意図するものではない。均等物についての様々な省略および代用は、状況が示唆しまたは便宜を与える場合に考慮され、これらは、本発明の請求項の精神または範囲から逸脱することなく、本出願または実施例をカバーすることを意図していることが理解される。さらに、ここで使用される語句および用語は、説明目的で使用され、制限目的で使用されるとみなすべきでないことが理解されるであろう。
【０００７】
「第１」、「第２」、および同種の用語は、ここでは、順序、量、または重要度を示すものではなく、むしろ、１つの要素を他の要素と区別するために使用される。「１つの」という用語とは、ここでは、量の制限を示すものではなく、むしろ、参照されるものが少なくとも１つ存在することを示す。
【０００８】
図１は、プロセッサの性能を改善するためのマルチスレッドおよびマルチコア・システム１０２を示すブロック図である。システムは、複数のコア１０４，１０６，１０８，１１０、および、複数のコア１０４，１０６，１０８，１１０に接続されたキャッシュ１１２を含む。キャッシュ１１２は、キャッシュ１１２の性能に対する影響を最小限に抑えつつ、複数のコア１０４，１０６，１０８，１１０をサポートする。複数のコア１０４，１０６，１０８，１１０は、同時にマルチスレッドを処理し、それによって、プロセッサの性能を増強する。キャッシュ１１２の１つの典型的なアーキテクチャは、図２に関して以下で詳述される。
【０００９】
図２は、キャッシュ１１２のアーキテクチャを示すブロック図２００である。キャッシュ１１２は、複数の命令待ち行列２０２，２０４，２０６，２０８、データ・ランダム・アクセス・メモリ（ＲＡＭ）２１０、タグＲＡＭ２１２、インフライト（ｉｎ−ｆｌｉｇｈｔ）ＲＡＭ２１４、およびアービタ２２０を含む。複数の命令待ち行列２０２，２０４，２０６，２０８は、コアによってキャッシュに対してなされた要求を取り込むために使用される。データＲＡＭ２１０は、様々な形式の複数のデータを格納することができる。アービタ２２０は、各実行ユニットへ戻るヒットおよびミスのデータが衝突し、かつ、調停を必要とするポイントを示し、クロック・サイクル毎に１つの応答のみを送り返すようなあらゆる制限を受信ユニットに与える。
【００１０】
いくつかの実施例では、各実行ユニット（ＥＵ）は、アウト−オブ−オーダ（ｏｕｔ−ｏｆ−ｏｒｄｅｒ）の戻り（リターン）を処理するために形成される。ＥＵは、それが戻ると直ちに、キャッシュ・ラインを配置するための命令待ち行列の位置を、各命令フェッチ要求と共に提供する。各スレッドは、例えば、バッファ用の３つのキャッシュ・ラインを有し、２ｂコードにとって十分である。これは、図２において、命令待ち行列アドレス［１：０］を表すＩＱ［１：０］として示される。さらに、その要求は、非整列（ｕｎａｌｉｇｎｅｄ）ジャンプ・アドレスの場合のような、キャッシュ・ライン中の奇数命令に対するものである。この信号は、図２において、「奇数」または「偶数」の信号を出す「Ｏ／Ｅ」として示される。
【００１１】
いくつかの実施例では、１つの実行ユニット毎に１つの命令待ち行列がある。ここに記述されるキャッシュ・アーキテクチャは、各送出が完了することを保証するために、送出時に待ち行列の先頭を放棄し（すなわち、それは再送出するために必要でない）、そして、あらゆるルーティングまたはメタデータは、要求と共に搬送され、待ち行列の先頭上にブロックはなく、したがって、全てのエントリを顕出させるために待ち行列を平坦化にする必要はない。命令バッファの最大深さは性能を決定し、実行ユニットの命令ＦＩＦＯ内の宛先の総数によってのみ制限される。例えば、これは、１２に制限される（つまり、４スレッド／ＥＵ×３キャッシュ・ライン深度／命令−バッファ）。
【００１２】
タグＲＡＭ２１２は、データＲＡＭ２１０内に格納された複数のデータのメモリ・アドレスを格納するために形成される。タグＲＡＭ２１２は、データＲＡＭ２１０に現在格納されているメモリからのデータを識別する。タグＲＡＭ２１２に格納されたメモリ・アドレスは、キャッシュの探索が、ヒットまたはミスのいずれの結果になるかを決定する。タグＲＡＭ２１２のサイズは、データＲＡＭ２１０の容量および構造に比例する。
【００１３】
いくつかの実施例では、タグは、比較および更新のために１を超えるクロックを使用する。例えば、３クロックが使用される。したがって、以前ミスであったために変更される可能性があるが、いまだタグＲＡＭ２１２に書き込まれていないタグをヒットするという課題が潜在する。最後の３クロック中に送出されたセット・アドレスのコピーは、（例えば図２のアービタの右に位置するレジスタ内に）格納され、それぞれ待ち行列の先頭と比較される。これには、タグ・インフライト論理２４０として図２に示された、並列の複数のコンパレータが必要とされる。待ち行列の先頭と最後の３クロック内に送出されたセットの１つとのみ一致がある場合、その待ち行列は調停からブロックされる。
【００１４】
キャッシュ・ヒットは、ヒットＦＩＦＯ２４２へ転送され、その深さは性能／コストを決定する。深さは有限なので、時にはＦＩＦＯが満杯になる。ＦＩＦＯ２４２の現在の深さを追跡するのはヒットＦＩＦＯ追跡回路であるが、それは、加算器または他の回路と同様に、いくつかの組合せ論理から構成される。送出が生じるたびに、ヒット／ミスの結果は未知であるので、加算器は、保守的なルートに従ってヒットであると仮定する。したがって、それは、その現在値に１を加算する。後に結果がミスであると判定された場合、加算器は１を減算する。加算器は、さらに、ＦＩＦＯから削除され、かつキャッシュＲＡＭへ転送された各エントリについて１を減算する。転送および誤って予測されたヒットが同じクロック中に生じる可能性があるので、２を減算する能力がサポートされている。ヒット・パスから戻されたキャッシュ・ラインは、単一のスレッド用である。少量の論理がイネーブルにされた適切なスレッドのみを用いて、バイパスＭＵＸへの１６チャネルＩＱ  Ｏ／Ｅシグナリングを合成するために存在する。
【００１５】
キャッシュ・ミスは、ミス論理２４４へ転送される。この回路は、各キャッシュ・ラインのために維持し、ＥＵ命令待ち行列は、そのラインフィル上で待機する。この情報は、インフライトＲＡＭ２１４内に保持される（例えば、１２８個のエントリ、キャッシュ・ライン毎に１つ）。ＲＡＭの幅は様々である。各ミスに対して、インフライトＲＡＭ２１４は、設定／方法のために問合わされる。そのラインについて未処理の要求がない場合は、その後、ミスはミス待ち行列へ転送され、そして、ラインフィル上で待機しているスレッドを示すために、ＲＡＭ内のスレッド位置が更新される。クエリ（問合せ）が１またはそれ以上を示す場合は、既にインフライトであり、ミスは押し潰され、スレッドの位置が更新される。ミス・データは、Ｌ２からの全てのキャッシュ・ラインの戻りを調べるフィル論理を経由してリターンする。各リターンに対して、そのデータのキャッシュ・ラインのためのフィルを待つ全ての要求するＥＵを示して、インフライトＲＡＭ２１４内の関連するセットのために検索が実行される。ＥＵへの全てのペンディングされているフィルおよび命令待ち行列位置を示すキャッシュライン・データおよび制御は、命令バスに送出される。バイパスｍｕｘアービタは、ヒットおよびミス・フィルに加わり、命令バスを駆動する。それはヒット・リターンとともにミス・リターンをサービスする。いくつかの実施例では、ミス・リターンは、ヒット待ち行列上にバック・プレッシャを引き起こす。
【００１６】
インフライトＲＡＭ２１４は、あらゆる時点において、すべての未処理のミスに対する識別およびアカウント情報を維持するために形成される。識別は、どのスレッドおよび実行ユニット（ＥＵ）が、要求（リクエスト）、データＲＡＭ内の最終的に戻されたデータを配置するために設定および方法に対応する宛先位置、および、その要求がその要求するスレッド／ＥＵからどの連続するストリームに属するかを識別するカラー・インディケータ、を形成したのかを決定することからなる。キャッシュが要求の実行を開始するとき、その要求されたアドレスは、タグＲＡＭ２１２内でチェックされ、一致が見つからない（すなわち、ミスになる）場合、その要求はインフライトＲＡＭ２１４およびそれをサポートする論理へ転送される。ＲＡＭ２１４および論理は、新しいミス要求のアドレスを、インフライトＲＡＭ２１４内に保持されているときに一致する可能性を有するすべての未処理要求のアドレスのサブセット（典型的には同一のキャッシュ・セットへマッピングしている）と比較する。一致が存在する場合、そのアドレスに対応する要求は、以前のミスによって次のレベルのメモリ・サブシステムに既に転送されており（すなわち、その要求は既にインフライトにあり）、そして、新しいミス要求およびその関連する識別およびアカウント情報は、インフライトＲＡＭ２１４内に記録され、また、いかなる要求も次のレベルのメモリ・サブシステムを形成しない。一致が見つからない場合、つまりこのアドレスに対する次のレベルのメモリ・サブシステムへの未処理要求がないことを示している場合、そのミスの識別およびアカウント情報は、インフライトＲＡＭ２１４内に記録され、そして、その要求は次のレベルのメモリ・サブシステムへ転送される。次のレベルのメモリ・サブシステムがこのキャッシュによって提供されたミス要求を処理すると直ちに、それはインプリメンテーション選択に基づいて、要求されたデータ、その要求されたアドレスおよび／または関連するアカウント情報を戻す。そのアドレス／アカウント情報は、１またはそれ以上の一致を見つけるための努力をするために、インフライトＲＡＭ２１４のコンテンツ内に保持されたサブセットの潜在的な一致（典型的には同一セットへのマッピングしている）と比較される。一致が見つかったセットは、この同一データを要求したＥＵ／スレッドの組合せのリストを示す。インフライトＲＡＭ２１４およびそれに関連する論理は、プロセッサの複数のコア１０４，１０６，１０８，１１０内の複数のスレッドへ命令データを一斉伝送し、それによって、プロセッサの性能を改善する。さらに、他のキャッシュからのミス要求の戻りに対して、インフライトＲＡＭ２１４内での探索が行なわれ、命令データを待つ全てのペンディング・スレッドは、単一のクロック内に応答（ａｃｈｎｏｗｌｅｄｇｅ）される。このように、キャッシュ１１２のアーキテクチャは、複数のスレッドへの命令データのアクセスを提供する。
【００１７】
各実行ユニット（ＥＵ）へのキャッシュ１１２の出力インターフェイスは、各ＥＵ／スレッド／命令−待ち行列−エントリ／カラー順列のために、各ＥＵへ戻された個別データの有効ビットが供給され、それによってその戻されたデータは、ＥＵインプリメンテーション内で提供された全ての可能な宛先位置へ同時に有効なものとして示されることを可能にする。さらに、インフライトＲＡＭ２１４の格納は、設定属性および経路属性を格納するために変更される。従って、キャッシュ１１２のアーキテクチャは、単一のクロック中に複数の要求に対する複数のデータのアクセスを提供する。さらに、キャッシュ１１２の総合的な性能は、典型的なキャッシュ・インプリメンテーションに比べて改善される。
【００１８】
ＥＵを具備するキャッシュ１１２のインターフェイスは、推論的な方法で、ＥＵがその実行ポイントに先立って命令をプリフェッチすることを許可するためのカラー・ビットを含み、その後、データが戻されたとき、戻されたデータが有効か、あるいは失効しているかを識別する。これを遂行するために、「カラー・ビット」（すなわち、マルチ状態変数）が使用され、スレッドによって実行されている現在の連続した命令ストリームに関連する、現在の任意の「カラー」を識別する。いくつかの実施例では、カラーは、ＥＵ毎にスレッド毎に維持される。ＥＵが、例えば「ジャンプ」命令の場合の命令を実行するとき、命令要求のストリーム内に不連続を遭遇する場合は常に、カラー・ビットの値が変更される。カラー情報は、あらゆるキャッシュ要求の一部としてキャッシュへ送られる。ここに記述されたキャッシュ１１２は、１つのスレッド毎に２つのカラーの処理をサポートするが、これは、「ｎ個」のカラーを処理するために容易に拡張することができる。ＥＵは、カラー・ビットを、キャッシュで作られた各要求に提供し、さらに、そのキャッシュは、その要求がサービスされている間保持されるすべてのアカウント情報を有するカラー・ビットを維持する。キャッシュによってＥＵへデータが戻されるとき、キャッシュは、オリジナル要求の一部として送られたカラー・ビットの値を戻す。これによって、ＥＵ／スレッドは、その戻されたカラーを、局所的に維持された実行ユニット（ＥＵ）の現在のカラーと比較することが可能になる。カラーの一致は、要求がキャッシュに対してなされたとき、ＥＵが連続する命令ストリーム上で未だ有効に動作していることを示し、したがって、戻されたデータは、実行されている命令ストリームに関連し、つまり、不一致は、ＥＵ／スレッドが、要求が未処理であった時間の間に命令ストリームの不連続に遭遇したことを示し、したがって、その戻されたデータは、実行中の現在のストリームに関連がなく、無視されてもよい。たとえキャッシュ１１２内に同一のスレッドのためにペンディングしている未処理かつ潜在的に失効している要求があるとしても、このメカニズムによって、ＥＵ／スレッドは、全ての命令ストリームの不連続において、新しいカラーで推論的な命令要求を形成することが可能となる。これは、戻されたデータの有効性を、データ・リターン時間で決定することにより、低いヒット率を引き起こす大きなカーネルを有するキャッシュ１１２の総合的な性能を改善することができる。
【００１９】
アービタ２２０は、ＥＵへのデータ・リターンをスケジュールするために使用される。決められたクロック上で、ヒットまたはミスのいずれか、あるいは両方からのデータは、リターンのために準備していてもよい。いくつかの実施例では、調停アルゴリズムは、どのデータ・リターンがサービスするべきかに関する規則を決定するために使用される。
【００２０】
図３は、プロセッサの性能を改善する方法を示すフローチャートである。本方法は、データ・ランダム・アクセス・メモリ（ＲＡＭ）内に複数のデータを格納することを含む（３０２）。本方法は、さらに、次のレベルのメモリ・サブシステムへ転送される全ての未処理の要求のための情報を保持することを含む（３０４）。本方法は、さらに、その要求が実行された後、サービスされた要求に関連する情報をクリアすることを含む（３０６）。本方法は、さらに、後続の要求が、次のレベルのメモリ・サブシステムに既にインフライトしている１またはそれ以上の要求に提供されたアドレスと一致するかどうかを決定することを含む（３０８）。本方法は、さらに、次のレベルのメモリ・サブシステムによってサービスされた実行済みの要求を、オリジナルの要求が次のレベルのメモリ・サブシステムへインフライトしていた間に要求を出した少なくとも１つのリクエスタと一致させることを含む（３１０）。本方法は、さらに、各要求に特有の情報を格納することを含み、その情報は設定属性および経路属性を含み、設定および経路属性は、データが戻されると直ちに、戻されたデータがデータＲＡＭ内のどこに保持されるべきかを識別するために形成され、各要求に特有の情報は、さらに、スレッドＩＤおよびカラーを含む（３１２）。本方法は、さらに、ヒットおよびミス・データの戻りをスケジュールすることを含む（３１４）。
【００２１】
以上の記述において、本発明の特定の実施例が説明目的のために示された。それらは、全てを網羅したものではなく、また、開示された正確な形態に制限することを意図するものではなく、上記の教示に照らして、多くの修正および変更が可能である。本実施例は、開示された原理およびその実際のアプリケーションを最もよく説明するために選択され、かつ記述され、それによって当業者は、考案された特定の使用に適するように、本開示および様々な実施例に様々な修正を加えて利用することができる。均等物についての様々な省略および代用は、状況が示唆しまたは便宜を与える場合に考慮され、そのようなものは、本発明の請求項の精神または範囲から逸脱することなく、本出願または実施例をカバーすることを意図していることが理解される。
【図１】
2010532057.tif 000003
【図２】
2010532057.tif 000004
【図３】
2010532057.tif 000005
【国際調査報告】
2010532057.tif 000006
2010532057.tif 000007