JPH0531177B2 - - Google Patents

Info

Publication number
JPH0531177B2
JPH0531177B2 JP2244138A JP24413890A JPH0531177B2 JP H0531177 B2 JPH0531177 B2 JP H0531177B2 JP 2244138 A JP2244138 A JP 2244138A JP 24413890 A JP24413890 A JP 24413890A JP H0531177 B2 JPH0531177 B2 JP H0531177B2
Authority
JP
Japan
Prior art keywords
cache
reader
page
data
virtual
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
JP2244138A
Other languages
English (en)
Other versions
JPH03134746A (ja
Inventor
Eritsuku Buranku Tetsudo
Furanshisu Fuaaguson Donarudo
Aran Furei Jefurei
Purasushiino Angurero
Richaado Rojaasu Robaato
Ramu Eruhaado
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 JPH03134746A publication Critical patent/JPH03134746A/ja
Publication of JPH0531177B2 publication Critical patent/JPH0531177B2/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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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
    • 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
    • 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/60Details of cache memory
    • G06F2212/6026Prefetching based on access pattern detection, e.g. stride based prefetch

Description

【発明の詳細な説明】 A 産業上の利用分野 本発明は、コンピユータ及びコンピユータ複合
体、及びこれらを制御するためのオペレーテイン
グ・システムに関する。より具体的には、本発明
は、順次にアクセスされ共有されるキヤツシユさ
れたデータの、改良された管理技法に関する。
B 従来の技術 高速メモリ内にデータをキヤツシユすることに
より性能を向上することは、多くのコンピユー
タ・システムで使用されている共通の戦略であ
る。キヤツシユの管理において、2つの共通技法
は、ページ置換アルゴリズム及び先取りアルゴリ
ズムである。ページ置換アルゴリズムは、近い将
来より使用されそうなデータを残し、使用されそ
うにないデータを消去するために使用される。先
取りアルゴリズムは、データが近い将来使用され
そうなとき、そのデータをキヤツシユに持ち込む
ために使用される。
最長時間未使用(LRU)アルゴリズムは、多
くの従来システムで使用されたキヤツシユ管理ペ
ージ置換アルゴリズムである。このアルゴリズム
は、最近アクセスされたレコードがすぐに再びア
クセスされると仮定する。この仮定は、特定のジ
ヨブが特定のレコードをただ1度読み取る場合の
順次アクセス・パターン(空間局在性)には適切
ではない。この場合、バツチ処理でよく見られる
が、ジヨブ内の時間的局在性は存在しない。
データが順次アクセスされる場合、データが必
要とされる前にそのデータを先取りすることによ
り性能を向上できる場合がある。この方法は、従
来システムには共通である。先取りとは、ペー
ジ・フオールトの場合に、複数の物理的に隣接し
たレコードが、そのフオールトが発生したレコー
ドとともにフエツチされることを意味する。単純
な先取り法は、レコードがしばしば不必要に先取
りされるので、非能率的な場合がある。より複雑
な方法は、プログラム・トレースを解析して得ら
れる先験的な知識を使用し、ユーザのアドバイス
を受け入れ、またはプログラム参照行動を動的に
解析し、性能を大きく向上することができる。先
取り法は、2通りの方法で性能を向上することが
できる。第1に、入出力の遅延及びジヨブ(トラ
ンザクシヨン、問合せなど)の応答時間が、実際
のアクセスの前にデータをキヤツシユすることに
より短縮される。第2に、N個の物理的にクラス
タされたレコードを取り出すための入出力オーバ
ヘツドは、1つのレコードにまとめる経費のN倍
より通常ずつと小さい。他方、実際に必要でなか
つたレコードの先取りは、入出力の経費を増し、
まさに参照しようとする他のページを変位する場
合がある。
C 発明の要旨 本発明は、キヤツシユ内にデータを管理するた
めの技法を提供する。この場合、データは多数の
ジヨブ間で共有され、各ジヨブはデータを順次ア
クセスする。本発明は、別のキヤツシユ読取り装
置によつてすぐには参照されそうにないキヤツシ
ユ・ページを解放するページ・スチール技法を記
述する第1実施例と、別のページ・スチール技
法、ならびにすぐに必要とされるレコードをキヤ
ツシユに先取りする先取り技法を記述する第2実
施例を提供する。
本発明の目的は、共通のデータセツトを順次読
み取るジヨブについてキヤツシユ・ヒツトを最大
化することで、それらのデータセツトのレコード
は仮想記憶機構内にキヤツシユされ、したがつ
て、ジヨブ当りの平均入出力遅延を低減し、ジヨ
ブ経過時間も短縮する。
本発明の別の目的は、共有され、順次アクセス
されるデータのためのLRUアルゴリズムより効
率的なページ置換え、すなわちページ・スチール
技法を提供することである。
本発明のさらに別の目的は、各ジヨブが順次に
データをアクセスしている、複数のジヨブの間で
共有されるキヤツシユ化データに対して有利に使
用できる先取り技法を提供することである。
本発明のさらに別の目的は、共有されたキヤツ
シユ内でデータを順次にアクセスしている1組の
トランザクシヨンの間で、キヤツシユ・アクセツ
サのクラスタリングを促進することである。
D 実施例 第1図は、本発明の動作の全体の概要である。
オペレーテイング・システムA10では、2つの
アドレス空間、すなわちアドレス空間1,11、
及びアドレス空間2,12は、同時に活動状態に
あるジヨブを表す。各アドレス空間は、DASD装
置15に常駐するデータセツト16上のデータを
同時にアクセスしている。各アドレス空間は、デ
ータセツト16からのデータをそれ自身のローカ
ル・バツフア13,14に順次読み込んでいる。
データが読み込まれると、制御要素17は、要求
されたデータがキヤツシユ要素18内にあるかど
うか動的に判断する。そのデータがキヤツシユ要
素18内にある場合、その要求は入出力を要しな
いでキヤツシユからデータセツト16に満たされ
る。データがキヤツシユ18内にまだない場合
は、その入出力は進行できる。次に、そのデータ
のコピーは、それが読み込まれているローカル・
バツフア13または14からキヤツシユ要素18
に転送される。キヤツシユ要素18内に、データ
をローカル・バツフア13または14からコピー
するのに十分な空間がない場合は、制御要素17
はそのコピーを完了させるのに十分な記憶容量を
キヤツシユ18からスチールする。制御要素17
のスチール機構は、アドレス空間1,11及び
2,12がそのスチール決定をする際にデータセ
ツト16を順次に読み込むという事実に基づく。
このページ・スチールは、価値が最も低い、すな
わちアドレス空間1またはアドレス空間2によつ
て近い将来に最も使用されそうにない、キヤツシ
ユ18内のページを再使用のために解放するプロ
セスである。制御要素17のスチール・アルゴリ
ズムの詳細はさらに後述する。
第2図は、仮想キヤツシユ21を使用する実施
例を示す。この仮想キヤツシユは、米国特許出願
(出願番号07/274239、出願日1988年11月21日)
で記述されたタイプの非主記憶データ空間(すな
わちハイパースペース)である。「ハイパースペ
ース」とも呼ばれる、この非主記憶データ空間仮
想キヤツシユ21は、拡張記憶機構22によつて
バツキングされる。第2図に示すように、アドレ
ス空間1,25及び2,27は、データセツト2
8を順次読み取つており、制御要素29は、バツ
フア25Aまたは27Aに読み込まれたデータを
仮想キヤツシユH21内に適切に配置している。
仮想キヤツシユに配置されたデータは、23で示
す仮想アドレスを占有する。この仮想アドレス
は、記憶バツキングのためにすべての拡張記憶機
構22を要求する。新しいレコードがデータセツ
ト28からアドレス空間1のバツフア25Aに読
み込まれ、それを24で示す位置にある仮想キヤ
ツシユH21にコピーすめための試みが制御要素
29によつて行なわれると、もう拡張記憶機構は
位置24をバツキングするためには使用できない
ことがわかる。したがつて、23で示す仮想アド
レスをバツキングするフレームは、スチールされ
て関連拡張記憶機構を解放しなければならず、こ
うして、バツフア25A内のデータを位置24に
読み込めるようになり、次に位置24は新たに解
放された拡張記憶機構によつてバツキングされ
る。
第3図は、本発明の本実施例で使用される主な
制御ブロツクを示す。データセツト・テーブル・
エントリを含むデータセツト・テーブル301
は、SCVT303を介して通信ベクトル・テーブ
ル(CVT)302からチエーン・オフされる。
SCVT303は、キヤツシユ大域テーブル・ヘツ
ダ304をポイントし、次にこれはキヤツシユ大
域テーブル305をポイントする。各データセツ
ト・テーブル・エントリ(DSTE)306は、即
時データ空間306Aのためのキヤツシユに使用
されるハイパースペースを識別するトークン、入
出力ブロツク・アンカ306B、クラスタ・ブロ
ツクと呼ばれる1組の制御ブロツク用のアンカ3
06C、及びACBTキユーと呼ばれる順序キユ
ー用のアンカ306Dを含む。各入出力ブロツク
307は、後退キユー・ポインタ及び前進キユ
ー・ポインタ307A,307B、入出力が要求
された最下位データ307C及び最上位データ3
07Dの相対バイト・アドレス、及びこの入出力
を持つているユーザのACBTサブキユーに対す
るポインタ307Eを含む。各クラスタ・ブロツ
ク308は、ハイパースペース・キヤツシユ内の
データの隣接範囲に関連している。クラスタ・ブ
ロツク308は、前記範囲内の最下位返還データ
の相対バイト・アドレス(RBA)308A、前
記範囲内の最上位返還データのRBA308B、
ハイパースペースに関連したトークン308C、
及びこのクラスタに関連したACBTのチエーン
へのポインタ308Dを含む。順序キユーすなわ
ちACBTキユーは、関連読取り装置のRBAによ
つて順序化された制御ブロツクを含む。これらの
制御ブロツクは、ACB制御ブロツクを追跡する
(ACBは、解説書「OS/VS仮想記憶アクセス方
法」、GC26−3838に示されたように周知の
VSAM制御ブロツクである)。各ACBT309
は、現在読取り装置ジヨブに関連したACBのア
ドレス309A、またはアドレス空間310Aを
含む。(読取り装置は、データセツトへのアクセ
スを確立したプロセスである。)各ACBT309
はまた、関連読取り装置のデータセツト内の現在
位置の指標309B、関連ユーザが現在停止され
ているか否かのインジケータ309C、前記読取
り装置に関連したCLSBへのポインタ309D、
読取り装置が入出力を待つて停止している場合の
IOBKへのポインタ309E、共通入出力動作を
待つている他のACBTへのポインタ309F、
及び共通CLSBに連鎖された他のACBTへのポイ
ンタ309Gを含む。ACBTは、読取り装置が
キヤツシユにふさわしい(データセツト・ベース
上の設置、たとえば設置出口またはOPEN処理中
に呼び出されるセキユリテイ・プロフアイルを介
して指示される)データセツトへの順次アクセス
を要求し、ユーザがデータセツトのキヤツシユ化
に参加できる許可が認められた場合に作成され
る。このプロセスは、読取り装置が読取りアクセ
スのためのデータセツトをOPENする際、発生す
る。さらに、これらがまだ作成されていなかつた
場合、記憶機構はCGTH、CGT、及びDSTEに
ついて割り当てられる。次にDSTEは、開かれて
いるデータセツトを表すために割り当てられ、読
取り装置を表すACBTはチエーンされる。IOBK
及びCLSBは、本流入出力要求処理中に作成さ
れ、また破壊され、OPEN処理の結果としては作
成されない。
第4図は、本発明の本実施例のための読取り要
求の全体の制御を示す。特定のRBAのための読
取り要求が出された場合、要求されたRBAに関
連したクラスタ・ブロツク(CLSB)を見いだす
ための試みがなされる401。要求されたRBA
がクラスタ・ブロツク内で見い出された場合40
2、これはRBAに関連したレコードがハイパー
スペース・キヤツシユ内にあることを示す。次
に、データは要求ジヨブの局所バツフアにコピー
され403、読取り要求が満たされる。要求され
たRBAがCLSB内になかつた場合は、要求され
たデータがハイパースペース・キヤツシユ内にま
だないことを示す。しかし、まだハイパースペー
ス・キヤツシユ内になくても、このキヤツシユへ
の途中にあるかもしれない。レコードをDASD装
置から主記憶バツフアへ転送するプロセスが、開
始されたかもしれない。したがつて、このCLSB
のための入出力が進行中であるか否かの判断が4
04で行なわれる。これは、関連IOBKの存在ま
たは不在によつて示される。このような入出力が
進行中であることが判断された(すなわちIOBK
があつた)場合には、読取り装置は、IOBKから
アンカーされたウエイター・キユー上に置かれる
405。次に、読取り装置は中断され406,4
01で再び実行継続するための再発進を待機す
る。入出力がまだ進行中でなかつた(IOBKがな
かつた)場合、入出力が要求され407、IOBK
が作成され、IOBKキユー上の置かれる。次に、
ジヨブは、要求された入出力の完了を待つ40
8。入出力を実行するためのこの機構は、キヤツ
シユ内の隣接フレームのストレツチ内の読取り装
置の「クラスタリング」を促進する。これは、第
7図を説明する以下の本文で説明される。「クラ
スタリング」は、後続の読取り装置が、拡張記憶
機構からのデータ転送に比べて物理的入出力の相
対的な緩慢さを解決するために、物理的入出力を
行なう読取り装置にキヤツシユ・アツプできる方
法である。
要求されたデータが要求しているジヨブの局所
バツフア内に今あるように入出力が完了した場
合、前記バツフアからのデータをハイパースペー
ス・キヤツシユにコピーできる十分な利用可能フ
レームがあるか否かの判断が行なわれる409。
(「使用中の」フレーム数のカウントが、維持さ
れ、仮想キヤツシユ・ページを返還するために使
用できる拡張記憶フレームの導入システム指定数
と比較される。このカウントは更新され、ハイパ
ースペース内にコピーされたデータ・ページを反
映する。)十分なフレーム数がある場合、データ
はキヤツシユにコピーされ410、クラスタ・ブ
ロツクはいま存在するイン・キヤツシユ・データ
のストレツチを反映するために更新される41
1。データをキヤツシユにコピーするための十分
な利用可能フレームがなかつた場合、十分な記憶
空間を解放して、そのデータをキヤツシユにコピ
ーするために、スチール・ルーチンが実行される
412。このスチール・ルーチンの詳細は、以下
の第5図、第6図の説明で述べる。データをキヤ
ツシユにコピーするための十分な記憶空間が今存
在する場合413、上の410におけるようにコ
ピーが実行される。十分なフレームがない場合
は、このルーチンから単に出る。データはキヤツ
シユに転送されないが、エラーは指摘されない。
これらのページを必要とする次の読取り装置は、
物理的入出力を実行しなければならない。脱出す
る前に、いずれの中断されたユーザも再開を許可
される414。
第5図は、ページ・スチール処理のための制御
の流れ図である。501で、スチール・ターゲツ
トが計算される。これは、現在要求で要求された
フレーム数の3倍と定義される。このターゲツト
は、実行に敏感である。すなわち、スチールされ
ているフレームの利益が本発明アルゴリズムの頻
度及び経路長と均衡するように調整される。50
2で、現在データセツト・インデツクスが取り出
される。これは、単に現在スチールされているデ
ータセツトを追跡するDSTへのインデツクスで
ある。この時点で、このインデツクスはさらに、
最後にスチールされたデータセツトを反映する。
503で、データセツト・テーブル内の次のデー
タセツトが選択され、データセツト・インデツク
スは増分される。したがつて、キヤツシユされた
データセツトは、ラウンド・ロビン方式で処理さ
れる。504で、現在データセツトのための順序
キユー、またはACBTキユー(第3図の304
C)上の第1読取り装置が選択される。第1読取
り装置は、データセツト内のずべての読取り装置
の最低RBA値に現在位置するものである。この
現在RBA値は、ACBT(第3図の309B)内に
維持される。505で、現在読取り装置の背後、
すなわち現在読取り装置の位置のRBA値より低
いRBA値をもつハイパースペース・キヤツシユ
内に、このデータセツトに対するフレームが存在
するか否かの判断が行なわれる。存在する場合、
506で、キヤツシユ内のいくつかのフレームが
スチールされる。すなわち再使用のために解放さ
れる。この実行の際、ルーチンは現在読取り装置
の直後のフレームから開始する、すなわち現在読
取り装置の位置より下のRBAから開始する。後
進(すなわち、より低いRBA値へ)フレームは、
捨てられたフレーム数がAすなわち現在読取り装
置の前にあるフレーム数またはBすなわちスチー
ル・ターゲツトの最小値に等しくなるまでスチー
ルされる。507で、スチールされたフレームの
数がターゲツトに等しいか否かの判断が行なわれ
る。等しい場合は、このスチール・ルーチンから
うまく出ることができる。等しくない場合は、ま
たは505での判断が現在読取り装置の後ろにキ
ヤツシユされたフレームがないことを示した場合
は、このデータセツトに対するキヤツシユ内の最
小価値フレームを決定する計算が実行され、それ
らのフレームはスチールされる508。この方法
は第6図で詳細に記述され、以下でも説明する。
509で、これまでにスチールされたページが、
ターゲツトに等しいか否かの判断が再び行なわれ
る。等しい場合は、スチール・ルーチンからうま
く出る。これまでにスチールされたフレーム数が
ターゲツトより小さい、すなわち509での判断
の結果が無回答であつた場合は、さらに、すべて
のフレームが現在データセツトからもうスチール
されたか否かの判断が510で行なわれる。(こ
の判断は、0に対する「距離」と呼ばれる値を調
べることにより行なわれる。これについては、さ
らに第6図で説明する。値0の距離は、このデー
タセツト内のすべてのフレームがスチールされた
ことを示す。)510での判断が、このデータセ
ツトの追加フレーム返還部分をまだスチールでき
ることを示した場合、そのとき最小価値のフレー
ムの計算は508で再計算され、処理は前記のよ
うに続く。510での判断が、このデータセツト
からスチールするフレームが残つていないことを
示した場合は、次のデータセツトがDSTテーブ
ルから選択され、現在データセツトのインデツク
スが増分され503、処理は前記のように続く。
第6図は、最小価値フレームを識別してスチー
ルするための制御の流れを示す。この処理の目的
は、キヤツシユ内の最小価値フレームに関連した
CLSBを識別すること、及びそのクラスタ内の最
小価値フレームを識別することである。この処理
により、フレーム・スチールは、ターゲツトに達
する(すなわち、スチールするフレームがもうな
い)まで後進する。601では、初期距離値D0
が0にセツトされる。(注:この図に示した処理
がフレームの放棄を生じない場合、この距離値は
0のままであり、この結果は、すべてのフレーム
が現在データセツトからスチールされたことを見
つける第5図の判断510になる。)602では、
ACBTキユー上の第2ACBTが選択される。(第
1読取り装置の背後のフレームはすでにスチール
されたはずである。)603では、このような
ACBT(この時点で第2読取り装置と関連した
ACBT)が存在するか否かを判断する。このよ
うなACBTが存在する場合、このACBTがCLSB
と関連しているか否かの判断が604で行なわれ
る。そうである場合は、そのACBTと関連した
読取り装置がキヤツシユされたレコードの隣接ス
トレツチ内に位置することを示し、値H1が現在
ACBTの現在RBA位置に等しくセツトされ60
5、値L1が前のACBTのRBA値に等しくセツ
トされる606。次に、距離値D1は、H1とL
1との差に等しくセツトされる612。この距離
値は、この時点では、2つの連続した読取り装置
の間の距離に等しい。テスト613で、D1が現
在値D0より大きいか否かの判断が行なわれる。
そうである場合は、614で、現在CLSBのアド
レスが最良CLSB値であることが示され、H1が
最良RBA値であることが示され、D0はD1の
新しい値にセツトされる。次に、615では、
ACBTキユー上の次のACBTが選択され、処理
は前記の603と同様に続く。613のテスト
で、D1の値が前の値D0より大きいことが示さ
れなかつた場合は、新しい最大値を見つけなかつ
たことになり、ブロツク614での値のセツトは
バイパスされ、新しいACBTが選択される61
5。604のテストで、現在ACBTがCLSBと関
連していることが示されなかつた場合は、関連す
る読取り装置がデータのイン・キヤツシユ・スト
レツチ内にないことを意味する。そこで、適切で
あれば、スチールが前のクラスタ内で開始されな
ければならない。607では、現在ABCT内の
RBA以下のRBA範囲をもつ最隣接クラスタ・ブ
ロツクが選択される。608では、このようなク
ラスタ・ブロツクが見つかつたか否かのテストが
行なわれる。否の場合は、スチールする前クラス
タがなく、次のACBTが選択される615。そ
のようなクラスタが見つかつた場合は、値H1は
このクラスタ内の最高RBA値に等しくセツトさ
れる609。次に、610で、H1以下のRBA
位置をもつACBTキユー上の最隣接ACBTが選
択され、611でL1は、この新しく見つかつた
ACBTのRBA位置に等しくセツトされる。次に、
処理は前記のように612に続く。603のテス
トで、選択されるACBTの存在が示されなかつ
た場合、(すべてのACBTが選択され、処理され
たことを示す)、キヤツシユ内の最後の読取り装
置の位置を越えてイン・キヤツシユ・ストレツチ
があり得るので、最終組の処理が実行されなけれ
ばならない。616では、最後のCLSBが選択さ
れる。次に、値H1は、選択されたCLSB内の最
高RBA値に等しくセツトされる。次に618で、
ACBTキユー上の最後のACBTが選択される。
値L1は、この最後のACBTのRBA位置に等し
くセツトされる619。次に、距離値D1は、H
1とL1との差として計算される620。D1
が、既存のD0値より大きいか否かの判断が行な
われる621。大きい場合、622で、新しい最
適スチール位置を得て、最良CLSB値がこの現在
CLSBのアドレスに等しくセツトされ、H1が最
良のRBA位置であることが示され、D1はD0
に置き換えられる。否の場合は、622でのこの
処理はバイパスされる。次に、D0がまだ0に等
しいか否かのテストが行なわれる623。0に等
しくない場合、候補が位置づけられたことを示
し、フレームは、位置最良RBAから始まる計算
された最良CLSBから放棄される624。しか
し、D0が0に等しい場合、候補は位置づけられ
ず、この放棄過程はバイパスされ、単にこのルー
チンから出る。
第7A図ないし第7E図は、読取り装置の「ク
ラスタリング」の推進に使用される入出力キユー
イング機構を、例を用いて示す。(これと次の制
御ブロツク内容は、例に関連する分野だけを強調
している。各種の矢印は、通常の制御ブロツク連
鎖を示す。)第7A図では、ACBT1,703及
びACBT2,704で表された読取り装置ジヨ
ブ1,701及び読取り装置2,702は、両方
ともデータセツト1,705のブロツク80ない
し89内のデータのレコードを処理している。ハ
イパースペース仮想キヤツシユH706は、この
データをキヤツシユするために使用される。クラ
スタ・ブロツク2,707は、ハイパースペース
706内のこの隣接データ・ストレツチを表す。
(両方の読取り装置が、点線で示すように、
CLSB2にチエーンされている(CLSB 308
D内のACBTポインタ及びACBT 309G内
のCLSBQポインタを介して)ことに留意された
い。)クラスタ・ブロツク1,708は、2つの
読取り装置のいずれかによつて現在処理されてい
ない、ハイパースペース内の別の隣接データ・ス
トレツチを表す。入出力動作は現在進行していな
い。これは、IOBK 709がないことによつて
示される。第7B図では、ACBT1,703で
表された読取り装置1はいま、ブロツク90〜9
9を要求し、入出力ブロツク710で表された入
出力動作を開始する。このアクセス方法は、通常
のように、入出力開始されたので、読取り装置1
を中断する。第7C図では、読取り装置1によつ
て開始された入出力動作が完了する前に、読取り
装置2(ACBT2,704で表す)は、ブロツ
ク90〜99を要求する。読取り装置2の新しい
要求の低RBA数は、すでに進行中で、入出力ブ
ロツク710に示され、入出力の低RBA数に適
合するので、読取り装置2のACBT704は、
その入出力動作の完了を待つために、その入出力
ブロツク上にキユーされる。このキユーイング
は、ACBT2,704を入出力ブロツク710
に連鎖することによつて実行される。次に、読取
り装置2は、本発明に従つて中断される。第7D
図では、入出力動作の完了時に、ブロツク90〜
99は、読取り装置1の局所バツフア711から
712のハイパースペースに移動される。次に、
クラスタ・ブロツク2,713は更新されて、デ
ータの隣接ブロツクの新しいサイズを反映し、こ
うしてブロツク80からブロツク99に達する
(第7E図の714参照)。読取り装置2は、
IOBKウエイター・リストから除かれ、IOBKは
解放される。次に、読取り装置2が再開される。
制御は本アクセス方法に戻り、読取り装置1は進
行できるようになる。
第7E図では、ブロツク90〜99に対する読
取り装置2の要求は、ハイパースペース706か
ら満たすことができる。物理的入出力は実際には
行なわれない。ブロツク90〜99,712は、
読取り装置2の局所ハツフア713に移される。
第8A図〜第8K図はさらに、本発明のこの第
1実施例を示す。第8A図で、読取り装置1はデ
ータセツトを順次に読み始める。ハイパースペー
ス・キヤツシユ801は、このデータセツトに関
連したページ・フレームをキヤツシユするために
使用される。ACBT802は、読取り装置1を
表し、このACBT内の現在RBAインジケータは、
そのデータセツトを読んでいる読取り装置1の現
在位置をしめしている。この時点で、RBAイン
ジケータ802Aは、位置10を示す。ハイパー
スペース・キヤツシユ804内には、隣接データ
がただ1ストレツチしかないので、ただ1クラス
タ・ブロツク803しかない。このクラスタ・ブ
ロツクは、低RBA番号が1、803Aであるこ
と、及び高RBA番号が10、803Bであること
を示す。第8B図では、読取り装置1がデータセ
ツトを順次に読み続けるので、キヤツシユ内のフ
レームのストレツチは大きくなる805。いま、
読取り装置1に関連したACBTは、読取り装置
1の位置が位置50,806Aであることを示
し、ハイパースペース・キヤツシユ内のデータの
ストレツチを示すクラスタ・ブロツクは、低
RBA指標1,807A及び高RBA番号50、80
7Bをもつ。第8C図では、第2読取り装置、す
なわち読取り装置2が読取り装置1と同じデータ
セツトを順次に読み始めた。読取り装置1によつ
てすでに読み取られたデータは、依然としてハイ
パースペース・キヤツシユ内にあり、読取り装置
2の読取り要求は、追加の物理的入出力の必要な
しで満たされる。ACBT808は読取り装置2
と関連し、キヤツシユ内の読取り装置2の位置が
位置10,808Aであることを示す。第8D図
では、読取り装置2は、物理的入出力に対して遅
れがより少ないので、読取り装置1とともに「キ
ヤツチ・アツプ」を開始する。(「クラスタリン
グ」は、すでに説明した。)しかし、これは、キ
ヤツシユ化の利点のほんの一部分である。おそら
く読取り装置2のスピード・アツプより重要なこ
とは、読取り装置1が読取り装置2の存在によつ
てスロウ・ダウンされないことである。キヤツシ
ユ化しなければ、読取り装置1は、この装置が読
取り装置2の入出力後に利用可能になるのを待つ
ことによる遅れの増加を受けるはずである。この
キヤツシユ化を使用すれば、読取り装置2は、物
理的入出力を行なつていないので、読取り装置1
は、読取り装置2の入出力の完了を待つ必要がな
い。第8E図では、読取り装置2は、読取り装置
1をキヤツチ・アツプしている。いま、それらの
1つは、物理的入出力を要求しなければならない
が、両者は要求された入出力の完了まで待つ。第
8E図では、読取り装置1と読取り装置2の両者
とも位置75にある。これは、RBA番号75,
810A,809Aをもつ読取り装置1の
ACBT810と読取り装置2のACBT809の
両者によつて示される。このクラスタリングによ
つて、多数のフレームを要求することなく、引き
延ばされた入出力の短縮が可能になる。このクラ
スタリングがいつたん発生すると、クラスタの維
持に必要なフレームの数は少ない。結局、キヤツ
シユ化に使用するフリー・フレームの追加がない
ので、多少のフレーム・スチールを行なわなけれ
ばならない。本実施例のアルゴリズムに従つて、
両読取り装置によつて最も最近読み取られたフレ
ームは、スチールされることになるフレームであ
る。第8F図は、このスチールが行なわれた後
の、ハイパースペース・キヤツシユの状態及び制
御ブロツク構造を示す。ハイパースペース・キヤ
ツシユ811,812内に、今データの2つの隣
接ストレツチがあることに留意されたい。これら
のストレツチは、必要なフレームをスチールした
空間813によつて分離されている。これらの2
つの隣接ストレツチは、クラスタ・ブロツク81
4,815によつて表される。クラスタ・ブロツ
ク814は、隣接ストレツチ812と関連し、1
の低RBA,814Aから70の高RBA,814
Bに延びている。クラスタ・ブロツク815は、
隣接ストレツチ811を表し、81の低RBA,
815Aから90の高RBA,815Bに達して
いる。第8G図では、ACBT816に関連した
第3の読取り装置が、データセツトを順次に読み
取り始めている。完全なまま残されたキヤツシユ
の一部分が始めにあるので、読取り装置3はただ
ちに、読取り装置1及び読取り装置2によつてす
でに読み取られたデータのフレームから利益を得
る。フレーム・スチールを実行する必要のある次
の時には、読取り装置3によつて最も最近参照さ
れたフレームが選択される。これは、第8H図の
空のストレツチ817で示される。読取り装置1
及び読取り装置2によつて最近参照されたフレー
ムは、読取り装置3がそれらのフレームを間もな
く参照するので、スチールされない。第8H図
は、3つの隣接データ・クラスタ821,82
2,823を示し、各クラスタは、それぞれ関連
したクラスタ・ブロツク818,819,820
をもつ。多くの因子に依存するが、読取り装置3
は、読取り装置1及び読取り装置2に実際に追い
つくことができる。この場合、第8I図に示すよ
うに、各単一物理的入出力要求によつて、3つの
読取り装置がサービスされる。第8I図では、2
つの隣接するハイパースペース・データ・ストレ
ツチ824,825は、それぞれクラスタ・ブロ
ツク826,827によつて表されている。ここ
でも、スチールされたフレームはどれでも、単一
クラスタの3つの読取り装置によつて最も最近参
照されたフレームになる。これは、第8J図に示
されている。最近スチールされたフレーム828
は、ハイパースペース内の隣接ストレツチをいま
3つのピース829,830,831に分割し
た。これらは、それぞれクラスタ・ブロツク83
2,833,834によつて表されている。結
局、3つの読取り装置はすべて、データセツトの
読取りを完了することになる。これを第8K図に
示す。いま読取り装置はないので、DSTE835
から連鎖を外されたACBTはない。これらの3
つの隣接データ・ストレツチはハイパースペース
内に残り、クラスタ・ブロツク836,837,
838で表されている。
前記のように、本発明の本実施例は、再使用ま
での最長期待時間をもつフレームの計算に広く基
づく、ページ・スチールのための最適候補を決定
する。本実施例は、すべての読取り装置がキヤツ
シユを一定速度で通過していると仮定しており、
したがつて、再使用までの最長期待時間をもつフ
レームは、イン・キヤツシユ。ページのストレツ
チの前、または読取り装置の1つの直後のいずれ
かで、発生すると仮定される。また本実施例は、
データをキヤツシユに先取りするための特別の準
備はしない。
別の実施例では、キヤツシユを通過している各
種のジヨブの速度の計算を行なうことができる。
これらの速度の差は、キヤツシユからどのページ
をスチールするかを決定する際に考慮に入れるこ
とができる。この別の実施例のもう1つの特徴
は、データをキヤツシユに先取りすることであ
る。これもまた、速度の差に基づくものである。
この別の実施例の特徴は、先取りするキヤツシユ
されていないレコード及び先取りするそれらのレ
コードの順序を決定する先取りアルゴリズム、各
読取り装置が各データセツト内のレコードを読み
取る速度を経験的に決定する速度推定アルゴリズ
ム、予め推定された速度及び介在レコードがキヤ
ツシユされるか否かについての情報を使用して、
データセツト・レコードが次に読取り装置によつ
て参照される時間を決定する使用時間推定アルゴ
リズム、及び新しいレコードがキヤツシユ全体内
に置かれた場合キヤツシユ内のどのレコードがス
チールされるべきかを決定するキヤツシユ置換
え、すなわちページ・スチール・アルゴリズムを
含む。これらのアルゴリズムを以下に説明する。
速度推定アルゴリズム データセツトDjを通るジヨブJjの速度はVij
表され、JiがDj内のレコードを読み取つている速
度である。速度推定アルゴリズムは、データセツ
トを通してのジヨブの達成可能速度の推定値を計
算する。この達成可能速度は、ジヨブがデータセ
ツト上でキヤツシユ・ミスに遭遇しなかつた場合
は、そのジヨブがデータセツトを通過する速度で
ある。速度推定アルゴリズムは周期的に実行さ
れ、呼出し間隔は、本アルゴリズムのパラメータ
であるΔによつて表される。時刻tpにジヨブJi
データセツトDj内のレコードrijを読み取つている
と仮定する。従来の時刻tp+Δに、tpからのジヨ
ブJiによつて引き起こされた全入出力遅延時間が
biであるとする。時刻tp+Δに、Jiがデータセツ
トDj内のレコードcijまで読み取つた場合に、その
達成可能速度は次のように推定される。
Vij=(cij−rij)/(Δ−bi) この速度推定アルゴリズムは、2つの副機能を
もつている。第1の副機能は、ジヨブが読取り要
求をキヤツシユ・マネージヤに送るごとに呼び出
される。この機能は次の変数を更新する。
1 cij:データセツトDj内のジヨブJiの現在位
置。
2 bij:全入出力遅延ジヨブJiが、Dj内のその速
度が最後に測定されてから生じた。
3 tij:最終時刻Jiの速度がデータセツトDj内で
測定された。
第9図は、ジヨブによつて送られた各読取り入
出力に対する速度推定アルゴリズムの処理を示
す。このコードでは、ジヨブJiはデータセツトDk
内のレコードrを読み取つている。901では、
このレコードがこのデータセツト内の最初のもの
であるか否かの判断が行なわれる。そうである場
合は、902で、tikはDkの読取りを開始した時
刻Jiにセツトされる。これはシステム関数
Current Timeによつて返される。このジヨブの
現在位置は、903でcik内に記録される。rが
キヤツシユ内にある場合904、速度推定アルゴ
リズムは単に戻る。rがキヤツシユ内になかつた
場合は905、レコードrはキヤツシユ内に読み
込まれなければならず、その時刻は905で変数
blocked time内に記録され、入出力が開始され
る906。入出力が完了した時、rがキヤツシユ
に読み込まれていた時ジヨブがブロツクされた合
計時間は、Current Time−blocked timeであ
る。907−912で、ジヨブがブロツクされて
いた合計時間は、そのジヨブが読み取つているす
べてのデータセツトに対して更新される。
第10図は、第2速度推定アルゴリズム副関
数、すなわちΔ時間単位ごとに呼び出される非同
期速度推定関数を示す。呼出し間隔は、1001
で時間Δだけ中断することにより実施される。任
意の速度を推定する前に、この流れ図で使用され
る変数cij、tij、vij、pij、bijは0にセツトされる。
2つのループ1003−1008,1002−1
010は、すべてのデータセツト内のすべてのジ
ヨブの位置を検査する。この位置が非ゼロである
場合、JiはデータセツトDjを読み取つている。ブ
ロツク1005は、達成可能な推定速度を計算す
る。これは、最後の速度推定値以来のデータセツ
ト内を移動した合計距離であると定義される。こ
れは、(cij−pij)を、tijからCurrent Timeまでの
時間間隔にジヨブが活動状態であつた合計時間で
割つたものである。これは単純にCurrent Time
−tij−bijである。1006では、変数は、次の間
隔にセツトされる。
使用時間推定アルゴリズム 使用時間推定アルゴリズムは、ジヨブ速度の各
再計算後に呼び出される。このアルゴリズムは、
データセツトDjを通るジヨブJiの推定速度を使用
して、JiがDjのレコードrを読み取る時間を計算
する。cijをDj内のJiの位置のレコードIDとし、
Vijをこのデータセツト内の速度とする。本アル
ゴリズムは、ジヨブJiが k/Vij 時間単位でレコードcij+kを読み取る(「使用す
る」)と推定する。
使用時間推定アルゴリズムは、先読み時間Lに
よつてパラメータ化される。L時間単位内に、ジ
ヨブJiは、データセツトDjのレコードcij+1、cij
+Kを使用する。ただし、K=Floor(L・Vij
とする。この場合、Jiに関するcij+pの使用時間
は(p/K)・Lと定義される。K個のレコード
cij+1、cij+2,……、cij+Kは、ジヨブJiの先
読み状態にあると言われる。
第11図は、第2実施例のキヤツシユ管理アル
ゴリズムを示す例である。水平線はデータセツト
を表し、ハツシユ・マークはレコードを表す。円
はキヤツシユされたレコードを示す。矢印は速度
及びジヨブ1,2,3の先読み状態を表す。たと
えば、ジヨブ2の先読み状態内の第1レコードは
レコード10である。ジヨブ2に関するレコード
10の使用時間は(1/5)・Lである。水平線の下
のセツトは、本実施例で使用され、以下で説明す
るテーブルまたはリスト、すなわち「最終ジヨブ
後」リスト、「見られなかつた」リスト、「使用時
間」リスト、及び「先取り候補」リストを表す。
Jiの先読み表内のK個すべてではなく一部のレ
コードをキヤツシユすることが可能である。この
場合、Jiの先読み表内のレコードのいくつかは、
デイスクから読み取られなければならない。デイ
スクから1つのレコードを読み取つて、それをキ
ヤツシユ内に挿入するのに必要な平均時間を、T
とする。セツト{cij+1、cij+2,……、cij
(p−1)}内にq個の非キヤツシユ化レコードが
ある場合、ジヨブjiに関するレコードcij+pの使
用時間は、次の通りである。
p/K・L+q・T この使用時間は、Jiがレコードpを使用できる
前に起きる入出力の遅延を含む。この例では、ジ
ヨブ1に関するレコード5の使用時間は、(2/
3)・L+Tである。
所与のレコードrを、いくつかのジヨブの先読
み状態に置くことができる。この場合、その使用
時間は、すべてのジヨブに関する最小使用時間と
して定義される。使用時間はキヤツシユ内の各レ
コードに対して計算される。使用時間はまた、キ
ヤツシユされていないが、あるジヨブの先読み状
態にあるレコードに対して計算される。これは先
取りのために使用され、後で説明する。どの場合
でも、UT[j,r]はデータセツトDj内のレコ
ードrの使用時間を表す。
第12図は、少なくとも1つのジヨブの先読み
状態にあるキヤツシユされた、及びキヤツシユさ
れていないレコードの使用時間をセツトする。最
初の2つのループ(ステツプ1201−1207)は、す
べての使用時間を無限の省略値にリセツトする。
(任意の大きな値。)第2の2つのループ(ステツ
プ1208−1224)は、すべてのデータセツト内のす
べてのジヨブを検査する。Jiが現在Dj(cij>0)
を読み取つている場合、その先読み状態の長さ
は、1215で計算される。変数qは、データセ
ツトDj内のJiの先読み状態内の非キヤツシユ・レ
コード数を記録する。この変数は、1216で0
に初期化される。1217−1224からのルー
プは、先読み表内のすべてのレコードを検査す
る。ステツプ1219は、Jiに関してデータセツトDj
内のレコードcij+pの使用時間を計算する。これ
には、q個の消失レコードに対する転送回数も含
まれる。これがすでに計算された使用時間より小
さい場合、レコードの使用時間は新しい値にセツ
トされる。ステツプ1221は、レコードpがキヤツ
シユされたか否かのテストを行ない、否である場
合には、1222でカウンタqが更新される。
使用時間推定アルゴリズムは、すべてのキヤツ
シユされたレコードを含むリストを作成し、この
リストは、キヤツシユ置換アルゴリズムによつて
使用される。このリストは、最大使用時間から最
小使用時間へソートされる。1つ問題がある。ど
のジヨブの先読みジヨブにも入らないキヤツシユ
されたレコードがありうる。これらのレコードは
2つのクラスに分けられる。第1のクラスは、レ
コードのデータセツト内の最後の活動ジヨブの後
ろにあるレコードである。第2のクラスは、デー
タセツト内の最後のジヨブの後ろにないが、どの
先読みジヨブ内にもないレコードを含む。使用時
間推定アルゴリズムは、キヤツシユされたレコー
ドの3つのソートされた下記のリストを作成す
る。
1 レコードのデータセツト内の最後のジヨブの
後ろのレコードを含むbehind last job list。
このリストは、最大のレコードIDから最小の
レコードIDにソートされる。第11図の例で
は、このリストは{3,2,1}である。
2 どの先読みジヨブ内にもなく、レコードのデ
ータセツト内の最後のジヨブの後ろにもないレ
コードを含むnot seen list。このリストは、最
大のレコードIDから最小のレコードIDにソー
トされる。第11図の例では、このリストは
{15,7}である。
3 先読みジヨブ内のレコードを含むuse time
list。このリストは、最大使用時間から最小使
用時間にソートされ、第11図の例では、{1
3,5,9,11,10}である。(この例で
は、T=(L/2)。) キヤツシユ置換アルゴリズムが、置換え決定を
するために、どのように3つのリストを使用する
かを、以下に説明する。
オーバーヘツドの考察 キヤツシユ内のレコード数をScとする。使用時
間推定アルゴリズムは、キヤツシユされたレコー
ドの3つのソートされたリストを作成する。これ
は時間O(Sc・log Sc)を必要とする。このオー
バーヘツドは、これらのリストを完全にソートし
なくても低下させることができる。各リストは、
Q組のレコードに区分することができ、各組はソ
ートされない。use time listに対しては、各組
は、ほぼ同じ使用時間をもつレコードを含む。次
のL時間単位中にデイスクからキヤツシユに転送
可能なレコードの最大数は、q=(L/T)であ
る。使用時間推定アルゴリズムは、q個の非キヤ
ツシユ・レコードが観察された後は、Jiの先読み
ジヨブ内のレコードを検査しないと仮定する。
use time list内の使用時間の値の範囲は[0,
2L]である。第i区分セツトは、i=0,1…
…,Q−1に対して、範囲 i/Q2L<UT[p]<(i+1)/Q2L 内の使用をもつ各キヤツシユされたレコードpを
含む。他のリストに対する区分も同様に定義さ
れ、各区分はほぼ等しいIDをもつレコードを含
む。
これらの区分は、0からQ−1まで指標付けさ
れた3つのテーブルによつて表現することができ
る。それらのテーブルは、1)behind last job
tableテーブル、2)not seen tableテーブル、
3)use time tableテーブルである。これらテー
ブルは、時間O(Sc)内に作成することができる。
使用時間推定アルゴリズムのオーバーヘツド
は、パラメータ及びLを設定することによつて制
御することができる。このパラメータは、速度及
び使用時間推定が呼び出される頻度を決定し、L
は先読みジヨブ処理の複雑さを制御する。最適値
は、特定のジヨブ・ミツクスの関数である。妥当
な値は、Δ=5〜10秒、L=2・Δである。最後
に、これらのアルゴリズムは、ジヨブが送る読取
り要求の処理を直接遅延させることはない。これ
らの2つのアルゴリズムは、背景ジヨブとして走
らせることができ、それらのオーバーヘツドだけ
がバツチ・ジヨブの性能に間接的に影響を与え
る。
キヤツシユ置換アルゴリズム キヤツシユ置換アルゴリズムは、新しく読み取
られたレコードがキヤツシユ内に挿入され、キヤ
ツシユが一杯になつた場合に、どのキヤツシユさ
れたレコードを置き換えるかを決定する。置き換
えられたレコードは、最高使用時間をもつもので
ある。構築によつて、not seen list内のレコード
は、use time list内のどのレコードの使用時間
より大きい使用時間をもつ。behind last job
list内にあるデータセツトDj内のレコードpの次
の使用時間は、新しいバツチ・ジヨブがDjの読
取りを開始する時刻によつて決定される。キヤツ
シユ置換アルゴリズムは、この時間がnot seen
list内のレコードの使用時間より大きい、と仮定
する。2つのレコードpとp+1がともに
behind last jobリスト内にある場合、レコード
p+1はより高い使用時間をもつことになる。こ
れは、なぜbehind last job listが最大レコード
IDから最小レコードIDにソートされるのかを説
明する。NOT seen listを最大レコードIDから
最小レコードIDにソートする理由は、比較的遅
い読取り装置の前でレコードをデータセツト内に
置き換えることを回避するためである。経過時間
が最適化のための性能基準である場合、これは重
要である。
キヤツシユ置換アルゴリズムはまず、必要に応
じて、すべてのレコードをbehind last job list
内に置き換え(第15図の1501,1502)、
次に必要があればすべてのレコードをnot seen
list内に置き換え(1503,1504)、最後に
すべてのレコードをuse time list内に置き換え
る(1505,1506)。要求がまだ満たされ
ない場合、速度及び使用時間推定アルゴリズムは
再実行され1507、スチールが再度試みられ
る。
3つの区分テーブルが3つのリストの場所で使
用される場合、その置換順序は次のとおりであ
る。1)behind last job table、2)not seen
table、3)use time table。3つのテーブルは、
すべてインデツクスQ−1から下に0まで検査さ
れ、第1非空セツトの頭が置き換えられる。走査
オーバーヘツドは、3・Qリストをそれらのスチ
ール順に連結して単一リストを形成することによ
り、解消することができる。
先取りアルゴリズム 各データセツトDjは、Djを読み取つているバ
ツチ・ジヨブのためのレコードを先取りする専用
先取りジヨブをもつ。本実施例では、データセツ
トとデイスクの間に1対1の写像があると仮定す
る。1度にただ1つの入出力がデイスク上で進行
可能で、これは1データセツトにつき2つ以上の
先取りジヨブは必要でないことを意味する。本発
明の先取りアルゴリズムは、次の場合に対して容
易に普及させることができる。
1 1デイスクあたり多数のデータセツト 2 多数デイスクを占有するDS 3 多数の同期入出力を支援するデイスク データセツトDjからのレコードが先取りされ
る順序は、使用時間推定アルゴリズムによつてセ
ツトされた使用時間(デツドライン)に基づく。
先読みジヨブ内になく、かつキヤツシユされてい
ないレコードは、先取り候補と呼ばれる。第12
A図及び第12B図に示した使用時間推定アルゴ
リズムは、各データセツトに対して先取り候補レ
コードのリストを作成する。Djのリストは、
prefetch candidate[j]と表され、最小使用時
間から最大使用時間にソートされる。先取り候補
リストは、第13A,13B,13C図に示すよ
うに、第12図に3つの追加をすることにより作
成されるものとする。第1の追加は第13A図に
示され、第12図のステツプ1201に先行する。こ
の追加は、これらのリストを単純に初期化する。
第2の追加は第13図に示され、第12図のステ
ツプ1222に従う。
この追加は、これがジヨブの先読みテーブル内
に見いだされた初回である場合、先取り候補レコ
ードをこのリストに挿入する。第12図への最後
の追加は、使用時間をセツトするこれらの2つの
ループに従い(すなわち、第12図のステツプ
1206から出る「YES」経路に従う)、これらのル
ープを、第13図に示す。
候補レコードのリストは、最小使用時間から最
大使用時間にソートされる。第11図の例に対す
る先取り候補のリストは、8,4,12,14,
6である。
先取りリストが作成された後、非同期先取りジ
ヨブは作業を開始する。データセツトDjに対す
る先取りジヨブは、prefetch candidates[j]リ
ストの頭から次のレコードを取り除き、先取り入
出力をキヤツシユ・マネージヤに送る。第14図
は、データセツトDjに対する非同期先取りジヨ
ブの制御の流れを示す。各先取り候補は、判断1
401がもう候補がないことを判断するまで、リ
スト1402から削除され、キヤツシユ1403
に読み込まれる。
先取り候補リスト作成の時間的複雑性は、ソー
トによるO(Sc・iog(Sc))である。この複雑性
は、use time listsのために行なつたような未ソ
ート区分を使用してO(Sc)に短縮することがで
きる。先取りジヨブのCPUオーバーヘツドは、
各ジヨブが1回読取り当り極めて少数の入出力し
か実行しないので、無視できる。
本発明を2つの実施例に関して説明したが、本
発明がこれらの実施例のみに限定されないことを
当業者は理解できる。本発明を、その意図または
範囲から逸脱することなく、前記のように、かつ
特許請求したように使用できるシステム環境は多
数である。
【図面の簡単な説明】
第1図は、本発明のデータの流れを示す略図で
ある。第2図は、非主記憶データ空間が仮想キヤ
ツシユとして使用される第1実施例の略図であ
る。第3図は、第1実施例で使用されるキー制御
ブロツクを示す制御ブロツク構造図である。第4
A図と第4B図は、第1実施例の読取り要求に対
する制御の流れを示す流れ図である。第5図は、
第1実施例のページ・スチール処理のための制御
の流れを示す流れ図である。第6図は、第1実施
例のページ・スチール候補を識別するための制御
の流れを示す流れ図である。第7A図〜第7E図
は、第1実施例の実例使用を示し、入出力キユー
イングを示す制御ブロツク及びデータの流れ図で
ある。第8A図〜第8K図は、3つの読取り装置
が順次にデータセツトを読み取つている第1実施
例の使用法を示す制御ブロツク図である。第9図
は、第2実施例で使用される速度推定アルゴリズ
ムの第1副関数を示す流れ図である。第10図
は、第2実施例で使用される速度推定アルゴリズ
ムの第2副関数を示す流れ図である。第11図
は、第2実施例の使用例におけるジヨブ進行及び
テーブル内容の論理図である。第12A図S第1
2B図は、第2実施例のいくらかのレコードに対
する使用時間の計算を示す流れ図である。第13
A,13B,13C図は、先取り候補リストの作
成に必要な第12図への制御の流れの変化を示す
流れ図である。第14図は、第2実施例の非同期
先取りジヨブのための制御の流れを示す流れ図で
ある。第15図は、第2実施例のキヤツシユ置換
アルゴリズムの制御の流れを示す流れ図である。

