JPS62541B2 - - Google Patents
Info
- Publication number
- JPS62541B2 JPS62541B2 JP1348682A JP1348682A JPS62541B2 JP S62541 B2 JPS62541 B2 JP S62541B2 JP 1348682 A JP1348682 A JP 1348682A JP 1348682 A JP1348682 A JP 1348682A JP S62541 B2 JPS62541 B2 JP S62541B2
- Authority
- JP
- Japan
- Prior art keywords
- input
- output
- queue
- channel
- field
- 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にリポートす
る。
装置は直ちに指定されたチヤンネルおよびデバイ
スの現在の状態をチエツクし、そのチエツク結果
をコンデシヨンコードとして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−N−
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−N−
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−2,…31−K−R,…31
−K−MK,…31−N−1,31−N−2,…
31−N−MNと、さらにまた各チヤンネル対応
に入出力命令実行待フリツプフロツプFF32−
1,32−K,…32−Nとを含んでいる。
ヤンネル対応に入出力待行列ヘツダテーブル30
−1,…30−K,…30−Nと、各入出力デバ
イス対応に入出力待行列連結テーブル31−1−
1,31−1−2,…31−1−M1,…31−
K−1,31−K−2,…31−K−R,…31
−K−MK,…31−N−1,31−N−2,…
31−N−MNと、さらにまた各チヤンネル対応
に入出力命令実行待フリツプフロツプFF32−
1,32−K,…32−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がそれ以外の命令0かを判定する(第5図
オ)。もしこれが、現在の場合のように、入出力
命令SI0である場合には、前記DAWで指定され
たチヤンネルKが現在有効か否か(実際に存在し
かつ現在障害状態でないかどうか)をチエツクす
る(第5図カ)。もし有効でなければコンデシヨ
ンコードを3とし(CC=3)、CPU1に対して
リポートする(第5図ク)。またもし有効な場合
にはコンデシヨンコードを0とし(CC=0)、
CPU1に対してリポートする(第5図キ)。
を受けたCHC3は供給された前記DAWとCAW
とを取り出し(第5図エ)、これを解読すること
によつて指定されたオペレーシヨンが入出力命令
SIOがそれ以外の命令0かを判定する(第5図
オ)。もしこれが、現在の場合のように、入出力
命令SI0である場合には、前記DAWで指定され
たチヤンネルKが現在有効か否か(実際に存在し
かつ現在障害状態でないかどうか)をチエツクす
る(第5図カ)。もし有効でなければコンデシヨ
ンコードを3とし(CC=3)、CPU1に対して
リポートする(第5図ク)。またもし有効な場合
にはコンデシヨンコードを0とし(CC=0)、
CPU1に対してリポートする(第5図キ)。
このいずれかのリポートを受けたCPU1のプ
ログラムは、この受信を確認すると(第5図イ)
次の命令の実行に進む(第5図ウ)が、本実施例
においては入出力命令に対するCHC3のコンデ
シヨンコードによるリポートがCC=0とCC=3
だけであり、前述の従来装置のCC=1およびCC
=2に対するリポートを含まない点に特徴があ
る。このためにCPU側のプログラムにおいては
前述の従来装置の欠点が除かれることになる。
ログラムは、この受信を確認すると(第5図イ)
次の命令の実行に進む(第5図ウ)が、本実施例
においては入出力命令に対するCHC3のコンデ
シヨンコードによるリポートがCC=0とCC=3
だけであり、前述の従来装置のCC=1およびCC
=2に対するリポートを含まない点に特徴があ
る。このためにCPU側のプログラムにおいては
前述の従来装置の欠点が除かれることになる。
なお、前記オペーレーシヨン判定(第5図オ)
において、解読した命令が入出力命令以外の命令
(例えばテスト命令等)である場合には、指定さ
れたこの命令に対する処理を行ない(第5図
ケ)、その結果によつて定まるコンデシヨンコー
ドを発生し(第5図コ)、CPUにリポートする
が、この処理は従来装置と同様である。
において、解読した命令が入出力命令以外の命令
(例えばテスト命令等)である場合には、指定さ
れたこの命令に対する処理を行ない(第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が最初に待行列を構成す
ることになるので、それを表示するために、ヘツ
ダテーブル31−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が最初に待行列を構成す
ることになるので、それを表示するために、ヘツ
ダテーブル31−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図
テ)、またこの同じポインタをヘツダテーブル3
0−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図
テ)、またこの同じポインタをヘツダテーブル3
0−KのLSTフイールドに格納し(第5図ト)、
入出力デバイス5−K−Rがこのチヤンネルの入
出力命令待行列の最後尾であることを表示する。
これがすむと、前述と同様にこのチヤンネルの
入出力命令実行待フリツプフロツプFF32−K
をセツトする(第5図チ、普通はこの場合、待行
列がすでに存在しているのでフリツプフロツプ3
2−Kはセツトされている筈であるが、後述する
ように、待行列が存在してもこのフリツプフロツ
プ32−Kをリセツトする場合があるのでこれに
対する処置である)。こうして、入出力命令を受
けた入出力デバイスが、それまでに待行列に加わ
つていない場合には、このデバイスは新らしく待
行列に加えられ、またそれに従つて、このチヤン
ネルの入出力命令実行待フリツプフロツプがセツ
トされることになる。
入出力命令実行待フリツプフロツプFF32−K
をセツトする(第5図チ、普通はこの場合、待行
列がすでに存在しているのでフリツプフロツプ3
2−Kはセツトされている筈であるが、後述する
ように、待行列が存在してもこのフリツプフロツ
プ32−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がセツトされたが、こ
れら各命令の行列からの取はずしとその実行は以
下のように行なわれる。
行列に登録され、さらにこの待行列の存在を示す
フリツプフロツプ32−Kがセツトされたが、こ
れら各命令の行列からの取はずしとその実行は以
下のように行なわれる。
すなわち、各チヤンネル4−1〜4−Nに対応
し、それぞれのチヤンネルが現在ビジー状態(つ
まり何等かの処理を実行中で別の処理を実行でき
ない状態)にあるかまたはアイドル状態(つま
り、現在何等の処理も行なつておらず新らしい処
理にいつでも応じられる空状態)にあるかを監視
するチヤンネル状態監視プログラムが動作してい
る。前記チヤンネル4−Kに対するこの監視プロ
グラムはチヤンネル4−Kがアイドル状態か否か
を監視している(第6図ア)。
し、それぞれのチヤンネルが現在ビジー状態(つ
まり何等かの処理を実行中で別の処理を実行でき
ない状態)にあるかまたはアイドル状態(つま
り、現在何等の処理も行なつておらず新らしい処
理にいつでも応じられる空状態)にあるかを監視
するチヤンネル状態監視プログラムが動作してい
る。前記チヤンネル4−Kに対するこの監視プロ
グラムはチヤンネル4−Kがアイドル状態か否か
を監視している(第6図ア)。
このチヤンネル4−Kのある入出力命令の実行
が終了し一時このチヤンネル4−Kがアイドル状
態になると、このプログラムはこのチヤンネル4
−Kに対応する前記入出力命令実行待フリツプフ
ロツプ32−Kがセツトされているか否かをチエ
ツクし(第6図イ)、もしこれがセツトされてい
る場合にはCHC3に対して割込みを発生し(第
6図ウ)、CHC3の入出力命令待行列処理プロセ
スを起動する。(第6図エ)。
が終了し一時このチヤンネル4−Kがアイドル状
態になると、このプログラムはこのチヤンネル4
−Kに対応する前記入出力命令実行待フリツプフ
ロツプ32−Kがセツトされているか否かをチエ
ツクし(第6図イ)、もしこれがセツトされてい
る場合にはCHC3に対して割込みを発生し(第
6図ウ)、CHC3の入出力命令待行列処理プロセ
スを起動する。(第6図エ)。
このプロセスが起動すると、まず対応するチヤ
ンネルのヘツダテーブル30−Kを読み(第6図
オ)、このヘツダテーブル30−KのFSTフイー
ルドが指定する入出力デバイス(つまり入出力命
令待行列の先頭に登録されている入出力デバイ
ス)に対応するサブチヤンネルの内容を読む(第
5図カ)。このサブチヤンネルとは、各チヤンネ
ル毎に、そのチヤンネルが管理する入出力デバイ
ス対応に設けたメモリエリアのことで、このサブ
チヤンネルに自己が管理する各入出力デバイスの
状態等を格納している。
ンネルのヘツダテーブル30−Kを読み(第6図
オ)、このヘツダテーブル30−KのFSTフイー
ルドが指定する入出力デバイス(つまり入出力命
令待行列の先頭に登録されている入出力デバイ
ス)に対応するサブチヤンネルの内容を読む(第
5図カ)。このサブチヤンネルとは、各チヤンネ
ル毎に、そのチヤンネルが管理する入出力デバイ
ス対応に設けたメモリエリアのことで、このサブ
チヤンネルに自己が管理する各入出力デバイスの
状態等を格納している。
こうしてFSTフイールドで指定された入出力
デバイスに対応するサブチヤンネルがアイドルか
否かをチエツクし(第6図キ)、この入出力デバ
イスが起動可能であることを確認すると対応する
連結テーブルのENQフイールドの“1”を
“0”にし(今まで行列に入つていたからENQフ
イールドに“1”が入つていたが、ここでこのデ
バイスを行列から取りはずすのでENQフイール
ドを“0”にする、第6図ク)、また、連結テー
ブルのNXTフイールドが“1”か否かをチエツ
クし(第6図ケ)、もし“1”の場合には次の順
番のデバイスがありそれが次回から待行列の先頭
に立つことになるので、この取りはずすデバイス
の連結テーブルのNXTDPフイールドの内容をヘ
ツダテーブルのFSTフイールドに格納する(第
6図コ)。こうして取りはずしたデバイスの連結
テーブルのCCWADフイールドに格納されたポイ
ンタの指示に従つてMM2から最初のCCWを取
り出し入出力命令実行の起動処理に入る(第6図
サ)。
デバイスに対応するサブチヤンネルがアイドルか
否かをチエツクし(第6図キ)、この入出力デバ
イスが起動可能であることを確認すると対応する
連結テーブルのENQフイールドの“1”を
“0”にし(今まで行列に入つていたからENQフ
イールドに“1”が入つていたが、ここでこのデ
バイスを行列から取りはずすのでENQフイール
ドを“0”にする、第6図ク)、また、連結テー
ブルのNXTフイールドが“1”か否かをチエツ
クし(第6図ケ)、もし“1”の場合には次の順
番のデバイスがありそれが次回から待行列の先頭
に立つことになるので、この取りはずすデバイス
の連結テーブルのNXTDPフイールドの内容をヘ
ツダテーブルのFSTフイールドに格納する(第
6図コ)。こうして取りはずしたデバイスの連結
テーブルのCCWADフイールドに格納されたポイ
ンタの指示に従つてMM2から最初のCCWを取
り出し入出力命令実行の起動処理に入る(第6図
サ)。
また、連結テーブルのNXTフイールドが
“0”の場合には、この取りはずしたデバイスが
待行列最後尾のデバイスであり、この取りはずし
によりこのチヤンネルの待行列は消失する。従つ
て、このチヤンネルのヘツダテーブルのVLDフ
イールドを“0”とし(第6図シ)、さらにまた
このチヤンネルの入出力命令実行待フリツプフロ
ツプを“0”にリセツト(第6図ス)した後、上
述と同様にして入出力命令実行の起動処理に入る
(第6図サ)。
“0”の場合には、この取りはずしたデバイスが
待行列最後尾のデバイスであり、この取りはずし
によりこのチヤンネルの待行列は消失する。従つ
て、このチヤンネルのヘツダテーブルのVLDフ
イールドを“0”とし(第6図シ)、さらにまた
このチヤンネルの入出力命令実行待フリツプフロ
ツプを“0”にリセツト(第6図ス)した後、上
述と同様にして入出力命令実行の起動処理に入る
(第6図サ)。
またもし、前記第6図キの処理において、この
待行列の先頭にあるデバイス対応のサブチヤンネ
ルがアイドルでないことを表示している場合に
は、このデバイスの連結テーブルのNXTフイー
ルドが1か否かをチエツクする(第6図セ)。も
しNXTフイールドが“1”の場合にはNXTDPフ
イールドの指示する入出力デバイス対応のサブチ
ヤンネルを読む(第6図ソ)。そしてこのサブチ
ヤンネルがアイドルか否かチエツクする(第6図
タ)。もしアイドルでなければさらにこのサブチ
ヤンネルに対応する連結テーブルのNXTフイー
ルドが“1”か否かをチエツクする(第6図
セ)。かくして第6図セ,ソ,タのループをくり
返すことにより、この待行列中で最初にサブチヤ
ンネルがアイドルになつているデバイスが見出さ
れると、そのデバイスを待行列から取りはずし
て、起動処理を行なうことになる。そのために、
まず見出されたデバイス対応の連結テーブルの
ENQフイールドを“1”から“0”にリセツト
し(第6図チ)、この連結テーブルのNXTフイー
ルドが“1”か否かに従つて(第6図ツ)、“1”
でない場合には、ヘツダテーブル中のLSTフイ
ールドの内容を一つ前のデバイスを指示するよう
に更新し(第6図テ)、さらにこの一つ前のデバ
イスの連結テーブルの内容も取りはずしに応じて
更新する(第6図ト、つまりこの場合には取りは
ずしの結果一つ前のデバイスの連結テーブルの
NXTフイールドは“0”となる)。
待行列の先頭にあるデバイス対応のサブチヤンネ
ルがアイドルでないことを表示している場合に
は、このデバイスの連結テーブルのNXTフイー
ルドが1か否かをチエツクする(第6図セ)。も
しNXTフイールドが“1”の場合にはNXTDPフ
イールドの指示する入出力デバイス対応のサブチ
ヤンネルを読む(第6図ソ)。そしてこのサブチ
ヤンネルがアイドルか否かチエツクする(第6図
タ)。もしアイドルでなければさらにこのサブチ
ヤンネルに対応する連結テーブルのNXTフイー
ルドが“1”か否かをチエツクする(第6図
セ)。かくして第6図セ,ソ,タのループをくり
返すことにより、この待行列中で最初にサブチヤ
ンネルがアイドルになつているデバイスが見出さ
れると、そのデバイスを待行列から取りはずし
て、起動処理を行なうことになる。そのために、
まず見出されたデバイス対応の連結テーブルの
ENQフイールドを“1”から“0”にリセツト
し(第6図チ)、この連結テーブルのNXTフイー
ルドが“1”か否かに従つて(第6図ツ)、“1”
でない場合には、ヘツダテーブル中のLSTフイ
ールドの内容を一つ前のデバイスを指示するよう
に更新し(第6図テ)、さらにこの一つ前のデバ
イスの連結テーブルの内容も取りはずしに応じて
更新する(第6図ト、つまりこの場合には取りは
ずしの結果一つ前のデバイスの連結テーブルの
NXTフイールドは“0”となる)。
また、この取りはずすデバイスの連結テーブル
のNXTフイールドが1の場合には、この取りは
ずす前のデバイスの連結テーブルの内容だけを更
新する(第6図ト、この場合には前のデバイスの
NXTDPフイールドにこの取りはずすNXTDPフ
イールドの内容を転送する)。こうして、前述と
同様に、取りはずした入出力デバイスの起動処理
に入る(第6図サ)。
のNXTフイールドが1の場合には、この取りは
ずす前のデバイスの連結テーブルの内容だけを更
新する(第6図ト、この場合には前のデバイスの
NXTDPフイールドにこの取りはずすNXTDPフ
イールドの内容を転送する)。こうして、前述と
同様に、取りはずした入出力デバイスの起動処理
に入る(第6図サ)。
またもし、前述の第6図セ,ソ,タのループで
この待行列の最後まで(第6図セのNXTフイー
ルドが“0”になるまで)、アイドルのサブチヤ
ンネルが見出されないときには、この状態で、同
じようなCHC3への割込みがつぎつぎに入るの
を避けるために、このチヤンネルの入出力命令実
行待フリツプフロツプを“0”にリセツトする
(第6図ナ)。こうしてリセツトされたフリツプフ
ロツプは新らしい入出力命令が入るか(前述第5
図ツ,テ,ト,チの分枝)、またはある入出力デ
バイスの入出力処理が終り上述の情況が変化する
(後述第7図ク)と再び“1”にセツトされる。
この待行列の最後まで(第6図セのNXTフイー
ルドが“0”になるまで)、アイドルのサブチヤ
ンネルが見出されないときには、この状態で、同
じようなCHC3への割込みがつぎつぎに入るの
を避けるために、このチヤンネルの入出力命令実
行待フリツプフロツプを“0”にリセツトする
(第6図ナ)。こうしてリセツトされたフリツプフ
ロツプは新らしい入出力命令が入るか(前述第5
図ツ,テ,ト,チの分枝)、またはある入出力デ
バイスの入出力処理が終り上述の情況が変化する
(後述第7図ク)と再び“1”にセツトされる。
さて、最後に、前述の第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図オ)、さらにこのチヤンネル
のヘツダテーブルを読み(第7カ)、そのVLDフ
イールドが“1”か否かをチエツクし(第7図
キ)、もしこれが“1”の場合つまり待行列が存
在する場合には、前述の第6図ナに関して述べた
理由によりリセツトされた入出力命令実行待フリ
ツプフロツプを再びセツトする(第7図ク)。
VLDフイールドが“0”の場合には入出力命令
待行列が存在しないので勿論この必要はない(第
7図ケ)。
上述のもののほかに、前述の第6図サの起動処理
で起動した入出力命令の実行がすんで、その結果
をCPU1に報告する場合にも用いられるが、こ
の場合には第7図イで連結テーブルのIPフイール
ドをチエツクするとこのフイールドに“1”がな
いためにこれを識別し、入出力命令実行結果に対
するCSWをMM2の前記領域に格納してCPUに
リポートし(第7図オ)、さらにこのチヤンネル
のヘツダテーブルを読み(第7カ)、そのVLDフ
イールドが“1”か否かをチエツクし(第7図
キ)、もしこれが“1”の場合つまり待行列が存
在する場合には、前述の第6図ナに関して述べた
理由によりリセツトされた入出力命令実行待フリ
ツプフロツプを再びセツトする(第7図ク)。
VLDフイールドが“0”の場合には入出力命令
待行列が存在しないので勿論この必要はない(第
7図ケ)。
以上述べたように、本実施例を用いると、
CPUの入出力命令の指令に対し、CHCはそのチ
ヤンネル番号が有効の場合には常にこれを受付け
(CC=0でCPUにリポートし)て入出力命令待
行列に登録し、こうして待行列が作られると入出
力命令実行待フリツプフロツプをセツトし、一方
各チヤンネルは自己がアイドルになり新らしく入
出力命令を実行できる状態になるとこのフリツプ
フロツプをチエツクし、もしこれがセツトされて
いる場合にはCHCに割込みを発生して実行起動
を要求し、この割込みを受けたCHCは待行列中
に登録された入出力デバイスの中で現在入出力命
令実行可能なものから順番に待行列から取りはず
し、このデバイスに対して指令された入出力命令
を実行するような動作を行う入出力制御装置を提
供することができる。
CPUの入出力命令の指令に対し、CHCはそのチ
ヤンネル番号が有効の場合には常にこれを受付け
(CC=0でCPUにリポートし)て入出力命令待
行列に登録し、こうして待行列が作られると入出
力命令実行待フリツプフロツプをセツトし、一方
各チヤンネルは自己がアイドルになり新らしく入
出力命令を実行できる状態になるとこのフリツプ
フロツプをチエツクし、もしこれがセツトされて
いる場合にはCHCに割込みを発生して実行起動
を要求し、この割込みを受けたCHCは待行列中
に登録された入出力デバイスの中で現在入出力命
令実行可能なものから順番に待行列から取りはず
し、このデバイスに対して指令された入出力命令
を実行するような動作を行う入出力制御装置を提
供することができる。
このため、CPUは一度入出力命令を指令する
と、特別の場合を除き、以後の処理をすべて入出
力制御装置に委ねることができるので、入出力命
令に対するオーバーヘツドを節減することができ
る。
と、特別の場合を除き、以後の処理をすべて入出
力制御装置に委ねることができるので、入出力命
令に対するオーバーヘツドを節減することができ
る。
なお、本実施例の第5図、第6図および第7図
のフローチヤートで示したCHCおよびチヤンネ
ルCHの動作は、フアームウエアを用いて容易に
実現することができる。また勿論専用のハードウ
エアを用いて実現することも可能である。
のフローチヤートで示したCHCおよびチヤンネ
ルCHの動作は、フアームウエアを用いて容易に
実現することができる。また勿論専用のハードウ
エアを用いて実現することも可能である。
また、本実施例においては入出力命令実行待フ
リツプフロツプ32−1〜32−Nの物理的位置
をCHC3内としたが勿論これを各チヤンネル中
においてもよい。
リツプフロツプ32−1〜32−Nの物理的位置
をCHC3内としたが勿論これを各チヤンネル中
においてもよい。
また、本実施例に用いた入出力待行列ヘツダテ
ーブル30−1〜30−N、入出力待行列連結テ
ーブル31−1−1〜31−N−MNおよび入出
力命令実行待フリツプフロツプ32−1〜32−
NはRAMの予め定めた領域のそれぞれのアドレ
スの内容として構成することもできる。
ーブル30−1〜30−N、入出力待行列連結テ
ーブル31−1−1〜31−N−MNおよび入出
力命令実行待フリツプフロツプ32−1〜32−
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……
入出力待行列ヘツダテーブル、30−1−1〜3
1−N−MN……入出力待行列連結テーブル、3
2−1〜32−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……
入出力待行列ヘツダテーブル、30−1−1〜3
1−N−MN……入出力待行列連結テーブル、3
2−1〜32−N……入出力命令実行待フリツプ
フロツプ。
Claims (1)
- 【特許請求の範囲】 1 中央処理装置と主記憶装置とチヤンネル制御
装置と複数のチヤンネルと複数の入出力デバイス
とを含む情報処理装置において、 前記各チヤンネル対応に設けられ該チヤンネル
ごとに作られる入出力命令待行列の先頭に登録さ
れた前記デバイスのデバイス番号に関する情報を
含む複数の入出力待行列ヘツダテーブルと、 前記各デバイス対応に設けられ対応するデバイ
スが前記待行列に登録されているか否かに関する
情報と前記主記憶装置中に格納されたこのデバイ
スに対する入出力命令の格納開始番地に関する情
報と前記待行列中における次の順番のデバイスの
有無に関する情報とこれが有る場合に該デバイス
のデバイス番号に関する情報とを含む複数の入出
力待行列連結テーブルと、 前記各チヤンネル対応に設けられ前記各待行列
の生成消滅に応答して制御される複数のフリツプ
フロツプとを含み、 前記中央処理装置から入出力命令を受けた前記
チヤンネル制御装置は前記入出力命令により指定
されたチヤンネル番号およびデバイス番号により
対応する前記ヘツダテーブルおよび前記連結テー
ブルを参照しこれを用いて前記待行列を作成し前
記フリツプフロツプをセツトし任意の前記チヤン
ネルが空状態になつたときに該チヤンネルは対応
する前記フリツプフロツプを参照し前記制御装置
に割込みを発生しこれに応答して前記制御装置は
対応するチヤンネルの前記待行列を参照し待行列
中に登録されたデバイスに対する入出力命令の起
動を開始するようにしたことを特徴とする入出力
制御装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1348682A JPS58129627A (ja) | 1982-01-29 | 1982-01-29 | 入出力制御装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1348682A JPS58129627A (ja) | 1982-01-29 | 1982-01-29 | 入出力制御装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS58129627A JPS58129627A (ja) | 1983-08-02 |
| JPS62541B2 true JPS62541B2 (ja) | 1987-01-08 |
Family
ID=11834441
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1348682A Granted JPS58129627A (ja) | 1982-01-29 | 1982-01-29 | 入出力制御装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS58129627A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH02144509U (ja) * | 1989-05-08 | 1990-12-07 |
-
1982
- 1982-01-29 JP JP1348682A patent/JPS58129627A/ja active Granted
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH02144509U (ja) * | 1989-05-08 | 1990-12-07 |
Also Published As
| Publication number | Publication date |
|---|---|
| JPS58129627A (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 | |
| CN101946242B (zh) | 一种提供间接数据寻址的方法和系统 | |
| US5170472A (en) | Dynamically changing a system i/o configuration definition | |
| US8166206B2 (en) | Cancel instruction and command for determining the state of an I/O operation | |
| US4272819A (en) | Inter-subsystem direct transfer system | |
| US6055602A (en) | Logical positioning within a storage device by a storage controller | |
| JP2557199B2 (ja) | インターフェース・システムおよび方法 | |
| JPH0750456B2 (ja) | 入出力制御システム | |
| JPS62541B2 (ja) | ||
| JPS62542B2 (ja) | ||
| EP0290533B1 (en) | I/o system for off-loading operating system functions | |
| JPS62543B2 (ja) | ||
| JPS603229B2 (ja) | 情報処理方式 | |
| JP2823624B2 (ja) | I/oインタフェース制御方法 | |
| JPS6127791B2 (ja) | ||
| JPH0766357B2 (ja) | 入出力制御方式 | |
| JPH07111711B2 (ja) | 処理終了割込制御システム | |
| JPS6229831B2 (ja) | ||
| JPS638506B2 (ja) | ||
| JPH0486923A (ja) | タスク管理制御方式 | |
| JPH0425581B2 (ja) | ||
| JPH0424733B2 (ja) | ||
| JPH01237745A (ja) | チャネルパス選択方式 | |
| JPH0376505B2 (ja) |