JP2011008315A - キャッシュ制御方法 - Google Patents

キャッシュ制御方法 Download PDF

Info

Publication number
JP2011008315A
JP2011008315A JP2009148309A JP2009148309A JP2011008315A JP 2011008315 A JP2011008315 A JP 2011008315A JP 2009148309 A JP2009148309 A JP 2009148309A JP 2009148309 A JP2009148309 A JP 2009148309A JP 2011008315 A JP2011008315 A JP 2011008315A
Authority
JP
Japan
Prior art keywords
transaction
cache
value
flag value
candidate
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.)
Granted
Application number
JP2009148309A
Other languages
English (en)
Other versions
JP4768054B2 (ja
Inventor
Morimiki Obara
盛幹 小原
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2009148309A priority Critical patent/JP4768054B2/ja
Priority to US12/814,532 priority patent/US8484423B2/en
Publication of JP2011008315A publication Critical patent/JP2011008315A/ja
Application granted granted Critical
Publication of JP4768054B2 publication Critical patent/JP4768054B2/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
    • 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

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)

Abstract

【課題】 キャッシュ制御方法を提供することである。
【解決手段】上記課題を解決するために第1の態様として、
キャッシュを制御する方法であって、
アプリケーションがトランザクションを処理中に生成されるメモリ・オブジェクトについて、トランザクションに対応した値を割り当てるステップと、
前記メモリ・オブジェクトがキャッシュに記憶されることに応じて、前記割り当てた値をキャッシュ・アレイのフラグ領域にトランザクション・フラグ値として付加するステップと、
前記トランザクション終了時に、対応するトランザクション・フラグ値を掃き出し候補として登録するステップと、
キャッシュの掃き出し時、前記掃き出し候補として登録されたトランザクション・フラグ値を有するキャッシュ・ラインを優先的に掃き出すステップと、
を含む、方法を提供する。
【選択図】図3

Description

本発明は、キャッシュ制御に関し、特にアプリケーションと連動したキャッシュ制御に関する。
キャッシュメモリにはメイン・メモリ内に格納されている命令コードのうち、頻繁に実行されている命令コードの一部が格納されるため、動作の遅いメイン・メモリヘのアクセス回数を減らすことができ、処理の高速化が期待できる。
しかしながら従来のキャッシュはアプリケーションの動作に合わせた制御がなされていなかった。近年、プロセッサ周波数の向上や高い性能要求を満たすため、プロセッサのキャッシュメモリを有効に使用することの必要性が高まっている。特にウェブ・アプリケーションなどの商用アプリケーション・サーバのリクエスト処理などで多く生成されるメモリ・オブジェクトは、特定のリクエスト処理内でのみ使用され、処理が終わると使われなくなることが多い。このようなメモリアクセスパターンの場合、通常のLRUアルゴリズム(最近、最も使われていないデータをメモリに退避させる)を使うと、トランザクション処理の終了時に不要なデータがキャッシュに残ることになり、キャッシュメモリを有効に使用することができない。
従来技術としてソフトウェアからの制御を積極的に受け入れて処理するキャシュメモリシステム(特許文献1)が知られている。この方法ではプロセッサが予め定められた命令を実行することに応じて属性制御手段がキャッシュメモリに既定の動作を行わせている。しかしこの方法ではアプリケーションの動作態様に基づくキャッシュ制御が行われていないので、メモリ・オブジェクトが生成、消滅を繰り返すようなアプリケーション・サーバにおいて効率的に対応するキャッシュ制御が行えない。
また、コンパイラがキャッシュ・ライン単位でメモリの再利用間隔(Reuse Distance)を推定する方法(非特許文献1)がある。再利用間隔が長いアクセスの最初のアクセス(Last Use)においてCPUは、その再利用間隔の情報をキャッシュ・ラインのタグビットに書き込む。このためコンパイラはメモリアクセスを行う命令として、タグ値を書き込む特殊な Load/Store 命令を生成しておく。キャッシュからラインを掃き出す必要がある時、キャッシュはこのタグ値を使い、再利用間隔の長いものを優先的に掃き出し候補として選択する。これにより再利用前に追い出されるはずのラインを積極的に追い出し、それ以外のラインをキャッシュがなるべく保持できるようになる。この方法はコンパイラによる再利用間隔の推定に依存している。ところが現在の商用サーバは一般的に複数のタスクを並列処理し、実行時に同時に処理されるタスクの組み合わせで再利用間隔が大きく変化しているのでコンパイラによる推定は非常に困難である。その他の従来技術としてインテル・プロセッサなどで実装されているプリフェッチ命令(非特許文献2)がある。この命令を使ってプリフェッチを行うと、キャッシュ内の対応するラインにフラグが立つ。このフラグが立っていると、そのラインが掃き出されるとき下位層のキャッシュに格納されないので下位層のキャッシュの汚染を防ぐことができる。ところがこの方法は、ライフタイムの短いデータをキャッシュする場合、そのデータがキャッシュサイズを超えると主記憶からのミスフェッチが多くなる。従って、上記非特許文献は何れもアプリケーションの動作態様に基づくキャッシュ制御がなされていないのでウェブ・アプリケーションサーバ等の商用サーバのパフォーマンス向上は限定的である。
WO2006/112111 Zhenlin Wang , Kathryn S. McKinley , Arnold L. Rosenberg , Charles C. Weems, "Using the Compiler to Improve Cache ReplacementDecisions," Proceedings of the 2002 International Conference on ParallelArchitectures and Compilation Techniques, p.199, September 22-25, 2002. Sailesh Kottapalli, "METHOD AND APPARATUS FORHANDLING NON-TEMPORAL MEMORY ACCESSES IN A CACHE," Patent ApplicationPublication, US 2006/0101208 A1, May 11, 2006.
本発明は上記問題点を解決すべく、新しいキャッシュ制御方法および装置を提供し、アプリケーションの動作特徴を反映したキャッシ制御を行い、引いてはアプリケーション・サーバの動作のパフォーマンスを向上させることを目的とする。
上記の目的を達成するため、本発明のキャッシュを制御する方法は、アプリケーションがトランザクションを処理中に生成されるメモリ・オブジェクトについて、トランザクションに対応した値を割り当てるステップと、前記メモリ・オブジェクトがキャッシュに記憶されることに応じて、前記割り当てた値をキャッシュ・アレイのフラグ領域にトランザクション・フラグ値として付加するステップと、前記トランザクション終了時に、対応するトランザクション・フラグ値を掃き出し候補として登録するステップと、キャッシュの掃き出し時、前記掃き出し候補として登録されたトランザクション・フラグ値を有するキャッシュ・ラインを優先的に掃き出すステップとを含む。
また、前記キャッシュが、さらに、トランザクション・フラグ値が取り得る値の個数を、その長さとする1つのビットベクタを有し、前記掃き出し候補として登録するステップが、前記トランザクション・フラグ値に対応する前記ビットベクタ内の位置のビットを1にセットするステップとする。
また、前記キャッシュが、さらに、前記ビットベクタの各ビットに対応するカウンタを有し、前記カウンタは前記キャッシュ・アレイの有効なライン数を表すようにする。
また、トランザクション・フラグ値を新しいトランザクションに割り当てに際し割り当てる値がないときのために、前記トランザクションは、クライアントからの HTTP リクエストに応じて生じ、トランザクションに対応した値を割り当てるステップが、前記アプリケーションは、前記 HTTP リクエストのURIとそのメソッドが同じ組み合わせのトランザクションについて同じ値を割り当てるステップをとする。
別の態様として、本発明のキャッシュ制御装置は、アプリケーションがトランザクションを処理中に生成されるメモリ・オブジェクトについて、前記トランザクションに対応した値を割り当てる手段と、前記メモリ・オブジェクトがキャッシュに記憶されることに応じて、前記割り当てた値をキャッシュ・アレイのフラグ領域にトランザクション・フラグ値として付加する手段と、前記トランザクション終了時に、対応するトランザクション・フラグ値を掃き出し候補として登録する手段と、キャッシュの掃き出し時、前記掃き出し候補として登録されたトランザクション・フラグ値を有するキャッシュ・ラインを優先的に掃き出す手段を含む。
また、前記キャッシュが、さらに、トランザクション・フラグ値が取り得る値の個数を、その長さとする1つのビットベクタを有し、前記掃き出し候補として登録する手段が、前記トランザクション・フラグ値に対応する前記ビットベクタ内の位置のビットを1にセットする手段とする。
以上のように構成された本発明によれば、アプリケーションと協働してキャッシュが効率的に動作する。これによりアプリケーション・サーバのパフォーマンスを向上させることが可能になる。
<動作概要>
商用アプリケーション・サーバは、複数のCPUで複数のトランザクションを時分割などで並列に処理をするが、その処理が終わるとトランザクション中に生成されたメモリ・オブジェクトの多くは使用されない。そこで本発明では、トランザクション中に生成されるメモリ・オブジェクトについて、トランザクションに対応したトランザクション・フラグ値を付加しておく。トランザクション終了時には、対応するトランザクション・フラグ値を掃き出し候補の識別子として登録する。掃き出し時、キャッシュは掃き出し候補として登録されたトランザクション・フラグ値のキャッシュ・ラインを優先的に掃き出し候補として選択する。これにより、将来再利用される確率の小さいメモリ・オブジェクトによるキャッシュの汚染の影響を小さくすることができる。以下、添付図面を参照して、本発明の実施形態について詳細に説明する。なお説明は簡便のためCPUが1つの場合を説明するが実際にはマルチCPUでトランザクションが処理されることに注意されたい。
<システム構成>
図1は、本実施形態のキャシュ制御の概要を説明する図である。システム100は本発明のキャッシュを有するコンピュータを表し、好ましくは複数のトランザクションが稼動するアプリケーション・サーバである。システム100はCPU110とこれに接続されたメモリ120、およびキャッシュ130を含む。メモリ120は主に主記憶メモリを指すが、外部記憶装置160を含めた仮想記憶と捉えることもできる。OS150およびその上で動作するアプリケーション140のプログラムコードも最終的には主記憶120に置かれCPUにフェッチされ解釈、実行される。CPU110とメモリ120、およびキャッシュ130はアドレス線とデータ線で接続される。
図2にキャッシュ130の構造を図示する。本発明は説明のために4ウェイ・セットアソシエイティブ(4-way set associative)キャッシュの構成を例示するが、それに限定されない。なお4ウェイ・セットアソシエイティブの回路構造は広く知られているので大まかな動作原理を説明する。この方式はキャッシュを分割し1つのインデックスに対して複数のタグおよびデータを持つ。まずCPUからのアドレスが入力されると入力アドレスを上位、中位、下位(オフセット)の3つに分ける。上位アドレスはキャッシュのタグアレイ(以下タグと省略)に対応する。中位アドレスはキャッシュ・ラインの選択に使用される。、下位のオフセットはキャッシュ・ライン内のアクセスされるワードの位置に対応する。例えばPOWER Processorの例では、キャッシュ・ラインのデータ長(すなわちライン長)は128バイト(1024ビット)で、アドレス下位のオフセットは、ライン内のワードのオフセットになる。入力アドレスに該当するデータがキャッシュに置かれていた場合(ヒットした場合)そのデータをCPUに送出する。本発明はフラグ領域、タグ、データから構成される1つのキャッシュ・ラインのうちフラグ210を拡張する。
図3に本発明のフラグの詳細を図示する。フラグ210の典型的なビットについて説明する。有効フラグ310はデータがキャッシュから読み込まれると、設定される。ダーティ・フラグ320は、データが削除される前にメモリに書き戻す必要がある場合に設定される。LRU管理情報330は、同一のコングルエンス・セット内でのアクセス順序、またはそれと同等の情報を有する、LRU情報を格納する。例えば、4ウェイ・セットアソシエイティブ・キャッシュの場合には、4つのメンバー内でのアクセスされた順番を格納してもよい。本発明はこのフラグ領域に、トランザクション・フラグ(tビット)を追加する。このトランザクション・フラグは、アプリケーションが処理するトランザクションに対応する情報を有している。すなわち2^t個のトランザクションを識別できる。トランザクション毎のキャッシュ動作を管理するために、さらに2^tビット長(このサイズはトランザクション・フラグ値が取り得る値の個数に相当する)のトランザクション・ビットベクタ350を1個と、その各トランザクション・ビットに対応した2^tビット個のカウンタ360を備える。カウンタ長はキャッシュサイズに依存する。最大はキャッシュ内の総ライン数までカウントできるカウンタになる。例えば256KBキャッシュで、ラインサイズが128バイトなら、2048ラインなので、11ビットカウンタとなる。本発明の実施例においてt=10の場合を例示するがこれに限定されない。
各トランザクション・ビットベクタの各ビットは、対応するトランザクション・フラグ値を有するキャッシュ・ラインが掃き出し候補として登録されていることを示す(1で登録、0で非登録)。カウンタは対応するトランザクション・フラグ値をもつ有効キャッシュ・ラインの個数を示す。カウンタの値がゼロか、または既定の閾値より小さくなると対応するトランザクション・フラグ値は新しいトランザクションのために使用される候補となる。ただし、トランザクション・フラグ値0は通常のデータ(LRU方式が有効なデータ)のために使用し、掃き出し候補として登録することはない。このためトランザクション・フラグ値0のトランザクション・ビットベクタとカウンタは省略してもよい。
<アプリケーション・サーバの動作>
以下、アプリケーション・サーバ100の動作をより詳細に説明する。アプリケーション・サーバ100において、外部記憶装置160に記憶されたアプリケーション140およびOS150のプログラムは、メイン・メモリ120に読み込まれ、CPU110がこれを実行する。アプリケーション・サーバ100は、ネットワークを介して HTTP 通信を行うためのサーバであり、クライアント170からHTTPリクエストを受け付け、これをアプリケーション140のプログラムがトランザクションとして処理する。その処理において多数のメモリ・オブジェクトがメモリ管理ライブラリ145によりメモリ120中に作成される。そしてこれらのメモリ・オブジェクトに関するデータはCPU110、キャッシュ130およびメモリ120間でやり取りされる。そのトランザクションの処理が終了すると結果を HTTP レスポンスとしてクライアント170に返送する。そして不要となった多数のメモリ・オブジェクトは破棄される。
図4はトランザクション・フラグ値の選択フローを示す図である。ステップ410でトランザクションが開始される。ステップ420でトランザクション・フラグ値が0以外の値でカウンタの値がゼロ(キャッシュ内のラインで使われていない)のトランザクション・フラグ値を選択するか、またはカウンタの値がある決められた閾値より小さい(キャッシュ内の使用ライン数が十分に小さい)トランザクション・フラグ値を選択する。そのようなトランザクション・フラグ値がない場合、最近選択したトランザクション・フラグ値で、かつ現在実行しようとしているトランザクションと似ていると予想されるものから選ぶ。似ているとは例えば HTTP リクエストのURIとそのメソッドの組み合わせが同じということである。
HTTP リクエストを適用するリソースを指定するためのURIを Request-URIと呼ぶ。図7にURIの例をしめす。URIは Uniform Resource Identifier の略でありHTTP リクエストを適用するリソースを識別する。図7の Request-URI の4つのオプションはそのリクエストの性質に依存する。メソッドとは Request-URI と組み合わせて使用されるもので、URIの先にあるリソースに対してどのように振る舞って欲しいかを働きかけるためのもので8つのメソッドがある。図8に8つのメソッドを示す。このURIとメソッドの組み合わせが等しいものをトランザクションが似ている定義する。この場合、2つのトランザクションはタグ管理上、単一のトランザクションとして扱う。このように処理することにより、トランザクション・フラグ値の範囲を実際にキャッシュ内に同時に存在しうるトランザクション数より小さくできる。すなわちトランザクション・フラグのビット数を節約できる。選択したトランザクション・フラグ値に対応するトランザクション・ビットベクタがセットされている(掃き出し候補の識別子)場合はそれを解除する。すなわち、対応するトランザクション・ビットベクタのビットをゼロにクリアする。このようにしてアプリケーションは開始トランザクションにトランザクション・フラグ値を割り当る。
図5に開始トランザクションにトランザクション・フラグ値を割り当てる具体例を示す。図5ではt=10の場合(1024個のフラグ値)について説明する。この場合カウンタ510の値が0であるのでトランザクション・フラグ値3がこのトランザクションのトランザクション・フラグ値となる。同時に対応するトランザクション・ビットベクタのビットをゼロにする。
<オブジェクト生成>
オブジェクト生成時に、メモリ管理ライブラリ145がメモリ・オブジェクトを生成するとき、対応するメモリ領域をフェッチまたはプリフェッチする。このとき、トランザクションにアサインされたトランザクション・フラグ値<T>をキャッシュ内の対応するラインに付加する。例えば、CPUからの入力アドレスが<address>の場合、以下のようなプリフェッチ命令を使う。
Tprefetch <address>, <T>
ただし、生成されたオブジェクトがトランザクションをまたがって使われると想定できる場合は、トランザクション・フラグを付加しない(あるいはトランザクション・フラグ値を0にしておく)。すなわち、トランザクション終了時に掃き出し候補として登録されない。メモリ・オブジェクト生成以外の一般のメモリアクセスやプリフェッチはトランザクション・フラグを付加しない命令を使う。この場合、キャッシュ・ハードウェアはトランザクション・フラグ値0のアクセスとして扱う。すでにラインがキャッシュに存在する場合は(ヒット)、そのトランザクション・フラグ値は変化しない。ミスフェッチが発生した場合には、キャッシュ・ラインに0をトランザクション・フラグ値として付加する。すなわち、寿命の長いオブジェクトとみなす。ただし、一般のメモリアクセスやプリフェッチでも、トランザクションをまたがって使われないと想定できる場合は、トランザクション・フラグ付の命令を使ってアクセスまたはプリフェッチしてもよい。
<トランザクション終了時>
トランザクション終了時には、そのトランザクション・フラグ値<T>を掃き出し候補としてキャッシュメモリに登録する。例えば、以下のような命令を使う。
Transient <T>
この命令は、引数としてとるトランザクション・フラグ値に対応する掃き出し候補フラグ(対応するトランザクション・ビットベクタ内のビット)を立てる。
<キャッシュの動作>
図6にキャッシュ・ハードウェアの動作を示す。ステップ610でCPU110によるキャッシュ・アクセスがあったとする。ステップ615でキャッシュ・ヒットの場合、従来のキャッシュと同じ動作を行いステップ665へ進む。ステップ615でキャッシュがヒットしなかった場合、ステップ620で無効なラインがコングルエンス・セットにあるかどうか判断する。もしあれば処理はステップ635へ進み無効なラインを選択しステップ650へ進む。なければ処理はステップ625へ進む。
ステップ625ではまずコングルエンス・セットのそれぞれのトランザクション・フラグ値について対応するトランザクション・ビットベクタのビットが1のラインがあるか判断する。もしあれば処理はステップ630へ進む。なければ処理はステップ640へ進む。ステップ630では、トランザクション・ビットベクタのビットが1のライン(すなわち掃きだし候補として登録されたライン)から、最もLRUなラインを掃きだし候補として選択し、ステップ645へ進む。ステップ640では通常のLRUアルゴリズムを適用して掃き出し候補を選択する。そしてステップ645へ進み、掃き出し候補のトランザクション・フラグ値がゼロでないなら対応するカウンタを1減らし、ステップ650へ進む。
ステップ650では選択したラインに要求されたデータをミスフェッチする。この時、必要であればライトバックを行う。処理はステップ655へ進み、ミスフェッチしたラインにトランザクション・フラグ値としてTを格納する。次にステップ660でTがゼロでない(トランジエントなキャッシュのアクセスまたはプリフェッチ要求)なら、対応するカウンタを1増やす。そしてステップ665へ進む。ステップ665ではコングルエンス・セットのLRU管理情報330を更新する。
以上、本発明の方法によれば、アプリケーションが処理するトランザクションの特徴に応じてキャシュが効率的に使用されるので、アプリケーション・サーバのパフォーマンスの向上に寄与する。またクライアントからの HTTP リクエストの種類に応じてトランザクションを分けることが可能になり、より効率的にトランザクション・フラグ値が使用される。
本実施形態のキャシュ制御の概要を説明する図である。 4ウェイ・セットアソシエイティブ・キャッシュの構造を示す図である。 本発明のフラグの詳細を表す図である。 トランザクション・フラグ値の選択フローを示す図である。 開始トランザクションにトランザクション・フラグ値を割り当てる具体例である。 キャッシュ・ハードウェアの動作例を示す図である。 URIの例である。 HTTPプロトコルの標準的な8つのメソッドを示す図である。
100 システム(アプリケーション・サーバ)
110 CPU
120 メモリ(主記憶)
130 キャッシュ
160 外部記憶装置
150 OS
140 アプリケーション
145 メモリ管理ライブラリ
170 クライアント
210 フラグ
310 有効フラグ
320 ダーティ・フラグ
340 トランザクション・フラグ値
330 LRU管理情報
350 トランザクション・ビットベクタ
360 カウンタ

