(57)【要約】  キャッシュへのアクセスを管理するためのシステムおよび方法は、キャッシュへの書込み要求の書込みアドレスに関連付けられた1つまたは複数の実行許可を決定することに関する。キャッシュは、データおよび命令を記憶するためのユニファイドキャッシュであってもよい。書込み要求についてライトミスがキャッシュに存在する場合、キャッシュコントローラは、1つまたは複数の実行許可に基づいて、ライトミスを処理するために、ライトアロケートポリシーを実施するか、ライトノーアロケートポリシーを実施するかを決定し得る。1つまたは複数の実行許可は、書込みアドレスに関連付けられた特権レベルに関し得る。書込み要求を生成した生成エージェントの実行許可および書込みアドレスから実行可能な消費エージェントの実行許可は、それぞれ、生成エージェントおよび消費エージェントの特権レベルに基づき得る。
2019511045.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュを管理するための方法であって、
前記キャッシュへの書込み要求の書込みアドレスに関連付けられた1つまたは複数の実行許可を決定するステップと、
前記書込み要求についてライトミスが前記キャッシュに存在する場合、前記1つまたは複数の実行許可に基づいて、前記ライトミスを処理するために、ライトアロケートポリシーを実施するか、ライトノーアロケートポリシーを実施するかを決定するステップと
を含む方法。
【請求項２】
前記キャッシュが、データおよび命令を記憶するように構成されたユニファイドキャッシュである、請求項1に記載の方法。
【請求項３】
前記書込みアドレスに関連付けられた前記1つまたは複数の実行許可が、前記書込みアドレスを含むメモリページに関連付けられた1つまたは複数の実行許可に基づく、請求項1に記載の方法。
【請求項４】
前記1つまたは複数の実行許可が、前記書込みアドレスに関連付けられた1つまたは複数の特権レベルについての実行許可を含む、請求項1に記載の方法。
【請求項５】
前記書込み要求を生成した生成エージェントの実行許可が、前記生成エージェントの特権レベルに基づき、前記書込みアドレスから実行するように構成された消費エージェントの実行許可が、前記消費エージェントの特権レベルに基づく、請求項4に記載の方法。
【請求項６】
前記生成エージェントおよび前記消費エージェントが、前記キャッシュにアクセスするように構成されたプロセッサのプロセスである、請求項4に記載の方法。
【請求項７】
前記1つまたは複数の特権レベルが、ユーザ特権レベルおよびスーパーバイザー特権レベルを含む、請求項4に記載の方法。
【請求項８】
前記生成エージェントが、前記書込み要求のために前記キャッシュにアクセスする前に、前記書込みアドレスについての書込み許可を有するかどうかを決定するステップをさらに含む請求項4に記載の方法。
【請求項９】
前記書込みアドレスに関連付けられた前記1つまたは複数の実行許可を決定するステップが、前記1つまたは複数の実行許可を、前記書込みアドレスについてのアドレス変換と、前記書込みアドレスに関連付けられた前記1つまたは複数の実行許可とを含むトランスレーションルックアサイドバッファ(TLB)のページテーブルエントリ(PTE)から取り出すステップを含む、請求項1に記載の方法。
【請求項１０】
前記ライトミスを処理するために前記キャッシュにおいてライトアロケートを行うか、ライトノーアロケートを行うかを決定するステップが、前記キャッシュについての既存のライトアロケーションポリシーをオーバーライドするステップを含む、請求項1に記載の方法。
【請求項１１】
キャッシュと、
前記キャッシュへの書込み要求の書込みアドレスに関連付けられた1つまたは複数の実行許可を決定するように構成された論理と、
前記書込み要求について前記キャッシュにライトミスがある場合、前記1つまたは複数の実行許可に基づいて、前記書込み要求についてライトアロケートまたはライトノーアロケートポリシーを実施するように構成されたキャッシュコントローラと
を備える装置。
【請求項１２】
前記キャッシュが、データおよび命令を記憶するように構成されたユニファイドキャッシュである、請求項11に記載の装置。
【請求項１３】
前記書込みアドレスに関連付けられた前記1つまたは複数の実行許可が、前記書込みアドレスを含むメモリページに関連付けられた1つまたは複数の実行許可に基づく、請求項11に記載の装置。
【請求項１４】
前記1つまたは複数の実行許可が、前記書込みアドレスに関連付けられた1つまたは複数の特権レベルについての実行許可を含む、請求項11に記載の装置。
【請求項１５】
前記書込み要求を生成するように構成された生成エージェントと、前記書込みアドレスから実行するように構成された消費エージェントとを備え、前記生成エージェントの実行許可が、前記生成エージェントの特権レベルに基づき、消費エージェントの実行許可が、前記消費エージェントの特権レベルに基づく、請求項14に記載の装置。
【請求項１６】
前記キャッシュにアクセスするように構成されたプロセッサをさらに備え、前記生成エージェントおよび前記消費エージェントが、前記プロセッサによって実行可能なプロセスである、請求項14に記載の装置。
【請求項１７】
前記1つまたは複数の特権レベルが、ユーザ特権レベルおよびスーパーバイザー特権レベルを含む、請求項14に記載の装置。
【請求項１８】
前記論理が、トランスレーションルックアサイドバッファ(TLB)を含むメモリ管理ユニット(MMU)を備え、前記TLBが、前記書込みアドレスについてのアドレス変換と、前記書込みアドレスに関連付けられた前記1つまたは複数の実行許可とを記憶するように構成されたページテーブルエントリ(PTE)を備える、請求項11に記載の装置。
【請求項１９】
前記キャッシュコントローラが、前記1つまたは複数の実行許可に基づいて前記書込み要求についての前記ライトアロケートまたはライトノーアロケートポリシーを実施するために、既存のライトアロケーションポリシーをオーバーライドするように構成される、請求項11に記載の装置。
【請求項２０】
セットトップボックス、音楽プレーヤ、ビデオプレーヤ、娯楽ユニット、サーバ、ナビゲーションデバイス、携帯情報端末(PDA)、固定ロケーションデータユニット、コンピュータ、ラップトップ、タブレット、通信デバイス、および携帯電話からなる群から選択されたデバイスに統合される、請求項11に記載の装置。
【請求項２１】
キャッシュへの書込み要求の書込みアドレスに関連付けられた1つまたは複数の実行許可を決定するための手段と、
前記書込み要求について前記キャッシュにライトミスがある場合、前記1つまたは複数の実行許可に基づいて、前記書込み要求についてライトアロケートまたはライトノーアロケートポリシーを実施するための手段と
を備える装置。
【請求項２２】
前記キャッシュが、データおよび命令を記憶するための手段を備える、請求項21に記載の装置。
【請求項２３】
前記書込み要求を生成するための手段と、前記書込みアドレスから実行するための手段とを備え、前記生成するための手段および前記実行するための手段の実行許可が、前記生成するための手段および前記実行するための手段の特権レベルに基づく、請求項21に記載の装置。
【請求項２４】
前記書込みアドレスについてのアドレス変換および前記書込みアドレスに関連付けられた前記1つまたは複数の実行許可を記憶するための手段をさらに備える、請求項21に記載の装置。
【請求項２５】
既存のライトアロケーションポリシーをオーバーライドするための手段を備える請求項21に記載の装置。
【請求項２６】
プロセッサによって実行されると、キャッシュを管理するための動作を前記プロセッサに実行させるコードを備える、非一時的コンピュータ可読記憶媒体であって、
前記キャッシュへの書込み要求の書込みアドレスに関連付けられた1つまたは複数の実行許可を決定するためのコードと、
前記書込み要求について前記キャッシュにライトミスがある場合、前記1つまたは複数の実行許可に基づいて、前記書込み要求についてライトアロケートまたはライトノーアロケートポリシーを実施するためのコードと
を備える非一時的コンピュータ可読記憶媒体。
【請求項２７】
前記書込み要求を生成するためのコードと、前記書込みアドレスから実行するためのコードとを備える、請求項26に記載の非一時的コンピュータ可読記憶媒体。
【請求項２８】
前記1つまたは複数の実行許可が、前記書込みアドレスに関連付けられた1つまたは複数の特権レベルについての実行許可を含む、請求項26に記載の非一時的コンピュータ可読記憶媒体。
【請求項２９】
既存のライトアロケーションポリシーをオーバーライドするためのコードをさらに備える、請求項26に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
開示する態様は、処理システムにおけるキャッシュアロケーションの管理を対象とする。より詳細には、例示的な態様は、実行許可に基づくユニファイドキャッシュにおけるライトアロケーションを対象とする。
【背景技術】
【０００２】
現代のプロセッサは、高速メモリとなるように設計された1つまたは複数のレベルのキャッシュメモリ(または単に「キャッシュ」)を含み得る。キャッシュに記憶される情報(または「キャッシュされた情報」)は、データ、命令、またはそれらの組合せを含むことができる。キャッシュされた情報のタイプに応じて、キャッシュは、データキャッシュ(Dキャッシュ)、命令キャッシュ(Iキャッシュ)、または複合のデータおよび命令キャッシュ(「ユニファイドキャッシュ(Unified Cache)」としても知られる)に分類され得る。
【０００３】
キャッシュにアクセスするプロセスは、プロセッサが特定の情報の読取り要求または書込み要求を行い、要求された情報が存在するかどうかを確認するためにキャッシュをチェックすることを伴い得る。情報が存在する場合、キャッシュ「ヒット」が生じると言われ、情報が存在しない場合、キャッシュ「ミス」が生じると言われる。要求が読取りについてであるか、書込みについてであるかに応じて、ヒットまたはミスは、より詳細には、リードヒット(Read-Hit)/リードミス(Read-Miss)、またはライトヒット(Write-Hit)/ライトミス(Write-Miss)と呼ばれ得る。
【０００４】
より詳細には、リードヒットの場合、プロセッサによって要求された情報に関連付けられたアドレスに対応するエントリ(ヒッティングエントリ)がキャッシュに存在し、情報は、ヒッティングエントリから読み取られ、キャッシュからプロセッサに戻される。ライトヒットの場合、同様に、プロセッサが情報を書き込むことを望むアドレスに対応するヒッティングエントリがキャッシュに存在し、プロセッサはその情報をキャッシュ内のヒッティングエントリに書き込む。リードミスおよびライトミスの場合は、以下で説明するように、異なる方法で処理され得る。
【０００５】
リードミスは、プロセッサがエントリから情報を読み取るためにキャッシュにアクセスするが、エントリがキャッシュに存在しないときに生じる。リードミスを処理するために、所望の情報が別のキャッシュまたはバッキング記憶ロケーション(Backing Storage Location)から読み取られ、次いでプロセッサに供給され、所望の情報は、キャッシュのエントリにも配置され得る。(新しいエントリを作成することによって、または既存のエントリを所望の情報で置き換えることによって)キャッシュのエントリに所望の情報を配置することは、アロケーションと呼ばれる。従来、アロケーションは、(以下のセクションで説明するアクセス許可など他の基準が満たされていると仮定して)リードミスにおいて実行され得る。
【０００６】
しかしながら、様々な実装形態において、ライトミスはアロケーションを伴う場合も伴わない場合もある。ライトミスをより詳細に考察すると、ライトミスは、特定のエントリに情報を書き込むためにキャッシュにアクセスすることを伴うが、エントリはキャッシュ内に存在しない。ライトミスは、ライトアロケートポリシー(Write-Allocation Policy)またはライトノーアロケートポリシー(Write-No-Allocate Policy)で処理され得る。ライトアロケートポリシーは、(たとえば、バッキング記憶ロケーションから)書込み要求に関連付けられたアドレスに記憶されたキャッシュラインサイズのブロックをキャッシュのエントリに取り込み(アロケーション)、所望の書込み情報を、アロケートされたエントリに記憶することを伴う。対応する読取りアクセスがキャッシュにおけるリードヒットをもたらすので、アロケートされたエントリに対して後続の読取り要求が行われる場合、ライトアロケートポリシーを使用することによって、性能を向上させることができる。後続の書込みアクセスもライトヒットをもたらし、対応する書込み情報は、バッキング記憶ロケーションへのアクセスを伴わずに、アロケートされたエントリを更新することができるので、アロケートされたエントリへの後続の書込みアクセスでは、性能が向上され得る(ライトヒットの場合でもバッキング記憶ロケーションにおいて書込み情報が更新される「ライトスルー(Write-Through)」ポリシーは、それにもかかわらず、バッキング記憶ロケーションへのそのようなアクセスを伴い得ることに留意されたい)。
【０００７】
ライトノーアロケートポリシー下では、キャッシュにおけるライトミスを処理することは、その後キャッシュを更新またはアロケートすることなく、書込み情報に対応するアドレスについてのバッキング記憶ロケーションのチェックに進むことを伴い得る。これは、アロケートされたエントリが作成されず、そのため、アロケートされていないエントリへの後続の書込み要求もないことを意味する。前に説明したように、リードミスは、アロケーションをもたらす可能性があり、そのため、後続の読取りアクセスに基づいてエントリがアロケートされない限り、後続の書込み要求は、引き続きライトミスをもたらし、ライトノーアロケートポリシーを続行する。ライトノーアロケートポリシーは、書き込まれた情報が読み取られた情報に関する時間的局所性を有する可能性が低い環境で実施され得る。たとえば、キャッシュがDキャッシュである場合、プロセッサによって実行されるプログラムが比較的最近書き込まれたデータを読み取る可能性が低い場合、ライトノーアロケートポリシーが適切であり得る。したがって、ライトミス時にエントリをアロケートすることを回避することができ、このことは、そのような場合に性能を向上させることができる。
【０００８】
いくつかの実装形態では、ライトアロケートポリシーとライトノーアロケートポリシーの組合せ(「混合アロケーションポリシー」とも呼ばれる)が使用され得る。混合アロケーションポリシーでは、ライトアロケーションは、読取り/書込み要求に関連付けられたアドレスに基づいて変わり得る。アドレスはメモリの異なるページに属し、各メモリページは、異なるアロケーションポリシーに関連付けられる。所望の読取り/書込みメモリアクセスについてのアロケーションポリシー属性は、たとえばメモリアクセスのためのページテーブルエントリ(PTE)においてなど、当技術分野で知られているように、メモリ管理ユニット(MMU)に記憶し、そこから取り出すことができる。したがって、ライトミスがライトアロケートをもたらすか否か、またはライトノーアロケートをもたらすか否かは、PTEからの書込み要求に関連付けられた構成またはアロケーションポリシー属性に基づいて決定され得る。
【０００９】
前述のように、メモリアクセス動作は、アクセス許可など、追加の基準の影響も受ける可能性がある。たとえば、各メモリページは、メモリページに属するアドレスについての読取りおよび書込み動作に影響を及ぼし得る関連する許可を有し得る。アドレスに関連付けられたPTEは、プロセッサによって望まれる読取りまたは書込みアクセスが、対応する読取りまたは書込み許可を有するかどうかを決定する際に、MMUによって使用され得、それに応じて読取りアクセスまたは書込みアクセスがそれぞれ、進行を許可され得る。したがって、特定のアドレスについてのアクセス許可が存在する(すなわち、読取り動作についての読取り許可が存在する、または書込み動作についての書込み許可が存在する)場合、対応するアクセス動作(それぞれ読取りまたは書込み)が許可され得る。
【００１０】
したがって、アクセス許可が存在しない場合、アクセス動作が許可されない可能性があり、したがって、アロケーションの問題が生じない可能性があり、アクセス許可が存在する場合、アロケーションは、そのアドレスについて適切であり得る特定のアロケーションポリシーに基づき得るので、あるアドレスについてのアクセス動作がキャッシュアロケーションをもたらす可能性があるかどうかを決定することは、まず、対応するアクセス許可が存在するかどうかを決定することを伴い得る。たとえば、書込み動作の場合、キャッシュ内のライトミスについてのライトアロケートポリシーを決定することは、2段階のプロセスであり得、第1の段階は、意図された書込み動作についての書込み許可が存在するかどうかを決定することを伴い得る。書込み許可が存在する場合、第2の段階は、キャッシュにライトミスがある場合、ライトアロケートを行うかライトノーアロケートを行うかを決定することを伴い得る。第1の段階で、書込み許可が存在しないと決定された場合、書込み動作が許可されず、キャッシュがアクセスされない可能性があるので、キャッシュアロケーションの問題は議論の余地があり得る。
【００１１】
読取り許可および書込み許可に加えて、メモリアドレスまたはメモリページに関連付けられ得るさらに別のタイプの許可は、「実行」許可に関し得る。実行許可は、メモリに記憶された命令に関し得、命令が記憶されているアドレスが実行許可を有する場合、命令が実行され得、さもなければ、命令は、特定のプログラムによって実行されない可能性がある。コード生成器、ジャストインタイム(JIT)コンパイラ、および読取り/書込み、ならびに実行命令を伴い得る他のプログラムの対象となるものなど、いくつかのメモリページは、読取り/書込み許可、ならびに実行許可が有効になっている可能性がある。コード生成器は、コンパイルされたプログラムを、読取り、書込み、および実行許可を有するメモリページに書き込んだ後、コンパイルされたプログラムをこれらのメモリページから取り出して実行し得る。
【００１２】
したがって、データおよび命令を記憶することができるユニファイドキャッシュは、ユニファイドキャッシュのエントリに関連付けられた読取り、書込み、および実行許可を有し得ることが諒解できる。従来の実装は、メモリアクセスが許可されているかどうかを決定する際に、読取りおよび書込み許可を考慮に入れる場合がある。しかしながら、既知の手法は、ユニファイドキャッシュにはない書込みアクセスについてのライトアロケーションポリシーを決定する際に実行許可を考慮していない。
【発明の概要】
【課題を解決するための手段】
【００１３】
本開示の例示的な態様は、データおよび命令を記憶するためのユニファイドキャッシュとして構成され得る、キャッシュへのアクセスを管理するためのシステムおよび方法を対象とする。キャッシュへの書込み要求の書込みアドレスに関連付けられた1つまたは複数の実行許可は、たとえばメモリ管理ユニット(MMU)などの論理を使用することによって決定され得る。書込み要求についてライトミスがキャッシュに存在する場合、キャッシュコントローラは、1つまたは複数の実行許可に基づいて、ライトミスを処理するために、ライトアロケートポリシーを実施するか、ライトノーアロケートポリシーを実施するかを決定し得る。
【００１４】
いくつかの態様では、書込みアドレスに関連付けられた1つまたは複数の実行許可は、たとえばユーザ特権レベル、スーパーバイザー特権レベルなど、書込みアドレスに適用可能な1つまたは複数の特権レベルについての実行許可に関し得る。書込み要求を生成した生成エージェント、および書込みアドレスから潜在的に実行可能な消費エージェントは各々、1つまたは複数の特権レベルから選択された特権レベルを有し得る。ライトミスを処理するときに、生成エージェントおよび生成エージェントの特権レベルはわかり得るが、潜在的な消費エージェントはわからない可能性があり、したがって、潜在的な消費エージェントの関連する特権レベルはわからない可能性がある。したがって、いくつかの態様では、ライトミスについてのライトアロケーションポリシーは、生成エージェントの特権レベルに関連付けられた実行許可および/または書込みアドレスについての任意の他の特権レベルに関連付けられた実行許可(たとえば、その機能)に基づき得る。
【００１５】
たとえば、例示的な態様は、キャッシュを管理するための方法を対象とし、この方法は、キャッシュへの書込み要求の書込みアドレスに関連付けられた1つまたは複数の実行許可を決定するステップを含む。書込み要求についてライトミスがキャッシュに存在する場合、ライトミスを処理するために、ライトアロケートポリシーを実施するか、ライトノーアロケートポリシーを実施するかの決定は、1つまたは複数の実行許可に基づく。
【００１６】
別の例示的な態様は、キャッシュと、キャッシュへの書込み要求の書込みアドレスに関連付けられた1つまたは複数の実行許可を決定するように構成された論理と、書込み要求についてライトミスがキャッシュにある場合、1つまたは複数の実行許可に基づいて書込み要求についてライトアロケートまたはライトノーアロケートポリシーを実施するように構成されたキャッシュコントローラとを備える装置を対象とする。
【００１７】
別の例示的な態様は、キャッシュへの書込み要求の書込みアドレスに関連付けられた1つまたは複数の実行許可を決定するための手段と、書込み要求についてライトミスがキャッシュにある場合、1つまたは複数の実行許可に基づいて書込み要求についてライトアロケートまたはライトノーアロケートポリシーを実施するための手段とを備える装置を対象とする。
【００１８】
また別の例示的な態様は、プロセッサによって実行されると、キャッシュを管理するための動作をプロセッサに実行させるコードを備える非一時的コンピュータ可読記憶媒体を対象とし、非一時的コンピュータ可読記憶媒体は、キャッシュへの書込み要求の書込みアドレスに関連付けられた1つまたは複数の実行許可を決定するためのコードと、書込み要求についてライトミスがキャッシュにある場合、1つまたは複数の実行許可に基づいて書込み要求についてライトアロケートまたはライトノーアロケートポリシーを実施するためのコードとを備える。
【００１９】
添付の図面は、本発明の態様についての説明を助けるために提示され、態様の限定ではなく、態様の例示のためのみに提供されている。
【図面の簡単な説明】
【００２０】
【図１】本開示の態様による、プロセッサシステムの例示的なブロック図である。
【図２】本開示の態様による、キャッシュを管理するための例示的な方法を示す図である。
【図３】本開示の態様が有利に採用される場合がある例示的なワイヤレスデバイスを示す図である。
【発明を実施するための形態】
【００２１】
本発明の態様が、本発明の特定の態様に関する以下の説明および関連する図面において開示される。本発明の範囲から逸脱することなく、代替態様が考案され得る。加えて、本発明のよく知られている要素は、本発明の関連する詳細を不明瞭にしないように、詳細には説明されない、または省略される。
【００２２】
「例示的な」という語は、本明細書では「例、事例、または例示としての役割を果たすこと」を意味するために使用される。本明細書で「例示的」と記載されている任意の態様は、必ずしも他の態様よりも好ましいまたは有利であると解釈されるべきではない。同様に、「本発明の態様」という用語は、本発明のすべての態様が論じる特徴、利点、または動作モードを含むことを必要としない。
【００２３】
本明細書で使用する用語は、特定の態様のみについて説明する目的のためのものであり、本発明の態様の限定であることを意図しない。本明細書では、単数形「a」、「an」、および「the」は、文脈が別段明確に示さない限り、複数形も含むものとする。さらに、「備える(comprises)」、「備えている(comprising)」、「含む(includes)」、および/または「含んでいる(including)」という用語は、本明細書で使用されるとき、述べられた特徴、整数、ステップ、動作、要素、および/または構成要素の存在を明示するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、および/またはそれらのグループの存在または追加を排除しないことが理解されよう。
【００２４】
さらに、多くの態様について、たとえば、コンピューティングデバイスの要素によって実行されるべきアクションのシーケンスに関して説明される。本明細書で説明する様々なアクションは、特定の回路(たとえば、特定用途向け集積回路(ASIC))によって、1つまたは複数のプロセッサによって実行されているプログラム命令によって、または両方の組合せによって実行することができることが認識されよう。加えて、本明細書で説明するこれらのアクションのシーケンスは、実行時に、関連するプロセッサに本明細書で説明する機能を実行させる、対応するコンピュータ命令のセットを記憶した、任意の形態のコンピュータ可読記憶媒体内で完全に具現化されると見なすことができる。したがって、本発明の様々な態様は、いくつかの異なる形態で具現化されてもよく、それらのすべてが、請求する主題の範囲内にあることが企図されている。加えて、本明細書で説明する態様の各々について、任意のそのような態様の対応する形態については、たとえば、説明するアクションを実行する「ように構成された論理」として本明細書で説明する場合がある。
【００２５】
本開示の例示的な態様は、キャッシュを含む処理システムを対象とする。いくつかの例では、キャッシュは、データおよび命令を記憶するように構成されたユニファイドキャッシュであってもよい。ユニファイドキャッシュに記憶された、または記憶される情報(データ/命令)は、関連する読取り、書込み、および実行許可を有し得る。読取り、書込み、および実行許可は、情報に関連付けられたメモリアドレス、またはより一般的には、メモリアドレスを含むメモリページに依存し得る。
【００２６】
例示的な態様では、メモリアドレスがそれに関連付けられた書込み許可と実行許可の両方を有する場合、メモリアドレスに関連付けられた情報は、将来の使用の可能性が高い可能性があることを認識されたい。前述のように、書込み許可を有することは、情報をメモリアドレスに書き込むことを可能にするための基本条件であり得る。一例では、情報は、(書込み許可が存在するので、データ書込み動作を使用して、データとして書き込まれる)命令であってもよい。情報は、(たとえば、実行許可が存在するので、命令フェッチを使用して)将来実行されるようにフェッチされてもよい。将来的に、情報が実行のためにアクセスされ得る(または言い換えると、メモリアドレスがそれから実行され得る)ことを仮定すれば、ユニファイドキャッシュに情報を書き込もうと試みるときにライトミスが生じる場合、例示的な態様では、ライトミスを処理している間に、ライトアロケートポリシーが実施されてもよい。そうでない場合、実行許可が存在しない場合、ライトミスは、ライトノーアロケートポリシーに基づいて処理され得る。したがって、例示的な態様では、書込みアドレスへの書込み動作についてのライトミスの場合に、キャッシュアロケーションポリシーを決定するために、書込みアドレスに関連付けられた実行許可が使用され得る。
【００２７】
例示的な態様では、ユニファイドキャッシュは、1つまたは複数のエージェントまたはプロセスによってアクセスされ得る。たとえば、情報は、本明細書では「生成エージェント(Producing Agent)」とも呼ばれる書込みエージェントによってユニファイドキャッシュに書き込まれてもよい。情報は、本明細書において「消費エージェント(Consuming Agent)」と呼ばれるエージェントによって実行され、またはより一般的には、「消費され」得る。いくつかの場合には、生成エージェントおよび消費エージェントは、同じエンティティ(たとえばプロセッサ)のプロセスを指すことがあり、いくつかのケースでは、生成エージェントおよび消費エージェントは、異なるエンティティ(たとえば、ユニファイドキャッシュにアクセスできる異なるプロセッサ)であり得る。
【００２８】
処理システムでは、1つまたは複数のプロセッサ、プロセス、またはエンティティ(たとえば、メモリにアクセスすることができる)は、当技術分野で知られているように、ユーザ特権レベル、スーパーバイザー特権レベルなど、1つまたは複数の特権レベル下で動作され得る。特権レベルごとに、各メモリアドレスまたはページに関連付けられた対応する読取り、書込み、および実行許可があり得る。したがって、生成エージェントおよび消費エージェントは、同じまたは異なる特権レベル下で動作されることがあり、そのため、生成エージェントおよび消費エージェントは、関連する特権レベルに基づく実行許可を有し得る。
【００２９】
書込み要求が生成エージェントによって生成されるとき、生成エージェントによって書き込まれる情報を潜在的に消費する可能性がある消費エージェントはわからないことがある。したがって、書込み要求がキャッシュミスをもたらした場合、ライトミスを処理するときに、生成エージェントおよび生成エージェントの特権レベルはわかり得るが、潜在的な消費エージェントはわからない可能性があり、したがって、潜在的な消費エージェントの関連する特権レベルはわからない可能性がある。したがって、いくつかの態様では、ライトミスについてのライトアロケーションポリシーは、生成エージェントの特権レベルに関連付けられた実行許可(たとえば、その機能)および/または書込みアドレスについての任意の他の特権レベルに関連付けられた実行許可(たとえば、その機能)に基づき得る。
【００３０】
いくつかの場合には、生成エージェントと消費エージェント(それらが同じエンティティであるか異なるエンティティであるかにかかわらず)は、メモリ管理ユニット(MMU)を介してユニファイドキャッシュにアクセスし得る。たとえば、MMUは、(エージェントによって供給された)仮想アドレスの物理アドレス(バッキングストレージロケーション、ならびにユニファイドキャッシュ内のメモリロケーションのアドレス指定に使用される)への変換をキャッシュするように構成されたトランスレーションルックアサイドバッファ(TLB)を含み得る。TLBは、前に説明したように1つまたは複数のページテーブルエントリ(PTE)を有し得、各PTEは、仮想から物理へのアドレス変換を含み得る。例示的な態様では、PTEは、生成エージェントによって生成された書込み要求についての書込みアドレスへの変換とともに、書込みアドレスに関連付けられた書込みおよび実行許可をさらに含むように拡張されてもよい。書込みアドレスを含むPTEは、書込みアドレスに関連付けられた1つまたは複数の実行許可を含み得、1つまたは複数の実行許可は、1つまたは複数の特権レベルに関連付けられた実行許可に関係し得る。
【００３１】
簡潔のために、プロセッサおよびユニファイドキャッシュを含む処理システムを参照しながら、例示的な態様について説明し、ここで、プロセッサは、1つまたは複数の特権レベルで動作することができ、各特権レベルは、関連する読取り、書込み、および実行許可を有する。簡潔のために、同じプロセッサによって実行可能なプロセスは、メモリアクセス要求のタイプに基づいて、生成エージェントまたは消費エージェントと呼ばれ得るが、開示された態様が、本開示の範囲から逸脱することなく、生成エージェントおよび消費エージェントが異なるエンティティまたは処理ユニットに属し得る、他の変形に容易に拡張され得ることを理解されよう。
【００３２】
したがって、図1を参照すると、プロセッサ105、TLB125を含むMMU115、およびキャッシュ110を有する例示的な処理システム100が示されている。プロセッサ105は、マイクロプロセッサ、汎用プロセッサ、中央処理装置(CPU)、デジタル信号プロセッサ(DSP)、プログラマブル論理デバイスなど、任意のタイプのプロセッサ構成要素とすることができる。例示的な態様では、プロセッサ105は、処理されるトランザクションの性質に応じて、より具体的には、プロセッサ105によって生成されるメモリアクセス要求のタイプに応じて、生成エージェントおよび消費エージェントとして構成され得る。様々な変形形態では、プロセッサ105は、ユーザ特権レベル、スーパーバイザー特権レベルなど、1つまたは複数の特権レベル下で動作され得る。
【００３３】
キャッシュ110は、たとえば、レベル1(L1)キャッシュであってもよく、プロセッサ105によって消費され得る情報をキャッシュするように構成されてもよい。様々な態様では、参照番号175によって識別されるキャッシュコントローラは、本開示の態様に従って、キャッシュ110へのアクセスを制御し、キャッシュ110についての様々なキャッシュアロケーションポリシーを実施するための論理および/または他の手段を含み得る。特には図示しないが、処理システム100は、キャッシュ110のための1つまたは複数のバッキング記憶ロケーションを有するメモリシステムを含み得る(たとえば、処理システム100、メインメモリなどにも存在し得る1つもしくは複数の他のプロセッサまたは処理コアと共有することができるレベル2(L2)キャッシュ)。プロセッサ105によって生成されたメモリアクセス要求についてキャッシュ110にミス(たとえば、リードミスまたはライトミス)がある場合、ミスを処理することは、当技術分野で知られている技法に従って、1つまたは複数のバッキング記憶ロケーションにアクセスすることを伴い得、そのため、これらの技法は、ここでは簡潔にするために、それほど詳細には説明しない。本開示の態様は、ミス時のキャッシュ110におけるアロケーション、より具体的には、ライトミス時のライトアロケーション(たとえば、ライトアロケートまたはライトノーアロケート)を対象とする。キャッシュ110におけるリードミスは、たとえばアロケーションなど、従来のやり方で処理される可能性があり、そのため、リードミスについても本開示ではそれほど詳細には説明しない。
【００３４】
例示的な態様では、キャッシュ110は、命令およびデータを記憶するために、ユニファイドキャッシュとして構成され得る。プロセッサ105の生成エージェントは、キャッシュ110にデータの形式で命令を書き込むことができ得る。その後、キャッシュ110内の命令は、プロセッサ105の潜在的な消費エージェントによって実行されるべき命令としてフェッチされ得る。生成エージェントおよび潜在的な消費エージェントは、プロセッサ105にとって可能な1つまたは複数の特権レベル下で動作され得、各特権レベルは、関連する読取り、書込み、および実行許可を有する。
【００３５】
キャッシュ110にアクセスする前に、情報が書き込まれるべき意図された書込みアドレスについての生成エージェントの書込み許可は、たとえば、生成エージェントが動作される特権レベル(ユーザ/スーパーバイザー)が、書込みアドレスについての書込み許可を有するかどうかを決定することによって決定され得る。生成エージェントが、情報がキャッシュ110に書き込まれるべき書込みアドレスについての書込み許可を有すると仮定すると、ライトミスがある場合、対応するライトミスは、たとえば、ユーザ特権での実行許可および/またはスーパーバイザー特権での実行許可など、書込みアドレスに関連付けられた1つまたは複数の実行許可に基づいて、ライトアロケートまたはライトノーアロケートとして処理され得る(たとえば、ライトアロケーションポリシーがキャッシュコントローラ175によって実施され得る)。1つまたは複数の機能あるいは1つまたは複数の実行許可の組合せに基づいて、ライトアロケートポリシーおよびライトノーアロケートポリシーを使用してライトミスを処理する例について、ライトアロケーションポリシーを決定することが1つまたは複数の実行許可の様々な他の組合せに基づき得ることに留意しながら、次のセクションで詳細に説明する。
【００３６】
本開示の範囲から逸脱することなく、任意のキャッシュアーキテクチャ(たとえば、ダイレクトマップ、フルアソシアティブ、セットアソシアティブなど)がキャッシュ110に使用され得るが、説明の便宜上、キャッシュ110をダイレクトマップキャッシュとして図1に示す。したがって、キャッシュ110は、1つまたは複数のキャッシュラインまたはキャッシュエントリ130を含むように示され、各キャッシュエントリ130は、タグ135および情報145を含む。タグ135は、対応する情報145が記憶されるアドレスのビットの選択されたサブセット(より具体的には、物理アドレス)によって形成されるフィールドである。キャッシュ110は、タグ135に基づいて索引付けすることができる。たとえば、キャッシュコントローラ175は、すべてのキャッシュエントリ130のタグ135を、(たとえば、プロセッサ105によって行われるメモリアクセス要求に対応するアドレスなど)キャッシュアクセスが望まれるアドレスの対応するビットと比較することができ、任意のキャッシュエントリ130のタグ135との一致がある場合、キャッシュヒットがあり、タグ135が所望のキャッシュアクセスのためのアドレスと一致するキャッシュエントリは、ヒッティングキャッシュエントリと呼ばれる。キャッシュエントリ130のいずれのタグ135も所望のキャッシュアクセスのためのアドレスと一致しない場合、キャッシュミスが存在する。
【００３７】
書込み動作に対応する書込みアドレスについてのキャッシュミス、すなわちライトミスが存在する場合、ライトミスを処理するためにライトアロケートポリシーが使用される場合、新しいキャッシュエントリがキャッシュ110内に作成され得る(これは、当技術分野で知られているように、MRU(Most Recently Used)、LRU(Least Recently Used)などの技法を使用して、新しいキャッシュエントリを作成するか、またはキャッシュコントローラ175によって既存のものを置き換える任意の方法を伴い得る)。書込みアドレスに対応する事前情報は、書込みアドレスが見つかるバッキング記憶ロケーションからキャッシュ110に取り込まれ、書込み動作に対応する情報は、書込みアドレスに基づいて新しいキャッシュエントリに書き込まれ、タグ付けされ得る(より具体的には、書込みアドレスが仮想アドレスとして指定されている場合、タグは書込みアドレスの物理アドレス変換に基づき得る)。ライトノーアロケートポリシーが使用される場合、ライトミスを処理することは、新しいキャッシュエントリを作成することなく、また、キャッシュ110内の新しいキャッシュエントリに情報を書き込むことなく、書込みアドレスが見つかるバッキング記憶ロケーションに情報を書き込むことを伴う。ライトアロケートポリシーを決定する際に使用され得る様々な許可は、いくつかの態様では、MMU115によって提供され得る。
【００３８】
MMU115は、一般に、(たとえば、キャッシュコントローラ175と協働して)キャッシュ110へのアクセス、および明示的に示されていない他のメモリへのアクセスを管理するように構成され得る。本開示では、MMU115は、アドレス変換のために構成されたTLB125を備え得る。プロセッサ105は、その動作において仮想アドレスを使用し得るが、キャッシュ110および処理システム100内の他のメモリは、物理アドレスを使用して索引付けされ、アクセスされ得る。TLB125は、たとえば、プロセッサ105によって生成されたメモリアクセス要求についての高速アドレス変換を可能にするために、プロセッサ105によって使用される可能性のある比較的少数の仮想から物理へのアドレス変換を記憶し得る。この点について、TLB125は、プロセッサ105による将来の使用の可能性が高いアドレス変換(たとえば、頻繁に使用されるアドレス変換、最近使用されたアドレス変換など)を記憶するための既知の技法に従って実装され得る。TLB125が特定のメモリアクセス要求についての変換を含まない(すなわち、「TLBミス」が存在する)場合、所望のアドレス変換を決定するためにページテーブルウォーク(Page Table Walk)を実行する、より時間のかかるプロセスがMMU115によって行われ得るが、TLB125を実装するための技法および/またはTLBミスを処理するための技法は、本開示の範囲を超えている。
【００３９】
例示的な態様では、TLB125は、図1の参照番号120によって集合的に指示されるページテーブルエントリ(PTE)とも呼ばれる1つまたは複数のTLBエントリを含み得る。PTE120の例示的なPTE155のさらなる詳細が示されている。PTE155は、物理アドレス(PA)140への対応する変換である仮想アドレス(VA)160を含むように示されている。さらに、例示的な態様によれば、TLB125は、スーパーバイザー書込み許可(SW)165、ユーザ書込み許可(UW)167、スーパーバイザー実行許可(SX)170、およびユーザ実行許可(UX)172などの許可ビットも含み得る。SW165およびUW167は、PA140(たとえば、メインメモリにおける書込みアドレスであり得る)、またはより一般的には、物理アドレス140を含むメモリページのスーパーバイザー(S)およびユーザ(U)特権レベルに関連付けられた書込み(W)許可であり得る。同様に、SX170およびUX172は、PA140のスーパーバイザー(S)およびユーザ(U)特権レベルに関連付けられた実行(X)許可であり得る。PTE155はまた、物理アドレスまたはメモリページに対応する1つまたは複数の読取り許可ビットを含むことができるが、前に述べたように読取りアクセスは本開示では特に論じられないので、これらは特に示したり説明したりしない。
【００４０】
次に、キャッシュ110にアクセスするための、および、より詳細には、例示的な態様によるライトアロケーションを決定するための例示的なプロセスを、引き続き図1を参照しながら説明する。したがって、プロセッサ105(またはプロセッサ105の生成エージェント)によって生成される特定のメモリアクセス要求が考慮される。メモリアクセス要求は、書込みアドレスに情報(たとえば、命令を含む書込みデータ)を書き込むための書込み要求であってもよい。プロセッサ105は書込み要求を行うので、書込みアドレスは、書込み要求において仮想アドレスとして表され得る。書込み要求についてのTLB125内のPTE155のTLBヒットを仮定すると、PTE155は、書込みアドレスのVA160およびPA140への対応する変換を含む。
【００４１】
さらに、PTE155は、PA140に対応するSW165およびUW167も含む。書込み要求が生成されたとき、書込み要求を生成した生成エージェントの特権レベル(ユーザ/スーパーバイザー)がわかり得る。したがって、対応する書込み許可、SW165またはUW167は、それぞれ、プロデューサの特権レベルがスーパーバイザーであるか、ユーザであるかに基づいてチェックされる。対応する書込み許可がアサートされていない(またはデアサートされた)場合、書込み要求についての書込み許可は、利用可能でなく、たとえばキャッシュコントローラ175は、書込み要求についてのキャッシュ110のアクセスを許可しない可能性があり、書込み要求は、終了され、および/または例外/エラーフラグが生成され、本開示の範囲を超える方法で処理されてもよく、したがって、キャッシュアクセスが回避され得る。
【００４２】
対応する書込み許可がアサートされた場合、書込み要求は、次のように処理され得る。たとえば、キャッシュコントローラ175は、書込みアドレスまたはPA140を使用して、キャッシュ110を調べる、または探索し得る。キャッシュエントリ130のいずれかがPA140の対応するビットに一致するタグ135を有する場合、キャッシュヒットまたはライトヒットがあり、キャッシュコントローラ175は、ヒッティングキャッシュエントリに書込みデータを書き込むことができる。一方、タグ135のいずれもPA140の対応するビットと一致しなかった場合、ライトミスが存在する。
【００４３】
ライトミスを処理することは、SX170およびUX172に基づき得る。ライトミスの処理時に、書込みデータについての潜在的な消費エージェントはわからない場合がある。したがって、書込みアドレスを実行し得る潜在的な消費エージェントの特権レベルは、スーパーバイザー特権またはユーザ特権のうちの1つであり得るので、書込みアドレスに関連付けられた実行許可SX170およびUX172のうちの1つまたは複数が考慮され得る。ライトミスを処理している間にキャッシュ110においてライトアロケートを行うか、ライトノーアロケートを行うかを決定する際の、SX170およびUX172の1つまたは複数の組合せについて、以下のセクションで詳細に説明する。
【００４４】
SX170およびUX172に基づいて、ライトミスがライトアロケートとして処理されると決定された場合、1つまたは複数のバッキング記憶ロケーション(たとえば、L2キャッシュ、L3キャッシュ、メインメモリなど)が探索され、書込みアドレスまたはPA140を含む第1のバッキング記憶ロケーションにアクセスする。バッキング記憶ロケーションのPA140に記憶された事前情報が読み出され、キャッシュコントローラ175は、キャッシュ110において新しいキャッシュエントリ150を作成し得る。キャッシュコントローラ175は、書込みデータを新しいキャッシュエントリ150の情報145に書き込み、PA140のビットに基づいて新しいキャッシュエントリ150のタグ135を設定し得る。
【００４５】
一方、SX170およびUX172に基づいて、ライトミスがライトノーアロケートとして処理されると決定された場合、1つまたは複数のバッキング記憶ロケーション(たとえば、L2キャッシュ、L3キャッシュ、メインメモリなど)が探索され、PA140を含む第1のバッキング記憶ロケーションにアクセスする。バッキング記憶ロケーションのPA140に記憶された事前情報は、第1のデータで上書きされるが、キャッシュ110において新しいキャッシュエントリ150は作成されない。
【００４６】
次に、ライトアロケートまたはライトノーアロケートの決定が基づき得るSX170およびUX172の機能または組合せについて、より詳細に説明する。ここでもまた、以下の例では、生成エージェントの特権レベルに基づく対応する書込み許可(SW165またはUW167)がアサートされていると仮定する。さらに、生成エージェントの特権レベルがわかり得、これは、既知の特権レベルに関連付けられた生成エージェントの実行許可もわかり得ることを意味するが、潜在的な消費エージェントに関連付けられた特権レベルまたは実行許可はわからない可能性があり、しかし、SX170またはUX172のいずれかであると仮定され得る。
【００４７】
第1の例では、ライトミスは、SX170がアサートされた場合のみ、すなわちスーパーバイザー特権での実行許可がある場合のみ、ライトアロケートとして処理され得る。この例では、UX172の値は考慮されない可能性がある。
【００４８】
第2の例では、ライトミスは、UX172がアサートされた場合のみ、すなわちユーザ特権での実行許可がある場合のみ、ライトアロケートとして処理され得る。この例では、SX170の値は考慮されない可能性がある。
【００４９】
第3の例では、ライトミスは、SX170またはUX172のうちの少なくとも1つがアサートされた場合のみ、すなわちスーパーバイザー特権および/またはユーザ特権での実行許可がある場合、ライトアロケートとして処理され得る。
【００５０】
第4の例では、ライトミスは、生成エージェントの特権レベルについての実行許可がアサートされた場合のみ(すなわち、それぞれ生成エージェントがスーパーバイザー特権レベルで動作されているか、ユーザ特権レベルで動作されているかに基づいて、SX170またはUX172がアサートされた場合のみ)、ライトアロケートとして処理され得る。たとえば、生成エージェントは、(ユーザ特権を有する潜在的な消費エージェントによってではなく)スーパーバイザー特権のみを有する潜在的な消費エージェントによって消費または実行される命令またはコードを生成するために、スーパーバイザー特権下で動作され、または生成エージェントは、(スーパーバイザー特権を有する潜在的な消費エージェントによってではなく)ユーザ特権下のみで動作される潜在的な消費エージェントによって消費または実行される命令またはコードを生成するために、ユーザ特権下で動作され得る。したがって、これらの例では、生成エージェントの特権レベルではない特権レベルに関連付けられた実行許可は考慮されず、生成エージェントの特権レベルに関連付けられた実行許可のみが考慮される。
【００５１】
第5の例では、ライトミスは、生成エージェントの特権レベルではない特権レベルについての実行許可がアサートされた場合のみ(すなわち、それぞれ生成エージェントがユーザ特権レベルで動作されているか、スーパーバイザー特権レベルで動作されているかに基づいて、SX170またはUX172がアサートされた場合のみ)、ライトアロケートとして処理され得る。したがって、この例では、生成エージェントの特権レベルではない特権レベルに関連付けられた実行許可のみが考慮され、生成エージェントの特権レベルに関連付けられた実行許可は考慮されない。
【００５２】
上記の列挙された例に加えて、ライトミスの場合のライトアロケートポリシーを決定する際に、本開示の範囲内で、SX170および/またはUX172の様々な他のアルゴリズムまたは論理機能が考案されてもよい。
【００５３】
さらに、いくつかの態様では、1つまたは複数の実行許可(たとえば、書込みアドレスまたはPA140に関連付けられたSX170および/またはUX172)に基づいてライトアロケーションポリシーを決定し、実施する際に、キャッシュコントローラ175は、たとえば、既存のライトアロケーションポリシーまたはデフォルトのライトアロケーションポリシーをオーバーライドし得る。たとえば、ライトアロケートを実施するために、デフォルトのライトノーアロケートポリシーをオーバーライドすることができ、または、書込みアドレスに関連付けられた1つもしくは複数の実行許可に基づいてライトミスについてのライトノーアロケートを実施するために、デフォルトのライトアロケートポリシーをオーバーライドすることができる。
【００５４】
したがって、本開示の例示的な態様は、キャッシュ110に対する書込み要求の書込みアドレスに関連付けられた1つまたは複数の実行許可を決定するように構成された任意の論理を含むことができることが諒解されよう。いくつかの態様では、論理は、上記のようなMMU115を含むことができる。しかしながら、処理システム100の様々な代替構成において、1つまたは複数の実行許可を決定するように構成された論理は、MMU115のようなMMUを含む必要はない。たとえば、論理は、キャッシュ110へのアクセスを制御するために使用されるキャッシュコントローラ175など任意の他のエンティティまたはユニットを含むことができ、様々な特権レベル(たとえば、ユーザ/スーパーバイザー)についての書込みおよび実行許可に関する情報がそのような論理に提供され得る。いくつかの場合には、キャッシュアクセスのためにアドレス変換が実行されない可能性があるので、TLB125などのTLBが回避され得る。たとえば、キャッシュ110が、仮想的にタグ付けされ(すなわち、仮想アドレス160を使用して)、プロセッサ105によって生成されたメモリアクセス要求によって供給される場合、キャッシュ110は、TLBなしでアクセスされ得、そのため、論理は、可能な様々な特権レベル(たとえば、ユーザ/スーパーバイザー)についての上述の書込み許可および実行許可に関する情報を決定するように構成されたキャッシュコントローラ175を含み得る。いくつかの場合には、プロセッサ105が仮想アドレスを使用しない場合、生成されたメモリアクセス要求は、すでに物理アドレスであり得、キャッシュ110は、物理的にタグ付けされたキャッシュ(図1に示すように)であり得、そのため、論理は、上述の書込みおよび実行許可を決定するように構成されたキャッシュコントローラ175を含み得る。当業者には理解されるように、キャッシュアクセス、キャッシュ構成、およびキャッシュへの意図された書込みアドレスについての書込みおよび実行許可を決定するように構成された適切な論理についての他の代替も可能である。
【００５５】
したがって、例示的な態様は、本明細書で開示するプロセス、機能、および/またはアルゴリズムを実行するための様々な方法を含むことが諒解されよう。たとえば、図2は、データおよび命令を記憶するために、ユニファイドキャッシュとして構成されたキャッシュ110などのキャッシュを管理する方法200を示す。
【００５６】
より詳細には、方法200のブロック205は、キャッシュへの書込み要求の書込みアドレスに関連付けられた1つまたは複数の実行許可を決定することを含む。たとえば、書込みアドレス(たとえば、物理アドレス140)に関連付けられた1つまたは複数の実行許可は、書込みアドレスを含む(たとえば、以下に図3を参照しながら示し、説明するメモリ305の)メモリページに関連付けられた1つまたは複数の特権レベル(たとえば、ユーザ/スーパーバイザー)についての実行許可に基づき得る。1つまたは複数の実行許可は、書込み要求を生成した生成エージェントの実行許可、および書込みアドレスを実行し得る潜在的な消費エージェントの実行許可に対応し得る。生成エージェントおよび消費エージェントは、キャッシュ110にアクセスするように構成されたプロセッサ105のプロセスであってもよい。いくつかの態様では、書込みアドレスに関連付けられた1つまたは複数の実行許可は、書込みアドレスについてのアドレス変換(たとえば、物理アドレス140)、および書込みアドレスに関連付けられた1つまたは複数の実行許可(たとえば、SX170、UX172)を含むトランスレーションルックアサイドバッファ(たとえば、TLB125)のページテーブルエントリ(たとえば、PTE155)から取り出され得る。
【００５７】
ブロック210において、方法200は、書込み要求についてキャッシュにライトミスがあるかどうかを決定するステップを含むことができる(たとえば、キャッシュコントローラ175が物理アドレス140を使用してキャッシュ110を探索し得る)。ライトミスがある場合、キャッシュコントローラ175は、たとえば、1つまたは複数の実行許可に基づいて、ライトミスを処理するために、ライトアロケートポリシーを実施するか、ライトノーアロケートポリシーを実施するかを決定し得る。
【００５８】
上記のブロック205〜210は、例を限定するものではないことが諒解されよう。したがって、ブロック205〜215は、可能な場合、組み合わされてもよく、かつ/または順序が並べ替えられてもよい。
【００５９】
図3は、例示的な態様によるコンピューティングデバイス300の特定の例示的な態様のブロック図である。コンピューティングデバイス300は、例示的な態様では、図2の方法200を実行するように構成されてもよい。図示のように、コンピューティングデバイス300は、プロセッサ105を含む。図1を参照して説明したように、TLB125を含むMMU115、キャッシュコントローラ175、およびキャッシュ110が示されているが、明快のために、図1に示されたこれらの構成要素の追加の詳細は、図3から省略されている。TLB125を含むMMU115、キャッシュコントローラ175、およびキャッシュ110などの態様は、図1および図3のプロセッサ105の外部にある構成要素として示されているが、この配置は、単に説明のためのものであり、限定として解釈されるべきではないことを理解されよう。たとえば、いくつかの実装形態では、TLB125を含むMMU115、キャッシュコントローラ175、またはキャッシュ110などの構成要素は、プロセッサ105として示されるブロック内に構成されてもよい。当業者は、本開示の態様による、プロセッサ105、TLB125を含むMMU115、キャッシュコントローラ175、およびキャッシュ110について可能な様々な他の配置および構成を認識されよう。
【００６０】
図3は、メモリ305も示しており、これは、メインメモリなど、キャッシュ110のバッキング記憶ロケーションであり得る。図示されていないが、1つもしくは複数の他のキャッシュまたは他のメモリ構造が、コンピューティングデバイス300に含まれる場合もある。図3には、ディスプレイ315およびディスプレイコントローラ310も示されており、ディスプレイコントローラ310はプロセッサ105およびディスプレイ315に結合されている。
【００６１】
いくつかの態様では、図3は、破線で示されたいくつかの随意のブロックを含み得る。たとえば、コンピューティングデバイス300は、随意に、プロセッサ105に結合されたコーダ/デコーダ(コーデック)320(たとえば、オーディオおよび/またはボイスコーデック)、コーデック320に結合されたスピーカ330およびマイクロフォン335、ならびにワイヤレスアンテナ340およびプロセッサ105に結合された(モデムを含み得る)ワイヤレスコントローラ325を含み得る。
【００６２】
上述の随意のブロックの1つまたは複数が存在する特定の態様では、プロセッサ105、ディスプレイコントローラ310、メモリ305、コーデック320、およびワイヤレスコントローラ325は、システムインパッケージまたはシステムオンチップデバイス345に含まれ得、ディスプレイ315、入力デバイス350、スピーカ330、マイクロフォン335、ワイヤレスアンテナ340、および電源355は、システムオンチップデバイス345の外部にあってもよく、インターフェースまたはコントローラなど、システムオンチップデバイス345の構成要素に結合されてもよい。
【００６３】
図3はコンピューティングデバイスを概略的に示しているが、プロセッサ105およびメモリ305は、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、娯楽ユニット、ナビゲーションデバイス、パーソナルデジタルアシスタント(PDA)、固定位置データユニット、サーバ、コンピュータ、ラップトップ、タブレット、通信デバイス、およびモバイルフォン、または他の電子デバイスに統合されてもよいことに留意されたい。さらに、コンピューティングデバイス300の少なくとも1つまたは複数の例示的な態様は、少なくとも1つの半導体ダイに統合されてもよい。
【００６４】
当業者は、情報および信号が、様々な異なる技術および技法のうちのいずれかを使用して表現される場合があることを諒解するであろう。たとえば、上記の説明全体にわたって参照される場合があるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表現される場合がある。
【００６５】
さらに、本明細書で開示する実施形態に関して説明する様々な例証的な論理ブロック、モジュール、回路、およびアルゴリズムステップが、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装されてもよいことが、当業者には諒解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、上記では、様々な例証的な構成要素、ブロック、モジュール、回路、およびステップについて、全般的にそれらの機能の観点から説明した。そのような機能が、ハードウェアとして実現されるか、ソフトウェアとして実現されるかは、特定の適用例と、システム全体に課される設計制約とによって決まる。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装してもよいが、そのような実装形態の決定は、本発明の範囲からの逸脱を引き起こすものと解釈されるべきではない。
【００６６】
本明細書において開示される実施形態に関して説明した方法、シーケンス、および/またはアルゴリズムは、ハードウェアにおいて直接具現化される場合も、プロセッサによって実行されるソフトウェアモジュールにおいて具現化される場合も、あるいは2つの組合せにおいて具現化される場合もある。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野において知られている任意の他の形の記憶媒体内に存在してもよい。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替形態において、記憶媒体は、プロセッサと一体化してもよい。
【００６７】
したがって、本発明の一態様は、キャッシュを管理するための方法を具現化するコンピュータ可読媒体を含むことができる。したがって、本発明は、示された例に限定されず、本明細書で説明する機能を実施するためのあらゆる手段が本発明の実施形態に含まれる。
【００６８】
前述の開示は本発明の例証的な実施形態を示すが、添付の特許請求の範囲によって定義される本発明の範囲を逸脱することなく、様々な変更および修正が本明細書に加えられてもよいことに留意されたい。本明細書で説明した本発明の実施形態による方法請求項の機能、ステップ、および/またはアクションは、いずれかの特定の順序で実施される必要はない。さらに、本発明の要素は、単数で説明し、あるいは特許請求することが可能であるが、単数に対する制限が明確に言及されていない限り、複数が企図されている。
【符号の説明】
【００６９】
100  処理システム
105  プロセッサ
110  キャッシュ
115  MMU
120  PTE
125  TLB
130  キャッシュエントリ
135  タグ
140  物理アドレス(PA)
145  情報
150  新しいキャッシュエントリ
155  PTE
160  仮想アドレス(VA)
165  スーパーバイザー書込み許可(SW)
167  ユーザ書込み許可(UW)
170  スーパーバイザー実行許可(SX)
172  ユーザ実行許可(UX)
175  キャッシュコントローラ
200  方法
300  コンピューティングデバイス
305  メモリ
310  ディスプレイコントローラ
315  ディスプレイ
320  コーダ/デコーダ(コーデック)
325  ワイヤレスコントローラ
330  スピーカ
335  マイクロフォン
340  ワイヤレスアンテナ
345  システムオンチップデバイス
350  入力デバイス
355  電源
【図１】
2019511045.tif 000003
【図２】
2019511045.tif 000004
【図３】
2019511045.tif 000005
【手続補正書】
【提出日】平成30年9月4日(2018.9.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
キャッシュを管理するための方法であって、
前記キャッシュへの書込み要求の書込みアドレスに関連付けられた1つまたは複数の実行許可を決定するステップであり、前記書込みアドレスに記憶された命令が、前記1つまたは複数の実行許可に基づいて実行可能であり、前記書込みアドレスが前記1つまたは複数の実行許可のうちの少なくとも1つを有する場合、前記書込みアドレスに記憶された前記命令が、前記キャッシュにおいて将来の使用の可能性が高いと決定される、ステップと、
前記書込み要求についてライトミスが前記キャッシュに存在する場合、前記1つまたは複数の実行許可に基づいて、前記ライトミスを処理するために、ライトアロケートポリシーを実施するか、ライトノーアロケートポリシーを実施するかを含む前記書込みアドレスについてのライトアロケーションポリシーを決定するステップと
を含む方法。
【請求項２】
前記キャッシュが、データおよび命令を記憶するように構成されたユニファイドキャッシュである、請求項1に記載の方法。
【請求項３】
前記書込みアドレスに関連付けられた前記1つまたは複数の実行許可が、前記書込みアドレスを含むメモリページに関連付けられた1つまたは複数の実行許可に基づく、請求項1に記載の方法。
【請求項４】
前記1つまたは複数の実行許可が、前記書込みアドレスに関連付けられた1つまたは複数の特権レベルについての実行許可を含む、請求項1に記載の方法。
【請求項５】
前記書込み要求を生成した生成エージェントの実行許可が、前記生成エージェントの特権レベルに基づき、前記書込みアドレスから実行するように構成された消費エージェントの実行許可が、前記消費エージェントの特権レベルに基づく、請求項4に記載の方法。
【請求項６】
前記生成エージェントおよび前記消費エージェントが、前記キャッシュにアクセスするように構成されたプロセッサのプロセスである、請求項5に記載の方法。
【請求項７】
前記1つまたは複数の特権レベルが、ユーザ特権レベルおよびスーパーバイザー特権レベルを含む、請求項5に記載の方法。
【請求項８】
前記生成エージェントが、前記書込み要求のために前記キャッシュにアクセスする前に、前記書込みアドレスについての書込み許可を有するかどうかを決定するステップをさらに含む請求項5に記載の方法。
【請求項９】
前記書込みアドレスに関連付けられた前記1つまたは複数の実行許可を決定するステップが、前記1つまたは複数の実行許可を、前記書込みアドレスについてのアドレス変換と、前記書込みアドレスに関連付けられた前記1つまたは複数の実行許可とを含むトランスレーションルックアサイドバッファ(TLB)のページテーブルエントリ(PTE)から取り出すステップを含む、請求項1に記載の方法。
【請求項１０】
前記ライトミスを処理するために前記キャッシュにおいてライトアロケートを行うか、ライトノーアロケートを行うかを決定することが、前記キャッシュについての既存のライトアロケーションポリシーをオーバーライドすることを含む、請求項1に記載の方法。
【請求項１１】
キャッシュと、
前記キャッシュへの書込み要求の書込みアドレスに関連付けられた1つまたは複数の実行許可を提供するように構成されたメモリ管理ユニット(MMU)であり、前記書込みアドレスに記憶された命令が、前記1つまたは複数の実行許可に基づいて実行可能であり、前記書込みアドレスが前記1つまたは複数の実行許可のうちの少なくとも1つを有する場合、前記書込みアドレスに記憶された前記命令が、将来の使用の可能性が高いと決定される、メモリ管理ユニット(MMU)と、
前記書込み要求について前記キャッシュにライトミスがある場合、前記1つまたは複数の実行許可に基づいて、前記書込み要求についてライトアロケートポリシーを実施するか、ライトノーアロケートポリシーを実施するかを含む前記書込みアドレスについてのライトアロケーションポリシーを決定するように構成されたキャッシュコントローラと
を備える装置。
【請求項１２】
前記キャッシュが、データおよび命令を記憶するように構成されたユニファイドキャッシュである、請求項11に記載の装置。
【請求項１３】
前記書込みアドレスに関連付けられた前記1つまたは複数の実行許可が、前記書込みアドレスを含むメモリページに関連付けられた1つまたは複数の実行許可に基づく、請求項11に記載の装置。
【請求項１４】
請求項1から10のいずれか一項に記載のキャッシュを管理するための方法を実行するための手段
を備える装置。
【請求項１５】
プロセッサによって実行されると、請求項1から10のいずれか一項に記載のキャッシュを管理するための動作を前記プロセッサに実行させるコードを備える、コンピュータ可読記録媒体。
【国際調査報告】
2019511045.tif 000006
2019511045.tif 000007
2019511045.tif 000008