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
Application number
JP1348682A
Other languages
Japanese (ja)
Other versions
JPS58129627A (en
Inventor
Yoshihisa Shibata
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.)
NEC Corp
Original Assignee
Nippon Electric Co Ltd
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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP1348682A priority Critical patent/JPS58129627A/en
Publication of JPS58129627A publication Critical patent/JPS58129627A/en
Publication of JPS62541B2 publication Critical patent/JPS62541B2/ja
Granted 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/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/122Program 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

【発明の詳細な説明】 本発明は入出力制御装置に関する。情報処理装
置が周辺の入出力デバイス例えば磁気デスク、テ
レタイプ、ラインプリンタ等に対してデータの入
出力を行なう場合には、これらデータの入出力は
入出力制御装置を介して行なわれる。
DETAILED DESCRIPTION OF THE INVENTION The present invention relates to an input/output control device. When the information processing apparatus inputs and outputs data to peripheral input/output devices such as magnetic desks, teletypes, line printers, etc., these data inputs and outputs are performed via an input/output control device.

一般に、入出力制御装置は複数のチヤンネルを
有し、さらにこれら各チヤンネルには複数のデバ
イスが割当てられている。従つて中央処理装置
CPUがある特定のデバイスに対してデータの入
出力を行なう場合には、CPUはそのデバイスの
属するチヤンネル番号と、そのデバイスのデバイ
ス番号とを指定してデータの入出力を行なう。
Generally, an input/output control device has a plurality of channels, and each of these channels is assigned a plurality of devices. Therefore the central processing unit
When the CPU inputs and outputs data to a specific device, the CPU specifies the channel number to which the device belongs and the device number of the device, and inputs and outputs the data.

このように複数のチヤンネルが存在し、各チヤ
ンネルが複数のデバイスに共通に使用され、さら
にまた各デバイスの動作速度が、CPUの動作速
度に比較して一般に遥かに遅いため、CPUがこ
れらのデバイスに対してデータの入出力を行なう
場合には、これらの点を考慮し一般に下記のよう
に行なわれる。
Because there are multiple channels, each channel is commonly used by multiple devices, and the operating speed of each device is generally much slower than that of the CPU, the CPU When inputting/outputting data to/from, these points are generally taken into consideration as follows.

CPU(CPUのオペレーシヨンプログラム)
は、まず、この入出力デバイスが従うべき入出力
動作の詳細を規定したチヤンネルプログラムを作
成し、これを主記憶装置中の特定のメモリアドレ
スに格納する。つぎに、入出力制御装置に対し入
出力命令を指令する。この入出力命令は、これが
入出力命令であることを指定するオペコードと、
入出力を実行すべきデバイスの属するチヤンネル
番号と、このデバイスのデバイス番号と、さらに
主記憶装置中における上述のチヤンネルプログラ
ムの格納開始番地を示す情報とを含んでいる。
CPU (CPU operation program)
First, a channel program is created that specifies the details of the input/output operations to be followed by this input/output device, and is stored at a specific memory address in the main memory. Next, an input/output command is issued to the input/output control device. This I/O instruction has an opcode that specifies that this is an I/O instruction, and
It includes the channel number to which the device to perform input/output belongs, the device number of this device, and information indicating the storage start address of the above-mentioned channel program in the main storage device.

この入出力命令の指令を受けると、入出力制御
装置は直ちに指定されたチヤンネルおよびデバイ
スの現在の状態をチエツクし、そのチエツク結果
をコンデシヨンコードとしてCPUにリポートす
る。
Upon receiving this input/output command, the input/output control device immediately checks the current status of the specified channel and device, and reports the check result to the CPU as a condition code.

このコンデシヨンコードCCは、例えば4段階
の異なる状態を区別して表示する。
This condition code CC distinguishes and displays, for example, four different states.

CC=0は指定されたチヤンネル、サブチヤン
ネルおよびデバイスが、現在、この入出力命令を
実行できる状態にあり、従つてこの入出力命令は
直ちに実行開始されることを表示する。
CC=0 indicates that the specified channel, subchannel, and device are currently ready to execute this I/O command, and therefore this I/O command will begin execution immediately.

CC=1は現在デバイスが割込保留中または使
用中であることを表示し、CC=2は現在このチ
ヤンネルまたはサブチヤンネルが使用中(ビジー
状態)または割込保留中であることを表示する。
CC=1 indicates that the device is currently pending an interrupt or is in use; CC=2 indicates that this channel or subchannel is currently in use (busy) or pending an interrupt.

また、CC=3は、指定されたチヤンネル、サ
ブチヤンネルまたはデバイスが現在障害状態にあ
るとかまたは実際に存在しないとかの理由のため
入出力動作の実行が不可能であることを表示す
る。
CC=3 also indicates that the input/output operation cannot be performed because the specified channel, subchannel, or device is currently in a failed state or does not actually exist.

さて、前記CC=0のリポートを発生した場合
には、入出力制御装置は直ちに主記憶装置中の指
定された番地から前記チヤンネルプログラムを順
番に読み出し、それに従つて指令された入出力動
作の実行を開始する。
Now, when the report of CC=0 is generated, the input/output control device immediately reads the channel programs in order from the specified address in the main memory and executes the commanded input/output operation accordingly. Start.

一方、CC=0のリポートを受けたCPUは、そ
れによりこの入出力命令が成功したことを識別
し、実際の入出力動作の実行は入出力制御装置に
任せ、CPU自身は次のプログラムの実行に進
む。このようにして、比較的長時間を必要とする
入出力命令の実行をCPUのプログラムから入出
力制御装置の制御にうつし、これによつて入出力
命令のCPUプログラムに対するオーバーヘツド
を軽減している。
On the other hand, the CPU that receives the CC = 0 report identifies that this I/O instruction has been successful, leaves the execution of the actual I/O operation to the I/O controller, and the CPU itself executes the next program. Proceed to. In this way, the execution of input/output instructions that require a relatively long time is transferred from the CPU program to the control of the input/output control device, thereby reducing the overhead of input/output instructions on the CPU program. .

