説明

キャッシュ管理のための方法、装置、およびコンピュータ・プログラム

【課題】キャッシュ管理のための方法、装置、およびコンピュータ・プログラムを提供する。
【解決手段】キャッシュ・コントローラ110によって、新しいキャッシュ・ラインをキャッシュ181に挿入する要求を受信することと、キャッシュ・コントローラ110によって、新しいキャッシュ・ラインが強制注入に関連付けられているか否かを判定することと、新しいキャッシュ・ラインが強制注入に関連付けられているという判定に応答して、キャッシュ・コントローラ110によって、新しいキャッシュ・ラインのキャッシュ181への挿入を承認することと、新しいキャッシュ・ラインが強制注入に関連付けられていないという判定に応答して、キャッシュ・コントローラ110によって、新しいキャッシュ・ラインのアドレスと既定アドレス範囲との比較に基づいて、新しいキャッシュ・ラインの挿入を承認するか否かを判定することと、を含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の分野はデータ処理であり、更に具体的には、キャッシュ管理のための方法、装置、および製品である。
【背景技術】
【0002】
マルチプロセッサ・システムにおいては、様々な理由で、隣接した処理コアに設けられた記憶エリア(キャッシュ)内にキャッシュ・ラインを挿入する。時として、これは、隣接キャッシュから容量不足のために排除されたデータを保持するために用いられる。挿入の別の理由は、コプロセッサが、特定のデータを有するあるキャッシュ・ラインをプロセッサのキャッシュ内に置くことを選択することで、プロセッサがそのキャッシュ・ラインを見つけるためにメモリまで検索に行くことなく容易にデータにアクセスできるようにすることである。新しいキャッシュ・ラインをキャッシュに挿入する要求の受信に応答して、キャッシュのためのキャッシュ・コントローラは、挿入を拒否するかまたは承認するかを決定することができる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
キャッシュ管理のための方法、装置、およびコンピュータ・プログラムを開示する。
【課題を解決するための手段】
【0004】
実施形態は、キャッシュ・コントローラによって、新しいキャッシュ・ラインをキャッシュに挿入する要求を受信することと、キャッシュ・コントローラによって、新しいキャッシュ・ラインが強制注入に関連付けられているか否かを判定することと、新しいキャッシュ・ラインが強制注入に関連付けられているという判定に応答して、キャッシュ・コントローラによって、新しいキャッシュ・ラインのキャッシュへの挿入を承認することと、新しいキャッシュ・ラインが強制注入に関連付けられていないという判定に応答して、キャッシュ・コントローラによって、新しいキャッシュ・ラインのアドレスと既定アドレス範囲との比較に基づいて、新しいキャッシュ・ラインの挿入を承認するか否かを判定することと、を含む。
【0005】
本発明の前述およびその他の目的、特徴、および利点は、添付図面に図示されたような、以下に述べる本発明の例示的な実施形態の更に詳細な説明から明らかとなろう。図面において、同様の参照番号は概して本発明の例示的な実施形態の同様の部分を表す。
【図面の簡単な説明】
【0006】
【図1】本発明の実施形態に従った、キャッシュ管理を実施するコンピュータの一例の機能ブロック図を示す。
【図2】本発明の実施形態に従った、キャッシュ管理のための方法の一例を示すフローチャートを図示する。
【図3】本発明の実施形態に従った、キャッシュ管理のための方法の別の例を示すフローチャートを図示する。
【図4】本発明の実施形態に従った、キャッシュ管理のための方法の別の例を示すフローチャートを図示する。
【発明を実施するための形態】
【0007】
本発明の実施形態に従った、マルチプロセッシング・コンピュータにおけるキャッシュ管理のための例示的な方法、装置、およびコンピュータ・プログラムについて、図1から始まる添付図面を参照して説明する。図1は、本発明の実施形態に従った、キャッシュ管理を実施するコンピュータ(100)の一例の機能ブロック図を示す。
【0008】
図1の例示的なコンピュータ(100)は、いくつかのコンピュータ・プロセッサ(102)を含む。各プロセッサ(102)は、コンピュータ・コア(104)を含み、これはメモリ動作のためにメモリ管理ユニット(「MMU」)(106)を介して共有キャッシュ・レベルおよびメイン・メモリ(114)に結合されている。図1の例において、第1のプロセッサ・セット(193)は第1の共有キャッシュ・レベル(108)に結合され、第2のプロセッサ・セット(194)は第2の共有キャッシュ・レベル(109)に結合されている。第1の共有キャッシュ・レベル(108)は、キャッシュ・ディレクトリ(112)、キャッシュ・コントローラ(110)、およびL2キャッシュ(181)を含む。第2の共有キャッシュ・レベル(109)は、第1の共有キャッシュ・レベル(108)の以下のコンポーネントを含む。すなわち、キャッシュ・ディレクトリ、キャッシュ・コントローラ、およびL2キャッシュである。第2のプロセッサ・セット(194)は、第2の共有キャッシュ・レベル(109)から第1の共有キャッシュ・レベル(108)内へのキャッシュ・ラインの挿入を要求することができる。この場合、第2の共有キャッシュ・レベル(109)のキャッシュ・コントローラ(図示せず)は、この要求を第1の共有キャッシュ・レベル(108)のキャッシュ・コントローラ(110)に送信することができる。キャッシュ・コントローラ(110)は、挿入の要求を承認するかまたは拒否するかを決定することができる。図1の第1の共有キャッシュ・レベル(108)および第2の共有キャッシュ・レベル(109)は、バス・マネージャ(191)によって制御されるバス(166)を介して要求およびデータを送信することができる。
【0009】
図1のプロセッサ(102)の各々はL1メモリを含む。L1は、比較的小さく高速のキャッシュであり、同一チップ上でプロセッサ自体の内部に作られている。MMU(106)は、アドレス変換論理、変換ルックアサイド・バッファ、オンプロセッサ・キャッシュL1のための制御装置等を含む。
【0010】
メイン・メモリ(114)は、コンピュータ(100)上でデータ処理するためのプログラム・データおよびプログラム命令の主要なランダム・アクセス記憶装置である。メイン・メモリ(114)の特徴は、メモリ待ち時間、すなわちメイン・メモリに対する読み取りまたは書き込みといったメモリ・アクセスに必要な時間である。メイン・メモリ(114)は、プロセッサ(102)間で共有される物理アドレス空間のシングル・エクステントを実現する。
【0011】
キャッシュL1およびL2(181)は、メモリ・アクセス待ち時間を短縮するためにプロセッサ(102)によって用いられる専用のメモリ・セグメントである。各キャッシュは、メイン・メモリよりも小型かつ高速であり、頻繁に用いられるメイン・メモリ位置からのデータのコピーを記憶する。プロセッサが、メイン・メモリ内のある位置に対する読み出しまたは書き込みを必要とする場合、そのデータのコピーすなわち「キャッシュ・ライン」がキャッシュ内に存在するか否かを最初にチェックする。存在する場合、プロセッサは直ちにキャッシュに対する読み取りまたは書き込みを行う。これは、メイン・メモリに対する読み取りまたは書き込みよりも著しく高速である。ほとんどのメモリ・アクセスがキャッシュされたメモリ位置である限り、メモリ・アクセスの平均待ち時間はメイン・メモリの待ち時間よりもキャッシュ待ち時間に近くなる。前述したように、メイン・メモリはあらゆるキャッシュよりも著しく低速であり、キャッシュ・ミスはメモリ・アクセス待ち時間において大きな損害を引き起こす。
【0012】
キャッシュ・メモリは、「キャッシュ・ライン」と称するデータ・ブロックに構成されている。異なる設計の各キャッシュ・ラインは、8から512バイト以上のサイズ範囲に及ぶことがある。典型的な1キャッシュ・ラインのサイズは、1から16バイトの範囲であるCPU命令によって要求される通常のアクセスのサイズよりも大きい。現在の32ビットおよび64ビット・アーキテクチャによって典型的に処理される最大のアドレスおよびデータは、長さ128ビットすなわち16バイトである。各キャッシュ・ラインを特徴付けるのは、キャッシュ・ラインの内容がメイン・メモリに記憶される開始アドレスの最上位ビットから成る「タグ」である。
【0013】
図1の例では、プロセッサ(102)は、L1キャッシュおよびL2キャッシュ(181)によって表す2つのレベルを有するマルチレベル・キャッシュを利用する。マルチレベル・キャッシュは、キャッシュ待ち時間とヒット・レートとの間のトレードオフに対処する。キャッシュが大型化するとヒット・レートは向上するが待ち時間が長くなる。このトレードオフに対処するため、多くのコンピュータは多レベルのキャッシュを用いて、小さい高速キャッシュをもっと大きい低速キャッシュによって補強する。概して、マルチレベル・キャッシュが動作する際は、最小のレベル1(L1)キャッシュを最初にチェックし、これがヒットすればプロセッサは高速で進行する。小さい方のキャッシュがミスした場合は次に大きいキャッシュ(L2)をチェックする等とし、その後でメイン・メモリをチェックする。図1の例示的なコンピュータは2つのキャッシュ・レベルを実施するが、これは単に説明の便宜のためであって、限定ではない。多くのコンピュータは、3または4キャッシュ・レベルのような更に多いキャッシュ・レベルを実施する。いくつかのプロセッサでは3レベルのオンチップ・キャッシュを実施する。例えば、Alpha 21164(TM)は96KBのオンダイL3キャッシュを有し、IBM POWER4(TM)は256MBのL3キャッシュ・オフチップを有し、いくつかのプロセッサ間で共有する。
【0014】
キャッシュ・コントローラ(110)は、キャッシュ内のキャッシュ・ラインに関する情報のレポジトリであるキャッシュ・ディレクトリ(112)を含む。ディレクトリは、コンピュータ内の全キャッシュにおける各キャッシュ・ラインごとに、キャッシュ・ラインのアイデンティティすなわちキャッシュ・ラインの「タグ」、キャッシュ・ラインの状態すなわち「変更済み」、「共有」、「無効」等、および、低レベル共有キャッシュのキャッシュ・ラインのコピーがもっと高いキャッシュ・レベルに記憶されているか否かを各プロセッサごとに特定するビット・ベクトルを記録する。MMU(106)およびキャッシュ・コントローラ(110)は、コンピュータ・ノード上の全てのキャッシュ動作について、キャッシュ・ディレクトリ(112)内の情報を調べて更新する。キャッシュ・コントローラ(110)は、L2キャッシュ(181)に直接接続されているがL1キャッシュには直接接続されておらず、L1キャッシュのキャッシュ・ラインに関する情報をキャッシュ・ディレクトリ(112)から取得する。
【0015】
キャッシュ・コントローラ(110)は、キャッシュ・メモリを管理する論理回路であり、プロセッサ(102)、キャッシュ・メモリ(L1、L2)、およびメイン・メモリ(114)間のインタフェースを提供する。ここではキャッシュ・コントローラ(110)をプロセッサ(102)の外部に図示するが、最近のコンピュータ上のキャッシュ・コントローラはプロセッサまたはMMUに直接組み込まれていることが多い。実際、この例においてMMU(106)はL1キャッシュのためのキャッシュ制御論理を含む。
【0016】
図1の例において、キャッシュ・コントローラ(110)は、本発明に従ってキャッシュ管理を実施するように構成されている。図1のキャッシュ・コントローラ(110)は、新しいキャッシュ・ラインをキャッシュ(181)に挿入するための要求を受信し、新しいキャッシュ・ラインが強制注入に関連付けられているか否かを判定し、新しいキャッシュ・ラインが強制注入に関連付けられているという判定に応答して、新しいキャッシュ・ラインのキャッシュ(181)への挿入を承認し、新しいキャッシュ・ラインが強制注入に関連付けられていないという判定に応答して、新しいキャッシュ・ラインのアドレスと既定アドレス範囲との比較に基づいて新しいキャッシュ・ラインの挿入を承認するか否かを判定するように構成されている。新しいキャッシュ・ラインの挿入を承認するかまたは拒否するかの決定を、新しいキャッシュ・ラインのアドレスと既定アドレス範囲との比較に基づいて行うことによって、キャッシュ・コントローラ(110)は、新しいキャッシュ・ラインのアドレスの優先度に基づいて挿入決定を行うことができる。挿入決定プロセスに優先度の検討を組み込むことによって、キャッシュ利用の最適化におけるキャッシュ・コントローラ(110)の有効性を向上させることができる。
【0017】
更に説明すると、図2は、本発明の実施形態に従った、キャッシュ管理のための例示的な方法を示すフローチャートを図示する。図2の方法は、キャッシュ・コントローラ(110)が、新しいキャッシュ・ライン(222)をキャッシュ(181)に挿入するための要求(220)を受信すること(202)を含む。新しいキャッシュ・ライン(222)をキャッシュ(181)に挿入するための要求(220)を受信すること(202)は、バス(166)を介して第2のプロセッサ・セット(194)からプロセッサ(102)のいずれか1つからの要求(220)を受信することによって実施可能である。
【0018】
また、図2の方法は、キャッシュ・コントローラ(110)が、新しいキャッシュ・ライン(222)が強制注入に関連付けられているか否かを判定すること(204)を含む。新しいキャッシュ・ライン(222)が強制注入に関連付けられているか否かを判定すること(204)は、要求(220)を調べて、新しいキャッシュ・ライン(222)が強制注入に関連付けられていることを要求(220)が示すか否かを判定することによって実施可能である。強制注入は、新しいキャッシュ・ライン(222)に関連付けられたアドレス(224)とは無関係に、キャッシュ・コントローラ(110)が新しいキャッシュ・ライン(222)を承認しなければならないことを示すものである。
【0019】
図2の方法は、新しいキャッシュ・ライン(222)が強制注入に関連付けられているという判定に応答して、キャッシュ・コントローラ(110)が、新しいキャッシュ・ライン(222)のキャッシュ(181)への挿入を承認すること(206)含む。新しいキャッシュ・ライン(222)が強制注入に関連付けられているという判定に応答して新しいキャッシュ・ライン(222)のキャッシュ(181)への挿入を承認すること(206)は、キャッシュ・コントローラ(110)から、第2のプロセッサ・セット(194)に関連付けられた第2の共有キャッシュ・レベル(109)内の別のキャッシュ・コントローラ(図示せず)に、要求(220)の承認を送信することによって実施可能である。
【0020】
また、図2の方法は、新しいキャッシュ・ライン(222)が強制注入に関連付けられていないという判定に応答して、キャッシュ・コントローラ(110)が、新しいキャッシュ・ライン(222)のアドレス(224)と既定アドレス範囲(226)との比較に基づいて新しいキャッシュ・ライン(222)の挿入を承認するか否かを判定すること(208)を含む。新しいキャッシュ・ライン(222)のアドレス(204)は、メイン・メモリ(114)の実メモリ・アドレスに基づくものとすることができる。新しいキャッシュ・ライン(222)が強制注入に関連付けられていないという判定に応答して、新しいキャッシュ・ライン(222)のアドレス(224)と既定アドレス範囲(226)との比較に基づいて新しいキャッシュ・ライン(222)の挿入を承認するか否かを判定すること(208)は、1つ以上の既定アドレス範囲(226)を確立し、この既定アドレス範囲(226)をディレクトリ(112)、キャッシュ・ライン、キャッシュ・コントローラ(110)等に記憶し、既定アドレス範囲(226)の最上位アドレスおよび最下位アドレスを識別し、新しいキャッシュ・ライン(222)のアドレス(224)が最上位アドレスを超えるかまたは最下位アドレス未満であるかを判定することによって、実施可能である。どのアドレス範囲を所定アドレス範囲内とするべきかという判定は、ディレクトリ・ルックアップまたは設計上の検討事項(例えばキャッシュ(181)内のラッチ・サイズ対犠牲選択決定のための時間)等のファクターに基づくものとすることができる。
【0021】
更に説明すると、図3は、本発明の実施形態に従ったキャッシュ管理のための更に別の例示的な方法を示すフローチャートを図示する。図3の方法は、図2の方法の以下の要素を含む。すなわち、キャッシュ・コントローラ(110)が、新しいキャッシュ・ライン(222)をキャッシュ(181)に挿入するための要求(220)を受信すること(202)、キャッシュ・コントローラ(110)が、新しいキャッシュ・ライン(222)が強制注入に関連付けられているか否かを判定すること(204)、新しいキャッシュ・ライン(222)が強制注入に関連付けられているという判定に応答して、キャッシュ・コントローラ(110)が、新しいキャッシュ・ライン(222)のキャッシュ(181)への挿入を承認すること(206)、および、新しいキャッシュ・ライン(222)が強制注入に関連付けられていないという判定に応答して、キャッシュ・コントローラ(110)が、新しいキャッシュ・ライン(222)のアドレス(224)と既定アドレス範囲(226)との比較に基づいて新しいキャッシュ・ライン(222)の挿入を承認するか否かを判定すること(208)である。
【0022】
図2の方法と異なる図3の要素を図3に点線で示す。更に具体的には、それらの要素は、キャッシュ・コントローラ(110)が、無効キャッシュ・ラインが利用可能であるか否かを判定すること(302)、無効キャッシュ・ラインが利用可能でないという判定に応答して、キャッシュ・コントローラ(110)が、新しいキャッシュ・ライン(222)のアドレス(224)が第1のクラスのアドレス範囲内にあるか否かを判定すること(304)、新しいキャッシュ・ライン(222)のアドレス(224)が第1のクラスのアドレス範囲内にないという判定に応答して、キャッシュ・コントローラ(110)が、少なくとも1つの可能な犠牲キャッシュ・ラインが第1のクラスのアドレス範囲外にあるか否かを判定すること(306)、少なくとも1つの可能な犠牲キャッシュ・ラインが第1のクラスのアドレス範囲外にないという判定に応答して、キャッシュ・コントローラ(110)が、新しいキャッシュ・ライン(222)のキャッシュ(181)への挿入を拒否すること(330)を含む。
【0023】
図3の方法において、キャッシュ・コントローラ(110)が、新しいキャッシュ・ライン(222)のアドレス(224)と既定アドレス範囲(226)との比較に基づいて新しいキャッシュ・ライン(222)の挿入を承認するか否かを判定すること(208)は、キャッシュ・コントローラ(110)によって、無効キャッシュ・ラインが利用可能であるか否かを判定すること(302)を含む。無効キャッシュ・ラインが利用可能であるか否かを判定すること(302)は、キャッシュ(181)内の特定のキャッシュ・ラインが期限切れであるかまたは無効化されているか否かを判定し、あらゆる無効化キャッシュ・ラインを識別することによって実施可能である。特定のキャッシュ・ラインは、もはや用いられていないか、または古くなったかもしくは破損した場合に、期限切れであるまたは無効化されているとすることができる。
【0024】
図3の方法において、キャッシュ・コントローラ(110)が、新しいキャッシュ・ライン(222)のアドレス(224)と既定アドレス範囲(226)との比較に基づいて新しいキャッシュ・ライン(222)の挿入を承認するか否かを判定すること(208)は、無効キャッシュ・ラインが利用可能であるという判定に応答して、キャッシュ・コントローラ(110)が新しいキャッシュ・ライン(222)のキャッシュ(181)への挿入を承認すること(206)を含む。無効キャッシュ・ラインが利用可能であるという判定に応答して新しいキャッシュ・ライン(222)のキャッシュ(181)への挿入を承認すること(206)は、キャッシュ・コントローラ(110)から、第2のプロセッサ・セット(194)に関連付けられた第2の共有キャッシュ・レベル(109)内の別のキャッシュ・コントローラ(図示せず)に、要求(220)の承認を送信することによって、実施可能である。
【0025】
図3の方法において、キャッシュ・コントローラ(110)が、新しいキャッシュ・ライン(222)のアドレス(224)と既定アドレス範囲(226)との比較に基づいて新しいキャッシュ・ライン(222)の挿入を承認するか否かを判定すること(208)は、無効キャッシュ・ラインが利用可能でないという判定に応答して、キャッシュ・コントローラ(110)が、新しいキャッシュ・ライン(222)のアドレス(224)が第1のクラスのアドレス範囲内にあるか否かを判定すること(304)を含む。新しいキャッシュ・ライン(222)のアドレス(224)が第1のクラスのアドレス範囲内にあるか否かの判定(304)は、第1のクラスのアドレス範囲に割り当てるアドレス範囲を示すユーザ・プログラマブル・エントリを受信し、第1のクラスのアドレス範囲にアドレス範囲を割り当て、新しいキャッシュ・ライン(222)のアドレス(224)と、第1のクラスのアドレス範囲を含む最上位アドレスおよび最下位アドレスとを比較することによって実施可能である。この場合、第1のクラスのアドレス範囲は、どのアドレス範囲で挿入を許可するかを示すように選択することができる。
【0026】
キャッシュ・ラインを割り当てる特定のクラスは、特定のキャッシュ・ラインのアドレスに加えて他の考察事項に基づくようにすることができる。例えば、特定のキャッシュ・ラインをある共有キャッシュ・レベルから別の共有キャッシュ・レベルに移動させることに応じて、キャッシュ・ラインのアドレスを変更することなく、特定のキャッシュ・ラインを割り当てるクラスを変更することができる。
【0027】
図3の方法において、キャッシュ・コントローラ(110)が、新しいキャッシュ・ライン(222)のアドレス(224)と既定アドレス範囲(226)との比較に基づいて新しいキャッシュ・ライン(222)の挿入を承認するか否かを判定すること(208)は、新しいキャッシュ・ライン(222)のアドレス(224)が第1のクラスのアドレス範囲内にあるという判定に応答して、キャッシュ・コントローラ(110)が、新しいキャッシュ・ライン(222)のキャッシュ(181)への挿入を承認すること(206)を含む。新しいキャッシュ・ライン(222)のアドレス(224)が第1のクラスのアドレス範囲内にあるという判定に応答して、新しいキャッシュ・ライン(222)のキャッシュ(181)への挿入を承認すること(206)は、キャッシュ・コントローラ(110)から、第2のプロセッサ・セット(194)に関連付けられた第2の共有キャッシュ・レベル(109)内の別のキャッシュ・コントローラ(図示せず)に、要求(220)の承認を送信することによって、実施可能である。
【0028】
図3の方法において、キャッシュ・コントローラ(110)が、新しいキャッシュ・ライン(222)のアドレス(224)と既定アドレス範囲(226)との比較に基づいて新しいキャッシュ・ライン(222)の挿入を承認するか否かを判定すること(208)は、新しいキャッシュ・ライン(222)のアドレス(224)が第1のクラスのアドレス範囲内にないという判定に応答して、キャッシュ・コントローラ(110)が、少なくとも1つの可能な犠牲キャッシュ・ラインが第1のクラスのアドレス範囲外にあるか否かを判定すること(306)を含む。新しいキャッシュ・ライン(222)のアドレス(224)が第1のクラスのアドレス範囲内にないという判定に応答して、少なくとも1つの可能な犠牲キャッシュ・ラインが第1のクラスのアドレス範囲外にあるか否かを判定すること(306)は、第1のクラスのアドレス範囲に割り当てるアドレス範囲を示すユーザ・プログラマブル・エントリを受信し、第1のクラスのアドレス範囲にアドレス範囲を割り当て、キャッシュ(181)内のキャッシュ・ラインのアドレスと、第1のクラスのアドレス範囲を含む最上位アドレスおよび最上位アドレスとを比較し、どのキャッシュ・ラインが第1のクラスのアドレス範囲外のアドレスを有するかを識別し、識別されたキャッシュ・ラインを可能な犠牲キャッシュ・ラインとして標示することによって実施可能である。この場合、犠牲キャッシュ・ラインは、新しいキャッシュ・ラインによって置換される可能性があるキャッシュ・ラインである。
【0029】
図3の方法において、キャッシュ・コントローラ(110)が、新しいキャッシュ・ライン(222)のアドレス(224)と既定アドレス範囲(226)との比較に基づいて新しいキャッシュ・ライン(222)の挿入を承認するか否かを判定すること(208)は、少なくとも1つの可能な犠牲キャッシュ・ラインが第1のクラスのアドレス範囲外にあるという判定に応答して、キャッシュ・コントローラ(110)が新しいキャッシュ・ライン(222)の挿入を承認すること(206)を含む。少なくとも1つの可能な犠牲キャッシュ・ラインが第1のクラスのアドレス範囲外にあるという判定に応答して、キャッシュ・コントローラ(110)が新しいキャッシュ・ライン(222)の挿入を承認すること(206)は、キャッシュ・コントローラ(110)から、第2のプロセッサ・セット(194)に関連付けられた第2の共有キャッシュ・レベル(109)内の別のキャッシュ・コントローラ(図示せず)に、要求(220)の承認を送信することによって実施可能である。
【0030】
図3の方法において、キャッシュ・コントローラ(110)が、新しいキャッシュ・ライン(222)のアドレス(224)と既定アドレス範囲(226)との比較に基づいて新しいキャッシュ・ライン(222)の挿入を承認するか否かを判定すること(208)は、少なくとも1つの可能な犠牲キャッシュ・ラインが第1のクラスのアドレス範囲外にないという判定に応答して、キャッシュ・コントローラ(110)が新しいキャッシュ・ライン(222)のキャッシュ(181)への挿入を拒否すること(330)を含む。少なくとも1つの可能な犠牲キャッシュ・ラインが第1のクラスのアドレス範囲外にないという判定に応答して、キャッシュ・コントローラ(110)が新しいキャッシュ・ライン(222)のキャッシュ(181)への挿入を拒否すること(330)は、キャッシュ・コントローラ(110)から、第2のプロセッサ・セット(194)に関連付けられた第2の共有キャッシュ・レベル(109)内の別のキャッシュ・コントローラ(図示せず)に、要求(220)の拒否を送信することによって実施可能である。キャッシュ・コントローラ(110)が要求(220)を拒否した場合、新しいキャッシュ・ライン(222)はキャッシュ(181)に挿入されない。この場合、キャッシュ(181)内のキャッシュ・ラインは全て、新しいキャッシュ・ライン(222)よりも高い優先度を有する。
【0031】
更に説明すると、図4は、本発明の実施形態に従ったキャッシュ管理のための更に別の例示的な方法を示すフローチャートを図示する。図4の方法は、図2の方法の以下の要素を含む。すなわち、新しいキャッシュ・ライン(222)が強制注入に関連付けられているという判定に応答して、キャッシュ・コントローラ(110)が、新しいキャッシュ・ライン(222)のキャッシュ(181)への挿入を承認すること(206)である。
【0032】
図2の方法と異なる図4の要素を図4に点線で示す。更に具体的には、それらの要素は、キャッシュ・コントローラ(110)が、無効キャッシュ・ラインが利用可能であるか否かを判定すること(402)、無効キャッシュ・ラインが利用可能であるという判定に応答して、キャッシュ・コントローラ(110)が、無効キャッシュ・ラインを犠牲キャッシュ・ライン(350)として選択すること(404)、無効キャッシュ・ラインが利用可能であるという判定に応答して、キャッシュ・コントローラ(110)が、キャッシュ(181)内で、犠牲キャッシュ・ライン(350)を新しいキャッシュ・ライン(222)によって置換すること(406)、無効キャッシュ・ラインが利用可能でないという判定に応答して、キャッシュ・コントローラ(110)が、キャッシュ(181)が第2のクラスの犠牲キャッシュ・ラインを含むか否かを判定すること(408)、キャッシュが第2のクラスの犠牲キャッシュ・ラインを含むという判定に応答して、キャッシュ・コントローラ(110)が、第2のクラスの犠牲キャッシュ・ラインを犠牲キャッシュ・ライン(350)として選択すること(410)、キャッシュが第2のクラスの犠牲キャッシュ・ラインを含むという判定に応答して、キャッシュ・コントローラ(110)が、キャッシュ(181)内で、犠牲キャッシュ・ライン(350)を新しいキャッシュ・ライン(222)によって置換すること(412)、キャッシュが第2のクラスの犠牲キャッシュ・ラインを含まないという判定に応答して、キャッシュ・コントローラ(110)が、第1のクラスの犠牲キャッシュ・ラインを犠牲キャッシュ・ライン(350)として選択すること(414)、キャッシュが第2のクラスの犠牲キャッシュ・ラインを含まないという判定に応答して、キャッシュ・コントローラ(110)が、キャッシュ(181)内で、犠牲キャッシュ・ライン(350)を新しいキャッシュ・ライン(222)によって置換すること(416)を含む。
【0033】
図4の方法において、新しいキャッシュ・ライン(222)をキャッシュ(181)に挿入することの承認(206)は、キャッシュ・コントローラ(110)によって、無効キャッシュ・ラインが利用可能であるか否かを判定すること(402)を含む。無効キャッシュ・ラインが利用可能であるか否かの判定(402)は、キャッシュ(181)内の特定のキャッシュ・ラインが期限切れであるかまたは無効化されているか否かを判定し、あらゆる無効化キャッシュ・ラインを識別することによって実施可能である。
【0034】
図4の方法において、新しいキャッシュ・ライン(222)をキャッシュ(181)に挿入することの承認(206)は、無効キャッシュ・ラインが利用可能であるという判定に応答して、キャッシュ・コントローラ(110)が、無効キャッシュ・ラインを犠牲キャッシュ・ライン(350)として選択すること(404)を含む。無効キャッシュ・ラインが利用可能であるという判定に応答して、無効キャッシュ・ラインを犠牲キャッシュ・ライン(350)として選択すること(404)は、無効キャッシュ・ラインの少なくとも1つを犠牲キャッシュ・ラインとして識別し、犠牲キャッシュ・ラインとしての無効キャッシュ・ラインの識別をキャッシュ・コントローラ(110)に記憶することによって実施可能である。
【0035】
図4の方法において、新しいキャッシュ・ライン(222)をキャッシュ(181)に挿入することの承認(206)は、無効キャッシュ・ラインが利用可能であるという判定に応答して、キャッシュ・コントローラ(110)が、キャッシュ(181)内で、犠牲キャッシュ・ライン(350)を新しいキャッシュ・ライン(222)によって置換すること(406)を含む。無効キャッシュ・ラインが利用可能であるという判定に応答して、キャッシュ(181)内で犠牲キャッシュ・ライン(350)を新しいキャッシュ・ライン(222)によって置換すること(406)は、犠牲キャッシュ・ライン(350)がどのキャッシュ物理位置を占有しているかを判定し、犠牲キャッシュ・ライン(350)が占有するキャッシュ物理地位に新しいキャッシュ・ライン(222)を記憶するためのコマンドをキャッシュ・コントローラ(110)からキャッシュ(181)に送信することによって、実施可能である。
【0036】
図4の方法において、新しいキャッシュ・ライン(222)をキャッシュ(181)に挿入することの承認(206)は、無効キャッシュ・ラインが利用可能でないという判定に応答して、キャッシュ・コントローラ(110)が、キャッシュ(181)が第2のクラスの犠牲キャッシュ・ラインを含むか否かを判定すること(408)を含む。無効キャッシュ・ラインが利用可能でないという判定に応答して、キャッシュ(181)が第2のクラスの犠牲キャッシュ・ラインを含むか否かを判定すること(408)は、どのアドレス範囲を第2のクラスのアドレス範囲に関連付けるかを示す入力をユーザから受信し、そのアドレス範囲を第2のクラスのアドレス範囲に関連付け、キャッシュ(181)内のキャッシュ・ラインのいずれかが、第2のクラスのアドレス範囲に割り当てられたアドレス内のアドレスを含むか否かを判定することによって、実施可能である。この場合、第2のクラスの犠牲キャッシュ・ラインは、第2のクラスのアドレス範囲内にあるアドレスを有する。第2のクラスのアドレス範囲は、第1のクラスのアドレス範囲に関連付けられたアドレス範囲よりも優先度の低いアドレス範囲とすることができる。この場合、図4の方法では、第1のクラスの犠牲の前に第2のクラスの犠牲を置換することが試みられる。
【0037】
図4の方法において、新しいキャッシュ・ライン(222)をキャッシュ(181)に挿入することの承認(206)は、キャッシュが第2のクラスの犠牲キャッシュ・ラインを含むという判定に応答して、キャッシュ・コントローラ(110)が、第2のクラスの犠牲キャッシュ・ラインを犠牲キャッシュ・ライン(350)として選択すること(410)を含む。キャッシュが第2のクラスの犠牲キャッシュ・ラインを含むという判定に応答して、第2のクラスの犠牲キャッシュ・ラインを犠牲キャッシュ・ライン(350)として選択すること(410)は、第2のクラスの犠牲キャッシュ・ラインの少なくとも1つを犠牲キャッシュ・ラインとして識別し、犠牲キャッシュ・ラインとしての選択した第2のクラスの犠牲キャッシュ・ラインの識別をキャッシュ・コントローラ(110)に記憶することによって実施可能である。
【0038】
図4の方法において、新しいキャッシュ・ライン(222)をキャッシュ(181)に挿入することの承認(206)は、キャッシュが第2のクラスの犠牲キャッシュ・ラインを含むという判定に応答して、キャッシュ・コントローラ(110)が、キャッシュ(181)内で、犠牲キャッシュ・ライン(350)を新しいキャッシュ・ライン(222)によって置換すること(412)を含む。キャッシュ(181)が第2のクラスの犠牲キャッシュ・ラインを含むという判定に応答して、キャッシュ(181)内で、犠牲キャッシュ・ライン(350)を新しいキャッシュ・ライン(222)によって置換すること(412)は、犠牲キャッシュ・ライン(350)がどのキャッシュ物理位置を占有しているかを判定し、犠牲キャッシュ・ライン(350)が占有するキャッシュ物理地位に新しいキャッシュ・ライン(222)を記憶するためのコマンドをキャッシュ・コントローラ(110)からキャッシュ(181)に送信することによって、実施可能である。
【0039】
図4の方法において、新しいキャッシュ・ライン(222)をキャッシュ(181)に挿入することの承認(206)は、キャッシュが第2のクラスの犠牲キャッシュ・ラインを含まないという判定に応答して、キャッシュ・コントローラ(110)が、第1のクラスの犠牲キャッシュ・ラインを犠牲キャッシュ・ライン(350)として選択すること(414)を含む。キャッシュが第2のクラスの犠牲キャッシュ・ラインを含まないという判定に応答して、第1のクラスの犠牲キャッシュ・ラインを犠牲キャッシュ・ライン(350)として選択すること(414)は、第1のクラスの犠牲キャッシュ・ラインの少なくとも1つを犠牲キャッシュ・ラインとして識別し、犠牲キャッシュ・ラインとしての選択した第1のクラスの犠牲キャッシュ・ラインの識別をキャッシュ・コントローラ(110)に記憶することによって実施可能である。
【0040】
図4の方法において、新しいキャッシュ・ライン(222)をキャッシュ(181)に挿入することの承認(206)は、キャッシュが第2のクラスの犠牲キャッシュ・ラインを含まないという判定に応答して、キャッシュ・コントローラ(110)が、キャッシュ(181)内で、犠牲キャッシュ・ライン(350)を新しいキャッシュ・ライン(222)によって置換すること(416)を含む。キャッシュが第2のクラスの犠牲キャッシュ・ラインを含まないという判定に応答して、キャッシュ(181)内で、犠牲キャッシュ・ライン(350)を新しいキャッシュ・ライン(222)によって置換すること(416)は、犠牲キャッシュ・ライン(350)がどのキャッシュ物理位置を占有しているかを判定し、犠牲キャッシュ・ライン(350)が占有するキャッシュ物理地位に新しいキャッシュ・ライン(222)を記憶するためのコマンドをキャッシュ・コントローラ(110)からキャッシュ(181)に送信することによって、実施可能である。
【0041】
本発明の例示的な実施形態について、主として、キャッシュ管理のための完全に機能できるコンピュータ・システムの文脈において説明している。しかしながら、いずれかの適切なデータ処理システムと共に用いるためのコンピュータ読み取り可能記憶媒体上に配置されたコンピュータ・プログラムにおいて本発明を具現化することが可能であることは、当業者には認められよう。かかるコンピュータ読み取り可能記憶媒体は、磁気媒体、光媒体、または他の適切な媒体を含む機械読み取り可能情報のためのいずれかの記憶媒体とすることができる。かかる媒体の例には、ハード・ドライブまたはディスケットにおける磁気ディスク、光ドライブのコンパクト・ディスク、磁気テープ、および当業者に想起される他のものが含まれる。適切なプログラミング手段を有するいかなるコンピュータ・システムでも、コンピュータ・プログラムにおいて具現化されたような本発明の方法のステップを実行可能であることは、当業者には速やかに認められよう。また、本明細書に記載された例示的な実施形態のいくつかは、コンピュータ・ハードウェア上にインストールされて実行するソフトウェアに合わせたものであるが、ファームウェアとしてまたはハードウェアとして実施された代替的な実施形態が充分に本発明の範囲内であることは、当業者には認められよう。
【0042】
当業者には認められるであろうが、本発明の態様は、システム、方法、またはコンピュータ・プログラムとして具現化することができる。従って、本発明の態様は、全体的にハードウェアの実施形態、全体的にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、または、ソフトウェアおよびハードウェアの態様を組み合わせた実施形態という形態を取ることができ、それらは全て本明細書において、「回路」、「モジュール」、または「システム」と一般的に称することができる。更に、本発明の態様は、具現化されたコンピュータ読み取り可能プログラム・コードを有する1つ以上のコンピュータ読み取り可能媒体において具現化されるコンピュータ・プログラムの形態を取ることも可能である。
【0043】
1つ以上のコンピュータ読み取り可能媒体のあらゆる組み合わせを利用することができる。コンピュータ読み取り可能媒体は、コンピュータ読み取り可能信号媒体またはコンピュータ読み取り可能記憶媒体とすることができる。コンピュータ読み取り可能記憶媒体は例えば、限定ではないが、電子、磁気、光、電磁、赤外線、または半導体のシステム、装置、デバイス、または前述のもののいずれかの適切な組み合わせとすることができる。コンピュータ読み取り可能記憶媒体の更に具体的な例(非網羅的な列挙)は、以下を含む。すなわち、1本以上のワイヤを含む電気的接続、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、光ファイバ、携帯型コンパクト・ディスク読み取り専用メモリ(CD−ROM)、光記憶デバイス、磁気記憶デバイス、または前述のもののいずれかの適切な組み合わせである。この文書の文脈において、コンピュータ読み取り可能記憶媒体は、命令実行システム、装置、またはデバイスによってまたはそれと接続して用いるためにプログラムを含有または記憶することが可能ないずれかのタンジブルな媒体とすることができる。
【0044】
コンピュータ読み取り可能信号媒体は、例えばベースバンドにおいてまたは搬送波の一部として、具現化されたコンピュータ読み取り可能プログラム・コードを有する伝播データ信号を含むことができる。かかる伝播信号は様々な形態のいずれかを取ることができ、それらは限定ではないが、電磁、光、またはそれらのいずれかの適切な組み合わせを含む。コンピュータ読み取り可能信号媒体は、コンピュータ読み取り可能記憶媒体でないが、命令実行システム、装置、またはデバイスによってまたはそれと接続して用いるためにプログラムを伝達、伝播、または転送することが可能ないずれかのコンピュータ読み取り可能媒体とすることができる。
【0045】
コンピュータ読み取り可能媒体上で具現化されるプログラム・コードは、限定ではないが、無線、有線、光ファイバ・ケーブル、RF等、または前述のもののいずれかの適切な組み合わせを含むいずれかの適切な媒体を用いて伝送することができる。
【0046】
本発明の態様の動作を実行するためのコンピュータ・プログラム・コードは、Java(R)、Smalltalk(R)、C++等のオブジェクト指向プログラミング言語、および、「C」プログラミング言語または同様のプログラミング言語等の従来の手順プログラミング言語を含む1つ以上のプログラミング言語のいずれかの組み合わせにおいて記述することができる。プログラム・コードは、全体的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロンのソフトウェア・パッケージとして、部分的にユーザのコンピュータ上でおよび部分的に遠隔コンピュータ上で、または全体的に遠隔コンピュータもしくはサーバ上で、実行することができる。後者の場合、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含むいずれかのタイプのネットワークを介してユーザのコンピュータに接続することができ、または、接続は、(例えばインターネット・サービス・プロバイダを用いてインターネットを介して)外部コンピュータに対して行うことができる。
【0047】
本発明の実施形態に従った方法、装置(システム)、およびコンピュータ・プログラムのフローチャート図またはブロック図あるいはその両方を参照して、本発明の態様について記載している。フローチャート図またはブロック図あるいはその両方の各ブロックならびにフローチャート図またはブロック図あるいはその両方におけるブロックの組み合わせは、コンピュータ・プログラム命令によって実施可能であることは理解されよう。これらのコンピュータ・プログラム命令は、汎用コンピュータ、特殊目的コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて機械を生成することができ、これによって、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサによって実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックに規定された機能/行為を実施するための手段を生成するようになっている。
【0048】
また、これらのコンピュータ・プログラム命令はコンピュータ読み取り可能媒体に記憶することができ、これによって、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスに特定の方法で機能するように指示することができ、これにより、コンピュータ読み取り可能媒体に記憶された命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックに規定された機能/行為を実施する命令を含む製造品を生成するようになっている。
【0049】
また、コンピュータ・プログラム命令を、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードして、そのコンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させてコンピュータ実施プロセスを生成することができ、これによって、コンピュータまたは他のプログラマブル装置上で実行する命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックに規定された機能/行為を実施するためのプロセスを提供するようになっている。
【0050】
上述した図面におけるフローチャートおよびブロック図は、本発明の様々な実施形態に従ったシステム、方法、およびコンピュータ・プログラムの可能な実施のアーキテクチャ、機能性、および動作を示す。この点で、フローチャートまたはブロック図における各ブロックは、規定された論理機能(複数の機能)を実施するための1つ以上の実行可能命令を含むコードのモジュール、セグメント、または一部を表すことができる。また、いくつかの代替的な実施において、ブロックに明記した機能は、図面に明記した順序どおりでなく発生する場合があることに留意すべきである。例えば、関与する機能性に応じて、連続して示した2つのブロックは実際には実質的に同時に実行されることがあり、またはブロックは時に逆の順序で実行される場合がある。また、ブロック図またはフローチャートあるいはその両方の各ブロック、およびブロック図またはフローチャートあるいはその両方におけるブロックの組み合わせは、規定された機能もしくは行為を実行する特殊目的ハードウェア・ベースのシステム、または特殊目的ハードウェアおよびコンピュータ命令の組み合わせによって実施可能であることに留意すべきである。
【0051】
キャッシュ制御動作のための要求は、新しいキャッシュ・ラインをキャッシュに挿入することを含む。キャッシュ制御動作は、キャッシュに関わるいずれの数の動作も含むことができ、新しいキャッシュ・ラインをキャッシュに挿入することには限定されないことは、当業者には認められよう。前述の記載から、本発明の真の精神から逸脱することなくその様々な実施形態において変形および変更を実行可能であることは理解されよう。本明細書における記載は例示の目的のためだけのものであり、限定の意味で解釈されるべきではない。本発明の範囲は、以下の特許請求の範囲の文言によってのみ限定される。
【符号の説明】
【0052】
110 マルチプロセッシング・コンピュータ
102 プロセッサ
104 コア
106 MMU
108 第1の共有キャッシュ・レベル
109 第2の共有キャッシュ・レベル
110 キャッシュ・コントローラ
112 キャッシュ・ディレクトリ
114 メイン・メモリ
181 L2キャッシュ
193 第1のプロセッサ・セット
194 第2のプロセッサ・セット

【特許請求の範囲】
【請求項1】
キャッシュ管理の方法であって、
キャッシュ・コントローラによって、キャッシュ制御動作のための要求を受信することと、
前記キャッシュ・コントローラによって、新しいキャッシュ・ラインが強制注入に関連付けられているか否かを判定することと、
前記新しいキャッシュ・ラインが強制注入に関連付けられているという判定に応答して、前記キャッシュ・コントローラによって、前記新しいキャッシュ・ラインの前記キャッシュへの挿入を承認することと、
前記新しいキャッシュ・ラインが強制注入に関連付けられていないという判定に応答して、前記キャッシュ・コントローラによって、前記新しいキャッシュ・ラインのアドレスと既定アドレス範囲との比較に基づいて、前記新しいキャッシュ・ラインの前記挿入を承認するか否かを判定することと、
を含む、方法。
【請求項2】
前記キャッシュが処理コアに関連付けられ、前記要求が隣接プロセッサ・コアから受信され、前記キャッシュ制御動作が前記新しいキャッシュ・ラインをキャッシュに挿入することを含む、請求項1に記載の方法。
【請求項3】
前記新しいキャッシュ・ラインのアドレスと既定アドレス範囲との比較に基づいて、前記新しいキャッシュ・ラインの挿入を承認するか否かを判定することが、
前記キャッシュ・コントローラによって、無効キャッシュ・ラインが利用可能であるか否かを判定することと、
前記無効キャッシュ・ラインが利用可能であるという判定に応答して、前記キャッシュ・コントローラによって、前記新しいキャッシュ・ラインの前記キャッシュへの前記挿入を承認することと、
を含む、請求項1に記載の方法。
【請求項4】
前記新しいキャッシュ・ラインのアドレスと既定アドレス範囲との比較に基づいて、前記新しいキャッシュ・ラインの前記挿入を承認するか否かを判定することが、
無効キャッシュ・ラインが利用可能でないという判定に応答して、前記キャッシュ・コントローラによって、前記新しいキャッシュ・ラインの前記アドレスが第1のクラスのアドレス範囲内にあるか否かを判定することと、
前記新しいキャッシュ・ラインの前記アドレスが前記第1のクラスのアドレス範囲内にあるという判定に応答して、前記キャッシュ・コントローラによって、前記新しいキャッシュ・ラインの前記キャッシュへの前記挿入を承認することと、
を更に含む、請求項3に記載の方法。
【請求項5】
前記新しいキャッシュ・ラインのアドレスと既定アドレス範囲との比較に基づいて、前記新しいキャッシュ・ラインの前記挿入を承認するか否かを判定することが、
前記新しいキャッシュ・ラインの前記アドレスが前記第1のクラスのアドレス範囲内にないという判定に応答して、前記キャッシュ・コントローラによって、少なくとも1つの可能な犠牲キャッシュ・ラインが前記第1のクラスのアドレス範囲外にあるか否かを判定することと、
前記少なくとも1つの可能な犠牲キャッシュ・ラインが前記第1のクラスのアドレス範囲外にあるという判定に応答して、前記キャッシュ・コントローラによって、前記新しいキャッシュ・ラインの前記挿入を承認することと、
前記少なくとも1つの可能な犠牲キャッシュ・ラインが前記第1のクラスのアドレス範囲外にないという判定に応答して、前記キャッシュ・コントローラによって、前記新しいキャッシュ・ラインの前記キャッシュへの前記挿入を拒否することと、
を更に含む、請求項4に記載の方法。
【請求項6】
前記新しいキャッシュ・ラインの前記キャッシュへの前記挿入が、
前記キャッシュ・コントローラによって、無効キャッシュ・ラインが利用可能であるか否かを判定することと、
無効キャッシュ・ラインが利用可能であるという判定に応答して、前記キャッシュ・コントローラによって、前記無効キャッシュ・ラインを犠牲キャッシュ・ラインとして選択し、前記キャッシュ内で、前記キャッシュ・コントローラによって、前記犠牲キャッシュ・ラインを前記新しいキャッシュ・ラインによって置換することと、
を含む、請求項1に記載の方法。
【請求項7】
前記新しいキャッシュ・ラインの前記キャッシュへの前記挿入が、
無効キャッシュ・ラインが利用可能でないという判定に応答して、前記キャッシュ・コントローラによって、前記キャッシュが第2のクラスの犠牲キャッシュ・ラインを含むか否かを判定し、前記第2のクラスの犠牲キャッシュ・ラインが第2のクラスのアドレス範囲内にあるアドレスを有する、ことと、
前記キャッシュが第2のクラスの犠牲キャッシュ・ラインを含むという判定に応答して、前記キャッシュ・コントローラによって、前記第2のクラスの犠牲キャッシュ・ラインを前記犠牲キャッシュ・ラインとして選択し、前記キャッシュ内で、前記キャッシュ・コントローラによって、前記犠牲キャッシュ・ラインを前記新しいキャッシュ・ラインによって置換することと、
前記キャッシュが第2のクラスの犠牲キャッシュ・ラインを含まないという判定に応答して、前記キャッシュ・コントローラによって、第1のクラスの犠牲キャッシュ・ラインを前記犠牲キャッシュ・ラインとして選択し、前記キャッシュ内で、前記キャッシュ・コントローラによって、前記犠牲キャッシュ・ラインを前記新しいキャッシュ・ラインによって置換することと、
を更に含む、請求項6に記載の方法。
【請求項8】
キャッシュ管理のための、キャッシュ・メモリを制御するキャッシュ・コントローラを含む装置であって、前記キャッシュ・コントローラが、
前記キャッシュ・コントローラによって、キャッシュ制御動作のための要求を受信し、
前記キャッシュ・コントローラによって、新しいキャッシュ・ラインが強制注入に関連付けられているか否かを判定し、
前記新しいキャッシュ・ラインが強制注入に関連付けられているという判定に応答して、前記キャッシュ・コントローラによって、前記新しいキャッシュ・ラインの前記キャッシュへの挿入を承認し、
前記新しいキャッシュ・ラインが強制注入に関連付けられていないという判定に応答して、前記キャッシュ・コントローラによって、前記新しいキャッシュ・ラインのアドレスと既定アドレス範囲との比較に基づいて、前記新しいキャッシュ・ラインの前記挿入を承認するか否かを判定する、
ことによって機能するように構成されている、装置。
【請求項9】
コンピュータ・プログラムであって、
キャッシュ・コントローラによって、キャッシュ制御動作のための要求を受信し、
前記キャッシュ・コントローラによって、新しいキャッシュ・ラインが強制注入に関連付けられているか否かを判定し、
前記新しいキャッシュ・ラインが強制注入に関連付けられているという判定に応答して、前記キャッシュ・コントローラによって、前記新しいキャッシュ・ラインの前記キャッシュへの挿入を承認し、
前記新しいキャッシュ・ラインが強制注入に関連付けられていないという判定に応答して、前記キャッシュ・コントローラによって、前記新しいキャッシュ・ラインのアドレスと既定アドレス範囲との比較に基づいて、前記新しいキャッシュ・ラインの前記挿入を承認するか否かを判定する、
ことをコンピュータに実行させる、コンピュータ・プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2012−128846(P2012−128846A)
【公開日】平成24年7月5日(2012.7.5)
【国際特許分類】
【出願番号】特願2011−259551(P2011−259551)
【出願日】平成23年11月28日(2011.11.28)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】