(57)【要約】【課題】ストレージシステムの処理性能を向上させつつ、信頼性を保証するストレージシステムを提供することである。【解決手段】ホスト計算機に接続され、ホスト計算機と通信可能であって、ホスト計算機から書き込みを要求されたデータを格納するディスク装置を制御するディスク制御装置と、を備えるストレージシステムにおいて、ホストインタフェース部又はディスクインタフェース部からメモリ部にデータを送信する場合に、送信元から格納することを要求されたデータが送信先に格納されると、送信先は送信先に応答を返す第１モードで通信することを特徴とするストレージシステム。【選択図】図７
2010092336.tif 000002
【特許請求の範囲】
【請求項１】
ホスト計算機と、
前記ホスト計算機に接続され、前記ホスト計算機と通信可能であって、前記ホスト計算機から書き込みを要求されたデータを格納するディスク装置を制御するディスク制御装置と、を備えるストレージシステムにおいて、
前記ディスク制御装置は、
前記ホスト計算機に接続されるホストインタフェース部と、
前記ディスク装置に接続されるディスクインタフェース部と、
前記ホスト計算機との間で通信されるデータを一時的に格納するメモリ領域、及び前記ストレージシステムの制御データを格納する領域を含むメモリ部と、
演算処理をするプロセッサ、及び前記プロセッサが実行するプログラムを格納する領域を備えるプロセッサ部と、を備え、
前記ストレージシステムは、前記ホストインタフェース部又は前記ディスクインタフェース部から前記メモリ部にデータを送信する場合に、送信元から格納することを要求されたデータが送信先に格納されると、前記送信先は前記送信先に応答を返す第１モードで通信することを特徴とするストレージシステム。
【請求項２】
前記プロセッサ部から前記メモリ部のメモリ領域にデータを送信する場合に、送信元が送信先に格納されるデータに通し番号を付与し、前記送信先が管理する通し番号と前記データに付与された通し番号とが一致しなければ、前記送信先はエラー応答を前記送信元に返す第２モードで通信することを特徴とする請求項１に記載のストレージシステム。
【請求項３】
前記第２モードでは、前記送信先が管理する通し番号と前記データに付与された通し番号とが一致しない場合に、前記送信元及び前記送信先は、それぞれが管理する通し番号をリセットすることを特徴とする請求項２に記載のストレージシステム。
【請求項４】
前記プロセッサ部が、前記ホストインタフェース部、前記ディスクインタフェース部、及び前記メモリ部を動作可能とするための設定に関する指示を送信するために、前記ホストインタフェース部、前記ディスクインタフェース部、及び前記メモリ部と通信する場合には、送信先が送信元からのデータを格納しても、前記応答を前記送信元に返さない第３モードで通信することを特徴とする請求項１に記載のストレージシステム。
【請求項５】
前記プロセッサ部は、
前記ホストインタフェース部又は前記ディスクインタフェース部から前記メモリ部への通信モードを前記第１モードに決定し、
前記ホストインタフェース部又は前記ディスクインタフェース部に決定された通信モードを指示することを特徴とする請求項１に記載のストレージシステム。
【請求項６】
前記ホストインタフェース部又は前記ディスクインタフェース部は、前記ホストインタフェース部又は前記ディスクインタフェース部から前記メモリ部への通信モードを前記第１モードに決定することを特徴とする請求項１に記載のストレージシステム。
【請求項７】
前記ホストインタフェース部、前記ディスクインタフェース部、前記メモリ部、及び前記プロセッサ部は、スイッチを含むネットワークを介して接続され、
前記スイッチは、前記プロセッサ部から前記メモリ部のメモリ領域への通信を、前記第２モードに決定することを特徴とする請求項２に記載のストレージシステム。
【請求項８】
ホスト計算機と、
前記ホスト計算機に接続され、前記ホスト計算機と通信可能であって、前記ホスト計算機から書き込みを要求されたデータを格納するディスク装置を制御するディスク制御装置と、を備えるストレージシステムにおけるディスク制御装置に備わる各構成部間の通信方法において、
前記ディスク制御装置は、
前記ホスト計算機に接続されるホストインタフェース部と、
前記ディスク装置に接続されるディスクインタフェース部と、
前記ホスト計算機との間で通信されるデータを一時的に格納するメモリ領域、及び前記ストレージシステムの制御データを格納する領域を含むメモリ部と、
演算処理をするプロセッサ、及び前記プロセッサが実行するプログラムを格納する領域を備えるプロセッサ部と、を備え、
前記通信方法は、
前記ストレージシステムは、前記ホストインタフェース部又は前記ディスクインタフェース部から前記メモリ部にデータを送信する場合に、送信元から格納することを要求されたデータが送信先に格納されると、前記送信先は前記送信先に応答を返す第１モードで通信することを決定する第１ステップと、
前記ホストインタフェース部又は前記ディスクインタフェース部から前記メモリ部にデータを前記決定された第１モードで送信するステップと、を含むことを特徴とする通信方法。
【請求項９】
前記通信方法は、
前記プロセッサ部から前記メモリ部にデータを送信する場合に、送信元が送信先に格納されるデータに通し番号を付与し、前記送信先が管理する通し番号と前記データに付与された通し番号とが一致しなければ、前記送信先はエラー応答を前記送信元に返す第２モードで通信することを決定する第２ステップと、
前記プロセッサ部から前記メモリ部にデータを前記決定された第２モードで送信するステップと、を含むことを特徴とする請求項８に記載の通信方法。
【請求項１０】
前記通信方法は、前記第２モードでは、前記送信先が管理する通し番号と前記データに付与された通し番号とが一致しない場合に、前記送信元及び前記送信先は、それぞれが管理する通し番号をリセットするステップを含むことを特徴とする請求項９に記載の通信方法。
【請求項１１】
前記通信方法は、
前記プロセッサ部が、前記ホストインタフェース部、前記ディスクインタフェース部、及び前記メモリ部を動作可能とするための設定に関する指示を送信するために、前記ホストインタフェース部、前記ディスクインタフェース部、及び前記メモリ部と通信する場合には、送信先が送信元からのデータを格納しても、前記応答を前記送信元に返さない第３モードで通信することを決定するステップと、
前記プロセッサ部から前記ホストインタフェース部、前記ディスクインタフェース部、及び前記メモリ部にデータを前記決定された第３モードで送信するステップと、を含むことを特徴とする請求項８に記載の通信方法。
【請求項１２】
前記第１ステップは、
前記プロセッサ部によって前記第１モードに決定され、
前記プロセッサ部は、通信モードが前記第１モードに決定されたことを前記ホストインタフェース部又は前記ディスクインタフェース部に指示するステップを含むことを特徴とする請求項８に記載の通信方法。
【請求項１３】
前記第１ステップは、前記ホストインタフェース部又は前記ディスクインタフェース部によって前記第１モードに決定されることを特徴とする請求項８に記載の通信方法。
【請求項１４】
前記ホストインタフェース部、前記ディスクインタフェース部、前記メモリ部、及び前記プロセッサ部は、スイッチを含むネットワークを介して接続され、
前記第２ステップは、
前記スイッチによって前記第２モードに決定されることを特徴とする請求項９に記載の通信方法。
【請求項１５】
ホスト計算機と、
前記ホスト計算機に接続され、前記ホスト計算機と通信可能であって、前記ホスト計算機から書き込みを要求されたデータを格納するディスク装置を制御するディスク制御装置と、を備えるストレージシステムにおいて、
前記ディスク制御装置は、
前記ホスト計算機に接続されるホストインタフェース部と、
前記ディスク装置に接続されるディスクインタフェース部と、
前記ホスト計算機との間で通信されるデータを一時的に格納するメモリ領域、及び前記ストレージシステムの制御データを格納する領域を含むメモリ部と、
演算処理をするプロセッサ、及び前記プロセッサが実行するプログラムを格納する領域を備えるプロセッサ部と、を備え、
前記ホストインタフェース部又は前記ディスクインタフェース部から前記メモリ部にデータを送信する場合に、前記ホストインタフェース部又は前記ディスクインタフェース部は、送信元から格納することを要求されたデータが送信先に格納されると、前記送信先は前記送信先に応答を返す第１モードで通信することを決定し、
前記プロセッサ部から前記メモリ部のメモリ領域にデータを送信する場合に、送信元が送信先に格納されるデータに通し番号を付与し、前記送信先が管理する通し番号と前記データに付与された通し番号とが一致しなければ、前記送信先はエラー応答を前記送信元に返し、前記送信先が管理する通し番号と前記データに付与された通し番号とが一致しない場合に、前記送信元及び前記送信先は、それぞれが管理する通し番号をリセットする第２モードで通信することを特徴とするストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホスト計算機と、ホスト計算機から書き込みを要求されたデータを格納するディスク装置を制御するディスク制御装置と、を備えるストレージシステムにおいて、ディスク制御装置内の内部ネットワーク上の通信モードを制御するストレージシステムに関する。
【背景技術】
【０００２】
近年、プロセッサの処理性能が向上したこと、及びデータ伝送技術が進歩したことによって、ストレージシステムの処理性能の更なる向上が要求されている。従来のストレージシステムでは、ディスク装置を制御するディスク制御装置の各構成部を接続する内部ネットワークの通信方式として、コネクション通信を採用している（特許文献１参照）。
【０００３】
しかし、コネクション通信では、コネクションの確立及びコネクションの解放等に時間を要するため、ストレージシステムの処理性能を向上させる点において限界に近づいている。
【０００４】
ストレージシステムの処理性能を向上させる要求が高まる中で、従来のコネクション通信に代わる通信方式が必要不可欠であり、ストレージシステムの処理性能を向上させるために、ディスク制御装置の内部ネットワークの通信方式として、コネクションレス通信の採用したストレージシステムが知られている（特許文献１参照）。
【特許文献１】特開平１１-１７５２６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載のストレージシステムでは、ディスク制御装置の内部ネットワークの通信方式として、コネクション通信及びコネクションレス通信を併用している。
【０００６】
しかしながら、特許文献１に記載のストレージシステムでは、ディスク制御装置の構成部がコネクションレス通信で通信している場合、信頼性を低下させてしまう。具体的に以下に説明する。
【０００７】
コネクション通信方式では、送信元は送信先とコネクションを予め確立してからデータを送信するため、コネクションの確立及び解放等の処理がストレージシステムの処理性能を低下させてしまう。
【０００８】
例えば、種類及び性質が異なる複数のデータ群をコネクション通信で送信する場合について説明する。送信元が容量の大きい第１データを送信した後に容量の小さい第２データを送信する場合、送信元は、第１データを送信するためのコネクションを送信先と確立してから第１データを送信する。そして、第１データの送信が終了してから第２データの送信を開始する。
【０００９】
この場合、第２データを送信する処理は第１データの送信にかかった時間だけ待機している。このため、レスポンス時間が長くなり、ストレージシステムの処理性能は低下してしまう。
【００１０】
また、送信元と送信先との間でコネクションが確立している間、コネクションが確立している送信先は、確立しているコネクションが解放されるまで他の送信元と通信できない。これによって、送信元は、コネクションが確立している送信先に確実にデータを送信できる。
【００１１】
つまり、コネクション通信は、ストレージシステムの処理性能を低下させてしまうが、信頼性を向上させることができる。
【００１２】
一方、コネクションレス通信は、コネクションを確立せずにデータを送信するので、ストレージシステムの処理性能を向上させることができるが、信頼性を低下させてしまう。
【００１３】
コネクションレス通信では、一つの送信先が複数の送信元から同時に通信要求を受け付けると、送信先は通信要求を受け付けた複数の送信元と通信しなければならない。
【００１４】
この場合に、送信元と送信先との間の通信経路上でアクセス競合が発生している場合、この通信経路上に存在するスイッチが誤って設定されていた場合、又はハードウェアが故障した場合、本来の送信先とは異なる送信先に通信要求が送信されてしまう恐れがある。
【００１５】
この誤送信を防止するために、送信元は、送信先からの応答を受信してから、受信した応答によってデータの順序性を確かめながらデータを送信する通信方法、送信先がデータを格納した場合に応答を送信元に送信し、データが正しく格納された確認する通信方法が考えられる。しかしながら、これらの通信方法は、送信元は送信先から応答を受信するまでの間、処理を待機させるので、ストレージシステムの処理性能を低下させてしまう。
【００１６】
本発明の目的は、ストレージシステムの処理性能を向上させつつ、信頼性を保証するストレージシステムを提供することである。
【課題を解決するための手段】
【００１７】
本発明の代表的な一例を示せば、以下の通りである。ホスト計算機と、前記ホスト計算機に接続され、前記ホスト計算機と通信可能であって、前記ホスト計算機から書き込みを要求されたデータを格納するディスク装置を制御するディスク制御装置と、を備えるストレージシステムにおいて、前記ディスク制御装置は、前記ホスト計算機に接続されるホストインタフェース部と、前記ディスク装置に接続されるディスクインタフェース部と、前記ホスト計算機との間で通信されるデータを一時的に格納するメモリ領域、及び前記ストレージシステムの制御データを格納する領域を含むメモリ部と、演算処理をするプロセッサ、及び前記プロセッサが実行するプログラムを格納する領域を備えるプロセッサ部と、を備え、前記ストレージシステムは、前記ホストインタフェース部又は前記ディスクインタフェース部から前記メモリ部にデータを送信する場合に、送信元から格納することを要求されたデータが送信先に格納されると、前記送信先は前記送信先に応答を返す第１モードで通信することを特徴とする。
【発明の効果】
【００１８】
本発明の一実施態様によれば、ストレージシステムの処理性能を向上させつつ、信頼性も保証できる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施形態のストレージシステムを図１〜図１５を用いて説明する。
【００２０】
（第１実施形態）
本発明の第１実施形態のストレージシステムを図１〜図１２を用いて説明する。
【００２１】
図１は、本発明の第１実施形態のストレージシステムの構成を示すブロック図である。
【００２２】
ストレージシステムは、ホスト計算機１００、ホスト計算機１００に接続されたディスク制御装置１１０、及びディスク制御装置１１０に接続されたディスク装置１０５を備える。
【００２３】
一般に、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）では、ホスト計算機１００とディスク制御装置１１０とは、図示しないスイッチ等によって構成されるネットワークを介して、ファイバチャネル又はイーサネット（登録商標）等によって接続される。
【００２４】
ホスト計算機１００は、ディスク制御装置１１０にデータの書き込み要求又は読み出し要求を送信する。
【００２５】
ディスク制御装置１１０は、ホスト計算機１００から書き込み要求を受信した場合、書き込みが要求されたデータをメモリ部１３０に格納した後に、書き込みが要求されたデータをディスク装置１０５に書き込む。
【００２６】
一方、ディスク制御装置１１０は、ホスト計算機１００から読み出し要求を受信した場合、読み出しが要求されたデータをディスク装置１０５から読み出し、読み出されたデータをメモリ部１３０に格納した後に、読み出されたデータをホスト計算機１００に送信する。
【００２７】
ディスク制御装置１１０は、ホストＩＦ（Ｉｎｔｅｒｆａｃｅ）部１１５、ディスクＩＦ（Ｉｎｔｅｒｆａｃｅ）部１２０、ネットワーク部１２５、メモリ部１３０、及びプロセッサ部１３５を備える。
【００２８】
ホストＩＦ部１１５は、ホスト計算機１００に接続されるインタフェースを備える。ホストＩＦ部１１５は、ホスト計算機１００から受信したパケットに対してプロトコル処理を施す。具体的には、ホストＩＦ部１１５は、プロトコル処理を実行することによって、受信したパケットのディスク装置１０５における格納場所、受信したパケットの容量、及び受信したパケットに含まれるコマンドを特定し、また、受信したパケットをディスク装置１０５に格納可能なデータの形に変換する。
【００２９】
なお、ディスク制御装置１１０からホスト計算機１００にデータを送信する場合には、ホストＩＦ部１１５は、ホスト計算機１００から受信したコマンドから得られる格納場所又はキャッシュメモリのディレクトリ情報等に基づいて、当該データの存在場所がメモリ部１３０かディスク装置１０５かを判定する。当該データがメモリ部１３０に存在する場合、プロセッサ部１３５の指示により、ホストＩＦ部１１５は、メモリ部１３０からデータを読み出し、読み出されたデータにプロトコル処理を施す。
【００３０】
具体的には、ホストＩＦ部１１５は、ディスク制御装置１１０とホスト計算機１００との間の通信プロトコルに基づいて、送信先となるホスト計算機１００の識別データ、送信先となるホスト計算機１００へのコマンドに関連する制御データ等を読み出されたデータに付加し、ホスト計算機１００に送信可能なパケットを生成する。
【００３１】
当該データがディスク装置１０５に存在する場合、プロセッサ部１３５の指示により、ディスクＩＦ部１２０は、ディスク装置１０５から当該データを読み出し、メモリ部１３０の所定の領域に格納する。当該データがディスク装置１０５に存在する場合の以降の処理は、当該データがメモリ部１３０に存在する場合と同じである。
【００３２】
ディスクＩＦ部１２０は、ディスク装置１０５に接続されるインタフェースを備える。ディスクＩＦ部１２０は、ホストＩＦ部１１５と同じ機能を備える。具体的な例を示すと、ディスクＩＦ部１２０は、ディスク装置１０５から受信したパケットに対してプロトコル処理を施す。また、ディスクＩＦ部１２０は、ディスク装置１０５に格納可能な形にパケットを変換する。
【００３３】
ネットワーク部１２５は、ディスク制御装置１１０の各構成部（ホストＩＦ部１１５、ディスクＩＦ部１２０、メモリ部１３０、及びプロセッサ部１３５）を接続し、各構成部の通信を中継する。
【００３４】
メモリ部１３０は、ホスト計算機１００との間で通信されるデータを一時的に格納するキャッシュメモリ領域、及びストレージシステムの制御データ、構成データ、及びディレクトリデータ等を格納するシステム領域を備える。
【００３５】
プロセッサ部１３５は、ホストＩＦ部１１５及びディスクＩＦ部１２０等のディスク制御装置１１０の内部の各構成要素を制御する。例えば、ホストＩＦ部１１５及びディスクＩＦ部１２０のパラメータを設定する。また、プロセッサ部１３５は、ストレージシステムの障害を監視し、障害を検出した場合には障害に対応する処理を実行する。
【００３６】
ホストＩＦ部１１５の詳細を説明する。
【００３７】
ホストＩＦ部１１５は、モード管理部１４０、パケット送信処理部１４２、シーケンス番号付加部１４４、シーケンス番号確認部１４６、図示しないデータ転送制御部、及び図示しないバッファメモリを含む。
【００３８】
モード管理部１４０は、ホストＩＦ部１１５がデータを送信する場合に、どの通信モードでデータを送信するかを管理する。なお、通信モードについては、図２〜図５で詳細を説明する。パケット送信処理部１４２は、モード管理部１４０で管理している通信モードでパケットを送信する。
【００３９】
シーケンス番号付加部１４４は、パケット送信処理部１４２によって送信されるパケットにシーケンス番号を付加する。シーケンス番号確認部１４６は、ホストＩＦ部１１５が受信したパケットに付加されたシーケンス番号と、ホストＩＦ部１１５が管理するシーケンス番号とが一致するか否かを判定する。
【００４０】
データ転送制御部は、ホスト計算機１００から書き込み要求されたデータをメモリ部１３０に転送する、又は、ホスト計算機１００から読み出し要求があったデータをメモリ部１３０から読み出す。バッファメモリは、ホストＩＦ部１１５が受信したパケットを一時的に格納する。
【００４１】
次に、ディスクＩＦ部１２０の詳細を説明する。
【００４２】
ディスクＩＦ部１２０は、モード管理部１４８、パケット送信処理部１５０、シーケンス番号付加部１５２、シーケンス番号確認部１５４、図示しないデータ転送制御部、及び図示しないバッファメモリを含む。なお、ディスクＩＦ部１２０のモード管理部１４８、パケット送信処理部１５０、シーケンス番号付加部１５２、シーケンス番号確認部１５４、データ転送制御部、及びバッファメモリは、ホストＩＦ部１１５のモード管理部１４０、パケット送信処理部１４２、シーケンス番号付加部１４４、シーケンス番号確認部１４６、データ転送制御部、及びバッファメモリと同じなので、説明を省略する。
【００４３】
次に、メモリ部１３０について説明する。
【００４４】
メモリ部１３０は、シーケンス番号確認部１５６、パケット受信処理部１５８、及びモード管理部１６０、図示しないデータ転送制御部、メモリモジュール、メモリコントローラを含む。
【００４５】
シーケンス番号確認部１５６は、プロセッサ部１３５から受信するパケットに付加されたシーケンス番号と、メモリ部１３０が管理するシーケンス番号とが一致するか否かを判定する。
【００４６】
パケット受信処理部１５８は、ホストＩＦ部１１５、ディスクＩＦ部１２０、及びプロセッサ部１３５から受信したパケットに対してプロトコル処理を施す。モード管理部１６０は、ホストＩＦ部１１５のモード管理部１４０及びディスクＩＦ部１２０と同じなので、説明を省略する。
【００４７】
メモリモジュールは、ホスト計算機１００から送信されたデータを格納するメモリ領域を備える。また、メモリコントローラは、メモリモジュールに対する入出力を制御する。
【００４８】
なお、メモリ部１３０は、シーケンス番号付加部を備えなくてもよい。メモリ部１３０が送信元となって送信するパケットは、ホストＩＦ部１１５、ディスクＩＦ部１２０、及びプロセッサ部１３５からの要求に対応する応答パケットのみである。ホストＩＦ部１１５、ディスクＩＦ部１２０、及びプロセッサ部１３５は、応答パケットを受信した場合に、受信した応答パケットがどの要求に対応する応答であるかを特定できるので、メモリ部１３０が送信する応答パケットの順序が変わっても問題が生じないので、メモリ部１３０は、シーケンス番号付加部を備えなくてもよい。
【００４９】
次に、プロセッサ部１３５の詳細を説明する。
【００５０】
プロセッサ部１３５は、モード決定部１６２、パケット送信処理部１６４、シーケンス番号付加部１６６、モード管理テーブル１６８、シーケンス番号確認部１７０、図示しないプロセッサ、及び図示しない内部メモリを含む。
【００５１】
パケット送信処理部１６４、シーケンス番号付加部１６６、及びシーケンス番号確認部１７０は、ホストＩＦ部１１５のパケット送信処理部１４２、シーケンス番号付加部１４４、及びシーケンス番号確認部１４６と同じなので、説明を省略する。
【００５２】
モード決定部１６２は、ディスク制御装置１１０の各構成部がどの通信モードで通信するかを決定するモード決定処理を実行する。なお、モード決定処理については、図７で詳細を説明する。
【００５３】
モード管理テーブル１６８は、モード決定部１６２が通信モードを決定するために用いるテーブルである。なお、モード管理テーブル１６８は、図６で詳細を説明する。
【００５４】
プロセッサは、各種プログラムを実行し、ディスク制御装置１１０の各構成部を制御する。内部メモリには、ディスク制御装置１１０の各構成部を制御するための制御プログラム、モード決定処理を実行するためのプログラム、制御プログラムを実行するために必要な制御データ、及びメモリ部１３０のディレクトリデータが格納される。
【００５５】
次に、通信モードを図２〜図５を用いて説明する。
【００５６】
図２は、本発明の第１実施形態の応答なしアクセスモード（第１モード）での通信を示すシーケンス図である。
【００５７】
応答なしアクセスモードとは、送信元２００が要求を送信先２１０に送信し、送信先２１０は要求を処理した後に、送信元２００に応答を返さない通信モードである。
【００５８】
具体的には、送信元２００は、コマンド２３０（要求）及びデータ２４０を含むパケット２２０を送信先２１０に送信する。送信先２１０は、パケット２２０を受信した場合に、受信したパケット２２０を解析して、コマンド２３０によって指示された要求を特定する。そして、送信先２１０は、特定された要求に対応する処理を実行し、送信元２００によって送信された次のパケット２２０を受信する。そして、送信先２１０は、受信したパケット２２０を解析する。
【００５９】
応答なしアクセスモードでは、送信元２００は、送信先２１０からの要求に対応する処理の実行が完了したことを示す応答を待たずに、次のパケット２２０を送信できるので、どの通信モードよりもレスポンス時間が速くなる。
【００６０】
しかし、送信先２１０が要求に対応する処理を実行できなかった場合（つまり、何らかの障害が発生した場合）、送信元２００は、発生した障害をすぐに検出できない。
【００６１】
送信元２００がすぐに障害を検出できなくても、送信元２００が障害を検出した場合に、送信元２００のプロセッサ等が当該障害をリカバリすることができる。
【００６２】
応答なしアクセスモードは、例えば、ホストＩＦ部１１５又はディスクＩＦ部１２０の初期設定に用いられる。
【００６３】
図３は、本発明の第１実施形態の応答ありアクセスモード（第２モード）での通信を示すシーケンス図である。
【００６４】
応答ありアクセスモードとは、送信元３００が要求を送信先３１０に送信し、送信先３１０は要求を処理した後に、送信元３００に応答を返す通信モードである。
【００６５】
具体的には、送信元３００は、コマンド３３０（要求）及びデータ３４０を含むパケット３２０を送信先３１０に送信する。送信先３１０は、パケット３２０を受信した場合に、受信したパケット３２０を解析して、コマンド２３０によって指示された要求を特定する。そして、送信先３１０は、特定された要求に対応する処理を実行し、この特定された要求に対応する処理が完了すると、応答パケット３５０を送信元３００に送信する。
【００６６】
応答ありアクセスモードでは、送信元３００は、送信先３１０が要求に対応する処理を正常にしたか否かを、送信先３１０によって送信される応答パケット３５０によって判定できる。送信元３００は、応答パケット３５０を受信した場合、受信した応答パケット３５０の内容が正常を示す場合には、送信先３１０が要求に対応する処理を完了したと判定し、受信した応答パケット３５０の内容が異常を示す場合、又は応答パケット３５０を受信しない場合には、送信先３１０が要求に対応する処理の実行中に異常が発生したと判定する。
【００６７】
したがって、応答ありアクセスモードは、高い信頼性が要求される通信に用いられることが望ましい。例えば、応答ありアクセスモードは、ホスト計算機１００から受信したデータがメモリ部１３０のメモリ領域に格納される場合のホストＩＦ部１１５とメモリ部１３０との間の通信に用いられる。
【００６８】
ホスト計算機１００は、ディスク制御装置１１０に基本的に一度しかデータを送信しないので、ディスク制御装置１１０がホスト計算機１００から受信したデータをメモリ部１３０に格納する処理で異常が発生して、当該データを消失した場合には、ディスク制御装置１１０がリカバリできなくなる可能性がある。このため、ホストＩＦ部１１５は、メモリ部１３０にデータが確実に格納されたことを確認しながら、データを送信しなければならない。したがって、ホスト計算機１００から受信したデータがメモリ部１３０のメモリ領域に格納される場合のホストＩＦ部１１５とメモリ部１３０との間の通信に応答ありアクセスモードを用いると、ホストＩＦ部１１５は、メモリ部１３０からの応答パケット３５０を受信することによって、メモリ部１３０にデータが格納されたことを確認しながら、データを送信できる。
【００６９】
図４は、本発明の第１実施形態のシーケンス番号付きアクセスモード（第３モード）での通信を示すシーケンス図である。
【００７０】
シーケンス番号付きアクセスモードとは、送信元４００が送信先４１０にパケット４２０を送信する場合に、通し番号であるシーケンス番号４５０をパケット４２０に付加する通信モードである。
【００７１】
送信元４００では、パケット４２０に付加されるシーケンス番号４６０が初期状態では「０」に設定されている。また、送信先４１０は、パケット４２０に付加されたシーケンス番号４５０と比較するためのシーケンス番号４７０を管理し、このシーケンス番号４７０は、初期状態では「０」に設定されている。
【００７２】
まず、送信元４００は、コマンド４３０、データ４４０、及びシーケンス番号４５０を含むパケット４２０を送信先４１０に送信する。なお、最初に送信されたパケット４２０に含まれるシーケンス番号４５０は「０」である。
【００７３】
送信先４１０は、パケット４２０を受信した場合、受信したパケット４２０に含まれるシーケンス番号４５０と、送信先４１０が管理するシーケンス番号４７０とが一致しているか否かを判定する。
【００７４】
受信したパケット４２０に含まれるシーケンス番号４５０と、送信先４１０が管理するシーケンス番号４７０とが一致していると判定された場合、送信先４１０は、受信したパケット４２０に含まれるコマンド４３０を解析して、コマンド４３０に対応する処理を実行する。
【００７５】
一方、受信したパケット４２０に含まれるシーケンス番号４５０と、送信先４１０が管理するシーケンス番号４７０とが一致していないと判定された場合、送信先４１０は、正しく受信していないパケット４２０が存在することを検出する。送信元４００は、所定時間経過しても、送信先４１０が処理を完了したことの通知を受信できないため、送信先４１０でシーケンス番号が一致していない異常が発生していないことを検出する。
【００７６】
シーケンス番号付きアクセスモードでは、ネットワーク部１２５でのルーティングミス、又はネットワーク部１２５の設定ミス等によって、本来送信されるべき送信先４１０でない送信先にパケット４２０が送信されたことを、送信先４１０が検出できる。シーケンス番号付きアクセスモードは、例えば、ホストＩＦ部１１５がホスト計算機１００から受信したデータをメモリ部１３０に書き込む場合のホストＩＦ部１１５とメモリ部１３０との間の通信に用いられる。
【００７７】
図５は、本発明の第１実施形態のシーケンス番号付き確定アクセスモード（第４モード）での通信を示すシーケンス図である。なお、図５に示す構成のうち図４と同じ構成は、同じ番号を付与し、説明を省略する。
【００７８】
シーケンス番号付き確定アクセスモードとは、図４に示すシーケンス番号付きアクセスモードで、送信先４１０が、受信したパケット４２０に含まれるシーケンス番号と、送信先４１０が管理するシーケンス番号とが一致しない場合に、異常が発生したことを示す応答パケット５００を送信元４００に返し、送信元４００は、応答パケット５００を受信した場合、シーケンス番号４６０をリセットし、送信先４１０が管理するシーケンス番号４７０をリセットするコマンドパケット５１０を送信する通信モードである。
【００７９】
具体的には、送信先４１０は、シーケンス番号４５０が「０」であるパケット４２０を送信先４１０に送信する。送信先４１０は、パケット４２０を受信した場合、受信したパケット４２０に含まれるシーケンス番号４５０と、送信先４１０が管理するシーケンス番号４７０とが一致するか否かを判定する。この場合、受信したパケット４２０に含まれるシーケンス番号４５０が「０」であり、送信先４１０が管理するシーケンス番号４７０が「０」であるので、受信したパケット４２０に含まれるシーケンス番号４５０と、送信先４１０が管理するシーケンス番号４７０とは一致する。よって、送信先４１０は、受信したパケット４２０のコマンド４３０が示す要求に対応する処理を実行し、シーケンス番号４７０をインクリメントする。
【００８０】
なお、送信元４００は、シーケンス番号４５０が「０」であるパケット４２０を送信すると、送信元４００が管理するシーケンス番号４６０をインクリメントする。以降これらの処理を繰り返す。
【００８１】
ここで、シーケンス番号４５０が「２」であるパケット４２０が、ネットワーク部１２５上のルーティングミス等によって、送信先４１０に到達しなかったとする。この場合、送信先４１０は、シーケンス番号４７０をインクリメントしない。
【００８２】
次に、送信元４００は、シーケンス番号４５０が「３」であるパケット４２０を送信する。送信先４１０は、シーケンス番号４５０が「３」であるパケット４２０を受信すると、受信したパケット４２０に含まれるシーケンス番号４５０が「３」であり、送信先４１０が管理するシーケンス番号４７０が「２」であるため、受信したパケット４２０に含まれるシーケンス番号４５０と、送信先４１０が管理するシーケンス番号４７０とが一致しないと判定する。
【００８３】
そこで、送信先４１０は、シーケンス番号が一致しない異常が発生したことを示す応答パケット５００を送信元４００に送信する。
【００８４】
送信元４００は、応答パケット５００を受信した場合、送信元４００が管理するシーケンス番号４６０をリセットし、送信先４１０が管理するシーケンス番号４７０をリセットさせるコマンドパケット５１０を送信先４１０に送信する。なお、送信先４１０は、コマンドパケット５１０を受信すると、シーケンス番号４７０をリセットする。
【００８５】
この時点で、送信元４００のシーケンス番号４６０及び送信先４１０のシーケンス番号４７０は、「０」にリセットされている。
【００８６】
そして、送信元４００は、パケット４２０を送信先４１０に再び送信する。そして、送信先４１０は、このパケット４２０に含まれるコマンド４３０が示す要求に対応する処理を実行するものとする。
【００８７】
次に、送信元４００は、シーケンス番号が一致しない異常が解消したか否かを明示的に確認するために、確定パケット５２０を送信先４１０に送信する。なお、確定パケット５２０のコマンド５３０は、確定パケット５２０に含まれるシーケンス番号４５０と、送信先４１０が管理するシーケンス番号４７０とが一致する場合には、正常であることを示す正常応答パケット５４０を返し、確定パケット５２０に含まれるシーケンス番号４５０と、送信先４１０が管理するシーケンス番号４７０とが一致しない場合には、異常応答パケット（図示省略）を返す要求を示す。
【００８８】
送信先４１０は、確定パケット５２０を受信すると、確定パケット５２０に含まれるコマンド５３０が示す要求に対応する処理を実行する。具体的には、送信先４１０は、確定パケット５２０に含まれるシーケンス番号４５０と、送信先４１０が管理するシーケンス番号４７０とが一致するか否かを判定する。
【００８９】
送信先４１０は、確定パケット５２０に含まれるシーケンス番号４５０と、送信先４１０が管理するシーケンス番号４７０とが一致する場合には、正常応答パケット５４０を送信元４００に送信する。これによって、送信元４００は、異常が解消したことを確認できる。
【００９０】
一方、送信先４１０は、確定パケット５２０に含まれるシーケンス番号４５０と、送信先４１０が管理するシーケンス番号４７０とが一致しない場合には、異常応答パケットを送信元４００に送信する。送信元４００は、異常応答パケットを受信することによってシーケンス番号４６０及び４７０をリセットしたにもかかわらず、シーケンス番号が一致しないので、送信先４１０自体で異常が発生している可能性が高いと判定する。この場合、管理者等が送信先４１０を交換すればよい。
【００９１】
なお、送信元４００が異常応答パケットを受信した場合に、シーケンス番号４６０をリセットし、再度コマンドパケット５１０を送信するようにし、シーケンス番号４６０及び４７０を所定回数リセットしても、異常応答パケットを受信する場合に、管理者等が送信先４１０を交換するようにしてもよい。
【００９２】
シーケンス番号付き確認アクセスモードの特徴を、シーケンス番号付きアクセスモードと比較して説明する。シーケンス番号付きアクセスモードでは、パケット４２０に含まれるシーケンス番号４５０と送信先４１０が管理するシーケンス番号４７０とが一致しないことを送信先４１０が検出しても、送信元４００が当該異常を検出するまでには、所定時間必要である。通常、この所定時間は送信先がすべてのパケットに含まれるコマンドが示す要求に対応する処理を実行するために必要な時間である。
【００９３】
これに対して、シーケンス番号付き確定アクセスモードでは、パケット４２０に含まれるシーケンス番号４５０と送信先４１０が管理するシーケンス番号４７０とが一致しない場合に、送信先４１０は応答パケット５００を送信元４００に送信し、送信元４００は、シーケンス番号が正しく機能しているかを確認するための確定パケット５２０を送信先４１０に送信するので、異常が発生したパケットの次のパケットを送信した後、すぐに送信先４１０で異常が発生したことを検出できる。つまり、シーケンス番号付き確定アクセスモードでは、シーケンス番号付きアクセスモードよりも早く、シーケンス番号が一致しない異常を検出できる。
【００９４】
次に、モード管理テーブル１６８について、図６Ａ及び図６Ｂを用いて説明する。
【００９５】
図６Ａは、本発明の第１実施形態のモード管理テーブル１６８の説明図である。
【００９６】
モード管理テーブル１６８は、開始アドレス１６８１、終了アドレス１６８２、及び通信モード１６８３を含む。
【００９７】
開始アドレス１６８１及び終了アドレス１６８２は、一つの通信モードに属する送信先アドレスの範囲を示す。送信先アドレスは、ディスク制御装置１１０のある構成部が他の構成部に送信するパケットに含まれ、送信先の構成部のアドレスを示す。
【００９８】
通信モード１６８３には、応答ありアクセスモード（図２参照）、応答なしアクセスモード（図３参照）、シーケンス番号付きアクセスモード（図４参照）、及びシーケンス番号付き確定アクセスモード（図５参照）が登録される。
【００９９】
送信先が送信したパケットの送信先アドレスが「００００００００」〜「１０００００００」の範囲内であれば、通信モードは「応答ありアクセスモード」に決定される。送信先が送信したパケットの送信先アドレスが「２０００００００」〜「３０００００００」の範囲内であれば、通信モードは「応答なしアクセスモード」に決定される。
【０１００】
送信先が送信したパケットの送信先アドレスが「４０００００００」〜「５０００００００」の範囲内であれば、通信モードは「シーケンス番号付きアクセスモード」に決定される。送信先が送信したパケットの送信先アドレスが「６０００００００」〜「７０００００００」の範囲内であれば、通信モードは「シーケンス番号付き確定アクセスモード」に決定される。
【０１０１】
図６Ｂは、本発明の第１実施形態のモード管理テーブル１６８の変形例の説明図である。
【０１０２】
図６Ａでは、送信先アドレスによって通信モードが決定されていたが、図６に示すモード管理テーブル１６８の変形例では、送信先の識別子によって通信モードが決定される。
【０１０３】
送信先識別子１６８４は、送信先が送信するパケットに含まれ、ディスク制御装置１１０の構成部のうち送信先となる構成部の一意な識別子が登録される。
【０１０４】
通信モード１６８３は、図６Ａに示す通信モード１６８３と同じなので説明を省略する。
【０１０５】
送信先が送信したパケットの送信先識別子が「０００１」であれば、通信モードは応答ありアクセスモードに決定される。送信先が送信したパケットの送信先識別子が「０００２」であれば、通信モードは応答なしアクセスモードに決定される。
【０１０６】
送信先が送信したパケットの送信先識別子が「００４０」であれば、通信モードはシーケンス番号付きアクセスモードに決定される。送信先が送信したパケットの送信先識別子が「００６４」であれば、通信モードはシーケンス番号付き確定アクセスモードに決定される。
【０１０７】
なお、通信モードは、送信先アドレス又は送信先識別子に限定されることはなく、送信先を特定可能なデータであれば、他のデータを用いてもよい。
【０１０８】
次に、通信モード決定処理について図７を用いて説明する。
【０１０９】
図７は、本発明の第１実施形態の通信モード決定処理のフローチャートである。
【０１１０】
通信モード決定処理は、送信元の構成部がパケットを送信先の構成部に送信する前に、どの通信モードでパケットを送信すればよいかの問い合わせをプロセッサ部１３５が受けた場合に、プロセッサ部１３５によって実行される。
【０１１１】
まず、プロセッサ部１３５は、パケットを送信する送信先を特定する（７０１）。具体的には、送信元から問い合わせに送信先を特定するデータ（送信先アドレス又は送信先識別子）が含まれ、プロセッサ部１３５は、問い合わせに含まれる送信先を特定するデータに基づいて、送信先を特定する。送信先が特定された場合、プロセッサ部１３５は、モード管理テーブル１６８を参照して、通信モードを決定する。
【０１１２】
次に、プロセッサ部１３５は、ステップ７０１の処理で特定された送信先が、プロセッサ部１３５、ホストＩＦ部１１５又はディスクＩＦ部１２０（以下、ＩＦ部）、及びメモリ部１３０のいずれであるかを判定する（７０２）。
【０１１３】
ステップ７０１の処理で特定された送信先がプロセッサ部１３５であると、ステップ７０２の処理で判定された場合、プロセッサ部１３５は、応答なしアクセスモードで通信することを決定する（７０４）。プロセッサ部１３５へ送信されるデータは、送信先となるプロセッサ部１３５以外のプロセッサ部１３５が同じデータを格納しているため、送信先となるプロセッサ部１３５への送信が失敗しても、リカバリできる可能性が高いので、データが送信先に格納される信頼性よりもストレージシステムの処理性能の向上を重視して、応答なしアクセスモードで通信される。
【０１１４】
そして、プロセッサ部１３５は、応答なしアクセスモード送信処理を実行する（７０５）。具体的には、プロセッサ部１３５は、問い合わせを送信した送信元の構成部に、応答なしアクセスモードで送信先と通信することを指示し、送信元の構成部にパケットを送信先に送信させる。
【０１１５】
なお、ホスト計算機１００又はディスク装置１０５からのコマンドをプロセッサ部１３５に通知する場合には、ホストＩＦ部１１５又はディスクＩＦ部１２０を送信元とし、プロセッサ部１３５を送信先として、シーケンス番号付きアクセスモードで通信される。これは、ホストＩＦ１１５及びディスクＩＦ部１２０の初期設定時に、プロセッサ部１３５を送信先とする場合には、シーケンス番号付きアクセスモードで通信することが設定される。
【０１１６】
一方、ステップ７０１の処理で特定された送信先がホストＩＦ部１１５部又はディスクＩＦ部１２０であると、ステップ７０２の処理で判定された場合、当該ＩＦ部へ送信されるパケットがＩＦ部を初期設定する要求であるコマンドを含むか否かを判定するために、当該ＩＦ部へ送信されるパケットが、データをメモリ部１３０へ転送する要求のコマンドを含むか否かを判定する（７０６）。
【０１１７】
データをメモリ部１３０へ転送する要求とは、具体的には、ホスト計算機１００からディスク制御装置１１０へ送信されたデータをホストＩＦ部１１５からメモリ部１３０へ書き込む要求、メモリ部１３０に格納されたデータをディスクＩＦ部１２０へ送信し、メモリ部１３０に格納されたデータをディスク装置１０５へ書き込む要求、ディスク装置１０５に格納されたデータをディスクＩＦ部１２０からメモリ部１３０への読み出しを開始する要求、及びメモリ部１３０に格納されたデータをホストＩＦ部１１５へ送信し、メモリ部１３０に格納されたデータをホスト計算機１００へ読み出す要求である。つまり、データをメモリ部１３０へ転送する要求とは、ホスト計算機１００又はディスク装置１０５のデータをメモリ部１３０へ送信する要求、又はメモリ部１３０に格納されたデータをホスト計算機１００又はディスク装置１０５へ送信する要求である。
【０１１８】
ＩＦ部へ送信されるパケットがデータをメモリ部１３０へ転送する要求のコマンドを含む場合、ＩＦ部を初期設定する要求であるコマンドを含まないパケットであると判定される。つまり、この場合、ホスト計算機１００からの書き込み要求又はホスト計算機１００からの読み出し要求であるコマンドを含むパケットであると判定される。
【０１１９】
一方、ＩＦ部へ送信されるパケットがデータをメモリ部１３０へ転送する要求のコマンドを含まない場合、ＩＦ部を初期設定する要求であるコマンドを含むパケットであると判定される。
【０１２０】
ステップ７０６の処理で、ＩＦ部へ送信されるパケットがＩＦ部を初期設定する要求であるコマンドを含むと判定された場合、初期設定するデータはプロセッサ部１３５に格納されているため、ＩＦ部への送信が失敗しても、リカバリできるので、データが送信先に格納される信頼性よりもストレージシステムの処理性能の向上を重視して、プロセッサ部１３５は、ＩＦ部への通信モードを応答なしアクセスモードに決定する（７０４）。
【０１２１】
次に、プロセッサ部１３５は、送信元となる構成部に送信先となるＩＦ部に応答なしアクセスモードでパケットを送信させる（７０５）。
【０１２２】
一方、ステップ７０６の処理で、ＩＦ部へ送信されるパケットがＩＦ部を初期設定する要求であるコマンドを含まないと判定された場合、プロセッサ部１３５は、通信モードをシーケンス番号付きアクセスモードに決定し（７０７）、シーケンス番号付きアクセスモード送信処理を実行し（７０８）、通信モード決定処理を終了する。なお、シーケンス番号付きアクセスモード送信処理については、図８で詳細を説明する。
【０１２３】
一方、ステップ７０１の処理で特定された送信先がメモリ部１３０であると、ステップ７０２の処理で判定された場合、プロセッサ部１３５は、メモリ部１３０へ送信されるパケットがメモリ部１３０を初期設定する要求であるコマンドを含むか否かを判定するために、メモリ部１３０へ送信されるパケットがメモリ部１３０のメモリ領域に送信されるか否かを判定する（７０９）。
【０１２４】
ステップ７０９の処理で、メモリ部１３０へ送信されるパケットがメモリ部１３０のメモリ領域に送信されないと判定された場合、メモリ部１３０へ送信されるパケットは、メモリ部１３０を初期設定するために送信されるパケットであるので、通信モードを応答なしアクセスモードに決定するために、ステップ７０４の処理に進む。
【０１２５】
一方、ステップ７０９の処理で、メモリ部１３０へ送信されるパケットがメモリ部１３０のメモリ領域に送信されると判定された場合、メモリ部１３０へ送信されるパケットがメモリ部１０３を初期設定するために送信されるパケットでないので、通信モードをシーケンス番号付き確定アクセスモードに決定する（７１０）。
【０１２６】
次に、プロセッサ部１３５は、シーケンス番号付き確定アクセスモード送信処理を実行し（７１１）、通信モード決定処理を終了する。なお、シーケンス番号付き確定アクセスモード送信処理については、図９で詳細を説明する。
【０１２７】
ここで、通信モードがシーケンス番号付きアクセスモードに決定される理由、及び通信モードがシーケンス番号付き確定アクセスモードに決定される理由について説明する。
【０１２８】
通信モードがシーケンス番号付きアクセスモードに決定される場合には、二つの場合がある。第１は、送信元がＩＦ部で、送信先がプロセッサ部１３５であって、かつメモリ部１３０へデータ転送を要求する場合、第２は、送信先がＩＦ部であって、かつメモリ部１３０へデータ転送を要求する場合である。
【０１２９】
第１の場合は、具体的には、ホストＩＦ部１１５からメモリ部１３０へデータの書き込みを開始することをプロセッサ部１３０に通知する場合、メモリ部１３０に格納されたデータのホストＩＦ部１１５への転送が終了したことをプロセッサ部１３５に通知する場合、メモリ部１３０に格納されたデータのディスク装置１０５への書き込みの終了を通知する場合等がある。
【０１３０】
第２の場合は、具体的には、ホストＩＦ部１１５からメモリ部１３０へのデータの書き込みの開始の準備ができていることをホストＩＦ部１１５に通知する場合、メモリ部１３０に格納されたデータのディスク装置１０５への書き込みをディスク装置１０５に指示する場合等がある。
【０１３１】
つまり、シーケンス番号付きアクセスモードは、ホスト計算機１００から受信したデータをメモリ部１３０へ書き込む場合又はディスク装置１０５に格納されたデータをホスト計算機１００に読み出す場合にＩＦ部とプロセッサ部１３５との間における通信で用いられる。
【０１３２】
この通信では、一度送信先（ＩＦ部又はプロセッサ部１３５）がパケットを受信できない異常が発生した場合には、送信先における処理が実行されなくなるため、送信元では異常が発生したことを把握せずに次のパケットを送信しても、送信先における処理で異常が発生しない。したがって、送信元が異常を検出するタイミングがシーケンス番号付き確定アクセスモードよりも遅いシーケンス番号付きアクセスモードで通信する。
【０１３３】
一方、通信モードがシーケンス番号付き確定アクセスモードに決定される場合は、送信先がメモリ部１３０のメモリ領域である場合である。具体的には、プロセッサ部１３５がメモリ部１３０のメモリ領域に格納された制御データ等のデータの読み出しや書き込みを開始する場合等である。
【０１３４】
この場合、送信先であるメモリ部１３０がパケットを受信していない異常が発生した場合、送信先であるメモリ部１３０における処理が実行され続けてしまう。したがって、送信元が送信先で発生した異常を把握せずに、パケットを送信し続けてしまうと、送信先における処理にも異常を発生させてしまう場合がある。
【０１３５】
このため、送信元は、送信先で発生したパケット未受信の異常をできるだけ早く検出して、送信先が受信していないパケット以降のパケットを再度送信しなければならない。よって、この通信では、送信元が異常を検出するタイミングがシーケンス番号付きアクセスモードよりも早いシーケンス番号付き確定アクセスモードが用いられる。
【０１３６】
次に、シーケンス番号付きアクセスモード送信処理について、図８を用いて説明する。
【０１３７】
図８は、本発明の第１実施形態のシーケンス番号付きアクセスモード送信処理のフローチャートである。
【０１３８】
シーケンス番号付きアクセスモード送信処理は、図７に示すステップ７０７の処理で、プロセッサ部１３５のモード決定部１６２がパケットの送信元と送信先との通信をシーケンス番号付きアクセスモードに決定した場合に実行される。
【０１３９】
まず、プロセッサ部１３５は、プロセッサ部１３５が管理するシーケンス番号を読み出す（８０１）。
【０１４０】
次に、プロセッサ部１３５は、ステップ８０１の処理で読み出されたシーケンス番号を送信するパケットに付加する（８０２）。
【０１４１】
次に、プロセッサ部１３５は、ホストＩＦ部１１５又はディスクＩＦ部１２０から送信されたパケットをメモリ部１３０が受信した場合に、メモリ部１３０が、受信したパケットに含まれるコマンドの要求に対応する処理の実行後に応答パケットを受信したパケットの送信先に送信するコマンドを、パケットに付加する（８０３）。つまり、プロセッサ部１３５は、次にパケットを送信するホストＩＦ部１１５又はディスクＩＦ部１２０とメモリ部１３０との間の通信モードを応答ありアクセスモードに決定する。
【０１４２】
次に、プロセッサ部１３５は、パケットを送信先であるＩＦ部へ送信する（８０４）。そして、プロセッサ部１３５は、プロセッサ部１３５が管理するシーケンス番号をインクリメントして、インクリメントされたシーケンス番号をプロセッサ部１３５のレジスタに格納して（８０５）、シーケンス番号付きアクセスモード送信処理を終了する。
【０１４３】
次に、シーケンス番号付き確定アクセスモード送信処理について、図９を用いて説明する。図９は、本発明の第１実施形態のシーケンス番号付き確定アクセスモード送信処理のフローチャートである。
【０１４４】
シーケンス番号付き確定アクセスモード送信処理は、図７に示すステップ７１０の処理で、プロセッサ部１３５のモード決定部１６２がパケットの送信元と送信先との通信をシーケンス番号付き確定アクセスモードに決定した場合に実行される。
【０１４５】
まず、プロセッサ部１３５は、プロセッサ部１３５が管理するシーケンス番号を読み出す（９０１）。
【０１４６】
次に、プロセッサ部１３５は、ステップ８０１の処理で読み出されたシーケンス番号を送信するパケットに付加する（９０２）。
【０１４７】
次に、プロセッサ部１３５は、パケットを送信先であるＩＦ部へ送信する（９０３）。そして、プロセッサ部１３５は、プロセッサ部１３５が管理するシーケンス番号をインクリメントして、インクリメントされたシーケンス番号をプロセッサ部１３５のレジスタに格納して（９０４）、シーケンス番号付きアクセスモード送信処理を終了する。
【０１４８】
次に、メモリ部１３０のパケット受信処理部１５８によるパケット受信処理を、図１０を用いて説明する。
【０１４９】
図１０は、本発明の第１実施形態のパケット受信処理のフローチャートである。
【０１５０】
まず、メモリ部１３０は、パケットを受信した場合、受信したパケットがどの通信モードで送信されたかを解析する（１００５）。具体的には、メモリ部１３０は、受信したパケットのヘッダを解析することによって、受信したパケットがどの通信モードで送信されたかを特定できる。
【０１５１】
次に、メモリ部１３０は、ステップ１００５の処理で解析されたパケットの通信モードがシーケンス番号付き確定アクセスモードであるか否かを判定する（１０１０）。
【０１５２】
ステップ１００５の処理で解析されたパケットの通信モードがシーケンス番号付き確定アクセスモードであると、ステップ１０１０の処理で判定された場合、メモリ部１３０は、受信したパケットに含まれるシーケンス番号（Ａ）を抽出する（１０１５）。
【０１５３】
次に、メモリ部１３０は、メモリ部１３０が管理するシーケンス番号（Ｂ）をメモリ部１３０のレジスタから読み出す（１０２０）。
【０１５４】
そして、メモリ部１３０は、ステップ１０１５の処理で抽出されたシーケンス番号（Ａ）とステップ１０２０の処理で読み出されたシーケンス番号（Ｂ）とを比較し、シーケンス番号（Ａ）とシーケンス番号（Ｂ）とが一致するか否かを判定する（１０２５）。
【０１５５】
ステップ１０２５の処理で、シーケンス番号（Ａ）とシーケンス番号（Ｂ）とが一致しないと判定された場合、送信元にシーケンス番号が一致しない異常が発生したことを示す応答パケットを送信し（１０３５）、メモリ部パケット受信処理を終了する。
【０１５６】
一方、ステップ１０２５の処理で、シーケンス番号（Ａ）とシーケンス番号（Ｂ）とが一致すると判定された場合、メモリ部１３０は、受信したパケットが、シーケンス番号が一致しない異常が解消したか否かを明示的に確認するために、送信元から送信される確定パケットであるか否かを判定する（１０３０）。
【０１５７】
ステップ１０３０の処理で、受信したパケットが確定パケットであると判定された場合、メモリ部１３０は、シーケンス番号が一致しているので、異常が解消したことを送信元に通知する応答パケットを送信する（１０４０）。
【０１５８】
そして、メモリ部１３０は、メモリ部１３０が管理するシーケンス番号（Ｂ）をインクリメントして（１０５０）、メモリ部パケット受信処理を終了する。
【０１５９】
一方、ステップ１０３０の処理で、受信したパケットが確定パケットでないと判定された場合、メモリ部１３０は、受信したパケットに含まれるコマンドが示す要求に対応する処理を実行して（１０４５）、ステップ１０５０の処理に進む。
【０１６０】
一方、ステップ１００５の処理で解析されたパケットの通信モードがシーケンス番号付き確定アクセスモードであると、ステップ１０１０の処理で判定された場合、ステップ１００５の処理で解析されたパケットの通信モードが応答ありアクセスモードであるか否かを判定する（１０６０）。
【０１６１】
ステップ１００５の処理で解析されたパケットの通信モードが応答ありアクセスモードであると、ステップ１０６０の処理で判定された場合、メモリ部１３０は、受信したパケットに含まれるコマンドが示す要求に対応する処理を実行する（１０６０）。そして、メモリ部１３０は、ステップ１０６０の処理で実行した処理が完了した場合に、応答パケットを送信元に送信して（１０６５）、メモリ部パケット受信処理を終了する。
【０１６２】
一方、ステップ１００５の処理で解析されたパケットの通信モードが応答ありアクセスモードでないと、ステップ１０６０の処理で判定された場合、受信したパケットの通信モードは応答なしアクセスモードであるので、メモリ部１３０は、受信したパケットに含まれるコマンドが示す要求に対応する処理を実行して（１０７０）、メモリ部パケット受信処理を終了する。
【０１６３】
次に、ディスク制御装置１１０がホスト計算機１００から書き込み要求を受信した場合のディスク制御装置１１０の各構成部の間におけるデータの送受信について、図１１を用いて説明する。説明する。
【０１６４】
図１１は、本発明の第１実施形態のディスク制御装置１１０がホスト計算機１００からの書き込み要求を受信した場合のディスク制御装置１１０の各構成部のシーケンス図である。
【０１６５】
なお、図１１において、実線が応答有りモード、一点鎖線がシーケンス番号付きアクセスモードを示す。
【０１６６】
まず、ホストＩＦ部１１５を送信元とし、プロセッサ部１３５を送信先として、データが通信される（１１０５）。
【０１６７】
なお、ホストＩＦ部１１５がプロセッサ部１３５に送信するデータは、ホストＩＦ部１１５がホスト計算機１００から何らかの要求（例えばデータの書き込み要求）を受信したことを通知するためのデータである。図１１において、プロセッサ部１３５は、１１０５で通信されたデータから、ホスト計算機１００からデータの書き込み要求を受けたとする。
【０１６８】
１１０５に示す通信は、プロセッサ部１３５を送信先とし、ホストＩＦ部１１５を送信元とするため、図７に示すステップ７０７の処理でプロセッサ部１３５によってシーケンス番号付きアクセスモードに決定される。そして、ステップ７０８の処理で、プロセッサ部１３５は、シーケンス番号付きアクセスモードでデータを送信することを送信元となるホストＩＦ部１１５に通知し、ホストＩＦ部１１５のパケット送信処理部１４２がパケットをシーケンス番号付きアクセスモードで送信する。
【０１６９】
例えば、ホストＩＦ部１１５がプロセッサ部１３５に１１０５に示す書き込みを開始するための通信を開始する前に、この書き込みを開始するデータのディスク装置１０５へのアクセス先と同じアクセス先を含む読み込み処理がディスク制御装置１１０で実行されていた場合、読み込み処理と書き込み処理とが逆に実行されてしまうと、１１０５の通信が開始される前に実行されていた読み込み処理において、本来読み込まれるべきデータと異なるデータが読み込まれる可能性がある。このため、ホストＩＦ部１１５からプロセッサ部１３５への通信は、順序性を保証するためにシーケンス番号付きアクセスモードで実行されなければならない。
【０１７０】
次に、プロセッサ部１３５を送信元とし、ホストＩＦ部１１５を送信として、データが通信される（１１１０）。
【０１７１】
なお、プロセッサ部１３５がホストＩＦ部１１５に送信するデータは、ホスト計算機１００から受信したデータがメモリ部１３０に書き込み可能であることをホスト計算機１００に通知するためのデータである。
【０１７２】
１１１０に示す通信は、ホストＩＦ部１１５を送信先とし、ホストＩＦ部１１５を動作可能とするための設定に関する通信ではないので、図７に示すステップ７０７の処理でプロセッサ部１３５によってシーケンス番号付きアクセスモードに決定される。そして、ステップ７０８の処理で、プロセッサ部１３５のパケット送信処理部１６４は、パケットをシーケンス番号付きアクセスモードで送信する。なお、この処理でホストＩＦ部１１５に送信されるパケットには、図８に示すステップ８０３の処理で、ホストＩＦ部１１５とメモリ部１３０とは応答ありアクセスモードで通信するコマンドが付加されている。
【０１７３】
ホスト計算機１００がディスク装置１０５へ書き込むためにディスク制御装置１１０に送信するライトデータはディスク制御装置１１０が保持しているデータではないので、ディスク制御装置１１０は、受信したデータがメモリ部１３０に確実に格納されたことを保証するために、ホストＩＦ部１１５とプロセッサ部１３５との通信モードを応答ありアクセスモードにする。
【０１７４】
ホストＩＦ部１１５が、１１１０に示す通信で受信したデータをホスト計算機１００に送信すると、ホスト計算機１００は、実際にディスク装置１０５へ書き込むデータ（ライトデータ）を、ホストＩＦ部１１５に送信する。
【０１７５】
ホストＩＦ部１１５は、ライトデータを受信すると、１１１０に示す通信でプロセッサ部１３５から受信したパケットに付加されたコマンドに基づいて、応答ありアクセスモードで、ホストＩＦ部１１５が受信したライトデータを、メモリ部１３０に送信する（１１１５）。
【０１７６】
そして、メモリ部１３０は、受信したライトデータがメモリ領域に格納された場合に、応答パケットをホストＩＦ部１１５に送信する（１１１５）。
【０１７７】
ホストＩＦ部１１５は、ライトデータのメモリ部１３０への転送が終了すると、ホストＩＦ部１１５を送信元とし、プロセッサ部１３５を送信先として、データを通信する（１１２０）。
【０１７８】
なお、ホストＩＦ部１１５からプロセッサ部１３５に送信するデータは、メモリ部１３０へのライトデータの書き込みが終了したことをプロセッサ部１３５に通知するためのデータである。
【０１７９】
１１２０に示す通信は、プロセッサ部１３５を送信先とし、ホストＩＦ部１１５を送信元とするため、図７に示すステップ７０７の処理でプロセッサ部１３５によってシーケンス番号付きアクセスモードに決定される。そして、ステップ７０８の処理で、プロセッサ部１３５は、シーケンス番号付きアクセスモードでデータを送信することを送信元となるホストＩＦ部１１５に通知し、ホストＩＦ部１１５のパケット送信処理部１４２がパケットをシーケンス番号付きアクセスモードで送信する。
【０１８０】
プロセッサ部１３５は、ライトデータの書き込み処理が完了したことをホスト計算機１００に通知するために、プロセッサ部１３５を送信元とし、ホストＩＦ部１１５を送信先としてデータをシーケンス番号付きアクセスモードで送信する（１１２５）。なお、シーケンス番号付きアクセスモードとする理由は、１１１０に示す通信と同じである。
【０１８１】
ライトデータがメモリ部１３０に格納された後、所定時間が経過すると、ディスク制御装置１１０は、メモリ部１３０に格納されたライトデータをディスク装置１０５に格納する。
【０１８２】
このため、プロセッサ部１３５を送信元とし、ディスクＩＦ部１２０を送信先として、データが通信される（１１３０）。
【０１８３】
なお、プロセッサ部１３５がディスクＩＦ部１２０に送信するデータは、メモリ部１３０に格納されたライトデータをディスクＩＦ部１２０のバッファメモリに格納することをディスクＩＦ部１２０に指示するデータである。
【０１８４】
１１３０に示す通信は、ディスクＩＦ部１２０を送信先とし、ディスクＩＦ部１２０を初期設定するために行われる通信ではないので、図７に示すステップ７０７の処理でプロセッサ部１３５によってシーケンス番号付きアクセスモードに決定される。そして、ステップ７０８の処理で、プロセッサ部１３５のパケット送信処理部１６４は、パケットをシーケンス番号付きアクセスモードで送信する。なお、この処理でディスクＩＦ部１２０に送信されるパケットには、図８に示すステップ８０３の処理で、ディスクＩＦ部１２０とメモリ部１３０とは応答ありアクセスモードで通信するコマンドが付加されている。
【０１８５】
なお、メモリ部１３０とディスクＩＦ部１２０とが、応答ありアクセスモードで通信される理由は、１１１５に示す通信が応答ありアクセスモードで通信される理由と同じである。
【０１８６】
ディスクＩＦ部１２０は、プロセッサ部１３５からのデータを受信すると、メモリ部１３０に格納されたライトデータを取得する要求を付加したコマンドを含むパケットを応答あり通信アクセスモードでメモリ部１３０に送信する（１１３５）。
【０１８７】
メモリ部１３０は、ライトデータを取得する要求を付加したコマンドを含むパケットを受信すると、メモリ部１３０のメモリ領域に格納されているライトデータをディスクＩＦ部１２０へ送信する。そして、メモリ部１３０は、ライトデータの送信が完了した後に、応答パケットをディスクＩＦ部１２０に送信する（１１３５）。
【０１８８】
そして、ディスクＩＦ部１２０は、メモリ部１３０のメモリ領域に格納されたライトデータを取得すると、メモリ部１３０のメモリ領域に格納されたライトデータの取得が完了したことをプロセッサ部１３５に通知するためのデータをプロセッサ部１３５に送信する（１１４０）。
【０１８９】
１１１０に示す通信は、ディスクＩＦ部１２０を送信先とし、ディスクＩＦ部１２０を初期設定するために行われる通信ではないので、図７に示すステップ７０７の処理でプロセッサ部１３５によってシーケンス番号付きアクセスモードに決定される。
【０１９０】
その後、ディスクＩＦ部１２０は、ディスク装置１０５に１１３５の通信で取得したライトデータを格納する。
【０１９１】
以上の処理によって、ホスト計算機１００からディスク装置１０５への書き込みを要求されたデータがディスク装置１０５に格納される。
【０１９２】
次に、シーケンス番号付きアクセスモード及びシーケンス番号付きアクセス確定アクセスモードにおける通信において、シーケンス番号が一致しない異常が発生した場合の送信元によって実行される処理（シーケンス番号不一致処理）を、図１２を用いて説明する。
【０１９３】
図１２は、本発明の第１実施形態のシーケンス番号不一致処理のフローチャートである。
【０１９４】
まず、送信元は、送信したパケットに含まれるシーケンス番号と送信先が管理するシーケンス番号とが一致しない異常を検出し、検出した異常の内容を解析する（１２０５）。
【０１９５】
具体的には、シーケンス番号付きアクセスモードでパケットを送信した場合、一連の送信先に実行させる処理に対応するコマンドを含むパケットの送信終了後、所定時間経過した場合に、送信元はシーケンス番号が一致しない異常が発生したことを検出する。また、シーケンス番号付き確定モードでは、送信元は、シーケンス番号が一致しない異常が発生したパケットの次のパケットを送信した後に、異常を示す応答パケットを受信したタイミングで、送信先でシーケンス番号が一致しない異常が発生したことを検出する。
【０１９６】
次に、送信元は、シーケンス番号が一致しない異常が発生した送信先を特定し（１２１０）、特定された送信先がＩＦ部である場合には、ステップ１２１５の処理に進み、特定された送信先がメモリ部１３０である場合には、ステップ１２３０の処理に進む。
【０１９７】
まず、シーケンス番号が一致しない異常が発生した送信先がＩＦ部である場合について、説明する。
【０１９８】
シーケンス番号が一致しない異常が発生した送信先がＩＦ部である場合には、シーケンス番号付きアクセスモードによる通信で、シーケンス番号が一致しない異常が発生したので、送信元は、シーケンス番号付きアクセスモードのシーケンス番号が一致しない異常に対応する処理を実行する。この場合、シーケンス番号付きアクセスモードによる通信で、例えば図１１において、プロセッサ部１３５が送信元で、ホストＩＦ部１１５又はディスクＩＦ部１２０が送信先である通信が該当する。つまり、ホストＩＦ部１１５を介してライトデータをメモリ部１３０に格納することを開始するための通信（１１０５、１１１０、１１２０、及び１１２５）、及びメモリ部１３０に格納されたデータをディスクＩＦ部１２０を介して、ディスク装置１０５に格納を指示する通信（１１３０及び１１４０）である。
【０１９９】
具体的には、送信元は、ホスト計算機１００から受信したライトデータのうち、格納されていないライトデータを抽出する（１２１５）。
【０２００】
次に、送信元は、異常が発生したＩＦ部に対して、ＩＦ部が管理するシーケンス番号をリセットする指示を送信する（１２２０）。
【０２０１】
次に、送信元は、ステップ１２１５の処理で格納されていないライトデータの書き込みを開始するリトライ要求を、異常が発生したＩＦ部に送信して（１２２５）、シーケンス番号不一致処理を終了する。
【０２０２】
一方、ステップ１２１０の処理で特定された送信先がメモリ部である場合には、シーケンス番号付き確定アクセスモードによる通信で、シーケンス番号が一致しない異常が発生したので、送信元は、シーケンス番号付き確定アクセスモードのシーケンス番号が一致しない異常に対応する処理を実行する。この場合、シーケンス番号付き確定アクセスモードによる通信で、プロセッサ部１３５が送信元でメモリ部１３０が送信先である通信が該当する。
【０２０３】
まず、送信元は、メモリ部１３０への格納が完了していないデータ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）を抽出する（１２３０）。
【０２０４】
そして、送信元は、ステップ１２３０の処理で抽出されたデータを書き込み前の状態に戻す（１２３５）。
【０２０５】
次に、送信元は、異常が発生したメモリ部１３０に対して、メモリ部１３０が管理するシーケンス番号をリセットする指示を送信する（１２４０）。メモリ部１３０は、ステップ１２４０で送信元が送信したリセット指示を受けて、シーケンス番号をリセットする。送信元は、ステップ１２５５の処理で格納されていないデータの書き込みを開始するリトライ要求を、異常が発生したメモリ部１３０に送信する（１２４５）。
【０２０６】
この場合、送信元は、送信先が管理するシーケンス番号をリセットする要求を含むコマンドパケットを送信先へ送信する（１２５０）。
【０２０７】
ステップ１２５０の処理でコマンドパケットを送信してから所定時間経過後に、送信元は、シーケンス番号が一致するようになったか否かを確認するための確定パケットを送信する（１２５５）。
【０２０８】
次に、送信元は、送信先から応答パケットを受信する（１２６０）。そして、送信元は、送信先から受信した応答パケットが、正常なシーケンス番号であったことを示す応答パケットであるか否かを判定する（１２６５）。
【０２０９】
ステップ１２６５の処理で、送信先から受信した応答パケットがシーケンス番号が正常であることを示す応答パケットでないと判定された場合、送信元は、シーケンス番号が一致しない異常が解消されていないので、送信先であるメモリ部１３０を使用できないようにして（１２７０）、シーケンス番号不一致処理を終了する。
【０２１０】
一方、ステップ１２６５の処理で、送信先から受信した応答パケットがシーケンス番号が正常であることを示す応答パケットであると判定された場合、シーケンス番号が一致しない異常は解消されたので、シーケンス番号不一致処理を終了する。
【０２１１】
本発明の第１実施形態によれば、ストレージシステムは、プロセッサ部１３５が、複数の通信モードを送信元及び送信先に基づいて、通信モードを適切に決定するので、ストレージシステムの処理性能を向上させつつ、信頼性も保証できる。
【０２１２】
（第２実施形態）
本発明の第２実施形態を、図１３〜図１５を用いて説明する。なお、第２実施形態の構成及び処理のうち、第１実施形態と同じ処理については、同じ番号を付与し、説明を省略する。
【０２１３】
第１実施形態では、各構成部がパケットを送信する場合に、プロセッサ部１３５が通信モードを決定したのに対して、第２実施形態では、各構成部が通信モードを決定してから、パケットを送信する。
【０２１４】
図１３は、本発明の第２実施形態のストレージシステムの構成を示すブロック図である。
【０２１５】
ストレージシステムは、第１実施形態と同じく、ホスト計算機１００、ホスト計算機１００に接続されたディスク制御装置１１０、及びディスク制御装置１１０に接続されたディスク装置１０５を備える。
【０２１６】
第２実施形態のホストＩＦ部１１５及びディスクＩＦ部１２０は、通信モード決定処理を実行するので、モード管理テーブル１６８及びモード決定部１６２を備える。
【０２１７】
また、プロセッサ部１３５は、通信モード決定処理を実行しないので、モード管理テーブル１６８及びモード決定部１６２を備えない。プロセッサ部１３５が送信するパケットの通信モード決定処理は、ネットワークを構成するスイッチ部１２５によって実行される。
【０２１８】
したがって、スイッチ部１２５は、モード管理テーブル１６８、モード決定部１６２、シーケンス番号付加部１０５４、パケット解析部１０５５、及びシーケンス番号確認部１０５６を備える。
【０２１９】
パケット解析部１０５５は、スイッチ部１２５が受信したパケットを解析する。シーケンス番号付加部１０５４は、ホストＩＦ部１１５のシーケンス番号付加部１４４と同じ構成なので、説明を省略する。シーケンス番号確認部１０５６は、ホストＩＦ部１１５のシーケンス番号確認部１４６と同じ構成なので、説明を省略する。
【０２２０】
次に、ホストＩＦ部１１５及びディスクＩＦ部１２０のモード決定部１６２によって実行されるモード決定処理を図１４を用いて説明する。
【０２２１】
図１４は、本発明の第２実施形態のホストＩＦ部１１５及びディスクＩＦ部１２０によって実行されるモード決定処理のフローチャートである。以下、ホストＩＦ部１１５及びディスクＩＦ部１２０をＩＦ部という。
【０２２２】
ＩＦ部が送信元となる場合、送信先となり得るのは、プロセッサ部１３５又はメモリ部１３０である。送信先がプロセッサ部１３５である場合は、ホスト計算機１００から何らかの要求（例えば書き込みが要求）を受信したことをプロセッサ部１３５に通知する場合、又はメモリ部１３０からディスク装置１０５への書き込みが完了したことをプロセッサ部１３５に通知する場合等がある。
【０２２３】
また、送信先がメモリ部１３０である場合には、ホスト計算機１００から書き込みが要求されたデータをメモリ部１３０に書き込む場合、又はホスト計算機１００から読み出しが要求されたデータをメモリ部１３０から読み出す場合である。
【０２２４】
なお、通信モードの決定は、ＩＦ部がＩＦ部に備わるモード管理テーブル１６８を参照して実行される。
【０２２５】
まず、ＩＦ部は、図示しないプロトコル処理部又はデータ転送制御部からＩＦ部が受信したパケットに含まれるコマンドに対応する要求を解析する（１４０５）。
【０２２６】
次に、ＩＦ部は、ステップ１４０５の処理で、解析された要求に基づいて、パケットの送信先を判定する（１４１０）。
【０２２７】
ステップ１４１０の処理で、送信先がプロセッサ部１３５であると判定された場合、ＩＦ部は、通信モードをシーケンス番号付きアクセスモードに決定し（１４１５）、パケット送信処理部１４２又は１４８にシーケンス番号付きアクセスモード送信処理を実行させ（１４２０）、モード決定処理を終了する。シーケンス番号付きアクセスモード送信処理は、図１５で詳細を説明する。
【０２２８】
一方、ステップ１４１０の処理で、送信先がメモリ部１３０であると判定された場合、ＩＦ部は、通信モードを応答ありアクセスモードに決定し（１４２５）、パケット送信処理部１４２又は１４８に応答ありアクセスモード送信処理を実行させ（１４３０）、モード決定処理を終了する。
【０２２９】
応答ありアクセスモード送信処理では、パケット送信処理部１４２又は１４８は、パケットに応答ありアクセスモードであることを示すデータを付加して、パケットをメモリ部１３０に送信する。
【０２３０】
なお、応答ありアクセスモード送信処理では、ＩＦ部は、パケットを送信した後、メモリ部１３０から応答パケットを受信した場合には、当該処理が完了したことをプロセッサ部１３５に通知する。ＩＦ部は、メモリ部１３０からの応答パケットを受信するまで、メモリ部１３０に対する別の要求を処理してもよい。
【０２３１】
次に、シーケンス番号付きアクセスモード送信処理について、図１５を用いて説明する。図１５は、本発明の第２実施形態のシーケンス番号付きアクセスモード送信処理のフローチャートである。
【０２３２】
まず、ＩＦ部は、ＩＦ部が管理するシーケンス番号を読み出す（１５１０）。
【０２３３】
次に、ＩＦ部は、ステップ１５１０の処理で読み出されたシーケンス番号を送信するパケットに付加する（１５３０）。
【０２３４】
次に、ＩＦ部は、パケットを送信先であるプロセッサ部１３５へ送信する（１５３５）。そして、ＩＦ部は、ＩＦ部が管理するシーケンス番号をインクリメントして、インクリメントされたシーケンス番号をＩＦ部のレジスタに格納して（１５４０）、シーケンス番号付きアクセスモード送信処理を終了する。
【０２３５】
また、第２実施形態のプロセッサ部１３５は、シーケンス番号付加部１６６及びシーケンス番号確認部１７０を備えない。第１実施形態でプロセッサ部１３５が実行していたシーケンス番号の付加及びシーケンス番号の確認は、ネットワーク部１２５を構成するスイッチ部１２５のシーケンス番号付加部１０５４及びシーケンス番号確認部１０５６によって実行される。
【０２３６】
また、スイッチ部１２５は、パケット解析部１０５５によってプロセッサ部１３５から送信されたパケットの内容が解析され、解析されたパケットの内容から、このパケットの送信先に基づいて、通信モードを決定する。つまり、プロセッサ部１３５となる場合の通信モード決定処理をスイッチ部１２５が実行する。この通信モード決定処理は、図７に示す通信モード決定処理と同じであるので、説明を省略する。
【０２３７】
本発明の第２実施形態によれば、ストレージシステムは、プロセッサ部１３５が、複数の通信モードを送信元及び送信先に基づいて、通信モードを適切に決定するので、ストレージシステムの処理性能を向上させつつ、信頼性も保証できる。また、通信モード決定処理は送信元となる各構成部によって実行されるので、プロセッサ部１３５の処理の負荷を分散させることができる。
【０２３８】
なお、本発明は、上記の各実施例の形態に限定されるものではなく、例えば以下のような応用も可能である。
（１）各実施形態において、プログラムによって実現されていた機能の一部をハードウェアで実現してもよいし、ハードウェアで実現されていた機能の一部をソフトウェアで実現してもよい。なお、ストレージシステムは、ホスト計算機から要求されたデータを格納又は提供できる構成であれば、図１及び図１３に示す構成に限定されるものではない。
（２）各実施形態において、ディスク制御装置１１０の各構成部間がスイッチ部１２５によって構成されるネットワークを介して接続される例を示したが、各構成要素間でデータが通信可能であればよく、例えば各構成部間がバスによって接続されていてもよい。
（３）各実施例において、ホスト計算機１００とディスク装置１０５とのインタフェースを備える制御部を、ホストＩＦ部１１５、ディスクＩＦ部１４５として別々に備えるものであったが、ディスク制御装置１１０で双方のインタフェースを備えていればよく、例えばホストＩＦ部１１５及びディスクＩＦ部１２０の機能を兼ね備える制御部としてもよい。
（４）各実施例において、メモリ部１３０が、キャッシュメモリであるメモリ領域（図示せず）と、制御データ等が格納される共有メモリ（図示せず）とに区分された例を示したが、ディスク制御装置１１０内のいずれかの場所で管理されていればよく、例えば、ホストＩＦ部１１５に備わるメモリで管理してもよい。
（５）各実施例において、必要とされる信頼性及び処理性能に応じて適切に通信モードを設定してもよい。例えば、適用範囲は制限されるが、処理性能重視とする場合は、すべての通信を応答なしアクセスモードとすることも技術的には可能である。本発明では、あくまでも信頼性と処理性能の両立を目指して、複数の動作モードを適切に選択することを主眼に置いている。
【図面の簡単な説明】
【０２３９】
【図１】本発明の第１実施形態のストレージシステムの構成を示すブロック図である。
【図２】本発明の第１実施形態の応答なしアクセスモードでの通信を示すシーケンス図である。
【図３】本発明の第１実施形態の応答ありアクセスモードでの通信を示すシーケンス図である。
【図４】本発明の第１実施形態のシーケンス番号付きアクセスモードでの通信を示すシーケンス図である。
【図５】本発明の第１実施形態のシーケンス番号付き確定アクセスモードでの通信を示すシーケンス図である。
【図６Ａ】本発明の第１実施形態のモード管理テーブルの説明図である。
【図６Ｂ】本発明の第１実施形態のモード管理テーブルの変形例の説明図である。
【図７】本発明の第１実施形態の通信モード決定処理のフローチャートである。
【図８】本発明の第１実施形態のシーケンス番号付きアクセスモード送信処理のフローチャートである。
【図９】本発明の第１実施形態のシーケンス番号付き確定アクセスモード送信処理のフローチャートである。
【図１０】本発明の第１実施形態のパケット受信処理のフローチャートである。
【図１１】本発明の第１実施形態のディスク制御装置がホスト計算機からの書き込み要求を受信した場合のディスク制御装置の各構成部のシーケンス図である。
【図１２】本発明の第１実施形態のシーケンス番号不一致処理のフローチャートである。
【図１３】本発明の第２実施形態のストレージシステムの構成を示すブロック図である。
【図１４】本発明の第２実施形態のホストＩＦ部及びディスクＩＦ部によって実行されるモード決定処理のフローチャートである。
【図１５】本発明の第２実施形態のシーケンス番号付きアクセスモード送信処理のフローチャートである。
【符号の説明】
【０２４０】
１００…ホストコンピュータ
１０５…ディスク装置
１１０…記憶装置
１１５…ホストＩＦ部
１２０…ディスクＩＦ部
１２５…スイッチ部
１３０…メモリ部
１３５…プロセッサ部
１４０…モード管理部
１４２…パケット送信処理部
１４４…シーケンス番号付加部
１４６…シーケンス番号確認部
１６２…モード決定部
１６４…パケット送信処理部
１６６…シーケンス番号付加部
１６８…モード管理テーブル
１７０…シーケンス番号確認部
【図１】
2010092336.tif 000003
【図２】
2010092336.tif 000004
【図３】
2010092336.tif 000005
【図４】
2010092336.tif 000006
【図５】
2010092336.tif 000007
【図６Ａ】
2010092336.tif 000008
【図６Ｂ】
2010092336.tif 000009
【図７】
2010092336.tif 000010
【図８】
2010092336.tif 000011
【図９】
2010092336.tif 000012
【図１０】
2010092336.tif 000013
【図１１】
2010092336.tif 000014
【図１２】
2010092336.tif 000015
【図１３】
2010092336.tif 000016
【図１４】
2010092336.tif 000017
【図１５】
2010092336.tif 000018