JP2765672B2 - Control method and computer system for data transfer and data removal - Google Patents

Control method and computer system for data transfer and data removal

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
Application number
JP5022747A
Other languages
Japanese (ja)
Other versions
JPH0683702A (en
Inventor
デーヴィッド・アーレン・エルコ
ジェフリー・アラン・フライ
チャンドラセーカラン・モーハン
インデルパル・シング・ナラング
ジェフリー・マーク・ニック
ジミー・ポール・ストリックランド
マイケル・ダスティン・スワンソン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US07/860,806 external-priority patent/US5493668A/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0683702A publication Critical patent/JPH0683702A/en
Application granted granted Critical
Publication of JP2765672B2 publication Critical patent/JP2765672B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【産業上の利用分野】共用DASD及び共用電子記憶機
構(SES)への付加(attachment)をサポートする複
数のオペレーティング・システムからなるデータ処理シ
ステムでは、ディスク上、共用電子記憶機構に含まれる
キャッシュ中、及びローカル・プロセッサ記憶装置中
で、データを共用し管理しなければならない。DASD
と共用電子記憶機構の間でのデータ移動の管理では、デ
ータが記憶位置間を移動中にデータへの継続的アクセス
を保証し、最も頻繁に参照されるデータが記憶機構中に
常駐したままとなるように共用電子記憶域の使用を最適
化し、記憶機構でのまたはDASDを含む入出力サブシ
ステムでの混雑を避けるため、共用電子記憶機構からD
ASDへ修正済みデータを効率的に移動させる手段を提
供する問題に対処しなければならない。
BACKGROUND OF THE INVENTION In a data processing system comprising a plurality of operating systems supporting attachment to a shared DASD and a shared electronic storage (SES), a data processing system on disk, in a cache included in the shared electronic storage. , And in the local processor storage. DASD
The management of data movement between and the shared electronic storage mechanism ensures continuous access to data as it moves between storage locations, while ensuring that the most frequently referenced data remains resident in the storage mechanism. In order to optimize the use of shared electronic storage to avoid congestion in storage or I / O subsystems including DASD,
One must address the problem of providing a means to efficiently move modified data to the ASD.

【0002】具体的には、本発明は、データ・ブロック
のキャッシュ・バージョンを、多重システム・データ共
用複合体中で更新された後に、2次記憶域に確実に移動
する際のシステム効率を高めることに関する。
Specifically, the present invention increases system efficiency in ensuring that cached versions of data blocks are moved to secondary storage after being updated in a multi-system data sharing complex. About things.

【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号。
The present invention relates to the following application. Japanese Patent Application No. 3-299273 entitled "Configurable, Recoverable Parallel Bus"
G. Bartow et al., U.S. Patent Application No. 839657, filed February 20, 1992. "High Performance Channels For Data Processi
U.S. Patent Application No. 839 to NGBarrow et al.
No. 652 (filed on February 20, 1992). "Frame-Group Transmiss
U.S. Patent Application No. 839986 entitled "Ion And Reception For Parallel / Serial Buses" (February 2, 1992
0 day application). "Communication Messages Between Process
US Patent Application No. 860380 to DAElko et al. entitled "Ors And A Coupling Facility." Sysplex Shared Data Coheren
U.S. Patent Application No. 860805 to DAElko et al., entitled "cy Method and Means". "Method and Apparatus For Distribute
d Locking of Shared Data, Employing A Central Coup
U.S. Patent Application No. 86 to DAElko et al.
No. 0808. DAElko entitled "Command Quiesce Function"
Other U.S. Patent Application No. 860330. "Storage Element For A
DAElko entitled "Shared Electronic Storage Cache"
Other U.S. Patent Application No. 860807. "Command Retry System"
U.S. Patent Application No. 860378 to DAElko et al. "Integ
US Patent Application No. 860800 to DAElko et al. entitled "Rity Of Data Shared Between Caches Over A Link."
ent Of Data Objects used To Maintain State Informa
J. entitled "Action For Shared Data At A Local Complex"
U.S. Patent Application No. 860797 to A. Frey et al. "Recovery Of Dat
a Objects Used To Maintain State Information For S
United States Patent Application No. 860647 to JA Frey et al. entitled "hared Data At A Local Complex."
For Managing Connections Between Processors And A
U.S. Patent Application No. 860646 to DAElko et al., Entitled "Coupling Facility." Method And Apparatus For Notification
Of State Transitions For SharedLists of Data Entr
JAFrey et al., U.S. Patent Application No. 860809, entitled "ies."
ethod And Apparatus For Performing Conditional Ope
DAElko entitled "rations on Externally Shared Data"
Other U.S. Patent Application No. 860655. "Apparatus And Method
For List Management In A Coupled Data ProcessingSy
US Patent Application No. 860633 to JAFrey et al., entitled "Stem."
Interdicting I / O And Messaging Operations In A Mul
U.S. Patent Application No. 860489 to DAElko et al., entitled "ti-System Complex." Method And Apparatus For Coupling Dat
No. 860803 to DAElko entitled "A Processing Systems".

【0004】[0004]

【従来の技術】典型的には、プロセッサ中の従来のハー
ドウェア・キャッシュは、固定サイズのデータ・ブロッ
クを有する記憶アレイを備えている。こうした記憶装置
は、ハードウェアから見ると線形のブロック・アレイに
見える。キャッシュ中のデータ・ブロックは、キャッシ
ュ・ディレクトリによって管理される。キャッシュ・デ
ィレクトリはLRU記憶域参照に基づいてデータ・ブロ
ックを無効にし、あるいはキャッシュにキャストインし
またはキャッシュからキャストアウトする。周知の種類
のハードウェア・キャッシュが、中央演算処理装置(C
PU)及びDASD(直接アクセス記憶装置)中で使用
されている。
BACKGROUND OF THE INVENTION Typically, conventional hardware caches in processors include storage arrays having fixed-size blocks of data. Such storage appears to the hardware as a linear block array. Data blocks in the cache are managed by a cache directory. The cache directory invalidates data blocks based on LRU storage references, or casts in or out of cache. A well-known type of hardware cache is a central processing unit (C
PU) and DASD (Direct Access Storage).

【0005】複数の独立して動作するコンピュータ・シ
ステムがデータを共用する、データベース・システムで
は、異なるシステム中でのデータのコヒーレンシ(cohe
rency)を維持するために大域ロッキングが必要とされ
る。A.J.ヴァン=デ=ゴール(van de Goor)は、"COMPU
TER ARCHITECTURE AND DESIGN"、Addison Wesley(1989
年)で、データ・コヒーレンシの問題を、非常に多数の
プロセッサ間でデータを共用すると、データへの経路が
多数あり、またデータをローカルで修正する機会がある
ために、一致しないデータのコピーが存在する可能性が
生じるという問題として論じている。
[0005] In a database system in which a plurality of independently operating computer systems share data, coherency of the data in different systems may occur.
Global locking is required to maintain rency). AJ van de Goor says "COMPU
TER ARCHITECTURE AND DESIGN ", Addison Wesley (1989
Years), the problem of data coherency is that sharing data between a very large number of processors can lead to multiple paths to the data and the opportunity to modify the data locally, resulting in inconsistent copies of the data. Argued that the possibility exists.

【0006】データ・コヒーレンシの問題に対する解決
策がいくつか提案されている。それらはすべて、基本的
に、中央位置から検索されたデータに対する大域ロック
の存在に基づくものである。データがページ付けされて
いるものと仮定すると、あるディスクに記憶されている
データを共用する多重コンピュータ・システムの1つの
コンピュータ・システムが、データの1ページに対する
大域ロックを獲得し、そのページを得て更新する。ロッ
クは、そのページが更新のために獲得されていることを
他のコンピュータ・システムに知らせる。そのページに
対するロックを解除する前に、そのロックを保持するコ
ンピュータ・システムは、そのページをディスクに書き
込み、その後、自分のローカル・キャッシュ中に保持さ
れるページのコピーを無効にするようにとのメッセージ
を生成し、他のコンピュータ・システムに送る。当該ペ
ージに対するこのロックは、そのページに対するアクセ
ス権を有する他のあらゆるコンピュータ・システムから
肯定応答を受け取るまで解除されない。これと類似の解
決策は、米国特許第4399504号及び第49657
19号に詳しく記載されている。この解決策を取り入れ
た、本願の出願人から市販している商用製品は、データ
共用機能を備えたIMS/VSシステムである。
Several solutions to the problem of data coherency have been proposed. They are all based essentially on the existence of a global lock on data retrieved from a central location. Assuming that the data is paged, one computer system of a multi-computer system sharing data stored on a disk acquires a global lock on a page of data and obtains that page. Update. The lock informs other computer systems that the page has been acquired for an update. Before releasing the lock on the page, the computer system holding the lock writes the page to disk and then requests that the copy of the page held in its local cache be invalidated. Generate a message and send it to another computer system. This lock on the page will not be released until an acknowledgment is received from any other computer system that has access to the page. Similar solutions are disclosed in U.S. Pat. Nos. 4,399,504 and 49657.
No. 19 describes this in detail. A commercial product from the applicant of the present invention that incorporates this solution is an IMS / VS system with data sharing capabilities.

【0007】従来技術の大域ロック・システムは、デー
タ・コヒーレンシの維持に大きな利益をもたらす。しか
し、それに固有のオーバーヘッド上の不利益として、ペ
ージ更新時に入出力手順を実行する必要があり、また他
のシステムに通知してロックを解除するために入出力手
順後にメッセージ交換を行う必要があることが挙げられ
る。
[0007] Prior art global locking systems offer significant benefits in maintaining data coherency. However, its inherent overhead penalty is that I / O procedures must be performed when updating pages, and that messages must be exchanged after I / O procedures to notify other systems and release locks. It is mentioned.

【0008】従来技術の大域ロッキングは、非データ共
用の単一システムの場合に使用すると、データを更新す
る各トランザクションが修正済みデータをログ・レコー
ドと共に記憶域に書き込んでからでないと、そのトラン
ザクションが完全にコミット(commit)されないという
コミット方針を実施することにより、トランザクション
間でデータ・コヒーレンシ(コンシステンシ)を維持す
る上で余分のオーバーヘッドを生じる。これは、各修正
トランザクションごとに1ページにつき1つの入出力手
順を必要とし、オーバーヘッド・コストが増加する。
Prior art global locking, when used in a single system with non-data sharing, requires that each transaction that updates the data write modified data to storage along with the log record in storage before the transaction is updated. Enforcing a commit policy that is not fully committed creates extra overhead in maintaining data coherency (consistency) between transactions. This requires one I / O procedure per page for each modified transaction, increasing overhead costs.

【0009】それとは対照的に、単一システム非データ
共用の場合にIBM DB2は、トランザクションをコ
ミットするために、更新されたページを記憶域に書き戻
すのに入出力プロセスを必要としない方針に従ってい
る。複数のコンピュータ・システムが1つまたは複数の
データ記憶サイトにアクセスするというデータ共用状況
で前記のプロトコルを使用する場合、記憶域への書き戻
しが必要であり、かつメッセージ遅延があるために、性
能が著しく低下する可能性がある。
In contrast, in the case of single system non-data sharing, IBM DB2 follows a policy that does not require an I / O process to write updated pages back to storage to commit the transaction. I have. When using the above protocol in a data sharing situation where multiple computer systems access one or more data storage sites, write back to storage is required and message delays may cause performance problems. May be significantly reduced.

【0010】多数の記憶段を含む多重コンピュータ・デ
ータ共用システムでは、第2の記憶段は1個または複数
の直接アクセス記憶装置(DASD)からなり、それが
独立に動作するコンピュータ・システムによって共用さ
れることが企図されている。階層的に配列された記憶シ
ステム用の典型的な命名法では、DASD及び他のその
ような記憶機構を「2次」記憶域と分類している。な
お、2次記憶域には、データをそこから「1次」記憶域
に移さないと、CPUがそれを直接参照できない、すべ
ての機構が含まれる。さらに、キャッシュ技法が、共用
データ用の高速で頻繁にアクセスされる記憶域を提供す
るのに役立つであろうことが企図されている。様々な理
由から、データは、DASDから獲得された後に、デー
タベース・システムによって共用キャッシュに入れられ
る。なお、共用キャッシュは、多重コンピュータ・デー
タ共用システムの1次記憶段に含まれることになる。
In a multi-computer data sharing system containing multiple storage stages, the second storage stage consists of one or more direct access storage devices (DASD), which are shared by independently operating computer systems. It is contemplated. Typical nomenclature for hierarchically arranged storage systems classifies DASD and other such storage mechanisms as "secondary" storage. It should be noted that secondary storage includes all features that require the data to be moved to the "primary" storage before the CPU can directly reference it. Further, it is contemplated that caching techniques will help provide fast, frequently accessed storage for shared data. For various reasons, data is placed into a shared cache by the database system after it is obtained from DASD. Note that the shared cache is included in the primary storage stage of the multi-computer data sharing system.

【0011】このような構造中では、1つのコンピュー
タ・システムが、DASDに書き込む目的であるデータ
・ブロックを共用キャッシュから獲得し、それと同時
に、同じデータ・ブロックを別のコンピュータ・システ
ムがその共用キャッシュから獲得し、修正して共用キャ
ッシュに戻すような場合に、潜在的な危険が存在するこ
とになる。この状況で、DASDに記憶するため共用キ
ャッシュから修正されたデータ・ブロックを取り出すこ
とを、そのデータ・ブロックの「キャストアウト(cast
out)」と称することにする。キャストアウトでは、キ
ャストアウトされるページを共用メモリから読み取り、
DASDに書き込み、次いで共用メモリ中で「未変更」
とマークする(すなわちDASDと共用メモリで対応す
るページの内容が同じであることを示す。逆に両者のペ
ージの内容が異なるときは「変更済」がマークされてい
る)ことが必要である。
In such a structure, one computer system obtains a data block to be written to DASD from a shared cache, while at the same time another computer system obtains the same data block by its shared cache. There is a potential danger in such cases as obtaining from a shared cache and modifying it back to the shared cache. In this situation, retrieving the modified data block from the shared cache for storage on DASD is a "cast out" of that data block.
out) ". Castout reads the page to be cast out from shared memory,
Write to DASD, then "unchanged" in shared memory
(That is, the contents of the corresponding pages are the same in the DASD and the shared memory. Conversely, when the contents of the two pages are different, “changed” is marked).

【0012】[0012]

【発明が解決しようとする課題】共用キャッシュの効率
的キャッシュ管理には、共用データ・ブロックを周期的
に、またはキャッシュ中の変更済みデータ・ブロックの
閾値に基づいて、キャストアウトすることが必要であ
る。あるデータ・ブロックがキャストアウトされると、
それは「未変更」とマークされ、キャッシュから削除さ
れる候補となる。あるコンピュータ・システムが読取り
動作と削除動作の間の時間間隔中にそのページの新しい
バージョンを共用メモリに書き込むときに、別のコンピ
ュータ・システムによってキャストアウトが行われる
と、大きな危険が生じる。危険というのは、その削除に
よってそのデータ・ブロックのその新しいバージョンが
消去されることである。これが起こらないようにするた
め、通常、共用キャッシュ中で高レベルのロッキングま
たは逐次化及び待ち行列化が使用される。高レベルのロ
ッキングに伴う問題は、キャッシュからページを除去す
るのに、ロックとロック解除というさらなる2回の多重
システム対話が必要となるため、コストが2倍になるこ
とである。また、第2のシステムによる修正バージョン
の書込みが遅延し、性能上望ましくない結果をもたらす
ことになる。
Efficient cache management of a shared cache requires that the shared data blocks be cast out periodically or based on a threshold of changed data blocks in the cache. is there. When a block of data is cast out,
It is marked "unmodified" and is a candidate for removal from the cache. When one computer system writes a new version of the page to shared memory during the time interval between a read operation and a delete operation, a significant danger arises if the castout is performed by another computer system. The danger is that the deletion will erase the new version of the data block. To prevent this from happening, a high level of locking or serialization and queuing is typically used in the shared cache. The problem with high levels of locking is that doubling the cost because removing a page from the cache requires two additional multi-system interactions, locking and unlocking. Also, the writing of the modified version by the second system is delayed, which can have undesirable performance consequences.

【0013】これまで「クラス」という語は、印刷、穿
孔、及びネットワーク動作を制御するためのVM/37
0スプール・ファイル・クラスなどのような、レコード
処理制御において使用されてきた。しかし、CPCの制
御下でキャストアウト処理を制御するためのSES装置
に関して使用されることは知られていなかった。
Heretofore, the term "class" has been defined as a VM / 37 for controlling printing, punching, and network operation.
It has been used in record processing controls, such as the 0 spool file class. However, it was not known to be used for SES devices for controlling the castout process under the control of CPC.

【0014】[0014]

【課題を解決するための手段】[Means for Solving the Problems]

シスプレックス・ハードウェア構造:図1に、シスプレ
ックス(SYStem comPLEX:システム複合体)システムを
示す。このシステムは、複数のコンピュータ処理複合体
(CPC)CPC−1〜CPC−Mを含んでいる。これ
らは1台から多数台まで任意の数のCPCを表し、すべ
てが1個または複数のSES(共用電子記憶)装置に接
続されている(図1にはSES装置101を1台示して
ある)。
Sysplex hardware structure: FIG. 1 shows a sysplex (SYStem comPLEX: system complex) system. The system includes a plurality of computer processing complexes (CPCs) CPC-1 through CPC-M. These represent an arbitrary number of CPCs from one to many, all of which are connected to one or more SES (shared electronic storage) devices (FIG. 1 shows one SES device 101). .

【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中のマ
イクロコードまたはハードウェアとの間で信号をやり取
りする。
Each CPC is of the type shown in FIG.
It may be a multiprocessor such as the currently available IBM ES / 9000 model 900 designed according to the BM ESA / 390 scheme. The IBM ESA / 390 system is described in “Enterprise System Architecture (ESA / 390) Manual (POP) [Enterprise Systems Architecture (ESA)
/ 390) Principles of Operations (POP)], IBM
It is specified in document number SA22-7201-00.
Each CPC has one or more operating systems. If there is a CPC with multiple operating systems, its resources are transferred to IBM PR / SM
Features must be used to logically partition between multiple operating systems. An inter-system channel (ISC) is connected between SES 101 and CPC1-M. The ISC connected to the CPC exchanges signals with microcode or hardware in the 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と称する。
Each CPC in the sysplex operates on a storage hierarchy. This storage hierarchy is, for example, each CP of CPC.
Dedicated high-speed hardware caches 201-1 through 201-N in U, shared hardware cache 20 accessible to all dedicated processor caches
2. It may include a main storage (MS) 204 shared by all processors in the CPC, a hardware storage (HSA) 205 associated with the MS but without MS addressability. However, DASDs are grouped by DASD controls (controls) so that any CPC in the sysplex can access any DASD in the group. This is referred to herein as "Sysplex DASD" 207.

【0017】CPC/SESの物理的接続208は、一
端が当該のCPC中のMS制御装置に接続され、他端が
SES装置に接続された当該のチャネルによって提供さ
れる。この当該のチャネル・バスは、直列の光ファイバ
で構成することができる。バスは単一ファイバでもよい
が、並列に動作する複数のファイバから構成し、それら
の間でデータを「ストライピング」(インターリーブ)
してもよい。
The CPC / SES physical connection 208 is provided by a corresponding channel connected at one end to the MS controller in the CPC and at the other end to the SES device. This channel bus can be composed of serial optical fibers. The bus may be a single fiber, but it consists of multiple fibers operating in parallel, and "striping" data between them (interleaving)
May be.

【0018】ハードウェアの意味では、SESは、それ
に接続されたすべてのCPCが共通に使用できる、大型
のランダム・アクセス・メモリと考えることができる。
接続されたCPCは、SESを使って共用データ・レコ
ード及びファイルを一次的にまたは半永久的に記憶する
ことができる。したがって、SESは、SESに付加さ
れたすべてのCPCに共通な、CPC中の拡張記憶(E
S)段にほぼ対応する階層レベルをもつ、システム中の
記憶階層の一構成要素と考えることができる。
In the hardware sense, the SES can be thought of as a large random access memory that can be used in common by all CPCs connected to it.
Attached CPCs can use SES to store shared data records and files temporarily or semi-permanently. Therefore, the SES uses the extended storage (E) in the CPC that is common to all CPCs attached to the SES.
S) It can be considered as a component of the storage hierarchy in the system, with hierarchy levels approximately corresponding to the stages.

【0019】本発明を使用するシスプレックスでは、1
つまたは複数のSESエンティティが、シスプレックス
中のあらゆるCPCのMS/ESに物理的に接続するこ
とができる。シスプレックス中のすべてのCPCをSE
Sに接続する必要はない。たとえば、同じプログラミン
グ・サブシステムを動作させるCPCの一グループだけ
にSESを接続してもよい。そして異なるCPCのグル
ープは、シスプレックス中の異なるSESに接続して、
異なるプログラミング・サブシステムを走らせることが
できる。
In a sysplex using the present invention, 1
One or more SES entities can physically connect to the MS / ES of every CPC in the sysplex. SEs all CPCs in the sysplex
There is no need to connect to S. For example, SES may be connected to only a group of CPCs operating the same programming subsystem. And different groups of CPCs connect to different SESs in the sysplex,
Different programming subsystems can be run.

【0020】本発明の前提となる基本的特徴は、通常は
シスプレックスの共通DASDに記憶されるデータ用の
高速キャッシュとしてSESを使用することである。た
だし、CPC/SES/DASDの物理的接続は、直接
階層経路中になくてもよい。シスプレックス中のどのC
PCも、共通DASDからよりもずっと速くSESから
のレコードにアクセスすることができる。すなわち、S
ES中では、トラック間でのヘッド移動待ちや、要求さ
れたDASDレコードに達するためのトラック回転待ち
など、DASDで見られる電気機械的遅延なしで、デー
タ要素またはレコードに迅速にアクセスできる。
A fundamental feature underlying the present invention is the use of SES as a fast cache for data that is typically stored on a common DASD in a sysplex. However, the physical connection of CPC / SES / DASD need not be directly in the hierarchical path. Which C in the sysplex
PCs can also access records from SES much faster than from common DASD. That is, S
During the ES, data elements or records can be quickly accessed without the electromechanical delays seen with DASD, such as waiting for head movement between tracks or waiting for track rotation to reach the required DASD record.

【0021】SESキャッシュを割り振るための特別の
コマンドが設けられている。また、異なるプログラムを
使用して、付加された複数のCPCサブセットが共用す
るデータをそれぞれのキャッシュに処理させるなど、同
じSES内で複数のキャッシュを割り振ることもでき
る。
A special command for allocating the SES cache is provided. Also, a plurality of caches can be allocated in the same SES, for example, by using different programs to cause each cache to process data shared by the added plurality of CPC subsets.

【0022】各SESキャッシュは、ディレクトリ10
2、データ域103、ローカル・キャッシュ・レジスタ
104、及びキャッシュ制御(機構)105を含んでい
る。キャッシュのデータ域部分が使用されない場合は、
そのサイズを0にしてもよい。SESキャッシュ中の各
有効ディレクトリ・エントリは、付加されているいずれ
かのCPCによってSES中で登録されたデータ要素の
名前を格納している。SESは、登録済みデータ要素中
にそのデータのコピーを含んでいても含まなくてもよ
い。SESに登録済みの名前は、シスプレックス中の1
つまたは複数のCPC中のそのデータ要素の1つまたは
複数のコピーの名前でもある。さらに、このディレクト
リ名は、ディレクトリ207に接続されたDASDバン
ク中のDASD1〜Kのうちの1つに記憶されている
(または記憶されようとしている)データ要素のコピー
をも識別する。
Each SES cache has a directory 10
2, including a data area 103, a local cache register 104, and a cache control (mechanism) 105. If the data area portion of the cache is not used,
The size may be set to 0. Each valid directory entry in the SES cache stores the name of a data element registered in SES by any attached CPC. The SES may or may not include a copy of the data in the registered data element. The name registered with SES is 1 in the sysplex.
It is also the name of one or more copies of that data element in one or more CPCs. In addition, the directory name also identifies a copy of the data element stored (or about to be stored) on one of the DASDs 1-K in the DASD bank connected to the directory 207.

【0023】本発明(請求項3乃至5、及び請求項9)
の目的の一つは、共用データ多重コンピュータ・システ
ムにおいて、削除前に共用メモリ(SES)中にキャス
トアウトされつつあるデータのページがあっても、キャ
ストアウト動作の進行中に共用メモリ(SES)に書き
込まれたそのページの後の(すなわち新しい)バージョ
ンが削除されないように保証する方法及び構造を提供す
ることにある。
The present invention (claims 3 to 5 and claim 9)
One of the objects of the present invention is that in a shared data multi-computer system, even if there is a page of data being cast out in the shared memory (SES) prior to deletion, the shared memory (SES) may be The present invention provides a method and structure for ensuring that a later (ie, newer) version of a page written to a.

【0024】本発明の重要な利点は、共用メモリ中に、
2次記憶域(DASD)に入れるために共用メモリから
あるページを除去する際にページ・バージョン間のコン
システンシを保証するための、高レベルのロッキングま
たは逐次化及び待ち行列化の機構が必要でないことであ
る。
An important advantage of the present invention is that in shared memory,
No high-level locking or serialization and queuing mechanisms are required to ensure consistency between page versions when removing certain pages from shared memory for entry into secondary storage (DASD) That is.

【0025】本発明(請求項6乃至8)の重要な一目的
は、データが共用電子記憶装置(SES)中にキャッシ
ュされるという、多重システム、データ共用複合体を動
作させる方法を提供することにある。多重システム、デ
ータ共用複合体において、第1のコンピュータ・システ
ム上で実行中のデータベース・システムは、2次記憶域
にページを書き込むための第1ステップとして、共用キ
ャッシュ中の修正済みページを読み取ることができ、そ
の一方で別のデータベース・システムが、共用キャッシ
ュ中の同じページのさらに最近に更新されたバージョン
をキャッシュしようと試みることができる。本発明は、
そのような条件を検出し、ロッキングなどのブロッキン
グ機構なしに、第1のコンピュータ・システムが以前の
バージョンのページを2次記憶域に記憶した後で、共用
キャッシュから当該ページの更新済みコピーが削除され
るのを防げる。
An important object of the present invention (claims 6 to 8) is to provide a method for operating a multi-system, data sharing complex, wherein data is cached in a shared electronic storage device (SES). It is in. In a multi-system, data sharing complex, a database system running on a first computer system reads a modified page in a shared cache as a first step to write the page to secondary storage. While another database system can attempt to cache a more recently updated version of the same page in the shared cache. The present invention
Detecting such a condition and removing the updated copy of the page from the shared cache after the first computer system stores the previous version of the page in secondary storage without blocking mechanisms such as locking. Can be prevented.

