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

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

Info

Publication number
JP5475055B2
JP5475055B2 JP2012118553A JP2012118553A JP5475055B2 JP 5475055 B2 JP5475055 B2 JP 5475055B2 JP 2012118553 A JP2012118553 A JP 2012118553A JP 2012118553 A JP2012118553 A JP 2012118553A JP 5475055 B2 JP5475055 B2 JP 5475055B2
Authority
JP
Japan
Prior art keywords
memory
cache
data
tlb
attribute
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012118553A
Other languages
English (en)
Other versions
JP2012212440A (ja
Inventor
ジェフリー・トッド・ブリッジス
ジェームズ・ノリス・ディーフェンダーファー
トマス・アンドリュー・サートリウス
ブライアン・マイケル・ステムペル
ロドニー・ウェイン・スミス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2012212440A publication Critical patent/JP2012212440A/ja
Application granted granted Critical
Publication of JP5475055B2 publication Critical patent/JP5475055B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

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

Claims (23)

  1. ページ属性を検索するための処理システムであって、
    複数のページにデータを記憶するように構成されたメモリと、
    変換ルックアサイドバッファ(TLB)と、
    前記TLBと通信するメモリキャッシュであって、
    前記メモリに記憶された第1のデータを記憶し、
    前記第1のデータに関連づけられた第1のページ属性を記憶し、ここで、前記第1のページ属性は、前記TLBに記憶されておらず、
    前記メモリキャッシュからの前記第1のページ属性および前記第1のデータの検索を可能にする
    ように構成される、メモリキャッシュと、
    前記メモリキャッシュの複数の追加のレベルと
    を備え
    前記第1のページ属性は、前記メモリキャッシュの第1のキャッシュラインの仮想アドレスに対応する物理アドレスに配置されたデータが、前記メモリキャッシュの追加のレベルのうちの1つまたは複数にキャッシュされることができるかを示すキャッシュ能力基準を具備する、処理システム。
  2. 前記メモリキャッシュの各キャッシュラインは、対応する仮想アドレスタグを記憶するように構成される請求項1に記載の処理システム。
  3. 前記メモリキャッシュの第1のキャッシュラインは、仮想インデクスにより選択可能である請求項1に記載の処理システム。
  4. 前記第1のページ属性は、第1のデータのページに対する動作が許可可能かを示す許可基準を具備する請求項1に記載の処理システム。
  5. 前記動作は、読み取り動作、書き込み動作、または実行動作を具備する請求項4に記載の処理システム。
  6. 前記許可基準は、前記動作が、前記プロセッサが特定の動作モードである場合に許可可能かを更に示す請求項4に記載の処理システム。
  7. 前記特定の動作モードは、特権付きモードまたは非特権付きモードである請求項6に記載の処理システム。
  8. 前記複数のページのうちの少なくとも1つに記憶された前記第1のデータは、1つまたは複数の指令を具備する請求項1に記載の処理システム。
  9. 前記メモリは、複数のページテーブルエントリを含むページテーブルを含み、各ページテーブルエントリは、前記複数のページのうちの対応する1つの仮想アドレス及び物理アドレス間のマッピングを記憶するように構成される請求項1に記載の処理システム。
  10. メモリ属性を検索する方法であって、
    変換ルックアサイドバッファ(TLB)と通信するメモリキャッシュから、前記メモリキャッシュに記憶された第1のデータに関連づけられた第1のメモリ属性を検索することと、ここで、前記第1のメモリ属性は、前記TLBに記憶されておらず、
    前記メモリキャッシュから前記第1のデータを検索することと
    を備え
    前記メモリキャッシュは複数の追加のレベルを含み、前記第1のメモリ属性は、前記メモリキャッシュの第1のキャッシュラインの仮想アドレスに対応する物理アドレスに配置されたデータが、前記追加のレベルのうちの1つまたは複数にキャッシュされることができるかを示すキャッシュ能力基準を具備する、方法。
  11. 前記第1のデータに関連づけられた仮想アドレスを使用して前記メモリキャッシュにアクセスすることをさらに備える請求項10に記載の方法。
  12. 前記メモリキャッシュの第1のキャッシュラインに前記第1のメモリ属性を記憶することをさらに備え、ここで、前記第1のデータは、前記第1のキャッシュラインに記憶されている、請求項10に記載の方法。
  13. 前記メモリキャッシュは、仮想的にインデクス付けされたメモリキャッシュをさらに備える、請求項10に記載の方法。
  14. 前記メモリキャッシュは、仮想的にインデクス付けされ、仮想的にタグ付けされたメモリキャッシュを備える、請求項10に記載の方法。
  15. 前記第1のメモリ属性は、前記メモリキャッシュとシステムメモリとの間でのキャッシュレベルに関連づけられた書き込み割り当て方針に関連する情報を提供する、請求項10に記載の方法。
  16. 前記第1のメモリ属性は、前記第1のデータに対する動作を実行するための許可を備える、請求項10に記載の方法。
  17. 前記第1のキャッシュライン内に別のメモリ属性を記憶することをさらに備える、請求項10に記載の方法。
  18. メモリ属性を検索するための装置であって、
    メモリキャッシュに記憶された第1のデータの仮想アドレスを使用して前記メモリキャッシュにアクセスする手段と、ここで、前記メモリキャッシュは、前記第1のデータに関連づけられたメモリ属性をも記憶し、
    前記メモリ属性および前記第1のデータを前記メモリキャッシュから検索する手段と、ここで、前記メモリキャッシュは、変換ルックアサイドバッファ(TLB)と通信し、前記メモリ属性は、前記TLBに記憶されていない、
    を備え
    前記メモリキャッシュは複数の追加のレベルを含み、前記メモリ属性は、前記メモリキャッシュの第1のキャッシュラインの仮想アドレスに対応する物理アドレスに配置されたデータが、前記追加のレベルのうちの1つまたは複数にキャッシュされることができるかを示すキャッシュ能力基準を具備する、装置。
  19. 前記複数のキャッシュラインから1つまたは複数のキャッシュラインを同定するために前記仮想アドレスの第1の部分を使用することと、
    前記仮想アドレスの第2の部分を、前記同定された1つまたは複数のキャッシュラインの各々に含まれたアドレスタグと比較することにより、適合キャッシュラインがあるかを決定することと、
    適合キャッシュラインがあるとの決定に応答して、前記適合キャッシュラインから前記メモリ属性および前記第1のデータを検索することと
    をさらに備える、請求項18に記載の装置。
  20. 前記メモリ属性は、読み取り許可、書き込み許可、またはこれらの任意の組み合わせを示す、請求項18に記載の装置。
  21. 前記メモリ属性は、前記メモリキャッシュとシステムメモリとの間でのキャッシュレベルに関連づけられた書き込み割り当て方針に関連する情報を提供する、請求項18に記載の装置。
  22. 前記メモリ属性は、実行許可を示す、請求項18に記載の装置。
  23. 前記実行許可は、乗算指令を実行するための許可を備える、請求項22に記載の装置。
JP2012118553A 2005-10-20 2012-05-24 キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ Active JP5475055B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/254,873 2005-10-20
US11/254,873 US7805588B2 (en) 2005-10-20 2005-10-20 Caching memory attribute indicators with cached memory data field

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2008536651A Division JP2009512944A (ja) 2005-10-20 2006-10-20 キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2013243363A Division JP5628404B2 (ja) 2005-10-20 2013-11-25 キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ

Publications (2)

Publication Number Publication Date
JP2012212440A JP2012212440A (ja) 2012-11-01
JP5475055B2 true JP5475055B2 (ja) 2014-04-16

Family

ID=37727504

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2008536651A Pending JP2009512944A (ja) 2005-10-20 2006-10-20 キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ
JP2012118553A Active JP5475055B2 (ja) 2005-10-20 2012-05-24 キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ
JP2013243363A Active JP5628404B2 (ja) 2005-10-20 2013-11-25 キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2008536651A Pending JP2009512944A (ja) 2005-10-20 2006-10-20 キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2013243363A Active JP5628404B2 (ja) 2005-10-20 2013-11-25 キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ

Country Status (7)

Country Link
US (1) US7805588B2 (ja)
EP (1) EP1941375B1 (ja)
JP (3) JP2009512944A (ja)
KR (1) KR101009220B1 (ja)
CN (1) CN101331466B (ja)
IL (1) IL190977A0 (ja)
WO (1) WO2007048135A1 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7729359B1 (en) * 2006-03-15 2010-06-01 Manu Kumar Methods and systems for providing address transparency
US20080059753A1 (en) * 2006-08-30 2008-03-06 Sebastien Hily Scheduling operations corresponding to store instructions
US7603527B2 (en) * 2006-09-29 2009-10-13 Intel Corporation Resolving false dependencies of speculative load instructions
US8799620B2 (en) 2007-06-01 2014-08-05 Intel Corporation Linear to physical address translation with support for page attributes
JP5300407B2 (ja) * 2008-10-20 2013-09-25 株式会社東芝 仮想アドレスキャッシュメモリ及び仮想アドレスキャッシュ方法
US8627471B2 (en) * 2008-10-28 2014-01-07 Freescale Semiconductor, Inc. Permissions checking for data processing instructions
US9213665B2 (en) 2008-10-28 2015-12-15 Freescale Semiconductor, Inc. Data processor for processing a decorated storage notify
KR101707927B1 (ko) * 2010-11-25 2017-02-28 삼성전자주식회사 메모리 시스템 및 그 운용방법
KR101218684B1 (ko) * 2011-01-07 2013-01-21 엘지전자 주식회사 이동 단말기 및 이동 단말기의 데이터 출력 방법
US8949551B2 (en) 2011-02-23 2015-02-03 Freescale Semiconductor, Inc. Memory protection unit (MPU) having a shared portion and method of operation
US9116845B2 (en) 2011-02-23 2015-08-25 Freescale Semiconductor, Inc. Remote permissions provisioning for storage in a cache and device therefor
US8639895B2 (en) 2011-07-14 2014-01-28 Freescale Semiconductor, Inc. Systems and methods for memory region descriptor attribute override
JP2013097671A (ja) * 2011-11-02 2013-05-20 Fujitsu Ltd アドレス変換装置、アドレス変換装置の制御方法及び演算処理装置
US9715424B1 (en) * 2013-08-23 2017-07-25 Rambus Inc. Memory device and repair method with column-based error code tracking
TWI489279B (zh) * 2013-11-27 2015-06-21 Realtek Semiconductor Corp 虛擬實體位址轉換系統以及虛擬實體位址轉換系統的管理方法
CN104699633B (zh) * 2013-12-04 2019-04-23 瑞昱半导体股份有限公司 虚拟物理地址转换系统及其管理方法
US9280492B2 (en) * 2013-12-28 2016-03-08 Intel Corporation System and method for a load instruction with code conversion having access permissions to indicate failure of load content from registers
EP3029574B1 (en) * 2014-12-02 2019-09-18 ARM Limited Memory management
US20170255569A1 (en) * 2016-03-01 2017-09-07 Qualcomm Incorporated Write-allocation for a cache based on execute permissions
US11269640B2 (en) * 2017-02-13 2022-03-08 Qualcomm Incorporated Speculative transitions among modes with different privilege levels in a block-based microarchitecture
US10713166B2 (en) * 2017-05-05 2020-07-14 Samsung Electronics Co., Ltd. Efficient early ordering mechanism
WO2019005888A1 (en) 2017-06-26 2019-01-03 Tarin Stephen SYSTEMS AND METHODS FOR TRANSFORMING LARGE DATA TO A REDUCED SIZE REPRESENTATION
CN111868700B (zh) * 2018-02-28 2024-04-19 索尼公司 存储器管理系统、存储器管理方法以及信息处理设备
US11237970B2 (en) * 2018-11-07 2022-02-01 Micron Technology, Inc. Reduce data traffic between cache and memory via data access of variable sizes
US11526290B2 (en) * 2019-06-29 2022-12-13 Intel Corporation System and method to track physical address accesses by a CPU or device
US11809332B2 (en) 2021-12-13 2023-11-07 Micron Technology, Inc. Prefetch data associated with TLB fill requests

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2260429B (en) * 1991-10-11 1995-05-24 Intel Corp Versatile cache memory
US5689679A (en) 1993-04-28 1997-11-18 Digital Equipment Corporation Memory system and method for selective multi-level caching using a cache level code
US5561814A (en) * 1993-12-22 1996-10-01 Intel Corporation Methods and apparatus for determining memory operating characteristics for given memory locations via assigned address ranges
JP3740195B2 (ja) * 1994-09-09 2006-02-01 株式会社ルネサステクノロジ データ処理装置
JPH08147217A (ja) * 1994-11-24 1996-06-07 Hitachi Ltd プロセッサ
US6442666B1 (en) * 1999-01-28 2002-08-27 Infineon Technologies Ag Techniques for improving memory access in a virtual memory system
CN1168025C (zh) * 1999-03-10 2004-09-22 国际商业机器公司 用于多线程处理机的指令高速缓存器
JP2001256108A (ja) * 2000-03-10 2001-09-21 Mitsubishi Electric Corp メモリ内蔵マイクロプロセッサ
US6711653B1 (en) * 2000-03-30 2004-03-23 Intel Corporation Flexible mechanism for enforcing coherency among caching structures
US6574708B2 (en) * 2001-05-18 2003-06-03 Broadcom Corporation Source controlled cache allocation
JP2003140966A (ja) * 2001-11-01 2003-05-16 Fujitsu Ltd 計算機システムのキャッシュメモリ制御方式
JP2003196157A (ja) * 2001-12-25 2003-07-11 Mitsubishi Electric Corp プロセッサ装置及びメモリ管理方法
WO2004046932A1 (ja) * 2002-11-21 2004-06-03 Fujitsu Limited キャッシュ制御方法及びプロセッサシステム
US7089397B1 (en) * 2003-07-03 2006-08-08 Transmeta Corporation Method and system for caching attribute data for matching attributes with physical addresses
US7861095B2 (en) * 2005-02-15 2010-12-28 Arm Limited Data processing apparatus security
US7814292B2 (en) * 2005-06-14 2010-10-12 Intel Corporation Memory attribute speculation

Also Published As

Publication number Publication date
JP2012212440A (ja) 2012-11-01
JP2009512944A (ja) 2009-03-26
JP5628404B2 (ja) 2014-11-19
CN101331466A (zh) 2008-12-24
US20070094475A1 (en) 2007-04-26
WO2007048135A1 (en) 2007-04-26
EP1941375B1 (en) 2017-08-30
IL190977A0 (en) 2008-12-29
EP1941375A1 (en) 2008-07-09
US7805588B2 (en) 2010-09-28
KR101009220B1 (ko) 2011-01-19
CN101331466B (zh) 2011-12-07
KR20080063514A (ko) 2008-07-04
JP2014078248A (ja) 2014-05-01

Similar Documents

Publication Publication Date Title
JP5628404B2 (ja) キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ
EP1934753B1 (en) Tlb lock indicator
CN107111455B (zh) 电子处理器架构以及缓存数据的方法
US7917725B2 (en) Processing system implementing variable page size memory organization using a multiple page per entry translation lookaside buffer
US6189074B1 (en) Mechanism for storing system level attributes in a translation lookaside buffer
US7783859B2 (en) Processing system implementing variable page size memory organization
US7793070B2 (en) Processing system implementing multiple page size memory organization with multiple translation lookaside buffers having differing characteristics
US7949834B2 (en) Method and apparatus for setting cache policies in a processor
US10191853B2 (en) Apparatus and method for maintaining address translation data within an address translation cache
US20160140042A1 (en) Instruction cache translation management
JPH04352256A (ja) メモリ空間を節約する方法および装置
KR20080063512A (ko) 변환 색인 버퍼들(tlbs) 필드의 다중 레벨 갱신
US8015361B2 (en) Memory-centric page table walker
US7900019B2 (en) Data access target predictions in a data processing system
US6567907B1 (en) Avoiding mapping conflicts in a translation look-aside buffer
US7171540B1 (en) Object-addressed memory hierarchy that facilitates accessing objects stored outside of main memory
Rao et al. Implementation of Efficient Cache Architecture for Performance Improvement in Communication based Systems
MX2008005091A (en) Caching memory attribute indicators with cached memory data
Park et al. Analysis of memory access latency considering page faults and TLB misses in NVM storage
KUMAR Performance improvement by Software controlled Cache Architecture
JPH02113355A (ja) キャッシュメモリ

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130402

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130723

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131125

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20131202

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140205

R150 Certificate of patent or registration of utility model

Ref document number: 5475055

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250