Claims (1)

  1. 【特許請求の範囲】 1 ホスト・プロセツサと、入出力装置と、仮想
    記憶キヤツシユとを有し、このキヤツシユが、こ
    のキヤツシユを共有する複数の読取り装置により
    前記入出力装置のデータセツトから順次読み取ら
    れるデータをキヤツシユするデータ処理システム
    において、 (a) 追加データを前記仮想記憶キヤツシユ内に置
    くことができるようになる前に、前記キヤツシ
    ユ内の仮想ページをバツキングするバツキング
    記憶ページを開放するために、ページ・スチー
    ルが必要であることを判断するステツプと、 (b) 前記順次読取り装置の1つによる前記バツキ
    ング記憶ページの再使用までの、順次利用基準
    の推定時間に基づいて、スチールすべきバツキ
    ング記憶ページを判断するステツプと、 (c) 要求があり次第、バツキング記憶ページをス
    チールするステツプと、 (d) スチールされたページのターゲツトに達する
    まで必要なだけスチールし続けるステツプを含
    む、キヤツシユ管理方法。 2 (a) 各データセツト・ページが推定使用時間
    をもつ、前記データセツト・ページの先取り候
    補リストを作成するステツプと、 (b) 最小の推定使用時間をもつ前記データセツ
    ト・ページの1つを先取りするステツプ、 を含む、請求項1に記載のキヤツシユ管理方法。 3 再使用までの前記順次利用に基づく推定時間
    が、キヤツシユ内の仮想ページの位置及び次続の
    読取り装置からの仮想ページの距離に基づく要求
    に基づいて計算され、再使用までの前記推定時間
    の順(大きいものから小さいものへ)で第1にキ
    ヤツシユ内の初期読取り装置後の仮想ページを、
    第2以降は前記次続の読取り装置から最も遠い仮
    想ページをページ・スチールさせる、請求項1に
    記載のキヤツシユ管理方法。 4 さらに、先行読取り装置によつて現在読み込
    まれているレコードのための物理的入出力を要求
    している追跡読取り装置を一時的に、すなわち追
    跡読取り装置がキヤツシユから前記レコードを取
    り出せるように前記レコードがキヤツシユに置か
    れるまで、停止するステツプを含む、請求項3に
    記載のキヤツシユ管理方法。 5 さらに、2つ以上のデータセツトが順次読み
    取られており、返還記憶機構の使用を共有してい
    る場合は、データセツト・インデツクスを維持し
    増分して、すべてのデータセツトからラウンド・
    ロビン方式でバランスのとれたスチールを実行す
    るステツプを含む、請求項4に記載の方法。 6 再使用までの前記推定時間が、キヤツシユ内
    の仮想ページの位置と、次続の読取り装置からの
    仮想ページの距離と、キヤツシユを介して進行す
    る読取り装置の速度とに基づいて周期的に計算さ
    れ、再使用までの前記推定時間の順(大きいもの
    から小さいものへ)で第1にキヤツシユ内の初期
    読取り装置後の仮想ページを、第2に任意の読取
    り装置の先読み距離内にない仮想ページを、第3
    にある読取り装置の先読み距離内の仮想ページ
    を、ページ・スチールさせる。請求項2に記載の
    キヤツシユ管理方法。 7 前記推定時間がさらに、前記仮想ページと、
    キヤツシユまたはキヤツシユ解除された前記の次
    続の読取り装置との間のページの状態に基づいて
    いる、請求項6に記載のキヤツシユ管理方法。 8 ホスト・プロセツサと、入出力装置と、仮想
    記憶キヤツシユとを有し、このキヤツシユが、こ
    のキヤツシユを共有する複数の読取り装置により
    前記入出力装置のデータセツトから順次読み取ら
    れるデータをキヤツシユするデータ処理システム
    において、 (a) 前記仮想記憶キヤツシユ内の仮想ページをバ
    ツキングするバツキング記憶ページを開放する
    のにページ・スチールが必要であることを判断
    する手段と、 (b) スチールするバツキング記憶ページを決定す
    るために順次利用基準の再使用時間を推定する
    手段 を含む、キヤツシユ管理機構。 9 (a) キヤツシユ解除されたレコードの推定使
    用時間を計算するための手段と、 (b) 短い推定使用時間をもつレコードが最初に先
    取りされるように、前記データセツトのキヤツ
    シユ解除されたレコードを前記仮想記憶キヤツ
    シユに先取りするための手段 を含む、請求項8に記載のキヤツシユ管理機構。 10 前記再使用時間推定手段が、 (a) 前記読取り装置のRBA位置を含む、前記読
    取り装置の各々と関連したACBTと、 (b) イン・キヤツシユ・データのストレツチと関
    連したCLSBと、 (c) イン・キヤツシユ・データの前記ストレツチ
    の1つの中のページと、追跡読取り装置との間
    の最大距離を計算するための距離計算手段 を含む、請求項8に記載のキヤツシユ管理機構。 11 以前のレコード要求読取り装置がキヤツシ
    ユにレコードを読み込むために物理的入出力を開
    始した後、後続のレコード要求読取り装置を一時
    的に停止するための手段をさらに含む、請求項1
    0に記載のキヤツシユ管理機構。 12 2つ以上のデータセツトが順次に読み取ら
    れ、返還記憶機構の使用を共有している場合に、
    ラウンド・ロビン方式でページ・スチール候補と
    してデータセツトを選択すめためのデータセツ
    ト・インデツクス手段をさらに含む、請求項11
    に記載のキヤツシユ管理機構。 13 データセツトを介してジヨブが進行できる
    最良の速度を推定するために、速度推定手段をさ
    らに含み、前記推定最良速度はキヤツシユされた
    レコードのための再使用時間を計算するために前
    記再使用時間推定手段によつて使用され、キヤツ
    シユ解除されたレコードのための使用時間を計算
    するための推定使用時間を計算するために前記手
    段によつて使用される、請求項9に記載のキヤツ
    シユ管理機構。 14 前記再使用時間推定手段、及び推定使用回
    数計算のための前記手段が、前記データセツト内
    のジヨブの現在位置と先読み表内のページの位置
    との間の、キヤツシユされた、またはキヤツシユ
    解除されたページ状態に部分的に基づいて再使用
    回数及び使用回数を推定する、請求項13に記載
    のキヤツシユ管理機構。 15 ホスト・プロセツサと、入出力装置と、仮
    想記憶キヤツシユとを有し、このキヤツシユが、
    このキヤツシユを共有する複数の読取り装置によ
    り前記入出力装置のデータセツトから順次読み取
    られるデータをキヤツシユするデータ処理システ
    ムにおいて、読取り装置のグループからの入出力
    要求を調整して、読取り装置の前記グループの任
    意の1つ内で読取り装置間の入出力争奪を低減す
    るステツプを含む、キヤツシユ管理方法。 16 前記の入出力要求調整が、先行の読取り装
    置によつて現在読み込まれているレコードに対す
    る物理的入出力を要求している追跡読取り装置
    を、キヤツシユから前記レコードを取り出せるよ
    うに前記レコードがキヤツシユ内に置かれるま
    で、一時的に停止するステツプによつて実行され
    る、請求項15に記載のキヤツシユ管理方法。
JP2244138A 1989-10-20 1990-09-17 キヤツシユ管理方法及びキヤツシユ管理機構 Granted JPH03134746A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US424455 1989-10-20
US07/424,455 US5150472A (en) 1989-10-20 1989-10-20 Cache management method and apparatus for shared, sequentially-accessed, data

Publications (2)

Publication Number Publication Date
JPH03134746A JPH03134746A (ja) 1991-06-07
JPH0531177B2 true JPH0531177B2 (ja) 1993-05-11

Family

ID=23682690

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2244138A Granted JPH03134746A (ja) 1989-10-20 1990-09-17 キヤツシユ管理方法及びキヤツシユ管理機構

Country Status (3)

Country Link
US (1) US5150472A (ja)
EP (1) EP0423557A3 (ja)
JP (1) JPH03134746A (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0491463A2 (en) * 1990-11-30 1992-06-24 Matsushita Graphic Communication Systems, Inc. Data storage system
US5293609A (en) * 1991-04-19 1994-03-08 International Business Machines Corporation Hit-density-based replacement for data cache with prefetching
US5313631A (en) * 1991-05-21 1994-05-17 Hewlett-Packard Company Dual threshold system for immediate or delayed scheduled migration of computer data files
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
CA2097564C (en) * 1992-06-16 2004-05-25 David L. Phillips Method of coupling open systems to a proprietary network
JP3612339B2 (ja) * 1992-10-23 2005-01-19 株式会社日立製作所 データ処理方法および装置
US5404471A (en) * 1992-11-20 1995-04-04 International Business Machines Corp. Method and apparatus for switching address generation modes in CPU having plural address generation modes
US5416915A (en) * 1992-12-11 1995-05-16 International Business Machines Corporation Method and system for minimizing seek affinity and enhancing write sensitivity in a DASD array
JPH06180669A (ja) * 1992-12-14 1994-06-28 Nec Niigata Ltd キャッシュシステム
US5551002A (en) * 1993-07-01 1996-08-27 Digital Equipment Corporation System for controlling a write cache and merging adjacent data blocks for write operations
US5572645A (en) * 1994-03-01 1996-11-05 International Business Machines Corporation Buffer management policy for an on-demand video server
US5590381A (en) * 1994-06-30 1996-12-31 Lucent Technologies Inc. Method and apparatus for buffered video playback of video content distributed on a plurality of disks
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
US5586291A (en) * 1994-12-23 1996-12-17 Emc Corporation Disk controller with volatile and non-volatile cache memories
US6016520A (en) * 1995-07-14 2000-01-18 Microsoft Corporation Method of viewing at a client viewing station a multiple media title stored at a server and containing a plurality of topics utilizing anticipatory caching
JPH09265429A (ja) * 1996-01-23 1997-10-07 Fujitsu Ltd データ配信装置、記憶装置とその制御方法およびデータ転送システム
US5870551A (en) * 1996-04-08 1999-02-09 Lucent Technologies Inc. Lookahead buffer replacement method using ratio of clients access order offsets and buffer data block offsets
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
JPH10269027A (ja) * 1997-03-26 1998-10-09 Toshiba Corp ディスク装置及び同装置におけるバッファ管理制御方法
US6317818B1 (en) * 1999-03-30 2001-11-13 Microsoft Corporation Pre-fetching of pages prior to a hard page fault sequence
US6633968B2 (en) * 1999-03-30 2003-10-14 Microsoft Corporation Pre-fetching of pages prior to a hard page fault sequence
US6859399B1 (en) 2000-05-17 2005-02-22 Marvell International, Ltd. Memory architecture and system and multiport interface protocol
US6738865B1 (en) 2000-06-09 2004-05-18 International Business Machines Corporation Method, system, and program for demoting data from cache based on least recently accessed and least frequently accessed data
US6742033B1 (en) 2000-06-12 2004-05-25 Gateway, Inc. System, method and computer program product that pre-caches content to provide timely information to a user
US6662277B2 (en) * 2001-07-31 2003-12-09 Hewlett-Packard Development Company, L.P. Cache system with groups of lines and with coherency for both single lines and groups of lines
US7313560B2 (en) * 2002-12-09 2007-12-25 International Business Machines Corporation Data migration system and method
CN100407168C (zh) * 2003-09-29 2008-07-30 刘志明 层次化视频点播中的磁盘缓存替换算法
US7146466B2 (en) * 2004-03-23 2006-12-05 International Business Machines System for balancing multiple memory buffer sizes and method therefor
JP2016028319A (ja) * 2014-07-08 2016-02-25 富士通株式会社 アクセス制御プログラム、アクセス制御装置及びアクセス制御方法
US10802973B1 (en) 2019-07-01 2020-10-13 Bank Of America Corporation Data access tool

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4008460A (en) * 1975-12-24 1977-02-15 International Business Machines Corporation Circuit for implementing a modified LRU replacement algorithm for a cache
US4264953A (en) * 1979-03-30 1981-04-28 Honeywell Inc. Virtual cache
US4463424A (en) * 1981-02-19 1984-07-31 International Business Machines Corporation Method for dynamically allocating LRU/MRU managed memory among concurrent sequential processes
US4464712A (en) * 1981-07-06 1984-08-07 International Business Machines Corporation Second level cache replacement method and apparatus
US4636946A (en) * 1982-02-24 1987-01-13 International Business Machines Corporation Method and apparatus for grouping asynchronous recording operations
DE3379081D1 (en) * 1982-06-21 1989-03-02 Ibm Method and apparatus for managing a buffer pool referenced by batch and interactive process
US4603380A (en) * 1983-07-01 1986-07-29 International Business Machines Corporation DASD cache block staging
JPS62237547A (ja) * 1986-04-09 1987-10-17 Hitachi Ltd アドレス変換方式
US4926317A (en) * 1987-07-24 1990-05-15 Convex Computer Corporation Hierarchical memory system with logical cache, physical cache, and address translation unit for generating a sequence of physical addresses

Also Published As

Publication number Publication date
EP0423557A3 (en) 1991-11-06
EP0423557A2 (en) 1991-04-24
US5150472A (en) 1992-09-22
JPH03134746A (ja) 1991-06-07

Similar Documents

Publication Publication Date Title
JPH0531177B2 (ja)
US6317811B1 (en) Method and system for reissuing load requests in a multi-stream prefetch design
TWI393004B (zh) 用於動態改變快取記憶體順序清單大小之系統以及方法
JP4162184B2 (ja) データベース管理システムの実行情報を取得する手段を有する記憶装置
US6272600B1 (en) Memory request reordering in a data processing system
US6820173B1 (en) Data prefetcher with predictor capabilities
US20030009633A1 (en) Prefetch queue
JPH0628180A (ja) プリフェッチバッファ
US11620219B2 (en) Storage drive dependent track removal in a cache for storage
JP4219106B2 (ja) 動的優先順位外部トランザクション・システム
US7844777B2 (en) Cache for a host controller to store command header information
US5696932A (en) Method and system for estimating minumun requirements on a cache in a computer based storage system
US20040215891A1 (en) Adaptive memory access speculation
JPH08147218A (ja) キャッシュ制御装置
US7509461B1 (en) Method and apparatus for intelligent buffer cache pre-emption
JPH07325760A (ja) 情報処理システムにおける記憶制御方法および記憶制御装置
Zhang et al. Buffering and read-ahead strategies for external mergesort
JPH07182220A (ja) 分散ファイルシステムおよびそのファイルキャッシング方法
JP2002182978A (ja) 記憶サブシステム及び情報処理システム
Knafla Analysing Object Relationships to Predict Page Access for Prefetching.
US10678699B2 (en) Cascading pre-filter to improve caching efficiency
JP7311959B2 (ja) 複数のデータ・タイプのためのデータ・ストレージ
JPH0773035A (ja) 複数プロセツサ・システム
JPH06342401A (ja) 二次記憶制御装置
EP1426866A1 (en) A method to reduce memory latencies by performing two levels of speculation