(57)【要約】  本明細書に教示された方法と装置によれば、プロセッサキャッシュポリシーは、メモリ動作の期間中にアクセスされるターゲットメモリデバイスに関連づけられたキャッシュポリシー情報を用いて決定される。プロセッサの一実施形態によれば、プロセッサは、少なくとも１つのキャッシュと、メモリ管理ユニットとを具備する。少なくとも１つのキャッシュは、プロセッサにとってローカルな情報を格納するように構成される。メモリ管理ユニットは、少なくとも１つのキャッシュのための１つ以上のキャッシュポリシーを設定するように構成される。メモリ管理ユニットは、プロセッサによって使用される情報を格納するように構成された１つ以上のターゲットメモリデバイスに関連づけられたキャッシュポリシー情報に基づいて、１つ以上のキャッシュポリシーを設定する。
2010517179.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサによって使用される情報を格納するように構成された１つ以上のターゲットメモリデバイスに関連づけられたキャッシュポリシー情報を受信することと、
前記キャッシュポリシー情報に基づいて、１つ以上のキャッシュポリシーを設定することとを具備する、キャッシュポリシーを決定する方法。
【請求項２】
前記キャッシュポリシー情報を受信することは、非要請のキャッシュポリシー情報を受信することを含む請求項１記載の方法。
【請求項３】
前記キャッシュポリシー情報を受信することは、
前記ターゲットメモリデバイスのうちの１つにメモリアクセスを向けることと、
前記メモリアクセスに応答してキャッシュポリシー情報を受信することとを含む請求項１記載の方法。
【請求項４】
前記メモリアクセスに応答してキャッシュポリシー情報を受信することは、前記メモリアクセスが向けられるターゲットメモリデバイスによって供給されるキャッシュポリシー情報を受信することを含む請求項３記載の方法。
【請求項５】
前記メモリアクセスに応答してキャッシュポリシー情報を受信することは、前記メモリアクセスに関連づけられたアドレスに基づきアドレスデコーダによって供給されるキャッシュポリシー情報を受信することを含む請求項３記載の方法。
【請求項６】
前記１つ以上のキャッシュポリシーを設定することは、
前記メモリアクセスに関連づけられたページテーブルエントリをアクセスすることと、
前記ページテーブルエントリによって示される１つ以上のキャッシュポリシーを、前記メモリアクセスに応答して受信されるキャッシュポリシー情報で覆す（override）こととを含む請求項３記載の方法。
【請求項７】
プロセッサであって、
前記プロセッサにとってローカルな情報を格納するように構成された少なくとも１つのキャッシュと、
前記プロセッサによって使用される情報を格納するように構成された１つ以上のターゲットメモリデバイスに関連づけられたキャッシュポリシー情報に基づいて、前記少なくとも１つのキャッシュのための１つ以上のキャッシュポリシーを設定するように構成されたメモリ管理ユニットとを具備するプロセッサ。
【請求項８】
前記メモリ管理ユニットは、非要請のキャッシュポリシー情報を処理するように構成されている請求項７記載のプロセッサ。
【請求項９】
前記メモリ管理ユニットは、前記ターゲットメモリデバイスのうちの１つにメモリアクセスを向け、前記メモリアクセスに応答して受信されるキャッシュポリシー情報を処理するように構成されている請求項７記載のプロセッサ。
【請求項１０】
前記メモリ管理ユニットは、前記メモリアクセスが向けられたターゲットメモリデバイスによって供給されるキャッシュポリシー情報を処理するように構成されている請求項９記載のプロセッサ。
【請求項１１】
前記メモリ管理ユニットは、前記メモリアクセスに関連づけられたアドレスに基づきアドレスデコーダによって供給されるキャッシュポリシー情報を処理するように構成されている請求項９記載のプロセッサ。
【請求項１２】
前記アドレスデコーダは前記プロセッサ内に含まれている請求項１１記載のプロセッサ。
【請求項１３】
前記メモリ管理ユニットは、前記メモリアクセスに関連づけられたページテーブルエントリをアクセスし、前記ページテーブルエントリによって示される１つ以上のキャッシュポリシーを、前記メモリアクセスに応答して受信されるキャッシュポリシー情報で覆す（override）ように構成されている請求項９記載のプロセッサ。
【請求項１４】
プロセッサであって、当該プロセッサにとってローカルな情報を格納するように構成された少なくとも１つのキャッシュを有するプロセッサと、
前記プロセッサに結合され、前記プロセッサによって使用される情報を格納するように構成された１つ以上のターゲットメモリデバイスと、
前記プロセッサ内に含まれ、前記１つ以上のターゲットメモリデバイスに関連づけられたキャッシュポリシー情報に基づいて、前記少なくとも１つのキャッシュのための１つ以上のキャッシュポリシーを設定するように構成されたメモリ管理ニットとを具備するシステム。
【請求項１５】
前記メモリ管理ユニットは、非要請のキャッシュポリシー情報を処理するように構成されている請求項１４記載のシステム。
【請求項１６】
前記メモリ管理ユニットは、前記ターゲットメモリデバイスのうちの１つにメモリアクセスを向け、当該メモリアクセスに応答して受信されるキャッシュポリシー情報を処理するように構成されている請求項１４記載のシステム。
【請求項１７】
前記メモリ管理ユニットは、前記メモリアクセスが向けられたターゲットメモリデバイスによって供給されるキャッシュポリシー情報を処理するように構成されている請求項１６記載のシステム。
【請求項１８】
前記メモリアクセスに関連づけられたアドレスに基づいて前記キャッシュポリシー情報を供給するアドレスデコーダをさらに具備する請求項１６記載のシステム。
【請求項１９】
前記アドレスデコーダは前記プロセッサ内に含まれている請求項１８記載のシステム。
【請求項２０】
前記メモリ管理ユニットは、前記メモリアクセスに応答してページテーブルエントリをアクセスし、前記ページテーブルエントリによって示される１つ以上のキャッシュポリシーを、前記メモリアクセスに応答して受信されるキャッシュポリシー情報で覆す（override）ように構成されている請求項１６記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にプロセッサにおけるキャッシングオペレーションに関し、特にキャッシュポリシーを決定することに関する。
【背景技術】
【０００２】
プロセッサ性能は、頻繁にアクセスされるかまたは最も最近用いられた情報を格納するためにプロセッサに１レベル以上のキャッシュをローカルに含めることにより改善される。プロセッサキャッシュは、ハードディスクドライブまたはＤＲＡＭのようなメインメモリに格納された選択された情報のコピーを格納する小さく速いメモリである。命令が記憶場所（memory location）にアクセスする場合、プロセッサは、その記憶場所がローカルキャッシュに複製されているかを最初にチェックする。特に、メモリアクセスに関連づけられたアドレスはキャッシュ中のすべてのタグと比較される。目的の記憶（desired memory）がキャッシュ中に置かれていれば、キャッシュヒットが生じる。そうでなければ、キャッシュミスが生じる。
【０００３】
キャッシュヒットが生じた時、プロセッサは、特定されたキャッシュライン内のデータまたは命令のような情報を直ちにリードまたはライトする。キャッシュミスの場合には、目的の情報はより高いレベルのキャッシュまたはメインメモリから取り出される。さらに、その新しく取り出された情報を格納するために新しいエントリが従来通りにキャッシュに割り当てられる。新しいエントリは、キャッシュミスを引き起こしたアドレスを識別するタグとメインメモリから取り出された情報のコピーとを含む。
【０００４】
新しいキャッシュエントリを収容するために、既存のエントリはキャッシュから取り除かれる(evict)。キャッシュから取り除かれるエントリを選ぶために使用されるヒューリスティックは、最長時間未使用（least recently used）、またはファーストイン、ファーストアウトのような置換（replacement）ポリシーに基づく。他のキャッシュポリシー（キャッシュ属性とも云う）もまたキャッシュがどのようにアクセスされ、使用され、維持されるかを決定するために利用される。他のキャッシュポリシーとしては、書き込みポリシー、割り当てポリシー、キャッシュレベルポリシー、およびカスタマイズ（customized）ポリシーがある。
【０００５】
書き込みポリシーは、キャッシュブロックに書き込まれた情報が何時メインメモリにも書き込まれるのかを決定する。例えば、ライトスルーポリシーが使用される時は、キャッシュとメインメモリは同時に更新される。ライトバックポリシーが利用される時は、メインメモリは、対応するキャッシュブロックが置換される時にのみ更新される。ライトワンスポリシーは、特定のキャッシュブロックに対する最初の書き込みに対してはライトスルーポリシーを使用し、同じブロックに対する後続する書き込みに対してはライトバックポリシーを使用する。
【０００６】
キャッシュ割り当てポリシーは、キャッシュブロックが何時書かれるかを決定する。例えば、特定のキャッシュブロックに関連づけられた割り当てポリシーが“読み出し専用割り当て（allocate on read only）”であるならば、そのブロックは書き込み期間中は影響（disturb）されない。これに対し、割り当てポリシーが“読み出しおよび書き込み割り当て（allocate on read and write）”である時は、そのキャッシュブロックは書き込み及び読み出しの双方の期間中に更新される。第１レベルの命令およびデータキャッシュおよび少なくとも一つのより高いレベルのキャッシュのような多数のレベルのキャッシュを有するプロセッサについては、キャッシュレベルポリシーは、どのレベルのキャッシュが情報を格納するために使用されるかを決定する。例えば、命令は一次命令キャッシュに格納し得、他の情報は二次キャッシュにのみ格納し得る。
【０００７】
キャッシュポリシーは、ページテーブルに通常通りに格納される。ページテーブルは、頻繁にアクセスされるかまたは最も最近使用されたエントリがプロセッサに、例えば、トランスレーション・ルックアサイド・バッファ（ＴＬＢ）にローカルに格納されている状態で、メインメモリ内に維持される。各ページテーブルエントリは、仮想アドレスを対応する物理アドレスにマッピングする。特に、ページテーブルは、仮想ページ番号と対応する物理ページ番号とのリストを格納する。仮想ページ番号は、プロセッサ上で走るプロセスに割り付けられる仮想メモリ内の個々のブロックを識別し、一方、物理ページ番号は、プロセスによって使用される実際の情報を含んでいる物理メモリ内の対応するブロックを識別する。
【０００８】
プロセッサがある特定の記憶場所にアクセスする時、ページテーブルエントリは、そのアクセスの一部として提供される仮想アドレス中の仮想ページ番号部分を使用して検索される。物理ページ番号は、一致するページテーブルエントリから取り出される。物理ページ番号とページオフセットは、目的の記憶場所をアクセスするために使用される物理アドレスを形成する。
【０００９】
目的の記憶場所がローカルなプロセッサキャッシュ内に含まれていないならば、メインメモリがアクセスされる。一致するページテーブルエントリに格納されたキャッシュポリシー情報は、そのメモリアクセスの一部としてメインメモリから読み出されまたはメインメモリに書き込まれる情報がキャッシュにローカルに格納されるかを決定し、もしそうであれば、どのようにその情報がキャッシュ内に維持されるかを決定する。このように、キャッシュポリシーは、ページ単位（あるいはブロック単位）で通常通りに設定されキャッシュに適用される。さらに、キャッシュポリシーは、オペレーティングシステムによって通常通りにプログラムされる。そのため、キャッシュポリシーはプロセッサ上で走るすべてのプロセスに一般に適用され、特別のタイプのメインメモリデバイスによって利用された時には非効率な結果となり得る。例えば、“読み出し専用割り当て（allocate on read only）”のキャッシュ割り当てポリシーは、他のものではなく、グラフィックスアプリケーションのようないくつかのプロセスにとってのキャッシュ利用を最適化し得る。
【発明の概要】
【００１０】
本明細書に教示された方法および装置によれば、プロセッサキャッシングポリシーは、特定のメモリ動作の期間中にアクセスされるターゲットメモリデバイスに関連づけられたキャッシュポリシー情報を使用することによって決定される。したがって、キャッシュオペレーションは、一般的なキャッシュポリシー設定の代わりに、特定のメモリデバイス設定に適合され得る。プロセッサ性能は、現在のメモリ動作のためのキャッシュポリシーを、そのメモリ動作の期間中にアクセスされるターゲットメモリデバイスに関連づけられたキャッシュポリシー情報に基づいて決定することによって改善される。
【００１１】
プロセッサの一実施形態によれば、プロセッサは、少なくとも１つのキャッシュとメモリ管理ユニットとを具備する。少なくとも１つのキャッシュは、プロセッサにとってローカルな情報を格納するように構成される。メモリ管理ユニットは、少なくとも１つのキャッシュのための１つ以上のキャッシュポリシーを設定するように構成される。メモリ管理ユニットは、プロセッサによって使用される情報を格納するように構成された１つ以上のターゲットメモリデバイスに関連づけられたキャッシュポリシー情報に基づいて、１つ以上のキャッシュポリシーを設定する。
【００１２】
システムの一実施形態によれば、このシステムは、プロセッサにとってローカルな情報を格納するように構成された少なくとも１つのキャッシュを有するプロセッサと、プロセッサに結合された１つ以上のターゲットメモリデバイスと、プロセッサ内に含まれるメモリ管理ユニットとを具備する。１つ以上のターゲットメモリデバイスは、プロセッサによって使用される情報を格納するように構成される。メモリ管理ユニットは、１つ以上のターゲットメモリデバイスに関連づけられたキャッシュポリシー情報に基づいて、少なくとも一つのキャッシュのための１つ以上のキャッシュポリシーを設定するように構成される。
【００１３】
もちろん、本発明は上記の特徴と利点に制限されない。当業者は以下に詳述する説明を読み添付図面を見ることでさらなる特徴と利点を認識するだろう。
【図面の簡単な説明】
【００１４】
【図１】図１はキャッシュポリシーを決定する回路を有するプロセッサを含むシステムの実施形態を示すブロック図である。
【図２】図２はメモリデバイスに関連づけられたキャッシュポリシー情報を提供するアドレスデコーダ回路の実施形態を示すブロック図である。
【図３】図３はキャッシュポリシーを決定する回路を有するプロセッサを含むシステムの別の実施形態を示すブロック図である。
【図４】図４はプロセッサにおいてキャッシュポリシーを決定する回路の実施形態を示すブロック図である。
【図５】図５はプロセッサにおいてキャッシュポリシーを決定するプログラムロジックの実施形態を示す論理流れ図である。
【図６】図６は図４の回路が典型的な書込み動作に応答してキャッシュポリシーをどのように決定するかを示す図である。
【図７】図７は図４の回路が典型的な読み出し動作に応答してキャッシュポリシーをどのように決定するかを示す図である。
【発明を実施するための形態】
【００１５】
図１は、プロセッサ１４を、１つ以上の周辺デバイス１６と、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）２０およびシンクロナスグラフィックスＲＡＭ（ＳＧＲＡＭ）２２のようなＤＲＡＭやハードディスクドライブ（ＨＤＤ）１８といったメインメモリとに結合するバス１２を含むシステム１０の実施形態を示す。プロセッサ１４は、プロセッサコア２４、データキャッシュおよび命令キャッシュ２６，２８、二次キャッシュ（Ｌ２）３０、およびバスインタフェースユニット３２を含んでいる。プロセッサコア２４は、命令実行および命令の流れの集中制御を提供する。データキャッシュおよび命令キャッシュ２６，２８は、データおよび命令をそれぞれ格納する。Ｌ２キャッシュ３０は、データキャッシュおよび命令キャッシュ２６，２８と、ＨＤＤ１８、ＳＤＲＡＭ２０およびＳＧＲＡＭ２２のようなプロセッサ１４外部のメインメモリとの間の高速メモリバッファを提供する。バスインタフェースユニット３２は、データ、命令、アドレスおよび制御信号を、プロセッサ１４と、周辺デバイス１６、メインメモリ１８、２０、２２のようなプロセッサ１４外部のデバイスとの間で転送するための機構を提供する。
【００１６】
メインメモリ１８、２０、２２は、プロセッサ１４上で走るプロセスに対して仮想メモリとして提示される。すなわち、物理メモリのページは、プログラム実行の期間中にプロセスによって使用される仮想メモリとして割り当てられる。ページテーブル３４は、仮想アドレス空間と物理アドレス空間との間のマッピングを可能にするために、図１に示されるように、例えば、メインメモリ１８、２０、２２に維持される。プロセッサ１４に含まれるメモリ管理ユニット（ＭＭＵ）３６は、ページテーブル３４にアクセスし、プロセッサ１４によって発行される、仮想記憶管理、メモリ保護、キャッシュコントロールおよびバスアービトレーションを含むメモリアクセスを取り扱う。仮想記憶管理の一部として、ＭＭＵ３６は、プロセッサ１４にローカルな頻繁に参照されるかまたは最近参照されたページテーブルエントリ（ＰＴＥ）それぞれを、例えば、トランスレーション・ルックアサイド・バッファ（ＴＬＢ）３８内に維持する。
【００１７】
プロセッサ１４が仮想アドレスによって識別される目的の記憶場所（memory location）にアクセスする時、ＭＭＵ３６は、ＴＬＢ３８にアクセスして、ＴＬＢ３８が一致するエントリを含むかを判定する。もしＴＬＢ３８が一致するエントリを含むならば、仮想アドレスは、その一致するＴＬＢエントリに格納されたアドレス変換情報を使用することによって、物理アドレスに変換される。一方ＴＬＢ３８が一致するエントリを含まないならば、一致するエントリを求めてページテーブル３４が検索される。どちらの場合でも、ＭＭＵ３６は、結果として得られた物理アドレスに基づき、物理的にタグ付けされたキャッシュ２６、２８、３０の一つの中のキャッシュルックアップ動作を開始する。もしキャッシュ２６、２８、３０のうちの１つが目的の記憶場所を含んでいるならば、対応するキャッシュラインがアクセスされ、メモリアクセスは、例えばそのキャッシュラインからの読み出しまたはそのキャッシュラインへの書き込みによって、完了される。キャッシュ２６、２８、３０のうちの１つが目的の記憶場所を含まないならば、ＭＭＵ３６は、目的の記憶場所にアクセスするために、メインメモリ１８、２０、２２へのメモリアクセスを開始する。
【００１８】
メインメモリ１８、２０、２２は目的の記憶場所を識別する物理アドレスを供給することによってアクセスされる。本明細書では目的の記憶場所を含むメモリデバイスはターゲットメモリデバイスと称される。本明細書に開示された種々の実施形態によれば、ターゲットメモリデバイスは、システムに含まれた、任意のアドレス指定可能なメモリモジュール、デバイスあるいはバンクから構成し得る。例えば、ターゲットメモリデバイスは、プロセッサ１４によって実行されている特定のプロセスに依存する他のメモリデバイス（図示されない）、ＳＤＲＡＭ２０、あるいはＳＧＲＡＭ２２のうちの１つであり得る。
【００１９】
外部メモリアクセスに応答して、対応するターゲットメモリデバイスに関連づけられたキャッシュポリシー情報は、ＭＭＵ３６中に含まれるかまたはＭＭＵ３６に関連づけられたキャッシュポリシー設定回路４０に供給される。キャッシュポリシー設定回路４０は、対応するターゲットメモリデバイスに関連付けられたキャッシュポリシー情報に基づき、現在のメモリ動作のためのキャッシュポリシーの設定を決定する。このようにして、プロセッサ１４が特定の外部の記憶場所にアクセスする時に、キャッシュポリシーは目的の記憶場所を含む対応するターゲットメモリデバイスに適合される。
【００２０】
例えば、メモリ動作がＳＧＲＡＭデバイス２２のうちの１つに向けられるならば、そのターゲットＳＧＲＡＭデバイスに関連づけられたキャッシュ割り当てポリシーは、そのターゲットデバイスがマルチメディアアプリケーション用のビデオフレームバッファーとして機能する場合は、“読み出し専用割り当て（allocate on read only）”であり得る。プロセッサ１４はマルチメディアアプリケーションの実行の期間中はターゲットＳＧＲＡＭデバイスに頻繁に書き込みし得るが、そのデバイスからは滅多に読み出さない。したがって、ターゲットＳＧＲＡＭデバイスのキャッシュ割り当てポリシーは、プロセッサの性能の改善のために、“読み出し専用割り当て（allocate on read only）”を示しても良い。ターゲットメモリデバイスのキャッシュポリシー情報は、また、特定の置換ポリシー、書き込みポリシー、割り当てポリシー、キャッシュレベルポリシー、および／または１つ以上のカスタマイズポリシーも示し得る。
【００２１】
一実施形態では、ターゲットメモリデバイスに関連づけられたキャッシュポリシー情報は、図１に示されるような様々なＤＲＡＭデバイス２０、２２とバス１２との間のインターフェースを提供するメモリコントローラ４２によって提供される。この実施形態によれば、メモリコントローラ４２は、メモリアクセス（例えば読み出しまたは書き込み）の一部としてプロセッサ１４によって供給される物理メモリアドレスをデコードするためのアドレスデコーダ回路４４を含む。アドレスデコーダ回路４４によって生成されるキャッシュポリシー情報は、特定のメモリアクセスの一部として供給される物理メモリアドレスによって変わる。物理アドレスは、現在のメモリ動作のターゲットである記憶場所を含んでいるメモリデバイスを識別する。
【００２２】
図２は、アドレスデコーダ回路４４の一実施形態を示す。この実施形態によれば、デコーダ回路４４は、アドレスデコーダ４６と、マルチプレクサ４８と、メモリコントローラ４２によってサポートされるそれぞれのメモリデバイス２０、２２に関連づけられた種々のエントリ５２を有するテーブル５０とを含んでいる。各テーブルエントリ５２は、対応するメモリデバイスに関連づけられたキャッシュポリシー情報を含む。
【００２３】
プロセッサ１４が外部メモリにアクセスする時、そのアクセスの一部として含まれる物理アドレスは、メモリコントローラ４２にサポートされるメモリデバイス２０、２２のうちの１つを識別する。アドレスデコーダ４６は物理アドレスをデコードし、物理アドレスによって識別されるターゲットメモリデバイスに関連づけられたキャッシュポリシー情報を含んでいるエントリ５２をマルチプレクサ４８に選択させる。メモリコントローラ４２は、選択されたキャッシュポリシー情報を、バス１２、およびバスインタフェースユニット３２を介して（例えば図１の中のアドレスデコーダ回路４４からＭＭＵ３６まで行く点線によって示されているように）、ＭＭＵ３６に供給する。キャッシュポリシー設定回路４０は、受信したキャッシュポリシー情報を使用して現在のメモリ動作のためのキャッシュポリシーを設定する。このように、キャッシュポリシーは、ターゲットメモリデバイスの関数としてキャッシュライン単位で設定され得る。
【００２４】
別の実施形態では、キャッシュポリシー情報は、図３に示されるように、プロセッサ１４内に含まれるアドレスデコーダ回路５４によって供給される。この実施形態によれば、アドレスデコーダ回路５４は、キャッシュポリシー情報を、例えば、図２に従って上述したように、仮想アドレスまたは物理アドレスに基づいて供給する。さらに別の実施形態では、メモリコントローラ４２によってサポートされる１つ以上のメモリデバイス２０、２２がそれらのキャッシュポリシー情報を、例えば、デバイスＩＤレジスターまたは他のレジスター（図示せず）に格納する。ターゲットメモリデバイスがメモリコントローラ４２によってアクセスされた時、キャッシュポリシー情報はコントローラ４２に供給され、そして上述したようにプロセッサ１４へ転送される。あるいは、キャッシュポリシー情報は、要請無しで、プロセッサ１４に供給される。例えば、プロセッサ１４のリセット時、またはシステムブート期間中に、自動的に、キャッシュポリシー情報はプロセッサ１４に供給される。さらに、プロセッサ１４は、適合するキャッシュポリシー情報を受信時に格納し得、これにより、対応するターゲットメモリデバイスが続いてアクセスされる場合に同じ情報を要求する必要を除去し得る。代わりに、プロセッサ１４は適合するキャッシュポリシー情報を内部的に取り出し使用する。それとは関係なく、キャッシュポリシー設定回路４０は、ターゲットメモリデバイスキャッシュポリシー情報を使用して、メモリ動作の期間中にキャッシュポリシーを設定する。
【００２５】
図４は、ＭＭＵ３６内に含まれるかまたはＭＭＵ３６に関連づけられたキャッシュポリシー設定回路４０の実施形態を示す。この実施形態によれば、キャッシュポリシー設定回路４０は、現在のメモリ動作を対象とするキャッシュポリシーを設定するための選択回路５６を含む。より詳細には、メモリアクセスの一部として供給される仮想アドレスに一致するページテーブルエントリ（ＰＴＥ）５８は、ＴＬＢ３８またはページテーブル３４（例えば図１の中のページテーブル３４からＭＭＵ３６まで行く点線によって示されるように）のいずれかから取り出される。仮想アドレスは、一致するＰＴＥ５８に格納されたアドレス変換情報６０に基づいて対応する物理アドレスに変換される。ここで、物理アドレスは目的の記憶場所を識別する。
【００２６】
目的の記憶場所がプロセッサキャッシュ２６、２８、３０のうちの１つに置かれていない場合、ＭＭＵ３６は外部メモリアクセスを開始する。このリクエストに応答し、メモリコントローラ４２は、変換された物理アドレスに基づいて、目的の記憶場所を含むターゲットメモリデバイスを識別する。プロセッサ１４は、メモリコントローラ４２を介してターゲットメモリデバイスへのアクセスを獲得する。ターゲットメモリデバイスは所望のメモリ動作（例えば、読み出しまたは書き込み）を行なう。さらに、ターゲットメモリデバイスに関連づけられたキャッシュポリシー情報がキャッシュポリシー設定回路４０に供給され、例えば、図５のステップ１００によって示されているように、メモリ動作の一部としてバッファ６２に格納される。
【００２７】
選択回路５６は、一致するＰＴＥ５８から取り出されたキャッシュポリシー情報とバッファ６２に格納されたターゲットメモリデバイスのキャッシュポリシー情報とを、例えば、図５のステップ１０２によって示されているように処理する。一致するＰＴＥ５８から取り出されたキャッシュポリシー情報６４はそのターゲットデバイスの情報で上書きされ、現在のキャッシュポリシー設定として使用される。しかしながら、ターゲットメモリデバイスのためのキャッシュポリシー情報が提供されないならば、一致するＰＴＥ５８から取り出されたキャッシュポリシー情報６４が代わりに使用される。
【００２８】
どのようにしてキャッシュポリシー設定回路４０がキャッシュポリシーを決定するかについての純粋たる図解例は図６に示される。プロセッサコア２４は、仮想アドレスＸへのメモリ書き込みリクエストを発行する。ＭＭＵ３６はＴＬＢ３８またはページテーブル３４のいずれかから一致するＰＴＥを取り出し、それを、仮想アドレスＸを対応する物理アドレスＸ’に変換するために使用する。その後、ＭＭＵ３６は、物理アドレスＸ’を使用して、物理的にタグ付けされたキャッシュ２６、２８、３０の１つ以上を調査(probe)する。この例においては、キャッシュミスによって示されるように、キャッシュ２６、２８、３０のどれも目的の記憶場所を含んでいない。従って、ＭＭＵ３６は、物理アドレスＸ’に基づき、外部メモリ書き込みリクエストをメモリコントローラ４２へ発行する。メモリコントローラ４２は、物理アドレスＸ’によって識別される記憶場所を含むターゲットメモリデバイスを選択する。ターゲットメモリデバイスは所望の書き込み動作を行ない、その書き込みが完了したことをコントローラ４２に通知する。
【００２９】
さらに、物理アドレスＸ’はデコードされ、ターゲットメモリデバイスに対応するキャッシュポリシー情報が上述したように、例えば、アドレスデコーダ回路４４または５４によって取り出される。あるいは、ターゲットメモリデバイスが、そのキャッシュポリシー情報をメモリコントローラ４２に供給する。これとは関係なく、ＭＭＵ３６には、書き込み動作が完了したことが通知される。さらに、キャッシュポリシー設定回路４０にはターゲットメモリデバイスのキャッシュポリシー情報が供給される。この例においては、キャッシュポリシー情報は“読み出し専用割り当て（allocate on read only）”を示す。したがって、書き込み動作はプロセッサ１４内で完了し、ＭＭＵ３６はプロセッサキャッシュ２６、２８、３０のうちの１つにキャッシュラインを割り当てない。
【００３０】
図７は、同じ仮想アドレスＸに対してプロセッサコア２４によって発行される後続の読み出しリクエストを示すことによる例示的な図解の続きである。想起すれば、ターゲットメモリデバイスのキャッシュポリシー情報は、物理アドレスＸ’によって識別される記憶場所に対して“読み出し専用割り当て（allocate on read only）”を示す。したがって、キャッシュラインは以前には物理アドレスＸ’に対して割り当てられていない。このため、キャッシュミスが現在の読み出し動作中に生じる。
【００３１】
さらに、ターゲットメモリデバイスが読み出し動作を完了した時、その読み出し動作はプロセッサ１４内では完了しない。なぜなら、ターゲットデバイスのキャッシュポリシー情報がキャッシュラインが割り当てられるべきであることを示しているからである。したがって、キャッシュポリシー設定回路４０は、ＭＭＵ３６がプロセッサキャッシュ２６、２８、３０の１つに物理アドレスＸ’のためのキャッシュラインを割り当てることを指示するように、現在のキャッシュ割り当てポリシーを設定する。さらに、ターゲットメモリデバイスに関連づけられたキャッシュレベルポリシーは、どのレベルのキャッシュがキャッシュラインを割り当てるべきかを示し得る。例えば、Ｌ２キャッシュ３０または一次キャッシュ２６，２８の一つを示し得る。他のキャッシュポリシーもターゲットデバイスのキャッシュポリシー情報に基づいて設定され得る。それとは関係なく、対応するデータもまたプロセッサコア２４に供給され得る。
【００３２】
上記範囲の変形例及び応用例を考慮した場合、本発明は、上記説明によっても添付図面によっても限定されないことが理解されるべきである。本発明は、特許請求の範囲及びその文言の均等物によってのみ限定される。
【図１】
2010517179.tif 000003
【図２】
2010517179.tif 000004
【図３】
2010517179.tif 000005
【図４】
2010517179.tif 000006
【図５】
2010517179.tif 000007
【図６】
2010517179.tif 000008
【図７】
2010517179.tif 000009
【国際調査報告】
2010517179.tif 000010
2010517179.tif 000011