(57)【要約】【課題】  入出力処理システムにおいて制御ユニットとチャネル・サブシステムとの間の通信を処理するためのコンピュータ・プログラム、装置、および方法を提供する。【解決手段】  コンピュータ・プログラムは、処理回路によって読み取り可能であり方法を実行するために処理回路によって実行される命令を記憶する有形の記憶媒体を含む。この方法は、チャネル・サブシステムから制御ユニットに、入出力動作を開始するためのコマンドを送信するステップと、動作の完了のための時間期間を設定するステップと、動作が時間期間内に完了しないことに応答して、制御ユニットがコマンドについてオープンな交換を有するか否かを判定するためのメッセージを送信するステップと、を含む。【選択図】  図１０
2011512586.tif 000002
【特許請求の範囲】
【請求項１】
入出力処理システムにおいて制御ユニットとチャネル・サブシステムとの間の通信を処理するためのコンピュータ・プログラムであって、処理回路によって読み取り可能であり方法を実行するために前記処理回路によって実行される命令を記憶する有形の記憶媒体を含み、前記方法が、
前記チャネル・サブシステムから前記制御ユニットに、入出力動作を開始するためのコマンドを送信するステップと、
前記動作の完了のための時間期間を設定するステップと、
前記動作が前記時間期間内に完了しないことに応答して、前記制御ユニットが前記コマンドについてオープンな交換を有するか否かを判定するためのメッセージを送信するステップと、
を含む、コンピュータ・プログラム。
【請求項２】
前記コマンドおよび前記メッセージが、トランスポート制御ワード（ＴＣＷ）をサポートするプロトコルを用いるモードにある、請求項１に記載のコンピュータ・プログラム。
【請求項３】
前記コマンドを送信するステップが前記制御ユニットとの第１の交換をオープンすることを含み、前記メッセージを送信するステップが前記制御ユニットとの第２の交換をオープンするステップを含む、請求項１に記載のコンピュータ・プログラム。
【請求項４】
前記メッセージがＲＥＣ（ReadExchange Concise）メッセージである、請求項１に記載のコンピュータ・プログラム。
【請求項５】
前記動作の完了が、前記動作が完了したことを示す完了メッセージを前記制御ユニットから受信することを含む、請求項１に記載のコンピュータ・プログラム。
【請求項６】
前記制御ユニットが前記コマンドについてオープンな前記交換を有することを示す、前記メッセージに対する応答を受信するステップと、
前記制御ユニットが前記コマンドについてオープンな前記交換を有することを示す前記応答に応じて、追加の時間期間の後に前記メッセージを前記制御ユニットに再送信するステップと、
を更に含む、請求項１に記載のコンピュータ・プログラム。
【請求項７】
前記制御ユニットが前記コマンドについてオープンな前記交換を有することを示す、前記メッセージに対する応答を受信するステップと、
前記制御ユニットが前記コマンドについてオープンな交換を有しないことを示す前記応答に応じて、前記動作を中止するステップと、
を更に含む、請求項１に記載のコンピュータ・プログラム。
【請求項８】
前記メッセージを送信するステップが、ｉ）前記動作の完了およびｉｉ）前記制御ユニットが前記コマンドについてオープンな前記交換を有しないことを示す、前記メッセージに対する応答の受信の一方まで、前記メッセージを定期的に送信することを含む、請求項１に記載のコンピュータ・プログラム。
【請求項９】
前記メッセージを定期的に送信することが、
前記時間期間が終了したら、前記メッセージを前記制御ユニットに送信することと、
前記制御ユニットが前記コマンドについてオープンな前記交換を有することを示す応答を前記制御ユニットから受信することと、
前記動作の完了のための追加の時間期間をセットすることと、
前記追加の時間期間が終了したら、前記制御ユニットが前記動作の実行を継続しているか否かを判定するために、前記メッセージを再送信することと、
を含む、請求項１に記載のコンピュータ・プログラム。
【請求項１０】
前記コマンドを送信するステップが、トランスポート制御ワード（ＴＣＷ）をサポートするプロトコルを用いるトランスポート・モードで前記コマンドを送信することを含み、
前記時間期間が、前記動作が完了したことを示す完了メッセージを前記制御ユニットから受信するための第１の時間期間であり、
前記メッセージがＲＥＣ（ReadExchange Concise）メッセージであり、前記メッセージを送信するステップが、前記第１の時間期間内に前記完了メッセージを受信しないことに応答したものであり、
前記方法が、
前記制御ユニットが前記コマンドについてオープンな前記交換を有することを示す、前記ＲＥＣメッセージに対する応答を受信するステップと、
前記制御ユニットが前記コマンドについてオープンな前記交換を有することを示す前記応答に応じて、前記動作の完了のための第２の時間期間をセットするステップと、
前記追加の時間期間が終了したら、前記制御ユニットが前記動作の実行を継続しているか否かを判定するために、前記ＲＥＣメッセージを再送信するステップと、
を更に含む、請求項１に記載のコンピュータ・プログラム。
【請求項１１】
入出力処理システムにおいて通信を処理するための装置であって、
Ｉ／Ｏデバイスのステータスを指揮し判定することができる制御ユニットとの通信を行うために構成されたホスト・コンピュータ・システムのチャネル・サブシステムであって、
前記制御ユニットに、入出力動作を開始するためのコマンドを送信することと、
前記動作の完了のための時間期間を設定することと、
前記動作が前記時間期間内に完了しないことに応答して、前記制御ユニットが前記コマンドについてオープンな交換を有するか否かを判定するためのメッセージを送信することと、
を実行するチャネル・サブシステムを含む、装置。
【請求項１２】
前記コマンドおよび前記メッセージが、トランスポート制御ワード（ＴＣＷ）をサポートするプロトコルを用いるモードにある、請求項１１に記載の装置。
【請求項１３】
前記メッセージがＲＥＣ（ReadExchange Concise）メッセージである、請求項１１に記載の装置。
【請求項１４】
前記コマンドを送信することが前記制御ユニットとの第１の交換をオープンすることを含み、前記メッセージを送信することが前記制御ユニットとの第２の交換をオープンすることを含む、請求項１１に記載の装置。
【請求項１５】
前記動作の完了が、前記動作が完了したことを示す完了メッセージを前記制御ユニットから受信することを含む、請求項１１に記載の装置。
【請求項１６】
前記制御ユニットが前記コマンドについてオープンな前記交換を有することを示す、前記メッセージに対する応答を受信することと、
前記制御ユニットが前記コマンドについてオープンな前記交換を有することを示す前記応答に応じて、追加の時間期間の後に前記メッセージを前記制御ユニットに再送信することと、
を更に含む、請求項１１に記載の装置。
【請求項１７】
前記制御ユニットが前記コマンドについてオープンな前記交換を有することを示す、前記メッセージに対する応答を受信することと、
前記制御ユニットが前記コマンドについてオープンな交換を有しないことを示す前記応答に応じて、前記動作を中止することと、
を更に含む、請求項１１に記載の装置。
【請求項１８】
前記メッセージを送信することが、ｉ）前記動作の完了およびｉｉ）前記制御ユニットが前記コマンドについてオープンな前記交換を有しないことを示す、前記メッセージに対する応答の受信の一方まで、前記メッセージを定期的に送信することを含む、請求項１１に記載の装置。
【請求項１９】
前記メッセージを定期的に送信することが、
前記時間期間が終了したら、前記メッセージを前記制御ユニットに送信することと、
前記制御ユニットが前記コマンドについてオープンな前記交換を有することを示す応答を前記制御ユニットから受信することと、
前記動作の完了のための追加の時間期間をセットすることと、
前記追加の時間期間が終了したら、前記制御ユニットが前記動作の実行を継続しているか否かを判定するために、前記メッセージを再送信することと、
を含む、請求項１８に記載の装置。
【請求項２０】
前記コマンドを送信するステップが、トランスポート制御ワード（ＴＣＷ）をサポートするプロトコルを用いるトランスポート・モードで前記コマンドを送信することを含み、
前記時間期間が、前記動作が完了したことを示す完了メッセージを前記制御ユニットから受信するための第１の時間期間であり、
前記メッセージがＲＥＣ（ReadExchange Concise）メッセージであり、前記メッセージを送信するステップが、前記第１の時間期間内に前記完了メッセージを受信しないことに応答したものであり、
前記チャネル・サブシステムが、
前記制御ユニットが前記コマンドについてオープンな前記交換を有することを示す、前記ＲＥＣメッセージに対する応答を受信することと、
前記制御ユニットが前記コマンドについてオープンな前記交換を有することを示す前記応答に応じて、前記動作の完了のための第２の時間期間をセットすることと、
前記追加の時間期間が終了したら、前記制御ユニットが前記動作の実行を継続しているか否かを判定するために、前記ＲＥＣメッセージを再送信することと、
を更に実行する、請求項１に記載の装置。
【請求項２１】
入出力処理システムにおいて制御ユニットとチャネル・サブシステムとの間の通信を処理する方法であって、
前記チャネル・サブシステムから前記制御ユニットに、入出力動作を開始するためのコマンドを送信するステップと、
前記動作の完了のための時間期間を設定するステップと、
前記動作が前記時間期間内に完了しないことに応答して、前記制御ユニットが前記コマンドについてオープンな交換を有するか否かを判定するためのメッセージを送信するステップと、
を含む、方法。
【請求項２２】
前記メッセージがＲＥＣ（ReadExchange Concise）メッセージである、請求項２１に記載の方法。
【請求項２３】
前記制御ユニットが前記コマンドについてオープンな前記交換を有することを示す前記応答に応じて、追加の時間期間の後に第２のメッセージを前記制御ユニットに再送信するステップを更に含む、請求項２１に記載の方法。
【請求項２４】
前記メッセージを送信するステップが、ｉ）前記動作の完了およびｉｉ）前記制御ユニットが前記コマンドについてオープンな前記交換を有しないことを示す、前記メッセージに対する応答の受信の一方まで、前記メッセージを定期的に送信することを含む、請求項２１に記載の方法。
【請求項２５】
前記コマンドを送信するステップが、トランスポート制御ワード（ＴＣＷ）をサポートするプロトコルを用いるトランスポート・モードで前記コマンドを送信することを含み、
前記時間期間が、前記動作が完了したことを示す完了メッセージを前記制御ユニットから受信するための第１の時間期間であり、
前記メッセージがＲＥＣ（ReadExchange Concise）メッセージであり、前記メッセージを送信するステップが、前記第１の時間期間内に前記完了メッセージを受信しないことに応答したものであり、
前記方法が、
前記制御ユニットが前記コマンドについてオープンな前記交換を有することを示す、前記ＲＥＣメッセージに対する応答を受信するステップと、
前記制御ユニットが前記コマンドについてオープンな前記交換を有することを示す前記応答に応じて、前記動作の完了のための第２の時間期間をセットするステップと、
前記追加の時間期間が終了したら、前記制御ユニットが前記動作の実行を継続しているか否かを判定するために、前記ＲＥＣメッセージを再送信するステップと、
を更に含む、請求項２１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に入出力処理に関し、具体的には、Ｉ／Ｏ処理に関連する動作の進行の判定または監視あるいはその両方に関する。
【背景技術】
【０００２】
入出力（Ｉ／Ｏ）動作は、Ｉ／Ｏ処理システムのメモリとＩ／Ｏデバイスとの間でデータを転送するために用いられる。具体的には、Ｉ／Ｏ動作を実行することによって、メモリから１つ以上のＩ／Ｏデバイスにデータが書き込まれると共に、１つ以上のＩ／Ｏデバイスからメモリにデータが読み取られる。
【０００３】
Ｉ／Ｏ動作の処理を容易にするために、Ｉ／Ｏ処理システムのＩ／Ｏサブシステムが用いられる。Ｉ／Ｏサブシステムは、Ｉ／Ｏ処理システムのメイン・メモリおよびＩ／Ｏデバイスに結合され、メモリとＩ／Ｏデバイスとの間の情報フローを誘導する。Ｉ／Ｏサブシステムの一例は、チャネル・サブシステムである。チャネル・サブシステムは、チャネル経路を通信媒体として用いる。各チャネル経路が含むチャネルは制御ユニットに結合されており、制御ユニットは更に１つ以上のＩ／Ｏデバイスに結合されている。
【０００４】
チャネル・サブシステムは、Ｉ／Ｏデバイスとメモリとの間でデータを転送するために、チャネル・コマンド・ワード（ＣＣＷ：channel command word）を用いる。ＣＣＷは、実行するコマンドを特定する。あるＩ／Ｏ動作を開始するコマンドでは、ＣＣＷは、その動作に関連付けられたメモリ領域、その領域に対する転送またはその領域からの転送が完了した場合にいつでも行われるアクション、および他のオプションを指定する。
【０００５】
Ｉ／Ｏ処理の間、チャネルによってメモリからＣＣＷのリストがフェッチされる。チャネルは、ＣＣＷのリストからの各コマンドをパーズし、各々がそれ自身のエンティティ内にある多数のコマンドを、チャネルに結合された制御ユニットに送出する。次いで、制御ユニットがコマンドを処理する。チャネルは、各コマンドの状態を追跡し、いつ次のコマンド・セットを処理のために制御ユニットに送信するかを制御する。チャネルによって、各コマンドがそれ自身のエンティティ内で制御ユニットに送信されることが確実となる。コマンドに対する応答（すなわち「コマンド応答」または「ＣＭＲ」）が、制御ユニットからチャネルに送信されて、制御ユニットがアクティブであり動作していてコマンドを受信し実行していることの指示をチャネルに提供する。更に、チャネルは、各コマンドについて制御ユニットからの応答の処理に関連したある情報を推論する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許第５，４６１，７２１号
【特許文献２】米国特許第５，５２６，４８４号
【特許文献３】米国特許出願第１１／４６４，６１３号
【非特許文献】
【０００７】
【非特許文献１】「IBM（Ｒ） z/Architecture Principles of Operation」Publication No. SA22-7832-05、第６版（２００７年４月）
【非特許文献２】「FibreChannel Single Byte Command Code Sets-3 Mapping Protocol （FC-SB-3）」、T11/Project1357-D/Rev. 1.6、INCITS（２００３年３月）
【非特許文献３】「InformationTechnology - Fibre Channel Protocol for SCSI, Third Version (FCP-3)」、T10 Project 1560-D、Revision 4（２００５年９月１３日）
【発明の概要】
【発明が解決しようとする課題】
【０００８】
現在、各コマンドについて制御ユニットからの応答を必要とすることなく、制御ユニットがコマンドを受信したか否かを判定することを可能とするリンク・プロトコルは存在しない。典型的に、現在のリンク・プロトコルでは、制御ユニットが各コマンドに対する応答を送信して、コマンドが受信され、制御ユニットがコマンドを実行していることを示す必要がある。各コマンドに対して応答しなければならないこの必要性によって、リンク・プロトコルの性能が損なわれる。
【０００９】
更に、動作中にＩ／Ｏ動作の進行を監視して問題の早期検出を可能とするリンク・プロトコルは存在しない。
【００１０】
従って、当技術分野において、チャネルが、各コマンドに対する応答を必要とすることなく、コマンドが受信されたか否かを判定することを可能とすると共に、チャネルがＩ／Ｏ動作の進行を監視することを可能とするシステムおよび方法が必要とされている。
【課題を解決するための手段】
【００１１】
本発明の実施形態は、入出力処理システムにおいて制御ユニットとチャネル・サブシステムとの間の通信を処理するためのコンピュータ・プログラムを含む。このコンピュータ・プログラムは、処理回路によって読み取り可能であり方法を実行するために処理回路によって実行される命令を記憶する有形の記憶媒体を含む。この方法は、チャネル・サブシステムから制御ユニットに、入出力動作を開始するためのコマンドを送信するステップと、動作の完了のための時間期間を設定するステップと、動作が時間期間内に完了しないことに応答して、制御ユニットがコマンドについてオープンな交換を有するか否かを判定するためのメッセージを送信するステップと、を含む。
【００１２】
更に別の実施形態は、入出力処理システムにおいて通信を処理するための装置を含む。この装置は、Ｉ／Ｏデバイスのステータスを指揮し判定することができる制御ユニットとの通信を行うために構成されたホスト・コンピュータ・システムのチャネル・サブシステムを含む。チャネル・サブシステムは、制御ユニットに、入出力動作を開始するためのコマンドを送信することと、動作の完了のための時間期間を設定することと、動作が時間期間内に完了しないことに応答して、制御ユニットがコマンドについてオープンな交換を有するか否かを判定するためのメッセージを送信することと、を実行する。
【００１３】
更に別の実施形態は、入出力処理システムにおいて制御ユニットとチャネル・サブシステムとの間の通信を処理する方法を含む。この方法は、チャネル・サブシステムから制御ユニットに、入出力動作を開始するためのコマンドを送信するステップと、動作の完了のための時間期間を設定するステップと、動作が時間期間内に完了しないことに応答して、制御ユニットがコマンドについてオープンな交換を有するか否かを判定するためのメッセージを送信するステップと、を含む。
【００１４】
実施形態に従った、他の装置、方法、コンピュータ・プログラム、あるいはそれら全ては、以下の図面および詳細な説明を検討すれば、当業者には明らかとなろう。かかる全ての追加のシステム、方法、またはコンピュータ・プログラム、あるいはそれら全ては、本記載内に包含され、本発明の範囲内にあり、添付の特許請求の範囲によって保護されることが意図される。
【００１５】
本発明として見なされる主題は、本明細書の最後にある特許請求の範囲に特に指摘され、明確に請求されている。本発明の前述およびその他の目的、特徴、および利点は、添付図面と関連付けて述べられる以下の詳細な説明から明らかである。
【図面の簡単な説明】
【００１６】
【図１】本発明の１つ以上の態様を組み込んで用いたＩ／Ｏ処理システムの一実施形態を示す。
【図２】従来技術のチャネル・コマンド・ワードの一例を示す。
【図３】従来技術のチャネル・コマンド・ワード・チャネル・プログラムの一例を示す。
【図４】図３のチャネル・コマンド・ワード・チャネル・プログラムを実行するためにチャネルと制御ユニットとの間の通信において用いられる従来技術のリンク・プロトコルの一実施形態を示す。
【図５】本発明の一態様に従ったトランスポート制御ワード・チャネル・プログラムの一実施形態を示す。
【図６】本発明の一態様に従った、図５のトランスポート制御ワード・チャネル・プログラムを実行するためにチャネルと制御ユニットとの間の通信に用いられるリンク・プロトコルの一実施形態を示す。
【図７】チャネル・コマンド・ワード・チャネル・プログラムの４つの読み取りコマンドを実行するためにチャネルと制御ユニットとの間の通信に用いられる従来技術のリンク・プロトコルの一実施形態を示す。
【図８】本発明の一態様に従った、トランスポート制御ワード・チャネル・プログラムの４つの読み取りコマンドを処理するためにチャネルと制御ユニットとの間の通信に用いられるリンク・プロトコルの一実施形態を示す。
【図９】本発明の一態様に従った、制御ユニットとチャネルの一実施形態を示す。
【図１０】制御ユニットがコマンドについてオープンな交換を有するか否かを判定するため、またはＩ／Ｏ動作の進行を監視するため、あるいはその両方のためのプロセスの一実施形態を示す。
【図１１】制御ユニットがコマンドについてオープンな交換を有するか否かを判定するため、またはＩ／Ｏ動作の進行を監視するため、あるいはその両方のための、チャネルと制御ユニットとの間の通信に用いられるリンク・プロトコルの一実施形態を示す。
【図１２】本発明の１つ以上の態様を組み込んだ製造品の一実施形態を示す。
【発明を実施するための形態】
【００１７】
詳細な説明は、一例として添付図面を参照して、利点および特徴と共に本発明の好適な実施形態を説明する。
【００１８】
本発明の一態様によれば、入出力（Ｉ／Ｏ）処理が容易になる。例えば、チャネルと制御ユニットとの間の情報処理を容易に実行可能とすることによって、Ｉ／Ｏ動作を円滑化する。一例において、Ｉ／Ｏ処理を円滑化するために、制御ユニットがコマンドについてオープンな交換を有するか否かを判定するため、またはＩ／Ｏ動作の進行を監視するため、あるいはその両方のためのシステムおよび方法を提供する。本明細書において言及する場合、「監視する」とは、制御ユニットに１つ以上のメッセージを送信して制御ユニットがコマンドについてオープンな交換を有するか否かを判定すること、または、制御ユニットにおいてＩ／Ｏ動作が保留中であるかまたは進行しているか否かを判定すること、あるいはその両方を行うことを包含する場合がある。例示的な実施形態においては、１つ以上のメッセージは、拡張リンク・サービス（ＥＬＳ：Extended Link Service）ＲＥＣ（Read Exchange Concise）メッセージである。
【００１９】
１つの例示的な実施形態において、チャネルは、本明細書においてトランスポート・コマンド制御ブロック（ＴＣＣＢ）と称するブロック内の１つ以上のコマンドを含み、そのアドレスはトランスポート制御ワード（ＴＣＷ）において特定される。ＴＣＷは、オペレーティング・システムまたは他のアプリケーションからＩ／Ｏ通信アダプタに送信され、次いでこのＩ／Ｏ通信アダプタがコマンド・メッセージ内のＴＣＣＢを処理のために制御ユニットに送出する。制御ユニットは各コマンドを処理し、Ｉ／Ｏ通信アダプタによる個々のコマンドに関するステータスの追跡は行われない。また、複数のコマンドはチャネル・プログラムとも称され、これは、Ｉ／Ｏ通信アダプタでなく制御ユニット上でパーズされ実行される。
【００２０】
例示的な実施形態において、制御ユニットは、チャネル・プログラムの実行に応答して応答メッセージを発生する。また、制御ユニットは、限られた数の通信状況のもとで、例えばＩ／Ｏ通信アダプタにチャネル・プログラムが実行されないことを通知するため、チャネル・プログラムを実行することなく応答メッセージを発生する場合がある。制御ユニットは、Ｉ／Ｏ通信アダプタとＩ／Ｏデバイスとの間の通信をサポートするために、更に、チャネル・プログラムの実行のサポートにおいて、多数の要素を含むことができる。例えば、制御ユニットは、通信およびステータス監視を容易にするための１つ以上のキュー、タイマ、およびレジスタに加えて、メッセージをパーズし処理するための制御論理を含むことができる。Ｉ／Ｏ通信アダプタは、応答メッセージ、抽出情報をパーズし、抽出した情報を用いて更に別の動作を実行する。
【００２１】
図１を参照して、本発明の１つ以上の態様を組み込んで用いているＩ／Ｏ処理システムの一例を説明する。Ｉ／Ｏ処理システム１００はホスト・システム１０１を含み、これが更に、例えばメイン・メモリ１０２、１つ以上の中央演算処理装置（ＣＰＵ）１０４、記憶制御要素１０６、およびチャネル・サブシステム１０８を含む。ホスト・システム１０１は、メインフレームまたはサーバ等の大規模コンピューティング・システムとすれば良い。また、Ｉ／Ｏ処理システム１００は、１つ以上の制御ユニット１１０および１つ以上のＩ／Ｏデバイス１１２を含む。これらの各々については、以下で説明する。
【００２２】
メイン・メモリ１０２は、Ｉ／Ｏデバイス１１２からの入力とすることができるデータおよびプログラムを記憶する。例えば、メイン・メモリ１０２は、ＣＰＵ１０４の１つ以上によって実行される１つ以上のオペレーティング・システム（ＯＳ）１０３を含むことができる。例えば、１つのＣＰＵ１０４は、Ｌｉｎｕｘ（Ｒ）オペレーティング・システム１０３およびｚ／ＯＳ（Ｒ）オペレーティング・システム１０３を異なる仮想マシン・インスタンスとして実行することができる。メイン・メモリ１０２は、直接アドレス可能であり、ＣＰＵ１０４およびチャネル・サブシステム１０８による高速データ処理を可能とする。
【００２３】
ＣＰＵ１０４は、Ｉ／Ｏ処理システム１００の制御センターである。これは、命令実行、割り込み動作、タイミング機能、初期プログラム・ロード、および他の機械関連機能のためのシーケンスおよび処理機構を含む。ＣＰＵ１０４は、双方向または単方向バス等の接続１１４を介して記憶制御要素１０６に結合されている。
【００２４】
記憶制御要素１０６は、バス等の接続１１６を介してメイン・メモリ１０２に結合され、接続１１４を介してＣＰＵ１０４に結合され、接続１１８を介してチャネル・サブシステム１０８に結合されている。記憶制御要素１０６は、例えば、ＣＰＵ１０４およびチャネル・サブシステム１０８によって行われる要求の待ち行列作成（queuing）および実行を制御する。
【００２５】
例示的な実施形態において、チャネル・サブシステム１０８は、ホスト・システム１０１と制御ユニット１１０との間の通信インタフェースを提供する。チャネル・サブシステム１０８は、上述のように記憶制御ユニット１０６に結合され、更に、シリアル・リンク等の接続１２０を介して制御ユニット１１０の各々に結合されている。接続１２０は、ファイバ・チャネル構造における単一モードまたは多モード導波管を用いた光リンクとして実施することができる。チャネル・サブシステム１０８は、Ｉ／Ｏデバイス１１２とメイン・メモリ１０２との間の情報フローを誘導する。これは、Ｉ／Ｏデバイス１１２と直接通信を行うタスクからＣＰＵ１０４を解放し、Ｉ／Ｏ処理と同時にデータ処理が進行することを可能とする。チャネル・サブシステム１０８は、Ｉ／Ｏデバイス１１２への情報フローまたはＩ／Ｏデバイス１１２からの情報フローを管理する際の通信リンクとして、１つ以上のチャネル経路１２２を用いる。Ｉ／Ｏ処理の一部として、チャネル・サブシステム１０８は、チャネル経路の可用性についての試験を行い、利用可能なチャネル経路１２２を選択し、Ｉ／Ｏデバイス１１２による動作の実行を開始するという経路管理機能も実行する。
【００２６】
各チャネル経路１２２は、チャネル１２４（図１に示すように、一例においてチャネル１２４はチャネル・サブシステム１０８内に位置する）、１つ以上の制御ユニット１１０、および１つ以上の接続１２０を含む。別の例においては、チャネル経路１２２の一部として、１つ以上の動的スイッチ（図示せず）を有することも可能である。動的スイッチは、チャネル１２４および制御ユニット１１０に結合され、スイッチに取り付けられたいずれかの２つのリンクを物理的に相互接続する機能を提供する。別の例では、多数のシステムを有することも可能であり、従って制御ユニット１１０には多数のチャネル・サブシステム（図示せず）が取り付けられる。
【００２７】
また、チャネル・サブシステム１０８内には、サブチャネル（図示せず）も位置している。チャネル・サブシステム１０８を介してプログラムにアクセス可能な各Ｉ／Ｏデバイス１１２について、１つのサブチャネルが設けられて専用となっている。サブチャネル（例えばテーブル等のデータ構造）は、プログラムに対してデバイスの論理的外観を与える。各サブチャネルは、対応付けられたＩ／Ｏデバイス１１２およびそのチャネル・サブシステム１０８に対する取り付けに関する情報を与える。また、サブチャネルは、対応付けられたＩ／Ｏデバイス１１２に関連するＩ／Ｏ動作および他の機能に関する情報も与える。サブチャネルは、チャネル・サブシステム１０８が、対応付けられたＩ／Ｏデバイス１１２に関する情報をＣＰＵ１０４に与える手段であり、ＣＰＵ１０４はＩ／Ｏ命令を実行することによってこの情報を取得する。
【００２８】
チャネル・サブシステム１０８は、１つ以上の制御ユニット１１０に結合されている。各制御ユニット１１０は、１つ以上のＩ／Ｏデバイス１１２を動作させ制御するための論理を与え、共通の機構を用いることによって、各Ｉ／Ｏデバイス１１２の特徴を、チャネル１２４が与えるリンク・インタフェースに適合させる。共通の機構は、Ｉ／Ｏ動作の実行、Ｉ／Ｏデバイス１１２および制御ユニット１１０のステータスに関する指示、チャネル経路１２２を介したデータ転送のタイミングの制御、およびＩ／Ｏデバイス１１２のあるレベルの制御を可能とする。
【００２９】
各制御ユニット１１０は、接続１２６（例えばバス）を介して、１つ以上のＩ／Ｏデバイス１１２に取り付けられている。Ｉ／Ｏデバイス１１２は、情報を受信するか、またはメイン・メモリ１０２または他のメモリあるいはその両方に情報を記憶する。Ｉ／Ｏデバイス１１２の例は、いくつか名前を挙げると、カード・リーダおよびパンチ、磁気テープ・ユニット、直接アクセス記憶デバイス、ディスプレイ、キーボード、プリンタ、ポインティング・デバイス、遠隔処理デバイス、通信コントローラおよびセンサ・ベースの機器を含む。
【００３０】
Ｉ／Ｏ処理システム１００の上述のコンポーネントの１つ以上は、「IBM（Ｒ）z/Architecture Principles of Operation」PublicationNo. SA22-7832-05、第６版（２００７年４月）、１９９５年１０月２４日に発行されたCormier等の「System For Transferring Data Between I/ODevices And Main Or Expanded Storage Under Dynamic Control Of IndependentIndirect Address Words (IDAWS)」と題する米国特許第５，４６１，７２１号、および１９９６年６月１１日に発行されたCasper等の「Method And System For Pipelining TheProcessing Of Channel Command Words」と題する米国特許第５，５２６，４８４号に更に記載されている。ＩＢＭは、インターナショナル・ビジネス・マシーンズ社（米国ニューヨーク州アーモンク）の登録商標である。本明細書において用いる他の名称は、インターナショナル・ビジネス・マシーンズ社および他の企業の登録商標、商標、または製品名である場合がある。
【００３１】
一実施形態において、Ｉ／Ｏデバイス１１２とメモリ１０２との間でデータを転送するため、チャネル・コマンド・ワード（ＣＣＷ）を用いる。ＣＣＷは、実行するコマンドを特定し、処理を制御するための他のフィールドを含む。図２を参照してＣＣＷの一例を説明する。ＣＣＷ２００は、例えば、実行するコマンドを特定するコマンド・コード２０２（例えば読み取り、後方に読み取り、制御、検知および書き込み）、Ｉ／Ｏ動作を制御するために用いられる複数のフラグ２０４、データ転送を特定するコマンドについて、転送されるＣＣＷが指定する記憶領域におけるバイト数を特定するカウント・フィールド２０６、ならびに、直接アドレッシングを用いる場合にはデータを含むメイン・メモリ内の位置を指し示し、変更した間接データ・アドレッシングを用いる場合には処理対象の変更間接データ・アドレス・ワード（ＭＩＤＡＷ）のリスト（例えば連続的なリスト）を指し示すデータ・アドレス２０８を含む。変更間接アドレッシングについては、２００６年８月１５日に出願されたBrice等の「Flexibly Controlling The Transfer Of DataBetween Input/Output Devices And Memory」と題する米国特許出願第１１／４６４，６１３号に更に説明されている。
【００３２】
順次実行のために構成された１つ以上のＣＣＷは、本明細書においてＣＣＷチャネル・プログラムとも称されるチャネル・プログラムを形成する。ＣＣＷチャネル・プログラムは、例えば、オペレーティング・システムまたは他のソフトウェアによってセットアップされる。ソフトウェアは、ＣＣＷをセットアップし、チャネル・プログラムに割り当てられたメモリのアドレスを取得する。図３を参照して、ＣＣＷチャネル・プログラムの一例を説明する。ＣＣＷチャネル・プログラム２１０は、例えば、デファイン・エクステント（define extent）・コマンドによって用いられるデファイン・エクステント・データ２１６のメモリ内の位置に対するポインタ２１４を有するデファイン・エクステントＣＣＷ２１２を含む。この例では、デファイン・エクステント・コマンドの後にチャネル内転送（ＴＩＣ：transfer in channel）２１８が続き、これが、レコード・データ２２０の位置を特定する（locate）ポインタ２１９を有するロケート・レコード（locate record）２１７および１つ以上の読み取りＣＣＷ２２１等の１つ以上の他のＣＣＷを含むメモリ内の別の領域（例えばアプリケーション領域）に、チャネル・プログラムを向かわせる。各読み取りＣＣＷ２２１は、データ領域２２４に対するポインタ２２２を有する。データ領域は、データに直接的にアクセスするためのアドレス、または、データに間接的にアクセスするためのデータ・アドレス・ワード（例えばＭＩＤＡＷまたはＩＤＡＷ）のリストを含む。更に、ＣＣＷチャネル・プログラム２１０は、ＣＣＷチャネル・プログラムを実行した結果として生じるステータス２２６のために、サブチャネルと呼ばれるデバイス・アドレスが定義するチャネル・サブシステム内の所定の領域を含む。
【００３３】
図４および図３を参照して、ＣＣＷチャネル・プログラムの処理を説明する。具体的には、図４は、ＣＣＷチャネル・プログラムが実行している場合にチャネルと制御ユニットとの間で行われる様々な交換およびシーケンスの一例を示す。通信のために用いられるリンク・プロトコルは、この例ではＦＩＣＯＮ（ファイバ接続）である。ＦＩＣＯＮに関する情報は、「Fibre Channel Single Byte CommandCode Sets-3 Mapping Protocol （FC-SB-3）」、T11/Project 1357-D/Rev. 1.6、INCITS（２００３年３月）に記載されている。
【００３４】
図４を参照すると、チャネル３００は、制御ユニット３０２との交換をオープンし、制御ユニット３０２に、デファイン・エクステント・コマンドおよびそれに対応付けられたデータ３０４を送信する。コマンドは、デファイン・エクステントＣＣＷ２１２（図３）からフェッチされ、データは、デファイン・エクステント・データ領域２１６から取得される。チャネル３００は、ＴＩＣ２１８を用いて、ロケート・レコードＣＣＷおよび読み取りＣＣＷの位置を特定する。これは、ロケート・レコードＣＣＷ２１７（図３）からロケート・レコード・コマンド３０５（図４）をフェッチし、ロケート・レコード・データ２２０からデータをフェッチする。読み取りコマンド３０６（図４）は、読み取りＣＣＷ２２１（図３）からフェッチされる。各々は、制御ユニット３０２に送信される。
【００３５】
制御ユニット３０２は、チャネル３００のオープン交換に応答して、チャネル３００との交換３０８をオープンする。これは、ロケート・コマンド３０５または読み取りコマンド３０６あるいはその両方の前または後に起こる場合がある。オープン交換と共に、応答（ＣＭＲ）がチャネル３００に送出される。ＣＭＲは、制御ユニット３０２がアクティブであり動作していることの指示をチャネル３００に与える。
【００３６】
制御ユニット３０２は、要求されたデータ３１０をチャネル３００に送信する。更に、制御ユニット３０２は、ステータスをチャネル３００に提供し、交換３１２をクローズする。これに応答して、チャネル３００は、データを記憶し、ステータスを調べ、交換３１４をクローズする。これは、ステータスが受信されたことを制御ユニット３０２に示す。
【００３７】
４ｋのデータを読み取るための上述のＣＣＷチャネル・プログラムの処理には、２つの交換をオープンおよびクローズして７つのシーケンスを行う必要がある。チャネル・プログラムの多数のコマンドをＴＣＣＢ内に折りたたむことによって、チャネルと制御ユニットとの間の交換およびシーケンスの総数を減らす。例えば図１のチャネル１２４のようなチャネルは、ＴＣＷを用いて、ＴＣＣＢの位置、ならびに、チャネル・プログラムの実行に関連したステータスおよびデータにアクセスしこれを記憶するための位置を識別する。ＴＣＷは、チャネルによって解釈されるものであり、制御ユニットによって送信されたり認識されたりはしない。
【００３８】
図３におけるように、４ｋのデータを読み取るためのチャネル・プログラムの一例は、別個の個別のＣＣＷでなくＴＣＣＢを含み、これについて図５を参照して説明する。図示のように、本明細書ではＴＣＷチャネル・プログラムとも称されるチャネル・プログラム４００は、ＴＣＷ４０２を含み、これは、ＴＣＣＢ４０４のメモリ内の位置、および、データ領域４０６またはデータ領域４０６を指し示すＴＩＤＡＬ４１０（すなわち、ＭＩＤＡＷと同様のトランスポート・モード間接データ・アドレス・ワード（ＴＩＤＡＷ）のリスト）のメモリ内の位置、およびステータス領域４０８を特定する。ＴＣＷ、ＴＣＣＢ、およびステータスについては、以下で更に詳細に述べる。
【００３９】
図６を参照して、ＴＣＷチャネル・プログラムの処理を説明する。これらの通信のための用いられるリンク・プロトコルは、例えばファイバ・チャネル・プロトコル（ＦＣＰ）である。具体的には、ＦＣＰリンク・プロトコルの３つのフェーズを用い、ＦＣＰをサポートするホスト・バス・アダプタを使用可能として、ＣＣＷによって制御されるデータ転送を実行する。ＦＣＰおよびそのフェーズについては、「Information Technology - FibreChannel Protocol for SCSI, Third Version (FCP-3)」、T10Project 1560-D、Revision 4（２００５年９月１３日）において更に説明されている。
【００４０】
図６を参照すると、チャネル５００は、制御ユニット５０２との交換をオープンし、制御ユニット５０２にＴＣＣＢ５０４を送信する。一例においては、ＦＣＰ＿ＣＭＮＤ情報ユニット（ＩＵ）またはトランスポート・コマンドＩＵと称されるＦＣＰコマンドにおいて、ＴＣＣＢ５０４およびシーケンス・イニシアチブが制御ユニット５０２に転送される。制御ユニット５０２は、ＴＣＣＢ５０４の多数のコマンド（例えば、デバイス制御ワード（ＤＣＷ）としてのデファイン・エクステント・コマンド、ロケート・レコード・コマンド、読み取りコマンド）を実行し、例えばＦＣＰ＿Ｄａｔａ  ＩＵによって、データ５０６をチャネル５００に送出する。また、これは、ステータスを提供し、交換５０８をクローズする。一例として、例えばトランスポート応答ＩＵとも称されるＦＣＰ＿ＲＳＰ  ＩＵのペイロードのバイト１０または１１においてビット・アクティブを有するＦＣＰステータス・フレーム内で、最終ステータスを送信する。ＦＣＰ＿ＲＳＰ  ＩＵペイロードを用いて、拡張測定ワードの計算をサポートし制御ユニット５０２がサポートする最大数のオープン交換をチャネル５００に通知するパラメータを含めて、追加のステータス情報と共にＦＩＣＯＮ終了ステータスをトランスポートすることができる。
【００４１】
更に別の例では、４ｋのカスタマ・データを書き込むために、チャネル５００は、以下のようにＦＣＰリンク・プロトコル・フェーズを用いる。
１．ＦＣＰ＿ＣＭＮＤ  ＩＵにおいてＴＣＣＢを転送する。
２．データのＩＵおよびシーケンス・イニシアチブを制御ユニット５０２に転送する。（ＦＣＰ転送レディはディスエーブル）
３．例えばＦＣＰ＿ＲＳＰ  ＩＵペイロードのバイト１０または１１においてビット・アクティブを有するＦＣＰステータス・フレームにおいて最終ステータスを送信する。ＦＣＰ＿ＲＳＰ＿ＩＮＦＯフィールドまたはセンス・フィールドを用いて、拡張測定ワードの計算をサポートし制御ユニット５０２がサポートする最大数のオープン交換をチャネル５００に通知するパラメータを含めて、追加のステータス情報と共にＦＩＣＯＮ最終ステータスをトランスポートする。
【００４２】
図３（図４も参照のこと）のＣＣＷチャネル・プログラムにおける２つの交換とは異なり、図５のＴＣＷチャネル・プログラムを実行することによって、オープンしクローズする交換は１つだけとなる（図６も参照のこと）。更に、ＣＣＷチャネル・プログラム（図３から図４を参照）における７つの交換に比べ、ＴＣＷチャネル・プログラムでは、通信シーケンスは３つである（図５〜図６を参照）。
【００４３】
ＴＣＷチャネル・プログラムでは、プログラムに追加コマンドが加えられた場合であっても、交換およびシーケンスの数は同じままである。例えば、図７のＣＣＷチャネル・プログラムの通信を、図８のＴＣＷチャネル・プログラムの通信と比べる。図７のＣＣＷチャネル・プログラムでは、コマンド（例えばデファイン・エクステント・コマンド６００、ロケート・レコード・コマンド６０１、読み取りコマンド６０２、読み取りコマンド６０４、読み取りコマンド６０６、ロケート・レコード・コマンド６０７、および読み取りコマンド６０８）の各々を、別個のシーケンスで、チャネル６１０から制御ユニット６１２に送信する。更に、データの各４ｋブロック（例えばデータ６１４〜６２０）を、別個のシーケンスで、制御ユニット６１２からチャネル６１０に送信する。このＣＣＷチャネル・プログラムには、オープンしクローズする２つの交換（例えば交換６２２、６２４をオープンし交換６２６、６２８をクローズする）、および１４の通信シーケンスが必要である。これは、図７のＣＣＷチャネル・プログラムと同じタスクを達成する図８のＴＣＷチャネル・プログラムの３つのシーケンスおよび１つの交換と比べられる。
【００４４】
図８に示すように、チャネル７００は、制御ユニット７０２との交換をオープンし、制御ユニット７０２にＴＣＣＢ７０４を送信する。ＴＣＣＢ７０４は、上述のように、ＤＣＷにおいて、デファイン・エクステント・コマンド、２つのロケート・レコード・コマンド、および４つの読み取りコマンドを含む。制御ユニット７０２は、ＴＣＣＢ７０４の受信に応答して、コマンドを実行し、単一のシーケンスでデータ７０６の１６ｋをチャネル７００に送信する。更に、制御ユニット７０２は、チャネル７００にステータスを提供し、交換７０８をクローズする。このため、ＴＣＷチャネル・プログラムでは、図７のＣＣＷチャネル・プログラムと同じデータ量を転送するために必要な通信が少なくて済む。
【００４５】
例示的な実施形態において、図７のＣＣＷチャネル・プログラムは、例えばファイバ接続（ＦＩＣＯＮ）プロトコルのようなチャネル・コマンド・ワードをサポートするプロトコルを用いて実施される。このプロトコルのもとで動作するリンクは、「コマンド・モード」にあると称する場合がある。
【００４６】
例示的な実施形態において、図８のＴＣＷチャネル・プログラムは、デバイス制御ワードを実行するためのプロトコルを用いて実施される。これは、「転送モード」プロトコルと称されるリンク・プロトコルを用いて転送される。
【００４７】
ここで図９に移ると、ＴＣＷチャネル・プログラム実行をサポートする図１の制御ユニット１１０およびチャネル１２４の一実施形態が更に詳細に示されている。制御ユニット１１０は、接続１２０を介してチャネル１２４から受信した、図８のＴＣＣＢ７０４等のＴＣＣＢを含むコマンド・メッセージをパーズし処理するためのＣＵ制御論理８０２を含む。ＣＵ制御論理８０２は、制御ユニット１１０において受信したＴＣＣＢからＤＣＷおよび制御データを抽出して、例えば接続１２６を介してＩ／Ｏデバイス１１２等のデバイスを制御することができる。ＣＵ制御論理８０２は、Ｉ／Ｏデバイス１１２にデバイス・コマンドおよびデータを送信し、Ｉ／Ｏデバイス１１２からステータス情報および他のフィードバックを受信する。
【００４８】
ＣＵ制御論理８０２は、ＣＵタイマ８０６およびＣＵレジスタ８０８等、制御ユニット１１０内の他の要素にアクセスし制御することができる。ＣＵタイマ８０６は、Ｉ／Ｏ動作の完了のためにチャネル１２４がセットする時間期間等の待機時間期間を確立するための多数のタイマ機能を含むことができる。ＣＵタイマ８０６は、１つ以上のカウントダウン・タイマを更に含んで、所定の期間内に完了しないＲＥＣメッセージ等のメッセージを含むＩ／Ｏ動作およびコマンドを監視し中止することができる。ＣＵレジスタ８０８は、コンフィギュレーションおよびステータス情報、ならびにコマンドがＣＵ制御論理８０２によって実行されると更新される動的ステータス情報を提供する固定値を含むことができる。制御ユニット１１０は、他のバッファまたはメモリ要素（図示せず）を更に含んで、チャネル１２４とＩ／Ｏデバイス１１２との間の通信に関連した多数のメッセージまたはステータス情報を記憶することができる。
【００４９】
チャネル・サブシステム１０８内のチャネル１２４は、制御ユニット１１０との通信をサポートするための多数の要素を含む。例えば、チャネル１２４は、ＣＨＮサブシステム・タイマ８１２およびＣＨＮサブシステム・レジスタ８１４とインタフェースするＣＨＮ制御論理８１０を含むことができる。例示的な実施形態においては、ＣＨＮ制御論理８１０は、チャネル・サブシステム１０８と制御ユニット１１０との間の通信を制御する。ＣＨＮ制御論理８１０は、接続１２０を介してＣＵ制御論理８０２に直接インタフェースして、トランスポート・コマンドおよび応答ＩＵ等のコマンドを送信し応答を受信することができる。あるいは、ＣＨＮ制御論理８１０とＣＵ制御論理８０２との間に、メッセージング・インタフェースまたはバッファ（図示せず）あるいはその両方を配置することも可能である。ＣＨＮサブシステム・タイマ８１２は、例えば、待機または遅延時間期間を確立するための多数のタイマ機能を含むことができる。ＣＨＮサブシステム・タイマ８１２は、１つ以上のカウントダウン・タイマを更に含んで、所定の期間内に完了しないコマンド・シーケンスを監視し中止することができる。ＣＨＮサブシステム・レジスタ８１４は、コンフィギュレーションおよびステータス情報、ならびにコマンドが転送され応答が受信されると更新される動的ステータス情報を提供する固定値を含むことができる。
【００５０】
再び図１を参照すると、いくつかの例示的な実施形態においては、図１の制御ユニット１１０およびチャネル１２４は、異なるモードで動作する、すなわち異なるプロトコルを用いる場合がある。例えば、チャネル１２４はトランスポート・モードで動作し、トランスポート・モード・プロトコルを用いることができ、制御ユニット１０はコマンド・モードで動作し、ＦＩＣＯＮプロトコルを用いることができる。制御ユニット１１０およびチャネル１２４は各々、コマンド・モードまたはトランスポート・モードあるいはその両方をサポートすることができる。
【００５１】
１つの例示的な実施形態においては、制御ユニット１１０がコマンドを受信したか否かを判定し、更に、Ｉ／Ｏ動作が進行しているか否か、またはＩ／Ｏ動作が終了したかもしくはコマンドが失われたかを判定するためのシステムおよび方法が提供される。例示的な実施形態では、チャネル１２４は、Ｉ／Ｏ動作が完了したことの指示がないと、制御ユニット１１０にメッセージを送信して、制御ユニット１１０によってコマンドが受信されたか否かを判定する。例示的な実施形態では、メッセージはＲＥＣメッセージである。ＲＥＣメッセージは、チャネル１２４によって用いられて、制御ユニット１１０に質問し、制御ユニット１１０がコマンドを受信したか否かを判定することができる。別の例示的な実施形態においては、制御ユニット１１０およびチャネル１２４がトランスポート・モードにおいてメッセージを交換する。
【００５２】
チャネル１２４は、ＲＥＣ応答等のメッセージに対する応答を受信することができ、これが、制御ユニット１１０がコマンドを受信したか否かを示す。ＲＥＣメッセージは、制御ユニット１１０がオープンした交換上でコマンドを受信したか否かを問い合わせ、ＲＥＣ応答は、交換がオープンであるか否かを示す。ＲＥＣコマンドおよび応答は、拡張リンク・サービス（ＥＬＳ）・メッセージである。
【００５３】
本明細書において記載する実施形態では、トランスポート・モードにおいて、「コマンド応答」または「ＣＭＲ」と称される、制御ユニット１１０がコマンドを受信したことを確認する応答の必要性をなくすことができる。コマンド・モード・プロトコルを含む以前のプロトコルでは、各コマンドまたはコマンド・セットに応答して、制御ユニット１１０からＣＭＲを送信する必要がある。これに対して、本実施形態では、各コマンドについてＣＭＲの必要はない。本実施形態では、Ｉ／Ｏ動作が完了したことの指示を受信するために、チャネル１２４が、例えば図９のＣＨＮサブシステム・タイマ８１２においてタイマをセットすることができる。タイマが切れた場合にのみ、チャネル１２４はＲＥＣメッセージを制御ユニット１１０に送信する。このため、制御ユニット１１０とチャネル１２４との間で必要なメッセージの数を減らすことができる。更に別のタイマ期間を用いて、ＲＥＣメッセージ、以降のＲＥＣメッセージに対する応答時間、およびＲＥＣ応答メッセージの後のコマンドに対する応答を監視することができる。
【００５４】
図１０に移り、例示的な実施形態に従って、更に図１のＩ／Ｏ処理システム１００を参照して、Ｉ／Ｏ処理システムの制御ユニット１１０を監視するためのプロセス９００について説明する。
【００５５】
ブロック９０５において、チャネル１２４は制御ユニット１１０にコマンドを送信して、Ｉ／Ｏ動作を開始する。例示的な実施形態では、コマンドはトランスポート・モードである。Ｉ／Ｏ動作は、例えば読み取り動作または書き込み動作とすれば良い。
【００５６】
ブロック９１０において、チャネル１２４はＩ／Ｏ動作の完了のためのタイマをセットする。タイマは、完了時間期間、またはＩ／Ｏ動作の完了のための時間期間にセットすることができる。
【００５７】
ブロック９１５において、Ｉ／Ｏ動作が完了していない場合、すなわちチャネル１２４が、Ｉ／Ｏ動作が完了したことの通知を受信していない場合、チャネル１２４は制御ユニット１１０にメッセージを送信して、制御ユニット１１０がコマンドを受信したか否かを判定する。制御ユニット１１０がコマンドを受信していない場合、チャネル１２４はＩ／Ｏ動作を中止することができる。１つの例示的な実施形態において、このメッセージはＲＥＣメッセージである。
【００５８】
ブロック９２０において、制御ユニット１１０が、コマンドが受信されたことを示す場合、チャネル１２４は、例えば図９のＣＨＮサブシステム・タイマ８１２において第２のタイマをセットする。第２の時間期間が切れた時にＩ／Ｏ動作が完了していない場合、チャネル１２４は少なくとも１つの追加のＲＥＣメッセージを送信する。一実施形態においては、チャネル１２４は、Ｉ／Ｏ動作が完了したことの指示を受信するまで、追加のＲＥＣメッセージを制御ユニット１１０に定期的に送信する。一実施形態において、この指示は、Ｉ／Ｏ動作が完了したことを示す制御ユニット１１０からの応答の形態である。
【００５９】
以下の例では、図１１を参照して、Ｉ／Ｏ動作を監視するための手順を示す。この例において記載する通信に用いるリンク・レベルのプロトコル（ＩＵメッセージ内容を含まない）は、例えば、ファイバ・チャネル・プロトコル（ＦＣＰ）である。この手順は、以下のフェーズの１つ以上を含む。
１．トランスポート・モードで動作しているチャネル１００５が、トランスポート・モード・プロトコルを用いて、ＴＣＣＢを含むトランスポート・コマンドＩＵ１０１２を、制御ユニット１０１０に送信する。また、トランスポート・コマンドＩＵ１０１２は、「ＴＣＣＢ  ＩＵ」とも称することができる。ＴＣＣＢ  ＩＵ１０１２によって、制御ユニット１０１０は、特定されたＩ／Ｏ動作を開始する。ＴＣＣＢ  ＩＵ１０１２を送信する際に、チャネル１００５は、交換１００１をオープンし、制御ユニット１０１０にイニシアチブを転送することができる。
２．チャネル１００５は、Ｉ／Ｏ動作の完了のためのタイマ（すなわち「完了タイマ」）をイネーブルすることができる。一例において、完了タイマは、１から２０秒の間等の時間期間にセットすることができる。記載した具体的な時間期間は、単なる例示に過ぎない。完了タイマには、いかなる時間期間も使用可能である。一実施形態においては、完了タイマにおいてセットされる時間期間は、Ｉ／Ｏ動作が完了すると予想される時間量に基づいている。１つの例示的な実施形態では、完了タイマは、完了のための公称のまたは最大の時間量に基づいている。
３．チャネル１００５が、本明細書においてトランスポート・コマンド完了応答または「最終応答」１０１４（図１１にＥＮＤ  ＲＳＰ  ＩＵ１０１４として示す）と称されるメッセージを受信すると、これ以上のアクションは必要ない。ＥＮＤ  ＲＳＰ  ＩＵ１０１４は、制御ユニット１０１０からの、Ｉ／Ｏ動作が首尾よく完了したことの指示を与える。一例において、ＥＮＤ  ＲＳＰ  ＩＵ１０１４は、図６のステータス、クローズ交換５０８である。
４．チャネル１００５が、完了タイマによってセットされた時間期間内に、制御ユニット１０１０からのＥＮＤ  ＲＳＰ  ＩＵ１０１４を受信しない場合、チャネル１００５はＥＬＳ  ＲＥＣメッセージ１０１６を送信して、交換１００１をオープンしたＴＣＣＢ  ＩＵ１０１２を制御ユニット１０１０が受信したか否かを判定する。ＲＥＣメッセージ１０１６を送信する際に、チャネル１００５は交換１００２をオープンして、制御ユニット１０１０にイニシアチブを転送することができる。
【００６０】
任意に、チャネル１００５は、ＲＥＣメッセージに対する応答のためのタイマ（すなわち「ＲＥＣタイマ」）を開始することができる。例えば、ＲＥＣタイマは、２から５秒の間等の時間期間にセットすることができる。記載した具体的な時間期間は、単なる例示に過ぎない。完了タイマには、いかなる時間期間も使用可能である。
【００６１】
「ＲＥＣ応答」１０１８または「ＲＥＣに対するＥＬＳ  ＲＥＳＰ」１０１８と称される、ＲＥＣメッセージ１０１６に対する応答が、ＲＥＣタイマによってセットされた時間期間にチャネル１００５によって受信されない場合、チャネル１００５は、交換シーケンス１０２０および１０２２の中止を実行することによって等で、質問された交換１００１、および、例えば交換１００２のようなＲＥＣメッセージが送信された交換の双方を中止する。チャネル１００５は、交換１００１に関連するチャネル（またはサブチャネル）・ステータスを記憶して、例えば、サブチャネルが、一次、二次、および警告ステータスであり、インタフェース制御チェック（ＩＦＣＣ）により保留中であることをソフトウェアに警告する。
【００６２】
ＲＥＣが質問したＩ／Ｏ動作が、ＲＥＣタイマが切れる前またはＲＥＣ応答ＩＵ１０１８が送信される前に完了すると、チャネル（またはサブチャネル）・ステータスが、ＥＮＤ  ＲＳＰ１０１４において受信されたステータスと共に記憶され、完了すると、ＲＥＣ動作からの状態情報がチャネル１００５によって廃棄される。
【００６３】
５．チャネル１００５は、交換１００２をクローズする制御ユニット１０１０からのＲＥＣ応答ＩＵ１０１８を受信する。制御ユニット１０１０からのＲＥＣ応答ＩＵ１０１８によって、制御ユニット１０１０が交換１００１について知っていること、すなわちＴＣＣＢ  ＩＵ１０１２を受信したことを示す場合、チャネル１００５は追加のＲＥＣメッセージ１０１６を制御ユニット１０１０に送信することができる。１つの例示的な実施形態において、チャネル１００５は、Ｉ／Ｏ動作が完了するまで定期的に１つ以上の追加のＲＥＣメッセージ１０１６を送信する。チャネル１００５は、追加のＲＥＣメッセージを送信するための追加のタイマをセットすることができる。例えば、追加のタイマは、５から６０秒の間等の時間期間にセットすることができる。
【００６４】
１つの例示的な実施形態において、追加のＲＥＣメッセージを定期的に送信することは、追加のＲＥＣメッセージ１０１６を送信すること、および、Ｉ／Ｏ動作の完了のための追加のタイマ期間をセットすることを含む。追加のタイマ期間が切れると、Ｉ／Ｏ動作が完了していない場合、チャネル１００５は更に追加のＲＥＣメッセージ１０１６を送信する。このプロセスを、Ｉ／Ｏ動作が完了するまで、または、制御ユニット１０１０がコマンドを「有しない」ことの指示が制御ユニット１０１０から受信されるまで、繰り返す。制御ユニット１０１０がコマンドを有しないことの指示は、コマンドが失われたこと、交換が失われたかクローズされたこと、またはその他の場合にＩ／Ｏ動作が停止もしくは終了したことの結果として起こる場合がある。１つの例示的な実施形態では、完了タイマは、第１の時間期間のためのものであり、Ｉ／Ｏ動作が開始したことを保証することができ、追加のタイマは、もっと長い第２の時間期間のためのものであり、チャネル１００５がＩ／Ｏ動作のステータスを定期的にチェックすることを可能とすることができる。
【００６５】
６．ＲＥＣメッセージ１０１６または追加のＲＥＣメッセージ（複数のメッセージ）１０１６に応答して、ＲＥＣ応答１０１８により、質問されている交換１００１について制御ユニット１０１０が知らないことが示された場合には、チャネル１００５は、選択された持続期間（例えば１００ｍｓ）だけ待機し、その後、中止シーケンス１０２０を実行して交換１００１を中止することができる。また、チャネル１００５は、チャネル（またはサブチャネル）・ステータスを記憶して、例えば、サブチャネルが、一次、二次、および警告ステータスであり、インタフェース制御チェック（ＩＦＣＣ）により保留中であることをソフトウェアに警告することができる。この持続期間中にＥＮＤ  ＲＳＰ  ＩＵ１０１４がチャネル１００５に到着した場合、Ｉ／Ｏ動作は首尾よく完了し、エラーは報告されない。この選択された持続期間によって、ＥＮＤ  ＲＳＰ  ＩＵ１０１４の後に、制御ユニット１０１０からチャネル１００５へ、質問されている交換がオープンでないというメッセージと共にＲＥＣ応答１００８が送信されたが、チャネル１００５への送信途中に接続またはリンク１２０上でＲＥＣ応答１０１８がＥＮＤ  ＲＳＰ  ＩＵ１０１４を追い越した場合に対処することができる。従って、チャネル１００５は、この持続期間だけ待機して、ＥＮＤ  ＲＳＰ  ＩＵ１０１４が送信途中でありこれから受信されるか否かを判定する。
【００６６】
上述の例において記載した名称および番号の付与法は、例示的なものであり、本明細書に記載した方法を説明するために与えられる。ここに与えられる名称および番号の付与法は、任意に選択され、説明のためだけに提供される。更に、チャネル１００５および制御ユニット１０１０から送信されるプロトコル、情報ユニット、ならびに上述の例において記載された具体的なメッセージは、例示的なものである。本明細書において記載するように、いかなる適切なＩ／Ｏプロトコルおよび関連するメッセージも処理することができる。
【００６７】
例示的な実施形態の技術的な効果は、各コマンドに応答した制御ユニットからのＣＭＲを必要とすることなく、チャネル・サブシステムがＩ／Ｏ動作の進行およびステータスを監視することができる能力を含む。他の技術的な効果は、チャネル・サブシステムが定期的にＩ／Ｏ動作を監視し動作の時間を計ると共に、動作の何らかの問題または喪失を迅速に検出することができる能力を含む。
【００６８】
本明細書に記載したシステムおよび方法は、ＣＭＲを必要とすることなく動作を監視可能である効果的なプロトコルを提供し、更に、動作の時間を計り問題を検出する方法を提供するという点で、多くの利点を提供する。
【００６９】
例示的な実施形態においては、チャネルにおいてＩ／Ｏ動作がタイムアウトした場合にのみＲＥＣメッセージを実行し、これによって、Ｉ／Ｏ動作ごとのＣＭＲの必要性がなくなる。Ｉ／Ｏ動作ごとのＣＭＲの必要性をなくすことによって、システムの性能を改善する一方で、同時に、チャネルがタイムアウトした場合にＲＥＣメッセージを用いることによって、失われたコマンドまたは応答ＩＵの早期検出を可能とする。
【００７０】
従来技術のＦＩＣＯＮプロトコルでは、例えば、チャネルが制御ユニットからＣＭＲフレームを受信すると、チャネルはもはや動作の時間を計らない。本明細書における例示的な実施形態に従えば、チャネルは、全てのタイムアウト期間の後にＲＥＣを再送信し続けて（第１のＲＥＣまたは追加のＲＥＣあるいはその両方のタイムアウト期間の後）、動作がなお保留中であるかもしくは制御ユニットにおいて進行しているか、または何らかのエラーが起こって動作のための最終応答ＩＵが失われたか否かを調べる。このように、ＲＥＣメッセージによって、失われたコマンドまたは応答ＩＵのいずれかの早期検出が可能となる。
【００７１】
本明細書に記載したシステムおよび方法は、欠点を克服し、上述の利点を提供する。
【００７２】
上述のように、実施形態は、コンピュータ実施プロセスおよびこれらのプロセスを実行するための装置という形態で具現化することができる。例示的な実施形態においては、本発明は、１つ以上のネットワーク要素によって実行されるコンピュータ・プログラム・コードにおいて具現化される。実施形態は、図１２に示すようなコンピュータ・プログラム１１００を含み、これは、製造品として有形の媒体において具現化された命令を含むコンピュータ・プログラム・コード論理１１０４を有するコンピュータ使用可能媒体１１０２上にある。コンピュータ使用可能媒体１１０２についての例示的な製造品は、フレキシブルディスク、ＣＤ−ＲＯＭ、ハード・ドライブ、ユニバーサル・シリアル・バス（ＵＳＢ）・フラッシュ・ドライブ、または、他のいずれかのコンピュータ読み取り可能記憶媒体を含むことができ、この場合、コンピュータ・プログラム・コード論理１１０４がコンピュータにロードされてコンピュータによって実行されると、コンピュータは本発明を実行するための装置となる。実施形態は、コンピュータ・プログラム・コード論理１１０４を含み、これは、例えば、記憶媒体に記憶され、コンピュータにロードされるかまたはコンピュータによって実行されるかあるいはその両方であり、または、電気的配線もしくはケーブルを介して、光ファイバによって、または電磁放射によって等、何らかの伝送媒体を介して送信され、コンピュータ・プログラム・コード論理１１０４がコンピュータにロードされてコンピュータによって実行されると、コンピュータは本発明を実行するための装置となる。汎用マイクロプロセッサ上で実施されると、コンピュータ・プログラム・コード論理１１０４のセグメントは、特定の論理回路を生成するようにマイクロプロセッサを構成する。
【００７３】
本発明について、例示的な実施形態を参照して説明したが、本発明の範囲から逸脱することなく、様々な変更を行うことができ、その要素を均等物で置換することが可能であることは、当業者には理解されよう。更に、本発明の本質的な範囲から逸脱することなく、特定の状況または材料を本発明の教示に適合させるように多くの変形を行うことができる。従って、本発明は、本発明を実行するために考えられる最良の形態として開示された特定の実施形態に限定されるのでなく、本発明は、添付の特許請求の範囲内に該当する全ての実施形態を包含することが意図される。更に、第１、第２等の言葉の使用は、いかなる順序も重要性も意味するものではなく、第１、第２等の言葉は、ある要素を別のものから区別するために用いられる。更に、ａ、ａｎ（１つの）という言葉の使用は、量の限定を意味するのではなく、参照したアイテムの少なくとも１つが存在することを意味する。
【図１】
2011512586.tif 000003
【図２】
2011512586.tif 000004
【図３】
2011512586.tif 000005
【図４】
2011512586.tif 000006
【図５】
2011512586.tif 000007
【図６】
2011512586.tif 000008
【図７】
2011512586.tif 000009
【図８】
2011512586.tif 000010
【図９】
2011512586.tif 000011
【図１０】
2011512586.tif 000012
【図１１】
2011512586.tif 000013
【図１２】
2011512586.tif 000014
【手続補正書】
【提出日】平成22年10月4日(2010.10.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
入出力処理システムにおいて制御ユニットとチャネル・サブシステムとの間の通信を処理するためのコンピュータ・プログラムであって、
前記チャネル・サブシステムから前記制御ユニットに、入出力動作を開始するためのコマンドを送信するステップと、
前記動作の完了のための時間期間を設定するステップと、
前記動作が前記時間期間内に完了しないことに応答して、前記制御ユニットが前記コマンドについてオープンな交換を有するか否かを判定するためのメッセージを送信するステップと、
をコンピュータに実行させるコンピュータ・プログラム。
【請求項２】
前記コマンドおよび前記メッセージが、トランスポート制御ワード（ＴＣＷ）をサポートするプロトコルを用いるモードにある、請求項１に記載のコンピュータ・プログラム。
【請求項３】
前記コマンドを送信するステップが前記制御ユニットとの第１の交換をオープンすることを含み、前記メッセージを送信するステップが前記制御ユニットとの第２の交換をオープンするステップを含む、請求項１に記載のコンピュータ・プログラム。
【請求項４】
前記メッセージがＲＥＣ（Read Exchange Concise）メッセージである、請求項１に記載のコンピュータ・プログラム。
【請求項５】
前記動作の完了が、前記動作が完了したことを示す完了メッセージを前記制御ユニットから受信することを含む、請求項１に記載のコンピュータ・プログラム。
【請求項６】
前記制御ユニットが前記コマンドについてオープンな前記交換を有することを示す、前記メッセージに対する応答を受信するステップと、
前記制御ユニットが前記コマンドについてオープンな前記交換を有することを示す前記応答に応じて、追加の時間期間の後に前記メッセージを前記制御ユニットに再送信するステップと、
を更に含む、請求項１に記載のコンピュータ・プログラム。
【請求項７】
前記制御ユニットが前記コマンドについてオープンな前記交換を有することを示す、前記メッセージに対する応答を受信するステップと、
前記制御ユニットが前記コマンドについてオープンな交換を有しないことを示す前記応答に応じて、前記動作を中止するステップと、
を更に含む、請求項１に記載のコンピュータ・プログラム。
【請求項８】
前記メッセージを送信するステップが、ｉ）前記動作の完了およびｉｉ）前記制御ユニットが前記コマンドについてオープンな前記交換を有しないことを示す、前記メッセージに対する応答の受信の一方まで、前記メッセージを定期的に送信することを含む、請求項１に記載のコンピュータ・プログラム。
【請求項９】
前記メッセージを定期的に送信することが、
前記時間期間が終了したら、前記メッセージを前記制御ユニットに送信することと、
前記制御ユニットが前記コマンドについてオープンな前記交換を有することを示す応答を前記制御ユニットから受信することと、
前記動作の完了のための追加の時間期間をセットすることと、
前記追加の時間期間が終了したら、前記制御ユニットが前記動作の実行を継続しているか否かを判定するために、前記メッセージを再送信することと、
を含む、請求項１に記載のコンピュータ・プログラム。
【請求項１０】
前記コマンドを送信するステップが、トランスポート制御ワード（ＴＣＷ）をサポートするプロトコルを用いるトランスポート・モードで前記コマンドを送信することを含み、
前記時間期間が、前記動作が完了したことを示す完了メッセージを前記制御ユニットから受信するための第１の時間期間であり、
前記メッセージがＲＥＣ（Read Exchange Concise）メッセージであり、前記メッセージを送信するステップが、前記第１の時間期間内に前記完了メッセージを受信しないことに応答したものであり、
前記方法が、
前記制御ユニットが前記コマンドについてオープンな前記交換を有することを示す、前記ＲＥＣメッセージに対する応答を受信するステップと、
前記制御ユニットが前記コマンドについてオープンな前記交換を有することを示す前記応答に応じて、前記動作の完了のための第２の時間期間をセットするステップと、
前記追加の時間期間が終了したら、前記制御ユニットが前記動作の実行を継続しているか否かを判定するために、前記ＲＥＣメッセージを再送信するステップと、
を更に含む、請求項１に記載のコンピュータ・プログラム。
【請求項１１】
入出力処理システムにおいて通信を処理するための装置であって、
Ｉ／Ｏデバイスのステータスを指揮し判定することができる制御ユニットとの通信を行うために構成されたホスト・コンピュータ・システムのチャネル・サブシステムであって、
前記制御ユニットに、入出力動作を開始するためのコマンドを送信することと、
前記動作の完了のための時間期間を設定することと、
前記動作が前記時間期間内に完了しないことに応答して、前記制御ユニットが前記コマンドについてオープンな交換を有するか否かを判定するためのメッセージを送信することと、
を実行するチャネル・サブシステムを含む、装置。
【請求項１２】
前記コマンドおよび前記メッセージが、トランスポート制御ワード（ＴＣＷ）をサポートするプロトコルを用いるモードにある、請求項１１に記載の装置。
【請求項１３】
前記メッセージがＲＥＣ（Read Exchange Concise）メッセージである、請求項１１に記載の装置。
【請求項１４】
前記コマンドを送信することが前記制御ユニットとの第１の交換をオープンすることを含み、前記メッセージを送信することが前記制御ユニットとの第２の交換をオープンすることを含む、請求項１１に記載の装置。
【請求項１５】
前記動作の完了が、前記動作が完了したことを示す完了メッセージを前記制御ユニットから受信することを含む、請求項１１に記載の装置。
【請求項１６】
前記制御ユニットが前記コマンドについてオープンな前記交換を有することを示す、前記メッセージに対する応答を受信することと、
前記制御ユニットが前記コマンドについてオープンな前記交換を有することを示す前記応答に応じて、追加の時間期間の後に前記メッセージを前記制御ユニットに再送信することと、
を更に含む、請求項１１に記載の装置。
【請求項１７】
前記制御ユニットが前記コマンドについてオープンな前記交換を有することを示す、前記メッセージに対する応答を受信することと、
前記制御ユニットが前記コマンドについてオープンな交換を有しないことを示す前記応答に応じて、前記動作を中止することと、
を更に含む、請求項１１に記載の装置。
【請求項１８】
前記メッセージを送信することが、ｉ）前記動作の完了およびｉｉ）前記制御ユニットが前記コマンドについてオープンな前記交換を有しないことを示す、前記メッセージに対する応答の受信の一方まで、前記メッセージを定期的に送信することを含む、請求項１１に記載の装置。
【請求項１９】
前記メッセージを定期的に送信することが、
前記時間期間が終了したら、前記メッセージを前記制御ユニットに送信することと、
前記制御ユニットが前記コマンドについてオープンな前記交換を有することを示す応答を前記制御ユニットから受信することと、
前記動作の完了のための追加の時間期間をセットすることと、
前記追加の時間期間が終了したら、前記制御ユニットが前記動作の実行を継続しているか否かを判定するために、前記メッセージを再送信することと、
を含む、請求項１８に記載の装置。
【請求項２０】
前記コマンドを送信するステップが、トランスポート制御ワード（ＴＣＷ）をサポートするプロトコルを用いるトランスポート・モードで前記コマンドを送信することを含み、
前記時間期間が、前記動作が完了したことを示す完了メッセージを前記制御ユニットから受信するための第１の時間期間であり、
前記メッセージがＲＥＣ（Read Exchange Concise）メッセージであり、前記メッセージを送信するステップが、前記第１の時間期間内に前記完了メッセージを受信しないことに応答したものであり、
前記チャネル・サブシステムが、
前記制御ユニットが前記コマンドについてオープンな前記交換を有することを示す、前記ＲＥＣメッセージに対する応答を受信することと、
前記制御ユニットが前記コマンドについてオープンな前記交換を有することを示す前記応答に応じて、前記動作の完了のための第２の時間期間をセットすることと、
前記追加の時間期間が終了したら、前記制御ユニットが前記動作の実行を継続しているか否かを判定するために、前記ＲＥＣメッセージを再送信することと、
を更に実行する、請求項１に記載の装置。
【請求項２１】
入出力処理システムにおいて制御ユニットとチャネル・サブシステムとの間の通信を処理する方法であって、
前記チャネル・サブシステムから前記制御ユニットに、入出力動作を開始するためのコマンドを送信するステップと、
前記動作の完了のための時間期間を設定するステップと、
前記動作が前記時間期間内に完了しないことに応答して、前記制御ユニットが前記コマンドについてオープンな交換を有するか否かを判定するためのメッセージを送信するステップと、
を含む、方法。
【請求項２２】
前記メッセージがＲＥＣ（Read Exchange Concise）メッセージである、請求項２１に記載の方法。
【請求項２３】
前記制御ユニットが前記コマンドについてオープンな前記交換を有することを示す前記応答に応じて、追加の時間期間の後に第２のメッセージを前記制御ユニットに再送信するステップを更に含む、請求項２１に記載の方法。
【請求項２４】
前記メッセージを送信するステップが、ｉ）前記動作の完了およびｉｉ）前記制御ユニットが前記コマンドについてオープンな前記交換を有しないことを示す、前記メッセージに対する応答の受信の一方まで、前記メッセージを定期的に送信することを含む、請求項２１に記載の方法。
【請求項２５】
前記コマンドを送信するステップが、トランスポート制御ワード（ＴＣＷ）をサポートするプロトコルを用いるトランスポート・モードで前記コマンドを送信することを含み、
前記時間期間が、前記動作が完了したことを示す完了メッセージを前記制御ユニットから受信するための第１の時間期間であり、
前記メッセージがＲＥＣ（Read Exchange Concise）メッセージであり、前記メッセージを送信するステップが、前記第１の時間期間内に前記完了メッセージを受信しないことに応答したものであり、
前記方法が、
前記制御ユニットが前記コマンドについてオープンな前記交換を有することを示す、前記ＲＥＣメッセージに対する応答を受信するステップと、
前記制御ユニットが前記コマンドについてオープンな前記交換を有することを示す前記応答に応じて、前記動作の完了のための第２の時間期間をセットするステップと、
前記追加の時間期間が終了したら、前記制御ユニットが前記動作の実行を継続しているか否かを判定するために、前記ＲＥＣメッセージを再送信するステップと、
を更に含む、請求項２１に記載の方法。
【国際調査報告】
2011512586.tif 000015
2011512586.tif 000016