(57)【要約】    【課題】  ノード間クロスバスイッチを介してノード間のデータ転送を行うシステムにおいて、１台のクロスバスイッチに障害が発生した場合においてもシステムダウンを防止することのできるマルチノードシステムを提供する。    【解決手段】  複数のノード１１、１２と、ノード１１、１２からの転送データを転送先のノードに送信するスイッチを備えた複数のノード間クロスバスイッチで構成され、ノード間クロスバスイッチ１３、１４を介してノード間のデータ転送を行うマルチノードシステムであって、スイッチに障害が発生した場合、障害が発生したスイッチを備えたノード間クロスバスイッチ以外のノード間クロスバスイッチを経由してノード間のデータ転送を行うように制御することを特徴とする。【選択図】      図１
2006039897.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードと、前記ノードからの転送データを転送先のノードに送信するスイッチを備えた複数のノード間クロスバスイッチで構成され、前記ノード間クロスバスイッチを介して前記ノード間のデータ転送を行うマルチノードシステムであって、
前記スイッチに障害が発生した場合、前記障害が発生したスイッチを備えたノード間クロスバスイッチ以外のノード間クロスバスイッチを経由して前記ノード間のデータ転送を行うように制御することを特徴とするマルチノードシステム。
【請求項２】
前記スイッチに障害がない場合、全ての前記ノード間クロスバスイッチを経由して前記ノード間のデータ転送を行うことを特徴とする請求項１に記載のマルチノードシステム。
【請求項３】
前記ノードに複数のデータ処理部を備え、前記データ処理部からノード間でのデータ転送命令を受信すると当該データ転送を起動する、ノード間制御装置を設けることを特徴とする請求項２に記載のマルチノードシステム。
【請求項４】
前記スイッチに障害が検出されると、前記スイッチを備えたノード間クロスバスイッチが障害状態にあるという情報を前記複数のノードに通知し、前記複数のノードに備えるデータ処理部で動作中のソフトウェアからのデータ転送命令を停止することを特徴とする請求項３に記載の記載のマルチノードシステム。
【請求項５】
前記ノード間クロスバスイッチが障害状態にあるという情報を受信すると、前記ノードから障害のないノード間クロスバスイッチへ前記情報を送信し、前記ノード間クロスバスイッチで前記情報に基づき前記スイッチの構成を、前記障害のないノード間クロスバスイッチのみを使用する構成に変更すると共に、前記ノード間クロスバスイッチの構成変更の終了情報を前記複数のノードへ通知することを特徴とする請求項４に記載のマルチノードシステム。
【請求項６】
前記構成変更の終了情報を取得すると、前記データ転送命令の送信先を障害のないノード間クロスバスイッチに接続したノード間制御装置に変更した後、前記複数のノードのデータ処理部で動作中のソフトウェアに対してノード間のデータ転送を指示することを特徴とする請求項５に記載のマルチノードシステム。
【請求項７】
前記スイッチを備えたノード間クロスバスイッチが障害状態にあるという情報を前記複数のノードに送信する際、当該通知を前記クロスバスイッチと前記ノード間のデータ転送に用いるデータ転送パス経由で送信することを特徴とする請求項４に記載のマルチノードシステム。
【請求項８】
前記データ転送は、データを転送する命令を発行するデータ処理部の設けられたノードであるローカルノードに備えるメモリからデータを読み出し、読み出したデータをローカルノードから、データ転送におけるローカルノードの相手であるリモートノードへ転送し、リモートノードに備えるメモリに書き込む命令、又はリモートノードのメモリからデータを読み出し、読み出したデータをリモートノードからライトノードへ転送し、ライトノードに備えるメモリに書き込む命令の何れかであることを特徴とする請求項３から請求項７のいずれか１項に記載のマルチノードシステム。
【請求項９】
前記ノード間クロスバスイッチは前記スイッチを複数備え、前記複数のスイッチは複数のノードにそれぞれ接続され、前記複数のノード間クロスバスイッチに障害のない場合、前記複数のノード間クロスバスイッチを介して前記ノードは他ノードとの間でデータ転送を行うことを特徴とする請求項１に記載のマルチノードシステム。
【請求項１０】
前記ノード間クロスバスイッチは前記スイッチを複数備え、前記複数のスイッチは複数のノードにそれぞれ接続され、前記複数のノード間クロスバスイッチに障害のない場合、前記複数のノード間クロスバスイッチのうち、障害発生時のみに使用するノード間クロスバスイッチ以外のノード間クロスバスイッチを介して、前記ノードは他ノードとの間でデータ転送を行うことを特徴とする請求項１に記載のマルチノードシステム。
【請求項１１】
複数のノードに接続され、前記ノードからの転送データを転送先のノードに送信するスイッチと、障害処理を行う診断装置と、ノードとの間でステータス情報の通信を行うステータス通信制御部を備えたノード間クロスバスイッチであって、
前記スイッチで発生した障害を前記診断装置で検出すると、前記スイッチを備えたノード間クロスバスイッチは障害状態にあるという情報を、前記複数のノードに通知することを前記ステータス通信制御部に指示し、
前記ステータス通信制御部から前記複数のノードに前記情報を通知することを特徴とするノード間クロスバスイッチ。
【請求項１２】
前記情報を前記複数のノードから受信すると、前記診断装置は、障害のないノード間クロスバスイッチのみを使用するために前記スイッチの構成を変更すると共に、前記ステータス通信制御部から前記スイッチの前記構成の変更が終了したことを前記複数のノードへ通知することを特徴とする請求項１１に記載のノード間クロスバスイッチ。
【請求項１３】
ノードからの転送データを転送先のノードに送信するスイッチを備えた複数のノード間クロスバスイッチに接続され、ノード間でのデータ転送命令を受信すると当該データ転送を起動するノード間制御装置と、前記ノード間クロスバスイッチとの間でステータス情報の通信を行うステータス通信制御部と、複数のデータ処理部を備えたノードであって、
前記ノード間クロスバスイッチから障害状態にあるという情報を受信すると、前記ステータス通信制御部は前記障害状態を前記診断装置へ通知し、
前記診断装置により前記データ処理部で動作中のソフトウェアからの転送命令を停止することを特徴とするノード。
【請求項１４】
前記診断装置から前記情報を障害のないノード間クロスバスイッチへ送信する指示を出し、前記指示に基づき前記ステータス通信制御部が前記ノード間クロスバスイッチへ前記情報を送信することを特徴とする請求項１３に記載のノード。
【請求項１５】
前記ノード間クロスバスイッチから前記障害のないノード間クロスバスイッチのみを使用するための構成変更が終了したという情報を受信すると、前記診断装置で前記データ転送命令の送信先を障害のないノード間クロスバスイッチに接続したノード間制御装置に変更した後、ノード間のデータ転送を指示することを特徴とする請求項１３又は請求項１４に記載のノード。
【請求項１６】
前記診断装置で前記データ転送命令の送信先を障害のないノード間クロスバスイッチに接続したノード間制御装置に変更すると、前記データ処理部に備えた処理ノード間制御装置決定回路により、データ転送命令を送信するノード間制御装置を決定することを特徴とする請求項１５に記載のノード。
【請求項１７】
複数のノードに接続され、前記ノードからの転送データを転送先のノードに送信するスイッチと、障害処理を行う診断装置と、ノードとの間でステータス情報の通信を行うステータス通信制御部を備えたノード間クロスバスイッチ上で実行されるスイッチプログラムであって、
前記スイッチで発生した障害を前記診断装置で検出すると、前記スイッチを備えたノード間クロスバスイッチは障害状態にあるという情報を、前記複数のノードに通知することを前記ステータス通信制御部に指示する機能と、
前記ステータス通信制御部は前記複数のノードに前記情報を通知する機能を実行することを特徴とするスイッチプログラム。
【請求項１８】
前記情報を前記複数のノードから受信すると、前記診断装置は、障害のないノード間クロスバスイッチのみを使用するためにスイッチの構成を制御すると共に、前記ステータス通信制御部は前記スイッチの前記構成の制御が終了したことを前記複数のノードに通知する機能を有することを特徴とする請求項１７に記載のスイッチプログラム。
【請求項１９】
ノードからの転送データを転送先のノードに送信するスイッチを備えた複数のノード間クロスバスイッチに接続され、ノード間でのデータ転送命令を受信すると当該データ転送を起動するノード間制御装置と、前記ノード間クロスバスイッチとの間でステータス情報の通信を行うステータス通信制御部と、複数のデータ処理部を備えたノード上で実行されるノードプログラムであって、
前記ノード間クロスバスイッチから障害状態にあるという情報を受信すると、前記ステータス通信制御部から前記障害状態を前記診断装置へ通知する機能と、
前記診断装置で前記データ処理部で動作中のソフトウェアからの転送命令を停止する機能を実行することを特徴とするノードプログラム。
【請求項２０】
前記診断装置で前記情報を障害のないノード間クロスバスイッチへ送信する指示を出し、前記指示に基づき前記ステータス通信制御部から前記ノード間クロスバスイッチへ前記情報を送信する機能を有することを特徴とする請求項１９に記載のノードプログラム。
【請求項２１】
前記ノード間クロスバスイッチから前記障害のないノード間クロスバスイッチのみを使用するための構成変更が終了したという情報を受信すると、前記診断装置で前記データ転送命令の送信先を障害のないスイッチに接続したノード間制御装置に変更した後、ノード間のデータ転送を指示する機能を有することを特徴とする請求項１９又は請求項２０に記載のノードプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ノードで構成されるシステムに関し、特に、ノード間クロスバスイッチを複数設けることが可能な構成とすることにより、１台のクロスバスイッチに障害が発生した場合においてもシステムダウンを防止することのできるマルチノードシステム、ノード間クロスバスイッチ、ノード、スイッチプログラム及びノードプログラムに関する。
【背景技術】
【０００２】
科学技術計算の分野において年々高まる計算性能の向上要求に対応するため、複数のＣＰＵと共有メモリで構成される高性能のノードを、更に複数接続することによってシステム全体としての性能向上が実現される。この場合、ノード間の接続は各ノードに設置されデータを転送するノード間制御装置とノード間でのデータ転送のためのノード間クロスバスイッチを介して行われるが、ノード間制御装置あるいはクロスバスイッチに障害が発生すると、ノードがダウンするという問題があった。
【０００３】
このような問題の解決に類する方法の一例が、例えば特開２００１−２５６２０３号公報（特許文献１）及び例えば特開２００３−４６５２６号公報（特許文献２）に記載されている。
【０００４】
特許文献１に開示される方法は、ノード間をクロスバスイッチで接続するシステムに関するもので、システムに必要なＮ個（Ｎは複数）のノード間クロスバスイッチに１つの冗長分を含めたＮ＋１個のクロスバスイッチを設け、システム障害発生時に障害処理回路がクロスバスイッチの障害を認識すると、クロスバスイッチの入出力部に設けた選択回路を、障害処理回路が制御することで、障害の発生したクロスバスイッチの使用を停止するというものである。
【０００５】
特許文献１の方法によれば、クロスバスイッチを冗長構成とすることにより、ノード間を接続するクロスバスイッチに障害が発生した場合においても、システム再立上げ後、障害のあるクロスバスイッチを回避した運用を行うことができる。
なお、障害が発生していない場合には、冗長分のクロスバスイッチは使用されない。
【０００６】
また、特許文献２の方法では、図１０に示すようにノード間データ転送のためのノード間クロスバスイッチと各ノードとの接続部分に、ノード間制御装置を複数設け、ノード内のプロセッサの性能に応じて、ノード間転送性能を可変にするというものである。
【０００７】
特許文献２の方法によれば、ノード間転送性能を可変にできると共に、１つのノード間制御装置が故障した場合においても、他のノード間制御装置によりシステムを継続して運転することができる。
【特許文献１】特開２００１−２５６２０３号公報
【特許文献２】特開２００３−４６５２６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述した従来の技術は、いずれも以下に述べるような問題点があった。
【０００９】
特許文献１の方法では、システムに必要なノード間クロスバスイッチに加えて１つの冗長分のクロスバスイッチを設け、障害処理回路がクロスバスイッチの障害を認識すると、障害の発生したクロスバスイッチの使用を停止し、冗長分のクロスバスイッチへ切り替えるというものである。
【００１０】
特許文献１の方法の場合、障害が発生していない通常の場合には、冗長分のクロスバスイッチは使用されない。このため、冗長分のクロスバスイッチがシステムの性能向上に使用されないという問題があった。すなわち、障害が発生しない場合には、冗長分のクロスバスイッチはシステムの一部として動作していなかった。
【００１１】
さらに、冗長分のクロスバスイッチは、システムの一部として動作しない場合においては、システム価格を高めるだけであり、実用上好ましくないという問題もあった。
【００１２】
また、特許文献２の方法では、図１０に示したようにクロスバスイッチとノードとの接続部分に、ノード間制御装置を複数設け、１つのノード間制御装置が故障した場合においても、他のノード間制御装置によりシステムを継続して運転することができるというものである。
【００１３】
しかしながら、特許文献２の方法の場合、ノード間の接続には１つのクロスバスイッチが用いられており、クロスバスイッチが故障した場合にはシステムダウンは避けられない。
【００１４】
また、特許文献２の方法は、元来ノード間でのデータ転送をクロスバスイッチにより提供する方法であり、クロスバスイッチが故障した際の、システムダウンを回避する方法を提供するものではない。
【００１５】
本発明の第１の目的は、上記従来技術の欠点を解決し、ノード間クロスバスイッチを介してノード間のデータ転送を行うシステムにおいて、１台のクロスバスイッチに障害が発生した場合においてもシステムダウンを防止することのできるマルチノードシステム、ノード間クロスバスイッチ、ノード、スイッチプログラム及びノードプログラムを提供することにある。
【００１６】
本発明の第２の目的は、システムダウンを防止するために多重化したクロスバスイッチが、通常使用の場合においてはシステム性能向上に使用されるマルチノードシステム、ノード間クロスバスイッチ、ノード、スイッチプログラム及びノードプログラムを提供することにある。
【００１７】
本発明の第３の目的は、ノードとクロスバスイッチ間の高速なステータス通信を可能にすると共に、システムコストの安価なマルチノードシステム、ノード間クロスバスイッチ、ノード、スイッチプログラム及びノードプログラムを提供することにある。
【課題を解決するための手段】
【００１８】
上記目的を達成するための本発明は、複数のノードと、前記ノードからの転送データを転送先のノードに送信するスイッチを備えた複数のノード間クロスバスイッチで構成され、前記ノード間クロスバスイッチを介して前記ノード間のデータ転送を行うマルチノードシステムであって、前記スイッチに障害が発生した場合には、前記障害が発生したスイッチを備えたノード間クロスバスイッチ以外のノード間クロスバスイッチを経由して前記ノード間のデータ転送を行うように制御することを特徴とするものである。
【００１９】
また、前記スイッチに障害がない場合には、全ての前記ノード間クロスバスイッチを経由して前記ノード間のデータ転送を行うことを特徴とするものである。
【００２０】
本発明によれば、ノードが複数あり、２台のノード間クロスバスイッチがある場合の動作は以下のようになる。
【００２１】
２台のノード間クロスバスイッチの何れにも障害のない場合には、各ノードは２台のノード間クロスバスイッチを介してノード間のデータ転送を行う。
【００２２】
次に、何らかの原因により、１台のノード間クロスバスイッチが故障した場合には、各ノードは故障していない１台のノード間クロスバスイッチを介してノード間のデータ転送を行う。この場合、データ転送量は、２台のノード間クロスバスイッチを介して行う場合の半分となる。
【００２３】
なお、ノード間クロスバスイッチが３台ある場合には、通常は３台のノード間クロスバスイッチを使用し、１台のノード間クロスバスイッチが故障した場合には、２台のノード間クロスバスイッチを介してデータ転送を行う。
【００２４】
このように、本発明によれば、複数のノード間クロスバスイッチは障害のない場合はデータ転送に使用され、その結果システム性能が向上する。また、障害発生時は障害のないノード間クロスバスイッチをデータ転送に使用することができるために、ノード間クロスバスイッチの故障によるシステムダウンを防止することができる。
【発明の効果】
【００２５】
本発明のマルチノードシステム、ノード間クロスバスイッチ、ノード、スイッチプログラム及びノードプログラムによれば、以下の効果が達成される。
【００２６】
第１に、クロスバスイッチを介してノード間のデータ転送を行うシステムにおいて、各ノードから多重化したクロスバスイッチを使用できるシステムとしているため、１台のクロスバスイッチに障害が発生した場合においても、システムダウンを防止することができる。
【００２７】
第２に、障害のない通常使用の場合は、多重化したクロスバスイッチは何れも動作し、障害発生時は障害の発生したクロスバスイッチのみを停止するシステムであるため、システムダウンを防止するために多重化したクロスバスイッチを、通常使用の場合においてはシステム性能向上に使用することができる。
【００２８】
第３に、ノードとクロスバスイッチ間のステータス通信に高速通信の可能なデータ転送パスを用いているため、高速にステータスの送受信ができると共に、クロスバスイッチに障害が発生した際のシステム構成の変更を高速に行い、障害発生時のノード間でデータ転送の実行できない時間を短縮できる。
【００２９】
また、ステータス通信のパスとデータ転送パスとを共用化したことにより、システムコストを安価にできる。
【００３０】
第４に、多重化したクロスバスイッチを冗長スイッチとして信頼性を高める使用方法と、多重化したクロスバスイッチをシステム性能向上に供する使用方法を組み合わせることにより、システムを柔軟に構築できる。
【実施例１】
【００３１】
以下、本発明の好適な実施例について図面を参照して詳細に説明する。
【００３２】
図１は、本実施例によるマルチノードシステムの構成を示すブロック図である。
【００３３】
図１を参照すると、本実施例によるマルチノードシステムは、２つのノード１１、１２と２つのノード間クロスバスイッチ１３、１４からなる構成となっている。なお、図ではノードを２つ示してあるが、ノードは３つ以上の複数であっても同様である。
【００３４】
ノード１１、１２は、ノード間クロスバスイッチ１３、１４を介して互いに接続されている。
【００３５】
本実施例によるノード１１は、ノード間クロスバスイッチ１３、１４とはそれぞれデータ転送パス１５、１７を介して接続されている。
【００３６】
またノード１２は、ノード間クロスバスイッチ１３、１４とはそれぞれデータ転送パス１６、１８を介して接続されている。
【００３７】
ノード１１は、複数のデータ処理部（以下ＣＰＵと略す）１１０、１１１、１１２、１１３、２つのノード間制御装置（以下ＲＣＵと略す）１１５、１１６、ノード内の全てのＣＰＵ及びＲＣＵで共有する共有メモリ１１４、ならびにノード内の障害処理や構成制御を行う診断装置１１９から構成されている。なお、ＣＰＵの数は図１ではノードに４つの場合を示してあるが、より多くても又少なくても良い。
【００３８】
また、ノード１２もノード１１と同様であって、複数のＣＰＵ１２０、１２１、１２２、１２３、２つのＲＣＵ１２５、１２６、全てのＣＰＵ及びＲＣＵが共有する共有メモリ１２４、ならびにノード内の障害処理や構成制御を行う診断装置１２９から構成されている。
【００３９】
ノード１１には２台のＲＣＵ１１５、１１６が設けられ、それぞれノード間クロスバスイッチ１３、１４に接続されている。ノード１２には２台のＲＣＵ１２５、１２６が設けられ、それぞれノード間クロスバスイッチ１３、１４に接続されている。
【００４０】
本実施例によるノード間クロスバスイッチ１３は、ノードからの転送データを転送先のノードに送るデータスイッチ１３０、ノード間クロスバスイッチ１３内の障害処理や構成制御を行う診断装置１３２、ノードとのステータス（状態）通信を行う診断装置１３２に接続されたステータス通信制御部１３１から構成されている。ノード間クロスバスイッチ１４も同様の構成である。
【００４１】
ノード間のデータ転送は、以下に述べるように、ＣＰＵから当該ＣＰＵの設置されたノード内のＲＣＵにノード間のデータ転送命令を通知することにより起動することができる。
【００４２】
例えば、ノード１１の共有メモリ１１４内のデータをノード１２の共有メモリ１２４に転送する場合は、最初に、ＣＰＵ１１０からＲＣＵ１１５へ、ノード間のデータ転送命令（以下ノード間データ転送命令と略す）が通知される。ノード間データ転送命令（転送リクエスト）はユーザプログラムにより設定され、後述する図２のＣＰＵの命令制御部３２から発行される。
【００４３】
ＣＰＵ１１０からの転送命令を受け取ったＲＣＵ１１５は転送するデータを共有メモリ１１４から読み出し、それをノード間クロスバスイッチ１３に転送する。
【００４４】
ノード間クロスバスイッチ１３では、データスイッチ１３０が送られたデータの転送先ポート番号によってクロスバのスイッチを切り替え、ノード１２にデータを転送する。
【００４５】
ノード間クロスバスイッチ１３から送られた転送データは、ノード１２のＲＣＵ１２５によって受信され、共有メモリ１２４に書き込まれる。以上のようにして、ノード間のデータ転送を行うことができる。
【００４６】
図２は、本実施例によるＣＰＵ３１の構成を示すブロック図である。なお、ＣＰＵ３１は、図１に示したＣＰＵ１１０、１１１、１１２、１１３、１２０、１２１、１２２、１２３と同様の構成である。
【００４７】
図２を参照すると、ＣＰＵ３１は命令制御部３２と、演算部３３と、メモリアクセス制御部３４と、処理ＲＣＵ決定回路３５で構成される。処理ＲＣＵ決定回路３５は、メモリアクセス制御部３４に含まれる。
【００４８】
命令制御部３２は、ＣＰＵ３１が処理する命令を共有メモリから読み出し、命令の内容に従い、演算部３３又はメモリアクセス制御部３４に対して動作を指示することができる。
【００４９】
演算部３３は、命令制御部３２から指示された内容に従い、内部レジスタ（図示しない）の内容を読み出して演算を行い、結果を内部レジスタに書き込むことができる。
【００５０】
また、メモリアクセス制御部３４は、命令制御部３２からの指示に従い、演算部３３で行った演算結果の共有メモリへの書き込み、演算データの共有メモリからの読み出しを行うことができる。
【００５１】
処理ＲＣＵ決定回路３５は、本発明にしたがって複数存在するＲＣＵの中からノード間データ転送命令を処理するＲＣＵを決定することができる。
【００５２】
また、メモリアクセスパス３６は、メモリへのアクセスに加えて、ＲＣＵへのリクエストパスも兼ねる。
【００５３】
命令制御部３２は、ノード間データ転送命令を検出すると、メモリアクセス制御部３４に対して命令の内容を添付して通知する。メモリアクセス制御部３４は、メモリアクセスパス３６をＲＣＵへのリクエストパスと共用するために、通知された内容をメモリアクセスのフォーマットに変換する。
【００５４】
図３は、本実施例によるメモリアクセスのフォーマットに変換したノード間データ転送命令の一例を示す図である。
【００５５】
なお、通知先、通知元等の詳細については、本実施例による動作のライト転送の詳細な説明の部分で説明する。
【００５６】
フォーマット変換の際、処理ＲＣＵ決定回路３５により、このノード間データ転送命令を処理するＲＣＵを決定し、図３のメモリアクセスフォーマット内の通知先を示すフィールドにＲＣＵ番号を添付する。
【００５７】
このようにフォーマット変換されたノード間データ転送命令は、メモリアクセスパス３６経由で共有メモリに送られ、共有メモリでは通知先フィールドの内容にしたがって所望のＲＣＵに通知する。
【００５８】
このように、ＣＰＵからのノード間データ転送命令は、共有メモリに送られ、次に共有メモリからＲＣＵに送信される。
【００５９】
図４は、本実施例によるＲＣＵ４１の構成を示すブロック図である。なお、ＲＣＵ４１は、図１に示したＲＣＵ１１７、１１８、１２５、１２６と同様の構成である。
【００６０】
図４を参照すると、リクエスト処理部４２は、図３に示したフォーマットでＣＰＵからＲＣＵへ送られたリクエストを、接続パス４７を介して共有メモリと接続するメモリアクセス制御部４５経由で受け取り、転送の内容にしたがって、ノード間データ送受信部４３、あるいはメモリアクセス制御部３４に対して動作を指示することができる。
【００６１】
ノード間データ送受信部４３は、データ転送パス４６によりノード間クロスバスイッチと接続され、他ノードとのデータあるいは制御情報のやり取りを行うことができる。
【００６２】
メモリアクセス制御部４５は、ノード内の共有メモリと接続パス４７により接続され、リクエスト処理部の指示に従って共有メモリとのデータあるいは制御情報のやり取りを行うことができる。
【００６３】
ステータス通信制御部４４は、本発明にしたがって設けられた回路であり、データ転送パス４６によって送られるノード間クロスバスイッチからのステータス情報を検出し、それをパス４８によってノード内の診断回路へ通知したり、診断回路からの指示によりデータ転送パス４６にてステータス情報を通知することができる。
【００６４】
また、図４に示したＲＣＵは、他のノードから送られたノード間データ転送命令に従い、ノード内の共有メモリからデータを読み出し、読み出したデータの要求元ノードへの転送、あるいは要求元ノードから送られた転送データをノード内の共有メモリに書き込む動作も行うことができる。
【００６５】
ノード間データ転送を行う際は、データ送信に先立って、ノード間データ送受信部４３に、データ転送の制御情報がデータ転送パス４６経由で送られる。なお、制御情報の詳細については、本実施例の動作における、ライト転送命令の説明における、ローカルノードにおける転送の部分で説明する。
【００６６】
送られた制御情報はリクエスト処理部４２に送られ、メモリアクセス制御部４５及びノード間データ送受信部４３に対して、制御情報にしたがった指示を出す。
【００６７】
メモリアクセス制御部４５はリクエスト処理部４２からの指示に従い、共有メモリとのデータのやり取りを行う。ノード間データ送受信部４３も、リクエスト処理部４２の指示に従い、他ノードとの制御信号あるいはデータのやり取りを行う。
【００６８】
図５は、本実施例によるデータスイッチ５０の構成を示す図である。なお、図１に示したデータスイッチ１３０、１４０は、データスイッチ５０と同様の構成である。
【００６９】
図５を参照すると、データスイッチ５０は、入力が４ポート、出力が４ポートの４×４クロスバスイッチで構成されている。
【００７０】
データスイッチ５０の入力０、１、２、３は、それぞれノード０、１、２、３に接続され、接続先は各ノードのＲＣＵ０となっている。また、データスイッチ５０の出力０、１、２、３も、それぞれノード０、１、２、３に接続され、接続先は各ノードのＲＣＵ０となっている。
【００７１】
データスイッチ５０は、４つの入力からそれぞれ４つの出力に同時にデータ転送を行うことができる。
【００７２】
データ転送は、入力ポートに接続するＲＣＵから送られる転送先ポート番号を指定することにより行われる。例えば、転送先ポート番号が０ならばデータスイッチの出力０、つまりノード０のＲＣＵ０に転送する。ここでＲＣＵ０は図１では、共有メモリに対して上と下にＲＣＵが接続されているが、上のＲＣＵに対応する。下のＲＣＵはＲＣＵ１に対応する。ＲＣＵ０、ＲＣＵ１を用いた説明は、実施例の動作の図６で行う。
【００７３】
次に、転送先ポート番号が１ならば出力１、つまりノード１のＲＣＵ０に転送する。このように、転送先ポート番号が示す値が出力ポートになり、そこに接続するＲＣＵに転送することになる。ポート番号の指定は、本実施例の動作で、詳細に説明するライト転送の場合には、ローカルノードにより行われる。
【００７４】
このようにノード間クロスバスイッチ５０は、転送先ポート番号を指定することにより、全ての入力ポートからの制御情報、データを全ての出力ポートに同時に送ることのできる構成となっている。
【００７５】
次に、本実施例による動作を、図を用いて詳細に説明する。複数のＣＰＵとそれらのＣＰＵに共有されたメモリを有するノードにおいて、ノード間データ転送命令は、ユーザプログラムが共有メモリ上のノード間転送キュー（命令の待ち行列）を確保し、確保したキューに転送に必要な転送パラメータを書き込み、その後ユーザプログラムが各ＣＰＵからパラメータ位置を示したノード間データ転送命令を発行することによって実現する。転送パラメータについては、以下で説明する。
【００７６】
本実施例においては、ユーザプログラムではＲＣＵが１つのみとしている。これは、ＲＣＵが複数あっても、ユーザプログラムからはＲＣＵは１つしか見えないことを意味する。
【００７７】
キューの確保においては、複数のＣＰＵ上のユーザプログラムが共有メモリ上の１つのキューに順次命令を積んでいく。これはユーザプログラムにＨＷ構成を意識させないためである。
【００７８】
図６は、本実施例を説明するためのノード間転送キューと命令を処理するＲＣＵの検出の一例を示す図である。なお、図右に示すＲＣＵの３列の配列及び図下に示すパラメータ格納アドレスは、後述する図６を用いたＲＣＵの決定の説明で使用する。
【００７９】
図６を参照すると、ノード間転送キューをユーザプログラムが順次確保し、確保したメモリアドレスにノード間データ転送命令に必要な転送パラメータが書き込まれた様子が示されている。
【００８０】
ノード間データ転送命令ごとに１２８Ｂ（バイト）の転送パラメータが書き込まれ、各転送命令はこの１２８Ｂ境界のアドレスをパラメータ格納アドレスとして命令で示し、これにより命令発行後、ＲＣＵがパラメータ格納アドレスから転送パラメータを読み出し、読み出された内容に従ってノード間データ転送を行っている。
【００８１】
図７は、本実施例を説明するためのノード間転送パラメータの一例を示す図である。
【００８２】
図７を参照すると、共有メモリ上にユーザプログラムによって書き込まれる転送パラメータの一例が示されている。転送パラメータは１２８Ｂを単位としており、その中にノード間転送に必要なパラメータを登録する。
【００８３】
図に示されるパラメータは、ノード間データ転送で多次元配列データの一部（サブアレイ）を効率よく一括転送するための２ディスタンス（メモリの番地の示す１方法における要素間距離）転送のパラメータ例であり、転送した結果正常終了か例外が発生したか等のステータスをメモリに書き込むアドレスを示す終了ステータス書き込みアドレス、８Ｂデータを１つの要素とした時の全転送量を要素数換算で示す総転送要素数、命令を発行するＣＰＵがあるノード（以下ローカルノードと記述する）の転送開始アドレス、ノード間転送におけるローカルノードの相手となるノード（以下リモートノードと記述する）の番号、リモートノード内の主記憶転送開始アドレス、ローカルノード、リモートノードそれぞれの、第１ディスタンス及び第２ディスタンスなどを含んでいる。
【００８４】
ノード間データ転送命令には、リモートノードのメモリからデータを読み出し、読み出したデータをリモートノードからローカルノードへ転送し、ローカルノードのメモリにデータを書き込むリード転送命令と、ローカルノードのメモリからデータを読み出し、読み出したデータをローカルノードからリモートノードに転送し、リモートノードのメモリに書き込むライト転送命令とがある。
【００８５】
以下では、ローカルノードからリモートノードへデータを転送する、ライト転送命令について詳細に動作を説明する。
【００８６】
最初にＣＰＵからのノード間データ転送命令のローカルノードへの通知、次にローカルノードにおけるデータ転送、次にリモートノードでのデータ取得の順にのべる。
【００８７】
以下、必要に応じて、図２、図３、図４の主要な部分を参照する。なお、以下ではローカルノードとリモートノードの２つのノードを対象に説明を行うため、図２、図４のＣＰＵあるいはＲＣＵについては、符号なしで説明を行う。
【００８８】
ユーザプログラムにより設定されたノード間データ転送命令は、ＣＰＵの命令制御部３２から発行される。
【００８９】
ノード間データ転送命令には、ライト転送であることの転送種別や、パラメータ格納アドレスなどの情報が含まれ、命令制御部３２はそれらの情報をメモリアクセス制御部３４に通知する。メモリアクセス制御部３４ではメモリアクセスパス３６経由でノード間データ転送命令をＲＣＵに送信するため、転送命令をメモリアクセスのフォーマットに変換する。
【００９０】
図３を参照すると、メモリアクセス制御部３４にてメモリアクセスフォーマットに変換したノード間データ転送命令の一例が示されている。
【００９１】
メモリアクセスフォーマットでは、リクエスト通知先（図では通知先と記載）の情報、リクエスト通知元（図では通知元と記載）の情報、命令コード、パラメータ格納アドレスなどの情報が含まれる。
【００９２】
後述するように、命令コードには、ライト転送であることを示す情報が含まれる。また、パラメータ格納アドレスには転送パラメータに関する情報が含まれる。
【００９３】
リクエスト通知元の情報には、転送命令を発行したＣＰＵの番号が含まれる．
ノード間データ転送命令の場合には、リクエスト通知先の情報に、転送を実行するＲＣＵの番号が、またパラメータ格納アドレス情報にユーザプログラムが確保され、図７に示したような、ノード間転送パラメータを書き込んだパラメータ格納アドレスが書き込まれる。
【００９４】
処理ＲＣＵ決定回路３５は、上記のパラメータ格納アドレスに基づき、図６に示すように処理ＲＣＵを決定し、リクエスト通知先情報を生成して、ノード間データ転送命令を設定して共有メモリに発行する。
【００９５】
図６に示したように、キューには順次命令が書き込まれるが、以下に述べるように、この命令を書き込んだメモリアドレスにより、当該命令を処理するＲＣＵを決定する。
【００９６】
本実施例では、ノード内にＲＣＵが２つあるが、図６のＲＣＵ２台の表示と同様で、転送パラメータ０を含んだ命令０はＲＣＵ０が処理し、転送パラメータ１を含んだ命令１はＲＣＵ１が処理し、転送パラメータ２を含んだ命令２はＲＣＵ０が処理するというように、パラメータ格納アドレスにより、処理するＲＣＵを割り当てていく。
【００９７】
この操作では、図６に示したようにＲＣＵが２台の場合は、図下に示したパラメータ格納アドレスの１２８Ｂ境界の７ｂｉｔを除く８ｂｉｔ目に、２台のＲＣＵを区別する情報を書き込み、転送命令を処理するＲＣＵを検出する。
【００９８】
処理ＲＣＵ検出回路３５で、リクエスト通知先情報を生成したノード間データ転送命令は、共有メモリに通知され、通知を受けた共有メモリは、リクエスト通知先情報により、本命令を所望のＲＣＵに送信する。
【００９９】
以上で、ノード間データ転送命令のローカルノードへの通知は終了する。
【０１００】
次に、ローカルノードにおけるデータ転送について説明する。
【０１０１】
最初に、ローカルノードに設置されたＲＣＵのメモリアクセス制御部４５は、共有メモリから図４のデータ転送パス４７経由でノード間データ転送命令を受付ける。
【０１０２】
次に、メモリアクセス制御部４５は、受信した要求をローカルノードに設置されたＣＰＵのリクエスト処理部４２に転送する。
【０１０３】
転送を受けたリクエスト処理部４２では、図３に示したフォーマットに含まれる命令コードからライト転送であることを確認し、パラメータ格納アドレスから転送パラメータを読み出すようメモリアクセス制御部３４に指示する。
【０１０４】
メモリアクセス制御部３４では、共有メモリの転送パラメータ格納アドレスから１２８Ｂ分のパラメータを読み出し、リクエスト処理部４２に転送する。
【０１０５】
リクエスト処理部４２では、図７に示したノード間転送パラメータの内容から、ローカルノードの主記憶転送開始アドレス、総転送要素数、ローカルノードの第１ディスタンス、第２ディスタンスの要素数をそれぞれ検出する。
【０１０６】
また、リクエスト処理部４２は、これらの情報に基づき、ライト転送の対象となる、ローカルノードの共有メモリに格納されているデータをＲＣＵに読み込むよう、メモリアクセス制御部３４に指示する。
【０１０７】
メモリアクセス制御部３４では、リモートノードへ転送するデータを共有メモリから読み出し、ノード間データ送受信部４３に提供する。
【０１０８】
ノード間データ送受信部４３では、共有メモリから読み出された転送データを、予め決められた単位ごとにバッファに格納し、決められた単位が格納されると、リクエスト処理部４２にその旨を通知する。
【０１０９】
リクエスト処理部４２では、決められた単位の転送データがバッファに溜まったことを通知されると、ノード間転送パラメータに書き込まれたリモートノード番号、リモートノード内主記憶転送開始アドレス、リモートノードの第１ディスタンス、第２ディスタンスをノード間データ送受信部４３に送り、データ転送を開始するように指示する。
【０１１０】
データ転送を開始する指示を受けた、ローカルノードのノード間データ送受信部４３は、データを送信する前に、リモートノード番号、リモートノード内主記憶転送開始アドレス、リモートノードの第１ディスタンス、第２ディスタンスを制御情報として、リモートノードに転送する。
【０１１１】
転送の際、ローカルノードでは、ポート番号生成回路によってリモートノードへ転送するためのノード間クロスバスイッチのルーティング情報（ポート番号）を生成する。
【０１１２】
以上で、ローカルノードにおけるデータ転送は終了する。
【０１１３】
次に、リモートノードでのデータ取得について説明する。
【０１１４】
ローカルノードで生成されたポート番号は、ノード間クロスバスイッチに送られ、これによりローカルノードのノード間データ送受信部４３からは、リモートノード番号、リモートノード内主記憶転送開始アドレス、リモートノードの第１ディスタンス、第２ディスタンスを制御情報としてノード間クロスバスイッチに送り、さらにバッファに格納されている、予め決められた単位の転送データを順次送出する。
【０１１５】
ノード間クロスバスイッチは、ポート番号によりクロスバのスイッチを切り替え、所望のポートへ制御情報、データを転送することによりリモートノードへ制御情報、転送データを転送する。
【０１１６】
リモートノードでは、送られた制御情報、転送データをＲＣＵ内のノード間データ送受信部４３が受け取り、制御情報はリクエスト処理部４２に送られ、転送データはノード間データ送受信部４３内のバッファに一旦格納される。
【０１１７】
制御情報を取得したリクエスト処理部４２では、内容からメモリアクセス制御部４５に対してリモートノード内に転送データを格納するための共有メモリアドレスを生成し、データ送受信部のバッファ内転送データの読み出し指示を行い、共にメモリアクセス制御部４５に送る。
【０１１８】
メモリアクセス制御部４５では、リクエスト処理部４２からの共有メモリアドレスとノード間データ送受信部４３からの転送データを取得し、共有メモリに対してメモリ書き込みリクエストとして発行する。
【０１１９】
以上述べたようにして、ノード間転送のライト転送は行われる。
【０１２０】
一方、ノード間転送のリード転送においては、ローカルノードからリモートノードへデータ読み出し指示を伝え、リモートノードにおいて共有メモリからのデータの読み出しが行われ、読み出されたデータはローカルノードにノード間クロスバスイッチ経由で送信され、ローカルノードは送信されたデータをローカルノード内の共有メモリに書き込むことにより行われる。
【０１２１】
次に、以上に示したマルチノードシステムにおいて、ノード間クロスバスイッチに障害が発生した場合の動作について、図１を用いて説明する。
【０１２２】
図８は、本実施例によるマルチノードシステムに障害が発生した場合の動作を説明するためのフローチャートである。なお、図１の主要な部分を参照して説明を行う．
図８を参照すると、ノード間クロスバスイッチ１３のデータスイッチ１３０に障害が発生した場合、診断装置１３２に障害報告が通知され、診断装置１３２は通知された障害内容からノード間クロスバスイッチ１３が重い障害にあるということを診断装置１３２で検出する（ステップ８０１）。
【０１２３】
診断装置１３２はノード間クロスバスイッチ１３が障害状態にあるというステータスを、全ノードに向けて通信するようステータス通信制御部１３１に指示する。
【０１２４】
指示を受けたステータス通信制御部１３１は、データ転送パス１５、１６を用いて、ノード間クロスバスイッチ１３が障害状態にあるというステータス通信を行う。この通信は高速通信のできるデータ転送パス１５、１６を用いて行われるため、全ノードに速やかに通知される（ステップ８０２）。
【０１２５】
ノード１１、１２に設けられたＲＣＵ１１５、１２５内のステータス通信制御部１１７、１２７は、ステータス通信を受信すると、通信内容をデコードして、ノード間クロスバスイッチ１３の障害状態を、ノード１１、１２に設けられた診断装置１１９、１２９へそれぞれ報告する（ステップ８０３）。
【０１２６】
報告を受けた診断装置１１９、１２９は、システム構成を切り替えるために全ノードのＣＰＵで動作中のソフトウエアに対して、転送命令を一時停止するように指示する（ステップ８０４）。
【０１２７】
また、診断装置１１９、１２９は、ノード間クロスバスイッチ１４に接続されたＲＣＵ１１６、１２６に設けられたステータス通信制御部１１８、１２８に対して、ノード間クロスバスイッチ１３が障害状態にあるというステータスをノード間クロスバスイッチ１４に通知するよう指示を出す（ステップ８０５）。
【０１２８】
この指示に基づき、ステータス通信制御部１１８、１２８はデータ転送パス１７、１８経由でノード間クロスバスイッチ１４にステータス通信を行う(ステップ８０６)。
【０１２９】
ノード間クロスバスイッチ１３が障害状態にあるという情報を受信したノード間クロスバスイッチ１４のステータス通信制御部１４１は、診断装置１４２に対して、ノード間クロスバスイッチ１３が障害状態にあることを報告する。
【０１３０】
報告を受けた診断装置１４２は、ノード間クロスバスイッチ１４のみを運用するというステータスに変更し、それによってノード間クロスバスイッチ１４のみの運用とするために、データスイッチ１４０の構成制御を行う(ステップ８０７)。
【０１３１】
構成制御が終了すると、診断装置１４２は、構成制御終了というステータスをステータス通信制御部１４１経由で、ノード１１、１２に通知する(ステップ８０８)。
【０１３２】
構成制御終了の情報を受信したノード１１、１２のステータス通信制御部１１８、１２８は、その旨をそれぞれ診断装置１１９、１２９に報告する。
【０１３３】
診断装置１１９、１２９はデータスイッチ１４０の構成制御終了の情報を受信すると、ノード内の各装置に対して、使用するノード間クロスバスイッチをノード間クロスバスイッチ１４のみとするための構成制御を行う。
【０１３４】
診断装置１１９、１２９の行う構成制御では、ＣＰＵ１１０、１１３、１２０、１２３の、図２に示した処理ＲＣＵ決定回路３５において、図７に示すノード間転送リクエストの通知先にＲＣＵ１１６、１２６を示す情報を設定するように構成情報の変更も行う(ステップ８０９)。
【０１３５】
これにより構成変更されたＲＣＵ１１６、１２６のみの構成情報に基づき、処理ＲＣＵ決定回路３５が処理ＲＣＵ決定を行う。
【０１３６】
これらのノード内装置の構成情報変更が終了すると、診断装置１１９、１２９は、ノード１１、１２のソフトウエアに対してノード間データ転送命令の再開指示を出し、これによりソフトウエアは再度ノード間データ転送命令の発行を開始する(ステップ８１０)。
【０１３７】
以上説明した動作により、ノード間クロスバスイッチ１３、１４に障害の発生した場合に、動的にシステム構成を変更することが可能になり、これによりノード間クロスバスイッチ１３、１４の障害がシステムダウンに陥ることを救済することができる。
【０１３８】
以上述べた本発明のマルチノードシステムは、複数のノード１１、１２と、ノードからの転送データを転送先のノードに送信するデータスイッチ１３０、１４０を備えた複数のノード間クロスバスイッチ１３、１４で構成され、ノード間クロスバスイッチを介してノード間のデータ転送を行うマルチノードシステムであって、スイッチに障害が発生した場合には、障害が発生したスイッチを備えたノード間クロスバスイッチ以外のノード間クロスバスイッチを経由してノード間のデータ転送を行うように制御し、スイッチに障害がない場合には、全てのノード間クロスバスイッチ１３、１４を経由してノード間のデータ転送を行う。
【０１３９】
以上説明した実施例によれば、ノード間クロスバスイッチ１３、１４を介してノード間のデータ転送を行うシステムにおいて、ノード１１、１２から多重化したクロスバスイッチ１３、１４を使用できるシステムとしているため、１つのクロスバスイッチに障害が発生した場合においても、システムダウンを防止することができる。
【実施例２】
【０１４０】
次に、本発明の第２の実施例について説明する。
【０１４１】
図９は、本実施例によるマルチノードシステムの構成を示すブロック図である。
【０１４２】
図９を参照すると、第１の実施例の場合よりも、大規模なシステムに対応するものであり、ノード間クロスバスイッチ６３、６４では、データスイッチを複数に分割し、それぞれのデータスイッチ６３０、６３１、６３２、６４０、６４１、６４２に診断装置６３５、６３６、６３７、６４５、６４６、６４７を設けた構成となっている。
【０１４３】
これはスイッチが大規模なノード数となってもデータ転送レイテンシ（データ送信に要する時間）を抑え高速データ転送できるようにクロスバ構成を１つのデータスイッチ内でｎ×ｎの単段スイッチとして使うために、１つのデータスイッチの転送するデータ転送幅を小さく分割することによって、複数のデータスイッチにより大きなクロスバ構成を搭載する場合の構成である。
【０１４４】
この場合、データスイッチも複数装置で構成されるため、システムとして統一された動作を行うためにはデータスイッチ間でのステータスも一致させる必要がある。
【０１４５】
なお、図９ではノードの数と１つのクロスバスイッチの数は共に３つの場合の一例を示してあるが、これにとらわれることなく、それぞれの数を任意に設定することができる。
【０１４６】
本実施例の構成において、一例としてノード間クロスバスイッチ６３内のデータスイッチ６３１にて障害が発生した場合の動作を説明する。
【０１４７】
データスイッチ６３１にて障害が発生すると、診断装置６３６がステータス通信制御部（図示しない）を介して、全ノード６０、６１、６２に対して、障害通知をステータス通信として行う。この障害通知は各ノードのステータス通信制御部を介して各ノード内の診断装置（図示しない）に報告される。
【０１４８】
各ノード内の診断装置は、受信したステータス通信に基づき、各ノード内のＣＰＵのソフトウエアに対して、転送命令を停止する指示を出す。また、クロスバスイッチ６４の全データスイッチ６４０、６４１、６４２に対して、クロスバスイッチ６３の障害通知を送信する。
【０１４９】
さらに、障害が発生したクロスバスイッチ６３の障害発生データスイッチ６３１以外のデータスイッチ６３０、６３２に対しても、診断装置６３６からの障害通知を送信する。
【０１５０】
以上の動作により、各データスイッチが自分の属するクロスバスイッチのステータスを把握することができ、それに基づいた動作を行うことが可能となる。
【０１５１】
クロスバスイッチ６３内のデータスイッチ６３０、６３１、６３２の各診断装置６３５、６３６、６３７は、クロスバスイッチ６３が障害状態にあるというステータスに基づいて構成情報の変更を行い、クロスバスイッチ６３内に残存する仕掛かり状態（途中まで進行した状態）をリセットして、障害スイッチ６３１の復旧による再組み込みの準備を行う。
【０１５２】
一方、クロスバスイッチ６４のデータスイッチ６４０、６４１、６４２は同様に、仕掛かり状態のリセットとクロスバスイッチ６４のみの転送とするための構成情報の変更を行い、構成変更処理が完了したら全ノードに対して構成変更完了通知を出す。
【０１５３】
各ノードは、ノード間クロスバスイッチ６４の全てのデータスイッチから構成変更完了通知を受信すると、ノード間クロスバスイッチ６４のみのノード間データ転送が行えるようにノード内の構成情報を変更し、処理終了後にソフトウエアにノード間転送再開指示を出し、ノード間クロスバスイッチ６４のみを使用したノード間データ転送に切り替えた、マルチノード運転を再開する。
【０１５４】
以上説明したように、ノード間クロスバスイッチが複数のデータスイッチで構成されるような大規模マルチノードシステムにおいてもノード間クロスバスイッチ障害によるシステムダウンを回避し、継続運転を可能としている。
【実施例３】
【０１５５】
次に、本発明の第３の実施例について説明する。
【０１５６】
前述した複数の実施例は、通常は２台のノード間クロスバスイッチがノード間転送のスイッチとして用いられ、何れかのクロスバスイッチに障害が発生すると、ノード間転送性能を半分に低下して１台のクロスバスイッチで動作を継続するというものであった。
【０１５７】
本実施例では、複数のクロスバスイッチのうち、１つあるいは複数のクロスバスイッチが冗長構成としてシステムに組み込まれており、１つのクロスバスイッチの障害が転送性能に影響しないようなシステムの説明を行う。
【０１５８】
構成は第２の実施例と同様であるが、ノード間クロスバスイッチ６３を運用系、ノード間クロスバスイッチ６４を冗長系とした場合の動作の一例について、図９を用いて説明する。
【０１５９】
ノード間クロスバスイッチ６３が運用系であるため、ノードの構成情報はノード間クロスバスイッチ６３のみを使用している状態にある。このような状態で、ノード間クロスバスイッチ６３のデータスイッチ６３１にて障害が発生した場合、データスイッチ６３１から全ノードに対して、ノード間クロスバスイッチ６３で障害が発生した旨の通知を行う。
【０１６０】
通知を受信した各ノードは、ソフトウエアに対してノード間データ転送命令の停止指示を出す一方、ノード間クロスバスイッチ６３側の全データスイッチ６３０、６３１、６３２に対して、ノード間クロスバスイッチ６３に障害が発生したという通知を発行する。
【０１６１】
ノード間クロスバスイッチ６３の各データスイッチは、通知を受信するとノード間クロスバスイッチ６３に障害があるという状態に診断装置６３５、６３６、６３７のステータスを変更し、ノード間クロスバスイッチ６３内に残存する仕掛かり状態をリセットして、障害の発生したデータスイッチ６３１の復旧による再組み込みの準備を行う。
【０１６２】
その後、障害の発生したデータスイッチ６３１の修理が完了し、組み込み可能となると、データスイッチ６３１は各ノードに対して修理完了通知を出し、各ノードはこれをノード間クロスバスイッチ６３の全スイッチに通知する。
【０１６３】
修理完了を受信したノード間クロスバスイッチ６３の各データスイッチは、ステータスを障害状態というステータスから、ノード間クロスバスイッチ６４の冗長系として待機する待機状態というステータスに変更する。
【０１６４】
このステータス変更により、前回は運用系であったノード間クロスバスイッチ６３は、今回は冗長系として運用される。
【０１６５】
一方、ノード間クロスバスイッチ６４のデータスイッチ６４０、６４１、６４２に対しては、ノード６０、６１、６２はノード間クロスバスイッチ６３のデータスイッチ６３１での障害通知を契機に運用系に変更する運用系通知を出し、ノード間クロスバスイッチ６４の各データスイッチのステータスを、冗長系から運用系に変更し、ステータス変更完了通知を全ノードに通知する。
【０１６６】
完了通知をノード間クロスバスイッチ６４のデータスイッチ６４０、６４１、６４２から受信したノードは、ノード間クロスバスイッチ６４のみのノード間データ転送が行えるようにノード内の構成情報を変更し、処理終了後にソフトウエアにノード間転送再開指示を出し、ノード間クロスバスイッチ６４のみを使用したノード間データ転送を行う、マルチノード運転を再開する。
【０１６７】
以上説明したように、運用系のノード間クロスバスイッチと冗長系の待機系ノード間クロスバスイッチを設けることにより、ノード間クロスバスイッチに障害が発生してもシステムダウンせず、更にノード間データ転送性能を低下させることなくマルチノードシステムの継続運転が可能となる。
【０１６８】
本発明のノード間クロスバスイッチ１３は、その動作をハードウェア的に実現することは勿論として、上記した各機能を実行するスイッチプログラム（アプリケーション）３００をコンピュータ処理装置であるノード間クロスバスイッチ１３で実行することにより、ソフトウェア的に実現することができる。このスイッチプログラム３００は、磁気ディスク、半導体メモリその他の記録媒体に格納され、その記録媒体からノード間クロスバスイッチ１３にロードされ、その動作を制御することにより、上述した各機能を実現する。
【０１６９】
また、同様に、本発明のノード１１も、その動作をハードウェア的に実現することができる。すなわち、上記した各機能を実行するノードプログラム（アプリケーション）１００をコンピュータ処理装置であるノード１１で実行することにより、ソフトウェア的に実現することができる。このノードプログラム１００は、磁気ディスク、半導体メモリその他の記録媒体に格納され、その記録媒体からノード１１にロードされ、その動作を制御することにより、上述した各機能を実現するものである。
【０１７０】
以上好ましい複数の実施例をあげて本発明を説明したが、本発明は必ずしも、上記実施例に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
【図面の簡単な説明】
【０１７１】
【図１】本発明の第１の実施例によるマルチノードシステムの構成を示すブロック図である。
【図２】本発明の第１の実施例によるＣＰＵの構成を示すブロック図である。
【図３】本発明の第１の実施例によるメモリアクセスのフォーマットに変換したノード間データ転送命令の一例を示す図である。
【図４】本発明の第１の実施例によるＲＣＵの構成を示すブロック図である。
【図５】本発明の第１の実施例によるデータスイッチの構成を示す図である。
【図６】本発明の第１の実施例を説明するためのノード間転送キューと命令を処理するＲＣＵの検出の一例を示す図である。
【図７】本発明の第１の実施例を説明するためのノード間転送パラメータの一例を示す図である。
【図８】本発明の第１の実施例によるマルチノードシステムに障害が発生した場合の動作を説明するためのフローチャートである。
【図９】本発明の第２の実施例によるマルチノードシステムの構成を示すブロック図である。
【図１０】従来技術を説明するための図である。
【符号の説明】
【０１７２】
１１、１２：ノード
１３、１４：ノード間クロスバスイッチ
１５、１６、１７、１８：データ転送パス
２１、２２：ノード
２３：ノード間クロスバスイッチ
３１：ＣＰＵ
３２：命令制御部
３３：演算部
３４：メモリアクセス制御部
３５：処理ＲＣＵ決定回路
３６：メモリアクセスパス
４１：ＲＣＵ
４２：リクエスト処理部
４３：ノード間データ送受信部
４４：ステータス通信制御部
４５：メモリアクセス制御部
４６：データ転送パス
４７：接続パス
４８：パス
５０：データスイッチ
６０、６１、６２：ノード
６３、６４：ノード間クロスバスイッチ
１００：ノードプログラム
１１０、１１１、１１２、１１３：ＣＰＵ
１１４、１２４：共有メモリ
１１５、１１６：ＲＣＵ
１１７、１１８：ステータス通信制御部
１１９、１２９：診断装置
１２０、１２１、１２２、１２３：ＣＰＵ
１２５、１２６：ＲＣＵ
１２７、１２８：ステータス通信制御部
１３０、１４０：データスイッチ
１３１、１４１：ステータス通信制御部
１３２、１４２：診断装置
２１０、２１１、２２０、２２１：ＣＰＵ
２１２、２１３、２２２、２２３：ＲＣＵ
２１４、２２４：共有メモリ
３００：スイッチプログラム
６３０、６３１、６３２：データスイッチ
６３５、６３６、６３７：診断装置
６４０、６４１、６４２：データスイッチ
６４５、６４６、６４７：診断装置
【図１】
2006039897.tif 000003
【図２】
2006039897.tif 000004
【図３】
2006039897.tif 000005
【図４】
2006039897.tif 000006
【図５】
2006039897.tif 000007
【図６】
2006039897.tif 000008
【図７】
2006039897.tif 000009
【図８】
2006039897.tif 000010
【図９】
2006039897.tif 000011
【図１０】
2006039897.tif 000012