(57)【特許請求の範囲】
【請求項１】
スイッチにより切替可能な複数のポートにより他のノードと接続された情報処理装置であって、
データ転送命令を発行するコアと、
前記データ転送命令により前記他のノードに転送する送信データ、及び前記データ転送命令を実行するために必要な制御情報であるパラメータを格納する主記憶部と、
前記コアからの前記データ転送命令を受けて、前記主記憶部から前記パラメータ及び送信データを読み出し、当該パラメータに基づき送信データを前記他のノードに送信するノード間通信制御部とを備え、
一のポートに障害が発生して、複数のデータ転送命令からなるジョブ中の一のデータ転送命令が異常終了した場合、前記ジョブを強制終了することなく、前記異常終了した前記一のデータ転送命令を再実行するものであって、
前記スイッチは、前記障害が発生すると、別経路でデータ転送を行えるようにするため、前記ポートを切り替え、
前記ノード間通信制御部は、各データ転送命令に対応する前記パラメータを前記主記憶部から読み出すための情報を保持し、前記障害が発生すると、当該情報に基づき、前記異常終了したデータ転送命令を実行するためのパラメータを前記主記憶部から読み出し当該データ転送命令を再実行し、
前記ノード間通信制御部は、さらに
各データ転送命令に識別情報（ＩＤ）を付与するＩＤ制御部と、
前記ＩＤと、当該ＩＤに対応した前記パラメータを前記主記憶部から読み出すためのアドレス情報であるポインタとを対応付けて保持する命令保持部と、
前記データ転送命令の終了を判定する命令終了判定部とを有し、
前記命令終了判定部は、前記一のポートの障害発生時に、前記スイッチからその障害情報及び障害発生時に実行中であったデータ転送命令のＩＤを受け取り、当該ＩＤを前記命令保持部に出力し、
前記ノード間通信制御部は、前記命令保持部に保持されている、前記命令終了判定部から受け取ったＩＤに対応するポインタに基づき、そのパラメータ及び送信データを前記主記憶部から読み出し、当該送信データを再送する、情報処理装置。
【請求項２】
前記主記憶部は、前記命令終了判定部が前記送信データの送信状況を書き込むステータスエリアを有し、
前記ノード間通信制御部は、前記ステータスエリアに書き込まれた情報に基づき命令終了を判断するようソフトウェア制御されるものであって、
前記命令終了判定部は、前記スイッチから前記障害情報及びＩＤを受け取ると、前記ステータスエリアに前記障害情報を書き込まず、受け取ったＩＤを前記命令保持部に出力する、請求項１記載の情報処理装置。
【請求項３】
前記ノード間通信制御部は、
前記コアから前記データ転送命令として前記ポインタを受け取り、当該ポインタに基づきパラメータ読み出し指示を生成するパラメータ制御部と、
前記パラメータ読み出し指示を受けてパラメータ読み出し命令を生成すると共に、当該パラメータ読み出し命令により前記主記憶部から読み出されたパラメータに基づきデータ読み出し命令を生成する命令生成部と、
前記データ読み出し命令により前記主記憶部から前記送信データ及びＩＤを受け取り、前記他のノードに送信するデータ送信部とを更に有し、
前記障害発生時に
前記パラメータ制御部は、前記命令保持部から前記ポインタを受け取り、当該受け取ったポインタに基づき、前記パラメータ読み出し指示を再生成し、
前記命令生成部は、再生成されたパラメータ読み出し指示に基づき前記パラメータを読み出し、当該パラメータに基づき前記データ読み出し命令を再生成し、
前記データ送信部は、再生成されたデータ読み出し命令により、障害発生時に送信中であった送信データ及びＩＤを前記他のノードに再送信する、請求項１又は２記載の情報処理装置。
【請求項４】
前記コアは、前記データ転送命令を実行するための前記パラメータを生成して前記主記憶部に書き込み、そのアドレス情報であるポインタを、当該データ転送命令として前記ノード間通信制御部に出力する、請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記パラメータ制御部は、前記コアから前記データ転送命令を受け取るとカウントアップするライトポインタと、前記データ転送命令を受けて前記パラメータ読み出し指示を生成するとカウントアップするリードポインタとを有し、前記障害発生時に前記命令保持部から前記ポインタを受け取ると、前記リードポインタを当該受け取ったポインタの値に戻し、当該リードポインタの値が前記ライトポインタの値に一致するまで前記パラメータ読み出し指示を生成する、請求項３記載の情報処理装置。
【請求項６】
前記コアが出力する前記データ転送命令は、非同期データ転送命令である、請求項１乃至５のいずれか１項記載の情報処理装置。
【請求項７】
スイッチにより切替可能な複数のポートにより他のノードと接続された情報処理装置のデータ転送方法であって、
前記他のノードに送信データの転送を指示するデータ転送命令を受けて、送信データ、及び前記データ転送命令を実行するために必要な制御情報であるパラメータが格納された主記憶部から前記パラメータを読み出すと共に、各データ転送命令に対応するパラメータを前記主記憶部から読み出すための情報を保持しておき、
前記読み出したパラメータに基づき前記主記憶部から前記送信データを読み出して前記他のノードに送信し、
一のポートに障害が発生して、複数のデータ転送命令からなるジョブ中の一のデータ転送命令が異常終了した場合には、前記ジョブを強制終了することなく、前記パラメータを前記主記憶部から読み出すための情報に基づき、前記異常終了した前記一のデータ転送命令のパラメータを前記主記憶部から読み出し当該データ転送命令を再実行し、
前記障害が発生すると、前記スイッチにおいて、別経路でデータ転送を行えるようにするため、前記ポートを切り替え、
各データ転送命令に識別情報（ＩＤ）を付与し、各ＩＤと、各ＩＤに対応したパラメータを前記主記憶部から読み出すためのアドレス情報であるポインタとを対応付けて命令保持部に保持し、
前記一のポートの障害発生時に、その障害情報及び障害発生時に実行中であったデータ転送命令のＩＤを前記スイッチから受け取り、
前記命令保持部に保持されている、前記スイッチから受け取ったＩＤに対応するポインタに基づき、そのパラメータ及び送信データを前記主記憶部から読み出し、当該送信データを再送する、データ転送方法。
【請求項８】
情報処理装置と、
複数のポートにより前記情報処理装置と接続される他のノードと、
前記複数のポートを切り替えるスイッチとを有し、
前記情報処理装置は、
データ転送命令を発行するコアと、
前記データ転送命令により前記他のノードに転送する送信データ、及び前記データ転送命令を実行するために必要な制御情報であるパラメータを格納する主記憶部と、
前記コアからの前記データ転送命令を受けて、前記主記憶部から前記パラメータ及び送信データを読み出し、当該パラメータに基づき送信データを前記他のノードに送信するノード間通信制御部とを備え、
前記スイッチは、一のポートに障害が発生した場合、別経路でデータ転送を行えるようにするため、使用するポートを他のポートに切換え、
前記ノード間通信制御部は、各データ転送命令に対応する前記パラメータを前記主記憶部から読み出すための情報を保持し、前記障害が発生しても複数のデータ転送命令からなるジョブを強制終了することなく、当該情報に基づき、前記ジョブ中の一のデータ転送命令であって、前記障害の発生により異常終了したデータ転送命令を実行するためのパラメータを前記主記憶部から読み出し当該データ転送命令を再実行し、
前記ノード間通信制御部は、さらに
各データ転送命令に識別情報（ＩＤ）を付与するＩＤ制御部と、
前記ＩＤと、当該ＩＤに対応した前記パラメータを前記主記憶部から読み出すためのアドレス情報であるポインタとを対応付けて保持する命令保持部と、
前記データ転送命令の終了を判定する命令終了判定部とを有し、
前記命令終了判定部は、前記一のポートの障害発生時に、前記スイッチからその障害情報及び障害発生時に実行中であったデータ転送命令のＩＤを受け取り、当該ＩＤを前記命令保持部に出力し、
前記ノード間通信制御部は、前記命令保持部に保持されている、前記命令終了判定部から受け取ったＩＤに対応するポインタに基づき、そのパラメータ及び送信データを前記主記憶部から読み出し、当該送信データを再送する、
情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ノード間でデータ転送する情報処理システム、当該情報処理システムを構成する情報処理装置及びそのデータ転送方法に関する。
【背景技術】
【０００２】
データを送受信する際に、ノード間を複数のパスで接続しておき、現在使用しているパスに何らかの異常が発生した場合、他のパスに切り替えてデータの送受信を行うシステムがある。
【０００３】
図３は、従来の情報処理システムを示す図である。図３に示すように、従来の情報処理システム（計算機システム）１００は、情報処理装置１００と、複数のポート４を介して情報処理システム１と接続されるノード１０２Ａ、１０２Ｂ、・・・１０２Ｍ（以下、特に区別する必要のないときは、ノード１０２という。）と、複数のポート１０４を切り替えるスイッチ１０３とを有している。
【０００４】
スイッチ１０３は、あるポートが故障した場合にポートを切り替えて別経路で転送する機能を備える。
【０００５】
情報処理装置１００もノードの１つである。情報処理装置１００及びノード１０２は、演算処理部１１０及び主記憶部１０４を有する。演算処理部１１０は、コア１１２及びノード間通信制御部１１１を有する。
【０００６】
コア１１２は、データ転送命令を発行する。主記憶部１０５は、データ転送命令により他のノード１０２に転送する送信データ１０８、及びデータ転送命令を実行するために必要な制御情報であるパラメータ１０９を格納する。ノード間通信制御部１１１は、コア１１２からのデータ転送命令を受けて、主記憶部１０４からパラメータ１０９及び送信データ１０８を読み出し、パラメータ１０９に基づき送信データ１０８を他のノード１０２に送信する。
【０００７】
主記憶部１０５は、さらに、送信データの送信状況を書き込むステータスエリア１０７を有している。ノード間通信制御部１１１は、ステータスエリア１０７に書き込まれた情報に基づき命令終了を判断するようソフトウェア制御される。ノード間通信制御部１１１は、一のデータ転送命令を終了すると、一の終了報告をステータスエリア１０７に書き込む。ここで、スイッチ１０３がポートの障害を検出すると、ノード間通信制御部１１１は、この障害情報を受け取り、ステータスエリア１０７にハードウェア障害が生じたこと記録する。
【０００８】
他の従来技術としては、下記のものが公知である。特許文献１には、周辺装置の試験方法の技術が記載されている。特許文献１に記載の技術は、周辺装置を試験する試験プログラムと、この試験プログラムを実行するＣＰＵとを有する。ＣＰＵは、入出力動作指示手段を有し、この入出力動作指示手段により、周辺処理装置及びチャネルを介して入出力処理装置と接続された周辺装置に対し、試験プログラムからの入出力動作を入出力処理装置に指示する。そして、入出力処理装置、チャネル又は周辺処理装置に障害が発生した時に、周辺装置の試験が異常終了してしまうことを防止するものである。
【０００９】
特許文献２には、イーサネット（登録商標）を介して対抗機と通信を行うコールサーバであって、運用ポートと待機ポートの２重化ポート構造を備えたコールサーバが記載されている。当該コールサーバは、ＰＣＩ（Peripheral components Interconnect）バスのバスマスタ制御により運用ポート（ポートＡ）と待機ポート（ポートＢ）を切り替えるとともに、ＡＲＰ（Address Resolution Protocol）プロトコルのパケットをルータ（対抗機）に送信し、ルータ（対抗機）のルーティングテーブル（ＭＡＣアドレステーブル）を変更させ、ルータのポートの切り替えを実行させるポート切り替え手段を備える。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開平３−２６６１５５号公報
【特許文献２】特開２００３−３４８１２８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
図３に示す従来の情報処理システムにおいては、スイッチ１０３のスイッチ回路のポートで固定故障（障害）が発生した場合、ポートを切り替えて別経路を使用してデータ転送を行うことができる。しかしながら、ポートで障害が生じると、障害発生時に実行していたジョブは異常終了し、ノード間通信制御部１１１は、ステータスエリア１０７にＨＷ障害（ＨＷ障害＃２）を書き込む。これによりソフトウェアに障害が報告されるため、ジョブはキャンセルされ、最初からジョブを再度実行することとなり、データ転送の際の時間のロスが大きいという問題点がある。
【００１２】
また、特許文献１に記載の技術では、出力された結果が異常である場合、別のパスを使用し、実行中のプログラムは一旦停止、プログラムを最初から再実行することで周辺機器のテストを行う。よって、時間のロスが大きいという問題点がある。
【００１３】
さらに、特許文献２に記載の技術では、ポートに障害が発生した際には予備のポートに切り替えるが、上述と同様、通常はハードウェア障害が発生するとジョブは強制終了され、あらためて最初からジョブを実行しなければならず、時間のロスが大きいという問題点がある。
【課題を解決するための手段】
【００１４】
本発明にかかる情報処理装置は、スイッチにより切替可能な複数のポートにより他のノードと接続された情報処理装置であって、データ転送命令を発行するコアと、前記データ転送命令により前記他のノードに転送する送信データ、及び前記データ転送命令を実行するために必要な制御情報であるパラメータを格納する主記憶部と、前記コアからの前記データ転送命令を受けて、前記主記憶部から前記パラメータ及び送信データを読み出し、当該パラメータに基づき送信データを前記他のノードに送信するノード間通信制御部とを備え、一のポートに障害が発生して一のデータ転送命令が異常終了した場合、ジョブを強制終了することなく、前記異常終了したデータ転送命令を再実行するものであって、前記ノード間通信制御部は、各データ転送命令に対応する前記パラメータを主記憶部から読み出すための情報を保持し、前記障害が発生すると、当該情報に基づき、前記異常終了したデータ転送命令を実行するためのパラメータを前記主記憶部から読み出し当該データ転送命令を再実行するものである。
【００１５】
本発明にかかるデータ転送方法は、スイッチにより切替可能な複数のポートにより他のノードと接続された情報処理装置のデータ転送方法であって、前記他のノードに送信データの転送を指示するデータ転送命令を受けて、送信データ、及び前記データ転送命令を実行するために必要な制御情報であるパラメータが格納された主記憶部から前記パラメータを読み出すと共に、各データ転送命令に対応するパラメータを前記主記憶部から読み出すための情報を保持しておき、前記読み出したパラメータに基づき前記主記憶部から前記送信データを読み出して前記他のノードに送信し、一のポートに障害が発生して一のデータ転送命令が異常終了した場合には、ジョブを強制終了することなく、前記パラメータを前記主記憶部から読み出すための情報に基づき、前記異常終了したデータ転送命令のパラメータを前記主記憶部から読み出し当該データ転送命令を再実行するものである。
【００１６】
本発明にかかる情報処理システムは、情報処理装置と、複数のポートにより前記情報処理装置と接続される他のノードと、前記複数のポートを切り替えるスイッチとを有し、前記情報処理装置は、データ転送命令を発行するコアと、前記データ転送命令により前記他のノードに転送する送信データ、及び前記データ転送命令を実行するために必要な制御情報であるパラメータを格納する主記憶部と、前記コアからの前記データ転送命令を受けて、前記主記憶部から前記パラメータ及び送信データを読み出し、当該パラメータに基づき送信データを前記他のノードに送信するノード間通信制御部とを備え、前記スイッチは、一のポートに障害が発生した場合、使用するポートを他のポートに切換え、前記ノード間通信制御部は、各データ転送命令に対応する前記パラメータを主記憶部から読み出すための情報を保持し、前記障害が発生してもジョブを強制終了することなく、当該情報に基づき、前記障害の発生により異常終了したデータ転送命令を実行するためのパラメータを前記主記憶部から読み出し当該データ転送命令を再実行するものである。
【発明の効果】
【００１７】
本願発明によれば、送信データを効率よく転送することができる情報処理システム、当該情報処理システムを構成する情報処理装置及びそのデータ転送方法を提供することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施の形態にかかる情報送信システムを示すブロック図である。
【図２】本発明の実施の形態にかかる情報送信システムの詳細を示すブロック図である。
【図３】従来の情報処理システムを示すブロック図である。
【発明を実施するための形態】
【００１９】
以下、図面を参照して本発明の実施の形態について説明する。図１は、本実施の形態にかかる情報送信システムを示すブロック図である。図１に示すように、本発明の実施の形態にかかる情報処理システム（計算機システム）１は、情報処理装置１と、複数のポート４を介して情報処理システム１と接続されるノード２Ａ、２Ｂ、・・・２Ｍ（以下、特に区別する必要のないときは、ノード２という。）と、複数のポート４を切り替えるスイッチ３とを有している。なお、本実施の形態においては、ノード２も情報処理装置１と同様の構成として説明するが、ノード２の機能としては、少なくとも情報処理装置１から転送される送信データを受信できる機能があればよい。
【００２０】
情報処理装置１は、演算処理部１０及び主記憶部５を有する。演算処理部１０は、コア１２及びノード間通信制御部１１を有する。
【００２１】
コア１２は、データ転送命令を発行する。主記憶部５は、データ転送命令により他のノード２に転送する送信データ８、及びデータ転送命令を実行するために必要な制御情報であるパラメータ９を格納する。ノード間通信制御部１１は、コア１２からのデータ転送命令を受けて、主記憶部５からパラメータ９及び送信データ８を読み出し、パラメータ９に基づき送信データ８を他のノード２に送信する。
【００２２】
主記憶部５は、さらに、送信データの送信状況を書き込むステータスエリア７を有している。ノード間通信制御部１は、ステータスエリア７に書き込まれた情報に基づき命令終了を判断するようソフトウェア制御される。ノード間通信制御部１は、一のデータ転送命令を終了すると、一の終了報告をステータスエリア７に書き込む。
【００２３】
スイッチ３は、あるポートが故障した場合にポートを切り替えて別経路で転送する機能を備える。このスイッチ３は、パリティチェック等によりポートの障害を検出する障害検出部３２と、障害検出部３２が一のポートの障害を検出すると、通信に使用するポートを他のポートに切り替えるポート切替部３１と、障害検出部３２がポートの障害を検出すると、使用中のポートに障害が発生したことを示す障害情報と、障害発生時に実行中であったデータ転送命令のＩＤとを、送信元である情報処理装置１に出力する送信部３３とを有する。
【００２４】
この情報処理装置１においては、コア１２がデータ転送を指示する非同期データ転送命令を発行するが、この非同期データ転送命令の開始時、先ず、ソフトウェア処理として命令を実行するために必要な制御情報（以下、パラメータ９という。）を主記憶部の特定エリアに書き込み、そのアドレス情報であるポインタを、非同期データ転送命令としてノード間通信制御部１１に入力する。ノード間通信制御部１１はこのポインタを使用して主記憶部５からパラメータ９を読み出し、命令を組み立てた後、主記憶部５から送信データ８を読み出し、この送信データに、非同期データ転送命令を識別するための識別情報（ＩＤ）を付け、これをスイッチ３を介して他のノード２に転送する。ノード間通信制御部１１は、命令保持部（図示せず）を有しており、この命令保持部に、上記ＩＤ毎に、ステータスエリア７に終了報告を書き込むためのアドレス情報等を含む命令情報と、パラメータのポインタとを対応づけて保持しておく。ノード間通信制御部１１は、他のノード２での処理が終了し、一の非同期データ転送命令が正常に終了すると、スイッチ３を経由してＩＤを含むリプライを受け取る。そして、リプライのＩＤを元に命令保持部に保持してある命令情報から、正常終了した非同期データ転送命令に対応するステータスエリア７のアドレスを割り出して終了報告を書き込む。ソフトウェアはここを監視することで命令終了を判断する。
【００２５】
一方、スイッチ３内のデータ転送経路で障害（ＨＷ障害）が発生し、スイッチ障害を示すリプライを受信するとデータ転送が異常終了する。ここで、本実施の形態におけるノード間通信制御部１１は、ポートで障害が発生した場合であってもステータスエリア７にＨＷ障害を書き込まない。そして、リプライに含まれるＩＤを元に命令保持部で保持している、障害時に実行中であった非同期データ転送命令を実行するためのパラメータのポインタを割り出す。ノード間通信制御部１１は、命令保持部で割り出されたポインタを使用して、障害発生時に実行中であった非同期データ転送命令のパラメータ９を主記憶部５から読み出し、非同期データ転送命令を再度実行する。すなわち、パラメータ９に基づき送信データ８を主記憶部５から読み出し、ＩＤと共に出力する。スイッチ３では、ポートが切り替えられ動作を続け別経路を使用してデータ転送が可能である。よってこの送信データは、別径路を経由してノード２に転送される。ノード間通信制御部１１は、ノード２からリプライを受け取り、再実行した非同期データ転送命令が正常終了したら、主記憶部５のステータスエリア７に終了報告を書き込む。
【００２６】
本実施の形態においては、ノード間通信制御部１１は、各非同期データ転送命令のパラメータ９が主記憶部５のどこに記憶されているかを示すポインタを保持すると共に、ポートで障害が発生した場合であってもステータスエリア７にＨＷ障害を書き込まない。ステータスエリア７にＨＷ障害があったことを書き込まないため、従来のようにジョブがキャンセルされることがない。一方、障害発生時に実行中であった非同期データ転送命令を実行するためのパラメータ９のポインタは命令保持部から取得できるため、このポインタに基づき、パラメータ９を読み出すことができる。よって、このパラメータ９により、再度非同期データ転送命令を実行することができる。すなわち、ジョブの最初からではなく、障害発生時に実行中であった非同期データ転送命令から再実行すればよく、障害発生までに終了している非同期データ転送命令を再度行う必要がないため、データ転送時間のロスを低減することができる。
【００２７】
次に、本実施の形態について更に詳細に説明する。図２は、本実施の形態にかかる情報処理装置１の詳細を示すブロック図である。
【００２８】
図２に示すように、ノード間通信制御部１１は、ＩＤ制御部１４と、命令保持部１７と、命令終了判定部１９とを有する。ＩＤ制御部１４は、各非同期データ転送命令の識別情報（例えばＩＤ＃１〜＃ｎ）を決定する。命令保持部１７は、各ＩＤ＃１〜＃ｎと、各ＩＤ＃１〜＃ｎに対応したポインタとを対応付けて保持する。ＩＤ＃１〜＃ｎ及びこれに対応するポインタは、ＩＤ制御部１４から入力される。ポインタとは、主記憶部５からパラメータ９を読み出すためのアドレス情報である。命令終了判定部１９は、ノード間通信相手のノード２からリプライを受け取り、非同期データ転送命令の終了を判定する。命令終了判定部１９は、各非同期データ転送命令によるデータ転送が終了する毎に、スイッチ３を介してリプライを受け取る。このリプライには、正常終了した非同期データ転送命令のＩＤ＃１〜＃ｎが含まれる。命令終了判定部１９は、このＩＤ＃１〜＃ｎを命令保持部１７に送る。命令保持部１７は、このＩＤ＃１〜＃ｎの終了報告を主記憶部５のステータスエリア７のいずれのアドレスに書き込めばよいかを示す命令情報を保持しており、命令終了判定部１９はこの命令情報を受け取り、この命令情報に基づきステータスエリア７にＩＤ＃１〜＃ｎに対応する終了報告を書き込む。
【００２９】
ここで、ポートに障害が発生すると、命令終了判定部１９がスイッチ３からその障害情報及び障害発生時に実行中であったデータ転送命令のＩＤ（ここでは、ＩＤ＃３とする）を受け取り、そのＩＤ＃３を命令保持部１７に出力する。ここで、本実施の形態にかかる命令終了判定部１９において、スイッチ３から障害情報及びＩＤ＃３を受け取っても、ステータスエリア７に障害情報（ＨＷ障害）を書き込まない。命令保持部１７には、命令終了判定部１９から受け取ったＩＤ＃３に対応するポインタが格納されている。ノード間通信制御部１１は、このポインタに基づき、ＩＤ＃３に対応するパラメータ９及び送信データ８を主記憶部５から読み出し、当該送信データを再送する。
【００３０】
ノード間通信制御部１１は、さらに、パラメータ制御部１３と、命令発行部１５及び命令組立部１６からなる命令生成部と、データ送信部１８とを有する。パラメータ制御部１３は、コア１２から非同期データ転送命令としてポインタを受け取り、このポインタに基づき、命令発行部１５に命令を実行させるためのパラメータ読み出し指示を生成する。命令発行部１５、パラメータ制御部１３からパラメータ読み出し指示を受け取り、ＩＤ制御部１４からＩＤを受け取る。命令発行部１５は、このパラメータ読み出し指示及びＩＤに基づき、パラメータ９を読み出すためのパラメータ読み出し命令を生成する。このパラメータ読み出し命令により主記憶部５から読み出されたパラメータ９は、命令組立部１６に入力される。命令組立部１６は、パラメータに基づき、命令を組み立て命令発行部１５に出力する。命令発行部１５は、この命令を受けて、送信データを読み出すためのデータ読み出し命令を生成する。また、命令発行部１５は、更に、各非同期データ転送命令が完了する毎にその終了報告を主記憶部５のステータスエリア７に記録するための命令情報（ステータスエリアでのアドレス情報等を含む）を、各非同期データ転送命令毎に生成し、対応するＩＤと共に命令保持部１７に出力する。
【００３１】
データ送信部１８には、上記のデータ読み出し命令により、主記憶部５から送信する送信データ８とＩＤとが送られる。送信データ８は、送信データ８及びＩＤを他のノード２に出力する。なお、データ送信部１８は、各ポートからへの出力を選択するセレクタを備えてもよい。同様に、命令終了判定部１９においても、各ポートからの入力を選択するセレクタを備えてもよい。
【００３２】
ここで、上述のようにポートに障害が発生すると、パラメータ制御部１３は、命令保持部１７からＩＤ＃３に対応するポインタを受け取り、当該受け取ったポインタに基づき、パラメータ読み出し指示を再生成する。
【００３３】
命令生成部は、再生成されたＩＤ＃３に対応するパラメータ読み出し指示に基づきパラメータ９を読み出し、当該パラメータ９に基づきデータ読み出し命令を再生成する。
【００３４】
データ送信部１８は、再生成されたデータ読み出し命令により読み出された、障害発生時に送信中であった送信データ及びＩＤ（ＩＤ＃３）を他のノード２に再送信する。
【００３５】
また、パラメータ制御部１３は、コア１２からデータ転送命令を受け取るとカウントアップするライトポインタＷＰ１３１と、データ転送命令を受けてパラメータ読み出し指示を生成するとカウントアップするリードポインタＲＰ１３２とを有している。データ転送命令を受けてライトポインタＷＰ１３１がカウントアップすると、ライトポインタＷＰ１３１とリードポインタＲＰ１３２のポインタ値が不一致となる。ポインタの値が不一致で未実行の命令がある場合に、パラメータ制御部１３は、パラメータ読み出し指示を生成する。ここで、ＩＤ＃３の非同期データ転送命令実行中に障害が発生した場合、命令保持部１７からＩＤ＃３のポインタを受け取り、リードポインタを当該受け取ったポインタの値に戻す。これにより、ライトポインタＷＰ１３１とリードポインタＲＰ１３２のポインタ値が不一致となるため、パラメータ制御部１３は、リードポインタの値がライトポインタの値に一致するまでパラメータ読み出し指示を生成する。すなわち、現在ＩＤ＃４の非同期データ転送命令を実行していた場合は、ＩＤ＃０の非同期データ転送命令（ジョブの最初）からではなく、ＩＤ＃３の非同期データ転送命令から命令を再実行する。
【００３６】
次に、本実施の形態にかかる情報処理装置のデータ転送方法について説明する。コア１２は、複数の非同期データ転送命令からなるジョブを実施する。なお、本実施の形態においては、ジョブを構成する命令は、非同期のデータ転送命令として説明するが、ノード間で同期してデータ転送してもよい。
【００３７】
先ず、正常状態の動作について説明する。情報処理装置１（命令発行ノード）では、先ず、コア１２が非同期データ転送命令を実行するためのパラメータ９を生成し、主記憶部５に書き込む。次に、コア１２は、このパラメータ９のアドレスを示すポインタを非同期データ転送命令としてパラメータ制御部１３に出力する。
【００３８】
パラメータ制御部１３は、コア１２から非同期データ転送命令のポインタを受信すると、ライトポインタＷＰ１３１をカウントアップする。パラメータ制御部１３は、ライトポインタＷＰ１３１≠リードポインタＲＰ１３２の状態で主記憶部５に未実行のパラメータ７がある場合に、リードポインタＲＰ１３２をカウントアップし、ＩＤ制御部１４と命令保持部１７に対してパラメータ読み出し指示を出力する。パラメータ読み出し指示にはポインタの情報が含まれる。
【００３９】
ＩＤ制御部１４は、現在実行中の非同期データ転送命令のＩＤを決定し（ここではＩＤ＃２とする）、命令保持部１７にＩＤ＃２及びこれに対応するパラメータのポインタを出力し、命令発行部１７にはＩＤ＃２を通知する。命令発行部１５では、パラメータ読み出し指示とＩＤ＃２とを使用してパラメータ読み出し命令を生成する。ここで、ＩＤ＃２のパラメータ９をパラメータ９（＃２）とする。
【００４０】
命令組立部１６は、パラメータ読み出し命令により主記憶部５から読み出されたパラメータ９（＃２）を使用して命令を組み立て、命令発行部１５にその命令を送る。命令発行部１５は、この命令に基づき、主記憶部５に対し、ＩＤ＃２に対応する送信データを読み出すためのデータ読み出し命令を発行し、同時に命令保持部１７に対し、このＩＤ＃２と、これに対応する、ステータスエリア７のアドレス情報等を含む命令情報とを送る。こうして、命令保持部１７には、ＩＤ毎のパラメータのポインタと命令情報とが保持される。データ送信部１８は、データ読み出し命令により主記憶部５から読み出された送信データ８を、ＩＤ＃２と共に受け取る。データ送信部１８は、送信データにＩＤ＃２を付加してスイッチ３を介してノード２に送信する。
【００４１】
ノード２は、ＩＤ＃２の非同期データ転送命令によるデータ転送により送信データを受け取ると、これを通知するリプライを情報処理装置１に対して送信する。このリプライにはＩＤ＃２の情報が含まれる。命令終了判定部１９は、正常にデータ転送が終了したＩＤ＃２の情報を含むリプライを受け取ると、命令保持部１７からＤ＃２に対応する命令情報を受け取る。この命令情報には、終了報告を書き込むステータスエリア７のアドレス情報等が含まれ、この命令情報に基づき、命令終了判定部１９は、ステータスエリア７の所定のアドレスに終了報告（終了報告＃２）を書き込む。
【００４２】
次に、ポートに障害が発生した場合について説明する。スイッチ３のスイッチ回路３１ｂは、データ転送中にポートが故障しデータ転送が不可能な状態となると、転送中の送信データのＩＤ（ここではＩＤ＃３とする）をリプライに付けて情報処理装置１に対して障害通知として送る。一方で、別経路でデータ転送を行えるようにするため、ポートを切り替える。
【００４３】
命令終了判定部１９は、スイッチの障害通知（ＩＤ＃３の情報を含む）を受け取ると、命令終了判定部１９から命令保持部１７にこのＩＤ＃３を通知する。命令保持部１７では各ＩＤのパラメータのポインタを保持しているので、障害時に実行中であった非同期データ転送命令のポインタを割り出し、すなわち本例においては、ＩＤ＃３のポインタを読み出しパラメータ制御部１３に出力する。パラメータ制御部１３は、ＩＤ＃３（障害時に実行中であった非同期データ転送命令）のポインタを受け取ると、リードポインタＲＰ１３２の値をＩＤ＃３の値まで戻す。これにより、ライトポインタＷＰ１３１の値と不一致となり、パラメータ制御部１３は、上述のようにＩＤ制御部１４と命令保持部１７に対してパラメータ読み出し指示を出力する。これを受けてその他のブロックも正常時と同様に動作し、障害発生時に実行中であったＩＤ＃３の非同期データ転送命令を再実行する。
【００４４】
以上説明したように、データ転送命令を実行中にスイッチ３のスイッチ回路３１ｂのポートで固定障害が発生し、そのポートを使用してのデータ転送が不可能となるとデータ転送命令は異常終了するが、スイッチ回路３１ｂはポートを切り替え別ポートにてデータ転送が可能である。本実施の形態においては、各命令のＩＤ毎にポインタを記憶しているため、異常終了した命令（非同期データ転送命令）のパラメータを主記憶部５から読み出すことができる。よって、命令を再度実行して正常終了させることができる。命令終了判定部１９は固定障害が発生してもステータスエリア７にＨＷ障害があったことを書き込まないため、ジョブは異常終了することなく、よってジョブを最初から実行せず、障害が発生時他時点から再実行することが可能となる。このように、スイッチ障害があっても、ジョブの開始から障害発生前までに実行終了した命令は再実行しないため、ジョブを最初から再実行する従来に比してデータ転送時間を低減することができる。
【００４５】
さらに、本実施の形態においては、命令実行に必要なパラメータ９を主記憶部５に格納する構成となっている。よって、このパラメータ９を読み出せば命令を再実行することができる、すなわち、データを再送信することができる。例えば、データを再送信するために、データ送信部１８にバッファを設けてこれを保持しておくこと等が考えられるが、本実施の形態のように複数のパスがある場合はパス毎にバッファを設ける必要等が生じ、ＨＷ量が増加する。これに対し、本実施の形態においては、ポインタの情報のみ保持し、このポインタの情報から命令を再構築する、すなわち、パラメータを読み出し、これに基づき送信データを読み出し送信するため、少ないＨＷ資源で本実施の形態の実現が可能である。
【００４６】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、情報処理装置１は、図２の構成に限るものではない。各非同期データ転送命令毎に（ＩＤ毎に）、そのパラメータを読み出すための情報を保持し、パスに障害が発生するＨＷ障害が発生した場合に、従来のようにＨＷ障害として扱わず、前記のパラメータを読み出すための情報に基づき、パラメータを読み出すことで、障害発生時に実行中であった命令から再実行するよう制御可能であれば、どのような構成であってもよい。また、情報処理システム（計算機システム）を構成するノード数等に特に制限はない。
【００４７】
（付記１）
スイッチにより切替可能な複数のポートにより他のノードと接続された情報処理装置であって、
データ転送命令を発行するコアと、
前記データ転送命令により前記他のノードに転送する送信データ、及び前記データ転送命令を実行するために必要な制御情報であるパラメータを格納する主記憶部と、
前記コアからの前記データ転送命令を受けて、前記主記憶部から前記パラメータ及び送信データを読み出し、当該パラメータに基づき送信データを前記他のノードに送信するノード間通信制御部とを備え、
一のポートに障害が発生して一のデータ転送命令が異常終了した場合、ジョブを強制終了することなく、前記異常終了したデータ転送命令を再実行するものであって、
前記ノード間通信制御部は、各データ転送命令に対応する前記パラメータを主記憶部から読み出すための情報を保持し、前記障害が発生すると、当該情報に基づき、前記異常終了したデータ転送命令を実行するためのパラメータを前記主記憶部から読み出し当該データ転送命令を再実行する、情報処理装置。
（付記２）
前記ノード間通信制御部は、
各データ転送命令に識別情報（ＩＤ）を付与するＩＤ制御部と、
前記ＩＤと、当該ＩＤに対応した前記パラメータを前記主記憶部から読み出すためのアドレス情報であるポインタとを対応付けて保持する命令保持部と、
前記データ転送命令の終了を判定する命令終了判定部とを有し、
前記命令終了判定部は、一のポートの障害発生時に、前記スイッチからその障害情報及び障害発生時に実行中であったデータ転送命令のＩＤを受け取り、当該ＩＤを前記命令保持部に出力し、
前記ノード間通信制御部は、前記命令保持部に保持されている、前記命令終了判定部から受け取ったＩＤに対応するポインタに基づき、そのパラメータ及び送信データを前記主記憶部から読み出し、当該送信データを再送する、付記１記載の情報処理装置。
（付記３）
前記主記憶部は、前記命令終了判定部が前記送信データの送信状況を書き込むステータスエリアを有し、
前記ノード間通信制御部は、前記ステータスエリアに書き込まれた情報に基づき命令終了を判断するようソフトウェア制御されるものであって、
前記命令終了判定部は、前記スイッチから前記障害情報及びＩＤを受け取ると、前記ステータスエリアに前記障害情報を書き込まず、受け取ったＩＤを前記命令保持部に出力する、付記２記載の情報処理装置。
（付記４）
前記ノード間通信制御部は、
前記コアから前記データ転送命令として前記ポインタを受け取り、当該ポインタに基づきパラメータ読み出し指示を生成するパラメータ制御部と、
前記パラメータ読み出し指示を受けてパラメータ読み出し命令を生成すると共に、当該パラメータ読み出し命令により前記主記憶部から読み出されたパラメータに基づきデータ読み出し命令を生成する命令生成部と、
前記データ読み出し命令により前記主記憶部から前記送信データ及びＩＤを受け取り、前記他のノードに送信するデータ送信部とを更に有し、
前記障害発生時に
前記パラメータ制御部は、前記命令保持部から前記ポインタを受け取り、当該受け取ったポインタに基づき、前記パラメータ読み出し指示を再生成し、
前記命令生成部は、再生成されたパラメータ読み出し指示に基づき前記パラメータを読み出し、当該パラメータに基づき前記データ読み出し命令を再生成し、
前記データ送信部は、再生成されたデータ読み出し命令により、障害発生時に送信中であった送信データ及びＩＤを前記他のノードに再送信する、付記２又は３項記載の情報処理装置。
（付記５）
前記コアは、前記データ転送命令を実行するための前記パラメータを生成して前記主記憶部に書き込み、そのアドレス情報であるポインタを、当該データ転送命令として前記ノード間通信制御部に出力する、付記１乃至４のいずれか１項に記載の情報処理装置。
（付記６）
前記パラメータ制御部は、前記コアから前記データ転送命令を受け取るとカウントアップするライトポインタと、前記データ転送命令を受けて前記パラメータ読み出し指示を生成するとカウントアップするリードポインタとを有し、前記障害発生時に前記命令保持部から前記ポインタを受け取ると、前記リードポインタを当該受け取ったポインタの値に戻し、当該リードポインタの値が前記ライトポインタの値に一致するまで前記パラメータ読み出し指示を生成する、付記４記載の情報処理装置。
（付記７）
前記コアが出力する前記データ転送命令は、非同期データ転送命令である、付記１乃至６のいずれか１項記載の情報処理装置。
（付記８）
スイッチにより切替可能な複数のポートにより他のノードと接続された情報処理装置のデータ転送方法であって、
前記他のノードに送信データの転送を指示するデータ転送命令を受けて、送信データ、及び前記データ転送命令を実行するために必要な制御情報であるパラメータが格納された主記憶部から前記パラメータを読み出すと共に、各データ転送命令に対応するパラメータを前記主記憶部から読み出すための情報を保持しておき、
前記読み出したパラメータに基づき前記主記憶部から前記送信データを読み出して前記他のノードに送信し、
一のポートに障害が発生して一のデータ転送命令が異常終了した場合には、ジョブを強制終了することなく、前記パラメータを前記主記憶部から読み出すための情報に基づき、前記異常終了したデータ転送命令のパラメータを前記主記憶部から読み出し当該データ転送命令を再実行する、データ転送方法。
（付記９）
各データ転送命令に識別情報（ＩＤ）を付与し、各ＩＤと、各ＩＤに対応したパラメータを前記主記憶部から読み出すためのアドレス情報であるポインタとを対応付けて命令保持部に保持し、
一のポートの障害発生時に、前記スイッチからその障害情報及び障害発生時に実行中であったデータ転送命令のＩＤを前記スイッチから受け取り、
前記命令保持部に保持されている、前記スイッチから受け取ったＩＤに対応するポインタに基づき、そのパラメータ及び送信データを前記主記憶部から読み出し、当該送信データを再送する、付記８記載のデータ転送方法。
（付記１０）
前記主記憶部は、前記命令終了判定部が前記送信データの送信状況を書き込むステータスエリアを有し、
前記情報処理装置は、前記ステータスエリアに書き込まれた情報に基づき命令終了を判断するようソフトウェア制御されるものであって、
前記スイッチから前記障害情報及びＩＤを受け取ると、前記ステータスエリアに前記障害情報を書き込まず、受け取ったＩＤを前記命令保持部に出力する、付記９記載のデータ転送方法。
（付記１１）
前記データ転送命令として前記ポインタを受け取り、当該ポインタに基づきパラメータ読み出し指示を生成し、
前記パラメータ読み出し指示を受けてパラメータ読み出し命令を生成すると共に、当該パラメータ読み出し命令により前記主記憶部から読み出されたパラメータに基づきデータ読み出し命令を生成し、
前記データ読み出し命令により前記主記憶部から前記送信データ及びＩＤを受け取り、前記他のノードに送信するものであって、
前記障害発生時には、
前記命令保持部から前記ポインタを受け取り、当該受け取ったポインタに基づき、前記パラメータ読み出し指示を再生成し、
再生成されたパラメータ読み出し指示に基づき前記パラメータを読み出し、当該パラメータに基づき前記データ読み出し命令を再生成し、
再生成されたデータ読み出し命令により、障害発生時に送信中であった送信データ及びＩＤを前記他のノードに再送信する、付記９又は１０項記載のデータ転送方法。
（付記１２）
前記データ転送命令を実行するための前記パラメータを生成して前記主記憶部に書き込み、そのアドレス情報であるポインタを、当該データ転送命令として使用する、付記９乃至１１のいずれか１項に記載のデータ転送方法。
（付記１３）
前記データ転送命令は、非同期データ転送命令である、付記９乃至１２のいずれか１項記載のデータ転送方法。
（付記１４）
前記データ転送命令を受け取るとライトポインタをカウントアップし、
前記データ転送命令を受けて前記パラメータ読み出し指示を生成するとリードポインタをカウントアップし、
前記障害発生時には、前記命令保持部から前記ポインタを受け取ると、前記リードポインタを当該受け取ったポインタの値に戻し、当該リードポインタの値が前記ライトポインタの値に一致するまで前記パラメータ読み出し指示を生成する、付記１１記載のデータ転送方法。
（付記１５）
情報処理装置と、
複数のポートにより前記情報処理装置と接続される他のノードと、
前記複数のポートを切り替えるスイッチとを有し、
前記情報処理装置は、
データ転送命令を発行するコアと、
前記データ転送命令により前記他のノードに転送する送信データ、及び前記データ転送命令を実行するために必要な制御情報であるパラメータを格納する主記憶部と、
前記コアからの前記データ転送命令を受けて、前記主記憶部から前記パラメータ及び送信データを読み出し、当該パラメータに基づき送信データを前記他のノードに送信するノード間通信制御部とを備え、
前記スイッチは、一のポートに障害が発生した場合、使用するポートを他のポートに切換え、
前記ノード間通信制御部は、各データ転送命令に対応する前記パラメータを主記憶部から読み出すための情報を保持し、前記障害が発生してもジョブを強制終了することなく、当該情報に基づき、前記障害の発生により異常終了したデータ転送命令を実行するためのパラメータを前記主記憶部から読み出し当該データ転送命令を再実行する、情報処理システム。
（付記１６）
データ転送命令によりその識別情報（ＩＤ）を付与した送信データを出力する情報処理装置と当該送信データを受信する他のノードとの間を接続する複数のポートの接続を切り替えるスイッチであって、
前記情報処理装置は、一のポートに障害が発生して一のデータ転送命令が異常終了した場合、ジョブを強制終了することなく、他のポートにより前記異常終了したデータ転送命令を再実行するものであって、
前記スイッチは、
前記ポートの障害を検出する障害検出部と、
前記障害検出部が一のポートの障害を検出すると、通信に使用するポートを他のポートに切り替えるポート切替部と、
前記障害検出部がポートの障害を検出すると、使用中のポートに障害が発生したことを示す障害情報と、前記障害発生時に実行中であったデータ転送命令のＩＤとを、送信元である前記情報処理装置に出力する送信部と、を有するスイッチ。
（付記１７）
スイッチにより切替可能な複数のポートにより他のノードと接続された情報処理装置のデータ転送処理をコンピュータに実行させるためのプログラムであって、
前記他のノードに送信データの転送を指示するデータ転送命令を受けて、送信データ、及び前記データ転送命令を実行するために必要な制御情報であるパラメータが格納された主記憶部から前記パラメータを読み出すと共に、各データ転送命令に対応するパラメータを前記主記憶部から読み出すための情報を保持しておき、
前記読み出したパラメータに基づき前記主記憶部から前記送信データを読み出して前記他のノードに送信し、
一のポートに障害が発生して一のデータ転送命令が異常終了した場合には、ジョブを強制終了することなく、前記パラメータを前記主記憶部から読み出すための情報に基づき、前記異常終了したデータ転送命令のパラメータを前記主記憶部から読み出し当該データ転送命令を再実行する、プログラム。
【符号の説明】
【００４８】
１  情報処理装置
２  ノード
３  スイッチ
４  ポート
５  主記憶部
７  ステータスエリア
８  送信データ
９  パラメータ
１０  演算処理部
１１  ノード間通信制御部
１２  コア
１３  パラメータ制御部
１４  ＩＤ制御部
１５  命令発行部
１６  命令組立部
１７  命令保持部
１８  データ送信部
１９  命令終了判定部
３１ａ  切り替え部
３１ｂ  切り替え部
１３１  ライトポインタＷＰ
１３２  リードポインタＲＰ
【図１】
0005669193.tif 000002
【図２】
0005669193.tif 000003
【図３】
0005669193.tif 000004