JPH0844652A - Computer system and method for issuing input/output instruction - Google Patents

Computer system and method for issuing input/output instruction

Info

Publication number
JPH0844652A
JPH0844652A JP19359094A JP19359094A JPH0844652A JP H0844652 A JPH0844652 A JP H0844652A JP 19359094 A JP19359094 A JP 19359094A JP 19359094 A JP19359094 A JP 19359094A JP H0844652 A JPH0844652 A JP H0844652A
Authority
JP
Japan
Prior art keywords
input
output
command
request
commands
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.)
Granted
Application number
JP19359094A
Other languages
Japanese (ja)
Other versions
JP2901882B2 (en
Inventor
Takeshi Kondo
毅 近藤
Toshiaki Hirata
平田  俊明
Kazuo Matsunaga
和男 松永
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP19359094A priority Critical patent/JP2901882B2/en
Priority to US08/505,144 priority patent/US5860022A/en
Priority to CN95115302.1A priority patent/CN1100295C/en
Publication of JPH0844652A publication Critical patent/JPH0844652A/en
Application granted granted Critical
Publication of JP2901882B2 publication Critical patent/JP2901882B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

PURPOSE:To provide the control mechanism (processing logic) of a measure (including an input/output interface information form) capable of executing simultaneously plural input/output commands to plural devices with an input/output instruction of one time and an input/output adapter (input/output channel) capable of accepting this instruction. CONSTITUTION:The computer system is provided with plural input/output devices, adapter devices connected to the plural input/output devices and a main processor for applying input/output requests through the adapter devices to the input/output devices. plural input/output commands to the plural input/output devices are issued from the main processor as an input/output starting instruction of one time and at the adapter device, it is specified which input/output device those plural input/output commands to the plural input/output devices contained in the input/output starting instruction of one time are assigned to. Then, the input/output commands are respectively assigned to that specified input/output device. Thus, the number of times of input/ output operation can be decreased, and overhead in input/output operation can be reduced. Further, input/output efficiency is improved, and input/output performance is improved.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、計算機システムおよび
計算機システムにおける入出力命令の発行方法に関し、
詳しくは、1回の入出力起動命令によって複数の入出力
装置に対する複数の入出力命令を与えることができるよ
うにした計算機システムおよび入出力命令の発行方法に
関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a computer system and a method of issuing input / output instructions in the computer system.
More specifically, the present invention relates to a computer system capable of giving a plurality of input / output instructions to a plurality of input / output devices by one input / output start instruction and a method of issuing the input / output instructions.

【0002】[0002]

【従来技術】従来の計算機システムにおける入出力装置
(入出力デバイス)の制御方法について説明する。主C
PU(中央処理装置)は、入出力動作を実行するとき、
入出力命令を入出力デバイスに送る。これにより、入出
力デバイスは処理を開始する。主CPUは、入出力命令
を入出力デバイスに送った後、入出力データの受け渡し
が終わるまで、他の仕事をすることが出来る。入出力デ
バイスは、処理が終了すると割り込みよって主CPUに
これを通知する。
2. Description of the Related Art A conventional method of controlling an input / output device (input / output device) in a computer system will be described. Main C
When a PU (Central Processing Unit) executes an input / output operation,
Send I / O commands to I / O devices. This causes the input / output device to start processing. After sending the I / O command to the I / O device, the main CPU can do other work until the passing of I / O data is complete. When the processing is completed, the input / output device notifies the main CPU of this by an interrupt.

【0003】以上の方法によって、主CPUの負荷を軽
減させている。実際の計算機では、主CPUと入出力デ
バイスの間に入出力アダプタ(計算機によっては、入出
力チャネルと呼ばれている)が介在しており、また、複
数個の入出力デバイスが入出力アダプタに接続される。
The above method reduces the load on the main CPU. In an actual computer, an I / O adapter (called an I / O channel on some computers) is interposed between the main CPU and the I / O device, and multiple I / O devices are connected to the I / O adapter. Connected.

【0004】図31は、文献(Harry Katzan,Jr.:Comput
er organization and the system/370,Van Noatrand Re
inhold Company,1971)によるチャネルインタフェースを
図示したものである。同図を参照して、入出力チャネル
を用いた入出力デバイスとの入出力アーキテクチャにつ
いて説明する。
FIG. 31 shows a document (Harry Katzan, Jr .: Comput.
er organization and the system / 370, Van Noatrand Re
inhold Company, 1971). An input / output architecture with an input / output device using an input / output channel will be described with reference to FIG.

【0005】主CPUは、入出力起動命令20を発行し
て、入出力動作を開始させる。入出力起動命令20は、
命令コード、チャネルアドレス、およびデバイスアドレ
スを含む。チャネルアドレスとデバイスアドレスは、入
出力動作を行なう入出力デバイスと入出力チャネルを指
定するアドレスである。
The main CPU issues an input / output start instruction 20 to start an input / output operation. The input / output activation command 20 is
Includes instruction code, channel address, and device address. The channel address and the device address are addresses that specify the input / output device for performing the input / output operation and the input / output channel.

【0006】CAW(Channel Address Word)21は、
主記憶装置上の特定番地にあり、最初のCCW(Channe
l Command Word)22の主記憶装置上のアドレスを格納
している。CCW22は、入出力チャネルに対して、実
行すべき入出力動作についての情報を提供する。CCW
22は、コマンドコード、データアドレス、カウント、
およびフラグからなる。フラグは、cdフラグおよびc
cフラグを含む。
The CAW (Channel Address Word) 21 is
It is located at a specific address on the main memory and is the first CCW (Channe
l Command Word) 22 address of main memory is stored. The CCW 22 provides the I / O channel with information about the I / O operation to be performed. CCW
22 is a command code, a data address, a count,
And flags. Flags are cd flag and c
Including the c flag.

【0007】CCW22のコマンドコードでは、実行す
べき動作、例えば、入力ないし出力等を指定する。デー
タアドレスでは、入出力動作の対象であるデータ23の
先頭アドレスを指定する。カウントでは、入出力動作で
使用するバイト数を指定する。
The CCW22 command code specifies an operation to be executed, for example, input or output. In the data address, the top address of the data 23 that is the target of the input / output operation is designated. The count specifies the number of bytes used for I / O operations.

【0008】cdフラグでは、データチェーンを指定す
る。データチェーンとは、次に続くCCWで異なるデー
タ領域に対して同一の入出力動作を実行することを示
す。ccフラグでは、コマンドチェーンを指定する。コ
マンドチェーンとは、次に続くCCWで異なる入出力動
作を実行することを示している。フラグの全ビットが0
のときは、当該CCW22が、最後のCCWであること
を示す。
The cd flag specifies a data chain. The data chain indicates that the same input / output operation is executed for different data areas in the next CCW. The cc flag specifies a command chain. The command chain indicates that different CCWs execute different input / output operations. All flags are 0
In the case of, it indicates that the CCW 22 is the last CCW.

【0009】CSW(Chan-nel Status Word)24は、
入出力割り込みや入出力起動命令受け付け後に記録さ
れ、入出力デバイスや入出力チャネルの状態(ビジー
等)を表す。
The CSW (Chan-nel Status Word) 24 is
It is recorded after receiving an I / O interrupt or I / O activation instruction, and indicates the status (busy, etc.) of the I / O device or I / O channel.

【0010】上記の入出力インタフェースで入出力動作
を実行させる手順を以下に示す。まず、主CPUは、以
下のように動作する。
The procedure for executing the input / output operation by the above input / output interface will be described below. First, the main CPU operates as follows.

【0011】必要なCCW22を作る。前もって用意
しておいても良いし、プログラム実行中に作成しても良
い。図31で示したように、チャネルプログラムと呼ば
れる一連の複数のCCW22である場合もある。 CAW21を設定する(先頭CCW22のアドレスを
セット)。 チャネルアドレスとデバイスアドレスをロードする。 入出力割り込みを禁止する。 入出力起動命令20を発行する。
Create the required CCW 22. It may be prepared in advance or created during program execution. As shown in FIG. 31, it may be a series of a plurality of CCWs 22 called a channel program. Set CAW21 (set address of top CCW22). Load the channel address and device address. Disable I / O interrupts. Issue the I / O activation instruction 20.

【0012】主CPUが上記のように入出力起動命令2
0を発行した後、計算機システムの入出力チャネルは、
以下のように動作する。
The main CPU executes the input / output start instruction 2 as described above.
After issuing 0, the I / O channel of the computer system
It works as follows.

【0013】チャネルは、CAW21を取り出し、正
当性をチェックする。 チャネルは、CCW22を取り出し、正当性をチェッ
クする。 指定したデバイスにより、入出力動作を実行する。 CSW24に入出力動作の完了情報を記録する。 入出力チャネルから、入出力割り込みが起動される。
The channel fetches the CAW 21 and checks the validity. The channel retrieves CCW 22 and checks for validity. I / O operation is executed by the specified device. The completion information of the input / output operation is recorded in the CSW 24. An I / O interrupt is activated from the I / O channel.

【0014】[0014]

【発明が解決しようとする課題】上述した入出力インタ
フェースでは、入出力起動命令(図31に示した一連の
CCW22をセットしたもの)を1回発行することによ
って、1つの入出力デバイスに対する複数回の入出力動
作を連続して行うことができる。いま、このような従来
の入出力インタフェースで、複数の入出力デバイスに対
する入出力動作を連続して行う場合を考える。
In the above-mentioned input / output interface, by issuing the input / output start-up command (which sets the series of CCWs 22 shown in FIG. 31) once, a plurality of times for one input / output device can be obtained. I / O operations can be continuously performed. Now, let us consider a case where input / output operations for a plurality of input / output devices are continuously performed by such a conventional input / output interface.

【0015】図32は、入出力アダプタ(入出力チャネ
ル)を介した複数の入出力デバイスとの入出力インタフ
ェースにおける入出力動作手順を示したものである。特
に、デバイス1に対する入出力命令1と、別のデバイス
2に対する入出力命令2を連続して発行した場合を示
す。
FIG. 32 shows an input / output operation procedure in an input / output interface with a plurality of input / output devices via an input / output adapter (input / output channel). In particular, the case where the input / output instruction 1 for the device 1 and the input / output instruction 2 for another device 2 are continuously issued is shown.

【0016】まず、CPUは入出力命令1を発行し、こ
れを受けて入出力アダプタはデバイス1との入出力作業
を行なう。入出力アダプタがデバイス1との入出力作業
を行なっている間、CPUは他の仕事を行なうことがで
きる。デバイス1との入出力作業が完了すると、入出力
アダプタは割込みを発行し、CPUは割込み処理1を行
ない、これにより入出力が完了する。引き続き、CPU
は入出力命令2を発行し、同様にしてデバイス2との入
出力を実行する。
First, the CPU issues an input / output instruction 1, and in response to this, the input / output adapter performs input / output work with the device 1. While the I / O adapter is doing I / O work with device 1, the CPU can do other work. When the input / output work with the device 1 is completed, the input / output adapter issues an interrupt, and the CPU performs interrupt processing 1 to complete the input / output. Continue to CPU
Issues an input / output instruction 2 and similarly executes input / output with the device 2.

【0017】このように、従来の入出力デバイスの入出
力動作は、ある1つの入出力デバイスに対する入出力命
令を発行し、他の仕事を処理し、割り込みによって当該
入出力デバイス動作の終了を知るというものであるた
め、続けて異なる入出力デバイスに対し入出力する場合
は、再度入出力命令を発行しなければならなかった。つ
まり、入出力デバイス毎に入出力命令を発行する必要が
あった。
As described above, in the input / output operation of the conventional input / output device, an input / output command is issued to a certain one input / output device, other work is processed, and the end of the input / output device operation is known by an interrupt. Therefore, when inputting / outputting to / from different input / output devices continuously, the input / output instruction had to be issued again. That is, it was necessary to issue an input / output instruction for each input / output device.

【0018】ところで、近年CPUの性能向上に伴い、
特にキャッシュメモリ等の技術によって、メモリアクセ
スの高速化が計られている。これに対して、入出力デバ
イスの速度はたいして高速化していない。そのため、C
PUと入出力デバイスとの速度差が大きくなってしまっ
ている。
By the way, with the recent improvement in CPU performance,
In particular, technologies such as cache memory have been used to speed up memory access. On the other hand, the speed of input / output devices has not increased much. Therefore, C
The speed difference between the PU and the input / output device has become large.

【0019】例えば、多回線接続用通信サーバ計算機で
は、多回線に対応するため、多数の入出力デバイスを接
続する必要がある。これらの入出力デバイスを直接CP
Uのバスに接続すると、前述した速度差のために、CP
U性能を有効に利用できない。
For example, in a multi-line connection communication server computer, it is necessary to connect a large number of input / output devices in order to support multiple lines. Directly connect these I / O devices to CP
When connected to U bus, due to the speed difference mentioned above, CP
U performance cannot be used effectively.

【0020】これを避けるために、バスの階層化(メイ
ンバスとI/Oバスを分け両者をバスアダプタで接続す
る)を計るという考え方もある。しかし、バスの階層化
を行なうと、結果としてCPUと入出力デバイスの距離
が離れるため、DMA転送開始に伴う初期設定や終了状
態の報告・確認のために行うCPUと入出力デバイスと
の入出力コマンドや終了割り込み動作が、バスアダプタ
を介して実行されることとなる。従って、このような動
作のためにCPU性能とI/O性能とバス性能を消費す
ることになる。これは、特に多回線接続用通信サーバに
とって顕著な問題となる。以下、その理由について説明
する。
In order to avoid this, there is also an idea that the bus is hierarchized (the main bus and the I / O bus are separated and both are connected by a bus adapter). However, if the bus is hierarchized, the distance between the CPU and the input / output device will be increased as a result. Therefore, the input / output between the CPU and the input / output device for reporting / confirming the initial setting and the end state accompanying the start of DMA transfer. Commands and end interrupt operations will be executed via the bus adapter. Therefore, CPU performance, I / O performance, and bus performance are consumed for such operations. This is a significant problem especially for communication servers for multi-line connection. The reason will be described below.

【0021】図33は、従来例であり本発明の適用対象
例でもある多回線接続用通信サーバ計算機(以下、単に
通信サーバと呼ぶ)100を使用した大規模オンライン
処理システムの一例である。
FIG. 33 shows an example of a large-scale online processing system using a communication server computer for multi-line connection (hereinafter simply referred to as a communication server) 100, which is a conventional example and also an application example of the present invention.

【0022】通信サーバ100は、本店および各地方の
支店にそれぞれ存在する。支店にある通信サーバ100
には、電話回線を介して複数の店舗内端末101が接続
され、また公衆ネットワークを介して遠隔地にある多数
の端末101が接続されている。本店には、ホスト計算
機102があり大規模データベースを管理している。本
店のホスト計算機102と通信サーバ100は、高速L
ANであるFDDIで接続されている。本店の通信サー
バ100と支店の通信サーバ100は、高速回線で接続
されている。
The communication server 100 exists in the head office and branch offices in each region. Communication server 100 at branch
, A plurality of in-store terminals 101 are connected via a telephone line, and a large number of terminals 101 at remote locations are connected via a public network. The head office has a host computer 102 and manages a large-scale database. The host computer 102 at the head office and the communication server 100 are connected at high speed L
It is connected by FDDI which is AN. The communication server 100 at the head office and the communication server 100 at the branch office are connected by a high-speed line.

【0023】各端末101からは、データベースの更新
要求が通信サーバ100を介してホスト計算機102に
送られ、データベース更新後、その応答がホスト計算機
102から再度通信サーバ100を介して該当する端末
101に送られる。このような処理をトランザクション
処理と言う。特に、勘定系のトランザクション処理は、
休日前等の特定期間に集中して発生する。これらは、す
べて通信サーバ100の入出力動作を伴う処理であるた
め、集中して発生する多数の入出力デバイス(回線)に
よる入出力オーバーヘッドが通信サーバ100で問題と
なる。
A database update request is sent from each terminal 101 to the host computer 102 via the communication server 100, and after the database update, the response is sent from the host computer 102 to the corresponding terminal 101 via the communication server 100 again. Sent. Such processing is called transaction processing. In particular, the transaction processing of the accounting system is
Occurs intensively during a specific period such as before a holiday. Since all of these are processes involving input / output operations of the communication server 100, the input / output overhead of a large number of input / output devices (lines) that occur in a concentrated manner causes a problem in the communication server 100.

【0024】以上のように、従来例では、1回の入出力
起動命令の発行で1つの入出力デバイスに対する複数の
入出力動作を行なうことはできるが、1回の入出力起動
命令の発行で複数の入出力デバイスに対する複数の入出
力動作を行なうことができないため、通信サーバなどに
おける入出力オーバーヘッドが問題となっていた。
As described above, in the conventional example, it is possible to perform a plurality of input / output operations for one input / output device by issuing one input / output start instruction, but by issuing one input / output start instruction. Since a plurality of input / output operations cannot be performed with respect to a plurality of input / output devices, input / output overhead in a communication server or the like has been a problem.

【0025】本発明の第1の目的は、複数のデバイスに
対する複数の入出力コマンドを1回の入出力命令で実行
できる仕掛け(入出力インタフェース情報形式含む)と
これを受け付けることが出来る入出力アダプタ(入出力
チャネル)装置の制御機構(処理ロジック)を提供する
ことである。
A first object of the present invention is to provide a mechanism (including an input / output interface information format) capable of executing a plurality of input / output commands for a plurality of devices with a single input / output instruction, and an input / output adapter capable of receiving the same. (Input / output channel) It is to provide a control mechanism (processing logic) of the device.

【0026】本発明の第2の目的は、単に、コマンド群
を発行する仕掛けだけでなく、入出力アダプタの状態
(受け入れ能力)に応じた量のコマンド群を発行する仕
組みを提供する、言い換えれば、どの程度の量のコマン
ド群なら入出力アダプタ装置がビジーとならずに受け入
れられるか容易に分かる入出力インタフェースを提供す
ることにある。
A second object of the present invention is to provide not only a mechanism for issuing a command group but also a mechanism for issuing a command group in an amount corresponding to the state (accepting capacity) of the input / output adapter. The purpose is to provide an input / output interface that allows a user to easily understand how much command groups the input / output adapter device can accept without being busy.

【0027】本発明の他の目的は、上記入出力アダプタ
装置を介したデータ転送において、入力動作を指示する
readコマンドからなるコマンド群の効率的な発行方
法を提供することにある。
Another object of the present invention is to provide an efficient method of issuing a command group including a read command for instructing an input operation in data transfer via the input / output adapter device.

【0028】また、上記入出力アダプタ装置を介したデ
ータ転送において、通信プロトコルの処理特にウインド
制御やパケット分割処理に関連させた効率的なコマンド
群の発行方法を提供することにある。
It is another object of the present invention to provide an efficient command group issuing method related to communication protocol processing, particularly window control and packet division processing, in data transfer via the input / output adapter device.

【0029】[0029]

【課題を解決するための手段】本発明は、複数の入出力
装置と、該複数の入出力装置に結合されたアダプタ装置
と、該アダプタ装置を介して前記入出力装置に入出力要
求を与える主処理装置とを備えた計算機システムにおい
て、複数の入出力装置に対する複数の入出力コマンド
を、主処理装置から1回の入出力起動命令として発行
し、アダプタ装置では、その1回の入出力起動命令に含
まれる複数の入出力装置に対する複数の入出力コマンド
をどの入出力装置に対する入出力コマンドか特定し、特
定した入出力装置に対して入出力コマンドを各々与える
ようにしたことを特徴とする。
The present invention provides a plurality of input / output devices, an adapter device coupled to the plurality of input / output devices, and an input / output request to the input / output device via the adapter device. In a computer system including a main processing unit, a plurality of I / O commands for a plurality of I / O devices are issued from the main processing unit as a single I / O start command, and the adapter unit starts the single I / O start. It is characterized in that a plurality of I / O commands for a plurality of I / O devices included in an instruction are specified as an I / O command for which I / O device, and each I / O command is given to the specified I / O device. .

【0030】また、主処理装置において、入出力要求を
直ちに処理できないときは、その入出力要求を待ち要求
管理テーブルに保管して管理し、入出力要求の処理が可
能になったとき、その時点で待ち要求管理テーブルに保
管されている入出力要求に基づいて、各入出力装置に与
えるべき入出力コマンドを連ねた列であるコマンド列を
入出力装置ごとに作成し、それら複数のコマンド列を1
回の入出力起動命令としてアダプタ装置に発行するよう
にする。
When the input / output request cannot be immediately processed in the main processing unit, the input / output request is stored and managed in the waiting request management table, and when the input / output request can be processed, at that time. Create a command sequence for each I / O device that is a sequence of I / O commands to be given to each I / O device based on the I / O requests stored in the waiting request management table in 1
It is issued to the adapter device as a single input / output start instruction.

【0031】待ち要求管理テーブルに保管された複数の
入出力要求を1回の入出力起動命令にまとめて発行する
処理は、上記のように入出力要求の処理が可能になった
ときを契機に行なえばよいが、加えて、入出力コマンド
の処理が終了し入出力装置から主処理装置に終了割込み
がかけられたときを契機に行なうようにしてもよい。
The process of issuing a plurality of I / O requests stored in the waiting request management table in a single I / O activation command is triggered when the I / O request can be processed as described above. It may be performed, but in addition, it may be performed when the processing of the input / output command is completed and an end interrupt is issued from the input / output device to the main processing device.

【0032】複数のコマンド列は、例えば、コマンド列
の先頭位置を指定するアドレス情報とコマンド列の各コ
マンドの実行対象である1つの入出力装置を特定する識
別子情報とを含むブロックを基本単位とし該ブロックが
複数個連続した構造を有するテーブルにより管理する。
主処理装置からアダプタ装置に取り込んだか否かを示す
フラグ情報を設けてもよい。
A plurality of command strings have, for example, a block including an address information for designating a head position of the command string and identifier information for specifying one input / output device as an execution target of each command of the command string as a basic unit. It is managed by a table having a structure in which a plurality of blocks are continuous.
Flag information indicating whether or not the data has been imported from the main processing device to the adapter device may be provided.

【0033】主処理装置は、大まかには、入出力装置へ
の入出力要求を発行するアプリケーション実行部とその
入出力要求から入出力コマンドを作成してアダプタ装置
に発行するドライバ部を備えている。特に、ドライバ部
において、アプリケーション実行部からデータ入力要求
を受け取る前に、複数の入出力装置に対する複数の入力
コマンドを1回の入出力起動命令としてアダプタ装置に
先出しするようにするとよい。
The main processing unit is roughly provided with an application execution unit for issuing an input / output request to the input / output device and a driver unit for creating an input / output command from the input / output request and issuing it to the adapter device. . In particular, in the driver unit, it is preferable that the plurality of input commands for the plurality of input / output devices be pre-sent to the adapter device as one input / output start instruction before receiving the data input request from the application execution unit.

【0034】具体的には、入出力装置に対する入力コマ
ンドの最大発行数を示す第1の規定数を記憶する第1の
記憶手段と、入力コマンド列を再発行するための契機を
規定するための第2の規定数を記憶する第2の記憶手段
と、各入出力装置に対する未完了の入力コマンド数を記
録する第3の記憶手段とを設け、ドライバ部の初期化
後、入力コマンドを前記第1の規定数分連ねた入力コマ
ンド列を各入出力装置ごとに作成して前記アダプタ装置
に発行し、前記第3の記憶手段に各入出力装置に発行し
た入力コマンド数を記録し、以後、前記各入出力装置か
ら入力コマンドの完了報告を受けるたびに、前記第3の
記憶手段に記憶された該当入出力装置の未完了入力コマ
ンド数を1つ減じ、この処理によりその入出力装置にお
ける未完了入力コマンド数が前記第2の規定数になった
らば、前記第3の記憶手段に記憶された未完了入力コマ
ンド数と第1の記憶手段に記録された第1の規定数との
差分を計算し、この差分の数だけ入力コマンドを連ねた
入力コマンド列を前記アダプタ装置に再発行するように
する。
Specifically, the first storage means for storing the first specified number indicating the maximum number of input commands issued to the input / output device and the trigger for reissuing the input command sequence are specified. A second storage means for storing a second specified number and a third storage means for recording the number of uncompleted input commands for each input / output device are provided, and after the driver unit is initialized, the input command is An input command sequence in which a prescribed number of 1s are connected to each input / output device is created and issued to the adapter device, and the number of input commands issued to each input / output device is recorded in the third storage means. Each time a completion report of an input command is received from each of the input / output devices, the number of uncompleted input commands of the corresponding input / output device stored in the third storage means is decremented by 1. Completed input frame When the number of commands reaches the second prescribed number, the difference between the number of uncompleted input commands stored in the third storage means and the first prescribed number recorded in the first storage means is calculated. The input command string in which the input commands are connected by the number of the differences is reissued to the adapter device.

【0035】入出力装置が回線制御装置である場合、プ
ロトコル処理部により、アプリケーション実行部から発
行されたデータ転送要求に係るデータを分割し、該分割
された各々の出力データの先頭に通信プロトコル制御情
報を付加して複数の分割パケットを作成する。このと
き、ドライバ部により、前記複数の分割パケットの数が
その時点で相手からの送達確認なしで連続転送できるパ
ケットの数である連続転送数以下である場合は、前記複
数の分割パケットに基づいて複数の入出力コマンドを作
成し、作成した複数の入出力コマンドを1回の入出力起
動命令として発行することにより、前記複数の分割パケ
ットの出力データを1回の入出力動作で転送するように
する。
When the input / output device is a line control device, the protocol processing unit divides the data relating to the data transfer request issued from the application execution unit, and the communication protocol control is performed at the beginning of each of the divided output data. Information is added to create a plurality of divided packets. At this time, if the number of the plurality of divided packets is equal to or less than the number of continuous transfer that is the number of packets that can be continuously transferred without confirmation of delivery from the other party by the driver unit, based on the plurality of divided packets. By creating a plurality of I / O commands and issuing the created I / O commands as a single I / O start command, the output data of the plurality of divided packets can be transferred in a single I / O operation. To do.

【0036】さらに、このようなプロトコル処理によ
り、データを複数のパケットに分割して送信する場合
は、分割された出力データの各々の先頭にヘッダ部(通
信プロトコル制御情報)が付加される。このとき、ヘッ
ダ部と出力データは、論理的には繋がった1つのパケッ
トを構成しているが、実際には別の領域に存在し、各々
は別のデータ管理情報ブロックにより管理されることが
ある。この場合、コマンドはデータ管理情報ブロックご
とに作成されるので、ヘッダ部を転送するコマンドと出
力データを転送するコマンドとがデータチェーンで結ば
れたもの、すなわち複数のコマンドになる。そこで、本
発明では、必要な場合には、ヘッダ部と出力データとを
物理的に連続した領域に設定し1つのデータ管理情報ブ
ロックでポイントするように詰め替えてドライバ部に渡
すようにする。これにより、ドライバ部では1つのコマ
ンドとして実行できる。
Further, when the data is divided into a plurality of packets and transmitted by such protocol processing, a header portion (communication protocol control information) is added to the head of each of the divided output data. At this time, the header part and the output data logically connect to form one packet, but actually exist in different areas, and each packet may be managed by another data management information block. is there. In this case, since the command is created for each data management information block, the command for transferring the header part and the command for transferring the output data are linked by a data chain, that is, a plurality of commands. Therefore, in the present invention, when necessary, the header section and the output data are set in a physically continuous area, refilled so as to be pointed to by one data management information block, and passed to the driver section. This allows the driver unit to execute the command as one command.

【0037】詰め替えを行なうか否かは、オーバヘッド
の大小に基づいて判別する。すなわち、アダプタ装置が
通信プロトコル制御情報を転送するコマンドを処理する
ことに要するオーバーヘッドと出力データを通信プロト
コル制御情報に連続する領域にコピーすることに要する
オーバーヘッドとを比較することにより、後者のオーバ
ーヘッドのほうが小さい場合に、詰め替えを行なうよう
にする。言い替えると、アダプタ装置がコマンド間のチ
ェーン(データチェーン)を辿る処理に要する時間と主
処理装置がある長さのデータをコピーするのに要する時
間とが等しくなる当該データ長をデータ長判定基準値と
して用意しておき、プロトコル処理によって作成された
ヘッダ部とユーザデータ部とがチェーンで結ばれている
入出力データの送信時、当該コマンドを作成する前に、
出力データ長を判定して、基準値より短いならば当該ユ
ーザデータをヘッダ部以降の領域にコピーする。つま
り、ヘッダとユーザデータが一つの連続する入出力デー
タに作り直すようにする。
Whether to refill or not is determined based on the size of the overhead. That is, by comparing the overhead required for the adapter device to process the command for transferring the communication protocol control information with the overhead required for copying the output data to the continuous area of the communication protocol control information, the latter overhead If the smaller one, try to refill. In other words, the data length determination reference value is the data length at which the time required for the adapter device to follow the chain (data chain) between commands and the time required for the main processing device to copy a certain length of data are equal. When sending the input / output data in which the header part created by the protocol processing and the user data part are linked by a chain, before creating the command,
The output data length is judged, and if it is shorter than the reference value, the user data is copied to the area after the header part. That is, the header and the user data are recreated as one continuous input / output data.

【0038】[0038]

【作用】複数の入出力装置に対する複数の入出力コマン
ドを、主処理装置から1回の入出力起動命令として発行
し、アダプタ装置では、その1回の入出力起動命令に含
まれる複数の入出力装置に対する複数の入出力コマンド
をどの入出力装置に対する入出力コマンドか特定し、特
定した入出力装置に対して入出力コマンドを各々与える
ようにしたので、1回の入出力起動命令で複数の入出力
装置の入出力動作が実行される。
A plurality of input / output commands for a plurality of input / output devices are issued from the main processing unit as one input / output start instruction, and the adapter device outputs a plurality of input / output included in the one input / output start instruction. Since multiple I / O commands for a device are specified to which I / O device, and I / O commands are given to the specified I / O devices respectively, a plurality of I / O startup commands can be issued. The input / output operation of the output device is executed.

【0039】アダプタ装置にまとめて渡す複数のコマン
ド列は、上記のアドレス情報と入出力装置を特定する識
別子情報とを含むブロックが複数個連続した構造を有す
るテーブルにより管理するようにし、特に主処理装置か
らアダプタ装置に取り込んだか否かを示すフラグ情報を
設ければ、主処理装置とアダプタ装置との間のコマンド
列のやり取りを円滑に行なうことができ、アダプタ装置
のコマンド受け付け能力に応じて最大限のコマンド群を
まとめて要求できる。
A plurality of command strings to be collectively passed to the adapter device are managed by a table having a structure in which a plurality of blocks including the address information and the identifier information for specifying the input / output device are consecutively managed. By providing flag information indicating whether or not data is fetched from the device to the adapter device, the command sequence can be exchanged smoothly between the main processing device and the adapter device. You can request a limited set of commands all at once.

【0040】複数の入出力装置に対する複数の入力コマ
ンドを1回の入出力起動命令としてアダプタ装置に先出
しすることにより、入力動作のオーバヘッドを軽減でき
る。
By issuing a plurality of input commands for a plurality of input / output devices to the adapter device as one input / output activation instruction, the overhead of input operation can be reduced.

【0041】プロトコル処理により、データを複数のパ
ケットに分割して送信する場合は、一度に送信可能なパ
ケット数分の前記パケットを転送するための出力コマン
ドからなる一連のコマンド列が作成される。ドライバ部
の入出力動作によって当該コマンド列が実行されると、
1回の入出力起動命令で、分割された複数のパケットが
まとめて入出力装置側に転送される。
When the data is divided into a plurality of packets to be transmitted by the protocol processing, a series of command strings consisting of output commands for transferring the number of packets that can be transmitted at a time are created. When the command sequence is executed by the input / output operation of the driver unit,
A plurality of divided packets are collectively transferred to the input / output device side by one input / output activation command.

【0042】本発明では、必要な場合に、上述の詰め替
え処理を行なうことにより、ヘッダ部を指し示す位置か
ら連続したデータとして、アダプタ装置がデータチェー
ンを辿る処理をしないでデータ転送処理を実行できる。
これにより、入出力アダプタ処理を含めた入出力処理オ
ーバーヘッドを最適化することができる。
In the present invention, by performing the above-mentioned refilling process, if necessary, the data transfer process can be executed as continuous data from the position indicating the header portion without the adapter device following the data chain.
Thereby, the input / output processing overhead including the input / output adapter processing can be optimized.

【0043】[0043]

【実施例】以下、本発明の実施例を図面を用いて説明す
る。以下では、5つの実施例1〜5を説明するが、その
前に、図1を参照して本発明に係る入出力インターフェ
ースでの基本的な処理手順を説明する。
Embodiments of the present invention will be described below with reference to the drawings. Five embodiments 1 to 5 will be described below, but before that, a basic processing procedure in the input / output interface according to the present invention will be described with reference to FIG.

【0044】図1において、CPUは、2つの入出力デ
バイス1,2に対する入出力動作を1つの入出力命令を
発行することで起動している。CPUが1つの入出力命
令を発行しただけで、入出力(IO)アダプタは、デバ
イス1との入出力作業およびデバイス2との入出力作業
を連続して行なう。IOアダプタはデバイス1との入出
力作業が終了したときCPUに割込みをかけ、CPUは
割込み処理1を行なう。CPUは、割込み処理1の後、
デバイス2に対する入出力起動命令を発行する必要はな
く、別の仕事を行なうことができる。IOアダプタはデ
バイス2との入出力作業が終了したときCPUに割込み
をかけ、CPUは割込み処理2を行なう。
In FIG. 1, the CPU activates the input / output operation for the two input / output devices 1 and 2 by issuing one input / output instruction. The CPU issues only one input / output instruction, and the input / output (IO) adapter continuously performs input / output work with the device 1 and input / output work with the device 2. The IO adapter interrupts the CPU when the input / output work with the device 1 is completed, and the CPU performs interrupt processing 1. After the interrupt processing 1, the CPU
It is not necessary to issue an input / output activation command to the device 2, and another work can be performed. The IO adapter interrupts the CPU when the input / output work with the device 2 is completed, and the CPU performs the interrupt processing 2.

【0045】以下、このような基本的な手順で動作する
本発明の実施例について具体的に説明する。
An embodiment of the present invention which operates according to such a basic procedure will be specifically described below.

【0046】(実施例1)本実施例は、入出力アダプタ
装置が入出力チャネル装置である場合の実施例を示した
ものである。
(Embodiment 1) This embodiment shows an embodiment in which the input / output adapter device is an input / output channel device.

【0047】図2は、本発明を適用した入出力チャネル
装置を用いた計算機システムの機能構造、特に、入出力
チャネル(以降、CHと表記)142の機能を中心にし
た説明図である。CPU140は、CISC型の中央演
算処理装置である。MS141は、主記憶装置である。
CH142は、CPU140およびMS141にバスを
介して相互に接続されている。
FIG. 2 is an explanatory diagram centering on the functional structure of a computer system using the input / output channel device to which the present invention is applied, particularly the function of the input / output channel (hereinafter referred to as CH) 142. The CPU 140 is a CISC type central processing unit. The MS 141 is a main storage device.
The CH 142 is mutually connected to the CPU 140 and the MS 141 via a bus.

【0048】IOCU147は、入出力制御装置であ
り、CH142と接続されている。また、1つのCH1
42には、複数のIOCU147が接続されている。同
様に、1つのIOCU147には、複数の入出力デバイ
ス(以降、DEVと表記)148が接続されている。I
OCU147は、接続されたDEV148を制御する。
The IOCU 147 is an input / output control unit and is connected to the CH 142. Also, one CH1
A plurality of IOCUs 147 are connected to 42. Similarly, a plurality of input / output devices (hereinafter referred to as DEV) 148 are connected to one IOCU 147. I
The OCU 147 controls the connected DEV 148.

【0049】CH142は、バスインタフェース制御部
143、データ転送制御部144、CCW実行部14
5、およびIOCU制御部146から成り立っている。
バスインタフェース制御部143は、入出力起動コマン
ドの受け付けやCPUに対する割り込み通知やMS14
1に対するアクセス等を制御するブロックである。CC
W実行部145は、CCWを解析し送信や受信等のデー
タ転送を制御するブロックである。IOCU制御部14
6は、CCW実行部145からの指示によって、IOC
U147とのパスを制御するブロックである。データ転
送制御部144は、CCW実行部145の指示によって
MS141上のデータをIOCU147に転送したり、
またはIOCU147からのデータをMS141に格納
したりする機能ブロックである。
The CH 142 includes a bus interface control unit 143, a data transfer control unit 144, and a CCW execution unit 14.
5 and an IOCU control unit 146.
The bus interface control unit 143 receives the input / output activation command, notifies the CPU of an interrupt, and outputs the MS14.
It is a block that controls access to 1 and the like. CC
The W execution unit 145 is a block that analyzes the CCW and controls data transfer such as transmission and reception. IOCU control unit 14
6 is an IOC according to an instruction from the CCW execution unit 145.
This block controls the path to the U147. The data transfer control unit 144 transfers the data on the MS 141 to the IOCU 147 according to an instruction from the CCW execution unit 145,
Alternatively, it is a functional block that stores data from the IOCU 147 in the MS 141.

【0050】図3は、図2のCH142とCPU140
とのインタフェース規定を説明するための図であり、特
に従来と異なる部分のインタフェース表現を詳しく示し
たものである。
FIG. 3 shows the CH 142 and the CPU 140 of FIG.
FIG. 3 is a diagram for explaining the interface regulation with the above, and particularly shows in detail the interface expression of a part different from the conventional one.

【0051】図3において、入出力起動命令200は、
図31に示した従来の入出力起動命令20に、拡張フラ
グ201を追加したものである。複数のデバイスに対し
て複数のIOコマンドを与えたいとき、CPU140
は、拡張フラグ201をオンとして、本入出力起動命令
200を、該当するチャネルアドレスのCH装置(IO
を行いたいデバイスDEV148が接続されているCH
装置)142に対して発行する。このとき、入出力起動
命令200中のデバイスアドレス情報は、意味を持たな
い。
In FIG. 3, the input / output start instruction 200 is
An extension flag 201 is added to the conventional input / output activation instruction 20 shown in FIG. When you want to give multiple IO commands to multiple devices,
Turns on the extension flag 201 and sends this input / output activation command 200 to the CH device (IO) of the corresponding channel address.
CH to which device DEV148 that you want to perform is connected
Device) 142. At this time, the device address information in the input / output activation instruction 200 has no meaning.

