(57)【要約】キャッシュやプロセッサによって次に使用されることが予測されるデータの上書きを減らすために、あるいは上書きさせないようにするために、キャッシュを介しての相対的に重要なデータや特定の形式のデータ転送を伴う命令は、キャッシュの１以上のパーティションへのアクセスを制御するリストリクティッドアクセスポリシーを適用する。プロセッサあるいはその他のシステム構成要素は、１以上のアクセスポリシー間で選択のために使用される信号をアサートする。次に、この選択されたアクセスポリシーを、命令に関連づけられたデータ転送オペレーション中に、キャッシュの１以上のウェイへのアクセスを制御するために使用する。通常、アクセスポリシーは、１以上の特定のキャッシュウェイや１以上の特定のキャッシュラインへの制限など、特定のキャッシュパーティションへのアクセス制限を示す。
2008530656.tif 000002
【特許請求の範囲】
【請求項１】
転送されるデータのデータ形式を決定するステップ（４０２）、
前記データを転送するためのデータ転送コマンドを決定するステップ（４０４）、
前記データが第１の形式の場合に、前記データ転送コマンドとともに使用する第１のプレフィックスを選択するステップ（４０６）、および、
前記データが第２の形式の場合に、前記データ転送コマンドとともに使用する第２のプレフィックスを選択するステップ、を含む方法。
【請求項２】
第１の形式の前記データは画像データであり、前記第２の形式のデータは前記第１の前記形式のデータとは異なる、請求項１に記載の方法。
【請求項３】
第１の形式の前記データは画像フレームバッファ（１４０）に転送される、請求項１に記載の方法。
【請求項４】
第１の形式の前記データは再利用されることのない一時データである、請求項１に記載の方法。
【請求項５】
前記第１のプレフィックスは第１のキャッシュマスク（２１２、２２２）の選択を容易にするために選択され、前記第２のプレフィックスは第２のキャッシュマスク（２１２、２２２）の選択を容易にするために選択される、請求項１に記載の方法。
【請求項６】
システムメモリ（１３０）、
プロセッサ（１１０）、
フレームバッファ（１４０）、
キャッシュメモリ（１２２）、および、
前記プロセッサ（１１０）によって実行される転送を実行するための命令の形式に基づいて前記フレームバッファ（１４０）へデータを転送する間に前記キャッシュメモリ（１２２）へのアクセスを制御するキャッシュコントローラ（１２４）、を含むシステム。
【請求項７】
前記キャッシュコントローラ（１２４）はさらに、前記プロセッサ（１１０）によって実行される前記命令の形式に基づいて複数のキャッシュマスク（２１２、２２２）から第１のキャッシュマスク（２１２、２２２）を選択し、前記選択された第１のキャッシュマスク（２１２）は、前記データ転送中に前記キャッシュメモリ（１２２）の複数のウェイの各々のアクセス可能性を示す、請求項６に記載のシステム。
【請求項８】
前記キャッシュコントローラ（１２４）は、前記キャッシュメモリ（１２２）の複数のウェイのうちの第１サブセットだけにアクセスを限定することで、前記キャッシュメモリへのアクセスを制御する、請求項６に記載のシステム。
【請求項９】
前記キャッシュコントローラ（１２４）は、前記複数のウェイの、最も長時間未使用の情報に基づいて、前記ウェイの第１サブセットからなる前記１以上のウェイを決定する、請求項８に記載のシステム。
【請求項１０】
前記キャッシュコントローラ（１２４）は、前記キャッシュメモリ（１２２）の１以上のキャッシュラインの最も長時間未使用のフィールドだけにアクセスを許可することで、前記キャッシュメモリ（１２２）へのアクセスを制御する、請求項６に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
概して、本発明は、処理システムにおけるキャッシングに関し、より詳細には、データ転送中にキャッシュへのアクセスを制限する技術分野に関する。
【背景技術】
【０００２】
キャッシュメモリは、プロセッサにより使用されるか、システムメモリやハードディスクなどの、後に固定記憶装置に格納されるデータや命令などの情報を格納するために、処理システムで用いられることが多い。例えば、パソコンシステムでは、グラフィックスドライバにおいて、システムメモリと１以上の画像フレームバッファ間に大きな画像ブロックを移動させるためにキャッシュを用いることが多い。
このような転送を行うために、グラフィックスドライバはタイトループあるいはｘ８６  ＲＥＰ命令を用いてムーブファンクションを繰り返し行い、キャッシュを介してメモリからフレームバッファに、あるいはフレームバッファからメモリにデータブロックを連続的に転送する。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、通常、このような技術では、転送される画像データによって、キャッシュ内のデータが上書きされてしまう。
キャッシュ内にすでにあるデータを上書きすることで、キャッシュの効率性が低下するおそれがあることは明らかであろう。その理由は、キャッシュから画像データを転送した後、上書きされたデータをキャッシュに再書き込みする必要があり、多くの場合、この再書込みがプロセッサの大幅な遅延や失速を招くからである。
【課題を解決するための手段】
【０００４】
上記課題を解決するために、本発明は、転送されるデータのデータ形式を決定するステップ（４０２）、前記データを転送するためのデータ転送コマンドを決定するステップ（４０４）、前記データが第１の形式の場合に、前記データ転送コマンドとともに使用する第１のプレフィックスを選択するステップ（４０６）、および、前記データが第２の形式の場合に、前記データ転送コマンドとともに使用する第２のプレフィックスを選択するステップ、を含む方法を提供する。
【発明を実施するための最良の形態】
【０００５】
本開示の目的および利点は、添付の図面と併せて以下の詳細な説明から当業者には明らかであろう。図面において、同様の参照文字は同じ要素を示すために使用される。図１から図８は、キャッシュを介してデータ転送する間にキャッシュアクセスが制御され得る例示的システムおよび技術を示す。少なくとも１つの実施形態では、非データ転送オペレーションに関する命令やキャッシュを介して相対的に小さなデータ転送を行うオペレーションに関する命令には第１のアクセスコントロールポリシーが適用され、プロセッサによってキャッシュが使用される間、キャッシュにおける一つ以上のパーティションへのアクセスが制御される。
【０００６】
これに対して、相対的に重要なデータ転送を含む命令や特定の形式のデータ転送を含む命令に関しては第２のアクセスコントロールポリシーが適用され、キャッシュやプロセッサによって次に使用が予測されるデータの上書きを低減するか妨げるように、キャッシュの１以上のパーティションへのアクセスが制御される。以下により詳細に記載しているように、特定のオペレーションに関連づけられるデータ転送の形式や大きさは、命令のプレフィックスフィールド(prefix field)および／あるいはオペコードの検査や比較に基づいて決定されてもよい。この比較や検査に応答して、プロセッサやその他のシステムの構成要素は、１以上のアクセスポリシー間で選択のために利用される信号を発し、次に、選択されたアクセスポリシーは、命令に関連づけられたデータ転送オペレーション中に、キャッシュの１以上のウェイへのアクセスを制御するために用いることができる。
【０００７】
このアクセスポリシーは通常、特定のキャッシュパーティションへのアクセス制限を示す。制限には例えば、１以上の特定のキャッシュウェイへのアクセス制限や１以上の特定のキャッシュラインへのアクセス制限が挙げられる。特定のキャッシュウェイへのアクセス制限に関するアクセスポリシーは、例えばキャッシュマスクによって示され得る。特定のキャッシュパーティションへの制限を、例えば、キャッシュに保持されている最長時間未使用（ＬＲＵ:least recently used）情報を使用して選択してもよい。
【０００８】
図１に、本開示の少なくとも１つの実施形態に係る例示的キャッシュ制御メカニズムを利用した例示的システム１００を示す。該システム１００は、ＣＰＵなどのプロセッサ１１０、キャッシュ１２０を含む。例示しているように、キャッシュ１２０は複数のキャッシュ列の各々に対して複数のウェイ（ウェイ１−Ｎとして表示する）を備えたキャッシュメモリ１２２と、キャッシュコントロールモジュール１２４（例えば、ソフトウェア、ハードウェア、あるいはファームウェアモジュール）とを含む。
本明細書では、「キャッシュ列」という用語は、共通のインデックスに関連付けられる一連のキャッシュラインのことを指す。キャッシュメモリ１２０は、例えば、１６のウェイ、１２８の列のキャッシュを備え、各キャッシュラインが３２バイトのデータを格納できるものであってもよい。システム１００はさらに、システムメモリ１３０などの、キャッシュ１２０を利用した１以上のモジュール、システムバス１５０などを介してキャッシュ１２０および／あるいはプロセッサ１１０に接続されたディスプレイフレームバッファ１４０を含み得る。
【０００９】
少なくとも１つの実施形態では、キャッシュ１２０は、プロセッサ１１０によって使用されるデータを格納するために、あるいは、システムメモリ１３０とディスプレイフレームバッファ１４０間のデータ転送を容易にするために利用される。このような転送は通常、プロセッサによって１以上の命令が実行される前に、あるいは実行中にプロセッサ１１０によって開始されることは明らかであろう。上述したように、プロセッサ１１０によって使用されるデータを格納することにより、あるいはそのようなデータを転送することにより、キャッシュメモリ１２２にすでに存在するデータが上書きされてしまう。
【００１０】
上書きされてしまう結果、このデータは次のオペレーションの間、プロセッサ１１０による使用が不可となる。よって、このデータを上書きすることで、キャッシュ１２０だけでなくプロセッサ１１０も効率的に利用することができなくなるおそれがある。従って、少なくとも１つの実施形態では、キャッシュコントロールモジュール１２４は、キャッシュメモリ１２２にある一定の形式のデータ転送とデータストレージとを行う間に、キャッシュメモリ１２２の１つ以上の部分（例えば、１以上のウェイや１以上のキャッシュブロック）へのアクセスを制御するキャッシュアクセスコントロールポリシーを実行し得る。このアクセスコントロールポリシーは、データ転送やデータストレージオペレーション後にプロセッサ１１０による使用が予測されるデータを含む、複数のウェイやキャッシュブロックのサブセットを識別し得る。
【００１１】
さらに、このアクセスコントロールポリシーは、データ転送後にプロセッサ１１０によって使用されるデータを保持あるいは格納していないと予測されるデータを含み得るキャッシュメモリ１２２のウェイ／キャッシュブロックを識別し得る。よって、このアクセスコントロールポリシーは、キャッシュ１２０の使用において、データ転送オペレーション中に利用され得るこれらのウェイ／キャッシュブロックを、データプロセッサ１１０の効率を実質的に妨げることなく識別し得る。本文に詳細を記載しているように、このアクセスコントロールポリシーは、データ転送オペレーション中は使用を禁止されるウェイだけでなく、データ転送オペレーション中にデータを格納するために使用され得るキャッシュメモリ１２２のウェイをも示す１以上のキャッシュマスクセットによって実行されてもよい。
【００１２】
一実施形態では、データ転送オペレーション中に使用される特定のアクセスポリシーは、リストリクティッドアイデンティファイア信号(restricted identifier signal)１１６に基づいて選択される。このリストリクティッドアイデンティファイア信号は、特定のデータ転送オペレーションの実行に応答して、あるいは、そのようなオペレーションの実行に備えてプロセッサ１１０により供給あるいはアサートされる。キャッシュコントロールモジュール１２４は、プロセッサ１１０によりアサートあるいは供給された信号１１６に基づいて、キャッシュメモリ１２２の１以上のウェイへのアクセスを制限するあるいはアクセスさせないようにする、キャッシュメモリ１２２に適用するアクセスポリシーを選択する。
【００１３】
プロセッサ１１０は、信号１１６をアサートするかどうかを判断するために、命令解析モジュール１６０（例えば、ソフトウェア、ハードウェア、あるいはファームウェアモジュール）を使用し、プロセッサにより実行される命令あるいは現在実行されている命令を解析してもよい。一実施形態では、モジュール１６０は、実行される命令が一時データや画像データなどの大きなデータブロックの転送に関連付けられる特定の形式の命令として識別されるということに基づき、リストリクティッドアイデンティファイア信号１１６をアサートするかどうかを決定する。モジュール１６０は、この識別に基づき、リストリクティッド信号１１６をアサートできるよう、あるいは信号１１６を直接的にアサートできるように、プロセッサ１１０のオペレーションをおこなってもよい。
【００１４】
一実施形態では、大きなデータの転送や相対的な一時データのデータ転送に関連づけられる特定の命令は、現在実行されている命令や実行される命令の少なくとも１つのプレフィックスフィールドやオペコードフィールドに基づいて識別される。例えば、特定の命令、例えば、ムーブストリング（ＭＯＶＳ）命令（オペランドサイズに応じて、ｘ８６アーキテクチャではオペコード０×Ａ４や０×Ａ５）を繰り返し行うために、ｘ８６プロセッシングアーキテクチャではＲＥＰ命令（ｘ８６アーキテクチャではプレフィックス０×Ｆ３）が一般に用いられる。従って、モジュール１６０はプロセッサ１１０により実行される命令を解析し、実行される命令のプレフィックスフィールドがＲＥＰ命令に関連づけられるプレフィックスフィールドに実質的に一致するかどうかを判断し得る。
【００１５】
さらに、モジュール１６０はまた、実行されるオペフィールドを細かく調べ、オペフィールドがムーブストリング命令に関連づけられるオペコード値に実質的に一致するかどうかを判断し得る。実行される命令の１つあるいは両方のフィールドがＲＥＰ  ＭＯＶＳ命令に一致するようなことがあれば、モジュール１６０は制限信号１１６をアサートし得る。しかし、ある場合では、このＲＥＰ  ＭＯＶＳ命令を、相対的に大きなデータブロックを使用しないオペレーションや一時データを転送しないオペレーションで使用してもよい。従って、少なくとも１つの実施形態では、キャッシュアクセスが制限されたデータ転送オペレーションを識別するためにＲＥＰＮＥ命令（ｘ８６アーキテクチャではプレフィックス０×Ｆ２）を使用してもよい。
【００１６】
例えば、特に、大きなデータブロックや相対的な一時データを含むデータ転送オペレーションをキャッシュ１２０を介して識別するために、ＲＥＰＮＥ  ＭＯＶＳ命令などの通常は使用されない特定の命令を使用してもよい。この実施形態では、モジュール１６０は、特定のオペレーション（例えば、ＲＥＰＮＥ  ＭＯＶＥＳオペレーション）を使用するオペレーションを識別するために、プロセッサ１１０によって実行されるオペレーションを細かく調べてもよい。この一意的オペレーションの識別に基づいて、モジュール１６０はリストリクティッドアイデンティファイア信号１１６をアサートし得る。
【００１７】
図２に、本開示の少なくとも１つの実施形態に係るキャッシュコントロールモジュール１２４の例示的実装を示す。図示しているように、キャッシュコントロールモジュール１２４は、１以上のキャッシュマスク２１２を備えたノーマルウェイマスクモジュール、１以上のキャッシュマスク２２２を備えたリストリクティッドウェイマスクモジュール２２０（例えば、ソフトウェア、ハードウェア、あるいはファームウェアモジュール）、ノーマルウェイマスクモジュール２１０からの出力とリストリクティッドウェイマスクモジュール２２０の出力とを入力し、プロセッサ１１０から供給され得るリストリクティッド信号１１６を選択入力するマルチプレクサ２３０、を含み得る。
【００１８】
マルチプレクサ２３０は、信号１１６の値に基づいてノーマルウェイマスクからキャッシュマスク２１２のうちの１つを、あるいはリストリクティッドウェイマスクモジュール２２０からキャッシュマスク２２２のうちの１つをその出力として選択する。プロセッサ１１０によって実行される命令が、大きなデータブロックの転送や一時データの転送を含む命令として識別されない場合、信号１１６はデアサートされ、これにより、マルチプレクサ２３０の出力時にノーマルウェイマスクモジュール２１０（例えば、ソフトウェア、ハードウェア、あるいはファームウェアモジュール）からキャッシュマスク２１２が供給される。これに対し、プロセッサ１１０によって実行される命令が、大きなデータブロックの転送や一時データの転送を含む命令として識別される場合、プロセッサ１１０は信号１１６をアサートする。この結果、マルチプレクサ２３０の出力時に１以上のキャッシュマスク２２２が出力される。
【００１９】
ウェイ選択モジュール２４０は、マルチプレクサ２３０から出力された１以上のキャッシュマスクを受け取り、プロセッサ１１０で命令を実行する間にキャッシュメモリ１２２の１つ以上のウェイへのアクセスが制限されるよう、これらのキャッシュマスクをキャッシュメモリ１２２のアクセスポリシーとして適用する。図示しているように、キャッシュモジュール２１２と２２２とは、複数のフィールドを含み得る。各フィールドはキャッシュメモリ１２２の複数のウェイのうちの１つに一致する。また、キャッシュメモリ２２２の特定のウェイへのアクセスは、特定のウェイに関連づけられたキャッシュマスクのフィールドに格納される値（つまり、０や１）に基づいて制御される。他の形態では、キャッシュマスク２１２や２２２は複数のフィールドを含み得る。各フィールドは特定のキャッシュラインに関連づけられており、前のフィールドの各フィールドに格納された値は対応するキャッシュラインへのアクセスを制御する。
【００２０】
少なくとも１つの実施形態では、データ転送オペレーション後にプロセッサ１１０によって使用されることが予測される有効データが上書きされないようにする、あるいは、上書きを制限することができるよう、大きなデータブロックの転送や一時データの転送を伴わないオペレーション中に実行あるいはインプリメントされるキャッシュマスク２１２は、一時データや大きなデータブロックの転送を伴うオペレーション中に実行されるキャッシュマスク２２２ほどは制限的ではない。キャッシュマスク２１２やキャッシュマスク２２２を使用して実行される特定のアクセスコントロールポリシーは予め定められていてもよいし、あるいは、プロセッサ１１０やその他の装置によって実行される処理システム２５０によってオンザフライで、即ちその場で構築あるいは修正されてもよい。
【００２１】
例えば、処理システム２５０あるいはキャッシュ１２０のその他の構成要素は、最も最近に使用されたキャッシュ部分、最も長時間未使用のキャッシュ部分、あるいは、その他の適切なパフォーマンスパラメータを有するキャッシュ部分を判断あるいは識別するために、キャッシュメモリ１２２を監視してもよい。このような情報を使用して、処理システムは、頻繁に使用されると識別されたウェイや最も最近に使用されたものと識別されるこれらのウェイを保護し、その一方で、最も長時間未使用であると識別されたウェイや最後に使用されたものと識別されたウェイへのアクセスを可能とするように、キャッシュマスク２１２あるいは２１２のうちの一方あるいはその両方をセットしてもよい。さらに、特定のウェイに格納される有効データの量など、その他の事項を用いて、特定のウェイへのアクセスが特定のアクセスコントロールポリシーで認められるべきかどうかを判断してもよい。キャッシュマスクを使用したコントロールアクセスポリシーの例示的実行を示しているが、本文に示したガイドラインを使用する当業者たちは、本開示の精神や範囲から逸れることなくその他の技術を使用してキャッシュアクセスポリシーを実行してもよい。
【００２２】
一実施形態では、ウェイ選択モジュール２４０は、マルチプレクサ２３０から出力されるキャッシュマスクを受け取り、出力されたキャッシュマスクによって示されるアクセスコントロールポリシーを実行する。一実施形態では、キャッシュウェイマスクはキャッシュの各ウェイに対して１ビットを含む。１ビットがマスクにアサートされると、対応するウェイは、アクセスされているデータにより置き換えられないようになる。代わりに、キャッシュコントローラは、従来のキャッシュリプレースメントポリシーを使用して、デアサートされたマスクビットを有するウェイから、新たなデータで上書きされるウェイを選択することになる（例えば、最も長時間未使用のウェイや未使用ウェイが選択される）。
【００２３】
図３に、本開示の少なくとも１つの実施形態に係る、キャッシュへのアクセスを制御するための例示的方法３００を示す。方法３００はステップ３０２から開始する。ステップ３０２において、プレフィックスフィールドとオペコードフィールドを含む命令が受信される。ステップ３０４において、プレフィックスフィールドの値に基づいてキャッシュマスクが選択される。キャッシュマスクの選択において、プレフィックスフィールドが第１の所定の値に一致する場合に第１のキャッシュマスクが選択され、プレフィックスフィールドが第２の所定の値に一致する場合に第２のキャッシュマスクが選択される。ステップ３０６において、選択したキャッシュマスクに基づいてキャッシュへのアクセスが制御される。オペコードフィールドは、ＭＯＶＳ命令などのデータ転送命令を示し、プレフィックスフィールドはＲＥＰ、ＲＥＰＥ、あるいはＲＥＰＮＥなどの、リピート型の命令を示し得る。キャッシュへのアクセスは、タグ、ウェイあるいはこの組合せにより制限され得る。
【００２４】
図４に、本開示の少なくとも１つの実施形態に係る、キャッシュへのアクセスを制御するための例示的方法４００を示す。方法４００はステップ４０２から開始する。ステップ４０２において、転送されるデータのデータ形式が決定される。ステップ４０４において、データを転送するデータ転送オペレーションが決定される。ステップ４０６において、データが第１の形式の場合にデータ転送オペレーションとともに使用する第１のプレフィックスが選択される。ステップ４０８において、データが第２の形式の場合にデータ転送オペレーションとともに使用する第２のプレフィックスが選択される。一実施形態では、第１の形式のデータは画像データであり、第２の形式のデータは第１の形式のデータとは異なるデータである。他の実施形態では、第１の形式のデータは画像フレームバッファに転送されるデータであるか、又は、第１の形式のデータは再利用されない一時データである。第１プレフィックスは第１キャッシュマスクを選択しやすくするために選択され、第２プレフィックスは第２キャッシュマスクを選択しやすくするために選択される。
【００２５】
図５および６に、本開示の少なくとも１つの実施形態に係るキャッシュコントロールモジュール１２４の別の例示的実施形態を示す。図５に示した例では、キャッシュコントロールモジュール１２４は、ウェイ選択モジュール５０４に接続された、最も最近使用された（ＭＲＵ:Most Recently Used）／最も長時間未使用（ＬＲＵ:Least Recently Used）アレイ５０２を含む。ＭＲＵ／ＬＲＵアレイ５０２は、キャッシュウェイ、キャッシュ列、および／あるいはキャッシュライン（あるいは任意のその他の種類のキャッシュパーティション）のＬＲＵおよび／あるいはＭＲＵ情報を維持するために使用される。ウェイ選択モジュール５０４は、リストリクティッドアイデンティファイア信号１１６の受信に応答して、最も長時間未使用のデータ（したがって、プロセッサが最もアクセスしていないとされるデータ）を有するキャッシュメモリ１２２（図１）の１以上のウェイを識別するためにＭＲＵ／ＬＲＵアレイ５０２を使用することができる。次に、ウェイ選択モジュール５０４は、キャッシュメモリ１２２に対するアクセスポリシーを実行し得る。これにより、信号１１６をアサートする契機となるデータ転送オペレーションは、最も長時間未使用のデータを有するという理由で、キャッシュメモリの１以上のウェイだけに制限される。
【００２６】
図６の方法６００に、図５に示したコントロールモジュール１２４を使用した例示的オペレーションを示す。方法６００はステップ６０２において開始する。ステップ６０２において、キャッシュへのデータ転送命令を示す信号（例えば、信号１１６）が受信される。ステップ６０４において、複数のウェイのうち最も長時間未使用の（ＬＲＵ）情報に基づき、キャッシュの複数のウェイのうちの第１サブセットが決定される。ステップ６０６において、データ転送中、アクセスはキャッシュのウェイのうちの第１サブセットだけに制限される。
【００２７】
図７および８に、本明細書の少なくとも１つの実施形態に係るキャッシュコントロールモジュール１２４の他の例示的実装を示す。図７に示した例では、キャッシュコントロールモジュール１２４は、最も最近使用された（ＭＲＵ）／最も長時間未使用（ＬＲＵ）アレイ５０２、ブロック選択モジュール７０４、および、一時的ブロックタグレジスタ７０６を含む。図５に関連して上述しているように、ＭＲＵ／ＬＲＵアレイ５０２は、キャッシュメモリ１２２についてのＬＲＵおよび／あるいはＭＲＵ情報を維持するために使用される。この情報を用いて、ブロック選択モジュール７０４は、データ転送オペレーション中に使用されるキャッシュ列に対して、最も長時間未使用の（複数の）キャッシュラインを識別し得る。次に、ライン選択モジュール７０４は、データ転送オペレーション中にキャッシュメモリ１２２の識別されたＬＲＵキャッシュラインだけにアクセスを制限するキャッシュメモリ１２２に対するアクセスポリシーを実行し得る。
【００２８】
従来のシステムでは、一時データを各種キャッシュの特定のパーティションへ転送すると、一時データの書込みをこの特定のパーティションへ反映するためにキャッシュパーティションに関連づけられたＭＲＵ／ＬＲＵ情報が更新される。この一時データを保持するキャッシュパーティションがＭＲＵデータとして示されると、キャッシュコントロールロジック回路は通常、これらのキャッシュパーティションがその他のキャッシュパーティションよりも相対的に古くなるまで上書きされないようにする。しかし、転送されたデータはキャッシュに一時的に存在するだけなので、これらのキャッシュパーティションは、データ転送オペレーションの完了後にアクセス可能となるのが好ましい。
【００２９】
したがって、一実施形態では、ライン選択モジュール７０４は、データ転送に使用されるキャッシュラインのＬＲＵ／ＭＲＵステータスがそのキャッシュラインを使用した結果アップデートされないよう、一時データを含むデータ転送オペレーション中にＭＲＵ／ＬＲＵアレイ５０２がアップデートされないようにする。あるいは、ライン選択モジュール７０４は、データ転送において使用されるキャッシュラインが最も長時間未使用のキャッシュラインであったことを示すよう、データ転送において使用されるキャッシュラインに対応するアレイ７０６のエントリが変更されるように、ＭＲＵ／ＬＲＵアレイ５０２を修正してもよい。この結果、一時データを格納するために使用したキャッシュラインは、データ転送オペレーション後のその他のオペレーションに利用可能である。
【００３０】
従来のシステムは複数のキャッシュレベルを利用し、これによりデータがデータ転送オペレーション中に複数のキャッシュに分配されることは明らかであろう。例えば、処理システムは、プロセッサによって使用されるデータを一時的に格納し易くするためにレベル１（Ｌ１）キャッシュ、レベル２（Ｌ２）キャッシュを使用してもよい。しかし、データ転送オペレーション中に一時データが高レベルキャッシュに格納された後、従来のシステムにおける対応のＭＲＵ／ＬＲＵ情報は通常、この一時データは最も最近使用されたデータであり、よって、低レベルの犠牲キャッシュ(victim cache)へデータのオーバーフローを引き起こすおそれがあることを示す。
【００３１】
この状況に対抗するために、ライン選択モジュール７０４は、キャッシュメモリ１２２に対応するキャッシュラインが一時データを含んでいるかどうかを反映するよう、一時ラインタグレジスタ７０６をさらに維持し得る。例えば、レジスタ７０６はキャッシュメモリ１２２の各キャッシュラインに対して１ビットフィールドを含み得る。一時データを格納するために特定のキャッシュラインが使用される場合、ライン選択モジュール７０４は、この特定のキャッシュラインが一時データを保持していることを示すように、この特定のキャッシュラインに対応するレジスタ７０６のエントリに例えば“１”を書込む。
【００３２】
その後、犠牲キャッシュにデータを送るかどうかを判断する際に、一時ラインタグレジスタ７０６を使用することもできる。Ｌ２キャッシュ７１０などの低レベルキャッシュに関連づけられた犠牲モジュール７０８は、データをＬ２キャッシュ７１０へ転送可能とする前にレジスタ７０６を解析し得る。特定のキャッシュラインに関連づけられたレジスタ７０６のフィールドが、このキャッシュラインが一時データを保持していることを示す“１”を有する場合、犠牲モジュール７０８は、データをＬ２キャッシュ７１０にまでスピルするのではなく、キャッシュ１２０にキャッシュラインのデータを格納するように指示する。次に、犠牲モジュール７０８は、対応のキャッシュラインがデータ転送オペレーションからの一時データをもはや含んでいないことを示すために、“０”を書込むことによりレジスタ７０６のフィールドをクリアにし得る。従って、犠牲モジュール７０８が、特定のキャッシュラインに対応するレジスタ７０６のフィールドに“０”を検出すると（したがって、特定のキャッシュラインのデータが一時データではないことを示す）、犠牲モジュール７０８は、データがＬ２キャッシュ７１０にまでスピルすることを可能とする。
【００３３】
図８の方法８００は、図７に示したコントロールモジュール１２４を使用した例示的オペレーションを示す。方法８００はステップ８０２において開始する。ステップ８０２では、キャッシュへデータ転送する命令を示す信号（信号１１６）が受信される。ステップ８０４では、キャッシュの１以上のキャッシュ列に対する第１のキャッシュラインが、このキャッシュラインのＬＲＵ情報に基づいて決定される。ステップ８０６では、データ転送中、アクセスは１以上のキャッシュ列の各々の第１キャッシュラインだけに制限される。
【００３４】
上述した内容は例示的なものであって制限的なものではない。また、添付の請求項は、そのような全ての修正、改良、および本発明の範疇に属するその他の実施形態をカバーするものである。従って、法律で規定される限り、本発明の範囲は以下の請求の範囲および等価物を可能な限り最も広い範囲で解釈することによって判断されるものであって、これまでに述べた詳細な説明によって制限や限定されないものである。
【図面の簡単な説明】
【００３５】
【図１】本開示の少なくとも１つの実施形態に係る例示的処理システムを示したブロック図。
【図２】本開示の少なくとも１つの実施形態に係る例示的キャッシュコントロールモジュールを示したブロック図。
【図３】本開示の少なくとも１つの実施形態に係る例示的キャッシュアクセスコントロール法を示したフロー図。
【図４】本開示の少なくとも１つの実施形態に係る例示的キャッシュアクセスコントロール法を示したフロー図。
【図５】本開示の少なくとも１つの実施形態に係る例示的キャッシュコントロールモジュールを示したブロック図。
【図６】本開示の少なくとも１つの実施形態に係る例示的キャッシュアクセスコントロール法を示したフロー図。
【図７】本開示の少なくとも１つの実施形態に係る例示的キャッシュコントロールモジュールを示したブロック図。
【図８】本開示の少なくとも１つの実施形態に係る例示的キャッシュアクセスコントロール法を示したフロー図。
【図１】
2008530656.tif 000003
【図２】
2008530656.tif 000004
【図３】
2008530656.tif 000005
【図４】
2008530656.tif 000006
【図５】
2008530656.tif 000007
【図６】
2008530656.tif 000008
【図７】
2008530656.tif 000009
【図８】
2008530656.tif 000010
【手続補正書】
【提出日】平成19年4月27日(2007.4.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
転送されるデータのデータ形式を決定するステップ（４０２）、
前記データを転送するためのデータ転送コマンドを決定するステップ（４０４）、
前記データが第１の形式の場合に、前記データ転送コマンドとともに使用する第１のプレフィックスを選択するステップ（４０６）、および、
前記データが第２の形式の場合に、前記データ転送コマンドとともに使用する第２のプレフィックスを選択するステップ、を含み、
前記第１あるいは第２プレフィックスに応じて、前記データを格納するためのキャッシュのサブセットへのアクセスがなされる方法。
【請求項２】
第１の形式の前記データは画像データであり、前記第２の形式のデータは前記第１の前記形式のデータとは異なる、請求項１に記載の方法。
【請求項３】
第１の形式の前記データは画像フレームバッファ（１４０）に転送される、請求項１に記載の方法。
【請求項４】
第１の形式の前記データは再利用されることのない一時データである、請求項１に記載の方法。
【請求項５】
前記第１のプレフィックスは第１のキャッシュマスク（２１２、２２２）の選択を容易にし、前記第２のプレフィックスは第２のキャッシュマスク（２１２、２２２）の選択を容易にするために選択される、請求項１に記載の方法。
【請求項６】
システムメモリ（１３０）、
プロセッサ（１１０）、
フレームバッファ（１４０）、
キャッシュメモリ（１２２）、および、
前記プロセッサ（１１０）によって実行される転送を実行するための命令の形式に基づいて前記フレームバッファ（１４０）へデータを転送する間に前記キャッシュメモリ（１２２）へのアクセスを制御するキャッシュコントローラ（１２４）、を含むシステム。
【請求項７】
前記キャッシュコントローラ（１２４）はさらに、前記プロセッサ（１１０）によって実行される前記命令の形式に基づいて複数のキャッシュマスク（２１２、２２２）から第１のキャッシュマスク（２１２、２２２）を選択し、前記選択された第１のキャッシュマスク（２１２）は、前記データ転送中に前記キャッシュメモリ（１２２）の複数のウェイの各々のアクセス可能性を示す、請求項６に記載のシステム。
【請求項８】
前記キャッシュコントローラ（１２４）は、前記キャッシュメモリ（１２２）の複数のウェイのうちの第１サブセットだけにアクセスを限定することで、前記キャッシュメモリへのアクセスを制御する、請求項６に記載のシステム。
【請求項９】
前記キャッシュコントローラ（１２４）は、前記複数のウェイの、最も長時間未使用の情報に基づいて、前記ウェイの第１サブセットからなる前記１以上のウェイを決定する、請求項８に記載のシステム。
【請求項１０】
前記キャッシュコントローラ（１２４）は、前記キャッシュメモリ（１２２）の１以上のキャッシュラインの最も長時間未使用のフィールドだけにアクセスを許可することで、前記キャッシュメモリ（１２２）へのアクセスを制御する、請求項６に記載のシステム。
【国際調査報告】
2008530656.tif 000011
2008530656.tif 000012