(57)【特許請求の範囲】
【請求項１】
ページ属性を検索するための処理システムであって、
複数のページにデータを記憶するように構成されたメモリと、
変換ルックアサイドバッファ（ＴＬＢ）と、
前記ＴＬＢと通信するメモリキャッシュであって、
前記メモリに記憶された第１のデータを記憶し、
前記第１のデータに関連づけられた第１のページ属性を記憶し、ここで、前記第１のページ属性は、前記ＴＬＢに記憶されておらず、
前記メモリキャッシュからの前記第１のページ属性および前記第１のデータの検索を可能にする
ように構成される、メモリキャッシュと、
前記メモリキャッシュの複数の追加のレベルと
を備え、
前記第１のページ属性は、前記メモリキャッシュの第１のキャッシュラインの仮想アドレスに対応する物理アドレスに配置されたデータが、前記メモリキャッシュの追加のレベルのうちの１つまたは複数にキャッシュされることができるかを示すキャッシュ能力基準を具備する、処理システム。
【請求項２】
前記メモリキャッシュの各キャッシュラインは、対応する仮想アドレスタグを記憶するように構成される請求項１に記載の処理システム。
【請求項３】
前記メモリキャッシュの第１のキャッシュラインは、仮想インデクスにより選択可能である請求項１に記載の処理システム。
【請求項４】
前記第１のページ属性は、第１のデータのページに対する動作が許可可能かを示す許可基準を具備する請求項１に記載の処理システム。
【請求項５】
前記動作は、読み取り動作、書き込み動作、または実行動作を具備する請求項４に記載の処理システム。
【請求項６】
前記許可基準は、前記動作が、前記プロセッサが特定の動作モードである場合に許可可能かを更に示す請求項４に記載の処理システム。
【請求項７】
前記特定の動作モードは、特権付きモードまたは非特権付きモードである請求項６に記載の処理システム。
【請求項８】
前記複数のページのうちの少なくとも１つに記憶された前記第１のデータは、１つまたは複数の指令を具備する請求項１に記載の処理システム。
【請求項９】
前記メモリは、複数のページテーブルエントリを含むページテーブルを含み、各ページテーブルエントリは、前記複数のページのうちの対応する１つの仮想アドレス及び物理アドレス間のマッピングを記憶するように構成される請求項１に記載の処理システム。
【請求項１０】
メモリ属性を検索する方法であって、
変換ルックアサイドバッファ（ＴＬＢ）と通信するメモリキャッシュから、前記メモリキャッシュに記憶された第１のデータに関連づけられた第１のメモリ属性を検索することと、ここで、前記第１のメモリ属性は、前記ＴＬＢに記憶されておらず、
前記メモリキャッシュから前記第１のデータを検索することと
を備え、
前記メモリキャッシュは複数の追加のレベルを含み、前記第１のメモリ属性は、前記メモリキャッシュの第１のキャッシュラインの仮想アドレスに対応する物理アドレスに配置されたデータが、前記追加のレベルのうちの１つまたは複数にキャッシュされることができるかを示すキャッシュ能力基準を具備する、方法。
【請求項１１】
前記第１のデータに関連づけられた仮想アドレスを使用して前記メモリキャッシュにアクセスすることをさらに備える請求項１０に記載の方法。
【請求項１２】
前記メモリキャッシュの第１のキャッシュラインに前記第１のメモリ属性を記憶することをさらに備え、ここで、前記第１のデータは、前記第１のキャッシュラインに記憶されている、請求項１０に記載の方法。
【請求項１３】
前記メモリキャッシュは、仮想的にインデクス付けされたメモリキャッシュをさらに備える、請求項１０に記載の方法。
【請求項１４】
前記メモリキャッシュは、仮想的にインデクス付けされ、仮想的にタグ付けされたメモリキャッシュを備える、請求項１０に記載の方法。
【請求項１５】
前記第１のメモリ属性は、前記メモリキャッシュとシステムメモリとの間でのキャッシュレベルに関連づけられた書き込み割り当て方針に関連する情報を提供する、請求項１０に記載の方法。
【請求項１６】
前記第１のメモリ属性は、前記第１のデータに対する動作を実行するための許可を備える、請求項１０に記載の方法。
【請求項１７】
前記第１のキャッシュライン内に別のメモリ属性を記憶することをさらに備える、請求項１０に記載の方法。
【請求項１８】
メモリ属性を検索するための装置であって、
メモリキャッシュに記憶された第１のデータの仮想アドレスを使用して前記メモリキャッシュにアクセスする手段と、ここで、前記メモリキャッシュは、前記第１のデータに関連づけられたメモリ属性をも記憶し、
前記メモリ属性および前記第１のデータを前記メモリキャッシュから検索する手段と、ここで、前記メモリキャッシュは、変換ルックアサイドバッファ（ＴＬＢ）と通信し、前記メモリ属性は、前記ＴＬＢに記憶されていない、
を備え、
前記メモリキャッシュは複数の追加のレベルを含み、前記メモリ属性は、前記メモリキャッシュの第１のキャッシュラインの仮想アドレスに対応する物理アドレスに配置されたデータが、前記追加のレベルのうちの１つまたは複数にキャッシュされることができるかを示すキャッシュ能力基準を具備する、装置。
【請求項１９】
前記複数のキャッシュラインから１つまたは複数のキャッシュラインを同定するために前記仮想アドレスの第１の部分を使用することと、
前記仮想アドレスの第２の部分を、前記同定された１つまたは複数のキャッシュラインの各々に含まれたアドレスタグと比較することにより、適合キャッシュラインがあるかを決定することと、
適合キャッシュラインがあるとの決定に応答して、前記適合キャッシュラインから前記メモリ属性および前記第１のデータを検索することと
をさらに備える、請求項１８に記載の装置。
【請求項２０】
前記メモリ属性は、読み取り許可、書き込み許可、またはこれらの任意の組み合わせを示す、請求項１８に記載の装置。
【請求項２１】
前記メモリ属性は、前記メモリキャッシュとシステムメモリとの間でのキャッシュレベルに関連づけられた書き込み割り当て方針に関連する情報を提供する、請求項１８に記載の装置。
【請求項２２】
前記メモリ属性は、実行許可を示す、請求項１８に記載の装置。
【請求項２３】
前記実行許可は、乗算指令を実行するための許可を備える、請求項２２に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はキャッシュに関する。
【背景技術】
【０００２】
ページ化された仮想メモリをサポートする処理システムにおいて、処理システムの仮想アドレス空間を占める仮想アドレス（「有効」または「リニア」アドレスとも呼ぶ）を使用してデータを指定する場合がある。仮想アドレス空間は、一般には、システムの実際の物理メモリのサイズよりも大きい可能性がある。処理システムにおけるオペレーティングシステムは、ページと呼ばれる固定されたサイズのブロックとして物理メモリを管理することができる。
【０００３】
仮想ページアドレスを物理ページアドレスに変換するため、処理システムは、システムメモリに記憶されたページテーブルを検索する場合があり、ここでシステムメモリは必要なアドレス変換情報を含むことができる。ページテーブルは、処理システムによって生成された全ての仮想ページアドレスのための全ての物理ページアドレスのリストを含むことにより、一般には、サイズがかなり大きくなる可能性がある。また、ページテーブル検索（または「ページテーブルウォーク」）は、時間が掛かると思われるメモリアクセスを伴う可能性がある。
【０００４】
従って、処理システムは、１つまたは複数の変換ルックアサイド（look-aside）バッファ（ＴＬＢ）を使用してアドレス変換を行うことができ、ここでＴＬＢは、一般に、ページテーブル内にエントリのサブセットを含むことができる。ＴＬＢはアドレス変換キャッシュであり、即ち、仮想アドレスから物理アドレスへの最近のマッピングを記憶する小さなキャッシュである。処理システムは、ページテーブル検索及びアドレス変換を行った後、ＴＬＢに物理アドレスをキャッシュすることができる。ＴＬＢは、典型的には、複数のＴＬＢエントリを含むことができ、各ＴＬＢエントリは、仮想ページアドレス及び対応する物理ページアドレスを含む。
【０００５】
ＴＬＢが仮想ページアドレスを受け取ると、ＴＬＢはそれ自身のエントリを検索し、これらのエントリのいずれかにおけるキャッシュされた仮想ページアドレスのいずれかが、受け取った仮想ページアドレスと適合するか否かを確認することができる。ＴＬＢに与えられた仮想ページアドレスがＴＬＢエントリのいずれかに記憶された仮想ページアドレスと適合する場合は、ＴＬＢ「ヒット」が発生するであろう。そうでない場合は、ＴＬＢ「ミス」が発生するであろう。各ＴＬＢ照合は電力及びコンピュータ使用時間を消費するため、ＴＬＢアクセスの頻度を低減することが望ましいと思われる。
【０００６】
ＴＬＢは、仮想対物理アドレス変換に関する情報に加えて、１つまたは複数のメモリ属性に関する情報もまた記憶することができる。これらのメモリ属性は、例えば、読み取り/書き込み/実行の許可のようなメモリエントリの保護特性を含むことができる。ＴＬＢにキャッシュされたメモリ属性は、メモリキャッシュに対するアクセスの前にまたはこれと並行してアクセス可能となる。
【０００７】
仮想対物理アドレス変換情報の記憶に加えて、これらのメモリ属性をＴＬＢに記憶することにより、各ＴＬＢエントリにキャッシュされることが必要なビット数が増加する可能性がある。アクセスが必要なビットが多くなるほど、ＴＬＢにおける照合が遅くなると共に消費される電力が増加する。
【発明の概要】
【０００８】
処理システムは、複数のページにデータを記憶するように構成されたメモリを含むことができ、各ページは複数のラインを有する。この処理システムは更に、変換ルックアサイドバッファ（ＴＬＢ）と、複数のキャッシュラインを含むメモリキャッシュとを含む。各キャッシュラインは、メモリのラインの１つのアドレスを記憶すると共に、前記アドレスに配置されたラインデータを記憶するように構成されることができる。前記メモリキャッシュは、仮想アドレスが前記キャッシュに与えられると、適合キャッシュラインが前記複数のキャッシュラインから同定できるように構成されることができる。前記適合キャッシュラインは、前記メモリキャッシュに与えられた前記仮想アドレスに適合する適合アドレスを有する。前記メモリキャッシュは、前記適合アドレスに配置されたページのページ属性を検索するために、前記ページ属性が、前記ＴＬＢにアクセスすることなく、前記メモリキャッシュから検索できるように構成されることができる。これは、前記キャッシュラインに記憶されたラインデータのページ属性を、前記キャッシュラインの夫々に更に記憶することによって行われる。
【０００９】
方法は、ラインデータの仮想アドレスを使用してメモリキャッシュにアクセスすることを含むことができる。この方法は更に、前記ラインデータのためのページ属性を検索するために、ＴＬＢにアクセスすることなく、前記メモリキャッシュから前記ページ属性を検索することを含む。
【図面の簡単な説明】
【００１０】
【図１】仮想メモリシステムの環境における変換ルックアサイドバッファ（ＴＬＢ）を示す図である。
【図２】ある実施形態に係る処理システムを示す図である。
【図３Ａ】１つまたは複数のメモリ属性を記憶するように構成されたＴＬＢエントリを有するＴＬＢを示す図である。
【図３Ｂ】メモリ属性なしでアドレス変換情報のみを記憶するように構成されたＴＬＢエントリを示す図である。
【図４Ａ】メモリキャッシュにおけるキャッシュアクセスを示す図である。
【図４Ｂ】そのキャッシュラインに付加的なビットとしてメモリ属性を記憶するように構成されたメモリキャッシュを示す図である。
【発明を実施するための形態】
【００１１】
添付の図面を参照して以下に述べる詳細な説明は、処理システムの種々の実施形態を説明することを意図しているが、可能な実施形態のみを示すことは意図していない。また、以下の詳細な説明は、記載される内容を十分理解できるように具体的な詳細を含む。しかし、当業者によれば、これらの具体的な詳細は、処理システムの幾つかの実施形態においては含まれない可能性があることは理解できるであろう。なお、幾つかの例では、説明すべき概念をより明確に示すため、公知の構造及び構成部分はブロック図形式で示される。
【００１２】
図１は、物理メモリ３０及びページテーブル２０を含む仮想メモリシステムの環境における変換ルックアサイドバッファ（ＴＬＢ）１０を概略的に示す図である。一般に、仮想メモリシステムにおいて、マッピング（または変換）は、（コンピュータによって生成された全仮想アドレスのセットを参照する）コンピュータの仮想（または「リニア」）アドレス空間とコンピュータメモリの物理アドレス空間との間で行われる。１単位データの物理アドレスは、この１単位データの物理メモリ３０内の実際の場所を示し、また、物理メモリ３０内の特定の場所に対して書き込みまたは読み出しを行うためのメモリバス上に提供可能となる。
【００１３】
ページ化された仮想メモリシステムにおいて、データは、ページ３１として一般に称されるメモリの固定長ブロックとしてグループ化されるものとしてみることができる。例えば、メモリの最小のアドレス可能な単位が１バイトで、且つ一連のアドレスのセットが一連のメモリバイトのセットを参照する場合、１ページは、特定数のバイトからなる一連のメモリバイトの１ブロックによって規定される。夫々のページは２の累乗（例えば、２１２＝４０９６バイト、即ち４ＫＢ）の数のバイトからなることができる。夫々のページは、各ページの先頭がページサイズに「整合する」ようにメモリ内に配置可能で、即ち、ページの第1のバイトのアドレスは、そのページを構成するバイト数によって均等に割り切ることが可能である。従って、ページのサイズが２Ｎバイトの場合、ページアドレスの下位のＮビット（即ち、このページの第1のバイトのアドレス）は、常に零となることができる。アドレスの残りのビット、即ち、上位ビットは、「ページ番号」として参照可能である。
【００１４】
仮想アドレス空間及び物理アドレス空間の両者は複数ページに分割可能で、また、仮想アドレスの物理アドレスへのマッピングは、仮想ページ番号を物理ページ番号にマッピングすると共に、仮想アドレスの下位のＮビットを物理ページ番号に結び付けることにより達成可能である。即ち、対応する仮想及び物理バイトアドレスは、常に同じ下位のＮビットを有することができ、ここで、Ｎはバイトでのページサイズのｌｏｇ（２）である。従って、仮想アドレス空間及び物理アドレス空間は、隣接するアドレスの複数のブロックに分割可能であり、ここで、各仮想アドレスは仮想ページ番号を提供すると共に、各対応する物理ページ番号はデータの特定のページ３１のメモリ３０内の場所を示す。物理メモリ３０内のページテーブル２０は、仮想メモリシステムの仮想ページ番号の全てに対応する物理ページ番号を含むことが可能であり、即ち、仮想アドレス空間内の全ての仮想ページアドレスのため、仮想ページアドレス及び対応する物理ページアドレス間のマッピングを含むことが可能である。一般に、ページテーブル２０は、複数のページテーブルエントリ（ＰＴＥ）２１を含むことができ、ここで、各ＰＴＥ２１は、特定の仮想アドレスに対応する物理メモリ３０におけるページ３１を指し示す。
【００１５】
物理メモリ３０内のページテーブル２０に記憶されたＰＴＥ２１にアクセスすることは、一般には、メモリバス・トランザクションを必要とし、これは、プロセッササイクルタイム及び消費電力に関連して高価となる可能性がある。メモリバス・トランザクションの数は、物理メモリ３０ではなくＴＬＢ１０にアクセスすることにより低減可能となる。ＴＬＢ１０は、一般に、ページテーブル２０に記憶された仮想対物理アドレスマッピングのサブセットを含む。ＴＬＢ１０には、一般には、複数のＴＬＢエントリ１２が含まれる。
【００１６】
プログラムの実行中、対応する物理アドレスに変換されることが必要な仮想アドレス２２を指令が含む時、一般に、ＴＬＢ１０に記憶されたＴＬＢエントリ１２間の仮想アドレス２２を調べるために、ＴＬＢ１０がアクセスされうる。仮想アドレス２２は、一般に、アドレスレジスタ内に含まれることができる。図１に示されるように、各ＴＬＢエントリ１２は、タグフィールド１４及びデータフィールド１６を有することができる。タグフィールド１４は仮想ページ番号を指定することができ、データフィールド１６はタグ付けされた仮想ページに対応する物理ページ番号を指示することができる。ＴＬＢ１０が、そのＴＬＢエントリ間で、ＴＬＢに与えられた仮想アドレス２２に含まれる仮想ページ番号に対応する特定の物理ページ番号を見出した場合、ＴＬＢ「ヒット」が発生すると共に、物理ページアドレスがＴＬＢ１０のデータフィールド１６から検索可能となる。ＴＬＢ１０が、ＴＬＢに与えられた仮想アドレス２２内の仮想ページ番号に対応する特定の物理ページアドレスを含まない場合、ＴＬＢ「ミス」が発生すると共に、物理メモリ３０内のページテーブル２０の照合が必要となる可能性がある。
【００１７】
図２は、処理システム１００を示す図であり、これは、汎用レジスタ１０５のセット、ＴＬＢ１１０、仮想的にタグ付けされたメモリキャッシュ１２５、及び主物理メモリ１３０を含む。汎用レジスタ１０５は、処理システム１００のＣＰＵ１１７内に含まれることができる。図示の実施形態において、ＴＬＢ１１０もまたＣＰＵ１１７内に配置されるように示されるが、他の実施形態においては、ＴＬＢ１１０は、別設のメモリ管理ユニット（ＭＭＵ）（図示せず）内に配置される可能性があり、ここで、ＭＭＵはＣＰＵの外部または内部のいずれにも配置可能となる。メモリ１３０は、図１に関連して記載されたページテーブル１２０を含む。
【００１８】
メモリキャッシュ１２５は、処理システム１００によって最も頻繁に使用されるデータを保持するために使用されうる少量の高速メモリである。多くのコンピュータプログラムの特性である局地参照性のため、メモリキャッシュ１２５は、殆どのメモリアクセスに固有のレイテンシを効果的に短縮可能となる。
【００１９】
メモリキャッシュは、通常、キャッシュからの候補ラインを幾つか選択すると共に、各ラインと共に記憶されたアドレスタグを所望のメモリアドレスと比較することにより作動する。候補ラインがキャッシュ内の全ラインを具備していない場合、通常、物理または仮想アドレスの幾つかのビットを使用することにより、ある選択方法が使用される。この選択方法が、仮想アドレスのビットのみを使用する場合、キャッシュは、「仮想的にインデクスされた」といわれる。この方法が、（変換された）物理アドレスのビットを使用する場合、このキャッシュは「物理的にインデクスされた」といわれる。また、各キャッシュラインと共に記憶されたアドレスタグは、仮想アドレスまたは物理アドレスであることができる。インデクスまたはタグ付けのいずれかのために物理アドレスを使用するキャッシュは、当然、それが使用可能となる前に、仮想アドレスを物理アドレスに変換する必要がある。仮想的にインデクスされ且つ仮想的にタグ付けされた（ＶＩＶＴ）キャッシュは、キャッシュにアクセスすると共に所望のデータが存在するかを決定する前に、仮想アドレスから物理アドレスを生成すること必要としない。図示の実施形態の処理システム１００におけるメモリキャッシュ１２５は、仮想的にタグ付けされたメモリキャッシュである。ここで留意すべき点として、他の実施形態の処理システム１００において使用されるメモリキャッシュは、仮想的にタグ付けされたものや仮想的にインデクスされたもののいずれでもない可能性がある。
【００２０】
レジスタ１０５のセットは、一般に、複数のアドレスレジスタを含み、その一例がアドレスレジスタ１２２として示される。図１に関連して前述したように、アドレスレジスタ１２２は、仮想アドレスをＴＬＢ１１０に与えることができ、ＴＬＢ１１０は、それ自身の複数のＴＬＢエントリのいずれかが、アドレスレジスタ１２２によって与えられた仮想アドレスと適合するタグを有するかを見出すため、当該ＴＬＢエントリ内を検索することができる。この検索がＴＬＢヒットになる場合、即ち、アドレスレジスタ１２２内の仮想アドレスに対応する物理アドレスを含むＴＬＢエントリが見出される場合、ＴＬＢ１１０から検索される物理アドレスを有するデータの位置決めを行うため、メモリキャッシュ１２５にアクセスすることができる。殆どの場合、このデータは、一般に、メモリキャッシュ１２５から検索されることができるが、しばしばこのデータはメモリキャッシュ１２５内にキャッシュされず、主メモリ１３０にアクセスすることが必要となる場合がある。ＴＬＢ１１０は、メモリキャッシュ１２５へのアクセスの前またはこれと並行してアクセスすることができる。仮想的にタグ付けされたメモリキャッシュ１２５へのアクセスは、仮想アドレスをアドレスレジスタ１２２からメモリキャッシュ１２５に送り込む図２の破線矢印によって機能的に図示されている。
【００２１】
図３Ａは、ＴＬＢ１８０及び典型的な仮想アドレスレジスタ２２を示す図である。ＴＬＢ１８０は、一般に、ＴＬＢエントリの多数の行またはラインを含み、典型的なＴＬＢエントリは参照符号１８２によって図示される。図示の仮想アドレスレジスタ２２は３２ビットレジスタであるが、アドレスレジスタは一般的に３２よりも多数のまたは少数のビットを含みうる。
【００２２】
アドレスレジスタ２２は、その最下位ビットにページオフセット情報を含むと共に、その最上位ビットにページ番号アドレス情報を含むことができる。ページ番号は、主メモリ３０内の複数のページのいずれの中に所望のデータが配置されるかを指定する。ページオフセットは、特定のページ（これはアドレスレジスタ２２のより上位のビット内で指定されたページ番号に配置される）内のどこに所望のワードまたはバイトが配置されるかを指定する。アドレスレジスタ２２は、３２ビットレジスタからなることができ、ここで、最下位ビット（この例ではビット９〜０）はページオフセット情報を含むと共に、最上位ビット、即ちビット３１〜１０、はページ番号情報を含む。ＴＬＢ１８０内のＴＬＢエントリ１８２のいずれかのタグフィールドによって示される仮想アドレスが、アドレスレジスタ２２内のより上位のビットによって示される仮想アドレスと適合するかを確認するため、コンパレータ１９０が、ＴＬＢエントリ１８２のタグフィールドをビット０〜１１に示される仮想アドレスと比較することができる。ページオフセット情報は変換される必要性が必ずしもない。何故なら、これらは仮想及び物理環境の両者において同じだからである。
【００２３】
ＴＬＢは、基本的に処理システムの仮想対物理アドレスマッピングのキャッシュであるが、ＴＬＢにおいて、アドレス変換情報に加えて、物理領域またはページによって規定される１つまたは複数のメモリ属性をキャッシュすることが慣習的と考えられる。これらのメモリ属性は、例えば、読み取り、書き込み、及び実行許可を含むことができる。ＴＬＢエントリ１８２内に１つまたは複数のメモリ属性を記憶することは、図３Ａに破線ラインによって示される。
【００２４】
ＴＬＢは多層構造（図示せず）を有することができ、ここで比較的小さなＴＬＢが殆どのメモリアクセスのために使用されると共に、第1のレベルＴＬＢが間に合わない時に使用される１つまたは複数のより大きなより高いレベルのＴＬＢによってバックアップが提供される。より高いレベルのＴＬＢの全てにおいてミスが連続的に発生する場合、主メモリ内のページテーブルをアクセスすることが必要となり、即ち、アドレス変換のための検索は、有効な変換エントリが見出されるまで継続しうる。
【００２５】
各ＴＬＢエントリにキャッシュされることが必要なビット数を低減することが望ましい。何故なら、アクセスが必要なビットが多くなるほど、ＴＬＢにおける照合が遅くなると共に消費される電力が増加するからである。実際、ＴＬＢからアクセスが必要なビット数が、ある構成に関して零に低減可能である場合、ＴＬＢは省略或いは少なくとも頻繁にアクセスされないようにすることが可能であり、これにより、電力、面積、及び複雑さを緩和することができる。
【００２６】
仮想的にインデクスされ且つ仮想的にタグ付けされたメモリキャッシュにおいて、図２の処理システム１００に示されるように、所望のデータがメモリキャッシュ内に見出せないこと、即ち、キャッシュミスが発生すること、がなければ、メモリキャッシュ照合は、アドレス変換を必要としない。この場合、各メモリキャッシュ照合のため、従来的にＴＬＢが生成することが必要な唯一の事項は、メモリをアクセスする指令、即ち、読み取り/書き込み/実行許可を実行するために必要とされるメモリ属性と考えられる。
【００２７】
ある実施形態に係る処理システムにおいて、これらのメモリ属性はＴＬＢではなく別の場所に記憶される。図３Ｂは、処理システム１００（図２に図示の）で使用されるＴＬＢ１１０内のＴＬＢエントリ１１２を示す図である。図３Ｂに示されるように、ＴＬＢエントリ１１０は、メモリ属性なしで、（タグ及びデータフィールド内に）アドレス変換情報のみを記憶するように構成される。
【００２８】
図４Ａは、メモリキャッシュ２２０におけるキャッシュアクセスを概略的に示す図である。メモリキャッシュは、ラインと呼ばれる小さなセグメントに分割することができる。メモリキャッシュ内の各キャッシュライン２２８は、一般に、主メモリ内の特定の場所を指定するメモリアドレスを示すアドレスタグと、キャッシュライン内に含まれるメモリアドレスにおいて主メモリ内に配置されるデータのコピーとを含む。メモリキャッシュのためのタグ付け及びインデクスの手順は、ＴＬＢのためのタグ付け及びインデクスの手順と類似している。何故なら、ＴＬＢは基本的にアドレスマッピングのキャッシュだからである。
【００２９】
メモリキャッシュ２２０は、仮想アドレスを使用してキャッシュアクセスができるように構成可能である。換言すると、キャッシュ２２０は、仮想アドレスがキャッシュ２２０に与えられると、適合キャッシュラインが複数のキャッシュラインから同定されるように、構成可能である。適合キャッシュラインは、メモリキャッシュに与えられた仮想アドレスに適合するアドレスを指示するアドレスタグを示すキャッシュラインと考えられる。メモリキャッシュは、適合アドレスに配置されたページの１つまたは複数のページ属性が、ＴＬＢからではなくメモリキャッシュから検索されるように構成可能である。これは、アドレスタグ及びデータに加えて、キャッシュラインに記憶されたページデータのページ属性を、各キャッシュラインに記憶することにより可能となる。
【００３０】
図４Ａに示されるように、メモリキャッシュ２２０に与えられたアドレスレジスタ２１０内の最下位ビットは、特定のキャッシュライン２２８内のオフセットに関する情報を含むことができる。このオフセット情報は、マルチバイトキャッシュライン２２８内のバイトを選択するために使用することができる。シングルバイトキャッシュラインの場合、オフセッのためにビットを使用することは必要ないであろう。次の数バイトは、キャッシュの全てのキャッシュライン内の特定のキャッシュライン（またはキャッシュラインのセット）を選択するためのインデクス情報を提供する。最後に、キャッシュラインのタグ部分内のアドレスビットが、キャッシュ２２０内のキャッシュライン２２８のタグに対するタグ検査を行うために使用されうる。
【００３１】
仮想的にタグ付けされ且つ仮想的にインデクスされたキャッシュにおいて、タグもインデクスも変換不要であり、ＴＬＢと並行して処理可能である。仮想的にインデクスされ且つ物理的にタグ付けされたキャッシュにおいて、アドレスレジスタ内の仮想アドレスは、キャッシュ内のラインにアクセスするために使用可能で、物理アドレスはタグ付けのために使用可能である。仮想的にインデクスされ且つ物理的にタグ付けされたキャッシュにおいて、インデクスはＴＬＢまたは他のメモリ管理ユニットと並行して発生可能であるが、ＴＬＢ（または他のメモリ管理ユニット）の出力が、タグ検査のために必要になると考えられる。
【００３２】
ある実施形態に係る処理システム１００において、メモリ属性はメモリキャッシュのキャッシュライン内に付加的なビットとして記憶される。図４Ｂは、ある実施形態の処理システム１００（図２に図示の）において使用されるメモリキャッシュ１２５を概略的に示す図である。図４Ｂに示されるように、メモリ属性は、ＴＬＢではなくメモリキャッシュ内に記憶され、これは、キャッシュラインを延長し、アドレス及びデータのコピーだけでなく、各キャッシュラインの属性も含むようにすることにより達成される。図４Ｂの各キャッシュライン１３５は、１つまたは複数のメモリ属性を、キャッシュライン内の付加的なビットとして記憶するように構成される。
【００３３】
これらのメモリ属性は、許可基準を含むことができ、例えば、データが読み出しのためにアクセスされるか、現存のデータ上に新たなデータが書き込まれるか、または、現存のデータを使用して指令（例えば、加算または乗算）が実行されるか、等のデータに対する処理を行う許可を与えるための許可基準を含むことができる。
【００３４】
メモリ属性はまた、特定のオペレーティングモード（例えば、「ユーザ」または非特権付きモードと対照的な「スーパーバイザ」または特権付きモード）に対して処理の許可を与えることができるかに関する情報を提供することができる。換言すると、メモリ属性は、その特定のキャッシュラインに記憶されたデータのためにユーザアクセスが許可されるか、またはスーパーバイザアクセスのみが認められるかを示すことができる。読み取り/書き込み/実行及びユーザ/スーパーバイザモード許可に加えて、メモリ属性はまた、他の種類の情報も提供することができ、それらは、限定的ではないが、上述のメモリキャッシュと実際のシステムメモリとの間の、キャッシュの他のレベルためのキャッシュ能力及び書き込み割り当て方針に関する情報を含むことができる。
【００３５】
仮想的にインデクス付けされ且つ仮想的にタグ付けされた指令キャッシュを有する処理システムにおいて、単なる例として、ＣＰＵがＴＬＢにアクセスすることが必要となるのは、読み取り/書き込み/実行許可属性を得ると共に、これらを、指令フェッチを要求したアプリケーションの特性と比較するためだけである場合がある。各キャッシュライン内にこれらの属性のコピーを配置することにより、キャッシュにおいてヒットを生成する指令フェッチに対するＴＬＢ照合の必要性を排除することができる。ＴＬＢ照合は、メモリの次のレベルにアクセスすることにより指令キャッシュラインのリフィルを行うためにだけ必要となる。何故なら、動作中のアプリケーションに、フェッチされた指令を実行する権限を与えるために、これらの属性は最終的に使用される必要があると考えられるからである（また、変換されたアドレスは物理メモリをアクセスするために必要とされると考えられる）。
【００３６】
留意すべき点として、メモリキャッシュ２２０は、仮想的にインデクスされ且つ仮想的にタグ付けされた指令キャッシュに限定されるものではない。仮想アドレスを介してアクセスが許可するいかなるメモリキャッシュも使用可能である。
【００３７】
要約して言えば、上述のメモリ属性は、ＴＬＢに記憶されるのではなく、メモリキャッシュの各ライン内に付加的なビットとして記憶され、少なくとも第1のレベルにおいてＴＬＢからこれらの属性を検索する必要性を防止する。ＴＬＢにこれらの属性を記憶する必要性を排除することにより、全体のシステム電力、面積、及び／または複雑さを軽減することができる。
【００３８】
開示される実施形態の上述の説明は、当業者が上記処理システムを製造または使用できるように提供される。当業者であればこれらの実施形態に対する種々の変形例が容易に明確となり、また、ここに規定される包括的な原理は、記載されるところの精神または範囲を逸脱することなく、他の実施形態に適用することができるであろう。従って、処理システムはここに示される実施形態に限定されるものではなく、請求の範囲に整合する最大限の範囲が与えられるべきものである。請求の範囲において、単一の要素に対する言及は、そのように明示しない限り「１つ及び唯一」を意味するものではなく、「１つまたは複数」を意味する。当業者に知られる或いは後に知られることとなる、この開示を通して記載された種々の実施形態の要素に等価な全ての構造及び機能は、ここに参照として明白に組み込まれ、請求の範囲に包含されるものとする。更に、本明細書の開示部分が請求の範囲に明白に記載されているか否かにかかわらず、いかなる開示部分も大衆に放棄することは意図していない。また、請求の範囲の構成要件が明白に「するための手段」を用いて表現されている場合、或いは方法の請求項の場合は構成要件が「するための工程」を用いて表現されている場合を除いて、いかなる構成要件も米国特許法第１１２条の第６段落の規定の下で理解されるべきではない。
【図１】
0005475055.tif 000002
【図２】
0005475055.tif 000003
【図３Ａ】
0005475055.tif 000004
【図３Ｂ】
0005475055.tif 000005
【図４Ａ】
0005475055.tif 000006
【図４Ｂ】
0005475055.tif 000007