(57)【要約】【課題】異なるキャッシュ・コヒーレンス・ドメイン内のエージェント間での情報共有を可能にする。【解決手段】ある実施形態では、グラフィック装置が、情報を記憶または読み出しするために一つまたは複数の処理コアによって使用される一つまたは複数のキャッシュを使用しうる。前記一つまたは複数のキャッシュは、前記グラフィック装置に関するプログラミングおよびコヒーレンス規則に影響しない仕方で、一つまたは複数の処理コアによってアクセスされうる。【選択図】図１
2014167831.tif 000002
【特許請求の範囲】
【請求項１】
第一の中央処理ユニット（CPU）と；
第二の中央処理ユニットと；
非CPU機能ユニットと；
前記第一の中央処理ユニットによってまたは前記第二の中央処理ユニットによって共有データを追跡するためにのぞき見されることができない、前記非CPU機能ユニットに付随するキャッシュ階層の少なくとも一つのキャッシュと；
前記第一の中央処理ユニット、前記第二の中央処理ユニットおよび前記非CPU機能ユニットに結合された相互接続論理とを有するプロセッサであって：
前記相互接続論理は、コヒーレントな共有データの共有のためにメイン・メモリへのアクセスに頼ることなく、前記第一の中央処理ユニット、前記第二の中央処理ユニットおよび前記非CPU機能ユニットの間での前記コヒーレントな共有データの共有を可能にする、
プロセッサ。
【請求項２】
前記非CPU機能ユニットは、前記第一の中央処理ユニットおよび前記第二の中央処理ユニットとは異なるコヒーレンス・ドメインにおいて動作するグラフィック処理ユニットである、請求項１記載のプロセッサ。
【請求項３】
前記相互接続論理は、前記グラフィック処理ユニットが前記第一の中央処理ユニットに付随するキャッシュにアクセスできるようにするスヌープ論理を有する、請求項２記載のプロセッサ。
【請求項４】
前記相互接続論理が、前記第一の中央処理ユニットが前記グラフィック処理ユニットに付随するキャッシュをのぞき見できるようにするのぞき見論理を有する、請求項２記載のプロセッサ。
【請求項５】
前記第一の中央処理ユニットに付随するキャッシュが、前記グラフィック処理ユニットと共有される最終レベル・キャッシュである、請求項３記載のプロセッサ。
【請求項６】
前記最終レベル・キャッシュがL2キャッシュである、請求項５記載のプロセッサ。
【請求項７】
前記グラフィクス処理ユニットからのメモリ・アクセスに応答して仮想アドレスを物理アドレスに変換する、前記グラフィック処理ユニットに結合された変換論理をさらに有する、請求項２ないし６のうちいずれか一項記載のプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、概括的には情報処理の分野に関する。より特定的には、本発明の実施形態は少なくとも二つの異なるキャッシュ・コヒーレンス・ドメイン（cache  coherency  domain）において動作するエージェント間でキャッシュ・コヒーレンスを可能にする技法に関する。
【背景技術】
【０００２】
コンピューティング・プラットフォームおよびマイクロプロセッサにますます多くの機能が組み込まれるにつれ、異なる機能ユニットの間での情報共有が増す傾向がある。たとえば、グラフィックまたは他のスループット論理を、一つまたは複数のホスト中央処理ユニット（CPU）または「コア」と同じコンピューティング・プラットフォーム、パッケージまたは集積回路に組み込むことは、それら一つまたは複数のコアとグラフィック論理〔グラフィクス・ロジック〕との間で情報を共有することを望ましくすることがありうる。いくつかの従来技術の事例では、異なる機能ユニットが同じシステム、パッケージまたはダイに組み込まれる場合、一つまたは複数のコアによってアクセスされる（記憶されるまたは読まれる）情報は、グラフィック論理のような他の機能ユニットとは異なるキャッシュ・コヒーレンス・ドメイン内にある対応するキャッシュ階層（たとえばレベル１、中間レベル、レベル２キャッシュ）において維持される。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
異なるキャッシュ・アドレスの間で異なるコヒーレンス・ドメインにおいて、あるいは異なるキャッシュ・コヒーレンス・ドメインに従ってデータを維持することは、より多くのキャッシュ・メモリが使用されることを要求しうる。このことは、システム・コストおよび電力消費を増大させうる。さらに、異なる機能ユニットの間で情報が共有される状況において、異なる対応するキャッシュ階層ドメインを維持すると、異なる機能ユニットの間で情報を共有するためには、各機能ユニットはDRAMのようなメイン・メモリ・ソースにアクセスしなければならなくする。DRAMのようなメイン・メモリ・ソースは典型的にはキャッシュのような他のメモリ構造よりもアクセス速度の面でより低速である。したがって、異なる機能ユニットの間で情報を共有するためにメイン・メモリに頼ることは、機能ユニットおよび／またはシステムのパフォーマンスを劣化させることがありうる。
【課題を解決するための手段】
【０００４】
本発明の課題は請求項記載の手段によって解決される。
【０００５】
本発明の実施形態は限定ではなく例として付属の図面において図示される。同様の参照符号は同様の要素を指す。
【図面の簡単な説明】
【０００６】
【図１】本発明の少なくとも一つの実施形態が使用されうるシステムのブロック図である。
【図２】本発明の少なくとも一つの実施形態が使用されうるプロセッサを示す図である。
【図３】本発明の少なくとも一つの実施形態が使用されうる共有バス・コンピュータ・システムのブロック図である。
【図４】本発明の少なくとも一つの実施形態が使用されうるポイントツーポイント相互接続コンピュータ・システムのブロック図である。
【図５】ある実施形態で使用されうる動作を示す流れ図である。
【発明を実施するための形態】
【０００７】
本発明の実施形態はコンピュータ・システムおよび情報処理に関する。より特定的には、本発明の実施形態は、少なくとも一つの中央処理ユニット（CPU）が、別の処理論理（たとえばグラフィック処理論理）によってアクセスまたは生成される情報への可視性を得る、よってそのような情報とのあるレベルのコヒーレンスを得ることを許容する技法に関する。そのような別の処理論理は、前記少なくとも一つのCPUとは異なるコヒーレンス・ドメインにおいて動作してもよい。いくつかの実施形態では、一つまたは複数のCPUは「最終レベル・キャッシュ（last  level  cache）」（LLC）または「レベル２」（L2）キャッシュのようなあるレベルのキャッシュを、一つまたは複数の処理論理（たとえばグラフィック論理）と共有し、該一つまたは複数の処理論理は前記一つまたは複数のCPUとは異なるコヒーレンス・プロトコルを実装するあるいはそうでなければ異なるコヒーレンス・ドメイン内で動作するのでもよい。ある実施形態では、CPUおよびグラフィック論理は同じダイ、パッケージまたはシステム内に組み込まれ、CPUはグラフィック論理のキャッシュ・コヒーレンス階層における少なくとも一つのレベルのキャッシュならびに前記グラフィック論理がやはりアクセスしうるLLCへのアクセスを有しうる。これによりCPUとグラフィック論理との間でDRAMのようなメイン・メモリ・ソースにアクセスすることなく情報が共有できる。
【０００８】
図１は、少なくとも一つの実施形態が使用されうるシステムを示している。図１において、少なくとも一つのCPU  １０１および少なくとも一つのグラフィック論理（graphics  logic）１０５が同じダイ、パッケージまたはシステム内に統合されている。さらに、ある実施形態では、CPUおよびグラフィック論理はそれぞれのキャッシュ階層と通信する。該キャッシュ階層は第一レベル・キャッシュまたは「レベル１」（L1）キャッシュ１０３、１０４、中間レベル（mid-level）・キャッシュ１０７、１０８および最終レベル・キャッシュ（LLC）または「レベル２」（L2）キャッシュ１１０を含みうる。ある実施形態では、各L1および中間レベル・キャッシュは異なる論理構造である。一方、LLCは同じ情報を記憶しうる構成された一つのキャッシュであり、したがってCPUのL1およびMLCならびにグラフィック論理のMLCのそれぞれに記憶された情報を含む。ある実施形態では、LLCは、グラフィック論理がそのL1キャッシュ１０４の内容をそのMLC  １０８に移動またはコピーすることによって、グラフィック論理のL1キャッシュを含むこともできる。ここで、MLC  １０８はCPUコヒーレンス制御動作に関してLLCとのコヒーレンスを維持する。グラフィックL1キャッシュ１０４（これはグラフィック・コヒーレンス・ドメイン１１１内にある）とグラフィックMLC（これはCPUコヒーレンス・ドメイン１０９内にある）との間で情報をコピーまたは移動することによって、CPUコヒーレンス・ドメイン１０９（これはある実施形態では、CPU  １０１、L1キャッシュ１０３、MLC  １０７およびLLC  １１０を含む）とグラフィック・コヒーレンス・ドメイン１１１（これはある実施形態ではグラフィック論理１０５およびグラフィックL1キャッシュ１０４を含む）との間で情報が共有できる。
【０００９】
いくつかの実施形態では、グラフィック論理によって仮想的にアドレッシングされうるグラフィックL1キャッシュ１０４に記憶された情報が、グラフィック画像のレンダリングに関連するさまざまなイベントの発生に応答してグラフィックMLC  １０８に移動またはコピーされる。ある実施形態では、グラフィックL1キャッシュ１０４からMLC  １０８への情報の移動／コピーは、グラフィック・ドライバまたは他の何らかの論理もしくはソフトウェア・プログラムによって管理および実行される。グラフィックL1キャッシュ１０４内の情報をMLC  １０８に移動またはコピーさせるイベント後には、その情報はCPUコヒーレンス・ドメイン内にあり、ある実施形態では物理アドレスを使って、あるいはCPUによって使用される他のアドレッシング方式（たとえば仮想アドレス）を使って、CPUによってアドレッシングおよびアクセスされうる。
【００１０】
CPUおよびグラフィック・コヒーレンス・ドメインに加えて、図１のシステムは表示装置（たとえばモニタ）１１５をも含む。この表示装置は、CPUコヒーレンス・ドメインおよびグラフィック・コヒーレンス・ドメインに関して非コヒーレントである独自のコヒーレンス・ドメイン１１３内にあってもよい。ある実施形態では、表示装置１１５は、CPUまたはグラフィック論理のキャッシュ階層内のキャッシュと直接ではなく、メイン・システム・メモリ１２０と通信してもよい。
【００１１】
ある実施形態では、グラフィック論理１０５は、システム・メモリ１２０に頼ることなく、CPUによってLLC  １１０内に記憶された情報にアクセスしてCPUのL1（１０３）およびCPUのMLC（１０７）内の情報をのぞき見することによって、CPUによって利用可能または修正可能な情報にアクセスをもちうる。さらに、ある実施形態では、CPUは、LLC  １１０やシステム・メモリ１２０に頼ることなく、グラフィック論理の中間レベル・キャッシュ１０７に記憶されている情報にアクセスするまたは「のぞき見」してもよい。ある実施形態では、CPUやグラフィック装置がキャッシュ階層へのアクセスに比べてかなりの時間がかかるメイン・システム・メモリへのアクセスを行う必要なく、CPUコヒーレンス・ドメインとグラフィック論理コヒーレンス・ドメインとの間で情報が共有されてもよい。さらに、ある実施形態では、それぞれのCPUまたはグラフィック・キャッシュ・コヒーレンス・プロトコルを著しく変えたり影響したりすることなく、CPUコヒーレンス・ドメインとグラフィック論理コヒーレンス・ドメインとの間で情報が共有されうる。
【００１２】
ある実施形態では、グラフィック論理は、そのキャッシュ・コヒーレンス・ドメイン（１１１）内のデータにアクセスするために仮想アドレスを生成する。しかしながら、グラフィック論理によって読まれるだけである、または他の仕方でグラフィック論理によって「所有されている」もの（「R/Oキャッシュ」）のような、グラフィック・コヒーレンス・ドメイン内のキャッシュの一部は、仮想タグを使うだけでもよい。一方、グラフィック論理によって読み書きされるもの（「R//Wキャッシュ」）のようなグラフィック・コヒーレンス・ドメイン内の他のキャッシュは、仮想および物理的アドレッシングの両方をサポートするために仮想タグおよび物理的タグの両方を使用しうる。ある実施形態では、キャッシュ・ミスがあった場合、キャッシュ階層へのグラフィック論理のアクセスは仮想アドレスから物理アドレスに変換される。それにより、システム・メモリ内の適正な物理アドレスが生成できる。
【００１３】
CPUコヒーレンス・ドメインでは少なくとも二つの規則が適用される。第一に、キャッシュ・コヒーレンス規則は、位置ごとのアクセス順序付けが互いにシーケンシャルに整合的（sequentially  consistent）であることを要求してもよい。シーケンシャルに整合的なアクセスは、あるキャッシュ位置にアクセスするすべての動作についてグローバルな、順序に従った（in-order）可視性を要求する。第二に、CPU順序付け規則は典型的には、単一のプロセッサによる諸書き込みはすべてのプロセッサによって同じであると観察される（observed）ことを要求するが、異なるプロセッサからの諸書き込みは異なる順序で観察されてもよい。しかしながら、プロセッサは、実行の順序において、自らの諸書き込みを遵守しなければならない。
【００１４】
グラフィック・キャッシュ・コヒーレンス・ドメインは、ホストCPUのキャッシュ・コヒーレンス・ドメインとはいくつかの点で異なることがある。一つには、グラフィック・キャッシュ・ドメインでは、コヒーレンスは画像レンダリング・プロセスにおけるいくつかの点においてのみ保証されうる。一方、典型的なCPUキャッシュ・ドメインにおけるコヒーレンスは継続的に維持される。さらに、グラフィック・コヒーレンス・ドメイン・キャッシュは典型的には仮想的にアドレッシングされ、のぞき見はされないので、L1または中間レベル・キャッシュ（MLC）内に記憶された情報がLLC内に含まれることは保証されない。したがって、LLCからあるラインが追い出されるとき、それより低レベルのキャッシュは更新されないことがありうる。補償するために、グラフィック論理は、無効‐修正（invalid-to-modified）（「ItoM」）トランザクションを使用してもよい。全ライン追い出しのためにはこれらの追い出しライトバック・トランザクション、部分ライン追い出しのためにはリード・フォー・オウナーシップ（RFO:  read-for-ownership）トランザクションを実行するためである。最後に、グラフィック装置は典型的には、順序外のアンコア（un-core）ファブリック（fabric）に接続された非投機的（non-speculative）な順序外（out-of-order）機械である。グラフィック論理は典型的には、キャッシュ階層またはメモリに対してアクセスを発した後ではアクセスを並べ替えることはできないので、従属アクセス（dependent  accesses）は、発される前に、その先行者がグローバルに観察されていたことを確かめる必要がある。
【００１５】
本発明の実施形態は、グラフィック・キャッシュ・コヒーレンス・ドメインとCPUキャッシュ・コヒーレンス・ドメインとの間でメイン・システム・メモリへのアクセスに頼ることなくデータが共有されることを許容しつつ、両ドメイン間の相違を考慮に入れる。ある実施形態では、CPUキャッシュ・コヒーレンス規則は、グラフィック論理の中間レベル・キャッシュ、LLCおよびメイン・メモリを含むいかなる物理的にアドレッシングされる構造にも適用される。CPUドメインとグラフィック・ドメインとの間のコヒーレンス境界横断アクセスのために、CPUはグラフィックMLCをのぞき見してもよい。グラフィックMLCはCPUコヒーレンス・ドメインにおけるのと同じように振る舞うであろう。さらに、本発明の実施形態は、グラフィックL1およびMLCに記憶されているデータをLLC内に含めることを許容する。それにより、グラフィック論理は、メイン・システム・メモリに頼ることなく、LLCを利用しうる。ある実施形態では、グラフィックL1からのデータは、レンダリング・イベントに応答してグラフィック装置がL1データをそのMLCにコピーまたは移動することによって、LLC内に含められる。それによりグラフィックL1データをCPUコヒーレンス・ドメイン内に入れ、それがLLC内に包まれることを保証する。するとグラフィック論理はのちに、この情報がグラフィックL1やMLC内に見出されなかった場合、LLCからこの情報にアクセスできる。
【００１６】
図２は、本発明の少なくとも一つの実施形態が使用されうるプロセッサを示している。特に、図２は、一つまたは複数の中央処理ユニット（CPU）２０５および２１０ならびに少なくとも一つの非CPU機能ユニット２０７および２１３を有するプロセッサ２００を示している。図２にはまた、機能ユニット２０７および２１３によって実行されない他の動作を実行しうる少なくとも一つの他の非CPU機能ユニット２１５が示されている。ある実施形態では、機能ユニット２０７、２１３および２１５は、グラフィック処理、メモリ制御およびオーディオ、ビデオ、ディスク制御、デジタル信号処理等のような周辺機器制御といった機能を含みうる。いくつかの実施形態では、プロセッサ２００はまた、I/O制御のような図２に示されていない他の論理をも含んでいてもよい。ある実施形態では、マルチプロセッサ・システムにおける各プロセッサまたはマルチコア・プロセッサにおける各プロセッサ・コアが、一つまたは複数のCPUと一つまたは複数のグラフィック論理との間の情報共有を可能にするために論理２１９を含むまたは他の形でそのような論理２１９と関連付けられていてもよい。
【００１７】
いくつかの実施形態において、プロセッサ２００は汎用CPUであってもよい。他の実施形態では、プロセッサは、汎用CPU集積回路およびグラフィック固有ハードウェアもしくは他の並列計算ハードウェアの両方を含みうるシステム内でグラフィック固有機能を実行できる汎用CPUまたはハードウェアのいずれかであってもよい。汎用計算がグラフィック・エンジン、テクスチャ・サンプルなどのような並列計算ハードウェアとますます統合されるにつれ、論理２１９はますます多用途かつ位置独立になる。結果として、論理２１９はハードウェア／ソフトウェアまたはその任意の組み合わせを含むことができ、プロセッサ２００の任意の部分の中または外に位置されまたは統合されることができる。
【００１８】
ある実施形態では、論理２１９は、CPUやグラフィック論理のキャッシュ・コヒーレンス規則を著しく修正することなくCPUがグラフィックMLCをのぞき見できるようにする論理を含む。さらに、論理２１９は、グラフィック・デバイスが、まずメイン・メモリに頼ることなく、LLC内の情報にアクセスすることを許容する論理を含みうる。さらに、論理２１９は、グラフィックL1キャッシュ内に記憶されている情報が今やグラフィックMLC内に存在するときCPUに通知し、それによりCPUが該情報をのぞき見しうるようにするのを助けてもよい。
【００１９】
図３は、本発明のある実施形態が使用されうる共有バス・コンピュータ・システムを示している。マイクロプロセッサ３０１〜３１５は、一つまたは複数のCPU（３２３、３２７、３３３、３３７、３４３、３４７、３５３、３５７）、グラフィック装置（３０７、３１７、３２７、３３７）、メモリ・コントローラ（３２５、３３５、３４５、３５５）、I/O制御またはPCIもしくはPCIeコントローラ（３２０、３３０、３４０、３５０）のような他の機能ユニットといったさまざまな機能ユニットを含みうる。図３のシステムは、マイクロプロセッサを周辺機器制御装置３６０とインターフェースをもたせるためにI/Oコントローラ３６５をも含んでいてもよい。
【００２０】
ある実施形態では、システムは、CPUやグラフィック論理のキャッシュ・コヒーレンス規則を著しく修正することなくCPUがグラフィックMLCをのぞき見できるようにする論理３１９を含む。さらに、論理３１９は、グラフィック・デバイスが、まずメイン・メモリに頼ることなく、LLC内の情報にアクセスすることを許容する論理を含みうる。さらに、論理２１９は、グラフィックL1キャッシュ内に記憶されている情報が今やグラフィックMLC内に存在するときCPUに通知し、それによりCPUが該情報をのぞき見しうるようにするのを助けてもよい。
【００２１】
いくつかの実施形態では、図３に示される要素の一部または全部がマイクロプロセッサに含められていてもよく、直接メモリ・インターフェース（DMI:  direct  memory  interface）、PCIエクスプレス・グラフィクス（PEG:PCI  express  graphics）相互接続などのような他の相互接続を含んでいてもよい。構成に関わりなく、本発明の実施形態は、図３のシステムのいかなる部分に含まれ、あるいは他の仕方で関連付けられてもよい。図３のシステムは、メイン・メモリ（図示せず）をも含んでいてもよい。メイン・メモリは、動的ランダム・アクセス・メモリ（DRAM）、ハードディスク・ドライブ（HDD）またはネットワーク・インターフェースを介して当該コンピュータ・システムからリモートに位置されるメモリ・ソースといった、さまざまな記憶装置および技術を含むさまざまなメモリ構造を含みうる。図３のシステム内のキャッシュ・メモリは、プロセッサ内またはプロセッサの近傍に、たとえばプロセッサのローカル・バス上に位置されうる。
【００２２】
さらに、キャッシュ・メモリは、六トランジスタ（6T）セルまたは同じくらいもしくはより高速なアクセス速度の他のメモリ・セルといった比較的高速なメモリ・セルを含んでいてもよい。
【００２３】
図３に示される共有バス・コンピュータ・システムに加えて、ポイントツーポイント（P2P:  point-to-point）相互接続システムおよびリング相互接続システムを含め、他のシステム構成が本発明のさまざまな実施形態と一緒に使用されてもよい。たとえば図４のP2Pシステムがいくつかのプロセッサを含んでいてもよい。そのうち二つのプロセッサ４７０、４８０だけが例として図示されている。プロセッサ４７０、４８０はそれぞれ、メモリ４２、４４と接続するローカルなメモリ・コントローラ・ハブ（MCH）４７２、４８２を含みうる。プロセッサ４７０、４８０は、PtPインターフェース回路４７８、４８８を使ってポイントツーポイント（PtP）インターフェース４５０を介してデータを交換しうる。プロセッサ４７０、４８０はそれぞれ、ポイントツーポイント・インターフェース回路４７６、４９４、４８６、４９８を使って個々のPtPインターフェース４５２、４５４を介してチップセット４９０とデータを交換しうる。チップセット４９０はまた、高性能〔ハイ・パフォーマンス〕グラフィック・インターフェース４３９を介して高性能グラフィック回路４３８とデータを交換してもよい。本発明の実施形態は、任意の数の処理コアを有する任意のプロセッサ内に、あるいは図４の各PtPバス・エージェント内に位置していてよい。
【００２４】
ある実施形態では、図４は、CPUやグラフィック論理のキャッシュ・コヒーレンス規則を著しく修正することなくCPUがグラフィックMLCをのぞき見できるようにする論理４１９を含む。さらに、論理４１９は、グラフィック・デバイスが、まずメイン・メモリに頼ることなく、LLC内の情報にアクセスすることを許容する論理を含みうる。さらに、論理２１９は、グラフィックL1キャッシュ内に記憶されている情報が今やグラフィックMLC内に存在するときCPUに通知し、それによりCPUが該情報をのぞき見しうるようにするのを助けてもよい。
【００２５】
図５は、本発明の少なくとも一つの実施形態との関連で使用されうる動作の流れ図を示している。動作５０１では、グラフィック装置はそのL1キャッシュに記憶されている情報をCPUコヒーレンス・ドメイン内のMLCにコピーまたは移動させ、動作５０５で、CPUによって要求された情報についてグラフィック論理のMLCにCPUからスヌープ〔のぞき見〕が発される。動作５１０において要求された情報がグラフィック論理のMLC内に存在していなければ、スヌープは動作５１５において、該情報を求めてLLCに進みうる。該情報が動作５２０においてLLCに存在していなければ、動作５２５においてアクセスはメイン・メモリに進む。ある実施形態では、CPUはMLCをのぞき見するために物理アドレスを使用しうる。というのも、MLCは、グラフィック論理によって使用される仮想アドレス・タグに加えて物理アドレス・タグを含むからである。さらに、ある実施形態ではグラフィック論理はLLC内に情報を記憶しこれにアクセスしうるので、CPUによって要求された情報はMLCではなくLLC内にあってもよい。
【００２６】
少なくとも一つの実施形態の一つまたは複数の側面は、プロセッサ内のさまざまな論理を表す機械可読媒体上に記憶された表現データによって実装されてもよい。そのデータは、機械によって読み込まれたとき、該機械に、本稿に記載された技法を実行する論理を作成させる。「IPコア」として知られるそのような表現は、具体的な機械可読媒体（「テープ」）上に記憶されてもよく、実際に論理またはプロセッサをなす作成機械中にロードすべくさまざまな顧客または製造施設に供給されてもよい。
【００２７】
このように、マイクロアーキテクチャ上のメモリ領域アクセスの行き先を決定する方法および装置が記載されてきた。上記の記述は例示的であることが意図されており、制限するものではないことは理解しておくべきである。上記の記述を読み、理解すれば、当業者には他の多くの実施形態が明白となるであろう。したがって、本発明の範囲は付属の請求項を参照して、そのような請求項が資格を有する等価物の全範囲をもつものとして、決定されるべきである。
【００２８】
いくつかの態様を記載しておく。
〔態様１〕
グラフィック論理コヒーレンス・ドメイン内の第一のキャッシュおよび第二のキャッシュと、
物理アドレスを使って前記第一のキャッシュ内に記憶された情報にアクセスする、前記グラフィック論理とは異なるコヒーレンス・ドメインにある中央処理ユニット（CPU）とを有する装置であって、
前記第一のキャッシュは前記第二のキャッシュよりもキャッシュ階層において低いレベルにある、装置。
〔態様２〕
前記グラフィック論理が前記第二のキャッシュ内に情報を記憶する、態様１記載の装置。
〔態様３〕
前記第二のキャッシュがより低レベルの諸キャッシュを含む最終レベル・キャッシュ（LLC）である、態様２記載の装置。
〔態様４〕
前記第一のキャッシュが中間レベル・キャッシュ（MLC）である、態様１記載の装置。
〔態様５〕
前記CPUのキャッシュ・コヒーレンス・ドメインに対応する第三および第四のキャッシュをさらに有する態様１記載の装置であって、前記第三のキャッシュがレベル１（L1）キャッシュであり、前記第四のキャッシュが中間レベル・キャッシュ（MLC）である、態様１記載の装置。
〔態様６〕
前記グラフィック論理のコヒーレンス・ドメインに対応するL1キャッシュをさらに含む、態様５記載の装置。
〔態様７〕
CPUレベル１（L1）キャッシュ、CPU中間レベル・キャッシュ（MLC）および最終レベル・キャッシュ（LLC）を含むCPUキャッシュ階層に対応する中央処理ユニット（CPU）を含み、グラフィックL1キャッシュ、グラフィックMLCおよびグラフィックLLCに対応するグラフィック論理を含むマイクロプロセッサであって、前記CPUキャッシュ階層は前記グラフィック論理のキャッシュ階層の一部分と異なるコヒーレンス・ドメインにあり、前記CPUは前記グラフィックMLCをのぞき見する、マイクロプロセッサと、
前記CPUキャッシュ階層および前記グラフィック・キャッシュ階層内に含まれる情報を記憶するシステム・メモリとを有するシステム。
〔態様８〕
前記LLCがCPUおよびグラフィックのL1キャッシュおよびMLCに記憶されている情報を含む、態様７記載のシステム。
〔態様９〕
前記グラフィック論理が、要求された情報を求めて前記システム・メモリにアクセスする前に、情報を求めて前記LLCにアクセスする、態様８記載のシステム。
〔態様１０〕
さらに表示装置を有する、態様７記載のシステム。
〔態様１１〕
前記表示装置が前記CPUおよび前記グラフィック論理とは異なるコヒーレンス・ドメインにある、態様１０記載のシステム。
〔態様１２〕
前記CPUおよび前記グラフィック・プロセッサが同じダイ内に含まれている、態様７記載のシステム。
〔態様１３〕
グラフィック・レベル１（L1）キャッシュからのデータをグラフィック中間レベル・キャッシュ（MLC）に記憶する段階と；
中央処理ユニットから前記中間レベル・キャッシュにスヌープを発する段階と；
前記スヌープの結果がミスであった場合、より高レベルのキャッシュにアクセスする段階であって、前記グラフィックL1キャッシュに記憶されている情報は前記より高レベルのキャッシュに含まれる、段階と；
前記より高レベルのキャッシュへのアクセスの結果がミスであった場合、システム・メモリにアクセスする段階とを含む、
方法。
〔態様１４〕
前記より高レベルのキャッシュが前記グラフィック・キャッシュを含む最終レベル・キャッシュ（LLC）である、態様１３記載の方法。
〔態様１５〕
前記グラフィックL1キャッシュが第一のコヒーレンス・ドメイン内にあり、前記グラフィックMLCが第二のコヒーレンス・ドメイン内にある、態様１４記載の方法。
〔態様１６〕
態様１５記載の方法であって、さらに前記CPUのキャッシュ・コヒーレンス・ドメインに対応する第三および第四のキャッシュにアクセスする段階を含み、前記第三のキャッシュはレベル１（L1）キャッシュであり、前記第四のキャッシュは中間レベル・キャッシュ（MLC）である、方法。
〔態様１７〕
前記グラフィックL1キャッシュが前記グラフィック論理のコヒーレンス・ドメインに対応する、態様１６記載の方法。
〔態様１８〕
表示装置から読み取り要求を前記システム・メモリに対して発する段階をさらに含む、態様１７記載の方法。
〔態様１９〕
CPUキャッシュ・コヒーレンス・ドメインに対応する中央処理ユニット（CPU）と；
GPUキャッシュ・コヒーレンス・ドメインに対応するグラフィック処理ユニット（GPU）とを有するプロセッサであって、前記CPUキャッシュ・コヒーレンス・ドメインおよび前記GPUキャッシュ・コヒーレンス・ドメインは、システム・メモリにアクセスすることなく、前記第一および第二のキャッシュ・コヒーレンス・ドメイン内に記憶された情報を共有する、
プロセッサ。
〔態様２０〕
前記CPUキャッシュ・コヒーレンス・ドメインが第一のレベル１（L1）キャッシュおよび第一の中間レベル・キャッシュ（MLC）を含む、態様１９記載のプロセッサ。
〔態様２１〕
前記GPUキャッシュ・コヒーレンス・ドメインが第二のL1キャッシュおよび第二のMLCを含む、態様２０記載のプロセッサ。
〔態様２２〕
前記CPUキャッシュ・コヒーレンス・ドメインおよび前記GPUキャッシュ・コヒーレンス・ドメインが、第一および第二のMLC内に記憶されているすべての情報を記憶する最終レベル・キャッシュ（LLC）を含む、態様２１記載のプロセッサ。
〔態様２３〕
前記CPUが前記第二のMLCをのぞき見し、前記GPUが前記第一のMLCをのぞき見する、態様１９記載のプロセッサ。
〔態様２４〕
前記第一のMLCが、グラフィック・レンダリング・イベントに応答して前記第一のL1キャッシュに記憶されている情報を記憶する、態様２３記載のプロセッサ。
〔態様２５〕
前記第一のL1キャッシュからの情報を前記第一のMLCに記憶することが、その情報を前記CPUキャッシュ・コヒーレンス・ドメインに対して利用可能にする、態様２４記載のプロセッサ。
【図１】
2014167831.tif 000003
【図２】
2014167831.tif 000004
【図３】
2014167831.tif 000005
【図４】
2014167831.tif 000006
【図５】
2014167831.tif 000007