(57)【特許請求の範囲】
【請求項１】
複数のＣＰＵモジュールと複数の入出力モジュール間で相互にパケット転送するコンピュータシステムにおいて、
前記複数のＣＰＵモジュールと複数の入出力モジュール間を多重化した複数の経路によって接続し、
前記複数のＣＰＵモジュールと複数の入出力モジュール間に、多重化した複数の前記経路のスイッチングを行う複数のスイッチングモジュールを並列に備え、
前記複数のＣＰＵモジュールと複数の入出力モジュールは、パケットを前記経路数分複製して前記経路に出力し、かつ複数の前記経路から入力した複数の前記複製パケットのうち、最先に受信したパケットを選択することを特徴とするコンピュータシステム。
【請求項２】
前記複数のＣＰＵモジュールと複数の入出力モジュールは、
送信するパケットを複数の前記経路数分複製して送信先に出力する出力制御部と、
複数の前記経路から受信した前記複製パケットを識別して、最先に受信したパケットのみを選択する入力制御部を備えることを特徴とする請求項１に記載のコンピュータシステム。
【請求項３】
前記出力制御部は、
送信するパケットに対して、当該パケットを一意に識別する識別情報を付加する手段と、識別情報を付加した前記パケットを複数の経路分複製して出力する手段を備え、
前記入力制御部は、
受信したパケットの前記識別情報を識別し、同一の識別情報が付加された前記パケットのうち、最先のものを受信して他のパケットを破棄する選択手段を備えることを特徴とする請求項１又は請求項２に記載のコンピュータシステム。
【請求項４】
前記複数のＣＰＵモジュールと複数の入出力モジュールは、
複数の前記経路に対応して受信したパケットのエラーを検出する手段と、前記パケットの消失を検出する手段を備えることを特徴とする請求項１から請求項３の何れか一つに記載のコンピュータシステム。
【請求項５】
前記複数のＣＰＵモジュールと複数の入出力モジュール間を通信ネットワークを介して接続することを特徴とする請求項１から請求項４の何れか一つに記載のコンピュータシステム。
【請求項６】
コンピュータシステム内の複数のＣＰＵモジュールと複数の入出力モジュール間でデータを相互にパケット転送する通信方法において、
多重化した複数の経路によって互いに接続した前記複数のＣＰＵモジュールと複数の入出力モジュールが、送信するパケットを前記経路数分複製して、複数の前記経路に出力し、
前記複数のＣＰＵモジュールと複数の入出力モジュール間に並列に備えられた、多重化した複数の前記経路のスイッチングを行う複数のスイッチングモジュールが、発信された前記パケットを送信先の前記複数のＣＰＵモジュール又は複数の入出力モジュールに対して送信し、
前記複数のＣＰＵモジュールと複数の入出力モジュールが、複数の前記経路から入力した複数の前記複製パケットのうち、最先に受信したパケットを選択することを特徴とするモジュール間の通信方法。
【請求項７】
前記複数のＣＰＵモジュールと複数の入出力モジュールでは、
複数の前記経路から受信した前記複製パケットを識別して、最先に受信したパケットのみを選択することを特徴とする請求項６に記載のモジュール間の通信方法。
【請求項８】
前記複数のＣＰＵモジュールと複数の入出力モジュールでは、
送信するパケットに対して、当該パケットを一意に識別する識別情報を付加し、
前記識別情報を付加した前記パケットを複数の経路分複製して出力し、
受信したパケットの前記識別情報を識別し、同一の識別情報が付加された前記パケットのうち、最先のものを受信して他のパケットを破棄することを特徴とする請求項６又は請求項７に記載のモジュール間の通信方法。
【請求項９】
前記複数のＣＰＵモジュールと複数の入出力モジュールでは、
複数の前記経路に対応して受信したパケットのエラーと、前記パケットの消失を検出することを特徴とする請求項６から請求項８の何れか一つに記載のモジュール間の通信方法。
【請求項１０】
データを相互にパケット転送する複数のＣＰＵモジュールと複数の入出力モジュールを備えるコンピュータのモジュールにおいて、
前記複数のＣＰＵモジュールと複数の入出力モジュール間を多重化した複数の経路と、多重化した複数の前記経路のスイッチングを行う複数並列に設けられたスイッチングモジュールとを介して接続し、
前記複数のＣＰＵモジュールと複数の入出力モジュールが、パケットを前記経路数分複製して前記経路に出力し、かつ複数の前記経路から入力した複数の前記複製パケットのうち、最先に受信したパケットを選択することを特徴とするコンピュータシステムのモジュール。
【請求項１１】
前記複数のＣＰＵモジュールと複数の入出力モジュールに、
送信するパケットを複数の前記経路数分複製して送信先に出力する出力制御部と、
複数の前記経路から受信した前記複製パケットを識別して、最先に受信したパケットのみを選択する入力制御部を備えることを特徴とする請求項１０に記載のコンピュータシステムのモジュール。
【請求項１２】
前記出力制御部は、
送信するパケットに対して、当該パケットを一意に識別する識別情報を付加する手段と、識別情報を付加した前記パケットを複数の経路分複製して出力する手段を備え、
前記入力制御部は、
受信したパケットの前記識別情報を識別し、同一の識別情報が付加された前記パケットのうち、最先のものを受信して他のパケットを破棄する選択手段を備えることを特徴とする請求項１０又は請求項１１に記載のコンピュータシステムのモジュール。
【請求項１３】
複数の前記経路に対応して受信したパケットのエラーを検出する手段と、前記パケットの消失を検出する手段を備えることを特徴とする請求項１０から請求項１２の何れか一つに記載のコンピュータシステムのモジュール。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータシステムに関し、特に、内部に備えるモジュール間においてパケット転送によりデータを送受するコンピュータシステムとそのモジュール間の通信方法に関する。
【０００２】
【従来の技術】
図１８は、内部に備える複数のモジュール間においてパケット転送によりデータを送受する従来のコンピュータシステムの構成を示すブロック図である。
【０００３】
図１８の従来のコンピュータシステムにおいては、図１９のブロック図に示されるＣＰＵモジュール２０ａと、図２０のブロック図に示される入出力モジュール３０ａ（ＩＯモジュール）とを１対１で接続し、かつＣＰＵモジュール２０ａ同士をモジュールインターコネクト４０により接続する構成のコンピュータシステムが示されている。
【０００４】
図１９を参照すると、ＣＰＵモジュール２０ａは、ＣＰＵ及びメインメモリ、それらの間のデータの送受を制御するＣＰＵモジュールコントローラ２１ａを備えている。また図２０を参照すると、入出力モジュール３０ａは、末端の入出力アダプタとのブリッジ機能を制御する入出力モジュールコントローラ３１ａを備えている。
【０００５】
またこのような従来のコンピュータシステムの、特に高可用性を要する場合においては、各ＣＰＵモジュール２０ａをシステム運用中においても挿抜が可能な交換機能（ホットスワップ機能）を備えるものがある。この機能は、一部のＣＰＵモジュール２０ａに故障が発生した場合において、システム自体のダウンを回避し、故障ＣＰＵモジュール２０ａの交換を可能とするのである。
【０００６】
しかし、上記の障害対応の機能を適用した従来のコンピュータシステムでは、故障したＣＰＵモジュール２０ａのホットスワップを行う際に、故障したＣＰＵモジュール２０ａを取り外すためには、その配下の運用接続可能な故障のない入出力モジュール３０ａをも取り外すことが必要となるという問題点があった。
【０００７】
この問題点に対応するための従来の技術としては、図２１の例に示される、スイッチングモジュール１０を介して入出力モジュール３０ａとＣＰＵモジュール２０ａとを接続する構成のコンピュータシステムがある。このような構成を採用することにより、入出力モジュール３０ａとＣＰＵモジュール２０ａの接続に柔軟性を持たせることを実現している。例えば、故障したＣＰＵモジュール２０ａをシステムから切り離した場合に、スイッチングモジュール１０を介することで、その切り離したＣＰＵモジュール２０ａの配下の入出力モジュール３０ａに対し、他のＣＰＵモジュール２０ａからのアクセスが可能となる。
【０００８】
更に同様にして、図２２の例に示されるように、各ＣＰＵモジュール２０ａと入出力モジュール３０ａとをネットワーク５０を介して接続することにより、大規模なコンピュータシステムを実現することもできる。
【０００９】
【発明が解決しようとする課題】
上述したように従来のコンピュータシステムでは、一部のＣＰＵモジュール２０ａに障害が発生した場合においても、システム全体の機能に障害が及ぶことが多く、高可用性（High Availability）の実現が困難であった。
【００１０】
この問題は、図２１、図２２の従来のコンピュータシステムにおいても、スイッチングモジュール１０やネットワーク５０上において、パケットロストあるいはデータエラーが発生した場合には、同様にシステム全体の機能に障害が及ぶことが多かった。例えば、システムとして重要なＣＰＵ−入出力間のトランザクションにおいては、１パケットのエラーが元でシステム全体の継続運用ができなくなり、システムダウンとなる場合もあった。
【００１１】
ここでの、スイッチングモジュール１０やネットワーク５０では、接続距離が長くなるに従い故障発生率が増加することになり、システム規模が大きい場合にはこれらを原因とする故障の発生も多くなる。このため、高可用性を実現するためには、モジュール間の経路に故障が発生した場合においても、システム全体を継続運用するための機能を新たに実現することが必要である。
【００１２】
本発明の目的は、上記従来技術の欠点を解決し、モジュール間の通信経路の多重化を実現し、極めて高い可用性を実現するコンピュータシステムとそのモジュール間の通信方法を提供することである。
【００１３】
【課題を解決するための手段】
上記目的を達成する本発明は、複数のＣＰＵモジュールと複数の入出力モジュール間で相互にパケット転送するコンピュータシステムにおいて、前記複数のＣＰＵモジュールと複数の入出力モジュール間を多重化した複数の経路によって接続し、前記複数のＣＰＵモジュールと複数の入出力モジュール間に、多重化した複数の前記経路のスイッチングを行う複数のスイッチングモジュールを並列に備え、前記複数のＣＰＵモジュールと複数の入出力モジュールは、パケットを前記経路数分複製して前記経路に出力し、かつ複数の前記経路から入力した複数の前記複製パケットのうち、最先に受信したパケットを選択することを特徴とする。
【００１４】
上記本発明のコンピュータシステムでは、モジュール間の通信経路を多重化することにより、極めて高い可用性を実現することができ、ＣＰＵと入出力との経路上の故障が引き起こすパケット損傷が原因となるシステムダウンを解消する。
【００１５】
請求項２の本発明によれば、前記複数のＣＰＵモジュールと複数の入出力モジュールは、送信するパケットを複数の前記経路数分複製して送信先に出力する出力制御部と、複数の前記経路から受信した前記複製パケットを識別して、最先に受信したパケットのみを選択する入力制御部を備えることを特徴とする。
【００１６】
請求項３の本発明によれば、前記出力制御部は、送信するパケットに対して、当該パケットを一意に識別する識別情報を付加する手段と、識別情報を付加した前記パケットを複数の経路分複製して出力する手段を備え、前記入力制御部は、受信したパケットの前記識別情報を識別し、同一の識別情報が付加された前記パケットのうち、最先のものを受信して他のパケットを破棄する選択手段を備えることを特徴とする。
【００１７】
請求項４の本発明によれば、前記複数のＣＰＵモジュールと複数の入出力モジュールは、複数の前記経路に対応して受信したパケットのエラーを検出する手段と、前記パケットの消失を検出する手段を備えることを特徴とする。
【００１８】
請求項５の本発明によれば、前記複数のＣＰＵモジュールと複数の入出力モジュール間を通信ネットワークを介して接続することを特徴とする。
【００１９】
請求項６の本発明によれば、コンピュータシステム内の複数のＣＰＵモジュールと複数の入出力モジュール間でデータを相互にパケット転送する通信方法において、多重化した複数の経路によって互いに接続した前記複数のＣＰＵモジュールと複数の入出力モジュールが、送信するパケットを前記経路数分複製して、複数の前記経路に出力し、前記複数のＣＰＵモジュールと複数の入出力モジュール間に並列に備えられた、多重化した複数の前記経路のスイッチングを行う複数のスイッチングモジュールが、発信された前記パケットを送信先の前記複数のＣＰＵモジュール又は複数の入出力モジュールに対して送信し、前記複数のＣＰＵモジュールと複数の入出力モジュールが、複数の前記経路から入力した複数の前記複製パケットのうち、最先に受信したパケットを選択することを特徴とする。
【００２０】
請求項７の本発明によれば、前記複数のＣＰＵモジュールと複数の入出力モジュールでは、複数の前記経路から受信した前記複製パケットを識別して、最先に受信したパケットのみを選択することを特徴とする。
【００２１】
請求項８の本発明によれば、前記複数のＣＰＵモジュールと複数の入出力モジュールでは、送信するパケットに対して、当該パケットを一意に識別する識別情報を付加し、前記識別情報を付加した前記パケットを複数の経路分複製して出力し、受信したパケットの前記識別情報を識別し、同一の識別情報が付加された前記パケットのうち、最先のものを受信して他のパケットを破棄することを特徴とする。
【００２２】
請求項９の本発明によれば、前記複数のＣＰＵモジュールと複数の入出力モジュールでは、複数の前記経路に対応して受信したパケットのエラーと、前記パケットの消失を検出することを特徴とする。
【００２３】
請求項１０の本発明によれば、データを相互にパケット転送する複数のＣＰＵモジュールと複数の入出力モジュールを備えるコンピュータのモジュールにおいて、前記複数のＣＰＵモジュールと複数の入出力モジュール間を多重化した複数の経路と、多重化した複数の前記経路のスイッチングを行う複数並列に設けられたスイッチングモジュールとを介して接続し、前記複数のＣＰＵモジュールと複数の入出力モジュールが、パケットを前記経路数分複製して前記経路に出力し、かつ複数の前記経路から入力した複数の前記複製パケットのうち、最先に受信したパケットを選択することを特徴とする。
【００２４】
請求項１１の本発明によれば、前記複数のＣＰＵモジュールと複数の入出力モジュールに、送信するパケットを複数の前記経路数分複製して送信先に出力する出力制御部と、複数の前記経路から受信した前記複製パケットを識別して、最先に受信したパケットのみを選択する入力制御部を備えることを特徴とする。
【００２５】
請求項１２の本発明によれば、前記出力制御部は、送信するパケットに対して、当該パケットを一意に識別する識別情報を付加する手段と、識別情報を付加した前記パケットを複数の経路分複製して出力する手段を備え、前記入力制御部は、受信したパケットの前記識別情報を識別し、同一の識別情報が付加された前記パケットのうち、最先のものを受信して他のパケットを破棄する選択手段を備えることを特徴とする。
【００２６】
請求項１３の本発明によれば、複数の前記経路に対応して受信したパケットのエラーを検出する手段と、前記パケットの消失を検出する手段を備えることを特徴とする。
【００３２】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【００３３】
図１は、本発明の第１の実施の形態によるコンピュータシステムの構成を示すブロック図であり、複数のＣＰＵモジュール２０がスイッチングモジュール１０を介して、複数の入出力モジュール３０（ＩＯモジュール）と接続している。また、ＣＰＵモジュール２０間は、モジュールインターコネクト４０により接続している。上記ＣＰＵモジュール２０、入出力モジュール３０及びスイッチングモジュール１０は、例えばそれぞれ個別の筐体で構成される。
【００３４】
本実施の形態においては、コンピュータシステム内の、このＣＰＵモジュール２０と入出力モジュール３０との間のデータのパケット転送を、複数の経路（通信経路）に多重化することにより、高可用性を実現することを特徴とする。またここでは、これらの多重化した経路によりパケットを送受するモジュールを（つまり、ＣＰＵモジュール２０と入出力モジュール３０を）、高可用性モジュールと呼ぶこととする。なお、本発明ではＣＰＵモジュール２０と入出力モジュールの入出力ポートを多重化する必要があるけれども、近年のデバイス技術の向上によって部品点数を増やすことなく入出力ポートの多重化が可能にしている。
【００３５】
以下の説明においては特に、２つのスイッチングモジュール１０を備えて、ＣＰＵモジュール２０と入出力モジュール３０との間を２つの通信経路に多重化する例により、本実施の形態の通信を説明する。しかし、通信経路を多重化する本数（スイッチングモジュール１０の数）は、いくつ備えるものとした場合においても同様にして以下の通信を実現することができ、また、ＣＰＵモジュール２０や入出力モジュール３０の数についても同様に、いくつ備えるものとしてもよい。
【００３６】
図２は、本実施の形態のＣＰＵモジュール２０の構成を示すブロック図であり、図３は、本実施の形態の入出力モジュール３０の構成を示すブロック図である。
【００３７】
本実施の形態のＣＰＵモジュール２０は、内部にいくつかのＣＰＵとメインメモリ、それらへのデータの授受を制御するモジュールコントローラ２１を備えている。モジュールコントローラ２１には、第１と第２の２本の入出力ポートが備えられ、それぞれに第１と第２のスイッチングモジュール１０に接続される。
【００３８】
本実施の形態の入出力モジュール３０は、末端の入出力アダプタとのブリッジ機能を持つ入出力モジュールコントローラ３１を備えている。この入出力モジュールコントローラ３１に関しても同様に、第１と第２の２個の入出力ポートを備えて、それぞれに第１と第２のスイッチングモジュール１０に接続される。
【００３９】
図１に示されるように、各ＣＰＵモジュール２０と各入出力モジュール３０は、それぞれの入出力ポート部２２、３２の入出力ポート毎にスイッチングモジュール１０を介して接続されている。例えば、各ＣＰＵモジュール２０の第１入出力ポート２６ａは、第１スイッチングモジュール１０を介して各入出力モジュール３０の第１入出力ポート３６ａに接続されており、各ＣＰＵモジュール２０の第２入出力ポート２６ｂは、第２スイッチングモジュール１０を介して各入出力モジュール３０の第２入出力ポート３６ｂに接続されている。
【００４０】
スイッチングモジュール１０は、各ＣＰＵモジュール２０と各入出力モジュール３０との間で送受信されるパケットの、スイッチングを行うモジュールである。ここでパケットとは、ＣＰＵモジュール２０と入出力モジュール３０との間で送受するデータを、転送先の情報を付加してまとめられた一つのデータの単位である。パケットにより送受するデータの内容には、例えばデータの読み出し要求、データの書き込み要求、データの読み出し要求に対する応答データ等がある。
【００４１】
スイッチングモジュール１０を通すことにより、任意のＣＰＵモジュール２０から任意の入出力モジュール３０へのパケット転送が可能となる。また、同様に任意の入出力モジュール３０から任意のＣＰＵモジュール２０へのパケットの転送が可能となる。
【００４２】
ここで、図１の例においては、各ＣＰＵモジュール２０と各入出力モジュール３０とがそれぞれ１対１に対応しており、ＣＰＵモジュール２０から入出力モジュール３０へのパケット転送は、全て必ずモジュールインターコネクト４０を通り、ターゲットとなる入出力モジュール３０に対応するＣＰＵモジュール２０を経由して転送する方式である。例えば、図１では、＃０のＣＰＵモジュール２０は、＃０の入出力モジュール３０に対応しており、もし＃３ＣＰＵモジュール２０から＃０入出力モジュール３０にパケットを発光する場合には、一旦モジュールインターコネクト４０を通り＃０ＣＰＵモジュール２０に転送され、この＃０ＣＰＵモジュール２０を経由して＃０入出力モジュール３０に送られる。
【００４３】
また同様に、入出力モジュール３０からＣＰＵモジュール２０へのパケット転送も、送信元の入出力モジュール３０に対応するＣＰＵモジュール２０を経由し、モジュールインターコネクト４０を通り、目的のＣＰＵモジュール２０へと転送される。例えば、図１で、＃１入出力モジュール３０から＃２ＣＰＵモジュール２０へのパケット転送を行う場合、一旦＃１ＣＰＵモジュール２０へのパケット送信がスイッチングモジュール１０を介して行われ、その後、＃１ＣＰＵモジュール２０からモジュールインターコネクト４０を介して、＃２ＣＰＵモジュール２０へパケットが送られる。
【００４４】
このように、スイッチングモジュール１０を経由するパスでは、送信元と受信先は１対１に対応している。このような手法は、ソフトウェアのオーダリングモデルにおけるストロングオーダリングをシステム全体として保障するために、マルチプロセッサシステムにおいては一般的に用いられている入出力アクセス手順である。
【００４５】
図１０に、上記スイッチングモジュール１０の構成例を示す。図１０において、スイッチングモジュール１０は、ＣＰＵモジュール２０又は入出力モジュール３０から送られるパケットを入力するＦＩＦＯバッファからなる入力部１１、入力したパケットを所定のＣＰＵモジュール２０又は入出力モジュール３０に出力するセレクタ１２及びセレクタ１２の切替えを制御するアービトレーション回路１３から構成されている。
【００４６】
図４は、本実施の形態の各ＣＰＵモジュール２０が備える入出力ポート部２２の構成を示すブロック図であり、入力方向及び出力方向の２方向のパスを備えている。また、各入出力モジュール３０の側の入出力ポート部３２の構成についても上記入出力ポート部２２と同様の構成である。
【００４７】
２つの第１及び第２入出力ポート２６ａ、２６ｂ（３６ａ、３６ｂ）から入力される入力パケットは、それぞれ入力制御部２４へ入力され、入力制御部２４を経てＣＰＵモジュールコントローラ２１（又同様に、入出力モジュールコントローラ３１）の内部回路へと入力される。
【００４８】
また、当該コントローラ内部回路からの出力パケットは、出力制御部２３を経て、第１、第２の入出力ポート２６ａ、２６ｂ（３６ａ、３６ｂ）それぞれへ出力される。
【００４９】
図５は、本実施の形態の出力制御部２３の構成を示すブロック図であり、その構成はＣＰＵモジュール２０と入出力モジュール３０の双方において同様である。
【００５０】
出力制御部２３は、ＣＰＵモジュールコントローラ２１の内部回路（あるいは、入出力モジュールコントローラ３１の内部回路）から送られるパケットに当該パケットを一意に識別するためのシーケンシャルな番号を付加するＩＤ付加回路２３−１と、ＩＤ付加回路２３−１から出力されたＩＤ付きパケットを複製して、第１、第２入出力ポート２６ａ、２６ｂ（３６ａ、３６ｂ）に送信するマルチキャスト回路２３−３を備えている。
【００５１】
ＩＤ付加回路２３−１で付加される番号であるＩＤカウンタの値は、０→１→２→３→…→ｎと、パケットを送るごとにインクリメントされ、ある定められた値“ｎ”の次には再度“０”に戻るようにカウントする。
【００５２】
図６は、本実施の形態によるコンピュータシステム内のモジュール間において送受するパケットの構成の一例を示す図である。図６の例では、図５のポート部から出力されるパケットを、ＣＰＵモジュールコントローラ２１の内部回路（あるいは、入出力モジュールコントローラ３１の内部回路）から送られるパケットに更にパケットＩＤを付加して構成している。このパケットＩＤには、前述のＩＤカウンタの値が記録され、受信側のモジュールにおいて当該パケットを識別するために用いられる。
【００５３】
図７は、本実施の形態の入力制御部２４の構成を示すブロック図であり、その構成はＣＰＵモジュール２０と入出力モジュール３０の双方において同様である。
【００５４】
各ポートにおいて受信したパケットは、それぞれのポートのパケット消失検出回路２４−１に入力される。更に、それぞれのパケット消失検出回路２４−１の出力は、全て先着パケット選択回路２４−２に入力される。この先着パケット選択回路２４−２から出力されるパケットが、最終的にＣＰＵモジュールコントローラ２１（又は、入出力モジュールコントローラ３１）の内部回路に入力される。
【００５５】
図８は、本実施の形態のパケット消失検出回路２４−１の構成を示すブロック図である。入力制御部２４の各パケット消失検出回路２４−１は、図８に示される、０→１→２→３→…→ｎ→０とインクリメント動作をするＩＤチェックカウンタ２４−１ａとパケットＩＤ比較回路２４−１ｂを備え、各送信元がポート出力時に送信パケットに付加したパケットＩＤとの値の比較を行っている。
【００５６】
パケットが経路の途上において消失した場合には、受信したパケットＩＤとＩＤチェックカウンタとの値に不一致が発生することとなり、これによりパケット消失検出回路２４−１は、パケットの消失を検出することができる。またこのため、送信元が最初に送るパケットＩＤとＩＤチェックカウンタ２４−１ａの初期値とは、同じ値とする。なお、上記パケット消失検出回路２４−１は、スイッチングモジュール１０側に設けることも可能である。
【００５７】
図９は、本実施の形態の先着パケット選択回路２４−２の構成を示すブロック図である。入力制御部２４の先着パケット選択回路２４−２は、図９に示すように、パケットＩＤ比較回路２４−２ａにおいてそれぞれの第１、第２入出力ポート３６ａ、３６ｂより入力されたパケットに付加されるているパケットＩＤ（ＩＤカウンタ）の値を検出してその大小を比較し、その結果に基づき、マルチプレクサ２４−２ｂにおいて２つの経路の内でパケットの流れが先行している経路がどちらかを判断し、先行している経路側のポートからのパケットを取り込む。
【００５８】
つまり、送信元の出力制御部２３のマルチキャスト回路２３−３により複製されて複数の経路に同時に発信されたパケットは、それぞれの経路を通ることになるが、各経路内を流れるパケットの進み具合が異なるため、最終的に受信先の入力制御部に到達するまでには時間差が生じることになる。先着パケット選択回路２４−２は、その時間差を検出して最も先行して着信するポートを判定し、各ポートから来る同一パケットに対して最初に届いたパケットを選択し、時系列として後に届いたパケットを廃棄する。
【００５９】
次に、本実施の形態のコンピュータシステムの各モジュール間の通信の処理を、図面を参照して詳細に説明する。
【００６０】
上述のように、各ＣＰＵモジュール２０と各入出力モジュール３０は、図１１に示すような全く異なる２つの経路により接続されており、発信側のモジュールのマルチキャスト回路２３−３を用いて、図１２に示すように２つのポートに対して同一のパケットを送信する。
【００６１】
それぞれの経路を流れるパケットは、それぞれの経路内の混雑度の違いや、経路の途中で訂正可能エラーが発生した場合のエラー訂正動作によるレイテンシ悪化等の影響から、進み具合に違いが発生し、同一パケットでも受信側のモジュールに到達するタイミングには時間差が生じる。
【００６２】
例えば、図１３の各パケットの送信の様子を示す図の例においては、第１経路側の＃３パケットの方が、第２経路側の＃３パケットよりも先行して受信側のモジュールに着信している。
【００６３】
受信側のモジュールでは、エラー検出回路２５を用いて、それぞれのポートからのパケットの受信時に、受信したパケットのエラーをポート毎に検出する。
【００６４】
そして、受信側のモジュールでは、パケット消失検出回路２４−１を用いてパケットの消失の有無の検出を行い、更に、先着パケット選択回路２４−２を用いて、それぞれの経路から送られてくるパケットの内の最初に到着したパケットを実際に受け取る制御を行う。
【００６５】
その後に、先着パケットとは別の経路より後から受信した同一パケットについては、一旦受信してネットワーク診断のためのパケットエラー検出が、エラー検出回路２５及びパケット消失検出回路２４−１を用いて行うが、その後は先着パケット選択回路２４−２により廃棄される。
【００６６】
図１３の例においては、第１経路の＃３パケットが採用され、第２経路の＃３パケットが廃棄される。
【００６７】
このように、通信経路を多重化（又、２重化）して備え、同一パケットをそれぞれ別の経路を用いて送信し、受信側で先着パケットを採用し、後から到着するパケットを破棄することにより、たとえどちらかの経路上の故障によりある経路上のパケットにエラーが発生しても、別の経路のパケットを採用することで、システムとしてはパケットを失うことなく、システム全体の運用を継続することが可能となる。
【００６８】
また例えば、ある先着パケットの受信において、パケット消失もしくは、訂正不可能ビットエラーを検出した場合は、そのパケットを廃棄し、エラーを検出した側の経路上でのそれ以上のパケット送信をビジー信号等により、図１のスイッチングモジュールなど前段回路にて停止させておき、反対側のネットワークから来る、同じパケットＩＤを持つ、複製パケットの到着を待ち、当該パケット到着後にそのパケットを取り込むと同時に、エラーを検出した経路のビジー信号を解除し再び２重経路運用を開始する等の、予め設定したエラー処理を実行させる等の実施例も可能である。
【００６９】
検出されたエラーはログデータとして記録しておき、その後、同一ネットワークからのパケットで、エラー発生が多発する場合は、当該経路のシステムからの切り離しを行い、図１４に示すように、現在正常に作動する経路のみによるシステム運用状態に移る。
【００７０】
また、後から受信されたパケットのエラー検出においてエラーが検出された場合では、既に同一パケットが先に届いており受信側のモジュールにより取得済みであるので、このエラーの検出されたパケットは通常時と同様に破棄される。また、その経路からのパケットでエラーが検出されたことを記録する。その後、同一ネットワークからのパケットで、エラーが多発する場合は、前述と同様に、その経路の切り離しを行う。
【００７１】
次に、本発明の第２の実施の形態について説明する。
【００７２】
上記実施の形態では、出力制御部２３においてパケットにＩＤを付加し、マルチキャスト回路２３−３によって出力されたＩＤ付きパケットを複製して、第１、第２入出力ポート２６ａ、２６ｂ（３６ａ、３６ｂ）に送信する構成を示したが、この第２の実施の形態では、出力制御部２３にマルチキャスト回路２３−３のみを備え、ＣＰＵモジュール２０又は入出力モジュール３０からのパケットにＩＤを付加することなく、そのまま複製して第１、第２入出力ポート２６ａ、２６ｂ（３６ａ、３６ｂ）に送信する構成である。また、それに対応して、入力制御部２４のパケット消失検出回路２４−１及び先着パケット選択回路２４−２のパケットＩＤ比較回路２４−２ａを備えない構成となる。
【００７３】
この第２の実施の形態では、パケットＩＤをチェックしないので、先着パケット選択回路が第１、第２入出力ポート２６ａ、２６ｂ（３６ａ、３６ｂ）を経由して送られた２つのパケットのヘッダ情報を参照することにより、先着のパケットを選択し他方を廃棄する。その他の点については、上記第１の実施の形態と同様であるので詳細を省略する。
【００７４】
また、本発明の第３の実施の形態について図１５を参照して説明する。
【００７５】
この第３の実施の形態では、ＣＰＵモジュール２０と入出力モジュール３０を互いに対応するものどうしを、スイッチングモジュール１０を介することなく、第１及び第２入力ポート間で直接接続した構成としている。この第３の実施の形態のＣＰＵモジュール２０及び入出力モジュール３０の各構成要素については、図１に示す第１の実施の形態と同様である。また、その動作についても、スイッチングモジュール１０を介在させないだけであり、第１の実施の形態と同様に動作し、同様の効果が得られるものである。
【００７６】
本発明のさらに他の実施の形態について図１６と図１７を参照して説明する。
【００７７】
本発明は、図１６に示すように、多数のＣＰＵモジュール２０がネットワーク５０を介して多数の入出力モジュール３０に接続されるような大規模システムに適用することも、同様に可能である。
【００７８】
また、図１７に示すような、複数のＣＰＵモジュール２０と複数の入出力モジュール３０が２重のネットワークに接続されたシステムにおいて、いくつかのＣＰＵモジュール２０及びいくつかの入出力モジュール３０が、一つのグループの配下に属し、それぞれのグループが、それぞれ一つのコンピュータを形成し、システム全体として見た場合に、ネットワークを介したクラスタシステムを形成しているような構成の場合に対して、本発明の手段を用いることにより単一ネットワーク故障によるシステムダウンを防ぐことが可能となる。
【００７９】
図１７の構成においては、第１コンピュータ内の各ＣＰＵモジュール２０は、自コンピュータの側の入出力モジュール３０に対して、入出力アクセスを行うことになるが、各ＣＰＵモジュール２０が対応する入出力モジュール３０に対して、同一のパケットを双方のポートに送り、入出力モジュール３０の入力ポート部において、ＣＰＵモジュール２０がそれぞれの出力ポートに対して送信したパケットの内で、先に到着しかつエラーが検出されなかったパケットを採用し、後から到着するパケットに関しては、エラーチェックを行い、ネットワークに障害が発生していないことを確認した後にこれを廃棄する動作をする。
【００８０】
このようにネットワークを介した大規模クラスタシステムにおいても、本発明を適応することにより、ネットワークの単一故障が原因のシステムダウンを防ぐことを可能としている。以上のようにＣＰＵ−入出力間の経路長が長くなるに従い、経路上の故障率も大きくなるため、システムが大規模になる程本発明は有用となる。
【００８１】
以上好ましい実施の形態及び実施例をあげて本発明を説明したが、本発明は必ずしも上記実施の形態及び実施例に限定されるものではなく、その技術的思想の範囲内において様々に変形して実施することができる。
【００８２】
例えば、上記実施の形態では、ＣＰＵモジュール２０と入出力モジュール３０とがパケット転送により相互にデータのやりとりを行なうシステムについて説明したが、一方のモジュールから他方のモジュールに対して片方向のみの転送を行なう構成のシステムにも、本発明を適用することができる。その場合、パケットを出力する側のモジュールに出力制御部を設け、パケットを受信する側のモジュールに入力制御部を設ける。
【００８３】
【発明の効果】
以上説明したように本発明のコンピュータシステムによれば、以下のような効果が達成される。
【００８４】
本発明のコンピュータシステムでは、モジュール間の通信経路を多重化することにより、極めて高い可用性を実現することができ、ＣＰＵと入出力との経路上の故障が引き起こすパケット損傷が原因となるシステムダウン等を解消することができる。更に、各モジュールは、各通信経路から受信したパケットが新規のパケットであるか否を識別しその最新のパケットを取得するため、通信速度を犠牲にすることなく高可用性を実現できる。
【００８５】
また、本発明のコンピュータシステムでは、パケットの再送等のソフトウェアのレベルの制御を必要としないために、オペレーションシステムや運用ソフトウェア等に特別の新たな機能を備える必要なく、高可用性を実現することができる。
【図面の簡単な説明】
【図１】  本発明の第１の実施の形態によるコンピュータシステムの構成を示すブロック図である。
【図２】  本発明の第１の実施の形態のＣＰＵモジュールの構成を示すブロック図である。
【図３】  本発明の第１の実施の形態の入出力モジュールの構成を示すブロック図である。
【図４】  本発明の第１の実施の形態の入出力ポート部の構成を示すブロック図である。
【図５】  本発明の第１の実施の形態の出力制御部の構成を示すブロック図である。
【図６】  本発明の第１の実施の形態によるコンピュータシステム内のモジュール間において送受するパケットの構成の一例を示す図である。
【図７】  本発明の第１の実施の形態の入力制御部の構成を示すブロック図である。
【図８】  本発明の第１の実施の形態のパケット消失検出回路の構成を示すブロック図である。
【図９】  本発明の第１の実施の形態の先着パケット選択回路の構成を示すブロック図である。
【図１０】  本発明の第１の実施の形態のスイッチングモジュールの構成例を示すブロック図である。
【図１１】  本発明の第１の実施の形態によるコンピュータシステムのモジュール間のパケット転送を説明するための図である。
【図１２】  本発明の第１の実施の形態によるコンピュータシステムのモジュール間のパケット転送を説明するための図である。
【図１３】  本発明の第１の実施の形態によるコンピュータシステムのモジュール間のパケット転送を説明するための図である。
【図１４】  本発明の第１の実施の形態によるコンピュータシステムのモジュール間のパケット転送を説明するための図である。
【図１５】  本発明の第３の実施の形態によるコンピュータシステムの構成を示すブロック図である。
【図１６】  本発明のその他の実施の形態によるコンピュータシステムの構成を示すブロック図である。
【図１７】  本発明のさらに他の実施の形態によるコンピュータシステムの構成を示すブロック図である。
【図１８】  従来のコンピュータシステムの構成を示すブロック図である。
【図１９】  従来のＣＰＵモジュールの構成を示すブロック図である。
【図２０】  従来の入出力モジュールの構成を示すブロック図である。
【図２１】  スイッチングモジュールを介して入出力モジュールとＣＰＵモジュールとを接続する、従来のコンピュータシステムの構成を示すブロック図である。
【図２２】  通信ネットワークを介して入出力モジュールとＣＰＵモジュールとを接続する、従来のコンピュータシステムの構成を示すブロック図である。
【符号の説明】
１０  スイッチングモジュール
２０、２０ａ  ＣＰＵモジュール
２１、２１ａ  ＣＰＵモジュールコントローラ
２２  入出力ポート部
２３  出力制御部
２３−１  ＩＤ付加回路
２３−２  ＩＤカウンタ
２３−３  マルチキャスト回路
２４  入力制御部
２５  エラー検出回路
２４−１  パケット消失検出回路
２４−２  先着パケット選択回路
３０、３０ａ  入出力モジュール
３１、３１ａ  入出力モジュールコントローラ
４０  モジュールインターコネクト
５０  ネットワーク
【図１】
0003709795.tif 000002
【図２】
0003709795.tif 000003
【図３】
0003709795.tif 000004
【図４】
0003709795.tif 000005
【図５】
0003709795.tif 000006
【図６】
0003709795.tif 000007
【図７】
0003709795.tif 000008
【図８】
0003709795.tif 000009
【図９】
0003709795.tif 000010
【図１０】
0003709795.tif 000011
【図１１】
0003709795.tif 000012
【図１２】
0003709795.tif 000013
【図１３】
0003709795.tif 000014
【図１４】
0003709795.tif 000015
【図１５】
0003709795.tif 000016
【図１６】
0003709795.tif 000017
【図１７】
0003709795.tif 000018
【図１８】
0003709795.tif 000019
【図１９】
0003709795.tif 000020
【図２０】
0003709795.tif 000021
【図２１】
0003709795.tif 000022
【図２２】
0003709795.tif 000023