JP4009304B2 - キャッシュメモリおよびキャッシュメモリ制御方法 - Google Patents

キャッシュメモリおよびキャッシュメモリ制御方法 Download PDF

Info

Publication number
JP4009304B2
JP4009304B2 JP2005514011A JP2005514011A JP4009304B2 JP 4009304 B2 JP4009304 B2 JP 4009304B2 JP 2005514011 A JP2005514011 A JP 2005514011A JP 2005514011 A JP2005514011 A JP 2005514011A JP 4009304 B2 JP4009304 B2 JP 4009304B2
Authority
JP
Japan
Prior art keywords
access
cache
cache entry
information indicating
new
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
JP2005514011A
Other languages
English (en)
Other versions
JPWO2005029336A1 (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Publication of JPWO2005029336A1 publication Critical patent/JPWO2005029336A1/ja
Application granted granted Critical
Publication of JP4009304B2 publication Critical patent/JP4009304B2/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/12Replacement control
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • G06F12/127Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • G06F12/124Replacement 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

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(Least Recently Used)方式やFIFO(First In First Out)方式がよく知られている。
LRU方式は、キャッシュエントリーのうちアクセス順序が最も古いエントリーをリプレース対象と決定する方法である。このLRU方式は、例えば、特開2000−47942号公報などに開示されたキャッシュメモリにおいても採用されている最も一般的なリプレースアルゴリズムである。
ところで、LRU方式のアルゴリズムでリプレースするには、各エントリーについてアクセス順序を示すデータを記憶する記憶部と、それを更新する複雑な回路とが必要になるため、ハードウェア規模が大きくなるという問題がある。
例えば、フルアソシエイティブ式のキャッシュメモリであって、(2のk乗)個のエントリーを有する場合、アクセス順序を示すデータとしてエントリー毎にkビットを必要とする。
また、Nウェイセットアソシエイティブの場合には、ウェイ数N=8であれば、アクセス順序を示す情報として(ウェイ数=8)×(最低3ビット)×(セット数)を必要とし、アクセス順序データを記憶する記憶部(レジスタ又はRAM)およびアクセス順序データを更新する回路の規模が大きいという問題がある。
本発明は、LRU方式と同等のヒット率を得られるリプレース制御をより少ないハードウェア規模で実現するキャッシュメモリを提供することを目的とする。
上記目的を達成するため本発明のキャッシュメモリは、キャッシュの単位となるデータを保持するキャッシュエントリー毎に、アクセスの有無を示す1ビットのアクセス情報を記憶する記憶手段と、アクセス無しを示すアクセス情報に対応するキャッシュエントリーの中からリプレース対象のキャッシュエントリーを選択する選択手段とを備える。
前記選択手段は、アクセス無しを示すアクセス情報に対応するキャッシュエントリーの中から、ランダムにまたはラウンドロビン式に1つのキャッシュエントリーを選択する構成としてもよい。
この構成によれば、従来のLRU方式におけるアクセス順序を示すデータをキャッシュエントリー毎に記憶する代わりに、記憶手段は1ビットで表現可能なアクセス情報をキャッシュエントリー毎に記憶しているので、その記憶容量を削減することができハードウェア規模を削減することができる。また、選択手段は、リプレース対象を、アクセス無しを示すアクセス情報に対応するキャッシュエントリーの1つを選択することにより簡単に決定し、しかも、従来のLRUと比較してもほぼ同等のヒット率を得ることができる。
ここで、前記キャッシュメモリは、さらに、キャッシュエントリーにヒットしたとき当該キャッシュエントリーに対応するアクセス情報をアクセス有りに更新し、その際に他の全てのキャッシュエントリーに対応するアクセス情報がアクセス有りを示す場合には、他の全てのキャッシュエントリーに対応するアクセス情報をアクセス無しにリセットする更新手段を備える構成としてもよい。
これにより、従来のアクセス順序データを更新する複雑な回路を、アクセス情報を更新する簡単なフラグ更新回路に置き換えることができるので、ハードウェア規模をさらに大きく低減することができる。
ここで、前記更新手段は、さらに、前記リセットに際して前記ヒットしたキャッシュエントリーに対応するアクセス情報をアクセス無しにリセットするように構成してもよい。
ここで、前記記憶手段は、さらに、キャッシュエントリー毎にキャッシュエントリーにデータが格納された直後の新しい状態であるか否かを示すニュー情報を記憶し、前記更新手段は、さらに、キャッシュエントリーにヒットしたとき当該キャッシュエントリーに対応するニュー情報を新しい状態でないことを示すようリセットし、前記選択手段は、アクセス無しを示すアクセス情報に対応し、かつ新しい状態でないことを示すニュー情報に対応するキャッシュエントリーの中から、リプレース対象のキャッシュエントリーを選択する構成としてもよい。
ここで、前記選択手段は、アクセス無しを示すアクセス情報に対応し、かつ新しい状態でないことを示すニュー情報に対応するキャッシュエントリーが存在しない場合には、ニュー情報を無視して、リプレース対象のキャッシュエントリーを選択する構成としてもよい。
ここで、前記選択手段は、アクセス有りを示すアクセス情報に対応し、または新しい状態であることを示すニュー情報に対応するキャッシュエントリーのみが存在する場合には、ニュー情報を無視して、リプレース対象のキャッシュエントリーを選択する構成としてもよい。
この構成によれば、リプレースされた後に一度もアクセスされていない新しい状態のキャッシュエントリーがリプレースされてしまうことを防止することができる。
また、本発明のキャッシュメモリの制御方法は、キャッシュメモリのキャッシュエントリー毎に、アクセスの有無を示すアクセス情報を記憶する記憶部を有するキャッシュメモリの制御方法であって、キャッシュヒットおよびミスを検出する検出ステップと、ヒットしたことが検出されたキャッシュエントリーに対応するアクセス情報をアクセス有りに更新する第1更新ステップと、ヒットしたことが検出されたキャッシュエントリー以外の他の全てのキャッシュエントリーに対応するアクセス情報がアクセス有りを示すか否かを判定する判定ステップと、判定手段の判定結果が肯定である場合に、他の全てのキャッシュエントリーに対応するアクセス情報をアクセス無しを示すように更新する第2更新ステップと、ミスしたことが検出されたとき、アクセス無しを示すアクセス情報に対応するキャッシュエントリーの中からリプレース対象のキャッシュエントリーを選択する選択ステップとを有する。
以上のように、本発明のキャッシュメモリによれば、ハードウェア規模を削減し、しかも従来のLRU方式に相当するヒット率を実現することができる。
(実施の形態1)
<全体構成>
図1は、本発明の実施の形態1におけるプロセッサ1、キャッシュメモリ3、メモリ2を含むシステムの概略構成を示すブロック図である。同図のように、本発明のキャッシュメモリ3は、プロセッサ1およびメモリ2を有するシステムに備えられ、リプレースアルゴリズムとしてLRU方式を簡略化した擬似的なLRU方式を用いる。本実施の形態では、擬似的なLRU方式として、キャッシュエントリのアクセス順序を示すデータをキャッシュエントリー毎に1ビットだけで表現し、当該ビットが0のキャッシュエントリーの中からリプレース対象エントリーを1つ選択する方式を採用している。
<キャッシュメモリの構成>
以下では、キャッシュメモリ3の具体例として、4ウェイ・セット・アソシエイティブ方式のキャッシュメモリに上記擬似LRUを適用した場合の構成について説明する。
図2は、キャッシュメモリ3の構成例を示すブロック図である。同図のように、キャッシュメモリ3は、アドレスレジスタ20、デコーダ30、4つのウェイ31a〜31d(以下ウェイ0〜3と略す)、4つの比較器32a〜32d、4つのアンド回路33a〜33d、オア回路34、セレクタ35、セレクタ36、デマルチプレクサ37、制御部38を備える。
アドレスレジスタ20は、メモリ2へのアクセスアドレスを保持するレジスタである。このアクセスアドレスは32ビットであるものとする。同図に示すように、アクセスアドレスは、最上位ビットから順に、21ビットのタグアドレス、4ビットのセットインデックス(図中のSI)、5ビットのワードインデックス(図中のWI)を含む。ここで、タグアドレスはウェイにマッピングされるメモリ中の領域(そのサイズはセット数×ブロックである)を指す。この領域のサイズは、タグアドレスよりも下位のアドレスビット(A10〜A0)で定まるサイズつまり2kバイトであり、1つのウェイのサイズでもある。セットインデックス(SI)はウェイ0〜3に跨る複数セットの1つを指す。このセット数は、セットインデックスが4ビットなので16セットである。タグアドレスおよびセットインデックスで特定されるブロックは、リプレース単位であり、キャッシュメモリに格納されている場合はラインデータ又はラインと呼ばれる。ラインデータのサイズは、セットインデックスよりも下位のアドレスビットで定まるサイズつまり128バイトである。1ワードを4バイトとすると、1ラインデータは32ワードである。ワードインデックス(WI)は、ラインデータを構成する複数ワード中の1ワードを指す。アドレスレジスタ20中の最下位2ビット(A1、A0)は、ワードアクセス時には無視される。
デコーダ30は、セットインデックスの4ビットをデコードし、4つのウェイ0〜3に跨る16セット中の1つを選択する。
4つのウェイ0〜3は、同じ構成を有数する4つのウェイであり、4×2kバイトの容量を有する。ウェイ0は、16個のキャッシュエントリーを有する。
図3に1つのキャッシュエントリーにおける詳細なビット構成を示す。同図のように、1つのキャッシュエントリーは、バリッドフラグV、21ビットのタグ、128バイトのラインデータ、使用フラグUおよびダーティフラグDを保持する。バリッドフラグVは、そのキャッシュエントリーが有効か否かを示す。タグは21ビットのタグアドレスのコピーである。ラインデータは、タグアドレスおよびセットインデックスにより特定されるブロック中の128バイトデータのコピーである。ダーティフラグは、そのキャッシュエントリーに書き込みがあったか否か、つまりキャシュエントリー中にキャッシュされたデータが書き込みによりメモリ中のデータと異なるためメモリに書き戻すことが必要か否かを示す。使用フラグUは、そのキャッシュエントリーにアクセスがあったか否かを示し、ミスヒットによるリプレースに際してセット内の4つのキャッシュエントリーにおけるアクセス順序の代わりに用いられる。より正確には、使用フラグUの1は、アクセスがあったことを、0はないことを意味する。セット内の4つの使用フラグは、全て1になれば、0にリセットされるので、セット内の4つのキャッシュエントリーにおける使用の有無を示す相対的な値である。別言すれば、使用フラグUは、アクセスされた時期が古いか新しいか2つの相対的な状態を示す。つまり、使用フラグUが1のキャッシュエントリーは、使用フラグが0のキャッシュエントリーよりも新しくアクセスされたことを意味する。
ウェイ1〜3についても、ウェイ0と同様である。セットインデックスの4ビットによってデコーダ30を介して選択される4ウェイに跨る4つのキャッシュエントリーは、セットと呼ばれる。
比較器32aは、アドレスレジスタ20中のタグアドレスと、セットインデックスにより選択されたセットに含まれる4つのタグ中のウェイ0のタグとが一致するか否かを比較する。比較器32b〜32cについても、ウェイ31b〜31dに対応すること以外は同様である。
アンド回路33aは、バリッドフラグと比較器32aの比較結果とが一致するか否かを比較する。この比較結果をh0とする。比較結果h0が1である場合は、アドレスレジスタ20中のタグアドレスおよびセットインデックスに対応するラインデータが存在すること、つまりウェイ0においてヒットしたことを意味する。比較結果h0が0である場合は、ミスヒットしたことを意味する。アンド回路33b〜33dについても、ウェイ31b〜31dに対応すること以外は同様である。その比較結果h1〜h3は、ウェイ1〜3でヒットしたかミスしたかを意味する。
オア回路34は、比較結果h0〜h3のオアをとる。このオアの結果をhitとする。hitは、キャッシュメモリにヒットしたか否かを示す。
セレクタ35は、選択されたセットにおけるウェイ0〜3のラインデータのうち、ヒットしたウェイのラインデータを選択する。
セレクタ36は、セレクタ35により選択された32ワードのラインデータのうち、ワードインデックスに示される1ワードを選択する。
デマルチプレクサ37は、キャッシュエントリにデータを書き込む際に、ウェイ0〜3の1つに書き込みデータを出力する。この書き込みデータはワード単位でよい。
制御部38は、キャッシュメモリ3の全体の制御を行う。特に、使用フラグUの更新やリプレースすべきキャッシュエントリーの決定などを行う。
<制御部の構成>
図4は、制御部38の構成を示すブロック図である。同図のように、制御部38は、フラグ更新部39とリプレース部40を備える。
フラグ更新部39は、バリッドフラグV、使用フラグU、ダーティフラグDの更新を行う。このうちバリッドフラグV、ダーティフラグDの更新については周知である。フラグ更新部39は、キャッシュヒット時に使用フラグの更新処理を行う。
図5に、フラグ更新部39による使用フラグの更新例を示す。同図の上段、中段、下段は、ウェイ0〜3に跨るセットNを構成する4つのキャッシュエントリーを示している。4つのキャッシュエントリー右端の1又は0は、それぞれ使用フラグの値である。この4つの使用フラグUをU0〜U3と記す。
同図上段では(U0〜U3)=(1、0、1、0)であるので、ウェイ0、2のキャッシュエントリーはアクセスがあったことを、ウェイ1、3のキャッシュエントリーはアクセスがないことを意味する。
この状態で、メモリアクセスがセットN内のウェイ1のキャッシュエントリーにヒットした場合、同図中段に示すように、(U0〜U3)=(1、1、1、0)に更新される。つまり、実線に示すようにウェイ1の使用フラグU1が0から1に更新される。
さらに、同図中段の状態で、メモリアクセスがセットN内のウェイ3のキャッシュエントリーにヒットした場合、同図下段に示すように、(U0〜U3)=(0、0、0、1)に更新される。つまり、実線に示すようにウェイ3の使用フラグU1が0から1に更新される。加えて、破線に示すようにウェイ3以外の使用フラグU0〜U2が1から0に更新される。これにより、ウェイ3のキャシュエントリーが、ウェイ0〜2の各キャッシュエントリーよりも新しくアクセスされたことを意味することになる。
リプレース部40は、キャッシュミス時に使用フラグに基づいてリプレース対象のキャッシュエントリーを決定してリプレースを行う。例えば、リプレース部40は、図5上段では、ウェイ1とウェイ3の何れかをリプレース対象と決定し、図5中段ではウェイ3をリプレース対象と決定し、図5下段ではウェイ0〜2の何れかをリプレース対象と決定する。
<フラグ更新処理>
図6は、フラグ更新部39におけるフラグ更新処理を示すフローチャートである。同図では、バリッドフラグが0(無効)であるキャッシュエントリーの使用フラグUは0に初期化されているものとする。
同図において、フラグ更新部39は、キャッシュヒットしたとき(ステップS61)、セットインデックスにより選択されたセットにおけるヒットしたウェイの使用フラグUを1にセットし(ステップS62)、そのセット内の他のウェイの使用フラグUを読み出し(ステップS63)、読み出した使用フラグUが全て1であるか否かを判定し(ステップS64)、全て1でなければ終了し、全て1であれば他のウェイの全ての使用フラグUを0にリセットする(ステップS65)。
このようにしてフラグ更新部39は、図5に示した更新例のように、使用フラグを更新することができる。
実際のフラグ更新部39はハードウェアにより構成されるので、以下ハードウェア構成例について説明する。
図7は、フラグ更新部39の入出力論理を示す真理値表を示す図である。同図の入力欄にけるh0〜h3は、図2に示したウェイ0〜ウェイ3におけるヒット信号である。U0_in〜U3_inは、セットインデックスにより選択されたセットから読み出された、ウェイ0〜ウェイ3の使用フラグの値(更新前の値)を示す。同図の出力欄におけるU0_out〜U3_outは、セットインデックスに書き戻される使用フラグの値(更新後の値)を示す。また、図中の○印はヒットしたウェイの使用フラグ(入力および出力)を、□印は他のウェイの使用フラグ(入力)の全てが1の場合と、対応する出力値を示す。図中の*a〜*dは次の式1〜式4をそれぞれ満たすことを意味する。ここで&は論理積を示す。
(U1_in)&(U2_in)&(U3_in)=0 (式1)
(U0_in)&(U2_in)&(U3_in)=0 (式2)
(U0_in)&(U1_in)&(U3_in)=0 (式3)
(U0_in)&(U1_in)&(U2_in)=0 (式4)
同図において、No.1〜No.4の行は、ウェイ0がヒットした場合(h0=1)を示す。この場合、ヒットしたウェイ0の使用フラグU0_inの値が0であっても1であっても、使用フラグU0_outは1となる。また、他のウェイの使用フラグU1_out〜U2_outは、*aの場合には更新されないが、□印のように入力時に全て1である場合には、全て0に更新される。No.5〜8、No.9〜12、No.13〜16についても、ヒットしたウェイが1、2、3である点を除いて同様である。
<回路例>
図8は、図7の入出力論理を有するフラグ更新部39の具体的な回路例を示す図である。同図のフラグ更新部39は、アンド回路80〜83、アンド回路84〜87、オア回路88、オア回路89〜92、セレクタ93〜96を備える。
アンド回路80〜83は、セットインデックスにより選択されたセットから読み出された、ウェイ0〜ウェイ3の使用フラグU0_in〜U3_inのうち、バリッドフラグVが1(有効)であるキャッシュエントリーの使用フラグU0_in〜U3_inの値を出力する。
アンド回路84〜87およびオア回路88は、アンド回路80〜83の出力が図7に示した*a〜*dを満たさない場合、つまり同図中の入力欄の□印のケースを検出する。つまり、ヒットしたウェイの他のウェイの使用フラグU_inが全て1である場合を検出する。
オア回路89〜92は、それぞれヒット信号h0〜h3と使用フラグU0_in〜U3_inとのオアをとる。
セレクタ93〜96は、上記□印のケースが検出された場合には1側(上側)入力を選択し、上記□印のケースが検出されない場合には0側(下側)入力を選択し、選択結果をU0_out〜U1_outとして出力する。具体的には、上記□印のケースが検出された場合には、セレクタ93〜96の1側(上側)にh0〜h3が入力されていることから、ヒットしたウェイの使用フラグU_outが1になり、他のウェイの使用フラグは0となる。上記□印のケースが検出されない場合には、セレクタ93〜96の0側のそれぞれにh信号と使用フラグU_inのオアが入力されていることから、ヒットしたウェイの使用フラグU_outが1になり、他のウェイの使用フラグは元のままとなる。
このような回路により図7の真理値表をハードウェア化することができる。個々のウェイのアクセス順序を示す必要がなく、各ウェイに1ビットの使用フラグを更新するだけでよいので、ハードウェア規模を削減することができる。
<リプレース処理>
図9は、リプレース部40におけるリプレース処理を示すフローチャートである。 同図においてリプレース部40は、メモリアクセスがミスしたとき(ステップS91)、セットインデックスにより選択されたセットにおける、4つウェイの使用フラグUを読み出し(ステップS92)、使用フラグUが0のウェイを1つ選択する(ステップS93)。このとき、使用フラグUが0になっているウェイが複数存在する場合は、リプレース部40はランダムに1つを選択する。さらに、リプレース部40は、当該セットにおける選択されたウェイのキャッシュエントリーを対象にリプレースし(ステップS94)、リプレース後に当該キャッシュエントリーの使用フラグUを1に初期化する(ステップS95)。なお、このときバリッドフラグV、ダーティフラグDは、それぞれ1、0に初期化される。
なお、図9では、4つバリッドフラグVが全部1(有効)であることを前提としているが、V=0(無効)のキャッシュエントリーが存在する場合には当該キャッシュエントリーを選択する。
このように、リプレース対象は、使用フラグが0のキャッシュエントリーを1つ選択することにより決定される。このリプレースアルゴリズムは、従来のLRU方式におけるアクセス順序を示すデータの代わりに1ビットの使用フラグを用いるので、擬似的なLRU方式ということができる。
以上説明してきたように、本実施の形態におけるキャッシュメモリによれば、従来のLRU方式におけるアクセス順序を示すデータをキャッシュエントリー毎に設ける代わりに、1ビットの使用フラグをキャッシュエントリー毎に設けている。これにより、従来のアクセス順序データを更新する複雑な回路を、使用フラグを更新する簡単なフラグ更新回路(フラグ更新部39)に置き換えることができる。また、リプレース部40において、リプレース対象を、使用フラグが0のキャッシュエントリーの1つを選択することにより簡単に決定することができる。このように、本実施の形態におけるキャッシュメモリによれば、ハードウェア規模を大きく低減することができる。しかも、従来のLRUと比較してもほぼ同等のヒット率を得ることができる。
<変形例>
なお、本発明のキャッシュメモリは、上記の実施形態の構成に限るものではなく、種々の変形が可能である。以下、変形例のいくつかについて説明する。
(1)フラグ更新部39は、図5の下段に示したようにセット内の他のウェイの使用フラグU0〜U3が全部1であれば0にし、ヒットしたウェイ自身の使用フラグを1に更新するが、この代わりに、ヒットしたウェイ自身の使用フラグも0に更新する構成としてもよい。図10に、この場合のフラグの更新例を示す。図10は、図5と比較して、下段のウェイ3が1ではなく0になっている点が異なっている。
図11は、この変形例におけるフラグ更新処理を示すフローチャートである。同図は、図6と比べて、ステップS65の代わりにステップS65aを有している点が異なっている。同じ点は説明を省略して、異なる点のみ説明する。ステップS65aでは、フラグ更新部39は、セット内の全ての使用フラグU0〜U3を0にリセットする。
このように、図11のフラグ更新処理によれば、セット内の全ての使用フラグU0〜U3が1になろうとするとき、0にリセットする。図11によっても、図5と同様のヒット率を得ることができる。
(2)図9に示したステップS93において、リプレース部40は、セット内に使用フラグが0のキャッシュエントリーが複数存在する場合には、ランダムに1つを選択しているが、この代わりに、規則的に選択してもよい。例えば、リプレース部40は、その場合に、ウェイの番号の小さい方(大きい方)を選択したり、ラウンドロビン式に選択してもよい。
図12Aに、ラウンドロビン式に選択する処理を示す。同図においてリプレース部40は、セット内に使用フラグが0のキャッシュエントリーが複数存在する場合に、前回リプレースしたウェイの番号を判別し(ステップS121)、使用フラグが0のキャッシュエントリーのうち、判別した番号よりも大きい番号のウェイのキャシュエントリーを選択する(ステップS122)。ここで、前回リプレースした番号は、例えば、キャッシュメモリ全体でリプレースしたウェイの番号を保持するレジスタを設けておき、当該レジスタを参照することにより判別すればよい。このレジスタは、ウェイの番号を保持する代わりに、リプレースしたウェイをビット位置で示すようにしてもよい。この場合のレジスタの一例を図12Bに示す。同図ではレジスタ中の4ビットのフィールドが遷移する様子を示している。この4ビットのビット位置はウェイ0〜ウェイ3に対応する。4ビット中の”1”のビットは前回リプレースされたウェイを示す。ステップS122では、リプレース部40は、かつセット内の使用フラグが0のキャッシュエントリーの中から、”1”のビットかた右に回転する方向の直近のビットを判別し、そのビット位置に対応するウェイのキャッシュエントリー選択する。同図の例では、ウェイ0、1、3、0、2の順にキャッシュエントリーが選択されている。
なお、図12Bでは、全セットで共通のレジスタを示しているが、セット毎の個別にレジスタを備えることも可能である。
(3)上記実施の形態では、4ウェイ・セット・アソシエイティブのキャッシュメモリを例に説明したが、ウェイ数は、8ウェイでも16ウェイでもよい。また、上記実施の形態では、セット数が16である例を説明したが、セット数はいくつでもよい。
(4)上記実施の形態では、セット・アソシエイティブのキャッシュメモリを例に説明したが、フル・アソシエイティブ方式のキャッシュメモリであってもよい。
(5)使用フラグUは1ビットでなくても2ビットとしてもよい。例えば、2ビットとした場合でも個々のキャッシュエントリーのアクセス順序を完全に示す必要はなく、少なくとも古いか新しいかの2状態を相対的に判別できればよく、2ビットで表現できる3番目の状態および4番目の状態をどのように定義してもよい。
(6)図9に示したステップS95において、リプレース直後の使用フラグUは1に初期化されるが、この代わりに0に初期化してもよい。ただし、使用フラグの初期値を0にした場合は、リプレース後に発生したキャッシュミスにより再度リプレースされてしまう可能性がある。この点では、初期値は1とする方が望ましいと考えられる。
(実施の形態2)
図13は、本発明の実施の形態2におけるキャッシュメモリの構成を示すブロック図である。同図のキャッシュメモリは、図2の構成と比較して、ウェイ31a〜31dの代わりにウェイ131a〜131dを備える点と、制御部38の代わりに制御部138を備える点とが異なっている。以下、同じ点は説明を省略して、異なる点を中心に説明する。
ウェイ131aは、ウェイ31aと比べて、各キャッシュエントリー中にニューフラグが追加されている点が異なる。
図14に、ウェイ131a内の1つのキャッシュエントリーのビット構成を示す。同図のように、ニューフラグNが追加されている点のみ異なっている。ニューフラグNは、リプレース直後(又はフィル直後)に初期値として1が設定され、当該キャッシュエントリーへのアクセスがあったときに0にリセットされる。つまり、ニューフラグNの1は、当該キャッシュエントリーがリプレース(又はフィル)されてから一度もアクセスされていない、新しい状態であることを意味する。
制御部138は、図15に示すように、制御部138は、フラグ更新部139とリプレース部140とを備え、制御部38と比べて、ニューフラグNの設定および更新する点と、リプレース時にニューフラグが1のキャッシュエントリーをリプレース対象から除外する点とが異なっている。
<リプレース処理>
図16は、リプレース部140におけるリプレース処理を示すフローチャートである。同図は、図9と比較して、ステップS92の代わりにステップS92aを有する点と、ステップ92aと93の間にステップS161およびS162が追加された点と、ステップS95の代わりにステップS95aを有する点とが異なっている。
ステップS92aにおいてリプレース部140は、セットインデックスにより選択されたセットにおける、4つウェイの使用フラグU0〜U3に加えて4つのニューフラグ(N0〜N3とする)を読み出す。
さらに、リプレース部140は、読み出した4つのニューフラグN0〜N3の全てが1であるか否かを判定し(ステップS161)、全てが1である場合は、ステップS93に進み、全てが1ではない(0がある)場合には、使用フラグUが0のウェイのうち、ニューフラグNが1のウェイを除外する(ステップS162)。
さらに、ステップS93において、リプレース部140は、使用フラグが0でかつニューフラグが0のウェイの中からリプレース対象を1つ選択することになる。ただし、4つのニューフラグの全てが1である場合には、使用フラグUが0のウェイの中からリプレース対象を1つ選択し、4つの使用フラグUの全てが1である場合には、ニューフラグNを無視して使用フラグUが1のウェイの中からリプレース対象を1つ選択し、使用フラグU=0かつニューフラグN=0のウェイが存在しない場合には、ニューフラグNを無視して使用フラグU=0のウェイの中からプレース対象を1つ選択する。
また、ステップS95aにおいて、リプレース部140は、他のフラグの初期化と共に、ニューフラグNを1に初期化する。
<フラグ更新処理>
図17は、フラグ更新部139におけるフラグ更新処理を示すフローチャートである。同図は、図6と比較して、ステップS62とS63の間にステップS171が追加された点が異なる。
ステップS171においてフラグ更新部139は、選択されたセット内のヒットしたウェイのキャッシュエントリーのニューフラグが1なら0にリセットする。これにより、一度アクセスされたキャッシュエントリーは、ニューフラグNを0にリセットされる。
以上説明してきたように、本実施の形態におけるリプレース部140は、ニューフラグが1の場合は、当該キャッシュエントリーをリプレース対象から除外している。これは、次の理由による。すなわち、使用フラグUは初期値が1であるが他のウェイの使用フラグが順次1になれば、0にリセットされる。つまり、使用フラグUが0のキャッシュエントリーであっても一度もアクセスされていない場合がある。こうして使用フラグが0になった場合、リプレース後に一度もアクセスされていないキャッシュエントリーが、キャッシュミスの発生により再度リプレース対象に選択されてしまう可能性がある。そのため、ニューフラグNを設けることにより、リプレースされた後に一度もアクセスされていないキャッシュエントリーがリプレースされてしまうことを防止することができる。
<変形例>
(1)実施の形態1における変形例(1)〜(5)を本実施の形態に適用してもよい。
(2)図16に示したステップS95aにおいて、リプレース直後の使用フラグUは1に初期化されるが、この代わりに0に初期化してもよい。実施の形態1と異なり本実施の形態ではニューフラグNが設けられたので、使用フラグの初期値が1の場合でも0の場合でも、リプレース後に発生したキャッシュミスにより一度もアクセスされないまま再度リプレースされてしまうことを防止することができる。
(3)上記各実施形態におけるキャッシュメモリは、プロセッサと共にチップに内蔵されるオンチップキャッシュ、オフチップキャッシュ、命令キャッシュ、データキャッシュの何れに適用してもよい。
本発明は、メモリアクセスを高速化するためのキャッシュメモリおよびその制御方法に適しており、例えば、オンチップキャッシュメモリ、オフチップキャッシュメモリ、データキャッシュメモリ、命令キャッシュメモリ等に適している。
図1は、本発明の実施の形態1におけるプロセッサ、キャッシュメモリ、メモリを含む概略構成を示すブロック図である。 図2は、キャッシュメモリの構成を示すブロック図である。 図3は、キャッシュエントリのビット構成を示す説明図である。 図4は、制御部の構成を示すブロック図である。 図5は、フラグの更新例を示す説明図である。 図6は、フラグ更新処理フローを示す図である。 図7は、フラグ管理部の入出力論理を示す真理値表を示す図である。 図8は、フラグ管理部の回路例を示す図である。 図9は、リプレース処理フローを示す図である。 図10は、変形例におけるフラグの更新例を示す説明図である。 図11は、変形例におけるフラグ更新処理フローを示す図である。 図12Aは、変形例における選択処理の他の例を示す図である。 図12Bは、変形例における選択処理の他の例を示す図である。 図13は、本発明ン実施の形態2におけるキャッシュメモリの構成を示すブロック図である。 図14は、キャッシュエントリのビット構成を示す説明図である。 図15は、制御部の構成を示すブロック図である。 図16は、リプレース処理フローを示す図である。 図17は、フラグ更新処理フローを示す図である。

Claims (9)

  1. キャッシュの単位となるデータを保持するキャッシュエントリー毎に、アクセスの有無を示す1ビットのアクセス情報を記憶する記憶手段と、
    アクセス無しを示すアクセス情報に対応するキャッシュエントリーの中からリプレース対象のキャッシュエントリーを選択する選択手段と
    キャッシュエントリーにヒットしたとき当該キャッシュエントリーに対応するアクセス情報をアクセス有りに更新し、その際に他の全てのキャッシュエントリーに対応するアクセス情報がアクセス有りを示す場合には、他の全てのキャッシュエントリーに対応するアクセス情報をアクセス無しにリセットする更新手段を備え、
    前記更新手段は、さらに、前記リセットに際して前記ヒットしたキャッシュエントリーに対応するアクセス情報をアクセス無しにリセットし、
    前記記憶手段は、さらに、キャッシュエントリー毎に、メモリからキャッシュエントリーにデータが格納された直後の新しい状態であるか否かを示すニュー情報を記憶し、
    前記更新手段は、さらに、キャッシュエントリーにヒットしたとき当該キャッシュエントリーに対応するニュー情報を新しい状態でないことを示すようリセットし、
    前記選択手段は、アクセス無しを示すアクセス情報に対応するキャッシュエントリーの中から、新しい状態でないことを示すニュー情報に対応するキャッシュエントリーを優先して、リプレース対象のキャッシュエントリーを選択する
    ことを特徴とするキャッシュメモリ。
  2. 前記選択手段は、アクセス無しを示すアクセス情報に対応し、かつ新しい状態でないことを示すニュー情報に対応するキャッシュエントリーが存在しない場合には、ニュー情報を無視して、リプレース対象のキャッシュエントリーを選択する
    ことを特徴とする請求項記載のキャッシュメモリ。
  3. 前記選択手段は、アクセス有りを示すアクセス情報に対応し、または新しい状態であることを示すニュー情報に対応するキャッシュエントリーのみが存在する場合には、ニュー情報を無視して、リプレース対象のキャッシュエントリーを選択する
    ことを特徴とする請求項記載のキャッシュメモリ。
  4. セット・アソシエイティブ方式のキャッシュメモリであって、
    キャッシュの単位となるデータを保持するキャッシュエントリー毎に、アクセスの有無を示す1ビットのアクセス情報を記憶する記憶手段と、
    アクセス無しを示すアクセス情報に対応するキャッシュエントリーの中からリプレース対象のキャッシュエントリーを選択する選択手段と、
    キャッシュエントリーにヒットしたとき当該キャッシュエントリーに対応するアクセス情報をアクセス有りに更新し、その際に当該キャッシュエントリーと同一のセット内における他の全てのキャッシュエントリーに対応するアクセス情報がアクセス有りを示す場合には、前記同一のセット内における他の全てのキャッシュエントリーに対応するアクセス情報をアクセス無しにリセットする更新手段とを備え、
    前記更新手段は、さらに、前記リセットに際してキャッシュヒットしたキャッシュエントリーに対応するアクセス情報をアクセス無しにリセットし、
    前記記憶手段は、さらに、キャッシュエントリー毎に、キャッシュエントリーにデータが格納された直後の新しい状態であるか否かを示すニュー情報を記憶し、
    前記更新手段は、さらに、キャッシュエントリーにヒットしたとき当該キャッシュエントリーに対応するニュー情報を新しい状態でないことを示すようリセットし、
    前記選択手段は、アクセス無しを示すアクセス情報に対応し、かつ新しい状態でないことを示すニュー情報に対応する前記同一セット内のキャッシュエントリーの中から、リプレース対象のキャッシュエントリーを選択する
    ことを特徴とするキャッシュメモリ。
  5. 前記選択手段は、アクセス無しを示すアクセス情報に対応し、かつ新しい状態でないことを示すニュー情報に対応するキャッシュエントリーが存在しない場合には、ニュー情報を無視して、リプレース対象のキャッシュエントリーを選択する
    ことを特徴とする請求項記載のキャッシュメモリ。
  6. 前記選択手段は、アクセス有りを示すアクセス情報に対応し、または新しい状態であることを示すニュー情報に対応するキャッシュエントリーのみが存在する場合には、ニュー情報を無視して、リプレース対象のキャッシュエントリーを選択する
    ことを特徴とする請求項記載のキャッシュメモリ。
  7. キャッシュの単位となるデータを保持するキャッシュエントリー毎に、アクセスの有無を示す1ビットのアクセス情報を記憶する記憶手段と、
    アクセス無しを示すアクセス情報に対応するキャッシュエントリーの中からリプレース対象のキャッシュエントリーを選択する選択手段と、
    キャッシュエントリーにヒットしたことを検出する手段と、
    ヒットしたことが検出されたキャッシュエントリーに対応するアクセス情報をアクセス有りに更新する第1更新手段と
    ヒットしたことが検出されたキャッシュエントリー以外の他の全てのキャッシュエントリーに対応するアクセス情報がアクセス有りを示すか否かを判定する判定手段と、
    判定手段の判定結果が肯定である場合に、他の全てのキャッシュエントリーに対応するアクセス情報をアクセス無しを示すように更新する第2更新手段とを備え、
    前記記憶手段は、さらに、キャッシュエントリー毎に、メモリからキャッシュエントリーにデータが格納された直後の新しい状態であるか否かを示すニュー情報を記憶し、
    前記第1更新手段は、さらに、ヒットしたことが検出されたキャッシュエントリーに対応するニュー情報を新しい状態でないことを示すようリセットし、
    前記選択手段は、アクセス無しを示すアクセス情報に対応するキャッシュエントリーの中から、新しい状態でないことを示すニュー情報に対応するキャッシュエントリーを優先して、リプレース対象のキャッシュエントリーを選択する
    ことを特徴とするキャッシュメモリ。
  8. セット・アソシエイティブ方式のキャッシュメモリであって、
    キャッシュの単位となるデータを保持するキャッシュエントリー毎に、アクセスの有無を示す1ビットのアクセス情報を記憶する記憶手段と、
    アクセス無しを示すアクセス情報に対応するキャッシュエントリーの中からリプレース対象のキャッシュエントリーを選択する選択手段と、
    キャッシュエントリーにヒットしたことを検出する手段と、
    ヒットしたことが検出されたキャッシュエントリーに対応するアクセス情報をアクセス有りに更新する第1更新手段と、
    ヒットしたことが検出されたキャッシュエントリーと同一のセット内における他の全てのキャッシュエントリーに対応するアクセス情報がアクセス有りを示すか否かを判定する判定手段と、
    判定手段の判定結果が肯定である場合に、他の全てのキャッシュエントリーに対応するアクセス情報をアクセス無しを示すように更新する第2更新手段とを備え、
    前記記憶手段は、さらに、キャッシュエントリー毎に、キャッシュエントリーにデータが格納された直後の新しい状態であるか否かを示すニュー情報を記憶し、
    前記第1更新手段は、さらに、ヒットしたことが検出されたキャッシュエントリーに対応するニュー情報を新しい状態でないことを示すようリセットし、
    前記選択手段は、前記同一のセット内においてアクセス無しを示すアクセス情報に対応するキャッシュエントリーの中から、新しい状態でないことを示すニュー情報に対応するキャッシュエントリーを優先して、リプレース対象のキャッシュエントリーを選択する
    ことを特徴とするキャッシュメモリ。
  9. キャッシュメモリのキャッシュエントリー毎に、アクセスの有無を示すアクセス情報を記憶する記憶部を有するキャッシュメモリの制御方法であって、
    キャッシュヒットおよびミスを検出する検出ステップと、
    ヒットしたことが検出されたキャッシュエントリーに対応する1ビットのアクセス情報をアクセス有りに更新する第1更新ステップと、
    ヒットしたことが検出されたキャッシュエントリー以外の他の全てのキャッシュエントリーに対応するアクセス情報がアクセス有りを示すか否かを判定する判定ステップと、
    判定ステップの判定結果が肯定である場合に、他の全てのキャッシュエントリーに対応するアクセス情報をアクセス無しを示すように更新する第2更新ステップと、
    ミスしたことが検出されたとき、アクセス無しを示すアクセス情報に対応するキャッシュエントリーの中からリプレース対象のキャッシュエントリーを選択する選択ステップと
    を有し、
    前記記憶部は、さらに、キャッシュエントリー毎に、メモリからキャッシュエントリーにデータが格納された直後の新しい状態であるか否かを示すニュー情報を記憶し、
    前記第1更新ステップにおいて、さらに、キャッシュエントリーにヒットしたとき当該キャッシュエントリーに対応するニュー情報を新しい状態でないことを示すようリセットし、
    前記選択ステップにおいて、アクセス無しを示すアクセス情報に対応するキャッシュエントリーの中から、新しい状態でないことを示すニュー情報に対応するキャッシュエントリーを優先して、リプレース対象のキャッシュエントリーを選択する
    ことを特徴とする制御方法。
JP2005514011A 2003-09-19 2004-08-23 キャッシュメモリおよびキャッシュメモリ制御方法 Expired - Fee Related JP4009304B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2003327032 2003-09-19
JP2003327032 2003-09-19
PCT/JP2004/012421 WO2005029336A1 (ja) 2003-09-19 2004-08-23 キャッシュメモリおよびキャッシュメモリ制御方法

Publications (2)

Publication Number Publication Date
JPWO2005029336A1 JPWO2005029336A1 (ja) 2006-11-30
JP4009304B2 true JP4009304B2 (ja) 2007-11-14

Family

ID=34372854

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005514011A Expired - Fee Related JP4009304B2 (ja) 2003-09-19 2004-08-23 キャッシュメモリおよびキャッシュメモリ制御方法

Country Status (7)

Country Link
US (1) US20070028055A1 (ja)
EP (1) EP1667028A4 (ja)
JP (1) JP4009304B2 (ja)
KR (1) KR20060063804A (ja)
CN (1) CN100429632C (ja)
TW (1) TW200525356A (ja)
WO (1) WO2005029336A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7951913B2 (en) 2006-06-02 2011-05-31 Biotika A.S. Method of polymyxin B recovery from fermentation broth
US8119371B2 (en) 2006-06-15 2012-02-21 Biotika A.S. Process for the preparation of polymyxin B employing (PAENI) Bacillus polymyxa

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4090497B2 (ja) 2005-04-08 2008-05-28 松下電器産業株式会社 キャッシュメモリシステム及びその制御方法
KR100772196B1 (ko) * 2005-12-06 2007-11-01 한국전자통신연구원 Pci 메모리를 이용한 무복사 캐싱 방법 및 그 장치
US7516275B2 (en) * 2006-04-25 2009-04-07 International Business Machines Corporation Pseudo-LRU virtual counter for a locking cache
US20080292560A1 (en) * 2007-01-12 2008-11-27 Dov Tamarkin Silicone in glycol pharmaceutical and cosmetic compositions with accommodating agent
US7861041B2 (en) * 2007-09-04 2010-12-28 Advanced Micro Devices, Inc. Second chance replacement mechanism for a highly associative cache memory of a processor
US8214602B2 (en) * 2008-06-23 2012-07-03 Advanced Micro Devices, Inc. Efficient load queue snooping
TW201015319A (en) * 2008-09-17 2010-04-16 Panasonic Corp Cache memory, memory system, data copying method and data rewriting method
TW201017421A (en) * 2008-09-24 2010-05-01 Panasonic Corp Cache memory, memory system and control method therefor
JP6340874B2 (ja) * 2014-03-31 2018-06-13 ブラザー工業株式会社 非吐出ノズル検出装置
CN107992433A (zh) * 2017-12-19 2018-05-04 北京云知声信息技术有限公司 二级缓存检测方法及装置
US10783083B2 (en) * 2018-02-12 2020-09-22 Stmicroelectronics (Beijing) Research & Development Co. Ltd Cache management device, system and method

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4195343A (en) * 1977-12-22 1980-03-25 Honeywell Information Systems Inc. Round robin replacement for a cache store
JPS55157181A (en) * 1979-05-25 1980-12-06 Nec Corp Buffer memory control system
FR2645986B1 (fr) * 1989-04-13 1994-06-17 Bull Sa Procede pour accelerer les acces memoire d'un systeme informatique et systeme pour la mise en oeuvre du procede
JPH04288647A (ja) * 1991-02-27 1992-10-13 Mitsubishi Electric Corp キャッシュメモリにおける置き換え制御装置
US5497477A (en) * 1991-07-08 1996-03-05 Trull; Jeffrey E. System and method for replacing a data entry in a cache memory
US5353425A (en) * 1992-04-29 1994-10-04 Sun Microsystems, Inc. Methods and apparatus for implementing a pseudo-LRU cache memory replacement scheme with a locking feature
JP3309425B2 (ja) * 1992-05-22 2002-07-29 松下電器産業株式会社 キャッシュ制御装置
JPH06348595A (ja) * 1993-06-07 1994-12-22 Hitachi Ltd キャッシュ装置
US5802568A (en) * 1996-06-06 1998-09-01 Sun Microsystems, Inc. Simplified least-recently-used entry replacement in associative cache memories and translation lookaside buffers
US5809528A (en) * 1996-12-24 1998-09-15 International Business Machines Corporation Method and circuit for a least recently used replacement mechanism and invalidated address handling in a fully associative many-way cache memory
US6032228A (en) * 1997-11-26 2000-02-29 International Business Machines Corporation Flexible cache-coherency mechanism
US6393525B1 (en) * 1999-05-18 2002-05-21 Intel Corporation Least recently used replacement method with protection
US6282617B1 (en) * 1999-10-01 2001-08-28 Sun Microsystems, Inc. Multiple variable cache replacement policy
US20030105929A1 (en) * 2000-04-28 2003-06-05 Ebner Sharon M. Cache status data structure
JP3661614B2 (ja) * 2001-07-12 2005-06-15 日本電気株式会社 キャッシュメモリ制御方法及びマルチプロセッサシステム
JP2003131946A (ja) * 2001-10-19 2003-05-09 Nec Corp キャッシュメモリ制御装置及び方法
US20030084253A1 (en) * 2001-10-31 2003-05-01 Johnson David J.C. Identification of stale entries in a computer cache
US6996678B1 (en) * 2002-07-31 2006-02-07 Cisco Technology, Inc. Method and apparatus for randomized cache entry replacement

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7951913B2 (en) 2006-06-02 2011-05-31 Biotika A.S. Method of polymyxin B recovery from fermentation broth
US8119371B2 (en) 2006-06-15 2012-02-21 Biotika A.S. Process for the preparation of polymyxin B employing (PAENI) Bacillus polymyxa

Also Published As

Publication number Publication date
WO2005029336A1 (ja) 2005-03-31
CN100429632C (zh) 2008-10-29
CN1853171A (zh) 2006-10-25
EP1667028A4 (en) 2008-10-29
TW200525356A (en) 2005-08-01
JPWO2005029336A1 (ja) 2006-11-30
EP1667028A1 (en) 2006-06-07
US20070028055A1 (en) 2007-02-01
KR20060063804A (ko) 2006-06-12

Similar Documents

Publication Publication Date Title
JP4098347B2 (ja) キャッシュメモリおよびその制御方法
US6282617B1 (en) Multiple variable cache replacement policy
US7783836B2 (en) System and method for cache management
US7805574B2 (en) Method and cache system with soft I-MRU member protection scheme during make MRU allocation
US7577793B2 (en) Patrol snooping for higher level cache eviction candidate identification
US7321954B2 (en) Method for software controllable dynamically lockable cache line replacement system
US20100281218A1 (en) Intelligent cache replacement mechanism with varying and adaptive temporal residency requirements
JP2005528695A (ja) キャッシュ置換ポリシーの簡略化した実施態様を用いたマルチスレッド化キャッシュのための方法および装置
JP2005528694A (ja) スレッド識別子に基づくキャッシュ追い出しを用いたマルチスレッド化キャッシュのための方法および装置
JP4009304B2 (ja) キャッシュメモリおよびキャッシュメモリ制御方法
US9348753B2 (en) Controlling prefetch aggressiveness based on thrash events
US8589630B2 (en) Methods and apparatus for handling a cache miss
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
US5829051A (en) Apparatus and method for intelligent multiple-probe cache allocation
CN109074313B (zh) 缓存和方法
KR100395768B1 (ko) 멀티 레벨 캐쉬 시스템
US7555610B2 (en) Cache memory and control method thereof
EP0942376A1 (en) Method and system for pre-fetch cache interrogation using snoop port
US20110179227A1 (en) Cache memory and method for cache entry replacement based on modified access order
JP2014186579A (ja) キャッシュメモリ、キャッシュメモリ制御装置、および、そのキャッシュメモリ制御方法
KR19990068873A (ko) 캐쉬 메모리
JP2010191754A (ja) キャッシュ記憶装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070522

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070718

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070719

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070831

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

Free format text: PAYMENT UNTIL: 20100907

Year of fee payment: 3

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120907

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees