JP5087676B2 - 階層型キャッシュタグアーキテクチャ - Google Patents

階層型キャッシュタグアーキテクチャ Download PDF

Info

Publication number
JP5087676B2
JP5087676B2 JP2010515039A JP2010515039A JP5087676B2 JP 5087676 B2 JP5087676 B2 JP 5087676B2 JP 2010515039 A JP2010515039 A JP 2010515039A JP 2010515039 A JP2010515039 A JP 2010515039A JP 5087676 B2 JP5087676 B2 JP 5087676B2
Authority
JP
Japan
Prior art keywords
cache
tag
original
storage structure
match
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.)
Expired - Fee Related
Application number
JP2010515039A
Other languages
English (en)
Other versions
JP2010532537A (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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JP2010532537A publication Critical patent/JP2010532537A/ja
Application granted granted Critical
Publication of JP5087676B2 publication Critical patent/JP5087676B2/ja
Expired - Fee Related 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels

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

本発明は、キャッシュタグ記憶装置に関する。より具体的には、本発明は、多数のキャッシュタグ記憶装置用のタグ記憶の階層型アーキテクチャの作成に関する。
以下は、ここで利用する用語の簡単なグロッサリである。提供される定義は、明らかにその他の意味で利用されていない限りにおいて、本明細書および請求項にわたり有効である。
<タグ記憶構造>
キャッシュメモリの全てのエントリ用のタグおよびその他の関連情報(例えば状態情報、LRU情報、ECC情報)を記憶する記憶構造のこと。
<キャッシュタグのキャッシュ>
タグ記憶構造に記憶されるタグのサブセットを記憶するキャッシュのこと。
<インデックス>
タグ記憶構造の特定のタグセットを指し示す、メモリ要求のアドレスの部分のこと。
<タグ>
特定のインデックス部分に固有の特定のメモリアドレス位置を指し示す、メモリ要求のアドレスの部分のこと。
全ての種類のプロセッサは、プロセッサコアのスピードに比較して比較的遅いメモリ速度により、キャッシュへの依存度が高くなっている。数十年もの間、幾らものキャッシュアーキテクチャが利用されてきた。公知のキャッシュアーキテクチャの一つに、セットアソシアティブキャッシュ(set associative cache)がある。キャッシュアーキテクチャは、システムメモリ位置からのデータを記憶するメモリ記憶装置およびタグセットを記憶するタグ記憶構造を有する。
標準的なキャッシュ階層型アーキテクチャでは、プロセッサコアのキャッシュに対して近接するにつれて、一般的にキャッシュが小型となり、速度が速くなる。一般的に最小および最速のキャッシュは、プロセッサコアシリコンダイの上に常駐する。他方、最大キャッシュ(LLCまたはlast level cache)(1または複数)は、プロセッサコアからオフダイに常駐する場合がある。オンダイのキャッシュに対してオフダイのキャッシュに常駐するデータへのアクセスにより一般的にはさらなる待ち時間が生じることになる、というのもプロセッサコアへのデータ送信に長時間かかるからである。
各キャッシュは、タグ記憶構造を有する。プロセッサがあるメモリ位置からのデータを要する場合、データがあるキャッシュに記憶されているか否かの判断は、そのキャッシュについてタグ記憶構造とメモリ位置アドレスとを比較することで行うことができる。タグ記憶構造がオフダイである場合、タグのルックアップを行う際の待ち時間は、タグ記憶構造がオンダイである場合より長くかかる。故に、オンダイのタグ記憶構造は、高価な空間を占有するのでプロセッサダイのコストを上昇させるが、オフダイのキャッシュと比してタグルックアップの待ち時間が低下することにより、実行速度を速める助けとなる。
多くの実施形態では、あるキャッシュは、キャッシュラインによりデータを記憶する(例えば64バイト)。他の実施形態では、キャッシュは、他の計測単位によりデータを記憶する。キャッシュがキャッシュラインによりデータを記憶する例示的な実施形態では、タグ記憶構造は、キャッシュに記憶されているキャッシュラインにより表される特定のメモリ位置を表す。加えて、タグ記憶構造は、記憶されているキャッシュラインが修正されたものであるか、無効であるか、等を特定する状態情報を記憶する。状態情報の一例は、多くのキャッシュにより利用されているMESI(modified, exclusive, shared, or invalid)情報である。タグ記憶構造は、さらに、既存のキャッシュラインの置き換えが必要な場合に退去させる(evict)キャッシュラインを決定する際に助けとなるキャッシュ置き換えポリシー情報を記憶する。LRU(最長時間未使用法)ビットは一般的に利用され、キャッシュラインの相対的な古さ(他の記憶キャッシュラインに対して)についての情報の保持を必要とする技術であるが、他の置き換えポリシー技術も存在し、利用可能である。タグ記憶構造はさらに、ECC情報は必要ではない場合にも各タグセットについて誤り訂正情報(ECC)を記憶することができる。LRU情報およびECC情報は、セット毎の記憶でよいが、タグ情報および状態情報は、タグ毎の記憶が必要となる(ウェイ毎(per way))。
例えば、40ビットのアドレス空間に64バイトのキャッシュラインを有する256メガバイト(MB)の4ウェイセットアソシアティブキャッシュは、9.5MBのタグ記憶空間を必要としうる。
(14b tag + 2b state) X 4M tags + (8b ECC + 4b LRU) /set X 1M ways = 9.5 MB
このタグ記憶構造がプロセッサダイの上にある場合、9.5Mという量の記憶空間は、プロセッサ製造コストにおいて多大な負担となりうる。9.5Mの情報がゲートに記憶されることで、プロセッサのシリコンダイの上の空間の大部分が占有されてしまう。プロセッサダイへのコスト負担を低減して、なおかつ、キャッシュおよびミス(miss)の判断を可能とさせるべく、部分的なタグ記憶構造が考案され時折利用されている。部分的なタグは、タブ情報の一部分(例えばタグの14ビット全ての代わりに、8ビット)のみを記憶して、ダイ空間を節約する。このようなアーキテクチャは、キャッシュミスの迅速な判断という観点から最適である。しかしながら、キャッシュヒット(cache hit)を判断するという観点からは、メインメモリからのフルタグへのアクセスが依然として必要となる。故に、部分的なタグルックアップでキャッシュミスが存在する場合、システムメモリからデータを取得すべきであることが知られているが、キャッシュヒットの場合には、依然として、全てのタグについての情報を記憶しているタグ記憶構造から実際のタグにアクセスする必要がある。
本発明は、例示を目的として記載され、添付図面には制限されない。添付図面においては、同様の参照番号により類似した部材を示す。
キャッシュタグのキャッシュを実装する装置の一実施形態を示す。
N個のウェイセットアソシアティブ構成のタグアドレス構造、並びに、キャッシュタグセット構造のキャッシュおよびキャッシュタグのキャッシュの個々のタグアドレスエントリの一実施形態を示す。
キャッシュメモリに関連付けられたタグセットのサブセットを記憶すべく、キャッシュタグのキャッシュを利用する処理の一実施形態のフロー図である。
キャッシュタグのキャッシュを利用する処理の一実施形態のフロー図である。
キャッシュタグのキャッシュを実装する装置、システム、および方法の実施形態を示す。以下の記載においては多くの詳細を述べる。しかし、実施形態はこれら特定の詳細なしに実施可能であることを理解されたい。また、公知の部材、仕様、およびプロトコルに関しては詳述を避けて、本発明を曖昧にしないようにしている箇所もある。
図1は、キャッシュタグのキャッシュを実装する装置およびシステムの一実施形態を示す。多くの実施形態においては、1以上のプロセッサコア104がマイクロプロセッサシリコンダイ102(ダイ1)に常駐する。他のマルチプロセッサの実施形態においては、互いに連結された多数のプロセッサダイが存在してよく、その各々がダイ毎に1以上のコアを含んでよい(図1には、多数のダイの上のプロセッサコアのアーキテクチャは示していない)。図1に戻ると、プロセッサコア(1または複数)がインターコネクト100に連結される。異なる実施形態においては、プロセッサコア(1または複数)104は、今日利用可能である任意のパソコン、ハンドヘルドデバイス、サーバ、ワークステーション、または他のコンピューティングデバイス等での利用のために設計される任意の種類の中央処理ユニット(CPU)であってよい。ここでは本発明を曖昧にしないように、単一のインターコネクト100を示して、説明し易くしている。実際には、この単一のインターコネクトは、異なる個々のデバイス同士を連結する多数のインターコネクトから形成されてよい。加えて、多くの実施形態では、このインターコネクトに対して、不図示のより多くのデバイス(チップセット等)を連結することができる。
プロセッサコア104は、インターコネクト100を介して、プロセッサコア104の同じダイの上に物理的に位置する1以上のオンダイのキャッシュ106に連結される。
多くの実施形態では、キャッシュには、全てのキャッシュメモリ位置についてタグを記憶するタグ記憶構造114が関連付けられている。多くの実施形態では、タグ記憶構造114は、プロセッサコア104から別個のシリコンダイ(ダイ2)112上に常駐する。多くの実施形態では、タグ記憶構造114は、インターコネクト100を介して1以上のオフダイ(非プロセッサダイ)キャッシュ116に連結され、オフダイのキャッシュ116と同じダイの上に配設される。
キャッシュタグのキャッシュ108は、プロセッサダイ102上のオフダイのキャッシュタグのサブセットを記憶する。特に、タグ記憶構造114は、全てのインデックス値と、インデックス値毎に関連付けられたタグセットとを記憶するが、キャッシュタグのキャッシュ108のほうは、全ての可能性あるインデックス値は記憶しない。記憶空間を節約するべく、キャッシュタグのキャッシュ108は、タグ記憶構造114に記憶されているタグのサブセットを記憶する。殆どの実施形態では、キャッシュタグのキャッシュ108では、任意の時間においては全てのインデックス位置を表さない。
幾らかの実施形態では、キャッシュタグのキャッシュ108に記憶されているタグとタグ記憶構造114との間でマッチするタグ各々について、1セットの全てのウェイからの情報が必要である。他の実施形態では、キャッシュタグのキャッシュ108は、全てのウェイ未満のタグを記憶する。一実施形態では、1セットの記憶要件は9.5バイトであり、タグ情報、状態情報、退去/キャッシュ置き換えポリシー情報(LRU)、およびECC情報(もしECCを利用している場合)が含まれる。タグ、状態、LRU情報、およびECCコンポーネントに関する特定の詳細は、背景技術のセクションでより詳細に記載している。幾らかの実施形態では、キャッシュタグのキャッシュは、LRUポリシーとは異なる置き換えポリシーを利用する。特に、以下の情報がキャッシュタグセットのキャッシュに記憶されうる。
(14-bit tag + 2-bit state) X 4 ways + 4-bit LRU + 8-bit ECC = 9.5 Bytes
キャッシュタグのキャッシュに2K(2^11)を記憶させるべく、記憶要件を19K(2K*9.5B)とする。キャッシュタグのキャッシュのエントリの詳細は、以下に図2を参照しながら説明する。故に、キャッシュタグのキャッシュの一実施形態は、プロセッサダイの上に常駐して、一番最近に利用されたタグのルックアップを行ってよく、ダイへの負担は19Kである。19Kの記憶サイズのオンダイのコストは、9.5Mサイズのフルタグ記憶構造の記憶負担より非常に小さい。
多くの実施形態では、キャッシュタグのキャッシュ108はそれ自身が、Nウェイのセットアソシアティブキャッシュである。加えて、多くの実施形態では、キャッシュタグのキャッシュ108は、一番最近にアクセスされたタグを記憶する。キャッシュタグのキャッシュ108は、インターコネクト100に連結される。幾らかの実施形態では、キャッシュタグのキャッシュ108へのアクセスを制御するコントローラ110は、メモリ要求の、キャッシュタグのキャッシュ108内に現在配置されているタグとの整合を判断して、その旨をプロセッサに報告する。異なる実施形態では、メモリ要求は、プロセッサコアのうちの1つまたは他の可能性のあるメモリ要求発生源のうちのバスマスタI/Oデバイス等の、システム内の多くのデバイスのうち1つから発せられてもよい。
各メモリ要求(つまりメモリアクセス)は、システムメモリ内の特定の位置へのアドレスを含む。タグ記憶構造114は、オフダイキャッシュメモリ116の特定の位置に関連付けられた全てのタグセットを含む。
故に、コントローラ110がメモリ要求を受信する際には、コントローラ110は、メモリ要求アドレス内のインデックスおよびタグフィールドを解析(parse out)して、特定のメモリ位置に関連付けられたタグのインデックスがキャッシュタグのキャッシュ108内に記憶されているか否かをチェックする。元のインデックスが記憶されている場合、コントローラ110は次に、メモリ位置に関連付けられている元のタグが、元のインデックス位置のウェイのうちの1つのキャッシュタグのキャッシュ108内に記憶されているか否かをチェックする。
元のタグが108に関連付けられたエントリに配置されている場合(元のインデックス位置)、その結果は、メモリ要求のキャッシュタグのキャッシュ108のタグヒットとなる(つまり、キャッシュヒット)。元のタグが、タグ記憶構造114のインデックス位置に記憶されていない場合、その結果は、メモリ要求のキャッシュタグのキャッシュ108のタグミスとなる。またこれは、一セットの全てのウェイからのタグがキャッシュされた場合にキャッシュミスである。
他方で、コントローラ110が当初のルックアップ上のキャッシュタグのキャッシュ108に格納されている元のインデックスを見つけることができない場合、その結果は、メモリ要求のキャッシュタグのキャッシュ108のインデックスミスとなる。この場合、コントローラ110は、メモリ要求からの元のインデックス値をフェッチして、その後、キャッシュタグのキャッシュ108に現在記憶されているインデックスを置き換えることで、キャッシュタグのキャッシュ108に挿入する必要がある。幾らかの実施形態では、CoCT自身がアソシアティブキャッシュである場合、置き換えポリシーは、最長時間未使用であるインデックス値を置き換える最長時間未使用ポリシー(least recently used policy)である。他の実施形態では、他の標準的な置き換えポリシースキームを利用して、キャッシュタグのキャッシュ108のインデックス値を置き換えることもできる。
新たなインデックス値がキャッシュタグのキャッシュ108に挿入されると、コントローラ110は、メモリ要求に関連付けられた特定のタグが、現在、インデックス位置のタグ記憶構造114に記憶されているか否かを判断する必要がある。判断が肯定的な場合、その結果は、タグ記憶構造114のタグヒットであり、コントローラ110は、そのインデックス位置のタグ記憶構造114に記憶されている全てのウェイの新たなインデックス位置のキャッシュタグのキャッシュ108にタグ情報を入力する必要がある。
判断が肯定的ではない場合、その結果は、タグ記憶構造114のタグミスとなり、コントローラ110は、最長時間未使用であるタグ(タグ記憶構造114のインデックス位置のウェイのうちの1つ)を、メモリ要求に関連付けられているタグで置き換える処理を開始する必要がある。この置き換えは、システムメモリからのメモリ要求のアドレスに位置するデータをキャッシュメモリに入力して、メモリ要求からの元のタグをタグ記憶構造114に入力する。ひとたびタグがシステムメモリからタグ記憶構造に入力されると、幾らかの実施形態では、コントローラ110は、キャッシュタグのキャッシュ108の全てのウェイ(インデックス値にある)を、タグ記憶構造114に現在記憶されているインデックス値にある各ウェイからのタグで置き換える処理を開始することができる。他の実施形態では、置き換えにより、キャッシュタグのキャッシュ108の全てのウェイ未満のウェイが置き換えられる。
幾らかの実施形態では、オフダイのメモリアクセスサイズは、キャッシュタグエントリサイズのキャッシュと同じではない。オフダイのメモリアクセスサイズが、キャッシュタグエントリサイズのキャッシュより小さい場合、コントローラは、データをフェッチするべく多数の要求を送信してよい。他方で、オフダイのメモリアクセスサイズが、キャッシュタグエントリサイズのキャッシュより大きい場合、コントローラ110は、不要な追加的データを有してよい。この場合に幾らかの実施形態では、コントローラ110は、過剰なデータを破棄することもできる。
他の実施形態では、コントローラ110は、コントローラ110にインテリジェントに過剰なデータの部分を先取りさせて、将来の利用に備えて関連メモリに記憶させることを可能とする小さな関連メモリ(不図示)を有してよい。例えば、元のキャッシュタグサイズが4バイトであり、元のキャッシュタグの結合性が8ウェイである場合、キャッシュタグのキャッシュ108のエントリは、全ての関連ウェイ(4バイトX8ウェイ=32バイトタグセットエントリ)を記憶する目的から、サイズが32バイトである必要がある。タグ記憶構造114からの情報を入手するフェッチコマンドが64バイトを一度に受信すると仮定する。この例においては、コントローラ110は、キャッシュタグセットエントリの全キャッシュ、および、さらに32バイトの隣接データを記憶するべく、32バイトをフェッチする必要がある。小さな関連メモリを利用する実施形態では、フェッチされた32バイトの隣接データは、コントローラ110上またはその付近の小さな関連メモリに記憶されて、小さな先取りバッファとして機能することができる。幾らかの場合においては、多くの後続のアクセスは、隣接するメモリ位置へのものなので、隣接する32バイトは、次の処理または近い将来に要求される可能性が高い。故に、小さな隣接するメモリにより、将来のキャッシュタグのキャッシュ108の処理用に、タグセットをインテリジェントに先取りすることができる。
さらに、小さな関連メモリは、犠牲キャッシュ(victim cache)としての利用も可能である。犠牲キャッシュの実施形態では、小さな関連メモリは、キャッシュタグのキャッシュ108内で一番最近退去させられたタグを記憶して、後にこれらタグの1以上が再度アクセスされるときに備えることができる。
加えて、コントローラ110は、キャッシュタグのキャッシュ108のエントリデータについての多数のフェッチ要求を1つの要求に組み合わせてよい。例えば、キャッシュタグの多数のキャッシュ108のインデックスフェッチを1つのフェッチに組み合わせることができる。
幾らかの代替的な実施形態では、部分的なタグキャッシュ118が、キャッシュタグのキャッシュ108に加えて利用される。部分的なタグキャッシュ118は、背景技術のセクションで上述したように、全てのタグビットを記憶しないので、キャッシュミスのみを確実に判断することができるが、キャッシュヒットについては確実に判断することができない。他方、キャッシュタグのキャッシュは、キャッシュヒットのみを確実に判断することができるが、キャッシュミスについては確実に判断することができない。部分的なタグキャッシュ118およびキャッシュタグのキャッシュ108を利用する上述の代替的な実施形態では、部分的なタグキャッシュ118を利用することでキャッシュミスを迅速に判断して、キャッシュタグのキャッシュ108を利用することでページヒットを迅速に判断することができる。これら実施形態では、コントローラ110は、部分的なタグキャッシュ118およびキャッシュタグのキャッシュ108で、同時にルックアップを開始することができる。部分的なタグキャッシュ118がページミスを判断した際には、キャッシュタグのキャッシュからの情報を破棄する。しかし、ページヒットの場合には、要求されるタグは潜在的にキャッシュタグのキャッシュ108にオンダイで発見されることもあり、これによりオフダイのアクセス待ち時間の不利益を防ぐことができる。
幾らかの実施形態では、キャッシュメモリは分割されたキャッシュである。分割されたキャッシュの実施形態では、タグ記憶構造114の全体的なタグ記憶要件は低減される、というのも各タグが多数のキャッシュエントリ(例えば、キャッシュサブブロック)により共有されるからである。
これら分割されたキャッシュの実施形態では、状態情報の記憶要件は増加させられる、というのも、各タグについて、そのタグに関連付けられた各潜在的なエントリ用の状態情報が必要となるからである(状態情報は、図2に関する説明とともに背景技術のセクションでも説明されている)。例えば、タグが14ビットである場合(非分割キャッシュにおいて)、2ビットの状態情報がセクタ毎に含まれている。8ウェイの分割キャッシュでは、各タグには8個のキャッシュエントリが関連付けられているので、2ビットX8、つまり、16ビットの状態情報がタグ毎に含まれている。この例では、状態情報は、タグ情報よりも多くの空間を占有することになる。
分割されたキャッシュに対して状態情報記憶が持つ影響を低減すべく、共通の状態情報パターンセットを、分割された状態情報記憶装置120に記憶させる。多くの実施形態において、分割された状態情報記憶装置120はコントローラ110に連結されていてよい。この例では、分割された状態情報記憶装置120は、16ビットの多数のパターンを記憶する。幾らかの実施形態では、多数のパターンは、殆どの共通パターンを含み、分割された状態情報記憶装置120内で所定(predetermined)であり、固定的(permanent)であってよい。他の実施形態では、コントローラ110内のロジックが、利用される殆どの共通のパターンの状態情報を動的に決定して、記憶されているパターンを修正することもできる。
状態情報パターンの共通性は状態情報パターンによって異なっていてよい。メモリアクセスの共通の線形性を例にとる。多数のメモリ要求がコントローラ110で受信され、それらが全て線形のアドレスパターンであった場合、状態情報ビットは、全てが「1」である、という非常に信頼性の高い修正パターンを示すであろう。
故に、各タグについて16ビットの状態情報を記憶する代わりに、コントローラは、例えば、分割された状態情報記憶装置120の状態情報パターンについて6ビットのポインタを記憶することができる。6ビットのポインタにより、分割された状態情報記憶装置120に、64個の状態情報パターン(2^6)を記憶することができるようになる。故に、もしもこのパターンが共通であった場合、本例では、コントローラは、16ビットの状態情報パターンの代わりにタグ付きの6ビットのポインタを記憶することができるようになる。
加えて、上述のように、多くの実施形態では、システムメモリ122が、オフダイのキャッシュ116上のインターコネクト100に連結される。これにより、オンダイおよびオフダイのキャッシュのいずれもが対象となるデータ(対象タグ)を記憶していない場合、メモリ位置からのデータにアクセスすることができるようになる。
図2は、N個のウェイセットアソシアティブ構成のタグアドレス構造、並びに、キャッシュタグセット構造のキャッシュおよびキャッシュタグのキャッシュの個々のタグアドレスエントリの一実施形態を示す。
多くの実施形態では、40ビットのアドレス空間へのメモリアクセス要求は、以下の40ビットのアドレスフィールドの情報を含む(すなわち、元のタグフィールド、元のインデックスフィールド、およびオフセットフィールド)。通常、元のタグフィールドは、タグ記憶構造に記憶されるタグエントリ200内に記憶される。256Mの直接マッピング(1ウェイアソシアティブ)キャッシュの64バイトキャッシュラインサイズを有する40ビットのアドレッシングの例を利用すると、アドレス内の各フィールドのサイズの一例は、12ビットの元のタグ、22ビットのインデックス、および6ビットのオフセットを含みうる。22ビットのインデックスフィールドは、タグ記憶構造の特定のインデックス位置へのポインタである。12ビットの元のタグは、実際のメモリアドレスで最高の12ビットでありうる。タグのサイズも、その結合性およびキャッシュラインサイズにより決定される。背景技術セクションで記載した例では、64バイトのキャッシュラインを有する256MBの4ウェイセットアソシアティブキャッシュは、20ビットのインデックスフィールドおよび4Mのタグ(2^20x4)を有して、ここで各タグは14ビットのサイズを有する。
図2はさらに、タグセット202の一実施形態も示している。4ウェイセットアソシアティブキャッシュ用のタグセット202は、4つのタグを記憶する。各ウェイ(ウェイ0−3)は、特定のタグと、各タグに関連付けられたキャッシュエントリに関する特定の量の状態情報とを記憶する。状態情報はタグ毎に固有であり、各タグに関連付けられている状態情報が必要である。加えて、タグセットはさらに、LRUビットまたは他のLRUの類の情報といった、キャッシュ置き換えポリシー情報を含むことにより、新たなタグの記憶が必要な場合に、コントローラに対して、4つのタグのうちいずれが退去が必要であるかを通知する必要がある。最後に、誤り訂正符号(ECC)ビットはさらに、セット毎に利用されて、タグセットの記憶誤りを最小限にすることができる。例えば、上述のように、あるセットの記憶要件は9.5バイトであってよく、これには以下の情報が含まれる。
(14 bit tag + 2 bit state) X 4 ways + 4 bit LRU + 8 bit ECC = 9.5 Bytes
図2はさらに、キャッシュタグのキャッシュ内のタグセットエントリ(CoCTタグセットエントリ204)の実施形態を示す。セットアソシアティブキャッシュは、概して、多くの種類のキャッシュ構成においてよく利用される。故に、多くの実施形態では、キャッシュはマルチウェイセットアソシアティブキャッシュである。故に、キャッシュタグのキャッシュのエントリは、特定のインデックス位置においてキャッシュの全てのウェイについてのタグ情報を記憶する必要がある(タグセットのコンテンツ/データ206)。これら実施形態では、元のアドレス(例えば、上述した40ビットのアドレス構成)からのインデックスフィールド(タグセットのアドレッシング208)が、キャッシュタグのキャッシュ内に記憶されているあるタグセットの位置を指し示す。幾らかの実施形態では、キャッシュタグのキャッシュ構造自身が、セットアソシアティブに記憶されている。故に、元のインデックスフィールドは、キャッシュタグタグフィールドのキャッシュおよびキャッシュタグインデックスフィールドのキャッシュに分割されて、キャッシュタグのキャッシュ内から、あるセットのフェッチを可能とする。例えば、40ビットのアドレスから20ビットの元のインデックスフィールドを利用する場合、元のインデックスフィールドの上位12ビットは、キャッシュタグのセットアソシアティブキャッシュのタグフィールドとして利用することができる。この例においては、元のインデックスフィールドの下位8ビットは、キャッシュタグのキャッシュのインデックスフィールドとして利用することができる。
図3は、キャッシュメモリに関連付けられたタグセットのサブセットを記憶すべく、キャッシュタグのキャッシュを利用する処理の一実施形態のフロー図である。本処理は、ハードウェア(回路、専用ロジック等)、ソフトウェア(汎用コンピュータシステムまたは専用マシン上で実行されるようなもの)、またはこれらの組み合わせを含みうる処理ロジックにより実行される。図3を参照すると、処理は、複数のタグをタグ記憶構造に記憶するロジック処理により開始される(処理ブロック300)。多くの実施形態では、各タグは、キャッシュメモリ内に記憶されているデータ位置と関連付けられている。記憶構造内に記憶されているタグのフルセットは、キャッシュメモリの全てのデータ位置を表す(account for)。キャッシュメモリは、コンピュータシステムまたは他のコンピュータ関連デバイス上の任意の汎用または専用キャッシュであってよい。多くの実施形態では、キャッシュメモリは、1以上のプロセッサコアを有するコンピュータシステムに配設される。多くの実施形態では、キャッシュメモリは、プロセッサコアとは別個のシリコンダイの上に配設される。さらに、多くの実施形態では、タグ記憶構造は、キャッシュメモリと同じシリコンダイの上に配設される。
図3に戻ると、処理ロジックは、次に、キャッシュタグのキャッシュのタグ記憶構造に記憶されるタグのサブセットを記憶する(処理ブロック302)。多くの実施形態では、キャッシュタグのキャッシュは、タグ記憶構造に記憶されているフルセットのタグの小さな部分のみを記憶する。例えば、背景技術および図1を参照して上述した例示的な実施形態では、64バイトキャッシュラインを有する4ウェイセットアソシアティブ256MBキャッシュメモリについて、タグ記憶構造に記憶されている4M(2^22)タグがある。一方で、キャッシュタグのキャッシュは、この一部を記憶してよい(例えば、8K(2^13)タグ)。多くの実施形態では、キャッシュタグのキャッシュは、一番最近要求されたメモリ位置が、タグがキャッシュタグのキャッシュ内に記憶される位置であるような、一番最近に利用された様式でタグ記憶構造からのタグを記憶してよい。
図3は、タグ記憶構造との関連でキャッシュタグのキャッシュが記憶するものについての汎用処理を示すが、図4は、キャッシュタグのキャッシュを利用する処理のフロー図を示す。本処理は、ハードウェア(回路、専用ロジック等)、ソフトウェア(汎用コンピュータシステムまたは専用マシン上で実行されるようなもの)、またはこれらの組み合わせを含みうる処理ロジックにより実行される。図4を参照すると、処理は、処理ロジックがメモリ要求を受信することによって開始される(処理ブロック400)。メモリ要求は、メモリ位置のアドレスを含む。多くの実施形態では、アドレスの上位ビットがメモリ位置のタグに対応しており、アドレスの中間ビットが、キャッシュメモリに関連付けられたタグ記憶構造へのインデックスに対応する。タグフィールドおよびインデックスフィールドの特定の詳細は、図2に関して上述した。
異なる実施形態では、メモリ要求は、プロセッサコアのうちの1つまたは他の可能性のあるメモリ要求発生源のうちのバスマスタI/Oデバイス等の、システム内の多くのデバイスのうち1つから発せられてもよい。メモリ要求は最終的には、フィルタリングされて、キャッシュタグのキャッシュを制御するコントローラへ送られる(図4のCoCT)。そして、コントローラ内の処理ロジックは、メモリ要求のアドレスからの元のインデックス値および元のタグ値を解析する(処理ブロック402)。
メモリ要求内の元のインデックスおよび元のタグが既知になると、処理ロジックは、元のインデックスが現在キャッシュタグのキャッシュに記憶されているか否かを判断する(処理ブロック404)。元のインデックスがキャッシュタグのキャッシュに記憶されていない場合には、キャッシュタグのキャッシュにインデックスミスがあることになり、処理ロジックは、元のインデックスをキャッシュタグのキャッシュに挿入してよい(処理ブロック406)。多くの実施形態では、元のインデックスは、最長時間未使用な記憶されているインデックス値を置き換える(退去させる)ことで解放されたキャッシュタグのキャッシュの位置へ挿入される。幾らかの実施形態では、処理ロジックはインデックスをフェッチして、その後、インデックスを割り当て、および、挿入することができる。他の実施形態では、処理ロジックは、先ず空間を割り当てて、その後、インデックスをフェッチして挿入を行うこともできる。
退去させられるインデックスが、キャッシュタグのキャッシュに入力されたという理由で更新された場合、このインデックスを元の記憶位置に上書きして書き戻す必要がある。
元のインデックスがキャッシュタグのキャッシュに挿入された場合、処理ロジックは、元のインデックスが既にキャッシュタグのキャッシュに記憶されていたというのが唯一の可能性のあることと考えられるので、キャッシュタグのキャッシュに元のタグがないと認識する。故に、処理ロジックは、元のタグがタグ記憶構造(図4ではTSS)に存在するか否かを判断せねばならない(処理ブロック408)。元のタグは、メモリ要求が指し示すメモリ位置からのデータが、タグ記憶構造が参照しているキャッシュに現在記憶されている場合のみに、タグ記憶構造に存在することになる。元のタグがタグ記憶構造にある場合、処理ロジックは、元のタグをフェッチして、キャッシュタグのキャッシュに挿入する(処理ブロック410)。元のタグがキャッシュタグのキャッシュに挿入される際、処理ロジックは、元のタグ自身を記憶するウェイのみならず、タグ記憶構造(タグセット)のインデックス値の全てのウェイからのタグをコピーしてよい(処理ブロック420)。他の実施形態では、処理ロジックは、タグ記憶構造のインデックス値の全てのウェイからのタグ未満のタグをコピーしてよい。最後に、処理ロジックは、タグに関連付けられたキャッシュメモリのデータを読み出し、メモリ要求を完了させる(処理ブロック422)。
一方、元のタグがタグ記憶構造にない場合、処理ロジックは、メモリ要求のアドレスが指し示すデータがキャッシュ内にはなく、データはメインシステムメモリ内にあることを認識することになる。この場合、処理ロジックは、元のタグをタグ記憶構造に挿入する必要があり(通常のキャッシュ動作中にタグ記憶構造にタグを普通に挿入するのと同様な方法で)、処理ロジックはさらに、元のタグを含むタグセットを、キャッシュタグのキャッシュに挿入してよい(処理ブロック412)。本例では、処理ロジックは、追加的な処理ステップを行い、タグを挿入する必要がある。幾らかの実施形態ではこの結果によって、処理ロジックは、退去させる古いタグを決定する現在の退去ポリシーを利用して、TSSから古いタグを退去させて、挿入すべき元のタグでこの古いタグを置き換える(処理ブロック418)。上述した次の処理ロジックは、キャッシュタグ構造のキャッシュにタグを沿うニュする際に、元のインデックスに関連付けられたウェイのセット全体を挿入してもよい(処理ブロック420)。他の実施形態では、元のインデックスのウェイのセット全体未満のウェイと関連付けられたタグが、キャッシュタグ構造のキャッシュに挿入される。最後に、処理ロジックは、タグに関連付けられたキャッシュメモリ内のデータを読み出し、メモリ要求を完了させる(処理ブロック422)。
処理ブロック404に戻ると、元のインデックスがキャッシュタグのキャッシュにある場合、処理ロジックは、元のタグがキャッシュタグのキャッシュにあるか否かを判断する必要がある(処理ブロック414)。元のタグがキャッシュタグのキャッシュに記憶されていない場合には、処理ロジックは、処理ブロック408へと進む(上述した通りである)。または、元のタグがキャッシュタグのキャッシュに記憶されている場合には、処理ロジックは、キャッシュタグのキャッシュの元のタグヒットがあることを確認する(処理ブロック416)。この実施形態では、処理ロジックは、タグに関連付けられたキャッシュメモリのデータを読み出して、メモリ要求を完了させて(処理ブロック422)、処理を進めることができる。元のインデックスをキャッシュタグのキャッシュに挿入する際、既存のインデックス(古いインデックス)エントリを置き換える必要がある場合もある。このエントリに関連付けられたデータが修正された状態にある場合には、処理ロジックは、キャッシュタグのキャッシュ内の修正された置き換えインデックスと関連付けられたタグを記憶している位置のタグ記憶構造を更新する。
キャッシュタグのキャッシュを実装する装置、システム、および方法を上述した。これら実施形態は、その特定の例示的な実施形態を参照しながら説明された。当業者にとっては、本開示に基づいて、ここに記載した実施形態の広義の精神および範囲を逸脱せずにこれら実施形態に行われうる様々な変形例および変更例が明らかである。故に、明細書および図面は、例示的であり、限定的な意味で捉えられるべきものではない。

Claims (18)

  1. プロセッサに連結されたキャッシュメモリと、
    前記キャッシュメモリに連結され、複数のタグを記憶するタグ記憶構造と、
    前記プロセッサに連結され、前記タグ記憶構造に記憶されている前記複数のタグのうち1以上のタグのサブセットを記憶するキャッシュタグのキャッシュと
    前記プロセッサに連結されたコントローラと、
    前記コントローラに連結された、分割された状態情報記憶ユニットと
    を備え、
    前記複数のタグの各々は、前記キャッシュメモリ内に記憶されているデータ位置に関連付けられており、
    前記分割された状態情報記憶ユニットは、複数の共通の状態情報パターンを記憶し、
    前記コントローラは、前記キャッシュタグのキャッシュのタグと関連付けられた状態情報ビットのセットの代わりに、前記分割された状態情報記憶ユニットに記憶されている共通の状態情報パターンへのポインタを記憶する、
    前記キャッシュタグのキャッシュを実装する装置。
  2. 前記キャッシュタグのキャッシュは、前記タグ記憶構造に記憶されている一番最近に利用されたタグのうち1以上を含む
    請求項1に記載の装置。
  3. 前記プロセッサに連結された部分的なタグキャッシュをさらに備え、
    前記部分的なタグキャッシュは、メモリ要求のキャッシュミスを判断し、
    前記キャッシュタグのキャッシュは、前記メモリ要求のキャッシュヒットを判断する
    請求項1または2に記載の装置。
  4. 前記コントローラは、タグマッチの発生を判断
    前記タグマッチは、メモリ要求に関連付けられた元のタグが前記タグマッチをチェックされる位置に記憶されているタグに等しい場合に発生する
    請求項1から3のいずれか1項に記載の装置。
  5. 前記コントローラは、さらに、前記メモリ要求のアドレスから元のインデックスを判断し、
    前記元のインデックスがまだ前記キャッシュタグのキャッシュにない場合、前記キャッシュタグのキャッシュに現在あるインデックスを上書きすることで、前記キャッシュタグのキャッシュに前記元のインデックスを挿入する
    請求項4に記載の装置。
  6. 前記コントローラは、さらに、前記メモリ要求からの前記元のインデックスが前記キャッシュタグのキャッシュにある場合、前記キャッシュタグのキャッシュの前記タグマッチをチェックし、
    前記メモリ要求からの前記元のインデックスが前記キャッシュタグのキャッシュにない場合、前記タグ記憶構造の前記タグマッチをチェックし、
    前記キャッシュタグのキャッシュにも、前記タグ記憶構造にもタグマッチがない場合、システムメモリから前記元のタグを取得する
    請求項5に記載の装置。
  7. 前記コントローラは、さらに、前記キャッシュタグのキャッシュにタグマッチがない場合、前記元のタグを前記キャッシュタグのキャッシュに挿入し、
    前記タグ記憶構造にタグマッチがない場合、前記元のタグを前記タグ記憶構造に挿入する
    請求項6に記載の装置。
  8. インターコネクトと、
    第1のシリコンダイの上に配設され、前記インターコネクトに連結されたプロセッサと、
    第2のシリコンダイの上に配設され、前記インターコネクトに連結されたキャッシュメモリと、
    前記第2のシリコンダイの上に配設され、前記インターコネクトに連結され、複数のタグを記憶するタグ記憶構造と、
    前記第1のシリコンダイの上に配設され、前記インターコネクトに連結され、前記タグ記憶構造に記憶された前記複数のタグのうち1以上のサブセットを記憶するキャッシュタグのキャッシュと
    前記プロセッサに連結されたコントローラと、
    前記コントローラに連結された、分割された状態情報記憶ユニットと
    を備え、
    前記複数のタグの各々は、前記キャッシュメモリ内に記憶されているデータ位置に関連付けられており、
    前記分割された状態情報記憶ユニットは、複数の共通の状態情報パターンを記憶し、
    前記コントローラは、前記キャッシュタグのキャッシュのタグと関連付けられた状態情報ビットのセットの代わりに、前記分割された状態情報記憶ユニットに記憶されている共通の状態情報パターンへのポインタを記憶する、
    前記キャッシュタグのキャッシュを実装するシステム。
  9. 前記プロセッサに連結された部分的なタグキャッシュをさらに備え、
    前記部分的なタグキャッシュは、メモリ要求のキャッシュミスを判断し、
    前記キャッシュタグのキャッシュは、前記メモリ要求のキャッシュヒットを判断する
    請求項に記載のシステム。
  10. 前記コントローラは、タグマッチの発生を判断
    前記タグマッチは、メモリ要求に関連付けられた元のタグが前記タグマッチをチェックされる位置に記憶されているタグに等しい場合に発生する
    請求項8または9に記載のシステム。
  11. 前記コントローラは、さらに、前記メモリ要求のアドレスからの元のインデックスを判断し、
    前記元のインデックスがまだ前記キャッシュタグのキャッシュにない場合、前記キャッシュタグのキャッシュに現在あるインデックスを上書きすることで、前記キャッシュタグのキャッシュに前記元のインデックスを挿入する
    請求項10に記載のシステム。
  12. 前記コントローラは、さらに、前記メモリ要求からの前記元のインデックスが前記キャッシュタグのキャッシュにある場合、前記キャッシュタグのキャッシュの前記タグマッチをチェックし、
    前記メモリ要求からの前記元のインデックスが前記キャッシュタグのキャッシュにない場合、前記タグ記憶構造の前記タグマッチをチェックし、
    前記キャッシュタグのキャッシュにタグマッチがない場合、または、前記タグ記憶構造にタグマッチがない場合、システムメモリから前記元のタグを取得する
    請求項11に記載のシステム。
  13. 前記コントローラは、さらに、前記キャッシュタグのキャッシュにタグマッチがない場合、前記元のタグを前記キャッシュタグのキャッシュに挿入し、
    前記タグ記憶構造にタグマッチがない場合、前記元のタグを前記タグ記憶構造に挿入する
    請求項12に記載のシステム。
  14. 複数のタグをタグ記憶構造に記憶させる段階と、
    キャッシュタグのキャッシュに、前記タグ記憶構造に記憶されている前記複数のタグのうち1以上および全て未満の数のタグのサブセットを記憶する段階と
    複数の共通の状態情報パターンを分割された状態情報記憶ユニットに記憶する段階と、
    プロセッサに連結されたコントローラによって、前記キャッシュタグのキャッシュのタグと関連づけられた状態情報ビットのセットの代わりに、前記分割された状態情報記憶ユニットに記憶されている共通の状態情報パターンへのポインタを記憶する段階と
    を備え、
    前記複数のタグの各々は、前記プロセッサに連結されたキャッシュメモリ内に記憶されているデータ位置に関連付けられている
    方法。
  15. タグマッチの発生を判断する段階をさらに備え、
    前記タグマッチは、メモリ要求に関連付けられた元のタグが前記タグマッチをチェックされる位置に記憶されているタグに等しい場合に発生する
    請求項14に記載の方法。
  16. 前記メモリ要求のアドレスから元のインデックスを判断する段階と、
    前記元のインデックスがまだ前記キャッシュタグのキャッシュにない場合、前記キャッシュタグのキャッシュに現在あるインデックスを上書きすることで、前記キャッシュタグのキャッシュに前記元のインデックスを挿入する段階と
    をさらに備える
    請求項15に記載の方法。
  17. 前記メモリ要求からの前記元のインデックスが前記キャッシュタグのキャッシュにある場合、前記キャッシュタグのキャッシュの前記タグマッチをチェックする段階と、
    前記メモリ要求からの前記元のインデックスが前記キャッシュタグのキャッシュにない場合、前記タグ記憶構造の前記タグマッチをチェックする段階と、
    前記キャッシュタグのキャッシュにタグマッチがない場合、または、前記タグ記憶構造にタグマッチがない場合、システムメモリから前記元のタグを取得する段階と
    をさらに備える
    請求項16に記載の方法。
  18. 前記キャッシュタグのキャッシュにタグマッチがない場合、前記元のタグを前記キャッシュタグのキャッシュに挿入する段階と、
    前記タグ記憶構造にタグマッチがない場合、前記元のタグを前記タグ記憶構造に挿入する段階と
    をさらに備える
    請求項17に記載の方法。
JP2010515039A 2007-06-29 2008-06-24 階層型キャッシュタグアーキテクチャ Expired - Fee Related JP5087676B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/771,774 2007-06-29
US11/771,774 US20090006757A1 (en) 2007-06-29 2007-06-29 Hierarchical cache tag architecture
PCT/US2008/068044 WO2009006113A2 (en) 2007-06-29 2008-06-24 Hierarchical cache tag architecture

Publications (2)

Publication Number Publication Date
JP2010532537A JP2010532537A (ja) 2010-10-07
JP5087676B2 true JP5087676B2 (ja) 2012-12-05

Family

ID=39721952

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010515039A Expired - Fee Related JP5087676B2 (ja) 2007-06-29 2008-06-24 階層型キャッシュタグアーキテクチャ

Country Status (7)

Country Link
US (1) US20090006757A1 (ja)
EP (1) EP2017738A1 (ja)
JP (1) JP5087676B2 (ja)
CN (1) CN101689146B (ja)
DE (1) DE112008001666T5 (ja)
TW (1) TW200908009A (ja)
WO (1) WO2009006113A2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090327577A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Hybrid storage
CN101667158B (zh) * 2009-09-15 2015-07-01 威盛电子股份有限公司 串流上下文的高速缓存系统
US8990506B2 (en) 2009-12-16 2015-03-24 Intel Corporation Replacing cache lines in a cache memory based at least in part on cache coherency state information
US8612809B2 (en) 2009-12-31 2013-12-17 Intel Corporation Systems, methods, and apparatuses for stacked memory
KR20130079706A (ko) * 2012-01-03 2013-07-11 삼성전자주식회사 휘발성 메모리를 포함하는 저장 장치의 구동 방법
US9495305B1 (en) * 2012-11-02 2016-11-15 David Fuchs Detecting pointer errors for memory protection
US20140215158A1 (en) * 2013-01-31 2014-07-31 Hewlett-Packard Development Company, L.P. Executing Requests from Processing Elements with Stacked Memory Devices
US9141484B2 (en) * 2013-03-15 2015-09-22 Seagate Technology Llc Transiently maintaining ECC
US10019352B2 (en) * 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for adaptive reserve storage
CN104636268B (zh) * 2013-11-08 2019-07-26 上海芯豪微电子有限公司 一种可重构缓存产品与方法
US9558120B2 (en) 2014-03-27 2017-01-31 Intel Corporation Method, apparatus and system to cache sets of tags of an off-die cache memory
US9594910B2 (en) 2014-03-28 2017-03-14 Intel Corporation In-system provisioning of firmware for a hardware platform
GB2546245B (en) * 2016-01-05 2020-08-19 Advanced Risc Mach Ltd Cache memory
US10042576B2 (en) 2016-08-17 2018-08-07 Advanced Micro Devices, Inc. Method and apparatus for compressing addresses
CN114780031B (zh) * 2022-04-15 2022-11-11 北京志凌海纳科技有限公司 一种基于单机存储引擎的数据处理方法和装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02294751A (ja) * 1989-05-09 1990-12-05 Mitsubishi Electric Corp キヤツシユメモリ制御装置
US5414827A (en) * 1991-12-19 1995-05-09 Opti, Inc. Automatic cache flush
US5559987A (en) * 1994-06-30 1996-09-24 Digital Equipment Corporation Method and apparatus for updating a duplicate tag status in a snoop bus protocol based computer system
US5813031A (en) * 1994-09-21 1998-09-22 Industrial Technology Research Institute Caching tag for a large scale cache computer memory system
JP3585349B2 (ja) * 1997-08-27 2004-11-04 富士通株式会社 キャッシュメモリを備えた情報処理装置
US6212602B1 (en) * 1997-12-17 2001-04-03 Sun Microsystems, Inc. Cache tag caching
US20040225830A1 (en) * 2003-05-06 2004-11-11 Eric Delano Apparatus and methods for linking a processor and cache

Also Published As

Publication number Publication date
CN101689146B (zh) 2012-09-26
WO2009006113A2 (en) 2009-01-08
CN101689146A (zh) 2010-03-31
DE112008001666T5 (de) 2010-09-16
US20090006757A1 (en) 2009-01-01
WO2009006113A3 (en) 2009-04-30
EP2017738A1 (en) 2009-01-21
JP2010532537A (ja) 2010-10-07
TW200908009A (en) 2009-02-16

Similar Documents

Publication Publication Date Title
JP5087676B2 (ja) 階層型キャッシュタグアーキテクチャ
KR100884351B1 (ko) 타입 비트들을 이용한, 레벨 2 캐시에서의 ecc 및프리디코드 비트들의 저장 추적
US6834327B2 (en) Multilevel cache system having unified cache tag memory
US6219760B1 (en) Cache including a prefetch way for storing cache lines and configured to move a prefetched cache line to a non-prefetch way upon access to the prefetched cache line
US8161246B2 (en) Prefetching of next physically sequential cache line after cache line that includes loaded page table entry
USRE45078E1 (en) Highly efficient design of storage array utilizing multiple pointers to indicate valid and invalid lines for use in first and second cache spaces and memory subsystems
US5784590A (en) Slave cache having sub-line valid bits updated by a master cache
US8140759B2 (en) Specifying an access hint for prefetching partial cache block data in a cache hierarchy
US20090106494A1 (en) Allocating space in dedicated cache ways
US9569363B2 (en) Selective prefetching of physically sequential cache line to cache line that includes loaded page table entry
US20100217937A1 (en) Data processing apparatus and method
US7836259B1 (en) Prefetch unit for use with a cache memory subsystem of a cache memory hierarchy
JPS61156346A (ja) 記憶階層の先取り装置
KR20010042262A (ko) 템포럴 및 넌템포럴 명령어에 대한 공유 캐시 구조
US9720847B2 (en) Least recently used (LRU) cache replacement implementation using a FIFO storing indications of whether a way of the cache was most recently accessed
US20140129774A1 (en) Hierarchical cache structure and handling thereof
CN105446898B (zh) 用于数据处理的装置及方法
US7356650B1 (en) Cache apparatus and method for accesses lacking locality
US7657667B2 (en) Method to provide cache management commands for a DMA controller
US6311253B1 (en) Methods for caching cache tags
US20050091457A1 (en) Method and apparatus for an in-situ victim cache
US9053030B2 (en) Cache memory and control method thereof with cache hit rate
US8176254B2 (en) Specifying an access hint for prefetching limited use data in a cache hierarchy
US20240111677A1 (en) Region pattern-matching hardware prefetcher
US11645148B2 (en) Method and apparatus for caching MTE and/or ECC data

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120424

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120719

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: 20120814

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120910

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150914

Year of fee payment: 3

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

LAPS Cancellation because of no payment of annual fees