説明

キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ

【課題】TLBにおける照合を高速化するとともに消費電力の増加を抑制する。
【解決手段】複数のページにデータを記憶するように構成されたメモリ130と、TLB110と、複数のキャッシュラインを含むメモリキャッシュ125とを含むことができる。メモリの各ページは複数のメモリのラインを有することができる。メモリキャッシュは、仮想アドレスがキャッシュに与えられると、適合キャッシュラインが複数のキャッシュラインから同定できるように構成されることができ、ここで、適合キャッシュラインは、仮想アドレスに適合する適合アドレスを有する。メモリキャッシュは、適合アドレスに配置されたページの1つまたは複数のページ属性を、TLBからではなく、メモリキャッシュから検索できるように構成されることができ、これは、キャッシュラインに記憶されたラインデータのページ属性を、キャッシュラインの夫々に更に記憶することによって行われる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はキャッシュに関する。
【背景技術】
【0002】
ページ化された仮想メモリをサポートする処理システムにおいて、処理システムの仮想アドレス空間を占める仮想アドレス(「有効」または「リニア」アドレスとも呼ぶ)を使用してデータを指定する場合がある。仮想アドレス空間は、一般には、システムの実際の物理メモリのサイズよりも大きい可能性がある。処理システムにおけるオペレーティングシステムは、ページと呼ばれる固定されたサイズのブロックとして物理メモリを管理することができる。
【0003】
仮想ページアドレスを物理ページアドレスに変換するため、処理システムは、システムメモリに記憶されたページテーブルを検索する場合があり、ここでシステムメモリは必要なアドレス変換情報を含むことができる。ページテーブルは、処理システムによって生成された全ての仮想ページアドレスのための全ての物理ページアドレスのリストを含むことにより、一般には、サイズがかなり大きくなる可能性がある。また、ページテーブル検索(または「ページテーブルウォーク」)は、時間が掛かると思われるメモリアクセスを伴う可能性がある。
【0004】
従って、処理システムは、1つまたは複数の変換ルックアサイド(look-aside)バッファ(TLB)を使用してアドレス変換を行うことができ、ここでTLBは、一般に、ページテーブル内にエントリのサブセットを含むことができる。TLBはアドレス変換キャッシュであり、即ち、仮想アドレスから物理アドレスへの最近のマッピングを記憶する小さなキャッシュである。処理システムは、ページテーブル検索及びアドレス変換を行った後、TLBに物理アドレスをキャッシュすることができる。TLBは、典型的には、複数のTLBエントリを含むことができ、各TLBエントリは、仮想ページアドレス及び対応する物理ページアドレスを含む。
【0005】
TLBが仮想ページアドレスを受け取ると、TLBはそれ自身のエントリを検索し、これらのエントリのいずれかにおけるキャッシュされた仮想ページアドレスのいずれかが、受け取った仮想ページアドレスと適合するか否かを確認することができる。TLBに与えられた仮想ページアドレスがTLBエントリのいずれかに記憶された仮想ページアドレスと適合する場合は、TLB「ヒット」が発生するであろう。そうでない場合は、TLB「ミス」が発生するであろう。各TLB照合は電力及びコンピュータ使用時間を消費するため、TLBアクセスの頻度を低減することが望ましいと思われる。
【0006】
TLBは、仮想対物理アドレス変換に関する情報に加えて、1つまたは複数のメモリ属性に関する情報もまた記憶することができる。これらのメモリ属性は、例えば、読み取り/書き込み/実行の許可のようなメモリエントリの保護特性を含むことができる。TLBにキャッシュされたメモリ属性は、メモリキャッシュに対するアクセスの前にまたはこれと並行してアクセス可能となる。
【0007】
仮想対物理アドレス変換情報の記憶に加えて、これらのメモリ属性をTLBに記憶することにより、各TLBエントリにキャッシュされることが必要なビット数が増加する可能性がある。アクセスが必要なビットが多くなるほど、TLBにおける照合が遅くなると共に消費される電力が増加する。
【発明の概要】
【0008】
処理システムは、複数のページにデータを記憶するように構成されたメモリを含むことができ、各ページは複数のラインを有する。この処理システムは更に、変換ルックアサイドバッファ(TLB)と、複数のキャッシュラインを含むメモリキャッシュとを含む。各キャッシュラインは、メモリのラインの1つのアドレスを記憶すると共に、前記アドレスに配置されたラインデータを記憶するように構成されることができる。前記メモリキャッシュは、仮想アドレスが前記キャッシュに与えられると、適合キャッシュラインが前記複数のキャッシュラインから同定できるように構成されることができる。前記適合キャッシュラインは、前記メモリキャッシュに与えられた前記仮想アドレスに適合する適合アドレスを有する。前記メモリキャッシュは、前記適合アドレスに配置されたページのページ属性を検索するために、前記ページ属性が、前記TLBにアクセスすることなく、前記メモリキャッシュから検索できるように構成されることができる。これは、前記キャッシュラインに記憶されたラインデータのページ属性を、前記キャッシュラインの夫々に更に記憶することによって行われる。
【0009】
方法は、ラインデータの仮想アドレスを使用してメモリキャッシュにアクセスすることを含むことができる。この方法は更に、前記ラインデータのためのページ属性を検索するために、TLBにアクセスすることなく、前記メモリキャッシュから前記ページ属性を検索することを含む。
【図面の簡単な説明】
【0010】
【図1】仮想メモリシステムの環境における変換ルックアサイドバッファ(TLB)を示す図である。
【図2】ある実施形態に係る処理システムを示す図である。
【図3A】1つまたは複数のメモリ属性を記憶するように構成されたTLBエントリを有するTLBを示す図である。
【図3B】メモリ属性なしでアドレス変換情報のみを記憶するように構成されたTLBエントリを示す図である。
【図4A】メモリキャッシュにおけるキャッシュアクセスを示す図である。
【図4B】そのキャッシュラインに付加的なビットとしてメモリ属性を記憶するように構成されたメモリキャッシュを示す図である。
【発明を実施するための形態】
【0011】
添付の図面を参照して以下に述べる詳細な説明は、処理システムの種々の実施形態を説明することを意図しているが、可能な実施形態のみを示すことは意図していない。また、以下の詳細な説明は、記載される内容を十分理解できるように具体的な詳細を含む。しかし、当業者によれば、これらの具体的な詳細は、処理システムの幾つかの実施形態においては含まれない可能性があることは理解できるであろう。なお、幾つかの例では、説明すべき概念をより明確に示すため、公知の構造及び構成部分はブロック図形式で示される。
【0012】
図1は、物理メモリ30及びページテーブル20を含む仮想メモリシステムの環境における変換ルックアサイドバッファ(TLB)10を概略的に示す図である。一般に、仮想メモリシステムにおいて、マッピング(または変換)は、(コンピュータによって生成された全仮想アドレスのセットを参照する)コンピュータの仮想(または「リニア」)アドレス空間とコンピュータメモリの物理アドレス空間との間で行われる。1単位データの物理アドレスは、この1単位データの物理メモリ30内の実際の場所を示し、また、物理メモリ30内の特定の場所に対して書き込みまたは読み出しを行うためのメモリバス上に提供可能となる。
【0013】
ページ化された仮想メモリシステムにおいて、データは、ページ31として一般に称されるメモリの固定長ブロックとしてグループ化されるものとしてみることができる。例えば、メモリの最小のアドレス可能な単位が1バイトで、且つ一連のアドレスのセットが一連のメモリバイトのセットを参照する場合、1ページは、特定数のバイトからなる一連のメモリバイトの1ブロックによって規定される。夫々のページは2の累乗(例えば、212=4096バイト、即ち4KB)の数のバイトからなることができる。夫々のページは、各ページの先頭がページサイズに「整合する」ようにメモリ内に配置可能で、即ち、ページの第1のバイトのアドレスは、そのページを構成するバイト数によって均等に割り切ることが可能である。従って、ページのサイズが2バイトの場合、ページアドレスの下位のNビット(即ち、このページの第1のバイトのアドレス)は、常に零となることができる。アドレスの残りのビット、即ち、上位ビットは、「ページ番号」として参照可能である。
【0014】
仮想アドレス空間及び物理アドレス空間の両者は複数ページに分割可能で、また、仮想アドレスの物理アドレスへのマッピングは、仮想ページ番号を物理ページ番号にマッピングすると共に、仮想アドレスの下位のNビットを物理ページ番号に結び付けることにより達成可能である。即ち、対応する仮想及び物理バイトアドレスは、常に同じ下位のNビットを有することができ、ここで、Nはバイトでのページサイズのlog(2)である。従って、仮想アドレス空間及び物理アドレス空間は、隣接するアドレスの複数のブロックに分割可能であり、ここで、各仮想アドレスは仮想ページ番号を提供すると共に、各対応する物理ページ番号はデータの特定のページ31のメモリ30内の場所を示す。物理メモリ30内のページテーブル20は、仮想メモリシステムの仮想ページ番号の全てに対応する物理ページ番号を含むことが可能であり、即ち、仮想アドレス空間内の全ての仮想ページアドレスのため、仮想ページアドレス及び対応する物理ページアドレス間のマッピングを含むことが可能である。一般に、ページテーブル20は、複数のページテーブルエントリ(PTE)21を含むことができ、ここで、各PTE21は、特定の仮想アドレスに対応する物理メモリ30におけるページ31を指し示す。
【0015】
物理メモリ30内のページテーブル20に記憶されたPTE21にアクセスすることは、一般には、メモリバス・トランザクションを必要とし、これは、プロセッササイクルタイム及び消費電力に関連して高価となる可能性がある。メモリバス・トランザクションの数は、物理メモリ30ではなくTLB10にアクセスすることにより低減可能となる。TLB10は、一般に、ページテーブル20に記憶された仮想対物理アドレスマッピングのサブセットを含む。TLB10には、一般には、複数のTLBエントリ12が含まれる。
【0016】
プログラムの実行中、対応する物理アドレスに変換されることが必要な仮想アドレス22を指令が含む時、一般に、TLB10に記憶されたTLBエントリ12間の仮想アドレス22を調べるために、TLB10がアクセスされうる。仮想アドレス22は、一般に、アドレスレジスタ内に含まれることができる。図1に示されるように、各TLBエントリ12は、タグフィールド14及びデータフィールド16を有することができる。タグフィールド14は仮想ページ番号を指定することができ、データフィールド16はタグ付けされた仮想ページに対応する物理ページ番号を指示することができる。TLB10が、そのTLBエントリ間で、TLBに与えられた仮想アドレス22に含まれる仮想ページ番号に対応する特定の物理ページ番号を見出した場合、TLB「ヒット」が発生すると共に、物理ページアドレスがTLB10のデータフィールド16から検索可能となる。TLB10が、TLBに与えられた仮想アドレス22内の仮想ページ番号に対応する特定の物理ページアドレスを含まない場合、TLB「ミス」が発生すると共に、物理メモリ30内のページテーブル20の照合が必要となる可能性がある。
【0017】
図2は、処理システム100を示す図であり、これは、汎用レジスタ105のセット、TLB110、仮想的にタグ付けされたメモリキャッシュ125、及び主物理メモリ130を含む。汎用レジスタ105は、処理システム100のCPU117内に含まれることができる。図示の実施形態において、TLB110もまたCPU117内に配置されるように示されるが、他の実施形態においては、TLB110は、別設のメモリ管理ユニット(MMU)(図示せず)内に配置される可能性があり、ここで、MMUはCPUの外部または内部のいずれにも配置可能となる。メモリ130は、図1に関連して記載されたページテーブル120を含む。
【0018】
メモリキャッシュ125は、処理システム100によって最も頻繁に使用されるデータを保持するために使用されうる少量の高速メモリである。多くのコンピュータプログラムの特性である局地参照性のため、メモリキャッシュ125は、殆どのメモリアクセスに固有のレイテンシを効果的に短縮可能となる。
【0019】
メモリキャッシュは、通常、キャッシュからの候補ラインを幾つか選択すると共に、各ラインと共に記憶されたアドレスタグを所望のメモリアドレスと比較することにより作動する。候補ラインがキャッシュ内の全ラインを具備していない場合、通常、物理または仮想アドレスの幾つかのビットを使用することにより、ある選択方法が使用される。この選択方法が、仮想アドレスのビットのみを使用する場合、キャッシュは、「仮想的にインデクスされた」といわれる。この方法が、(変換された)物理アドレスのビットを使用する場合、このキャッシュは「物理的にインデクスされた」といわれる。また、各キャッシュラインと共に記憶されたアドレスタグは、仮想アドレスまたは物理アドレスであることができる。インデクスまたはタグ付けのいずれかのために物理アドレスを使用するキャッシュは、当然、それが使用可能となる前に、仮想アドレスを物理アドレスに変換する必要がある。仮想的にインデクスされ且つ仮想的にタグ付けされた(VIVT)キャッシュは、キャッシュにアクセスすると共に所望のデータが存在するかを決定する前に、仮想アドレスから物理アドレスを生成すること必要としない。図示の実施形態の処理システム100におけるメモリキャッシュ125は、仮想的にタグ付けされたメモリキャッシュである。ここで留意すべき点として、他の実施形態の処理システム100において使用されるメモリキャッシュは、仮想的にタグ付けされたものや仮想的にインデクスされたもののいずれでもない可能性がある。
【0020】
レジスタ105のセットは、一般に、複数のアドレスレジスタを含み、その一例がアドレスレジスタ122として示される。図1に関連して前述したように、アドレスレジスタ122は、仮想アドレスをTLB110に与えることができ、TLB110は、それ自身の複数のTLBエントリのいずれかが、アドレスレジスタ122によって与えられた仮想アドレスと適合するタグを有するかを見出すため、当該TLBエントリ内を検索することができる。この検索がTLBヒットになる場合、即ち、アドレスレジスタ122内の仮想アドレスに対応する物理アドレスを含むTLBエントリが見出される場合、TLB110から検索される物理アドレスを有するデータの位置決めを行うため、メモリキャッシュ125にアクセスすることができる。殆どの場合、このデータは、一般に、メモリキャッシュ125から検索されることができるが、しばしばこのデータはメモリキャッシュ125内にキャッシュされず、主メモリ130にアクセスすることが必要となる場合がある。TLB110は、メモリキャッシュ125へのアクセスの前またはこれと並行してアクセスすることができる。仮想的にタグ付けされたメモリキャッシュ125へのアクセスは、仮想アドレスをアドレスレジスタ122からメモリキャッシュ125に送り込む図2の破線矢印によって機能的に図示されている。
【0021】
図3Aは、TLB180及び典型的な仮想アドレスレジスタ22を示す図である。TLB180は、一般に、TLBエントリの多数の行またはラインを含み、典型的なTLBエントリは参照符号182によって図示される。図示の仮想アドレスレジスタ22は32ビットレジスタであるが、アドレスレジスタは一般的に32よりも多数のまたは少数のビットを含みうる。
【0022】
アドレスレジスタ22は、その最下位ビットにページオフセット情報を含むと共に、その最上位ビットにページ番号アドレス情報を含むことができる。ページ番号は、主メモリ30内の複数のページのいずれの中に所望のデータが配置されるかを指定する。ページオフセットは、特定のページ(これはアドレスレジスタ22のより上位のビット内で指定されたページ番号に配置される)内のどこに所望のワードまたはバイトが配置されるかを指定する。アドレスレジスタ22は、32ビットレジスタからなることができ、ここで、最下位ビット(この例ではビット9〜0)はページオフセット情報を含むと共に、最上位ビット、即ちビット31〜10、はページ番号情報を含む。TLB180内のTLBエントリ182のいずれかのタグフィールドによって示される仮想アドレスが、アドレスレジスタ22内のより上位のビットによって示される仮想アドレスと適合するかを確認するため、コンパレータ190が、TLBエントリ182のタグフィールドをビット0〜11に示される仮想アドレスと比較することができる。ページオフセット情報は変換される必要性が必ずしもない。何故なら、これらは仮想及び物理環境の両者において同じだからである。
【0023】
TLBは、基本的に処理システムの仮想対物理アドレスマッピングのキャッシュであるが、TLBにおいて、アドレス変換情報に加えて、物理領域またはページによって規定される1つまたは複数のメモリ属性をキャッシュすることが慣習的と考えられる。これらのメモリ属性は、例えば、読み取り、書き込み、及び実行許可を含むことができる。TLBエントリ182内に1つまたは複数のメモリ属性を記憶することは、図3Aに破線ラインによって示される。
【0024】
TLBは多層構造(図示せず)を有することができ、ここで比較的小さなTLBが殆どのメモリアクセスのために使用されると共に、第1のレベルTLBが間に合わない時に使用される1つまたは複数のより大きなより高いレベルのTLBによってバックアップが提供される。より高いレベルのTLBの全てにおいてミスが連続的に発生する場合、主メモリ内のページテーブルをアクセスすることが必要となり、即ち、アドレス変換のための検索は、有効な変換エントリが見出されるまで継続しうる。
【0025】
各TLBエントリにキャッシュされることが必要なビット数を低減することが望ましい。何故なら、アクセスが必要なビットが多くなるほど、TLBにおける照合が遅くなると共に消費される電力が増加するからである。実際、TLBからアクセスが必要なビット数が、ある構成に関して零に低減可能である場合、TLBは省略或いは少なくとも頻繁にアクセスされないようにすることが可能であり、これにより、電力、面積、及び複雑さを緩和することができる。
【0026】
仮想的にインデクスされ且つ仮想的にタグ付けされたメモリキャッシュにおいて、図2の処理システム100に示されるように、所望のデータがメモリキャッシュ内に見出せないこと、即ち、キャッシュミスが発生すること、がなければ、メモリキャッシュ照合は、アドレス変換を必要としない。この場合、各メモリキャッシュ照合のため、従来的にTLBが生成することが必要な唯一の事項は、メモリをアクセスする指令、即ち、読み取り/書き込み/実行許可を実行するために必要とされるメモリ属性と考えられる。
【0027】
ある実施形態に係る処理システムにおいて、これらのメモリ属性はTLBではなく別の場所に記憶される。図3Bは、処理システム100(図2に図示の)で使用されるTLB110内のTLBエントリ112を示す図である。図3Bに示されるように、TLBエントリ110は、メモリ属性なしで、(タグ及びデータフィールド内に)アドレス変換情報のみを記憶するように構成される。
【0028】
図4Aは、メモリキャッシュ220におけるキャッシュアクセスを概略的に示す図である。メモリキャッシュは、ラインと呼ばれる小さなセグメントに分割することができる。メモリキャッシュ内の各キャッシュライン228は、一般に、主メモリ内の特定の場所を指定するメモリアドレスを示すアドレスタグと、キャッシュライン内に含まれるメモリアドレスにおいて主メモリ内に配置されるデータのコピーとを含む。メモリキャッシュのためのタグ付け及びインデクスの手順は、TLBのためのタグ付け及びインデクスの手順と類似している。何故なら、TLBは基本的にアドレスマッピングのキャッシュだからである。
【0029】
メモリキャッシュ220は、仮想アドレスを使用してキャッシュアクセスができるように構成可能である。換言すると、キャッシュ220は、仮想アドレスがキャッシュ220に与えられると、適合キャッシュラインが複数のキャッシュラインから同定されるように、構成可能である。適合キャッシュラインは、メモリキャッシュに与えられた仮想アドレスに適合するアドレスを指示するアドレスタグを示すキャッシュラインと考えられる。メモリキャッシュは、適合アドレスに配置されたページの1つまたは複数のページ属性が、TLBからではなくメモリキャッシュから検索されるように構成可能である。これは、アドレスタグ及びデータに加えて、キャッシュラインに記憶されたページデータのページ属性を、各キャッシュラインに記憶することにより可能となる。
【0030】
図4Aに示されるように、メモリキャッシュ220に与えられたアドレスレジスタ210内の最下位ビットは、特定のキャッシュライン228内のオフセットに関する情報を含むことができる。このオフセット情報は、マルチバイトキャッシュライン228内のバイトを選択するために使用することができる。シングルバイトキャッシュラインの場合、オフセッのためにビットを使用することは必要ないであろう。次の数バイトは、キャッシュの全てのキャッシュライン内の特定のキャッシュライン(またはキャッシュラインのセット)を選択するためのインデクス情報を提供する。最後に、キャッシュラインのタグ部分内のアドレスビットが、キャッシュ220内のキャッシュライン228のタグに対するタグ検査を行うために使用されうる。
【0031】
仮想的にタグ付けされ且つ仮想的にインデクスされたキャッシュにおいて、タグもインデクスも変換不要であり、TLBと並行して処理可能である。仮想的にインデクスされ且つ物理的にタグ付けされたキャッシュにおいて、アドレスレジスタ内の仮想アドレスは、キャッシュ内のラインにアクセスするために使用可能で、物理アドレスはタグ付けのために使用可能である。仮想的にインデクスされ且つ物理的にタグ付けされたキャッシュにおいて、インデクスはTLBまたは他のメモリ管理ユニットと並行して発生可能であるが、TLB(または他のメモリ管理ユニット)の出力が、タグ検査のために必要になると考えられる。
【0032】
ある実施形態に係る処理システム100において、メモリ属性はメモリキャッシュのキャッシュライン内に付加的なビットとして記憶される。図4Bは、ある実施形態の処理システム100(図2に図示の)において使用されるメモリキャッシュ125を概略的に示す図である。図4Bに示されるように、メモリ属性は、TLBではなくメモリキャッシュ内に記憶され、これは、キャッシュラインを延長し、アドレス及びデータのコピーだけでなく、各キャッシュラインの属性も含むようにすることにより達成される。図4Bの各キャッシュライン135は、1つまたは複数のメモリ属性を、キャッシュライン内の付加的なビットとして記憶するように構成される。
【0033】
これらのメモリ属性は、許可基準を含むことができ、例えば、データが読み出しのためにアクセスされるか、現存のデータ上に新たなデータが書き込まれるか、または、現存のデータを使用して指令(例えば、加算または乗算)が実行されるか、等のデータに対する処理を行う許可を与えるための許可基準を含むことができる。
【0034】
メモリ属性はまた、特定のオペレーティングモード(例えば、「ユーザ」または非特権付きモードと対照的な「スーパーバイザ」または特権付きモード)に対して処理の許可を与えることができるかに関する情報を提供することができる。換言すると、メモリ属性は、その特定のキャッシュラインに記憶されたデータのためにユーザアクセスが許可されるか、またはスーパーバイザアクセスのみが認められるかを示すことができる。読み取り/書き込み/実行及びユーザ/スーパーバイザモード許可に加えて、メモリ属性はまた、他の種類の情報も提供することができ、それらは、限定的ではないが、上述のメモリキャッシュと実際のシステムメモリとの間の、キャッシュの他のレベルためのキャッシュ能力及び書き込み割り当て方針に関する情報を含むことができる。
【0035】
仮想的にインデクス付けされ且つ仮想的にタグ付けされた指令キャッシュを有する処理システムにおいて、単なる例として、CPUがTLBにアクセスすることが必要となるのは、読み取り/書き込み/実行許可属性を得ると共に、これらを、指令フェッチを要求したアプリケーションの特性と比較するためだけである場合がある。各キャッシュライン内にこれらの属性のコピーを配置することにより、キャッシュにおいてヒットを生成する指令フェッチに対するTLB照合の必要性を排除することができる。TLB照合は、メモリの次のレベルにアクセスすることにより指令キャッシュラインのリフィルを行うためにだけ必要となる。何故なら、動作中のアプリケーションに、フェッチされた指令を実行する権限を与えるために、これらの属性は最終的に使用される必要があると考えられるからである(また、変換されたアドレスは物理メモリをアクセスするために必要とされると考えられる)。
【0036】
留意すべき点として、メモリキャッシュ220は、仮想的にインデクスされ且つ仮想的にタグ付けされた指令キャッシュに限定されるものではない。仮想アドレスを介してアクセスが許可するいかなるメモリキャッシュも使用可能である。
【0037】
要約して言えば、上述のメモリ属性は、TLBに記憶されるのではなく、メモリキャッシュの各ライン内に付加的なビットとして記憶され、少なくとも第1のレベルにおいてTLBからこれらの属性を検索する必要性を防止する。TLBにこれらの属性を記憶する必要性を排除することにより、全体のシステム電力、面積、及び/または複雑さを軽減することができる。
【0038】
開示される実施形態の上述の説明は、当業者が上記処理システムを製造または使用できるように提供される。当業者であればこれらの実施形態に対する種々の変形例が容易に明確となり、また、ここに規定される包括的な原理は、記載されるところの精神または範囲を逸脱することなく、他の実施形態に適用することができるであろう。従って、処理システムはここに示される実施形態に限定されるものではなく、請求の範囲に整合する最大限の範囲が与えられるべきものである。請求の範囲において、単一の要素に対する言及は、そのように明示しない限り「1つ及び唯一」を意味するものではなく、「1つまたは複数」を意味する。当業者に知られる或いは後に知られることとなる、この開示を通して記載された種々の実施形態の要素に等価な全ての構造及び機能は、ここに参照として明白に組み込まれ、請求の範囲に包含されるものとする。更に、本明細書の開示部分が請求の範囲に明白に記載されているか否かにかかわらず、いかなる開示部分も大衆に放棄することは意図していない。また、請求の範囲の構成要件が明白に「するための手段」を用いて表現されている場合、或いは方法の請求項の場合は構成要件が「するための工程」を用いて表現されている場合を除いて、いかなる構成要件も米国特許法第112条の第6段落の規定の下で理解されるべきではない。

