JPH0315957A - コンピュータ・システム - Google Patents
コンピュータ・システムInfo
- Publication number
- JPH0315957A JPH0315957A JP1184883A JP18488389A JPH0315957A JP H0315957 A JPH0315957 A JP H0315957A JP 1184883 A JP1184883 A JP 1184883A JP 18488389 A JP18488389 A JP 18488389A JP H0315957 A JPH0315957 A JP H0315957A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- size
- data
- data cache
- memory
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 6
- 238000004513 sizing Methods 0.000 claims 1
- 239000000872 buffer Substances 0.000 abstract description 18
- 230000008859 change Effects 0.000 abstract description 5
- 230000008569 process Effects 0.000 abstract description 2
- 230000003044 adaptive effect Effects 0.000 abstract 1
- 230000002860 competitive effect Effects 0.000 abstract 1
- 238000003745 diagnosis Methods 0.000 abstract 1
- 230000003247 decreasing effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 208000004117 Congenital Myasthenic Syndromes Diseases 0.000 description 4
- 230000007423 decrease Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 230000035945 sensitivity Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000010355 oscillation Effects 0.000 description 2
- ZNJRONVKWRHYBF-UHFFFAOYSA-N 2-[2-[2-(1-azatricyclo[7.3.1.05,13]trideca-5,7,9(13)-trien-7-yl)ethenyl]-6-methylpyran-4-ylidene]propanedinitrile Chemical compound O1C(C)=CC(=C(C#N)C#N)C=C1C=CC1=CC(CCCN2CCC3)=C2C3=C1 ZNJRONVKWRHYBF-UHFFFAOYSA-N 0.000 description 1
- 101100323945 Arabidopsis thaliana ARI3 gene Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 201000006855 congenital myasthenic syndrome 8 Diseases 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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
- G06F12/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/311—In host system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
A.産業上の利用分野
本発明は一般にコンピュータの分野,特にコンピュータ
で使用される動的キャッシュに関する.B.従来技術及
びその問題点 データ・キャッシュは技術的に広く知られ、多種類のコ
ンピュータで動作を向上させるために用いられている.
本発明は主として一般にディスクとして知られている直
接アクセス記憶装置(DASD)とのI/O動作を高め
るのに役立つキャッシュについて記述する. このようなキャッシュは主記憶装置の一部,即ちディス
クに常駐するデータ・ファイルの頻用される部分を包含
するバッファとして作動するメモリを用いる.主記憶装
置(一般に固体RAM)のアクセスは通常はディスク(
機械的な装置)のアクセスよりもかなり速い.プロセッ
サが必要とすると見込まれるデータを実際にプロセッサ
が必要とする以前にメモリに持込むことにより、種々の
ファイルI/Oの実行を大幅に向上させることができる
, データ・キャッシュは,オペレーティング・システムと
ディスクの間にバッファのセットを挿入することにより
,これを行うことができる.データ・キャッシュ・プロ
グラムはこのバッファのセットを維持し.ディスクにデ
ータが要求されたときもしバッファ中に該データがあれ
ばディスクからではなくバッファの1つから該要求が濶
たされるようにこれらのバッファを管理する.その結果
,かなり高速なディスク・アクセスが得られる.ディス
クに対する要求が出され且つデータがバッファのlつに
ないとき該要求がオペレーティング・システムに戻され
る前に該データが(少なくとも)1つのバッファに読込
まれるようにバッファは維持される.これはアクセス中
の新しいデータをキャッシュが取得することを可能にす
る.キャッシュは参照頻度が低い”古い”データを高い
参照頻度が見込まれる”新しい”データと置き換えるこ
とができるようにもバッファを維持しなければならない
.キャッシュは全てのバッファのリスト即ちディレクト
リを維持することによりこれを行う.該リストは使用頻
度の高いバッファがリストの一方の端に近く、使用頻度
の低いバッファが他方の端に近いように維持される.も
しキャッシュが(新しいデータの)バッファを必要とす
るなら、該キャッシュは使用頻度の低いパッファを有す
るリストの端から1つのバッファを取得する.これはL
R U (Least Recently Use
d)リストと呼ばれる.データをキャッシュに取込む他
の方法も用いられることがあるが,LRUアルゴリズム
が最も広く用いられている. 従来技術では,プロセッサ・メモリを利用するデータ・
キャッシュはサイズが一定しているので記憶リソースに
対する競合する要求には適応しない.また、それらはメ
イン・メモリ、又はよくても仮想メモリだけを利用する
. 従って,本発明の目的はサイズの一定していないデータ
・キャッシュを提供することである.本発明のもう1つ
の目的は,システム・スループットを最適化するように
,プロセッサ記憶機構に対する競合する要求に応じてそ
のサイズを動的に適応させるデータ・キャッシュを提供
することである. 更に,本発明のもう1つの目的は他のオペレーティング
・システム構或要素と協同して実記憶又は拡張記憶機構
のどちらか又は両者を利用するデータ・キャッシュを提
供することである.C.問題点を解決するための手段 本発明の良好な実施例に従って.コンピュータ・オペレ
ーティング・システムにデータ・キャッシュが提供され
る.データ・キャッシュはプロセッサ記憶機構に対する
競合する要求に応じてそのサイズを動的に適応させ、且
つ該記憶機構を他のオペレーティング・システム構戒要
素と協同して利用する.メモリに対する競合する要求に
基づいてキャッシュの適切なサイズを決定するのに7ー
ビタ(arbiter)が用いられる.アービタの動作
は周期的に開始され,ユーザーの待ち状態をサンプリン
グする.そしてアービタは所定のパラメータによりキャ
ッシュのサイズを増大したり減少したリする決定を行う
. D.実施例 現在の複数ユーザー・コンピュータ・システムでは,ス
トアスルー(store−through) ・データ
・キャッシュはオペレーティング・システムエ/○チャ
ネル・プログラムを介する読取りで参照される.第2レ
ベル割込みハンドラ(SLIH)では,読取りミス及び
書込みはI/Oチャネル・プログラムを介してキャッシ
ュに挿入される. IBM VMオペレーティング・シ
ステムでは.これは.CMSデータ・キャッシュをサポ
ートする診断I/Oハンドラ及びその関連S L I
Hで行われるであろう.第1図はCMS仮想計算機の性
能を高めるVM/SPにおけるデータ・キャッシュの配
置を示す.他のバージョンのVM(例えば、VM/XA
)の細部は異なるが、基本的な構造は似ている.第1図
で.CMS8によりカウント・キー・データ(CKD)
及び固定ブロック・アーキテクチャ(FBA)DASD
に渡される読取りチャネル・プログラムはキャッシュを
質問するために用いられる.DMKDGDIO及びDM
KG I 0 1 2は診断命令を渡されたCMS
I/OをサービスするVM/SPモジュールである.新
しいモジュール.DMKDGJ 14はチャネル・プロ
グラムを解釈し、キャッシュ・マネジャ、DMKDGC
16のパラメータ・リストを作成する.もし、全てのブ
ロックがキャッシュ内にあれば、診断は同時に行われ、
全てのブロックがユーザーのバツファにコピーされる.
もしキャッシュ・ミスがあれば.通常の非同期処理が行
われる.I/Oが終了した後、新しいブロックが更新さ
れる、即ちキャッシュに挿入される.これはそれぞれの
CKD及びFBA第2レベル割込みハンドラ(SLIH
)、DMKDGF18及びDMKGIO20、新しいモ
ジュールとのインタフェース、DMKDGR22 −
DMKDGC1 6のパラメータ・リストを作處する−
を設けることにより威し遂げられる.次に,第2図以下
により本発明について説明する.システム初期設定中に
、キャッシュが実記憶又は拡張記憶機構を用いるかどう
か,キャッシュが取?1}を許可される最大のサイズ、
及び最大サイズの部分g,即ちページ数−このページ数
だけ判定点でキャッシュが増大されたり減少されたりす
る一について判定が行われる.値gは最大許容キャッシ
ュ・サイズの妥当な割合となるように、しかし,仮想メ
モリの要求とキャッシュ・ページの間の均衡を達成する
のに過小な割合とならないように選択されなければなら
ない.gの値は最大許容サイズの5%〜10%の範囲内
にある場合にうまく働くことがわかっている. システム初期設定直後は,キャッシュは空である.本発
明は従来技術とは違ってアービタを用い、メモリ・リソ
ースに対する競合する要求に基づいてキャッシュの適切
なサイズを決定する.アービタが用いる特定のアルゴリ
ズムは,それを用いるオペレーティング・システムによ
り異なることがあるが,本明細書ではIBM VMオペ
レーティング・システムに関して記述する.VMでは、
アービタの動作は周期的に開始され,ユーザーの待ち状
態をサンプリングする.アービタは特に下記を決定する
: (1)キャッシュ適格(eligible) I /
O待ち状態のユーザー,即ちキャッシュをミスした読取
りの数(第2A図ステップ100). (2)メモリ待ちしているユーザーの数(ステップ10
2).VMでは.これは非スプール・ページ待ちであり
,メイン・メモリ・キャッシュの場合は,適格リスト占
有である. (3)キャッシュ・ヒットの数(ステップ1 04).
アービタは周期的に走行しnサイクル毎に決定を行う.
サイクル間隔及び値nは、変化するロードに対し妥当な
感知性を可能にするに足る短い間隔内で統計的に有意の
サンプル数が得られるように選択される. サンプル値に実質的な相違がない時の決定を避けるため
,アービタは値εを用いて不必要なキャッシュ・サイズ
の振動を最小にする.εの値はリソース(例えば、工/
○又は仮想メモリ)待ちの平均ユーザー数及びその結果
生ずる計算機サイズの関数である.この値はシステム初
期設定時にセクトしたり.又はシステムが走行中に動的
に調整したりすることができる.例えば,もし任意の時
点で平均して例えば20人の待ちユーザーがいるなら,
サンプル値の相違1は意味がないとみなすことができる
.他方、待ちユーザーが例えば4人しかいない小さなシ
ステム(又はロードが小さい大きなシステム)では、l
の相違は有意である.各のnサイクル(ステップ106
)の後に,アービタはキャッシュのサイズを大きくし又
は小さくする決定を下記のように行う: もし,最後のnサイクルで、(メモリ待ちのユーザーの
平均数)−(キャッシュ適格I/O待ちのユーザーの平
均数)がεよりも大きいなら(ステップ108).且つ
傾向がメモリ待ちを少なくする方に向っていないなら(
ステップ110)、更に,もしキャッシュが空ではない
なら(ステップ112).キャッシュはgページだけ小
さくされる(ステップ114).キャッシュの減少は同
時に行われる.即ち、gページは.振動を最小にするた
めεが選択されているLRUスタックの底部から直ちに
戻される.傾向検査は前のキャッシュ減少から起こり得
る遅延作用、即ち過渡現象の存在を考慮する.しかしな
がら、もし傾向がメモリ待ちを少なくする方に向ってい
るなら(ステップ110).又はキャッシュが空である
なら(ステップ112).このルーチンは終了する.他
方.最後のnサイクルで,(キャッシュ適格I/O待ち
状態のユーザーの平均数)一(メモリ待ちユーザーの平
均数)がもしεよりも大きいなら(ステップ109).
且つ傾向がキャッシュ適格I/O待ちを少なくする方に
向っていないなら(第2B図ステップ116).更にキ
ャッシュがその最大サイズではないなら (ステップ1
18):(1)もし最後のキャッシュ・サイズの変化が
減少方向であったなら(ステップ120).又はキャッ
シュが空なら(ステップ122).キャッシュはgペー
ジだけ増加される(ステップ124).該増加は実際に
は該キャッシュの現に許可されたサイズである.許可さ
れたサイズは現在のサイズを越えるが、キャッシュ・マ
ネジャはそのL, R Uスタックの底部を用いる代り
に.例えば,適切なオペレーテイング・システムのメモ
リ管理サービスからのページを要求する. (2)さもなければ(もし最後のキャッシュ・サイズの
変化が増加方向であったなら),キャッシュが最後に増
加されてからの単位時間当りの平均キャッシュ・ヒット
が.前の増加期間の同じ平均の或るしきい値%をもし越
えるなら(ステップ126).キャッシュはgぺ一ジだ
け増加される(ステップ128).この検査はシステム
がキャッシュから継続して利益を得ていることを確認す
るために行われる.もし平均キャッシュ・ヒットが該し
きい値よりも大きくないなら,このルーチンは終了する
. ステップ109で,(キャッシュ適格I/O待ちのユー
ザーの平均数)−(仮想メモリ待ちのユーザーの平均数
)がもしεよりも大きくないなら、又は、ステップ11
6で、もし傾向がキャッシュ適格I/O待ちを少なくす
る方に向っているなら.このルーチンは終了する. 更に、オペレーティング・システムのメモリ・リソース
・マネジャは任意の量のキャッシュ・ページを戻すこと
を,もしそれが過渡的な要求により必要なら,要求する
ことができる. 次に,IBM拡張記憶機構での本発明による調停機能を
有する動的データ・キャッシュの実現について記述する
.前記拡張記憶機構は接続されたCPUで同時発生する
入出力命令によりアクセス可能な高速ページ・アドレス
可能な電子記憶装置(RAM)である.拡張記憶機構は
,1次メモリの容量を越える且つデータ・キャッシュの
ような、仮想メモリ・ページを記憶するため.オペレー
ティング・システムで用いるように設計されている.そ
れは,例えば回復ログ及び大きなデータ・アレイを記憶
するアプリケーション・プログラムによる種々の使用も
意図している. 拡張記憶機構はその序数ページ・アドレスによりアドレ
ス指定される.それは2つの同時発生する命令PGIN
(ページ・イン)によりバイト・アドレス可能な1次メ
モリに(から)移動される.拡張記憶機構はページ・ア
ドレス可能であるから,それは4096バイト・ページ
のプールとみなすことができる. 本発明はオペレーティング・システムによる使用のため
に割振られている拡張記憶機構のサブセットの利用を自
動的且つ動的に最適化する.本明細書では拡張記憶機構
によって記述されているが,仮想メモリとデータ・キャ
ッシュの間に競合する要求があるとき1次メモリを管理
するため極めて類似の手法を用いることがある. 第3図は本発明に関連するオペレーティング・システム
構或要素を示す.ページ移送プログラム(MIG)21
0は,その使用可能拡張記憶ページのプールが、或る低
いしきい値に達したとき,拡張記憶マネジャ(XSM)
250により呼出される.MIG210のジョブは.使
用可能なメモリ・プールを、或る高いしきい値に戻すこ
とである.この動作を行うために必要とするページ数は
MIGゴールと呼ばれる.これらのページは、(1)デ
ータ・キャッシュ・マネジャ(DCM)230、 (2)MIG210[拡張記憶機構から記憶階層中のよ
り低速のメモリ(一般に直接アクセス記憶装置(DAS
D))に仮想メモリ・ページを移送することができる]
、又は(3)DCM230及びMIG210 [どちら
もMIGゴールに寄与することができるコのいずれかに
より解放することができる.アービタ(ARB)220
はこれらの3つの選択肢のうちのどれがMIGゴールを
瀾足させるのに適切かを判定するために導入された新し
い構戊要素である.更に、ARI3 2 2 0はDC
M 2 3 0によって用いることができる拡張記憶機
構の容量を増すべきかどうかを周期的に判定する.この
容量はデータ・キャッシュ・シーリング (ceili
ng)と呼ばれる. 第3図はARB 2 2 0がそのタスクを遂行するた
めに他のオペレーテイング・システム構成要素とどのよ
うに相関づけられるかを示す.システム・パフォーマン
ス状態をサンプリングし且つこの状態に基づいてデータ
・キャッシュ・シーリングを増すべきかどうかを判定す
るため、ARB 2 20が周期的に(即ち、タイマ・
プロセスによって)始動される.これは200に示され
る.もしデータ・キャッシュが222での決定に従って
増加されることになっているなら,この変更を231及
び233で行うためARB 2 2 0はDCM230
を呼出す.214でMIG210が呼込まれているとき
にもARB 2 2 0は呼出され、MIGゴールのど
の部分が、もしあれば、DCM2 3 0により満たさ
れるかを判定する.そして、もし必要なら、ARB22
0はロジック・ブロック224を介してDC:M230
を呼出し,ロジック・ブロック232及び234で指定
された数の拡張記憶ページを解放する.これは一般にペ
ージのLRUセットを解放することにより行われるであ
ろう.そして、240で,該ページは使用可能プールに
入れられる. 第4A図及び第4B図はARB 2 2 0が周期的に
始動されるときARB220により用いられるロジック
について更に詳細に図示する.現にリソース待ちのシス
テムにもしタスクがないなら(ロジック・ブロック30
0).制御はロジック・ブロック307に渡され、アー
ビタによる判定を行うべき時刻であるかどうかを判定す
る.さもなければ、すべての待ちタスクが検査される(
ロジック・ブロック301〜306).ステップ301
で、次のタスクを検査し、続いて,ステップ302で、
該タスクがキャッシュ適格■/○待ちかどうかを判定す
る.もしそうなら,次のステップ303で,I/Oカウ
ンタにlが加えられ,プログラム実行はステップ306
に移る.ステップ302で、もしタスクがキャッシュ適
格■/○待ちではないと判定されるなら、ロジック・ブ
ロック304で、該タスクが仮想ページ・フォールト
(fault)待ちであるかどうかが判定される.もし
フォールト待ちではないなら.制御は直ちに306に移
る.もしフォールト待ちなら,ロジック・ブロック30
5で,ページ待ちカウンタに1を加えてから306に移
る.ロジック・ブロック306では、もう1つの待ちタ
スクがあるかどうかが判定される.もしあれば,制御は
ロジック・ブロック301に戻り,さもなければ.ステ
ップ307で実行が継続する. 待ち状態のサンプリングが終了した後、制御はロジック
・ブロック307に渡され、ARB判定を行うべきかど
うかを判定する. ARB判定間隔はnサンプリング間隔から或る.nはA
RBチューニング(tuning) ”パラ7メータ
である.もしnサンプリング間隔がまだ生じていないな
ら,ARBはオペレーティング・システムに戻る.さも
なければ、それはARB判定の時刻であるので,処理は
ロジック・ブロック308で継続する.308で、AR
B判定間隔の平均サンプル待ちの値が計算される.これ
らの間隔は:(l)(平均キャッシュ適格I/O待ち)
=(この状態の間隔サンプル)/n、及び (2)(平均ページ・フォールト待ち)=(この状態の
間隔サンプル)/nである. 次に,これらの平均の最後のkの移動平均が計算される
(ロジック・ブロック309).kは潜在データ・キャ
ッシュ・サイズ振動周波数と突然の変化に対する感知性
とをトレードオフするARBチューニング・パラメータ
である.kの小さい値(例えば,1)は状態サンプルに
おける短期変動に対するARBの感度を高くする.kの
大きさが増すにつれて,短期変動に対するARBの感度
は低くなるが,拡張記憶機構のかなりのシフト要求に対
しても応答速度が低下することがある. ロジック・ブロック310で、(この間隔の平均キャッ
シュ適格I/O待ち)−(前のARB判定間隔の平均キ
ャッシュ適格I/O待ち)が計算される.これはキャッ
シュ適格■/○待ちの傾向を示す符号付き実数を生ずる
.これはデルタI/O待ちと呼ばれる. 次に,ロジック・ブロック3l1(第4B図)で,(平
均キャッシュ適格I/O待ち移動平均)−(平均ページ
・フォールト待ちの移動平均)がチューニング・パラメ
ータεと比較される.εはサンプル値に有意の相違がな
いときにA R B 判定を避けるように選択された小
さい実数である.この値はアルゴリズムに合わせて変更
することができる. もし前記結果がεを越えず、キャッシュ適格I/O待ち
がページ・フォールト待ちよりも有意の差以上には大き
くないことを表わすなら、制御はロジック・ブロック3
18に移る.さもなければ5ロジック・ブロック312
に進む.312で、もしDCM230が前に許可された
全てのデータ・キャッシュ・ブロックを用いていないな
ら,制御はロジック・ブロック318に移る. もし現在のデータ・キャッシュ・サイズが許可されたシ
ーリングに等しいなら、デルタエ/○待ちの移動平均は
ーεと比較される(ロジック・ブロック313).もし
デルタI/O待ちの移動乎均がーεよりも大きくないな
ら、キャッシュ適格I/O待ちは有意に減少している.
そして制御はロジック・ブロック318に移る.もしキ
ャッシュ適格I/O待ちが有意の差以上には減少してい
ないなら,且つ最後のARB判定がデータ・キャッシュ
のサイズを小さくすることになっていたなら(ロジック
・ブロック314).データ・キャッシュのサイズを増
分するため制御はロジック・ブロック317に移る. もし最後の判定がデータ・キャッシュ・サイズを増分す
ることになっていたなら,データ・キャッシュのサイズ
を大きくすることにより継続して利益が得られることを
確認するため更に検査が行われる.最初に,データ・キ
ャッシュ・ヒット率がしきい値に対して検査される(ロ
ジック・ブロック315).もしそれがこのしきい値よ
りも高くはなく.経験的な証拠から通常はより高いヒッ
ト率が得られるべきであることを表わすなら、データ・
キャッシュのサイズを増分するため制御はロジック・ブ
ロック317に移る. もしヒット率がしきい値よりも高いなら,ロジック・ブ
ロック316で,経験的な証拠に基づいて、データ・キ
ャッシュのサイズを大きくしてもそれ以上の値は得られ
ないかも知れないしきい値が示される.これがそれに当
てはまるかどうかを判定するため,データ・キャッシュ
を増分する最後の判定以後のキャッシュ・ヒット率が、
前のキャッシュ・サイズ変更間隔のキャッシュ・ヒット
率によって割られる.もしその商が1.0+εlよりも
大きいなら,継続して利益があるので,データ・キャッ
シュのサイズを大きくするため.制御はロジック・ブロ
ック317に移る.εlはチュニング・パラメータであ
り、データ・キャッシュ・ヒット率に有意の改善が生じ
ているかどうかを表わす. ロジック・ブロック317では、gブロックと(最大許
容キャッシュ・シーリング)−(I!l在のキャッシュ
・シーリング)を比較し、小さい方の量だけデータ・キ
ャッシュの許可シーリングが増分される.g及び最大許
容キャッシュ・シーリングは共にシステムに従属してお
り、システム初期設定中に決定することができる.通常
、最大許容サイズは使用可能な拡張記憶機構のブロック
数であり,gはその最大可能サイズのかなりの部分を占
めずにキャッシュの妥当な増分を表わすブロック数であ
る.拡張記憶環境における代表的なgの値は2048で
ある. もしキャッシュ・サイズの増大がヒット率をよくしない
なら、制御はロジック・ブロック318に移る.ロジッ
ク・ブロック318で、次の間隔のためARBサンプル
・カウンタはクリアされ、制御はオペレーティング・シ
ステムに戻る.第5図はページ移送が呼込まれるときデ
ータ・キャッシュのサイズを減分するかどうかを判定す
るために用いるロジックを示す.ロジック・ブロック4
00で、(キャッシュ適格I/O待ちの移動平均)−(
ページ・フォールト待ちの移動平均)がεよりも大きい
なら、キャッシュ適格I/O待ちが優位であるので、制
御は呼出し者に渡される(即ち、ルーチンは終了する)
.もし(ページ・フォールト待ちの移動平均)−(キャ
ッシュ適格I/O待ちの移動平均)がεよりも大きいな
ら、(ロジック・ブロック401),戻される最大デー
タ・キャッシュ・ブロックはMIGゴールにセットされ
る(ロジック・ブロック403).さもなければ,2つ
の待ち状態間の相違は有意ではなく、戻される最大デー
タ・キャッシュ・ブロックは(MIGゴール)/2にセ
ットされる(ロジック・ブロック402).ロジック・
ブロック404で、データ・キャッシュは、(ロジック
・ブロック402及び403で)計算されたサイズ及び
データ・キャッシュにより使用中の現在のブロック数の
うちの小さい方の値だけ減分される.そして制御は呼出
し者に戻る. E.発明の効果 本発明によれば、データ・キャッシュのサイズを動的に
変更し、調整することが可能になる.
で使用される動的キャッシュに関する.B.従来技術及
びその問題点 データ・キャッシュは技術的に広く知られ、多種類のコ
ンピュータで動作を向上させるために用いられている.
本発明は主として一般にディスクとして知られている直
接アクセス記憶装置(DASD)とのI/O動作を高め
るのに役立つキャッシュについて記述する. このようなキャッシュは主記憶装置の一部,即ちディス
クに常駐するデータ・ファイルの頻用される部分を包含
するバッファとして作動するメモリを用いる.主記憶装
置(一般に固体RAM)のアクセスは通常はディスク(
機械的な装置)のアクセスよりもかなり速い.プロセッ
サが必要とすると見込まれるデータを実際にプロセッサ
が必要とする以前にメモリに持込むことにより、種々の
ファイルI/Oの実行を大幅に向上させることができる
, データ・キャッシュは,オペレーティング・システムと
ディスクの間にバッファのセットを挿入することにより
,これを行うことができる.データ・キャッシュ・プロ
グラムはこのバッファのセットを維持し.ディスクにデ
ータが要求されたときもしバッファ中に該データがあれ
ばディスクからではなくバッファの1つから該要求が濶
たされるようにこれらのバッファを管理する.その結果
,かなり高速なディスク・アクセスが得られる.ディス
クに対する要求が出され且つデータがバッファのlつに
ないとき該要求がオペレーティング・システムに戻され
る前に該データが(少なくとも)1つのバッファに読込
まれるようにバッファは維持される.これはアクセス中
の新しいデータをキャッシュが取得することを可能にす
る.キャッシュは参照頻度が低い”古い”データを高い
参照頻度が見込まれる”新しい”データと置き換えるこ
とができるようにもバッファを維持しなければならない
.キャッシュは全てのバッファのリスト即ちディレクト
リを維持することによりこれを行う.該リストは使用頻
度の高いバッファがリストの一方の端に近く、使用頻度
の低いバッファが他方の端に近いように維持される.も
しキャッシュが(新しいデータの)バッファを必要とす
るなら、該キャッシュは使用頻度の低いパッファを有す
るリストの端から1つのバッファを取得する.これはL
R U (Least Recently Use
d)リストと呼ばれる.データをキャッシュに取込む他
の方法も用いられることがあるが,LRUアルゴリズム
が最も広く用いられている. 従来技術では,プロセッサ・メモリを利用するデータ・
キャッシュはサイズが一定しているので記憶リソースに
対する競合する要求には適応しない.また、それらはメ
イン・メモリ、又はよくても仮想メモリだけを利用する
. 従って,本発明の目的はサイズの一定していないデータ
・キャッシュを提供することである.本発明のもう1つ
の目的は,システム・スループットを最適化するように
,プロセッサ記憶機構に対する競合する要求に応じてそ
のサイズを動的に適応させるデータ・キャッシュを提供
することである. 更に,本発明のもう1つの目的は他のオペレーティング
・システム構或要素と協同して実記憶又は拡張記憶機構
のどちらか又は両者を利用するデータ・キャッシュを提
供することである.C.問題点を解決するための手段 本発明の良好な実施例に従って.コンピュータ・オペレ
ーティング・システムにデータ・キャッシュが提供され
る.データ・キャッシュはプロセッサ記憶機構に対する
競合する要求に応じてそのサイズを動的に適応させ、且
つ該記憶機構を他のオペレーティング・システム構戒要
素と協同して利用する.メモリに対する競合する要求に
基づいてキャッシュの適切なサイズを決定するのに7ー
ビタ(arbiter)が用いられる.アービタの動作
は周期的に開始され,ユーザーの待ち状態をサンプリン
グする.そしてアービタは所定のパラメータによりキャ
ッシュのサイズを増大したり減少したリする決定を行う
. D.実施例 現在の複数ユーザー・コンピュータ・システムでは,ス
トアスルー(store−through) ・データ
・キャッシュはオペレーティング・システムエ/○チャ
ネル・プログラムを介する読取りで参照される.第2レ
ベル割込みハンドラ(SLIH)では,読取りミス及び
書込みはI/Oチャネル・プログラムを介してキャッシ
ュに挿入される. IBM VMオペレーティング・シ
ステムでは.これは.CMSデータ・キャッシュをサポ
ートする診断I/Oハンドラ及びその関連S L I
Hで行われるであろう.第1図はCMS仮想計算機の性
能を高めるVM/SPにおけるデータ・キャッシュの配
置を示す.他のバージョンのVM(例えば、VM/XA
)の細部は異なるが、基本的な構造は似ている.第1図
で.CMS8によりカウント・キー・データ(CKD)
及び固定ブロック・アーキテクチャ(FBA)DASD
に渡される読取りチャネル・プログラムはキャッシュを
質問するために用いられる.DMKDGDIO及びDM
KG I 0 1 2は診断命令を渡されたCMS
I/OをサービスするVM/SPモジュールである.新
しいモジュール.DMKDGJ 14はチャネル・プロ
グラムを解釈し、キャッシュ・マネジャ、DMKDGC
16のパラメータ・リストを作成する.もし、全てのブ
ロックがキャッシュ内にあれば、診断は同時に行われ、
全てのブロックがユーザーのバツファにコピーされる.
もしキャッシュ・ミスがあれば.通常の非同期処理が行
われる.I/Oが終了した後、新しいブロックが更新さ
れる、即ちキャッシュに挿入される.これはそれぞれの
CKD及びFBA第2レベル割込みハンドラ(SLIH
)、DMKDGF18及びDMKGIO20、新しいモ
ジュールとのインタフェース、DMKDGR22 −
DMKDGC1 6のパラメータ・リストを作處する−
を設けることにより威し遂げられる.次に,第2図以下
により本発明について説明する.システム初期設定中に
、キャッシュが実記憶又は拡張記憶機構を用いるかどう
か,キャッシュが取?1}を許可される最大のサイズ、
及び最大サイズの部分g,即ちページ数−このページ数
だけ判定点でキャッシュが増大されたり減少されたりす
る一について判定が行われる.値gは最大許容キャッシ
ュ・サイズの妥当な割合となるように、しかし,仮想メ
モリの要求とキャッシュ・ページの間の均衡を達成する
のに過小な割合とならないように選択されなければなら
ない.gの値は最大許容サイズの5%〜10%の範囲内
にある場合にうまく働くことがわかっている. システム初期設定直後は,キャッシュは空である.本発
明は従来技術とは違ってアービタを用い、メモリ・リソ
ースに対する競合する要求に基づいてキャッシュの適切
なサイズを決定する.アービタが用いる特定のアルゴリ
ズムは,それを用いるオペレーティング・システムによ
り異なることがあるが,本明細書ではIBM VMオペ
レーティング・システムに関して記述する.VMでは、
アービタの動作は周期的に開始され,ユーザーの待ち状
態をサンプリングする.アービタは特に下記を決定する
: (1)キャッシュ適格(eligible) I /
O待ち状態のユーザー,即ちキャッシュをミスした読取
りの数(第2A図ステップ100). (2)メモリ待ちしているユーザーの数(ステップ10
2).VMでは.これは非スプール・ページ待ちであり
,メイン・メモリ・キャッシュの場合は,適格リスト占
有である. (3)キャッシュ・ヒットの数(ステップ1 04).
アービタは周期的に走行しnサイクル毎に決定を行う.
サイクル間隔及び値nは、変化するロードに対し妥当な
感知性を可能にするに足る短い間隔内で統計的に有意の
サンプル数が得られるように選択される. サンプル値に実質的な相違がない時の決定を避けるため
,アービタは値εを用いて不必要なキャッシュ・サイズ
の振動を最小にする.εの値はリソース(例えば、工/
○又は仮想メモリ)待ちの平均ユーザー数及びその結果
生ずる計算機サイズの関数である.この値はシステム初
期設定時にセクトしたり.又はシステムが走行中に動的
に調整したりすることができる.例えば,もし任意の時
点で平均して例えば20人の待ちユーザーがいるなら,
サンプル値の相違1は意味がないとみなすことができる
.他方、待ちユーザーが例えば4人しかいない小さなシ
ステム(又はロードが小さい大きなシステム)では、l
の相違は有意である.各のnサイクル(ステップ106
)の後に,アービタはキャッシュのサイズを大きくし又
は小さくする決定を下記のように行う: もし,最後のnサイクルで、(メモリ待ちのユーザーの
平均数)−(キャッシュ適格I/O待ちのユーザーの平
均数)がεよりも大きいなら(ステップ108).且つ
傾向がメモリ待ちを少なくする方に向っていないなら(
ステップ110)、更に,もしキャッシュが空ではない
なら(ステップ112).キャッシュはgページだけ小
さくされる(ステップ114).キャッシュの減少は同
時に行われる.即ち、gページは.振動を最小にするた
めεが選択されているLRUスタックの底部から直ちに
戻される.傾向検査は前のキャッシュ減少から起こり得
る遅延作用、即ち過渡現象の存在を考慮する.しかしな
がら、もし傾向がメモリ待ちを少なくする方に向ってい
るなら(ステップ110).又はキャッシュが空である
なら(ステップ112).このルーチンは終了する.他
方.最後のnサイクルで,(キャッシュ適格I/O待ち
状態のユーザーの平均数)一(メモリ待ちユーザーの平
均数)がもしεよりも大きいなら(ステップ109).
且つ傾向がキャッシュ適格I/O待ちを少なくする方に
向っていないなら(第2B図ステップ116).更にキ
ャッシュがその最大サイズではないなら (ステップ1
18):(1)もし最後のキャッシュ・サイズの変化が
減少方向であったなら(ステップ120).又はキャッ
シュが空なら(ステップ122).キャッシュはgペー
ジだけ増加される(ステップ124).該増加は実際に
は該キャッシュの現に許可されたサイズである.許可さ
れたサイズは現在のサイズを越えるが、キャッシュ・マ
ネジャはそのL, R Uスタックの底部を用いる代り
に.例えば,適切なオペレーテイング・システムのメモ
リ管理サービスからのページを要求する. (2)さもなければ(もし最後のキャッシュ・サイズの
変化が増加方向であったなら),キャッシュが最後に増
加されてからの単位時間当りの平均キャッシュ・ヒット
が.前の増加期間の同じ平均の或るしきい値%をもし越
えるなら(ステップ126).キャッシュはgぺ一ジだ
け増加される(ステップ128).この検査はシステム
がキャッシュから継続して利益を得ていることを確認す
るために行われる.もし平均キャッシュ・ヒットが該し
きい値よりも大きくないなら,このルーチンは終了する
. ステップ109で,(キャッシュ適格I/O待ちのユー
ザーの平均数)−(仮想メモリ待ちのユーザーの平均数
)がもしεよりも大きくないなら、又は、ステップ11
6で、もし傾向がキャッシュ適格I/O待ちを少なくす
る方に向っているなら.このルーチンは終了する. 更に、オペレーティング・システムのメモリ・リソース
・マネジャは任意の量のキャッシュ・ページを戻すこと
を,もしそれが過渡的な要求により必要なら,要求する
ことができる. 次に,IBM拡張記憶機構での本発明による調停機能を
有する動的データ・キャッシュの実現について記述する
.前記拡張記憶機構は接続されたCPUで同時発生する
入出力命令によりアクセス可能な高速ページ・アドレス
可能な電子記憶装置(RAM)である.拡張記憶機構は
,1次メモリの容量を越える且つデータ・キャッシュの
ような、仮想メモリ・ページを記憶するため.オペレー
ティング・システムで用いるように設計されている.そ
れは,例えば回復ログ及び大きなデータ・アレイを記憶
するアプリケーション・プログラムによる種々の使用も
意図している. 拡張記憶機構はその序数ページ・アドレスによりアドレ
ス指定される.それは2つの同時発生する命令PGIN
(ページ・イン)によりバイト・アドレス可能な1次メ
モリに(から)移動される.拡張記憶機構はページ・ア
ドレス可能であるから,それは4096バイト・ページ
のプールとみなすことができる. 本発明はオペレーティング・システムによる使用のため
に割振られている拡張記憶機構のサブセットの利用を自
動的且つ動的に最適化する.本明細書では拡張記憶機構
によって記述されているが,仮想メモリとデータ・キャ
ッシュの間に競合する要求があるとき1次メモリを管理
するため極めて類似の手法を用いることがある. 第3図は本発明に関連するオペレーティング・システム
構或要素を示す.ページ移送プログラム(MIG)21
0は,その使用可能拡張記憶ページのプールが、或る低
いしきい値に達したとき,拡張記憶マネジャ(XSM)
250により呼出される.MIG210のジョブは.使
用可能なメモリ・プールを、或る高いしきい値に戻すこ
とである.この動作を行うために必要とするページ数は
MIGゴールと呼ばれる.これらのページは、(1)デ
ータ・キャッシュ・マネジャ(DCM)230、 (2)MIG210[拡張記憶機構から記憶階層中のよ
り低速のメモリ(一般に直接アクセス記憶装置(DAS
D))に仮想メモリ・ページを移送することができる]
、又は(3)DCM230及びMIG210 [どちら
もMIGゴールに寄与することができるコのいずれかに
より解放することができる.アービタ(ARB)220
はこれらの3つの選択肢のうちのどれがMIGゴールを
瀾足させるのに適切かを判定するために導入された新し
い構戊要素である.更に、ARI3 2 2 0はDC
M 2 3 0によって用いることができる拡張記憶機
構の容量を増すべきかどうかを周期的に判定する.この
容量はデータ・キャッシュ・シーリング (ceili
ng)と呼ばれる. 第3図はARB 2 2 0がそのタスクを遂行するた
めに他のオペレーテイング・システム構成要素とどのよ
うに相関づけられるかを示す.システム・パフォーマン
ス状態をサンプリングし且つこの状態に基づいてデータ
・キャッシュ・シーリングを増すべきかどうかを判定す
るため、ARB 2 20が周期的に(即ち、タイマ・
プロセスによって)始動される.これは200に示され
る.もしデータ・キャッシュが222での決定に従って
増加されることになっているなら,この変更を231及
び233で行うためARB 2 2 0はDCM230
を呼出す.214でMIG210が呼込まれているとき
にもARB 2 2 0は呼出され、MIGゴールのど
の部分が、もしあれば、DCM2 3 0により満たさ
れるかを判定する.そして、もし必要なら、ARB22
0はロジック・ブロック224を介してDC:M230
を呼出し,ロジック・ブロック232及び234で指定
された数の拡張記憶ページを解放する.これは一般にペ
ージのLRUセットを解放することにより行われるであ
ろう.そして、240で,該ページは使用可能プールに
入れられる. 第4A図及び第4B図はARB 2 2 0が周期的に
始動されるときARB220により用いられるロジック
について更に詳細に図示する.現にリソース待ちのシス
テムにもしタスクがないなら(ロジック・ブロック30
0).制御はロジック・ブロック307に渡され、アー
ビタによる判定を行うべき時刻であるかどうかを判定す
る.さもなければ、すべての待ちタスクが検査される(
ロジック・ブロック301〜306).ステップ301
で、次のタスクを検査し、続いて,ステップ302で、
該タスクがキャッシュ適格■/○待ちかどうかを判定す
る.もしそうなら,次のステップ303で,I/Oカウ
ンタにlが加えられ,プログラム実行はステップ306
に移る.ステップ302で、もしタスクがキャッシュ適
格■/○待ちではないと判定されるなら、ロジック・ブ
ロック304で、該タスクが仮想ページ・フォールト
(fault)待ちであるかどうかが判定される.もし
フォールト待ちではないなら.制御は直ちに306に移
る.もしフォールト待ちなら,ロジック・ブロック30
5で,ページ待ちカウンタに1を加えてから306に移
る.ロジック・ブロック306では、もう1つの待ちタ
スクがあるかどうかが判定される.もしあれば,制御は
ロジック・ブロック301に戻り,さもなければ.ステ
ップ307で実行が継続する. 待ち状態のサンプリングが終了した後、制御はロジック
・ブロック307に渡され、ARB判定を行うべきかど
うかを判定する. ARB判定間隔はnサンプリング間隔から或る.nはA
RBチューニング(tuning) ”パラ7メータ
である.もしnサンプリング間隔がまだ生じていないな
ら,ARBはオペレーティング・システムに戻る.さも
なければ、それはARB判定の時刻であるので,処理は
ロジック・ブロック308で継続する.308で、AR
B判定間隔の平均サンプル待ちの値が計算される.これ
らの間隔は:(l)(平均キャッシュ適格I/O待ち)
=(この状態の間隔サンプル)/n、及び (2)(平均ページ・フォールト待ち)=(この状態の
間隔サンプル)/nである. 次に,これらの平均の最後のkの移動平均が計算される
(ロジック・ブロック309).kは潜在データ・キャ
ッシュ・サイズ振動周波数と突然の変化に対する感知性
とをトレードオフするARBチューニング・パラメータ
である.kの小さい値(例えば,1)は状態サンプルに
おける短期変動に対するARBの感度を高くする.kの
大きさが増すにつれて,短期変動に対するARBの感度
は低くなるが,拡張記憶機構のかなりのシフト要求に対
しても応答速度が低下することがある. ロジック・ブロック310で、(この間隔の平均キャッ
シュ適格I/O待ち)−(前のARB判定間隔の平均キ
ャッシュ適格I/O待ち)が計算される.これはキャッ
シュ適格■/○待ちの傾向を示す符号付き実数を生ずる
.これはデルタI/O待ちと呼ばれる. 次に,ロジック・ブロック3l1(第4B図)で,(平
均キャッシュ適格I/O待ち移動平均)−(平均ページ
・フォールト待ちの移動平均)がチューニング・パラメ
ータεと比較される.εはサンプル値に有意の相違がな
いときにA R B 判定を避けるように選択された小
さい実数である.この値はアルゴリズムに合わせて変更
することができる. もし前記結果がεを越えず、キャッシュ適格I/O待ち
がページ・フォールト待ちよりも有意の差以上には大き
くないことを表わすなら、制御はロジック・ブロック3
18に移る.さもなければ5ロジック・ブロック312
に進む.312で、もしDCM230が前に許可された
全てのデータ・キャッシュ・ブロックを用いていないな
ら,制御はロジック・ブロック318に移る. もし現在のデータ・キャッシュ・サイズが許可されたシ
ーリングに等しいなら、デルタエ/○待ちの移動平均は
ーεと比較される(ロジック・ブロック313).もし
デルタI/O待ちの移動乎均がーεよりも大きくないな
ら、キャッシュ適格I/O待ちは有意に減少している.
そして制御はロジック・ブロック318に移る.もしキ
ャッシュ適格I/O待ちが有意の差以上には減少してい
ないなら,且つ最後のARB判定がデータ・キャッシュ
のサイズを小さくすることになっていたなら(ロジック
・ブロック314).データ・キャッシュのサイズを増
分するため制御はロジック・ブロック317に移る. もし最後の判定がデータ・キャッシュ・サイズを増分す
ることになっていたなら,データ・キャッシュのサイズ
を大きくすることにより継続して利益が得られることを
確認するため更に検査が行われる.最初に,データ・キ
ャッシュ・ヒット率がしきい値に対して検査される(ロ
ジック・ブロック315).もしそれがこのしきい値よ
りも高くはなく.経験的な証拠から通常はより高いヒッ
ト率が得られるべきであることを表わすなら、データ・
キャッシュのサイズを増分するため制御はロジック・ブ
ロック317に移る. もしヒット率がしきい値よりも高いなら,ロジック・ブ
ロック316で,経験的な証拠に基づいて、データ・キ
ャッシュのサイズを大きくしてもそれ以上の値は得られ
ないかも知れないしきい値が示される.これがそれに当
てはまるかどうかを判定するため,データ・キャッシュ
を増分する最後の判定以後のキャッシュ・ヒット率が、
前のキャッシュ・サイズ変更間隔のキャッシュ・ヒット
率によって割られる.もしその商が1.0+εlよりも
大きいなら,継続して利益があるので,データ・キャッ
シュのサイズを大きくするため.制御はロジック・ブロ
ック317に移る.εlはチュニング・パラメータであ
り、データ・キャッシュ・ヒット率に有意の改善が生じ
ているかどうかを表わす. ロジック・ブロック317では、gブロックと(最大許
容キャッシュ・シーリング)−(I!l在のキャッシュ
・シーリング)を比較し、小さい方の量だけデータ・キ
ャッシュの許可シーリングが増分される.g及び最大許
容キャッシュ・シーリングは共にシステムに従属してお
り、システム初期設定中に決定することができる.通常
、最大許容サイズは使用可能な拡張記憶機構のブロック
数であり,gはその最大可能サイズのかなりの部分を占
めずにキャッシュの妥当な増分を表わすブロック数であ
る.拡張記憶環境における代表的なgの値は2048で
ある. もしキャッシュ・サイズの増大がヒット率をよくしない
なら、制御はロジック・ブロック318に移る.ロジッ
ク・ブロック318で、次の間隔のためARBサンプル
・カウンタはクリアされ、制御はオペレーティング・シ
ステムに戻る.第5図はページ移送が呼込まれるときデ
ータ・キャッシュのサイズを減分するかどうかを判定す
るために用いるロジックを示す.ロジック・ブロック4
00で、(キャッシュ適格I/O待ちの移動平均)−(
ページ・フォールト待ちの移動平均)がεよりも大きい
なら、キャッシュ適格I/O待ちが優位であるので、制
御は呼出し者に渡される(即ち、ルーチンは終了する)
.もし(ページ・フォールト待ちの移動平均)−(キャ
ッシュ適格I/O待ちの移動平均)がεよりも大きいな
ら、(ロジック・ブロック401),戻される最大デー
タ・キャッシュ・ブロックはMIGゴールにセットされ
る(ロジック・ブロック403).さもなければ,2つ
の待ち状態間の相違は有意ではなく、戻される最大デー
タ・キャッシュ・ブロックは(MIGゴール)/2にセ
ットされる(ロジック・ブロック402).ロジック・
ブロック404で、データ・キャッシュは、(ロジック
・ブロック402及び403で)計算されたサイズ及び
データ・キャッシュにより使用中の現在のブロック数の
うちの小さい方の値だけ減分される.そして制御は呼出
し者に戻る. E.発明の効果 本発明によれば、データ・キャッシュのサイズを動的に
変更し、調整することが可能になる.
第1図はコンピュータ・オペレーティング・システムの
他の要素に対するデータ・キャッシュの配置及び関係を
示す図である. 第2図は第2A図及び第2B図の配置関係を示す図であ
る. 第2A図及び第2B図は本発明の流れ図である.第3図
はアービタ構成要素と他のオペレーテイング・システム
・ソフトウェア構成要素の関係を示す図である. 第4図は第4A図及び第4B図の配置関係を示す図であ
る. 第4A図、第4B図及び第5図はアービタ構或要素の動
作を示す詳細な流れ図である.8・・・・CMS、10
・・・・DMKDGD,12・・・DMKGIO、14
−・−DMKDGJ.16・・・・DMKDGC,18
・・・・DMKDGF.20・・・・DMKGIO、2
2・・・・DMKDGR,210・・・・MIG、22
0・・・・ARB、230・・・・DCM、250・・
・・XSM. 第1図 第4図 第5図 出口
他の要素に対するデータ・キャッシュの配置及び関係を
示す図である. 第2図は第2A図及び第2B図の配置関係を示す図であ
る. 第2A図及び第2B図は本発明の流れ図である.第3図
はアービタ構成要素と他のオペレーテイング・システム
・ソフトウェア構成要素の関係を示す図である. 第4図は第4A図及び第4B図の配置関係を示す図であ
る. 第4A図、第4B図及び第5図はアービタ構或要素の動
作を示す詳細な流れ図である.8・・・・CMS、10
・・・・DMKDGD,12・・・DMKGIO、14
−・−DMKDGJ.16・・・・DMKDGC,18
・・・・DMKDGF.20・・・・DMKGIO、2
2・・・・DMKDGR,210・・・・MIG、22
0・・・・ARB、230・・・・DCM、250・・
・・XSM. 第1図 第4図 第5図 出口
Claims (1)
- 【特許請求の範囲】 複数のソフトウェア・コンポーネントを持ち、有限のメ
モリ・リソースを持つコンピュータで実行されるアプリ
ケーション・プログラムをその下で走らせるコンピュー
タ・オペレーティング・システムにおけるデータ・キャ
ッシュのサイズ調整方法であって、 上記ソフトウェア・コンポーネント及び上記アプリケー
ション・プログラムによる上記メモリ・リソースに対す
る要求を判断し、 所定のパラメータに応じて上記データ・キャッシュのサ
イズを変更する ことを特徴とする方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US244976 | 1988-09-15 | ||
US07/244,976 US4947319A (en) | 1988-09-15 | 1988-09-15 | Arbitral dynamic cache using processor storage |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0315957A true JPH0315957A (ja) | 1991-01-24 |
JPH0690685B2 JPH0690685B2 (ja) | 1994-11-14 |
Family
ID=22924846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1184883A Expired - Lifetime JPH0690685B2 (ja) | 1988-09-15 | 1989-07-19 | コンピュータ・システム |
Country Status (3)
Country | Link |
---|---|
US (1) | US4947319A (ja) |
EP (1) | EP0359923A3 (ja) |
JP (1) | JPH0690685B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06231044A (ja) * | 1992-12-22 | 1994-08-19 | Internatl Business Mach Corp <Ibm> | キャッシュ・メモリを有するデータ処理システム |
US7120738B2 (en) | 1993-06-30 | 2006-10-10 | Hitachi, Ltd. | Storage system having data format conversion function |
US7558937B2 (en) | 2004-10-04 | 2009-07-07 | Fujitsu Limited | Disk array device memory having areas dynamically adjustable in size |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5394531A (en) * | 1989-04-03 | 1995-02-28 | International Business Machines Corporation | Dynamic storage allocation system for a prioritized cache |
GB9008145D0 (en) * | 1989-05-31 | 1990-06-06 | Ibm | Microcomputer system employing address offset mechanism to increase the supported cache memory capacity |
WO1991001525A1 (en) * | 1989-07-14 | 1991-02-07 | Touch Technologies, Inc. | Variable capacity cache memory |
US5226141A (en) * | 1989-07-14 | 1993-07-06 | Touch Technologies, Inc. | Variable capacity cache memory |
US5247653A (en) * | 1990-08-17 | 1993-09-21 | Seagate Technology, Inc. | Adaptive segment control and method for simulating a multi-segment cache |
US5146576A (en) * | 1990-08-31 | 1992-09-08 | International Business Machines Corporation | Managing high speed slow access channel to slow speed cyclic system data transfer |
JPH0799508B2 (ja) * | 1990-10-15 | 1995-10-25 | インターナショナル・ビジネス・マシーンズ・コーポレイション | キャッシュ記憶機構を動的に区分する方法およびキャッシュ記憶機構システム |
US5313631A (en) * | 1991-05-21 | 1994-05-17 | Hewlett-Packard Company | Dual threshold system for immediate or delayed scheduled migration of computer data files |
US5630097A (en) * | 1991-06-17 | 1997-05-13 | Digital Equipment Corporation | Enhanced cache operation with remapping of pages for optimizing data relocation from addresses causing cache misses |
US5327540A (en) * | 1991-09-18 | 1994-07-05 | Ncr Corporation | Method and apparatus for decoding bus master arbitration levels to optimize memory transfers |
US5381539A (en) * | 1992-06-04 | 1995-01-10 | Emc Corporation | System and method for dynamically controlling cache management |
US5410653A (en) * | 1992-06-16 | 1995-04-25 | International Business Machines Corporation | Asynchronous read-ahead disk caching using multiple disk I/O processes and dynamically variable prefetch length |
GB2271202B (en) * | 1992-10-01 | 1995-12-13 | Digital Equipment Int | Dynamic non-coherent cache memory resizing mechanism |
US5459850A (en) * | 1993-02-19 | 1995-10-17 | Conner Peripherals, Inc. | Flash solid state drive that emulates a disk drive and stores variable length and fixed lenth data blocks |
US5483644A (en) * | 1993-04-15 | 1996-01-09 | Vlsi Technology, Inc. | Method for increasing cacheable address space in a second level cache |
US5809525A (en) * | 1993-09-17 | 1998-09-15 | International Business Machines Corporation | Multi-level computer cache system providing plural cache controllers associated with memory address ranges and having cache directories |
US5584007A (en) * | 1994-02-09 | 1996-12-10 | Ballard Synergy Corporation | Apparatus and method for discriminating among data to be stored in cache |
US5588129A (en) * | 1994-02-09 | 1996-12-24 | Ballard; Clinton L. | Cache for optical storage device and method for implementing same |
US5539895A (en) * | 1994-05-12 | 1996-07-23 | International Business Machines Corporation | Hierarchical computer cache system |
US5675797A (en) * | 1994-05-24 | 1997-10-07 | International Business Machines Corporation | Goal-oriented resource allocation manager and performance index technique for servers |
US5678018A (en) * | 1994-12-16 | 1997-10-14 | International Business Machines Corporation | Cache address modification control |
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 |
US5721874A (en) * | 1995-06-16 | 1998-02-24 | International Business Machines Corporation | Configurable cache with variable, dynamically addressable line sizes |
US5787466A (en) * | 1996-05-01 | 1998-07-28 | Sun Microsystems, Inc. | Multi-tier cache and method for implementing such a system |
US5893920A (en) * | 1996-09-30 | 1999-04-13 | International Business Machines Corporation | System and method for cache management in mobile user file systems |
US6065100A (en) * | 1996-11-12 | 2000-05-16 | Micro-Design International | Caching apparatus and method for enhancing retrieval of data from an optical storage device |
US5937401A (en) * | 1996-11-27 | 1999-08-10 | Sybase, Inc. | Database system with improved methods for filtering duplicates from a tuple stream |
US5991847A (en) * | 1997-06-06 | 1999-11-23 | Acceleration Software International Corporation | Data pattern caching for speeding up write operations |
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 |
US6467028B1 (en) * | 1999-09-07 | 2002-10-15 | International Business Machines Corporation | Modulated cache for audio on the web |
US6532520B1 (en) | 1999-09-10 | 2003-03-11 | International Business Machines Corporation | Method and apparatus for allocating data and instructions within a shared cache |
JP2001109661A (ja) | 1999-10-14 | 2001-04-20 | Hitachi Ltd | キャッシュメモリの割当方法及びオペレーティングシステム及びそのオペレーティングシステムを有するコンピュータシステム |
US6964042B2 (en) * | 2002-12-17 | 2005-11-08 | Bea Systems, Inc. | System and method for iterative code optimization using adaptive size metrics |
JP4313068B2 (ja) * | 2003-03-28 | 2009-08-12 | 株式会社日立製作所 | 記憶装置のキャッシュ管理方法 |
US7107400B2 (en) | 2003-03-31 | 2006-09-12 | International Business Machines Corporation | System, apparatus, and process for evaluating projected cache sizes |
US6823442B1 (en) * | 2003-05-12 | 2004-11-23 | 3Pardata, Inc. | Method of managing virtual volumes in a utility storage server system |
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 |
KR102117511B1 (ko) * | 2013-07-30 | 2020-06-02 | 삼성전자주식회사 | 프로세서 및 메모리 제어 방법 |
CN103810113B (zh) * | 2014-01-28 | 2016-07-06 | 华中科技大学 | 一种非易失存储器和动态随机存取存储器的融合内存系统 |
CN104834606A (zh) * | 2015-01-07 | 2015-08-12 | 浪潮(北京)电子信息产业有限公司 | 一种异构混融层次式内存设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63111553A (ja) * | 1986-10-29 | 1988-05-16 | Nec Corp | キヤツシユバツフア制御方式 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4068304A (en) * | 1973-01-02 | 1978-01-10 | International Business Machines Corporation | Storage hierarchy performance monitor |
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 |
US4422145A (en) * | 1981-10-26 | 1983-12-20 | International Business Machines Corporation | Thrashing reduction in demand accessing of a data base through an LRU paging buffer pool |
JPS5883377A (ja) * | 1981-11-09 | 1983-05-19 | Fuji Electric Co Ltd | バツフアメモリ制御方式 |
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 |
JPS58147879A (ja) * | 1982-02-26 | 1983-09-02 | Toshiba Corp | キヤツシユメモリ制御方式 |
EP0114944B1 (en) * | 1982-12-28 | 1989-09-27 | International Business Machines Corporation | Method and apparatus for controlling a single physical cache memory to provide multiple virtual caches |
-
1988
- 1988-09-15 US US07/244,976 patent/US4947319A/en not_active Expired - Fee Related
-
1989
- 1989-07-04 EP EP19890112162 patent/EP0359923A3/en not_active Withdrawn
- 1989-07-19 JP JP1184883A patent/JPH0690685B2/ja not_active Expired - Lifetime
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63111553A (ja) * | 1986-10-29 | 1988-05-16 | Nec Corp | キヤツシユバツフア制御方式 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06231044A (ja) * | 1992-12-22 | 1994-08-19 | Internatl Business Mach Corp <Ibm> | キャッシュ・メモリを有するデータ処理システム |
US7120738B2 (en) | 1993-06-30 | 2006-10-10 | Hitachi, Ltd. | Storage system having data format conversion function |
US7444467B2 (en) | 1993-06-30 | 2008-10-28 | Hitachi, Ltd. | Storage system having a semiconductor memory device which stores data and parity data permanently |
US7558937B2 (en) | 2004-10-04 | 2009-07-07 | Fujitsu Limited | Disk array device memory having areas dynamically adjustable in size |
Also Published As
Publication number | Publication date |
---|---|
EP0359923A3 (en) | 1991-01-09 |
EP0359923A2 (en) | 1990-03-28 |
JPH0690685B2 (ja) | 1994-11-14 |
US4947319A (en) | 1990-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0315957A (ja) | コンピュータ・システム | |
US20200363967A1 (en) | On-chip Atomic Transaction Engine | |
US7093258B1 (en) | Method and system for managing distribution of computer-executable program threads between central processing units in a multi-central processing unit computer system | |
US5517643A (en) | Method of allocating memory among a plurality of processes of a computer system | |
US6470427B1 (en) | Programmable agent and method for managing prefetch queues | |
US5559978A (en) | Method for increasing the efficiency of a virtual memory system by selective compression of RAM memory contents | |
US6356980B1 (en) | Method and system for bypassing cache levels when casting out from an upper level cache | |
KR100810017B1 (ko) | 서로 다른 스레드에 대한 비대칭 하드웨어 멀티스레딩지원을 갖는 디지털 데이터 처리 장치 | |
US6871264B2 (en) | System and method for dynamic processor core and cache partitioning on large-scale multithreaded, multiprocessor integrated circuits | |
US6018759A (en) | Thread switch tuning tool for optimal performance in a computer processor | |
EP1353267B1 (en) | Microprocessor with repeat prefetch instruction | |
US6948033B2 (en) | Control method of the cache hierarchy | |
US6003115A (en) | Method and apparatus for predictive loading of a cache | |
US7430638B2 (en) | Adaptive input / output compressed system and data cache and system using same | |
EP0747816B1 (en) | Method and system for high performance multithread operation in a data processing system | |
US6665740B1 (en) | Logical volume selection in a probability-based job scheduler | |
JP3816586B2 (ja) | 先取り命令を生成する方法とシステム | |
US6820173B1 (en) | Data prefetcher with predictor capabilities | |
US7587572B1 (en) | Method and system for managing process memory configured in resizable uncompressed and compressed regions | |
JP3739491B2 (ja) | プリフェッチ命令を用いるハーバードアーキテクチャキャッシュメモリの調和したソフトウェア制御 | |
US20050071564A1 (en) | Reduction of cache miss rates using shared private caches | |
JPS6150350B2 (ja) | ||
WO1999021088A1 (en) | An apparatus and method to guarantee forward progress in a multithreaded processor | |
US20070079070A1 (en) | Cache controller | |
US6385695B1 (en) | Method and system for maintaining allocation information on data castout from an upper level cache |