(57)【特許請求の範囲】
【請求項１】
ホストチャネルアダプタ（ＨＣＡ）と、
前記ホストチャネルアダプタから発行された所定のｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを受信すると、リプライトランザクションを返送する入出力コントローラ（ＩＯＣ）と、
前記入出力コントローラと前記ホストチャネルアダプタとの間に設けられ、トランザクションを中継するスイッチと
を具備し、
前記入出力コントローラは、主記憶メモリと前記スイッチとの間に設けられ、
前記ホストチャネルアダプタは、前記主記憶メモリからのリプライトランザクションの返送が義務付けられていないｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを発行したのち、前記入出力コントローラから所定の数のリプライトランザクションを受信するまで、前記入出力コントローラからのリプライトランザクションを待ち合わせ、
前記スイッチは前記トランザクションの中継時に発生した障害をＣＰＵに通知し、
前記ホストチャネルアダプタは前記ＣＰＵから障害発生の通知を受信したとき、前記ホストチャネルアダプタとポイント・ツー・ポイント接続されている対向するホストチャネルアダプタにデータ転送が異常終了したことを通知する
データ転送装置。
【請求項２】
前記スイッチは、シリアル転送インタフェースであるＰＣＩ  ｅｘｐｒｅｓｓのパケット化されたデータの転送をスイッチングする
請求項１に記載のデータ転送装置。
【請求項３】
前記入出力コントローラは、前記ＣＰＵが実行するプログラムを格納する主記憶メモリへのデータ書き込みを指示するｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを受信すると、カウント用のリプライトランザクションを返送し、
前記ホストチャネルアダプタは、前記ｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを発行したのち、前記主記憶メモリへのデータ書き込みを指示するｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションに対応する全ての前記カウント用のリプライトランザクションを受信するまで新たなトランザクションを発行せずに待ち合わせる
請求項１または請求項２に記載のデータ転送装置。
【請求項４】
前記入出力コントローラは、前記ＣＰＵが実行するプログラムを格納する主記憶メモリへのデータ書き込みを指示するｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションの受信の予定数を、前記ホストチャネルアダプタからｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションに基づいて書き込まれ、保持するレジスタを備え、
前記ホストチャネルアダプタから発行された前記主記憶メモリへのデータ書き込みを指示するｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションの受信数が前記レジスタに書き込まれた数に一致するとき、カウント用のリプライトランザクションを前記ホストチャネルアダプタへ発行し、
前記ホストチャネルアダプタは、前記ｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを発行したのち、前記レジスタに書き込みを要求するｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションの発行数と、前記カウント用のリプライトランザクションの受信数とが一致するまで新たなトランザクションを発行せずに待ち合わせる
請求項１または請求項２に記載のデータ転送装置。
【請求項５】
請求項１から請求項４のいずれかに記載のデータ転送装置を備える複数のコンピュータを含み、
ポイント・ツー・ポイント接続される前記複数のコンピュータ間で前記データ転送装置を介してデータの授受を行なう
コンピュータシステム。
【請求項６】
前記複数のコンピュータの各々は、ＣＰＵを含み、
前記複数のコンピュータのうちの障害が発生したコンピュータにおいて前記スイッチが前記ＣＰＵに対して障害発生を通知したとき、主記憶メモリに書き込み途中の前記ホストチャネルアダプタに対して障害発生を通知し、前記主記憶メモリに書き込み途中の前記ホストチャネルアダプタはポイント・ツー・ポイント接続されている他のコンピュータの前記対向するホストチャネルアダプタに対して前記主記憶メモリへのデータ書き込みが異常終了したことを通知する
請求項５に記載のコンピュータシステム。
【請求項７】
ホストチャネルアダプタから、主記憶メモリからのリプライトランザクションの返送が義務付けられていないｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを、前記主記憶メモリとスイッチとの間に設けられた入出力コントローラに対して、前記スイッチを介して発行するステップと、
前記所定のｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを受けた前記入出力コントローラから前記ホストチャネルアダプタに対して所定のリプライトランザクションを発行するステップと、
前記ホストチャネルアダプタが前記ｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを発行した後、前記入出力コントローラからのリプライトランザクションを受信するまで待ち合わせるステップと、
前記スイッチがトランザクションを中継するときに検出した障害をＣＰＵに通知するステップと、
前記障害に基づいて前記ＣＰＵから通知される障害通知を受信したときに前記ホストチャネルアダプタからポイント・ツー・ポイント接続されている対向するホストチャネルアダプタに対してデータ転送が異常終了したことを通知するステップと
を具備する
データ転送方法。
【請求項８】
前記スイッチは、シリアル転送インタフェースであるＰＣＩ  ｅｘｐｒｅｓｓのパケット化されたデータの転送をスイッチングする
請求項７に記載のデータ転送方法。
【請求項９】
前記所定のリプライトランザクションを発行するステップは、
前記ＣＰＵが実行するプログラムを格納する主記憶メモリへのデータ書き込みを指示するｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを受信するステップと、
前記主記憶メモリへのデータ書き込みを指示するｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションに応答してカウント用のリプライトランザクションを返送するステップと
を備え、
前記待ち合わせるステップは、前記ｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを発行したのち、前記主記憶メモリへのデータ書き込みを指示するｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションに対応する全ての前記カウント用のリプライトランザクションを受信するまで新たなトランザクションを発行せずに待ち合わせるステップを備える
請求項７または請求項８に記載のデータ転送方法。
【請求項１０】
前記所定のリプライトランザクションを発行するステップは、
前記ＣＰＵが実行するプログラムを格納する主記憶メモリへのデータ書き込みを指示するｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションの受信の予定数を、前記ホストチャネルアダプタからｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションに基づいて前記入出力コントローラに内蔵されるレジスタに書き込むステップと、
前記ホストチャネルアダプタから発行された前記主記憶メモリへのデータ書き込みを指示するｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションの受信数が前記レジスタに書き込まれた数に一致するとき、カウント用のリプライトランザクションを前記ホストチャネルアダプタへ発行するステップと
を備え、
前記待ち合わせるステップは、前記ｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを発行したのち、前記レジスタに書き込みを要求するｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションの発行数と、前記カウント用のリプライトランザクションの受信数とが一致するまで新たなトランザクションを発行せずに待ち合わせる
請求項７または請求項８に記載のデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、装置間のデータ転送方法に関し、特にパケットデータを転送するデータ転送方法、そのデータ転送方法によってデータを授受するデータ転送装置、コンピュータシステムに関する。
【背景技術】
【０００２】
ホストコンピュータ間をポイント・ツー・ポイント接続するインターコネクトとして、ＰＣＩ  ｅｘｐｒｅｓｓ  ｓｗｉｔｃｈ（以下ＰＣＩスイッチ）のポートに接続されるホストチャネルアダプタ（ＨＣＡ）を用いることがある。このＰＣＩスイッチには、他のＰＣＩデバイスも接続される。このようなシステムにおいてＰＣＩスイッチに障害が起きると、ＰＣＩスイッチを閉塞することが多い。そのような場合、ホストチャネルアダプタを含め、ＰＣＩスイッチに接続されている全てのＰＣＩデバイスが閉塞され、障害発生時の影響範囲が大きい。
【０００３】
ＰＣＩスイッチは、“障害閉塞モード”および“障害通知モード”の動作モードを備える。“障害閉塞モード”では、ＰＣＩスイッチは障害発生時に自身を閉塞する。“障害通知モード”では、ＰＣＩスイッチは閉塞せずに処理中のトランザクションのみ破棄し、コントローラに障害通知を行なって後続のトランザクションの処理を継続する。
【０００４】
データインテグリティ（データ完全性）を保証するためには、障害発生時にホストチャネルアダプタ間のデータ転送を異常終了させる必要がある。障害閉塞モードでは、障害発生時にホストチャネルアダプタが閉塞されるため、データ転送が途中で停止して異常終了し、データインテグリティが保証される。しかし、ＰＣＩスイッチに接続される他のＰＣＩデバイスも閉塞するため、障害の影響範囲が大きくなる。したがって、障害閉塞モードでは、障害の影響が及ぶ範囲を小さくすることが課題である。一方、障害通知モードでは、ＰＣＩスイッチに接続されているＰＣＩデバイスは閉塞されず、障害の影響が及び範囲は限定的になる。しかし、ホストチャネルアダプタ間で転送途中のトランザクションが破棄されるが、データ転送を要求したリクエスタはその異常を検出できないため、データ転送は正常終了したものと扱われる。したがって、この場合、データインテグリティを保証することはできない。
【０００５】
ＰＣＩバス障害によるシステムダウンの発生を抑止するため、特開２００５−２１５８０９号公報には、プロセッサと、主記憶と、複数の入出力デバイスとを接続する入出力バスを制御するバスコントローラを含み、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）にて制御されるコンピュータシステムが開示されている。バス信号制御部は、ＰＣＩバスプロトコルに従ってＰＣＩバス上のＰＣＩデバイスとのトランザクション制御を行う。バス信号制御部は、バス障害検出時にバス障害インジケータをセットしてＰＣＩバスを縮退状態として扱い、ＰＣＩデバイスへの指示要求を受付ける。コンフィグレーション部は、バス障害インジケータを持ち、コンフィグレーションレジスタを更新する。そして、コンフィグレーション部は、リプライトランザクションをインバウンドコントローラ部に送信する。アービトレーション部は、ＰＣＩバスの調停を行い、バス縮退状態時にＰＣＩデバイスからのバス使用要求をマスクする。
【０００６】
特開２００９−１６９８５４号公報には、周辺装置にデータ転送要求を発行するホストブリッジと、周辺装置と複数のレーンを介して接続され、ホストブリッジと周辺装置との間を中継する第１のホストバスアダプタとを有するコンピュータシステムにおいて、バス障害が発生した場合に迅速にリカバリ処理する技術が開示されている。ホストブリッジは、周辺装置との間でデータ転送が行われている間に通信エラーが発生した場合に、複数のレーンのうち正常であるレーンを使用してデータ転送における転送未完了のデータを第１のホストバスアダプタから受信する。
【０００７】
また、特開平０９−３２５９１９号公報には、データの転送エラーを検出し、リクエストトランザクションに対するリプライトランザクションの正当性を高めるスプリット転送エラー監視装置が開示されている。リクエストトランザクション送信回路は、リクエストトランザクションの送信時にカウント回路をインクリメントする。リプライトランザクション受信回路は、リプライトランザクションの受信時にカウント回路をデクリメントする。カウント回路は、カウント値が負になるとエラーを中央処理装置に報告する。中央処理装置は、トランザクション情報格納バッファにリクエストトランザクション及びリプライトランザクションの情報を書込む。中央処理装置は、パリティ反転手段を用いてデータ格納バッファを偶数パリティで初期化する。そして、中央処理装置は、トランザクション情報格納バッファとデータ格納バッファとからのデータを奇数パリティでチェックする。
【０００８】
図１に示されるように、対向するホストコンピュータ７Ａ、７Ｂが有するホストチャネルアダプタ２３Ａ、２３Ｂを光ケーブル３０でポイント・ツー・ポイント接続したコンピュータシステムにおけるデータ転送を説明する。図２は、ＲＤＭＡ（Ｒｅｍｏｔｅ  Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）によるデータ転送であるＲＤＭＡ−ｗｒｉｔｅの正常動作のときのシーケンス例を示す。
【０００９】
ホストコンピュータ７ＡのＣＰＵ１１Ａは、ＲＤＭＡ−ｗｒｉｔｅによるデータ転送をホストチャネルアダプタ２３Ａに要求する（Ｓ１０１）。ホストチャネルアダプタ２３Ａは、ｒｅａｄトランザクションを発行し（Ｓ１０２）、ＰＣＩスイッチ２２ＡおよびＩＯＣ２１Ａを介して主記憶メモリ１２Ａからデータを読み出す（Ｓ１０３）。ホストチャネルアダプタ２３Ａは、読み出したデータを対向するコンピュータ７Ｂのホストチャネルアダプタ２３Ｂに光ケーブル３０を介してデータ転送する（Ｓ１１１〜Ｓ１１４）。
【００１０】
データを受信したホストチャネルアダプタ２３Ｂは、ｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを発行し、ＰＣＩスイッチ２２Ｂ、ＩＯＣ２１Ｂを介して主記憶メモリ１２Ｂにデータを書き込む（Ｓ１２１〜Ｓ１２４）。ここで、データを送信する場合の手順として、“ｐｏｓｔｅｄ  ｗｒｉｔｅ”と“ｎｏｎ−ｐｏｓｔｅｄ  ｗｒｉｔｅ”がある。“ｐｏｓｔｅｄ  ｗｒｉｔｅ”は相手側からのレスポンスを必要とせず、“ｎｏｎ−ｐｏｓｔｅｄ  ｗｒｉｔｅ”は相手側から動作完了のレスポンスを必要とする。したがって、転送速度を優先するＤＭＡ転送では“ｐｏｓｔｅｄ  ｗｒｉｔｅ”が使用される。
【００１１】
ホストチャネルアダプタ２３Ｂは、転送されるデータの最後のｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを発行すると、ｒｅａｄトランザクションを発行して（Ｓ１４１）、最後に書き込んだデータを読み出して主記憶メモリ１２Ｂが書き込み動作を完了したことを待ち合わせる。Ｒｅａｄトランザクションに対して主記憶メモリ１２Ｂからリプライトランザクションが返却されると（Ｓ１４２）、ホストチャネルアダプタ２３Ｂは、ホストコンピュータ７Ａのホストチャネルアダプタ２３Ａに対して正常終了を示す終了フラグを転送する（Ｓ１４４）。
【００１２】
終了フラグを受信したホストチャネルアダプタ２３Ａは、ｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを発行し、主記憶メモリ１２Ａに正常終了を示す終了フラグを書き込む（Ｓ１５１）。ＣＰＵ１１Ａは、ホストチャネルアダプタ２３Ａによって書き込まれる終了フラグをポーリングしてＲＤＭＡ−ｗｒｉｔｅの完了を待ち合わせ、読み込んだ終了フラグによって示される値に基づいて、正常終了・異常終了の判定を行う（Ｓ１５２）。ここでは、全てのデータが主記憶メモリ１２Ｂに書き込まれているため、ＣＰＵ１１Ａは、正常終了と認識する。
【００１３】
次に、ＰＣＩスイッチ２２Ｂにおいて障害発生を検知した場合を説明する。図３には、障害による影響を拡散させないように、障害発生時にＰＣＩスイッチ２２Ｂおよびホストチャネルアダプタ２３Ｂを閉塞する障害閉塞モードのシーケンスが示される。
【００１４】
ホストチャネルアダプタ２３Ｂがｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを処理中にＰＣＩスイッチ２２Ｂにおいて障害が発生すると（Ｓ１２３）、ＰＣＩスイッチ２２Ｂは障害通知をＣＰＵ１１Ｂに報告して閉塞する（Ｓ１３７）。ＰＣＩスイッチ２２Ｂが閉塞するため、ＰＣＩスイッチ２２Ｂに接続されているホストチャネルアダプタ２３Ｂ、その他のＰＣＩデバイス２４Ｂも閉塞状態になる（Ｓ１２９）。ホストチャネルアダプタ２３Ｂが閉塞状態にあるため、ホストチャネルアダプタ２３Ａとホストチャネルアダプタ２３Ｂとのリンクは切れる。ホストチャネルアダプタ２３Ａは、このリンクダウンを検知し（Ｓ１５５）、ＣＰＵ１１Ａに通知する（Ｓ１５６）。通知を受けたＣＰＵ１１Ａは、要求したデータ転送が異常終了したと判断する。
【００１５】
このように、障害閉塞モードでは、データ転送を要求したＣＰＵ１１Ａは、ホストチャネルアダプタ２３Ａから報告を受けてデータ転送が異常終了したことを知ることができるため、データインテグリティは保証できる。しかし、ホストコンピュータ７Ｂに搭載される他のＰＣＩデバイス２４も閉塞するため、正常に動作している他の機能も閉塞することになり影響が大きい。
【００１６】
一方、障害通知モードで動作するＰＣＩスイッチ２１Ｂの場合、図４に示されるように動作する。ホストチャネルアダプタ２３Ｂがｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを処理中にＰＣＩスイッチ２２Ｂにおいて障害が発生すると（Ｓ１２３）、ＰＣＩスイッチ２２Ｂは、障害通知をＣＰＵ１１Ｂに報告し（Ｓ１３７）、仕掛かり中のトランザクションを破棄する。ＣＰＵ１１Ｂは障害処理を実行し、ホストチャネルアダプタ２３Ｂに障害発生を通知する（Ｓ１３８）。ホストチャネルアダプタ２３Ｂは異常終了を示す終了フラグをホストチャネルアダプタ２３Ａに送る（Ｓ１４８）。ホストチャネルアダプタ２３Ａは、データ転送が異常終了したことを主記憶メモリ１２Ａに終了フラグを書き込んでＣＰＵ１１Ａに報告する（Ｓ１５８）。ＣＰＵ１１Ａは、データ転送が異常終了したことを知ることができる。
【００１７】
しかし、図４に示されるように、ホストチャネルアダプタ２３ＢがＣＰＵ１１ＢからＰＣＩスイッチ２１Ｂの異常を通知される前に、次のトランザクションが正常に終了することがある（Ｓ１２４、Ｓ１４１、Ｓ１４２）。データ転送の最後のデータが主記憶メモリ１２Ｂから正常に読み出すことができれば（Ｓ１４２）、ホストチャネルアダプタ２３Ｂは、データ転送が正常終了したものとしてホストチャネルアダプタ２３Ａに通知する（Ｓ１４４）。ホストチャネルアダプタ２３Ａは、ＣＰＵ１１Ａに対してデータ転送の正常終了を報告し（Ｓ１５１）、ＣＰＵ１１Ａは、破棄されたトランザクションがあり、一部のデータ転送が行なわれていないにもかかわらず、要求したデータ転送によって全てのデータが相手側に正常に送られたと判定する。すなわち、データインテグリティを保証することができない。
【００１８】
したがって、このようなシステムでは、ＰＣＩスイッチが障害閉塞モードで動作すると、接続されているＰＣＩデバイスが全て閉塞状態になるため、デグレード範囲が大きく、システムの継続運用に影響が大きい。障害時の影響を小さくするために、ＰＣＩデバイスが閉塞しない障害通知モードでＰＣＩスイッチを動作させると、ｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションが破棄され、データインテグリティが保証できない場合がある。
【先行技術文献】
【特許文献】
【００１９】
【特許文献１】特開２００５−２１５８０９号公報
【特許文献２】特開２００９−１６９８５４号公報
【特許文献３】特開平０９−３２５９１９号公報
【発明の概要】
【発明が解決しようとする課題】
【００２０】
本発明の目的は、データインテグリティを保証し、障害時の影響範囲を小さくするデータ通信装置、データ通信方法、コンピュータシステムを提供することにある。
【課題を解決するための手段】
【００２１】
本発明の観点では、データ転送装置は、入出力コントローラ（ＩＯＣ）と、ホストチャネルアダプタ（ＨＣＡ）と、スイッチとを具備する。入出力コントローラは、所定のｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを受信すると、リプライトランザクションを返送する。ホストチャネルアダプタは、リプライトランザクションの返送が義務付けられていないｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを発行したのち、入出力コントローラから所定の数のリプライトランザクションを受信するまでリプライトランザクションを待ち合わせる。スイッチは、入出力コントローラと前記ホストチャネルアダプタとの間に設けられ、トランザクションを中継する。スイッチは、トランザクションの中継時に発生した障害をＣＰＵに通知し、ホストチャネルアダプタはＣＰＵから障害発生の通知を受信したとき、ホストチャネルアダプタとポイント・ツー・ポイント接続されている対向するホストチャネルアダプタにデータ転送が異常終了したことを通知する。
【００２２】
本発明の他の観点では、コンピュータシステムは、上記のデータ転送装置を備える複数のコンピュータを含み、対向するコンピュータ間でデータ転送装置を介してデータの授受を行なう。
【００２３】
また、本発明の他の観点では、データ転送方法は、ホストチャネルアダプタから所定のｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを入出力コントローラに対してスイッチを介して発行するステップと、所定のｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを受けた入出力コントローラからホストチャネルアダプタに対して所定のリプライトランザクションを発行するステップと、ホストチャネルアダプタがｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを発行した後、所定のリプライトランザクションを受信するまで待ち合わせるステップと、スイッチがトランザクションを中継するときに検出した障害をＣＰＵに通知するステップと、障害に基づいてＣＰＵから通知される障害通知を受信したときにホストチャネルアダプタからポイント・ツー・ポイント接続されている対向するホストチャネルアダプタに対してデータ転送が異常終了したことを通知するステップとを具備する。
【発明の効果】
【００２４】
本発明によれば、データインテグリティを保証し、障害時の影響範囲を小さくするデータ通信装置、データ通信方法、コンピュータシステムを提供することができる。
【図面の簡単な説明】
【００２５】
【図１】本発明の実施の形態に係るコンピュータシステムの構成を示す図である。
【図２】ＲＤＭＡ−ｗｒｉｔｅの正常動作のときの動作を説明する図である。
【図３】ＲＤＭＡ−ｗｒｉｔｅ中に障害が発生したときの動作を説明する図である。
【図４】障害通知モードで動作するＰＣＩスイッチの障害時の動作を説明する図である。
【図５】本発明の第１の実施の形態に係るコンピュータシステムにおけるＲＤＭＡ−ｗｒｉｔｅの正常動作を説明する図である。
【図６】本発明の第１の実施の形態に係るコンピュータシステムにおけるＲＤＭＡ−ｗｒｉｔｅの障害時の動作を説明する図である。
【図７】本発明の第２の実施の形態に係るコンピュータシステムにおけるＲＤＭＡ−ｗｒｉｔｅの正常動作を説明する図である。
【図８】本発明の第２の実施の形態に係るコンピュータシステムにおけるＲＤＭＡ−ｗｒｉｔｅの障害時の動作を説明する図である。
【発明を実施するための形態】
【００２６】
本発明は、ＰＣＩ  ｅｘｐｒｅｓｓ  ｓｗｉｔｃｈ（以下ＰＣＩスイッチ）のポートにホストチャネルアダプタ（ＨＣＡ）を接続し、二つのホストコンピュータ間をポイント・ツー・ポイント接続したコンピュータシステムに関するものである。ＰＣＩスイッチは、“障害閉塞モード”と、“障害通知モード”との２種類の動作モードを有する。障害閉塞モードでは、ＰＣＩスイッチは障害時に閉塞する。障害通知モードでは、ＰＣＩスイッチは閉塞せずに処理中のトランザクションを破棄してコントローラに対して障害通知を行い、後続のトランザクションを継続処理する。
【００２７】
本発明では、ＰＣＩスイッチ障害時にＰＣＩスイッチが閉塞せず、かつ、データインテグリティ（データ完全性）を保証するホストコンピュータ間データ転送方式を提供する。これによって、ＰＣＩスイッチ障害時のデグレード影響範囲を小さくする。データインテグリティを保証するためには、障害発生時にホストチャネルアダプタ間のデータ転送を異常終了させる必要がある。障害閉塞モードでは、障害発生時にホストチャネルアダプタが閉塞し、データ転送が途中で停止して異常終了するため、データインテグリティは保証できる。しかし、ＰＣＩスイッチに接続されている他のＰＣＩデバイスも閉塞してしまうため、障害の影響範囲が大きくなる。
【００２８】
一方、障害通知モードではＰＣＩスイッチに接続されているＰＣＩデバイスは閉塞しないものの、ホストチャネルアダプタ間のデータ転送中のあるトランザクションが破棄され、データ転送のリクエスタが異常を検出できない。したがって、データ転送は正常終了したと誤認識され、データインテグリティを保証できない。本発明では、ＰＣＩスイッチは障害通知モードで動作し、データインテグリティを保証する転送方式を提供する。
【００２９】
ホストチャネルアダプタからのトランザクションがＰＣＩスイッチを経由し、その先の入出力コントローラ（ＩＯＣ）まで到達すると、入出力コントローラはホストチャネルアダプタに対するリプライトランザクションを新たに発行する。ホストチャネルアダプタはトランザクション数とリプライトランザクション数とを監視する。トランザクション数とリプライトランザクション数が一致した場合、ホストチャネルアダプタは正常終了と判断し、リプライトランザクション数が少ない場合にはトランザクション未達と判断して後続のトランザクションを停止する。これにより、障害発生時に一連のデータ転送を異常終了させることができ、データインテグリティを保証することができる。このように、本発明では、ＰＣＩスイッチは障害時に障害通知モードで動作し、ホストチャネルアダプタと入出力コントローラとの間でトランザクションの破棄を監視することにより、データインテグリティを保証しつつ、障害発生時のデグレード影響範囲を小さくすることができる。
【００３０】
図面を参照して本発明の実施の形態を説明する。
【００３１】
（第１の実施の形態）
図１は、本発明の実施の形態に係るコンピュータシステムの構成を示す図である。本発明の実施の形態に係るコンピュータシステムは、光ケーブル３０によってポイント・ツー・ポイント接続されるホストコンピュータ７Ａ、７Ｂを具備する。ホストコンピュータ７Ａとホストコンピュータ７Ｂとは、光ケーブル３０を介して互いにデータを授受する。ホストコンピュータ７Ａ、７Ｂは、同じように構成されるため、それぞれ対応する部分には同じ符号を付与し、ホストコンピュータ７Ａに含まれるものには“Ａ”、ホストコンピュータ７Ｂに含まれるものには“Ｂ”を符号の末尾に付加して区別する。
【００３２】
ホストコンピュータ７は、データ処理の中枢であるＣＰＵ部を搭載するＣＰＵボード１０と、入出力を担うＩＯ部を搭載するＩＯＰボード２０とを具備する。ＣＰＵボード１０は、ＣＰＵ１１と、主記憶メモリ（ＭＭ）１２と、メモリ制御部１３と、入出力制御部１４とを備える。ＩＯＰボード２０は、入出力コントローラ（ＩＯＣ）２１、ＰＣＩスイッチ（ＳＷ）２２、ホストチャネルアダプタ（ＨＣＡ）２３、その他のＰＣＩデバイス（ＤＥＶ）２４を備える。
【００３３】
ＣＰＵ１１および入出力制御部１４は、メモリ制御部１３を介して主記憶メモリ１２からデータを読み出し、主記憶メモリ１２へデータを書き込む。ＣＰＵ１１は、主記憶メモリ１２に格納されるプログラムを読み出して実行する。入出力制御部１４は、ＩＯＰボード２０とＣＰＵボード１０とを接続し、ＩＯＰボード２０からのトランザクションやＩＯＰボード２０へのトランザクションを制御する。メモリ制御部１３は、ＣＰＵ１１および入出力制御部１４からの主記憶メモリ１２への書き込みおよび読み出し要求を処理する。
【００３４】
ＰＣＩスイッチ２２は、ＩＯＣ２１、ホストチャネルアダプタ２３、その他のＰＣＩデバイス２４を接続し、ＰＣＩ  ｅｘｐｒｅｓｓにおけるパケットを送り先に転送するスイッチング装置である。ＩＯＣ２１は、ＰＣＩスイッチ２２および入出力制御部１４に接続され、ホストチャネルアダプタ２３、その他のＰＣＩデバイス２４からの要求を入出力制御部１４へ送り、入出力制御部１４からの要求をホストチャネルアダプタ２３、その他のＰＣＩデバイス２４へ送る。ホストチャネルアダプタ２３は、ＰＣＩスイッチ２２に接続されるＰＣＩデバイスであり、光ケーブル３０を介して対向するホストコンピュータのホストチャネルアダプタ２３との間で主記憶メモリ１２に対するデータ転送を行う。
【００３５】
ホストコンピュータ７Ａからホストコンピュータ７Ｂに対して、ＲＤＭＡ（Ｒｅｍｏｔｅ  Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）によってデータ転送を行う場合の動作を説明する。ここで、ＲＤＭＡ−ｗｒｉｔｅは、リクエスト元のコンピュータの主記憶メモリに格納されるデータを、リクエスト先のコンピュータの主記憶メモリにＣＰＵの介在なしに書き込む動作である。
【００３６】
図５に、データ転送が正常に行われる場合のシーケンスを示す。
【００３７】
ホストコンピュータ７Ａにおいて、ＣＰＵ１１Ａは、ＲＤＭＡ−ｗｒｉｔｅリクエストトランザクションを発行してホストチャネルアダプタ２３ＡにＲＤＭＡによるデータ転送を指示する（Ｓ１０１）。その後、ＣＰＵ１１Ａは、主記憶メモリ１２Ａに格納される終了フラグがデータ転送の終了を示すまでポーリングする。
【００３８】
ホストチャネルアダプタ２３Ａは、Ｒｅａｄトランザクションを発行して（Ｓ１０２）、主記憶メモリ１２Ａからデータを読み出す（Ｓ１０３）。ホストチャネルアダプタ２３Ａは、光ケーブル３０を介して対向するホストコンピュータ７Ｂのホストチャネルアダプタ２３Ｂに読み出したデータを送出する（Ｓ１１１〜Ｓ１１４）。
【００３９】
データを受信したホストチャネルアダプタ２３Ｂは、受信したデータを所定の転送単位毎にＩＯＣ２１Ｂに送るため、ｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを発行する。このｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションは、ＰＣＩスイッチ２２Ｂを介してＩＯＣ２１Ｂに到達し、転送されるデータは、入出力制御部１４８Ｂを介してメモリ制御部１３Ｂにより主記憶メモリ１２Ｂに書き込まれる（Ｓ１２１〜Ｓ１２４）。このとき、ＩＯＣ２１Ｂは、ｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを検出すると、対応するカウント用のリプライトランザクションをホストチャネルアダプタ２３Ｂに対して発行する（Ｓ１３１〜Ｓ１３４）。
【００４０】
ホストチャネルアダプタ２３Ｂは、データ転送における最後のｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを発行すると（Ｓ１２４）、最後に転送されたデータの書き込み処理が完了したことを確認するためにＲｅａｄトランザクションを発行する（Ｓ１４１）。ホストチャネルアダプタ２３Ｂは、これまで発行したｐｏｓｔｅｄ  ｗｉｒｔｅトランザクションおよびＲｅａｄトランザクションに対する全てのリプライトランザクションが応答されるまで待ち合わせる（Ｓ１４３）。すなわち、ホストチャネルアダプタ２３Ｂは、ｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションの発行数、それらに対するカウント用のリプライトランザクションの受信数をカウントし、発行数と受信数とが一致するまで待ち合わせる。図５に示されるシーケンスでは、Ｒｅａｄトランザクション（Ｓ１４１）が発行された後、リプライトランザクションを受信する（Ｓ１３４）。これでｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションに対するリプライトランザクションは全て受信したが、Ｒｅａｄトランザクションに対する応答はまだ受信されていないため、待ち合わせを続ける。Ｒｅａｄトランザクションに対しては、主記憶メモリ１２Ｂ（メモリ制御部１３Ｂ／入出力制御部１４Ｂ）からリプライトランザクションが返却される（Ｓ１４２）。これを受信してホストチャネルアダプタ２３Ｂは、対向するホストコンピュータ７Ａのホストチャネルアダプタ２３Ａに正常終了を示す終了フラグを転送する（Ｓ１４４）。
【００４１】
終了フラグを受信したホストチャネルアダプタ２３Ａは、ｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを発行し、ＲＤＭＡによるデータ転送が正常終了したことを示す終了フラグを主記憶メモリ１２Ａに書き込む（Ｓ１５１）。ＣＰＵ１１Ａは、終了フラグをポーリングしてＲＤＭＡ−ｗｒｉｔｅリクエストトランザクションの終了を待ち合わせている（Ｓ１５２）。したがって、ホストチャネルアダプタ２３Ａによって終了フラグが主記憶メモリ１２Ａに書き込まれると、ＣＰＵ１１Ａは、ＲＤＭＡ−ｗｒｉｔｅリクエストトランザクションの終了を知ることができる。ＣＰＵ１１Ａは、終了フラグによって示される値に基づいて、データ転送が正常終了したのか異常終了したのかを判定する。図５に示される場合、ＣＰＵ１１Ａは正常終了と判定する。
【００４２】
このようなシーケンスでＲＤＭＡ−ｗｒｉｔｅトランザクションが実行されている途中で、ＰＣＩスイッチ２２Ｂにおいて一時的な障害が発生した場合のシーケンスが、図６に示される。ホストチャネルアダプタ２３Ｂが、３回目のデータ転送をホストチャネルアダプタ２３Ａから受信するまでは（Ｓ１１３）、図５に示されるシーケンスと同じである。
【００４３】
３回目のデータ転送をホストチャネルアダプタ２３Ａから受信したホストチャネルアダプタ２３Ｂは、ｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを発行する（Ｓ１２３）。このｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションは、ＰＣＩスイッチ２２Ｂにおいて発生した障害により破棄される。すなわち、ＰＣＩスイッチ２２Ｂは、障害発生を検知すると、障害通知をＣＰＵ１１Ｂに報告し（Ｓ１３７）、仕掛かり中のトランザクションを破棄する。したがって、ＩＯＣ２１Ｂにはこのｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションが到達せず、ＩＯＣ２１Ｂは、リプライトランザクションを発行しない。ここまでに発行されたｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションに対するリプライトランザクションはＩＯＣ２１Ｂからホストチャネルアダプタ２３Ｂに到達しているので、この時点で、発行されたｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションの数と、それに対応するリプライトランザクションの数とが不一致となる。
【００４４】
その後、ホストチャネルアダプタ２３Ａから最後のデータを受信したホストチャネルアダプタ２３Ｂは、ｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを発行し（Ｓ１２４）、Ｒｅａｄトランザクションを発行する（Ｓ１４１）。ホストチャネルアダプタ２３Ｂは、これまで発行したｐｏｓｔｅｄ  ｗｉｒｔｅトランザクションおよびＲｅａｄトランザクションに対する全てのリプライトランザクションが応答されるまで待ち合わせる（Ｓ１４３）。
【００４５】
最後に発行したｐｏｓｔｅｄ  ｗｒｉｔｅトランザクション（Ｓ１２４）と、Ｒｅａｄトランザクション（Ｓ１４１）とに対するリプライトランザクション（Ｓ１３４、Ｓ１４２）はホストチャネルアダプタ２３Ｂに届くが、破棄されたｐｏｓｔｅｄ  ｗｒｉｔｅトランザクション（Ｓ１２３）に対するリプライトランザクションは発行されず、ホストチャネルアダプタ２３Ｂは待ち合わせを続ける。
【００４６】
一方、障害通知を受けたＣＰＵ１１Ｂは、障害処理を行い、ＰＣＩスイッチ２２Ｂにおいて障害があったことをホストチャネルアダプタ２３Ｂに通知する（Ｓ１３８）。すなわち、ｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションの数とリプライトランザクションの数が不一致の場合、ホストチャネルアダプタ２３Ｂは一致するまで待ち合わせるが、その間にＣＰＵ１１ＢがＰＣＩスイッチの障害を認識して障害処理を行ない、ホストチャネルアダプタ２３Ｂに障害を通知することになる。
【００４７】
障害通知を受けたホストチャネルアダプタ２３Ｂは、データ転送が異常終了したことを示す終了フラグを、対向するホストコンピュータ７Ａのデータチャネルアダプタ２３Ａに送る（Ｓ１４８）。
【００４８】
異常終了を示す終了フラグを受信したホストチャネルアダプタ２３Ａは、ｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを発行して、主記憶メモリ１２Ａに終了フラグを書き込む（Ｓ１５８）。ＣＰＵ１１Ａは、ポーリングによって終了フラグを取り込み（Ｓ１５９）、ＲＤＭＡ−ｗｒｉｔｅリクエストトランザクションが異常終了したことを認識する。したがって、ＣＰＵ１１Ａは、転送したデータの一部がホストコンピュータ７Ｂに未到達であることを認識し、データインテグリティは保証される。
【００４９】
このように、本発明では、障害発生時に閉塞を行わずに障害通知のみ行うＰＣＩスイッチをデータ転送経路に有するコンピュータシステムにおいて、リクエストトランザクションの待ち合わせによりデータインテグリティを保証することができる。すなわち、ＰＣＩスイッチを介してｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを発行する発行元であるホストチャネルアダプタ（リクエスタ）が、発行先であるＩＯＣからｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションに対するリクエストトランザクションを待ち合わせする。これにより、障害通知に応答して起動される障害処理によって、ＰＣＩスイッチ障害においてトランザクション破棄が行われたことを認識することができ、データインテグリティを保証することができる。
【００５０】
また、障害発生時に閉塞を行わずに障害通知のみ行うＰＣＩスイッチによってデータインテグリティが保証されるため、データインテグリティを保証するためにＰＣＩスイッチを閉塞する必要がなく、障害時の影響範囲を限定的にすることができる。
【００５１】
（第２の実施の形態）
図７、図８に、本発明の第２の実施の形態に係るコンピュータシステムの動作が示される。図７は、ＲＤＭＡ−ｗｒｉｔｅリクエストトランザクションにおける正常終了する場合のシーケンスを示し、図８は異常終了する場合のシーケンスを示す。
【００５２】
図７を参照すると、ＣＰＵ１１ＡからＲＤＭＡ−ｗｒｉｔｅリクエストトランザクションが発行され（Ｓ１０１）、ホストチャネルアダプタ２３ＡがＲｅａｄトランザクション（Ｓ１０２）によって主記憶メモリ１２Ａからデータを読み出し（Ｓ１０３）、ホストチャネルアダプタ２３Ｂへデータ転送する（Ｓ１１１〜Ｓ１１４）。ここまでは、第１の実施の形態における動作と同じである。
【００５３】
最初のデータを受信したホストチャネルアダプタ２３Ｂは、ＩＯＣ２１Ｂに対してｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを発行し、これから始まるデータ転送のｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションの発行数をＩＯＣ２１Ｂ内のレジスタに書き込む（Ｓ１２０）。ここでは、ｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを４回発行してデータ転送が行われるため（Ｓ１２１〜Ｓ１２４）、ＩＯＣ２１Ｂ内のレジスタには“４”が書き込まれる。ＩＯＣ２１Ｂは、レジスタに値が書き込まれると受信回数をクリアする。
【００５４】
一方、ホストチャネルアダプタ２３Ｂは、ｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを発行し（Ｓ１２１〜Ｓ１２４）、ＩＯＣ２１Ｂを介して主記憶メモリ１２Ｂに転送データを書き込む。所定のｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを発行し終わると、ホストチャネルアダプタ２３Ｂは、最後に書き込んだデータを読み出すためにＲｅａｄトランザクションを発行する（Ｓ１４１）。ホストチャネルアダプタ２３Ｂは、ＩＯＣ２１Ｂからのリプライトランザクション（Ｓ１３５）および主記憶メモリ１２Ｂに対するＲｅａｄトランザクションに応答するリプライトランザクション（Ｓ１４２）を受信するまで待ち合わせる（Ｓ１４３）。
【００５５】
ＩＯＣ２１Ｂは、ｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを受信するたびに受信回数をカウントアップする（Ｓ１３０）。受信回数がレジスタに書き込まれた値と一致すると、ＩＯＣ２１Ｂは、ホストチャネルアダプタ２３Ｂに対してリプライトランザクションを発行する。したがって、ＩＯＣ２１Ｂは、ホストチャネルアダプタ２３Ｂから発行されるｐｏｓｔｅｄ  ｗｒｉｔｅトランザクション（Ｓ１２１〜Ｓ１２３）を受信する毎に受信回数をカウントアップする。４回目のｐｏｓｔｅｄ  ｗｒｉｔｅトランザクション（Ｓ１２４）を受信すると、受信回数とレジスタ値とが一致し、リプライトランザクションが発行される（Ｓ１３５）。レジスタに設定された回数の受信があったことを確認するとよいので、受信毎のダウンカウントでもよい。
【００５６】
ｐｏｓｔｅｄ  ｗｒｉｔｅトランザクション（Ｓ１２１〜Ｓ１２４）を受信したＩＯＣ２１Ｂは、リプライトランザクションを発行し（Ｓ１３５）、Ｒｅａｄトランザクションに対しては、主記憶メモリ１２Ｂからリプライトランザクションが返却される（Ｓ１４２）。これらのリプライトランザクションが到達すると、ホストチャネルアダプタ２３Ｂは、ホストコンピュータ７Ａのホストチャネルアダプタ２３Ａに対して正常終了を示す終了フラグを転送する（Ｓ１４４）。
【００５７】
終了フラグを受信したホストチャネルアダプタ２３Ａは、ｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを発行し、主記憶メモリ１２Ａに正常終了を示す終了フラグを書き込む（Ｓ１５１）。ＣＰＵ１１Ａは、主記憶メモリ１２Ａに書き込まれる終了フラグをポーリングしてＲＤＭＡ−ｗｒｉｔｅの完了を待ち合わせる（Ｓ１５２）。終了フラグを検知したＣＰＵ１１Ａは、終了フラグの値に基づいて正常終了・異常終了の判定を行う。図７に示されるシーケンスでは、ＣＰＵ１１Ａは、データ転送が正常終了したと認識する。ホストチャネルアダプタ２３ＢがＩＯＣ２１Ｂ内のレジスタにデータ転送のｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションの発行数を書き込むｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションは、複数回発行されてもよい。その場合、ホストチャネルアダプタ２３Ｂは、ｒｅａｄトランザクションを発行した後、データ転送のｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションの発行数を書き込むｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションの発行回数と、そのリプライトランザクションの受信数が一致するまで待ち合わせる。
【００５８】
障害が発生した場合、図８に示されるシーケンスとなる。
【００５９】
ホストコンピュータ７Ａは、ホストチャネルアダプタ２３Ａがホストコンピュータ７Ｂにデータ転送を完了するまで（〜Ｓ１１４）、図７に示されるシーケンスと同様の動作となる。
【００６０】
ホストコンピュータ７Ｂでは、ホストチャネルアダプタ２３ＢがＩＯＣ２１Ｂ内のレジスタにデータ転送にｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションの発行数を設定し、順次ｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを発行して主記憶メモリ１２Ｂにデータを書き込む。ホストチャネルアダプタ２３Ｂが、３回目のｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを発行したとき（Ｓ１２３）、ＰＣＩスイッチ２２Ｂにおいて障害発生が検知される。ＰＣＩスイッチ２２Ｂは、ＣＰＵ１１Ｂに対して障害発生を報告し（Ｓ１３７）、仕掛り中のトランザクションを破棄する。
【００６１】
ＩＯＣ２１Ｂは、レジスタに設定される回数のｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを待ち合わせる（Ｓ１３０）。しかし、障害発生を検知したＰＣＩスイッチ２２Ｂが仕掛り中のトランザクションを破棄しているため、ＩＯＣ２１Ｂは、ホストチャネルアダプタ２３Ｂから４回目のｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを受信しても（Ｓ１２４）、受信数が不足であると判定する。したがって、ＩＯＣ２１Ｂは、リプライトランザクションを発行せずにｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを待ち続ける（Ｓ１３０）。
【００６２】
ホストチャネルアダプタ２３Ｂは、４回目のｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを発行（Ｓ１２４）の後、最後に転送されたデータを確認するためにＲｅａｄトランザクションを発行し（Ｓ１４１）、主記憶メモリ１２Ｂに格納されるデータを読み出す（Ｓ１４２）。ホストチャネルアダプタ２３Ｂは、ＩＯＣ２１Ｂからリプライトランザクションが受信されないため、待ち続ける（Ｓ１４３）。
【００６３】
一方、障害通知を受けたＣＰＵ１１Ｂは、障害処理を行い、ホストチャネルアダプタ２３Ｂに障害発生を通知する（Ｓ１３８）。障害通知を受信したホストチャネルアダプタ２３Ｂは、ｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションが破棄されたことを認識し、対向するホストコンピュータ７Ａに対して異常終了を示す終了フラグを送る（Ｓ１４８）。
【００６４】
異常終了を示す終了フラグを受信したホストチャネルアダプタ２３Ａは、ｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを発行して、主記憶メモリ１２Ａに終了フラグを書き込む（Ｓ１５８）。ＣＰＵ１１Ａは、ポーリングによって終了フラグを取り込み（Ｓ１５９）、ＲＤＭＡ−ｗｒｉｔｅリクエストトランザクションが異常終了したことを認識する。したがって、ＣＰＵ１１Ａは、転送したデータの一部がホストコンピュータ７Ｂに未到達であることを認識し、データインテグリティは保証される。
【００６５】
このように、本発明のコンピュータシステムでは、リプライトランザクションの発行を伴わずにメモリにデータを書き込むことを指示するｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションに対して、ＰＣＩスイッチの接続先装置（主記憶への書き込み経路の途中の装置）がリプライトランザクションを返却する。リプライトランザクションの発行を伴うｎｏｎ−ｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションを受信した主記憶メモリは、主記憶メモリへの書き込みを完了した後、リプライトランザクションを発行する。本発明では、ｗｒｉｔｅトランザクションはｐｏｓｔｅｄ  ｗｒｉｔｅとｎｏｎ−ｐｏｓｔｅｄ  ｗｒｉｔｅの中間的な性質を有するトランザクションとなる。
【００６６】
すなわち、ＰＣＩスイッチがトランザクションを破棄する障害を検出することを目的として、主記憶メモリへの書き込み経路の途中に設けられるＩＯＣがリプライトランザクションを返却する。このリプライトランザクションは、ｎｏｎ−ｐｏｓｔｅｄ  ｗｒｉｔｅトランザクションに対するリプライトランザクションよりも早く返信される。また、ＣＰＵボード側ではリプライトランザクションを返却しないためＣＰＵボード側のトランザクション処理の負荷が大きくならない。さらに、本発明は、ＣＰＵボード側の動作に影響せずに実施可能である。
【００６７】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、矛盾のない限り組み合せて実施可能である。
【符号の説明】
【００６８】
７、７Ａ、７Ｂ  ホストコンピュータ
１０、１０Ａ、１０Ｂ  ＣＰＵボード
１１、１１Ａ、１１Ｂ  ＣＰＵ
１２、１２Ａ、１２Ｂ  主記憶メモリ
１３、１３Ａ、１３Ｂ  メモリ制御部
１４、１４Ａ、１４Ｂ  Ｉ／Ｏ制御部
２０、２０Ａ、２０Ｂ  ＩＯＰボード
２１、２１Ａ、２１Ｂ  ＩＯＣ：入出力コントローラ
２２、２２Ａ、２２Ｂ  ＰＣＩスイッチ
２３、２３Ａ、２３Ｂ  ホストチャネルアダプタ：ＨＣＡ
２４、２４Ａ、２４Ｂ  その他のインタフェースデバイス
３０  光ケーブル
【図１】
0005444194.tif 000002
【図２】
0005444194.tif 000003
【図３】
0005444194.tif 000004
【図４】
0005444194.tif 000005
【図５】
0005444194.tif 000006
【図６】
0005444194.tif 000007
【図７】
0005444194.tif 000008
【図８】
0005444194.tif 000009