JP2675967B2 - キヤツシユの動的分割方法及びその手段 - Google Patents

キヤツシユの動的分割方法及びその手段

Info

Publication number
JP2675967B2
JP2675967B2 JP5201794A JP20179493A JP2675967B2 JP 2675967 B2 JP2675967 B2 JP 2675967B2 JP 5201794 A JP5201794 A JP 5201794A JP 20179493 A JP20179493 A JP 20179493A JP 2675967 B2 JP2675967 B2 JP 2675967B2
Authority
JP
Japan
Prior art keywords
cache
sub
global
data
size
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 - Fee Related
Application number
JP5201794A
Other languages
English (en)
Other versions
JPH06161898A (ja
Inventor
リチヤード・ルイス・マツトソン
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 JPH06161898A publication Critical patent/JPH06161898A/ja
Application granted granted Critical
Publication of JP2675967B2 publication Critical patent/JP2675967B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • 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
    • 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/312In storage controller

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はキヤツシユの動的分割方
法及びその手段について、特にグローバルサブキヤツシ
ユ及び単一データ形式でなる複数のサブキヤツシユから
形成されたLRU(最も長い間アクセスされていない)
方式の階層構造のキヤツシユについて、階層構造のキヤ
ツシユに対してなされた参照の実時間トレースのヒツト
率及びミスヒツト率からサブキヤツシユの区画サイズを
動的に確認して所期の性能を反映するようにサブキヤツ
シユの区画サイズを調整する際に適用して好適なもので
ある。
【0002】
【従来の技術】従来の技術においては、異なるデータ形
式を異なるキヤツシユに分けてこれらのキヤツシユを個
別に管理する方が良いときがあることが知られている。
従つて命令キヤツシユはプロセツサ内のデータキヤツシ
ユ及びデータベースシステム内の幾つかの異なるバツフ
アすなわちバツフアプールから分離される。バツフアプ
ールのサイズはそれぞれ異なり、異なるデータ形式を保
持する。分離されたキヤツシユの数、各キヤツシユのサ
イズ及び各キヤツシユに入るデータ形式はシステムを初
期化するときに一度静的に選択されていた。これらのパ
ラメータを決定する際に影響を及ぼす要因が変化する
と、システムは新しいパラメータで再始動しなければな
らない。
【0003】本発明において「ヒツト率」とは、任意の
期間トレースしたときの参照の合計数に対する、階層構
造のキヤツシユに対しての参照が成功した数の割合であ
る。同様に、「ミスヒツト率」とは任意の期間トレース
したときの参照の合計数に対する、階層構造のキヤツシ
に対しての参照が失敗した数の割合である。
【0004】読出しの参照及び書込みの参照を実時間で
トレースするように、並行して実行される順次処理の間
で共用されるLRU−参照可能キヤツシユの一部を動的
に調整することができることが1984年7月31日に付与さ
れた米国特許第 4,463,424号から判つた。このようなシ
ステムにおいては、監視プロセスを呼び出すことにより
キヤツシユの参照を管理した。米国特許第 4,463,424号
の方法は、並行処理の間での最適な区画空間の割振りを
決定するステツプと、この実際の区画空間を並行処理の
間で再度割り振るステツプとを含む。
【0005】米国特許第 4,463,424号においては、空間
の最適な割振りを決定するステツプは、LRUキヤツシ
ユに格納された項目に対する連続的な参照のトレースを
累計するステツプと、予め決められたキヤツシユサイズ
の範囲で空間を分割するステツプと、LRUキヤツシユ
の区画サイズの関数として、この累計されたトレースか
らヒツト率及びミスヒツト率を確認するステツプと、各
トレースの参照に応答して、分割された空間に項目をL
RU法で順序付けて分割された空間でのあふれを調整す
るステツプとを含む。最後に米国特許第 4,463,424号の
方法は監視プロセスによる判定ステツプに従つて、並行
処理の間で分割された空間を再度割り振り、監視プロセ
スによる判定プロセスと重複した関係で並行処理の間で
分割された空間を再度割り振る。米国特許第 4,463,424
号は各プロセスごとにLRUリスト及び使用し得るキヤ
ツシユ空間のリストを分けて提供する。
【0006】1990年5月20日出願、米国特許出願第07/7
03,309号「キヤツシユメモリを管理するための分割され
たキヤツシユ」は、複数のデータ形式に関して定義され
た参照されたオブジエクト(すなわちトラツク、ブロツ
ク、レコード、ページ等)の間でグローバルLRUキヤ
ツシユからローカルLRUキヤツシユにデステージする
ときに動作する。すなわち各オブジエクトは1セツトの
データ形式のうちの1つに従つて分類される。キヤツシ
ユそれ自身は、通常ランダム・アクセス・メモリ(RA
M)から形成されかつ外部記憶装置と1つ又は2つ以上
のアクセシングCPUの内部メモリ部との間のデータの
ための経路に配置された単一の物理構造である。しかし
ながらこの物理キヤツシユは論理的に分割されて、LR
Uグローバルキヤツシユ及び複数のLRUデステージン
グローカルキヤツシユを形成する。重要なことは、グロ
ーバルキヤツシユはすべての形式のオブジエクトを格納
し、これらのオブジエクトをLRU法で順序付けるが、
各ローカルキヤツシユは固有のデータ形式を有するオブ
ジエクトに制限される。
【0007】参照はすべてグローバルキヤツシユに対し
てなされ、データはローカルキヤツシユのうちの1つ又
は外部記憶装置のいずれかからグローバルキヤツシユに
ステージされる。グローバルキヤツシユが一杯になる
と、最も最近アクセスされた(MRU)データ要素をグ
ローバルキヤツシユの最上部に配置し、これにより形式
T(i)のLRUデータ要素は形式T(i)のデータを
格納するローカルキヤツシユにデステージされる。同様
にローカルキヤツシユが一杯になると、ローカルキヤツ
シユはそのLRUデータ要素を外部記憶装置にデステー
ジする。
【0008】米国特許出願第07/703,309号は一定の総記
憶容量を有する階層構造のキヤツシユについて説明して
いる。この階層構造のキヤツシユはグローバルサブキヤ
ツシユ及びローカルサブキヤツシユの間で分割される。
この分割を定義するパラメータはこの特許に開示された
方法及び手段に関係無く与えられる。さらに米国特許出
願第07/703,309号は方法及び手段を説明し、これらの方
法及び手段によつてグローバルサブキヤツシユ及びロー
カルサブキヤツシユ間での分割を調整したり再調整す
る。重要なことは、米国特許出願第07/703,309号はパラ
メータを確認せずしかもグローバルサブキヤツシユ及び
ローカルサブキヤツシユ間でのサイズの最適な割振りを
自動的に実施しない。
【0009】
【発明が解決しようとする課題】本発明の目的は分割し
得るキヤツシユ内の空間を参照の実時間トレースから動
的に割り振る方法及び手段を提案することである。
【0010】また本発明の目的はCPU及び外部記憶装
置サブシステム間のデータのための経路に配置された分
割可能キヤツシユにおいて動作し得る方法及び手段を提
案することである。
【0011】また本発明の目的は米国特許出願第07/70
3,309号に説明されている形式の分割可能キヤツシユで
実行し得る方法及び手段を提案することである。すなわ
ち分割可能キヤツシユは異なる形式のデータを格納する
グローバルキヤツシユ及び対応する単一形式のデータを
格納する複数のローカルキヤツシユ又は単一のキヤツシ
ユでなるLRU階層によつて形成される。データはそれ
ぞれのキヤツシユが一杯になるごとにグローバルキヤツ
シユからローカルキヤツシユ、ローカルキヤツシユから
外部記憶装置へとLRU法でデステージすることができ
る。
【0012】本発明のさらに他の目的はCPUの計算及
び記憶装置の資源の双方を最小限にするように動作する
このような方法及び手段を提案する。
【0013】
【課題を解決するための手段】かかる課題を解決するた
めに本発明においては、ホスト・プロセッサと外部記憶
サブシステムと階層構造のキヤツシユ及びキヤツシユ・
マネージャを備えるキヤツシユ・マネージメント・シス
テムとを有し、上記階層構造のキヤツシユは上記プロセ
ツサを上記外部記憶サブシステムに結合するデータ経路
に配置され、上記階層構造のキヤツシユはグローバル・
サブキヤツシユ及び少なくとも1つのローカル・サブキ
ヤツシユを含み、上記階層構造のキヤツシユは複数のデ
ータ形式に関して定義された参照されたオブジエクト間
で上記グローバル・サブキヤツシユから上記ローカルサ
ブキヤツシユに、上記ローカル・サブキヤツシユから上
記外部記憶サブシステムにデステージするように作動
し、上記階層構造のキヤツシユは上記グローバル・サブ
キヤツシユ及びデステージしている上記ローカルサブキ
ヤツシユ間の記憶空間に関して分割され、各ローカルサ
ブキヤツシユは同じデータ形式を有するオブジエクトに
限定され、「ヒツト」は参照要求と上記サブキヤツシユ
内のオブジエクトの位置との比較整合として表され、
「ミスヒツト」は上記サブキヤツシユ内にオブジエクト
がないことを表わしているデータ処理システムにおい
て、参照の実時間トレースの関数として最も長い間アク
セスされていない順序で配列する(LRU)方式で順序
付けられた上記階層構造のキヤツシユ を動的に分割する
方法において、(A)上記キヤツシユ・マネージメント
・システムを使用して再帰的に対応するサブキヤツシユ
に記憶された参照リストのLRUリストを作成して保持
するステップと、(B)再帰的に、上記キヤツシユ・マ
ネージメント・システムを使用して、上記参照の実時間
トレース及び上記LRUリストから得られた区画割振り
データのマルチプレナ・アレイを作成して保持し、上記
マルチプレナ・アレイの各平面は少なくとも整数次元の
グローバル・サブキヤツシユのサイズ、ローカル・サブ
キヤツシユのサイズ及びデータ形式を有するようにする
ステツプと、(C)上記キヤツシユ・マネジメント・シ
ステムを使用して、上記参照の実時間トレースにおける
予め決められたサイクル数の後に、上記マルチプレナア
レイに対して作動する決定的動的プログラムに従つて上
記グローバルサブキヤツシユの区画サイズ及び上記ロー
カルサブキヤツシユの区画サイズを最適に変更するステ
ツプとを含むようにする。
【0014】また本発明においては、中央処理装置(C
PU)で実行するアプリケーシヨンが監視プロセスを呼
び出すことによりグローバル・サブキヤツシユ及びロー
カル・サブキヤツシユの参照を管理し、k個の異なるデ
ータ形式を有するオブジエクトを格納する上記グローバ
ル・サブキヤツシユとそれぞれが単一データ形式のオブ
ジエクトを格納するk個の上記ローカル・サブキヤツシ
ユとの間で分割される、最も長い間アクセスされていな
い順序で配列した(LRU)メモリ空間の一部を、動的
に調整するために上記CPUを実行する方法において、
(A)(1)分割されたサブキヤツシユに配置された上
記オブジエクトのLRUリストを上記監視プロセスを使
用して再帰的に作成して保持するステツプと、(2)上
記参照のトレース及び上記LRUリストから得られた区
画の割振りデータでなるマルチプレナ・アレイを再帰的
に作成して保持し、上記マルチプレナ・アレイの各平面
は少なくとも整数次元のグローバル・サブキヤツシユの
サイズ、ローカル・サブキヤツシユのサイズ及びデータ
形式を有するようにしたステツプと、(3)上記マルチ
プレナ・アレイに対して作動する決定的動的プログラム
に従つて上記参照の トレースにおける予め決められた参
照数を処理した後に、上記グローバル・サブキヤツシユ
の区画サイズ及び上記ローカル・サブキヤツシユの区画
サイズを上記監視プロセスを使用して最適に変更するス
テツプとにより、上記グローバル・サブキヤツシユ及び
上記ローカル・サブキヤツシユの中に格納されたオブジ
エクトに対する参照のトレースに応答して、上記グロー
バル・サブキヤツシユ及び上記ローカル・サブキヤツシ
ユ間での空間の最適な割振りを上記監視プロセスを使用
して決定するステツプと、(B)上記参照のトレースの
各参照に応答し上記監視プロセスを使用して、上記グロ
ーバル・サブキヤツシユの上記オブジエクトをLRU方
式で順序付けて上記グローバル・サブキヤツシユから上
記ローカル・サブキヤツシユへの追い出しによるあふれ
を調整することにより、上記グローバル・サブキヤツシ
ユ及び上記ローカル・サブキヤツシユ間で参照されたオ
ブジエクトを上記グローバル・サブキヤツシユの最も最
近アクセスされた(MRU)位置に配置し、サブキヤツ
シユが一杯のときには上記グローバル・サブキヤツシユ
のLRUオブジエクトを同じデータ形式を有する上記ロ
ーカル・サブキヤツシユにデステージするステツプと、
(C)異なる長さの要求トレースについて上記監視プロ
セスを使用してステツプ(A)及びステツプ(B)を反
復するステツプとを含むようにする。
【0015】さらに本発明においては、プロセツサと外
部記憶装置と上記プロセツサ及び上記外部記憶装置間の
データのための経路を確立するためのデータ経路確立手
段とを有するシステムにおいて、上記データ経路確立手
段はキヤツシユ及び最も長い間アクセスされていない順
序で配列した(LRU)順序で上記キヤツシユの参照さ
れたオブジエクトを保持するキヤツシユ・マネジヤを含
キヤツシユ・マネージメント・システムを有し、上記
キヤツシユは、k個の異なるデータ形式についてLRU
リストの順序で、参照されたオブジエクトを格納する1
つのグローバル・サブキヤツシユと、上記k個の異なる
データ形式のうちの単一のデータ形式についてLRUリ
ストの順序で参照されたオブジエクトを格納するk個の
ローカル・サブキヤツシユとに分割され、上記グローバ
ル・サブキヤツシユ及び上記ローカル・サブキヤツシユ
は上記グローバル・サブキヤツシユから上記ローカル・
サブキヤツシユにデステージするように動作するための
階層を形成することにより、現在要求されているオブジ
エクトを上記グローバル・サブキヤツシユ内に最も最近
アクセスされた(MRU)順序で挿入し、キヤツシユが
一杯のとき、上記グローバル・サブキヤツシユのLRU
オブジエクトを同じデータ形式を有する上記ローカル・
サブキヤツシユにデステージすることによつてあふれを
管理し、上記データ経路確立手段は、rが使用し得るグ
ローバル・サブキヤツシユの異なるサイズの数を表わし
cが所与のデータ形式についての使用し得るローカル・
サブキヤツシユの異なるサイズの数を表すときにr行×
c列のマトリクスを形成するように素なカウンタのセッ
トのそれぞれに配列され、これによつてk個の各データ
形式についてカウンタ値から構成される2つのマトリク
スを定義し、第1のマトリクスは最小カウント値を記録
し、第2のマトリクスは最大カウント値を記録するよう
に、2×k個の互いに素なセツトのカウンタのそれぞれ
に配列された複数のカウンタを有し、上記マネージメン
ト・システムは、参照の実時間トレースに応答して、上
記オブジエクトのLRUリスト及び上記LRUリストの
サブセットの逆に記憶された順番を表す関連したデ−タ
構造であって、それぞれ上記サブキヤシユに対応してい
る上記リスト及びデータ構造を再帰的に作成し保持する
手段と、上記参照の実時間トレースと上記カウンタ・マ
トリクスの上記LRUリスト及びデータ構造から得られ
た区画割振りデータのマルチプレナ・アレイを再帰的に
作成し保持する手段と、上記参照の実時間トレースにお
ける予め決められた数の参照を処理した後に、上記マル
チプレナ・アレイに対して動作する決定的動的プログラ
ムに従つて上記グローバル・サブキヤツシユの区画サイ
ズ及び上記ローカル・サブキヤツシユの区画サイズを最
適に変更する手段とを含むようにする。
【0016】
【作用】上述の目的は以下のような方法及び手段によつ
て達成できる。すなわち(A)参照したオブジエクトの
キヤツシユのLRUリストを作成して保持し、(B)サ
ブキヤツシユの区画サイズの範囲に動的に接近していく
マルチプレナアレイのデータ構造を作成して保持し、
(C)一群のサブキヤツシユについてヒユーリステイツ
ク法を用いて1つ又は2つ以上の区画の割振りを最適化
する。このアレイはグローバルキヤツシユ及び各データ
形式サブキヤツシユの最小サイズ及び最大サイズにほぼ
近いキヤツシユサイズの等級が付けられたインデツクス
に従つて参照の実時間トレースについてのヒツト及びミ
スヒツトをカウントすることで形成される。各ヒツトは
LRUリスト内の最も最近アクセスされた(MRU)位
置から測定したときのLRUリストにおける参照の大体
の位置を表し、これが大体のキヤツシユサイズを表す。
【0017】さらに詳細に説明すると、本発明の方法及
び手段は、(A)分割されたキヤツシユのうちの1つに
記憶されて参照されたオブジエクトについてのLRUリ
ストを再帰的に作成して保持するステツプと、(B)参
照の実時間トレース及びLRUリストから得られた、キ
ヤツシユの区画割振りデータでなるマルチプレナアレイ
を作成して保持するステツプと、(C)現在の参照トレ
ースにおける予め決められたサイクル数の後に、マルチ
プレナアレイに対して作動する決定的動的プログラムに
従つてグローバルキヤツシユの区画サイズ及びローカル
キヤツシユの区画サイズを最適に変更するステツプとを
含む。マルチプレナアレイ内の各平面は少なくとも整数
次元のグローバルキヤツシユサイズ、ローカルキヤツシ
ユサイズ及びデータ形式を有する。
【0018】本発明の方法及び手段において、データ形
式によつて索引を付されたアレイの所与の平面について
各アレイ要素は、所与の要素に隣接する左側のアレイ要
素及び上部アレイ要素と関連するキヤツシユの区画サイ
ズについてグローバルキヤツシユの区画サイズを第1の
増分だけ増加させるか又はローカルキヤツシユの区画サ
イズを他の増分だけ増加させるかのいずれかの場合に得
られる付加的なヒットを表す。
【0019】上記において重要なことは、ステツプ
(B)はカウンタの使用とデータ構造(アレイ)の作成
及び保持とを含む。これは、キヤツシユ又はサブキヤツ
シユがキヤツシユ参照のときに順序正しくなつていてヒ
ツトになるようなサイズを決定する際に主に有用であ
る。一方、キヤツシユサイズの正確な値を得るには計算
が増大するが、上限値及び下限値すなわち最大値(MA
X)及び最小値(MIN)間にキヤツシユサイズを制限
することは容易である。すなわち真値はMAX及びMI
N間に定義された範囲に存在する。
【0020】本発明の一実施例において、これらの値は
キヤツシユヒツトをカウントする各データ形式キヤツシ
ユのキヤツシユごとに2対のカウンタを使用することに
よつて決定される。1つのカウンタ対は最小のキヤツシ
ユサイズについての行及び列のエントリを定義し、他の
カウンタ対は最大のキヤツシユサイズについての行及び
列のエントリを定義する。これに関連して各アレイのデ
イメンシヨンはそれぞれグローバルサブキヤツシユ及び
単一データ形式のサブキヤツシユについての増加する離
散的なキヤツシユサイズ値(すなわち0、1、2、4、
8、16……)に従つて索引を付される。このサイズ値は
LRUリスト及び「事前カウントベクトル」すなわちP
CVと呼ばれる他のデータ構造で使用される「グルー
プ」番号と同じ空間に広がる。
【0021】カウンタ及びこれに関連する構造でなるこ
のアレイは2つの事象を同時に追跡する。これらの事象
は、(1)グローバルキヤツシユが示すべきサイズの範
囲。これは、グローバルキヤツシユに定義されたデータ
形式でなる、異なる種類でランダムに順序付けられた参
照ストリングに対して所与の参照が「ヒツト」であるこ
とを保証する。(2)単一データ形式のキヤツシユが示
すべきサイズの範囲(最小及び最大)。これは、所与の
単一データ形式に応答するキヤツシユに定義されたデー
タ形式でなる、異なる種類でランダムに順序付けられた
参照ストリングに対して適正なデータ形式でなる所与の
参照が「ヒツト」であることを保証する。
【0022】これは、アレイを使用することによつて解
決される。ここで所与のアレイの「ヒツト」カウントは
行インデツクスとしてのグローバルキヤツシユのサイズ
及びそれに対応する列インデツクスとしての単一データ
形式サブキヤツシユのサイズを表す。
【0023】最後に上述したステツプ(C)は、アレイ
のデータで動作する決定的動的プログラムの使用を含
み、これによつて区画サイズを割り振る。種々の区画サ
イズの割振りについてヒツト率を最適化するには網羅的
な列挙表を作成することで実現される。しかしながら網
羅的な列挙表は組合わせによつて表が拡大していくの
で、最速及び最大のプロセツサの資源を枯渇させる。こ
の点に関して、動的なプログラミングは列挙表よりも計
算が増大することのない適正な手順であることが判つ
た。すなわち、離散形式又は継続的形式の複数ステツプ
再帰的最適化問題としてサブキヤツシユ間での適正な区
画サイズの提供及び適合を解決することができることを
このステツプは考慮しているということである。
【0024】さらに詳細に説明すると、決定的動的プロ
グラミングは、連続値をもつドメインに存在するセツト
と対立するものとしての離散値のパラメータセツトにつ
いてn−ステツプの動的プロセスに対する再帰的最適解
決法を見つけることを含む。(n−1)のステツププロ
セスでなる最適解決法は第1のステツプの最適な結果か
ら開始する。
【0025】動的プログラミングについては、例えばプ
リンストン大学出版局「適用された動的プログラミン
グ」著作権1962年及びマグロウヒル社「オペレーシヨン
ズリサーチ入門」 393頁〜433 頁、著作権1967年、1990
年に述べられている。
【0026】以下に本発明の方法及び手段のプログラム
的な概要について述べる。
【0027】本発明の方法及び手段はプログラム的に以
下のステツプを含むものとして表すことができる。
【0028】(1)分類について事前指定法を用いて記
憶データをk個のカテゴリ(データ形式)に分類するス
テツプ。
【0029】(2)キヤツシユをグローバルサブキヤツ
シユ及びk個の他のサブキヤツシユに分割してk個の異
なるデータ形式を保持し、キヤツシユ空間をサブキヤツ
シユに割り振るステツプ。
【0030】(3)2×k個の互いに素な集合に含まれ
るすべてのカウンタをゼロに初期化し、カウンタのうち
のk個の集合を初期化して最小カウントを保持し、カウ
ンタの他の集合を初期化して最大カウントを保持するス
テツプ。
【0031】(4)リスト(及び関連するデータ構造)
を初期化して「最も長い間アクセスされていない順序で
配列した」(LRU)キヤツシユ要求を保持するステツ
プ。このLRU順序において最も最近アクセスされた要
求はLRUリストの最上部にあり、最も長い間アクセス
されていない要求はLRUリストの最下部にある。
【0032】(5)キヤツシユに対する一連のN個の要
求の各要求に応答して、 (5−A)分割されたキヤツシユに対するヒツト及びミ
スヒツトが記録され、必要であればサブキヤツシユの内
容を変更して、要求された項目をグローバルサブキヤツ
シユに取り出し、適当なサブキヤツシユから最も長い間
アクセスされていない項目を除去することによつて最も
最近アクセスされた項目を含むようにするステツプ。
【0033】(5−B)現在要求されている項目のデー
タ形式及びLRUリスト(及び関連するデータ構造)の
現在の状態を用いることにより、最小カウントを格納す
るために使用されるk個の互いに素なセツトのカウンタ
のうちの1つのカウンタに含まれるサブセツトのカウン
タの各カウンタに値「1」を付加し、最大カウントを格
納するために使用されるk個の互いに素なセツトのカウ
ンタのうちの1つのカウンタに含まれるサブセツトのカ
ウンタの各カウンタに値「1」を付加するステツプ。
【0034】(5−C)LRUリスト及びこれに関連す
るデータ構造を更新することにより現在のキヤツシユ要
求を反映するステツプ。
【0035】(6)キヤツシユに対するN個の要求の結
果において、 (6−A)2×k個の互いに素なミスヒツト値の集合を
形成するステツプ。各ミスヒツト値は2×k個の互いに
素なセツトのカウンタから得られるデータに基づいてい
る。
【0036】(6−B)2×k個の互いに素なミスヒツ
ト値の集合を用いて、キヤツシユ空間へのサブキヤツシ
ユの割振りを決定するステツプ。これはN個の以前の要
求についてのキヤツシユに対するミスヒツト数を最小に
する傾向がある。
【0037】(6−C)ステツプ(6−B)で得た値に
従つて、分割されたキヤツシユ内でキヤツシユ空間をサ
ブキヤツシユに割り振るステツプ。
【0038】(6−D)2×k個の互いに素なセツトの
カウンタのキヤツシユミスヒツトカウンタをゼロにセツ
トするステツプ。
【0039】(7)できる限り異なるN値で上述のステ
ツプ(5)及び(6)を反復するステツプ。
【0040】注意すべきは、上述のステツプ(6−B)
は決定的動的プログラムの呼出しのポイントになる。こ
の特定の例については好適な実施例で説明する。
【0041】本発明の大要とプログラム的な概要との関
係は、ステツプ(A)に対してステツプ(1)〜
(3)、ステツプ(B)に対してステツプ(4)〜
(5)、ステツプ(C)に対してステツプ(6)〜
(7)である。
【0042】
【実施例】以下図面について、本発明の一実施例を詳述
する。
【0043】図1はプロセツサ、その内部メモリ及び外
部記憶装置間の論理的関係を示す。この点に関して、プ
ロセツサ1は内部メモリ2を含む経路を介して直接アク
セス記憶装置(DASD)の外部記憶サブシステム6と
通信する。メインメモリ3及び拡張メモリ5のような内
部メモリの各要素はランダムアクセスメモリである。メ
インメモリ3はバイト単位でアドレスでき、拡張メモリ
5はページ単位でアドレスできる。
【0044】サブシステム6のDASD11、13、1
5及び17に格納されたデータのための経路は内部メモ
リ2及び内部メモリ2と同じような機能をもつコントロ
ーラすなわちDASDコントローラ7又は9から確立さ
れる。重要なことは、異なるレベルに配置されたキヤツ
シユが場所的な性能を向上させることができることは周
知であるということである。すわなちメインメモリ3及
び拡張メモリ5のキヤツシユ23及び25だけでなくコ
ントローラ7及び9内のDASDすなわちデイスクキヤ
ツシユ19及び21もこれらのキヤツシユに作成された
オブジエクト又はDASDからステージされたオブジエ
クトをLRU法で順序付けして保存する。キヤツシユに
おいて利用できるオブジエクトがアクセス時間を低減す
る。LRU法での順序付けは参照の位置の原則に依存
し、当該明細書において詳細に説明する。
【0045】(カウンテイングアレイ及びデータ構造の
特徴) これは、アレイを使用することによつて解決される。こ
こで所与のアレイの「ヒツト」カウントは行インデツク
スとしてのグローバルキヤツシユのサイズ及びその対応
する列インデツクスとしての単一データ形式サブキヤツ
シユのサイズを表す。これに関連してグローバルキヤツ
シユのサイズ及びデータ形式キヤツシユのサイズは以下
のように決定してもよい。
【0046】LRUキヤツシユマネジヤは次表(1)の
ようにLRU法で順序付けられたキヤツシユの内容のリ
ストを保持することを考えてみる。
【0047】
【表1】
【0048】表(1)において、項目Xに対する参照
は、キヤツシユが3以上の単位のキヤツシユサイズであ
るときには「ヒツト」であり、キヤツシユが2以下のサ
イズのときには「ミスヒツト」である。このようにキヤ
ツシユサイズを正確に決定することに関しては1970年発
行、第9巻、第2号、IBMシステムズジヤーナル「記
憶階層の評価技術」に説明されている。
【0049】LRUリストがグローバルキヤツシユ及び
各データ形式キヤツシユについて保持されると仮定す
る。
【0050】
【表2】
【0051】かくしてグローバルキヤツシユ及びデータ
形式キヤツシユの等級別にしたキヤツシユサイズに従つ
て、ヒツトカウントのアレイのデータ構成に次元的に索
引が付され、ヒツトエントリはアレイの行列座標(6、
3)及び(5、1)等でインクリメントされる。すなわ
ち各ヒツトはグローバルキヤツシユのサイズ及びローカ
ルキヤツシユのサイズを考慮する一連のカウンタとな
る。この場合、サイズ「6」以上のグローバルサブキヤ
ツシユはヒットを保証し、サイズ「1」のローカルキヤ
ツシユで十分である。対照的にサイズ「5」のグローバ
ルサブキヤツシユはなおサイズ「1」のローカルサブキ
ヤツシユを認める。本発明の方法及び手段の下ではk×
Gの座標を確認する方法及び手段である。ここでkはデ
ータ形式の数であり、Gはグローバルサブキヤツシユの
サイズの数である。これは、それぞれグローバルキヤツ
シユ及び単一データ形式キヤツシユについて要求された
サイズを正確に反映する。
【0052】大規模なLRUリストを使用することによ
つてキヤツシユのサイズを正確に動的に決定することか
ら生ずる1つの問題は、k個のキヤツシユからなる階層
システムはk* 個のLRUリストを必要とすることであ
る。ここでk=30〜40である。このようなリストをRA
Mに継続的に保持することは内部記憶装置のかなりの部
分を占有することになり、これはアプリケーシヨンの実
行及び他のOSのアクテイビテイに影響を及ぼすことに
なる。これは、各キヤツシユエントリが2度現れること
を意味する。すなわち1度はグローバルLRUリストに
現れ、1度はグローバルLRUリストに対応する単一デ
ータ形式LRUリストに現れることを意味する。
【0053】このように多数のLRUリストを必要とし
ないようにするための1つの解決策はLRUリストに他
の座標を付加することである。すなわち各エントリごと
にデータ形式IDを付加することである。
【0054】データ形式のエントリをもつようにLRU
リストを修正すると次表(3)になる。
【0055】
【表3】
【0056】このLRUリストのエントリはグループ化
される。これは、例えば2の累乗に当たる番号の一定の
サイズのキヤツシユすなわち「20」、「21」、「22」、
「23」等だけに関心があることを意味する。次にこのリ
ストが集められる。
【0057】グローバルエントリをコピーしてその後す
ぐにT1エントリをコピーすることによつて各グローバ
ルサブキヤツシユのサイズ及び各データ形式T1のLR
Uリストを構成することができる。非常に大きなリスト
(極めて多くのエントリがリストされているリスト)の
場合、これはカウント数を考慮したりコピーしたりする
ことが容易にできなくなる。このことは以前に言及され
た事前カウントベクトル構成を使用することにつなが
る。注意することは、グループの各境界又は対応する
ータ形式のエントリにはエントリが存在することであ
る。あるグループ内のT1参照の正確な位置は判らない
が、その上のグループに幾つのT1エントリが存在する
かは判る。従つてデータ形式LRUキヤツシユで順序付
けがなされる。またLRUキヤツシユのあふれを管理す
るときに変更の数を最小限にするためには、各エントリ
はそのグループのデータ形式でなるエントリの数を使用
してもよい。
【0058】(プログラム的ステツプの実施) 本発明の方法におけるステツプ(1) 本発明の方法におけるステツプ(1)は分類について事
前指定法を用いてデータをk個のデータ形式に分類する
必要がある。分割されたキヤツシユに配置されているデ
ータは、あるデイスクボリユームのデータ対他のデイス
クボリユームのデータのように物理的配置が異なるため
に異なる形式に属するか、ある形式のフアイル、テーブ
ル若しくはデータセツト内のデータ対他の形式のフアイ
ル、テーブル若しくはデータセツト内のデータのように
その論理的配置が異なるために異なる形式に属するか、
データの読出し、事前取出し若しくは書込み又はデータ
をインデツクスとして現在使用しているか又はデータを
システムコード若しくはユーザコードによつてアクセス
しているかのようにその現在の使用状態が異なるために
異なる形式に属するか、上述の特定の組合わせのために
異なる形式に属することができる。図3は2つの異なる
形式のデータを示す。ここでデイスク1に存在するデー
タはあるデータ形式に属し、デイスク2及び又はデイス
ク3に存在するデータは他のデータ形式に属する。
【0059】本発明の方法におけるステツプ(2) 本発明の方法におけるステツプ(2)はキヤツシユをグ
ローバルサブキヤツシユ及びk個の他のサブキヤツシユ
に分割してk個の異なるデータ形式を保持し、キヤツシ
ユ空間をサブキヤツシユに割り振る必要がある。サブキ
ヤツシユが物理的に分離されるか又は物理的に一緒にさ
れて論理的に分割されるか否かは重要ではない。好適な
実施例を以下に説明するために、分割されたキヤツシユ
を、アクセス時間及びすべてのサブキヤツシユのコスト
が同じであるようなキヤツシユによつて説明する。それ
にもかかわらず本発明はサブキヤツシユにアクセスする
時間及び又はサブキヤツシユのメモリのコストがサブキ
ヤツシユが異なるごとに違うときにも適用することがで
きる。
【0060】分割されたキヤツシユにおいて、グローバ
ルサブキヤツシユはすべてのデータ形式を受け入れる
が、他のk個の各サブキヤツシユはある形式のデータだ
けを受け入れる。本発明の好適な実施例をデイスクトラ
ツクのキヤツシングと関連させて説明する。好適な実施
例においてデイスクトラツクからのデータは、そのトラ
ツクのレコード数、ページ数又はブロツク数に関係なく
単一のユニツトとして格納されて一緒に管理される。ま
た本発明の技術はブロツクキヤツシング及びレコードキ
ヤツシングと関連させて使用することもできる。
【0061】図3においてサイズ「32」のトラツクでな
るキヤツシユはサイズ「16」のトラツクでなるグローバ
ルサブキヤツシユ、サイズ「8」のトラツクでなるデー
タ形式T1サブキヤツシユ及びサイズ「8」のトラツク
でなるデータ形式T2サブキヤツシユに分割される。
【0062】本発明の方法におけるステツプ(3) 本発明の方法におけるステツプ(3)は2×k個の互い
に素なセツトのカウンタをゼロにセツトする必要があ
る。本発明の好適な実施例は2×k個の互いに素な各セ
ツトのカウンタをr個の行及びc個の列でなるマトリク
スに編成する。ここでrは異なる値を採り得るグローバ
ルサブキヤツシユのサイズの数であり、cは異なる値を
採り得るデータ形式サブキヤツシユのサイズの数であ
る。この手法において、カウンタ値でなる2つのマトリ
クスはk個のデータ形式のそれぞれについて定義され、
一方のマトリクスを用いて最小カウント値を記録し、他
方のマトリクスを用いて最大カウント値を記録する。デ
ータ形式Txの場合、これらのマトリクスをそれぞれT
xCMIN及びTxCMAXと呼び、データ形式Txの
カウント値の行r及び列cをそれぞれTxCMIN
〔r、c〕及びTxCMAX〔r、c〕と呼ぶ。好適な
実施例はすべて同じサイズのマトリクスを有するが、本
発明の方法は異なる値のkについて異なるサイズのマト
リクスを有することができる。
【0063】図4はカウンタ値の4つのマトリクス(8
×8)を示す。すなわち形式T1のデータの最小マトリ
クス及び最大マトリクスと形式T2のデータの最小マト
リクス及び最大マトリクスである。行及び列は使用でき
るサブキヤツシユのサイズを表し、マトリクスの各値は
カウンタの現在値を表す。ステツプ(3)はこれらのカ
ウンタ値をゼロに初期化する。図4はキヤツシユに幾つ
かの要求がなされた後の考え得るカウンタ値を示す。図
4においてすべてのサブキヤツシユについて、使用し得
るサブキヤツシユのサイズはゼロ及び2の累乗に制限さ
れるが、実際サブキヤツシユのサイズはゼロ及び正の整
数に制限することができ、サブキヤツシユのサイズは行
及び列ごとに異なるようにすることができる。サブキヤ
ツシユのサイズは、所与のデータ形式の最大マトリクス
及び最小マトリクスが各行及び各列について同じサブキ
ヤツシユサイズをもつ同じデイメンシヨンからなる限り
あるマトリクスから他のマトリクスまで異なるようにす
ることができる。
【0064】本発明の方法におけるステツプ(4) 本発明の方法におけるステツプ(4)は、リストを初期
化して「最も長い間アクセスされていない順序で配列し
た」(LRU)キヤツシユ要求を保持する必要がある。
ここで最も最近アクセスされた項目はLRUリストの最
上部にあり、最も長い間アクセスされていない項目はL
RUリストの最下部にある。本発明の好適な実施例は図
5に示すようにこのLRUリストを編成する。ここでL
RUリストの行は3つのエントリを含む。すなわち項目
名「IN」(独自のトラツク番号、ページ番号、ブロツ
ク番号又はレコード番号)と、項目のデータ形式「ID
T」と、項目のグループ番号「GN」とである。また図
5には幾つかの事前カウントベクトルが示され、この事
前カウントベクトルは本発明の方法が動作するようにL
RUリストと適正に関連しなければならない。各事前カ
ウントベクトルは4+k個のエントリを含み、その事前
カウントベクトルと関連した行の番号すなわちグループ
番号「GN」と、その対応するグループ番号と関連した
サブキヤツシユのサイズ「SS」と、このサブキヤツシ
ユのサイズと次の一段と小さいサブキヤツシユのサイズ
との間の差、すなわち指定されたグループ番号をもつこ
とができるLRUリスト内の項目の最大数「MNI」
と、指定されたグループ番号をもつLRUリスト内の
在の項目の数「CNI」と、「T1」、「T2」……
「Tk」とである。「T1」、「T2」……「Tk」は
指定されたグループ番号及びデータ形式T1、T2、…
…又はTkの双方をそれぞれもつLRUリスト内の項目
数を表す。図5はLRUリスト及び2つのデータ形式T
1及びT2をもつ、LRUリストに関連した事前カウン
トベクトルのアレイを示す。
【0065】好適な実施例において、初期のLRUリス
トは空であり、事前カウントベクトルにおいては各クル
ープ内の項目数と所与のグループ値及び所与のデータ形
式を有するLRUリスト内のエントリ数はすべてゼロで
ある。図5はキヤツシユに幾つかの要求がなされた後の
LRUリスト及び事前カウントベクトルのアレイを示
す。注意することは、図5において事前カウントベクト
ル内のグループ番号gは事前カウントベクトルアレイの
行の番号に対応し、また事前カウントベクトル内に示す
サブキヤツシユのサイズと同じサイズをもつ図4に示す
マトリクスの行の番号及び又は列の番号にも対応する。
【0066】本発明の方法におけるステツプ(5)の
(A)〜(C) 本発明の方法におけるステツプ(5)の(A)は、一連
の要求をそれぞれ要求した後、分割されたキヤツシユに
対する「ヒツト」又は「ミスヒツト」を記録してサブキ
ヤツシユの内容を更新する必要がある。本発明の好適な
実施例において、2つのカウンタ、ヒット・カウンタ
C及びミス・カウンタMC(最初はゼロにセツトされ
る)を用いてヒツト及びミスヒツトを記録する。キヤツ
シユの「ヒツト」は、要求された一個のデータがキヤツ
シユのうちのどれかのサブキヤツシユに見い出せる場合
にHCの値に「1」を付加することによつて記録され
る。逆に「ミスヒツト」は、要求されたデータがキヤツ
シユのうちのいかなるサブキヤツシユにも見い出せない
場合にMCの値に「1」を付加することによつて記録さ
れる。通常、ヒツトの数及び又はミスヒツトの数は「参
照ストリング」(所定の数の参照)といわれる一連の有
限の参照の間に測定される。その参照によるミスヒット
が低い場合、この参照ストリングに対してキヤツシユは
有効であると言われる。
【0067】図3において、要求された項目がキヤツシ
ユにないとき、要求された項目は図3の底部に示すデイ
スクからキヤツシユすなわちグローバルサブキヤツシユ
の最上レベルに運ばれる。グローバルサブキヤツシユが
一杯のとき、グローバルサブキヤツシユのLRU項目は
グローバルサブキヤツシユからそのデータ形式に基づい
たその適正なサブキヤツシユに論理的に追い出され、こ
れによつてグローバルサブキヤツシユに現在要求された
項目のための場所を空ける。同時に、グローバルサブキ
ヤツシユから追い出された項目を受け入れるために選択
されたサブキヤツシユが一杯であるとき、そのサブキヤ
ツシユのLRU項目がサブキヤツシユから論理的に追い
出されてグローバルサブキヤツシユから追い出された項
目のための場所を空ける。
【0068】さらに、要求されたデータ項目がグローバ
ルサブキヤツシユにあるとき、このデータ項目はキヤツ
シユに対してヒツトであり、サブキヤツシユの内容は変
化しない。要求されたデータ項目がグローバルサブキヤ
ツシユにないが他のサブキヤツシユのうちの1つにある
とき、このデータ項目は依然としてキヤツシユに対して
ヒツトであるが、要求された項目はデータ形式サブキヤ
ツシユからグローバルサブキヤツシユに論理的に移動さ
れる。再度グローバルサブキヤツシユが一杯であると
き、グローバルサブキヤツシユのLRU項目はグローバ
ルサブキヤツシユからそのデータ形式に基づいたその適
正なサブキヤツシユに論理的に追い出され、これによつ
てグローバルサブキヤツシユに、現在要求されている項
目のための場所を空ける。追い出されたデータ項目が要
求された項目と同じデータ形式であるとき、サブキヤツ
シユにはその項目のための場所が存在する。しかしなが
ら要求された項目及び追い出された項目が異なるデータ
形式であるとき、ホールすなわち空の空間が、要求され
た項目のデータ形式でなるサブキヤツシユに残される。
グローバルサブキヤツシユから追い出された項目を受け
取るために選択されたサブキヤツシユが一杯であると
き、サブキヤツシユのLRU項目はこのサブキヤツシユ
から論理的に追い出されてグローバルサブキヤツシユか
らの項目のための場所を空ける。サブキヤツシユのホー
ルをどのようにして満たすか又は満たさないかが分割さ
れたキヤツシユの性能に影響を及ぼすが、本発明の精神
を変更することなく、当業者は多数の異なるホール充填
技術を確実に利用することができる。
【0069】本発明の好適な実施例において、ホールを
充填する方法は現在キヤツシユに存在しない要求された
データ形式をもつ最も最近アクセスされた項目を事前に
取り出すことである。もちろん、サブキヤツシユの内容
を更新する上述の方法は、LRUリスト又は同等のリス
トを各サブキヤツシユごとに保持する必要があり、デー
タ形式サブキヤツシユの場合、LRUリストはサブキヤ
ツシユに適合するエントリよりも一段と多くのエントリ
を含むので事前取出しを適正に行うことができる。
【0070】本発明の方法におけるステツプ(5)の
(B)は、一連の要求をキヤツシユに対してそれぞれ要
求した後、予め決められた2セツトのカウンタから選択
された各カウンタに値「1」を付加する必要がある。本
発明の好適な実施例において、カウンタのセツトは図4
に示すマトリクスと同じように配列される。現在要求さ
れている項目のデータ形式(LRUリストに示すような
データ形式)を用いて、2つのマトリクス(カウンタ値
のセツト)のうちどちらのマトリクスを検査すべきかを
判定する。図4に示すようにこれらのマトリクスのうち
の1つをTxCMINと呼び、他のマトリクスをTxC
MAXと呼ぶ。行r又は列cはTxCMIN〔r、c〕
又はTxCMAX〔r、c〕として表される。TxCM
IN〔r、c〕及びTxCMAX〔r、c〕はどちらの
マトリクスを考慮すべきかに依存する。以下に説明する
アルゴリズム(1)を用いてこれらのカウンタ値を
「1」だけインクリメントする。またアルゴリズム
(1)で使用される「WHILE 」という語はALGOL言
語又はCプログラミング言語で使用されている意味と同
じ意味で使用している。
【0071】アルゴリスム(1)はカウンタ値をインク
リメントする。アルゴリスム(1)を次表(4)に示
す。
【0072】
【表4】
【0073】例えば、データ項目名「26」が要求された
場合、図5に示すLRUリストにアルゴリズム(1)を
適用することにより図6の円で囲んだカウンタ値を
「1」だけインクリメントする。
【0074】本発明の方法におけるステツプ(5)の
(C)は、一連の要求をキヤツシユに対してそれぞれ要
求した後、LRUリスト及びそれに関連したデータ構造
を更新して現在のキヤツシユの要求を反映させる必要が
ある。本発明の好適な実施例において、図5はLRUリ
スト及びそれに関連した事前カウントベクトルを示す。
以下に示すアルゴリズム(2)をこのLRUリスト及び
事前カウントベクトルに適用して更新プロセスを実行す
る。
【0075】アルゴリズム(2)はLRUリスト及びそ
れに関連した事前カウントベクトルを更新する。アルゴ
リズム(2)を次表(5)に示す。
【0076】
【表5】
【0077】例えば、データ項目名「26」が要求された
場合、図5に示すLRUリスト及び事前カウントベクト
ルにアルゴリズム(2)を適用して図7に示すLRUリ
スト及び事前カウントベクトルにする。
【0078】本発明の方法におけるステツプ(6)の
(A)〜(D)。 本発明の方法におけるステツプ(6)の(A)は、キヤ
ツシユに対してN個の要求がなされた後、2×k個の互
いに素なセツトのミスヒツト値を形成する必要がある。
この場合各ミスヒツト値は上述のステツプ(5)の
(B)から得られた1セツトのカウンタ値から決定され
る。本発明の好適な実施例は2×k個の互いに素なセツ
トのミスヒツト値を例えば図8に示すように(2つのデ
ータ形式について)r個の行及びc個の列でなるマトリ
クスに編成する。ここで各マトリクスの行はグローバル
サブキヤツシユのサイズを表し、列は上述のステツプ
(3)及びステツプ(5)の(B)で形成され図4及び
図6に示すカウントマトリクスと同じ値でなるデータ形
式サブキヤツシユのサイズを表す。各ミスヒツトマトリ
クスの値は次式(1)、(2)、(3)及び(4)を用
いることによつて、対応するカウントマトリクスの値か
ら形成される。
【0079】
【数1】
【0080】
【数2】
【0081】
【数3】
【0082】
【数4】
【0083】各データ形式Txについて、TxMMIN
〔r、c〕と呼ばれる最小ミスヒツトマトリクス及びT
xMMAX〔r、c〕と呼ばれる最大ミスヒツトマトリ
クスは式(1)、(2)(3)及び(4)を適用するこ
とによつて、対応するカウントマトリクスTxCMIN
〔r、c〕及びTxCMAX〔r、c〕から形成され
る。図8は式(1)、(2)(3)及び(4)を適用す
ることによつて図6に示すカウントマトリクスから形成
される。図8はミスヒツトマトリクスから形成されたも
のである。
【0084】(1)サイズ「32」の分割されたキヤツシ
ユ(例えば図3に示すようにサイズ「16」のグローバル
サブキヤツシユ、サイズ「8」のデータ形式T1サブキ
ヤツシユ及びサイズ「8」のデータ形式T2サブキヤツ
シユに分割されたキヤツシユ)に対するミスヒツト数
は、図8に示すマトリクスを観察することによつてT1
MMIN〔5、4〕=38及びT2MMIN〔5、4〕=
12であることからミスヒツトの最小数=38+12=50であ
ることを決定することができ、またT1MMAX〔5、
4〕=38及びT2MMAX〔5、4〕=12であることか
らミスヒツトの最大数=38+12=50であることを決定す
ることができる。かくしてミスヒツトの数はちようど50
個であつた。
【0085】(2)サイズ「0」のグローバルサブキヤ
リア、サイズ「16」のデータ形式T1サブキヤリア及び
サイズ「16」のデータ形式T2サブキヤリアに分割され
たサイズ「32」のキヤツシユに対するミスヒツトの数
は、図8に示すマトリクスを観察することによつてT1
MMIN〔0、5〕=38及びT2MMIN〔0、5〕=
12であることからミスヒツトの最小数=38+12=50であ
ることを決定することができ、またT1MMAX〔0、
5〕=44及びT2MMAX〔0、5〕=17であることか
らミスヒツトの最大数=44+17=61であることを決定す
ることができる。かくしてミスヒツトの数は50及び61間
にあつた。
【0086】(3)サイズ「4」のグローバルサブキヤ
リア、サイズ「2」のデータ形式T1サブキヤリア及び
サイズ「1」のデータ形式T2サブキヤリアに分割され
たサイズ「7」のキヤツシユに対するミスヒツトの数
は、図8に示すマトリクスを観察することによつてT1
MMIN〔3、2〕=50及びT2MMIN〔3、1〕=
26であることからミスヒツトの最小数=50+26=76であ
ることを決定することができ、またT1MMAX〔3、
2〕=54及びT2MMAX〔3、1〕=34であることか
らミスヒツトの最大数=54+34=88であることを決定す
ることができる。かくしてミスヒツトの数は76及び88間
にあつた。
【0087】(4)サイズ「0」のグローバルサブキヤ
リア、サイズ「0」のデータ形式T1サブキヤリア及び
サイズ「0」のデータ形式T2サブキヤリアに分割され
たサイズ「0」のキヤツシユに対するミスヒツトの数
は、図8に示すマトリクスを観察することによつてT1
MMIN〔0、0〕=98及びT2MMIN〔0、0〕=
102 であることからミスヒツトの最小数=98+102 =20
0 であることを決定することができ、またT1MMAX
〔0、0〕=98及びT2MMAX〔0、0〕=102 であ
ることからミスヒツトの最大数=98+102 =200 である
ことを決定することができる。かくしてミスヒツトの数
はちようど 200個であつた。
【0088】本発明の方法におけるステツプ(6)の
(B)は、キヤツシユに対してN個の要求がなされた
後、上述のステツプ(6)の(A)で得られたミスヒツ
ト値に基づいて、サブキヤツシユに対するキヤツシユ空
間の割振りを決定する。これは前のN個の要求について
キヤツシユに対するミスヒツトの数を最小化する傾向が
ある。本発明の好適な実施例において、k個のセツトの
近似ミスヒツト値はk個のマトリクス形式で実現され
る。各データ形式Txについて、TxAMM〔r、c〕
と呼びばれる近似ミスヒツトマトリクスはTxMMIN
〔r、c〕及びTxMMAX〔r、c〕の線形的な組み
合わせとして形成され、例えば値TxAMM〔r、c〕
は(0<=A<=1)の場合(A* TxMMIN〔r、
c〕)+((1−A)* TxMMAX〔r、c〕)に等
しい。A=0.25の場合のk個のマトリクスTxAMM
〔r、c〕のセツトを図9に示し、2つのデータ形式T
1及びT2についてのマトリクスTxMMIN及びTx
MMAXを図8に示す。図9はこれらのマトリクスから
形成されたものである。
【0089】(1)サイズ「32」の分割されたキヤツシ
ユに対するミスヒツトの数(例えば図3に示すようにサ
イズ「16」のグローバルサブキヤツシユ、サイズ「8」
のデータ形式T1サブキヤツシユ及びサイズ「8」のデ
ータ形式T2サブキヤツシユに分割されたキヤツシユ)
は、図9に示すマトリクスを観察することによつてT1
AMM〔5、4〕=38.0及びT2AMM〔5、4〕=1
2.0であることからミスヒツトの推定数=38.0+12.0=5
0.0であることを推定することができる。
【0090】(2)サイズ「0」のグローバルサブキヤ
リア、サイズ「16」のデータ形式T1サブキヤリア及び
サイズ「16」のデータ形式T2サブキヤリアに分割され
たサイズ「32」のキヤツシユに対するミスヒツトの数
は、図9に示すマトリクスを観察することによつてT1
AMM〔0、5〕=42.5及びT2AMM〔0、5〕=1
5.8であることからミスヒツトの推定数=42.5+15.8=5
8.3であることを推定することができる。
【0091】(3)サイズ「4」のグローバルサブキヤ
リア、サイズ「2」のデータ形式T1サブキヤリア及び
サイズ「1」のデータ形式T2サブキヤリアに分割され
たサイズ「7」のキヤツシユに対するミスヒツトの数
は、図9に示すマトリクスを観察することによつてT1
AMM〔3、2〕=53.0及びT2AMM〔3、1〕=3
2.0であることからミスヒツトの推定数=50.0+32.0=8
5.0であることを推定することができる。
【0092】(4)サイズ「0」のグローバルサブキヤ
リア、サイズ「0」のデータ形式T1サブキヤリア及び
サイズ「0」のデータ形式T2サブキヤリアに分割され
たサイズ「0」のキヤツシユに対するミスヒツトの数
は、図9に示すマトリクスを観察することによつてT1
MMIN〔0、0〕=98.0及びT2MMIN〔0、0〕
=102 .0であることからミスヒツトの推定数=98.0+10
2.0 =200.0 であることを推定することができる。
【0093】図5に示す事前カウントベクトル(gmaxは
事前カウントベクトルテーブルの最後の行のgの値であ
る)及び図9に示す近似ミスヒツトマトリクスにおい
て、グローバルサブキヤツシユのサイズGS及びサイズ
CSのトラツクでなるキヤツシユに対するミスヒツトの
推定数を最小化するデータ形式サブキヤツシユのサイズ
T1S、T2S、……TkSは以下のアルゴリズム
(3)を適用することによつて見い出すことができる。
アルゴリズム(3)は最適なサブキヤツシユサイズを見
い出し、アルゴリズム(3)を次表(6)に示す。
【0094】
【表6】
【0095】通常、アルゴリズム(3)のステツプ
(2)の(A)はプリンストン大学出版局「適用された
動的プログラミング」著作権1962年及びマグロウヒル社
「オペレーシヨンズリサーチ入門」393 頁〜433 頁、著
作権1967年、1990年に示されるような離散形動的計画法
に共通の手順によつて解決される。しかしながらキヤツ
シユの合計サイズが「8」で図9に示す近似ミスヒツト
マトリクスの場合、アルゴリズム(3)のステツプは図
10に容易に示すことができる。図10のテーブルの上
部において、意味をもつg、r1及びr2の値は左側の
3つの列にリストされる。グローバルサブキヤツシユの
サイズGS、データ形式サブキヤツシユのサイズT1S
及びT2Sの対応する値はその次の3つの列にリストさ
れる。この列ではすべてのサブキヤツシユサイズの合計
が決してキヤツシユサイズ「8」を越えないことが判
る。この例において、例えば(2、1、1)又は(4、
0、2)等の「8」未満の数に付加するGS、T1S及
びT2Sの組み合わせはLRUキヤツシユの置換という
周知の特性(図1参照)のために検査する必要はない。
LRUキヤツシユのこの特性は、例えば(2、2、4)
又は(4、0、4)等の「8」に付加する対応する組み
合わせは常にミスヒツト数以下であることを保証する。
テーブルの左側に示すサブキヤツシユのサイズの各組み
合わせについてのミスヒツトの推定数の計算をこのテー
ブルの右側に示す。
【0096】さらに図10のテーブルの上部において、
gの各値についてミスヒツトの最小の推定数が存在する
(テーブルの右側の矢印で示された数値)。この最小値
及びこの最小値になるときの値r1、r2を順番にV
〔g〕及びS〔g〕対として図10の左下にgの各値ご
とに記録する。これらの値を記録すると、アルゴリズム
(3)のステツプ(2)は完了する。
【0097】図10の左下のV〔g〕の値において、g
=2のときV〔g〕は最小値となるので、S〔2〕が最
小値を生成するr1及びr2の値を与える。(g、r
1、r2)=(2、2、3)に対応する、図10のテー
ブルの上部における行はサブキヤツシユのサイズGS=
2、T1S=2、T2S=4を与える。このサブキヤツ
シユサイズは、キヤツシユに対する最後のN=200 個の
要求について、キヤツシユに対するミスヒツト数を最小
化する傾向がある。かくしてアルゴリズム(3)のステ
ツプ(3)は完了する。
【0098】本発明の方法におけるステツプ(6)の
(C)は、キヤツシユに対してN個の要求がなされた
後、1990年5月20日、米国特許出願第07/703,308号に述
べられているように、キヤツシユ空間は上述のステツプ
(6)の(B)で得られた値に従つてサブキヤツシユに
割り振られる。例えば図4〜図10に示す例について、
図10の右下には指示されたサブキヤツシユサイズに分
割されたキヤツシユが示される。あるセツトのサブキヤ
ツシユサイズから他のセツトのサブキヤツシユサイズに
変更するにはキヤツシユから追い出されるか又はキヤツ
シユから削除されるべき項目を必要とするが、他の項目
はキヤツシユに事前に取り出される(又はホールすなわ
ち自由空間が幾つかのサブキヤツシユに残される)。さ
らに、あるサブキヤツシユに論理的又は物理的に配置さ
れた項目を他のサブキヤツシユに論理的又は物理的に移
動する必要がある。
【0099】しかしながらこのプロセスは完了し、本発
明の好適な実施例において図7に示すLRUリスト及び
事前カウントベクトルは、サブキヤツシユのサイズを変
更したときは変更されず、サブキヤツシユのサイズを変
更(及び項目を周囲に移動)した後の種々のサブキヤツ
シユに存在する項目はLRUリストと一致しなければな
らない。すなわちグローバルキヤツシユのサイズGSが
新しいグローバルサブキヤツシユサイズであり、データ
形式サブキヤツシユのサイズT1S、T2S、……Tk
Sが種々の新しいデータ形式のサブキヤツシユサイズで
あるとき、LRUリストの第1のGS項目はグローバル
サブキヤツシユに存在しなければならない。LRUリス
トはGS項目の後にマークされる。すなわち、このマー
クの下にデータ形式T1をもつ第1のT1S項目はデー
タ形式T1サブキヤツシユに存在しなければならず、マ
ークの下にデータ形式T2をもつ第1のT2S項目がデ
ータ形式T2サブキヤツシユに存在しなければならず、
マークの下にデータ形式Tkをもつ第1のT2k項目が
データ形式Tkサブキヤツシユに存在しなければならな
い。例えば、図7のLRUリスト及び図10の右下の分
割されたキヤツシユを参照すると、項目「26」及び「3
8」はグローバルサブキヤツシユに存在し、マークはL
RUリストの項目「38」の直後に配置される。項目「1
8」及び「46」はデータ形式T1のサブキヤツシユに存
在し、項目「14」、「97」、「32」及び「19」はデータ
形式T2のサブキヤツシユに存在する。これは、これら
の項目がそれぞれデータ形式T1及びT2をもつLRU
リストマークの後の最初の2項目及び最初の4項目であ
るからである。
【0100】本発明の方法におけるステツプ(6)の
(D)は、キヤツシユに対してN個の要求がなされた
後、2×k個の互いに素なセツトのカウンタのキヤツシ
ユミスヒツトカウンタをゼロにセツトする必要がある。
本発明の好適な実施例において、2* k個のマトリクス
の値、T1CMIN、T1CMAX、T2CMIN、T
2CMAX、……TkCMIN及びTkCMAXはすべ
てゼロにセツトされる。
【0101】本発明の方法におけるステツプ(7)は、
できるかぎり異なる値Nでステツプ(5)の(A)〜
(C)及びステツプ(6)の(A)〜(D)を反復する
必要がある。図11は分割されたキヤツシユをもつシス
テムで動作する本発明の流れを示す。本発明の方法にお
けるステツプはこれらのステツプが実施されるシステム
部の近くにセツトされる。ステツプ(1)は分割された
キヤツシユの環境を設定するのに必要である。ステツプ
(2)及びステツプ(6)の(C)はサブキヤツシユの
サイズをセツトする。ステツプ(4)はLRUリスト及
び事前カウントベクトルを初期化する。ステツプ(3)
及びステツプ(6)の(D)は本発明が必要とするカウ
ンタをゼロにセツトする。ステツプ(5)の(A)はキ
ヤツシユの実際の性能を測定する。ステツプ(5)の
(B)及び(C)とステツプ(6)の(B)とは新しい
サブキヤツシユのサイズを決定するために本発明が使用
する。
【0102】本発明の方法及び手段はワークロードが統
計的に様々に変化するシステムに適用することができ
る。例えばシステムが統計的に定常であるワークロード
を有する場合、当該システムを本発明の方法及び手段に
よつて測定されたワークロードのトレースから得られた
サブキヤツシユのサイズで初期化し、始動し及び走らせ
ることができ、このシステムを使用して種々のサブキヤ
ツシユ間でのキヤツシユ空間の最適な割振りを決定す
る。さらに本発明の方法は、キヤツシユに対してユーザ
が発した連続的な短いシーケンスの要求に本発明の方法
を繰り返し適用し、動的に変化するサブキヤツシユサイ
ズのセツトを生成することによつてゆつくりと変化する
ワークロードの統計を有するシステムにも適用すること
ができる。後者の場合、本発明の方法により、分割され
たキヤツシユはワークロードの統計の変化に応答してそ
のサブキヤツシユのサイズを変更することができ、キヤ
ツシユに対するミスヒツトの合計数を最小化しようと試
みる。
【0103】上述の通り本発明をその最適な実施例に基
づいて図示、説明したが、本発明の精神及び範囲から脱
することなく詳細構成について種々の変更を加えてもよ
い。
【0104】
【発明の効果】上述のように本発明によれば、最も長い
間アクセスされていない順序で配列した(LRU)リス
トを再帰的に作成して保持し、このLRUリストから得
られた区画割振りデータでなるマルチプレナアレイを再
帰的に作成して保持し、このマルチプレナアレイに対し
て作動する決定的動的プログラムに従つてグローバルサ
ブキヤツシユの区画サイズ及びローカルサブキヤツシユ
の区画サイズを最適に変更することにより、所期の性能
を反映するように階層構造のキヤツシユの空間を最適に
分割することができる。
【図面の簡単な説明】
【図1】図1はプロセツサ、拡張メモリ、制御システム
及びその種々のバツフア又はキヤツシユメモリを含むデ
イスク記憶システムを示すブロツク図である。
【図2】図2は従来の単一のキヤツシユを示す略線図で
ある。
【図3】図3は2つの異なるデータ形式について1つの
グローバルサブキヤツシユ及び2つのサブキヤツシユに
分割されたキヤツシユを示す略線図である。
【図4】図4は2つのデータ形式について最大カウント
値及び最小カウント値を保持する4つのマトリクスを示
す略線図である。
【図5】図5はLRUリスト及び事前カウントベクトル
の構造を表にして示す略線図である。
【図6】図6はキヤツシユに対してなされた参照要求に
基づいてインクリメントされるカウンタのサブセツトを
表にして示す略線図である。
【図7】図7は現在要求さている項目を計算した後のL
RUリスト及び事前カウントベクトルの構造を表にして
示す略線図である。
【図8】図8はミスヒツト値のセツトの構成を示す略線
図である。
【図9】図9は近似ミスヒツト値のセツトの構成を示す
略線図である。
【図10】図10はサブキヤツシユサイズの最高のセツ
トを決定してキヤツシユに対するミスヒツトを最小化す
るステツプを示す略線図である。
【図11】図11は分割されたキヤツシユサブシステム
における空間のサブキヤツシユへの動的割振りを示す略
線図であり、本発明のステツプが実施されるサブシステ
ム部の近くに本発明のステツプはセツトされる。
【符号の説明】 1……プロセツサ、2……内部メモリ、3……メインメ
モリ、5……拡張メモリ、6……外部記憶サブシステ
ム、7、9……DASDコントローラ、11、13、1
5、17……直接アクセス記憶装置(DSAD)、2
3、25……キヤツシユ。

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】ホスト・プロセッサと外部記憶サブシステ
    ムと階層構造のキヤツシユ及びキヤツシユ・マネージャ
    を備えるキヤツシユ・マネージメント・システムとを有
    し、上記階層構造のキヤツシユは上記プロセツサを上記
    外部記憶サブシステムに結合するデータ経路に配置さ
    れ、上記階層構造のキヤツシユはグローバル・サブキヤ
    ツシユ及び少なくとも1つのローカル・サブキヤツシユ
    を含み、上記階層構造のキヤツシユは複数のデータ形式
    に関して定義された参照されたオブジエクト間で上記グ
    ローバル・サブキヤツシユから上記ローカルサブキヤツ
    シユに、上記ローカル・サブキヤツシユから上記外部記
    憶サブシステムにデステージするように作動し、上記階
    層構造のキヤツシユは上記グローバル・サブキヤツシユ
    及びデステージしている上記ローカルサブキヤツシユ間
    の記憶空間に関して分割され、各ローカルサブキヤツシ
    ユは同じデータ形式を有するオブジエクトに限定され、
    「ヒツト」は参照要求と上記サブキヤツシユ内のオブジ
    エクトの位置との比較整合として表され、「ミスヒツ
    ト」は上記サブキヤツシユ内にオブジエクトがないこと
    を表わしているデータ処理システムにおいて、参照の実
    時間トレースの関数として最も長い間アクセスされてい
    ない順序で配列する(LRU)方式で順序付けられた上
    記階層構造のキヤツシユを動的に分割する方法におい
    て、 (A)上記キヤツシユ・マネージメント・システムを使
    用して再帰的に対応するサブキヤツシユに記憶された参
    照リストのLRUリストを作成して保持するステップ
    と、 (B)再帰的に、上記キヤツシユ・マネージメント・シ
    ステムを使用して、上記参照の実時間トレース及び上記
    LRUリストから得られた区画割振りデータのマルチプ
    レナ・アレイを作成して保持し、上記マルチプレナ・ア
    レイの各平面は少なくとも整数次元のグローバル・サブ
    キヤツシユのサイズ、ローカル・サブキヤツシユのサイ
    ズ及びデータ形式を有するようにするステツプと、 (C)上記キヤツシユ・マネジメント・システムを使用
    して、上記参照の実時 間トレースにおける予め決められ
    たサイクル数の後に、上記マルチプレナアレイに対して
    作動する決定的動的プログラムに従つて上記グローバル
    サブキヤツシユの区画サイズ及び上記ローカルサブキヤ
    ツシユの区画サイズを最適に変更するステツプとを含む
    ことを特徴とする方法。
  2. 【請求項2】上記ステツプ(B)はk個のデータ形式が
    ある場合に、2×k個の互いに素なカウンタのセツトに
    おいて最小カウントを指示するk個のカウンタのセツト
    及び最大カウントを指示するk個のカウンタのセツトを
    含み、 さらに上記参照の実時間トレースの各要求に応答して上
    記グローバル・サブキヤツシユの内容を変更することに
    より、上記要求されたオブジエクトを上記グローバルサ
    ブキヤツシユに取り出すことによつて最も最近参照され
    たすなわちアクセスされた(MRU)オブジエクトを含
    むようにし、上記グローバル・サブキヤツシユが一杯の
    とき、LRUオブジエクトを上記グローバルサブキヤツ
    シユから、デステージされたオブジエクトと同じデータ
    形式を有する上記ローカル・サブキヤツシユにデステー
    ジし、 さらに上記参照の実時間トレースの各要求と上記LRU
    リスト及びアレイとに応答して、最小カウントを指示す
    るk個の互いに素なカウンタのサブセツトのうちの1つ
    のカウンタのセット内に含まれる各カウンタを予め決め
    た量だけインクリメントし、最大カウントを指示するk
    個の互いに素なカウンタのサブセツトのうちの1つのカ
    ウンタのセット内に含まれる各カウンタを予め決めた量
    だけインクリメントして、上記LRUリスト及びアレイ
    を更新することを特徴とする請求項1に記載のキヤツシ
    ユの動的分割方法。
  3. 【請求項3】中央処理装置(CPU)で実行するアプリ
    ケーシヨンが監視プロセスを呼び出すことによりグロー
    バル・サブキヤツシユ及びローカル・サブキヤツシユの
    参照を管理し、k個の異なるデータ形式を有するオブジ
    エクトを格納する上記グローバル・サブキヤツシユとそ
    れぞれが単一データ形式のオブジエクトを格納するk個
    の上記ローカル・サブキヤツシユとの間で分割される、
    最も長い間アクセスさ れていない順序で配列した(LR
    U)メモリ空間の一部を、動的に調整するために上記C
    PUを実行する方法において、 (A) (1)分割されたサブキヤツシユに配置された上記オブ
    ジエクトのLRUリストを上記監視プロセスを使用して
    再帰的に作成して保持するステツプと、 (2)上記参照のトレース及び上記LRUリストから得
    られた区画の割振りデータでなるマルチプレナ・アレイ
    を再帰的に作成して保持し、上記マルチプレナ・アレイ
    の各平面は少なくとも整数次元のグローバル・サブキヤ
    ツシユのサイズ、ローカル・サブキヤツシユのサイズ及
    びデータ形式を有するようにしたステツプと、 (3)上記マルチプレナ・アレイに対して作動する決定
    的動的プログラムに従つて上記参照のトレースにおける
    予め決められた参照数を処理した後に、上記グローバル
    ・サブキヤツシユの区画サイズ及び上記ローカル・サブ
    キヤツシユの区画サイズを上記監視プロセスを使用して
    最適に変更するステツプとにより、上記グローバル・サ
    ブキヤツシユ及び上記ローカル・サブキヤツシユの中に
    格納されたオブジエクトに対する参照のトレースに応答
    して、上記グローバル・サブキヤツシユ及び上記ローカ
    ル・サブキヤツシユ間での空間の最適な割振りを上記監
    視プロセスを使用して決定するステツプと、 (B)上記参照のトレースの各参照に応答し上記監視プ
    ロセスを使用して、上記グローバル・サブキヤツシユの
    上記オブジエクトをLRU方式で順序付けて上記グロー
    バル・サブキヤツシユから上記ローカル・サブキヤツシ
    ユへの追い出しによるあふれを調整することにより、上
    記グローバル・サブキヤツシユ及び上記ローカル・サブ
    キヤツシユ間で参照されたオブジエクトを上記グローバ
    ル・サブキヤツシユの最も最近アクセスされた(MR
    U)位置に配置し、サブキヤツシユが一杯のときには上
    記グローバル・サブキヤツシユのLRUオブジエクトを
    同じデータ形式を有する上記ローカル・サブキヤツシユ
    にデステージするステツプと、 (C)異なる長さの要求トレースについて上記監視プロ
    セスを使用してステツプ(A)及びステツプ(B)を反
    復するステツプとを 含むことを特徴とするキヤツシユの
    動的調整方法。
  4. 【請求項4】上記ステツプ(A)の(3)は、複数のカ
    ウンタを2×k個の互いに素なカウンタのセットに配列
    することにより、上記2×k個の互いに素なカウンタの
    セットの各々のカウンタは使用し得るグローバル・サブ
    キヤツシユの異なるサイズの数がrで所与のデータ形式
    についての使用し得るローカル・サブキヤツシユの異な
    るサイズの数がcのときr行×c列のマトリクスを形成
    し、これによつてk個の各データ形式について最小カウ
    ント値を記録する第1のマトリクスと、最大カウント値
    を記録する第2のマトリクスとから構成される2つのマ
    トリクススを定義することを特徴とする請求項3に記載
    のキヤツシユの動的分割方法。
  5. 【請求項5】上記グローバル・サブキヤツシユの区画サ
    イズ及び上記ローカル・サブキヤツシユの区画サイズを
    最適に変更する方法は、網羅的な列挙表よつて最適な区
    画サイズのセツトを得るステツプを含むことを特徴とす
    る請求項1又は3に記載のキヤツシユの動的分割方法。
  6. 【請求項6】プロセツサと外部記憶装置と上記プロセツ
    サ及び上記外部記憶装置間のデータのための経路を確立
    するためのデータ経路確立手段とを有するシステムにお
    いて、上記データ経路確立手段はキヤツシユ及び最も長
    い間アクセスされていない順序で配列した(LRU)順
    序で上記キヤツシユの参照されたオブジエクトを保持す
    るキヤツシユ・マネジヤを含むキヤツシユ・メネジメン
    ト・システムを有し、上記キヤツシユは、k個の異なる
    データ形式についてLRUリストの順序で、参照された
    オブジエクトを格納する1つのグローバル・サブキヤツ
    シユと、上記k個の異なるデータ形式のうちの単一のデ
    ータ形式についてLRUリストの順序で参照されたオブ
    ジエクトを格納するk個のローカル・サブキヤツシユと
    に分割され、上記グローバル・サブキヤツシユ及び上記
    ローカル・サブキヤツシユは上記グローバル・サブキヤ
    ツシユから上記ローカル・サブキヤツシユにデステージ
    するように動作するための階層を形成することにより、
    現在要求されているオブジエクトを上記グローバル・サ
    ブキヤツシユ内に最も最近アクセスされた(MRU)順
    序で挿入し、 キヤツシユが一杯のとき、上記グローバル・サブキヤツ
    シユのLRUオブジエクトを同じデータ形式を有する上
    記ローカル・サブキヤツシユにデステージすることによ
    つてあふれを管理し、 上記データ経路確立手段は、rが使用し得るグローバル・サブキヤツシユの異なるサ
    イズの数を表わしcが所与のデータ形式についての使用
    し得るローカル・サブキヤツシユの異なるサイズの数を
    表すときにr行×c列のマトリクスを形成するように素
    なカウンタのセットのそれぞれに配列され、これによつ
    てk個の各データ形式についてカウンタ値から構成され
    る2つのマトリクスを定義し、第1のマトリクスは最小
    カウント値を記録し、第2のマトリクスは最大カウント
    値を記録するように、2×k個の互いに素なセツトのカ
    ウンタのそれぞれに配列された複数のカウンタを有し、
    上記マネジメント・システムは、 参照の実時間トレースに応答して、上記オブジエクトの
    LRUリスト及び上記LRUリストのサブセットの逆に
    記憶された順番を表す関連したデ−タ構造であって、そ
    れぞれ上記サブキヤシユに対応している上記リスト及び
    データ構造を再帰的に作成し保持する手段と、 上記参照の実時間トレースと上記カウンタ・マトリクス
    の上記LRUリスト及びデータ構造から得られた区画割
    振りデータのマルチプレナ・アレイを再帰的に作成し保
    持する手段と、 上記参照の実時間トレースにおける予め決められた数の
    参照を処理した後に、上記マルチプレナ・アレイに対し
    て動作する決定的動的プログラムに従つて上記グローバ
    ル・サブキヤツシユの区画サイズ及び上記ローカル・サ
    ブキヤツシユの区画サイズを最適に変更する手段とを含
    む、 ことを特徴とするキヤツシユの動的分割手段。
JP5201794A 1992-09-04 1993-07-22 キヤツシユの動的分割方法及びその手段 Expired - Fee Related JP2675967B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US07/940,560 US5434992A (en) 1992-09-04 1992-09-04 Method and means for dynamically partitioning cache into a global and data type subcache hierarchy from a real time reference trace
US07/940560 1992-09-04
US7/940560 1992-09-04

Publications (2)

Publication Number Publication Date
JPH06161898A JPH06161898A (ja) 1994-06-10
JP2675967B2 true JP2675967B2 (ja) 1997-11-12

Family

ID=25475052

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5201794A Expired - Fee Related JP2675967B2 (ja) 1992-09-04 1993-07-22 キヤツシユの動的分割方法及びその手段

Country Status (2)

Country Link
US (1) US5434992A (ja)
JP (1) JP2675967B2 (ja)

Families Citing this family (110)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05324468A (ja) * 1992-05-21 1993-12-07 Fujitsu Ltd 階層化キャッシュメモリ
US5537635A (en) * 1994-04-04 1996-07-16 International Business Machines Corporation Method and system for assignment of reclaim vectors in a partitioned cache with a virtual minimum partition size
US5604889A (en) * 1994-06-15 1997-02-18 Texas Instruments Incorporated Memory management system for checkpointed logic simulator with increased locality of data
US5581736A (en) * 1994-07-18 1996-12-03 Microsoft Corporation Method and system for dynamically sharing RAM between virtual memory and disk cache
GB2292822A (en) * 1994-08-31 1996-03-06 Hewlett Packard Co Partitioned cache memory
US5606688A (en) * 1994-08-31 1997-02-25 International Business Machines Corporation Method and apparatus for dynamic cache memory allocation via single-reference residency times
US5640532A (en) * 1994-10-14 1997-06-17 Compaq Computer Corporation Microprocessor cache memory way prediction based on the way of previous memory read
US5835948A (en) * 1994-10-14 1998-11-10 Compaq Computer Corporation Single bank, multiple way cache memory
US5630066A (en) * 1994-12-20 1997-05-13 Sun Microsystems, Inc. System and method for locating object view and platform independent object
US5893147A (en) * 1994-12-22 1999-04-06 Intel Corporation Method and apparatus for distinguishing system memory data from alternative memory data in a shared cache memory
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
US5787472A (en) * 1995-07-31 1998-07-28 Ibm Corporation Disk caching system for selectively providing interval caching or segment caching of vided data
US6016535A (en) * 1995-10-11 2000-01-18 Citrix Systems, Inc. Method for dynamically and efficiently caching objects by subdividing cache memory blocks into equally-sized sub-blocks
US6081623A (en) * 1995-10-11 2000-06-27 Citrix Systems, Inc. Method for lossless bandwidth compression of a series of glyphs
GB9521955D0 (en) * 1995-10-26 1996-01-03 Sgs Thomson Microelectronics Cache memory
US6745292B1 (en) * 1995-12-08 2004-06-01 Ncr Corporation Apparatus and method for selectively allocating cache lines in a partitioned cache shared by multiprocessors
GB2311880A (en) * 1996-04-03 1997-10-08 Advanced Risc Mach Ltd Partitioned cache memory
US5822763A (en) * 1996-04-19 1998-10-13 Ibm Corporation Cache coherence protocol for reducing the effects of false sharing in non-bus-based shared-memory multiprocessors
US5787466A (en) * 1996-05-01 1998-07-28 Sun Microsystems, Inc. Multi-tier cache and method for implementing such a system
US5737749A (en) * 1996-05-20 1998-04-07 International Business Machines Corporation Method and system for dynamically sharing cache capacity in a microprocessor
US6057857A (en) 1996-06-12 2000-05-02 Citrix Systems, Inc. Method for the lossless compression of lines in a distributed computer system
WO1997049037A1 (en) * 1996-06-18 1997-12-24 Zitel Corporation Novel cache memory structure and method
US6058460A (en) * 1996-06-28 2000-05-02 Sun Microsystems, Inc. Memory allocation in a multithreaded environment
US6256712B1 (en) 1997-08-01 2001-07-03 International Business Machines Corporation Scaleable method for maintaining and making consistent updates to caches
US6026413A (en) * 1997-08-01 2000-02-15 International Business Machines Corporation Determining how changes to underlying data affect cached objects
EP0919928A3 (en) * 1997-11-26 2000-05-24 Digital Equipment Corporation Memory allocation method and apparatus with an even distribution of cache page addresses within virtual memory regions
US6260114B1 (en) 1997-12-30 2001-07-10 Mcmz Technology Innovations, Llc Computer cache memory windowing
GB9727485D0 (en) * 1997-12-30 1998-02-25 Sgs Thomson Microelectronics Processing a data stream
US6202129B1 (en) * 1998-03-31 2001-03-13 Intel Corporation Shared cache structure for temporal and non-temporal information using indicative bits
US6370619B1 (en) * 1998-06-22 2002-04-09 Oracle Corporation Managing partitioned cache
US6205537B1 (en) 1998-07-16 2001-03-20 University Of Rochester Mechanism for dynamically adapting the complexity of a microprocessor
US6327644B1 (en) 1998-08-18 2001-12-04 International Business Machines Corporation Method and system for managing data in cache
US6141731A (en) * 1998-08-19 2000-10-31 International Business Machines Corporation Method and system for managing data in cache using multiple data structures
US6381677B1 (en) 1998-08-19 2002-04-30 International Business Machines Corporation Method and system for staging data into cache
US6859861B1 (en) * 1999-01-14 2005-02-22 The United States Of America As Represented By The Secretary Of The Army Space division within computer branch memories
US6393525B1 (en) * 1999-05-18 2002-05-21 Intel Corporation Least recently used replacement method with protection
US6341331B1 (en) * 1999-10-01 2002-01-22 International Business Machines Corporation Method and system for managing a raid storage system with cache
US6671766B1 (en) 2000-01-07 2003-12-30 Storage Technology Corporation Method and system for implementing memory efficient track aging
US7013340B1 (en) 2000-05-18 2006-03-14 Microsoft Corporation Postback input handling by server-side control objects
US7127525B2 (en) * 2000-05-26 2006-10-24 Citrix Systems, Inc. Reducing the amount of graphical line data transmitted via a low bandwidth transport protocol mechanism
US7380250B2 (en) 2001-03-16 2008-05-27 Microsoft Corporation Method and system for interacting with devices having different capabilities
US6792509B2 (en) * 2001-04-19 2004-09-14 International Business Machines Corporation Partitioned cache of multiple logical levels with adaptive reconfiguration based on multiple criteria
US7493397B1 (en) 2001-06-06 2009-02-17 Microsoft Corporation Providing remote processing services over a distributed communications network
US6915454B1 (en) 2001-06-12 2005-07-05 Microsoft Corporation Web controls validation
US7594001B1 (en) * 2001-07-06 2009-09-22 Microsoft Corporation Partial page output caching
JP2003131946A (ja) * 2001-10-19 2003-05-09 Nec Corp キャッシュメモリ制御装置及び方法
US6931492B2 (en) * 2001-11-02 2005-08-16 International Business Machines Corporation Method for using a portion of the system cache as a trace array
US7428725B2 (en) 2001-11-20 2008-09-23 Microsoft Corporation Inserting devices specific content
US6615318B2 (en) 2002-01-22 2003-09-02 International Business Machines Corporation Cache management system with multiple cache lists employing roving removal and priority-based addition of cache entries
US7574653B2 (en) 2002-10-11 2009-08-11 Microsoft Corporation Adaptive image formatting control
US7362772B1 (en) * 2002-12-13 2008-04-22 Nvidia Corporation Network processing pipeline chipset for routing and host packet processing
JP4313068B2 (ja) * 2003-03-28 2009-08-12 株式会社日立製作所 記憶装置のキャッシュ管理方法
JP2004302751A (ja) * 2003-03-31 2004-10-28 Hitachi Ltd 計算機システムの性能管理方法、および、記憶装置の性能を管理する計算機システム
US7058764B2 (en) * 2003-04-14 2006-06-06 Hewlett-Packard Development Company, L.P. Method of adaptive cache partitioning to increase host I/O performance
JP2005018185A (ja) * 2003-06-24 2005-01-20 Hitachi Ltd 記憶装置システム
US7222117B1 (en) 2003-11-14 2007-05-22 Advent Software, Inc. Segmented global area database
JP4631301B2 (ja) * 2004-03-31 2011-02-16 株式会社日立製作所 記憶装置のキャッシュ管理方法
US7890604B2 (en) 2004-05-07 2011-02-15 Microsoft Corproation Client-side callbacks to server events
US9026578B2 (en) 2004-05-14 2015-05-05 Microsoft Corporation Systems and methods for persisting data between web pages
US7464386B2 (en) 2004-05-17 2008-12-09 Microsoft Corporation Data controls architecture
US8423673B2 (en) 2005-03-14 2013-04-16 Citrix Systems, Inc. Method and apparatus for updating a graphical display in a distributed processing environment using compression
US8171169B2 (en) * 2005-03-14 2012-05-01 Citrix Systems, Inc. Method and apparatus for updating a graphical display in a distributed processing environment
US8842127B1 (en) * 2005-04-25 2014-09-23 Apple Inc. Text rendering with improved glyph cache management
JP4568168B2 (ja) * 2005-05-17 2010-10-27 株式会社日立製作所 情報処理方法及びシステム
JP4813843B2 (ja) * 2005-08-04 2011-11-09 株式会社日立製作所 ストレージ装置、ディスクキャッシュ制御方法及びディスクキャッシュの容量割当方法
US20070118695A1 (en) * 2005-11-18 2007-05-24 International Business Machines Corporation Decoupling storage controller cache read replacement from write retirement
EP1793554A1 (en) * 2005-12-05 2007-06-06 Alcatel Lucent Method for transmitting data between a content server and a terminal in a discontinuous coverage network
US7574556B2 (en) * 2006-03-20 2009-08-11 International Business Machines Corporation Wise ordering for writes—combining spatial and temporal locality in write caches
US7500050B2 (en) 2006-03-20 2009-03-03 International Business Machines Corporation Wise ordering for writes—combining spatial and temporal locality in write caches for multi-rank storage
JP2008181243A (ja) * 2007-01-23 2008-08-07 Hitachi Ltd ストレージシステムのキャッシュパーティション領域の設定を制御するデータベース管理システム
US7460038B2 (en) * 2007-03-12 2008-12-02 Citrix Systems, Inc. Systems and methods of clustered sharing of compression histories
US7532134B2 (en) 2007-03-12 2009-05-12 Citrix Systems, Inc. Systems and methods for sharing compression histories between multiple devices
US8037126B2 (en) 2007-03-12 2011-10-11 Citrix Systems, Inc. Systems and methods of dynamically checking freshness of cached objects based on link status
US7809818B2 (en) * 2007-03-12 2010-10-05 Citrix Systems, Inc. Systems and method of using HTTP head command for prefetching
US8255570B2 (en) 2007-03-12 2012-08-28 Citrix Systems, Inc. Systems and methods of compression history expiration and synchronization
US8074028B2 (en) 2007-03-12 2011-12-06 Citrix Systems, Inc. Systems and methods of providing a multi-tier cache
US7619545B2 (en) 2007-03-12 2009-11-17 Citrix Systems, Inc. Systems and methods of using application and protocol specific parsing for compression
US7584294B2 (en) 2007-03-12 2009-09-01 Citrix Systems, Inc. Systems and methods for prefetching objects for caching using QOS
US7865585B2 (en) 2007-03-12 2011-01-04 Citrix Systems, Inc. Systems and methods for providing dynamic ad hoc proxy-cache hierarchies
US8504775B2 (en) 2007-03-12 2013-08-06 Citrix Systems, Inc Systems and methods of prefreshening cached objects based on user's current web page
US7827237B2 (en) 2007-03-12 2010-11-02 Citrix Systems, Inc. Systems and methods for identifying long matches of data in a compression history
US7783757B2 (en) 2007-03-12 2010-08-24 Citrix Systems, Inc. Systems and methods of revalidating cached objects in parallel with request for object
US8103783B2 (en) 2007-03-12 2012-01-24 Citrix Systems, Inc. Systems and methods of providing security and reliability to proxy caches
US7720936B2 (en) 2007-03-12 2010-05-18 Citrix Systems, Inc. Systems and methods of freshening and prefreshening a DNS cache
US8701010B2 (en) 2007-03-12 2014-04-15 Citrix Systems, Inc. Systems and methods of using the refresh button to determine freshness policy
US20090144404A1 (en) * 2007-12-04 2009-06-04 Microsoft Corporation Load management in a distributed system
US20090150536A1 (en) * 2007-12-05 2009-06-11 Microsoft Corporation Application layer congestion control
US20100122039A1 (en) * 2008-11-11 2010-05-13 Ravi Ranjan Kumar Memory Systems and Accessing Methods
US8108650B2 (en) * 2009-05-29 2012-01-31 Apple Inc. Translation lookaside buffer (TLB) with reserved areas for specific sources
US8458217B1 (en) 2009-08-24 2013-06-04 Advent Software, Inc. Instantly built information space (IBIS)
US8321476B2 (en) * 2010-03-29 2012-11-27 Sybase, Inc. Method and system for determining boundary values dynamically defining key value bounds of two or more disjoint subsets of sort run-based parallel processing of data from databases
US8769350B1 (en) 2011-09-20 2014-07-01 Advent Software, Inc. Multi-writer in-memory non-copying database (MIND) system and method
WO2013095525A1 (en) * 2011-12-22 2013-06-27 Intel Corporation Content-aware caches for reliability
US8332349B1 (en) 2012-01-06 2012-12-11 Advent Software, Inc. Asynchronous acid event-driven data processing using audit trail tools for transaction systems
US20130219125A1 (en) * 2012-02-21 2013-08-22 Microsoft Corporation Cache employing multiple page replacement algorithms
US9009401B2 (en) 2012-07-27 2015-04-14 International Business Machines Corporation Multi-updatable least recently used mechanism
US9075730B2 (en) * 2012-12-21 2015-07-07 Advanced Micro Devices, Inc. Mechanisms to bound the presence of cache blocks with specific properties in caches
JP2014137749A (ja) 2013-01-17 2014-07-28 Fujitsu Ltd ストレージ装置、書込制御方法、および書込制御プログラム
US9223710B2 (en) 2013-03-16 2015-12-29 Intel Corporation Read-write partitioning of cache memory
JP6191240B2 (ja) * 2013-05-28 2017-09-06 富士通株式会社 変数更新装置、変数更新システム、変数更新方法、変数更新プログラム、変換プログラム、及びプログラム変更検証システム
US9208094B2 (en) * 2013-08-06 2015-12-08 GlobalFoudries, Inc. Managing and sharing storage cache resources in a cluster environment
US8886671B1 (en) 2013-08-14 2014-11-11 Advent Software, Inc. Multi-tenant in-memory database (MUTED) system and method
US10089238B2 (en) 2014-07-17 2018-10-02 Qualcomm Incorporated Method and apparatus for a shared cache with dynamic partitioning
US9612970B2 (en) 2014-07-17 2017-04-04 Qualcomm Incorporated Method and apparatus for flexible cache partitioning by sets and ways into component caches
US10180908B2 (en) 2015-05-13 2019-01-15 Qualcomm Incorporated Method and apparatus for virtualized control of a shared system cache
US9852084B1 (en) 2016-02-05 2017-12-26 Apple Inc. Access permissions modification
US10282299B2 (en) 2017-06-23 2019-05-07 Cavium, Llc Managing cache partitions based on cache usage information
US10817493B2 (en) * 2017-07-07 2020-10-27 Raytheon Company Data interpolation
US11556473B2 (en) * 2020-07-30 2023-01-17 EMC IP Holding Company LLC Cache memory management
US11520701B2 (en) * 2021-04-02 2022-12-06 Tenstorrent Inc. Data structure optimized dedicated memory caches

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4754394A (en) * 1984-10-24 1988-06-28 International Business Machines Corporation Multiprocessing system having dynamically allocated local/global storage and including interleaving transformation circuit for transforming real addresses to corresponding absolute address of the storage
US5341483A (en) * 1987-12-22 1994-08-23 Kendall Square Research Corporation Dynamic hierarchial associative memory
US4905141A (en) * 1988-10-25 1990-02-27 International Business Machines Corporation Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification
US5285528A (en) * 1991-02-22 1994-02-08 International Business Machines Corporation Data structures and algorithms for managing lock states of addressable element ranges

Also Published As

Publication number Publication date
JPH06161898A (ja) 1994-06-10
US5434992A (en) 1995-07-18

Similar Documents

Publication Publication Date Title
JP2675967B2 (ja) キヤツシユの動的分割方法及びその手段
US4463424A (en) Method for dynamically allocating LRU/MRU managed memory among concurrent sequential processes
CN1258146C (zh) 动态分配关联资源的系统和方法
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
US4875155A (en) Peripheral subsystem having read/write cache with record access
US6871272B2 (en) Data sorting in information storage systems
US6988165B2 (en) System and method for intelligent write management of disk pages in cache checkpoint operations
US10169232B2 (en) Associative and atomic write-back caching system and method for storage subsystem
US6961835B2 (en) System and method for autonomically reallocating memory among buffer pools
US5630097A (en) Enhanced cache operation with remapping of pages for optimizing data relocation from addresses causing cache misses
US5608890A (en) Data set level cache optimization
Grimsrud et al. Multiple prefetch adaptive disk caching
US7734875B1 (en) Cache management using historical access information
JPH05225066A (ja) 優先順位付けキャッシュ管理方法
GB2357172A (en) Raid storage system with logicaly partitioned cache
CN114077553A (zh) 自适应性高速缓存分区
US7107400B2 (en) System, apparatus, and process for evaluating projected cache sizes
Mattson Evaluation of multilevel memories
US10339052B2 (en) Massive access request for out-of-core textures by a parallel processor with limited memory
EP0391871A2 (en) Method for managing a prioritized cache
EP0058846B1 (en) Multiprocessing system with variably shared paging storage
Traiger et al. The Evaluation and Selection of Technologies for Computer Storage Systems
US11467937B2 (en) Configuring cache policies for a cache based on combined cache policy testing
JPH0282332A (ja) 索引ファイルのインデックス用入出力バッファ方式
KR20030071299A (ko) 메모리 관리 장치

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees