JP2000330827A - 参照の局所性を動的に追跡する高効率技法 - Google Patents

参照の局所性を動的に追跡する高効率技法

Info

Publication number
JP2000330827A
JP2000330827A JP2000129383A JP2000129383A JP2000330827A JP 2000330827 A JP2000330827 A JP 2000330827A JP 2000129383 A JP2000129383 A JP 2000129383A JP 2000129383 A JP2000129383 A JP 2000129383A JP 2000330827 A JP2000330827 A JP 2000330827A
Authority
JP
Japan
Prior art keywords
cache
reuse
data
distance
reference count
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
JP2000129383A
Other languages
English (en)
Other versions
JP3657170B2 (ja
Inventor
Wie Sun Hsu Winsor
ウィンザー・ウィー・スン・シュー
Chen Young Onesti
オネスティー・チェン・ヤング
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
Publication of JP2000330827A publication Critical patent/JP2000330827A/ja
Application granted granted Critical
Publication of JP3657170B2 publication Critical patent/JP3657170B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3457Performance evaluation by simulation
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches

Abstract

(57)【要約】 【課題】広範囲なキャッシュ・サイズのキャッシュ・ミ
ス率を効率的に導き出すスタック分析技法を提供する。 【解決手段】キャッシュ管理システムが、システム・ト
レース内の重複ページ数を除いたスタック再使用距離を
求めることによって、スタック距離を求める。スタック
再使用距離は、1つのデータに対する最初の参照と同じ
データに対する次の参照との間の参照数と定義される。
ストリーム内のデータ参照のカウントを維持することに
よってスタック再使用距離を容易に計算することができ
る。このシステムはさらに、キャッシュ内の重複ページ
数を確率的方式で近似計算することができ、それによっ
てキャッシュ分析の効率が向上することを認める。スタ
ック距離は、通常のシステム動作中に近似計算すること
ができ、スタック分析は、データ参照作業負荷に応答し
た最適なキャッシュ調整が行われるように動的な方式で
行うことができる。したがって、キャッシュ・ミス率曲
線が、オフライン・モードでシステム・トレースから、
または通常のシステム動作中にリアルタイムで生成され
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般にネットワー
ク・コンピュータ・システムに関し、詳細にはクライア
ント・コンピュータからサーバ・コンピュータへのデー
タの効率的な転送に関する。
【0002】
【従来の技術】コンピュータ・システムは、データの供
給速度よりも高速で稼働することはできない。ほとんど
のコンピュータ・ネットワークは、ネットワーク・リン
クを介して互いにデータを交換する多数のサーバ・コン
ピュータとクライアント・コンピュータを含む。クライ
アントとサーバは、メモリおよびデータ記憶装置を共用
することができる。たとえば、多くのコンピュータ・シ
ステムは、一次記憶装置を備えた階層メモリ記憶域を有
し、一時記憶装置としては、たとえばディスク・ライブ
ラリおよびRAID(Redundant Array of Inexpensive
Disks:冗長性を持つ低価格ディスク・アレイ)があ
る。ディスク・ライブラリとRAIDシステムは、ダイ
ナミック・ランダム・アクセス・メモリ(DRAM)な
どの記憶装置と比較して低速なため、頻繁に使用される
可能性が高いと思われるデータはキャッシュ・メモリと
呼ばれるより高速のメモリに一時的に記憶される。この
ようなコンピュータ・システムのパフォーマンスを向上
させる可能性の多くは、メモリ階層の効率的な制御にか
かっている。
【0003】キャッシュなどのメモリ階層の効率は、キ
ャッシュ・ミス率によって特徴づけられる。キャッシュ
・ミスは、データ参照が要求されたが、キャッシュ内で
見つからない時間の割合である。一般に、キャッシュが
大きい方がキャッシュ・ミス率が低くなり、システム・
パフォーマンスが向上する。これは、キャッシュ・ミス
があると、ディスク・メモリなどのより低速で安価なデ
ータ記憶装置からデータを検索する必要があり、したが
って、プロセッサがデータを待つためにシステム・デー
タ操作が遅くなるためである。キャッシュは一般に、半
導体メモリを使用して作られ、高価格な場合があるた
め、キャッシュは通常、サイズが限られ、目標ミス率に
合わせて設計される。システム管理作業は、使用可能資
源と許容可能なミス率にとって最も効率的なキャッシュ
を決定することである。さらに、キャッシュは区画化す
ることができ、作業負荷ストリームにキャッシュ区分を
割り振ることによってデータ記憶調整を行うことができ
る。システム管理作業は、キャッシュ・サイズ決定とキ
ャッシュ割振りによって対処する作業負荷分散問題にな
る。
【0004】データ参照の作業負荷ストリームが固定し
ていることを考えると、キャッシュ・ミス率はキャッシ
ュ・サイズの関数としてプロットすることができる。し
たがって、プロットされたキャッシュ・ミス率曲線によ
って、キャッシュ・サイズの増大の効果が逓減する点に
達する時点がわかり、したがってキャッシュ・ミス率曲
線を使用して、キャッシュ・サイズと作業負荷へのキャ
ッシュ割振りに関する決定を行うことができる。キャッ
シュ・ミス率曲線を経験により判断するには、作業負荷
を用意し、その作業負荷を使用して様々なサイズのキャ
ッシュを動作させ、その間、発生したミス率の統計をと
り続ける必要がある。キャッシュ・サイズの範囲は膨大
になり得るため、これはきわめて困難であり、時間がか
かる可能性がある。たとえば、キャッシュ・サイズは、
優に10メガバイト(MB)から10ギガバイト(G
B)のデータまで変わり得る。
【0005】キャッシュ動作のオフライン・シミュレー
ションによって、所与のサイズと所与の作業負荷につい
てキャッシュ・ミス率を決定することが可能である。こ
のシミュレーションは、所定の作業負荷を使用してシス
テム・トレースを生成することによって行われる。これ
は、コンピュータ・システムにおいて必要なすべてのデ
ータ参照の履歴記録である。たとえば、システム・トレ
ースは、対象期間に参照されたすべてのデータ・ページ
(4Kバイトのデータのブロック)を含む作業負荷の結
果とすることができる。シミュレーションするキャッシ
ュのサイズによってヒットがあるかミスがあるかが決ま
るため、各データ参照の実際のシステム結果は、シミュ
レーションにとって重要ではない。シミュレーション・
プログラムはトレースを受け取り、トレース内の各要求
を処理し、トレース内の各データ参照の結果、キャッシ
ュ・ヒットとミスのどちらになったかをシミュレーショ
ンしたキャッシュのサイズに応じて判断する。このよう
なシミュレーションで使用されるシステム・トレース
は、「TPC−C」や「TPC−D」と呼ばれる公知の
トレース・ベンチマークなどの業界標準のベンチ・マー
クとすることができる。
【0006】したがって、システム・トレースとオフラ
イン・シミュレーションを使用すれば、様々なキャッシ
ュ・サイズを構成して動作させなくても、キャッシュ・
ミス率曲線を導き出すことができる。しかし残念なが
ら、システム・トレースは、かなり大きなファイルとな
ることがあり、シミュレーションの実行には長時間かか
ることがある。有効なシミュレーション結果が得られる
ように保証するために、トレースのサイズは一般に、シ
ミュレートする最大キャッシュのサイズの少なくとも1
0倍になる。したがって、キャッシュの動作をシミュレ
ートし、キャッシュ・ミス率曲線を導き出す技法が開発
されている。キャッシュ・ミス率を求める1つの方法
は、キャッシュ動作を参照の列、またはスタックとして
シミュレートすることである。このような技法はスタッ
ク・アルゴリズムと呼ばれる。1つのこのようなキャッ
シュ分析技法は、LRU(最長期間不使用)キャッシュ
として編成されたキャッシュとして構成されたキャッシ
ュを使用する。LRUキャッシュでは、データ参照がス
タックとして保持され、新しいデータ参照がスタックの
最上部に入れられ、古いデータ参照はスタックの下の方
に下げられる。各データ参照には、スタックの最上部か
らキャッシュ項目が入れられている場所までの距離を表
すスタック距離が関連づけられる。システム・トレース
内の各データ参照ごとに、スタック距離によってキャッ
シュ・ヒットがあるかキャッシュ・ミスがあるかが決ま
る。
【0007】どのキャッシュもデータ・スタックとして
表すことができ、システム・トレースを適用して、特定
のサイズのキャッシュについてキャッシュ・ヒットとミ
スを決定することができる。たとえば、図1は、LRU
スタックのシステム・トレースにおけるデータ参照のシ
ーケンスに対応する複数の列を示すキャッシュ動作のス
タック図である。最初は空のスタックを左から右に進
み、図1の左端の列102は、最初のデータ参照がデー
タ「A」に対する要求であることを示しており、これ
は、たとえば特定の4Kデータ・ブロックまたはページ
の要求である。Aは最初はスタック内に入っていないた
め、Aに対する要求はキャッシュ・ミスである。そのた
め、Aはキャッシュに入れられることになり、したがっ
てスタックの最上部であるキャッシュ場所「1」に置か
れる。次の列104に移ると、次のデータ参照は「B」
に対する要求であり、これも最初はキャッシュに入って
おらず、キャッシュ・ミスになる。したがって、Bがキ
ャッシュに入れられ、それによってAはスタック内でス
タック場所「2」に押し下げられ、Bが最上部に置かれ
る。同様に、図1の3番目の列106は次のデータ参照
が「C」であることを示し、これも別のキャッシュ・ミ
スになり、その結果Cがキャッシュに入れられ、したが
ってスタックの最上部に置かれる。
【0008】当業者なら、図1の4番目の列108が、
次のデータ参照がすでにキャッシュに入っているBペー
ジを指していることを示していることがわかるであろ
う。このLRUスタックでは、このデータ参照を受け取
ったときのBの「スタック距離」は、直前の列106内
でBが最上部から1つ下の2番目のスタック位置にある
ため、2であると言える。実際のキャッシュ動作では、
データ・ページBの参照の結果、キャッシュ内でBが探
索され、Bがキャッシュ内にあるか否かが解決されるこ
とになる。これを、Bページ参照の解決の参照間隔と呼
ぶ。キャッシュをスタックとしてシミュレーションする
と、Bに対する参照の結果、Bページがスタックの最上
部に移動し、現行スタック間隔108でCが押し下げら
れる。キャッシュが少なくとも2つのページ・メモリ場
所を有する場合、Bはキャッシュ内の106にあり、そ
の時点でのBに対するデータ参照の結果、108でキャ
ッシュ・ヒットになることは明らかであろう。図1の次
の列110は、キャッシュ内にない「D」に対する参照
を示す。この結果、キャッシュ・ミスになり、Dがスタ
ックの最上部に置かれる。
【0009】6番目の列112は、キャッシュ内にある
Cに対する他のデータ参照が発生したことを示し、した
がってCがスタックの最上部に移動する。前の列110
で、Cのスタック距離は3であった。したがって、11
0でCに対する要求を受け取ったとき、キャッシュが少
なくとも3つのページ・メモリ場所を有する場合は、シ
ミュレーションされているキャッシュでキャッシュ・ヒ
ットが起こり、そうでない場合にはキャッシュ・ミスに
なる。最後に、図1の7番目の列114は、Aに対する
他の参照を示し、これがスタックの最上部に移動する。
直前の列112で、Aのスタック距離は4であった。し
たがって、4データ・ページ以上のキャッシュ・サイズ
であれば、112におけるAに対するデータ参照がキャ
ッシュ・ヒットになり、それより小さい場合にはキャッ
シュ・ミスになることが明らかであろう。
【0010】したがって、キャッシュ・ミス率曲線を求
めるには、データ参照のキャッシュ距離を求め、ヒット
とミスのいずれがあったかを判断する必要があり、スタ
ック全体を探索してスタック内の参照の場所を見つける
必要がある。このシミュレーションのこの局面に必要な
探索の量によって、大量のシステム資源が消費される可
能性がある。最近、キャッシュ・ミス率曲線の導出を向
上させようとして、スタック分析技法が取り入れられて
いる。
【0011】たとえば、米国特許第5627994号に
は、キャッシュ・アーキテクチャに要求ストリームとメ
モリ資源を割り振る方法が記載されており、スタック分
析によってスタック距離分布を求める。このようなスタ
ック分析技法を使用して、キャッシュ・サイズ決定の問
題に対処し、システム・パフォーマンスを向上させるこ
とができる。
【0012】キャッシュ記憶システムの供給者やメモリ
管理プログラム供給者は、キャッシュ・パラメータを調
整する多くの機会を提供している。1つの最適な技法
は、キャッシュ・パラメータの動的自己調整を可能に
し、キャッシュ区分と参照ストリーム割振りの効果を自
動的に判断するものであろう。手動と自動のいずれで調
整行うかを問わず、情報に基づくキャッシュ・パラメー
タの調整を行うには、様々な動作パラメータについてキ
ャッシュ・ミス曲線を求める必要があることは明らかで
あろう。また、システム動作の低下を避けるため、動的
自己調整技法によってきわめて効率的にキャッシュミス
率曲線を導き出さなければならないことも明らかであろ
う。
【0013】
【発明が解決しようとする課題】以上の説明から、広範
囲なキャッシュ・サイズのキャッシュ・ミス率を効率的
に導き出せるスタック分析技法が必要であることが明ら
かであろう。本発明は、この必要を満たすものである。
【0014】
【課題を解決するための手段】本発明は、スタック再使
用距離を定義し、最近使用されたページの中で反復使用
されたページ参照の数を除いたスタック再使用距離を求
めることによってスタック距離を近似計算することがで
きることを認める。本発明によると、スタック再使用距
離を、1つのデータに対する最初の参照と同じデータに
対する次の参照との間の参照数と定義し、それによっ
て、ストリーム内のデータ参照のカウントを維持するこ
とによってスタック再使用距離を容易に計算することが
できるようにする。さらに、本発明は、キャッシュ内の
同じページに対する2つの参照間の反復ページ参照数
を、確率的方式で近似計算することができ、それによっ
てキャッシュ分析の効率が向上することを認める。これ
によって、スタック距離を通常のシステム動作中に近似
計算することができ、データ参照作業負荷に応答して最
適なキャッシュ調整を行うために、スタック分析を動的
方式で行うことができるようにして、スタック距離を効
率的に導き出すことができる。したがって、キャッシュ
・ミス率曲線は、システム・トレースからオフライン・
モードで、または通常のシステム動作中にリアルタイム
で生成される。このようにして、様々なキャッシュ動作
パラメータを静的環境でも動的環境でも調整することが
できる。
【0015】本発明の一態様では、データ・ストリーム
内の各参照ごとに再使用距離を検数し、そのストリーム
の特性である再使用分布を生成する。再使用距離と再使
用分布は両方とも、キャッシュ記憶システムが動作する
ときにデータを累算することによって容易に生成され
る。本発明の他の態様では、再使用距離がデータ・スト
リーム内の参照の各対間の距離より小さくなる累積確率
によって、重複ページ数を近似計算する。これによっ
て、データ・ストリームがオフライン・システム・トレ
ースである必要がなく、データ参照の進行中のストリー
ムとすることができるほど、十分に高い効率でスタック
分析を行うことができ、それによってキャッシュ・パラ
メータの動的調整を容易に行うことができる。
【0016】
【発明の実施の形態】本発明は、所与の参照のスタック
距離を求める際に最も困難なのは、現行ページの参照間
隔中に参照される他のページ数を計算に入れることであ
ると認識する。さらに本発明は、データ参照(またはペ
ージ要求)のストリームを調べ、同一ページに対する2
つの参照の間の、他のページに対する反復参照を計算に
いれる必要があることを認識する。本発明によると、参
照「再使用距離」を定義し、それを使用してスタック距
離を近似計算し、そこからキャッシュ・ミス率曲線を作
成する。具体的には、現行ページに対するデータ参照の
再使用距離を、現行ページに対する最後の参照以来の他
のページに対する参照数であると定義する。好ましい実
施形態では、スタック距離は、再使用距離の累積分布か
ら近似計算される。再使用距離の累算は、システム処理
資源とデータ記憶コストの両方の相対効率で行うことが
できる。このようにして、広範囲なキャッシュ・サイズ
のキャッシュ・メモリ・システムのキャッシュミス率を
求めることができる。この技法の効率は、キャッシュ動
作パラメータの動的調整を行うことができるような効率
である。
【0017】スタック図 前述のように、キャッシュは優先順位関数に従って順序
づけされたスタックとして表すことができる。好ましい
実施形態では、スタックはLRU(最長期間不使用)ス
タックとして編成され、最も最近に参照された(または
要求された)データ・ブロックまたはページが最上位に
置かれる。参照が置かれたスタック・レベルをそのスタ
ック距離と呼び、そのページが存在する最小キャッシュ
・サイズを表す。LFU(最低使用頻度)を含むその他
のスタック順序づけ技法およびその他の技法も、当業者
には周知であろう。最も一般的なのは、LRUであり、
本明細書では特に記載のない限りLRUを使用するもの
とする。当業者なら、キャッシュ・ミス率はスタック距
離の度数分布を累算することによって計算することがで
きることがわかるであろう。具体的には、サイズCのキ
ャッシュと1ストリームのデータ参照について、スタッ
ク分布と呼ぶ累算スタック度数分布を以下の数式1によ
って求められる。
【数1】
【0018】上式でhit(i)はスタック分布、Nは
データ参照のストリーム内の総参照数である。
【0019】図2に、本発明により定義された参照の再
使用距離を示す。図2の隣り合ったボックスは、データ
参照r1、r2、...ri、ri+1、...rjのストリ
ームを示し、これらのデータ参照は、riにおける最も
早期の参照からrjにおける最も最近の参照までの特定
のページのデータの要求である。本発明によると、デー
タ参照Rのスタック距離関数は、Rへの再使用距離か
ら、Rに対する最後の参照以来の参照重複または反復参
照数を引くことによって求められ、以下の数式2によっ
て表される。
【数2】 Stack DistanceR(x)=Reuse DistanceR(x)−Repeated PagesR(x) (2)
【0020】上式で、xはストリーム内の特定のデータ
参照を示す。したがって、図2のr jにおけるAに対す
る参照の場合、再使用距離は、最初のAの参照からrj
における最後のAの参照までの距離(ページ数)、すな
わち7である。重複または反復参照数には、B(1回)
とC(2回)が含まれ、3になることがわかる。したが
って、図2のスタック距離は、7−3=4である。数式
2によって得られた図2に示す参照ストリームの結果、
図1のスタック図になることに留意されたい。
【0021】最後の参照以来の重複ページ数は、一般
に、再使用距離の累積分布である再使用分布によって決
まることがわかっている。また、スタック距離は、重複
ページを綿密に計算に入れることにより、再使用分布か
ら推定することができることもわかっている。したがっ
て、ri,r1+1...によって与えらるデータ参照のス
トリームが、pi,pi+1,..によって与えられる対応
するデータ・ページを有し、特定の現行データ参照jで
あり、再使用距離はdistancereuse(j)によ
って与えられ、スタック距離はdistancestack
(j)によって与えられ、pi=pj、pi=pkであり、
[i<k<j]である場合、distancereuse
よびdistancestackはそれぞれ、以下の数式3
および数式4によって求められる。
【数3】distancereuse(j)=j-i (3)
【数4】 distancestack(j)=distancereuse(j)−Dup(i+1,j-1) (4)
【0022】上式で、Dup(x,y)は参照されたペ
ージpx,px+1...,pyのストリーム中の重複ペー
ジ数を示す。本発明によると、次に指数づけ関数Xを定
義する。Xは以下の数式5によって求められる。
【数5】
【0023】次に、以下の数式6によって、Dup
(x,y)が求められることがわかる。
【数6】
【0024】次に、以下の数式7、数式8、および数式
9に示すように、重複ページ関数の期待値Eを求めるこ
とができる。
【数7】
【数8】
【数9】
【0025】上式で、Freuse(k)は、再使用距離の
累積度数分布を示す。その結果、本発明によると、以下
の数式10によって求められる関係によってスタック距
離を近似することができる。
【数10】
【0026】上式により、特定の参照jについてのスタ
ック距離が得られる。
【0027】したがって、再使用距離と再使用距離の確
率分布とから、参照のスタック距離を推定することがで
きる。このような推定には多くの演算を行う必要があ
る。実際の演算数は、対象キャッシュ・サイズ内のペー
ジ数と同程度である。この推定をすべての参照に対して
行った場合、システム資源のコストが所期のコストより
も高くつく可能性がある。本発明により構成されたシス
テムは、すべての参照について再使用距離の計算を必要
とする、すべての参照のスタック距離の推定を回避す
る。本発明は、再使用距離の分布を累算し、スタック距
離分布を定期的に推定することを企図する。スタック距
離の累積確率分布をFstack(k)で表した場合、スタ
ック分布は、以下の数式11のように重複ページ関数の
期待値によって近似することができる。
【数11】
【0028】この技法により、キャッシュ・ミス率をよ
り迅速に求めることができ、その結果、キャッシュ管理
タスクが簡略化される。この計算を行う処理の例につい
て、以下に詳述する。
【0029】スタック分布を求め、最終的にキャッシュ
・ミス率を求めるこの簡略化された技法によって、オフ
ライン分析でも動的調整方式でも、キャッシュ調整が容
易になることが、当業者ならわかるであろう。したがっ
て、本発明により構築されたキャッシュ・コントローラ
を有するキャッシュ記憶システムによって、システム資
源の動作効率と使用効率が向上する。
【0030】キャッシュ管理システムのブロック図 図3は、本発明により構築されたキャッシュ管理システ
ム300のブロック図である。ダイナミック・ランダム
・アクセス・メモリ(DRAM)の形態のキャッシュ記
憶装置302が、キャッシュ・コントローラ304の制
御により稼働する。キャッシュ・コントローラは、キャ
ッシュ・メモリ305を含む。キャッシュ・コントロー
ラは、ネットワーク306およびネットワークに接続さ
れているその他のコンピュータ310、312、314
と通信する。コンピュータ310、312、314か
ら、データの要求を含むデータ参照がネットワーク30
6を介してキャッシュ・コントローラ304に送られ
る。各要求は、4KBページなどの所定のデータ・ブロ
ックを求める要求である。キャッシュ・コントローラ
は、要求されたデータがキャッシュ302内にあるか否
かを判断する。そのページがキャッシュに入っている場
合はキャッシュ・ヒットと呼ばれる条件であり、キャッ
シュ・コントローラはそれに肯定応答で応答し、データ
の処理が続けられる。そのページがキャッシュ内にない
場合はキャッシュ・ミスと呼ばれ、キャッシュ・コント
ローラは、ネットワーク上の他のデータ記憶装置、恐ら
くはコンピュータ310、312、314のうちの1つ
に対してデータを要求し、そのデータをキャッシュ30
2にロードし、要求されたデータの処理を続ける。
【0031】図4は、図3に示すキャッシュ・コントロ
ーラ304のコンピュータ・ブロック図402である。
図3に示すコンピュータ・システムのうちの他のコンピ
ュータ310、312、314は、図4に示すものと類
似した構成を有しており、したがって、図4のコンピュ
ータ402に関して述べる詳細はシステム300のすべ
てのコンピュータに適用されるものと理解されたい。あ
るいは、他のコンピュータと通信することができ、それ
らの間でデータ・ブロックを転送することができる限
り、コンピュータ304、310、312、314のい
ずれも、様々な構成を有することができる。
【0032】各コンピュータ402は、中央処理装置
(CPU)404と、プログラム・メモリ408および
データ・メモリ410を含むメイン・メモリ406と、
キーボードや表示装置などの入出力装置412と、ハー
ド・ディスク・ドライブなどの直接アクセス記憶装置
(DASD)414とを含む。メイン・メモリ406
は、典型的には、揮発性半導体ランダム・アクセス・メ
モリ(RAM)を含む。DASD414は、典型的に
は、実行されるとコンピュータ402のオペレーティン
グ・システムを実現する命令を記憶するために使用され
る。オペレーティング・システムは、マイクロソフト社
の「Windows98」やアップル・コンピュータ社
の「Macintosh」などの多種多様なシステムの
いずれかとすることができる。
【0033】各コンピュータ402は、プログラム製品
記憶装置418を受け入れるプログラム製品読取装置4
16を含むことが好ましく、プログラム製品読取装置は
プログラム製品記憶装置からデータを読み取ることがで
きる(任意選択によりデータの書き込みもできる)。プ
ログラム製品読取装置416は、たとえばディスク・ド
ライとすることができ、プログラム製品418は、磁気
フロッピィ・ディスク、CD−R光磁気ディスク、また
はCD−RWディスクなどの取り外し可能媒体とするこ
とができる。システムの各コンピュータ420は、ネッ
トワーク・インタフェース420を介してネットワーク
306で他のコンピュータと通信することができ、それ
によってネットワーク・ノードを構成する。
【0034】各コンピュータ402は、メイン・メモリ
406のプログラム記憶域408に記憶されている命令
を実行することによってその機能を実行する。プログラ
ム命令が実行されると、コンピュータはその機能を実行
する。これは、キャッシュ・コントローラ302の場合
はキャッシュ管理機能である。この命令は、プログラム
製品記憶装置読取装置416またはネットワーク・イン
タフェース420を介してDASD414から受け取る
ことができる。記憶装置読取装置416は、プログラム
製品記憶装置418を受け入れ、プログラム製品記憶装
置に記録されているプログラム・ステップを読み取り、
それらのプログラム・ステップをメイン・メモリ406
に転送する。前述のように、プログラム製品記憶装置
は、フロッピィ・ディスクやCD記憶装置を含めて、コ
ンピュータ可読命令を有する複数の取り外し可能媒体の
いずれとすることもできる。その他の適合するプログラ
ム製品記憶装置としては、磁気テープや半導体メモリが
ある。このようにして、本発明による動作に必要な処理
ステップを、プログラム製品上で実施することができ
る。あるいは、プログラム・ステップは、ネットワーク
306を介して動作メモリ410に受け入れることもで
きる。後者の方法では、コンピュータは、周知の方法に
よってネットワーク通信が確立された後で、ネットワー
ク・インタフェース420を介してメイン・メモリ40
8にデータを受け入れる。この確立方法は詳述しなくて
も当業者ならわかるであろう。
【0035】スタック距離からのキャッシュ・ミス率の
計算 図5は、本発明によりキャッシュ・ミス率曲線の計算を
行うために、図3のコンピュータ処理システムによって
実行される処理ステップを示す流れ図である。すなわ
ち、本発明により構築されたキャッシュ・コントローラ
またはその他のコンピュータは、図5に示す処理ステッ
プを行って、各参照ごとにキャッシュ距離を計算せずに
キャッシュ・ミス率を求める。
【0036】参照番号502が付された流れ図ボックス
によって示された最初の処理ステップで、コンピュータ
が再使用距離を求める。前述のように、本発明は「再使
用距離」を、同じページに対する2つの参照の間に行わ
れる参照数と定義する。本発明によると、ボックス50
2の処理では、ストリーム内の各参照について、介在す
るページ参照数を求める。たとえば、図2で、rjにお
けるAに対する2番目の参照を受け取った時点での再使
用距離は7ページである。各再使用距離の検数を累算す
ることによって、再使用分布を生成する。図2の例で
は、Aに対する2番目の参照を処理するときに、dis
tancereuse=7の検数カウントを1だけ増分す
る。流れ図ボックス504に示すように、ストリーム内
のすべての参照を処理した後、すべてのdistanc
reuse値の検数の分布によって再使用分布が得られ
る。この再使用分布を求める処理について、以下に詳述
する。
【0037】キャッシュ内のすべての処理済みデータ参
照について再使用カウントを維持し、新しい参照を受け
取ったときに再使用カウントを増分することによって、
各新規着信(現行)参照の処理時に再使用距離を容易に
求められることが明らかであろう。新規参照で受け取っ
たページがすでにキャッシュ内にある場合の再使用カウ
ントが、その参照の再使用距離になる。システムによっ
ては、ページ置換方策の向上のために、このようなカウ
ントを自動的にとるものもあることが、当業者ならわか
るであろう。そのようなシステムでは、本発明のこの態
様を実施するのに必要なプログラミングの量は最小限に
なる。このようにして、ボックス504の処理によって
生成された再使用距離分布は、横(x)軸に沿ってプロ
ットされた再使用距離を有し、縦(y)軸に沿ってプロ
ットされた度数を有することになる。
【0038】キャッシュ・ミス率を生成する次の処理ス
テップは、流れ図ボックス506によって示されてお
り、反復ページ参照を計算に入れるために再使用シフト
を計算する。前述のように、スタック距離は、再使用距
離から反復ページ数を引いた値と定義される。最初の処
理ステップ502で再使用距離が得られ、このステップ
506で反復ページ数が得られる。この値は、前掲の数
式9を使用して再使用距離から容易に求めることができ
る。このような処理は、キャッシュ・コントローラによ
るキャッシュ・ディレクトリ処理によって実施すること
ができる。再使用シフトによって、再使用分布曲線が水
平方向に移動する。
【0039】本発明は、各参照の検数を増して重複ペー
ジ数を求めるのではなく、確率的な方式で重複ページ・
カウントを求めることを企図する。この計算によって、
実際の統計値の妥当な近似値をより高い効率で得られる
ことがわかっている。この近似値は、前掲の数式11に
よって規定された数学的関係によって得られる。したが
って、ボックス506の処理は、上述の処理ではなく数
式11の計算を含むことができ、参照毎にカウントを維
持する。この近似計算は、キャッシュ・ミス率を求める
のに必要な重複ページ情報を得る、より効率的な手段で
ある。
【0040】重複ページ・カウント処理の後、次のステ
ップ508は前のステップ506によって求められた再
使用シフトを引くことによって、再使用分布曲線をシフ
トすることである。このシフト・ステップでは、再使用
分布処理を行った各キャッシュ・サイズについて、対応
する再使用シフト量を求める。再使用シフトを求めて差
し引いた後、次の処理ステップは、流れ図ボックス50
8が示すように、キャッシュ・ミス率曲線として調整さ
れた再使用分布曲線を生成することである。
【0041】図6は、図5の流れ図に示すステップによ
って行われた処理をグラフで表したものである。図6の
最初の曲線602は、参照ストリームの処理によって求
めることができる累積再使用分布を示す。この曲線は、
図5のボックス502の処理によって生成される。参照
ストリームはデータ参照のストリームであり、このよう
な参照は、システム・トレースなどからのオフライン・
データ、またはシステムの動作中に行われるリアルタイ
ム参照のストリームとすることができることを理解され
たい。図6の2番目の曲線604は、データ・ストリー
ム内の各参照の重複ページのカウントから計算された累
積分布を示す。この曲線は、図5のボックス504の処
理を表す。曲線604の矢印は、再使用分布において行
う負のシフトを示す。負のシフトは分析する各キャッシ
ュ・サイズについて行われることを理解されたい。すな
わち、キャッシュ・サイズ分析の細分性のレベルで、重
複ページ・シフトの計算が行われる。図6の最後の曲線
606は、重複ページ・シフトが適用され、再使用分布
における負のシフトが実施された後に計算された結果の
キャッシュ・ミス率曲線を示す。この曲線は、図5のボ
ックス508の処理に対応する。
【0042】したがって、ストリーム内の各参照につい
てスタック距離を求めずに、キャッシュ・ミス率が得ら
れる。これにより、キャッシュ動作のシミュレーション
の処理と実行の効率が向上する。このようにして、最適
処理のためのキャッシュ・パラメータの調整が容易にな
る。
【0043】再使用分布の生成 図7は、再使用分布を生成する際に図3のコンピュータ
処理システムによって実行される処理ステップを示す流
れ図である。これは、キャッシュ・ミス率を求めるため
の基礎になる初期分布である。
【0044】ボックス702の流れ図で示された最初の
処理ステップで、コンピュータ処理システムはキャッシ
ュ項目に索引付けしてキャッシュ索引を作成する。キャ
ッシュ内の各項目はそれに関連づけられた索引またはキ
ャッシュ内の場所を有することになる。本発明により構
築されたLRUキャッシュの場合、当業者に周知のよう
にハッシュ・テーブルを使用してキャッシュ・ディレク
トリを実施する。具体的には、ハッシュ・テーブル内の
各項目には連係リストを指すポインタが入れられ、した
がって、キャッシュ内の各ページに対応する連係リスト
項目がある。連係リストは、ページが最後に参照された
時点に従って順序づけられる。新しい参照を受け取る
と、そのページ・アドレスをハッシュしてハッシュ・テ
ーブルでそのページ・アドレスを見つける。ページがハ
ッシュ・テーブルにある場合、ポインタに従って連係リ
スト項目を見つける。次にその項目をリストの先頭(最
上位)に移動させる。ページがキャッシュ内にない場
合、また、キャッシュがいっぱいの場合は、連係リスト
内の最後の項目を調べて置き換えるページを選択する。
このようにして、LRUキャッシュは一定数の操作を使
用して参照を処理する。したがって、1サイズのキャッ
シュのキャッシュ・ミス率が求められる。一定範囲のサ
イズについてキャッシュ・ミス率曲線を求めるには、す
べての参照のスタック距離を求めなければ成らず、きわ
めて高くつく可能性がある。
【0045】次に、各キャッシュ項目または索引場所に
ついて、処理システムは、最後の参照の参照番号を決定
する。この処理を、流れ図ボックス704で示す。シス
テムは、連続番号または操作間隔をデータ・ストリーム
内の各参照のオカレンスと関連づける参照番号を維持す
る。ページが参照されるたびに、システムは参照番号カ
ウントを増分し、その参照番号カウントを参照されたペ
ージに関連づける。
【0046】次に、システムは各新規参照またはデータ
要求を順に処理する。処理する参照のストリームは、オ
フライン・モードで分析されるシステム・トレース・デ
ータとシステムで受け取られるときにリアル・タイムの
実際の参照のストリームのいずれであってもよいことを
理解されたい。すなわち、本発明は、キャッシュ・ミス
率のリアルタイム計算を可能にし、それによって、キャ
ッシュ・サイズやワークストリーム割振りを含むキャッ
シュ動作パラメータの動的調整を可能にする。図7の流
れ図のボックス706に示す各新規現行参照を処理する
には、システムは、要求されたデータ・ブロックがキャ
ッシュ内にあるか(キャッシュ・ヒット)またはデータ
・ブロックが見つからない(キャッシュ・ミス)かを判
断する。この処理は、ボックス702に関して前述した
ようにハッシュ・テーブルを使用して実施することがで
きる。
【0047】キャッシュ・ヒット/ミスの決定を図7の
決定ボックス708に示す。参照がキャッシュ内に見つ
かった場合はキャッシュ・ヒットがあったことであり、
決定ボックスの結果は肯定になり、ボックス710でシ
ステムは、現行参照の再使用距離を、現行参照番号から
直前の参照番号を引いた値に設定する。これは、前述の
数式3の処理によって得られる結果と等しい。
【0048】ボックス710の再使用距離の設定では、
参照カウントを維持し、そのカウントを、参照される各
データ・ブロックまたはページに関連づけることに留意
されたい。いずれかのデータ・ページが参照されるたび
に、参照カウントが増分されて固有の識別番号が生成さ
れる。関連づけられた参照番号とページ番号は、ページ
が最後に参照された最後の時点を追跡するディレクトリ
またはテーブルで維持することができる。その場合、再
使用距離の決定は、単純に新しいカウントから古いカウ
ントを引くだけである。たとえば、図2に、参照A、
B、C、B、D、C、C、Aのストリームを示す。対応
する参照カウント1、2、3、...、8の場合、ペー
ジAが最初に参照されたとき、ページAにはR=1の参
照カウントRが関連づけられることは明らかであろう。
ページAが次に参照されたとき、参照カウントはR=8
である。システムは、ページAが最後の参照カウントR
=1で参照されたことを呼び起こし、したがって(ボッ
クス710)で再使用距離RがR=8=8−1=7であ
ると決定する。
【0049】参照カウンタは、たとえば32ビット・カ
ウンタで実施することができ、それによって、カウンタ
値が折り返すまで、すなわちゼロから始まるまで、約1
0億個の参照をカウントすることができる。折り返し点
で、「古い」ページの参照カウントが現行ページの参照
カウントよりも小さくなることは明らかであろう。好ま
しい実施形態は、ページが参照されてからの経過時間が
長いほど、そのページがキャッシュ・ディレクトリ内に
とどまっている可能性が低くなるという認識によって、
折り返し状況を比較的単純な方式で処理する。したがっ
て、古いページの参照カウントが現行ページの参照カウ
ントよりも大きい場合、システムは、参照カウンタが1
回折り返したものと想定し、現行参照カウンタの決定を
調整する。参照カウンタのサイズは、この想定が本発明
が実施されるシステムにとって有効になるように選定さ
れる。32ビット・カウンタはほとんどのシステムにと
って妥当なサイズであることがわかっている。
【0050】具体的には、折り返し調整は、折り返し状
況が検出されるとシステムが最大カウント・サイズから
古い参照カウント値を引き、次に新しい(現行)参照カ
ウント値を加えるようにして実施することができる。た
とえば、参照カウンタ値がR=255で折り返す場合で
あって、図2の例の最初のAページ参照に参照カウント
値R=254が関連づけられている場合、参照カウンタ
値がR=5のときにページAの2番目の参照が行われ
る。システムがキャッシュ・ディレクトリでページAを
検索し、新しい参照カウント値が古い参照カウント値よ
りも小さいとわかった場合、システムは折り返しが行わ
れたと想定する。それに応答して、システムは、古いも
のから新しいものを引くことによって、再使用距離を求
めるのではなく、以下の数式12によって再使用距離を
求める。
【数12】 R=Maxcount−Oldercount+Currentcount (12)
【0051】上式で、この例の場合、R=256−25
4+5=7である。これは、ボックス710の処理のた
めに示した第1の例で計算されたのと同じ値であること
に留意されたい。
【0052】キャッシュ・ミスがあった場合、すなわち
ボックス708の結果が否定の場合、現行参照の再使用
距離は所定の値、典型的にはキャッシュにおける参照に
ついて予測されるよりも大きい値に設定され、それによ
って、後でキャッシュ・ミスの数が比較的決定しやすく
なる。この処理を流れ図のボックス712に示す。
【0053】キャッシュ・ヒットかキャッシュ・ミスか
の決定が行われた後、処理がキャッシ・ディレクトリ項
目を新しい参照番号に更新する処理に進む。すなわち、
キャッシュ「スタック」の最上位が新規データによって
更新される。この処理を流れ図ボックス714に示す。
次に、新たに求められた再使用距離が再使用検数に加え
られ、再使用分布関数の計算が維持される。この処理を
流れ図のボックス716に示す。
【0054】最後に、コンピュータ・システムは処理す
る参照が他にないか調べる。前述のように、この追加の
参照は、オフライン処理されるシステム・トレースでの
他のデータ参照を指していても、データ参照の順次リア
ルタイム・ストリームにおけるデータ参照を指していて
もよい。いずれも場合も、処理する追加の参照がある場
合、ボックス718の結果が肯定になり、処理はボック
ス706に戻り次の(現行)参照を調べる。リアルタイ
ム分析が終わったか、またはシステム・トレースの処理
が終わったために、処理する参照がそれ以上ない場合、
ボックス718での否定の処理結果により、他のシステ
ム処理が続けられることが示される。
【0055】キャッシュ管理の実行 図8は、本発明によるキャッシュ管理タスクを実行する
ために図3のコンピュータ処理システムによって実行さ
れる処理ステップを示す流れ図である。前述のように、
キャッシュ・ミス率を使用して、キャッシュ・サイズや
データベース間を流れる作業負荷ストリームの割振りな
どのキャッシュ動作パラメータを決定する。本発明によ
ると、キャッシュ・ミス率を求めるためのトレース・デ
ータのオフライン処理が効率化され、それによって、シ
ステム・データのリアルタイム処理がシステム動作中に
キャッシュ・ミス率を決定し、それに応じてキャッシュ
動作パラメータを調整することが十分に可能になる。こ
のような機能を図8の流れ図に示す。
【0056】流れ図のボックス802に示すシステム操
作の最初のステップは、初期キャッシュ動作パラメータ
を設定する初期ステップである。たとえば、履歴データ
またはその他のデフォルトの割振り方法に基づいて、初
期キャッシュ・サイズまたは割振りを行うことができ
る。次の処理ステップは、データ・ストリームの再使用
分布を求めることである。流れ図のボックス804に示
すこのようなキャッシュ・ミス率処理は、適切な分布デ
ータが決定されるように各新規参照について行われる。
【0057】再使用分布処理が完了した後、再使用シフ
トを計算してからでなければ、キャッシュ・ミス率を求
めることができない。スタック再使用統計からキャッシ
ュ・ミス率を求める上述の技法は十分に効率的であるた
め、参照のデーター・ストリームを受け取って、リアル
タイムで処理してキャッシュ・ミス率を求めることがで
きるが、リアルタイムよりも幾分遅くシステムを動作さ
せることが望ましい場合もある。したがって、図8の決
定ボックス806に、各参照に関する再使用分布を累算
する決定を示す。図5に関して前述したように再使用分
布を定期的に統計的に解釈し、キャッシュ・ミス率曲線
を生成する。このようにして、動的キャッシュ動作パラ
メータ調整を、累算データに基づいて定期的な間隔で、
または参照サイズやその他の効率測定基準などの所定の
データ事象に応答して行うことができる。しかし、通常
は、再使用分布および近似再使用シフトは、システムが
動作しているときにリアルタイムで絶えず計算する。
【0058】トリガ事象またはデフォルトにより、再使
用シフトを計算する時点が示された場合、決定ボックス
806での結果が肯定の場合の処理は、再使用シフトを
計算することと、キャッシュ・ミス率を求めることであ
る。この処理は、流れ図のボックス808に示されてい
る。再使用シフトを計算するか否かを問わず、システム
はキャッシュ動作パラメータの動的調整を可能にする。
すなわち、キャッシュ・パラメータは、ミス率が所定の
レベルに達した場合にのみ調整することが望ましい場合
がある。さらに、システム動作特性は、キャッシュ調整
決定を行うのに現行計算再使用シフトとキャッシュ・ミ
ス率が必要がないようなものでなければならない。した
がって、再使用シフトを計算しない場合、すなわち決定
ボックス806の結果が否定の場合、再使用シフトとキ
ャッシュ・ミス率が計算された後、システムは決定ボッ
クス810でキャッシュ・パラメータの調整に関する決
定を行う。したがって、この決定では、キャッシュ・ミ
ス率がトリガ・レベルであるかどうかを調べるか、計算
時刻または作業負荷量の決定を行う。
【0059】キャッシュ調整を行う必要がある場合、す
なわち決定ボックス810で肯定の結果になった場合、
システムはキャッシュ動作パラメータをそれに応じて調
整する。この調整処理を流れ図のボックス812に示
す。前述のように、これには、特定のデータベースを必
要とするデータ・ストリームを異なるキャッシュ区分に
割り振るか、またはキャッシュ・サイズに割り振られた
記憶資源の調整を行う。このような処理812は、受け
取った参照ストリームに応答してリアルタイムで行うこ
とができる。調整が不要な場合、すなわちボックス81
0で否定の結果の場合、一般的なシステム動作が続けら
れる。
【0060】結果 TPC−CおよびTPC−Dと呼ばれる業界標準データ
ベース・ベンチマークに類似した作業負荷からとられた
トレースを使用して、シミュレーションを行った。本発
明により構築されたシステムを使用したこのシミュレー
ションの結果を図9に示す。128MBの固定データベ
ース・バッファ・プール・サイズを仮定した。キャッシ
ュには「ウォームアップ」動作期間があった。図9に、
4Kおよび16Mの参照の推定間隔の結果を示す。すな
わち、キャッシュ内で参照されるデータ・ブロックのサ
イズは、4Kまたは16Mのブロックである。キャッシ
ュが所定のウォームアップ期間後にいっぱいになったと
ころでのみ、データ・ポイントをプロットしている。本
発明による技法は、実際のLRUスタックをきわめてい
近く近似計算し、実際に、TPC−Cベンチマークに類
似した作業負荷の場合、この曲線は実質的に区別できな
いことがわかる。
【0061】TPC−Dプロットの右端方向の不一致
は、大きいキャッシュ・サイズで良好な近似検査を可能
にするには参照数が不十分であった結果であることがわ
かった。この技法は推定間隔または細分性の影響を受け
ないように思われることに留意されたい。TPC−Cお
よびTPC−Dデータに関して得られた良好な結果は、
様々な大企業のピーク実働データベース作業負荷から得
られたテスト・データでも再現された。一般に、再使用
シフトを行う前に必要な観測数は、少なくとも期待再使
用距離と同等でなければならないことがわかった。さら
に、シミュレーションを開始する前にキャッシュをいっ
ぱいにするために、トレース作業負荷をしばらく実行し
てウォーム・スタートと呼ばれるものを行った。
【0062】以上、本発明を理解できるように、本発明
について現在のところ好ましい実施形態を示して説明し
た。しかし、本明細書に特に記載していないが、本発明
を適用することができるキャッシュ管理システムの構成
は多数ある。したがって、本発明は、本明細書に記載の
特定の実施形態に限定されると見なすべきではなく、本
発明はキャッシュ管理システム一般に対して広く適用可
能であるものと理解すべきである。したがって、特許請
求の範囲内のあらゆる変更、変形、または同等の構成お
よび実施態様が、本発明の範囲に含まれるとみなすべき
である。
【0063】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0064】(1)コンピュータ・システムにおいてデ
ータ・ページを一時的に記憶するキャッシュ記憶システ
ムを動作させる方法であって、前記キャッシュ記憶シス
テムへのデータ参照のストリームの再使用分布を生成す
るステップと、反復ページ参照数を求め、再使用シフト
量を計算するステップと、前記再使用分布を計算された
前記再使用シフト量によって調整するステップと、前記
キャッシュ記憶システムのキャッシュ・ミス率を規定す
る調整されたキャッシュ・スタック距離を生成するステ
ップとを含む方法。 (2)生成された前記キャッシュ・ミス率に応答して、
前記キャッシュ記憶システムの1つまたは複数の動作パ
ラメータを調整するステップをさらに含む、上記(1)
に記載の方法。 (3)前記キャッシュ・ミス率が前記キャッシュ記憶シ
ステムの通常動作中に生成される、上記(1)に記載の
方法。 (4)前記キャッシュ・ミス率が前記コンピュータ・シ
ステムにおけるデータ参照のリアルタイム連続ストリー
ムに応答して生成される、上記(1)に記載の方法。 (5)再使用分布を生成する前記ステップが、データ参
照の前記ストリーム内の各新規キャッシュ・データ参照
の再使用距離を求めるステップと、求められた前記再使
用距離で参照データ・ページのキャッシュ・ディレクト
リを更新するステップと、データ参照の前記ストリーム
における求められた各再使用距離を再使用検数に加え、
それによって再使用距離の検数を維持するステップとを
含む、上記(1)に記載の方法。 (6)再使用距離を求める前記ステップが、前記データ
・ストリーム内の各新規データ・ページ参照について固
有の参照カウント番号を割り当てるステップと、前記デ
ータ・ページが以前に参照されている場合、前記データ
・ページの直前の参照カウント番号を決定するステップ
と、前記再使用距離を、前記キャッシュ内の現行データ
・ページ参照の参照カウントから同じデータ・ページの
直前の参照カウントを引いた値に設定するステップとを
含む、上記(5)に記載の方法。 (7)前記再使用距離を設定する前記ステップが、現行
データ・ページの参照カウント番号が同じデータ・ペー
ジの直前の参照カウント番号より小さいか否かを判断す
るステップと、それに応答して、最大参照カウント値か
ら前記直前の参照カウント番号を引き、現行参照カウン
ト番号を加えることによって、前記再使用距離を求める
ステップとを含む、上記(6)に記載の方法。 (8)前記キャッシュ記憶システムがLRU(Least Re
cently Used:最長期間不使用)キャッシュとして動作さ
れる、上記(1)に記載の方法。 (9)コンピュータ・システムにおいてデータ・ページ
を一時的に記憶するキャッシュ記憶システムであって、
データ・ページを受け入れるキャッシュ記憶装置と、前
記キャッシュ記憶システムへのデータ・ページ参照のス
トリームの再使用分布を生成し、反復ページ参照数を求
め、再使用シフト量を計算し、計算された前記再使用シ
フト量によって前記再使用分布を調整し、前記キャッシ
ュ記憶システムのキャッシュ・ミス率を規定する調整さ
れたキャッシュ・スタック距離を生成するキャッシュ・
コントローラとを含むシステム。 (10)前記キャッシュ・コントローラがさらに、生成
された前記キャッシュ・ミス率に応答して前記キャッシ
ュ記憶システムの1つまたは複数の動作パラメータを調
整する、上記(9)に記載のシステム。 (11)前記キャッシュ・コントローラが、前記キャッ
シュ記憶システムの通常動作中に前記キャッシュ・ミス
率を生成する、上記(9)に記載のシステム。 (12)前記キャッシュ・コントローラが、前記コンピ
ュータ・システムにおけるデータ参照のリアルタイム連
続ストリームに応答して前記キャッシュ・ミス率を生成
する、上記(9)に記載のシステム。 (13)前記キャッシュ・コントローラがデータ参照の
前記ストリーム内の各新規キャッシュ・データ参照の再
使用距離を求め、求められた前記再使用距離で参照デー
タ・ページのキャッシュ・ディレクトリを更新し、デー
タ参照の前記ストリームにおける求められた各再使用距
離を再使用検数に加え、それによって再使用距離の検数
を維持することによって、再使用分布を生成する、上記
(9)に記載のシステム。 (14)前記キャッシュ・コントローラが、前記データ
・ストリーム内の各新規データ・ページ参照について固
有の参照カウント番号を割り当て、前記データ・ページ
が以前に参照されている場合、前記データ・ページの直
前の参照カウント番号を決定し、前記再使用距離を、前
記キャッシュ内の現行データ・ページ参照の参照カウン
トから同じデータ・ページの直前の参照カウントを引い
た値に設定することによって、再使用距離を求める、上
記(13)に記載のシステム。 (15)前記キャッシュ・コントローラが、現行データ
・ページの参照カウント番号が同じデータ・ページの直
前の参照カウント番号より小さいか否かを判断し、それ
に応答して、最大参照カウント値から前記直前の参照カ
ウント番号を引き、現行参照カウント番号を加えること
によって前記再使用距離を求めることによって、前記再
使用距離を設定する、上記(14)に記載のシステム。 (16)コンピュータ・システムにおいてデータ・ペー
ジを一時的に記憶するキャッシュ記憶システム用のキャ
ッシュ・コントローラであって、中央処理装置と、前記
中央処理装置がそれを介して1つまたは複数のコンピュ
ータと通信するネットワーク・インタフェースと、前記
中央処理装置によって実行され、前記キャッシュ記憶シ
ステムへのデータ参照のストリームの再使用分布を生成
し、反復ページ参照数を求め、再使用シフト量を計算
し、計算された前記再使用シフト量によって前記再使用
分布を調整し、前記キャッシュ記憶システムのキャッシ
ュ・ミス率を規定する調整されたキャッシュ・スタック
距離を生成するプログラム・ステップを含むプログラム
・メモリとを含むキャッシュ・コントローラ。 (17)前記プログラム・ステップがさらに、前記中央
処理装置に、生成された前記キャッシュ・ミス率に応答
して前記キャッシュ記憶システムの1つまたは複数の動
作パラメータを調整させる、上記(16)に記載のキャ
ッシュ・コントローラ。 (18)前記中央処理装置が、前記キャッシュ記憶シス
テムの通常動作中に前記キャッシュ・ミス率を生成す
る、上記(16)に記載のキャッシュ・コントローラ。 (19)前記中央処理装置が、前記コンピュータ・シス
テムにおけるデータ参照のリアルタイム連続ストリーム
に応答して前記キャッシュ・ミス率を生成する、上記
(16)に記載のキャッシュ・コントローラ。 (20)前記中央処理装置が、データ参照の前記ストリ
ーム内の各新規キャッシュ・データ参照の再使用距離を
求め、求められた前記再使用距離で参照データ・ページ
のキャッシュ・ディレクトリを更新し、データ参照の前
記ストリームにおける求められた各再使用距離を再使用
検数に加え、それによって再使用距離の検数を維持する
ことによって、前記再使用分布を生成する、上記(1
6)に記載のキャッシュ・コントローラ。 (21)前記中央処理装置が、前記データ・ストリーム
内の各新規データ・ページ参照について固有の参照カウ
ント番号を割り当て、前記データ・ページが以前に参照
されている場合、前記データ・ページの直前の参照カウ
ント番号を決定し、前記再使用距離を、前記キャッシュ
内の現行データ・ページ参照の参照カウントから同じデ
ータ・ページの直前の参照カウントを引いた値に設定す
ることによって、再使用距離を求める、上記(20)に
記載のキャッシュ・コントローラ。 (22)前記中央処理装置が、現行データ・ページの参
照カウント番号が同じデータ・ページの直前の参照カウ
ント番号より小さいか否かを判断し、最大参照カウント
値から前記直前の参照カウント番号を引き、現行参照カ
ウント番号を加えることによって前記再使用距離を求め
ることによって、前記再使用距離を設定する、上記(2
1)に記載のキャッシュ・コントローラ。 (23)前記中央処理装置がLRU(Least Recently U
sed:最長期間不使用)キャッシュとして動作される、上
記(16)に記載のキャッシュ・コントローラ。 (24)コンピュータ・システムにおいてデータ・ペー
ジを一時的に記憶するキャッシュ記憶システムを動作さ
せる方法を実行するために、コンピュータ可読媒体内に
記録されたプログラム・ステップを実行するコンピュー
タ・システムにおいて使用するプログラム製品であっ
て、記録可能媒体と、前記コンピュータ・システムによ
って実行可能なコンピュータ可読命令から成るプログラ
ムとを含み、前記プログラムが、前記キャッシュ記憶シ
ステムへのデータ参照のストリームの再使用分布を生成
するステップと、反復ページ参照数を求め、再使用シフ
ト量を計算するステップと、前記再使用分布を計算され
た前記再使用シフト量によって調整するステップと、前
記キャッシュ記憶システムのキャッシュ・ミス率を規定
する調整されたキャッシュ・スタック距離を生成するス
テップとを実行するためのものであるプログラム製品。 (25)前記プログラム・ステップが、生成された前記
キャッシュ・ミス率に応答して、前記キャッシュ記憶シ
ステムの1つまたは複数の動作パラメータを調整するス
テップをさらに含む、上記(24)に記載のプログラム
製品。 (26)前記キャッシュ・ミス率が前記キャッシュ記憶
システムの通常動作中に生成される、上記(24)に記
載のプログラム製品。 (27)前記キャッシュ・ミス率が前記コンピュータ・
システムにおけるデータ参照のリアルタイム連続ストリ
ームに応答して生成される、上記(24)に記載のプロ
グラム製品。 (28)再使用分布を生成する前記プログラム・ステッ
プが、データ参照の前記ストリーム内の各新規キャッシ
ュ・データ参照の再使用距離を求めるステップと、求め
られた前記再使用距離で参照データ・ページのキャッシ
ュ・ディレクトリを更新するステップと、データ参照の
前記ストリームにおける求められた各再使用距離を再使
用検数に加え、それによって再使用距離の検数を維持す
るステップとを含む、上記(24)に記載のプログラム
製品。 (29)再使用距離を求める前記プログラム・ステップ
が、前記データ・ストリーム内の各新規データ・ページ
参照について固有の参照カウント番号を割り当てるステ
ップと、前記データ・ページが以前に参照されている場
合、前記データ・ページの直前の参照カウント番号を決
定するステップと、前記再使用距離を、前記キャッシュ
内の現行データ・ページ参照の参照カウントから同じデ
ータ・ページの直前の参照カウントを引いた値に設定す
るステップとを含む上記(28)に記載のプログラム製
品。 (30)前記再使用距離を設定する前記プログラム・ス
テップが、現行データ・ページの参照カウント番号が同
じデータ・ページの直前の参照カウント番号より小さい
か否かを判断するステップと、最大参照カウント値から
前記直前の参照カウント番号を引き、現行参照カウント
番号を加えることによって前記再使用距離を求めるステ
ップとを含む、上記(29)に記載のプログラム製品。 (31)前記プログラム・ステップがLRU(Least Re
cently Used:最長期間不使用)キャッシュとして動作さ
れる、上記(24)に記載のプログラム製品。
【図面の簡単な説明】
【図1】キャッシュ・ヒットおよびミスを生成するデー
タ参照のシーケンスを示す、キャッシュのスタック図で
ある。
【図2】本発明により定義されたキャッシュ再使用距離
を示す、キャッシュ内の参照のストリームを示すスタッ
ク図である。
【図3】本発明により構成されたキャッシュ管理システ
ムを示すブロック図である。
【図4】図3に図示するキャッシュ制御コンピュータを
示す詳細ブロック図である。
【図5】本発明によるキャッシュ・ミス率曲線の導出を
実施するために、図3のコンピュータ処理システムによ
って実行される処理ステップを示す流れ図である。
【図6】図5のプログラム・ステップによって実行され
るデータ処理を示す図である。
【図7】再使用分布を生成する際に、図3のコンピュー
タ処理システムよって実行される処理ステップを示す流
れ図である。
【図8】本発明によるキャッシュ管理タスクを行うため
に、図3のコンピュータ処理システムによって実行され
る処理ステップを示す流れ図である。
【図9】本発明により構成されたシステムのトレース方
式シミュレーションの結果を示すグラフである。
【符号の説明】
300 キャッシュ管理システム 302 キャッシュ記憶装置 304 キャッシュ・コントローラ 305 キャッシュ・メモリ 306 ネットワーク 310 ユーザ・コンピュータ 312 ユーザ・コンピュータ 314 ユーザ・コンピュータ 402 コンピュータ 404 中央処理装置 406 メイン・メモリ 408 プログラム・メモリ 410 データ・メモリ 416 プログラム製品読取装置 418 プログラム製品記憶装置 414 直接アクセス記憶装置 420 ネットワーク・インタフェース
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ウィンザー・ウィー・スン・シュー アメリカ合衆国94087 カリフォルニア州 サニーヴェール クレシェント・テラス 1223 (72)発明者 オネスティー・チェン・ヤング アメリカ合衆国95070 カリフォルニア州 サラトガ トリシア・ウェイ20438

Claims (31)

    【特許請求の範囲】
  1. 【請求項1】コンピュータ・システムにおいてデータ・
    ページを一時的に記憶するキャッシュ記憶システムを動
    作させる方法であって、 前記キャッシュ記憶システムへのデータ参照のストリー
    ムの再使用分布を生成するステップと、 反復ページ参照数を求め、再使用シフト量を計算するス
    テップと、 前記再使用分布を計算された前記再使用シフト量によっ
    て調整するステップと、 前記キャッシュ記憶システムのキャッシュ・ミス率を規
    定する調整されたキャッシュ・スタック距離を生成する
    ステップとを含む方法。
  2. 【請求項2】生成された前記キャッシュ・ミス率に応答
    して、前記キャッシュ記憶システムの1つまたは複数の
    動作パラメータを調整するステップをさらに含む、請求
    項1に記載の方法。
  3. 【請求項3】前記キャッシュ・ミス率が前記キャッシュ
    記憶システムの通常動作中に生成される、請求項1に記
    載の方法。
  4. 【請求項4】前記キャッシュ・ミス率が前記コンピュー
    タ・システムにおけるデータ参照のリアルタイム連続ス
    トリームに応答して生成される、請求項1に記載の方
    法。
  5. 【請求項5】再使用分布を生成する前記ステップが、 データ参照の前記ストリーム内の各新規キャッシュ・デ
    ータ参照の再使用距離を求めるステップと、 求められた前記再使用距離で参照データ・ページのキャ
    ッシュ・ディレクトリを更新するステップと、 データ参照の前記ストリームにおける求められた各再使
    用距離を再使用検数に加え、それによって再使用距離の
    検数を維持するステップとを含む、請求項1に記載の方
    法。
  6. 【請求項6】再使用距離を求める前記ステップが、 前記データ・ストリーム内の各新規データ・ページ参照
    について固有の参照カウント番号を割り当てるステップ
    と、 前記データ・ページが以前に参照されている場合、前記
    データ・ページの直前の参照カウント番号を決定するス
    テップと、 前記再使用距離を、前記キャッシュ内の現行データ・ペ
    ージ参照の参照カウントから同じデータ・ページの直前
    の参照カウントを引いた値に設定するステップとを含
    む、請求項5に記載の方法。
  7. 【請求項7】前記再使用距離を設定する前記ステップ
    が、現行データ・ページの参照カウント番号が同じデー
    タ・ページの直前の参照カウント番号より小さいか否か
    を判断するステップと、それに応答して、最大参照カウ
    ント値から前記直前の参照カウント番号を引き、現行参
    照カウント番号を加えることによって、前記再使用距離
    を求めるステップとを含む、請求項6に記載の方法。
  8. 【請求項8】前記キャッシュ記憶システムがLRU(Le
    ast Recently Used:最長期間不使用)キャッシュとして
    動作される、請求項1に記載の方法。
  9. 【請求項9】コンピュータ・システムにおいてデータ・
    ページを一時的に記憶するキャッシュ記憶システムであ
    って、 データ・ページを受け入れるキャッシュ記憶装置と、 前記キャッシュ記憶システムへのデータ・ページ参照の
    ストリームの再使用分布を生成し、反復ページ参照数を
    求め、再使用シフト量を計算し、計算された前記再使用
    シフト量によって前記再使用分布を調整し、前記キャッ
    シュ記憶システムのキャッシュ・ミス率を規定する調整
    されたキャッシュ・スタック距離を生成するキャッシュ
    ・コントローラとを含むシステム。
  10. 【請求項10】前記キャッシュ・コントローラがさら
    に、生成された前記キャッシュ・ミス率に応答して前記
    キャッシュ記憶システムの1つまたは複数の動作パラメ
    ータを調整する、請求項9に記載のシステム。
  11. 【請求項11】前記キャッシュ・コントローラが、前記
    キャッシュ記憶システムの通常動作中に前記キャッシュ
    ・ミス率を生成する、請求項9に記載のシステム。
  12. 【請求項12】前記キャッシュ・コントローラが、前記
    コンピュータ・システムにおけるデータ参照のリアルタ
    イム連続ストリームに応答して前記キャッシュ・ミス率
    を生成する、請求項9に記載のシステム。
  13. 【請求項13】前記キャッシュ・コントローラがデータ
    参照の前記ストリーム内の各新規キャッシュ・データ参
    照の再使用距離を求め、 求められた前記再使用距離で参照データ・ページのキャ
    ッシュ・ディレクトリを更新し、 データ参照の前記ストリームにおける求められた各再使
    用距離を再使用検数に加え、それによって再使用距離の
    検数を維持することによって、再使用分布を生成する、
    請求項9に記載のシステム。
  14. 【請求項14】前記キャッシュ・コントローラが、 前記データ・ストリーム内の各新規データ・ページ参照
    について固有の参照カウント番号を割り当て、 前記データ・ページが以前に参照されている場合、前記
    データ・ページの直前の参照カウント番号を決定し、 前記再使用距離を、前記キャッシュ内の現行データ・ペ
    ージ参照の参照カウントから同じデータ・ページの直前
    の参照カウントを引いた値に設定することによって、再
    使用距離を求める、請求項13に記載のシステム。
  15. 【請求項15】前記キャッシュ・コントローラが、現行
    データ・ページの参照カウント番号が同じデータ・ペー
    ジの直前の参照カウント番号より小さいか否かを判断
    し、それに応答して、最大参照カウント値から前記直前
    の参照カウント番号を引き、現行参照カウント番号を加
    えることによって前記再使用距離を求めることによっ
    て、前記再使用距離を設定する、請求項14に記載のシ
    ステム。
  16. 【請求項16】コンピュータ・システムにおいてデータ
    ・ページを一時的に記憶するキャッシュ記憶システム用
    のキャッシュ・コントローラであって、 中央処理装置と、 前記中央処理装置がそれを介して1つまたは複数のコン
    ピュータと通信するネットワーク・インタフェースと、 前記中央処理装置によって実行され、前記キャッシュ記
    憶システムへのデータ参照のストリームの再使用分布を
    生成し、反復ページ参照数を求め、再使用シフト量を計
    算し、計算された前記再使用シフト量によって前記再使
    用分布を調整し、前記キャッシュ記憶システムのキャッ
    シュ・ミス率を規定する調整されたキャッシュ・スタッ
    ク距離を生成するプログラム・ステップを含むプログラ
    ム・メモリとを含むキャッシュ・コントローラ。
  17. 【請求項17】前記プログラム・ステップがさらに、前
    記中央処理装置に、生成された前記キャッシュ・ミス率
    に応答して前記キャッシュ記憶システムの1つまたは複
    数の動作パラメータを調整させる、請求項16に記載の
    キャッシュ・コントローラ。
  18. 【請求項18】前記中央処理装置が、前記キャッシュ記
    憶システムの通常動作中に前記キャッシュ・ミス率を生
    成する、請求項16に記載のキャッシュ・コントロー
    ラ。
  19. 【請求項19】前記中央処理装置が、前記コンピュータ
    ・システムにおけるデータ参照のリアルタイム連続スト
    リームに応答して前記キャッシュ・ミス率を生成する、
    請求項16に記載のキャッシュ・コントローラ。
  20. 【請求項20】前記中央処理装置が、 データ参照の前記ストリーム内の各新規キャッシュ・デ
    ータ参照の再使用距離を求め、 求められた前記再使用距離で参照データ・ページのキャ
    ッシュ・ディレクトリを更新し、 データ参照の前記ストリームにおける求められた各再使
    用距離を再使用検数に加え、それによって再使用距離の
    検数を維持することによって、前記再使用分布を生成す
    る、請求項16に記載のキャッシュ・コントローラ。
  21. 【請求項21】前記中央処理装置が、 前記データ・ストリーム内の各新規データ・ページ参照
    について固有の参照カウント番号を割り当て、 前記データ・ページが以前に参照されている場合、前記
    データ・ページの直前の参照カウント番号を決定し、 前記再使用距離を、前記キャッシュ内の現行データ・ペ
    ージ参照の参照カウントから同じデータ・ページの直前
    の参照カウントを引いた値に設定することによって、再
    使用距離を求める、請求項20に記載のキャッシュ・コ
    ントローラ。
  22. 【請求項22】前記中央処理装置が、現行データ・ペー
    ジの参照カウント番号が同じデータ・ページの直前の参
    照カウント番号より小さいか否かを判断し、最大参照カ
    ウント値から前記直前の参照カウント番号を引き、現行
    参照カウント番号を加えることによって前記再使用距離
    を求めることによって、前記再使用距離を設定する、請
    求項21に記載のキャッシュ・コントローラ。
  23. 【請求項23】前記中央処理装置がLRU(Least Rece
    ntly Used:最長期間不使用)キャッシュとして動作され
    る、請求項16に記載のキャッシュ・コントローラ。
  24. 【請求項24】コンピュータ・システムにおいてデータ
    ・ページを一時的に記憶するキャッシュ記憶システムを
    動作させる方法を実行するために、コンピュータ可読媒
    体内に記録されたプログラム・ステップを実行するコン
    ピュータ・システムにおいて使用するプログラム製品で
    あって、 記録可能媒体と、 前記コンピュータ・システムによって実行可能なコンピ
    ュータ可読命令から成るプログラムとを含み、 前記プログラムが、 前記キャッシュ記憶システムへのデータ参照のストリー
    ムの再使用分布を生成するステップと、 反復ページ参照数を求め、再使用シフト量を計算するス
    テップと、 前記再使用分布を計算された前記再使用シフト量によっ
    て調整するステップと、 前記キャッシュ記憶システムのキャッシュ・ミス率を規
    定する調整されたキャッシュ・スタック距離を生成する
    ステップとを実行するためのものであるプログラム製
    品。
  25. 【請求項25】前記プログラム・ステップが、生成され
    た前記キャッシュ・ミス率に応答して、前記キャッシュ
    記憶システムの1つまたは複数の動作パラメータを調整
    するステップをさらに含む、請求項24に記載のプログ
    ラム製品。
  26. 【請求項26】前記キャッシュ・ミス率が前記キャッシ
    ュ記憶システムの通常動作中に生成される、請求項24
    に記載のプログラム製品。
  27. 【請求項27】前記キャッシュ・ミス率が前記コンピュ
    ータ・システムにおけるデータ参照のリアルタイム連続
    ストリームに応答して生成される、請求項24に記載の
    プログラム製品。
  28. 【請求項28】再使用分布を生成する前記プログラム・
    ステップが、 データ参照の前記ストリーム内の各新規キャッシュ・デ
    ータ参照の再使用距離を求めるステップと、 求められた前記再使用距離で参照データ・ページのキャ
    ッシュ・ディレクトリを更新するステップと、 データ参照の前記ストリームにおける求められた各再使
    用距離を再使用検数に加え、それによって再使用距離の
    検数を維持するステップとを含む、請求項24に記載の
    プログラム製品。
  29. 【請求項29】再使用距離を求める前記プログラム・ス
    テップが、 前記データ・ストリーム内の各新規データ・ページ参照
    について固有の参照カウント番号を割り当てるステップ
    と、 前記データ・ページが以前に参照されている場合、前記
    データ・ページの直前の参照カウント番号を決定するス
    テップと、 前記再使用距離を、前記キャッシュ内の現行データ・ペ
    ージ参照の参照カウントから同じデータ・ページの直前
    の参照カウントを引いた値に設定するステップとを含む
    請求項28に記載のプログラム製品。
  30. 【請求項30】前記再使用距離を設定する前記プログラ
    ム・ステップが、現行データ・ページの参照カウント番
    号が同じデータ・ページの直前の参照カウント番号より
    小さいか否かを判断するステップと、最大参照カウント
    値から前記直前の参照カウント番号を引き、現行参照カ
    ウント番号を加えることによって前記再使用距離を求め
    るステップとを含む、請求項29に記載のプログラム製
    品。
  31. 【請求項31】前記プログラム・ステップがLRU(Le
    ast Recently Used:最長期間不使用)キャッシュとして
    動作される、請求項24に記載のプログラム製品。
JP2000129383A 1999-04-30 2000-04-28 参照の局所性を動的に追跡する高効率技法 Expired - Fee Related JP3657170B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/303,520 US6282613B1 (en) 1999-04-30 1999-04-30 Very efficient technique for dynamically tracking locality of a reference
US09/303520 1999-04-30

Publications (2)

Publication Number Publication Date
JP2000330827A true JP2000330827A (ja) 2000-11-30
JP3657170B2 JP3657170B2 (ja) 2005-06-08

Family

ID=23172496

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000129383A Expired - Fee Related JP3657170B2 (ja) 1999-04-30 2000-04-28 参照の局所性を動的に追跡する高効率技法

Country Status (3)

Country Link
US (1) US6282613B1 (ja)
JP (1) JP3657170B2 (ja)
KR (1) KR100338224B1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008136066A1 (ja) * 2007-04-19 2008-11-13 Turbo Data Laboratories, Inc. メモリ間接参照をメモリ直接参照に変換する方法及び装置
JP2015166896A (ja) * 2014-03-03 2015-09-24 富士通株式会社 情報処理装置、情報処理装置の性能情報採取プログラム及び情報処理装置の性能情報採取方法

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6467028B1 (en) * 1999-09-07 2002-10-15 International Business Machines Corporation Modulated cache for audio on the web
US6493810B1 (en) * 2000-04-28 2002-12-10 Microsoft Corporation Method and system for allocating cache memory for a network database service
US6640285B1 (en) * 2000-10-26 2003-10-28 Emc Corporation Method and apparatus for improving the efficiency of cache memories using stored activity measures
US6823428B2 (en) 2002-05-17 2004-11-23 International Business Preventing cache floods from sequential streams
US7058764B2 (en) * 2003-04-14 2006-06-06 Hewlett-Packard Development Company, L.P. Method of adaptive cache partitioning to increase host I/O performance
US7065424B1 (en) 2004-03-04 2006-06-20 National Semiconductor Corporation Systems and methods that monitor re-qualification indicia associated with durable items to ensure physical process quality
US7606994B1 (en) 2004-11-10 2009-10-20 Sun Microsystems, Inc. Cache memory system including a partially hashed index
US7366871B2 (en) * 2004-11-18 2008-04-29 Sun Microsystems, Inc. Apparatus and method for determining stack distance including spatial locality of running software for estimating cache miss rates based upon contents of a hash table
US7373480B2 (en) * 2004-11-18 2008-05-13 Sun Microsystems, Inc. Apparatus and method for determining stack distance of running software for estimating cache miss rates based upon contents of a hash table
US7519527B2 (en) * 2005-10-31 2009-04-14 International Business Machines Corporation Method for a database workload simulator
US7502775B2 (en) * 2006-03-31 2009-03-10 International Business Machines Corporation Providing cost model data for tuning of query cache memory in databases
US8099577B2 (en) * 2007-03-20 2012-01-17 Oracle International Corporation Managing memory in a system that includes a shared memory area and a private memory area
US9396024B2 (en) * 2008-10-14 2016-07-19 Vmware, Inc. Online computation of cache occupancy and performance
US8429665B2 (en) 2010-03-19 2013-04-23 Vmware, Inc. Cache performance prediction, partitioning and scheduling based on cache pressure of threads
US8914781B2 (en) * 2008-10-24 2014-12-16 Microsoft Corporation Scalability analysis for server systems
US8332586B2 (en) 2009-03-30 2012-12-11 Hitachi, Ltd. Information processing system for measuring the cache effect in a virtual capacity
US8472278B2 (en) 2010-04-09 2013-06-25 Qualcomm Incorporated Circuits, systems and methods for adjusting clock signals based on measured performance characteristics
US8694728B2 (en) 2010-11-09 2014-04-08 Vmware, Inc. Efficient online construction of miss rate curves
US9021205B2 (en) * 2012-11-30 2015-04-28 Red Hat, Inc. Page replacement in cache memory
CN103914363B (zh) * 2012-12-31 2016-10-26 华为技术有限公司 一种内存监控方法及相关装置
CA2947158A1 (en) * 2014-05-01 2015-11-05 Coho Data, Inc. Systems, devices and methods for generating locality-indicative data representations of data streams, and compressions thereof
US9529534B2 (en) * 2014-06-13 2016-12-27 Vmware, Inc. Data reuse tracking and memory allocation management
US9329896B2 (en) * 2014-06-13 2016-05-03 Vmware, Inc. Data reuse tracking and memory allocation management
US10261915B2 (en) * 2017-09-15 2019-04-16 Board Of Regents, The University Of Texas System Intelligently partitioning data cache to allocate space for translation entries
CN109086224B (zh) * 2018-07-10 2022-10-21 暨南大学 一种自适应分类重用距离来捕捉热数据的缓存方法
US11126360B2 (en) 2019-10-22 2021-09-21 International Business Machines Corporation Dynamically adjusting block mode pool sizes
KR102491352B1 (ko) * 2021-04-13 2023-01-20 숙명여자대학교산학협력단 스택 거리를 효율적으로 추정하는 전자장치 및 이의 동작방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AT400748B (de) 1991-02-06 1996-03-25 Weber Guenter Patronenventil
US5379393A (en) 1992-05-14 1995-01-03 The Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations Cache memory system for vector processing
US5608890A (en) 1992-07-02 1997-03-04 International Business Machines Corporation Data set level cache optimization
JPH06348595A (ja) 1993-06-07 1994-12-22 Hitachi Ltd キャッシュ装置
US5452440A (en) 1993-07-16 1995-09-19 Zitel Corporation Method and structure for evaluating and enhancing the performance of cache memory systems
US5590308A (en) 1993-09-01 1996-12-31 International Business Machines Corporation Method and apparatus for reducing false invalidations in distributed systems
US5627994A (en) 1994-07-29 1997-05-06 International Business Machines Corporation Method for the assignment of request streams to cache memories

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008136066A1 (ja) * 2007-04-19 2008-11-13 Turbo Data Laboratories, Inc. メモリ間接参照をメモリ直接参照に変換する方法及び装置
JP5008720B2 (ja) * 2007-04-19 2012-08-22 株式会社ターボデータラボラトリー メモリ間接参照をメモリ直接参照に変換する方法及び装置
JP2015166896A (ja) * 2014-03-03 2015-09-24 富士通株式会社 情報処理装置、情報処理装置の性能情報採取プログラム及び情報処理装置の性能情報採取方法

Also Published As

Publication number Publication date
KR20010014824A (ko) 2001-02-26
KR100338224B1 (ko) 2002-05-27
US6282613B1 (en) 2001-08-28
JP3657170B2 (ja) 2005-06-08

Similar Documents

Publication Publication Date Title
JP3657170B2 (ja) 参照の局所性を動的に追跡する高効率技法
US7096321B2 (en) Method and system for a cache replacement technique with adaptive skipping
US8601216B2 (en) Method and system for removing cache blocks
US6745295B2 (en) Designing a cache with adaptive reconfiguration
US6961835B2 (en) System and method for autonomically reallocating memory among buffer pools
US10409728B2 (en) File access predication using counter based eviction policies at the file and page level
US9298616B2 (en) Systems and methods for tracking working-set estimates with a limited resource budget
US10061517B2 (en) Apparatus and method for data arrangement
JP2002516446A (ja) サイズ可変データブロックのキャッシュ方法
US10102147B1 (en) Phased based distributed LRU for shared cache systems
KR20170085944A (ko) 멀티-레벨 키-벨류 저장을 위한 로직 및 그것의 동작 방법
US20200341899A1 (en) System and method for prediction based cache management
US9851925B2 (en) Data allocation control apparatus and data allocation control method
CN112799590B (zh) 一种针对在线主存储重删的差异化缓存方法
CN109844723B (zh) 使用基于服务的统计信息进行主控建立的方法和系统
Jiang et al. Coordinated multilevel buffer cache management with consistent access locality quantification
CN115398877A (zh) 使用强化学习代理管理存储在缓存中的数据
Choi et al. Design, implementation, and performance evaluation of a detection-based adaptive block replacement scheme
CN109582233A (zh) 一种数据的缓存方法和装置
US11379375B1 (en) System and method for cache management
CN112445794B (zh) 一种大数据系统的缓存方法
CN112214460A (zh) 基于分布式大容量分片高性能的存储控制方法
KR20190124512A (ko) 그래프 스트림에 대한 실시간 분산 저장을 위한 분할 방법 및 분할 장치
Van Hung et al. An effective data placement strategy in main-memory database cluster
CN117472918B (zh) 数据处理方法、系统、电子设备及存储介质

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040127

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040419

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040422

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040727

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050308

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

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees