JPH0690685B2 - コンピュータ・システム - Google Patents

コンピュータ・システム

Info

Publication number
JPH0690685B2
JPH0690685B2 JP1184883A JP18488389A JPH0690685B2 JP H0690685 B2 JPH0690685 B2 JP H0690685B2 JP 1184883 A JP1184883 A JP 1184883A JP 18488389 A JP18488389 A JP 18488389A JP H0690685 B2 JPH0690685 B2 JP H0690685B2
Authority
JP
Japan
Prior art keywords
processor
cache
data cache
operating system
storage
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.)
Expired - Lifetime
Application number
JP1184883A
Other languages
English (en)
Other versions
JPH0315957A (ja
Inventor
ジエラルド・パークス・ボズマン
Original Assignee
インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
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 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン filed Critical インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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)

Description

【発明の詳細な説明】 A.産業上の利用分野 本発明は一般にコンピュータの分野、特にコンピュータ
で使用される動的キャッシュに関する。
B.従来技術及びその問題点 データ・キャッシュは技術的に広く知られ、多種類のコ
ンピュータで動作を向上させるために用いられている。
本発明は主として一般にデイスクとして知られている直
接アクセス記憶装置(DASD)とのI/O動作を高めるのに
役立つキャッシュについて記述する。
このようなキャッシュは主記憶装置の一部、即ちディス
クに常駐するデータ・ファイルの頻用される部分を包含
するバッファとして作動するメモリを用いる、主記憶装
置(一般に固体RAM)のアクセスは通常はディスク(機
械的な装置)のアクセスよりもかなり速い。プロセッサ
が必要とすると見込まれるデータを実際にプロセッサが
必要とする以前にメモリに持込むことにより、種々のフ
ァイルI/Oの実行を大幅に向上させることができる。
データ・キャッシュは、オペレーティング・システムと
ディスクの間にバッファのセットを挿入することによ
り、これを行うことができる。データ・キャッシュ・プ
ログラムはこのバッファのセットを維持し、ディスクに
データが要求されたときもしバッファ中に該データがあ
ればディスクからではなくバッファの1つから該要求が
満たされるようにこれらのバッファを管理する。その結
果、かなり高速なディスク・アクセスが得られる。
ディスクに対する要求が出され且つデータがバッファの
1つにないとき該要求がオペレーティング・システムに
戻される前に該データが(少なくとも)1つのバッファ
に読込まれるようにバッファは維持される。これはアク
セス中の新しいデータをキャッシュが取得することを可
能にする。キャッシュは参照頻度が低い“古い”データ
を高い参照頻度が見込まれる“新しい”データと置き換
えることができるようにもバッファを維持しなければな
らない。キャッシュは全てのバッファのリスト即ちディ
レクトリを維持することによりこれを行う。該リスタは
使用頻度の高いバッファがリストの一方の端に近く、使
用頻度の低いバッファが他方の端に近いように維持され
る。もしキャッシュが(新しいデータの)バッファを必
要とするなら、該キャッシュは使用頻度の低いバッファ
を有するリストの端から1つのバッファを取得する。こ
れはLRU(Least Recently Used)リストと呼ばれる。デ
ータをキャッシュに取込む他の方法も用いられることが
あるが、LRUアルゴリズムが最も広く用いられている。
従来技術では、プロセッサ・メモリを利用するデータ・
キャッシュはサイズが一定しているので記憶リソースに
対する競合する要求には適応しない。また、それらはメ
イン・メモリ、又はよくても仮想メモリだけを利用す
る。
従って、本発明の目的はサイズの一定していないデータ
・キャッシュの提供することである。
本発明のもう1つの目的は、システム・スループットを
最適化するように、プロセッサ記憶機構に対する競合す
る要求に応じてそのサイズを動的に適応させるデータ・
キャッシュを提供することである。
更に、本発明のもう1つの目的は他のオペレーティング
・システム構成要素と協同して実記憶又は拡張記憶機構
のどちらか又は両者を利用するデータ・キャッシュを提
供することである。
C.問題点を解決するための手段 本発明の良好な実施例に伴って、コンピュータ・オペレ
ーティング・システムにデータ・キャッシュが提供され
る。データ・キャッシュはプロセッサ記憶機構に対する
競合する要求に応じてそのサイズを動的に対応させ、且
つ該記憶機構を他のオペレーティング・システム構成要
素と協同して利用する。メモリに対する競合する要求に
基づいてキャッシュの適切なサイズを決定するのにアー
ビタ(arbiter)が用いられる。アービタの動作は周期
的に開始され、ユーザーの待ち状態をサンプリングす
る。そしてアービタは所定のパラメータによりキャッシ
ュのサイズを増大したり減少したりする決定を行う。
D.実施例 現在の複数ユーザー・コンピュータ・システムでは、ス
トアスルー(store-through)・データ・キャッシュは
オペレーティング・システムI/Oチャネル・プログラム
を介する読取りで参照される。第2レベル割込みハンド
ラ(SLIH)では、読取みミス及び書込みはI/Oチャネル
・プログラムを介してキャッシュに挿入される。IBM VM
オペレーティング・システムでは、これは、CMSデータ
・キャッシュをサポートする診断I/Oハンドラ及びその
関連SLIHで行われるであろう。第1図はCMS仮想計算機
の性能を高めるVM/SPにおけるデータ・キャッシュの配
置を示す。他のバージョンのVM(例えば、VM/XA)の細
部は異なるが、基本的な構造は似ている。
第1図で、CMS8によりカウント・キー・データ(CKD)
及び固定ブロック・アーキテクチャ(FBA)DASDに渡さ
れる読取りチャネル・プログラムはキャッシュを質問す
るために用いられる。DMKDGD10及びDMKGIO12は診断命令
を渡されたCMS I/OをサービスするVM/SPモジュールで
ある。新しいモジュール、DMKDGJ14はチャネル・プログ
ラムを解釈し、キャッシュ・マネジャ、DMKDGC16のパラ
メータ・リストを作成する。もし、全てのブロックがキ
ャッシュ内にあれば、診断は同時に行われ、全てのブロ
ックがユーザーのバッファにコピーされる。もしキャッ
シュ・ミスがあれば、通常の非同期処理が行われる。I/
Oが終了した後、新しいブロックが更新される、即ちキ
ャッシュに挿入される。これはそれぞれのCKD及びFBA第
2レベル割込みハンドラ(SLIH)、DMKDGF18及びDMKGIO
20、新しいモシュールとのインタフェース、DMKDGR22−
DMKDGC16のパラメータ・リストを作成する−を設けるこ
とにより成し遂げられる。
次に、第2図以下により本発明について説明する。シス
テム初期設定中に、キャッシュが実記憶又は拡張記憶機
構を用いるかどうか、キャッシュが取得を許可される最
大のサイズ、及び最大サイズの部分g、即ちページ数−
このページ数だけ判定点でキャッシュが増大されたり減
少されたりする−について判定が行われる。値gは最大
許容キャッシュ・サイズの妥当な割合となるように、し
かし、仮想メモリの要求とキャッシュ・ページの間の均
衡を達成するのに過小な割合とならないように選択され
なければならない。gの値は最大許容サイズの5%〜10
%の範囲内にある場合にうまく働くことがわかってい
る。
システム初期設定直後は、キャッシュは空である。本発
明は従来技術とは違ってアービタを用い、メモリ・リソ
ースに対する競合する要求に基づいてキャッシュの適切
なサイズを決定する。
アービタが用いる特定のアルゴリズムは、それを用いる
オペレーティング・システムにより異なることがある
が、本明細書ではIBM VMオペレーティング・システムに
関して記述する。VMでは、アービタの動作は周期的に開
始され、ユーザーの待ち状態をサンプリングする。アー
ビタは特に下記を決定する: (1)キャッシュ適格(eligible)I/O待ち状態のユー
ザー、即ちキャッシュをミスした読取りの数(第2A図ス
テップ100)。
(2)メモリ待ちしているユーザーの数(ステップ10
2)。VMでは、これは非スプール・ページ待ちであり、
メイン・メモリ・キャッシュの場合は、適格リスト占有
である。
(3)キャッシュ・ヒットの数(ステップ104)。
アービタは周期的に走行しnサイクル毎に決定を行う。
サイクル間隔及び値nは、変化するロードに対し妥当な
感知性を可能にするに足る短い間隔内で統計的に有意の
サンプル数が得られるように選択される。
サンプル値に実質的な相違がない時の決定を避けるた
め、アービタは値εを用いて不必要なキャッシュ・サイ
ズの振動を最小にする。εの値はリソース(例えば、I/
O又は仮想メモリ)待ちの平均ユーザー数及びその結果
生ずる計算機サイズの関数である。この値はシステム初
期設定時にセットしたり、又はシステムが走行中に動的
に調整したりすることができる。例えば、もし任意の時
点で平均して例えば20人の待ちユーザーがいるなら、サ
ンプル値の相違1は意味がないとみなすことができる。
他方、待ちユーザーが例えば4人しかいない小さなシス
テム(又はロードが小さい大きなシステム)では、1の
相違は有意である。
各のnサイクル(ステップ106)の後に、アービタはキ
ャッシュのサイズを大きくし又は小さくする決定を下記
のように行う: もし、最後のnサイクルで、(メモリ待ちのユーザーの
平均数)−(キャッシュ適格I/O待ちのユーザーの平均
数)がεよりも大きいなら(ステップ108)、且つ傾向
がメモリ待ちを少なくする方に向っていないなら(ステ
ップ110)、更に、もしキャッシュが空ではないなら
(ステップ112)、キャッシュはgページだけ小さくさ
れる(ステップ114)。キャッシュの減少は同時に行わ
れる。即ち、gページは、振動を最小にするためεが選
択されているLRUスタックの底部から直ちに戻される。
傾向検査は前のキャッシュ減少から起こり得る遅延作
用、即ち過渡現象の存在を考慮する。しかしながら、も
し傾向がメモリ待ちを少なくする方に向っているなら
(ステップ110)、又はキャッシュが空であるなら(ス
テップ112)、このルーチンは終了する。
他方、最後のnサイクルで、(キャッシュ適格I/O待ち
状態のユーザーの平均数)−(メモリ待ちユーザーの平
均数)がもしεよりも大きいなら(ステップ109)、且
つ傾向がキャッシュ適格I/O待ちを少なくする方に向っ
ていないなら(第2B図ステップ116)、更にキャッシュ
がその最大サイズではないなら(ステップ118): (1)もし最後のキャッシュ・サイズの変化が減少方向
であったなら(ステップ120)、又はキャッシュが空な
ら(ステップ122)、キャッシュはgページだけ増加さ
れる(ステップ124)。該増加は実際には該キャッシュ
の現に許可されたサイズである。許可されたサイズは現
在のサイズを越えるが、キャッシュ・マネジャはそのLR
Uスタックの底部を用いる代りに、例えば、適切なオペ
レーティング・システムのメモリ管理サービスからのペ
ージを要求する。
(2)さもなければ(もし最後のキャッシュ・サイズの
変化が増加方向であったなら)、キャッシュが最後に増
加されてからの単位時間当りの平均キャッシュ・ヒット
が、前の増加期間の同じ平均の或るしきい値%をもし越
えるなら(ステップ126)、キャッシュはgページだけ
増加される(ステップ128)。
この検査はシステムがキャッシュから継続して利益を得
ていることを確認するために行われる。もし平均キャッ
シュ・ヒットが該しきい値よりも大きくないなら、この
ルーチンは終了する。
ステップ109で、(キャッシュ適格I/O待ちのユーザーの
平均数)−(仮想メモリ待ちのユーザーの平均数)がも
しεよりも大きくないなら、又は、ステップ116で、も
し傾向がキャッシュ適格I/O待ちを少なくする方に向っ
ているなら、このルーチンは終了する。
更に、オペレーティング・システムのメモリ・リソース
・マネジャは任意の量のキャッシュ・ページを戻すこと
を、もしそれが過渡的な要求により必要なら、要求する
ことができる。
次に、IBM拡張記憶機構での本発明による調停機能を有
する動的データ・キャッシュの実現について記述する。
前記拡張記憶機構は接続されたCPUで同時発生する入出
力命令によりアクセス可能な高速ページ・アドレス可能
な電子記憶装置(RAM)である。拡張記憶機構は、1次
メモリの容量を越える且つデータ・キャッシュのよう
な、仮想メモリ・ページを記憶するため、オペレーティ
ング・システムで用いるように設計されている。それ
は、例えば回復ログ及び大きなデータ・アレイを記憶す
るアプリケーション・プログラムによる種々の使用も意
図している。
拡張記憶機構はその序数ページ・アドレスによりアドレ
ス指定される。それは2つの同時発生する命令PGIN(ペ
ージ・イン)によりバイト・アドレス可能な1次メモリ
に(から)移動される。拡張記憶機構はページ・アドレ
ス可能であるから、それは4096バイト・ページのプール
とみなすことができる。
本発明はオペレーティング・システムによる使用のため
に割振られている拡張記憶機構のサブセットの利用を自
動的且つ動的に最適化する。本明細書では拡張記憶機構
によって記述されているが、仮想メモリとデータ・キャ
ッシュの間に競合する要求があるとき1次メモリを管理
するため極めて類似の手法を用いることがある。
第3図は本発明に関連するオペレーティング・システム
構成要素を示す。ページ移送プログラム(MIG)210は、
その使用可能拡張記憶ページのプールが、或る低いしき
い値に達したとき、拡張記憶マネジャ(XSM)250により
呼出される。MIG210のジョブは、使用可能なメモリ・プ
ールを、或る高いしきい値に戻すことである。この動作
を行うために必要とするページ数はMIGゴールと呼ばれ
る。これらのページは、 (1)データ・キャッシュ・マネジャ(DCM)230、 (2)MIG210[拡張記憶機構から記憶階層中のより低速
のメモリ(一般に直接アクセス記憶装置(DASD))に仮
想メモリ・ページを移送することができる]、又は (3)DCM230及びMIG210[どちらもMIGゴールに寄与す
ることができる] のいずれかにより解放することができる。
アービタ(ARB)220はこれらの3つの選択肢のうちのど
れがMIGゴールを満足させるのに適切かを判定するため
に導入された新しい構成要素である。更に、ARB220はDC
M230によって用いることができる拡張記憶機構の容量を
増すべきかどうかを周期的に判定する。この容量はデー
タ・キャッシュ・シーリング(ceiling)と呼ばれる。
第3図はARB220がそのタスクを遂行するために他のオペ
レーティング・システム構成要素とどのように相関づけ
られるかを示す。システム・パフォーマンス状態をサン
プリングし且つこの状態に基づいてデータ・キャッシュ
・シーリングを増すべきかどうかを判定するため、ARB2
20が周期的に(即ち、タイマ・プロセスによって)始動
される。これは200に示される。もしデータ・キャッシ
ュが222での決定に従って増加されることになっている
なら、この変更を231及び233で行うためARB220はDCM230
を呼出す。214でMIG210が呼込まれているときにもARB22
0は呼出され、MIGゴールのどの部分が、もしあれば、DC
M230により満たされるかを判定する。そして、もし必要
なら、ARB220はロジック・ブロック224を介してDCM230
を呼出し、ロジック・ブロック232及び234で指定された
数の拡張記憶ページを解放する。これは一般にページの
LRUセットを解放することにより行われるであろう。そ
して、240で、該ページは使用可能プールに入れられ
る。
第4A図及び第4B図はARB220が周期的に始動されるときAR
B220により用いられるロジックについて更に詳細に図示
する。
現にリソース待ちのシステムにもしタスクがないなら
(ロジック・ブロック300)、制御はロジック・ブロッ
ク307に渡され、アービタによる判定を行うべき時刻で
あるかどうかを判定する。さもなければ、すべての待ち
タスクが検査される(ロジック・ブロック301〜306)。
ステップ301で、次のタスクを検査し、続いて、ステッ
プ302で、該タスクがキャッシュ適格I/O待ちかどうかを
判定する。もしそうなら、次のステップ303で、I/Oカウ
ンタに1が加えられ、プログラム実行はステップ306に
移る。ステップ302で、もしタスクがキャッシュ適格I/O
待ちではないと判定されるなら、ロジック・ブロック30
4で、該タスクが仮想ページ・フォールト(fault)待ち
であるかどうかが判定される。もしフォールト待ちでは
ないなら、制御は直ちに306に移る。もしフォールト待
ちなら、ロジック・ブロック305で、ページ待ちカウン
タに1を加えてから306に移る。ロジック・ブロック306
では、もう1つの待ちタスクがあるかどうかが判定され
る。もしあれば、制御はロジック・ブロック301に戻
り、さもなければ、ステップ307で実行が継続する。
待ち状態のサンプリングが終了した後、制御はロジック
・ブロック307に渡され、ARB判定に行うべきかどうかを
判定する。
ARB判定間隔はnサンプリング間隔から成る。nはARBチ
ューニング(tuning)・パラメータである。もしnサン
プリング間隔がまだ生じていないなら、ARBはオペレー
ティング・システムに戻る。さもなければ、それはARB
判定の時刻であるので、処理はロジック・ブロック308
で継続する。308で、ARB判定間隔の平均サンプル待ちの
値が計算される。これらの間隔は: (1)(平均キャッシュ適格I/O待ち)=(この状態の
間隔サンプル)/n、及び (2)(平均ページ・フォールト待ち)=(この状態の
間隔サンプル)/nである。
次に、これらの平均の最後のkの移動平均が計算される
(ロジック・ブロック309)。
kは潜在データ・キャッシュ・サイズ振動周波数と突然
の変化に対する感知性とをトレードオフするARPチュー
ニング・パラメータである。kの小さい値(例えば、
1)は状態サンプルにおける短期変動に対するARBの感
度を高くする。kの大きさが増すにつれて、短期変動に
対するARBの感度は低くなるが、拡張記憶機構のかなり
のシフト要求に対しても応答速度が低下することがあ
る。
ロジック・ブロック310で、(この間隔の平均キャッシ
ュ適格I/O待ち)−(前のARB判定間隔の平均キャッシュ
適格I/O待ち)が計算される。これはキャッシュ適格I/O
待ちの傾向を示す符号付き実数を生ずる。これはデルタ
I/O待ちと呼ばれる。
次に、ロジック・ブロック311(第4B図)で、(平均キ
ャッシュ適格I/O待ち移動平均)−(平均ページ・フォ
ールト待ちの移動平均)がチューニング・パラメータε
と比較される。εはサンプル値に有意の相違がないとき
にARB判定を避けるように選択された小さい実数であ
る。この値はアルゴリズムに合わせて変更することがで
きる。
もし前記結果がεを越えず、キャッシュ適格I/O待ちが
ページ・フォールト待ちよりも有意の差以上には大きく
ないことを表わすなら、制御はロジック・ブロック318
に移る。さもなければ、ロジック・ブロック312に進
む。312で、もしDCM230が前に許可された全てのデータ
・キャッシュ・ブロックを用いていないなら、制御はロ
ジック・ブロック318に移る。
もし現在のデータ・キャッシュ・サイズが許可されたシ
ーリングに等しいなら、デルタI/O待ちの移動平均は−
εと比較される(ロジック・ブロック313)。もしデル
タI/O待ちの移動平均が−εよりも大きくないなら、キ
ャッシュ適格I/O待ちは有意に減少している。そして制
御はロジック・ブロック318に移る。もしキャッシュ適
格I/O待ちが有意の差以上には減少していないなら、且
つ最後のARB判定がデータ・キャッシュのサイズを小さ
くすることになっていたなら(ロジック・ブロック31
4)、データ・キャッシュのサイズを増分するため制御
はロジック・ブロック317に移る。
もし最後の判定がデータ・キャッシュ・サイズを増分す
ることになっていたなら、データ・キャッシュのサイズ
を大きくすることにより継続して利益が得られることを
確認するため更に検査が行われる。最初に、データ・キ
ャッシュ・ヒット率がしきい値に対して検査される(ロ
ジック・ブロック315)。もしそれがこのしきい値より
も高くはなく、経験的な証拠から通常はより高いヒット
率が得られるべきであることを表わすなら、データ・キ
ャッシュのサイズを増分するため制御はロジック・ブロ
ック317に移る。
もしヒット率がしきい値よりも高いなら、ロジック・ブ
ロック316で、経験的な証拠に基づいて、データ・キャ
ッシュのサイズを大きくしてもそれ以上の値は得られな
いかも知れないしきい値が示される。これがそれに当て
はまるかどうかを判定するため、データ・キャッシュを
増分する最後の判定以後のキャッシュ・ヒット率が、前
のキャッシュ・サイズ変更間隔のキャッシュ・ヒット率
によって割られる。もしその商が1.0+ε1よりも大き
いなら、継続して利益があるので、データ・キャッシュ
のサイズを大きくするため、制御はロジック・ブロック
317に移る。ε1はチューニング・パラメータであり、
データ・キャッシュ・ヒット率に有意の改善が生じてい
るかどうかを表わす。
ロジック・ブロック317では、gブロックと(最大許容
キャッシュ・シーリング)−(現在のキャッシュ・シー
リング)を比較し、小さい方の量だけデータ・キャッシ
ュの許可シーリングが増分される。g及び最大許容キャ
ッシュ・シーリングは共にシステムに従属しており、シ
ステム初期設定中に決定することができる。通常、最大
許容サイズは使用可能な拡張記憶機構のブロック数であ
り、gはその最大可能サイズのかなりの部分を占めずに
キャッシュの妥当な増分を表わすブロック数である。拡
張記憶環境における代表的なgの値は2048である。
もしキャッシュ・サイズの増大がヒット率をよくしない
なら、制御はロジック・ブロック318に移る。ロジック
・ブロック318で、次の間隔のためARBサンプル・カウン
タはクリアされ、制御はオペレーティング・システムに
戻る。
第5図はページ移送が呼込まれるときデータ・キャッシ
ュのサイズを減分するかどうかを判定するために用いる
ロジックを示す。ロジック・ブロック400で、(キャッ
シュ適格I/O待ちの移動平均)−(ページ・フォールト
待ちの移動平均)がεよりも大きいなら、キャッシュ適
格I/O待ちが優位であるので、制御は呼出し者に渡され
る(即ち、ルーチンは終了する)。もし(ページ・フォ
ールト待ちの移動平均)−(キャッシュ適格I/O待ちの
移動平均)がεよりも大きいなら、(ロジック・ブロッ
ク401)、戻される最大データ・キャッシュ・ブロック
はMIGゴールにセットされる(ロジック・ブロック40
3)。さもなければ、2つの待ち状態間の相違は有意で
はなく、戻される最大データ・キャッシュ・ブロックは
(MIGゴール)/2にセットされる(ロジック・ブロック4
02)。ロジック・ブロック404で、データ・キャッシュ
は、(ロジック・ブロック402及び403で)計算されたサ
イズ及びデータ・キャッシュにより使用中の現在のブロ
ック数のうちの小さい方の値だけ減分される。そして制
御は呼出し者に戻る。
E.発明の効果 本発明によれば、データ・キャッシュのサイズを動的に
変更し、調整することが可能になる。
【図面の簡単な説明】
第1図はコンピュータ・オペレーティング・システムの
他の要素に対するデータ・キャッシュの配置及び関係を
示す図である。 第2図は第2A図及び第2B図の配置関係を示す図である。 第2A図及び第2B図は本発明の流れ図である。 第3図はアービタ構成要素と他のオペレーティング・シ
ステム・ソフトウェア構成要素の関係を示す図である。 第4図は第4A図及び第4B図の配置関係を示す図である。 第4A図、第4B図及び第5図はアービタ構成要素の動作を
示す詳細な流れ図である。 8……CMS、10……DMKDGD、12……DMKGIO、14……DMKDG
J、16……DMKDGC、18……DMKDGF、20……DMKGIO、22…
…DMKDGR、210……MIG、220……ARB、230……DCM、250
……XSM。

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】プロセッサ、前記プロセッサ用のオペレー
    ティング・システム及び前記オペレーティング・システ
    ムにより制御されるプロセッサ用記憶装置を有するコン
    ピュータ・システムであって、 前記プロセッサ用記憶装置の一部が前記オペレーティン
    グ・システムに対してデータ・キャッシュとして働き、 前記データ・キャッシュとして働く前記プロセッサ用記
    憶装置の一部の容量が可変であり、 前記オペレーティング・システムの下、前記プロセッサ
    上で実行されているタスクによりデータ・キャッシュ・
    サービスに対してなされる要求を監視し、キャッシュ・
    ミスの結果として待ち状態にある前記タスクの数を周期
    的に検知する第1手段と、 前記タスクによりデータ・キャッシュ・サービス以外の
    プロセッサ用記憶装置サービスに対してなされる要求を
    監視し、キャッシュ・ミスの結果ではなく前記プロセッ
    サ用記憶装置サービスのために待ち状態にある前記タス
    クの数を周期的に検知する第2手段と、 前記第1及び第2手段に応答して、前記第1手段により
    検知されたタスク数の平均を前記第2手段により検知さ
    れたタスク数の平均と周期的に比較し、前記両平均が等
    しくなるような方向に変化していない場合には前記両平
    均が互いに等しくなるような方向に前記データ・キャッ
    シュとして働くプロセッサ用記憶装置の一部の容量を調
    節する手段と を有する前記コンピュータ・システム。
  2. 【請求項2】前記第3手段による周期的な比較がなされ
    ている間に生ずるキャッシュ・ヒット数及びキャッシュ
    ・ヒット率を決定する手段を備え、 前記第3手段が、前記キャッシュ・ヒット率がしきい値
    より高く且つ前記キャッシュ・ヒット数が前記プロセッ
    サ用記憶装置の一部の容量が増加しても増加しない場合
    には、前記データ・キャッシュとして働くプロセッサ用
    記憶装置の一部の容量を増加しない 請求項1記載のコンピュータ・システム。
  3. 【請求項3】前記プロセッサ用記憶装置が主メモリ部分
    及び拡張記憶機構部分を備える請求項1記載のコンピュ
    ータ・システム。
  4. 【請求項4】前記データ・キャッシュとして働くプロセ
    ッサ用記憶装置の一部が前記拡張記憶機構内にある請求
    項1のコンピュータ・システム。
  5. 【請求項5】プロセッサ、前記プロセッサ用のオペレー
    ティング・システム及び前記オペレーティング・システ
    ムにより制御されるプロセッサ用記憶装置を有するコン
    ピュータ・システムであって、 前記プロセッサ用記憶装置が主メモリ部分及び拡張記憶
    機構部分からなり、 前記拡張記憶機構の一部が前記オペレーティング・シス
    テムに対してデータ・キャッシュとして働き、 前記データ・キャッシュとして働く前記拡張記憶機構の
    一部の容量が可変であり、 前記オペレーティング・システムの下、前記プロセッサ
    上で実行されているタスクによりデータ・キャッシュ・
    サービスに対してなされる要求を監視し、前記プロセッ
    サ上で実行されているタスクがデータ・キャッシュ・ミ
    スをしたとき待たねばならない時間長の平均の測定を検
    知する第1手段と、 前記タスクによりデータ・キャッシュ・サービス以外の
    プロセッサ用記憶装置サービスに対してなされる要求を
    監視し、前記主メモリ部分に最初に移動させねばならな
    い仮想ページに前記タスクがアクセスしようとした時に
    生ずる仮想ページ・フォルトが生じた時に前記プロセッ
    サ上で実行されているタスクが待たねばならない時間長
    の平均の測定を検知する第2手段と、 前記第1及び第2手段に応答して、前記第1手段による
    測定を前記第2手段による測定と周期的に比較し、前記
    両測定が等しくなるような方向に変化していない場合に
    は、前記両測定が等しくなるような方向にデータ・キャ
    ッシュとして働く前記拡張記憶機構の部分の容量を調節
    する手段と を有する前記コンピュータ・システム。