【0052】拡張CAW301は、コマンドアドレスか
らなる従来のCAW(図31の21)にストップビット
302とチャネルアドレス303とデバイスアドレス3
04を追加したブロック(以後、コマンドブロックと呼
ぶ)を、MS141上の所定の固定アドレスから複数個
(コマンドを与えるデバイスの数分)連続して並べたも
のである。
The extended CAW 301 has a conventional CAW (21 in FIG. 31) consisting of a command address, a stop bit 302, a channel address 303, and a device address 3.
A block in which 04 is added (hereinafter referred to as a command block) is continuously arranged from a predetermined fixed address on the MS 141 (as many as the number of devices giving a command).

【0053】コマンドブロック中のコマンドアドレス
は、従来と同様に、CCW列の先頭アドレスを示す。ま
た、チャネルアドレス303とデバイスアドレス304
は、CCW列を実行するターゲットデバイスを識別する
ためのアドレス情報である。CCW列を構成する各CC
W22は、図31の従来のCCW22と同じである。
The command address in the command block indicates the start address of the CCW sequence, as in the conventional case. Also, the channel address 303 and the device address 304
Is address information for identifying the target device that executes the CCW sequence. CCs that make up the CCW sequence
W22 is the same as the conventional CCW22 of FIG.

【0054】コマンドブロック中のストップビット30
2は、当該コマンドブロックが、拡張CAW301の最
後のコマンドブロックであるか否かを示す情報である。
最後のコマンドブロックのストップビットはオン
(1)、それ以外のコマンドブロックのストップビット
はオフ(0)であるようにする。
Stop bit 30 in the command block
2 is information indicating whether or not the command block is the last command block of the extended CAW 301.
The stop bit of the last command block is on (1), and the stop bits of the other command blocks are off (0).

【0055】CPU140は、以上のようなインタフェ
ース情報を設定し、拡張された入出力起動命令200を
実行する。これを受けたCH142は、設定に応じて入
出力動作を開始する。
The CPU 140 sets the interface information as described above and executes the extended input / output activation instruction 200. Upon receiving this, the CH 142 starts the input / output operation according to the setting.

【0056】図4は、CH142のメイン処理ロジック
を示すフローチャートである。拡張された入出力起動命
令200を受けたCH142は、まず、決められたアド
レスから始まる拡張CAW301の先頭のコマンドブロ
ックを内部のレジスタに取り込む(ステップ310
1)。次に、取り込んだコマンドブロックのコマンドア
ドレスにより示されたCCW列の処理を実行する(ステ
ップ3103)。
FIG. 4 is a flow chart showing the main processing logic of the CH 142. Upon receiving the expanded input / output activation command 200, the CH 142 first fetches the head command block of the expanded CAW 301 starting from the determined address into the internal register (step 310).
1). Next, the CCW sequence processing indicated by the command address of the fetched command block is executed (step 3103).

【0057】次に、取り込んだコマンドブロックのスト
ップビット302のチェックを行う(ステップ310
5)。ストップビットがオン、すなわち、その値が1な
らば、処理を終了する。そうでなければ、取り込むべき
拡張CAW301のコマンドブロックを指すポインタを
更新し(ステップ3107)、再度ステップ3101か
ら処理を実行する。つまり、拡張CAW301のストッ
プビットが1になるまで、CCW列の処理を繰り返す。
Next, the stop bit 302 of the fetched command block is checked (step 310).
5). If the stop bit is on, that is, if its value is 1, the process is terminated. If not, the pointer pointing to the command block of the extended CAW 301 to be fetched is updated (step 3107), and the processing is executed again from step 3101. That is, the CCW sequence processing is repeated until the stop bit of the extended CAW 301 becomes 1.

【0058】図5は、上記処理ステップ3103のCC
W実行処理の処理フローチャートである。本処理は、従
来と同様なロジックであるが、これを説明する。
FIG. 5 shows the CC of the processing step 3103.
It is a processing flowchart of W execution processing. This processing has the same logic as the conventional one, but this will be described.

【0059】まず、取り込んだコマンドブロックのコマ
ンドアドレスによって示されたCCW列の先頭CCWを
取り込む(ステップ3201)。次に、取り込んだコマ
ンドブロックのデバイスアドレスで識別されるターゲッ
トデバイスDEV148のセレクションを行うことでパ
スを開く(ステップ3203)。次に、コマンドをター
ゲットデバイスに対して発行し、応答を待つ(ステップ
3205)。
First, the leading CCW of the CCW sequence indicated by the command address of the fetched command block is fetched (step 3201). Next, the target device DEV148 identified by the device address of the fetched command block is selected to open the path (step 3203). Next, the command is issued to the target device and a response is waited for (step 3205).

【0060】次に、データ転送制御部144を使用して
データ転送処理を行う。なお、データ転送制御部144
は、CCWのデータチェーン処理も行う(ステップ32
07)。次に、CCWのコマンドフラグをチェックし、
コマンドチェーンフラグがオンならば、ステップ321
5に進み、そうでないなら、ステップ3211に進む
(ステップ3209)。
Next, the data transfer control unit 144 is used to perform data transfer processing. The data transfer control unit 144
Also performs CCW data chain processing (step 32).
07). Next, check the command flag of CCW,
If the command chain flag is on, step 321
5. If not, proceed to step 3211 (step 3209).

【0061】ステップ3215は、次のCCWを取り込
む処理であり、その後は、再度ステップ3205から繰
り返す。ステップ3211は、終了ステ−タスを作成す
る処理である。最後に、CPU140に対する割り込み
を発生させる(ステップ3213)。以上で、CCW実
行処理の説明を終わる。
Step 3215 is a process for fetching the next CCW, and thereafter, the process is repeated from step 3205 again. Step 3211 is a process of creating an end status. Finally, an interrupt is generated for the CPU 140 (step 3213). This is the end of the description of the CCW execution process.

【0062】次に、CPU140側での複数デバイスに
対する入出力コマンドをまとめて発行する処理について
説明する。ここでは、CPU140がデータ通信のため
の入出力コマンドを発行する場合を例に説明する。
Next, the process of issuing the input / output commands for a plurality of devices collectively on the CPU 140 side will be described. Here, a case where the CPU 140 issues an input / output command for data communication will be described as an example.

【0063】図6は、CPU140がデータ通信のため
に実行する処理プログラムの詳細な構成とCH142と
の関係を表したものである。複数のアプリケーションプ
ログラム(AP)34に対する通信サービス(データ送
信、データ受信)を通信管理340が提供している。通
信管理340は、バッファやタイマ等の計算機リソース
を管理するマネージャ(MGR)341と、AP34か
らの通信要求受け付け処理を行うアプリケーションイン
ターフェース(API)342と、通信プロトコルに従
って通信データを加工したり制御したりするプロトコル
処理343と、CH142とのインタフェースを制御す
るドライバ345とから構成される。
FIG. 6 shows the relationship between the CH 142 and the detailed structure of the processing program executed by the CPU 140 for data communication. The communication management 340 provides communication services (data transmission, data reception) for a plurality of application programs (AP) 34. The communication management 340 manages computer resources such as a buffer and a timer (MGR) 341, an application interface (API) 342 that receives a communication request from the AP 34, and processes and controls communication data according to a communication protocol. And a driver 345 that controls the interface with the CH 142.

【0064】AP34からデータ通信に関する種々の入
出力要求が通信管理340に発行される。通信管理34
0では、MGR341の管理の元で、API342がA
P34からの入出力要求を受け付け、プロトコル処理3
43が通信データを加工・制御してドライバ345に入
出力要求を発行する。ドライバ345は、受け付けた入
出力要求に応じて、図3で説明した各種の情報を設定
し、入出力起動命令200をCH142に発行する。
Various input / output requests relating to data communication are issued from the AP 34 to the communication management 340. Communication management 34
In 0, the API 342 is A under the management of the MGR 341.
Accepts I / O requests from P34, and performs protocol processing 3
43 processes and controls the communication data and issues an input / output request to the driver 345. The driver 345 sets various information described in FIG. 3 according to the received input / output request, and issues the input / output activation command 200 to the CH 142.

【0065】図7は、ドライバ345が入出力起動命令
を発行するときに参照する管理情報テーブルを示したも
のである。
FIG. 7 shows a management information table that the driver 345 refers to when issuing an input / output activation command.

【0066】待ち要求管理テーブル330は、ドライバ
345が上位のプロトコル処理343からの要求33を
直ちに処理できないとき(CH142がビジー等)、こ
れを保管しておくためのテーブルである。上位からの要
求33には、次要求のアドレスおよび要求のタイプ(送
信/受信)と共に、プロトコル処理343が使用するデ
ータ(PDU)を納めるバッファ30のアドレスも含ま
れる。待ち要求管理テーブル330は、これらの要求3
3を管理するため、一連の要求33の先頭アドレス、そ
の最終アドレス、および一連の要求の数等を保持する。
The waiting request management table 330 is a table for storing the request 33 when the driver 345 cannot immediately process the request 33 from the upper protocol processing 343 (CH 142 is busy, etc.). The request 33 from the upper layer includes the address of the next request and the type of the request (transmission / reception), as well as the address of the buffer 30 that stores the data (PDU) used by the protocol process 343. The waiting request management table 330 stores these requests 3
In order to manage 3, the start address of the series of requests 33, the final address thereof, the number of series of requests, and the like are held.

【0067】完了待ち管理テーブル331は、CH14
2に対してコマンドを発行済みであり、未だCH142
からのコマンド終了応答が帰ってきてないものを管理す
るテーブルである。なお、本テーブル331の構成と管
理方式は、待ち要求管理テーブル330と同様である。
The completion waiting management table 331 is CH14.
2 has already issued a command to CH142
It is a table for managing the ones in which the command end response from is not returned. The configuration and management method of this table 331 are the same as those of the waiting request management table 330.

【0068】図8は、上位のプロトコル処理343から
の要求33を受けた後のドライバ345の処理ロジック
を示すフローチャートである。
FIG. 8 is a flowchart showing the processing logic of the driver 345 after receiving the request 33 from the upper protocol processing 343.

【0069】まず、ドライバ345は、待ち要求管理テ
ーブル330を調べることで、要求待ちが無く、かつ、
CH142の状態がビジーでないかどうかを調べる(ス
テップ3501)。要求待ちが無くかつCH142がビ
ジーでないならば、ステップ3503に進む。要求待ち
が有るかまたはCH142がビジーならば、ステップ3
509に進み、待ち要求管理テーブル330を更新する
ことで、新たに受け付けた当該要求33をエンキューす
る(ステップ3509)。そして処理を終わる。
First, the driver 345 checks the waiting request management table 330 to find that there is no request waiting, and
It is checked whether the state of CH 142 is not busy (step 3501). If there is no request waiting and CH 142 is not busy, the process proceeds to step 3503. If there is a request waiting or CH142 is busy, step 3
In step 509, the waiting request management table 330 is updated to enqueue the newly accepted request 33 (step 3509). Then the process ends.

【0070】ステップ3501の判別が真ならば、当該
要求33にしたがってCCW列を作成する(ステップ3
503)。次に、前記ステップで作成したCCW列の先
頭アドレス等を設定することで拡張CAW301を作成
する(ステップ3505)。次に、起動すべきCH14
2を特定するチャネルアドレスをロードし、入出力起動
命令200を発行する(ステップ3507)。
If the determination at step 3501 is true, a CCW sequence is created according to the request 33 (step 3
503). Next, the extended CAW 301 is created by setting the start address of the CCW string created in the above step (step 3505). Next, CH14 to be activated
The channel address specifying 2 is loaded, and the input / output start instruction 200 is issued (step 3507).

【0071】以上で、上位のプロトコル処理345から
の要求によりコマンド発行を行う一連の処理の説明を終
わる。
This concludes the description of the series of processes for issuing a command in response to a request from the higher-level protocol process 345.

【0072】図9は、CH142からの終了割り込みを
受けた後のドライバ345のコマンド再発行処理ロジッ
クを示すフローチャートである。CH142からの終了
割り込みを受けたとき、ドライバ345は終了割込み処
理を実行するが、その終了割込み処理を実行した後、図
9のコマンド再発行処理を実行することになる。
FIG. 9 is a flow chart showing the command reissue processing logic of the driver 345 after receiving the end interrupt from the CH 142. When receiving the end interrupt from the CH 142, the driver 345 executes the end interrupt process, but after executing the end interrupt process, the command reissue process of FIG. 9 is executed.

【0073】まず、ドライバ345は、待ち要求管理テ
ーブル330を調べることで、要求待ちが有り、かつ、
CH142の状態がビジーでないかどうかを調べる(ス
テップ3601)。要求待ちが有りかつCH142がビ
ジーでないならば、ステップ3603に進む。要求待ち
が無いかまたはCH142がビジーならば、処理を終了
する。
First, the driver 345 checks the waiting request management table 330 to find that there is a request waiting, and
It is checked whether the state of CH 142 is not busy (step 3601). If there is a request waiting and CH 142 is not busy, the process proceeds to step 3603. If there is no request waiting or if CH 142 is busy, the processing is ended.

【0074】ステップ3603では、待ち要求管理テー
ブル330に待ち要求が無いかどうかチェックする(ス
テップ3603)。待ち要求がある場合は、待ち要求を
待ち要求管理テーブル330からデキューし(ステップ
3605)、デキューした要求33にしたがってCCW
列を作成する(ステップ3607)。そして、前記ステ
ップで作成したCCW列の先頭アドレス等を設定するこ
とで拡張CAW301を作成する(ステップ360
9)。次に、再度ステップ3603からの処理を繰り返
す。
In step 3603, it is checked whether or not there is a waiting request in the waiting request management table 330 (step 3603). When there is a waiting request, the waiting request is dequeued from the waiting request management table 330 (step 3605), and CCW is performed according to the dequeued request 33.
A column is created (step 3607). Then, the extended CAW 301 is created by setting the start address of the CCW sequence created in the above step (step 360).
9). Next, the processing from step 3603 is repeated again.

【0075】このようにステップ3603〜3609
を、待ち要求管理テーブル330のすべての待ち要求に
対して繰り返し実行し、図3で説明したようなCCW列
と拡張CAW301を作成する。
As described above, steps 3603 to 3609 are performed.
Is repeatedly executed for all the waiting requests in the waiting request management table 330, and the CCW sequence and the extended CAW 301 as described in FIG. 3 are created.

【0076】ステップ3603で待ち要求が無くなった
場合は、拡張CAW301のストップビットを設定する
(ステップ3611)。具体的には、拡張CAW301
の最後のコマンドブロックのストップビットをオン
(1)とし、それ以前のコマンドブロックのストップビ
ットをオフ(0)とする。次に、起動すべきCH142
を特定するチャネルアドレスをロードし、入出力起動命
令200を実行する(ステップ3613)。
If there is no waiting request in step 3603, the stop bit of the extended CAW 301 is set (step 3611). Specifically, the extended CAW301
The stop bit of the last command block is turned on (1), and the stop bit of the previous command block is turned off (0). Next, CH142 to be activated
Is loaded, and the input / output activation instruction 200 is executed (step 3613).

【0077】なお、ステップ3605で待ち要求を待ち
要求管理テーブル330からデキューする際にはデキュ
ーした待ち要求を完了待ち管理テーブル331に追加す
る。そして、当該入出力処理が終了してCH142から
割込みがかかったとき、その終了割込み処理において入
出力完了を確認し、完了待ち管理テーブル331から当
該待ち要求を削除する。
When the waiting request is dequeued from the waiting request management table 330 in step 3605, the dequeued waiting request is added to the completion waiting management table 331. Then, when the input / output processing ends and an interrupt is issued from the CH 142, the completion interrupt processing confirms the input / output completion, and deletes the waiting request from the completion waiting management table 331.

【0078】以上で、終了割り込み受け付け後のコマン
ド再発行処理の説明を終わる。
This is the end of the description of the command reissue processing after acceptance of the end interrupt.

【0079】(実施例2)次に、本発明の第2の実施例
を図面を用いて説明する。第2の実施例は、本発明を図
33で説明したような通信サーバ100に適用した例で
ある。
(Embodiment 2) Next, a second embodiment of the present invention will be described with reference to the drawings. The second embodiment is an example in which the present invention is applied to the communication server 100 as described in FIG.

【0080】図10は、本発明を適用する通信サーバ1
00のハードウエア構成を示したものである。ディスプ
レイ121は、運用者(もしくはオペレータ)に対する
メッセージを表示するための表示装置である。キーボー
ド122は、運用者が与える運用コマンドの入力装置で
ある。CPU123は、オンライン処理プログラム等の
ソフトウェアの処理装置である。MU(記憶ユニット)
124には、上記ソフトウエアのプログラムや各種の制
御テーブルやバッファが納められている。CPU123
とMU124は、メインバスで結合されている。
FIG. 10 shows a communication server 1 to which the present invention is applied.
00 hardware configuration. The display 121 is a display device for displaying a message to an operator (or an operator). The keyboard 122 is an input device for operation commands given by the operator. The CPU 123 is a processing device for software such as an online processing program. MU (memory unit)
The program of the above software and various control tables and buffers are stored in 124. CPU123
The MU 124 and the MU 124 are connected by a main bus.

【0081】メインバスには、BA(バスアダプタ)1
25を介して入出力バスが接続されている。メインバス
と入出力バスを分離した理由は、速度の遅い入出力機器
に直接CPUを接続すると、バスの速度は遅いほうの入
出力機器の速度に合わせなければならないので、CPU
性能が劣化するからである。
BA (bus adapter) 1 is installed on the main bus.
An input / output bus is connected via 25. The reason for separating the main bus and the input / output bus is that if the CPU is directly connected to the slower input / output device, the bus speed must match the speed of the slower input / output device.
This is because the performance deteriorates.

【0082】さらに、通信サーバ100は、DKU(デ
ィスクユニット)129やMCI(多回線制御装置)1
23等の入出力制御装置を備える。これらの入出力制御
装置と入出力バスとは、IOA(入出力アダプタ)12
8を介して接続される。特にMCI130は、1つのI
OA128にローカルバス(SCSIバス)を介して複
数個接続される。その理由は、1つのMCI130に接
続できる回線131の本数が限られているため、ユーザ
の業務規模によっては、多数の回線を接続するため上述
のように複数のMCI130を接続する必要があるから
である。入出力バスには、高速LANのアダプタ装置で
あるFDDIA(FDDIアダプタ)126やCCU
(コンソール制御ユニット)127が接続されている。
Further, the communication server 100 includes a DKU (disk unit) 129 and an MCI (multi-line control device) 1
An input / output control device such as 23 is provided. These input / output control devices and input / output buses are connected to IOA (input / output adapter) 12
8 is connected. In particular, MCI 130 has one I
A plurality of OAs 128 are connected via a local bus (SCSI bus). The reason is that the number of lines 131 that can be connected to one MCI 130 is limited. Therefore, depending on the business scale of the user, it is necessary to connect a plurality of MCIs 130 as described above in order to connect many lines. is there. An FDDIA (FDDI adapter) 126 or CCU, which is a high-speed LAN adapter device, is connected to the input / output bus.
(Console control unit) 127 is connected.

【0083】本実施例は、上述の第1の実施例とは別の
実施例であるのは当然であるが、その対応を述べれば、
図10のIOA128が第1の実施例のCH142に対
応し、MCI130が第1の実施例のIOCU147お
よびDEV148に対応するようなものである。
This embodiment is, of course, a different embodiment from the above-described first embodiment.
The IOA 128 of FIG. 10 corresponds to the CH 142 of the first embodiment, and the MCI 130 corresponds to the IOCU 147 and DEV 148 of the first embodiment.

【0084】図10の本機器構成に基づいて入出力動作
の概要を説明する。IOA128は、CPU123から
の入出力コマンドをBA125を介して受け取ること
で、その入出力動作を開始する。データ送信の場合、I
OA128は、MU124から指定されたデータを該当
するMCI130に転送する。データ受信の場合、当該
MCI130からMU124の指定エリアにBA125
を介してデータを転送する。MCI130はデータを格
納するためのバッファを備えている。
An outline of the input / output operation will be described based on the device configuration of FIG. The IOA 128 starts an input / output operation by receiving an input / output command from the CPU 123 via the BA 125. For data transmission, I
The OA 128 transfers the data designated by the MU 124 to the corresponding MCI 130. In the case of data reception, the BA 125 is transferred from the MCI 130 to the designated area of the MU 124.
To transfer data through. The MCI 130 has a buffer for storing data.

【0085】上述したように、CPU123が、入出力
制御装置としてのMCI130とMU124間のデータ
転送権限を握っている。CPU123からの入出力コマ
ンドは、当該IOA128に対する指示と当該回線13
1に対する指示とからなる。この入出力コマンドをMC
I130が実行することで、当該回線を介したデータ通
信が行われる。
As described above, the CPU 123 has the authority to transfer data between the MCI 130 as the input / output control device and the MU 124. The input / output command from the CPU 123 is the instruction to the IOA 128 and the line 13 concerned.
It consists of the instructions for 1. MC this input / output command
When I130 is executed, data communication is performed via the line.

【0086】図11は、MU124に格納されている情
報である。これは大きく3つの部分からなる。3つの部
分とは、各種ソフトウェアの実行プログラム、その参照
テーブル、およびバッファ領域である。
FIG. 11 shows the information stored in the MU 124. It consists of three parts. The three parts are an execution program of various software, its reference table, and a buffer area.

【0087】各種ソフトウェアとは、記憶管理やプロセ
ス管理等を行うOSカーネル、ディスプレイ121やキ
ーボード122との間の入出力を行うコンソール制御、
ログファイル等の更新を行うファイル管理、および回線
やFDDIを介したデータ通信を行う通信管理からなる
制御ソフト群、並びにオンライン処理等の各種アプリケ
ーションプログラム群である。それぞれに対応して、参
照テーブルとバッファ領域が設けられている。
The various software includes an OS kernel for performing storage management and process management, console control for performing input / output with the display 121 and keyboard 122,
The control software group includes file management for updating log files and the like, and communication management for performing data communication via a line or FDDI, and various application programs such as online processing. A reference table and a buffer area are provided corresponding to each.

【0088】なお、上記通信管理プログラムは、図6で
説明した通信管理プログラム340と同様のものであ
る。特に、通信管理プログラムのうちドライバが、後述
の図16に示す構造のインターフェース情報を用意し、
IOA128に入出力起動命令を発行する。以後、本実
施例2の通信管理のドライバやプロトコル処理について
述べるときは、図6に示した付番を用いるものとする。
The communication management program is the same as the communication management program 340 described with reference to FIG. In particular, the driver of the communication management program prepares interface information having a structure shown in FIG.
Issue an I / O activation command to the IOA 128. Hereinafter, the numbering shown in FIG. 6 will be used when describing the communication management driver and protocol processing of the second embodiment.

【0089】図12は、IOA128の内部構造を示す
ブロック図である。IOA128は、次の機能ブロック
からなる。入出力バスである外部バスとIOA128の
内部バスであるローカルバスとのインタフェースを制御
するバスインタフェースLSI401、CPUと同様の
処理装置であるMPU402(本体100の処理装置で
あるCPU123と区別するため、ここではMPUと呼
ぶ)、ローカルメモリ(LM)403、およびSCSI
プロトコルプロセッサ404である。
FIG. 12 is a block diagram showing the internal structure of the IOA 128. The IOA 128 is composed of the following functional blocks. A bus interface LSI 401 that controls an interface between an external bus that is an input / output bus and a local bus that is an internal bus of the IOA 128, an MPU 402 that is a processing device similar to a CPU (for distinguishing from the CPU 123 that is the processing device of the main body 100, Referred to as MPU), local memory (LM) 403, and SCSI
The protocol processor 404.

【0090】CPU123からのIOA128に対する
指示を受け付けるのがバスインタフェースLSI401
である。バスインタフェースLSI401は、次の4つ
の機能ブロックから構成されている。外部バス制御部
は、CPUのアドレス信号の値に応じてデータバスのパ
ス開閉を制御したりCPUへの割り込み信号を制御する
ブロックである。アーキテクチャレジスタ制御部は、C
PU123とのインタフェース用レジスタ群とこれに対
するアクセス(入出力情報の書き込みやMPU402に
対する割り込み等)を制御するブロックである。外部バ
ス−ローカルバス変換部は、外部バスでのアドレス信号
とローカルバスでのアドレス信号とのマッピングを行う
ブロックである。ローカルバス制御部は、ローカルバス
の開閉を制御するブロックである。
The bus interface LSI 401 receives the instruction to the IOA 128 from the CPU 123.
Is. The bus interface LSI 401 is composed of the following four functional blocks. The external bus control unit is a block that controls the opening / closing of the path of the data bus and the interrupt signal to the CPU according to the value of the address signal of the CPU. The architecture register controller is C
It is a block that controls a register group for interface with the PU 123 and access to the register group (writing input / output information, interrupting the MPU 402, etc.). The external bus-local bus conversion unit is a block that maps an address signal on the external bus and an address signal on the local bus. The local bus control unit is a block that controls opening / closing of the local bus.

【0091】ローカルメモリ(LM)403には、IO
A制御プログラム(C/Wオブジェクト)や、制御に必
要な情報(コマンドエントリ、コマンドチェーン、トレ
ース、ワーク)を記録する。これらの情報については、
後述する。SCSIプロトコルプロセッサ404は、S
CSIバスの制御機能を有するSCSI制御部、および
DMA転送機能を有するデータ転送制御部を兼ね備えた
ものである。
The local memory (LM) 403 has an IO
A control program (C / W object) and information necessary for control (command entry, command chain, trace, work) are recorded. For this information,
It will be described later. The SCSI protocol processor 404 uses the S
It has a SCSI control unit having a CSI bus control function and a data transfer control unit having a DMA transfer function.

【0092】図13は、SCSIバスを介してIOA1
28から渡された一連のコマンドに応じて回線ごとのデ
ータ入出力処理を行なうMCI130の内部構造であ
る。MCI130は、大きく次の2つの部分から成り立
つ。LP510とLC520とである。
FIG. 13 shows IOA1 via the SCSI bus.
28 is an internal structure of the MCI 130 which performs data input / output processing for each line in accordance with a series of commands passed from 28. The MCI 130 is roughly composed of the following two parts. LP510 and LC520.

【0093】LP510は、第2層の通信プロトコルを
処理するプロセッサモジュールである。一方、LC52
0は、物理回線とのインタフェースを処理するプロセッ
サモジュールであり、複数個存在する。LP510が第
1の実施例のIOCU147に対応し、LC520が第
1の実施例のDEV148に対応するようなものであ
る。
The LP 510 is a processor module for processing the second layer communication protocol. On the other hand, LC52
Reference numeral 0 denotes a processor module that processes an interface with a physical line, and there are a plurality of processor modules. The LP 510 corresponds to the IOCU 147 of the first embodiment, and the LC 520 corresponds to the DEV 148 of the first embodiment.

【0094】LP510は、SCSIバスインタフェー
スを制御するSCSIコントローラ511、SCSIコ
ントローラ用メモリ512、通信データのバッファであ
るグローバルメモリ513、MPU514、およびMP
U用メモリ515からなる。他方、LC520は、LC
用プロセッサ装置であるLCP521、およびLCP用
メモリ522からなる。
The LP 510 includes a SCSI controller 511 for controlling the SCSI bus interface, a SCSI controller memory 512, a global memory 513 which is a communication data buffer, an MPU 514, and an MP.
It is composed of a U memory 515. On the other hand, LC520 is LC
It is composed of an LCP 521 which is a processor unit for LCP and a memory 522 for LCP.

【0095】図14および図15を参照して、本実施例
における入出力シーケンスを説明する。図14は、デー
タ送信時のシーケンスである。図15は、データ受信時
のシーケンスである。
The input / output sequence in this embodiment will be described with reference to FIGS. 14 and 15. FIG. 14 is a sequence at the time of transmitting data. FIG. 15 is a sequence when receiving data.

【0096】図14を参照して、データ送信時のシーケ
ンスを説明する。CPU123は、まずコマンド505
(後述)を作成し、これをコマンドエントリ504(後
述)に設定する。次に、IOコマンドレジスタ501
(後述)をアクセスすることで、IOA128を起動す
る。次に、起動したIOA128は、コマンドエントリ
504を、そのLM403に取り込む。IOA128
は、取り込んだコマンドエントリ情報から、当該コマン
ドを見つけその内容を解析する。そして、ターゲットM
CI130とのバスを結合させたのち、MCI130に
対してコマンドを発行する。以上のシーケンス動作は、
図15のデータ受信時も同一である。
The sequence of data transmission will be described with reference to FIG. The CPU 123 first issues the command 505.
(Described later) is created and set in the command entry 504 (described later). Next, the IO command register 501
The IOA 128 is activated by accessing (described later). Next, the started IOA 128 fetches the command entry 504 into the LM 403. IOA128
Finds the command from the fetched command entry information and analyzes its contents. And the target M
After connecting the bus with the CI 130, a command is issued to the MCI 130. The above sequence operation is
The same is true when the data shown in FIG. 15 is received.

【0097】以後まず、送信動作について述べる。送信
(send)コマンドを送信した後、IOA128は、
送信データをMU124から当該MCI130のグロー
バルメモリ513へDMA転送する。当該MCI130
からのデータ転送完了通知を受けたIOA128は、S
CSIバス開放を行うと同時に、完了情報をMU124
に書き込む。そして、コマンド終了割り込みによって、
コマンドの終了をCPU123に知らせる。割り込みに
よって起動されたCPU123は、完了情報をチェック
する。
First, the transmission operation will be described below. After sending the send command, the IOA128
The transmission data is DMA-transferred from the MU 124 to the global memory 513 of the MCI 130. The MCI 130
The IOA 128 that has received the data transfer completion notification from
When the CSI bus is released, the completion information is sent to the MU124
Write in. And by the command end interrupt,
The CPU 123 is notified of the end of the command. The CPU 123 activated by the interrupt checks the completion information.

【0098】次に、図15を参照して、受信シーケンス
を説明する。上述したように、受信(read)コマン
ド送信の前までのシーケンスは図14と同じであるので
説明を省略する。
Next, the reception sequence will be described with reference to FIG. As described above, the sequence up to the transmission of the reception (read) command is the same as that in FIG.

【0099】受信(read)コマンドを送信した後、
IOA128は、当該MCI130からの信号を待つ。
MCI130に未だ受信データが無い場合、IOA12
8は、MCI130からのバス開放要求によりバスの開
放を行う。MCI130は、データ受信の後、受信通知
をIOA128に発行する。受信通知を受けたIOA1
28は、MCI130とのバスの再結合を行ない、DM
A転送によって受信データをMU124に転送する。こ
れ以降のシーケンスは、図14で説明した送信の場合と
同様である。
After sending the receive command,
The IOA 128 waits for a signal from the MCI 130.
If there is no received data in MCI130, IOA12
8 releases the bus in response to a bus release request from the MCI 130. After receiving the data, the MCI 130 issues a reception notification to the IOA 128. IOA1 that received the notification
28 performs bus reconnection with the MCI 130, and DM
The received data is transferred to the MU 124 by the A transfer. The subsequent sequence is the same as the case of the transmission described in FIG.

【0100】図16は、入出力動作時に参照するCPU
−IOA間インタフェース情報の関係を示した図であ
る。本実施例では、CPU123にRISC型プロセッ
サを使用したため、入出力起動命令として専用命令を用
いることができないので、IO方式は、メモリマップド
IO方式を採用した。これは、CPU123のメモリ空
間の一部をIOA128のIOコマンドレジスタ501
に割り当てた方式である。このアドレスに対してロード
命令を実行することが、IOコマンドレジスタ501を
アクセスすることであり、入出力起動命令を発行するこ
とに相当する。
FIG. 16 shows a CPU referred to during input / output operation.
FIG. 6 is a diagram showing a relationship of inter-IOA interface information. In this embodiment, since the RISC type processor is used as the CPU 123, a dedicated instruction cannot be used as an input / output start instruction, so the memory mapped IO method is adopted as the IO method. This is because a part of the memory space of the CPU 123 is the IO command register 501 of the IOA 128.
Is the method assigned to. Executing a load instruction to this address is accessing the IO command register 501, and is equivalent to issuing an input / output activation instruction.

【0101】コマンドエントリアドレス502は、MU
124内の固定アドレスに配置された情報であり、か
つ、IOA128が読み取るべき先頭のコマンドエント
リ504のアドレスを記録したものである。無論、IO
A128はコマンドエントリアドレス502のアドレス
を知っている。コマンドインタフェース503は、51
2個のコマンドエントリ504を連続して並べたもの
(配列)である。2のべき乗個並べたことにより、IO
A128のコマンドエントリ参照処理でのポインタ更新
を単純化させている。
The command entry address 502 is the MU
This is information arranged at a fixed address in 124 and also records the address of the first command entry 504 to be read by the IOA 128. Of course, IO
A128 knows the address of the command entry address 502. The command interface 503 is 51
This is an array (array) in which two command entries 504 are continuously arranged. By arranging powers of 2
The pointer update in the command entry reference processing of A128 is simplified.

【0102】各コマンドエントリ504は、コマンド5
05へのポインタを持っている。コマンド505は、転
送エリア506の情報と次のコマンド505へのポイン
タ情報を持つ。コマンド505は、この次コマンド50
5へのポインタで連結され、コマンド列を構成する。1
つのコマンドエントリ504からは一列のコマンド列が
ポイントされるから、全体として、コマンドインタフェ
ース503によって複数のコマンド列がポイントされる
ことになる。
Each command entry 504 contains the command 5
I have a pointer to 05. The command 505 has information on the transfer area 506 and pointer information to the next command 505. The command 505 is the next command 50.
It is connected by a pointer to 5 to form a command string. 1
Since one command string is pointed from one command entry 504, a plurality of command strings are pointed to by the command interface 503 as a whole.

【0103】転送エリア506は、送信時は送信データ
が格納されるエリアであり、受信時は受信データを格納
するためのバッファであり、コマンド完了後は受信デー
タが格納されたエリアになる。
The transfer area 506 is an area for storing transmission data at the time of transmission, is a buffer for storing the reception data at the time of reception, and becomes an area for storing the reception data after completion of the command.

【0104】図17は、コマンド505を詳細に記述し
た図である。次コマンドアドレスは、コマンド列を構成
するためのポインタ情報であり、次コマンド505への
ポインタである。フラグeocは、コマンド列の最後を
示す情報である。フラグeocが0のとき当該コマンド
の次に次コマンドが存在することを示し、フラグeoc
が1のとき当該コマンドがコマンド列の最後のコマンド
であることを示す。デバイスIDは、回線を識別するた
めの情報である。
FIG. 17 is a diagram in which the command 505 is described in detail. The next command address is pointer information for forming a command string, and is a pointer to the next command 505. The flag eoc is information indicating the end of the command sequence. When the flag eoc is 0, it indicates that the next command exists next to the command, and the flag eoc is set.
Indicates that the command is the last command in the command sequence. The device ID is information for identifying the line.

【0105】フラグ領域は、次の3つのフラグからな
る。3つのフラグとは、dc、crep、intであ
る。
The flag area consists of the following three flags. The three flags are dc, crep, and int.

【0106】dcフラグは、データチェーンを構成する
ためのフラグである。データチェーンとは、当該コマン
ドが次コマンドと同じであるときを言う。すなわち、次
コマンドが当該コマンドと同一の入出力動作を別のデー
タ領域に対して行なうコマンドであるとき、当該コマン
ドのdcフラグが1とされる。それ以外の場合は、dc
フラグが0とされる。異なるコマンドのときは、コマン
ドチェーンと称する。crepフラグは、当該コマンド
による動作が完了したときに完了情報の作成を指示する
情報である。intフラグは、当該コマンドによる動作
が完了したときに終了割り込みの発生を指示する情報で
ある。本実施例では、各コマンド終了後、割り込みによ
って完了情報を受け取る仕様である。
The dc flag is a flag for forming a data chain. The data chain is when the command is the same as the next command. That is, when the next command is a command for performing the same input / output operation as that command for another data area, the dc flag of the command is set to 1. Otherwise, dc
The flag is set to 0. When they are different commands, they are called a command chain. The crep flag is information instructing creation of completion information when the operation by the command is completed. The int flag is information for instructing the generation of an end interrupt when the operation by the command is completed. In this embodiment, after completion of each command, completion information is received by interruption.

【0107】IOAコマンドは、DMA起動要求を意味
する情報である。転送エリアアドレスは、先に述べた転
送エリア506のアドレスであり、転送長はその長さで
ある。SCSIコマンドは、MCI130が実行すべき
コマンド(read/send等)である。完了情報エ
リアは、IOA128が完了情報を記録するエリアであ
る。なお、コマンド505は、IOA128が参照し易
いように8ワードからなりたっている。
The IOA command is information indicating a DMA activation request. The transfer area address is the address of the transfer area 506 described above, and the transfer length is its length. The SCSI command is a command (read / send or the like) to be executed by the MCI 130. The completion information area is an area where the IOA 128 records the completion information. The command 505 consists of 8 words so that the IOA 128 can easily refer to it.

【0108】図18は、コマンドエントリ504を詳細
に記述した図である。フラグbusyは、IOA128
が当該コマンドエントリ504をMU124からLM4
03に取り込んだか否かを示すフラグである。すなわ
ち、CPU123がコマンドエントリ504をMU12
4内に作成するときは1をセットしておき、IOA12
8が起動され、IOA128がそのコマンドエントリ5
04を読み取ったとき0をセットするものである。
FIG. 18 is a diagram in which the command entry 504 is described in detail. The flag busy is IOA128.
Sends the command entry 504 from MU124 to LM4
This is a flag indicating whether or not the data has been captured in 03. That is, the CPU 123 sets the command entry 504 to the MU12.
When creating in 4, set 1 and IOA12
8 is started, and IOA128 has its command entry 5
When 04 is read, 0 is set.

【0109】コマンドエントリ504内のデバイスID
は、コマンド505のものと同様であり、入出力を行な
うデバイス(本例では、回線)を指示する識別子情報で
ある。なお、このコマンドエントリ504のデバイスI
Dで指定された1つのデバイスが、当該コマンドエント
リ504からポイントされる一連のコマンド505の入
出力の対象となる。したがって、図17の各コマンド5
05のデバイスIDの欄は無くてもよいともいえるが、
障害時の処理などにおいて用いるため設けてある。
Device ID in command entry 504
Is the same as that of the command 505, and is identifier information for instructing a device (line in this example) for input / output. The device I of this command entry 504
One device designated by D is an input / output target of a series of commands 505 pointed from the command entry 504. Therefore, each command 5 in FIG.
It can be said that the device ID column of 05 is not necessary,
It is provided for use in processing in the event of a failure.

【0110】再び図18を参照して、コマンドエントリ
504内のコマンドエントリコマンドには、DMA転送
を意味する値を書き込む。コマンド列先頭アドレスは、
コマンド列の先頭のコマンド505のアドレスである。
障害情報格納アドレスは、障害発生時の情報を格納する
エリアのアドレスである。障害情報格納エリア長は、上
記エリアの大きさである。なお、コマンドエントリ50
4は、IOA128が参照し易いように8ワードからな
りたっている。
Referring again to FIG. 18, a value meaning DMA transfer is written in the command entry command in command entry 504. The command string start address is
It is the address of the first command 505 in the command sequence.
The failure information storage address is an address of an area that stores information when a failure occurs. The failure information storage area length is the size of the above area. The command entry 50
4 is composed of 8 words so that the IOA 128 can easily refer to it.

【0111】次に、IOA128の処理ロジックを説明
する。図19、図20、および図21は、図12に示し
たIOA128内のMPU402の処理ロジックを説明
するためのフローチャート図である。図22は、上記処
理ロジックで参照するLM403上の情報構造である。
Next, the processing logic of the IOA 128 will be described. 19, 20, and 21 are flowcharts for explaining the processing logic of the MPU 402 in the IOA 128 shown in FIG. FIG. 22 shows an information structure on the LM 403 referred to by the above processing logic.

【0112】IOA128の処理ロジックを説明する前
に、図22を参照して、LM403上の情報構造を説明
する。コマンドエントリコピー管理テーブル580は、
IOA128がMU124から取り込んだコマンドエン
トリを管理するテーブルである。コマンドエントリコピ
ー581は、取り込んだコマンドエントリのコピーなど
を格納するテーブルである。実行コマンド処理テーブル
582は、コマンド処理時に参照するテーブルである。
Before describing the processing logic of the IOA 128, the information structure on the LM 403 will be described with reference to FIG. The command entry copy management table 580 is
The IOA 128 is a table that manages command entries fetched from the MU 124. The command entry copy 581 is a table that stores a copy of the fetched command entry. The execution command processing table 582 is a table referred to when processing a command.

【0113】コマンドエントリコピー管理テーブル58
0は、チェーンで結ばれた一連のコマンドエントリコピ
ー581を管理するため、先頭のコマンドエントリコピ
ー581のアドレスと最終のコマンドエントリコピー5
81のアドレスを保持する。コマンドエントリコピー数
は、テーブル580によって管理されているコマンドエ
ントリコピー581の数である。実行コマンドエントリ
コピーアドレスは、実行中のコマンドエントリコピー5
81のアドレスである。
Command entry copy management table 58
0 manages a series of command entry copies 581 connected in a chain, so the address of the first command entry copy 581 and the last command entry copy 5
The address of 81 is held. The command entry copy number is the number of command entry copies 581 managed by the table 580. The execution command entry copy address is the command entry copy 5 being executed.
81 addresses.

【0114】コマンドエントリコピー581は、コマン
ドエントリの取り込みによって作成される情報であり、
コマンドエントリ504からの必要な情報をコピーした
エリアと、実行コマンド処理テーブル582のアドレス
と、次コマンドエントリコピーのポインタ情報とからな
る。
The command entry copy 581 is information created by importing the command entry,
It consists of an area where necessary information is copied from the command entry 504, an address of the execution command processing table 582, and pointer information for copying the next command entry.

【0115】実行コマンド処理テーブル582は、コマ
ンドの転送処理に必要な情報を記録した処理テーブルで
あり、実行中のコマンドの位置を示す実行コマンドアド
レスと、残コマンド数と、readコマンド発行済みフ
ラグとからなる。
The execution command processing table 582 is a processing table in which information required for command transfer processing is recorded, and the execution command address indicating the position of the command being executed, the number of remaining commands, the read command issued flag, and the like. Consists of.

【0116】以下、図14および図15で説明した処理
シーケンスにしたがって、IOA128の処理ロジック
を説明する。
The processing logic of the IOA 128 will be described below in accordance with the processing sequence described with reference to FIGS.

【0117】図21は、コマンドエントリ取り込み処理
の処理ロジックをフローチャートで示したものである。
図14および図15で説明したように、CPU123
(および通信管理340のドライバ345)は、図17
に示したコマンド505を作成し、図18に示したコマ
ンドエントリ504に設定し、最終的には図16に示し
た構造のインターフェース情報をMU124内に作成し
て、IOコマンドレジスタ501をアクセスすることに
より、割り込みをかける。
FIG. 21 is a flow chart showing the processing logic of the command entry fetch processing.
As described with reference to FIGS. 14 and 15, the CPU 123
(And the driver 345 of the communication management 340) is shown in FIG.
18 is created, the command entry 504 shown in FIG. 18 is set, and finally the interface information having the structure shown in FIG. 16 is created in the MU 124 to access the IO command register 501. Causes an interrupt.

【0118】このCPU123からの割り込みよって、
IOA128では、図21のコマンドエントリ取り込み
処理が起動する。本処理において、IOA128内のM
PU402は、コマンドエントリアドレス502の値に
よって示されたコマンドエントリ504から処理を開始
する。
Due to the interruption from the CPU 123,
In the IOA 128, the command entry fetch process of FIG. 21 is activated. In this process, M in IOA128
The PU 402 starts processing from the command entry 504 indicated by the value of the command entry address 502.

【0119】まず、CPU123がMU124内に設定
したコマンドエントリ504の情報を、LM403内の
コマンドエントリコピーエリアにコピーする(ステップ
5701)。次に、コマンドエントリコピー管理テーブ
ル580に、いま作成したコマンドエントリコピー58
1(図22)を登録する(ステップ5703)。
First, the CPU 123 copies the information of the command entry 504 set in the MU 124 to the command entry copy area in the LM 403 (step 5701). Next, in the command entry copy management table 580, the command entry copy 58 just created
1 (FIG. 22) is registered (step 5703).

【0120】これらの処理は、一連のコマンドエントリ
コピー581のチェーンの最後に新たにコマンドエント
リコピー581を追加する方式である。すなわち、まず
LM403内のコマンドエントリコピーエリア内に新た
にコマンドエントリコピー581を作成し、そこにコマ
ンドエントリ504の情報をコピーする。そして、コマ
ンドエントリコピー581のチェーンの最後のコマンド
エントリコピー581の次コマンドエントリコピー欄の
値として、いま新たに作成したコマンドエントリコピー
581のアドレスを設定する。さらに、コマンドエント
リコピー管理テーブル580の最終コマンドエントリコ
ピーのアドレスを更新し、コマンドエントリコピーの数
を更新する。
These processes are a method of newly adding the command entry copy 581 to the end of the chain of the series of command entry copies 581. That is, first, a new command entry copy 581 is created in the command entry copy area in the LM 403, and the information of the command entry 504 is copied therein. Then, the address of the newly created command entry copy 581 is set as the value of the next command entry copy field of the last command entry copy 581 in the chain of the command entry copy 581. Further, the address of the final command entry copy of the command entry copy management table 580 is updated, and the number of command entry copies is updated.

【0121】無論、初めての登録時は、先頭コマンドエ
ントリーコピーのアドレスと実行コマンドエントリコピ
ーのアドレスをも設定する(ステップ5703)。実行
コマンドエントリコピーのアドレスの初期値は、先頭コ
マンドエントリーコピー581のアドレスである。
Of course, when registering for the first time, the address of the head command entry copy and the address of the execution command entry copy are also set (step 5703). The initial value of the address of the execution command entry copy is the address of the head command entry copy 581.

【0122】次に、実行コマンド処理テーブル582の
設定処理を実行する(ステップ5707)。具体的に
は、実行コマンド処理テーブル582を新たに作成し、
ステップ5701で作成したコマンドエントリコピー5
81の実行コマンド処理テーブルアドレスの欄に、当該
実行コマンド処理テーブル582のアドレスを設定す
る。また、当該実行コマンド処理テーブル582の実行
コマンドアドレスの欄には、そのコマンドエントリコピ
ー581のコマンド列先頭アドレス(図18)を設定す
る。さらに、そのコマンド列先頭アドレスからチェーン
されているコマンド列をチェックし、当該実行コマンド
処理テーブル582の残コマンド数の欄に、コマンド列
を構成するコマンドチェーンの数を記録する。
Next, the setting processing of the execution command processing table 582 is executed (step 5707). Specifically, the execution command processing table 582 is newly created,
Command entry copy 5 created in step 5701
The address of the execution command processing table 582 is set in the execution command processing table address column 81. Further, in the execution command address column of the execution command processing table 582, the command string start address (FIG. 18) of the command entry copy 581 is set. Further, the chained command sequence from the command sequence start address is checked, and the number of command chains constituting the command sequence is recorded in the remaining command number column of the execution command processing table 582.

【0123】次に、次コマンドエントリの判別処理を行
なう(ステップ5707)。すなわち、当該コマンドエ
ントリ504のbusyフラグをクリアした後、次のコ
マンドエントリ504のアドレスを算出して、そのbu
syフラグをチェックする。フラグが立っていれば、そ
のコマンドエントリ504は未だIOAに取り込んでい
ないものであるから、ステップ5701から繰り返し、
コマンドエントリの取り込みを続ける。ステップ570
7でbusyフラグが立っていなければ、本割り込み処
理を終了する(ステップ5707)。
Next, the process for determining the next command entry is performed (step 5707). That is, after clearing the busy flag of the command entry 504, the address of the next command entry 504 is calculated and the bu
Check the sy flag. If the flag is set, the command entry 504 has not yet been fetched into the IOA, and therefore, the process is repeated from step 5701.
Continue fetching command entries. Step 570
If the busy flag is not set at 7, the interrupt processing ends (step 5707).

【0124】図19と図20を用いて、IOA128に
おけるコマンド処理のメインロジックを説明する。図1
9は図14で説明した送信系の処理、図20は図15で
説明した受信系の処理である。
The main logic of command processing in the IOA 128 will be described with reference to FIGS. 19 and 20. FIG.
9 is the processing of the transmission system described in FIG. 14, and FIG. 20 is the processing of the reception system described in FIG.

【0125】まず、図19を用いて送信系の処理を説明
する。コマンドエントリコピー管理テーブル580の実
行コマンドエントリコピーアドレスからチェーンを辿っ
て、実行すべきコマンドの格納アドレス(実行コマンド
処理テーブル582の実行コマンドアドレス)を獲得す
る。この値がnullであるかどうか、またはread
発行済みフラグが立っているかどうかをチェックする
(ステップ5501)。
First, the processing of the transmission system will be described with reference to FIG. The chain is traced from the execution command entry copy address of the command entry copy management table 580 to acquire the storage address of the command to be executed (execution command address of the execution command processing table 582). Whether this value is null or read
It is checked whether the issued flag is set (step 5501).

【0126】上記値がnull、または上記フラグが立
っていたら、異なるデバイスに対する実行コマンドを取
得すべく、コマンドエントリコピー管理テーブル580
の実行コマンドエントリコピーアドレスを更新(次のコ
マンドエントリコピー581を指すように更新)して
(ステップ5527)、ステップ5501に戻る。
If the above value is null or the above flag is set, the command entry copy management table 580 is used to acquire the execution command for a different device.
The execution command entry copy address of is updated (updated to point to the next command entry copy 581) (step 5527) and the procedure returns to step 5501.

【0127】ステップ5501で上記以外ならば、コマ
ンドエントリコピー管理テーブル580の実行コマンド
エントリコピーアドレスでポイントされるコマンドエン
トリコピー581のデバイスIDから、コマンドの実行
対象であるターゲットMCIのアドレスを得る処理を行
う(ステップ5503)。次に、ステップ5503で得
たアドレスを指定してSCSIプロトコル処理プロセッ
サ404にバス結合要求を発行することで、ターゲット
MCIとのバスをオープンさせる(ステップ550
5)。
If otherwise in step 5501, the process of obtaining the address of the target MCI to be executed command from the device ID of the command entry copy 581 pointed to by the execution command entry copy address of the command entry copy management table 580. Perform (step 5503). Next, the bus obtained from the target MCI is opened by issuing a bus bond request to the SCSI protocol processor 404 by designating the address obtained in step 5503 (step 550).
5).

【0128】次に、コマンドのチェックを行う。ここで
は、send系コマンドかread系コマンドかによっ
て以降の処理の振り分けを行う(ステップ5507)。
read系の処理は後で説明することとし、まずsen
d系処理を説明する。
Next, the command is checked. Here, the subsequent processing is sorted according to whether the command is a send command or a read command (step 5507).
The read processing will be explained later, and first,
The d-system processing will be described.

【0129】MPU402は、SCSIプロトコルプロ
セッサ404に対し、send系コマンドをターゲット
MCIに送る要求をする。これにより、先にオープンし
たバスを介してsend系コマンドがターゲットMCI
に転送される(ステップ5509)。次に、送信データ
をMU124からターゲットMCI上のメモリへ転送す
るため、プロセッサ404に、実行コマンドを指示し
て、DMA転送開始要求を発行する。プロセッサ404
は、実行コマンドを参照し、送信データ(データチェー
ンで連結された)をDMA方式で転送する(ステップ5
511)。
The MPU 402 requests the SCSI protocol processor 404 to send a send command to the target MCI. As a result, the send command is sent to the target MCI via the bus opened earlier.
(Step 5509). Next, in order to transfer the transmission data from the MU 124 to the memory on the target MCI, the processor 404 is instructed to execute the command and issues a DMA transfer start request. Processor 404
Refers to the execution command and transfers the transmission data (connected by the data chain) by the DMA method (step 5).
511).

【0130】次に、MPU402は、実行コマンドのc
repビットをチェックする(ステップ5513)。本
ビットがオンならば、ターゲットMCIからの完了報告
に基づいて、コマンド505内の完了情報エリアに完了
情報を書き込む(ステップ5515)。crepビット
がオフの場合、または、ステップ5515の後は、in
tビットのチェックを行う(ステップ5517)。
Next, the MPU 402 sends the execution command c
The rep bit is checked (step 5513). If this bit is ON, the completion information is written in the completion information area in the command 505 based on the completion report from the target MCI (step 5515). in if the crep bit is off or after step 5515
The t bit is checked (step 5517).

【0131】intビットがオンならば、割り込み信号
線を操作してCPU123に対して終了割り込みを発生
させる(ステップ5519)。intビットがオフの場
合、または、ステップ5517の後は、eocビットの
チェック処理を行う(ステップ5521)。
If the int bit is on, the interrupt signal line is operated to generate an end interrupt to the CPU 123 (step 5519). If the int bit is off or after step 5517, the eoc bit is checked (step 5521).

【0132】eocビットがオンならば、当該コマンド
エントリコピー581の解放処理を行う(ステップ55
25)。すなわち、テーブル580からコマンドエント
リコピーの数を1減らし、実行コマンドエントリコピー
のアドレスを更新(次のコマンドエントリコピー581
を指すように更新)してから、当該コマンドエントリコ
ピー581を削除する。eocビットがオフならば、実
行コマンド処理テーブル582の実行コマンドアドレス
の更新(次のコマンドを指すように更新)を行なう(ス
テップ5523)。
If the eoc bit is ON, the command entry copy 581 is released (step 55).
25). That is, the number of command entry copies is reduced from the table 580 by 1, and the address of the execution command entry copy is updated (next command entry copy 581
Is updated) to delete the command entry copy 581. If the eoc bit is off, the execution command address in the execution command processing table 582 is updated (updated to point to the next command) (step 5523).

【0133】ステップ5525の後は、ステップ550
1から繰り返す。ステップ5523の後は、ステップ5
507から繰り返す。
After step 5525, step 550
Repeat from 1. After Step 5523, Step 5
Repeat from 507.

【0134】図20を用いて、read系の処理を説明
する。前述の処理ステップ5507で実行すべきコマン
ドがread系コマンドであるとき、MPU402は、
プロセッサ404にread系コマンドをターゲットM
CIに送る要求をする。これにより、先にオープンした
バスを介してread系コマンドが転送される(ステッ
プ5601)。
The read processing will be described with reference to FIG. When the command to be executed in the above processing step 5507 is a read command, the MPU 402
Target read commands to the processor 404 M
Make a request to send to the CI. As a result, the read command is transferred via the bus that was opened earlier (step 5601).

【0135】次に、ターゲットMCIからの応答をチェ
ックし、ターゲットMCIに受信データが無いかどう
か、すなわちバス解放を行うかどうかをチェックする
(ステップ5601)。受信データが無い場合はバス解
放を行なうこととし、プロセッサ404に対してバス解
放要求を行う(ステップ5605)。そして、実行コマ
ンド処理テーブル582のRead発行済みフラグをオ
ンにする(ステップ5697)。その後、ステップ55
27から実行し、異なるデバイスのコマンドを処理す
る。
Next, the response from the target MCI is checked to see if the target MCI has no received data, that is, whether to release the bus (step 5601). If there is no received data, the bus is released, and a bus release request is issued to the processor 404 (step 5605). Then, the Read issued flag of the execution command processing table 582 is turned on (step 5697). Then, step 55
27 to process commands from different devices.

【0136】ステップ5603でバス解放しない場合、
すなわち受信データ有りの場合は、DMA転送開始要求
を発行することで、受信データをターゲットMCIから
MU124に転送する(ステップ5609)。その後、
ステップ5513から実行する。
If the bus is not released in step 5603,
That is, if there is received data, a DMA transfer start request is issued to transfer the received data from the target MCI to the MU 124 (step 5609). afterwards,
The processing is executed from step 5513.

【0137】次に、図20の下段のフローチャートを参
照して、ステップ5605でバスの解放をした後、受信
データが発生した場合の処理を述べる。本処理は、re
ad系コマンド発行済みのMCIからの、IOA128
とのバスの再結合をすることによって発生する割り込み
によって、起動する。
Next, with reference to the flow chart in the lower part of FIG. 20, the processing when reception data occurs after the bus is released in step 5605 will be described. This process is re
IOA128 from MCI that has issued the ad command
It is activated by an interrupt generated by rejoining the bus with.

【0138】まず、割り込みを発生させたMCIのデバ
イスIDを識別することでターゲットMCIを認識し、
コマンドエントリコピー581と実行コマンド処理テー
ブル582をサーチすることで発行済みのコマンドを特
定することにより受信メッセージを受け付ける(ステッ
プ5611)。次に、当該テーブル582のRead発
行済みフラグをオフにする(ステップ5613)。そし
て、DMA転送要求を発行することで、受信データをタ
ーゲットMCIからMU124に転送する(ステップ5
615)。
First, the target MCI is recognized by identifying the device ID of the MCI that generated the interrupt,
The received message is accepted by specifying the issued command by searching the command entry copy 581 and the execution command processing table 582 (step 5611). Next, the Read issued flag of the table 582 is turned off (step 5613). Then, the received data is transferred from the target MCI to the MU 124 by issuing a DMA transfer request (step 5).
615).

【0139】その後、図19のステップ5513からス
テップ5521までの処理と同様に、コマンドのビット
処理を実行する(ステップ5617から5625)。こ
こで、ステップ5621のeocビット判定処理でオン
である場合、コマンドエントリコピーの解放を行う(ス
テップ5627)。
Thereafter, command bit processing is executed (steps 5617 to 5625) in the same manner as the processing from step 5513 to step 5521 of FIG. If the eoc bit determination processing in step 5621 is on, the command entry copy is released (step 5627).

【0140】以上でIOA128のメイン処理の説明を
終わる。
This concludes the description of the main processing of the IOA 128.

【0141】(実施例3)前記実施例1および2では、
ドライバは、APからの受信要求があってからread
コマンドをCH142やIOA128に発行していた。
これに対し、本実施例3は、readコマンドをAPか
らの受信要求受け付け前に予めIOA128(あるいは
CH)に対して発行する実施例である。本処理を行う処
理モジュールをread先出し処理と呼ぶ。なお、ここ
では上述の実施例2(主としてドライバ345)にre
ad先出し処理の機能を付加した例につき説明するが、
実施例1に適用することもできる。
(Example 3) In the above Examples 1 and 2,
The driver reads read after receiving a request from the AP.
Commands were issued to CH142 and IOA128.
On the other hand, the third embodiment is an embodiment in which the read command is issued to the IOA 128 (or CH) in advance before receiving the reception request from the AP. The processing module that performs this processing is called read first-out processing. In addition, here, in the above-described second embodiment (mainly the driver 345),
An example of adding the function of ad first-out processing will be explained.
It can also be applied to the first embodiment.

【0142】図23は、read先出し処理が参照する
先出しreadコマンド管理テーブル400の構成図で
ある。図24は、read先出し処理の処理ロジックを
フローチャートで表したものである。
FIG. 23 is a configuration diagram of the first-out read command management table 400 referred to by the first-read processing. FIG. 24 is a flowchart showing the processing logic of the read-ahead processing.

【0143】図23を参照して、先出しreadコマン
ド管理テーブル400について詳細に説明する。テーブ
ル400は、デバイス総数と最大read発行数を保持
する。デバイス総数は、このドライバにより入出力可能
なデバイスの総数である。最大read発行数とは、各
デバイスに対してreadコマンドを先出しで出すとき
のreadコマンドの最大数である。言い換えれば、各
デバイスに対して複数個のreadコマンドをコマンド
チェーンでまとめて先出しで発行するときのコマンド数
の上限である。
The first-read read command management table 400 will be described in detail with reference to FIG. The table 400 holds the total number of devices and the maximum number of read issues. The total number of devices is the total number of devices that can be input / output by this driver. The maximum number of read issues is the maximum number of read commands when issuing a read command to each device in advance. In other words, it is the upper limit of the number of commands when a plurality of read commands are collectively issued to each device in a command chain and issued first.

【0144】また、テーブル400は、複数(デバイス
総数分)のデバイスIDと発行済みread数とのペア
を備えている。デバイスIDとは、各デバイスを識別す
るための識別子情報である。発行済みread数とは、
各デバイスIDに対応したデバイスにおいて発行したr
eadコマンドでそのコマンド動作が終了していないコ
マンドの数である。なお、各発行済みread数は、初
期化時にゼロクリアされている。
The table 400 also includes a plurality of (total number of devices) device IDs and the number of issued reads. The device ID is identifier information for identifying each device. What is the number of issued reads?
R issued by the device corresponding to each device ID
This is the number of commands whose command operation has not been completed by the ead command. Each issued read number is cleared to zero at initialization.

【0145】次に、図24を参照して、処理ロジックの
説明をする。まず、最初(ドライバの初期化後初めて)
は、ステップ4109から実行する。ここでは、テーブ
ル400のデバイス総数を変数yに代入し、初めのデバ
イスIDを指すポインタ変数(初めは図23のデバイス
IDが0x00を指す)を設定する(ステップ410
9)。次に、変数yの値により以降の処理を振分る。y
>0ならステップ4117に進み、そうでないならステ
ップ4113に進む(ステップ4111)。
Next, the processing logic will be described with reference to FIG. First, first (first time after driver initialization)
Is executed from step 4109. Here, the total number of devices in the table 400 is substituted into the variable y, and a pointer variable that points to the first device ID (at the beginning, the device ID in FIG. 23 points to 0x00) is set (step 410).
9). Next, the subsequent processing is distributed according to the value of the variable y. y
If> 0, the process proceeds to step 4117, and if not, the process proceeds to step 4113 (step 4111).

【0146】y>0のケースから説明する。テーブル4
00を参照して上記ポインタ変数が指すデバイスIDに
対応する発行済みread数の値を求め、最大read
発行数から該発行済みread数の値を減算し、その結
果を変数zに代入する(ステップ4117)。次に、テ
ーブル400の該当する発行済みread数の値を最大
read発行数に更新する(ステップ4115)。
The case of y> 0 will be described. Table 4
00, the value of the number of issued reads corresponding to the device ID pointed to by the pointer variable is calculated, and the maximum read
The value of the issued read number is subtracted from the issued number, and the result is substituted for the variable z (step 4117). Next, the value of the corresponding issued read count in the table 400 is updated to the maximum read issue count (step 4115).

【0147】次に、z個のreadコマンドからなるコ
マンドチェーンを作成する(ステップ4119)。そし
て、コマンドエントリ504にコマンドチェーンを登録
する(ステップ4121)。次に、変数yの値を1つ減
じ、上記ポインタ変数を更新(次のデバイスIDを指す
ようにする)して(ステップ4123)、ステップ41
11に戻る。このように、ステップ4111〜4123
をすべてのデバイスに対して実行し、各デバイスに最大
read発行数分の先出しのreadを発行しておく。
Next, a command chain consisting of z read commands is created (step 4119). Then, the command chain is registered in the command entry 504 (step 4121). Next, the value of the variable y is decremented by 1 and the pointer variable is updated (pointed to the next device ID) (step 4123), and step 41
Return to 11. In this way, steps 4111 to 4123
Is executed on all the devices, and the read-outs of the maximum number of read issues are issued to each device in advance.

【0148】ステップ4111でy>0でない場合、I
OA128を起動し入出力を開始する(ステップ411
3)。これで、初期化時からの一連の処理を終了する。
If y> 0 in step 4111, then I
Start OA128 and start input / output (step 411)
3). This completes the series of processes from the initialization.

【0149】次に、readコマンドの終了割り込みの
延長から本処理が起動される場合を説明する。
Next, description will be made regarding the case where this processing is started from the extension of the read command end interrupt.

【0150】終了割り込みの情報から、該当するデバイ
スIDを特定し、テーブル400から該当するデバイス
IDの発行済みread数を求める(ステップ410
1)。いま当該デバイスの入出力処理が1つ終了したの
であるから、変数xに発行済みread数−1を代入し
(ステップ4103)、テーブル400の当該発行済み
read数にxの値を設定することで更新を行う(ステ
ップ4107)。
The corresponding device ID is specified from the end interrupt information, and the issued read number of the corresponding device ID is obtained from the table 400 (step 410).
1). Since one input / output process of the device is completed now, the issued read number -1 is substituted for the variable x (step 4103), and the value of x is set to the issued read number of the table 400. Update is performed (step 4107).

【0151】次に、式x=<0を判定する(ステップ4
105)。判定値が真ならば、現在の発行済みread
数の値が0以下であるということだから、先出しのre
adを発行するため、ステップ4109から実行する。
そうでなければ、割り込みからの処理を終了する。本処
理によれば、あるデバイスでの先出しreadが無くな
ったときをトリガとして、複数のデバイスに対するre
adコマンドをまとめて発行することが出来る。
Next, the expression x = <0 is judged (step 4
105). If the judgment value is true, the current issued read
Since the value of the number is 0 or less, the previous re
The processing is executed from step 4109 to issue ad.
If not, the processing from the interrupt ends. According to this processing, when the read-ahead read in a certain device is lost, the read for multiple devices is triggered.
The ad command can be issued collectively.

【0152】(実施例4)前述した実施例1〜3では、
ドライバ345(図6)の処理については述べたが、プ
ロトコル処理343と入出力コマンドとの関連は述べな
かった。本実施例4ではそれらの関係を考慮し、プロト
コル処理によりデータを複数のパケットに分割して送信
する場合に、一度に送信可能なパケット数分のパケット
を転送するためのwriteコマンドからなる一連のコ
マンド列を作成して発行する例について説明する。
(Fourth Embodiment) In the first to third embodiments described above,
Although the processing of the driver 345 (FIG. 6) has been described, the relation between the protocol processing 343 and the input / output command has not been described. In the fourth embodiment, in consideration of these relationships, when data is divided into a plurality of packets by protocol processing and transmitted, a series of write commands for transferring the packets of the number of packets that can be transmitted at one time is formed. An example of creating and issuing a command sequence will be described.

