(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）チャネル・プログラムの一実施形態を示す図である。
【図６】本発明の一側面に従った、図５のＴＣＷチャネル・プログラムを実行するためにチャネルと制御装置との間で通信するために使用されるリンク・プロトコルの一実施形態を示す図である。
【図７】ＣＣＷチャネル・プログラムの４つの読み取りコマンドを実行するために、チャネルと制御装置との間で通信するために使用される従来技術のリンク・プロトコルの一実施形態を示す図である。
【図８】本発明の一側面に従った、ＴＣＷチャネル・プログラムの４つの読み取りコマンドを処理するために、チャネルと制御装置との間で通信するために使用されるリンク・プロトコルの一実施形態を示す図である。
【図９】本発明の一側面に従った、制御装置およびチャネル・サブシステムの一実施形態を示す図である。
【図１０】本発明の一側面に従った、ＴＣＷの一実施形態を示す図である。
【図１１】本発明の一側面に従った、トランスポート・コマンド制御ブロック（ＴＣＣＢ：transport command control block）の一実施形態を示す図である。
【図１２】本発明の一側面に従った、ＴＣＷチャネル・プログラムの一実施形態を示す図である。
【図１３】制御ブロックに関する間接データ・アドレス指定を提供するためのプロセスの一実施形態を示す図である。
【図１４】本発明の１つまたは複数の側面を包含するコンピュータ・プログラムの一実施形態を示す図である。
【発明を実施するための形態】
【００１７】
この詳細な説明は、図面を参照して、一例として、利点および特徴とともに本発明の好ましい諸実施形態を説明するものである。
【００１８】
本発明の一側面に従って、単一の入出力操作を構成する複数のコマンドを不連続記憶域に格納できるようにすることにより、入出力（Ｉ／Ｏ）は容易になる。コマンドの数および関連する制御データの量などの要因に依存して、ある入出力操作と他の入出力操作では必要な記憶域の長さが変動する可能性がある。本発明の模範的な一実施形態では、間接アドレスのリストを使用して、単一の入出力操作の一部として制御装置に送信すべきコマンド・データを収集する。これは、入出力処理を実行するために使用される入出力処理システムのコンポーネント間の通信を低減することにより、入出力処理を容易にする。たとえば、チャネルなどの入出力通信アダプタと制御装置との間の交換およびシーケンスの数が低減される。これは、制御装置による実行のための単一のエンティティとして複数のコマンドを入出力通信アダプタから制御装置に送信することによって達成される。
【００１９】
この複数のコマンド（たとえば、デバイス・コマンド・ワードまたは「ＤＣＷ：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」命令のイニシアティブの下で入出力操作の状態を問い合わせるために、チャネル１２４によって使用される。
【００５６】
図１０に示されているＴＣＷは、コマンド・ワードをどのように構成できるかを示す一例である。この他にも、追加のフィールドが含まれる構成、図１０に示されたフィールドが含まれない構成、あるいはその両方が可能である。
【００５７】
図１１は、本発明の一側面に従った、ＴＣＣＢ１０００の一実施形態を示している。図１１のＴＣＣＢ１０００は、ＴＣＷ９００のＴＣＣＢアドレス・フィールド９２２に示されているアドレスに位置する。このアドレスは、直接アドレスまたは間接アドレスにすることができ、ＴＣＣＢ１０００の内容は１つの記憶位置に存在するかまたは複数の不連続記憶位置に分散することができる。前述の通り、ＴＣＣＢ１０００はソフトウェアによって構築された制御ブロックであり、その後、チャネル１２４は実行のためにそれを（たとえば、トランスポート・コマンド＿ＩＵに入れて）制御装置１１０に送信する。ＴＣＣＢ１０００は、制御装置１１０によって実行すべきコマンドと、そのコマンドが必要とする任意の制御データとを保持する。チャネル１２４は、ＴＣＣＢ１０００の内容を調べない。チャネル１２４は、ＴＣＣＢ１０００をパッケージ化し、それを制御装置１１０に送信する。このため、ＦＩＣＯＮの代わりに、ＦＣＰトランスポート・プロトコルを使用することができる。
【００５８】
ＴＣＣＢ１０００はトランスポート制御域ヘッダ（ＴＣＡＨ：transportcontrol area header）１００２を含み、これは、模範的な一実施形態では、トランスポート制御域（ＴＣＡ：transmit control area）１００４およびＴＣＡ１００４内の操作に関する情報（たとえば、長さ、サービス・コード）を含む。模範的な一実施形態では、ＴＣＡＨ１００２は、ＴＣＣＢのフォーマット（たとえば、可変長ＣＤＢフォーマット）、ＴＣＣＢに関連するモード（たとえば、トランスポート・モード）、ベンダ固有コード・ポイントとして使用するために取っておくサービス・アクション・コードなどの情報を指定するためのフォーマット制御フィールドと、このＴＣＣＢ１０００を実行するための優先順位を制御装置に提供するためのフィールドとを含む。
【００５９】
また、図１１に示されているＴＣＣＢ１０００は、可変長のＴＣＡ９０４も含む。可変長のＴＣＡ９０４は、１つまたは複数のＤＣＷ１００６を含み、その各々は、それに対応するＤＣＷ制御データ１００８を含むことができる。ＤＣＷ制御データ１００８は可変長のものにすることができる。模範的な一実施形態では、各ＤＣＷ１００６は、コマンド・コードと、フラグ（チェーニング）と、制御データ長と、読み取り／書き込みデータ長とを含む。ＤＣＷ制御データ１００８は、任意選択であり（ＤＣＷ１００６に依存）、それに対応するＤＣＷ１００６用の制御パラメータを含む。たとえば、ＤＣＷ制御データ１００８は、エクステント定義パラメータまたは接頭部パラメータあるいはその両方を含むことができる。模範的な一実施形態では、ＤＣＷ制御データ１００８は、ＴＣＡ１００４内でそれに対応するＤＣＷ１００６の後に続くものであって、ＤＣＷ１００６によって指し示されるものではない。
【００６０】
加えて、ＴＣＣＢ１０００は、ＴＣＣＢ１０００で転送されるバイトのカウントなどのデータと、ＴＣＣＢ１０００の完全性をチェックするためのチェック・ワード・フィールドとを保持する、ＴＣＡトレーラ（ＴＣＡＴ：TCA trailer）１０１０を含む。
【００６１】
図１２は、本発明の一側面に従った、ＴＣＷチャネル・プログラム１１００の一実施形態を示している。図１２に示されている通り、ＴＣＷチャネル・プログラム１１００は、ＴＣＷ１１０２を含む。ＴＣＷ１１０２は、ＴＣＣＢ１１０４のメモリ内の位置を指定するか、またはＴＣＣＢ１１０４用の位置を指すＴＩＤＡＬ１１１２（すなわち、トランスポート間接データ・アドレス・ワード（ＴＩＤＡＷ：transport indirect data address word）のリスト）のメモリ内の位置を指定する。加えて、図１２に示されているチャネル・プログラム１１００の例は、入力データ領域１１０６のメモリ内の位置を含むか、または入力データ領域１１０６を指すＴＩＤＡＬ１１１０のメモリ内の位置を含み、そして状況領域１１０８を含む。
【００６２】
図１３は、本発明の一側面に従った、制御ブロック（たとえば、ＴＣＣＢ）に関する間接データ・アドレス指定を提供するためのプロセスの一実施形態を示している。模範的な一実施形態では、図１３に示されている処理は、制御装置とのネットワーク通信状態にあるホスト・コンピュータ・システムで行われる。ホスト・コンピュータ・システムは、本プロセスを実行する入出力処理システムを含むことができる。さらに、入出力処理システムは、本プロセスを実行するチャネル・サブシステムを含むことができる。ブロック１２０２では、ホスト・コンピュータ・システムによってＴＣＷを入手する。模範的な一実施形態では、ホスト・コンピュータ・システム上で実行されるオペレーティング・システムからＴＣＷを入手（または受信）する。ＴＣＷは、ＴＣＣＢアドレス９２２と、フラグ・フィールド９０６内に位置するＴＣＣＢ ＴＩＤＡＬフラグとを含む。ブロック１２０４では、ＴＣＷからＴＣＣＢアドレス９２２およびＴＣＣＢ ＴＩＤＡＬフラグを抽出する。
【００６３】
ブロック１２０６では、ＴＣＣＢ ＴＩＤＡＬフラグが設定されているかどうかを決定する。ＴＣＣＢ ＴＩＤＡＬフラグが設定されている場合、ＴＣＣＢアドレス９２２は、間接データ・アドレスであり、処理はブロック１２１０で続行される。ブロック１２１０では、ＴＣＷによって指定された位置からＴＣＣＢを収集する。このアドレスは間接アドレスであるので、ＴＣＣＢアドレス９２２はＴＩＤＡＬのアドレスを含む。ＴＩＤＡＬは、ひとまとめにしてＴＣＣＢを構成する複数の記憶位置を指すアドレスのリストを含む。次に処理はブロック１２１２で続行される。
【００６４】
ブロック１２０６で決定された通り、ＴＣＣＢ ＴＩＤＡＬフラグが設定されていない場合、ＴＣＣＢアドレス９２２は、直接データ・アドレスであり、処理はブロック１２０８で続行される。ブロック１２０８では、ＴＣＷによって指定された位置からＴＣＣＢを収集する。このアドレスは直接アドレスであるので、ＴＣＣＢは、ＴＣＣＢアドレス９２２によって指定されたアドレスに位置する。次に処理はブロック１２１２で続行される。
【００６５】
ブロック１２１２では、実行のためにＴＣＣＢを含む入出力操作を制御装置に転送する。
【００６６】
模範的な諸実施形態の技術的効果としては、不連続記憶位置にＴＣＣＢを分散する能力を含む。その結果、容易にＴＣＣＢの内容に付け足すことができ、特定の記憶位置の競合が低減されるので、パフォーマンスの改善が可能である。また、技術的効果としては、制御装置への伝送のために複数のコマンドをまとめてグループ化する際の柔軟性を可能にする、可変長のＴＣＣＢを有する能力も含む。
【００６７】
前述の通り、諸実施形態は、コンピュータによって実行されるプロセスおよびこれらのプロセスを実施するための装置の形式で具体化することができる。模範的な諸実施形態では、本発明は、１つまたは複数のネットワーク・エレメントによって実行されるコンピュータ・プログラム・コードの形式で具体化される。図１４に示されるように、諸実施形態は、コンピュータ使用可能媒体１３０２上の、コンピュータ・プログラム１３００を含む。コンピュータ使用可能媒体１３０２は、内に具体化された命令を保持するコンピュータ・プログラム・コード・ロジック１３０４を有する。コンピュータ・プログラム・コード・ロジック１３０４がコンピュータにロードされ、コンピュータによって実行されると、そのコンピュータが本発明を実施するための装置になる。コンピュータ使用可能媒体１３０２は、フレキシブル・ディスク、ＣＤ−ＲＯＭ、ハード・ディスク、ユニバーサル・シリアル・バス（ＵＳＢ）フラッシュ・ドライブ、または任意のその他のコンピュータ可読記憶媒体を含むことができる。汎用マイクロプロセッサ上に実装されると、コンピュータ・プログラム・コード・ロジック１３０４のセグメントは、特定の論理回路を作成するようにマイクロプロセッサを構成する。
【００６８】
模範的な諸実施形態を参照して本発明を説明してきたが、当業者であれば、本発明の範囲を逸脱せずに、様々な変更が可能であり、その諸要素の代わりに同等のものを使用できることを理解できるであろう。加えて、本発明の本質的な範囲を逸脱せずに、特定の状況または物質を本発明の教示に適合させるために多くの変更を行うことができる。したがって、本発明は、本発明を実行するために企図された最良の形態として開示された特定の実施形態に限定されず、特許請求の範囲内に該当するすべての実施形態を含むことが意図されている。
【図１】
0005159901.tif 000002
【図２】
0005159901.tif 000003
【図３】
0005159901.tif 000004
【図４】
0005159901.tif 000005
【図５】
0005159901.tif 000006
【図６】
0005159901.tif 000007
【図７】
0005159901.tif 000008
【図８】
0005159901.tif 000009
【図９】
0005159901.tif 000010
【図１０】
0005159901.tif 000011
【図１１】
0005159901.tif 000012
【図１２】
0005159901.tif 000013
【図１３】
0005159901.tif 000014
【図１４】
0005159901.tif 000015