(57)【特許請求の範囲】
【請求項１】
主記憶装置に対して複数のプロセッサを密結合で接続し、このプロセッサ群をあらかじめ複数の論理区画に分割し、前記論理区画ごとにオペレーティングシステムを割り付けて運用する論理分割システムにおいて、前記主記憶装置のトランザクションを受信するステップと、該トランザクションの１つとして定義される障害停止命令中に設けた停止対象区画番号とプロセッサごとにあらかじめ設定された自らが所属する区画番号とを比較するステップと、前記主記憶装置のトランザクションが異区画で正常動作しているプロセッサに影響を与えないように、該主記憶装置のトランザクションを複数のステージに分割し、同一のハードウェア資源を共用可能なもの同士を一つのバスサイクルとして結合して繰り返すステップと、前記比較結果が一致した場合に前記一つのバスサイクルを実行中であればこれを全うしてから前記区画番号により示されるプロセッサを障害・停止状態に遷移させるステップとによりなることを特徴とする論理分割システムの制御方法。
【請求項２】
前記障害停止命令中に設けた停止対象とすべき区画番号に全区画指定に対応する同報区画番号を定義するステップと、前記同報区画番号が設定された障害停止命令を受信した場合に、前記複数のプロセッサはその時点のバスサイクルに依らず、即座に各々を障害停止状態に遷移させるステップからなることを特徴とする、請求項１記載の論理分割システムの制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置の障害処理に関し、特に密結合接続における論理分割システムの制御方法に関する。
【０００２】
【従来の技術】
情報処理装置が障害となった場合、障害の程度によってシステム運用を停止させる必要が発生する。システム運用を停止する要因は大別すると２つあり、１つはソフトウェア的な要因によるもので、多くの場合特定のプロセスやジョブで異常を検出し、このプロセスまたはジョブがシステムコアとなる処理であった場合にシステム停止を要するものである。このような障害はハードウェア故障によるものではないので、障害要因をソフトウェア的な観点から見直し、システムの再立ち上げを実行することによって救済される。
【０００３】
もう１つの障害はハードウェア的な要因によるもので、システムコアとなるプロセッサ等の故障によって発生し、故障発生装置の修理を行うか、障害部位の縮退を行った後にシステムの再立ち上げを実施する。
【０００４】
汎用コンピュータのような大規模情報処理装置では、障害発生から障害内容の解析、被疑部品の特定を容易に行うために、上述のソフトウェア／ハードウェア障害の対策としてログ機能を具備している。ハードウェア障害対策のログ機能にはレジスタのダンプ機能や実行トレース機能等が存在する。
【０００５】
このようなハードウェアログ採取は障害発生時点からなるべく早急に行われる方が望ましい。その理由は前記レジスタダンプ情報やトレース情報の内容が障害発生時点から時間が経過すればするほど状態の変化が進行し、ログとしての確度が失われるためである。最も簡単かつ効果的に情報処理装置を障害・停止状態に遷移させるための方法は、ログ採取対象とするプロセッサ間をハードウェア・ワイヤードの障害・停止用信号線で結線し、何れかのプロセッサで異常を検出した際に本信号線を活性化させる事によって、情報処理装置全体を障害・停止状態に移行させるものである。
【０００６】
近年のマルチプロセッサ技術の発展により、密結合装置においても主記憶に対して数十台〜数百台のプロセッサを接続してシステム運用を行う情報処理装置が登場するに至った。この種の情報処理装置では、業務の処理量に応じて必要な数ごとにプロセッサ群を分割し、このプロセッサ群ごとに１つのオペレーティングシステムを稼働させる論理分割システムが採用されている。論理分割はＩＢＭ（インターナショナル・ビジネス・マシン）社の商標であるＰＲ／ＳＭが著名である。
【０００７】
論理分割システムにおいて、単一の障害・停止用信号線でプロセッサ間を結線した場合、障害の程度によっては本来閉塞する必要のない、健全運用されている論理区画まで閉塞してしまう。そのため、通常論理分割システムで耐故障性能を向上させる場合には、複数の情報処理装置をホットスタンバイ構成とするように構成し、運用系全体に障害が波及した場合でも待機系でシステム運用を継続する様にしている。
しかし情報技術の普及と共にコンピュータで扱う業務も多様化し、単一情報処理装置で構成した小規模システムにおいても複数のオペレーティングシステムを稼働させたいというニーズは増加している。またその一方で２４時間運転を初めとする基幹業務サーバとしてのコンピュータの信頼性向上も急務であり、こうした意味でも単にホットスタンバイ構成にしただけの信頼性向上ではなく、情報処理装置単体としての信頼性向上技術が重要視されている。
図７は、従来技術によるバス制御部の詳細構成を表したブロック図である。
アドレスデータレジスタ２０２は、プロセッサ間バス１００中のアドレスデータバス１０１と接続され、他プロセッサ群および主記憶装置４００との間でデータの交換を行う。コマンドレジスタ２０３は、プロセッサ間バス１００中のアドレスデータバス１０１と接続され、他プロセッサおよび主記憶装置４００との間でデータの交換を行う際の主記憶トランザクションの属性を格納する。コマンドデコーダ２０４は、コマンドレジスタ２０３およびアドレスデータレジスタ２０２の一部のビットフィールドと接続され、主記憶トランザクションをデコードし、リード命令／ライト命令やその他の制御命令によるバス制御装置の各種動作を指示する。ロード／ストア制御回路２０６は、演算や入出力を行うプロセッサの他の機能部とプロセッサアドレスデータ信号線２０８で接続され、プロセッサが使用する命令やデータのプリフェッチ制御、読み出し／書き込みの順序制御、キャッシュ制御等を行う。割り込み制御回路２０５は、プロセッサ間バス１００中の障害・停止信号線１０２を介して他プロセッサおよび主記憶装置４００と接続され、自プロセッサが障害を検出した時には障害・停止信号線１０２を活性化する。また他プロセッサで障害が発生した時には、障害・停止信号線１０２の活性化を検出することにより、自プロセッサを障害・停止状態に移行させる機能を備える。バス制御部およびプロセッサの他の機能部は、停止指示信号線２０７が割り込み制御回路２０５によって活性化されることにより機能を停止する。
【０００８】
【発明が解決しようとする課題】
上述の通り、論理分割下では各論理区画の障害はなるべく他区画に波及しない方が望ましい。しかしながら、障害・停止用信号線で結線する方法を論理分割システムに適用すると、最大区画数分の障害・停止用信号線が必要となる。近年ＬＳＩの高集積化により、ＬＳＩ内に取り込めるゲート量は加速度的に増大してはいる。しかしながらＬＳＩと基板間、あるいはプロセッサとプロセッサを結ぶ信号線数は、物理的な実装制約からＬＳＩの論理増加に付いていけないのが実状である。この点からも障害・停止用信号線の様な通常論理に関係のない信号線数は削減する必要がある。
【０００９】
本発明の目的は、主記憶装置に対して複数のプロセッサを密結合で接続し、このプロセッサ群を予め複数の論理区画に分割し、前記の論理区画ごとにオペレーティングシステムを割り付けて運用する論理分割システムにおいて、障害発生時に特定の論理区画のみを選択的に障害・停止状態に遷移させるための制御を、専用の信号線を使用することなく実現することにある。
【００１０】
【課題を解決するための手段】
本発明の論理分割システムの制御方法は、主記憶装置に対して複数のプロセッサを密結合で接続し、このプロセッサ群をあらかじめ複数の論理区画に分割し、前記論理区画ごとにオペレーティングシステムを割り付けて運用する論理分割システムにおいて、前記主記憶装置のトランザクションを受信するステップと、該トランザクションの１つとして定義される障害停止命令中に設けた停止対象区画番号とプロセッサごとにあらかじめ設定された自らが所属する区画番号とを比較するステップと、前記主記憶装置のトランザクションが異区画で正常動作しているプロセッサに影響を与えないよう、該主記憶装置のトランザクションを複数のステージに分割し、同一のハードウェア資源を共用可能なもの同士を一つのバスサイクルとして結合して繰り返すステップと、前記比較結果が一致した場合に前記一つのバスサイクルを実行中であればこれを全うしてから前記区画番号により示されるプロセッサを障害・停止状態に遷移させるステップとからなることを特徴としている。
【００１１】
さらに本発明の論理分割システムの制御方法は、前記障害停止命令中に設けた停止対象とすべき区画番号に全区画指定に対応する同報区画番号を定義するステップと、前記同報区画番号が設定された障害停止命令を受信した場合に、前記複数のプロセッサはその時点のバスサイクルに依らず、即座に各々を障害停止状態に遷移させるステップからなることを特徴としている。
【００１２】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００１３】
図１に示すように本発明は、演算プロセッサ２００〜２４０および入出力プロセッサ３００〜３２０が、プロセッサ間バス１００を介して主記憶装置４００と密結合で相互に接続されている。
【００１４】
演算プロセッサ２００、２１０、２２０および入出力プロセッサ３００は区画１という一つのプロセッサ群を構成し、これに対して１つのオペレーティングシステムを運用する。また、演算プロセッサ２３０と入出力プロセッサ３１０で１つのプロセッサ群を構成し、これを区画２として区画１とは別のオペレーティングシステムを運用する。同様に、演算プロセッサ２４０と入出力プロセッサ３２０で１つのプロセッサ群を構成し、この区画３にも別のオペレーティングシステムを運用する。主記憶装置４００は情報処理装置内の全ての演算プロセッサ及び入出力プロセッサから参照される区画共有装置である。
【００１５】
次に図２を用いて、演算プロセッサ２００〜２４０や入出力プロセッサ３００〜３２０に内蔵されるバス制御部の詳細構成を説明する。なお、従来技術と同様の処理を行う部分については説明を省略する。
【００１６】
区画番号格納レジスタ２０１は、演算プロセッサ２００〜２４０および入出力プロセッサ３００〜３２０が所属する区画番号を保持するレジスタである。コマンドデコーダ２０４はコマンドレジスタ２０３およびアドレスデータレジスタ２０２の一部のビットフィールドと接続され、主記憶トランザクションをデコードしリード命令／ライト命令やその他の制御命令によるバス制御装置の各種動作を指示する。
ロード／ストア制御回路２０６は演算や入出力を行うプロセッサの他の機能部とプロセッサアドレスデータ信号線２０８で接続され、プロセッサが使用する命令やデータのプリフェッチ制御、読み出し／書き込みの順序制御、キャッシュ制御等を行う。割り込み制御回路２０５はコマンドデコーダ２０４からの指示で、自プロセッサを障害・停止状態に移行させるための制御を行う。
【００１７】
以下演算プロセッサ２１０で障害を検出し、他の演算プロセッサ２００および２２０〜２４０と入出力プロセッサ３００〜３２０と主記憶装置４００を障害・停止状態とする場合の動作を例に挙げて説明する。
【００１８】
論理分割方式を使用しない情報処理装置の場合、最も簡単な方法で情報処理装置全体を障害・停止状態に移行させるためには障害・停止信号線１０２を使用する。
【００１９】
従来技術においては、障害を検出した演算プロセッサ２１０の割り込み制御回路２０５が障害・停止信号線１０２を使用して情報処理装置の緊急停止を指示し、他のプロセッサおよび主記憶装置の割り込み制御回路２０５が前記の信号を受信し、停止指示信号線２０７を使用してプロセッサ機能を停止させるというのが基本的動作であった。
【００２０】
しかし論理分割方式でこのような制御を行った場合、例えば図１の演算プロセッサ２００〜２２０と入出力プロセッサ３００で構成する区画１において演算プロセッサ２１０の障害波及範囲が区画１内に閉じている場合は、本来停止させる必要のない区画２の演算プロセッサ２３０および入出力プロセッサ３１０、区画３の演算プロセッサ２４０および入出力プロセッサ３２０までも停止させてしまうことになる。
【００２１】
そこで本発明では、障害・停止信号線１０２に替わって区画番号格納レジスタ２０１を設けている。プロセッサ２１０で障害が発生し、システムとして区画１上で動作しているオペレーティングシステムを閉塞する必要が発生した場合に、プロセッサ２１０はプロセッサ間バス１００を介して、自プロセッサが所属する区画１の障害・停止命令を発行する。
障害・停止命令はメモリリード命令やメモリライト命令等の主記憶トランザクションの１つとして定義され、アドレスデータバス１０１を介して転送される。障害・停止命令は引数として区画番号をアドレス／データ部のビットフィールドの一部に持つ。区画１を閉塞する必要があるプロセッサ２１０は、コマンドレジスタ２０３に障害・停止命令に対応するコマンドコードを、アドレスデータレジスタ２０２に区画１に対応する区画番号をそれぞれ設定し、アドレスデータバス１０１にデータを送出することによって区画１配下の全プロセッサに障害・停止命令を通知する。プロセッサ間バス１００に送出されたデータは情報処理装置内の全てのプロセッサと主記憶装置４００にも伝搬する。
【００２２】
同一区画１に所属する演算プロセッサ２００では、バス制御部に内蔵するコマンドレジスタ２０３によってデータを取り込みコマンドデコーダ２０４に転送する。コマンドデコーダ２０４はデコードした主記憶トランザクションが障害・停止命令であった場合は、アドレスデータレジスタ２０２に取り込まれているアドレスデータバス１０１の一部のビットフィールドデータと、区画番号格納レジスタ２０１に予め保持されている、自プロセッサの所属する区画番号とを比較し、一致する場合には割り込み制御回路２０５に指示して、停止指示信号線２０７によってプロセッサの機能を停止させる。
【００２３】
この時注目すべきは、演算プロセッサ２００のバス制御部以外の機能が障害・停止状態となり動作を停止しても、バス制御部自身はすぐには機能停止しない点である。演算プロセッサ２００のバス制御部は、システム上で正常に運用されている他の区画２および区画３に影響を与えない様に、プロセッサ間バス１００へのアクセスをバス動作が正常な状態で終了するまで動作させた後、初めて障害・停止状態となる。具体的には、ロード／ストア制御回路２０６が他区画にも影響のある書き込み動作を完了していなかった場合には書き込み動作を継続させる動作や、プロセッサに内蔵するキャッシュがストアイン方式（ライトバック方式とも言う）である様な場合には、主記憶のデータの写しをキャッシュ内に保持している可能性があるので、キャッシュ内容の主記憶への掃き出し動作を行う動作等がこれに該当する。
【００２４】
一方、演算プロセッサ２１０から発行された障害・停止命令は、プロセッサ間バス１００を介して区画２や区画３に属するプロセッサにも通知される。しかしこれらのプロセッサでは、区画番号格納レジスタ２０１に設定されている区画番号と、コマンドデコーダ２０４がデコードした障害・停止命令で示されるアドレスデータレジスタ２０２中の区画番号が不一致となるので、本障害・停止命令に対しては何も機能せずに以後の動作を継続する。
【００２５】
以上に示す動作によって、区画１に属する演算プロセッサ２００、２１０、２２０と入出力プロセッサ３００は、区画２に属する演算プロセッサ２３０と入出力プロセッサ３１０、および区画３に属する演算プロセッサ２４０と入出力プロセッサ３２０の動作に擾乱を与えることなく、選択的に区画１のみを障害・停止状態とすることが可能となる。
【００２６】
また本発明は、情報処理装置内の全てのプロセッサを包括して障害・停止状態とするための同報通信機能を備えている。
【００２７】
これは前記の障害・停止命令中の引数で指定されるアドレス／データ部の論理区画番号を表すビットフィールドの値として全区画に対応する同報区画番号を定義し、各プロセッサが同報区画番号を設定された障害・停止命令を受信した場合に、プロセッサ間バス１００の動作状態に関係なく自プロセッサを即座に障害・停止状態にすべく緊急停止させることを特徴とする。
【００２８】
前記の一区画に限定した障害・停止状態への遷移手段との違いは、各プロセッサに内蔵するバス制御部のコマンドデコーダ２０４で障害・停止命令をデコードし、アドレスデータレジスタ２０２に取り込んだアドレスデータバス１０１のデータが全区画に対応する同報区画番号であった場合は、論理区画番号格納レジスタ２０１の値の如何に拘わらす、割り込み制御回路２０５に指示して停止指示信号線２０７によってプロセッサの停止を指示した後、バス制御部自身も以後のバス制御動作を停止する点にある。具体的には、ロード／ストア制御回路２０６の動作をその時点で停止し、読み込み途中あるいは書き込み途中のデータがロード／ストア制御回路２０６内に残った状態でも強制停止するという動作がこれに当たる。
【００２９】
同報区画番号を定義しバス制御部自身も緊急停止させるのは、障害が情報処理装置全体に関わる問題の場合、バス制御部自身にも障害が存在する可能性があるためである。
【００３０】
図２中のバス制御部は、主記憶トランザクションとして図３に示す４つのコマンドコードを使用するものとする。即ちメモリリード命令（コマンドコード０）、メモリライト命令（コマンドコード１）、ロック命令（コマンドコード２）、障害・停止命令（コマンドコード３）である。メモリライト命令は、演算プロセッサ２００〜２４０および入出力プロセッサ３００〜３２０が主記憶装置４００に対してデータを書き込む場合に使用する命令である。メモリリード命令は、演算プロセッサ２００〜２４０および入出力プロセッサ３００〜３２０に対して主記憶装置４００からデータを読み込む場合に使用する命令である。ロック命令は、演算プロセッサ２００〜２４０間で排他制御が必要な場合に使用する命令である。障害・停止命令は、本発明に関わる命令で演算プロセッサ２００〜２４０および入出力プロセッサ３００〜３２０が自プロセッサの所属する区画または情報処理装置全体を障害・停止状態とする場合に使用する命令である。
【００３１】
コマンドコードは４ビットで構成されており、アドレスデータバス１０１の内４本の信号線を使用する。コマンドコードはコマンドレジスタ２０３でアドレスデータバス１０１から取り出される。
【００３２】
図３において、主記憶トランザクションは、コマンドが要求される際にコマンドコードに対応する引数として、アドレスデータバス１０１の内３２本の信号線を使用する。この引数は、アドレスデータレジスタ２０２によってアドレスデータバス１０１から取り出される。引数に使用される３２本の信号線はメモリリード命令およびメモリライト命令ではアドレスの送出やデータの送受信にも兼用される。
【００３３】
全ての命令は、アドレスデータレジスタ２０２で示される引数のビット０〜７に命令の送信元プロセッサの識別番号が格納される。また、命令がロック命令の場合は引数のビット８〜１５はロック種別を表し、障害・停止命令の場合には引数のビット８〜１５は障害・停止状態とすべき区画番号が設定される。
【００３４】
障害・停止命令で使用される前記引数の区画番号設定フィールド（ビット８〜１５）に停止させるべき区画の区画番号が設定される。図１の構成の場合、その手順は、演算プロセッサ２００〜２２０と入出力プロセッサ３００のバス制御部に内蔵する区画番号格納レジスタ２０１には事前に区画１を表す０１（１６進数、以下Ｈ）が設定されている。同様に、区画２に属する演算プロセッサ２３０と入出力プロセッサ３１０の区画番号格納レジスタ２０１には、０２（Ｈ）が、区画３に属する演算プロセッサ２４０と入出力プロセッサ３２０の区画番号格納レジスタ２０１には０３（Ｈ）が設定されている。
【００３５】
何れかの区画で当該区画に所属するプロセッサが障害となり、同一区画に所属する他のプロセッサを障害・停止状態とする時には、コマンドレジスタ２０３に障害・停止命令のコマンドコードである３（Ｈ）を設定すると共に、アドレスデータレジスタ２０２のビット０〜７に自プロセッサ固有の識別番号を、ビット８〜１５に、区画番号格納レジスタ２０１に予め設定してある自己の所属する区画の値を設定した後、アドレスデータバス１０１に主記憶トランザクションを送信する。また各プロセッサはアドレスデータバス１０１を流れる主記憶トランザクションをコマンドレジスタ２０３で受信し、コマンドデコーダ２０４で命令をデコードした際に、障害・停止命令のコマンドコードである３（Ｈ）であった場合は、アドレスデータレジスタ２０２のビット８〜１５で与えられる停止対象とする区画番号と自プロセッサの区画番号設定レジスタ２０１の値を比較する。この両者が一致した場合に、障害・停止命令を受信したプロセッサは自分自身を障害・停止状態に移行させる。
【００３６】
一方、各区画から共通に使用される主記憶装置４００は、メモリリード命令とメモリライト命令のみをデコードする。したがって主記憶装置４００のバス制御部で障害・停止命令を受信しても、区画共有装置である主記憶装置４００は障害・停止状態とはならない。
【００３７】
次に本発明の障害・停止状態への移行処理について説明する。図４は本発明を説明するに当たって使用する一バスプロトコルのタイミング図である。
本バスプロトコルでは１つの主記憶トランザクションは８つのステージ（段階）で構成されている。即ちバスの獲得要求ステージＲＥＱ（ｒｅｑｕｅｓｔ）、バスの調停ステージＡＲＢ（ａｒｂｉｔｒａｔｉｏｎ）、バスの同期ステージＳＹＮ（ｓｙｎｃｒｏｎｉｚｅ）アドレス送出ステージＡＤＲ（ａｄｄｒｅｓｓ）、トランザクションの取消ステージＣＡＮ（ｃａｎｃｅｌ）、データの前半１／２の送出ステージＤＴ０（ｄａｔａ０）、データの後半１／２の送出ステージＤＴ１（ｄａｔａ１）、パリティエラー等の検出報告ステージＣＨＫ（ｃｈｅｃｋ）、の８つである。
【００３８】
これらのステージ同士は場合によって同一のハードウェア資源を共用しても動作上問題とならないので、１つの主記憶トランザクションの途中から次のトランザクションを実行することが可能である（パイプライン構造）。例えばステージ１のバスの獲得要求ＲＥＱでは図２のアドレスデータレジスタ２０２に引数が格納されるが、ステージ４のアドレス送出ＡＤＲではアドレスデータレジスタ２０２に主記憶アクセスのためのアドレス情報が格納される。また前記のアドレス情報に対して主記憶装置４００が書き込みまたは読み込みデータを準備するまでの間に時間差があるため、２ステージ後のステージ６データ送出ＤＴ０で書き込み／読み込みデータの前半１／２が、続くステージ７データ送出ＤＴ１で書き込み／読み込みデータの後半１／２がアドレスデータレジスタ２０２に格納される。
【００３９】
この時ステージ１〜４とステージ５〜８を重ね合わせて実行しても、アドレスデータレジスタ２０２に格納されるステージ１の引数、ステージ４のアドレス、ステージ６、７のデータは同一のタイミングでアドレスデータレジスタ２０２を使用することがないので、ステージ１〜４が終了した時点で次の主記憶トランザクションを実行し始めても支障はない。この様に重ね合わせが可能なステージをステート（状態）と呼び、ステートの繰り返しの単位をサイクルと呼ぶ。
【００４０】
図４に示すバスプロトコルの場合、ステートＡはステージ１のＲＥＱとステージ５のＣＡＮで、ステートＢはステージ２のＡＲＢとステージ６のＤＴ０で、ステートＣはステージ３のＳＹＮとステージ７のＤＴ１で、ステートＤはステージ４のＡＤＲとステージ８のＣＨＫで構成されており、ステートＡ〜Ｄの４ステートで１バスサイクルを形成している。
【００４１】
図５は区画１に所属する演算プロセッサ２１０で障害を検出し、同じ区画１に所属する演算プロセッサ２００が障害・停止状態へ移行するまでのバス動作を表したタイミング図である。
【００４２】
演算プロセッサ２００はトランザクション１に従って主記憶装置４００へのメモリライト命令を実行中であり。この時ステージ１〜４の間に演算プロセッサ２１０が障害を検出し、区画１を障害・停止状態に移行させる必要が生じたものとする。演算プロセッサ２１０はステージ５から始まるトランザクション２で障害・停止命令を実行する。
【００４３】
演算プロセッサ２１０はステージ５でバスの獲得要求を行う際に、アドレスデータバス１０１に対して障害・停止命令のコマンドコードと停止させるべき区画番号を送出する。同一区画に所属する演算プロセッサ２００では、プロセッサバスに送出された命令が障害・停止命令であることを認識し、自己の区画番号と比較した結果同一であるので、ステージ５のタイミングでプロセッサのバス制御部以外の部位を機能停止させる。この時、演算プロセッサ２００のバス制御部は、先行する主記憶トランザクション１のメモリライト命令を実行中であるので、トランザクションの実行途中でバス動作の停止を行うと続くステージ６、７の書き込みデータが不定となり主記憶のデータ化けが発生する。
【００４４】
本発明の第一実施例では、演算プロセッサ２００のバス動作を他の区画に影響のないところまで実行した後、障害・停止状態に移行する様に作用する。したがって、演算プロセッサ２００は主記憶トランザクション１をステージ８のＳＹＮまで実行し、初めてバス制御部を障害停止状態に移行させる。これにより主記憶装置４００内のデータはデータ化けを起こすことなく、正常な状態で保持される。
【００４５】
一方、区画２に所属する演算プロセッサ２３０は、ステージ９から始まる主記憶トランザクション３でメモリリード命令を実行しようとしている。演算プロセッサ２３０においてもステージ５の演算プロセッサ２１０が要求した障害・停止命令をデコードするが、こちらはアドレスデータレジスタ２０２に障害・停止命令の引数として格納された区画番号と、演算プロセッサ２３０の論理区画番号格納レジスタ２０１の値が不一致となるので、障害・停止状態とはならず、ステージ９から正常にメモリリード命令を実行する。
【００４６】
また、仮に演算プロセッサ２００がトランザクション１によって書き込みを行った主記憶アドレスから、演算プロセッサ２３０がデータを読み出したとしても、トランザクション１は正常に終了しているので、演算プロセッサ２３０の読み出しデータはデータ化けを起こすことなく、正常な状態で区画２の運用が継続される。
【００４７】
本発明の第二の実施形態では、障害・停止命令の引数として使用されるアドレスデータレジスタ２０２の区画番号設定フィールドに設定する区画番号として、情報処理装置内の全プロセッサを停止させることを目的とした同報区画番号を定義している。図３に示す例では、アドレスデータバスで受け渡される障害・停止命令の引数の内、ビット８〜１５にＦＦ（Ｈ）を設定した場合がこれに当たる。
【００４８】
障害・停止状態に至る動作を詳細に説明すると、何れかのプロセッサが障害となりその障害が情報処理装置全体に影響するものであった場合には、障害となったプロセッサはコマンドレジスタ２０３に障害・停止命令のコマンドコードである３（Ｈ）を設定すると共に、アドレスデータレジスタ２０２のビット０〜７に自プロセッサ固有の識別番号を、ビット８〜１５に同報通知を表す区画番号であるＦＦ（Ｈ）を設定した後、アドレスデータバス１０１に主記憶トランザクションを送信する。
【００４９】
一方、主記憶トランザクションを受信するプロセッサでは、アドレスデータバス１０１を流れる主記憶トランザクションをコマンドレジスタ２０３で受信し、コマンドデコーダ２０４で命令をデコードした際に障害・停止命令のコマンドコードである３（Ｈ）であった場合は、アドレスデータレジスタ２０２のビット８〜１５で与えられる対象区画番号を参照する。この時演算プロセッサ２００〜２４０と入出力プロセッサ３００〜３２０に内蔵する区画番号格納レジスタ２０１には、自己の所属する区画番号が事前にが設定されているが、アドレスデータレジスタ２０２で与えられた対象区画番号が同報通知を表すＦＦ（Ｈ）であった場合は、区画番号設定レジスタ２０１の値との比較を実施することなく自プロセッサを障害・停止状態に遷移させる。
【００５０】
次に本発明の第二の実施形態について、動作を詳細に説明する。
【００５１】
図６は区画１に所属する演算プロセッサ２１０で障害を検出し、障害状態を波及させる範囲が情報処理装置全体に及ぶと判断した場合の、障害・停止状態へ移行するまでのバス動作を表したタイミングチャートである。
【００５２】
演算プロセッサ２００はトランザクション１に従って主記憶装置４００へのメモリライト命令を実行中であるとする。この時ステージ１〜４の間に演算プロセッサ２１０が障害を検出し、情報処理装置全体を障害・停止状態に移行させる必要が生じたとする。演算プロセッサ２１０はステージ５から始まるトランザクション２で障害・停止命令を実行する。
【００５３】
演算プロセッサ２１０はステージ５でバスの獲得要求を行う際に、アドレスデータバス１０１に対して障害・停止命令のコマンドコードと全区画を表す同報区画番号を送出する。一方、演算プロセッサ２００では、アドレスデータバス１０１に送出された命令をステージ５でコマンドレジスタ２０３に取り込み、コマンドデコーダ２０４で命令をデコードすることによって障害・停止命令であることを認識する。この時、演算プロセッサ２００がアドレスデータレジスタ２０２から取り出した停止対象とすべき区画番号に同報区画番号が設定されている場合は、バス制御部を含めたプロセッサ全体を早急に障害・停止状態とすべく動作する。
【００５４】
図６を参照すると、演算プロセッサ２００はステージ５においてトランザクションの取消処理ＣＡＮを実行中であるが、同報区画番号による障害・停止命令を受信したので、続くステージ６データの前半１／２の送出処理ＤＴ０、ステージ７データの後半１／２の送出処理ＤＴ１、ステージ８パリティエラー等の検出報告処理ＣＨＫの３つを実行することなく、演算プロセッサ２００のバス制御を含めた機能を停止させる。
【００５５】
また、区画２に所属する演算プロセッサ２３０も、ステージ９から始まる主記憶トランザクション３においてメモリリード命令を実行しようとしているが、こちらもステージ５において演算プロセッサ２００と同様に障害・停止命令をデコードし、障害・停止命令の引数として与えられた区画番号が同報区画番号であるので、ステージ９からのメモリリード命令を実行することなく、演算プロセッサ２３０の機能を停止する。
【００５６】
本発明の第二の形態では、第一の形態より更に３ステージ早いタイミングで、バス制御部の状態情報が保持できることになる。
【００５７】
【発明の効果】
本発明の第１の効果は、論理分割方式の情報処理装置において、特定の論理区画のみを選択的に障害・停止状態に移行させるための機構を、専用の信号線を使用することなく少ないハードウェア信号線で実現できることにある。これは、障害・停止指示用の信号線に替わって主記憶トランザクションの１つとしてプロセッサの障害・停止命令を定義することによって、プロセッサが通常有するアドレスデータバスを使用して障害・停止状態を通知し、障害・停止指示用の信号線を削減が可能になることによる。
【００５８】
第２の効果は、情報処理装置全体に関わる障害が発生した場合に、障害発生時点からより早い時期に障害・停止状態へ移行可能とすることで、障害解析のために有用なレジスタ情報やトレース情報の破壊が進行することを防ぐことができることにある。これは、障害・停止命令の引数として特定の区画を障害・停止とさせるための区画番号と、全区画を障害・停止とさせるための同報区画番号を使い分けることによって、バス制御動作を停止させるタイミングを選択していることによる。
【図面の簡単な説明】
【図１】本発明の実施の形態を表す構成図である。
【図２】本発明の実施例を表すバス制御部の詳細ブロック図である。
【図３】本発明の実施例を表す主記憶トランザクションの命令体系図である。
【図４】本発明の実施例を表すバスプロトコルのタイミング図である。
【図５】本発明の第一実施形態のバス動作を表すタイミング図である。
【図６】本発明の第二実施形態のバス動作を表すタイミング図である。
【図７】従来技術の実施例を表すバス制御部の詳細ブロック図である。
【符号の説明】
１００    プロセッサ間バス
２００、２１０、２２０、２３０、２４０    演算プロセッサ
３００、３１０、３２０    入出力プロセッサ
４００    主記憶装置
１０１    アドレスデータバス
１０２    障害・停止信号線
２０１    論理区画番号格納レジスタ
２０２    アドレスデータレジスタ
２０３    コマンドレジスタ
２０４    コマンドデコーダ
２０５    割り込み制御回路
２０６    ロード／ストア制御回路
２０７    プロセッサ停止指示信号線
２０８    プロセッサアドレスデータ信号線
【図１】
0003746957.tif 000002
【図２】
0003746957.tif 000003
【図３】
0003746957.tif 000004
【図４】
0003746957.tif 000005
【図５】
0003746957.tif 000006
【図６】
0003746957.tif 000007
【図７】
0003746957.tif 000008