(57)【特許請求の範囲】
【請求項１】
制御装置と通信するように構成されたホスト・コンピュータ・システムにおける入出力（Ｉ／Ｏ）操作用の入出力処理を容易にするためのコンピュータ・プログラムであって、
処理回路によって読み取り可能であって、方法のステップを実行するために前記処理回路によって実行するための命令を含み、前記方法が、
（ａ）入力データと出力データの両方を有する入出力操作用のトランスポート制御ワード（ＴＣＷ）を入手するステップを含み、
前記ＴＣＷが、前記入出力操作によって実行すべき読み取りコマンドおよび書き込みコマンドを含む複数のコマンドを保持するように構成されたトランスポート・コマンド制御ブロック（ＴＣＣＢ）のメモリ内の位置と、前記書き込みコマンドによって処理すべき前記出力データのメモリ内の位置と、前記読み取りコマンドによって処理すべき前記入力データを格納するためのメモリ内の位置を指定し、
（ｂ）実行のために前記ＴＣＣＢを前記制御装置に転送するステップと、
（ｃ）前記ＴＣＷによって指定された前記出力データの前記位置に応じて前記出力データを収集するステップと、
（ｄ）前記入出力操作の実行時に使用するために前記出力データを前記制御装置に転送するステップと、
（ｅ）前記制御装置から前記入力データを受信するステップと、
（ｆ）前記ＴＣＷによって指定された前記入力データを格納するための前記位置に前記入力データを格納するステップとをさらに含む、コンピュータ・プログラム。
【請求項２】
前記ＴＣＷが、前記出力データのサイズをさらに指定し、前記ステップ（ｃ）が、前記出力データの前記サイズに応じて行われる、請求項１記載のコンピュータ・プログラム。
【請求項３】
前記出力データの前記位置および前記入力データを格納するための前記位置のうちの一方または両方が直接アドレスである、請求項１記載のコンピュータ・プログラム。
【請求項４】
前記出力データの前記位置および前記入力データを格納するための前記位置のうちの一方または両方が間接アドレスである、請求項１記載のコンピュータ・プログラム。
【請求項５】
前記ＴＣＷが、ホスト・オペレーティング・システムから入手される、請求項１記載のコンピュータ・プログラム。
【請求項６】
前記方法が、
前記ステップ（ａ）の後で且つ前記ステップ（ｂ）の前に、前記制御装置との交換をオープンするステップと、
前記ステップ（ｅ）の後に、前記オープンされた交換をクローズするステップとをさらに含む、請求項１記載のコンピュータ・プログラム。
【請求項７】
単一入出力操作内で双方向データ転送を提供するための装置であって、
チャネル・アダプタを有するホスト・コンピュータ入出力サブシステムを備え、前記チャネル・アダプタが制御装置と通信するように構成され、前記ホスト・コンピュータ入出力サブシステムによって実行される方法が、
（ａ）入力データと出力データの両方を有する入出力操作用のトランスポート制御ワード（ＴＣＷ）を入手するステップを含み、
前記ＴＣＷが、前記入出力操作によって実行すべき読み取りコマンドおよび書き込みコマンドを含む複数のコマンドを保持するように構成されたトランスポート・コマンド制御ブロック（ＴＣＣＢ）のメモリ内の位置と、前記書き込みコマンドによって処理すべき前記出力データのメモリ内の位置と、前記読み取りコマンドによって処理すべき前記入力データを格納するためのメモリ内の位置を指定し、
（ｂ）実行のために前記ＴＣＣＢを前記制御装置に転送するステップと、
（ｃ）前記ＴＣＷによって指定された前記出力データの前記位置に応じて前記出力データを収集するステップと、
（ｄ）前記入出力操作の実行時に使用するために前記出力データを前記制御装置に転送するステップと、
（ｅ）前記制御装置から前記入力データを受信するステップと、
（ｆ）前記ＴＣＷによって指定された前記入力データを格納するための前記位置に前記入力データを格納するステップとをさらに含む、装置。
【請求項８】
前記ＴＣＷが、前記出力データのサイズをさらに指定し、前記ステップ（ｃ）が、前記出力データの前記サイズに応じて行われる、請求項７記載の装置。
【請求項９】
前記出力データの前記位置および前記入力データを格納するための前記位置のうちの一方または両方が直接アドレスである、請求項７記載の装置。
【請求項１０】
前記出力データの前記位置および前記入力データを格納するための前記位置のうちの一方または両方が間接アドレスである、請求項７記載の装置。
【請求項１１】
前記ＴＣＷが、ホスト・オペレーティング・システムから入手される、請求項７記載の装置。
【請求項１２】
前記方法が、
前記ステップ（ａ）の後で且つ前記ステップ（ｂ）の前に、前記制御装置との交換をオープンするステップと、
前記ステップ（ｅ）の後に、前記オープンされた交換をクローズするステップとをさらに含む、請求項７記載の装置。
【請求項１３】
制御装置と通信するように構成されたホスト・コンピュータ・システムにおける入出力操作用の入出力処理を容易にするための方法であって、
（ａ）入力データと出力データの両方を有する入出力操作用のトランスポート制御ワード（ＴＣＷ）を入手するステップを含み、
前記ＴＣＷが、前記入出力操作によって実行すべき読み取りコマンドおよび書き込みコマンドを含む複数のコマンドを保持するように構成されたトランスポート・コマンド制御ブロック（ＴＣＣＢ）のメモリ内の位置と、前記書き込みコマンドによって処理すべき前記出力データのメモリ内の位置と、前記読み取りコマンドによって処理すべき前記入力データを格納するためのメモリ内の位置を指定し、
（ｂ）実行のために前記ＴＣＣＢを前記制御装置に転送するステップと、
（ｃ）前記ＴＣＷによって指定された前記出力データの前記位置に応じて前記出力データを収集するステップと、
（ｄ）前記入出力操作の実行時に使用するために前記出力データを前記制御装置に転送するステップと、
（ｅ）前記制御装置から前記入力データを受信するステップと、
（ｆ）前記ＴＣＷによって指定された前記入力データを格納するための前記位置に前記入力データを格納するステップとをさらに含む、方法。
【請求項１４】
前記ＴＣＷが、前記出力データのサイズをさらに指定し、前記ステップ（ｃ）が、前記出力データの前記サイズに応じて行われる、請求項１３記載の方法。
【請求項１５】
前記出力データの前記位置および前記入力データを格納するための前記位置のうちの一方または両方が直接アドレスである、請求項１３記載の方法。
【請求項１６】
前記出力データの前記位置および前記入力データを格納するための前記位置のうちの一方または両方が間接アドレスである、請求項１３記載の方法。
【請求項１７】
前記ホスト・コンピュータ・システムが入出力処理システムを含み、前記方法が、前記入出力処理システムによって実行される、請求項１３記載の方法。
【請求項１８】
前記ホスト・コンピュータ・システムがチャネル・サブシステムを含み、前記方法が、前記チャネル・サブシステムによって実行される、請求項１３記載の方法。
【請求項１９】
前記ＴＣＷが、ホスト・オペレーティング・システムから入手される、請求項１３記載の方法。
【請求項２０】
前記方法が、
前記ステップ（ａ）の後で且つ前記ステップ（ｂ）の前に、前記制御装置との交換をオープンするステップと、
前記ステップ（ｅ）の後に、前記オープンされた交換をクローズするステップとをさらに含む、請求項１３記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、入出力（Ｉ／Ｏ：input/output）処理に関し、特に、入力データと出力データの両方を含む入出力操作を提供することに関する。
【背景技術】
【０００２】
入出力（Ｉ／Ｏ）操作は、入出力処理システムのメモリと入出力装置との間でデータを転送するために使用される。具体的には、入出力操作を実行することにより、メモリから１つ以上の入出力装置にデータが書き込まれ、１つ以上の入出力装置からメモリにデータが読み込まれる。
【０００３】
入出力操作の処理を容易にするため、入出力処理システムの入出力サブシステムが使用される。入出力サブシステムは、入出力処理システムのメイン・メモリおよび入出力装置に結合され、メモリと入出力装置との間の情報の流れを管理する。入出力サブシステムの一例はチャネル・サブシステムである。チャネル・サブシステムは通信媒体としてチャネル・パスを使用する。各チャネル・パスは制御装置に結合されたチャネルを含み、その制御装置は１つ以上の入出力装置にさらに結合されている。
【０００４】
チャネル・サブシステムは、入出力装置とメモリとの間でデータを転送するためにチャネル・コマンド・ワード（ＣＣＷ：channel command word）を使用することができる。ＣＣＷは、実行すべきコマンドを指定するものである。特定の入出力操作を開始するコマンドの場合、ＣＣＷは、その操作に関連するメモリ領域と、その領域との間の転送が完了したときに取るべきアクションと、その他のオプションを指定する。
【０００５】
入出力処理中に、チャネルによってメモリからＣＣＷのリストが取り出される。チャネルは、ＣＣＷのリストから各コマンドを解析し、各コマンドをそれ自体のエンティティ内に含めて、いくつかのコマンドをそのチャネルに結合された制御装置に転送する。次に、制御装置がそのコマンドを処理する。チャネルは、各コマンドの状態を追跡し、処理のために次の１組のコマンドを制御装置に送信すべき時期を制御する。チャネルは、各コマンドがそれ自体のエンティティ内に含められて制御装置に送信されることを保証する。さらに、チャネルは、各コマンドに関する制御装置からの応答を処理することに関連する特定の情報を推論する。
【０００６】
ＣＣＷごとに入出力処理を実行することは、チャネル・サブシステムに関する大量の処理オーバヘッドを伴う可能性がある。というのは、チャネルは、ＣＣＷを解析し、状態情報を追跡し、制御装置からの応答に反応するからである。したがって、ＣＣＷおよび状態情報を解釈し且つ管理することに関連する処理負担の多くをチャネル・サブシステムから制御装置にシフトすることは、有益である可能性がある。入出力処理システム内で制御装置とオペレーティング・システムとの間で通信する際のチャネルの役割を単純化すると、実行されるハンドシェークが少なくなるので、通信スループットを増加させることができる。通信におけるチャネルの役割を単純化することは、複数のコマンドを単一入出力操作にグループ化することを含むことができる。しかし、２つ以上のコマンドをまとめて単一入出力操作にグループ化することによりコマンド・シーケンスを変更すると、この入出力操作が入力データと出力データの両方を有する入出力操作になる可能性がある。現在、入出力操作は、データ入力またはデータ出力に使用可能な単一データ領域をサポートすることができるが、同じ入出力操作内で両方をサポートできるわけではない。これは、単一入出力操作にまとめてグループ化できるコマンドの種類を制限し、したがって、コマンドをグループ化することによって得られるスループットの増加を制限するものである。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許第５４６１７２１号
【特許文献２】米国特許第５５２６４８４号
【特許文献３】米国特許出願第１１／４６４６１３号
【非特許文献】
【０００８】
【非特許文献１】２００７年４月発行の「IBM (R) z/Architecture Principles of Operation」という資料番号ＳＡ２２−７８３２−０５の第６版
【非特許文献２】「Fibre Channel Single Byte Command Code Sets-3 Mapping Protocol」(FC-SB-3)、T11/Project 1357-D/Rev. 1.6、INCITS（２００３年３月）
【非特許文献３】２００５年９月１３日発行の「Information Technology - Fibre Channel Protocol for SCSI, Third Version (FCP-3)」T10 Project 1560-D、Revision 4
【発明の概要】
【発明が解決しようとする課題】
【０００９】
したがって、当技術分野では、単一入出力操作内で入力データと出力データの両方を転送できるようにする必要がある。
【課題を解決するための手段】
【００１０】
一実施形態は、制御装置と通信するように構成されたホスト・コンピュータ・システムにおける入出力（Ｉ／Ｏ）操作用の入出力処理を容易にするためのコンピュータ・プログラムを含む。このコンピュータ・プログラムは、処理回路によって読み取り可能であって、方法のステップを実行するために処理回路によって実行するための命令を含む。この方法は、入力データと出力データの両方を有する入出力操作用のトランスポート制御ワード（ＴＣＷ：transport control word）を入手するステップを含む。ＴＣＷは、入出力操作によって実行すべき読み取りコマンドおよび書き込みコマンドを含む複数のコマンドを保持するように構成されたトランスポート・コマンド制御ブロック（ＴＣＣＢ）のメモリ内の位置と、書き込みコマンドによって処理すべき出力データのメモリ内の位置と、読み取りコマンドによって処理すべき入力データを格納するためのメモリ内の位置を指定する。この方法はさらに、実行のためにＴＣＣＢを制御装置に転送するステップと、ＴＣＷによって指定された出力データの位置に応じて出力データを収集するステップと、入出力操作の実行時に使用するために出力データを制御装置に転送するステップと、制御装置から入力データを受信するステップと、ＴＣＷによって指定された入力データを格納するための位置に入力データを格納するステップとを含む。
【００１１】
他の実施形態は、単一入出力操作内で双方向データ転送を提供するための装置を含む。この装置は、ホスト・コンピュータ入出力サブシステムを備え、このホスト・コンピュータ入出力サブシステムは、制御装置と通信するように構成されたチャネル・アダプタを有する。このホスト・コンピュータ入出力サブシステムによって実行される方法は、入力データと出力データの両方を有する入出力操作用のＴＣＷを入手するステップを含む。ＴＣＷは、入出力操作によって実行すべき読み取りコマンドおよび書き込みコマンドを含む複数のコマンドを保持するように構成されたトランスポート・コマンド制御ブロック（ＴＣＣＢ）のメモリ内の位置と、書き込みコマンドによって処理すべき出力データのメモリ内の位置と、読み取りコマンドによって処理すべき入力データを格納するためのメモリ内の位置を指定する。この方法はさらに、実行のためにＴＣＣＢを制御装置に転送するステップと、ＴＣＷによって指定された出力データの位置に応じて出力データを収集するステップと、入出力操作の実行時に使用するために出力データを制御装置に転送するステップと、制御装置から入力データを受信するステップと、ＴＣＷによって指定された入力データを格納するための位置に入力データを格納するステップとを含む。
【００１２】
さらに他の一実施形態は、制御装置と通信するように構成されたホスト・コンピュータ・システムにおける入出力操作用の入出力処理を容易にするための方法を含む。この方法は、入力データと出力データの両方を有する入出力操作用のＴＣＷを入手するステップを含む。ＴＣＷは、入出力操作によって実行すべき読み取りコマンドおよび書き込みコマンドを含む複数のコマンドを保持するように構成されたトランスポート・コマンド制御ブロック（ＴＣＣＢ）のメモリ内の位置と、書き込みコマンドによって処理すべき出力データのメモリ内の位置と、読み取りコマンドによって処理すべき入力データを格納するためのメモリ内の位置を指定する。この方法はさらに、実行のためにＴＣＣＢを制御装置に転送するステップと、ＴＣＷによって指定された出力データの位置に応じて出力データを収集するステップと、入出力操作の実行時に使用するために出力データを制御装置に転送するステップと、制御装置から入力データを受信するステップと、ＴＣＷによって指定された入力データを格納するための位置に入力データを格納するステップとを含む。
【００１３】
諸実施形態によるその他のコンピュータ・プログラム、ホスト・コンピュータ・システムまたは方法、あるいはこれらの組み合わせは、以下の図面および詳細な説明を検討すると、当業者にとって自明なものになるであろう。このような追加のコンピュータ・プログラム、ホスト・コンピュータ・システムまたは方法、あるいはこれらの組み合わせはいずれも、この説明の範囲内に含まれ、本発明の範囲内にあり、特許請求の範囲によって保護されることが意図されている。
【００１４】
本発明と見なされる主題は、特許請求の範囲で詳細に指摘され、明瞭に請求されている。本発明の前記その他の目的、特徴、および利点は、添付図面と併せて以下の詳細な説明を読めば明らかになる。
【図面の簡単な説明】
【００１５】
【図１】本発明の１つ以上の態様を包含し且つ使用する入出力処理システムの一実施形態を示す図である。
【図２】従来技術のチャネル・コマンド・ワード（ＣＣＷ）の一例を示す図である。
【図３】従来技術のＣＣＷチャネル・プログラムの一例を示す図である。
【図４】図３のＣＣＷチャネル・プログラムを実行するためにチャネルと制御装置との間で通信する際に使用される、従来技術のリンク・プロトコルの一実施形態を示す図である。
【図５】本発明の一態様に係る、トランスポート制御ワード（ＴＣＷ：transport control word）チャネル・プログラムの一実施形態を示す図である。
【図６】本発明の一態様に係る、図５のＴＣＷチャネル・プログラムを実行するためにチャネルと制御装置との間で通信するために使用される、リンク・プロトコルの一実施形態を示す図である。
【図７】ＣＣＷチャネル・プログラムの４つの読み取りコマンドを実行するためにチャネルと制御装置との間で通信するために使用される、従来技術のリンク・プロトコルの一実施形態を示す図である。
【図８】本発明の一態様に係る、ＴＣＷチャネル・プログラムの４つの読み取りコマンドを処理するためにチャネルと制御装置との間で通信するために使用される、リンク・プロトコルの一実施形態を示す図である。
【図９】本発明の一態様に係る、制御装置およびチャネル・サブシステムの一実施形態を示す図である。
【図１０】本発明の一態様に係る、ＴＣＷの一実施形態を示す図である。
【図１１】本発明の一態様に係る、ＴＣＷチャネル・プログラムの一実施形態を示す図である。
【図１２】本発明の一態様に係る、図１１のＴＣＷチャネル・プログラムを実行するためにチャネルと制御装置との間で通信するために使用される、リンク・プロトコルの一実施形態を示す図である。
【図１３】本発明の一態様に係る、単一入出力操作内の双方向データ転送のためのプロセスの一実施形態を示す図である。
【図１４】本発明の１つ以上の態様を包含するコンピュータ・プログラムの一実施形態を示す図である。
【発明を実施するための形態】
【００１６】
この詳細な説明は、図面を参照しつつ、一例として、利点および特徴とともに本発明の好ましい諸実施形態を説明するものである。
【００１７】
本発明の一態様によれば、単一入出力処理が入力データと出力データの両方を含むようにすることにより、入出力（Ｉ／Ｏ）処理が容易になる。したがって、各入出力操作を使用して、入力ストリームと出力ストリームの両方を転送することができる。これは、入出力処理を実行するために使用される入出力処理システムのコンポーネント間の通信を低減することにより、入出力処理を容易にする。たとえば、チャネルなどの入出力通信アダプタと制御装置との間の交換およびシーケンスの数が低減される。これは、制御装置による実行のために複数のコマンドを単一エンティティとして入出力通信アダプタから制御装置に送信し、これらのコマンドの結果として得られるデータがあれば、それを単一エンティティとして制御装置が送信することによって達成される。単一エンティティとして制御装置に送信された複数のデバイス・コマンド・ワード（ＤＣＷ：device command word）は、読み取りコマンドと書き込みコマンドの両方を含むことができる。
【００１８】
これらの複数のコマンドは、本明細書でトランスポート・コマンド制御ブロック（ＴＣＣＢ：transport command control block）と呼ばれるブロック内に含まれ、当該ブロックのアドレスはトランスポート制御ワード（ＴＣＷ）内で指定される。ＴＣＷは、オペレーティング・システム（ＯＳ）またはその他のアプリケーションから入出力通信アダプタに送信され、次にその入出力通信アダプタは、処理のためにコマンド・メッセージ内に含められたＴＣＣＢを制御装置に転送する。制御装置は、入出力通信アダプタによる個々のコマンドに関する状況の追跡なしに、それぞれのコマンドを処理する。これらの複数のコマンドはチャネル・プログラムとも呼ばれ、入出力通信アダプタではなく、制御装置上で解析され実行される。
【００１９】
一実施形態では、ＴＣＷは、入出力操作を実行するために必要なすべての制御ブロックについて、チャネルにポインタを提供する。一実施形態では、ＴＣＷは、入力データ・アドレスと出力データ・アドレスの両方を指すポインタを含む。これにより、単一入出力操作内で両方向に（たとえば、チャネルから制御装置へ、また制御装置からチャネルへ）データを転送することができる。
【００２０】
図１を参照して、本発明の１つ以上の態様を包含し且つ使用する入出力処理システムの一例について説明する。入出力処理システム１００はホスト・システム１０１を含み、このホスト・システムはさらに、たとえば、メイン・メモリ１０２と、１つ以上の中央演算処理装置（ＣＰＵ）１０４と、ストレージ制御要素１０６と、チャネル・サブシステム１０８とを含む。ホスト・システム１０１は、メインフレームまたはサーバなどの大規模コンピュータ・システムにすることができる。また、入出力処理システム１００は、１つ以上の制御装置１１０と１つ以上の入出力装置１１２とを含み、その各々について以下で説明する。
【００２１】
メイン・メモリ１０２は、入出力装置１１２から入力することができるデータおよびプログラムを格納する。たとえば、メイン・メモリ１０２は、ＣＰＵ１０４のうちの１つ以上によって実行される、１つ以上のオペレーティング・システム（ＯＳ）１０３を含むことができる。たとえば、１つのＣＰＵ１０４は、異なる仮想計算機インスタンスとしてＬｉｎｕｘ（Ｒ）オペレーティング・システム１０３およびｚ／ＯＳ（Ｒ）オペレーティング・システム１０３を実行することができる。メイン・メモリ１０２は、直接的にアドレス可能であり、ＣＰＵ１０４およびチャネル・サブシステム１０８による高速データ処理を可能にする。
【００２２】
ＣＰＵ１０４は、入出力処理システム１００の制御センターである。ＣＰＵ１０４は、命令実行、割り込みアクション、タイミング機能、初期プログラム・ローディング、その他の機械関連機能のための順序付けおよび処理機構を具備する。ＣＰＵ１０４は、双方向バスまたは単一方向バスなどの接続部１１４を介してストレージ制御要素１０６に結合される。
【００２３】
ストレージ制御要素１０６は、バスなどの接続部１１６を介してメイン・メモリ１０２に結合され、接続部１１４を介してＣＰＵ１０４に結合され、接続部１１８を介してチャネル・サブシステム１０８に結合される。ストレージ制御要素１０６は、たとえば、ＣＰＵ１０４のうちの１つ以上およびチャネル・サブシステム１０８によって行われる要求の待ち行列化および実行を制御する。
【００２４】
一実施形態では、チャネル・サブシステム１０８は、ホスト・システム１０１と制御装置１１０との間の通信インターフェースを提供する。チャネル・サブシステム１０８は、前述の通り、ストレージ制御要素１０６に結合され、シリアル・リンクなどの接続部１２０を介して各制御装置１１０に結合される。接続部１２０は、ファイバ・チャネル・ファブリック（たとえば、ファイバ・チャネル・ネットワーク）内で単一モードまたはマルチモード導波管を使用する光リンクを含む、当技術分野で知られている任意の方法で実装することができる。チャネル・サブシステム１０８は、入出力装置１１２とメイン・メモリ１０２との間の情報の流れを管理する。チャネル・サブシステム１０８は、入出力装置１１２と直接通信するタスクからＣＰＵ１０４を解放し、入出力処理と同時にデータ処理を続行できるようにする。チャネル・サブシステム１０８は、入出力装置１１２との間の情報の流れを管理する際に、通信リンクとして１つ以上のチャネル・パス１２２を使用する。入出力処理の一部として、チャネル・サブシステム１０８は、チャネル・パスの使用可能性のテスト、使用可能なチャネル・パス１２２の選択、入出力装置１１２による操作の実行の開始というパス管理機能も実行する。
【００２５】
各チャネル・パス１２２は、チャネル１２４（図１に示された例では、各チャネル１２４はチャネル・サブシステム１０８内に位置する）と、１つ以上の制御装置１１０と、１つ以上の接続部１２０とを含む。他の例では、チャネル・パス１２２の一部として１つ以上の動的スイッチ（図示せず）を有することも可能である。動的スイッチは、チャネル１２４および制御装置１１０に結合することができ、当該スイッチに接続される任意の２つのリンクを物理的に相互接続する機能を提供する。他の例では、複数のシステムを有することも可能であり、したがって、制御装置１１０のうちの１つ以上に接続された複数のチャネル・サブシステム（図示せず）を有することも可能である。
【００２６】
また、チャネル・サブシステム１０８内には、サブチャネル（図示せず）も位置する。１つのサブチャネルは、チャネル・サブシステム１０８を通してプログラムにアクセス可能な各入出力装置１１２ごとに設けられ、各入出力装置１１２に専用となる。サブチャネル（たとえば、テーブルなどのデータ構造）は、ある入出力装置１１２の論理的外観をプログラムに提供する。各サブチャネルは、関連する入出力装置１１２およびその接続機構に関する情報をチャネル・サブシステム１０８に提供する。また、サブチャネルは、関連する入出力装置１１２が関与する入出力操作およびその他の機能に関する情報も提供する。サブチャネルは、チャネル・サブシステム１０８が関連する入出力装置１１２に関する情報をＣＰＵ１０４に提供するための手段であり、ＣＰＵ１０４は、入出力命令を実行することによりこの情報を入手する。
【００２７】
チャネル・サブシステム１０８は、１つ以上の制御装置１１０に結合される。各制御装置１１０は、１つ以上の入出力装置１１２を操作し制御するためのロジックを提供し、共通機構の使用を通して、各入出力装置１１２の特性を、チャネル１２４によって提供されるリンク・インターフェースに適合させる。これらの共通機構は、入出力操作の実行のために、入出力装置１１２および制御装置１１０の状況に関する情報、チャネル・パス１２２上のデータ転送のタイミングの制御、および特定のレベルの入出力装置１１２の制御を提供する。
【００２８】
各制御装置１１０は、接続部１２６（たとえば、バス）を介して１つ以上の入出力装置１１２に接続される。入出力装置１１２は、情報を受信するか、またはメイン・メモリ１０２若しくはその他のメモリに情報を格納する。入出力装置１１２の例としては、カード・リーダおよびパンチ、磁気テープ装置、直接アクセス記憶装置、ディスプレイ、キーボード、プリンタ、ポインティング・デバイス、テレプロセシング装置、通信コントローラ、センサベースの機器等がある。
【００２９】
入出力処理システム１００の前記コンポーネントのうちの１つ以上については、前掲の非特許文献１、特許文献１および特許文献２に詳細に記載されている。
【００３０】
一実施形態では、入出力装置１１２とメモリ１０２との間でデータを転送するために、チャネル・コマンド・ワード（ＣＣＷ）が使用される。ＣＣＷは、実行すべきコマンドを指定し、処理を制御するためのその他のフィールドを含む。図２を参照して、ＣＣＷの一例について説明する。ＣＣＷ２００は、たとえば、実行すべきコマンド（たとえば、読み取り、逆方向読み取り（read backward）、制御、センス、および書き込み）を指定するコマンド・コード２０２と、入出力操作を制御するために使用される複数のフラグ２０４とを含み、データの転送を指定するコマンドに関しては、ＣＣＷによって指定されたストレージ領域内の転送すべきバイト数を指定するカウント・フィールド２０６と、データ・アドレス２０８とを含む。なおデータ・アドレス・フィールド２０８は、直接アドレス指定が使用される場合には、データを含むメイン・メモリ内の位置を指し、変更間接データ・アドレス指定が使用される場合には、処理すべき変更間接データ・アドレス・ワード（ＭＩＤＡＷ：modified indirect data address word）のリスト（たとえば、連続リスト）を指す。変更間接アドレス指定については、前掲の特許文献３に詳細に記載されている。
【００３１】
順次実行用に構成された１つ以上のＣＣＷは、本明細書でＣＣＷチャネル・プログラムとも呼ばれるチャネル・プログラムを形成する。ＣＣＷチャネル・プログラムは、たとえば、オペレーティング・システムまたはその他のソフトウェアによってセットアップされる。このソフトウェアは、ＣＣＷをセットアップし、チャネル・プログラムに割り当てられたメモリのアドレスを入手する。図３を参照して、ＣＣＷチャネル・プログラムの一例について説明する。ＣＣＷチャネル・プログラム２１０は、たとえば、エクステント定義（define extent）ＣＣＷ２１２を含む。エクステント定義ＣＣＷ２１２は、ポインタ２１４を有し、当該ポインタ２１４は、当該エクステント定義コマンドとともに使用すべきエクステント定義データ２１６のメモリ内の位置を指す。この例では、エクステント定義コマンドの後に続くチャネル内転送（ＴＩＣ：transfer in channel）２１８は、チャネル・プログラムに対し、レコード位置指定データ２２０を指すポインタ２１９を有するレコード位置指定（locate record）２１７や１つ以上の読み取りＣＣＷ２２１のような１つ以上の他のＣＣＷを含む、メモリ内の他の領域（たとえば、アプリケーション領域）を参照させる。各読み取りＣＣＷ２２０は、データ領域２２４を指すポインタ２２２を有する。そのデータ領域は、そのデータに直接アクセスするためのアドレスを含むか、またはそのデータに間接的にアクセスするためのデータ・アドレス・ワード（たとえば、ＭＩＤＡＷまたはＩＤＡＷ）のリストを含む。さらに、ＣＣＷチャネル・プログラム２１０は、装置アドレスによって定義され、ＣＣＷチャネル・プログラムの実行の結果得られる状況用サブチャネル（subchannel for status）２２６と呼ばれるチャネル・サブシステム内の所定の領域を含む。
【００３２】
図３および図４を参照して、ＣＣＷチャネル・プログラムの処理について説明する。特に、図４は、ＣＣＷチャネル・プログラムの実行中にチャネルと制御装置との間で発生する様々な交換およびシーケンスの一例を示している。この例では、この通信に使用されるリンク・プロトコルは、ＦＩＣＯＮ（Fiber Connectivity）である。ＦＩＣＯＮに関する情報は、前掲の非特許文献２に記載されている。
【００３３】
図４を参照すると、チャネル３００は、制御装置３０２との交換をオープンし、エクステント定義コマンドおよびそれに関連するデータを制御装置３０２に送信する（３０４）。このコマンドはエクステント定義ＣＣＷ２１２（図３）から取り出され、データはエクステント定義データ領域２１６から得られる。チャネル３００は、ＴＩＣ２１８を使用して、レコード位置指定ＣＣＷおよび読み取りＣＣＷを位置指定する。チャネル３００は、レコード位置指定ＣＣＷ２１７（図３）からレコード位置指定コマンド（図４）を取り出し、レコード位置指定データ２２０からデータを入手する（３０５）。読み取りコマンド（図４）は、読み取りＣＣＷ２２１（図３）から取り出される（３０６）。各読み取りコマンドは制御装置３０２に送信される。
【００３４】
制御装置３０２は、チャネル３００の交換オープンに応答して、チャネル３００との交換をオープンする（３０８）。この処理は、位置指定コマンド３０５または読み取りコマンド３０６あるいはその両方の前に発生することも、後に発生することもある。交換オープンとともに、応答（ＣＭＲ）がチャネル３００に転送される。ＣＭＲは、制御装置３０２がアクティブであり動作中であることを示す情報をチャネル３００に提供する。
【００３５】
制御装置３０２は、要求されたデータをチャネル３００に送信する（３１０）。さらに、制御装置３０２は、チャネル３００に状況を提供し、交換をクローズする（３１２）。これに応答して、チャネル３００は、データを格納し、状況を検査し、交換をクローズする（３１４）。こうして、制御装置３０２に対し、状況が受信されたことが示される。
【００３６】
４ｋのデータを読み取るための前記ＣＣＷチャネル・プログラムの処理では、２回の交換のオープンおよびクローズと、７つのシーケンスが必要となる。チャネルと制御装置との間の交換およびシーケンスの総数は、チャネル・プログラムの複数のコマンドを１つのＴＣＣＢに集約することによって削減される。チャネル（たとえば、図１のチャネル１２４）は、ＴＣＷを使用して、ＴＣＣＢの位置を識別するとともに、チャネル・プログラムの実行に関連する状況およびデータにアクセスし、それを格納するための位置を識別する。ＴＣＷは、チャネル１２４によって解釈されるものであり、制御装置１１０には送信送信されず、制御装置１１０からは見えない。
【００３７】
図５を参照して、４ｋのデータを読み取るためのチャネル・プログラムの一例について説明する。図５は、図３と同様であるが、個別の個々のＣＣＷの代わりに、１つのＴＣＣＢを含む点が異なる。図示の通り、本明細書でＴＣＷチャネル・プログラムと呼ばれるチャネル・プログラム４００は、ＴＣＷ４０２を含む。ＴＣＷ４０２は、ＴＣＣＢ４０４のメモリ内の位置と、データ領域４０６またはデータ領域４０６を指すＴＩＤＡＬ４１０（すなわち、ＭＩＤＡＷと同様に、トランスポート・モード間接データ・アドレス・ワード（ＴＩＤＡＷ）のリスト）のメモリ内の位置と、状況領域４０８とを指定する。
【００３８】
図６を参照して、ＴＣＷチャネル・プログラムの処理について説明する。これらの通信に使用されるリンク・プロトコルは、たとえば、ファイバ・チャネル・プロトコル（ＦＣＰ：Fibre Channel Protocol）である。特に、ＦＣＰリンク・プロトコルの３つのフェーズが使用され、その結果、ＣＣＷによって制御されるデータ転送を実行するためにＦＣＰをサポートするホスト・バス・アダプタの使用が可能となる。ＦＣＰおよびそのフェーズについては、前掲の非特許文献３に詳細に記載されている。
【００３９】
図６を参照すると、チャネル５００は、制御装置５０２との交換をオープンし、制御装置５０２にＴＣＣＢを送信する（５０４）。一例では、ＴＣＣＢおよびシーケンス・イニシアティブ（sequence initiative）は、ＦＣＰ＿ＣＭＮＤ情報単位（ＩＵ）またはトランスポート・コマンドＩＵと呼ばれるＦＣＰコマンド内に含められて制御装置５０２に転送される。制御装置５０２は、ＴＣＣＢの複数のコマンド（たとえば、デバイス・コマンド・ワード（ＤＣＷ：device command word）としてのエクステント定義コマンド、レコード位置指定コマンド、読み取りコマンド）を実行し、たとえば、ＦＣＰ＿Ｄａｔａ ＩＵを介してデータをチャネル５００に転送する（５０６）。また、制御装置５０２は、状況を提供し、交換をクローズする（５０８）。一例として、最終状況は、たとえば、トランスポート応答ＩＵとも呼ばれるＦＣＰ＿ＲＳＰ ＩＵのペイロードのバイト１０または１１にアクティブ・ビットを有するＦＣＰ状況フレーム内に含められて送信される。ＦＣＰ＿ＲＳＰ ＩＵペイロードは、追加の状況情報に加えて、ＦＩＣＯＮ終了状況をトランスポートするために使用することができる。
【００４０】
他の一例では、４ｋのカスタマ・データを書き込むために、チャネル５００は以下のようにＦＣＰリンク・プロトコル・フェーズを使用する。
１．ＴＣＣＢをＦＣＰ＿ＣＭＮＤ ＩＵ内に含めて転送する。
２．データのＩＵおよびシーケンス・イニシアティブを制御装置５０２に転送する。（ＦＣＰ転送準備使用不可）
３．最終状況は、たとえば、ＦＣＰ＿ＲＳＰ ＩＵペイロードのバイト１０または１１にアクティブ・ビットを有するＦＣＰ状況フレーム内に含められて送信される。ＦＣＰ＿ＲＥＳ＿ＩＮＦＯフィールドまたはセンス・フィールドは、追加の状況情報に加えて、ＦＩＣＯＮ終了状況をトランスポートするために使用される。
【００４１】
２回の交換のオープン及びクローズが必要となる図３（図４も参照）のＣＣＷチャネル・プログラムとは対照的に、図５のＴＣＷチャネル・プログラムを実行することにより、１回の交換のオープンおよびクローズのみが必要となるに過ぎない（図６も参照）。さらに、７つの通信シーケンスが必要となるＣＣＷチャネル・プログラム（図３および図４を参照）に比べると、ＴＣＷチャネル・プログラム（図５および図６を参照）では、３つの通信シーケンスが必要となるに過ぎない。
【００４２】
プログラムに追加のコマンドが追加された場合でも、ＴＣＷチャネル・プログラムの場合、交換およびシーケンスの数は同じである。たとえば、図７のＣＣＷチャネル・プログラムの通信と図８のＴＣＷチャネル・プログラムの通信を比較されたい。図７のＣＣＷチャネル・プログラムでは、各コマンド（たとえば、エクステント定義コマンド６００、レコード位置指定コマンド６０１、読み取りコマンド６０２、読み取りコマンド６０４、読み取りコマンド６０６、レコード位置指定コマンド６０７、および読み取りコマンド６０８）は、別々のシーケンスでチャネル６１０から制御装置６１２に送信される。さらに、４ｋの各データ・ブロック（たとえば、データ６１４〜６２０）は、別々のシーケンスで制御装置６１２からチャネル６１０に送信される。このＣＣＷチャネル・プログラムは、２回の交換のオープンおよびクローズ（たとえば、交換のオープン６２２、６２４、交換のクローズ６２６、６２８）を必要とし、１４個の通信シーケンスを必要とする。これと比較して、図８のＴＣＷチャネル・プログラムは、１回の交換のオープンおよびクローズと３つの通信シーケンスだけで、図７のＣＣＷチャネル・プログラムと同じタスクを達成する。
【００４３】
図８に示されている通り、チャネル７００は、制御装置７０２との交換をオープンし、ＴＣＣＢを制御装置７０２に送信する（７０４）。ＴＣＣＢは、前述の通り、複数のコマンド、すなわちＤＣＷ内のエクステント定義コマンドと、２つのレコード位置指定コマンドと、４つの読み取りコマンドとを含む。ＴＣＣＢを受信したことに応答して、制御装置７０２は、これらのコマンドを実行し、１６ｋのデータを単一シーケンスでチャネル７００に送信する（７０６）。さらに、制御装置７０２は、チャネル７００に状況を提供し、交換をクローズする（７０８）。したがって、ＴＣＷチャネル・プログラムは、図７のＣＣＷチャネル・プログラムと同じ量のデータを転送するために必要な通信がかなり少なくなる。
【００４４】
次に、図９を参照すると、ＴＣＷチャネル・プログラムの実行をサポートする、図１のチャネル・サブシステム１０８内のチャネル１２４、制御装置１１０、およびチャネル１２４の一実施形態がより詳細に示されている。制御装置１１０内のＣＵ制御ロジック８０２は、接続部１２０を介してチャネル１２４から受信した、図８のＴＣＣＢ７０４のようなＴＣＣＢを保持するコマンド・メッセージを解析し処理する。ＣＵ制御ロジック８０２は、制御装置１１０で受信したＴＣＣＢからＤＣＷおよび制御データを抽出して、接続部１２６を介して入出力装置１１２を制御することができる。ＣＵ制御ロジック８０２は、デバイス・コマンドおよびデータを入出力装置１１２に送信し、状況情報およびその他のフィードバックを入出力装置１１２から受信する。たとえば、入出力装置１１２は、入出力装置１１２をターゲットとする、以前の予約要求のために使用中である可能性がある。制御装置１１０が同じ入出力装置１１２に対する複数のアクセス要求を受信したときに発生し得る潜在的な装置予約の競合問題を管理するために、ＣＵ制御ロジック８０２は、装置使用中メッセージおよび関連するデータを追跡し、それを装置使用中待ち行列８０４内に格納する。一実施形態では、図１のＯＳ１０３は、入出力装置１１２を予約することにより、当該予約がアクティブである間に他のＯＳ１０３が入出力装置１１２にアクセスすることを防止する。すべての入出力操作について装置予約が必要であるわけではないが、固定時間の間、排他的アクセスを必要とする操作、たとえば、ディスク・フォーマットをサポートするために装置予約を使用することができる。
【００４５】
さらに、制御装置１１０は、チャネル１２４と入出力装置１１２との間の通信に関連する複数のメッセージまたは状況情報を格納するための他のバッファまたはメモリ要素（図示せず）を含むことができる。たとえば、制御装置１１０上に位置するレジスタは、制御装置１１０がサポートする制御装置交換オープンの最大数を定義する最大制御装置交換パラメータを含むことができる。
【００４６】
チャネル・サブシステム１０８内のチャネル１２４は、制御装置１１０との通信をサポートするための複数の要素を含む。一実施形態では、ＣＨＮ制御ロジック８０６は、チャネル・サブシステム１０８と制御装置１１０との間の通信を制御する。ＣＨＮ制御ロジック８０６は、接続部１２０を介してＣＵ制御ロジック８０２へのインターフェースを直接取ることにより、トランスポート・コマンドＩＵのようなコマンドを送信し、トランスポート応答ＩＵのような応答を受信することができる。代替的に、メッセージ・インターフェースまたはバッファあるいはその両方（図示せず）を、ＣＨＮ制御ロジック８０６とＣＵ制御ロジック８０２との間に配置することもできる。
【００４７】
図１０には、トランスポート制御ワード（ＴＣＷ）９００の一実施形態が示されている。ＴＣＷ９００は、入出力操作をセットアップするためにチャネル１２４によって使用され、制御装置１１０には送信されない。図１０に示されているＴＣＷは、単一入出力操作内で入力データと出力データの両方を提供する。
【００４８】
図１０に示されているＴＣＷ９００では、フォーマット・フィールド９０２が「００ｂ」に等しい場合は、その後にＴＣＷ９００が続くことを示している。また、ＴＣＷ９００は、今後の使用のための予約ビット９０４も含む。
【００４９】
ＴＣＷ９００は、フラグ・フィールド９０６も含む。フラグ・フィールド９０６の最初の５ビットは、今後の使用のために予約され、０に設定される。フラグ・フィールド９０６の６番目のビットは、ＴＩＤＡＬ読み取りフラグである。一実施形態では、入力データ・アドレス・フィールド９１８がＴＩＤＡＬのアドレスを保持するときに、ＴＩＤＡＬ読み取りフラグは１に設定される。ＴＩＤＡＬ読み取りフラグが０に設定された場合、入力データ・アドレス・フィールド９１８はデータ・アドレスを保持する。フラグ・フィールド９０６の７番目のビットは、ＴＣＣＢ ＴＩＤＡＬフラグである。一実施形態では、ＴＣＣＢアドレス・フィールド９２２がＴＩＤＡＬのアドレスを保持するときに、ＴＣＣＢ ＴＩＤＡＬフラグは１に設定される。ＴＣＣＢ ＴＩＤＡＬフラグが０に設定された場合、ＴＣＣＢアドレス・フィールド９２２は、ＴＣＣＢを直接的にアドレス指定する。ＴＣＣＢ ＴＩＤＡＬフラグにより、オペレーティング・システム・ソフトウェアまたはハイパーバイザは機能を階層化し、ユーザ・チャネル・プログラムに接頭部を付けることができる。フラグ・フィールド９０６の８番目のビットは、ＴＩＤＡＬ書き込みフラグである。一実施形態では、出力データ・アドレス・フィールド９１６がＴＩＤＡＬのアドレスを保持するときに、ＴＩＤＡＬ書き込みフラグは１に設定される。ＴＩＤＡＬ書き込みフラグが０に設定された場合、出力データ・アドレス・フィールド９１６はデータ・アドレスを保持する。
【００５０】
フラグ・フィールド９０６の９番目から２４番目までのビットは、今後の使用のために予約される。
【００５１】
ＴＣＷ９００は、ＴＣＣＢの長さを間接的に表し、ＴＣＣＢの実際の長さを決定するために使用可能なＴＣＣＢ長さフィールド９１０も含む。
【００５２】
ＴＣＷ９００内の読み取り／書き込みビット９１２は、ＴＣＷ９００を実行する結果としてデータの読み取りまたは書き込みあるいはその両方のいずれが行われるのかを示すために使用される。一実施形態では、ＴＣＷ９００を実行する結果として入力データが入出力装置１１２からホスト・システム１０１内のシステム・ストレージ領域（たとえば、メイン・メモリ１０２）に転送されていることを示すために、読み取り／書き込みビット９１２内の読み取りビットが１に設定される。ＴＣＷ９００を実行する結果として出力データがホスト・システム１０１内のシステム・ストレージ領域（たとえば、メイン・メモリ１０２）から入出力装置に転送されていることを示すために、読み取り／書き込みビット９１２内の書き込みビットが１に設定される。
【００５３】
出力データ・アドレス・フィールド９１６は、出力データ（ある場合）用のアドレスを保持する。前述の通り、出力データ・アドレス・フィールド９１６の内容は、出力データ用のＴＩＤＡＬのアドレス（たとえば、間接アドレス）であることも、出力データの実際のアドレス（たとえば、直接アドレス）であることもある。入力データ・アドレス・フィールド９１８は、入力データ（ある場合）用のアドレスを保持する。前述の通り、入力データ・アドレス・フィールド９１８の内容は、入力データ用のＴＩＤＡＬのアドレスであることも、入力データの実際のアドレスであることもある。一実施形態では、出力データ・アドレス・フィールド９１６および入力データ・アドレス・フィールド９１８は、６４ビットのアドレスとして実装される。
【００５４】
ＴＣＷ９００は、トランスポート状況ブロック・アドレス・フィールド９２０も含む。このアドレスには、入力操作用のトランスポート応答ＩＵ内の完了状況の一部分（たとえば、拡張状況部）が格納される。ＴＣＷ９００内のＴＣＣＢアドレス・フィールド９２２は、システム・ストレージ領域内でＴＣＣＢが位置するアドレスを保持する。前述の通り、ＴＣＣＢは、ＴＣＷ９００について実行すべきＤＣＷが存在する制御ブロックである。同じく前述の通り、ＴＣＣＢアドレス・フィールド９２２の内容は、ＴＣＣＢ用のＴＩＤＡＬのアドレスであることも、ＴＣＣＢの実際のアドレスであることもある。一実施形態では、トランスポート状況ブロック・アドレス・フィールド９２０およびＴＣＣＢアドレス・フィールド９２２は、６４ビットのアドレスとして実装される。
【００５５】
ＴＣＷ９００内の出力カウント・フィールド９２４は、出力操作のためにＴＣＷ／ＴＣＣＢによって転送すべき出力データの量を示す。一実施形態では、出力カウント・フィールド９２４は、ＴＣＷ（出力データ・アドレス９１６）によって指定されたシステム・ストレージ領域内の転送すべきバイト数を指定する。ＴＣＷ９００内の入力カウント・フィールド９２６は、入力操作のためにＴＣＷ／ＴＣＣＢによって転送すべき入力データの量を示す。一実施形態では、入力カウント・フィールド９２６は、ＴＣＷ（入力データ・アドレス９１８）によって指定されたシステム・ストレージ領域内の転送すべきバイト数を指定する。ＴＣＷ９００内のいくつかの追加のフィールド（すなわち、９２８、９３０および９３２）は、予約されている。問い合わせＴＣＷアドレス・フィールド９３４は、他のＴＣＷのアドレスを保持する。このＴＣＷは、「cancel sub-channel I/O」命令のイニシアティブの下で入出力操作の状態を問い合わせるために、チャネル１２４によって使用される。
【００５６】
図１０に示されているＴＣＷは、コマンド・ワードをどのように構成できるかを示す一例である。この他にも、追加のフィールドが含まれる構成、図１０に示されたフィールドが含まれない構成、あるいはその両方が可能である。
【００５７】
図１１は、入力データと出力データの両方が単一入出力操作に含まれる本発明の一態様に係る、ＴＣＷチャネル・プログラムの一実施形態を示している。図１１に示されている通り、ＴＣＷチャネル・プログラム１０００は、ＴＣＷ１００２を含む。ＴＣＷ１００２は、ＴＣＣＢ１００４のメモリ内の位置と、入力データ１００６またはＴＩＤＡＬ１０１０（すなわち、入力データ１００６用の位置を指すトランスポート・モード間接データ・アドレス・ワード（ＴＩＤＡＷ：transport mode indirect data address word）のリスト）を格納するためのメモリ内の位置と、出力データ領域１０１４または出力データ領域１００６を指すＴＩＤＡＬ１０１２のメモリ内の位置と、状況領域１００８とを指定する。
【００５８】
図１２を参照して、図１１に示されているＴＣＷチャネル・プログラム１０００の処理について説明する。図１２を参照すると、チャネル１１００は、制御装置１１０２との交換をオープンし、ＴＣＣＢを制御装置１１０２に送信し（１１０４）、ＴＣＷ１００２によって指定された出力データ領域１０１４に位置する出力データを制御装置１１０２に送信する（１１０５）。チャネル１１００は、ＴＣＷ１００２内の出力カウント９２４の値に基づいて、送信すべきデータの量を決定する。制御装置１１０２は、ＴＣＣＢの複数のコマンド（たとえば、デバイス・コマンド・ワード（ＤＣＷ）としてのエクステント定義コマンド、レコード位置指定コマンド、書き込みコマンドおよび読み取りコマンド）を実行し、チャネル１１００から出力データを受信し（１１０５）、たとえば、ＦＣＰ＿Ｄａｔａ ＩＵを介してチャネル１１００にＤＣＷ内のデータ・カウントに応じて入力データを転送する（１１０６）。チャネル１１００は、ＴＣＷ１００２によって指定された位置にこの入力データを格納する。また、制御装置１１０２は、状況を提供し、交換をクローズする（１１０８）。このように、データは、単一ＴＣＷチャネル・プログラム１０００（すなわち、入出力操作）で、チャネル１１００に入力され、制御装置１１０２に出力される。
【００５９】
図１３は、本発明の一態様に係る、単一入出力操作内の双方向データ転送のためのプロセスの一実施形態を示している。一実施形態では、図１３に示されている処理は、制御装置とのネットワーク通信状態にあるホスト・コンピュータ・システムで行われる。ホスト・コンピュータ・システムは、このプロセスを実行する入出力処理システムを含むことができる。さらに、この入出力処理システムは、このプロセスを実行するチャネル・サブシステムを含むことができる。ブロック１２０２では、ホスト・コンピュータによってＴＣＷが入手される。一実施形態では、ホスト・コンピュータ上で実行中のオペレーティング・システムからＴＣＷが入手（または受信）される。ＴＣＷは、出力データ・アドレス９１６および出力カウント・フィールド９２４と、入力データ・アドレス９１８および入力データ・カウント・フィールド９２６の両方を含む。一実施形態では、ＴＣＷは、読み取り／書き込みビット９１２内の書き込みビットが１に設定されたときに出力データを含み、読み取り／書き込みビット９１２内の読み取りビットが１に設定されたときに入力データを含む。ブロック１２０４では、ＴＣＷ９２２によって指定された位置からＴＣＣＢを取り出し、これを制御装置に転送する。ＴＣＣＢは、どの入出力操作を実行すべきかを制御装置に通知するためのＤＣＷを保持する。
【００６０】
ブロック１２０６では、ＴＣＷによって指定された位置から出力データを収集する（読み取り／書き込みビット９１２内の書き込みビットが１に設定されている場合）。出力データ内に含めるべき収集データの量は、出力カウント・フィールド９２４の値に基づく。前述の通り、出力データ・アドレスは、出力データの直接アドレスであることも、出力データの間接アドレスであることもある。間接アドレスは、１つのアドレスを指し、このアドレスには、ひとまとめにして出力データを構成する複数のストレージ位置を指す１つ以上のアドレスのリスト（たとえば、ＴＩＤＡＬ）が保持されている。直接アドレスは、出力データを保持する１つのアドレスを指す。一実施形態では、ＴＣＷ内のフラグ・フィールド９０６のＴＩＤＡＬ書き込みフラグは、出力データ・アドレス・フィールド９１６がＴＩＤＡＬのアドレスを保持するときに１に設定され、出力データ・アドレス・フィールド９１６が出力データのアドレスを保持するときに０に設定される。
【００６１】
ブロック１２０８では、出力データを制御装置に転送する。この例の場合、ＸＦＥＲ＿ＲＤＹは使用不可である。
【００６２】
ブロック１２１０では、入出力操作を実行する結果として、制御装置から入力データを受信する。ブロック１２１２では、この入力データをＴＣＷによって指定された位置（入力データ・アドレス９１８）に格納する。一実施形態では、ＴＣＷは、読み取り／書き込みビット９１２内の読み取りビットが１に設定されたときに入力データを含む。前述の通り、入力データ・アドレス９１８は、入力データを格納するための直接アドレスであることもあれば、各々が入力データの一部分を格納する、複数のストレージ位置を指すアドレスのリストへのアドレス（たとえば、ＴＩＤＡＬまたは間接アドレス）であることもある。一実施形態では、ＴＣＷ内のフラグ・フィールド９０６のＴＩＤＡＬ読み取りフラグは、入力データ・アドレス・フィールド９１８がＴＩＤＡＬのアドレスを保持ときに１に設定され、入力データ・アドレス・フィールド９１８が入力データのアドレスを保持ときに０に設定される。
【００６３】
諸実施形態は、単一入出力操作内に入力データと出力データの両方を含めることができるという効果を有する。このため、ＤＣＷをグループ化する際に柔軟性をもたらし、チャネルと制御装置との間で必要な交換の数を削減することができる。
【００６４】
前述の通り、諸実施形態は、コンピュータによって実装されるプロセスおよびこれらのプロセスを実施するための装置の形式で具体化することができる。諸実施形態では、本発明は、１つ以上のネットワーク要素によって実行されるコンピュータ・プログラム・コードの形式で具体化される。図１４に示されるように、諸実施形態は、コンピュータ使用可能媒体１３０２上の、コンピュータ・プログラム１３００を含む。コンピュータ使用可能媒体１３０２は、有形媒体内に具体化された命令を保持するコンピュータ・プログラム・コード・ロジック１３０４を有する。コンピュータ・プログラム・コード・ロジック１３０４がコンピュータにロードされ、コンピュータによって実行されると、そのコンピュータは、本発明を実施するための装置になる。コンピュータ使用可能媒体１３０２は、フレキシブル・ディスク、ＣＤ−ＲＯＭ、ハード・ディスク、ユニバーサル・シリアル・バス（ＵＳＢ）フラッシュ・ドライブ等のコンピュータ可読記憶媒体を含むことができる。
【００６５】
諸実施形態を参照して本発明を説明してきたが、当業者であれば、本発明の範囲を逸脱せずに、様々な変更が可能であり、その諸要素の代わりに同等のものを使用できることを理解できるであろう。加えて、本発明の本質的な範囲を逸脱せずに、特定の状況または物質を本発明の教示に適合させるために多くの変更を行うことができる。したがって、本発明は、本発明を実行するために企図された最良の態様として開示された特定の実施形態に限定されず、特許請求の範囲内に該当するすべての実施形態を含むことが意図される。
【図１】
0004917174.tif 000002
【図２】
0004917174.tif 000003
【図３】
0004917174.tif 000004
【図４】
0004917174.tif 000005
【図５】
0004917174.tif 000006
【図６】
0004917174.tif 000007
【図７】
0004917174.tif 000008
【図８】
0004917174.tif 000009
【図９】
0004917174.tif 000010
【図１０】
0004917174.tif 000011
【図１１】
0004917174.tif 000012
【図１２】
0004917174.tif 000013
【図１３】
0004917174.tif 000014
【図１４】
0004917174.tif 000015