一方また、CC=3がCPUにリポートされた場
合には、いずれにしてもこの入出力命令の実行は
不可能であるため、CPUのプログラムはこの入
出力命令をこれ以上くりかえすことなく、次のプ
ログラムに進むことができる。
On the other hand, if CC=3 is reported to the CPU, it is impossible to execute this input/output instruction in any case, so the CPU program does not repeat this input/output instruction any more and starts the next one. You can proceed to the program.

これに対し、CC=1またはCC=2がリポート
された場合には、CPUのプログラムはこれによ
り入出力命令の一時的な実行失敗を識別し、適当
な時間をおいて再び同じ入出力命令の実行を指令
する。
On the other hand, if CC = 1 or CC = 2 is reported, the CPU program identifies a temporary failure in execution of the I/O instruction and attempts the same I/O instruction again after an appropriate period of time. Command execution.

このように、従来装置において入出力命令が一
時的に実行に失敗した場合には、CPUのプログ
ラムはこれに対して適当な処理をほどこし、再び
同じ入出力命令の実行を指令しなければならな
い。これは入出力命令の実行に対しそれだけ
CPUプログラムに対するオーバーヘツトを増大
するという欠点を有している。
In this manner, when an input/output command temporarily fails to execute in a conventional device, the CPU program must perform appropriate processing and issue a command to execute the same input/output command again. This applies only to the execution of input/output instructions.
It has the disadvantage of increasing the overhead for the CPU program.

本発明の目的は上述の従来の欠点を除去した入
出力制御装置を提供するにある。
SUMMARY OF THE INVENTION An object of the present invention is to provide an input/output control device that eliminates the above-mentioned conventional drawbacks.

本発明の装置は中央処理装置と主記憶装置とチ
ヤンネル制御装置と複数のチヤンネルと複数の入
出力デバイスとを含む情報処理装置において、前
記各チヤンネル対応に設けられ該チヤンネルごと
に作られる入出力命令待行列の先頭に登録された
前記デバイスのデバイス番号に関する情報を含む
複数の入出力待行列ヘツダテーブルと、前記各デ
バイス対応に設けられ対応するデバイスが前記待
行列に登録されているか否かに関する情報と前記
主記憶装置中に格納されたこのデバイスに対する
入出力命令の格納開始番地に関する情報と前記待
行列中における次の順番のデバイスの有無に関す
る情報とこれが有る場合に該デバイスのデバイス
番号に関する情報とを含む複数の入出力待行列連
結テーブルと、前記各チヤンネル対応に設けられ
前記各待行列の生成消滅に応答して制御される複
数のフリツプフロツプとを含み、前記中央処理装
置から入出力命令を受けた前記チヤンネル制御装
置は前記入出力命令により指定されたチヤンネル
番号およびデバイス番号により対応する前記ヘツ
ダテーブルおよび前記連結テーブルを参照し、こ
れを用いて前記待行列を作成し、前記フリツプフ
ロツプをセツトし任意の前記チヤンネルが空状態
になつたときに該チヤンネルは対応する前記フリ
ツプフロツプを参照し、前記制御装置に割込みを
発生し、これに応答して前記制御装置は対応する
チヤンネルの前記待行列を参照し待行列中に登録
されたデバイスに対する入出力命令の起動を開始
する。
The device of the present invention is an information processing device including a central processing unit, a main storage device, a channel control device, a plurality of channels, and a plurality of input/output devices. a plurality of input/output queue header tables including information regarding the device number of the device registered at the head of the queue; and information provided for each of the devices regarding whether or not the corresponding device is registered in the queue; Information regarding the storage start address of an input/output instruction for this device stored in the main memory, information regarding the presence or absence of a next device in the queue, and information regarding the device number of the device if there is one. a plurality of input/output queue concatenation tables including a plurality of input/output queue concatenation tables; and a plurality of flip-flops provided for each of the channels and controlled in response to generation/disappearance of each of the queues, and receiving input/output instructions from the central processing unit. The channel control device refers to the header table and the concatenation table corresponding to the channel number and device number specified by the input/output command, uses them to create the queue, sets the flip-flop, and executes any of the When a channel becomes empty, the channel refers to the corresponding flip-flop and generates an interrupt to the controller, and in response, the controller refers to the queue of the corresponding channel and interrupts the queue. Starts invoking input/output commands for devices registered in the device.

次に図面を参照して本発明を詳細に説明する。 Next, the present invention will be explained in detail with reference to the drawings.

第1図は本発明の一実施例を説明するためのブ
ロツク図である。
FIG. 1 is a block diagram for explaining one embodiment of the present invention.

