JP2565632B2 - 入出力システム - Google Patents

入出力システム

Info

Publication number
JP2565632B2
JP2565632B2 JP5005567A JP556793A JP2565632B2 JP 2565632 B2 JP2565632 B2 JP 2565632B2 JP 5005567 A JP5005567 A JP 5005567A JP 556793 A JP556793 A JP 556793A JP 2565632 B2 JP2565632 B2 JP 2565632B2
Authority
JP
Japan
Prior art keywords
channel
routine
data
ccw
command
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP5005567A
Other languages
English (en)
Other versions
JPH0683749A (ja
Inventor
シーク−ウェイン・チャン
デビッド・リー・ドッシュ
カールヘインズ・ダッカ
ウェイン・リチャード・ロングコア
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0683749A publication Critical patent/JPH0683749A/ja
Application granted granted Critical
Publication of JP2565632B2 publication Critical patent/JP2565632B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は一般にコンピュータ・シ
ステムに関し、特に複数の異なる外部装置に入出力サー
ビスを提供するホスト・コンピュータのための効率的な
チャネル及び制御装置プログラム(及びそれに関連する
ハードウェア)に関する。
【0002】
【従来の技術】多くのコンピュータはディスク或いはプ
リンタなどの1個以上の外部装置をアクセスする必要が
あり、こうしたアクセスを管理するためにある形式の入
出力サービスを必要とする。例えばIBM System/370コン
ピュータは主プロセッサに対するサービスを提供するブ
ロック・マルチプレクサ・チャネル(プロセッサ及び関
連するプログラム及び他のハードウェアを含む)を含
む。ブロック・マルチプレクサ・チャネルは主プロセッ
サを入出力の制御タスクから解放する。主プロセッサは
単にブロック・マルチプレクサ・チャネルを始動すれば
よく、ブロック・マルチプレクサ・チャネルは直接主メ
モリをアクセスでき、主メモリとSystem/370コンピュー
タの入出力ポートの間でデータを転送する。こうしたコ
ンピュータ・システムに関し、各外部装置もまた外部装
置のリソースを管理するための制御ユニットを含み、こ
れが直接リソースをアクセスし、リソースと外部装置の
入出力ポートの間でデータを転送する。2個の入出力ポ
ートが接続されて通信リンクを達成する。チャネルは種
々の異なるタイプの制御装置をアドレスすることが可能
であり各制御装置は装置特有の管理機能を提供する。
【0003】System/370コンピュータが外部装置のリソ
ースをアクセスすることを可能とするためにいくつかの
ステップが要求される。最初に主プロセッサ上で実行さ
れるアプリケーション・プログラムが読出し及び書込み
オペレーションを要求し、関連するオペレーティング・
システムがチャネル・コマンド・ワード(CCW)或い
は要求に対応するコマンドを含むチャネル・プログラム
を生成する。次にチャネルはCCWをフェッチし、要求
或いはコマンドを適切な制御装置に伝送する。次に制御
装置は(1)そのコマンドに関し自身が扱うことのでき
るタイプであるかを確認し、(2)自身及びリソースの
ステータス(ビジーか使用可能か)を決定し、(3)そ
のステータス及び制御及びリソースが使用可能かどうか
をチャネルに報告し、(4)現行コマンドが発生するシ
ーケンス及びそのシーケンスが有効かどうかを確認し、
(5)制御装置及びリソースのステータスをビジーに変
更し、(6)書込みコマンドの場合にはチャネルからデ
ータを要求し、読出しオペレーションの場合にはチャネ
ルによるアテンションを要求し、(7)関連するハード
ウェアに書込み或いは読出しオペレーションの実行を開
始させ、(8)完了ステータスをチャネルに返却し、
(9)制御装置及びリソースのステータスを使用可能に
変更する。これらのステップはチャネルと制御装置間の
頻繁な相互作用を要求する。
【0004】System/370コンピュータ・システムの後の
バージョンはブロック・マルチプレクサ・チャネルの機
能及び各制御装置の機能を直接エミュレートする単一の
プログラムを代用する。このプログラムはマルチタスキ
ング・オペレーティング・システムにより実行され、ブ
ロック・マルチプレクサ・チャネルをエミュレートする
1つのタスクと各々の制御装置をエミュレートする別の
タスクを提供する。これらのタスクはブロック・マルチ
プレクサ・チャネル及び関連する制御装置を直接エミュ
レート可能であるため、単一の読出し或いは書込みオペ
レーションを実行する間に、チャネル・タスクと各制御
装置タスクの間における多数の "コンテキスト・スイッ
チ" を要求する相互作用が発生する。"コンテキスト・
スイッチ"はプロセッサ上においてあるタスクの実行が
停止され、別のタスクの実行が開始される時に発生す
る。各コンテキスト・スイッチに対応してかなりのオー
バーヘッドが費やされる。すなわち1つのタスクが実行
を停止し、関連するレジスタの内容を記録し、他のタス
クに対応するレジスタをロードする。このコンピュータ
・システムにおける書込みCCWの場合、チャネルがC
CWコマンドを制御装置にパスし、制御装置がチャネル
に初期ステータスを返却し、チャネルが初期ステータス
の受諾を制御装置に伝達し、制御装置がチャネルからデ
ータを要求し、制御装置が終了ステータスをチャネルに
提供する時に、コンテキスト・スイッチが要求される。
また書込み或いは読出しオペレーションが完了するのを
待機するために、チャネル・タスクによりかなりなプロ
セッサ時間が浪費される。
【0005】
【発明が解決しようとする課題】従って本発明の目的
は、オーバーヘッドを減少させ効率をより向上させる前
述のチャネル及び制御装置機能を達成する単一のチャネ
ル及び制御装置プログラムを有する入出力システムを提
供する。
【0006】
【課題を解決するための手段】本発明は入出力システム
内に内在し、主メモリと異なるタイプの装置との間のデ
ータ転送を効率的に制御する。入出力システムにはプロ
セッサ、プロセッサ上におけるプログラムの実行を制御
するマルチタスキング・オペレーティング・システム、
及びプロセッサ上で実行されるチャネル及び制御装置プ
ログラムが含まれる。プログラムは各コマンドの実行に
要求されるコンテキスト・スイッチの数、及び各タスク
に対する遅延を最小化するために以下で示されるよう
に、同一或いは別のタスク上で実行されるプログラム・
ルーチンに分割される。
【0007】複数の検査ルーチンが提供され検査ルーチ
ンが呼出される時に、複数のコマンドを検査する。各コ
マンドは特定のタイプの入出力オペレーション及び特定
のタイプの装置に対応し、主メモリに対する入出力オペ
レーションに関連する。各検査ルーチンは装置タイプ固
有及びコマンド・タイプ固有である。
【0008】汎用ルーチンはコマンドにより指定される
タイプの入出力オペレーション及び装置に対応する検査
ルーチンを識別及び呼出すことにより、各コマンドに最
初に応答する。入出力システムはまたDMA、或いは入
出力データ転送オペレーションを実際に実行する他の入
出力ハードウェアを含む。入出力ハードウェアは検査ル
ーチンがコマンドを確認後に開始される。
【0009】入出力ハードウェアは入出力オペレーショ
ン完了後に、装置固有のコマンド完了ルーチンにそのこ
とを通知する。それに応答してコマンド完了ルーチンは
汎用ルーチンに入出力オペレーションの状態を伝達す
る。各検査ルーチンは汎用ルーチンと同じタスク上にお
いて実行される。一方、コマンド完了ルーチンは汎用ル
ーチンとは異なるタスク上で実行される。その結果、汎
用ルーチンと検査ルーチンとの間でコンテキスト・スイ
ッチが要求されることはない。これによりコマンドが実
行されるスピードが最適化される。汎用ルーチンからコ
マンド完了ルーチンへのコンテキスト・スイッチが要求
されると、このコンテキスト・スイッチはDMAオペレ
ーションとオーバーラップされ、時間が浪費されること
はない。DMAオペレーションの後にまた、コマンド完
了ルーチンから汎用ルーチンへのコンテキスト・スイッ
チが要求される。データ転送が入出力ハードウェアによ
り実行される間に、コマンド完了ルーチン及び汎用ルー
チン共に待機することはない。
【0010】
【実施例】図を参照しながら説明すると、図中において
同一参照番号は同じ要素を示す。図1は本発明を含む一
般的なコンピュータ・システム10を表す。コンピュー
タ・システム10はこのコンピュータ・システムの主プ
ロセッサであり、周知のオペレーティング・システム1
3と共にユーザ・アプリケーション・プログラムを実行
する主プロセッサ11を含む。コンピュータ・システム
10はまた、3つの異なるタイプの外部装置18、1
9、20に入出力サービスを提供する入出力サブシステ
ム14を含む。入出力サブシステム14は入出力プロセ
ッサ15及びマルチタスキング・オペレーティング・シ
ステム17を含む。本発明によるチャネル及び制御装置
プログラム16は入出力プロセッサ15上で実行され
る。実施例ではオペレーティング・システム13はIBM
VM、VSE、MVS、AIX、或いはDPPX/370オペレーティング
・システムであり、主プロセッサ11及び入出力プロセ
ッサ14は標準のIBM System/370或いはSystem/390コン
ピュータ・システムのモデルES/9000 120から170により
提供される。例として、装置18は直接アクセス記憶装
置(DASD)、装置19はテープ、装置23はネット
ワークに相当する。
【0011】チャネル及び制御装置プログラム16は汎
用或いはチャネル・ルーチン20、制御装置CCW検査
ルーチン21、制御装置コマンド完了ルーチン22、及
びCCWテーブル28、29、33及びルーチン・アド
レス・テーブル38、39、43を含む。CCWテーブ
ル及びルーチン・アドレス・テーブルはチャネル・ルー
チン20が呼出す適切な制御装置CCW検査ルーチンを
識別するために使用される。図1(及びそれに続く図)
では3つのCCWテーブル28、29、33及び3つの
ルーチン・アドレス・テーブル38、39、43だけし
か表わされていないが、アクセスされる装置タイプにつ
きそれぞれ特有のテーブルが存在し、またこうした装置
にもいくつかのタイプが存在する。本発明に従い効率を
改善するために、チャネル・ルーチン20は制御装置C
CW検査ルーチンと同一のタスク上で実行され、制御装
置コマンド完了ルーチンはチャネル・ルーチン及び制御
装置CCW検査ルーチンとは異なるタスク上で実行され
る。また、チャネル・ルーチン20・プログラム・コー
ドの一例だけが示されており、この例は全ての制御装置
CCW検査ルーチン及びコマンド完了ルーチンに共通で
ある。
【0012】入出力サブシステム14は更に、主(或い
は"ブルー")バス41による主メモリの直接メモリ・ア
クセス(DMA)を実行可能とするための"ブルー(Blu
e)"・バス制御装置ハードウェア・インタフェース4
0、マイクロ・チャネル(R)(或いは装置バス)46
による装置メモリのDMAアクセスを可能とするマイク
ロ・チャネル(R)・バス制御装置ハードウェア・イン
タフェース44、及びプロセッサ・バス・インタフェー
ス48を含む。
【0013】装置18、19或いは23をアクセスする
ために、アプリケーション・プログラム12はオペレー
ティング・システム13に適切な書込み及び/或いは読
出しコールを発生し、オペレーティング・システム13
は標準のSystem/370或いはSystem/390アーキテクチャに
従い、主メモリ42内のチャネル・プログラム40を生
成する。例として、チャネル・プログラムは1つの制
御、1つの書込み、及び1つの読出しCCWをこの順序
で含む。チャネル制御プログラム内のCCWのタイプ及
び順序は装置18、19或いは23に対するアクセスの
タイプ及び順序をハイ・レベルで定義する。チャネル・
プログラムの生成におけるオペレーティング・システム
の機能は、Enterprise Systems Architecture/390 に述
べられている。オペレーション原理についてはIBM社
(ペンシルバニア州メカニクスブルグ)からの発行番号
SA22-7201 に記載されており、その第13章は本発明の
開示の一部として参照される。チャネル・プログラムは
それが開始される時に、オペレーティング・システム1
3によりチャネル・ルーチン20に伝達されるロケーシ
ョンに格納される。
【0014】チャネル・プログラムの生成の後、オペレ
ーティング・システム13は "サブチャネル開始" 命令
を発行することにより(図2のステップ110)、チャ
ネル・ルーチン20を呼出す。チャネル・ルーチンはア
クセスされる装置に従い、RAM51内の制御ブロック
112をアクセスする。この制御ブロックは装置タイプ
に対応するCCWテーブル28、29或いは33及びル
ーチン・アドレス・テーブル38、39或いは43に対
するポインタ、及びその装置に対応する制御装置メモリ
内のデータ・バッファ114及び制御ブロック113に
対するポインタを含む。命令内の情報及びチャネル・プ
ログラムはコマンド・タイプ、バイト長、データ・アド
レス情報、及びCCW内の他のパラメータにより、制御
ブロックを更新するために使用される。制御ブロックは
また、装置に対応して進行中のオペレーションの状態及
び制御装置ルーチンを格納し、前者は以前にチャネル・
ルーチンにより入力されている。以降で更に詳細に説明
されるように、制御装置はCCW検査ルーチン21及び
コマンド完了ルーチン22を含む。
【0015】呼出しに応答してチャネル・ルーチンは入
出力プロセッサ上で"共通タスク"として実行を開始さ
れ、事前状態チェックを実行する。事前状態チェックに
より、呼出し形式が有効か、チャネル・ルーチンが使用
可能か(すなわち別のチャネル・プログラムのためにビ
ジー状態でないか)、また制御装置及び装置が使用可能
かどうかが決定される(ステップ120)。これらのチ
ェックのどれか1つが否定されるとサブチャネル開始命
令は拒否される。しかしながら、チャネル・ルーチン及
びアドレスされるサブチャネルを仮定すると、すなわち
装置及び関連する制御装置タスクが使用可能であり呼出
し形式が有効であるとすると、チャネル・ルーチンはR
AM42内の所定のロケーションからチャネル・プログ
ラムの第1の(制御)CCWを読出す(ステップ13
0)。制御CCW(及び各その他のタイプのCCW)は
コマンド、データ・アドレス、バイト・カウント及びフ
ラグの各フィールドを含む。様々なタイプの制御コマン
ドが存在し、これらはコマンド・フィールドにより示さ
れる。"拡張定義"CCWは続く書込み或いは読出しCC
Wの実行の間にアクセスされるDASD(ディスク)装
置内のファイル或いはブロックの範囲を示す。"シーク
(seek)"CCWはアクセスされるシリンダ或いはトラ
ックを示し、"探索(search)"CCWはアクセスされる
レコードを示し、 "ロケート(locate)"CCWはアク
セスされるデータ・ブロックを示す。テープ・ドライブ
に対応して、"巻戻し(rewind)"CCWはテープがその
ロード位置に巻戻されなければならないことを示し、"
モードセット(modeset)" CCWはデータを記録する
際に使用する密度を示す。ネットワーク装置に対応して
"SYNC" CCWはホストが直ちに読出し或いは書込
みCCWを発行し、装置はCCWの受信準備を行うべき
ことを示し、"IWRITE"CCWは装置が非同期割込
みを生成すべき状態を示す。バイト・カウント・フィー
ルドはアプリケーション・プログラム或いはオペレーテ
ィング・システムが制御装置により呼出されるこのCC
Wに関連して格納した前述のデータ長を示し、データ・
アドレス・フィールドは主メモリ42内のこのデータの
ロケーションを示す。フラグ・フィールドはチャネル・
プログラム内に更にCCWが存在するかを示す。
【0016】図6はCCWテーブル28、29、33及
びルーチン・アドレス・テーブル38、39、43の詳
細を示す。それぞれのアドレスはアクセスされる装置に
従い制御ブロック112内に格納される。チャネル・ル
ーチンはCCWからのコマンド・タイプ情報を使用し、
CCWテーブル内の対応するコマンド固有の入力を識別
する。コマンド固有の入力にはチャネル・ルーチンが特
定の装置タイプ及びコマンド・タイプのためにプリフェ
ッチする必要のあるデータ長を示すバイト・カウント及
びルーチン・アドレス・テーブル38、39、43に対
する指標が含まれる。
【0017】ここでバイト・カウント・テーブルがゼロ
よりも大きいと仮定すると、チャネル・ルーチンは制御
ブロック112に格納されているCCWのデータ・アド
レス・フィールドにより指定される主メモリ・ロケーシ
ョンからデータをプリフェッチし、そのデータをバッフ
ァ114に格納する(ステップ140)。前述のオペレ
ーションは"プリフェッチ"と見なされる。なぜならデー
タはまだ実行されておらず、データを要求していない制
御装置のCCW検査ルーチンにより引続き使用されるか
らである。チャネル・ルーチンはCCWテーブル・コマ
ンド固有の入力の他のフィールドを指標として使用し、
対応するルーチン・アドレス・フィールドからそのコマ
ンド固有の入力を識別する(ステップ150)。
【0018】ルーチン・アドレス・テーブル内において
識別された入力は、CCW検査ルーチンが開始するRA
M51内のロケーションを指示する。図7はCCW検査
ルーチン21の多様性を示す。各CCW検査ルーチンは
サブチャネル/装置固有及びコマンド固有である。チャ
ネル・ルーチンは次にそのCCW検査ルーチンを呼出
し、適切なサブチャネル制御ブロック112のアドレス
をパラメータとしてパスする。
【0019】CCW検査ルーチンは制御装置ルーチンで
あるが、非効率的なコンテキスト・スイッチを避けるた
めに共通タスク上において実行される。ステップ160
においてCCW検査ルーチンはコマンドが制御装置が扱
うことのできるタイプであるかどうか、また制御装置が
CCWを処理するのに適切な状態であるか(すなわち使
用可能であるか)を決定する。次に固定ブロックDAS
Dタイプの装置に対応する制御装置が処理可能なCCW
タイプの例を示す。
【0020】Locate-アクセスされる最初のブロックを
識別する。 Define Extent-アクセスされるファイル或いはブロック
範囲を識別する。 Read Read IPL Write Basic Sense-エラー情報を要求する。 Read Device Characteristics Read and Reset Buffer Log-全エラー・ログの呼出しを
要求する。 Sense ID-装置タイプの識別を要求する。 Diagnostics
【0021】次にテープ装置に対応する制御装置が処理
可能なCCWのタイプの例を示す。
【0022】 Rewind Modeset Unload Erase Gap Write Tape Mark Backspace Block Backspace File Forward Space File Write Read Read Backward Basic Sense Sense ID
【0023】次にネットワークに対応する制御装置が処
理可能なCCWのタイプの例を示す。
【0024】 SYNC - データ同期 PWRITE - データ・パラメータの書込み SETCETI - CETIモードのセット IWRITE - 割込みパラメータの書込み IPREP - 割込みポートの準備 CWRITE - 制御ブロックの書込み DWRITE - データ・バッファの書込み CREAD - 制御ブロックの読出し DREAD - データ・バッファの読出し SENSE - センス・データの読出し SENSE ID - 識別の読出し
【0025】CCW検査ルーチンがCCWを受付けるた
めには、制御装置及び装置の両者が使用可能でなければ
ならない。通常、制御装置及び装置の両者は同じ状態を
示す。しかしながら、制御装置が(同じタイプの)複数
の装置をサービスする場合、装置の1つが使用可能とな
ると制御装置はビジー状態となる。また、いくつかの装
置はそれぞれの制御装置からの支援無しで機能を実行可
能であり、こうした場合にはそうした装置は制御装置が
使用可能な時でも、ビジー状態である可能性がある。制
御装置或いは装置の一方がビジー状態の場合、チャネル
・ルーチンはサブチャネルを後に再駆動し前述のステッ
プが繰返される。CCW検査ルーチンはCCWが受付け
可能なタイプであり、制御装置及び装置が両者共に使用
可能な時にステップ170を継続する。ステップ170
において、CCW検査ルーチンは制御装置の状態及び対
応する装置の状態を "このチャネル・プログラムにより
ビジー" に変更する。これはこうしたステータス情報を
それぞれの制御ブロック113に格納することにより実
施される。次にチャネル・ルーチンによりパスされたパ
ラメータ及びそれぞれのデータ・バッファ114内にプ
リフェッチされた制御データを使用することにより、C
CW検査ルーチンは制御コマンドを実行することが可能
となる。これは全ての制御CCWの制御データがプリフ
ェッチされたことを仮定とするが、ほとんどの制御CC
Wが小バイト・カウントを有するためにこれは通常のケ
ースに相当する。次にCCW検査ルーチンはチャネル・
ルーチンに復帰し、装置ステータスをパラメータとして
パスする(ステップ180)。"装置"ステータスはCC
W検査ルーチンがCCW受付けたかどうかを示し、もし
そうであれば、CCWに応答してCCW検査ルーチンは
活動を行う。ゼロの初期ステータスはコマンドが受付け
られたことを示し、チャネル終了及び装置終了の基本ス
テータスはコマンドがエラー無しで実行されたことを示
す。他のステータスについては以前に参照されたオペレ
ーション原理の中で説明されている。
【0026】次にチャネル・ルーチン信号はオペレーテ
ィング・システム13に、チャネル・プログラの実行を
開始したことを伝える(ステップ190)。この時点で
チャネル・プログラムの最初の(制御)CCWは、共通
タスクのコンテキストにおいてタスク・スイッチ或いは
コンテキスト・スイッチ無しで完全に実行されている。
【0027】最初のCCWからのフラグ・バイトの内容
にもとづき、共通タスク上でまだ実行されているチャネ
ル・ルーチンはチャネル・プログラムの実行を継続する
(ステップ190)。チャネル・ルーチンは先のCCW
に続き、制御ブロック112内に格納される主メモリ4
2のロケーションからチャネル・プログラムの次の(書
込み)CCWを読出す(ステップ200)。書込みCC
Wはコマンド、データ・アドレス、バイト・カウント及
びフラグの各フィールドを有する。バイト・カウント・
フィールドはこのCCWに従い、アプリケーション・プ
ログラムが主メモリ42に書込んだところの装置に書込
まれるデータのデータ長を示す。また、データ・アドレ
ス・フィールドはこのデータの主メモリ42内における
ロケーションを示す。(オペレーティング・システム1
3はアプリケーション・プログラムが書込もうとするデ
ータを2つ以上の書込みCCWの間で分割できる。)フ
ラグ・フィールドはチャネル・プログラム内に更にCC
Wが存在するかどうかを示す。チャネル・ルーチンは対
応するCCWテーブル及びルーチン・アドレス・テーブ
ルを識別する同じサブチャネル制御ブロック112のア
クセスを継続する。CCW内のコマンド・フィールドは
CCWテーブルから対応するコマンド固有入力を識別す
る。
【0028】コマンド固有入力はこの固有の装置タイプ
及びコマンド・タイプに対応して、チャネル・ルーチン
がプリフェッチする必要のあるデータのデータ長を示す
バイト・カウント、及びルーチン・アドレス・テーブル
に対する指標を含む。バイト・カウント・フィールドが
ゼロより大であると、チャネル・ルーチンはCCWのデ
ータ・アドレス・フィールドにより指示される主メモリ
・ロケーションからデータをプリフェッチし、このデー
タを制御ルーチンによりアクセスされるRAM51内の
それぞれのデータ・バッファ114内に格納する(ステ
ップ210)。この例ではCCWデータ・アドレスによ
りアドレスされる主メモリ42内のデータ・ブロックは
2つの部分を含み、比較的小量の制御データと装置に書
込まれるより大きなブロック・データを含む。制御デー
タは装置内の残りのデータの行先(ファイル、ブロッ
ク、トラック或いはレコード)を示すヘッダである。こ
れまでに制御データだけがプリフェッチされている。チ
ャネル・ルーチンはCCWテーブル入力の他のフィール
ドを、それぞれのルーチン・アドレス・フィールドから
コマンド固有の入力を識別するための指標として使用す
る(ステップ220)。それぞれのルーチン・アドレス
・テーブル入力はこの装置タイプ及び書込みCCWに対
応するCCW検査ルーチンのRAM51内におけるロケ
ーションを含む。チャネル・ルーチンは次にそのCCW
検査ルーチンを呼出し、適切なサブチャネル制御ブロッ
ク112のCCWアドレスをパラメータとしてパスする
(ステップ222)。
【0029】CCW検査ルーチンは制御装置の一部と見
なされるが、非効率的なコンテキスト・スイッチを避け
るために共通タスク上で実行される。ステップ230に
おいてCCW検査ルーチンは、このCCWが制御装置が
処理可能なタイプであるか、また制御装置及び装置の両
者が使用可能であるかにもとづき、コマンドを受付ける
べきかを決定する。(他の装置同様)装置18、19、
23は使用可能であるか、或いは書込みCCWを処理中
である。制御装置及び装置の両者は両者共にビジー状態
でないか、或いは両者共にこのチャネル・プログラムに
よりビジー状態である場合に使用可能である。ここでは
既に進行中のチャネル・プログラムの継続であるため、
制御装置及び装置の両者は使用可能である。CCWが受
付け可能なタイプである場合、CCW検査ルーチンはス
テップ240を続行する。ステップ240ではCCW検
査ルーチンはチャネル・ルーチンによりパスされたバイ
ト・カウント・パラメータを、CCWテーブル内に格納
されているバイト・カウントと比較し、主メモリからフ
ェッチされる追加の装置データが存在するかを決定す
る。表される例では追加の装置データが存在するため、
CCW検査ルーチンは初期ステータスのゼロ(書込みコ
マンドが受付けられたことを示す)を返却し、チャネル
・ルーチンから更にデータを要求し装置データを受信す
るために、装置18、19或いは23内の別のバッファ
・メモリのアドレスを提供する(ステップ250)。
【0030】書込みCCWの実行を最適化するために、
チャネル・ルーチンはブルー・バス・インタフェース制
御装置40及びマイクロ・チャネル(R)・インタフェ
ース制御装置44を、プロセッサ・バス・インタフェー
ス48を介して始動することにより、主メモリ42から
装置にデータを転送し(ステップ260)、それぞれの
装置タイプ固有のタスクにそれぞれのコマンド完了ルー
チンを実行するように通知(post)し、その後ルーチン
を抜ける。DMA開始のために要求されるパラメータ及
び制御装置40及び44については、図8−図10を参
照しながら以降で更に詳細に説明される。ステップ27
0で装置タイプ固有のタスクが実行され、この書込みC
CWにより最初にプリフェッチされた制御データを解析
する。この解析の間、装置タイプ固有タスクは残りのデ
ータに関連してどの活動が実行されるべきであるかを決
定する。例えばアクセスされる装置がネットワーク23
である場合、ヘッダはネットワーク上の特定の宛先装置
を示し、データのための情報及びプロトコルを経路指定
し、このヘッダはデータがネットワーク装置の制御装置
内の中間バッファに転送されている間に解析される。し
かしながら、DASD或いはテープ・タイプの装置18
或いは19の場合、一般に書込みCCWと共に制御デー
タは送信されない。従ってブルー・バス・インタフェー
ス制御装置40及びマイクロ・チャネル(R)・インタ
フェース制御装置44による主メモリから装置へのデー
タの転送は、もし制御データが存在する場合には制御デ
ータの実行及び解析と同時に発生する。装置へのデータ
転送の完了の後、ブルー・バス・インタフェース制御装
置は入出力プロセッサに割込みを発生し、装置タイプ固
有タスクの実行を再開する。また、コマンド完了ルーチ
ンは全てのデータがエラー無しで転送されたことを確認
することにより、書込みCCWの実行を完了する(ステ
ップ280)。
【0031】次にコマンド完了ルーチンはチャネル終了
及び装置終了の基本ステータスをそれぞれの制御ブロッ
ク112内に格納する。これにより(もし続いて実行さ
れる場合には)チャネル・ルーチンに対し、書込みオペ
レーションの実行が成功したことを示す(ステップ29
0)。次にコマンド完了ルーチンは共通タスクに通知
し、装置タイプ固有タスクを抜ける(ステップ29
2)。
【0032】チャネル・ルーチンは共通タスクの実行を
再開し、RAM42からチャネル・プログラムの次の
(読出し)CCWを読出す。読出しCCWはコマンド、
データ・アドレス、バイト・カウント及びフラグの各フ
ィールドを含む。バイト・カウント・フィールドはアプ
リケーション・プログラムが装置から読出そうとするデ
ータ量を示す。データ・アドレス・フィールドは読出さ
れるデータを格納する主メモリ42内におけるロケーシ
ョンを示す。フラグ・フィールドはチャネル・プログラ
ム内に更にCCWが存在するかどうかを示す。チャネル
・ルーチンは対応するCCWテーブル及びルーチン・ア
ドレス・テーブルを識別する同じサブチャネル制御ブロ
ック112のアクセスを継続する。チャネル・ルーチン
は読出しCCW内のコマンド・タイプを使用し、CCW
テーブルから対応するコマンド固有入力を識別する。
【0033】コマンド固有入力はバイト・カウントを含
み、読出しオペレーションの場合にはプリフェッチすべ
き制御データ或いは実際のデータが存在しないためにゼ
ロである。コマンド固有入力もまた、対応するルーチン
・アドレス・テーブルに対する指標を含む。バイト・カ
ウントはゼロであるため、チャネル・ルーチンは制御デ
ータ或いは実際のデータを主メモリからプリフェッチし
ようとしない。ルーチン・アドレス・テーブルに対する
指標は、アクセスされる装置タイプ及びコマンド・タイ
プに特定のCCW検査ルーチンを識別する。チャネルは
次にそのCCW検査ルーチンを呼出し、適切なサブチャ
ネル制御ブロック112のアドレスをパラメータとして
パスする(ステップ320)。
【0034】CCW検査ルーチンは制御装置の一部と見
なされるが、非効率的なコンテキスト・スイッチを避け
るために共通タスク上において実行される。ステップ3
30においてCCW検査ルーチンは、CCWが制御装置
及び装置が処理可能なタイプであるかどうか、また制御
装置及び装置の両者がこのチャネル・プログラムに対応
して使用可能かどうかもとづき、制御装置がコマンドを
受付けるべきかを決定する。装置18、19及び23は
(ほとんどの装置と同様に)読出しCCWを処理可能で
ある。これは既に進行中のチャネル・プログラムの継続
であるため、制御装置及び装置の両者は使用可能であ
る。CCWが受付けられるとCCW検査ルーチンはステ
ップ340を継続し、ここでCCW検査ルーチンはコマ
ンドの性質からデータが装置から主メモリ42に転送さ
れねばならないことを決定する。従ってデータを指定さ
れた主メモリ内のロケーションに転送する要求を返却す
る。
【0035】返却に応答してチャネル・ルーチンは装置
18、19或いは23から主メモリ42に対するデータ
転送を開始する。これはブルー・バス・インタフェース
制御装置40及びマイクロ・チャネル(R)・インタフ
ェース制御装置44を始動し、データ及びデータ長を受
信するための主メモリ42内のアドレスを提供すること
により実施される(ステップ350)。こうした転送は
一般に相当な時間を必要とするため、チャネル・ルーチ
ンは制御装置40及び44を始動後に共通タスクを抜け
出す(ステップ352)。本発明によれば、こうした脱
出は一般に共通タスクにデータ転送の完了を待機させる
よりもより効率的である。
【0036】装置から主メモリへのデータ転送が完了し
た後、ブルー・バス・インタフェース制御装置40は入
出力プロセッサに割込みを発生し、装置タイプ固有タス
ク内のコマンド完了ルーチンの実行を再開する。DMA
終了割込みハンドラ・ルーチンは割込みを扱い、DMA
の開始時にチャネル・ルーチンによりRAM51に格納
された情報にもとづき、通知すべき装置タイプ固有タス
クを認識する。コマンド完了ルーチンは全てのデータが
エラー無しに転送されたことを確認することにより、読
出しコマンドの実行を完了する(ステップ360)。コ
マンド完了ルーチンは(引き続き実行される)チャネル
・ルーチンに読出しオペレーションが成功したことを示
すために、チャネル終了及び装置終了の基本ステータス
をそれぞれの制御ブロック112に格納する。次にコマ
ンド完了ルーチンはコマンド・タスクに通知し、装置タ
イプ固有タスクを抜ける(ステップ372)。
【0037】チャネル・ルーチンは実行を再開し、チャ
ネル・ルーチンは制御ブロック112から読出しCCW
が成功したことを認識する。チャネル・ルーチンはま
た、制御ブロック112内に格納されているフラグ・フ
ィールド情報から、チャネル・プログラムの終わりに達
したことを認識する(380)。次にチャネル・ルーチ
ンは別の入力をルーチン・アドレス・フィールドから読
出す。この入力はルーチン・アドレス・テーブルに対す
る固定オフセットに配置され、制御装置固有の "オペレ
ーション完了" ルーチンのロケーションを示す(ステッ
プ390)。チャネル・ルーチンはステップ392でこ
のルーチンを呼出す。オペレーション完了ルーチンは共
通タスクのコンテキストにおいて実行され、オペレーシ
ョン処理の終了を提供する。こうした処理の間、オペレ
ーション完了ルーチンはオペレーションの終わりを認識
し(ステップ400)、次に制御ブロック112をリセ
ットすることにより、制御装置状態及び装置状態の両方
が使用可能であることを示す(ステップ410)。次に
オペレーション完了ルーチンはチャネル・ルーチンに復
帰する(ステップ420)。
【0038】チャネル・ルーチンは次にサブチャネル状
態をステータス保留にセットすることにより(ステップ
430)、チャネル・プログラムの実行が完了したこと
を示し、オペレーティング・システム13にチャネル・
プログラムが完了したことを通知し(ステップ43
2)、共通タスクを抜ける(ステップ434)。
【0039】ここで制御、書込み及び読出しCCWを含
む全チャネル・プログラムの実行は、ステップ292及
びステップ372の後においてのみ、クリティカルなパ
スにおけるコンテキスト・スイッチを要求した。ステッ
プ260及びステップ350の後のタスク・スイッチは
DMAデータ転送とオーバーラップされるため、チャネ
ル・プログラムの実行時間を増すことはない。これは最
初のIBM System/370コンピュータ・システムに関して前
述された従来技術における、各CCWを実行するために
要求されるそれぞれのクリティカル・パスにおける5回
のタスク・スイッチに比較して、飛躍的に効率を改善す
る。従来技術では物理チャネル及び制御装置を置換する
ために、統合チャネル及び制御装置プログラムを提供し
た。
【0040】図5は装置タイプ固有タスクが、CCWに
応答せずに装置自身により始動される装置制御装置から
の非同期要求をサービスする様子を表す。例えばテープ
制御装置は装置タイプ固有タスクに割込み発生し(ステ
ップ440)、非同期ステータスを装置タイプ固有タス
クに報告することにより、テープのマニュアル・ローデ
ィングに応答することができる。応答に際し装置タイプ
固有タスクはテープ制御装置からの報告を解析し(ステ
ップ450)、チャネル・ルーチンに対応する非同期ス
テータス情報を提供し(ステップ460)、次にタスク
を抜ける(ステップ470)。次にチャネル・ルーチン
は共通タスク上において実行を再開し、テープ制御装置
の非同期ステータスを記録し、オペレーティング・シス
テム13に入出力割込みを送信する(ステップ48
0)。これによりオペレーティング・システム13は、
テープのラベルを読すための読出しCCWを含むチャネ
ル・プログラムを生成することが可能となる。
【0041】別な例としてはコンピュータ端末タイプの
装置に関し、コンピュータ端末は装置タイプ固有タスク
に割込み発生し(ステップ440)、入力キーが押され
たことを装置タイプ固有タスクに報告することにより、
入力キーが押されたことに応答できる。それに応答して
装置タイプ固有タスクはその報告を解析し(ステップ4
50)、チャネル・ルーチンに対応する非同期ステータ
ス情報を提供し(ステップ460)タスクを抜ける(ス
テップ470)。次にチャネル・ルーチンは共通タスク
上で実行され、入出力割込みをオペレーティング・シス
テム13に送信する(ステップ480)。それによりオ
ペレーティング・システム13はキーボード入力を読出
すための読出しCCWを含むチャネル・プログラムを生
成することが可能となる。
【0042】図8、図9及び図10は入出力プロセッサ
・バス・インタフェース48、ブルー・バス・インタフ
ェース制御装置40、及びマイクロ・チャネル(R)・
インタフェース制御装置44の詳細についてをそれぞれ
表す。これらの制御装置は主メモリ42から装置18、
19或いは23内のメモリへのデータの書込み、及び装
置18、19或いは23内のメモリから主メモリ42へ
のデータの読出しによる直接メモリ・アクセスに関与す
る。
【0043】プロセッサ・バス・インタフェース48は
入出力プロセッサ15に対応するローカル・プロセッサ
・バス及びトランシーバ450−452を含む。上述の
ように入出力プロセッサ15・ルーチンに対応するチャ
ネルは、ステップ260において制御装置に書込みオペ
レーションの実行を開始させる。これにはチャネル・ル
ーチンが主メモリの開始アドレス及びバイト・カウント
を、ブルー・バス・インタフェース制御装置内のDMA
ポート制御ブロック502に書込むことが含まれる。ま
たチャネル・ルーチンはバイト・カウント同様、データ
をマイクロ・チャネル(R)・インタフェース制御装置
内のDMA制御レジスタ504に受信するために、装置
メモリの開始アドレスを制御装置に書込む。次にチャネ
ル・ルーチンはデータをバイパス・バス506からマイ
クロ・チャネル(R)・バス46に転送するために、コ
マンドをDMA制御レジスタ504に書込む。次にチャ
ネル・ルーチンはデータをブルー・バス41からバイパ
ス・バスに転送するために、DMAポート制御ブロック
502にコマンドを書込む。
【0044】ホスト・インタフェース制御ロジック51
0はコマンド、アドレス及びバイト・カウントをDMA
ポート制御ブロック502から読出し、主メモリからデ
ータをフェッチし、そのデータをブルー・バス・インタ
フェース制御装置内の2個のDMAポート・データ・バ
ッファ512に格納する。ホスト・インタフェース制御
ロジック510がデータをフェッチ及び格納する時、ホ
スト・インタフェース制御ロジックもまた、DMAポー
ト制御ブロック内のホスト・メモリ・アドレスをインク
リメントし、バイト・カウントをデクリメントする。D
MAポート・データ・バッファの1個がフル状態になる
と、ホスト・インタフェース制御ロジックは他のDMA
ポート・データ・バッファが空であるかをチェックす
る。もしそうであれば、ホスト・インタフェース制御ロ
ジックはこの他のDMAポート・データ・バッファを充
填する。両方のDMAポート・データ・バッファがフル
状態になると、ホスト・インタフェース制御ロジックは
一方が第45及び46段落に示すように空になるのを待
機する。
【0045】どちらかのDMAバッファがフル状態にな
ると、ブルー・バス・インタフェース内のバイパス・バ
ス・インタフェース制御論理516は、このデータをバ
イパス・バスに送信し、これによりデータはバイパス・
バスを介し、マイクロ・チャネル(R)・インタフェー
ス制御装置内のプロセッサ・インタフェース制御論理5
20に転送される。データが受信されると、このデータ
は2個のDMAデータ・バッファ522に格納される。
一方のDMAデータ・バッファがフル状態になると制御
論理は他のDMAデータ・バッファが空である場合に
は、これを充填する。そうでない場合は、制御論理52
0は一方のDMAデータ・バッファが空になる(バイト
・カウンタがゼロになる)のを待機する。これについて
次に説明する。
【0046】一方のDMAデータ・バッファがフル状態
になると、マイクロ・チャネル(R)・インタフェース
制御論理524は装置メモリ開始アドレス及びバイト・
カウントをDMA制御レジスタ504から読出し、DM
Aデータ・バッファからデータをフェッチし、このデー
タをターゲット装置18或いは19のメモリ内に格納す
る。制御論理524がデータをフェッチし格納する間、
制御論理524はDMA制御レジスタ内の装置メモリ・
アドレスをインクリメントし、バイト・カウントをデク
リメントする。DMAポート制御ブロック内のバイト・
カウントがゼロに達する(DMAデータ・バッファが空
になる)と、制御論理510は入出力サブシステム・プ
ロセッサ15に対し、割込み要求を生成する。入出力サ
ブシステム・プロセッサの割込みは、割込みハンドラの
実行を開始させる。割込みハンドラはブルー・バス・イ
ンタフェース制御装置内のDMAポート制御ブロック5
02から、ステータス情報及び残余バイト・カウント
を、またマイクロ・チャネル(R)・インタフェース制
御装置内のDMA制御レジスタ504からステータス情
報及び残余バイト・カウントを読出し、書込みオペレー
ションが成功したかを判断する。割込みハンドラは次に
ステップ280において、実行すべき適切な装置タイプ
固有タスクを通知し、書込みオペレーションが成功して
完了したことを示す。書込みオペレーションが成功しな
かった場合、割込みハンドラはステータス及びバイト・
カウント情報を装置タイプ固有タスクにパスする。
【0047】図4のステップ350ではチャネル・ルー
チンは読出しオペレーションを開始する。この開始の一
部として、チャネル・ルーチンはデータを受信するため
の主メモリの開始アドレス及びバイト・カウントを、ブ
ルー・バス・インタフェース制御装置内のDMAポート
制御ブロック502内に書込む。またチャネル・ルーチ
ンはデータが読出される装置メモリの開始アドレス及び
バイト・カウントを、マイクロ・チャネル(R)・イン
タフェース制御装置内のDMA制御レジスタ504内に
書込む。チャネル・ルーチンはまたデータをマイクロ・
チャネル(R)・バスからバイパス・バスに転送するた
めに、DMA制御レジスタ504内にコマンドを書込
み、更にデータをバイパス・バスからブルー・バスに転
送するためにDMAポート制御ブロック502内にコマ
ンドを書込む。
【0048】マイクロ・チャネル(R)・インタフェー
ス制御ロジック524はDMA制御レジスタ内に格納さ
れる装置メモリ・アドレス及びバイト・カウントにもと
づき、装置メモリからデータをフェッチし、データを2
個のDMAデータ・バッファ522内に格納する。制御
論理524がデータをフェッチして格納する間、制御論
理524はDMA制御レジスタ内の装置メモリ・アドレ
スをインクリメントし、バイト・カウントをデクリメン
トする。一方のDMAデータ・バッファがフル状態にな
ると、制御論理524は他のDMAデータ・バッファが
空の時にはそれを充填する。どちらのDMAデータ・バ
ッファも空でない場合は第50段落に示すように制御論
理524は一方が空になるのを待機する。
【0049】一方のDMAデータ・バッファがフル状態
になると、バイパス・バス/プロセッサ・インタフェー
ス制御論理520はこのデータをフェッチし、データを
バイパス・バスを介し、ブルー・バス・インタフェース
制御装置内のバイパス・バス・インタフェース制御論理
516に送信する。データを受信すると、バイパス・バ
ス・インタフェース制御論理516はデータをDMAポ
ート・データ・バッファ512内に格納する。
【0050】一方のDMAポート・データ・バッファ5
12がフル状態になると、ホスト・インタフェース制御
論理510はこのデータをフェッチし、データを主メモ
リ42内におけるDMAポート制御ブロック502に格
納されているアドレスに格納する。制御論理がこのデー
タをフェッチし格納すると、制御論理はDMAポート制
御ブロック内の主メモリ・アドレスをインクリメント
し、バイト・カウントをデクリメントする。DMAポー
ト制御ブロック内のバイト・カウントがゼロになる(D
MAデータ・バッファが空になる)と、制御論理510
は入出力サブシステム・プロセッサに割込み要求を生成
する。入出力サブシステム・プロセッサへの割込みは、
割込みハンドラに実行を開始させる。割込みハンドラは
ブルー・バス・インタフェース制御装置のDMAポート
制御ブロック502内のステータス情報及び残余バイト
・カウント、及びマイクロ・チャネル(R)・インタフ
ェース制御装置のDMA制御レジスタ504内のステー
タス情報及び残余バイト・カウントを読出し、読出しオ
ペレーションが成功したかを判断する。次に割込みハン
ドラは適切な装置タイプ固有タスクを通知し、読出しオ
ペレーションが成功して完了したことを示す。オペレー
ション完了ルーチンは図4のステップ360において実
行を開始される。読出しオペレーションが成功しなかっ
た場合、割込みハンドラはステータス及びバイト・カウ
ント情報を装置タイプ固有タスクにパスする。
【0051】前述のブルー・バス・インタフェース制御
装置内の構成要素に加え、優先ポート540が65バイ
トより少ない転送のために使用される。この機能は1個
のCCWを収容し、CCWをフェッチするためにチャネ
ル・ルーチンにより使用される。CCW転送はDMAポ
ート・データ・バッファ内のデータによっては遅延され
ない。優先ポートはまたCCWテーブル入力により指示
される即値データをプリフェッチするためにも使用され
る。
【0052】メッセージ・ポート・バッファ542は主
プロセサ11と入出力サブシステム・プロセッサとの間
の双方向の通信のために使用される。こうしたメッセー
ジはチャネル・プログラムを開始するサブチャネル開始
信号、及びチャネル・ルーチンからのチャネル・プログ
ラムが完了されたことを示す信号を含む。
【0053】タイマ544はエラー条件によりオペレー
ションが期待時間周期内に完了することが阻止される時
に、入出力サブシステム・プロセッサ15に対し割込み
発生するために使用される。
【0054】前述のマイクロ・チャネル(R)・インタ
フェース制御装置内の構成要素に加え、マイクロ・チャ
ネル(R)・プログラマブル・オプション選択(PO
S)2−7レジスタ552は、マイクロ・チャネル
(R)・バスのオペレーションの異なる特性及びモード
を定義する情報を格納し、マイクロ・チャネル(R)入
出力レジスタ554は制御装置と装置内の装置制御装置
との間のインタフェースを提供する。マイクロ・チャネ
ル(R)・POS IDレジスタ556はマイクロ・チ
ャネル(R)・バスに接続される他の装置のアダプタ・
タイプを識別する。データフロー制御論理558はマイ
クロ・チャネル(R)・バスとバイパス・バスの間のデ
ータのフローを制御する。これはバイト合せ、パリティ
生成及びパリティ・チェックを含む。マイクロ・チャネ
ル(R)調停論理560はマイクロ・チャネル(R)・
バスの制御のための調停を行う。
【0055】前述の内容にもとづき、本発明を実施する
コンピュータ・システムが開示された。しかしながら、
本発明の範中を逸脱することなく様々な変更及び置換え
が可能である。例えば本発明はチャネル・プログラムに
頼るのではなく、その代用としてアプリケーション・プ
ログラムからチャネル・ルーチンにコマンドをパスする
コンピュータ・システムにおいても有効である。また本
発明は40及び44などのDMAハードウェアを有さず
に、主プロセッサと装置制御装置と共に補助的に機能し
てデータ転送を実行する他のハードウェアを有するコン
ピュータ・システムにおいても有効である。従って本発
明は図を参照して説明されたがこれに限るものではく、
その範中は特許請求の範囲において規定される。
【0056】
【発明の効果】以上説明したように本発明によれば、入
出力システムにおいてオーバーヘッドを減少させ、効率
をより向上させるチャネル及び制御装置機能を達成する
単一のチャネル及び制御装置プログラムを有する入出力
システムが提供される。
【図面の簡単な説明】
【図1】本発明によるチャネル及び制御装置プログラム
を実行する入出力プロセッサを含む入出力サブシステム
を有するホスト或いは主コンピュータのブロック図であ
る。
【図2】ホスト・アプリケーション・プログラム及び図
1のチャネル及び制御装置プログラムの共通タスク及び
装置タイプ固有タスクのオペレーションを表す流れ図で
ある。
【図3】ホスト・アプリケーション・プログラム及び図
1のチャネル及び制御装置プログラムの共通タスク及び
装置タイプ固有タスクのオペレーションを表す流れ図で
ある。
【図4】ホスト・アプリケーション・プログラム及び図
1のチャネル及び制御装置プログラムの共通タスク及び
装置タイプ固有タスクのオペレーションを表す流れ図で
ある。
【図5】ホスト・アプリケーション・プログラム及び図
1のチャネル及び制御装置プログラムの共通タスク及び
装置タイプ固有タスクのオペレーションを表す流れ図で
ある。
【図6】図2のチャネル及び制御装置プログラムにより
使用され、3つの異なる外部装置に入出力サービスを提
供する3つのCCWテーブル及びそれぞれのルーチン・
アドレス・テーブルを表す図である。
【図7】チャネル及び制御装置プログラムの一部であ
り、図6のルーチン・アドレス・テーブルによりアドレ
スされる制御装置ルーチンを表す図である。
【図8】図1のプロセッサ・バス・インタフェースの詳
細ブロック図である。
【図9】主メモリのDMAアクセスを可能とする図1の
入出力サブシステムのブルー(或いはホスト)・バス・
インタフェース制御装置の詳細ブロック図である。
【図10】デバイス・メモリのDMAアクセスを可能と
する図1の入出力サブシステムのマイクロ・チャネル
(R)(或いはデバイス)・バス・インタフェース制御
装置の詳細ブロック図である。
【符号の説明】
21 制御装置CCW検査ルーチン 22 制御装置コマンド完了ルーチン 40 ブルー(Blue)バス制御装置ハードウェア・
インタフェース 42、51 RAM 44 マイクロ・チャネル(R)・バス制御装置ハード
ウェア・インタフェース 502 DMAポート制御ブロック 504 DMA制御レジスタ 506 バイパス・バス 510 ホスト・インタフェース制御ロジック 512 DMAポート・データ・バッファ 516 バイパス・バス・インタフェース制御論理 520 プロセッサ・インタフェース制御論理 522 DMAデータ・バッファ 524 マイクロ・チャネル(R)・インタフェース制
御論理 540 優先ポート 542 メッセージ・ポート・バッファ 552 マイクロ・チャネル(R)・プログラマブル・
オプション選択(POS)2−7レジスタ 554 マイクロ・チャネル(R)入出力レジスタ 556 マイクロ・チャネル(R)・POS IDレジ
スタ 558 データフロー制御論理 560 マイクロ・チャネル(R)調停論理
───────────────────────────────────────────────────── フロントページの続き (72)発明者 デビッド・リー・ドッシュ アメリカ合衆国13732、ニューヨーク州 アパラチン、ウエスト・グラン・ロード 36 (72)発明者 カールヘインズ・ダッカ ドイツ国デッケンフロン、ディ−7269、 シルケストラッセ 20 (72)発明者 ウェイン・リチャード・ロングコア アメリカ合衆国48854、ミシガン州メイ ソン、サウス・カレッジ・ロード 640

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】主メモリと複数のタイプの装置のそれぞれ
    における複数の装置メモリとの間の転送を制御する入出
    力システムであって、 プロセッサと、 前記プロセッサ上におけるプログラムの実行を制御する
    マルチタスキング・オペレーティング・システムと、 呼出し時に各々が特定のタイプの入出力オペレーショ
    ン、及び前記主メモリとの入出力オペレーションに関与
    する特定の装置に対応する複数のコマンドを検査する、
    前記プロセッサにより実行可能であり、装置タイプ固有
    及びコマンド・タイプ固有である複数の第1のプログラ
    ム手段と、 前記プロセッサ上で実行可能であり、前記コマンドに応
    答し、コマンドにより指定される入出力オペレーション
    ・タイプ及び装置タイプに対応する前記第1のプログラ
    ム手段を識別、及び呼出す第2のプログラム手段と、 前記第1のプログラム手段が前記コマンドを検査後に始
    動される前記入出力オペレーションを実行するハードウ
    ェア手段と、 前記プロセッサ上で実行可能であり、前記ハードウェア
    手段が前記入出力オペレーションの実行を完了した後
    に、前記第2のプログラム手段に前記入出力オペレーシ
    ョンの状態を通知するために前記ハードウェア手段によ
    り通知される第3のプログラム手段とを備え、 各前記複数の第1のプログラム手段は前記第2のプログ
    ラム手段と同一のタスク上で実行され、前記第3のプロ
    グラム手段は前記第2のプログラム手段と異なるタスク
    上で実行されることを特徴とする入出力システム。
  2. 【請求項2】前記第3のプログラム手段は前記装置から
    発生する割込み状態を扱うことを特徴とする請求項1記
    載の入出力システム。
  3. 【請求項3】各前記第1のプログラム手段は状態及びシ
    ーケンスのチェックを実行することを特徴とする請求項
    1記載の入出力システム。
  4. 【請求項4】前記第2のプログラム手段は前記第1のプ
    ログラム手段が前記コマンドを検査後に、前記ハードウ
    ェア手段を始動することを特徴とする請求項1記載の入
    出力システム。
JP5005567A 1992-03-02 1993-01-18 入出力システム Expired - Lifetime JP2565632B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US844358 1992-03-02
US07/844,358 US5388219A (en) 1992-03-02 1992-03-02 Efficient channel and control unit for host computer

Publications (2)

Publication Number Publication Date
JPH0683749A JPH0683749A (ja) 1994-03-25
JP2565632B2 true JP2565632B2 (ja) 1996-12-18

Family

ID=25292499

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5005567A Expired - Lifetime JP2565632B2 (ja) 1992-03-02 1993-01-18 入出力システム

Country Status (3)

Country Link
US (1) US5388219A (ja)
EP (1) EP0558926A1 (ja)
JP (1) JP2565632B2 (ja)

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0453863A2 (en) * 1990-04-27 1991-10-30 National Semiconductor Corporation Methods and apparatus for implementing a media access control/host system interface
US5666523A (en) * 1994-06-30 1997-09-09 Microsoft Corporation Method and system for distributing asynchronous input from a system input queue to reduce context switches
US5864712A (en) * 1995-03-17 1999-01-26 Lsi Logic Corporation Method and apparatus for controlling (N+I) I/O channels with (N) data managers in a homogenous software programmable environment
EP0732659B1 (en) * 1995-03-17 2001-08-08 LSI Logic Corporation Controlling (n+i) I/O channels with (n) data managers in a homogeneous software programming environment
US5615392A (en) * 1995-05-05 1997-03-25 Apple Computer, Inc. Method and apparatus for consolidated buffer handling for computer device input/output
US5659749A (en) * 1995-05-08 1997-08-19 National Instruments Corporation System and method for performing efficient hardware context switching in an instrumentation system
US5619644A (en) * 1995-09-18 1997-04-08 International Business Machines Corporation Software directed microcode state save for distributed storage controller
JP2001514778A (ja) * 1997-03-13 2001-09-11 マーク・エム・ホイットニー メッセージ・キューイング・ファシリティを含むネットワーク・トランザクションをメインフレームからインテリジェントな入出力装置にオフロードするシステム及び方法
US8782199B2 (en) * 1997-10-14 2014-07-15 A-Tech Llc Parsing a packet header
US6298431B1 (en) * 1997-12-31 2001-10-02 Intel Corporation Banked shadowed register file
US6134645A (en) * 1998-06-01 2000-10-17 International Business Machines Corporation Instruction completion logic distributed among execution units for improving completion efficiency
US6170023B1 (en) * 1998-10-07 2001-01-02 International Business Machines Corporation System for accessing an input/output device using multiple addresses
US6185638B1 (en) * 1998-10-07 2001-02-06 International Business Machines Corporation Method and system for dynamically assigning addresses to an input/output device
US6324599B1 (en) * 1999-01-11 2001-11-27 Oak Technology Computer system and method for tracking DMA transferred data within a read-ahead local buffer without interrupting the host processor
US6105076A (en) * 1999-04-23 2000-08-15 International Business Machines Corporation Method, system, and program for performing data transfer operations on user data
US6986137B1 (en) * 1999-09-28 2006-01-10 International Business Machines Corporation Method, system and program products for managing logical processors of a computing environment
US6651125B2 (en) * 1999-09-28 2003-11-18 International Business Machines Corporation Processing channel subsystem pending I/O work queues based on priorities
US6557055B1 (en) 1999-10-06 2003-04-29 Apple Computer, Inc. Adaptive throughput optimization
US6510448B1 (en) * 2000-01-31 2003-01-21 Networks Associates Technology, Inc. System, method and computer program product for increasing the performance of a proxy server
JP2002041445A (ja) * 2000-05-19 2002-02-08 Matsushita Electric Ind Co Ltd 高性能dmaコントローラ
GB2411751A (en) * 2002-04-25 2005-09-07 Livedevices Ltd Improvements relating to reduced-overhead context-saving in static priority scheduled operating systems
US7117501B2 (en) * 2002-11-21 2006-10-03 International Business Machines Corporation Application-level access to kernel input/output state
EP1702250B1 (de) * 2003-12-30 2009-07-08 Wibu-Systems AG Verfahren zum steuern eines datenverarbeitungsgeräts
DE102005026256A1 (de) * 2005-06-08 2006-12-14 OCé PRINTING SYSTEMS GMBH Verfahren zum Durchführen des Datentransfers zwischen Programmelementen eines Prozesses, Puffer Objekt zum Durchführen des Datentransfers, sowie Drucksystem
US7580040B2 (en) * 2005-11-10 2009-08-25 Via Technologies, Inc. Interruptible GPU and method for processing multiple contexts and runlists
US7539790B1 (en) * 2005-11-15 2009-05-26 3Par, Inc. Reducing latency in SCSI protocol
US7500023B2 (en) * 2006-10-10 2009-03-03 International Business Machines Corporation Facilitating input/output processing by using transport control words to reduce input/output communications
US7502873B2 (en) * 2006-10-10 2009-03-10 International Business Machines Corporation Facilitating access to status and measurement data associated with input/output processing
US8214562B2 (en) * 2008-02-14 2012-07-03 International Business Machines Corporation Processing of data to perform system changes in an input/output processing system
US7941570B2 (en) 2008-02-14 2011-05-10 International Business Machines Corporation Bi-directional data transfer within a single I/O operation
US8196149B2 (en) * 2008-02-14 2012-06-05 International Business Machines Corporation Processing of data to determine compatability in an input/output processing system
US8082481B2 (en) * 2008-02-14 2011-12-20 International Business Machines Corporation Multiple CRC insertion in an output data stream
US8312189B2 (en) * 2008-02-14 2012-11-13 International Business Machines Corporation Processing of data to monitor input/output operations
US8117347B2 (en) 2008-02-14 2012-02-14 International Business Machines Corporation Providing indirect data addressing for a control block at a channel subsystem of an I/O processing system
US8108570B2 (en) * 2008-02-14 2012-01-31 International Business Machines Corporation Determining the state of an I/O operation
US8001298B2 (en) * 2008-02-14 2011-08-16 International Business Machines Corporation Providing extended measurement data in an I/O processing system
US7904605B2 (en) * 2008-02-14 2011-03-08 International Business Machines Corporation Computer command and response for determining the state of an I/O operation
US8478915B2 (en) * 2008-02-14 2013-07-02 International Business Machines Corporation Determining extended capability of a channel path
US8166206B2 (en) * 2008-02-14 2012-04-24 International Business Machines Corporation Cancel instruction and command for determining the state of an I/O operation
US7899944B2 (en) * 2008-02-14 2011-03-01 International Business Machines Corporation Open exchange limiting in an I/O processing system
US7908403B2 (en) * 2008-02-14 2011-03-15 International Business Machines Corporation Reserved device access contention reduction
US7937507B2 (en) * 2008-02-14 2011-05-03 International Business Machines Corporation Extended measurement word determination at a channel subsystem of an I/O processing system
US7917813B2 (en) * 2008-02-14 2011-03-29 International Business Machines Corporation Exception condition determination at a control unit in an I/O processing system
US7840717B2 (en) * 2008-02-14 2010-11-23 International Business Machines Corporation Processing a variable length device command word at a control unit in an I/O processing system
US8176222B2 (en) * 2008-02-14 2012-05-08 International Business Machines Corporation Early termination of an I/O operation in an I/O processing system
US7890668B2 (en) * 2008-02-14 2011-02-15 International Business Machines Corporation Providing indirect data addressing in an input/output processing system where the indirect data address list is non-contiguous
US8095847B2 (en) * 2008-02-14 2012-01-10 International Business Machines Corporation Exception condition handling at a channel subsystem in an I/O processing system
US9052837B2 (en) 2008-02-14 2015-06-09 International Business Machines Corporation Processing communication data in a ships passing condition
US8055807B2 (en) * 2008-07-31 2011-11-08 International Business Machines Corporation Transport control channel program chain linking including determining sequence order
US7904606B2 (en) * 2008-07-31 2011-03-08 International Business Machines Corporation Transport control channel program chain linked branching
US7937504B2 (en) * 2008-07-31 2011-05-03 International Business Machines Corporation Transport control channel program message pairing
US8332542B2 (en) * 2009-11-12 2012-12-11 International Business Machines Corporation Communication with input/output system devices
US8738811B2 (en) 2011-06-01 2014-05-27 International Business Machines Corporation Fibre channel input/output data routing system and method
US9021155B2 (en) 2011-06-01 2015-04-28 International Business Machines Corporation Fibre channel input/output data routing including discarding of data transfer requests in response to error detection
US8364853B2 (en) 2011-06-01 2013-01-29 International Business Machines Corporation Fibre channel input/output data routing system and method
US8583988B2 (en) 2011-06-01 2013-11-12 International Business Machines Corporation Fibre channel input/output data routing system and method
US8364854B2 (en) 2011-06-01 2013-01-29 International Business Machines Corporation Fibre channel input/output data routing system and method
US8677027B2 (en) 2011-06-01 2014-03-18 International Business Machines Corporation Fibre channel input/output data routing system and method
US8473641B2 (en) 2011-06-30 2013-06-25 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8312176B1 (en) 2011-06-30 2012-11-13 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8346978B1 (en) 2011-06-30 2013-01-01 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8549185B2 (en) 2011-06-30 2013-10-01 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
WO2013179402A1 (ja) * 2012-05-29 2013-12-05 富士通株式会社 制御システム、制御方法、及びプログラム
US9971710B2 (en) 2013-02-07 2018-05-15 Microsoft Technology Licensing, Llc Optimizing data transfers between heterogeneous memory arenas
US8918542B2 (en) 2013-03-15 2014-12-23 International Business Machines Corporation Facilitating transport mode data transfer between a channel subsystem and input/output devices
US8990439B2 (en) 2013-05-29 2015-03-24 International Business Machines Corporation Transport mode data transfer between a channel subsystem and input/output devices
CN113190349B (zh) * 2021-04-29 2023-09-01 汕头大学 主机任务异步执行的方法、系统及计算机存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4868734A (en) * 1984-04-30 1989-09-19 Unisys Corp. Variable rate improvement of disc cache subsystem
US4453209A (en) * 1980-03-24 1984-06-05 International Business Machines Corporation System for optimizing performance of paging store
JPS59148919A (ja) * 1983-02-14 1984-08-25 Hitachi Ltd チャネル制御方式
US4587628A (en) * 1983-12-05 1986-05-06 International Business Machines Corporation Method and apparatus for dynamic invocation of utilities
USH696H (en) * 1984-07-03 1989-10-03 Cpt Corporation System for accessing shared resource device by intelligent user devices
JPH0644251B2 (ja) * 1986-08-28 1994-06-08 日本電気株式会社 デ−タ処理装置
US5060142A (en) * 1988-05-20 1991-10-22 Menon Moothedath J System which matches a received sequence of channel commands to sequence defining rules for predictively optimizing peripheral subsystem operations
US5063494A (en) * 1989-04-12 1991-11-05 Unisys Corporation Programmable data communications controller
US5170471A (en) * 1989-06-09 1992-12-08 International Business Machines Corporation Command delivery for a computing system for transferring data between a host and subsystems with busy and reset indication

