(57)【特許請求の範囲】
【請求項１】
第１及び第２のキャッシュを制御するための方法であって、
前記第１のキャッシュにおいてキャッシュエントリを受け取ることと、
受け取ったキャッシュエントリがプリフェッチメモリアクセスに関連するものであることに応じて、前記受け取ったキャッシュエントリを手付かずに係る状態を有するものとして識別することと、
前記キャッシュエントリの前記手付かずに係る状態を、前記キャッシュエントリの少なくとも一部に対する要求を受け取ることに応答して、アクセスに係るものへと更新することと、
予め選択されたキャッシュライン交換アルゴリズムに従って前記キャッシュエントリを追い出すことと、
追い出されたキャッシュエントリの前記第２のキャッシュにおける記憶を、前記追い出されたキャッシュエントリの状態が手付かずに係るものであるかアクセスに係るものであるかに従って制御することと、を備える方法。
【請求項２】
前記追い出されたキャッシュエントリの記憶を制御することは、アクセスに係る状態を有する前記追い出されたキャッシュエントリに応答して前記第２のキャッシュ内に前記追い出されたキャッシュエントリを記憶することを更に備える請求項１に記載の方法。
【請求項３】
前記追い出されたキャッシュエントリの記憶を制御することは、手付かずに係る状態を有する前記追い出されたキャッシュエントリに応答して前記追い出されたキャッシュエントリが前記第２のキャッシュ内に記憶されるのを阻むことを更に備える請求項１に記載の方法。
【請求項４】
前記追い出されたキャッシュエントリの記憶を制御することは、前記追い出されたキャッシュエントリを前記第２のキャッシュ内に記憶することと、手付かずに係る状態を有する前記追い出されたキャッシュエントリに応答して前記追い出されたキャッシュエントリを前記第２のキャッシュ内の最長未使用エントリであるとして識別することと、を更に備える請求項１に記載の方法。
【請求項５】
コアと、
第１レベルキャッシュと、
第２レベルキャッシュと、
受け取ったキャッシュエントリがプリフェッチメモリアクセスに関連するものであることに応じて、前記受け取ったキャッシュエントリを手付かずに係る状態を有するものとして識別することと、前記キャッシュエントリの状態を、前記キャッシュエントリの少なくとも一部に対する要求を前記コアから受け取ることに応答して、アクセスに係るものへと更新することと、予め選択されたキャッシュライン交換アルゴリズムに従って前記キャッシュエントリを追い出すことと、のために適合させられる第１レベルキャッシュ制御器と、
追い出されたキャッシュエントリの前記第２のキャッシュにおける記憶を、前記追い出されたキャッシュエントリの状態が手付かずに係るものであるかアクセスに係るものであるかに従って制御するための第２レベルキャッシュ制御器と、を備えるマイクロプロセッサ。
【請求項６】
前記第２レベルキャッシュ制御器は、アクセスに係る状態を有する前記追い出されたキャッシュエントリに応答して前記第２のキャッシュ内に前記追い出されたキャッシュエントリを記憶することにより前記追い出されたキャッシュエントリの記憶を制御する請求項５に記載のマイクロプロセッサ。
【請求項７】
前記第２レベルキャッシュ制御器は、手付かずに係る状態を有する前記追い出されたキャッシュエントリに応答して前記追い出されたキャッシュエントリが前記第２のキャッシュ内に記憶されるのを阻むことにより前記追い出されたキャッシュエントリの記憶を制御する請求項５に記載のマイクロプロセッサ。
【請求項８】
前記第２レベルキャッシュ制御器は、前記追い出されたキャッシュエントリを前記第２のキャッシュ内に記憶することと、手付かずに係る状態を有する前記追い出されたキャッシュエントリに応答して前記追い出されたキャッシュエントリを前記第２のキャッシュ内の最長未使用エントリであるとして識別することと、により前記追い出されたキャッシュエントリの記憶を制御する請求項５に記載のマイクロプロセッサ。
【請求項９】
前記第１レベルキャッシュ制御器は、前記第１レベルキャッシュから追い出されるキャッシュエントリに応答して前記追い出されたキャッシュエントリの状態を前記第２レベルキャッシュ制御器へデリバーするように適合させられる請求項５に記載のマイクロプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
開示される主題は概してキャッシュメモリシステムに関し、より特定的には無駄なキャッシュプリフェッチング(wasted cache prefetching)に関連するパフォーマンスヒット(performance hit)を低減する多重レベルキャッシュメモリシステムに関する。
【背景技術】
【０００２】
最新のマイクロプロセッサは、プログラムが記憶されるメモリよりも高速である。即ち、マイクロプロセッサは、メモリから命令がリトリーブされ(retrieved)得る速度よりも速い速度で命令を実行することができ、従ってプログラムの命令は、マイクロプロセッサを動作状態に維持するのに十分速くは読み出すことができない。
【０００３】
命令が実際にマイクロプロセッサによって必要とされるよりも前に命令をプリフェッチすることは、相対的に遅いメモリの応答を克服するため、及びプロセッサがそのかなり高い速度で動作することを可能にするために有用なメカニズムである。命令がメモリからプリフェッチされると、命令はキャッシュ内に置かれ、そこでは命令はプロセッサが当該特定の命令を実行する用意が整っている場合に極めて迅速にアクセスされ得る。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
プリフェッチングに伴う１つの問題は、ソフトウェアプログラムが常にそれらが記憶された順序で実行されるとは限らないことである。実際、ソフトウェアプログラムをプログラム内の別のロケーションへと分岐させ又はジャンプさせる多くの命令が存在する。従って、プログラムがいつ別のロケーションへと分岐し又はジャンプすることになるのかを正確に予測することは、プリフェッチングの品質、及びその結果としてプロセッサがソフトウェアプログラムを実行し得る速度に大きく影響し得る。プロセッサのより連続的で迅速な動作を可能にするように予測を一応は強化する多くのメカニズムが提案されてきている。しかし、これらの予測は少なくとも共通の一点を有しており、即ちそれらは少なくとも時々は間違いであり、そしてプロセッサによって使用されない命令がプリフェッチされるということである。つまり、プリフェッチアルゴリズムは幾つかの応用に対しては有用であるが、他に対しては有効でないことが分かるであろう。プログラムの実行の間、プリフェッチされたコード又はデータが無矛盾で且つ正確にアクセスされないと、プリフェッチャ(prefetcher)は実際上プロセッサの性能を損なうことがある。
【０００５】
「浪費に係る(wasted)」プリフェッチは、予想される単一又は複数の命令でキャッシュを満たすメモリアクセスであって、アクセスされる前にキャッシュからエージアウトする(ages out of the cache)メモリアクセスである。浪費に係るプリフェッチは、システム及びメモリの帯域を消費し、またプロセッサコアのプライベートキャッシュや共有チップ多重プロセッサ（ＣＭＰ）キャッシュを汚染する。
【０００６】
最新のプリフェッチャは、高比率の浪費に係るプリフェッチを伴って高速でコード及びデータをプリフェッチするという点において、極めて積極的(aggressive)であり得る。
【課題を解決するための手段】
【０００７】
開示される主題の幾つかの態様の基本的な理解を提供するために、開示される主題の簡略化された概要を以下に提示する。この概要は開示される主題の包括的な概説である。開示される主題の鍵となる若しくは臨界的な要素を特定すること又は開示される主題の範囲を表すことは意図されていない。その唯一の目的は、後で議論される更に詳細な説明への序として、幾つかの概念を単純化された形態で提示することである。
【０００８】
開示される主題の１つの態様は、第１及び第２のキャッシュを制御するための方法において理解される。この方法は、第１のキャッシュにおいてキャッシュエントリを受け取ることと、そのキャッシュエントリを手付かずに係る状態(untouched status)を有するものとして識別することと、を備える。キャッシュエントリの状態は、キャッシュエントリの少なくとも一部に対する要求を受け取ることに応答して更新される。キャッシュエントリは、予め選択されたキャッシュライン交換アルゴリズムに従って追い出され(cast out)、そして追い出されたキャッシュエントリは、追い出されたキャッシュエントリの状態に従ってより低レベルな第２のキャッシュ内に記憶される。
【０００９】
開示される主題の別の態様は、メモリシステムにおいて理解される。このメモリシステムは、第１レベルキャッシュ、第１レベルキャッシュ制御器、第２レベルキャッシュ及び第２レベルキャッシュ制御器を備える。第１レベルキャッシュ制御器は、受け取ったキャッシュエントリを手付かずに係る状態を有するものとして識別することと、キャッシュエントリの状態を、キャッシュエントリの少なくとも一部に対する要求を受け取ることに応答して、アクセスに係るものへと更新することと、予め選択されたキャッシュライン交換アルゴリズムに従ってキャッシュエントリを追い出すことと、のために適合させられる。第２レベルキャッシュ制御器は、追い出されたキャッシュエントリの第２のキャッシュにおける記憶を、追い出されたキャッシュエントリの状態に従って制御することのために適合させられる。
【００１０】
開示される主題の別の態様は、マイクロプロセッサにおいて理解される。このマイクロプロセッサは、コア、第１レベルキャッシュ、第１レベルキャッシュ制御器、第２レベルキャッシュ及び第２レベルキャッシュ制御器を備える。第１レベルキャッシュ制御器は、受け取ったキャッシュエントリを手付かずに係る状態を有するものとして識別することと、キャッシュエントリの状態を、キャッシュエントリの少なくとも一部に対する要求を受け取ることに応答して更新することと、予め選択されたキャッシュライン交換アルゴリズムに従ってキャッシュエントリを追い出すことと、のために適合させられる。第２レベルキャッシュ制御器は、追い出されたキャッシュエントリの第２のキャッシュにおける記憶を、追い出されたキャッシュエントリの状態に従って制御することのために適合させられる。
【図面の簡単な説明】
【００１１】
開示される主題は添付の図面を参照して以下に説明され、図面において同様の参照番号は同様の要素を表す。
【００１２】
【図１】図１は複数のコアを複数の非共有Ｌ２キャッシュ及び１つの共有Ｌ３キャッシュと共に有するマイクロプロセッサのブロックレベル図である。
【図２】図２はコアの１つとＬ２キャッシュの１つと図１のマイクロプロセッサの一部であるプリフェッチャとの間の関係を示す単純化されたブロック図である。
【図３】図３は図１のマイクロプロセッサに関連するキャッシュにおけるキャッシュラインエントリの文体的表現である。
【図４】図４は図１のマイクロプロセッサに関連するＬ２キャッシュの動作を示すフローチャートの文体的表現である。
【図５】図５は図１のマイクロプロセッサに関連するＬ３キャッシュの動作を示すフローチャートの文体的表現である。
【図６】図６は図１のマイクロプロセッサに関連するＬ３キャッシュの動作を示すフローチャートの代替的実施形態の文体的表現である。
【００１３】
開示される主題は種々の修正及び代替的形態を許容する一方で、その具体的な実施形態が図面において例として示され、またここに詳細に説明されることになる。但し、具体的な実施形態のここでの説明は、開示される主題を開示される特定の形態に限定することを意図されておらず、むしろそれとは逆に、添付の特許請求の範囲によって画定される開示される主題の精神及び範囲内にある全ての修正、均等なもの及び代替案を網羅することが意図されている。
【発明を実施するための形態】
【００１４】
開示される主題の１つ以上の具体的な実施形態が以下に説明される。開示される主題は、ここに含まれる実施形態及び図示に限定されるものではなく、むしろ特許請求の範囲内にある実施形態の一部や異なる実施形態の要素の組み合わせを含む実施形態の修正された形態を含むことが具体的に意図されている。任意のそのような実際の実装の開発においては、任意のエンジニアリング又は設計プロジェクトにおいて見られるように、システム関連及びビジネス関連の制約の遵守等の実装毎に変わり得る開発者の具体的な目標を達成するために、種々の実装固有の決定がなされ得ることが理解されるべきである。また、そのような開発努力は得てして複雑で且つ時間を費やすものであるが、この開示の利益を享受する当業者にとっては設計、製造及び製品化のルーチン的な業務であろうことが理解されるべきである。明示的に「臨界的」又は「本質的」であるものとして示されている場合を除き、本出願のいずれの内容も、開示される主題に対して臨界的又は本質的であると考えられることはない。
【００１５】
次に添付の図面を参照して、開示される主題を説明する。説明のみを目的とし且つ開示される主題を当業者にとって周知である詳細で不明瞭にすることのないように、種々の構造、システム及びデバイスが図面に模式的に示されている。にもかかわらず、添付の図面は、開示される主題の例証的な例を記載し且つ説明するために含まれている。ここで用いられる語句は、関連分野を含めた当業者によるそれらの語句の理解と一致する意味を有するものして理解され且つ解釈されるべきである。ある用語又は句の特別の定義、即ち当業者によって理解される通常の且つ慣例的な意味とは異なる定義は、ここでのその用語又は句の一貫した使用によって暗示されることが意図されるわけではない。ある用語又は句が特別な意味、即ち当業者によって理解される以外の意味を有することが意図される限りにおいて、そのような特別な定義は、その用語又は句に対するその特別な定義を直接的且つ明白に提供する定義的な方法において明細書内に明示的に記載されることになる。
【００１６】
次に、種々の図面を通して同様の参照番号が類似の要素に対応する図面を参照すると、特に図１を参照すると、外部メモリ１０５に結合されるマイクロプロセッサ１００との関連において、開示される主題が説明されることになる。当業者であれば、これらの要素及び他の要素からコンピュータシステムが構成され得ることを認識するはずである。しかし、本発明を不明瞭にすることを避けるために、本発明の理解に有用である要素のみが含まれている。
【００１７】
図１は複数のコア１０６〜１１１からなる典型的な多重プロセッサシステムのためのメモリ階層を示している。各コアは専用のプライベートＬ２プロセッサキャッシュ１１２〜１１７を有している。当業者であれば、図示される実施形態が６個のコア１０６〜１１１及び６個のＬ２キャッシュ１１２〜１１７を有するものとして示されている一方で、本発明の精神及び範囲から逸脱することなしに、より多くの又はより少ないコア及びキャッシュが用いられてよいことを理解するはずである。
【００１８】
図示される例示的な実施形態においては、Ｌ３キャッシュ１２０がシステム要求インタフェース(System Request Interface)１２５を介して全てのプロセッサコア１０６〜１１１によって共有される。図示される実施形態においては、Ｌ３キャッシュは最終レベルキャッシュ(Last Level Cache)（ＬＬＣ）であるが、当業者であれば、本発明の精神及び範囲から逸脱することなしに、追加的なレベルのキャッシュが用いられてよいことを理解するはずである。
【００１９】
コア１０６〜１１１の各々は、その対応するＬ２キャッシュ１１２〜１１７内にソフトウエア又は実行可能なコード及びデータのライン(executable code and data lines)を記憶する能力を有する。各プロセッサコア１０６〜１１１に付随するプリフェッチャユニット２００（図２参照）も同様に、コア１０６〜１１１による実行のために実際に必要になる前に転送バー(transfer bar)（ＸＢＡＲ）１３０を介して外部メモリ１０５からデータ及びコードをリトリーブする(retrieve)と共にプリフェッチされたコード及びデータをＬ２キャッシュ１１２〜１１７内に記憶する能力を有する。どのコード及びデータがメモリ１０５からプリフェッチされるべきかを決定するために種々の周知の方法が用いられてよいが、当業者であれば、本発明の精神及び範囲から逸脱することなしに、任意のプリフェッチ方法が用いられてよいことを理解するはずである。
【００２０】
Ｌ２キャッシュの効率的な動作を確実にするためには、近い将来コア１０６〜１１１により使用される可能性が最も高いデータ及びコードでＬ２キャッシュを満たしておくことが一般的には望ましい。１つのそのような方法は、予め選択されたアクセスされていない時間の間データ又はコードがキャッシュ内に記憶されていた時点でキャッシュ内に記憶されているデータ又はコードを交換すること(replacing)を伴う。このプロセスは一般に「エージングアウト(aging out)」として知られる。Ｌ２キャッシュ１１２〜１１７内のあるラインがエージアウトする(ages out)と、そのラインは取り除かれ、即ちトランザクションの一部としてＬ２キャッシュ１１２〜１１７から「追い出される(cast out)」。追い出されたラインは「犠牲(victim)」ラインと称されることがあり、それらは追い出されるときに通常全部は廃棄されず、多くの場合に本実施形態におけるＬ３キャッシュ１２０等の次のレベルのキャッシュ内にインストールされる。
【００２１】
プロセッサからのメモリアクセスは概して２種類に分けられ、即ち、プログラムの実行に起因するもの（デマンドアクセス）とプリフェッチャにより生成されるもの（プリフェッチ）とである。本装置の１つの実施形態においては、メモリのラインがプロセッサキャッシュ内に最初にインストールされるときに、プリフェッチとデマンドアクセスの間での区別がなされる。例えば、メモリのプリフェッチされたラインは、「手付かずに係る(untouched)」属性、状態又はフラグと共にＬ２キャッシュ１１２〜１１７内にインストールされる。ここで用いられる手付かずに係る属性、状態又はフラグの語句は、キャッシュブロック又はライン等のメモリの一部がプリフェッチされたが、プロセッサコア１０６〜１１１のいずれによっても未だアクセスされておらず又は手を付けられていないことの表示を意味することが意図されている。プロセッサコア１０６〜１１１が次いでＬ２キャッシュ１１２〜１１７内のラインにアクセスすると、手付かずに係る属性はクリアされ、このことは、ラインがプロセッサコア１０６〜１１１によってアクセスされたことを示す。しかし、ラインがＬ２キャッシュ１１２〜１１７でエージアウトすると、Ｌ２キャッシュ１１２〜１１７から追い出されつつある犠牲ラインと共に、手付かずに係る属性がＳＲＩ１２５を介してエクスポートされ又はデリバーされる。手付かずに係る属性は、Ｌ３キャッシュ１２０内のキャッシュ汚染(cache pollution)を回避するようにＬ３キャッシュ１２０によって使用されるインストールポリシーを制御するために用いられ得る。例えば、セットされた手付かずに係る属性を有する犠牲ラインは、Ｌ３キャッシュ１２０内には全くインストールされないことがあり、あるいはそれらは、最長時間未使用(Last Recently Used)（ＬＲＵ）スロットとして識別されたＬ３キャッシュ１２０内のロケーション内にインストールされてよい。図示される実施形態においては、ＬＲＵスロットは、Ｌ３キャッシュに対する後続の記憶動作に応答してＬ３キャッシュから追い出されるべき次のキャッシュラインである。この実施形態においては、Ｌ２キャッシュ１１２〜１１７から廃棄されたキャッシュラインは、廃棄されたＬ２キャッシュライン内にあるメモリロケーションにアクセスすることをコア１０６〜１１１が決定する場合には、Ｌ３キャッシュ１２０内に少なくとも一時的に保持される。
【００２２】
図３に示されるように、Ｌ２キャッシュ１１２〜１１７内の各ライン３００は、典型的には、アドレス（ＡＤＤＲ）タグ３０５、アクセス状態フィールド３１０、ＬＲＵフィールド３１５及びデータ３２０を含む。随意的には、ＥＣＣコード３２５及び他の属性３３０を含んでいてよい。手付かずに係る属性３３５は、Ｌ２キャッシュ１１２〜１１７内の種々のロケーション内に記憶され得る。例えば、手付かずに係る属性３３５は、図３に示されるようにスタンドアローン属性として記憶され得るし、あるいはアクセス状態フィールド３１０内で符号化されてよい。
【００２３】
従来のマイクロプロセッサの動作の間、コードがプリフェッチされ且つキャッシュ内へと記憶される場合、その状態フィールドは典型的には共有（Ｓ）状態(Share (S) state)として識別される。本発明の１つの実施形態においては、共有状態は、２つの状態、即ち１）アクセスに係る共有(Share Accessed)（Ｓ．Ａｃｃｅｓｓｅｄ）と２）手付かずに係る共有(Share Untouched)（Ｓ．Ｕｎｔｏｕｃｈｅｄ）とに置き換えられ得る。従って、本発明の１つの実施形態の動作の間、コードがプリフェッチされ且つキャッシュ１１２〜１１７内へと記憶されるときに、プリフェッチされたキャッシュラインのアクセス状態フィールド３１０は、キャッシュラインが未だコア１０６〜１１１によってアクセスされていないことを示すＳ．Ｕｎｔｏｕｃｈｅｄとしてセットされてよい。続いて、図４のフローチャートに示されるように、コア１０６〜１１１がコードを実行するに際して、そのコアはブロック４０５で特定のメモリアドレスに対するＬ２キャッシュ１１２〜１１７へと要求を送ることになる。当該メモリアドレスがＬ２キャッシュ１１２〜１１７内へと既にプリフェッチされている場合には、Ｌ２キャッシュ１１２〜１１７は、ブロック４１０において、プリフェッチされたキャッシュラインへの「ヒット(hit)」をＡＤＤＲフィールド３０５に基づき検出することになる。ブロック４１２では、Ｌ２キャッシュにおける「ミス(miss)」がＬ３キャッシュ１２０へとデリバーされて、Ｌ３キャッシュ１２０は、要求されたメモリアドレスがＬ３キャッシュ１２０内に存在するかどうかを決定する。Ｌ２キャッシュ１１２〜１１７におけるヒットの場合には、ブロック４１５において、Ｌ２キャッシュ１１２〜１１７はアクセス状態フィールド３１０を調べ、そしてキャッシュラインがＳ．Ｕｎｔｏｕｃｈｅｄとして識別されている場合には、キャッシュラインがコア１０６〜１１１へ送られると共にＬ２キャッシュ１１２〜１１７内のキャッシュラインが更新されて、アクセス状態フィールド３１０は、それが既にコア１０６〜１１１によってアクセスされたことを示すＳ．Ａｃｃｅｓｓｅｄ状態を含むことになる。あるいはキャッシュラインがＳ．Ａｃｃｅｓｓｅｄとして識別される場合には、ブロック４２５において、キャッシュラインがコア１０６〜１１１へ送られると共に、Ｌ２キャッシュ１１２〜１１７内のキャッシュラインは、その状態が既に前もってＳ．Ａｃｃｅｓｓｅｄにセットされているので、更新されない。
【００２４】
図５はコードのラインがエージアウトした追い出し動作の間にＬ２キャッシュ１１２〜１１７からコードのラインを受け取ることに応答するＬ３キャッシュ１２０の動作のフローチャート表示を示している。本発明の１つの実施形態においては、Ｌ３キャッシュ１２０は、２種類の関連する追い出しをＬ２キャッシュ１１２〜１１７から受け取ることができる。即ち、Ｌ３キャッシュ１２０は、アクセス状態フィールド３１０がＳ．Ａｃｃｅｓｓｅｄ又はＳ．Ｕｎｔｏｕｃｈｅｄのいずれにセットされているかに応じて、異なって応答するように構成されていてよい。プロセスは、追い出されたキャッシュライン３００のアクセス状態フィールド３１０をＬ３キャッシュ１２０が調べる決定ブロック５０５で始まる。アクセス状態フィールド３１０がＳ．Ｕｎｔｏｕｃｈｅｄにセットされている場合には、制御はブロック５１０に渡され、ここでは追い出されたキャッシュライン３００がコア１０６〜１１１によってアクセスされなかったことをＬ３キャッシュ１２０が認識する。従って、図示される実施形態においては、手付かずに係る追い出されたキャッシュライン３００は、ブロック５１０で廃棄され且つＬ３キャッシュ１２０内には記憶されない。
【００２５】
一方、追い出されたキャッシュライン３００のアクセス状態フィールド３１０がＳ．Ａｃｃｅｓｓｅｄにセットされている場合には、制御はブロック５１５に渡され、ここでは追い出されたキャッシュライン３００がコア１０６〜１１１によってアクセスされたことをＬ３キャッシュ１２０が認識する。従って、図示される実施形態においては、アクセスに係る追い出されたキャッシュライン３００は、Ｌ３キャッシュ１２０内に記憶され、この場合、必要に応じて迅速且つ効率的にリトリーブされ得る。
【００２６】
図６におけるＬ３キャッシュ１２０の動作のフローチャート表示には、本発明の代替的な実施形態が示されている。本発明のこの実施形態においては、ブロック６０５に示されるように、Ｌ３キャッシュ１２０の動作は、追い出されたキャッシュライン３００のアクセス状態フィールド３１０がＳ．Ｕｎｔｏｕｃｈｅｄにセットされている場合に異なって応答するように変更されている。具体的には、Ｌ３キャッシュ１２０は、追い出されたキャッシュライン３００を即座には廃棄せず、むしろ追い出されたキャッシュライン３００を、そのアクセス状態フィールド３１０がＳ．Ｕｎｔｏｕｃｈｅｄ状態を有しているにもかかわらず、Ｌ３キャッシュ１２０内に記憶する。また、Ｌ３キャッシュ１２０は、追い出されたキャッシュライン３００を記憶し、そしてそれをＬＲＵエントリとして識別する。このように、Ｌ３キャッシュ１２０は、Ｌ２キャッシュ１１２〜１１７からの次の追い出されたライン等の別のキャッシュラインを受け取るまで、手付かずに係る追い出されたラインを一時的に記憶する。つまり、手付かずに係るキャッシュライン３００は、既にＬＲＵエントリとして識別されているので、Ｌ３キャッシュ１２０内の全キャッシュラインの最も低い優先度を有しており、そして置き換えられる次のキャッシュラインとなる。
【００２７】
本発明は、コードとは対照的にデータがメモリからリトリーブされてＬ２キャッシュ１１２〜１１７内に置かれる場合の応用にも見出し得る。従来のマイクロプロセッサの動作の間、データがフェッチされ且つキャッシュ内へと記憶される場合、その状態フィールドは典型的には排他的（Ｅ）状態(Exclusive (E) state)として識別される。本発明の１つの実施形態においては、排他的状態は、２つの状態、即ち１）アクセスに係る排他的状態(Exclusive Accessed)（Ｅ．Ａｃｃｅｓｓｅｄ）と２）手付かずに係る排他的状態(Exclusive Untouched)（Ｅ．Ｕｎｔｏｕｃｈｅｄ）とに置き換えられ得る。従って、本発明の１つの実施形態の動作の間、データがフェッチされ且つＬ２キャッシュ１１２〜１１７内へと記憶されるとき、プリフェッチされたキャッシュラインのアクセス状態フィールド３１０は、キャッシュラインが未だコア１０６〜１１１によってアクセスされていないことを示すＥ．Ｕｎｔｏｕｃｈｅｄとしてセットされてよい。続いて、Ｌ２キャッシュ１１２〜１１７及びＬ３キャッシュ１２０の後続の動作の間、図４〜６において説明されたように、Ｅ．Ｕｎｔｏｕｃｈｅｄ状態フィールドはＳ．Ｕｎｔｏｕｃｈｅｄ状態フィールドと実質的に同一の方法で動作することになり、またＥ．Ａｃｃｅｓｓｅｄ状態フィールドはＳ．Ａｃｃｅｓｓｅｄ状態フィールドと実質的に同一の方法で動作することになる。
【００２８】
当業者であれば、図４〜６と共に説明された機能が本発明の精神及び範囲から逸脱することなしに種々の方法において提供され得ることを理解するはずである。例えば、当該機能は、ハードウエア、ソフトウエア、ファームウエア又はこれらの組み合わせを通して提供され得る。また、図４〜６と共に説明された機能を提供することが可能なＬ２及びＬ３キャッシュのための制御器は、別々のスタンドアローンデバイスであってよく、Ｌ２及びＬ３キャッシュの両方を制御することが可能な単一のデバイスであってよく、又は図４〜６に関して特定されるよりも多くの能力を有する大型デバイスの一部であってよい。
【００２９】
幾つかの実施形態においては、半導体製品及び半導体デバイス等の超大規模集積回路（ＶＬＳＩ回路）並びに／又は他の種類の半導体デバイスを設計し及び製造するプロセスでは種々のハードウエア記述言語（ＨＤＬ）が用いられてよいこともまた検討される。ＨＤＬの幾つかの例はＶＨＤＬ及びＶｅｒｉｌｏｇ／Ｖｅｒｉｌｏｇ−ＸＬであるが、記載されていない他のＨＤＬフォーマットが用いられてもよい。１つの実施形態においては、ＧＤＳデータ、ＧＤＳＩＩデータ等を生成するためにＨＤＬコード（例えばレジスタ転送レベル（ＲＴＬ）コード／データ）が用いられてよい。ＧＤＳＩＩデータは、例えば、記述的ファイルフォーマットであり、そして半導体製品又は半導体デバイスの三次元モデルを表すために種々の実施形態において用いられてよい。そのようなモデルは、半導体製品及び／又は半導体デバイスを作製するために半導体製造設備によって用いられてよい。ＧＤＳＩＩデータは、データベース又は他のプログラム記憶構造として記憶されてよい。このデータはコンピュータ可読記憶デバイス（例えばデータ記憶ユニット、ＲＡＭ、コンパクトディスク、ＤＶＤ、ソリッドステート記憶装置等）に記憶されてもよい。１つの実施形態においては、ＧＤＳＩＩデータ（又は他の同様なデータ）は、本発明の種々の態様を具現化することが可能なデバイスを作製するために、製造設備を構成する（例えばマスクワークの使用を通して）ように適合させられてよい。つまり、種々の実施形態においては、このＧＤＳＩＩデータ（又は他の同様なデータ）は、コンピュータ、プロセッサ又は制御器内にプログラムされてよく、これらは次いで、半導体製品及び半導体デバイスを作製するために、半導体製造設備（又は製造工場(fab)）の動作を全体的に又は部分的に制御してよい。例えば１つの実施形態においては、ＧＤＳＩＩデータ（又は他の同様なデータ）を用いて本発明を含むシリコンウェハが作製されてよい。
【００３０】
開示される主題は、ここでの教示の利益を享受する当業者には明らかな、異なるが均等な方法において修正されてよく且つ実施されてよく、従って上に開示される特定の実施形態は例示のみを目的としている。また、ここに示される構成又は設計の詳細に対しては、特許請求の範囲に記述される以外は、限定は意図されていない。従って、上に開示される特定の実施形態は変更又は修正されてよく、また全てのそのような変形は開示される主題の範囲及び精神内にあるとみなされることは明らかである。よって、ここに求められる保護は特許請求の範囲に記述されている。
【図１】
0005913324.tif 000002
【図２】
0005913324.tif 000003
【図３】
0005913324.tif 000004
【図４】
0005913324.tif 000005
【図５】
0005913324.tif 000006
【図６】
0005913324.tif 000007