(57)【要約】  キャッシュにおける置換候補を選択及び更新する方法及び装置が開示される。一実施例では、キャッシュミスが、ラストレベルキャッシュにおける現在の置換候補の削除を開始する。キャッシュミスはまた、以降の置換候補の選択を開始する。以降の置換候補を選択すると、対応するキャッシュラインが、下位レベルキャッシュにおいて無効にされるが、ラストレベルキャッシュに存在し続ける。以降の置換候補は、以降のキャッシュミスの前にラストレベルキャッシュの置換候補に対する以降のヒットにより更新されてもよい。
2008513907.tif 000002
【特許請求の範囲】
【請求項１】
第１ミスに対して第１置換候補を特定し、第２ミスに対して前記第１置換候補を削除するセット制御ロジックと、
前記第１ミスの後に下位キャッシュにおける前記第１置換候補のキャッシュラインを無効にするメッセージを発行するキャッシュ制御ロジックと、
を有するキャッシュ。
【請求項２】
前記セット制御ロジックは、前記第１ミスの後に前記第１置換候補に対するヒットが発生すると、第２置換候補を特定する、請求項１記載のキャッシュ。
【請求項３】
前記キャッシュ制御ロジックは、前記第１置換候補に対するヒットの後に、下位キャッシュにおける前記第２置換候補のキャッシュラインを無効にするメッセージを発行する、請求項２記載のキャッシュ。
【請求項４】
前記セット制御ロジックは、前記第１置換候補のキャッシュラインを前記下位キャッシュに送信する、請求項２記載のキャッシュ。
【請求項５】
前記セット制御ロジックは、置換方法により前記第１置換候補を特定する、請求項１記載のキャッシュ。
【請求項６】
前記置換方法はランダム法である、請求項５記載のキャッシュ。
【請求項７】
前記置換方法は、ＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ−Ｆｉｒｓｔ−Ｏｕｔ）法である、請求項５記載のキャッシュ。
【請求項８】
前記置換方法は、ＬＲＵ（Ｌｅａｓｔ−Ｒｅｃｅｎｔｌｙ−Ｕｓｅｄ）法である、請求項５記載のキャッシュ。
【請求項９】
前記セット制御ロジックは、前記第１ミスの後に前記第１置換候補に対するヒットが発生すると、第２置換候補を特定し、前記第１置換候補をＭＲＵ（Ｍｏｓｔ−Ｒｅｃｅｎｔｌｙ−Ｕｓｅｄ）として設定する、請求項８記載のキャッシュ。
【請求項１０】
前記セット制御ロジックは、前記第２ミスが発生する前に前記第２置換候補を特定する、請求項９記載のキャッシュ。
【請求項１１】
キャッシュに対する第１ミスの後に第１置換候補を特定するステップと、
前記キャッシュに対する下位キャッシュにおける前記第１置換候補に対応するキャッシュラインを無効にするステップと、
前記キャッシュに対する第２ミスの後に、前記キャッシュから前記第１置換候補を削除するステップと、
を有する方法。
【請求項１２】
前記第１ミスの後に前記第１置換候補に対するヒットが発生すると、第２置換候補を特定するステップをさらに有する、請求項１１記載の方法。
【請求項１３】
前記ヒットに応答して、前記キャッシュラインを前記下位キャッシュに送信するステップをさらに有する、請求項１２記載の方法。
【請求項１４】
前記第１置換候補を特定するステップは、置換方法を実現することから構成される、請求項１１記載の方法。
【請求項１５】
前記置換方法は、ランダム選択により前記第１置換候補を決定する、請求項１４記載の方法。
【請求項１６】
前記置換方法は、ＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ−Ｆｉｒｓｔ−Ｏｕｔ）を実現することにより前記第１置換候補を決定する、請求項１４記載の方法。
【請求項１７】
前記置換方法は、ＬＲＵ（Ｌｅａｓｔ−Ｒｅｃｅｎｔｌｙ−Ｕｓｅｄ）キャッシュラインを決定することによって、前記第１置換候補を決定する、請求項１４記載の方法。
【請求項１８】
前記第１ミスの後に前記第１置換候補に対するヒットが発生すると、第２置換候補を特定し、前記第１置換候補をＭＲＵ（Ｍｏｓｔ−Ｒｅｃｅｎｔｌｙ−Ｕｓｅｄ）として設定するステップをさらに有する、請求項１４記載の方法。
【請求項１９】
前記第２置換候補を特定するステップは、前記第２ミスの前に行われる、請求項１８記載の方法。
【請求項２０】
第１ミスに対して第１置換候補を特定し、第２ミスに対して前記第１置換候補を削除するセット制御ロジックと、前記第１ミスの後に下位キャッシュにおける前記第１置換候補のキャッシュラインを無効にするメッセージを発行するキャッシュ制御ロジックとを有するキャッシュと、
チップセットと、
前記キャッシュと前記チップセットとを接続するシステムインターコネクトと、
前記チップセットに接続する音声入出力と、
を有するシステム。
【請求項２１】
前記セット制御ロジックは、前記第１ミスの後に前記第１置換候補に対するヒットが発生すると、第２置換候補を特定する、請求項２０記載のシステム。
【請求項２２】
前記セット制御ロジックは、前記第１置換候補のキャッシュラインを前記下位キャッシュに送信する、請求項２１記載のシステム。
【請求項２３】
前記セット制御ロジックは、置換方法により前記第１置換候補を特定する、請求項２０記載のシステム。
【請求項２４】
前記置換方法はランダム法である、請求２３記載のシステム。
【請求項２５】
前記置換方法は、ＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ−Ｆｉｒｓｔ−Ｏｕｔ）法である、請求項２３記載のシステム。
【請求項２６】
前記置換方法は、ＬＲＵ（Ｌｅａｓｔ−Ｒｅｃｅｎｔｌｙ−Ｕｓｅｄ）法である、請求項２３記載のシステム。
【請求項２７】
前記セット制御ロジックは、前記第１ミスの後に前記第１置換候補に対するヒットが発生すると、第２置換候補を特定し、前記第１置換候補をＭＲＵ（Ｍｏｓｔ−Ｒｅｃｅｎｔｌｙ−Ｕｓｅｄ）として設定する、請求項２６記載のシステム。
【請求項２８】
前記セット制御ロジックは、前記第２ミスが発生する前に前記第２置換候補を特定する、請求項２７記載のシステム。
【請求項２９】
キャッシュに対する第１ミスの後に第１置換候補を特定する手段と、
前記キャッシュに対する下位キャッシュにおける前記第１置換候補に対応するキャッシュラインを無効にする手段と、
前記キャッシュに対する第２ミスの後に、前記キャッシュから前記第１置換候補を削除する手段と、
を有する装置。
【請求項３０】
前記第１ミスの後に前記第１置換候補に対するヒットが発生すると、第２置換候補を特定する手段をさらに有する、請求項２９記載の装置。
【請求項３１】
前記ヒットに応答して、前記キャッシュラインを前記下位キャッシュに送信する手段をさらに有する、請求項３０記載の装置。
【請求項３２】
前記第１置換候補を特定する手段は、置換装置を実現する手段を有する、請求項２９記載の装置。
【請求項３３】
前記置換方法は、ランダム選択により前記第１置換候補を決定する手段を有する、請求項３２記載の装置。
【請求項３４】
前記置換方法は、ＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ−Ｆｉｒｓｔ−Ｏｕｔ）を実現することにより前記第１置換候補を決定する手段を有する、請求項３２記載の装置。
【請求項３５】
前記置換方法は、ＬＲＵ（Ｌｅａｓｔ−Ｒｅｃｅｎｔｌｙ−Ｕｓｅｄ）キャッシュラインを決定することによって、前記第１置換候補を決定する手段を有する、請求項３２記載の装置。
【請求項３６】
前記第１ミスの後に前記第１置換候補に対するヒットが発生すると、第２置換候補を特定する手段と、前記第１置換候補をＭＲＵ（Ｍｏｓｔ−Ｒｅｃｅｎｔｌｙ−Ｕｓｅｄ）として設定する手段とをさらに有する、請求項３５記載の装置。
【請求項３７】
前記第２置換候補を特定する手段は、前記第２ミスの前に該特定を実行する、請求項３６記載の装置。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
［技術分野］
本開示は、一般にキャッシュに対するミスに応答してキャッシュライン置換方法を使用するマイクロプロセッサに関し、より詳細には、統合（ｉｎｃｌｕｓｉｖｅ）キャッシュにおいてキャッシュライン置換方法を使用するマイクロプロセッサに関する。
【０００２】
［背景］
マイクロプロセッサは、メモリアクセスの遅延を低減するため、マルチレベルキャッシュ設計を利用するかもしれない。プロセッサコアに近いキャッシュレベル（レベル１（Ｌ１）キャッシュ）は、遅延の小ささに設計上の力点をおき、プロセッサコアから離れたキャッシュレベル（ラストレベルキャッシュ（ＬＬＣ））は、より大きな容量に力点をおく。存在する場合には、中間キャッシュレベルは、小さな遅延と大きな容量との間で行われるトレードオフによりパフォーマンスのため設計されるかもしれない。
【０００３】
キャッシュに対してメモリアクセス（リード又はライトなど）が行われると、要求されたメモリ位置がキャッシュ内に存在するか（キャッシュ「ヒット」）、又は存在しないか（キャッシュ「ミス」）決定される。ミスが発生した場合、要求されたラインを上位レベルのキャッシュ又はシステムメモリからロードするため、キャッシュ内に場所が生成されなければならない。キャッシュは一般に、この新たなキャッシュラインに対する場所を生成するため、既存のキャッシュラインの何れが削除（ｅｖｉｃｔ）されるべきか決定する置換方法を有している。このプロセスは、しばしば「ｖｉｃｔｉｍｉｚａｔｉｏｎ」と呼ばれるかもしれない。置換方法は、ＬＲＵ（Ｌｅａｓｔ−Ｒｅｃｅｎｔｌｙ−Ｕｓｅｄ）法、ランダム選択法、ＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ−Ｆｉｒｓｔ−Ｏｕｔ）法などの周知の方法を含むかもしれない。上記及び他の方法のそれぞれは、長所と短所を有する。
【０００４】
マルチプロセッサコアシステムにおいてキャッシュコヒーレンシを維持するため、要求されたキャッシュラインに対するスヌープ処理（ｓｎｏｏｐｉｎｇ）がしばしば実行される。マルチレベルキャッシュシステムでは、これは一般に、スヌープメッセージがラストレベルキャッシュからスタートし、Ｌ１キャッシュまでずっと下方に継続する下方伝搬される必要があることを意味する。これらのスヌープメッセージにより生じる遅延を部分的に低減するため、多数のキャッシュが統合的となるよう設計される。統合キャッシュは、下位レベルのキャッシュに存在するキャッシュラインがまた当該統合キャッシュに存在するという性質を維持する。従って、スヌープ処理は、多くの状況では、ラストレベルキャッシュに対して実行されさえすればよいかもしれない。すなわち、あるキャッシュラインがラストレベルキャッシュに存在しない場合、統合の性質により、それは何れの下位レベルのキャッシュにも存在しない。しかしながら、統合の性質は、自らパフォーマンスを低減させるアーチファクトを生じさせるかもしれない。
【０００５】
［詳細な説明］
以下の説明は、マルチレベルキャッシュにおける犠牲化（ｖｉｃｔｉｍｉｚａｔｉｏｎ）プロセスにおいて利用するための改良されたキャッシュライン置換方法のための技術を記載する。以下の説明では、ロジック実現、ソフトウェアモジュール割当て、バス及び他のインタフェース通知技術、処理の詳細などの多数の具体的詳細が、本発明のより完全な理解を提供するため与えられる。しかしながら、本発明がこのような具体的詳細なしに実現可能であるということは、当業者により理解されるであろう。他の例では、本発明を不明りょうにしないようにするため、制御構造、ゲートレベル回路及び完全なソフトウェア命令シーケンスは図示されない。含まれている記載によって、当業者は過度な実験を行うことなく、適切な機能を実現可能である。ある実施例では、本発明は、インテル（登録商標）コーポレイションによって製造されるものなどのＰｅｎｔｉｕｍ（登録商標）互換プロセッサのマルチコア実現形態に存在するキャッシュに形態により開示される。しかしながら、本発明は、Ｉｔａｎｉｕｍ（登録商標）プロセッサファミリー互換プロセッサ又はＸ−Ｓｃａｌｅ（登録商標）ファミリー互換プロセッサなどの他のタイプのプロセッサに存在するキャッシュに実現可能である。
【０００６】
図１を参照するに、一実施例によるラストレベルキャッシュ１０４を有するマルチコアプロセッサ１０２の概略図が示される。本実施例では、２つのプロセッサコアであるプロセッサコア０（１１２）とプロセッサコア１（１２２）を使用するケースが示されている。他の実施例では、単一のプロセッサコア又は３以上のプロセッサコアが使用されるかもしれない。それの名称によって、ラストレベルキャッシュ（ｌａｓｔ−ｌｅｖｅｌ  ｃａｃｈｅ）１０４は、これがプロセッサコア１１２及び１２２から最も離れ、システムメモリ１４０に最も近いキャッシュであることを一般に示している。しかしながら、いくつかの実施例では、マルチコアプロセッサ１０２とシステムメモリ１４０との間にはより高いレベルのキャッシュが存在するかもしれない。
【０００７】
ラストレベルキャッシュ１０４は、ユニタリキャッシュ（データと命令の両方）又はデータキャッシュとして構成されるかもしれない。最下位レベルのキャッシュであるレベル１（Ｌ１）データキャッシュ０（１１０）とＬ１データキャッシュ１（１２０）が、マルチコアプロセッサのキャッシュ階層のラストレベルキャッシュ１０４の直下に示される。他の実施例では、Ｌ１データキャッシュ１１０及び１２０とラストレベルキャッシュ１０４との間に構成されるレベル２（Ｌ２）キャッシュなどのさらなるキャッシュが存在するかもしれない。ラストレベルキャッシュ１０４は一般に、インタフェース１４２を介しラストレベルキャッシュ１０４とシステムメモリ１４０との間のデータ伝送を可能にするインタフェース回路を有している。各種実施例では、インタフェース１４２は、マルチドロップバス又はポイント・ツー・ポイントインタフェースであってもよい。
【０００８】
ある実施例では、ラストレベルキャッシュ１０４は、統合的であるかもしれない。統合キャッシュは、下位レベルのキャッシュに含まれるキャッシュラインがまた統合キャッシュに含まれるキャッシュである。統合の性質は、あるキャッシュラインが存在するか否か決定するため、統合キャッシュのみをスヌープしさえすればよく、下位レベルのキャッシュをスヌープする必要はないため、キャッシュコヒーレンシを保証するための簡略化されたスヌープ処理を可能にする。
【０００９】
図２を参照するに、一実施例によるキャッシュ２００の概略図が示される。キャッシュ２００は、ある実施例では、図１のラストレベルキャッシュ１０４であってもよい。他の実施例では、キャッシュ２００は、中間レベルキャッシュであってもよい。Ｎウェイセットアソシエイティブ（Ｎ−ｗａｙ  ｓｅｔ  ａｓｓｏｃｉａｔｉｖｅ）キャッシュでは、Ｍ個のセットのそれぞれが、「ウェイ」と呼ばれるキャッシュラインを保持するためのＮ個の場所を有する。システムメモリ内のあるキャッシュラインは、Ｍ個のセットの１つのみにロードされるが、当該キャッシュラインは、当該セットのＮウェイの何れにロードされてもよい。境界のケースとして、フルアソシエイティブキャッシュは、１つのみのセットを有するＮウェイセットアソシエイティブキャッシュと考えられるかもしれない。
【００１０】
図２は、ラベル付けされたセット０（２１０）〜セットＭ−１（２４０）のＭ個のセットを備えるキャッシュ２００を示す。キャッシュ２００は、外部インタフェースとインタフェースをとり、スヌープリクエストに応答し、キャッシュラインミスに応答してリクエストをシステムメモリに転送し、キャッシュラインヒットに応答してキャッシュラインを下位レベルキャッシュに転送する回路を含むキャッシュ制御ロジック２４２を含むかもしれない。セットの１つであるセット２（２１８）がより詳細に示されている。その他のセットは、同様の詳細を有するかもしれない。ウェイ０（２５０）〜ウェイＮ−１（２７２）が、セット制御ロジック２８０と共に示されている。セット制御ロジックは、一般にはキャッシュに対する「ミス」の結果として、新たなキャッシュラインがセット２に追加される必要があるとき、置換方法を特定する回路を有するかもしれない。この置換方法は、何れのウェイが新たなキャッシュラインにより上書きされるべきキャッシュラインを有するか特定する。この特定されたキャッシュラインは、「置換候補」と呼ばれるかもしれない。置換方法は、各種実施例において、ＬＲＵ（Ｌｅａｓｔ−Ｒｅｃｅｎｔｌｙ−Ｕｓｅｄ）キャッシュラインを特定することによって、置換候補をランダムに特定することによって、又はセットへのロード順により（ＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ−Ｆｉｒｓｔ−Ｏｕｔ）など）置換候補を特定することによって行われるかもしれない。これらの置換方法のすべてが、最初は無効なキャッシュラインを検索し、無効なキャッシュラインが検出されないときのみに各自の特定の方法に進むかもしれない。他の実施例では、他の置換方法が利用されるかもしれない。
【００１１】
キャッシュが統合的であることの１つのアーチファクトは、置換候補が決定され、当該キャッシュラインが削除（犠牲化）されることが許可されると、下位キャッシュに存在するすべての対応するキャッシュラインもまた無効にされるべきであるということである。これは、コストがかかるが統合性の性質を維持する。このため、下位レベルキャッシュにおいて繰り返し使用されているキャッシュラインは、ラストレベルキャッシュから頻繁にはロードされないかもしれない。ＬＲＵなどの置換方法を利用するとき、これにより、当該キャッシュラインが置換候補として選択されることになるかもしれない。現在の実践では、その置換候補は削除され、当該キャッシュラインは、下位レベルキャッシュにおいて無効にされる。このとき、下位レベルキャッシュにアクティブに使用されるキャッシュラインは、システムメモリから戻される必要があることにより、遅延ペナルティを被ることとなる。
【００１２】
従って、一実施例では、セット制御ロジックは、セットに対する各キャッシュミスに対して複数のアクションを行うかもしれない。セット制御ロジックは、以前に特定された現在の置換候補のキャッシュラインを削除するかもしれない。セット制御ロジックはまた、何れの置換方法が利用されても、以降の置換候補を特定するかもしれない。一実施例では、セット制御ロジックは、下位レベルキャッシュに対する以降の置換候補に含まれるキャッシュラインに対して、無効化メッセージを発行するかもしれない。要約すると、一実施例では、セットに対するキャッシュミスは、ラストレベルキャッシュからの現在の置換候補の削除、以降の置換候補の特定及び下位レベルキャッシュの以降の置換候補のキャッシュラインの無効化の３つのアクションを生じさせるかもしれない。
【００１３】
以降の置換候補のキャッシュラインとして下位レベルキャッシュの頻繁に使用されているキャッシュラインが無効にされる場合、当該キャッシュラインが無効化処理が実行された直後に対応するプロセッサコアにより要求される可能性がある。同一のキャッシュセットに対する２回目のミスの前に、これが発生した場合、以降の置換候補は依然としてラストレベルキャッシュにおいて利用可能である。従って、以降の置換候補に対応して、当該キャッシュラインに対してキャッシュヒットが発生する。この場合、セット制御ロジック２８０は、他の以降の置換候補を特定し、この新たな以降の置換候補のキャッシュラインを無効にし、最初の以降の置換候補のキャッシュラインを下位レベルキャッシュに送信するかもしれない。ラストレベルキャッシュの当該セットに対する２回目のミスの際には、セット制御ロジックは、その後に第２の置換候補のキャッシュラインを削除する。ｉ番目の以降の置換候補を（ｉ＋１）番目の以降の置換候補と置換する処理は、ラストレベルキャッシュの当該セットに対する２回目のミスの時点までに必要に応じて複数回実行されてもよい。
【００１４】
対応するキャッシュミスに対して置換候補の削除のタイミングをとるいくつかのやや異なる方法が存在するかもしれない。一実施例では、当該削除は、ミスが発生したという決定がなされる時点において（又はその直後に）行われてもよい。他の実施例では、当該削除は、キャッシュのフィルバッファが上位レベルキャッシュ又はシステムメモリからアクセスされたキャッシュラインを受け付ける時点まで保留されてもよい。
【００１５】
図３を参照するに、一実施例によるキャッシュシステムのイベントのタイミング図が示される。図３の実施例は、ＬＲＵ置換方法が利用されていることを示しているが、他の実施例では、他の置換方法の何れも利用可能である。時点Ｔ０において、ラストレベルキャッシュのセットＸに対してミスが発生する。従って、時点Ｔ０においてＬＲＵを有するウェイが、以降の置換候補として選択され、当該ウェイのキャッシュラインが、下位レベルキャッシュにおいて無効にされる。
【００１６】
時点Ｔ１において、セットＸに対する他のミスが発生し、これにより、時点Ｔ０においてＬＲＵを有するウェイである以降の置換候補がラストレベルキャッシュから削除される。同時に、新たな以降の置換候補が選択され（時点Ｔ１においてＬＲＵを有するウェイ）、この新たな以降の置換候補に対応するキャッシュラインが、下位レベルキャッシュにおいて無効にされる。しかしながら、この新たな以降の置換候補に対応するキャッシュラインは、ラストレベルキャッシュに存在したままである。
【００１７】
時点Ｔ２において、当該以降の置換候補（ラストレベルキャッシュに依然として存在する）に対するヒットが発生する。さらなる他の新たな以降の置換候補が選択され（時点Ｔ２におけるＬＲＵを有するウェイ）、この新たな以降の置換候補に対応するキャッシュラインが下位レベルキャッシュにおいて無効にされ、ヒットにより要求されたキャッシュラインが、下位レベルキャッシュに送信される。時点Ｔ１におけるＬＲＵを有したよる古い以降の置換候補が、その後に時点Ｔ２におけるＭＲＵ（Ｍｏｓｔ−Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）として置換方法トラッキングによりタグ付けされる。再び、この新たな以降の置換候補に対応するキャッシュラインが、ラストレベルキャッシュに存在し続けることとなる。
【００１８】
時点Ｔ３において、この以降の置換候補に対するヒットが発生する（ラストレベルキャッシュに依然として存在する）。さらなる他の新たな以降の置換候補が選択され（時点Ｔ３におけるＬＲＵを有するウェイ）、この新たな以降の置換候補に対応するキャッシュラインが、下位レベルキャッシュにおいて無効にされ、ヒットにより要求されたキャッシュラインが下位レベルキャッシュに送信される。時点Ｔ２におけるＬＲＵを有した古い以降の置換候補が、その後に時点Ｔ３におけるＭＲＵとして置換方法トラッキングにおいてタグ付けされる。再び、この新たな以降の置換候補に対応するキャッシュラインが、ラストレベルキャッシュに存在し続ける。
【００１９】
時点Ｔ４において、セットＸに対する他のミスが発生する。これにより、時点Ｔ３におけるＬＲＵを有した保留中の以降の置換候補がラストレベルキャッシュから削除される。同時に、新たな以降の置換候補が選択され（時点Ｔ４におけるＬＲＵを有するウェイ）、この新たな以降の置換候補に対応するキャッシュラインが、下位レベルキャッシュにおいて無効にされる。
【００２０】
本例では、セットＸに対する次のミスが時点Ｔ５において発生するまで、以降の置換候補に対してヒットは発生しない。これにより、時点Ｔ４におけるＬＲＵを有するウェイである保留中の以降の置換候補が、ラストレベルキャッシュから削除される。同時に、新たな以降の置換候補が選択され（時点Ｔ５におけるＬＲＵを有するウェイ）、この新たな以降の置換候補に対応するキャッシュラインが、下位レベルキャッシュにおいて無効にされる。
【００２１】
図３の例は時点Ｔ１とＴ４におけるラスとれレベルキャッシュのミスの間の置換候補に対する２つのヒットを示したが、本実施例により提供されるヒット数に対する制限はない。
【００２２】
図４を参照するに、本開示の一実施例による置換候補を選択する方法のフローチャート図が示される。図４の実施例は、Ｌ１キャッシュとラストレベルキャッシュの存在を前提としている。他の実施例では、ラストレベルキャッシュより下位のさらなるキャッシュレベルが、存在するかもしれない。当該プロセスはブロック４１０において開始される。ラストレベルキャッシュに対する最初のミスへのサービスを提供すると、ブロック４１２において、置換候補が置換方法により選択され、Ｌ１キャッシュの対応するキャッシュラインが無効にされる。置換方法がＬＲＵである場合、置換候補はラストレベルキャッシュのＬＲＵの現在値となる。
【００２３】
ブロック４１４において、メモリ処理が実行される。Ｌ１キャッシュルックアップがブロック４１８において行われ、判定ブロック４２０において、Ｌ１キャッシュに対するヒットが発生しているか判断される。そうである場合、本プロセスはＹＥＳパスを介して抜け出し、ブロック４４０において、Ｌ１キャッシュの置換方法の状態が更新され、要求されたキャッシュラインのデータが、プロセッサコアに返される。置換方法がＬＲＵである場合、置換方法の状態の更新は、Ｌ１キャッシュのＬＲＵの現在値を更新することである。当該プロセスは、その後、ブロック４１４に戻る。
【００２４】
判定ブロック４２０において、ヒットが発生しないと判断される場合、本プロセスは、ＮＯパスを介し抜け出し、ブロック４２２において、ラストレベルキャッシュルックアップが行われる。そうである場合、本プロセスはＹＥＳパスを介し抜け出し、ブロック４３６において、ラストレベルキャッシュに対する置換方法の状態が更新される。置換方法がＬＲＵである場合、置換方法の状態の更新は、ラストレベルキャッシュのＬＲＵの現在値を更新することである。その後、判定ブロック４５０において、置換候補に対してヒットがあったか判断される。なかった場合、本プロセスはＮＯパスを介し抜け出し、ブロック４５２において、要求されたキャッシュラインに対するデータがＬ１キャッシュ及びプロセッサコアに返される。しかしながら、置換候補に対してヒットがあった場合、本プロセスはＹＥＳパスを介し判定ブロック４５０から抜け出す。ブロック４５６において、新たな置換候補が選択され、対応するキャッシュラインがＬ１キャッシュにおいて無効にされる。置換方法がＬＲＵである場合、置換候補は、ラストレベルキャッシュの次のＬＲＵとなるキャッシュラインの現在値となる。その後、ブロック４５２において、要求されたキャッシュラインに対するデータがＬ１キャッシュ及びプロセッサコアに返される。置換方法がＬＲＵである場合、置換方法の状態の更新は、ラストレベルキャッシュの次のＬＲＵとなるキャッシュラインの現在値をＬＲＵのものにすることである。その後、本プロセスは、ブロック４１４において再びスタートを繰り返す。
【００２５】
しかしながら、判定ブロック４２８において、ラストレベルキャッシュにヒットが発生しない場合、本プロセスはＮＯパスを介し判定ブロック４２８を抜け出す。その後、ブロック４３４において、複数のアクションが実行されるかもしれない。置換候補のキャッシュラインは、ラストレベルキャッシュのフィルバッファに出現する要求されたキャッシュラインのために削除される。新たな置換候補が選択され、対応するキャッシュラインがＬ１キャッシュにおいて無効にされる。置換方法がＬＲＵである場合、置換候補は、ラストレベルキャッシュの次のＬＲＵであるキャッシュラインの現在値となる。本プロセスはブロック４１４においてスタートを再び繰り返すかもしれない。
【００２６】
図４に示される処理では、ブロック４３０において説明されるラストレベルキャッシュのミスに対するサービスの提供は、システムメモリからのキャッシュラインに対するリクエストを開始する。これは、破線のブロック４３４において示される。置換のキャッシュラインの削除は、当該要求の開始時（直後）に行われてもよい（図４の実施例では）。他の実施例では、置換候補のキャッシュラインの削除は、キャッシュライン（ミスに対応する）がメモリからラストレベルキャッシュのフィルバッファに到着するまで遅延されるかもしれない。
【００２７】
図５Ａ及び５Ｂを参照するに、本開示の２つの実施例によるマルチコア及びスロットルを備えたプロセッサを有するシステムの概略図が示される。図５Ａのシステムは、一般にプロセッサ、メモリ及び入出力装置がシステムバスに相互接続されるシステムを示し、図５Ｂのシステムは、一般にプロセッサ、メモリ及び入出力装置がいくつかのポイント・ツー・ポイントインタフェースにより相互接続されるシステムを示す。
【００２８】
図５Ａのシステムは、複数のプロセッサを有することが可能であるが、簡単化のため、そのうちの２つのプロセッサ４０及び６０のみが示されている。プロセッサ４０と６０は、ラストレベルキャッシュ４２と６２を有するかもしれない。図５Ａのシステムは、バスインタフェース４４、６４、１２及び８を介しシステムバス６と接続される複数の機能を有しているかもしれない。一実施例では、システムバス６は、インテル（登録商標）コーポレイションにより製造されているＰｅｎｔｉｕｍ（登録商標）クラスマイクロプロセッサにより利用されるフロントサイドバス（ＦＳＢ）であってもよい。他の実施例では、他のバスが使用されるかもしれない。いくつかの実施例では、メモリコントローラ３４とバスブリッジ３２はまとめてチップセットと呼ばれるかもしれない。いくつかの実施例では、チップセットの機能は、図５Ａの実施例に示されるものと異なる物理チップに分割されても良い。
【００２９】
メモリコントローラ３４は、プロセッサ４０及び６０がシステムメモリ１０とＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）３６に対して読み書きすることを許可する。いくつかの実施例では、ＢＩＯＳ  ＥＰＲＯＭ３６は、フラッシュメモリを利用するかもしれない。メモリコントローラ３４は、システムバス６を介しバスエージェントに対してメモリリード及びライトデータを搬送することを許可するバスインタフェース８を有するかもしれない。メモリコントローラ３４はまた、ハイパフォーマンスグラフィックスインタフェース３９を介しハイパフォーマンスグラフィックス回路３８と接続するかもしれない。ある実施例では、ハイパフォーマンスグラフィックスインタフェース３９は、アドバンスドグラフィックスポートＡＧＰインタフェースであってもよい。メモリコントローラ３４は、ハイパフォーマンスグラフィックスインタフェース３９を介しシステムメモリ１０からハイパフォーマンスグラフィックス回路３８にデータを誘導するかもしれない。
【００３０】
図５Ｂのシステムはまた、複数のプロセッサを有することが可能であるが、簡単化のため、そのうちの２つのプロセッサ７０及び８０のみが示されている。プロセッサ７０と８０はそれぞれ、メモリ２及び４と接続するためのローカルメモリコントローラハブ（ＭＣＨ）７２と８２を有するかもしれない。プロセッサ７０と８０はまた、ラストレベルキャッシュ５６と５８を有するかもしれない。プロセッサ７０と８０は、ポイント・ツー・ポイントインタフェース回路７８と８８を用いてポイント・ツー・ポイントインタフェース５０を介しデータをやりとりするかもしれない。プロセッサ７０と８０はそれぞれ、ポイント・ツー・ポイントインタフェース回路７６、９４、８６及び９８を利用して、各ポイント・ツー・ポイントインタフェース５２と５４を介しチップセット９０とデータを交換してもよい。チップセット９０はまた、ハイパフォーマンスグラフィックスインタフェース９２を介しハイパフォーマンスグラフィックス回路３８とデータをやりとりしてもよい。
【００３１】
図５Ａのシステムでは、バスブリッジ３２は、いくつかの実施例ではＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス又はＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスであるかもしれないバス１６とシステムバス６との間のデータ交換を可能にするかもしれない。図５Ｂのシステムでは、チップセット９０は、バスインタフェース９６を介しバス１６とデータをやりとりするかもしれない。何れかのシステムでは、いくつかの実施例では、ローパフォーマンスグラフィックスコントローラ、ビデオコントローラ及びネットワーキングコントローラを含む各種入出力（Ｉ／Ｏ）装置１４がバス１６上に存在するかもしれない。他のバスブリッジ１８は、いくつかの実施例では、バス１６とバス２０との間のデータ交換を可能にするため利用されるかもしれない。バス２０は、いくつかの実施例では、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）バス、ＩＤＥ（Ｉｎｔｅｇｒａｔｅｄ  Ｄｒｉｖｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）バス、又はＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）バスであってもよい。追加的なＩ／Ｏ装置がバス２０に接続されてもよい。これらは、マウスを含むキーボード及びカーソル制御装置２２と、音声Ｉ／Ｏ２４と、モデム及びネットワークインタフェースを含む通信装置２６と、データ記憶装置２８とを含むかもしれない。ソフトウェアコード３０が、データ記憶装置２８に格納されてもよい。いくつかの実施例では、データ記憶装置２８は、固定式磁気ディスク、フロッピー（登録商標）ディスクドライブ、光ディスクドライブ、光磁気ディスクドライブ、磁気テープ又はフラッシュメモリを含む不揮発性メモリであってもよい。
【００３２】
本明細書において、本発明がそれの具体的実施例を参照して説明された。しかしながら、添付された請求項に与えられるより広範な趣旨及び範囲から逸脱することなく、様々な改良及び変更が可能であるということは明らかであろう。明細書及び図面は、限定的でなく例示的なものとしてみなされる。
【図面の簡単な説明】
【００３３】
【図１】図１は、一実施例によるラストレベルキャッシュを含むマルチコアプロセッサの概略図である。
【図２】図２は、一実施例によるキャッシュの概略図である。
【図３】図３は、一実施例によるキャッシュシステムにおけるイベントのタイミング図である。
【図４】図４は、本開示の一実施例による置換候補を選択するための方法のフローチャートである。
【図５Ａ】図５Ａは、本発明の一実施例によるキャッシュを備えたプロセッサを含むシステムの概略図である。
【図５Ｂ】図５Ｂは、本発明の一実施例によるキャッシュを備えたプロセッサを含むシステムの概略図である。
【図１】
2008513907.tif 000003
【図２】
2008513907.tif 000004
【図３】
2008513907.tif 000005
【図４】
2008513907.tif 000006
【図５Ａ】
2008513907.tif 000007
【図５Ｂ】
2008513907.tif 000008
【国際調査報告】
2008513907.tif 000009
2008513907.tif 000010