JP2008530657A - キャッシュメモリを備えたシステムとアクセス方法 - Google Patents
キャッシュメモリを備えたシステムとアクセス方法 Download PDFInfo
- Publication number
- JP2008530657A JP2008530657A JP2007554110A JP2007554110A JP2008530657A JP 2008530657 A JP2008530657 A JP 2008530657A JP 2007554110 A JP2007554110 A JP 2007554110A JP 2007554110 A JP2007554110 A JP 2007554110A JP 2008530657 A JP2008530657 A JP 2008530657A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- data
- location
- line
- victim
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims description 17
- 230000004044 response Effects 0.000 claims description 13
- 238000010586 diagram Methods 0.000 description 5
- 239000000758 substrate Substances 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
- G06F12/124—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list being minimized, e.g. non MRU
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
犠牲キャッシュモードで作動する上位レベルキャッシュと下位レベルキャッシュとを備えたシステムが開示される。犠牲キャッシュは、最長時間未使用のキャッシュロケーションとして一番最近に読み出されたキャッシュロケーションを識別する、一番最近に使用された制御モジュールを含む。
Description
概して、本開示はメモリシステムに関し、より詳細には、キャッシュメモリを用いたシステムに関する。
犠牲キャッシュ(victim cache)を用いたシステムは、上位レベルキャッシュで上書きされたキャッシュラインを、下位レベルの犠牲キャッシュで記録されるよう転送することにより、書き込みモードで動作する。読み出し動作においては、リクエストされたデータは、キャッシュヒットにより示される、リクエストされたデータが犠牲キャッシュのラインに残っていることに応答して、犠牲キャッシュから上位レベルキャッシュへ転送される。
読み出し動作の一環として、犠牲キャッシュからのキャッシュラインの読み出しを無効にする書き込みが生じる。読み出されたキャッシュラインを無効にすることで、キャッシュコントローラは、このキャッシュラインが次の書き込み動作に利用できるものとして識別する。
読み出し動作の一環として、犠牲キャッシュからのキャッシュラインの読み出しを無効にする書き込みが生じる。読み出されたキャッシュラインを無効にすることで、キャッシュコントローラは、このキャッシュラインが次の書き込み動作に利用できるものとして識別する。
本開示は添付の図面を参照することでさらに理解することができ、その様々な特徴および利点は当業者によって明らかにされる。
なお、異なる図面においても、同様の、あるいは同一のアイテムに対しては同じ参照記号を使用する。
本開示の特定の実施形態に係る犠牲キャッシュシステムが開示されている。一実施形態では、レベル2(L2)キャッシュがレベル1(L1)キャッシュから出されたデータを記録する犠牲キャッシュになるように、L1キャッシュとL2キャッシュとが協働する。本開示の特定の実施形態によれば、データがL1キャッシュからL2キャッシュへ書き込まれるときに、書き込まれる側のキャッシュラインはそのキャッシュ行において一番最近に使用された(MRU:Most Recently Used)キャッシュラインとして、MRUアレイにおいて識別される。
しかし、データが犠牲キャッシュに読み出されると、その結果として、犠牲キャッシュから読み出されたキャッシュラインは、そのキャッシュ行において最長時間未使用の(LRU)キャッシュラインとして、MRUアレイにおいて識別される。キャッシュから読み出されたばかりのキャッシュラインを、その行で最長時間未使用のラインと識別することは、タグアレイにおけるラインを無効にすることと同様の結果が得られる。その理由は、一番最近に読み出されたキャッシュラインは、キャッシュ行の他のいずれのバリッドライン(有効ライン)よりも先に上書きされることになるからである。
本文で使用している用語である、「行」あるいは「キャッシュ行」は、現在のアドレスのインデックス部分(図1のA(インデックス)参照のこと)に基づいて選択される一連のキャッシュラインのことを言う。例えば、参照番号141、142、および143は、各々が4つのキャッシュラインを有するキャッシュ行を表す。本明細書のこのような具体的な実施形態およびその他の具体的な実施形態は本文の図1から図7を参照することでより理解することができる。
図1は、本願の特定の実施形態に係るシステム100を示す。システム100は、リクエスティングデバイス110、レベル1キャッシュ120、およびレベル2犠牲キャッシュ130を含む。システム100は、システムオンチップ(SOC)システム、もしくはマルチコンポーネントシステムを示し得る。マルチコンポーネントシステムの場合、デバイス110、キャッシュ120、およびキャッシュ130の一部は別の半導体基板上にあってもよい。一実施形態では、デバイス110およびキャッシュ120は共通の半導体基板上にあり、一方、キャッシュ130は、その一部を別の半導体基板に製造してもよく、あるいは、別の半導体基板には何ら製造されないようにしてもよい。システム100が複数のコンポーネントを含む場合、このようなコンポーネントは、プリント基板、マルチチップモジュール、あるいはコンポーネントをサポートし相互接続できるその他の基板を使用して相互接続され得る。
動作においては、リクエスティングデバイス110は、L1キャッシュ120のバスポートに電気的に接続されたバスポートを有する。特定の実施形態では、このリクエスティングデバイス110はマイクロコントローラの中央処理ユニットであり得る。データアクセス動作においては、リクエスティングデバイス110は、情報が読み出される(受信される)あるいは書き込まれる(転送される)ようにリクエストを出す。読み出し動作あるいは書き込み動作のいずれにおいても、キャッシュ120および130にデータが書き込まれることになる。
キャッシュモジュール120は、キャッシュモジュール120でヒット(キャッシュヒット)した場合、リクエスティングデバイス110によってリクエストされるデータを供給することになる。キャッシュモジュール120でキャッシュミスが発生した場合、つまり、リクエストしたデータが存在しなければ、データは、犠牲キャッシュ130から、あるいはシステムメモリなどの別のメモリ位置(図示せず)からキャッシュモジュール120に書き込まれることになる。例えば、リクエストしたデータがキャッシュ120にもキャッシュ130にも存在しなければ、データは別のメモリ位置から受けとられることになる。別のメモリロケーションからのデータを受信したことに応答して、キャッシュ120のキャッシュラインにおけるデータを上書きしなければならない場合、上書きされるデータはまずL1キャッシュ120から出され、犠牲キャッシュ130に書き込まれて記録される。犠牲キャッシュ130にデータが書き込まれると、犠牲キャッシュ130は、L1キャッシュから出されたデータを受けたキャッシュラインを、一番最近に使用されたキャッシュラインとして識別する。
リクエスティングデバイス110によってリクエストされたデータが、外部メモリやL1キャッシュ120ではなく、犠牲キャッシュ130でキャッシュヒットすると、リクエストされたデータは犠牲キャッシュ130からL1キャッシュ120へと送られて記録される。この犠牲キャッシュ130のキャッシュラインを読み出すことで、読み出されたキャッシュラインは最長時間未使用のラインとして識別される。
犠牲キャッシュ130は、メモリアレイ140、タグ/バリッドビットアレイ135、キャッシュタグコントロール部165、キャッシュヒットモジュール155、最近使用制御モジュール166(MRUモジュール)、MRUアレイ170、および、ウェイ選択モジュール部150を含む。
バス125はL1キャッシュ120を犠牲キャッシュ130に接続し、タグ部分やインデックス部分を含むアドレス情報をL1キャッシュ120から犠牲キャッシュ130へと送る。更なるデータおよび制御バスが存在することは明らかであることから、以下の議論のためにアドレスバスだけを例示する。バス125の部位は、メモリアレイ135の特定のキャッシュラインセットを識別するために使用されるアドレス情報を送信するもので、A(インデックス)のラベルが付されており、キャッシュタグコントロール165に接続されている。キャッシュ行の特定のウェイを選択するために使用されるアドレス情報にはA(タグ)のラベルが付されており、キャッシュヒットモジュール部155に送られる。メモリアレイ部140はキャッシュ行141〜144を含み、さらに、ウェイ146〜149の4つのウェイを含む。ウェイ選択モジュール150はキャッシュメモリアレイ140に接続され、犠牲キャッシュ130でのヒットに応答して、L1キャッシュ120に供給されるメモリアレイ140のウェイの1つに関連づけられるデータを選択する信号を受信する。
キャッシュタグコントローラ165は、キャッシュメモリアレイ140のキャッシュ行の1つを選択するとともに、このキャッシュ行に関連付けられるアレイ135のタグとバリッドビットとを選択する。特定のアドレスの受信に応答して、現在のアドレスのタグ、A(タグ)がキャッシュタグ/バリッドビットアレイ135内に記録されることが決定されると、信号がキャッシュヒットモジュール155からアサートされてMRUコントロール166とウェイ選択モジュール150とに送られ、これにより、データが犠牲キャッシュ130からL1キャッシュ120に送られ、MRUレジスタがアップデートされる。
書き込み動作においては、MRU制御モジュール166は、書き込まれるラインがその行内で一番最近に使用されたラインであることを示すようにMRUアレイ170をアップデートする。
読み出し動作においては、MRU制御モジュール166は、読み出されたラインがその行内で最長時間未使用のラインであることを示すようにMRUアレイ170をアップデートする。実際にはそのラインが一番最近にアクセスされたものである場合に、この読み出されたラインを最長時間未使用のラインであるとして示すことで、この読み出されたばかりのラインが次の書き込み動作中に上書きされる可能性が最も高いものとされ、その一方で、上書きされる前においては最近に読み出されたデータが利用できる状態が維持される。このことは、これまでのシステム、つまり、一旦キャッシュラインデータが読み出されるとラインに対する犠牲キャッシュタグを無効にすることで、その後に元のデータが犠牲キャッシュから必要とされた場合、例えば、キャッシュラインの元の読み出しを中止する必要がある場合に、キャッシュラインの次のデータを読み出しさせないようなシステム、よりも有益である。
また、この開示されたシステムを使用することで、キャッシュラインを無効にするためのタグ/バリッドアレイ135への別々の書き込みが必要とされないために、バンド幅を改善することができる。このことは、図2を参照することでさらに理解することができる。
図2に、従来の犠牲キャッシュへの読込みと、本実施形態における犠牲キャッシュ130への読込みとの各タイミング図を示す。信号211は従来のシステムにおける犠牲キャッシュのタグ/バリッドビットへのアクセスを示す。また、信号212は、従来のシステムのMRUアレイのMRUインジケータへのアクセスを示す。具体的には、従来の犠牲アレイへの読み出しの第1サイクル(C1)中、選択されたキャッシュ行のタグおよびインバリッドビットは、信号211のパルスRD1に示されるように読み出される。同じサイクルにおいて、アクセスされた行に対するMRUインジケータは、信号212のパルスRD1およびW1に示すように読み出しと書き込みがなされる。インバリッドビットは犠牲キャッシュに記録されたデータにアクセスするためのスピードパス(speed path)にあるので、また、タグ/インバリッドアレイ135はMRUアレイよりも大きいので、同じサイクルでアレイ135のインバリッドビットにライトバックするのは一般には実用的ではない。代わりにバリッドビットが書き込まれ、キャッシュ行内の特定のラインのデータが同じ読み出し動作の第2サイクル中に無効にされることを示すようする。犠牲キャッシュは第3サイクル(C3)まで次の読み出しをすることができない。
信号213は、開示されたシステムのタグのタグ/バリッドビットへのアクセスを示す。信号214はMRUアレイのMRUインジケータへのアクセスを示す。具体的には、選択されたキャッシュ行のタグおよびインバリッドビットは、信号213のパルスRD1により示されるC1中に同時に読み出される。同じサイクルにおいて、アクセスされた行に対するMRUインジケータは、信号214パルスR1およびW1に示すように読み出しと書き込みとがなされる。MRUアレイはC1中にライトバックされるので、サイクルC2において第2の読み出し動作が行われ、これにより、犠牲キャッシュ130の読み出しバンド幅が増加する。
図3は、犠牲キャッシュ130への読み出しおよび書き込み動作がキャッシュ行のMRUおよびバリッドビットにどのように影響を及ぼすかを示すことにより、犠牲キャッシュ130を理解しやすいものとする。具体的には、図3は、図1の犠牲キャッシュ130の行および列に対応する行および列を有するアレイ337を示す。例えば、行241〜244はキャッシュ行141〜144に対応し、列246〜249はウェイ146〜149に対応する。アレイ337の各キャッシュラインは、“i”か“v”の文字を含む。文字“i”は、キャッシュラインに関連付けられたデータが無効であることを示し、文字“v”は、キャッシュラインに関連付けられたデータが有効であることを示す。有効データを含むとされたラインはさらに1〜4の数字を含む。これらの数字はラインの一番最近の使用状況を示すもので、1は一番最近に使用されたデータを示し、4は最長時間未使用のデータを示す。
図3のライン242からライン242Aまでのパスは、行241、列249に関連付けられるラインのデータの読み出しを示し、ライン242からライン242Bまでのパスは、行242、列249に関連づけられるキャッシュラインのデータの書き込みを示す。
行141、ウェイ149への読込み動作においては、最近読込まれたラインが値4を含み、これによりこのラインが最長時間未使用ラインと識別されるように、キャッシュ行142に関連づけられるMRU値が変更される。行142、ウェイ149への書き込み動作においては、最近書き込まれたラインが値1を含み、これによりこのラインが一番最近に使用されたラインとされるように、キャッシュ行142に関連付けられるMRU値が変更される。
特定のキャッシュラインの使用状況は、様々な方法で記録することができる。例えば、各キャッシュラインを十分な大きさのメモリロケーションと関連付け、現在の使用の順位を示すことができる。4つのキャッシュラインを有するキャッシュ行に関しては、これには4つの、2ビットのロケーションが必要となる。他の形態では、4つのキャッシュラインを有するキャッシュ行は、3ビットだけを使用した擬似的ランキング法(pseudo-ranking schemeを使用することができた。このような手法では、2つの重ならないキャッシュラインセットが識別される。重ならないキャッシュラインセットの各々は4つのキャッシュラインのうちの2つを示す。この擬似的ランキング法を実現するために使用される3ビットのうちの第1のビットは、この第1セットが一番最近に使用されたキャッシュラインを含むことを示すようにアサートされ、また、第2セットが一番最近に使用されたキャッシュラインを含むことを示すようにネゲートされる。擬似的ランキング法における残りの2ビットは、対応するセット内のどのキャッシュラインが最も最近アクセスされたものかを示すようにアサートあるいはネゲートされる。この手法により、行内で一番最近に使用されたキャッシュラインと最長時間未使用のキャッシュラインとを識別できることが明らかであろう。
図4に、本実施形態に係る方法をフロー図形式で示す。ステップ311では、読み出し動作の一環として、リクエストした第1の情報が犠牲キャッシュ内の、例えばキャッシュラインなどの第1キャッシュロケーションに記録されている、つまり、ヒットしたと判断される。
ステップ312では、ステップ311でヒットしたことに応答して、第1キャッシュロケーションからリクエストした情報の取り出しが促される。図1を参照すると、リクエストされた情報は、キャッシュタグコントロール165のキャッシュ行選択モジュールにより選択されたキャッシュ行と、タグのヒットに応答してキャッシュヒットモジュール155から送られた選択信号に基づいて選択される。
ステップ313では、ステップ311でヒットに応答して、リクエストされた情報がアクセスされたキャッシュロケーションは、読み出しに応答して、最長時間未使用のキャッシュロケーションとして識別されることになる。このようにして、データはアクセス可能なままにされているが、データは、次に情報をキャッシュタグロケーションに記録しなければならないときには上書きされることになる。
図5に、本開示のさらに別の実施形態を示す。ステップ312では、犠牲キャッシュからの情報に対する第1の読み出しリクエストが犠牲キャッシュに送られる。ここでは、情報は上位レベルのキャッシュに送られる。例えば、犠牲キャッシュシステムの一環として、データに対する第1のリクエストは上位レベルキャッシュに対してなされ、第2のリクエストは犠牲キャッシュに送られる。この第2リクエストは、上位レベルキャッシュの一部とされるメモリコントロールによってなされてもよく、あるいは、上位レベルキャッシュとは別であるとされるメモリコントロールによってなされてもよい。図1を参照すると、L1キャッシュ120やメモリコントローラ(図示せず)は、L2キャッシュ130へ読込みリクエストを送ることができた。
ステップ322では、第1の情報が犠牲キャッシュから第1キャッシュにおいて受けとられる。例えば、図1を参照すると、犠牲キャッシュなどのL2キャッシュ130は、選択されると、データをL1キャッシュ120へと送る。
ステップ323では、犠牲キャッシュにインジケータをストアし、犠牲キャッシュにおいて第1の情報の上書きを促す。L2犠牲キャッシュ130から情報の読み出しが発生すると、読み出されたばかりのデータは情報をリクエストしたL1キャッシュ120に残っていると強く仮定される。よって、最長時間未使用のインジケータなどのインジケータを、それまで第1の情報を記録したロケーションに適用することで、その後におけるデータの上書きを促すことができる。
ステップ324では、同じ情報に対する第2の読み出しリクエストがL2キャッシュに送られる。このリクエストを受信すると、ステップ325で示すように、第1の情報が犠牲キャッシュによって上書きされる前に、情報が第1キャッシュにおいて犠牲キャッシュから受信され得る。このことは、犠牲キャッシュロケーションが読み出されても、そのデータは無効にされないという点で以前の方法よりも改善したことを示す。
図6に、本開示による方法をブロック図形式で示す。ステップ326では、上位レベルキャッシュによって促された、第1回目の第1の読み出しみリクエストが、犠牲キャッシュに対して最初に発生する。上位レベルキャッシュは、犠牲キャッシュへの読み出しリクエストを促すことから、犠牲キャッシュの読み出しが実際に終了したことは、リクエストされたデータが上位レベルキャッシュに残っているかどうかに基づいて予測される。ステップ327では、上位レベルキャッシュによって促された、第2回目の第2の読み出しリクエストが発生し、従って、第1の読み出しが生じた時間から第2の読み出しが生じた時間迄の期間においてバリッドインジケータの変更は行われていない。より具体的には、タグ/インバリッドレジスタへの書き込みに対して干渉することによって第1の読み出しによって読み出されたデータが無効にされることはない。
図7は、本明細書の特定の実施形態に係る方法をフロー図形式で示す。犠牲キャッシュのキャッシュロケーションに書き込まれたデータに応答してステップ328が実行され、これにより、キャッシュロケーションは一番最近に使用されたキャッシュロケーションとして識別される。犠牲キャッシュのキャッシュロケーションから読み出されたデータに応答してステップ329が実行され、これにより、キャッシュロケーションは最長時間未使用のキャッシュロケーションとして識別される。
これまでの詳細な記載では、記載の一部を形成している図面を参照してきた。図面においては、本発明が実行され得る特定の実施形態が示されている。当業者が本発明を実施できるように、これらの実施形態およびその特定の変形を十分に詳しく記載している。例えば、装置110と装置120、および装置120と装置130を接続する、別のアドレス接続が示されているが、この3つの装置によって共通の一連のアドレス接続が共有され得ることは理解されるであろう。当然、その他の適切な実施形態を利用してもよい。加えて、図面に示す機能部分を本発明の精神や範囲から逸れることなく複数の方法に組み合わせてもよいし分割してもよいことは明らかであろう。
例えば、犠牲キャッシュ130の制御部分を、L1キャッシュ120とリクエスティングデバイスがメモリアレイ135から離れた状態で、共通の基板上に形成してもよい。このような実施形態では、各キャッシュラインに関連づけられるバリッドビットは、制御部分の一部として、あるいはメモリアレイ135の一部として記録され得る。さらに、記載したキャッシュ領域に記録されたデータは、命令タイプのデータもしくはデータタイプのデータ、つまり、命令ではないデータであってもよい。したがって、これまでの詳細な説明は本文に記載される特定の形式に限定するものではなく、むしろ、添付の請求項の精神および範囲内に正当に含まれるこのような変形、修正、および等価物を含むものである。
Claims (10)
- キャッシュロケーションにデータが書き込まれたことに応答して前記キャッシュロケーションを一番最近に使用されたキャッシュロケーションとして識別するステップ(328)と、
前記キャッシュロケーションからデータが読み出されたことに応答して、前記キャッシュロケーションを最長時間未使用のキャッシュロケーションとして識別するステップ(324)と、を含む方法。 - 前記第1キャッシュは犠牲キャッシュ(130)である、請求項1記載の方法。
- リクエストした第1情報が、第1キャッシュの第1キャッシュ行の第1ウェイに関連づけられる前記キャッシュロケーションに記録されていると判断するステップ(311)、
前記第1キャッシュロケーションからリクエストした情報の取り出しを促すステップ(312)、
前記リクエストした第1の情報の取り出しを促すステップに応答して、前記第1のキャッシュロケーションを最長時間未使用ロケーションとして識別するステップ(313)、を含む方法。 - 前記第1キャッシュは犠牲キャッシュ(130)である、請求項3記載の方法。
- 前記第1キャッシュはレベル2犠牲キャッシュ(130)である、請求項4記載の方法。
- 前記リクエストした情報は第2キャッシュで利用できないと判断するステップをさらに含む、請求項3記載の方法。
- 前記リクエストした情報が利用できないと判断するステップはさらに、前記リクエストした第1情報の取り出しを促す前に前記リクエストは利用できないと判断するステップを含む、請求項6記載の方法。
- 中央処理ユニット(110)から前記リクエストした第1の情報に対するリクエストを受信するステップをさらに含む、請求項7記載の方法。
- キャッシュデータ(110)にアクセスするバスポートを含むデータプロセッサと、
前記データプロセッサの前記バスポートに接続された第1バスポートと第2バスポートを含む第1キャッシュ(120)と、
前記データプロセッサ(130)の前記第2バスポートに接続されたバスポートを含む第2キャッシュと、を備えたシステムであって、
前記第2キャッシュは、前記データプロセッサにこの第2キャッシュを通じてデータを供給するためのものであり、かつ、前記第2キャッシュは、一番最近に読み出されたキャッシュロケーションを最長時間未使用のキャッシュロケーションと識別するための最近使用制御モジュール(166)を含む、システム。 - 前記最近使用制御モジュールはさらに、一番最近に書き込みされたキャッシュロケーションを、一番最近に使用されたキャッシュロケーションとして識別する、請求項9記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/052,650 US20060179231A1 (en) | 2005-02-07 | 2005-02-07 | System having cache memory and method of accessing |
PCT/US2006/001604 WO2006086123A2 (en) | 2005-02-07 | 2006-01-17 | System having cache memory and method of accessing |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008530657A true JP2008530657A (ja) | 2008-08-07 |
Family
ID=36463365
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007554110A Withdrawn JP2008530657A (ja) | 2005-02-07 | 2006-01-17 | キャッシュメモリを備えたシステムとアクセス方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US20060179231A1 (ja) |
JP (1) | JP2008530657A (ja) |
KR (1) | KR20070104906A (ja) |
CN (1) | CN101116063A (ja) |
DE (1) | DE112006000341T5 (ja) |
GB (1) | GB2439851A (ja) |
TW (1) | TW200636481A (ja) |
WO (1) | WO2006086123A2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9176880B2 (en) | 2011-10-17 | 2015-11-03 | Samsung Electronics Co., Ltd. | Cache memory system for tile based rendering and caching method thereof |
JP7551659B2 (ja) | 2019-05-24 | 2024-09-17 | テキサス インスツルメンツ インコーポレイテッド | キャッシュにおけるパイプライン化された読み出し・変更・書き込みサポートを容易にするための方法及び装置 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8279886B2 (en) * | 2004-12-30 | 2012-10-02 | Intel Corporation | Dataport and methods thereof |
US20070094450A1 (en) * | 2005-10-26 | 2007-04-26 | International Business Machines Corporation | Multi-level cache architecture having a selective victim cache |
US7506119B2 (en) * | 2006-05-04 | 2009-03-17 | International Business Machines Corporation | Complier assisted victim cache bypassing |
US7921260B2 (en) * | 2007-10-24 | 2011-04-05 | International Business Machines Corporation | Preferred write-mostly data cache replacement policies |
US8966181B2 (en) * | 2008-12-11 | 2015-02-24 | Seagate Technology Llc | Memory hierarchy with non-volatile filter and victim caches |
US9465745B2 (en) | 2010-04-09 | 2016-10-11 | Seagate Technology, Llc | Managing access commands by multiple level caching |
TW201220048A (en) * | 2010-11-05 | 2012-05-16 | Realtek Semiconductor Corp | for enhancing access efficiency of cache memory |
US10592416B2 (en) * | 2011-09-30 | 2020-03-17 | Oracle International Corporation | Write-back storage cache based on fast persistent memory |
US9811875B2 (en) * | 2014-09-10 | 2017-11-07 | Apple Inc. | Texture state cache |
CN107291630B (zh) * | 2016-03-30 | 2020-08-25 | 华为技术有限公司 | 一种高速缓冲存储器处理方法及装置 |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4181937A (en) * | 1976-11-10 | 1980-01-01 | Fujitsu Limited | Data processing system having an intermediate buffer memory |
US4513367A (en) * | 1981-03-23 | 1985-04-23 | International Business Machines Corporation | Cache locking controls in a multiprocessor |
US4464712A (en) * | 1981-07-06 | 1984-08-07 | International Business Machines Corporation | Second level cache replacement method and apparatus |
US4458310A (en) * | 1981-10-02 | 1984-07-03 | At&T Bell Laboratories | Cache memory using a lowest priority replacement circuit |
US4928239A (en) * | 1986-06-27 | 1990-05-22 | Hewlett-Packard Company | Cache memory with variable fetch and replacement schemes |
US5261066A (en) * | 1990-03-27 | 1993-11-09 | Digital Equipment Corporation | Data processing system and method with small fully-associative cache and prefetch buffers |
JP2822588B2 (ja) * | 1990-04-30 | 1998-11-11 | 日本電気株式会社 | キャッシュメモリ装置 |
JPH06110781A (ja) * | 1992-09-30 | 1994-04-22 | Nec Corp | キャッシュメモリ装置 |
US5539893A (en) * | 1993-11-16 | 1996-07-23 | Unisys Corporation | Multi-level memory and methods for allocating data most likely to be used to the fastest memory level |
US5623627A (en) * | 1993-12-09 | 1997-04-22 | Advanced Micro Devices, Inc. | Computer memory architecture including a replacement cache |
US5870599A (en) * | 1994-03-01 | 1999-02-09 | Intel Corporation | Computer system employing streaming buffer for instruction preetching |
US5687338A (en) * | 1994-03-01 | 1997-11-11 | Intel Corporation | Method and apparatus for maintaining a macro instruction for refetching in a pipelined processor |
US5809271A (en) * | 1994-03-01 | 1998-09-15 | Intel Corporation | Method and apparatus for changing flow of control in a processor |
US5752274A (en) * | 1994-11-08 | 1998-05-12 | Cyrix Corporation | Address translation unit employing a victim TLB |
US5729713A (en) * | 1995-03-27 | 1998-03-17 | Texas Instruments Incorporated | Data processing with first level cache bypassing after a data transfer becomes excessively long |
US5696947A (en) * | 1995-11-20 | 1997-12-09 | International Business Machines Corporation | Two dimensional frame buffer memory interface system and method of operation thereof |
US5778430A (en) * | 1996-04-19 | 1998-07-07 | Eccs, Inc. | Method and apparatus for computer disk cache management |
US6151662A (en) * | 1997-12-02 | 2000-11-21 | Advanced Micro Devices, Inc. | Data transaction typing for improved caching and prefetching characteristics |
US6078992A (en) * | 1997-12-05 | 2000-06-20 | Intel Corporation | Dirty line cache |
US6216206B1 (en) * | 1997-12-16 | 2001-04-10 | Intel Corporation | Trace victim cache |
US6105111A (en) * | 1998-03-31 | 2000-08-15 | Intel Corporation | Method and apparatus for providing a cache management technique |
US6591347B2 (en) * | 1998-10-09 | 2003-07-08 | National Semiconductor Corporation | Dynamic replacement technique in a shared cache |
US6370622B1 (en) * | 1998-11-20 | 2002-04-09 | Massachusetts Institute Of Technology | Method and apparatus for curious and column caching |
US6397296B1 (en) * | 1999-02-19 | 2002-05-28 | Hitachi Ltd. | Two-level instruction cache for embedded processors |
US6349365B1 (en) * | 1999-10-08 | 2002-02-19 | Advanced Micro Devices, Inc. | User-prioritized cache replacement |
US6385695B1 (en) * | 1999-11-09 | 2002-05-07 | International Business Machines Corporation | Method and system for maintaining allocation information on data castout from an upper level cache |
US6370618B1 (en) * | 1999-11-09 | 2002-04-09 | International Business Machines Corporation | Method and system for allocating lower level cache entries for data castout from an upper level cache |
CA2312444A1 (en) * | 2000-06-20 | 2001-12-20 | Ibm Canada Limited-Ibm Canada Limitee | Memory management of data buffers incorporating hierarchical victim selection |
US6889291B1 (en) * | 2000-06-30 | 2005-05-03 | Intel Corporation | Method and apparatus for cache replacement for a multiple variable-way associative cache |
US6728835B1 (en) * | 2000-08-30 | 2004-04-27 | Unisys Corporation | Leaky cache mechanism |
US6845432B2 (en) * | 2000-12-28 | 2005-01-18 | Intel Corporation | Low power cache architecture |
US6725337B1 (en) * | 2001-05-16 | 2004-04-20 | Advanced Micro Devices, Inc. | Method and system for speculatively invalidating lines in a cache |
US6801982B2 (en) * | 2002-01-24 | 2004-10-05 | International Business Machines Corporation | Read prediction algorithm to provide low latency reads with SDRAM cache |
US6901477B2 (en) * | 2002-04-01 | 2005-05-31 | Emc Corporation | Provision of a victim cache within a storage cache hierarchy |
US7103722B2 (en) * | 2002-07-22 | 2006-09-05 | International Business Machines Corporation | Cache configuration for compressed memory systems |
US6961821B2 (en) * | 2002-10-16 | 2005-11-01 | International Business Machines Corporation | Reconfigurable cache controller for nonuniform memory access computer systems |
US6996676B2 (en) * | 2002-11-14 | 2006-02-07 | International Business Machines Corporation | System and method for implementing an adaptive replacement cache policy |
US7103721B2 (en) * | 2003-04-28 | 2006-09-05 | International Business Machines Corporation | Cache allocation mechanism for biasing subsequent allocations based upon cache directory state |
US20040268099A1 (en) * | 2003-06-30 | 2004-12-30 | Smith Peter J | Look ahead LRU array update scheme to minimize clobber in sequentially accessed memory |
US7028144B2 (en) * | 2003-10-28 | 2006-04-11 | Intel Corporation | Method and apparatus for an in-situ victim cache |
US20050188158A1 (en) * | 2004-02-25 | 2005-08-25 | Schubert Richard P. | Cache memory with improved replacement policy |
-
2005
- 2005-02-07 US US11/052,650 patent/US20060179231A1/en not_active Abandoned
-
2006
- 2006-01-17 JP JP2007554110A patent/JP2008530657A/ja not_active Withdrawn
- 2006-01-17 KR KR1020077018173A patent/KR20070104906A/ko not_active Application Discontinuation
- 2006-01-17 CN CNA2006800042239A patent/CN101116063A/zh active Pending
- 2006-01-17 WO PCT/US2006/001604 patent/WO2006086123A2/en active Application Filing
- 2006-01-17 DE DE112006000341T patent/DE112006000341T5/de not_active Ceased
- 2006-01-17 GB GB0716977A patent/GB2439851A/en not_active Withdrawn
- 2006-01-27 TW TW095103406A patent/TW200636481A/zh unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9176880B2 (en) | 2011-10-17 | 2015-11-03 | Samsung Electronics Co., Ltd. | Cache memory system for tile based rendering and caching method thereof |
JP7551659B2 (ja) | 2019-05-24 | 2024-09-17 | テキサス インスツルメンツ インコーポレイテッド | キャッシュにおけるパイプライン化された読み出し・変更・書き込みサポートを容易にするための方法及び装置 |
Also Published As
Publication number | Publication date |
---|---|
DE112006000341T5 (de) | 2007-12-20 |
WO2006086123A2 (en) | 2006-08-17 |
GB0716977D0 (en) | 2007-10-10 |
GB2439851A (en) | 2008-01-09 |
KR20070104906A (ko) | 2007-10-29 |
TW200636481A (en) | 2006-10-16 |
WO2006086123A3 (en) | 2007-01-11 |
US20060179231A1 (en) | 2006-08-10 |
CN101116063A (zh) | 2008-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008530657A (ja) | キャッシュメモリを備えたシステムとアクセス方法 | |
US6449671B1 (en) | Method and apparatus for busing data elements | |
JP3620473B2 (ja) | 共有キャッシュメモリのリプレイスメント制御方法及びその装置 | |
US7472230B2 (en) | Preemptive write back controller | |
JP2784440B2 (ja) | データ・ページの転送制御方法 | |
JP5419102B2 (ja) | キャッシュロック装置及びその方法 | |
US8156357B2 (en) | Voltage-based memory size scaling in a data processing system | |
US7930484B2 (en) | System for restricted cache access during data transfers and method thereof | |
RU2427892C2 (ru) | Способ и устройство для установки политики кэширования в процессоре | |
US20070073974A1 (en) | Eviction algorithm for inclusive lower level cache based upon state of higher level cache | |
CN101361049B (zh) | 用于高级高速缓存驱逐候选对象标识的巡查窥探 | |
EP0817067A2 (en) | Integrated processor/memory device with victim data cache | |
JP2982868B2 (ja) | メモリ待ち時間を短縮する方法およびコンピュータ・システム | |
KR20200035311A (ko) | 캐시 라인 데이터 | |
JP2006521637A (ja) | データ処理システムにおけるメモリ管理 | |
JPH10289155A (ja) | Smpバスの共用状態でのキャッシュ・ラインの共用介入方法及びシステム | |
JPH10289156A (ja) | Smpバスの最近読取り状態でのキャッシュ・ラインの共用介入方法及びシステム | |
US20050188158A1 (en) | Cache memory with improved replacement policy | |
US20080052467A1 (en) | System for restricted cache access during information transfers and method thereof | |
US8250305B2 (en) | Method, system and computer program product for data buffers partitioned from a cache array | |
US6363460B1 (en) | Memory paging control method | |
US7069384B2 (en) | System and method for cache external writing and write shadowing | |
JP3407808B2 (ja) | コンピュータシステム | |
US6240487B1 (en) | Integrated cache buffers | |
JPH06318174A (ja) | キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20090407 |