(57)【特許請求の範囲】
【請求項１】
データ処理システム内で制御を提供する方法において、前記データ処理システムが１つまたは複数の中央演算処理装置と、１つまたは複数の入出力装置と、前記１つまたは複数の中央演算処理装置および前記１つまたは複数の入出力装置に結合されたメモリとを含み、前記方法が、
前記データ処理システム内で１つまたは複数の入出力操作を実行するステップと、
定義済み中断時間限界を使用して、前記１つまたは複数の入出力操作とは無関係に実行される中断操作を実行することにより、前記１つまたは複数の入出力操作の実行を中断するステップであって、前記定義済み中断時間限界を満足するまで前記１つまたは複数の入出力操作の前記実行を中断するステップと、
前記１つまたは複数の入出力操作の前記実行を再開するステップと、
定義済み数のチャネル・コマンド・ワードを処理したときに、再開された前記１つまたは複数の入出力操作の前記実行を中断するステップとを含む
方法。
【請求項２】
データ処理システム内で制御を提供する方法において、前記方法が、
前記データ処理システムの中央演算処理装置によって制御される命令を使用して１つまたは複数の入出力操作の実行を開始するステップと、
前記命令および定義済み実行限界を使用して、前記１つまたは複数の入出力操作の実行を中断するステップであって、前記定義済み数のチャネル・コマンド・ワードを処理したときに前記１つまたは複数の入出力操作の実行を中断するステップとを含み、
前記中断するステップが、定義済み中断時間限界を満足するまで前記１つまたは複数の入出力操作の前記実行を中断することを含むことを特徴とする方法。
【請求項３】
データ処理システム内で制御を提供する方法において、前記方法が、
前記データ処理システムの中央演算処理装置によって制御される命令を使用して１つまたは複数の入出力操作の実行を開始するステップと、
１つまたは複数の実行限界を使用して、前記１つまたは複数の入出力操作の前記実行を中断すべき時期を判定するステップと、
前記１つまたは複数の実行限界により、前記実行を中断すべきと判定されたときに、前記命令を使用して前記１つまたは複数の入出力操作の前記実行を中断するステップと、
定義済み中断時間限界を満足したときに前記１つまたは複数の入出力操作の前記実行を自動的に再開するステップとを含み、
前記１つまたは複数の入出力操作のそれぞれが１つまたは複数のチャネル・コマンド・ワードを含み、前記１つまたは複数の実行限界が、処理されるチャネル・コマンド・ワードの定義済み数に基づく限界を含むことを特徴とする方法。
【請求項４】
データ処理システム内で制御を提供するシステムにおいて、前記データ処理システムが１つまたは複数の中央演算処理装置と、１つまたは複数の入出力装置と、前記１つまたは複数の中央演算処理装置および前記１つまたは複数の入出力装置に結合されたメモリとを含み、前記システムが、
前記データ処理システム内で１つまたは複数の入出力操作を実行する手段と、
定義済み中断時間限界を使用して、前記１つまたは複数の入出力操作とは無関係に実行される中断操作を実行することにより、前記１つまたは複数の入出力操作の実行を中断する手段であって、前記定義済み中断時間限界を満足するまで前記１つまたは複数の入出力操作の前記実行を中断する手段と、
前記１つまたは複数の入出力操作の前記実行を再開する手段と、
定義済み数のチャネル・コマンド・ワードを処理したときに、再開された前記１つまたは複数の入出力操作の前記実行を中断する手段とを含む
システム。
【請求項５】
データ処理システム内で制御を提供するシステムにおいて、前記システムが、
前記データ処理システムの中央演算処理装置によって制御される命令を使用して１つまたは複数の入出力操作の実行を開始する手段と、
前記命令および定義済み実行限界を使用して、前記１つまたは複数の入出力操作の実行を中断する手段であって、前記定義済み数のチャネル・コマンド・ワードを処理したときに前記１つまたは複数の入出力操作の実行を中断する手段とを含み、
前記中断する手段が、定義済み中断時間限界を満足するまで前記１つまたは複数の入出力操作の前記実行を中断する手段を含むことを特徴とするシステム。
【請求項６】
データ処理システム内で制御を提供するシステムにおいて、前記システムが、
前記データ処理システムの中央演算処理装置によって制御される命令を使用して１つまたは複数の入出力操作の実行を開始する手段と、
１つまたは複数の実行限界を使用して、前記１つまたは複数の入出力操作の前記実行を中断すべき時期を判定する手段と、
前記１つまたは複数の実行限界により、前記実行を中断すべきと判定されたときに、前記命令を使用して前記１つまたは複数の入出力操作の前記実行を中断する手段と、
定義済み中断時間限界を満足したときに前記１つまたは複数の入出力操作の前記実行を自動的に再開する手段とを含み、
前記１つまたは複数の入出力操作のそれぞれが１つまたは複数のチャネル・コマンド・ワードを含み、前記１つまたは複数の実行限界が、処理されるチャネル・コマンド・ワードの定義済み数に基づく限界を含むことを特徴とするシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般的にはデータ処理システム内で実行される入出力操作に関し、より具体的には、たとえば、入出力操作の実行を中断し、任意で後で実行を再開することにより、入出力操作の実行を制御することに関する。
【０００２】
【従来の技術】
ＩＢＭが提供するエンタープライズ・システム体系／３９０（ＥＳＡ／３９０）や同様のアーキテクチャにより定義されたものなどのデータ処理システムでは、１つまたは複数のチャネル・コマンド・ワードを復号して実行することにより、入出力操作が実行される。それぞれのチャネル・コマンド・ワードは、チャネル・サブシステムと入出力装置によって復号され実行される。順次実行用に配置された１つまたは複数のチャネル・コマンド・ワードは、１つのチャネル・プログラムを形成し、１つまたは複数の入出力操作としてそれぞれ実行される。チャネル・プログラムの実行は、中断および再開機能などによって制御される。
【０００３】
現在、チャネル・プログラムの中断は、操作要求ブロックと呼ばれる特定の制御ブロック内の中断制御ビットの設定によって開始される。この情報は、その後、チャネル・サブシステムが使用できるようになる。チャネル・プログラム内のチャネル・コマンド・ワードの１つに中断フラグを指定することにより、チャネル・プログラム実行中にチャネル・サブシステムに中断機能が通知される。有効な中断フラグが指定されたチャネル・コマンド・ワードをチャネル・サブシステムが取り出すと、中断が行われる。このチャネル・コマンド・ワード内のコマンドは入出力装置に送られず、入出力装置は、コマンドの連鎖が終結し、入出力操作が完了したという通知を受ける。
【０００４】
その後のRESUME SUBCHANNEL命令により、中断の原因となったチャネル・コマンド・ワードが変更された可能性があり、チャネル・サブシステムはそのチャネル・コマンド・ワードの取出しをやり直して、中断フラグの現行設定を検査しなければならないことがチャネル・サブシステムに通知される。中断フラグがチャネル・コマンド・ワードに指定されていないと分かった場合は、チャネル・サブシステムは入出力装置によるコマンド連鎖の実行を再開する。
【０００５】
上記のＥＳＡ／３９０中断機能は、同一チャネル・プログラムの制御下での入出力操作の完全（clean）中断に対応するものである。したがって、長時間実行されるチャネル・プログラムは、オペレーティング・システムや、特に、オペレーティング・システム内に位置する入出力監視プログラムによる制御能力が低くなる。このため、チャネル・プログラムの設計者は、システムの入出力資源を独占する危険性と長いチャネル・プログラムから得られる効率とのバランスを取らざるを得ない。また、上記の中断機能では、中断を行う時期を事前に決定しておく必要がある。すなわち、中断するチャネル・コマンド・ワードの中断ビットをオンにしなければならない。さらに、上記の中断および再開機構は、所与の事象が発生した場合のチャネル・プログラムの自動中断や、所与の時間経過後のチャネル・プログラムの自動再開に対応するものではない。しかも、上記の中断機構は、それ専用のチャネル・プログラムを実行するサブチャネル以外のサブチャネルから中断機能を発行することもできない。
【０００６】
小型コンピュータ・システム・インタフェース（ＳＣＳＩ）入出力アーキテクチャなど、エンタープライズ・システム体系／３９０以外のシステムでは、チャネル・プログラムの等価物に入出力操作をパッケージ化することができる。ある例では、コマンドは入出力サブシステムに渡される個々の入出力要求になる。別の例では、追加のポインタを使用することにより、１つのコマンドがＥＳＡ／３９０のデータ連鎖と同様に複数のデータ・アドレスについて機能する。この機能では１回の入出力操作で複数の個別のメモリ・バッファを使用できるので、これは分散／集束と呼ばれる。別の例では、ＥＳＡ／３９０アーキテクチャのコマンド連鎖と同様の連係ＳＣＳＩコマンドが提供される。さらに別の例では、入出力装置またはチャネル入出力サブシステムに関連するメールボックスに、入出力要求の待ち行列が蓄積される。
【０００７】
ＳＣＳＩアーキテクチャについては、Small Computer System Interface-2 (SCSI-2), IEEE X3T9 2/86 109, １９９１年１０月１７日に詳しく記載されているが、これは参照によりその全体が本明細書の一部となる。ＳＣＳＩアーキテクチャには、入出力操作を停止または中断するための機能がいくつかある。ある例には、入出力プロセス終了（ＴＩＰＳ）メッセージがある。起動側とターゲットとの間で転送が進行中の間に、起動側は「入出力プロセス終了」を要求するメッセージをターゲットに送ることができる。このメッセージを受け取ると、データ転送が停止し、終了時点の正しい状態を反映するようにすべてのバイト・カウントが調整されて、操作が正常に終了する。もう１つの機能としては、ターゲット転送不可（ＴＴＤ）メッセージがある。このＴＴＤメッセージは、入出力操作時のデータ転送のための後続再接続がターゲットではなく起動側によって行われることを要求するために、起動側からターゲットに送られる。すなわち、切断されているときに入出力装置と制御ユニットがチャネルへの再接続を要求し、独立した活動が完了し、装置／ターゲットがいつでもデータ転送できる状態になるという通常の処理とは対照的に、ＴＴＤにより、起動側はこのようなデータ転送を行う時期を選択することができる。別の例には、入出力プロセス続行（ＣＩＰ）メッセージが用意される。このＣＩＰメッセージは、入出力プロセスへの再接続の要求として、起動側からターゲットに送られる。
【０００８】
ＴＩＰ、ＴＴＤ、ＣＩＰの各メッセージは、入出力操作の正常だが即時の終了または所与の時点での再接続の防止を要求する手段を提供するが、これらのメッセージでは起動側は転送の最中に再開が可能な中断を要求することはできない。どのＳＣＳＩメッセージも、起動側が指定した期間中に切断（および中断）した後でターゲットが自動的に再接続できるような方法を提供しない。また、どのＳＣＳＩメッセージも、限界値、中断、再開に対する構造化プログラム制御を可能にするような、制御プログラムと起動側との間のインタフェースを提供しない。しかも、ＴＩＰとＴＴＤは即時メッセージである。これらは、現行転送を終了する（ＴＩＰ）か、または直後および後続の再接続を防止する（ＴＴＤ）ものである。したがって、ＴＩＰとＴＴＤは、データの転送を含む現行操作を続行し、所与の限界値に達したときに自動的に中断できるようにするための手段を提供するものではない。
【０００９】
【発明が解決しようとする課題】
上記に基づいて、定義済み限界値に達したときに入出力操作の実行を中断できる制御機構の必要性が依然として存在する。また、実行を再開するための機構も必要である。
【００１０】
【課題を解決するための手段】
データ処理システム内の制御を提供する様々な方法およびシステムを提供することにより、先行技術の欠点は克服され、追加の利点がもたらされる。このデータ処理システムは、１つまたは複数の中央演算処理装置と、１つまたは複数の入出力装置と、１つまたは複数の中央演算処理装置および１つまたは複数の入出力装置に結合されたメモリとを有する。
【００１１】
一実施例では、データ処理システム内の１つまたは複数の入出力操作を実行し、その１つまたは複数の入出力操作の実行を中断することにより、データ処理システム内で制御が得られる。１つまたは複数の入出力操作の実行は、その１つまたは複数の入出力操作とは無関係に実行される中断操作を実行することによって中断される。
【００１２】
ある例の中断操作は、中央演算処理装置の１つによって制御される中断命令である。別の例の中断操作は、１つまたは複数の入出力操作からなる第２のグループに位置するコマンドである。
【００１３】
一実施例では、複数の入出力操作が実行され、その複数の入出力操作の実行はそのうちの１つの入出力操作と別の入出力操作との間に中断される。他の例では、１つまたは複数の入出力操作の１つの実行が完了する前に、その入出力操作の実行が中断される。
【００１４】
本発明の他の実施例では、データ処理システムの中央演算処理装置によって制御される命令を使用して１つまたは複数の入出力操作の実行を開始することにより、データ処理システム内の制御が提供される。１つまたは複数の入出力操作の実行は、その実行を開始した命令を使用して中断される。
【００１５】
他の実施例では、データ処理システム内で１つまたは複数の入出力操作を実行することにより、データ処理システム内の制御が提供される。１つまたは複数の入出力操作の実行は、入出力操作の１つに位置する中断コマンドを処理することによって中断される。１つまたは複数の入出力操作の実行は、定義済み中断限界を満足するまで中断される。
【００１６】
他の実施例では、定義済み中断限界を満足すると、１つまたは複数の入出力操作の実行が自動的に再開される。
【００１７】
本発明の他の態様では、中央演算処理装置によって制御される命令を使用して１つまたは複数の入出力操作の実行を開始し、１つまたは複数の実行限界を使用して実行を中断すべき時期を判定し、実行を中断すべき時にその命令を使用して実行を中断し、定義済み中断限界を満足したときに自動的に実行を再開することにより、制御が提供される。
【００１８】
他の実施例では、中断された１つまたは複数の入出力操作の実行を再開することにより、制御が提供される。再開時には、１つまたは複数の定義済み実行限界が参照される。これらの限界の１つまたは複数を満足すると、１つまたは複数の入出力操作の実行が中断される。
【００１９】
本発明の他の実施例および態様についても、本明細書に詳細に説明するが、本発明の特許請求の範囲の一部と見なす。
【００２０】
【発明の実施の形態】
本発明の原理により、データ処理システム内で実行される入出力操作の実行を制御するための機構を提供する。具体的には、１つまたは複数の入出力操作の実行を中断し再開するための機構を提供する。ある例では、入出力操作が１つのチャネル・プログラムに含まれており、したがって、そのチャネル・プログラムの実行を中断し再開するための機構を提供する。本明細書では、ＥＳＡ／３９０と、チャネル・プログラムの説明を中心にして説明する。しかし、本発明の機構は、中断または再開あるいはその両方が可能な、すべての入出力操作に関連するものである。入出力操作は、チャネル・プログラムに含まれている必要はない。たとえば、本発明の機構は、ＳＣＳＩ入出力アーキテクチャならびに他のアーキテクチャに適用される。したがって、これらのアーキテクチャは、特許請求の範囲に定義した本発明の範囲内と見なされる。
【００２１】
本発明の制御機構を取り入れたデータ処理システムの一実施例を図１に示す。データ処理システム１０は、ＩＢＭが提供するエンタープライズ・システム体系／３９０（ＥＳＡ／３９０）などにより定義されている。ＥＳＡ／３９０の一実施例については、Enterprise Systems Architecture/390 Principles of Operation（資料番号SA22-7201-01、ＩＢＭ、１９９３年４月）に詳しく記載されているが、同書は参照によりその全体が本明細書の一部となる。ある例のデータ処理システム１０は、たとえば、メモリ１２と、１つまたは複数の中央演算処理装置１４と、チャネル・サブシステム１６と、１つまたは複数の入出力装置１８と、制御ユニット２７とを含む。これらの構成要素のそれぞれについては、以下に詳しく説明する。
【００２２】
メモリ１２は、１つまたは複数の入力装置によってメモリにロードされるプログラムとデータの倉庫である。メモリ１２は、直接アドレス可能であり、中央演算処理装置（ＣＰＵ）１４とチャネル・サブシステム１６によるデータの高速処理に対応する。一実施例のメモリ１２は、１つまたは複数のＣＰＵプログラム２０と、１つまたは複数のチャネル・プログラム２２とを含む。
【００２３】
プログラム２０は、中央演算処理装置によって実行され、ＣＰＵ命令から構成される。ＣＰＵ命令の一部は、所与の入出力活動を実行させるものであり、したがって、入出力命令と呼ばれる。入出力命令の例としては、START SUBCHANNEL、RESUME SUBCHANNEL、および本発明の原理によるSUSPEND SUBCHANNELなどがある。
【００２４】
チャネル・プログラム２２は、１つまたは複数のチャネル・コマンド・ワード（ＣＣＷ）から構成され、チャネル・サブシステム１６によって実行される。実行中のチャネル・プログラムは、所与の入出力装置１８上の少なくとも１つの入出力操作に関連する場合が多い。チャネル・コマンドの例としては、たとえば、読取り、書込み、チャネル内転送、サブチャネル再開、中断などがある。サブチャネル再開ＣＣＷとサブチャネル中断ＣＣＷの一実施例は、１９９３年１１月８日に出願され、本出願人に譲渡された"System and Method for Coupling Channel Programs Without Host Processor Involvement"という名称の関連米国特許出願第０８／１４８７９５号に詳しく記載されているが、同特許出願は参照によりその全体が本明細書の一部となる。
【００２５】
メモリ１２には、中央演算処理装置１４が結合されている。お分かりのように、中央演算処理装置１４は、命令実行、割込みアクション、タイミング機能、初期プログラム・ローディング、その他のマシン関連機能のための順序付けと処理の諸機構を含んでいる。特にある例では、それぞれの中央演算処理装置が、入出力命令の実行を制御するための入出力監視プログラムを含んでいる。
【００２６】
メモリ１２には、チャネル・サブシステム１６（または、他の実施例では入出力システム）も結合されている。チャネル・サブシステムは、入出力装置１８とメモリ１２との間の情報の流れを管理するものである。チャネル・サブシステムは、入出力装置と直接通信するというタスクからＣＰＵを解放し、入出力処理と同時にデータ処理を続行できるようにする。チャネル・サブシステムでは、１つまたは複数のサブチャネル２４と１つまたは複数のチャネル２５が内部に位置するか、チャネル・サブシステムに結合される。サブチャネルは、入出力装置を管理し、特に、入出力装置の状態およびプログラムを管理するためにチャネル・サブシステムが使用する制御ブロックである。入出力操作中に、チャネル・サブシステムからアクセス可能な各入出力装置ごとに１つのサブチャネルが用意され、その入出力装置専用になる。各サブチャネルは、関連の入出力装置とそれからチャネル・サブシステムへの接続機構に関する情報の記憶域を含む。また、サブチャネルは、関連の入出力装置に関わる入出力操作とその他の機能に関する情報の記憶域も提供する。サブチャネルに収容された情報は、入出力命令を使用してＣＰＵからアクセスできると同時にチャネル・サブシステムからもアクセスすることができ、関連の入出力装置に関するＣＰＵとチャネル・サブシステムとの間の通信の手段として機能する。
【００２７】
本発明の原理による特定の例では、サブチャネル２４は、本発明に使用する複数のカウンタ２６と、複数の限界２８と、状況フィールド２９（図２）とを含む。後述のように、限界２８は、以下のａ〜ｄを含みそれに限定されない複数の実行限界と、中断限界ｅとを含む。
（ａ）チャネル・プログラム（または入出力操作（複数も可））を中断する前にチャネル・プログラム（または１つまたは複数の入出力操作）を実行する長さを示す時間限界。
（ｂ）チャネル・プログラムの実行を中断する前に実行すべきチャネル・コマンド・ワードの数を示すＣＣＷ限界。
（ｃ）チャネル・プログラム（または入出力操作（複数も可））の実行を中断する前にメモリと入出力装置との間で転送すべきバイトの数を示すバイト限界。
（ｄ）チャネル・プログラム（または入出力操作（複数も可））の実行を中断する前にメモリと入出力装置との間で転送すべき物理データ・ブロックの数を示すブロック限界。
（ｅ）チャネル・プログラム（または入出力操作（複数も可））を中断する長さを示す中断時間限界。それぞれの限界については、以下に詳述する。
【００２８】
それぞれの限界ごとにカウンタ２６が１つずつ存在するが、これは、チャネル・プログラムまたは入出力操作（複数も可）の実行中にチャネル・サブシステムによって更新される。特定の限界を満足したことをそのカウンタが示すと、中断または再開などの適切なアクションが行われる。
【００２９】
さらに、本発明の原理によれば、状況フィールド２９は、サブチャネルが中断されたかどうかを示す制御ビットを含む。このビットがオンの場合は、サブチャネルが中断されている。このビットは、START SUBCHANNEL命令でリセットする（オフにする）か、MODIFY SUBCHANNEL命令の結果としてリセットすることができる。また、状況フィールド２９は、入出力操作の途中でサブチャネルが中断されたかどうかを示す別の制御ビットを含む。このビットがオンの場合は、入出力操作の途中で中断が行われている。このビットは、START SUBCHANNELまたはMODIFY SUBCHANNEL命令によってリセットすることができる。
【００３０】
もう一度図１を参照すると、サブチャネル２４には、１つまたは複数のチャネル２５が結合されている。それぞれのチャネルは、それに関連する複数のサブチャネルを有することができる。このチャネルは、制御ユニット２７を介して入出力装置への物理接続を提供する。
【００３１】
制御ユニット２７は、チャネル・サブシステム１６と入出力装置１８に結合され、１つまたは複数の入出力装置を操作し制御するのに必要な論理機能を提供し、共通機構の使用により、チャネルが提供するリンク・インタフェースに対して各入出力装置の特性を適合させる。
【００３２】
一実施例の入出力装置１８としては、プリンタ、磁気テープ装置、直接アクセス記憶装置（ＤＡＳＤ）、表示装置、キーボード、通信制御装置、テレプロセシング装置、センサベースの機器などが挙げられる。
【００３３】
入出力操作は入出力装置に関連する。ある例では、ＣＰＵ命令とチャネル・コマンド・ワードによって入出力操作が開始され制御される。このようなＣＰＵ命令の１つがSTART SUBCHANNEL命令である。START SUBCHENNEL命令が実行されると、その命令がターゲットとするサブチャネルにパラメータが渡され、そのサブチャネルに関連する入出力装置についてチャネル・サブシステムが開始機能を実行するよう要求される。チャネル・サブシステムは、START SUBCHANNEL命令の実行中に渡される情報など、サブチャネルにある情報を使用して装置へのアクセス可能なチャネル経路を見つけることにより、開始機能を実行する。装置が選択されると、チャネル・サブシステムと入出力装置による１つまたは複数のチャネル・コマンド・ワード（ＣＣＷ）の復号化と実行によって、入出力操作の実行が達成される。順次実行用に配置された１つまたは複数のＣＣＷは、１つのチャネル・プログラムを形成し、１つまたは複数の入出力操作としてそれぞれ実行される。
【００３４】
前述のように、チャネル・プログラムはSTART SUBCHANNEL命令によって開始され、チャネル・サブシステムの制御下で実行される。しかし、ある時点では、チャネル・プログラムの実行を中断する方が有利である。一例としては、チャネル・プログラムの実行を歩調合せするか減速する場合には、チャネル・プログラムの実行を中断する方が有利である。この場合、本発明の原理により説明したように、その実行は定義済み所与の時間の間停止され、その後、もう一度開始される。別の例としては、システム問題が発生したときはチャネル・プログラムの実行を中断すると有利である。本発明の原理により、様々な中断機構について、以下に詳述する。
【００３５】
一実施例では、本発明の原理により、START SUBCHANNEL命令を使用してチャネル・プログラムの実行を中断する。特に、チャネル・プログラムの実行中は、START SUBCHANNEL命令が複数の実行限界を参照して、中断を行う時期を判定する。実行限界を満足すると、ある例ではＣＣＷコマンド境界で、別の例ではＣＣＷコマンド境界に達する前に、チャネル・プログラムが中断される。
【００３６】
チャネル・プログラムの中断時に使用するSTART SUBCHANNEL命令の一例については、図３を参照して以下に説明する。ある例のSTART SUBCHANNEL命令３０は、実行すべき操作がサブチャネル開始であることを指定する操作コード（ＯＰＣＯＤＥ）３２と、操作要求ブロック（ＯＲＢ）の論理アドレスを識別する第２オペランド・アドレス（Ｄ2（Ｂ2））３４とを有する。以下に詳述するように、操作要求ブロックは、本発明の原理により定義された実行限界など、チャネル・プログラムの実行に使用する実行パラメータを収容している。上記に加え、START SUBCHANNEL命令は、暗黙オペランドとして汎用レジスタ１の内容を使用する。この例では、汎用レジスタ１はサブシステム識別ワード（ＳＩＤ）を収容し、このワードは開始すべきサブチャネルのサブチャネル番号を含んでいる。
【００３７】
START SUBCHANNEL命令を開始すると、関連づけられた装置に対する開始機能を非同期で実行するよう、チャネル・サブシステム１６に通知され、操作要求ブロック内に位置する実行パラメータが汎用レジスタ１によって指定されたサブチャネルに置かれる。さらに、チャネル・プログラムの実行が開始される。チャネル・プログラムの実行中は、カウンタ２６（図２）が更新され、１つまたは複数のカウンタが１つまたは複数の限界２８に達すると、チャネル・プログラムの実行が中断される。
【００３８】
本発明の原理により使用する実行限界の一例について、図４を参照して以下に説明する。図４に示すように、本発明の一実施例によれば、本発明の実行限界など、複数の実行パラメータが操作要求ブロック（ＯＲＢ）３８内に位置している。このパラメータの一部については、Enterprise Systems Architecture/390 Principles of Operation（資料番号SA22-7201-01、ＩＢＭ、１９９３年４月）に詳しく記載されており、同書は参照によりその全体が本明細書の一部となるが、完全を期すために以下にリストで示す。即時中断制御や実行限界などのその他のパラメータは、本発明の一部であり、以下に詳述する。
【００３９】
一例として、操作要求ブロック３８は、たとえば、以下のパラメータを含む。（ａ）割込みパラメータ（４０）：ワード０のビット０〜３１は、後続のSTART SUBCHANNELまたはMODIFY SUBCHANNEL命令によって置き換えられるまで、サブチャネル内に未変更状態で保持される。
（ｂ）サブチャネル・キー（４２）：ワード１のビット０〜３は、チャネル・コマンド・ワード、間接データ・アドレス・ワード、出力データをすべて取り出し、START SUBCHANNELによって開始される開始機能に関連する入力データを格納するためのサブチャネル・キーを形成する。
（ｃ）中断制御（Ｓ）（４４）：現行操作では、ワード１のビット４がＯＲＢで識別されたチャネル・プログラム用の中断機能の実行を制御する。Ｓビットの設定は、ＯＲＢによって指定されたチャネル・プログラムのすべてのチャネル・コマンド・ワードに適用される。ビット４が１の場合は、中断制御が指定され、チャネル・コマンド・ワード内に有効な中断フラグが検出されると、チャネル・プログラム中断が行われる。ビット４が０の場合は、中断制御が指定されず、チャネル・プログラムのいずれかのチャネル・コマンド・ワードに中断フラグが存在すると、プログラム・チェック条件が認識される。
中断制御４４は、本発明とは異なる中断機構を提供する。中断制御４４は、本発明の中断機構とともに使用することができる。以下に説明するように、本発明の中断機構は、１つまたは複数の実行限界を満足したときにＣＰＵ命令またはＣＣＷを使用してチャネル・プログラムの実行を中断する。
（ｄ）即時中断制御（Ｃ）（４５）：本発明の原理によれば、即時中断制御４５であるワード１のビット５は、要求した中断を直ちに実行するか、現行入出力操作の終わりまで据え置くかを決定する。このビットがオフ（たとえば、０に設定される）の場合は、チャネル・プログラム（または入出力操作（複数も可））について要求した中断が入出力操作の終わりまで据え置かれる。すなわち、データ連鎖が存在しない場合はＣＣＷ境界になり、データ連鎖が存在する場合はＣＣＷからなる現行データ連鎖シーケンスの終わりになる。このビットがオン（たとえば、１に設定される）の場合は、現行入出力操作の途中で中断を行うことができる。
（ｅ）フォーマット制御（Ｆ）（４６）：ワード１のビット８は、チャネル・プログラム・アドレス・フィールドによって指定されたチャネル・プログラムを構成するチャネル・コマンド・ワードのフォーマットを指定する。ワード１のビット８が０の場合は、フォーマット０のチャネル・コマンド・ワードが指定される。ビット８が１の場合は、フォーマット１のチャネル・コマンド・ワードが指定される。フォーマット０とフォーマット１の各チャネル・コマンド・ワードについては、図８および図９を参照して以下に詳述する。
（ｆ）事前取出し制御（Ｐ）（４８）：ワード１のビット９は、チャネル・プログラムについてチャネル・コマンド・ワードの無制限事前取出しが可能かどうかを指定する。このビットが０の場合は、事前取出しは不可能であるが、データ域を記述する１つのチャネル・コマンド・ワードの事前取出しが可能な出力時のデータ連鎖の場合は例外である。このビットが１の場合は、無制限事前取出しが可能になる。
（ｇ）初期状況割込み制御（Ｉ）（５０）：ワード１のビット１０は、装置が開始または再開機能に関連する第１のコマンドを受け入れたことをチャネル・サブシステムがチャネル・プログラムに対して検証する必要があるかどうかを指定する。
（ｈ）アドレス限界検査制御（Ａ）（５２）：ワード１のビット１１は、チャネル・プログラムについてアドレス限界検査を指定するかどうかを指定する。このビットが０の場合は、チャネル・プログラムの実行のためにアドレス限界検査が行われることはない。このビットが１の場合は、チャネル・プログラムについてアドレス検査が可能になる。
（ｉ）中断割込み抑制制御（Ｕ）（５４）：ワード１のビット１２が１の場合は、サブチャネルが中断状態になった場合にチャネル・サブシステムが中断による中間割込み条件の生成を抑制することを指定する。ビット１２が０の場合は、チャネル・プログラムの実行中にサブチャネルが中断状態になると、必ずチャネル・サブシステムが中間割込み条件を生成する。
（ｊ）論理経路マスク（ＬＰＭ）（５６）：ワード１のビット１６〜２３は、サブチャネル内に未変更状態で保持され、論理経路０〜７のうちのいずれをプログラムから見えるように論理的に使用可能であると見なすかをチャネル・サブシステムに指定する。ビット設定が１の場合は、対応するチャネル経路が論理的に使用可能であることを意味し、０の場合は、対応するチャネル経路が論理的に使用可能ではないことを指定する。あるチャネル経路が論理的に使用可能ではないものとしてプログラムによって指定されている場合、チャネル・サブシステムは、プログラムが要求したときにクリア、停止、再開、開始の各機能を実行するためにこのチャネル経路を使用しない。ただし、そのチャネル経路について専用忠誠条件が存在する場合は例外である。専用忠誠条件が存在する場合は、論理経路マスクの設定が無視され、専用忠誠を有するチャネル経路を使用することにより、再開、開始、停止、またはクリアの各機能が実行される。
（ｋ）誤長抑制モード（Ｌ）（５８）：誤長表示抑制機構が導入され、フォーマット制御４６が１である場合、このビットが１であると、誤長抑制モードが指定される。即時操作（すなわち、コマンドの開始中に装置がチャネル終了条件を通知する）が行われ、現行ＣＣＷがビット１６〜３１に非ゼロ値を収容しているときにサブチャネルがこのモードになると、誤長条件の表示が抑制される。
誤長表示抑制機構が導入され、フォーマット制御が１である場合、このビットが０であると、誤長表示モードが指定される。即時操作が行われ、現行ＣＣＷがビット１６〜３１に非ゼロ値を収容しているときにサブチャネルがこのモードになると、誤長条件の表示が認識される。ＣＣＷのＳＬＩフラグが１でデータ連鎖フラグが０でなければ、コマンド連鎖が抑制される。
誤長表示抑制機構が導入され、フォーマット制御が０である場合、このビットの値はチャネル・サブシステムによって無視され、サブチャネルは誤長抑制モードになる。
誤長表示抑制機構が導入されておらず、フォーマット制御４６が０である場合、サブチャネルは誤長抑制モードになる。誤長表示抑制機構が導入されていないときは、このビットは０でなければならず、それ以外の場合はオペランド例外が認識される。
（ｌ）チャネル・プログラム・アドレス（６０）：ワード２のビット０〜３１は、絶対記憶域内の第１のチャネル・コマンド・ワードの位置を指定する。ワード２のビット０は０でなければならず、それ以外の場合はオペランド例外またはプログラム・チェック条件が認識される。フォーマット０のＣＣＷがフォーマット制御によって指定されている場合は、ビット１〜７も０でなければならず、それ以外の場合はプログラム・チェック条件が認識される。
チャネル・プログラム・アドレスの右端の３ビットは、ダブル・ワード境界上のチャネル・コマンド・ワードを指定する０でなければならず、それ以外の場合はプログラム・チェック条件が認識される。
（ｍ）実行限界−時間（６２）：本発明の原理によれば、ワード３のビット０〜３１またはその一部は、実行時間限界の量を示す。すなわち、このパラメータによって指定された時間の間、チャネル・プログラムが実行されると、チャネル・プログラムは中断される。ある例の時間パラメータは秒単位を意味する。他の例では、ミリ秒またはその他の時間単位を使用することもできる。
（ｎ）実行限界−ＣＣＷの数（６４）：本発明の原理によれば、ワード４のビット０〜３１またはその一部は、チャネル・プログラムの実行を中断する前に実行すべきチャネル・コマンド・ワードの数を示す。
（ｏ）実行限界−バイトの数（６６）：本発明の原理によれば、ワード５のビット０〜３１またはその一部は、チャネル・プログラムの実行を中断する前にメモリと入出力装置との間で転送すべきバイトの数を示す。
（ｐ）実行限界−物理ブロックの数（６８）：本発明の原理によれば、ワード６のビット０〜３１またはその一部は、チャネル・プログラムの実行を中断する前にメモリと入出力装置との間で転送すべき物理データ・ブロックの数を示す。
【００４０】
ＯＲＢに格納され、START SUBCHANNEL命令によって事前に開始されたチャネル・プログラムの実行を中断するためにSTART SUBCHANNEL命令によって参照される、複数の実行限界は、前述の通りである。当業者であれば、本発明の精神を逸脱せずに他の限界またはパラメータを指定できることが分かるであろう。したがって、上記のパラメータまたは限界は、本発明の一部と見なされる。また、ＯＲＢ以外の制御ブロックでも限界を含む実行パラメータを指定できることも、当業者には明らかであろう。
【００４１】
一実施例のチャネル・プログラムは、ＣＣＷコマンド境界で停止するが、限界を超えた後または中断要求を受け取った後の最初のＣＣＷコマンド境界である可能性が最も高い。実際の中断が行われる位置に関する実施態様による随時判断は様々になる可能性がある。たとえば、データ連鎖中など、コマンド境界に達する前にチャネル・プログラムを中断することもできる。即時制御ビット４５は、前述のように、中断が行われる時期をチャネルに示すものである。
【００４２】
前述のSTART SUBCHANNEL命令に加え、データ処理システム内で実行されるチャネル・プログラムまたは入出力操作の実行を中断するための他の機構も本発明の原理により提供される。一例としては、中断操作、すなわち、SUSPEND SUBCHANNEL命令と呼ばれる新しい中央演算処理装置命令が提供される。このSUSPEND SUBCHANNEL命令は、アプリケーションがシステム資源を独占していると入出力監視プログラムが判定した場合またはシステムに問題が発生しているかどうかを判定する場合などに、入出力監視プログラムが出すことができる。SUSPEND SUBCHANNEL命令の一例を図５に示す。
【００４３】
一実施例のSUSPEND SUBCHANNEL命令７０は、チャネル・プログラムの中断の実行を指定する操作コード（ＯＰＣＯＤＥ）７２を含む。さらに、SUSPEND SUBCHANNEL命令では汎用レジスタ１を使用し、これが中断すべきサブチャネルを識別するサブシステム識別ワードを指定する。
【００４４】
他の実施例のSUSPEND SUBCHANNEL命令は、図６に示すフォーマットを備えることができる。このフォーマットにより、SUSPEND SUBCHANNEL命令は、操作要求ブロック、より具体的には、本発明の原理により操作要求ブロック内に設けられた任意の実行パラメータを参照することができる。図６に示すように、一実施例のSUSPEND SUBCHANNEL命令７４は、操作コード（ＯＰＣＯＤＥ）７６と、操作要求ブロックの論理アドレスを指定する第２オペランド・アドレス（Ｄ2（Ｂ2））７８とを含む。さらに、SUSPEND SUBCHANNEL命令７４は、汎用レジスタ１を使用して中断すべきサブチャネルを識別する。
【００４５】
SUSPEND SUBCHANNEL命令７４によって参照される操作要求ブロック８０の一実施例を図７に示す。この例のワード０〜２には、図４を参照して前述したのと同じ情報が収容されているので、ここでは詳しく説明しない。（同様の番号は同様のパラメータを示している。）さらに、ＯＲＢのワード３〜６は未使用であり、ワード７のビット０〜３１またはその一部には中断時間限界８５が格納されている。この中断時間限界は、中断時間限界によって指定された時間の間、チャネル・プログラムを中断することを意味する。その後、これはチャネル・サブシステムによって自動的に覚醒される。他の実施例では、実行限界または他の中断限界などの他の限界も指定することができる。それぞれの追加限界は、前述のように操作要求ブロックの１つまたは複数のワードに置かれるはずである。
【００４６】
前述のように、中断を行うべきであると中央演算処理装置、特に、入出力監視プログラムが判定した場合は、いつでもSUSPEND SUBCHANNEL命令を出すことができる。SUSPEND SUBCHANNEL命令は、中断すべきチャネル・プログラムまたは入出力操作とは無関係である。本明細書で使用する、チャネル・プログラムまたは入出力操作とは無関係であるという表現は、このチャネル・プログラムまたは入出力操作は後続の中断を認識したり、後続の中断のためにコーディングされている必要がなく、その命令はチャネル・プログラムまたは入出力操作がメモリ内のどこに位置するかを把握している必要がなく、チャネル・プログラムまたは入出力操作によって占有されるメモリは中断を実行するために変更する必要がなく、しかも、すでに存在する他の中断機構の機能性が完全に存在することを意味する。
【００４７】
チャネル・プログラムまたは入出力操作（複数も可）の実行を中断するための前述の中央演算処理装置命令に加え、あるサブチャネル上で実行されるチャネル・コマンド・ワードなどの他の中断操作も、本発明の原理により他のサブチャネル上で実行されるチャネル・プログラムの実行の中断に使用することができる。チャネル・コマンド・ワードは、中央演算処理装置からの介入なしで（すなわち、中央演算処理装置とは無関係に）チャネル・プログラムの実行を中断する。このようなチャネル・コマンド・ワードは、前述のように中断すべきチャネル・プログラムまたは入出力操作とも無関係である。
【００４８】
現行チャネル・プログラムを実行するサブチャネルの中断に使用するサブチャネル中断・チャネル・コマンド・ワードの例については、１９９３年１１月８日に出願され、本出願人に譲渡された"System and Method for Coupling Channel Programs Without Host Processor Involvement"という名称の関連米国特許出願第０８／１４８７９５号に詳しく記載されているが、同特許出願は前述のように参照によりその全体が本明細書の一部となる。しかし、同出願に記載されているチャネル・コマンド・ワードは、それ自身のチャネル・プログラムの実行だけを中断することができ、他のサブチャネル上の他のチャネル・プログラムの実行を中断することはできない。しかし、本発明の原理による、本明細書に記載するチャネル・コマンド・ワードは、他のサブチャネル上で実行されるチャネル・プログラムを中断することができる。（これは、「他のＣＣＷの中断」と呼ばれる。）具体的には、あるサブチャネル上で実行されるチャネル・コマンド・ワードが他のサブチャネル上で実行されるチャネル・プログラムの実行を中断することができるのである。
【００４９】
お分かりのように、チャネル・コマンド・ワードは、たとえば、フォーマット０とフォーマット１という２つのフォーマットを備えることができる。したがって、本発明の中断機構に関する両フォーマットについて、それぞれ図８および図９を参照して以下に説明する。それぞれのフォーマットは同じフィールドを含んでいるが、それぞれのフィールドの位置はフォーマットによって異なっている。以下に記載するフィールドの多くは、Enterprise Systems Architecture/390 Principles of Operation（資料番号SA22-7201-01、ＩＢＭ、１９９３年４月）に詳しく記載されており、同書は参照によりその全体が本明細書の一部となるが、完全を期すためにここに記載する。本発明に関連するフィールドの違いについても以下に述べる。
【００５０】
ある例の各チャネル・コマンド・ワード８６は、以下のフィールドを含む。
（ａ）コマンド・コード（ＣＭＤコード）８８：ビット０〜７（両方のフォーマット）は、実行すべき操作を指定する。この例では、実行すべき操作はサブチャネル中断操作である。
（ｂ）データ・アドレス９０：ビット８〜３１（フォーマット０）またはビット３３〜６３（フォーマット１）は、絶対記憶域内の位置を指定する。これは、ＣＣＷによって指定された領域内で最初に参照される位置である。０というバイト・カウントが指定されている場合は、このフィールドは検査されない。
本発明の原理によれば、一実施例のデータ・アドレス・フィールドは、サブチャネルを中断する際に使用する実行限界または中断限界あるいはその両方を収容する制御ブロックを指している。
（ｃ）フラグ９２：ビット３２〜３８（フォーマット０）またはビット８〜１４（フォーマット１）は、チャネル・コマンド・ワードの操作時に使用するいくつかのフラグを指定する。これらのフラグのそれぞれについて、以下に説明する。
（１）データ連鎖（ＣＤ）フラグ：ビット３２（フォーマット０）またはビット８（フォーマット１）が１の場合は、データの連鎖を指定する。これにより、次のＣＣＷによって指定された記憶域が現行入出力操作に使用される。ＣＣＷ内のＣＤフラグが１の場合は、以下に記載するコマンド連鎖フラグと誤長表示抑制フラグが無視される。
（２）コマンド連鎖（ＣＣ）フラグ：ビット３３（フォーマット０）またはビット９（フォーマット１）が１であって、ＣＤフラグとＳフラグがともに０の場合は、コマンドの連鎖を指定する。これにより、現行操作が正常に完了したときに、次のＣＣＷ内のコマンド・コードによって指定された操作が開始される。
（３）誤長表示抑制（ＳＬＩ）フラグ：ビット３４（フォーマット０）またはビット１０（フォーマット１）は、誤長条件をプログラムに対して表示するかどうかを制御する。このビットが１でＣＤフラグが０の場合は、誤長表示が抑制される。ＣＣフラグとＳＬＩフラグの両方が１であって、ＣＤフラグが０の場合は、誤長条件が存在していてもコマンド連鎖が行われる。誤長表示の抑制が必要な場合は、すべてのＣＣＷにこのビットを指定する必要がある。
（４）スキップ（ＳＫＩＰ）フラグ：ビット３５（フォーマット０）またはビット１１（フォーマット１）が１の場合は、読取り、逆方向読取り、センスＩＤ、またはセンス操作などのいくつかの入出力命令中の記憶域への情報転送の抑制を指定する。このような入出力操作はいずれも当技術分野では既知のものである。
（５）プログラム制御割込み（ＰＣＩ）フラグ：ビット３６（フォーマット０）またはビット１２（フォーマット１）が１の場合は、ＣＣＷが入出力操作を制御するときにチャネル・サブシステムが中間割込み条件を生成する。ＰＣＩフラグ・ビットが０の場合は、通常操作が行われる。
（６）間接データ・アドレス（ＩＤＡ）フラグ：ビット３７（フォーマット０）またはビット１３（フォーマット１）が１の場合は、間接データ・アドレス指定を指定する。
（７）中断（Ｓ）フラグ：ビット３８（フォーマット０）またはビット１４（フォーマット１）が１の場合は、チャネル・プログラム実行の中断を指定する。これが有効である場合は、Ｓフラグを収容するＣＣＷの実行前にチャネル・プログラムの実行が中断される。関連ＯＲＢのワード１、ビット４が１であると、Ｓフラグは有効である。
このビットは、前述のように、現行中断機構で使用する。本発明の原理では、別のサブチャネルの中断を実施する場合にはこれは必須ではない。
（ｄ）カウント９４：ビット４８〜６３（フォーマット０）またはビット１６〜３１（フォーマット１）は、ＣＣＷによって指定された記憶域内のバイトの数を指定する。
【００５１】
前述のように、ある例ではデータ・アドレス９０を使用して制御ブロックを参照するが、このブロックは他のＣＣＷの中断によって中断すべきサブチャネルを示す。さらに、制御ブロックは、ターゲットのサブチャネルの実行を中断する際に使用する所望限界を示すこともできる。このような制御ブロックの一例は、図１０に示す操作要求ブロック９５である。
【００５２】
図１０を参照すると、操作要求ブロック９５は、たとえば、ＯＲＢ９５のワード０に位置するターゲット・サブチャネル番号９６を収容している。このターゲット・サブチャネル番号は、中断すべきサブチャネルを示す。さらに、操作要求ブロック９５のワード１および２は、図７に示すＯＲＢ８０のワード１および２を参照して説明したものと同じパラメータを含む。この実施例では、ワード３〜６は未使用であり、ワード７は中断時間限界８５を含み、既定の時間の間、中断が行われることを示す。前述のように他の限界を使用し、ＯＲＢに置くことができることは、当業者には明らかであろう。
【００５３】
上記のチャネル・コマンド・ワードは、中断を実行しているチャネル・コマンド・ワードを実行していないサブチャネルの実行を中断するためのものである。チャネル・プログラムの中断に使用するチャネル・コマンド・ワードの他の実施例については、以下に説明する。
【００５４】
本発明の原理によれば、別の実施例では、限界付きのサブチャネル中断チャネル・コマンド・ワードを使用して、その現在実行中のチャネル・プログラムを定義済み時間の間、中断する。具体的には、現在実行中のチャネル・プログラムに１つまたは複数のサブチャネル中断チャネル・コマンド・ワードを埋め込み、それぞれの中断ＣＣＷに達したときに、チャネル・プログラムの実行を規定の時間の間、中断する。その後、このチャネル・プログラムはチャネル・サブシステムによって自動的に再開される。（自動覚醒前に他の当事者によって再開が出された場合には、差し迫った覚醒は取り消される。）これは、チャネル・プログラムが事象ではなくタイミングを使用してそれ自体を減速するか、他のチャネル・プログラムとの調整を図る必要がある場合には有利である。
【００５５】
一実施例では、中断ＣＣＷが使用する限界は、前述の操作要求ブロック９５（図１０）などの制御ブロックに格納される。操作要求ブロックの使用は必須ではない。しかし、一実施例ではＯＲＢを使用して実施例間の整合性を維持している。操作要求ブロック９５は、前述されているので、ここでは説明しない。
【００５６】
一実施例の操作要求ブロック９５は、チャネル・コマンド・ワードのデータ・アドレス・フィールドなどに操作要求ブロックへのポインタを入れることにより、チャネル・プログラムによって識別される。他の実施例では、ＯＲＢへのポインタまたはＯＲＢの内容をＣＣＷの他のフィールドに入れることが可能である。
【００５７】
チャネル・プログラムまたは１つまたは複数の入出力操作の実行を中断するために使用するSUSPEND SUBCHANNEL命令およびサブチャネル中断チャネル・コマンド・ワードの様々な実施例は、前述の通りである。SUSPEND SUBCHANNEL命令またはサブチャネル中断ＣＣＷがチャネル・サブシステムで処理されると、本明細書に記載する方法で適切なチャネル（図１）が制御ユニット２７に中断要求を伝達する。（START SUBCHANNEL命令から開始された中断を伝達するために以下に記載する機構と同様の機構を使用できることは、当業者には明らかであろう。）
【００５８】
特に、操作要求ブロックの即時中断制御４５がオフの場合、チャネルは既知の技法を使用して、チャネルから制御ユニットに中断要求を伝達する。具体的には、チャネルは、Enterprise Systems Architecture/390 ESCON I/O Interface（資料番号SA22-7202-02、ＩＢＭ、１９９２年９月）に詳しく記載されているパケットなどを使用することにより、チャネル・プログラムの終わりを示すが、同書は参照によりその全体が本明細書の一部となる。別の例では、１９７５年８月５日に発行され、本出願人に譲渡された"Suspension and Restart of Input/Output Operations"という名称の米国特許第３８９８６２３号などに記載されている電気信号を使用することにより、チャネルがチャネル・プログラムの終わりを伝達するが、同特許は参照によりその全体が本明細書の一部となる。
【００５９】
即時中断制御４５がオンで、ＣＣＷコマンド境界の前であってもチャネル・プログラム（または入出力操作）を即時中断することを示す場合、本明細書に記載するようにチャネルから制御ユニットに要求が伝達される。具体的には、本発明の原理により、チャネルが制御ユニットに即時中断要求の装置レベル制御フレームを送る。装置レベル制御フレーム９８の一例は図１１に示す。装置レベル制御フレームについては、Enterprise Systems Architecture/390 ESCON I/O Interface（資料番号SA22-7202-02、ＩＢＭ、１９９２年９月）の第６章に詳しく記載されており、同書は参照によりその全体が本明細書の一部となるので、ここでは詳しく説明しない。その代わり、各種フィールドの簡単な説明を示し、特に本発明に関連する情報について詳細に説明する。
【００６０】
図１１を参照すると、装置レベル制御フレーム９８は、たとえば、以下のフィールドを含む。
情報フィールドＩＤ（ＩＦＩ）１００。フィールドの形式や解釈に影響する各種機能と装置フレーム・タイプを示す。
装置アドレス１０２。チャネル／制御ユニット間フレームの情報フィールドの内容を受信するか、または制御ユニット／チャネル間フレームの情報フィールドの内容を送信する、論理経路上の入出力装置を識別する。
装置ヘッダ・フラグ・フィールド（ＤＨＦ）１０４。入出力操作の実行を制御するために所与の装置レベル・プロトコルを呼び出す。
制御機能１０６。実行すべき装置レベル機能と制御パラメータ・フィールドの形式を判定するために、装置ヘッダ・フラグ・フィールド内のビットとともに解釈される。本発明の原理によれば、中断即時要求を示すために制御機能フィールドが「１１０００」Ｂに設定される。
制御パラメータ・フィールド１０８。制御機能に関連するパラメータを指定する。本発明の原理によれば、制御パラメータ・フィールドはすべて０に設定される。
【００６１】
制御ユニットは装置レベル制御フレームを受け取ると、既知の技法により、操作を中断できるかどうかを判定する。制御ユニットが操作を中断できる場合は、その後、チャネルが操作を再開するときに操作の続行に必要なすべての情報が制御ユニットに保持される。特に、制御ユニットは、チャネル・コマンド・ワードからのコマンド・コードまたは命令からの操作コード、装置の論理的位置決めおよび方向付け、キャッシュまたはバッファ・ポインタを、適切に保存する。また、制御ユニットは、現行ＣＣＷについてチャネルに転送されるかまたはチャネルから受信されるバイト数も保存する。その後、制御ユニットは状況フレームをチャネルに返す。
【００６２】
状況フレーム１０３の一実施例を図１２に示す。装置レベル制御フレームと同様、状況フレームについても、前述のEnterprise Systems Architecture/390 ESCON I/O Interface（資料番号SA22-7202-02、ＩＢＭ、１９９２年９月）の第６章に詳しく記載されており、同書は参照によりその全体が本明細書の一部となる。したがって、それぞれのフィールドについては概略を以下に説明し、本発明の拡張点があればそれを詳しく説明する。ある例の状況フレーム１０３は、以下のフィールドを含む。
状況フィールドＩＤ１００、装置アドレス１０２、装置ヘッダ・フラグ・フィールド１０４。それぞれについては前述の通りである。状況フレームの装置ヘッダ・フラグ・フィールドにある終了ブロック（ＥＢ）ビットであるビット１は、チャネルに切断を通知するために１に設定される。
状況フラグ・フィールド１０５。状況が生成されたときに制御ユニット内に存在した条件と、状況フレームに関連する条件に関する追加情報をチャネルに提供する。状況フラグ・フィールド１０５は以下のフラグを含む。
フラグフィールド・コード（ＦＦＣ）：ＦＦＣであるビット０〜２は、他の状況フラグ・ビットとともに、あるいは他の状況ビットとは無関係に、状況バイトまたは状況パラメータ・フィールドあるいはその両方に収容された状況情報をさらに記述するための３ビット符号化フィールドである。本発明の原理によれば、フラグ・フィールド・コードは「００１」Ｂに設定され、操作が中断されたことを示す。
チャネル開始フラグ（ＣＩ）：ＣＩビットであるビット３が１に設定されている場合は、再試行要求または装置チェック要求のいずれかによって選択リセット・フレームを受け取った識別済み入出力装置からその状況フレームが得られたことを示す。本発明の原理によれば、ＣＩビットは１に設定され、状況フレームがチャネル開始機能から得られたことを示す。
補足状況使用可能フラグ（ＳＡ）：ＳＡビットであるビット４は、現行状況フレームに関連する補足状況が使用可能であることを示すために、制御ユニットが任意で使用することができる。
コマンド再試行ビット（ＣＲ）：ＣＲビットであるビット５が１に設定されている場合は、その状況バイトが再試行状況も含む場合にコマンド再試行を要求するために使用される。
長レコード・ビット（ＬＲ）：ＬＲビットであるビット６が１に設定されている場合は、制御装置によって長レコード条件が検出されたことを示す。
転送カウント有効ビット（ＸＶ）：ＸＶビットであるビット７が１に設定されている場合は、状況パラメータ・フィールドが転送カウント、すなわち、現行ＣＣＷについて制御ユニットが送受信するバイトの総数を含むことを示す。「００１」Ｂに設定されたフラグフィールド・コードが示すように、チャネル終了状況ビットが１に設定されているか、または操作が中断されている場合のみ、制御装置によってＸＶビットを１に設定することができる。本発明の原理によれば、ＸＶフラグは１に設定され、状況パラメータ・フィールドが有効転送カウントを含むことを示す。
状況バイト・フィールド１０７。装置および制御ユニットの状況を示す。本発明の原理によれば、状況バイトは「００」Ｘを含む。
状況パラメータ・フィールド１０９は、ＸＶビットによって指定された場合に転送カウントを含むことができる。転送カウントは、現行ＣＣＷについて制御ユニットが送受信するバイトの総数である。
【００６３】
本発明の原理によれば、上記の状況フレームは、チャネル側または制御ユニット側のいずれの操作も終了するわけではない。単に、操作を中断するだけである。チャネルは、状況フレームを受け入れ、前述のESCONの参考文献に記載されている既知の技法により切断を行う。
【００６４】
制御ユニットがチャネルによって要求された操作を中断できない場合は、適切なセンス・データとともに装置チェック状況を含む状況フレームを返すことによって、制御ユニットが操作を終了する。
【００６５】
上記に加え、チャネル・プログラムが実行されているサブチャネルに使用する場合のサブチャネル中断ＣＣＷ用の代替実施態様が存在する。具体的には、装置レベル制御フレームとして送られる代わりに、コマンド・フレームに入れて、すなわち通常のコマンドが制御ユニットに転送されるのと同じようにコマンドのデータ引数として、かつ通常のコマンド・ストリームの一体部分として（前のコマンドの完了後に）、中断要求が制御ユニットに渡される。コマンド・フレームのカウント・フィールド内のパラメータまたはデータ・フレーム内のデータは、中断が要求されている時間量（合意した単位）を含む。
【００６６】
中断コマンドと関連データを受け入れると、制御ユニットはチャネルに対してチャネル終了表示を提示し、切断する。次に、制御ユニットは、指定の期間、チャネル・プログラムに関してそれ自体を中断する。中断期間が終了すると、制御ユニットは装置終了を提示する。次に、チャネルは、連鎖内に次のＣＣＷが存在すれば、その実行に移行するか、またはチャネル・プログラムの実行の終了に移行する。
【００６７】
入出力操作の通常終了時に提示されるカウントおよび条件は操作全体に関連し、即時中断ビットがオンになっているかどうかにかかわらず、SUSPEND SUBCHANNEL命令またはサブチャネル中断ＣＣＷによって中断された可能性があるということを無視することに留意されたい。
【００６８】
入出力操作の実行を中断するための上記の機構に加え、中断した入出力操作の実行を再開するための機構が本発明の原理により提供される。具体的には、再開機能を実行することができるＣＰＵ命令とチャネル・コマンド・ワードの両方が提供される。
【００６９】
一実施例では、入出力操作または特定の実施例の中断チャネル・プログラムの実行を再開するために、限界付きのサブチャネル再開命令が提供される。上記のSUSPEND SUBCHANNEL命令と同様、本発明の原理により提供されるRESUME SUBCHANNEL命令は、入出力操作またはチャネル・プログラムとは無関係である。限界付きのRESUME SUBCHANNEL命令の一例を図１３に示す。RESUME SUBCHANNEL命令１１１は、再開操作を行うことを示す操作コード（ＯＰＣＯＤＥ）１１３と、所望の限界を含む操作要求ブロックの論理アドレスを指定する第２オペランド・アドレス（Ｄ2（Ｂ2））１１５とを含む。
【００７０】
ある例では、START SUBCHANNEL命令を参照して前述した限界のそれぞれがRESUME SUBCHANNEL命令に適用される。具体的には、図４を参照すると、RESUME SUBCHANNEL命令は、特定の時間量の間（ＯＲＢのワード３）またはいくつかのＣＣＷが実行されるまで（ワード４）またはメモリと入出力装置との間で定義済みバイト数が転送されるまで（ワード５）またはメモリと入出力装置との間で定義済み数の物理ブロックのデータが転送されるまで（ワード６）、チャネル・プログラムの実行を再開することができる。START SUBCHANNELの場合と同様、チャネル・サブシステムは、チャネル・プログラムの実行中、限界２８に関連するカウンタ２６（図２）を監視し更新することになる。実行限界のうちの１つまたは複数を満足すると、もう一度、実行が中断される。
【００７１】
RESUME SUBCHANNEL命令に加え、本発明の原理により、限界付きのサブチャネル再開チャネル・コマンド・ワードが作成されている。RESUME SUBCHANNEL命令の場合と同様、サブチャネル再開ＣＣＷは、中断した入出力操作またはより具体的には中断したチャネル・プログラムの実行を再開する。特に、本発明のサブチャネル再開ＣＣＷは別のチャネル・プログラムの実行を再開する。すなわち、再開機能の原因となったＣＣＷを実行していないチャネル・プログラムである。その後、サブチャネルは、１つまたは複数の実行限界を満足するまで実行される。特定の限界は、たとえば、ＯＲＢ内に位置し、一例として、時間、ＣＣＷの数、バイトの数、物理ブロックの数（図４を参照して図示し説明したもの）などの実行限界を含む。このＯＲＢは、中断ＣＣＷで説明したＯＲＢのように、ワード０にターゲット・サブチャネル番号を含む。ＯＲＢは、たとえば、サブチャネル再開チャネル・コマンド・ワードのデータ・アドレス・フィールド内に位置するポインタによって参照される。
【００７２】
START SUBCHANNEL命令、SUSPEND SUBCHANNEL命令、または即時中断ビットがオンの中断ＣＣＷによって中断された後、たとえば、RESUME SUBCHANNEL命令、サブチャネル再開ＣＣＷ、または中断限界の満了により、チャネル側で入出力操作が再開されると、チャネルは、制御ユニットにコマンド・フレームを送ることによって制御ユニット側で操作を再開する。コマンド・フレームの一例は図１４に示す。コマンド・フレームについては、Enterprise Systems Architecture/390 ESCON I/O Interface（資料番号SA22-7202-02、ＩＢＭ、１９９２年９月）に詳しく記載されており、同書は参照によりその全体が本明細書の一部となる。したがって、本発明によりコマンド・フレームに加えられた変更箇所についてのみ、詳しく説明する。
【００７３】
一例では、コマンド・フレーム１１７は以下のフィールドを含む。
情報フィールドＩＤ１００、装置アドレス１０２、装置ヘッダ・フラグ・フィールド１０４。これらは、すでに詳述した通りである。
コマンド・フラグ・フィールド１１９。現行ＣＣＷからの連鎖フラグ・ビット、データ連鎖更新フラグ（ＤＵ）、再開更新フラグ（ＲＵ）を含む。特に、コマンド・フラグ・フィールドは以下のものを含む。
データ連鎖（ＣＤ）フラグ：データ連鎖フラグであるビット０が１に設定されている場合は、データの連鎖を実行するという意図を指定する。本発明の原理によれば、ＣＤフラグは、現行チャネル・コマンド・ワード内のＣＤフラグと同じ値を含むことになる。
コマンド連鎖（ＣＣ）フラグ：コマンド連鎖フラグであるビット１が１に設定され、ＣＤフラグが０に設定されている場合は、コマンドの連鎖を実行するという意図を指定する。本発明の原理によれば、コマンド連鎖フラグは、現行ＣＣＷ内のコマンド連鎖フラグと同じ値を含むことになる。
データ連鎖更新（ＤＵ）フラグ：データ連鎖更新フラグが１に設定されている場合は、そのコマンド・フレームで送信されるＣＣフラグと、ＣＤフラグと、カウントがデータ連鎖中に使用する新しいＣＣＷに関連づけられることを意味する。
再開更新（ＲＵ）フラグ：本発明の原理によれば、再開更新（ＲＵ）フラグと呼ばれる新しいフラグは、コマンド・フラグ・フィールドのビット７に格納される。このフラグが１に設定されている場合は、これが再開更新コマンド・フレームであることを意味する。
コマンド・フィールド１２１。現行ＣＣＷからのコマンドを含む。このコマンドは、実行すべき入出力操作を指定する。
カウント・フィールド１２３。現行ＣＣＷ用のデータのカウントを指定する。入出力操作が書込み操作である場合、カウント・フィールドは、中断時点から現行ＣＣＷについて残存しているバイト数を含む。入出力操作が読取り操作である場合、カウント・フィールドは、中断時点から現行ＣＣＷについて残存しているバイトの数（装置ヘッダ・フラグ・フィールドのＥビットが１に設定される）またはそのチャネルが制御ユニットから最初に要求するデータの量を含む。制御ユニットは、データ連鎖コマンド更新フレームについて当技術分野で既知のようにコマンド・フレームに応答し、中断時点からの操作を続行する。（データ連鎖コマンド更新フレームについては、Enterprise Systems Architecture/390 ESCON I/O Interface（資料番号SA22-7202-02、ＩＢＭ、１９９２年９月）に詳しく記載されており、同書は参照によりその全体が本明細書の一部となる。）
【００７４】
当技術分野で既知の通り、情報フィールドＩＤフィールド１００の前には、フレーム区切り文字の開始を含むリンク・ヘッダがある。本発明の原理によれば、フレーム区切り文字の開始はフレーム区切り文字の接続開始であり、これは動的接続を開始するために使用する。
【００７５】
本発明の他の実施例では、特定の実行限界を満足するとサブチャネルの中断が行われ、その中断は既定の時間の間、持続し、その後、中断したサブチャネルの自動再開が行われる。本発明の原理によれば、サブチャネル側での操作を開始し、その後、定義済み実行限界を満足したときに既定の時間の間、サブチャネルを中断するためにSTART SUBCHANNEL命令を使用する。定義済み実行限界と中断時間限界は、図１５に示す操作要求ブロック１２５に含まれている。図１５に示すそれぞれのワードについては、同様の参照番号で示すように、すでに詳しく説明してきた。図示の通り、操作要求ブロック１２５のワード３〜６は実行限界の量を示す値を含み、ワード７は中断時間限界の量を示す値を含む。
【００７６】
チャネル・プログラムの実行中、チャネル・プロセッサは、ＯＲＢに指定した実行限界（すなわち、時間、チャネル・コマンド・ワードの数、転送したバイトの数、転送した物理ブロックの数など）に関連するサブチャネル内のカウンタ２６（図２）を監視し更新することになり、指定の限界を超えると、チャネル・プログラムが中断される。この中断は、たとえば、操作要求ブロックのワード７の中断時間限界によって指定される最大スリープ時間に関連づけられる。最大スリープ時間が終了すると、チャネル・サブシステムによってチャネル・プログラムが自動的に再開されて実行限界の最新表示が行われ、関連カウンタがリセットされる。（特定の限界が０に設定されている場合は、その限界が無視されることに留意されたい。）
【００７７】
それに関連する限界を有する中断または再開機構の処理に関する論理の一実施例について、図１６を参照して以下に説明する。まず、中央演算処理装置は、たとえば、限界付きのSTART SUBCHANNEL命令、または限界付きのRESUME SUBCHANNEL命令またはサブチャネル再開ＣＣＷにより、入出力操作を開始する（ステップ１１０「入出力操作を開始する。」）。その後、次のチャネル・コマンド・ワードの処理が始まる（ステップ１１２「次のＣＣＷに移行する。何も残っていない場合は停止する。ＣＣＷの実行を開始する。」）。特に、START SUBCHANNEL命令によって入出力操作が開始された場合は、ＯＲＢに指定されたＣＣＷの実行が開始される。このＣＣＷは、既存の中断コマンドなどの、様々なコマンドを含む可能性がある。あるいは、それがRESUME SUBCHANNEL命令またはサブチャネル再開ＣＣＷの場合は、現在中断されているチャネル・プログラムの実行が再開される。これ以上チャネル・コマンド・ワードが存在しない場合は、処理が終了する。
【００７８】
ＣＣＷの実行中は、即時中断ビットがオンであるかどうかという判定が行われる（問合せ１１４）。そのビットがオンではない場合、ＣＣＷは完了まで実行される（ステップ１１６）。ＣＣＷの実行完了後または即時中断ビットがオンの場合は、実行限界（すなわち、時間、ＣＣＷの数、バイトの数、物理ブロックの数など）に関連するそれぞれのカウンタ２６がチャネル・サブシステムによって増分される（ステップ１１８「限界に関連するカウンタを増分する。」）。その後、いずれかの限界を超えているかどうか、または中断命令または中断ＣＣＷが別のＣＰＵまたはサブチャネルから出されたのかどうかという判定が行われる（問合せ１２０）。
【００７９】
いずれの限界も超えておらず、中断命令または中断ＣＣＷが一切出されていない場合は、現行ＣＣＷの実行が完了したかどうかという判定が行われる（問合せ１２２）。実行が完了すると、処理はステップ１１２「次のＣＣＷに移行する。何も残っていない場合は停止する。ＣＣＷの実行を開始する。」を続行する。それ以外の場合は、ＣＣＷの実行が続行され（ステップ１２４）、処理は問合せ１１４を続行する。
【００８０】
問合せ１２０に戻り、いずれかの限界を超えているか、または中断ＣＣＷまたは中断命令が出されている場合は、サブチャネル番号によって指定されたチャネル・プログラムがチャネル・サブシステムによって中断される。操作要求ブロックに中断時間限界が設けられている場合は、チャネル・サブシステムによって自動覚醒が手配される（ステップ１２６「チャネル・プログラムを中断する。時間限界が設けられている場合は、覚醒の手配を行う。」）。
【００８１】
その後、中断時間限界によって指定された定義済み時間の後またはRESUME SUBCHANNEL命令またはサブチャネル再開ＣＣＷが別のＣＰＵまたはサブチャネルによって出された場合、チャネル・プログラムの実行が再開され（ステップ１２８）、処理はステップ１１２「次のＣＣＷに移行する。何も残っていない場合は停止する。ＣＣＷの実行を開始する。」を続行する。この再開では、従来の中断機構および本発明の中断機構など、任意の数の機構によって中断されたチャネル・プログラムの実行を再開することもできることに留意されたい。
【００８２】
チャネル・プログラムなど、入出力操作の実行を制御するための機構について、これまで述べてきた。特に、チャネル・プログラムの実行を中断し再開する機構について説明してきた。たとえば、チャネル・プログラムを減速すべきであると入出力監視プログラムが判定するか、またはシステム問題が発生しているときに、中央演算処理装置（ＣＰＵ）と、特にＣＰＵ内の入出力監視プログラムが中断命令を出せるようにするためのSUSPEND SUBCHANNEL命令が提供される。別の例としては、複数のデータ転送の実行を調整するために中断を出したチャネル・プログラムを実行しているサブチャネル以外のサブチャネルを中断するための、サブチャネル中断チャネル・コマンド・ワード（ＣＣＷ）が提供される。さらに、チャネル・プログラムの減速または他のチャネル・プログラムとの調整を可能にするための、時間限界付きのサブチャネル中断命令と、時間限界付きのサブチャネル中断チャネル・コマンド・ワードが提供される。しかも、本発明の原理によれば、自動中断または自動再開あるいはその両方が可能になるように、START SUBCHANNEL命令、RESUME SUBCHANNEL命令、およびサブチャネル再開チャネル・コマンド・ワードに複数の限界が追加されている。さらに、中断を行う時期を判定するための実行限界と、再開を行う時期を判定するための中断時間限界の両方を備えたサブチャネル開始／再開命令が提供される。
【００８３】
前述のように、本発明のいくつかの再開命令および中断命令ならびにＣＣＷは実行限界と中断限界とを参照する。特定の限界を満足すると、適切なアクションが行われる。本発明の原理によれば、これらの限界は入出力操作の実行中に変更することができる。ある例では、MODIFY SUBCHANNEL命令を使用して、サブチャネルに格納された限界のうちの１つまたは複数を変更することができる。MODIFY SUBCHANNEL命令の一例については、前述のように、Enterprise Systems Architecture/390 Principles of Operation（資料番号SA22-7201-01、ＩＢＭ、１９９３年４月）に詳しく記載されており、同書は参照によりその全体が本明細書の一部となる。
【００８４】
このMODIFY SUBCHANNEL命令は、本発明の原理により変更されている。特に、MODIFY SUBCHANNEL命令によって変更されたフィールドが限界２８だけである場合、サブチャネルが状況保留であるかまたは進行中の何らかの機能を持っていると、MODIFY SUBCHANNEL命令は拒否されない。
【００８５】
MODIFY SUBCHANNEL命令の使用の代替態様としては、新しい命令または既存のＣＨＳＣ（チャネル・サブシステム呼出し）命令の新しいコマンド（サブチャネル更新命令という）を使用して、サブチャネルに格納されている限界を変更する。
【００８６】
上記に加え、サブチャネルに関するパフォーマンス情報を蓄積する既存の測定ブロックを強化するための機構が本発明の原理により提供される。この測定ブロックについては、Enterprise Systems Architecture/390 Principles of Operation（資料番号SA22-7201-01、ＩＢＭ、１９９３年４月）に詳しく記載されており、同書は参照によりその全体が本明細書の一部となる。特に、本発明の原理によれば、測定ブロックのワード４には全中断時間カウントが追加され、ワード５には入出力操作の途中の全中断時間が追加されている。
【００８７】
上記の実施例については、ＥＳＡ／３９０アーキテクチャを使用して説明してきた。しかし、本明細書に記載した技法を他のアーキテクチャの個々のコマンドまたは問合せにどのように適用するかは、当業者には明らかになるだろう。したがって、これらは本発明の範囲内であると見なされる。
【００８８】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００８９】
（１）データ処理システム内で制御を提供する方法において、前記データ処理システムが１つまたは複数の中央演算処理装置と、１つまたは複数の入出力装置と、前記１つまたは複数の中央演算処理装置および前記１つまたは複数の入出力装置とに結合されたメモリとを含み、前記方法が、
前記データ処理システム内で１つまたは複数の入出力操作を実行するステップと、
中断操作を実行することにより、前記１つまたは複数の入出力操作の実行を中断するステップであって、前記中断操作が前記１つまたは複数の入出力操作とは無関係に実行されるステップとを含むことを特徴とする方法。
（２）定義済み中断限界を満足するまで前記１つまたは複数の入出力操作の前記実行が中断されることを特徴とする、上記（１）に記載の方法。
（３）前記定義済み中断限界が、前記１つまたは複数の入出力操作の前記実行を中断すべき時間量に基づく限界を含むことを特徴とする、上記（２）に記載の方法。
（４）前記定義済み中断限界が、前記中断操作によって参照される制御ブロックに格納されることを特徴とする、上記（２）に記載の方法。
（５）前記１つまたは複数の入出力操作の前記実行を再開するステップをさらに含むことを特徴とする、上記（１）に記載の方法。
（６）前記１つまたは複数の入出力操作の前記実行を再開すべき時期を判定するステップをさらに含むことを特徴とする、上記（５）に記載の方法。
（７）前記判定ステップが、前記１つまたは複数の入出力操作の前記実行を再開すべき時期を判定するために前記中断操作によって特定された定義済み中断限界を使用することを含むことを特徴とする、上記（６）に記載の方法。
（８）前記定義済み中断限界が、前記１つまたは複数の入出力操作の前記実行を中断すべき時間量に基づく限界を含むことを特徴とする、上記（７）に記載の方法。
（９）前記再開ステップが、再開命令および再開チャネル・コマンド・ワードのうちの１つを実行することを含むことを特徴とする、上記（５）に記載の方法。
（１０）定義済み実行限界を満足するまで、再開された前記１つまたは複数の入出力操作を実行するステップをさらに含むことを特徴とする、上記（５）に記載の方法。
（１１）前記定義済み実行限界が、
前記１つまたは複数の入出力操作が実行されていた時間量に基づく時間限界と、
前記メモリと前記１つまたは複数の入出力装置の１つとの間で転送される定義済みバイト数に基づくバイト限界と、
前記メモリと前記１つまたは複数の入出力装置の１つとの間で転送される定義済みデータ・ブロック数に基づくブロック限界のうち、少なくとも１つを含むことを特徴とする、上記（１０）に記載の方法。
（１２）前記定義済み実行限界を満足したときに前記１つまたは複数の入出力操作の前記実行を中断するステップをさらに含むことを特徴とする、上記（１０）に記載の方法。
（１３）前記１つまたは複数の入出力操作のそれぞれが１つまたは複数のチャネル・コマンド・ワードを含み、前記方法が、定義済み数のチャネル・コマンド・ワードを処理したときに再開された前記１つまたは複数の入出力操作の前記実行を中断するステップをさらに含むことを特徴とする、上記（５）に記載の方法。
（１４）複数の入出力操作が実行され、前記複数の入出力操作相互の間に前記複数の入出力操作の実行が中断されることを特徴とする、上記（１）に記載の方法。
（１５）前記１つまたは複数の入出力操作のうちの１つが実行を完了する前に、前記１つまたは複数の入出力操作のうちの前記１つの実行が中断されることを特徴とする、上記（１）に記載の方法。
（１６）前記中断操作が、前記１つまたは複数の中央演算処理装置のうちの１つによって制御される中断命令を含むことを特徴とする、上記（１）に記載の方法。
（１７）前記中断操作が、第２の１つまたは複数の入出力操作内に位置するコマンドを含むことを特徴とする、上記（１）に記載の方法。
（１８）前記１つまたは複数の入出力操作のそれぞれが、１つまたは複数のチャネル・コマンド・ワードを含むことを特徴とする、上記（１）に記載の方法。
（１９）データ処理システム内で制御を提供する方法において、前記方法が、
前記データ処理システムの中央演算処理装置によって制御される命令を使用して１つまたは複数の入出力操作の実行を開始するステップと、
前記命令を使用して前記１つまたは複数の入出力操作の実行を中断するステップとを含むことを特徴とする方法。
（２０）前記１つまたは複数の入出力操作の前記実行を中断すべき時期を判定するステップをさらに含み、前記判定ステップが、前記命令によって参照される１つまたは複数の実行限界を使用することを特徴とする、上記（１９）に記載の方法。
（２１）前記１つまたは複数の実行限界が、
前記１つまたは複数の入出力操作が実行されていた時間量に基づく時間限界と、
前記データ処理システムのメモリと前記データ処理システムの入出力装置との間で転送されるバイト数に基づくバイト限界と、
前記メモリと前記入出力装置との間で転送されるデータ・ブロック数に基づくブロック限界のうち、少なくとも１つを含むことを特徴とする、上記（２０）に記載の方法。
（２２）中断されていた前記１つまたは複数の入出力操作の前記実行を再開するステップをさらに含むことを特徴とする、上記（１９）に記載の方法。
（２３）前記再開ステップが、定義済み実行限界を満足するまで前記１つまたは複数の入出力操作を実行することを含むことを特徴とする、上記（２２）に記載の方法。
（２４）前記１つまたは複数の入出力操作のうちの１つが実行を完了する前に、前記１つまたは複数の入出力操作のうちの前記１つの実行が中断されることを特徴とする、上記（１９）に記載の方法。
（２５）複数の入出力操作の実行が開始され、前記複数の入出力操作相互の間に前記複数の入出力操作の前記実行が中断されることを特徴とする、上記（１９）に記載の方法。
（２６）前記１つまたは複数の入出力操作のそれぞれが１つまたは複数のチャネル・コマンド・ワードを含み、定義済み数のチャネル・コマンド・ワードが処理されたときに前記１つまたは複数の入出力操作の前記実行が中断されることを特徴とする、上記（１９）に記載の方法。
（２７）前記中断ステップが、定義済み中断限界を満足するまで前記１つまたは複数の入出力操作の前記実行を停止することを含むことを特徴とする、上記（１９）に記載の方法。
（２８）前記定義済み中断限界を満足すると前記実行を自動的に再開するステップをさらに含むことを特徴とする、上記（２７）に記載の方法。
（２９）前記開始ステップが、前記データ処理システムのサブチャネル内に前記１つまたは複数の入出力操作の実行を中断する際に使用する１つまたは複数の限界を格納することをさらに含むことを特徴とする、上記（１９）に記載の方法。
（３０）前記サブチャネル内に格納された前記１つまたは複数の限界を変更するステップをさらに含むことを特徴とする、上記（２９）に記載の方法。
（３１）データ処理システム内で制御を提供する方法において、前記方法が、
前記データ処理システム内で１つまたは複数の入出力操作を実行するステップと、
前記１つまたは複数の入出力操作内に位置する中断コマンドを処理することにより、前記１つまたは複数の入出力操作の実行を中断するステップであって、定義済み中断限界に達するまで前記実行が中断されるステップとを含むことを特徴とする方法。
（３２）前記定義済み中断限界が、前記１つまたは複数の入出力操作の前記実行を中断すべき時間量に基づく限界を含むことを特徴とする、上記（３１）に記載の方法。
（３３）前記定義済み中断限界に達すると前記１つまたは複数の入出力操作の前記実行を自動的に再開するステップをさらに含むことを特徴とする、上記（３１）に記載の方法。
（３４）前記１つまたは複数の入出力操作のうちの１つが実行を完了する前に、前記１つまたは複数の入出力操作のうちの前記１つの実行が中断されることを特徴とする、上記（３１）に記載の方法。
（３５）複数の入出力操作が実行され、前記複数の入出力操作相互の間に前記複数の入出力操作の実行が中断されることを特徴とする、上記（３１）に記載の方法。
（３６）データ処理システム内で制御を提供する方法において、前記方法が、
前記データ処理システムの中央演算処理装置によって制御される命令を使用して１つまたは複数の入出力操作の実行を開始するステップと、
１つまたは複数の実行限界を使用して、前記１つまたは複数の入出力操作の前記実行を中断すべき時期を判定するステップと、
前記１つまたは複数の実行限界により、前記実行を中断すべきと判定されたときに、前記命令を使用して前記１つまたは複数の入出力操作の前記実行を中断するステップと、
定義済み中断限界を満足したときに前記１つまたは複数の入出力操作の前記実行を自動的に再開するステップとを含むことを特徴とする方法。
（３７）前記１つまたは複数の実行限界が、
前記１つまたは複数の入出力操作が実行されていた時間量に基づく時間限界と、
前記データ処理システムのメモリと前記データ処理システムの入出力装置との間で転送されるバイト数に基づくバイト限界と、
前記メモリと前記入出力装置との間で転送されるデータ・ブロック数に基づくブロック限界のうち、少なくとも１つを含むことを特徴とする、上記（３６）に記載の方法。
（３８）前記１つまたは複数の入出力操作のうちの１つが実行を完了する前に、前記１つまたは複数の入出力操作のうちの前記１つの実行が中断されることを特徴とする、上記（３６）に記載の方法。
（３９）複数の入出力操作の実行が開始され、前記１つまたは複数の実行限界により、前記複数の入出力操作の前記実行を中断すべきと判定されたときに前記複数の入出力操作相互の間に前記複数の入出力操作の前記実行が中断され、前記定義済み中断限界を満足すると前記複数の入出力操作の前記実行が再開されることを特徴とする、上記（３６）に記載の方法。
（４０）前記１つまたは複数の入出力操作のそれぞれが１つまたは複数のチャネル・コマンド・ワードを含み、前記１つまたは複数の実行限界が、処理されるチャネル・コマンド・ワードの定義済み数に基づく限界を含むことを特徴とする、上記（３６）に記載の方法。
（４１）データ処理システム内で制御を提供する方法において、前記方法が、
中断された１つまたは複数の入出力操作の実行を再開するステップであって、１つまたは複数の定義済み実行限界の参照を含むステップと、
前記１つまたは複数の定義済み実行限界を満足したときに再開された前記１つまたは複数の入出力操作の前記実行を中断するステップとを含むことを特徴とする方法。
（４２）前記１つまたは複数の定義済み実行限界が、
前記１つまたは複数の入出力操作が実行されていた時間量に基づく時間限界と、
前記データ処理システムのメモリと前記データ処理システムの入出力装置との間で転送されるバイト数に基づくバイト限界と、
前記メモリと前記入出力装置との間で転送されるデータ・ブロック数に基づくブロック限界のうち、少なくとも１つを含むことを特徴とする、上記（４１）に記載の方法。
（４３）前記１つまたは複数の入出力操作の前記実行を再開すべき時期を判定するステップをさらに含み、前記判定ステップが中断限界を使用することを特徴とする、上記（４１）に記載の方法。
（４４）前記中断限界が、前記１つまたは複数の入出力操作の前記実行を中断すべき時間量を含むことを特徴とする、上記（４３）に記載の方法。
（４５）前記１つまたは複数の入出力操作のそれぞれが１つまたは複数のチャネル・コマンド・ワードを含み、前記１つまたは複数の定義済み実行限界が、処理すべきチャネル・コマンド・ワードの定義済み数に基づくコマンド限界を含むことを特徴とする、上記（４１）に記載の方法。
（４６）前記再開ステップが、前記１つまたは複数の入出力操作とは無関係に実行される中央演算処理装置命令を使用して、前記１つまたは複数の入出力装置の前記実行を再開することを含むことを特徴とする、上記（４１）に記載の方法。
（４７）前記再開ステップが、第２の１つまたは複数の入出力操作内に位置するコマンドを使用して、前記１つまたは複数の入出力操作の前記実行を再開することを含むことを特徴とする、上記（４１）に記載の方法。
（４８）データ処理システム内で制御を提供するシステムにおいて、前記データ処理システムが１つまたは複数の中央演算処理装置と、１つまたは複数の入出力装置と、前記１つまたは複数の中央演算処理装置および前記１つまたは複数の入出力装置とに結合されたメモリとを含み、前記システムが、
前記データ処理システム内で１つまたは複数の入出力操作を実行する手段と、
中断操作を実行することにより、前記１つまたは複数の入出力操作の実行を中断する手段であって、前記中断操作が前記１つまたは複数の入出力操作とは無関係に実行される手段とを含むことを特徴とするシステム。
（４９）定義済み中断限界を満足するまで前記１つまたは複数の入出力操作の前記実行が前記中断手段によって中断されることを特徴とする、上記（４８）に記載のシステム。
（５０）前記定義済み中断限界が、前記１つまたは複数の入出力操作の前記実行を中断すべき時間量に基づく限界を含むことを特徴とする、上記（４９）に記載のシステム。
（５１）前記定義済み中断限界が、前記中断操作によって参照される制御ブロックに格納されることを特徴とする、上記（４９）に記載のシステム。
（５２）前記１つまたは複数の入出力操作の前記実行を再開する手段をさらに含むことを特徴とする、上記（４８）に記載のシステム。
（５３）前記１つまたは複数の入出力操作の前記実行を再開すべき時期を判定する手段をさらに含むことを特徴とする、上記（５２）に記載のシステム。
（５４）前記判定手段が、前記１つまたは複数の入出力操作の前記実行を再開すべき時期を判定するために前記中断操作によって特定された定義済み中断限界を使用する手段を含むことを特徴とする、上記（５３）に記載のシステム。
（５５）前記定義済み中断限界が、前記１つまたは複数の入出力操作の前記実行を中断すべき時間量に基づく限界を含むことを特徴とする、上記（５４）に記載のシステム。
（５６）前記再開手段が、再開命令および再開チャネル・コマンド・ワードのうちの１つを実行する手段を含むことを特徴とする、上記（５２）に記載のシステム。
（５７）定義済み実行限界を満足するまで、再開された前記１つまたは複数の入出力操作を実行する手段をさらに含むことを特徴とする、上記（５２）記載のシステム。
（５８）前記定義済み実行限界が、
前記１つまたは複数の入出力操作が実行されていた時間量に基づく時間限界と、
前記メモリと前記１つまたは複数の入出力装置の１つとの間で転送される定義済みバイト数に基づくバイト限界と、
前記メモリと前記１つまたは複数の入出力装置の１つとの間で転送される定義済みデータ・ブロック数に基づくブロック限界のうち、少なくとも１つを含むことを特徴とする、上記（５７）に記載のシステム。
（５９）前記定義済み実行限界を満足したときに前記１つまたは複数の入出力操作の前記実行を中断する手段をさらに含むことを特徴とする、上記（５７）に記載のシステム。
（６０）前記１つまたは複数の入出力操作のそれぞれが１つまたは複数のチャネル・コマンド・ワードを含み、前記システムが、定義済み数のチャネル・コマンド・ワードを処理したときに再開された前記１つまたは複数の入出力操作の前記実行を中断する手段をさらに含むことを特徴とする、上記（５２）に記載のシステム。
（６１）複数の入出力操作が前記実行手段によって実行され、前記複数の入出力操作相互の間に前記複数の入出力操作の実行が前記中断手段によって中断されることを特徴とする、上記（４８）に記載のシステム。
（６２）前記１つまたは複数の入出力操作のうちの１つが実行を完了する前に、前記１つまたは複数の入出力操作のうちの前記１つの実行が前記中断手段によって中断されることを特徴とする、上記（４８）に記載のシステム。
（６３）前記中断操作が、前記１つまたは複数の中央演算処理装置のうちの１つによって制御される中断命令を含むことを特徴とする、上記（４８）に記載のシステム。
（６４）前記中断操作が、第２の１つまたは複数の入出力操作内に位置するコマンドを含むことを特徴とする、上記（４８）に記載のシステム。
（６５）前記１つまたは複数の入出力操作のそれぞれが、１つまたは複数のチャネル・コマンド・ワードを含むことを特徴とする、上記（４８）に記載のシステム。
（６６）データ処理システム内で制御を提供するシステムにおいて、前記システムが、
前記データ処理システムの中央演算処理装置によって制御される命令を使用して１つまたは複数の入出力操作の実行を開始する手段と、
前記命令を使用して前記１つまたは複数の入出力操作の実行を中断する手段とを含むことを特徴とするシステム。
（６７）前記１つまたは複数の入出力操作の前記実行を中断すべき時期を判定する手段をさらに含み、前記判定手段が、前記命令によって参照される１つまたは複数の実行限界を使用することを特徴とする、上記（６６）に記載のシステム。
（６８）前記１つまたは複数の実行限界が、
前記１つまたは複数の入出力操作が実行されていた時間量に基づく時間限界と、
前記データ処理システムのメモリと前記データ処理システムの入出力装置との間で転送されるバイト数に基づくバイト限界と、
前記メモリと前記入出力装置との間で転送されるデータ・ブロック数に基づくブロック限界のうち、少なくとも１つを含むことを特徴とする、上記（６７）に記載のシステム。
（６９）中断されていた前記１つまたは複数の入出力操作の前記実行を再開する手段をさらに含むことを特徴とする、上記（６６）に記載のシステム。
（７０）前記再開手段が、定義済み実行限界を満足するまで前記１つまたは複数の入出力操作を実行する手段を含むことを特徴とする、上記（６９）に記載のシステム。
（７１）前記１つまたは複数の入出力操作のうちの１つが実行を完了する前に、前記１つまたは複数の入出力操作のうちの前記１つの実行が前記中断手段によって中断されることを特徴とする、上記（６６）に記載のシステム。
（７２）複数の入出力操作の実行が前記実行開始手段によって開始され、前記複数の入出力操作相互の間に前記複数の入出力操作の前記実行が前記中断手段によって中断されることを特徴とする、上記（６６）に記載のシステム。
（７３）前記１つまたは複数の入出力操作のそれぞれが１つまたは複数のチャネル・コマンド・ワードを含み、定義済み数のチャネル・コマンド・ワードが処理されたときに前記１つまたは複数の入出力操作の前記実行が前記中断手段によって中断されることを特徴とする、上記（６６）に記載のシステム。
（７４）前記中断手段が、定義済み中断限界を満足するまで前記１つまたは複数の入出力操作の前記実行を停止する手段を含むことを特徴とする、上記（６６）に記載のシステム。
（７５）前記定義済み中断限界を満足すると前記実行を自動的に再開する手段をさらに含むことを特徴とする、上記（７４）に記載のシステム。
（７６）前記開始手段が、前記データ処理システムのサブチャネル内に前記１つまたは複数の入出力操作の実行を中断する際に使用する１つまたは複数の限界を格納する手段をさらに含むことを特徴とする、上記（６６）に記載のシステム。
（７７）前記サブチャネル内に格納された前記１つまたは複数の限界を変更する手段をさらに含むことを特徴とする、上記（７６）に記載のシステム。
（７８）データ処理システム内で制御を提供するシステムにおいて、前記システムが、
前記データ処理システム内で１つまたは複数の入出力操作を実行する手段と、
前記１つまたは複数の入出力操作内に位置する中断コマンドを処理することにより、前記１つまたは複数の入出力操作の実行を中断する手段であって、定義済み中断限界に達するまで前記実行が中断される手段とを含むことを特徴とするシステム。
（７９）前記定義済み中断限界が、前記１つまたは複数の入出力操作の前記実行を中断すべき時間量に基づく限界を含むことを特徴とする、上記（７８）に記載のシステム。
（８０）前記定義済み中断限界に達すると前記１つまたは複数の入出力操作の前記実行を自動的に再開する手段をさらに含むことを特徴とする、上記（７８）に記載のシステム。
（８１）前記１つまたは複数の入出力操作のうちの１つが実行を完了する前に、前記１つまたは複数の入出力操作のうちの前記１つの実行が前記中断手段によって中断されることを特徴とする、上記（７８）に記載のシステム。
（８２）複数の入出力操作が前記実行手段によって実行され、前記複数の入出力操作相互の間に前記複数の入出力操作の実行が前記中断手段によって中断されることを特徴とする、上記（７８）に記載のシステム。
（８３）データ処理システム内で制御を提供するシステムにおいて、前記システムが、
前記データ処理システムの中央演算処理装置によって制御される命令を使用して１つまたは複数の入出力操作の実行を開始する手段と、
１つまたは複数の実行限界を使用して、前記１つまたは複数の入出力操作の前記実行を中断すべき時期を判定する手段と、
前記１つまたは複数の実行限界により、前記実行を中断すべきと判定されたときに、前記命令を使用して前記１つまたは複数の入出力操作の前記実行を中断する手段と、
定義済み中断限界を満足したときに前記１つまたは複数の入出力操作の前記実行を自動的に再開する手段とを含むことを特徴とするシステム。
（８４）前記１つまたは複数の実行限界が、
前記１つまたは複数の入出力操作が実行されていた時間量に基づく時間限界と、
前記データ処理システムのメモリと前記データ処理システムの入出力装置との間で転送されるバイト数に基づくバイト限界と、
前記メモリと前記入出力装置との間で転送されるデータ・ブロック数に基づくブロック限界のうち、少なくとも１つを含むことを特徴とする、上記（８３）に記載のシステム。
（８５）前記１つまたは複数の入出力操作のうちの１つが実行を完了する前に、前記１つまたは複数の入出力操作のうちの前記１つの実行が前記中断手段によって中断されることを特徴とする、上記（８３）に記載のシステム。
（８６）複数の入出力操作の実行が前記開始手段によって開始され、前記１つまたは複数の実行限界により、前記複数の入出力操作の前記実行を中断すべきと判定されたときに前記複数の入出力操作相互の間に前記複数の入出力操作の前記実行が前記中断手段によって中断され、前記定義済み中断限界を満足すると前記複数の入出力操作の前記実行が前記再開手段によって再開されることを特徴とする、上記（８３）に記載のシステム。
（８７）前記１つまたは複数の入出力操作のそれぞれが１つまたは複数のチャネル・コマンド・ワードを含み、前記１つまたは複数の実行限界が、処理されるチャネル・コマンド・ワードの定義済み数に基づく限界を含むことを特徴とする、上記（８３）に記載のシステム。
（８８）データ処理システム内で制御を提供するシステムにおいて、前記システムが、
中断された１つまたは複数の入出力操作の実行を再開する手段であって、１つまたは複数の定義済み実行限界の参照を含む手段と、
前記１つまたは複数の定義済み実行限界を満足したときに再開された前記１つまたは複数の入出力操作の前記実行を中断する手段とを含むことを特徴とするシステム。
（８９）前記１つまたは複数の定義済み実行限界が、
前記１つまたは複数の入出力操作が実行されていた時間量に基づく時間限界と、
前記データ処理システムのメモリと前記データ処理システムの入出力装置との間で転送されるバイト数に基づくバイト限界と、
前記メモリと前記入出力装置との間で転送されるデータ・ブロック数に基づくブロック限界のうち、少なくとも１つを含むことを特徴とする、上記（８８）に記載のシステム。
（９０）前記１つまたは複数の入出力操作の前記実行を再開すべき時期を判定する手段をさらに含み、前記判定手段が中断限界を使用することを特徴とする、上記（８８）に記載のシステム。
（９１）前記中断限界が、前記１つまたは複数の入出力操作の前記実行を中断すべき時間量を含むことを特徴とする、上記（９０）に記載のシステム。
（９２）前記１つまたは複数の入出力操作のそれぞれが１つまたは複数のチャネル・コマンド・ワードを含み、前記１つまたは複数の定義済み実行限界が、処理すべきチャネル・コマンド・ワードの定義済み数に基づくコマンド限界を含むことを特徴とする、上記（８８）に記載のシステム。
（９３）前記再開手段が、前記１つまたは複数の入出力操作とは無関係に実行される中央演算処理装置命令を使用して、前記１つまたは複数の入出力装置の前記実行を再開する手段を含むことを特徴とする、上記（８８）に記載のシステム。
（９４）前記再開手段が、第２の１つまたは複数の入出力操作内に位置するコマンドを使用して、前記１つまたは複数の入出力操作の前記実行を再開する手段を含むことを特徴とする、上記（８８）に記載のシステム。
【図面の簡単な説明】
【図１】本発明の原理により、データ処理システム内で制御を提供するための中断機構と再開機構を取り入れたデータ処理システムのブロック図の一例である。
【図２】本発明の原理により、図１のデータ処理システム内に位置するサブチャネルの一実施例を示す図である。
【図３】本発明の原理によるSTART SUBCHANNEL命令の一実施例を示す図である。
【図４】本発明の原理により変更された操作要求ブロックの一例を示す図である。
【図５】本発明の原理によるSUSPEND SUBCHANNEL命令の一実施例を示す図である。
【図６】本発明の原理によるSUSPEND SUBCHANNEL命令の他の実施例を示す図である。
【図７】本発明の原理により変更された操作要求ブロックの他の例を示す図である。
【図８】本発明の原理によるチャネル・コマンド・ワードの例を示す図である。
【図９】本発明の原理によるチャネル・コマンド・ワードの例を示す図である。
【図１０】本発明の原理により変更された操作要求ブロックの他の例を示す図である。
【図１１】本発明の原理による装置レベル制御フレームの一実施例を示す図である。
【図１２】本発明の原理による状況フレームの一例を示す図である。
【図１３】本発明の原理によるRESUME SUBCHANNEL命令の一実施例を示す図である。
【図１４】本発明の原理によるコマンド・フレームの一実施例を示す図である。
【図１５】本発明の原理による操作要求ブロックの他の実施例を示す図である。
【図１６】本発明の原理により、それに関連する限界を有する中断機構と再開機構の処理に関連する論理の一例を示す図である。
【符号の説明】
１０  データ処理システム
１２  メモリ
１４  ＣＰＵ
１６  チャネル・サブシステム
１８  入出力装置
２０  ＣＰＵプログラム
２２  チャネル・プログラム
２４  サブチャネル
２５  チャネル
２７  制御ユニット
【図１】
0003953118.tif 000002
【図２】
0003953118.tif 000003
【図３】
0003953118.tif 000004
【図４】
0003953118.tif 000005
【図５】
0003953118.tif 000006
【図６】
0003953118.tif 000007
【図７】
0003953118.tif 000008
【図８】
0003953118.tif 000009
【図９】
0003953118.tif 000010
【図１０】
0003953118.tif 000011
【図１１】
0003953118.tif 000012
【図１２】
0003953118.tif 000013
【図１３】
0003953118.tif 000014
【図１４】
0003953118.tif 000015
【図１５】
0003953118.tif 000016
【図１６】
0003953118.tif 000017