JPS62542B2 - - Google Patents
Info
- Publication number
- JPS62542B2 JPS62542B2 JP1348982A JP1348982A JPS62542B2 JP S62542 B2 JPS62542 B2 JP S62542B2 JP 1348982 A JP1348982 A JP 1348982A JP 1348982 A JP1348982 A JP 1348982A JP S62542 B2 JPS62542 B2 JP S62542B2
- Authority
- JP
- Japan
- Prior art keywords
- input
- output
- channel
- queue
- activation
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/122—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware performs an I/O function other than control of data transfer
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
Description
【発明の詳細な説明】
本発明は入出力制御装置に関する。情報処理装
置が周辺の入出力デバイス例えば磁気デスク、テ
レタイプ、ラインプリンタ等に対してデータの入
出力を行なう場合には、これらデータの入出力は
入出力制御装置を介して行なわれる。
置が周辺の入出力デバイス例えば磁気デスク、テ
レタイプ、ラインプリンタ等に対してデータの入
出力を行なう場合には、これらデータの入出力は
入出力制御装置を介して行なわれる。
一般に、入出力制御装置は複数のチヤンネルを
有し、さらにこれら各チヤンネルには複数のデバ
イスが割当てられている。
有し、さらにこれら各チヤンネルには複数のデバ
イスが割当てられている。
従つて、中央処理装置CPUがある特定のデバ
イスに対してデータの入出力を行なう場合には、
CPUはそのデバイスの属するチヤンネル番号
と、そのデバイスのデバイス番号とを指定してデ
ータの入出力を行なう。
イスに対してデータの入出力を行なう場合には、
CPUはそのデバイスの属するチヤンネル番号
と、そのデバイスのデバイス番号とを指定してデ
ータの入出力を行なう。
このように複数のチヤンネルが存在し、各チヤ
ンネルが複数のデバイスに共通に使用され、さら
にまた各デバイスの動作速度が、CPUの動作速
度に比較して一般に遥かに遅いため、CPUがこ
れらのデバイスに対してデータの入出力を行なう
場合には、これらの点を考慮し一般に下記のよう
に行なわれる。
ンネルが複数のデバイスに共通に使用され、さら
にまた各デバイスの動作速度が、CPUの動作速
度に比較して一般に遥かに遅いため、CPUがこ
れらのデバイスに対してデータの入出力を行なう
場合には、これらの点を考慮し一般に下記のよう
に行なわれる。
CPU(CPUのオペレーシヨンプログラム)
は、まず、この入出力デバイスが従うべき入出力
動作の詳細を規定したチヤンネルプログラムを作
成し、これを主記憶装置中の特定のメモリアドレ
スに格納する。つぎに、入出力制御装置に対し入
出力命令を指令する。この入出力命令は、これが
入出力命令であることを指定するオペコードと、
入出力を実行すべきデバイスの属するチヤンネル
番号と、このデバイスのデバイス番号と、さらに
主記憶装置中における上述のチヤンネルプログラ
ムの格納開始番地を示す情報とを含んでいる。
は、まず、この入出力デバイスが従うべき入出力
動作の詳細を規定したチヤンネルプログラムを作
成し、これを主記憶装置中の特定のメモリアドレ
スに格納する。つぎに、入出力制御装置に対し入
出力命令を指令する。この入出力命令は、これが
入出力命令であることを指定するオペコードと、
入出力を実行すべきデバイスの属するチヤンネル
番号と、このデバイスのデバイス番号と、さらに
主記憶装置中における上述のチヤンネルプログラ
ムの格納開始番地を示す情報とを含んでいる。
この入出力命令の指令を受けると、入出力制御
装置は直ちに指定されたチヤンネルおよびデバイ
スの現在の状態をチエツクし、そのチエツク結果
をコンデシヨンコードとしてCPUにリポートす
る。
装置は直ちに指定されたチヤンネルおよびデバイ
スの現在の状態をチエツクし、そのチエツク結果
をコンデシヨンコードとしてCPUにリポートす
る。
このコンデシヨンコードCCは、例えば4段階
の異なる状態を区別して表示する。
の異なる状態を区別して表示する。
CC=0は指定されたチヤンネル、サブチヤン
ネルおよびデバイスが、現在この入出力命令を実
行できる状態にあり、従つてこの入出力命令は直
ちに実行開始されることを表示する。
ネルおよびデバイスが、現在この入出力命令を実
行できる状態にあり、従つてこの入出力命令は直
ちに実行開始されることを表示する。
CC=1は現在デバイスが割込保留中または使
用中であることを表示し、CC=2は現在このチ
ヤンネルまたはサブチヤンネルが使用中(ビジー
状態)または割込保留中であることを表示する。
用中であることを表示し、CC=2は現在このチ
ヤンネルまたはサブチヤンネルが使用中(ビジー
状態)または割込保留中であることを表示する。
また、CC=3は指定されたチヤンネル、サブ
チヤンネルまたはデバイスが現在障害状態にある
とかまたは実際に存在しないとかの理由のため入
出力動作の実行が不可能であることを表示する。
チヤンネルまたはデバイスが現在障害状態にある
とかまたは実際に存在しないとかの理由のため入
出力動作の実行が不可能であることを表示する。
さて、前記CC=0のリポートを発生した場合
には、入出力制御装置は直ちに主記憶装置中の指
定された番地から前記チヤンネルプログラムを順
番に読み出し、それに従つて指令された入出力動
作の実行を開始する。
には、入出力制御装置は直ちに主記憶装置中の指
定された番地から前記チヤンネルプログラムを順
番に読み出し、それに従つて指令された入出力動
作の実行を開始する。
一方、CC=0のリポートを受けたCPUは、そ
れによりこの入出力命令が成功したことを識別
し、実際の入出力動作の実行は入出力制御装置に
任せ、CPU自身は次のプログラムの実行に進
む。このようにして、比較的長時間を必要とする
入出力命令の実行をCPUのプログラムから入出
力制御装置の制御にうつし、これによつて入出力
命令のCPUプログラムに対するオーバーヘツド
を軽減している。
れによりこの入出力命令が成功したことを識別
し、実際の入出力動作の実行は入出力制御装置に
任せ、CPU自身は次のプログラムの実行に進
む。このようにして、比較的長時間を必要とする
入出力命令の実行をCPUのプログラムから入出
力制御装置の制御にうつし、これによつて入出力
命令のCPUプログラムに対するオーバーヘツド
を軽減している。
一方また、CC=3がCPUにリポートされた場
合には、いずれにしてもこの入出力命令の実行は
不可能であるため、CPUのプログラムはこの入
出力命令をこれ以上くりかえすことなく、次のプ
ログラムに進むことができる。
合には、いずれにしてもこの入出力命令の実行は
不可能であるため、CPUのプログラムはこの入
出力命令をこれ以上くりかえすことなく、次のプ
ログラムに進むことができる。
これに対し、CC=1またはCC=2がリポート
された場合には、CPUのプログラムはこれによ
り入出力命令の一時的な実行失敗を識別し、適当
な時間をおいて再び同じ入出力命令の実行を指令
する。
された場合には、CPUのプログラムはこれによ
り入出力命令の一時的な実行失敗を識別し、適当
な時間をおいて再び同じ入出力命令の実行を指令
する。
このように、従来装置において入出力命令が一
時的に実行に失敗した場合には、CPUのプログ
ラムはこれに対して適当な処理をほどこし、再び
同じ入出力命令の実行を指令しなければならな
い。これは入出力命令の実行に対しそれだけ
CPUプログラムに対するオーバーヘツドを増大
するという欠点を有している。
時的に実行に失敗した場合には、CPUのプログ
ラムはこれに対して適当な処理をほどこし、再び
同じ入出力命令の実行を指令しなければならな
い。これは入出力命令の実行に対しそれだけ
CPUプログラムに対するオーバーヘツドを増大
するという欠点を有している。
本発明の目的は上述の従来の欠点を除去した入
出力制御装置を提供するにある。
出力制御装置を提供するにある。
本発明の装置は中央処理装置と主記憶装置とチ
ヤンネル制御装置と複数のチヤンネルと複数の入
出力デバイスとを含む情報処理装置において、前
記各チヤンネル対応に設けられ該チヤンネルごと
に作られる入出力命令待行列の先頭に登録された
前記デバイスのデバイス番号に関する情報を含む
複数の待行列ヘツダテーブル手段と、前記各デバ
イス対応に設けられ対応するデバイスが前記待行
列に登録されているか否かに関する情報と前記主
記憶装置中に格納されたこのデバイスに対する入
出力命令の格納開始番地に関する情報と前記待行
列中における次の順番のデバイスの有無に関する
情報とこれが有る場合に該デバイスのデバイス番
号に関する情報とを含む複数の入出力待行列連結
テーブル手段と、前記各チヤンネル対応に設けら
れ前記各待行列中で入出力命令の起動を待つ入出
力デバイスの有無を示す入出力命令起動待表示手
段と前記各チヤンネル対応に設けられ前記入出力
命令起動の禁止を示す入出力命令起動禁止表示手
段とを含み、前記中央処理装置から入出力命令を
受けた前記チヤンネル制御装置は前記入出力命令
により指定されたチヤンネル番号およびデバイス
番号により対応する前記ヘツダテーブル手段およ
び前記連結テーブル手段の内容を参照しこれを用
いて前記待行列を作成し前記起動待表示手段をセ
ツトし任意のチヤンネルがアイドル状態になつた
ときに該チヤンネルは対応する前記起動待表示手
段と前記起動禁止表示手段との表示を参照し前記
制御装置に割込みを発生しこれに応答して前記制
御装置は対応するチヤンネルの前記待行列を参照
し待行列中に登録されたデバイスに対する入出力
命令の起動を開始する。
ヤンネル制御装置と複数のチヤンネルと複数の入
出力デバイスとを含む情報処理装置において、前
記各チヤンネル対応に設けられ該チヤンネルごと
に作られる入出力命令待行列の先頭に登録された
前記デバイスのデバイス番号に関する情報を含む
複数の待行列ヘツダテーブル手段と、前記各デバ
イス対応に設けられ対応するデバイスが前記待行
列に登録されているか否かに関する情報と前記主
記憶装置中に格納されたこのデバイスに対する入
出力命令の格納開始番地に関する情報と前記待行
列中における次の順番のデバイスの有無に関する
情報とこれが有る場合に該デバイスのデバイス番
号に関する情報とを含む複数の入出力待行列連結
テーブル手段と、前記各チヤンネル対応に設けら
れ前記各待行列中で入出力命令の起動を待つ入出
力デバイスの有無を示す入出力命令起動待表示手
段と前記各チヤンネル対応に設けられ前記入出力
命令起動の禁止を示す入出力命令起動禁止表示手
段とを含み、前記中央処理装置から入出力命令を
受けた前記チヤンネル制御装置は前記入出力命令
により指定されたチヤンネル番号およびデバイス
番号により対応する前記ヘツダテーブル手段およ
び前記連結テーブル手段の内容を参照しこれを用
いて前記待行列を作成し前記起動待表示手段をセ
ツトし任意のチヤンネルがアイドル状態になつた
ときに該チヤンネルは対応する前記起動待表示手
段と前記起動禁止表示手段との表示を参照し前記
制御装置に割込みを発生しこれに応答して前記制
御装置は対応するチヤンネルの前記待行列を参照
し待行列中に登録されたデバイスに対する入出力
命令の起動を開始する。
次に図面を参照して本発明を詳細に説明する。
第1図は本発明の一実施例を説明するためのブ
ロツク図である。
ロツク図である。
本実施例は中央処理装置(以下CPU)1、主
記憶装置(以下MM)2、チヤンネル制御装置
(以下CHC)3、複数のチヤンネルCH4−1,
……4−K……4−N、および各チヤンネルに属
する複数の入出力デバイスIOD5−1−1,5−
1−2,……5−1−M1,……5−K−1……
5−K−R,……5−K−MK,……5−N−
1,5−M−2,……5−N−MNを有してい
る。
記憶装置(以下MM)2、チヤンネル制御装置
(以下CHC)3、複数のチヤンネルCH4−1,
……4−K……4−N、および各チヤンネルに属
する複数の入出力デバイスIOD5−1−1,5−
1−2,……5−1−M1,……5−K−1……
5−K−R,……5−K−MK,……5−N−
1,5−M−2,……5−N−MNを有してい
る。
前記CHC3および前記チヤンネル4−1〜4
−Nが入出力制御装置6を構成している。
−Nが入出力制御装置6を構成している。
また、CHC3には、第2図に示すように各チ
ヤンネル対応に入出力待行列ヘツダテーブル30
−1,……30−K,……30−Nと、各入出力
デバイス対応に入出力待行列連結テーブル31−
1−1,31−1−2……31−1−M1,……
31−K−1,……31−K−R,……31−K
−MK,……31−N−1,31−N−2……3
1−N−MNと、さらにまた各チヤンネル対応に
入出力命令起動待フリツプフロツプFF32−
1,……32−K,……32−Nおよび入出力命
令起動禁止フリツプフロツプFF33−1,……
33−K,……33−Nとを含んでいる。
ヤンネル対応に入出力待行列ヘツダテーブル30
−1,……30−K,……30−Nと、各入出力
デバイス対応に入出力待行列連結テーブル31−
1−1,31−1−2……31−1−M1,……
31−K−1,……31−K−R,……31−K
−MK,……31−N−1,31−N−2……3
1−N−MNと、さらにまた各チヤンネル対応に
入出力命令起動待フリツプフロツプFF32−
1,……32−K,……32−Nおよび入出力命
令起動禁止フリツプフロツプFF33−1,……
33−K,……33−Nとを含んでいる。
前記各ヘツダテーブル30は、第3図に示すよ
うに、予め定めた一定のビツト幅を有するレジス
タから成り、対応するチヤンネルに入出力命令待
行列が存在するか否かの1ビツトの情報を格納す
るVLDフイールドと、この入出力命令待行列が
存在する場合、この待行列の先頭に登録された入
出力デバイス対応の前記連結テーブル31を指示
するポインタを格納するためのFSTフイールド
と、同じく待行列の最後尾に登録された入出力デ
バイス対応の連結テーブル31を指示するポイン
タを格納するためのLSTフイールドとを含んで
いる。
うに、予め定めた一定のビツト幅を有するレジス
タから成り、対応するチヤンネルに入出力命令待
行列が存在するか否かの1ビツトの情報を格納す
るVLDフイールドと、この入出力命令待行列が
存在する場合、この待行列の先頭に登録された入
出力デバイス対応の前記連結テーブル31を指示
するポインタを格納するためのFSTフイールド
と、同じく待行列の最後尾に登録された入出力デ
バイス対応の連結テーブル31を指示するポイン
タを格納するためのLSTフイールドとを含んで
いる。
また、前記各連結テーブル31は、第4図に示
すように、予め定めた一定のビツト幅を有するレ
ジスタから成り、前記入出力命令待行列におい
て、この連結テーブルに対応する入出力デバイス
の、次の順番の入出力デバイスが存在するか否か
の1ビツトの情報を格納するNXTフイールド
と、このNXTフイールドの内容が“1”の場
合、上記次の順番の入出力デバイス対応の連結テ
ーブルを指示するポインタを格納するための
NXTDPフイールドと、この連結テーブル自身に
対応する入出力デバイスが現在入出力命令待行列
中に加わつているか否かの1ビツトの情報を格納
するENQフイールドと、この入出力デバイスが
入出力命令待行列に加わつているときにさらに新
らしい入出力命令が発生したか否かの1ビツトの
情報を格納するIPフイールドと、さらにこの入出
力デバイスに対するチヤンネルプログラム(チヤ
ンネルコマンドワード、CCW)のMM2中にお
ける格納開始番地を指示するポインタを格納する
CCWADフイールドとを含んでいる。
すように、予め定めた一定のビツト幅を有するレ
ジスタから成り、前記入出力命令待行列におい
て、この連結テーブルに対応する入出力デバイス
の、次の順番の入出力デバイスが存在するか否か
の1ビツトの情報を格納するNXTフイールド
と、このNXTフイールドの内容が“1”の場
合、上記次の順番の入出力デバイス対応の連結テ
ーブルを指示するポインタを格納するための
NXTDPフイールドと、この連結テーブル自身に
対応する入出力デバイスが現在入出力命令待行列
中に加わつているか否かの1ビツトの情報を格納
するENQフイールドと、この入出力デバイスが
入出力命令待行列に加わつているときにさらに新
らしい入出力命令が発生したか否かの1ビツトの
情報を格納するIPフイールドと、さらにこの入出
力デバイスに対するチヤンネルプログラム(チヤ
ンネルコマンドワード、CCW)のMM2中にお
ける格納開始番地を指示するポインタを格納する
CCWADフイールドとを含んでいる。
さて、本実施例によるデータ入出力動作は下記
のように行なわれる。
のように行なわれる。
今、一例として、第K番目のチヤンネル(つま
りチヤンネル4−K)の第R番目の入出力デバイ
ス(つまりデバイス5−K−R)に対するデータ
の入出力動作について説明する。第5図、第6図
および第7図は本実施例の動作を説明するための
フローチヤートである。
りチヤンネル4−K)の第R番目の入出力デバイ
ス(つまりデバイス5−K−R)に対するデータ
の入出力動作について説明する。第5図、第6図
および第7図は本実施例の動作を説明するための
フローチヤートである。
CPU1のオペレーシヨンプログラムOSはま
ず、入出力デバイス5−K−Rが行うべき入出力
動作の詳細を規定したチヤンネルプログラム(こ
れをCCW:チヤンネルコマンドワードという)
を作りこれをMM2の特定のメモリアドレスに格
納する。
ず、入出力デバイス5−K−Rが行うべき入出力
動作の詳細を規定したチヤンネルプログラム(こ
れをCCW:チヤンネルコマンドワードという)
を作りこれをMM2の特定のメモリアドレスに格
納する。
ついでCHC3をコールし、DAW(デバイスア
ドレスワード:これは実行すべきオペレーシヨ
ン、つまり現在の場合は入出力命令、を指定し、
かつ、このオペレーシヨンを実行すべき入出力デ
バイスのチヤンネル番号、現在の例ではK、およ
びデバイス番号、現在の例ではR″、を含んでい
るワードである)とCAW(コマンドアドレスワ
ード:これは前記CCWのMM2中における格納
開始番地を指示するポインタ)とを供給し(第5
図ア)、CHC3からのコンデシヨンコードによる
リポートの応答を待つ(第5図イ)。
ドレスワード:これは実行すべきオペレーシヨ
ン、つまり現在の場合は入出力命令、を指定し、
かつ、このオペレーシヨンを実行すべき入出力デ
バイスのチヤンネル番号、現在の例ではK、およ
びデバイス番号、現在の例ではR″、を含んでい
るワードである)とCAW(コマンドアドレスワ
ード:これは前記CCWのMM2中における格納
開始番地を指示するポインタ)とを供給し(第5
図ア)、CHC3からのコンデシヨンコードによる
リポートの応答を待つ(第5図イ)。
一方、CPU1からの前記コール(第5図ア)
を受けたCHC3は供給された前記DAWとCAW
とを取り出し(第5図エ)、これを解読すること
によつて指定されたオペレーシヨンが入出力命令
SIOがそれ以外の命令かを判定する(第5図
オ)。もしこれが、現在の場合のように、入出力
命令SIOである場合には、前記DAWで指定され
たチヤンネルKが現在有効か否か(実際に存在し
かつ現在障害状態でないかどうか)をチエツクす
る(第5図カ)。
を受けたCHC3は供給された前記DAWとCAW
とを取り出し(第5図エ)、これを解読すること
によつて指定されたオペレーシヨンが入出力命令
SIOがそれ以外の命令かを判定する(第5図
オ)。もしこれが、現在の場合のように、入出力
命令SIOである場合には、前記DAWで指定され
たチヤンネルKが現在有効か否か(実際に存在し
かつ現在障害状態でないかどうか)をチエツクす
る(第5図カ)。
もし有効でなければコンデシヨンコードを3と
し(CC=3)、CPU1に対してリポートする
(第5図ク)。
し(CC=3)、CPU1に対してリポートする
(第5図ク)。
またもし有効な場合にはコンデシヨンコードを
0とし(CC=0)、CPU1に対してリポートす
る(第5図キ)。
0とし(CC=0)、CPU1に対してリポートす
る(第5図キ)。
このいずれかのリポートを受けたCPU1のプ
ログラムは、この受信を確認すると(第5図イ)
次の命令の実行に進む(第5図ウ)が、本実施例
においては入出力命令に対するCHC3のコンデ
イシヨンコードによるリポートがCC=0とCC=
3だけであり、前述の従来装置のCC=1および
CC=2に対するリポートを含まない点に特徴が
ある。このためにCPU側のプログラムにおいて
は前述の従来装置の欠点が除かれることになる。
なお、前記オペーレーシヨン判定(第5図オ)に
おいて、解読した命令が入出力命令以外の命令
(例えばテスト命令等)である場合には、指定さ
れたこの命令に対する処理を行ない(第5図
ケ)、その結果によつて定まるコンデシヨンコー
ドを発生し(第5図コ)、CPUにリポートする
が、この処理は従来装置と同様である。
ログラムは、この受信を確認すると(第5図イ)
次の命令の実行に進む(第5図ウ)が、本実施例
においては入出力命令に対するCHC3のコンデ
イシヨンコードによるリポートがCC=0とCC=
3だけであり、前述の従来装置のCC=1および
CC=2に対するリポートを含まない点に特徴が
ある。このためにCPU側のプログラムにおいて
は前述の従来装置の欠点が除かれることになる。
なお、前記オペーレーシヨン判定(第5図オ)に
おいて、解読した命令が入出力命令以外の命令
(例えばテスト命令等)である場合には、指定さ
れたこの命令に対する処理を行ない(第5図
ケ)、その結果によつて定まるコンデシヨンコー
ドを発生し(第5図コ)、CPUにリポートする
が、この処理は従来装置と同様である。
さて、CC=0を送出した場合(第5図キ)に
は、CHC3の処理はさらに進み、次に前記DAW
に含まれるチヤンネル番号Kとデバイス番号Rで
指定される連結テーブル31−K−Rの内容を読
む(第5図サ)。そしてまず、ENQフイールドが
“1”か否かをチエツクする(第5図シ)。
は、CHC3の処理はさらに進み、次に前記DAW
に含まれるチヤンネル番号Kとデバイス番号Rで
指定される連結テーブル31−K−Rの内容を読
む(第5図サ)。そしてまず、ENQフイールドが
“1”か否かをチエツクする(第5図シ)。
最初、これが“0”である場合の処理について
説明する。ENQフイールドが“0”である
(“1”でない)ということは、この入出力命令を
受けた入出力デバイス5−K−Rが、まだ、この
チヤンネルの入出力命令待行列に加わつていない
ことを意味する(すなわちこの入出力デバイス5
−K−Rに対する入出力命令で待つているものが
ないことを意味する)。従つて、この入出力デバ
イス5−K−Rに対する入出力命令が発生した現
在、直ちにこのデバイスに対する連結テーブル3
1−K−RのENQフイールドを“1”としてこ
れが待行列に加わつたことを表示し、またそれと
共に前記CAW(この入出力命令のチヤンネルプ
ログラムのMM2における格納開始番地を示すポ
インタ)をこの連結テーブル31−K−Rの
CCWADフイールドに書き込む(第5図ス)。
説明する。ENQフイールドが“0”である
(“1”でない)ということは、この入出力命令を
受けた入出力デバイス5−K−Rが、まだ、この
チヤンネルの入出力命令待行列に加わつていない
ことを意味する(すなわちこの入出力デバイス5
−K−Rに対する入出力命令で待つているものが
ないことを意味する)。従つて、この入出力デバ
イス5−K−Rに対する入出力命令が発生した現
在、直ちにこのデバイスに対する連結テーブル3
1−K−RのENQフイールドを“1”としてこ
れが待行列に加わつたことを表示し、またそれと
共に前記CAW(この入出力命令のチヤンネルプ
ログラムのMM2における格納開始番地を示すポ
インタ)をこの連結テーブル31−K−Rの
CCWADフイールドに書き込む(第5図ス)。
つぎに、このチヤンネル4−Kに対するヘツダ
テーブル30−Kを読む(第5図セ)。そしてこ
のヘツダテーブル30−KのVLDフイールドが
“0”かどうかをチエツクする(第5図ソ)。
VLDフイールドが“0”ということは、まだこ
のチヤンネルに待行列が存在しないことを意味す
る(つまりこのチヤンネルに属する入出力デバイ
スの中には、現在、入出力命令を受けその起動を
待つているものが一つもないことを意味する)。
従つて、現在入出力命令を受けた入出力デバイス
5−K−Rが最初に待行列を構成することになる
ので、それを表示するために、ヘツダテーブル3
1−K−RのVLDフイールドを“1”とし、か
つ、FSTフイールドおよびLSTフイールドに、
この入出力デバイス5−K−R対応の連結テーブ
ル31−K−Rを指示するポインタを格納する
(第5図タ)。かくして、入出力デバイス31−K
−Rはこのチヤンネル4−Kの待行列の先頭(か
つ最後尾)に登録されたことになる。
テーブル30−Kを読む(第5図セ)。そしてこ
のヘツダテーブル30−KのVLDフイールドが
“0”かどうかをチエツクする(第5図ソ)。
VLDフイールドが“0”ということは、まだこ
のチヤンネルに待行列が存在しないことを意味す
る(つまりこのチヤンネルに属する入出力デバイ
スの中には、現在、入出力命令を受けその起動を
待つているものが一つもないことを意味する)。
従つて、現在入出力命令を受けた入出力デバイス
5−K−Rが最初に待行列を構成することになる
ので、それを表示するために、ヘツダテーブル3
1−K−RのVLDフイールドを“1”とし、か
つ、FSTフイールドおよびLSTフイールドに、
この入出力デバイス5−K−R対応の連結テーブ
ル31−K−Rを指示するポインタを格納する
(第5図タ)。かくして、入出力デバイス31−K
−Rはこのチヤンネル4−Kの待行列の先頭(か
つ最後尾)に登録されたことになる。
これがすむと、CHC3は、このチヤンネル4
−Kに対応する入出力命令起動待フリツプフロツ
プFF32−Kをセツトし、このチヤンネル4−
Kに入出命令の起動を待つている入出力デバイス
があることを表示する(第5図チ)。
−Kに対応する入出力命令起動待フリツプフロツ
プFF32−Kをセツトし、このチヤンネル4−
Kに入出命令の起動を待つている入出力デバイス
があることを表示する(第5図チ)。
またもし、上記VLDのチエツク(第5図ソ)
においてVLDが“1”の場合には、このチヤン
ネル4−Kには待行列がすでに存在することを意
味し、その最後尾の入出力デバイスに対するポイ
ンタがこのヘツダテーブル30−KのLSTフイ
ールドに格納されている。今回新らしく入出力開
始命令を受けた入出力デバイス5−K−Rは、現
在の最後尾にあるものの次に新らしい最後尾の入
出力デバイスとして登録する必要がある。そこで
まず、ヘツダテーブル30−KのLSTフイール
ドに格納されたポインタが指示する連結テーブル
を選出し(第5図ツ)、この連結テーブルのNXT
フイールド(このフイールドのビツトは待行列に
おいて次の順位の入出力デバイスがこの待行列中
に存在することを示す)を“1”とし、かつ
NXTDPフイールド(これは上述の次の順位の入
出力デバイス対応の連結テーブルを指示するポイ
ンタを格納するフイールド)に現在新らしく待行
列の最後に加わつた入出力デバイス5−K−R対
応の連結テーブル31−K−Rを指示するポイン
タを格納し(第5図テ)、またこの同じポインタ
をヘツダテーブル30−KのLSTフイールドに
格納し(第5図ト)、入出力デバイス5−K−R
がこのチヤンネルの待行列の最後尾であることを
表示する。
においてVLDが“1”の場合には、このチヤン
ネル4−Kには待行列がすでに存在することを意
味し、その最後尾の入出力デバイスに対するポイ
ンタがこのヘツダテーブル30−KのLSTフイ
ールドに格納されている。今回新らしく入出力開
始命令を受けた入出力デバイス5−K−Rは、現
在の最後尾にあるものの次に新らしい最後尾の入
出力デバイスとして登録する必要がある。そこで
まず、ヘツダテーブル30−KのLSTフイール
ドに格納されたポインタが指示する連結テーブル
を選出し(第5図ツ)、この連結テーブルのNXT
フイールド(このフイールドのビツトは待行列に
おいて次の順位の入出力デバイスがこの待行列中
に存在することを示す)を“1”とし、かつ
NXTDPフイールド(これは上述の次の順位の入
出力デバイス対応の連結テーブルを指示するポイ
ンタを格納するフイールド)に現在新らしく待行
列の最後に加わつた入出力デバイス5−K−R対
応の連結テーブル31−K−Rを指示するポイン
タを格納し(第5図テ)、またこの同じポインタ
をヘツダテーブル30−KのLSTフイールドに
格納し(第5図ト)、入出力デバイス5−K−R
がこのチヤンネルの待行列の最後尾であることを
表示する。
これがすむと、入出力命令起動禁止フリツプフ
ロツプFF33−Kをリセツトし((第5図ナ)、
入出力命令起動待のデバイスが新らしく待行列に
加わり、起動禁止状態がとけたことを表示する。
(起動禁止フリツプフロツプ33−Kをセツトす
る時点およびその作用については後述する)。こ
うして、入出力命令を受けた入出力デバイスがそ
れまでに待行列に加わつていない場合には新らし
く待行列に加えられ、それに従つて起動待フリツ
プフロツプ32−Kがセツトされるか(待行列が
新たに作られた場合)または起動禁止フリツプフ
ロツプ33−Kがリセツトされる(すでに待行列
ができていてその中にこのデバイスが加えられた
場合)。
ロツプFF33−Kをリセツトし((第5図ナ)、
入出力命令起動待のデバイスが新らしく待行列に
加わり、起動禁止状態がとけたことを表示する。
(起動禁止フリツプフロツプ33−Kをセツトす
る時点およびその作用については後述する)。こ
うして、入出力命令を受けた入出力デバイスがそ
れまでに待行列に加わつていない場合には新らし
く待行列に加えられ、それに従つて起動待フリツ
プフロツプ32−Kがセツトされるか(待行列が
新たに作られた場合)または起動禁止フリツプフ
ロツプ33−Kがリセツトされる(すでに待行列
ができていてその中にこのデバイスが加えられた
場合)。
さて、次に、前記第5図シのプロセスでENQ
フイールドが“1”である場合の処理について説
明する。ENQフイールドが“1”であること
は、今回、入出力命令を受けた入出力デバイス5
−K−Rは、すでに前に入出力命令を受けて、現
在その実行を待つための待行列に登録されている
状態であることを示す。この場合には、同じ入出
力デバイス5−K−Rを新らしい順位に二重登録
をするかわりに、対応する連結テーブル31−K
−RのIPフイールドに“1”をセツトし(第5図
ナ)、この入出力デバイス5−K−Rに対する特
定の処理依頼のあることを表示する。その上で
CPU1に対し割込要求を出す(第5図ニ)。すな
わち、CHC3は指令された入出力命令に対しす
でにCC=0(入出力命令の受付成功)のリポー
トをCPU1に返しているが、実際にはこれをそ
のまま受付けることが困難な特別の情況にあるた
め、これを割込みを用いてCPU1に知らせるの
である。これに対する処理については後述する。
ただしこの分枝を通る処理の発生する確率は低
い。
フイールドが“1”である場合の処理について説
明する。ENQフイールドが“1”であること
は、今回、入出力命令を受けた入出力デバイス5
−K−Rは、すでに前に入出力命令を受けて、現
在その実行を待つための待行列に登録されている
状態であることを示す。この場合には、同じ入出
力デバイス5−K−Rを新らしい順位に二重登録
をするかわりに、対応する連結テーブル31−K
−RのIPフイールドに“1”をセツトし(第5図
ナ)、この入出力デバイス5−K−Rに対する特
定の処理依頼のあることを表示する。その上で
CPU1に対し割込要求を出す(第5図ニ)。すな
わち、CHC3は指令された入出力命令に対しす
でにCC=0(入出力命令の受付成功)のリポー
トをCPU1に返しているが、実際にはこれをそ
のまま受付けることが困難な特別の情況にあるた
め、これを割込みを用いてCPU1に知らせるの
である。これに対する処理については後述する。
ただしこの分枝を通る処理の発生する確率は低
い。
さて、こうして入出力命令は受付けられ、待行
列に登録され、さらにこの待行列の存在を示す起
動待フリツプフロツプ32−Kがセツトされある
いは起動禁止フリツプフロツプ33−Kがリセツ
トされたが、これら各命令の待行列からの取りは
ずしとその起動とは以下のようにして行なわれ
る。
列に登録され、さらにこの待行列の存在を示す起
動待フリツプフロツプ32−Kがセツトされある
いは起動禁止フリツプフロツプ33−Kがリセツ
トされたが、これら各命令の待行列からの取りは
ずしとその起動とは以下のようにして行なわれ
る。
すなわち、各チヤンネル4−1〜4−Nに対応
し、それぞれのチヤンネルが現在ビジ−状態(つ
まり何等かの処理を実行中で別の処理を実行でき
ない状態)にあるか、またはアイドル状態(つま
り、現在何等の処理も行なつておらず新らしい処
理にいつでも応じられる空状態)にあるかを監視
するチヤンネル状態監視プログラムが動作してい
る。前記チヤンネル4−Kに対するこの監視プロ
グラムはチヤンネル4−Kがアイドル状態か否か
を監視している(第6図ア)。
し、それぞれのチヤンネルが現在ビジ−状態(つ
まり何等かの処理を実行中で別の処理を実行でき
ない状態)にあるか、またはアイドル状態(つま
り、現在何等の処理も行なつておらず新らしい処
理にいつでも応じられる空状態)にあるかを監視
するチヤンネル状態監視プログラムが動作してい
る。前記チヤンネル4−Kに対するこの監視プロ
グラムはチヤンネル4−Kがアイドル状態か否か
を監視している(第6図ア)。
このチヤンネル4−Kのある入出力命令の実行
が終了し、一時このチヤンネル4−Kがアイドル
状態になると、このプログラムはこのチヤンネル
4−Kに対する前記入出力命令起動待フリツプフ
ロツプFF32−Kおよび前記入出力命令起動禁
止フリツプフロツプFF33−Kを参照し(第6
図イ)、前者が“1”にセツトされかつ後者が
“0”にリセツトされている状態のときにかぎり
CHC3に対して割込みを発生し(第6図ウ)、
CHC3の入出力命令待行列処理プロセスを起動
する(第6図エ)。
が終了し、一時このチヤンネル4−Kがアイドル
状態になると、このプログラムはこのチヤンネル
4−Kに対する前記入出力命令起動待フリツプフ
ロツプFF32−Kおよび前記入出力命令起動禁
止フリツプフロツプFF33−Kを参照し(第6
図イ)、前者が“1”にセツトされかつ後者が
“0”にリセツトされている状態のときにかぎり
CHC3に対して割込みを発生し(第6図ウ)、
CHC3の入出力命令待行列処理プロセスを起動
する(第6図エ)。
このプロセスが起動すると、まず対応するチヤ
ンネルのヘツダテーブル30−Kを読み(第6図
オ)、このヘツダテーブル30−KのFSTフイー
ルドおよびLSTフイールドで指定され、前述の
ようにして相互に連結されてこのチヤンネルの待
行列を構成している各連結テーブル対応のサブチ
ヤンネルを読み(第6図カ)、アイドル状態にあ
るものを探す(第6図キ)。このサブチヤンネル
とは、各チヤンネル毎に、そのチヤンネルが管理
する各入出力デバイスの状態等を格納したもので
ある。
ンネルのヘツダテーブル30−Kを読み(第6図
オ)、このヘツダテーブル30−KのFSTフイー
ルドおよびLSTフイールドで指定され、前述の
ようにして相互に連結されてこのチヤンネルの待
行列を構成している各連結テーブル対応のサブチ
ヤンネルを読み(第6図カ)、アイドル状態にあ
るものを探す(第6図キ)。このサブチヤンネル
とは、各チヤンネル毎に、そのチヤンネルが管理
する各入出力デバイスの状態等を格納したもので
ある。
こうして、アイドルのサブチヤンネルを有する
デバイスが見出されると、このデバイスを待行列
のリンクから取りはずす(第6図ク)。この取り
はずすための処理は前述の待行列に登録する場合
の逆の処理を行なえばよいので詳述を略すが、ま
ず、そのデバイス対応の連結テーブルのENQフ
イールドを0とし、待行列中でその前の順位にあ
るデバイスの連結テーブルのNXTDPフイールド
を更新する(前の順位のデバイスが存在しない場
合にはヘツダテーブルのFSTフイールドを更新
する。また取りはずされるデバイスが待行列の最
後尾のデバイスである場合には前の順位のデバイ
スのNXTフイールドを0としヘツダテーブルの
LSTフイールドの内容も更新する)。
デバイスが見出されると、このデバイスを待行列
のリンクから取りはずす(第6図ク)。この取り
はずすための処理は前述の待行列に登録する場合
の逆の処理を行なえばよいので詳述を略すが、ま
ず、そのデバイス対応の連結テーブルのENQフ
イールドを0とし、待行列中でその前の順位にあ
るデバイスの連結テーブルのNXTDPフイールド
を更新する(前の順位のデバイスが存在しない場
合にはヘツダテーブルのFSTフイールドを更新
する。また取りはずされるデバイスが待行列の最
後尾のデバイスである場合には前の順位のデバイ
スのNXTフイールドを0としヘツダテーブルの
LSTフイールドの内容も更新する)。
この取りはずした結果、待行列が消滅したか否
かをチエツクし(第6図ケ)、待行列が消滅した
場合にはヘツダテーブルのVLDフイールドを0
とし(第6図コ、さらに入出力命令起動待フリツ
プフロツプFF32−Kを0にして(第6図サ)
からこの入出力命令の起動処理に入る(第6図
シ)。入出力命令の起動は、取りはずしたデバイ
ス対応の連結テーブルのCCWADフイールドに格
納されたポインタの指示に従つてMM2から最初
のCCWを取り出しそれを実行することによつて
行なわれる。
かをチエツクし(第6図ケ)、待行列が消滅した
場合にはヘツダテーブルのVLDフイールドを0
とし(第6図コ、さらに入出力命令起動待フリツ
プフロツプFF32−Kを0にして(第6図サ)
からこの入出力命令の起動処理に入る(第6図
シ)。入出力命令の起動は、取りはずしたデバイ
ス対応の連結テーブルのCCWADフイールドに格
納されたポインタの指示に従つてMM2から最初
のCCWを取り出しそれを実行することによつて
行なわれる。
取りはずしの結果、待行列がまだ残つている場
合には(第6図ケのNの分枝)、VLDフイールド
および起動待フリツプフロツプ32−Kをもとの
ままとして直ちに起動処理に入る(第6図シ)。
合には(第6図ケのNの分枝)、VLDフイールド
および起動待フリツプフロツプ32−Kをもとの
ままとして直ちに起動処理に入る(第6図シ)。
さて、上述の、リンク内の各サブチヤンネルを
読み(第6図カ)、アイドル状態のものを探した
とき(第6図キ)、待行列中にアイドル状態のサ
ブチヤンネルが見出されない場合には、入出力命
令起動禁止フリツプフロツプFF33−Kを
“1”にセツトする(第6図ス)。これは、こうす
ることによつて上述の第6図イの判定条件を反転
し、この状況においてはこれ以上CHC3に対す
るチヤンネル4−Kからの割込み(第6図ウ)が
起らないようにするためのものである。この起動
禁止フリツプフロツプ33−Kは、前述のよう
に、CPU1から新たに入出力命令が出されて待
行列に登録された場合(第5図ナ)、および後述
するように、一つのデバイスの入出力命令の処理
が終了した場合(第7図キ)にはそれに従つてサ
ブチヤンネルの情況が変化するので、“0”にリ
セツトされ、チヤンネル4−KからCHC3への
割込みを再び可能とする。
読み(第6図カ)、アイドル状態のものを探した
とき(第6図キ)、待行列中にアイドル状態のサ
ブチヤンネルが見出されない場合には、入出力命
令起動禁止フリツプフロツプFF33−Kを
“1”にセツトする(第6図ス)。これは、こうす
ることによつて上述の第6図イの判定条件を反転
し、この状況においてはこれ以上CHC3に対す
るチヤンネル4−Kからの割込み(第6図ウ)が
起らないようにするためのものである。この起動
禁止フリツプフロツプ33−Kは、前述のよう
に、CPU1から新たに入出力命令が出されて待
行列に登録された場合(第5図ナ)、および後述
するように、一つのデバイスの入出力命令の処理
が終了した場合(第7図キ)にはそれに従つてサ
ブチヤンネルの情況が変化するので、“0”にリ
セツトされ、チヤンネル4−KからCHC3への
割込みを再び可能とする。
さて、最後に、前述の第5図ニによるCPUへ
割込要求を行なつた場合のプロセスは次のように
なる。
割込要求を行なつた場合のプロセスは次のように
なる。
CHC3は、割込要求を出すときにはその割込
要求に対応するチヤンネル番号と、入出力デバイ
ス番号とを保持しておき、CPU1が割込を受付
けたときはこのチヤンネル番号とデバイス番号と
を用いて必要なヘツダテーブルおよび連結テーブ
ルにアクセスする。上記割込をCPU1が受けつ
けると、CHC3は上述の保持しているチヤンネ
ル番号デバイス番号を用いて対応するデバイスの
連結テーブルを読む(第7図ア)。該連結テーブ
ルのIPフイールドをチエツクすることにより(第
7図イ)、このIPフイールドが“1”の場合に
は、前述の第5図ニに対する割込要求の受付であ
ることを識別する。そして、待行列に入つている
入出力デバイスに重ねて入出力開始命令があつた
ことを示す予め定められているチヤンネルステー
タスワードCSWをMM2の予め定めた領域に格
納してCPU1にこれを知らせ(第7図ウ)、ま
た、これに対するCHC3の処理はこれですんだ
のでこの連結テーブルのIPフイールドを“0”に
リセツトする(第7図エ)。
要求に対応するチヤンネル番号と、入出力デバイ
ス番号とを保持しておき、CPU1が割込を受付
けたときはこのチヤンネル番号とデバイス番号と
を用いて必要なヘツダテーブルおよび連結テーブ
ルにアクセスする。上記割込をCPU1が受けつ
けると、CHC3は上述の保持しているチヤンネ
ル番号デバイス番号を用いて対応するデバイスの
連結テーブルを読む(第7図ア)。該連結テーブ
ルのIPフイールドをチエツクすることにより(第
7図イ)、このIPフイールドが“1”の場合に
は、前述の第5図ニに対する割込要求の受付であ
ることを識別する。そして、待行列に入つている
入出力デバイスに重ねて入出力開始命令があつた
ことを示す予め定められているチヤンネルステー
タスワードCSWをMM2の予め定めた領域に格
納してCPU1にこれを知らせ(第7図ウ)、ま
た、これに対するCHC3の処理はこれですんだ
のでこの連結テーブルのIPフイールドを“0”に
リセツトする(第7図エ)。
なお、CHC3からCPU1に対する割込みは、
上述のもののほかに、前述の第6図シの起動処理
で起動した入出力命令の実行がすんで、その結果
をCPU1に報告する場合にも用いられるが、こ
の場合には第7図イで連結テーブルのIPフイール
ドをチエツクするとこのフイールドに“1”がな
いためにこれを識別し、入出力命令実行結果に対
するCSWをMM2の前記領域に格納してCPUに
リポートし(第7図オ)、この結果、少くも一つ
のサブチヤンネルの状況が変化し新らしく入出力
命令を起動できる可能性ができたのでチヤンネル
4−Kの入出力命令起動禁止フリツプフロツプ3
3−Kがもしセツトされている場合にはこれを
“0”にリセツトする(第7図カ)。
上述のもののほかに、前述の第6図シの起動処理
で起動した入出力命令の実行がすんで、その結果
をCPU1に報告する場合にも用いられるが、こ
の場合には第7図イで連結テーブルのIPフイール
ドをチエツクするとこのフイールドに“1”がな
いためにこれを識別し、入出力命令実行結果に対
するCSWをMM2の前記領域に格納してCPUに
リポートし(第7図オ)、この結果、少くも一つ
のサブチヤンネルの状況が変化し新らしく入出力
命令を起動できる可能性ができたのでチヤンネル
4−Kの入出力命令起動禁止フリツプフロツプ3
3−Kがもしセツトされている場合にはこれを
“0”にリセツトする(第7図カ)。
以上述べたように、本実施例を用いると、
CPUの入出力命令の指令に対し、CHCはそのチ
ヤンネル番号が有効の場合には常にこれを受付け
(CC=0でCPUにリポートし)、入出力命令待行
列に登録し、こうして待行列が作られると入出力
命令起動待フリツプフロツプをセツトしあるいは
入出力命令起動禁止フリツプフロツプをリセツト
し、一方、各チヤンネルは自己がアイドルにな
り、新らしく入出力命令を実行できる状態になる
とこの二つのフリツプフロツプの状態を参照しそ
れに応答し割込みを発生して入出力命令の起動を
要求し、この割込みを受けたCHCは待行列中に
登録されたデバイスの中で現在入出力命令実行可
能なものから順番に待行列から取りはずし、この
デバイスに対して指令された入出力命令を実行す
るような動作を行なう入出力制御装置を提供する
ことができる。
CPUの入出力命令の指令に対し、CHCはそのチ
ヤンネル番号が有効の場合には常にこれを受付け
(CC=0でCPUにリポートし)、入出力命令待行
列に登録し、こうして待行列が作られると入出力
命令起動待フリツプフロツプをセツトしあるいは
入出力命令起動禁止フリツプフロツプをリセツト
し、一方、各チヤンネルは自己がアイドルにな
り、新らしく入出力命令を実行できる状態になる
とこの二つのフリツプフロツプの状態を参照しそ
れに応答し割込みを発生して入出力命令の起動を
要求し、この割込みを受けたCHCは待行列中に
登録されたデバイスの中で現在入出力命令実行可
能なものから順番に待行列から取りはずし、この
デバイスに対して指令された入出力命令を実行す
るような動作を行なう入出力制御装置を提供する
ことができる。
このため、CPUは一度入出力命令を指令する
と、特別の場合を除き、以後の処理をすべて入出
力制御装置に委ねることができるので、入出力命
令に対するオーバーヘツドを節減することができ
る。
と、特別の場合を除き、以後の処理をすべて入出
力制御装置に委ねることができるので、入出力命
令に対するオーバーヘツドを節減することができ
る。
なお、本実施例の第5図、第6図および第7図
のフローチヤートで示したCHCおよびチヤンネ
ルCHの動作はフアームウエアを用いて容易に実
現することができる。また勿論専用のハードウエ
アを用いて実現することも可能である。
のフローチヤートで示したCHCおよびチヤンネ
ルCHの動作はフアームウエアを用いて容易に実
現することができる。また勿論専用のハードウエ
アを用いて実現することも可能である。
また、本実施例においては入出力命令起動待フ
リツプフロツプ32−1〜32−Nおよび入出力
命令起動禁止フリツプフロツプ33−1〜33−
Nの物理的位置をCHC3内としたが、勿論これ
を各チヤンネル中においてもよい。
リツプフロツプ32−1〜32−Nおよび入出力
命令起動禁止フリツプフロツプ33−1〜33−
Nの物理的位置をCHC3内としたが、勿論これ
を各チヤンネル中においてもよい。
また、本実施例で用いた入出力待行列ヘツダテ
ーブル30−1〜30−N、入出力待行列連結テ
ーブル31−1−1〜31−N−MN、入出力命
令起動待フリツプフロツプ32−1〜32−Nお
よび入出力命令起動禁止フリツプフロツプ33−
1〜33−NはRAMの予め定めた領域のそれぞ
れのアドレスの内容として構成することもでき
る。
ーブル30−1〜30−N、入出力待行列連結テ
ーブル31−1−1〜31−N−MN、入出力命
令起動待フリツプフロツプ32−1〜32−Nお
よび入出力命令起動禁止フリツプフロツプ33−
1〜33−NはRAMの予め定めた領域のそれぞ
れのアドレスの内容として構成することもでき
る。
以上のように本発明を用いると、入出力デバイ
スがアイドル以外の状態でも入出力命令を受付け
てこれを待行列に登録し入出力デバイスがアイド
ルになるとそのアイドルになつたものからつぎつ
ぎに自動的にこれを処理する入出力制御装置を提
供することができる。このため中央処理装置のソ
フトウエアに対するオーバーヘツドを軽減できる
という効果がある。
スがアイドル以外の状態でも入出力命令を受付け
てこれを待行列に登録し入出力デバイスがアイド
ルになるとそのアイドルになつたものからつぎつ
ぎに自動的にこれを処理する入出力制御装置を提
供することができる。このため中央処理装置のソ
フトウエアに対するオーバーヘツドを軽減できる
という効果がある。
第1図は本発明の一実施例を説明するためのブ
ロツク図、第2図は本実施例で用いる入出力待行
列ヘツダテーブル、入出力待行列連結テーブル、
入出力命令起動待フリツプフロツプおよび入出力
命令起動禁止フリツプフロツプを説明するための
図、第3図は前記入出力待行列ヘツダテーブルの
フオーマツトを説明するための図、第4図は前記
入出力待行列連結テーブルのフオーマツトを説明
するための図、第5図、第6図および第7図は本
実施例の動作を説明するためのフローチヤートで
ある。 図において、1……中央処理装置CPU、2…
…主記憶装置MM、3……チヤンネル制御装置
CHC、4−1〜4−N……チヤンネルCH、5−
1−1〜5−N−MN……入出力デバイスIOD、
6……入出力制御装置、30−1〜30−N……
入出力待行列ヘツダテーブル、31−1−1〜3
1−N−MN……入出力待行列連結テーブル、3
2−1〜32−N……入出力命令起動待フリツプ
フロツプ、33−1〜33−N……入出力命令起
動禁止フリツプフロツプ。
ロツク図、第2図は本実施例で用いる入出力待行
列ヘツダテーブル、入出力待行列連結テーブル、
入出力命令起動待フリツプフロツプおよび入出力
命令起動禁止フリツプフロツプを説明するための
図、第3図は前記入出力待行列ヘツダテーブルの
フオーマツトを説明するための図、第4図は前記
入出力待行列連結テーブルのフオーマツトを説明
するための図、第5図、第6図および第7図は本
実施例の動作を説明するためのフローチヤートで
ある。 図において、1……中央処理装置CPU、2…
…主記憶装置MM、3……チヤンネル制御装置
CHC、4−1〜4−N……チヤンネルCH、5−
1−1〜5−N−MN……入出力デバイスIOD、
6……入出力制御装置、30−1〜30−N……
入出力待行列ヘツダテーブル、31−1−1〜3
1−N−MN……入出力待行列連結テーブル、3
2−1〜32−N……入出力命令起動待フリツプ
フロツプ、33−1〜33−N……入出力命令起
動禁止フリツプフロツプ。
Claims (1)
- 【特許請求の範囲】 1 中央処理装置と主記憶装置とチヤンネル制御
装置と複数のチヤンネルと複数の入出力デバイス
とを含む情報処理装置において、 前記各チヤンネル対応に設けられ該チヤンネル
ごとに作られる入出力命令待行列の先頭に登録さ
れた前記デバイスのデバイス番号に関する情報を
含む複数の待行列ヘツダテーブル手段と、 前記各デバイス対応に設けられ対応するデバイ
スが前記待行列に登録されているか否かに関する
情報と前記主記憶装置中に格納されたこのデバイ
スに対する入出命令の格納開始番地に関する情報
と前記待行列中における次の順番のデバイスの有
無に関する情報とこれが有る場合に該デバイスの
デバイス番号に関する情報とを含む複数の入出力
待行列連結テーブル手段と、 前記各チヤンネル対応に設けられ前記各待行列
中で入出力命令の起動を待つ入出力デバイスの有
無を示す入出力命令起動待表示手段と、 前記各チヤンネル対応に設けられ前記入出力命
令起動の禁止を示す入出力命令起動禁止表示手段
とを含み、 前記中央処理装置から入出力命令を受けた前記
チヤンネル制御装置は前記入出力命令により指定
されたチヤンネル番号およびデバイス番号により
対応する前記ヘツダテーブル手段および前記連結
テーブル手段の内容を参照しこれを用いて前記待
行列を作成し前記起動待表示手段をセツトし任意
のチヤンネルがアイドル状態になつたときに該チ
ヤンネルは対応する前記起動待表示手段と前記起
動禁止表示手段との表示を参照し前記制御装置に
割込みを発生しこれに応答して前記制御装置は対
応するチヤンネルの前記待行列を参照し待行列中
に登録されたデバイスに対する入出力命令の起動
を開始するようにしたことを特徴とする入出力制
御装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1348982A JPS58129629A (ja) | 1982-01-29 | 1982-01-29 | 入出力制御装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1348982A JPS58129629A (ja) | 1982-01-29 | 1982-01-29 | 入出力制御装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS58129629A JPS58129629A (ja) | 1983-08-02 |
| JPS62542B2 true JPS62542B2 (ja) | 1987-01-08 |
Family
ID=11834526
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1348982A Granted JPS58129629A (ja) | 1982-01-29 | 1982-01-29 | 入出力制御装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS58129629A (ja) |
-
1982
- 1982-01-29 JP JP1348982A patent/JPS58129629A/ja active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| JPS58129629A (ja) | 1983-08-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4901232A (en) | I/O controller for controlling the sequencing of execution of I/O commands and for permitting modification of I/O controller operation by a host processor | |
| US4939644A (en) | Input/output controller for controlling the sequencing of the execution of input/output commands in a data processing system | |
| US7484017B1 (en) | Dequeuing from a host adapter two-dimensional queue | |
| US4077058A (en) | Method and apparatus for executing an extended decor instruction | |
| CN105210041A (zh) | 针对虚拟处理器处理并路由中断 | |
| US8495261B2 (en) | Redispatching suspended tasks after completion of I/O operations absent I/O interrupts | |
| JPS62542B2 (ja) | ||
| JPS62541B2 (ja) | ||
| JPS62543B2 (ja) | ||
| US6789134B1 (en) | Dequeuing from a host adapter two-dimensional queue | |
| JP3139310B2 (ja) | ディジタル信号処理装置 | |
| JPS6240736B2 (ja) | ||
| JP2883488B2 (ja) | 命令処理装置 | |
| JPH0425581B2 (ja) | ||
| JPH07114522A (ja) | マルチプロセッサシステム | |
| JP3127737B2 (ja) | ディジタル信号処理装置 | |
| JP2624519B2 (ja) | 計算機システムにおける入出力装置の起動処理方法 | |
| JPS5942331B2 (ja) | プロセツサソウチノセイギヨホウシキ | |
| JPH05334233A (ja) | データ転送装置 | |
| CN121523737A (zh) | 数据处理装置及方法、电子设备 | |
| JPH0766357B2 (ja) | 入出力制御方式 | |
| JPS6239779B2 (ja) | ||
| JPS6149695B2 (ja) | ||
| JPS6048563A (ja) | チャネル制御方式 | |
| JPH1027153A (ja) | バス転送装置 |