JP2512675B2 - デ―タ処理制御方法及びコンピュ―タ・システム - Google Patents

デ―タ処理制御方法及びコンピュ―タ・システム

Info

Publication number
JP2512675B2
JP2512675B2 JP5017494A JP1749493A JP2512675B2 JP 2512675 B2 JP2512675 B2 JP 2512675B2 JP 5017494 A JP5017494 A JP 5017494A JP 1749493 A JP1749493 A JP 1749493A JP 2512675 B2 JP2512675 B2 JP 2512675B2
Authority
JP
Japan
Prior art keywords
ses
cache
data
storage
storage class
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
JP5017494A
Other languages
English (en)
Other versions
JPH0683782A (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 JPH0683782A publication Critical patent/JPH0683782A/ja
Application granted granted Critical
Publication of JP2512675B2 publication Critical patent/JP2512675B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • 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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、共用電子記憶装置(S
ES)における記憶管理の基礎を提供するものである。
記憶域分離の目標を達成し、ユーザ定義の記憶クラス単
位であるいは記憶クラス間で所定のキャッシュ・ヒット
率を達成するために、記憶域再利用プロセス(storage
reclaiming process)を制御しSES記憶資源の割振り
を制御するための、計装及び基本的制御が提供される。
【0002】
【従来の技術】本願発明は以下の出願に関連する。 "Configurable, Recoverable Parallel Bus"と題するN.
G.Bartow他の米国特許出願第839657号(1992年2月20日
出願)。 "High Performance Channels For Data Processing Sys
tems"と題するN.G.Barrow他の米国特許出願第839652号
(1992年2月20日出願)。 "Frame-Group Transmission And Reception For Parall
el/Serial Buses"と題するN.G.Bartow他の米国特許出願
第839986号(1992年2月20日出願)。 "Communication Messages Between Processors And A C
oupling Facility"と題するD.A.Elko等の米国特許出願
第860380号。 "Sysplex Shared Data Coherency Method and Means"と
題するD.A.Elko等の米国特許出願第860805号。 "Method and Apparatus For Distributed Locking of S
hared Data, Employing A Central Coupling Facility"
と題するD.A.Elko他の米国特許出願第860808号。 "Command Quiesce Function"と題するD.A.Elko他の米国
特許出願第860330号。 "Management Of Data Movement From A SES Cache To D
ASD"と題するD.A.Elko他の米国特許出願第860806号。 "Command Retry System"と題するD.A.Elko他の米国特許
出願第860378号。 "Integrity Of Data Shared Between Caches Over A Li
nk"と題するD.A.Elko他の米国特許出願第860800号。 "Management Of Data Objects used To Maintain State
Information For Shared Data At A Local Complex"と
題するJ.A.Frey他の米国特許出願第860797号。 "Recovery Of Data Objects Used To Maintain State I
nformation For Shared Data At A Local Complex"と題
するJ.A. Frey他の米国特許出願第860647号。 "Message Path Mechanism For Managing Connections B
etween Processors And A Coupling Facility"と題する
D.A.Elko他の米国特許出願第860646号。 "Method And Apparatus For Notification Of State Tr
ansitions For SharedLists of Data Entries"と題する
J.A.Frey他の米国特許出願第860809号。 "Method And Apparatus For Performing Conditional O
perations on Externally Shared Data"と題するD.A.El
ko他の米国特許出願第860655号。 "Apparatus And Method For List Management In A Cou
pled Data ProcessingSystem"と題するJ.A.Frey他の米
国特許出願第860633号。 "Interdicting I/O And Messaging Operations In A Mu
lti-System Complex"と題するD.A.Elko他の米国特許出
願第860489号。 "Method And Apparatus For Coupling Data Processing
Systems"と題するD.A.Elkoの米国特許出願第860803
号。
【0003】上記の関連特許出願は、シスプレックス
(SYStem comPLEX:システム複合体)環境で使用される
不揮発性「共用電子記憶装置」(SES)を記載してい
る。このシスプレックス環境は、それぞれがデータ項目
を記憶することができる複数のオペレーティング・シス
テムを含み、各オペレーティング・システム(OS)間
でデータ項目を共用するための共通の場所をSESの使
用により提供することができる。SES内のキャッシュ
中でのデータ項目の記憶と読取りを含めたSES内での
諸動作を実行するために、任意のオぺレーティング・シ
ステムから、当該OSに付加されたSES(付加SE
S)にコマンドが提供される。各オペレーティング・シ
ステムは、中央処理複合体(CPC)を含み、CPC
は、1または複数のプロセッサとCPC主記憶装置(M
S)を制御する1つまたは複数のソフトウェア・サブシ
ステムを含んでいる。CPCは、CPCからSESに発
行されるコマンドを使って付加SESの動作を制御し、
プロトコルを使用してその動作を相互に訓練することが
できる。
【0004】シスプレックス内のすべてのCPCが特定
のSESのサービスを受けられるのではなく、特定のS
ESキャッシュのサービスを受けられるものはさらに少
ない。SESは1個または複数のキャッシュを含む。特
定のSESキャッシュのサービスを受けられるCPC
を、SESキャッシュに「付加(attach)」されている
という。シスプレックス内のあるCPCはSES内にあ
るキャッシュに付加され、他のCPCは別のキャッシュ
に付加され、または両方のSESキャッシュに付加され
るCPCも、どのSESキャッシュにも付加されないオ
プションをもつCPCもある。
【0005】シスプレックスは、単一の中央電子複合体
(CEC)内で構成される。このCECは、IBM P
R/SM(プロセッサ資源/システム管理機構)などの
ハイパーバイザ・システムによって制御されたIBMメ
インフレームとすることができる。PR/SMで制御さ
れるシステムは、システムのCPU、記憶域及び入出力
資源を複数の区画に分割する。各資源区画は一般に、区
画内での計算機動作を制御するオペレーティング・シス
テム(ソフトウェアによる制御プログラム)を含み、そ
れによって制御される。PR/SM区画は互いに分離さ
れており、したがって異なる区画中で走る様々なオペレ
ーティング・システムが互いに干渉することはなく、衝
突なしにまたその動作中に安全保護を損うことなく走行
する。シスプレックスDASDは、SESに付加された
オペレーティング・システムを含むすべての区画に共通
に提供される。IBM PR/SM中で使用される様々
な機能及び方法は、米国特許第4843541号、米国
特許出願第752149号(1991年8月29日出
願)及び同742775号(1991年8月8日出願)
に記載され特許請求されている。
【0006】SES中で共用可能なデータ項目を提供す
るため、その付加CPCのうちのどれもが、DASDか
らのデータ項目にアクセスし、次いでSES中にデータ
項目を書き込むための書込みコマンドをSESに発行す
ることができる。そのデータ項目は書込みコマンドと共
にCPCからSESに送られる。どの付加CPCも、当
該CPC間でデータ項目を共用できるようにSES中に
記憶された任意のデータ項目を読み取るための読取りコ
マンドをSESに発行することができる。
【0007】シスプレックスDASDは、シスプレック
ス中の共用可能データ項目のコピーを含む。SESの記
憶容量は一般にDASDの容量よりも少ないので、SE
Sは一般にシスプレックス中のすべてのデータ項目のコ
ピーを含むことはない。SES中に記憶されるコピーは
DASD中の同じデータ項目のコピーであってもよい
が、SES中に記憶されるコピーはDASD中に記憶さ
れた同じデータ項目の異なるバージョン(更新版)であ
ってもよい。
【0008】DASDからのデータ項目にアクセスする
CPCは、SES中にデータ項目を記憶する必要はな
い。しかし、各付加CPCは、その共用DASDデータ
項目のすべてをSES中に「登録」する必要がある。と
いうのは、SESは、SES中に記憶されていないデー
タ項目のデータ・コヒーレンシ(coherency)も含め
て、シスプレックス中の共用データ項目のデータ・コヒ
ーレンシをも制御する必要があるからである。SESデ
ータ・コヒーレンシ動作については、米国特許出願第8
60805号に記載され特許請求されている。上記出願
は、米国特許出願第628211号(1990年12月
14日出願)に関連する。
【0009】登録を行うには、SESが、そのデータ項
目を含むCPCバッファの識別を(データ項目の名前を
記憶しているSESのディレクトリ・エントリ中など
に)記憶することになる。データ項目の名前に関連する
ディレクトリ・エントリが見つからない場合は、登録プ
ロセスで、ディレクトリ・エントリを割り振り、その中
にDASDからアクセスされるデータ項目の名前を記憶
する。
【0010】SES登録は、そのデータ項目がSES中
に記憶されているかどうか、あるいは登録しているCP
Cがそのデータ項目をSES中に記憶させるつもりがあ
るかどうかにかかわらず行われる。データ項目名に対す
る関心を登録する目的で使用されるこのディレクトリ・
エントリは、そのデータ項目のコピーが現在、様々なC
PCの間に分散された多数のCPCバッファ中に記憶さ
れていることを示す。
【0011】CPCがあるデータ項目を変更するとき
は、CPCはSESに、他の任意のCPCバッファ中に
あるそのデータ項目の他の各コピーを無効にするコマン
ドを出さなければならない。
【0012】CPCバッファ中のデータ項目が変更され
る場合、CPCが変更済みデータ項目を付加SESキャ
ッシュ中に記憶するなら、シスプレックスの効率は著し
く向上する。というのは、他のCPCが更新済みデータ
項目を獲得する速度が、DASDからよりもSESから
の方がずっと速いからである。
【0013】共用不能データ項目だけは、付加SESキ
ャッシュに登録する必要がない。共用不能データ項目と
は、それにアクセスする特定のCPC内でのみ使用でき
るものである。
【0014】記憶資源の分配は、従来技術では、IBM
MVS/システム資源マネージャ(SRM)などのシ
ステム複合体内で行われてきた。このSRMは、計算機
システム中の実行タスクへの記憶域その他の資源の割振
りを制御する。記憶域は、各周期時間間隔にわたって行
われる測定及びそれに基づく計算に基づいて、主記憶装
置とDASDの間でデータ・ページを交換することによ
り、複数のドメイン間に分配される。
【0015】米国特許第3702006号及び第418
3083号は、ある時間間隔にわたるカウント(カウン
タ)を周期的に使って入出力装置へのタスクの割振りを
計算する、入出力装置の動作負荷平衡化の例である。
【0016】ハードウェア・キャッシュ記憶機構とシス
テム主記憶装置は、これまでLRU法による空間の再利
用(reclaiming)を用いて管理されてきた。IBM/M
VSオペレーティング・システムは、データ・ページを
DASDにスワップアウトすることにより、コンピュー
タ・システムの主記憶装置中に自由空間を有する。メモ
リが一杯になる前に空間を解放するために、閾値を使っ
て、いつ再利用を行うかを決定している。このようなデ
ータ管理プロセスは、新しいデータで置換される再利用
すべきページを、LRU法による選択を用いて記憶空間
の再利用を制御するために使用している。
【0017】これまで「クラス」という語は、印刷、穿
孔、及びネットワーク動作を制御するためのVM/37
0スプール・ファイル・クラスなどのような、レコード
処理制御において使用されてきた。しかし、任意のSE
S型エンティティ内での記憶制御処理に関して使用され
ることは知られていなかった。
【0018】本発明は、自明でない改善を得るために従
来技術を基礎として構築される。
【0019】
【発明が解決しようとする課題】本発明の一目的は、S
ES中で新しいキャッシュ構造を割り振ること、すなわ
ち既存のSESキャッシュの構造を変更することにあ
り、SESからキャッシュを除去することである。
【0020】本発明の他の目的は、シスプレックス中の
データ項目を分類するために、SESキャッシュのユー
ザによって割り当てられる任意の数の記憶クラスを提供
することである。
【0021】本発明の他の目的は、データ項目へのアク
セスに関する性能要件の違いに基づいて、データ項目を
クラスに分類できるようにすることである。
【0022】本発明の他の目的は、プログラム制御式の
手段によって、割振り済みのデータ項目のクラス間でS
ESキャッシュ中の記憶域の使用を平衡化させることが
できるようにすることである。
【0023】本発明の他の目的は、プログラミングによ
って、異なるクラスのデータ項目に対する要求が経時的
に変化するとき、リアルタイム要件に基づいてクラス間
でSES記憶域の使用を平衡化させることができるよう
にすることである。
【0024】本発明の他の目的は、SESキャッシュ中
の記憶クラスを管理するため、低いオーバーヘッドでC
PCプログラミングをサポートすることである。
【0025】本発明の他の目的は、ローカル・キャッシ
ュの参照パターンをSESキャッシュに反映できるよう
にするプログラム制御式の手段によって、記憶管理機能
を制御できるようにすることである。
【0026】本発明の他の目的は、SES機構での記憶
管理プロセスの実行中に、ローカル・プロセッサの記憶
キャッシュ中に含まれるデータ項目の継続的な保全性を
確保する機構を提供することである。
【0027】
【課題を解決するための手段】本発明が前提とするシス
プレックスの構成例を以下に説明する。図24にシスプ
レックス(SYStem comPLEX:システム複合体)システム
を示す。このシステムは複数のコンピュータ処理複合体
(CPC)CPC−1〜CPC−Mを含んでいる。これ
らは1台から多数台まで任意の数のCPCを表し、すべ
てが1個または複数のSES(共用電子記憶)装置に接
続されている(図24にはSES装置101を1台示し
てある)。
【0028】各CPCは図25に示すタイプのもので、
IBM ESA/390体系に従って設計された現在市
販中のIBM ES/9000モデル900などの多重
プロセッサでよい。IBM ESA/390体系は、
「エンタープライズ・システム体系(ESA/390)
解説書(POP)〔Enterprise Systems Architecture
(ESA/390)Principles of Operations(POP)〕」、I
BM資料番号SA22−7201−00に指定されてい
る。各CPCは1つまたは複数のオペレーティング・シ
ステムを有する。複数のオペレーティング・システムを
有するCPCがある場合、その資源を、IBM PR/
SM機能を使って複数のオペレーティング・システム間
で論理的に区分しなければならない。システム間チャネ
ル(ISC)がSES101とCPC1〜Mの間に接続
されている。CPCに接続されたISCは、CPC中の
マイクロコードまたはハードウェアとの間で信号をやり
取りする。
【0029】シスプレックス中の各CPCは、記憶階層
で動作する。この記憶階層は、たとえばCPCの各CP
U中の専用高速ハードウェア・キャッシュ201−1な
いし201−N、すべての専用プロセッサ・キャッシュ
にアクセス可能な共用ハードウェア・キャッシュ20
2、CPC中のすべてのプロセッサに共用される主記憶
装置(MS)204、MSに付随するがMSアドレス可
能性をもたないハードウェア記憶域(HSA)205を
含むことができる。しかし、DASDはDASD制御
(制御部)によってグループ化され、シスプレックス中
の任意のCPCがそのグループ中の任意のDASDにア
クセスできるようになっている。本明細書では、これを
「シスプレックスDASD」207と称する。
【0030】CPC/SESの物理的接続208は、一
端が当該のCPC中のMS制御装置に接続され、他端が
SES装置に接続された当該のチャネルによって提供さ
れる。この当該のチャネル・バスは、直列の光ファイバ
で構成することができる。バスは単一ファイバでもよい
が、並列に動作する複数のファイバから構成し、それら
の間でデータを「ストライピング」(インターリーブ)
してもよい。
【0031】ハードウェアの意味では、SESは、それ
に接続されたすべてのCPCが共通に使用できる、大型
のランダム・アクセス・メモリと考えることができる。
接続されたCPCは、SESを使って共用データ・レコ
ード及びファイルを一次的にまたは半永久的に記憶する
ことができる。したがって、SESは、SESに付加さ
れたすべてのCPCに共通な、CPC中の拡張記憶(E
S)段にほぼ対応する階層レベルをもつ、システム中の
記憶階層の一構成要素と考えることができる。
【0032】本発明を使用するシスプレックスでは、1
つまたは複数のSESエンティティが、シスプレックス
中のあらゆるCPCのMS/ESに物理的に接続するこ
とができる。シスプレックス中のすべてのCPCをSE
Sに接続する必要はない。たとえば、同じプログラミン
グ・サブシステムを動作させるCPCの一グループだけ
にSESを接続してもよい。そして異なるCPCのグル
ープは、シスプレックス中の異なるSESに接続して、
異なるプログラミング・サブシステムを走らせることが
できる。
【0033】本発明の前提となる基本的特徴は、通常は
シスプレックスの共通DASDに記憶されるデータ用の
高速キャッシュとしてSESを使用することである。た
だし、CPC/SES/DASDの物理的接続は、直接
階層経路中になくてもよい。シスプレックス中のどのC
PCも、共通DASDからよりもずっと速くSESから
のレコードにアクセスすることができる。すなわち、S
ES中では、トラック間でのヘッド移動待ちや、要求さ
れたDASDレコードに達するためのトラック回転待ち
など、DASDで見られる電気機械的遅延なしで、デー
タ要素またはレコードに迅速にアクセスできる。
【0034】SESキャッシュを割り振るための特別の
コマンドが設けられている。また、異なるプログラムを
使用して、付加された複数のCPCサブセットが共用す
るデータをそれぞれのキャッシュに処理させるなど、同
じSES内で複数のキャッシュを割り振ることもでき
る。
【0035】各SESキャッシュは、ディレクトリ10
2、データ域103、ローカル・キャッシュ・レジスタ
104、及びキャッシュ制御機構105を含んでいる。
キャッシュのデータ域部分が使用されない場合は、その
サイズを0にしてもよい。SESキャッシュ中の各有効
ディレクトリ・エントリは、付加されているいずれかの
CPCによってSES中で登録されたデータ要素の名前
を格納している。SESは、登録済みデータ要素中にそ
のデータのコピーを含んでいても含まなくてもよい。S
ESに登録済みの名前は、シスプレックス中の1つまた
は複数のCPC中のそのデータ要素の1つまたは複数の
コピーの名前でもある。さらに、このディレクトリ名
は、ディレクトリ207に接続されたDASDバンク中
のDASD1〜Kのうちの1つに記憶されている(また
は記憶されようとしている)データ要素のコピーをも識
別する。
【0036】本発明は、SES(共用電子記憶装置)キ
ャッシュとして使用される条件にない大量の記憶域(st
orage)を当初に含む、SESにおける記憶制御に関連
する。本発明では、最初にシスプレックス内のCPC
(中央処理複合体)中のソフトウェア及びCPCによっ
て発行されるコマンドを使って、SES記憶域を構築す
る。このソフトウェアは、SESキャッシュとしてセッ
トアップされる、キャッシュ・ディレクトリ、キャッシ
ュ・データ域及びキャッシュ制御(テーブル)用のSE
S記憶空間の量を指定する。これらの特別なCPCコマ
ンド(最初にSESキャッシュを構築するためにSES
に対して発行されるコマンド)は、キャッシュが必要で
なくなった時に割振り解除するためにも使用される。こ
れらのキャッシュ割振りコマンドを使って、単一のSE
Sエンティティ内に複数のキャッシュを構築し、将来い
つでもその数を変更することも可能である。
【0037】最初に、割振り済みのSESキャッシュに
おける制御テーブル用以外の記憶空間を自由空間のプー
ルに入れる。すべての自由空間に単一のプールを使用し
てもよく、新しいSESキャッシュのディレクトリ・エ
ントリ用の空間を提供するためのディレクトリ自由プー
ルや、SESキャッシュに記憶されているデータ項目用
の空間を提供するためのデータ域自由空間など、異なる
用途の空間の割振りに対して別々のプールを使用しても
よい。
【0038】最終的に、自由プール中の空間はすべて割
り振られ、CPCコマンドが要求している新しいディレ
クトリ・エントリ用の自由空間はなくなる。そのとき
は、十分な空間の見つからなかった新しい要求のそれぞ
れについて有効な情報を含むキャッシュ空間を再利用
(reclaim)するため、現在有効な空間を無効にしその
空間を新しい要求に再割振りしなければならない。この
再利用プロセスでは、新しいディレクトリ・エントリを
記憶し、新しいデータ項目を記憶し、既存のデータ項目
のサイズを大きくするためのSES空間が提供される。
【0039】本発明は、SES再利用プロセスで使用さ
れるハードウェア/マイクロコードの再利用制御を提供
する。この制御にあっては、CPCによって割り当てら
れ、SESにおける記憶域の再割振りを管理するため
に、再利用プロセスで独自の方式により利用される、記
憶クラスが用いられる。SESは、RAM記憶装置を含
むだけでなく、本明細書で記述する記憶制御プロセスを
実行するためにCPCコマンドによって開始されるプロ
グラムまたはマイクロプログラムを実行する、1個また
は複数のプロセッサまたはマイクロプロセッサをも含
む。
【0040】SES再利用制御は、SESキャッシュの
割振り構造化の際にセットアップされる、ある最大数を
有する記憶クラスをサポートする。SESキャッシュ動
作中の異なる時点に、可変数の記憶クラスが使用中であ
る可能性がある。任意の時点で使用中の記憶クラスは、
現SESキャッシュのディレクトリ・エントリ中の記憶
クラス・フィールドで示される。
【0041】サポートされる各クラス用に提供される再
利用制御は、再利用ベクトル、再利用カーソル、関連再
利用カウンタ、及び最近性待ち行列(recency queue)
を含む(図1参照)。各再利用ベクトルは、サポートさ
れる記憶クラスごとに1つずつ複数のベクトル要素を含
んでいる。関連再利用カウンタは、関連するベクトル中
のベクトル要素(RVE)と同数のカウンタ要素(CTREL)
を含んでいる。SESへの特定のCPCコマンドの制御
下で、選択された記憶クラスのベクトル中の諸要素が諸
値で初期設定され、それぞれのカウンタ要素に、対応す
るベクトル要素中に含まれる値がロードされる。各記憶
クラスの最近性待ち行列は、最近にアクセスされたもの
から順に並べた、SESキャッシュ中のその記憶クラス
の全ディレクトリ・エントリを表す。各ディレクトリ・
エントリ中での待ち行列の表現は、異なる2つの方式で
スレッド化される。一方のスレッドはその記憶クラスの
未変更のデータ項目を表すディレクトリ・エントリだけ
を接続し(未変更スレッド)、もう一方のスレッドはそ
の記憶クラスのすべてのディレクトリ・エントリ(変更
済みのデータ項目を表すものと未変更のデータ項目を表
すものの両方)を接続する(変更済/未変更スレッ
ド)。各記憶クラスの待ち行列のヘッダは、未変更スレ
ッドにおけるLRU(最も以前に使用された)ディレク
トリ・エントリも、変更済/未変更スレッドにおけるL
RUディレクトリ・エントリも位置決めすることができ
る。未変更スレッドのLRUディレクトリ・エントリ
(及びそれによって位置決めされる任意のSES記憶デ
ータ)だけが、任意の記憶クラスで再利用の対象とな
る。
【0042】いつでも、サポートされる再利用ベクトル
(及びそれに対応するカウンタ)のうちで有効に使用中
であるものの数はそのすべてではなく、その瞬間にキャ
ッシュ中で使用中の実際の記憶クラスの数によって決ま
る。
【0043】サポートされるどの記憶クラスについての
再利用制御も、CPCコマンドによって活動化される。
活動化されると、指定された記憶クラスの再利用制御
は、その指定された記憶クラスについて1つまたは複数
のイネーブルされた(目標)記憶クラスからの記憶空間
を「要求時(on-demand)」に再利用する。各再利用動
作によって、指定記憶クラスのサイズが増大し、目標記
憶クラスはその犠牲となってその分だけサイズが縮小す
る。
【0044】目標記憶クラスの特定は、SES宛のCP
Cコマンドによって行われる。CPCコマンドは、CP
Cソフトウェアによってセットアップされ、このCPC
ソフトウェアがSESにコマンドを発行する。CPCコ
マンドは、既存の任意の記憶クラスを、任意の指定記憶
クラスの目標記憶クラスとしてイネーブルすることがで
きる。
【0045】従って、「指定記憶クラス」とは、再利用
動作によって解放された記憶空間を受け取る任意の記憶
クラスのことである。また「目標記憶クラス」とは、再
利用動作で指定記憶クラスが使用する記憶空間を解放
(無効に)する任意の記憶クラスのことである。したが
って、再利用動作は、指定記憶クラスのために目標記憶
クラスから空間を「スチール(steal)」するものと考
えられる。指定記憶クラスを含めて、使用中の記憶クラ
スのどれもすべて目標記憶クラスとして機能させること
ができる。
【0046】各再利用動作では、目標記憶クラスの有効
ディレクトリ・エントリを取り出し、そのエントリを無
効にし、そのエントリの空間を指定記憶クラスが使用で
きるようにする。「未変更の」データ項目に関連するデ
ィレクトリ・エントリだけが(SESに記憶されていよ
うとそうでなかろうと)再利用動作のために選択でき、
こうしたディレクトリ・エントリは「未変更ディレクト
リ・エントリ」と呼ばれることがある。有効なSESキ
ャッシュの各ディレクトリ・エントリは、SESキャッ
シュに記憶されたデータ項目をもつことができる。同じ
データ項目のバックアップ・コピーがシスプレックスD
ASDに記憶される。これはデータ項目の最新バージョ
ンでなくてもよいが、SESコピーについてはどれも最
新バージョンである。
【0047】SESまたはCPCローカル・キャッシュ
中のデータ項目のコピーは、そのDASDコピーに対し
て「変更済」または「未変更」と見なされる。SESま
たはCPS中の未変更コピーは、そのDASDコピーと
同じデータを有する。SES中の未変更データ項目を示
すSESキャッシュ・ディレクトリ・エントリが再利用
の対象となる。SES中のデータ項目の変更済みコピー
に関連するSESキャッシュ・ディレクトリ・エントリ
は、「変更済」データ項目を示すディレクトリ・エント
リから「未変更」データ項目を示すディレクトリ・エン
トリに変換するために、まずそのデータ項目をDASD
にキャストアウト(castout)してからでないと、その
ディレクトリ・エントリが(SESに記憶されている場
合はデータ項目も)再利用できるようにならない。
【0048】各再利用動作では、各記憶クラスの最近性
待ち行列の待ち行列ヘッダ中で示される、目標記憶クラ
スの現LRU未変更ディレクトリ・エントリを再利用す
る。再利用されるディレクトリ・エントリの関連するデ
ータ項目がSESに記憶されている場合、その関連デー
タ項目が占める空間がSESデータ域中で解放される。
次に、指定記憶クラスのSES中の記憶域を現在要求し
ている別のデータ項目が、その解放された空間にオーバ
ーレイすることができる。再利用動作によって解放され
たが、記憶空間に対する現在の必要を満たすのに必要と
されない余分の空間があれば、使用可能空間の自由プー
ルに入れられ、後続の再利用動作で使用できるようにな
る。
【0049】指定記憶クラスの再利用制御についての活
動化が行われないと、それらの再利用制御は再利用動作
を実行できない。活動化はCPCコマンドによって行わ
れる。このコマンドは、指定記憶クラスに関連するベク
トル中のそれぞれの要素を初期設定するため、目標値の
イネーブルまたはディスエーブルを実行する。再利用活
動化コマンドは、各指定記憶クラスごとに、そのベクト
ル要素をそれぞれ初期設定するため、別々に発行され
る。そのコマンドの各発行ごとに、どの指定記憶クラス
に関しても異なる目標記憶クラス用に異なる1組の再利
用値をセットアップすることができる。
【0050】CPCによってあるベクトルが活動化され
ると、関連するカウンタを初期設定するため、初期設定
された再利用値が対応するカウンタ要素中にロードされ
る。
【0051】関連する目標記憶クラスの再利用動作をデ
ィスエーブルするには、所定のディスエーブル値(0な
ど)が任意のベクトル要素にロードされる。したがっ
て、ディスエーブルされたベクトル要素は、その関連記
憶クラスを再利用プロセスから分離するため、この記憶
クラスが、その現ディレクトリ・エントリ及びSESに
記憶されているデータ項目を失うのを防止する。
【0052】関連する記憶クラスをイネーブルして、目
標記憶クラスとして動作できるようにするには、イネー
ブル値(非0の正の値など)が各ベクトル要素にロード
される。イネーブル値の大きさにより、関連目標記憶ク
ラスのベクトル要素によって許容される再利用動作の数
が決定される。各再利用動作ごとに、関連再利用カウン
タ要素中の値が、ディスエーブル値に向かって減分(増
分)される。カウンタ中の減分(増分)値が所定のディ
スエーブル値に達すると、この関連目標記憶クラスから
の再利用が停止する。その後、関連目標記憶クラスから
の再利用を続行したい場合は、対応するベクトル要素か
らカウンタ要素を再ロードしなければならない。
【0053】サポートされる各記憶クラスの再利用制御
は、カーソルと反復因数(repeat factor)をも含む。
カーソルは、指定記憶クラスの現目標記憶クラスを位置
決めする。最初、カウンタがそのベクトルからロードさ
れると、関連するカーソルが、所定のカウンタ要素(最
初にイネーブルされたカウンタ要素など)を位置決めす
るように設定される。
【0054】再利用動作は、異なる指定記憶クラスにつ
いてSES中で独立に動作する。再利用動作は、SES
キャッシュ中でCPC読取りコマンドまたはCPC書込
みコマンドがミスのとき、並びにSESキャッシュ中の
新しいディレクトリ・エントリを必要とする要求を満た
すのに十分なキャッシュ記憶空間が存在しないとき、ま
たはSES自由空間のプールに十分な空間が現在存在し
ない場合に新しいキャッシュ・データ要素もしくはサイ
ズの増大したキャッシュ・データ要素をSESキャッシ
ュ・データ域に記憶する必要があるとき、に行われる。
【0055】ミスとなった要素が空間を要求していると
き、再利用制御はSES中で自動的に動作して、このミ
スとなったコマンド中で指定記憶クラスに割り当てられ
たベクトル/カウンタを選択し、必要な空間を解放する
ために再利用動作を実行する。次いで、選択されたベク
トル/カウンタに対する現カーソル設定により、ミスに
なった要求を満たすために必要な空間を得るために開始
される再利用動作の、現目標記憶クラスが選択される。
この第1の再利用動作の後に、SES中にデータ項目を
記憶することを求める上述のミスとなった要求を満たす
のに十分な空間が依然として存在しない場合は、さらに
次の再利用動作が開始される。ミスになった要求を満た
すのに十分な空間が得られた後は、その指定記憶クラス
で別のCPC要求がミスとなり、SESキャッシュ空間
を必要とするようになるまで、指定記憶クラスの再利用
制御は睡眠状態になる。
【0056】再利用動作の数により、現目標記憶クラス
のカウントがそのディスエーブル値に達したときは、あ
るイネーブル値を現在もつ次のカウンタ要素を位置決め
するため、カーソル値が再利用制御によって増分され、
その関連目標記憶クラスから空間がスチールされる。カ
ウンタ要素はラウンド・ロビン方式で順次選択してよい
が、予め決定されたどんな目標シーケンスを使用するこ
ともできる。
【0057】すべてのカウンタ要素がディスエーブル値
を含むとき、またはディスエーブル値に達したときは、
もはやイネーブルされた目標記憶クラスをもたないの
で、指定記憶クラスに関する再利用は停止する。次い
で、指定記憶クラスに関する反復因数要素中の値を調べ
て、それがイネーブル値(非0値など)かどうか判定す
る。反復因数がイネーブル値である場合は、それがその
ディスエーブル値に向かって減分(増分)され、指定記
憶クラスに関する関連カウンタ中の要素に再度関連ベク
トル中の値がロードされる。
【0058】反復因数がそのディスエーブル値であり、
またはディスエーブル値に達し、かつすべてのカウンタ
要素がディスエーブル値を含むときは、どの目標記憶ク
ラスからもそれ以上の再利用は行われない。これは、そ
の指定記憶クラスの「デフォルト」状態であり、指定記
憶クラスは、それ自体の現在有効なLRU未変更ディレ
クトリ・エントリ(その最近性待ち行列ヘッダ中で示さ
れる)から記憶空間をスチールすることしかできない。
【0059】本発明はまた、SES中で再利用プロセス
を制御するための他の特別な特徴も提供する。1つの特
徴は、CPC中のアクセスされ、CPCが再利用プロセ
スによってSES中で無効にされることを望まない、デ
ータ項目の走行リストをCPC中で生成できることであ
る。このリストは、データ項目がCPC中でアクセスさ
れる毎にそのデータ項目の名前をリストに追加すること
により、CPC中で生成される。CPCは周期的に特殊
コマンドを使ってSESにそのリストを送り、リストさ
れたどの項目も、再利用の対象となる待ち行列中の唯一
のディレクトリ・エントリであるLRUディレクトリ・
エントリとならないように、リスト中のデータ項目をデ
ィレクトリ・エントリとして表したその最近性待ち行列
を並べ換えるようSESに要求する。
【0060】他の特徴は、各記憶クラスでどれだけの読
取りミスが発生したかなど、特定の記憶クラスに関する
様々なタイプの測定情報をCPCに送るようSESに要
求する特殊CPCコマンドである。CPCはこの情報を
使って、当該の記憶クラスのベクトル及び反復因数の新
しい初期設定値を決定することができる。CPCはこれ
らの値を特殊コマンド中でSESに送って、次の測定間
隔中に起こる再利用動作による記憶クラス間での記憶空
間の割振りをSESに調節し直させる。このようにし
て、CPCは、次の時間間隔における記憶割振りの再調
節によって、任意の記憶クラスで発生するヒット率また
はミス率を制御することができる。記憶クラスのサイズ
を大さくすると、そのミス率が低下し(そのヒット率が
向上する)、記憶クラスのサイズを小さくすると、その
ミス率が増大する(そのヒット率が低下する)。
【0061】本発明の1つの特徴は、SESキャッシュ
中に記憶されているデータ項目が付加CPCによって引
続き使用可能となるように、現在置換が許容されていな
い記憶クラス中のデータ項目の分離を行うことである。
【0062】もう1つの特徴は、複数の記憶クラスの間
での、ディレクトリ・エントリ及びデータ項目用のSE
Sキャッシュ記憶域の再割振りを含めて、SESキャッ
シュの記憶性能をCPCが制御できるように、記憶クラ
スをCPCが指定できるようにすることである。
【0063】もう1つの特徴は、複数の記憶クラスの間
でアクセス・ヒット率を制御することである。
【0064】本発明は、異なる多数の再利用制御アルゴ
リズムの使用を可能にする、シスプレックス中のSES
キャッシュ記憶制御用の基礎的枠組を提供する。
【実施例】
【0065】実施例の主要部分: 好ましい実施例は、共用DASD及び共用電子記憶(S
ES)機構への付加をサポートするオペレーティング・
システムを内蔵する複数のCPCを含んでいる。データ
は、DASD上、共用電子記憶機構に内蔵されているキ
ャッシュ中、及びCPCのローカル・プロセッサ記憶機
構中で共用され管理されることになる。共用電子記憶機
構内の記憶域の使用を管理するには、SESに内蔵され
ている1個または複数のプロセッサまたはマイクロプロ
セッサを使用する。このプロセッサまたはマイクロプロ
セッサは、CPCからコマンドを受け取り、下記の問題
に対処するプログラムを実行する。すなわち、データ項
目へのアクセスに関する性能要件の違いに基づいてデー
タ項目(要素)のクラスを識別できるようにすること、
異なるクラスのデータ項目に対する要求が経時的に変化
するとき、実時間でデータ項目の記憶クラス間で記憶域
使用の平衡をとるためのプログラミング制御式の手段を
提供すること、記憶域の管理に伴うプログラミング・オ
ーバーヘッドを最小限に抑えること、CPCのローカル
・キャッシュの参照パターンをSESキャッシュ記憶域
管理機能に反映できるようにするためのプログラム制御
式の手段を提供すること、共用電子記憶機構で実行され
る記憶管理プロセス中に、ローカル・プロセッサ記憶キ
ャッシュに含まれるデータ項目の継続的な保全性を確保
することである。
【0066】SES中で実行されるすべてのプロセス
は、SES内蔵のプロセッサまたはマイクロプロセッサ
によって実行されるプログラム(またはマイクロプログ
ラム)によって制御される。
【0067】SESキャッシュは、シスプレックス3段
記憶階層の構成要素である。この階層の最低段はDAS
D、中間段はSESキャッシュ、最高段はCPCプロセ
ッサ記憶機構中のローカル・キャッシュである。DAS
DとSESキャッシュはCPCプロセッサによって共用
され、それぞれ入出力動作及びメッセージ動作によって
アクセスされる。ローカル・キャッシュは、各CPC中
で定義することができ、CPC中でCPU命令を使って
アクセスされる。
【0068】記憶階層中を移動するデータには名前が付
けられる。データ・サイズは可変で、データ域要素サイ
ズの1〜N倍の範囲である。データ域要素サイズは各S
ESキャッシュ毎に固定され、2の累乗で最小サイズが
256バイトである。名前はプログラミング制御によっ
て割り当てられる16バイトの値である。データはDA
SD記憶装置中に永続的に常駐する。
【0069】データのコピーまたは新しいバージョン
も、SESキャッシュ記憶域またはローカル・キャッシ
ュ記憶域のどんな組合せ中にも常駐できる。具体的に
は、データ項目がSESキャッシュ記憶域には常駐する
が、どのCPCローカル・キャッシュ中にも常駐しない
こともあり、SESキャッシュ記憶域とCPCローカル
・キャッシュの一部に常駐することもあり、またCPC
ローカル・キャッシュの一部には常駐するが、SESキ
ャッシュ記憶域には常駐しないこともある。
【0070】CPCローカル・キャッシュ: ローカル・キャッシュは、CPC上のSESサポート機
構に対して定義される。CPC命令がSESサポート機
構中で制御を初期設定し、ローカル・キャッシュ・トー
クンを割り当てる。ローカル・キャッシュのサイズはシ
ステム毎に変わる。
【0071】CPCローカル・キャッシュは、ローカル
・キャッシュ付加コマンドによってSESキャッシュに
付加される。このコマンドは、SES機構中の制御を初
期設定し、生成済みのコマンドをSESキャッシュがS
ESサポート機構に発行する際に使用される1組の経路
とローカル・キャッシュとを関連づける。CPCローカ
ル・キャッシュは、SESキャッシュに付加されて、記
憶階層に参加できるようになる。ローカル・キャッシュ
中とSESキャッシュ中のデータのコピーのコヒーレン
シは、SESキャッシュ中の制御によって維持され、様
々なSESサポート機構に生成済みコマンドとして発行
される相互無効化(XI)コマンドによって実施される。
【0072】データがローカル・キャッシュ中にあると
き、そのデータの状況は有効か無効かである。ローカル
・キャッシュ・エントリの有効状態は、SESサポート
機構中の制御によって維持される。データはCPU命令
によって有効にされ、SES書込み動作及びSES無効
化動作によって無効とされる。データの有効状態はCP
U命令によってテストされる。有効な名前付きデータ・
オブジェクトはSESキャッシュ・ディレクトリ中に登
録しなければならない。ローカル・キャッシュ・コヒー
レンシは無効化プロセスによって維持される。
【0073】SESキャッシュ: SESキャッシュは、データ域要素とディレクトリの集
合体からなるSES中の構造である。これは構造識別子
で指定される。SESキャッシュは、キャッシュ構造割
振りコマンドによって作成される。このコマンドは、プ
ロセッサで初期設定手段によって発行され、SESキャ
ッシュの属性、すなわちデータ域要素のサイズと数、デ
ィレクトリ・エントリの数、記憶クラスの数、キャスト
アウト・クラスの数を決定する。
【0074】SESキャッシュ記憶域は、通常DASD
記憶域よりも小さい。従って、変更済みデータをSES
キャッシュからバックアップDASDに周期的に転送し
なければならない。このプロセスをキャストアウトと称
し、プログラムによって制御され、以下の動作を必要と
する。−キャストアウト用SES読取リ(SES-read)動
作が発行されて、キャストアウト逐次化をセットし、デ
ータ・ブロックを主記憶装置へコピーする。−入出力動
作が実行されて、データ・ブロックをDASDへコピー
する。−SESロック解除(SES-unlock)動作が発行さ
れて、キャストアウト逐次化を解除する。
【0075】このプロセスに関連するデータ・オブジェ
クトは、SESキャッシュによってキャストアウト・ク
ラス中で維持される。キャストアウト・クラスは、プロ
グラムがDASDへのデータ転送を一回の入出力動作で
バッチ処理できるようにすることによって、キャストア
ウト・プロセスの効率を改善するのに使用される。
【0076】最も以前に使用された(LRU)未変更の
データ及びディレクトリ資源は、新しい要求を満たすた
めに必要なとき、SESキャッシュによって再利用(re
claim)される。データ・オブジェクトはプログラムに
よっていくつかの記憶クラスの1つにマップされる。各
クラスは、再利用プロセスを制御するための再利用ベク
トルを有する。これによって、作業負荷特性の変化を補
償するように、記憶クラス間でのSES記憶域の割当て
を動的に調節することが可能になる。再利用ベクトル
は、プログラムによって初期設定される。こうしたSE
Sキャッシュ記憶域管理オブジェクトを利用するプロセ
スが、本開示の主題である。
【0077】記憶クラス間でのデータの割振り及びキャ
ストアウト・プロセスの助けとして、計装情報がプログ
ラムに与えられる。
【0078】(A)キャッシュ構造オブジェクト: 各SESキャッシュ構造毎に1組のキャッシュ構造オブ
ジェクトが確立される。本明細書に関係するキャッシュ
構造オブジェクトは、以下のものからなる。 (1)キャッシュ制御(部) (2)ディレクトリ (3)データ域 (4)記憶クラス制御(部)
【0079】(A−1)キャッシュ制御(部): (a)データ域要素特性(DAEX): 各データ域要素中のバイト数を指定する、1バイトの符
号なし2進整数。データ域要素のバイト数で表したサイ
ズは、256と2の(データ域要素特性中で指定される
値)乗との積である。バイト数で表した有効サイズは、
256から最大データ域要素サイズまでである。
【0080】(b)最大データ域サイズ(MDAS): データ域の許容される最大サイズをデータ域要素サイズ
の整数倍として指定する、5ビットの符号なし2進整
数。最大データ域サイズは、キャッシュが割り振られる
とき、プログラムによって設定される。
【0081】(c)最大記憶クラス(MSC): 記憶クラスの数を指定する、1バイトの符号なし2進整
数。有効な記憶クラスの値は、1から最大記憶クラスの
値までの範囲である。
【0082】(d)構造サイズ(SS): キャッシュに割り振られたSES記憶域の量を4キロバ
イト単位で指定する、4バイトの符号なし2進整数。
【0083】(e)全データ域要素カウント(TDAE
C): キャッシュに割り振られたデータ要素の数を指定する、
4バイトの符号なし2進整数。
【0084】(f)全ディレクトリ・エントリ・カウン
ト(TDEC): キャッシュに割り振られたディレクトリ・エントリの数
を指定する、4バイトの符号なし2進整数。
【0085】(A−2)ディレクトリ: ディレクトリとは、SESキャッシュ及び付加ローカル
・キャッシュ用の状態情報及び位置情報の貯蔵場所であ
る。SES中に現れる名前付きデータ・ブロックはそれ
ぞれ関連するディレクトリ・エントリを有する。ディレ
クトリ・エントリは、完全連想式(フルアソシアティ
ブ)アレイとして配列され、名前フィールドの値を使っ
てアクセスされる。ディレクトリ・エントリは記憶クラ
スに区分される。変更済みディレクトリ・エントリのグ
ループはキャストアウト・クラスに区分される。名前付
きのデータ・オブジェクトが記憶階層の上の2段に置か
れたときは、その状態と位置がSESキャッシュ・ディ
レクトリによって登録される。状態情報は、そのデータ
が変更済みか、未変更か、それともキャストアウト用に
ロック済みかを示す。位置情報には、そのデータがSE
Sキャッシュ記憶域中に常駐するかどうか、及びどのロ
ーカル・キャッシュにコピーが含まれるかがある。(デ
ィレクトリ中のポインタによってSESキャッシュ・デ
ータ域中で位置決めされる)レコードは、その中で、レ
コード、データ要素、データ項目、ブロック、ページな
どいくつかの異なる項目のどれによっても参照される。
ある種のSES読取りコマンド及びSES書込みコマン
ドが、SESキャッシュ・ディレクトリ中にローカル・
キャッシュ・コピーを登録する。SES書込みコマンド
及びSES無効化コマンドが、ローカル・コピーの登録
を解除する。
【0086】ディレクトリ・エントリの諸フィールド
は、以下のようにまとめられる。 (a)キャストアウト・ロック (b)変更ビット (c)データ・ビット (d)データ域サイズ (e)名前 (f)記憶クラス (g)ユーザ・データ・フィールド
【0087】(a)キャストアウト・ロック(CO): データのキャストアウト状態を示す2バイトの値。キャ
ストアウト・ロックが0のとき、そのデータはキャスト
アウトされていない。キャストアウト・ロックが0でな
いときは、キャストアウト・ロックの第1バイトの値
が、そのデータ・ブロックをSESキャッシュからDA
SDにキャストアウトしているローカル・キャッシュを
識別する。第2バイトの値は、ローカル・システム上の
キャストアウト・プロセスを識別する。キャストアウト
・ロックが0でないときは、データ・ビットは1でなけ
ればならない。
【0088】(b)変更ビット(C): キャストアウト・ロックとあいまって、データの変更済
み状態を示す、1ビットの値。変更ビットが1のとき、
そのデータは変更された状態でキャッシュ記憶されてい
る。変更ビットが0で、データがキャストアウト用にロ
ックされていないときは、データはキャッシュ記憶され
ていないか、あるいはキャッシュ記憶されているが変更
されていない。変更ビットが0で、データがキャストア
ウト用にロックされているときは、そのデータは変更さ
れた状態でキャッシュ記憶されている。データが変更済
み状態のときは、そのデータの最新バージョンがキャッ
シュ中に常駐する。変更ビットが1のとき、データ・ビ
ットも1でなければならない。
【0089】(c)データ・ビット(D): データがSESキャッシュ中にあるかどうかを示す、1
ビットの値。データ・ビットが1のとき、そのデータは
キャッシュ記憶されている。データ・ビットが0のとき
は、そのデータはキャッシュ記憶されていない。
【0090】(d)データ域サイズ(DAS): データ域のサイズをデータ域要素サイズの整数倍として
指定する、5ビットの符号なし2進整数。ディレクトリ
・エントリが割り当てられているとき、初期値は0であ
り、データ・ビットが1にセットされるまで0である。
【0091】(e)名前(N): 名前は、名前付きデータ・オブジェクトがキャッシュ中
で登録されるときにプログラムによって指定される16
バイトの値を含む。
【0092】(f)記憶クラス(STC): その名前に割り当てられた記憶クラスを識別する、1バ
イトの値。
【0093】(g)ユーザ・データ・フィールド(UD
F): ユーザ・データ・フィールドは、データがSESキャッ
シュ中で最初に変更されたときそのデータに関連付けら
れる、8バイトの値を含み、データ・テーブル・エント
リが再使用されるまで維持される。データが変更された
状態でキャッシュ記憶されているとき、ユーザ・データ
・フィールドは有効である。
【0094】(A−3)データ域: データ域とは、単一の名前付きデータ・オブジェクトの
内容を含む記憶オブジェクトである。名前付きデータ・
オブジェクトが最初にキャッシュに書き込まれたとき、
データ域があるディレクトリ・エントリと関連付けら
れ、再利用動作が発生するかあるいは名前が無効にされ
るまで、関連付けられたままとなる。データ域は、1個
ないしN個のデータ域要素からなる。データ域のサイズ
は、名前付きデータ・オブジェクトが書き込まれるとき
に決定される。
【0095】(A−4)記憶クラス制御(部): 記憶クラス制御は以下のものからなる。 (a)記憶クラス待ち行列 (b)再利用制御(部) (c)記憶クラス・カウンタ
【0096】(a)記憶クラス待ち行列(SCQ): 記憶クラス中のディレクトリ・エントリを順番に並べた
リスト。この待ち行列は参照の順に並べられ、最近に参
照されたディレクトリ要素が待ち行列の一番下になり、
最も古い、すなわち最も以前に参照された要素が待ち行
列の一番上に来る。キャッシュ中の各記憶クラスごとに
記憶クラス待ち行列が存在する。
【0097】(b)再利用制御(部): 再利用ベクトル、1組の再利用カウント、再利用ベクト
ル・カーソル、及び反復因数が各記憶クラスと関連付け
られる。それらを総称して、その記憶クラスの再利用制
御と称し、図1に示してある。再利用制御は次の通りで
ある。
【0098】(ア)再利用カウンタ(RCT)(10
3): 各記憶クラスに関連する2バイトのカウンタのアレイ、
及び単一のアレイ要素をアドレスするカーソル。再利用
カウンタの値は、再利用ベクトル設定コマンドが処理さ
れたとき、または反復因数が非0の値まで減分されたと
き、再利用ベクトル中の値に初期設定される。
【0099】再利用動作が実行されると、再利用ベクト
ルが活動状態であるとして、カーソルが再利用動作が実
行される目標記憶クラスを識別する。
【0100】(イ)再利用ベクトル(RV)(10
2): 各記憶クラスに関連する2バイトのカウンタのアレイ。
キャッシュ中で定義される各記憶クラスごとに再利用ベ
クトル・エントリ(RVE)が存在し、記憶クラスの値
によってインデックスされる。このアレイは、再利用ベ
クトル設定コマンドによって初期設定される。
【0101】(ウ)反復因数(RF)(101): 再利用カウンタが再利用ベクトル中の値で初期設定され
る回数を指定する、2バイトの符号なし2進整数。反復
因数は、再利用ベクトル設定コマンドによって、プログ
ラムで指定される値に設定される。反復因数が0のとき
は、再利用ベクトルは非活動状態である。
【0102】この反復因数により、各記憶クラスからラ
ウンド・ロビン方式で1部分をトリムすることによって
記憶クラスのサイズに大きな変更を加えることが可能と
なる。これによって、それらの変更の全体的性能に対す
る破壊的衝撃が分散され、最小になる。
【0103】代替設計として、記憶クラス当り1つの再
利用ベクトルではなく、キャッシュに対して単一の再利
用ベクトルを提供することができる。単一の再利用ベク
トルを用いると1組の記憶クラスのサイズが実際に減少
するが、再利用された記憶域の再割当ての制御の効果は
劣る。再利用ベクトルが活動化された直後に短い間隔の
高い書込みアクティビティが発生する記憶クラスは、記
憶域のうち不相応な部分を得ることになる。記憶クラス
当り1つの再利用ベクトルを用いると、プログラムが特
定の記憶クラスが受け取る記憶域の量を制限できるよう
になる。したがって、単一の再利用ベクトルでは記憶ク
ラスのサイズ減少が有効に制御されるか、記憶クラス当
り1つの再利用ベクトルでは、記憶クラスのサイズの減
少も拡大も制御される。
【0104】(c)記憶クラス・カウンタ: 各記憶クラスごとに1組の計装カウンタが維持される。
このカウンタは32ビットの符号なし2進整数である。
それらは、キャッシュが割り振られるとき0に初期設定
され、そのカウンタに対して定義された事象が発生する
たびに増分される。記憶クラス・カウンタは以下に要約
するような事象を示す。
【0105】(ア)キャストアウト・カウンタ(CO
C): その記憶クラスに関してキャスト・アウト動作が実行さ
れた。
【0106】(イ)参照リスト完了カウンタ(CRL
C): 名前リストにあり、ディレクトリに割り当てられている
各名前に対する参照信号を開始することによって、参照
リストの処理が完了していた。
【0107】(ウ)データ域カウンタ(DAC): その記憶クラスに割り当てられたデータ域の数。
【0108】(エ)データ域要素カウンタ(DAEC): その記憶クラスに割り当てられたデータ域要素の数。
【0109】(オ)データ域再利用カウンタ(DAR
C): その記憶クラスに関するデータ域割当て動作で、あるデ
ータ域の再利用が必要となり、再利用動作が成功した。
【0110】(カ)ディレクトリ・エントリ・カウンタ
(DEC): その記憶クラスに割り当てられたディレクトリ・エント
リの数。
【0111】(キ)ディレクトリ・エントリ再利用カウン
タ(DERC): その記憶クラスに関する名前割当て動作で、あるディレ
クトリ・エントリの再利用が必要となり、再利用動作が
成功した。
【0112】(ク)参照リスト部分完了カウンタ(PCR
LC): モデル依存のタイムアウト満了のため、参照リストの処
理が放棄された。
【0113】(ケ)読取りビット・カウンタ(RHC): 読取り及び登録コマンド用にデータが戻された。
【0114】(コ)読取りミス割当て制御カウンタ(RM
ASC): 読取り及び登録コマンドが、そのディレクトリ中で割り
当てられていない名前を指定し、そのコマンドに対して
名前割当てが制御された。
【0115】(サ)読取りミス・ディレクトリ・ヒット・
カウンタ(RMDHC): 読取り及び登録コマンドが、そのデータがキャッシュ記
憶されていないディレクトリ中で割り当てられた名前を
指定した。
【0116】(シ)読取りミス名前割当て済みカウンタ
(RMNAC): 読取り及び登録コマンドが、そのディレクトリ中で割り
当てられていない名前を指定し、あるディレクトリ・エ
ントリがその名前に首尾よく割り当てられた。
【0117】(ス)読取りミス目標記憶クラス満杯カウン
タ(RMTSFC): 読取り及び登録コマンドが、そのディレクトリ中で割り
当てられていない名前を指定したが、目標記憶クラス中
の記憶資源が不足したために、指定された記憶クラスに
ついて名前の割当てが完了できなかった。
【0118】(セ)参照信号ミス・カウンタ(RSM
C): 参照リスト処理コマンドに対してディレクトリ中に見つ
からない名前が処理された。
【0119】(ソ)目標記憶クラス満杯カウンタ(TSC
FC): その記憶クラスが目標記憶クラスとして選択されたと
き、ディレクトリ・エントリの割当てまたはデータ・テ
ーブル・エントリの割当てが完了できなかった。
【0120】(タ)合計変更カウント(TCC): その記憶クラス中の、変更済み状態にある、すなわち変
更ビットがセットされている、あるいはキャストアウト
・ロックが非0の値に設定されているディレクトリ・エ
ントリの数。このカウントは、変更信号が処理されると
きに登録済み時書込みコマンドまたは書込み及び登録コ
マンドで、また記憶クラス情報読取りコマンドで戻され
る。
【0121】(チ)書込みセット・ビット0変更カウンタ
(WHCBOC): 変更ビットが0にセットされたデータを記憶することに
より、書込み及び登録コマンドまたは登録済み時書込み
コマンドが完了した。
【0122】(ツ)書込みセット・ビット1変更カウンタ
(WHCB1C): 変更ビットが1にセットされたデータを記憶することに
より、書込み及び登録コマンドまたは登録済み時書込み
コマンドが完了した。
【0123】(テ)書込みミス無効状態カウンタ(WMI
SC): データが変更済みとしてキャッシュ記憶されたとき、書
込み及び登録コマンドまたは登録済み時書込みコマンド
が変更ビットの値を0と指定した。
【0124】(ト)書込みミス未登録カウンタ(WMNR
C): 登録済み時書込みコマンドが完了できなかった。指定さ
れたローカル・キャッシュ・エントリがユーザ・レジス
タにリストされていなかった。
【0125】(ナ)書込みミス目標記憶クラス満杯カウン
タ(WMTSLFC): 目標記憶クラス中に記憶資源が不足したために、ソース
記憶クラスについて書込み及び登録コマンドまたは登録
済み時書込みコマンドが完了できなかった。
【0126】(ニ)補数無効化用XIカウンタ(XIFD
RC): 補数コピー無効化コマンドを満足するために相互無効化
(XI)信号が発行された。
【0127】(ヌ)ディレクトリ再利用XIカウンタ(X
IFDRC): ディレクトリ・エントリ再利用動作を満足するために相
互無効化(XI)信号が発行された。
【0128】(ネ)名前無効化用XIカウンタ(XINI
C): コマンドを満足するために相互無効化(XI)信号が発
行された。
【0129】(ノ)書込み用XIカウンタ(XIFW
C): 登録済み時書込みコマンドまたは書込み及び登録コマン
ドを満足するために相互無効化(XI)信号が発行され
た。
【0130】(B)キャッシュ構造オペランド: SES記憶域管理に関係するキャッシュ構造オペランド
について以下に要約する。
【0131】(B−1)変更制御(CHGC): そのデータの書込みにどのプロセスが使用されるかを選
択する、1ビットの値。可能な2つの値は次の通りであ
る。 0 未変更データの書込み 1 変更済みデータの書込み
【0132】(B−2)データ域サイズ(DAS): データ域のサイズをデータ域要素サイズの整数倍として
指定する、5ビットの2進値。有効な値は0から最大デ
ータ域サイズまでである。
【0133】(B−3)データ・ブロック・サイズ(D
BS): データ・ブロックのサイズを4096バイトの単位の整
数倍として指定する、5ビットの2進値。
【0134】(B−4)目標ディレクトリ−データ比
(TDTDR): ディレクトリ・エントリのデータ域要素に対する相対数
を指定する、1バイトの符号なし2進整数2個からなる
2バイト・フィールド。第1バイトで指定される整数を
2つの数の和で割った商が、ディレクトリの合計カウン
タの、ディレクトリ・エントリから構成されるデータ域
要素に対する割合を表す。第2バイトで指定される整数
を2つの数の和で割った商が、データ域要素から構成さ
れる合計カウントの割合を表す。
【0135】(B−5)最大データ域サイズ(MDA
S): 許容されるデータ域の最大サイズをデータ域要素サイズ
の整数倍として指定する、5ビットの2進値。
【0136】(B−6)最大記憶クラス(MSC): 記憶クラスの数を指定する、1バイトの符号なし2進整
数。
【0137】(B−7)名前(N): 記憶階層中のデータ・ブロックを識別する16バイトの
値。
【0138】(B−8)名前マスク(NM): 名前の比較に使用されるバイトを決定する2バイトの
値。
【0139】(B−9)再利用ベクトル(RV): 各記憶クラスに関連する2バイト・カウンタの64のエ
ントリ・アレイ。
【0140】(B−10)反復因数(RF): 再利用カウンタが再利用ベクトル中の値で初期設定され
る回数を指定する、2バイトの符号なし2進整数。
【0141】(B−11)記憶クラス(STC): 記憶クラスを識別する1バイトの値。
【0142】(B−12)構造サイズ(SS): そのキャッシュ構造に割り振られたSES記憶域の40
96バイトを単位として表した数を指定する、4バイト
の値。
【0143】(B−13)目標記憶クラス(TST
C): 満杯状態のために再利用動作が失敗したとき、目標記憶
クラスを識別する1バイトの値。
【0144】(B−14)合計変更済みカウント(TC
C): その記憶クラス中の、変更済み状態にある、すなわち変
更ビットがセットされているか、またはキャストアウト
・ロックが非0の値に設定されている、ディレクトリ・
エントリの数を示す、4バイトの符号なし2進整数。
【0145】(B−15)ユーザ・データ・フィールド
(UDF): キャッシュ記憶されたデータ・ブロックに関連する8バ
イトのフィールド。
【0146】(C)キャッシュ構造プロセス: 下記の諸プロセスが、様々なキャッシュ構造コマンドに
よって呼び出される。あるコマンドによって呼び出され
る1組のプロセスが、コマンド記述にリストされる。
【0147】(C−1)キャッシュ構造の割振り: まだ構造が存在していないためにキャッシュ構造割振り
コマンドが最初に首尾よく呼び出されると、キャッシュ
構造が作成される。キャッシュ構造割振りコマンドが1
回または複数回首尾よく呼び出された後に、キャッシュ
構造が最初に割り振られる。これらの動作をキャッシュ
割振りプロセスと総称する。
【0148】応答コード0または1が戻されたとき、キ
ャッシュ構造割振りコマンドは成功である。
【0149】(C−2)キャッシュ割振りポイントチェ
ック・プロセス: キャッシュ構造が作成された後、0または1の応答コー
ドが戻されると、キャッシュ構造割振りコマンドが必ず
ポイントチェックされる。キャッシュ構造が作成された
後、成功したキャッシュ構造割振りコマンドの実行中の
いつでも、あるいはキャッシュ構造割振りコマンドが成
功した結果、背景処理(background processing)が続
行するとき、割振りプロセスをポイントチェックするこ
とができる。成功したキャッシュ構造割振りコマンドの
背景処理は、0の応答コードが戻されたとき停止する。
【0150】キャッシュ割振りプロセスがポイントチェ
ックされるとき、構造サイズ、合計ディレクトリ・エン
トリ・カウント、及び合計データ域要素カウントの各キ
ャッシュ・オブジェクトが更新され、自由空間及び自由
制御空間の各大域オブジェクトが更新される。
【0151】(C−3)キャッシュ割振りプロセスの完
了: 0の応答コードが戻されるとき、要求されたすべてのキ
ャッシュ割振りプロセスが完了する。
【0152】(C−4)キャッシュ構造の作成: キャッシュ構造が作成されると、目標ディレクトリ−デ
ータ比及び付属割当て標識によって、作成された構造の
諸属性が決定される。目標ディレクトリ−データ比の第
2バイトが0のとき、データ域要素または付属域要素が
作成されることはなく、キャッシュはディレクトリのみ
のキャッシュとなる。目標ディレクトリ−データ比の第
2バイトが非0で、付属割当て標識が1のとき、データ
が最初にデータ域にキャッシュ記憶されているときは、
付属域がディレクトリ・エントリに割り当てられる。目
標ディレクトリ−データ比の第2バイトが非0で、付属
割当て標識が0のとき、付属域は作成されない。
【0153】キャッシュ構造が作成されるとき、 (1)SID値に関連する構造識別子ベクトル中の作成
されたビットが1にセットされる。かつ (2)キャッシュ構造制御が初期設定される。
【0154】これには、以下のことが含まれる。 −LCIDベクトルを0に初期設定する。 −USCオペランドをユーザ構造制御に入れる。 −付属割当て標識をAAIオペランドの値に等しく設定
する。 −DAEXオペランドをデータ域要素特性オブジェクト
に入れる。 −MDASオペランドを最大データ域サイズ・オブジェ
クトに入れる。 −構造サイズを更新する。
【0155】キャッシュ構造が作成されるとき、 (1)構造サイズ・オブジェクトが、目標構造サイズ要
求オペランド以下の使用可能な最大記憶サイズに初期設
定される。 (2)新規の合計ディレクトリ・エントリ・カウント・
オブジェクトと合計データ域要素カウント・オブジェク
トとの比が、0からディレクトリ−データ比までの範囲
内にある。
【0156】(C−5)データ域要素の割当て: データ域要素割当ては、使用可能なデータ域要素の順番
に並べた集合体を得、それらをディレクトリ・エントリ
に付加し、データ・ビットを1にセットし、データ域サ
イズ・オブジェクトをDASオペランドの値に設定する
ことにより、指定された名前、記憶クラス、及びデータ
域サイズに関して処理される。使用可能なデータ域要素
が不十分な場合、要求を満たすためにデータ域要素が再
利用される。再利用される各データ域がクリアされ、デ
ータ域要素がディレクトリ・エントリに付加され、残っ
たデータ域要素があればデータ域要素の自由リストに置
かれる。
【0157】各再利用動作ごとに、未変更としてキャッ
シュ記憶されている最古のデータ域が目標記憶クラスか
ら再利用される。データ域再利用カウント(DARC)
が増分される。目標記憶クラスが、変更済みディレクト
リ・エントリ、またはデータ・ビットが0にセットされ
たディレクトリ・エントリで満杯のときは、選択の候補
は得られない。この場合、データ域要素の割当ては目標
記憶クラス満杯状態で完了し、目標記憶クラスに関して
カウンタTSCFCが増分され、割当て済みのまたは首
尾よく再利用されたデータ域要素がすべて自由リストに
戻される。
【0158】(C−6)ディレクトリ及びデータ域要素
の作成: ディレクトリ・エントリ及びデータ域要素を作成するた
め、キャッシュ構造に割り当てられた使用可能な記憶域
が割り当てられる。作成される各々の数は、使用可能な
記憶域の量、指定されたディレクトリ−データ比、デー
タ域要素の特性、及び指定された構造サイズの関数であ
る。得られるディレクトリ・エントリ及びデータ域要素
の数は、それぞれ合計ディレクトリ・エントリ・カウン
ト(TDEC)及び合計データ域要素カウント(TDA
EC)の各制御フィールドに入れられる。
【0159】合計ディレクトリ・エントリ・カウントが
確立されると、ディレクトリ記憶域を差し引くことによ
り、データ域要素の作成に利用できる合計記憶域が決定
される。データ域要素に必要な記憶域は、データ域要素
特性及びディレクトリ−データ比によって決定される。
【0160】(C−7)ディレクトリ及びデータ域の再
利用: 図22は、ディレクトリ及びデータ域の再利用プロセス
のプロセス流れ図である。データ域及びディレクトリ・
エントリが、指定された記憶クラスについて再利用され
る。この再利用プロセスは、目標記憶クラスの識別(1
701と1702)、目標クラスの未変更の最古のディ
レクトリ・エントリ(1703)またはデータ域(17
04)の位置指定、及びディレクトリ・エントリまたは
データ・テーブル・エントリのディレクトリからの除去
(1705と1706)を伴う。
【0161】ディレクトリ・エントリがディレクトリか
ら除去されるとき、そのディレクトリ・エントリは無効
とマークされる。ローカル・キャッシュ・レジスタが走
査され、各有効ディレクトリ・エントリごとに相互無効
化信号が発行され、その項目が無効にされる(170
7)。
【0162】割り当てられたデータ域を有するディレク
トリ・エントリが再利用されるとき、そのデータ域は解
放され、データ域要素が自由リストに置かれる(170
8)。
【0163】目標記憶クラスは、再利用ベクトルが活動
状態のとき、再利用ベクトル・カーソルによって識別さ
れる。図23は、目標記憶クラスの識別の流れ図であ
る。参照されると、再利用ベクトルは以下のように更新
される。 −現アレイ要素の再利用カウントが減分される(180
2)。 −カウントが0に達したとき(1803からのYの経
路)、再利用ベクトル・カーソルが、次のアレイ要素に
移動し(1805)、再利用カウントは非0となる(1
806からのN経路)。 −再利用ベクトル・カーソルがそのベクトルの最終アレ
イ要素を指し、この要素中のカウントが0のとき(18
04からのY経路)。反復因数が減分され(180
7)、再利用カウントがその初期値にリフレッシュされ
(1809)、カーソルが、最小のインデックスをもつ
アレイ要素に移動し(1801)、非0のカウントを含
む(1806からN経路)。 −反復因数が0に達したとき(1808からのY経
路)、再利用ベクトルが非活動状態に置かれ(181
1)、そうでない場合は再利用ベクトルは活動状態のま
まとなる。
【0164】指定された記憶クラス用の再利用ベクトル
が非活動状態のとき(1801からのN経路)、指定さ
れた記憶クラスがデフォルト目標クラスとなる(181
2。
【0165】SESキャッシュ記憶管理プロセスは、前
掲の米国特許第860805号に記載の諸プロセスを通
して維持されるデータ保全性を維持する。ディレクトリ
・エントリの再利用時に相互無効化信号を発行すると、
以下のことが防止される。 1.名前Xをもつディレクトリ・エントリが再利用され
る。ローカル・コピーは有効なままであるが、その登録
はもはやSESによって追跡されない。 2.名前Xが異なるディレクトリ・エントリ中に登録さ
れ、変更される。有効なローカル・コピーは新しいディ
レクトリ・エントリに登録されないので、XI信号は発
行されず、ローカル・バッファはコヒーレンシを失う。
【0166】(C−8)名前の割当て: 名前割当ては、無効のディレクトリ・エントリを得、そ
れを有効とマークし、その名前を初期設定し、そのディ
レクトリ・エントリをディレクトリに付加することによ
り、指定された名前及び記憶クラスに関して処理され
る。その記憶クラス中のディレクトリ・エントリのカウ
ント(DEC)が増分される。
【0167】使用可能な無効のディレクトリ・エントリ
がないときは、有効ディレクトリ・エントリが再利用さ
れ、その現内容をクリアされ、ディレクトリに付加され
る。
【0168】未変更の最古のディレクトリ・エントリ
が、目標記憶クラスから再利用される。ディレクトリ・
エントリ再利用カウント(DERC)が増分される。そ
のディレクトリ・エントリが異なる記憶クラスから再利
用される場合は、目標記憶クラスのディレクトリ・エン
トリのカウントが減分され、指定記憶クラスのディレク
トリ・エントリのカウントが増分される。再利用動作で
1個または複数のデータ域要素が自由リストに加えられ
る場合、目標記憶クラスのデータ域要素のカウント(D
AEC)が、再利用されたデータ域要素の数だけ減分さ
れる。ディレクトリ・エントリの再利用の結果、相互無
効化信号が発行されることがある。発行される相互無効
化信号の数が、ディレクトリ再利用用相互無効化(X
I)信号カウント(XIFDRC)に加えられる。
【0169】目標記憶クラスが変更済みディレクトリ・
エントリで満杯のときは、選択の候補は得られない。こ
の場合、名前の割当ては目標記憶クラス満杯状態で完了
し、目標記憶クラスに関してカウンタTSCFCが増分
される。
【0170】(C−9)記憶クラス除去: 記憶クラス除去プロセスが指定されたディレクトリ・エ
ントリについて行われる。その処理は以下の通りであ
る。 −そのディレクトリ・エントリが記憶クラス待ち行列か
ら除去される。 −ディレクトリ・エントリのカウント(DEC)が減分
される。 −そのディレクトリ・エントリにデータがキャッシュ記
憶されるとき、その記憶クラスのデータ域要素のカウン
ト(DAEC)がデータ域サイズの値だけ減分される。 −そのディレクトリ・エントリにデータが変更済みとし
てキャッシュ記憶されるとき、合計変更済みカウント
(TCC)が減分される。
【0171】(C−10)参照信号の処理: 参照信号は、指定された名前及び記憶クラスについて処
理される。記憶クラスはディレクトリ・エントリに記憶
され、ディレクトリ・エントリが記憶クラス待ち行列の
一番下に加えられる。これは、記憶クラスへの最初の配
置であることも、記憶クラス指定の変更を表すことも、
記憶クラス内のデータへの参照のこともある。
【0172】記憶クラスが変更されると、最初にそのデ
ィレクトリ・エントリ中で指定された記憶クラスについ
て記憶クラス除去プロセスが実行され、新しい記憶クラ
スでカウンタが更新される。ディレクトリ・エントリの
カウント(DEC)が減分される。ディレクトリ・エン
トリにデータがキャッシュ記憶されるとき、データ域要
素のカウント(DAEC)がデータ域サイズの値だけ増
分される。データが変更済みとしてキャッシュ記憶され
るとき、合計変更済みカウント(TCC)が増分され
る。
【0173】(D)キャッシュ構造コマンド: 以下のコマンドをプロセス流れ図に示すように、SES
でSESオブジェクトに対して取られる措置に関して記
述する。 (1)キャッシュ構造割振り(図3及び4) (2)キャッシュ構造割振り解除(図5) (3)参照リスト処理(図6) (4)読取り及び登録(図12) (5)ディレクトリ読取り(図14) (6)記憶クラス情報読取り(図16) (7)再利用ベクトル設定(図17) (8)書込み及び登録(図18及び19) (9)登録後書込み(図20)
【0174】(D−1)キャッシュ構造割振り: 図3及び4は、キャッシュ構造割振りコマンドのプロセ
ス流れ図である。キャッシュ構造割振りコマンドは、キ
ャッシュ構造用の記憶資源を作成する。
【0175】キャッシュ構造割振りコマンドは、下記の
とき、ユーザ構造制御をユーザ構造制御要求オペランド
の値で更新する。 (1)キャッシュ構造が作成されるとき(201)。
【0176】キャッシュ構造割振りコマンドは、下記の
とき、キャッシュ構造を作成する(204)。 (1)構造識別子ベクトルの指定された作成済みビット
が0、かつ (2)構造サイズが、少なくとも1つのディレクトリ・
エントリ及び関連する制御の作成に十分なとき(20
2)。
【0177】キャッシュ構造割振りコマンドは、下記の
とき、キャッシュ構造の初期割振りを続行する(30
1)。 (1)構造識別子ベクトルの指定された作成済みビット
が1、かつ (2)構造の初期割振りが完了していないとき。
【0178】キャッシュ構造プロセスは、下記のとき、
確立されたチェックポイントでチェックポイントされ完
了する(203)(302)。 (1)構造の初期割振りが完了した。
【0179】要求されたキャッシュ構造プロセスがすべ
て完了するとき、それらのプロセスがチェックポイント
され、合計ディレクトリ・エントリ・カウント、合計デ
ータ域要素カウント、構造サイズ、自由空間大域制御、
及び完了応答コードがプログラムに戻される(20
9)。
【0180】割振りプロセスが完了する前にモデル依存
の時間間隔が経過したとき、それらのプロセスがポイン
トチェックされ、合計ディレクトリ・エントリ・カウン
ト、合計データ域要素カウント、構造サイズ、自由空間
大域制御、及び例外応答コードがプログラムに戻される
(211)。
【0181】指定された構造サイズが、少なくとも1つ
のディレクトリ・エントリ及び関連する制御の作成に不
十分なとき、その要求をサポートするのに必要な最小構
造サイズが構造サイズ応答オペランドに入れられる。構
造サイズ応答オペランド及び例外応答コードがプログラ
ムに戻される(213)。
【0182】(D−2)キャッシュ構造割振り解除: 図5は、キャッシュ構造割振り解除コマンドのプロセス
流れ図である。キャッシュ構造割振り解除コマンドは、
指定されたキャッシュ構造を解除する。これには、記憶
域の解放、自由空間及び自由制御空間の各大域制御の更
新(401)が含まれる。
【0183】(D−3)参照リスト処理: 図6は、参照リスト処理コマンドのプロセス流れ図であ
る。STC要求オペランドによって指定された記憶クラ
スにやはり割り当てられ(502)、その要求オペラン
ドで指定されたローカル・キャッシュ用に登録されてい
る、名前リスト中の各名前ごとに参照信号が開始される
(501)。その名前が指定された記憶クラスに割り当
てられていないときは、その名前はリストから廃棄され
(503)、ミスとなった参照信号のカウント(RSM
C)がSTC要求オペランド中で指定された記憶クラス
について増分される。その名前が割り当てられている
が、そのローカル・キャッシュ用に登録されていないと
きは、その名前が名前リストから廃棄され、ミスとなっ
た参照信号のカウント(RSMC)が、ディレクトリ・
エントリ中で指定された記憶クラスについて増分され
る。すべての参照信号が開始されたとき(504)、完
了済み参照リストのカウント(CRLC)がその記憶ク
ラスについて増分される。
【0184】参照リストの処理が完了する前にモデル依
存の時間間隔が満了したとき(505)、そのリストの
残りの部分は処理されず、部分完了参照リストのカウン
ト(PCRLC)がその記憶クラスについて増分され
る。
【0185】参照リスト処理コマンドは、ローカル・キ
ャッシュ参照を記憶クラス待ち行列に伝播させるのに使
用される。これによって記憶クラスが、ローカル・キャ
ッシュ及びSESキャッシュの双方の参照アクティビテ
ィにわたって順序付けられ、高いローカル・キャッシュ
・アクティビティをもつディレクトリ・エントリ及びデ
ータ・テーブル・エントリの再利用が防止される。プロ
グラムは名前リストを構築し、ローカル・キャッシュ・
エントリがテストの結果有効と判定されたとき名前を追
加し、参照リスト処理コマンドを使って周期的に名前リ
ストをSESキャッシュに書き込む。
【0186】(D−4)読取り及び登録: 図12は、読取り及び登録コマンドのプロセス流れ図で
ある。読取り及び登録コマンドは、名前付きデータ域の
内容をローカル・キャッシュに戻し、ローカル・キャッ
シュ・エントリを登録する。データがキャッシュ記憶さ
れていないときは、登録動作のみが実行される。読取り
及び登録コマンドはまた、その名前が現在割り当てられ
ていないとき、名前をディレクトリに割り当てる。
【0187】名前置換制御(NRC)要求オペランドが
1のとき(701)、置換名及びローカル・キャッシュ
識別子の名要求オペランドによって指定されるローカル
・キャッシュ・エントリが登録解除される(702)。
名前置換制御が0のときは、登録解除は行われない。
【0188】データがキャッシュ記憶されているとき
(703)、ローカル・キャッシュ・エントリが登録さ
れ(704)、参照信号が記憶クラスに関して開始され
(705)、データが変更ビットと共に戻される(70
6)。読取りヒット事象は、STCオペランド中で指定
された記憶クラス用のRHCカウンタを増分することに
よってカウントされる。
【0189】名前がディレクトリに割り当てられている
が、データはキャッシュ記憶されていないとき(70
7)、ローカル・キャッシュ・エントリが登録され(7
08)、参照信号がその記憶クラスに関して開始される
(709)。読取りミス・ディレクトリ・ヒット事象
は、STCオペランド中で指定された記憶クラス用のR
MDHCカウンタを増分することによってカウントされ
る。
【0190】名前がディレクトリに割り当てられてい
ず、ディレクトリ割当てが抑制されてはいないとき(7
12)、ディレクトリ・エントリ割当て動作が実行され
る(713)。キャッシュが満杯でない場合、ディレク
トリ・エントリが割り当てられ、ローカル・キャッシュ
・エントリが登録され(714)、参照信号がその記憶
クラスに関して開始され(715)、読取りミス名前割
当て済み事象が、STCオペランドで指定された記憶ク
ラス用のRMNACカウンタを増分することによってカ
ウントされる。目標記憶クラスが満杯である場合(71
6)、そのコマンドは例外応答コードで完了し、読取り
ミス目標記憶クラス満杯事象が、STCオペランド中で
指定された記憶クラス用のRMTSFCカウンタを増分
することによってカウントされ、目標記憶クラスがTS
TCオペランド中に置かれる。
【0191】名前がディレクトリ中にリストされてい
ず、割当てが制御されているとき(711)、そのコマ
ンドは完了し、例外応答コードが戻される。読取りミス
割当て制御事象は、STCオペランド中で指定された記
憶クラス用のRMASCカウンタを増分することによっ
てカウントされる。
【0192】読取りミスは、以下の4種の事象に区分さ
れる。 −読取りミスで、ディレクトリ・ヒット(RMDHC) −読取りミスで、名前割当てが制御(RMASC) −読取りミスで、名前割当ては成功(RMNAC) −読取りミスで、目標記憶クラス満杯(RMTSFC)
【0193】ある時間間隔中の読取りミス事象の合計数
(RMC)は、4つのカウンタそれぞれのデルタ変化を
すべて加えることによって決定できる。各カウンタ中の
デルタ変化は、その時間間隔の最初と最後に各カウンタ
の値を記録し、その差を計算することによって得られる
(図13の801)。したがって、ある時間間隔にわた
る読取りビット率(RHR)が、図13の802のよう
に計算できる。
【0194】(D−5)ディレクトリ読取り: ディレクトリ読取りコマンドによって呼び出されるプロ
セスを、図14にまとめて示す。ディレクトリ読取りコ
マンドは、ディレクトリを走査して、要求される3つの
機能のうちの1つを実行する。すなわち、ディレクトリ
・エントリ情報ブロックのリストを戻し、あるいは名前
ブロックのリストを戻し、あるいは参照ビットをリセッ
トして、処理済み及び参照済みのカウントを戻す。ディ
レクトリ・エントリは、名前フィールドがマスク状態の
入力名と一致し、変更済み状態が要求された状態と一致
するとき、処理される(901)。マスクされていない
バイトがすべて等しいとき、名前の比較は成功である
(902)。0マスクは、すべての名前を処理させる。
【0195】変更状態選択制御が0のとき、マスク状態
の名前と一致するすべてのディレクトリ・エントリが処
理される。変更状態選択制御が1のときは、変更済みま
たはキャストアウト用にロック済みで、マスク状態の名
前と一致するエントリだけが処理される。
【0196】ディレクトリが走査される。戻されるディ
レクトリ・ブロックのリスト(NB)にディレクトリ・
エントリ情報ブロックが追加され(903及び904)
ディレクトリ・エントリ中の名前がマスク状態の入力名
と一致し、データの変更済み状況が変更状態選択基準と
一致するとき、処理済みカウントが1だけ増分される。
【0197】ディレクトリの走査は、再開トークン要求
オペランドによって制御される。トークン値が0のとき
処理が開始され、トークン値が開始され、トークン値が
非0のときは、トークンによって指定される場所から処
理が再開される。データ・ブロックが満杯のとき、ディ
レクトリ全体が処理済みのとき、あるいはモデル依存の
時間間隔を越えたとき、処理は完了する。データ・ブロ
ックが満杯のとき(905)、再開トークンが生成され
(906)、戻されるディレクトリ・ブロックのリスト
及び処理済みカウントと共に戻される(907)。ディ
レクトリの終りに達したとき(908)、戻されるディ
レクトリ・ブロックのリスト(909)と処理済みカウ
ントがプログラムに戻される。ディレクトリの終りに達
する前にモデル依存のタイムアウトが発生したとき(9
10)、再開トークンが生成され、戻されるディレクト
リ・ブロックのリスト(912)、及び処理済みカウン
トと共に戻される(911)。
【0198】ディレクトリ・エントリ情報ブロック(D
EIB)のフォーマットを図15に示す。
【0199】ディレクトリを走査するには、ディレクト
リ読取りコマンドを何回も実行する必要がある。ディレ
クトリは走査プロセス中に変化することがある。走査完
了前に処理しなければならない1組のディレクトリ・エ
ントリは、ディレクトリ走査処理の開始時に存在し、有
効なままである、有効なディレクトリ・エントリからな
る。走査開始後に追加または削除されるディレクトリ・
エントリは処理を受ける必要がない。ディレクトリ・エ
ントリは1回だけ処理されればよい。処理後に更新され
たディレクトリ・エントリは、再度処理を受ける必要は
ない。
【0200】(D−6)記憶クラス情報読取り: 図16は、記憶クラス情報読取りコマンドのプロセス流
れ図である。記憶クラス情報読取りコマンドは指定され
た記憶クラスに関する統計を戻す。指定された記憶クラ
ス用のカウンタが戻される。プログラムは、それらのカ
ウンタを周期的に検索し、各カウンタの値の前回の検索
からのデルタ変化を決定することによって、所与の事象
が発生する率を計算することができる。プログラムは、
記憶クラス情報読取りコマンドを発行することにより、
それらのカウンタを検索する。プログラムは、カウンタ
が循環するケースも処理しなければならない。
【0201】(D−7)再利用ベクトル設定: 図17は、再利用ベクトル設定コマンドのプロセス流れ
図である。再利用ベクトル設定コマンドは、ある記憶ク
ラス用の再利用ベクトルを初期設定し活動化する。指定
された記憶クラスの再利用制御が更新される(120
1)。再利用ベクトル・エントリの値が再利用ベクトル
及び対応する再利用カウンタに置かれ(1202)、反
復因数の値が記憶され、再利用カウンタが非0の最低イ
ンデックス値にカーソル位置が設定され、再利用ベクト
ルが活動化される(1203)。
【0202】ある記憶クラスからの再利用を回避するた
め、各再利用ベクトル中のその記憶クラスに対応するア
レイ位置で0カウントを指定する。
【0203】再利用ベクトルが活動状態の間に再利用ベ
クトル設定コマンドを発行すると、ただちに古いカウン
トが破棄され、新しいカウントが有効となる。このコマ
ンドは、再利用ベクトルの現状態をオーバーライドす
る。
【0204】反復因数の値が0の、またはすべての記憶
クラス・カウントが0の再利用ベクトル設定コマンドを
発行すると、再利用ベクトルが非活動化される。したが
って、活動状態の再利用ベクトルがプログラム活動によ
って非活動化できる。
【0205】プログラムがある記憶クラスの再利用ベク
トルを提供する必要はない。再利用ベクトルが提供され
ない場合、その再利用ベクトルはその最初の非活動状態
のままである。目標記憶クラスは、必ず指定された記憶
クラスである。すべての記憶クラスが非活動状態の再利
用ベクトルをもち、自由リストが空である場合、キャッ
シュは、新しい資源の割当てが厳密にその記憶クラス内
で再利用される資源によって満足される、「スチール・
イン・プレイス(steal in place)」と呼ばれる、デフ
ォルト時のスチール・アルゴリズムにある(後述)。
【0206】キャッシュが単一の記憶クラスで割り振ら
れる場合、再利用アルゴリズムとスチール・イン・プレ
イス・アルゴリズムは同じである。
【0207】(D−8)書込み及び登録: 図18及び19は、書込み及び登録コマンドのプロセス
流れ図である。書込み及び登録コマンドは、変更制御が
データの変更状態と整合するとき、データ・ブロックの
内容をデータ域に記憶し、ローカル・キャッシュ・エン
トリを登録する。
【0208】書込み及び登録コマンドはまた、ディレク
トリに現在名前が割り当てられないときには、ディレク
トリ・エントリを割り当てる。
【0209】名前置換制御(NRC)要求オペランドが
1のとき(1301及び1401)、置換名及びローカ
ル・キャッシュ識別子の各要求オペランドによって指定
されるローカル・キャッシュ・エントリが登録解除され
る(1302及び1402)。名前置換制御が0のとき
は、登録解除は行われない。
【0210】データがキャッシュ記憶されていないと
き、データ・テーブル・エントリが割り当てられる(1
303、1304、1403、1404)。ディレクト
リに名前が割り当てられることも割り当てられないこと
もある。割り当てられない場合は、名前の割当ても行わ
れる(1305及び1405)。割当てが成功した場
合、変更制御が0のときはデータが未変更のままでSE
Sキャッシュに書き込まれ(1306及び1310)、
変更制御が1のときは変更された状態で書き込まれ(1
406及び1410)、ローカル・キャッシュ・エント
リが登録される(1307、1311、1407、14
11)。その記憶クラス用のLRU待ち行列を維持する
ため、参照信号が開始される(1312、1313、1
412、1413)。変更ビットが0の場合、WHCB
0Cを増分することによって書込みヒット変更ビット0
事象がカウントされ、変更ビットが1の場合は、WHC
B1Cを増分することによって書込みヒット変更ビット
1事象がカウントされる。その記憶クラス用のどちらの
カウンタもSTCオペランド中で指定される。目標記憶
クラスが満杯の場合、このコマンドは例外応答コードで
完了し(1308、1309、1408、1409)、
目標記憶クラスの値がTSTC応答オペランドに入れら
れ、STCオペランド中で指定される記憶クラス用のW
MTSFCカウンタを増分することによって書込みミス
目標記憶クラス満杯事象がカウントされる。
【0211】データが未変更のままで既にキャッシュ記
憶されているとき(1314)、変更制御が0の場合
は、データが未変更のままで書き込まれ(1315)、
変更制御が1の場合はデータが変更された状態で書き込
まれる(1415)。変更ビットが0の場合、WHCB
0Cを増分することによって書込みヒット変更ビット0
事象がカウントされ、変更ビットが1の場合は、WHC
B1Cを増分することによって書込みヒット変更ビット
1事象がカウントされる。その記憶クラス用のどちらの
カウンタもSTCオペランド中で指定される。
【0212】データが変更された状態で既にキャッシュ
記憶され、変更制御が0のとき(1316)、データは
書き込まれず、ローカル・キャッシュ・エントリは登録
されない。変更制御は、データの変更状態と整合しな
い。コマンドが完了し、例外反応コードが戻され、ST
Cオペランド中で指定される記憶クラス用のWMISC
カウンタを増分することによって書込みミス無効状態事
象がカウントされる。
【0213】データが変更された状態でキャッシュ記憶
され、変更制御が1のとき(1415)、データは変更
された状態で書き込まれ、STCオペランド中で指定さ
れる記憶クラス用のWHCB1Cカウンタを増分するこ
とによって書込みヒット変更ビット1事象がカウントさ
れる。
【0214】(D−9)登録時書込み: 図20は、登録時書込みコマンドのプロセス流れ図であ
る。登録時書込みコマンドは、その名前がディレクトリ
中で割り当てられ、ローカル・キャッシュ・エントリが
登録されており、かつ変更制御がデータの変更状態と整
合する場合に、データ・ブロックの内容をデータ域に記
憶する。
【0215】ローカル・キャッシュ・エントリが登録さ
れ、データがキャッシュ記憶されていないとき(150
1及び1502)、データ・テーブル・エントリが割り
当てられる(1503及び1504)。割当てが成功
し、変更制御が0の場合(1505)、データが未変更
のままで書き込まれ、STCオペランド中で指定される
記憶クラス用のWHCB0Cカウンタを増分することに
よって書込みヒット変更ビット0事象がカウントされ
る。割当てが成功し、変更制御が1の場合(150
6)、データは変更された状態で書き込まれ、STCオ
ペランド中で指定される記憶クラス用のWHCB1Cカ
ウンタを増分することによって書込みヒット変更ビット
1事象がカウントされる。目標記憶クラスが満杯の場合
(1507及び1508)、コマンドが例外対応コード
で完了し、SRCオペランド中で指定される記憶クラス
用のWMTSFCカウンタを増分することによって書込
みミス目標記憶クラス満杯事象がカウントされ、目標記
憶クラスがTSTCオペランドに入れられる。
【0216】ローカル・キャッシュ・エントリが登録さ
れ、データが未変更のままで既にキャッシュ記憶されて
いるとき(1509)、変更制御が0のときは、データ
が未変更のままで書き込まれ(1510)、変更制御が
1のときは、データが変更された状態で書き込まれる
(1511)。変更ビットが0の場合、WHCB0Cを
増分することによって書込みヒット変更ビット0事象が
カウントされ、変更ビットが1の場合は、WHCB1C
を増分することによって書込みヒット変更ビット1事象
がカウントされる。
【0217】ローカル・キャッシュ・エントリが登録さ
れていないとき(1512及び1513)、コマンドは
完了し、例外応答コードが戻され、STCオペランド中
で指定される記憶クラス用のWMNRCカウンタを増分
することによって書込みミス未登録事象がカウントされ
る。
【0218】ローカル・キャッシュ・エントリが登録さ
れ、データが変更された状態で既にキャッシュ記憶さ
れ、変更制御が0のとき(1513)、データは書き込
まれない。変更制御はデータの変更状態と整合しない。
コマンドが完了し、例外応答コードが戻され、STCオ
ペランド中で指定される記憶クラス用のWMISCカウ
ンタを増分することによって書込みミス無効状態事象が
カウントされる。
【0219】ローカル・キャッシュ・エントリが登録さ
れ、データが変更された状態でキャッシュ記憶され、変
更制御が1のとき(1515)、データは変更された状
態で書き込まれ(1511)、STCオペランド中で指
定される記憶クラス用のWHCB1Cカウンタを増分す
ることによって書込みヒット変更ビット1事象がカウン
トされる。
【0220】書込みヒットは、次の2つの事象に区分さ
れる。 −書込みヒットで、変更ビットが0(WHCB0C) −書込みヒットで、変更ビットが1(WHCB1C)
【0221】書込みミスは、次の3つの事象に区分され
る。 −書込みミスで、LCENが未登録(WMNRC) −書込みミスで、データが無効状態でキャッシュ(WM
ISC) −書込みミスで、目標記憶クラスが満杯(WMTSF
C)
【0222】ある時間間隔中の書込みヒットの合計数
(WHC)と書込みミスの合計数(WMC)は、カウン
タ中のデルタ変化を足し合わせることによって決定でき
る。したがって、ある時間間隔にわたる書込みヒット率
(WHR)が、図21の1601のように計算できる。
【0223】SESキャッシュ記憶域の管理(基本機能
の使用例):上記の機構は、SESキャッシュ記憶域の
管理をシステム・ソフトウェアによって実行するための
基礎を提供する。SESキャッシュ記憶域管理用のプロ
トコルは、SESキャッシュを利用するデータ管理プロ
ダクトの種類によって異なる。以下に、基本機能の使用
を例示するシナリオを示す。記憶クラス間で記憶域使用
の平衡をとるアルゴリズムは、非常に複雑になる可能性
がある。記憶域分離の目標を達成し、目標キャッシュ・
ヒット率を実現するために、基本機能の記憶クラスにS
ES資源を割り当てる能力を実施する単純化した例を示
すことにする。
【0224】SESキャッシュと、SESキャッシュを
利用するローカル・データ・マネージャと、オペレーテ
ィング・システムのサポートとからなるシステム構造の
概要を図7ないし11に示す。図7には、データ・ベー
ス・マネージャのバッファ・マネージャによって実行さ
れる処理をまとめて示す。シスプレックス中の諸システ
ム間で共用されるデータ・ベースが最初にアクセスされ
るとき、ローカル・バッファ・プールを構築することが
でき(601)、SESキャッシュ構造にサポートを与
えるオペレーティング・システム・サービスを呼び出し
て、バッファ・マネージャにSESキャッシュ構造への
アクセスを許可することができ(602)、オペレーテ
ィング・システム・サービスを使ってタイムアウト間隔
を設定することができる(605)。
【0225】SESキャッシュ構造をサポートするオペ
レーティング・システム・サービスは、バッファ・マネ
ージャにSESキャッシュ構造へのアクセスを許可する
ために呼び出される(602)。これらのサービスは、
まず要求されたSESキャッシュ構造が既に割り振られ
ているかどうか決定する(603)。SES構造がまだ
割り振られていない場合、キャッシュ構造割振りコマン
ドを呼び出して、SESキャッシュ構造を作成させる
(604)。
【0226】メインライン動作中、データ・ベースへの
アクセスは、バッファ・マネージャによってサポートさ
れる。異なる多数のプロトコルに従うことができる。メ
インライン使用の例を図8及び9に示す(606の詳
細)。 −データをDASDから検索する −データをSESキャッシュに記憶する −データをSESキャッシュから検索する −データをDASDに記憶する
【0227】データへのアクセスは、CPC上で実行さ
れ、データ・ベース・マネージャに要求を行うプログラ
ムによって指令される。たとえば、そうしたプログラム
は、エンド・ユーザからのトランザクション・プログラ
ムを実行させる要求の結果として実行できる。
【0228】データ・ベース・バッファ・マネージャに
要求が行なわれたとき、バッファ・マネージャは、要求
されたデータが既にローカル・バッファ中にあるかどう
か決定する(612)。データがローカル・バッファ中
にある場合、データの妥当性が検査される(613)。
ローカル・バッファ中のデータは、データ・ベース・マ
ネージャの他のインスタンスが更新を実行したため無効
になることもある(図9の622及び624)。ローカ
ル・バッファ中でデータが有効な場合、参照リスト処理
コマンドによってSESデータ要素参照を更新するため
に使用されるエントリが名前リスト中で作成される(6
14)。
【0229】ローカル・バッファ中で現在データが有効
ではない場合、あるバッファが割り当てられ、妥当性標
識が割り当てられる(615)。ローカル・バッファを
SESキャッシュに登録し、データがSESキャッシュ
に記憶されている場合はデータを検索するため、読取り
及び登録コマンドが発行される(616)。データがS
ESキャッシュから検索されない(テストは617で行
われる)場合、データはDASDから読み取られる(6
18)、読取り要求は、要求されたデータを呼出し側に
戻すことで完了する。
【0230】更新要求の場合、バッファ・マネージャは
ローカル・バッファの内容を更新させる(620)。次
いで、データをSESキャッシュに記憶すべきか否か決
定が行われる(621)。データをSESキャッシュに
記憶すべき場合は、登録済み時書込みコマンドが発行さ
れる(622)。登録済み時書込みコマンドによって実
行される処理の一環として、データ・ベース・マネージ
ャの他のインスタンスのローカル・バッファ中のデータ
要素の他のコピーがすべて無効にされる。データをSE
Sキャッシュに記憶すべきでない場合は、データをDA
SDに書き込むことができる(623)。データがDA
SDに書き込まれていたときは、相補コピー無効化コマ
ンドが発行されて、データ・ベース・マネージャの他の
インスタンスのローカル・バッファ中のデータ要素の他
のコピーをすべて無効にする(624)。
【0231】メインライン動作の間、バッファ・マネー
ジャは、SESキャッシュの記憶域の管理にも責任を持
つ(607、また図10及び11に詳記)。バッファ・
マネージャは、SESキャッシュからDASDへの変更
済みデータ要素の移動の管理にも責任を持つ。初期設定
中に確立されたタイムアウト間隔により、オペレーティ
ング・システムは、SESキャッシュ記憶域の管理及び
SESキャッシュ・データのDASDへの移動の管理の
ため、周期的に処理ルーチンに制御権を渡す。
【0232】SESキャッシュ記憶域管理用の1つのプ
ロトコルの概要を図10に示す。この処理には、SES
キャッシュ構造の使用の初期設定中にデータ・ベース・
マネージャによって確立される周期的間隔で制御が与え
られる。各記憶クラスに対して記憶クラス情報読取りコ
マンドが発行される(625)。各記憶クラスのヒット
率が計算される(626)。得られたヒット率が各記憶
クラスについて設定された性能目標と比較され、記憶ク
ラス・サイズの調整値が計算される(627)。割り振
られたSES資源の変更が必要な各記憶クラスについ
て、再利用ベクトル設定コマンドが発行されて、再利用
ベクトルを活動化する(628)。メインライン動作の
間にローカル・バッファ参照が記憶された(614)各
記憶クラスについて、参照リスト処理コマンドが発行さ
れる(629)。
【0233】SESキャッシュからDASDへのデータ
移動管理用の1つのプロトコルの概要を図11に示す。
この処理には、SESキャッシュ構造の使用の初期設定
中にデータ・ベース・マネージャによって確立された周
期的間隔で制御が与えられる。各キャストアウト・クラ
スについてキャストアウト・クラス情報読取りコマンド
が発行され、候補のキャストアウト・クラスが選択され
る(630)。選択された各キャストアウト・クラスに
ついてキャストアウト・クラス読取りコマンドが発行さ
れる(631)。最も以前に更新されたディレクトリ・
エントリのリストが戻される。選択された各ディレクト
リ・エントリについて、キャストアウト用読取りコマン
ドが発行される(632)。SESから読み取られたデ
ータをDASDに書き込ませる入出力要求が作成される
(633)。入出力動作が完了したとき、キャストアウ
ト・ロック解除コマンドが発行される(634)。
【0234】SESキャッシュを使用する全データがも
はやアクセスできなくなったとき、データ・ベース・マ
ネージャはSESキャッシュから切断することができる
(608)。データ・ベース・マネージャは、すべての
修正済みデータ要素を、SESキャッシュからDASD
に移動するか、それとも修正済みデータ要素をSESキ
ャッシュに残しておくかを選択することができる。SE
Sキャッシュ中に修正済みデータ要素が残っていない場
合、SESキャッシュ構造を割振り解除することがで
き、また将来の使用に備えて割り振られたままにしてお
くこともできる。データ・ベース・マネージャは、SE
Sキャッシュ構造から切断するために、オペレーティン
グ・システム・サービスを呼び出す(608)。オペレ
ーティング・システム・サービスは、SESキャッシュ
構造を割振り解除すべきかどうか決定する(609)。
SESキャッシュ構造を割振り解除すべき場合、キャッ
シュ構造割振り解除コマンドが呼び出される(61
0)。次いでローカル・バッファ・プールがデータ・ベ
ース・マネージャによって解放される(611)。
【0235】(1)記憶クラスの割当て: 読取り及び登録コマンド、書込み及び登録コマンド、登
録済み時書込みコマンドが発行されるとき、ディレクト
リ・エントリに記憶クラスが割り当てられる。ディレク
トリ・エントリへの記憶クラスの記憶は、参照信号処理
の一環として行われる。参照信号処理の他の機能は、実
施されたディレクトリ・エントリを記憶クラス待ち行列
の一番下に置くことである。一実施態様では、一つの記
憶クラスが利用される。第2の実施態様では、複数の記
憶クラスが利用される。第2の実施態様では、サポート
指定が記憶クラスの顧客によって行われる。パラメータ
SES_LEVELが用意してある。これは、所与のS
ES_LEVEL中のデータ・セットに割り振られるキ
ャッシュ資源の相対量を決定する。所与のレベルのデー
タ・セットに割り振られるキャッシュ資源は周期的に調
節される。所与のレベルのデータ・セットに動的に割り
振られるキャッシュ資源の量は、そのレベルの相対的重
要度、そのレベルに対するアクティビティの量、及び応
答時間を改善するためにより多くのキャッシュ資源をそ
のレベルに割り振ることの有用度の関数である。アルゴ
リズムは、キャッシュ全体について最低の平均応答時間
を達成しようと試みる。複数の記憶クラスの使用によ
り、単一のSESキャッシュ構造を利用しながら、依然
として様々な性能レベルを提供することができる。たと
えば、厳しい要件をもつ性能クラスのデータほど、SE
Sキャッシュ内で多くの空間を占めることができる。
【0236】(2)再利用プロセスとキャッシュ・コヒ
ーレンシ: 再利用プロセスには、目標記憶クラスの識別、目標クラ
ス中の未変更の最も古いディレクトリ・エントリまたは
データ域の位置指定、及びディレクトリからのディレク
トリ・エントリまたはデータ・テーブル・エントリの除
去が含まれる。
【0237】ディレクトリ・エントリがディレクトリか
ら除去されるとき、そのディレクトリ・エントリは無効
とマークされる。ローカル・キャッシュ・レジスタが走
査され、有効な各エントリについて相互無効化信号が発
行され、そのエントリが無効にされる。SESキャッシ
ュ記憶域管理の諸プロセスは、米国特許出願第8608
05号に記載の諸プロセスを通じて、データ保全性を維
持する。ディレクトリ・エントリが再利用されるとき、
相互無効化信号を発行することにより、下記のことが発
生することが防止される。 −名前Xをもつディレクトリ・エントリが再利用される
こと。ローカル・コピーは有効なままであるが、その登
録はもはやSESによって追跡されない。 −名前Xが異なるディレクトリ・エントリに登録され、
変更されること。有効なローカル・コピーが新しいディ
レクトリ・エントリに登録されないので、相互無効化
(XI)信号は発行されず、ローカル・バッファはコヒ
ーレンシを失う。
【0238】(3)スチール・イン・プレイス: SESキャッシュ構造によって実行されるデフォルト時
の記憶域管理プロセスは、記憶クラス間でのデータ及び
ディレクトリの使用のバランスを維持する。反復因数の
値が0のとき、またはすべての記憶クラス・カウントが
0のとき、再利用ベクトルは非活動状態にある。再利用
ベクトルが非活動状態の場合、目標記憶クラスは、必ず
指定された記憶クラスである。すべての記憶クラスが非
活動状態の再利用ベクトルをもち、ディレクトリとデー
タ要素の自由リストが空である場合、キャッシュは「ス
チール・イン・プレイス」と呼ばれるデフォルト・スチ
ール・アルゴリズムにあり、その場合、新しい資源割当
てが、厳密にその記憶クラス内部で再利用される資源に
よって満足される。複数の記憶クラスを利用する実施態
様では、SES記憶域の使用が記憶クラス間で正しく割
り当てられるとき、「スチール・イン・プレイス」アル
ゴリズムが使用される。そうでない場合は、性能クラス
目標が達成できるように記憶クラス間でのSES記憶域
の再分配を達成するために、記憶クラスの再利用ベクト
ルが設定される。
【0239】(4)参照リスト処理の諸プロセス: 参照リスト処理コマンドは、ローカル・キャッシュ参照
を記憶クラス待ち行列に伝播させるのに使用される。こ
のコマンドは、ローカル・キャッシュ及びSESキャッ
シュの双方の参照活動にわたって記憶クラスを順序付
け、高いローカル・キャッシュ・アクティビティをもつ
ディレクトリ・エントリ及びデータ・テーブル・エント
リの再利用を防止する。プログラムは名前リストを作成
し、ローカル・キャッシュ・エントリがテストの結果有
効と判定されるとき名前を追加し、周期的に参照リスト
処理コマンドによって名前リストをSESキャッシュに
書き込む。
【0240】参照リスト処理(PRL)コマンドは、事
象駆動またはタイマ駆動方式で呼び出される。プログラ
ムによって作成された名前リストが最大サイズに達した
とき、プログラムはPRLコマンドを開始することがで
きる。プログラムはまた、満了時にPRLコマンドを発
行させる、時間間隔を確立することもできる。どちらの
技法でも、名前リストのサイズを修正するため、あるい
は間隔の持続時間を修正するために、プログラムによる
同調が必要である。PRLコマンドの発行頻度の変更
は、完了参照リスト・カウンタ(CRLC)及び部分完
了参照リスト・カウンタ(PCRLC)を監視すること
により判断される。CRLCとPCRLCは、記憶クラ
ス情報読取りコマンドによって戻される。CRLC値が
高である場合、プログラムは、名前リストのサイズを増
大させ、あるいはタイマ間隔の持続時間を増加させる。
SESキャッシュ記憶域管理に伴うオーバーヘッドを最
小にするために、PRLコマンドの発行頻度を減少させ
るのが好都合である。PCRLC値が高である場合、プ
ログラムは名前リストのサイズを減少させ、あるいはタ
イマ間隔の持続時間を減少させる。ローカル・キャッシ
ュ参照パターンがSESキャッシュに正しく反映される
ようにするために、PRLコマンドの発行頻度を増加さ
せるのが好都合である。
【0241】(5)記憶クラス設計の検索: SESキャッシュを使用するプログラムは、記憶クラス
情報読取りコマンドを使って、ある記憶クラスに関する
統計を周期的に検索する。統計の検索は、読取り及び登
録コマンド、書込み及び登録コマンド、登録済み時書込
みコマンド上で戻される目標記憶クラス満杯応答コード
によって駆動できる。目標記憶クラス(TSTC)応答
オペランドは、満杯状態のために再利用動作が失敗した
とき、目標記憶クラスを識別する。さらに、統計の検索
は時間駆動方式でも駆動される。戻されるカウンタが、
その記憶クラスに割り当てられているデータ域要素の数
とディレクトリ・エントリの数を識別する。戻されるカ
ウンタはまた、図13及び図21に示すように、書込み
ヒット率と読取りヒット率の計算を可能にする。これら
のカウンタは、SESキャッシュ資源の再割当てを必要
とする記憶クラス用の再利用ベクトルを確立する際に、
プログラムによって使用される。
【0242】(6)記憶域分離のための平衡化: 記憶クラスの1つの用途は、SES中の1組のデータ要
素を分離することであろう。たとえば、データベースの
所与の区域が、インデックス・レコードの場合などのよ
うに、頻繁に参照されることもあり得る。このデータが
頻繁に参照されるとすると、それは付加されたローカル
・キャッシュに常駐し続けることになりやすい。また、
インデックスの更新も余り頻繁には起こらない。それで
も、どんな更新もすべてのローカル・キャッシュで正し
く反映されるようにするために、このようなインデック
ス・データ要素用のディレクトリ要素は、SESキャッ
シュ中に常駐したままでなければならない。更新済みデ
ータ要素検索のペナルティを最小にするため、こうした
インデックス・データ要素用のデータもSESキャッシ
ュに常駐することがある。記憶域分離のために記憶クラ
スを使用する第2の例は、頻繁には参照されないが、参
照されるときは高性能をもつ必要のある、データ要素に
アクセスするための要件に対処することであろう。この
タイプのデータ要素はプロセッサのローカル・キャッシ
ュに常駐しなくてもよいが、これらのデータ要素を、他
の記憶クラスにより再利用から保護された記憶クラスに
割り当てることにより、SESキャッシュ内に常駐させ
ることができる。記憶域分離のために記憶クラスを使用
することの付随的利点は、参照リスト処理コマンド発行
の必要が減るまたはなくなることである。SESキャッ
シュ内の分離すべきデータ要素が、他の記憶クラスの再
利用アクティビティの目標ではない記憶クラスである場
合、どれだけ相対的に古いこれらのデータ要素が他の記
憶クラスのデータ要素と比較されようと問題ではない。
【0243】非常に簡単な例として、1000個のデー
タ要素と1000個のディレクトリ・エントリを有する
4Kのデータ要素にSESキャッシュを使用するものと
仮定する。さらに、2つの記憶クラスが定義されてお
り、一方の記憶クラスは一般データ・アクセス用、第2
の記憶クラスは、任意の時点でアクセスされているまた
はいないデータ・セットのインデックス・レコードの記
憶域分離用に使用されるものと仮定する。この例では、
最初、インデックス・レコードの分離を行う対象となる
データ・セットがアクセスされていず、またすべてのデ
ータ要素が使用中であると仮定する。そうすると、すべ
てのデータ要素が、2つの記憶クラスのどちらか一方、
この例では記憶クラス1に割り当てられることになる。
【0244】高性能が望まれるインデックスをもつデー
タ・セットがアクセスされるとき、インデックス・デー
タ要素がSESキャッシュに記憶クラス2で記憶され
る。インデックス・データ要素がSESキャッシュ中に
常駐したままになるようにSESキャッシュ資源を再割
当てするため、記憶クラス1の再利用ベクトルは非活動
状態のままになる。そうすると、すべての再利用処理が
記憶クラス1からのディレクトリ・エントリ及びデータ
要素を再使用することになる。記憶クラス2の再利用ベ
クトルは、記憶クラス2からの再利用を行わせず、記憶
クラス1から再利用を実行させるように設定される。記
憶クラス1の再利用ベクトルに使用される値は、無制限
に設立することもでき、SESキャッシュ資源をすべて
使用することのないように最大値に制限することもでき
る。この例を拡張して、複数の記憶クラスを可能にし、
インデックス・データ要素用のSES資源の再利用が、
他のデータ要素用に使用される諸記憶クラス間で平衡さ
れるようにすることは容易である。
【0245】(7)キャッシュ・ヒット率達成のための
平衡化: 記憶クラスの第2の使い方は、競合するデータ性能グル
ープ間でSESキャッシュ資源の利用を平衡させること
である。一例として、2つのデータ性能グループが顧客
によって定義されているものと仮定する。この例では、
SESキャッシュ・データのアクセス時間が100マイ
クロ秒、DASDデータのアクセス時間が10ミリ秒と
仮定する。第1の性能グループでは、データ要素の90
%で0.1ミリ秒のアクセスを必要とするという目標が
たてられている。第2の性能グループでは、データへの
アクセスに平均5ミリ秒を要するという目標がたてられ
ている。
【0246】これらの性能目標を達成するため、データ
・マネージャがSESキャッシュ中で2つの記憶クラス
を確立しているものと仮定する。第1の性能目標を達成
するには、記憶クラス1は、SESキャッシュ中で90
%のヒット率が必要である。第2の性能目標を達成する
には、記憶クラス2は、SESキャッシュ中で50%の
ヒット率が必要である。データ・マネージャは、タイマ
駆動アルゴリズムを確立する。このアルゴリズムは、2
つの性能グループのデータ要素の実時間要求がある場合
に両方の性能目標を最良に満たせるように、2つの記憶
クラス用の再利用ベクトルをヒューリスティックに確立
する。このアルゴリズムは、記憶クラス情報読取りコマ
ンドを使って2つの記憶クラスの統計を周期的に検索す
る。検索したカウンタに基づいて、図13及び図21の
ように読取りヒット率と書込みヒット率を計算する。各
性能グループからのデータの全体的要求率及び達成され
るヒット率に基づいて、各記憶クラス用の再利用ベクト
ルが、2つの記憶クラスのそれぞれにより多くのまたは
より少しのSESキャッシュ資源を割り当てるように調
節される。
【0247】これで当業者には、本発明の範囲及び趣旨
から逸脱しない多数の変形及び修正が明らかになろう。
すなわち、上述の諸実施例は、限定ではなく例として示
したものであることを理解されたい。
【図面の簡単な説明】
【図1】ある記憶クラス用の再利用制御を示す図であ
る。
【図2】ある記憶クラス用の再利用制御を示す図であ
る。
【図3】キャッシュ構造割振りコマンドのプロセス流れ
図である。
【図4】キャッシュ構造割振りコマンドのプロセス流れ
図である。
【図5】キャッシュ構造割振り解除コマンドのプロセス
流れ図である。
【図6】参照リスト処理コマンドのプロセス流れ図であ
る。
【図7】データ・ベース・マネージャの全体的処理の流
れ図である。
【図8】メインライン読取り動作の概要を示す図であ
る。
【図9】メインライン書込み動作の概要を示す図であ
る。
【図10】SESキャッシュ記憶管理の概要を示す図で
ある。
【図11】SESキャッシュ・データのDASDへの移
動の概要を示す図である。
【図12】読取り及び登録コマンドのプロセス流れ図で
ある。
【図13】ある時間間隔にわたる読取り/ビット率(R
HR)の計算に使用される図である。
【図14】ディレクトリ読取りコマンドによって呼び出
されるプロセスを表す図である。
【図15】ディレクトリ・エントリ情報ブロック(DE
IB)のフォーマットを示す図である。
【図16】記憶クラス情報読取りコマンドのプロセス流
れ図である。
【図17】再利用ベクトル設定コマンドのプロセス流れ
図である。
【図18】読取り及び登録コマンドのプロセス流れ図で
ある。
【図19】読取り及び登録コマンドのプロセス流れ図で
ある。
【図20】登録済み書込みコマンドのプロセス流れ図で
ある。
【図21】ある時間間隔にわたる書込みビット率(WH
R)の計算に使用される図である。
【図22】ディレクトリ及びデータ域の再利用プロセス
のプロセス流れ図である。
【図23】好ましい実施例における、現在SESキャッ
シュ中にある記憶クラス間でのディレクトリ及びデータ
域空間割振りを動的に制御するための、再利用ベクトル
及び再利用カウンタの動作を表す、プロセス流れ図であ
る。
【図24】シスプレックス・システムを示す図である。
【図25】単一のCPCの構成を示す図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジェフリー・アラン・フライ アメリカ合衆国12524、ニューヨーク州 フィッシュキル、グリーンヒル・ドライ ブ 24エイ (72)発明者 ブライアン・バリー・モア アメリカ合衆国12603、ニューヨーク州 ポーキープシー、カーネリ・コート 16 (72)発明者 ジェフリー・マーク・ニック アメリカ合衆国12524、ニューヨーク州 フィッシュキル、プリマス・ロード 43 (72)発明者 ケヴィン・フランク・スミス アメリカ合衆国95116−2819、カリフォ ルニア州サンノゼ、ピーチ・コート 1323 (72)発明者 マイケル・ダスティン・スワンソン アメリカ合衆国12603、ニューヨーク州 ポーキープシー、コレッジ・アベニュー 95 (56)参考文献 HAROLD S.STONE斉藤忠 夫 八田弘監訳「高性能コンピュータア ーキテクチャー」P.24−102(平成元 年3月30日発行)丸善株式会社

Claims (19)

    (57)【特許請求の範囲】
  1. 【請求項1】コンピュータ複合体におけるデータ処理制
    御方法において、 システム複合体(シスプレックス)を構造化するステッ
    プであって、各々がその内部操作を制御するための1ま
    たは2以上の制御プログラムを含む複数の中央プロセッ
    サ複合体(CPC)と、通常、上記複数のCPCに接続
    され、CPC間で共用されるデータ項目を上記シスプレ
    ックス中に永久的に記憶するためのシスプレックス直接
    アクセス記憶装置(シスプレックスDASD)と、上記
    複数のCPCに接続される共用電子記憶機構(SES)
    とを含むようにシスプレックスを構造化するステップ
    と、 キャッシュ制御、及びキャッシュ・ディレクトリ、並び
    に接続された複数のCPCからSESキャッシュに記憶
    されるべきデータ項目を受け取るためのデータ域とをセ
    ットアップするために必要とされるSES中の記憶空間
    を指定するオペランド・パラメータを有する割振りコマ
    ンドをSESに対して発行するプログラムを実行するよ
    うに上記CPCの1つを制御するステップと、 上記割振りコマンドに応答して、上記オペランド・パラ
    メータにより指定される記憶空間がSES中に存在する
    場合には、SESが、上記パラメータに基き、上記キャ
    ッシュ制御、キャッシュ・ディレクトリ、及びデータ域
    を形成し、新規のSESキャッシュを生成するステップ
    と、 各キャッシュ・ディレクトリ・エントリに、上記キャッ
    シュ中の対応するデータ域に書き込まれるべきデータ項
    目の名前を受け取るためのデータ名フィールド、及び上
    記ディレクトリ・エントリ及び上記データ項目の記憶ク
    ラスの識別子を受け取るための記憶クラス・フィールド
    を設けるステップとを含む、 データ処理制御方法。
  2. 【請求項2】上記記憶クラス・フィールドに記憶クラス
    を書き込み、対応するディレクト リ・エントリによって
    表されるデータ項目と該記憶クラスとの選択的な関連付
    けを行い、該記憶クラスに基づいた未変更データ項目及
    び対応するディレクトリ・エントリの再利用を可能にす
    ることにより、SESキャッシュのためのSES記憶空
    間の選択的な再利用を可能にするステップを含む、請求
    項1に記載のデータ処理制御方法。
  3. 【請求項3】新しいSESキャッシュ・ディレクトリ・
    エントリを割り振るため、及びSESキャッシュに新た
    に記憶されたSESキャッシュ・データ項目用にデータ
    域を割り振るための記憶域の自由空間のプールを提供す
    るステップを含む、請求項1に記載のデータ処理制御方
    法。
  4. 【請求項4】新しいSESキャッシュ・ディレクトリ・
    エントリを割り振るためのディレクトリ・エントリ・プ
    ールとしての第1の部分と、SESキャッシュに新たに
    記憶されたSESキャッシュ・データ項目用にデータ域
    を割り振るための第2の部分とを含む、2つの部分から
    なる自由空間のプールを提供するステップを含む、請求
    項3に記載のデータ処理制御方法。
  5. 【請求項5】指定されたデータ項目をSESキャッシュ
    ・ディレクトリに登録することを求めるCPC要求に応
    答して、SESキャッシュ中のSESキャッシュ・ディ
    レクトリ中のディレクトリ・エントリを構造化する手段
    をSES中に設けるステップを含む、請求項2に記載の
    データ処理制御方法。
  6. 【請求項6】共通名を識別するCPCからSESへの登
    録要求に応答して、あるデータ項目用の共通名をSES
    キャッシュ・ディレクトリ・エントリ中に登録するステ
    ップと、 SESキャッシュに記憶されている、SESキャッシュ
    ・ディレクトリ・エントリ及びそのディレクトリ・エン
    トリに関連するデータ項目を記憶クラスに区分するた
    め、SESキャッシュ・ディレクトリ・エントリ用の記
    憶クラスの値を指定するCPCによって、SESキャッ
    シュ・ディレクトリを複数の記憶クラス論理区画に区分
    するステップとを含み、 ディレクトリ・エントリ及びデータ項目の論理区画の位
    置が物理区画の位置とは無関係である、請求項5に記載
    のデータ処理制御方法。
  7. 【請求項7】CPC中のソフトウェアによって記憶クラ
    スをデータ項目と関連付けるステップと、 上記記憶クラスに基づいて、ソフトウェアによりSES
    キャッシュ記憶域を制御するステップとを含む、請求項
    6に記載のデータ処理制御方法。
  8. 【請求項8】新たなSESキャッシュ・ディレクトリ・
    エントリを提供する自由空間プールに利用可能な記憶空
    間がないとき、SES内に新たなディレクトリ・エント
    リを割り当てるために、コマンドにより要求され新たに
    割り振られるSESキャッシュの記憶クラス内にあるS
    ESキャッシュ・ディレクトリ・エントリを再利用する
    ステップを含む、請求項7記載のデータ処理制御方法。
  9. 【請求項9】SESキャッシュに新たに記憶されたデー
    タ項目に対してキャッシュ・データ空間を割り振るため
    の自由空間プールに、再利用された各データ域の表現を
    入れることによって、記憶クラス中の再利用されている
    SESキャッシュ・ディレクトリ・エントリと関連する
    あらゆるデータ項目が使用するSESキャッシュ・デー
    タ域をも再利用するステップを含む、請求項8記載のデ
    ータ処理制御方法。
  10. 【請求項10】SESキャッシュ内の複数の記憶クラス
    の中から目標記憶クラスを識別し、該目標記憶クラスに
    おいて上記再利用ステップを実行する、請求項8記載の
    データ処理制御方法。
  11. 【請求項11】SESキャッシュの記憶クラスに対する
    上記再利用ステップの動作のために再利用ベクトルを活
    動状態または非活動状態にセットするステップを含み、
    該活動状態は該記憶クラスに対する再利用ベクトルの動
    作を可能とし、該非活動状態は該記憶クラスに対する再
    利用ベクトルの動作を妨げる、請求項8記載のデータ処
    理制御方法。
  12. 【請求項12】CPCが発行する再使用ベクトル・セッ
    ト・コマンドにおいて指定される記憶クラスについて、
    再使用ベクトルを活動状態にするステップを含む、請求
    項10記載のデータ処理制御方法。
  13. 【請求項13】各記憶クラスにおいて未変更の標識を有
    するSESディレクトリ・エントリを、該記憶クラス中
    のディレクトリ・エントリへのアクセス参照の最近性に
    よって順序付けるステップと、 上記ステップで得られたSESディレクトリ・エントリ
    の順序に従って、未変更データ項目に関連するディレク
    トリ・エントリ及び関連するデータ項目のないディレク
    トリ・エントリの記憶クラスにおいて再利用を行うステ
    ップとを含む、請求項8記載のデータ処理制御方法。
  14. 【請求項14】現在割り当てられていないSESデータ
    域またはSESディレクトリ・エントリを要求する、C
    PCにより発行されたSESコマンドの動作を実行する
    ステップと、 自由空間プールが存在するとき、該プールからSESデ
    ータ域またはSESディレクトリ・エントリを割り当て
    るステップとを含む、請求項8記載のデータ処理制御方
    法。
  15. 【請求項15】CPCからSESへの読取りコマンドに
    よってSES内で生じる読取りヒット事象及び読取りミ
    ス事象をカウントするために該SES内で維持される1
    組の事象カウンタを、各記憶クラスについて提供するス
    テップと、 CPCからSESへの書込みコマンドによってSES内
    で生じる書込みヒット事象及び書込みミス事象をカウン
    トするために該SES内で維持される1組の事象カウン
    タを、各記憶クラスについて提供するステップとを含
    む、請求項7記載のデータ処理制御方法。
  16. 【請求項16】SES中にチェックポイント査定情報を
    記憶し、所定のタイムアウト期間中に割振りが完了しな
    い場合は、該情報CPCに送ることにより、SESキャ
    ッシュ割振りプロセスを終了させるステップと、 上記チェックポイント情報がキャッシュ生成が終了した
    ことを示す時点から、SESキャッシュの生成を続行す
    るため、CPC中のプログラムによって後に上記パラメ
    ータと共に割振りコマンド発行するステップと、 所定のタイムアウト時間内に割振りの完了が起こった場
    合、該完了に対してSESキャッシュを生成するステッ
    プと、 上記完了が起こったとき、上記割振りコマンドを発行す
    るCPCに、完了信号で応答するステップとを含む、請
    求項1に記載のデータ処理制御方法。
  17. 【請求項17】CPC中のプログラムによってSESか
    らSESキャッシュを除去するステップであって、該キ
    ャッシュを除去するため、キャッシュ構造割振り解除コ
    マンドを特定のパラメータと共に発行するステップと、 SES内のプロセスによって上記SESキャッシュの除
    去を制御するステップと、 除去が完了したとき、上記解除コマンドを発行するCP
    Cに、完了信号で応答するステップとを含む、請求項1
    に記載のデータ処理制御方法。
  18. 【請求項18】システム複合体(シスプレックス)を構
    造化する手段であって、各々がその内部操作を制御する
    ための1または2以上の制御プログラムを含む複数の中
    央プロセッサ複合体(CPC)と、通常、上記複数のC
    PCに接続され、CPC間で共用されるデータ項目を上
    記シスプレックス中に永久的に記憶するためのシスプレ
    ックス直接アクセス記憶装置(シスプレックスDAS
    D)と、上記複数のCPCに接続される共用電子記憶機
    構(SES)とを含むようにシスプレックスを構造化す
    る手段と、 キャッシュ制御、及びキャッシュ・ディレクトリ、並び
    に接続された複数のCPCからSESキャッシュに記憶
    されるべきデータ項目を受け取るためのデータ域とをセ
    ットアップするために必要とされるSES中の記憶空間
    を指定するオペランド・パラメータを有する割振りコマ
    ンドをSESに対して発行するプログラムを実行するよ
    うに上記CPCの1つを制御する手段と、 上記割振りコマンドに応答して、上記オペランド・パラ
    メータにより指定される記憶空間がSES中に存在する
    場合には、SESが、上記パラメータに基き、上記キャ
    ッシュ制御、キャッシュ・ディレクトリ、及びデータ域
    を形成し、新規のSESキャッシュを生成する手段と、 各キャッシュ・ディレクトリ・エントリに、上記キャッ
    シュ中の対応するデータ域に書き込まれるべきデータ項
    目の名前を受け取るためのデータ名フィールド、及び上
    記ディレクトリ・エントリ及び上記データ項目の記憶ク
    ラスの識別子を受け取るための記憶クラス・フィールド
    を設ける手段とを含む、 コンピュータ・システム。
  19. 【請求項19】上記記憶クラスが、再利用プロセスを制
    御するための再利用ベクトルを有する、請求項18記載
    のコンピュータ・システム。
JP5017494A 1992-03-30 1993-02-04 デ―タ処理制御方法及びコンピュ―タ・システム Expired - Lifetime JP2512675B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US860807 1992-03-30
US07/860,807 US5457793A (en) 1992-03-30 1992-03-30 Software cache management of a shared electronic store in a supplex

Publications (2)

Publication Number Publication Date
JPH0683782A JPH0683782A (ja) 1994-03-25
JP2512675B2 true JP2512675B2 (ja) 1996-07-03

Family

ID=25334063

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5017494A Expired - Lifetime JP2512675B2 (ja) 1992-03-30 1993-02-04 デ―タ処理制御方法及びコンピュ―タ・システム

Country Status (2)

Country Link
US (1) US5457793A (ja)
JP (1) JP2512675B2 (ja)

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2566717B2 (ja) 1992-03-30 1996-12-25 インターナショナル・ビジネス・マシーンズ・コーポレイション 条件付きオペレーション提供装置及び方法
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
US5761739A (en) * 1993-06-08 1998-06-02 International Business Machines Corporation Methods and systems for creating a storage dump within a coupling facility of a multisystem enviroment
JP3261239B2 (ja) * 1993-07-27 2002-02-25 富士通株式会社 データ転送の一括化処理方法
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
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
US5581737A (en) * 1994-09-12 1996-12-03 International Business Machines Corporation Method and apparatus for expansion, contraction, and reapportionment of structured external storage structures
US5625811A (en) * 1994-10-31 1997-04-29 International Business Machines Corporation Method and system for database load balancing
US5548728A (en) * 1994-11-04 1996-08-20 Canon Information Systems, Inc. System for reducing bus contention using counter of outstanding acknowledgement in sending processor and issuing of acknowledgement signal by receiving processor to indicate available space in shared 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
US5758149A (en) * 1995-03-17 1998-05-26 Unisys Corporation System for optimally processing a transaction and a query to the same database concurrently
JPH096633A (ja) * 1995-06-07 1997-01-10 Internatl Business Mach Corp <Ibm> データ処理システムに於ける高性能多重論理経路の動作用の方法とシステム
US5765192A (en) * 1996-05-01 1998-06-09 Sun Microsystems, Inc. Method and computer program product to reuse directory search handles
US6374255B1 (en) 1996-05-21 2002-04-16 Immersion Corporation Haptic authoring
US5887135A (en) * 1996-08-15 1999-03-23 International Business Machines Corporation System and method for management of object transitions in an external storage facility accessed by one or more processors
US5778391A (en) * 1996-09-19 1998-07-07 International Business Machines Corporation Method and system for reclaiming stacked volumes within a peripheral data storage subsystem
US6223256B1 (en) * 1997-07-22 2001-04-24 Hewlett-Packard Company Computer cache memory with classes and dynamic selection of replacement algorithms
US6252583B1 (en) * 1997-11-14 2001-06-26 Immersion Corporation Memory and force output management for a force feedback system
US6256011B1 (en) 1997-12-03 2001-07-03 Immersion Corporation Multi-function control device with force feedback
US6237000B1 (en) 1998-05-01 2001-05-22 International Business Machines Corporation Method and apparatus for previewing the results of a data structure allocation
US7013305B2 (en) 2001-10-01 2006-03-14 International Business Machines Corporation Managing the state of coupling facility structures, detecting by one or more systems coupled to the coupling facility, the suspended state of the duplexed command, detecting being independent of message exchange
US6230243B1 (en) 1999-02-19 2001-05-08 International Business Machines Corporation Method, system and program products for managing changed data of castout classes
US6438654B1 (en) 1999-02-22 2002-08-20 International Business Machines Corporation Castout processing for duplexed cache structures
US6539495B1 (en) 1999-02-22 2003-03-25 International Business Machines Corporation Method, system and program products for providing user-managed duplexing of coupling facility cache structures
US6725241B1 (en) 1999-03-31 2004-04-20 International Business Machines Corporation Method and apparatus for freeing memory in a data processing system
JP4378029B2 (ja) * 1999-04-27 2009-12-02 キヤノン株式会社 データ処理方法及び装置及び記憶媒体
US6542970B1 (en) 1999-08-23 2003-04-01 International Business Machines Corporation Method, system and program products for copying coupling facility list structures
US6266783B1 (en) 1999-08-23 2001-07-24 International Business Machines Corporation System-managed rebuild of coupling facility structures
US6317744B1 (en) 1999-08-23 2001-11-13 International Business Machines Corporation Method, system and program products for browsing fully-associative collections of items
US6584554B1 (en) 1999-08-23 2003-06-24 International Business Machines Corporation Directed allocation of coupling facility structures
US6546414B1 (en) 1999-08-23 2003-04-08 International Business Machines Corporation Method, system and program products for copying coupling facility lock structures
US6594667B2 (en) 1999-08-23 2003-07-15 International Business Machines Corporation Method, system and program products for modifying coupling facility structures
US6546466B1 (en) 1999-08-23 2003-04-08 International Business Machines Corporation Method, system and program products for copying coupling facility cache structures
US6609214B1 (en) 1999-08-23 2003-08-19 International Business Machines Corporation Method, system and program products for copying coupling facility structures
US6693626B1 (en) 1999-12-07 2004-02-17 Immersion Corporation Haptic feedback using a keyboard device
US6598143B1 (en) 2000-02-24 2003-07-22 International Business Machines Corporation Method to increase performance of acquiring free memory pages
JP2001297026A (ja) 2000-04-11 2001-10-26 Hitachi Ltd 複数のデータベースマネージメントシステムを有する計算機システム
US7421541B2 (en) 2000-05-12 2008-09-02 Oracle International Corporation Version management of cached permissions metadata
US7203709B2 (en) * 2000-05-12 2007-04-10 Oracle International Corporation Transaction-aware caching for access control metadata
US7725878B1 (en) 2000-05-12 2010-05-25 Oracle International Corporation Property bundles on a per instance basis
US7389493B1 (en) 2000-05-12 2008-06-17 Oracle International Corporation Categories on a per instance basis
US7987217B2 (en) * 2000-05-12 2011-07-26 Oracle International Corporation Transaction-aware caching for document metadata
US7185005B1 (en) 2000-05-12 2007-02-27 Oracle International Corporation Nested transactions in a file system
US6963882B1 (en) 2000-10-02 2005-11-08 International Business Machines Corporation Method and apparatus for processing a list structure
US6862595B1 (en) 2000-10-02 2005-03-01 International Business Machines Corporation Method and apparatus for implementing a shared message queue using a list structure
GB0028237D0 (en) * 2000-11-18 2001-01-03 Ibm Method and apparatus for communication of message data
US6859866B2 (en) * 2001-10-01 2005-02-22 International Business Machines Corporation Synchronizing processing of commands invoked against duplexed coupling facility structures
US7099935B2 (en) * 2001-10-01 2006-08-29 International Business Machines Corporation Dynamically determining whether to process requests synchronously or asynchronously
US6813726B2 (en) 2001-10-01 2004-11-02 International Business Machines Corporation Restarting a coupling facility command using a token from another coupling facility command
US6944787B2 (en) * 2001-10-01 2005-09-13 International Business Machines Corporation System-managed duplexing of coupling facility structures
US6954817B2 (en) * 2001-10-01 2005-10-11 International Business Machines Corporation Providing at least one peer connection between a plurality of coupling facilities to couple the plurality of coupling facilities
US6910158B2 (en) * 2001-10-01 2005-06-21 International Business Machines Corporation Test tool and methods for facilitating testing of duplexed computer functions
JP4130076B2 (ja) * 2001-12-21 2008-08-06 富士通株式会社 データベース管理プログラムおよび記録媒体
US6904823B2 (en) 2002-04-03 2005-06-14 Immersion Corporation Haptic shifting devices
GB0207967D0 (en) * 2002-04-08 2002-05-15 Ibm Data processing arrangement and method
GB0207969D0 (en) 2002-04-08 2002-05-15 Ibm Data processing arrangement and method
US7120746B2 (en) * 2002-09-09 2006-10-10 International Business Machines Corporation Technique for data transfer
US8917234B2 (en) 2002-10-15 2014-12-23 Immersion Corporation Products and processes for providing force sensations in a user interface
GB2418475B (en) 2003-06-09 2007-10-24 Immersion Corp Interactive gaming systems with haptic feedback
US7734888B1 (en) 2005-04-08 2010-06-08 Netapp, Inc. Capacity guarantees in a storage system
US7702873B2 (en) * 2005-04-25 2010-04-20 Network Appliance, Inc. Managing common storage by allowing delayed allocation of storage after reclaiming reclaimable space in a logical volume
GB0518013D0 (en) * 2005-09-03 2005-10-12 Ibm Method,apparatus and computer program product for sharing resources
US7533235B1 (en) 2005-10-03 2009-05-12 Network Appliance, Inc. Reserve stacking
CN101517514A (zh) 2006-09-13 2009-08-26 伊梅森公司 用于游戏厅游戏触觉的系统和方法
US9486292B2 (en) 2008-02-14 2016-11-08 Immersion Corporation Systems and methods for real-time winding analysis for knot detection
US8176089B1 (en) * 2008-03-31 2012-05-08 Sonoa Networks India (PVT) Ltd. Efficient storage and manipulation of structured documents
US8364710B2 (en) * 2008-07-10 2013-01-29 Juniper Networks, Inc. Model-based resource allocation
US9104791B2 (en) 2009-05-28 2015-08-11 Immersion Corporation Systems and methods for editing a model of a physical system for a simulation
US10061701B2 (en) * 2010-04-26 2018-08-28 International Business Machines Corporation Sharing of class data among virtual machine applications running on guests in virtualized environment using memory management facility
GB2502857B (en) * 2013-03-05 2015-01-21 Imagination Tech Ltd Migration of data to register file cache
US9866924B2 (en) 2013-03-14 2018-01-09 Immersion Corporation Systems and methods for enhanced television interaction
US10310923B1 (en) 2014-08-28 2019-06-04 Seagate Technology Llc Probabilistic aging command sorting
US9342372B1 (en) * 2015-03-23 2016-05-17 Bmc Software, Inc. Dynamic workload capping
US9680657B2 (en) 2015-08-31 2017-06-13 Bmc Software, Inc. Cost optimization in dynamic workload capping
JP6464980B2 (ja) 2015-10-05 2019-02-06 富士通株式会社 プログラム、情報処理装置及び情報処理方法
US9929970B1 (en) * 2015-12-03 2018-03-27 Innovium, Inc. Efficient resource tracking
US10218589B1 (en) * 2015-12-17 2019-02-26 Innovium, Inc. Efficient resource status reporting apparatuses
US10432429B1 (en) 2016-02-16 2019-10-01 Innovium, Inc. Efficient traffic management
US10831403B2 (en) 2017-05-19 2020-11-10 Seagate Technology Llc Probabalistic command aging and selection
JP7110615B2 (ja) * 2018-02-22 2022-08-02 日本電気株式会社 情報処理装置、情報処理システム、情報処理方法、及び、プログラム
CN117539409B (zh) * 2024-01-10 2024-03-26 北京镜舟科技有限公司 基于数据缓存的查询加速方法、装置、介质及电子设备

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4463424A (en) * 1981-02-19 1984-07-31 International Business Machines Corporation Method for dynamically allocating LRU/MRU managed memory among concurrent sequential processes
US4445174A (en) * 1981-03-31 1984-04-24 International Business Machines Corporation Multiprocessing system including a shared cache
US5123101A (en) * 1986-11-12 1992-06-16 Xerox Corporation Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss
US5201040A (en) * 1987-06-22 1993-04-06 Hitachi, Ltd. Multiprocessor system having subsystems which are loosely coupled through a random access storage and which each include a tightly coupled multiprocessor
US4965719A (en) * 1988-02-16 1990-10-23 International Business Machines Corporation Method for lock management, page coherency, and asynchronous writing of changed pages to shared external store in a distributed computing system
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
US5136700A (en) * 1989-12-22 1992-08-04 Digital Equipment Corporation Apparatus and method for reducing interference in two-level cache memories

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HAROLDS.STONE斉藤忠夫八田弘監訳「高性能コンピュータアーキテクチャー」P.24−102(平成元年3月30日発行)丸善株式会社

Also Published As

Publication number Publication date
JPH0683782A (ja) 1994-03-25
US5457793A (en) 1995-10-10

Similar Documents

Publication Publication Date Title
JP2512675B2 (ja) デ―タ処理制御方法及びコンピュ―タ・システム
US5581737A (en) Method and apparatus for expansion, contraction, and reapportionment of structured external storage structures
US5537574A (en) Sysplex shared data coherency method
US5493668A (en) Multiple processor system having software for selecting shared cache entries of an associated castout class for transfer to a DASD with one I/O operation
US6523102B1 (en) Parallel compression/decompression system and method for implementation of in-memory compressed cache improving storage density and access speed for industry standard memory subsystems and in-line memory modules
US5544345A (en) Coherence controls for store-multiple shared data coordinated by cache directory entries in a shared electronic storage
US6845430B2 (en) System for maintaining a buffer pool
EP0349122B1 (en) Method and apparatus for filtering invalidate requests
CN100458738C (zh) 用于管理页替换的方法和系统
KR920005853B1 (ko) 페이지 분할형 가상 메모리 데이타 처리 시스템에서의 데이타 전송 방법
US6760909B1 (en) Virtual memory system and methods
EP0323013B1 (en) Method of operating a multiprocessor system employing a shared virtual memory
US8935456B2 (en) Method and system for integrating database memory management in virtual machines
US20040049636A1 (en) Technique for data transfer
US5134696A (en) Virtual lookaside facility
JPH0364890B2 (ja)
EP1010080A1 (en) Mechanism for managing allocation of virtual memory buffers to virtual processes on a least recently used basis
JPH11102323A (ja) 仮想アドレス変換用の柔軟な変換記憶バッファ
US7107400B2 (en) System, apparatus, and process for evaluating projected cache sizes
US7502906B2 (en) Non-blocking growable arrays
US7500073B1 (en) Relocation of virtual-to-physical mappings
Zou et al. Pangea: monolithic distributed storage for data analytics
CN115617542A (zh) 内存交换方法、装置、计算机设备及存储介质
US11341058B2 (en) Handling software page faults using data from hierarchical data structures
JP2001520770A (ja) 記憶管理システムおよび方法