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