(57)【要約】【課題】  障害発生時におけるシステム全体の性能劣化を防止する。【解決手段】  データ転送が行われているときに転送元あるいは転送先となる各ノード１０〜１２のいずれかにて障害が発生したときには、障害が発生したノードからノード間クロスバスイッチ１４に対して、特定のデータパターンを有する障害コードが通知される。ノード間クロスバスイッチ１４は、ロック制御部１６が備えるロックテーブル１６１や入力制御部１５１〜１５３が備える転送先情報レジスタを参照することにより、障害が発生したノードとの間でデータ転送処理を実行している相手方のノードに対して、障害が発生したノードのノード番号を示した受信障害通知や送信障害通知を送出する。【選択図】  図１
2006178786.tif 000002
【特許請求の範囲】
【請求項１】
ノード間クロスバスイッチを介して複数のノードが接続されたマルチノードシステムであって、
前記複数のノードはそれぞれ、
ノード内で障害が発生したことを、前記ノード間クロスバスイッチに対して通知する障害通知手段と、
前記ノード間クロスバスイッチから障害通知を受信したときに、データ転送処理における転送相手との間で送受信される転送中のデータを破棄して次のデータ転送に備える障害制御手段と、
前記障害制御手段によって受信された障害通知に基づき、障害の発生箇所を特定する障害特定手段とを備え、
前記ノード間クロスバスイッチは、
前記複数のノードのそれぞれにおける前記障害通知手段からの通知を受けることにより、各ノードにて障害が発生したか否かを監視する障害監視手段と、
データ転送処理の実行中に前記障害監視手段により転送元あるいは転送先のノードにて障害が発生したとされたきに、転送元あるいは転送先のノードのうちで正常なノードに対して、障害が発生したノードのノード番号を示した障害通知を発行する通知発行手段とを備える、
ことを特徴とするマルチノードシステム。
【請求項２】
前記障害通知手段は、予め定められた特定のデータパターンを有する障害コードを前記ノード間クロスバスイッチに送ることにより、障害が発生したことを通知し、
前記通知発行手段は、
データ転送処理における転送元のノード番号が書き込まれるロックテーブルを含み、転送先のノードにて障害が発生したときに、前記ロックテーブルを参照することにより、転送元のノードに対して障害通知を発行する受信障害通知発行手段と、
データ転送処理における転送先のノード番号を格納する転送先情報レジスタを含み、転送元のノードにて障害が発生したときに、前記転送先情報レジスタを参照することにより、転送先のノードに対して障害通知を発行する送信障害通知発行手段とを備える、
ことを特徴とする請求項１に記載のマルチノードシステム。
【請求項３】
前記ノード間クロスバスイッチは、当該ノード間クロスバスイッチ内にて障害が発生したことを、前記複数のノードのそれぞれに対して通知するスイッチ障害通知手段を備える、
ことを特徴とする請求項１に記載のマルチノードシステム。
【請求項４】
前記スイッチ障害通知手段は、予め定められた特定のパターンを有する障害コードを前記複数のノードのそれぞれに送ることにより、障害が発生したことを通知する、
ことを特徴とする請求項３に記載のマルチノードシステム。
【請求項５】
ノード間クロスバスイッチを介して他のノード装置と接続されることによりマルチノードシステムを構成するノード装置であって、
当該ノード装置内にて障害が発生したことを、前記ノード間クロスバスイッチに対して通知する障害通知手段と、
前記ノード間クロスバスイッチから障害通知を受信したときに、データ転送処理における転送相手となる他のノード装置との間で送受信される転送中のデータを破棄して次のデータ転送に備える障害制御手段と、
前記障害制御手段によって受信された障害通知に基づき、障害の発生箇所を特定する障害特定手段とを備える、
ことを特徴とするノード装置。
【請求項６】
前記障害通知手段は、予め定められた特定のデータパターンを有する障害コードを前記ノード間クロスバスイッチに送ることにより、障害が発生したことを通知する、
ことを特徴とする請求項５に記載のノード装置。
【請求項７】
複数のノード装置と接続されてマルチノードシステムを構成するノード間クロスバスイッチであって、
前記複数のノード装置のそれぞれにおいて障害が発生したか否かを監視する障害監視手段と、
データ転送処理の実行中に前記障害監視手段により転送元あるいは転送先のノード装置にて障害が発生したとされたときに、転送元あるいは転送先のノード装置のうちで正常なノード装置に対して、障害が発生したノード装置のノード番号を示した障害通知を発行する通知発行手段と、
当該ノード間クロスバスイッチ内にて障害が発生したことを、前記複数のノード装置のそれぞれに対して通知するスイッチ障害通知手段とを備える、
ことを特徴とするノード間クロスバスイッチ。
【請求項８】
前記通知発行手段は、
データ転送処理における転送元のノード番号が書き込まれるロックテーブルを含み、転送先のノード装置にて障害が発生したときに、前記ロックテーブルを参照することにより、転送元のノード装置に対して障害通知を発行する受信障害通知発行手段と、
データ転送処理における転送先のノード番号を格納する転送先情報レジスタを含み、転送元のノード装置にて障害が発生したときに、前記転送先情報レジスタを参照することにより、転送先のノード装置に対して障害通知を発行する送信障害通知発行手段とを備える、
ことを特徴とする請求項７に記載のノード間クロスバスイッチ。
【請求項９】
ノード間クロスバスイッチを介して複数のノードが接続されたマルチノードシステムにおける障害処理方法であって、
前記複数のノードのいずれかで障害が発生したことを、障害が発生したノードから前記ノード間クロスバスイッチに対して通知し、
前記複数のノードのいずれかが前記ノード間クロスバスイッチから障害通知を受信したときに、当該障害通知を受信したノードが、データ転送処理における転送相手との間で送受信される転送中のデータを破棄して次のデータ転送に備え、
前記ノード間クロスバスイッチから障害通知を受信したノードが、当該障害通知に基づき、障害の発生箇所を特定し、
前記ノード間クロスバスイッチは、
前記複数のノードのそれぞれにおいて障害が発生したか否かを監視し、
データ転送処理の実行中に転送元あるいは転送先のノードにて障害が発生したときに、転送元あるいは転送先のノードのうちで正常なノードに対して、障害が発生したノードのノード番号を示した障害通知を発行する、
ことを特徴とする障害処理方法。
【請求項１０】
障害が発生したノードは、予め定められた特定のデータパターンを有する障害コードを前記ノード間クロスバスイッチに送ることにより、障害が発生したことを通知し、
前記ノード間クロスバスイッチは、
データ転送処理における転送元のノード番号をロックテーブルに書き込み、
データ転送処理における転送先のノード番号を転送先情報レジスタに格納し、
データ転送処理における転送先のノードにて障害が発生したときに、前記ロックテーブルを参照することにより、転送元のノードに対して障害通知を発行し、
データ転送処理における転送元のノードにて障害が発生したときに、前記転送先情報レジスタを参照することにより、転送先のノードに対して障害通知を発行する、
ことを特徴とする請求項９に記載の障害処理方法。
【請求項１１】
データ転送処理における転送先のノードにて障害が発生したときに、当該データ転送処理における転送元のノードが、前記ノード間クロスバスイッチに対して転送先のノードにおけるロックの解放を要求する、
ことを特徴とする請求項９または１０に記載の障害処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のノードがノード間クロスバスイッチを介して接続されたマルチノードシステムにおける障害発生時の処理方式に関する。
【背景技術】
【０００２】
複数のプロセッサと共有メモリを備えて構成される電子計算機としてのノードを、更に複数接続したマルチノードシステムが知られている。マルチノードシステムは、複数のノードを接続してシステム全体の性能向上を図ることにより、例えば科学技術計算の分野などにおいて高まる計算性能の向上要求に対応している。こうしたマルチノードシステムの規模が小さい場合には、１つのノードにて障害が発生したときに他のノードへの障害伝播の因果関係を容易に特定することができる。
【０００３】
例えば、従来のマルチノードシステムでは、転送相手となるノードに障害が発生したときに正常なノードの側で障害を検出するために、データ転送処理のタイムアウトを検出していた（例えば特許文献１）。この場合、正常なノードの側では、タイムアウトが検出されたときに転送相手のノードが障害で動作不能に陥ったと判断すると、実行中のデータ転送処理を廃棄するなどして次の処理に備えていた。
【特許文献１】特開平５−２６５９８５号公報
【０００４】
また、複数のデータ処理ユニットが接続されるネットワーク装置において、同時に接続可能なルートを所定の優先順位に従って決定することで、その決定されたルートを提供するようにスイッチ回路を制御するプライオリティ回路の動作を、異常検出回路によりモニタして、プライオリティ回路の動作の異常を検出したときには、接続要求情報を出力するデータ処理ユニットに対して異常報告信号を出力するものが提案されている（例えば特許文献２）。
【特許文献２】特開平６−１６８２１８号公報
【０００５】
さらに、複数の情報処理装置間のデータ通信を制御するデータ通信処理装置に障害が発生したときに、全ての情報処理装置に対して障害の発生を通知することで、情報処理装置からデータ通信装置に対してリセットを指示させて、障害の発生したデータ通信装置をリセットするものも提案されている（例えば特許文献３）。
【特許文献３】特開平８−４４５７９号公報
【０００６】
その他にも、データ転送処理において障害が検出ときに、転送先あるいは転送元のノードを変更してテストパタンを転送することにより、障害が発生した箇所を特定するものが提案されている（例えば特許文献４）。
【特許文献４】特開２０００−２４２５２０
【発明の開示】
【発明が解決しようとする課題】
【０００７】
計算性能の更なる向上要求により、マルチノードシステムでは、例えばノード数が著しく増大したり、クロスバスイッチが全ノード対全ノードのスイッチとなるなど、システム全体やＨＷ（ハードウェア）自体の大規模化が進んでいる。そして、ノード数が増大したマルチノードシステムでは、あるノードに障害が発生したときに、他のノードへの障害伝播の因果関係の特定が複雑になる。
【０００８】
そのため、特許文献１に記載の技術のようにデータ転送処理のタイムアウトが検出されたときであっても、タイムアウトが発生した原因が転送相手のノードに障害が発生したからなのか、ノード間に設けられたクロスバスイッチなどの転送経路にて障害が発生したからなのかといった、障害の発生箇所を、正常なノードの側から特定することが困難になる。
【０００９】
このように障害の発生箇所を特定することが困難になれば、マルチノードシステムにおいて障害の発生箇所を切り分けることが困難になり、障害復旧に長い時間を要することになる。
【００１０】
また、正常なノードの側では、データ転送処理のタイムアウトが検出されるまでは、次の処理に移行することができずに、処理が停止してしまう。そのため、データ転送処理のタイムアウトを検出することにより障害の発生を検出するようにした場合には、障害復旧に長い時間がかかり、マルチノードシステム全体の性能劣化の要因になるという問題があった。
【００１１】
特許文献２や特許文献３に記載の技術では、ネットワーク装置やデータ通信処理装置の内部で障害が検出された場合についてのみ対応する処理が実行可能になるだけであり、複数のデータ処理ユニットや複数の情報処理装置にて障害が発生したときに、ネットワーク装置やデータ通信処理装置にてその障害の発生が検出できない場合には、適切な処置を施すことができなかった。加えて、特許文献３に記載の技術では、全ての情報処理装置に対して障害の発生を通知した後、情報処理装置からデータ通信装置に対するリセットの指示を出力させていたことから、データ通信装置にて障害が発生したときに、情報処理装置からのリセットの指示が集中してデータ通信装置に入力されることがあり、データ通信装置に過大な処理負担が掛かり、復旧処理が遅延する可能性があった。
【００１２】
さらに、特許文献４に記載の技術によると、障害が検出されたときでもテストパタンを転送しなければ障害の発生箇所を特定することができない。そのため、復旧処理に要する時間を大幅に短縮することは困難であった。
【００１３】
この発明は上記実状に鑑みてなされたものであり、迅速な復旧処理を可能にするとともに、障害箇所を容易に特定可能として、障害発生時におけるシステム全体の性能劣化を防止することができるマルチノードシステムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記目的を達成するために、この発明の第１の観点に係るマルチノードシステムは、
ノード間クロスバスイッチを介して複数のノードが接続されたマルチノードシステムであって、
前記複数のノードはそれぞれ、
ノード内で障害が発生したことを、前記ノード間クロスバスイッチに対して通知する障害通知手段と、
前記ノード間クロスバスイッチから障害通知を受信したときに、データ転送処理における転送相手との間で送受信される転送中のデータを破棄して次のデータ転送に備える障害制御手段と、
前記障害制御手段によって受信された障害通知に基づき、障害の発生箇所を特定する障害特定手段とを備え、
前記ノード間クロスバスイッチは、
前記複数のノードのそれぞれにおける前記障害通知手段からの通知を受けることにより、各ノードにて障害が発生したか否かを監視する障害監視手段と、
データ転送処理の実行中に前記障害監視手段により転送元あるいは転送先のノードにて障害が発生したとされたきに、転送元あるいは転送先のノードのうちで正常なノードに対して、障害が発生したノードのノード番号を示した障害通知を発行する通知発行手段とを備える、
ことを特徴とする。
【００１５】
前記障害通知手段は、予め定められた特定のデータパターンを有する障害コードを前記ノード間クロスバスイッチに送ることにより、障害が発生したことを通知し、
前記通知発行手段は、
データ転送処理における転送元のノード番号が書き込まれるロックテーブルを含み、転送先のノードにて障害が発生したときに、前記ロックテーブルを参照することにより、転送元のノードに対して障害通知を発行する受信障害通知発行手段と、
データ転送処理における転送先のノード番号を格納する転送先情報レジスタを含み、転送元のノードにて障害が発生したときに、前記転送先情報レジスタを参照することにより、転送先のノードに対して障害通知を発行する送信障害通知発行手段とを備えることが望ましい。
【００１６】
前記ノード間クロスバスイッチは、当該ノード間クロスバスイッチ内にて障害が発生したことを、前記複数のノードのそれぞれに対して通知するスイッチ障害通知手段を備えていてもよい。
【００１７】
前記スイッチ障害通知手段は、予め定められた特定のパターンを有する障害コードを前記複数のノードのそれぞれに送ることにより、障害が発生したことを通知することが望ましい。
【００１８】
この発明の第２の観点に係るノード装置は、
ノード間クロスバスイッチを介して他のノード装置と接続されることによりマルチノードシステムを構成するノード装置であって、
当該ノード装置内にて障害が発生したことを、前記ノード間クロスバスイッチに対して通知する障害通知手段と、
前記ノード間クロスバスイッチから障害通知を受信したときに、データ転送処理における転送相手となる他のノード装置との間で送受信される転送中のデータを破棄して次のデータ転送に備える障害制御手段と、
前記障害制御手段によって受信された障害通知に基づき、障害の発生箇所を特定する障害特定手段とを備える、
ことを特徴とする。
【００１９】
前記障害通知手段は、予め定められた特定のデータパターンを有する障害コードを前記ノード間クロスバスイッチに送ることにより、障害が発生したことを通知することが望ましい。
【００２０】
この発明の第３の観点に係るノード間クロスバスイッチは、
複数のノード装置と接続されてマルチノードシステムを構成するノード間クロスバスイッチであって、
前記複数のノード装置のそれぞれにおいて障害が発生したか否かを監視する障害監視手段と、
データ転送処理の実行中に前記障害監視手段により転送元あるいは転送先のノード装置にて障害が発生したとされたときに、転送元あるいは転送先のノード装置のうちで正常なノード装置に対して、障害が発生したノード装置のノード番号を示した障害通知を発行する通知発行手段と、
当該ノード間クロスバスイッチ内にて障害が発生したことを、前記複数のノード装置のそれぞれに対して通知するスイッチ障害通知手段とを備える、
ことを特徴とする。
【００２１】
前記通知発行手段は、
データ転送処理における転送元のノード番号が書き込まれるロックテーブルを含み、転送先のノード装置にて障害が発生したときに、前記ロックテーブルを参照することにより、転送元のノード装置に対して障害通知を発行する受信障害通知発行手段と、
データ転送処理における転送先のノード番号を格納する転送先情報レジスタを含み、転送元のノード装置にて障害が発生したときに、前記転送先情報レジスタを参照することにより、転送先のノード装置に対して障害通知を発行する送信障害通知発行手段とを備えることが望ましい。
【００２２】
この発明の第４の観点に係る障害処理方法は、
ノード間クロスバスイッチを介して複数のノードが接続されたマルチノードシステムにおける障害処理方法であって、
前記複数のノードのいずれかで障害が発生したことを、障害が発生したノードから前記ノード間クロスバスイッチに対して通知し、
前記複数のノードのいずれかが前記ノード間クロスバスイッチから障害通知を受信したときに、当該障害通知を受信したノードが、データ転送処理における転送相手との間で送受信される転送中のデータを破棄して次のデータ転送に備え、
前記ノード間クロスバスイッチから障害通知を受信したノードが、当該障害通知に基づき、障害の発生箇所を特定し、
前記ノード間クロスバスイッチは、
前記複数のノードのそれぞれにおいて障害が発生したか否かを監視し、
データ転送処理の実行中に転送元あるいは転送先のノードにて障害が発生したときに、転送元あるいは転送先のノードのうちで正常なノードに対して、障害が発生したノードのノード番号を示した障害通知を発行する、
ことを特徴とする。
【００２３】
障害が発生したノードは、予め定められた特定のデータパターンを有する障害コードを前記ノード間クロスバスイッチに送ることにより、障害が発生したことを通知し、
前記ノード間クロスバスイッチは、
データ転送処理における転送元のノード番号をロックテーブルに書き込み、
データ転送処理における転送先のノード番号を転送先情報レジスタに格納し、
データ転送処理における転送先のノードにて障害が発生したときに、前記ロックテーブルを参照することにより、転送元のノードに対して障害通知を発行し、
データ転送処理における転送元のノードにて障害が発生したときに、前記転送先情報レジスタを参照することにより、転送先のノードに対して障害通知を発行することが望ましい。
【００２４】
データ転送処理における転送先のノードにて障害が発生したときに、当該データ転送処理における転送元のノードが、前記ノード間クロスバスイッチに対して転送先のノードにおけるロックの解放を要求することが望ましい。
【発明の効果】
【００２５】
本発明によれば、障害発生時に迅速な復旧処理が可能となり、障害の発生箇所も容易に特定することができる。これにより、障害が発生したときに、システム全体の性能劣化を防止することができる。
【発明を実施するための最良の形態】
【００２６】
以下に、図面を参照して、この発明の実施の形態に係るマルチノードシステムについて詳細に説明する。図１は、この発明の一実施例となるマルチノードシステム１の構成例を示している。図１に示すマルチノードシステム１は、それぞれが「Node 0」、「Node 1」、…、「Node n」として特定される複数のノード１０〜１２と、ノード間クロスバスイッチ（ＩＸＳ；Internode Crossbar Switch）１４とを備えている。また、図１には、データ転送のためにノード間クロスバスイッチ１４において出力側となるパス１９１〜１９３も示されている。
【００２７】
複数のノード１０〜１２はそれぞれ、対応するノード間制御部１０１〜１２１のいずれかを有している。各ノード間制御部１０１〜１２１は、各ノード１０〜１２とノード間クロスバスイッチ１４とを接続し、各ノード１０〜１２の間で行われるデータ転送処理における転送データの送受信や、回線交換方式によるノード間転送の制御を行う。
【００２８】
各ノード１０〜１２は、例えば図２に示すようなノード２１の構成を有している。図２に示すノード２１は、複数のＣＰＵ（Central Processing Unit）２２、２３と、ノード間制御部２４と、診断装置２５と、共有メモリ２６とを備えている。また、ノード２１には、ノード間クロスバスイッチ１４との間に配設されたパス２７が接続されている。
【００２９】
各ＣＰＵ２２、２３は、共有メモリ２６から読み出したプログラム命令を解釈して各種の処理を実行することができるプロセッサである。
【００３０】
ノード間制御部２４は、各ノード１０〜１２に対応して設けられたノード間制御部１０１〜１２１として機能する。図３は、ノード間制御部２４の一構成例を示している。図３に示すように、ノード間制御部２４は、リクエスト処理部３０と、ノード間データ送受信部３１と、メモリアクセス制御部３３とを備えている。また、ノード間制御部２４には、ノード間クロスバスイッチ１４との間に配設されたパス２７（図２）に含まれるデータ転送パス３４や、診断装置２５との間に配設されたパス３５、共有メモリ２６との間に配設されたパス３６などが接続されている。
【００３１】
リクエスト処理部３０は、ＣＰＵ２２、２３からのノード間転送命令を受信したときに、例えば図４（Ａ）に示すようなロック獲得リクエストを発行することなどにより、ノード間転送のための転送パスを確保する制御を行う。また、リクエスト処理部３０は、送出データのメモリロード制御や、受信データのメモリストア制御など、各種の制御を行う。こうしたリクエスト処理部３０による制御は、ノード間データ送受信部３１を介して行われる。
【００３２】
ノード間データ送受信部３１は、ノード間障害制御部３２を備え、ノード２１内で障害が発生したことを、ノード間クロスバスイッチ１４に特定のデータパターンを発行することにより、通知する機能を有している。ここで、ノード間データ送受信部３１からノード間クロスバスイッチ１４への障害発生の通知は、データ転送パス３４を用いることにより、新規のパスを設けないで行われる。
【００３３】
ノード間障害制御部３２は、ノード間クロスバスイッチ１４から送られた転送相手の障害通知を受信したときに、その転送相手となる障害ノードとの転送データを廃棄し、次のデータ転送に備える機能を有している。また、ノード間障害制御部３２は、障害通知で示された障害ノードの情報を、パス３５を介して診断装置２５に通知する。
【００３４】
メモリアクセス制御部３３は、パス３６を介してノード間制御部２４を共有メモリ２６と接続する。メモリアクセス制御部３３が共有メモリ２６を経由してノード２１内の各ＣＰＵ２２、２３からのノード間転送命令を受信することにより、ノード間制御部２４は起動することができる。
【００３５】
診断装置２５は、例えばノード間障害制御部３２から通知された障害ノードの情報を読み取ることなどにより、障害の発生箇所を特定するための処理を実行する。
【００３６】
共有メモリ２６は、各ＣＰＵ２２、２３、及びノード間制御部２４によって共有され、例えば各ＣＰＵ２２、２３によって実行可能なプログラム命令や、各ＣＰＵ２２、２３における演算処理に用いられる演算データ、各ＣＰＵ２２、２３における演算結果などを記憶する。また、共有メモリ２６は、各ＣＰＵ２２、２３とノード間制御部２４との間で、例えばノード間転送命令などといった、各種の命令を送受信するためにも用いられる。
【００３７】
図１に示すノード間クロスバスイッチ１４は、ロック制御部１６と、スイッチ１７と、入力制御部１５１〜１５３と、出力制御部１８１〜１８３とを備えている。
【００３８】
ロック制御部１６は、回線交換方式によるデータ転送を行うために、転送バスの管理を行う。また、ロック制御部１６は、各ノード１０〜１２における転送バスの状態を保持するロックテーブル１６１を備えている。ロック制御部１６は、例えば図５に示すようなロック制御部４０の構成を有している。図５に示すロック制御部４０は、ロックテーブル制御部４１と、受信ノード障害制御部４２と、調停部４３とを備えている。また、ロック制御部４０には、スイッチ１７との間に配設されたパス４４、４６や、入力制御部１５１〜１５３との間に配設された制御パス４５などが接続されている。
【００３９】
ロックテーブル制御部４１は、スイッチ１７からのロック獲得リクエストを受信したときに、ロック獲得状況を登録したロックテーブル１６１を参照し、ロック獲得先の転送パスがロック獲得中であるか否かを判定する。図６は、ロックテーブル制御部４１によって参照されるロックテーブル１６１の一構成例を示している。
【００４０】
図６に示すようなロックテーブルを参照することによりロック獲得先の転送パスがロック獲得中ではないと判定されたときに、ロックテーブル制御部４１は、ロック獲得先と対応付けられたロックフラグをオン状態にセットする。このとき、ロックテーブル制御部４１は、送信元情報などをロックテーブルに登録する。さらに、ロックテーブル制御部４１は、各ノード１０〜１２のうちでロック獲得リクエストの発行元となったノードに対して、ロック獲得通知を発行する。ロックテーブル制御部４１によって発行されたロック獲得通知は、調停部４３を介してスイッチ１７に送られる。スイッチ１７では、ロックテーブル制御部４１からのロック獲得通知を、各ノード１０〜１２のうちでロック獲得リクエストの発行元となったノードに対応する出力制御部１８１〜１８３のいずれかに転送することで、データ転送の開始を可能にする。
【００４１】
図５に示す受信ノード障害制御部４２は、ロック制御部１６によって管理されている図６に示すようなロックテーブル１６１を参照して、データ受信側における障害を管理する。より詳細には、受信ノード障害制御部４２は、後述する入力制御部５０が備える障害監視部５２から送られたノード障害情報を、制御パス４５を介して取得する。このとき、受信ノード障害制御部４２は、ロックテーブル１６１を参照して、入力制御部１５１〜１５３のうちでノード障害情報の取得元となった入力制御部に対応する各ノード１０〜１２のいずれかが、転送データの受信中であるか否かを判定する。
【００４２】
ここで、図６に示すロックテーブル１６１では、ロック獲得の際に転送先となるノードのロックフラグがオン状態にセットされ、ロック解放の際には、そのロックフラグがリセットされてオフ状態となる。そのため、受信ノード障害制御部４２は、入力制御部１５１〜１５３のいずれかからノード障害情報を取得すると、その入力制御部が接続されたノードに対応するロックフラグをロックテーブル１６１にて参照することにより、転送データの受信中であるか否かを判定することができる。
【００４３】
このように受信ノード障害制御部４２がロックテーブル１６１を参照したときに、対応するロックフラグがオン状態であれば、各ノード１０〜１２のうちでノード障害情報を送出したノードが転送データの受信中であると判断される。このとき、受信ノード障害制御部４２は、ロックテーブル１６１において転送データの受信中であると判断したロックフラグと同一のノードに対応して設けられた送信元ノード情報を参照することにより、転送データの送信元となるノードを、各ノード１０〜１２のうちから特定する。こうして特定した送信元のノードに対して、受信ノード障害制御部４２は、図４（Ｂ）に示すような受信障害通知を生成して発行する。
【００４４】
調停部４３は、例えばスイッチ１７にて各ノード１０〜１２からのトランザクションが競合したときなどに、この競合を調停するための処理を実行する。
【００４５】
スイッチ１７は、各入力制御部１５１〜１５３からの制御情報あるいは転送データを所望のノードへと送出可能にする。
【００４６】
入力制御部１５１〜１５３はそれぞれ、各ノード１０〜１２に対応して配置され、各ノード１０〜１２からの制御情報あるいは転送データを受信するための制御を行う。各入力制御部１５１〜１５３は、例えば図７に示すような入力制御部５０の構成を有している。図７に示す入力制御部５０は、リクエストバッファ５１と、障害監視部５２と、送信ノード障害制御部５３と、調停部５４とを備えている。また、入力制御部５０には、各ノード１０〜１２のうちで対応するいずれかとの間に配設された接続パス５５や、スイッチ１７との間に配設されたパス５６、ロック制御部１６との間に配設されて制御パス４５（図５）ともなるパス５７などが接続されている。
【００４７】
リクエストバッファ５１は、各ノード１０〜１２から接続パス５５を介して送信された制御情報を蓄積するためのものである。
【００４８】
障害監視部５２は、各ノード１０〜１２のうちで対応するもの（対応ノード）において発生する障害を監視する。そして、各ノード１０〜１２の対応ノードにて障害が発生したときには、その障害が発生した対応ノードから障害発生を示す特定パターンの障害コードを受信する。このとき、障害監視部５２は、障害発生が検出された旨を、送信ノード障害制御部５３に通知する。さらに、障害監視部５２は、障害発生が検出された旨を、パス５７を介してロック制御部１６にも通知する。
【００４９】
送信ノード障害制御部５３は、ロック獲得中フラグと、転送先情報レジスタとを備えている。ロック獲得中フラグは、各ノード１０〜１２の対応ノードにてロックが獲得できたときに、オン状態にセットされる。その一方で、データ転送処理が終了したときには、ロックが解放されるとともにロック獲得中フラグがリセットされてオフ状態となる。また、送信ノード障害制御部５３が備える転送先情報レジスタは、図４（Ａ）に示すようなロック獲得リクエストを受信したときに、そのロック獲得リクエストで指定された送信先ノード番号を保持する。
【００５０】
送信ノード障害制御部５３は、障害監視部５２から障害発生が検出された旨の通知を受けたときに、その障害が発生したノードと対応付けられたロック獲得中フラグを参照する。このとき、ロック獲得中フラグがオン状態であれば、転送先情報レジスタに保持されている送信先ノード番号を読み取り、各ノード１０〜１２のうちで転送データの送信先となるノードに対して、図４（Ｃ）に示すような送信障害通知を発行する。
【００５１】
調停部５４は、例えば各ノード１０〜１２のうちで入力制御部５０が接続されたノードからスイッチ１７へと入力するトランザクションが、他の入力制御部から入力されるトランザクションと競合したときなどに、この競合を調停するための処理を実行する。
【００５２】
出力制御部１８１〜１８３はそれぞれ、各ノード１０〜１２に対応して配置され、スイッチ１７から送られた制御情報や転送データを、対応する各ノード１０〜１２に送出するための制御を行う。
【００５３】
次に、図１に示す構成を有するマルチノードシステム１の動作について説明する。このマルチノードシステム１では、回線交換方式により、各ノード１０〜１２の間で各種データのノード間転送が行われる。回線交換方式のノード間転送では、実際のデータ転送に先立ち、ノード間クロスバスイッチ１４において、出力側のパス１９１〜１９３の確保（ロック獲得）が行われる。
【００５４】
例えば、図１において「Node 0」として特定されるノード１０が「Node 1」として特定されるノード１１にデータ転送する場合、ノード１０は、図４（Ａ）に示すような形式のロック獲得リクエストを、ノード間クロスバスイッチ１４に対して発行する。ノード間クロスバスイッチ１４では、他のノードとの競合を調停し、ノード１０がノード１１にデータ転送を行うためにパス１９２を獲得できたときに、ロック獲得通知をノード１０に対して返却する。ノード１０は、ノード間クロスバスイッチ１４からロック獲得通知の返却を受けたことを契機として、ノード１１に対するデータ転送を開始する。
【００５５】
このように、回線交換方式のノード間転送では、データ転送に先立ち図４（Ａ）に示すような形式のロック獲得リクエストを発行することによって出力側のパス１９１〜１９３のいずれかを確保（ロック獲得）する。これにより、例えばノード間クロスバスイッチ１４が備えるスイッチ１７において他のノードとのデータパスの競合が発生することなく、データ転送を行うことが可能になる。
【００５６】
図８は、一例として、「Node 0」として特定されるノード１０から「Node 1」として特定されるノード１１にデータを送るライト転送において、ノード１０、ノード間クロスバスイッチ１４、及びノード１１の間で送受信される制御情報やデータの流れを示している。この場合、ノード１０では、まず、ノード１０が備える複数のＣＰＵ２２、２３のいずれかから、ノード間転送命令が発行され、共有メモリ２６を経由してノード間制御部２４に送られる。
【００５７】
こうして、ノード１０からは、転送パスを確保するために、図４（Ａ）に示すような形式のロック獲得リクエスト（図８ではロック獲得要求）が、ノード間クロスバスイッチ１４に対して発行される（Ｐ１１）。ノード間クロスバスイッチ１４は、ノード１０から受けたロック獲得リクエストに応答して、ノード１１にデータ転送を行うためのパス１９２を獲得できたときに、ロック獲得通知を、要求元ノードであるノード１０に送る（Ｐ１２）。
【００５８】
ノード１０では、ノード間クロスバスイッチ１４からのロック獲得通知によりデータ転送の回線が確保できたことになり、データ転送を開始する（Ｐ１３）。ノード１０から送出される転送データのヘッダには、転送先ノード番号が付与されている。ノード間クロスバスイッチ１４は、転送データのヘッダに示された転送先ノード番号によりスイッチ１７のルーティングを行い、ノード１１に対して転送データを送る（Ｐ１４）。転送データを受信したノード１１は、受信した旨をリプライとしてノード間クロスバスイッチ１４に送り（Ｐ１５）、このリプライがノード間クロスバスイッチ１４から転送元ノードであるノード１０へと送られる（Ｐ１６）。複数の転送単位があるような場合には、このリプライを受信したことにより、ノード１０では次の転送単位を送るためのハンドシェーク制御などが行われる。
【００５９】
ノード１１が最後の転送データを受信したときには、ノード間クロスバスイッチ１４に対してロック解放要求を送ることにより（Ｐ１７）、ノード１１のロックを解放して次の転送に備えることを可能にする。ノード１１からロック解放要求を受信したノード間クロスバスイッチ１４では、図６に示すロックテーブル１６１のロックフラグや、ノード１０に対応して設けられた入力制御部１５１が備えるロック獲得中フラグをリセットしてオフ状態とする。そして、正常にリセットが行われたときには、ロック解放通知が、ロック解放の要求元であるノード１１に対して送られる（Ｐ１８）。このときには、ノード１１において次の転送のためにロックフラグがリセットされており、他のノードがロックを獲得できることになる。このようにして、一連のデータ転送処理が終了する。
【００６０】
図９は、図８に示したデータ転送処理において、データの転送先（受信側）となるノード１１にて障害が発生した場合を示している。図９に示すＰ２１〜Ｐ２４では、図８に示したＰ１１〜Ｐ１４と同様にして、ロック獲得リクエスト（図９ではロック獲得要求）によりノード１１にデータ転送を行うためのパス１９２を獲得できたときにロック獲得通知がノード１０に送られて、ノード１０からノード間クロスバスイッチ１４を介してノード１１に対するデータ転送が開始される。
【００６１】
ここで、図９に示すロック獲得要求（Ｐ２１）によりノード間クロスバスイッチ１４が備えるロック制御部１６においてロックが獲得されたときには、図６に示すロックテーブル１６１において、ノード１１に対応する部分に転送元ノード番号（図６では送信元ノード番号）であるノード１０のノード番号が書き込まれる。また、このときには、ノード１１に対応してロックテーブル１６１に設けられたロックフラグがオン状態にセットされる。
【００６２】
この後、データ転送が行われているときにノード１１で障害が発生した場合（図９のＰ２５）、ノード１１はノード間クロスバスイッチ１４に対して、予め定められた特定のデータパターンを有する障害コードを通知する（Ｐ２６）。ノード間クロスバスイッチ１４では、ノード１１に対応して設けられた入力制御部１５２がノード１１からの障害コードを受信すると、図７に示す障害監視部５２がこれを検出する。そして、障害監視部５２は、障害発生が検出された旨を、ロック制御部１６に通知する。
【００６３】
障害監視部５２からの通知を受けたロック制御部１６は、ノード１１から障害コードが送られたことに基づき、例えば図５に示す受信ノード障害制御部４２が、ロックテーブル１６１においてノード１１に対応する箇所を参照する。このとき、ロックテーブル１６１では、ノード１１に対応して設けられたロックフラグがオン状態にセットされている。そのため、ロック制御部１６は、ノード１１がデータ受信中であると判断して、例えば図５に示す受信ノード障害制御部４２が、ノード１１に対応する部分に書き込まれた転送元ノード番号（図６では送信元ノード番号）を読み取る。
【００６４】
この例では、ロックテーブル１６１におけるノード１１に対応する部分に、転送元ノード番号としてノード１０のノード番号が書き込まれている。そこで、ロック制御部１６では、例えば図５に示す受信ノード障害制御部４２が図４（Ｂ）に示すような形式の受信障害通知（図９では障害通知）を生成して、転送元ノードであるノード１０へと送出する（Ｐ２７）。このとき送出される受信障害通知では、障害ノード番号として、ノード１１のノード番号が示されている。
【００６５】
ノード間クロスバスイッチ１４から受信障害通知を受けたノード１０では、ノード１１への仕掛かり中のデータ転送処理を中断し、所定の廃棄処理へと移行する（Ｐ２８）。この廃棄処理が完了して次の転送が開始可能な状態になると、ノード１１のロック解放通知を、ノード１０がノード間クロスバスイッチ１４に対して発行する（Ｐ２９）。
【００６６】
ここで、ロック解放通知は、転送先ノードであるノード１１によって発行されるのが原則である。しかしながら、転送先ノードであるノード１１にて障害が発生したためにロック解放通知を発行できないときには、例外的に、転送元ノードであるノード１０が代わりにロック解放通知を発行して、転送先ノードであるノード１１におけるロックの解放を要求する。これにより、ノード間クロスバスイッチ１４では、図６に示すロックテーブル１６１にてノード１１に対応して設けられたロックフラグをリセットしてオフ状態とすることができ、処理の矛盾を防止できる。
【００６７】
ノード間クロスバスイッチ１４から受信障害通知を受けたノード１０では、転送先ノードであるノード１１に障害が発生した旨の報告が、ノード１０が備える診断装置２５（図２）に対して行われる。これにより、転送元ノードであるノード１０において、データ転送処理が中断された原因は、転送先ノードであるノード１１にて障害が発生したためであることが、容易に特定可能となる。
【００６８】
図１０は、図８に示したデータ転送処理において、データの転送元（送信側）となるノード１０にて障害が発生した場合を示している。図１０に示すＰ３１〜Ｐ３４では、図８に示したＰ１１〜Ｐ１４と同様にして、ロック獲得リクエスト（図１０ではロック獲得要求）によりノード１１にデータ転送を行うためのパス１９２を獲得できたときにロック獲得通知がノード１０に送られて、ノード１０からノード間クロスバスイッチ１４を介してノード１１に対するデータ転送が開始される。
【００６９】
ここで、図１０に示すロック獲得要求（Ｐ３１）によりノード間クロスバスイッチ１４が備えるロック制御部１６においてロックが獲得されたときには、ノード１０に対応して設けられた入力制御部１５１の送信ノード障害制御部５３（図７）において、転送先ノードとなるノード１１のノード番号が、転送先情報レジスタに格納される。また、入力制御部１５１では、ノード１０に対応して設けられたロック獲得中フラグがオン状態にセットされる。
【００７０】
この後、データ転送が行われているときにノード１０で障害が発生した場合（図１０のＰ３５）、ノード１０はノード間クロスバスイッチ１４に対して、予め定められた特定のデータパターンを有する障害コードを通知する（Ｐ３６）。ノード間クロスバスイッチ１４では、ノード１０に対応して設けられた入力制御部１５１がノード１０からの障害コードを受信すると、入力制御部１５１自身が備える送信ノード障害制御部５３は、ロック獲得中フラグを参照する。
【００７１】
このとき、ロック獲得中フラグがオン状態にセットされている。そのため、入力制御部１５１では、例えば図７に示す送信ノード障害制御部５３により、データ転送中に転送元（送信側）であるノード１０において障害が発生したと判断される。これに続いて、入力制御部１５１では、例えば送信ノード障害制御部５３が、転送先情報レジスタに格納されている転送先ノードとなるノード１１のノード番号を読み取る。そして、入力制御部１５１では、例えば送信ノード障害制御部５３が図４（Ｃ）に示すような形式の送信障害通知（図１０では障害通知）を生成して、転送先ノードであるノード１１へと送出する（Ｐ３７）。このとき送出される送信障害通知では、障害ノード番号として、入力制御部１５１の対応ノードであるノード１０のノード番号が示されている。
【００７２】
ノード間クロスバスイッチ１４から送信障害通知を受けたノード１１では、ノード１０からのデータ受信を中断し、仕掛かりデータの廃棄処理へと移行する（Ｐ３８）。この廃棄処理が完了して次の転送が開始可能な状態になると、ノード１１のロック解放通知を、ノード１１がノード間クロスバスイッチ１４に対して発行する（Ｐ３９）。
【００７３】
ノード１１からのロック解放通知を受けたノード間クロスバスイッチ１４では、図６に示すロックテーブル１６１にてノード１１に対応して設けられたロックフラグをリセットしてオフ状態とし、ノード１１が次のデータ転送を受信可能な状態に設定する。また、ノード間クロスバスイッチ１４から送信障害通知を受けたノード１１では、転送元ノードであるノード１０に障害が発生した旨の報告が、ノード１１が備える診断装置２５（図２）に対して行われる。これにより、転送先ノードであるノード１１において、データ転送処理が中断された原因は、転送元ノードであるノード１０にて障害が発生したためであることが、容易に特定可能となる。
【００７４】
以上説明したように、この発明によれば、データ転送が行われているときに転送元（送信側）あるいは転送先（受信側）となる各ノード１０〜１２のいずれかにて障害が発生したときには、障害が発生したノードからノード間クロスバスイッチ１４に対して、特定のデータパターンを有する障害コードが通知される。そして、ノード間クロスバスイッチ１４は、ロック制御部１６が備えるロックテーブル１６１や入力制御部１５１〜１５３が備える転送先情報レジスタを参照することにより、障害が発生したノードとの間でデータ転送処理を実行している相手方のノードを特定することができる。
【００７５】
こうして特定された相手方のノードに対しては、図４（Ｂ）に示すような受信障害通知や、図４（Ｃ）に示すような送信障害通知が送られる。これにより、ノード間転送の際に障害が発生した場合には、正常なノードの側にて障害が発生したことを直ちに検出することができ、迅速に復旧処理を開始して、システム全体の性能劣化を防止することができる。
【００７６】
また、正常なノードの側では、相手方のノードにて障害が発生した旨の報告が診断装置２５に対して行われることにより、容易に障害箇所を特定して、障害箇所の切り分けを容易にすることにより、システム全体の性能劣化を防止することができる。
【００７７】
この発明は上記実施の形態に限定されるものではなく、様々な変形及び応用が可能である。例えば、上記実施の形態では、各ノード１０〜１２のいずれかにて障害が発生した場合について説明したが、ノード間クロスバスイッチ１４にて障害が発生した場合にも適用可能である。この場合、例えばノード間クロスバスイッチ１４が備えるスイッチ１７にて障害が発生したときに、各ノード１０〜１２に対応して設けられた出力制御部１８１〜１８３から、各ノード１０〜１２に対して特定のデータパターンを有する障害コードを通知する。これにより、各ノード１０〜１２では、ノード間クロスバスイッチ１４で障害が発生したことを直ちに検出することができ、迅速に復旧処理を開始することができる。
【００７８】
また、各ノード１０〜１２では、ノード間クロスバスイッチ１４からの障害コードを受信したときに、ノード間クロスバスイッチ１４にて障害が発生した旨の報告を、各ノード１０〜１２が備える診断装置２５に対して行うようにすればよい。これにより、ノード間クロスバスイッチ１４が障害発生箇所となっていることを、容易に特定することが可能になる。
【図面の簡単な説明】
【００７９】
【図１】この発明の一実施例となるマルチノードシステムの構成例を示す図である。
【図２】ノードの構成例を示す図である。
【図３】ノード間制御部の構成例を示す図である。
【図４】ロック獲得リクエスト、受信障害通知、送信障害通知の構成例を示す図である。
【図５】ロック制御部の構成例を示す図である。
【図６】ロックテーブルの構成例を示す図である。
【図７】入力制御部の構成例を示す図である。
【図８】データ転送処理において送受信される制御情報やデータの流れを示す図である。
【図９】図８に示すデータ転送処理において転送先にて障害が発生した場合を示す図である。
【図１０】図８に示すデータ転送処理において転送元に障害が発生した場合を示す図である。
【符号の説明】
【００８０】
１      マルチノードシステム
１０〜１２、２１      ノード
１４      ノード間クロスバスイッチ
１６      ロック制御部
１７      スイッチ
２２、２３      ＣＰＵ
２４、１０１〜１２１      ノード間制御部
２５      診断装置
２６      共有メモリ
３０      リクエスト処理部
３１      ノード間データ送受信部
３２      ノード間障害制御部
３３      メモリアクセス制御部
３４      データ転送パス
４０      ロック制御部
４１      ロックテーブル制御部
４２      受信ノード障害制御部
４３、５４      調停部
５０、１５１〜１５３      入力制御部
５１      リクエストバッファ
５２      障害監視部
５３      送信ノード障害制御部
１６１      ロックテーブル
１８１〜１８３      出力制御部
【図１】
2006178786.tif 000003
【図２】
2006178786.tif 000004
【図３】
2006178786.tif 000005
【図４】
2006178786.tif 000006
【図５】
2006178786.tif 000007
【図６】
2006178786.tif 000008
【図７】
2006178786.tif 000009
【図８】
2006178786.tif 000010
【図９】
2006178786.tif 000011
【図１０】
2006178786.tif 000012