Claims (8)

  1. キャッシュを制御する方法であって、
    アプリケーションがトランザクションを処理中に生成されるメモリ・オブジェクトについて、トランザクションに対応した値を割り当てるステップと、
    前記メモリ・オブジェクトがキャッシュに記憶されることに応じて、前記割り当てた値をキャッシュ・アレイのフラグ領域にトランザクション・フラグ値として付加するステップと、
    前記トランザクション終了時に、対応するトランザクション・フラグ値を掃き出し候補として登録するステップと、
    キャッシュの掃き出し時、前記掃き出し候補として登録されたトランザクション・フラグ値を有するキャッシュ・ラインを優先的に掃き出すステップと、
    を含む、方法。
  2. 前記キャッシュが、さらに、トランザクション・フラグ値が取り得る値の個数を、その長さとする1つのビットベクタを有し、
    前記掃き出し候補として登録するステップが、前記トランザクション・フラグ値に対応する前記ビットベクタ内の位置のビットを1にセットするステップである、請求項1の方法。
  3. 前記キャッシュが、さらに、前記ビットベクタの各ビットに対応するカウンタを有し、前記カウンタは前記キャッシュ・アレイの有効なライン数を表す、請求項2記載の方法。
  4. 前記トランザクションは、クライアントからの HTTP リクエストに応じて生じ、
    トランザクションに対応した値を割り当てるステップが、前記アプリケーションは、前記 HTTP リクエストのURIとそのメソッドが同じ組み合わせのトランザクションについて同じ値を割り当てる、請求項1記載の方法。
  5. キャッシュ制御装置であって、
    アプリケーションがトランザクションを処理中に生成されるメモリ・オブジェクトについて、前記トランザクションに対応した値を割り当てる手段と、
    前記メモリ・オブジェクトがキャッシュに記憶されることに応じて、前記割り当てた値をキャッシュ・アレイのフラグ領域にトランザクション・フラグ値として付加する手段と、
    前記トランザクション終了時に、対応するトランザクション・フラグ値を掃き出し候補として登録する手段と、
    キャッシュの掃き出し時、前記掃き出し候補として登録されたトランザクション・フラグ値を有するキャッシュ・ラインを優先的に掃き出す手段と、
    を含む、装置。
  6. 前記キャッシュが、さらに、トランザクション・フラグ値が取り得る値の個数を、その長さとする1つのビットベクタを有し、
    前記掃き出し候補として登録する手段が、前記トランザクション・フラグ値に対応する前記ビットベクタ内の位置のビットを1にセットする手段である、請求項5の装置。
  7. 前記キャッシュが、さらに、前記ビットベクタの各ビットに対応するカウンタを有し、前記カウンタは前記キャッシュ・アレイの有効なライン数を表す、請求項6記載の装置。
  8. 前記トランザクションは、クライアントからの HTTP リクエストに応じて生じ、
    前記トランザクションに対応した値を割り当てる手段が、前記アプリケーションは、前記 HTTP リクエストのURIとそのメソッドが同じ組み合わせのトランザクションについて同じ値を割り当てる手段である、請求項5記載の装置。