【0153】なお、ここでは実施例2に上記機能を付加
した例(特に、図6のプロトコル処理343とドライバ
345間のインターフェース部分に後述の処理を付加し
たもの)を説明するが、他の実施例にも同様にして適用
できる。
An example in which the above function is added to the second embodiment (particularly, the interface processing between the protocol processing 343 and the driver 345 in FIG. 6 is added processing described later) will be described. The same can be applied to the example.

【0154】まず、通信プロトコル処理343について
説明する。通信プロトコルでは、パケットというある固
定長のデータ単位を送受信の単位とする。パケットは、
元データの先頭にヘッダと呼ばれるプロトコル制御情報
を付加したものである。従って、プロトコル処理343
では、元データ(AP34からのデータ)が上記パケッ
トサイズより大きいときは、これを分割し、複数のパケ
ットを作成しなければならない。この処理をパケット分
割処理と呼ぶ。
First, the communication protocol processing 343 will be described. In the communication protocol, a fixed-length data unit called a packet is a transmission / reception unit. Packet
Protocol control information called a header is added to the beginning of the original data. Therefore, the protocol processing 343
Then, when the original data (data from the AP 34) is larger than the above packet size, it must be divided to create a plurality of packets. This process is called a packet division process.

【0155】図25を参照して、本実施例でのパケット
分割処理の方式を説明する。本図では、水平線の上側が
分割前の元データと当該データのデータ管理情報ブロッ
ク(以後、SPBと呼ぶ)SPB0を示し、下側がパケ
ット分割処理後のデータとそのSPBを示したものであ
る。
With reference to FIG. 25, the method of packet division processing in this embodiment will be described. In the figure, the upper side of the horizontal line shows the original data before division and the data management information block (hereinafter referred to as SPB) SPB0 of the data, and the lower side shows the data after packet division processing and its SPB.

【0156】まず、パケット分割処理前では、バッファ
Bf0に元データD0が格納されており、1個のSPB
0が元データのアドレスとそのデータ長を保持すること
で元データD0を管理している。SPBは、次SPBア
ドレスを示すフィールド等を有している。元データが1
つのバッファに格納し切れない場合、複数のSPBで元
データを管理する。このとき、複数のSPB間は次SP
Bアドレスによって結合されている(これを、SPBデ
ータチェーンと呼ぶ)。
First, before packet division processing, the original data D0 is stored in the buffer Bf0 and one SPB is stored.
0 manages the original data D0 by holding the address of the original data and its data length. The SPB has a field indicating the next SPB address and the like. Original data is 1
If the data cannot be stored in one buffer, multiple SPBs manage the original data. At this time, the next SP between a plurality of SPBs
They are bound by the B address (this is called the SPB data chain).

【0157】図25では、元データD0が1つのバッフ
ァに格納されているため、SPB0の次SPBアドレス
の値はnullである。値nullは、チェーンの終了
を示す値である。従って、ここでのnullはSPBデ
ータチェーンの終了を示している。
In FIG. 25, since the original data D0 is stored in one buffer, the value of the next SPB address of SPB0 is null. The value null is a value indicating the end of the chain. Therefore, null here indicates the end of the SPB data chain.

【0158】図25において、元データD0から2つの
パケットを作成するパケット分割処理の方法について説
明する。パケット分割処理は、プロトコル処理343に
おいて実行される。
In FIG. 25, a method of packet division processing for creating two packets from the original data D0 will be described. The packet division process is executed in the protocol process 343.

【0159】まず、パケット分割処理は、元データD0
のデータ長を調べ、分割の要否、および分割する場合は
データの分割位置を決定する。ここでは、元データD0
をデータD1とD2に分割するとする。
First, the packet division processing is performed on the original data D0.
The length of data is checked to determine whether or not the data needs to be divided, and when dividing, the data division position is determined. Here, the original data D0
Is divided into data D1 and D2.

【0160】第1のパケットを作成するため、第1のヘ
ッダを格納するためのバッファBF1を確保し、ヘッダ
を作成する。第1のパケットを管理するSPBを作成す
るため、第1のヘッダのアドレスとそのデータ長を記録
し、続くSPB0のアドレスを記録したSPB1を作成
する。そして、SPB0のデータ長をデータD0の長さ
からデータD1の長さに変更する。
In order to create the first packet, the buffer BF1 for storing the first header is secured and the header is created. In order to create the SPB that manages the first packet, the address of the first header and its data length are recorded, and SPB1 in which the address of the subsequent SPB0 is recorded is created. Then, the data length of SPB0 is changed from the length of the data D0 to the length of the data D1.

【0161】次に、第2のパケットを作成するため、第
2のヘッダを格納するためのバッファBf2を確保しヘ
ッダを作成する。第2のパケットを管理するSPBを作
成するため、ヘッダを管理するSPB2と分割したデー
タを管理するSPB3を、それぞれ作成する。SPB2
の作成方法は、SPB1と同様である。SPB3は、デ
ータD2のアドレスとそのデータ長を記録することによ
り作成する。上記のように、本実施例では、データの移
動処理を行わないパケット分割方式を採用している。
Next, in order to create the second packet, the buffer Bf2 for storing the second header is secured and the header is created. In order to create the SPB that manages the second packet, SPB2 that manages the header and SPB3 that manages the divided data are created. SPB2
The method of creating is similar to SPB1. SPB3 is created by recording the address of data D2 and its data length. As described above, in this embodiment, the packet division method that does not perform the data movement process is adopted.

【0162】次に、パケット分割処理とコマンド作成処
理(ドライバ345によって図16のようなデータを作
成する処理)との関連を述べる。
Next, the relation between the packet division processing and the command creation processing (processing for creating data as shown in FIG. 16 by the driver 345) will be described.

【0163】ネットワーク層のプロトコルの制御として
ウインド制御について述べる。ウインド制御とは、複数
(所定数)のデータパケットを各データパケットごとの
送達確認無しに連続して送信し、まとめて送達確認する
制御方式である。送信側は、相手から返送されている受
信シーケンス番号(Pr)から、ウインドサイズをWS
とすると、WS+Pr−1までの送信シーケンス番号
(Ps)をもつデータパケットを送達確認無しに送信で
きる。すなわち、ウインドサイズ(Ws)は、相手から
の送達確認無しに連続して送信できる最大のデータパケ
ットの数を示している。
Window control will be described as the control of the protocol of the network layer. The window control is a control method in which a plurality (predetermined number) of data packets are continuously transmitted without confirmation of delivery for each data packet, and delivery confirmation is collectively performed. The sender uses the window size from the received sequence number (Pr) returned by the other party
Then, data packets having transmission sequence numbers (Ps) up to WS + Pr-1 can be transmitted without confirmation of delivery. That is, the window size (Ws) indicates the maximum number of data packets that can be continuously transmitted without confirmation of delivery from the other party.

【0164】ここで、もっとも新しい送信済みパケット
の送信シーケンス番号をPSとしたとき、連続転送数を
WS+Pr−1−PSと定義する。連続転送数は、現在
において相手からの送達確認無しに連続して送信できる
データパケット数を示している。本実施例では、この連
続転送数以内のパケットをまとめた入出力コマンドを作
成することで、これらを回線制御装置へ一括して転送さ
せる方式を採用している。本方式により、個々のパケッ
トを逐一転送する方式より、入出力効率を向上させてい
る。
Here, when the transmission sequence number of the newest transmitted packet is PS, the continuous transfer number is defined as WS + Pr-1-PS. The continuous transfer number indicates the number of data packets that can be continuously transmitted at present without confirmation of delivery from the other party. In the present embodiment, a method is adopted in which by creating an input / output command in which packets within the number of continuous transfers are collected, these are collectively transferred to the line control device. This method improves input / output efficiency over the method of transferring individual packets one by one.

【0165】この処理をパケット分割一括io処理と呼
ぶ。この処理の説明に移る。まず、プロトコル制御情報
として、上記の連続転送数を記録しておく。連続転送数
が0でなくかつ滞留パケットが有るときに、パケット分
割処理からパケット分割一括io処理へ処理が移行する
ようにする。滞留パケットとは、パケット分割処理で作
成した分割パケットのことである。パケット分割処理か
らパケット分割一括io処理へ移行する際には、パケッ
ト分割処理で作成した分割パケットの総数を、滞留パケ
ット数として引き渡すとともに、その各々のパケットの
アドレスも引き渡す。
This process is called a packet division batch io process. Let us now turn to the description of this processing. First, the number of continuous transfers is recorded as protocol control information. When the number of continuous transfers is not 0 and there is a staying packet, the processing shifts from the packet division processing to the packet division batch io processing. A staying packet is a divided packet created in the packet dividing process. When shifting from the packet dividing process to the packet dividing batch io process, the total number of divided packets created by the packet dividing process is delivered as the number of staying packets, and the address of each packet is also delivered.

【0166】図27は、パケット分割一括io処理ロジ
ックを示すフローチャートである。また、図26は、パ
ケット分割一括io処理で作成されたデータ構造を示す
とともに、ドライバに対するインタフェースのデータ構
造を示した図である。特に、図26は、図25の下側の
データ構造(パケット分割処理で分割したもの)をパケ
ット分割一括io処理で処理した結果を示したものであ
る。
FIG. 27 is a flow chart showing the packet division batch io processing logic. FIG. 26 is a diagram showing the data structure created by the packet division batch io process and also showing the data structure of the interface to the driver. In particular, FIG. 26 shows the result of processing the lower data structure of FIG. 25 (which is divided by the packet division processing) by the packet division batch io processing.

【0167】まず、パケット分割一括io処理では、連
続転送数(すなわち、現在時点でパケットごとの送達確
認無しで連続的に送信できるパケット数)と滞留パケッ
ト数(パケット分割処理で分割された分割パケットの
数)とを比較する(ステップ531)。滞留パケット数
が連続転送数以上である場合は、滞留パケットの先頭か
ら連続転送数分のパケットをコマンドチェーンで繋ぎ、
残りのパケットは、滞留させておく(ステップ53
5)。逆に、連続転送数より滞留パケット数が少ない場
合は、滞留パケットをすべてコマンドチェーンで繋ぐ
(ステップ533)。
First, in the packet division batch io process, the number of continuous transfers (that is, the number of packets that can be continuously transmitted without confirmation of delivery for each packet at the present time) and the number of staying packets (divided packets divided by the packet division process) (The number of) is compared (step 531). If the number of accumulated packets is greater than or equal to the number of continuous transfers, connect the packets for the number of continuous transfers from the beginning of the accumulated packets with a command chain,
The remaining packets are retained (step 53).
5). On the contrary, when the number of staying packets is smaller than the number of continuous transfers, all the staying packets are connected by the command chain (step 533).

【0168】ステップ533,535の後、ドライバに
対して送信要求する(ステップ537)。次に、連続転
送数を更新する(ステップ539)。具体的には、連続
転送数の値から、ステップ533,535で連結したパ
ケットの数を減算し、新たな連続転送数とする。
After steps 533 and 535, a transmission request is made to the driver (step 537). Next, the number of continuous transfers is updated (step 539). Specifically, the number of packets connected in steps 533 and 535 is subtracted from the value of the continuous transfer number to obtain a new continuous transfer number.

【0169】パケットをコマンドチェーンで繋ぐ処理
(ステップ533,535)について、図25の下段お
よび図26を例にして補足説明する。図25の下段に示
したデータ構造から図26のデータ構造を得るため、ま
ず、各SPBには、コマンドチェーン用ポインタフィー
ルド(初期値はnull)を設ける。次に、第1パケッ
トであるSPB1の次SPBチェーンを辿り、最後のS
PB(本例では、SPB0)のコマンドチェーン用ポイ
ンタに、第2パケットであるSPB2のアドレスを設定
する処理を行う。さらに繋ぐべきパケットが有るとき
は、同様の手順を繰り返せばよい。
The process of connecting the packets by the command chain (steps 533 and 535) will be supplementarily described by taking the lower part of FIG. 25 and FIG. 26 as an example. In order to obtain the data structure of FIG. 26 from the data structure shown in the lower part of FIG. 25, first, each SPB is provided with a command chain pointer field (initial value is null). Next, following the SPB chain next to the first packet SPB1, the last SB
A process of setting the address of SPB2, which is the second packet, to the command chain pointer of PB (SPB0 in this example) is performed. If there are more packets to connect, the same procedure may be repeated.

【0170】図28は、上記パケット分割一括io処理
で作られた図26のようなデータ構造からコマンドチェ
ーンを作成するドライバ345の処理ロジックを示すフ
ローチャートである。
FIG. 28 is a flow chart showing the processing logic of the driver 345 which creates a command chain from the data structure shown in FIG. 26 created by the packet division batch io process.

【0171】まず、ドライバ345は、SPB(先頭S
PBから処理を開始するものとする)に基づいてコマン
ド505(図16、図17)を作成する(ステップ54
1)。次に、当該SPBの次SPBアドレスが、nul
lかどうかを判定する(ステップ543)。当該SPB
の次SPBアドレスがnullでなければ、引き続くデ
ータが有るということだから、次コマンド505を確保
し、当該コマンド505のチェーンフィールドを設定し
データチェーンビット(dcビット)を立てる(ステッ
プ545)。そして、再度、コマンドの作成(ステップ
541)からの処理を繰り返す。
First, the driver 345 determines the SPB (start S
A command 505 (FIG. 16 and FIG. 17) is created based on the processing starting from PB (step 54).
1). Next, the next SPB address of the SPB is null.
It is determined whether it is 1 (step 543). The SPB
If the next SPB address is not null, it means that there is subsequent data. Therefore, the next command 505 is secured, the chain field of the command 505 is set, and the data chain bit (dc bit) is set (step 545). Then, the processes from the command creation (step 541) are repeated again.

【0172】もし、ステップ543の判定結果がnul
lならば、当該SPBのコマンドチェーン用ポインタの
値がnullでないか判定する(ステップ547)。こ
の結果、nullでなければ、次コマンド505を確保
し、当該コマンド505のチェーンフィールドを設定
し、データチェーンビット(dcビット)をクリアし、
割り込みビット(intビット)を立てる(ステップ5
49)。そして、再度ioコマンドの作成(ステップ5
41)から繰り返す。nullなら、当該コマンドのエ
ンドビット(eoc)を立てて処理を終了する。この処
理によって複数のパケットを一回のio動作で送るため
のチェーンで連結したコマンド列が作成される。
If the judgment result of step 543 is null.
If it is 1, it is determined whether the value of the command chain pointer of the SPB is null (step 547). If the result is not null, the next command 505 is secured, the chain field of the command 505 is set, and the data chain bit (dc bit) is cleared.
Set interrupt bit (int bit) (step 5)
49). Then create the io command again (step 5
Repeat from 41). If it is null, the end bit (eoc) of the command is set and the process ends. By this processing, a command string in which a plurality of packets are linked by a chain for sending in one io operation is created.

【0173】(実施例5)本実施例5は、上述の実施例
4を性能向上させるための変形例である。本実施例5の
特徴は、詰め替え処理にある。図29を参照して、詰め
替え処理方式について説明する。
(Fifth Embodiment) The fifth embodiment is a modification for improving the performance of the above-described fourth embodiment. The feature of the fifth embodiment resides in the refilling process. The refill processing method will be described with reference to FIG.

【0174】図29において、パケット分割処理603
は、上述の実施例4で説明したパケット分割処理であ
る。このパケット分割処理603でパケット分割が無い
場合の送信データ構造を、図29の上段に示す。パケッ
ト分割が無い場合には、ヘッダ用SPBであるSPB1
とデータ用SPBであるSPB0の2つの部分からなる
送信データ構造が作成される。
In FIG. 29, packet division processing 603.
Is the packet division processing described in the fourth embodiment. The transmission data structure when there is no packet division in this packet division processing 603 is shown in the upper part of FIG. If there is no packet division, SPB1 which is SPB for header
A transmission data structure including two parts, SPB0 for data and SPB0 for data, is created.

【0175】このために、この送信データをこのままド
ライバ345にわたして、コマンド列を作成させると、
ドライバ345ではSPB1つに対して必ず1つのコマ
ンドを作成するので、2つのコマンドから成るコマンド
列が作製されることになる。このコマンド列をIOA1
28が実行すると、2つのコマンドを処理することにな
る。この2つのコマンドは、コマンドチェーンで連結さ
れるが、DMA処理におけるバッファ切り替えのオーバ
ーヘッドが大きいためにデータ転送処理時間が大きくな
り、性能を落としていた。性能向上を計るために、上記
の処理を1つのコマンドで済ませるための処理が詰め替
え処理601である。
For this reason, if this transmission data is sent as it is to the driver 345 to create a command string,
Since the driver 345 always creates one command for one SPB, a command string consisting of two commands is created. This command string is IOA1
When executed, 28 will process two commands. These two commands are linked by a command chain, but the overhead of buffer switching in the DMA processing is large, so that the data transfer processing time becomes long and the performance is degraded. The refilling process 601 is a process for completing the above process with one command in order to improve the performance.

【0176】図29の中段は、詰め替え処理601によ
って作製された、1つのSPBで示されたパケットを表
している。図30は、詰め替え処理601の処理ロジッ
クをフローチャートで表現したものである。
The middle part of FIG. 29 shows a packet shown by one SPB created by the refilling process 601. FIG. 30 is a flowchart showing the processing logic of the refilling process 601.

【0177】まず、詰め替え処理601は、SPB0で
示されるデータ長とデータ長判定情報600を比較する
ことで、詰め替えの要否を決定する(ステップ61
1)。
First, the refilling process 601 determines the necessity of refilling by comparing the data length indicated by SPB0 with the data length determination information 600 (step 61).
1).

【0178】ここで、データ長判定情報600の値につ
いて説明する。いま、IOAが1つのコマンドを処理す
るオーバーヘッドをO(c)と定義する。データ長(バ
イト)をD1、1バイトをデータムーブすることに要す
るオーバーヘッドをO(m1)とすると、長さD1のデ
ータをデータムーブするオーバーヘッド(O(md)と
する)は、O(m1)*D1で表せる。詰め替え方式が
有効となるのは、O(c)がO(md)より大きいとき
であるとすると、その場合のデータ長D1は、D1<O
(c)/O(m1)なる条件を満たす。そこで、予め、
O(c)/O(m1)を算出し、データ長判定情報60
0として計算機立ち上げ時に設定しておく。
Here, the value of the data length judgment information 600 will be described. Now, the overhead for the IOA to process one command is defined as O (c). If the overhead required to move the data length (bytes) D1 and 1 byte is O (m1), the overhead to move the data of length D1 (call it O (md)) is O (m1). * It can be represented by D1. If the refilling method is effective when O (c) is larger than O (md), the data length D1 in that case is D1 <O.
The condition (c) / O (m1) is satisfied. So, in advance,
O (c) / O (m1) is calculated, and the data length determination information 60
It is set to 0 when the computer is started up.

【0179】ステップ611では、SPB0で示される
データ長とデータ長判定情報600とを比較し、SPB
0で示されるデータ長がデータ長判定情報600より小
さいとき詰め替えが必要と判定し、そうでないとき詰め
替えが不要と判定することになる。
At step 611, the data length indicated by SPB0 is compared with the data length judgment information 600 to determine SPB0.
If the data length indicated by 0 is smaller than the data length determination information 600, it is determined that refilling is necessary, and if not, it is determined that refilling is unnecessary.

【0180】ステップ611で詰め替えが必要と判定さ
れた場合、データ用バッファBf0に格納されたデータ
をヘッダ用バッファBf1のヘッダ以降の領域にデータ
ムーブする(ステップ613)。次に、データムーブ元
であるバッファBf0の開放を行う(ステップ61
5)。SPB1の次SPBアドレスにnullを書き込
むことで、SPBチェーンの更新を行う(ステップ61
7)。そして、データムーブ元のSPBであるSPB0
を開放することで(ステップ619)、一連の処理を終
わる。
If it is determined in step 611 that refilling is necessary, the data stored in the data buffer Bf0 is moved to the area after the header of the header buffer Bf1 (step 613). Next, the buffer Bf0 which is the data move source is released (step 61).
5). The SPB chain is updated by writing null to the next SPB address of SPB1 (step 61).
7). Then, SPB0 which is the SPB of the data move source
By releasing (step 619), a series of processing is completed.

【0181】以上の処理により、1つのバッファにヘッ
ダとデータが格納され、1つSPBで管理される。これ
をドライバ345に渡すことで、1つのコマンド505
が作成される。
Through the above processing, the header and the data are stored in one buffer and managed by one SPB. By passing this to the driver 345, one command 505
Is created.