【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の下で走行する
ことができる。
The present invention is directed to a sysplex that uses multiple operating systems (OS). Each CPC in a sysplex logically partitions its resources among different OSs, and multiple independent CPCs within a single CPC, such as through an IBM Processor Resource / System Management (PR / SM) system. An OS can be provided. Thus, a sysplex can have any combination of OSs running on its different CPCs. Some CPCs each have one OS,
Another CPC is a plurality of OPCs running independently of each other.
Has S. One or more subsystems can run under any OS in any CPC, including subsystems such as IBM's DB2, DFP, IMS, VSAM, and the like.

【0027】同じデータベース・サブシステム・プログ
ラムの異なるコピーが、異なるCPC中で同時に独立し
て走行することができる。本発明によれば、こうした異
なるプログラムは、同時に異なるCPCのMS/ESロ
ーカル・キャッシュ(LC)にあるデータベース中の同
じまたは異なるデータ要素またはレコードにアクセスす
ることができる。
Different copies of the same database subsystem program can run independently and simultaneously in different CPCs. According to the present invention, such different programs can simultaneously access the same or different data elements or records in the database in the MS / ES local cache (LC) of different CPCs.

【0028】本発明(請求項1及び2)の主目的は、デ
ータの記憶ロケーション間の移動中に当該データへの継
続的アクセスを保証し、最も頻繁に参照されるデータが
記憶機構中に常駐したままとなるように共用電子記憶域
の使用を最適化し、共用記憶機構でのまたはDASDを
含む入出力サブシステムでの混雑を避けるために当該共
用電子記憶機構からDASDへ修正済みデータを効率的
に移動させる手段を提供するという各種問題に対処しな
がら、DASDと共用電子記憶機構の間でのデータ移動
の管理を実現することである。
It is a primary object of the present invention (claims 1 and 2) to ensure continuous access to data during its movement between storage locations, with the most frequently referenced data resident in the storage facility. Optimized use of shared electronic storage to remain in place, and efficiently modified data from shared electronic storage to DASD to avoid congestion on shared storage or I / O subsystems including DASD To manage data movement between DASD and shared electronic storage while addressing the various problems of providing a means to move data to and from the DASD.

【0029】本発明(請求項3乃至9)の共用キャッシ
ュを動作させる技法における最も重要な刷新は、あるペ
ージの以前のバージョンが2次記憶域に書き込まれる間
により最近のバージョンがキャッシュから削除されない
ことを保証するために、高レベル・ロッキングなどのさ
らなる逐次化機構を必要としないことである。このキャ
ッシュは、当該キャッシュに記憶された各データ・ペー
ジについてのディレクトリ・エントリを格納するディレ
クトリによってアクセスされる。本発明にとって不可欠
なのは、キャッシュ中の各ページ用のディレクトリ・エ
ントリの中に、現在キャストアウト動作を実行中のコン
ピュータ・システムの識別を含むキャストアウトに関す
るフィールドを設けることである。このフィールドは、
ページが変更されたかどうかを示すために使用される変
更フィールドとあいまって機能する。この変更(ビッ
ト)フィールドが、進行中のキャストアウト動作中にそ
のページが変更されたことを示す場合、そのページの削
除を防止し、それによって共用キャッシュ中のそのペー
ジの最新バージョンを次のキャストアウト動作のために
保存する。本発明は、キャストアウト・フィールドが0
で、進行中のキャストアウトがないことを示す場合にの
みキャストアウトを許可し、キャストアウトIDと変更
ビットの両フィールドが共に0の場合にのみページを削
除することによって機能する。本発明は、通常の読取り
/書込みの動作セットに、ある動作、すなわちキャスト
アウト用「読取り」動作を追加することを必要とする。
このキャストアウト用読取り動作は、要求側の識別をキ
ャストアウトIDフィールドに入れ、変更フィールドを
0にセットするものである。
The most significant innovation in the technique of operating a shared cache of the present invention (claims 3-9) is that a more recent version of a page is not deleted from the cache while a previous version is written to secondary storage. No additional serialization mechanism, such as high-level locking, is required to ensure this. This cache is accessed by a directory that stores a directory entry for each data page stored in the cache. Essential to the invention is the provision of a castout field in the directory entry for each page in the cache that contains the identity of the computer system currently performing the castout operation. This field is
Works in conjunction with the change field used to indicate whether the page has changed. If this change (bit) field indicates that the page has been modified during an ongoing castout operation, it prevents the page from being deleted, thereby causing the latest version of the page in the shared cache to be Save for out operation. The present invention assumes that the castout field is zero.
The function is performed by permitting the castout only when there is no ongoing castout, and deleting the page only when both the castout ID and the change bit fields are 0. The present invention requires the addition of certain operations to the normal set of read / write operations, a "read" operation for castout.
This read operation for castout involves placing the identity of the requestor in the castout ID field and setting the change field to zero.

【0030】SES構造:SESキャッシュは、データ
域要素と、ディレクトリと、ローカル・キャッシュ制御
(部)との集合体からなる、SES中の構造である。S
ESキャッシュ構造は、CPC間で共用されるデータに
アクセスするプログラムの要求時に作成され、これらの
プログラムは、ローカルにキャッシュ記憶されたデータ
項目のコピーに関してコヒーレンシ及び保全性を必要と
する。
SES structure: The SES cache is a structure in SES which is composed of an aggregate of a data area element, a directory, and a local cache control (part). S
The ES cache structure is created at the request of programs that access data shared between CPCs, and these programs require coherency and integrity for copies of locally cached data items.

【0031】SESディレクトリ:SESキャッシュ・
ディレクトリは、SESコヒーレンシ制御を得るための
SES装置の基本的構成要素である。SESキャッシュ
と共にSESデータ域を形成すると、シスプレックスの
性能が向上するが、これは任意選択である。SESデー
タ域のない場合、シスプレックス中のデータ・レコード
は、シスプレックスDASDからしかアクセスできない
ようになる。データベース・ソフトウェア動作では、S
ESデータ域中の共用レコードへの迅速なアクセスによ
って提供される性能が失われることになる。(SESデ
ィレクトリ・エントリに関連する)SESローカル・キ
ャッシュ・レジスタは、依然としてシスプレックス中の
どのCPC LCBが共用データ要素のコピーをもつか
を識別する。
SES directory: SES cache
The directory is a basic component of the SES device for obtaining SES coherency control. Forming the SES data area with the SES cache improves sysplex performance, but is optional. Without the SES data area, data records in the sysplex would only be accessible from the sysplex DASD. In database software operation, S
Performance provided by rapid access to shared records in the ES data area will be lost. The SES local cache register (associated with the SES directory entry) still identifies which CPC LCB in the sysplex has a copy of the shared data element.

【0032】SESローカル・キャッシュ・レジスタ:
このローカル・キャッシュ・レジスタ中の諸エントリ
は、関連するディレクトリ・エントリによって識別され
るデータ要素のコピーを含む付加ローカル・キャッシュ
を識別する。ローカル・キャッシュ・レジスタ中の各エ
ントリは、ローカル・キャッシュに関連するキャッシュ
・コヒーレンシ・ベクトルと、データ要素のローカルに
キャッシュされたコピーの妥当性を表現するために使用
される、そのコヒーレンシ・ベクトル内のローカル・キ
ャッシュ・エントリとを位置指定する(locate)のに十
分な情報を提供する。
SES local cache register:
Entries in this local cache register identify an additional local cache that contains a copy of the data element identified by the associated directory entry. Each entry in the local cache register contains a cache coherency vector associated with the local cache and the coherency vector used to represent the validity of the locally cached copy of the data element. Provide enough information to locate the local cache entry.

【0033】処理流れの概要:SESキャッシュ記憶域
は、通常、DASD記憶域よりも小さい。従って、変更
済みデータをSESキャッシュからバックアップDAS
Dに周期的に転送しなければならない。このプロセスを
キャストアウトと称し、プログラムによって制御され、
以下の動作を必要とする。 −SES読取リ動作が発行されて、キャストアウト逐次
化(serialization)をセットし、データ・ブロックを
主記憶装置へコピーする。 −入出力動作が実行されて、データ・ブロックをDAS
Dへコピーする。 −SESロック解除動作が発行されて、キャストアウト
逐次化を解除する。
Overview of the process flow: SES cache storage is typically smaller than DASD storage. Therefore, the changed data is transferred from the SES cache to the backup DAS
D must be transferred periodically. This process is called castout and is controlled by the program,
The following operations are required. A SES read re-operation is issued to set castout serialization and copy the data block to main storage. An I / O operation is performed to DAS the data block
Copy to D. An SES lock release operation is issued to release the castout serialization.

【0034】キャストアウトに関連するデータ項目は、
SESキャッシュによってキャストアウト・クラス中に
維持される。キャストアウト・クラスは、プログラムが
DASDへのデータ転送を一回の入出力動作でバッチ処
理できるようにすることによって、キャストアウト・プ
ロセスの効率を改善するのに使用される。DASDとS
ESキャッシュの間でのデータの移動を実行するプロセ
スが、本発明の主題である。
The data items associated with the castout are:
Maintained in the castout class by the SES cache. The castout class is used to improve the efficiency of the castout process by allowing a program to batch data transfers to DASD in a single I / O operation. DASD and S
The process of performing the movement of data between ES caches is the subject of the present invention.

【0035】効果的なキャストアウト処理を可能にす
る、SESディレクトリ内のオブジェクトには、下記の
ものがある(図3、8も参照されたい)。
Objects in the SES directory that enable efficient castout processing include the following (see also FIGS. 3 and 8):

【0036】−キャストアウト・クラス(CCL)。そ
の名前に対して割り当てられたキャストアウト・クラス
を識別する、2バイトの値。
A castout class (CCL). A two-byte value that identifies the castout class assigned to the name.

【0037】−キャストアウト・ロック(CO)。デー
タのキャストアウトの状態を示す2バイトの値。キャス
トアウト・ロックが0のとき、そのデータはキャストア
ウトされていない。キャストアウト・ロックが0でない
ときは、キャストアウト・ロックの第1バイトの値が、
そのデータ・ブロックをSESキャッシュからDASD
にキャストアウトしているローカル・キャッシュを識別
する。第2バイトの値は、ローカル・システム上のキャ
ストアウト・プロセスを識別する。キャストアウト・ロ
ックが0でないときは、データ・ビットは1でなければ
ならない。
Castout lock (CO). A 2-byte value indicating the status of data castout. When the castout lock is zero, the data has not been castout. When the castout lock is non-zero, the value of the first byte of the castout lock is
Move the data block from SES cache to DASD
Identify the local cache that is casting out to The value of the second byte identifies the castout process on the local system. If the castout lock is not zero, the data bit must be one.

【0038】−変更ビット(C)。キャストアウト・ロ
ックとあいまって、データの変更済み状態を示す、1ビ
ットの値。変更ビットが1のとき、そのデータは変更さ
れた状態でキャッシュ記憶されている。変更ビットが0
で、データがキャストアウト用にロックされていないと
きは、データはキャッシュ記憶されていないか、あるい
はキャッシュ記憶されているが変更されていない。変更
ビットが0で、データがキャストアウト用にロックされ
ているときは、そのデータは変更された状態でキャッシ
ュ記憶されている。データが変更済み状態のときは、そ
のデータの最新バージョンがキャッシュ中に常駐する。
変更ビットが1のとき、データ・ビットも1でなければ
ならない。
A change bit (C). A one-bit value that, together with the castout lock, indicates the changed state of the data. When the change bit is 1, the data is cached in a changed state. Change bit is 0
If the data is not locked for castout, then the data is not cached or cached but not modified. If the change bit is 0 and the data is locked for castout, the data is cached in a modified state. When data is in the modified state, the latest version of the data resides in the cache.
When the change bit is one, the data bit must also be one.

【0039】キャストアウト・プロセスは、下記のいく
つかの方式の1つで開始することができる。
The castout process can be started in one of several ways:

【0040】−事象駆動キャストアウト:各書込み動作
の後に、変更されたデータ要素のカウントが比較され
る。これによって、書込みコマンドが発生し、定義され
た閾値を超えたとき、指定されたキャストアウト・クラ
スに関するキャストアウト処理がトリガされる。この比
較は、トランザクション処理の一部である。
Event Driven Castout: After each write operation, the count of changed data elements is compared. This triggers a castout process for the specified castout class when a write command occurs and exceeds a defined threshold. This comparison is part of the transaction processing.

【0041】−タイマ駆動キャストアウト:時間調整さ
れた間隔で1組のカウンタが要求される。この比較は背
景プログラムの一部であり、どのトランザクション処理
の一部でもない。キャストアウト処理に対する応答性と
カウントを得る際のトランザクション・オーバヘッドの
間の平衡を保たなければならない。
Timer-driven castout: a set of counters is required at timed intervals. This comparison is part of the background program and not part of any transaction processing. A balance must be struck between responsiveness to the castout process and transaction overhead in obtaining the count.

【0042】SESにおけるキャストアウト・プロセス
をサポートするコマンドには、次のものがある。
Commands that support the castout process in SES include:

【0043】−キャストアウト・クラス読取りコマン
ド:キャストアウト・クラス読取りコマンドは、名前ブ
ロックのリストを主記憶装置に戻す。名前フィールドが
マスク状態の入力名と一致し、ディレクトリ・エントリ
が指定されたキャストアウト・クラス待ち行列に入れら
れたとき、ディレクトリ・エントリは処理される。
Read castout class command: The read castout class command returns a list of name blocks to main storage. The directory entry is processed when the name field matches the input name in the masked state and the directory entry is enqueued to the specified castout class queue.

【0044】−キャストアウト・クラス情報読取りコマ
ンド:キャストアウト・クラス情報読取りコマンドは、
ある範囲のキャストアウト・クラスに関する統計情報を
戻す。
Read castout class information command: The read castout class information command is:
Returns statistics for a range of castout classes.

【0045】−ディレクトリ読取りコマンド:ディレク
トリ読取りコマンドは、ディレクトリを走査し、ディレ
クトリ・エントリ情報ブロックのリストを戻す。
Read Directory Command: The Read Directory command scans a directory and returns a list of directory entry information blocks.

【0046】−キャストアウト用読取りコマンド:キャ
ストアウト用読取りコマンドは、名前付きデータ域の内
容をローカル・キャッシュに戻し、その名前をキャスト
アウトのためにロックする。
Read for Castout command: The Read for Castout command returns the contents of the named data area to the local cache and locks its name for castout.

【0047】−キャストアウト・ロック解除コマンド:
キャストアウト・ロック解除コマンドは、キャストアウ
ト・ロックを0にリセットし、そのユーザ・データ・フ
ィールドを名前リスト用のディレクトリ・エントリ中に
記憶する。
Castout / Lock release command:
The unlock castout lock command resets the castout lock to zero and stores its user data field in the directory entry for the namelist.

【0048】−書込み及び登録コマンド:書込み及び登
録コマンドは、変更制御がデータの変更状態と一致する
とき、そのデータ・ブロックの内容をデータ域に記憶
し、ローカル・キャッシュ・エントリを登録する。
Write and Register Command: The write and register command stores the contents of the data block in the data area and registers a local cache entry when the change control matches the change state of the data.

【0049】−登録時書込みコマンド:登録時書込みコ
マンドは、その名前がディレクトリ中で割り当てられ、
そのローカル・キャッシュ・エントリが登録され、変更
制御がそのデータの変更状態と一致する場合に、データ
・ブロックの内容をデータ域に記憶する。
Write-on-registration command: A write-on-registration command is a command whose name is assigned in the directory,
If the local cache entry is registered and the change control matches the change state of the data, store the contents of the data block in the data area.

【0050】メインライン動作中、データ・ベース・マ
ネージャは、SESキャッシュの記憶域を管理する責任
を負う。データ・ベース・マネージャはまた、SESキ
ャッシュからDASDへの変更済みデータ要素の移動を
管理する責任も負う。初期設定時に確立されたタイムア
ウト間隔により、オペレーティング・システムは、SE
Sキャッシュ域の管理及びSESキャッシュ・データの
DASDへの移動の管理のため、処理ルーチンに周期的
に制御権を与える。上記の機構は、DASDとSESキ
ャッシュの間でのデータ移動の管理をシステム・ソフト
ウェアで実行するための基礎となる。このプリミティブ
・サービスを使ってSESからのデータの書込みとキャ
ストアウトの間の非ブロッキング逐次化プロトコルを実
施する技法が利用される。さらに、上記のプリミティブ
・サービスは、結合システム環境の全体的性能が最適に
なるような形で、SESからDASDへ移動すべき1組
の修正済みデータ要素を決定するための基礎となる。
During mainline operation, the database manager is responsible for managing the storage of the SES cache. The database manager is also responsible for managing the movement of changed data elements from the SES cache to DASD. The timeout interval established at initialization causes the operating system to
The processing routine is periodically given control for managing the S-cache area and managing the transfer of SES cache data to DASD. The above mechanism is the basis for performing management of data movement between DASD and SES cache in system software. Techniques are used to implement a non-blocking serialization protocol between writing and casting out data from SES using this primitive service. Furthermore, the above primitive services are the basis for determining a set of modified data elements to be moved from SES to DASD in such a way that the overall performance of the combined system environment is optimized.

【0051】SESキャッシュからDASDへのデータ
移動を管理するための1つのプロトコルの例は次の通り
である。各キャストアウト・クラスについてキャストア
ウト・クラス情報読取りコマンドが発行され、候補とな
るキャストアウト・クラスが選択される。選択された各
キャストアウト・クラスについて、キャストアウト・ク
ラス読取りコマンドが発行される。最も以前に更新され
たディレクトリ・エントリのリストが戻される。選択さ
れた各ディレクトリ・エントリについてキャストアウト
用読取りコマンドが発行される。SESから読み取った
データをDASDに書き込ませるための入出力要求が作
成される。入出力動作が完了したとき、キャストアウト
・ロック解除コマンドが発行される。
An example of one protocol for managing data movement from SES cache to DASD is as follows. A read castout class information command is issued for each castout class and a candidate castout class is selected. For each selected castout class, a read castout class command is issued. A list of the most recently updated directory entries is returned. A read command for castout is issued for each selected directory entry. An I / O request is created to cause the data read from SES to be written to DASD. When the I / O operation is completed, a castout lock release command is issued.

【0052】[0052]

【実施例】【Example】

概要:本発明は、不揮発性電子メモリの形の共用キャッ
シュ(SES)を含む多重システム・データ共用複合体
の構造、及び異なる可能性もあるいくつかのデータ・バ
ージョンの間でのコヒーレンシを維持しながらデータ資
源を共用するようにキャッシュを動作させる方法を提供
する。
SUMMARY: The present invention maintains the structure of a multi-system data sharing complex that includes a shared cache (SES) in the form of non-volatile electronic memory, and coherency among several potentially different data versions. While operating the cache to share data resources.

【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」と呼ぶ。
If the data coherency strategy in a multi-computer data sharing system requires the writing of updated data pages, an architecture with several important features can be used. Such an architecture is shown in FIG. 1, which comprises a plurality of independently operating computer systems CPC-1 through CPC.
−M, these computer systems share data stored in direct access storage devices (DASD) 109A, 109B-109N. DAS
D109A, 109B-109N may include, for example, a multi-disk disk drive. Characteristically, this is called "secondary storage area". The architecture includes M computer systems CPC-1 through CPC-M, each of which includes a database management system (DBMS), which creates, organizes, and modifies a database containing data on DASD. To control access to data in the database. A high speed non-volatile electronic memory (SES101) is also provided in the system and serves as a cache shared by the computer system. The memory 101 is connected to the computer systems CPC-1 to CPC- by high-speed links 106-1 to 106-M.
M. Hereinafter, this memory 101 will be referred to as “memory”
Or, it is called “NV storage device” or “SES”.

【0054】メモリ101へのアクセスを2次記憶域へ
のアクセスと比較すると、メモリ101は、比較的高速
の半導体メモリであると言える。さらに、メモリ101
のコンピュータ・システムへの接続は、たとえば非常に
高速のデータ転送が可能な光ファイバ通信チャネルによ
る。相対的に言うと、入出力動作は比較的高速のメモリ
101で行われ、一方周知のように、比較的低速のDA
SDによる入出力は数十ミリ秒かかることがある。
When comparing the access to the memory 101 with the access to the secondary storage area, it can be said that the memory 101 is a relatively high-speed semiconductor memory. Further, the memory 101
Is connected, for example, by a fiber optic communication channel that allows very high-speed data transfer. Relatively speaking, input / output operations are performed in a relatively high-speed memory 101, while, as is well known, a relatively low-speed DA
Input and output by SD can take tens of milliseconds.

【0055】メモリ101は、あらゆるメモリの記憶動
作を管理する、好ましくはプロセッサ形式の管理論理機
構110を含んでいる。管理論理機構110は、ローカ
ル・プログラム記憶域と専用メモリとを含む高性能プロ
セッサを備え、このプロセッサは、管理論理機構がコン
ピュータ・システムCPC−1ないしCPC−Mとの間
でメッセージに基づくメモリ・アクセス・トランザクシ
ョンに従事できるようにする。
The memory 101 includes management logic 110, preferably in the form of a processor, which manages the storage operations of any memory. The management logic 110 comprises a high performance processor that includes local program storage and dedicated memory, the processor having a management logic based on messages to and from the computer systems CPC-1 through CPC-M. Be able to engage in access transactions.

【0056】コンピュータ・システムCPC−1ないし
CPC−Mに関しては、これらのエンティティは、それ
ぞれ専用キャッシュを備えた多重プロセッサ・アーキテ
クチャを有し、それぞれIMS/VSまたはDB2型の
データベース管理システムをサポートできる、たとえば
IBM/3090のようなシステムを備えることができ
る。
With respect to the computer systems CPC-1 through CPC-M, these entities each have a multiprocessor architecture with a dedicated cache and can each support an IMS / VS or DB2 type database management system. For example, a system such as IBM / 3090 can be provided.

【0057】本質的に、本発明は、図1に示し上述した
データ共用複合体において実施される。メモリ101中
に、共用キャッシュ103と称する半導体メモリがあ
る。共用キャッシュ103は、従来型の多重ポート高速
ランダム・アクセス・メモリを備えることができ、これ
は不揮発性であることが好ましい。共用キャッシュ10
3は、データ・ブロックを記憶するのに使用される。た
とえば、共用キャッシュ103を使ってデータ・ページ
を記憶することができる。その1ページを111として
示す。
In essence, the invention is implemented in the data sharing complex shown in FIG. 1 and described above. In the memory 101, there is a semiconductor memory called a shared cache 103. Shared cache 103 may include conventional multi-port high-speed random access memory, which is preferably non-volatile. Shared cache 10
3 is used to store a data block. For example, data pages can be stored using shared cache 103. One page is shown as 111.

【0058】SES内の管理論理機構110は、1個ま
たは複数のプロセッサまたはマイクロプロセッサと、そ
れらのプロセッサによって実行可能なプログラムまたは
マイクロプログラムとを備える。これらのプロセッサ
は、CPCコマンドによって送られたメッセージを受け
取り、SES中でそれらのコマンドを実行する。ローカ
ル・キャッシュ制御105及びディレクトリ102は、
管理論理機構110によってアクセスされる。周知のハ
ッシング・ルックアップ・アルゴリズムを使って、SE
Sキャッシュ・ディレクトリにアクセスすることができ
る。ローカル・キャッシュ制御(部)は、複数のエント
リを含むデータ構造であり、各エントリが、メモリ10
1に動作可能に接続されているコンピュータ・システム
を識別する。たとえば、コンピュータ・システムCPC
−1,・・・CPC−Mが接続されているとすると、そ
れらがローカル・キャッシュ制御105中にリストされ
ることになる。
The management logic 110 in the SES comprises one or more processors or microprocessors and programs or microprograms executable by those processors. These processors receive the messages sent by the CPC commands and execute those commands in SES. The local cache control 105 and the directory 102
Accessed by management logic 110. Using the well-known hashing lookup algorithm, SE
You can access the S-cache directory. The local cache control (part) is a data structure including a plurality of entries.
1 identifies a computer system operably connected to the computer system. For example, the computer system CPC
-1,... CPC-M are connected, they will be listed in the local cache control 105.

【0059】共用キャッシュ103は、「ストア・スル
ー」型キャッシュではなく「ストア・イン」型キャッシ
ュとして動作する。「ストア・イン」型キャッシュと
は、更新されたページを、同時に2次記憶域に書き込む
(「ストア・スルーする」)必要なく、書込みができる
キャッシュを言う。
The shared cache 103 operates as a “store-in” type cache instead of a “store-through” type cache. A “store-in” cache is a cache that can be written without having to write updated pages to secondary storage at the same time (“store through”).

【0060】SESキャッシュは、付加プロセッサのネ
ットワーク中の3段記憶階層の構成要素である。この階
層の最低段はDASD、中間段はSESキャッシュ、最
高段はプロセッサ記憶機構中のローカル・キャッシュで
ある。DASDとSESキャッシュはプロセッサによっ
て共用され、それぞれ入出力動作及びメッセージ動作に
よってアクセスされる。ローカル・キャッシュは、各プ
ロセッサ中で定義することができ、CPU命令を使って
アクセスされる。
The SES cache is a component of a three-level storage hierarchy in a network of additional processors. The lowest level of this hierarchy is DASD, the middle level is the SES cache, and the highest level is the local cache in processor storage. DASD and SES cache are shared by the processor and accessed by I / O operations and message operations, respectively. The local cache can be defined in each processor and is accessed using CPU instructions.

【0061】記憶階層中を移動するデータには名前が付
けられる。データ・サイズは可変で、データ域要素のサ
イズの1〜16倍の範囲である。データ域要素サイズは
各SESキャッシュ毎に固定され、2の累乗で最小サイ
ズが256バイトである。名前はプログラミング制御に
よって割り当てられる16バイトの値である。データは
DASD記憶装置中に永続的に常駐する。
Data that moves through the storage hierarchy is given a name. The data size is variable and ranges from 1 to 16 times the size of the data area element. The data area element size is fixed for each SES cache, and the minimum size is a power of 2 and the minimum size is 256 bytes. The name is a 16-byte value assigned by programming control. The data resides permanently in DASD storage.

【0062】データのコピーまたは新しいバージョン
も、SESキャッシュ域またはローカル・キャッシュ域
のどんな組合せ中にも常駐できる。具体的には、データ
項目がSESキャッシュ域には常駐するが、どのローカ
ル・キャッシュ中にも常駐しないこともあり、SESキ
ャッシュ記憶域とローカル・キャッシュの一部に常駐す
ることもあり、またローカル・キャッシュの一部には常
駐するが、SESキャッシュ域には常駐しないこともあ
る。
A copy or a new version of the data can reside in any combination of the SES cache area or local cache area. Specifically, the data item resides in the SES cache area, but may not reside in any of the local caches, may reside in the SES cache storage and part of the local cache, -Resides in a part of the cache, but may not reside in the SES cache area.

【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つの例を示してある。
As an example, assume that the data element referenced in the storage hierarchy is a page. Then, the pages cached in shared cache 103 are identified by software-assigned names.
Therefore, a request for a read or a write in the shared cache 103 is made on the page (P) for which
Must be specified. The directory 102 is
It is indexed by the name of the page that is the subject of a read or write command as before. FIG. 3 shows a representative entry of the directory 102. For the present invention, the important fields of the directory are shown in FIG. It includes a name field 301, a data bit (D) field 303, a data area pointer field 306A-306N, a change bit (C) field 304, a valid bit (V) field 302, a data area size field 307, and a castout. Includes a lock identification (CO) field 308, a castout class field 309, and a local cache register index 305 that provides access to the local cache register entry shown in FIG. The local cache register entry contains the identification (402A-402C) of the local cache added to the SES cache and a valid bit (401A-401C). local·
Two examples are shown that result in different types of entries in the cache register 305.

【0064】上記の例について話を続けると、ページ名
前フィールド301は、管理論理機構110がディレク
トリ102中にインデックスするのに使用するフィール
ドである。管理論理機構110が読取りコマンドまたは
書込みコマンドを受け取ったとすると、そのコマンドに
は、ページを識別するパラメータPの値が付随する。管
理論理機構110はPの値をハッシング・プロセスに提
示し、ハッシング・プロセスは、ページ名が既に存在す
る場合、その名前を用いてディレクトリに迅速にアクセ
スするために管理論理機構110が使用する値を生成す
る。ページ名前フィールドが位置決めされた後、ページ
・アドレス・フィールド306を使って、共用キャッシ
ュ中の識別されたページのアドレスを指示する。
Continuing with the above example, page name field 301 is the field that management logic 110 uses to index into directory 102. Assuming that the management logic 110 receives a read or write command, the command is accompanied by the value of a parameter P that identifies the page. Management logic 110 presents the value of P to the hashing process, which uses the value used by management logic 110 to quickly access the directory using the page name if it already exists. Generate After the page name field is located, the page address field 306 is used to indicate the address of the identified page in the shared cache.

【0065】管理論理機構110は、必要に応じてディ
レクトリ・エントリを作成し管理し削除する。これらの
活動は既知の機構を用いて行われるが、ディレクトリ1
02のエントリの厳密な構造は本発明独特のものであ
る。管理論理機構110は共用キャッシュ103からデ
ータを獲得しそこにデータを入れるため従来通りの構造
になっているが、それが従う読取り動作及び書込み動作
は本発明独特のものである。管理論理機構110はま
た、「キャッシュ・ミス」応答及び「キャッシュ・ヒッ
ト」応答を生成する通常のキャッシュ管理能力を備えて
いる。これらの応答は、共用キャッシュ111に接続さ
れているコンピュータ・システムから発行されるコマン
ドに応答して生成される。「キャッシュ・ミス」は、識
別されたデータ要素(たとえばページ)が共用キャッシ
ュ111中に存在しないことを示し、「キャッシュ・ヒ
ット」は、識別されたデータ要素(たとえばページ)が
共用キャッシュ111中にあることを示す。
The management logic 110 creates, manages, and deletes directory entries as needed. These activities are performed using known mechanisms, but directory 1
The exact structure of the 02 entry is unique to the present invention. The management logic 110 has a conventional structure for obtaining and putting data from the shared cache 103, but the read and write operations that it follows are unique to the present invention. The management logic 110 also has normal cache management capabilities to generate "cache miss" and "cache hit" responses. These responses are generated in response to commands issued from a computer system connected to the shared cache 111. A “cache miss” indicates that the identified data element (eg, page) is not present in shared cache 111, and a “cache hit” indicates that the identified data element (eg, page) is not in shared cache 111. Indicates that there is.

【0066】コマンドは、図1の多重システム複合体中
のコンピュータ・システム(CPC)によって発生され
る。これらのコマンドは管理論理機構110から応答を
引き出す。本発明者等は、コマンド及び応答がメッセー
ジ・プロトコルによってコンピュータ・システムと管理
論理機構の間で交換されることを企図している。さらに
本発明者は、コマンドを発行するコンピュータ・システ
ムが、管理論理機構110から応答を受け取るまで遅延
を維持できる点で、共用キャッシュ101へのアクセス
が同期的であることを企図している。共用キャッシュ1
01を形成する半導体メモリの速度は、同期メッセージ
受渡し構造に固有の遅延を小さくする。
The commands are generated by a computer system (CPC) in the multi-system complex of FIG. These commands elicit responses from management logic 110. The inventors contemplate that commands and responses are exchanged between the computer system and the management logic by a message protocol. Further, the inventor contemplates that access to shared cache 101 is synchronous in that the computer system issuing the command can maintain a delay until a response is received from management logic 110. Shared cache 1
The speed of the semiconductor memory forming 01 reduces the delay inherent in the synchronous message passing structure.

【0067】本発明者はまた、図1の多重システム・デ
ータ共用複合体のコンピュータ・システムが、通常の手
段、たとえばIBM IMS仕様のシステムの共用ディ
スク機能を用いてDASDへのアクセス権を得ることを
企図している。既知の通り、そのようなアクセスは、読
取りコマンドまたは書込みコマンドがDASDにディス
パッチされる間、コンピュータ・システムが遅延しない
点で、非同期的である。
The inventor has also determined that the computer system of the multi-system data sharing complex of FIG. 1 can obtain access to the DASD using conventional means, for example, the shared disk function of the IBM IMS specification system. Is intended. As is known, such accesses are asynchronous in that the computer system is not delayed while a read or write command is dispatched to DASD.

【0068】図1に示したように、NV記憶装置(SE
S)101はどの2次記憶装置にも直接付加されていな
い。なお、コンピュータ・システムCPC−1ないしC
PC−MのそれぞれのDBMSは、NV記憶装置101
の存在を知っており、その中にキャッシュ記憶されてい
る内容に責任を負っている。図1のシステムでは、更新
済みのデータ要素(たとえばページ)が、DBMSによ
って明示的にNV記憶装置に書き込まれる。
As shown in FIG. 1, the NV storage device (SE
S) 101 is not directly added to any secondary storage device. The computer systems CPC-1 through CPC-1
Each DBMS of the PC-M is stored in the NV storage device 101.
Knows its existence and is responsible for the contents cached therein. In the system of FIG. 1, updated data elements (eg, pages) are explicitly written to NV storage by the DBMS.

【0069】NV記憶装置101中でスチール可能な
(stealable)ページを維持する責任は、コンピュータ
・システム上で実行されるDBMSの1つに委ねられ、
あるいはそれらのDBMSによって共用される。新しい
ページのための使用可能性を確保するためのNV記憶装
置中のページ空間の管理は、更新済みページをキャスト
アウト動作によって周期的にNV記憶装置から2次記憶
装置に書き込むことによって行われる。このキャストア
ウト動作は、トランザクション・コミット動作と非同期
であることが好ましい。データ要素(たとえばページ)
が2次記憶装置に書き込まれる前に複数回更新されるこ
とが望ましいからである。
The responsibility for maintaining stealable pages in NV storage device 101 is left to one of the DBMSs running on the computer system,
Or shared by those DBMS. Management of page space in NV storage to ensure availability for new pages is performed by periodically writing updated pages from NV storage to secondary storage via a castout operation. This castout operation is preferably asynchronous with the transaction commit operation. Data element (for example, page)
Is preferably updated a plurality of times before being written to the secondary storage device.

【0070】図1に示すように、各コンピュータ・シス
テムは、識別されたバッファを含む。このバッファは、
コンピュータ・システムとNV記憶装置101の間で交
換されるデータのステージングを行うために使用され
る。たとえば、コンピュータ・システムCPC−1はバ
ッファ107Aを含み、コンピュータ・システムCPC
−Mにはバッファ107Cが設けられている。データ共
用複合体のすべてのコンピュータ・システムがこのよう
な専用バッファを使用する。さらに、コンピュータ・シ
ステムの1つが管理論理機構110に読取りコマンドま
たは書込みコマンドを供給するとき、そのコンピュータ
・システムは、要求されたデータを入力または獲得すべ
き場所のアドレスをその専用バッファ中に送る。
As shown in FIG. 1, each computer system includes an identified buffer. This buffer is
Used to stage data exchanged between the computer system and the NV storage device 101. For example, the computer system CPC-1 includes the buffer 107A and the computer system CPC-1.
−M is provided with a buffer 107C. All computer systems in the data sharing complex use such dedicated buffers. In addition, when one of the computer systems provides a read or write command to the management logic 110, that computer system sends the address of the location where the requested data should be entered or obtained into its dedicated buffer.

【0071】本発明は、キャストアウトされるデータの
更新を許容する一方で、データを共用キャッシュから2
次記憶域にキャストアウトすることに関する。データ要
素(たとえばページ)は、更新されると、2次記憶域中
のその更新済みバージョンと整合性をもつようになるま
で、「ダーティ」であると見なされる。データ要素(た
とえばページ)に対するディレクトリ・エントリ中の変
更ビットが0のとき、そのページは「クリーン・ペー
ジ」と呼ばれる。なお、この場合のページのDASD中
のバージョンは共用キャッシュ101中の対応するペー
ジのバージョンと同じである。逆にそのページに対する
変更ビット(C)が1のときは、そのページは「ダーテ
ィ」であり、そのキャッシュ記憶されたページのバージ
ョンは2次記憶域中のページのバージョンと異なってい
る(それよりも新しい)。
The present invention allows data to be updated from the shared cache while allowing the data to be cast out to be updated.
Regarding casting out to secondary storage. Once updated, a data element (eg, page) is considered "dirty" until it becomes consistent with its updated version in secondary storage. When the change bit in the directory entry for a data element (eg, a page) is 0, the page is called a "clean page." Note that the version of the page in DASD in this case is the same as the version of the corresponding page in the shared cache 101. Conversely, if the change bit (C) for the page is 1, the page is "dirty" and the version of the cached page is different from the version of the page in secondary storage (from Also new).

【0072】本発明は、1組の独自のコマンド、及びそ
れらのコマンドの実行の結果生じる変更を、影響を受け
るディレクトリ・エントリ中に登録することを基礎とし
ている。
The present invention is based on registering a set of unique commands and the changes resulting from their execution in the affected directory entries.

【0073】ローカル・キャッシュ:ローカル・キャッ
シュ(LC)は、米国特許出願第860797号に記載
のローカル・キャッシュを含むCPC上のSESサポー
ト機構に対して定義される。CPC命令がSESサポー
ト機構中で制御を初期設定し、ローカル・キャッシュ・
トークンを割り当てる。ローカル・キャッシュのサイズ
はシステム毎に変わる。各ローカル・キャッシュは、1
つまたは複数のローカル・キャッシュ・バッファ(LC
B)107を含んでいる。
Local Cache: A local cache (LC) is defined for the SES support mechanism on a CPC that includes a local cache as described in US Patent Application No. 860797. A CPC instruction initializes control in the SES support facility and the local cache
Assign a token. The size of the local cache varies from system to system. Each local cache is 1
One or more local cache buffers (LC
B) 107.

【0074】SESキャッシュ:SESキャッシュは、
データ域要素とディレクトリの集合体からなるSES中
の構造である。これは構造識別子で指定される。SES
キャッシュは、キャッシュ構造割振りコマンドによって
作成される。このコマンドは、プロセッサで初期設定手
段によって発行され、SESキャッシュの属性、すなわ
ちデータ域要素のサイズと数、ディレクトリ・エントリ
の数、記憶クラスの数、キャストアウト・クラスの数を
決定する。
SES cache: The SES cache is
This is a structure in SES that is composed of a collection of data area elements and directories. This is specified by a structure identifier. SES
The cache is created by a cache structure allocation command. This command is issued by the initialization means in the processor and determines the attributes of the SES cache, namely the size and number of data area elements, the number of directory entries, the number of storage classes, and the number of castout classes.

【0075】ローカル・キャッシュは、ローカル・キャ
ッシュ付加コマンドによってSESキャッシュに付加さ
れる。このコマンドは、SES機構中の制御を初期設定
し、生成済みのコマンドをSESキャッシュがSESサ
ポート機構に発行する際に使用する1組の経路とローカ
ル・キャッシュとを関連付ける。ローカル・キャッシュ
は、SESキャッシュに付加されて、記憶階層に参加で
きるようになる。ローカル・キャッシュ中とSESキャ
ッシュ中のデータのコピーのコヒーレンシは、SESキ
ャッシュ中の制御によって維持され、様々なSESサポ
ート機構に生成済みコマンドとして発行される相互無効
化(XI)コマンドによって実施される。キャッシュ・
コヒーレンシのプロセスは米国特許出願第860805
号に記載されている。
The local cache is added to the SES cache by a local cache addition command. This command initializes the controls in the SES facility and associates the local cache with a set of paths that the SES cache uses to issue generated commands to the SES support facility. The local cache is added to the SES cache, allowing it to participate in the storage hierarchy. Coherency of copies of data in the local cache and in the SES cache is maintained by controls in the SES cache and is enforced by cross-invalidate (XI) commands issued as generated commands to various SES support mechanisms. cache·
The coherency process is described in US patent application Ser. No. 860,805.
No.

【0076】SESキャッシュ・ディレクトリ:SES
キャッシュ・ディレクトリは、連想式(アソシアティ
ブ)アレイとして配列された複数のディレクトリ・エン
トリの集合体である。ディレクトリ・エントリは記憶ク
ラスに区分される。変更済みディレクトリ・エントリの
グループはキャストアウト・クラスに区分される。名前
付きのデータ・オブジェクトが記憶階層の上の2段に置
かれたときは、その状態と位置がSESキャッシュ・デ
ィレクトリによって登録される。状態情報は、そのデー
タが変更済みか、未変更か、それともキャストアウト用
にロック済みかを示す。位置情報には、そのデータがS
ESキャッシュ域中に常駐するかどうか、及びどのロー
カル・キャッシュにコピーが含まれるかがある。(位置
406A〜NのポインタによってSESキャッシュ・デ
ータ域中で位置決めされる)レコードは、その中で、レ
コード、データ要素、データ項目、ブロック、ページな
どいくつかの異なる項目のどれによっても参照される。
ある種のSES読取りコマンド及びSES書込みコマン
ドが、SESキャッシュ・ディレクトリ中にローカル・
キャッシュ・コピーを登録する。SES書込みコマンド
及びSES無効化コマンドが、ローカル・コピーの登録
を解除する。
SES cache directory: SES
A cache directory is a collection of directory entries arranged as an associative array. Directory entries are partitioned into storage classes. The group of changed directory entries is divided into castout classes. When a named data object is placed in the upper two levels of the storage hierarchy, its state and location are registered by the SES cache directory. The status information indicates whether the data has changed, has not changed, or has been locked for castout. In the position information, the data is S
Whether it resides in the ES cache area and which local cache contains the copy. A record (located in the SES cache data area by a pointer at position 406A-N) is referenced therein by any of several different items such as a record, data element, data item, block, page, and the like. .
Certain SES read and write commands are stored locally in the SES cache directory.
Register a cache copy. The SES write command and the SES invalidation command deregister the local copy.

【0077】ローカル・キャッシュ・エントリ有効状
態:データがローカル・キャッシュ中にあるとき、その
データの状況は有効か無効かである。ローカル・キャッ
シュ・エントリの有効状態は、SESサポート機構中の
制御によって維持される。データはCPU命令によって
有効にされ、SES書込み動作及びSES無効化動作に
関連する無効化プロセスによって無効とされる。データ
の有効状態はCPU命令によってテストされる。有効な
名前付きデータ・オブジェクトはSESキャッシュ・デ
ィレクトリ中に登録しなければならない。ローカル・キ
ャッシュ・コヒーレンシは無効化プロセスによって維持
される。これらの制御を使ってデータのコヒーレンシを
維持するプロセスは、米国特許出願第860805号に
記載されている。
Local cache entry valid state: When data is in the local cache, the status of the data is valid or invalid. The valid state of the local cache entry is maintained by control in the SES support facility. Data is validated by CPU instructions and invalidated by an invalidation process associated with SES write and SES invalidation operations. The valid state of the data is tested by a CPU instruction. A valid named data object must be registered in the SES cache directory. Local cache coherency is maintained by the invalidation process. The process of maintaining data coherency using these controls is described in U.S. Patent Application No. 860805.

【0078】キャストアウト・プロセス:SESキャッ
シュ記憶域は、通常DASD記憶域よりも小さい。従っ
て、変更済みデータをSESキャッシュからバックアッ
プDASDに周期的に転送しなければならない。このプ
ロセスをキャストアウトと称し、プログラムによって制
御され、以下の動作を必要とする。 −SES読取リ(SES-read)動作が発行されて、キャス
トアウト逐次化をセットし、データ・ ブロックを主記
憶装置へコピーする。 −入出力動作が実行されて、データ・ブロックをDAS
Dへコピーする。 −SESロック解除(SES-unlock)動作が発行されて、
キャストアウト逐次化を解除する。
Castout process: SES cache storage is usually smaller than DASD storage. Therefore, the changed data must be periodically transferred from the SES cache to the backup DASD. This process is called castout and is controlled by the program and requires the following actions: An SES-read operation is issued to set castout serialization and copy the data block to main storage. An I / O operation is performed to DAS the data block
Copy to D. -An SES-unlock operation is issued,
Release castout serialization.

【0079】このプロセスに関連するデータ・オブジェ
クトは、SESキャッシュによってキャストアウト・ク
ラス中で維持される。キャストアウト・クラスは、プロ
グラムがDASDへのデータ転送を一回の入出力動作で
バッチ処理できるようにすることによって、キャストア
ウト・プロセスの効率を改善するのに使用される。DA
SDとSESキャッシュの間でのデータの移動を実行す
るプロセスが、本発明の主題である。
The data objects associated with this process are maintained in a castout class by the SES cache. The castout class is used to improve the efficiency of the castout process by allowing a program to batch data transfers to DASD in a single I / O operation. DA
The process of performing the movement of data between SD and SES cache is the subject of the present invention.

【0080】再利用プロセス:最も以前に使用された
(LRU)未変更のデータ及びディレクトリ資源は、新
しい要求を満たすために必要なとき、SESキャッシュ
によって再利用(reclaim)される。データ・オブジェ
クトはプログラムによっていくつかの記憶クラスの1つ
にマップされる。各クラスは、再利用プロセスを制御す
るための再利用ベクトルを有する。これによって、作業
負荷特性の変化を補償するように、記憶クラス間でのS
ES記憶域の割当てを動的に調節することが可能にな
る。再利用ベクトルは、プログラムによって初期設定さ
れる。こうしたSESキャッシュ域管理オブジェクトを
利用するプロセスは、米国特許出願第806807号の
主題である。
Reclaim Process: The least recently used (LRU) unmodified data and directory resources are reclaimed by the SES cache as needed to satisfy new requests. Data objects are mapped by the program into one of several storage classes. Each class has a reuse vector for controlling the reuse process. This allows S between storage classes to compensate for changes in workload characteristics.
It is possible to dynamically adjust the ES storage allocation. The reuse vector is initialized by the program. The process of utilizing such SES cache area management objects is the subject of U.S. patent application Ser. No. 806,807.

【0081】計装(Instrumentation):記憶クラス間
でのデータの割振り及びキャストアウト・プロセスの助
けとして、計装情報がプログラムに与えられる。
Instrumentation: Instrumentation information is provided to the program to assist in the data allocation and storage process between storage classes.

【0082】キャッシュ構造:各SESキャッシュ構造
毎に1組のキャッシュ構造オブジェクトが確立される。
キャッシュ構造オブジェクトは、以下のものからなる。 −キャッシュ制御(部) −ディレクトリ −キャストアウト・クラス制御(部)
Cache Structure: A set of cache structure objects is established for each SES cache structure.
The cache structure object consists of: -Cache control (part)-Directory-Castout class control (part)

【0083】キャッシュ制御(部): 最大キャストアウト・クラス(MCC):キャストアウ
ト・クラスの数を指定する、2バイトの符号なし2進整
数。有効なキャストアウト・クラスの値は、1から最大
キャストアウト・クラスの値までの範囲である。
Cache control (part): Maximum castout class (MCC): A 2-byte unsigned binary integer that specifies the number of castout classes. Valid castout class values range from 1 to the maximum castout class value.

【0084】LCIDベクトル(LCIDV):初期値
が0のビット・ストリング。ビット位置は0からスター
トし、順次増大する。ストリング中の位置(i)にある
ビットは、LCID値が(i)のローカル・キャッシュ
が付加されるとき、1にセットされる。このビットが1
のとき、ローカル・キャッシュ識別子が割り当てられ
る。位置(i)にあるビットは、ローカル・キャッシュ
が除去され、LCIDの割当て解除が要求されたとき、
あるいはキャッシュ構造が割振り解除されるとき、0に
リセットされる。このビットが0のとき、ローカル・キ
ャッシュ識別子は割り当てられない。
LCID Vector (LCIDV): A bit string whose initial value is 0. The bit positions start from 0 and increase sequentially. The bit at position (i) in the string is set to 1 when the local cache with LCID value (i) is added. This bit is 1
, A local cache identifier is assigned. The bit at position (i) indicates when the local cache has been purged and an LCID deallocation was requested.
Alternatively, it is reset to 0 when the cache structure is deallocated. When this bit is 0, no local cache identifier is assigned.

【0085】ローカル・キャッシュ制御(部):ローカ
ル・キャッシュ制御は、ローカル・キャッシュがSES
キャッシュに付加されるとき、初期設定され、ローカル
・キャッシュ識別子が割当て解除されるとき、削除され
る。ローカル・キャッシュ制御は、ローカル・キャッシ
ュ識別子が割り当てられているとき有効である。
Local cache control (part): The local cache control is performed when the local cache
Initialized when added to the cache and deleted when the local cache identifier is deallocated. Local cache control is valid when a local cache identifier is assigned.

【0086】ディレクトリ:ディレクトリとは、SES
キャッシュ及び付加ローカル・キャッシュ用の状態情報
及び位置情報の貯蔵場所である。SES中に現れる名前
付きデータ・ブロックはそれぞれ関連するディレクトリ
・エントリを有する。ディレクトリ・エントリは、連想
式(アソシアティブ)アレイとして配列され、名前フィ
ールドの値を使ってアクセスされる。
Directory: The directory is the SES
This is a storage location of state information and location information for the cache and additional local cache. Each named data block appearing in the SES has an associated directory entry. Directory entries are arranged as an associative array and are accessed using the value of the name field.

【0087】ディレクトリ・エントリの諸フィールド
(図3)は、以下のようにまとめられる。 −キャストアウト・クラス −キャストアウト・ロック −変更ビット −データ・ビット −データ域サイズ −ローカル・キャッシュ・レジスタ −名前 −有効ビット −ユーザ・データ・フィールド
The fields of the directory entry (FIG. 3) are summarized as follows. -Castout class-castout lock-change bit-data bit-data area size-local cache register-name-valid bit-user data field

【0088】キャストアウト・クラス(CCL)(30
9):その名前に対して割り当てられたキャストアウト
・クラスを識別する、2バイトの値。
The castout class (CCL) (30
9): A two-byte value that identifies the castout class assigned to the name.

【0089】キャストアウト・ロック(CO)(30
8):データのキャストアウト状態を示す2バイトの
値。キャストアウト・ロックが0のとき、そのデータは
キャストアウトされていない。キャストアウト・ロック
が0でないときは、キャストアウト・ロックの第1バイ
トの値が、そのデータ・ブロックをSESキャッシュか
らDASDにキャストアウトしているローカル・キャッ
シュを識別する。第2バイトの値は、ローカル・システ
ム上のキャストアウト・プロセスを識別する。キャスト
アウト・ロックが0でないときは、データ・ビットは1
でなければならない。
Cast Out Lock (CO) (30)
8): A 2-byte value indicating the castout state of data. When the castout lock is zero, the data has not been castout. When the castout lock is non-zero, the value of the first byte of the castout lock identifies the local cache that is casting out the data block from the SES cache to DASD. The value of the second byte identifies the castout process on the local system. If the castout lock is not zero, the data bit is one.
Must.

【0090】変更ビット(C)(304):キャストア
ウト・ロックとあいまって、データの変更済み状態を示
す、1ビットの値。変更ビットが1のとき、そのデータ
は変更された状態でキャッシュ記憶されている。変更ビ
ットが0で、データがキャストアウト用にロックされて
いないときは、データはキャッシュ記憶されていない
か、あるいはキャッシュ記憶されているが変更されてい
ない。変更ビットが0で、データがキャストアウト用に
ロックされているときは、そのデータは変更された状態
でキャッシュ記憶されている。データが変更済み状態の
ときは、そのデータの最新バージョンがキャッシュ中に
常駐する。変更ビットが1のとき、データ・ビットも1
でなければならない。
Change Bit (C) (304): A one-bit value indicating the changed state of the data in combination with the castout lock. When the change bit is 1, the data is cached in a changed state. If the change bit is 0 and the data is not locked for castout, the data has not been cached or has been cached but not changed. If the change bit is 0 and the data is locked for castout, the data is cached in a modified state. When data is in the modified state, the latest version of the data resides in the cache. When the change bit is 1, the data bit is also 1
Must.

【0091】データ・ビット(D)(303):データ
がSESキャッシュ中にあるかどうかを示す、1ビット
の値。データ・ビットが1のとき、そのデータはキャッ
シュされている。データ・ビットが0のときは、そのデ
ータはキャッシュされていない。
Data bit (D) (303): A one-bit value indicating whether data is in the SES cache. When the data bit is 1, the data has been cached. When the data bit is 0, the data is not cached.

【0092】データ域サイズ(DAS)(307):デ
ータ域のサイズをデータ域要素サイズの整数倍として指
定する、5ビットの符号なし2進整数。ディレクトリ・
エントリが割り当てられているとき、初期値は0であ
り、データ・ビットが1にセットされるまで0である。
Data area size (DAS) (307): 5-bit unsigned binary integer that specifies the size of the data area as an integer multiple of the data area element size. directory·
When an entry is assigned, the initial value is 0 and is 0 until the data bit is set.

【0093】ローカル・キャッシュ・レジスタ(LC
R)(図4):ローカル・キャッシュ・レジスタとは、
データ・ブロックのローカルにキャッシュされたコピー
の記憶場所に関する情報を含むテーブルである。テーブ
ルの各行が1つのディレクトリ・エントリに対応する。
欄には、ローカル・キャッシュ識別子(402A、40
2B、402C)とローカル・キャッシュ・エントリ番
号に関する有効ビット(401A、401B、401
C)が含まれる。
The local cache register (LC
R) (FIG. 4): What is a local cash register?
5 is a table that contains information about the storage locations of locally cached copies of data blocks. Each row of the table corresponds to one directory entry.
In the column, the local cache identifier (402A, 40
2B, 402C) and valid bits (401A, 401B, 401) relating to the local cache entry number.
C) is included.

【0094】図4の例Bは、ローカル・キャッシュ・レ
ジスタ(LCR)構造の一実施例を示すものである。こ
のエントリは、j個のLCIDフィールドを含み、jは
シスプレックス中のSESキャッシュに付加できるロー
カル・キャッシュの最大数である。LCR中の各エント
リは、有効ビット(V)を含む。このVビットは、その
フィールドがあるLCIDを表す場合に、1にセットさ
れる。Vが0の場合は、そのフィールドはどんなLCI
D値も表さない。
Example B of FIG. 4 illustrates one embodiment of a local cache register (LCR) structure. This entry contains j LCID fields, where j is the maximum number of local caches that can be added to the SES cache in the sysplex. Each entry in the LCR contains a valid bit (V). This V bit is set to 1 if the field represents a certain LCID. If V is 0, the field is whatever LCI
It does not represent the D value.

【0095】LCID値は、ローカル・キャッシュをS
ESキャッシュに接続することを求める要求が行われた
とき、オペレーティング・システムのソフトウェアによ
って割り当てられる。LCR中の諸エントリは、LCI
D値の順に並べられる。LCID1に関する有効フィー
ルドが最初のLCRエントリ位置にあり、LCID2に
関する有効フィールドが第2のLCRエントリ位置にあ
り、以下同様にLCIDjに関する有効なLCENフィ
ールドまで続く。
The LCID value can be found in the local cache by S
Allocated by operating system software when a request is made to connect to the ES cache. The entries in the LCR are LCI
They are arranged in the order of the D values. The valid field for LCID1 is at the first LCR entry position, the valid field for LCID2 is at the second LCR entry position, and so on until the valid LEN field for LCIDj.

【0096】名前(N)(301):名前は、名前付き
データ・オブジェクトがキャッシュ中で登録されるとき
にプログラムによって指定される16バイトの値を含
む。
Name (N) (301): The name contains a 16-byte value specified by the program when the named data object is registered in the cache.

【0097】有効ビット(V)(302):ディレクト
リ・エントリの有効状態を示す、1ビットのフィール
ド。可能な値は、無効を表す0と有効を表す1の2つで
ある。ディレクトリ・エントリは無効状態に初期設定さ
れる。無効状態のとき、そのディレクトリ・エントリ
が、ある名前の割当てに使用可能である。有効状態は、
その名前が割当て済みであることを示し、そのディレク
トリ・エントリ中の残りの諸フィールドは有効である。
Valid bit (V) (302): 1-bit field indicating the valid state of the directory entry. There are two possible values: 0 for invalid and 1 for valid. Directory entries are initialized to the invalid state. When in the invalid state, the directory entry is available for a name assignment. The valid state is
Indicates that the name has been assigned, and the remaining fields in the directory entry are valid.

【0098】ユーザ・データ・フィールド(UDF)
(310):ユーザ・データ・フィールドは、データが
SESキャッシュ中で最初に変更されたときそのデータ
に関連付けられる、8バイトの値を含み、データ・テー
ブル・エントリが再使用されるまで維持される。データ
が変更された状態でキャッシュ記憶されているとき、ユ
ーザ・データ・フィールドは有効である。
User data field (UDF)
(310): The user data field contains an 8-byte value associated with the data when it was first changed in the SES cache, and is maintained until the data table entry is reused. . The user data field is valid when the data is cached in a modified state.

【0099】キャストアウト・クラス制御:キャストア
ウト・クラス制御は以下のものからなる。 −キャストアウト・クラス・カウント(CCC) −キャストアウト・クラス待ち行列(CCQ)
Castout class control: The castout class control consists of: -Castout class count (CCC)-castout class queue (CCQ)

【0100】キャストアウト・クラス・カウント(CC
C):あるキャストアウト・クラスに関連する、4バイ
トの符号なし2進整数。その値は、そのキャストアウト
・クラスのディレクトリ・エントリに割り当てられたデ
ータ域要素の数を示す。このカウントは、そのキャスト
アウト・クラスに関して変更信号が処理されたとき、登
録済み時書込みコマンドまたは書込み及び登録コマンド
上で戻され、そのキャストアウト・クラスが指定の範囲
内にあるとき、キャストアウト・クラス情報読取りコマ
ンド上で戻される。
Castout class count (CC
C): 4-byte unsigned binary integer associated with a castout class. The value indicates the number of data area elements assigned to the castout class directory entry. This count is returned on a write-when-registered or write-and-register command when the change signal is processed for that castout class, and when the castout class is within the specified range, Returned on read class information command.

【0101】キャストアウト・クラス待ち行列(CC
Q):キャストアウト・クラス中のディレクトリ・エン
トリを指定するディレクトリの順番に並べた部分集合。
この待ち行列は更新の順に並べられ、最近に更新された
ディレクトリ・エントリが待ち行列の一番下になり、最
も以前に更新されたエントリが待ち行列の一番上に来
る。キャッシュ中の各キャストアウト・クラスごとにキ
ャストアウト・クラス待ち行列が存在する。
The castout class queue (CC
Q): A subset of directories that specify directory entries in the castout class, arranged in order.
The queue is ordered by update, with the most recently updated directory entries at the bottom of the queue and the most recently updated entries at the top of the queue. There is a castout class queue for each castout class in the cache.

【0102】キャストアウト・クラス・カウント及び合
計変更済みカウントは、キャストアウト処理を開始する
ために、周期的に閾値と比較される。これは、下記のど
ちらかの方式で行われる。
[0102] The castout class count and total changed count are periodically compared to a threshold to initiate the castout process. This is done in one of the following ways.

【0103】−事象駆動キャストアウト:各書込み動作
の後に、変更されたデータ要素のカウントが比較され
る。これによって、書込みコマンドが発生し、定義され
た閾値を超えたとき、指定されたキャストアウト・クラ
スに関するキャストアウト処理がトリガされる。この比
較は、トランザクション処理の一部である。
Event-Driven Castout: After each write operation, the count of changed data elements is compared. This triggers a castout process for the specified castout class when a write command occurs and exceeds a defined threshold. This comparison is part of the transaction processing.

【0104】−タイマ駆動キャストアウト:時間調整さ
れた間隔で1組のカウンタが要求される。この比較は背
景プログラムの一部であり、どのトランザクション処理
の一部でもない。キャストアウト処理に対する応答性と
カウントを得る際のトランザクション・オーバヘッドの
間の平衡を保たなければならない。
Timer-driven castout: a set of counters is required at timed intervals. This comparison is part of the background program and not part of any transaction processing. A balance must be struck between responsiveness to the castout process and transaction overhead in obtaining the count.

【0105】キャッシュ構造オペランド:SESとDA
SDの間でのデータ移動に関係するキャッシュ構造オペ
ランドについて以下に要約する。
Cache structure operand: SES and DA
The cache structure operands involved in moving data between SDs are summarized below.

【0106】変更制御(CHGC):そのデータの書込
みにどのプロセスが使用されるかを選択する、1ビット
の値。可能な2つの値は次の通りである。 0 データを未変更のままで書き込む 1 データを変更された状態で書き込む
Change control (CHGC): A one-bit value that selects which process is used to write the data. The two possible values are: 0 Write data unchanged. 1 Write data changed.

【0107】ローカル・キャッシュ識別子(LCI
D):ローカル・キャッシュを識別する、1バイトの符
号なし2進整数。
The local cache identifier (LCI
D): One byte unsigned binary integer identifying the local cache.

【0108】名前(N):記憶階層中のデータ・ブロッ
クを識別する16バイトの値。
Name (N): A 16-byte value that identifies a data block in the storage hierarchy.

【0109】名前マスク(NM):名前の比較に使用さ
れるバイトを決定する2バイトの値。
Name Mask (NM): A two-byte value that determines the bytes used for name comparison.

【0110】名前置換制御(NRC):名前置換プロセ
スを制御する、1ビットの値。 0 置換を抑制する 1 名前を置換する
Name Replacement Control (NRC): A one-bit value that controls the name replacement process. 0 Suppress replacement 1 Replace name

【0111】置換名(RN):ローカル・キャッシュ中
で置換されるデータ・ブロックを識別する、16バイト
の値。
Replacement Name (RN): A 16 byte value that identifies the data block to be replaced in the local cache.

【0112】再開トークン(RT):複数のコマンドに
またがるディレクトリに対する動作の処理を制御する、
8バイトの値。
Resume token (RT): controls processing of an operation for a directory that spans a plurality of commands.
8-byte value.

【0113】キャッシュ構造の諸プロセス:キャストア
ウト・クラス除去プロセスが指定されたディレクトリ・
エントリについて行われる。その処理は以下の通りであ
る。 −ディレクトリ・エントリが、そのディレクトリ・エン
トリ中で指定されたキャストアウト・ クラス待ち行列
から除去される。 −そのディレクトリ・エントリ中で指定されたキャスト
アウト・クラスのキャストアウ ト・クラス・カウント
が減分される。 −そのディレクトリ・エントリを含む記憶クラスの合計
変更済みカウントが減分される。
Cache Structure Processes: Castout Class Removal Directory Designated Directory
This is done for the entry. The processing is as follows. -The directory entry is removed from the castout class queue specified in the directory entry. -The castout class count of the castout class specified in the directory entry is decremented. -The total changed count of the storage class containing the directory entry is decremented.

【0114】変更信号の処理:変更信号は、指定された
データ域及びキャストアウト・クラスについて処理され
る。その処理は次の通りである。
Change signal processing: Change signals are processed for a specified data area and castout class. The processing is as follows.

【0115】−変更ビットがディレクトリ・エントリ中
でセットされ、データが変更された状態でキャッシュ記
憶されることを示す。
The change bit is set in the directory entry to indicate that the data is cached in a modified state.

【0116】−変更信号がそのディレクトリ・エントリ
に関して処理された最初の変更信号である場合、ユーザ
・データ・フィールドがそのディレクトリ・エントリ中
に記憶される。最初の変更信号が発生するのは、データ
が当初はキャッシュ記憶されていないとき、あるいは未
変更のままでキャッシュ記憶されているときである。デ
ータが最初に変更された状態でキャッシュ記憶されてい
るときは、変更信号は2番目以降の変更信号であり、ユ
ーザ・データ・フィールドは記憶されない。
If the change signal is the first change signal processed for the directory entry, the user data field is stored in the directory entry. The first change signal occurs when the data is not initially cached, or is cached unmodified. When the data is cached with the first change, the change signal is the second and subsequent change signals, and the user data field is not stored.

【0117】−キャストアウト・クラスがディレクトリ
・エントリに記憶され、このディレクトリ・エントリが
キャストアウト待ち行列の一番底部に入れられる。これ
は、あるキャストアウト・クラスにおける最初の配置
(placement)であることも、クラス指定の変更を表す
ことも、またそのキャストアウト・クラス内のデータの
更新であることもある。
The castout class is stored in the directory entry, and this directory entry is placed at the bottom of the castout queue. This may be the initial placement in a castout class, may represent a change in class specification, or may be an update of the data in that castout class.

【0118】−キャストアウト・カウントが更新され
る。これがあるキャストアウト・クラスにおける最初の
配置である場合、キャストアウト・クラス・カウントが
1だけ増分される。これがクラスの変更である場合は、
原始クラスのキャストアウト・クラス・カウントが減分
され、目標キャストアウト・クラスのキャストアウト・
クラス・カウントが1だけ増分される。これがキャスト
アウト・クラス内での更新である場合は、キャストアウ
ト・クラス・カウントは更新されない。
The castout count is updated. If this is the first placement in a castout class, the castout class count is incremented by one. If this is a class change,
The castout class count of the source class is decremented and the castout class count of the target castout class is decremented.
The class count is incremented by one. If this is an update in a castout class, the castout class count is not updated.

【0119】ディレクトリ・エントリ中の変更ビットの
設定は、コマンドの完了前に行わなければならない。
The setting of the change bit in the directory entry must be done before the completion of the command.

【0120】名前の割当て:名前割当ては、無効のディ
レクトリ・エントリを得、それを無効とマークし、その
名前を初期設定し、当該ディレクトリ・エントリをディ
レクトリに付加することにより、指定された名前に関し
て処理される。
Name Assignment: A name assignment obtains an invalid directory entry, marks it invalid, initializes its name, and appends the directory entry to the directory to provide a name entry. It is processed.

【0121】使用可能な無効のディレクトリ・エントリ
がないときは、有効なディレクトリ・エントリがSES
によって再利用され、その現内容をクリアされ、ディレ
クトリに付加される。未変更の最古の(最も以前に使用
された)ディレクトリ・エントリが再利用される。
If no invalid directory entry is available, a valid directory entry is
Is reused, its current contents are cleared, and it is added to the directory. The oldest (oldest used) directory entry that has not changed is reused.

【0122】名前比較:名前比較は、バイト・レベルの
比較であり、マスク・フィールドによって制御される。
マスク・フィールド中の左から右へ16ビットが、名前
フィールドの左から右へ16バイトと1対1で対応す
る。比較は左から右へ1バイトずつ進められる。マスク
中の対応ビットが1のときは、バイト群が比較される。
そうでない場合は、比較は行われず、次のバイトで動作
が続行される。
Name Comparison: Name comparison is a byte-level comparison and is controlled by a mask field.
The 16 bits from left to right in the mask field correspond one-to-one with 16 bytes from left to right in the name field. The comparison is advanced byte by byte from left to right. When the corresponding bit in the mask is 1, the byte groups are compared.
Otherwise, no comparison is made and operation continues with the next byte.

【0123】変更済みデータの書込み:あるデータ要素
が変更済みの状態で記憶されているとき、指定されたキ
ャストアウト・クラスのキャストアウト・クラス・カウ
ントと、SES中の変更済みデータ要素の合計数とが戻
される。
Write Modified Data: When a data element is stored in a modified state, the castout class count of the specified castout class and the total number of modified data elements in the SES Is returned.

【0124】キャッシュ構造コマンド:以下のコマンド
をプロセス流れ図に示すように、SESでSESオブジ
ェクトに対して取られる措置に関して記述する。 −キャストアウト・クラス読取り(図5) −キャストアウト・クラス情報読取り(図6) −ディレクトリ読取り(図7) −キャストアウト用読取り(図9) −キャストアウト・ロック解除(図10) −読取り及び登録(図11) −書込み及び登録(図12及び13) −登録済み時書込み(図14)
Cache Structure Commands: The following commands describe actions taken on SES objects in SES, as shown in the process flow diagram. -Read castout class information (Fig. 5)-Read castout class information (Fig. 6)-Read directory (Fig. 7)-Read for castout (Fig. 9)-Unlock castout lock (Fig. 10)-Read and Registration (Fig. 11)-Writing and registration (Figs. 12 and 13)-Writing when registered (Fig. 14)

【0125】キャストアウト・クラス読取り:キャスト
アウト・クラス読取りコマンドによって呼び出される諸
プロセスを図5にまとめて示す。キャストアウト・クラ
ス読取りコマンドは、名前ブロック(NB)のリストを
主記憶装置に戻す。名前フィールドがマスク状態の入力
名と一致したとき、ディレクトリ・エントリは処理さ
れ、指定されたキャストアウト・クラス待ち行列に入れ
られる。
Read Castout Class: The processes invoked by the read castout class command are summarized in FIG. The read castout class command returns a list of name blocks (NB) to main storage. When the name field matches the masked input name, the directory entry is processed and enqueued to the specified castout class queue.

【0126】マスクされていないすべてのバイトが等し
い(501)とき、名前比較は成功である。0のマスク
のときは、すべての名前を戻す。
When all unmasked bytes are equal (501), the name comparison is successful. If the mask is 0, all names are returned.

【0127】キャストアウト・クラスが走査される。名
前ブロックが戻されるリストに追加され、マスク状態の
入力名と一致する、そのキャストアウト・クラスの各名
前ごとに1ずつ、処理済みカウントが増分される(50
2)。
The castout class is scanned. A name block is added to the returned list, and the processed count is incremented by one for each name in the castout class that matches the masked input name (50
2).

【0128】キャストアウト・クラスの走査は、再開ト
ークン要求オペランドによって制御される。トークン値
が0のとき処理が開始し、トークン値が非0のときは、
そのトークンが指定する場所から処理が再開される。デ
ータ・ブロックが満杯になったとき、そのキャストアウ
ト・クラス全体の処理が終わったとき、あるいはモデル
依存のタイムアウトを超えたとき、処理は完了される。
データ・ブロックが満杯のとき(503)は、再開トー
クンが生成され(504)、ディレクトリ要素のリスト
(505)及び処理済みカウントと共に戻される。キャ
ストアウト・クラスの終りに達したとき(506)は、
ディレクトリ要素のリストと処理済みカウントがプログ
ラムに戻される(507)。テーブルの終りに達する前
にモデル依存タイムアウトが発生したとき(508)
は、再開トークンが生成され(509)、ディレクトリ
要素のリスト(510)及び処理済みカウントと共に戻
される。
Scanning of the castout class is controlled by the resume token request operand. Processing starts when the token value is 0, and when the token value is non-zero,
Processing resumes from the location specified by the token. Processing is completed when the data block is full, when processing of the entire castout class has finished, or when a model-dependent timeout has been exceeded.
When the data block is full (503), a resume token is generated (504) and returned with a list of directory elements (505) and a processed count. When the end of the castout class is reached (506),
The list of directory elements and the processed count are returned to the program (507). When a model-dependent timeout occurs before reaching the end of the table (508)
Is returned with a resume token generated (509) and a list of directory elements (510) and processed count.

【0129】キャストアウト・クラスの走査は、再開ト
ークンで指定されるディレクトリ・エントリから開始
し、キャストアウト・クラス待ち行列の配列によって指
定される順序で進行する。走査の順序付けは、キャスト
アウト・クラス読取りコマンドの1回ごとの実行につい
て必要であるが、そのコマンドの個々の実行の全体を通
じて必要ではない。連続するキャストアウト・クラス読
取りコマンド間で待ち行列上に移動があると、次の実行
の際に走査開始点の位置が変わる可能性がある。そのた
めにそのキャストアウト・クラス待ち行列の一部の要素
が失われたり、何回も戻されたりする可能性がある。再
開トークンの値が0のときは、走査はそのキャストアウ
ト・クラス待ち行列の一番上から開始する。
The castout class scan begins with the directory entry specified by the resume token and proceeds in the order specified by the castout class queue array. The ordering of the scans is necessary for each execution of the read castout class command, but not throughout the individual execution of that command. Movement on the queue between successive read castout class commands can change the position of the scan start point on the next run. As a result, some elements of the castout class queue may be lost or returned many times. When the value of the restart token is 0, the scan starts at the top of the castout class queue.

【0130】キャストアウト・クラスの全体を戻すに
は、キャストアウト・クラス読取りコマンドを何回も発
行することが必要となることがある。プログラムが整合
性のある完全な待ち行列を必要とする場合、プログラム
は、そのキャストアウト・クラスの走査が完了するま
で、そのキャストアウト・クラスに対する書込み活動が
行われないようにしなければならない。
Returning the entire castout class may require issuing multiple read castout class commands. If the program requires a complete, consistent queue, the program must prevent write activity to the castout class until the scan for that castout class is complete.

【0131】キャストアウト・クラス情報読取りコマン
ドによって呼び出される諸プロセスを図6に要約して示
す。キャストアウト・クラス情報読取りコマンドは、あ
る範囲のキャストアウト・クラスに関する統計を戻す。
キャストアウト・クラスの指定された範囲での最大部分
集合についてのカウンタと最大部分集合の範囲について
のカウンタが、データ・ブロックに置かれる。これらの
カウンタは、キャストアウト・クラスの順序でデータ・
ブロックに置かれる。最初のカウンタは、範囲の始め
(SR)と指定されたキャストアウト・クラス用のカウ
ンタである。最後に記憶されるカウンタは、要求された
範囲のサイズと範囲の終り(ER)の値とに依存する。
範囲の終りの値が最大キャストアウト・クラスの値より
小さく、範囲全体がそのデータ・ブロックに収まるとき
は、最大部分集合はその範囲全体に等しい(601)。
この場合、要求された範囲の始めの値がSRデータ・オ
ペランド中に置かれ、範囲の終りの値がERデータ・オ
ペランド中に置かれる(602)。
The processes invoked by the read castout class information command are summarized in FIG. The read castout class information command returns statistics on a range of castout classes.
A counter for the largest subset in the specified range of the castout class and a counter for the range of the largest subset are placed in the data block. These counters are used to store data in castout class order.
Put on the block. The first counter is the one for the castout class designated as start of range (SR). The last stored counter depends on the size of the requested range and the value of the end of range (ER).
If the value at the end of the range is less than the value of the largest castout class and the entire range fits in the data block, the largest subset is equal to the entire range (601).
In this case, the start value of the requested range is placed in the SR data operand and the end value of the range is placed in the ER data operand (602).

【0132】データ・ブロックが満杯であり、最後に記
憶されたカウンタのキャストアウト・クラス値が最大キ
ャストアウト・クラス値より小さい(603)ときは、
範囲の始め値がSRデータ・オペランド中に置かれ、最
終キャストアウト・クラス値がERデータ・オペランド
中に置かれ(604)、追加のエントリの存在を示す応
答コードが戻される(605)。
If the data block is full and the castout class value of the last stored counter is less than the maximum castout class value (603),
The start of range value is placed in the SR data operand, the final castout class value is placed in the ER data operand (604), and a response code is returned indicating the presence of additional entries (605).

【0133】指定された範囲の終りの値が最大キャスト
アウト・クラス値より大きく、データ・ブロックが満杯
でない(606)ときは、範囲の始め値がSRデータ・
オペランド中に置かれ、最大キャストアウト・クラス値
がERデータ・オペランド中に置かれ(607)、範囲
外れ応答コードが戻される(608)。
If the value at the end of the specified range is greater than the maximum castout class value and the data block is not full (606), then the start value of the range is SR data.
The largest castout class value is placed in the ER data operand (607) and an out-of-range response code is returned (608).

【0134】要求された範囲の始めが最大キャストアウ
ト・クラス値より大きい(609)ときは、SRオペラ
ンドとERオペランド中に0の値が格納され(61
0)、エラー応答が戻される(611)。
If the beginning of the requested range is greater than the maximum castout class value (609), a value of 0 is stored in the SR and ER operands (61).
0), an error response is returned (611).

【0135】ディレクトリ読取り:マスク下ディレクト
リ読取りコマンドによって呼び出されるプロセスを、図
7に要約して示す。このディレクトリ読取りコマンド
は、ディレクトリを走査して、ディレクトリ・エントリ
情報ブロックのリストを戻し、あるいは名前ブロックの
リストを戻す。ディレクトリ・エントリは、名前フィー
ルドがマスク状態の入力名と一致し、変更済み状態が要
求された状態と一致するとき、処理される(701)。
マスクされていないバイトがすべて等しいとき、名前の
比較は成功である(702)。0マスクは、すべての名
前を処理させる。
Read Directory: The process invoked by the Read Directory Under Mask command is summarized in FIG. This read directory command scans the directory and returns a list of directory entry information blocks or a list of name blocks. The directory entry is processed (701) when the name field matches the input name in the mask state and the changed state matches the requested state.
If all the unmasked bytes are equal, the name comparison is successful (702). A 0 mask causes all names to be processed.

【0136】変更状態選択制御が0のとき、マスク状態
の名前と一致するすべてのディレクトリ・エントリが処
理される。変更状態選択制御が1のときは、変更済みま
たはキャストアウト用にロック済みで、マスク状態の名
前と一致する項目だけが処理される。
When the change state selection control is 0, all directory entries that match the name of the mask state are processed. When the change state selection control is 1, only items that have been changed or locked for castout and that match the name of the mask state are processed.

【0137】ディレクトリが走査される。戻されるディ
レクトリ・ブロックのリスト(NB)にディレクトリ・
エントリ情報ブロックが追加され(703及び70
4)、要求が変更済みデータに関するもので、ディレク
トリ・エントリ中の名前がマスク状態の入力名と一致
し、データの変更済み状況が変更状態選択基準と一致す
るとき、処理済みカウントが1だけ増分される。
The directory is scanned. Directory list in the returned directory block (NB)
An entry information block is added (703 and 70).
4) The processed count is incremented by one when the request is for changed data, the name in the directory entry matches the input name in the masked state, and the changed state of the data matches the changed state selection criteria. Is done.

【0138】ディレクトリの走査は、再開トークン要求
オペランドによって制御される。トークン値が0のとき
処理が開始され、トークン値が非0のときは、トークン
によって指定される場所から処理が再開される。データ
・ブロックが満杯のとき、ディレクトリ全体が処理済み
のとき、あるいはモデル依存のタイムアウトを越えたと
き、処理は完了する。データ・ブロックが満杯のとき
(705)、再開トークンが生成され(706)、戻さ
れるディレクトリ・ブロックのリスト及び処理済みカウ
ントと共に戻される(707)。ディレクトリの終りに
達したとき(708)、戻されるディレクトリ・ブロッ
クのリスト(709)と処理済みカウントがプログラム
に戻される。ディレクトリの終りに達する前にモデル依
存のタイムアウトが発生したとき(710)、再開トー
クンが生成され、戻されるディレクトリ・ブロックのリ
スト(712)、及び処理済みカウントと共に戻される
(711)。
The scanning of the directory is controlled by the resume token request operand. When the token value is 0, the process is started. When the token value is non-zero, the process is restarted from the location specified by the token. Processing is complete when a data block is full, when the entire directory has been processed, or when a model-dependent timeout has been exceeded. When the data block is full (705), a resume token is generated (706) and returned (707) with the list of directory blocks returned and the processed count. When the end of the directory is reached (708), the list of directory blocks to return (709) and the processed count are returned to the program. If a model-dependent timeout occurs before reaching the end of the directory (710), a resume token is generated and returned (711) with the list of directory blocks to return (712) and the processed count.

【0139】ディレクトリ・エントリ情報ブロック(D
EIB)のフォーマットを図8に示す。
The directory entry information block (D
FIG. 8 shows the format of EIB).

【0140】ディレクトリを走査するには、ディレクト
リ読取りコマンドを何回も実行する必要がある。ディレ
クトリは走査プロセス中に変化することがある。走査完
了前に処理しなければならないディレクトリ・エントリ
の組は、ディレクトリ走査処理の開始時に存在し有効な
ままである、有効ディレクトリ・エントリからなる。走
査開始後に追加または削除されるディレクトリ・エント
リは処理を受ける必要がない。ディレクトリ・エントリ
は1回だけ処理されればよい。処理後に更新されたディ
レクトリ・エントリは、再度処理を受ける必要はない。
To scan a directory, the directory read command must be executed many times. The directory may change during the scanning process. The set of directory entries that must be processed before the scan is complete consists of valid directory entries that exist and remain valid at the start of the directory scan process. Directory entries that are added or deleted after the scan starts do not need to be processed. Directory entries need only be processed once. Directory entries updated after processing do not need to be processed again.

【0141】キャストアウト用読取り:キャストアウト
用読取りコマンドによって呼び出されるプロセスを図9
に要約して示す。キャストアウト用読取りコマンドは、
名前付きデータ域の内容をローカル・キャッシュに戻
し、その名前をキャストアウトのためにロックする。
Read for Castout: FIG. 9 illustrates the process invoked by the Read for Castout command.
Are summarized below. The read command for castout is
Returns the contents of the named data area to the local cache and locks the name for castout.

【0142】データがキャッシュ記憶され変更された
が、キャストアウトのためにロックされてはいない(9
01)ときは、LCIDオペランドの値をキャストアウ
ト・ロックの第1バイトに格納し、CPIDオペランド
の値をキャストアウト・ロックの第2バイトに格納し、
変更ビットを0にリセットする(902)ことにより、
そのデータがキャストアウト用にロック済みとマークさ
れる。完了を示すデータ応答コードが戻される(90
3)。データは、メッセージ・コマンド・ブロック中の
データ・アドレスによって指定される主記憶場所に戻さ
れ、付属データが存在するときは、それがメッセージ応
答ブロック中に戻される。記憶クラスが増分される。
Data has been cached and modified but not locked for castout (9
01) when the value of the LCID operand is stored in the first byte of the castout lock, the value of the CPID operand is stored in the second byte of the castout lock,
By resetting the change bit to 0 (902),
The data is marked locked for castout. A data response code indicating completion is returned (90
3). The data is returned to the main location specified by the data address in the message command block and, if any ancillary data is present, it is returned in the message response block. The storage class is incremented.

【0143】データがキャストアウトのためにロックさ
れている(904)ときは、キャストアウト進行中ロッ
クの値が戻される(905)。
If the data is locked for castout (904), the value of the castout-in-progress lock is returned (905).

【0144】データがキャッシュ記憶されていないと
き、あるいはキャッシュされているが変更されていない
(906)ときは、このコマンドは例外応答コードで完
了する(907)。
If the data is not cached or cached but not modified (906), the command completes with an exception response code (907).

【0145】ディレクトリに名前が割り当てられていな
い(908)ときは、エラー応答コードが戻される。
If a name has not been assigned to the directory (908), an error response code is returned.

【0146】キャストアウト・ロック解除:キャストア
ウト・ロック・リスト・ロック解除コマンドによって呼
び出されるプロセスを、図10に要求して示す。キャス
トアウト・ロック解除コマンドは、キャストアウト・ロ
ックを0にリセットし、ユーザ・データ・フィールドを
名前リスト用のディレクトリ・エントリ中に格納する。
Unlock Castout Lock: The process invoked by the Unlock Castout Lock List Unlock command is requested and shown in FIG. The unlock castout lock command resets the castout lock to 0 and stores the user data field in the directory entry for the namelist.

【0147】各リスト項目が、SL要求オペランドで指
定される項目から順に処理される。リストの終りに達す
るか、リスト項目の処理でエラーが発生するか、あるい
はモデル依存のタイムアウトを超えるまで、処理は継続
する。各リスト項目の処理は次の通りである。
Each list item is processed sequentially from the item specified by the SL request operand. Processing continues until the end of the list is reached, an error occurs in processing the list item, or a model-dependent timeout is exceeded. The processing of each list item is as follows.

【0148】その名前を含むディレクトリ・エントリが
見つけ出される。データがキャストアウトのためにロッ
クされており、キャストアウト・ロックの値がローカル
・キャッシュ識別子の値と一致するときは、キャストア
ウト・ロックが0にセットされ(1001)、ユーザ・
データ・フィールドがそのディレクトリ・エントリ中に
格納される(1002)。変更ビットと変更ビット過剰
指示(CBO)が共に0の場合は、そのディレクトリ・
エントリがキャストアウト・クラス待ち行列から除去さ
れる(1003)。変更ビットが0で、変更ビット過剰
指示が1の場合は、変更ビットが1にセットされる(1
004)。そのリスト項目についての処理が完了する。
次のリスト項目が処理される。リストの終りに達した場
合(1005)、そのコマンドは完了し、完了応答コー
ドが戻される(1006)。
The directory entry containing the name is found. If the data is locked for castout and the value of the castout lock matches the value of the local cache identifier, the castout lock is set to 0 (1001) and the user
A data field is stored in the directory entry (1002). If both the change bit and the change bit excess indication (CBO) are 0, the directory
The entry is removed from the castout class queue (1003). If the change bit is 0 and the change bit excess indication is 1, the change bit is set to 1 (1
004). The processing for the list item is completed.
The next list item is processed. If the end of the list has been reached (1005), the command is completed and a completion response code is returned (1006).

【0149】ディレクトリに名前が割り当てられ、キャ
ストアウト・ロックがローカル・キャッシュ識別子の値
と一致しない場合(1007)、そのリスト項目は処理
されない。そのリスト項目の値が現リスト項目応答オペ
ランド中に置かれ(1008)、キャストアウト・ロッ
クの値がキャストアウト・ロック値応答オペランド中に
置かれる(1009)。それ以上の処理は行われず、応
答が戻される。
If a name is assigned to the directory and the castout lock does not match the value of the local cache identifier (1007), the list item is not processed. The value of the list item is placed in the current list item response operand (1008) and the value of the castout lock is placed in the castout lock value response operand (1009). No further processing is performed and a response is returned.

【0150】モデル依存のタイムアウトを超えた(10
10)とき、首尾よく処理された最後のリスト項目の値
が現リスト項目応答オペランド中に置かれ(101
1)、タイムアウトを示す応答コードが戻される(10
12)。
The model-dependent timeout was exceeded (10
10) At that time, the value of the last list item that was successfully processed is placed in the current list item response operand (101).
1), a response code indicating a timeout is returned (10
12).

【0151】ディレクトリに名前が割り当てられていな
い(1013)ときは、そのリスト項目は処理されな
い。そのリスト項目の値が現リスト項目応答オペランド
中に置かれる(1014)。それ以上の処理は行われ
ず、応答が戻される(1015)。
If no name is assigned to the directory (1013), the list item is not processed. The value of the list item is placed in the current list item response operand (1014). No further processing is performed and a response is returned (1015).

【0152】非ゼロの応答コードが戻されるとき、その
リストは完全に処理済みではない。CLI応答オペラン
ドが、処理が完了した地点を識別する。指定されたリス
ト項目より前のリスト項目はすべて処理されており、指
定されたリスト項目より後のリスト項目はすべて未処理
である。
When a non-zero response code is returned, the list has not been completely processed. The CLI response operand identifies the point at which processing was completed. All list items before the specified list item have been processed, and all list items after the specified list item are unprocessed.

【0153】例外応答コードが戻されるときは、そのリ
スト項目の処理中にエラーが発生した。プログラムは、
リストの始めオペランド(SL)の値を現リスト項目
(CLI)の値より1つ大きな値にセットしてこのコマ
ンドを再発行することにより、リスト処理を続行するこ
とができる。
When an exception response code is returned, an error occurred during the processing of the list entry. The program is
The list processing can be continued by setting the value of the list start operand (SL) to one greater than the value of the current list item (CLI) and reissuing this command.

【0154】読取り及び登録:図11は、読取り及び登
録コマンドのプロセス流れ図である。読取り及び登録コ
マンドは、名前付きデータ域の内容をローカル・キャッ
シュに戻し、ローカル・キャッシュ・エントリを登録す
る。データがキャッシュされていないときは、登録動作
のみが実行される。読取り及び登録コマンドはまた、そ
の名前が現在割り当てられていないとき、名前をディレ
クトリに割り当てる。
Read and Register: FIG. 11 is a process flow diagram of the read and register command. The read and register commands return the contents of the named data area to the local cache and register a local cache entry. When the data is not cached, only the registration operation is performed. The read and register commands also assign a name to the directory when the name is not currently assigned.

【0155】名前置換制御(NRC)要求オペランドが
1のとき(1101)、置換名及びローカル・キャッシ
ュ識別子の各要求オペランドによって指定されるローカ
ル・キャッシュ・エントリが登録解除される(110
2)。名前置換制御が0のときは、登録解除は行われな
い。
When the name replacement control (NRC) request operand is 1 (1101), the local cache entry specified by the request operands of the replacement name and the local cache identifier is deregistered (110).
2). When the name replacement control is 0, the registration is not canceled.

【0156】データがキャッシュされているとき(11
03)、ローカル・キャッシュ・エントリが登録され
(1104)、参照信号がその記憶クラスに関して開始
され(1105)、データが変更ビットと共に戻される
(1106)。
When data is cached (11
03), a local cache entry is registered (1104), a reference signal is started for that storage class (1105), and the data is returned with a change bit (1106).

【0157】名前がディレクトリに割り当てられている
が、データはキャッシュされていないとき(110
7)、ローカル・キャッシュ・エントリが登録され(1
108)、参照信号がその記憶クラスに関して開始され
る(1109)。
When a name is assigned to a directory but the data is not cached (110
7) The local cache entry is registered (1
108), a reference signal is started for that storage class (1109).

【0158】名前がディレクトリに割り当てられてい
ず、ディレクトリ割当てが抑制されてはいないとき(1
112)、ディレクトリ・エントリ割当て動作が実行さ
れる(1113)。キャッシュが満杯でない場合、ディ
レクトリ・エントリが割り当てられ、ローカル・キャッ
シュ・エントリが登録され(1114)、参照信号がそ
の記憶クラスに関して開始される(1115)。
When a name is not assigned to a directory and directory assignment is not suppressed (1
112), a directory entry allocation operation is performed (1113). If the cache is not full, a directory entry is allocated, a local cache entry is registered (1114), and a reference signal is initiated for that storage class (1115).

【0159】名前がディレクトリ中にリストされてい
ず、割当てが制御されているとき(1111)、そのコ
マンドは完了し、例外応答コードが戻される。
If the name is not listed in the directory and the assignment is controlled (1111), the command is completed and an exception response code is returned.

【0160】書込み及び登録:図12及び13は、書込
み及び登録コマンドのプロセス流れ図である。書込み及
び登録コマンドは、変更制御がデータの変更状態と整合
するとき、データ・ブロックの内容をデータ域に記憶
し、ローカル・キャッシュ・エントリを登録する。
Write and Register: FIGS. 12 and 13 are process flow diagrams of the write and register commands. The write and register commands store the contents of the data block in the data area and register the local cache entry when the change control matches the change state of the data.

【0161】書込み及び登録コマンドはまた、ディレク
トリに現在名前が割り当てられないときには、ディレク
トリ・エントリを割り当てる。
The write and register commands also assign a directory entry when no current name is assigned to the directory.

【0162】名前置換制御(NRC)要求オペランドが
1のとき(1201及び1301)、置換名及びローカ
ル・キャッシュ識別子の各要求オペランドによって指定
されるローカル・キャッシュ・エントリが登録解除され
る(1202及び1302)。名前置換制御が0のとき
は、登録解除は行われない。
When the name replacement control (NRC) request operand is 1 (1201 and 1301), the local cache entry specified by the request operand of the replacement name and the local cache identifier is deregistered (1202 and 1302). ). When the name replacement control is 0, the registration is not canceled.

【0163】データがキャッシュ記憶されていないと
き、データ・テーブル・エントリが割り当てられる(1
203、1204、1303、1304)。ディレクト
リに名前が割り当てられることも割り当てられないこと
もある。割り当てられない場合は、名前の割当ても行わ
れる(1205及び1305)。割当てが成功した場
合、変更制御が0のときはデータが未変更のままでSE
Sキャッシュに書き込まれ(1206及び1210)、
変更制御が1のときは変更された状態で書き込まれ(1
306及び1310)、ローカル・キャッシュ・エント
リが登録される(1207、1211、1307、13
11)。
When data is not cached, a data table entry is assigned (1
203, 1204, 1303, and 1304). Directories may or may not be assigned names. If not, a name is also assigned (1205 and 1305). If the allocation is successful, if the change control is 0, the data remains unchanged and SE
Written to the S-cache (1206 and 1210),
When the change control is 1, the data is written in the changed state (1
306 and 1310), local cache entries are registered (1207, 1211, 1307, 13)
11).

【0164】データが未変更のままで既にキャッシュ記
憶されているとき(1214)、変更制御が0の場合
は、データが未変更のままで書き込まれ(1215)、
変更制御が1の場合はデータが変更された状態で書き込
まれる(1315)。
When the data is already cached without any change (1214), if the change control is 0, the data is written without change (1215).
If the change control is 1, the data is written in a changed state (1315).

【0165】データが変更された状態で既にキャッシュ
記憶され、変更制御が0のとき(1216)、データは
書き込まれず、ローカル・キャッシュ・エントリは登録
されない。変更制御は、データの変更状態と整合しな
い。コマンドが完了し、例外反応コードが戻される。
When the data is already cached in the changed state and the change control is 0 (1216), no data is written and no local cache entry is registered. Change control is inconsistent with the change state of the data. The command completes and returns an exception response code.

【0166】データが変更された状態でキャッシュ記憶
され、変更制御が1のとき(1315)、データは変更
された状態で書き込まれ、成功応答コードが戻される。
Data is cached in a changed state, and when the change control is 1 (1315), the data is written in the changed state and a success response code is returned.

【0167】登録時書込み:図14は、登録時書込みコ
マンドのプロセス流れ図である。登録時書込みコマンド
は、その名前がディレクトリ中で割り当てられ、ローカ
ル・キャッシュ・エントリが登録されており、かつ変更
制御がデータの変更状態と整合する場合に、データ・ブ
ロックの内容をデータ域に記憶する。
Write at Registration: FIG. 14 is a process flow diagram of the write at registration command. The write-on-registration command stores the contents of a data block in the data area if its name is assigned in the directory, a local cache entry is registered, and change control is consistent with the change state of the data. I do.

【0168】ローカル・キャッシュ・エントリが登録さ
れ、データがキャッシュされていないとき(1401及
び1402)、データ・テーブル・エントリが割り当て
られる(1403及び1404)。割当てが成功し、変
更制御が0の場合(1405)、データが未変更のまま
で書き込まれる。割当てが成功し、変更制御が1の場合
(1406)、データは変更された状態で書き込まれ
る。
When a local cache entry is registered and data is not cached (1401 and 1402), a data table entry is allocated (1403 and 1404). If the assignment is successful and the change control is 0 (1405), the data is written unchanged. If the assignment is successful and the change control is 1 (1406), the data is written in a changed state.

【0169】ローカル・キャッシュ・エントリが登録さ
れ、データが未変更のままで既にキャッシュ記憶されて
いるとき(1409)、変更制御が0のときは、データ
が未変更のままで書き込まれ(1410)、変更制御が
1のときは、データが変更された状態で書き込まれる
(1411)。
When the local cache entry is registered and the data is already cached without any change (1409), when the change control is 0, the data is written without change (1410). When the change control is 1, the data is written in a changed state (1411).

【0170】ローカル・キャッシュ・エントリが登録さ
れていないとき(1412及び1413)、コマンドは
完了し、例外応答コードが戻される。
If no local cache entry has been registered (1412 and 1413), the command is completed and an exception response code is returned.

【0171】ローカル・キャッシュ・エントリが登録さ
れ、データが変更された状態で既にキャッシュ記憶さ
れ、変更制御が0のとき(1414)、データは書き込
まれない。変更制御はデータの変更状態と整合しない。
When the local cache entry is registered, the data is already cached in a changed state, and when the change control is 0 (1414), no data is written. Change control is inconsistent with the change state of the data.

【0172】ローカル・キャッシュ・エントリが登録さ
れ、データが変更された状態でキャッシュ記憶され、変
更制御が1のとき(1415)、データは変更された状
態で書き込まれる(1411)。
A local cache entry is registered, cached in a changed state of data, and when the change control is 1 (1415), the data is written in a changed state (1411).

【0173】DASDとSESキャッシュの間のデータ
移動の管理:SESキャッシュと、SESキャッシュを
利用するローカル・データ・マネージャと、オペレーテ
ィング・システムのサポートとからなるシステム構造の
概要を図15ないし19に示す。図15には、データ・
ベース・マネージャのバッファ・マネージャによって実
行される処理を要約して示す。シスプレックス中の諸シ
ステム間で共用されるデータ・ベースが最初にアクセス
されるとき、ローカル・バッファ・プールを構築するこ
とができ(1501)、SESキャッシュ構造にサポー
トを与えるオペレーティング・システム・サービスを呼
び出して、バッファ・マネージャにSESキャッシュ構
造へのアクセスを許可することができ(1502)、オ
ペレーティング・システム・サービスを使ってタイムア
ウト間隔を設定することができる(1506)。
Management of Data Movement Between DASD and SES Cache: FIGS. 15 to 19 show an outline of a system structure including an SES cache, a local data manager using the SES cache, and operating system support. . FIG.
3 summarizes the processing performed by the base manager's buffer manager. When a database that is shared between systems in a sysplex is first accessed, a local buffer pool can be built (1501) and operating system services that provide support for the SES cache structure are provided. A call can be made to allow the buffer manager access to the SES cache structure (1502) and a timeout interval can be set using operating system services (1506).

【0174】SESキャッシュ構造をサポートするオペ
レーティング・システム・サービスは、バッファ・マネ
ージャにSESキャッシュ構造へのアクセスを許可する
ために呼び出される(1502)。これらのサービス
は、まず要求されたSESキャッシュ構造が既に割り振
られているかどうか決定する(1503)。SES構造
が既に割り振られてはいない場合、キャッシュ構造割振
りコマンドを呼び出して、SESキャッシュ構造を作成
させる(1504)。オペレーティング・システム・サ
ービスは、ローカル・キャッシュ識別子(LCID)を
選択し、DEFINE VECTOR(ベクトル定義)
CPU命令を発行することによって、キャッシュ・コヒ
ーレンシ・ビット・ベクトルを作成させる。ローカル・
キャッシュ付加コマンドを発行して、ローカル・キャッ
シュをSESキャッシュと関連付ける(1505)。
An operating system service that supports the SES cache structure is called to allow the buffer manager access to the SES cache structure (1502). These services first determine if the requested SES cache structure has already been allocated (1503). If the SES structure has not been allocated, the allocate cache structure command is called to create the SES cache structure (1504). The operating system service selects a local cache identifier (LCID) and defines a DEFINE VECTOR (vector definition).
Issuing a CPU instruction causes a cache coherency bit vector to be created. local·
Issue a cache attach command to associate the local cache with the SES cache (1505).

【0175】メインライン動作中、データ・ベースへの
アクセスは、バッファ・マネージャによってサポートさ
れる。異なる多数のプロトコルに従うことができる。メ
インライン使用の例を図16及び17に示す(1507
の詳細)。 −データをDASDから検索する −データをSESキャッシュに記憶する −データをSESキャッシュから検索する −データをDASDに記憶する
During mainline operation, access to the database is supported by the buffer manager. Many different protocols can be followed. Examples of using the main line are shown in FIGS. 16 and 17 (1507).
details of). -Retrieve data from DASD-Store data in SES cache-Retrieve data from SES cache-Store data in DASD

【0176】データへのアクセスは、CPC上で実行さ
れ、データ・ベース・マネージャに要求を行うプログラ
ムによって指令される。たとえば、そうしたプログラム
は、エンド・ユーザからの、トランザクション・プログ
ラムを実行させる要求の結果として実行できる。
Access to data is dictated by a program running on the CPC and making requests to the database manager. For example, such a program can be executed as a result of a request from an end user to execute a transaction program.

【0177】データ・ベース・バッファ・マネージャに
要求が行なわれたとき、バッファ・マネージャは、要求
されたデータが既にローカル・バッファ中にあるかどう
か決定する(1601)。データがローカル・バッファ
中にある場合、データの妥当性が検査される(160
2)。ローカル・バッファ中のデータは、データ・ベー
ス・マネージャの他のインスタンスが更新を実行したた
め無効になることもある(図17の1703及び170
5)。ローカル・バッファ中でデータが有効な場合、参
照リスト処理コマンドによってSESデータ要素参照を
更新するために使用されるエントリが名前リスト中で作
成される(1603)。
When a request is made to the database buffer manager, the buffer manager determines whether the requested data is already in the local buffer (1601). If the data is in the local buffer, the data is checked for validity (160
2). The data in the local buffer may be invalid because another instance of the database manager has performed an update (1703 and 170 in FIG. 17).
5). If the data is valid in the local buffer, an entry used to update the SES data element reference by the reference list processing command is created in the name list (1603).

【0178】ローカル・バッファ中で現在データが有効
ではない場合、あるバッファが割り当てられ、妥当性標
識が割り当てられる(1604)。ローカル・バッファ
をSESキャッシュに登録し、データがSESキャッシ
ュに記憶されている場合はデータを検索するため、読取
り及び登録コマンドが発行される(1605)。データ
がSESキャッシュから検索されない(テストは160
6で行われる)場合、データはDASDから読み取られ
る(1608)、読取り要求は、要求されたデータを呼
出し側に戻すことで完了する。
If the data is not currently valid in the local buffer, a buffer is allocated and a validity indicator is allocated (1604). A read and register command is issued to register the local buffer in the SES cache and retrieve the data if the data is stored in the SES cache (1605). Data is not retrieved from SES cache (test is 160
6), the data is read from the DASD (1608) and the read request is completed by returning the requested data to the caller.

【0179】更新要求の場合、バッファ・マネージャは
ローカル・バッファの内容を更新させる(1701)。
次いで、データをSESキャッシュに記憶すべきか否か
決定が行われる(1702)。データをSESキャッシ
ュに記憶すべき場合は、登録済み時書込みコマンドが発
行される(1703)。登録済み時書込みコマンドによ
って実行される処理の一環として、データ・ベース・マ
ネージャの他のインスタンスのローカル・バッファ中の
データ要素の他のコピーがすべて無効にされる。データ
をSESキャッシュに記憶すべきでない場合は、データ
をDASDに書き込むことができる(1704)。デー
タがDASDに書き込まれていたときは、相補コピー無
効化コマンドが発行されて、データ・ベース・マネージ
ャの他のインスタンスのローカル・バッファ中のデータ
要素の他のコピーをすべて無効にする(1705)。
In the case of an update request, the buffer manager updates the contents of the local buffer (1701).
A determination is then made whether to store the data in the SES cache (1702). If the data is to be stored in the SES cache, a write-in-register command is issued (1703). As part of the processing performed by the write-on-register command, all other copies of the data element in the local buffer of the other instance of the database manager are invalidated. If the data should not be stored in the SES cache, the data can be written to DASD (1704). If the data was being written to DASD, a Complementary Invalidate Copy command is issued to invalidate all other copies of the data element in the local buffer of the other instance of the database manager (1705). .

【0180】メインライン動作の間、バッファ・マネー
ジャは、SESキャッシュの記憶域の管理にも責任を持
つ(1508、また図18及び19に詳記)。バッファ
・マネージャは、SESキャッシュからDASDへの変
更済みデータ要素の移動の管理にも責任を持つ。初期設
定中に確立されたタイムアウト間隔により、オペレーテ
ィング・システムは、SESキャッシュ域の管理及びS
ESキャッシュ・データのDASDへの移動の管理のた
め、周期的に処理ルーチンに制御権を渡す。
During mainline operation, the buffer manager is also responsible for managing the storage of the SES cache (1508, also detailed in FIGS. 18 and 19). The buffer manager is also responsible for managing the movement of changed data elements from the SES cache to DASD. The timeout interval established during initialization allows the operating system to manage the SES cache area and
In order to manage the transfer of the ES cache data to the DASD, control is periodically passed to the processing routine.

