(57)【要約】  トランザクション属性に基づいて、特定のキャッシュのためのキャッシュスヌープおよび/または無効化コヒーレンストラフィックを制御するための方法が記述される。メモリ管理ユニット(MMU)が、要求側プロセッサからキャッシュコヒーレンストランザクションに関する1つまたは複数のトランザクション属性を決定する。ルーティングモジュールが、トランザクション属性に基づいて、キャッシャビリティドメインおよび/またはシェアラビリティドメインを識別し、キャッシャビリティドメインおよび/またはシェアラビリティドメイン内の1つまたは複数のキャッシュにキャッシュコヒーレンストランザクションをルーティングする。コヒーレンストラフィックがコヒーレンスバス上のすべてのキャッシュにルーティングされる代わりに、コヒーレンストラフィックは、アドレス空間識別子(ASID)、仮想マシン識別子(VMID)、セキュアルート識別子(NS)、ハイパーバイザ識別子(HYP)などのトランザクション属性に基づいて選択的にルーティングされる。
2018510411.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングシステム内の1つまたは複数のキャッシュにコヒーレンス要求をルーティングするための方法であって、前記方法は、
要求側プロセッサからのキャッシュコヒーレンストランザクションに関する1つまたは複数のトランザクション属性を決定するステップと、
前記トランザクション属性に基づいて、キャッシャビリティドメインおよび/またはシェアラビリティドメインを識別するステップと、
前記キャッシャビリティドメインおよび/またはシェアラビリティドメイン内の1つまたは複数のキャッシュに前記キャッシュコヒーレンストランザクションをルーティングするステップとを含む、コンピューティングシステム内の1つまたは複数のキャッシュにコヒーレンス要求をルーティングするための方法。
【請求項２】
前記1つまたは複数のトランザクション属性はアドレス空間識別子(ASID)を含む、請求項1に記載の方法。
【請求項３】
前記1つまたは複数のトランザクション属性は仮想マシン識別子(VMID)を含む、請求項1に記載の方法。
【請求項４】
前記1つまたは複数のトランザクション属性はセキュアルート識別子(NS)を含む、請求項1に記載の方法。
【請求項５】
前記1つまたは複数のトランザクション属性はハイパーバイザ識別子(HYP)を含む、請求項1に記載の方法。
【請求項６】
前記1つまたは複数のトランザクション属性は、前記要求側プロセッサに関するアドレス空間識別子(ASID)、仮想マシン識別子(VMID)、セキュアルート識別子(NS)およびハイパーバイザ識別子(HYP)からなるグループから選択された少なくとも2つを含む、請求項1に記載の方法。
【請求項７】
前記要求側プロセッサは、グラフィックス処理ユニット(GPU)またはデジタル信号プロセッサ(DSP)である、請求項1に記載の方法。
【請求項８】
コンピューティングシステム内の1つまたは複数のキャッシュにコヒーレンス要求をルーティングするための装置であって、前記装置は、
要求側プロセッサからキャッシュコヒーレンストランザクションに関する1つまたは複数のトランザクション属性を決定するように構成されるメモリ管理ユニット(MMU)と、
ルーティングモジュールとを備え、前記ルーティングモジュールは、
前記トランザクション属性に基づいて、キャッシャビリティドメインおよび/またはシェアラビリティドメインを識別し、前記キャッシャビリティドメインおよび/またはシェアラビリティドメイン内の1つまたは複数のキャッシュに前記キャッシュコヒーレンストランザクションをルーティングするように構成される、コンピューティングシステム内の1つまたは複数のキャッシュにコヒーレンス要求をルーティングするための装置。
【請求項９】
前記1つまたは複数のトランザクション属性はアドレス空間識別子(ASID)を含む、請求項8に記載の装置。
【請求項１０】
前記1つまたは複数のトランザクション属性は仮想マシン識別子(VMID)を含む、請求項8に記載の装置。
【請求項１１】
前記1つまたは複数のトランザクション属性はセキュアルート識別子(NS)を含む、請求項8に記載の装置。
【請求項１２】
前記1つまたは複数のトランザクション属性はハイパーバイザ識別子(HYP)を含む、請求項8に記載の装置。
【請求項１３】
前記1つまたは複数のトランザクション属性は、前記要求側プロセッサに関するアドレス空間識別子(ASID)、仮想マシン識別子(VMID)、セキュアルート識別子(NS)およびハイパーバイザ識別子(HYP)からなるグループから選択された少なくとも2つを含む、請求項8に記載の装置。
【請求項１４】
前記要求側プロセッサは、グラフィックス処理ユニット(GPU)またはデジタル信号プロセッサ(DSP)である、請求項8に記載の装置。
【請求項１５】
前記要求側プロセッサは集積回路に組み込まれる、請求項8に記載の装置。
【請求項１６】
前記集積回路は、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、携帯情報端末(PDA)、定置データユニット、およびコンピュータからなるグループから選択されたデバイスに組み込まれる、請求項15に記載の装置。
【請求項１７】
コンピューティングシステム内の1つまたは複数のキャッシュにコヒーレンス要求をルーティングするための装置であって、前記装置は、
要求側プロセッサからのキャッシュコヒーレンストランザクションに関する1つまたは複数のトランザクション属性を決定するための手段と、
前記トランザクション属性に基づいて、キャッシャビリティドメインおよび/またはシェアラビリティドメインを識別するための手段と、
前記キャッシャビリティドメインおよび/またはシェアラビリティドメイン内の1つまたは複数のキャッシュに前記キャッシュコヒーレンストランザクションをルーティングするための手段とを備える、コンピューティングシステム内の1つまたは複数のキャッシュにコヒーレンス要求をルーティングするための装置。
【請求項１８】
前記1つまたは複数のトランザクション属性はアドレス空間識別子(ASID)を含む、請求項17に記載の装置。
【請求項１９】
前記1つまたは複数のトランザクション属性は仮想マシン識別子(VMID)を含む、請求項17に記載の装置。
【請求項２０】
前記1つまたは複数のトランザクション属性はセキュアルート識別子(NS)を含む、請求項17に記載の装置。
【請求項２１】
前記1つまたは複数のトランザクション属性はハイパーバイザ識別子(HYP)を含む、請求項17に記載の装置。
【請求項２２】
前記1つまたは複数のトランザクション属性は、前記要求側プロセッサに関するアドレス空間識別子(ASID)、仮想マシン識別子(VMID)、セキュアルート識別子(NS)およびハイパーバイザ識別子(HYP)からなるグループから選択された少なくとも2つを含む、請求項17に記載の装置。
【請求項２３】
前記要求側プロセッサは、グラフィックス処理ユニット(GPU)またはデジタル信号プロセッサ(DSP)である、請求項17に記載の装置。
【請求項２４】
前記プロセッサは集積回路に組み込まれる、請求項17に記載の装置。
【請求項２５】
前記集積回路は、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、携帯情報端末(PDA)、定置データユニット、およびコンピュータからなるグループから選択されたデバイスに組み込まれる、請求項24に記載の装置。
【請求項２６】
機械によってアクセスされるときに、前記機械に、コンピューティングシステム内の1つまたは複数のキャッシュにコヒーレンス要求をルーティングするための動作を実行させる情報を含むコンピュータ可読記憶媒体であって、前記動作は、
要求側プロセッサからのキャッシュコヒーレンストランザクションに関する1つまたは複数のトランザクション属性を決定することと、
前記トランザクション属性に基づいて、キャッシャビリティドメインおよび/またはシェアラビリティドメインを識別することと、
前記キャッシャビリティドメインおよび/またはシェアラビリティドメイン内の1つまたは複数のキャッシュに前記キャッシュコヒーレンストランザクションをルーティングすることとを含む、コンピュータ可読記憶媒体。
【請求項２７】
前記1つまたは複数のトランザクション属性は、アドレス空間識別子(ASID)および仮想マシン識別子(VMID)のうちの少なくとも1つを含む、請求項26に記載のコンピュータ可読記憶媒体。
【請求項２８】
前記1つまたは複数のトランザクション属性は、セキュアルート識別子(NS)およびハイパーバイザ識別子(HYP)のうちの少なくとも1つを含む、請求項26に記載のコンピュータ可読記憶媒体。
【請求項２９】
前記1つまたは複数のトランザクション属性は、前記要求側プロセッサに関するアドレス空間識別子(ASID)、仮想マシン識別子(VMID)、セキュアルート識別子(NS)およびハイパーバイザ識別子(HYP)からなるグループから選択された少なくとも2つを含む、請求項26に記載のコンピュータ可読記憶媒体。
【請求項３０】
前記要求側プロセッサは、グラフィックス処理ユニット(GPU)またはデジタル信号プロセッサ(DSP)である、請求項26に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の態様は、包括的にはプロセッサに関し、より詳細には、プロセッサの役割に基づくキャッシュコヒーレンスバストラフィック制御に関する。
【背景技術】
【０００２】
最新のコンピュータシステムは、キャッシュを用いて、ダブルデータレート同期ダイナミックランダムアクセスメモリ(DDR SDRAM)のような低速メモリデバイスのプロセッサメモリ待ち時間およびスループットを改善する。キャッシュは、複数のプロセッサ間で共有されるか、プロセッサのサブセット専用であるかのいずれかである。作業を共有するプロセッサは、メモリに及ぼす読出し演算および書込み演算の影響が一貫性があり、かつ規定された順序において観測されるようなシステムメモリの共通モデルを観測する。キャッシュがコヒーレントに保たれない限り、メモリモデルに違反が生じ、メモリ演算の影響が不正確に観測されることになる状況が生じる。
【０００３】
キャッシュコヒーレンストランザクションは、キャッシュがコヒーレントなままであることを、およびメモリモデルのためのルールが順守されるのを確実にする、キャッシュの間で使用されるプロトコルを観測するトランザクションである。2つの従来のプロトコルは、スヌープ機構および無効化機構である。
【０００４】
スヌープ機構では、任意の所与のキャッシュへの書込み演算時に、キャッシュコントローラが、他のキャッシュに返送されるデータファイルのコピーが更新されたことを検証する。無効化機構では、任意の所与のキャッシュへの書込み演算時に、キャッシュコントローラは、データファイルのコピーが他のキャッシュ内に存在しないことを検証する。
【０００５】
プロセッサ仮想化、異種コンピューティング、および数多くのプロセッサおよびキャッシュを備えるシステムを組み合わせる高度に統合されたコンピュータシステムの出現で、コンピュータシステム内の各プロセッサは、タイムスライスして、または同時に種々のタスクを実行することができる。これらのタスクはそれぞれ、コンピュータシステム内で異なる役割を果たし、それゆえ、異なるリソースを使用する。
【０００６】
複数のオペレーティングシステムを仮想化する超並列コンピュータシステムにおいて、プロセッサおよびその関連するキャッシュのサブセットが、個々のオペレーティングシステムにそれぞれ割り当てられる。これは、コヒーレントなままにすべき、重なり合うキャッシュのセットを生み出す。
【０００７】
たとえば、異種コンピュータシステムにおいて、グラフィック処理ユニット(GPU)が、コヒーレンスが必要とされる異種コンピューティングタスクに加えて、ホスト中央処理ユニット(CPU)とのキャッシュコヒーレンスから恩恵を受けないスタンドアローングラフィックスタスクも実行している場合がある。また、複数の中央処理ユニット(CPU)が、タスクごとにコヒーレンスを維持すべきである、まとまりのないキャッシュの組を導入する可能性もある。単一プロセッサコンピュータシステムでは、セキュリティ要件が、いくつかのキャッシュがセキュアタスクのために使用され、他のキャッシュが非セキュアタスクのために使用されることを要求する場合がある。
【０００８】
コンピュータシステムが、より大型になり、より高度に統合されるにつれて、要求されたデータファイルに関してすべてのキャッシュがチェックされる従来の「オールオアナッシング」キャッシュコヒーレンスプロトコルに関与しなければならないキャッシュのセットが、比例して増加する。それらのコヒーレンストランザクションに関連付けられる帯域幅、エネルギー使用量、熱発生および待ち時間も、それに伴って増加する。すべてのコンピュータシステムに当てはまるが、モバイルシステムでは特に、コヒーレンストランザクションに関連付けられる帯域幅、エネルギー使用量、熱発生および待ち時間の増加に関連付けられるコストは望ましくない。したがって、キャッシュ要求を調停するための改善された機構が必要とされている。
【発明の概要】
【課題を解決するための手段】
【０００９】
本明細書において説明される一実施態様は、コンピューティングシステムにおいて1つまたは複数のキャッシュにコヒーレンス要求をルーティングするための方法に向けられ、その方法は、要求側プロセッサからのキャッシュコヒーレンストランザクションに関する1つまたは複数のトランザクション属性を決定することと、トランザクション属性に基づいて、キャッシャビリティド(cachability)メインおよび/またはシェアラビリティド(shareability)メインを識別することと、キャッシャビリティドメインおよび/またはシェアラビリティドメイン内の1つまたは複数のキャッシュにキャッシュコヒーレンストランザクションをルーティングすることとを含む。
【００１０】
本明細書において説明される技術の別の実施態様は、コンピューティングシステムにおいて1つまたは複数のキャッシュにコヒーレンス要求をルーティングするための装置に向けられ、その装置は、要求側プロセッサからのキャッシュコヒーレンストランザクションに関する1つまたは複数のトランザクション属性を決定するように構成されるメモリ管理ユニット(MMU)と、トランザクション属性に基づいて、キャッシャビリティドメインおよび/またはシェアラビリティドメインを識別し、キャッシャビリティドメインおよび/またはシェアラビリティドメイン内の1つまたは複数のキャッシュにキャッシュコヒーレンストランザクションをルーティングするように構成されるルーティングモジュールとを備える。
【００１１】
別の実施態様は、コンピューティングシステムにおいて1つまたは複数のキャッシュにコヒーレンス要求をルーティングするための装置に向けられ、その装置は、要求側プロセッサからのキャッシュコヒーレンストランザクションに関する1つまたは複数のトランザクション属性を決定するための手段と、トランザクション属性に基づいて、キャッシャビリティドメインおよび/またはシェアラビリティドメインを識別するための手段と、キャッシャビリティドメインおよび/またはシェアラビリティドメイン内の1つまたは複数のキャッシュにキャッシュコヒーレンストランザクションをルーティングするための手段とを備える。
【００１２】
さらに別の実施態様は、機械によってアクセスされるときに、機械に、コンピューティングシステムにおいて1つまたは複数のキャッシュにコヒーレンス要求をルーティングするための動作を実行させる情報を含むコンピュータ可読記憶媒体に向けられ、その動作は、要求側プロセッサからのキャッシュコヒーレンストランザクションに関する1つまたは複数のトランザクション属性を決定することと、トランザクション属性に基づいて、キャッシャビリティドメインおよび/またはシェアラビリティドメインを識別することと、キャッシャビリティドメインおよび/またはシェアラビリティドメイン内の1つまたは複数のキャッシュにキャッシュコヒーレンストランザクションをルーティングすることとを含む。
【００１３】
この「発明の概要」は、請求項の範囲または意味を解釈または限定するために使用されることはないという了解の下で提出される。この「発明の概要」は、特許請求される主題の主要な特徴または不可欠な特徴を特定することを意図するものではなく、特許請求される主題の範囲を決定するのを支援するものとして使用されることも意図していない。
【００１４】
添付の図面は、本明細書において説明される技術の実施態様の説明に役立つように提示され、単に実施態様の例示のために提供され、実施態様を限定するものではない。
【図面の簡単な説明】
【００１５】
【図１】本明細書において説明される技術の1つまたは複数の実施態様による、ロールベースキャッシュコヒーレンストラフィック制御を実施するのに適した例示的な環境のブロック図である。
【図２】本明細書において説明される技術の1つまたは複数の実施態様による、図1に示されるグラフィックス処理ユニット(GPU)をより詳細に示す図である。
【図３】本明細書において説明される技術の1つまたは複数の実施態様による、図1に示されるデジタル信号プロセッサ(DSP)をより詳細に示す図である。
【図４】本明細書において説明される技術の1つまたは複数の実施態様による、図1に示される中央処理ユニット(CPU)のうちの1つをより詳細に示す図である。
【図５】本明細書において説明される技術の1つまたは複数の実施態様による、図1に示される中央処理ユニット(CPU)のうちの別の1つをより詳細に示す図である。
【図６】本明細書において説明される技術の1つまたは複数の実施態様による、図1に示される中央処理ユニット(CPU)のうちの別の1つをより詳細に示す図である。
【図７】本明細書において説明される技術の1つまたは複数の実施態様による、図1に示される中央処理ユニット(CPU)のうちの別の1つをより詳細に示す図である。
【図８】本明細書において説明される技術の1つまたは複数の実施態様による、ロールベースキャッシュコヒーレンストラフィック削減を実施するための方法を示す例示的な流れ図である。
【図９】本明細書において説明される技術の1つまたは複数の実施態様に従って構成されるワイヤレスデバイスを示すブロック図である。
【発明を実施するための形態】
【００１６】
「発明を実施するための形態」では、添付の図を参照する。図では、参照番号の(1つまたは複数の)最も左の桁は、その参照番号が最初に表示された図を特定する。同様の特徴および構成要素を参照するのに、図面を通して同じ番号が使用される。
【００１７】
包括的には、本明細書において開示される主題は、トランザクション属性に基づいて、特定のキャッシュのためのキャッシュスヌープおよび無効化コヒーレンストラフィックを制御することに向けられる。トランザクション属性は、コンピューティングシステム内でコヒーレンストランザクションを開始するプロセッサの特定の役割を識別する。コヒーレンストラフィックがコヒーレンスバス上ですべてのキャッシュにルーティングされる代わりに、本明細書において説明される技術の実施態様は、トランザクション属性によって規定されるような要求側プロセッサの役割に基づいて、コヒーレンストラフィックをルーティングする。
【００１８】
図1は、本明細書において説明される技術の1つまたは複数の実施態様による、ロールベースキャッシュコヒーレンスバストラフィック制御を実施するのに適した例示的な環境100のブロック図である。図示される環境100は、図示されるように結合される、グラフィックス処理ユニット(GPU)102と、デジタル信号プロセッサ(DSP)104と、中央処理ユニット(CPU)106と、中央処理ユニット(CPU)108と、中央処理ユニット(CPU)110と、中央処理ユニット(CPU)112とを含む。
【００１９】
図示されるグラフィックス処理ユニット(GPU)102は、レベル0キャッシュ114を含む。図示されるグラフィックス処理ユニット(GPU)102は、メモリ管理ユニット(MMU)116と、ルーティングモジュール118と、レベル2キャッシュ120とに結合される。
【００２０】
図示される中央処理ユニット(CPU)106はレベル0キャッシュ122を含む。図示される中央処理ユニット(CPU)108はレベル0キャッシュ124を含む。中央処理ユニット(CPU)106および中央処理ユニット(CPU)108は、メモリ管理ユニット(MMU)126と、ルーティングモジュール128と、レベル2キャッシュ130とに結合される。
【００２１】
図示される中央処理ユニット(CPU)110はレベル0キャッシュ132を含む。図示される中央処理ユニット(CPU)112はレベル0キャッシュ134を含む。中央処理ユニット(CPU)110および中央処理ユニット(CPU)112は、メモリ管理ユニット(MMU)136と、ルーティングモジュール138と、レベル2キャッシュ140とに結合される。
【００２２】
図示されるデジタル信号プロセッサ(DSP)104はレベル0キャッシュ142を含む。図示されるデジタル信号プロセッサ(DSP)104は、メモリ管理ユニット(MMU)144と、ルーティングモジュール146と、レベル2キャッシュ148とに結合される。
【００２３】
図示されるグラフィックス処理ユニット(GPU)102、レベル0キャッシュ114、メモリ管理ユニット(MMU)116、ルーティングモジュール118およびレベル2キャッシュ120は内部キャッシャビリティドメイン150に関連付けられる。
【００２４】
図示される中央処理ユニット(CPU)106、中央処理ユニット(CPU)108、レベル0キャッシュ122、レベル0キャッシュ124、メモリ管理ユニット(MMU)126、ルーティングモジュール128およびレベル2キャッシュ130は内部キャッシャビリティドメイン152に関連付けられる。図示される中央処理ユニット(CPU)110、中央処理ユニット(CPU)112、レベル0キャッシュ132、レベル0キャッシュ134、メモリ管理ユニット(MMU)136、ルーティングモジュール138、レベル2キャッシュ140は内部キャッシャビリティドメイン152に関連付けられる。
【００２５】
内部キャッシャビリティドメイン152内にあることは、中央処理ユニット(CPU)106および中央処理ユニット(CPU)108が、中央処理ユニット(CPU)110および中央処理ユニット(CPU)112とレベル2キャッシュ130を共有できることを意味する。同様に、中央処理ユニット(CPU)110および中央処理ユニット(CPU)112は、中央処理ユニット(CPU)106および中央処理ユニット(CPU)108とレベル2キャッシュ140を共有することができる。
【００２６】
図示されるデジタル信号プロセッサ(DSP)104、レベル0キャッシュ142、メモリ管理ユニット(MMU)144、ルーティングモジュール146、およびレベル2キャッシュ148は内部キャッシャビリティドメイン154に関連付けられる。内部キャッシャビリティは、アクセスされることになるキャッシュ内のページに関するページテーブル内に設定されるビットによって指示される。
【００２７】
内部キャッシャビリティドメイン152は、内部キャッシャビリティドメイン/内部シェアラビリティドメイン156に関連付けられる。内部シェアラビリティは、アクセスされることになるキャッシュ内のページに関するページテーブル内に設定されるビットによって指示される。
【００２８】
内部キャッシャビリティドメイン150、内部キャッシャビリティドメイン154および内部キャッシャビリティドメイン/内部シェアラビリティドメイン156は、外部シェアラビリティドメイン158に関連付けられる。外部シェアラビリティは、アクセスされることになるキャッシュ内のページに関するページテーブル内のビットによって指示される。
【００２９】
図示される環境100において、外部シェアラビリティドメイン158の構成要素はコヒーレンスバス160に結合される。外部キャッシャビリティドメイン164に関連付けられるレベル3キャッシュ162、およびメインメモリ166も、コヒーレンスバス160に結合される。外部シェアラビリティは、アクセスされることになるキャッシュ内のページに関するページテーブル内のビットによって指示される。
【００３０】
従来、レベル2キャッシュ120、130、140および148が外部シェアラビリティドメイン158に関連付けられることは、レベル2キャッシュ120、130、140および148が、グラフィックス処理ユニット(GPU)102、デジタル信号プロセッサ(DSP)104、中央処理ユニット(CPU)106、中央処理ユニット(CPU)108、中央処理ユニット(CPU)110、および中央処理ユニット(CPU)112によってアクセスされる場合があることを意味する。さらに、レベル0キャッシュ114、122、124、132、134または142のいずれか1つにおいてキャッシュミスがあると、すべてのスヌープおよび無効化コヒーレンストラフィックが、レベル2キャッシュ120、130、140および148のそれぞれに送信される。グラフィックス処理ユニット(GPU)102のみ、デジタル信号プロセッサ(DSP)104のみ、または中央処理ユニット(CPU)106、108、110もしくは112のみにスヌープおよび無効化コヒーレンストラフィックを限定する方法はない。
【００３１】
本明細書において説明される技術の1つまたは複数の実施態様において、特定のページに関する内部キャッシャビリティビット、内部シェアラビリティビット、内部キャッシャビリティビットおよび外部キャッシャビリティビットを使用することに加えて、ルーティングモジュール118、128、138および146は、他のトランザクション属性を利用して、より少数のレベル2キャッシュにスヌープおよび無効化コヒーレンストラフィックにルーティングする。トランザクション属性は、コンピューティング環境100内でコヒーレンストランザクションを開始するプロセッサの特定の役割を識別する。
【００３２】
たとえば、アドレス空間識別子(ASID)が、グラフィックス処理ユニット(GPU)102においてコヒーレンストランザクションが開始されたことを指示することができる。したがって、アドレス空間識別子(ASID)によって識別されたプロセッサコアは、グラフィックス処理ユニット(GPU)の役割を果たしている。
【００３３】
同様に、アドレス空間識別子(ASID)が、デジタル信号プロセッサ(DSP)104においてコヒーレンストランザクションが開始されたことを指示することができる。したがって、アドレス空間識別子(ASID)によって識別されたプロセッサコアはデジタル信号処理の役割を果たしている。
【００３４】
同様に、アドレス空間識別子(ASID)が、中央処理ユニット(CPU)106、中央処理ユニット(CPU)108、中央処理ユニット(CPU)110または中央処理ユニット(CPU)112においてコヒーレンストランザクションが開始されたことを指示することができる。したがって、それぞれのアドレス空間識別子(ASID)によって識別されるプロセッサコアは、汎用処理の役割を果たしている場合がある。
【００３５】
本明細書において説明される技術の実施態様は、特定のアドレス空間識別子(ASID)に関連付けられる特定のプロセスが特定のリソースに共通にアクセスすること、たとえば、グラフィックス処理ユニット(GPU)102に関連付けられるプロセスが、中央処理ユニット(CPU)106に共通にアクセスすることをあらかじめ決定することができる。一実施態様は、そのアドレス空間識別子(ASID)に関連付けられるコヒーレンストランザクションがあるキャッシャビリティドメインおよび/またはシェアラビリティドメイン内のキャッシュにのみルーティングされるように、そのアドレス空間識別子(ASID)に関連付けられるプロセスのためのキャッシャビリティドメインおよび/またはシェアラビリティドメインを識別することができる。そのアドレス空間識別子(ASID)に関連付けられるコヒーレンストランザクションは、その特定のキャッシャビリティドメインおよび/またはシェアラビリティドメインの外部にはルーティングされない。
【００３６】
たとえば、アドレス空間識別子(ASID)に基づいて識別されたキャッシャビリティドメインおよび/またはシェアラビリティドメインが、グラフィックス処理ユニット(GPU)102および中央処理ユニット(CPU)106のみを含む場合には、デジタル信号プロセッサ(DSP)104はそのキャッシャビリティドメインおよび/またはシェアラビリティドメイン内にないので、グラフィックス処理ユニット(GPU)102からのコヒーレンストランザクションは、デジタル信号プロセッサ(DSP)104にはルーティングされないことになる。
【００３７】
スヌープされ、および/または無効化されるキャッシュの数を削減することにより、環境100内のコヒーレンスバス160のトラフィックを削減することができる。また、スヌープされ、および/または無効化されるキャッシュの数を削減することにより、特定のキャッシャビリティドメインおよび/またはシェアラビリティドメイン内にないキャッシュがコヒーレンストランザクションを送達するために低電力モードから復帰する必要がないので、環境100内の電力消費量を削減することもできる。
【００３８】
1つまたは複数の実施態様において、仮想マシン識別子(VMID)およびアドレス空間識別子(ASID)が、グラフィックス処理ユニット(GPU)102においてコヒーレンストランザクションが開始されたことだけでなく、グラフィックス処理ユニット(GPU)102内のハイパーバイザにおいてコヒーレンストランザクションが開始されたことを指示することができる。仮想マシン識別子(VMID)およびアドレス空間識別子(ASID)に関連付けられるコヒーレンストランザクションがあるキャッシャビリティドメインおよび/またはシェアラビリティドメイン内のキャッシュにのみルーティングされるように、仮想マシン識別子(VMID)およびアドレス空間識別子(ASID)に関連付けられるプロセスのためのキャッシャビリティドメインおよび/またはシェアラビリティドメインを識別することができる。仮想マシン識別子(VMID)およびアドレス空間識別子(ASID)に関連付けられるコヒーレンストランザクションは、その特定のキャッシャビリティドメインおよび/またはシェアラビリティドメインの外部にはルーティングされない。
【００３９】
1つまたは複数の実施態様において、ハイパーバイザ識別子(HYP)およびアドレス空間識別子(ASID)が、グラフィックス処理ユニット(GPU)102においてコヒーレンストランザクションが開始されたことだけでなく、グラフィックス処理ユニット(GPU)102内のハイパーバイザによってコヒーレンストランザクションが開始されたことを指示することができる。ハイパーバイザ識別子(HYP)およびアドレス空間識別子(ASID)に関連付けられるコヒーレンストランザクションがあるキャッシャビリティドメインおよび/またはシェアラビリティドメイン内のキャッシュにのみルーティングされるように、ハイパーバイザ識別子(HYP)およびアドレス空間識別子(ASID)に関連付けられるプロセスのためのキャッシャビリティドメインおよび/またはシェアラビリティドメインを識別することができる。ハイパーバイザ識別子(HYP)およびアドレス空間識別子(ASID)に関連付けられるコヒーレンストランザクションは、その特定のキャッシャビリティドメインおよび/またはシェアラビリティドメインの外部にはルーティングされない。
【００４０】
1つまたは複数の実施態様において、セキュアルート識別子(NS)およびアドレス空間識別子(ASID)が、グラフィックス処理ユニット(GPU)102においてコヒーレンストランザクションが開始されたことだけでなく、グラフィックス処理ユニット(GPU)102内のセキュアルートによってコヒーレンストランザクションが開始されたことを指示することができる。セキュアルート識別子(NS)およびアドレス空間識別子(ASID)に関連付けられるコヒーレンストランザクションがあるキャッシャビリティドメインおよび/またはシェアラビリティドメイン内のキャッシュにのみルーティングされるように、セキュアルート識別子(NS)およびアドレス空間識別子(ASID)に関連付けられるプロセスのためのキャッシャビリティドメインおよび/またはシェアラビリティドメインを識別することができる。セキュアルート識別子(NS)およびアドレス空間識別子(ASID)に関連付けられるコヒーレンストランザクションは、その特定のキャッシャビリティドメインおよび/またはシェアラビリティドメインの外部にはルーティングされない。1つまたは複数の実施態様において、関連するメモリ管理ユニット(MMU)内の構成ビットを用いて、トランザクション属性を識別することができる。
【００４１】
図2は、本明細書において説明される技術の1つまたは複数の実施態様による、グラフィックス処理ユニット(GPU)102をより詳細に示す。図2に示されるグラフィックス処理ユニット(GPU)102を用いて、図1を参照しながら先に説明されたようにキャッシャビリティドメインおよび/またはシェアラビリティドメインを識別することができる。図示されるグラフィックス処理ユニット(GPU)102は、アドレス空間識別子(ASID)204に関連付けられる。グラフィックス処理ユニット(GPU)102は、セキュアルート識別子(NS)208に関連付けられるセキュアルート206を実行する。
【００４２】
また、グラフィックス処理ユニット(GPU)102は、セキュアアプリケーション210、ハイパーバイザ212およびハイパーバイザ214も実行する。ハイパーバイザ212は、仮想マシン識別子(VMID)216に関連付けられる。ハイパーバイザ214は、仮想マシン識別子(VMID)218に関連付けられる。
【００４３】
また、図示されるグラフィックス処理ユニット(GPU)102は、オペレーティングシステム(OS)220、オペレーティングシステム(OS)222、オペレーティングシステム(OS)224、オペレーティングシステム(OS)226も実行する。オペレーティングシステム(OS)220は、ハイパーバイザ識別子(HYP)228に関連付けられる。オペレーティングシステム(OS)222は、ハイパーバイザ識別子(HYP)230に関連付けられる。オペレーティングシステム(OS)224は、ハイパーバイザ識別子(HYP)232に関連付けられる。オペレーティングシステム(OS)226は、ハイパーバイザ識別子(HYP)234に関連付けられる。
【００４４】
アドレス空間識別子(ASID)204を含むコヒーレンストランザクションが、そのコヒーレンストランザクションがグラフィックス処理ユニット(GPU)102によって開始されたことを指示する。仮想マシン識別子(VMID)216およびアドレス空間識別子(ASID)204を含むコヒーレンストランザクションが、グラフィックス処理ユニット(GPU)102においてコヒーレンストランザクションが開始されたことだけでなく、ハイパーバイザ212によってコヒーレンストランザクションが開始されたことを指示することができる。仮想マシン識別子(VMID)218およびアドレス空間識別子(ASID)204を含むコヒーレンストランザクションが、グラフィックス処理ユニット(GPU)102においてコヒーレンストランザクションが開始されたことだけでなく、ハイパーバイザ214においてコヒーレンストランザクションが開始されたことを指示することができる。
【００４５】
ハイパーバイザ識別子(HYP)228およびアドレス空間識別子(ASID)204を含むコヒーレンストランザクションが、グラフィックス処理ユニット(GPU)102においてコヒーレンストランザクションが開始されたことだけでなく、オペレーティングシステム(OS)220によってコヒーレンストランザクションが開始されたことを指示することができる。ハイパーバイザ識別子(HYP)230およびアドレス空間識別子(ASID)204を含むコヒーレンストランザクションが、グラフィックス処理ユニット(GPU)102においてコヒーレンストランザクションが開始されたことだけでなく、オペレーティングシステム(OS)222によってコヒーレンストランザクションが開始されたことを指示することができる。
【００４６】
ハイパーバイザ識別子(HYP)232およびアドレス空間識別子(ASID)204を含むコヒーレンストランザクションが、グラフィックス処理ユニット(GPU)102においてコヒーレンストランザクションが開始されたことだけでなく、オペレーティングシステム(OS)224によってコヒーレンストランザクションが開始されたことを指示することができる。ハイパーバイザ識別子(HYP)234およびアドレス空間識別子(ASID)204を含むコヒーレンストランザクションが、グラフィックス処理ユニット(GPU)102においてコヒーレンストランザクションが開始されたことだけでなく、オペレーティングシステム(OS)226によってコヒーレンストランザクションが開始されたことを指示することができる。
【００４７】
一実施態様は、アドレス空間識別子(ASID)204に関連付けられるコヒーレンストランザクションがあるキャッシャビリティドメインおよび/またはシェアラビリティドメイン内のキャッシュにのみルーティングされるように、アドレス空間識別子(ASID)204に関連付けられるプロセスのためのキャッシャビリティドメインおよび/またはシェアラビリティドメインを識別することができる。アドレス空間識別子(ASID)204に関連付けられるコヒーレンストランザクションは、その特定のキャッシャビリティドメインおよび/またはシェアラビリティドメインの外部にはルーティングされない。トランザクション属性が識別されると、コヒーレンスバス160を使用する既知の活動に従って、キャッシャビリティドメインおよび/またはシェアラビリティドメインを識別することができる。
【００４８】
たとえば、アドレス空間識別子(ASID)204に基づいて識別されたキャッシャビリティドメインおよび/またはシェアラビリティドメインが、グラフィックス処理ユニット(GPU)102および中央処理ユニット(CPU)106のみを含む場合には、デジタル信号プロセッサ(DSP)104は、アドレス空間識別子(ASID)204に関連付けられるキャッシャビリティドメインおよび/またはシェアラビリティドメイン内にないので、アドレス空間識別子(ASID)204に関連付けられるグラフィックス処理ユニット(GPU)102および中央処理ユニット(CPU)106からのコヒーレンストランザクションは、デジタル信号プロセッサ(DSP)104にはルーティングされないことになる。
【００４９】
図3は、本明細書において説明される技術の1つまたは複数の実施態様による、デジタル信号プロセッサ(DSP)104をより詳細に示す。図3に示されるデジタル信号プロセッサ(DSP)104を用いて、図1を参照しながら先に説明されたようにキャッシャビリティドメインおよび/またはシェアラビリティドメインを識別することができる。図示されるデジタル信号プロセッサ(DSP)104は、アドレス空間識別子(ASID)304に関連付けられる。デジタル信号プロセッサ(DSP)104は、セキュアルート識別子(NS)308に関連付けられるセキュアルート306を実行する。
【００５０】
また、デジタル信号プロセッサ(DSP)104は、セキュアアプリケーション310、ハイパーバイザ312およびハイパーバイザ314も実行する。ハイパーバイザ312は、仮想マシン識別子(VMID)316に関連付けられる。ハイパーバイザ314は、仮想マシン識別子(VMID)318に関連付けられる。
【００５１】
また、図示されるデジタル信号プロセッサ(DSP)104は、オペレーティングシステム(OS)320、オペレーティングシステム(OS)322、オペレーティングシステム(OS)324、オペレーティングシステム(OS)326も実行する。オペレーティングシステム(OS)320は、ハイパーバイザ識別子(HYP)328に関連付けられる。オペレーティングシステム(OS)322は、ハイパーバイザ識別子(HYP)330に関連付けられる。オペレーティングシステム(OS)324は、ハイパーバイザ識別子(HYP)332に関連付けられる。オペレーティングシステム(OS)326は、ハイパーバイザ識別子(HYP)334に関連付けられる。
【００５２】
アドレス空間識別子(ASID)304を含むコヒーレンストランザクションが、そのコヒーレンストランザクションがデジタル信号プロセッサ(DSP)104によって開始されたことを指示する。仮想マシン識別子(VMID)316およびアドレス空間識別子(ASID)304を含むコヒーレンストランザクションが、デジタル信号プロセッサ(DSP)104においてコヒーレンストランザクションが開始されたことだけでなく、ハイパーバイザ312によってコヒーレンストランザクションが開始されたことを指示することができる。仮想マシン識別子(VMID)318およびアドレス空間識別子(ASID)304を含むコヒーレンストランザクションが、デジタル信号プロセッサ(DSP)104においてコヒーレンストランザクションが開始されたことだけでなく、ハイパーバイザ314によってコヒーレンストランザクションが開始されたことを指示することができる。
【００５３】
ハイパーバイザ識別子(HYP)328およびアドレス空間識別子(ASID)304を含むコヒーレンストランザクションが、デジタル信号プロセッサ(DSP)104においてコヒーレンストランザクションが開始されたことだけでなく、オペレーティングシステム(OS)320によってコヒーレンストランザクションが開始されたことを指示することができる。ハイパーバイザ識別子(HYP)330およびアドレス空間識別子(ASID)304を含むコヒーレンストランザクションが、デジタル信号プロセッサ(DSP)104においてコヒーレンストランザクションが開始されたことだけでなく、オペレーティングシステム(OS)322によってコヒーレンストランザクションが開始されたことを指示することができる。
【００５４】
ハイパーバイザ識別子(HYP)332およびアドレス空間識別子(ASID)304を含むコヒーレンストランザクションが、デジタル信号プロセッサ(DSP)104においてコヒーレンストランザクションが開始されたことだけでなく、オペレーティングシステム(OS)324によってコヒーレンストランザクションが開始されたことを指示することができる。ハイパーバイザ識別子(HYP)334およびアドレス空間識別子(ASID)304を含むコヒーレンストランザクションが、デジタル信号プロセッサ(DSP)104においてコヒーレンストランザクションが開始されたことだけでなく、オペレーティングシステム(OS)326によってコヒーレンストランザクションが開始されたことを指示することができる。
【００５５】
一実施態様は、トランザクション属性に関連付けられるコヒーレンストランザクションが関連するキャッシャビリティドメインおよび/またはシェアラビリティドメイン内のキャッシュにのみルーティングされるように、アドレス空間識別子(ASID)304に関連付けられるプロセスのためのキャッシャビリティドメインおよび/またはシェアラビリティドメインを識別することができる。
【００５６】
たとえば、アドレス空間識別子(ASID)304に基づいて識別されたキャッシャビリティドメインおよび/またはシェアラビリティドメインが、デジタル信号プロセッサ(DSP)104および中央処理ユニット(CPU)106のみを含む場合には、中央処理ユニット(CPU)108は、アドレス空間識別子(ASID)304に関連付けられるキャッシャビリティドメインおよび/またはシェアラビリティドメイン内にないので、アドレス空間識別子(ASID)304に関連付けられるデジタル信号プロセッサ(DSP)104からのコヒーレンストランザクションは、中央処理ユニット(CPU)108にはルーティングされないことになる。
【００５７】
当然、アドレス空間識別子(ASID)304に関連付けられるキャッシャビリティドメインおよび/またはシェアラビリティドメインは、セキュアルート識別子(NS)308、仮想マシン識別子(VMID)316、仮想マシン識別子(VMID)318、ハイパーバイザ識別子(HYP)328、ハイパーバイザ識別子(HYP)330、ハイパーバイザ識別子(HYP)332またはハイパーバイザ識別子(HYP)334の任意の組合せを用いてさらに制限することができる。空間識別子(ASID)304に関連付けられるこれらの他のトランザクション属性の結合は、スヌープまたは無効化されることになるキャッシュの選択をさらに狭くすることができる。
【００５８】
図4は、本明細書において説明される技術の1つまたは複数の実施態様による、中央処理ユニット(CPU)106をより詳細に示す。図4に示される中央処理ユニット(CPU)106を用いて、図1を参照しながら先に説明されたようにキャッシャビリティドメインおよび/またはシェアラビリティドメインを識別することができる。図示される中央処理ユニット(CPU)106は、アドレス空間識別子(ASID)404に関連付けられる。中央処理ユニット(CPU)106は、セキュアルート識別子(NS)408に関連付けられるセキュアルート406を実行する。
【００５９】
また、中央処理ユニット(CPU)106は、セキュアアプリケーション410、ハイパーバイザ412およびハイパーバイザ414も実行する。ハイパーバイザ412は、仮想マシン識別子(VMID)416に関連付けられる。ハイパーバイザ414は、仮想マシン識別子(VMID)418に関連付けられる。
【００６０】
また、図示される中央処理ユニット(CPU)106は、オペレーティングシステム(OS)420、オペレーティングシステム(OS)422、オペレーティングシステム(OS)424、オペレーティングシステム(OS)426も実行する。オペレーティングシステム(OS)420は、ハイパーバイザ識別子(HYP)428に関連付けられる。オペレーティングシステム(OS)422は、ハイパーバイザ識別子(HYP)430に関連付けられる。オペレーティングシステム(OS)424は、ハイパーバイザ識別子(HYP)432に関連付けられる。オペレーティングシステム(OS)426は、ハイパーバイザ識別子(HYP)434に関連付けられる。
【００６１】
アドレス空間識別子(ASID)404を含むコヒーレンストランザクションが、そのコヒーレンストランザクションが中央処理ユニット(CPU)106によって開始されたことを指示する。仮想マシン識別子(VMID)416およびアドレス空間識別子(ASID)404を含むコヒーレンストランザクションが、中央処理ユニット(CPU)106においてコヒーレンストランザクションが開始されたことだけでなく、ハイパーバイザ412によってコヒーレンストランザクションが開始されたことを指示することができる。仮想マシン識別子(VMID)418およびアドレス空間識別子(ASID)404を含むコヒーレンストランザクションが、中央処理ユニット(CPU)106においてコヒーレンストランザクションが開始されたことだけでなく、ハイパーバイザ414によってコヒーレンストランザクションが開始されたことを指示することができる。
【００６２】
ハイパーバイザ識別子(HYP)428およびアドレス空間識別子(ASID)404を含むコヒーレンストランザクションが、中央処理ユニット(CPU)106においてコヒーレンストランザクションが開始されたことだけでなく、オペレーティングシステム(OS)420によってコヒーレンストランザクションが開始されたことを指示することができる。ハイパーバイザ識別子(HYP)430およびアドレス空間識別子(ASID)404を含むコヒーレンストランザクションが、中央処理ユニット(CPU)106においてコヒーレンストランザクションが開始されたことだけでなく、オペレーティングシステム(OS)422によってコヒーレンストランザクションが開始されたことを指示することができる。
【００６３】
ハイパーバイザ識別子(HYP)432およびアドレス空間識別子(ASID)404を含むコヒーレンストランザクションが、中央処理ユニット(CPU)106においてコヒーレンストランザクションが開始されたことだけでなく、オペレーティングシステム(OS)424によってコヒーレンストランザクションが開始されたことを指示することができる。ハイパーバイザ識別子(HYP)434およびアドレス空間識別子(ASID)404を含むコヒーレンストランザクションが、中央処理ユニット(CPU)106においてコヒーレンストランザクションが開始されたことだけでなく、オペレーティングシステム(OS)426によってコヒーレンストランザクションが開始されたことを指示することができる。
【００６４】
一実施態様は、アドレス空間識別子(ASID)404に関連付けられるコヒーレンストランザクションがあるキャッシャビリティドメインおよび/またはシェアラビリティドメイン内のキャッシュにのみルーティングされるように、アドレス空間識別子(ASID)404に関連付けられるプロセスのためのキャッシャビリティドメインおよび/またはシェアラビリティドメインを識別することができる。アドレス空間識別子(ASID)404に関連付けられるコヒーレンストランザクションは、その特定のキャッシャビリティドメインおよび/またはシェアラビリティドメインの外部にはルーティングされない。
【００６５】
たとえば、アドレス空間識別子(ASID)404に基づいて識別されたキャッシャビリティドメインおよび/またはシェアラビリティドメインが、デジタル信号プロセッサ(DSP)104および中央処理ユニット(CPU)106のみを含む場合には、中央処理ユニット(CPU)108は、アドレス空間識別子(ASID)404に関連付けられるキャッシャビリティドメインおよび/またはシェアラビリティドメイン内にないので、アドレス空間識別子(ASID)404に関連付けられるデジタル信号プロセッサ(DSP)104または中央処理ユニット(CPU)106からのコヒーレンストランザクションは、中央処理ユニット(CPU)108にはルーティングされないことになる。
【００６６】
同様に、アドレス空間識別子(ASID)404に基づいて識別されたキャッシャビリティドメインおよび/またはシェアラビリティドメインが、デジタル信号プロセッサ(DSP)104、中央処理ユニット(CPU)106および中央処理ユニット(CPU)112のみを含む場合には、中央処理ユニット(CPU)108は、アドレス空間識別子(ASID)404に関連付けられるキャッシャビリティドメインおよび/またはシェアラビリティドメイン内にないので、アドレス空間識別子(ASID)404に関連付けられるデジタル信号プロセッサ(DSP)104、中央処理ユニット(CPU)106および中央処理ユニット(CPU)112からのコヒーレンストランザクションは、中央処理ユニット(CPU)108にはルーティングされないことになる。
【００６７】
当然、アドレス空間識別子(ASID)404に関連付けられるキャッシャビリティドメインおよび/またはシェアラビリティドメインは、セキュアルート識別子(NS)408、仮想マシン識別子(VMID)416、仮想マシン識別子(VMID)418、ハイパーバイザ識別子(HYP)428、ハイパーバイザ識別子(HYP)430、ハイパーバイザ識別子(HYP)432またはハイパーバイザ識別子(HYP)434の任意の組合せを用いてさらに制限することができる。空間識別子(ASID)404に関連付けられるこれらの他のトランザクション属性の結合は、スヌープまたは無効化されることになるキャッシュの選択をさらに狭くすることができる。
【００６８】
図5は、本明細書において説明される技術の1つまたは複数の実施態様による、中央処理ユニット(CPU)108をより詳細に示す。図5に示される中央処理ユニット(CPU)108を用いて、図1を参照しながら先に説明されたようにキャッシャビリティドメインおよび/またはシェアラビリティドメインを識別することができる。図示される中央処理ユニット(CPU)108は、アドレス空間識別子(ASID)504に関連付けられる。中央処理ユニット(CPU)108は、セキュアルート識別子(NS)508に関連付けられるセキュアルート506を実行する。
【００６９】
また、中央処理ユニット(CPU)108は、セキュアアプリケーション510、ハイパーバイザ512およびハイパーバイザ514も実行する。ハイパーバイザ512は、仮想マシン識別子(VMID)516に関連付けられる。ハイパーバイザ514は、仮想マシン識別子(VMID)518に関連付けられる。
【００７０】
また、図示される中央処理ユニット(CPU)108は、オペレーティングシステム(OS)520、オペレーティングシステム(OS)522、オペレーティングシステム(OS)524、オペレーティングシステム(OS)526も実行する。オペレーティングシステム(OS)520は、ハイパーバイザ識別子(HYP)528に関連付けられる。オペレーティングシステム(OS)522は、ハイパーバイザ識別子(HYP)530に関連付けられる。オペレーティングシステム(OS)524は、ハイパーバイザ識別子(HYP)532に関連付けられる。オペレーティングシステム(OS)526は、ハイパーバイザ識別子(HYP)534に関連付けられる。
【００７１】
アドレス空間識別子(ASID)504を含むコヒーレンストランザクションが、そのコヒーレンストランザクションが中央処理ユニット(CPU)108によって開始されたことを指示する。仮想マシン識別子(VMID)516およびアドレス空間識別子(ASID)504を含むコヒーレンストランザクションが、デジタル信号プロセッサ(DSP)104においてコヒーレンストランザクションが開始されたことだけでなく、ハイパーバイザ512によってコヒーレンストランザクションが開始されたことを指示することができる。仮想マシン識別子(VMID)518およびアドレス空間識別子(ASID)504を含むコヒーレンストランザクションが、デジタル信号プロセッサ(DSP)104においてコヒーレンストランザクションが開始されたことだけでなく、ハイパーバイザ514によってコヒーレンストランザクションが開始されたことを指示することができる。
【００７２】
ハイパーバイザ識別子(HYP)528およびアドレス空間識別子(ASID)504を含むコヒーレンストランザクションが、中央処理ユニット(CPU)108においてコヒーレンストランザクションが開始されたことだけでなく、オペレーティングシステム(OS)520によってコヒーレンストランザクションが開始されたことを指示することができる。ハイパーバイザ識別子(HYP)530およびアドレス空間識別子(ASID)504を含むコヒーレンストランザクションが、中央処理ユニット(CPU)108においてコヒーレンストランザクションが開始されたことだけでなく、オペレーティングシステム(OS)522によってコヒーレンストランザクションが開始されたことを指示することができる。
【００７３】
ハイパーバイザ識別子(HYP)532およびアドレス空間識別子(ASID)504を含むコヒーレンストランザクションが、中央処理ユニット(CPU)108においてコヒーレンストランザクションが開始されたことだけでなく、オペレーティングシステム(OS)524によってコヒーレンストランザクションが開始されたことを指示することができる。ハイパーバイザ識別子(HYP)534およびアドレス空間識別子(ASID)504を含むコヒーレンストランザクションが、中央処理ユニット(CPU)108においてコヒーレンストランザクションが開始されたことだけでなく、オペレーティングシステム(OS)526によってコヒーレンストランザクションが開始されたことを指示することができる。
【００７４】
一実施態様は、アドレス空間識別子(ASID)504に関連付けられるコヒーレンストランザクションがあるキャッシャビリティドメインおよび/またはシェアラビリティドメイン内のキャッシュにのみルーティングされるように、アドレス空間識別子(ASID)504に関連付けられるプロセスのためのキャッシャビリティドメインおよび/またはシェアラビリティドメインを識別することができる。アドレス空間識別子(ASID)504に関連付けられるコヒーレンストランザクションは、その特定のキャッシャビリティドメインおよび/またはシェアラビリティドメインの外部にはルーティングされない。
【００７５】
たとえば、アドレス空間識別子(ASID)504に基づいて識別されたキャッシャビリティドメインおよび/またはシェアラビリティドメインが、デジタル信号プロセッサ(DSP)104および中央処理ユニット(CPU)108のみを含む場合には、中央処理ユニット(CPU)112は、アドレス空間識別子(ASID)504に関連付けられるキャッシャビリティドメインおよび/またはシェアラビリティドメイン内にないので、デジタル信号プロセッサ(DSP)104および中央処理ユニット(CPU)108からのコヒーレンストランザクションは、中央処理ユニット(CPU)112にはルーティングされないことになる。
【００７６】
同様に、アドレス空間識別子(ASID)504に基づいて識別されたキャッシャビリティドメインおよび/またはシェアラビリティドメインが、デジタル信号プロセッサ(DSP)104、中央処理ユニット(CPU)108および中央処理ユニット(CPU)112のみを含む場合には、中央処理ユニット(CPU)110は、アドレス空間識別子(ASID)504に関連付けられるキャッシャビリティドメインおよび/またはシェアラビリティドメイン内にないので、デジタル信号プロセッサ(DSP)104、中央処理ユニット(CPU)108および中央処理ユニット(CPU)112からのコヒーレンストランザクションは、中央処理ユニット(CPU)110にはルーティングされないことになる。
【００７７】
当然、アドレス空間識別子(ASID)504に関連付けられるキャッシャビリティドメインおよび/またはシェアラビリティドメインは、セキュアルート識別子(NS)508、仮想マシン識別子(VMID)516、仮想マシン識別子(VMID)518、ハイパーバイザ識別子(HYP)528、ハイパーバイザ識別子(HYP)530、ハイパーバイザ識別子(HYP)532またはハイパーバイザ識別子(HYP)534の任意の組合せを用いてさらに制限することができる。空間識別子(ASID)504に関連付けられるこれらの他のトランザクション属性の結合は、スヌープまたは無効化されることになるキャッシュの選択をさらに狭くすることができる。
【００７８】
図6は、本明細書において説明される技術の1つまたは複数の実施態様による、中央処理ユニット(CPU)110をより詳細に示す。図6に示される中央処理ユニット(CPU)110を用いて、図1を参照しながら先に説明されたようにキャッシャビリティドメインおよび/またはシェアラビリティドメインを識別することができる。図示される中央処理ユニット(CPU)110は、アドレス空間識別子(ASID)604に関連付けられる。中央処理ユニット(CPU)110は、セキュアルート識別子(NS)608に関連付けられるセキュアルート606を実行する。
【００７９】
また、中央処理ユニット(CPU)110は、セキュアアプリケーション610、ハイパーバイザ612およびハイパーバイザ614も実行する。ハイパーバイザ612は、仮想マシン識別子(VMID)616に関連付けられる。ハイパーバイザ614は、仮想マシン識別子(VMID)618に関連付けられる。
【００８０】
また、図示される中央処理ユニット(CPU)110は、オペレーティングシステム(OS)620、オペレーティングシステム(OS)622、オペレーティングシステム(OS)624、オペレーティングシステム(OS)626も実行する。オペレーティングシステム(OS)620は、ハイパーバイザ識別子(HYP)628に関連付けられる。オペレーティングシステム(OS)622は、ハイパーバイザ識別子(HYP)630に関連付けられる。オペレーティングシステム(OS)624は、ハイパーバイザ識別子(HYP)632に関連付けられる。オペレーティングシステム(OS)626は、ハイパーバイザ識別子(HYP)634に関連付けられる。
【００８１】
アドレス空間識別子(ASID)604を含むコヒーレンストランザクションが、そのコヒーレンストランザクションが中央処理ユニット(CPU)110によって開始されたことを指示する。仮想マシン識別子(VMID)616およびアドレス空間識別子(ASID)604を含むコヒーレンストランザクションが、デジタル信号プロセッサ(DSP)104においてコヒーレンストランザクションが開始されたことだけでなく、ハイパーバイザ612によってコヒーレンストランザクションが開始されたことを指示することができる。仮想マシン識別子(VMID)618およびアドレス空間識別子(ASID)604を含むコヒーレンストランザクションが、デジタル信号プロセッサ(DSP)104においてコヒーレンストランザクションが開始されたことだけでなく、ハイパーバイザ614によってコヒーレンストランザクションが開始されたことを指示することができる。
【００８２】
ハイパーバイザ識別子(HYP)628およびアドレス空間識別子(ASID)604を含むコヒーレンストランザクションが、中央処理ユニット(CPU)110においてコヒーレンストランザクションが開始されたことだけでなく、オペレーティングシステム(OS)620によってコヒーレンストランザクションが開始されたことを指示することができる。ハイパーバイザ識別子(HYP)630およびアドレス空間識別子(ASID)604を含むコヒーレンストランザクションが、中央処理ユニット(CPU)110においてコヒーレンストランザクションが開始されたことだけでなく、オペレーティングシステム(OS)622によってコヒーレンストランザクションが開始されたことを指示することができる。
【００８３】
ハイパーバイザ識別子(HYP)632およびアドレス空間識別子(ASID)604を含むコヒーレンストランザクションが、中央処理ユニット(CPU)110においてコヒーレンストランザクションが開始されたことだけでなく、オペレーティングシステム(OS)624によってコヒーレンストランザクションが開始されたことを指示することができる。ハイパーバイザ識別子(HYP)634およびアドレス空間識別子(ASID)604を含むコヒーレンストランザクションが、中央処理ユニット(CPU)110においてコヒーレンストランザクションが開始されたことだけでなく、オペレーティングシステム(OS)626によってコヒーレンストランザクションが開始されたことを指示することができる。
【００８４】
一実施態様は、アドレス空間識別子(ASID)404に関連付けられるコヒーレンストランザクションがあるキャッシャビリティドメインおよび/またはシェアラビリティドメイン内のキャッシュにのみルーティングされるように、アドレス空間識別子(ASID)604に関連付けられるプロセスのためのキャッシャビリティドメインおよび/またはシェアラビリティドメインを識別することができる。アドレス空間識別子(ASID)604に関連付けられるコヒーレンストランザクションは、その特定のキャッシャビリティドメインおよび/またはシェアラビリティドメインの外部にはルーティングされない。
【００８５】
たとえば、アドレス空間識別子(ASID)604に基づいて識別されたキャッシャビリティドメインおよび/またはシェアラビリティドメインが、デジタル信号プロセッサ(DSP)104および中央処理ユニット(CPU)110のみを含む場合には、中央処理ユニット(CPU)112は、アドレス空間識別子(ASID)604に関連付けられるキャッシャビリティドメインおよび/またはシェアラビリティドメイン内にないので、デジタル信号プロセッサ(DSP)104または中央処理ユニット(CPU)110からのコヒーレンストランザクションは、中央処理ユニット(CPU)112にはルーティングされないことになる。
【００８６】
同様に、アドレス空間識別子(ASID)604に基づいて識別されたキャッシャビリティドメインおよび/またはシェアラビリティドメインが、デジタル信号プロセッサ(DSP)104、中央処理ユニット(CPU)110および中央処理ユニット(CPU)112のみを含む場合には、中央処理ユニット(CPU)106は、アドレス空間識別子(ASID)604に関連付けられるキャッシャビリティドメインおよび/またはシェアラビリティドメイン内にないので、デジタル信号プロセッサ(DSP)104、中央処理ユニット(CPU)110および中央処理ユニット(CPU)112からのコヒーレンストランザクションは、中央処理ユニット(CPU)106にはルーティングされないことになる。
【００８７】
当然、アドレス空間識別子(ASID)604に関連付けられるキャッシャビリティドメインおよび/またはシェアラビリティドメインは、セキュアルート識別子(NS)608、仮想マシン識別子(VMID)616、仮想マシン識別子(VMID)618、ハイパーバイザ識別子(HYP)628、ハイパーバイザ識別子(HYP)630、ハイパーバイザ識別子(HYP)632またはハイパーバイザ識別子(HYP)634の任意の組合せを用いてさらに制限することができる。空間識別子(ASID)604に関連付けられるこれらの他のトランザクション属性の結合は、スヌープまたは無効化されることになるキャッシュの選択をさらに狭くすることができる。
【００８８】
図7は、本明細書において説明される技術の1つまたは複数の実施態様による、中央処理ユニット(CPU)112をより詳細に示す。図7に示される中央処理ユニット(CPU)112を用いて、図1を参照しながら先に説明されたようにキャッシャビリティドメインおよび/またはシェアラビリティドメインを識別することができる。図示される中央処理ユニット(CPU)112は、アドレス空間識別子(ASID)704に関連付けられる。中央処理ユニット(CPU)112は、セキュアルート識別子(NS)708に関連付けられるセキュアルート706を実行する。
【００８９】
また、中央処理ユニット(CPU)112は、セキュアアプリケーション710、ハイパーバイザ712およびハイパーバイザ714も実行する。ハイパーバイザ712は、仮想マシン識別子(VMID)716に関連付けられる。ハイパーバイザ714は、仮想マシン識別子(VMID)718に関連付けられる。
【００９０】
また、図示される中央処理ユニット(CPU)112は、オペレーティングシステム(OS)720、オペレーティングシステム(OS)722、オペレーティングシステム(OS)724、オペレーティングシステム(OS)726も実行する。オペレーティングシステム(OS)720は、ハイパーバイザ識別子(HYP)728に関連付けられる。オペレーティングシステム(OS)722は、ハイパーバイザ識別子(HYP)730に関連付けられる。オペレーティングシステム(OS)724は、ハイパーバイザ識別子(HYP)732に関連付けられる。オペレーティングシステム(OS)726は、ハイパーバイザ識別子(HYP)734に関連付けられる。
【００９１】
アドレス空間識別子(ASID)704を含むコヒーレンストランザクションが、そのコヒーレンストランザクションが中央処理ユニット(CPU)112によって開始されたことを指示する。仮想マシン識別子(VMID)716およびアドレス空間識別子(ASID)704を含むコヒーレンストランザクションが、デジタル信号プロセッサ(DSP)104においてコヒーレンストランザクションが開始されたことだけでなく、ハイパーバイザ712によってコヒーレンストランザクションが開始されたことを指示することができる。仮想マシン識別子(VMID)718およびアドレス空間識別子(ASID)704を含むコヒーレンストランザクションが、デジタル信号プロセッサ(DSP)104においてコヒーレンストランザクションが開始されたことだけでなく、ハイパーバイザ714によってコヒーレンストランザクションが開始されたことを指示することができる。
【００９２】
ハイパーバイザ識別子(HYP)728およびアドレス空間識別子(ASID)704を含むコヒーレンストランザクションが、中央処理ユニット(CPU)112においてコヒーレンストランザクションが開始されたことだけでなく、オペレーティングシステム(OS)720によってコヒーレンストランザクションが開始されたことを指示することができる。ハイパーバイザ識別子(HYP)730およびアドレス空間識別子(ASID)704を含むコヒーレンストランザクションが、中央処理ユニット(CPU)112においてコヒーレンストランザクションが開始されたことだけでなく、オペレーティングシステム(OS)722によってコヒーレンストランザクションが開始されたことを指示することができる。
【００９３】
ハイパーバイザ識別子(HYP)732およびアドレス空間識別子(ASID)704を含むコヒーレンストランザクションが、中央処理ユニット(CPU)112においてコヒーレンストランザクションが開始されたことだけでなく、オペレーティングシステム(OS)724によってコヒーレンストランザクションが開始されたことを指示することができる。ハイパーバイザ識別子(HYP)734およびアドレス空間識別子(ASID)704を含むコヒーレンストランザクションが、中央処理ユニット(CPU)112においてコヒーレンストランザクションが開始されたことだけでなく、オペレーティングシステム(OS)726によってコヒーレンストランザクションが開始されたことを指示することができる。
【００９４】
一実施態様は、アドレス空間識別子(ASID)704に関連付けられるコヒーレンストランザクションがあるキャッシャビリティドメインおよび/またはシェアラビリティドメイン内のキャッシュにのみルーティングされるように、アドレス空間識別子(ASID)704に関連付けられるプロセスのためのキャッシャビリティドメインおよび/またはシェアラビリティドメインを識別することができる。アドレス空間識別子(ASID)704に関連付けられるコヒーレンストランザクションは、その特定のキャッシャビリティドメインおよび/またはシェアラビリティドメインの外部にはルーティングされない。
【００９５】
たとえば、アドレス空間識別子(ASID)704に基づいて識別されたキャッシャビリティドメインおよび/またはシェアラビリティドメインが、デジタル信号プロセッサ(DSP)104および中央処理ユニット(CPU)112のみを含む場合には、グラフィックス処理ユニット(GPU)102は、アドレス空間識別子(ASID)704に関連付けられるキャッシャビリティドメインおよび/またはシェアラビリティドメイン内にないので、デジタル信号プロセッサ(DSP)104または中央処理ユニット(CPU)112からのコヒーレンストランザクションは、グラフィックス処理ユニット(GPU)102にはルーティングされないことになる。
【００９６】
同様に、アドレス空間識別子(ASID)704に基づいて識別されたキャッシャビリティドメインおよび/またはシェアラビリティドメインが、デジタル信号プロセッサ(DSP)104、中央処理ユニット(CPU)112および中央処理ユニット(CPU)112のみを含む場合には、中央処理ユニット(CPU)112は、アドレス空間識別子(ASID)704に関連付けられるキャッシャビリティドメインおよび/またはシェアラビリティドメイン内にないので、デジタル信号プロセッサ(DSP)104、中央処理ユニット(CPU)112および中央処理ユニット(CPU)112からのコヒーレンストランザクションは、中央処理ユニット(CPU)112にはルーティングされないことになる。
【００９７】
当然、アドレス空間識別子(ASID)704に関連付けられるキャッシャビリティドメインおよび/またはシェアラビリティドメインは、セキュアルート識別子(NS)708、仮想マシン識別子(VMID)716、仮想マシン識別子(VMID)718、ハイパーバイザ識別子(HYP)728、ハイパーバイザ識別子(HYP)730、ハイパーバイザ識別子(HYP)732またはハイパーバイザ識別子(HYP)734の任意の組合せを用いてさらに制限することができる。空間識別子(ASID)704に関連付けられるこれらの他のトランザクション属性の結合は、スヌープまたは無効化されることになるキャッシュの選択をさらに狭くすることができる。
【００９８】
図8は、コンピューティングシステム内の1つまたは複数のキャッシュにコヒーレンス要求をルーティングするための方法800を示す例示的な流れ図である。
【００９９】
ブロック802において、方法800は、要求側プロセッサからのキャシュコヒーレンストランザクションに関する1つまたは複数のトランザクション属性を決定する。1つまたは複数の実施態様において、方法800は、グラフィックス処理ユニット(GPU)102、デジタル信号プロセッサ(DSP)104、中央処理ユニット(CPU)106、中央処理ユニット(CPU)108、中央処理ユニット(CPU)110または中央処理ユニット(CPU)112からのキャッシュコヒーレンストランザクションに関する1つまたは複数のトランザクション属性を決定する。
【０１００】
ブロック804において、方法800は、トランザクション属性に基づいて、キャッシャビリティドメインおよび/またはシェアラビリティドメインを識別する。1つまたは複数の実施態様において、関連するルーティングモジュールは、要求側プロセッサに関するアドレス空間識別子(ASID)、セキュアルート識別子(NS)、仮想マシン識別子(VMID)またはハイパーバイザ識別子(HYP)に基づいて、キャッシャビリティドメインおよび/またはシェアラビリティドメインを識別する。
【０１０１】
ブロック808において、方法800は、キャッシャビリティドメインおよび/またはシェアラビリティドメイン内の1つまたは複数のキャッシュにキャッシュコヒーレンストランザクションをルーティングする。1つまたは複数の実施態様において、関連するルーティングモジュールは、選択されたレベル2キャッシュにコヒーレンス要求をルーティングする。
【０１０２】
図9は、本明細書において説明される技術の1つまたは複数の実施態様に従って構成されるワイヤレスデバイス900を示す。図示されるシステム900は、ロールベースキャッシュコヒーレンスバストラフィック削減を実施するのに適しており、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、携帯情報端末(PDA)、モバイル電話、スマートフォン、ラップトップ、定置データユニットまたはコンピュータに組み込むことができる。
【０１０３】
図示されるワイヤレスデバイス900は、システムインパッケージまたはシステムオンチップデバイス902(たとえば、集積回路)と、ディスプレイ904と、入力デバイス906と、スピーカ908と、マイクロフォン910と、アンテナ912と、電源914とを含む。図示されるシステムインパッケージまたはシステムオンチップデバイス902は、ディスプレイコントローラ916と、ワイヤレスコントローラ918と、コーデック920と、メモリ166とすることができるメモリ922と、グラフィックス処理ユニット(GPU)102、デジタル信号プロセッサ(DSP)104、中央処理ユニット(CPU)106、中央処理ユニット(CPU)108、中央処理ユニット(CPU)110および/または中央処理ユニット(CPU)112とすることができるプロセッサ924とを含む。
【０１０４】
図示されるディスプレイ904は、プロセッサ924に結合されるディスプレイコントローラ916に結合される。図示されるスピーカ908およびマイクロフォン910は、プロセッサ924に結合されるコーダ/デコーダ(コーデック)920に結合される。図示されるアンテナ912は、プロセッサ924に結合されるワイヤレスコントローラ918に結合される。
【０１０５】
図示されるプロセッサ924は、図2〜図7に示されるプロセスのいずれかに対応することができ、それらの図を参照しながら説明されたように、アドレス空間識別子(ASID)、セキュアルート識別子(NS)、仮想マシン識別子(VMID)およびハイパーバイザ識別子(HYP)に関連付けることができる。
【０１０６】
ワイヤレスコントローラ918は、モデムを含むことができる。コーデック920は、オーディオおよび/または音声コーデックとすることができる。
【０１０７】
上記の説明および関連する図面において開示された技術の態様が、具体的な実施態様に向けられる。本明細書において開示される技術の範囲から逸脱することなく、代替的な実施態様を考案することができる。さらに、本明細書において開示される技術の関連する詳細を不明瞭にしないように、本明細書において開示される技術の周知の要素は詳細には説明されないか、または省略される。
【０１０８】
「例示的な」という単語は、本明細書では、「例、実例、または例証として機能する」を意味するために使用される。「例示的な」として本明細書において説明されるいかなる実施態様も、他の実施態様よりも好ましいか、または有利であると必ずしも解釈されるべきでない。同様に、「実施態様」という用語は、本明細書において説明された技術のすべての実施態様が、論じられた特徴、利点、または動作モードを含むことを要求しない。
【０１０９】
本明細書において使用される用語は、特定の実施態様を説明するためのものにすぎず、本明細書において説明される技術の実施態様を限定することを意図するものではない。本明細書において使用されるときに、単数形「ひとつの(a)」、「ひとつの(an)」、および「その(the)」は、文脈が別段に明記しない限り、複数形も含むことを意図している。本明細書において使用されるとき、「備える(comprises、comprising)」、「含む(includes、including)」という用語は、述べられた特徴、整数、ステップ、動作、要素、および/または構成要素の存在を明示するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、および/またはそれらのグループの存在または追加を排除するものではないことはさらに理解されよう。
【０１１０】
さらに、多くの実施態様が、たとえばコンピューティングデバイスの要素によって実行される動作シーケンスの点から説明される。本明細書において説明される種々の動作は、特定の回路(たとえば、特定用途向け集積回路(ASIC))によって、1つまたは複数のプロセッサによって実行されるプログラム命令によって、または両方の組合せによって実行できることは認識されよう。さらに、本明細書において説明されるこれらの動作シーケンスは、実行時に関連するプロセッサに本明細書において説明される機能を実施させる、対応するコンピュータ命令セットがその中に記憶された任意の形態のコンピュータ可読記憶媒体内で完全に実施されると見なすことができる。したがって、本明細書において開示される技術の種々の態様が、いくつかの異なる形態において実施される場合があり、そのすべては、特許請求される主題の範囲内にあることが意図されている。さらに、本明細書で説明される実施態様の各々について、任意のそのような実施態様の対応する形態が、たとえば、説明される動作を実施するように構成されたロジックとして本明細書において説明される場合がある。
【０１１１】
当業者は、情報および信号が、様々な異なる技術および技法のいずれを使用しても表現できることは理解されよう。たとえば、上記の説明全体を通して言及されることがあるデータ、命令、コマンド、ビット、シンボルおよびチップを用いて表される場合がある情報および信号は、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表される場合がある。
【０１１２】
さらに、本明細書において開示される態様に関連して説明される種々の例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップが、電子ハードウェア、コンピュータソフトウェア、または両者の組合せとして実現される場合があることを当業者は理解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、種々の例示的な構成要素、ブロック、モジュール、回路、およびステップが、それらの機能に関してこれまで大まかに説明されてきた。そのような機能がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、特定の用途およびシステム全体に課される設計制約によって決まる。当業者は、説明された機能を各々の特定の応用分野について様々な方法で実施することができるが、そのような実施態様の決定は、本明細書において開示される本技術の範囲からの逸脱を引き起こすと解釈されるべきではない。
【０１１３】
本明細書において開示される実施態様に関連して説明される方法、シーケンス、および/またはアルゴリズムは、ハードウェアとして直接、プロセッサによって実行されるソフトウェアモジュールとして、または2つの組合せとして実現される場合がある。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野において知られている任意の他の形式の記憶媒体内に存在することができる。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取ることができ、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替形態では、記憶媒体は、プロセッサと一体にすることができる。
【０１１４】
したがって、本明細書において開示される技術の実施態様は、ロールベースキャッシュコヒーレンスバストラフィック制御を実施する方法を具現するコンピュータ可読媒体を含むことができる。したがって、実施態様は図示される例には限定されず、本明細書において説明された機能を実行するためのあらゆる手段が実施態様に含まれる。
【０１１５】
上記の開示は本明細書において開示される技術の例示的な実施態様を示すが、添付の特許請求の範囲によって規定されるような主題の範囲から逸脱することなく、本明細書において種々の変更および修正を加えることができることに留意されたい。本明細書において説明される技術の実施態様による方法クレームの機能、ステップ、および/または動作は、何らかの特定の順序で実施される必要はない。さらに、本明細書において開示された技術の実施態様の要素は、単数形で説明または特許請求されている場合があるが、単数形に限定することが明示的に述べられていない限り、複数形も考えられる。
【符号の説明】
【０１１６】
100  環境
102  グラフィックス処理ユニット(GPU)
104  デジタル信号プロセッサ(DSP)
106  中央処理ユニット(CPU)
108  中央処理ユニット(CPU)
110  中央処理ユニット(CPU)
112  中央処理ユニット(CPU)
114  レベル0キャッシュ
116  メモリ管理ユニット(MMU)
118  ルーティングモジュール
120  レベル2キャッシュ
122  レベル0キャッシュ
124  レベル0キャッシュ
126  メモリ管理ユニット(MMU)
128  ルーティングモジュール
130  レベル0キャッシュ
132  レベル0キャッシュ
134  レベル0キャッシュ
136  メモリ管理ユニット(MMU)
138  ルーティングモジュール
140  レベル2キャッシュ
142  レベル0キャッシュ
144  メモリ管理ユニット(MMU)
146  ルーティングモジュール
148  レベル2キャッシュ
150  内部キャッシャビリティドメイン
152  内部キャッシャビリティドメイン
154  内部キャッシャビリティドメイン
156  内部キャッシャビリティドメイン/内部シェアラビリティドメイン
158  外部シェアラビリティドメイン
160  コヒーレンスバス
162  レベル3キャッシュ
164  外部キャッシャビリティドメイン
166  メインメモリ
204  アドレス空間識別子(ASID)
206  セキュアルート
208  セキュアルート識別子(NS)
210  セキュアアプリケーション
212  ハイパーバイザ
214  ハイパーバイザ
216  仮想マシン識別子(VMID)
218  仮想マシン識別子(VMID)
220  オペレーティングシステム(OS)
222  オペレーティングシステム(OS)
224  オペレーティングシステム(OS)
226  オペレーティングシステム(OS)
228  ハイパーバイザ識別子(HYP)
230  ハイパーバイザ識別子(HYP)
232  ハイパーバイザ識別子(HYP)
234  ハイパーバイザ識別子(HYP)
304  アドレス空間識別子(ASID)
306  セキュアルート
308  セキュアルート識別子(NS)
310  セキュアアプリケーション
312  ハイパーバイザ
314  ハイパーバイザ
316  仮想マシン識別子(VMID)
318  仮想マシン識別子(VMID)
320  オペレーティングシステム(OS)
322  オペレーティングシステム(OS)
324  オペレーティングシステム(OS)
326  オペレーティングシステム(OS)
328  ハイパーバイザ識別子(HYP)
330  ハイパーバイザ識別子(HYP)
332  ハイパーバイザ識別子(HYP)
334  ハイパーバイザ識別子(HYP)
404  アドレス空間識別子(ASID)
406  セキュアルート
408  セキュアルート識別子(NS)
410  セキュアアプリケーション
412  ハイパーバイザ
414  ハイパーバイザ
416  仮想マシン識別子(VMID)
418  仮想マシン識別子(VMID)
420  オペレーティングシステム(OS)
422  オペレーティングシステム(OS)
424  オペレーティングシステム(OS)
226  オペレーティングシステム(OS)
428  ハイパーバイザ識別子(HYP)
430  ハイパーバイザ識別子(HYP)
432  ハイパーバイザ識別子(HYP)
434  ハイパーバイザ識別子(HYP)
504  アドレス空間識別子(ASID)
506  セキュアルート
508  セキュアルート識別子(NS)
510  セキュアアプリケーション
512  ハイパーバイザ
514  ハイパーバイザ
516  仮想マシン識別子(VMID)
518  仮想マシン識別子(VMID)
520  オペレーティングシステム(OS)
522  オペレーティングシステム(OS)
524  オペレーティングシステム(OS)
526  オペレーティングシステム(OS)
528  ハイパーバイザ識別子(HYP)
530  ハイパーバイザ識別子(HYP)
532  ハイパーバイザ識別子(HYP)
534  ハイパーバイザ識別子(HYP)
604  アドレス空間識別子(ASID)
606  セキュアルート
608  セキュアルート識別子(NS)
610  セキュアアプリケーション
612  ハイパーバイザ
614  ハイパーバイザ
616  仮想マシン識別子(VMID)
618  仮想マシン識別子(VMID)
620  オペレーティングシステム(OS)
622  オペレーティングシステム(OS)
624  オペレーティングシステム(OS)
626  オペレーティングシステム(OS)
628  ハイパーバイザ識別子(HYP)
630  ハイパーバイザ識別子(HYP)
632  ハイパーバイザ識別子(HYP)
634  ハイパーバイザ識別子(HYP)
704  アドレス空間識別子(ASID)
706  セキュアルート
708  セキュアルート識別子(NS)
710  セキュアアプリケーション
712  ハイパーバイザ
714  ハイパーバイザ
716  仮想マシン識別子(VMID)
718  仮想マシン識別子(VMID)
720  オペレーティングシステム(OS)
722  オペレーティングシステム(OS)
724  オペレーティングシステム(OS)
726  オペレーティングシステム(OS)
728  ハイパーバイザ識別子(HYP)
730  ハイパーバイザ識別子(HYP)
732  ハイパーバイザ識別子(HYP)
734  ハイパーバイザ識別子(HYP)
900  ワイヤレスデバイス
902  システムインパッケージまたはシステムオンチップ
904  ディスプレイ
906  入力デバイス
908  スピーカ
910  マイクロフォン
914  電源
916  ディスプレイコントローラ
918  ワイヤレスコントローラ
920  コーデック
922  メモリ
924  プロセッサ
【図１】
2018510411.tif 000003
【図２】
2018510411.tif 000004
【図３】
2018510411.tif 000005
【図４】
2018510411.tif 000006
【図５】
2018510411.tif 000007
【図６】
2018510411.tif 000008
【図７】
2018510411.tif 000009
【図８】
2018510411.tif 000010
【図９】
2018510411.tif 000011
【手続補正書】
【提出日】平成29年8月22日(2017.8.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピューティングシステム内の1つまたは複数のキャッシュにコヒーレンス要求をルーティングするための方法であって、前記方法は、
要求側プロセッサからのキャッシュコヒーレンストランザクションに関する1つまたは複数のトランザクション属性を決定するステップであって、前記1つまたは複数のトランザクション属性は、少なくとも前記要求側プロセッサ内のセキュアルートを識別するためのセキュアルート識別子(NS)を含む、決定するステップと、
前記1つまたは複数のトランザクション属性に基づいて、少なくとも前記要求側プロセッサおよび1つまたは複数のキャッシュを備えるキャッシャビリティドメインおよび/またはシェアラビリティドメインを識別するステップと、
前記キャッシャビリティドメインおよび/またはシェアラビリティドメイン内の前記1つまたは複数のキャッシュにのみ前記キャッシュコヒーレンストランザクションをルーティングするステップとを含む、コンピューティングシステム内の1つまたは複数のキャッシュにコヒーレンス要求をルーティングするための方法。
【請求項２】
前記1つまたは複数のトランザクション属性は、前記要求側プロセッサを識別するためのアドレス空間識別子(ASID)をさらに含む、請求項1に記載の方法。
【請求項３】
前記1つまたは複数のトランザクション属性は、前記要求側プロセッサ内のハイパーバイザを識別するための仮想マシン識別子(VMID)をさらに含む、請求項1に記載の方法。
【請求項４】
前記1つまたは複数のトランザクション属性は、前記要求側プロセッサ内のオペレーティングシステムを識別するためのハイパーバイザ識別子(HYP)をさらに含む、請求項1に記載の方法。
【請求項５】
前記要求側プロセッサは、グラフィックス処理ユニット(GPU)またはデジタル信号プロセッサ(DSP)である、請求項1に記載の方法。
【請求項６】
コンピューティングシステム内の1つまたは複数のキャッシュにコヒーレンス要求をルーティングするための装置であって、前記装置は、
要求側プロセッサからのキャッシュコヒーレンストランザクションに関する1つまたは複数のトランザクション属性を決定するように構成されるメモリ管理ユニット(MMU)であって、前記1つまたは複数のトランザクション属性は、少なくとも前記要求側プロセッサ内のセキュアルートを識別するためのセキュアルート識別子(NS)を含む、メモリ管理ユニット(MMU)と、
ルーティングモジュールとを備え、前記ルーティングモジュールは、
前記1つまたは複数のトランザクション属性に基づいて、少なくとも前記要求側プロセッサおよび1つまたは複数のキャッシュを備えるキャッシャビリティドメインおよび/またはシェアラビリティドメインを識別し、前記キャッシャビリティドメインおよび/またはシェアラビリティドメイン内の前記1つまたは複数のキャッシュにのみ前記キャッシュコヒーレンストランザクションをルーティングするように構成される、コンピューティングシステム内の1つまたは複数のキャッシュにコヒーレンス要求をルーティングするための装置。
【請求項７】
前記1つまたは複数のトランザクション属性は前記要求側プロセッサを識別するためのアドレス空間識別子(ASID)をさらに含む、請求項6に記載の装置。
【請求項８】
前記1つまたは複数のトランザクション属性は前記要求側プロセッサ内のハイパーバイザを識別するための仮想マシン識別子(VMID)をさらに含む、請求項6に記載の装置。
【請求項９】
前記1つまたは複数のトランザクション属性は、前記要求側プロセッサ内のオペレーティングシステムを識別するためのハイパーバイザ識別子(HYP)をさらに含む、請求項6に記載の装置。
【請求項１０】
前記要求側プロセッサは、グラフィックス処理ユニット(GPU)またはデジタル信号プロセッサ(DSP)である、請求項6に記載の装置。
【請求項１１】
前記要求側プロセッサは集積回路に組み込まれる、請求項6に記載の装置。
【請求項１２】
前記集積回路は、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、携帯情報端末(PDA)、定置データユニット、およびコンピュータからなるグループから選択されたデバイスに組み込まれる、請求項11に記載の装置。
【請求項１３】
請求項1から5のいずれか一項に記載の方法を実行するための手段を備える装置。
【請求項１４】
請求項1から5のいずれか一項に記載の方法をコンピュータまたはプロセッサに実行させるための少なくとも1つの命令を含む、コンピュータ可読記憶媒体。
【国際調査報告】
2018510411.tif 000012
2018510411.tif 000013