【0182】なお、上記実施例では、多数の回線制御装
置等の入出力装置を備え、多数の端末やホスト計算機シ
ステムとのファイル転送によるデータ交換やオンライン
処理の一部を行う通信サーバ用計算機(図33)に本発
明を適用した例につき説明したが、本発明は、これに限
らず、一般に計算機システムにおいて適用できる。例え
ば、主CPUが入出力プロセッサ(入出力アダプタ装
置)を介して複数の従CPU(デバイスのプロセッサ)
に接続された計算機システム構成で、従CPUで非同期
的にデータが発生し、かつ、ある従CPUで発生したデ
ータと他の従CPUで発生したデータとを区別する必要
がある場合、すなわち多数の非同期デバイスを接続し、
それぞれのデータを別個に処理しなければならない場合
における、従CPUの管理するローカルメモリと主CP
Uの管理する主記憶装置間のデータ転送を制御する入出
力コマンド列(従CPU固有)を主CPUから複数の従
CPUに対して発行する場合などにも適用することがで
きる。
In the above embodiment, a computer for a communication server, which is equipped with a large number of input / output devices such as a line control device, and which carries out a part of data exchange and online processing by file transfer with a large number of terminals and a host computer system ( Although the example in which the present invention is applied is described in FIG. 33), the present invention is not limited to this and can be generally applied to a computer system. For example, the main CPU has a plurality of slave CPUs (device processors) via an input / output processor (input / output adapter device).
In a computer system configuration connected to a slave CPU, data is generated asynchronously in a slave CPU, and it is necessary to distinguish data generated in one slave CPU from data generated in another slave CPU, that is, a large number of slave CPUs. Connect async devices,
When each data must be processed separately, the local memory managed by the slave CPU and the master CP
It can also be applied to a case where the main CPU issues an input / output command string (specific to the sub CPU) for controlling data transfer between the main storage devices managed by U to the plurality of sub CPUs.

【0183】[0183]

【発明の効果】以上説明したように、本発明によれば、
下記のような効果がある。 複数の入出力デバイスに対する入出力要求を保留し、
これらをまとめて一回の入出力動作で実行させることに
よって、入出力動作回数を削減できる。特に、多数の入
出力デバイス(この数をnとすると)を接続したCPU
の入出力アダプタとの制御オーバーヘッドが、本発明に
より1/nになる。 入出力アダプタの状態(コマンド受け付けビジー)に
応じて、コマンドをまとめて要求するコマンド列の数を
調整することによって、コマンドの発行効率を向上でき
る。 複数の入出力デバイスに対する入力要求(readコ
マンド)をまとめて発行することにより、データ入力動
作のオーバーヘッドを軽減することができる。 パケット分割処理によって作成された複数のパケット
をまとめて転送させるコマンド列を作成し、入出力アダ
プタを起動することにより、入出力オーバーヘッドを削
減できる。 短いデータの入出力動作において、入出力アダプタ装
置のデータ転送処理を含めて最適化したことにより、入
出力効率が高まり、入出力性能が向上する。
As described above, according to the present invention,
It has the following effects. Hold I / O requests for multiple I / O devices,
The number of input / output operations can be reduced by collectively executing these in one input / output operation. In particular, a CPU with a large number of input / output devices (assuming this number is n)
According to the present invention, the control overhead with the input / output adapter of 1 / n is reduced to 1 / n. The command issuing efficiency can be improved by adjusting the number of command strings that collectively request commands according to the state of the input / output adapter (command reception busy). By collectively issuing input requests (read commands) to a plurality of input / output devices, the overhead of data input operation can be reduced. The input / output overhead can be reduced by creating a command string for transferring a plurality of packets created by the packet division processing and activating the input / output adapter. In the short data input / output operation, the data transfer processing of the input / output adapter device is optimized to improve the input / output efficiency and the input / output performance.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明の原理を説明する図FIG. 1 is a diagram illustrating the principle of the present invention.

【図2】実施例1の計算機での入出力機器構成図FIG. 2 is a block diagram of an input / output device in the computer according to the first embodiment.

【図3】実施例1のインタフェース情報を示す図FIG. 3 is a diagram showing interface information according to the first embodiment.

【図4】実施例1のチャネルのメイン動作フローチャー
ト図
FIG. 4 is a flowchart of a main operation of the channel according to the first embodiment.

【図5】実施例1のチャネルのCCW実行処理フローチ
ャート図
FIG. 5 is a flowchart of CCW execution processing of the channel according to the first embodiment.

【図6】実施例1での通信管理の構造図FIG. 6 is a structural diagram of communication management according to the first embodiment.

【図7】実施例1での入出力要求の管理テーブル構造図FIG. 7 is a structural diagram of an input / output request management table according to the first embodiment.

【図8】実施例1での要求を受けたドライバの動作を示
すフローチャート図
FIG. 8 is a flowchart showing the operation of the driver that receives the request in the first embodiment.

【図9】実施例1での入出力割り込み受け付け後のコマ
ンド発行動作を示すフローチャート図
FIG. 9 is a flowchart showing the command issuing operation after the input / output interrupt is accepted in the first embodiment.

【図10】実施例2の通信サーバのハードウェア構成図FIG. 10 is a hardware configuration diagram of the communication server according to the second embodiment.

【図11】通信サーバの記憶ユニットに記憶された情報
を示す図
FIG. 11 is a diagram showing information stored in a storage unit of the communication server.

【図12】IOアダプタの構造図FIG. 12: Structure diagram of IO adapter

【図13】多回線制御装置の構造図FIG. 13 is a structural diagram of a multi-line control device

【図14】データ送信時の入出力シーケンス図FIG. 14 is an input / output sequence diagram when transmitting data.

【図15】データ受信時の入出力シーケンス図FIG. 15 is an input / output sequence diagram when receiving data.

【図16】実施例2のインタフェース情報構成図FIG. 16 is a configuration diagram of interface information according to the second embodiment.

【図17】実施例2のコマンド構成図FIG. 17 is a command configuration diagram of the second embodiment.

【図18】コマンドエントリ構成図FIG. 18 is a command entry configuration diagram.

【図19】IOアダプタの処理を示すフローチャート
(その1)図
FIG. 19 is a flowchart (part 1) showing the processing of the IO adapter.

【図20】IOアダプタの処理を示すフローチャート
(その2)図
FIG. 20 is a flowchart (part 2) showing the processing of the IO adapter.

【図21】IOアダプタの処理を示すフローチャート
(その3)図
FIG. 21 is a flowchart (No. 3) showing the processing of the IO adapter.

【図22】IOアダプタの処理テーブル関連図FIG. 22 is a diagram relating to the processing table of the IO adapter.

【図23】先だしReadコマンド管理テーブル構成図FIG. 23 is a diagram showing the configuration of a read-ahead read command management table.

【図24】Readコマンド発行処理の処理を示すフロ
ーチャート図
FIG. 24 is a flowchart showing the process of issuing a Read command.

【図25】パケット分割処理方式の説明図FIG. 25 is an explanatory diagram of a packet division processing method.

【図26】一括IO方式で作成された複数パケットの関
連図
FIG. 26 is a relational diagram of multiple packets created by the batch IO method.

【図27】一括IO方式の処理を示すフローチャート図FIG. 27 is a flowchart showing the processing of the batch IO method.

【図28】ドライバのコマンド作成ロジックを示すフロ
ーチャート図
FIG. 28 is a flowchart showing the driver command creation logic.

【図29】詰め替え処理方式説明図FIG. 29 is an explanatory diagram of a refill processing method.

【図30】詰め替え処理を示すフローチャート図FIG. 30 is a flowchart showing a refilling process.

【図31】従来のチャネルインタフェースを示す図FIG. 31 is a diagram showing a conventional channel interface.

【図32】複数のデバイスに対する従来の入出力動作を
示す図
FIG. 32 is a diagram showing a conventional input / output operation for a plurality of devices.

【図33】従来例であり本発明の適用対象例でもある通
信サーバを用いたオンラインシステムのネットワーク構
成図
FIG. 33 is a network configuration diagram of an online system using a communication server which is a conventional example and is also an application example of the present invention.

【符号の説明】[Explanation of symbols]

124…メモリユニット 128…IOアダプタ 501…IOコマンドレジスタ 502…コマンドエントリアドレス 503…コマンドインタフェース 504…コマンドエントリ 505…コマンド 506…転送エリア 124 ... Memory unit 128 ... IO adapter 501 ... IO command register 502 ... Command entry address 503 ... Command interface 504 ... Command entry 505 ... Command 506 ... Transfer area

Claims (20)