JP1184883A 1988-09-15 1989-07-19 コンピュータ・システム Expired - Lifetime JPH0690685B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/244,976 US4947319A (en) 1988-09-15 1988-09-15 Arbitral dynamic cache using processor storage
US244976 1988-09-15

Publications (2)

Publication Number Publication Date
JPH0315957A JPH0315957A (ja) 1991-01-24
JPH0690685B2 true 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)

Families Citing this family (45)

* 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
US5226141A (en) * 1989-07-14 1993-07-06 Touch Technologies, Inc. Variable capacity cache memory
EP0438556A4 (en) * 1989-07-14 1993-03-17 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
US5465342A (en) * 1992-12-22 1995-11-07 International Business Machines Corporation Dynamically adaptive set associativity for cache memories
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
JP3264465B2 (ja) 1993-06-30 2002-03-11 株式会社日立製作所 記憶システム
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
US5588129A (en) * 1994-02-09 1996-12-24 Ballard; Clinton L. Cache for optical storage device and method for implementing same
US5584007A (en) * 1994-02-09 1996-12-10 Ballard Synergy Corporation Apparatus and method for discriminating among data to be stored in cache
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
JP4340616B2 (ja) * 2004-10-04 2009-10-07 富士通株式会社 ディスクアレイ装置
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 浪潮(北京)电子信息产业有限公司 一种异构混融层次式内存设备
US12223206B2 (en) * 2023-01-05 2025-02-11 SanDisk Technologies, Inc. Data storage device and method for dynamic controller memory buffer allocation
US20250284407A1 (en) * 2024-03-05 2025-09-11 Micron Technology, Inc. Dynamic access counter threshold

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
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 キヤツシユメモリ制御方式
DE3380645D1 (en) * 1982-12-28 1989-11-02 Ibm Method and apparatus for controlling a single physical cache memory to provide multiple virtual caches
JPS63111553A (ja) * 1986-10-29 1988-05-16 Nec Corp キヤツシユバツフア制御方式

