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
Application number
JP1184883A
Other languages
English (en)
Other versions
JPH0690685B2 (ja
Inventor
Gerald P Bozman
ジエラルド・パークス・ボズマン
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 JPH0315957A publication Critical patent/JPH0315957A/ja
Publication of JPH0690685B2 publication Critical patent/JPH0690685B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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/5016Allocation 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
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared 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/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
    • G06F12/0871Allocation or management of cache space
    • 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/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/311In 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.発明の効果 本発明によれば、データ・キャッシュのサイズを動的に
変更し、調整することが可能になる.
【図面の簡単な説明】
第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図 出口

Claims (1)

  1. 【特許請求の範囲】 複数のソフトウェア・コンポーネントを持ち、有限のメ
    モリ・リソースを持つコンピュータで実行されるアプリ
    ケーション・プログラムをその下で走らせるコンピュー
    タ・オペレーティング・システムにおけるデータ・キャ
    ッシュのサイズ調整方法であって、 上記ソフトウェア・コンポーネント及び上記アプリケー
    ション・プログラムによる上記メモリ・リソースに対す
    る要求を判断し、 所定のパラメータに応じて上記データ・キャッシュのサ
    イズを変更する ことを特徴とする方法。
JP1184883A 1988-09-15 1989-07-19 コンピュータ・システム Expired - Lifetime JPH0690685B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63111553A (ja) * 1986-10-29 1988-05-16 Nec Corp キヤツシユバツフア制御方式

Family Cites Families (10)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63111553A (ja) * 1986-10-29 1988-05-16 Nec Corp キヤツシユバツフア制御方式

Cited By (4)

* Cited by examiner, † Cited by third party
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