JP2009148309A 2009-06-23 2009-06-23 キャッシュ制御方法 Expired - Fee Related JP4768054B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009148309A JP4768054B2 (ja) 2009-06-23 2009-06-23 キャッシュ制御方法
US12/814,532 US8484423B2 (en) 2009-06-23 2010-06-14 Method and apparatus for controlling cache using transaction flags

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009148309A JP4768054B2 (ja) 2009-06-23 2009-06-23 キャッシュ制御方法

Publications (2)

Publication Number Publication Date
JP2011008315A true JP2011008315A (ja) 2011-01-13
JP4768054B2 JP4768054B2 (ja) 2011-09-07

Family

ID=43355289

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009148309A Expired - Fee Related JP4768054B2 (ja) 2009-06-23 2009-06-23 キャッシュ制御方法

Country Status (2)

Country Link
US (1) US8484423B2 (ja)
JP (1) JP4768054B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10353829B2 (en) * 2017-06-30 2019-07-16 Dell Products, Lp System and method to account for I/O read latency in processor caching algorithms
JP2022144314A (ja) 2021-03-18 2022-10-03 キオクシア株式会社 メモリシステム及びストレージ装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59160251A (ja) * 1983-03-02 1984-09-10 Fujitsu Ltd デ−タベ−ス処理システムにおける空きスペ−ス管理制御方式
JPH05216765A (ja) * 1992-02-06 1993-08-27 Hitachi Ltd 階層バッファ記憶装置
JPH09101916A (ja) * 1995-10-06 1997-04-15 Fujitsu Ltd マルチプロセス処理装置
JPH11112564A (ja) * 1997-09-30 1999-04-23 Nec Corp リスト管理システム、方法及び記憶媒体、並びにパケット交換機
JPH11259362A (ja) * 1998-03-13 1999-09-24 Nec Corp キャッシュメモリ制御方法及び装置
JP2001290704A (ja) * 2000-04-06 2001-10-19 Nec Microsystems Ltd マルチプロセス制御装置及びマルチプロセス制御方法
JP2002132554A (ja) * 2000-10-25 2002-05-10 Hitachi Ltd データベースアクセス方法
JP2002244869A (ja) * 2001-02-19 2002-08-30 Hitachi Ltd メモリ管理装置
JP2005196303A (ja) * 2003-12-26 2005-07-21 Toshiba Corp キャッシュリプレース装置及びキャッシュリプレース方法
JP2006127362A (ja) * 2004-11-01 2006-05-18 Hitachi Ltd コネクション割り当て方法、装置及びプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6546473B2 (en) * 2001-05-29 2003-04-08 Hewlett-Packard Company Method for cache replacement of web documents
US20060101208A1 (en) 2004-11-09 2006-05-11 Intel Corporation Method and apparatus for handling non-temporal memory accesses in a cache
DE602006011292D1 (de) 2005-04-08 2010-02-04 Panasonic Corp Cache-speichersystem und steuerverfahren dafür

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59160251A (ja) * 1983-03-02 1984-09-10 Fujitsu Ltd デ−タベ−ス処理システムにおける空きスペ−ス管理制御方式
JPH05216765A (ja) * 1992-02-06 1993-08-27 Hitachi Ltd 階層バッファ記憶装置
JPH09101916A (ja) * 1995-10-06 1997-04-15 Fujitsu Ltd マルチプロセス処理装置
JPH11112564A (ja) * 1997-09-30 1999-04-23 Nec Corp リスト管理システム、方法及び記憶媒体、並びにパケット交換機
JPH11259362A (ja) * 1998-03-13 1999-09-24 Nec Corp キャッシュメモリ制御方法及び装置
JP2001290704A (ja) * 2000-04-06 2001-10-19 Nec Microsystems Ltd マルチプロセス制御装置及びマルチプロセス制御方法
JP2002132554A (ja) * 2000-10-25 2002-05-10 Hitachi Ltd データベースアクセス方法
JP2002244869A (ja) * 2001-02-19 2002-08-30 Hitachi Ltd メモリ管理装置
JP2005196303A (ja) * 2003-12-26 2005-07-21 Toshiba Corp キャッシュリプレース装置及びキャッシュリプレース方法
JP2006127362A (ja) * 2004-11-01 2006-05-18 Hitachi Ltd コネクション割り当て方法、装置及びプログラム