Also Published As

Publication number Publication date
US5388219A (en) 1995-02-07
JPH0683749A (ja) 1994-03-25
EP0558926A1 (en) 1993-09-08

Similar Documents

Publication Publication Date Title
JP2565632B2 (ja) 入出力システム
US5613163A (en) Method and system for predefined suspension and resumption control over I/O programs
US5517670A (en) Adaptive data transfer channel employing extended data block capability
US4888691A (en) Method for disk I/O transfer
US5530845A (en) Storage control subsystem implemented with an application program on a computer
US7899944B2 (en) Open exchange limiting in an I/O processing system
US20080043563A1 (en) Flexibly controlling the transfer of data between input/output devices and memory
US6145015A (en) Multimedia data transferring method
US5548788A (en) Disk controller having host processor controls the time for transferring data to disk drive by modifying contents of the memory to indicate data is stored in the memory
US5937200A (en) Using firmware to enhance the functionality of a controller
US5062042A (en) System for managing data which is accessible by file address or disk address via a disk track map
JPH06168179A (ja) 非同期コプロセッサによるデータ移動方法および装置
US5590376A (en) Apparatus and method for detecting and updating status of removable storage system using shared interrupt and software flag
JP2011529589A (ja) チェーン・リンク分岐を有するトランスポート制御チャネル・プログラムを処理するための方法、コンピュータ・プログラム及び装置
US5371857A (en) Input/output interruption control system for a virtual machine
US5003468A (en) Guest machine execution control system for virutal machine system
US5734918A (en) Computer system with an input/output processor which enables direct file transfers between a storage medium and a network
GB2388934A (en) System for detecting runt block data transfers
JPS593787B2 (ja) ダイレクト・アクセス記憶装置用コマンドの実行方式
JP2877095B2 (ja) マルチプロセッサシステム
JP2630198B2 (ja) 周辺装置用同報型バスインタフェース
JP3526700B2 (ja) 複合計算機システム
JP3261665B2 (ja) データ転送方法及びデータ処理システム
JP2000163354A (ja) データ処理システム及びディスク制御装置
JPH076133A (ja) データ転送方法及びデータ処理システム