(57)【特許請求の範囲】
【請求項１】
インタフェース・プロトコルに従って、他装置とのデータ転送に関する装置間インタフェース動作を行うチャネルアダプタであって、
プロトコル部及びトランシーバーを持つ１つのポート部と、各々にホスト・プロセッサ、チャネルアダプタ・ドライバー及びホスト・プロセッサ・ローカルメモリを持つ複数のホスト・プロセッサ部と、データ転送制御部及びメモリを持つキャッシュメモリ部とを有し、
装置内部のバスを介して、前記１つのポート部の前記プロトコル部と、前記キャッシュメモリ部の前記データ転送制御部と、前記複数のホスト・プロセッサ部の各々の前記ホスト・プロセッサとが相互に接続され、
前記複数のホスト・プロセッサ部の各々の前記チャネルアダプタ・ドライバーが並行して、前記１つのポート部の前記プロトコル部を制御し、前記プロトコル部は各々の前記チャネルアダプタ・ドライバーの制御に従い、前記トランシーバーを介して前記他装置とのデータ転送動作を行うと共に、前記キャッシュメモリ部の前記データ転送制御部を介して前記メモリとの間でデータ転送を行い、
各々の前記ホスト・プロセッサ・ローカルメモリには、
各々の前記ホスト・プロセッサが前記プロトコル部に対して動作指示を行うアウトバウンド・メッセージを複数個格納する領域であるアウトバウンド・メッセージ格納領域と、
前記プロトコル部が次に処理する前記アウトバウンド・メッセージ格納領域内部の格納位置を示すアウトバウンド・メッセージ・アウトポインターと、
前記プロトコル部が各々の前記ホスト・プロセッサに対してトランザクション情報又はステータス情報を通知する為のインバウンド・メッセージを複数個格納する領域であるインバウンド・メッセージ格納領域と、
前記プロトコル部が前記インバウンド・メッセージ格納領域内のどの位置に書き込みを行うかを示す為のインバウンド・メッセージ・インポインターと、
前記他装置との間で送信又は受信するファイバー・チャネルのデータフレームの格納位置及び転送長を格納する領域であるデータ情報格納領域とを含み、
前記プロトコル部には、前記チャネルアダプタ・ドライバーの個数に対応して、
各々の前記チャネルアダプタ・ドライバーが発行した複数のアウトバウンド・メッセージの末尾のメッセージが、各々の前記アウトバウンド・メッセージ格納領域内のどの位置であるかを示す為の領域である複数のアウトバウンド・メッセージ・インポインターと、
自身が各々の前記インバウンド・メッセージ格納領域を介して各々の前記ホスト・プロセッサに対して通知した複数のインバウンド・メッセージの内、各々の前記チャネルアダプタ・ドライバーが処理を完了したインバウンド・メッセージの位置を示す為の領域である複数のインバウンド・メッセージ・アウトポインターとを含む、ことを特徴とするチャネルアダプタ。
【請求項２】
請求項１記載のチャネルアダプタにおいて、
前記他装置から発行されたライトコマンドまたはリードコマンドに対する動作の場合、前記ポート部の前記トランシーバーで受信したファイバー・チャネルのコマンドフレームは、前記プロトコル部において、予め設定されている条件に基づき、前記受信したファイバー・チャネルのコマンドフレームを前記複数のチャネルアダプタ・ドライバーの何れかへ通信し、この何れかのチャネルアダプタ・ドライバーによってライト動作またはリード動作が処理される、ことを特徴とするチャネルアダプタ。
【請求項３】
請求項２記載のチャネルアダプタにおいて、
前記予め設定されている条件は、前記受信したファイバー・チャネルのコマンドフレーム内で指示されるロジカル・ユニット・ナンバーに設定されている値を読み取り、その値に対応するチャネルアダプタ・ドライバーへ送信する方法である、ことを特徴とするチャネルアダプタ。
【請求項４】
請求項３記載のチャネルアダプタにおいて、
前記他装置は情報処理装置であり、
前記情報処理装置からのコマンドに応答して、記憶媒体へのデータのライト動作およびリード動作を制御する記憶制御装置に適用される、ことを特徴とするチャネルアダプタ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置の制御技術に関し、特に装置間のデータ転送インタフェース動作を行う入出力チャネルアダプタに適用して有効な技術に関する。
【０００２】
【従来の技術】
本発明者が検討したところによれば、他装置とインタフェース動作を行う為の従来のチャネルアダプタの例としては、例えば図４に示すような構成のものが考えられる。図４に示すように、装置内部のＰＣＩ、ＰＣＩ−Ｘ等のＢｕｓ（バス）３００を介して、ポート部３１０のプロトコル部３１１、キャッシュメモリ部３４０のデータ転送制御部３４１、及びホスト・プロセッサ部３２０のホスト・プロセッサ３２１が相互に接続され、ホスト・プロセッサ部３２０のチャネルアダプタ・ドライバー３２２が、チャネルアダプタ部３２０のプロトコル部３１１を制御し、プロトコル部３１１はチャネルアダプタ・ドライバー３２２の制御に従い、トランシーバー３１２を介して他装置との間のデータ転送を行うと共に、キャッシュメモリ部３４０のデータ転送制御部３４１を介してメモリ３４２との間でデータ転送を行う接続構成が考えられる。
【０００３】
【発明が解決しようとする課題】
ところで、前記のようなチャネルアダプタの技術においては、装置間を接続するネットワークの転送レートが２Ｇｂｐｓから１０Ｇｂｐｓへと性能が向上する一方、ホスト・プロセッサ部の処理性能は前記転送レートに比例した性能の向上を安価に実現させることが困難である。その為、１個のポート部を１個のホスト・プロセッサ部で制御する従来のチャネルアダプタの構成では、ネットワークの転送性能を十分に発揮出来ないという問題が生じた。
【０００４】
そこで、本発明の目的は、安価なホスト・プロセッサの個数を増加することにより、１個のポート部を複数のチャネルアダプタ・ドライバーで制御することを可能とすることにより、ネットワークの転送性能を活用する為の技術を安価に提供することにある。
【０００５】
また、本発明のもう一つの目的は、１個のホスト・プロセッサが複数のアプリケーション・プログラムの処理を並行して実行する場合に、各アプリケーションに対応させた簡素で且つ高性能なチャネルアダプタ・ドライバーを複数使用し、１個のポート部を複数のチャネルアダプタ・ドライバーで制御することを可能とすることにより、ネットワークの転送性能を活用する為の技術を提供することにある。
【０００６】
【課題を解決するための手段】
本発明では、複数のチャネルアダプタ・ドライバーからの制御が可能なチャネルアダプタを実現する為のチャネルアダプタの構成、及びポート部−ホスト・プロセッサ部間の制御方式に特徴を有するものである。
【０００７】
すなわち、本発明は、インタフェース・プロトコルに従って、他装置とのデータ転送に関する装置間インタフェース動作を行うチャネルアダプタに適用され、このチャネルアダプタが、装置内部の複数のホスト・プロセッサとインタフェースを持ち、このホスト・プロセッサの各々にインストールされているチャネルアダプタ・ドライバーの制御に従い、並行して動作することにより、チャネルアダプタ上の１つのポートのインタフェース動作を、装置内部の複数のチャネルアダプタ・ドライバーにより制御可能とするものである。
【０００８】
また、本発明の他のチャネルアダプタは、このチャネルアダプタが、装置内部の単一のホスト・プロセッサとインタフェースを持ち、このホスト・プロセッサにインストールされている複数のチャネルアダプタ・ドライバーの制御に従い、並行して動作することにより、チャネルアダプタ上の１つのポートのインタフェース動作を、装置内部の複数のチャネルアダプタ・ドライバーにより制御可能とするものである。
【０００９】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照しながら詳細に説明する。
【００１０】
図１は、本発明の一実施の形態であるチャネルアダプタの構成の一例を示すブロック図であり、図２は、本発明のもう一つの例を示すブロック図である。図３は、本実施の形態のチャネルアダプタにおける、プロトコル部とホスト・プロセッサ部のチャネルアダプタ・ドライバーとの間での制御情報の通信動作に必要な構造の一例を示すブロック図である。
【００１１】
まず、図１により、本実施の形態のチャネルアダプタの構成の一例を説明する。図１における本実施の形態のチャネルアダプタ１５０は、プロトコル部１１１及びトランシーバー１１２を持つポート部１１０と、第１のホスト・プロセッサ１２１及び第１のチャネルアダプタ・ドライバー１２２を持つ第１のホスト・プロセッサ部１２０と、第２のホスト・プロセッサ１３１及び第２のチャネルアダプタ・ドライバー１３２を持つ第２のホスト・プロセッサ部１３０と、データ転送制御部１４１及びメモリ１４２を持つキャッシュメモリ部１４０などから成り、これらがＰＣＩ、ＰＣＩ−Ｘ等のＢｕｓ（バス）１００を介して相互に接続されて構成されている。
【００１２】
このチャネルアダプタ１５０は、装置内部のＰＣＩ、ＰＣＩ−Ｘ等のＢｕｓ１００を介して、ポート部１１０のプロトコル部１１１、キャッシュメモリ部１４０のデータ転送制御部１４１、第１のホスト・プロセッサ部１２０のホスト・プロセッサ１２１、及び第２のホスト・プロセッサ部１３０のホスト・プロセッサ１３１とが相互に接続され、第１のホスト・プロセッサ部１２０のチャネルアダプタ・ドライバー１２２と第２のホスト・プロセッサ部１３０のチャネルアダプタ・ドライバー１３２とが、ポート部１１０のプロトコル部１１１を制御し、このプロトコル部１１１はチャネルアダプタ・ドライバー１２２と１３２の双方の制御に従い、トランシーバー１１２を介して他装置とのデータ転送動作を行うと共に、キャッシュメモリ部１４０のデータ転送制御部１４１を介してメモリ１４２との間でデータ転送を行う。
【００１３】
次に、図２により、本実施の形態のもう一つのチャネルアダプタの例を説明する。図２における本実施の形態のもう一つのチャネルアダプタ２５０は、プロトコル部２１１及びトランシーバー２１２を持つポート部２１０と、ホスト・プロセッサ２２１、第１のチャネルアダプタ・ドライバー２２２ａ及び第２のチャネルアダプタ・ドライバー２２２ｂを持つホスト・プロセッサ部２２０と、データ転送制御部２４１及びメモリ２４２を持つキャッシュメモリ部２４０などから成り、これらがＰＣＩ、ＰＣＩ−Ｘ等のＢｕｓ（バス）２００を介して相互に接続されて構成されている。
【００１４】
このチャネルアダプタ２５０は、装置内部のＰＣＩ、ＰＣＩ−Ｘ等のＢｕｓ２００を介して、ポート部２１０のプロトコル部２１１、キャッシュメモリ部２４０のデータ転送制御部２４１、及びホスト・プロセッサ部２２０のホスト・プロセッサ２２１とが相互に接続され、ホスト・プロセッサ部２２０の第１のチャネルアダプタ・ドライバー２２２ａと第２のチャネルアダプタ・ドライバー２２２ｂとが、ポート部２１０のプロトコル部２１１を制御し、プロトコル部２１１はチャネルアダプタ・ドライバー２２２ａと２２２ｂの双方の制御に従い、トランシーバー２１２を介して他装置とのデータ転送動作を行うと共に、キャッシュメモリ部２４０のデータ転送制御部２４１を介してメモリ２４２との間でデータ転送を行う。
【００１５】
次に、図３により、前記図１における、プロトコル部とホスト・プロセッサ部のローカルメモリの例を詳細に説明する。図３は、プロトコル部１１１内部のレジスタ（１１３ａ，１１４ａ，１１３ｂ，１１４ｂ）、及びそれを制御する複数のホスト・プロセッサ部１２０と１３０の各々の内部のホスト・プロセッサ・ローカルメモリ１２３及び１３３内の領域を表したブロック図である。
【００１６】
第１のホスト・プロセッサ部１２０は第１のホスト・プロセッサ１２１、第１のチャネルアダプタ・ドライバー１２２、及び第１のホスト・プロセッサ・ローカルメモリ１２３から成り、ホスト・プロセッサ・ローカルメモリ１２３には、第１のホスト・プロセッサ１２１がプロトコル部１１１に対して動作指示を行うアウトバウンド・メッセージを複数個格納する領域である第１のアウトバウンド・メッセージ格納領域１２４と、プロトコル部１１１が次に処理する第１のアウトバウンド・メッセージ格納領域１２４内部の格納位置を示す第１のアウトバウンド・メッセージ・アウトポインター１２５と、プロトコル部１１１が第１のホスト・プロセッサ１２１に対してトランザクション情報又はステータス情報を通知する為のインバウンド・メッセージを複数個格納する領域である第１のインバウンド・メッセージ格納領域１２６と、プロトコル部１１１が第１のインバウンド・メッセージ格納領域１２６内のどの位置に書き込みを行うかを示す為の第１のインバウンド・メッセージ・インポインター１２７と、他装置との間で送信又は受信するＦＣＰ＿ＤＡＴＡフレームの格納位置及び転送長を格納する領域である第１のデータ情報格納領域１２８を含む。
【００１７】
同様に、第２のホスト・プロセッサ部１３０は第２のホストロプロセッサ１３１、第２のチャネルアダプタ・ドライバー１３２、及び第２のホスト・プロセッサ・ローカルメモリ１３３から成り、第２のホスト・プロセッサ・ローカルメモリ１３３には、第２のアウトバウンド・メッセージ格納領域１３４と、第２のアウトバウンド・メッセージ・アウトポインター１３５と、第２のインバウンド・メッセージ格納領域１３６と、第２のインバウンド・メッセージ・インポインター１３７と、第２のデータ情報格納領域１３８を含む。
【００１８】
また、プロトコル部１１１は、前記第１のホスト・プロセッサ部１２０の第１のチャネルアダプタ・ドライバー１２２及び第２のホスト・プロセッサ部１３０の第２のチャネルアダプタ・ドライバー１３２との通信手段として、以下のように、ホスト・プロセッサ部の個数に対応して、各種の情報格納／表示領域を備える。これらの領域には、チャネルアダプタ・ドライバー１２２及び１３２が発行した複数のアウトバウンド・メッセージの末尾のメッセージが、アウトバウンド・メッセージ格納領域１２４及び１３４内のどの位置であるかを示す為の領域である第１のアウトバウンド・メッセージ・インポインター１１３ａ及び第２のアウトバウンド・メッセージ・インポインター１１３ｂと、自身がインバウンド・メッセージ格納領域１２６及び１３６を介してホスト・プロセッサ１２１及び１３１に対して通知した複数のインバウンド・メッセージの内、チャネルアダプタ・ドライバー１２２及び１３２が処理を完了したインバウンド・メッセージの位置を示す為の領域である第１のインバウンド・メッセージ・アウトポインター１１４ａ及び第２のインバウンド・メッセージ・アウトポインター１１４ｂが含まれる。
【００１９】
次に、これらの構成を有するポート部１１０及びホスト・プロセッサ部１２０及び１３０において、他装置とのＷｒｉｔｅ／Ｒｅａｄデータ転送処理が行なわれる場合の動きを、ファイバー・チャネルのターゲットとしての動作を例に、詳細に説明する。
【００２０】
始めに、他装置とのＷｒｉｔｅデータ転送処理が行なわれる場合の動作を説明する。他装置から発行されたＷｒｉｔｅコマンドに対する動作の場合、装置はポート部１１０のトランシーバー１１２からファイバー・チャネルのコマンドフレーム（ＦＣＰ＿ＣＭＮＤ）を受信すると、このコマンドフレームはプロトコル部１１１へ転送される。プロトコル部１１１は、予め設定されている条件に基づき、受信したＷｒｉｔｅコマンドフレームを第１のホスト・プロセッサ部１２０の第１のチャネルアダプタ・ドライバー１２２又は第２のホスト・プロセッサ部１３０の第２のチャネルアダプタ・ドライバー１３２の何れか一方へ通信する。
【００２１】
予め設定される条件の例として、受信したコマンドフレーム（ＦＣＰ＿ＣＭＮＤ）内の先頭８Ｂｙｔｅで指示されるロジカル・ユニット・ナンバー（ＦＣＰ＿ＬＵＮ）に設定されている値を読み取り、その値が奇数の場合は第１のホスト・プロセッサ部１２０へ、偶数の場合は第２のホスト・プロセッサ１３０へ、夫々送信する方法が考えられる。
【００２２】
上記の条件が予め設定されていて、且つＦＣＰ＿ＣＭＮＤ内のＦＣＰ＿ＬＵＮが奇数であった場合の動作について説明する。このＷｒｉｔｅ動作は第１のホスト・プロセッサ部１２０の第１のチャネルアダプタ・ドライバー１２２によって処理されることになり、プロトコル部１１１は第１のインバウンド・メッセージ格納領域１２６に受信コマンド・フレームと『コマンドを受信した』旨のメッセージを格納し、第１のインバウンド・メッセージ・インポインター１２７を更新する。第１のチャネルアダプタ・ドライバー１２２は第１のインバウンド・メッセージ・インポインター１２７が示す第１のインバウンド・メッセージ格納領域１２６のコマンドの内容を確認し、その内容に対応して第１のチャネルアダプタ・ドライバー１２２はＷｒｉｔｅデータ受信に必要なキャッシュ領域をメモリ１４２内に確保し、プロトコル部１１１内の第１のインバウンド・メッセージ・アウトポインター領域１１４ａに対して『インバウンド・メッセージの内容を処理した』旨を送信する。
【００２３】
引き続き、第１のチャネルアダプタ・ドライバー１２２は受信したコマンドに対する応答として他装置へのトランスファー・レディー（ＦＣＰ＿ＸＦＥＲ＿ＲＤＹ）を作成し、第１のアウトバウンド・メッセージ格納領域１２４に格納した後に、第１のアウトバウンド・メッセージ・インポインター１１３ａを更新する。プロトコル部１１１は第１のアウトバウンド・メッセージ・インポインター１１３ａが示す位置のアウトバウンド・メッセージ内のＦＣＰ＿ＸＦＥＲ＿ＲＤＹ送信指示を読み取った後に、第１のホスト・プロセッサ・ローカルメモリ１２３の内部に有る第１のアウトバウンド・メッセージ・アウトポインター１２５を更新して、アウトバウンド・メッセージの指示を読み取ったことを通知し、メッセージの指示に従いトランシーバー１１２を介してＦＣＰ＿ＸＦＥＲ＿ＲＤＹを他装置へ送信する。
【００２４】
この後、プロトコル部１１１は、他装置から送信されるＦＣＰ＿ＤＡＴＡフレームをトランシーバー１１２を介して受信すると、データ転送制御部１４１を介して、第１のデータ情報格納領域１２８で指定される、このデータの格納場所の先頭アドレス及び転送長の情報に従い、メモリ１４２の領域へ受信データを送信する。
【００２５】
プロトコル部１１１は第１のデータ情報格納領域１２８で指定されたデータの受信を完了すると、第１のチャネルアダプタ・ドライバー１２２に対して転送終了の通知を行なう為に、第１のホスト・プロセッサ・ローカルメモリ１２３内の第１のインバウンド・メッセージ格納領域１２６へその旨書き込みを行ない、加えて第１のインバウンド・メッセージ・インポインター１２７の更新を行なう。第１のチャネルアダプタ・ドライバー１２２は第１のインバウンド・メッセージ・インポインター１２７の更新に基づき、データ転送終了後の状態をチェックして、第１のインバウンド・メッセージ・アウトポインター１１４ａを更新し、『インバウンド・メッセージの内容を処理した』旨を送信する。
【００２６】
最後に、第１のチャネルアダプタ・ドライバー１２２は他装置に対してレスポンス（ＦＣＰ＿ＲＳＰ）を送信する為のアウトバウンド・メッセージを作成し、第１のアウトバウンド・メッセージ格納領域１２４に格納した後に、第１のアウトバウンド・メッセージ・インポインター１１３ａを更新する。その結果を受けてプロトコル部１１１は第１のアウトバウンド・メッセージ格納領域１２４内のＦＣＰ＿ＲＳＰ送信指示を読み出し、第１のアウトバウンド・メッセージ・アウトポインター１２５を更新し、レスポンス（ＦＣＰ＿ＲＳＰ）を他装置へ送信する。プロトコル部１１１は第１のホスト・プロセッサ１２１に対してレスポンスの送信終了の通知を行なう為に、第１のホスト・プロセッサ・ローカルメモリ１２３内の第１のインバウンド・メッセージ格納領域１２６へその旨書き込みを行ない、加えて第１のインバウンド・メッセージ・インポインター１２７の更新を行なう。第１のインバウンド・メッセージ・インポインター１２７の更新に基づき、第１のホスト・プロセッサ１２１は第１のインバウンド・メッセージ格納領域１２６のデータ転送終了後の状態をチェックして、第１のインバウンド・メッセージ・アウトポインター１１４ａを更新して『終了した』旨を送信する。
【００２７】
続いて、他装置とのＲｅａｄデータ転送処理が行なわれる場合の動作を説明する。他装置から発行されたＲｅａｄコマンドに対する動作の場合、装置はポート部１１０のトランシーバー１１２からファイバー・チャネルのコマンドフレーム（ＦＣＰ＿ＣＭＮＤ）を受信すると、当該コマンドフレームはプロトコル部１１１へ転送される。プロトコル部１１１は、予め設定されている条件に基づき、受信したＲｅａｄコマンドフレームを第１のホスト・プロセッサ部１２０の第１のチャネルアダプタ・ドライバー１２２又は第２のホスト・プロセッサ部１３０の第２のチャネルアダプタ・ドライバー１３２の何れか一方へ通信する。
【００２８】
前記のＷｒｉｔｅコマンド動作と同一の条件が予め設定されていて、且つＦＣＰ＿ＣＭＮＤ内のＦＣＰ＿ＬＵＮが偶数であった場合の動作について説明する。このＲｅａｄ動作は第２のホスト・プロセッサ部１３０の第２のチャネルアダプタ・ドライバー１３２によって処理されることになり、プロトコル部１１１は第２のインバウンド・メッセージ格納領域１３６に受信コマンド・フレームと『コマンドを受信した』旨のメッセージを格納し、第２のインバウンド・メッセージ・インポインター１３７を更新する。第２のチャネルアダプタ・ドライバー１３２は第２のインバウンド・メッセージ・インポインター１３７が示す第２のインバウンド・メッセージ格納領域１３６内のコマンドの内容を確認し、その内容に対応して第２のチャネルアダプタ・ドライバー１３２はＲｅａｄデータ送信に必要なキャッシュ領域をメモリ１４２内に確保し、プロトコル部１１１内の第２のインバウンド・メッセージ・アウトポインター領域１１４ｂに対して『インバウンド・メッセージの内容を処理した』旨を送信する。
【００２９】
引き続き、第２のチャネルアダプタ・ドライバー１３２は他装置に対してＲｅａｄデータを送信する為に必要な情報を第２のデータ情報格納領域１３８に格納し、その後、プロトコル部１１１に対してＲｅａｄデータの送信を指示するアウトバウンド・メッセージを第２のアウトバウンドメッセージ格納領域１３４に格納し、第２のアウトバウンド・メッセージ・インポインター１１３ｂを更新する。プロトコル部１１１は第２のアウトバウンド・メッセージ・インポインター１１３ｂが示す位置のアウトバウンド・メッセージを読み取った後に、第２のホスト・プロセッサ・ローカルメモリ１３３の内部に有る第２のアウトバウンド・メッセージ・アウトポインター１３５を更新して、アウトバウンド・メッセージの指示を読み取ったことを通知し、メッセージの指示と第２のデータ情報格納領域１３８の情報に従いトランシーバー１１２を介してＲｅａｄデータをデータ転送制御部１４１を介してメモリ１４２から他装置へ送信する。
【００３０】
プロトコル部１１１は第２のデータ情報格納領域１３８で指定されたデータの送信を完了すると、第２のチャネルアダプタ・ドライバー１３２に対して転送終了の通知を行なう為に、第２のホスト・プロセッサ・ローカルメモリ１３３内の第２のインバウンド・メッセージ格納領域１３６へその旨書き込みを行ない、加えて第２のインバウンド・メッセージ・インポインター１３７の更新を行なう。第２のホスト・プロセッサ１３１は第２のインバウンド・メッセージ・インポインター１３７の更新に基づき、データ転送終了後の状態をチェックして、第２のインバウンド・メッセージ・アウトポインター１１４ｂを更新し、『インバウンド・メッセージの内容を処理した』旨を送信する。
【００３１】
最後に、第２のチャネルアダプタ・ドライバー１３２は他装置に対してレスポンス（ＦＣＰ＿ＲＳＰ）を送信する為のアウトバウンド・メッセージを作成し、第２のアウトバウンド・メッセージ格納領域１３４に格納した後に、第２のアウトバウンド・メッセージ・インポインター１１３ｂを更新する。その結果を受けてプロトコル部１１１は第２のアウトバウンド・メッセージ格納領域１３４内のＦＣＰ＿ＲＳＰ送信指示を読み出し、第２のアウトバウンド・メッセージ・アウトポインター１３５を更新し、レスポンス（ＦＣＰ＿ＲＳＰ）を他装置へ送信する。プロトコル部１１１は第２のホスト・プロセッサ１３１に対してレスポンスの送信終了の通知を行なう為に、第２のホスト・プロセッサ・ローカルメモリ１３３内の第２のインバウンド・メッセージ格納領域１３６へその旨書き込みを行ない、加えて第２のインバウンド・メッセージ・インポインター１３７の更新を行なう。第２のインバウンド・メッセージ・インポインター１３７の更新に基づき、第２のチャネルアダプタ・ドライバー１３２は第２のインバウンド・メッセージ格納領域１３６のデータ転送終了後の状態をチェックして、第２のインバウンド・メッセージ・アウトポインター１１４ｂを更新して『終了した』旨を送信する。
【００３２】
以上の様に、他装置から送信されたＦＣＰ＿ＣＭＤを受信した場合に、複数のホスト・プロセッサと通信する手段及び予め設定されている条件に基づき複数のホスト・プロセッサ部の一つを選択することを可能とすることにより、従来の１個のホスト・プロセッサ部での制御と比較して、高速な処理を実現可能となる。
【００３３】
すなわち、本実施の形態によれば、他装置との間のデータ転送制御処理の高速化を実現する為のチャネルアダプタの構成を、従来の『単一チャネルアダプタ・ドライバーで１個のポートを制御する』ものから、『複数のチャネルアダプタ・ドライバーで１個のポートを制御する』方法を採用することで、ネットワークの転送レートの性能向上に対応したデータ転送制御処理の性能向上を実現して、ネットワークの活用を実現することができる。
【００３４】
本発明のアダプタは、データの送受信を行う機器間でのアダプタとして用いることができるのは言うまでもないが、取り分け情報処理装置からのコマンドに応答して、記憶媒体へのデータの書き込みや読み出しを制御する記憶制御装置に最適である。
【００３５】
【発明の効果】
本発明により、１個のポートを単一のチャネルアダプタ・ドライバーで制御した場合と比較して、データ転送制御処理の高速化が可能となり、ネットワークの転送レートの性能向上（２Ｇｂｐｓから１０Ｇｂｐｓ）に対応したプロセッサ性能を実現することができる、という効果が得られる。
【図面の簡単な説明】
【図１】本発明の一実施の形態であるチャネルアダプタの構成の一例を示すブロック図である。
【図２】本発明の一実施の形態であるチャネルアダプタの構成のもう一つの例を示すブロック図である。
【図３】本発明の一実施の形態において、図１内の１個のポート部と、２個のホスト・プロセッサ部内のローカルメモリ、ローカルメモリ内の領域、及びプロトコル部内の情報格納／表示領域を表わしたブロック図である。
【図４】本発明の前提として検討した従来のチャネルアダプタの構成を表わすブロック図である。
【符号の説明】
１００…ＰＣＩ、ＰＣＩ−Ｘ等のＢｕｓ、１１０…ポート部、１１１…プロトコル部、１１３ａ…第１のアウトバウンド・メッセージ・インポインター、１１３ｂ…第２のアウトバウンド・メッセージ・インポインター、１１４ａ…第１のインバウンド・メッセージ・アウトポインター、１１４ｂ…第２のインバウンド・メッセージ・アウトポインター、１１２…トランシーバー、１２０…第１のホスト・プロセッサ部、１２１…第１のホスト・プロセッサ、１２２…第１のチャネルアダプタ・ドライバー、１２３…第１のホスト・プロセッサ・ローカルメモリ、１２４…第１のアウトバウンド・メッセージ格納領域、１２５…第１のアウトバウンド・メッセージ・アウトポインター、１２６…第１のインバウンド・メッセージ格納領域、１２７…第１のインバウンド・メッセージ・インポインター、１２８…第１のデータ情報格納領域、１３０…第２のホスト・プロセッサ部、１３１…第２のホスト・プロセッサ、１３２…第２のチャネルアダプタ・ドライバー、１３３…第２のホスト・プロセッサ・ローカルメモリ、１３４…第２のアウトバウンド・メッセージ格納領域、１３５…第２のアウトバウンド・メッセージ・アウトポインター、１３６…第２のインバウンド・メッセージ格納領域、１３７…第２のインバウンド・メッセージ・インポインター、１３８…第２のデータ情報格納領域、１４０…キャッシュメモリ部、１４１…データ転送制御部、１４２…メモリ、１５０…チャネルアダプタ、
２００…ＰＣＩ、ＰＣＩ−Ｘ等のＢｕｓ、２１０…ポート部、２１１…プロトコル部、２１２…トランシーバー、２２０…ホスト・プロセッサ部、２２１…ホスト・プロセッサ、２２２ａ…第１のチャネルアダプタ・ドライバー、２２２ｂ…第２のチャネルアダプタ・ドライバー、２４０…キャッシュメモリ部、２４１…データ転送制御部、２４２…メモリ、２５０…チャネルアダプタ、
３００…ＰＣＩ、ＰＣＩ−Ｘ等のＢｕｓ、３１０…ポート部、３１１…プロトコル部、３１２…トランシーバー、３２０…ホスト・プロセッサ部、３２１…ホスト・プロセッサ、３２２…チャネルアダプタ・ドライバー、３４０…キャッシュメモリ部、３４１…データ転送制御部、３４２…メモリ、３５０…チャネルアダプタ。
【図１】
0004339623.tif 000002
【図２】
0004339623.tif 000003
【図３】
0004339623.tif 000004
【図４】
0004339623.tif 000005