(57)【要約】【課題】回路規模を増大させることなく早期に障害処理を終了させることができるマルチノードシステムを提供すること【解決手段】本発明のマルチノードシステムは、命令処理情報を送信するノード１０と命令処理情報をノード３０へ転送するノード間スイッチ２０とを備える。ノード１０は、命令処理情報を複数のブロックに分解する命令分解部１１と、複数のブロックをノード間スイッチ２０へ送信するブロック送信部１２と、分解されたブロックの数と、複数のブロックに対する応答信号の数とに基づいて当該複数のブロックの送信処理が正常に終了したか否かを判断する判断部１３とを有する。ノード間スイッチ２０は、ノード３０において障害が発生した場合に、ブロックに対する応答信号をノード３０の代わりに生成し、ノード１０へ送信する応答信号生成部２１、を有する。【選択図】図１
2011146761.tif 000002
【特許請求の範囲】
【請求項１】
命令処理情報を送信する第１のノードと、当該第１のノードにより送信された命令処理情報を第２のノードへ転送するノード間スイッチと、を備え
前記第１のノードは、
前記命令処理情報を複数のブロックに分解する命令分解部と
前記複数のブロックを前記ノード間スイッチへ送信する送信部と、
前記命令分解部により分解されたブロックの数と、前記第２のノードから送信される当該複数のブロックに対する応答信号の数とに基づいて当該複数のブロックの送信処理が正常に終了したか否かを判断する判断部とを有し、
前記ノード間スイッチは、
前記第２のノードにおいて障害が発生した場合に、前記応答信号を前記第２のノードの代わりに生成し、前記第１のノードへ送信するマルチノードシステム。
【請求項２】
前記ノード間スイッチは、
前記第２のノードにおいて障害が発生した場合に、前記第１のノードから受信した前記複数のブロックの前記第２のノードへの転送を停止する、請求項１に記載のマルチノードシステム。
【請求項３】
前記命令分解部は、
前記第２のノードにおいて障害が発生した場合に、前記命令処理情報を複数のブロックへ分解することを中止する、請求項１又は２に記載のマルチノードシステム。
【請求項４】
第１のノードにより送信された命令処理情報を受信して、当該命令処理情報を第２のノードへ転送するデータ送受信部と、
前記第２のノードにおいて障害が発生した場合に、前記第１のノードにおいて命令処理情報を分解して生成及び送信された複数のブロックに対する応答信号を、前記第２のノードの代わりに生成する応答信号生成部と、を備えるノード間スイッチ。
【請求項５】
前記データ送受信部は、
前記第２のノードにおいて障害が発生した場合に、前記第１のノードから受信した前記複数のブロックの前記第２のノードへの転送を停止する、請求項４に記載のノード間スイッチ。
【請求項６】
第１のノードにより送信された命令処理情報を受信して、当該命令処理情報を第２のノードへ転送するステップと、
前記第２のノードにおける障害発生を検知するステップと、
前記障害発生を検知した後に、前記第１のノードにおいて命令処理情報を分解して生成されたブロックを受信するステップと、
前記ブロックに対する応答信号を、前記第２のノードの代わりに生成するステップと、
前記応答信号を前記第１のノードへ送信するステップと、を備えるデータ中継方法。
【請求項７】
前記障害発生を検知した後に、前記ブロックを受信した場合に、当該ブロックの前記第２のノードへの転送を停止する、請求項６に記載のデータ中継方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はマルチノードシステム、ノード間スイッチ及びデータ中継方法に関し、特にノードに障害が発生した場合におけるマルチノードシステム、ノード間スイッチ及びデータ中継方法に関する。
【背景技術】
【０００２】
プロセッサと共有メモリを備えて構成される電子計算機（ノード）を、ノード間スイッチを介して複数接続したマルチノードシステムが知られている。マルチノードシステムは、複数のノードを用いて処理の分散を図ることにより、システム全体の性能を向上させる。複数のノードを動作させるマルチノードシステムにおいては、いずれかのノードに障害が発生した場合に、障害処理動作を短時間に解決することが望まれている。
【０００３】
マルチノードシステムを構成するノードに障害が発生した場合の一般的な動作について図７〜９を用いて説明する。図７を用いて、ローカルノード、リモートノード及びノード間スイッチを有するマルチノードシステムの構成例について説明する。
【０００４】
ローカルノードは、命令処理情報（リクエスト情報）を発行する。また、リモートノードは、ローカルノードにおいて発行された命令処理情報を取得する。さらに、リモートノードは、取得した命令処理情報に基づいて命令処理を実行する。
【０００５】
ローカルノード１００のコア１１０は、リクエスト情報を発行する。リクエスト情報は、ＲＣＵ（ノード間制御装置）１２０の命令分解部１２１においてブロックごとに分解される。分解されたブロックは、メモリ１３０に出力される。命令分解部１２１においてリクエスト情報の分解が終了すると、ブロック分解数に関する情報が、ブロック分解数保持部１２３に記憶される。ブロックに分解された命令処理情報はメモリ１３０からデータをロードしてロードデータとなる。ロードデータは、データ転送部１２２からブロック単位にノード間スイッチ２００へ出力される。ノード間スイッチ２００は、取得したロードデータをリモートノード３００へ転送する。ロードデータは、リモートノード３００のメモリ３２０に格納される。ロードデータがメモリ３２０に格納された場合、ＲＣＵ３１０は、ロードデータ格納完了報告であるブロックリプライを、ノード間スイッチ２００を介してローカルノード１００へ出力する。
【０００６】
ローカルノード１００は、取得したブロックリプライの数をブロックリプライ数カウンタ１２４においてカウントし、この値とブロック分解数保持部１２３に保持されている値を、比較部１２５が比較する。ブロックリプライ数カウンタ１２４の値と、ブロック分解数保持部１２３の値とが一致した場合に、終了ステータス生成部１２６は、終了ステータスを発行する。さらに、終了ステータス生成部１２６は、終了ステータスをメモリ１３０へ書き込む。これにより、リクエスト情報に関する処理が終了する。
【０００７】
正常処理の場合は上述したような動きをする。また、正常処理におけるローカルノードと、ノード間スイッチと、リモートノードとの間の処理シーケンスを図８に示す。実線を用いて示される矢印は、ブロックであり、破線を用いて示される矢印は、ブロックリプライである。しかし、リモートノード３００において障害が発生すると、リモートノード３００からローカルノード１００に対して、ブロックリプライが全て返信されない。障害発生時の処理シーケンスを図９に示す。そのため、ブロックリプライ数カウンタ１２４とブロック分解数保持回路１２３との値が一致せず、終了ステータス生成回路１２６は、終了ステータスを発行することができない。このような場合に備えて、ローカルノード１００は、命令分解部１２１においてブロック分解が始まった時点からタイマを動作させる。タイマが一定時間以上経過してもリクエスト処理が終了しないと、タイムアウト検出回路１６においてタイムアウトを検出し、終了ステータス生成部１２６は、強制的に終了ステータスを発行し、リクエスト処理を終了させる。
【０００８】
このような場合、ローカルノード１００は、タイムアウトを検出するまで命令処理情報を終了できない。そのため、障害処理に多大な時間を要し、コア１１０は、後続の命令情報を処理できなくなる。
【０００９】
このような問題に対応するため、特許文献１には、バス障害処理システムが開示されている。特許文献１におけるバス障害処理システムは、システムバスと、入出力制御装置と、これら二つに接続されているバスコントローラとを備えている。バス障害処理システムにおいては、バスコントローラを介してシステムバスから入出力制御装置へ実行する処理の要求が出力される。この時、バスコントローラが入出力制御装置関連の障害を検出すると、バスコントローラは、システムバスに対して処理要求に応答する疑似応答データを出力し、入出力制御装置に障害が発生したことを通知する。これにより、バスシステムは、入出力制御装置に障害が発生したことを早期に検知することができる。
【００１０】
特許文献２には、マルチノードシステムにおいて、他のノードにおける障害が通知された場合に、自ノードにおいて当該他ノードに転送するデータを破棄することが開示されている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特許第２６６３８９６号公報
【特許文献２】特開２００６−１７８７８６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかし、特許文献１及び２に開示されている技術を用いた場合に、次のような問題が生じる。特許文献１に開示されている技術は、バスコントローラからシステムバスに対して疑似応答データを出力することにより、入出力装置関連の障害を通知する。そのため、システムバスに接続されているプロセッサ等は、入出力装置から正常にデータ転送が行われた際に出力される応答信号と、バスコントローラから出力される疑似応答データとを取得した場合において、取得する信号もしくはデータによって異なる処理を実行する必要がある。このように、異なる処理を動作させる回路を複数設けた場合に、回路規模が増大するという問題が生じる。特許文献２のように、障害通知がなされた場合に、データを破棄する構成においても同様の問題が生じる。
【００１３】
本発明は、このような問題を解決するためになされたものであり、回路規模を増大させることなく早期に障害処理を終了させることができるマルチノードシステム、ノード間スイッチ及びデータ中継方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明の第１の態様にかかるマルチノードシステムは、命令処理情報を送信する第１のノードと、当該第１のノードにより送信された命令処理情報を第２のノードへ転送するノード間スイッチと、を備え前記第１のノードは、前記命令処理情報を複数のブロックに分解する命令分解部と前記複数のブロックを前記ノード間スイッチへ送信する送信部と、前記命令分解部により分解されたブロックの数と、前記第２のノードから送信される当該複数のブロックに対する応答信号の数とに基づいて当該複数のブロックの送信処理が正常に終了したか否かを判断する判断部とを有し、前記ノード間スイッチは、前記第２のノードにおいて障害が発生した場合に、前記応答信号を前記第２のノードの代わりに生成し、前記第１のノードへ送信するものである。
【００１５】
本発明の第２の態様にかかるノード間スイッチは、第１のノードにより送信された命令処理情報を受信して、当該命令処理情報を第２のノードへ転送するデータ送受信部と、前記第２のノードにおいて障害が発生した場合に、前記第１のノードにおいて命令処理情報を分解して生成及び送信された複数のブロックに対する応答信号を、前記第２のノードの代わりに生成する応答信号生成部と、を備えるものである。
【００１６】
本発明の第３の態様にかかるデータ中継方法は、第１のノードにより送信された命令処理情報を受信して、当該命令処理情報を第２のノードへ転送するステップと、前記第２のノードにおける障害発生を検知するステップと、前記障害発生を検知した後に、前記第１のノードにおいて命令処理情報を分解して生成されたブロックを受信するステップと、前記ブロックに対する応答信号を、前記第２のノードの代わりに生成するステップと、前記応答信号を前記第１のノードへ送信するステップと、を備えるものである。
【発明の効果】
【００１７】
本発明により、回路規模を増大させることなく早期に障害処理を終了させることができるマルチノードシステム、ノード間スイッチ及びデータ中継方法を提供することができる。
【図面の簡単な説明】
【００１８】
【図１】実施の形態１にかかるマルチノードシステムの構成図である。
【図２】実施の形態１にかかるマルチノードシステムの詳細な構成図である。
【図３】実施の形態１にかかる障害発生時におけるマルチノードシステムのシーケンス図である。
【図４】実施の形態１にかかる障害発生時におけるノード間スイッチのフローチャートである。
【図５】実施の形態２にかかるマルチノードシステムの詳細な構成図である。
【図６】実施の形態２にかかる障害発生時におけるマルチノードシステムのシーケンス図である。
【図７】障害発生時に、タイムアウト制御を行うマルチノードシステムの構成図である。
【図８】正常時におけるマルチノードシステムのシーケンス図である。
【図９】障害発生時に、タイムアウト制御を行うマルチノードシステムのシーケンス図である。
【発明を実施するための形態】
【００１９】
（実施の形態１）
以下、図面を参照して本発明の実施の形態について説明する。図１を用いて本発明の実施の形態１にかかるマルチノードシステムの構成例について説明する。本実施形態におけるマルチノードシステムは、ノード１０と、ノード間スイッチ２０と、ノード３０とを備えている。
【００２０】
はじめに、ノード１０の構成例について説明する。ノード１０は、命令処理情報を送信するノードである。ノード３０は、命令処理情報を受信し、命令処理を実行するノードである。ノード間スイッチ２０は、ノード１０とノード間スイッチ２０との間に配置され、両ノードに接続されている。ここで、本図においては、ノード間スイッチ２０に接続されているノードとして、ノード１０及び３０を示しているが、２以上の複数のノードがノード間スイッチ２０に接続されてもよい。命令処理情報は、ノード３０において実行される処理内容である。例えば、命令処理情報は、ノード３０内においてデータのコピーや、データの演算等の実行を指示する情報である。また、命令処理情報は、ノード３０において実行される複数の処理内容を含んでもよい。
【００２１】
ノード１０は、命令分解部１１と、送信部１２と、判断部１３とを備えている。命令分解部１１は、ノード１０におけるプロセッサ等から出力された命令処理情報を、複数のブロックに分解する。命令分解部１１は、命令処理情報を予め定められたビット数毎にブロックへ分解してもよく、命令処理情報に含まれる処理内容に応じてブロックへ分解されてもよい。命令分解部１１は、分解した複数のブロックを送信部１２へ出力する。また、命令分解部１１は、分解したブロック数に関する情報を判断部１３へ出力する。
【００２２】
送信部１２は、命令分解部１１から取得した複数のブロックをブロック単位にノード間スイッチ２０へ送信する。ノード間スイッチ２０へ送信された複数のブロックは、ノード３０へ転送される。ノード３０は、ノード間スイッチ２０から転送される複数のブロックを正常に受信すると、ノード３０は、受信したブロック毎に応答信号をノード１０へ出力する。もしくは、ノード３０は、一定数のブロックを取得する毎に応答信号をノード１０へ出力する。
【００２３】
判断部１３は、ノード３０から出力される応答信号の数をカウントする。さらに、判断部１３は、命令分解部１１から通知される分解したブロック数に関する情報（以下、分解ブロック数、とする）と、ノード３０から出力される応答信号の数（以下、応答信号数、とする）とを比較する。これにより、判断部１３は、送信部１２から送信した複数のブロックの送信処理が正常に終了したか否かを判断する。例えば、判断部１３は、分解ブロック数と応答信号数とが一致した場合に、送信部１２から送信した複数のブロックの送信処理が正常に終了したと判断し、一致しない場合には、まだ送信処理の途中であると判断してもよい。もしくは、ノード１０が、予め定められた複数のブロック数に対して応答信号を１つ取得する場合には、判断部１３は、分解ブロック数と応答信号数とが一致しない場合においても送信処理が正常に終了したと判断することができる。
【００２４】
例えば、命令分解部１１によって１つの命令処理情報が１０ブロックに分解され、５ブロック毎に応答信号を１つ取得する場合について説明する。この場合、命令分解部１１は、分解ブロック数を２として判断部１３へ通知する。また、ノード３０には、５ブロック毎に応答信号を１つ出力することを予め設定しておく。この場合、判断部１３は、応答信号数が２である場合に、送信処理が正常に終了したと判断することができる。ここで、命令分解部１１は、分解ブロック数を１０として判断部１３へ通知し、判断部１３において、取得すべき応答信号数は２であると変換してもよい。ノード１０とノード３０との間で共有する必要がある応答信号数の数は、命令分解部１１と、ノード３０とに予め設定されてもよく、送信部１２から出力されるブロックに、応答信号数を設定してノード３０へ出力されてもよい。
【００２５】
続いて、ノード間スイッチ２０の構成例について説明する。ノード間スイッチ２０は、応答信号生成部２１と、データ送受信部２２と、を備えている。ノード３０に障害が発生していない場合、データ送受信部２２は、送信部１２から出力された複数のブロックを、ノード３０へ転送する。また、ノード３０から送信された応答信号をノード１０へ転送する。ノード３０に障害が発生した場合、応答信号生成部２１は、ノード３０から障害情報を受信する。ノード間スイッチ２０は、ノード３０もしくは各ノードを監視する装置（図示せず）から障害情報を通知されることにより、ノード３０における障害の発生を認識してもよい。もしくは、ノード間スイッチ２０が定期的にノード３０に対してヘルスチェック等の監視を行い、ノード３０における障害を検出してもよい。応答信号生成部２１は、障害情報を受信した後に、送信部１２から送信されたブロックのノード３０への転送を停止する。さらに、応答信号生成部２１は、取得したブロックに対する応答信号をノード３０の代わりに生成する。応答信号生成部２１が生成する応答信号は、ノード３０が送信部１２から出力されるブロックに対して生成する応答信号と同一である。応答信号生成部２１は、生成した応答信号を判断部１３へ出力する。
【００２６】
判断部１３は、ノード間スイッチ２０から送信された応答信号数と、命令分解部１１から通知されたブロック分解数とを比較して、送信処理が正常に終了したか否かを判断する。
【００２７】
以上説明したように、図１に係るマルチノードシステムを用いることにより、ノード３０に障害が発生した場合においても、ノード１０は、ノード間スイッチ２０から通知される応答信号数を用いて、送信部１２から送信した複数のブロックの送信処理が正常に終了したか否かを判定することができる。よって、ノード３０から応答信号が出力されない場合におけるタイマを起動する必要がなく、早期に送信部１２における送信処理を終了することができる。送信部１２における送信処理の終了を検知することにより、命令分解部１１は、保持している命令処理情報の処理を開始することができる。
【００２８】
また、ノード１０は、ノード３０において障害が発生したことに伴い、異なる機能を追加する必要がないため、回路規模の増大を防止することができる。
【００２９】
続いて、図２を用いて本発明の実施の形態１にかかるマルチノードシステムの詳細な構成例について説明する。マルチノードシステムは、ローカルノード１０＿１と、ノード間スイッチ２０と、リモートノード３０＿１と、を備えている。ローカルノード１０＿１は、図１におけるノード１０に対応する。リモートノード３０＿１は、図１におけるノード３０に対応する。
【００３０】
はじめに、ローカルノード１０＿１の構成について説明する。ローカルノード１０＿１は、命令分解部１１と、送信部１２と、判断部１３と、コア１８と、メモリ１９と、を備えている。命令分解部１１と、送信部１２と、判断部１３とは、図１において説明したものと同一である。さらに、判断部１３は、ブロック分解数保持部１４と、比較部１５と、ブロックリプライ数カウンタ１６と、終了ステータス生成部１７と、を備えている。
【００３１】
コア１８は、ＣＰＵ、ＭＰＵ等のプロセッサ等により構成される。コア１８は、命令処理情報（リクエスト情報）を命令分解部１１へ出力する。命令分解部１１は、命令処理情報を複数のブロックに分解する。命令分解部１１において分解されたそれぞれのブロックは、メモリ１９からデータをロードし、送信部１２へ出力される。送信部１２は、複数のブロックを、ノード間スイッチ２０を介してリモートノード３０＿１へ出力する。
【００３２】
ブロック分解数保持部１４は、命令分解部１１において分解された分解ブロック数の情報を保持する。比較部１５は、ブロック分解数保持部１４に保持されている分解ブロック数と、ブロックリプライ数カウンタ１６から取得するブロックリプライ数とを比較する。ブロックリプライは、ブロックを取得したリモートノード３０＿１が、ブロック毎に応答する応答信号である。ブロックリプライ数は、図１において説明した応答信号数に相当する。比較部１５は、分解ブロック数とブロックリプライ数とが一致した場合に、送信部１２における複数のブロックの送信処理が正常に終了したと判断する。もしくは、コア１８から出力された命令処理が、リモートノード３０＿１において正常に終了したと判断する。比較部１５は、分解ブロック数とブロックリプライ数とが一致した場合に、判断結果を終了ステータス生成部１７へ出力する。
【００３３】
終了ステータス生成部１７は、比較部１５より、正常に処理が終了した旨の通知を受けた場合に、終了ステータスを発行して、メモリ１９へ出力する。これにより、コア１８において発行された命令処理が終了する。
【００３４】
次に、ノード間スイッチ２０の構成例について説明する。ノード間スイッチ２０は、データ送受信部２２と、疑似ブロックリプライ生成部２３とを備えている。疑似ブロックリプライ生成部２３は、図１における応答信号生成部２１に相当する。
【００３５】
データ送受信部２２は、送信部１２から複数のブロックを受信して、当該複数のブロックをノード３０へ転送する。また、データ送受信部２２は、リモートノード３０＿１から、それぞれのブロック毎に送信されるブロックリプライをブロックリプライ数カウンタ１６へ転送する。さらに、データ送受信部２２は、リモートノード３０＿１から、リモートノード３０＿１に障害が発生したことを示す障害情報を受信した場合、障害情報を疑似ブロックリプライ生成部２３へ出力する。データ送受信部２２は、障害情報を取得した後に送信部１２から取得するブロックのリモートノード３０＿１への転送を停止する。
【００３６】
疑似ブロックリプライ生成部２３は、データ送受信部２２からリモートノード３０＿１の障害情報を取得すると、疑似ブロックリプライを生成する。疑似ブロックリプライは、障害情報を受信した後に送信部１２から受信するブロック毎に生成される。疑似ブロックリプライ生成部２３において生成された疑似ブロックリプライは、ブロックリプライ数カウンタ１６へ出力される。
【００３７】
次に、リモートノード３０＿１の構成例について説明する。リモートノード３０＿１は、障害処理検出部３１とメモリ３２とを備えている。メモリ３２は、データ送受信部２２から受信したブロックを記録する。メモリ３２にブロックが記録されると、ブロック毎にブロックリプライをデータ送受信部２２へ出力する。ブロックリプライは、リモートノード３０＿１が有するプロセッサ等（図示せず）により生成されてもよい。
【００３８】
障害処理検出部３１は、リモートノード３０＿１に障害が発生した場合に、障害情報をデータ送受信部２２へ出力する。もしくは、リモートノード３０＿１において発生した障害は、ノード間スイッチ２０に各ノードを監視する監視装置が接続されている場合に、当該監視装置によって検出され、データ送受信部２２へ出力されてもよい。これにより、リモートノード３０＿１において、障害情報を出力することができない深刻な障害が発生した場合においても、ノード３０の障害を検出することができる。
【００３９】
続いて、図３を用いて本発明の実施の形態１にかかる、マルチノードシステム内における処理シーケンスを説明する。図３において、リモートノード３０＿１に障害が発生した場合の処理シーケンスを説明する。
【００４０】
ローカルノード１０＿１からノード間スイッチ２０及びノード間スイッチ２０からリモートノード３０＿１へ出力されている実線の矢印は、ブロックが出力されていることを示す（ブロック１〜６）。リモートノード３０＿１からノード間スイッチ２０及びノード間スイッチ２０からローカルノード１０＿１へ出力されている破線の矢印は、ブロックリプライが出力されていることを示す（リプライ１〜３）。ブロック４〜６に対して、ノード間スイッチ２０からローカルノード１０＿１へ出力されている破線の矢印は、疑似ブロックリプライが出力されていることを示す（疑似ブロックリプライ１〜３）。ブロックリプライ３の後に、リモートノード３０＿１からノード間スイッチ２０へ出力されている実線の矢印は、障害情報が出力されていることを示す。
【００４１】
ノード間スイッチ２０は、障害情報を取得する前に、ローカルノード１０＿１から受信したブロック１〜３を、リモートノード３０＿１へ転送する。さらに、ブロック１〜３に対するブロックリプライ１〜３を、リモートノード３０＿１から受信し、ローカルノード１０＿１へ転送する。
【００４２】
ノード間スイッチ２０は、障害情報を取得した後に、ローカルノード１０＿１から送信されたブロック４〜６のリモートノード３０＿１への転送を停止する。さらに、ノード間スイッチ２０は、ブロック４〜６に対して、疑似ブロックリプライ１〜３を生成し、ローカルノード１０＿１へ送信する。
【００４３】
続いて、図４を用いて本発明の実施の形態１に係るノード間スイッチ２０における疑似ブロックリプライを生成する処理の流れについて説明する。
【００４４】
はじめに、データ送受信部２２は、送信部１２からブロックを取得する。次に、送信部１２は、送信部１２からブロックを取得する前に、障害報告を受信している場合（Ｓ１２）、取得したブロックのリモートノード３０＿１への転送を停止する（Ｓ１３）。次に、疑似ブロックリプライ生成部２３は、障害報告を受信後に取得したブロックに対して、疑似ブロックリプライを生成する（Ｓ１４）。次に、データ送受信部２２は、疑似ブロックリプライ生成部２３において生成された疑似ブロックリプライを判断部１３へ出力する。
【００４５】
以上説明したように、本発明の実施の形態１にかかるマルチノードシステムを用いることにより、リモートノード３０＿１において障害が発生した場合に、ノード間スイッチ２０からローカルノード１０＿１に対して疑似ブロックリプライを出力する。これにより、ローカルノード１０＿１は、リモートノード３０＿１において、正常にブロックが取得されたとして、命令処理を終了することができ、次の命令処理を実行することができる。よって、ローカルノード１０＿１は、タイマを起動する必要がなく、早期に命令処理を終了することができる。また、ローカルノード１０＿１は、疑似ブロックリプライを、リモートノード３０＿１によって生成されたブロックリプライと同様に処理することができる。そのため、ローカルノード１０＿１に新たな機能追加をする必要がなく、回路の増大も防止することができる。
【００４６】
（実施の形態２）
続いて、図５を用いて本発明の実施の形態２にかかるマルチノードシステムの構成例について説明する。本図にかかるマルチノードシステムにおいては、データ送受信部２２が、命令分解部１１に対して、障害処理検出部３１から通知された障害情報を通知する点において図２と異なる。その他の構成については、図２と同様である。
【００４７】
データ送受信部２２は、障害処理検出部３１から障害情報が通知された場合、当該障害情報を命令分解部１１へ出力する。命令分解部１１は、コア１８から出力された命令処理情報をブロックに分解している最中に障害情報を取得した場合、ブロックへの分解を中止する。
【００４８】
続いて、図６を用いて本発明の実施の形態２にかかる、マルチノードシステム内における処理シーケンスを説明する。図６において、リモートノード３０＿１に障害が発生した場合の処理シーケンスを説明する。ブロック１〜３に対してブロックリプライ１〜３が応答される動作は、図３と同様であるため説明を省略する。
【００４９】
ノード間スイッチ２０は、リモートノード３０＿１から送信された障害情報をローカルノード１０＿１へ転送する。ローカルノード１０＿１の命令分解部１１は、障害情報を取得した後は、ブロック分解を中止する。そのため、命令分解部１１において、障害情報を受信する前に、すでに分解されているブロック（ブロック５）のみ、ノード間スイッチ２０へ送信する。また、ノード間スイッチ２０は、障害情報を取得した後に送信されたブロック４及び５に対しては疑似ブロックリプライ１及び２を生成してローカルノード１０＿１へ出力する。
【００５０】
以上説明したように、本発明の実施の形態２にかかるマルチノードシステムを用いることにより、ローカルノードから送信するブロックの数を削減することができる。そのため、リモートノードに障害が発生した場合に、ローカルノードは早期に命令処理を終了することができる。よって、ローカルノードは、蓄積している命令処理情報を迅速に処理することができる。
【００５１】
また、ローカルノードは、障害情報を取得することにより、リモートノードに出力した命令処理が正常に終了しなかったことを検知することができる。そのため、ローカルノードは、リモートノードの障害が復旧後、正常に終了しなかった命令処理を再送することもできる。
【００５２】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【００５３】
１０  ノード
１０＿１  ローカルノード
１１  命令分解部
１２  送信部
１３  判断部
１４  ブロック分解数保持部
１５  比較部
１６  ブロックリプライ数カウンタ
１７  終了ステータス生成部
１８  コア
１９  メモリ
２０  ノード間スイッチ
２１  応答信号生成部
２２  データ送受信部
２３  疑似ブロックリプライ生成部
３０  ノード
３０＿１  リモートノード
３１  障害処理検出部
３２  メモリ
【図１】
2011146761.tif 000003
【図２】
2011146761.tif 000004
【図３】
2011146761.tif 000005
【図４】
2011146761.tif 000006
【図５】
2011146761.tif 000007
【図６】
2011146761.tif 000008
【図７】
2011146761.tif 000009
【図８】
2011146761.tif 000010
【図９】
2011146761.tif 000011