本実施例は中央処理装置(以下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を有している。
This embodiment includes a central processing unit (hereinafter referred to as CPU) 1, a main memory unit (hereinafter referred to as MM) 2, a channel control unit (hereinafter referred to as CHC) 3, a plurality of channels CH4-1,
...4-K...4-N, and multiple input/output devices IOD5-1-1, 5-1- belonging to each channel
2,...5-1-M 1 ,...5-K-1,...5-K-
R,...5-K-M K ,...5-N-1,5-N-
2,...5-N-M N.

前記CHC3および前記チヤンネル4−1〜4
−Nが入出力制御装置6を構成している。
The CHC3 and the channels 4-1 to 4
-N constitutes the input/output control device 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とを含んでいる。
The CHC 3 also has an input/output queue header table 30 corresponding to each channel as shown in FIG.
-1,...30-K,...30-N, and an input/output queue concatenation table 31-1- for each input/output device.
1, 31-1-2,...31-1-M 1 ,...31-
K-1, 31-K-2,...31-K-R,...31
-K-M K ,...31-N-1,31-N-2,...
31-N-M N , and a flip-flop FF32- for input/output command execution corresponding to each channel.
1, 32-K, ...32-N.

前記各ヘツダテーブル30は、第3図に示すよ
うに、予め定めた一定のビツト幅を有するレジス
タから成り、対応するチヤンネルに入出力命令待
行列が存在するか否かの1ビツトの情報を格納す
るVLDフイールドと、この入出力命令待行列が
存在する場合、この待行列の先頭に登録された入
出力デバイス対応の前記連結テーブル31を指示
するポインタを格納するためのFSTフイールド
と、同じく待行列の最後尾に登録された入出力デ
バイス対応の連結テーブル31を指示するポイン
タを格納するためのLSTフイールドとを含んで
いる。
As shown in FIG. 3, each header table 30 consists of a register having a predetermined bit width, and stores 1-bit information indicating whether an input/output instruction queue exists in the corresponding channel. VLD field, and if this input/output command queue exists, an FST field for storing a pointer pointing to the concatenation table 31 corresponding to the input/output device registered at the head of this queue, and also an FST field of the queue. It also includes an LST field for storing a pointer pointing to the concatenation table 31 corresponding to the input/output device registered at the end.

また、前記各連結テーブル31は、第4図に示
すように、予め定めた一定のビツト幅を有するレ
ジスタから成り、前記入出力命令待行列におい
て、この連結テーブルに対応する入出力デバイス
の、次の順番の入出力デバイスが存在するか否か
の1ビツトの情報を格納するNXTフイールド
と、このNXTフイールドの内容が“1”の場
合、上記次の順番の入出力デバイス対応の連結テ
ーブルを指示するポインタを格納するための
NXTDPフイールドと、この連結テーブル自身に
対応する入出力デバイスが現在入出力命令待行列
中に加わつているか否かの1ビツトの情報を格納
するENQフイールドと、この入出力デバイスが
入出力命令待行列に加わつているときにさらに新
らしい入出力命令が発生したか否かの1ビツトの
情報を格納するIPフイールドと、さらにこの入出
力デバイスに対するチヤンネルプログラム(チヤ
ンネルコマンドワード、CCW)のMM2中にお
ける格納開始番地を指示するポインタを格納する
CCWADフイールドとを含んでいる。
Each of the concatenation tables 31, as shown in FIG. An NXT field that stores 1-bit information indicating whether or not an input/output device in the order exists, and if the content of this NXT field is "1", a concatenation table corresponding to the input/output device in the next order is specified. to store a pointer to
NXTDP field, ENQ field that stores 1-bit information indicating whether or not the input/output device corresponding to this concatenation table is currently added to the input/output command queue, and An IP field that stores 1-bit information indicating whether a new input/output command has occurred while the input/output device is being added to the input/output device, and a channel program (channel command word, CCW) for this input/output device stored in MM2. Store a pointer indicating the starting address
Contains the CCWAD field.

さて、本実施例によるデータ入出力動作は下記
のように行なわれる。
Now, the data input/output operation according to this embodiment is performed as follows.

今、一例として、第K番目のチヤンネル(つま
りチヤンネル4−K)の第R番目の入出力デバイ
ス(つまりデバイス5−K−R)に対するデータ
の入出力動作について説明する。第5図、第6図
および第7図は本実施例の動作を説明するための
フローチヤートである。
Now, as an example, a data input/output operation for the Rth input/output device (that is, device 5-K-R) of the Kth channel (that is, channel 4-K) will be described. FIG. 5, FIG. 6, and FIG. 7 are flowcharts for explaining the operation of this embodiment.

CPU1のオペレーシヨンプログラムOSはま
ず、入出力デバイス5−K−Rが行うべき入出力
動作の詳細を規定したチヤンネルプログラム(こ
れをCCW:チヤンネルコマンドワードという)
を作りこれをMM2の特定のメモリアドレスに格
納する。
The operation program OS of the CPU 1 is first a channel program (this is called a channel command word (CCW)) that specifies the details of the input/output operations to be performed by the input/output device 5-K-R.
and store it in a specific memory address of MM2.

ついでCHC3をコールし、DAW(デバイスア
ドレスワード:これは実行すべきオペーレーシヨ
ン、つまり現在の場合は入出力命令、を指定し、
かつ、このオペレーシヨンを実行すべき入出力デ
バイスのチヤンネル番号、現在の例ではK、およ
びデバイス番号、現在の例ではR、を含んでいる
ワードである)とCAW(コマンドアドレスワー
ド:これは前記CCWのMM2中における格納開
始番地を指示するポインタ)とを供給し(第5図
ア)、CHC3からのコンデシヨンコードによるリ
ポートの応答を待つ(第5図イ)。
Next, call CHC3, specify the DAW (device address word: this is the operation to be executed, in the current case, an input/output instruction),
and a word containing the channel number, K in the current example, and the device number, R in the current example, of the input/output device on which this operation is to be performed) and the CAW (command address word; this is the word that contains the A pointer indicating the storage start address in MM2 of the CCW is supplied (FIG. 5A), and waits for a report response using a condesion code from CHC3 (FIG. 5B).

一方、CPU1からの前記コール(第5図ア)
を受けたCHC3は供給された前記DAWとCAW
とを取り出し(第5図エ)、これを解読すること
によつて指定されたオペレーシヨンが入出力命令
SIOがそれ以外の命令0かを判定する(第5図
オ)。もしこれが、現在の場合のように、入出力
命令SI0である場合には、前記DAWで指定され
たチヤンネルKが現在有効か否か(実際に存在し
かつ現在障害状態でないかどうか)をチエツクす
る(第5図カ)。もし有効でなければコンデシヨ
ンコードを3とし(CC=3)、CPU1に対して
リポートする(第5図ク)。またもし有効な場合
にはコンデシヨンコードを0とし(CC=0)、
CPU1に対してリポートする(第5図キ)。
On the other hand, the above call from CPU1 (Figure 5 A)
The received CHC3 is the supplied DAW and CAW.
(Fig. 5 d), and by decoding this, the specified operation is determined as an input/output command.
It is determined whether SIO is 0 for any other instruction (Fig. 5 O). If this is the input/output instruction SI0, as in the current case, check whether the channel K specified in the DAW is currently valid (actually exists and is not currently in a failure state). (Figure 5 F). If it is not valid, the condition code is set to 3 (CC=3) and a report is made to CPU1 (Figure 5, h). Also, if it is valid, set the condescension code to 0 (CC = 0),
Report to CPU1 (Figure 5 K).

このいずれかのリポートを受けたCPU1のプ
ログラムは、この受信を確認すると(第5図イ)
次の命令の実行に進む(第5図ウ)が、本実施例
においては入出力命令に対するCHC3のコンデ
シヨンコードによるリポートがCC=0とCC=3
だけであり、前述の従来装置のCC=1およびCC
=2に対するリポートを含まない点に特徴があ
る。このためにCPU側のプログラムにおいては
前述の従来装置の欠点が除かれることになる。
When the CPU1 program receives one of these reports, it confirms the reception (Figure 5 B).
The process proceeds to the execution of the next instruction (Fig. 5 C), but in this embodiment, the report based on the condition code of CHC3 for the input/output instruction is CC=0 and CC=3.
CC = 1 and CC of the conventional device mentioned above
The feature is that it does not include a report for =2. For this reason, the above-mentioned drawbacks of the conventional device can be eliminated in the program on the CPU side.

なお、前記オペーレーシヨン判定(第5図オ)
において、解読した命令が入出力命令以外の命令
(例えばテスト命令等)である場合には、指定さ
れたこの命令に対する処理を行ない(第5図
ケ)、その結果によつて定まるコンデシヨンコー
ドを発生し(第5図コ)、CPUにリポートする
が、この処理は従来装置と同様である。
In addition, the above-mentioned operation judgment (Fig. 5 O)
If the decoded instruction is an instruction other than an input/output instruction (for example, a test instruction, etc.), the specified instruction is processed (Fig. This occurs (see Figure 5) and is reported to the CPU, but this processing is the same as in conventional devices.

さて、CC=0を送出した場合(第5図キ)に
は、CHC3の処理はさらに進み、次に前記DAW
に含まれるチヤンネル番号Kとデバイス番号Rで
指定される連結テーブル31−K−Rの内容を読
む(第5図サ)。そしてまず、ENQフイールドが
“1”か否かをチエツクする(第5図シ)。
Now, when CC=0 is sent (Fig. 5 G), the processing of CHC3 proceeds further, and then the DAW
The contents of the concatenation table 31-K-R specified by the channel number K and device number R included in the file are read (see FIG. 5). First, it is checked whether the ENQ field is "1" (Figure 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図ス)。
First, the processing when this is "0" will be explained. The fact that the ENQ field is "0" (not "1") means that the input/output device 5-K-R that received this input/output command has not yet been added to the input/output command queue of this channel. (i.e. this input/output device 5-
This means that there are no I/O commands waiting for K-R). Therefore, as soon as an input/output command is issued to this input/output device 5-K-R, the concatenation table 3 for this device is immediately updated.
The ENQ field of 1-K-R is set to "1" to indicate that this has been added to the queue, and at the same time, the CAW (pointer indicating the storage start address in MM2 of the channel program of this input/output instruction) is set to this concatenation. Table 31-K-R
Write in the CCWAD field (Figure 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の入出
力命令待行列の先頭(かつ最後尾)に登録された
ことになる。
Next, the header table 30-K for this channel 4-K is read (FIG. 5C). Then, it is checked whether the VLD field of this header table 30-K is "0" (FIG. 5-S).
A value of “0” in the VLD field means that there is no I/O command queue for this channel yet (that is, some I/O devices belonging to this channel are currently receiving and executing I/O commands. (meaning there is nothing to wait for). Therefore, the input/output device 5-K-R that has received the current input/output command will form the queue first, so in order to display it, the VLD field of the header table 31-K-R is set to "1'', and a pointer indicating the concatenation table 31-K-R corresponding to this input/output device 5-K-R is stored in the FST field and the LST field (FIG. 5). In this way, the input/output device 31-K-R is registered at the head (and tail) of the input/output command queue of this channel 4-K.

これがすむと、CHC3は、このチヤンネル4
−Kに対応する入出力命令実行待フリツプフロツ
プFF32−Kをセツトし、このチヤンネル4−
Kに入出力命令の実行を待つている入出力デバイ
スがあることを表示する(第5図チ)。
Once this is done, CHC3 will be able to connect to this channel 4.
The flip-flop FF32-K corresponding to input/output instruction execution is set, and this channel 4-K is set.
It is displayed on K that there is an input/output device waiting for execution of an input/output command (FIG. 5, h).

またもし、上記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がこのチヤンネルの入
出力命令待行列の最後尾であることを表示する。
Again, check the above VLD (Figure 5)
If VLD is "1" in this channel 4-K, it means that an input/output instruction queue already exists in this channel 4-K, and the pointer to the last input/output device is in this header table 30-K.
Stored in the LST field. Input/output device 5-K which recently received the input/output start command
-R needs to be registered as the latest input/output device next to the current last input/output device. Therefore, first of all, the header table 30-K
The concatenation table pointed to by the pointer stored in the LST field is selected (Fig. ) is set to "1", and the NXTDP field (this is the field that stores the pointer to the concatenation table corresponding to the next input/output device mentioned above) is set to "1". The last added input/output device 5-K-R compatible concatenation table 31-
A pointer pointing to K-R is stored (see Figure 5), and this same pointer is stored in header table 3.
Store it in the LST field of 0-K (Figure 5),
Indicates that the input/output device 5-K-R is at the end of the input/output command queue for this channel.

これがすむと、前述と同様にこのチヤンネルの
入出力命令実行待フリツプフロツプFF32−K
をセツトする(第5図チ、普通はこの場合、待行
列がすでに存在しているのでフリツプフロツプ3
2−Kはセツトされている筈であるが、後述する
ように、待行列が存在してもこのフリツプフロツ
プ32−Kをリセツトする場合があるのでこれに
対する処置である)。こうして、入出力命令を受
けた入出力デバイスが、それまでに待行列に加わ
つていない場合には、このデバイスは新らしく待
行列に加えられ、またそれに従つて、このチヤン
ネルの入出力命令実行待フリツプフロツプがセツ
トされることになる。
Once this is completed, the flip-flop FF32-K for this channel is ready for execution of input/output instructions, as described above.
(see Figure 5C) Normally in this case, the queue already exists, so
2-K should have been set, but as will be described later, this flip-flop 32-K may be reset even if there is a queue, so this is a countermeasure for this). Thus, if an I/O device that has received an I/O command has not previously been added to the queue, this device is newly added to the queue, and the I/O commands for this channel are executed accordingly. A waiting flip-flop will be set.

さて、次に、前記第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に知らせるの
である。これに対する処理については後述する。
但しこの分枝を通る処理の発生する確率は低い。
Now, next, in the process shown in Figure 5 above, ENQ
The processing when the field is "1" will be explained. The fact that the ENQ field is “1” means that the input/output device 5 that received the input/output command this time
-K-R indicates that the input/output command has already been received and is currently registered in a queue waiting for its execution. In this case, instead of registering the same input/output device 5-K-R twice in a new order, the corresponding connection table 31-K-
The IP field of R is set to "1" (FIG. 5 (n)) to indicate that there is a specific processing request for this input/output device 5-K-R. Moreover
Issues an interrupt request to CPU1 (Figure 5 D). In other words, CHC3 has already returned a report of CC=0 (successful reception of input/output command) to CPU1 in response to the commanded input/output command, but in reality, there is a special situation in which it is difficult to accept this as is. Therefore, this is notified to the CPU 1 using an interrupt. Processing for this will be described later.
However, the probability that processing that passes through this branch will occur is low.

さて、こうして入出力命令は受け付けられ、待
行列に登録され、さらにこの待行列の存在を示す
フリツプフロツプ32−Kがセツトされたが、こ
れら各命令の行列からの取はずしとその実行は以
下のように行なわれる。
Now, the input/output commands are accepted and registered in the queue, and the flip-flop 32-K is set to indicate the existence of this queue.The removal of each of these commands from the queue and their execution are as follows. It will be held in

すなわち、各チヤンネル4−1〜4−Nに対応
し、それぞれのチヤンネルが現在ビジー状態(つ
まり何等かの処理を実行中で別の処理を実行でき
ない状態)にあるかまたはアイドル状態(つま
り、現在何等の処理も行なつておらず新らしい処
理にいつでも応じられる空状態)にあるかを監視
するチヤンネル状態監視プログラムが動作してい
る。前記チヤンネル4−Kに対するこの監視プロ
グラムはチヤンネル4−Kがアイドル状態か否か
を監視している(第6図ア)。
That is, corresponding to each channel 4-1 to 4-N, each channel is currently in a busy state (that is, a state in which it is executing some process and cannot execute another process) or in an idle state (that is, it is currently in a state in which it cannot execute another process). A channel status monitoring program is running that monitors whether the channel is in an empty state where no processing is being performed and is ready for new processing at any time. This monitoring program for channel 4-K monitors whether channel 4-K is in an idle state (FIG. 6A).

このチヤンネル4−Kのある入出力命令の実行
が終了し一時このチヤンネル4−Kがアイドル状
態になると、このプログラムはこのチヤンネル4
−Kに対応する前記入出力命令実行待フリツプフ
ロツプ32−Kがセツトされているか否かをチエ
ツクし(第6図イ)、もしこれがセツトされてい
る場合にはCHC3に対して割込みを発生し(第
6図ウ)、CHC3の入出力命令待行列処理プロセ
スを起動する。(第6図エ)。
When the execution of a certain input/output instruction on this channel 4-K is finished and this channel 4-K temporarily becomes idle, this program
It is checked whether the input/output instruction execution waiting flip-flop 32-K corresponding to -K is set (see Figure 6A), and if it is set, an interrupt is generated to CHC3 ( (c) in Fig. 6, starts the input/output command queue processing process of CHC3. (Figure 6 d).

このプロセスが起動すると、まず対応するチヤ
ンネルのヘツダテーブル30−Kを読み(第6図
オ)、このヘツダテーブル30−KのFSTフイー
ルドが指定する入出力デバイス(つまり入出力命
令待行列の先頭に登録されている入出力デバイ
ス)に対応するサブチヤンネルの内容を読む(第
5図カ)。このサブチヤンネルとは、各チヤンネ
ル毎に、そのチヤンネルが管理する入出力デバイ
ス対応に設けたメモリエリアのことで、このサブ
チヤンネルに自己が管理する各入出力デバイスの
状態等を格納している。
When this process starts, it first reads the header table 30-K of the corresponding channel (Fig. 6 O), and registers the input/output device (that is, the head of the input/output command queue) specified by the FST field of this header table 30-K. Read the contents of the subchannel corresponding to the input/output device (input/output device) (Figure 5 F). This subchannel is a memory area provided for each channel corresponding to the input/output device managed by that channel, and the status of each input/output device managed by itself is stored in this subchannel.

こうしてFSTフイールドで指定された入出力
デバイスに対応するサブチヤンネルがアイドルか
否かをチエツクし(第6図キ)、この入出力デバ
イスが起動可能であることを確認すると対応する
連結テーブルのENQフイールドの“1”を
“0”にし(今まで行列に入つていたからENQフ
イールドに“1”が入つていたが、ここでこのデ
バイスを行列から取りはずすのでENQフイール
ドを“0”にする、第6図ク)、また、連結テー
ブルのNXTフイールドが“1”か否かをチエツ
クし(第6図ケ)、もし“1”の場合には次の順
番のデバイスがありそれが次回から待行列の先頭
に立つことになるので、この取りはずすデバイス
の連結テーブルのNXTDPフイールドの内容をヘ
ツダテーブルのFSTフイールドに格納する(第
6図コ)。こうして取りはずしたデバイスの連結
テーブルのCCWADフイールドに格納されたポイ
ンタの指示に従つてMM2から最初のCCWを取
り出し入出力命令実行の起動処理に入る(第6図
サ)。
In this way, it is checked whether the subchannel corresponding to the input/output device specified in the FST field is idle (Figure 6 G), and when it is confirmed that this input/output device can be started, the ENQ field of the corresponding concatenation table is checked. 6. Set "1" to "0" (Up until now, the ENQ field had "1" in it because it was in the queue, but now we will remove this device from the queue, so we will set the ENQ field to "0". Also, check whether the NXT field in the concatenation table is "1" (Figure 6). If it is "1", there is a device in the next order and it will be added to the queue from next time. Since it will be at the top, the contents of the NXTDP field of the concatenation table of this device to be removed are stored in the FST field of the header table (Figure 6). According to the instruction of the pointer stored in the CCWAD field of the concatenation table of the removed device, the first CCW is retrieved from the MM2 and the startup process for executing the input/output command is started (FIG. 6).

また、連結テーブルのNXTフイールドが
“0”の場合には、この取りはずしたデバイスが
待行列最後尾のデバイスであり、この取りはずし
によりこのチヤンネルの待行列は消失する。従つ
て、このチヤンネルのヘツダテーブルのVLDフ
イールドを“0”とし(第6図シ)、さらにまた
このチヤンネルの入出力命令実行待フリツプフロ
ツプを“0”にリセツト(第6図ス)した後、上
述と同様にして入出力命令実行の起動処理に入る
(第6図サ)。
Furthermore, if the NXT field in the concatenation table is "0", the removed device is the last device in the queue, and the removal causes the queue of this channel to disappear. Therefore, after setting the VLD field of the header table of this channel to "0" (FIG. 6) and resetting the input/output instruction execution flip-flop of this channel to "0" (FIG. 6), the above-mentioned procedure is performed. In the same way, startup processing for executing input/output commands begins (see FIG. 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”となる)。
Also, in the process of Figure 6-g above, if the subchannel corresponding to the device at the head of this queue is displayed as not being idle, check whether the NXT field of the concatenation table of this device is 1 or not. Check (Figure 6). If the NXT field is "1", read the subchannel corresponding to the input/output device indicated by the NXTDP field (Fig. 6, So). Then, it is checked whether this subchannel is idle or not (Fig. 6). If it is not idle, it is further checked whether the NXT field of the concatenation table corresponding to this subchannel is "1" (FIG. 6, section). In this way, by repeating the loop of s, s, and t in Figure 6, when a device whose subchannel is idle is first found in this queue, that device is removed from the queue and the activation process is performed. I will do it. for that,
First, the concatenation table corresponding to the device found is
The ENQ field is reset from "1" to "0" (Figure 6, h), and depending on whether the NXT field of this concatenation table is "1" or not (Figure 6, T), it is set to "1".
If not, update the contents of the LST field in the header table to point to the previous device (see Figure 6), and update the contents of the concatenation table for the previous device accordingly. (Fig. 6) In this case, as a result of removal, the connection table of the previous device is
NXT field will be “0”).

また、この取りはずすデバイスの連結テーブル
のNXTフイールドが1の場合には、この取りは
ずす前のデバイスの連結テーブルの内容だけを更
新する(第6図ト、この場合には前のデバイスの
NXTDPフイールドにこの取りはずすNXTDPフ
イールドの内容を転送する)。こうして、前述と
同様に、取りはずした入出力デバイスの起動処理
に入る(第6図サ)。
Also, if the NXT field of the connection table of the device to be removed is 1, only the contents of the connection table of the device before removal are updated (see Figure 6).
Transfer the contents of this removed NXTDP field to the NXTDP field). In this way, the process of starting up the removed input/output device starts as described above (FIG. 6).

またもし、前述の第6図セ,ソ,タのループで
この待行列の最後まで(第6図セのNXTフイー
ルドが“0”になるまで)、アイドルのサブチヤ
ンネルが見出されないときには、この状態で、同
じようなCHC3への割込みがつぎつぎに入るの
を避けるために、このチヤンネルの入出力命令実
行待フリツプフロツプを“0”にリセツトする
(第6図ナ)。こうしてリセツトされたフリツプフ
ロツプは新らしい入出力命令が入るか(前述第5
図ツ,テ,ト,チの分枝)、またはある入出力デ
バイスの入出力処理が終り上述の情況が変化する
(後述第7図ク)と再び“1”にセツトされる。
Also, if the idle subchannel is not found until the end of this queue (until the NXT field in Figure 6 becomes "0") in the loop of Figure 6, Se, So, Ta, then this In this state, in order to prevent similar interrupts to CHC3 from occurring one after another, the input/output instruction execution flip-flop of this channel is reset to "0" (FIG. 6, N). The flip-flop that has been reset in this way receives a new input/output instruction (the 5th instruction mentioned above).
It is set to "1" again when the above-mentioned situation changes after the input/output processing of a certain input/output device is completed (FIG. 7, h).

さて、最後に、前述の第5図ニによるCPUへ
割込要求を行なつた場合のプロセスは次のように
なる。
Finally, the process when an interrupt request is made to the CPU according to FIG. 5D described above is as follows.

CHC3は、割込要求を出すときにはその割込
要求に対応するチヤンネル番号と、入出力デバイ
ス番号とを保持しておき、CPU1が割込を受付
けたときはこのチヤンネル番号とデバイス番号と
を用いて必要なヘツダテーブルおよび連結テーブ
ルにアクセスする。上記割込をCPU1が受けつ
けると、CHC3は上述の保持しているチヤンネ
ル番号デバイス番号を用いて対応するデバイスの
連結テーブルを読む(第7図ア)。該連結テーブ
ルのIPフイールドをチエツクすることにより(第
7図イ)、このIPフイールドが“1”の場合に
は、前述の第5図ニに対する割込要の受付である
ことを識別する。そして、待行列に入つている入
出力デバイスに重ねて入出力命令があつたことを
示す予め定められているチヤンネルステータスワ
ードCSWをMM2の予め定めた領域に格納して
CPU1にこれを知らせ(第7図ウ)、また、これ
に対するCHC3の処理はこれですんだのでこの
連結テーブルのIPフイールドを“0”にリセツト
する(第7図エ)。
When CHC3 issues an interrupt request, it holds the channel number and input/output device number corresponding to the interrupt request, and when CPU1 accepts the interrupt, it uses this channel number and device number. Access the necessary header and concatenation tables. When the CPU 1 accepts the above interrupt, the CHC 3 reads the concatenation table of the corresponding device using the channel number and device number held above (FIG. 7A). By checking the IP field of the concatenation table (FIG. 7(a)), if this IP field is "1", it is determined that an interrupt request for FIG. 5(d) has been received. Then, a predetermined channel status word CSW indicating that an input/output command has been received for the input/output device in the queue is stored in a predetermined area of MM2.
This is notified to the CPU 1 (FIG. 7C), and since this is the processing of the CHC 3, the IP field of this concatenation table is reset to "0" (FIG. 7D).

なお、CHC3からCPU1に対する割込みは、
上述のもののほかに、前述の第6図サの起動処理
で起動した入出力命令の実行がすんで、その結果
をCPU1に報告する場合にも用いられるが、こ
の場合には第7図イで連結テーブルのIPフイール
ドをチエツクするとこのフイールドに“1”がな
いためにこれを識別し、入出力命令実行結果に対
するCSWをMM2の前記領域に格納してCPUに
リポートし(第7図オ)、さらにこのチヤンネル
のヘツダテーブルを読み(第7カ)、そのVLDフ
イールドが“1”か否かをチエツクし(第7図
キ)、もしこれが“1”の場合つまり待行列が存
在する場合には、前述の第6図ナに関して述べた
理由によりリセツトされた入出力命令実行待フリ
ツプフロツプを再びセツトする(第7図ク)。
VLDフイールドが“0”の場合には入出力命令
待行列が存在しないので勿論この必要はない(第
7図ケ)。
Furthermore, interrupts from CHC3 to CPU1 are as follows:
In addition to the above, it is also used when the execution of the input/output instruction started in the startup process in Figure 6 (a) is completed and the result is reported to CPU 1, but in this case, the connection in Figure 7 (a) is used. When the IP field of the table is checked, it is identified that there is no "1" in this field, and the CSW for the input/output instruction execution result is stored in the area of MM2 and reported to the CPU (Fig. 7 O). Read the header table of this channel (Figure 7) and check whether the VLD field is "1" (Figure 7 G). If this is "1", that is, if a queue exists, then The input/output instruction execution flip-flop, which was reset for the reason described in connection with FIG. 6, is reset (FIG. 7, h).
Of course, this is not necessary when the VLD field is "0" because there is no input/output command queue (see FIG. 7).

以上述べたように、本実施例を用いると、
CPUの入出力命令の指令に対し、CHCはそのチ
ヤンネル番号が有効の場合には常にこれを受付け
(CC=0でCPUにリポートし)て入出力命令待
行列に登録し、こうして待行列が作られると入出
力命令実行待フリツプフロツプをセツトし、一方
各チヤンネルは自己がアイドルになり新らしく入
出力命令を実行できる状態になるとこのフリツプ
フロツプをチエツクし、もしこれがセツトされて
いる場合にはCHCに割込みを発生して実行起動
を要求し、この割込みを受けたCHCは待行列中
に登録された入出力デバイスの中で現在入出力命
令実行可能なものから順番に待行列から取りはず
し、このデバイスに対して指令された入出力命令
を実行するような動作を行う入出力制御装置を提
供することができる。
As mentioned above, using this example,
In response to a CPU input/output command, if the channel number is valid, the CHC always accepts it (reports it to the CPU with CC = 0) and registers it in the input/output command queue, thus creating a queue. When it is set, it sets a flip-flop waiting for an I/O command to be executed, while each channel checks this flip-flop when it becomes idle and ready to execute a new I/O command, and interrupts the CHC if it is set. Upon receiving this interrupt, the CHC removes from the queue the input/output devices registered in the queue that are currently capable of executing input/output commands, and sends them to this device. It is possible to provide an input/output control device that performs an operation such as executing an input/output command instructed by a user.

このため、CPUは一度入出力命令を指令する
と、特別の場合を除き、以後の処理をすべて入出
力制御装置に委ねることができるので、入出力命
令に対するオーバーヘツドを節減することができ
る。
Therefore, once the CPU issues an input/output command, except in special cases, all subsequent processing can be entrusted to the input/output control device, thereby reducing overhead for input/output commands.

なお、本実施例の第5図、第6図および第7図
のフローチヤートで示したCHCおよびチヤンネ
ルCHの動作は、フアームウエアを用いて容易に
実現することができる。また勿論専用のハードウ
エアを用いて実現することも可能である。
Note that the operations of the CHC and channel CH shown in the flowcharts of FIGS. 5, 6, and 7 of this embodiment can be easily realized using firmware. Of course, it is also possible to implement it using dedicated hardware.

また、本実施例においては入出力命令実行待フ
リツプフロツプ32−1〜32−Nの物理的位置
をCHC3内としたが勿論これを各チヤンネル中
においてもよい。
Further, in this embodiment, the physical locations of the input/output command execution flip-flops 32-1 to 32-N are within the CHC 3, but they may of course be located within each channel.

また、本実施例に用いた入出力待行列ヘツダテ
ーブル30−1〜30−N、入出力待行列連結テ
ーブル31−1−1〜31−N−MNおよび入出
力命令実行待フリツプフロツプ32−1〜32−
NはRAMの予め定めた領域のそれぞれのアドレ
スの内容として構成することもできる。
In addition, the input/output queue header tables 30-1 to 30-N, the input/output queue concatenation tables 31-1-1 to 31-N-M N , and the flip-flops 32-1 to 32-1 to 32-N used in this embodiment are used for input/output command execution. 32-
N can also be configured as the contents of each address in a predetermined area of the RAM.

以上のように本発明を用いると、入出力デバイ
スがアイドル以外の状態でも入出力命令を受付け
てこれを待行列に登録し入出力デバイスがアイド
ルになるとそのアイドルになつたものからつぎつ
ぎに自動的にこれを処理する入出力制御装置を提
供することができる。このため中央処理装置のソ
フトウエアに対するオーバーヘツドを軽減できる
という効果がある。
As described above, when the present invention is used, input/output commands are accepted even when the input/output device is in a state other than idle, the commands are registered in the queue, and when the input/output device becomes idle, the commands are automatically executed one after another starting from the one that became idle. An input/output controller can be provided to handle this. This has the effect of reducing the overhead on the software of the central processing unit.

【図面の簡単な説明】[Brief explanation of the drawing]

第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……入出力命令実行待フリツプ
フロツプ。
FIG. 1 is a block diagram for explaining one embodiment of the present invention, and FIG. 2 is for explaining an input/output queue header table, an input/output queue concatenation table, and a flip-flop waiting for input/output command execution used in this embodiment. Figure 3 is a diagram for explaining the format of the input/output queue header table, Figure 4 is a diagram for explaining the format of the input/output queue header table.
This figure is a diagram for explaining the format of the input/output queue concatenation table, and FIGS. 5, 6, and 7 are flowcharts for explaining the operation of this embodiment. In the figure, 1... central processing unit CPU, 2...
...Main memory MM, 3...Channel control device
CHC, 4-1 to 4-N...Channel CH, 5-
1-1~5-N-M N ...Input/output device IOD,
6... Input/output control device, 30-1 to 30-N...
I/O queue header table, 30-1-1 to 3
1-N-M N ...I/O queue concatenation table, 3
2-1 to 32-N...Flip-flops waiting for input/output command execution.

Claims (1)

【特許請求の範囲】 1 中央処理装置と主記憶装置とチヤンネル制御
装置と複数のチヤンネルと複数の入出力デバイス
とを含む情報処理装置において、 前記各チヤンネル対応に設けられ該チヤンネル
ごとに作られる入出力命令待行列の先頭に登録さ
れた前記デバイスのデバイス番号に関する情報を
含む複数の入出力待行列ヘツダテーブルと、 前記各デバイス対応に設けられ対応するデバイ
スが前記待行列に登録されているか否かに関する
情報と前記主記憶装置中に格納されたこのデバイ
スに対する入出力命令の格納開始番地に関する情
報と前記待行列中における次の順番のデバイスの
有無に関する情報とこれが有る場合に該デバイス
のデバイス番号に関する情報とを含む複数の入出
力待行列連結テーブルと、 前記各チヤンネル対応に設けられ前記各待行列
の生成消滅に応答して制御される複数のフリツプ
フロツプとを含み、 前記中央処理装置から入出力命令を受けた前記
チヤンネル制御装置は前記入出力命令により指定
されたチヤンネル番号およびデバイス番号により
対応する前記ヘツダテーブルおよび前記連結テー
ブルを参照しこれを用いて前記待行列を作成し前
記フリツプフロツプをセツトし任意の前記チヤン
ネルが空状態になつたときに該チヤンネルは対応
する前記フリツプフロツプを参照し前記制御装置
に割込みを発生しこれに応答して前記制御装置は
対応するチヤンネルの前記待行列を参照し待行列
中に登録されたデバイスに対する入出力命令の起
動を開始するようにしたことを特徴とする入出力
制御装置。
[Scope of Claims] 1. In an information processing device including a central processing unit, a main storage device, a channel control device, a plurality of channels, and a plurality of input/output devices, an input device provided for each channel and created for each channel. a plurality of input/output queue header tables containing information regarding the device number of the device registered at the head of the output command queue; and a plurality of input/output queue header tables provided for each of the devices and information regarding whether the corresponding device is registered in the queue. information, information regarding the storage start address of input/output instructions for this device stored in the main memory, information regarding the presence or absence of a next device in the queue, and information regarding the device number of the device if there is one. a plurality of input/output queue concatenation tables including a plurality of input/output queue concatenation tables, and a plurality of flip-flops provided corresponding to each of the channels and controlled in response to creation and disappearance of each of the queues, and receiving input/output commands from the central processing unit. The channel control device that receives the input/output command refers to the header table and the concatenation table corresponding to the channel number and device number specified by the input/output command, uses them to create the queue, sets the flip-flop, and performs any of the above operations. When a channel becomes empty, the channel refers to the corresponding flip-flop and generates an interrupt to the controller, and in response, the controller refers to the queue of the corresponding channel and stores the data in the queue. An input/output control device characterized in that it starts activating an input/output command to a registered device.
JP1348682A 1982-01-29 1982-01-29 Input and output controller Granted JPS58129627A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1348682A JPS58129627A (en) 1982-01-29 1982-01-29 Input and output controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1348682A JPS58129627A (en) 1982-01-29 1982-01-29 Input and output controller

Publications (2)

Publication Number Publication Date
JPS58129627A JPS58129627A (en) 1983-08-02
JPS62541B2 true JPS62541B2 (en) 1987-01-08

Family

ID=11834441

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1348682A Granted JPS58129627A (en) 1982-01-29 1982-01-29 Input and output controller

Country Status (1)

Country Link
JP (1) JPS58129627A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02144509U (en) * 1989-05-08 1990-12-07

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02144509U (en) * 1989-05-08 1990-12-07

Also Published As

Publication number Publication date
JPS58129627A (en) 1983-08-02

Similar Documents

Publication Publication Date Title
US5031091A (en) Channel control system having device control block and corresponding device control word with channel command part and I/O command part
US4939644A (en) Input/output controller for controlling the sequencing of the execution of input/output commands in a data processing system
US5170472A (en) Dynamically changing a system i/o configuration definition
US5765200A (en) Logical positioning within a storage device by a storage controller
US4272819A (en) Inter-subsystem direct transfer system
JPH0750456B2 (en) I / O control system
JP2557199B2 (en) Interface system and method
JPH05257866A (en) Device and method for dynamically chaining direct memory access operation that should be performed to input/output device
JPS62541B2 (en)
JPS62542B2 (en)
JPS62543B2 (en)
JPS603229B2 (en) Information processing method
JP2823624B2 (en) I / O interface control method
JPS6127791B2 (en)
EP0290533B1 (en) I/o system for off-loading operating system functions
JPS6229831B2 (en)
JPS638506B2 (en)
JPH0766357B2 (en) I / O control method
JPH0424733B2 (en)
JPH01237745A (en) System for selecting channel pass
JPH0376505B2 (en)
JPS61240355A (en) I/o data processing system
JPS61170855A (en) Input/output data processing system
JPH05151137A (en) Electronic computer device
JPS61166659A (en) Channel control system