(57)【要約】【課題】サーバとストレージ装置との間でファイバーチャネル回線を通じて送受される情報が喪失された際のＩＯ処理の遅延を軽減し得るストレージシステム等の提供。【解決手段】通信装置は、送信元が送信した情報群に付与された識別情報を、前記送信元からファイバーチャネル回線を介して受信した後に、前記識別情報により前記情報群の少なくとも一部を未受信であることを判定した場合に、所定の送信情報を、前記ファイバーチャネル回線を介して、前記送信元に発信する。【選択図】      図４
2019153864.tif 000002
【特許請求の範囲】
【請求項１】
送信元が送信した情報群に付与された識別情報を、前記送信元からファイバーチャネル回線を介して受信した後に、前記識別情報により前記情報群の少なくとも一部を未受信であることを判定した場合に、所定の送信情報を、前記ファイバーチャネル回線を介して、前記送信元に発信する、通信装置。
【請求項２】
前記情報群のすべてについて既受信を判定した場合に、第二送信情報の前記発信を行う、請求項１に記載された通信装置。
【請求項３】
前記情報群が、入出力処理対象データからなるデータ群、又は、ファイバーチャネルの規格に基づく、Ｗｒｉｔｅコマンド、Ｒｅａｄコマンド、ＸｆｅｒＲｅａｄｙ及びＲｅｓｐｏｎｓｅのうちの少なくともいずれか一つ、を含む、請求項１又は請求項２に記載された通信装置。
【請求項４】
請求項１乃至請求項３のうちのいずれか一に記載された通信装置と、前記送信元とを備える、通信システム。
【請求項５】
前記通信装置と前記送信元とが、互いに、所定のデータに係る前記ファイバーチャネル回線を通じた入出力処理を行う、請求項４に記載された通信システム。
【請求項６】
前記発信が行われない前記入出力処理に係るモードである第二のモードがある、請求項５に記載された通信システム。
【請求項７】
前記送信元は、前記第二のモードとするかについての判定を、前記データにより行う、請求項６に記載された通信システム。
【請求項８】
前記送信元は、前記発信が行われる前記モードである第一のモードに係る前記入出力処理について、当該入出力処理を表す第二識別情報と、当該第一のモードである旨を表す指定情報とを前記通信装置に送る、請求項６又は請求項７に記載された通信システム。
【請求項９】
前記指定情報が、ファイバーチャネルの規格に基づくＷｒｉｔｅコマンド及びＲｅａｄコマンドのうちの少なくともいずれかに含まれる、請求項８に記載された通信システム。
【請求項１０】
前記指定情報が、前記データを格納する前記通信装置の部分を表す領域情報により表される、請求項８又は請求項９に記載された通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報を入出力する通信システムに関する。
【背景技術】
【０００２】
サーバとストレージ装置との間でデータの入出力処理（ＩＯ処理）を行うストレージシステムにおいて、そのＩＯ処理を行うための通信にファイバーチャネル（ＦＣ）の規格（非特許文献１参照）に基づく処理が行われる場合がある。ここで、ＩＯはＩｎｐｕｔ−Ｏｕｔｐｕｔの略である。
【０００３】
図１は、ファイバーチャネルの規格に基づくＩＯ処理を行う一般的なストレージシステムであるストレージシステム４０１の構成を表す概念図である。
【０００４】
ストレージシステム４０１は、サーバ１１０とストレージ装置２１０とを備える。
【０００５】
サーバ１１０は、ＩＯ処理部１１２と記録部１１３とを備える。
【０００６】
ストレージ装置２１０は、ＩＯ処理部２１２と、メモリ２１３と、制御部２１６と、ストレージ部２１４と、を備える。
【０００７】
サーバ１１０は、例えば、外部から入力されたデータフレーム（以下、「データ」という。）を記録部１１３に保持する。そして、サーバ１１０のＩＯ処理部１１２は、記録部１１３が保持するデータを、ストレージ装置２１０のＩＯ処理部２１２に送付し、ストレージ装置２１０に格納させる。
【０００８】
サーバ１１０のＩＯ処理部１１２に、ストレージ装置２１０のＩＯ処理部２１２から所定のデータを読み込み、記録部１１３に格納する。格納されたデータは、例えば、ストレージシステム４０１の外部へ出力される。
【０００９】
サーバ１１０のＩＯ処理部１１２は、ストレージ装置２１０のＩＯ処理部２１２との間でＦＣ回線３０１を通じて行う上記ＩＯ処理に係る通信を、ファイバーチャネルの規格に基づいて行う。ここで、ＦＣ回線は、ファイバーチャネル回線の略である。ＦＣ回線は、ファイバーチャネルの規格に準拠する情報が通過する場合のある回線である。
【００１０】
ストレージ装置２１０のＩＯ処理部２１２も、サーバ１１０のＩＯ処理部１１２との間でＦＣ回線３０１を通じて行う上記ＩＯ処理に係る通信を、ファイバーチャネルの規格に基づいて行う。
【００１１】
ＩＯ処理部１１２は、上記動作を、例えば、サーバ１１０が備える図示しない中央演算装置がプログラムにより実行する処理により行う。  ストレージ装置２１０のＩＯ処理部２１２は、サーバ１１０のＩＯ処理部１１２から送付されたデータを、メモリ２１３及び制御部２１６を通じて、ストレージ部２１４に、格納させる。ＩＯ処理部２１２は、また、サーバ１１０のＩＯ処理部１１２に送付するデータを、メモリ２１３及び制御部２１６を通じて、ストレージ部２１４から読み出し、ＩＯ処理部１１２に送付する。
【００１２】
ＩＯ処理部１１２は、上記動作を、例えば、ストレージ装置２１０が備える図示しない中央演算装置がプログラムにより実行する処理により行う。
【００１３】
なお、図１に表すストレージシステム４０１の構成は、市販のストレージシステムで採用されているものである（例えば、非特許文献２参照）
図２は、図１に表すサーバ１１０がストレージ装置２１０にデータを格納する際に、サーバ１１０のＩＯ処理部１１２とストレージ装置２１０のＩＯ処理部２１２との間で行われる動作を表す概念図である。なお、図２に表す動作は、ファイバーチャネルの規格に定められたものである。
【００１４】
サーバ１１０のＩＯ処理部１１２は、まず、Ａ１０１の動作として、Ｗｒｉｔｅコマンドフレーム（以下、「Ｗｒｉｔｅコマンド」という。）を、ストレージ装置２１０のＩＯ処理部２１２へ送付する。
【００１５】
当該送付を受けて、ＩＯ処理部２１２は、Ａ１０２の動作として、ＩＯ処理部１１２へ、ＸｆｅｒＲｅａｄｙフレーム（以下、「ＸｆｅｒＲｅａｄｙ」という。）を送付する。
【００１６】
当該送付を受けて、ＩＯ処理部１１２は、Ａ１０３−１乃至Ａ１０３−Ｎの動作として、第１乃至第ＮデータのＮ個のデータを、ストレージ装置２１０のＩＯ処理部２１２へ送付する。ここで、Ｎは１以上の数である。また、前記データは、ストレージ装置２１０に格納させる情報を含むフレームである。
【００１７】
第Ｎデータの送付が完了すると、ＩＯ処理部２１２は、Ａ１０４の動作として、ＩＯ処理部１１２へ、Ｒｅｓｐｏｎｓｅフレーム（以下、「Ｒｅｓｐｏｎｓｅ」という。）を送付する。
【００１８】
図３は、図１に表すサーバ１１０がストレージ装置２１０からデータを読み出す際に、サーバ１１０のＩＯ処理部１１２とストレージ装置２１０のＩＯ処理部２１２との間で行われる動作を表す概念図である。なお、図２に表す動作は、ファイバーチャネルの規格に定められたものである。
【００１９】
サーバ１１０のＩＯ処理部１１２は、まず、Ａ２０１の動作として、Ｒｅａｄコマンドを、ストレージ装置２１０のＩＯ処理部２１２に送付する。
【００２０】
ＩＯ処理部２１２は、送付されたＲｅａｄコマンドを受けて、Ａ２０２−１乃至Ａ２０２−Ｐの動作として、第１データ乃至第Ｐデータを、ＩＯ処理部１１２へ送付する。
【００２１】
そして、ＩＯ処理部２１２は、Ａ２０３の動作として、Ｒｅｓｐｏｎｓｅを、ＩＯ処理部１１２へ送付する。
【００２２】
ここで、特許文献１は、ディスクリプタに対応するデータをメモリから読み出すＤＭＡ装置を開示する。
【先行技術文献】
【特許文献】
【００２３】
【特許文献１】特開２００６−１９５８２３号公報
【非特許文献】
【００２４】
【非特許文献１】ウィキペディア  フリー百科事典、”ファイバーチャネル”、［平成３０年１月３１日検索］、インターネット（ｈｔｔｐｓ：／／ｊａ．ｗｉｋｉｐｅｄｉａ．ｏｒｇ／ｗｉｋｉ／％Ｅ３％８３％９５％Ｅ３％８２％Ａ１％Ｅ３％８２％Ａ４％Ｅ３％８３％９０％Ｅ３％８３％ＢＣ％Ｅ３％８３％８１％Ｅ３％８３％Ａ３％Ｅ３％８３％８Ｄ％Ｅ３％８３％ＡＢ）
【非特許文献２】［ｉＳｔｏｒａｇｅソフトウェアＭシリーズ］ソフトウェアマニュアル、日本電気株式会社、［平成３０年１月１２日検索］、インターネット（ｈｔｔｐｓ：／／ｓｕｐｐｏｒｔ．ｐｆ．ｎｅｃ．ｃｏ．ｊｐ／Ｖｉｅｗ．ａｓｐｘ？ＮｏＣｌｅａｒ＝ｏｎ＆ｉｄ＝３１７０１００１４２＃ｉｓｍ）
【発明の概要】
【発明が解決しようとする課題】
【００２５】
図１に表すサーバ１１０のＩＯ処理部１１２とストレージ装置２１０のＩＯ処理部２１２との間でＦＣ回線３０１を通じて送受される情報は、間欠的な経路障害により、ＦＣ回線３０１において喪失することがある。その際に、ファイバーチャネルの規定によると、その情報の送付に係るＩＯ処理は、そのＩＯ処理が開始されてから、予め設定された待ち時間である時間Ｔが経過した後に中止（タイムアウト）される。時間Ｔは、ＩＯ処理部が一般的なＯｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍによる上記動作を場合は、数十秒程度の長い時間である。時間Ｔが経過するまでの間は、サーバ１１０からストレージ装置２１０へのデータの格納や、サーバ１１０によるストレージ装置２１０からのデータの読み込みが行われない。そのため、その待ち時間分、サーバ１１０からストレージ装置２１０へのデータの格納や、サーバ１１０によるストレージ装置２１０からのデータの読み込みが遅延する。
【００２６】
そのため、当該遅延により、データの格納や読み込みを前提とする他の処理がタイムアウトするなどの悪影響が生じる場合がある。
【００２７】
本発明は、サーバとストレージ装置との間でファイバーチャネル回線を通じて送受される情報が喪失された際のＩＯ処理の遅延を緩和し得るストレージシステム等の提供を目的とする。
【課題を解決するための手段】
【００２８】
本発明の通信装置は、送信元が送信した情報群に付与された識別情報を、前記送信元からファイバーチャネル回線を介して受信した後に、前記識別情報により前記情報群の少なくとも一部を未受信であることを判定した場合に、所定の送信情報を、前記ファイバーチャネル回線を介して、前記送信元に発信する。
【発明の効果】
【００２９】
本発明のストレージシステム等は、サーバとストレージ装置との間でファイバーチャネル回線を通じて送受される情報が喪失された際のＩＯ処理の遅延を緩和し得る。
【図面の簡単な説明】
【００３０】
【図１】ファイバーチャネルの規格に基づく処理を行う一般的なストレージシステムの構成例を表す概念図である。
【図２】ストレージ装置へのデータ格納の際にサーバとストレージとの間で行われるＩＯ動作を表す概念図である。
【図３】ストレージ装置からデータを読み出す際にサーバとストレージ装置との間で行われるＩＯ動作を表す概念図である。
【図４】第一実施形態の各処理部間で行われるＩＯ動作例（その１）を表す概念図である。
【図５】第一実施形態の各処理部間で行われるＩＯ動作例（その２）を表す概念図である。
【図６】第一実施形態の各処理部間で行われるＩＯ動作例（その３）を表す概念図である。
【図７】第一実施形態の各処理部間で行われるＩＯ動作例（その４）を表す概念図である。
【図８】第一実施形態のサーバのＩＯ処理部が行うＩＯ処理フロー例を表す概念図（その１）である。
【図９】第一実施形態のサーバのＩＯ処理部が行うＩＯ処理フロー例を表す概念図（その２）である。
【図１０】第一実施形態のサーバのＩＯ処理部が行うＩＯ処理フロー例を表す概念図（その３）である。
【図１１】第一実施形態のストレージ装置のＩＯ処理部が行うＩＯ処理フロー例を表す概念図（その１）である。
【図１２】第一実施形態のストレージ装置のＩＯ処理部が行うＩＯ処理フロー例を表す概念図（その２）である。
【図１３】第一実施形態のストレージ装置のＩＯ処理部が行うＩＯ処理フロー例を表す概念図（その３）である。
【図１４】第二実施形態のサーバのＩＯ処理部が行うＩＯ処理フロー例を表す概念図（その１）である。
【図１５】第二実施形態のサーバのＩＯ処理部が行うＩＯ処理フロー例を表す概念図（その２）である。
【図１６】第二実施形態のサーバのＩＯ処理部が行うＩＯ処理フロー例を表す概念図（その３）である。
【図１７】第二実施形態のストレージ装置のＩＯ処理部が行うＩＯ処理フロー例を表す概念図（その１）である。
【図１８】第二実施形態のストレージ装置のＩＯ処理部が行うＩＯ処理フロー例を表す概念図（その２）である。
【図１９】第二実施形態のストレージ装置のＩＯ処理部が行うＩＯ処理フロー例を表す概念図（その３）である。
【図２０】実施形態のストレージ装置の最小限の構成を表すブロック図である。
【発明を実施するための形態】
【００３１】
＜第一実施形態＞
第一実施形態は、ＦＣ回線を通じて送受される情報について受信確認を行うストレージシステムに関する実施形態である。
【００３２】
第一実施形態のストレージシステムにおいて、ＩＯ処理に係るＦＣフレーム群の送信側は、そのＦＣフレーム群の送信後に、受信側に向けて、受信確認コマンドを送付する。前記受信側は、前記受信確認コマンドの受信により、前記ＦＣフレーム群に含まれる各ＦＣフレームを受信したかについての判定を行う。そして、前記受信側が、前記ＦＣフレーム群に含まれるいずれかのＦＣフレームを受信していないことを判定したとする。その場合、前記受信側は、未受信である旨を表す受信確認応答を、前記送信側に送付する。前記未受信である旨を表す受信確認応答を受信した前記送信側は、発明が解決しようとする課題の項で説明した、タイムアウトのための待ち時間を待たずして、そのＩＯ処理を中止する。そして、前記送信側は、そのＩＯ処理と同じデータに係るＩＯ処理をやり直す。このようにして、前記ストレージシステムは、発明が解決しようとする課題の項で説明したサーバとストレージ装置との間でＦＣ回線を通じて送受される情報が喪失された際のＩＯ処理の遅延を緩和する。
［構成と動作］
本実施形態のストレージシステムの構成例は、図１に表すストレージシステム４０１の構成と同じである。
【００３３】
本実施形態のストレージシステム４０１が行う動作の説明は、以下において、背景技術の項において説明したストレージシステム４０１が行う動作と異なる。
【００３４】
ストレージシステム４０１は、ＦＣ回線３０１で生じる間欠的な経路障害により、ＦＣフレーム（ファイバーチャネルフレーム）の喪失が生じた場合は、そのＦＣフレームに係るＩＯ処理を中止する。ＦＣフレームは、ファイバーチャネルの規格に準拠するフレームである。ＦＣフレームには、図２及び図３に表す各フレームが含まれる。
【００３５】
ストレージシステム４０１は、送付されたＦＣフレームのＦＣ回線３０１における喪失が生じた場合、そのＦＣフレームに係るＩＯ処理を中止する。そして、ストレージシステム４０１は、そのＦＣフレームに係るＩＯ処理を、再度、最初から実行する。
【００３６】
ストレージシステム４０１は、上述の動作を、例えば、以下のように行う。
【００３７】
ストレージシステム４０１においては、ＦＣフレームの送信元のＩＯ処理部（ＩＯ処理部１１２及び２１２のうちの一方）は、当該ＦＣフレームの送信先のＩＯ処理部への送付の後、当該送信先に対し、受信確認コマンドフレームを送付する。以下、受信確認コマンドフレームを、受信確認コマンドということにする。
【００３８】
当該受信確認コマンドにおいては、サーバ１１０が採番するＩＯ処理に係る識別子（ＯＸ＿ＩＤ）と、ストレージ装置２１０が採番するそのＩＯ処理の識別子（ＲＸ＿ＩＤ）と、送信したＦＣフレームの各々を特定する識別情報を含む。ＯＸ＿ＩＤとＲＸ＿ＩＤとは等しくても構わない。以下、ＯＸ＿ＩＤとＲＸ＿ＩＤの組合せを、ＩＯＩＤということにする。
【００３９】
前記識別情報は、ＦＣフレームが、Ｗｒｉｔｅコマンド、ＸｆｅｒＲｅａｄｙ、データ（データ群）、Ｒｅｓｐｏｎｓｅ、及び、Ｒｅａｄコマンドのいずれであるかの識別を可能にする情報である。
【００４０】
前記ＦＣフレームがデータ群である場合は、前記受信確認コマンドに含まれる前記識別情報には、前記データ群の各データを表す前記識別情報がすべて含まれる。例えば、図２に表すデータについては、前記識別情報には、第１乃至第Ｎの各々を特定し得る情報が含まれる。
【００４１】
前記送付先は、受信した前記ＩＯＩＤに係るＩＯ処理において、前記識別情報に係るＦＣフレームをすべて受信したかを判定する。当該判定は、当該判定対象のＦＣフレームがデータ群であれば、そのデータ群のすべてのデータを受信したかについての判定である。
【００４２】
前記送付先は、そのＩＯＩＤに係る実行中のＩＯ処理において前記識別情報のＦＣフレームをすべて受信したことを判定した場合は、その旨を表す情報を含む受信確認応答フレーム（受信確認応答）を前記送付元に送付する。
【００４３】
一方、前記送付先は、前記識別情報のＦＣフレームのいずれかを受信していないことを判定した場合は、そのＩＯＩＤに係るＩＯ処理を中止する。そして、前記送付先は、前記送付元へ、前記識別情報のＦＣフレームのいずれかを受信していないことを表す情報を含む受信確認応答を送付する。
【００４４】
例えば、サーバ１１０のＩＯ処理部１１２がデータの送信側であり、ストレージ装置２１０のＩＯ処理部２１２がそのデータの受信側である場合を想定する。その場合、送信側であるＩＯ処理部１１２は、受信側のＩＯ処理部２１２に対し、所定のＩＯＩＤのＩＯ処理においてストレージ装置２１０に送付すべきすべてのデータを送信した後に、ＩＯ処理部２１２に対し、受信確認コマンドを送付する。そして、ＩＯ処理部１１２は、その受信確認コマンドへの受信確認応答が、送付されたいずれかのデータを受信していないことを表す場合に、速やかに、そのＩＯＩＤに係るＩＯ処理を中止する。そして、ＩＯ処理部１１２は、そのＩＯＩＤに係るＩＯ処理を、再度、最初から実行し直す。
【００４５】
この場合、サーバ１１０のＩＯ処理部１１２は、前記受信確認応答により、ストレージ装置２１０のＩＯ処理部２１２がデータを受信したかを知る。そして、ＩＯ処理部１１２は、前記受信確認応答により、図１に表すＦＣ回線３０１の経路障害によるＦＣフレーム喪失を速やかに検出し得る。そして、ＩＯ処理部１１２は、前に送付したデータと同じデータに係るＩＯ処理を、再度、最初から実行する。
【００４６】
一方、前記受信確認応答をＩＯ処理部１１２に送付したＩＯ処理部２１２も、そのＩＯＩＤに係るＩＯ処理を中止する。
【００４７】
そのため、ＩＯ処理部１１２は、ファイバーチャネルに規定された通常のＩＯ処理の中止に係る再実行手順であるリトライシーケンスによらず、速やかに、中止したＩＯ処理を再実行することができる。従い、ストレージシステム４０１は、前記リトライシーケンスに規定された、ＩＯ処理タイムアウト検出後のサーバ１１０からストレージ装置２１０へのＩＯ処理中止の場合に要するタイムアウトのために待つ時間を省略することができる。
【００４８】
ＦＣ回線３０１で喪失する可能性があるＦＣフレームにはファイバーチャネルにより規定された種々のものが想定され得る。以下、喪失したフレームの種類により、サーバ１１０のＩＯ処理部１１２とストレージ装置２１０のＩＯ処理部２１２との間で行われるＩＯ処理に係る動作例について、図４乃至図７を参照して説明する。
【００４９】
図４は、喪失したフレームが、サーバ１１０がストレージ装置２１０に格納させようとしたＮ番目のデータである場合に、ＩＯ処理部１１２とＩＯ処理部２１２との間で行われるＩＯ動作例を表す概念図である。
【００５０】
サーバ１１０のＩＯ処理部１１２は、まず、Ａ１１１の動作として、ストレージ装置２１０のＩＯ処理部２１２へ、Ｗｒｉｔｅコマンドを送付する。
【００５１】
そして、ストレージ装置２１０のＩＯ処理部２１２は、Ａ１１２の処理として、ＩＯ処理部２１２へ、第一受信確認コマンドを送付する。当該第一受信確認コマンドには、前記Ｗｒｉｔｅコマンドを表す識別情報が含まれている。
【００５２】
ＩＯ処理部２１２は、受信した第一受信確認コマンドを受けて、Ａ１１３の動作として、当該第一受信確認コマンドに含まれる識別情報のＦＣフレームをすべて受信したかについての判定を行う。この場合、ＩＯ処理部２１２は、Ａ１１１の動作で、前記第一受信確認コマンドに含まれる識別情報が表すＷｒｉｔｅコマンドを受信している。そのため、ＩＯ処理部２１２は、Ａ１１３の動作により、前記第一受信確認コマンドに含まれる識別情報のＦＣフレームをすべて受信したことを判定する。そのため、ＩＯ処理部２１２は、前記第一受信確認コマンドに含まれるＩＯＩＤに係る実行中のＩＯ処理を中止せず、継続する。
【００５３】
そして、ＩＯ処理部２１２は、Ａ１１４の動作として、ＩＯ処理部１１２へ、前記第一受信確認コマンドに含まれる識別情報のＦＣフレームをすべて受信した旨を表す第一受信確認応答を送付する。
【００５４】
そして、ＩＯ処理部２１２は、Ａ１１５の動作として、ＸｆｅｒＲｅａｄｙのＩＯ処理部１１２への送付を行う。
【００５５】
そして、ＩＯ処理部２１２は、Ａ１１６の動作として、ＩＯ処理部１１２へ、第二受信確認コマンドの送付を行う。当該第二受信確認コマンドには、ＸｆｅｒＲｅａｄｙの識別情報が含まれている。
【００５６】
ＩＯ処理部１１２は、その第二受信確認コマンドの送付を受けて、Ａ１１７の動作として、送付されたその第二受信確認コマンドに含まれる識別情報のＦＣフレームをすべて受信したかについての判定を行う。ここでは、ＩＯ処理部１１２は、その第二受信確認コマンドに含まれる識別情報が表すＸｆｅｒＲｅａｄｙを受けている。そのため、ＩＯ処理部１１２は、その第二受信確認コマンドに含まれる識別情報のＦＣフレームをすべて受信したことを判定する。そのため、ＩＯ処理部１１２は、前記第二受信確認コマンドに含まれるＩＯＩＤに係る実行中のＩＯ処理を中止せず、継続する。
【００５７】
そして、ＩＯ処理部１１２は、Ａ１１８の動作として、ＩＯ処理部２１２へ、前記第二受信確認コマンドに含まれる識別情報のＦＣフレームをすべて受信した旨を表す第二受信確認応答を送付する。当該第二受信確認応答を受信したＩＯ処理部２１２は、前記第二受信確認コマンドに含まれるＩＯＩＤに係る実行中のＩＯ処理を中止せず、継続する。
【００５８】
そして、ＩＯ処理部１１２は、Ａ１１９−１乃至Ａ１１９−Ｎの動作として、ＩＯ処理部２１２へ、第１乃至第Ｎデータを送付する。ここで、それらの第１乃至第Ｎデータのうち第Ｎデータが、図１に表すＦＣ回線３０１において喪失したとする。
【００５９】
ＩＯ処理部１１２は、当該喪失に関係なく、Ａ１２０の動作として、ＩＯ処理部２１２へ、第三受信確認コマンドを送付する。当該第三受信確認コマンドには、Ａ１１９−１乃至Ａ１１９−Ｎの動作で送付した第１乃至第Ｎデータの各々を表す識別情報が含まれている。
【００６０】
ＩＯ処理部２１２は、当該第三受信確認コマンドの送付を受けて、Ａ１２１の動作として、当該第三受信確認コマンドに含まれる識別情報に係るＦＣフレームをすべて受信したかについての判定を行う。ＩＯ処理部２１２は、喪失した第Ｎデータを受信していない。そのため、ＩＯ処理部２１２は、当該前記判定により、いずれかのデータを未受信であるという判定結果を導出する。
【００６１】
そして、ＩＯ処理部２１２は、Ａ１２２の動作として、前記第三受信確認コマンドに含まれるＩＯＩＤに係る実行中のＩＯ処理を中止する。
【００６２】
そして、ＩＯ処理部２１２は、Ａ１２３の動作として、ＩＯ処理部１１２へ、いずれかのデータを未受信である旨を表す情報を含む第三受信確認応答を送付する。
【００６３】
ＩＯ処理部１１２は、当該第三受信確認応答の受信を受けて、Ａ１２４の動作として、前記第三受信確認コマンドに含まれるＩＯＩＤに係る実行中のＩＯ処理を中止する。
【００６４】
そして、ＩＯ処理部１１２は、Ａ１２５の動作として、中止したＩＯ処理でＩＯ処理送付しようとした同じデータ群である第１乃至第ＮデータのＩＯ処理の送付に係るＩＯ処理を、再度、最初から実行する。
【００６５】
そして、ＩＯ処理部１１２は、Ａ１２６の動作として、再開したＩＯ処理に係るＷｒｉｔｅコマンドを、ＩＯ処理部２１２へ再送する。
【００６６】
図５は、喪失したフレームが、サーバ１１０がストレージ装置２１０に送付したＷｒｉｔｅコマンドである場合に、ＩＯ処理部１１２とＩＯ処理部２１２との間で行われるＩＯ動作例を表す概念図である。
【００６７】
ＩＯ処理部１１２は、まず、Ａ１３１の動作として、ＩＯ処理部２１２へ、Ｗｒｉｔｅコマンドを送付する。このＷｒｉｔｅコマンドは、図１に表すＦＣ回線３０１において喪失したとする。
【００６８】
ＩＯ処理部１１２は、当該喪失に関係なく、Ａ１３２の動作として、ＩＯ処理部２１２へ、第一受信確認コマンドを送付する。当該第一受信確認コマンドには、Ｗｒｉｔｅコマンドを表す識別情報が含まれている。
【００６９】
ＩＯ処理部２１２は、当該第一受信確認コマンドの送付を受けて、Ａ１３３の動作を行う。Ａ１３３の動作は、その第一受信確認コマンドに含まれる識別情報に係るＦＣフレームを実行中のＩＯ処理においてすべて受信したかについての判定である。ＩＯ処理部２１２は、喪失されたＷｒｉｔｅコマンドを受信していない。そのため、ＩＯ処理部２１２は、Ａ１３３の動作により、その第一受信確認コマンドに含まれる識別情報のいずれかに係るＦＣフレームを受信していないことを判定する。
【００７０】
そして、ＩＯ処理部２１２は、Ａ１３４の動作として、その第一受信確認コマンドに含まれる識別情報のいずれかに係るＦＣフレームを受信していない旨の情報を含む第一受信確認応答を、ＩＯ処理部１１２へ送付する。
【００７１】
ＩＯ処理部１１２は、その第一受信確認応答の送付を受けて、Ａ１３５の動作として、前記第一受信確認コマンドに含まれるＩＯＩＤに係る実行中のＩＯ処理を中止する。
【００７２】
そして、ＩＯ処理部１１２は、Ａ１３６の動作として、中止したＩＯ処理と同じデータ（データ群）に係るＩＯ処理を、再度、最初から実行する。
【００７３】
そして、ＩＯ処理部１１２は、Ａ１３７の動作として、ＩＯ処理部２１２へ、当該ＩＯ処理におけるＷｒｉｔｅコマンドを再送する。
【００７４】
図６は、喪失したフレームが、ストレージ装置２１０がサーバ１１０に送付したＸｆｅｒＲｅａｄｙコマンドである場合に、ＩＯ処理部１１２とＩＯ処理部２１２との間で行われるＩＯ動作例を表す概念図である。
【００７５】
図６に表すＡ１１１乃至Ａ１１３の動作の説明は、図４に表すＡ１１１乃至Ａ１１３の動作の説明と同じである。従い、ここでは、それらの説明を省略する。
【００７６】
ＩＯ処理部２１２は、Ａ１１３の動作の次に、Ａ１４１の動作として、ＩＯ処理部１１２へ、ＸｆｅｒＲｅａｄｙを送付する。この、ＸｆｅｒＲｅａｄｙが、図１に表すＦＣ回線３０１において喪失されたとする。
【００７７】
ＩＯ処理部２１２は、当該喪失とは関係なく、Ａ１４２の動作として、ＩＯ処理部１１２へ、第二受信確認コマンドを送付する。当該第二受信確認コマンドには、ＸｆｅｒＲｅａｄｙを表す識別情報が含まれている。
【００７８】
ＩＯ処理部１１２は、当該第二受信確認コマンドの送付を受けて、Ａ１４３の動作を行う。Ａ１４３の動作は、当該第二受信確認コマンドに含まれる識別情報が表すＦＣフレームを実行中のＩＯ処理においてすべて受信したかについての判定である。Ａ１４１の動作によりＩＯ処理部２１２が送付したＸｆｅｒＲｅａｄｙは喪失している。そのため、ＩＯ処理部１１２はＸｆｅｒＲｅａｄｙを受信していない。そこで、ＩＯ処理部１１２は、当該判定により、いずれかの識別情報に係るＦＣフレームを受信していない旨の判定結果を導出する。
【００７９】
そして、ＩＯ処理部１１２は、Ａ１４４の動作として、前記第二受信確認コマンドに含まれるＩＯＩＤに係る実行中のＩＯ処理を中止する。
【００８０】
そして、ＩＯ処理部１１２は、Ａ１４５の動作として、いずれかの識別情報に係るＦＣフレームを受信していない旨を表す情報を含む第二受信確認応答を、ＩＯ処理部２１２へ送付する。
【００８１】
ＩＯ処理部２１２は、送付された第二受信確認応答により、Ａ１４６の動作として、前記第二受信確認コマンドに含まれるＩＯＩＤに係る実行中のＩＯ処理を中止する。
【００８２】
その後、ＩＯ処理部１１２は、Ａ１４７の動作として、中止したＩＯ処理と同じデータ（データ群）の送付に係るＩＯ処理を、再度、最初から実行する。
【００８３】
そして、ＩＯ処理部１１２は、Ａ１４８の動作として、開始したＩＯ処理に係るＷｒｉｔｅコマンドを、ＩＯ処理部２１２へ送付する。
【００８４】
図７は、喪失したフレームが、ストレージ装置２１０がサーバ１１０に送付したＲｅｓｐｏｎｓｅである場合に、ＩＯ処理部１１２とＩＯ処理部２１２との間で行われる通信処理に係る動作例を表す概念図である。
【００８５】
サーバ１１０のＩＯ処理部１１２は、まず、Ａ１６１の動作として、Ｒｅａｄコマンドを、ストレージ装置２１０のＩＯ処理部２１２へ送付する。
【００８６】
そして、ＩＯ処理部１１２は、Ａ１６２の動作として、第四受信確認コマンドを、ＩＯ処理部２１２へ送付する。当該第四受信確認コマンドには、Ｒｅａｄコマンドを表す識別情報が含まれている。
【００８７】
ＩＯ処理部２１２は、その第四受信確認コマンドの送付を受けて、Ａ１６３の動作を行う。Ａ１６３の動作は、その第四受信確認コマンドに含まれる識別情報に係るＦＣフレームをすべて受信したかについての判定を行うものである。ＩＯ処理部２１２は、Ａ１６１の動作によりＲｅａｄコマンドを受信している。そのため、ＩＯ処理部２１２は、その第四受信確認コマンドに含まれるＩＯＩＤに係る実行中のＩＯ処理により、その第四受信確認コマンドに含まれる識別情報に係るＦＣフレームをすべて受信したことを判定する。そのため、ＩＯ処理部２１２は、その第四受信確認コマンドに含まれるＩＯＩＤに係る実行中のＩＯ処理を、中止せずに、継続する。
【００８８】
そして、ＩＯ処理部２１２は、Ａ１６４の動作として、その第四受信確認コマンドに含まれる識別情報に係るＦＣフレームをすべて受信した旨を表す情報を含む第四受信確認応答を、ＩＯ処理部１１２へ送付する。
【００８９】
そして、ＩＯ処理部２１２は、Ａ１６５−１乃至Ａ１６５−Ｐの動作として、第１乃至第Ｐデータを、ＩＯ処理部１１２へ送付する。ここで、実行中のＩＯ処理においてはＰ個のデータが送付されるものとしている。
【００９０】
次に、ＩＯ処理部２１２は、Ａ１６６の動作として、第五受信確認コマンドを、ＩＯ処理部１１２へ送付する。当該第五受信確認コマンドには、第１乃至第Ｐデータを表す識別情報が含まれている。
【００９１】
ＩＯ処理部１１２は、当該第五受信確認コマンドの送付を受けて、Ａ１３７の動作として、実行中のＩＯ処理により、その第五受信確認コマンドに含まれる識別情報に係るＦＣフレームをすべて受信したかについての判定を行う。ここではＩＯ処理部１１２は、第１乃至第Ｐデータの各々をすべて受信している。そのため、ＩＯ処理部１１２は、実行中のＩＯ処理により、その第五受信確認コマンドに含まれる識別情報に係るＦＣフレームをすべて受信したことを判定する。そのため、ＩＯ処理部１１２は、その第五受信確認コマンドに含まれるＩＯＩＤに係る実行中のＩＯ処理を、中止せずに、継続する。
【００９２】
そして、ＩＯ処理部１１２は、Ａ１６８の動作として、ＩＯ処理部２１２へ、実行中のＩＯ処理によりその第五受信確認コマンドに含まれる識別情報に係るＦＣフレームをすべて受信した旨を含む第五受信確認応答を送付する。実行中のＩＯ処理は、その第五受信確認コマンドに含まれるＩＯＩＤに係るものである。
【００９３】
ＩＯ処理部２１２は、当該第五受信確認応答の送付を受けて、前記第五受信確認コマンドに含まれるＩＯＩＤに係る実行中のＩＯ処理を中止せず、継続する。
【００９４】
そして、ＩＯ処理部２１２は、Ａ１６９の動作として、ＩＯ処理部１１２へ、Ｒｅｓｐｏｎｓｅを送付する。このＲｅｓｐｏｎｓｅが図１に表すＦＣ回線３０１において喪失したとする。
【００９５】
ＩＯ処理部２１２は、当該喪失とは関係なしに、Ａ１７０の動作として、Ｒｅｓｐｏｎｓｅの受信の確認についての第六受信確認コマンドを送付する。当該第六確認コマンドには、Ｒｅｓｐｏｎｓｅを表す識別情報が含まれている。
【００９６】
ＩＯ処理部１１２は、当該第六確認コマンドの送付を受けて、Ａ１７１の動作として、実行中のＩＯ処理により、その第六確認コマンドに含まれる識別情報に係るＦＣフレームをすべて受信したかについての判定を行う。ここではＩＯ処理部１１２は、Ｒｅｓｐｏｎｓｅを受信していない。そのため、ＩＯ処理部１１２は、前記第六確認コマンドに含まれるＩＯＩＤに係る実行中のＩＯ処理により、その第六確認コマンドに含まれる識別情報に係るＦＣフレームのいずれかを受信していないことを判定する。
【００９７】
そのため、ＩＯ処理部１１２は、Ａ１７２の動作として、その第六確認コマンドに含まれるＩＯＩＤに係る実行中のＩＯ処理を中止する。
【００９８】
そして、ＩＯ処理部１１２は、Ａ１７３の動作として、その第六確認コマンドに含まれる識別情報に係るＦＣフレームのいずれかを受信していないことを表す第六受信確認応答を、ＩＯ処理部２１２へ送付する。
【００９９】
ＩＯ処理部２１２は、当該第六受信確認応答の送付を受けて、Ａ１７４の動作として、前記第六確認コマンドに含まれるＩＯＩＤに係る実行中のＩＯ処理を中止する。
【０１００】
その後、ＩＯ処理部１１２は、Ａ１７５の動作として、中止したＩＯ処理が対象とする前記第１データ乃至第Ｐデータに係るストレージ装置２１０からの読み込みを対象とする、ＩＯ処理を再度開始する。
【０１０１】
そして、ＩＯ処理部１１２は、Ａ１７６の動作として、当該ＩＯ処理に係るＲｅａｄコマンドを、ＩＯ処理部２１２へ再送する。
［処理フロー例］
図８乃至図１０は、図１に表すサーバ１１０のＩＯ処理部１１２が行う処理の処理フロー例を表す概念図である。
【０１０２】
ＩＯ処理部１１２は、例えば、外部からの開始情報の入力により、図８に表す処理を開始する。
【０１０３】
そして、ＩＯ処理部１１２は、Ｓ１０１の処理として、所定のＩＯ処理を立ち上げるかについての判定を行う。ＩＯ処理部１１２は、当該判定を、例えば、サーバ１１０の備える図１に図示しない制御部から入力された指示情報により行う。
【０１０４】
ＩＯ処理部１１２は、Ｓ１０１の処理による判定結果がｙｅｓの場合は、Ｓ１０２の処理を行う。
【０１０５】
一方、ＩＯ処理部１１２は、Ｓ１０１の処理による判定結果がｎｏの場合は、Ｓ１０１の処理を再度行う。
【０１０６】
ＩＯ処理部１１２は、Ｓ１０２の処理を行う場合は、同処理として、立ち上げるＩＯ処理に係るＩＯＩＤを決定する。その際に、ＩＯ処理部１１２は、例えば、一回前のＳ１０２の処理により決定したＩＯＩＤに含まれる前述のＯＸ＿ＩＤに１加算したものを今回のＳ１０２の処理により決定するＩＯＩＤとする。
【０１０７】
そして、ＩＯ処理部１１２は、Ｓ１０３の処理として、Ｓ１０２の処理によりＩＯＩＤを決定したＩＯ処理が、ストレージ装置２１０に所定のデータの格納を行わせるものかについての判定を行う。ＩＯ処理部１１２は、当該判定を、例えば、前記制御部から入力された指示情報により行う。
【０１０８】
ＩＯ処理部１１２は、Ｓ１０３の処理による判定結果がｙｅｓの場合は、図９に表すＳ２０１の処理を行う。
【０１０９】
一方、ＩＯ処理部１１２は、Ｓ１０３の処理による判定結果がｎｏの場合は、Ｓ１０４の処理を行う。
【０１１０】
ＩＯ処理部１１２は、Ｓ１０４の処理を行う場合は、同処理として、Ｓ１０２の処理によりＩＯＩＤを決定したＩＯ処理が、ストレージ装置２１０からデータを読み込むものかについての判定を行う。ＩＯ処理部１１２は、当該判定を、例えば、前記制御部から入力された指示情報により行う。
【０１１１】
ＩＯ処理部１１２は、Ｓ１０４の処理による判定結果がｙｅｓの場合は、図１０に表すＳ３０１の処理を行う。
【０１１２】
一方、ＩＯ処理部１１２は、Ｓ１０４の処理による判定結果がｎｏの場合は、Ｓ１０５の処理を行う。
【０１１３】
ＩＯ処理部１１２は、Ｓ１０５の処理を行う場合は、同処理として、図８乃至図１０に表す処理を終了するかについての判定を行う。ＩＯ処理部１１２は、当該判定を、例えば、外部からの終了情報の入力の有無を判定することにより行う。
【０１１４】
ＩＯ処理部１１２は、Ｓ１０５の処理による判定結果がｙｅｓの場合は、図８乃至図１０に表す処理を終了する。
【０１１５】
一方、ＩＯ処理部１１２は、Ｓ１０５の処理による判定結果がｎｏの場合は、Ｓ１０１の処理を再度行う。
【０１１６】
ＩＯ処理部１１２は、図９に表すＳ２０１の処理を行う場合は、同処理として、ストレージ装置２１０のＩＯ処理部２１２へ、Ｗｒｉｔｅコマンドを送付する。当該Ｗｒｉｔｅコマンドには、前述のＩＯＩＤが含まれている。同処理は、図４に表すＡ１１１の動作に相当する。
【０１１７】
そして、ＩＯ処理部１１２は、Ｓ２０１の処理として、第一受信確認コマンドをＩＯ処理部２１２へ送付する。当該第一受信確認コマンドには、Ｗｒｉｔｅコマンドを表す識別情報と前記ＩＯＩＤとが含まれている。同処理は、図４に表すＡ１１２の動作に相当する。
【０１１８】
そして、ＩＯ処理部１１２は、Ｓ２０３の処理として、Ｓ２０２の処理により前記ＩＯＩＤを含む第一受信確認応答の送付をＩＯ処理部２１２から受けたかについての判定を行う。
【０１１９】
ＩＯ処理部１１２は、Ｓ２０３の処理による判定結果がｙｅｓの場合は、Ｓ２０４の処理を行う。
【０１２０】
一方、ＩＯ処理部１１２は、Ｓ２０３の処理による判定結果がｎｏの場合は、Ｓ２０５の処理を行う。
【０１２１】
ＩＯ処理部１１２は、Ｓ２０５の処理を行う場合は、同処理として、Ｓ２０２の処理を終了してから時間Ｔ１が経過したかについての判定を行う。時間Ｔ１はＳ２０３の処理を繰り返す時間の上限を表すものとして、予め定められた時間である。ＩＯ処理部１１２は、タイマーを利用できる環境にあることを前提とする。
【０１２２】
時間Ｔ１は、発明が解決しようとする課題の項で説明した背景技術の項で説明したストレージシステムにおけるタイムアウトの待ち時間（数十秒程度）と比較して顕著に短い時間（例えば、数百ミリ秒程度）である。
【０１２３】
ＩＯ処理部１１２は、Ｓ２０５の処理による判定結果がｙｅｓの場合は、Ｓ２１６の処理を行う。
【０１２４】
一方、ＩＯ処理部１１２は、Ｓ２０５の処理による判定結果がｎｏの場合は、Ｓ２０３の処理を再度行う。
【０１２５】
ＩＯ処理部１１２は、Ｓ２０４の処理を行う場合は、同処理として、前記第一受信確認応答が、Ｓ２０２の処理により送付した第一受信確認コマンドに含まれる識別情報のＦＣフレームをすべて受信した旨を表すかについての判定を行う。
【０１２６】
ＩＯ処理部１１２は、Ｓ２０４の処理による判定結果がｙｅｓの場合は、Ｓ２０６の処理を行う。
【０１２７】
一方、ＩＯ処理部１１２は、Ｓ２０４の処理による判定結果がｎｏの場合は、Ｓ２１６の処理を行う。
【０１２８】
ＩＯ処理部１１２は、Ｓ２０６の処理を行う場合は、同処理として、Ｓ２０１の処理により送付したＷｒｉｔｅコマンドに含まれるＩＯＩＤを含む第二受信確認コマンドを受信したかについての判定を行う。当該第二受信確認コマンドには、ＸｆｅｒＲｅａｄｙの識別情報が含まれている。
【０１２９】
ＩＯ処理部１１２は、Ｓ２０６の処理による判定結果がｙｅｓの場合は、Ｓ２０７の処理を行う。
【０１３０】
一方、ＩＯ処理部１１２は、Ｓ２０６の処理による判定結果がｎｏの場合は、Ｓ２０８の処理を行う。
【０１３１】
ＩＯ処理部１１２は、Ｓ２０８の処理を行う場合は、同処理として、直近のＳ２０４の処理でｙｅｓを判定してから時間Ｔ２が経過したかについての判定を行う。時間Ｔ２はＳ２０６の処理を繰り返す時間の上限を表すものとして、予め定められた時間である。
【０１３２】
時間Ｔ２は、前述のタイムアウトの待ち時間（数十秒程度）と比較して顕著に短い時間（例えば、数百ミリ秒程度）である。
【０１３３】
ＩＯ処理部１１２は、Ｓ２０８の処理による判定結果がｙｅｓの場合は、Ｓ２１６の処理を行う。
【０１３４】
一方、ＩＯ処理部１１２は、Ｓ２０８の処理による判定結果がｎｏの場合は、Ｓ２０６の処理を再度行う。
【０１３５】
ＩＯ処理部１１２は、Ｓ２０７の処理を行う場合は、同処理として、Ｓ２０６の処理により受信したことを判定した第二受信確認コマンドに含まれる識別情報のＦＣフレームをすべて受信したかについての判定を行う。第二受信確認コマンドに含まれる識別情報はＸｆｅｒＲｅａｄｙの識別情報である。従い、当該判定は、ＸｆｅｒＲｅａｄｙを受信したかについての判定である。Ｓ２０７の処理は、図４に表すＡ１１７の動作に対応するものである。
【０１３６】
ＩＯ処理部１１２は、Ｓ２０７の処理による判定結果がｙｅｓの場合は、Ｓ２０９の処理を行う。
【０１３７】
一方、ＩＯ処理部１１２は、Ｓ２０７の処理による判定結果がｎｏの場合は、Ｓ２１０の処理を行う。
【０１３８】
ＩＯ処理部１１２は、Ｓ２０９の処理を行う場合は、同処理として、Ｓ２０８の処理により受信したことを判定した第二受信確認コマンドに含まれるＦＣフレームをすべて受信した旨を表す第二受信確認応答を、ＩＯ処理部２１２へ送付する。Ｓ２０９の処理は、図４に表すＡ１１８の動作に対応するものである。そして、ＩＯ処理部１１２は、Ｓ２１１の処理を行う。
【０１３９】
ＩＯ処理部１１２は、Ｓ２１０の処理を行う場合は、同処理として、Ｓ２０８の処理により受信したことを判定した第二受信確認コマンドに含まれるＦＣフレームのいずれかを受信していない旨を表す第二受信確認応答を、ＩＯ処理部２１２へ送付する。そして、ＩＯ処理部１１２は、Ｓ２１６の処理を行う。
【０１４０】
ＩＯ処理部１１２は、Ｓ２１１の処理を行う場合は、同処理として、Ｎ個のデータである第１乃至第Ｎデータを、ＩＯ処理部２１２へ送付する。Ｓ２１１の処理は、図４に表すＡ１１９−１乃至Ａ１１９−Ｎの動作に対応するものである。
【０１４１】
そして、ＩＯ処理部１１２は、Ｓ２１２の処理として、第三受信確認コマンドを、ＩＯ処理部２１２へ送付する。当該第三受信確認コマンドには、直近のＳ２０１の処理により送付したＷｒｉｔｅコマンドに含まれるＩＯＩＤと第１乃至第Ｎデータを表す識別情報とが含まれている。Ｓ２１２の処理は、図４に表すＡ１２０の動作に対応するものである。
【０１４２】
そして、ＩＯ処理部１１２は、Ｓ２１３の処理として、Ｓ２１２の処理により送付した第三受信確認コマンドへの応答である第三受信確認応答を受信したかについての判定を行う。
【０１４３】
ＩＯ処理部１１２は、Ｓ２１３の処理による判定結果がｙｅｓの場合は、Ｓ２１４の処理を行う。
【０１４４】
一方、ＩＯ処理部１１２は、Ｓ２１３の処理による判定結果がｎｏの場合は、Ｓ２１５の処理を行う。
【０１４５】
ＩＯ処理部１１２は、Ｓ２１５の処理を行う場合は、同処理として、直近のＳ２１２の処理を終了してから時間Ｔ３が経過したかについての判定を行う。時間Ｔ３はＳ２１３の処理を繰り返す時間の上限を表すものとして、予め定められた時間である。
【０１４６】
時間Ｔ３は、前述のタイムアウトの待ち時間（数十秒程度）と比較して顕著に短い時間（例えば、数百ミリ秒程度）である。
【０１４７】
ＩＯ処理部１１２は、Ｓ２１５の処理による判定結果がｙｅｓの場合は、Ｓ２１６の処理を行う。
【０１４８】
一方、ＩＯ処理部１１２は、Ｓ２１５の処理による判定結果がｎｏの場合は、Ｓ２１３の処理を再度行う。
【０１４９】
ＩＯ処理部１１２は、Ｓ２１４の処理を行う場合は、同処理として、前記第三受信確認応答が、Ｓ２１２の処理により送付した第三受信確認コマンドに含まれる識別情報のＦＣフレームをすべて受信した旨を表すかについての判定を行う。
【０１５０】
ＩＯ処理部１１２は、Ｓ２１４の処理による判定結果がｙｅｓの場合は、図８に表すＳ１０１の処理を再度行う。
【０１５１】
一方、ＩＯ処理部１１２は、Ｓ２１４の処理による判定結果がｎｏの場合は、Ｓ２１６の処理を行う。
【０１５２】
ＩＯ処理部１１２は、Ｓ２１６の処理を行う場合は、同処理として図８に表す直近のＳ１０２の処理により決定したＩＯＩＤに係るＩＯ処理を中止する。Ｓ２１６の処理には、図４に表すＡ１２４の動作に対応する処理が含まれる。
【０１５３】
そして、ＩＯ処理部１１２は、Ｓ２０１の処理を再度行う。
【０１５４】
ＩＯ処理部１１２は、図１０に表すＳ３０１の処理を行う場合は、同処理として、Ｒｅａｄコマンドを、ＩＯ処理部２１２へ送付する。当該Ｒｅａｄコマンドには、図８に表すＳ１０２の処理により決定したＩＯＩＤが含まれる。Ｓ３０１の処理は、図７に表すＡ１６１の動作に対応するものである。
【０１５５】
そして、ＩＯ処理部１１２は、Ｓ３０２の処理として、第四受信確認コマンドを、ＩＯ処理部２１２へ送付する。当該第四受信確認コマンドには、前記Ｒｅａｄコマンドに含まれるＩＯＩＤとＲｅａｄコマンドの識別情報とが含まれている。Ｓ３０２の処理は、図７に表すＡ１６２の動作に対応するものである。
【０１５６】
そして、ＩＯ処理部１１２は、Ｓ３０３の処理として、Ｓ３０２の処理により送付した第四受信確認コマンドへの応答である第四受信確認応答を受信したかについての判定を行う。
【０１５７】
ＩＯ処理部１１２は、Ｓ３０３の処理による判定結果がｙｅｓの場合は、Ｓ３０４の処理を行う。
【０１５８】
一方、ＩＯ処理部１１２は、Ｓ３０３の処理による判定結果がｎｏの場合は、Ｓ３０５の処理を行う。
【０１５９】
ＩＯ処理部１１２は、Ｓ３０５の処理を行う場合は、同処理として、直近のＳ３０２の処理を終了してから時間Ｔ４が経過したかについての判定を行う。時間Ｔ４はＳ３０３の処理を繰り返す時間の上限を表すものとして、予め定められた時間である。
【０１６０】
時間Ｔ４は、前述のタイムアウトの待ち時間（数十秒程度）と比較して顕著に短い時間（例えば、数百ミリ秒程度）である。
【０１６１】
ＩＯ処理部１１２は、Ｓ３０５の処理による判定結果がｙｅｓの場合は、Ｓ３１６の処理を行う。
【０１６２】
一方、ＩＯ処理部１１２は、Ｓ３０５の処理による判定結果がｎｏの場合は、Ｓ３０３の処理を再度行う。
【０１６３】
ＩＯ処理部１１２は、Ｓ３０４の処理を行う場合は、同処理として、前記第四受信確認応答が、Ｓ３０２の処理により送付した第四受信確認コマンドに含まれる識別情報のＦＣフレームをすべて受信した旨を表すかについての判定を行う。
【０１６４】
ＩＯ処理部１１２は、Ｓ３０４の処理による判定結果がｙｅｓの場合は、Ｓ３０６の処理を行う。
【０１６５】
一方、ＩＯ処理部１１２は、Ｓ３０４の処理による判定結果がｎｏの場合は、Ｓ３１６の処理を行う。
【０１６６】
ＩＯ処理部１１２は、Ｓ３０６の処理を行う場合は、同処理として、Ｓ３０１の処理により送付したＷｒｉｔｅコマンドに含まれるＩＯＩＤと同じＩＯＩＤを含む第五受信確認コマンドを受信したかについての判定を行う。当該第五受信確認コマンドには、第１乃至第Ｐデータの識別情報が含まれている。
【０１６７】
ＩＯ処理部１１２は、Ｓ３０６の処理による判定結果がｙｅｓの場合は、Ｓ３０７の処理を行う。
【０１６８】
一方、ＩＯ処理部１１２は、Ｓ３０６の処理による判定結果がｎｏの場合は、Ｓ３０８の処理を行う。
【０１６９】
ＩＯ処理部１１２は、Ｓ３０８の処理を行う場合は、同処理として、直近のＳ３０４の処理でｙｅｓを判定してから時間Ｔ５が経過したかについての判定を行う。時間Ｔ５はＳ３０６の処理を繰り返す時間の上限を表すものとして、予め定められた時間である。
【０１７０】
時間Ｔ５は、前述のタイムアウトの待ち時間（数十秒程度）と比較して顕著に短い時間（例えば、数百ミリ秒程度）である。
【０１７１】
ＩＯ処理部１１２は、Ｓ３０８の処理による判定結果がｙｅｓの場合は、Ｓ３１６の処理を行う。
【０１７２】
一方、ＩＯ処理部１１２は、Ｓ３０８の処理による判定結果がｎｏの場合は、Ｓ３０６の処理を再度行う。
【０１７３】
ＩＯ処理部１１２は、Ｓ３０７の処理を行う場合は、同処理として、Ｓ３０６の処理により受信したことを判定した第五受信確認コマンドに含まれる識別情報の表すＦＣフレームをすべて受信したかについての判定を行う。当該第五受信確認コマンドに含まれる識別情報は第１乃至第Ｐデータの識別情報である。従い、当該判定は、第１乃至第Ｐデータをすべて受信したかについての判定である。Ｓ３０７の処理は、図７に表すＡ１６７の動作に対応するものである。
【０１７４】
ＩＯ処理部１１２は、Ｓ３０７の処理による判定結果がｙｅｓの場合は、Ｓ３０９の処理を行う。
【０１７５】
一方、ＩＯ処理部１１２は、Ｓ３０７の処理による判定結果がｎｏの場合は、Ｓ３１０の処理を行う。
【０１７６】
ＩＯ処理部１１２は、Ｓ３０９の処理を行う場合は、同処理として、Ｓ３０７の処理により受信したことを判定した第五受信確認コマンドに含まれるＦＣフレームをすべて受信した旨を表す第五受信確認応答を、ＩＯ処理部２１２へ送付する。Ｓ３０９の処理は、図７に表すＡ１６８の動作に対応するものである。そして、ＩＯ処理部１１２は、Ｓ３１１の処理を行う。
【０１７７】
ＩＯ処理部１１２は、Ｓ３１０の処理を行う場合は、同処理として、Ｓ３０７の処理により受信したことを判定した第五受信確認コマンドに含まれるＦＣフレームのいずれかを受信していない旨を表す第五受信確認応答を、ＩＯ処理部２１２へ送付する。そして、ＩＯ処理部１１２は、Ｓ３１６の処理を行う。
【０１７８】
ＩＯ処理部１１２は、Ｓ３１１の処理を行う場合は、同処理として、第六受信確認コマンドを受信したかについての判定を行う。当該第六受信確認コマンドは、直近のＳ３０１の処理により送付したＲｅａｄコマンドに含まれるＩＯＩＤとＲｅｓｐｏｎｓｅを表す識別情報とが含まれているものである。
【０１７９】
ＩＯ処理部１１２は、Ｓ３１１の処理による判定結果がｙｅｓの場合は、Ｓ３１２の処理を行う。
【０１８０】
一方、ＩＯ処理部１１２は、Ｓ３１１の処理による判定結果がｎｏの場合は、Ｓ３１３の処理を行う。
【０１８１】
ＩＯ処理部１１２は、Ｓ３１３の処理を行う場合は、同処理として、直近のＳ３０９の処理を終了してから時間Ｔ６が経過したかについての判定を行う。時間Ｔ６はＳ３１１の処理を繰り返す時間の上限を表すものとして、予め定められた時間である。
【０１８２】
時間Ｔ６は、前述のタイムアウトの待ち時間（数十秒程度）と比較して顕著に短い時間（例えば、数百ミリ秒程度）である。
【０１８３】
ＩＯ処理部１１２は、Ｓ３１３の処理による判定結果がｙｅｓの場合は、Ｓ３１６の処理を行う。
【０１８４】
一方、ＩＯ処理部１１２は、Ｓ３１３の処理による判定結果がｎｏの場合は、Ｓ３１１の処理を再度行う。
【０１８５】
ＩＯ処理部１１２は、Ｓ３１２の処理を行う場合は、同処理として、Ｓ３１１の処理により受信したことを判定した第六受信確認コマンドに含まれる識別情報のＦＣフレームをすべて受信したかについての判定を行う。第六受信確認コマンドに含まれる識別情報は、Ｒｅｓｐｏｎｓｅを表すものである。従い、ＩＯ処理部１１２は、同処理として、Ｒｅｓｐｏｎｓｅを受信したかについての判定を行う。Ｓ３１２の処理は、図７に表すＡ１７１の動作に対応するものである。
【０１８６】
ＩＯ処理部１１２は、Ｓ３１２の処理による判定結果がｙｅｓの場合は、Ｓ３１４の処理を行う。
【０１８７】
一方、ＩＯ処理部１１２は、Ｓ３１２の処理による判定結果がｎｏの場合は、Ｓ３１５の処理を再度行う。
【０１８８】
ＩＯ処理部１１２は、Ｓ３１４の処理を行う場合は、同処理として、前記第六受信確認コマンドに含まれる識別情報のＦＣフレームをすべて受信した旨を表す情報を含む、第六受信確認応答を、ＩＯ処理部２１２へ送付する。
【０１８９】
そして、ＩＯ処理部１１２は、図８に表すＳ１０１の処理を再度行う。
【０１９０】
ＩＯ処理部１１２は、Ｓ３１５の処理を行う場合は、同処理として、前記第六受信確認コマンドに含まれる識別情報のＦＣフレームのいずれかを受信していない旨を表す情報を含む、第六受信確認応答を、ＩＯ処理部２１２へ送付する。
【０１９１】
そして、ＩＯ処理部１１２は、Ｓ３１６の処理を行う。
【０１９２】
ＩＯ処理部１１２は、Ｓ３１６の処理を行う場合は、同処理として図８に表す直近のＳ１０２の処理により決定したＩＯＩＤに係るＩＯ処理を中止する。Ｓ３１６の処理には、図７に表すＡ１７２の動作に対応する処理が含まれる。
【０１９３】
そして、ＩＯ処理部１１２は、Ｓ３０１の処理を再度行う。
【０１９４】
図１１乃至図１３は、図１に表すストレージ装置２１０のＩＯ処理部２１２が行う処理の処理フロー例を表す概念図である。
【０１９５】
ＩＯ処理部２１２は、例えば、外部からの開始情報の入力により、図１１に表す処理を開始する。
【０１９６】
そして、ＩＯ処理部２１２は、ＩＯ処理部１１２からＷｒｉｔｅコマンドを受信したかについての判定を行う。
【０１９７】
ＩＯ処理部２１２は、Ｓ４０１の処理による判定結果がｙｅｓの場合は、図１２に表すＳ５０１の処理を行う。
【０１９８】
一方、ＩＯ処理部２１２は、Ｓ４０１の処理による判定結果がｎｏの場合は、Ｓ４０２の処理を行う。
【０１９９】
ＩＯ処理部２１２は、Ｓ４０２の処理を行う場合は、同処理として、ＩＯ処理部１１２からＲｅａｄコマンドを受信したかについての判定を行う。
【０２００】
ＩＯ処理部２１２は、Ｓ４０２の処理による判定結果がｙｅｓの場合は、図１３に表すＳ６０１の処理を行う。
【０２０１】
一方、ＩＯ処理部２１２は、Ｓ４０２の処理による判定結果がｎｏの場合は、Ｓ４０３の処理を行う。
【０２０２】
ＩＯ処理部２１２は、Ｓ４０３の処理を行う場合は、同処理として、図１１乃至図１３に表す処理を終了するかについての判定を行う。ＩＯ処理部２１２は、当該判定を、例えば、外部からの終了情報の入力の有無を判定することにより行う。
【０２０３】
ＩＯ処理部２１２は、Ｓ４０３の処理による判定結果がｙｅｓの場合は、図１１乃至図１３に表す処理を終了する。
【０２０４】
ＩＯ処理部２１２は、図１２に表すＳ５０１の処理を行う場合は、同処理として、図１１に表すＳ４０１の処理により受信したことを判定したＷｒｉｔｅコマンドに含まれるＩＯＩＤに係るＩＯ処理を開始する。
【０２０５】
そして、ＩＯ処理部２１２は、Ｓ５０２の処理としてＳ５０１の処理により開始したＩＰ処理に係るＩＯＩＤを含む第一受信確認コマンドを受信したかについての判定を行う。当該第一受信確認コマンドは、当該ＩＯＩＤとＷｒｉｔｅコマンドの識別情報とが含まれているものである。
【０２０６】
ＩＯ処理部２１２は、Ｓ５０２の処理による判定結果がｙｅｓの場合は、Ｓ５０３の処理を行う。
【０２０７】
一方、ＩＯ処理部２１２は、Ｓ５０２の処理による判定結果がｎｏの場合は、Ｓ５０４の処理を行う。
【０２０８】
ＩＯ処理部２１２は、Ｓ５０４の処理を行う場合は、同処理として、直近のＳ５０１の処理を終了してから時間Ｔ７が経過したかについての判定を行う。時間Ｔ７は直近のＳ５０２の処理を繰り返す時間の上限を表すものとして、予め定められた時間である。
【０２０９】
時間Ｔ７は、前述のタイムアウトの待ち時間（数十秒程度）と比較して顕著に短い時間（例えば、数百ミリ秒程度）である。
【０２１０】
ＩＯ処理部２１２は、Ｓ５０４の処理による判定結果がｙｅｓの場合は、Ｓ５１７の処理を行う。
【０２１１】
一方、ＩＯ処理部２１２は、Ｓ５０４の処理による判定結果がｎｏの場合は、Ｓ５０２の処理を再度行う。
【０２１２】
ＩＯ処理部２１２は、Ｓ５０３の処理を行う場合は、同処理として、Ｓ５０２の処理により受信したことを判定した第一受信確認コマンドに含まれる識別情報のＦＣフレームをすべて受信した旨を判定する。当該第一受信確認コマンドに含まれる識別情報はＷｒｉｔｅコマンドの識別情報である。そして、Ｗｒｉｔｅコマンドは、図１１に表す直近のＳ４０１の処理により受信した旨を判定しているからである。Ｓ５０３の処理は、図４に表すＡ１１３の動作に対応するものである。
【０２１３】
そして、ＩＯ処理部２１２は、Ｓ５０５の処理として、Ｓ５０２の処理により受信したことを判定した第一受信確認コマンドに含まれるＦＣフレームをすべて受信した旨を表す第一受信確認応答を、ＩＯ処理部１１２へ送付する。Ｓ５０５の処理は、図４に表すＡ１１４の動作に対応するものである。
【０２１４】
そして、ＩＯ処理部２１２は、Ｓ５０７の処理として、ＸｆｅｒＲｅａｄｙを、ＩＯ処理部１１２へ送付する。Ｓ５０７の処理は、図４に表すＡ１１５の動作に対応するものである。
【０２１５】
そして、ＩＯ処理部２１２は、Ｓ５０８の処理として、第二受信確認コマンドを、ＩＯ処理部１１２へ送付する。当該第二受信確認コマンドには、直近のＳ５０１の処理により開始したＩＯ処理に係るＩＯＩＤとＸｆｅｒＲｅａｄｙを表す識別情報とが含まれている。
【０２１６】
そして、ＩＯ処理部２１２は、Ｓ５０９の処理として、Ｓ５０８の処理により送付した第二受信確認コマンドへの応答である第二受信確認応答を受信したかについての判定を行う。
【０２１７】
ＩＯ処理部２１２は、Ｓ５０９の処理による判定結果がｙｅｓの場合は、Ｓ５１１の処理を行う。
【０２１８】
一方、ＩＯ処理部２１２は、Ｓ５０９の処理による判定結果がｎｏの場合は、Ｓ５１０の処理を行う。
【０２１９】
ＩＯ処理部２１２は、Ｓ５１０の処理を行う場合は、同処理として、直近のＳ５０８の処理を終了してから時間Ｔ８が経過したかについての判定を行う。時間Ｔ８はＳ５０９の処理を繰り返す時間の上限を表すものとして、予め定められた時間である。
【０２２０】
時間Ｔ８は、前述のタイムアウトの待ち時間（数十秒程度）と比較して顕著に短い時間（例えば、数百ミリ秒程度）である。
【０２２１】
ＩＯ処理部２１２は、Ｓ５１０の処理による判定結果がｙｅｓの場合は、Ｓ５１７の処理を行う。
【０２２２】
一方、ＩＯ処理部２１２は、Ｓ５１０の処理による判定結果がｎｏの場合は、Ｓ５０９の処理を再度行う。
【０２２３】
ＩＯ処理部２１２は、Ｓ５１１の処理を行う場合は、同処理として、前記第二受信確認応答が、Ｓ５０８の処理により送付した第二受信確認コマンドに含まれる識別情報のＦＣフレームをすべて受信した旨を表すかについての判定を行う。
【０２２４】
ＩＯ処理部２１２は、Ｓ５１１の処理による判定結果がｙｅｓの場合は、Ｓ５１２の処理を行う。
【０２２５】
一方、ＩＯ処理部２１２は、Ｓ５１１の処理による判定結果がｎｏの場合は、Ｓ５１７の処理を行う。
【０２２６】
ＩＯ処理部２１２は、Ｓ５１２の処理を行う場合は、同処理として、直近のＳ５０１の処理により開始したＩＯ処理に係るＩＯＩＤを含む第三受信確認コマンドを受信したかについての判定を行う。当該第三受信確認コマンドには、第１乃至第Ｎデータの識別情報が含まれている。
【０２２７】
ＩＯ処理部２１２は、Ｓ５１２の処理による判定結果がｙｅｓの場合は、Ｓ５１３の処理を行う。
【０２２８】
一方、ＩＯ処理部２１２は、Ｓ５１２の処理による判定結果がｎｏの場合は、Ｓ５１４の処理を行う。
【０２２９】
ＩＯ処理部２１２は、Ｓ５１４の処理を行う場合は、同処理として、直近のＳ５１２の処理でｙｅｓを判定してから時間Ｔ９が経過したかについての判定を行う。時間Ｔ９はＳ５１２の処理を繰り返す時間の上限を表すものとして、予め定められた時間である。
【０２３０】
時間Ｔ９は、前述のタイムアウトの待ち時間（数十秒程度）と比較して顕著に短い時間（例えば、数百ミリ秒程度）である。
【０２３１】
ＩＯ処理部２１２は、Ｓ５１４の処理による判定結果がｙｅｓの場合は、Ｓ５１７の処理を行う。
【０２３２】
一方、ＩＯ処理部２１２は、Ｓ５１４の処理による判定結果がｎｏの場合は、Ｓ５１２の処理を再度行う。
【０２３３】
ＩＯ処理部２１２は、Ｓ５１３の処理を行う場合は、同処理として、Ｓ５１２の処理により受信したことを判定した第三受信確認コマンドに含まれる識別情報のＦＣフレームをすべて受信したかについての判定を行う。第二受信確認コマンドに含まれる識別情報は第１乃至第Ｎデータの識別情報である。従い、当該判定は、第１乃至第Ｎデータをすべて受信したかについての判定である。Ｓ５１３の処理は、図４に表すＡ１２１の動作に対応するものである。
【０２３４】
ＩＯ処理部２１２は、Ｓ５１３の処理による判定結果がｙｅｓの場合は、Ｓ５１５の処理を行う。
【０２３５】
一方、ＩＯ処理部２１２は、Ｓ５１３の処理による判定結果がｎｏの場合は、Ｓ５１６の処理を行う。
【０２３６】
ＩＯ処理部２１２は、Ｓ５１５の処理を行う場合は、同処理として、直近のＳ５１２の処理により受信したことを判定した第三受信確認コマンドに含まれるＦＣフレームをすべて受信した旨を表す第三受信確認応答を、ＩＯ処理部１１２へ送付する。そして、ＩＯ処理部２１２は、図１１に表すＳ４０１の処理を再度行う。
【０２３７】
ＩＯ処理部２１２は、Ｓ５１６の処理を行う場合は、同処理として、直近のＳ５１２の処理により受信したことを判定した第三受信確認コマンドに含まれるＦＣフレームのいずれかを受信していない旨を表す第三受信確認応答を、ＩＯ処理部１１２へ送付する。そして、ＩＯ処理部２１２は、Ｓ５１７の処理を行う。
【０２３８】
ＩＯ処理部２１２は、Ｓ５１７の処理を行う場合は、同処理として直近のＳ５０１の処理により開始したＩＯ処理を中止する。Ｓ５１７の処理には、図４に表すＡ１２２の動作に対応する処理が含まれる。
【０２３９】
そして、ＩＯ処理部２１２は、Ｓ５０２の処理を再度行う。
【０２４０】
ＩＯ処理部２１２は、図１３に表すＳ６０１の処理を行う場合は、同処理として、図１１に表すＳ４０２の処理により受信したことを判定したＲｅａｄコマンドに含まれるＩＯＩＤに係るＩＯ処理を開始する。
【０２４１】
そして、ＩＯ処理部２１２は、Ｓ６０２の処理として、Ｓ６０１の処理により送付したＩＰ処理に係るＩＯＩＤを含む第四受信確認コマンドを受信したかについての判定を行う。当該第四受信確認コマンドには、当該ＩＯＩＰとＲｅａｄコマンドの識別情報とが含まれている。
【０２４２】
ＩＯ処理部２１２は、Ｓ６０２の処理による判定結果がｙｅｓの場合は、Ｓ６０３の処理を行う。
【０２４３】
一方、ＩＯ処理部２１２は、Ｓ６０２の処理による判定結果がｎｏの場合は、Ｓ６０４の処理を行う。
【０２４４】
ＩＯ処理部２１２は、Ｓ６０４の処理を行う場合は、同処理として、直近のＳ６０１の処理を終了してから時間Ｔ１０が経過したかについての判定を行う。時間Ｔ１０はＳ６０２の処理を繰り返す時間の上限を表すものとして、予め定められた時間である。
【０２４５】
時間Ｔ１０は、前述のタイムアウトの待ち時間（数十秒程度）と比較して顕著に短い時間（例えば、数百ミリ秒程度）である。
【０２４６】
ＩＯ処理部２１２は、Ｓ６０４の処理による判定結果がｙｅｓの場合は、Ｓ６１６の処理を行う。
【０２４７】
一方、ＩＯ処理部２１２は、Ｓ６０４の処理による判定結果がｎｏの場合は、Ｓ６０２の処理を再度行う。
【０２４８】
ＩＯ処理部２１２は、Ｓ６０３の処理を行う場合は、同処理として、Ｓ６０２の処理により受信したことを判定した第四受信確認コマンドに含まれる識別情報のＦＣフレームをすべて受信した旨を判定する。当該第四受信確認コマンドに含まれる識別情報はＲｅａｄコマンドの識別情報である。そして、Ｒｅａｄコマンドは、図１１に表す直近のＳ４０２の処理により受信した旨を判定しているからである。Ｓ６０３の処理は、図７に表すＡ１６３の動作に対応するものである。
【０２４９】
そして、ＩＯ処理部２１２は、Ｓ６０５の処理として、Ｓ６０２の処理により受信したことを判定した第四受信確認コマンドに含まれるＦＣフレームをすべて受信した旨を表す第四受信確認応答を、ＩＯ処理部１１２へ送付する。Ｓ６０５の処理は、図７に表すＡ１６４の動作に対応するものである。
【０２５０】
そして、ＩＯ処理部２１２は、Ｓ６０７の処理として、第１乃至第Ｐデータを、ＩＯ処理部１１２へ送付する。Ｓ６０７の処理は、図７に表すＡ１６５−１乃至Ａ１６５−Ｐの動作に対応するものである。
【０２５１】
そして、ＩＯ処理部２１２は、Ｓ６０８の処理として、第五受信確認コマンドを、ＩＯ処理部１１２へ送付する。当該第五受信確認コマンドには、直近のＳ６０１の処理により開始したＩＯ処理に係るＩＯＩＤと第１乃至第Ｐデータを表す識別情報とが含まれている。Ｓ６０８の処理は、図７に表すＡ１６６の動作に対応するものである。
【０２５２】
そして、ＩＯ処理部２１２は、Ｓ６０９の処理として、Ｓ６０８の処理により送付した第五受信確認コマンドへの応答である第五受信確認応答を受信したかについての判定を行う。
【０２５３】
ＩＯ処理部２１２は、Ｓ６０９の処理による判定結果がｙｅｓの場合は、Ｓ６１１の処理を行う。
【０２５４】
一方、ＩＯ処理部２１２は、Ｓ６０９の処理による判定結果がｎｏの場合は、Ｓ６１０の処理を行う。
【０２５５】
ＩＯ処理部２１２は、Ｓ６１０の処理を行う場合は、同処理として、直近のＳ６０８の処理を終了してから時間Ｔ１１が経過したかについての判定を行う。時間Ｔ１１はＳ６０９の処理を繰り返す時間の上限を表すものとして、予め定められた時間である。
【０２５６】
時間Ｔ１１は、前述のタイムアウトの待ち時間（数十秒程度）と比較して顕著に短い時間（例えば、数百ミリ秒程度）である。
【０２５７】
ＩＯ処理部２１２は、Ｓ６１０の処理による判定結果がｙｅｓの場合は、Ｓ６１６の処理を行う。
【０２５８】
一方、ＩＯ処理部２１２は、Ｓ６１０の処理による判定結果がｎｏの場合は、Ｓ６０９の処理を再度行う。
【０２５９】
ＩＯ処理部２１２は、Ｓ６１１の処理を行う場合は、同処理として、ＲｅｓｐｏｎｓｅをＩＯ処理部１１２へ送付する。Ｓ６１１の処理は、図７に表すＡ１６９の動作に対応するものである。
【０２６０】
そして、ＩＯ処理部２１２は、Ｓ６１２の処理として、第六受信確認コマンドを、ＩＯ処理部１１２へ送付する。Ｓ６１２の処理は、図７に表すＡ１７０の動作に対応するものである。
【０２６１】
そして、ＩＯ処理部２１２は、Ｓ６１３の処理として、Ｓ６１２の処理により送付した第六受信確認コマンドへの応答である、第六受信確認応答を受信したかについての判定を行う。
【０２６２】
ＩＯ処理部２１２は、Ｓ６１３の処理による判定結果がｙｅｓの場合は、Ｓ６１４の処理を行う。
【０２６３】
一方、ＩＯ処理部２１２は、Ｓ６１３の処理による判定結果がｎｏの場合は、Ｓ６１５の処理を行う。
【０２６４】
ＩＯ処理部２１２は、Ｓ６１５の処理を行う場合は、同処理として、直近のＳ６１２の処理を終了してから時間Ｔ１２が経過したかについての判定を行う。時間Ｔ１２はＳ６１３の処理を繰り返す時間の上限を表すものとして、予め定められた時間である。
【０２６５】
時間Ｔ１２は、前述のタイムアウトの待ち時間（数十秒程度）と比較して顕著に短い時間（例えば、数百ミリ秒程度）である。
【０２６６】
ＩＯ処理部２１２は、Ｓ６１５の処理による判定結果がｙｅｓの場合は、Ｓ６１６の処理を行う。
【０２６７】
一方、ＩＯ処理部２１２は、Ｓ６１５の処理による判定結果がｎｏの場合は、Ｓ６１３の処理を再度行う。
【０２６８】
ＩＯ処理部２１２は、Ｓ６１４の処理を行う場合は、同処理として、Ｓ６１３の処理により受信したことを判定した第六受信確認コマンドに含まれる識別情報のＦＣフレームをすべて受信したかについての判定を行う。第六受信確認コマンドに含まれる識別情報はＲｅｓｐｏｎｓｅの識別情報である。従い、当該判定は、Ｒｅｓｐｏｎｓｅを受信したかについての判定である。
【０２６９】
ＩＯ処理部２１２は、Ｓ６１４の処理による判定結果がｙｅｓの場合は、図１１に表すＳ４０１の処理を再度行う。
【０２７０】
一方、ＩＯ処理部２１２は、Ｓ６１４の処理による判定結果がｎｏの場合は、Ｓ６１６の処理を行う。
【０２７１】
ＩＯ処理部２１２は、Ｓ６１６の処理を行う場合は、同処理として直近のＳ６０１の処理により開始したＩＯ処理を中止する。Ｓ６１６の処理には、図７に表すＡ１７４の動作に対応する処理が含まれる。
【０２７２】
そして、ＩＯ処理部２１２は、Ｓ６０２の処理を再度行う。
【０２７３】
なお、ＩＯ処理部１１２及びＩＯ処理部２１２の各々（各ＩＯ処理部）は、相手方に向けてＦＣ回線に送出するＦＣフレームのすべてについて、受信確認コマンドを送出する必要はない。
【０２７４】
各ＩＯ処理部は、例えば、データ（データ群）をＦＣ回線に送出した場合のみ、受信確認コマンドを送出しても構わない。データ（データ群）は、フレーム数が多いので、その一部がＦＣ回線で失われる確率が高い。ＦＣ回線で失われる確率が高いデータ（データ群）についての受信確認コマンドによる受信確認を行うことは、前記タイムアウトの待ち時間短縮の観点から大きな効果がある。
【０２７５】
さらに、各ＩＯ処理部は、Ｗｒｉｔｅコマンド、Ｒｅａｄコマンド、ＸｆｅｒＲｅａｄｙ及びＲｅｓｐｏｎｓｅ、データ（データ群）のうちの少なくともいずれか一つを含むＦＣフレーム群の送付後に、受信確認コマンドを相手方に送付しても良い。その場合、当該受信確認コマンドは、当該ＦＣフレーム群を表す識別情報を含む。
【０２７６】
以上の説明では、フレームの送信側は、所定のＦＣフレーム又はＦＣフレーム群を送付した場合に、受信確認コマンドを、前記送付直後に受信側に送付する例を説明した。しかしながら、受信確認コマンドの送付は、前記送付直後でなくても構わない。前記送信側は、例えば、前記送付から所定の時間である時間Ｔａが経過しても、次に受信すべき情報を受信しない場合のみに、前記受信確認コマンドを、前記受信側に送付しても構わない。その場合の、時間Ｔａは、例えば、前記送付から次に受信すべき情報を受信するまでの時間の平均値としてもよい。
［効果］
本実施形態のストレージシステムは、サーバ１１０とストレージ装置との間でＦＣ回線を通じて送付が行われる送付情報について、受信確認コマンドとその応答である受信確認応答による受信確認を行う。そして、送信側は、前記受信確認応答が前記情報の少なくとも一部を受信しない旨を表す場合等には、その情報の送受に関係するＩＯ処理を速やかに中止し、同等のＩＯ処理の再実行を行う。
【０２７７】
そのため、前記ストレージシステムは、発明が解決しようとする課題の項で説明した、ＩＯ処理のタイムアウトのために必要な待ち時間を低減し、ＩＯ処理の遅延を緩和することを可能にする。
＜第二実施形態＞
第二実施形態は、ＦＣ回線を通じての情報の送受を、背景技術の項で説明した方法と第一実施形態で説明した方法とで切り替えるストレージシステムに関する実施形態である。
［構成と動作］
第二実施形態のストレージシステムの構成例は、図１に表す第一実施形態のストレージシステム４０１の構成である。
【０２７８】
第二実施形態のストレージシステム４０１の説明は、以下の点が、第一実施形態のストレージシステム４０１の説明と異なる。
【０２７９】
サーバ１１０のＩＯ処理部１１２は、ＩＯ処理を立ち上げる際に、ＩＯ処理を、第一モードで行うか第二モードで行うかの選択を行う。
【０２８０】
ここで、第一モードは、第一実施形態で説明した内容の動作を行うものである。また、第二モードは、背景技術の項で説明した一般的な動作を行うものである。
【０２８１】
ＩＯ処理部１１２は、前記選択を、例えば、サーバ１１０の図示しない制御部からの指示により行う。
【０２８２】
その場合、前記制御部は、例えば、ストレージ装置２１０に送付し又はストレージ装置２１０から読み込むデータ（データ群）が、遅延が許容されないものである場合に、ＩＯ処理部１１２に前記第一モードを選択させる。当該遅延は、発明が解決しようとする課題の項で説明したタイムアウトに伴うものである。その場合は、例えば、そのデータ（データ群）をストレージ装置２１０に格納させ又はストレージ装置２１０から読み込む処理に続く第二の処理について、前記タイムアウトの待ち時間が許容されない場合である。その場合は、例えば、前記待ち時間が経過する前に、前記第二の処理がセッションタイムアウトするような場合である。
【０２８３】
一方、前記制御部は、ストレージ装置２１０に送付し又はストレージ装置２１０から読み込むデータが、発明が解決しようとする課題の項で説明したタイムアウトに伴う遅延が許容される場合は、ＩＯ処理部１１２に、前記第二モードを選択させる。
【０２８４】
ＩＯ処理部１１２は、ＩＯ処理部２１２へ送付するＷｒｉｔｅコマンドやＲｅａｄコマンドに、前記第一モードか前記第二モードかを指定する指定情報を含ませる。
【０２８５】
ここで、当該指定情報を、図１に表すストレージ装置２１０のストレージ部２１４におけるデータの格納場所（アドレス範囲等）としてもよい。その場合、ストレージ部２１４における、前記第一モードに係るデータの格納場所と、前記第二モードに係るデータの格納場所の範囲を分離することを、ストレージシステム４０１のルールとして予め定める。そして、ＩＯ処理部１１２は、第一実施形態において述べたＷｒｉｔｅコマンドやＲｅａｄコマンドにおいて、ストレージ部２１４の格納場所を、分離されたいずれにするかを指定する。
【０２８６】
一方、ストレージ装置２１０は、ＩＯ処理部２１２は、ＷｒｉｔｅコマンドやＲｅａｄコマンドに含まれる前記指定情報により、前記第一モードによるＩＯ処理を行うか前記第二モードによるＩＯ処理を行うかを判定する。
【０２８７】
そして、ストレージ装置２１０は、前記判定結果により、前記第一モードか前記第二モードかのいずれかのＩＯ処理を行う。
［処理フロー］
図１４は、第二実施形態のストレージシステム４０１のサーバ１１０が備えるＩＯ処理部１１２が行う処理の処理フロー例を表す概念図である。
【０２８８】
ＩＯ処理部１１２は、例えば、前述の制御部からの開始情報の入力により、図１４に表す処理を開始する。
【０２８９】
そして、ＩＯ処理部１１２は、Ｓ１０１の処理として、所定のＩＯ処理を立ち上げるかについての判定を行う。ＩＯ処理部１１２は、当該判定を、例えば、前記制御部から入力された指示情報により行う。
【０２９０】
ＩＯ処理部１１２は、Ｓ１０１の処理による判定結果がｙｅｓの場合は、Ｓ１０２の処理を行う。
【０２９１】
一方、ＩＯ処理部１１２は、Ｓ１０１の処理による判定結果がｎｏの場合は、Ｓ１０１の処理を再度行う。
【０２９２】
ＩＯ処理部１１２は、Ｓ１０２の処理を行う場合は、同処理として、立ち上げるＩＯ処理に係るＩＯＩＤを決定する。
【０２９３】
そして、ＩＯ処理部１１２は、Ｓ１０２−２の処理として、立ち上げるＩＯ処理に係るモードが前述の第一モードかについての判定を行う。ＩＯ処理部１１２は、当該判定を、例えば、前記制御部からの指示情報により行う。
【０２９４】
ＩＯ処理部１１２は、Ｓ１０２−２の処理による判定結果がｙｅｓの場合は、Ｓ１０３の処理を行う。
【０２９５】
一方、ＩＯ処理部１１２は、Ｓ１０２−２の処理による判定結果がｎｏの場合は、Ｓ１０３−２の処理を行う。
【０２９６】
ＩＯ処理部１１２は、Ｓ１０３の処理を行う場合は、同処理として、Ｓ１０２の処理によりＩＯＩＤを決定したＩＯ処理が、ストレージ装置２１０にデータの格納を行わせるものかについての判定を行う。ＩＯ処理部１１２は、当該判定を、例えば、前記制御部から入力された指示情報により行う。
【０２９７】
ＩＯ処理部１１２は、Ｓ１０３の処理による判定結果がｙｅｓの場合は、図９に表すＳ２０１の処理を行う。
【０２９８】
一方、ＩＯ処理部１１２は、Ｓ１０３の処理による判定結果がｎｏの場合は、Ｓ１０４の処理を行う。
【０２９９】
ＩＯ処理部１１２は、Ｓ１０４の処理を行う場合は、同処理として、Ｓ１０２の処理によりＩＯＩＤを決定したＩＯ処理が、ストレージ装置２１０からデータの読み込みを行うものかについての判定を行う。ＩＯ処理部１１２は、当該判定を、例えば、前記制御部から入力された指示情報により行う。
【０３００】
ＩＯ処理部１１２は、Ｓ１０４の処理による判定結果がｙｅｓの場合は、図１０に表すＳ３０１の処理を行う。
【０３０１】
一方、ＩＯ処理部１１２は、Ｓ１０４の処理による判定結果がｎｏの場合は、Ｓ１０５の処理を行う。
【０３０２】
ＩＯ処理部１１２は、Ｓ１０３−２の処理を行う場合は、同処理として、Ｓ１０２の処理によりＩＯＩＤを決定したＩＯ処理が、ストレージ装置２１０にデータの格納を行わせるものかについての判定を行う。ＩＯ処理部１１２は、当該判定を、例えば、前記制御部から入力された指示情報により行う。
【０３０３】
ＩＯ処理部１１２は、Ｓ１０３−２の処理による判定結果がｙｅｓの場合は、図１５に表すＳ７０１の処理を行う。
【０３０４】
一方、ＩＯ処理部１１２は、Ｓ１０３−２の処理による判定結果がｎｏの場合は、Ｓ１０４−２の処理を行う。
【０３０５】
ＩＯ処理部１１２は、Ｓ１０４−２の処理を行う場合は、同処理として、Ｓ１０２の処理によりＩＯＩＤを決定したＩＯ処理が、ストレージ装置２１０からデータの読み込みを行うものかについての判定を行う。ＩＯ処理部１１２は、当該判定を、例えば、前記制御部から入力された指示情報により行う。
【０３０６】
ＩＯ処理部１１２は、Ｓ１０４−２の処理による判定結果がｙｅｓの場合は、図１６に表すＳ７２１の処理を行う。
【０３０７】
一方、ＩＯ処理部１１２は、Ｓ１０４−２の処理による判定結果がｎｏの場合は、Ｓ１０５の処理を行う。
【０３０８】
ＩＯ処理部１１２は、Ｓ１０５の処理を行う場合は、同処理として、図１４、図９、図１０、図１５及び図１６に表す処理を終了するかについての判定を行う。ＩＯ処理部１１２は、当該判定を、例えば、外部からの終了情報の入力の有無を判定することにより行う。
【０３０９】
ＩＯ処理部１１２は、Ｓ１０５の処理による判定結果がｙｅｓの場合は、図１４、図９、図１０、図１５及び図１６に表す処理を終了する。
【０３１０】
一方、ＩＯ処理部１１２は、Ｓ１０５の処理による判定結果がｎｏの場合は、Ｓ１０１の処理を再度行う。
【０３１１】
図９に表す処理の説明は、第一実施形態で述べた通りである。ただし、ＩＯ処理部１１２は、Ｓ２１４の処理の判定結果がｙｅｓの場合には、図８に表すＳ１０１の処理に代えて、図１４に表すＳ１０１の処理を行う。
【０３１２】
図１０に表す処理の説明は、第一実施形態で述べた通りである。ただし、ＩＯ処理部１１２は、Ｓ３１４の処理の次に、図８に表すＳ１０１の処理に代えて、図１４に表すＳ１０１の処理を行う。
【０３１３】
図１５は、背景技術の項で述べた、ＩＯ処理部１１２が行う、ＦＣの規格に基づく一般的なデータ格納処理の処理フロー例を表す概念図である。
【０３１４】
ＩＯ処理部１１２は、図１４に表すＳ１０３−２の処理による判定結果がｙｅｓの場合には、Ｓ７０１の処理として、ＷｒｉｔｅコマンドのＩＯ処理部２１２への送付を行う。
【０３１５】
そして、ＩＯ処理部１１２は、Ｓ７０２の処理として、ＩＯ処理部２１２が送付したＸｆｅｒＲｅａｄｙを受信したかについての判定を行う。
【０３１６】
ＩＯ処理部１１２は、Ｓ７０２の処理による判定結果がｙｅｓの場合は、Ｓ７０３の処理を行う。
【０３１７】
一方、ＩＯ処理部１１２は、Ｓ７０２の処理による判定結果がｎｏの場合は、Ｓ７０４の処理を行う。
【０３１８】
ＩＯ処理部１１２は、Ｓ７０４の処理を行う場合は、同処理として、直近の図１４に表すＳ１０１の処理においてｙｅｓの判定結果を導いてから、時間Ｔが経過したかについての判定を行う。時間Ｔは、一般的なＦＣに基づくＩＯ処理のタイムアウト時間である。時間Ｔは、数十秒程度のものである。ＩＯ処理部１１２は、図示しないタイマーを利用できることを前提とする。
【０３１９】
ＩＯ処理部１１２は、Ｓ７０４の処理による判定結果がｙｅｓの場合は、Ｓ７０７の処理を行う。
【０３２０】
一方、ＩＯ処理部１１２は、Ｓ７０４の処理による判定結果がｎｏの場合は、Ｓ７０２の処理を再度行う。
【０３２１】
ＩＯ処理部１１２は、Ｓ７０３の処理を行う場合は、同処理として、第１乃至第Ｎデータを、ＩＯ処理部２１２へ送付する。
【０３２２】
そして、ＩＯ処理部１１２は、Ｓ７０５の処理として、Ｒｅｓｐｏｎｓｅを受信したかについての判定を行う。
【０３２３】
ＩＯ処理部１１２は、Ｓ７０５の処理による判定結果がｙｅｓの場合は、図１４に表すＳ１０１の処理を行う。
【０３２４】
一方、ＩＯ処理部１１２は、Ｓ７０５の処理による判定結果がｎｏの場合は、Ｓ７０６の処理を行う。
【０３２５】
ＩＯ処理部１１２は、Ｓ７０６の処理を行う場合は、同処理として、直近の図１４に表すＳ１０１の処理においてｙｅｓの判定結果を導いてから、前述の時間Ｔが経過したかについての判定を行う。
【０３２６】
ＩＯ処理部１１２は、Ｓ７０６の処理による判定結果がｙｅｓの場合は、Ｓ７０７の処理を行う。
【０３２７】
一方、ＩＯ処理部１１２は、Ｓ７０６の処理による判定結果がｎｏの場合は、Ｓ７０５の処理を再度行う。
【０３２８】
ＩＯ処理部１１２は、Ｓ７０７の処理を行う場合は、同処理として、図１４に表すＳ１０２の処理により指定したＩＯＩＤに係るＩＯ処理を中止する。
【０３２９】
図１６は、背景技術の項で述べた、ＩＯ処理部１１２が行う、ＦＣの規格に基づく一般的なデータ受信処理の処理フロー例を表す概念図である。
【０３３０】
ＩＯ処理部１１２は、図１４に表すＳ１０４−２の処理による判定結果がｙｅｓの場合は、Ｓ７２１の処理として、ＲｅａｄコマンドのＩＯ処理部２１２への送付を行う。
【０３３１】
そして、ＩＯ処理部１１２は、Ｓ７２２の処理として、ＩＯ処理部２１２が送付した第１乃至第Ｐデータ（Ｐは１以上）を受信したかについての判定を行う。
【０３３２】
ＩＯ処理部１１２は、Ｓ７２２の処理による判定結果がｙｅｓの場合は、Ｓ７２３の処理を行う。
【０３３３】
一方、ＩＯ処理部１１２は、Ｓ７２２の処理による判定結果がｎｏの場合は、Ｓ７２４の処理を行う。
【０３３４】
ＩＯ処理部１１２は、Ｓ７２４の処理を行う場合は、同処理として、直近の図１４に表すＳ１０１の処理においてｙｅｓの判定結果を導いてから、前述の時間Ｔが経過したかについての判定を行う。
【０３３５】
ＩＯ処理部１１２は、Ｓ７２４の処理による判定結果がｙｅｓの場合は、Ｓ７２５の処理を行う。
【０３３６】
一方、ＩＯ処理部１１２は、Ｓ７２４の処理による判定結果がｎｏの場合は、Ｓ７２２の処理を再度行う。
【０３３７】
ＩＯ処理部１１２は、Ｓ７２３の処理を行う場合は、同処理として、Ｒｅｓｐｏｎｓｅを、ＩＯ処理部２１２へ送付する。
【０３３８】
そして、ＩＯ処理部１１２は、図１４に表すＳ１０１の処理を再度行う。
【０３３９】
ＩＯ処理部１１２は、Ｓ７２５の処理を行う場合は、同処理として、図１４に表すＳ１０２の処理により指定したＩＯＩＤに係るＩＯ処理を中止する。
【０３４０】
図１７は、図１に表すストレージ装置２１０のＩＯ処理部２１２が行うＩＯ処理に係る処理の処理フロー例を表す概念図である。
【０３４１】
ＩＯ処理部２１２は、例えば、前述の制御部からの開始情報の入力により図１７に表す処理を開始する。
【０３４２】
そして、ＩＯ処理部２１２は、Ｓ４０１の処理として、ＩＯ処理部１１２より、Ｗｒｉｔｅコマンドを受信したかについての判定を行う。
【０３４３】
ＩＯ処理部２１２は、Ｓ４０１の処理による判定結果がｎｏの場合は、Ｓ４０２の処理を行う。
【０３４４】
一方、ＩＯ処理部２１２は、Ｓ４０１の処理による判定結果がｙｅｓの場合は、Ｓ４０１−２の処理を行う。
【０３４５】
ＩＯ処理部２１２は、Ｓ４０１−２の処理を行う場合は、同処理として、Ｓ４０１の処理により受信したことを判定したＷｒｉｔｅコマンドに含まれる前述の指定情報が、第一モードを指定しているかについての判定を行う。
【０３４６】
ＩＯ処理部２１２は、Ｓ４０１−２の処理による判定結果がｙｅｓの場合は、図１２に表すＳ５０１の処理を行う。
【０３４７】
一方、ＩＯ処理部２１２は、Ｓ４０１−２の処理による判定結果がｎｏの場合は、図１８に表すＳ８０１の処理を行う。
【０３４８】
ＩＯ処理部２１２は、Ｓ４０２の処理を行う場合は、同処理として、ＩＯ処理部１１２より、Ｒｅａｄコマンドを受信したかについての判定を行う。
【０３４９】
ＩＯ処理部２１２は、Ｓ４０２の処理による判定結果がｎｏの場合は、Ｓ４０３の処理を行う。
【０３５０】
一方、ＩＯ処理部２１２は、Ｓ４０２の処理による判定結果がｙｅｓの場合は、Ｓ４０２−２の処理を行う。
【０３５１】
ＩＯ処理部２１２は、Ｓ４０２−２の処理を行う場合は、同処理として、Ｓ４０２の処理により受信したことを判定したＲｅａｄコマンドに含まれる前述の指定情報が、第一モードを指定しているかについての判定を行う。
【０３５２】
ＩＯ処理部２１２は、Ｓ４０２−２の処理による判定結果がｙｅｓの場合は、図１３に表すＳ６０１の処理を行う。
【０３５３】
一方、ＩＯ処理部２１２は、Ｓ４０２−２の処理による判定結果がｎｏの場合は、図１９に表すＳ８２１の処理を行う。
【０３５４】
ＩＯ処理部２１２が、図１７に表すＳ４０１−２の処理によりｙｅｓの判定結果を導いた場合に行う図１２の処理の説明は、第一実施形態において述べた通りである。ただし、図１２に表すＳ５１５の処理の次に、図１１に表すＳ４０１に代えて、図１７に表すＳ４０１の処理を行う。
【０３５５】
ＩＯ処理部２１２が、図１７に表すＳ４０２−２の処理によりｙｅｓの判定結果を導いた場合に行う図１３の処理の説明は、第一実施形態において述べた通りである。ただし、図１３に表すＳ６１４の処理による判定結果がｙｅｓの場合に、図１１に表すＳ４０１に代えて、図１７に表すＳ４０１の処理を行う。
【０３５６】
図１８は、背景技術の項で述べた、ＩＯ処理部１１２が行う、ＦＣの規格に基づく一般的なデータ格納に係る処理の処理フロー例を表す概念図である。
【０３５７】
ＩＯ処理部２１２は、図１７に表すＳ４０１−２の処理による判定結果がｎｏの場合には、Ｓ８０１の処理として、ＩＯ処理部１１２が送付したＷｒｉｔｅコマンドに含まれるＩＯＩＤのＩＯ処理を開始する。
【０３５８】
そして、ＩＯ処理部２１２は、Ｓ８０２の処理として、ＸｆｅｒＲｅａｄｙを、ＩＯ処理部１１２へ送付する。
【０３５９】
そして、ＩＯ処理部２１２は、Ｓ８０３の処理として、第１乃至第Ｎデータをすべて受信したかについての判定を行う。
【０３６０】
ＩＯ処理部２１２は、Ｓ８０３の処理による判定結果がｙｅｓの場合は、Ｓ８０５の処理を行う。
【０３６１】
一方、ＩＯ処理部２１２は、Ｓ８０３の処理による判定結果がｎｏの場合は、Ｓ８０４の処理を行う。
【０３６２】
ＩＯ処理部２１２は、Ｓ８０４の処理を行う場合は、同処理として、図１７に表す直近のＳ４０１の処理においてｙｅｓの判定結果を導いてから、前述の時間Ｔが経過したかについての判定を行う。
【０３６３】
ＩＯ処理部２１２は、Ｓ８０４の処理による判定結果がｙｅｓの場合は、Ｓ８０６の処理を行う。
【０３６４】
一方、ＩＯ処理部２１２は、Ｓ８０４の処理による判定結果がｎｏの場合は、Ｓ８０３の処理を再度行う。
【０３６５】
ＩＯ処理部２１２は、Ｓ８０５の処理を行う場合は、同処理として、Ｒｅｓｐｏｎｓｅを、ＩＯ処理部１１２へ送付する。そして、ＩＯ処理部２１２は、図１７に表すＳ４０１の処理を行う。
【０３６６】
ＩＯ処理部２１２は、Ｓ８０６の処理を行う場合は、同処理として、Ｓ８０１の処理により開始したＩＯ処理を中止する。そして、ＩＯ処理部２１２は、Ｓ８０１の処理を再度行う。
【０３６７】
図１９は、背景技術の項で述べた、ＩＯ処理部１１２が行う、ＦＣの規格に基づく一般的なデータ読み込み処理の処理フロー例を表す概念図である。
【０３６８】
ＩＯ処理部２１２は、図１７に表すＳ４０２−２の処理による判定結果がｙｅｓの場合には、Ｓ８２１の処理として、図１７に表すＳ４０１の処理により受信したことを判定したＷｒｉｔｅコマンドに含まれるＩＯＩＤのＩＯ処理を開始する。
【０３６９】
そして、ＩＯ処理部２１２は、Ｓ８２２の処理として、第１乃至第Ｐデータを、ＩＯ処理部１１２へ送付する。
【０３７０】
そして、ＩＯ処理部２１２は、Ｓ８２３の処理として、Ｒｅｓｐｏｎｓｅを、ＩＯ処理部１１２へ送付する。
【０３７１】
そして、ＩＯ処理部２１２は、図１７に表すＳ４０１の処理を行う。
［効果］
第二実施形態のストレージシステムは、第一実施形態で説明したＦＣ回線を通じての情報の送受に係る受信の確認を、ＩＯ処理の遅延を回避すべきことが判定されたデータについてのみに行う。そのため、前記ストレージシステムは、ＩＯ処理遅延を低減すべきデータについてはＩＯ処理遅延を低減することを可能にする。そして、前記ストレージシステムは、ＩＯ処理遅延を低減する必要のないデータについては、ＦＣ回線により行われる一般的なＩＯ処理を行う。
【０３７２】
第一実施形態で説明したＩＯ処理は、ＦＣ回線を通じて送られるフレームについて、受信確認コマンドとそれに対する受信確認応答がＦＣ回線に送出される。そのため、第一実施形態で説明したＩＯ処理においては、一般的なＩＯ処理と比較して、ＦＣ回線を通過するフレームの数が増加する。
【０３７３】
ＦＣ回線を通過するフレーム数が過度に増加すると、当該増加を原因とするＩＯ処理の遅延が生じる危険性がある。
【０３７４】
前記通信システムは、ＦＣ回線を通過するフレーム数の増加によるＩＯ処理の遅延の危険性を緩和し得る。
【０３７５】
図２０は、実施形態の通信装置の最小限の構成である通信装置８０１ｘの構成を表す概念図である。
【０３７６】
通信装置８０１ｘは、送信元が送信した情報群に付与された識別情報を、前記送信元からファイバーチャネル回線を介して受信することがある。そのとき、通信装置８０１ｘは、前記受信の後に、前記識別情報により前記情報群の少なくとも一部を未受信であることを判定する場合がある。その場合、通信装置８０１ｘは、所定の送信情報を、前記ファイバーチャネル回線を介して、前記送信元に発信する。
【０３７７】
前記送信元と通信装置８０１ｘとは、前記情報群の送付について、前記識別情報とそれについての前記送信情報との送受信により、受信確認を行う。そのため、前記送信元は、前記送信情報を受信した場合に、ＩＯ処理のタイムアウトのために必要な待ち時間を待たずして、前記送付情報の一部が喪失したことを判定することができる。そして、前記情報の送受に関係するＩＯ処理を速やかに中止し、同等のＩＯ処理の再実行を行うことができる。
【０３７８】
そのため、通信装置８０１ｘは、発明が解決しようとする課題の項で説明した、ＩＯ処理のタイムアウトのために必要な待ち時間をなくし、ＩＯ処理の遅延を緩和することを可能にする。
【０３７９】
そのため、通信装置８０１ｘは、前記構成により、［発明の効果］の項に記載した効果を奏する。
【０３８０】
なお、図２０に表す通信装置８０１ｘは、例えば、図１に表すＩＯ処理部１１２を含む装置又はＩＯ処理部２１２を含む装置である。また、前記ファイバーチャネル回線は、例えば、図１に表すＦＣ回線３０１である。また、前記情報群は、例えば、実施形態で述べた、Ｗｒｉｔｅコマンド、Ｒｅａｄコマンド、ＸｆｅｒＲｅａｄｙ、Ｒｅｓｐｏｎｓｅ、第一乃至第Ｎでーた及び第一乃至第Ｐデータのうちの、１つ以上である。また、前記識別情報は、例えば、実施形態で述べた識別情報である。また、前記送付情報は、例えば、実施形態で述べた、第一乃至第六受信確認応答である。
【０３８１】
以上、本発明の各実施形態を説明したが、本発明は、前記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で更なる変形、置換、調整を加えることができる。例えば、各図面に示した要素の構成は、本発明の理解を助けるための一例であり、これらの図面に示した構成に限定されるものではない。
【０３８２】
また、前記の実施形態の一部又は全部は、以下の付記のようにも記述され得るが、以下には限られない。
（付記１）
送信元が送信した情報群に付与された識別情報を、前記送信元からファイバーチャネル回線を介して受信した後に、前記識別情報により前記情報群の少なくとも一部を未受信であることを判定した場合に、所定の送信情報を、前記ファイバーチャネル回線を介して、前記送信元に発信する、通信装置。
（付記２）
前記送信情報は、前記識別情報への第一の応答である、付記１に記載された通信装置。
（付記３）
前記送信情報が、前記未受信を表す情報を含む、付記１又は付記２に記載された通信装置。
（付記４）
前記情報群のすべてについて既受信を判定した場合に、第二送信情報の前記発信を行う、付記１乃至付記３のうちのいずれか一に記載された通信装置。
（付記５）
前記第二送信情報は、前記識別情報への第二の応答である、付記４に記載された通信装置。
（付記６）
前記第二送信情報は、前記既受信を表す情報を含む、付記４又は付記５に記載された通信装置。
（付記７）
前記発信が実行されない場合がある、付記１乃至付記５のうちのいずれか一に記載された通信装置。
（付記８）
前記情報群が、一個以上のデータフレームからなるデータフレーム群である、付記１乃至付記７のうちのいずれか一に記載された通信装置。
（付記９）
前記情報群が、ファイバーチャネルの規格に基づく、Ｗｒｉｔｅコマンド、Ｒｅａｄコマンド、ＸｆｅｒＲｅａｄｙ及びＲｅｓｐｏｎｓｅのうちのいずれか一つである、付記１乃至付記８のうちのいずれか一に記載された通信装置。
（付記１０）
前記情報群が、入出力処理対象データからなるデータ群を含む、付記１乃至付記９のうちのいずれか一に記載された通信装置。
（付記１１）
前記情報群が、ファイバーチャネルの規格に基づく、Ｗｒｉｔｅコマンド、Ｒｅａｄコマンド、ＸｆｅｒＲｅａｄｙ及びＲｅｓｐｏｎｓｅのうちの少なくともいずれか一つを含む、付記１乃至付記９のうちのいずれか一に記載された通信装置。
（付記１２）
サーバに含まれる、付記１乃至付記１１のうちのいずれか一に記載された通信装置。
（付記１３）
ストレージ装置に含まれる、付記１乃至付記１１のうちのいずれか一に記載された通信装置。
（付記１４）
付記１乃至付記１３のうちのいずれか一に記載された通信装置と、前記送信元とを備える、通信システム。
（付記１５）
前記通信装置と前記送信元とが、互いに、所定のデータに係る前記ファイバーチャネル回線を通じた入出力処理を行う、付記１４に記載された通信システム。
（付記１６）
前記発信が行われない前記入出力処理に係るモードである第二のモードがある、付記１５に記載された通信システム。
（付記１７）
前記送信元は、前記第二のモードとするかについての判定を、前記データにより行う、付記１６に記載された通信システム。
（付記１８）
前記送信元は、前記発信が行われる前記モードである第一のモードに係る前記入出力処理について、当該入出力処理を表す第二識別情報と、当該第一のモードである旨を表す指定情報とを前記通信装置に送る、付記１６又は付記１７に記載された通信システム。
（付記１９）
前記指定情報が、ファイバーチャネルの規格に基づくＷｒｉｔｅコマンド及びＲｅａｄコマンドのうちの少なくともいずれかに含まれる、付記１８に記載された通信システム。
（付記２０）
前記指定情報が、前記データを格納する前記通信装置の部分を表す領域情報により表される、付記１８又は付記１９に記載された通信システム。
（付記２１）
前記領域情報が、前記通信装置が備える記録部のアドレス範囲で表される、付記２０に記載された通信システム。
（付記２２）
前記送信元が、サーバに含まれる、付記１４乃至付記２１のうちのいずれか一に記載された通信システム。
（付記２３）
前記通信装置が、ストレージ装置に含まれる、付記１４乃至付記２２のうちのいずれか一に記載された通信システム。
（付記２４）
送信元が送信した情報群に付与された識別情報を、前記送信元からファイバーチャネル回線を介して受信した後に、前記識別情報により前記情報群の少なくとも一部を未受信であることを判定した場合に、所定の送信情報を、前記ファイバーチャネル回線を介して、前記送信元に発信する、通信方法。
（付記２５）
送信元が送信した情報群に付与された識別情報を、前記送信元からファイバーチャネル回線を介して受信した後に、前記識別情報により前記情報群の少なくとも一部を未受信であることを判定した場合に、所定の送信情報を、前記ファイバーチャネル回線を介して、前記送信元に発信する、処理をコンピュータに実行させる通信プログラム。
【符号の説明】
【０３８３】
１１０    サーバ
１１２、２１２    ＩＯ処理部
１１３    記録部
２１０    ストレージ装置
２１３    メモリ
２１６    制御部
２１４    ストレージ部
３０１    ＦＣ回線
４０１    ストレージシステム
８０１ｘ    通信装置
【図１】
2019153864.tif 000003
【図２】
2019153864.tif 000004
【図３】
2019153864.tif 000005
【図４】
2019153864.tif 000006
【図５】
2019153864.tif 000007
【図６】
2019153864.tif 000008
【図７】
2019153864.tif 000009
【図８】
2019153864.tif 000010
【図９】
2019153864.tif 000011
【図１０】
2019153864.tif 000012
【図１１】
2019153864.tif 000013
【図１２】
2019153864.tif 000014
【図１３】
2019153864.tif 000015
【図１４】
2019153864.tif 000016
【図１５】
2019153864.tif 000017
【図１６】
2019153864.tif 000018
【図１７】
2019153864.tif 000019
【図１８】
2019153864.tif 000020
【図１９】
2019153864.tif 000021
【図２０】
2019153864.tif 000022