JPS6136668B2 - - Google Patents

Info

Publication number
JPS6136668B2
JPS6136668B2 JP56198686A JP19868681A JPS6136668B2 JP S6136668 B2 JPS6136668 B2 JP S6136668B2 JP 56198686 A JP56198686 A JP 56198686A JP 19868681 A JP19868681 A JP 19868681A JP S6136668 B2 JPS6136668 B2 JP S6136668B2
Authority
JP
Japan
Prior art keywords
cache
group
item
list
data
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
Application number
JP56198686A
Other languages
English (en)
Other versions
JPS57138080A (en
Inventor
Ruisu Matsutoson Richaado
Andenooru Rodorigesuuroseru Juan
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 JPS57138080A publication Critical patent/JPS57138080A/ja
Publication of JPS6136668B2 publication Critical patent/JPS6136668B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • 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/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】 本発明の技術分野 本発明はキヤツシユ管理に関し、更に具体的に
は、階層記憶システムの1つ又はそれ以上のバツ
フアされたキヤツシユ段へ一時的記憶を行うた
め、データ・ベースからデータのページ可能な群
をダイナミツクに選択するための、マシンで実行
可能な方法に関する。
本発明の背景 ページの移動を制御し、かつ記憶階層の論理ア
ドレス・スペースと物理アドレス・スペースとの
間でダイナミツクな関連づけを行うため、マシン
で実行可能なページ置換方法が使用されてきた。
しかし、ヒツト/ミス率のようなパフオーマンス
尺度は、キヤツシユ・サイズ及びデータ・ベース
からデータのページ可能な群を選択することに関
してキヤツシユ・パフオーマンスを「調整」する
ために、ダイナミツクに使用されることができな
かつた。パフオーマンスをダイナミツクに調整し
得ない原因は、データ・ベースにおけるページ可
能データの所与の群について、ヒツト/ミス率を
キヤツシユ・サイズの関数として決定することが
ページ可能なデータ群の大きさに比例した計算上
の複雑性を伴つたからである。これらのページ可
能な群は典型的には非常に大きいので、ヒツト/
ミス率は、多額の計算費用をかけてオフラインで
のみ確めることができた。
先行技術の教えるところによれば、LRU/
MRUページ置換方式を有する階層記憶システム
は、単一レベルの記憶装置よりも、アクセス可能
な要求時ページング制御が得られることを条件と
して、実質的に少数のページを必要とする。前に
言及したキヤツシユ(バツフアされたステージ)
のパフオーマンスは、ヒツト/ミス率によつて特
徴づけられてきた。「ヒツト」は、リクエストし
ているCPUで実行可能なプロセスにより発生さ
れたキヤツシユへのREAD(読取り)参照が、低
速バツキング記憶装置ではなく、高速キヤツシユ
中で所望のデータ項目を位置づけることを意味す
る。WRITE(書込み)参照に関する「ヒツト」
が生じるのは、CRUで実行可能なプロセスが、
キヤツシユ・マネジヤを介して、部分的に満たさ
れたバツフア中に重ね書きされる対応ロケーシヨ
ンを発見する時である「ミス」が登録されるの
は、READ参照に関してはデータがキヤツシユ中
で利用できないか、WRITE参照に関しては余地
を作るためにステージ装置から大容量記憶ボリユ
ームへ項目を移動しなければならない時である。
小型高速キヤツシユと大型低速バツキング記憶
装置との間でデータが移動されねばならない時
(ステージング)、ステージング・アルゴリズムが
必要である。最旧時使用(LRU)法又は最近時
使用(MRU)法の如き良く知られたアルゴリズ
ムは、将来CPUで実行可能なプロセスによつて
参照される可能性のある項目をキヤツシユ中に維
持する。参照された項目を含まず一杯であるキヤ
ツシユは、そのデータ・エレメントの1つを除去
して、そのエレメントが要求された項目によつて
置換されるようにしなければならない。かくて、
システムは最旧時に参照された項目を置換しよう
とする。それは長時間にわたつて参照されなかつ
た項目は、将来においても参照される可能性が少
ないだろうという想定の下でなされる。
単一のCPU又はいくつかのCPU上で同時に実
行されている順次的タスクの間で、高速キヤツシ
ユを共用することは知られている。このような状
況において、CPU及び対応する階層記憶システ
ムは、全てのリクエストしているプロセスが不十
分な資源へ等しくアクセスできるようにする包轄
的キヤツシユ管理方式を実行する。上記の不十分
な資源とは、不十分なキヤツシユ・スペースのこ
とである。更に、先行技術の教えるところによれ
ば、キヤツシユ・スペースを規制し又は割当てる
ために固定した強制装置を使用することができ
る。例えば、もしドラム及びデイスクが全てのシ
スム・ユーザのためにページを保持するように使
用され、システムが最も頻繁に使用されるページ
をドラム上に維持するならば、ページ・スペース
中の全てのページを1回だけ迅速にアクセスして
それを繰返すユーザは、他のユーザの費用で全て
のドラム・スペースを占有することができる。こ
のような場合、キヤツシユ・マネジヤは、ユーザ
が占有することができるページ数の上に固定した
最大数の制限を設ける。他のシステムでは、各ユ
ーザのために異つた他の制限を割当てることがで
きる。しかし1度制限が割当てられてしまうと、
ユーザがそのキヤツシユ・スペースを満たした後
に、低いヒツト率が生じることが経験的に知られ
ている。更に、或る時間間隔の間に、実行中のプ
ロセスが固定したスペース割当てに関してあまり
に早くキヤツシユを参照すると、次の時間間隔に
ついてスペース・リミツトが漸進的に減少され
る。その逆も生じる。このような情況では、2つ
以上の競合するプロセスがあつて、1つのプロセ
スが比較的早く動いており、他のプロセスが比較
的遅く動いている場合、遅いユーザがキヤツシユ
スペースを支配する可能性がある。
次の文献は現時点の技術やレベルを示す。
「記憶階層の評価法”(Mattson、et al、
“Evaluation、Techniques for Storage
Hierarchies”、IBM System Journal No.2、
1970、pages 78―117)は記憶階層において所与
のLRUページ置換方式のヒツト/ミス率は、デ
ータ・セツト群及びキヤツシユ・サイズの関数と
してシングル・パスで測定できることを教示して
いる。その利点として、必要な時間はデータ・ベ
ース・サイズに比例する。
「序数によるリニヤ・リストの記憶管理」
(Mattson、“Storage Management of Linear
Lists by Ordinal、Numbers”、IBM
Technical、Disclosure Bulletin、Vol.19、
December 1976、pages 2709―2714)は現在参
照されている項目のスタツク距離を決定し、次い
でキヤツシユに記憶されたLRUリストのために
単一のメモリREAD/WRITEサイクルで全体の
スタツクを更新する方法及び装置を説明してい
る。その利点として、リストはCPUを遅くする
ことなく、リアル・タイムで維持されることがで
きる。記憶管理及びLRUページ置換方式を使用
するシステム測定は、相当のハードウエアの費用
をかけて実行される。ハードウエアの大きさはデ
ータ・ベースのサイズに比例する更にこの文献は
単にキヤツシユ・サイズの決定を教示する。それ
は、どのデータ・セツトの群が選択されて、キヤ
ツシユ中に置かれるべきかを教示しない。
「ナツプサツク問題に対する高速近似アルゴリ
ズム」(Lawler、“Fast Approximation
Algorithms、for Knapsack Problems”、
Mathematics of Operations Research、Vol.4、
Novembar 1979 pp.339―356)はq個のキヤツ
シユ・サイズの合計がシステム・キヤツシユ・サ
イズより小さくなり、かつ各キヤツシユ・サイズ
から得られたヒツトの合計が最大になるように、
q個のキヤツシユ・サイズ群の各々から(p+
1)個のキヤツシユ・サイズの1つを選択する方
法を説明している。しかしこの文献は、前述した
先行技術と同じように、ダイナミツクなページン
グ機構における効果的なキヤツシユ割当てを教示
していない。
本発明の要約 本発明の目的は、データ・ベースからページ可
能なデータ群をダイナミツクに選択して、CPU
によりアクセス可能な階層システムの1つ又はそ
れ以上のバツフア・ステージ(キヤツシユ)へ上
記データ群を一時的に記憶するための、CPUで
実行可能な方法を提供することである。即ち、本
発明の目的は、同時的にワークロードを実行して
おり、かつキヤツシユ・スペースを求めて競合し
ている複数の順次的タスクの間で、最大数のヒツ
トが得られるように、キヤツシユを割当てる自動
的方法を提供することである。規定された時間間
隔において、他のキヤツシユ・スペースの割当て
が、キヤツシユへのヒツト数を増加させ得ない時
に、最大のヒツトが得られたものと考えられる。
本発明は、LRU法により参照可能なメモリ・
スペースの区画をダイナミツクに調節するCPU
実行方法として実現されるが、上記のメモリ・ス
ペースは同時的実行関係にある順次的プロセスに
よつて共用され、メモリ参照を管理するため監視
プロセスが呼出される。本発明に従う方法のステ
ツプは、(a)LRUスペースに記憶された項目に対
する連続的参照のトレースを累積することによつ
てプロセス間の最適スペース割当てを決定し、累
積されたトレースからヒツト/ミス率をLRUス
ペース区画サイズの関数として探知し、それぞれ
のトレース参照に応答して、区画されたスペース
中に項目をLRU方式で配列するとともに区画間
のオーバフローを調節し、(b)監視プロセスによつ
て決定されるところに従い、かつその決定と重複
した関係で同時的なプロセスの間でメモリ・スペ
ースを再割当てすることを含む。
本発明における決定ステツプは、ページ可能な
データ群として存在する項目(p+1)個の同値
類へ区画されたLRUスタツクへマツプして、同
一類の全ての項目が同じ「スタツク」距離を有す
るように構成することを前提としている。これに
よつて、キヤツシユ・サイズをp個の可能なキヤ
ツシユ・サイズから選択することができる。p個
の可能なキヤツシユ・サイズの関数としてヒツ
ト/ミス率の参照当りの計算を実行することは、
pに比例した計算上の複雑性を伴う。一般にはp
は非常に小さいから、ヒツト/ミス率はオンライ
ンで得ることができる。
キヤツシユ・パフオーマンスのダイナミツクな
調整は、p個のキヤツシユ・サイズから1つのキ
ヤツシユ・サイズを選択し、またq個のデータ群
からページ可能なデータ群を選択することを含む
ので、、p個のキヤツシユ・サイズに対するヒツ
ト/ミス率を得るに当り、参照ごとの計算に伴う
複雑性はp×qにのみ比例する。これに関連し
て、参照ごとの処理は、リアル・タイムで実行可
能な高々q÷(p+1)個の情報項目を使用す
る。このようにして得られたp×q個のヒツト/
ミス率から、ページ可能データの群及び関連した
キヤツシユ・サイズが、時間間隔ごとに高々(p
+1)q回の計算で選択されることができる。
先行技術では、最悪事態でq×(データ・ベー
ス中の項目数)回という非常に膨大な参照当りの
処理量を必要としたので、ヒツト/ミス率を決定
するためには、文字どおり何千万という項目を移
動し、変更し、走査することが必要であつた。本
発明は、参照当りの処理に必要な最悪事態の数を
微々たる数へ減少させる。
実施例の説明 本発明は2つの問題に関連している。第1の問
題はキヤツシユ・サイズの関数としてヒツト/ミ
ス率を確かめることであり、第2の問題は競合す
る複数のプロセスの間でキヤツシユをダイナミツ
クに割当てるため上記のヒツト/ミス率を利用す
ることである。本発明は要求時ページング階層記
憶システムにアクセスするCPUによつて実行で
きるから、先ず先行技術によるキヤツシユ・マネ
ジヤ(第5図)を簡単に説明する。次に、2つの
データ構成体の構造及び変更に関連した第1図及
び第2図を詳細に説明する。その次に、第3図及
び第4図を参照して、本発明の方法に従う
READ/WRITE及びERASEの処理を説明する。
IBM System 370の環境 本発明の方法は1つ又は2つ以上のCPUを含
むコンピユータ・システムで実行可能である。各
CPUは主記憶装置、入出力チヤネル制御ユニツ
ト、直接アクセス記憶装置(DASD)、及び他の
入出力装置を有する。そのようなシステムの1つ
の例は米国特許第3400371号に説明されている。
上記米国特許のシステムはコンピユータ・システ
ムの全ての機構、及びプロセスを実行するために
必要な、上記コンピユータ・システム上で走るオ
ペレーテイング・システムの全ての機能を資源と
して含む。典型的な資源は主記憶装置、入出力装
置、CPU、データ・セツト、制御プログラム又
は処理プログラムを含む。更に上記のシステムは
マルチプログラミングが可能である。マルチプロ
グラミンは、コンピユータ・システムによる2つ
又はそれ以上のプロセスの同時的実行に関連して
おり、IBMシステム/360オペレーテイング・シ
ステム(IBM出版物GC28―6646を参照)の下で
走るコンピユータ上で管理されることができる。
IBMシステム/360参考文献(IBM System/
360Bibliography)GA22―6822を参照されたい。
本発明はオペレーテイング・システムの環境中
で利用されるように意図されている。オペレーテ
イング・システムは通常のデータ・マネージメン
ト機能を含み、補助記憶装置を管理し、従来型の
プログラム・コンパイラ及びアセンブリ機能を実
行することができる。アセンブリ・レベルの言語
は前記米国特許及び多くのIBM出版物中に記載さ
れているが、その概論は「IBMシステム/360ア
センブラ言語に対するプログラマ入門」(A
Programmer′s Introduction to IBM System/
360 Assembler Language)という文献に記載さ
れている。この文献はIBMカタログ番号SC20―
1646―6を有する(1979年に再印刷)。
付加されたDASDに対するCPUアクセス データ・セツトはDASDボリユーム上に頻繁に
記憶される。CPUとDMSDとの関連は、CPUが
START I/O命令を呼出した時に始まる。こ
の命令はCPUとアドレスされた装置との間に接
続を達成し、その装置についてチヤネル・プログ
ラムが実行される。START I/O命令が呼出
されると、制御は一連のチヤネル指令へ渡され
る。このチヤネル指令のシリーズ又は連鎖は
(CCW)、チヤネルを介して制御ユニツトへ送ら
れる。それは装置を選択するとともにそこへアク
セスし、かつインターフエイスを介してデータ移
動を実効化するためである。各チヤネル・プログ
ラムはCPUメイン・メモリに置かれたオペレー
シヨンの順次的リストより成る。CCWの制御ユ
ニツトへの転送、及びそこにおけるCCWの実行
は、CPUと制御ユニツトとの間に最初の接続が
起つた後でのみ生じる。チヤネル・プログラム中
の各動作(CCW)のために、アクチブな接続に
ついて制御ユニツト又は装置レベルで1又はそれ
以上に対応する動作が必要である。最初のアクチ
ブな接続は初期選択シーケンスの接続である。こ
のシーケンスはSTART I/O動作により呼出
され、装置アドレス(仮想/実)及び装置状況
(使用可能/使用中)との関連で、初期通路が電
気的かつ論理的に設定される。次のアクチブな接
続はCCWの転送及び実行についての接続であ
る。SEEKの如き制御CCWは装置における物理
的位置づけ又は活動を必要とする。制御ユニツト
は、制御CCWの受信に応答して、分離モードで
CCWを実行することができる。分離モードと対
照的に、チヤネルと装置との間でデータを移動又
は伝送するCCWは(READ又はWRITEの如
く)、データ転送を実効化するため、制御ユニツ
トやチヤネルへ接続されていることを必要とす
る。複数のCPUが論理的に独立した通路を介し
て共通の装置へアクセスする構成を含む典型的シ
ステム構成は、米国特許第4207609号に記載され
ている。
キヤツシユ・マネージメントを使用した階層記憶
装置のアクセス 階層記憶システムと前記2つの米国特許に開示
されるシステムとの相異は、1つ又はそれ以上の
バツフア・ステージがDASDとCPUとの間に設け
られているかどうかの点のみである。例えば、キ
ヤツシユがマルチプログラミング・モードで動作
しているCPU内にある時、オペレーテイング・
システムのキヤツシユ・マネジヤ機能は、リクエ
ストを出しているプロセスの間でアクセスを規制
する。キヤツシユは通常ランダム・アクセス型の
高速メモリであつて、選択された数の参照可能項
目が、低速バツキング記憶装置(DASD)ではな
く上記キヤツシユに配置されている。
ここで第5図を参照すると、そこには先行技術
によるキヤツシユ機能の流れ図が示される。
CPUはREAD又はWRITE CCWを発生すること
によつて記憶サブシステムへアクセスする。キヤ
ツシユ・マネジヤは記憶装置に対する各CCWの
参照(reference)を阻止して、参照ロケーシヨ
ンの内容が前にキヤツシユ内に複写されているか
どうかを確める。もし複写されていなければ、そ
の参照はDASDへ渡される。DASDへ渡された参
照は、リクエストしているプロセスへステージ・
アツプされる。更に、キヤツシユ・マネジヤは参
照ロケーシヨンの内容をキヤツシユへ複写し、キ
ヤツシユ・デイレクトリイを更新する。これはキ
ヤツシユ・ロケーシヨンが利用可能かどうか、も
し利用可能でなければ、LRUのようなデステー
ジング・アルゴリズムに従つてキヤツシユ・ロケ
ーシヨンの余地を作ることを含む。もしキヤツシ
ユが一杯で、余地を作るためデータを移動するこ
とが必要ならば、キヤツシユ・ロケーシヨンの内
容が変更される時にのみDASDへの書戻しが実行
される。そうでなければ、キヤツシユ内の削除の
みが必要となる。もし参照ロケーシヨンの内容が
キヤツシユ中にあれば、リクエストしているプロ
セスが複写される。もし参照データがキヤツシユ
内に存在せず、ロケーシヨンが利用可能であれ
ば、参照データがバツキング記憶装置からキヤツ
シユへ複写され、キヤツシユ・デイレクトリイが
更新され、リクエストしているプロセスが複写さ
れる。
ページ群及びキヤツシユ・サイズの動的選択のコ
ンポーネント 本発明は2つの通信コンポーネント(データ収
集コンポーネント及び分析コンポーネント)より
成る。データ収集コンポーネントが呼出される
時、それは継続的に各種のデータ・セツト及びデ
ータ・ベースにある項目に対するリクエストの時
間シーケンスを収集する。各START I/O命
令がCPUによつて連続的に実行された後、チヤ
ネルによつて実行されようとしているCCWのシ
ーケンスに対して走査がなされる。各CCW参照
に関して記録される典型的情報は、(1)チヤネル・
プログラムの開始を示すフラグ、(2)FETCH、
SWAPのようなチヤネル・プログラムの種類、(3)
SEEK、READ/WRITE、ERASEのようなオペ
レーシヨンの種類、(4)チヤネル、装置、シリン
ダ、トラツク、レコードによつて参照されつつな
る項目の物理アドレス、(5)オペレーシヨンに含ま
れるマルチトラツク探索及びデータ・チエイニン
グを示すフラグを含む。分析用の最適有効セツト
を構成する参照のトレースのサンプル・サイズ及
び収集頻度を決定することは、本発明の範囲に入
らない。しかし、連続的又は非定期的にサンプル
するのではなく、定期的に連続的参照のトレース
を処理することが望ましい。
データ分析コンポーネントは、キヤツシユ・サ
イズp個の異つた値のために各データ群ごとのヒ
ツト率を決定し、全てのデータ群からシステム・
キヤツシユへのヒツト数が最大になるように、各
データ群ごとにキヤツシユ・サイズを選択するこ
とを目的とする。キヤツシユ・サイズの関数とし
てヒツト率を決定することは、2つのデータ構造
に基くオペレーシヨンを必要とする。ここで第1
図を参照する。これは順序リスト(L1)及びテ
ーブル(T1)を示す。これらはLRUスタツクを
同値類へ区画したものを表わす。番号の順序リス
トL1は、デイスク・トラツクに対する参照の最
近時に参照されたシーケンスを構成する。順序リ
スト・エントリイを示すデータ構造は前方ポイン
タf、後方ポインタb、群番号gより成るnダブ
ル(tuple)を含む。前方ポインタはリスト中の
次の項目を指定し、後方ポインタはリスト中の前
の項目を指定し、群番号は恣意的なデータ・セツ
トの集合を示す。リストL1において、最近時
(most recently)に参照された項目は9であり、
最旧時(least recently)に参照された項目は11
である。これらはそれぞれF=9及びLa=11と
して表わされる。これはリンクされたリスト形式
である。リスト中の最後の項目は決して参照され
てはならない。このLRUリストは(k+3)個
の群に区分される。第1図においてk=3であ
る。群rにおける全ての項目はg=rを有する。
テーブルの構造 テーブルT1は(k+3)個の行とc個の列を
含む。テーブルT1において、行rは群r及びリ
ストに関するデータを含む。列Mは、行rに対応
する群へ割当てることができるリスト中の項目の
最大数を含む。列Aは、行rに対応する群へ現在
割当てられたリスト中の項目の数を含む。列H
は、参照された項目が行rに対応する群へ現在割
当てられた回数を設定する。列Lは、行rに対応
する群内の最後の項目の番号を含む。テーブル
T1中に他の列を設けて、リスト中の項目の各群
について他の情報を記憶するために使用すること
ができる。T1(r,A)の表示は、テーブルT1
の行r、列Aにおけるエントリイ(対応する群の
実際の大きさ)を示す。このエントリイは、項目
が参照された本発明の方法が実行されるにつれ
て、増大又は減少する。関係式−1<T1(r,
A)<1+T1(r,M)は範囲0<r<k+4を
満足させるrの全ての値について成立する。
T1(1,M)の表示は、容量c1バイトのキヤ
ツシユ中に記憶することのできる項目の最大数を
示す。T1(1,M)+T1(2,M)は、容量c2
バイトのキヤツシユ中に記憶することのできる項
目の最大数を示す。ここでc2>C1である。更に
T1(1,M)+T1(2,M)+T1(3,M)は、
容量c3バイトのキヤツシユ中に記憶することがで
きる項目の最大数を表わす。ここでc3>c2であ
る。以下同様である。T1(k+1,M)=T1
(k+2,M)は、参照することのできるリスト
中の項目の総数を表わす。注意すべきは、リスト
中の最後のものは参照され得ないことである。従
つてT1(k+3、M)=1である。
ヒツト/ミスを測定するためキヤツシユ・サイズ
を選択すること 第1図は問題とするキヤツシユ容量に基いて
LRUスタツクを同値類へ区分したものを表わ
す。問題とする容量とは何であるか。最も簡単に
云えば、テーブルT1中の列Mによつて表わされ
る最大許容群サイズの連続的加算によつて得られ
る。即ち、c1=3、c2=3+4=7、c3=3+4
+3=10、c4=c3+10=20、c5=c4+10=30、c6
=c5+1=31である。
所与のキヤツシユ・サイズciについて或る項目
への参照がヒツトであるか又はミスであるかをど
のようにして決定するか、群1中の任意の項目に
対する参照は、c1=3のときヒツトである。更
に、群2中の任意の項目に対する参照はサイズ3
以下のバツフアについてミスであるが、サイズ7
以上のバツフアについてはヒツトである。規則と
して、LRUスタツク中の項目iの群番号は、そ
の群番号より小さい全てのキヤツシユ容量につい
てミスとして登録され、群番号より大きい又はそ
れに等しい全てのキヤツシユ容量についてヒツト
として登録される。
ヒツト、ミス、及びオーバフロー DASD上に記憶されたデータへの各リクエスト
は、物理的ロケーシヨンへのリクエストである。
本発明において、参照される各物理的ロケーシヨ
ンは番号を割当てられねばならない。かくして、
ロケーシヨンyにおけるデータをREAD、
WRITE又はERASEするリクエストは、コード
=(r,w、又はe)を有する項目番号yのリク
エストへ変換される。READ又はWRITEリクエ
ストに応答する詳細な処理は第3図に示され、
ERASE(消去)リクエストに応答する処理は第
4図に示される。これらの方法はT1(r,H)
を更新する。テーブルT1中のこのエントリイ
は、群rへのヒツトの数をカウントする。一連の
リクエストの終りに、エントリイT1(r,H)
の各々は、容量c1,c2,c3,……バイトのデー
タ・キヤツシユに対するヒツト率を決定するのに
必要なデータを含む。更に、もし全ての項目が最
初群(k+1)にあれば、T1(k+1,H)は
参照される独特の項目の数を与える。同様に、
T1(k+2,H)は或るロケーシヨンが消去さ
れ、続いてデータのために再使用された回数を与
える。第3図及び第4図に示された方法は、リス
トL1が第2図に示されるテーブルL1として記憶
されているものと仮定する。そのようなテーブル
L1は、参照されつつある項目プラス1と同じ数
の行、及び対応するnタプル<f,b,g>のた
めのエントリイと同じ数の行を有する。更にL1
(p,g)はテーブルL1の行p、列gに記憶され
た数を示す。
項目yがREAD又はWRITE参照を表わす時、
テーブルL1中の行y、列gはyが現在割当てら
れている群rを決定する。その後、テーブルT1
中の行r、列Aは、1だけ少ない項目がこの群へ
割当てられることを示すため、1だけ減少され
る。次に項目yが群rから除去され、最後の次の
項目としてリスト中に置かれる。即ち、それは群
(k+2)中の最後の項目として置かれる。これ
は、テーブルL1、行y中の値を適当な値へ変更
することによつて達成される。消去に関連する方
法は、後に第4図を参照して説明する。
リアル・ベーシング・システムにおけるキヤツシ
ユ管理 リアル・ベーシング・システムにおいて、キヤ
ツシユ・データのエレメントは無効に(消去)さ
れてよい。なぜならば、それが表わす情報はもは
や必要でないからである。即ち、消去はプロセス
が停止又は終了された時に実行される。
本発明はLRU/MRUページ置換方式を使用す
る階層記憶システムで動作可能である。しかし、
LRU置換方式を使用する順次の参照は、決して
再びアクセスされることのない参照でキヤツシユ
を満たす。このようなキヤツシユの充満は競合す
るプロセスのためのキヤツシユの使用をだめにす
る。ランダムな参照についても、そのような結果
が生じる。即ち、同一の項目を再び参照する確率
はゼロに近い。これは、任意のキヤツシユ・サイ
ズについて低いヒツト率が存在することを意味す
る。本発明の方法によつて、競合するプロセスが
順次の及び/又はランダムなプロセスを行う場
合、そのプロセスについて小さい又はゼロのキヤ
ツシユ・サイズの割当てが生じ、従つてシステ
ム・キヤツシユ全体への充満が避けられ、所与の
プロセスのため予め割当てられた大きなキヤツシ
ユ・スペースに対して少数のヒツトが得られる。
例 第1図のリストL1及び第2図のテーブルL1に
示されるような項目8へ参照がなされたものと想
定する。項目8は群4に属することは明らかであ
る。従つて、項目8は群4から除去され、リスト
の最上部(即ち群1の最初のエレメントとして)
に置かれねばならない。これは群1の大きさを4
つのエレメントへ増大させる。T1(1,M)で
テーブルT1を参照すると、許容される最大数は
3であることが分る。従つて、リストL1のプツ
シユダウン・オーバフローを管理することが必要
となる。本発明を支配する規則によれば、群1の
最後のエレメント(エレメント10)は、群2の最
初のエレメントとなる。これは群2のサイズを3
個のエレメントへ増大させる。T1(2,M)で
テーブルT1を参照すると、最大4つのエレメン
トが許されることが分る。従つて、これ以上のプ
ツシユダウンは必要でない。
最近時に参照される項目8を除去して群1中の
リストの最上部に置いたことによつて空間が生
じ、群2に関してはこれ以上のオーバフローは生
じない。テーブルT1における各群中の最後の項
目、及びテーブルL1中のポインタの修正などの
ように、テーブル中の影響を受けるエントリイの
全てにおいて変更がなされなければならない。参
照された項目は群4を全むキヤツシユ中に置かれ
るので、T1(4,H)中のカウントは1だけ増
加される。キヤツシユの実際の占有率は、無効が
存在しない時にのみ最大となる。従つて大部分の
場合、MAである。
特別の状況 キヤツシユ中の最初の項目が参照されるなら
ば、それは後においても最初の項目のままであ
る。群1の全部が無効にされる間に、或る項目が
群2の最初の項目でなければ、その項目は実際上
リスト中の最初の項目である。
考慮すべき点は、群とキヤツシユとの間に何の
対応関係もなく、複数の群の間に対応関係がある
ことである。即ち、複数の群ま特定のキヤツシ
ユ・サイズと同義語である。例えば群1の項目は
サイズc1のキヤツシユ中に存在する。群2の項目
はサイズc2のキヤツシユ中に存在する。ここでc2
は群1及び2に許される最大項目のテーブルの合
計である。
それぞれのREAD/WRITE参照に対する方法ス
テツプの応答 ここで第3図を参照すると、そこにはそれぞれ
のREAD又はWRITE参照に応答する方法ステツ
プが示される。ステツプAでスタートするに当
り、先ず項目yがリストL1上の最初の項目であ
るかどうかを決定することが必要である。もし最
初の項目であれば、項目yのための群番号が1に
等しいかどうかが決定される。もし1に等しけれ
ば、参照された項目は既にリストの最上部にあ
り、T1(1,H)を1だけ増進するための処理
が必要となるだけである。これはステツプCで実
行される。ステツプDはプロセスの完了を表わ
す。また項目yがリスト上の最初の項目であれば
(群1を除いて)、群1中の全てのエレメントが前
に消去された場合、それは次の下位の群リストの
最上部にあることを意味する。これはステツプE
を呼出し、項目yの群番号が確認された後に、群
番号、ヒツト、及びリスト位置が更新される。そ
の後、処理は完了し、ステツプDへ進む。
ここで項目yがリスト中の最初の項目でなけれ
ば、処理はステツプAからステツプFへ進む。ス
テツプFの最初の3つのエントリイは、リスト
L1から群、前の項目、及び次の項目を決定し、
参照された項目をリスト中の最初の項目とするた
め、上記の情報を変更することに関連している。
更に、参照されたT1(g,H)は1だて増進さ
れる。参照された項目yは或る群gの最後のエレ
メントであつたかどうかを決定することが必要で
ある。即ち、それはテーブルT1(g,L)中で
指定されているかどうかを確かめる必要がある。
もし指定されていれば、それはループ・ステツプ
G及びHを介して処理される。ステツプHにおい
て、pが最後の項目とされ、項目yが除去され
る。もし項目yが最後の項目でなければ、処理は
ステツプIへ続く。ステツプIで、項目yはリス
トL1中の古い位置から除去され、リストの最上
部へ挿入される。
次のステツプJは除去された項目yが群1から
であるかどうかをテストする。もしそうであれ
ば、処理はステツプKで完了する。なぜならば、
除去された項目yはリストの最上部にあり、それ
以上の処理は必要でないからである。他方、もし
項目yが群1になければ、ループ・インデツクス
iを1にセツトし、LRUリスト中の他の項目を
群から群へプツシユダウンすることが必要であ
る。これはループ・ステツプL,M,N,Oを介
してなされる。ステツプLにおいて、次の項目n
に対するポインタがT1(i,L)にセツトされ
る。ステツプMにおいて、群iが全て割当てられ
ているかどうかが質問される。もし割当てられて
いなければ、ステツプQで表わされるように、そ
の実際の容量が1だけ増加され、群gの容量が1
だけ減少される。もし群iが完全に割当てられて
いれば、処理はステツプNへ続く。ステツプNは
上位群の最下部のエレメントが次の下位群の最上
部エレメントになつたかどうかを確める。それが
終ると、処理はステツプOへ続く。ステツプOは
参照された項目が群gから除去されたかどうかを
決定する。もしそうであれば、スペースが完全に
割当てられており、処理はステツプPへ進むこと
によつて完了する。もしそうでなければ、ステツ
プL,M,N,Oの循環によつて表わされるよう
に、もう1度次の下位群を参照してオーバフロー
が処理されねばならない。
もし群がステツプMの処理に従つて完全に割当
てられなければ、(即ち、エレメントの最大数は
群iにおいてエレメントの割当てられた数に等し
くない)、処理はステツプQへ続く。ステツプQ
は群iの割当てられたエレメントへ1を加え、群
gの割当てを減少する。ステツプRは、参照が
READのためであるかWRITE(W)のためであ
るかをテストする。もしそれがREADのためであ
れば、処理はステツプT及びUへ続く。ステツプ
Uにおいて、群iが空であるかどうかのテストが
実行される。もし群iが空でなければ、処理はス
テツプPへ移動することによつて完了する。もし
群iが空であれば、yが群iの最後のエレメント
とされ、ステツプU及びVを循環することによつ
て、次の群について同一のテストがなされる。も
し参照がWRITE動作のためであれば、テーブ
ル・ロケーシヨンT1(i,H)でヒツトを+1
だけ更新することが必要である。換言すれば、ス
タツク中に「孔」を有すか、又は既にデータを入
れられているキヤツシユに対するWRITE参照
は、ヒツトとして登録される。「ミス」は孔を作
るためLRU処理を必要とする。
参照された項目yが、リストL1中で2つ以上
の群の最後の項目である可能性もある。これは、
リストら項目がどのように消去されるかによつて
生じる。ステツプG及びHによつて表わされるル
ープは、yが次の群の最後のエレメントであるか
どうかをテストし、yが群gの最後のエレメント
でなくなるまで循環する。
READ/WRITE参照によつて最も頻繁に生じ
る通路はステツプA,F,G,I,J,L,M,
N,O,Pである。その間にQ,R,T,Uのス
テツプへ分岐が起る。残りのループは例外として
生じる。
ERASE参照へ応答する方法ステツプ ここで第4図を参照すると、そこにはエレメン
トがプロセスによつてもはや必要とされないため
にエレメントを削除することが望まれる場合が示
される。プロセス自体は中止又は終了されている
か、又はキヤツシユが一様である。プロセスはス
テツプB1で開始される。そこで前の項目及び次
の項目へのポインタが決定され、次いでステツプ
Aで消去された項目がLRUリスト中の最初の項
目であるかどうかがテストされる。もし最初の項
目であれば、処理ステツプB2へ続く。残りのス
テツプは最初1へセツトされたiによつてインデ
ツクスされ、リスト中の最初の項目は次の項目に
よつて置換される。処理はステツプC及びDへ続
く。ステツプCは参照された項目が群iの最後の
項目であるかどうかを決定する。通常は最後の項
目でないから、処理はステツプEへ続く。ここで
次の項目のバツク・ポインタは次の項目自体の値
と置換される。これはリスト中の最初の項目及び
そのポインタが自己参照的でなければならないか
らである。ステツプEの後に、処理はステツプL
へ続く。ステツプLは2つの目的を有する。第1
の目的はLRUリストから参照された項目を除去
し、その項目を最後の項目として最後から2番目
の群へ挿入することである。第2の目的は、(k
+1)番目の群の割当てを1だけ増加することで
ある。
ステツプB,C,E,Lは若干の説明を必要と
する。先ず、キヤツシユは最後の3つの群を除い
て全ての群が空であるように構成される。群(k
+1)は参照されることができる全ての項目を含
む。群(k+2)は消去された項目を保持する。
群(k+3)は決して参照されることのできない
1つの項目を含む。通常、yはリスト中の最初の
項目でないので、ステツプF,G,J,Lがとら
れる。ステツプF,G,H,I,Jはyが或る群
の最後のエレメントである例外的場合を処理す
る。ステツプLは群gからyを除去し、群gへ割
当てられた番号を1だけ減少させ、yを群(k+
2)の最後のエレメントとして配置し、群(k+
2)へ割当てられた項目の数を1だけ増加する。
q個のデータ群の各々のために(ページされた
データ、ページされていないデータなど)第3図
及び第4図に示されたステツプが所定の時間間隔
ですべての参照へ適用される。所与のデータ群に
おいてi=1からpに対応するT(i,H)の値
は、追加的ヒツトを与える。この追加的ヒツト
は、そのデータ群においてT(i,M)の追加的
項目を保持するのに必要な量だけキヤツシユ・サ
イズを増大させるために得られたものである。こ
れらの数値から、キヤツシユ・ヒツトとキヤツシ
ユ・サイズとの間の関係が、予め選択されたp個
のキヤツシユ・サイズとq個のデータ群について
決定されることができる。(p+1)q回以下の計
算で、q個のデータ群に対するシステム・キヤツ
シユの割当てを決定して、システム・キヤツシユ
に対するヒツト数をその時間間隔において最大に
することができる。
【図面の簡単な説明】
第1図はLRUスタツクを同値類へ区分したも
のを表わす記憶装置中の順序リスト及びテーブル
を示し、第2図は第1図におけるLRUスタツク
の記憶装置における自然数項目配列を示し、第3
図は本発明に従つて実行されるキヤツシユへの
READ/WRITE参照の処理を示し、第4図は本
発明に従つて実行されるキヤツシユへのERASE
参照の処理を示し、第5図は先行技術に従うキヤ
ツシユ・マネジヤ動作を示す。

Claims (1)

    【特許請求の範囲】
  1. 1 メモリ参照を管理するため監視プロセスを呼
    出し、同時に実行されている複数の順次的プロセ
    スの間で、LRU法によつて参照可能なメモリ・
    スペースの割当てをダイナミツクに調節する方法
    であつて、(イ)上記複数の順次的プロセスの間でメ
    モリ・スペースを割当てる段階と、(ロ)該メモリ・
    スペース割当段階に従いかつそれと重複して上記
    複数の順次的プロセスの間で上記監視プロセスに
    よつて上記メモリ・スペースを再割当てする段階
    とより成り、更に上記(イ)のメモリ・スペース割当
    段階は上記メモリ・スペースに記載された項目に
    対する参照のトレースを累積する段階と、上記メ
    モリ・スペースを所定のサイズに区画する段階
    と、上記累積されたトレースからヒツト/ミス率
    を上記メモリ・スペースの区画サイズの関数とし
    て探知する段階と、記憶された項目に対する参照
    に対応して、区画されたメモリ・スペース内の項
    目をLRU法により配列するとともに区画間のオ
    ーバフローを調節する段階とを含むメモリ・スペ
    ース割当調節法。
JP56198686A 1981-02-19 1981-12-11 Method of assigning and controlling memory space Granted JPS57138080A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US23580681A 1981-02-19 1981-02-19

Publications (2)

Publication Number Publication Date
JPS57138080A JPS57138080A (en) 1982-08-26
JPS6136668B2 true JPS6136668B2 (ja) 1986-08-19

Family

ID=22886982

Family Applications (1)

Application Number Title Priority Date Filing Date
JP56198686A Granted JPS57138080A (en) 1981-02-19 1981-12-11 Method of assigning and controlling memory space

Country Status (6)

Country Link
EP (1) EP0058846B1 (ja)
JP (1) JPS57138080A (ja)
AU (1) AU544005B2 (ja)
BR (1) BR8200486A (ja)
CA (1) CA1169572A (ja)
DE (1) DE3278772D1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02123269U (ja) * 1989-03-24 1990-10-09
JPH03184572A (ja) * 1989-12-13 1991-08-12 Kawaguchi Giken:Kk ゴルフスイング練習用具

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6048553A (ja) * 1983-08-25 1985-03-16 Fujitsu Ltd ディスクキャッシュの性能評価方式
TW212840B (en) * 1992-04-22 1993-09-11 Ibm Multi-bit vector for page aging
US5761739A (en) * 1993-06-08 1998-06-02 International Business Machines Corporation Methods and systems for creating a storage dump within a coupling facility of a multisystem enviroment
US7013305B2 (en) 2001-10-01 2006-03-14 International Business Machines Corporation Managing the state of coupling facility structures, detecting by one or more systems coupled to the coupling facility, the suspended state of the duplexed command, detecting being independent of message exchange

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02123269U (ja) * 1989-03-24 1990-10-09
JPH03184572A (ja) * 1989-12-13 1991-08-12 Kawaguchi Giken:Kk ゴルフスイング練習用具

Also Published As

Publication number Publication date
EP0058846A2 (en) 1982-09-01
AU7942182A (en) 1982-08-26
CA1169572A (en) 1984-06-19
DE3278772D1 (en) 1988-08-18
BR8200486A (pt) 1982-11-30
AU544005B2 (en) 1985-05-16
JPS57138080A (en) 1982-08-26
EP0058846A3 (en) 1986-03-19
EP0058846B1 (en) 1988-07-13

Similar Documents

Publication Publication Date Title
US4463424A (en) Method for dynamically allocating LRU/MRU managed memory among concurrent sequential processes
US5606688A (en) Method and apparatus for dynamic cache memory allocation via single-reference residency times
US5434992A (en) Method and means for dynamically partitioning cache into a global and data type subcache hierarchy from a real time reference trace
US10922235B2 (en) Method and system for address table eviction management
US6574720B1 (en) System for maintaining a buffer pool
US5717893A (en) Method for managing a cache hierarchy having a least recently used (LRU) global cache and a plurality of LRU destaging local caches containing counterpart datatype partitions
US5513336A (en) System and method for determining when and what position in cache memory to store data elements utilizing least and last accessed data replacement method
US5734861A (en) Log-structured disk array with garbage collection regrouping of tracks to preserve seek affinity
US6941432B2 (en) Caching of objects in disk-based databases
US5551003A (en) System for managing log structured array (LSA) of DASDS by managing segment space availability and reclaiming regions of segments using garbage collection procedure
US9529724B2 (en) Layered architecture for hybrid controller
JPH05225066A (ja) 優先順位付けキャッシュ管理方法
US6738865B1 (en) Method, system, and program for demoting data from cache based on least recently accessed and least frequently accessed data
US6112285A (en) Method, system and computer program product for virtual memory support for managing translation look aside buffers with multiple page size support
US6490666B1 (en) Buffering data in a hierarchical data storage environment
US6385699B1 (en) Managing an object store based on object replacement penalties and reference probabilities
US7558919B1 (en) Dynamic cache partitioning
US7107400B2 (en) System, apparatus, and process for evaluating projected cache sizes
US6842826B1 (en) Method and apparatus for providing efficient management of least recently used (LRU) algorithm insertion points corresponding to defined times-in-cache
JPS60140446A (ja) 記憶階層制御方式
US5600596A (en) Data access scheme with simplified fast data writing
US20160011787A1 (en) Storage device and method, and storage medium
JPS6136668B2 (ja)
EP0391871A2 (en) Method for managing a prioritized cache
EP0665499A2 (en) Hierarchic data storage system