【0181】SESキャッシュ域管理用の1つのプロト
コルの概要を図18に示す。この処理には、SESキャ
ッシュ構造の使用の初期設定中にデータ・ベース・マネ
ージャによって確立される周期的間隔で制御が与えられ
る。各記憶クラスに対して記憶クラス情報読取りコマン
ドが発行される(1801)。各記憶クラスのヒット率
が計算される(1802)。得られたヒット率が各記憶
クラスについて設定された性能目標と比較され、記憶ク
ラス・サイズの調整値が計算される(1803)。割り
振られたSES資源の変更が必要な各記憶クラスについ
て、再利用ベクトル設定コマンドが発行されて、再利用
ベクトルを活動化する(1804)。メインライン動作
の間にローカル・バッファ参照が記憶された(160
3)各記憶クラスについて、参照リスト処理コマンドが
発行される(1805)。
FIG. 18 shows an outline of one protocol for managing the SES cache area. This process is given control at periodic intervals established by the database manager during initialization of use of the SES cache structure. A storage class information read command is issued for each storage class (1801). The hit ratio of each storage class is calculated (1802). The obtained hit ratio is compared with a performance target set for each storage class, and an adjustment value of the storage class size is calculated (1803). For each storage class in which the allocated SES resources need to be changed, a set reuse vector command is issued to activate the reuse vector (1804). The local buffer reference was stored during mainline operation (160
3) A reference list processing command is issued for each storage class (1805).

【0182】SESキャッシュからDASDへのデータ
移動管理用の1つのプロトコルの概要を図19に示す。
この処理には、SESキャッシュ構造の使用の初期設定
中にデータ・ベース・マネージャによって確立された周
期的間隔で制御が与えられる。各キャストアウト・クラ
スについてキャストアウト・クラス情報読取りコマンド
が発行され、候補のキャストアウト・クラスが選択され
る(1901)。選択された各キャストアウト・クラス
についてキャストアウト・クラス読取りコマンドが発行
される(1902)。最も以前に更新されたディレクト
リ・エントリのリストが戻される。選択された各ディレ
クトリ・エントリについて、キャストアウト用読取りコ
マンドが発行される(1903)。SESから読み取ら
れたデータをDASDに書き込ませる入出力要求が作成
される(1904)。入出力動作が完了したとき、キャ
ストアウト・ロック解除コマンドが発行される(190
5)。
FIG. 19 shows an outline of one protocol for managing data migration from the SES cache to the DASD.
This process is given control at periodic intervals established by the database manager during initialization of use of the SES cache structure. A read castout class information command is issued for each castout class, and a candidate castout class is selected (1901). A read castout class command is issued for each selected castout class (1902). A list of the most recently updated directory entries is returned. A read command for castout is issued for each selected directory entry (1903). An I / O request is created to cause the data read from SES to be written to DASD (1904). When the input / output operation is completed, a castout lock release command is issued (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)。
When all data using the SES cache is no longer accessible, the database manager can disconnect from the SES cache (1509). The database manager transfers all modified data elements from the SES cache to the DAS
D or move the modified data element to SES
You can choose to keep it in the cache. S
If no modified data elements remain in the ES cache, the SES cache structure can be deallocated and can remain allocated for future use. The database manager is SE
An operating system service is called to disconnect from the S-cache structure (1509). A local cache disconnect command is issued to disassociate the local cache from the SES cache. If necessary, the operating system makes the local cache identifier (LCID) available for reassignment. A DEFINE VECTOR CPU instruction is issued to release the cache coherency vector. The operating system service determines if the SES cache structure should be deallocated (1511). If the SES cache structure is to be deallocated, a deallocate cache structure command is invoked (1512). The local buffer pool is then freed by the database manager (1513).

【0184】キャストアウト・クラス割当て:キャスト
アウト・クラスは、データが変更された状態で記憶され
るとき、登録済み時書込みコマンド及び書込み及び登録
コマンドによって、データ要素に割り当てられる。変更
信号処理の一環として次のことが行われる。
Castout Class Assignment: A castout class is assigned to a data element by a write-when-registered command and a write-and-register command when the data is stored in a modified state. The following is performed as part of the change signal processing.

【0185】−キャストアウト・クラスがディレクトリ
・エントリ中に記憶され、そのディレクトリ・エントリ
がキャストアウト・クラス待ち行列の一番底部に入れら
れる。これは、キャストアウト・クラスへの最初の配置
(placement)であることも、またクラス指定の変更を
表すことも、あるいはキャストアウト・クラス内でのデ
ータの更新であることもある。
The castout class is stored in the directory entry, and that directory entry is placed at the bottom of the castout class queue. This may be the initial placement in the castout class, may represent a change in class specification, or may be an update of data in the castout class.

【0186】−キャストアウト・クラス・カウントが更
新される。これがキャストアウト・クラスへの最初の配
置である場合は、キャストアウト・クラス・カウントが
1だけ増分される。これがクラスの変更である場合は、
ソース・キャストアウト・クラスのキャストアウト・カ
ウントが減分され、目標キャストアウト・クラスのキャ
ストアウト・クラス・カウントが1だけ増分される。こ
れがキャストアウト・クラス内での更新である場合は、
キャストアウト・クラス・カウントは更新されない。
The castout class count is updated. If this is the first placement in the castout class, the castout class count is incremented by one. If this is a class change,
The castout count of the source castout class is decremented and the castout class count of the target castout class is incremented by one. If this is an update in a castout class,
The castout class count is not updated.

【0187】−変更信号がそのディレクトリ・エントリ
に関して処理される最初の変更信号であるとき、ユーザ
・データ・フィールドがディレクトリ・エントリ中に記
憶される。最初の変更信号が発生するのは、データが最
初にキャッシュされていないとき、あるいは未変更のま
までキャッシュされているときである。データが最初に
変更された状態でキャッシュされるときは、その変更信
号は第2以降の変更信号であり、ユーザ・データ・フィ
ールドは記憶されない。
When the change signal is the first change signal processed for that directory entry, the user data field is stored in the directory entry. The first change signal occurs when the data is not initially cached, or is cached unchanged. When the data is cached with the first change, the change signal is the second and subsequent change signals, and the user data field is not stored.

【0188】キャストアウト・クラスの割当ては、その
データ要素が永続的に常駐するDASDボリュームに基
づいて行われる。SESキャッシュを使用しているデー
タ・マネージャが、キャストアウト・クラスを各DAS
Dボリュームと関連付ける。
Allocation of castout classes is based on the DASD volume on which the data element resides permanently. The data manager using the SES cache assigns the castout class to each DAS
Associate with D volume.

【0189】キャストアウトの処理:キャストアウト処
理を開始するために、キャストアウト・クラス・カウン
ト及び合計変更済みカウントが周期的に閾値と比較され
る。これは、下記のどちらかの方法で行われる。
Castout Processing: To begin the castout processing, the castout class count and the total changed count are periodically compared to a threshold. This is done in one of the following ways:

【0190】−事象駆動式キャストアウト:各書込み動
作の後に、登録時書込みコマンド及び書込み及び登録コ
マンド上で戻されるカウントが比較される。これによっ
て、書込みコマンドが発生し、かつ定義された閾値を超
えたとき、指定されたキャストアウト・クラスに関する
キャストアウト処理がトリガされる。この比較は、トラ
ンザクション処理の一部である。
Event-Driven Castout: After each write operation, the counts returned on the write-on-registration command and on the write and register commands are compared. This triggers a castout process for the specified castout class when a write command occurs and exceeds a defined threshold. This comparison is part of the transaction processing.

【0191】−タイマ駆動式キャストアウト:時間を調
整された間隔でキャストアウト・クラス情報読取りコマ
ンドを用いて1組のカウンタが要求される。この比較
は、背景プログラムの一部であり、どのトランザクショ
ン処理の一部でもない。キャストアウト処理に対する応
答性カウントと、獲得の際のトランザクション・オーバ
ーヘッドとの間の平衡を維持しなければならない。
Timer-driven castout: A set of counters is requested at a timed interval using the read castout class information command. This comparison is part of the background program and not part of any transaction processing. A balance must be maintained between responsiveness counts for castout processing and transaction overhead during acquisition.

【0192】キャストアウト・プロセスでは、キャスト
アウト・クラス情報読取りコマンドを使ってある範囲の
キャストアウト・クラスについてデータ要素のカウント
を決定することができる。戻されるカウントと、使用す
る管理プロトコルとに基づいて、プログラミングにより
DASDボリュームに関するキャストアウト処理を開始
することができる。変更済みデータ要素を書き込むべき
各DASDボリュームについて、プログラミングにより
キャストアウト・クラス情報読取りコマンドを発行す
る。特定の名前マスクと一致するデータ要素を選択する
と、プログラミングで特定のデータ・セットに関連する
データ要素のみを選択できるようになる。選択されたキ
ャストアウト・クラスと名前マスクに関連するデータ要
素名とユーザ・データ・フィールドが、キャストアウト
・クラス情報読取りコマンドによって戻される名前ブロ
ック中に含まれる。プログラミングにより戻されたデー
タからデータ要素を選択し、SESキャッシュからDA
SDへのデータの移動を開始することができる。
In the castout process, the read castout class information command can be used to determine the data element count for a range of castout classes. Based on the count returned and the management protocol used, the castout process for the DASD volume can be initiated by programming. Issue a read castout class information command by programming for each DASD volume to which the modified data element is to be written. Selecting a data element that matches a particular name mask allows programming to select only those data elements that are associated with a particular data set. The data element names and user data fields associated with the selected castout class and name mask are included in the name block returned by the read castout class information command. Select a data element from the data returned by programming, and
Transfer of data to SD can be started.

【0193】キャストアウト・プロセスは、キャストア
ウト用読取りコマンドを使ってSESキャッシュからデ
ータ要素を取り出す。キャストアウト用読取りコマンド
は、単一のプロセスが変更済みデータをDASDに書き
込んでいることを保証するために、キャストアウト・ロ
ック(CO)をセットする。キャストアウト・ロックが
セットされるとき、変更ビットはリセットされる。単一
プロセスが変更済みデータをDASDに書き込んでいる
ことを保証すると、データに対する修正を失わせる恐れ
のある競合状態が防止される。たとえば、 −プロセス1が、DASDに書き込むためあるデータ要
素を取り出す。 −その後、そのデータ要素がSESキャッシュ中で修正
される。 −プロセス2が、DASDに書き込むためそのデータ要
素を取り出す。 −プロセス2が、DASDへのそのデータ要素の書込み
を完了する。 −プロセス1が、DASDへのそのデータ要素の書込み
を完了する。
The castout process retrieves a data element from the SES cache using a read command for castout. The read for castout command sets the castout lock (CO) to ensure that a single process is writing changed data to DASD. When the castout lock is set, the change bit is reset. Ensuring that a single process is writing changed data to DASD prevents race conditions that can cause modifications to the data to be lost. For example: Process 1 retrieves a data element for writing to DASD. -The data element is then modified in the SES cache. Process 2 retrieves the data element for writing to DASD. Process 2 completes writing the data element to DASD. Process 1 completes writing that data element to DASD.

【0194】キャストアウト・ロックがSES中でセッ
トされたデータ要素に対する書込み動作が完了する。こ
の書込み動作によって変更ビットがオンになることがで
きる。
A write operation to a data element with a castout lock set in SES is completed. The change bit can be turned on by this write operation.

【0195】キャストアウト・ロック解除コマンドは、
データ要素がDASD上に首尾よく記録されたとき発行
される。キャストアウト・ロック解除コマンドは、キャ
ストアウト・ロックをリセットする。書込み動作によっ
て変更ビットがセットされた場合、変更ビットはキャス
トアウト・ロック解除コマンドの終了時にセットされた
ままである。キャストアウトを実行中のプロセスが失敗
した場合、キャストアウト・ロック解除コマンドは変更
ビットを強制的にセットさせることができる。変更ビッ
トを強制的にセットさせると、プログラミングでデータ
要素が首尾よくDASDに書き込まれたかどうかがわか
らないとき、データ要素の変更済みという性質を保護で
きるようになる。
The castout / lock release command is
Emitted when a data element has been successfully recorded on DASD. The castout lock release command resets the castout lock. If the change bit was set by a write operation, the change bit remains set at the end of the castout unlock command. If the process performing the castout fails, the unlock castout command can force the change bit to be set. Forcing the change bit to set protects the changed nature of the data element when it is not known whether the data element was successfully written to DASD by programming.

【0196】リスト形のキャストアウト・ロック解除コ
マンドは、多数のデータ要素がDASDに書き込まれる
とき、キャストアウト・プロセスを完了させる効率的な
手段をプログラミングに与える。これは、プログラミン
グで単一のDASDボリュームに関する変更済みのデー
タ要素を有効に取り出し、変更済みデータをDASDに
転送するための効率的なチャネル・プログラムを構築す
ることができるようにする、キャストアウト・クラス待
ち行列を有することを補完するプロセスである。
The list cast unlock command provides programming an efficient means of completing the castout process when multiple data elements are written to DASD. This is a cast-out scheme that allows programming to effectively retrieve changed data elements for a single DASD volume and build an efficient channel program to transfer the changed data to DASD. It is a complementary process to having a class queue.

【0197】変更率の管理:データ・マネージャによる
全般的キャストアウト処理は、変更済みのデータがせい
ぜい約20%となるようにSESキャッシュを管理する
ことができる。プログラムは、SESキャッシュ中の変
更済みデータの割合を監視し、変更済みデータ要素をD
ASDに移動するためのキャストアウト処理を開始す
る。変更済みデータが20%未満の状態を維持するため
に、どのデータ要素をDASDに移動するべきかの選択
は、プログラムで判断する。効率上、多数の物理的ブロ
ックを転送するチャネル・プログラムを書き込ませるの
に十分なデータ要素を含むキャストアウト・クラスを選
択するのが最善である。
Change Rate Management: The general castout process by the data manager can manage the SES cache so that the changed data is at most about 20%. The program monitors the percentage of changed data in the SES cache and identifies changed data elements as D
The castout process for moving to the ASD is started. The choice of which data elements to move to DASD to maintain less than 20% changed data is a program decision. For efficiency, it is best to select a castout class that contains enough data elements to write a channel program that transfers a large number of physical blocks.

【0198】最古の変更済みデータの管理:データが書
き込まれ変更制御が変更済みデータを示すとき、変更信
号の処理が開始される。変更信号がそのディレクトリ・
エントリに関して処理される最初の変更信号であると
き、ユーザ・データ・フィールドがそのディレクトリ・
エントリ中に記憶される。ユーザ・データ・フィールド
は、データ要素が変更されたが、その変更がまだDAS
Dに移動されていない、最も古い時点を表す時間値を含
有するためにプログラムが使用する。プログラムによっ
て使用されるSESキャッシュ中のすべてのデータ要素
のうち、最も古い時間値をもつデータ要素が、SESキ
ャッシュ障害の場合にデータベースを回復するためにプ
ログラムがログ・データを処理しなければならない、最
も以前の時点を表す。SESキャッシュ障害から回復す
るためにログ・データが処理を必要とする時間間隔が長
いほど、回復にかかる時間も長くなる。したがって、プ
ログラムは、SESキャッシュ中の変更済みデータの量
を管理することに加えて、最も古い変更済みデータがD
ASDに移動されるという利点を有する。SESキャッ
シュ中の最も古い変更済みデータを認識するには、ディ
レクトリ読取りコマンド及びキャストアウト・クラス読
取りコマンドによって戻される名前ブロックを処理す
る。
Management of oldest changed data: When data is written and change control indicates changed data, processing of the change signal is started. The change signal is
When it is the first change signal processed for an entry, the user data field is
Stored during entry. The user data field indicates that the data element has changed but the change is still
Used by the program to contain the time value representing the oldest point in time that has not been moved to D. Of all data elements in the SES cache used by the program, the data element with the oldest time value is the one that the program must process log data to recover the database in case of a SES cache failure. Represents the earliest time point. The longer the time interval that the log data requires processing to recover from a SES cache failure, the longer it will take to recover. Thus, in addition to managing the amount of changed data in the SES cache, the program will
It has the advantage of being moved to ASD. To recognize the oldest modified data in the SES cache, process the name blocks returned by the read directory and read castout class commands.

【0199】DASDボリュームの管理:SESキャッ
シュ中の変更済みデータ要素の比率あるいは最も古い変
更済みデータのエージ(age)にかかわらず、プログラ
ミングで、特定の事象が発生したとき、データ・セット
の特定のボリュームに関連するデータ要素をDASDに
移動させることを選択することになる。たとえば、最後
のユーザがあるデータベースへのアクセスを停止したと
き、プログラムはそのデータベースに関連するすべての
変更済みデータ要素をDASDに移動させる。データ・
セットまたはボリュームのバックアップを実行すべきと
き、プログラムはそのデータ・セットまたはボリューム
に関連するすべての変更済みデータ要素を移動させる。
Management of DASD Volumes: Regardless of the percentage of changed data elements in the SES cache or the age of the oldest changed data, programming causes a particular event in a data set to occur when a particular event occurs. You will choose to move the data elements associated with the volume to DASD. For example, when the last user stops accessing a database, the program moves all changed data elements associated with that database to DASD. data·
When a backup of a set or volume is to be performed, the program moves all changed data elements associated with that data set or volume.

【0200】DASDとSESキャッシュの間でのデー
タ移動の管理のシナリオ:上記の機構は、システム・ソ
フトウェアによってDASDとSESキャッシュの間で
のデータ移動の管理を実行する基礎を提供する。これら
のプリミティブ・サービスを使ってSESからのデータ
の書込みとキャストアウトの間の非ブロッキング逐次化
プロトコルを実施する技法について次に述べる。これら
のプリミティブ・サービスを使って、データ要素をSE
S中にキャッシュするための非ブロッキング逐次化プロ
トコルを実施する技法は、米国特許出願第860805
号に記載されている。この2つのプロトコルに加えて、
上記のプリミティブ・サービスは、結合システム環境の
全体的性能が最適になるような形でSESからDASD
に移動される1組の修正済みデータ要素を決定するため
の基礎を提供する。
Scenario for Managing Data Movement Between DASD and SES Cache: The above mechanism provides the basis for performing management of data movement between DASD and SES cache by system software. Techniques for implementing a non-blocking serialization protocol between writing and casting out data from SES using these primitive services are described below. Using these primitive services, data elements can be
Techniques for implementing a non-blocking serialization protocol for caching during S are described in US patent application Ser. No. 860,805.
No. In addition to these two protocols,
The primitive services described above are converted from SES to DASD in such a way that the overall performance of the
Provides a basis for determining the set of modified data elements that are moved to

【0201】キャストアウトのための非ブロッキング逐
次化(serialization):以下の使用法のシナリオで
は、記憶階層中で参照されるデータ要素がページである
と仮定する。その場合、共用キャッシュ(図1の11
1)中にキャッシュされるページは、ソフトウェアで割
り当てられる名前によって識別される。したがって、共
用キャッシュ中でのどんな読取りまたは書込み要求も、
要求の対象であるページの名前を指定することが必要で
ある。このプロトコルを正しく実行するには、データ要
素がページである必要はない。
Non-blocking serialization for castout: The following usage scenario assumes that the data element referenced in the storage hierarchy is a page. In that case, the shared cache (11 in FIG. 1)
Pages cached during 1) are identified by software-assigned names. Therefore, any read or write request in the shared cache
You need to specify the name of the page for which you are requesting. The data element need not be a page for this protocol to work properly.

【0202】共用キャッシュ中にデータをキャッシュす
るための非ブロッキング逐次化プロトコルを、図20な
いし26を使って例示する。図20では、図11に記述
した読取り及び登録(RAR)コマンドを用いてページ
を読み取る。図21は、図12及び図13に記述した書
込み及び登録(WAR)コマンドの使用法を示す図であ
る。図14に記述した登録済み時書込み(WWR)コマ
ンドの、共用キャッシュからデータをキャストアウトす
るための非ブロッキング逐次化に関する使用法を図22
に示す。図23は、図9に記述したキャストアウト用読
取りコマンドの使用法を示す図である。図10に記述し
たキャストアウト・ロック解除コマンドの使用法を図2
4に示す。図25は、SESキャッシュの再利用機能を
表すプロセスである。図26には、このプロトコルの流
れを示す。
A non-blocking serialization protocol for caching data in a shared cache is illustrated using FIGS. In FIG. 20, a page is read using the read and register (RAR) command described in FIG. FIG. 21 is a diagram showing how to use the write and register (WAR) command described in FIG. 12 and FIG. FIG. 22 shows how the write-when-registered (WWR) command described in FIG. 14 is used for non-blocking serialization for casting out data from a shared cache.
Shown in FIG. 23 is a diagram showing how to use the cast-out read command described in FIG. FIG. 2 illustrates the use of the castout / lock release command described in FIG.
It is shown in FIG. FIG. 25 is a process showing the reuse function of the SES cache. FIG. 26 shows the flow of this protocol.

【0203】図20、21、22において、ローカル・
キャッシュ・レジスタ中の有効ビットの集合体(図4の
401A、401B、401C)をシステム有効ビット
・ベクトル(SVBV)と称する。この例では、SVB
Vは、キャッシュに付加されたシステム1つ当り1ビッ
トからなると考えることができる。 システム有効ビット キャッシュに付加された1シス
テム当りビット。 ベクトル(SVBV) 1の場合、識別されたシステム
・メモリ中にキャッシュされているページは有効であ
る。0の場合、システムのメモリ中にキャッシュされて
いるページは有効でない。
In FIGS. 20, 21, and 22, the local
The collection of valid bits in the cache register (401A, 401B, 401C in FIG. 4) is called a system valid bit vector (SVBV). In this example, SVB
V can be considered to consist of one bit per system added to the cache. System valid bit Bit per system added to the cache. If vector (SVBV) 1, the page cached in the identified system memory is valid. If 0, the page cached in system memory is not valid.

【0204】ローカル・キャッシュ・レジスタ中の有効
ビットの集合体をシステム有効ビット・ベクトルとして
記述することは、下記のプロトコルを記述する上での概
念の単純化にすぎない。好ましい実施例では、システム
有効ビット・ベクトル中の個々のビット・エントリが、
ローカル・キャッシュ・レジスタの有効ビット・フィー
ルドと1対1で対応する。
Describing the collection of valid bits in the local cache register as a system valid bit vector is only a simplification of the concept in describing the following protocol. In a preferred embodiment, each bit entry in the system significant bit vector is
There is a one-to-one correspondence with the valid bit field of the local cache register.

【0205】図20ないし24及び26では、ローカル
・キャッシュ識別子(LCID)を、システム識別子
(SI)と呼んでいる。SIの機能はLCIDの機能と
同じである。下記のプロトコルでは、SIはローカル・
キャッシュ制御中に記憶され、現在ディレクトリ中にあ
るあらゆるエントリ及び結合コマンドの処理の結果その
後に作成されるあらゆる項目のSVBV中に1フィール
ドが設けられる。
In FIGS. 20 to 24 and 26, the local cache identifier (LCID) is called the system identifier (SI). The function of SI is the same as the function of LCID. In the following protocol, SI is local
One field is provided in the SVBV of any entry stored during cache control and subsequently created as a result of processing any entry and join command in the directory.

【0206】下記のプロトコル記述では、CONNEC
T(接続)コマンドの機能は、ローカル・キャッシュ付
加コマンドによって満たされる。READ PAGE
(ページ読取り)コマンドの機能は、図11に示す読取
り及び登録コマンド(RAR)によって満たされる。W
RITE PAGE(ページ書込み)コマンドは、図1
2及び図13に示す書込み及び登録コマンド(WAR)
によって満たされる。CONDITIONAL WRI
TE(条件付き書込み)コマンドの機能は、図14に示
す登録時書込み(WWR)コマンドによって満たされ
る。
In the following protocol description, CONNECT
The function of the T (connect) command is satisfied by the add local cache command. READ PAGE
The function of the (page read) command is satisfied by the read and register command (RAR) shown in FIG. W
The RITE PAGE (page write) command is shown in FIG.
2 and the write and register command (WAR) shown in FIG.
Filled by CONDITIONAL WRI
The function of the TE (conditional write) command is satisfied by the write-on-registration (WWR) command shown in FIG.

【0207】これらのコマンドは、あるシステムがある
ページの更新バージョンをキャッシュしようと試みてい
る間に、別のシステムがそのページをキャストアウトし
ている可能性を前提として、そのページのデータ保全性
を維持しながら、図1の多重システム・データ共用複合
体中のページをキャストアウトするための非ブロッキン
グ逐次化をサポートする。本発明の実施に際して、所与
のデータ要素(たとえばページ)を対象とするコマンド
が、メモリ(図1の101)中の管理論理機構(図1の
110)によって同じページに関する他のコマンドと逐
次化される。
These commands are based on the possibility that while one system is trying to cache an updated version of a page, another system may be casting out the page, and the data integrity of that page is While supporting non-blocking serialization for casting out pages in the multi-system data sharing complex of FIG. In the practice of the present invention, commands intended for a given data element (eg, a page) are serialized with other commands for the same page by management logic (110, FIG. 1) in memory (101, FIG. 1). Is done.

【0208】このプロトコルでは、図1のメモリ・シス
テム101は、下記のコマンドをサポートする。
In this protocol, the memory system 101 in FIG. 1 supports the following commands.

【0209】図1の多重システム・データ共用複合体中
のデータベース・システムの例のような、NV記憶装置
101に接続されたソフトウェア・システムによって実
行されるCONNECTコマンド。このCONNECT
コマンドに応答して、管理論理機構110は、接続シス
テムの識別をローカル・キャッシュ制御105中に入
れ、ディレクトリ102中に現在あるあらゆる項目及び
その後に作成されるあらゆる項目のSVビット・ベクト
ル中にその接続システム用のフィールドを設ける。
A CONNECT command executed by a software system connected to NV storage device 101, such as the example of a database system in the multi-system data sharing complex of FIG. This CONNECT
In response to the command, the management logic 110 places the identity of the connected system in the local cache control 105 and places it in the SV bit vector of every entry currently in the directory 102 and any subsequently created entries. Provide a field for the connected system.

