JP2765672B2 - データ転送及びデータ除去のための制御方法並びにコンピュータ・システム - Google Patents
データ転送及びデータ除去のための制御方法並びにコンピュータ・システムInfo
- Publication number
- JP2765672B2 JP2765672B2 JP5022747A JP2274793A JP2765672B2 JP 2765672 B2 JP2765672 B2 JP 2765672B2 JP 5022747 A JP5022747 A JP 5022747A JP 2274793 A JP2274793 A JP 2274793A JP 2765672 B2 JP2765672 B2 JP 2765672B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- cache
- castout
- storage
- memory
- 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
Links
- 238000000034 method Methods 0.000 title claims description 135
- 238000012546 transfer Methods 0.000 title claims description 18
- 230000008859 change Effects 0.000 claims description 112
- 230000008569 process Effects 0.000 claims description 104
- 238000012545 processing Methods 0.000 claims description 85
- 230000004044 response Effects 0.000 claims description 41
- 230000007246 mechanism Effects 0.000 claims description 23
- 238000012217 deletion Methods 0.000 claims description 11
- 230000037430 deletion Effects 0.000 claims description 11
- 238000011084 recovery Methods 0.000 claims description 2
- 238000007726 management method Methods 0.000 description 81
- 239000000872 buffer Substances 0.000 description 49
- 230000000903 blocking effect Effects 0.000 description 15
- AFLLJVZHYVUNNX-STQMWFEESA-N CPC-1 Natural products CO[C@]12CCN(C)[C@H]1N(C)c1ccccc21 AFLLJVZHYVUNNX-STQMWFEESA-N 0.000 description 10
- 101100007537 Cryphonectria parasitica CPC-1 gene Proteins 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000005266 casting Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000001419 dependent effect Effects 0.000 description 6
- 230000001143 conditioned effect Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000000835 fiber Substances 0.000 description 3
- 230000004043 responsiveness Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 241000183290 Scleropages leichardti Species 0.000 description 2
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 101100007538 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) cpc-1 gene Proteins 0.000 description 1
- 229920006707 PC-M Polymers 0.000 description 1
- 241000405965 Scomberomorus brasiliensis Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000013065 commercial product Substances 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000004886 head movement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 150000002500 ions Chemical class 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 238000004080 punching Methods 0.000 description 1
- 238000000562 secondary electron spectroscopy Methods 0.000 description 1
- MWNQXXOSWHCCOZ-UHFFFAOYSA-L sodium;oxido carbonate Chemical compound [Na+].[O-]OC([O-])=O MWNQXXOSWHCCOZ-UHFFFAOYSA-L 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Description
【0001】
【産業上の利用分野】共用DASD及び共用電子記憶機
構(SES)への付加(attachment)をサポートする複
数のオペレーティング・システムからなるデータ処理シ
ステムでは、ディスク上、共用電子記憶機構に含まれる
キャッシュ中、及びローカル・プロセッサ記憶装置中
で、データを共用し管理しなければならない。DASD
と共用電子記憶機構の間でのデータ移動の管理では、デ
ータが記憶位置間を移動中にデータへの継続的アクセス
を保証し、最も頻繁に参照されるデータが記憶機構中に
常駐したままとなるように共用電子記憶域の使用を最適
化し、記憶機構でのまたはDASDを含む入出力サブシ
ステムでの混雑を避けるため、共用電子記憶機構からD
ASDへ修正済みデータを効率的に移動させる手段を提
供する問題に対処しなければならない。
構(SES)への付加(attachment)をサポートする複
数のオペレーティング・システムからなるデータ処理シ
ステムでは、ディスク上、共用電子記憶機構に含まれる
キャッシュ中、及びローカル・プロセッサ記憶装置中
で、データを共用し管理しなければならない。DASD
と共用電子記憶機構の間でのデータ移動の管理では、デ
ータが記憶位置間を移動中にデータへの継続的アクセス
を保証し、最も頻繁に参照されるデータが記憶機構中に
常駐したままとなるように共用電子記憶域の使用を最適
化し、記憶機構でのまたはDASDを含む入出力サブシ
ステムでの混雑を避けるため、共用電子記憶機構からD
ASDへ修正済みデータを効率的に移動させる手段を提
供する問題に対処しなければならない。
【0002】具体的には、本発明は、データ・ブロック
のキャッシュ・バージョンを、多重システム・データ共
用複合体中で更新された後に、2次記憶域に確実に移動
する際のシステム効率を高めることに関する。
のキャッシュ・バージョンを、多重システム・データ共
用複合体中で更新された後に、2次記憶域に確実に移動
する際のシステム効率を高めることに関する。
【0003】本願発明は以下の出願に関連する。 特願平3−299273号 "Configurable, Recoverable Parallel Bus"と題するN.
G.Bartow他の米国特許出願第839657号(1992年2月20日出
願)。"High Performance Channels For Data Processi
ng Systems"と題するN.G.Barrow他の米国特許出願第839
652号(1992年2月20日出願)。"Frame-Group Transmiss
ion And Reception For Parallel/Serial Buses"と題す
るN.G.Bartow他の米国特許出願第839986号(1992年2月2
0日出願)。"Communication Messages Between Process
ors And A Coupling Facility"と題するD.A.Elko等の米
国特許出願第860380号。"Sysplex Shared Data Coheren
cy Method and Means"と題するD.A.Elko等の米国特許出
願第860805号。"Method and Apparatus For Distribute
d Locking of Shared Data, Employing A Central Coup
ling Facility"と題するD.A.Elko他の米国特許出願第86
0808号。"Command Quiesce Function"と題するD.A.Elko
他の米国特許出願第860330号。"Storage Element For A
Shared Electronic Storage Cache"と題するD.A.Elko
他の米国特許出願第860807号。"Command Retry System"
と題するD.A.Elko他の米国特許出願第860378号。"Integ
rity Of Data Shared Between Caches Over A Link"と
題するD.A.Elko他の米国特許出願第860800号。"Managem
ent Of Data Objects used To Maintain State Informa
tion For Shared Data At A Local Complex"と題するJ.
A.Frey他の米国特許出願第860797号。"Recovery Of Dat
a Objects Used To Maintain State Information For S
hared Data At A Local Complex"と題するJ.A. Frey他
の米国特許出願第860647号。"Message Path Mechanism
For Managing Connections Between Processors And A
Coupling Facility"と題するD.A.Elko他の米国特許出願
第860646号。"Method And Apparatus For Notification
Of State Transitions For SharedLists of Data Entr
ies"と題するJ.A.Frey他の米国特許出願第860809号。"M
ethod And Apparatus For Performing Conditional Ope
rations on Externally Shared Data"と題するD.A.Elko
他の米国特許出願第860655号。"Apparatus And Method
For List Management In A Coupled Data ProcessingSy
stem"と題するJ.A.Frey他の米国特許出願第860633号。"
Interdicting I/O And Messaging Operations In A Mul
ti-System Complex"と題するD.A.Elko他の米国特許出願
第860489号。"Method And Apparatus For Coupling Dat
a Processing Systems"と題するD.A.Elkoの米国特許出
願第860803号。
G.Bartow他の米国特許出願第839657号(1992年2月20日出
願)。"High Performance Channels For Data Processi
ng Systems"と題するN.G.Barrow他の米国特許出願第839
652号(1992年2月20日出願)。"Frame-Group Transmiss
ion And Reception For Parallel/Serial Buses"と題す
るN.G.Bartow他の米国特許出願第839986号(1992年2月2
0日出願)。"Communication Messages Between Process
ors And A Coupling Facility"と題するD.A.Elko等の米
国特許出願第860380号。"Sysplex Shared Data Coheren
cy Method and Means"と題するD.A.Elko等の米国特許出
願第860805号。"Method and Apparatus For Distribute
d Locking of Shared Data, Employing A Central Coup
ling Facility"と題するD.A.Elko他の米国特許出願第86
0808号。"Command Quiesce Function"と題するD.A.Elko
他の米国特許出願第860330号。"Storage Element For A
Shared Electronic Storage Cache"と題するD.A.Elko
他の米国特許出願第860807号。"Command Retry System"
と題するD.A.Elko他の米国特許出願第860378号。"Integ
rity Of Data Shared Between Caches Over A Link"と
題するD.A.Elko他の米国特許出願第860800号。"Managem
ent Of Data Objects used To Maintain State Informa
tion For Shared Data At A Local Complex"と題するJ.
A.Frey他の米国特許出願第860797号。"Recovery Of Dat
a Objects Used To Maintain State Information For S
hared Data At A Local Complex"と題するJ.A. Frey他
の米国特許出願第860647号。"Message Path Mechanism
For Managing Connections Between Processors And A
Coupling Facility"と題するD.A.Elko他の米国特許出願
第860646号。"Method And Apparatus For Notification
Of State Transitions For SharedLists of Data Entr
ies"と題するJ.A.Frey他の米国特許出願第860809号。"M
ethod And Apparatus For Performing Conditional Ope
rations on Externally Shared Data"と題するD.A.Elko
他の米国特許出願第860655号。"Apparatus And Method
For List Management In A Coupled Data ProcessingSy
stem"と題するJ.A.Frey他の米国特許出願第860633号。"
Interdicting I/O And Messaging Operations In A Mul
ti-System Complex"と題するD.A.Elko他の米国特許出願
第860489号。"Method And Apparatus For Coupling Dat
a Processing Systems"と題するD.A.Elkoの米国特許出
願第860803号。
【0004】
【従来の技術】典型的には、プロセッサ中の従来のハー
ドウェア・キャッシュは、固定サイズのデータ・ブロッ
クを有する記憶アレイを備えている。こうした記憶装置
は、ハードウェアから見ると線形のブロック・アレイに
見える。キャッシュ中のデータ・ブロックは、キャッシ
ュ・ディレクトリによって管理される。キャッシュ・デ
ィレクトリはLRU記憶域参照に基づいてデータ・ブロ
ックを無効にし、あるいはキャッシュにキャストインし
またはキャッシュからキャストアウトする。周知の種類
のハードウェア・キャッシュが、中央演算処理装置(C
PU)及びDASD(直接アクセス記憶装置)中で使用
されている。
ドウェア・キャッシュは、固定サイズのデータ・ブロッ
クを有する記憶アレイを備えている。こうした記憶装置
は、ハードウェアから見ると線形のブロック・アレイに
見える。キャッシュ中のデータ・ブロックは、キャッシ
ュ・ディレクトリによって管理される。キャッシュ・デ
ィレクトリはLRU記憶域参照に基づいてデータ・ブロ
ックを無効にし、あるいはキャッシュにキャストインし
またはキャッシュからキャストアウトする。周知の種類
のハードウェア・キャッシュが、中央演算処理装置(C
PU)及びDASD(直接アクセス記憶装置)中で使用
されている。
【0005】複数の独立して動作するコンピュータ・シ
ステムがデータを共用する、データベース・システムで
は、異なるシステム中でのデータのコヒーレンシ(cohe
rency)を維持するために大域ロッキングが必要とされ
る。A.J.ヴァン=デ=ゴール(van de Goor)は、"COMPU
TER ARCHITECTURE AND DESIGN"、Addison Wesley(1989
年)で、データ・コヒーレンシの問題を、非常に多数の
プロセッサ間でデータを共用すると、データへの経路が
多数あり、またデータをローカルで修正する機会がある
ために、一致しないデータのコピーが存在する可能性が
生じるという問題として論じている。
ステムがデータを共用する、データベース・システムで
は、異なるシステム中でのデータのコヒーレンシ(cohe
rency)を維持するために大域ロッキングが必要とされ
る。A.J.ヴァン=デ=ゴール(van de Goor)は、"COMPU
TER ARCHITECTURE AND DESIGN"、Addison Wesley(1989
年)で、データ・コヒーレンシの問題を、非常に多数の
プロセッサ間でデータを共用すると、データへの経路が
多数あり、またデータをローカルで修正する機会がある
ために、一致しないデータのコピーが存在する可能性が
生じるという問題として論じている。
【0006】データ・コヒーレンシの問題に対する解決
策がいくつか提案されている。それらはすべて、基本的
に、中央位置から検索されたデータに対する大域ロック
の存在に基づくものである。データがページ付けされて
いるものと仮定すると、あるディスクに記憶されている
データを共用する多重コンピュータ・システムの1つの
コンピュータ・システムが、データの1ページに対する
大域ロックを獲得し、そのページを得て更新する。ロッ
クは、そのページが更新のために獲得されていることを
他のコンピュータ・システムに知らせる。そのページに
対するロックを解除する前に、そのロックを保持するコ
ンピュータ・システムは、そのページをディスクに書き
込み、その後、自分のローカル・キャッシュ中に保持さ
れるページのコピーを無効にするようにとのメッセージ
を生成し、他のコンピュータ・システムに送る。当該ペ
ージに対するこのロックは、そのページに対するアクセ
ス権を有する他のあらゆるコンピュータ・システムから
肯定応答を受け取るまで解除されない。これと類似の解
決策は、米国特許第4399504号及び第49657
19号に詳しく記載されている。この解決策を取り入れ
た、本願の出願人から市販している商用製品は、データ
共用機能を備えたIMS/VSシステムである。
策がいくつか提案されている。それらはすべて、基本的
に、中央位置から検索されたデータに対する大域ロック
の存在に基づくものである。データがページ付けされて
いるものと仮定すると、あるディスクに記憶されている
データを共用する多重コンピュータ・システムの1つの
コンピュータ・システムが、データの1ページに対する
大域ロックを獲得し、そのページを得て更新する。ロッ
クは、そのページが更新のために獲得されていることを
他のコンピュータ・システムに知らせる。そのページに
対するロックを解除する前に、そのロックを保持するコ
ンピュータ・システムは、そのページをディスクに書き
込み、その後、自分のローカル・キャッシュ中に保持さ
れるページのコピーを無効にするようにとのメッセージ
を生成し、他のコンピュータ・システムに送る。当該ペ
ージに対するこのロックは、そのページに対するアクセ
ス権を有する他のあらゆるコンピュータ・システムから
肯定応答を受け取るまで解除されない。これと類似の解
決策は、米国特許第4399504号及び第49657
19号に詳しく記載されている。この解決策を取り入れ
た、本願の出願人から市販している商用製品は、データ
共用機能を備えたIMS/VSシステムである。
【0007】従来技術の大域ロック・システムは、デー
タ・コヒーレンシの維持に大きな利益をもたらす。しか
し、それに固有のオーバーヘッド上の不利益として、ペ
ージ更新時に入出力手順を実行する必要があり、また他
のシステムに通知してロックを解除するために入出力手
順後にメッセージ交換を行う必要があることが挙げられ
る。
タ・コヒーレンシの維持に大きな利益をもたらす。しか
し、それに固有のオーバーヘッド上の不利益として、ペ
ージ更新時に入出力手順を実行する必要があり、また他
のシステムに通知してロックを解除するために入出力手
順後にメッセージ交換を行う必要があることが挙げられ
る。
【0008】従来技術の大域ロッキングは、非データ共
用の単一システムの場合に使用すると、データを更新す
る各トランザクションが修正済みデータをログ・レコー
ドと共に記憶域に書き込んでからでないと、そのトラン
ザクションが完全にコミット(commit)されないという
コミット方針を実施することにより、トランザクション
間でデータ・コヒーレンシ(コンシステンシ)を維持す
る上で余分のオーバーヘッドを生じる。これは、各修正
トランザクションごとに1ページにつき1つの入出力手
順を必要とし、オーバーヘッド・コストが増加する。
用の単一システムの場合に使用すると、データを更新す
る各トランザクションが修正済みデータをログ・レコー
ドと共に記憶域に書き込んでからでないと、そのトラン
ザクションが完全にコミット(commit)されないという
コミット方針を実施することにより、トランザクション
間でデータ・コヒーレンシ(コンシステンシ)を維持す
る上で余分のオーバーヘッドを生じる。これは、各修正
トランザクションごとに1ページにつき1つの入出力手
順を必要とし、オーバーヘッド・コストが増加する。
【0009】それとは対照的に、単一システム非データ
共用の場合にIBM DB2は、トランザクションをコ
ミットするために、更新されたページを記憶域に書き戻
すのに入出力プロセスを必要としない方針に従ってい
る。複数のコンピュータ・システムが1つまたは複数の
データ記憶サイトにアクセスするというデータ共用状況
で前記のプロトコルを使用する場合、記憶域への書き戻
しが必要であり、かつメッセージ遅延があるために、性
能が著しく低下する可能性がある。
共用の場合にIBM DB2は、トランザクションをコ
ミットするために、更新されたページを記憶域に書き戻
すのに入出力プロセスを必要としない方針に従ってい
る。複数のコンピュータ・システムが1つまたは複数の
データ記憶サイトにアクセスするというデータ共用状況
で前記のプロトコルを使用する場合、記憶域への書き戻
しが必要であり、かつメッセージ遅延があるために、性
能が著しく低下する可能性がある。
【0010】多数の記憶段を含む多重コンピュータ・デ
ータ共用システムでは、第2の記憶段は1個または複数
の直接アクセス記憶装置(DASD)からなり、それが
独立に動作するコンピュータ・システムによって共用さ
れることが企図されている。階層的に配列された記憶シ
ステム用の典型的な命名法では、DASD及び他のその
ような記憶機構を「2次」記憶域と分類している。な
お、2次記憶域には、データをそこから「1次」記憶域
に移さないと、CPUがそれを直接参照できない、すべ
ての機構が含まれる。さらに、キャッシュ技法が、共用
データ用の高速で頻繁にアクセスされる記憶域を提供す
るのに役立つであろうことが企図されている。様々な理
由から、データは、DASDから獲得された後に、デー
タベース・システムによって共用キャッシュに入れられ
る。なお、共用キャッシュは、多重コンピュータ・デー
タ共用システムの1次記憶段に含まれることになる。
ータ共用システムでは、第2の記憶段は1個または複数
の直接アクセス記憶装置(DASD)からなり、それが
独立に動作するコンピュータ・システムによって共用さ
れることが企図されている。階層的に配列された記憶シ
ステム用の典型的な命名法では、DASD及び他のその
ような記憶機構を「2次」記憶域と分類している。な
お、2次記憶域には、データをそこから「1次」記憶域
に移さないと、CPUがそれを直接参照できない、すべ
ての機構が含まれる。さらに、キャッシュ技法が、共用
データ用の高速で頻繁にアクセスされる記憶域を提供す
るのに役立つであろうことが企図されている。様々な理
由から、データは、DASDから獲得された後に、デー
タベース・システムによって共用キャッシュに入れられ
る。なお、共用キャッシュは、多重コンピュータ・デー
タ共用システムの1次記憶段に含まれることになる。
【0011】このような構造中では、1つのコンピュー
タ・システムが、DASDに書き込む目的であるデータ
・ブロックを共用キャッシュから獲得し、それと同時
に、同じデータ・ブロックを別のコンピュータ・システ
ムがその共用キャッシュから獲得し、修正して共用キャ
ッシュに戻すような場合に、潜在的な危険が存在するこ
とになる。この状況で、DASDに記憶するため共用キ
ャッシュから修正されたデータ・ブロックを取り出すこ
とを、そのデータ・ブロックの「キャストアウト(cast
out)」と称することにする。キャストアウトでは、キ
ャストアウトされるページを共用メモリから読み取り、
DASDに書き込み、次いで共用メモリ中で「未変更」
とマークする(すなわちDASDと共用メモリで対応す
るページの内容が同じであることを示す。逆に両者のペ
ージの内容が異なるときは「変更済」がマークされてい
る)ことが必要である。
タ・システムが、DASDに書き込む目的であるデータ
・ブロックを共用キャッシュから獲得し、それと同時
に、同じデータ・ブロックを別のコンピュータ・システ
ムがその共用キャッシュから獲得し、修正して共用キャ
ッシュに戻すような場合に、潜在的な危険が存在するこ
とになる。この状況で、DASDに記憶するため共用キ
ャッシュから修正されたデータ・ブロックを取り出すこ
とを、そのデータ・ブロックの「キャストアウト(cast
out)」と称することにする。キャストアウトでは、キ
ャストアウトされるページを共用メモリから読み取り、
DASDに書き込み、次いで共用メモリ中で「未変更」
とマークする(すなわちDASDと共用メモリで対応す
るページの内容が同じであることを示す。逆に両者のペ
ージの内容が異なるときは「変更済」がマークされてい
る)ことが必要である。
【0012】
【発明が解決しようとする課題】共用キャッシュの効率
的キャッシュ管理には、共用データ・ブロックを周期的
に、またはキャッシュ中の変更済みデータ・ブロックの
閾値に基づいて、キャストアウトすることが必要であ
る。あるデータ・ブロックがキャストアウトされると、
それは「未変更」とマークされ、キャッシュから削除さ
れる候補となる。あるコンピュータ・システムが読取り
動作と削除動作の間の時間間隔中にそのページの新しい
バージョンを共用メモリに書き込むときに、別のコンピ
ュータ・システムによってキャストアウトが行われる
と、大きな危険が生じる。危険というのは、その削除に
よってそのデータ・ブロックのその新しいバージョンが
消去されることである。これが起こらないようにするた
め、通常、共用キャッシュ中で高レベルのロッキングま
たは逐次化及び待ち行列化が使用される。高レベルのロ
ッキングに伴う問題は、キャッシュからページを除去す
るのに、ロックとロック解除というさらなる2回の多重
システム対話が必要となるため、コストが2倍になるこ
とである。また、第2のシステムによる修正バージョン
の書込みが遅延し、性能上望ましくない結果をもたらす
ことになる。
的キャッシュ管理には、共用データ・ブロックを周期的
に、またはキャッシュ中の変更済みデータ・ブロックの
閾値に基づいて、キャストアウトすることが必要であ
る。あるデータ・ブロックがキャストアウトされると、
それは「未変更」とマークされ、キャッシュから削除さ
れる候補となる。あるコンピュータ・システムが読取り
動作と削除動作の間の時間間隔中にそのページの新しい
バージョンを共用メモリに書き込むときに、別のコンピ
ュータ・システムによってキャストアウトが行われる
と、大きな危険が生じる。危険というのは、その削除に
よってそのデータ・ブロックのその新しいバージョンが
消去されることである。これが起こらないようにするた
め、通常、共用キャッシュ中で高レベルのロッキングま
たは逐次化及び待ち行列化が使用される。高レベルのロ
ッキングに伴う問題は、キャッシュからページを除去す
るのに、ロックとロック解除というさらなる2回の多重
システム対話が必要となるため、コストが2倍になるこ
とである。また、第2のシステムによる修正バージョン
の書込みが遅延し、性能上望ましくない結果をもたらす
ことになる。
【0013】これまで「クラス」という語は、印刷、穿
孔、及びネットワーク動作を制御するためのVM/37
0スプール・ファイル・クラスなどのような、レコード
処理制御において使用されてきた。しかし、CPCの制
御下でキャストアウト処理を制御するためのSES装置
に関して使用されることは知られていなかった。
孔、及びネットワーク動作を制御するためのVM/37
0スプール・ファイル・クラスなどのような、レコード
処理制御において使用されてきた。しかし、CPCの制
御下でキャストアウト処理を制御するためのSES装置
に関して使用されることは知られていなかった。
【0014】
シスプレックス・ハードウェア構造:図1に、シスプレ
ックス(SYStem comPLEX:システム複合体)システムを
示す。このシステムは、複数のコンピュータ処理複合体
(CPC)CPC−1〜CPC−Mを含んでいる。これ
らは1台から多数台まで任意の数のCPCを表し、すべ
てが1個または複数のSES(共用電子記憶)装置に接
続されている(図1にはSES装置101を1台示して
ある)。
ックス(SYStem comPLEX:システム複合体)システムを
示す。このシステムは、複数のコンピュータ処理複合体
(CPC)CPC−1〜CPC−Mを含んでいる。これ
らは1台から多数台まで任意の数のCPCを表し、すべ
てが1個または複数のSES(共用電子記憶)装置に接
続されている(図1にはSES装置101を1台示して
ある)。
【0015】各CPCは図2に示すタイプのもので、I
BM ESA/390体系に従って設計された現在市販
中のIBM ES/9000モデル900などの多重プ
ロセッサでよい。IBM ESA/390体系は、「エ
ンタープライズ・システム体系(ESA/390)解説
書(POP)〔Enterprise Systems Architecture(ESA
/390)Principles of Operations(POP)〕」、IBM
資料番号SA22−7201−00に指定されている。
各CPCは1つまたは複数のオペレーティング・システ
ムを有する。複数のオペレーティング・システムを有す
るCPCがある場合、その資源を、IBM PR/SM
機能を使って複数のオペレーティング・システム間で論
理的に区分しなければならない。システム間チャネル
(ISC)がSES101とCPC1〜Mの間に接続さ
れている。CPCに接続されたISCは、CPC中のマ
イクロコードまたはハードウェアとの間で信号をやり取
りする。
BM ESA/390体系に従って設計された現在市販
中のIBM ES/9000モデル900などの多重プ
ロセッサでよい。IBM ESA/390体系は、「エ
ンタープライズ・システム体系(ESA/390)解説
書(POP)〔Enterprise Systems Architecture(ESA
/390)Principles of Operations(POP)〕」、IBM
資料番号SA22−7201−00に指定されている。
各CPCは1つまたは複数のオペレーティング・システ
ムを有する。複数のオペレーティング・システムを有す
るCPCがある場合、その資源を、IBM PR/SM
機能を使って複数のオペレーティング・システム間で論
理的に区分しなければならない。システム間チャネル
(ISC)がSES101とCPC1〜Mの間に接続さ
れている。CPCに接続されたISCは、CPC中のマ
イクロコードまたはハードウェアとの間で信号をやり取
りする。
【0016】シスプレックス中の各CPCは、記憶階層
で動作する。この記憶階層は、たとえばCPCの各CP
U中の専用高速ハードウェア・キャッシュ201−1な
いし201−N、すべての専用プロセッサ・キャッシュ
にアクセス可能な共用ハードウェア・キャッシュ20
2、CPC中のすべてのプロセッサに共用される主記憶
装置(MS)204、MSに付随するがMSアドレス可
能性をもたないハードウェア記憶域(HSA)205を
含むことができる。しかし、DASDはDASD制御
(制御部)によってグループ化され、シスプレックス中
の任意のCPCがそのグループ中の任意のDASDにア
クセスできるようになっている。本明細書では、これを
「シスプレックスDASD」207と称する。
で動作する。この記憶階層は、たとえばCPCの各CP
U中の専用高速ハードウェア・キャッシュ201−1な
いし201−N、すべての専用プロセッサ・キャッシュ
にアクセス可能な共用ハードウェア・キャッシュ20
2、CPC中のすべてのプロセッサに共用される主記憶
装置(MS)204、MSに付随するがMSアドレス可
能性をもたないハードウェア記憶域(HSA)205を
含むことができる。しかし、DASDはDASD制御
(制御部)によってグループ化され、シスプレックス中
の任意のCPCがそのグループ中の任意のDASDにア
クセスできるようになっている。本明細書では、これを
「シスプレックスDASD」207と称する。
【0017】CPC/SESの物理的接続208は、一
端が当該のCPC中のMS制御装置に接続され、他端が
SES装置に接続された当該のチャネルによって提供さ
れる。この当該のチャネル・バスは、直列の光ファイバ
で構成することができる。バスは単一ファイバでもよい
が、並列に動作する複数のファイバから構成し、それら
の間でデータを「ストライピング」(インターリーブ)
してもよい。
端が当該のCPC中のMS制御装置に接続され、他端が
SES装置に接続された当該のチャネルによって提供さ
れる。この当該のチャネル・バスは、直列の光ファイバ
で構成することができる。バスは単一ファイバでもよい
が、並列に動作する複数のファイバから構成し、それら
の間でデータを「ストライピング」(インターリーブ)
してもよい。
【0018】ハードウェアの意味では、SESは、それ
に接続されたすべてのCPCが共通に使用できる、大型
のランダム・アクセス・メモリと考えることができる。
接続されたCPCは、SESを使って共用データ・レコ
ード及びファイルを一次的にまたは半永久的に記憶する
ことができる。したがって、SESは、SESに付加さ
れたすべてのCPCに共通な、CPC中の拡張記憶(E
S)段にほぼ対応する階層レベルをもつ、システム中の
記憶階層の一構成要素と考えることができる。
に接続されたすべてのCPCが共通に使用できる、大型
のランダム・アクセス・メモリと考えることができる。
接続されたCPCは、SESを使って共用データ・レコ
ード及びファイルを一次的にまたは半永久的に記憶する
ことができる。したがって、SESは、SESに付加さ
れたすべてのCPCに共通な、CPC中の拡張記憶(E
S)段にほぼ対応する階層レベルをもつ、システム中の
記憶階層の一構成要素と考えることができる。
【0019】本発明を使用するシスプレックスでは、1
つまたは複数のSESエンティティが、シスプレックス
中のあらゆるCPCのMS/ESに物理的に接続するこ
とができる。シスプレックス中のすべてのCPCをSE
Sに接続する必要はない。たとえば、同じプログラミン
グ・サブシステムを動作させるCPCの一グループだけ
にSESを接続してもよい。そして異なるCPCのグル
ープは、シスプレックス中の異なるSESに接続して、
異なるプログラミング・サブシステムを走らせることが
できる。
つまたは複数のSESエンティティが、シスプレックス
中のあらゆるCPCのMS/ESに物理的に接続するこ
とができる。シスプレックス中のすべてのCPCをSE
Sに接続する必要はない。たとえば、同じプログラミン
グ・サブシステムを動作させるCPCの一グループだけ
にSESを接続してもよい。そして異なるCPCのグル
ープは、シスプレックス中の異なるSESに接続して、
異なるプログラミング・サブシステムを走らせることが
できる。
【0020】本発明の前提となる基本的特徴は、通常は
シスプレックスの共通DASDに記憶されるデータ用の
高速キャッシュとしてSESを使用することである。た
だし、CPC/SES/DASDの物理的接続は、直接
階層経路中になくてもよい。シスプレックス中のどのC
PCも、共通DASDからよりもずっと速くSESから
のレコードにアクセスすることができる。すなわち、S
ES中では、トラック間でのヘッド移動待ちや、要求さ
れたDASDレコードに達するためのトラック回転待ち
など、DASDで見られる電気機械的遅延なしで、デー
タ要素またはレコードに迅速にアクセスできる。
シスプレックスの共通DASDに記憶されるデータ用の
高速キャッシュとしてSESを使用することである。た
だし、CPC/SES/DASDの物理的接続は、直接
階層経路中になくてもよい。シスプレックス中のどのC
PCも、共通DASDからよりもずっと速くSESから
のレコードにアクセスすることができる。すなわち、S
ES中では、トラック間でのヘッド移動待ちや、要求さ
れたDASDレコードに達するためのトラック回転待ち
など、DASDで見られる電気機械的遅延なしで、デー
タ要素またはレコードに迅速にアクセスできる。
【0021】SESキャッシュを割り振るための特別の
コマンドが設けられている。また、異なるプログラムを
使用して、付加された複数のCPCサブセットが共用す
るデータをそれぞれのキャッシュに処理させるなど、同
じSES内で複数のキャッシュを割り振ることもでき
る。
コマンドが設けられている。また、異なるプログラムを
使用して、付加された複数のCPCサブセットが共用す
るデータをそれぞれのキャッシュに処理させるなど、同
じSES内で複数のキャッシュを割り振ることもでき
る。
【0022】各SESキャッシュは、ディレクトリ10
2、データ域103、ローカル・キャッシュ・レジスタ
104、及びキャッシュ制御(機構)105を含んでい
る。キャッシュのデータ域部分が使用されない場合は、
そのサイズを0にしてもよい。SESキャッシュ中の各
有効ディレクトリ・エントリは、付加されているいずれ
かのCPCによってSES中で登録されたデータ要素の
名前を格納している。SESは、登録済みデータ要素中
にそのデータのコピーを含んでいても含まなくてもよ
い。SESに登録済みの名前は、シスプレックス中の1
つまたは複数のCPC中のそのデータ要素の1つまたは
複数のコピーの名前でもある。さらに、このディレクト
リ名は、ディレクトリ207に接続されたDASDバン
ク中のDASD1〜Kのうちの1つに記憶されている
(または記憶されようとしている)データ要素のコピー
をも識別する。
2、データ域103、ローカル・キャッシュ・レジスタ
104、及びキャッシュ制御(機構)105を含んでい
る。キャッシュのデータ域部分が使用されない場合は、
そのサイズを0にしてもよい。SESキャッシュ中の各
有効ディレクトリ・エントリは、付加されているいずれ
かのCPCによってSES中で登録されたデータ要素の
名前を格納している。SESは、登録済みデータ要素中
にそのデータのコピーを含んでいても含まなくてもよ
い。SESに登録済みの名前は、シスプレックス中の1
つまたは複数のCPC中のそのデータ要素の1つまたは
複数のコピーの名前でもある。さらに、このディレクト
リ名は、ディレクトリ207に接続されたDASDバン
ク中のDASD1〜Kのうちの1つに記憶されている
(または記憶されようとしている)データ要素のコピー
をも識別する。
【0023】本発明(請求項3乃至5、及び請求項9)
の目的の一つは、共用データ多重コンピュータ・システ
ムにおいて、削除前に共用メモリ(SES)中にキャス
トアウトされつつあるデータのページがあっても、キャ
ストアウト動作の進行中に共用メモリ(SES)に書き
込まれたそのページの後の(すなわち新しい)バージョ
ンが削除されないように保証する方法及び構造を提供す
ることにある。
の目的の一つは、共用データ多重コンピュータ・システ
ムにおいて、削除前に共用メモリ(SES)中にキャス
トアウトされつつあるデータのページがあっても、キャ
ストアウト動作の進行中に共用メモリ(SES)に書き
込まれたそのページの後の(すなわち新しい)バージョ
ンが削除されないように保証する方法及び構造を提供す
ることにある。
【0024】本発明の重要な利点は、共用メモリ中に、
2次記憶域(DASD)に入れるために共用メモリから
あるページを除去する際にページ・バージョン間のコン
システンシを保証するための、高レベルのロッキングま
たは逐次化及び待ち行列化の機構が必要でないことであ
る。
2次記憶域(DASD)に入れるために共用メモリから
あるページを除去する際にページ・バージョン間のコン
システンシを保証するための、高レベルのロッキングま
たは逐次化及び待ち行列化の機構が必要でないことであ
る。
【0025】本発明(請求項6乃至8)の重要な一目的
は、データが共用電子記憶装置(SES)中にキャッシ
ュされるという、多重システム、データ共用複合体を動
作させる方法を提供することにある。多重システム、デ
ータ共用複合体において、第1のコンピュータ・システ
ム上で実行中のデータベース・システムは、2次記憶域
にページを書き込むための第1ステップとして、共用キ
ャッシュ中の修正済みページを読み取ることができ、そ
の一方で別のデータベース・システムが、共用キャッシ
ュ中の同じページのさらに最近に更新されたバージョン
をキャッシュしようと試みることができる。本発明は、
そのような条件を検出し、ロッキングなどのブロッキン
グ機構なしに、第1のコンピュータ・システムが以前の
バージョンのページを2次記憶域に記憶した後で、共用
キャッシュから当該ページの更新済みコピーが削除され
るのを防げる。
は、データが共用電子記憶装置(SES)中にキャッシ
ュされるという、多重システム、データ共用複合体を動
作させる方法を提供することにある。多重システム、デ
ータ共用複合体において、第1のコンピュータ・システ
ム上で実行中のデータベース・システムは、2次記憶域
にページを書き込むための第1ステップとして、共用キ
ャッシュ中の修正済みページを読み取ることができ、そ
の一方で別のデータベース・システムが、共用キャッシ
ュ中の同じページのさらに最近に更新されたバージョン
をキャッシュしようと試みることができる。本発明は、
そのような条件を検出し、ロッキングなどのブロッキン
グ機構なしに、第1のコンピュータ・システムが以前の
バージョンのページを2次記憶域に記憶した後で、共用
キャッシュから当該ページの更新済みコピーが削除され
るのを防げる。
【0026】本発明は、複数のオペレーティング・シス
テム(OS)を使用するシスプレックスに関するもので
ある。シスプレックス中のどのCPCも、異なる複数の
OS間でその資源を論理的に区分して、IBMプロセッ
サ資源/システム管理(PR/SM)システムによるも
のなど、単一のCPC内で多数の独立したOSを提供す
ることができる。したがって、シスプレックスは、その
異なるCPC上で走行するOSのどんな組合せをもつこ
ともできる。あるCPCはそれぞれ1つのOSをもち、
別のCPCはそれぞれ相互に独立して走行する複数のO
Sをもつ。1つまたは複数のサブシステムが、IBMの
DB2、DFP、IMS、VSAMなどのサブシステム
を含めて、任意のCPC中で任意のOSの下で走行する
ことができる。
テム(OS)を使用するシスプレックスに関するもので
ある。シスプレックス中のどのCPCも、異なる複数の
OS間でその資源を論理的に区分して、IBMプロセッ
サ資源/システム管理(PR/SM)システムによるも
のなど、単一のCPC内で多数の独立したOSを提供す
ることができる。したがって、シスプレックスは、その
異なるCPC上で走行するOSのどんな組合せをもつこ
ともできる。あるCPCはそれぞれ1つのOSをもち、
別のCPCはそれぞれ相互に独立して走行する複数のO
Sをもつ。1つまたは複数のサブシステムが、IBMの
DB2、DFP、IMS、VSAMなどのサブシステム
を含めて、任意のCPC中で任意のOSの下で走行する
ことができる。
【0027】同じデータベース・サブシステム・プログ
ラムの異なるコピーが、異なるCPC中で同時に独立し
て走行することができる。本発明によれば、こうした異
なるプログラムは、同時に異なるCPCのMS/ESロ
ーカル・キャッシュ(LC)にあるデータベース中の同
じまたは異なるデータ要素またはレコードにアクセスす
ることができる。
ラムの異なるコピーが、異なるCPC中で同時に独立し
て走行することができる。本発明によれば、こうした異
なるプログラムは、同時に異なるCPCのMS/ESロ
ーカル・キャッシュ(LC)にあるデータベース中の同
じまたは異なるデータ要素またはレコードにアクセスす
ることができる。
【0028】本発明(請求項1及び2)の主目的は、デ
ータの記憶ロケーション間の移動中に当該データへの継
続的アクセスを保証し、最も頻繁に参照されるデータが
記憶機構中に常駐したままとなるように共用電子記憶域
の使用を最適化し、共用記憶機構でのまたはDASDを
含む入出力サブシステムでの混雑を避けるために当該共
用電子記憶機構からDASDへ修正済みデータを効率的
に移動させる手段を提供するという各種問題に対処しな
がら、DASDと共用電子記憶機構の間でのデータ移動
の管理を実現することである。
ータの記憶ロケーション間の移動中に当該データへの継
続的アクセスを保証し、最も頻繁に参照されるデータが
記憶機構中に常駐したままとなるように共用電子記憶域
の使用を最適化し、共用記憶機構でのまたはDASDを
含む入出力サブシステムでの混雑を避けるために当該共
用電子記憶機構からDASDへ修正済みデータを効率的
に移動させる手段を提供するという各種問題に対処しな
がら、DASDと共用電子記憶機構の間でのデータ移動
の管理を実現することである。
【0029】本発明(請求項3乃至9)の共用キャッシ
ュを動作させる技法における最も重要な刷新は、あるペ
ージの以前のバージョンが2次記憶域に書き込まれる間
により最近のバージョンがキャッシュから削除されない
ことを保証するために、高レベル・ロッキングなどのさ
らなる逐次化機構を必要としないことである。このキャ
ッシュは、当該キャッシュに記憶された各データ・ペー
ジについてのディレクトリ・エントリを格納するディレ
クトリによってアクセスされる。本発明にとって不可欠
なのは、キャッシュ中の各ページ用のディレクトリ・エ
ントリの中に、現在キャストアウト動作を実行中のコン
ピュータ・システムの識別を含むキャストアウトに関す
るフィールドを設けることである。このフィールドは、
ページが変更されたかどうかを示すために使用される変
更フィールドとあいまって機能する。この変更(ビッ
ト)フィールドが、進行中のキャストアウト動作中にそ
のページが変更されたことを示す場合、そのページの削
除を防止し、それによって共用キャッシュ中のそのペー
ジの最新バージョンを次のキャストアウト動作のために
保存する。本発明は、キャストアウト・フィールドが0
で、進行中のキャストアウトがないことを示す場合にの
みキャストアウトを許可し、キャストアウトIDと変更
ビットの両フィールドが共に0の場合にのみページを削
除することによって機能する。本発明は、通常の読取り
/書込みの動作セットに、ある動作、すなわちキャスト
アウト用「読取り」動作を追加することを必要とする。
このキャストアウト用読取り動作は、要求側の識別をキ
ャストアウトIDフィールドに入れ、変更フィールドを
0にセットするものである。
ュを動作させる技法における最も重要な刷新は、あるペ
ージの以前のバージョンが2次記憶域に書き込まれる間
により最近のバージョンがキャッシュから削除されない
ことを保証するために、高レベル・ロッキングなどのさ
らなる逐次化機構を必要としないことである。このキャ
ッシュは、当該キャッシュに記憶された各データ・ペー
ジについてのディレクトリ・エントリを格納するディレ
クトリによってアクセスされる。本発明にとって不可欠
なのは、キャッシュ中の各ページ用のディレクトリ・エ
ントリの中に、現在キャストアウト動作を実行中のコン
ピュータ・システムの識別を含むキャストアウトに関す
るフィールドを設けることである。このフィールドは、
ページが変更されたかどうかを示すために使用される変
更フィールドとあいまって機能する。この変更(ビッ
ト)フィールドが、進行中のキャストアウト動作中にそ
のページが変更されたことを示す場合、そのページの削
除を防止し、それによって共用キャッシュ中のそのペー
ジの最新バージョンを次のキャストアウト動作のために
保存する。本発明は、キャストアウト・フィールドが0
で、進行中のキャストアウトがないことを示す場合にの
みキャストアウトを許可し、キャストアウトIDと変更
ビットの両フィールドが共に0の場合にのみページを削
除することによって機能する。本発明は、通常の読取り
/書込みの動作セットに、ある動作、すなわちキャスト
アウト用「読取り」動作を追加することを必要とする。
このキャストアウト用読取り動作は、要求側の識別をキ
ャストアウトIDフィールドに入れ、変更フィールドを
0にセットするものである。
【0030】SES構造:SESキャッシュは、データ
域要素と、ディレクトリと、ローカル・キャッシュ制御
(部)との集合体からなる、SES中の構造である。S
ESキャッシュ構造は、CPC間で共用されるデータに
アクセスするプログラムの要求時に作成され、これらの
プログラムは、ローカルにキャッシュ記憶されたデータ
項目のコピーに関してコヒーレンシ及び保全性を必要と
する。
域要素と、ディレクトリと、ローカル・キャッシュ制御
(部)との集合体からなる、SES中の構造である。S
ESキャッシュ構造は、CPC間で共用されるデータに
アクセスするプログラムの要求時に作成され、これらの
プログラムは、ローカルにキャッシュ記憶されたデータ
項目のコピーに関してコヒーレンシ及び保全性を必要と
する。
【0031】SESディレクトリ:SESキャッシュ・
ディレクトリは、SESコヒーレンシ制御を得るための
SES装置の基本的構成要素である。SESキャッシュ
と共にSESデータ域を形成すると、シスプレックスの
性能が向上するが、これは任意選択である。SESデー
タ域のない場合、シスプレックス中のデータ・レコード
は、シスプレックスDASDからしかアクセスできない
ようになる。データベース・ソフトウェア動作では、S
ESデータ域中の共用レコードへの迅速なアクセスによ
って提供される性能が失われることになる。(SESデ
ィレクトリ・エントリに関連する)SESローカル・キ
ャッシュ・レジスタは、依然としてシスプレックス中の
どのCPC LCBが共用データ要素のコピーをもつか
を識別する。
ディレクトリは、SESコヒーレンシ制御を得るための
SES装置の基本的構成要素である。SESキャッシュ
と共にSESデータ域を形成すると、シスプレックスの
性能が向上するが、これは任意選択である。SESデー
タ域のない場合、シスプレックス中のデータ・レコード
は、シスプレックスDASDからしかアクセスできない
ようになる。データベース・ソフトウェア動作では、S
ESデータ域中の共用レコードへの迅速なアクセスによ
って提供される性能が失われることになる。(SESデ
ィレクトリ・エントリに関連する)SESローカル・キ
ャッシュ・レジスタは、依然としてシスプレックス中の
どのCPC LCBが共用データ要素のコピーをもつか
を識別する。
【0032】SESローカル・キャッシュ・レジスタ:
このローカル・キャッシュ・レジスタ中の諸エントリ
は、関連するディレクトリ・エントリによって識別され
るデータ要素のコピーを含む付加ローカル・キャッシュ
を識別する。ローカル・キャッシュ・レジスタ中の各エ
ントリは、ローカル・キャッシュに関連するキャッシュ
・コヒーレンシ・ベクトルと、データ要素のローカルに
キャッシュされたコピーの妥当性を表現するために使用
される、そのコヒーレンシ・ベクトル内のローカル・キ
ャッシュ・エントリとを位置指定する(locate)のに十
分な情報を提供する。
このローカル・キャッシュ・レジスタ中の諸エントリ
は、関連するディレクトリ・エントリによって識別され
るデータ要素のコピーを含む付加ローカル・キャッシュ
を識別する。ローカル・キャッシュ・レジスタ中の各エ
ントリは、ローカル・キャッシュに関連するキャッシュ
・コヒーレンシ・ベクトルと、データ要素のローカルに
キャッシュされたコピーの妥当性を表現するために使用
される、そのコヒーレンシ・ベクトル内のローカル・キ
ャッシュ・エントリとを位置指定する(locate)のに十
分な情報を提供する。
【0033】処理流れの概要:SESキャッシュ記憶域
は、通常、DASD記憶域よりも小さい。従って、変更
済みデータをSESキャッシュからバックアップDAS
Dに周期的に転送しなければならない。このプロセスを
キャストアウトと称し、プログラムによって制御され、
以下の動作を必要とする。 −SES読取リ動作が発行されて、キャストアウト逐次
化(serialization)をセットし、データ・ブロックを
主記憶装置へコピーする。 −入出力動作が実行されて、データ・ブロックをDAS
Dへコピーする。 −SESロック解除動作が発行されて、キャストアウト
逐次化を解除する。
は、通常、DASD記憶域よりも小さい。従って、変更
済みデータをSESキャッシュからバックアップDAS
Dに周期的に転送しなければならない。このプロセスを
キャストアウトと称し、プログラムによって制御され、
以下の動作を必要とする。 −SES読取リ動作が発行されて、キャストアウト逐次
化(serialization)をセットし、データ・ブロックを
主記憶装置へコピーする。 −入出力動作が実行されて、データ・ブロックをDAS
Dへコピーする。 −SESロック解除動作が発行されて、キャストアウト
逐次化を解除する。
【0034】キャストアウトに関連するデータ項目は、
SESキャッシュによってキャストアウト・クラス中に
維持される。キャストアウト・クラスは、プログラムが
DASDへのデータ転送を一回の入出力動作でバッチ処
理できるようにすることによって、キャストアウト・プ
ロセスの効率を改善するのに使用される。DASDとS
ESキャッシュの間でのデータの移動を実行するプロセ
スが、本発明の主題である。
SESキャッシュによってキャストアウト・クラス中に
維持される。キャストアウト・クラスは、プログラムが
DASDへのデータ転送を一回の入出力動作でバッチ処
理できるようにすることによって、キャストアウト・プ
ロセスの効率を改善するのに使用される。DASDとS
ESキャッシュの間でのデータの移動を実行するプロセ
スが、本発明の主題である。
【0035】効果的なキャストアウト処理を可能にす
る、SESディレクトリ内のオブジェクトには、下記の
ものがある(図3、8も参照されたい)。
る、SESディレクトリ内のオブジェクトには、下記の
ものがある(図3、8も参照されたい)。
【0036】−キャストアウト・クラス(CCL)。そ
の名前に対して割り当てられたキャストアウト・クラス
を識別する、2バイトの値。
の名前に対して割り当てられたキャストアウト・クラス
を識別する、2バイトの値。
【0037】−キャストアウト・ロック(CO)。デー
タのキャストアウトの状態を示す2バイトの値。キャス
トアウト・ロックが0のとき、そのデータはキャストア
ウトされていない。キャストアウト・ロックが0でない
ときは、キャストアウト・ロックの第1バイトの値が、
そのデータ・ブロックをSESキャッシュからDASD
にキャストアウトしているローカル・キャッシュを識別
する。第2バイトの値は、ローカル・システム上のキャ
ストアウト・プロセスを識別する。キャストアウト・ロ
ックが0でないときは、データ・ビットは1でなければ
ならない。
タのキャストアウトの状態を示す2バイトの値。キャス
トアウト・ロックが0のとき、そのデータはキャストア
ウトされていない。キャストアウト・ロックが0でない
ときは、キャストアウト・ロックの第1バイトの値が、
そのデータ・ブロックをSESキャッシュからDASD
にキャストアウトしているローカル・キャッシュを識別
する。第2バイトの値は、ローカル・システム上のキャ
ストアウト・プロセスを識別する。キャストアウト・ロ
ックが0でないときは、データ・ビットは1でなければ
ならない。
【0038】−変更ビット(C)。キャストアウト・ロ
ックとあいまって、データの変更済み状態を示す、1ビ
ットの値。変更ビットが1のとき、そのデータは変更さ
れた状態でキャッシュ記憶されている。変更ビットが0
で、データがキャストアウト用にロックされていないと
きは、データはキャッシュ記憶されていないか、あるい
はキャッシュ記憶されているが変更されていない。変更
ビットが0で、データがキャストアウト用にロックされ
ているときは、そのデータは変更された状態でキャッシ
ュ記憶されている。データが変更済み状態のときは、そ
のデータの最新バージョンがキャッシュ中に常駐する。
変更ビットが1のとき、データ・ビットも1でなければ
ならない。
ックとあいまって、データの変更済み状態を示す、1ビ
ットの値。変更ビットが1のとき、そのデータは変更さ
れた状態でキャッシュ記憶されている。変更ビットが0
で、データがキャストアウト用にロックされていないと
きは、データはキャッシュ記憶されていないか、あるい
はキャッシュ記憶されているが変更されていない。変更
ビットが0で、データがキャストアウト用にロックされ
ているときは、そのデータは変更された状態でキャッシ
ュ記憶されている。データが変更済み状態のときは、そ
のデータの最新バージョンがキャッシュ中に常駐する。
変更ビットが1のとき、データ・ビットも1でなければ
ならない。
【0039】キャストアウト・プロセスは、下記のいく
つかの方式の1つで開始することができる。
つかの方式の1つで開始することができる。
【0040】−事象駆動キャストアウト:各書込み動作
の後に、変更されたデータ要素のカウントが比較され
る。これによって、書込みコマンドが発生し、定義され
た閾値を超えたとき、指定されたキャストアウト・クラ
スに関するキャストアウト処理がトリガされる。この比
較は、トランザクション処理の一部である。
の後に、変更されたデータ要素のカウントが比較され
る。これによって、書込みコマンドが発生し、定義され
た閾値を超えたとき、指定されたキャストアウト・クラ
スに関するキャストアウト処理がトリガされる。この比
較は、トランザクション処理の一部である。
【0041】−タイマ駆動キャストアウト:時間調整さ
れた間隔で1組のカウンタが要求される。この比較は背
景プログラムの一部であり、どのトランザクション処理
の一部でもない。キャストアウト処理に対する応答性と
カウントを得る際のトランザクション・オーバヘッドの
間の平衡を保たなければならない。
れた間隔で1組のカウンタが要求される。この比較は背
景プログラムの一部であり、どのトランザクション処理
の一部でもない。キャストアウト処理に対する応答性と
カウントを得る際のトランザクション・オーバヘッドの
間の平衡を保たなければならない。
【0042】SESにおけるキャストアウト・プロセス
をサポートするコマンドには、次のものがある。
をサポートするコマンドには、次のものがある。
【0043】−キャストアウト・クラス読取りコマン
ド:キャストアウト・クラス読取りコマンドは、名前ブ
ロックのリストを主記憶装置に戻す。名前フィールドが
マスク状態の入力名と一致し、ディレクトリ・エントリ
が指定されたキャストアウト・クラス待ち行列に入れら
れたとき、ディレクトリ・エントリは処理される。
ド:キャストアウト・クラス読取りコマンドは、名前ブ
ロックのリストを主記憶装置に戻す。名前フィールドが
マスク状態の入力名と一致し、ディレクトリ・エントリ
が指定されたキャストアウト・クラス待ち行列に入れら
れたとき、ディレクトリ・エントリは処理される。
【0044】−キャストアウト・クラス情報読取りコマ
ンド:キャストアウト・クラス情報読取りコマンドは、
ある範囲のキャストアウト・クラスに関する統計情報を
戻す。
ンド:キャストアウト・クラス情報読取りコマンドは、
ある範囲のキャストアウト・クラスに関する統計情報を
戻す。
【0045】−ディレクトリ読取りコマンド:ディレク
トリ読取りコマンドは、ディレクトリを走査し、ディレ
クトリ・エントリ情報ブロックのリストを戻す。
トリ読取りコマンドは、ディレクトリを走査し、ディレ
クトリ・エントリ情報ブロックのリストを戻す。
【0046】−キャストアウト用読取りコマンド:キャ
ストアウト用読取りコマンドは、名前付きデータ域の内
容をローカル・キャッシュに戻し、その名前をキャスト
アウトのためにロックする。
ストアウト用読取りコマンドは、名前付きデータ域の内
容をローカル・キャッシュに戻し、その名前をキャスト
アウトのためにロックする。
【0047】−キャストアウト・ロック解除コマンド:
キャストアウト・ロック解除コマンドは、キャストアウ
ト・ロックを0にリセットし、そのユーザ・データ・フ
ィールドを名前リスト用のディレクトリ・エントリ中に
記憶する。
キャストアウト・ロック解除コマンドは、キャストアウ
ト・ロックを0にリセットし、そのユーザ・データ・フ
ィールドを名前リスト用のディレクトリ・エントリ中に
記憶する。
【0048】−書込み及び登録コマンド:書込み及び登
録コマンドは、変更制御がデータの変更状態と一致する
とき、そのデータ・ブロックの内容をデータ域に記憶
し、ローカル・キャッシュ・エントリを登録する。
録コマンドは、変更制御がデータの変更状態と一致する
とき、そのデータ・ブロックの内容をデータ域に記憶
し、ローカル・キャッシュ・エントリを登録する。
【0049】−登録時書込みコマンド:登録時書込みコ
マンドは、その名前がディレクトリ中で割り当てられ、
そのローカル・キャッシュ・エントリが登録され、変更
制御がそのデータの変更状態と一致する場合に、データ
・ブロックの内容をデータ域に記憶する。
マンドは、その名前がディレクトリ中で割り当てられ、
そのローカル・キャッシュ・エントリが登録され、変更
制御がそのデータの変更状態と一致する場合に、データ
・ブロックの内容をデータ域に記憶する。
【0050】メインライン動作中、データ・ベース・マ
ネージャは、SESキャッシュの記憶域を管理する責任
を負う。データ・ベース・マネージャはまた、SESキ
ャッシュからDASDへの変更済みデータ要素の移動を
管理する責任も負う。初期設定時に確立されたタイムア
ウト間隔により、オペレーティング・システムは、SE
Sキャッシュ域の管理及びSESキャッシュ・データの
DASDへの移動の管理のため、処理ルーチンに周期的
に制御権を与える。上記の機構は、DASDとSESキ
ャッシュの間でのデータ移動の管理をシステム・ソフト
ウェアで実行するための基礎となる。このプリミティブ
・サービスを使ってSESからのデータの書込みとキャ
ストアウトの間の非ブロッキング逐次化プロトコルを実
施する技法が利用される。さらに、上記のプリミティブ
・サービスは、結合システム環境の全体的性能が最適に
なるような形で、SESからDASDへ移動すべき1組
の修正済みデータ要素を決定するための基礎となる。
ネージャは、SESキャッシュの記憶域を管理する責任
を負う。データ・ベース・マネージャはまた、SESキ
ャッシュからDASDへの変更済みデータ要素の移動を
管理する責任も負う。初期設定時に確立されたタイムア
ウト間隔により、オペレーティング・システムは、SE
Sキャッシュ域の管理及びSESキャッシュ・データの
DASDへの移動の管理のため、処理ルーチンに周期的
に制御権を与える。上記の機構は、DASDとSESキ
ャッシュの間でのデータ移動の管理をシステム・ソフト
ウェアで実行するための基礎となる。このプリミティブ
・サービスを使ってSESからのデータの書込みとキャ
ストアウトの間の非ブロッキング逐次化プロトコルを実
施する技法が利用される。さらに、上記のプリミティブ
・サービスは、結合システム環境の全体的性能が最適に
なるような形で、SESからDASDへ移動すべき1組
の修正済みデータ要素を決定するための基礎となる。
【0051】SESキャッシュからDASDへのデータ
移動を管理するための1つのプロトコルの例は次の通り
である。各キャストアウト・クラスについてキャストア
ウト・クラス情報読取りコマンドが発行され、候補とな
るキャストアウト・クラスが選択される。選択された各
キャストアウト・クラスについて、キャストアウト・ク
ラス読取りコマンドが発行される。最も以前に更新され
たディレクトリ・エントリのリストが戻される。選択さ
れた各ディレクトリ・エントリについてキャストアウト
用読取りコマンドが発行される。SESから読み取った
データをDASDに書き込ませるための入出力要求が作
成される。入出力動作が完了したとき、キャストアウト
・ロック解除コマンドが発行される。
移動を管理するための1つのプロトコルの例は次の通り
である。各キャストアウト・クラスについてキャストア
ウト・クラス情報読取りコマンドが発行され、候補とな
るキャストアウト・クラスが選択される。選択された各
キャストアウト・クラスについて、キャストアウト・ク
ラス読取りコマンドが発行される。最も以前に更新され
たディレクトリ・エントリのリストが戻される。選択さ
れた各ディレクトリ・エントリについてキャストアウト
用読取りコマンドが発行される。SESから読み取った
データをDASDに書き込ませるための入出力要求が作
成される。入出力動作が完了したとき、キャストアウト
・ロック解除コマンドが発行される。
【0052】
概要:本発明は、不揮発性電子メモリの形の共用キャッ
シュ(SES)を含む多重システム・データ共用複合体
の構造、及び異なる可能性もあるいくつかのデータ・バ
ージョンの間でのコヒーレンシを維持しながらデータ資
源を共用するようにキャッシュを動作させる方法を提供
する。
シュ(SES)を含む多重システム・データ共用複合体
の構造、及び異なる可能性もあるいくつかのデータ・バ
ージョンの間でのコヒーレンシを維持しながらデータ資
源を共用するようにキャッシュを動作させる方法を提供
する。
【0053】多重コンピュータ・データ共用システムで
のデータ・コヒーレンシ方針で更新済みのデータ・ペー
ジの書込みが必要な場合、いくつかの重要な特徴をもつ
アーキテクチャを使用することができる。そのようなア
ーキテクチャを図1に示すが、これは複数の独立して動
作するコンピュータ・システムCPC−1ないしCPC
−Mを含み、これらのコンピュータ・システムは、直接
アクセス記憶装置(DASD)109A、109Bない
し109Nに記憶されているデータを共用する。DAS
D109A、109Bないし109Nは、たとえば多重
ディスク・ディスク・ドライブを含むことができる。特
徴上、これを「2次記憶域」と称する。このアーキテク
チャはM個のコンピュータ・システムCPC−1ないし
CPC−Mを含み、これらのコンピュータ・システムは
それぞれデータベース管理システム(DBMS)を含
み、これはDASD上のデータを含むデータベースの作
成、編成、修正を制御し、データベース中のデータへの
アクセスを制御する。システム中には高速不揮発性電子
メモリ(SES101)も設けられ、コンピュータ・シ
ステムによって共用されるキャッシュとして働く。メモ
リ101は高速リンク106−1ないし106−Mによ
ってコンピュータ・システムCPC−1ないしCPC−
Mに接続される。以後、このメモリ101を「メモリ」
または「NV記憶装置」または「SES」と呼ぶ。
のデータ・コヒーレンシ方針で更新済みのデータ・ペー
ジの書込みが必要な場合、いくつかの重要な特徴をもつ
アーキテクチャを使用することができる。そのようなア
ーキテクチャを図1に示すが、これは複数の独立して動
作するコンピュータ・システムCPC−1ないしCPC
−Mを含み、これらのコンピュータ・システムは、直接
アクセス記憶装置(DASD)109A、109Bない
し109Nに記憶されているデータを共用する。DAS
D109A、109Bないし109Nは、たとえば多重
ディスク・ディスク・ドライブを含むことができる。特
徴上、これを「2次記憶域」と称する。このアーキテク
チャはM個のコンピュータ・システムCPC−1ないし
CPC−Mを含み、これらのコンピュータ・システムは
それぞれデータベース管理システム(DBMS)を含
み、これはDASD上のデータを含むデータベースの作
成、編成、修正を制御し、データベース中のデータへの
アクセスを制御する。システム中には高速不揮発性電子
メモリ(SES101)も設けられ、コンピュータ・シ
ステムによって共用されるキャッシュとして働く。メモ
リ101は高速リンク106−1ないし106−Mによ
ってコンピュータ・システムCPC−1ないしCPC−
Mに接続される。以後、このメモリ101を「メモリ」
または「NV記憶装置」または「SES」と呼ぶ。
【0054】メモリ101へのアクセスを2次記憶域へ
のアクセスと比較すると、メモリ101は、比較的高速
の半導体メモリであると言える。さらに、メモリ101
のコンピュータ・システムへの接続は、たとえば非常に
高速のデータ転送が可能な光ファイバ通信チャネルによ
る。相対的に言うと、入出力動作は比較的高速のメモリ
101で行われ、一方周知のように、比較的低速のDA
SDによる入出力は数十ミリ秒かかることがある。
のアクセスと比較すると、メモリ101は、比較的高速
の半導体メモリであると言える。さらに、メモリ101
のコンピュータ・システムへの接続は、たとえば非常に
高速のデータ転送が可能な光ファイバ通信チャネルによ
る。相対的に言うと、入出力動作は比較的高速のメモリ
101で行われ、一方周知のように、比較的低速のDA
SDによる入出力は数十ミリ秒かかることがある。
【0055】メモリ101は、あらゆるメモリの記憶動
作を管理する、好ましくはプロセッサ形式の管理論理機
構110を含んでいる。管理論理機構110は、ローカ
ル・プログラム記憶域と専用メモリとを含む高性能プロ
セッサを備え、このプロセッサは、管理論理機構がコン
ピュータ・システムCPC−1ないしCPC−Mとの間
でメッセージに基づくメモリ・アクセス・トランザクシ
ョンに従事できるようにする。
作を管理する、好ましくはプロセッサ形式の管理論理機
構110を含んでいる。管理論理機構110は、ローカ
ル・プログラム記憶域と専用メモリとを含む高性能プロ
セッサを備え、このプロセッサは、管理論理機構がコン
ピュータ・システムCPC−1ないしCPC−Mとの間
でメッセージに基づくメモリ・アクセス・トランザクシ
ョンに従事できるようにする。
【0056】コンピュータ・システムCPC−1ないし
CPC−Mに関しては、これらのエンティティは、それ
ぞれ専用キャッシュを備えた多重プロセッサ・アーキテ
クチャを有し、それぞれIMS/VSまたはDB2型の
データベース管理システムをサポートできる、たとえば
IBM/3090のようなシステムを備えることができ
る。
CPC−Mに関しては、これらのエンティティは、それ
ぞれ専用キャッシュを備えた多重プロセッサ・アーキテ
クチャを有し、それぞれIMS/VSまたはDB2型の
データベース管理システムをサポートできる、たとえば
IBM/3090のようなシステムを備えることができ
る。
【0057】本質的に、本発明は、図1に示し上述した
データ共用複合体において実施される。メモリ101中
に、共用キャッシュ103と称する半導体メモリがあ
る。共用キャッシュ103は、従来型の多重ポート高速
ランダム・アクセス・メモリを備えることができ、これ
は不揮発性であることが好ましい。共用キャッシュ10
3は、データ・ブロックを記憶するのに使用される。た
とえば、共用キャッシュ103を使ってデータ・ページ
を記憶することができる。その1ページを111として
示す。
データ共用複合体において実施される。メモリ101中
に、共用キャッシュ103と称する半導体メモリがあ
る。共用キャッシュ103は、従来型の多重ポート高速
ランダム・アクセス・メモリを備えることができ、これ
は不揮発性であることが好ましい。共用キャッシュ10
3は、データ・ブロックを記憶するのに使用される。た
とえば、共用キャッシュ103を使ってデータ・ページ
を記憶することができる。その1ページを111として
示す。
【0058】SES内の管理論理機構110は、1個ま
たは複数のプロセッサまたはマイクロプロセッサと、そ
れらのプロセッサによって実行可能なプログラムまたは
マイクロプログラムとを備える。これらのプロセッサ
は、CPCコマンドによって送られたメッセージを受け
取り、SES中でそれらのコマンドを実行する。ローカ
ル・キャッシュ制御105及びディレクトリ102は、
管理論理機構110によってアクセスされる。周知のハ
ッシング・ルックアップ・アルゴリズムを使って、SE
Sキャッシュ・ディレクトリにアクセスすることができ
る。ローカル・キャッシュ制御(部)は、複数のエント
リを含むデータ構造であり、各エントリが、メモリ10
1に動作可能に接続されているコンピュータ・システム
を識別する。たとえば、コンピュータ・システムCPC
−1,・・・CPC−Mが接続されているとすると、そ
れらがローカル・キャッシュ制御105中にリストされ
ることになる。
たは複数のプロセッサまたはマイクロプロセッサと、そ
れらのプロセッサによって実行可能なプログラムまたは
マイクロプログラムとを備える。これらのプロセッサ
は、CPCコマンドによって送られたメッセージを受け
取り、SES中でそれらのコマンドを実行する。ローカ
ル・キャッシュ制御105及びディレクトリ102は、
管理論理機構110によってアクセスされる。周知のハ
ッシング・ルックアップ・アルゴリズムを使って、SE
Sキャッシュ・ディレクトリにアクセスすることができ
る。ローカル・キャッシュ制御(部)は、複数のエント
リを含むデータ構造であり、各エントリが、メモリ10
1に動作可能に接続されているコンピュータ・システム
を識別する。たとえば、コンピュータ・システムCPC
−1,・・・CPC−Mが接続されているとすると、そ
れらがローカル・キャッシュ制御105中にリストされ
ることになる。
【0059】共用キャッシュ103は、「ストア・スル
ー」型キャッシュではなく「ストア・イン」型キャッシ
ュとして動作する。「ストア・イン」型キャッシュと
は、更新されたページを、同時に2次記憶域に書き込む
(「ストア・スルーする」)必要なく、書込みができる
キャッシュを言う。
ー」型キャッシュではなく「ストア・イン」型キャッシ
ュとして動作する。「ストア・イン」型キャッシュと
は、更新されたページを、同時に2次記憶域に書き込む
(「ストア・スルーする」)必要なく、書込みができる
キャッシュを言う。
【0060】SESキャッシュは、付加プロセッサのネ
ットワーク中の3段記憶階層の構成要素である。この階
層の最低段はDASD、中間段はSESキャッシュ、最
高段はプロセッサ記憶機構中のローカル・キャッシュで
ある。DASDとSESキャッシュはプロセッサによっ
て共用され、それぞれ入出力動作及びメッセージ動作に
よってアクセスされる。ローカル・キャッシュは、各プ
ロセッサ中で定義することができ、CPU命令を使って
アクセスされる。
ットワーク中の3段記憶階層の構成要素である。この階
層の最低段はDASD、中間段はSESキャッシュ、最
高段はプロセッサ記憶機構中のローカル・キャッシュで
ある。DASDとSESキャッシュはプロセッサによっ
て共用され、それぞれ入出力動作及びメッセージ動作に
よってアクセスされる。ローカル・キャッシュは、各プ
ロセッサ中で定義することができ、CPU命令を使って
アクセスされる。
【0061】記憶階層中を移動するデータには名前が付
けられる。データ・サイズは可変で、データ域要素のサ
イズの1〜16倍の範囲である。データ域要素サイズは
各SESキャッシュ毎に固定され、2の累乗で最小サイ
ズが256バイトである。名前はプログラミング制御に
よって割り当てられる16バイトの値である。データは
DASD記憶装置中に永続的に常駐する。
けられる。データ・サイズは可変で、データ域要素のサ
イズの1〜16倍の範囲である。データ域要素サイズは
各SESキャッシュ毎に固定され、2の累乗で最小サイ
ズが256バイトである。名前はプログラミング制御に
よって割り当てられる16バイトの値である。データは
DASD記憶装置中に永続的に常駐する。
【0062】データのコピーまたは新しいバージョン
も、SESキャッシュ域またはローカル・キャッシュ域
のどんな組合せ中にも常駐できる。具体的には、データ
項目がSESキャッシュ域には常駐するが、どのローカ
ル・キャッシュ中にも常駐しないこともあり、SESキ
ャッシュ記憶域とローカル・キャッシュの一部に常駐す
ることもあり、またローカル・キャッシュの一部には常
駐するが、SESキャッシュ域には常駐しないこともあ
る。
も、SESキャッシュ域またはローカル・キャッシュ域
のどんな組合せ中にも常駐できる。具体的には、データ
項目がSESキャッシュ域には常駐するが、どのローカ
ル・キャッシュ中にも常駐しないこともあり、SESキ
ャッシュ記憶域とローカル・キャッシュの一部に常駐す
ることもあり、またローカル・キャッシュの一部には常
駐するが、SESキャッシュ域には常駐しないこともあ
る。
【0063】一例として、記憶階層中で参照されるデー
タ要素がページであると仮定する。そうすると、共用キ
ャッシュ103中にキャッシュ記憶されるページは、ソ
フトウェアで割り当てられた名前によって識別される。
したがって、共用キャッシュ103中での読取りまたは
書込みを求める要求は、要求の対象であるページ(P)
の名前を指定する必要がある。ディレクトリ102は、
従来通り読取りコマンドまたは書込みコマンドの対象で
あるページの名前でインデックスされる。ディレクトリ
102の代表的なエントリを図3に示す。本発明に関し
て、ディレクトリの重要なフィールドを図3に示してあ
る。それには、名前フィールド301、データ・ビット
(D)フィールド303、データ域ポインタ・フィール
ド306Aないし306N、変更ビット(C)フィール
ド304、有効ビット(V)フィールド302、データ
域サイズ・フィールド307、キャストアウト・ロック
識別(CO)フィールド308、キャストアウト・クラ
ス・フィールド309、及び図4に示すローカル・キャ
ッシュ・レジスタ・エントリへのアクセス権を与えるロ
ーカル・キャッシュ・レジスタ・インデックス305が
含まれる。ローカル・キャッシュ・レジスタ・エントリ
は、SESキャッシュに付加されたローカル・キャッシ
ュの識別(402Aないし402C)及び有効ビット
(401Aないし401C)を含んでいる。ローカル・
キャッシュ・レジスタ305中の異なるタイプのエント
リをもたらす2つの例を示してある。
タ要素がページであると仮定する。そうすると、共用キ
ャッシュ103中にキャッシュ記憶されるページは、ソ
フトウェアで割り当てられた名前によって識別される。
したがって、共用キャッシュ103中での読取りまたは
書込みを求める要求は、要求の対象であるページ(P)
の名前を指定する必要がある。ディレクトリ102は、
従来通り読取りコマンドまたは書込みコマンドの対象で
あるページの名前でインデックスされる。ディレクトリ
102の代表的なエントリを図3に示す。本発明に関し
て、ディレクトリの重要なフィールドを図3に示してあ
る。それには、名前フィールド301、データ・ビット
(D)フィールド303、データ域ポインタ・フィール
ド306Aないし306N、変更ビット(C)フィール
ド304、有効ビット(V)フィールド302、データ
域サイズ・フィールド307、キャストアウト・ロック
識別(CO)フィールド308、キャストアウト・クラ
ス・フィールド309、及び図4に示すローカル・キャ
ッシュ・レジスタ・エントリへのアクセス権を与えるロ
ーカル・キャッシュ・レジスタ・インデックス305が
含まれる。ローカル・キャッシュ・レジスタ・エントリ
は、SESキャッシュに付加されたローカル・キャッシ
ュの識別(402Aないし402C)及び有効ビット
(401Aないし401C)を含んでいる。ローカル・
キャッシュ・レジスタ305中の異なるタイプのエント
リをもたらす2つの例を示してある。
【0064】上記の例について話を続けると、ページ名
前フィールド301は、管理論理機構110がディレク
トリ102中にインデックスするのに使用するフィール
ドである。管理論理機構110が読取りコマンドまたは
書込みコマンドを受け取ったとすると、そのコマンドに
は、ページを識別するパラメータPの値が付随する。管
理論理機構110はPの値をハッシング・プロセスに提
示し、ハッシング・プロセスは、ページ名が既に存在す
る場合、その名前を用いてディレクトリに迅速にアクセ
スするために管理論理機構110が使用する値を生成す
る。ページ名前フィールドが位置決めされた後、ページ
・アドレス・フィールド306を使って、共用キャッシ
ュ中の識別されたページのアドレスを指示する。
前フィールド301は、管理論理機構110がディレク
トリ102中にインデックスするのに使用するフィール
ドである。管理論理機構110が読取りコマンドまたは
書込みコマンドを受け取ったとすると、そのコマンドに
は、ページを識別するパラメータPの値が付随する。管
理論理機構110はPの値をハッシング・プロセスに提
示し、ハッシング・プロセスは、ページ名が既に存在す
る場合、その名前を用いてディレクトリに迅速にアクセ
スするために管理論理機構110が使用する値を生成す
る。ページ名前フィールドが位置決めされた後、ページ
・アドレス・フィールド306を使って、共用キャッシ
ュ中の識別されたページのアドレスを指示する。
【0065】管理論理機構110は、必要に応じてディ
レクトリ・エントリを作成し管理し削除する。これらの
活動は既知の機構を用いて行われるが、ディレクトリ1
02のエントリの厳密な構造は本発明独特のものであ
る。管理論理機構110は共用キャッシュ103からデ
ータを獲得しそこにデータを入れるため従来通りの構造
になっているが、それが従う読取り動作及び書込み動作
は本発明独特のものである。管理論理機構110はま
た、「キャッシュ・ミス」応答及び「キャッシュ・ヒッ
ト」応答を生成する通常のキャッシュ管理能力を備えて
いる。これらの応答は、共用キャッシュ111に接続さ
れているコンピュータ・システムから発行されるコマン
ドに応答して生成される。「キャッシュ・ミス」は、識
別されたデータ要素(たとえばページ)が共用キャッシ
ュ111中に存在しないことを示し、「キャッシュ・ヒ
ット」は、識別されたデータ要素(たとえばページ)が
共用キャッシュ111中にあることを示す。
レクトリ・エントリを作成し管理し削除する。これらの
活動は既知の機構を用いて行われるが、ディレクトリ1
02のエントリの厳密な構造は本発明独特のものであ
る。管理論理機構110は共用キャッシュ103からデ
ータを獲得しそこにデータを入れるため従来通りの構造
になっているが、それが従う読取り動作及び書込み動作
は本発明独特のものである。管理論理機構110はま
た、「キャッシュ・ミス」応答及び「キャッシュ・ヒッ
ト」応答を生成する通常のキャッシュ管理能力を備えて
いる。これらの応答は、共用キャッシュ111に接続さ
れているコンピュータ・システムから発行されるコマン
ドに応答して生成される。「キャッシュ・ミス」は、識
別されたデータ要素(たとえばページ)が共用キャッシ
ュ111中に存在しないことを示し、「キャッシュ・ヒ
ット」は、識別されたデータ要素(たとえばページ)が
共用キャッシュ111中にあることを示す。
【0066】コマンドは、図1の多重システム複合体中
のコンピュータ・システム(CPC)によって発生され
る。これらのコマンドは管理論理機構110から応答を
引き出す。本発明者等は、コマンド及び応答がメッセー
ジ・プロトコルによってコンピュータ・システムと管理
論理機構の間で交換されることを企図している。さらに
本発明者は、コマンドを発行するコンピュータ・システ
ムが、管理論理機構110から応答を受け取るまで遅延
を維持できる点で、共用キャッシュ101へのアクセス
が同期的であることを企図している。共用キャッシュ1
01を形成する半導体メモリの速度は、同期メッセージ
受渡し構造に固有の遅延を小さくする。
のコンピュータ・システム(CPC)によって発生され
る。これらのコマンドは管理論理機構110から応答を
引き出す。本発明者等は、コマンド及び応答がメッセー
ジ・プロトコルによってコンピュータ・システムと管理
論理機構の間で交換されることを企図している。さらに
本発明者は、コマンドを発行するコンピュータ・システ
ムが、管理論理機構110から応答を受け取るまで遅延
を維持できる点で、共用キャッシュ101へのアクセス
が同期的であることを企図している。共用キャッシュ1
01を形成する半導体メモリの速度は、同期メッセージ
受渡し構造に固有の遅延を小さくする。
【0067】本発明者はまた、図1の多重システム・デ
ータ共用複合体のコンピュータ・システムが、通常の手
段、たとえばIBM IMS仕様のシステムの共用ディ
スク機能を用いてDASDへのアクセス権を得ることを
企図している。既知の通り、そのようなアクセスは、読
取りコマンドまたは書込みコマンドがDASDにディス
パッチされる間、コンピュータ・システムが遅延しない
点で、非同期的である。
ータ共用複合体のコンピュータ・システムが、通常の手
段、たとえばIBM IMS仕様のシステムの共用ディ
スク機能を用いてDASDへのアクセス権を得ることを
企図している。既知の通り、そのようなアクセスは、読
取りコマンドまたは書込みコマンドがDASDにディス
パッチされる間、コンピュータ・システムが遅延しない
点で、非同期的である。
【0068】図1に示したように、NV記憶装置(SE
S)101はどの2次記憶装置にも直接付加されていな
い。なお、コンピュータ・システムCPC−1ないしC
PC−MのそれぞれのDBMSは、NV記憶装置101
の存在を知っており、その中にキャッシュ記憶されてい
る内容に責任を負っている。図1のシステムでは、更新
済みのデータ要素(たとえばページ)が、DBMSによ
って明示的にNV記憶装置に書き込まれる。
S)101はどの2次記憶装置にも直接付加されていな
い。なお、コンピュータ・システムCPC−1ないしC
PC−MのそれぞれのDBMSは、NV記憶装置101
の存在を知っており、その中にキャッシュ記憶されてい
る内容に責任を負っている。図1のシステムでは、更新
済みのデータ要素(たとえばページ)が、DBMSによ
って明示的にNV記憶装置に書き込まれる。
【0069】NV記憶装置101中でスチール可能な
(stealable)ページを維持する責任は、コンピュータ
・システム上で実行されるDBMSの1つに委ねられ、
あるいはそれらのDBMSによって共用される。新しい
ページのための使用可能性を確保するためのNV記憶装
置中のページ空間の管理は、更新済みページをキャスト
アウト動作によって周期的にNV記憶装置から2次記憶
装置に書き込むことによって行われる。このキャストア
ウト動作は、トランザクション・コミット動作と非同期
であることが好ましい。データ要素(たとえばページ)
が2次記憶装置に書き込まれる前に複数回更新されるこ
とが望ましいからである。
(stealable)ページを維持する責任は、コンピュータ
・システム上で実行されるDBMSの1つに委ねられ、
あるいはそれらのDBMSによって共用される。新しい
ページのための使用可能性を確保するためのNV記憶装
置中のページ空間の管理は、更新済みページをキャスト
アウト動作によって周期的にNV記憶装置から2次記憶
装置に書き込むことによって行われる。このキャストア
ウト動作は、トランザクション・コミット動作と非同期
であることが好ましい。データ要素(たとえばページ)
が2次記憶装置に書き込まれる前に複数回更新されるこ
とが望ましいからである。
【0070】図1に示すように、各コンピュータ・シス
テムは、識別されたバッファを含む。このバッファは、
コンピュータ・システムとNV記憶装置101の間で交
換されるデータのステージングを行うために使用され
る。たとえば、コンピュータ・システムCPC−1はバ
ッファ107Aを含み、コンピュータ・システムCPC
−Mにはバッファ107Cが設けられている。データ共
用複合体のすべてのコンピュータ・システムがこのよう
な専用バッファを使用する。さらに、コンピュータ・シ
ステムの1つが管理論理機構110に読取りコマンドま
たは書込みコマンドを供給するとき、そのコンピュータ
・システムは、要求されたデータを入力または獲得すべ
き場所のアドレスをその専用バッファ中に送る。
テムは、識別されたバッファを含む。このバッファは、
コンピュータ・システムとNV記憶装置101の間で交
換されるデータのステージングを行うために使用され
る。たとえば、コンピュータ・システムCPC−1はバ
ッファ107Aを含み、コンピュータ・システムCPC
−Mにはバッファ107Cが設けられている。データ共
用複合体のすべてのコンピュータ・システムがこのよう
な専用バッファを使用する。さらに、コンピュータ・シ
ステムの1つが管理論理機構110に読取りコマンドま
たは書込みコマンドを供給するとき、そのコンピュータ
・システムは、要求されたデータを入力または獲得すべ
き場所のアドレスをその専用バッファ中に送る。
【0071】本発明は、キャストアウトされるデータの
更新を許容する一方で、データを共用キャッシュから2
次記憶域にキャストアウトすることに関する。データ要
素(たとえばページ)は、更新されると、2次記憶域中
のその更新済みバージョンと整合性をもつようになるま
で、「ダーティ」であると見なされる。データ要素(た
とえばページ)に対するディレクトリ・エントリ中の変
更ビットが0のとき、そのページは「クリーン・ペー
ジ」と呼ばれる。なお、この場合のページのDASD中
のバージョンは共用キャッシュ101中の対応するペー
ジのバージョンと同じである。逆にそのページに対する
変更ビット(C)が1のときは、そのページは「ダーテ
ィ」であり、そのキャッシュ記憶されたページのバージ
ョンは2次記憶域中のページのバージョンと異なってい
る(それよりも新しい)。
更新を許容する一方で、データを共用キャッシュから2
次記憶域にキャストアウトすることに関する。データ要
素(たとえばページ)は、更新されると、2次記憶域中
のその更新済みバージョンと整合性をもつようになるま
で、「ダーティ」であると見なされる。データ要素(た
とえばページ)に対するディレクトリ・エントリ中の変
更ビットが0のとき、そのページは「クリーン・ペー
ジ」と呼ばれる。なお、この場合のページのDASD中
のバージョンは共用キャッシュ101中の対応するペー
ジのバージョンと同じである。逆にそのページに対する
変更ビット(C)が1のときは、そのページは「ダーテ
ィ」であり、そのキャッシュ記憶されたページのバージ
ョンは2次記憶域中のページのバージョンと異なってい
る(それよりも新しい)。
【0072】本発明は、1組の独自のコマンド、及びそ
れらのコマンドの実行の結果生じる変更を、影響を受け
るディレクトリ・エントリ中に登録することを基礎とし
ている。
れらのコマンドの実行の結果生じる変更を、影響を受け
るディレクトリ・エントリ中に登録することを基礎とし
ている。
【0073】ローカル・キャッシュ:ローカル・キャッ
シュ(LC)は、米国特許出願第860797号に記載
のローカル・キャッシュを含むCPC上のSESサポー
ト機構に対して定義される。CPC命令がSESサポー
ト機構中で制御を初期設定し、ローカル・キャッシュ・
トークンを割り当てる。ローカル・キャッシュのサイズ
はシステム毎に変わる。各ローカル・キャッシュは、1
つまたは複数のローカル・キャッシュ・バッファ(LC
B)107を含んでいる。
シュ(LC)は、米国特許出願第860797号に記載
のローカル・キャッシュを含むCPC上のSESサポー
ト機構に対して定義される。CPC命令がSESサポー
ト機構中で制御を初期設定し、ローカル・キャッシュ・
トークンを割り当てる。ローカル・キャッシュのサイズ
はシステム毎に変わる。各ローカル・キャッシュは、1
つまたは複数のローカル・キャッシュ・バッファ(LC
B)107を含んでいる。
【0074】SESキャッシュ:SESキャッシュは、
データ域要素とディレクトリの集合体からなるSES中
の構造である。これは構造識別子で指定される。SES
キャッシュは、キャッシュ構造割振りコマンドによって
作成される。このコマンドは、プロセッサで初期設定手
段によって発行され、SESキャッシュの属性、すなわ
ちデータ域要素のサイズと数、ディレクトリ・エントリ
の数、記憶クラスの数、キャストアウト・クラスの数を
決定する。
データ域要素とディレクトリの集合体からなるSES中
の構造である。これは構造識別子で指定される。SES
キャッシュは、キャッシュ構造割振りコマンドによって
作成される。このコマンドは、プロセッサで初期設定手
段によって発行され、SESキャッシュの属性、すなわ
ちデータ域要素のサイズと数、ディレクトリ・エントリ
の数、記憶クラスの数、キャストアウト・クラスの数を
決定する。
【0075】ローカル・キャッシュは、ローカル・キャ
ッシュ付加コマンドによってSESキャッシュに付加さ
れる。このコマンドは、SES機構中の制御を初期設定
し、生成済みのコマンドをSESキャッシュがSESサ
ポート機構に発行する際に使用する1組の経路とローカ
ル・キャッシュとを関連付ける。ローカル・キャッシュ
は、SESキャッシュに付加されて、記憶階層に参加で
きるようになる。ローカル・キャッシュ中とSESキャ
ッシュ中のデータのコピーのコヒーレンシは、SESキ
ャッシュ中の制御によって維持され、様々なSESサポ
ート機構に生成済みコマンドとして発行される相互無効
化(XI)コマンドによって実施される。キャッシュ・
コヒーレンシのプロセスは米国特許出願第860805
号に記載されている。
ッシュ付加コマンドによってSESキャッシュに付加さ
れる。このコマンドは、SES機構中の制御を初期設定
し、生成済みのコマンドをSESキャッシュがSESサ
ポート機構に発行する際に使用する1組の経路とローカ
ル・キャッシュとを関連付ける。ローカル・キャッシュ
は、SESキャッシュに付加されて、記憶階層に参加で
きるようになる。ローカル・キャッシュ中とSESキャ
ッシュ中のデータのコピーのコヒーレンシは、SESキ
ャッシュ中の制御によって維持され、様々なSESサポ
ート機構に生成済みコマンドとして発行される相互無効
化(XI)コマンドによって実施される。キャッシュ・
コヒーレンシのプロセスは米国特許出願第860805
号に記載されている。
【0076】SESキャッシュ・ディレクトリ:SES
キャッシュ・ディレクトリは、連想式(アソシアティ
ブ)アレイとして配列された複数のディレクトリ・エン
トリの集合体である。ディレクトリ・エントリは記憶ク
ラスに区分される。変更済みディレクトリ・エントリの
グループはキャストアウト・クラスに区分される。名前
付きのデータ・オブジェクトが記憶階層の上の2段に置
かれたときは、その状態と位置がSESキャッシュ・デ
ィレクトリによって登録される。状態情報は、そのデー
タが変更済みか、未変更か、それともキャストアウト用
にロック済みかを示す。位置情報には、そのデータがS
ESキャッシュ域中に常駐するかどうか、及びどのロー
カル・キャッシュにコピーが含まれるかがある。(位置
406A〜NのポインタによってSESキャッシュ・デ
ータ域中で位置決めされる)レコードは、その中で、レ
コード、データ要素、データ項目、ブロック、ページな
どいくつかの異なる項目のどれによっても参照される。
ある種のSES読取りコマンド及びSES書込みコマン
ドが、SESキャッシュ・ディレクトリ中にローカル・
キャッシュ・コピーを登録する。SES書込みコマンド
及びSES無効化コマンドが、ローカル・コピーの登録
を解除する。
キャッシュ・ディレクトリは、連想式(アソシアティ
ブ)アレイとして配列された複数のディレクトリ・エン
トリの集合体である。ディレクトリ・エントリは記憶ク
ラスに区分される。変更済みディレクトリ・エントリの
グループはキャストアウト・クラスに区分される。名前
付きのデータ・オブジェクトが記憶階層の上の2段に置
かれたときは、その状態と位置がSESキャッシュ・デ
ィレクトリによって登録される。状態情報は、そのデー
タが変更済みか、未変更か、それともキャストアウト用
にロック済みかを示す。位置情報には、そのデータがS
ESキャッシュ域中に常駐するかどうか、及びどのロー
カル・キャッシュにコピーが含まれるかがある。(位置
406A〜NのポインタによってSESキャッシュ・デ
ータ域中で位置決めされる)レコードは、その中で、レ
コード、データ要素、データ項目、ブロック、ページな
どいくつかの異なる項目のどれによっても参照される。
ある種のSES読取りコマンド及びSES書込みコマン
ドが、SESキャッシュ・ディレクトリ中にローカル・
キャッシュ・コピーを登録する。SES書込みコマンド
及びSES無効化コマンドが、ローカル・コピーの登録
を解除する。
【0077】ローカル・キャッシュ・エントリ有効状
態:データがローカル・キャッシュ中にあるとき、その
データの状況は有効か無効かである。ローカル・キャッ
シュ・エントリの有効状態は、SESサポート機構中の
制御によって維持される。データはCPU命令によって
有効にされ、SES書込み動作及びSES無効化動作に
関連する無効化プロセスによって無効とされる。データ
の有効状態はCPU命令によってテストされる。有効な
名前付きデータ・オブジェクトはSESキャッシュ・デ
ィレクトリ中に登録しなければならない。ローカル・キ
ャッシュ・コヒーレンシは無効化プロセスによって維持
される。これらの制御を使ってデータのコヒーレンシを
維持するプロセスは、米国特許出願第860805号に
記載されている。
態:データがローカル・キャッシュ中にあるとき、その
データの状況は有効か無効かである。ローカル・キャッ
シュ・エントリの有効状態は、SESサポート機構中の
制御によって維持される。データはCPU命令によって
有効にされ、SES書込み動作及びSES無効化動作に
関連する無効化プロセスによって無効とされる。データ
の有効状態はCPU命令によってテストされる。有効な
名前付きデータ・オブジェクトはSESキャッシュ・デ
ィレクトリ中に登録しなければならない。ローカル・キ
ャッシュ・コヒーレンシは無効化プロセスによって維持
される。これらの制御を使ってデータのコヒーレンシを
維持するプロセスは、米国特許出願第860805号に
記載されている。
【0078】キャストアウト・プロセス:SESキャッ
シュ記憶域は、通常DASD記憶域よりも小さい。従っ
て、変更済みデータをSESキャッシュからバックアッ
プDASDに周期的に転送しなければならない。このプ
ロセスをキャストアウトと称し、プログラムによって制
御され、以下の動作を必要とする。 −SES読取リ(SES-read)動作が発行されて、キャス
トアウト逐次化をセットし、データ・ ブロックを主記
憶装置へコピーする。 −入出力動作が実行されて、データ・ブロックをDAS
Dへコピーする。 −SESロック解除(SES-unlock)動作が発行されて、
キャストアウト逐次化を解除する。
シュ記憶域は、通常DASD記憶域よりも小さい。従っ
て、変更済みデータをSESキャッシュからバックアッ
プDASDに周期的に転送しなければならない。このプ
ロセスをキャストアウトと称し、プログラムによって制
御され、以下の動作を必要とする。 −SES読取リ(SES-read)動作が発行されて、キャス
トアウト逐次化をセットし、データ・ ブロックを主記
憶装置へコピーする。 −入出力動作が実行されて、データ・ブロックをDAS
Dへコピーする。 −SESロック解除(SES-unlock)動作が発行されて、
キャストアウト逐次化を解除する。
【0079】このプロセスに関連するデータ・オブジェ
クトは、SESキャッシュによってキャストアウト・ク
ラス中で維持される。キャストアウト・クラスは、プロ
グラムがDASDへのデータ転送を一回の入出力動作で
バッチ処理できるようにすることによって、キャストア
ウト・プロセスの効率を改善するのに使用される。DA
SDとSESキャッシュの間でのデータの移動を実行す
るプロセスが、本発明の主題である。
クトは、SESキャッシュによってキャストアウト・ク
ラス中で維持される。キャストアウト・クラスは、プロ
グラムがDASDへのデータ転送を一回の入出力動作で
バッチ処理できるようにすることによって、キャストア
ウト・プロセスの効率を改善するのに使用される。DA
SDとSESキャッシュの間でのデータの移動を実行す
るプロセスが、本発明の主題である。
【0080】再利用プロセス:最も以前に使用された
(LRU)未変更のデータ及びディレクトリ資源は、新
しい要求を満たすために必要なとき、SESキャッシュ
によって再利用(reclaim)される。データ・オブジェ
クトはプログラムによっていくつかの記憶クラスの1つ
にマップされる。各クラスは、再利用プロセスを制御す
るための再利用ベクトルを有する。これによって、作業
負荷特性の変化を補償するように、記憶クラス間でのS
ES記憶域の割当てを動的に調節することが可能にな
る。再利用ベクトルは、プログラムによって初期設定さ
れる。こうしたSESキャッシュ域管理オブジェクトを
利用するプロセスは、米国特許出願第806807号の
主題である。
(LRU)未変更のデータ及びディレクトリ資源は、新
しい要求を満たすために必要なとき、SESキャッシュ
によって再利用(reclaim)される。データ・オブジェ
クトはプログラムによっていくつかの記憶クラスの1つ
にマップされる。各クラスは、再利用プロセスを制御す
るための再利用ベクトルを有する。これによって、作業
負荷特性の変化を補償するように、記憶クラス間でのS
ES記憶域の割当てを動的に調節することが可能にな
る。再利用ベクトルは、プログラムによって初期設定さ
れる。こうしたSESキャッシュ域管理オブジェクトを
利用するプロセスは、米国特許出願第806807号の
主題である。
【0081】計装(Instrumentation):記憶クラス間
でのデータの割振り及びキャストアウト・プロセスの助
けとして、計装情報がプログラムに与えられる。
でのデータの割振り及びキャストアウト・プロセスの助
けとして、計装情報がプログラムに与えられる。
【0082】キャッシュ構造:各SESキャッシュ構造
毎に1組のキャッシュ構造オブジェクトが確立される。
キャッシュ構造オブジェクトは、以下のものからなる。 −キャッシュ制御(部) −ディレクトリ −キャストアウト・クラス制御(部)
毎に1組のキャッシュ構造オブジェクトが確立される。
キャッシュ構造オブジェクトは、以下のものからなる。 −キャッシュ制御(部) −ディレクトリ −キャストアウト・クラス制御(部)
【0083】キャッシュ制御(部): 最大キャストアウト・クラス(MCC):キャストアウ
ト・クラスの数を指定する、2バイトの符号なし2進整
数。有効なキャストアウト・クラスの値は、1から最大
キャストアウト・クラスの値までの範囲である。
ト・クラスの数を指定する、2バイトの符号なし2進整
数。有効なキャストアウト・クラスの値は、1から最大
キャストアウト・クラスの値までの範囲である。
【0084】LCIDベクトル(LCIDV):初期値
が0のビット・ストリング。ビット位置は0からスター
トし、順次増大する。ストリング中の位置(i)にある
ビットは、LCID値が(i)のローカル・キャッシュ
が付加されるとき、1にセットされる。このビットが1
のとき、ローカル・キャッシュ識別子が割り当てられ
る。位置(i)にあるビットは、ローカル・キャッシュ
が除去され、LCIDの割当て解除が要求されたとき、
あるいはキャッシュ構造が割振り解除されるとき、0に
リセットされる。このビットが0のとき、ローカル・キ
ャッシュ識別子は割り当てられない。
が0のビット・ストリング。ビット位置は0からスター
トし、順次増大する。ストリング中の位置(i)にある
ビットは、LCID値が(i)のローカル・キャッシュ
が付加されるとき、1にセットされる。このビットが1
のとき、ローカル・キャッシュ識別子が割り当てられ
る。位置(i)にあるビットは、ローカル・キャッシュ
が除去され、LCIDの割当て解除が要求されたとき、
あるいはキャッシュ構造が割振り解除されるとき、0に
リセットされる。このビットが0のとき、ローカル・キ
ャッシュ識別子は割り当てられない。
【0085】ローカル・キャッシュ制御(部):ローカ
ル・キャッシュ制御は、ローカル・キャッシュがSES
キャッシュに付加されるとき、初期設定され、ローカル
・キャッシュ識別子が割当て解除されるとき、削除され
る。ローカル・キャッシュ制御は、ローカル・キャッシ
ュ識別子が割り当てられているとき有効である。
ル・キャッシュ制御は、ローカル・キャッシュがSES
キャッシュに付加されるとき、初期設定され、ローカル
・キャッシュ識別子が割当て解除されるとき、削除され
る。ローカル・キャッシュ制御は、ローカル・キャッシ
ュ識別子が割り当てられているとき有効である。
【0086】ディレクトリ:ディレクトリとは、SES
キャッシュ及び付加ローカル・キャッシュ用の状態情報
及び位置情報の貯蔵場所である。SES中に現れる名前
付きデータ・ブロックはそれぞれ関連するディレクトリ
・エントリを有する。ディレクトリ・エントリは、連想
式(アソシアティブ)アレイとして配列され、名前フィ
ールドの値を使ってアクセスされる。
キャッシュ及び付加ローカル・キャッシュ用の状態情報
及び位置情報の貯蔵場所である。SES中に現れる名前
付きデータ・ブロックはそれぞれ関連するディレクトリ
・エントリを有する。ディレクトリ・エントリは、連想
式(アソシアティブ)アレイとして配列され、名前フィ
ールドの値を使ってアクセスされる。
【0087】ディレクトリ・エントリの諸フィールド
(図3)は、以下のようにまとめられる。 −キャストアウト・クラス −キャストアウト・ロック −変更ビット −データ・ビット −データ域サイズ −ローカル・キャッシュ・レジスタ −名前 −有効ビット −ユーザ・データ・フィールド
(図3)は、以下のようにまとめられる。 −キャストアウト・クラス −キャストアウト・ロック −変更ビット −データ・ビット −データ域サイズ −ローカル・キャッシュ・レジスタ −名前 −有効ビット −ユーザ・データ・フィールド
【0088】キャストアウト・クラス(CCL)(30
9):その名前に対して割り当てられたキャストアウト
・クラスを識別する、2バイトの値。
9):その名前に対して割り当てられたキャストアウト
・クラスを識別する、2バイトの値。
【0089】キャストアウト・ロック(CO)(30
8):データのキャストアウト状態を示す2バイトの
値。キャストアウト・ロックが0のとき、そのデータは
キャストアウトされていない。キャストアウト・ロック
が0でないときは、キャストアウト・ロックの第1バイ
トの値が、そのデータ・ブロックをSESキャッシュか
らDASDにキャストアウトしているローカル・キャッ
シュを識別する。第2バイトの値は、ローカル・システ
ム上のキャストアウト・プロセスを識別する。キャスト
アウト・ロックが0でないときは、データ・ビットは1
でなければならない。
8):データのキャストアウト状態を示す2バイトの
値。キャストアウト・ロックが0のとき、そのデータは
キャストアウトされていない。キャストアウト・ロック
が0でないときは、キャストアウト・ロックの第1バイ
トの値が、そのデータ・ブロックをSESキャッシュか
らDASDにキャストアウトしているローカル・キャッ
シュを識別する。第2バイトの値は、ローカル・システ
ム上のキャストアウト・プロセスを識別する。キャスト
アウト・ロックが0でないときは、データ・ビットは1
でなければならない。
【0090】変更ビット(C)(304):キャストア
ウト・ロックとあいまって、データの変更済み状態を示
す、1ビットの値。変更ビットが1のとき、そのデータ
は変更された状態でキャッシュ記憶されている。変更ビ
ットが0で、データがキャストアウト用にロックされて
いないときは、データはキャッシュ記憶されていない
か、あるいはキャッシュ記憶されているが変更されてい
ない。変更ビットが0で、データがキャストアウト用に
ロックされているときは、そのデータは変更された状態
でキャッシュ記憶されている。データが変更済み状態の
ときは、そのデータの最新バージョンがキャッシュ中に
常駐する。変更ビットが1のとき、データ・ビットも1
でなければならない。
ウト・ロックとあいまって、データの変更済み状態を示
す、1ビットの値。変更ビットが1のとき、そのデータ
は変更された状態でキャッシュ記憶されている。変更ビ
ットが0で、データがキャストアウト用にロックされて
いないときは、データはキャッシュ記憶されていない
か、あるいはキャッシュ記憶されているが変更されてい
ない。変更ビットが0で、データがキャストアウト用に
ロックされているときは、そのデータは変更された状態
でキャッシュ記憶されている。データが変更済み状態の
ときは、そのデータの最新バージョンがキャッシュ中に
常駐する。変更ビットが1のとき、データ・ビットも1
でなければならない。
【0091】データ・ビット(D)(303):データ
がSESキャッシュ中にあるかどうかを示す、1ビット
の値。データ・ビットが1のとき、そのデータはキャッ
シュされている。データ・ビットが0のときは、そのデ
ータはキャッシュされていない。
がSESキャッシュ中にあるかどうかを示す、1ビット
の値。データ・ビットが1のとき、そのデータはキャッ
シュされている。データ・ビットが0のときは、そのデ
ータはキャッシュされていない。
【0092】データ域サイズ(DAS)(307):デ
ータ域のサイズをデータ域要素サイズの整数倍として指
定する、5ビットの符号なし2進整数。ディレクトリ・
エントリが割り当てられているとき、初期値は0であ
り、データ・ビットが1にセットされるまで0である。
ータ域のサイズをデータ域要素サイズの整数倍として指
定する、5ビットの符号なし2進整数。ディレクトリ・
エントリが割り当てられているとき、初期値は0であ
り、データ・ビットが1にセットされるまで0である。
【0093】ローカル・キャッシュ・レジスタ(LC
R)(図4):ローカル・キャッシュ・レジスタとは、
データ・ブロックのローカルにキャッシュされたコピー
の記憶場所に関する情報を含むテーブルである。テーブ
ルの各行が1つのディレクトリ・エントリに対応する。
欄には、ローカル・キャッシュ識別子(402A、40
2B、402C)とローカル・キャッシュ・エントリ番
号に関する有効ビット(401A、401B、401
C)が含まれる。
R)(図4):ローカル・キャッシュ・レジスタとは、
データ・ブロックのローカルにキャッシュされたコピー
の記憶場所に関する情報を含むテーブルである。テーブ
ルの各行が1つのディレクトリ・エントリに対応する。
欄には、ローカル・キャッシュ識別子(402A、40
2B、402C)とローカル・キャッシュ・エントリ番
号に関する有効ビット(401A、401B、401
C)が含まれる。
【0094】図4の例Bは、ローカル・キャッシュ・レ
ジスタ(LCR)構造の一実施例を示すものである。こ
のエントリは、j個のLCIDフィールドを含み、jは
シスプレックス中のSESキャッシュに付加できるロー
カル・キャッシュの最大数である。LCR中の各エント
リは、有効ビット(V)を含む。このVビットは、その
フィールドがあるLCIDを表す場合に、1にセットさ
れる。Vが0の場合は、そのフィールドはどんなLCI
D値も表さない。
ジスタ(LCR)構造の一実施例を示すものである。こ
のエントリは、j個のLCIDフィールドを含み、jは
シスプレックス中のSESキャッシュに付加できるロー
カル・キャッシュの最大数である。LCR中の各エント
リは、有効ビット(V)を含む。このVビットは、その
フィールドがあるLCIDを表す場合に、1にセットさ
れる。Vが0の場合は、そのフィールドはどんなLCI
D値も表さない。
【0095】LCID値は、ローカル・キャッシュをS
ESキャッシュに接続することを求める要求が行われた
とき、オペレーティング・システムのソフトウェアによ
って割り当てられる。LCR中の諸エントリは、LCI
D値の順に並べられる。LCID1に関する有効フィー
ルドが最初のLCRエントリ位置にあり、LCID2に
関する有効フィールドが第2のLCRエントリ位置にあ
り、以下同様にLCIDjに関する有効なLCENフィ
ールドまで続く。
ESキャッシュに接続することを求める要求が行われた
とき、オペレーティング・システムのソフトウェアによ
って割り当てられる。LCR中の諸エントリは、LCI
D値の順に並べられる。LCID1に関する有効フィー
ルドが最初のLCRエントリ位置にあり、LCID2に
関する有効フィールドが第2のLCRエントリ位置にあ
り、以下同様にLCIDjに関する有効なLCENフィ
ールドまで続く。
【0096】名前(N)(301):名前は、名前付き
データ・オブジェクトがキャッシュ中で登録されるとき
にプログラムによって指定される16バイトの値を含
む。
データ・オブジェクトがキャッシュ中で登録されるとき
にプログラムによって指定される16バイトの値を含
む。
【0097】有効ビット(V)(302):ディレクト
リ・エントリの有効状態を示す、1ビットのフィール
ド。可能な値は、無効を表す0と有効を表す1の2つで
ある。ディレクトリ・エントリは無効状態に初期設定さ
れる。無効状態のとき、そのディレクトリ・エントリ
が、ある名前の割当てに使用可能である。有効状態は、
その名前が割当て済みであることを示し、そのディレク
トリ・エントリ中の残りの諸フィールドは有効である。
リ・エントリの有効状態を示す、1ビットのフィール
ド。可能な値は、無効を表す0と有効を表す1の2つで
ある。ディレクトリ・エントリは無効状態に初期設定さ
れる。無効状態のとき、そのディレクトリ・エントリ
が、ある名前の割当てに使用可能である。有効状態は、
その名前が割当て済みであることを示し、そのディレク
トリ・エントリ中の残りの諸フィールドは有効である。
【0098】ユーザ・データ・フィールド(UDF)
(310):ユーザ・データ・フィールドは、データが
SESキャッシュ中で最初に変更されたときそのデータ
に関連付けられる、8バイトの値を含み、データ・テー
ブル・エントリが再使用されるまで維持される。データ
が変更された状態でキャッシュ記憶されているとき、ユ
ーザ・データ・フィールドは有効である。
(310):ユーザ・データ・フィールドは、データが
SESキャッシュ中で最初に変更されたときそのデータ
に関連付けられる、8バイトの値を含み、データ・テー
ブル・エントリが再使用されるまで維持される。データ
が変更された状態でキャッシュ記憶されているとき、ユ
ーザ・データ・フィールドは有効である。
【0099】キャストアウト・クラス制御:キャストア
ウト・クラス制御は以下のものからなる。 −キャストアウト・クラス・カウント(CCC) −キャストアウト・クラス待ち行列(CCQ)
ウト・クラス制御は以下のものからなる。 −キャストアウト・クラス・カウント(CCC) −キャストアウト・クラス待ち行列(CCQ)
【0100】キャストアウト・クラス・カウント(CC
C):あるキャストアウト・クラスに関連する、4バイ
トの符号なし2進整数。その値は、そのキャストアウト
・クラスのディレクトリ・エントリに割り当てられたデ
ータ域要素の数を示す。このカウントは、そのキャスト
アウト・クラスに関して変更信号が処理されたとき、登
録済み時書込みコマンドまたは書込み及び登録コマンド
上で戻され、そのキャストアウト・クラスが指定の範囲
内にあるとき、キャストアウト・クラス情報読取りコマ
ンド上で戻される。
C):あるキャストアウト・クラスに関連する、4バイ
トの符号なし2進整数。その値は、そのキャストアウト
・クラスのディレクトリ・エントリに割り当てられたデ
ータ域要素の数を示す。このカウントは、そのキャスト
アウト・クラスに関して変更信号が処理されたとき、登
録済み時書込みコマンドまたは書込み及び登録コマンド
上で戻され、そのキャストアウト・クラスが指定の範囲
内にあるとき、キャストアウト・クラス情報読取りコマ
ンド上で戻される。
【0101】キャストアウト・クラス待ち行列(CC
Q):キャストアウト・クラス中のディレクトリ・エン
トリを指定するディレクトリの順番に並べた部分集合。
この待ち行列は更新の順に並べられ、最近に更新された
ディレクトリ・エントリが待ち行列の一番下になり、最
も以前に更新されたエントリが待ち行列の一番上に来
る。キャッシュ中の各キャストアウト・クラスごとにキ
ャストアウト・クラス待ち行列が存在する。
Q):キャストアウト・クラス中のディレクトリ・エン
トリを指定するディレクトリの順番に並べた部分集合。
この待ち行列は更新の順に並べられ、最近に更新された
ディレクトリ・エントリが待ち行列の一番下になり、最
も以前に更新されたエントリが待ち行列の一番上に来
る。キャッシュ中の各キャストアウト・クラスごとにキ
ャストアウト・クラス待ち行列が存在する。
【0102】キャストアウト・クラス・カウント及び合
計変更済みカウントは、キャストアウト処理を開始する
ために、周期的に閾値と比較される。これは、下記のど
ちらかの方式で行われる。
計変更済みカウントは、キャストアウト処理を開始する
ために、周期的に閾値と比較される。これは、下記のど
ちらかの方式で行われる。
【0103】−事象駆動キャストアウト:各書込み動作
の後に、変更されたデータ要素のカウントが比較され
る。これによって、書込みコマンドが発生し、定義され
た閾値を超えたとき、指定されたキャストアウト・クラ
スに関するキャストアウト処理がトリガされる。この比
較は、トランザクション処理の一部である。
の後に、変更されたデータ要素のカウントが比較され
る。これによって、書込みコマンドが発生し、定義され
た閾値を超えたとき、指定されたキャストアウト・クラ
スに関するキャストアウト処理がトリガされる。この比
較は、トランザクション処理の一部である。
【0104】−タイマ駆動キャストアウト:時間調整さ
れた間隔で1組のカウンタが要求される。この比較は背
景プログラムの一部であり、どのトランザクション処理
の一部でもない。キャストアウト処理に対する応答性と
カウントを得る際のトランザクション・オーバヘッドの
間の平衡を保たなければならない。
れた間隔で1組のカウンタが要求される。この比較は背
景プログラムの一部であり、どのトランザクション処理
の一部でもない。キャストアウト処理に対する応答性と
カウントを得る際のトランザクション・オーバヘッドの
間の平衡を保たなければならない。
【0105】キャッシュ構造オペランド:SESとDA
SDの間でのデータ移動に関係するキャッシュ構造オペ
ランドについて以下に要約する。
SDの間でのデータ移動に関係するキャッシュ構造オペ
ランドについて以下に要約する。
【0106】変更制御(CHGC):そのデータの書込
みにどのプロセスが使用されるかを選択する、1ビット
の値。可能な2つの値は次の通りである。 0 データを未変更のままで書き込む 1 データを変更された状態で書き込む
みにどのプロセスが使用されるかを選択する、1ビット
の値。可能な2つの値は次の通りである。 0 データを未変更のままで書き込む 1 データを変更された状態で書き込む
【0107】ローカル・キャッシュ識別子(LCI
D):ローカル・キャッシュを識別する、1バイトの符
号なし2進整数。
D):ローカル・キャッシュを識別する、1バイトの符
号なし2進整数。
【0108】名前(N):記憶階層中のデータ・ブロッ
クを識別する16バイトの値。
クを識別する16バイトの値。
【0109】名前マスク(NM):名前の比較に使用さ
れるバイトを決定する2バイトの値。
れるバイトを決定する2バイトの値。
【0110】名前置換制御(NRC):名前置換プロセ
スを制御する、1ビットの値。 0 置換を抑制する 1 名前を置換する
スを制御する、1ビットの値。 0 置換を抑制する 1 名前を置換する
【0111】置換名(RN):ローカル・キャッシュ中
で置換されるデータ・ブロックを識別する、16バイト
の値。
で置換されるデータ・ブロックを識別する、16バイト
の値。
【0112】再開トークン(RT):複数のコマンドに
またがるディレクトリに対する動作の処理を制御する、
8バイトの値。
またがるディレクトリに対する動作の処理を制御する、
8バイトの値。
【0113】キャッシュ構造の諸プロセス:キャストア
ウト・クラス除去プロセスが指定されたディレクトリ・
エントリについて行われる。その処理は以下の通りであ
る。 −ディレクトリ・エントリが、そのディレクトリ・エン
トリ中で指定されたキャストアウト・ クラス待ち行列
から除去される。 −そのディレクトリ・エントリ中で指定されたキャスト
アウト・クラスのキャストアウ ト・クラス・カウント
が減分される。 −そのディレクトリ・エントリを含む記憶クラスの合計
変更済みカウントが減分される。
ウト・クラス除去プロセスが指定されたディレクトリ・
エントリについて行われる。その処理は以下の通りであ
る。 −ディレクトリ・エントリが、そのディレクトリ・エン
トリ中で指定されたキャストアウト・ クラス待ち行列
から除去される。 −そのディレクトリ・エントリ中で指定されたキャスト
アウト・クラスのキャストアウ ト・クラス・カウント
が減分される。 −そのディレクトリ・エントリを含む記憶クラスの合計
変更済みカウントが減分される。
【0114】変更信号の処理:変更信号は、指定された
データ域及びキャストアウト・クラスについて処理され
る。その処理は次の通りである。
データ域及びキャストアウト・クラスについて処理され
る。その処理は次の通りである。
【0115】−変更ビットがディレクトリ・エントリ中
でセットされ、データが変更された状態でキャッシュ記
憶されることを示す。
でセットされ、データが変更された状態でキャッシュ記
憶されることを示す。
【0116】−変更信号がそのディレクトリ・エントリ
に関して処理された最初の変更信号である場合、ユーザ
・データ・フィールドがそのディレクトリ・エントリ中
に記憶される。最初の変更信号が発生するのは、データ
が当初はキャッシュ記憶されていないとき、あるいは未
変更のままでキャッシュ記憶されているときである。デ
ータが最初に変更された状態でキャッシュ記憶されてい
るときは、変更信号は2番目以降の変更信号であり、ユ
ーザ・データ・フィールドは記憶されない。
に関して処理された最初の変更信号である場合、ユーザ
・データ・フィールドがそのディレクトリ・エントリ中
に記憶される。最初の変更信号が発生するのは、データ
が当初はキャッシュ記憶されていないとき、あるいは未
変更のままでキャッシュ記憶されているときである。デ
ータが最初に変更された状態でキャッシュ記憶されてい
るときは、変更信号は2番目以降の変更信号であり、ユ
ーザ・データ・フィールドは記憶されない。
【0117】−キャストアウト・クラスがディレクトリ
・エントリに記憶され、このディレクトリ・エントリが
キャストアウト待ち行列の一番底部に入れられる。これ
は、あるキャストアウト・クラスにおける最初の配置
(placement)であることも、クラス指定の変更を表す
ことも、またそのキャストアウト・クラス内のデータの
更新であることもある。
・エントリに記憶され、このディレクトリ・エントリが
キャストアウト待ち行列の一番底部に入れられる。これ
は、あるキャストアウト・クラスにおける最初の配置
(placement)であることも、クラス指定の変更を表す
ことも、またそのキャストアウト・クラス内のデータの
更新であることもある。
【0118】−キャストアウト・カウントが更新され
る。これがあるキャストアウト・クラスにおける最初の
配置である場合、キャストアウト・クラス・カウントが
1だけ増分される。これがクラスの変更である場合は、
原始クラスのキャストアウト・クラス・カウントが減分
され、目標キャストアウト・クラスのキャストアウト・
クラス・カウントが1だけ増分される。これがキャスト
アウト・クラス内での更新である場合は、キャストアウ
ト・クラス・カウントは更新されない。
る。これがあるキャストアウト・クラスにおける最初の
配置である場合、キャストアウト・クラス・カウントが
1だけ増分される。これがクラスの変更である場合は、
原始クラスのキャストアウト・クラス・カウントが減分
され、目標キャストアウト・クラスのキャストアウト・
クラス・カウントが1だけ増分される。これがキャスト
アウト・クラス内での更新である場合は、キャストアウ
ト・クラス・カウントは更新されない。
【0119】ディレクトリ・エントリ中の変更ビットの
設定は、コマンドの完了前に行わなければならない。
設定は、コマンドの完了前に行わなければならない。
【0120】名前の割当て:名前割当ては、無効のディ
レクトリ・エントリを得、それを無効とマークし、その
名前を初期設定し、当該ディレクトリ・エントリをディ
レクトリに付加することにより、指定された名前に関し
て処理される。
レクトリ・エントリを得、それを無効とマークし、その
名前を初期設定し、当該ディレクトリ・エントリをディ
レクトリに付加することにより、指定された名前に関し
て処理される。
【0121】使用可能な無効のディレクトリ・エントリ
がないときは、有効なディレクトリ・エントリがSES
によって再利用され、その現内容をクリアされ、ディレ
クトリに付加される。未変更の最古の(最も以前に使用
された)ディレクトリ・エントリが再利用される。
がないときは、有効なディレクトリ・エントリがSES
によって再利用され、その現内容をクリアされ、ディレ
クトリに付加される。未変更の最古の(最も以前に使用
された)ディレクトリ・エントリが再利用される。
【0122】名前比較:名前比較は、バイト・レベルの
比較であり、マスク・フィールドによって制御される。
マスク・フィールド中の左から右へ16ビットが、名前
フィールドの左から右へ16バイトと1対1で対応す
る。比較は左から右へ1バイトずつ進められる。マスク
中の対応ビットが1のときは、バイト群が比較される。
そうでない場合は、比較は行われず、次のバイトで動作
が続行される。
比較であり、マスク・フィールドによって制御される。
マスク・フィールド中の左から右へ16ビットが、名前
フィールドの左から右へ16バイトと1対1で対応す
る。比較は左から右へ1バイトずつ進められる。マスク
中の対応ビットが1のときは、バイト群が比較される。
そうでない場合は、比較は行われず、次のバイトで動作
が続行される。
【0123】変更済みデータの書込み:あるデータ要素
が変更済みの状態で記憶されているとき、指定されたキ
ャストアウト・クラスのキャストアウト・クラス・カウ
ントと、SES中の変更済みデータ要素の合計数とが戻
される。
が変更済みの状態で記憶されているとき、指定されたキ
ャストアウト・クラスのキャストアウト・クラス・カウ
ントと、SES中の変更済みデータ要素の合計数とが戻
される。
【0124】キャッシュ構造コマンド:以下のコマンド
をプロセス流れ図に示すように、SESでSESオブジ
ェクトに対して取られる措置に関して記述する。 −キャストアウト・クラス読取り(図5) −キャストアウト・クラス情報読取り(図6) −ディレクトリ読取り(図7) −キャストアウト用読取り(図9) −キャストアウト・ロック解除(図10) −読取り及び登録(図11) −書込み及び登録(図12及び13) −登録済み時書込み(図14)
をプロセス流れ図に示すように、SESでSESオブジ
ェクトに対して取られる措置に関して記述する。 −キャストアウト・クラス読取り(図5) −キャストアウト・クラス情報読取り(図6) −ディレクトリ読取り(図7) −キャストアウト用読取り(図9) −キャストアウト・ロック解除(図10) −読取り及び登録(図11) −書込み及び登録(図12及び13) −登録済み時書込み(図14)
【0125】キャストアウト・クラス読取り:キャスト
アウト・クラス読取りコマンドによって呼び出される諸
プロセスを図5にまとめて示す。キャストアウト・クラ
ス読取りコマンドは、名前ブロック(NB)のリストを
主記憶装置に戻す。名前フィールドがマスク状態の入力
名と一致したとき、ディレクトリ・エントリは処理さ
れ、指定されたキャストアウト・クラス待ち行列に入れ
られる。
アウト・クラス読取りコマンドによって呼び出される諸
プロセスを図5にまとめて示す。キャストアウト・クラ
ス読取りコマンドは、名前ブロック(NB)のリストを
主記憶装置に戻す。名前フィールドがマスク状態の入力
名と一致したとき、ディレクトリ・エントリは処理さ
れ、指定されたキャストアウト・クラス待ち行列に入れ
られる。
【0126】マスクされていないすべてのバイトが等し
い(501)とき、名前比較は成功である。0のマスク
のときは、すべての名前を戻す。
い(501)とき、名前比較は成功である。0のマスク
のときは、すべての名前を戻す。
【0127】キャストアウト・クラスが走査される。名
前ブロックが戻されるリストに追加され、マスク状態の
入力名と一致する、そのキャストアウト・クラスの各名
前ごとに1ずつ、処理済みカウントが増分される(50
2)。
前ブロックが戻されるリストに追加され、マスク状態の
入力名と一致する、そのキャストアウト・クラスの各名
前ごとに1ずつ、処理済みカウントが増分される(50
2)。
【0128】キャストアウト・クラスの走査は、再開ト
ークン要求オペランドによって制御される。トークン値
が0のとき処理が開始し、トークン値が非0のときは、
そのトークンが指定する場所から処理が再開される。デ
ータ・ブロックが満杯になったとき、そのキャストアウ
ト・クラス全体の処理が終わったとき、あるいはモデル
依存のタイムアウトを超えたとき、処理は完了される。
データ・ブロックが満杯のとき(503)は、再開トー
クンが生成され(504)、ディレクトリ要素のリスト
(505)及び処理済みカウントと共に戻される。キャ
ストアウト・クラスの終りに達したとき(506)は、
ディレクトリ要素のリストと処理済みカウントがプログ
ラムに戻される(507)。テーブルの終りに達する前
にモデル依存タイムアウトが発生したとき(508)
は、再開トークンが生成され(509)、ディレクトリ
要素のリスト(510)及び処理済みカウントと共に戻
される。
ークン要求オペランドによって制御される。トークン値
が0のとき処理が開始し、トークン値が非0のときは、
そのトークンが指定する場所から処理が再開される。デ
ータ・ブロックが満杯になったとき、そのキャストアウ
ト・クラス全体の処理が終わったとき、あるいはモデル
依存のタイムアウトを超えたとき、処理は完了される。
データ・ブロックが満杯のとき(503)は、再開トー
クンが生成され(504)、ディレクトリ要素のリスト
(505)及び処理済みカウントと共に戻される。キャ
ストアウト・クラスの終りに達したとき(506)は、
ディレクトリ要素のリストと処理済みカウントがプログ
ラムに戻される(507)。テーブルの終りに達する前
にモデル依存タイムアウトが発生したとき(508)
は、再開トークンが生成され(509)、ディレクトリ
要素のリスト(510)及び処理済みカウントと共に戻
される。
【0129】キャストアウト・クラスの走査は、再開ト
ークンで指定されるディレクトリ・エントリから開始
し、キャストアウト・クラス待ち行列の配列によって指
定される順序で進行する。走査の順序付けは、キャスト
アウト・クラス読取りコマンドの1回ごとの実行につい
て必要であるが、そのコマンドの個々の実行の全体を通
じて必要ではない。連続するキャストアウト・クラス読
取りコマンド間で待ち行列上に移動があると、次の実行
の際に走査開始点の位置が変わる可能性がある。そのた
めにそのキャストアウト・クラス待ち行列の一部の要素
が失われたり、何回も戻されたりする可能性がある。再
開トークンの値が0のときは、走査はそのキャストアウ
ト・クラス待ち行列の一番上から開始する。
ークンで指定されるディレクトリ・エントリから開始
し、キャストアウト・クラス待ち行列の配列によって指
定される順序で進行する。走査の順序付けは、キャスト
アウト・クラス読取りコマンドの1回ごとの実行につい
て必要であるが、そのコマンドの個々の実行の全体を通
じて必要ではない。連続するキャストアウト・クラス読
取りコマンド間で待ち行列上に移動があると、次の実行
の際に走査開始点の位置が変わる可能性がある。そのた
めにそのキャストアウト・クラス待ち行列の一部の要素
が失われたり、何回も戻されたりする可能性がある。再
開トークンの値が0のときは、走査はそのキャストアウ
ト・クラス待ち行列の一番上から開始する。
【0130】キャストアウト・クラスの全体を戻すに
は、キャストアウト・クラス読取りコマンドを何回も発
行することが必要となることがある。プログラムが整合
性のある完全な待ち行列を必要とする場合、プログラム
は、そのキャストアウト・クラスの走査が完了するま
で、そのキャストアウト・クラスに対する書込み活動が
行われないようにしなければならない。
は、キャストアウト・クラス読取りコマンドを何回も発
行することが必要となることがある。プログラムが整合
性のある完全な待ち行列を必要とする場合、プログラム
は、そのキャストアウト・クラスの走査が完了するま
で、そのキャストアウト・クラスに対する書込み活動が
行われないようにしなければならない。
【0131】キャストアウト・クラス情報読取りコマン
ドによって呼び出される諸プロセスを図6に要約して示
す。キャストアウト・クラス情報読取りコマンドは、あ
る範囲のキャストアウト・クラスに関する統計を戻す。
キャストアウト・クラスの指定された範囲での最大部分
集合についてのカウンタと最大部分集合の範囲について
のカウンタが、データ・ブロックに置かれる。これらの
カウンタは、キャストアウト・クラスの順序でデータ・
ブロックに置かれる。最初のカウンタは、範囲の始め
(SR)と指定されたキャストアウト・クラス用のカウ
ンタである。最後に記憶されるカウンタは、要求された
範囲のサイズと範囲の終り(ER)の値とに依存する。
範囲の終りの値が最大キャストアウト・クラスの値より
小さく、範囲全体がそのデータ・ブロックに収まるとき
は、最大部分集合はその範囲全体に等しい(601)。
この場合、要求された範囲の始めの値がSRデータ・オ
ペランド中に置かれ、範囲の終りの値がERデータ・オ
ペランド中に置かれる(602)。
ドによって呼び出される諸プロセスを図6に要約して示
す。キャストアウト・クラス情報読取りコマンドは、あ
る範囲のキャストアウト・クラスに関する統計を戻す。
キャストアウト・クラスの指定された範囲での最大部分
集合についてのカウンタと最大部分集合の範囲について
のカウンタが、データ・ブロックに置かれる。これらの
カウンタは、キャストアウト・クラスの順序でデータ・
ブロックに置かれる。最初のカウンタは、範囲の始め
(SR)と指定されたキャストアウト・クラス用のカウ
ンタである。最後に記憶されるカウンタは、要求された
範囲のサイズと範囲の終り(ER)の値とに依存する。
範囲の終りの値が最大キャストアウト・クラスの値より
小さく、範囲全体がそのデータ・ブロックに収まるとき
は、最大部分集合はその範囲全体に等しい(601)。
この場合、要求された範囲の始めの値がSRデータ・オ
ペランド中に置かれ、範囲の終りの値がERデータ・オ
ペランド中に置かれる(602)。
【0132】データ・ブロックが満杯であり、最後に記
憶されたカウンタのキャストアウト・クラス値が最大キ
ャストアウト・クラス値より小さい(603)ときは、
範囲の始め値がSRデータ・オペランド中に置かれ、最
終キャストアウト・クラス値がERデータ・オペランド
中に置かれ(604)、追加のエントリの存在を示す応
答コードが戻される(605)。
憶されたカウンタのキャストアウト・クラス値が最大キ
ャストアウト・クラス値より小さい(603)ときは、
範囲の始め値がSRデータ・オペランド中に置かれ、最
終キャストアウト・クラス値がERデータ・オペランド
中に置かれ(604)、追加のエントリの存在を示す応
答コードが戻される(605)。
【0133】指定された範囲の終りの値が最大キャスト
アウト・クラス値より大きく、データ・ブロックが満杯
でない(606)ときは、範囲の始め値がSRデータ・
オペランド中に置かれ、最大キャストアウト・クラス値
がERデータ・オペランド中に置かれ(607)、範囲
外れ応答コードが戻される(608)。
アウト・クラス値より大きく、データ・ブロックが満杯
でない(606)ときは、範囲の始め値がSRデータ・
オペランド中に置かれ、最大キャストアウト・クラス値
がERデータ・オペランド中に置かれ(607)、範囲
外れ応答コードが戻される(608)。
【0134】要求された範囲の始めが最大キャストアウ
ト・クラス値より大きい(609)ときは、SRオペラ
ンドとERオペランド中に0の値が格納され(61
0)、エラー応答が戻される(611)。
ト・クラス値より大きい(609)ときは、SRオペラ
ンドとERオペランド中に0の値が格納され(61
0)、エラー応答が戻される(611)。
【0135】ディレクトリ読取り:マスク下ディレクト
リ読取りコマンドによって呼び出されるプロセスを、図
7に要約して示す。このディレクトリ読取りコマンド
は、ディレクトリを走査して、ディレクトリ・エントリ
情報ブロックのリストを戻し、あるいは名前ブロックの
リストを戻す。ディレクトリ・エントリは、名前フィー
ルドがマスク状態の入力名と一致し、変更済み状態が要
求された状態と一致するとき、処理される(701)。
マスクされていないバイトがすべて等しいとき、名前の
比較は成功である(702)。0マスクは、すべての名
前を処理させる。
リ読取りコマンドによって呼び出されるプロセスを、図
7に要約して示す。このディレクトリ読取りコマンド
は、ディレクトリを走査して、ディレクトリ・エントリ
情報ブロックのリストを戻し、あるいは名前ブロックの
リストを戻す。ディレクトリ・エントリは、名前フィー
ルドがマスク状態の入力名と一致し、変更済み状態が要
求された状態と一致するとき、処理される(701)。
マスクされていないバイトがすべて等しいとき、名前の
比較は成功である(702)。0マスクは、すべての名
前を処理させる。
【0136】変更状態選択制御が0のとき、マスク状態
の名前と一致するすべてのディレクトリ・エントリが処
理される。変更状態選択制御が1のときは、変更済みま
たはキャストアウト用にロック済みで、マスク状態の名
前と一致する項目だけが処理される。
の名前と一致するすべてのディレクトリ・エントリが処
理される。変更状態選択制御が1のときは、変更済みま
たはキャストアウト用にロック済みで、マスク状態の名
前と一致する項目だけが処理される。
【0137】ディレクトリが走査される。戻されるディ
レクトリ・ブロックのリスト(NB)にディレクトリ・
エントリ情報ブロックが追加され(703及び70
4)、要求が変更済みデータに関するもので、ディレク
トリ・エントリ中の名前がマスク状態の入力名と一致
し、データの変更済み状況が変更状態選択基準と一致す
るとき、処理済みカウントが1だけ増分される。
レクトリ・ブロックのリスト(NB)にディレクトリ・
エントリ情報ブロックが追加され(703及び70
4)、要求が変更済みデータに関するもので、ディレク
トリ・エントリ中の名前がマスク状態の入力名と一致
し、データの変更済み状況が変更状態選択基準と一致す
るとき、処理済みカウントが1だけ増分される。
【0138】ディレクトリの走査は、再開トークン要求
オペランドによって制御される。トークン値が0のとき
処理が開始され、トークン値が非0のときは、トークン
によって指定される場所から処理が再開される。データ
・ブロックが満杯のとき、ディレクトリ全体が処理済み
のとき、あるいはモデル依存のタイムアウトを越えたと
き、処理は完了する。データ・ブロックが満杯のとき
(705)、再開トークンが生成され(706)、戻さ
れるディレクトリ・ブロックのリスト及び処理済みカウ
ントと共に戻される(707)。ディレクトリの終りに
達したとき(708)、戻されるディレクトリ・ブロッ
クのリスト(709)と処理済みカウントがプログラム
に戻される。ディレクトリの終りに達する前にモデル依
存のタイムアウトが発生したとき(710)、再開トー
クンが生成され、戻されるディレクトリ・ブロックのリ
スト(712)、及び処理済みカウントと共に戻される
(711)。
オペランドによって制御される。トークン値が0のとき
処理が開始され、トークン値が非0のときは、トークン
によって指定される場所から処理が再開される。データ
・ブロックが満杯のとき、ディレクトリ全体が処理済み
のとき、あるいはモデル依存のタイムアウトを越えたと
き、処理は完了する。データ・ブロックが満杯のとき
(705)、再開トークンが生成され(706)、戻さ
れるディレクトリ・ブロックのリスト及び処理済みカウ
ントと共に戻される(707)。ディレクトリの終りに
達したとき(708)、戻されるディレクトリ・ブロッ
クのリスト(709)と処理済みカウントがプログラム
に戻される。ディレクトリの終りに達する前にモデル依
存のタイムアウトが発生したとき(710)、再開トー
クンが生成され、戻されるディレクトリ・ブロックのリ
スト(712)、及び処理済みカウントと共に戻される
(711)。
【0139】ディレクトリ・エントリ情報ブロック(D
EIB)のフォーマットを図8に示す。
EIB)のフォーマットを図8に示す。
【0140】ディレクトリを走査するには、ディレクト
リ読取りコマンドを何回も実行する必要がある。ディレ
クトリは走査プロセス中に変化することがある。走査完
了前に処理しなければならないディレクトリ・エントリ
の組は、ディレクトリ走査処理の開始時に存在し有効な
ままである、有効ディレクトリ・エントリからなる。走
査開始後に追加または削除されるディレクトリ・エント
リは処理を受ける必要がない。ディレクトリ・エントリ
は1回だけ処理されればよい。処理後に更新されたディ
レクトリ・エントリは、再度処理を受ける必要はない。
リ読取りコマンドを何回も実行する必要がある。ディレ
クトリは走査プロセス中に変化することがある。走査完
了前に処理しなければならないディレクトリ・エントリ
の組は、ディレクトリ走査処理の開始時に存在し有効な
ままである、有効ディレクトリ・エントリからなる。走
査開始後に追加または削除されるディレクトリ・エント
リは処理を受ける必要がない。ディレクトリ・エントリ
は1回だけ処理されればよい。処理後に更新されたディ
レクトリ・エントリは、再度処理を受ける必要はない。
【0141】キャストアウト用読取り:キャストアウト
用読取りコマンドによって呼び出されるプロセスを図9
に要約して示す。キャストアウト用読取りコマンドは、
名前付きデータ域の内容をローカル・キャッシュに戻
し、その名前をキャストアウトのためにロックする。
用読取りコマンドによって呼び出されるプロセスを図9
に要約して示す。キャストアウト用読取りコマンドは、
名前付きデータ域の内容をローカル・キャッシュに戻
し、その名前をキャストアウトのためにロックする。
【0142】データがキャッシュ記憶され変更された
が、キャストアウトのためにロックされてはいない(9
01)ときは、LCIDオペランドの値をキャストアウ
ト・ロックの第1バイトに格納し、CPIDオペランド
の値をキャストアウト・ロックの第2バイトに格納し、
変更ビットを0にリセットする(902)ことにより、
そのデータがキャストアウト用にロック済みとマークさ
れる。完了を示すデータ応答コードが戻される(90
3)。データは、メッセージ・コマンド・ブロック中の
データ・アドレスによって指定される主記憶場所に戻さ
れ、付属データが存在するときは、それがメッセージ応
答ブロック中に戻される。記憶クラスが増分される。
が、キャストアウトのためにロックされてはいない(9
01)ときは、LCIDオペランドの値をキャストアウ
ト・ロックの第1バイトに格納し、CPIDオペランド
の値をキャストアウト・ロックの第2バイトに格納し、
変更ビットを0にリセットする(902)ことにより、
そのデータがキャストアウト用にロック済みとマークさ
れる。完了を示すデータ応答コードが戻される(90
3)。データは、メッセージ・コマンド・ブロック中の
データ・アドレスによって指定される主記憶場所に戻さ
れ、付属データが存在するときは、それがメッセージ応
答ブロック中に戻される。記憶クラスが増分される。
【0143】データがキャストアウトのためにロックさ
れている(904)ときは、キャストアウト進行中ロッ
クの値が戻される(905)。
れている(904)ときは、キャストアウト進行中ロッ
クの値が戻される(905)。
【0144】データがキャッシュ記憶されていないと
き、あるいはキャッシュされているが変更されていない
(906)ときは、このコマンドは例外応答コードで完
了する(907)。
き、あるいはキャッシュされているが変更されていない
(906)ときは、このコマンドは例外応答コードで完
了する(907)。
【0145】ディレクトリに名前が割り当てられていな
い(908)ときは、エラー応答コードが戻される。
い(908)ときは、エラー応答コードが戻される。
【0146】キャストアウト・ロック解除:キャストア
ウト・ロック・リスト・ロック解除コマンドによって呼
び出されるプロセスを、図10に要求して示す。キャス
トアウト・ロック解除コマンドは、キャストアウト・ロ
ックを0にリセットし、ユーザ・データ・フィールドを
名前リスト用のディレクトリ・エントリ中に格納する。
ウト・ロック・リスト・ロック解除コマンドによって呼
び出されるプロセスを、図10に要求して示す。キャス
トアウト・ロック解除コマンドは、キャストアウト・ロ
ックを0にリセットし、ユーザ・データ・フィールドを
名前リスト用のディレクトリ・エントリ中に格納する。
【0147】各リスト項目が、SL要求オペランドで指
定される項目から順に処理される。リストの終りに達す
るか、リスト項目の処理でエラーが発生するか、あるい
はモデル依存のタイムアウトを超えるまで、処理は継続
する。各リスト項目の処理は次の通りである。
定される項目から順に処理される。リストの終りに達す
るか、リスト項目の処理でエラーが発生するか、あるい
はモデル依存のタイムアウトを超えるまで、処理は継続
する。各リスト項目の処理は次の通りである。
【0148】その名前を含むディレクトリ・エントリが
見つけ出される。データがキャストアウトのためにロッ
クされており、キャストアウト・ロックの値がローカル
・キャッシュ識別子の値と一致するときは、キャストア
ウト・ロックが0にセットされ(1001)、ユーザ・
データ・フィールドがそのディレクトリ・エントリ中に
格納される(1002)。変更ビットと変更ビット過剰
指示(CBO)が共に0の場合は、そのディレクトリ・
エントリがキャストアウト・クラス待ち行列から除去さ
れる(1003)。変更ビットが0で、変更ビット過剰
指示が1の場合は、変更ビットが1にセットされる(1
004)。そのリスト項目についての処理が完了する。
次のリスト項目が処理される。リストの終りに達した場
合(1005)、そのコマンドは完了し、完了応答コー
ドが戻される(1006)。
見つけ出される。データがキャストアウトのためにロッ
クされており、キャストアウト・ロックの値がローカル
・キャッシュ識別子の値と一致するときは、キャストア
ウト・ロックが0にセットされ(1001)、ユーザ・
データ・フィールドがそのディレクトリ・エントリ中に
格納される(1002)。変更ビットと変更ビット過剰
指示(CBO)が共に0の場合は、そのディレクトリ・
エントリがキャストアウト・クラス待ち行列から除去さ
れる(1003)。変更ビットが0で、変更ビット過剰
指示が1の場合は、変更ビットが1にセットされる(1
004)。そのリスト項目についての処理が完了する。
次のリスト項目が処理される。リストの終りに達した場
合(1005)、そのコマンドは完了し、完了応答コー
ドが戻される(1006)。
【0149】ディレクトリに名前が割り当てられ、キャ
ストアウト・ロックがローカル・キャッシュ識別子の値
と一致しない場合(1007)、そのリスト項目は処理
されない。そのリスト項目の値が現リスト項目応答オペ
ランド中に置かれ(1008)、キャストアウト・ロッ
クの値がキャストアウト・ロック値応答オペランド中に
置かれる(1009)。それ以上の処理は行われず、応
答が戻される。
ストアウト・ロックがローカル・キャッシュ識別子の値
と一致しない場合(1007)、そのリスト項目は処理
されない。そのリスト項目の値が現リスト項目応答オペ
ランド中に置かれ(1008)、キャストアウト・ロッ
クの値がキャストアウト・ロック値応答オペランド中に
置かれる(1009)。それ以上の処理は行われず、応
答が戻される。
【0150】モデル依存のタイムアウトを超えた(10
10)とき、首尾よく処理された最後のリスト項目の値
が現リスト項目応答オペランド中に置かれ(101
1)、タイムアウトを示す応答コードが戻される(10
12)。
10)とき、首尾よく処理された最後のリスト項目の値
が現リスト項目応答オペランド中に置かれ(101
1)、タイムアウトを示す応答コードが戻される(10
12)。
【0151】ディレクトリに名前が割り当てられていな
い(1013)ときは、そのリスト項目は処理されな
い。そのリスト項目の値が現リスト項目応答オペランド
中に置かれる(1014)。それ以上の処理は行われ
ず、応答が戻される(1015)。
い(1013)ときは、そのリスト項目は処理されな
い。そのリスト項目の値が現リスト項目応答オペランド
中に置かれる(1014)。それ以上の処理は行われ
ず、応答が戻される(1015)。
【0152】非ゼロの応答コードが戻されるとき、その
リストは完全に処理済みではない。CLI応答オペラン
ドが、処理が完了した地点を識別する。指定されたリス
ト項目より前のリスト項目はすべて処理されており、指
定されたリスト項目より後のリスト項目はすべて未処理
である。
リストは完全に処理済みではない。CLI応答オペラン
ドが、処理が完了した地点を識別する。指定されたリス
ト項目より前のリスト項目はすべて処理されており、指
定されたリスト項目より後のリスト項目はすべて未処理
である。
【0153】例外応答コードが戻されるときは、そのリ
スト項目の処理中にエラーが発生した。プログラムは、
リストの始めオペランド(SL)の値を現リスト項目
(CLI)の値より1つ大きな値にセットしてこのコマ
ンドを再発行することにより、リスト処理を続行するこ
とができる。
スト項目の処理中にエラーが発生した。プログラムは、
リストの始めオペランド(SL)の値を現リスト項目
(CLI)の値より1つ大きな値にセットしてこのコマ
ンドを再発行することにより、リスト処理を続行するこ
とができる。
【0154】読取り及び登録:図11は、読取り及び登
録コマンドのプロセス流れ図である。読取り及び登録コ
マンドは、名前付きデータ域の内容をローカル・キャッ
シュに戻し、ローカル・キャッシュ・エントリを登録す
る。データがキャッシュされていないときは、登録動作
のみが実行される。読取り及び登録コマンドはまた、そ
の名前が現在割り当てられていないとき、名前をディレ
クトリに割り当てる。
録コマンドのプロセス流れ図である。読取り及び登録コ
マンドは、名前付きデータ域の内容をローカル・キャッ
シュに戻し、ローカル・キャッシュ・エントリを登録す
る。データがキャッシュされていないときは、登録動作
のみが実行される。読取り及び登録コマンドはまた、そ
の名前が現在割り当てられていないとき、名前をディレ
クトリに割り当てる。
【0155】名前置換制御(NRC)要求オペランドが
1のとき(1101)、置換名及びローカル・キャッシ
ュ識別子の各要求オペランドによって指定されるローカ
ル・キャッシュ・エントリが登録解除される(110
2)。名前置換制御が0のときは、登録解除は行われな
い。
1のとき(1101)、置換名及びローカル・キャッシ
ュ識別子の各要求オペランドによって指定されるローカ
ル・キャッシュ・エントリが登録解除される(110
2)。名前置換制御が0のときは、登録解除は行われな
い。
【0156】データがキャッシュされているとき(11
03)、ローカル・キャッシュ・エントリが登録され
(1104)、参照信号がその記憶クラスに関して開始
され(1105)、データが変更ビットと共に戻される
(1106)。
03)、ローカル・キャッシュ・エントリが登録され
(1104)、参照信号がその記憶クラスに関して開始
され(1105)、データが変更ビットと共に戻される
(1106)。
【0157】名前がディレクトリに割り当てられている
が、データはキャッシュされていないとき(110
7)、ローカル・キャッシュ・エントリが登録され(1
108)、参照信号がその記憶クラスに関して開始され
る(1109)。
が、データはキャッシュされていないとき(110
7)、ローカル・キャッシュ・エントリが登録され(1
108)、参照信号がその記憶クラスに関して開始され
る(1109)。
【0158】名前がディレクトリに割り当てられてい
ず、ディレクトリ割当てが抑制されてはいないとき(1
112)、ディレクトリ・エントリ割当て動作が実行さ
れる(1113)。キャッシュが満杯でない場合、ディ
レクトリ・エントリが割り当てられ、ローカル・キャッ
シュ・エントリが登録され(1114)、参照信号がそ
の記憶クラスに関して開始される(1115)。
ず、ディレクトリ割当てが抑制されてはいないとき(1
112)、ディレクトリ・エントリ割当て動作が実行さ
れる(1113)。キャッシュが満杯でない場合、ディ
レクトリ・エントリが割り当てられ、ローカル・キャッ
シュ・エントリが登録され(1114)、参照信号がそ
の記憶クラスに関して開始される(1115)。
【0159】名前がディレクトリ中にリストされてい
ず、割当てが制御されているとき(1111)、そのコ
マンドは完了し、例外応答コードが戻される。
ず、割当てが制御されているとき(1111)、そのコ
マンドは完了し、例外応答コードが戻される。
【0160】書込み及び登録:図12及び13は、書込
み及び登録コマンドのプロセス流れ図である。書込み及
び登録コマンドは、変更制御がデータの変更状態と整合
するとき、データ・ブロックの内容をデータ域に記憶
し、ローカル・キャッシュ・エントリを登録する。
み及び登録コマンドのプロセス流れ図である。書込み及
び登録コマンドは、変更制御がデータの変更状態と整合
するとき、データ・ブロックの内容をデータ域に記憶
し、ローカル・キャッシュ・エントリを登録する。
【0161】書込み及び登録コマンドはまた、ディレク
トリに現在名前が割り当てられないときには、ディレク
トリ・エントリを割り当てる。
トリに現在名前が割り当てられないときには、ディレク
トリ・エントリを割り当てる。
【0162】名前置換制御(NRC)要求オペランドが
1のとき(1201及び1301)、置換名及びローカ
ル・キャッシュ識別子の各要求オペランドによって指定
されるローカル・キャッシュ・エントリが登録解除され
る(1202及び1302)。名前置換制御が0のとき
は、登録解除は行われない。
1のとき(1201及び1301)、置換名及びローカ
ル・キャッシュ識別子の各要求オペランドによって指定
されるローカル・キャッシュ・エントリが登録解除され
る(1202及び1302)。名前置換制御が0のとき
は、登録解除は行われない。
【0163】データがキャッシュ記憶されていないと
き、データ・テーブル・エントリが割り当てられる(1
203、1204、1303、1304)。ディレクト
リに名前が割り当てられることも割り当てられないこと
もある。割り当てられない場合は、名前の割当ても行わ
れる(1205及び1305)。割当てが成功した場
合、変更制御が0のときはデータが未変更のままでSE
Sキャッシュに書き込まれ(1206及び1210)、
変更制御が1のときは変更された状態で書き込まれ(1
306及び1310)、ローカル・キャッシュ・エント
リが登録される(1207、1211、1307、13
11)。
き、データ・テーブル・エントリが割り当てられる(1
203、1204、1303、1304)。ディレクト
リに名前が割り当てられることも割り当てられないこと
もある。割り当てられない場合は、名前の割当ても行わ
れる(1205及び1305)。割当てが成功した場
合、変更制御が0のときはデータが未変更のままでSE
Sキャッシュに書き込まれ(1206及び1210)、
変更制御が1のときは変更された状態で書き込まれ(1
306及び1310)、ローカル・キャッシュ・エント
リが登録される(1207、1211、1307、13
11)。
【0164】データが未変更のままで既にキャッシュ記
憶されているとき(1214)、変更制御が0の場合
は、データが未変更のままで書き込まれ(1215)、
変更制御が1の場合はデータが変更された状態で書き込
まれる(1315)。
憶されているとき(1214)、変更制御が0の場合
は、データが未変更のままで書き込まれ(1215)、
変更制御が1の場合はデータが変更された状態で書き込
まれる(1315)。
【0165】データが変更された状態で既にキャッシュ
記憶され、変更制御が0のとき(1216)、データは
書き込まれず、ローカル・キャッシュ・エントリは登録
されない。変更制御は、データの変更状態と整合しな
い。コマンドが完了し、例外反応コードが戻される。
記憶され、変更制御が0のとき(1216)、データは
書き込まれず、ローカル・キャッシュ・エントリは登録
されない。変更制御は、データの変更状態と整合しな
い。コマンドが完了し、例外反応コードが戻される。
【0166】データが変更された状態でキャッシュ記憶
され、変更制御が1のとき(1315)、データは変更
された状態で書き込まれ、成功応答コードが戻される。
され、変更制御が1のとき(1315)、データは変更
された状態で書き込まれ、成功応答コードが戻される。
【0167】登録時書込み:図14は、登録時書込みコ
マンドのプロセス流れ図である。登録時書込みコマンド
は、その名前がディレクトリ中で割り当てられ、ローカ
ル・キャッシュ・エントリが登録されており、かつ変更
制御がデータの変更状態と整合する場合に、データ・ブ
ロックの内容をデータ域に記憶する。
マンドのプロセス流れ図である。登録時書込みコマンド
は、その名前がディレクトリ中で割り当てられ、ローカ
ル・キャッシュ・エントリが登録されており、かつ変更
制御がデータの変更状態と整合する場合に、データ・ブ
ロックの内容をデータ域に記憶する。
【0168】ローカル・キャッシュ・エントリが登録さ
れ、データがキャッシュされていないとき(1401及
び1402)、データ・テーブル・エントリが割り当て
られる(1403及び1404)。割当てが成功し、変
更制御が0の場合(1405)、データが未変更のまま
で書き込まれる。割当てが成功し、変更制御が1の場合
(1406)、データは変更された状態で書き込まれ
る。
れ、データがキャッシュされていないとき(1401及
び1402)、データ・テーブル・エントリが割り当て
られる(1403及び1404)。割当てが成功し、変
更制御が0の場合(1405)、データが未変更のまま
で書き込まれる。割当てが成功し、変更制御が1の場合
(1406)、データは変更された状態で書き込まれ
る。
【0169】ローカル・キャッシュ・エントリが登録さ
れ、データが未変更のままで既にキャッシュ記憶されて
いるとき(1409)、変更制御が0のときは、データ
が未変更のままで書き込まれ(1410)、変更制御が
1のときは、データが変更された状態で書き込まれる
(1411)。
れ、データが未変更のままで既にキャッシュ記憶されて
いるとき(1409)、変更制御が0のときは、データ
が未変更のままで書き込まれ(1410)、変更制御が
1のときは、データが変更された状態で書き込まれる
(1411)。
【0170】ローカル・キャッシュ・エントリが登録さ
れていないとき(1412及び1413)、コマンドは
完了し、例外応答コードが戻される。
れていないとき(1412及び1413)、コマンドは
完了し、例外応答コードが戻される。
【0171】ローカル・キャッシュ・エントリが登録さ
れ、データが変更された状態で既にキャッシュ記憶さ
れ、変更制御が0のとき(1414)、データは書き込
まれない。変更制御はデータの変更状態と整合しない。
れ、データが変更された状態で既にキャッシュ記憶さ
れ、変更制御が0のとき(1414)、データは書き込
まれない。変更制御はデータの変更状態と整合しない。
【0172】ローカル・キャッシュ・エントリが登録さ
れ、データが変更された状態でキャッシュ記憶され、変
更制御が1のとき(1415)、データは変更された状
態で書き込まれる(1411)。
れ、データが変更された状態でキャッシュ記憶され、変
更制御が1のとき(1415)、データは変更された状
態で書き込まれる(1411)。
【0173】DASDとSESキャッシュの間のデータ
移動の管理:SESキャッシュと、SESキャッシュを
利用するローカル・データ・マネージャと、オペレーテ
ィング・システムのサポートとからなるシステム構造の
概要を図15ないし19に示す。図15には、データ・
ベース・マネージャのバッファ・マネージャによって実
行される処理を要約して示す。シスプレックス中の諸シ
ステム間で共用されるデータ・ベースが最初にアクセス
されるとき、ローカル・バッファ・プールを構築するこ
とができ(1501)、SESキャッシュ構造にサポー
トを与えるオペレーティング・システム・サービスを呼
び出して、バッファ・マネージャにSESキャッシュ構
造へのアクセスを許可することができ(1502)、オ
ペレーティング・システム・サービスを使ってタイムア
ウト間隔を設定することができる(1506)。
移動の管理:SESキャッシュと、SESキャッシュを
利用するローカル・データ・マネージャと、オペレーテ
ィング・システムのサポートとからなるシステム構造の
概要を図15ないし19に示す。図15には、データ・
ベース・マネージャのバッファ・マネージャによって実
行される処理を要約して示す。シスプレックス中の諸シ
ステム間で共用されるデータ・ベースが最初にアクセス
されるとき、ローカル・バッファ・プールを構築するこ
とができ(1501)、SESキャッシュ構造にサポー
トを与えるオペレーティング・システム・サービスを呼
び出して、バッファ・マネージャにSESキャッシュ構
造へのアクセスを許可することができ(1502)、オ
ペレーティング・システム・サービスを使ってタイムア
ウト間隔を設定することができる(1506)。
【0174】SESキャッシュ構造をサポートするオペ
レーティング・システム・サービスは、バッファ・マネ
ージャにSESキャッシュ構造へのアクセスを許可する
ために呼び出される(1502)。これらのサービス
は、まず要求されたSESキャッシュ構造が既に割り振
られているかどうか決定する(1503)。SES構造
が既に割り振られてはいない場合、キャッシュ構造割振
りコマンドを呼び出して、SESキャッシュ構造を作成
させる(1504)。オペレーティング・システム・サ
ービスは、ローカル・キャッシュ識別子(LCID)を
選択し、DEFINE VECTOR(ベクトル定義)
CPU命令を発行することによって、キャッシュ・コヒ
ーレンシ・ビット・ベクトルを作成させる。ローカル・
キャッシュ付加コマンドを発行して、ローカル・キャッ
シュをSESキャッシュと関連付ける(1505)。
レーティング・システム・サービスは、バッファ・マネ
ージャにSESキャッシュ構造へのアクセスを許可する
ために呼び出される(1502)。これらのサービス
は、まず要求されたSESキャッシュ構造が既に割り振
られているかどうか決定する(1503)。SES構造
が既に割り振られてはいない場合、キャッシュ構造割振
りコマンドを呼び出して、SESキャッシュ構造を作成
させる(1504)。オペレーティング・システム・サ
ービスは、ローカル・キャッシュ識別子(LCID)を
選択し、DEFINE VECTOR(ベクトル定義)
CPU命令を発行することによって、キャッシュ・コヒ
ーレンシ・ビット・ベクトルを作成させる。ローカル・
キャッシュ付加コマンドを発行して、ローカル・キャッ
シュをSESキャッシュと関連付ける(1505)。
【0175】メインライン動作中、データ・ベースへの
アクセスは、バッファ・マネージャによってサポートさ
れる。異なる多数のプロトコルに従うことができる。メ
インライン使用の例を図16及び17に示す(1507
の詳細)。 −データをDASDから検索する −データをSESキャッシュに記憶する −データをSESキャッシュから検索する −データをDASDに記憶する
アクセスは、バッファ・マネージャによってサポートさ
れる。異なる多数のプロトコルに従うことができる。メ
インライン使用の例を図16及び17に示す(1507
の詳細)。 −データをDASDから検索する −データをSESキャッシュに記憶する −データをSESキャッシュから検索する −データをDASDに記憶する
【0176】データへのアクセスは、CPC上で実行さ
れ、データ・ベース・マネージャに要求を行うプログラ
ムによって指令される。たとえば、そうしたプログラム
は、エンド・ユーザからの、トランザクション・プログ
ラムを実行させる要求の結果として実行できる。
れ、データ・ベース・マネージャに要求を行うプログラ
ムによって指令される。たとえば、そうしたプログラム
は、エンド・ユーザからの、トランザクション・プログ
ラムを実行させる要求の結果として実行できる。
【0177】データ・ベース・バッファ・マネージャに
要求が行なわれたとき、バッファ・マネージャは、要求
されたデータが既にローカル・バッファ中にあるかどう
か決定する(1601)。データがローカル・バッファ
中にある場合、データの妥当性が検査される(160
2)。ローカル・バッファ中のデータは、データ・ベー
ス・マネージャの他のインスタンスが更新を実行したた
め無効になることもある(図17の1703及び170
5)。ローカル・バッファ中でデータが有効な場合、参
照リスト処理コマンドによってSESデータ要素参照を
更新するために使用されるエントリが名前リスト中で作
成される(1603)。
要求が行なわれたとき、バッファ・マネージャは、要求
されたデータが既にローカル・バッファ中にあるかどう
か決定する(1601)。データがローカル・バッファ
中にある場合、データの妥当性が検査される(160
2)。ローカル・バッファ中のデータは、データ・ベー
ス・マネージャの他のインスタンスが更新を実行したた
め無効になることもある(図17の1703及び170
5)。ローカル・バッファ中でデータが有効な場合、参
照リスト処理コマンドによってSESデータ要素参照を
更新するために使用されるエントリが名前リスト中で作
成される(1603)。
【0178】ローカル・バッファ中で現在データが有効
ではない場合、あるバッファが割り当てられ、妥当性標
識が割り当てられる(1604)。ローカル・バッファ
をSESキャッシュに登録し、データがSESキャッシ
ュに記憶されている場合はデータを検索するため、読取
り及び登録コマンドが発行される(1605)。データ
がSESキャッシュから検索されない(テストは160
6で行われる)場合、データはDASDから読み取られ
る(1608)、読取り要求は、要求されたデータを呼
出し側に戻すことで完了する。
ではない場合、あるバッファが割り当てられ、妥当性標
識が割り当てられる(1604)。ローカル・バッファ
をSESキャッシュに登録し、データがSESキャッシ
ュに記憶されている場合はデータを検索するため、読取
り及び登録コマンドが発行される(1605)。データ
がSESキャッシュから検索されない(テストは160
6で行われる)場合、データはDASDから読み取られ
る(1608)、読取り要求は、要求されたデータを呼
出し側に戻すことで完了する。
【0179】更新要求の場合、バッファ・マネージャは
ローカル・バッファの内容を更新させる(1701)。
次いで、データをSESキャッシュに記憶すべきか否か
決定が行われる(1702)。データをSESキャッシ
ュに記憶すべき場合は、登録済み時書込みコマンドが発
行される(1703)。登録済み時書込みコマンドによ
って実行される処理の一環として、データ・ベース・マ
ネージャの他のインスタンスのローカル・バッファ中の
データ要素の他のコピーがすべて無効にされる。データ
をSESキャッシュに記憶すべきでない場合は、データ
をDASDに書き込むことができる(1704)。デー
タがDASDに書き込まれていたときは、相補コピー無
効化コマンドが発行されて、データ・ベース・マネージ
ャの他のインスタンスのローカル・バッファ中のデータ
要素の他のコピーをすべて無効にする(1705)。
ローカル・バッファの内容を更新させる(1701)。
次いで、データをSESキャッシュに記憶すべきか否か
決定が行われる(1702)。データをSESキャッシ
ュに記憶すべき場合は、登録済み時書込みコマンドが発
行される(1703)。登録済み時書込みコマンドによ
って実行される処理の一環として、データ・ベース・マ
ネージャの他のインスタンスのローカル・バッファ中の
データ要素の他のコピーがすべて無効にされる。データ
をSESキャッシュに記憶すべきでない場合は、データ
をDASDに書き込むことができる(1704)。デー
タがDASDに書き込まれていたときは、相補コピー無
効化コマンドが発行されて、データ・ベース・マネージ
ャの他のインスタンスのローカル・バッファ中のデータ
要素の他のコピーをすべて無効にする(1705)。
【0180】メインライン動作の間、バッファ・マネー
ジャは、SESキャッシュの記憶域の管理にも責任を持
つ(1508、また図18及び19に詳記)。バッファ
・マネージャは、SESキャッシュからDASDへの変
更済みデータ要素の移動の管理にも責任を持つ。初期設
定中に確立されたタイムアウト間隔により、オペレーテ
ィング・システムは、SESキャッシュ域の管理及びS
ESキャッシュ・データのDASDへの移動の管理のた
め、周期的に処理ルーチンに制御権を渡す。
ジャは、SESキャッシュの記憶域の管理にも責任を持
つ(1508、また図18及び19に詳記)。バッファ
・マネージャは、SESキャッシュからDASDへの変
更済みデータ要素の移動の管理にも責任を持つ。初期設
定中に確立されたタイムアウト間隔により、オペレーテ
ィング・システムは、SESキャッシュ域の管理及びS
ESキャッシュ・データのDASDへの移動の管理のた
め、周期的に処理ルーチンに制御権を渡す。
【0181】SESキャッシュ域管理用の1つのプロト
コルの概要を図18に示す。この処理には、SESキャ
ッシュ構造の使用の初期設定中にデータ・ベース・マネ
ージャによって確立される周期的間隔で制御が与えられ
る。各記憶クラスに対して記憶クラス情報読取りコマン
ドが発行される(1801)。各記憶クラスのヒット率
が計算される(1802)。得られたヒット率が各記憶
クラスについて設定された性能目標と比較され、記憶ク
ラス・サイズの調整値が計算される(1803)。割り
振られたSES資源の変更が必要な各記憶クラスについ
て、再利用ベクトル設定コマンドが発行されて、再利用
ベクトルを活動化する(1804)。メインライン動作
の間にローカル・バッファ参照が記憶された(160
3)各記憶クラスについて、参照リスト処理コマンドが
発行される(1805)。
コルの概要を図18に示す。この処理には、SESキャ
ッシュ構造の使用の初期設定中にデータ・ベース・マネ
ージャによって確立される周期的間隔で制御が与えられ
る。各記憶クラスに対して記憶クラス情報読取りコマン
ドが発行される(1801)。各記憶クラスのヒット率
が計算される(1802)。得られたヒット率が各記憶
クラスについて設定された性能目標と比較され、記憶ク
ラス・サイズの調整値が計算される(1803)。割り
振られたSES資源の変更が必要な各記憶クラスについ
て、再利用ベクトル設定コマンドが発行されて、再利用
ベクトルを活動化する(1804)。メインライン動作
の間にローカル・バッファ参照が記憶された(160
3)各記憶クラスについて、参照リスト処理コマンドが
発行される(1805)。
【0182】SESキャッシュからDASDへのデータ
移動管理用の1つのプロトコルの概要を図19に示す。
この処理には、SESキャッシュ構造の使用の初期設定
中にデータ・ベース・マネージャによって確立された周
期的間隔で制御が与えられる。各キャストアウト・クラ
スについてキャストアウト・クラス情報読取りコマンド
が発行され、候補のキャストアウト・クラスが選択され
る(1901)。選択された各キャストアウト・クラス
についてキャストアウト・クラス読取りコマンドが発行
される(1902)。最も以前に更新されたディレクト
リ・エントリのリストが戻される。選択された各ディレ
クトリ・エントリについて、キャストアウト用読取りコ
マンドが発行される(1903)。SESから読み取ら
れたデータをDASDに書き込ませる入出力要求が作成
される(1904)。入出力動作が完了したとき、キャ
ストアウト・ロック解除コマンドが発行される(190
5)。
移動管理用の1つのプロトコルの概要を図19に示す。
この処理には、SESキャッシュ構造の使用の初期設定
中にデータ・ベース・マネージャによって確立された周
期的間隔で制御が与えられる。各キャストアウト・クラ
スについてキャストアウト・クラス情報読取りコマンド
が発行され、候補のキャストアウト・クラスが選択され
る(1901)。選択された各キャストアウト・クラス
についてキャストアウト・クラス読取りコマンドが発行
される(1902)。最も以前に更新されたディレクト
リ・エントリのリストが戻される。選択された各ディレ
クトリ・エントリについて、キャストアウト用読取りコ
マンドが発行される(1903)。SESから読み取ら
れたデータをDASDに書き込ませる入出力要求が作成
される(1904)。入出力動作が完了したとき、キャ
ストアウト・ロック解除コマンドが発行される(190
5)。
【0183】SESキャッシュを使用する全データがも
はやアクセスできなくなったとき、データ・ベース・マ
ネージャはSESキャッシュから切断することができる
(1509)。データ・ベース・マネージャは、すべて
の修正済みデータ要素を、SESキャッシュからDAS
Dに移動するか、それとも修正済みデータ要素をSES
キャッシュに残しておくかを選択することができる。S
ESキャッシュ中に修正済みデータ要素が残っていない
場合、SESキャッシュ構造を割振り解除することがで
き、また将来の使用に備えて割り振られたままにしてお
くこともできる。データ・ベース・マネージャは、SE
Sキャッシュ構造から切断するために、オペレーティン
グ・システム・サービスを呼び出す(1509)。ロー
カル・キャッシュをSESキャッシュから関連解除する
ため、ローカル・キャッシュ切断コマンドが発行され
る。必要なら、オペレーティング・システムはローカル
・キャッシュ識別子(LCID)を再割当てのために使
用可能にする。キャッシュ・コヒーレンシ・ベクトルを
解放するためにDEFINE VECTOR CPU命
令が発行される。オペレーティング・システム・サービ
スは、SESキャッシュ構造を割振り解除すべきかどう
か決定する(1511)。SESキャッシュ構造を割振
り解除すべき場合、キャッシュ構造割振り解除コマンド
が呼び出される(1512)。次いでローカル・バッフ
ァ・プールがデータ・ベース・マネージャによって解放
される(1513)。
はやアクセスできなくなったとき、データ・ベース・マ
ネージャはSESキャッシュから切断することができる
(1509)。データ・ベース・マネージャは、すべて
の修正済みデータ要素を、SESキャッシュからDAS
Dに移動するか、それとも修正済みデータ要素をSES
キャッシュに残しておくかを選択することができる。S
ESキャッシュ中に修正済みデータ要素が残っていない
場合、SESキャッシュ構造を割振り解除することがで
き、また将来の使用に備えて割り振られたままにしてお
くこともできる。データ・ベース・マネージャは、SE
Sキャッシュ構造から切断するために、オペレーティン
グ・システム・サービスを呼び出す(1509)。ロー
カル・キャッシュをSESキャッシュから関連解除する
ため、ローカル・キャッシュ切断コマンドが発行され
る。必要なら、オペレーティング・システムはローカル
・キャッシュ識別子(LCID)を再割当てのために使
用可能にする。キャッシュ・コヒーレンシ・ベクトルを
解放するためにDEFINE VECTOR CPU命
令が発行される。オペレーティング・システム・サービ
スは、SESキャッシュ構造を割振り解除すべきかどう
か決定する(1511)。SESキャッシュ構造を割振
り解除すべき場合、キャッシュ構造割振り解除コマンド
が呼び出される(1512)。次いでローカル・バッフ
ァ・プールがデータ・ベース・マネージャによって解放
される(1513)。
【0184】キャストアウト・クラス割当て:キャスト
アウト・クラスは、データが変更された状態で記憶され
るとき、登録済み時書込みコマンド及び書込み及び登録
コマンドによって、データ要素に割り当てられる。変更
信号処理の一環として次のことが行われる。
アウト・クラスは、データが変更された状態で記憶され
るとき、登録済み時書込みコマンド及び書込み及び登録
コマンドによって、データ要素に割り当てられる。変更
信号処理の一環として次のことが行われる。
【0185】−キャストアウト・クラスがディレクトリ
・エントリ中に記憶され、そのディレクトリ・エントリ
がキャストアウト・クラス待ち行列の一番底部に入れら
れる。これは、キャストアウト・クラスへの最初の配置
(placement)であることも、またクラス指定の変更を
表すことも、あるいはキャストアウト・クラス内でのデ
ータの更新であることもある。
・エントリ中に記憶され、そのディレクトリ・エントリ
がキャストアウト・クラス待ち行列の一番底部に入れら
れる。これは、キャストアウト・クラスへの最初の配置
(placement)であることも、またクラス指定の変更を
表すことも、あるいはキャストアウト・クラス内でのデ
ータの更新であることもある。
【0186】−キャストアウト・クラス・カウントが更
新される。これがキャストアウト・クラスへの最初の配
置である場合は、キャストアウト・クラス・カウントが
1だけ増分される。これがクラスの変更である場合は、
ソース・キャストアウト・クラスのキャストアウト・カ
ウントが減分され、目標キャストアウト・クラスのキャ
ストアウト・クラス・カウントが1だけ増分される。こ
れがキャストアウト・クラス内での更新である場合は、
キャストアウト・クラス・カウントは更新されない。
新される。これがキャストアウト・クラスへの最初の配
置である場合は、キャストアウト・クラス・カウントが
1だけ増分される。これがクラスの変更である場合は、
ソース・キャストアウト・クラスのキャストアウト・カ
ウントが減分され、目標キャストアウト・クラスのキャ
ストアウト・クラス・カウントが1だけ増分される。こ
れがキャストアウト・クラス内での更新である場合は、
キャストアウト・クラス・カウントは更新されない。
【0187】−変更信号がそのディレクトリ・エントリ
に関して処理される最初の変更信号であるとき、ユーザ
・データ・フィールドがディレクトリ・エントリ中に記
憶される。最初の変更信号が発生するのは、データが最
初にキャッシュされていないとき、あるいは未変更のま
までキャッシュされているときである。データが最初に
変更された状態でキャッシュされるときは、その変更信
号は第2以降の変更信号であり、ユーザ・データ・フィ
ールドは記憶されない。
に関して処理される最初の変更信号であるとき、ユーザ
・データ・フィールドがディレクトリ・エントリ中に記
憶される。最初の変更信号が発生するのは、データが最
初にキャッシュされていないとき、あるいは未変更のま
までキャッシュされているときである。データが最初に
変更された状態でキャッシュされるときは、その変更信
号は第2以降の変更信号であり、ユーザ・データ・フィ
ールドは記憶されない。
【0188】キャストアウト・クラスの割当ては、その
データ要素が永続的に常駐するDASDボリュームに基
づいて行われる。SESキャッシュを使用しているデー
タ・マネージャが、キャストアウト・クラスを各DAS
Dボリュームと関連付ける。
データ要素が永続的に常駐するDASDボリュームに基
づいて行われる。SESキャッシュを使用しているデー
タ・マネージャが、キャストアウト・クラスを各DAS
Dボリュームと関連付ける。
【0189】キャストアウトの処理:キャストアウト処
理を開始するために、キャストアウト・クラス・カウン
ト及び合計変更済みカウントが周期的に閾値と比較され
る。これは、下記のどちらかの方法で行われる。
理を開始するために、キャストアウト・クラス・カウン
ト及び合計変更済みカウントが周期的に閾値と比較され
る。これは、下記のどちらかの方法で行われる。
【0190】−事象駆動式キャストアウト:各書込み動
作の後に、登録時書込みコマンド及び書込み及び登録コ
マンド上で戻されるカウントが比較される。これによっ
て、書込みコマンドが発生し、かつ定義された閾値を超
えたとき、指定されたキャストアウト・クラスに関する
キャストアウト処理がトリガされる。この比較は、トラ
ンザクション処理の一部である。
作の後に、登録時書込みコマンド及び書込み及び登録コ
マンド上で戻されるカウントが比較される。これによっ
て、書込みコマンドが発生し、かつ定義された閾値を超
えたとき、指定されたキャストアウト・クラスに関する
キャストアウト処理がトリガされる。この比較は、トラ
ンザクション処理の一部である。
【0191】−タイマ駆動式キャストアウト:時間を調
整された間隔でキャストアウト・クラス情報読取りコマ
ンドを用いて1組のカウンタが要求される。この比較
は、背景プログラムの一部であり、どのトランザクショ
ン処理の一部でもない。キャストアウト処理に対する応
答性カウントと、獲得の際のトランザクション・オーバ
ーヘッドとの間の平衡を維持しなければならない。
整された間隔でキャストアウト・クラス情報読取りコマ
ンドを用いて1組のカウンタが要求される。この比較
は、背景プログラムの一部であり、どのトランザクショ
ン処理の一部でもない。キャストアウト処理に対する応
答性カウントと、獲得の際のトランザクション・オーバ
ーヘッドとの間の平衡を維持しなければならない。
【0192】キャストアウト・プロセスでは、キャスト
アウト・クラス情報読取りコマンドを使ってある範囲の
キャストアウト・クラスについてデータ要素のカウント
を決定することができる。戻されるカウントと、使用す
る管理プロトコルとに基づいて、プログラミングにより
DASDボリュームに関するキャストアウト処理を開始
することができる。変更済みデータ要素を書き込むべき
各DASDボリュームについて、プログラミングにより
キャストアウト・クラス情報読取りコマンドを発行す
る。特定の名前マスクと一致するデータ要素を選択する
と、プログラミングで特定のデータ・セットに関連する
データ要素のみを選択できるようになる。選択されたキ
ャストアウト・クラスと名前マスクに関連するデータ要
素名とユーザ・データ・フィールドが、キャストアウト
・クラス情報読取りコマンドによって戻される名前ブロ
ック中に含まれる。プログラミングにより戻されたデー
タからデータ要素を選択し、SESキャッシュからDA
SDへのデータの移動を開始することができる。
アウト・クラス情報読取りコマンドを使ってある範囲の
キャストアウト・クラスについてデータ要素のカウント
を決定することができる。戻されるカウントと、使用す
る管理プロトコルとに基づいて、プログラミングにより
DASDボリュームに関するキャストアウト処理を開始
することができる。変更済みデータ要素を書き込むべき
各DASDボリュームについて、プログラミングにより
キャストアウト・クラス情報読取りコマンドを発行す
る。特定の名前マスクと一致するデータ要素を選択する
と、プログラミングで特定のデータ・セットに関連する
データ要素のみを選択できるようになる。選択されたキ
ャストアウト・クラスと名前マスクに関連するデータ要
素名とユーザ・データ・フィールドが、キャストアウト
・クラス情報読取りコマンドによって戻される名前ブロ
ック中に含まれる。プログラミングにより戻されたデー
タからデータ要素を選択し、SESキャッシュからDA
SDへのデータの移動を開始することができる。
【0193】キャストアウト・プロセスは、キャストア
ウト用読取りコマンドを使ってSESキャッシュからデ
ータ要素を取り出す。キャストアウト用読取りコマンド
は、単一のプロセスが変更済みデータをDASDに書き
込んでいることを保証するために、キャストアウト・ロ
ック(CO)をセットする。キャストアウト・ロックが
セットされるとき、変更ビットはリセットされる。単一
プロセスが変更済みデータをDASDに書き込んでいる
ことを保証すると、データに対する修正を失わせる恐れ
のある競合状態が防止される。たとえば、 −プロセス1が、DASDに書き込むためあるデータ要
素を取り出す。 −その後、そのデータ要素がSESキャッシュ中で修正
される。 −プロセス2が、DASDに書き込むためそのデータ要
素を取り出す。 −プロセス2が、DASDへのそのデータ要素の書込み
を完了する。 −プロセス1が、DASDへのそのデータ要素の書込み
を完了する。
ウト用読取りコマンドを使ってSESキャッシュからデ
ータ要素を取り出す。キャストアウト用読取りコマンド
は、単一のプロセスが変更済みデータをDASDに書き
込んでいることを保証するために、キャストアウト・ロ
ック(CO)をセットする。キャストアウト・ロックが
セットされるとき、変更ビットはリセットされる。単一
プロセスが変更済みデータをDASDに書き込んでいる
ことを保証すると、データに対する修正を失わせる恐れ
のある競合状態が防止される。たとえば、 −プロセス1が、DASDに書き込むためあるデータ要
素を取り出す。 −その後、そのデータ要素がSESキャッシュ中で修正
される。 −プロセス2が、DASDに書き込むためそのデータ要
素を取り出す。 −プロセス2が、DASDへのそのデータ要素の書込み
を完了する。 −プロセス1が、DASDへのそのデータ要素の書込み
を完了する。
【0194】キャストアウト・ロックがSES中でセッ
トされたデータ要素に対する書込み動作が完了する。こ
の書込み動作によって変更ビットがオンになることがで
きる。
トされたデータ要素に対する書込み動作が完了する。こ
の書込み動作によって変更ビットがオンになることがで
きる。
【0195】キャストアウト・ロック解除コマンドは、
データ要素がDASD上に首尾よく記録されたとき発行
される。キャストアウト・ロック解除コマンドは、キャ
ストアウト・ロックをリセットする。書込み動作によっ
て変更ビットがセットされた場合、変更ビットはキャス
トアウト・ロック解除コマンドの終了時にセットされた
ままである。キャストアウトを実行中のプロセスが失敗
した場合、キャストアウト・ロック解除コマンドは変更
ビットを強制的にセットさせることができる。変更ビッ
トを強制的にセットさせると、プログラミングでデータ
要素が首尾よくDASDに書き込まれたかどうかがわか
らないとき、データ要素の変更済みという性質を保護で
きるようになる。
データ要素がDASD上に首尾よく記録されたとき発行
される。キャストアウト・ロック解除コマンドは、キャ
ストアウト・ロックをリセットする。書込み動作によっ
て変更ビットがセットされた場合、変更ビットはキャス
トアウト・ロック解除コマンドの終了時にセットされた
ままである。キャストアウトを実行中のプロセスが失敗
した場合、キャストアウト・ロック解除コマンドは変更
ビットを強制的にセットさせることができる。変更ビッ
トを強制的にセットさせると、プログラミングでデータ
要素が首尾よくDASDに書き込まれたかどうかがわか
らないとき、データ要素の変更済みという性質を保護で
きるようになる。
【0196】リスト形のキャストアウト・ロック解除コ
マンドは、多数のデータ要素がDASDに書き込まれる
とき、キャストアウト・プロセスを完了させる効率的な
手段をプログラミングに与える。これは、プログラミン
グで単一のDASDボリュームに関する変更済みのデー
タ要素を有効に取り出し、変更済みデータをDASDに
転送するための効率的なチャネル・プログラムを構築す
ることができるようにする、キャストアウト・クラス待
ち行列を有することを補完するプロセスである。
マンドは、多数のデータ要素がDASDに書き込まれる
とき、キャストアウト・プロセスを完了させる効率的な
手段をプログラミングに与える。これは、プログラミン
グで単一のDASDボリュームに関する変更済みのデー
タ要素を有効に取り出し、変更済みデータをDASDに
転送するための効率的なチャネル・プログラムを構築す
ることができるようにする、キャストアウト・クラス待
ち行列を有することを補完するプロセスである。
【0197】変更率の管理:データ・マネージャによる
全般的キャストアウト処理は、変更済みのデータがせい
ぜい約20%となるようにSESキャッシュを管理する
ことができる。プログラムは、SESキャッシュ中の変
更済みデータの割合を監視し、変更済みデータ要素をD
ASDに移動するためのキャストアウト処理を開始す
る。変更済みデータが20%未満の状態を維持するため
に、どのデータ要素をDASDに移動するべきかの選択
は、プログラムで判断する。効率上、多数の物理的ブロ
ックを転送するチャネル・プログラムを書き込ませるの
に十分なデータ要素を含むキャストアウト・クラスを選
択するのが最善である。
全般的キャストアウト処理は、変更済みのデータがせい
ぜい約20%となるようにSESキャッシュを管理する
ことができる。プログラムは、SESキャッシュ中の変
更済みデータの割合を監視し、変更済みデータ要素をD
ASDに移動するためのキャストアウト処理を開始す
る。変更済みデータが20%未満の状態を維持するため
に、どのデータ要素をDASDに移動するべきかの選択
は、プログラムで判断する。効率上、多数の物理的ブロ
ックを転送するチャネル・プログラムを書き込ませるの
に十分なデータ要素を含むキャストアウト・クラスを選
択するのが最善である。
【0198】最古の変更済みデータの管理:データが書
き込まれ変更制御が変更済みデータを示すとき、変更信
号の処理が開始される。変更信号がそのディレクトリ・
エントリに関して処理される最初の変更信号であると
き、ユーザ・データ・フィールドがそのディレクトリ・
エントリ中に記憶される。ユーザ・データ・フィールド
は、データ要素が変更されたが、その変更がまだDAS
Dに移動されていない、最も古い時点を表す時間値を含
有するためにプログラムが使用する。プログラムによっ
て使用されるSESキャッシュ中のすべてのデータ要素
のうち、最も古い時間値をもつデータ要素が、SESキ
ャッシュ障害の場合にデータベースを回復するためにプ
ログラムがログ・データを処理しなければならない、最
も以前の時点を表す。SESキャッシュ障害から回復す
るためにログ・データが処理を必要とする時間間隔が長
いほど、回復にかかる時間も長くなる。したがって、プ
ログラムは、SESキャッシュ中の変更済みデータの量
を管理することに加えて、最も古い変更済みデータがD
ASDに移動されるという利点を有する。SESキャッ
シュ中の最も古い変更済みデータを認識するには、ディ
レクトリ読取りコマンド及びキャストアウト・クラス読
取りコマンドによって戻される名前ブロックを処理す
る。
き込まれ変更制御が変更済みデータを示すとき、変更信
号の処理が開始される。変更信号がそのディレクトリ・
エントリに関して処理される最初の変更信号であると
き、ユーザ・データ・フィールドがそのディレクトリ・
エントリ中に記憶される。ユーザ・データ・フィールド
は、データ要素が変更されたが、その変更がまだDAS
Dに移動されていない、最も古い時点を表す時間値を含
有するためにプログラムが使用する。プログラムによっ
て使用されるSESキャッシュ中のすべてのデータ要素
のうち、最も古い時間値をもつデータ要素が、SESキ
ャッシュ障害の場合にデータベースを回復するためにプ
ログラムがログ・データを処理しなければならない、最
も以前の時点を表す。SESキャッシュ障害から回復す
るためにログ・データが処理を必要とする時間間隔が長
いほど、回復にかかる時間も長くなる。したがって、プ
ログラムは、SESキャッシュ中の変更済みデータの量
を管理することに加えて、最も古い変更済みデータがD
ASDに移動されるという利点を有する。SESキャッ
シュ中の最も古い変更済みデータを認識するには、ディ
レクトリ読取りコマンド及びキャストアウト・クラス読
取りコマンドによって戻される名前ブロックを処理す
る。
【0199】DASDボリュームの管理:SESキャッ
シュ中の変更済みデータ要素の比率あるいは最も古い変
更済みデータのエージ(age)にかかわらず、プログラ
ミングで、特定の事象が発生したとき、データ・セット
の特定のボリュームに関連するデータ要素をDASDに
移動させることを選択することになる。たとえば、最後
のユーザがあるデータベースへのアクセスを停止したと
き、プログラムはそのデータベースに関連するすべての
変更済みデータ要素をDASDに移動させる。データ・
セットまたはボリュームのバックアップを実行すべきと
き、プログラムはそのデータ・セットまたはボリューム
に関連するすべての変更済みデータ要素を移動させる。
シュ中の変更済みデータ要素の比率あるいは最も古い変
更済みデータのエージ(age)にかかわらず、プログラ
ミングで、特定の事象が発生したとき、データ・セット
の特定のボリュームに関連するデータ要素をDASDに
移動させることを選択することになる。たとえば、最後
のユーザがあるデータベースへのアクセスを停止したと
き、プログラムはそのデータベースに関連するすべての
変更済みデータ要素をDASDに移動させる。データ・
セットまたはボリュームのバックアップを実行すべきと
き、プログラムはそのデータ・セットまたはボリューム
に関連するすべての変更済みデータ要素を移動させる。
【0200】DASDとSESキャッシュの間でのデー
タ移動の管理のシナリオ:上記の機構は、システム・ソ
フトウェアによってDASDとSESキャッシュの間で
のデータ移動の管理を実行する基礎を提供する。これら
のプリミティブ・サービスを使ってSESからのデータ
の書込みとキャストアウトの間の非ブロッキング逐次化
プロトコルを実施する技法について次に述べる。これら
のプリミティブ・サービスを使って、データ要素をSE
S中にキャッシュするための非ブロッキング逐次化プロ
トコルを実施する技法は、米国特許出願第860805
号に記載されている。この2つのプロトコルに加えて、
上記のプリミティブ・サービスは、結合システム環境の
全体的性能が最適になるような形でSESからDASD
に移動される1組の修正済みデータ要素を決定するため
の基礎を提供する。
タ移動の管理のシナリオ:上記の機構は、システム・ソ
フトウェアによってDASDとSESキャッシュの間で
のデータ移動の管理を実行する基礎を提供する。これら
のプリミティブ・サービスを使ってSESからのデータ
の書込みとキャストアウトの間の非ブロッキング逐次化
プロトコルを実施する技法について次に述べる。これら
のプリミティブ・サービスを使って、データ要素をSE
S中にキャッシュするための非ブロッキング逐次化プロ
トコルを実施する技法は、米国特許出願第860805
号に記載されている。この2つのプロトコルに加えて、
上記のプリミティブ・サービスは、結合システム環境の
全体的性能が最適になるような形でSESからDASD
に移動される1組の修正済みデータ要素を決定するため
の基礎を提供する。
【0201】キャストアウトのための非ブロッキング逐
次化(serialization):以下の使用法のシナリオで
は、記憶階層中で参照されるデータ要素がページである
と仮定する。その場合、共用キャッシュ(図1の11
1)中にキャッシュされるページは、ソフトウェアで割
り当てられる名前によって識別される。したがって、共
用キャッシュ中でのどんな読取りまたは書込み要求も、
要求の対象であるページの名前を指定することが必要で
ある。このプロトコルを正しく実行するには、データ要
素がページである必要はない。
次化(serialization):以下の使用法のシナリオで
は、記憶階層中で参照されるデータ要素がページである
と仮定する。その場合、共用キャッシュ(図1の11
1)中にキャッシュされるページは、ソフトウェアで割
り当てられる名前によって識別される。したがって、共
用キャッシュ中でのどんな読取りまたは書込み要求も、
要求の対象であるページの名前を指定することが必要で
ある。このプロトコルを正しく実行するには、データ要
素がページである必要はない。
【0202】共用キャッシュ中にデータをキャッシュす
るための非ブロッキング逐次化プロトコルを、図20な
いし26を使って例示する。図20では、図11に記述
した読取り及び登録(RAR)コマンドを用いてページ
を読み取る。図21は、図12及び図13に記述した書
込み及び登録(WAR)コマンドの使用法を示す図であ
る。図14に記述した登録済み時書込み(WWR)コマ
ンドの、共用キャッシュからデータをキャストアウトす
るための非ブロッキング逐次化に関する使用法を図22
に示す。図23は、図9に記述したキャストアウト用読
取りコマンドの使用法を示す図である。図10に記述し
たキャストアウト・ロック解除コマンドの使用法を図2
4に示す。図25は、SESキャッシュの再利用機能を
表すプロセスである。図26には、このプロトコルの流
れを示す。
るための非ブロッキング逐次化プロトコルを、図20な
いし26を使って例示する。図20では、図11に記述
した読取り及び登録(RAR)コマンドを用いてページ
を読み取る。図21は、図12及び図13に記述した書
込み及び登録(WAR)コマンドの使用法を示す図であ
る。図14に記述した登録済み時書込み(WWR)コマ
ンドの、共用キャッシュからデータをキャストアウトす
るための非ブロッキング逐次化に関する使用法を図22
に示す。図23は、図9に記述したキャストアウト用読
取りコマンドの使用法を示す図である。図10に記述し
たキャストアウト・ロック解除コマンドの使用法を図2
4に示す。図25は、SESキャッシュの再利用機能を
表すプロセスである。図26には、このプロトコルの流
れを示す。
【0203】図20、21、22において、ローカル・
キャッシュ・レジスタ中の有効ビットの集合体(図4の
401A、401B、401C)をシステム有効ビット
・ベクトル(SVBV)と称する。この例では、SVB
Vは、キャッシュに付加されたシステム1つ当り1ビッ
トからなると考えることができる。 システム有効ビット キャッシュに付加された1シス
テム当りビット。 ベクトル(SVBV) 1の場合、識別されたシステム
・メモリ中にキャッシュされているページは有効であ
る。0の場合、システムのメモリ中にキャッシュされて
いるページは有効でない。
キャッシュ・レジスタ中の有効ビットの集合体(図4の
401A、401B、401C)をシステム有効ビット
・ベクトル(SVBV)と称する。この例では、SVB
Vは、キャッシュに付加されたシステム1つ当り1ビッ
トからなると考えることができる。 システム有効ビット キャッシュに付加された1シス
テム当りビット。 ベクトル(SVBV) 1の場合、識別されたシステム
・メモリ中にキャッシュされているページは有効であ
る。0の場合、システムのメモリ中にキャッシュされて
いるページは有効でない。
【0204】ローカル・キャッシュ・レジスタ中の有効
ビットの集合体をシステム有効ビット・ベクトルとして
記述することは、下記のプロトコルを記述する上での概
念の単純化にすぎない。好ましい実施例では、システム
有効ビット・ベクトル中の個々のビット・エントリが、
ローカル・キャッシュ・レジスタの有効ビット・フィー
ルドと1対1で対応する。
ビットの集合体をシステム有効ビット・ベクトルとして
記述することは、下記のプロトコルを記述する上での概
念の単純化にすぎない。好ましい実施例では、システム
有効ビット・ベクトル中の個々のビット・エントリが、
ローカル・キャッシュ・レジスタの有効ビット・フィー
ルドと1対1で対応する。
【0205】図20ないし24及び26では、ローカル
・キャッシュ識別子(LCID)を、システム識別子
(SI)と呼んでいる。SIの機能はLCIDの機能と
同じである。下記のプロトコルでは、SIはローカル・
キャッシュ制御中に記憶され、現在ディレクトリ中にあ
るあらゆるエントリ及び結合コマンドの処理の結果その
後に作成されるあらゆる項目のSVBV中に1フィール
ドが設けられる。
・キャッシュ識別子(LCID)を、システム識別子
(SI)と呼んでいる。SIの機能はLCIDの機能と
同じである。下記のプロトコルでは、SIはローカル・
キャッシュ制御中に記憶され、現在ディレクトリ中にあ
るあらゆるエントリ及び結合コマンドの処理の結果その
後に作成されるあらゆる項目のSVBV中に1フィール
ドが設けられる。
【0206】下記のプロトコル記述では、CONNEC
T(接続)コマンドの機能は、ローカル・キャッシュ付
加コマンドによって満たされる。READ PAGE
(ページ読取り)コマンドの機能は、図11に示す読取
り及び登録コマンド(RAR)によって満たされる。W
RITE PAGE(ページ書込み)コマンドは、図1
2及び図13に示す書込み及び登録コマンド(WAR)
によって満たされる。CONDITIONAL WRI
TE(条件付き書込み)コマンドの機能は、図14に示
す登録時書込み(WWR)コマンドによって満たされ
る。
T(接続)コマンドの機能は、ローカル・キャッシュ付
加コマンドによって満たされる。READ PAGE
(ページ読取り)コマンドの機能は、図11に示す読取
り及び登録コマンド(RAR)によって満たされる。W
RITE PAGE(ページ書込み)コマンドは、図1
2及び図13に示す書込み及び登録コマンド(WAR)
によって満たされる。CONDITIONAL WRI
TE(条件付き書込み)コマンドの機能は、図14に示
す登録時書込み(WWR)コマンドによって満たされ
る。
【0207】これらのコマンドは、あるシステムがある
ページの更新バージョンをキャッシュしようと試みてい
る間に、別のシステムがそのページをキャストアウトし
ている可能性を前提として、そのページのデータ保全性
を維持しながら、図1の多重システム・データ共用複合
体中のページをキャストアウトするための非ブロッキン
グ逐次化をサポートする。本発明の実施に際して、所与
のデータ要素(たとえばページ)を対象とするコマンド
が、メモリ(図1の101)中の管理論理機構(図1の
110)によって同じページに関する他のコマンドと逐
次化される。
ページの更新バージョンをキャッシュしようと試みてい
る間に、別のシステムがそのページをキャストアウトし
ている可能性を前提として、そのページのデータ保全性
を維持しながら、図1の多重システム・データ共用複合
体中のページをキャストアウトするための非ブロッキン
グ逐次化をサポートする。本発明の実施に際して、所与
のデータ要素(たとえばページ)を対象とするコマンド
が、メモリ(図1の101)中の管理論理機構(図1の
110)によって同じページに関する他のコマンドと逐
次化される。
【0208】このプロトコルでは、図1のメモリ・シス
テム101は、下記のコマンドをサポートする。
テム101は、下記のコマンドをサポートする。
【0209】図1の多重システム・データ共用複合体中
のデータベース・システムの例のような、NV記憶装置
101に接続されたソフトウェア・システムによって実
行されるCONNECTコマンド。このCONNECT
コマンドに応答して、管理論理機構110は、接続シス
テムの識別をローカル・キャッシュ制御105中に入
れ、ディレクトリ102中に現在あるあらゆる項目及び
その後に作成されるあらゆる項目のSVビット・ベクト
ル中にその接続システム用のフィールドを設ける。
のデータベース・システムの例のような、NV記憶装置
101に接続されたソフトウェア・システムによって実
行されるCONNECTコマンド。このCONNECT
コマンドに応答して、管理論理機構110は、接続シス
テムの識別をローカル・キャッシュ制御105中に入
れ、ディレクトリ102中に現在あるあらゆる項目及び
その後に作成されるあらゆる項目のSVビット・ベクト
ル中にその接続システム用のフィールドを設ける。
【0210】READ PAGE(S,P,Buffe
r Address)コマンド。ただし、Sはコマンド
を発行するシステムを識別し、Pは要求されたページを
識別し、Buffer Addressは、システムの
バッファ中の、ページを配布すべきアドレスを示す。
r Address)コマンド。ただし、Sはコマンド
を発行するシステムを識別し、Pは要求されたページを
識別し、Buffer Addressは、システムの
バッファ中の、ページを配布すべきアドレスを示す。
【0211】WRITE PAGE(S,P,CB=
1,Buffer Address)コマンド。このコ
マンドは、「無条件」WRITEとも称する。WRIT
E PAGEコマンドが発行されるとき、このコマンド
と共に入力されたパラメータは、識別されるページ用の
Cフィールドに対応するCパラメータを含む。書き込ま
れるページの更新済みであるという性質は、変更ビット
を1にセットすることによって示される。
1,Buffer Address)コマンド。このコ
マンドは、「無条件」WRITEとも称する。WRIT
E PAGEコマンドが発行されるとき、このコマンド
と共に入力されたパラメータは、識別されるページ用の
Cフィールドに対応するCパラメータを含む。書き込ま
れるページの更新済みであるという性質は、変更ビット
を1にセットすることによって示される。
【0212】CONDITIONAL WRITE
(S,P,CB=0,Buffer Address)
コマンド。CONDITIONAL WRITEコマン
ドは、条件付き書込みを行うコンピュータ・システム
が、2次記憶域から獲得したページをNV記憶装置に
「キャストアウト」するまたは入れるのに使用される。
C=0は、そのページが未修正であることを示す。
(S,P,CB=0,Buffer Address)
コマンド。CONDITIONAL WRITEコマン
ドは、条件付き書込みを行うコンピュータ・システム
が、2次記憶域から獲得したページをNV記憶装置に
「キャストアウト」するまたは入れるのに使用される。
C=0は、そのページが未修正であることを示す。
【0213】READ FOR CASTOUT(S,
P,Buffer Address)コマンド。このコ
マンドは、ページPに関するキャストアウト処理を開始
する。ページPをキャストアウトするため、システムS
中のDBMSは管理論理機構に、NV記憶装置からのP
をシステムS中のバッファ・アドレスに送るよう要求す
る。次いでシステムはそのページをディスクに書き込
む。ディスク入出力の後、DBMSはUNLOCK−C
ASTOUT ID(キャストアウトIDロック解除)
コマンドを発行する。
P,Buffer Address)コマンド。このコ
マンドは、ページPに関するキャストアウト処理を開始
する。ページPをキャストアウトするため、システムS
中のDBMSは管理論理機構に、NV記憶装置からのP
をシステムS中のバッファ・アドレスに送るよう要求す
る。次いでシステムはそのページをディスクに書き込
む。ディスク入出力の後、DBMSはUNLOCK−C
ASTOUT ID(キャストアウトIDロック解除)
コマンドを発行する。
【0214】UNLOCK−CASTOUT ID
(S,P)コマンド。このコマンドは、ページPが2次
記憶域に首尾良く書き込まれた(キャストアウトされ
た)ことをNV記憶装置に告げる。
(S,P)コマンド。このコマンドは、ページPが2次
記憶域に首尾良く書き込まれた(キャストアウトされ
た)ことをNV記憶装置に告げる。
【0215】ページ読取り:図20に、READ PA
GEコマンドに応答して行われる管理論理機構の処理の
動作流れを示す。最初、管理論理機構110はWAIT
(待機)状態2001にあり、そこから、UNCOND
ITIONAL WRITE、CONDITIONAL
WRITE、またはREAD PAGEの少なくとも
3つのプロセスのうちのどれに出ることもできる。図2
0では、上記の形のREADコマンドを受け取ったと仮
定する。これは、READプロセス・ステップ2002
で示されている。READ PAGEコマンドを提供す
る際、それを発行するコンピュータ・システムは、それ
自体(SI、すなわちi番目のシステム)、要求された
ページ(P)、及び読み取ったページを配布すべきコン
ピュータ・システム中のバッファ・アドレスを識別す
る。管理論理機構110が行う読取りプロセスには、次
の3つのケースが可能である。
GEコマンドに応答して行われる管理論理機構の処理の
動作流れを示す。最初、管理論理機構110はWAIT
(待機)状態2001にあり、そこから、UNCOND
ITIONAL WRITE、CONDITIONAL
WRITE、またはREAD PAGEの少なくとも
3つのプロセスのうちのどれに出ることもできる。図2
0では、上記の形のREADコマンドを受け取ったと仮
定する。これは、READプロセス・ステップ2002
で示されている。READ PAGEコマンドを提供す
る際、それを発行するコンピュータ・システムは、それ
自体(SI、すなわちi番目のシステム)、要求された
ページ(P)、及び読み取ったページを配布すべきコン
ピュータ・システム中のバッファ・アドレスを識別す
る。管理論理機構110が行う読取りプロセスには、次
の3つのケースが可能である。
【0216】識別されたページPに関するエントリがデ
ィレクトリ102中に存在し、そのページのDビットが
1にセットされていて、要求されたページが共用キャッ
シュ103中にあることを示す場合、第1のケースが発
生する。この2つの条件は、それぞれ判断2003及び
2004でテストされる。どちらの判断でも、イエスで
あったとすると、読取りプロセスは、ステップ2005
でそのエントリのSVビット・ベクトル中の識別された
i番目のコンピューティング・システム(SI)に対応
するビットをセットし、ステップ2006でそのデータ
・ページを指定されたバッファ・アドレスに戻し、ステ
ップ2007でキャッシュ・ヒット指示を戻す。
ィレクトリ102中に存在し、そのページのDビットが
1にセットされていて、要求されたページが共用キャッ
シュ103中にあることを示す場合、第1のケースが発
生する。この2つの条件は、それぞれ判断2003及び
2004でテストされる。どちらの判断でも、イエスで
あったとすると、読取りプロセスは、ステップ2005
でそのエントリのSVビット・ベクトル中の識別された
i番目のコンピューティング・システム(SI)に対応
するビットをセットし、ステップ2006でそのデータ
・ページを指定されたバッファ・アドレスに戻し、ステ
ップ2007でキャッシュ・ヒット指示を戻す。
【0217】このケースの意味する所は、既に共用キャ
ッシュ103中にあるページに関して読取り要求が発行
されるときはいつでも、そのページは無条件でキャッシ
ュ・ヒット指示と共に要求側に戻されるということであ
る。要求側に関するSビットは、システムによって処理
されるページPのコピーが最新のものであることを示す
ため、第1状態(1)に条件付けされる。
ッシュ103中にあるページに関して読取り要求が発行
されるときはいつでも、そのページは無条件でキャッシ
ュ・ヒット指示と共に要求側に戻されるということであ
る。要求側に関するSビットは、システムによって処理
されるページPのコピーが最新のものであることを示す
ため、第1状態(1)に条件付けされる。
【0218】第2のケースでは、ディレクトリ102中
にページPに関するエントリが存在するが、そのページ
はまだ共用キャッシュ103中に入れられていないと仮
定する。この場合、ページ読取りステップ2002に続
いて、判断2003でイエスの経路をとり、判断200
4でノーの経路をとる。このとき、要求側システムに関
するSビットが第1状態に(すなわち"1"に)条件付け
られ、キャッシュ・ミスが発行される。この場合、以前
のREAD PAGEコマンドを管理論理機構110が
受け取り、その結果ディレクトリ・エントリが作成され
るが、そのページはまだDASDから取り出して共用キ
ャッシュに入れられてはいない。
にページPに関するエントリが存在するが、そのページ
はまだ共用キャッシュ103中に入れられていないと仮
定する。この場合、ページ読取りステップ2002に続
いて、判断2003でイエスの経路をとり、判断200
4でノーの経路をとる。このとき、要求側システムに関
するSビットが第1状態に(すなわち"1"に)条件付け
られ、キャッシュ・ミスが発行される。この場合、以前
のREAD PAGEコマンドを管理論理機構110が
受け取り、その結果ディレクトリ・エントリが作成され
るが、そのページはまだDASDから取り出して共用キ
ャッシュに入れられてはいない。
【0219】最後のケースでは、ページPに関するディ
レクトリ・エントリが存在せず、管理論理機構110
は、判断2003でノーの経路をとり、ステップ201
0、2011、2012を順に実行する。この点に関連
して、ステップ2010で、管理論理機構は(使用可能
な記憶域があると仮定して)ページPに関するディレク
トリ・エントリを作成し、作成されたエントリに関する
SVビット・ベクトル全体を最初に第2状態(好ましく
は"0")に条件付ける。次いでDビットが0にセットさ
れ、CBが0にセットされ、要求側システムに関するS
ビットが第1状態に条件付けられる。最後に、ステップ
2009でキャッシュ・ミスが発行され、論理機構は待
機状態に入る。
レクトリ・エントリが存在せず、管理論理機構110
は、判断2003でノーの経路をとり、ステップ201
0、2011、2012を順に実行する。この点に関連
して、ステップ2010で、管理論理機構は(使用可能
な記憶域があると仮定して)ページPに関するディレク
トリ・エントリを作成し、作成されたエントリに関する
SVビット・ベクトル全体を最初に第2状態(好ましく
は"0")に条件付ける。次いでDビットが0にセットさ
れ、CBが0にセットされ、要求側システムに関するS
ビットが第1状態に条件付けられる。最後に、ステップ
2009でキャッシュ・ミスが発行され、論理機構は待
機状態に入る。
【0220】この最後のケースでは、システムSIはペ
ージPに関する最初のREAD要求を格納しており、そ
のページが共用キャッシュ103に入れられる前は、後
続のどのREAD要求も、手順ステップ2002、20
03、2004、2008、2009に従うことにな
る。要求されたページがDASDから共用キャッシュ1
03に移動された後は、READ要求はステップ200
2、2003、2004、2005、2006、200
7に従うことになる。
ージPに関する最初のREAD要求を格納しており、そ
のページが共用キャッシュ103に入れられる前は、後
続のどのREAD要求も、手順ステップ2002、20
03、2004、2008、2009に従うことにな
る。要求されたページがDASDから共用キャッシュ1
03に移動された後は、READ要求はステップ200
2、2003、2004、2005、2006、200
7に従うことになる。
【0221】ページ書込み:更新済みページを共用キャ
ッシュ103に書き込むために管理論理機構が使用する
プロセスを図21に示す。ページがREAD PAGE
コマンドによって共用キャッシュ103から検索された
後に更新されることがある。また、ページがDASDか
ら獲得された後、共用キャッシュ103に入れられる前
に変更されることがある。システムSIがページPを獲
得し、そのページを更新し、今そのページを共用キャッ
シュ103に書き込まなければならないと仮定する。シ
ステムSIは、更新済みのページPを書き込むために、
CB=1のWRITEコマンドを発行する。このWRI
TEコマンドに応答して管理論理機構が行う処理を図2
1に示す。
ッシュ103に書き込むために管理論理機構が使用する
プロセスを図21に示す。ページがREAD PAGE
コマンドによって共用キャッシュ103から検索された
後に更新されることがある。また、ページがDASDか
ら獲得された後、共用キャッシュ103に入れられる前
に変更されることがある。システムSIがページPを獲
得し、そのページを更新し、今そのページを共用キャッ
シュ103に書き込まなければならないと仮定する。シ
ステムSIは、更新済みのページPを書き込むために、
CB=1のWRITEコマンドを発行する。このWRI
TEコマンドに応答して管理論理機構が行う処理を図2
1に示す。
【0222】図21において、次の3つのケースがあ
る。第1は、ディレクトリ102中にページPに関する
エントリが存在し、D=1である(そのページが共用キ
ャッシュ103中にある)。第2は、そのページPに関
するエントリは存在するが、そのページはまだどんな形
ででも共用キャッシュ103に入れられていない。第3
は、ディレクトリ中にページPに関するどんなエントリ
も存在しない。
る。第1は、ディレクトリ102中にページPに関する
エントリが存在し、D=1である(そのページが共用キ
ャッシュ103中にある)。第2は、そのページPに関
するエントリは存在するが、そのページはまだどんな形
ででも共用キャッシュ103に入れられていない。第3
は、ディレクトリ中にページPに関するどんなエントリ
も存在しない。
【0223】第1のケースでは、管理論理機構110
(図21)が行う書込みプロセスが、シーケンス210
2、2103、2104を通過し、次いでステップ21
05、2106、2107、2108を実行する。ステ
ップ2105で、ページPに関するディレクトリ・エン
トリ中のCBフィールドが1にセットされる。次にステ
ップ2106で、ページPの既存のバージョンが、WR
ITEコマンドと共に供給されるバッファ・アドレスに
あるデータで重ね書きされる。次いで、そのページのデ
ータ・エントリに関するSVビット・ベクトル中のすべ
てのSビットが、そのWRITEコマンドを発行するシ
ステムに関するSビットを除き、0にセットされる。ス
テップ2107から出ると、管理論理機構はステップ2
108で要求側システムにコマンド受諾標識を戻し、次
いで待機状態2101に入る。
(図21)が行う書込みプロセスが、シーケンス210
2、2103、2104を通過し、次いでステップ21
05、2106、2107、2108を実行する。ステ
ップ2105で、ページPに関するディレクトリ・エン
トリ中のCBフィールドが1にセットされる。次にステ
ップ2106で、ページPの既存のバージョンが、WR
ITEコマンドと共に供給されるバッファ・アドレスに
あるデータで重ね書きされる。次いで、そのページのデ
ータ・エントリに関するSVビット・ベクトル中のすべ
てのSビットが、そのWRITEコマンドを発行するシ
ステムに関するSビットを除き、0にセットされる。ス
テップ2107から出ると、管理論理機構はステップ2
108で要求側システムにコマンド受諾標識を戻し、次
いで待機状態2101に入る。
【0224】ぺージPに関するディレクトリ・エントリ
があるが、そのページが共用キャッシュ中にはない第2
のケースでは、管理論理機構のプロセス110は待機状
態2101からステップ2102と2103を通過し、
判断2104でノーの経路をとり、ステップ2109、
2110、2111、2107、2108を実行する。
ステップ2109で、要求されたページに関するディレ
クトリ・エントリ中の変更ビットが1にセットされる。
ステップ2110で、共用キャッシュ103中にページ
Pに関する空間が割り振られ、システムSIのバッファ
・アドレスから割り振られた空間にデータが移動され、
そのページのキャッシュ・アドレスがそのページのディ
レクトリ・エントリのページ・アドレス・フィールドに
置かれる。次にステップ2111で、ページPのディレ
クトリ・エントリ中でデータ・ビットが1にセットさ
れ、ステップ2107が実行され、それに続いて、管理
論理機構はコマンド受諾標識を戻し、待機状態2101
に入る。
があるが、そのページが共用キャッシュ中にはない第2
のケースでは、管理論理機構のプロセス110は待機状
態2101からステップ2102と2103を通過し、
判断2104でノーの経路をとり、ステップ2109、
2110、2111、2107、2108を実行する。
ステップ2109で、要求されたページに関するディレ
クトリ・エントリ中の変更ビットが1にセットされる。
ステップ2110で、共用キャッシュ103中にページ
Pに関する空間が割り振られ、システムSIのバッファ
・アドレスから割り振られた空間にデータが移動され、
そのページのキャッシュ・アドレスがそのページのディ
レクトリ・エントリのページ・アドレス・フィールドに
置かれる。次にステップ2111で、ページPのディレ
クトリ・エントリ中でデータ・ビットが1にセットさ
れ、ステップ2107が実行され、それに続いて、管理
論理機構はコマンド受諾標識を戻し、待機状態2101
に入る。
【0225】ページPに関するディレクトリ・エントリ
がない最後のケースでは、判断2103でノーの経路を
とり、ステップ2112ないし2116及び2108が
実行され、続いて管理論理機構は待機状態2101に入
る。ステップ2112で、ページPに関するディレクト
リ・エントリが作成され、ステップ2113でそのペー
ジのエントリに関する空間が共用キャッシュ中で割り振
られる。ステップ2114及び2115で、ディレクト
リ・エントリ中の関連する諸ビットが条件付けられる。
ステップ2113で、そのページのSVビット・ベクト
ル中のすべてのビットが0に初期設定され、Dビットが
1にセットされる。次にステップ2115で、要求側シ
ステムに関するSビット(ビットSI)が1に条件付け
られ、変更ビットも1にセットされて、そのページが変
更されており、そのページのアドレスがそのエントリ中
に置かれていることを示す。ステップ2116で、ペー
ジPに関するディレクトリ・エントリがディレクトリに
入れられ、そのページがキャッシュ中の割り振られた位
置に置かれる。次に管理論理機構は受諾標識を戻し、待
機状態に入る。
がない最後のケースでは、判断2103でノーの経路を
とり、ステップ2112ないし2116及び2108が
実行され、続いて管理論理機構は待機状態2101に入
る。ステップ2112で、ページPに関するディレクト
リ・エントリが作成され、ステップ2113でそのペー
ジのエントリに関する空間が共用キャッシュ中で割り振
られる。ステップ2114及び2115で、ディレクト
リ・エントリ中の関連する諸ビットが条件付けられる。
ステップ2113で、そのページのSVビット・ベクト
ル中のすべてのビットが0に初期設定され、Dビットが
1にセットされる。次にステップ2115で、要求側シ
ステムに関するSビット(ビットSI)が1に条件付け
られ、変更ビットも1にセットされて、そのページが変
更されており、そのページのアドレスがそのエントリ中
に置かれていることを示す。ステップ2116で、ペー
ジPに関するディレクトリ・エントリがディレクトリに
入れられ、そのページがキャッシュ中の割り振られた位
置に置かれる。次に管理論理機構は受諾標識を戻し、待
機状態に入る。
【0226】図21の書込みプロセスは、その要求が決
して拒絶されない点で無条件のものである。さらに、ど
のWRITEケースが実行されても、影響を受けるペー
ジに関する変更ビットがセットされ、書込み側コンピュ
ータ・システムに関するビットを除き、影響を受けるペ
ージに関するSVビット・ベクトルのすべてのビットが
ゼロにされる。CONDITIONAL WRITEに
関する下記の説明からわかるように、WRITEの間に
非書込み側コンピュータ・システムに関するSビットが
ゼロにされると、ダウン・レベル・ページが共用キャッ
シュに入らないようになる。
して拒絶されない点で無条件のものである。さらに、ど
のWRITEケースが実行されても、影響を受けるペー
ジに関する変更ビットがセットされ、書込み側コンピュ
ータ・システムに関するビットを除き、影響を受けるペ
ージに関するSVビット・ベクトルのすべてのビットが
ゼロにされる。CONDITIONAL WRITEに
関する下記の説明からわかるように、WRITEの間に
非書込み側コンピュータ・システムに関するSビットが
ゼロにされると、ダウン・レベル・ページが共用キャッ
シュに入らないようになる。
【0227】条件付き書込み:次に管理論理機構110
中で実施されるCONDITIONAL WRITE処
理を理解するために図22を参照する。この処理では、
システムSIがNV記憶装置からキャッシュ・ミスを受
け取っており、次いで2次記憶域からあるページを獲得
したが、それを変更してはいず、それを共用キャッシュ
103中にキャッシュする準備をしている所であると仮
定する。管理論理機構110に送られるパラメータ・セ
ット中で、システムSIは変更ビットを0にセットし
て、コンピュータ・システムが所有するページがそのペ
ージの2次記憶域バージョンと同等であることを示す。
システムSIは、CB=0のCONDITIONAL
WRITEコマンドを発行する。この場合も3つのケー
スがある。
中で実施されるCONDITIONAL WRITE処
理を理解するために図22を参照する。この処理では、
システムSIがNV記憶装置からキャッシュ・ミスを受
け取っており、次いで2次記憶域からあるページを獲得
したが、それを変更してはいず、それを共用キャッシュ
103中にキャッシュする準備をしている所であると仮
定する。管理論理機構110に送られるパラメータ・セ
ット中で、システムSIは変更ビットを0にセットし
て、コンピュータ・システムが所有するページがそのペ
ージの2次記憶域バージョンと同等であることを示す。
システムSIは、CB=0のCONDITIONAL
WRITEコマンドを発行する。この場合も3つのケー
スがある。
【0228】第1のケースでは、そのページに関するデ
ィレクトリ・エントリとそのページ自体とがキャッシュ
中に存在する。ページPに対応するエントリがあるかど
うかディレクトリ102を検査する。そのページがディ
レクトリ中にあると仮定して、ステップ2203からイ
エスの経路をとり、ステップ2204でその項目のデー
タ・ビットを検査して、そのページがキャッシュ中にあ
るかどうか判定する。判断2204でイエスの経路をと
るとすると、そのページがキャッシュ中にあることにな
る。この時点で、システムSIに関するSビットをペー
ジ・エントリのSVビット・ベクトル中で検査して、別
のシステムがそのページを変更したかどうか判定する。
ビットSIが1にセットされている場合、そのページに
対する変更は行われず、判断2205でイエスの経路を
とる。ここで管理論理機構110は、そのページがキャ
ッシュ中にあり、SIによって提出されるページがキャ
ッシュ中のページと同等であり、そのページの重ね書き
が必要とされていないと判断する。したがって、管理論
理機構110は、ステップ2206でCONDITIO
NAL WRITEの受諾を示す適当なコードを戻す。
ただし、システムSIのメモリから共用キャッシュ10
3に転送されるデータはないことに留意されたい。次い
で管理論理機構は待機状態に入る。判断2205でノー
の経路をとる場合、ステップ2211でコマンドが拒絶
され、管理論理機構は待機状態に入る。
ィレクトリ・エントリとそのページ自体とがキャッシュ
中に存在する。ページPに対応するエントリがあるかど
うかディレクトリ102を検査する。そのページがディ
レクトリ中にあると仮定して、ステップ2203からイ
エスの経路をとり、ステップ2204でその項目のデー
タ・ビットを検査して、そのページがキャッシュ中にあ
るかどうか判定する。判断2204でイエスの経路をと
るとすると、そのページがキャッシュ中にあることにな
る。この時点で、システムSIに関するSビットをペー
ジ・エントリのSVビット・ベクトル中で検査して、別
のシステムがそのページを変更したかどうか判定する。
ビットSIが1にセットされている場合、そのページに
対する変更は行われず、判断2205でイエスの経路を
とる。ここで管理論理機構110は、そのページがキャ
ッシュ中にあり、SIによって提出されるページがキャ
ッシュ中のページと同等であり、そのページの重ね書き
が必要とされていないと判断する。したがって、管理論
理機構110は、ステップ2206でCONDITIO
NAL WRITEの受諾を示す適当なコードを戻す。
ただし、システムSIのメモリから共用キャッシュ10
3に転送されるデータはないことに留意されたい。次い
で管理論理機構は待機状態に入る。判断2205でノー
の経路をとる場合、ステップ2211でコマンドが拒絶
され、管理論理機構は待機状態に入る。
【0229】第2のケースでは、ページPに関するディ
レクトリ・エントリが存在し、ステップ2203でイエ
スの経路をとる。ただし、ステップ2204で、管理論
理機構110は、そのページがキャッシュ中にないと判
定し、判断2204でノーの経路をとり、次に判断22
07に進むものと仮定する。判断2207で、ページP
に関するSVビット・ベクトルのSIビットを検査す
る。そのビットが1にセットされている場合、システム
SIは有効ページを所有する。この時点で、判断220
7でイエスの経路をとる。共用キャッシュ中で空間が割
り当てられ、ページ・データが、システムSIのバッフ
ァ・アドレスから割り振られた空間に移動される。ステ
ップ2209で、Dビットが1にセットされ、CBビッ
トが0にセットされる。ステップ2210で、ディレク
トリ・エントリ中でページ・アドレスがセットされ、そ
のエントリがディレクトリ中に置かれる。最後に、管理
論理機構はシステムSIにCONDITIONAL W
RITEの受諾標識を戻し、待機状態に入る。
レクトリ・エントリが存在し、ステップ2203でイエ
スの経路をとる。ただし、ステップ2204で、管理論
理機構110は、そのページがキャッシュ中にないと判
定し、判断2204でノーの経路をとり、次に判断22
07に進むものと仮定する。判断2207で、ページP
に関するSVビット・ベクトルのSIビットを検査す
る。そのビットが1にセットされている場合、システム
SIは有効ページを所有する。この時点で、判断220
7でイエスの経路をとる。共用キャッシュ中で空間が割
り当てられ、ページ・データが、システムSIのバッフ
ァ・アドレスから割り振られた空間に移動される。ステ
ップ2209で、Dビットが1にセットされ、CBビッ
トが0にセットされる。ステップ2210で、ディレク
トリ・エントリ中でページ・アドレスがセットされ、そ
のエントリがディレクトリ中に置かれる。最後に、管理
論理機構はシステムSIにCONDITIONAL W
RITEの受諾標識を戻し、待機状態に入る。
【0230】このケースで、判断2207の結果がノー
であると仮定する。このとき、システムSIは有効ペー
ジを所有しておらず、ステップ2211で条件付き書込
み処理が終了し、管理論理機構110はCONDITI
ONAL WRITEコマンドの拒絶をシステムSIに
戻し、次いで待機状態2201に入る。
であると仮定する。このとき、システムSIは有効ペー
ジを所有しておらず、ステップ2211で条件付き書込
み処理が終了し、管理論理機構110はCONDITI
ONAL WRITEコマンドの拒絶をシステムSIに
戻し、次いで待機状態2201に入る。
【0231】最後に、管理論理機構が、受け取ったCO
NDITIONAL WRITEコマンドに応答して、
ディレクトリ102中にページPに関するエントリが作
成されていないと判定した場合、判断2203でノーの
経路をとり、コマンド処理を終了し、ステップ2211
でこのコマンドが拒絶され、次いで管理論理機構は待機
状態2201に入る。
NDITIONAL WRITEコマンドに応答して、
ディレクトリ102中にページPに関するエントリが作
成されていないと判定した場合、判断2203でノーの
経路をとり、コマンド処理を終了し、ステップ2211
でこのコマンドが拒絶され、次いで管理論理機構は待機
状態2201に入る。
【0232】これらのコマンドを使用する場合、SVビ
ット・ベクトル及び変更ビット・フィールドが共用キャ
ッシュ103へのページのキャストインを有効に逐次化
し、ページがキャストインされて変更された後、2次記
憶域から獲得されたページの後のダウン・レベル・バー
ジョンが、共用キャッシュ中のページの更新済みバージ
ョンを重ね書きしないように保証することは明白であ
る。この保証は、2次記憶域から得られたページを共用
キャッシュ中に移動させるための非ブロッキング逐次化
プロトコルによって進められている。このプロトコルが
うまく働くのは、ディレクトリ・エントリまたはデータ
がないためにコマンドがキャッシュ・ミスとなる場合で
も、NV記憶装置が、最初に発行されたREAD PA
GEコマンドで(SVビット・ベクトル中の)そのペー
ジのキャッシュ動作の追跡を開始するからである。別の
システムによる無条件WRITEコマンドは、ページP
に関する変更ビットをセットし、ページのSVビット・
ベクトル中の書込み側システム以外のすべてのシステム
のSビットをリセットする。後続のCONDITION
AL WRITEコマンドの処理は、a)SVビット・
ベクトル中のシステムのSビットを書き込むこと、また
はb)そのページに関するディレクトリ・エントリが存
在しないことに基づいて行われる。NV記憶装置は、ど
ちらの場合もCONDITIONAL WRITEコマ
ンドを拒絶する。
ット・ベクトル及び変更ビット・フィールドが共用キャ
ッシュ103へのページのキャストインを有効に逐次化
し、ページがキャストインされて変更された後、2次記
憶域から獲得されたページの後のダウン・レベル・バー
ジョンが、共用キャッシュ中のページの更新済みバージ
ョンを重ね書きしないように保証することは明白であ
る。この保証は、2次記憶域から得られたページを共用
キャッシュ中に移動させるための非ブロッキング逐次化
プロトコルによって進められている。このプロトコルが
うまく働くのは、ディレクトリ・エントリまたはデータ
がないためにコマンドがキャッシュ・ミスとなる場合で
も、NV記憶装置が、最初に発行されたREAD PA
GEコマンドで(SVビット・ベクトル中の)そのペー
ジのキャッシュ動作の追跡を開始するからである。別の
システムによる無条件WRITEコマンドは、ページP
に関する変更ビットをセットし、ページのSVビット・
ベクトル中の書込み側システム以外のすべてのシステム
のSビットをリセットする。後続のCONDITION
AL WRITEコマンドの処理は、a)SVビット・
ベクトル中のシステムのSビットを書き込むこと、また
はb)そのページに関するディレクトリ・エントリが存
在しないことに基づいて行われる。NV記憶装置は、ど
ちらの場合もCONDITIONAL WRITEコマ
ンドを拒絶する。
【0233】更新済みページがキャッシュ103中に書
き込まれた後、そのページのキャストアウトされるバー
ジョンが、共用キャッシュ中のそのページのより新しい
バージョンの削除を引き起こさないようにするにはどう
すべきかという問題が残っている。本発明は、あるペー
ジの以前のバージョンが2次記憶域にキャストアウトさ
れていないときに、図1の多重システム・データ共用複
合体中でのキャストアウト動作が共用キャッシュ210
3からあるページの更新済みバージョンを削除しないこ
とを保証するプロトコル中で、READ FOR CA
STOUT(キャストアウト用読取り)コマンド及びU
NLOCK CASTOUT LOCK(キャストアウ
ト・ロック解除)コマンドを利用する。この保証は、キ
ャストアウトの発生中にそのページが更新される可能性
を前にしても有効である。
き込まれた後、そのページのキャストアウトされるバー
ジョンが、共用キャッシュ中のそのページのより新しい
バージョンの削除を引き起こさないようにするにはどう
すべきかという問題が残っている。本発明は、あるペー
ジの以前のバージョンが2次記憶域にキャストアウトさ
れていないときに、図1の多重システム・データ共用複
合体中でのキャストアウト動作が共用キャッシュ210
3からあるページの更新済みバージョンを削除しないこ
とを保証するプロトコル中で、READ FOR CA
STOUT(キャストアウト用読取り)コマンド及びU
NLOCK CASTOUT LOCK(キャストアウ
ト・ロック解除)コマンドを利用する。この保証は、キ
ャストアウトの発生中にそのページが更新される可能性
を前にしても有効である。
【0234】キャストアウト用読取り:READ FO
R CASTOUTコマンド中でのコマンド処理を図2
3に示す。最初に、管理論理機構110は待機状態23
01にあり、ページPに関するシステムSIからのRE
AD FOR CASTOUTコマンドの受取りに応答
してそこから遷移する。コマンドの受取りに応答して、
管理論理機構は、ページPに関するディレクトリ・エン
トリのCOフィールドを検査する。COフィールドが空
(値0で示されることが好ましい)の場合、管理論理機
構は判断2303でイエスの経路をとり、ステップ23
04でページPに関するディレクトリ・エントリ中のC
Bフィールドを0にセットし、ステップ2305で、要
求側システムの識別をそのエントリのCOフィールドに
入れる。次にステップ2306で管理論理機構は、共用
キャッシュ103中にあるページPのコピーをコマンド
・パラメータ・セット中で指定されたバッファ・アドレ
スに戻し、2301で待機状態に入る。この時点で、シ
ステムSI中のDBMSは、そのバッファ中にあるペー
ジPのそのバージョンを2次記憶域に書き込むプロセス
を開始する。
R CASTOUTコマンド中でのコマンド処理を図2
3に示す。最初に、管理論理機構110は待機状態23
01にあり、ページPに関するシステムSIからのRE
AD FOR CASTOUTコマンドの受取りに応答
してそこから遷移する。コマンドの受取りに応答して、
管理論理機構は、ページPに関するディレクトリ・エン
トリのCOフィールドを検査する。COフィールドが空
(値0で示されることが好ましい)の場合、管理論理機
構は判断2303でイエスの経路をとり、ステップ23
04でページPに関するディレクトリ・エントリ中のC
Bフィールドを0にセットし、ステップ2305で、要
求側システムの識別をそのエントリのCOフィールドに
入れる。次にステップ2306で管理論理機構は、共用
キャッシュ103中にあるページPのコピーをコマンド
・パラメータ・セット中で指定されたバッファ・アドレ
スに戻し、2301で待機状態に入る。この時点で、シ
ステムSI中のDBMSは、そのバッファ中にあるペー
ジPのそのバージョンを2次記憶域に書き込むプロセス
を開始する。
【0235】判断2303でノーの経路をとると、別の
システムがキャストアウト動作を行っている可能性があ
り、その場合COフィールドの他は非0となり、判断2
303でノーの経路をとることになる。COフィールド
が非0である場合、システムがキャストアウト動作を行
っており、管理論理機構110はステップ2307でそ
のコマンドを拒絶し、待機状態2301に戻る。
システムがキャストアウト動作を行っている可能性があ
り、その場合COフィールドの他は非0となり、判断2
303でノーの経路をとることになる。COフィールド
が非0である場合、システムがキャストアウト動作を行
っており、管理論理機構110はステップ2307でそ
のコマンドを拒絶し、待機状態2301に戻る。
【0236】キャストアウト・ロック解除:図24は、
UNLOCK CASTOUT LOCKコマンドに関
する管理論理機構の処理を示す。最初、管理論理機構1
10は待機状態2401にある。ステップ2402でU
NLOCK CASTOUT LOCKコマンド(UN
LOCK CO)を受け取ると、管理論理機構はページ
PのCOフィールド中のエントリを、そのコマンドを発
行するシステムの識別であるSIと比較する。それらの
値が等しいと、要求側システムが、READ FOR
CASTOUTコマンドによってキャストアウト・プロ
セスを開始したシステムであることを示す。それらの値
が等しい場合、判断2403でイエスの経路をとり、ス
テップ2404でCOフィールドが0にセットされ、管
理論理機構は待機状態2401に入る。CO値とシステ
ムID値が等しくなくてソフトウェア・エラーの可能性
があると認めたときは、判断2403でノーの経路をと
って、ステップ2405でコマンドが拒絶され、再度待
機状態2401に入る。
UNLOCK CASTOUT LOCKコマンドに関
する管理論理機構の処理を示す。最初、管理論理機構1
10は待機状態2401にある。ステップ2402でU
NLOCK CASTOUT LOCKコマンド(UN
LOCK CO)を受け取ると、管理論理機構はページ
PのCOフィールド中のエントリを、そのコマンドを発
行するシステムの識別であるSIと比較する。それらの
値が等しいと、要求側システムが、READ FOR
CASTOUTコマンドによってキャストアウト・プロ
セスを開始したシステムであることを示す。それらの値
が等しい場合、判断2403でイエスの経路をとり、ス
テップ2404でCOフィールドが0にセットされ、管
理論理機構は待機状態2401に入る。CO値とシステ
ムID値が等しくなくてソフトウェア・エラーの可能性
があると認めたときは、判断2403でノーの経路をと
って、ステップ2405でコマンドが拒絶され、再度待
機状態2401に入る。
【0237】ページ削除:図25は、図23及び24に
示したコマンドを使ってキャストアウトされたページを
削除するための処理を示す。相対的に言うと、「削除」
は、あるディレクトリ・エントリの除去及びディレクト
リが指すキャッシュ空間の専用化を意味する。本発明者
等は、管理論理機構110の内部にある適当な任意のD
ELETEプロセスを使用して、ページPを保持するキ
ャッシュ空間を専用化し、それに関連するディレクトリ
・エントリをディレクトリから除去することを企図して
いる。必然的に、削除プロセスは、READ FOR
CASTOUT/UNLOCKCASTOUT LOC
Kシーケンスの完了に依存することになり、それに続い
てキャストアウト・ページPが削除されることになる。
図25は、キャストアウト・プロセスが、そのプロセス
の間にWRITEコマンドによって更新されたページを
どのようにして削除されないようにするかを示す。図2
5では、削除が必ずキャストアウトの直後に行われると
は仮定していない。
示したコマンドを使ってキャストアウトされたページを
削除するための処理を示す。相対的に言うと、「削除」
は、あるディレクトリ・エントリの除去及びディレクト
リが指すキャッシュ空間の専用化を意味する。本発明者
等は、管理論理機構110の内部にある適当な任意のD
ELETEプロセスを使用して、ページPを保持するキ
ャッシュ空間を専用化し、それに関連するディレクトリ
・エントリをディレクトリから除去することを企図して
いる。必然的に、削除プロセスは、READ FOR
CASTOUT/UNLOCKCASTOUT LOC
Kシーケンスの完了に依存することになり、それに続い
てキャストアウト・ページPが削除されることになる。
図25は、キャストアウト・プロセスが、そのプロセス
の間にWRITEコマンドによって更新されたページを
どのようにして削除されないようにするかを示す。図2
5では、削除が必ずキャストアウトの直後に行われると
は仮定していない。
【0238】図25において、ディレクトリ・エントリ
を作成すべきであるが使用可能な自由エントリがないと
きに、共用キャッシュ103からページPを削除するた
めに、管理論理装置110の内部でDELETEプロセ
スが呼び出される。これがステップ2502である。削
除処理は、まずページPに関するディレクトリ・エント
リのCBフィールドを検査し、次いでそのエントリのC
Oフィールドを検査する。これが判断2503及び25
04である。判断2503では、変更ビットが1にセッ
トされている場合、ページPの共用キャッシュ中のバー
ジョンと2次記憶域中のそのバージョンが一致しないと
の指摘が引き出される。この場合、共用キャッシュ・バ
ージョンを2次記憶域に書き込むためのキャストアウト
処理を開始しなければならない。この場合、判断250
3でノーの経路をとる。判断2504で、READ F
OR CASTOUTコマンドの実行によってキャスト
アウト・プロセスが開始したが、後続のUNLOCK
CASTOUT LOCKの実行によってそのプロセス
が完了してはいない可能性がある。この場合、COフィ
ールドは非0であり、判断2504でノーの経路をとる
ことによって削除プロセスが終了することになる。判断
2503及び2504からのノーの経路はステップ25
05で合流し、そこではエントリが削除されないことに
なる。判断2503及び2504でそれぞれイエスの経
路をとると、共用キャッシュ・バージョンと2次記憶域
バージョンの一致、及びキャストアウト・プロセスの完
了という条件が満たされ、ステップ2506でページP
に関するディレクトリ・エントリがディレクトリ102
から削除されることになる。この時点で、適当なキャッ
シュ管理方針を呼び出して、ページPに割り振られたキ
ャッシュ空間をスチールすることができるはずである。
を作成すべきであるが使用可能な自由エントリがないと
きに、共用キャッシュ103からページPを削除するた
めに、管理論理装置110の内部でDELETEプロセ
スが呼び出される。これがステップ2502である。削
除処理は、まずページPに関するディレクトリ・エント
リのCBフィールドを検査し、次いでそのエントリのC
Oフィールドを検査する。これが判断2503及び25
04である。判断2503では、変更ビットが1にセッ
トされている場合、ページPの共用キャッシュ中のバー
ジョンと2次記憶域中のそのバージョンが一致しないと
の指摘が引き出される。この場合、共用キャッシュ・バ
ージョンを2次記憶域に書き込むためのキャストアウト
処理を開始しなければならない。この場合、判断250
3でノーの経路をとる。判断2504で、READ F
OR CASTOUTコマンドの実行によってキャスト
アウト・プロセスが開始したが、後続のUNLOCK
CASTOUT LOCKの実行によってそのプロセス
が完了してはいない可能性がある。この場合、COフィ
ールドは非0であり、判断2504でノーの経路をとる
ことによって削除プロセスが終了することになる。判断
2503及び2504からのノーの経路はステップ25
05で合流し、そこではエントリが削除されないことに
なる。判断2503及び2504でそれぞれイエスの経
路をとると、共用キャッシュ・バージョンと2次記憶域
バージョンの一致、及びキャストアウト・プロセスの完
了という条件が満たされ、ステップ2506でページP
に関するディレクトリ・エントリがディレクトリ102
から削除されることになる。この時点で、適当なキャッ
シュ管理方針を呼び出して、ページPに割り振られたキ
ャッシュ空間をスチールすることができるはずである。
【0239】非ブロッキング・キャストアウト・プロセ
スの流れ:図26に、READ FOR CASTOU
T(RFC)コマンドとUNLOCK CASTOUT
LOCK(UNLOCK)コマンドを使用するキャス
トアウト・プロセスの動作を示す。ページPの共用キャ
ッシュのバージョンと2次記憶域のバージョンの一致の
保証は、この動作中でRFCコマンドとUNLOCKコ
マンドの間で実行されるWRITEコマンドによって示
される。この動作を、ページPに関するディレクトリ・
エントリの表現に関して例示する。この表現では、その
エントリのページ識別P、変更ビットCB、及びCOフ
ィールドのみを示す。ページPに関するディレクトリ・
エントリは、参照番号2601で示す。さらに、時間は
TIMEのマークを付けた矢印に沿って垂直方向に展開
する。
スの流れ:図26に、READ FOR CASTOU
T(RFC)コマンドとUNLOCK CASTOUT
LOCK(UNLOCK)コマンドを使用するキャス
トアウト・プロセスの動作を示す。ページPの共用キャ
ッシュのバージョンと2次記憶域のバージョンの一致の
保証は、この動作中でRFCコマンドとUNLOCKコ
マンドの間で実行されるWRITEコマンドによって示
される。この動作を、ページPに関するディレクトリ・
エントリの表現に関して例示する。この表現では、その
エントリのページ識別P、変更ビットCB、及びCOフ
ィールドのみを示す。ページPに関するディレクトリ・
エントリは、参照番号2601で示す。さらに、時間は
TIMEのマークを付けた矢印に沿って垂直方向に展開
する。
【0240】図26では、システムS1が、READ
FOR CASTOUTコマンド2602を発行するこ
とによってキャストアウト・プロセスを開始すると仮定
する。これによって、図23に示したRFCプロセスが
開始する。コマンドの処理に際して、NV記憶装置管理
論理機構は変更ビットを0にセットし、システム1の識
別(S1)をページPのディレクトリ・エントリのCO
フィールドに入れる。管理論理機構は共用キャッシュか
らのページPのコピーをシステムS1のバッファに戻
す。次いでシステムS1は2605で、ページPのコピ
ーを2次記憶域に入れるためのWRITE TO DI
SK I/Oプロセスを開始する。その間に、RFCプ
ロセス完了後、WRITE TO DISKプロセスの
完了前に、システムS2がWRITEコマンド2606
を実行する。システムS2は、ページPのディレクトリ
・エントリのCB値が1であることを示し、図21に従
って管理論理機構が行うWRITEプロセス2607の
間に、エントリ2601のCBフィールドがこの値に変
更される。この時点で、2次記憶域に書き込まれつつあ
るページPの更新済みバージョンが共用キャッシュ中に
存在し、そのバージョンとシステムS1によってキャス
トアウトされるバージョンとの不一致が生じる。
FOR CASTOUTコマンド2602を発行するこ
とによってキャストアウト・プロセスを開始すると仮定
する。これによって、図23に示したRFCプロセスが
開始する。コマンドの処理に際して、NV記憶装置管理
論理機構は変更ビットを0にセットし、システム1の識
別(S1)をページPのディレクトリ・エントリのCO
フィールドに入れる。管理論理機構は共用キャッシュか
らのページPのコピーをシステムS1のバッファに戻
す。次いでシステムS1は2605で、ページPのコピ
ーを2次記憶域に入れるためのWRITE TO DI
SK I/Oプロセスを開始する。その間に、RFCプ
ロセス完了後、WRITE TO DISKプロセスの
完了前に、システムS2がWRITEコマンド2606
を実行する。システムS2は、ページPのディレクトリ
・エントリのCB値が1であることを示し、図21に従
って管理論理機構が行うWRITEプロセス2607の
間に、エントリ2601のCBフィールドがこの値に変
更される。この時点で、2次記憶域に書き込まれつつあ
るページPの更新済みバージョンが共用キャッシュ中に
存在し、そのバージョンとシステムS1によってキャス
トアウトされるバージョンとの不一致が生じる。
【0241】WRITEコマンド2606の実行の少し
後に、システムS1でのWRITETO DISK26
05が完了する(2608)。このとき、システムS1
はUNLOCK CASTOUT LOCKコマンド2
609を発行して、2610で管理論理機構による対応
する処理を開始する。処理2610の間に、管理論理機
構はディレクトリ・エントリ2601のCOフィールド
をゼロにし、それによって、別のキャストアウト・プロ
セスのためにページPがロック解除される。ここで指摘
しておくべき重要な点は、UNLOCK CASTOU
T LOCKコマンドがディレクトリ・エントリ260
1中のCBフィールドをリセットさせないことである。
これによって、図25に示すように管理論理機構110
がページPを削除することがなくなる。Pのより新しい
バージョンは、後でS1またはS2によって開始される
キャストアウト・プロセスによってキャストアウトされ
ることになる。したがって、ステップ2611で管理論
理機構がページPの削除を試みる場合、ページPの削除
が防止され、別のページが削除すべく考慮される。
後に、システムS1でのWRITETO DISK26
05が完了する(2608)。このとき、システムS1
はUNLOCK CASTOUT LOCKコマンド2
609を発行して、2610で管理論理機構による対応
する処理を開始する。処理2610の間に、管理論理機
構はディレクトリ・エントリ2601のCOフィールド
をゼロにし、それによって、別のキャストアウト・プロ
セスのためにページPがロック解除される。ここで指摘
しておくべき重要な点は、UNLOCK CASTOU
T LOCKコマンドがディレクトリ・エントリ260
1中のCBフィールドをリセットさせないことである。
これによって、図25に示すように管理論理機構110
がページPを削除することがなくなる。Pのより新しい
バージョンは、後でS1またはS2によって開始される
キャストアウト・プロセスによってキャストアウトされ
ることになる。したがって、ステップ2611で管理論
理機構がページPの削除を試みる場合、ページPの削除
が防止され、別のページが削除すべく考慮される。
【図1】複数のCPCと1つのSES装置を含むシスプ
レックス・システムを示す図である。
レックス・システムを示す図である。
【図2】従来技術で見られるような単一CPC(中央プ
ロセッサ複合体)を示す図である。
ロセッサ複合体)を示す図である。
【図3】SESディレクトリ中のあるエントリの好まし
い形を示す図である。
い形を示す図である。
【図4】SESローカル・キャッシュ・レジスタ(LC
R)中のある項目の好ましい形を示す図である。
R)中のある項目の好ましい形を示す図である。
【図5】キャストアウト・クラス読取りコマンドを表す
流れ図である。
流れ図である。
【図6】キャストアウト・クラス情報読取りコマンドを
表す流れ図である。
表す流れ図である。
【図7】ディレクトリ読取りコマンドを表す流れ図であ
る。
る。
【図8】ディレクトリ・エントリ情報ブロック(DEI
B)のフォーマットを示す図である。
B)のフォーマットを示す図である。
【図9】キャストアウト用読取りコマンドを表す流れ図
である。
である。
【図10】キャストアウト・ロック解除コマンドを表す
流れ図である。
流れ図である。
【図11】読取り及び登録コマンドを表す流れ図であ
る。
る。
【図12】SES変更制御が未変更レコード状態を示す
ときの読取り及び登録コマンドを表す流れ図である。
ときの読取り及び登録コマンドを表す流れ図である。
【図13】SES変更制御が変更済みレコード状態を示
すときの書込み及び登録コマンドを表す流れ図である。
すときの書込み及び登録コマンドを表す流れ図である。
【図14】登録済み時書込みコマンドを表す流れ図であ
る。
る。
【図15】データ・ベース・マネージャのバッファ・マ
ネージャ、及びSESキャッシュの関連する使用の流れ
の概要を示す図である。
ネージャ、及びSESキャッシュの関連する使用の流れ
の概要を示す図である。
【図16】読取り動作のバッファ・マネージャ処理の流
れ図である。
れ図である。
【図17】書込み動作のバッファ・マネージャ処理の流
れ図である。
れ図である。
【図18】バッファ・マネージャのSESキャッシュ域
管理の流れ図である。
管理の流れ図である。
【図19】バッファ・マネージャによるSESキャッシ
ュ・データのDASDへの移動の流れ図である。
ュ・データのDASDへの移動の流れ図である。
【図20】非ブロッキング・キャストアウト・プロトコ
ルをサポートする読取りコマンドの処理流れを示す流れ
図である。
ルをサポートする読取りコマンドの処理流れを示す流れ
図である。
【図21】非ブロッキング・キャストアウト・プロトコ
ルをサポートする無条件書込みコマンドの処理流れを示
す流れ図である。
ルをサポートする無条件書込みコマンドの処理流れを示
す流れ図である。
【図22】非ブロッキング・キャストアウト・プロトコ
ルをサポートする条件付き書込みコマンドの処理流れを
示す流れ図である。
ルをサポートする条件付き書込みコマンドの処理流れを
示す流れ図である。
【図23】非ブロッキング・キャストアウト・プロトコ
ルをサポートするキャストアウト用読取りコマンドの処
理流れを示す流れ図である。
ルをサポートするキャストアウト用読取りコマンドの処
理流れを示す流れ図である。
【図24】非ブロッキング・キャストアウト・プロトコ
ルをサポートするキャストアウト・ロック解除コマンド
の処理流れを示す流れ図である。
ルをサポートするキャストアウト・ロック解除コマンド
の処理流れを示す流れ図である。
【図25】非ブロッキング・キャストアウト・プロトコ
ルをサポートする記憶域再利用プロセスの処理流れを示
す流れ図である。
ルをサポートする記憶域再利用プロセスの処理流れを示
す流れ図である。
【図26】共用キャッシュ中にデータをキャッシュする
ための非ブロッキング・キャストアウト・プロトコルの
方法を示す流れ図である。
ための非ブロッキング・キャストアウト・プロトコルの
方法を示す流れ図である。
101 SESキャッシュ(高速不揮発性メモリ) 102 ディレクトリ 103 共用キャッシュ 104 ローカル・キャッシュ・レジスタ 105 ローカル・キャッシュ制御 106 高速リンク 107 ローカル・キャッシュ・バッファ 109 直接アクセス記憶装置(DASD) 110 管理論理機構 111 共用キャッシュ
フロントページの続き (72)発明者 ジェフリー・アラン・フライ アメリカ合衆国12524、ニューヨーク州 フィッシュキル、グリーンヒル・ドライ ブ 24エイ (72)発明者 チャンドラセーカラン・モーハン アメリカ合衆国95120、カリフォルニア 州サンノゼ、ポーツウッド・ドライブ 727 (72)発明者 インデルパル・シング・ナラング アメリカ合衆国95070、カリフォルニア 州サラトガ、セラ・オークス・コート 13778 (72)発明者 ジェフリー・マーク・ニック アメリカ合衆国12524、ニューヨーク州 フィッシュキル、プリマス・ロード 43 (72)発明者 ジミー・ポール・ストリックランド アメリカ合衆国95070、カリフォルニア 州サラトガ、オールコット・ウェイ 18929 (72)発明者 マイケル・ダスティン・スワンソン アメリカ合衆国12603、ニューヨーク州 ポーキープシー、コレッジ・アベニュー 95 (58)調査した分野(Int.Cl.6,DB名) G06F 12/08 G06F 12/08 310 G06F 12/12
Claims (9)
- 【請求項1】中央処理装置複合体(CPC)における共
用記憶域から入出力装置へのデータ転送を制御する方法
であって、 複数の中央処理装置複合体(CPC)と前記複数のCP
Cで共用される共用記憶域を有する共用電子記憶(SE
S)キャッシュと前記CPCに接続された直接アクセス
記憶装置(DASD)とを含むようにシスプレックスを
構成し、前記シスプレックス中にデータ項目を記憶する
ために直接アクセス記憶装置(DASD)を制御するス
テップと、 前記SESキャッシュのディレクトリ・エントリによっ
て示されるデータ項目を変更した場合に、前記SESキ
ャッシュのディレクトリ・エントリについてのキャスト
アウト・クラスと前記変更済みデータ項目とを関連付
け、前記キャストアウト・クラスによって選択した複数
のデータ項目を1回の入出力命令でDASDに転送でき
るようにするステップと、 を含むデータ転送制御方法。 - 【請求項2】中央処理装置複合体(CPC)における共
用記憶域から入出力装置へのデータ転送を制御する方法
であって、 複数の中央処理装置複合体(CPC)と前記複数のCP
Cで共用される共用記憶域を有する共用電子記憶(SE
S)キャッシュと前記CPCに接続された直接アクセス
記憶装置(DASD)とを含むようにシスプレックスを
構成し、前記シスプレックス中にデータ項目を記憶する
ために直接アクセス記憶装置(DASD)を制御するス
テップと、 前記SESキャッシュのディレクトリ・エントリによっ
て示されるデータ項目を変更した場合に、前記SESキ
ャッシュのディレクトリ・エントリについてのキャスト
アウト・クラスと前記変更済みデータ項目とを関連付
け、前記キャストアウト・クラスによって選択した複数
のデータ項目を1回の入出力命令でDASDに転送でき
るようにするステップと、 前記SESキャッシュ中に関連データ項目を最初に書込
む時間を示すためのユーザ・データ・フィールドを、各
SESキャッシュのディレクトリ・エントリと関連付け
るステップと、 関連付けられたデータ項目が前記DASD中の同じデー
タ項目のコピーと異なることを示すために、変更フラグ
・フィールドが前記ディレクトリ・エントリにセットさ
れる時間を、前記ユーザ・データ・フィールドに書き込
むステップと、 を含むデータ転送制御方法。 - 【請求項3】メモリと、 READコマンドに応答して前記メモリからデータを獲
得し、該メモリ中のデータ・ブロックに対応するデータ
を生成し、該メモリからデータ・ブロックを削除する管
理論理手段と、 データを記憶する前記メモリよりも低速の少なくとも1
つの記憶機構と、 前記メモリ及び前記記憶機構に接続された複数の処理シ
ステムと、 を備え、前記記憶機構に記憶されるデータの前記メモリ
からの除去を逐次化するコンピュータ・システムであっ
て、 前記管理論理手段で生成される前記メモリ中のデータ・
ブロックの対応データが、変更ビット・フィールドとキ
ャストアウト識別フィールドとを含み、 前記記憶機構に入れるデータ・ブロックを獲得するため
に、第1の前記処理システムからREADコマンドが供
給されると、該READコマンドに応答して、そのデー
タ・ブロックの前記メモリ中のバージョンと記憶機構中
のバージョンとの一致を示すように変更ビット・フィー
ルドをセットするとともに、前記第1の処理システムを
識別する値に前記対応データのキャストアウト識別フィ
ールドをセットし、該キャストアウト識別フィールド中
の値に応答して、前記メモリからのデータ・ブロックの
削除を防止するコンピュータ・システム。 - 【請求項4】前記データ・ブロックのメモリ中のバージ
ョンを変更するために、第2の処理システムからWRI
TEコマンドが発行されると、該WRITEコマンドに
応答して、そのデータ・ブロックのメモリ中のバージョ
ンと記憶機構中のバージョンの不一致を示すように変更
ビット・フィールドを変更し、該変更ビット・フィール
ド中で示された不一致に応答して、そのデータ・ブロッ
クのメモリからの削除を防止する請求項3に記載のコン
ピュータ・システム。 - 【請求項5】請求項4に記載のシステムにおけるデータ
転送制御方法であって、第1の処理システムがデータ・
ブロックを前記記憶機構に入れるとき、前記キャストア
ウト識別フィールドからの値を削除するステップと、 (a)メモリからのデータ・ブロックの削除を防止した
後に、そのデータ・ブロックのメモリ中での更新済みバ
ージョンを獲得するために、処理システムからREAD
コマンドを供給するステップと、 (b)ステップ(a)のREADコマンドに応答して、
そのデータ・ブロックのメモリ中のバージョンと記憶機
構中のバージョンとの不一致を示すために変更ビット・
フィールドをセットし、該データ・ブロックの対応デー
タのキャストアウト識別フィールドを前記処理システム
を識別する値にセットするステップと、 (c)前記処理システムにおいて、そのデータ・ブロッ
クの更新済みバージョンを記憶機構に書き込むステップ
と、 (d)ステップ(c)のデータ・ブロックの更新済みバ
ージョンの記憶機構への書込みに応答して、当該処理シ
ステムを識別する値をキャストアウト識別フィールドか
ら削除するステップと、 (e)変更ビット・フィールドが、前記データ・ブロッ
クのメモリ中のバージョンと記憶機構中のバージョンと
の一致を示す場合には、該データ・ブロックをメモリか
ら削除し、そうでない場合には、当該データ・ブロック
がメモリから削除されるまで、ステップ(a)〜(e)
を実行するステップとを含む、データ転送制御方法。 - 【請求項6】キャッシュと、 前記キャッシュ中のデータ・ブロックへのアクセスを制
御し、該キャッシュからデータ・ブロックを削除するた
めの管理手段と、 前記キャッシュより低速の記憶機構と、 前記記憶機構及び前記キャッシュに接続された複数の処
理システムとを含む多重コンピュータ・データ共用シス
テムにおいて、前記キャッシュからのデータの除去を制
御する方法であって、 第1の前記処理システムにおいて、前記記憶機構に入れ
るべきデータ・ブロックをキャッシュから読み取るステ
ップと、 前記第1の処理システムが前記データ・ブロックを記憶
機構に入れている間に、第2の前記処理システムによっ
て前記キャッシュ中で該データ・ブロックが変更される
場合には、該キャッシュからの該データ・ブロックの削
除を防止し、変更がない場合には、該キャッシュから該
データ・ブロックを削除するステップとを含むデータ除
去制御方法。 - 【請求項7】キャッシュと、 前記キャッシュ中のデータ・ブロックへのアクセスを制
御し、該キャッシュからデータ・ブロックを削除するた
めの管理手段と、 前記キャッシュより低速の記憶機構と、 前記記憶機構及びキャッシュに接続された複数の処理シ
ステムとを含む多重コンピュータ・データ共用システム
において、前記キャッシュからのデータの除去を制御す
る方法であって、 前記記憶機構に入力すべきデータ・ブロックを持つ処理
システムの識別(ID)を有するキャストアウト・ロッ
ク・フィールドを含む、前記キャッシュ中の該データ・
ブロックの対応データを作成するステップと、 (a)前記キャストアウト・ロック・フィールドが、あ
る処理システムの識別を含む場合に、該処理システムの
持つデータ・ブロックの削除を防止するステップと、 (b)該データ・ブロックのキャッシュ中のバージョン
がそのデータ・ブロックの記憶機構中のバージョンと一
致しない場合に、該キャッシュからのそのデータ・ブロ
ックの除去を防止するステップと、 (c)キャッシュから該データ・ブロックを削除するス
テップとを含むデータ除去制御方法。 - 【請求項8】そのデータ・ブロックが削除されるまで、
ステップ(a)、(b)、(c)を順に繰り返す、請求
項7に記載の方法。 - 【請求項9】メモリと、 READコマンドに応答してメモリからデータを獲得
し、該メモリ中のデータ・ブロックの対応データを有す
るディレクトリを維持する管理論理手段と、 データを記憶する前記メモリより低速の記憶機構と、 前記メモリ及び記憶機構に接続された複数の処理システ
ムとの組合せ構成において、 前記メモリから記憶機構へのデータ・ブロックの移動を
逐次化するためのREADプロセスを含むデータ転送制
御方法であって、 前記メモリにおいて、該メモリ中のデータ・ブロックが
記憶機構中の該データ・ブロックのバージョンと一致す
るかどうかを示す変更フィールドと、該記憶機構に入力
すべきデータ・ブロックを持つ処理システムを識別する
ための識別(ID)フィールドとを含む、該メモリ中の
データ・ブロックの対応データを作成するステップと、 前記記憶機構に前記メモリからデータ・ブロックを入力
するための要求を第1の前記処理システムから発行する
ステップと、 その要求に応答して、該データ・ブロックのメモリ中の
バージョンと記憶機構中のバージョンとの一致を示すよ
うに変更フィールドをセットし、第1の処理システムの
識別(ID)を識別フィールドに入れるステップと前記
第1の処理システムにおいて、該データ・ブロックを記
憶機構に入力するステップと、 該データ・ブロックを記憶機構に入れた後に、第1の処
理システムの識別(ID)を識別フィールドから除去す
るステップと、 変更フィールドが、メモリ中のデータ・ブロックと記憶
機構中のデータ・ブロックとの不一致を示す場合に、該
メモリからのそのデータ・ブロックの除去を防止し、そ
うでない場合に、そのデータ・ブロックを該メモリから
削除するステップとを含むデータ転送制御方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US860806 | 1986-05-08 | ||
| US07/860,806 US5493668A (en) | 1990-12-14 | 1992-03-30 | 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 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0683702A JPH0683702A (ja) | 1994-03-25 |
| JP2765672B2 true JP2765672B2 (ja) | 1998-06-18 |
Family
ID=25334061
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5022747A Expired - Lifetime JP2765672B2 (ja) | 1992-03-30 | 1993-02-10 | データ転送及びデータ除去のための制御方法並びにコンピュータ・システム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2765672B2 (ja) |
-
1993
- 1993-02-10 JP JP5022747A patent/JP2765672B2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JPH0683702A (ja) | 1994-03-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| 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 | |
| JP2837785B2 (ja) | データ・コヒーレンス制御方法 | |
| US5544345A (en) | Coherence controls for store-multiple shared data coordinated by cache directory entries in a shared electronic storage | |
| JP2505939B2 (ja) | デ―タのキャストアウトを制御する方法 | |
| US5276835A (en) | Non-blocking serialization for caching data in a shared cache | |
| US5414840A (en) | Method and system for decreasing recovery time for failed atomic transactions by keeping copies of altered control structures in main memory | |
| US6587921B2 (en) | Method and apparatus for cache synchronization in a clustered environment | |
| US5758149A (en) | System for optimally processing a transaction and a query to the same database concurrently | |
| US6564234B2 (en) | Managing a resource used by a plurality of nodes | |
| US6314417B1 (en) | Processing multiple database transactions in the same process to reduce process overhead and redundant retrieval from database servers | |
| JP2512675B2 (ja) | デ―タ処理制御方法及びコンピュ―タ・システム | |
| US20040049636A1 (en) | Technique for data transfer | |
| JPH05127995A (ja) | ローカルキヤツシユに共通のページ間の一貫性を確保する方法 | |
| JPH076063A (ja) | 記憶ダンプ作成方法及びシステム、情報捕捉方法及びシステム、並びに記憶ダンプ提供方法及びシステム | |
| US12430266B2 (en) | Local page writes via pre-staging buffers for resilient buffer pool extensions | |
| JPH05128072A (ja) | システム間排他制御方式 | |
| JP2765672B2 (ja) | データ転送及びデータ除去のための制御方法並びにコンピュータ・システム | |
| JP3107094B2 (ja) | 共用バッファのロック期間短縮処理方法及び装置 | |
| JPH01112444A (ja) | データアクセスシステム | |
| AU2003213536B2 (en) | Method and apparatus for transferring data from the cache of one node to the cache of another node | |
| EP1408408B1 (en) | Managing a resource used by a plurality of nodes | |
| JPH04130936A (ja) | ファイル同時アクセス制御方式 | |
| JPH0895840A (ja) | データベースファイル復旧方式 |