【特許請求の範囲】[Claims] 【請求項1】複数の入出力装置と、該複数の入出力装置
に結合されたアダプタ装置と、該アダプタ装置を介して
前記入出力装置に入出力要求を与える主処理装置とを備
えた計算機システムであって、 前記主処理装置は、前記複数の入出力装置に対する複数
の入出力コマンドを、1回の入出力起動命令として発行
する手段を備え、 前記アダプタ装置は、前記1回の入出力起動命令に含ま
れる複数の入出力装置に対する複数の入出力コマンドを
どの入出力装置に対する入出力コマンドか特定する手段
と、前記複数の入出力装置に対する複数の入出力コマン
ドの各々を前記特定された入出力装置に対して各々与え
る手段とを備えたことを特徴とする計算機システム。
1. A computer comprising a plurality of input / output devices, an adapter device coupled to the plurality of input / output devices, and a main processing unit for giving an input / output request to the input / output devices via the adapter devices. In the system, the main processing device includes means for issuing a plurality of I / O commands to the plurality of I / O devices as a single I / O activation command, and the adapter device includes a single I / O device. A unit for identifying a plurality of input / output commands for the plurality of input / output devices included in the start-up command as to the input / output device, and a plurality of input / output commands for the plurality of input / output devices, respectively. A computer system comprising: means for giving each to an input / output device.
【請求項2】複数の入出力装置と、該複数の入出力装置
に結合されたアダプタ装置と、該アダプタ装置を介して
前記入出力装置に入出力要求を与える主処理装置とを備
えた計算機システムであって、 前記主処理装置は、 前記入出力装置への入出力要求を保管して管理するため
の待ち要求管理テーブルと、 前記入出力装置への入出力要求が発生したとき、該入出
力要求を直ちに処理できないときは、該入出力要求を前
記待ち要求管理テーブルに保管する手段と、 入出力要求の処理が可能になったときは、その時点で前
記待ち要求管理テーブルに保管されている入出力要求に
基づいて、前記各入出力装置に与えるべき入出力コマン
ドを連ねた列であるコマンド列を入出力装置ごとに作成
し、それら複数のコマンド列を、1回の入出力起動命令
として、前記アダプタ装置に発行する手段とを備え、 前記アダプタ装置は、 前記1回の入出力起動命令に含まれる複数のコマンド列
を、どの入出力装置に対するコマンド列か特定する手段
と、 前記複数のコマンド列の各々の入出力コマンドを前記特
定された入出力装置に対して各々与える手段とを備えた
ことを特徴とする計算機システム。
2. A computer comprising a plurality of input / output devices, an adapter device coupled to the plurality of input / output devices, and a main processing unit for giving an input / output request to the input / output devices via the adapter devices. In the system, the main processing unit stores a wait request management table for storing and managing an I / O request to the I / O device, and an I / O request to the I / O device when the I / O request occurs. When the output request cannot be processed immediately, a means for storing the input / output request in the waiting request management table, and when processing of the input / output request becomes possible, it is stored in the waiting request management table at that time. A command sequence, which is a sequence of input / output commands to be given to each of the input / output devices, is created for each input / output device based on the input / output request, and the plurality of command sequences are input / output once. When And a means for issuing to the adapter device, the adapter device specifying a plurality of command sequences included in the one-time I / O activation instruction as a command sequence for which I / O device, A computer system comprising: means for giving each input / output command of a plurality of command strings to the specified input / output device.
【請求項3】前記入出力装置は、与えられた入出力コマ
ンドの処理が終了したとき前記主処理装置に終了割込み
を発行する手段を備え、 前記主処理装置は、前記入出力装置からの入出力コマン
ドの終了割り込みを契機として、入出力要求の処理が可
能か否かを判定し、可能であるときは、その時点で前記
待ち要求管理テーブルに保管されている入出力要求に基
づいて、前記各入出力装置に与えるべき入出力コマンド
を連ねた列であるコマンド列を入出力装置ごとに作成
し、それら複数のコマンド列を、1回の入出力起動命令
として、前記アダプタ装置に発行する手段を備えた請求
項2に記載の計算機システム。
3. The input / output device comprises means for issuing an end interrupt to the main processing device when processing of a given input / output command is completed, and the main processing device receives input from the input / output device. When the output command end interrupt is used as a trigger, it is determined whether or not the input / output request can be processed. If the input / output request can be processed, based on the input / output request stored in the waiting request management table at that time, Means for creating a command sequence, which is a sequence of input / output commands to be given to each input / output device, for each input / output device and issuing the plurality of command sequences to the adapter device as one input / output start instruction The computer system according to claim 2, further comprising:
【請求項4】前記1回の入出力起動命令として前記主処
理装置から前記アダプタ装置に発行される複数のコマン
ド列は、コマンド列の先頭位置を指定するアドレス情報
とコマンド列の各コマンドの実行対象である1つの入出
力装置を特定する識別子情報とを含むブロックを基本単
位とし該ブロックが複数個連続した構造を有するテーブ
ルにより管理される請求項2または3のいずれか1つに
記載の計算機システム。
4. A plurality of command sequences issued from the main processing unit to the adapter unit as the one-time I / O start-up instruction are address information designating the start position of the command sequence and execution of each command of the command sequence. 4. The computer according to claim 2, which is managed by a table having a structure in which a block including a piece of identifier information for specifying one target I / O device is a basic unit and the block is continuous. system.
【請求項5】前記テーブルの各ブロックに、当該ブロッ
クに対応するコマンド列を前記アダプタ装置が取り込ん
だか否かを示すフラグ情報を設け、前記主処理装置が前
記入出力起動命令を発行するときには該フラグ情報をオ
ンとして発行し、前記アダプタ装置がその入出力起動命
令のコマンド列を取り込んだときには該フラグ情報をオ
フとする請求項4に記載の計算機システム。
5. Each block of the table is provided with flag information indicating whether or not the adapter device has fetched a command sequence corresponding to the block, and when the main processing device issues the input / output start instruction, The computer system according to claim 4, wherein the flag information is issued as ON, and the flag information is turned OFF when the adapter device fetches the command sequence of the input / output start instruction.
【請求項6】複数の入出力装置と、該複数の入出力装置
に結合されたアダプタ装置と、該アダプタ装置を介して
前記入出力装置に入出力要求を与える主処理装置とを備
えるとともに、該主処理装置はアプリケーションプログ
ラムを実行するアプリケーション実行部と該アプリケー
ション実行部から発行される入出力要求を処理するドラ
イバ部とを備えている計算機システムであって、 前記主処理装置のドライバ部は、前記アプリケーション
実行部から発行される入出力要求に基づいて入出力コマ
ンドを生成するとともに、複数の入出力装置に対する複
数の入出力コマンドを、1回の入出力起動命令として発
行する手段を備え、 前記アダプタ装置は、前記1回の入出力起動命令に含ま
れる複数の入出力装置に対する複数の入出力コマンドを
どの入出力装置に対する入出力コマンドか特定する手段
と、前記複数の入出力装置に対する複数の入出力コマン
ドの各々を前記特定された入出力装置に対して各々与え
る手段とを備えたことを特徴とする計算機システム。
6. A plurality of input / output devices, an adapter device coupled to the plurality of input / output devices, and a main processing device for giving an input / output request to the input / output device via the adapter device, The main processing device is a computer system including an application execution unit that executes an application program and a driver unit that processes an input / output request issued from the application execution unit, wherein the driver unit of the main processing device is A unit for generating an input / output command based on an input / output request issued from the application execution unit, and issuing a plurality of input / output commands for a plurality of input / output devices as one input / output start instruction, The adapter device sends a plurality of I / O commands to a plurality of I / O devices included in the one-time I / O activation command. And a means for specifying an input / output command for the input / output device, and a means for supplying each of the plurality of input / output commands for the plurality of input / output devices to the specified input / output device. Computer system.
【請求項7】複数の入出力装置と、該複数の入出力装置
に結合されたアダプタ装置と、該アダプタ装置を介して
前記入出力装置に入出力要求を与える主処理装置とを備
えるとともに、該主処理装置はアプリケーションプログ
ラムを実行するアプリケーション実行部と該アプリケー
ション実行部から発行される入出力要求を処理するドラ
イバ部とを備えている計算機システムであって、 前記主処理装置のドライバ部は、 前記アプリケーション実行部から発行される入出力要求
を保管して管理するための待ち要求管理テーブルと、 前記アプリケーション実行部からの入出力要求が発生し
たとき、該入出力要求を直ちに処理できないときは、該
入出力要求を前記待ち要求管理テーブルに保管する手段
と、 入出力要求の処理が可能になったときは、その時点で前
記待ち要求管理テーブルに保管されている入出力要求に
基づいて、前記各入出力装置に与えるべき入出力コマン
ドを連ねた列であるコマンド列を入出力装置ごとに作成
し、それら複数のコマンド列を、1回の入出力起動命令
として、前記アダプタ装置に発行する手段とを備え、 前記アダプタ装置は、 前記1回の入出力起動命令に含まれる複数のコマンド列
を、どの入出力装置に対するコマンド列か特定する手段
と、 前記複数のコマンド列の各々の入出力コマンドを前記特
定された入出力装置に対して各々与える手段とを備えた
ことを特徴とする計算機システム。
7. A plurality of input / output devices, an adapter device coupled to the plurality of input / output devices, and a main processing device for giving an input / output request to the input / output devices via the adapter device, The main processing device is a computer system including an application execution unit that executes an application program and a driver unit that processes an input / output request issued from the application execution unit, wherein the driver unit of the main processing device is A waiting request management table for storing and managing input / output requests issued from the application execution unit, and when an input / output request from the application execution unit occurs and the input / output request cannot be immediately processed, A means for storing the input / output request in the waiting request management table; and, when processing of the input / output request becomes possible, Based on the I / O requests stored in the waiting request management table at that time, a command sequence that is a sequence of I / O commands to be given to the I / O devices is created for each I / O device, And a means for issuing to the adapter device as a single input / output activation command, the adapter device selects a plurality of command sequences included in the single input / output activation command as to which input / output A computer system comprising: means for identifying a command sequence for a device; and means for providing each input / output command of each of the plurality of command sequences to the identified input / output device.
【請求項8】前記主処理装置のドライバ部は、前記アプ
リケーション実行部からデータの入力要求を受け取る前
に、前記複数の入出力装置に対する複数の入力コマンド
を1回の入出力起動命令として前記アダプタ装置に先出
しする手段をさらに備えた請求項6または7のいずれか
1つに記載の計算機システム。
8. The driver unit of the main processing unit, before receiving a data input request from the application execution unit, outputs a plurality of input commands to the plurality of input / output devices as one input / output start instruction, and the adapter. The computer system according to any one of claims 6 and 7, further comprising means for preempting the device.
【請求項9】前記入力コマンドを先出しする手段は、 前記入出力装置に対する入力コマンドの最大発行数を示
す第1の規定数を記憶する第1の記憶手段と、入力コマ
ンド列を再発行するための契機を規定するための第2の
規定数を記憶する第2の記憶手段と、前記各入出力装置
に対する未完了の入力コマンド数を記録する第3の記憶
手段とを備え、 前記ドライバ部の初期化後、入力コマンドを前記第1の
規定数分連ねた入力コマンド列を各入出力装置ごとに作
成して前記アダプタ装置に発行し、前記第3の記憶手段
に各入出力装置に発行した入力コマンド数を記録し、以
後、前記各入出力装置から入力コマンドの完了報告を受
けるたびに、前記第3の記憶手段に記憶された該当入出
力装置の未完了入力コマンド数を1つ減じ、この処理に
よりその入出力装置における未完了入力コマンド数が前
記第2の規定数になったらば、前記第3の記憶手段に記
憶された未完了入力コマンド数と第1の記憶手段に記録
された第1の規定数との差分を計算し、この差分の数だ
け入力コマンドを連ねた入力コマンド列を前記アダプタ
装置に再発行することを特徴とする請求項8に記載の計
算機システム。
9. The means for issuing the input command first, for reissuing the input command sequence, and first storage means for storing a first specified number indicating the maximum number of input commands issued to the input / output device. A second storage means for storing a second specified number for defining the trigger of the above, and a third storage means for recording the number of uncompleted input commands for each of the input / output devices. After initialization, an input command sequence in which the input commands are connected for the first specified number is created for each input / output device, issued to the adapter device, and issued to each input / output device to the third storage means. The number of input commands is recorded, and thereafter, every time an input command completion report is received from each of the input / output devices, the number of uncompleted input commands of the corresponding input / output device stored in the third storage means is decremented by 1, This process When the number of uncompleted input commands in the input / output device reaches the second specified number, the number of uncompleted input commands stored in the third storage means and the first unrecorded number stored in the first storage means. 9. The computer system according to claim 8, wherein a difference from a specified number is calculated, and an input command string in which the input commands are connected by the difference number is reissued to the adapter device.
【請求項10】前記入出力装置が回線制御装置であり、 前記主処理装置は、前記アプリケーション実行部から発
行されたデータ転送要求に係るデータを分割し、該分割
された各々の出力データの先頭に通信プロトコル制御情
報を付加して複数の分割パケットを作成するプロトコル
処理部を備え、 前記主処理装置のドライバ部は、前記複数の分割パケッ
トの数がその時点で相手からの送達確認なしで連続転送
できるパケットの数である連続転送数以下である場合
は、前記複数の分割パケットに基づいて複数の入出力コ
マンドを作成し、作成した複数の入出力コマンドを1回
の入出力起動命令として発行することにより、前記複数
の分割パケットの出力データを1回の入出力動作で転送
することを特徴とする請求項6または7のいずれか1つ
に記載の計算機システム。
10. The input / output device is a line control device, the main processing device divides data relating to a data transfer request issued from the application execution unit, and the head of each of the divided output data. A protocol processing unit that adds communication protocol control information to create a plurality of divided packets, and the driver unit of the main processing device determines that the number of the plurality of divided packets is continuous at that time without confirmation of delivery from the other party. When the number of packets that can be transferred is less than or equal to the number of continuous transfers, a plurality of I / O commands are created based on the plurality of divided packets, and the created I / O commands are issued as one I / O start command. The output data of the plurality of divided packets is transferred by one input / output operation by performing the above operation. The placing of the computer system.
【請求項11】前記入出力装置が回線制御装置であり、 前記主処理装置は、 前記アプリケーション実行部から発行されたデータ転送
要求に係るデータを分割し、該分割された出力データを
ポイントするデータ管理情報ブロックを各々作成し、該
分割された出力データの先頭に論理的に付加されるべき
通信プロトコル制御情報であって該通信プロトコル制御
情報と出力データとで論理的に分割パケットが構成され
るような通信プロトコル制御情報を作成し、該通信プロ
トコル制御情報をポイントするデータ管理情報ブロック
を各々作成するプロトコル処理部と、 前記プロトコル処理部から出力された別のデータ管理情
報ブロックによりポイントされる前記通信プロトコル制
御情報と前記出力データについて、前記アダプタ装置が
前記通信プロトコル制御情報を転送するコマンドを処理
することに要するオーバーヘッドと前記出力データを前
記通信プロトコル制御情報に連続する領域にコピーする
ことに要するオーバーヘッドとを比較することにより、
後者のオーバーヘッドのほうが小さい場合は、前記通信
プロトコル制御情報と前記出力データとを連続した領域
に設定するとともに、該領域をポイントするデータ管理
情報ブロックを作成し、前記ドライバ部に渡す詰め替え
処理部とを備えた請求項6または7のいずれか1つに記
載の計算機システム。
11. The input / output device is a line control device, and the main processing device divides data relating to a data transfer request issued from the application execution unit, and data that points to the divided output data. Management protocol blocks are respectively created, and are communication protocol control information to be logically added to the head of the divided output data, and the communication protocol control information and the output data form a logically divided packet. Such a protocol processing unit that creates such communication protocol control information and creates a data management information block that points to the communication protocol control information, and a data management information block that is pointed to by another data management information block output from the protocol processing unit. Regarding the communication protocol control information and the output data, the adapter device By comparing the overhead of copying the overhead and the output data required to process the command to transfer the Col control information region continuous to the communication protocol control information,
When the latter overhead is smaller, the communication protocol control information and the output data are set in a continuous area, a data management information block that points to the area is created, and the refill processing section is passed to the driver section. The computer system according to claim 6, further comprising:
【請求項12】複数の入出力装置と、該複数の入出力装
置に結合されたアダプタ装置と、該アダプタ装置を介し
て前記入出力装置に入出力要求を与える主処理装置とを
備えた計算機システムにおける入出力命令の発行方法で
あって、 前記主処理装置から、前記複数の入出力装置に対する複
数の入出力コマンドを、1回の入出力起動命令として、
発行するステップと、 前記アダプタ装置により、前記1回の入出力起動命令に
含まれる複数の入出力装置に対する複数の入出力コマン
ドをどの入出力装置に対する入出力コマンドか特定する
ステップと、 前記アダプタ装置により、前記複数の入出力装置に対す
る複数の入出力コマンドの各々を、前記特定された入出
力装置に対して各々与えるステップとを備えたことを特
徴とする入出力命令の発行方法。
12. A computer comprising a plurality of input / output devices, an adapter device coupled to the plurality of input / output devices, and a main processing unit for giving an input / output request to the input / output devices via the adapter devices. A method of issuing an input / output instruction in a system, wherein a plurality of input / output commands from the main processing device to the plurality of input / output devices are provided as one input / output start instruction
A step of issuing; a step of specifying, by the adapter device, a plurality of input / output commands for the plurality of input / output devices included in the one-time input / output start command to which input / output device; And a step of giving each of the plurality of input / output commands to the plurality of input / output devices to the specified input / output device.
【請求項13】複数の入出力装置と、該複数の入出力装
置に結合されたアダプタ装置と、該アダプタ装置を介し
て前記入出力装置に入出力要求を与える主処理装置とを
備えた計算機システムにおける入出力命令の発行方法で
あって、 前記主処理装置において、 前記入出力装置への入出力要求が発生したとき、該入出
力要求を直ちに処理できないときは、該入出力要求を待
ち要求管理テーブルに保管して管理するステップと、 入出力要求の処理が可能になったときは、その時点で前
記待ち要求管理テーブルに保管されている入出力要求に
基づいて、前記各入出力装置に与えるべき入出力コマン
ドを連ねた列であるコマンド列を入出力装置ごとに作成
し、それら複数のコマンド列を、1回の入出力起動命令
として、前記アダプタ装置に発行するステップと、 前記アダプタ装置において、 前記1回の入出力起動命令に含まれる複数のコマンド列
を、どの入出力装置に対するコマンド列か特定するステ
ップと、 前記複数のコマンド列の各々の入出力コマンドを前記特
定された入出力装置に対して各々与えるステップとを備
えたことを特徴とする入出力命令の発行方法。
13. A computer comprising a plurality of I / O devices, an adapter device coupled to the plurality of I / O devices, and a main processing unit for giving an I / O request to the I / O devices via the adapter devices. A method of issuing an input / output command in a system, wherein when an input / output request to the input / output device occurs in the main processing device, the input / output request cannot be immediately processed, and the input / output request is waited for. When the I / O requests can be processed by storing them in the management table and managing them, the I / O devices are based on the I / O requests stored in the waiting request management table at that time. A command sequence, which is a sequence of input / output commands to be given, is created for each input / output device, and the plurality of command sequences are issued to the adapter device as one input / output activation command. And a step of identifying, in the adapter device, a plurality of command sequences included in the one-time I / O activation command as to which I / O device, and an input / output command of each of the plurality of command sequences. And a step of giving each to the specified input / output device.
【請求項14】前記入出力装置で、与えられた入出力コ
マンドの処理が終了したとき、前記主処理装置に終了割
込みを発行するステップと、 前記主処理装置で、前記入出力装置からの入出力コマン
ドの終了割り込みを契機として、入出力要求の処理が可
能か否かを判定し、可能であるときは、その時点で前記
待ち要求管理テーブルに保管されている入出力要求に基
づいて、前記各入出力装置に与えるべき入出力コマンド
を連ねた列であるコマンド列を入出力装置ごとに作成
し、それら複数のコマンド列を、1回の入出力起動命令
として、前記アダプタ装置に発行するステップとをさら
に備えた請求項13に記載の入出力命令の発行方法。
14. A step of issuing an end interrupt to the main processing device when processing of a given input / output command is completed in the input / output device; When the output command end interrupt is used as a trigger, it is determined whether or not the input / output request can be processed. If the input / output request can be processed, based on the input / output request stored in the waiting request management table at that time, A step of creating a command sequence, which is a sequence of input / output commands to be given to each input / output device, for each input / output device, and issuing the plurality of command sequences to the adapter device as one input / output start instruction The method of issuing an input / output instruction according to claim 13, further comprising:
【請求項15】複数の入出力装置と、該複数の入出力装
置に結合されたアダプタ装置と、該アダプタ装置を介し
て前記入出力装置に入出力要求を与える主処理装置とを
備えるとともに、該主処理装置はアプリケーションプロ
グラムを実行するアプリケーション実行部と該アプリケ
ーション実行部から発行される入出力要求を処理するド
ライバ部とを備えている計算機システムにおける入出力
命令の発行方法であって、 前記主処理装置のドライバ部から、前記複数の入出力装
置に対する複数の入出力コマンドを、1回の入出力起動
命令として、発行するステップと、 前記アダプタ装置により、前記1回の入出力起動命令に
含まれる複数の入出力装置に対する複数の入出力コマン
ドをどの入出力装置に対する入出力コマンドか特定する
ステップと、 前記複数の入出力装置に対する複数の入出力コマンドの
各々を前記特定された入出力装置に対して各々与えるス
テップとを備えたことを特徴とする入出力命令の発行方
法。
15. A plurality of input / output devices, an adapter device coupled to the plurality of input / output devices, and a main processing device for giving an input / output request to the input / output device via the adapter device, The main processing device is a method of issuing an input / output command in a computer system, comprising: an application execution unit that executes an application program; and a driver unit that processes an input / output request issued from the application execution unit. A step of issuing a plurality of input / output commands to the plurality of input / output devices as one input / output start instruction from the driver unit of the processing device; and including in the one input / output start instruction by the adapter device. To identify which I / O command the I / O commands for the I / O devices that are , Issuing method of input and output commands, characterized in that a step of providing each for a plurality of input and output devices respectively are the specific input command to the plurality of input and output devices.
【請求項16】複数の入出力装置と、該複数の入出力装
置に結合されたアダプタ装置と、該アダプタ装置を介し
て前記入出力装置に入出力要求を与える主処理装置とを
備えるとともに、該主処理装置はアプリケーションプロ
グラムを実行するアプリケーション実行部と該アプリケ
ーション実行部から発行される入出力要求を処理するド
ライバ部とを備えている計算機システムにおける入出力
命令の発行方法であって、 前記主処理装置のドライバ部において、 前記アプリケーション実行部からの入出力要求が発生し
たとき、該入出力要求を直ちに処理できないときは、該
入出力要求を待ち要求管理テーブルに保管して管理する
ステップと、 入出力要求の処理が可能になったときは、その時点で前
記待ち要求管理テーブルに保管されている入出力要求に
基づいて、前記各入出力装置に与えるべき入出力コマン
ドを連ねた列であるコマンド列を入出力装置ごとに作成
し、それら複数のコマンド列を、1回の入出力起動命令
として、前記アダプタ装置に発行するステップと、 前記アダプタ装置において、 前記1回の入出力起動命令に含まれる複数のコマンド列
を、どの入出力装置に対するコマンド列か特定するステ
ップと、 前記複数のコマンド列の各々の入出力コマンドを前記特
定された入出力装置に対して各々与えるステップとを備
えたことを特徴とする入出力命令の発行方法。
16. A plurality of input / output devices, an adapter device coupled to the plurality of input / output devices, and a main processing device for giving an input / output request to the input / output device via the adapter device, The main processing device is a method of issuing an input / output command in a computer system, comprising: an application execution unit that executes an application program; and a driver unit that processes an input / output request issued from the application execution unit. In the driver unit of the processing device, when an input / output request from the application execution unit occurs, and when the input / output request cannot be processed immediately, a step of managing the input / output request by storing it in a waiting request management table, When it becomes possible to process I / O requests, the I / O stored in the waiting request management table at that time On the basis of a request, a command sequence, which is a sequence of input / output commands to be given to each of the input / output devices, is created for each input / output device, and the plurality of command sequences are set as one input / output activation instruction. Issuing to the adapter device; in the adapter device, identifying a plurality of command sequences included in the one-time I / O activation instruction as a command sequence to which I / O device, and each of the plurality of command sequences And the step of giving each of the input / output commands to the specified input / output device.
【請求項17】前記主処理装置のドライバ部において、
前記アプリケーション実行部からデータの入力要求を受
け取る前に、前記複数の入出力装置に対する複数の入力
コマンドを、1回の入出力起動命令として前記アダプタ
装置に先出しするステップをさらに備えた請求項15ま
たは16のいずれか1つに記載の入出力命令の発行方
法。
17. A driver unit of the main processing unit,
16. The method according to claim 15, further comprising the step of, prior to receiving a data input request from the application execution unit, preliminarily issuing a plurality of input commands to the plurality of input / output devices to the adapter device as one input / output activation command. 16. The method of issuing an input / output instruction according to any one of 16.
【請求項18】前記入力コマンドを先出しするステップ
は、 前記ドライバ部の初期化後、入力コマンドを所定の最大
発行数分連ねた入力コマンド列を各入出力装置ごとに作
成して前記アダプタ装置に発行するステップと、 各入出力装置に発行した入力コマンド数を記録するステ
ップと、 前記各入出力装置から入力コマンドの完了報告を受ける
たびに、前記記憶された該当入出力装置の未完了入力コ
マンド数を1つ減じ、この処理によりその入出力装置に
おける未完了入力コマンド数が所定数以下になったら
ば、前記記憶された未完了入力コマンド数と前記最大発
行数との差分を計算し、この差分の数だけ入力コマンド
を連ねた入力コマンド列を前記アダプタ装置に再発行す
るステップとを含む請求項17に記載の入出力命令の発
行方法。
18. The step of issuing the input command first, after initializing the driver unit, creates an input command sequence in which the input commands are connected by a predetermined maximum number of issuances for each input / output device, and creates the input / output device in the adapter device. A step of issuing, a step of recording the number of input commands issued to each input / output device, and an incomplete input command of the stored input / output device each time a completion report of the input command is received from each of the input / output devices If the number of uncompleted input commands in the input / output device becomes less than or equal to a predetermined number by this processing, the difference between the stored number of uncompleted input commands and the maximum number of issued commands is calculated, 18. The method of issuing an input / output command according to claim 17, further comprising the step of reissuing an input command sequence in which the input commands are arranged in the same number as the difference to the adapter device.
【請求項19】前記主処理装置において、前記アプリケ
ーション実行部から発行されたデータ転送要求に係るデ
ータを分割し、該分割された各々の出力データの先頭に
通信プロトコル制御情報を付加して複数の分割パケット
を作成するプロトコル処理を行なうステップと、 前記主処理装置のドライバ部において、前記複数の分割
パケットの数がその時点で相手からの送達確認なしで連
続転送できるパケットの数である連続転送数以下である
場合は、前記複数の分割パケットに基づいて複数の入出
力コマンドを作成し、作成した複数の入出力コマンドを
1回の入出力起動命令として発行することにより、前記
複数の分割パケットの出力データを1回の入出力動作で
転送するステップとをさらに備えた請求項15または1
6のいずれか1つに記載の入出力命令の発行方法。
19. The main processing unit divides data relating to a data transfer request issued from the application execution unit, adds communication protocol control information to the head of each of the divided output data, and outputs a plurality of data. A step of performing a protocol process for creating a divided packet, and a driver unit of the main processing device, wherein the number of the plurality of divided packets is the number of packets that can be continuously transferred without confirmation of delivery from the other party at that time. In the following cases, a plurality of input / output commands are created based on the plurality of divided packets, and the created plurality of input / output commands are issued as one input / output start instruction, thereby The method further comprising the step of transferring output data by one input / output operation.
7. The method of issuing an input / output instruction according to any one of 6.
【請求項20】前記主処理装置において、前記アプリケ
ーション実行部から発行されたデータ転送要求に係るデ
ータを分割し、該分割された出力データをポイントする
データ管理情報ブロックを各々作成し、該分割された出
力データの先頭に論理的に付加されるべき通信プロトコ
ル制御情報であって該通信プロトコル制御情報と出力デ
ータとで論理的に分割パケットが構成されるような通信
プロトコル制御情報を作成し、該通信プロトコル制御情
報をポイントするデータ管理情報ブロックを各々作成す
るプロトコル処理ステップと、 前記プロトコル処理ステップから出力された別のデータ
管理情報ブロックによりポイントされる前記通信プロト
コル制御情報と前記出力データについて、前記アダプタ
装置が前記通信プロトコル制御情報を転送するコマンド
を処理することに要するオーバーヘッドと前記出力デー
タを前記通信プロトコル制御情報に連続する領域にコピ
ーすることに要するオーバーヘッドとを比較することに
より、後者のオーバーヘッドのほうが小さい場合は、前
記通信プロトコル制御情報と前記出力データとを連続し
た領域に設定するとともに、該領域をポイントするデー
タ管理情報ブロックを作成し、前記ドライバ部に渡す詰
め替え処理ステップとをさらに備えた請求項15または
16のいずれか1つに記載の入出力命令の発行方法。
20. In the main processing unit, data relating to a data transfer request issued from the application execution unit is divided, data management information blocks that point to the divided output data are created, and the divided data management information blocks are divided. The communication protocol control information that should be logically added to the beginning of the output data, such that the communication protocol control information and the output data logically form a divided packet, A protocol processing step for creating a data management information block that points to communication protocol control information, and the communication protocol control information and the output data pointed to by another data management information block output from the protocol processing step, Adapter device transfers the communication protocol control information If the latter overhead is smaller, the communication protocol control is performed by comparing the overhead required to process the command to the communication protocol control information with the overhead required to copy the output data to a continuous area. 17. The refilling step of setting information and the output data in a continuous area, creating a data management information block pointing to the area, and passing the block to the driver unit, according to claim 15 or 16. Issuing method of I / O instructions described in No. 3.
JP19359094A 1994-07-26 1994-07-26 Computer system and method of issuing input / output instructions Expired - Fee Related JP2901882B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP19359094A JP2901882B2 (en) 1994-07-26 1994-07-26 Computer system and method of issuing input / output instructions
US08/505,144 US5860022A (en) 1994-07-26 1995-07-21 Computer system and method of issuing input/output commands therefrom
CN95115302.1A CN1100295C (en) 1994-07-26 1995-07-25 Computer system and method of issuing input/output commands therefrom

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP19359094A JP2901882B2 (en) 1994-07-26 1994-07-26 Computer system and method of issuing input / output instructions

Publications (2)

Publication Number Publication Date
JPH0844652A true JPH0844652A (en) 1996-02-16
JP2901882B2 JP2901882B2 (en) 1999-06-07

Family

ID=16310501

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19359094A Expired - Fee Related JP2901882B2 (en) 1994-07-26 1994-07-26 Computer system and method of issuing input / output instructions

Country Status (1)

Country Link
JP (1) JP2901882B2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001337908A (en) * 2000-05-26 2001-12-07 Nec Corp File access method
JP2002540526A (en) * 1999-03-31 2002-11-26 クロジック コーポレーション Host adapter for combining I / O completion reporting and method of using same
JP2011138401A (en) * 2009-12-28 2011-07-14 Fujitsu Ltd Processor system, method of controlling the same, and control circuit
JP2015215850A (en) * 2014-05-13 2015-12-03 株式会社ソシオネクスト Data processor and control method thereof
US9280498B2 (en) 2011-03-02 2016-03-08 Nec Corporation Data control system, data control method, and data control program

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002540526A (en) * 1999-03-31 2002-11-26 クロジック コーポレーション Host adapter for combining I / O completion reporting and method of using same
JP2001337908A (en) * 2000-05-26 2001-12-07 Nec Corp File access method
JP2011138401A (en) * 2009-12-28 2011-07-14 Fujitsu Ltd Processor system, method of controlling the same, and control circuit
US9280498B2 (en) 2011-03-02 2016-03-08 Nec Corporation Data control system, data control method, and data control program
JP2015215850A (en) * 2014-05-13 2015-12-03 株式会社ソシオネクスト Data processor and control method thereof

Also Published As

Publication number Publication date
JP2901882B2 (en) 1999-06-07

Similar Documents

Publication Publication Date Title
US5860022A (en) Computer system and method of issuing input/output commands therefrom
EP2176771B1 (en) Providing indirect data addressing in an input/output processing system where the indirect data address list is non-contiguous
US7200695B2 (en) Method, system, and program for processing packets utilizing descriptors
JP3364572B2 (en) Data processing system having multi-path I / O request mechanism and queue status updating method
US6009478A (en) File array communications interface for communicating between a host computer and an adapter
JP3033935B2 (en) How to interface to adapter hardware
JPH08288941A (en) Computer system and message transfer method
JP2557199B2 (en) Interface system and method
US6785760B2 (en) Performance of a PCI-X to infiniband bridge
US6105076A (en) Method, system, and program for performing data transfer operations on user data
JPH0217818B2 (en)
JPH09288654A (en) Multiple data source and computer system data input and output device using inter-sink reference
JP2901882B2 (en) Computer system and method of issuing input / output instructions
US5734918A (en) Computer system with an input/output processor which enables direct file transfers between a storage medium and a network
US7251248B2 (en) Connection device
JP3499938B2 (en) I / O device sharing system between multiple systems with different protocols
CN113220238B (en) Method for realizing universal SAS controller interface
JP3176472B2 (en) Data transfer method
JPH09288653A (en) Computer system data input and output device using inter-cpu reference
US6493779B1 (en) Method and system for interrupt handling using device pipelined packet transfers
JPH05250099A (en) High-speed file access control method and computer system
JPH08241262A (en) External storage extension system
JPH04255960A (en) Parallel operating method of disk drives
Press A concurrent PASCAL spooling program
EP2035971A1 (en) Database offload processing

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees