JP2549237B2 - データ処理システム - Google Patents

データ処理システム

Info

Publication number
JP2549237B2
JP2549237B2 JP5038929A JP3892993A JP2549237B2 JP 2549237 B2 JP2549237 B2 JP 2549237B2 JP 5038929 A JP5038929 A JP 5038929A JP 3892993 A JP3892993 A JP 3892993A JP 2549237 B2 JP2549237 B2 JP 2549237B2
Authority
JP
Japan
Prior art keywords
message
vector
path
list
ses
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
JP5038929A
Other languages
English (en)
Other versions
JPH0644092A (ja
Inventor
デーヴィッド・アーレン・エルコ
ジェフリー・アラン・フレイ
オードリー・アン・ヘルフリッヒ
ジェフリー・マーク・ニック
マイケル・ダスティン・スワンソン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0644092A publication Critical patent/JPH0644092A/ja
Application granted granted Critical
Publication of JP2549237B2 publication Critical patent/JP2549237B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/825Indexing scheme relating to error detection, to error correction, and to monitoring the problem or solution involving locking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、各中央処理複合体(C
PC)が外部記憶機構内に共用データの状態情報を維持
するのに使用されるデータ・オブジェクトを有する、メ
ッセージ経路によって構造化外部記憶(SES)機構に
接続されたCPCのネットワークに関し、具体的には、
構造化外部記憶機構とCPCの間に健全な経路が存在す
ることを検証するための、各CPC内の機構に関する。
【0002】
【従来の技術】構造化外部記憶機構によってシングル・
イメージ・システムのために実行されるコマンドは、同
一CPC内または異なるCPC内の別のシステムへの信
号を開始するように設計されている。生成される信号に
は、相互無効化(XI)信号やリスト状態遷移通知(L
N)信号がある。相互無効化信号が配布できないと、ロ
ーカルにキャッシュされるバッファ内のデータが、SE
S機構に登録されたバージョンに関して最新のものであ
ると目標システム・イメージが誤って見なす場合に、デ
ータ保全性が危険にさらされる可能性がある。リスト状
態遷移通知信号が配布できないと、空から非空にリスト
状態が遷移する結果、SES機構に照会する主導権が失
われた場合、システム・ハングがもたらされる可能性が
ある。どちらかの種類の信号が首尾よく配布および実行
できないと、外部記憶機構を共用するシステムのイメー
ジによって発行されたコマンドが、前述のデータ保全性
またはシステム・ハングの筋書きを防止するために首尾
よく実行することができなかった場合に、このような共
用システムのすべてにわたって同様な保全性の阻害、シ
ステム・ハングが発生する可能性がある。
【0003】
【発明が解決しようとする課題】本発明は、SESサポ
ート機構のローカル・キャッシュおよびリスト通知ベク
トル内容の保全性が、構造化外部記憶機構によって実行
される処理に関して保存されることを保証する、効率的
で応答性のよい手段を提供する。さらに、これは、多重
システム複合体にまたがる共用システム・イメージに、
または構造化外部記憶機構自体に、何ら他の問題を導入
することなしに達成される。
【0004】本発明の主目的は、付加された構造化外部
記憶機構によって生成される信号の喪失によって影響を
受けるローカル・プロセッサ資源に障害が発生する前
に、そのような信号をCPCが実行できないことに関連
するエラーを、CPCで検出できるようにする機構を提
供することである。
【0005】本発明のもう1つの目的は、遠隔構造化外
部記憶機構に直接アクセスする必要なしに、このように
検出されたエラーの存在を、CPCでのプログラム照会
に応答して監視可能にする機構を提供することである。
【0006】本発明のもう1つの目的は、生成されたコ
マンドを目標システムに配布できなくても、共用記憶機
構で一次コマンドの正常な完了を可能にする、信号配布
プロトコルを提供することである。
【0007】本発明のもう1つの目的は、非常に応答性
のよいローカル・キャッシュ・コヒーレンシ機構を有す
るプロトコルを提供することである。
【0008】
【課題を解決するための手段】従って、本願発明によっ
て、上記目的を達成するデータ処理システムが提供され
る。かかるデータ処理システムは、データ処理用のプロ
グラム内に配列された命令を実行するための中央処理機
構と、前記中央処理機構に接続され、前記プログラムお
よび共用データの状態情報を記憶するための主記憶装置
とを有する、中央処理複合体(CPC)と、共用データ
の状態情報を記憶するための構造化外部記憶機構と、前
記CPCと前記構造化外部記憶機構の間にあり、両者の
間でデータ、メッセージおよび応答を受渡しするための
一以上のメッセージ経路と、前記メッセージ経路に接続
され、前記メッセージ経路内でのエラーを検出するため
のエラー検出手段と、前記エラー検出手段にあり、前記
エラー検出手段がエラーの検出を停止した後に、前記エ
ラー検出手段によってエラーが検出されたとの指示を記
憶するためのエラー状態記憶手段と前記中央処理機構に
よって実行される命令であって、前記エラー状態記憶手
段に対してエラー表示の有無を問い合わせ、前記問い合
わせによって前記エラー状態記憶手段の内容が変更され
ることなく、前記メッセージパスにおいてエラーが検出
されたかどうかを判断する前記命令を有するプログラム
手段とを備えている。
【0009】更に、前記データ処理システムは、前記主
記憶装置内にあり、前記主記憶装置と前記構造化外部記
憶機構の間の接続経路を示す前記メッセージ経路の識別
子を記憶する状態格納領域と、前記状態格納領域内に記
憶された前記メッセージ経路の識別子が有効なメッセー
ジ経路を指示するかどうかを判定するための状態格納領
域テスト手段と、前記状態格納領域テスト手段内に、前
記プログラム手段に含まれる命令が前記状態格納領域内
で無効となっている識別子が示すメッセージ経路の回復
がなされたかどうかを検出するために前記エラー状態記
憶手段を問い合わせた後にのみ、前記状態格納領域に格
納されたメッセージ経路の識別子が有効なメッセージ経
路を示すかどうか判断する状態情報テスト手段と、前記
状態格納領域内の前記識別子が示す前記メッセージ経路
が健全である時に、共用データの状態情報を取得するた
めに前記状態情報テスト手段を使用可能にする手段とを
備えている。
【0010】更に、前記データ処理システムは、前記状
態格納領域内の前記識別子が示す前記メッセージ経路が
健全な経路でないと前記状態格納領域テスト手段が判定
することによって使用可能にされ、前記状態情報テスト
手段によって要求された共用データに関する状態情報が
無効であると見なすべきことを示すコードを返す無効状
態リターン手段と、前記状態格納領域内に記憶された前
記識別子が示すメッセージ経路が有効でないと前記プロ
グラム手段の命令または前記状態格納領域テスト手段が
判定する時に使用可能にされ、健全なメッセージ経路を
突き止めるために、前記複数のメッセージ経路のそれぞ
れをテストするためのメッセージ経路探索手段であっ
て、最初の健全なメッセージ経路を突き止めた時に、そ
れ以上のメッセージ経路のテストを停止させる手段を含
む、メッセージ経路探索手段と、前記メッセージ経路探
索手段によって健全なメッセージ経路が見つかった時、
共用データの状態情報を取得するために前記状態情報テ
スト手段を使用可能にする手段とを備えている。
【0011】
【実施例】本発明の上記その他の目的は、図面に示した
本発明の好ましい実施例についての以下の具体的な説明
から明らかになろう。
【0012】図1は、本発明を使用するデータ処理シス
テムのブロック図である。図1のシステムは、複数の入
出力制御ユニット14A〜14Nへのアクセスを制御す
る動的切替機構12を含む入出力(I/O)システムに
接続された、複数の中央処理複合体(CPC)10A〜
10Nを含む。入出力制御ユニット14A〜14Nは、
それぞれ図示の通り、1つまたは複数の直接アクセス記
憶装置(DASD)D1〜DNを制御する。動的切替機
構12は、インターナショナル・ビジネス・マシーンズ
・コーポレーション(IBM、米国ニューヨーク州アー
モンク)から入手できるESCONディレクタ動的切替
機構とすることができる。このような動的切替機構は、
本発明の所有者に譲渡され、参照によって本明細書に組
み込まれた、1989年10月30日出願の米国特許出
願第07/429267号に開示されている。既知の通
り、入出力コマンドとデータは、当該のCPC10A〜
10Nの入出力チャネル15A〜15Nによって、動的
切替機構12を介しCPCから入出力制御ユニットに送
られる。特定の入出力チャネル用のチャネル・プログラ
ムは、当技術分野で周知の通り、チャネル・コマンド・
ワード(CCW)によって確立される。
【0013】CPC10A〜10Nはそれぞれ、構造化
外部記憶(SES)機構16に接続される。SES機構
16は、CPCによってアクセス可能な記憶域を含み、
CPC内のプログラムによって要求される動作を実行す
る。CPC10A〜10Nは、それぞれシステム間(I
/S)チャネル18A〜18Nを含み、各I/Sチャネ
ルは、SES機構16内のI/Sチャネル20に接続さ
れる。本明細書では、SES機構16を結合機構とも称
する。図1の実施例には、SES機構16が1つだけ示
してあるが、それぞれCPC10A〜10Nのすべてま
たはその一部に接続されたそれ自体のI/Sチャネルと
メッセージ経路を有する、複数のSES機構を設けるこ
とができることが理解されよう。入出力チャネル15
は、周知のチャネル・サブシステム(CSS)の一部で
あり、図1では図示の都合上、入出力チャネル15とI
/Sチャネル18を別々に示してあるが、このCSSは
本明細書に開示するI/Sチャネル18も含むことを理
解されたい。
【0014】各CPC10A〜10Nは、それぞれロー
カル・キャッシュ24A〜24Nを有し、SES機構1
6は、1つまたは複数のSESキャッシュ26を含む。
DASD装置D(本明細書では、DASD40と総称す
る)、ローカル・キャッシュ24A〜24N、およびS
ESキャッシュ26は、3段記憶階層を形成する。最低
記憶段はDASD40であり、中間記憶段はSESキャ
ッシュ26であり、最高記憶段はローカル・キャッシュ
24A〜24Nである。本明細書では、ローカル・キャ
ッシュ24A〜24Nをローカル・キャッシュ24と称
することがある。
【0015】CPC10A〜10Nはそれぞれ、IBM
の出版物SA22-7201-00「エンタープライズ・システム体
系/390解説書(Enterprise Systems Architecture/3
90 Principles of Operation)」に記載の原理に従うI
BMシステムとすることができる。CPC10A〜10
Nはそれぞれ、1台または複数の中央演算処理装置(C
PU)を含み、このCPUは、周知の通り、IBMのM
VSオペレーティング・システムなどのオペレーティン
グ・システムを実行して、データ処理用プログラムの実
行を制御する。このようなプログラムの1つが、本明細
書で述べるSES動作の多くを実行する。このプログラ
ムを、本明細書では「該プログラム」と称する。該プロ
グラムの個々の命令は、「CPU命令」として識別す
る。
【0016】外部基準時間(ETR)28は、障害から
の回復および望ましくない動作の取消しを記録するた
め、また監査証跡のために、ログに書き込まれる制御情
報のタイム・スタンプを供給する。ETR28は、CP
C10A〜10Nのタイム・クロック(図示せず)を、
外部から可視の最も短い動作の持続時間以下の精度に同
期させ、光ファイバ相互接続ケーブルを使用する。ET
R28は、同期を上述の外部動作の長さ以内に維持でき
るようにするために、ケーブル長伝播時間差が重要であ
る場合には、このケーブル長伝播時間差を提供する。
【0017】図2は、SES機構16に接続された単一
のCPC10を示す図である。CPC10は、分離機構
30、メッセージ機構31、入出力機構32およびSE
Sサポート機構33を含んでいる。SES機構16は、
メッセージ経路プロセッサ35、中間メッセージ・プロ
セッサ36およびメッセージ・プロセッサ37を含んで
いる。メッセージ経路プロセッサ35は、メッセージ経
路コマンドを実行し、メッセージ経路機能を実行する。
中間メッセージ・プロセッサ36は、分離機構30など
の遠隔メッセージ・プロセッサに、中間メッセージ・コ
マンドを転送する。メッセージ・プロセッサ37は、図
4に関して本明細書で説明するリスト型およびキャッシ
ュ型の構造化記憶域をサポートする。
【0018】入出力機構32は、図2および図3の40
に示すDASDと入出力装置を用いて、入出力動作を実
行し、チャネル・プログラムを実行する。START SUBCHA
NNEL(サブチャネル開始)命令を使用して、当技術分野
で周知の形で入出力動作を開始する。この入出力機構
は、前掲の「エンタープライズ・システム体系/390
解説書」に記載されている。
【0019】メッセージ機構31は、メッセージ経路プ
ロセッサ35、中間メッセージ・プロセッサ36および
メッセージ・プロセッサ37を用い、分離機構30を用
いて、メッセージ動作を実行する。SEND MESSAGE(メッ
セージ送出)命令を使用して、SES機構16または分
離機構30に関するメッセージ動作を開始する。この機
構と命令は、参照によって本明細書に組み込まれる、米
国特許出願第860380号"Communicating Messages
Between Processors and a Coupling Facility"に開示
されている。
【0020】分離機構30は、他のメッセージ機構から
中間メッセージ・プロセッサを経て受け取ったコマンド
を実行する。それらのコマンドは、しばしば、他のCP
C上で走行中のプログラムによって発行される。これら
のコマンドは、後に説明する許可ベクトルおよびチャネ
ル・サブシステム状態指示に作用する。
【0021】SESサポート機構33は、CPC10内
でSES機能を実行し、SES機構16内でメッセージ
・プロセッサ37が生成したコマンドを実行する。
【0022】別々の5つのタイプのメッセージ・コマン
ドが定義されており、これらは、SES機構16とCP
C10のハードウェア構成要素の間で通信される。経路
コマンドは、SEND MESSAGE命令により、メッセージ機構
31から、サブチャネルに関連する選択されたメッセー
ジ経路を介してメッセージ経路プロセッサ35へ通信さ
れる。経路の選択は、CPC10の制御プログラムによ
って実行される。メッセージ経路識別、メッセージ経路
活動化およびメッセージ経路非活動化の、3つの経路コ
マンドが定義されている。
【0023】該プログラムは、SEND MESSAGE(SMS
G)命令を使用して、図2のメッセージ・プロセッサ3
7による動作を開始する。メッセージ・プロセッサ動作
の実行は、SES機構16にコマンド情報を送り、結果
を要約した応答情報を返すことによって達成される。さ
らに、このコマンドは、主記憶装置からSES機構への
データの転送すなわちSES書込み動作、またはSES
機構から主記憶装置へのデータの転送すなわちSES読
取り動作を指定することができる。
【0024】直接コマンドは、SEND MESSAGE命令によ
り、メッセージ機構31から、サブチャネルに関連する
選択されたメッセージ経路を介してメッセージ・プロセ
ッサ37へ通信される。経路の選択は、チャネル・サブ
システムまたはCPUによって実行され、直接コマンド
は、活動状態のメッセージ経路を介して通信されなけれ
ばならない。直接コマンドはまた、データ転送動作を含
むこともできる。直接コマンドは転送されないが、1つ
または複数のコマンドを生成することができる。直接コ
マンドのクラスには、グローバル・コマンド、バッファ
再試行コマンド、キャッシュ構造コマンドおよびリスト
構造コマンドが含まれる。
【0025】生成されたコマンドは、メッセージ・プロ
セッサ37から、メッセージ・プロセッサ37によって
システムの経路グループから選択されたメッセージ経路
を介して、指定されたCPC内のSESサポート機構3
3へ通信される。SESサポート機構33は、メッセー
ジ経路を介して通信された生成コマンドを実行するため
のプロセッサを含んでいる。経路の選択は、メッセージ
経路プロセッサ35によって実行される。データ転送は
行われない。生成コマンドは、活動状態のメッセージ経
路を介して通信されなければならない。生成コマンドに
は、後に説明する相互無効化コマンドとリスト通知コマ
ンドが含まれる。生成コマンドの処理は、そのコマンド
に応じて、関連する直接コマンドが完了する前に完了す
ることも、しないこともある。ただし、生成コマンドに
よって意図された処置が確実なものにならないうちに、
直接コマンドが完了することはない。
【0026】中間コマンドは、SEND MESSAGE命令によ
り、メッセージ機構31から、サブチャネルに関連する
選択されたメッセージ経路を介して中間メッセージ・プ
ロセッサ36へ通信される。経路の選択は、チャネル・
サブシステムまたはCPUによって実行される。中間分
離コマンドは、指定されたCPC内の分離機構30に転
送される。
【0027】転送されるコマンドは、中間メッセージ・
プロセッサ36からメッセージ・プロセッサに通信され
る。経路の選択は、メッセージ経路プロセッサ35によ
って実行される。転送コマンドは、活動状態のメッセー
ジ経路を介して通信されなければならない。中間メッセ
ージ・プロセッサ36で受け取った中間コマンド毎に、
厳密に1つの転送コマンドが処理される。転送コマンド
の処理は、関連する中間コマンドが完了する前に完了し
なければならない。
【0028】SES機構16でのコマンド実行の特徴
は、参照によって本明細書に組み込まれる、米国特許出
願第7860803号"Method and Apparatus for Coup
ling Data Processing systems"に記載されている。
【0029】SES機構16からCPC10へのすべて
の通信は、構成に応じて、宛先がメッセージ・プロセッ
サ37、メッセージ経路プロセッサ35または中間メッ
セージ・プロセッサ36のどれであろうとも、同じメッ
セージ経路を使用することができる。また、SES機構
16からCPC10へのすべての通信は、構成に応じ
て、宛先が分離機構30またはSESサポート機構33
のどちらであろうとも、同じ1組のメッセージ経路を使
用することができる。
【0030】分離機構30は、ESA/390チャネル
・サブシステムの1構成要素である。分離コマンドは、
CPUプログラムによって発行されるが、分離機構によ
って実行される。コマンド実行には、主記憶装置から要
求オペランドを取り出し、分離機構で記憶オブジェクト
に対して操作し、応答オペランドを主記憶装置に記憶す
ることが必要である。
【0031】メッセージ経路に関して、識別、活動化、
テスト、非活動化、相互無効化コマンドまたはリスト通
知コマンドの配布、直接コマンド、応答、および分離コ
マンドの配布の8つの機構が存在する。
【0032】メッセージ経路の識別及び活動化は、コマ
ンド通信用のリンクを選択的に構成できるようにするた
め、CPUプログラムによって実行される。活動状態の
経路に対してのみ実行が許可される、メッセージ経路を
介して配布された後続コマンドについて、テストが実行
される。あるコマンドについてインターフェース制御検
査が提示され、ある経路がもはや動作可能でないことが
発見された場合、その経路は、SES機構16側で非活
動状態であり、動作不能なその経路は、代替経路を介し
て該プログラムによって非活動化される。メッセージ経
路の選択と動作は、いずれも参照によって本明細書に組
み込まれる、米国特許出願第7860797号 "Manage
ment of Data Objects used to Maintain State Inform
ation for Shared Data at a Local Complex"、およ
び、米国特許出願第860647号"Recovery of Data
Objects Used to Maintain State Information for Sha
red Data at a Local Complex"に開示されている。
【0033】キャッシュの相互無効化は、たとえば、1
つまたは複数のローカル・キャッシュ24A〜24Nに
登録されたSESキャッシュ26内のデータに関する書
込み動作が実行される時に、SES機構16によって実
行される。SESの書込み動作が完了する前に、SES
機構16は、選択されたメッセージ経路を介してローカ
ル・キャッシュ24A〜24Nのコヒーレンシを維持す
るため、ローカル・キャッシュ24A〜24N内のデー
タの有効なコピーを含む各システムに、相互無効化信号
を送る。これは、参照によって本明細書に組み込まれ
る、米国特許出願第860805号"Sysplex Shared Da
ta Coherency Method and Means"に開示されている。
【0034】リスト状態遷移の通知は、空であったリス
トを非空にするリスト操作、または、非空であったリス
トを空にするリスト操作(後で図4および図6に関して
説明する)が実行される時に、SES機構16によって
実行される。いずれの場合も、リスト通知コマンドを、
そのリストを監視している各システムに送って、そのシ
ステムに状態遷移について知らせる。これは、参照によ
って本明細書に組み込まれる、米国特許出願第8608
09号"Method and Apparatus for Notification of St
ate Transitions for Shared Lists of Data Entries"
に開示されている。
【0035】分離コマンドすなわち分離または索引を使
用する分離は、CPC上で走行するプログラムによって
発行され、目標CPC上に置かれたシステム・イメージ
が目標となる。目標CPC上で分離コマンドを実行する
と、目標システムまたは目標システム上で走行するサブ
システムが、シスプレックスすなわち複数のCPCを有
するシステム内の諸システムによって共用される資源か
ら分離される。これは、参照によって本明細書に組み込
まれる、米国特許出願第860489号"Interdicting
I/O and Messaging Operations in a Multi-system Com
plex"に開示されている。分離コマンドは、コマンドを
SES機構16に送り、そこから目標システム・イメー
ジに転送することによって、目標に送られる。
【0036】SES機構16は、図3のメッセージ経路
状況テーブル43によって、コマンドの通信に使用され
る物理リンクの状態を連続的に監視する。一時的であれ
永続的であれ、物理接続の喪失または変化をもたらす可
能性のある障害が発生すると、メッセージ経路状況テー
ブル43に記録されている物理リンクに関連するすべて
のメッセージ経路が、非活動状態になる。該プログラム
が接続を再調整し、メッセージ経路を再活動化するま
で、コマンドはこれらのリンク上に送られない。これに
よって、ケーブルの移動などによる誤った接続のために
コマンドが誤って経路指定されることがなくなる。
【0037】SES監視機能に加えて、該プログラム
は、意図的に経路を非活動化したり、関連するシステム
識別子を変更することができる。SES機構16は、再
調整の進行中に、新規の相互無効化コマンド、リスト通
知コマンドまたはシステム分離コマンドが配布されない
ように、これらの経路指定構成の変更を直列化する。
【0038】メッセージ経路プロセッサ35によって提
供される経路選択機構は、転送されるコマンドと生成さ
れるコマンドのすべてに共通である。該プログラムは、
特定のコマンド・アーキテクチャとは無関係に、構成を
再調整し、経路指定情報を維持する。コマンド・アーキ
テクチャは、キャッシュ構造コマンドおよびリスト構造
コマンドならびに分離によって転送されるコマンドによ
る付加処理を含めて、様々な手段によって経路選択機構
とインターフェースする。
【0039】分離コマンドは、SES機構16内の中間
メッセージ・プロセッサを使用してコマンドを転送させ
ることによって、メッセージ機構から分離機構へ送られ
る。中間メッセージ・プロセッサ36を使用すると、シ
スプレックス内のCPC間の直接接続が不要になる。
【0040】図3は、3つのCPCとSES機構16を
示す図である。
【0041】分離コマンドは、中間メッセージ・プロセ
ッサで受け取られると、分離機構30に転送される。中
間メッセージ・プロセッサ36が、メッセージ経路プロ
セッサ35内の経路選択機能を呼び出して、指定された
システムにこの分離コマンドを配布する。
【0042】図4は、複数の構造(キャッシュ構造4
5、48およびリスト構造46、47)を有するSES
機構16を示す図である。メッセージ・プロセッサ37
は、該プログラムに別々の記憶構造を提供する。これら
の記憶構造のうちに、リスト構造(たとえば46と4
7)とキャッシュ構造(たとえば45と48)がある。
構造体のタイプ毎に1組のコマンドが用意され、後で論
じるグローバル・オブジェクトを参照するための追加の
コマンドも用意されている。特定の構造の生成、削除お
よび属性は、該プログラムにより割振りコマンドと割振
り解除コマンドを用いて制御される。図4には、同時に
存在することのできる、同一タイプの複数の構造が示さ
れている。割り振られた構造(キャッシュ構造45、4
8およびリスト構造46、47)は、別々のSES記憶
場所に常駐し、構造識別子(SID)によって位置指定
される。SID値は、コマンドによる目標構造の識別を
可能にする。キャッシュ構造コマンドやリスト構造コマ
ンドなど、特定の構造タイプのコマンドは、所与のタイ
プの単一の構造の内容だけしかアドレスまたは変更でき
ない。
【0043】SES機構は、データ・オブジェクトと制
御オブジェクトを格納している。データ・オブジェクト
は、どの記憶場所に常駐してもよいが、制御オブジェク
トは、一般に制御域だけに制限される。
【0044】SES記憶域および制御域の図4、図5お
よび図6に示す構造への区分は、該プログラムによって
管理される。データ・オブジェクトは、任意指定の付属
データ域を有するテーブルまたはリストに編成される。
残りのオブジェクトは、制御オブジェクトである。デー
タ・オブジェクトと制御オブジェクトに割り当てられる
記憶域の相対的な量は、割振りコマンドに含まれるプロ
グラム指定のパラメータによって決定される。図4のキ
ャッシュ構造45および48の一方が、図1のSESキ
ャッシュ26として示されている。
【0045】前述のように、図1のSESキャッシュ2
6はそれぞれ、付加CPC10A〜10Nのネットワー
ク内の3段記憶階層の1構成要素である。図5は、この
記憶階層を示す図である。この階層の最低段がDASD
40であり、中間段がSESキャッシュ26であり、最
高段がプロセッサ記憶装置内のローカル・キャッシュで
ある。DASD40とSESキャッシュ26は、CPC
10A〜10Nによって共用され、DASD40は入出
力動作によってアクセスされ、SESキャッシュ26は
メッセージ動作によってアクセスされる。ローカル・キ
ャッシュ24は、各CPC10内で定義され、CPU命
令を使ってアクセスされる。
【0046】図1に関連して論じたように、CPC10
A〜10Nは、入出力チャネル15A〜15Nによって
DASD40に接続され、I/Sチャネル18A〜18
NによってSESキャッシュ26に接続される。
【0047】図5を参照すると、記憶階層中を移動する
データには、名前が与えられる(ローカル・キャッシュ
24Aの欄50A、ローカル・キャッシュ24Bの欄5
0B、およびSESキャッシュ26の欄51)。ローカ
ル・キャッシュ24Aおよび24B内のデータ域は、そ
れぞれ欄52Aおよび52Bに示され、ローカル・キャ
ッシュ24Aおよび24B内の任意指定の付属データ域
は、それぞれ欄53Aおよび53Bに示されている。ロ
ーカル・キャッシュ24Aおよび24B内の各エントリ
は、それぞれ欄54Aおよび54Bに示す状態標識を含
んでいる。各SESキャッシュ26は、データ域(欄5
6)と付属データ域(欄57)を含むデータ・テーブル
55を含むことができる。データ・サイズは、可変であ
って、1実施例ではデータ域要素サイズの1〜n倍の範
囲である。データ域の要素サイズは、SESキャッシュ
26ごとに固定されており、2の累乗で、最小サイズが
256バイトである。任意指定の付属データ・フィール
ドを、データと関連付けることができる(欄53A、5
3Bおよび57)。データの名前(欄50A、50Bお
よび51)は、16バイト値で、プログラミング・プロ
トコルによって割り当てられる。データは、DASD4
0内に永続的に常駐する。
【0048】データのコピーまたはデータの新バージョ
ンは、SESキャッシュ26またはローカル・キャッシ
ュ24Aおよび24Bあるいはその両方の任意の組合せ
に常駐することができる。たとえば、データ・オブジェ
クトは、SESキャッシュ26とローカル・キャッシュ
24A〜24Nの一部分に常駐することがあり、また、
ローカル・キャッシュ24A〜24Nの一部には常駐す
るが、SESキャッシュ26には常駐しないことがあ
る。
【0049】各ローカル・キャッシュ24A〜24N
は、DEFINE VECTOR(ベクトル定義)命令によって定義
されるローカル・キャッシュ・ベクトルを含むCPC上
の当該の各SESサポート機構33を利用することによ
って、該プログラムによって維持されるプロセッサ記憶
域である。DEFINE VECTOR命令は、SESサポート機構
33内の制御を初期設定し、ローカル・キャッシュ・ト
ークンを割り当てる。
【0050】SESキャッシュ26の各構造は、ディレ
クトリ60と、欄56および57のデータ域要素の集合
体を有する任意指定のデータ・テーブル55とからな
る、SES機構16内の構造である。ディレクトリ60
は、前述の名前欄51、各ディレクトリ・エントリの状
態を示す状態欄61、および、ディレクトリ60内の各
エントリからデータ・テーブル55内の1エントリを指
すレジスタ欄62を含んでいる。各キャッシュ構造は、
構造識別子(SID)によって指定される。SESキャ
ッシュ26内の各SESキャッシュ構造は、キャッシュ
構造割振りコマンドによって作成される。このコマンド
は、SESキャッシュ構造の属性、すなわち、データ域
要素のサイズと数、ディレクトリ項目の数、記憶クラス
の数、およびキャストアウト・クラスの数を決定する、
該プログラム内の初期設定手順によって発行される。
【0051】ローカル・キャッシュ24は、ローカル・
キャッシュ付加コマンドによってSESキャッシュ26
に付加される。このローカル・キャッシュ付加コマンド
は、図2に関して論じたように、SES機構16内の制
御を初期設定し、SES機構16がSESサポート機構
33に生成されたコマンドを発行するのに利用される1
組の経路とローカル・キャッシュを関連付ける。ローカ
ル・キャッシュ24は、SESキャッシュ26構造に付
加され、その結果、記憶階層に参加できるようになる。
ローカル・キャッシュ24A〜24NとSESキャッシ
ュ26内のデータのコピーのコヒーレンシは、SESキ
ャッシュ26内の制御によって維持され、生成されたコ
マンドとしてCPC10A〜10N内の様々なSESサ
ポート機構33に発行される、相互無効化コマンドによ
って実効化される。SES機構内での1組の経路の構築
は、参照によって本明細書に組み込まれる、米国特許出
願第860646号"Message Path Mechanism for Mana
ging Connections BetweenProcessors and a Coupling
Facility"に開示されている。
【0052】ディレクトリ60は、完全連想式アレイと
して配列されたディレクトリ項目の集合体である。ディ
レクトリ項目は、記憶クラスに区分される。変更済みデ
ィレクトリ項目からなる部分は、キャストアウト・クラ
スに区分される。名前付きデータ・オブジェクトが、階
層の上の2つの段(SESキャッシュ26とローカル・
キャッシュ24)に置かれる時には、SESキャッシュ
・ディレクトリによって、その状態が状態欄61に記録
され、その場所がレジスタ欄62に記録される。状態情
報は、そのデータが、変更済みか、未変更か、キャスト
アウト用にロックされているか、それとも、SESキャ
ッシュ26に常駐しているかを示す。場所情報には、ロ
ーカル・キャッシュ24A〜24Nのうちのどれにコピ
ーが格納されているかが含まれる。一部のSES読取り
コマンドおよびSES書込みコマンドは、ローカル・キ
ャッシュのコピーをSESキャッシュ・ディレクトリに
登録する。SES書込みコマンドおよびSES無効化コ
マンドは、この登録を除去し、ローカル・コピーを無効
にする。
【0053】データがローカル・キャッシュ24内にあ
る時、そのデータの状態は、有効か無効のいずれかであ
る。ローカル・キャッシュ・エントリの有効状態は、S
ESサポート機構33内の制御によって維持される。デ
ータは、CPU命令によって有効にされ、SES書込み
動作およびSES無効化動作によって無効にされる。デ
ータの有効状態は、CPU命令によってテストされる。
有効な名前付きデータ・オブジェクトは、ローカル・キ
ャッシュのコヒーレンシを維持するため、SESキャッ
シュのディレクトリ60に登録しなければならない。ロ
ーカル・キャッシュのコヒーレンシは、無効化処理によ
って維持される。登録済みのローカル・キャッシュ・エ
ントリは、無効と判定される可能性がある。これを無効
状態の過剰指示と称し、本明細書で議論するように、こ
れは許される。
【0054】SESキャッシュ26は、通常はDASD
40より小さい。したがって、周期的に、変更済みデー
タをSESキャッシュ26から補助DASD40に転送
しなければならない。この処理は、キャストアウトと称
するが、該プログラムによって制御され、以下の動作を
伴う。キャストアウト用SES読取り動作を発行し、こ
れによって、キャストアウト直列化を設定し、データ・
ブロックを主記憶装置にコピーする。このデータ・ブロ
ックは、ローカル・キャッシュ24に置いても置かなく
てもよい。入出力動作を実行し、これによって、データ
・ブロックをDASD40にコピーする。SESキャス
トアウト・ロック解除動作を発行し、これによって、キ
ャストアウト直列化を解除する。
【0055】ローカル・キャッシュ24A〜24Nのう
ちの1つに対して、複数のキャストアウト処理が共存で
きる。データがキャストアウト用にロックされる時に
は、そのローカル・キャッシュ24A〜24Nの識別子
とそのキャストアウト処理の識別子が、ディレクトリ6
0内に置かれる。これは、参照によって本明細書に組み
込まれる、米国特許出願第860806号"Management
of Data Movement froma SES Cache to DASD"に開示さ
れている。
【0056】最も以前に使用された(LRU)未変更の
データ資源およびディレクトリ資源が、新しい要求を満
足するのに必要な時、SESキャッシュ26によって再
利用される。データ・オブジェクトは、該プログラムに
よって、複数の記憶クラスのうちの1つにマップされ
る。各記憶クラスは、再利用処理を制御する再利用ベク
トルを有する。これを用いると、記憶クラス間でのSE
S記憶域の割当てを動的に調節して、作業負荷特性の変
化に対処できるようになる。再利用ベクトルは、該プロ
グラムによって維持される。これは、参照によって本明
細書に組み込まれる、米国特許出願第860807号"S
torage Management for a Shared Electronic Storage
Cache"に開示されている。
【0057】図6は、各CPC10A〜10Nがそれぞ
れプロセッサ記憶装置65A〜65Nを含む、CPC1
0A〜10NのSES機構16への接続を示す図であ
る。図4のリスト構造46の1つの内容を、図6に示
す。SES機構の他のリスト構造も、図6に示したリス
ト構造と同じであることを理解されたい。
【0058】リスト構造46は、リスト構造制御66と
ユーザ制御67とを含み、さらに任意指定として、ロッ
ク・テーブル68またはリスト・セット70、あるいは
その両方を含むことができ、リスト・セット70は、リ
スト制御69とリスト・エントリ制御71を含む。
【0059】各ロック・テーブル68は、1つまたは複
数のエントリのシーケンスからなり、これらのエントリ
には、0から始まる連続した番号が付けられる。リスト
構造タイプは、すべてのロック・テーブル・エントリ
が、グローバル・ロック・マネージャ(GLM)オブジ
ェクト、またはローカル・ロック・マネージャ(LL
M)オブジェクトあるいはその両方を有するかどうかを
決定する。
【0060】リスト構造制御66は、リスト構造46の
作成時に初期設定される。リスト構造制御66は、構造
のサイズ、リスト構造タイプ、ロック・テーブル・エン
トリのカウント、非0ロック・テーブル・エントリのカ
ウント、ロック・テーブル・エントリのサイズ、リスト
・カウント、リスト要素サイズ、リスト・セット・エン
トリのカウント、ユーザ識別子ベクトル、および符号6
7で別に示したユーザ制御など、その構造の属性を含
む。
【0061】ユーザ制御67は、リスト構造のユーザが
付加される時に、作成され初期設定される。ユーザ制御
67は、リスト通知トークン、システム識別子、ユーザ
付加制御およびユーザ状態を含む。
【0062】リスト・セット70は、リスト制御69に
よって表される1つまたは複数のリストを含み、これら
のリストには、0から始まる連続した番号が付けられ
る。
【0063】リスト72のそれぞれにリスト制御69が
関連付けられる。リスト制御69は、リスト・エントリ
・カウント、リスト・エントリ・カウントの限界、リス
ト監視テーブル、リスト状態遷移カウントおよびユーザ
・リスト制御を含む。
【0064】各リスト72は、ゼロまたは1個以上のエ
ントリのシーケンスからなる。リスト構造タイプは、リ
スト・セット70内のすべてのリスト・エントリが、デ
ータ・リスト・エントリ73、付属データ・リスト・エ
ントリ74またはその両方を有するかどうかを決定す
る。
【0065】上述のリスト・エントリ制御71のうちの
1つが、リスト72の各エントリに関連付けられる。リ
スト・エントリ制御71は、リスト・エントリ記憶場所
情報と、付属データ・リスト・エントリ74内のデータ
を管理するための他の情報を含む。
【0066】リスト・コマンドは、ロック・テーブル・
エントリを書き込む手段を提供する。すなわち、あるコ
マンドで、グローバル・ロック・マネージャ(GLM)
を比較し、条件付きでグローバル・ロック・マネージャ
(GLM)、ローカル・ロック・マネージャ(LLM)
またはグローバル・ロック・マネージャ(GLM)とロ
ーカル・ロック・マネージャ(LLM)の両方を置換す
ることができる。リスト・コマンドは、ロック・テーブ
ル68内の1エントリまたは次の非0のロック・テーブ
ル・エントリを読み取る手段や、ロック・テーブル68
をクリアする手段も提供する。
【0067】リスト・コマンドはまた、条件付きでリス
ト72内のエントリを作成、読取り、置換、移動または
削除する手段を提供する。これらの処理中に複数の比較
が要求されることがある。この比較には、リスト番号の
比較、バージョン番号の比較、グローバル・ロック・マ
ネージャ(GLM)の比較、またはこれらの任意の組合
せが含まれる。さらに、グローバル・ロック・マネージ
ャを比較する際に、ローカル・ロック・マネージャ(L
LM)を比較することができる。リスト・エントリを、
1つのリスト72から同じリスト構造46内の別のリス
トへ移動することができ、また同じリスト72内のある
位置から別の位置に移動することができる。これは、参
照によって本明細書に組み込まれる、米国特許出願第8
60655号"Method and Apparatus for Performing C
onditional Operations on Externally Shared Data"に
開示されている。
【0068】リスト72内のリスト・エントリの位置
は、その作成時に決定され、そのリスト内の任意のエン
トリを生成、削除または移動する時に変更できる。リス
ト・エントリまたはリスト・エントリ位置は、リスト・
エントリ識別子、任意指定のリスト・エントリ名、また
は位置によって、リスト・セット70内で位置指定され
る。
【0069】リスト・エントリ識別子は、リスト・セッ
ト70に固有であり、SES機構16によって割り当て
られる。リスト・エントリ名は、どの特定の瞬間にもリ
スト・セット70に固有であり、該プログラムによって
提供される。位置は、リスト番号、方向および任意指定
のリスト・エントリ・キーによって指定される。
【0070】リスト・エントリ・キーが存在する時、キ
ー付きのリスト・エントリは、最も小さい数字のキーが
左端の位置になるようにキーの順に並べられる。同じキ
ー値を有する要素は、同じキー値の中の先頭または末尾
によって位置指定できる。
【0071】キーなしのリスト・エントリを作成または
移動する時、目標のリスト・エントリ位置は、必ずキー
なしの位置によって位置指定される。キー付きのリスト
・エントリを作成または移動する時、目標のリスト・エ
ントリ位置は必ず、キー付きの位置と、同じキー値の中
の先頭または末尾によって位置指定される。
【0072】リスト・コマンドはまた、リスト72の1
エントリの、同期式の書込みと移動、移動と読取り、ま
たは読取りと削除を行う手段を提供する。複数のリスト
・エントリを同期式に削除することができ、複数のデー
タ・リスト・エントリ73または付属データ・リスト・
エントリ74を同期式に読み取ることもできる。データ
・リスト・エントリ73は、メッセージ動作ブロックに
よって指定された主記憶装置内のデータ域に必ず返され
る。付属データ・リスト・エントリは、コマンドに応じ
て、メッセージ応答ブロック内またはデータ域内に返さ
れる。これは、参照によって本明細書に組み込まれる、
米国特許出願第860633号"Apparatus and Method
for List Management in a Coupled Data Processing S
ystem"に開示されている。
【0073】通常、データ・リスト・エントリ73は、
アプリケーション・プログラムのデータを格納し、付属
データ・リスト・エントリ74は、それに関連する制御
データを格納している。
【0074】リスト監視とは、リスト構造ユーザ付加コ
マンドおよびリスト監視登録コマンドを使って、リスト
構造のユーザが任意指定で要求する、SESリスト機能
である。リスト構造ユーザ付加コマンドは、リスト構造
のユーザが常駐するシステムとそのユーザに関連するリ
スト通知ベクトルLNVとを、SESに対して識別す
る。リスト監視登録コマンドを用いると、ユーザがリス
トの監視を開始できるようになる。これは、参照によっ
て本明細書に組み込まれる、米国特許出願第86080
9号"Method and Apparatus for Notification of Stat
e Transitions for Shared Lists of Data Entries"に
開示されている。
【0075】各プロセッサ記憶装置65A〜65Nは、
1つのリスト通知ベクトル・グローバル・サマリ(LN
VGS)、複数のリスト通知ベクトル・ローカル・サマ
リ(LNVLS)エントリ、および複数のリスト通知ベ
クトル(LNV)を含む。リスト通知ベクトル(LN
V)は、DEFINE VECTOR命令によって作成される。LN
Vのサイズは、リスト・ユーザによって変わることがあ
る。LNVは、リスト構造ユーザ付加コマンドによって
SESのリスト構造46に付加される。LNV内の各エ
ントリは、リスト構造46内のリスト72に関連付ける
ことができる。空から非空の状態へまたは非空から空の
状態へのリスト遷移は、LNV内の適当なエントリをC
PUから周期的にポーリングすることによって検出され
る。このために、TEST VECTOR ENTRY(ベクトル・エン
トリ・テスト)命令が用意してある。
【0076】LNVエントリは、空状態へのリスト遷移
の結果として1にセットされ、非空状態へのリスト遷移
の結果として0にセットされる。
【0077】CPC上で作成された各LNV毎に、1つ
のリスト通知ベクトル・ローカル・サマリLNVLSが
存在する。プログラム指定のオプションとして、関連す
るLNVが空から非空へのリスト遷移を示すことのない
ように何らかのリスト通知コマンドが処理される時、L
NVLSは活動状態になる。LNVLSは、非空から空
へのリスト状態遷移の結果として更新されることはな
い。LNVLSの更新は、リスト通知コマンドのオプシ
ョンを使用して指定される。LNVLSは、TESTVECTOR
SUMMARY(ベクトル・サマリ・テスト)命令によってテ
ストされ、SET VECTOR SUMMARY(ベクトル・サマリ・セ
ット)命令によってセットまたはリセットされる。
【0078】CPC上には、CPCイメージ毎に1つの
リスト通知ベクトル・グローバル・サマリLNVGSが
存在する。LNVGSは、非空から空へのリスト状態遷
移の結果としては更新されず、LNVLSがリスト通知
コマンドによってセットされる時にセットされる。LN
VGSは、TEST VECTOR SUMMARY命令によってテストさ
れ、SET VECTOR SUMMARY命令によってセットまたはリセ
ットされる。
【0079】ユーザがリストを監視している時、空から
非空へおよび非空から空へのリストの状態遷移が起こる
と、SES機構16は、ユーザ付加を開始したシステム
にリスト通知コマンドを発行する。
【0080】リスト通知コマンドは、指定されたリスト
通知ベクトル(LNV)エントリを、監視されるリスト
72の空状態または非空状態を反映するように更新させ
る。リスト通知コマンドはまた、指定されたリスト通知
ベクトル・グローバル・サマリ(LNVGS)およびリ
スト通知ベクトル・ローカル・サマリ(LNVLS)
を、監視されるリスト72の非空状態を反映するように
更新させることもできる。
【0081】顧客プログラムは、一般に、SES機能を
直接に呼び出すことはない。これらの機能は、通常、イ
ンターナショナル・ビジネス・マシーンズ・コーポレー
ション(IBM)からMVS/ESAの商標で入手でき
るサブシステムによって使用される。しかしながら、顧
客プログラムは、SES機能を直接呼び出す必要がある
ことが判った場合、MVS/ESAが提供するインター
フェースを使用する。MVS/ESAのインターフェー
ス定義は、IBMから入手でき、当技術分野で周知であ
る。
【0082】次に、図2のSESサポート機構33の制
御について論ずる。中央処理複合体(CPC)内でSE
S機能を実行する責任を負うSES構成の構成要素が、
SESサポート機構33である。これは、下記の項目か
らなる。
【0083】CPU命令、下記のものを含む CLEAR MESSAGE PATH STATE(CMPS)(メッセージ経路状態クリア) DEFINE VECTOR(DV)(ベクトル定義) SET VECTOR ENTRY(SVE)(ベクトル・エントリ・セット) SET VECTOR SUMMARY(SVS)(ベクトル・サマリ・セット) TEST MESSAGE PATH STATE(TMPS)(メッセージ経路状態テスト) TEST VECTOR ENTRY(TVE)(ベクトル・エントリ・テスト) TEST VECTOR SUMMARY(TVS)(ベクトル・サマリ・テスト) コマンド、下記のものを含む 相互無効化(XI) リスト通知(LN) データ・オブジェクト、下記のものを含む ローカル・キャッシュ・ベクトル(LCV) リスト通知ベクトル(LNV) リスト通知ベクトル・グローバル・サマリ(LNVGS) リスト通知ベクトル・ローカル・サマリ(LNVLS) メッセージ経路状態(MPS)
【0084】前記の諸項目が、SES構成の必要部分で
ある。相互無効化コマンドの実行およびリスト通知コマ
ンドの実行は、SESサポート機構33によって行われ
る。SES構成は、SES機構16と、SES機構16
に付加された各CPC10に常駐するSESサポート機
構33とからなる。SESサポート機構33は、メッセ
ージ機構がCPCに導入されることを必要とする。
【0085】SESサポート機構33用に定義されたデ
ータ・オブジェクトは、アドレス可能な記憶域には置か
れず、CPU命令とSESサポート機構33のコマンド
によってのみ操作可能である。これらのデータ・オブジ
ェクトは、たとえば、当技術分野で周知であり、ユーザ
によってアドレス可能ではない、ハードウェア・システ
ム域(HSA)に置くことができる。これらのデータ・
オブジェクトに対する参照は、アドレス可能な主記憶装
置への参照に適用されるものと同じ規則に従う。具体的
に言うと、置換の単位は1バイトであり、事前取出しと
遅延記憶に直列化が適用される。
【0086】以下で説明するベクトル・トークンとは、
特定のローカル・キャッシュ・ベクトルまたはリスト通
知ベクトルを一意に識別するのに使用される値である。
トークンは、ベクトルが定義される時に供給され、その
ベクトルが解放されるか、クリア・リセット機能が実行
されるまで存続する。
【0087】0だけからなるトークンは無効である。
【0088】クリア・リセット機能は、ローカル・キャ
ッシュ・トークンおよびリスト通知トークンをすべて解
放し、リスト通知ベクトル・グローバル・サマリ(LN
VGS)をリセット状態に置き、すべてのメッセージ経
路状態をクリア状態に置く。クリア・リセット機能はま
た、ローカル・キャッシュおよびリスト通知のための割
当て処理を初期設定することもできる。したがって、ク
リア・リセット機能に従えば、DEFINE VECTOR命令の実
行中に、クリア・リセット機能を実行する前に存在した
トークンと同じローカル・キャッシュ・トークンまたは
リスト通知トークンを割り当てることができる。
【0089】ローカル・キャッシュ・ベクトル(LC
V): ローカル・キャッシュ・ベクトルは、DEFINE VECTOR命
令によって作成される。ローカル・キャッシュ・ベクト
ルのサイズは、キャッシュ・ユーザによって変わること
がある。ローカル・キャッシュ・ベクトルは、ローカル
・キャッシュ付加コマンドを使用してキャッシュ構造4
5および48に付加される。ローカル・キャッシュ・ベ
クトルの各エントリは、ローカルにキャッシュされてい
るデータ要素の有効または無効の状態を示す。ローカル
にキャッシュされたコピーは、SES機構に登録された
共用コピーに関してもはや最新のものでなくなっている
時、無効であると言われる。TEST VECTOR ENTRY命令
は、ローカル・キャッシュ・ベクトル内で表されるロー
カルにキャッシュされたデータ・コピーの状態を照合す
るために用意されている。
【0090】ローカル・キャッシュ・ベクトル・エント
リは、関連するローカルにキャッシュされたデータ項目
が、SES機構に登録された共用コピーに関して最新の
ものである時、1になる。ローカル・キャッシュ・ベク
トル・エントリは、関連するローカルにキャッシュされ
たデータ項目が、SES機構に登録された共用コピーに
関して最新のものでない時、0になる。
【0091】リスト通知ベクトル(LNV): リスト通知ベクトルは、DEFINE VECTOR命令によって作
成される。リスト通知ベクトルのサイズは、リスト・ユ
ーザによって変わることがある。リスト通知ベクトル
は、リスト構造ユーザ付加コマンドによってリスト構造
46および47に付加される。リスト通知ベクトルの各
エントリは、SESリスト構造内の1リストと関連付け
ることができる。空から非空の状態へおよび非空から空
の状態へのリスト遷移は、リスト通知ベクトル内の適当
なエントリをCPUから周期的にポーリングすることに
よって検出される。このために、TEST VECTOR ENTRY命
令が用意されている。
【0092】リスト通知ベクトル・エントリは、空状態
へのリスト遷移の結果として1にセットされ、非空状態
へのリスト遷移の結果として0にセットされる。
【0093】CPC上で作成された各リスト通知ベクト
ル毎に、1つのリスト通知ベクトル・ローカル・サマリ
(LNVLS)が存在する。プログラム指定のオプショ
ンとして、関連するリスト通知ベクトルが空から非空へ
のリスト遷移を示すことのないように何らかのリスト通
知コマンドが処理される時、リスト通知ベクトル・ロー
カル・サマリ(LNVLS)は、活動状態になる。リス
ト通知ベクトル・ローカル・サマリ(LNVLS)は、
非空から空へのリスト状態遷移の結果として更新される
ことはない。リスト通知ベクトル・ローカル・サマリ
(LNVLS)の更新は、リスト通知コマンドのオプシ
ョンを使用して指定される。リスト通知ベクトル・ロー
カル・サマリ(LNVLS)は、TEST VECTOR SUMMARY
命令によってテストされ、SET VECTOR SUMMARY命令によ
ってセットまたはリセットされる。
【0094】CPC上には、CPCイメージ毎に1つの
リスト通知ベクトル・グローバル・サマリ(LNVG
S)が存在する。リスト通知ベクトル・グローバル・サ
マリ(LNVGS)が活動状態になるのは、リスト通知
ベクトル・ローカル・サマリ(LNVLS)が活動状態
になって、空から非空へのSESリスト状態遷移を示す
時である。リスト通知ベクトル・グローバル・サマリ
(LNVGS)は、非空から空へのリスト状態遷移の結
果としては更新されない。リスト通知ベクトル・グロー
バル・サマリ(LNVLS)は、TEST VECTOR SUMMARY
命令によってテストされ、SET VECTOR SUMMARY命令によ
ってセットまたはリセットされる。
【0095】メッセージ経路状態(MPS): SESサポート機構33は、それぞれシステム間リンク
と、リンクを介するメッセージの送受に使用されるシス
テム間チャネルとからなる、複数のメッセージ経路によ
ってSES機構16と通信する。システム間リンクは、
送信用に1本と受信用に1本の1対の光導体を有する光
リンクとすることができる。SES機構16に登録さ
れ、メッセージ経路識別子によって指定されるメッセー
ジ経路の状態は、活動状態か非活動状態のいずれかであ
る。SESサポート機構33に登録され、システム間チ
ャネル経路識別子とゲスト識別子によって指定されるメ
ッセージ経路の状態は、エラー状態保留中か非エラー状
態保留中のいずれかである。
【0096】メッセージ経路は、付加されたSES機構
16によって開始されたコマンドをSESサポート機構
33が処理できなくなるような条件がそのメッセージ経
路上で認識される時には、エラー状態保留中にされる。
メッセージ経路は、最初にCPCでのクリア・リセット
機能実行の一環として非エラー状態保留中にされ、また
CLEAR MESSAGE PATH STATE命令がそのメッセージ経路に
発行される時に、非エラー状態保留中にされる。
【0097】I/Sチャネル18のうちの1本を使用し
てSES機構16と通信する時、SESサポート機構3
3に登録されたメッセージ経路状態は、システム間チャ
ネルが光リンクによって構成される状態から抜けるか、
あるいはバッファ無効化応答が返される時に、エラー状
態保留中にされる。
【0098】まず、メッセージ経路をエラー状態保留中
にしてからでないと、CPC10がバッファ無効化要求
に応答できるようにならない。これが必要なのは、SE
S機構16が、そのメッセージ経路上でのそれ以上の相
互無効化メッセージ処理またはリスト通知メッセージ処
理の放棄を選択する可能性があり、その経路を非活動状
態に置く可能性があるからである。
【0099】SESサポート機構33で観察されるメッ
セージ経路状態は、必ずしもそのメッセージ経路を構成
する物理要素の現在の状態を直接に反映してはいない。
【0100】エラー状態保留中状態は、一旦示される
と、そのメッセージ経路に対してCLEAR MESSAGE PATH S
TATE命令が実行されるか、あるいはクリア・リセット機
能が実行されるまで持続する。これらの処置が行われる
ことの結果として、そのメッセージ経路の現在の物理的
状態とは無関係に、エラー状態保留中の指示がリセット
される。
【0101】SESサポート機構33で観察されるメッ
セージ経路の状態は、必ずしもSES機構内の経路の対
応する状態を直接に反映してはいない。
【0102】TEST MESSAGE PATH STATE命令によって該
プログラムに報告されるエラー状態保留中状態は、その
メッセージ経路上でのコマンド実行の成功を妨げる可能
性のある条件に出会ったことを示すものである。
【0103】ある種の非エラー条件によって、メッセー
ジの受取りの成功が妨げられ、したがって、そのメッセ
ージ経路に対してエラー状態保留中が示されることがあ
る。動作可能リンクを静止状態に置くことが、そのよう
な条件の例である。しかし、そのような条件が存在して
いる間に、そのメッセージ経路がSES機構16側で活
動状態であり、かつそれが、目標CPCにコマンドを配
布するために選択されない場合は、目標CPC側でエラ
ー状態保留中が示されていても、その経路は活動状態の
ままとなる。さらに、SESサポート機構33内のメッ
セージ経路の状態は、CLEAR MESSAGE PATH STATE命令の
実行の影響を受ける。SES機構16内のメッセージ経
路の状態は、メッセージ経路活動化コマンドおよびメッ
セージ経路非活動化コマンドの実行の影響を受ける。
【0104】TEST MESSAGE PATH STATE命令によって、
メッセージ経路がエラー状態保留中であると示される
時、該プログラムは、SES機構16側でのそのメッセ
ージ経路の状態を判定するために、メッセージ経路識別
コマンドを発行しなければならない。
【0105】あるメッセージ経路に対してエラー状態保
留中が示される原因となる条件には、下記のものがあ
る。
【0106】1つまたは複数のリンク・ファイバの喪
失、リンク・プロトコル・エラー、リンク・インターバ
ル持続時間を超える同期の喪失、またはシステム間チャ
ネルの誤動作を伴う、リンク障害 電源遮断、チャネル経路識別子(CHPID)の物理的
な構成解除、またはケーブルの取外しなどの外部手段 リンク上での動作不能シーケンス(NOS)またはオフ
ライン・シーケンス(OLS)の認識 メッセージ・タイムアウトの結果として発生するバッフ
ァ無効化要求の認識動作可能リンクが静止状態に置かれ
ること
【0107】ローカル・キャッシュ・ベクトルおよびリ
スト通知ベクトルの記憶モデル:ローカル・キャッシュ
・ベクトル(LCV)およびリスト通知ベクトル(LN
V)は、仮想記憶アドレス、絶対記憶アドレスまたは実
記憶アドレスのいずれによっても該プログラムからアド
レス不能な、プロセッサ記憶場所を占める。特定のCP
U命令が、ローカル・キャッシュ・ベクトル(LCV)
またはリスト通知ベクトル(LNV)に含まれる1つま
たは複数のエントリへのアクセスを提供するように定義
されている。アクセスされるベクトル・エントリを含む
プロセッサ記憶域のバイトの有効アドレスが、これらの
命令に供給される。
【0108】この定義では、用語「有効アドレス」は、
アクセスされるベクトル・エントリを含むプロセッサ記
憶域の、その計算機による変換が発生する場合には、そ
の変換前の、バイトを指す。ローカル・キャッシュ・ベ
クトル(LCV)およびリスト通知ベクトル(LNV)
のエントリの有効アドレスは、DV命令によって割り当
てられる。仮想記憶アドレスとは異なり、ベクトル・エ
ントリを含むプロセッサ記憶域のバイトは、せいぜい1
つの有効アドレスを用いてアクセスされる。ベクトル・
エントリ有効アドレスとプロセッサ記憶場所は、1対1
で対応している。
【0109】具体的に言うと、ESA/390アーキテ
クチャの下記の態様は、主記憶装置に関するのと同様
に、ローカル・キャッシュ・ベクトル(LCV)および
リスト通知ベクトル(LNV)にも適用される。
【0110】記憶域参照の順序: 概念的には、CPUは、命令を一時に1つずつ、次の命
令を実行する前に1つの命令を実行する形で処理する。
この処理によって暗示される事象の順序を、概念上の順
序と称することがある。
【0111】各動作は、該プログラムから見ると、前の
動作の完了後、現動作の実行開始前に、現命令が取り出
され、逐次式に実行されるように見える。記憶域実施態
様の特性のため、および記憶域アクセスと命令実行がオ
ーバーラップするために実際の処理が異なっている可能
性があるにもかかわらず、CPU上ではこの外見が維持
される。それから得られる結果は、動作が概念上の順序
で実行された場合に得られるものと同じである。
【0112】記憶域参照用のインターロック: 前節で説明したとおり、CPU動作は、そのCPUから
見ると、逐次式に実行されるように見える。すなわち、
ある命令によって記憶される結果が、次の命令が取り出
される前に完了するように見える。2つの有効アドレス
が、同じ値を有し、同一の記憶場所にマップされる場
合、これらの有効アドレスは同一であると言われる。
【0113】ある記憶場所に対するすべてのアクセス
が、同一の有効アドレスを使用することによって行われ
る時、CPU自体によって観察される限り、上記の規則
が厳密に維持される。
【0114】記憶域オペランド参照: 記憶域オペランド参照とは、命令によって指定される記
憶場所での明示的なオペランドの取出しまたは記憶であ
る。
【0115】ある命令の実行中に、その命令用の記憶域
オペランドのすべてまたはその一部を取り出すことがで
き、後で修正できるように中間結果を維持することがで
き、最終結果を記憶域内に置く前にその最終結果を一時
的に保持することができる。チャネル・プログラムが引
き起こす記憶動作は、必ずしもこれらの中間結果に影響
するものではない。記憶域オペランド参照には、取出
し、記憶および更新の3タイプがある。
【0116】記憶域オペランド取出し参照: 記憶域オペランドのバイト群が、ソースとしてのみ命令
実行に関与する時、そのオペランドを取出しタイプ・オ
ペランドと称し、その記憶場所に対する参照を記憶域オ
ペランド取出し参照と称する。取出し参照の単一のバイ
ト内のすべてのビットが同時にアクセスされる。
【0117】記憶域オペランド記憶参照: 記憶域オペランドのバイト群が、宛先としてのみ命令実
行に関与する時、そのオペランドを記憶タイプ・オペラ
ンドと称し、その記憶場所に対する参照を記憶域オペラ
ンド記憶参照と称する。記憶参照の単一のバイト内のす
べてのビットが同時にアクセスされる。
【0118】CPUは、記憶域に結果を置くのを遅延さ
せることがある。結果を記憶する前に保留中にしておけ
る時間の長さに関しては、何の制限も定義されていな
い。この遅延は、結果を記憶域に置く順序に影響を与え
ない。ある命令の結果は、チャネル・プログラムおよび
他のCPUプログラムによって観察される限り、先行す
るすべての命令の結果が記憶域に置かれた後、後続命令
の結果が記憶される前に、記憶域に置かれる。1つの命
令の結果は、必ず、その命令に関して指定された順序で
記憶される。
【0119】記憶域オペランド更新参照: 一部の命令では、記憶域オペランドの記憶場所が、ソー
スと宛先の両方として関与する。このような場合、その
記憶場所に対する参照が、まず取出しで行われ、次に記
憶で行われる。このオペランドを更新タイプのオペラン
ドと称し、この2つのアクセスの組合せを更新参照と称
する。
【0120】記憶域の1バイトに含まれる個々のビット
を更新するSESサポート機構命令では、更新参照は、
他のCPUによる特定のアクセスが行われないようにイ
ンターロックされる。このような更新参照を、インター
ロック式更新参照と称する。インターロック式更新参照
に関連する取出し及び記憶アクセスは、必ずしも互いに
連続して発生するものではないが、すべての記憶アクセ
スと他のCPUによるインターロック式更新参照に関連
する取出し及び記憶アクセスは、インターロック式更新
参照の取出しアクセスと記憶アクセスの間に同じ場所で
発生しないようになっている。インターロック期間の間
に、その場所へのチャネルによるアクセスが発生しては
ならない。
【0121】上記要件の制限の範囲内で、1つの更新参
照に関連する取出し及び記憶アクセスは、前節で説明し
た取出しや記憶と同じ規則に従う。
【0122】単一アクセス参照: 取出し参照は、データ・フィールドの各バイトに対する
1回のアクセスで値が取り出されるようにみえる場合、
単一アクセス参照と言われる。記憶参照は、データ・フ
ィールドの各バイト記憶場所に対して1回の記憶アクセ
スだけが行われるようにみえる場合、単一アクセス参照
と言われる。更新参照は、その取出しアクセスと記憶ア
クセスが共に単一アクセスである場合に、単一アクセス
参照と言われる。
【0123】記憶域オペランド記憶参照が、単一アクセ
ス参照でない時は、あるバイト記憶場所に置かれる値
が、各記憶アクセスで必ずしも同一ではない。したがっ
て、単一のバイト記憶場所内の中間結果を、他のCPU
やチャネル・プログラムが観察することができる。
【0124】複数のアクセス参照に関連するアクセス
と、DAT関連アクセス例外用の記憶域変更・復元に関
連する記憶動作(「エンタープライズ・システム体系/
390解説書」で指定されるとおり)を除き、すべての
記憶域オペランド参照は、単一アクセス参照である。
【0125】CPU直列化: すべての割込みおよび特定の命令の実行が、CPU動作
の直列化を引き起こす。直列化動作は、他のCPUと他
のチャネル・プログラムによって観察される限り、その
CPUによる概念上前にあるすべての記憶域アクセス
を、概念上後続の記憶域アクセスが行われる前に完了さ
せることにある。
【0126】直列化機能は、直列化機能が実行されるC
PUの制御下にある記憶域アクセスの順序に影響を及ぼ
す。これは、他のCPUまたはチャネル・プログラムの
制御下にある記憶域アクセスの順序には、必ずしも影響
を与えない。
【0127】以下で、CPU命令について説明する。本
明細書で触れる条件コードは、当技術分野で周知の通
り、プログラム状況ワード(PSW)に返される条件コ
ードであることを理解されたい。
【0128】CLEAR MESSAGE PATH STATE(メッセージ経
路状態クリア): 選択されたメッセージ経路のメッセージ経路状態がクリ
アされると、非エラー状態保留中を示し、結果が条件コ
ード中で示される。
【0129】汎用レジスタ0は、選択されたメッセージ
経路のシステム間チャネル経路識別子を指定する。
【0130】条件コード0がセットされ、選択されたメ
ッセージ経路のメッセージ経路状態がクリアされると、
非エラー状態保留中を示す。
【0131】汎用レジスタ0が無効なシステム間チャネ
ルを指定している時は、条件コード3がセットされ、他
の処置は行われない。
【0132】動作が完了した時、選択されたメッセージ
経路の新しい状態が、TEST MESSAGEPATH STATE命令によ
ってそのメッセージ経路の状態を監視しているどのCP
Uにも見えるようになる。
【0133】直列化機能は、動作の開始前に実行され、
動作の完了後に再度実行される。すべての直列化でそう
であるが、この直列化も、このCPUにだけ適用され
る。他のCPUは、必ずしも直列化されるとは限らな
い。
【0134】 結果の条件コードを以下に示す 0 メッセージ経路状態がクリアされた 1 −− 2 −− 3 システム間チャネルが無効である
【0135】CLEAR MESSAGE PATH STATE(CMPS)
は、TEST MESSAGE PATH STATE(TMPS)命令に応答
して、あるメッセージ経路がエラー状態保留中であるこ
とが判明した結果、SESサポート機構資源を回復する
ために開始される処理の一環として使用するためのもの
である。回復すべき資源には、障害を起こしたメッセー
ジ経路自体と、その障害メッセージ経路を介してアクセ
スされるローカル・キャッシュ・ベクトル(LCV)ま
たはリスト通知ベクトル(LNV)が含まれる。
【0136】使用可能なメッセージ経路がないために相
互無効化コマンドまたはリスト通知コマンドが失われた
可能性がある場合に適切な回復処置は、ローカル・キャ
ッシュ・ベクトル(LCV)内のエントリによって表さ
れるキャッシュ・データ要素に対する修正を過剰指示
し、リスト通知ベクトル(LNV)内で表されるリスト
に関する非空状態へのリスト遷移を過剰指示することで
ある。
【0137】エラー状態保留中であると判明したメッセ
ージ経路に対する適切な回復処置には、CMPS命令の
実行によるエラー状態保留中条件のリセットと、必要な
らば、その後に、メッセージ経路識別(IMP)コマン
ドとメッセージ経路活動化(AMP)コマンドのシーケ
ンスによる経路の有効化および再活動化が含まれるはず
である。
【0138】CMPSは、IMPによる経路有効化およ
びAMPによる経路の活動化の前に、メッセージ経路に
対して発行しなければならない。
【0139】そうしないと、AMP実行の成功とCMP
S発行の間の時間ウィンドウ中で発生する、そのメッセ
ージ経路に関係するエラーが検出されなくなり、再度そ
の経路を活動化するための主導権が失われる可能性があ
る。障害を発生しているメッセージ経路に対する後続の
TMPSで、その経路が非エラー状態保留中であること
が判明するので、その時点でTEST VECTOR ENTRY(TV
E)命令を使用して、有効な状態のまま残されているロ
ーカル・キャッシュ・ベクトル・エントリをテストした
場合に、データ保全性が危険にさらされることになる。
【0140】IMPコマンドに応答してメッセージ経路
が活動状態であることが判明した後に、CMPS命令を
発行して、そのメッセージ経路をリセットした場合に
も、同じ危険が生じることになる。その経路は、IMP
コマンドの完了直後、CMPS命令の実行前に、障害を
発生する可能性がある。このエラーは、障害メッセージ
経路に対する後続のTMPS命令の実行によって検出さ
れないことになる。
【0141】該プログラムは、CMPS命令を発行する
前に、本明細書でローカル・キャッシュ・エントリ・マ
クロ交差テスト(TI)ビットと称する指示をセットす
る責任を負う。TMPS命令の発行と共にこのTIビッ
トをテストして、付加されたSES機構への使用可能な
経路が存在するかどうかを判定することができる。
【0142】これが必要になるのは、そのメッセージ経
路が物理的に動作不能または非活動状態であるかどうか
にかかわらず、CMPSが、エラー状態保留中条件をリ
セットするからである。上述のウィンドウをカバーする
ため、CMPSを、IMPコマンドとAMPコマンドの
シーケンスによる経路の有効化および活動化の前に発行
しなければならないので、該プログラムは、メッセージ
経路が現在使用不能であることを示す指示TIビットを
セットしなければならない。
【0143】メッセージ経路非活動化(DMP)コマン
ドの実行前に、前述の指示TIビットを同様にセットす
ることも、該プログラムの責任であることに留意された
い。というのは、その結果生じる、SES機構16内の
経路の非活動状態が、TMPS命令の実行によって監視
できないからである。
【0144】該プログラムによってセットされる前述の
指示TIビットは、このメッセージ経路を再活動化する
処理が首尾よく完了するまで、監視可能になっていなけ
ればならない。
【0145】プログラム指定の指示TIビットは、その
メッセージ経路を介してアクセスされるローカル・キャ
ッシュ・ベクトル(LCV)およびリスト通知ベクトル
(LNV)に対するメッセージ経路障害の影響が決定さ
れ、必要なすべてのベクトル回復処置が終わるまで、リ
セットしてはならない。
【0146】そうしないと、ローカル・キャッシュ・ベ
クトル(LCV)が1つまたは複数の相互無効化コマン
ドが失われた結果として残余データを含むことのないよ
うにTVE命令が実行された場合に、データ保全性が危
険にさらされる可能性がある。これが発生し得るのは、
TMPS命令が発行できてその経路が非エラー状態保留
中であることが判明し、ローカル・キャッシュ・ベクト
ルをクリアする前にプログラム指定の指示がリセットさ
れた場合である。
【0147】SES機構16への障害メッセージ経路の
回復処理全体を通じて、その付加SES機構への別のメ
ッセージ経路が使用可能であったことが判っているので
ない限り、回復されたメッセージ経路を介してアクセス
されるすべてのローカル・ベクトルをまずクリアするこ
となしに、その経路に関して該プログラムによってセッ
トされた指示をリセットしてはならない。
【0148】これは、当初、SES機構16への障害メ
ッセージ経路の回復を開始する前に活動状態であること
が判っていたメッセージ経路の状態を、すべての障害メ
ッセージ経路の回復を完了した後に再検査することによ
って達成される。問題のメッセージ経路がまだ活動状態
である場合には、障害経路の回復中に相互無効化コマン
ドやリスト通知コマンドが失われていないのである。し
たがって、ベクトルをクリアする必要はない。
【0149】ローカル・キャッシュ・ベクトル(LC
V)またはリスト通知ベクトル(LNV)の保全性を信
頼するには、該プログラムは、相互無効化コマンドまた
はリスト通知コマンドを受け取るのに使用できる経路を
1つ見つければよい。それが可能なのは、コマンドが目
標CPCによって処理されるまで、あるいはコマンド実
行の時点で活動状態であった目標CPCへのすべてのメ
ッセージ経路に関してエラー状態保留中条件を指示さ
せ、監視可能にする処置が行われるまで、SES機構1
6は、相互無効化コマンドまたはリスト通知コマンドが
首尾よく完了したと見なせないからである。
【0150】当初は活動状態であることが判明したメッ
セージ経路が、SES機構16に接続する経路に関する
経路回復の完了後にまだ使用可能であると確認できなか
った場合、データ保全性が危険にさらされる可能性があ
る。使用可能なメッセージ経路が、TMPSによるテス
トの直後に障害を発生して、SES機構への他の経路の
ために経路回復処置が行われる前に、相互無効化コマン
ドまたはリスト通知コマンドが失われる可能性がある。
【0151】以下の筋書きは、この点を実証するもので
ある。メッセージ経路Xが障害を発生し、物理的に修復
され、現在はSESサポート機構側でエラー状態保留中
であり、SES機構側で非活動状態であると仮定する。
メッセージ経路Yが使用可能である。
【0152】CP1が、経路XにTMPSを発行し、エ
ラー状態保留中状態であることを知る。CP1が、経路
YにTMPSを発行し、経路Yが非エラー状態保留中で
あることを発見する。相互無効化(XI)コマンドまた
はリスト通知コマンドの受取りに経路Yが使用できるの
で、CP1は、ローカル・ベクトルの回復が不要である
と判断する。この時、経路Yに障害が発生する。SES
機構16が、CPCにXIコマンドを配布しようと試み
るが、活動状態の経路を見つけられない。CP1が、経
路Xに関するプログラム指定のエラー指示をセットす
る。CP1が、経路XにCMPSを発行し、エラー状態
保留中をリセットする。CP1が、IMPとAMPを発
行して、SES機構16側で経路Xを活動化する。この
時、CP1は、回復が完了したと思っているので、経路
Xに関するプログラム指定のエラー指示をリセットす
る。この時、CP1は、ローカル・キャッシュ・ベクト
ルのエントリをテストしようとするプログラムを実行中
である。CP1が、経路XにTMPSを発行し、経路X
が非エラー状態保留中であることを発見する。CP1
が、経路Xに関してプログラム指定のエラー指示がセッ
トされていないことに気付く。CP1が、経路Xを介し
てアクセスされるローカル・ベクトルにTVEを発行す
る。
【0153】この時点で、データ保全性が危険にさらさ
れる。というのは、経路Xの回復が終了した時に経路Y
が使用可能であったので、CP1は、その時点でローカ
ル・キャッシュ・ベクトル(LCV)をクリアしなかっ
たからである。経路Yが障害を発生した時に失われたX
Iは、経路Xが回復される前に検出されなかった。CP
1が経路Xの回復後に経路Yを再検査していたなら、経
路Yの障害に気付き、XIコマンド喪失の可能性を、付
加SES機構16に関連するローカル・ベクトルの回復
を実行する原因として扱っていたはずである。
【0154】SESサポート機構33の資源に関する回
復の周囲で直列化を行って、このような影響を受けるす
べての資源の回復が首尾よく完了する前に、並列の回復
処理がメッセージ経路のエラー状態保留中またはプログ
ラム指定のエラー指示をリセットしないようにさせなけ
ればならない。そうしないと、データ保全性が危うくな
る可能性がある。
【0155】以下の筋書きは、この点を実証するもので
ある。メッセージ経路Xが障害を発生し、物理的に修復
され、現在はSESサポート機構33側でエラー状態保
留中であり、SES機構16側で非活動状態であると仮
定する。
【0156】CP1が、経路XにTMPSを発行し、エ
ラー状態保留中状態であることを知る。CP1が、経路
Xに関してプログラム指定のエラー指示をセットする。
CP1が、経路XにCMPSを発行し、エラー状態保留
中状態をリセットする。CP1が、IMPとAMPを発
行して、SES機構側で経路Xを活動化する。この時、
経路Xは、反復的エラーを生じ、エラー状態保留中が再
度示される。CP2が、経路XにTMPSを発行し、エ
ラー状態保留中状態であることを知る。CP2が、経路
Xに関してプログラム指定のエラー指示をセットする。
CP2が、経路XにCMPSを発行し、エラー状態保留
中状態をリセットする。この時、CP1は回復を完了し
ているので、経路Xに関するプログラム指定のエラー指
示をリセットする。この時、CP1は、ローカル・キャ
ッシュ・ベクトルのエントリをテストしようとするプロ
グラムを実行中である。CP1が、経路XにTMPSを
発行し、経路Xが非エラー状態保留中であることを発見
する。CP1が、経路Xに関してプログラム指定のエラ
ー指示がセットされていないことに気付く。CP1が、
経路Xを介してアクセスされるローカル・ベクトルにT
VEを発行する。
【0157】この時点で、データ保全性が危険にさらさ
れる。というのは、経路Xの回復がCP2上でまだ進行
中であり、経路Xがこの時、CP2によって首尾よく活
動化されるまで使用不能であることに、CP1が気付か
ないからである。
【0158】SESサポート機構の資源の回復は、現在
その回復に関係しているメッセージ経路を非活動化する
ために、プログラムによって開始されるどの処理に関し
ても直列化しなければならない。
【0159】前に述べたように、該プログラムは、DM
Pコマンドの実行前に、TMPS命令の実行と共にテス
トすることのできるTIビット指示をセットする責任を
負う。というのは、TMPS命令の実行によって、SE
S機構16内の経路の、その結果生じる非活動状態に気
付くことができないからである。
【0160】SESサポート機構の回復とDMP処理の
間に必要な直列化を実施しないと、データ保全性が危う
くなる可能性がある。
【0161】以下の筋書きは、この点を実証するもので
ある。メッセージ経路Xが障害を発生し、物理的に修復
され、現在はSESサポート機構33側でエラー状態保
留中であり、SES機構16側で非活動状態であると仮
定する。さらに、経路Xが、CPCを付加SES機構1
6に接続する唯一の経路であると仮定する。
【0162】CP1が、経路XにTMPSを発行し、エ
ラー状態保留中状態であることを知る。CP1が、経路
Xに関するプログラム指定のエラー指示をセットする。
CP1が、経路XにCMPSを発行し、エラー状態保留
中状態をリセットする。CP1が、IMPとAMPを発
行して、SES機構16側で経路Xを活動化する。CP
1が、DEFINE VECTOR(DV)を発行して、付加SES
機構16に関連するローカル・キャッシュ・ベクトル
(LCV)とリスト通知ベクトル(LNV)をすべてク
リアするループに入る。CP2が、SET VECTOR ENTRY命
令を発行して、CP1によって既にクリアされたベクト
ル内のローカル・キャッシュ・ベクトル・エントリ
(Z)をセットする。CP2が、CP1によって活動化
されたばかりの経路Xを介して、SES機構16にREAD
(読取り)コマンドを発行することに成功する。CP3
が、経路Xに関するプログラム指定のエラー指示をセッ
トする。CP3が、経路Xに関するDMPコマンドを発
行し、SES機構16内で経路Xを非活動状態にマーク
する。SES機構16が、ローカル・キャッシュ・ベク
トル・エントリ(Z)を目標とするXIコマンドをCP
Cに配布しようと試みるが、活動状態の経路を見つけら
れない。CP1が、DVループによる回復を完了し、経
路Xに関するプログラム指定のエラー指示をリセットす
る。この時、CP1は、ローカル・キャッシュ・ベクト
ルのエントリをテストしようとするプログラムを実行中
である。CP1が、経路XにTMPSを発行し、経路X
が非エラー状態保留中であることを発見する。CP1
が、経路Xに関してプログラム指定のエラー指示がセッ
トされていないことに気付く。CP1が、ローカル・キ
ャッシュ・ベクトル・エントリ(Z)にTVEを発行す
る。
【0163】この時点で、データ保全性が危険にさらさ
れている。というのは、SES機構16に対するDMP
コマンドの実行前にCP3によってセットされるプログ
ラム指定のTIビット指示が、経路XおよびCP1上の
関連するローカル・ベクトル資源の回復と並行して進行
できるので、付加SES機構16から相互無効化コマン
ドを受け取るのに経路Xを使用できないことにCP1が
気付かないからである。
【0164】DEFINE VECTOR(DV)(ベクトル定
義): エントリ0ないしN−1からなる指定されたサイズ
(N)のビット・ベクトルを、CPC上で確立し、解放
し、0にクリアし、拡張または縮小し、結果を条件コー
ド中で示す。
【0165】DEFINE VECTORは、R1フィールドとR2
フィールドを含む。R1フィールドは、汎用レジスタの
奇偶対のうち偶数番号のレジスタを指定する。R2フィ
ールドは、単一の汎用レジスタを指定する。
【0166】汎用レジスタ1は、DEFINE VECTORの動作
がどう進行するかと、汎用レジスタの内容をどう解釈す
るかを示す符号なし2進整数を格納する。指定された汎
用レジスタは、下記のうちの1つまたは複数のものを格
納する。
【0167】前のDEFINE VECTOR命令の実行により現在
割り当てられているローカル・キャッシュ・トークン
(LCT)前のDEFINE VECTOR命令の実行により現在割
り当てられているリスト通知トークン(LNT)ビット
・ベクトル・エントリ数(NBVE)を示す符号なし2
進整数。NBVEは0になることはできない。
【0168】汎用レジスタ1の内容に応じて、次の5つ
の動作のうちの1つが、DEFINE VECTORによって実行さ
れる。
【0169】 実行される動作は以下の通りである。 ローカル・キャッシュ・ベクトル定義 リスト通知ベクトル定義 ベクトル解放 ベクトル・クリア ベクトル・サイズ変更
【0170】ローカル・キャッシュ・トークン(LC
T)とリスト通知トークン(LNT)は、クリア・リセ
ット動作間で一意に割り当てられる。トークンがまず割
り当てられた後に解放された時は、クリア・リセットが
発生するまで、そのトークンは再利用できない。すべて
0のビットからなるトークンは、無効である。解釈実行
モードでは、ローカル・キャッシュ・トークン(LC
T)とリスト通知トークン(LNT)が、DEFINE VECTO
R命令を発行するイメージに関して一意に割り当てられ
る。
【0171】直列化機能が、この動作の開始前に実行さ
れ、動作完了後に再度実行される。すべての直列化でそ
うであるが、この直列化は、このCPUにだけ適用され
る。他のCPUは、必ずしも直列化されるとは限らな
い。
【0172】1つまたは複数のビット・ベクトル・エン
トリを再利用のため使用可能にするDVは、その構成に
含まれる他のすべてのCPUとI/Sチャネル18が、
解放しようとするベクトル・エントリへのアクセスを完
了しない限り、実行が完了しない。
【0173】DEFINE VECTORによって実行される動作
は、以下の通りである。
【0174】ローカル・キャッシュ・ベクトル定義(D
LCV): 汎用レジスタ1の値が、ローカル・キャッシュ・ベクト
ル定義機能を示す場合、レジスタR2に、定義しようと
するローカル・キャッシュ・ビット・ベクトルのエント
リ数が格納される。汎用レジスタR1およびR1+1の
内容は、無視される。
【0175】ローカル・キャッシュ・トークン(LC
T)は、CPCに対して定義しようとするローカル・キ
ャッシュ・ビット・ベクトルを識別するために割り当て
られる。LCTは、R1フィールドによって指定された
レジスタ対の内容を置き換える。供給されたローカル・
キャッシュ・トークン(LCT)は、クリア・リセット
機能が実行された後でない限り、再割当てできない。
【0176】要求されたローカル・キャッシュ・ビット
・ベクトル・エントリ毎に1つのビットを含む、1つの
ビット・ベクトルが確立される。このビット・ベクトル
の左端ビットは、ビット0として識別される。右端ビッ
トは、ローカル・キャッシュ・ビット・ベクトルのエン
トリ数より1つ少ない値によって指定される。ビット・
ベクトルが確立される時、ローカル・キャッシュ・ビッ
ト・ベクトルのエントリは、すべて0である。LCT
は、ローカル・キャッシュ・ビット・ベクトルを識別す
る。
【0177】リスト通知ベクトル定義(DLNV): 汎用レジスタ1の値が、リスト通知ベクトル定義機能を
示す場合、レジスタR2に、定義しようとするリスト通
知ビット・ベクトルのエントリ数が格納される。汎用レ
ジスタR1およびR1+1の内容は、無視される。
【0178】リスト通知トークン(LNT)は、CPC
に対して定義しようとするリスト通知ビット・ベクトル
を識別するために割り当てられる。このLNTは、R1
フィールドによって指定されたレジスタ対の内容を置き
換える。供給されたリスト通知トークン(LNT)は、
クリア・リセット機能が実行された後でない限り、再割
当てできない。
【0179】要求されたリスト通知ビット・ベクトル・
エントリ毎に1つのビットを含む、1つのビット・ベク
トルが確立される。このビット・ベクトルの左端ビット
は、ビット0として識別される。右端ビットは、リスト
通知ビット・ベクトルのエントリ数より1つ少ない値に
よって指定される。ビット・ベクトルが確立される時、
リスト通知ビット・ベクトルのエントリは、すべて0で
ある。
【0180】リスト通知ベクトル・ローカル・サマリ
(LNVLS)が確立され、0に初期設定される。リス
ト通知ベクトル(LNV)の、リスト通知ベクトル・ロ
ーカル・サマリ(LNVLS)およびリスト通知ベクト
ル・グローバル・サマリ(LNVGS)に対する関係が
確立される。このLNTは、リスト通知ビット・ベクト
ルおよび関連するリスト通知ベクトル・ローカル・サマ
リ(LNVLS)を識別する。
【0181】ベクトル解放(RV): 汎用レジスタ1の値が、ベクトル解放機能を示す場合、
レジスタ対R1に、解放しようとするLCTまたはLN
Tが格納される。汎用レジスタR2の内容は無視され
る。
【0182】ローカル・キャッシュ・トークン(LC
T)またはリスト通知トークン(LNT)が解放され、
そのトークン用に存在しているビット・ベクトルの諸ビ
ットが、再利用のために使用可能にされる。このビット
・ベクトルは、もはや存在しないと言われ、CPCに対
して未定義となる。このビット・ベクトルの諸ビット
は、すべてのビットが0にクリアされない限り、再利用
のために割り当てられない。
【0183】ベクトル・クリア(CV): 汎用レジスタ1の値が、ベクトル・クリア機能を示す場
合、レジスタ対R1に、0にクリアしようとするビット
・ベクトルを指定するLCTまたはLNTが格納され
る。汎用レジスタR2の内容は無視される。
【0184】指定されたビット・ベクトル内のすべての
エントリが、0にクリアされる。指定されたビット・ベ
クトルがリスト通知ビット・ベクトルである場合、その
ビット・ベクトル・エントリだけがクリアされる。関連
するリスト通知ベクトル・ローカル・サマリLNVLS
は、未変更のままになる。
【0185】ベクトル・サイズ変更(MVS): 汎用レジスタ1の値が、ベクトル・サイズ変更機能を示
す場合、レジスタ対R1に、変更しようとするビット・
ベクトルを指定するLCTまたはLNTが格納される。
【0186】R2フィールドによって指定される汎用レ
ジスタには、ビット・ベクトル・エントリ数(NBV
E)を示す符号なし2進整数が格納される。NBVEは
0になることはできず、またNBVEは、CPCまたは
CPCイメージによってサポートされる最大ビット・ベ
クトル・エントリ数を超えない。
【0187】LCTまたはLNTによって識別されるビ
ット・ベクトルに関して新しいビット・ベクトル・エン
トリ数が確立される。このビット・ベクトルは、CPC
に対して再定義される。LCTトークンまたはLNTト
ークンは、同じままである。このLCTまたはLNTを
割り当てた前のDEFINE VECTOR命令によって確立された
ビット・ベクトルが、新しいビット・ベクトル・エント
リ数を反映するように、その右端ビット位置から拡張ま
たは縮小される。
【0188】ビット・ベクトルを拡張する場合、そのビ
ット・ベクトルの拡張前に存在した部分に反映されるビ
ット・ベクトル・エントリの状態は、変更されないまま
となり、そのビット・ベクトルの新規に確立された部分
に反映されるビット・ベクトル・エントリは、0にセッ
トされる。
【0189】ビット・ベクトルを縮小する場合、そのビ
ット・ベクトルの残りの部分に反映されるビット・ベク
トル・エントリの状態は、変更されず、そのビット・ベ
クトルのもはや必要でない部分は、各ビットを0にクリ
アした後に再利用することができる。
【0190】条件コード0がセットされるのは、ベクト
ルの定義、解放、クリアまたは変更に成功した場合であ
る。
【0191】条件コード1がセットされると、要求され
たビット・ベクトル・エントリ数を割り当てできなかっ
たこと、および割り当てられたエントリ数が、実際に使
用可能なエントリ数まで減らされたことを示す。汎用レ
ジスタR2の内容が、実際に割り当てられたエントリ数
を示すように変更される。条件コード1がセットされる
のは、ベクトル定義動作またはベクトル・サイズ変更動
作の場合だけである。
【0192】条件コード2がセットされるのは、ビット
・ベクトルの確立または拡張のための空間が得られない
場合であり、他の処置は行われない。これには、追加の
ビット・ベクトル・エントリのために使用可能な空間が
ない場合と、使用可能な追加のトークンがない場合が含
まれる。
【0193】条件コード2がセットされるのは、ベクト
ル定義動作またはベクトル・サイズ変更動作の場合だけ
である。
【0194】条件コード3がセットされるのは、入力と
して供給されるローカル・キャッシュ・トークンまたは
リスト通知トークンが割り当てられていない場合であ
る、他の処置は行われない。条件コード3がセットされ
るのは、解放動作、クリア動作または変更動作の場合だ
けである。条件コード3は、条件コード2に優先してセ
ットされる。
【0195】結果として生じる条件コードは以下の通り
である。 0 ビット・ベクトルが、定義、解放、クリアまたは変
更された 1 割り当てられたビット・ベクトル・エントリ数が、
要求された数より少ない 2 ビット・ベクトルの空間またはトークンが得られな
い 3 入力のLCTまたはLNTが割り当てられていない
【0196】ローカル・キャッシュ・トークン(LC
T)およびリスト通知トークン(LNT)の妥当性また
はローカル・キャッシュ・エントリ(LCEN)および
リスト通知エントリ(LNEN)の妥当性を検証するの
に使用されるビット・ベクトル空間制御が更新される
と、1つまたは複数のビット・ベクトルが再利用のため
使用可能になるが、このような更新は必ず、その構成に
含まれる別のCPUまたはシステム間チャネルが、再割
り当てされるビット・ベクトル・エントリを同時にテス
トまたは更新する可能性がないような形で実行されなけ
ればならない。
【0197】ビット・ベクトル・エントリ用のトークン
と空間は、イメージ毎に独立に割り当てられ管理され
る。これらの資源が、複数のイメージ間で共用されるこ
とはない。
【0198】メッセージ経路状態を問い合わせる責任を
負う処理が周期的に実行されて、メッセージ経路障害を
検出し、ローカル・キャッシュ・ベクトル(LCV)と
リスト通知ベクトル(LNV)に対する回復処置を開始
する。使用可能なメッセージ経路がないために相互無効
化コマンドまたはリスト通知コマンドが失われている可
能性がある場合に適切な回復処置は、ローカル・キャッ
シュ・ベクトル内で表されるローカル・キャッシュ・デ
ータに対する修正を過剰指示し、リスト通知ベクトル内
で表されるリストに関する非空状態へのリスト遷移を過
剰指示することである。過剰指示は、DEFINE VECTOR命
令によってすべてのベクトル・エントリを0にクリアす
ることによって実施される。
【0199】リスト通知ベクトルでは、回復処置には、
クリアされるベクトルに関連するリスト通知ベクトル・
ローカル・サマリと、リスト通知ベクトル・グローバル
・サマリの両方を、SET VECTOR SUMMARY(SVS)命令
によってこの順序で活動状態にすることが必要である。
これは、非空状態へのリスト遷移を処理する責任を負う
プログラムを駆動する主導権を与えるために行われる。
指定された順序でこれらの処置を行えないと、該プログ
ラムが永続的な待機状態に入ってしまう可能性がある。
【0200】DV命令によってあるビット・ベクトル・
エントリが再割当てされた後に、リスト通知コマンドま
たは相互無効化コマンドがそのエントリを更新する可能
性をなくすため、DV命令の実行は、処理されるビット
・ベクトルのトークン・テーブル・エントリ内に常駐す
るロックを使って、リスト通知コマンドおよび相互無効
化コマンドの実行と直列化される。
【0201】ある実施態様では、ビット・ベクトルの諸
ビットが再利用のため使用可能にされる時、あるいはそ
のビット・ベクトルが確立される時、その諸ビットをク
リアすることができる。
【0202】DEFINE VECTOR命令の実行は、たとえば、
多数のエントリを含むビット・ベクトルを再利用のため
使用可能にするためにそのビット・ベクトルのビットを
クリアする時には、かなりの時間にわたることがある。
MP性能に対する影響を軽減するため、CPUは、DEFI
NE VECTOR命令の実行中に、他のCPUから受け取った
ページ・テーブル項目無効化(IPTE)要求または拡
張記憶キー設定(SSKW)要求に応答する。
【0203】DV命令は、CPU静止機能を実行して、
他のすべてのCPUが、DV実行の結果として解放され
るベクトル・エントリに対するアクセスを必ず完了する
ようにしなければならない。この手法を用いると、頻繁
に実行される命令(TVE、TVS)で明示的に直列化
を得る必要がなくなる。CPU静止機能の1例は、SS
KE命令のうち前述の「解説書」(POP)中で定義さ
れる部分である。
【0204】SET VECTOR ENTRY(SVE)(ベクトル・
エントリ・セット): 選択されたビット・ベクトル・エントリの値を、1にセ
ットするかあるいは0にリセットし、結果を条件コード
で示す。リスト通知ベクトル・ローカル・サマリ(LN
VLS)やリスト通知ベクトル・グローバル・サマリ
(LNVGS)は、更新されない。
【0205】R1フィールドは、汎用レジスタの奇偶対
のうち偶数番号のレジスタを指定する。R2フィールド
は、単一の汎用レジスタを指定する。
【0206】汎用レジスタ1には、SET VECTOR ENTRYの
動作がどう進行するかを示す符号なし2進整数が格納さ
れる。汎用レジスタ1の内容に応じて、SVEによって
次の2つの動作のうちのどちらか一方が実行される。
【0207】実行される動作は以下の通りである。 ベクトル・エントリを1にセット(SVE) ベクトル・エントリを0にリセット(RVE)
【0208】R1フィールドによって指定される汎用レ
ジスタ対には、前のDEFINE VECTOR命令の実行によって
現在割り当てられているローカル・キャッシュ・トーク
ン(LCT)またはリスト通知トークン(LNT)が格
納される。LCTは、ローカル・キャッシュ・ビット・
ベクトルを識別し、LNTは、リスト通知ビット・ベク
トルを識別する。
【0209】R2フィールドによって指定される汎用レ
ジスタには、ローカル・キャッシュ・ビット・ベクトル
の場合はローカル・キャッシュ・エントリ番号(LCE
N)と称し、リスト通知ビット・ベクトルの場合はリス
ト通知エントリ番号(LNEN)と称する、符号なし2
進整数が格納される。この符号なし2進整数は、ビット
・ベクトル内の1エントリを選択する。そのビット・ベ
クトルの最初のエントリは、値0のLCENまたはLN
ENによって選択される。そのビット・ベクトルの最後
のエントリは、このビット・ベクトルに関連するビット
・ベクトル・エントリ数より1つ小さい値のLCENま
たはLNENによって選択される。このビット・ベクト
ルのエントリ数は、前のDEFINE VECTOR命令によって確
立された値である。
【0210】LCENまたはLNENによって選択され
たビット・ベクトル・エントリが、LCTまたはLNT
によって指定されるビット・ベクトル内で1にセットさ
れあるいは0にリセットされている場合には、条件コー
ド0がセットされる。
【0211】LCENまたはLNENが、このビット・
ベクトルに関連するビット・ベクトルのエントリ数以上
である場合には、条件コード2がセットされ、他の処置
は行われない。
【0212】指定されたLCTまたはLNTが割当て済
み状態でない場合には、条件コード3がセットされ、他
の処置は行われない。
【0213】結果として生じる条件コードは以下の通り
である。 0 ビット・ベクトル・エントリが、1にセットされた
かあるいは0にリセットされた 1 −− 2 LCENまたはLNENが大きすぎる 3 入力のLCTまたはLNTが割り当てられていない
【0214】ローカル・キャッシュ・ベクトルの使用に
よって提供される高性能キャッシュ相互問合せ機能は、
SESキャッシュ相互無効化処理と、特定のSESキャ
ッシュ・コマンドの実行の前後にプログラミングするこ
とによるローカル・キャッシュ・ベクトルの適切な操作
とによって達成される。
【0215】SET VECTOR SUMMARY(SVS)(ベクトル
・サマリ・セット): 選択されたリスト通知ベクトル・ローカル・サマリ(L
NVLS)またはリスト通知ベクトル・グローバル・サ
マリ(LNVGS)の値を、1にセットするかあるいは
0にリセットし、結果を条件コードで示す。リスト通知
ベクトル・ローカル・サマリ(LNVLS)がセットま
たはリセットされても、リスト通知ベクトル・グローバ
ル・サマリ(LNVGS)には影響がない。
【0216】R1フィールドは、汎用レジスタの奇偶対
のうち偶数番号のレジスタを指定する。
【0217】R1フィールドが、汎用レジスタ0以外の
汎用レジスタを指定する時は、R1フィールドによって
指定された汎用レジスタ対に、前のDEFINE VECTOR命令
の実行によって現在割り当てられているリスト通知トー
クン(LNT)が格納される。このLNTは、選択され
たリスト通知ベクトル・ローカル・サマリLNVLSを
識別する。
【0218】R1フィールドが、汎用レジスタ0を指定
する時は、リスト通知ベクトル・グローバル・サマリ
(LNVGS)が選択される。
【0219】汎用レジスタ1には、SET VECTOR SUMMARY
命令の動作がどう進行するかを示す符号なし2進整数が
格納される。汎用レジスタ1の内容に応じて、SVSに
よって次の2つの動作のうちのどちらか一方が実行され
る。
【0220】実行される動作は以下の通りである。 ベクトル・サマリを1にセット ベクトル・サマリを0にリセット
【0221】R1が汎用レジスタ0を指定する時は、条
件コード0がセットされ、リスト通知ベクトル・グロー
バル・サマリ(LNVGS)が、セットまたはリセット
状態になる。R1が0以外の偶数の汎用レジスタを指定
する時は、条件コード0がセットされ、LNTによって
指定されるリスト通知ベクトル・ローカル・サマリ(L
NVLS)が、セットまたはリセット状態になる。
【0222】直列化機能が、この動作の開始前に実行さ
れ、動作の完了後に再度実行される。すべての直列化で
そうであるが、この直列化は、このCPUにだけ適用さ
れる。他のCPUは、必ずしも直列化されるとは限らな
い。
【0223】指定されたLNTが割当て済み状態ではな
い場合、条件コード3がセットされ、他の処置は行われ
ない。
【0224】結果として生じる条件コードは以下の通り
である。 0 選択されたベクトル・サマリが、セットまたはリセ
ットされた 1 −− 2 −− 3 入力のLNTが割り当てられていない
【0225】CPC上で作成された各リスト通知ベクト
ル(LNV)毎に、1つのリスト通知ベクトル・ローカ
ル・サマリ(LNVLS)が存在する。リスト監視登録
コマンドのプログラム指定のオプションとして、関連リ
スト通知ベクトルが空から非空へのリスト遷移を反映す
ることのないように何らかのリスト通知コマンドが処理
される時、リスト通知ベクトル・ローカル・サマリ(L
NVLS)がセットされる。リスト通知ベクトル・ロー
カル・サマリ(LNVLS)は、非空から空へのリスト
状態遷移の結果として更新されることはない。リスト通
知ベクトル・ローカル・サマリ(LNVLS)は、TEST
VECTOR SUMMARY(TVS)命令によってテストされ、S
ET VECTOR SUMMARY(SVS)命令によってセットまた
はリセットされる。
【0226】CPC上には、CPCイメージ毎に1つの
リスト通知ベクトル・グローバル・サマリが存在する。
リスト通知ベクトル・グローバル・サマリ(LNVG
S)がセットされるのは、そのCPCイメージに関連す
るリスト通知ベクトル・ローカル・サマリ(LNVL
S)が、空から非空へのSESリスト状態遷移を反映す
るためにセットされる時である。リスト通知ベクトル・
グローバル・サマリ(LNVGS)は、非空から空への
リスト状態遷移の結果として更新されることはない。リ
スト通知ベクトル・グローバル・サマリ(LNVGS)
は、TVS命令によってテストされ、SVS命令によっ
てセットまたはリセットされる。
【0227】オペレーティング・システム制御プログラ
ムは、リスト通知ベクトル・グローバル・サマリ(LN
VGS)とリスト通知ベクトル・ローカル・サマリ(L
NVLS)を利用して、登録済みのアプリケーション・
プログラムのための効率的なシステム・ポーリング機能
を提供する。この環境では、まずTVSを使用して、リ
スト通知ベクトル・グローバル・サマリ(LNVGS)
の状態をテストする。このLNVGSが活動状態である
場合、SVS命令によってこれをリセットし、割り当て
られたリスト通知ベクトル(LNV)のそれぞれのリス
ト通知ベクトル・ローカル・サマリ(LNVLS)に対
してTVSを実行する。TVSによって識別される活動
状態のリスト通知ベクトル・ローカル・サマリ(LNV
LS)のそれぞれについて、SVS命令を使用して、そ
のリスト通知ベクトル・ローカル・サマリ(LNVL
S)をリセットする。リスト通知ベクトル(LNV)の
個々のエントリに対してTVEを実行して、空から非空
へのリスト遷移を識別する。
【0228】メッセージ経路状態を問い合わせる責任を
負う処理を周期的に実行して、メッセージ経路障害を検
出し、リスト通知ベクトル(LNV)に対する回復処置
を開始する。使用可能なメッセージ経路がないためにリ
スト通知コマンドが失われた可能性がある場合に適切な
回復処置は、リスト通知ベクトル内で表されるリストに
関する非空状態へのリスト遷移を過剰指示することであ
る。過剰指示は、DEFINE VECTOR命令によってすべての
ベクトル・エントリを0にクリアすることによって行わ
れる。
【0229】リスト通知ベクトル(LNV)の場合、回
復処置には、クリアされるベクトルに関連するリスト通
知ベクトル・ローカル・サマリ(LNVLS)と、リス
ト通知ベクトル・グローバル・サマリ(LNVGS)の
両方を、SET VECTOR SUMMARY(SVS)命令によって、
この順序で活動状態にすることが必要である。これは、
非空状態へのリスト遷移を処理する責任を負うプログラ
ムを駆動する主導権を与えるために行われる。指定され
た順序でこれらの処置を行えないと、該プログラムが永
続的な待機状態に入ってしまう可能性がある。
【0230】TEST MESSAGE PATH STATE(TMPS)
(メッセージ経路状態テスト):選択されたメッセージ
経路のメッセージ経路状態をテストし、条件コードで示
す。
【0231】汎用レジスタ0は、選択されたメッセージ
経路のシステム間チャネル経路識別子を指定する。
【0232】選択されたメッセージ経路の指定されたメ
ッセージ経路状態が、非エラー状態保留中である場合
は、条件コード0がセットされる。
【0233】選択されたメッセージ経路の指定されたメ
ッセージ経路状態が、エラー状態保留中である場合は、
条件コード1がセットされる。
【0234】汎用レジスタ0が無効なシステム間チャネ
ルを指定している時には、条件コード3がセットされ
る。
【0235】結果として生じる条件コードは以下の通り
である。 0 非エラー状態保留中 1 エラー状態保留中 2 −− 3 システム間チャネルが無効である
【0236】TEST MESSAGE PATH STATEは、直列化処置
またはチェックポイント同期化処置を実行しない。これ
らの処置のいずれかを実行する場合、システム性能が低
下することになる。
【0237】CPCと付加SES機構の間のメッセージ
通信のために使用可能なメッセージ経路が存在すること
を示すためには、TMPS命令の実行だけでは不十分で
ある。
【0238】メッセージ経路は、CPC10によって開
始されたメッセージ経路非活動化(DMP)コマンドの
実行時に、SES機構16側で非活動化される可能性が
ある。この処置は、CPC10内のSESサポート機構
33に登録されるメッセージ経路状態には反映されな
い。該プログラムは、該プログラムによるDMPコマン
ドの発行から直接生じたSES機構16内のメッセージ
経路の非活動状態が、TMPS命令の実行に関して理解
されるようにする責任を負う。
【0239】さらに、メッセージ経路の回復の成功およ
びメッセージ経路活動化(AMP)コマンドによる再活
動化の前に、その経路に対してCLEAR MESSAGE PATH STA
TE(CMPS)命令を実行すると、エラー状態保留中表
示がリセットされる。該プログラムは、経路回復の完了
まで使用不能なメッセージ経路の、エラー状態保留中状
態のリセットが、そのメッセージ経路に対するTMPS
命令の実行に関して理解されるようにする責任を負う。
【0240】SES機構16に経路群のメッセージ経路
状態を問い合わせる責任を負う処理が周期的に実行され
て、すべての障害メッセージ経路と、障害メッセージ経
路を介してSES機構16によってアクセスされるロー
カル・キャッシュ・ベクトル(LCV)およびリスト通
知ベクトル(LNV)とに関するSESサポート機構の
回復処置を開始させる。この開始は、ローカル・キャッ
シュ・ベクトル問合せの、経路選択の責任を負う部分に
関連する性能オーバヘッドを最小にするのに十分な応答
性を有する。最初に選択された経路がエラー状態保留中
であると判明し、代替経路にTMPSを発行する必要が
ある場合には、このような処理は、引き延ばされる。
【0241】TMPS命令によって監視されるメッセー
ジ経路のエラー状態保留中状態は、必ずしも物理リンク
の現在の動作状態を反映しているのではなく、以前にエ
ラーが発生したことの残存指示であるので、メッセージ
経路がこの状態であると判明した時は、即座に経路回復
を試みるのが適切である。
【0242】エラー状態保留中であると判明したメッセ
ージ経路に対する適切な回復処置には、CMPS命令の
実行によるエラー状態保留中条件のリセットと、必要な
らばその後に、メッセージ経路識別(IMP)コマンド
とメッセージ経路活動化(AMP)コマンドのシーケン
スによる経路の有効化および再活動化が必要である。
【0243】使用可能なメッセージ経路がないために相
互無効化コマンドまたはリスト通知コマンドが失われた
可能性がある場合に適切な回復処置は、ローカル・キャ
ッシュ・ベクトル(LCV)内のエントリによって表さ
れるキャッシュ・データ要素に対する修正を過剰指示
し、リスト通知ベクトル(LNV)内で表されるリスト
に関する非空状態へのリスト遷移を過剰指示することで
ある。この処置を行うと、障害を発生しているメッセー
ジ経路が、その後修復され活動化された時に、ローカル
・ベクトルに対する通常の処理を再開できるようにな
る。
【0244】システム間チャネル(ISC)経路が障害
を発生する時、またはチャネル経路上で相互無効化コマ
ンドまたはリスト通知コマンドが失われた可能性がある
ことが検出される時、すなわち、システム間リンクが、
動作可能リンクによって構成された状態を抜ける時に
は、そのチャネル経路に対してエラー状態保留中指示が
セットされる。
【0245】チャネル経路のエラー状態保留中指示は、
TMPS実行の一環としてテストできる物理ハードウェ
ア・ラッチによって提供することもでき、また、TMP
S命令による直接要求に応答してシステム間チャネルに
よって供給される状況として返すこともできることを理
解されたい。
【0246】TEST VECTOR ENTRY(TVE)(ベクトル
・エントリ・テスト): 選択されたビット・ベクトル・エントリの状態をテスト
し、結果を条件コードで示す。
【0247】R1フィールドは、汎用レジスタの奇偶対
のうち偶数番号のレジスタを指定する。R2フィールド
は、単一の汎用レジスタを指定する。
【0248】R1フィールドによって指定される汎用レ
ジスタ対には、前のDEFINE VECTOR命令の実行によって
現在割り当てられているローカル・キャッシュ・トーク
ンLCTまたはリスト通知トークンLNTが格納され
る。LCTは、ローカル・キャッシュ・ビット・ベクト
ルを識別し、LNTは、リスト通知ビット・ベクトルを
識別する。
【0249】R2フィールドによって指定される汎用レ
ジスタには、ローカル・キャッシュ・ビット・ベクトル
の場合はローカル・キャッシュ・エントリ番号(LCE
N)と称し、リスト通知ビット・ベクトルの場合はリス
ト通知エントリ番号(LNEN)と称する符号なし2進
整数が格納される。この符号なし2進整数は、ビット・
ベクトル内の1エントリを選択する。そのビット・ベク
トル内の最初のエントリは、値0のLCENまたはLN
ENによって選択される。そのビット・ベクトル内の最
後のエントリは、このビット・ベクトルに関連するビッ
ト・ベクトルのエントリ数より1つ小さい値のLCEN
またはLNENによって選択される。このビット・ベク
トルのエントリ数は、前のDEFINE VECTOR命令によって
確立された値である。
【0250】LCENまたはLNENによって選択され
たビット・ベクトル・エントリが、LCTまたはLNT
によって識別されたビット・ベクトル内で1である場合
には、条件コード0がセットされる。
【0251】LCENまたはLNENによって選択され
たビット・ベクトル・エントリが、LCTまたはLNT
によって識別されたビット・ベクトル内で0である場合
には、条件コード1がセットされる。
【0252】LCENまたはLNENが、このビット・
ベクトルに関連するビット・ベクトルのエントリ数以上
である場合には、条件コード2がセットされ、他の処置
は行われない。
【0253】指定されたLCTまたはLNTが割当て済
み状態でない場合には、条件コード3がセットされ、他
の処置は行われない。
【0254】結果として生じる条件コードは以下の通り
である。 0 ビット・ベクトル・エントリが1である 1 ビット・ベクトル・エントリが0である 2 LCENまたはLNENが大きすぎる 3 入力のLCTまたはLNTが割り当てられていない
【0255】TEST VECTOR ENTRYは、直列化処置やチェ
ックポイント同期化処置を実行しない。このどちらかの
処置を実行すると、システム性能が低下することにな
る。テストされるベクトル・エントリに対する、概念上
前にあるすべての更新参照が、プログラム制御下で明示
的に開始された他の直列化処置の結果として観察可能に
なる。
【0256】TVEを使用すると、ローカルにキャッシ
ュされるSESキャッシュ・データ・エントリの妥当性
を判定するための高性能の手段がもたらされる。ローカ
ルにキャッシュされるコピーの妥当性がTVEによって
示された後、ローカルにキャッシュされるコピーが該プ
ログラムによって処理される前に、SESに登録された
共用データ・コピーの更新が行われないようにするた
め、SES常駐のコピーの修正に対する直列化を、TV
E実行および後続のデータ使用の間中維持しなければな
らない。
【0257】関連するローカルにキャッシュされるデー
タ項目が、SES機構16に登録された共用コピーに関
して最新のものである時、ローカル・キャッシュ・ベク
トル・エントリは1である。関連するローカルにキャッ
シュされるデータ項目が、SES機構に登録された共用
コピーに関して最新のものでない時、ローカル・キャッ
シュ・ベクトル・エントリは0である。場合によって
は、ローカルにキャッシュされるコピーがSES機構に
登録された共用コピーに関して最新のものであっても、
ローカルにキャッシュされるコピーの過剰無効化が発生
する可能性がある。これは、0のローカル・キャッシュ
・ベクトル・エントリで示される。
【0258】TVE命令は、リスト通知ベクトル・エン
トリに対して実行される時、リスト構造ユーザ付加コマ
ンドおよびリスト監視登録コマンドによってそのリスト
のリスト状態遷移通知が使用可能にされているならば、
そのリスト通知ベクトル・エントリによってマップされ
るSESリストが、空状態と非空状態のどちらであるか
を示す。このSESリストをあるシステムが使って、別
のシステムにメッセージを渡すかあるいはトランザクシ
ョンを経路指定する場合、受取り側システムがTVEを
周期的に使用して、SES機構への非生産的な物理アク
セスに関連するオーバーヘッドを生じることなく、少な
くとも1つの要素がそのリスト上に置かれているか否か
を判定することができる。
【0259】TVEは、1つまたは複数のリスト通知事
象をSESサポート機構33が受け取り処理したことを
TEST VECTOR SUMMARY命令が示した後に、選択されたリ
ストの状態が空か非空かを判定するのにも使用される。
リスト通知ベクトル・ローカル・サマリ(LNVLS)
およびリスト通知ベクトル・グローバル・サマリ(LN
VGS)が、リスト通知ベクトル(LNV)内でマップ
される少なくとも1つのリストが非空状態に入った結果
として更新される。リスト通知ベクトル・ローカル・サ
マリ(LNVLS)は、リストが空になる時に、リスト
通知ベクトル・エントリのように更新されることはない
ので、SET VECTOR SUMMARY(SVS)命令を使用して該
プログラムによって明示的にリセットしなければならな
い。その結果、プログラムが提供する何らかの形の直列
化が行われないなら、あるシステム上で監視されるリス
ト通知ベクトル・ローカル・サマリ(LNVLS)が、
非空状態へのリスト遷移を示し、別のシステムが状態変
化を監視し、その後そのリストからすべての要素を削除
した場合でも、それが持続する可能性がある。SESコ
マンド開始の寸前にTVE命令を使用すると、空のリス
トへの非生産的なアクセスをなくすることができる。
【0260】リスト通知ベクトル・エントリは、空状態
へのリスト遷移の結果として1にセットされる。リスト
通知ベクトル・エントリは、非空状態へのリスト遷移の
結果として0にセットされる。場合によっては、関連す
るリストが空であっても、非空のリストの過剰指示が発
生する可能性がある。これは、0のリスト通知ベクトル
・エントリで示される。
【0261】TEST VECTOR SUMMARY(TVS)(ベクト
ル・サマリ・テスト): 選択されたリスト通知ベクトル・グローバル・サマリ
(LNVGS)またはリスト通知ベクトル・ローカル・
サマリ(LNVLS)の現在の状態を、条件コードで示
す。
【0262】R1フィールドは、汎用レジスタの奇偶対
のうち偶数番号のレジスタを指定する。
【0263】R1フィールドが、汎用レジスタ0以外の
汎用レジスタを指定する時は、R1フィールドによって
指定される汎用レジスタ対に、前のDEFINE VECTOR命令
の実行によって現在割り当てられているリスト通知トー
クン(LNT)が格納される。このLNTは、選択され
たリスト通知ベクトル・ローカル・サマリ(NLVL
S)を識別する。
【0264】R1フィールドが、汎用レジスタ0を指定
する時は、リスト通知ベクトル・グローバル・サマリ
(LNVGS)が選択される。R1フィールドによって
指定されるレジスタ対の内容は無視される。
【0265】選択されたリスト通知ベクトル・グローバ
ル・サマリ(LNVGS)またはリスト通知ベクトル・
ローカル・サマリ(LNVLS)がリセット状態にある
時は、条件コード0がセットされる。
【0266】選択されたリスト通知ベクトル・グローバ
ル・サマリ(LNVGS)またはリスト通知ベクトル・
ローカル・サマリ(LNVLS)が活動状態にある時
は、条件コード1がセットされる。
【0267】指定されたLNTが割当て済み状態ではな
い場合には、条件コード3がセットされ、他の処置は行
われない。
【0268】結果として生じる条件コードは以下の通り
である。 0 ベクトル・サマリが、リセット状態にある 1 ベクトル・サマリが、活動状態にある 2 −− 3 入力のLNTが割り当てられていない
【0269】TEST VECTOR SUMMARYは、直列化処置また
はチェックポイント同期化処置を実行しない。このどち
らかの処置を実行すると、システム性能が低下すること
になる。テストされるリスト通知ベクトル・サマリ(L
NVLSまたはLNVGS)に対する、概念上前にある
すべての更新参照は、その更新を実行する動作によって
観察可能になる。これには、リスト通知コマンドおよび
SET VECTOR SUMMARY(SVS)の実行の下での更新参照
が含まれる。
【0270】CPC10上で作成される各リスト通知ベ
クトル(LNV)毎に、1つのリスト通知ベクトル・ロ
ーカル・サマリ(LNVLS)が存在する。リスト監視
登録コマンドのプログラム指定のオプションとして、関
連リスト通知ベクトル(LNV)が空から非空へのリス
ト遷移を示すことのないように何らかのリスト通知コマ
ンドが処理される時、リスト通知ベクトル・ローカル・
サマリ(LNVLS)がセットされる。リスト通知ベク
トル・ローカル・サマリ(LNVLS)は、非空から空
へのリスト状態遷移の結果として更新されることはな
い。リスト通知ベクトル・ローカル・サマリ(LNVL
S)は、TVS命令によってテストされ、SVS命令に
よってリセットされる。
【0271】CPC10上には、CPCイメージ毎に1
つのリスト通知ベクトル・グローバル・サマリ(LNV
GS)が存在する。そのCPCイメージに関連するリス
ト通知ベクトル・ローカル・サマリ(LNVLS)が、
空から非空へのSESリスト状態遷移を示すためにセッ
トされる時、リスト通知ベクトル・グローバル・サマリ
(LNVGS)がセットされる。リスト通知ベクトル・
グローバル・サマリ(LNVGS)は、非空から空への
リスト状態遷移の結果として更新されることはない。リ
スト通知ベクトル・グローバル・サマリ(LNVGS)
は、TVS命令によってテストされ、SVS命令によっ
てリセットされる。
【0272】オペレーティング・システム制御プログラ
ムは、リスト通知ベクトル・グローバル・サマリ(LN
VGS)とリスト通知ベクトル・ローカル・サマリ(L
NVLS)を利用して、登録済みのアプリケーション・
プログラムのための効率的なシステム・ポーリング機能
を提供する。この環境では、まずTVSを使用して、リ
スト通知ベクトル・グローバル・サマリ(LNVGS)
の状態をテストする。この(LNVGS)が活動状態で
ある場合、SVS命令によってこれをリセットし、割り
当てられたリスト通知ベクトル(LNV)のそれぞれの
リスト通知ベクトル・ローカル・サマリ(LNVLS)
に対してTVSを実行する。TVSによって識別される
活動状態のリスト通知ベクトル・ローカル・サマリ(L
NVLS)のそれぞれについて、以下のステップを実行
する。
【0273】SVS命令を使用して、そのリスト通知ベ
クトル・ローカル・サマリ(LNVLS)をリセットす
る。リスト通知ベクトルLNVの処理のため、ユーザ・
プログラムに制御を渡す。ユーザ・プログラムが、リス
ト通知ベクトル(LNV)で示されるリスト遷移を識別
し、処理する。制御プログラムに制御を渡して、ユーザ
・プログラムは再度呼び出されるのを待つ。
【0274】リスト通知ベクトル・グローバル・サマリ
(LNVGS)のテストは、リスト遷移応答時間の目標
を満たすのに必要な回数だけ実行される。SESリスト
の空から非空への状態遷移を反映するために少なくとも
1つのリスト通知コマンドがSESサポート機構33に
よって実行されたことが、リスト通知ベクトル・グロー
バル・サマリ(LNVGS)のテストによって示される
時にだけ、各リスト通知ベクトル・ローカル・サマリ
(LNVLS)のテストに伴う追加のオーバーヘッドが
生じる。
【0275】SESサポート機構コマンド: オブジェクト参照、コマンド同期化および機械状態は、
J. A. フレイ(Frey)他の米国特許出願第786079
7号"Management of Data Objects used to Maintain S
tate Information for Shared Data at a Local Comple
x"に開示されている。
【0276】相互無効化: SESサポート機構33が相互無効化コマンドを受け取
ると、相互無効化動作が実行される。相互無効化コマン
ドは、ローカル・キャッシュ・トークン(LCT)とロ
ーカル・キャッシュ・エントリ番号(LCEN)を含ん
でいる。相互無効化動作には、ローカル・キャッシュ・
トークンによって指定されるローカル・キャッシュ内の
ローカル・キャッシュ・エントリ番号によって選択され
るローカル・キャッシュ・エントリを、選択されたロー
カル・キャッシュ・ビット・ベクトル・エントリを0に
セットすることによって無効にすること、および相互無
効化動作が発生したことをSES機構への応答によって
示すことが含まれる。
【0277】選択されたローカル・キャッシュ・エント
リは、そのローカル・キャッシュ・エントリ番号がこの
ローカル・キャッシュ24に関連するローカル・キャッ
シュ・エントリ数以上である場合、または指定されたロ
ーカル・キャッシュ・トークンが割当て済み状態でない
場合を除き、選択されたローカル・キャッシュ・ビット
・ベクトル・エントリを0にセットすることによって無
効にされる。上記の二条件が発生し得るのは、SESキ
ャッシュ・ディレクトリ・エントリが、ユーザ登録エン
トリ内でこのユーザの有効性を示している間に、ローカ
ル・キャッシュ24のサイズが変更されるか、あるいは
ローカル・キャッシュ・トークンが解放される場合であ
る。これらの条件は、相互無効化コマンドの成功裡の完
了と見なされ、応答コード0が返される。
【0278】相互無効化動作が完了する時、相互無効化
動作によって選択されたローカル・キャッシュ・エント
リの無効状態が、その構成内のすべてのCPUに見える
ようになる。
【0279】あるビット・ベクトル・エントリがDV命
令によって再割当てされた後に、相互無効化コマンドが
そのエントリを更新する可能性をなくすため、処理され
るビット・ベクトルのトークン・テーブル・エントリ内
に常駐するロックを使用して、DV命令の実行を相互無
効化コマンドの実行と直列化する。
【0280】ビット・ベクトルは、ハードウェア・シス
テム域(HSA)の一部として記憶域内で実施され、複
数のローカル・キャッシュ・エントリがバイト毎に追跡
される。ビット・ベクトルのビットを更新する動作は、
そのビットを含むバイトに対するインターロック式更新
によって更新を行わなければならない。他のCPUまた
はSESサポート機構33による、すべての記憶アクセ
スと、インターロック式更新参照に関連する取出しおよ
び記憶アクセスが、インターロック式更新参照の取出し
アクセスと記憶アクセスの間に同じ場所で発生しないよ
うになっている。
【0281】リスト通知: SESサポート機構33がリスト通知コマンドを受け取
ると、リスト通知動作が実行される。リスト通知コマン
ドは、リスト通知トークン(LNT)、リスト通知エン
トリ番号(LNEN)、非空状態変更標識(NESC)
および、リスト通知ベクトル・サマリ更新(SU)が必
要かどうかを示すビットを含んでいる。リスト通知動作
には、選択されたリスト通知ビット・ベクトル・エント
リを、空から非空へのリスト遷移が発生した場合には
0、非空から空へのリスト遷移が発生した場合には1に
セットすることによって、リスト通知トークンによって
指定されるリスト通知ビット・ベクトル内のリスト通知
エントリ番号によって選択されるリスト通知エントリを
更新すること、およびリスト通知動作が発生したことを
SES機構への応答によって示すことが含まれる。
【0282】NESCが1の時、リスト通知エントリ番
号がこのリスト通知ベクトルに関連するエントリ数以上
である場合、または指定されたリスト通知トークンが割
当て済み状態でない場合を除き、選択されたリスト通知
ビット・ベクトル・エントリを0にセットすることによ
って、非空へのリスト状態遷移が、選択されたリスト通
知エントリ内で示される。上記の二条件が発生し得るの
は、このリスト用の制御が、リスト通知登録エントリに
対してこのユーザが関心をもつことを示している間に、
リスト通知ビット・ベクトルのサイズが変更されるか、
あるいはリスト通知トークンが解放される場合である。
これらの条件は、リスト通知コマンドの成功裡の完了と
見なされ、応答コード0が返される。
【0283】NESCが0の時、リスト通知エントリ番
号がこのリスト通知ベクトルに関連するエントリ数以上
である場合、または指定されたリスト通知トークンが割
当て済み状態でない場合を除き、選択されたリスト通知
ビット・ベクトル・エントリを1にセットすることによ
って、空へのリスト状態遷移が、選択されたリスト通知
エントリ内で示される。上記の二条件が発生し得るの
は、このリスト用の制御が、リスト通知登録エントリに
対してこのユーザが関心をもつことを示している間に、
リスト通知ビット・ベクトルのサイズが変更されるか、
あるいはリスト通知トークンが解放される場合である。
これらの条件は、リスト通知コマンドの成功裡の完了と
見なされ、応答コード0が返される。
【0284】NESCが1であり、選択されたリスト通
知ベクトル・エントリが更新され、SUが1である時に
は、リスト通知トークンによって指定されるリスト通知
ベクトル・ローカル・サマリとリスト通知ベクトル・グ
ローバル・サマリとが、活動状態になる。
【0285】リスト通知コマンドが完了する時、そのリ
スト通知動作によって選択されたビット・ベクトル・エ
ントリの新しい状態が、TEST VECTOR ENTRY命令によっ
てそのビット・ベクトル・エントリを監視するすべての
CPUに見えるようになる。リスト通知コマンドが完了
する時、そのリスト通知動作によって活動状態にされた
リスト通知ベクトル・ローカル・サマリとリスト通知ベ
クトル・グローバル・サマリの新しい状態が、TEST VEC
TOR SUMMARY(TVS)命令によってリスト通知ベクト
ル・ローカル・サマリまたはリスト通知ベクトル・グロ
ーバル・サマリを監視するすべてのCPUに見えるよう
になる。
【0286】リスト通知ベクトル・オブジェクトに対す
る更新は、次の順序で実行される。まず、リスト通知ベ
クトル・エントリをセットし、次にリスト通知ベクトル
・ローカル・サマリ、その後リスト通知ベクトル・グロ
ーバル・サマリをセットする。
【0287】リスト通知ビット・ベクトル・エントリの
セットと、リスト通知ベクトル・ローカル・サマリのセ
ットと、リスト通知ベクトル・グローバル・サマリのセ
ットの間に、遅延が存在し得る。これは、たとえばハー
ドウェア回復の場合に発生する。
【0288】あるビット・ベクトル・エントリがDV命
令によって再割当てされた後に、リスト通知コマンドが
そのエントリを更新する可能性をなくすため、処理され
るビット・ベクトルのトークン・テーブル・エントリ内
に常駐するロックを使用して、DV命令の実行をリスト
通知コマンドの実行と直列化する。
【0289】ビット・ベクトルは、ハードウェア・シス
テム域(HSA)の一部として記憶域内で実施され、複
数のリスト通知エントリがバイト毎に追跡される。ビッ
ト・ベクトルのビットを更新する動作は、そのビットを
含むバイトに対するインターロック式更新によって更新
を行わなければならない。他のCPUまたはSESサポ
ート機構33による、すべての記憶アクセスと、インタ
ーロック式更新参照に関連する取出しおよび記憶アクセ
スが、インターロック式更新参照の取出しアクセスと記
憶アクセスの間に同じ場所で発生しないようになってい
る。
【0290】実施態様の例: 本節では、SESサポート機構33の可能な実施態様を
説明する。この設計では、ビット・ベクトルおよび関連
構造をハードウェア・システム域(HSA)内で実施す
る。下記のことについて説明する。
【0291】オペランドLCTとオペランドLCEN オペランドLNTとオペランドLNEN リスト通知マッピング構造 ローカル・キャッシュ・マッピング構造 割当て構造 ローカル・キャッシュ・ビット・ベクトル リスト通知ビット・ベクトルのビット選択
【0292】ビット選択: ローカル・キャッシュ・ベクトルを識別し、それに対応
するビット・ベクトル・エントリを選択するには、2つ
のオペランドが必要である。1つのオペランドは、正し
いビット・ベクトルの選択に必要なローカル・キャッシ
ュ・トークンである。もう1つのオペランドは、そのビ
ット・ベクトル内で正しいエントリを選択するのに必要
なローカル・キャッシュ・エントリ番号である。
【0293】リスト通知ベクトルを識別し、それに対応
するビット・ベクトル・エントリを選択するには、2つ
のオペランドが必要である。1つのオペランドは、正し
いビット・ベクトルの選択に必要なリスト通知トークン
である。もう1つのオペランドは、そのビット・ベクト
ル内で正しいエントリを選択するのに必要なリスト通知
エントリ番号である。
【0294】DV命令、SVE命令、TVE命令または
相互無効化コマンドのオペランドとしてのローカル・キ
ャッシュ・トークンLCTのフォーマットを、図7に示
す。
【0295】LCT内のフィールドを図7に示す。これ
らは、以下の通りである。
【0296】イメージID(識別子): イメージIDフィールドは、0からNまでの範囲にわた
り、値0は、ネイティブ実行用に設けられ、Nは、SE
S機構16をサポートするイメージの数を表す。SES
機構16をサポートするイメージのそれぞれに、1から
Nまでの一意のイメージ識別子番号が割り当てられる。
ネイティブ実行の場合、またはイメージをSES機構1
6に付加する必要がない時には、Nも活動状態のイメー
ジ番号も0になる。 指標: このイメージ用に割り当てられた状態で同時に存在する
ことのできるN個のローカル・キャッシュ・ベクトルの
うちの1つを識別する。 A(割当て済み): 1の時、そのローカル・キャッシュ・トークンが割り当
てられていることを示す。 シーケンス番号: リセット・クリア動作が実行された後を除き、ローカル
・キャッシュ・トークンが絶対に再割当てされないこと
を保証するのに使用する。
【0297】ローカル・キャッシュ・エントリ番号(L
CEN): SVE命令またはTVE命令の第2オペランドあるいは
相互無効化コマンドの第2パラメータであるローカル・
キャッシュ・エントリ番号のフォーマットを、図8に示
す。
【0298】ローカル・キャッシュ・エントリ番号は、
ビット・ベクトル・エントリの番号を指定する。ビット
・ベクトル・エントリには、0から始まる番号が付けら
れる。
【0299】リスト通知トークン(LNT): DV命令、SVE命令、TVS命令、SVS命令、TV
E命令またはリスト通知コマンドのオペランドとしての
リスト通知トークンのフォーマットを、図9に示す。
【0300】LNT内のフィールド群は、下記のように
割り振られる。
【0301】イメージID(識別子): イメージIDフィールドは、0からNまでの範囲にわた
り、値0は、ネイティブ実行用に設けられ、Nは、SE
S機構16をサポートするイメージの数を表す。SES
機構16をサポートするイメージのそれぞれに、1から
Nまでの一意のイメージ識別子番号が割り当てられる。
ネイティブ実行の場合、またはイメージをSES機構1
6に付加する必要がない時には、Nも活動状態のイメー
ジ番号も0になる。 指標: このイメージ用に割り当てられた状態で同時に存在する
ことのできるN個のリスト通知ビット・ベクトルのうち
の1つを識別する。 A(割当て済み): 1の時、そのリスト通知トークンが割り当てられている
ことを示す。 シーケンス番号: リセット・クリア動作の後を除き、リスト通知トークン
が絶対に再割当てされないことを保証するのに使用す
る。
【0302】リスト通知エントリ番号(LNEN): リスト通知エントリ番号を図10に示す。これは、リス
ト通知ビット・ベクトル・エントリの番号を指定する。
ビット・ベクトル・エントリには、0から始まる番号が
付けられる。
【0303】マッピング構造: ビット・ベクトル・エントリに対するLCTとLCEN
番号のマッピングを容易にするため、下記の構造が設け
られる。 ローカル・キャッシュ・トークン・テーブル ローカル・キャッシュ・ビット・ベクトル空間
【0304】ビット・ベクトル・エントリに対するLN
TとLNEN番号のマッピングを容易にするため、下記
の構造が設けられる。 リスト通知トークン・テーブル リスト通知ビット・ベクトル空間
【0305】これらの構造は、存在するときHSA内に
置かれる。
【0306】ローカル・キャッシュ・トークン・テーブ
ル: ローカル・キャッシュ・トークン・テーブルを、図11
に示す。ローカル・キャッシュ・トークン・テーブル
は、1イメージ毎にN個のエントリを格納する。各エン
トリは、定義可能であったローカル・キャッシュ・ビッ
ト・ベクトルに対応する。
【0307】各ローカル・キャッシュ・トークン・テー
ブル・エントリ(LCTTE)は、図12に示す通りで
あり、下記のものを含む。
【0308】トークン・テーブル・エントリ・ロック
(LOCK): 相互無効化コマンドとDEFINE VECTOR命令の並行な実行
を直列化するのに使用される。トークン・テーブル・エ
ントリ(TTE)は、LCT内のシーケンス番号または
ローカル・キャッシュ・エントリ数(NLCE)が更新
される時、DV実行の間ロックされる。このロックは、
相互無効化コマンドの実行中にも保持される。 ローカル・キャッシュ・エントリ数(NLCE): ローカル・キャッシュ・トークン・テーブル・エントリ
には、そのローカル・キャッシュ内のエントリ数を示す
符号なし2進整数が格納される。これは、そのローカル
・キャッシュの定義、拡張または縮小を行ったDV命令
の第2オペランドに格納されていた値である。 ビット・ベクトル・アドレス: このトークンに関連する最初のローカル・キャッシュ・
ビット・ベクトル・エントリのアドレスを格納する。 ローカル・キャッシュ・トークン(LCT): トークン・テーブル・エントリには、そのローカル・キ
ャッシュ・ベクトルが定義された時に割り当てられたロ
ーカル・キャッシュ・トークンが格納される。SVE命
令またはTVE命令の実行、およびDV命令の解放動
作、クリア動作または変更動作の場合、このフィールド
が、これらの命令の第1オペランドと一致しなければな
らない。
【0309】ローカル・キャッシュ・ビット・ベクトル
空間: イメージ毎にビット・ベクトル群を格納する区域がHS
A内に設けられる。
【0310】ローカル・キャッシュ作業用記憶域: ローカル・キャッシュ・トークン・テーブル原点(LC
TTO)とローカル・キャッシュ・ビット・ベクトル空
間原点(LCBVSO)が、各CPUとSESサポート
機構のローカル作業用記憶域に格納される。SESをサ
ポートするイメージの数(N)が、各SESサポート機
構のローカル作業用記憶域に格納される。これらの値
は、初期設定時に確立される。
【0311】リスト通知トークン・テーブル: リスト通知トークン・テーブルを、図13に示す。リス
ト通知トークン・テーブルは、1イメージ毎にN個のエ
ントリを格納する。各エントリは、定義可能であったリ
スト通知ベクトルに対応する。
【0312】各リスト通知トークン・テーブル・エント
リ(LNTTE)は、図14に示す通りであり、下記の
ものを含む。
【0313】トークン・テーブル・エントリ・ロック
(LOCK): 相互無効化コマンドとDEFINE VECTOR命令の並行な実行
を直列化するのに使用される。TTEは、LNT内のシ
ーケンス番号またはリスト通知ベクトル・エントリ数
(NLNVE)が更新される時、DV実行の間ロックさ
れる。このロックは、リスト通知コマンドの実行中にも
保持される。 リスト通知トークン・サマリ(S): 1の時、LNTTEによって指定されるリスト通知ベク
トル内の1エントリを0にセットして、非空状態へのS
ESリスト遷移を示す、リスト通知コマンドが実行され
たことを示す。このビットは、リスト通知コマンドによ
って1にセットされ、SET VECTOR SUMMARY(SVS)C
PU命令によって0にリセットされる。 リスト通知ベクトル・エントリ数(NLNVE): リスト通知トークン・テーブル・エントリには、そのベ
クトル内のエントリ数を示す符号なし2進整数が格納さ
れる。これは、そのリスト通知ベクトルの定義、拡張ま
たは縮小を行ったDV命令の第2オペランドに格納され
ていた値である。 ビット・ベクトル・アドレス: このトークンに関連する最初のビット・ベクトル・エン
トリのアドレスを格納する。 リスト通知トークン(LNT): 各リスト通知トークン・テーブル・エントリには、ある
リスト通知ベクトルが定義される時に割り当てられたリ
スト通知トークンが格納される。SVE命令、TVS命
令、SVS命令またはTVE命令の実行、およびDV命
令の解放動作、クリア動作または変更動作の場合、この
フィールドが、これらの命令の第1オペランドと一致し
なければならない。
【0314】リスト通知グローバル・サマリ・ベクト
ル: リスト通知グローバル・サマリ・ベクトルは、1イメー
ジ毎に1つのビット・エントリを格納する。各エントリ
は、そのイメージ内のすべてのリスト通知ベクトルに対
するリスト通知コマンドの実行のサマリ指示を提供す
る。リスト通知グローバル・サマリ・ベクトル(LNG
SV)のエントリは、リスト通知コマンドによって1に
セットされ、SVS命令によって0にリセットされる。
【0315】リスト通知ビット・ベクトル空間: イメージ毎にHSA記憶域の1区域が設けられる。
【0316】割当て構造の記憶場所 割当て構造のアドレスは、HSAのCPU共通域と称す
る部分に置かれる。これらのアドレスは、CPU共通域
の先頭から固定したオフセットの所に置くことができ
る。各イメージ用に存在するベクトルは、イメージ番号
の順に保たれる。各イメージ用に保たれるカウンタにつ
いても同様である。各CPUは、そのローカル作業用記
憶域に、CPU共通域のアドレスを格納する。
【0317】ローカル作業用記憶域: リスト通知マッピング・テーブル原点(LNMTO)、
リスト通知トークン・テーブル原点(LNTTO)、リ
スト通知グローバル・サマリ・ベクトル原点(LNGS
VO)およびリスト通知ビット・ベクトル空間原点(L
NBVSO)が、各CPUとSESサポート機構のロー
カル作業用記憶域に格納される。SESをサポートする
イメージの数(N)が、各SESサポート機構のローカ
ル作業用記憶域に格納される。これらの値は、初期設定
時に確立される。
【0318】プログラミング: 次に、ローカル・キャッシュ無効化、リスト遷移通知お
よびメッセージ経路エラー回復の各機能をサポートす
る、主要なシステム・ソフトウェア・プロトコルの高水
準論理フローを説明する。
【0319】プログラミングにおいては、SES機構へ
のアクセスを確立し制御する際に、図25に示す機構制
御ブロック(FCB)を利用する。アクセスされるSE
S機構毎に1つのFCBが、各オペレーティング・シス
テム内で維持される。FCBには、SES機構の識別
と、SES機構への物理接続の決定と、SES機構への
論理接続の維持と、SES機構への接続の初期設定およ
び回復の制御に使用される情報が格納される。論理制御
ユニット識別子とノード識別子が、SES機構を識別す
るために使用される。論理制御ユニット識別子は、SE
S機構を識別しシステムとSES機構の間の接続を定義
するための、定義手順によって確立される。ノード識別
子は、諸コマンドが、オペレーティング・システムとS
ES機構の間に活動状態の経路を確立するのに応答し
て、オペレーティング・システムに返される。システム
とSES機構の間の物理接続は、FCBのフィールドC
HPID 1ないし8に格納されるチャネル経路識別子
によって表される。論理経路マスク(LPM)は、正し
く構成され、システムとSES機構の間の動作のために
論理的に使用可能なCHPIDを識別する、ビット・マ
スクである。FCBに関連するサブチャネル・アレイ
は、システムとSES機構の間の動作を維持するために
定義された1組のサブチャネルを識別する。正しく構成
され、論理的にも物理的にも使用可能であることがわか
っている、SES機構への1組の経路が、接続性検査処
理で決定される。最後の接続性検査処理が実行されて以
来、潜在的に使用不能になっていると識別されるCHP
IDを表す、FCB内のTIビット・マスクが、経路の
初期設定および回復の間プログラミングによって維持さ
れる。接続性検査処理によって使用可能と判定された、
SES機構への経路を表す、健全経路マスクが、経路の
初期設定および回復の間にプログラミングによって作成
される。FCB内のロック・ワードは、プログラミング
によって、SES機構に関する並行な初期設定処理およ
び回復処理を直列化するのに使用される。
【0320】リスト通知ベクトルのポーリング: 図15は、付加SESリスト・ユーザのリスト通知ビッ
ト・ベクトルの変化を検出するために、MVS制御プロ
グラムによって使用される高水準論理を示す図である。
図15には、空から非空へのリスト状態変化を検出する
ための各リスト通知ベクトル・サマリの使用が示され、
状態変化を処理するための、付加ユーザのプログラムの
ディスパッチが示されている。
【0321】メッセージ経路活動化(AMP): 図16は、SESコマンド障害の後または経路再構成要
求の結果としてメッセージ経路を活動化するために、M
VS制御プログラムによって使用される高水準論理を示
す図である。
【0322】経路活動化が実行されようとしている特定
のSES機構16を表すプログラム制御ブロック構造を
直列化するために、使用不能グローバル・スピン・ロッ
クを獲得する。これによって、経路活動化処理が、その
機構に対するSESサポート機構回復処理と並行に走行
しなくなる。メインライン処理がローカル・キャッシュ
・エントリ・テスト・(TLCE)マクロ・インターフ
ェースを実行できないようにするための直列化は、TI
ビットを使って行われる。
【0323】メッセージ経路非活動化(DMP): 図17は、SESコマンド障害の後または経路再構成要
求の結果としてメッセージ経路を非活動化するために、
MVS制御プログラムによって使用される高水準論理を
示す図である。
【0324】経路非活動化が実行されようとしている特
定のSES機構16を表すプログラム制御ブロック構造
を直列化するために、使用不能グローバル・スピン・ロ
ックを獲得する。これによって、経路非活動化処理が、
その機構に対するSESサポート機構回復処理と並行に
走行しなくなる。メインライン処理がTLCEマクロ・
インターフェースを実行できないようにするための直列
化は、TIビットによって行われる。
【0325】TLCE交差ビット(TI): 前述したように、所与のSES機構16に接続されたC
PC10で、経路グループ内に維持される各メッセージ
経路用に回復交差を提供するために、1ビットが定義さ
れる。さらに、TLCE状態格納領域内で1つのTIビ
ットが定義される。これが、TLCEマクロ・インター
フェースを介する初期の経路選択に使用される「準備済
みの」メッセージ経路に対応することは、後で説明す
る。TIビットは、メッセージ経路がオフラインにされ
るか、あるいはそのチャネルのエラー状態保留中指示の
リセットを伴う非同期式経路回復を受ける時に、必ずセ
ットされる。TI標識の検査により、そうしなければメ
インライン経路に大きな性能低下をもたらすはずの並行
な回復処理や経路非活動化をブロックするために、メイ
ンライン処理で強い直列化を獲得する必要がなくなる。
【0326】前述のように、CPC10と付加SES機
構16の間の通信用に使用可能なメッセージ経路が存在
することを示すには、TMPS命令の実行だけでは不十
分である。
【0327】CPC10によって開始されるメッセージ
経路非活動化(DMP)コマンドの実行時に、SES機
構16側でメッセージ経路を非活動化することができ
る。この処置は、CPC10内のSESサポート機構3
3に登録されるメッセージ経路状態には反映されない。
該プログラムは、該プログラムによるDMPコマンドの
発行から直接もたらされるSES機構16内のメッセー
ジ経路の非活動状態が、TMPS命令の実行に関して理
解されるようにする責任を負う。
【0328】さらに、メッセージ経路の成功裡の回復お
よびメッセージ経路活動化(AMP)コマンドによる再
活動化の前に、その経路に対してCLEAR MESSAGE PATH S
TATE(CMPS)命令を実行すると、エラー状態保留中
指示がリセットされる。該プログラムは、経路回復の完
了まで使用できないメッセージ経路のエラー状態保留中
状態のリセットが、そのメッセージ経路に対するTMP
S命令の実行に関して理解されるようにする責任を負
う。
【0329】ローカル・キャッシュ・エントリ・テスト
・(TLCE)マクロ: 図18と図19は、全体として、TLCEインライン・
マクロ拡張と、TLCE交差ビット(TI)、TMPS
命令によってテストされるシステム間チャネル識別子、
およびSES機構16に通じるすべての経路の名前を含
む機構関連情報を格納するソフトウェア制御ブロックの
アドレスを格納するのに使用される、TLCE状態格納
領域のフォーマットを示している。
【0330】このサービスは、ローカルにキャッシュさ
れたデータ項目のキャッシュ・コヒーレンシを決定する
ための、効率的で非常に応答性のよい機構を提供する。
これは、まず相互無効化コマンドの受取りおよび処理の
ための、関連するSES機構16への健全な経路が存在
することを検証して、ビット・ベクトルの保全性を判定
した後に、ローカル・キャッシュ・トークン(LCT)
と特定のビット・ベクトル・エントリ番号によってアド
レスされる要求されたローカル・キャッシュ・ベクトル
・エントリを問い合わせることによって達成される。プ
ログラミングは、図20の250に示すように、ローカ
ルにキャッシュされるデータ項目に対する直列化を、マ
クロ・サービス呼出しの間中保持し、その結果、そのデ
ータ・オブジェクトに対する並行な書込み活動によって
危うくされることのない、ローカル・キャッシュ・ベク
トル状態の原子的表示が提供できるようになる。
【0331】データ参照の完了後、そのデータは、図2
0の254でロック解除される。ロックおよびロック解
除は、参照によって本明細書に組み込まれる米国特許出
願第860808号"Method and Apparatus for Distri
buted Locking of Shared Data, Employing a Central
Coupling Facility"の開示に従って行われる。
【0332】TMPSは、指定されたローカル・キャッ
シュ・ベクトル(LCV)内のエントリを問い合わせる
目的で発行される1つまたは複数のTEST VECTOR ENTRY
(TVE)命令の実行前に、これらの命令に関して発行
される。これは、SES機構16によってそのローカル
・キャッシュ・ベクトルに向けられる相互無効化コマン
ドを受け取るのに使用可能な経路が存在することを保証
するために必要である。TMPSでは、CPC10と付
加SES機構16の間の物理接続を表すチャネル経路を
指定しなければならない。付加SES機構16への使用
可能な経路が存在することをまず検証せずに、ローカル
・キャッシュ・ベクトル(LCV)に対してTVE命令
を実行すると、残余ローカル・キャッシュ・ベクトル・
データを問い合わせることになり、データ保全性が危う
くなる可能性がある。
【0333】使用可能な経路の存在をTMPSが示した
時から後続のTVE命令の実行までの間に、ローカルに
キャッシュされたデータ要素の共用コピーに対する更新
が行われないようにするため、SES内に登録されたデ
ータ要素が修正されないようにするための直列化を、T
MPS命令と関連TVE命令の実行の間中保持しなけれ
ばならない。
【0334】メッセージ経路障害が、TMPS命令の実
行から、対応するTVE命令の実行までの間の時間ウィ
ンドウ中に発生する可能性がある。上で必要とされた直
列化を行うと、この時間ウィンドウ中に検出されなかっ
た上記の障害の結果、TVE命令の目標であるローカル
・キャッシュ・ベクトル・エントリ向けの相互無効化コ
マンドが失われないことが保証される。
【0335】ローカル・キャッシュ・ベクトル(LC
V)またはリスト通知ベクトル(LNV)の保全性を信
頼するには、該プログラムは、相互無効化コマンドまた
はリスト通知コマンドを受け取るために使用できる経路
を1つ見つければよい。これが可能なのは、コマンドが
目標CPCによって処理されるまで、あるいはコマンド
実行の時点で活動状態であった目標CPCへのすべての
メッセージ経路に関してエラー状態保留中条件を指示さ
せ、観察可能にさせる処置が行われるまで、SES機構
16は、相互無効化コマンドまたはリスト通知コマンド
が成功裡に完了したと見なすことができないからであ
る。
【0336】TLCE状態格納領域: TMPS命令での目標経路の指定に必要な経路選択処理
に伴うオーバーヘッドを回避するため、固定した中央記
憶域内に、SES機構16への健全な経路を準備した状
態格納領域が設けられる。
【0337】TLCEサービス・ルーチン: 図21は、TLCEサービス・ルーチンの高水準論理フ
ローを示す図である。このサービス・ルーチンは、TL
CE状態格納領域の内容が有効でない時、あるいは指定
されたメッセージ経路に対して実行されたTMPSが非
0の条件コードを提示した時に、TLCEマクロ拡張か
ら呼び出される。
【0338】TLCEサービス・ルーチンは、使用可能
なメッセージ経路を見つけ、指定されたローカル・キャ
ッシュ・ベクトル・エントリに対してTVE命令を実行
する責任を負う。使用可能なメッセージ経路が見つかっ
た場合には、TVEによって提示される条件コードを、
呼出し側に返す。そうでない場合には、条件コード1を
返して、テストされるローカルにキャッシュされている
データ・ページが、SES機構に登録された共用コピー
に対して最新のものでないことを示す。
【0339】このサービス・ルーチンは、SESサポー
ト機構資源の回復を非同期に実行するようにサービス要
求ブロック(SRB)をスケジュールし、その結果、こ
のような処理のオーバーヘッドが、メインライン経路の
実行を遅延させないようになる。
【0340】メッセージ機構制御ブロックの資源再利用
(ある機構がオフラインにされる時の)がこのメインラ
イン処理と並行に走行しないことを保証するために、T
LCEサービス・ルーチン内でCPUを使用不能にする
必要がある。このような資源再利用は、既知のMVSバ
インド・ブレーク機構を使用して、使用不能にされた処
理が他のCPU上で並行に走行しないように直列化を行
うことによって実行される。資源クリーンアップ処理が
起こらないようにメインライン実行を直列化するのに強
いロックが必要な場合に生じるはずのオーバーヘッド
が、これによって回避される。
【0341】SESサポート機構回復ルーチン: 図22と図23は、全体として、SESサポート機構回
復ルーチンの高水準論理フローを示す。このルーチン
は、TLCEサービス・ルーチンと非同期に走行するよ
うにスケジュールされる。このルーチンは、障害を発生
したメッセージ経路を再活動化する責任を負う。また、
このルーチンは、相互無効化コマンドおよびリスト通知
コマンドを処理するために使用できる、この機構へのメ
ッセージ経路がない期間が存在したと判定される場合
に、ローカル・キャッシュ・ベクトル(LCV)および
リスト通知ベクトル(LNV)をクリアする責任を負
う。
【0342】回復が実行されようとしている指定された
SES機構16を表すプログラム制御ブロック構造を直
列化するために、使用不能グローバル・スピン・ロック
を獲得する。これは、経路非活動化処理が、その機構の
SESサポート機構回復処理と並行に走行しないように
するために必要である。また、並行なSES機構回復処
理が並列に走行すると、たとえばすべての障害の回復が
完了する前に、反復的経路障害指示が消去される可能性
があるので、この並列の走行も防止する必要がある。メ
インライン処理がTLCEマクロ・インターフェースを
実行しないようにするための直列化は、TIビットによ
って行われる。
【0343】経路回復サブルーチン: 図24は、メッセージ経路を回復するためにMVS制御
プログラムによって使用される高水準論理を示す図であ
る。
【0344】図26は、図1のI/Sチャネル18Aの
うちの2つのI/Sチャネル198および199を示す
ブロック図である。I/Sチャネル198は、リンク2
00で識別されるチャネル経路識別子(CHPID)を
有し、I/Sチャネル199は、リンク201で識別さ
れるチャネル経路識別子(CHPID)を有する。リン
ク200および201は、SES機構のI/Sチャネル
20内のチャネルに接続される。前述したように、リン
ク内のエラーを検出するため、エラー検出器204をリ
ンク200の一端に接続し、エラー検出器206をリン
ク201の一端に接続する。エラー状態保留中(ES
P)ラッチ208をエラー検出器204に接続し、ES
Pラッチ210をエラー検出器206に接続する。ES
Pラッチ208および210は、エラー検出時にセット
される。前述のように、ESPラッチ208および21
0は、TMPS命令によってテストすることができ、C
MPS命令によってクリアすることができる。ESPラ
ッチ208に対する命令を線212で示し、ESPラッ
チ210に対する命令を線214で示す。他のI/Sチ
ャネル18Bないし18Nも、図26に示したI/Sチ
ャネル18Aに類似していることを理解されたい。
【0345】図27は、リンクの進行中の動作の間に、
そのリンクのCPC側で行われる連続した処置を示す流
れ図である。220で検査を行って、リンク同期がその
リンク上で観察され続けるかどうかを判定する。このリ
ンクは、いずれも参照によって本明細書に組み込まれ
る、米国特許出願第839657号"Configurable, Rec
overable Parallel Bus"、米国特許出願第839652
号"High Performance Intersystem Communications for
Data Processing Systems"、および 米国特許出願第8
39986号"Frame-Group Transmission and Receptio
n for Parallel/Serial Buses"に開示されているもので
よい。220で、このリンクの同期が継続している場
合、221で検査を行って、XIコマンドまたはLNコ
マンドを受け取ったかどうかを調べる。そうである場
合、227で、前に論じたようにそのXIコマンドまた
はLNコマンドを処理し、220に戻る。221の検査
が否定の場合、220に戻ってリンクの検査を続行す
る。220の検査が否定の場合、222で検査を行っ
て、リンク・インターバル・タイムアウトが発生したか
どうかを調べる。そうである場合、223でESPラッ
チがセットされて、エラーが検出されたことを示し、2
20に戻って処理を続行する。222の検査が否定の場
合、以下で説明する複数の検査を行って、エラー状態保
留中ラッチをセットするはずの条件がSES機構16に
よって報告されていることを示す複数の信号のうちのい
ずれかを、接続されたリンクを介して受け取ったかどう
かを調べる。224で検査を行って、OLS、NOSま
たは光信号の喪失など、そのリンクが動作不能であるこ
とを示すリンク初期設定信号をSES機構16から受け
取ったかどうかを判定する。224の検査が肯定である
場合、223でESPラッチがセットされる。224の
検査が否定である場合、225で検査を行って、バッフ
ァ無効化要求を受け取ったかどうかを調べる。この要求
は、SES機構16が、それが送った最後のメッセージ
内で可能なエラーを検出しており、その最後の要求をC
PC側のバッファから取り除くことを要求していること
を意味する。225の検査が肯定である場合、223で
ESPラッチがセットされる。225の検査が否定の場
合、226で検査を行って、リンク静止要求の送出また
は受取りがあったかどうかを判定する。この要求は、そ
のリンク上の活動を静止させることを求める要求が行わ
れたことを意味する。SES機構16は、リンクが静止
している間メッセージを配布することはできない。22
6の検査が肯定の場合、223でESPラッチがセット
される。226の検査が否定の場合は、220に戻る。
223でESPラッチがセットされた後、220に戻っ
てそのリンクの進行中の動作の検査を続行する。
【0346】図28は、リンクのSES側でのXIコマ
ンドまたはLNコマンドの開始と完了を示す流れ図であ
る。図28のルーチンの戦略は、目標システム・イメー
ジへの経路を介してXIコマンドまたはLNコマンドを
配布して、そのコマンドが実行されるようにすることで
ある。これを行うには、健全なメッセージ経路を見つけ
なければならない。228で、この処理の間にメッセー
ジ経路が活動化されないように経路グループを直列化す
る。229で検査を行って、目標システムに接続された
メッセージ経路のグループ内に活動状態の経路があるか
どうかを調べる。ない場合、後に説明するように、23
9に進んでデータを記憶する。ある場合は、230で、
SES機構16が、その目標システム・イメージに接続
されたメッセージ経路のグループ中の次(最初)の活動
状態の経路を選択する。次のメッセージ経路を選択した
後、231でそのメッセージ経路を介してXIコマンド
またはLNコマンドを送る。232で、SES機構16
は、231で送ったコマンドに対する応答を待つ。23
3で検査を行って、すでに応答を受け取っているべきこ
とを示すタイムアウトが発生したかどうかを調べる。2
33でタイムアウトが発生した場合、SES機構16
は、234でバッファ無効化要求を送り、235で、リ
ンクの他端にあるルーチン(図27の225)がそのバ
ッファ無効化要求を認識したことを示すバッファ無効化
要求応答の着否を検査する。235の検査が肯定である
場合、そのメッセージ経路が、236で非活動状態にセ
ットされ、このルーチンは、229のメイン・ループに
戻って、活動状態のメッセージ経路の有無を検査する。
235の検査が否定である場合、SES機構16は、2
37でそのリンク上に連続した初期設定信号を送る。連
続した初期設定信号を送っている間に、このルーチン
は、240に進んで待機し、図27の224でその初期
設定信号が検出されるのに十分な時間を与える。241
で検査を行って、その待機がタイムアウトになったかど
うかを調べる。そうでない場合、このルーチンは、24
0に戻って待機を続ける。241でタイムアウトになっ
ている時には、このルーチンは、236に進んでこのメ
ッセージ経路を非活動状態にし、229から230に戻
って、次の活動状態のメッセージ経路を選択する。23
3に戻って、タイムアウトを受け取っていない場合、2
38で検査を行って、応答を受け取ったかどうかを調べ
る。受け取っていない場合は、232に戻って、待機を
続ける。238でコマンドに対する応答を受け取ってい
る場合、適切ならば、239でその応答からのデータを
記憶する。その後、243で経路グループを非直列化
し、245でこのコマンドを完了する。229の検査で
活動状態のメッセージ経路がそれ以上見つからない場
合、このルーチンは、239にループしてデータを記憶
し、243と245の動作を行ってコマンドを完了する
ことが理解されよう。
【0347】228では、XIコマンドまたはLNコマ
ンドの配布処理の間にメッセージ経路がCPCプログラ
ムによって活動化されないように、経路グループを直列
化する。これによって、非活動状態の経路が、XIコマ
ンドまたはLNコマンドの配布に不適格であると判明し
た後、コマンド配布処理の完了前に活動化されないこと
が保証される。
【0348】必要な直列化を実現できないと、CPCプ
ログラムが非活動状態の経路を活動化し、SESと目標
システムの間に代替の活動状態の経路が存在することに
気付き、SESに対する接続性が経路活動化の間中維持
されていたと結論する可能性が生じる。
【0349】その時点でその代替経路を介してXIコマ
ンドまたはLNコマンドを配布しようとする試みが行わ
れ、リンク・エラーのためにその試みが失敗する場合、
図27の223で待機して、CPC側でエラーが観察可
能になるようにした後に、障害メッセージ経路が非活動
状態とマークされ、XIコマンドまたはLNコマンドの
処理が完了したとみなされる。
【0350】この時点で、この筋書きのXIコマンドま
たはLNコマンドが実際にはCPCで実行されずに完了
した時、代替経路の障害の前に非活動状態の経路を活動
化したので、XIコマンドまたはLNコマンドが失われ
る危険が存在しないと、CPCプログラムが誤って結論
する可能性がある。
【0351】XIコマンドが完了したとみなされるの
は、下記のいずれかの時である。コマンドに応答して、
SES機構側でメッセージ応答ブロックを受け取る。経
路グループ内のすべてのメッセージ経路が、経路選択の
時点で非活動状態である。関連システムへの活動状態の
メッセージ経路のすべての状態が、システムによってエ
ラー状態保留中にされ、SES機構によって非活動状態
にされる。
【0352】空から非空へのリスト状態遷移が発生する
時、LNコマンドが完了したとみなされるのは、下記の
いずれかの時である。コマンドに応答して、SES機構
側でメッセージ応答ブロックを受け取る。経路グループ
内のすべてのメッセージ経路が、経路選択の時点で非活
動状態である。関連システムへの活動状態のメッセージ
経路のすべての状態が、システムによってエラー状態保
留中にされ、SES機構によって非活動状態にされる。
【0353】非空から空へのリスト状態遷移が発生する
時、LNコマンドが完了するのは、下記のいずれかの時
である。コマンドに応答して、SES側でメッセージ応
答ブロックを受け取る。経路グループ内のすべてのメッ
セージ経路が、経路選択の時点で非活動状態である。そ
のコマンドが関連システム側でコマンド静止される。
【0354】XI信号またはLN信号の配布に関して上
で述べたコマンド完了処理を行うと、図29に示すよう
に、目標CPCへの関連XIコマンドまたはLNコマン
ドの配布が成功したか否かにかかわらず、XI信号また
はLN信号の処理を開始した直接コマンドが成功裡に完
了できるようになる。
【0355】XIコマンドまたはLNコマンドを、目標
CPCへのすべての活動状態の経路を介して首尾よく配
布できなかった場合、各経路に対するTMPS命令の実
行によるプログラム照会に応答して、CPC側でこれら
の経路のすべてに対してエラー状態保留中条件が観察可
能になる。ある経路がエラー状態保留中であることを発
見すると、CPCプログラムは、問題の経路上でSES
にメッセージ経路識別(IMP)コマンドを発行して、
そのメッセージ経路の活動状態または非活動状態を確認
する。XIコマンドまたはLNコマンドの配布プロトコ
ルは、目標CPCへの経路グループ内のすべての活動状
態の経路を介した配布を試みることを必要とするので、
CPCプログラムは、SESに関連するローカル・キャ
ッシュ・ベクトルとリスト通知ベクトルのコヒーレンシ
を信頼できるようになるために、SESへの健全な経路
を1つ見つけるだけでよい。
【0356】これをTMPSの同期式命令実行と結合す
ると、構造化外部記憶装置で維持される状態情報に関す
るローカルCPCベクトルのコヒーレンシを決定するた
めの、応答性のよい手段がもたらされる。
【0357】図18および図19に戻ると、このTLC
Eマクロは、ローカル・キャッシュ・ベクトル・エント
リがテスト時に有効であることを保証するために設けら
れたものである。図20の250に示すように、TLC
Eマクロを呼び出す前にロックが獲得され、その結果、
問い合わせようとするローカル・キャッシュ・ベクトル
・エントリによって表される直列化されたデータを修正
する新規コマンドが実行できなくなることを理解された
い。図18の150によって示される命令群では、TL
CE状態格納領域をテストして、それが有効であること
を確認している。有効である場合、151でTMPSを
実行して、TLCE状態格納領域内で識別されたメッセ
ージ経路が有効であるかどうかを調べる。TLCE状態
格納領域は、有効なメッセージ経路を準備しており、そ
の結果、有効なメッセージ経路が必要な時に、それを探
索する必要がないことを想起されたい。また、SES機
構16が、XIコマンド配布のために必ず健全なメッセ
ージ経路を探索することが基本的な前提であることを理
解されたい。したがって、健全な経路が1つ見つかった
場合、すべてのXIコマンドが配布済みであると想定す
ることができる。151でエラーが見つかった場合、こ
のルーチンは、152で図21のTLCEサービス・ル
ーチンに分岐して、健全な代替経路を見つける。
【0358】153でテストを行って、TIビットをテ
ストし、これによって、151のTMPSの後のメッセ
ージ経路の有効性をテストする。これを行うのは、TL
CE状態格納領域を無効にし、その後このマクロのLM
文とTMPS文の間の経路のメッセージ経路状態をクリ
アする、並行メッセージ経路回復を検出するためであ
る。したがって、この場合、TMPSは、TLCE状態
格納領域内のメッセージ経路が実際には有効でない時に
有効であったと指示するはずである。TIビットがセッ
トされている場合、155でTLCEサービス・ルーチ
ンに分岐して、健全な代替経路を見つける。
【0359】図19の156では、以前のテストによっ
てベクトルが有効化されているので、TVEによって所
望のビット・ベクトル・エントリをテストする。
【0360】158では、TLCEサービス域の準備済
み経路が不良であることをこのマクロが発見しているの
で、図21のTLCEサービス・ルーチンに分岐して、
有効な経路を見つける。
【0361】図21のTLCEサービス・ルーチンは、
1つの良好なメッセージ経路を見つけるためのルーチン
である。良好な経路を1つだけ見つければよい。160
で、TMPSを用いて各経路のESPラッチをテスト
し、162でその経路のTIビットをテストする。良好
な経路が見つかった場合、164でTVEを発行して、
所望のビット・ベクトル・エントリをテストする。良好
な経路が見つからない場合、このルーチンは、169で
そのベクトル・エントリがSES機構の状態情報に関し
て無効であることを示す応答コードを返す。この応答コ
ードは、167で無効状態に初期設定されている。良好
な経路が見つかったのであれば、TLCE状態格納領域
にそれを準備して、見つかったメッセージ経路が有効で
ある限り、このルーチンをもう一度走行しなくてもよい
ようにすることが望ましい。これは、米国特許出願第8
60647号"Recovery of Data Objects Used to Main
tainState Information for Shared Data at a Local C
omplex"に開示されているように、166でSESサポ
ート機構回復ルーチンをスケジュールすることによって
行われる。
【0362】本発明の好ましい実施例を示し、説明して
きたが、本発明は、本明細書に開示された最構造そのも
のだけに制限されるものではなく、添付の特許請求の範
囲に定義された本発明の範囲に含まれるすべての変更お
よび修正に対して権利が留保されることを理解された
い。
【図面の簡単な説明】
【図1】入出力システムおよびSES機構に接続された
複数のCPCを有する本発明のデータ処理システムのブ
ロック図である。
【図2】図1のシステムの一部分であり、SES機構の
プロセッサに接続された単一のCPCの複数の機構を示
す図である。
【図3】図1のシステムの別の部分であり、SES機構
と3つのCPCの中間メッセージ・プロセッサを示す図
である。
【図4】図1のシステムの別の部分であり、SES機構
内の複数の構造を示す図である。
【図5】図1のシステムの3段記憶階層を示す図であ
る。
【図6】図4に示した構造のリスト構造の1つを示す図
である。
【図7】ローカル・キャッシュ・トークンのフォーマッ
トを示す図である。
【図8】ローカル・キャッシュ・エントリ番号のフォー
マットを示す図である。
【図9】リスト通知トークンのフォーマットを示す図で
ある。
【図10】リスト通知エントリ番号のフォーマットを示
す図である。
【図11】ローカル・キャッシュ・トークン・テーブル
を示す図である。
【図12】ローカル・キャッシュ・トークン・テーブル
のエントリのフォーマットを示す図である。
【図13】リスト通知トークン・テーブルを示す図であ
る。
【図14】リスト通知トークン・テーブルのエントリの
フォーマットを示す図である。
【図15】リスト通知ベクトル・ポーリングの高水準論
理図である。
【図16】メッセージ経路活動化動作の高水準論理図で
ある。
【図17】メッセージ経路非活動化動作の高水準論理図
である。
【図18】図19と組み合わせると、ローカル・キャッ
シュ・エントリ・テスト(TLCE)マクロの高水準論
理図を形成する図である。
【図19】図18と組み合わせると、ローカル・キャッ
シュ・エントリ・テスト(TLCE)マクロの高水準論
理図を形成する図である。
【図20】共用データの状態情報を維持するのに使用さ
れるデータ・オブジェクトの保全性を確保するための、
図18および図19の手順を含む手順のブロック図であ
る。
【図21】図18と図19のマクロから呼び出されるT
LCEサービス・ルーチンの高水準論理図である。
【図22】図23と組み合わせると、SESサポート機
構回復ルーチンの高水準論理図を形成する図である。
【図23】図22と組み合わせると、SESサポート機
構回復ルーチンの高水準論理図を形成する図である。
【図24】メッセージ経路を回復するサブルーチンの高
水準論理図である。
【図25】SES機構の機構制御ブロックを示す図であ
る。
【図26】それぞれエラー状態保留中(ESP)ラッチ
を有する、I/Sチャネルのうちの2つを示す、図1の
システムの一部分のブロック図である。
【図27】図1のCPCとSES機構の間のリンクの進
行中の動作の間に、そのリンクのCPC側で行われる連
続的な処置を示す流れ図である。
【図28】リンクのSES側でのXIコマンドまたはL
Nコマンドの完了を示す流れ図である。
【図29】生成済みコマンドの開始の結果、直接コマン
ドがどのように完了するかを示す図である。
【符号の説明】
10 CPC 16 SES機構 20 I/Sチャネル 24 ローカル・キャッシュ 26 SESキャッシュ 31 メッセージ機構 32 入出力機構 33 SESサポート機構 35 メッセージ経路プロセッサ 36 中間メッセージ・プロセッサ 37 メッセージ・プロセッサ 40 DASD 43 メッセージ経路状態テーブル 45 キャッシュ構造 46 リスト構造 47 リスト構造 48 キャッシュ構造 70 リスト・セット 71 リスト・エントリ制御
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジェフリー・アラン・フレイ アメリカ合衆国12524、ニューヨーク州 フィッシュキル、グリーンヒル・ドライ ブ24エイ (72)発明者 オードリー・アン・ヘルフリッヒ アメリカ合衆国12603、ニューヨーク州 ポーキープシー、モネル・アベニュー6 (72)発明者 ジェフリー・マーク・ニック アメリカ合衆国12524、ニューヨーク州 フィッシュキル、プリマス・ロード43 (72)発明者 マイケル・ダスティン・スワンソン アメリカ合衆国12603、ニューヨーク州 ポーキープシー、カレッジ・アベニュー 95 (56)参考文献 特開 平2−156748(JP,A) 特開 平1−175342(JP,A)

Claims (13)

    (57)【特許請求の範囲】
  1. 【請求項1】データ処理用のプログラム内に配列された
    命令を実行するための中央処理機構と、前記中央処理機
    構に接続され、前記プログラムおよび共用データの状態
    情報を記憶するための主記憶装置とを有する、中央処理
    複合体(CPC)と、 共用データの状態情報を記憶するための構造化外部記憶
    機構と、 前記CPCと前記構造化外部記憶機構の間にあり、両者
    の間でデータ、メッセージおよび応答を受渡しするため
    の一以上のメッセージ経路と、 前記メッセージ経路に接続され、前記メッセージ経路内
    でのエラーを検出するためのエラー検出手段と、 前記エラー検出手段にあり、前記エラー検出手段がエラ
    ーの検出を停止した後に、前記エラー検出手段によって
    エラーが検出されたとの指示を記憶するためのエラー状
    態記憶手段と前記中央処理機構によって実行される命令
    であって、前記エラー状態記憶手段に対してエラー表示
    の有無を問い合わせ、前記問い合わせによって前記エラ
    ー状態記憶手段の内容が変更されることなく、前記メッ
    セージパスにおいてエラーが検出されたかどうかを判断
    する前記命令を有するプログラム手段とを備える、デー
    タ処理システム。
  2. 【請求項2】さらに、前記主記憶装置内にあり、前記主
    記憶装置と前記構造化外部記憶機構の間の接続経路を示
    す前記メッセージ経路の識別子を記憶する状態格納領域
    を備える、 請求項1のデータ処理システム。
  3. 【請求項3】前記状態格納領域内に記憶された前記メッ
    セージ経路の識別子が有効なメッセージ経路を指示する
    かどうかを判定するための状態格納領域テスト手段をさ
    らに備える、 請求項2のデータ処理システム。
  4. 【請求項4】前記状態格納領域テスト手段は、前記プロ
    グラム手段に含まれる命令が前記状態格納領域内で無効
    となっている識別子が示すメッセージ経路の回復がなさ
    れたかどうかを検出するために前記エラー状態記憶手段
    を問い合わせた後にのみ、前記状態格納領域に格納され
    たメッセージ経路の識別子が有効なメッセージ経路を示
    すかどうか判断する状態情報テスト手段を、 含む請求項3のデータ処理システム。
  5. 【請求項5】さらに、前記状態格納領域内の前記識別子
    が示す前記メッセージ経路が健全である時に、共用デー
    タの状態情報を取得するために前記状態情報テスト手段
    を使用可能にする手段を備える、請求項4のデータ処理
    システム。
  6. 【請求項6】さらに、前記状態格納領域内の前記識別子
    が示す前記メッセージ経路が健全な経路でないと前記状
    態格納領域テスト手段が判定することによって使用可能
    にされ、前記状態情報テスト手段によって要求された共
    用データに関する状態情報が無効であると見なすべきこ
    とを示すコードを返す無効状態リターン手段を備える、
    請求項4のデータ処理システム。
  7. 【請求項7】前記状態格納領域内に記憶された前記識別
    子が示すメッセージ経路が有効でないと前記プログラム
    手段の命令または前記状態格納領域テスト手段が判定す
    る時に使用可能にされ、健全なメッセージ経路を突き止
    めるために、前記複数のメッセージ経路のそれぞれをテ
    ストするためのメッセージ経路探索手段であって、最初
    の健全なメッセージ経路を突き止めた時に、それ以上の
    メッセージ経路のテストを停止させる手段を含む、メッ
    セージ経路探索手段を備える、 請求項3のデータ処理システム。
  8. 【請求項8】さらに、前記メッセージ経路探索手段によ
    って健全なメッセージ経路が見つかった時、共用データ
    の状態情報を取得するために前記状態情報テスト手段を
    使用可能にする手段を備える、請求項7のデータ処理シ
    ステム。
  9. 【請求項9】データ処理用のプログラム内に配列された
    命令を実行するための中央処理機構と、前記中央処理機
    構に接続され、前記プログラムおよび共用データの状態
    情報を記憶するための主記憶装置とを有する、中央処理
    複合体(CPC)と、 共用データの状態情報を記憶するための構造化外部記憶
    機構と、 第1端部が前記CPCに接続され、第2端部が前記構造
    化外部記憶機構に接続されそれぞれの第2端部で活動状
    態または非活動状態が識別される前記CPCと前記構造
    化外部記憶機構の間でデータ、メッセージおよび応答を
    受渡しするための1以上のメッセージ経路と、 前記メッセージ経路のそれぞれの第1端部に接続され
    た、前記メッセージ経路内でエラーが検出された時を示
    す指示を記憶するためのエラー状態記憶手段と、 前記構造化外部記憶機構内にあり、前記構造化外部記憶
    機構から前記主記憶装置へメッセージを送る際にエラー
    を検出するためのメッセージ・エラー検出手段と、 前記構造化外部記憶機構内にあり、前記メッセージ・エ
    ラー検出手段に接続され、前記メッセージ・エラー検出
    手段がエラーを検出する時に前記エラー状態記憶手段に
    連続信号を送るための信号送出手段と、 前記メッセージ経路の前記第1端部に接続され、前記エ
    ラー状態記憶手段の指示をセットする手段を有する、前
    記信号送出手段によってメッセージ経路上に送られた前
    記連続信号を検出するための第2エラー検出手段と、 前記構造化外部記憶機構内にあり、前記メッセージ・エ
    ラー検出手段によって使用可能にされ、メッセージが成
    功裡に完了するまであるいは前記経路をすべて試行し終
    えるまで、前記複数のメッセージ経路のうち活動状態と
    して識別される各メッセージ経路を介する前記メッセー
    ジの送出を開始する経路選択手段であって、前記メッセ
    ージが成功裡に送られなかった各経路に関して前記エラ
    ー状態記憶手段の指示をセットする経路選択手段とを備
    える、 データ処理システム。
  10. 【請求項10】前記複数の経路のうち、それを介して前
    記メッセージを前記構造化外部記憶機構から前記CPC
    へ送ることができないことが前記経路選択手段によって
    発見された各経路を、その第2端部で非活動状態として
    マークするための経路非活動化手段を含むことを特徴と
    する、請求項9のデータ処理システム。
  11. 【請求項11】さらに、前記構造化外部記憶機構内にあ
    り、前記メッセージ経路のうち非活動状態の経路を活動
    化するための活動化手段と、 前記経路選択手段内にあり、メッセージの送出中に前記
    メッセージ経路が活動化されないように前記メッセージ
    経路を直列化するため、前記経路選択手段の実行中に前
    記活動化手段を動作不能にするための直列化手段とを備
    える、 請求項10のデータ処理システム。
  12. 【請求項12】さらに、前記経路選択手段の前記完了の
    後に前記活動化手段を使用可能にするための非直列化手
    段を備える、請求項11のデータ処理システム。
  13. 【請求項13】さらに、前記CPCのうちの少なくとも
    1つに関する状態情報にアクセスするためのコマンドを
    前記構造化外部記憶機構に生成させる直接コマンドを前
    記中央処理機構から前記構造化外部記憶機構に送るため
    に、前記中央処理機構によって実行される命令を有する
    プログラム手段と、 前記経路選択手段内にあり、前記生成されたコマンドの
    送出を開始するためのメッセージ送出手段と、 前記生成されたコマンドが成功裡に完了しない場合でも
    前記直接コマンドを完了させるための第2完了手段とを
    備える、 請求項12のデータ処理システム。
JP5038929A 1992-03-30 1993-02-26 データ処理システム Expired - Lifetime JP2549237B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US860800 1992-03-30
US07/860,800 US5331673A (en) 1992-03-30 1992-03-30 Integrity of data objects used to maintain state information for shared data at a local complex

Publications (2)

Publication Number Publication Date
JPH0644092A JPH0644092A (ja) 1994-02-18
JP2549237B2 true JP2549237B2 (ja) 1996-10-30

Family

ID=25334046

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5038929A Expired - Lifetime JP2549237B2 (ja) 1992-03-30 1993-02-26 データ処理システム

Country Status (5)

Country Link
US (1) US5331673A (ja)
EP (1) EP0563621A3 (ja)
JP (1) JP2549237B2 (ja)
BR (1) BR9301142A (ja)
CA (1) CA2086692C (ja)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5509122A (en) * 1992-02-20 1996-04-16 International Business Machines Corporation Configurable, recoverable parallel bus
JP2566717B2 (ja) 1992-03-30 1996-12-25 インターナショナル・ビジネス・マシーンズ・コーポレイション 条件付きオペレーション提供装置及び方法
JP2685712B2 (ja) * 1994-03-30 1997-12-03 株式会社サンポウロック ハンドルロック
US5913032A (en) * 1994-04-04 1999-06-15 Inprise Corporation System and methods for automatically distributing a particular shared data object through electronic mail
US5539875A (en) * 1994-12-30 1996-07-23 International Business Machines Corporation Error windowing for storage subsystem recovery
US6453325B1 (en) 1995-05-24 2002-09-17 International Business Machines Corporation Method and means for backup and restoration of a database system linked to a system for filing data
US6029160A (en) * 1995-05-24 2000-02-22 International Business Machines Corporation Method and means for linking a database system with a system for filing data
US5860137A (en) * 1995-07-21 1999-01-12 Emc Corporation Dynamic load balancing
US5887135A (en) * 1996-08-15 1999-03-23 International Business Machines Corporation System and method for management of object transitions in an external storage facility accessed by one or more processors
US5892909A (en) * 1996-09-27 1999-04-06 Diffusion, Inc. Intranet-based system with methods for co-active delivery of information to multiple users
US6070254A (en) * 1997-10-17 2000-05-30 International Business Machines Corporation Advanced method for checking the integrity of node-based file systems
US6154816A (en) * 1997-10-24 2000-11-28 Compaq Computer Corp. Low occupancy protocol for managing concurrent transactions with dependencies
US5941972A (en) 1997-12-31 1999-08-24 Crossroads Systems, Inc. Storage router and method for providing virtual local storage
USRE42761E1 (en) 1997-12-31 2011-09-27 Crossroads Systems, Inc. Storage router and method for providing virtual local storage
US6237000B1 (en) 1998-05-01 2001-05-22 International Business Machines Corporation Method and apparatus for previewing the results of a data structure allocation
US7013305B2 (en) * 2001-10-01 2006-03-14 International Business Machines Corporation Managing the state of coupling facility structures, detecting by one or more systems coupled to the coupling facility, the suspended state of the duplexed command, detecting being independent of message exchange
WO2001003037A2 (en) * 1999-07-01 2001-01-11 Microsoft Corporation Workflow method and system
US6286089B1 (en) * 1999-08-24 2001-09-04 Amdahl Corporation Coupling facility using dynamic address translation
US6643717B1 (en) 1999-11-10 2003-11-04 Digi International Inc. Flow control
US6629164B1 (en) 1999-11-10 2003-09-30 Digi International Inc. Character counter and match registers in a serial interface
US6886063B1 (en) 1999-11-10 2005-04-26 Digi International, Inc. Systems, devices, structures, and methods to share resources among entities
US6996612B1 (en) 1999-12-30 2006-02-07 Vignette Corporation Method of providing information related to activity of a user and a data processing system program product
US7155506B1 (en) 2000-06-02 2006-12-26 Vignette Corporation Method for continous, frame-specific click-stream recording
US7251687B1 (en) 2000-06-02 2007-07-31 Vignette Corporation Method for click-stream analysis using web directory reverse categorization
US6865574B1 (en) 2000-06-02 2005-03-08 Vignette Corporation Method for client-side personalization
US7860969B2 (en) * 2000-06-02 2010-12-28 Vignette Software Llc Method for continuous, frame-specific click-stream recording
US7278105B1 (en) 2000-08-21 2007-10-02 Vignette Corporation Visualization and analysis of user clickpaths
US7660869B1 (en) 2000-08-21 2010-02-09 Vignette Software, LLC Network real estate analysis
US6862595B1 (en) 2000-10-02 2005-03-01 International Business Machines Corporation Method and apparatus for implementing a shared message queue using a list structure
US6963882B1 (en) 2000-10-02 2005-11-08 International Business Machines Corporation Method and apparatus for processing a list structure
US7194506B1 (en) 2000-12-21 2007-03-20 Vignette Corporation Method and system for cache management of locale-sensitive content
US6850941B1 (en) 2000-12-21 2005-02-01 Vignette Corporation Method and system for native-byte form handling
US6892377B1 (en) 2000-12-21 2005-05-10 Vignette Corporation Method and system for platform-independent file system interaction
US20020165755A1 (en) * 2001-03-29 2002-11-07 Kitts Brendan J. Method of predicting behavior of a customer at a future date and a data processing system readable medium
US7197474B1 (en) 2001-07-12 2007-03-27 Vignette Corporation Method of modeling product demand subject to a large number of interactions
US8307045B1 (en) 2001-08-22 2012-11-06 Open Text S.A. System and method for creating target-specific data conversion templates using a master style template
US6910158B2 (en) * 2001-10-01 2005-06-21 International Business Machines Corporation Test tool and methods for facilitating testing of duplexed computer functions
US6954817B2 (en) * 2001-10-01 2005-10-11 International Business Machines Corporation Providing at least one peer connection between a plurality of coupling facilities to couple the plurality of coupling facilities
US7099935B2 (en) * 2001-10-01 2006-08-29 International Business Machines Corporation Dynamically determining whether to process requests synchronously or asynchronously
US6813726B2 (en) 2001-10-01 2004-11-02 International Business Machines Corporation Restarting a coupling facility command using a token from another coupling facility command
US6944787B2 (en) * 2001-10-01 2005-09-13 International Business Machines Corporation System-managed duplexing of coupling facility structures
US6859866B2 (en) * 2001-10-01 2005-02-22 International Business Machines Corporation Synchronizing processing of commands invoked against duplexed coupling facility structures
GB0207969D0 (en) 2002-04-08 2002-05-15 Ibm Data processing arrangement and method
GB0207967D0 (en) * 2002-04-08 2002-05-15 Ibm Data processing arrangement and method
US7702786B2 (en) 2002-08-09 2010-04-20 International Business Machines Corporation Taking a resource offline in a storage network
US7120746B2 (en) * 2002-09-09 2006-10-10 International Business Machines Corporation Technique for data transfer
US7496607B2 (en) * 2003-08-29 2009-02-24 Yahoo! Inc. Method and system for maintaining synchronization between a local data cache and a data store
US7788681B1 (en) 2003-09-16 2010-08-31 Vignette Software, LLC System and method for incorporating web services in a web site
US20120054779A1 (en) * 2010-08-30 2012-03-01 Lsi Corporation Platform independent thin reclamation for systems with a storage usage map application programming interface
US9985751B2 (en) * 2014-03-04 2018-05-29 Nec Corporation Node device used in disruption/delay/disconnect tolerant network and communication method

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4207609A (en) * 1978-05-08 1980-06-10 International Business Machines Corporation Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system
US4400773A (en) * 1980-12-31 1983-08-23 International Business Machines Corp. Independent handling of I/O interrupt requests and associated status information transfers
US4455605A (en) * 1981-07-23 1984-06-19 International Business Machines Corporation Method for establishing variable path group associations and affiliations between "non-static" MP systems and shared devices
JPH0680492B2 (ja) * 1984-09-29 1994-10-12 株式会社日立製作所 エラー回復方法
US5151989A (en) * 1987-02-13 1992-09-29 International Business Machines Corporation Directory cache management in a distributed data processing system
US4833601A (en) * 1987-05-28 1989-05-23 Bull Hn Information Systems Inc. Cache resiliency in processing a variety of address faults
JPH01175342A (ja) * 1987-12-28 1989-07-11 Nec Corp コンピュータネットワークシステム
JPH02156748A (ja) * 1988-12-09 1990-06-15 Nec Corp コンピュータ相互間の通信方式
US5197069A (en) * 1989-10-20 1993-03-23 International Business Machines Corp. Method and system for detecting and recovering from switching errors

Also Published As

Publication number Publication date
EP0563621A2 (en) 1993-10-06
CA2086692C (en) 1996-12-31
US5331673A (en) 1994-07-19
JPH0644092A (ja) 1994-02-18
CA2086692A1 (en) 1993-10-01
BR9301142A (pt) 1993-10-05
EP0563621A3 (en) 1995-11-15

Similar Documents

Publication Publication Date Title
JP2549237B2 (ja) データ処理システム
JP2572518B2 (ja) 共用データの状態情報をローカル複合体で維持するのに使用されるデータ・オブジェクトの管理
US5394542A (en) Clearing data objects used to maintain state information for shared data at a local complex when at least one message path to the local complex cannot be recovered
US5317739A (en) Method and apparatus for coupling data processing systems
JP2512678B2 (ja) デ―タ処理システム
JP2532194B2 (ja) プロセッサと結合機能間に対するメッセ―ジ経路指定機能を有するデ―タ処理システム
US5664155A (en) Dynamically assigning a dump space in a shared data facility to receive dumping information to be captured
US5535405A (en) Microsequencer bus controller system
KR100233207B1 (ko) 캐시 플러시 장치 및 이 장치를 구비한 계산기 시스템
US5604863A (en) Method for coordinating executing programs in a data processing system
US7130868B2 (en) File system for creating switched logical I/O paths for fault recovery
US5649092A (en) Fault tolerant apparatus and method for maintaining one or more queues that are shared by multiple processors
US6944726B2 (en) Distributed background track processing
WO2001086890A2 (en) A method and system for decreasing routing latency for switching platforms with variable configuration
JPH0227441A (ja) コンピュータ・システム
WO2015148100A1 (en) Memory corruption detection support for distributed shared memory applications
US20040122973A1 (en) System and method for programming hyper transport routing tables on multiprocessor systems
US5740359A (en) Program execution system having a plurality of program versions
JP2000105722A (ja) デ―タ構造割当ての結果をプレビュ―する方法及び装置
JP2004062377A (ja) 共有キャッシュメモリ障害処理方式
KR20180065881A (ko) 멀티 코어 프로세서 및 그것의 캐시 관리 방법
JPH05216854A (ja) ホストコンピュータ装置
JPH09282291A (ja) 共通記憶装置のロックフラグ解除方式および方法