【特許請求の範囲】
【請求項1】
複数のページにデータを記憶するように構成されたメモリであって、ここで、各ページは複数のラインを含む、メモリと、
変換ルックアサイドバッファ(TLB)と、
複数のキャッシュラインを含むメモリキャッシュであって、ここで、各キャッシュラインは、メモリのラインの1つのアドレスを記憶すると共に、当該アドレスに配置されたラインデータを記憶するように構成される、メモリキャッシュと、
を具備し、
前記メモリキャッシュは、仮想アドレスが前記キャッシュに与えられると、適合キャッシュラインが前記複数のキャッシュラインから同定できるように構成され、ここで、前記適合キャッシュラインは、前記メモリキャッシュに与えられた前記仮想アドレスに適合する適合アドレスを有し、
前記メモリキャッシュは、当該適合アドレスに配置されたページのページ属性を検索するために、前記ページ属性が、前記TLBにアクセスすることなく、前記メモリキャッシュから検索できるように構成され、これは、当該キャッシュラインに記憶されたラインデータのページ属性を、前記キャッシュラインの夫々に更に記憶することによって行われる処理システム。
【請求項2】
前記キャッシュラインの少なくとも幾つかは、仮想アドレスタグであるアドレスタグを記憶するように構成される請求項1に記載の処理システム。
【請求項3】
前記キャッシュラインの少なくとも幾つかは、物理アドレスタグであるアドレスタグを記憶するように構成される請求項1に記載の処理システム。
【請求項4】
前記メモリキャッシュの前記キャッシュラインの少なくとも幾つかは、1つまたは複数のキャッシュラインを前記複数のキャッシュラインから選択可能とする仮想インデクスによってアクセスされる請求項1に記載の処理システム。
【請求項5】
前記メモリキャッシュの前記キャッシュラインの少なくとも幾つかは、1つまたは複数のキャッシュラインを前記複数のキャッシュラインから選択可能とする物理インデクスによってアクセスされる請求項1に記載の処理システム。
【請求項6】
前記ページ属性の1つは、前記ページ属性のうちの当該1つを有する前記キャッシュラインの前記アドレスタグによって示されるアドレスに配置されたページデータに対して処理を実行することに許可を与えることができるかを示す許可基準を具備する請求項1に記載の処理システム。
【請求項7】
前記処理は、読み取り処理、書き込み処理、及び実行処理のうちの少なくとも1つを具備する請求項6に記載の処理システム。
【請求項8】
前記許可基準は、前記処理の許可をオペレータに与えることができるかを更に示す請求項6に記載の処理システム。
【請求項9】
前記オペレータは、ユーザ及びスーパーバイザのうち少なくとも1つを具備する請求項6に記載の処理システム。
【請求項10】
メモリキャッシュの複数の追加のレベルを更に具備し、前記ページ属性のうちの1つは、前記メモリ属性のうちの当該1つを有する前記キャッシュラインの1つの仮想アドレスに対応する物理アドレスに配置されたデータが、前記メモリキャッシュの追加のレベルの1つまたは複数にキャッシュされることができるかを示すキャッシュ能力基準を具備する請求項1に記載の処理システム。
【請求項11】
前記複数のページの少なくとも幾つかに記憶されたデータは、1つまたは複数の指令を具備する請求項1に記載の処理システム。
【請求項12】
前記メモリは、複数のページテーブルエントリを含むページテーブルを含み、各ページテーブルエントリは、前記複数のページのうちの1つの仮想アドレス及び物理アドレス間のマッピングを記憶するように構成される請求項1に記載の処理システム。
【請求項13】
前記TLBは、複数のTLBエントリを含み、前記TLBエントリの夫々は、前記ページの1つの仮想アドレスを物理アドレスに変換するためのアドレス変換情報を記憶するように構成され、前記TLBは、前記複数のページテーブルエントリのサブセットを含む請求項12に記載の処理システム。
【請求項14】
前記TLBエントリの夫々は、ページ属性なしで、前記アドレス変換情報のみを記憶するように構成される請求項13に記載の処理システム。
【請求項15】
ラインデータの仮想アドレスを使用してメモリキャッシュにアクセスすることと、
前記ラインデータのためのページ属性を検索するために、TLBにアクセスすることなく、前記メモリキャッシュから前記ページ属性を検索することと、
を具備する方法。
【請求項16】
前記メモリキャッシュにアクセスすることは、仮想的にタグ付けされたメモリキャッシュにアクセスすることを具備する請求項15に記載の方法。
【請求項17】
前記メモリキャッシュにアクセスすることは、物理的にタグ付けされたメモリキャッシュにアクセスすることを具備する請求項15に記載の方法。
【請求項18】
前記メモリキャッシュにアクセスすることは、仮想的にインデクスされたメモリキャッシュにアクセスすることを具備する請求項15に記載の方法。
【請求項19】
前記メモリキャッシュにアクセスすることは、物理的にインデクスされたメモリキャッシュにアクセスすることを具備する請求項15に記載の方法。
【請求項20】
メモリ属性を記憶することは、キャッシュラインの仮想アドレスに対応する物理アドレスに配置されたデータに対して処理を実行することに許可を与えることができるかを示す許可基準を記憶することを具備する請求項15に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図4A】
image rotate

【図4B】
image rotate


【公開番号】特開2012−212440(P2012−212440A)
【公開日】平成24年11月1日(2012.11.1)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−118553(P2012−118553)
【出願日】平成24年5月24日(2012.5.24)
【分割の表示】特願2008−536651(P2008−536651)の分割
【原出願日】平成18年10月20日(2006.10.20)
【出願人】(595020643)クゥアルコム・インコーポレイテッド (7,166)
【氏名又は名称原語表記】QUALCOMM INCORPORATED
【Fターム(参考)】