Also Published As

Publication number Publication date
JPH0315957A (ja) 1991-01-24
EP0359923A3 (en) 1991-01-09
US4947319A (en) 1990-08-07
EP0359923A2 (en) 1990-03-28

Similar Documents

Publication Publication Date Title
US4947319A (en) Arbitral dynamic cache using processor storage
US5517643A (en) Method of allocating memory among a plurality of processes of a computer system
JP4160255B2 (ja) 仮想記憶システムにおける物理メモリの割り振りをアプリケーションプログラムによって制御するアプリケーション・プログラミング・インターフェイス
US5559978A (en) Method for increasing the efficiency of a virtual memory system by selective compression of RAM memory contents
US7024512B1 (en) Compression store free-space management
US5193172A (en) Memory management system for dispatching only to a selected high-use-priority task a maximum allocated and given highest-use-priority real-pages when requested
US7117285B2 (en) Method and system for efficiently directing interrupts
US7313797B2 (en) Uniprocessor operating system design facilitating fast context switching
US6681305B1 (en) Method for operating system support for memory compression
JP3745690B2 (ja) オペレーティング・システムにとってトランスペアレントなメモリ圧縮を管理するシステムおよび方法
US7945914B2 (en) Methods and systems for performing operations in response to detecting a computer idle condition
US7197577B2 (en) Autonomic input/output scheduler selector
US8019954B2 (en) Kernel and application cooperative memory management
JPH10301794A (ja) 情報処理システムおよびキャッシュ・メモリのロード方法
US11709626B2 (en) Scheduling storage system tasks to promote low latency and sustainability
US5860131A (en) Method for providing dynamic cache management in a computer system
US20100251260A1 (en) Pre-emptible context switching in a computing device
US12118236B2 (en) Dynamically allocating memory controller resources for extended prefetching
Reuben Reducing the Thrashing Effect Using Bin Packing
EP1628209B1 (en) System controller, speculative fetching method, and information processing apparatus for executing speculative fetch depending on hardware resource availability.
JP2004326782A (ja) 暗黙の通知を伴うデータ転送
US5797039A (en) Method of efficiently sending packets onto a network by eliminating an interrupt
JPH0612395A (ja) マルチプロセサシステムにおけるタスク割り付け方法
CA1341568C (en) Method of memory and cpu time allocation for a multi-user computer system
JP3061001B2 (ja) 計算機システムにおけるメモリ割り当て方式