【0210】READ PAGE(S,P,Buffe
r Address)コマンド。ただし、Sはコマンド
を発行するシステムを識別し、Pは要求されたページを
識別し、Buffer Addressは、システムの
バッファ中の、ページを配布すべきアドレスを示す。
READ PAGE (S, P, Buffe
r Address) command. Where S identifies the system issuing the command, P identifies the requested page, and Buffer Address indicates the address in the system's buffer where the page should be distributed.

【0211】WRITE PAGE(S,P,CB=
1,Buffer Address)コマンド。このコ
マンドは、「無条件」WRITEとも称する。WRIT
E PAGEコマンドが発行されるとき、このコマンド
と共に入力されたパラメータは、識別されるページ用の
Cフィールドに対応するCパラメータを含む。書き込ま
れるページの更新済みであるという性質は、変更ビット
を1にセットすることによって示される。
WRITE PAGE (S, P, CB =
1, Buffer Address) command. This command is also referred to as "unconditional" WRITE. WRIT
When the E PAGE command is issued, the parameters entered with this command include the C parameters corresponding to the C fields for the identified page. The updated nature of the page being written is indicated by setting the change bit to one.

【0212】CONDITIONAL WRITE
(S,P,CB=0,Buffer Address)
コマンド。CONDITIONAL WRITEコマン
ドは、条件付き書込みを行うコンピュータ・システム
が、2次記憶域から獲得したページをNV記憶装置に
「キャストアウト」するまたは入れるのに使用される。
C=0は、そのページが未修正であることを示す。
[0212] CONDITIONAL WRITE
(S, P, CB = 0, Buffer Address)
command. The CONDITIONAL WRITE command is used by a conditional writing computer system to "cast out" or put pages acquired from secondary storage into NV storage.
C = 0 indicates that the page is unmodified.

【0213】READ FOR CASTOUT(S,
P,Buffer Address)コマンド。このコ
マンドは、ページPに関するキャストアウト処理を開始
する。ページPをキャストアウトするため、システムS
中のDBMSは管理論理機構に、NV記憶装置からのP
をシステムS中のバッファ・アドレスに送るよう要求す
る。次いでシステムはそのページをディスクに書き込
む。ディスク入出力の後、DBMSはUNLOCK−C
ASTOUT ID(キャストアウトIDロック解除)
コマンドを発行する。
READ FOR CASTOUT (S,
P, Buffer Address) command. This command starts a castout process for page P. System S to cast out page P
The DBMS in the middle tells the management logic that P from the NV storage
To the buffer address in system S. The system then writes the page to disk. After disk input / output, DBMS is UNLOCK-C
ASTOUT ID (castout ID lock release)
Issue a command.

【0214】UNLOCK−CASTOUT ID
(S,P)コマンド。このコマンドは、ページPが2次
記憶域に首尾良く書き込まれた(キャストアウトされ
た)ことをNV記憶装置に告げる。
UNLOCK-CASTOUT ID
(S, P) command. This command tells NV storage that page P has been successfully written (cast out) to secondary storage.

【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つのケースが可能である。
Page read: FIG. 20 shows the READ PA
5 shows an operation flow of processing of a management logic mechanism performed in response to a GE command. Initially, the management logic 110
(Standby) state 2001, from which UNCOND
ITIONAL WRITE, CONDITIONAL
It can go into any of at least three processes: WRITE or READ PAGE. FIG.
At 0, assume that a READ command of the above form has been received. This is the READ process step 2002
Indicated by When providing a READ PAGE command, the computer system issuing it will include itself (SI, i.e., the i-th system), the requested page (P), and the read page in the computer system to which the read page should be distributed Identify the buffer address. The read process performed by the management logic 110 can have the following three cases.

【0216】識別されたページPに関するエントリがデ
ィレクトリ102中に存在し、そのページのDビットが
1にセットされていて、要求されたページが共用キャッ
シュ103中にあることを示す場合、第1のケースが発
生する。この2つの条件は、それぞれ判断2003及び
2004でテストされる。どちらの判断でも、イエスで
あったとすると、読取りプロセスは、ステップ2005
でそのエントリのSVビット・ベクトル中の識別された
i番目のコンピューティング・システム(SI)に対応
するビットをセットし、ステップ2006でそのデータ
・ページを指定されたバッファ・アドレスに戻し、ステ
ップ2007でキャッシュ・ヒット指示を戻す。
If an entry for the identified page P is present in the directory 102 and the D bit for that page is set to one, indicating that the requested page is in the shared cache 103, the first A case occurs. These two conditions are tested in decisions 2003 and 2004, respectively. If both determinations are yes, the reading process proceeds to step 2005.
Sets the bit corresponding to the identified i-th computing system (SI) in the SV bit vector of the entry, and returns the data page to the specified buffer address in step 2006, step 2007 Returns the cache hit instruction.

【0217】このケースの意味する所は、既に共用キャ
ッシュ103中にあるページに関して読取り要求が発行
されるときはいつでも、そのページは無条件でキャッシ
ュ・ヒット指示と共に要求側に戻されるということであ
る。要求側に関するSビットは、システムによって処理
されるページPのコピーが最新のものであることを示す
ため、第1状態(1)に条件付けされる。
What this case means is that whenever a read request is issued for a page already in the shared cache 103, that page is unconditionally returned to the requestor with a cache hit indication. . The S bit for the requestor is conditioned to a first state (1) to indicate that the copy of page P processed by the system is up to date.

【0218】第2のケースでは、ディレクトリ102中
にページPに関するエントリが存在するが、そのページ
はまだ共用キャッシュ103中に入れられていないと仮
定する。この場合、ページ読取りステップ2002に続
いて、判断2003でイエスの経路をとり、判断200
4でノーの経路をとる。このとき、要求側システムに関
するSビットが第1状態に(すなわち"1"に)条件付け
られ、キャッシュ・ミスが発行される。この場合、以前
のREAD PAGEコマンドを管理論理機構110が
受け取り、その結果ディレクトリ・エントリが作成され
るが、そのページはまだDASDから取り出して共用キ
ャッシュに入れられてはいない。
In the second case, assume that there is an entry for page P in directory 102, but that page has not yet been placed in shared cache 103. In this case, following the page reading step 2002, a decision Yes is taken in decision 2003 and the decision 200 is taken.
Take a no route at 4. At this time, the S bit for the requesting system is conditioned to the first state (ie, "1") and a cache miss is issued. In this case, a previous READ PAGE command is received by management logic 110, resulting in a directory entry being created, but the page has not yet been retrieved from DASD and placed in the shared cache.

【0219】最後のケースでは、ページPに関するディ
レクトリ・エントリが存在せず、管理論理機構110
は、判断2003でノーの経路をとり、ステップ201
0、2011、2012を順に実行する。この点に関連
して、ステップ2010で、管理論理機構は(使用可能
な記憶域があると仮定して)ページPに関するディレク
トリ・エントリを作成し、作成されたエントリに関する
SVビット・ベクトル全体を最初に第2状態(好ましく
は"0")に条件付ける。次いでDビットが0にセットさ
れ、CBが0にセットされ、要求側システムに関するS
ビットが第1状態に条件付けられる。最後に、ステップ
2009でキャッシュ・ミスが発行され、論理機構は待
機状態に入る。
In the last case, there is no directory entry for page P and management logic 110
Takes a no route in decision 2003 and proceeds to step 201
0, 2011, and 2012 are sequentially executed. In this regard, at step 2010, the management logic creates a directory entry for page P (assuming that there is available storage), and initially populates the entire SV bit vector for the created entry. To the second state (preferably "0"). The D bit is then set to 0, CB is set to 0, and S for the requesting system
The bit is conditioned on the first state. Finally, a cache miss is issued in step 2009 and the logic enters a wait state.

【0220】この最後のケースでは、システムSIはペ
ージPに関する最初のREAD要求を格納しており、そ
のページが共用キャッシュ103に入れられる前は、後
続のどのREAD要求も、手順ステップ2002、20
03、2004、2008、2009に従うことにな
る。要求されたページがDASDから共用キャッシュ1
03に移動された後は、READ要求はステップ200
2、2003、2004、2005、2006、200
7に従うことになる。
In this last case, the system SI has stored the first READ request for page P, and before that page is placed in the shared cache 103, any subsequent READ requests will follow the procedure steps 2002, 20.
03, 2004, 2008, 2009. Requested page from DASD to shared cache 1
03, the READ request is sent to step 200
2, 2003, 2004, 2005, 2006, 200
7 will be followed.

【0221】ページ書込み:更新済みページを共用キャ
ッシュ103に書き込むために管理論理機構が使用する
プロセスを図21に示す。ページがREAD PAGE
コマンドによって共用キャッシュ103から検索された
後に更新されることがある。また、ページがDASDか
ら獲得された後、共用キャッシュ103に入れられる前
に変更されることがある。システムSIがページPを獲
得し、そのページを更新し、今そのページを共用キャッ
シュ103に書き込まなければならないと仮定する。シ
ステムSIは、更新済みのページPを書き込むために、
CB=1のWRITEコマンドを発行する。このWRI
TEコマンドに応答して管理論理機構が行う処理を図2
1に示す。
Page Write: The process used by the management logic to write updated pages to the shared cache 103 is shown in FIG. Page is READ PAGE
It may be updated after being retrieved from the shared cache 103 by a command. Also, after a page is obtained from DASD, it may be changed before being placed in the shared cache 103. Assume that system SI has acquired page P, updated the page, and now has to write the page to shared cache 103. The system SI writes the updated page P,
Issues a WRITE command of CB = 1. This WRI
FIG. 2 shows the processing performed by the management logic in response to the TE command.
It is shown in FIG.

【0222】図21において、次の3つのケースがあ
る。第1は、ディレクトリ102中にページPに関する
エントリが存在し、D=1である(そのページが共用キ
ャッシュ103中にある)。第2は、そのページPに関
するエントリは存在するが、そのページはまだどんな形
ででも共用キャッシュ103に入れられていない。第3
は、ディレクトリ中にページPに関するどんなエントリ
も存在しない。
In FIG. 21, there are the following three cases. First, there is an entry for page P in directory 102 and D = 1 (the page is in shared cache 103). Second, there is an entry for the page P, but the page has not yet been entered into the shared cache 103 in any way. Third
Does not have any entry for page P in the directory.

【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に入る。
In the first case, the management logic 110
The write process performed by FIG.
2, 2103, 2104, then step 21
05, 2106, 2107 and 2108 are executed. In step 2105, the CB field in the directory entry for page P is set to one. Next, in step 2106, the existing version of page P is
Overwritten with the data at the buffer address supplied with the ITE command. Then, all S bits in the SV bit vector for the data entry for the page are set to 0, except for the S bit for the system issuing the WRITE command. Upon exiting step 2107, the management logic exits step 2107.
At 108, the command acceptance indicator is returned to the requesting system, and then the wait state 2101 is entered.

【0224】ぺージPに関するディレクトリ・エントリ
があるが、そのページが共用キャッシュ中にはない第2
のケースでは、管理論理機構のプロセス110は待機状
態2101からステップ2102と2103を通過し、
判断2104でノーの経路をとり、ステップ2109、
2110、2111、2107、2108を実行する。
ステップ2109で、要求されたページに関するディレ
クトリ・エントリ中の変更ビットが1にセットされる。
ステップ2110で、共用キャッシュ103中にページ
Pに関する空間が割り振られ、システムSIのバッファ
・アドレスから割り振られた空間にデータが移動され、
そのページのキャッシュ・アドレスがそのページのディ
レクトリ・エントリのページ・アドレス・フィールドに
置かれる。次にステップ2111で、ページPのディレ
クトリ・エントリ中でデータ・ビットが1にセットさ
れ、ステップ2107が実行され、それに続いて、管理
論理機構はコマンド受諾標識を戻し、待機状態2101
に入る。
There is a directory entry for page P, but the page is not in the shared cache.
In the case of, the management logic process 110 goes through the steps 2102 and 2103 from the waiting state 2101 and
In decision 2104, a no route is taken, and step 2109,
2110, 2111, 2107 and 2108 are executed.
In step 2109, the change bit in the directory entry for the requested page is set to one.
At step 2110, space for page P is allocated in shared cache 103, data is moved to the allocated space from the buffer address of system SI,
The page's cache address is placed in the page address field of the page's directory entry. Next, at step 2111, the data bit is set to 1 in the directory entry of page P, and step 2107 is performed, followed by the management logic returning the command accepted indicator and the waiting state 2101
to go into.

【0225】ページPに関するディレクトリ・エントリ
がない最後のケースでは、判断2103でノーの経路を
とり、ステップ2112ないし2116及び2108が
実行され、続いて管理論理機構は待機状態2101に入
る。ステップ2112で、ページPに関するディレクト
リ・エントリが作成され、ステップ2113でそのペー
ジのエントリに関する空間が共用キャッシュ中で割り振
られる。ステップ2114及び2115で、ディレクト
リ・エントリ中の関連する諸ビットが条件付けられる。
ステップ2113で、そのページのSVビット・ベクト
ル中のすべてのビットが0に初期設定され、Dビットが
1にセットされる。次にステップ2115で、要求側シ
ステムに関するSビット(ビットSI)が1に条件付け
られ、変更ビットも1にセットされて、そのページが変
更されており、そのページのアドレスがそのエントリ中
に置かれていることを示す。ステップ2116で、ペー
ジPに関するディレクトリ・エントリがディレクトリに
入れられ、そのページがキャッシュ中の割り振られた位
置に置かれる。次に管理論理機構は受諾標識を戻し、待
機状態に入る。
In the last case where there is no directory entry for page P, the NO path is taken at decision 2103 and steps 2112 through 2116 and 2108 are performed, and then the management logic enters the wait state 2101. At step 2112, a directory entry for page P is created, and at step 2113 space for the entry for that page is allocated in the shared cache. At steps 2114 and 2115, the relevant bits in the directory entry are conditioned.
In step 2113, all bits in the SV bit vector for the page are initialized to zero and the D bit is set to one. Next, in step 2115, the S bit (bit SI) for the requesting system is conditioned to one, the change bit is also set to one, the page has been modified, and the address of the page is placed in the entry. To indicate that At step 2116, the directory entry for page P is placed in the directory and the page is placed in the cache at an allocated location. The management logic then returns the acceptance indicator and enters a wait state.

【0226】図21の書込みプロセスは、その要求が決
して拒絶されない点で無条件のものである。さらに、ど
のWRITEケースが実行されても、影響を受けるペー
ジに関する変更ビットがセットされ、書込み側コンピュ
ータ・システムに関するビットを除き、影響を受けるペ
ージに関するSVビット・ベクトルのすべてのビットが
ゼロにされる。CONDITIONAL WRITEに
関する下記の説明からわかるように、WRITEの間に
非書込み側コンピュータ・システムに関するSビットが
ゼロにされると、ダウン・レベル・ページが共用キャッ
シュに入らないようになる。
The write process of FIG. 21 is unconditional in that the request is never rejected. In addition, no matter which WRITE case is executed, the change bit for the affected page is set and all bits of the SV bit vector for the affected page are zeroed, except for the writing computer system. . As can be seen from the description below for CONDITIONAL WRITE, if the S bit for the non-writing computer system is zeroed during WRITE, then the down-level page will not enter the shared cache.

【0227】条件付き書込み:次に管理論理機構110
中で実施されるCONDITIONAL WRITE処
理を理解するために図22を参照する。この処理では、
システムSIがNV記憶装置からキャッシュ・ミスを受
け取っており、次いで2次記憶域からあるページを獲得
したが、それを変更してはいず、それを共用キャッシュ
103中にキャッシュする準備をしている所であると仮
定する。管理論理機構110に送られるパラメータ・セ
ット中で、システムSIは変更ビットを0にセットし
て、コンピュータ・システムが所有するページがそのペ
ージの2次記憶域バージョンと同等であることを示す。
システムSIは、CB=0のCONDITIONAL
WRITEコマンドを発行する。この場合も3つのケー
スがある。
Conditional write: Next, management logic 110
Reference is made to FIG. 22 to understand the CONDITIONAL WRITE process implemented therein. In this process,
The system SI has received a cache miss from NV storage and then has acquired a page from secondary storage but has not modified it and is preparing to cache it in the shared cache 103. Assume that In the parameter set sent to the management logic 110, the system SI sets the change bit to 0 to indicate that the page owned by the computer system is equivalent to a secondary storage version of the page.
The system SI is a CONDITIONAL of CB = 0.
Issue a WRITE command. Again, there are three cases.

【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でコマンドが拒絶
され、管理論理機構は待機状態に入る。
In the first case, the directory entry for the page and the page itself are in the cache. The directory 102 is checked for an entry corresponding to the page P. Assuming the page is in the directory, the yes path is taken from step 2203, and the data bits of the item are examined in step 2204 to determine if the page is in the cache. If the path of yes is taken in decision 2204, the page is in the cache. At this point, the S bit for system SI is examined in the SV bit vector of the page entry to determine if another system has modified the page.
If bit SI is set to 1, no change is made to that page and the decision 2205 takes the yes path. Here, management logic 110 determines that the page is in the cache, the page submitted by the SI is equivalent to the page in the cache, and that overwriting of the page is not required. Accordingly, the management logic 110 proceeds to step 2206 where the CONDITIO
Returns the appropriate code indicating NAL WRITE acceptance.
However, the shared cache 10
Note that no data is transferred to 3. The management logic then enters a wait state. If the NO route is taken in decision 2205, the command is rejected in step 2211 and the management logic enters a wait state.

【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の受諾標識を戻し、待機状態に入る。
In the second case, there is a directory entry for page P and a yes path is taken in step 2203. However, at step 2204, the management logic 110 determines that the page is not in the cache, takes a no path at decision 2204, and then determines 22
Assume to go to 07. At decision 2207, page P
Check the SI bit of the SV bit vector for If the bit is set to 1, the system SI owns a valid page. At this point, decision 220
Take the path of Jesus at 7. Space is allocated in the shared cache, and page data is moved to the allocated space from the buffer address of the system SI. In step 2209, the D bit is set to 1 and the CB bit is set to 0. At step 2210, the page address is set in the directory entry and the entry is placed in the directory. Finally, the management logic writes the CONDITIONAL W to the system SI.
Return the RITE acceptance indicator and enter the standby state.

【0230】このケースで、判断2207の結果がノー
であると仮定する。このとき、システムSIは有効ペー
ジを所有しておらず、ステップ2211で条件付き書込
み処理が終了し、管理論理機構110はCONDITI
ONAL WRITEコマンドの拒絶をシステムSIに
戻し、次いで待機状態2201に入る。
In this case, assume that the result of decision 2207 is no. At this time, the system SI does not own a valid page, the conditional write process ends in step 2211, and the management logic 110 returns to the CONDITI
The rejection of the ONAL WRITE command is returned to the system SI, and then the standby state 2201 is entered.

【0231】最後に、管理論理機構が、受け取ったCO
NDITIONAL WRITEコマンドに応答して、
ディレクトリ102中にページPに関するエントリが作
成されていないと判定した場合、判断2203でノーの
経路をとり、コマンド処理を終了し、ステップ2211
でこのコマンドが拒絶され、次いで管理論理機構は待機
状態2201に入る。
Finally, the management logic checks the received CO
In response to the NDITIONAL WRITE command,
If it is determined that no entry relating to the page P has been created in the directory 102, a negative route is taken in decision 2203, the command processing ends, and step 2211 is executed.
The command is rejected, then the management logic enters a wait state 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コマ
ンドを拒絶する。
When using these commands, the SV bit vector and the change bit field effectively serialize the cast-in of the page to the shared cache 103 and, after the page is cast-in and changed, the secondary storage. Obviously, a later down-level version of the page obtained from the area guarantees not to overwrite the updated version of the page in the shared cache. This guarantee is driven by a non-blocking serialization protocol for moving pages from secondary storage into a shared cache. This protocol works because if the command causes a cache miss because of a missing directory entry or data, the NV storage device will read the first READ PA
This is because the GE command starts tracking cache operations for that page (in the SV bit vector). An unconditional WRITE command by another system is
Set the change bit for the page,
Reset the S bits of all systems except the writer system in the vector. Subsequent CONDITION
The processing of the AL WRITE command is as follows: a) SV bit
Writing the system S-bit in the vector, or b) no directory entry exists for the page. NV storage rejects the CONDITIONAL WRITE command in both cases.

【0233】更新済みページがキャッシュ103中に書
き込まれた後、そのページのキャストアウトされるバー
ジョンが、共用キャッシュ中のそのページのより新しい
バージョンの削除を引き起こさないようにするにはどう
すべきかという問題が残っている。本発明は、あるペー
ジの以前のバージョンが2次記憶域にキャストアウトさ
れていないときに、図1の多重システム・データ共用複
合体中でのキャストアウト動作が共用キャッシュ210
3からあるページの更新済みバージョンを削除しないこ
とを保証するプロトコル中で、READ FOR CA
STOUT(キャストアウト用読取り)コマンド及びU
NLOCK CASTOUT LOCK(キャストアウ
ト・ロック解除)コマンドを利用する。この保証は、キ
ャストアウトの発生中にそのページが更新される可能性
を前にしても有効である。
After an updated page has been written into cache 103, what should be done to ensure that the castout version of the page does not cause the deletion of a newer version of the page in the shared cache? The problem remains. The present invention is directed to a method in which a castout operation in the multi-system data sharing complex of FIG. 1 is performed when a previous version of a page has not been cast out to secondary storage.
READ FOR CA in a protocol that ensures that the updated version of a page is not deleted from
STOUT (read for castout) command and U
Use the NLOCK CASTOUT LOCK command. This guarantee is valid even before the possibility of the page being updated during a castout.

【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次記憶域に書き込むプロセス
を開始する。
Read for castout: READ FO
FIG. 2 shows the command processing in the R CASTOUT command.
3 is shown. First, the management logic 110 is in the standby state 23
01 and RE from system SI for page P
Transition is made in response to receipt of the AD FOR CASTOUT command. In response to receiving the command,
The management logic checks the CO field of the directory entry for page P. If the CO field is empty (preferably indicated by the value 0), the management logic takes the yes path at decision 2303 and returns to step 23
04 C in directory entry for page P
The B field is set to 0, and in step 2305 the identity of the requesting system is placed in the CO field of that entry. Next, at step 2306, the management logic returns the copy of page P in shared cache 103 to the buffer address specified in the command parameter set and enters a wait state at 2301. At this point, the DBMS in system SI begins the process of writing that version of page P in its buffer to secondary storage.

【0235】判断2303でノーの経路をとると、別の
システムがキャストアウト動作を行っている可能性があ
り、その場合COフィールドの他は非0となり、判断2
303でノーの経路をとることになる。COフィールド
が非0である場合、システムがキャストアウト動作を行
っており、管理論理機構110はステップ2307でそ
のコマンドを拒絶し、待機状態2301に戻る。
If the determination 2303 takes the negative path, there is a possibility that another system is performing a castout operation, in which case the other fields of the CO field become non-zero, and the determination 2
At 303, a no route is taken. If the CO field is non-zero, the system is performing a castout operation and the management logic 110 rejects the command in step 2307 and returns to the wait state 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に入る。
Release of castout lock: FIG.
The processing of the management logic for the UNLOCK CASTOUT LOCK command is shown. First, management logic 1
10 is in a standby state 2401. U in step 2402
NLOCK CASTOUT LOCK command (UN
Upon receipt of (LOCK CO), the management logic compares the entry in the CO field of page P with SI, the identity of the system issuing the command. If the values are equal, the requesting system returns a READ FOR
Indicates that the system has started the castout process by the CASTOUT command. If they are equal, the decision 2403 takes a yes path, the CO field is set to 0 in step 2404, and the management logic enters the wait state 2401. If it is determined that the CO value and the system ID value are not equal and there is a possibility of a software error, a NO route is taken in decision 2403, the command is rejected in step 2405, and the standby state 2401 is entered again.

【0237】ページ削除:図25は、図23及び24に
示したコマンドを使ってキャストアウトされたページを
削除するための処理を示す。相対的に言うと、「削除」
は、あるディレクトリ・エントリの除去及びディレクト
リが指すキャッシュ空間の専用化を意味する。本発明者
等は、管理論理機構110の内部にある適当な任意のD
ELETEプロセスを使用して、ページPを保持するキ
ャッシュ空間を専用化し、それに関連するディレクトリ
・エントリをディレクトリから除去することを企図して
いる。必然的に、削除プロセスは、READ FOR
CASTOUT/UNLOCKCASTOUT LOC
Kシーケンスの完了に依存することになり、それに続い
てキャストアウト・ページPが削除されることになる。
図25は、キャストアウト・プロセスが、そのプロセス
の間にWRITEコマンドによって更新されたページを
どのようにして削除されないようにするかを示す。図2
5では、削除が必ずキャストアウトの直後に行われると
は仮定していない。
FIG. 25 shows a process for deleting a page cast out using the commands shown in FIGS. 23 and 24. Relatively speaking, "delete"
Means the removal of a directory entry and the dedication of the cache space pointed to by the directory. We have determined that any suitable D inside the management logic 110
It is intended to use the ELITE process to dedicate the cache space holding page P and remove its associated directory entry from the directory. Inevitably, the deletion process is a READ FOR
CASTOUT / UNLOCKCASTOUT LOC
It will depend on the completion of the K sequence, followed by the removal of the castout page P.
FIG. 25 shows how the castout process prevents pages updated by a WRITE command during that process from being deleted. FIG.
5 does not assume that the deletion always occurs immediately after the castout.

【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に割り振られたキ
ャッシュ空間をスチールすることができるはずである。
In FIG. 25, when a directory entry is to be created but there are no free entries available, a DELETE process is called within management logic 110 to delete page P from shared cache 103. It is. This is step 2502. The delete process first checks the CB field of the directory entry for page P, and then
Check the O field. This is judgment 2503 and 25
04. In decision 2503, if the change bit is set to one, an indication is drawn that the version of the page P in the shared cache does not match the version in secondary storage. In this case, a castout process must be started to write the shared cache version to secondary storage. In this case, decision 250
Take a no path at 3. In decision 2504, READ F
The execution of the OR CASTOUT command initiated the castout process, but the subsequent UNLOCK
The execution of CASTOUT LOCK may not have completed the process. In this case, the CO field is non-zero, and taking a No path in decision 2504 will end the delete process. The no path from decision 2503 and 2504 is step 25
At 05, the entry will not be deleted. If the determinations 2503 and 2504 take the path of Yes, respectively, the conditions that the shared cache version and the secondary storage version match, and the completion of the castout process are satisfied.
Directory entry for directory 102
Will be deleted. At this point, the appropriate cache management policy could be invoked to steal the cache space allocated to page P.

【0239】非ブロッキング・キャストアウト・プロセ
スの流れ:図26に、READ FOR CASTOU
T(RFC)コマンドとUNLOCK CASTOUT
LOCK(UNLOCK)コマンドを使用するキャス
トアウト・プロセスの動作を示す。ページPの共用キャ
ッシュのバージョンと2次記憶域のバージョンの一致の
保証は、この動作中でRFCコマンドとUNLOCKコ
マンドの間で実行されるWRITEコマンドによって示
される。この動作を、ページPに関するディレクトリ・
エントリの表現に関して例示する。この表現では、その
エントリのページ識別P、変更ビットCB、及びCOフ
ィールドのみを示す。ページPに関するディレクトリ・
エントリは、参照番号2601で示す。さらに、時間は
TIMEのマークを付けた矢印に沿って垂直方向に展開
する。
Non-blocking castout process flow: FIG. 26 shows a READ FOR CASTOU
T (RFC) command and UNLOCK CASTOUT
9 illustrates the operation of the castout process using the LOCK (UNLOCK) command. Guaranteeing that the version of the shared cache of the page P matches the version of the secondary storage is indicated by a WRITE command executed between the RFC command and the UNLOCK command during this operation. This operation is referred to as the directory
An example will be given regarding the expression of an entry. In this expression, only the page identification P, change bit CB, and CO field of the entry are shown. Directory for page P
The entry is indicated by reference numeral 2601. In addition, the time evolves vertically along the arrow marked 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によってキャス
トアウトされるバージョンとの不一致が生じる。
In FIG. 26, the system S1 performs the READ
Assume that the castout process is initiated by issuing a FOR CASTOUT command 2602. Thus, the RFC process shown in FIG. 23 starts. In processing the command, the NV storage management logic sets the change bit to 0, and sets the identification (S1) of system 1 to the CO entry of the page P directory entry.
Put in the field. The management logic returns a copy of page P from the shared cache to a buffer in system S1. The system S1 then proceeds to 2605 to write a copy of page P to secondary storage.
Start the SK I / O process. Meanwhile, after the completion of the RFC process and before the completion of the WRITE TO DISK process, the system S2 executes the WRITE command 2606.
Execute The system S2 indicates that the CB value of the directory entry of the page P is 1, and the CB field of the entry 2601 is changed to this value during the WRITE process 2607 performed by the management logic according to FIG. At this point, an updated version of page P that is being written to secondary storage is present in the shared cache, and a mismatch occurs between that version and the version cast out by system 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の削除
が防止され、別のページが削除すべく考慮される。
Shortly after the execution of the WRITE command 2606, the WRITE DISK 26 in the system S1 is executed.
05 is completed (2608). At this time, the system S1
Is UNLOCK CASTOUT LOCK command 2
Issue 609 and start the corresponding processing by the management logic at 2610. During operation 2610, the management logic zeros the CO field of directory entry 2601, thereby unlocking page P for another castout process. The important point to note here is UNLOCK CASTOU
T LOCK command returns directory entry 260
That is, the CB field in 1 is not reset.
This causes the management logic 110 as shown in FIG.
Does not delete page P. The newer version of P will be cast out by a cast out process that is later started by S1 or S2. Thus, if the management logic attempts to delete page P in step 2611, the deletion of page P is prevented and another page is considered for deletion.

【図面の簡単な説明】[Brief description of the drawings]

【図1】複数のCPCと1つのSES装置を含むシスプ
レックス・システムを示す図である。
FIG. 1 illustrates a sysplex system including multiple CPCs and one SES device.

【図2】従来技術で見られるような単一CPC(中央プ
ロセッサ複合体)を示す図である。
FIG. 2 illustrates a single CPC (Central Processor Complex) as found in the prior art.

【図3】SESディレクトリ中のあるエントリの好まし
い形を示す図である。
FIG. 3 shows a preferred form of an entry in the SES directory.

【図4】SESローカル・キャッシュ・レジスタ(LC
R)中のある項目の好ましい形を示す図である。
FIG. 4 shows a SES local cache register (LC)
It is a figure showing preferred form of an item in R).

【図5】キャストアウト・クラス読取りコマンドを表す
流れ図である。
FIG. 5 is a flowchart illustrating a read castout class command.

【図6】キャストアウト・クラス情報読取りコマンドを
表す流れ図である。
FIG. 6 is a flowchart illustrating a castout class information read command.

【図7】ディレクトリ読取りコマンドを表す流れ図であ
る。
FIG. 7 is a flowchart illustrating a directory read command.

【図8】ディレクトリ・エントリ情報ブロック(DEI
B)のフォーマットを示す図である。
FIG. 8 shows a directory entry information block (DEI).
It is a figure showing the format of B).

【図9】キャストアウト用読取りコマンドを表す流れ図
である。
FIG. 9 is a flowchart illustrating a castout read command.

【図10】キャストアウト・ロック解除コマンドを表す
流れ図である。
FIG. 10 is a flowchart showing a castout / lock release command.

【図11】読取り及び登録コマンドを表す流れ図であ
る。
FIG. 11 is a flow chart illustrating a read and register command.

【図12】SES変更制御が未変更レコード状態を示す
ときの読取り及び登録コマンドを表す流れ図である。
FIG. 12 is a flowchart showing a read and register command when SES change control indicates an unchanged record state.

【図13】SES変更制御が変更済みレコード状態を示
すときの書込み及び登録コマンドを表す流れ図である。
FIG. 13 is a flowchart showing a write and register command when the SES change control indicates a changed record state.

【図14】登録済み時書込みコマンドを表す流れ図であ
る。
FIG. 14 is a flowchart showing a write command at the time of registration.

【図15】データ・ベース・マネージャのバッファ・マ
ネージャ、及びSESキャッシュの関連する使用の流れ
の概要を示す図である。
FIG. 15 provides an overview of the buffer manager of the database manager and the associated flow of use of the SES cache.

【図16】読取り動作のバッファ・マネージャ処理の流
れ図である。
FIG. 16 is a flowchart of a buffer manager process of a read operation.

【図17】書込み動作のバッファ・マネージャ処理の流
れ図である。
FIG. 17 is a flowchart of a buffer manager process of a write operation.

【図18】バッファ・マネージャのSESキャッシュ域
管理の流れ図である。
FIG. 18 is a flowchart of SES cache area management of the buffer manager.

【図19】バッファ・マネージャによるSESキャッシ
ュ・データのDASDへの移動の流れ図である。
FIG. 19 is a flow diagram of the transfer of SES cache data to DASD by the buffer manager.

【図20】非ブロッキング・キャストアウト・プロトコ
ルをサポートする読取りコマンドの処理流れを示す流れ
図である。
FIG. 20 is a flowchart showing a processing flow of a read command supporting a non-blocking castout protocol.

【図21】非ブロッキング・キャストアウト・プロトコ
ルをサポートする無条件書込みコマンドの処理流れを示
す流れ図である。
FIG. 21 is a flowchart showing a processing flow of an unconditional write command supporting a non-blocking castout protocol.

【図22】非ブロッキング・キャストアウト・プロトコ
ルをサポートする条件付き書込みコマンドの処理流れを
示す流れ図である。
FIG. 22 is a flowchart showing a processing flow of a conditional write command supporting a non-blocking castout protocol.

【図23】非ブロッキング・キャストアウト・プロトコ
ルをサポートするキャストアウト用読取りコマンドの処
理流れを示す流れ図である。
FIG. 23 is a flowchart showing a processing flow of a read command for castout supporting a non-blocking castout protocol.

【図24】非ブロッキング・キャストアウト・プロトコ
ルをサポートするキャストアウト・ロック解除コマンド
の処理流れを示す流れ図である。
FIG. 24 is a flowchart showing a processing flow of a castout lock release command supporting a non-blocking castout protocol.

【図25】非ブロッキング・キャストアウト・プロトコ
ルをサポートする記憶域再利用プロセスの処理流れを示
す流れ図である。
FIG. 25 is a flowchart showing a processing flow of a storage reuse process that supports a non-blocking castout protocol.

【図26】共用キャッシュ中にデータをキャッシュする
ための非ブロッキング・キャストアウト・プロトコルの
方法を示す流れ図である。
FIG. 26 is a flowchart illustrating a method of a non-blocking castout protocol for caching data in a shared cache.

【符号の説明】[Explanation of symbols]

101 SESキャッシュ(高速不揮発性メモリ) 102 ディレクトリ 103 共用キャッシュ 104 ローカル・キャッシュ・レジスタ 105 ローカル・キャッシュ制御 106 高速リンク 107 ローカル・キャッシュ・バッファ 109 直接アクセス記憶装置(DASD) 110 管理論理機構 111 共用キャッシュ 101 SES Cache (High Speed Non-Volatile Memory) 102 Directory 103 Shared Cache 104 Local Cache Register 105 Local Cache Control 106 High Speed Link 107 Local Cache Buffer 109 Direct Access Storage (DASD) 110 Management Logic 111 Shared Cache

フロントページの続き (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/12Continued on the front page (72) Inventor Jeffrey Alan Fry United States 12524, Fishkill, NY, Greenhill Drive 24 Ai (72) Inventor Chandrasekalan Mohan United States 95120, San Jose, CA, Portswood Drive 727 (72) Inventor Indell Pal Sing Nalang, USA 95070, Serra Oaks Court, Saratoga, California 13778 (72) Inventor Jeffrey Mark Nick United States 12524, Fishkill, NY, Plymouth Road 43 (72) Inventor Inventor Jimmy Paul Strickland United States 95070, Allcott Way, Saratoga, California 18929 (72) Inventor Michael Dustin Swanson 12603, United States of America Pokiepsi, New York , College Avenue 95 (58) investigated the field (Int.Cl. 6, DB name) G06F 12/08 G06F 12/08 310 G06F 12/12

Claims (9)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】中央処理装置複合体(CPC)における共
用記憶域から入出力装置へのデータ転送を制御する方法
であって、 複数の中央処理装置複合体(CPC)と前記複数のCP
Cで共用される共用記憶域を有する共用電子記憶(SE
S)キャッシュと前記CPCに接続された直接アクセス
記憶装置(DASD)とを含むようにシスプレックスを
構成し、前記シスプレックス中にデータ項目を記憶する
ために直接アクセス記憶装置(DASD)を制御するス
テップと、 前記SESキャッシュのディレクトリ・エントリによっ
て示されるデータ項目を変更した場合に、前記SESキ
ャッシュのディレクトリ・エントリについてのキャスト
アウト・クラスと前記変更済みデータ項目とを関連付
け、前記キャストアウト・クラスによって選択した複数
のデータ項目を1回の入出力命令でDASDに転送でき
るようにするステップと、 を含むデータ転送制御方法。
A method for controlling data transfer from a shared storage area to an input / output device in a central processing unit complex (CPC), comprising: a plurality of central processing unit complexes (CPC);
Shared electronic storage (SE) having shared storage shared by C
S) configuring a sysplex to include a cache and a direct access storage device (DASD) connected to the CPC; and controlling the direct access storage device (DASD) to store data items in the sysplex. When a data item indicated by a directory entry in the SES cache is changed, a castout class for the directory entry in the SES cache is associated with the changed data item, and the changed data item is selected by the castout class. Enabling a plurality of data items to be transferred to DASD with a single input / output instruction.
【請求項2】中央処理装置複合体(CPC)における共
用記憶域から入出力装置へのデータ転送を制御する方法
であって、 複数の中央処理装置複合体(CPC)と前記複数のCP
Cで共用される共用記憶域を有する共用電子記憶(SE
S)キャッシュと前記CPCに接続された直接アクセス
記憶装置(DASD)とを含むようにシスプレックスを
構成し、前記シスプレックス中にデータ項目を記憶する
ために直接アクセス記憶装置(DASD)を制御するス
テップと、 前記SESキャッシュのディレクトリ・エントリによっ
て示されるデータ項目を変更した場合に、前記SESキ
ャッシュのディレクトリ・エントリについてのキャスト
アウト・クラスと前記変更済みデータ項目とを関連付
け、前記キャストアウト・クラスによって選択した複数
のデータ項目を1回の入出力命令でDASDに転送でき
るようにするステップと、 前記SESキャッシュ中に関連データ項目を最初に書込
む時間を示すためのユーザ・データ・フィールドを、各
SESキャッシュのディレクトリ・エントリと関連付け
るステップと、 関連付けられたデータ項目が前記DASD中の同じデー
タ項目のコピーと異なることを示すために、変更フラグ
・フィールドが前記ディレクトリ・エントリにセットさ
れる時間を、前記ユーザ・データ・フィールドに書き込
むステップと、 を含むデータ転送制御方法。
2. A method for controlling data transfer from a shared storage area to an input / output device in a central processing unit complex (CPC), comprising: a plurality of central processing unit complexes (CPC);
Shared electronic storage (SE) having shared storage shared by C
S) configuring a sysplex to include a cache and a direct access storage device (DASD) connected to the CPC; and controlling the direct access storage device (DASD) to store data items in the sysplex. When a data item indicated by a directory entry in the SES cache is changed, a castout class for the directory entry in the SES cache is associated with the changed data item, and the changed data item is selected by the castout class. Enabling a plurality of data items to be transferred to DASD with a single I / O instruction; and a user data field for indicating a time at which the associated data item is first written into the SES cache. Directory Associating an associated data item with a copy of the same data item in the DASD to indicate when a change flag field is set in the directory entry. Writing to a field; and a data transfer control method comprising:
【請求項3】メモリと、 READコマンドに応答して前記メモリからデータを獲
得し、該メモリ中のデータ・ブロックに対応するデータ
を生成し、該メモリからデータ・ブロックを削除する管
理論理手段と、 データを記憶する前記メモリよりも低速の少なくとも1
つの記憶機構と、 前記メモリ及び前記記憶機構に接続された複数の処理シ
ステムと、 を備え、前記記憶機構に記憶されるデータの前記メモリ
からの除去を逐次化するコンピュータ・システムであっ
て、 前記管理論理手段で生成される前記メモリ中のデータ・
ブロックの対応データが、変更ビット・フィールドとキ
ャストアウト識別フィールドとを含み、 前記記憶機構に入れるデータ・ブロックを獲得するため
に、第1の前記処理システムからREADコマンドが供
給されると、該READコマンドに応答して、そのデー
タ・ブロックの前記メモリ中のバージョンと記憶機構中
のバージョンとの一致を示すように変更ビット・フィー
ルドをセットするとともに、前記第1の処理システムを
識別する値に前記対応データのキャストアウト識別フィ
ールドをセットし、該キャストアウト識別フィールド中
の値に応答して、前記メモリからのデータ・ブロックの
削除を防止するコンピュータ・システム。
3. Management memory means for acquiring data from the memory in response to a READ command, generating data corresponding to the data blocks in the memory, and deleting the data blocks from the memory. At least one slower than said memory for storing data
A computer system comprising: a storage mechanism; and a plurality of processing systems connected to the memory and the storage mechanism, wherein the computer system serializes removal of data stored in the storage mechanism from the memory; Data in the memory generated by the management logic means;
When the corresponding data of the block includes a change bit field and a castout identification field, and when a READ command is supplied from the first processing system to obtain a data block to be put into the storage, the READ command is issued. In response to the command, a change bit field is set to indicate a match between the version in the memory of the data block and the version in the storage, and the value identifying the first processing system is set to a value. A computer system for setting a castout identification field of corresponding data and responsive to a value in the castout identification field to prevent deletion of a block of data from the memory.
【請求項4】前記データ・ブロックのメモリ中のバージ
ョンを変更するために、第2の処理システムからWRI
TEコマンドが発行されると、該WRITEコマンドに
応答して、そのデータ・ブロックのメモリ中のバージョ
ンと記憶機構中のバージョンの不一致を示すように変更
ビット・フィールドを変更し、該変更ビット・フィール
ド中で示された不一致に応答して、そのデータ・ブロッ
クのメモリからの削除を防止する請求項3に記載のコン
ピュータ・システム。
4. A WRI from a second processing system for changing a version of the data block in memory.
When the TE command is issued, the modified bit field is changed in response to the WRITE command to indicate a mismatch between the version in memory and the version in the storage of the data block; 4. The computer system of claim 3, wherein in response to the inconsistency indicated therein, the data block is prevented from being deleted from memory.
【請求項5】請求項4に記載のシステムにおけるデータ
転送制御方法であって、第1の処理システムがデータ・
ブロックを前記記憶機構に入れるとき、前記キャストア
ウト識別フィールドからの値を削除するステップと、 (a)メモリからのデータ・ブロックの削除を防止した
後に、そのデータ・ブロックのメモリ中での更新済みバ
ージョンを獲得するために、処理システムからREAD
コマンドを供給するステップと、 (b)ステップ(a)のREADコマンドに応答して、
そのデータ・ブロックのメモリ中のバージョンと記憶機
構中のバージョンとの不一致を示すために変更ビット・
フィールドをセットし、該データ・ブロックの対応デー
タのキャストアウト識別フィールドを前記処理システム
を識別する値にセットするステップと、 (c)前記処理システムにおいて、そのデータ・ブロッ
クの更新済みバージョンを記憶機構に書き込むステップ
と、 (d)ステップ(c)のデータ・ブロックの更新済みバ
ージョンの記憶機構への書込みに応答して、当該処理シ
ステムを識別する値をキャストアウト識別フィールドか
ら削除するステップと、 (e)変更ビット・フィールドが、前記データ・ブロッ
クのメモリ中のバージョンと記憶機構中のバージョンと
の一致を示す場合には、該データ・ブロックをメモリか
ら削除し、そうでない場合には、当該データ・ブロック
がメモリから削除されるまで、ステップ(a)〜(e)
を実行するステップとを含む、データ転送制御方法。
5. A data definitive system of claim 4
A transfer control method, wherein the first processing system has a data
Deleting a value from the castout identification field when entering a block into the storage; and (a) updating the data block in memory after preventing the deletion of the data block from memory. READ from the processing system to get the version
Providing a command; and (b) in response to the READ command of step (a),
A change bit to indicate a mismatch between the version in memory of the data block and the version in storage.
Setting a field and setting a castout identification field of the corresponding data of the data block to a value identifying the processing system; and (c) storing an updated version of the data block in the processing system. (D) removing a value identifying the processing system from the castout identification field in response to writing the updated version of the data block to storage in step (c); e) if the change bit field indicates a match between the version in memory of the data block and the version in storage, delete the data block from memory; otherwise, delete the data block. Steps (a)-(e) until the block is deleted from memory
Performing a data transfer.
【請求項6】キャッシュと、 前記キャッシュ中のデータ・ブロックへのアクセスを制
御し、該キャッシュからデータ・ブロックを削除するた
めの管理手段と、 前記キャッシュより低速の記憶機構と、 前記記憶機構及び前記キャッシュに接続された複数の処
理システムとを含む多重コンピュータ・データ共用シス
テムにおいて、前記キャッシュからのデータの除去を制
御する方法であって、 第1の前記処理システムにおいて、前記記憶機構に入れ
るべきデータ・ブロックをキャッシュから読み取るステ
ップと、 前記第1の処理システムが前記データ・ブロックを記憶
機構に入れている間に、第2の前記処理システムによっ
て前記キャッシュ中で該データ・ブロックが変更される
場合には、該キャッシュからの該データ・ブロックの削
除を防止し、変更がない場合には、該キャッシュから該
データ・ブロックを削除するステップとを含むデータ除
去制御方法。
6. A cache, management means for controlling access to a data block in the cache and deleting a data block from the cache, a storage mechanism slower than the cache, A method for controlling removal of data from a cache in a multi-computer data sharing system including a plurality of processing systems connected to the cache, wherein the first storage system includes the storage mechanism. Reading a data block from a cache; and modifying the data block in the cache by a second processing system while the first processing system is placing the data block into storage. The deletion of the data block from the cache. And, when there is no change, the data recovery control method comprising the step of deleting the data block from the cache.
【請求項7】キャッシュと、 前記キャッシュ中のデータ・ブロックへのアクセスを制
御し、該キャッシュからデータ・ブロックを削除するた
めの管理手段と、 前記キャッシュより低速の記憶機構と、 前記記憶機構及びキャッシュに接続された複数の処理シ
ステムとを含む多重コンピュータ・データ共用システム
において、前記キャッシュからのデータの除去を制御す
る方法であって、 前記記憶機構に入力すべきデータ・ブロックを持つ処理
システムの識別(ID)を有するキャストアウト・ロッ
ク・フィールドを含む、前記キャッシュ中の該データ・
ブロックの対応データを作成するステップと、 (a)前記キャストアウト・ロック・フィールドが、あ
る処理システムの識別を含む場合に、該処理システムの
持つデータ・ブロックの削除を防止するステップと、 (b)該データ・ブロックのキャッシュ中のバージョン
がそのデータ・ブロックの記憶機構中のバージョンと一
致しない場合に、該キャッシュからのそのデータ・ブロ
ックの除去を防止するステップと、 (c)キャッシュから該データ・ブロックを削除するス
テップとを含むデータ除去制御方法。
7. A cache, management means for controlling access to data blocks in the cache and deleting data blocks from the cache; a storage mechanism slower than the cache; In a multi-computer data sharing system including a plurality of processing systems connected to a cache, a method for controlling removal of data from the cache, comprising: a processing system having a data block to be input to the storage mechanism; The data in the cache, including a castout lock field having an identification (ID).
Creating corresponding data for the block; (a) preventing the deletion of a data block possessed by the processing system when the castout lock field includes an identification of the processing system; (b) C) preventing removal of the data block from the cache if the cached version of the data block does not match the version in the storage of the data block; A data removal control method including a step of deleting a block.
【請求項8】そのデータ・ブロックが削除されるまで、
ステップ(a)、(b)、(c)を順に繰り返す、請求
項7に記載の方法。
8. The data block until the data block is deleted.
The method according to claim 7, wherein steps (a), (b) and (c) are repeated in order.
【請求項9】メモリと、 READコマンドに応答してメモリからデータを獲得
し、該メモリ中のデータ・ブロックの対応データを有す
るディレクトリを維持する管理論理手段と、 データを記憶する前記メモリより低速の記憶機構と、 前記メモリ及び記憶機構に接続された複数の処理システ
ムとの組合せ構成において、 前記メモリから記憶機構へのデータ・ブロックの移動を
逐次化するためのREADプロセスを含むデータ転送制
御方法であって、 前記メモリにおいて、該メモリ中のデータ・ブロックが
記憶機構中の該データ・ブロックのバージョンと一致す
るかどうかを示す変更フィールドと、該記憶機構に入力
すべきデータ・ブロックを持つ処理システムを識別する
ための識別(ID)フィールドとを含む、該メモリ中の
データ・ブロックの対応データを作成するステップと、 前記記憶機構に前記メモリからデータ・ブロックを入力
するための要求を第1の前記処理システムから発行する
ステップと、 その要求に応答して、該データ・ブロックのメモリ中の
バージョンと記憶機構中のバージョンとの一致を示すよ
うに変更フィールドをセットし、第1の処理システムの
識別(ID)を識別フィールドに入れるステップと前記
第1の処理システムにおいて、該データ・ブロックを記
憶機構に入力するステップと、 該データ・ブロックを記憶機構に入れた後に、第1の処
理システムの識別(ID)を識別フィールドから除去す
るステップと、 変更フィールドが、メモリ中のデータ・ブロックと記憶
機構中のデータ・ブロックとの不一致を示す場合に、該
メモリからのそのデータ・ブロックの除去を防止し、そ
うでない場合に、そのデータ・ブロックを該メモリから
削除するステップとを含むデータ転送制御方法。
9. A memory, management logic means for obtaining data from the memory in response to a READ command and maintaining a directory having corresponding data of data blocks in the memory, and slower than the memory for storing data. And a plurality of processing systems connected to the memory and a plurality of processing systems connected to the memory, wherein a data transfer control method including a READ process for serially moving data blocks from the memory to the storage mechanism. Processing in the memory having a change field indicating whether a data block in the memory matches a version of the data block in a storage, and a data block to be input to the storage. A data block in the memory including an identification (ID) field for identifying the system. Creating corresponding data for the data block; issuing a request from the first processing system for inputting a data block from the memory to the storage mechanism; responding to the request; Setting a change field to indicate a match between the version in memory and the version in the storage mechanism, and entering the identification (ID) of the first processing system into the identification field. Entering the data block into the storage; removing the first processing system identification (ID) from the identification field after the data block is entered into the storage; A data block from the memory if it indicates a discrepancy between the data block and the data block in storage. Preventing removal of the block, otherwise, the data transfer control method comprising the step of deleting the data block from the memory.
JP5022747A 1992-03-30 1993-02-10 Control method and computer system for data transfer and data removal Expired - Lifetime JP2765672B2 (en)

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 (en) 1994-03-25
JP2765672B2 true JP2765672B2 (en) 1998-06-18

Family

ID=25334061

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5022747A Expired - Lifetime JP2765672B2 (en) 1992-03-30 1993-02-10 Control method and computer system for data transfer and data removal

Country Status (1)

Country Link
JP (1) JP2765672B2 (en)

Also Published As

Publication number Publication date
JPH0683702A (en) 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 (en) Data coherence control method
US5544345A (en) Coherence controls for store-multiple shared data coordinated by cache directory entries in a shared electronic storage
JP2505939B2 (en) How to control data castout
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 (en) Data processing control method and computer system
JPH05127995A (en) Method for securing consistency between pages which are in common with local cache
US20240126706A1 (en) Local page writes via pre-staging buffers for resilient buffer pool extensions
JP2765672B2 (en) Control method and computer system for data transfer and data removal
JP3107094B2 (en) Method and apparatus for shortening shared buffer lock period
EP1176509B1 (en) Managing recovery of data after failure of one or more caches
JPH01112444A (en) Data access system
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 (en) Control system for simultaneous access to file
JPH0895840A (en) Data base file restoration system