JPH05225066A - 優先順位付けキャッシュ管理方法 - Google Patents

優先順位付けキャッシュ管理方法

Info

Publication number
JPH05225066A
JPH05225066A JP4276316A JP27631692A JPH05225066A JP H05225066 A JPH05225066 A JP H05225066A JP 4276316 A JP4276316 A JP 4276316A JP 27631692 A JP27631692 A JP 27631692A JP H05225066 A JPH05225066 A JP H05225066A
Authority
JP
Japan
Prior art keywords
cache
partition
hit rate
hit
partitions
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
JP4276316A
Other languages
English (en)
Other versions
JPH0778768B2 (ja
Inventor
Kevin F Smith
フランク スミス ケビン
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 JPH05225066A publication Critical patent/JPH05225066A/ja
Publication of JPH0778768B2 publication Critical patent/JPH0778768B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • 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
    • 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/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • 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/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • 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

(57)【要約】 【目的】 ステージング記憶システムにおけるLRUキ
ャッシュを優先順位に基づいて管理し、複数のキャッシ
ュ優先順位を記憶管理レベルではなくデータ・セット・
レベルで管理する。 【構成】 1つの方法では、割り当てたヒット率と実際
のヒット率との符号付き差を用いて、キャッシュ・サイ
ズをデータ・クラスに動的に割り振り、そのキャッシュ
・サイズをそのクラスの優先度と関連付ける。この方法
の利点は、データ・クラスのヒット率パフォーマンスが
より優先度の低いデータ・クラスのために所定レベルを
越えて低下することがないことである。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本出願は米国特許出願第07/3
32,870号、1989年4月3日出願、発明の名称
「LRU優先順位付けキャッシュの管理方法」(A M
ethodfor Managing An LRU
Prioritized Cache」の一部継続出願
である。
【0002】本発明はコンピュータ情報記憶装置に関
し、さらに具体的には、優先順位付けされたデータ・セ
ットと重み付け係数を基準にして、多層ステージング記
憶システムにおけるキャッシュ記憶資源を割り振る方法
に関する。
【0003】
【従来の技術】代表的なコンピュータ・システムは、階
層ステージング記憶システム(heirarchica
l staged storage system)に
接続された情報プロセッサを備えている。プロセッサを
基準にした各ステージの場所に採用される記憶装置のタ
イプは、速度、容量、および費用に対する要求条件のバ
ランスをとることによって決定されるのが通常である。
コンピュータのプロセスは、プロセスの実行が存続して
いる間絶えずこの記憶装置を参照し、ステージング記憶
システムに読み書きを行っている。これらの参照として
は、自己参照のほかに、あらゆるタイプの他のプロセス
やオーバレイ、データに対する参照がある。高速ランダ
ム・アクセス・メモリ(RAM)を使用したデータ記憶
装置が回転式磁気媒体を使用した大容量直接アクセス記
憶装置(DASD)よりも数桁高速に参照されること
は、この分野では周知である。この種の電子的RAM記
憶装置は電荷を短距離に高速に転送することを基礎とし
ているのが代表的であるのに対し、DASDは磁気ディ
スク上のデータ記憶位置を読み書きヘッドに対して回転
することによって機械的に動作するのが代表的である。
ビット当たりの記憶費用はDASDとRAMでは相対的
に異なるために、DASDは大容量記憶装置に使用し、
電子的RAMはプロセッサ内部メモリとキャッシングに
使用する必要がある。
【0004】多層ステージング記憶システムでは、キャ
ッシュはプロセッサと大容量で低速のメモリ・デバイス
との間に置かれているのが代表的である。例えば、然る
べきデバイスを採用したキャッシュはプロセッサと主メ
モリの間と主メモリとDASDの間に置かれている。キ
ャッシング手法が出現したのは、プロセッサは、ストア
されたすべてのデータの中で、しばしば時間空間的に小
さなサブセットを集中的に参照するという観察からであ
る。従って、即時参照の80%がデータ・スペースの5
%に対するものであれば、参照頻度の高いその5%をキ
ャッシュにストアしておくと、アクセス・タイムの点で
キャッシュの方が主記憶装置よりも有利であるので、平
均参照時間が大幅に減少する。キャッシングがもつ基本
的問題は、キャッシュの時間空間的資源を複数の同時並
行プロセスとプロセスが参照するデータ間で効率よく割
り振るための方式を確立することである。
【0005】あるプロセスによって参照されたデータが
キャッシュ・メモリにあったとき、これを「ヒット(h
it)」したといい、参照されたデータのコピーは要求
したプロセスに送られる。必要とするデータがそこにな
かったときは、これを「ミス(miss)」したとい
い、要求したデータは大容量で低速の主記憶装置から読
み取られて、キャッシュと要求したプロセスの双方に転
送される。「ミス」したデータがキャッシュに追加され
ると、すでにキャッシュに置かれている特定のデータ
は、そのデータによって置換される。置換されたデータ
がLRU(Least Recently Used)
アルゴリズムに従って選択されるときは、キャッシュは
LRUキャッシュと呼ばれる。
【0006】例えば、あるテーブルを定義している連続
アドレスを参照するように単一参照が長いストリングの
形で行われるときは、LRUキャッシュの効率は低下
し、クラスタ化の利点が失われることになる。これは、
キャッシュにないデータを低速の主記憶装置から連続的
にステージング・アップする必要があり、その結果、キ
ャッシュの「フラッシング(flushing)」が連
続することになるためである。「セット連想」キャッシ
ュ編成方式は1つの例であり、この分野では、キャッシ
ュ・フラッシングの影響をある長さの順次データをスト
アすることによって軽減する有用な方式として知られて
いる。
【0007】米国特許第4,463,424号(「LR
U−MRU管理メモリを同時並行の順次プロセス間で動
的に割り振る方法(Method for Dynam
ically Allocating LRU−MRU
Managed Memory Among Con
current Sequential Proces
ses)」、1984年7月31日発行)において、M
ttason他は、サンプリングした参照の追跡から概
算したヒット/ミス比率の直接的関数として、LRUキ
ャッシュの区画サイズをCPUに置かれた複数の同時並
行プロセス間で動的に調整する方法を開示している。こ
の特許によれば、キャッシュの時間空間的割振りを制御
するためにヒット/ミス比率を使用して、キャッシュ効
率を向上し、フラッシングの影響を最小にすることを試
みている。
【0008】他の従来技術として、米国特許第4,60
3,382号(「動的バッファ再割振り(Dynami
c Buffer Reallocation)」、発
明者Cole他、1986年7月29日発行)がある。
この特許によれば、異種テープ装置に割り振られたある
タイプのバッファのサイズを、ヒット/ミス比率(デー
タ読取りミスまたはバッファ一杯)の関数として変化さ
せる方式が開示されている。最後に、米国特許第4,4
89,378号(「ディスク・キャッシュ操作における
事前フェッチ・データ量の自動調整(Automati
c Adjustment of the Quant
ity of Pre−fetch Data in
a Disk Cache Operation)」、
発明者Dixon他、1984年12月18日発行)に
よれば、キャッシュに対して事前フェッチされるデータ
量を変化させる方法が開示されている。
【0009】
【発明が解決しようとする課題】プロセスの優先順位を
そのままにしておいて、優先順序付けされた区画キャッ
シュのパフォーマンスを最適化するキャッシュ管理手法
は、この分野ではまだ知られていない。また、優先順位
付けされた区画間でキャッシュ・スペースを再割り振り
し、優先順位をそのままにして、総キャッシュ効率を最
適化する方法もまだ知られていない。
【0010】
【課題を解決するための手段および作用】従って、本発
明の目的は、1...Nの優先度クラス範囲にわたって
定義されたデータ内容をもつLRUキャッシュを管理す
る方法を提供することであり、この方法によれば、グロ
ーバル・キャッシュ内のヒット率を最大にすると共に、
クラス優先度を保持することと矛盾しないように各優先
度クラスまたは区画内のキャッシュ・ヒット数を最適化
することを特徴としている。本発明の関連する目的は、
CPUに接続された多層(多数の階級,multi−e
chelon)ステージング記憶システムの予め定めた
層(階級,echelon)に置かれたキャッシュを採
用すること、およびキャッシュに置かれたデータを循環
的に参照することにある。
【0011】上記目的は、割り当てられたヒット/ミス
比率と実際のヒット/ミス比率との符号付き差(sig
ned difference)を使用して、キャッシ
ュ・サイズをあるデータ・クラスに動的に割り振り、そ
の割当てをそのクラスの優先度に関連づけるようにすれ
ば、実際のキャッシュ・ヒット/ミス比率を最大化し、
データ・セット間の優先順位をそのまま残しておくこと
ができるという予想外の観察に基づいて予測した第1の
方法によって、その一部が達成される。
【0012】この観察に基づいて実現された第1の方法
によれば、キャッシュをいくつかの区画に分割し、目標
ヒット/ミス比率を任意に割り当てることから始められ
る。次に、そのあとに行われる参照サイクル時に、各区
画に関連する実際のヒット/ミス比率が定期的にモニタ
され、各キャッシュ区画のサイズが実際のヒット/ミス
比率と目標ヒット/ミス比率との符号付き(SIGNE
D)差の関数として変更される。この変更は、差が正の
時は、区画サイズを小さくし、差が負の時は、区画サイ
ズを大きくするという形で行われる。そのあと、ホスト
によってステージング記憶システムに対して参照された
データの優先度クラスが確認される。最終的には、確認
された優先度クラス1..Nに関係づけられた区画
1..Nに対する参照が行われるか、あるいはステージ
ング記憶システムに対する参照が行われる。
【0013】本発明の利点の1つは、あるデータ・クラ
スのヒット/ミス比率のパフォーマンスが、より低い優
先度(割り当てられた重要度)をもつデータ・クラスに
よって所定のレベルを越えて低下することがないことで
ある。
【0014】本発明の上記目的は、さらに、各区画をL
RU法によって独立に管理して、優先度を保つように
し、このようなすべての区画を同一のヒット率勾配値に
おいて動作させるようにすると、グローバル・キャッシ
ュ・ヒット率も、区画の優先度構造の保持に矛盾しない
ように最大化されるという予想外の観測に基づいて予測
した第2の方法によって達成される。キャッシュ区画ヒ
ット率とは、区画ヒット率の変化を、その変化に伴って
起こる区画スペース割振りの変化で割った比率のことで
ある。ヒット率はヒット回数およびI/O参照率の積と
して定義される。
【0015】第1の方法では、キャッシュ・ヒット率関
数で表した、キャッシュ・ヒット率とキャッシュ・サイ
ズとの関係の弱さを考慮していないので、単一区画にお
いてキャッシュの不十分な利用が防止されない。例え
ば、ヒット率80%は普通であるが、長い順次テーブル
といった、ある種の参照パターンでヒット率80%を達
成するためには、異常に大きなキャッシュが必要にな
る。他の参照パターンに対しては、ヒット率90%を達
成するには、キャッシュ・スペースのわずかな量で十分
であり、ヒット率目標を70%または80%に制限する
と、安い費用で容易に得られるパフォーマンスが無駄に
なってしまう。
【0016】本発明の第2の方法では、ヒット率勾配を
基準にしてパフォーマンス目標を定めるために、第1の
方法で使用される各優先度クラス別の単純な目標ヒット
比率以上のものが要求される。そこで、区画の重み付け
係数という考え方が本発明に取り入れられる。各優先度
クラスに重み付け係数が割り当てられる。他のクラスに
比べて相対的重みが大きいと、その優先度クラスのパフ
ォーマンスはそれぞれのヒット率勾配と比較して大きく
なる。これらの重み付け係数からは、付加的な区画スペ
ース割振りのバイアスが得られる。つまり、優先度の高
い区画はヒット率曲線の屈折点の上方で動作することが
保証され、これに対し優先度の低い区画はヒット率曲線
の屈折点の個所あるいはその下方で動作することにな
る。この場合、各区画はそれぞれのデータ参照パターン
に該当するキャッシュ・スペース割振りを使用して動作
するので、グローバル・キャッシュ効率が最適化され
る。
【0017】本発明の第2の方法によれば、キャッシュ
を複数の区画に分割し、優先度クラス値を割り当てるこ
とから始められる。これは、重み付け係数と任意のヒッ
ト率を各区画の初期スペース割振りに指定することによ
って行われる。その後の各参照サイクルでは、実際のヒ
ット率が各区画ごとに測定され、実際のヒット率勾配
が、測定したヒット率の変化とその変化に対応する区画
スペース割振りの変化との比率から判断される。次に実
際のヒット率勾配に、対応する区画重み付け係数が掛け
られて、各区画別に重み付けされたヒット率勾配値が求
められる。次に、最新の測定重み付けヒット率勾配値を
すべての区画間で平等化するために必要な変更量の関数
として、新しいスペース割振りが決定される。最後に、
キャッシュ・スペースが2ステップで再割り振りされ
る。最初のステップでは、正でない重み付けヒット率勾
配値をもつすべての区画は、残りのキャッシュ・スペー
スから論理的に分離され、サイズが実質的に変更されな
いまま残される。第2のステップでは、キャッシュ・ス
ペースの「残余部分」が残りの区画(正の重み付けされ
たヒット率勾配をもつ)の間で再割り振りされる。これ
は、各区画スペースの割振りを、重み付けされたヒット
率勾配値を正の勾配をもつすべての区画間で平等化する
方向に変更することによって行われる。この再割振りの
ために利用できる残余キャッシュ・スペース部分を制限
するための揮発性指標(Volatility Ind
ex)(VI)を使用することが好ましい。
【0018】上記ステップは定期的に繰り返される。こ
れにより、複数の同時並行プロセス数が増加し、その特
性が変化したとき、クラス優先度をそのままにして総キ
ャッシュ・ヒット率が動的に再度最適化される。
【0019】
【実施例】本発明の上述した特徴と利点を、その他の特
徴と利点と共に、添付図面を参照して、以下具体的に説
明する。
【0020】本発明の方法は、1つまたは複数のCPU
を装備した種類のコンピュータ・システムで実行可能で
ある。この場合、各CPUには、主記憶装置、入出力チ
ャネル、制御装置、直接アクセス記憶装置(DAS
D)、その他の入出力装置が接続されている。この種の
システムは、米国特許第3,400,371号(「デー
タ処理システム」(Data Processing
System))、発明者G.M.Amdhal、19
68年9月3日発行に記載されている。この特許明細書
に記載されているIBMシステムは、プロセスの実行に
必要なものとしてコンピュータ・システムまたはそこで
稼働するオペレーティング・システムがもつ機能のすべ
てを1つの資源として備えている。代表的な資源として
は、主記憶装置、入出力装置、CPU、データ・セッ
ト、および制御プログラムまたは処理プログラムがあ
る。さらに、この種のシステムは、「多重プログラミン
グ」の機能を備えている。多重プログラミングとは、2
つまたはそれ以上のプロセスをコンピュータ・システム
によって同時並行に実行させることであり、IBM社の
システム/370/XAオペレーティング・システムの
下で稼働するコンピュータ上で管理できるものである。
これについては、IBM出版物(資料番号GC28−1
154、1973年7月発行)に記載されており、その
他のIBM出版物はIBM社システム/370/XA資
料目録(資料番号GC20/0001)に掲載されてい
る。
【0021】本発明は、補助記憶装置を管理し、従来の
プログラム・コンパイラとアセンブラ機能を備えた従来
のデータ管理機能をもつオペレーティング・システム環
境で使用されることを目的としている。従って、本発明
の方法は、制御の流れがPASCAL言語の構文と規則
に類似した疑似コードで記述されている。疑似コードの
構文と規則は、PASCALの規則を参照すると理解が
しやすい。 PASCALの規則については、Jens
enおよびWirth著「PASCALユーザ・マニュ
アルとレポート」(PASCAL USER MANU
AL ANDREPORT)第2版、Springer
−Verlag New York,NY(版権所有1
974)などの、標準的PASCAL参考書に記載され
ている。本発明の方法を記述したステップは、PASC
ALに似た表記と構文で表と図に示されている。
【0022】区画優先度を保持するための第1の方法 CPUによる接続DASDアクセス データ・セットはDASDボリュームにストアされるこ
とが頻繁に行われている。CPUとDASDとの関係
は、CPUがSTART I/O(入出力開始)命令を
呼び出したときに始まる。この命令は、CPUとアドレ
ス指定した装置との接続を確立して、その装置に対して
チャネル・プログラムの実行を開始する。START
I/O命令が呼び出されると、制御は一連のチャネル・
コマンドに渡される。この一連の、つまり、連鎖された
チャネル・コマンド(CCW)の方は、チャネルを経由
して制御装置に送られる。その目的は、装置を選択して
アクセスし、インタフェースを経由してデータ移動を行
うためである。各チャネル・プログラムはCPU内部メ
モリ、つまり、主メモリに常駐している順次命令列から
構成されている。制御装置へのCCW転送とそこでの実
行は、CPUと制御装置とが相互に接続されたあと、初
めて行われる。チャネル・プログラムの中の各命令に
は、1つまたは2つ以上の対応する命令が、活動状態の
接続を通して制御装置または装置レベルで必要になる。
最初の活動状態の接続は、初期選択シーケンスのそれで
ある。このシーケンスはSTART I/O命令で呼び
出され、初期経路が装置アドレス(仮想/実)と装置状
況(使用可能/使用中)の形で電子的にかつ論理的にセ
ットアップされる。次の活動状態の接続は、CCW転送
と実行のそれである。SEEKなどの制御CCWは、装
置で物理的に位置付けることまたは活動を要求する。制
御CCWを受けると、制御装置は切離しモードでそのC
CWを実行する。
【0023】切離しモードとは対照的に、READ C
CWやWRITE CCWのように、チャネルと装置間
のデータの移動に係わりがあるCCWの場合は、データ
転送を行うために、制御装置とチャネルとが継続的に接
続されている必要がある。論理的に独立した経路を通し
て共用装置をアクセスする複数のCPUからなる代表的
な構成は、米国特許第4,207,609号(「経路か
ら独立した装置の予約と複数CPUと共用装置アクセス
・システムの再接続のための方法と手段」(METHO
D AND MEANS FOR PATH INDE
PENDENTDEVICE RESERVATION
AND RECONNECTIONIN A MUL
T−CPU AND SHARED DEVICE A
CCESS SYSTEM)、発明者Luiz他、19
80年6月10日発行に記載されている。
【0024】優先順位付けキャッシュおよびパフォーマ
ンス目標の設定 データ・セットが10個(A,...J)存在し、これ
らのデータ・セットが同じキャッシュを使用できるもの
とする。外在的要因の理由から、データ・セットB、
C、およびHのキャッシュ・パフォーマンスをデータ・
セットD、E、およびJのそれより高く設定することが
望ましいとする。また、データ・セットA、F、および
Gは優先度、つまり、重要度が最も低いものとする。最
後に、データ・セットIはキャッシュに置いておく必要
がないものとする。これを図式化すると、次のようにな
る。
【0025】最高優先度 3:B、C、H 次の優先度 2:D、E、J 最低優先度 1:A、F、G キャッシュに置かない 0:I 相対的優先度の設定を終えたら、次に必要なことは、各
グループに達成させる読取りヒット/ミス比率目標を決
定することである。優先度グループ#3は、この例では
優先度が最高になっているが、その場合でも、その目標
ヒット/ミス比率を全グループの中で最高にする必要は
ない。注目すべきことは、優先度#0はそのデータにお
いては特殊であることである。つまり、その優先度グル
ープがキャッシュを使用することを絶対に許されない
(つまり、キャッシュBYPASS)からである。優先
度#0について目標ヒット/ミス比率を設定する理由が
ないのは、そのためである。
【0026】この例においては、任意の読取りヒット/
ミス比率目標は、優先度グループの各々について次のよ
うに設定されている。
【0027】(1)優先度クラス#0のデータ参照は、
キャッシュ資源を使用しない。
【0028】(2)優先度クラス#1のデータ参照がキ
ャッシュ資源を使用できる場合は、優先度#2は平均読
取りヒット/ミス比率を87%かそれ以上の場合であ
る。
【0029】(3)優先度クラス#2のデータ参照がキ
ャッシュ資源を使用できる場合は、優先度#3は平均読
取りヒット/ミス比率を80%かそれ以上の場合であ
る。
【0030】最高優先度の目標を満たすだけの十分なキ
ャッシュ資源が存在するとすると、残余キャッシュ資源
は次の最高優先度クラスのヒット/ミス比率目標を満た
すために使用される。使用可能な資源がまだ残っていれ
ば、その資源は次の優先度が低いクラスの目標を満たす
ために使用される(以下同様)。このプロセスは優先度
クラス#1がその目標を満たすまで以上のように反復さ
れる。まだ残っているキャッシュ資源があれば、その資
源は各種優先度クラス間で適当に分配することができ
る。
【0031】図1に示すように、キャッシュは、WHI
LE..DOループの関数として区画間でそれぞれの優
先順位に従って配分される。同図から理解されるよう
に、優先順位付けされたキャッシュは実際にはpウエイ
のセットとして組み合わされているキャッシュである
(ただし、pはキャッシュ優先度クラスの個数であ
る)。各優先度クラス用にキャッシュを分割する値は、
各優先度クラスが優先度のより高いクラスのキャッシュ
・パフォーマンスに影響を与えることなく、LRUキャ
ッシュ方式の利点を最大限に利用できる値である。
【0032】第1の方法を実施化するための態様 本発明の第1の方法を十分に理解するために、PASC
AL言語で書かれた疑似コードのモデルが図と表に示さ
れている。これらは単一キャッシュ制御装置または資源
マネージャ(管理プログラム)で使用するのに適したも
のである。図または表に示したモデルは、次のような順
序に従ってPASCAL構文で記述されている。
【0033】 構文要素 図または表 (1) 定数 図2 (2) タイプ(変数構造の記述) 図3 (3) グローバル変数 図4 (4) キャッシュ・メモリを含む変数の初期設定 表1,表2 (5) 方法ステップの態様を示すプロシージャ (a)ある区画から別の区画への 表3,表4 キャッシュの再割当て (b)優先順位付けキャッシュ 表5〜表8 区画サイズの調整(チューニング) (c)キャッシュ入出力の発行 表9 (6) 主キャッシュ制御プロシージャ 図5グローバル要素の定義と初期設定 図2〜図4は、グローバル定数、タイプ、および変数の
リストをコピーしたものを示している。各定数、タイ
プ、または変数には、要素およびその値の選択方法また
は構造を定義した注釈フィールドが付いている。
【0034】本発明の第1の方法の実施例によれば、変
数およびキャッシュ・メモリを表1および表2に記述さ
れているプロシージャに従って初期設定する必要があ
る。グローバル変数がいったん作成され、初期設定され
ると、そのとき初めて、優先順位付けキャッシュは、優
先順位付けキャッシュとしてのパフォーマンスを発揮す
ることが可能になる。
【0035】表1および表2に示すように、キャッシュ
・ノードは初期設定と同時に、その割振りが行われる。
キャッシュ・ノードがすでに存在する場合には、ノード
の各々のためのメモリの割振りは行われずに、既存のキ
ャッシュ・メモリからノードが転送されることになる。
【0036】第1方法ステップの態様を示すプロシージ
次に、表3〜表9は内部キャッシュ処理のための疑似コ
ード・リストを示すもので、キャッシュ転送、優先順位
付けキャッシュにおけるチューニング、およびキャッシ
ュの入出力要求の発行を扱っている。「Cache_x
fer」と名付けたプロシージャの疑似コードが記載さ
せているが、キャッシュ・メモリの実際の転送は、制御
装置自体のマイクロコード・ロジックの中で行われるこ
とになる。「Prioritized_Caching
_Tuning」は、あるキャッシュ区画から別のキャ
ッシュ区画へどれだけのキャッシュ・メモリを転送する
かを判断する。最後に、最後のルーチン「Issue_
Prioritized_Cache_IO」は、各入
出力が出されるたびに行われるロジック・シーケンスを
表示する。
【0037】キャッシュ転送 表3および表4を参照する。ここに記載のプロシージャ
は制御装置に置いておくべきものである。そのような場
合には、このプロシージャに対する各コール(呼出し)
は論理キャッシュ区画サイズを再割り振りするために制
御装置に渡されるある種の情報として扱われる。制御装
置に渡される実際の情報は、例えば、CCWの一部とし
て送ることが可能である。使用パラメータは、必要な情
報要素としてキャッシュ制御装置または資源マネージャ
によって使用される。すなわち、キャッシュ・メモリを
交換するための2つの論理区画、および転送すべきキャ
ッシュ・メモリ量を示す識別子である。このプロシージ
ャの実行結果として、「n」個のキャッシュ・セルが
「src」で表したキャッシュ区画から「dest」で
表したキャッシュ区画に転送される。
【0038】優先順位付けデータベース間のキャッシュ
・スペースの調整 表5〜表8に示すように、そこに記載されている反復的
調整は、本発明の第1方法に呼び出されるものである。
必要とされるステップは次のとおりである。
【0039】1.各優先度クラスがその目標を達成して
いるか、超過しているか、あるいは達成できていないか
を判断する(重み付けた実行中の平均を用いて)。
【0040】2.ターゲットとする目標と連続平均との
差に基づいて、キャッシュ・サイズを符号付き(SIG
NED)でどれだけ変更すると、ターゲットに近い読取
りヒット/ミス比率が得られるかを予測する。
【0041】3.優先度クラスのすべてのSIGNED
変更の総和をとり、その結果がゼロ以下かゼロに等しけ
れば、少なくとも必要とされるだけのキャッシュが残っ
ている(ステップ4に進む)。そうでなければ、必要と
するキャッシュが残存キャッシュ量を越えていることに
なる(ステップ5に進む)。
【0042】4.少なくとも必要とされるだけのキャッ
シュが残っていれば、余剰キャッシュ・メモリのすべて
をキャッシュ読取り入出力の回数に比例して、優先順位
付けクラスの各々に配分する。
【0043】5.必要とするキャッシュが残存キャッシ
ュ量を越えていれば、キャッシュを最低優先度クラスか
ら奪うことになっても、最高優先度クラスの要求量が満
たされるように取り計らう。
【0044】6.最後に、推奨されるキャッシュ・メモ
リ量を優先度クラス相互間でやりとりする。
【0045】上述のプロシージャにおいて、「Nrea
ds」はその優先度クラスのキャッシュに対するキャッ
シュ読取り入出力の、プログラム実行中の平均(Run
ning Average)回数を記録にとっておくた
めの変数である。なお、すべての優先度クラスは同時に
始まっているので、これはキャッシュ読取り入出力回数
を使用したのと同じである。変数「Residue」
は、優先度クラスの各々のキャッシュ・メモリ・サイズ
の推奨されるSIGNED変更の総和を連続的にとって
いる。「Residue」の最終結果がゼロより小さけ
れば、キャッシュ・メモリ要求量が(量=「Resid
ue」だけ)供給量よりも多いことを意味する。「Re
sidue」の最終結果がゼロより大か、ゼロに等しけ
れば、キャッシュ・メモリの供給量が要求量よりも(量
=「Residue」だけ)多いことを意味する。注意
すべきは、「Residue」が優先度クラスの各々の
キャッシュ・サイズのSIGNED変更の総和の負数に
なっていることである。
【0046】このプロシージャでは、優先度クラスの各
々について、実行中の平均結果とターゲットの結果との
比較が行われ、その差に基づいて、キャッシュ・サイズ
のSIGNED変更が計算される。また、変数「Nre
ads」と「Residue」の、実行中の総和がとら
れる。
【0047】キャッシュ入出力の発行 表9に示すように、このプロシージャは、制御装置に対
して出力される、パラメータとして与えられたキャッシ
ュ優先度クラス、すなわちキャッシュ優先度クラス番号
を表す「PriorityNo」(優先度番号)の入出
力を実行させるとの前提をサポートしている。
【0048】主優先順位付けキャッシュ・ドライバ 次に、図5に示すように、対のIF THEN ELS
Eルーチンからなる主プロシージャがREPEAT..
UNTILループ内に組み込まれている。主要な構造
は、優先度とターゲット目標値をデータ・セットに割り
当てておき、そのあと、ある期間の参照実績のあとでパ
フォーマンスをチューニングすることをサポートしてい
る。
【0049】第1方法の実施例 優先順位付けキャッシュの入出力 次に、図6は、単一の物理キャッシュであって、各キャ
ッシュ優先度クラスが各自のLRUキャッシュ区画を利
用するものを示している。例えば、優先度クラス#2の
入出力要求は中間キャッシュ区画(図6)を利用する。
優先度クラス#0の入出力要求は直接に記憶媒体に転送
され、どのキャッシュ区画も利用しない。以下、同様で
ある。
【0050】前述したように、キャッシュ区画の各々の
パフォーマンスを定期的に調べて、優先順位付けキャッ
シュ読取りヒット/ミス比率の目標値が達成されるよう
にする必要がある。各パフォーマンスを調べた結果を基
にして、キャッシュ区画のサイズを変更することが可能
である。これを示したのが図7である。
【0051】キャッシュ区画サイズのチューニング 下表に示した値は、実用値の妥当な近似値である。下表
は、優先度クラス別にそれぞれのキャッシュ・サイズを
仮定して、読取りヒット比率および入出力回数の実行中
の平均を測定したもので、これらは、「Priorit
ized_Caching_Tuning」ルーチンの
呼出し時に使用して、自動調整を計算することができ
る。
【0052】 優先度 目標値 キャッシュ・サイス゛ 読取りヒット率 キャッシュ 入出力回数 3 80% 40 70% 11 2 87% 100 97% 30 1 55% 60 35% 15 0 − 0 − 15 ここで、この局面における本発明の第1方法によるステ
ップを要約することが有益であると考える。ステップは
次のとおりである。
【0053】(1)各優先度クラスがその目標値と比較
してどうなっているかを判断する。 (2)その事態を訂正するために必要なキャッシュ・サ
イズのSIGNED変更を予測する。
【0054】(3)望ましい変更値をキャッシュ・サイ
ズに加える(すべての優先度クラスについて)。
【0055】(4)(sum(総和) <= 0)なら
ば、入出力回数に従って余分のキャッシュを配分する。
【0056】(5)(sum > 0)ならば、必要時
に最低優先度クラスからキャッシュをとってくる。
【0057】(6)計算で求めた勧告値に従ってキャッ
シュ・メモリを転送する。
【0058】ステップと表との関係 ステップ#1.各優先度クラスがその目標値と比較して
どうなっているかを判断する: 優先度クラス#3:ヒット/ミス比率が10%だけ低す
ぎる 優先度クラス#2:ヒット/ミス比率が10%だけ高す
ぎる 優先度クラス#1:ヒット/ミス比率が20%だけ低す
ぎる 優先度クラス#0:検査されない ステップ#2.事態を訂正するために必要なキャッシュ
・サイズのSIGNED変更を予測する(このステップ
では、キャッシュ・サイズが半分または2倍にされるた
びに、連続平均ヒット/ミス比率が20%だけ変化する
ことを想定し、必要変更量を計算している): 優先度クラス#3:さらに17単位のキャッシュが必要
である 優先度クラス#2:29単位のキャッシュを失う 優先度クラス#1:さらに60単位のキャッシュが必要
である 優先度クラス#0:適用外 ステップ#3.優先度クラスのすべてについて、望まし
い変更量をキャッシュ・サイズに加えて、次のような結
果を得る: 17+ −19 + 60 = +48 ステップ#4.(sum <= 0)ならば、入出力回
数に従って余分のキャッシュを配分する。この場合は、
ステップ#4は適用されない。
【0059】ステップ#5.(sum > 0)なら
ば、必要時に最低優先度クラスからキャッシュをとって
くる:キャッシュ・メモリ不足は「+48」キャッシュ
単位である。ステップ5の目標値は、優先度クラス#1
に渡されるキャッシュ・メモリ増加分を48キャッシュ
単位だけ減らすだけで達成することができる。優先度ク
ラスの各々の調整されたキャッシュ・メモリ変更量は次
のようになる。
【0060】優先度クラス#3:キャッシュはさらに1
7単位だけ増加する 優先度クラス#2:キャッシュは29単位だけ減少する 優先度クラス#1:キャッシュはさらに12単位だけ増
加する 優先度クラス#0:適用外 ステップ#6.計算で求めた勧告値に従ってキャッシュ
・メモリを転送する。このステップが実行されると、表
に示すキャッシュ・サイズは次のように変化する。
【0061】優先度 目標値 新キャッシュ・サイス゛ 3 80% 57 2 87% 71 1 55% 72 キャッシュ最適化のための第2方法 本発明の第2方法は第1方法を改良したもので、第2方
法によると、図1〜図7を参照して説明してきたキャッ
シュ区画優先度をそのままにして、キャッシュ区画ヒッ
ト回数を最大にすることができる。図8は代表的な読取
りヒット率関数曲線であり、読取りヒット比率とキャッ
シュ区画サイズとの関係を示している。点AとBは、曲
線上の2つのヒット比率目標の例を表している。図8が
示すように、目標比率Aが必要とするキャッシュ・スペ
ース割振りは目標比率Bよりもはるかに少なくてすみ、
スペース割振りの変更の影響はBよりもAの方が大きい
(ヒット比率勾配が大きい)。
【0062】図8から理解されるように、区画Aに割り
振られるキャッシュ・スペース量を2倍にすると、読取
りヒット比率が約60%からほぼ75%に向上する。つ
まり、約15%向上する。しかし、同量のキャッシュを
区画Bに追加しても、読取りヒット比率の向上はわずか
2〜3%である。キャッシュの一部を区画Bから取り上
げても、ヒット比率の低下はわずか数パーセントであ
る。このことから、本例のキャッシュ方式によれば、区
画Bからキャッシュの一部を取り上げ、それを区画Aに
追加することによって、得られる総ヒット回数が増加す
ることになる。事実、ヒット率曲線上でBがAの上方に
ある限り、スペースを区画Bから取り上げ、それを区画
Aに追加すると、総ヒット回数は増加を続ける。AとB
が共に曲線上の同じ位置まで移動したときに、AとB間
のキャッシュ・メモリ転送は中止されるべきである。
【0063】以上の説明は、次の2つの点に簡略化され
た。1つは、現実には、入出力回数が各区画で同じにな
ることは殆どない点であり、もう1つは、ヒット比率曲
線自体も、全体的に各区画ごとに異なる点である。ヒッ
ト比率曲線間の相違は、ヒット比率曲線がキャッシュ・
サイズを関数として単調であると想定すると、その扱い
が容易になる。この想定のためには、ヒット比率勾配は
キャッシュ・スペースが取り上げられると常に増加し、
キャッシュ・スペースが追加されると常に減少すること
が必要である。厳密にはそうとは限らないが、この想定
は十分に正確であるので、ほぼ最適な結果が得られる。
【0064】従って、各区画のヒット比率が曲線上にお
いて勾配の等しい点に留まっている限り、各区画はグロ
ーバルでの利点が高くなるような、ヒット率屈折点で動
作することになる。曲線が全区画で同一の場合は、上述
した説明から理解されるように、等勾配にするために目
標値は同一のスペース割振りとなる。従って、本発明の
第2方法によれば、各区画の目標値を調整することによ
って、すべての区画を各自の曲線の同じ「屈折点」付近
で動作させることができる。代表的なヒット比率曲線の
屈折点は、図8に示すように、目標値AとBの間に位置
している。
【0065】区画入出力回数の差異は、区画ヒット回数
(レート)勾配をヒット比率勾配と対比させてバランス
をとることにより、解決することができる。この点を明
らかにしたのが次の例である。あるキャッシュ区画Xは
入出力回数が毎秒100個のコール(呼出し)であり、
ある区画Yは入出力回数が毎秒10個のコールであると
想定する。区画Yのヒット比率を2%低下させることを
犠牲にして、Xのヒット比率を1%だけ向上させるよう
に、YからXへキャッシュ・スペースを転送する場合に
ついて考えてみる。Xの入出力回数は100であるの
で、ヒット比率が1%向上することは、毎秒のヒットは
区画Xでは1つ増加し(毎秒100コールに1%を掛け
ると1になるので)、Yでは毎秒のヒットが0.2減少
する(毎秒10コールに2%を掛けると0.2になるの
で)ことを意味する。従って、キャッシュ・メモリが区
画Xに転送されたために、区画Yのヒット比率がさらに
低下しても、グローバル・キャッシュ・システムの総ヒ
ット数は毎秒0.8だけ増加しているので(1.0−
0.2)、グローバル・キャッシュ効率は向上したこと
になる。ヒット率勾配は、ヒット比率勾配に入出力回数
を掛けると求まる。この例では、全区画のヒット率勾配
のバランスをとることによって、グローバル・キャッシ
ュ・システムのヒット数が最大化されている。
【0066】従って、本発明の第2方法は、各ヒット
曲線に重みを付け 目標値を複数の優先度クラスの各
々の重みを付けた曲線の屈折点に置いてヒット比率目標
値をセットすると、グローバル・キャッシュ・パフォー
マンスが向上するとの予想外の観察を拡張し、利用して
いる。従って、正しく重み付けされた優先度の高い区画
は、重み付けされていない曲線の屈折点の若干上方に置
かれるだけの十分なキャッシュ・スペースを受け取るこ
とが保証される。他方、優先度の低い区画は重み付けさ
れていない曲線の屈折点の若干下方で動作することがで
きる。そのあと、各区画には、各区画の入出力参照パタ
ーンに見合うキャッシュ・サイズが与えられる。キャッ
シュ・スペースは、必要以上に高いヒット比率目標値を
達成することにより優先度の高い区画で無駄に消費され
ることがない。
【0067】以上を要約すると、図8において目標値A
ではヒット比率勾配が高いので、区画サイズが少し増加
すると、区画効率は大幅に向上する。他方、ヒット比率
目標値Bの勾配は低いので、区画効率を少し向上させる
ためには、区画サイズの割振りを大幅に増加させる必要
がある。ヒット率曲線は、区画の入出力回数を乗算した
ヒット比率曲線から得られる。ヒット率またはヒット比
率曲線の屈折点は、区画スペース割振りの増加が、それ
による区画効率向上の効果を急速に失う個所である。本
発明の第2方法によれば、屈折点の正確な位置を決める
ことをしないで、すべての優先度クラスを「重み付けさ
れた」ヒット率曲線上の同一点で動作させるようにす
る。このようにすると、クラスの優先度をそのままにし
て、グローバル・キャッシュ・パフォーマンス効率が予
想以上に最適化される。以下では、このことをもっと分
かりやすく説明する。
【0068】図1〜図7を参照して上述した単純なヒッ
ト比率の目標値は、ヒット比率曲線の屈折点に対してパ
フォーマンス目標を指定するには、それだけでは不十分
である。従って、各優先度クラスには、重み付け係数が
与えられている。この重み付け係数が他のクラスの重み
付け係数に比べて大きければ、各自の重み付けされてい
ないヒット率曲線の屈折点上のクラス区画の動作点はそ
れだけ高くなる。
【0069】本発明の第2方法の理解を容易にするため
に、PASCALに似た言語で書かれた疑似コード・モ
デルが図8〜図12に記載されているが、これは単一キ
ャッシュ制御装置、CPUによって制御されるキャッシ
ュ、または資源マネージャで使用するのに適したもので
ある。この疑似コード・モデルはPASCALに似た構
文で次のような順序に従って示されている。
【0070】 構文要素 (1)定数 表5 (2)タイプ(変数構造) 図9 (3)グローバル変数 図10 (4)初期設定 全体データ構造 図11 各優先度クラス 図12 (5)方法ステップの態様を示したプロシージャ (a)現インターバルと勾配の読取り比率の計算 表5 (b)縮小する非活動優先度クラスの保存 表5 (c)勾配レート計算プロシージャおよび 特殊勾配値の処理 表5 (d)再割振りのための総キャッシュ・ スペースの判断 表5 (e)非正数勾配クラス 表5 次に、表10〜表14および図9〜図10は、グローバ
ル定数、タイプおよび変数のリストをコピーしたものを
示している。各定数、タイプまたは変数には、要素とそ
の値選択構造の方法を説明した注釈フィールドが付いて
いる。
【0071】本発明の第2方法の実施例によれば、図1
1〜図12に記載したプロシージャに従って変数および
キャッシュ・メモリを初期設定する必要がある。図11
は必要とされる全体的初期設定を記載しており、図12
は複数の優先度クラスの各々で必要な初期設定を記載し
ている。グローバル変数がいったん作成され、初期設定
されると、評価インターバル処理(EIP)ルーチン
(表10〜表14)は各優先度クラスのキャッシュ・サ
イズ割振りを判断することが可能になる。このEIPル
ーチンは各評価インターバル(PC.EInterva
l)で実行され、結果として得たスペース割振り変更
(SzChg)は各優先度クラスのSzChgフィール
ドにストアされる。評価インターバル・ルーチンは各P
C.EInterval秒ごとに実行される。有用なP
C.EInterval値は50秒から900秒までの
範囲である。
【0072】キャッシュ区画がいったん存在すると、こ
の方法は、各種区画間で総キャッシュ・メモリを再割振
りするだけであり、新しいメモリをキャッシュに割り振
ることはしない。実験による観察によれば、キャッシュ
・スペース割振りは、プロセスが変わると、それを受け
て時間の経過と共に動的に変化を続けるが、ヒット回数
は約10分経過後安定を保っていることが明らかになっ
ている。
【0073】表10〜表14に記載されているEIPプ
ロシージャを理解しやすくするために、以下では、本発
明の非反復的動的キャッシュ・サイズ割振りプロシージ
ャについて説明する。ヒット率の変化は、キャッシュで
利用できるメモリ量を半分にするか、2倍にすると、十
分に安定していることが観察されている。この観察は中
程度のキャッシュ・サイズの場合にだけ行われたもの
で、キャッシュ・サイズが極端に小さいか、あるいは大
きい場合には、このことは観察されない。従って、キャ
ッシュ・サイズがx個のキャッシュ・スロットからなる
場合に予想されるヒット率勾配S(x)は、以前のEI
Pインターバルで測定されたヒット率勾配(Slop
e)の単純関数として書くことができる。以前のEIP
インターバルでは、キャッシュ区画サイズは平均n個の
スロットであるので、 S(x)=Slope*n/x となる。この単純関数は、キャッシュ・サイズとヒット
率の間に一定の指数関係があることを示している。初期
設定を終え、少なくとも1つのEIPサイクルが完了す
ると、想定した指数関係を規律する定数、 K=S(nj )*Weightj が、重み付け係数=Weightj と平均サイズnj
もつ任意に選択した(j番目の)区画について決定され
る。
【0074】定数Kが決定されると(表10〜表1
4)、これは、重み付け係数=Weightp をもつ他
のすべての区画の新しい区画サイズを xp =S(np )*Weightp /K*np に従って計算するために使用される。この新しいサイズ
またはスペース割振りは、以前のEIPサイクル期間に
測定された区画ヒット率勾配(Slopep )とj番目
の区画で測定されたヒット率勾配(Slopej )との
差を定数Kと結合することにより計算で求められる。従
って、新しいスペース割振りxp は、ヒット比率と区画
サイズ間の観察された指数関係に基づいて、1回の非反
復的ステップで決定される。
【0075】測定されたヒット率勾配は表10〜表14
に記載されているように、該当の重み付け係数が掛けら
れる。また、測定された重み付けヒット率勾配が非正数
の場合は、それぞれの区画は論理的に切り離され、正勾
配区画に適用されるスペース再割振りプロシージャから
除かれる。非正数勾配区画が切り離されると、正勾配区
画が保有している残余の総キャッシュ・スペースは、上
述のように計算で求めた新しい区画サイズxp に従って
比例再配分される。正確なプロシージャは表5に記載さ
れている。
【0076】負勾配をもつクラスにはアルゴリズムの方
法に従ってキャッシュが与えられないが、そのクラスの
キャッシュ割振りをある任意量だけ変更することは、将
来のHR勾配の測定に役立つ点で好都合である。もし完
全に未変更のままにしておくと、次の繰返し時に勾配を
予測する際に利用できる第2の点が得られないことがあ
る。
【0077】本発明の方法によれば、総正勾配区画スペ
ースに「揮発性指標(Volatility Inde
x)」パラメータを適用すると、キャッシュ・パフォー
マンス最適化プロセスが向上することが観察されてい
る。このことは表5を調べて、総正勾配区画キャッシュ
・スペースの一部だけが再割り振りされることに注目す
れば、分かることである。揮発性指標(VI)はゼロ
(不動ケース)から1.0(完全再割振り)までの範囲
にわたる。VIは約0.5またはそれ以下にすると、好
都合である。
【0078】本発明によるこの第2方法は、トレース駆
動制御装置キャッシュ・シミユレーション・モデルを使
用してテストされた。プロシージャは動的であり、各種
キャッシュ・サイズを初期調整するのにかなりの時間
(約10分)を必要とするので、ある特定の長時間の入
出力トレースが使用され、13台の装置が接続された1
台の制御装置をトレースした。VIと評価インターバル
時間PC.EIntervalのいくつかの組合せを調
べた結果、VI=0.10とPC.EInterval
=50秒の組合せがキャッシュを最適化する上で有用で
あることが判明した。他の組合せも、同じように有用な
結果が得られることが判明した。
【0079】この第2の動的キャッシュ区画再割振り法
のグローバル・パフォーマンスは、最大13区画までか
らなる小さなキャッシュ・サイズの場合には、慣例のグ
ローバルLRUキャッシュ法よりもさらに向上すること
が観察された。しかし、大部分の大きなキャッシュ・サ
イズの場合は、グローバルLRU法の方が、本発明の完
全重み付け優先度クラス区画法よりも、すぐれたグロー
バル・パフォーマンスが得られる。優先順位付けキャッ
シュ区画に重み付け係数を適用するとき、クラス重み付
け係数の選択を十分に配慮して行えば、グローバル・キ
ャッシュのパフォーマンス向上は期待できないとして
も、重みによって課される優先順位付けの制約の範囲内
でグローバル・キャッシュのヒット回数を向上させるこ
とができる。このことは、重み付け係数がすべて等しい
ときに見られることがある。重み付け係数が異なる限
り、グローバル・パフォーマンスの低下と重く重み付け
されたクラスのパフォーマンス向上との間にはトレード
オフの関係がある。
【0080】本発明の第2方法で選択された重み付け係
数は一定にすることも、可変にすることもできる。重み
付け係数を可変にすると、本発明のレスポンス・タイム
を異なる優先度クラスに合わせて制御するときに好都合
である。レスポンス・タイム目標値を越えるような優先
度グループの重み付け係数は、レスポンス・タイム目標
値をまだ達成していないグループの重み付け係数に比べ
て小さくすることが可能である。重み付け係数を一定に
する唯一の必要条件は、実際の重み付け係数をゼロより
大きくすることである。
【0081】書込み入出力のパターンは読取り入出力の
パターンと著しく異なっているが、書込みヒット率の結
果は、読取りヒット率で観察された結果と一致している
ことが観察された。読取りヒット比率(ヒット回数/参
照回数)は、ある場合には、等しく重み付けされた優先
度クラスのいくつかについては、その読取り率勾配の動
的均等化を実際に向上することが観察された。他よりも
重み付けが大きい優先度グループのキャッシュ・パフォ
ーマンスはヒット比率向上が最大であったが、他よりも
重み付けが小さいグループがその犠牲になり、またグロ
ーバル・ヒット比率の結果がその犠牲になっている場合
もあった。各優先度クラスの向上をそのクラスの以前の
ヒット比率パフォーマンスと比較した。図1〜図7を参
照して上述した第1方法で使用した絶対ヒット比率目標
値とは比較しなかった(実現不可能であるため)。
【0082】2つの方法に代わる実施化モデル 上述してきた本発明の2つの方法は、プロシージャ向き
の制御モデルであった。つまり、方法ステップを表現す
るために使用されたCPUと記憶資源管理は、PASC
AL準拠の疑似コードで書かれた制御の流れとデータ経
路の形体をとっていた。これらの方法ステップは、十分
に実験をしなくても、パターン・センシティブで、ルー
ル・ベースの推論モデルを参照して実施化することも可
能である。すなわち、データ・セット優先順位、ヒット
比率、およびキャッシュ・サイズを割り当て、相対値の
大きさで実際の比率と目標の比率を比較し、比較の符号
の関数としてLRU法でキャッシュ・スペースを再調整
する第1方法のステップ、または重み付け係数を区画ク
ラスに割り当て、すべてのキャッシュ・クラスの実際の
ヒット率勾配を測定し、すべてのキャッシュ区画につい
ての重み付けしたヒット率勾配を判断し、任意の区画に
ついての指数ヒット比率定数を計算し、すべての区画に
ついての重み付けしたヒット率勾配を均等化するために
必要な、各区画に対するスペース割振りの変更量をそれ
に応じて見積もり、非正勾配区画間のスペース割振りを
実質的に変更することなく、総正勾配キャッシュ・スペ
ースの一部を正勾配区画間でそれに応じて再割り振りす
る第2方法ステップは、ルールが不定順序で並んだ有限
列としてコーディングすることができる。なお、各ルー
ルは、一定順序に並んだ条件(ステート・セット)とア
クション・ステートメントの対を表している。
【0083】ルール・ベース・システムは循環的であ
り、順方向または逆方向の連鎖方式で推論によって動作
する。興味のある実施化形態は、順方向連鎖方式のデー
タまたはパターン駆動によるものである。あるサイクル
期間、順方向連鎖システムはデータまたはデータ変更を
使用して、データに一致するパターン部分をもつルール
を選び出し(て矛盾セットを形成し)、次に、所定の基
準(新旧度)に従ってルールの1つを選択して実行す
る。ルール実行とは、それがルーチンの実行または別の
ルールの呼出しを伴うとき、特定のアクションを実行す
ることを意味する。代表例としては、システム・データ
・ステートがなんらかの形で変更されると、そのサイク
ルが繰り返される。
【0084】上述したように、制御データとしては、デ
ータ・セット名、優先度、重み付け係数、実際のヒット
率勾配などがあり、これらに、ルールが加わる。ルール
のアクション部分は、制御データを変更して、他の特定
ステップを実行することができる。処理サイクルは、
(a)データに一致する条件またはパターン部分をもつ
ルールのサブセットを識別し、(b)識別されたルール
のサブセットから少なくとも1つのルールを外部プロト
コルに従って選択し、(c)選択したルールのアクショ
ン部分で指定されたアクションを実行することからな
り、このアクションにはデータベース変更を引き起こす
アクションが含まれる。
【0085】順方向連鎖推論システムのモデルの説明
は、Brownston 他著「OPS5によるエキスパート・システ
ムのプログラミング」(Programming Expert Systems i
n OPS5) (Addison Wesley Publishing Company 版権所
有1985)に記載されている。また、参考文献として、I
BM社発行資料「KnowledgeTool ユーザの手引き」(Kn
owledgeTool User's Guide), SH20-9251がある。Knowle
dgeTool(商標)は、プロシージャ向き言語PL/1の拡
張版であり、順方向連鎖推論システムの構文が含まれて
いる。
【0086】本発明の他の実施例および変形例は以上の
教示を考慮して当業者が容易に考えることができること
は勿論である。従って、本発明はこのような明白な実施
例および変形例を包含する本特許請求の範囲によっての
み制限されるものである。
【0087】
【発明の効果】本発明によれば、ステージング記憶シス
テムにおけるLRUキャッシュを優先順位に基づいて管
理し、複数のキャッシュ優先順位を記憶管理レベルでは
なくデータ・セット・レベルで管理することができ、あ
るデータ・クラスのヒット/ミス比率のパフォーマンス
が、より低い優先度(割り当てられた重要度)をもつデ
ータ・クラスによって所定のレベルを越えて低下するこ
とがない。
【0088】
【表1】
【0089】
【表2】
【0090】
【表3】
【0091】
【表4】
【0092】
【表5】
【0093】
【表6】
【0094】
【表7】
【0095】
【表8】
【0096】
【表9】
【0097】
【表10】
【0098】
【表11】
【0099】
【表12】
【0100】
【表13】
【0101】
【表14】
【図面の簡単な説明】
【図1】pウエイセットの一連のキャッシュに対する制
御のPASCALに似た疑似コードフローを示す図であ
る。
【図2】本発明の第1方法のPASCALに似た実行で
用いたグローバル定数の定義を示す図である。
【図3】本発明の第1方法のグローバル・タイプの定義
の記述を示す図である。
【図4】本発明の第1方法のグローバル変数定義の記述
を示す図である。
【図5】本発明の第1方法に対する制御のPASCAL
に似た疑似コードフローにおける優先順位付けキャッシ
ュ・ドライバを示す図である。
【図6】本発明の第1方法によりCPUが(I/Oの)
優先順位付けキャッシュ参照を処理する様子を示す図で
ある。
【図7】区画サイズの変更が本発明の第1方法により行
われた場合にCPUがキャッシュ参照を処理する様子を
も示す図である。
【図8】キャッシュ・スペース割振りに対する代表的な
読取りヒット率関数を示す図である。
【図9】本発明の第2方法のPASCAL実行で使用さ
れるグローバル・タイプの定義を示す図である。
【図10】本発明の第2方法のPASCAL実行で使用
されるグローバル変数の定義を示す図である。
【図11】本発明の第2方法のPASCALに似た実行
で使用される一般的定数の初期値の定義を示す図であ
る。
【図12】本発明の第2方法のPASCALに似た実行
で使用される優先度クラス定数の初期値の定義を示す図
である。
【符号の説明】
0〜3 優先度クラス A〜J データ・セット K 定数 X、Y キャッシュ区画 Xp 新しいスペース割振り

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 優先度クラス範囲1...Nにわたって
    定義されたデータ内容を収めているLRU(Least
    Recently Used)キャッシュを管理する
    方法であり、該キャッシュはCPUに接続された多層ス
    テージング記憶システムの予め定めた層に置かれてお
    り、該キャッシュ内のデータは1サイクルの読取り命令
    および書込み命令によって参照され、単位時間の該参照
    の率はヒット率と呼ばれるキャッシュ管理方法におい
    て、 (a)初期状態において前記キャッシュを複数のキャッ
    シュ区画に分割し、該キャッシュ区画の各々にヒット率
    見積り値と記憶スペース配置を割り当てるステップと、 (b)複数の連続するサイクルの各サイクルに、(i)
    前記キャッシュ区画の各々のヒット率勾配を確認するス
    テップを実行し、該ヒット率勾配は前記キャッシュ区画
    の各々におけるヒット率の変化と、該変化に対応する前
    記キャッシュ区画の各々に割り振られた記憶スペースの
    変化との比率に相当しており、(ii)それぞれのヒッ
    ト率勾配が前記キャッシュ区画のすべての間でほぼ等し
    くなるように前記キャッシュ区画の各々の前記記憶スペ
    ース割振りを調整するステップを実行するステップとを
    具えたことを特徴とするキャッシュ管理方法。
  2. 【請求項2】 前記記憶スペース割振りの調整ステップ
    は、 (a)前記ヒット率勾配を平等化するためにスペース減
    少を必要とする、正のヒット率勾配をもつ前記区画のす
    べてについてスペース調整を加えて、キャッシュ・スペ
    ース供給量を得るステップと、 (b)前記ヒット率勾配を平等化するためにスペース増
    加を必要とする、正のヒット率勾配をもつ前記区画のす
    べてについてスペース調整を加えて、キャッシュ・スペ
    ース必要量を得るステップと、 (c)スペース増加を必要とする正のヒット率勾配をも
    つ前記キャッシュ区画のすべての間で、前記キャッシュ
    ・スペース供給量の前記キャッシュ・スペース必要量に
    対する比率に従った比例配分で前記キャッシュ・スペー
    ス供給量を再割り振りするステップとをさらに具えたこ
    とを特徴とする請求項1に記載のキャッシュ管理方法。
  3. 【請求項3】 循環的ルール・ベースの制御データ感知
    推論システムを使用し、該制御データは区画サイズ、優
    先度、重み付け係数、予想ヒット率勾配、および実際の
    ヒット率勾配のキャッシュ・パラメータ値を含み、前記
    推論システムは制御データおよびルールをストアするた
    めの記憶手段と、該記憶手段と協働して制御サイクルを
    実行するための実行手段とを備え、前記ルールの各々は
    パターン表示部分とアクション指定部分とをもち、循環
    的なステップとして、 (a)ルールのパターン表示部分を前記記憶手段内の制
    御データの要素のうち、先行サイクル時に変更または作
    成された要素と突き合わせることによってルールの実行
    可能サブセットを識別するステップと、 (b)前記ルールの実行可能サブセットからルールを選
    択するステップと、 (c)その選択したルールのアクション指定部分に従っ
    てアクションを実行するステップとを有することを特徴
    とする請求項1に記載のキャッシュ管理方法。
  4. 【請求項4】 CPUに接続された多層ステージング・
    データ記憶システムにおいて、該データ記憶システムの
    予め定めた層に位置する区画分割キャッシュを管理する
    方法であって、前記キャッシュは、CPU読取り命令お
    よび書込み命令によって即時に参照されるようにデータ
    をストアしており、 (a)初期状態において前記キャッシュを複数のキャッ
    シュ区画に分割するステップと、 (b)各キャッシュ区画について、(i)初期状態にお
    いてキャッシュ記憶スペース配置を割り当て、および
    (ii)参照ヒット率の変化の、該変化に対応する前記
    記憶スペース割振りの変化に対する比率に相当するキャ
    ッシュ・ヒット率勾配を確認し、前記参照ヒット率は、
    前記キャッシュ区画に置かれているデータに対して単位
    時間に参照が行われる率に対応するステップと、 (c)第1のキャッシュ区画のキャッシュ・ヒット率勾
    配を第2のキャッシュ区画のキャッシュ・ヒット率勾配
    と比較するステップと、 (d)前記第1の区画のキャッシュ・ヒット率勾配が前
    記第2の区画のキャッシュ・ヒット率勾配よりも小さい
    ならば、前記第1のキャッシュ区画からキャッシュ記憶
    スペースを削除し、それを前記第2の区画に割り振られ
    ているキャッシュ記憶スペースに追加するステップと、
    そうでなければ、 (e)前記比較ステップと削除ステップを繰り返すステ
    ップとを具えたことを特徴とするキャッシュ管理方法。
  5. 【請求項5】 (a)各キャッシュ区画について、
    (i)初期状態において優先度の値を割り当て、および
    (ii)前記ヒット率勾配と前記優先度の値の積に相当
    する重み付けキャッシュ・ヒット率勾配を確認するステ
    ップと、 (b)比較ステップは前記第1のキャッシュ区画の重み
    付けキャッシュ・ヒット率勾配を前記第2のキャッシュ
    区画の重み付けキャッシュ・ヒット率勾配と比較するこ
    とを含み、 (c)前記削除ステップは、前記第1の区画の重み付け
    キャッシュ・ヒット率数勾配が前記第2の区画のキャッ
    シュ・ヒット率勾配よりも小さいならば、割り振られた
    キャッシュ記憶スペースを前記第1のキャッシュ区画か
    ら削除し、それを前記第2の区画に割り振られたキャッ
    シュ記憶スペースに追加することを含むことを特徴とす
    る請求項4に記載のキャッシュ管理方法。
  6. 【請求項6】 優先度クラス範囲1...Nにわたって
    定義されたデータ内容を複数のキャッシュ区画に収めて
    いるLRU(Least RecentlyUsed)
    キャッシュを管理する方法であり、該キャッシュはCP
    Uに接続された多層ステージング記憶システムの予め定
    めた層に置かれており、該キャッシュ内のデータは1サ
    イクルの読取り命令および書込み命令によって参照さ
    れ、「ヒット率勾配」と名付けたキャッシュ区画測定単
    位は、それぞれの前記キャッシュ区画に置かれたデータ
    に対する前記単位時間での参照率の変化の、該変化に対
    応するそれぞれの前記キャッシュ区画に割り振られたキ
    ャッシュ・スペースの変化に対する比率であるとしたキ
    ャッシュ管理方法において、 (a)優先度の値、重み付け係数、第1のヒット率見積
    り値および第1のスペース割振りをN個のキャッシュ区
    画の各々に割り当てるステップと、 (b)前記キャッシュ区画の各々の実際のヒット率勾配
    を測定するステップと、 (c)前記キャッシュ区画の各々の重み付けヒット率勾
    配を決定し、該重み付けヒット率勾配はそれぞれの実際
    のヒット率勾配とそれぞれの重み付け係数との積と等し
    いものとしたステップと、 (d)前記キャッシュ区画のすべての重み付けヒット率
    勾配を等しくするために必要なスペース割振り変更量を
    前記キャッシュ区画の各々について見積もるステップ
    と、 (e)総キャッシュ・スペースの一部分を前記スペース
    割振り変更量に従って再割り振りすることとしたステッ
    プとを具えたことを特徴とするキャッシュ管理方法。
JP4276316A 1991-11-18 1992-10-14 優先順位付けキャッシュ管理方法 Expired - Lifetime JPH0778768B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US793763 1991-11-18
US07/793,763 US5394531A (en) 1989-04-03 1991-11-18 Dynamic storage allocation system for a prioritized cache

Publications (2)

Publication Number Publication Date
JPH05225066A true JPH05225066A (ja) 1993-09-03
JPH0778768B2 JPH0778768B2 (ja) 1995-08-23

Family

ID=25160733

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4276316A Expired - Lifetime JPH0778768B2 (ja) 1991-11-18 1992-10-14 優先順位付けキャッシュ管理方法

Country Status (3)

Country Link
US (1) US5394531A (ja)
EP (1) EP0543614A1 (ja)
JP (1) JPH0778768B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006004407A (ja) * 2004-05-03 2006-01-05 Microsoft Corp 不揮発性メモリ・キャッシュの性能改善
US7664917B2 (en) 2005-03-24 2010-02-16 Fujitsu Limited Device and method for caching control, and computer product
JP2012181863A (ja) * 2004-10-21 2012-09-20 Microsoft Corp システムパフォーマンスを改善するための外部メモリデバイスの使用
US9032151B2 (en) 2008-09-15 2015-05-12 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US9361183B2 (en) 2008-09-19 2016-06-07 Microsoft Technology Licensing, Llc Aggregation of write traffic to a data store
US9529716B2 (en) 2005-12-16 2016-12-27 Microsoft Technology Licensing, Llc Optimizing write and wear performance for a memory

Families Citing this family (115)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06250928A (ja) * 1993-02-24 1994-09-09 Matsushita Electric Ind Co Ltd 情報処理装置
GB9307359D0 (en) * 1993-04-08 1993-06-02 Int Computers Ltd Cache replacement mechanism
US5542066A (en) * 1993-12-23 1996-07-30 International Business Machines Corporation Destaging modified data blocks from cache memory
US5537635A (en) * 1994-04-04 1996-07-16 International Business Machines Corporation Method and system for assignment of reclaim vectors in a partitioned cache with a virtual minimum partition size
US6047356A (en) * 1994-04-18 2000-04-04 Sonic Solutions Method of dynamically allocating network node memory's partitions for caching distributed files
US5675797A (en) * 1994-05-24 1997-10-07 International Business Machines Corporation Goal-oriented resource allocation manager and performance index technique for servers
US5604889A (en) * 1994-06-15 1997-02-18 Texas Instruments Incorporated Memory management system for checkpointed logic simulator with increased locality of data
US5555379A (en) * 1994-07-06 1996-09-10 Advanced Micro Devices, Inc. Cache controller index address generator
US5566315A (en) * 1994-12-30 1996-10-15 Storage Technology Corporation Process of predicting and controlling the use of cache memory in a computer system
JPH08242286A (ja) * 1995-03-03 1996-09-17 Fujitsu Ltd 通信網管理制御方式
US5696932A (en) * 1995-05-16 1997-12-09 International Business Machines Corporation Method and system for estimating minumun requirements on a cache in a computer based storage system
US5894564A (en) * 1995-06-07 1999-04-13 International Business Machines Corporation System for identifying memory segment bounded by previously accessed memory locations within data block and transferring thereof only when the segment has been changed
US5787472A (en) * 1995-07-31 1998-07-28 Ibm Corporation Disk caching system for selectively providing interval caching or segment caching of vided data
US5668987A (en) * 1995-08-31 1997-09-16 Sybase, Inc. Database system with subquery optimizer
US6016535A (en) * 1995-10-11 2000-01-18 Citrix Systems, Inc. Method for dynamically and efficiently caching objects by subdividing cache memory blocks into equally-sized sub-blocks
US6081623A (en) * 1995-10-11 2000-06-27 Citrix Systems, Inc. Method for lossless bandwidth compression of a series of glyphs
US5745737A (en) * 1996-03-28 1998-04-28 Sun Microsystems, Inc. System and method for visually indicating cache activity in a computer system
US6057857A (en) 1996-06-12 2000-05-02 Citrix Systems, Inc. Method for the lossless compression of lines in a distributed computer system
US5937401A (en) * 1996-11-27 1999-08-10 Sybase, Inc. Database system with improved methods for filtering duplicates from a tuple stream
US6092149A (en) * 1997-05-28 2000-07-18 Western Digital Corporation Disk drive cache system using a dynamic priority sequential stream of data segments continuously adapted according to prefetched sequential random, and repeating types of accesses
US5987530A (en) * 1997-07-10 1999-11-16 National Instruments Coporation Method for caching data and generating only one read request to read the requested data and additional data in universal serial bus system
US6073205A (en) * 1997-07-10 2000-06-06 National Instruments Corporation System and method of write posting in a universal serial bus system
US20020042861A1 (en) * 1997-11-07 2002-04-11 Kavipurapu Gautam Nag Apparatus and method for implementing a variable block size cache
US6105115A (en) * 1997-12-31 2000-08-15 Intel Corporation Method and apparatus for managing a memory array
US6341281B1 (en) 1998-04-14 2002-01-22 Sybase, Inc. Database system with methods for optimizing performance of correlated subqueries by reusing invariant results of operator tree
US6141731A (en) * 1998-08-19 2000-10-31 International Business Machines Corporation Method and system for managing data in cache using multiple data structures
US6370622B1 (en) 1998-11-20 2002-04-09 Massachusetts Institute Of Technology Method and apparatus for curious and column caching
US6378043B1 (en) * 1998-12-31 2002-04-23 Oracle Corporation Reward based cache management
US6493800B1 (en) * 1999-03-31 2002-12-10 International Business Machines Corporation Method and system for dynamically partitioning a shared cache
US6532520B1 (en) 1999-09-10 2003-03-11 International Business Machines Corporation Method and apparatus for allocating data and instructions within a shared cache
US6775695B1 (en) * 1999-10-29 2004-08-10 Hewlett-Packard Development Company, L.P. Client session depth based caching in proxy servers
DE19961499A1 (de) * 1999-12-20 2001-07-05 Ericsson Telefon Ab L M Caching von Objekten in Platten-gestützten Datenbanken
WO2001090901A2 (en) * 2000-05-25 2001-11-29 Exent Technologies, Inc. Disk caching
AU2001274972A1 (en) * 2000-05-26 2001-12-11 Citrix Systems, Inc. Method and system for efficiently reducing graphical display data for transmission over a low bandwidth transport protocol mechanism
US6928459B1 (en) * 2000-07-18 2005-08-09 International Business Machines Corporation Plurality of file systems using weighted allocation to allocate space on one or more storage devices
US6829678B1 (en) * 2000-07-18 2004-12-07 International Business Machines Corporation System for determining the order and frequency in which space is allocated on individual storage devices
US6574718B2 (en) * 2001-02-28 2003-06-03 International Business Machines Corporation Excessive spin detection and avoidance for systems using a least recently used page replacement algorithm
US6748491B2 (en) * 2001-04-19 2004-06-08 International Business Machines Corporation Designing a cache using an LRU-LFU array
US6792509B2 (en) * 2001-04-19 2004-09-14 International Business Machines Corporation Partitioned cache of multiple logical levels with adaptive reconfiguration based on multiple criteria
US6745295B2 (en) * 2001-04-19 2004-06-01 International Business Machines Corporation Designing a cache with adaptive reconfiguration
WO2003017571A2 (en) * 2001-08-15 2003-02-27 Sheer Networks, Inc. Service provisioning in a distributed network management architecture
JP2003131946A (ja) * 2001-10-19 2003-05-09 Nec Corp キャッシュメモリ制御装置及び方法
US6848026B2 (en) * 2001-11-09 2005-01-25 International Business Machines Corporation Caching memory contents into cache partitions based on memory locations
US6829679B2 (en) * 2001-11-09 2004-12-07 International Business Machines Corporation Different caching treatment of memory contents based on memory region
US7058771B2 (en) * 2001-11-21 2006-06-06 Reno System and method for managing memory in a surveillance system
US20030115346A1 (en) * 2001-12-13 2003-06-19 Mchenry Stephen T. Multi-proxy network edge cache system and methods
US6681309B2 (en) * 2002-01-25 2004-01-20 Hewlett-Packard Development Company, L.P. Method and apparatus for measuring and optimizing spatial segmentation of electronic storage workloads
US6944715B2 (en) * 2002-08-13 2005-09-13 International Business Machines Corporation Value based caching
US6928531B2 (en) * 2002-08-29 2005-08-09 Micron Technology, Inc. Linear and non-linear object management
US6968439B2 (en) * 2002-08-29 2005-11-22 Micron Technology, Inc. Single segment data object management
US6895486B2 (en) * 2002-08-29 2005-05-17 Micron Technology, Inc. Linear object management for a range of flash memory
US6938140B2 (en) * 2002-08-29 2005-08-30 Micron Technology, Inc. System and method for linear object reallocation in place
US7130979B2 (en) * 2002-08-29 2006-10-31 Micron Technology, Inc. Dynamic volume management
US6970969B2 (en) * 2002-08-29 2005-11-29 Micron Technology, Inc. Multiple segment data object management
US6922754B2 (en) * 2002-12-09 2005-07-26 Infabric Technologies, Inc. Data-aware data flow manager
JP4066833B2 (ja) * 2003-02-18 2008-03-26 日本電気株式会社 ディスクアレイ制御装置及び方法並びにディスクアレイ制御プログラム
EP1599803B1 (en) * 2003-02-24 2009-09-30 Nxp B.V. Reducing cache trashing of certain pieces
US7447786B2 (en) * 2003-05-09 2008-11-04 Oracle International Corporation Efficient locking of shared data that is accessed for reads in a cluster database
US20040230753A1 (en) * 2003-05-16 2004-11-18 International Business Machines Corporation Methods and apparatus for providing service differentiation in a shared storage environment
US7085895B2 (en) * 2003-09-05 2006-08-01 International Business Machines Corporation Apparatus, system, and method flushing data from a cache to secondary storage
US7107403B2 (en) * 2003-09-30 2006-09-12 International Business Machines Corporation System and method for dynamically allocating cache space among different workload classes that can have different quality of service (QoS) requirements where the system and method may maintain a history of recently evicted pages for each class and may determine a future cache size for the class based on the history and the QoS requirements
US7143240B2 (en) * 2003-10-31 2006-11-28 International Business Machines Corporation System and method for providing a cost-adaptive cache
US7783852B2 (en) * 2003-11-26 2010-08-24 Oracle International Corporation Techniques for automated allocation of memory among a plurality of pools
US7284093B2 (en) * 2004-01-16 2007-10-16 International Business Machines Corporation Self-tuning cache
US20050182902A1 (en) * 2004-02-12 2005-08-18 Shuji Miyasaka Signal processing apparatus
US7779404B2 (en) * 2004-06-10 2010-08-17 Cisco Technology, Inc. Managing network device configuration using versioning and partitioning
US8090806B1 (en) 2004-06-10 2012-01-03 Cisco Technology, Inc. Two-stage network device configuration process
US8423673B2 (en) * 2005-03-14 2013-04-16 Citrix Systems, Inc. Method and apparatus for updating a graphical display in a distributed processing environment using compression
US8171169B2 (en) * 2005-03-14 2012-05-01 Citrix Systems, Inc. Method and apparatus for updating a graphical display in a distributed processing environment
US7209990B2 (en) * 2005-04-05 2007-04-24 Oracle International Corporation Maintain fairness of resource allocation in a multi-node environment
JP4568168B2 (ja) * 2005-05-17 2010-10-27 株式会社日立製作所 情報処理方法及びシステム
US7895398B2 (en) * 2005-07-19 2011-02-22 Dell Products L.P. System and method for dynamically adjusting the caching characteristics for each logical unit of a storage array
US7529891B2 (en) * 2005-09-19 2009-05-05 Microsoft Corporation Balanced prefetching exploiting structured data
US7937257B2 (en) * 2005-10-10 2011-05-03 Oracle International Corporation Estimating performance of application based on automatic resizing of shared memory for messaging
US7512591B2 (en) * 2005-12-09 2009-03-31 International Business Machines Corporation System and method to improve processing time of databases by cache optimization
WO2007068122A1 (en) * 2005-12-16 2007-06-21 Univ Western Ontario System and method for cache management
US7788449B2 (en) * 2006-09-20 2010-08-31 International Business Machines Corporation Cache configuration in a database system
JP5523835B2 (ja) 2006-12-06 2014-06-18 フュージョン−アイオー,インコーポレイテッド 高容量不揮発性ストレージ用のキャッシュとしてのソリッドステートストレージのための装置、システム、及び方法
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US8631203B2 (en) * 2007-12-10 2014-01-14 Microsoft Corporation Management of external memory functioning as virtual cache
US8943271B2 (en) 2008-06-12 2015-01-27 Microsoft Corporation Distributed cache arrangement
US8032707B2 (en) 2008-09-15 2011-10-04 Microsoft Corporation Managing cache data and metadata
US8219757B2 (en) * 2008-09-30 2012-07-10 Intel Corporation Apparatus and method for low touch cache management
US8769201B2 (en) * 2008-12-02 2014-07-01 Intel Corporation Technique for controlling computing resources
US8095738B2 (en) * 2009-06-15 2012-01-10 International Business Machines Corporation Differential caching mechanism based on media I/O speed
JP4801761B2 (ja) * 2009-08-12 2011-10-26 株式会社日立製作所 データベース管理方法およびシステム並びにその処理プログラム
EP2413244A1 (en) * 2010-07-30 2012-02-01 Alcatel Lucent Method and apparatus for allocating memory in a cache
WO2012116369A2 (en) * 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
US20120290789A1 (en) * 2011-05-12 2012-11-15 Lsi Corporation Preferentially accelerating applications in a multi-tenant storage system via utility driven data caching
US9354989B1 (en) * 2011-10-03 2016-05-31 Netapp, Inc Region based admission/eviction control in hybrid aggregates
US8688915B2 (en) 2011-12-09 2014-04-01 International Business Machines Corporation Weighted history allocation predictor algorithm in a hybrid cache
US8843707B2 (en) 2011-12-09 2014-09-23 International Business Machines Corporation Dynamic inclusive policy in a hybrid cache hierarchy using bandwidth
US8788757B2 (en) * 2011-12-09 2014-07-22 International Business Machines Corporation Dynamic inclusive policy in a hybrid cache hierarchy using hit rate
CN102591799B (zh) * 2011-12-30 2015-04-15 华为技术有限公司 一种存放数据的方法和装置
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US9195409B2 (en) 2012-05-01 2015-11-24 Enmotus, Inc. Storage system with load balancing mechanism and method of operation thereof
US9141544B2 (en) * 2012-06-26 2015-09-22 Qualcomm Incorporated Cache memory with write through, no allocate mode
CN103077125B (zh) * 2012-12-13 2015-09-16 北京锐安科技有限公司 一种高效利用存储空间的自适应自组织塔式缓存方法
US9098417B2 (en) * 2012-12-13 2015-08-04 Advanced Micro Devices, Inc. Partitioning caches for sub-entities in computing devices
US10642735B2 (en) * 2013-03-15 2020-05-05 Oracle International Corporation Statement cache auto-tuning
US10229161B2 (en) 2013-09-20 2019-03-12 Oracle International Corporation Automatic caching of scan and random access data in computing systems
US9292454B2 (en) 2013-09-27 2016-03-22 Microsoft Technology Licensing, Llc Data caching policy in multiple tenant enterprise resource planning system
CN103778071A (zh) * 2014-01-20 2014-05-07 华为技术有限公司 缓存的空间分配方法及装置
CN103984644B (zh) * 2014-05-07 2017-12-05 华为技术有限公司 一种数据管理方法及装置
CN104133642B (zh) * 2014-07-29 2018-07-13 浙江宇视科技有限公司 SSD Cache填充方法及装置
KR20160082089A (ko) * 2014-12-30 2016-07-08 한국전자통신연구원 분산 메모리 통합 프레임워크 기반 다중 속성 메모리 캐시의 동적 운영 방법 및 시스템
US10331573B2 (en) 2016-11-04 2019-06-25 Oracle International Corporation Detection of avoidable cache thrashing for OLTP and DW workloads
US10635594B1 (en) * 2016-12-30 2020-04-28 EMC IP Holding Company LLC Dynamically redistribute cache space based on time savings
US10459810B2 (en) 2017-07-06 2019-10-29 Oracle International Corporation Technique for higher availability in a multi-node system using replicated lock information to determine a set of data blocks for recovery
US10664396B2 (en) * 2017-10-04 2020-05-26 Intel Corporation Systems, methods and apparatus for fabric delta merge operations to enhance NVMeoF stream writes
US11055234B2 (en) 2019-05-21 2021-07-06 International Business Machines Corporation Managing allocation and demotion of cache segments between a global queue and a plurality of local queues by training a machine learning module
US11048641B2 (en) 2019-05-21 2021-06-29 International Business Machines Corporation Managing allocation and demotion of cache segments between a global queue and a plurality of local queues by using a machine learning module
US11106387B2 (en) 2019-09-12 2021-08-31 Enmotus, Inc. Storage system with allocated storage device mechanism and method of operation thereof
CN116383258B (zh) * 2023-05-23 2023-08-11 菏泽全胜建筑装饰工程有限公司 基于bim的建筑施工数据管理方法及系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4315312A (en) * 1979-12-19 1982-02-09 Ncr Corporation Cache memory having a variable data block size
US4463424A (en) * 1981-02-19 1984-07-31 International Business Machines Corporation Method for dynamically allocating LRU/MRU managed memory among concurrent sequential processes
US4489378A (en) * 1981-06-05 1984-12-18 International Business Machines Corporation Automatic adjustment of the quantity of prefetch data in a disk cache operation
US4458310A (en) * 1981-10-02 1984-07-03 At&T Bell Laboratories Cache memory using a lowest priority replacement circuit
US4430712A (en) * 1981-11-27 1984-02-07 Storage Technology Corporation Adaptive domain partitioning of cache memory space
US4503501A (en) * 1981-11-27 1985-03-05 Storage Technology Corporation Adaptive domain partitioning of cache memory space
US4603382A (en) * 1984-02-27 1986-07-29 International Business Machines Corporation Dynamic buffer reallocation
US4947319A (en) * 1988-09-15 1990-08-07 International Business Machines Corporation Arbitral dynamic cache using processor storage
EP0391871A3 (en) * 1989-04-03 1992-05-27 International Business Machines Corporation Method for managing a prioritized cache

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9405693B2 (en) 2004-05-03 2016-08-02 Microsoft Technology Licensing, Llc Non-volatile memory cache performance improvement
US8041904B2 (en) 2004-05-03 2011-10-18 Microsoft Corporation Non-volatile memory cache performance improvement
JP2006004407A (ja) * 2004-05-03 2006-01-05 Microsoft Corp 不揮発性メモリ・キャッシュの性能改善
US10216637B2 (en) 2004-05-03 2019-02-26 Microsoft Technology Licensing, Llc Non-volatile memory cache performance improvement
JP2013047979A (ja) * 2004-05-03 2013-03-07 Microsoft Corp 不揮発性メモリ・キャッシュの性能改善
US9690496B2 (en) 2004-10-21 2017-06-27 Microsoft Technology Licensing, Llc Using external memory devices to improve system performance
JP2012181863A (ja) * 2004-10-21 2012-09-20 Microsoft Corp システムパフォーマンスを改善するための外部メモリデバイスの使用
US8909861B2 (en) 2004-10-21 2014-12-09 Microsoft Corporation Using external memory devices to improve system performance
US7664917B2 (en) 2005-03-24 2010-02-16 Fujitsu Limited Device and method for caching control, and computer product
US9529716B2 (en) 2005-12-16 2016-12-27 Microsoft Technology Licensing, Llc Optimizing write and wear performance for a memory
US11334484B2 (en) 2005-12-16 2022-05-17 Microsoft Technology Licensing, Llc Optimizing write and wear performance for a memory
US9032151B2 (en) 2008-09-15 2015-05-12 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US10387313B2 (en) 2008-09-15 2019-08-20 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US9361183B2 (en) 2008-09-19 2016-06-07 Microsoft Technology Licensing, Llc Aggregation of write traffic to a data store
US9448890B2 (en) 2008-09-19 2016-09-20 Microsoft Technology Licensing, Llc Aggregation of write traffic to a data store
US10509730B2 (en) 2008-09-19 2019-12-17 Microsoft Technology Licensing, Llc Aggregation of write traffic to a data store

Also Published As

Publication number Publication date
US5394531A (en) 1995-02-28
EP0543614A1 (en) 1993-05-26
JPH0778768B2 (ja) 1995-08-23

Similar Documents

Publication Publication Date Title
JPH05225066A (ja) 優先順位付けキャッシュ管理方法
CN110134514B (zh) 基于异构内存的可扩展内存对象存储系统
US4463424A (en) Method for dynamically allocating LRU/MRU managed memory among concurrent sequential processes
US5606688A (en) Method and apparatus for dynamic cache memory allocation via single-reference residency times
US6738865B1 (en) Method, system, and program for demoting data from cache based on least recently accessed and least frequently accessed data
JP2675967B2 (ja) キヤツシユの動的分割方法及びその手段
US5537635A (en) Method and system for assignment of reclaim vectors in a partitioned cache with a virtual minimum partition size
US5537568A (en) System for dynamically controlling cache manager maintaining cache index and controlling sequential data access
US6871272B2 (en) Data sorting in information storage systems
US6948033B2 (en) Control method of the cache hierarchy
US20020056025A1 (en) Systems and methods for management of memory
US20190361811A1 (en) Data processing apparatus and prefetch method
JPH02281350A (ja) キヤツシユ・メモリ管理
US7181588B2 (en) Computer apparatus and method for autonomic adjustment of block transfer size
US6098153A (en) Method and a system for determining an appropriate amount of data to cache
Laga et al. Lynx: A learning linux prefetching mechanism for ssd performance model
US20090320022A1 (en) File System Object Node Management
EP0391871A2 (en) Method for managing a prioritized cache
US11561834B2 (en) Methods and systems for adaptive memory-resource management
Chen et al. Data prefetching and eviction mechanisms of in-memory storage systems based on scheduling for big data processing
CN115203076B (zh) 数据结构优化的专用存储器缓存
US7120776B2 (en) Method and apparatus for efficient runtime memory access in a database
US20090320036A1 (en) File System Object Node Management
Barve et al. Application-controlled paging for a shared cache
US7937552B2 (en) Cache line reservations