Also Published As

Publication number Publication date
US20100325361A1 (en) 2010-12-23
US8484423B2 (en) 2013-07-09
JP4768054B2 (ja) 2011-09-07

Similar Documents

Publication Publication Date Title
US10963387B2 (en) Methods of cache preloading on a partition or a context switch
US8935478B2 (en) Variable cache line size management
US8490065B2 (en) Method and apparatus for software-assisted data cache and prefetch control
US7516279B2 (en) Method using stream prefetching history to improve data prefetching performance.
KR101361945B1 (ko) 컴퓨터 스레드들의 이종 리소스들로의 맵핑
JP7232175B2 (ja) キャッシュメモリのデータ置換方法及びプロセッサ
JP4028875B2 (ja) メモリを管理するためのシステムおよび方法
JP2009098934A (ja) プロセッサ及びキャッシュメモリ
US8762651B2 (en) Maintaining cache coherence in a multi-node, symmetric multiprocessing computer
US20180300258A1 (en) Access rank aware cache replacement policy
US20110314227A1 (en) Horizontal Cache Persistence In A Multi-Compute Node, Symmetric Multiprocessing Computer
JP6916782B2 (ja) 仮想マシンのページ・テーブル・キャッシュ・ラインをプリロードする方法、コンピューティング・システム、およびコンピュータ・プログラム
US8856453B2 (en) Persistent prefetch data stream settings
WO2005088455A2 (en) Cache memory prefetcher
US20210286730A1 (en) Method, electronic device and computer program product for managing cache
JP4768054B2 (ja) キャッシュ制御方法
TWI469044B (zh) 於指令存取前藉由運行標籤查找之隱藏指令快取未命中潛時的技術
JP2005149497A (ja) 動的頻発命令ライン・キャッシュ
CN111104054A (zh) 管理输入/输出操作的方法、装置和计算机程序产品
JP2022046413A (ja) 記憶デバイスのための改良された先読み能力
US20170357585A1 (en) Setting cache entry age based on hints from another cache level

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110513

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110531

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

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees