JP2901882B2 - Computer system and method of issuing input / output instructions - Google Patents

Computer system and method of issuing input / output instructions

Info

Publication number
JP2901882B2
JP2901882B2 JP19359094A JP19359094A JP2901882B2 JP 2901882 B2 JP2901882 B2 JP 2901882B2 JP 19359094 A JP19359094 A JP 19359094A JP 19359094 A JP19359094 A JP 19359094A JP 2901882 B2 JP2901882 B2 JP 2901882B2
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.)
Expired - Fee Related
Application number
JP19359094A
Other languages
Japanese (ja)
Other versions
JPH0844652A (en
Inventor
毅 近藤
平田  俊明
和男 松永
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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

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 for 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 activation instruction, and a method of issuing an input / output instruction.

【0002】[0002]

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

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

【0004】図31は、文献(Harry Katzan,Jr.:Comput
er organization and the system/370,Van Noatrand Re
inhold Company,1971)によるチャネルインタフェースを
図示したものである。同図を参照して、入出力チャネル
を用いた入出力デバイスとの入出力アーキテクチャにつ
いて説明する。
FIG. 31 shows a reference (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は、
命令コード、チャネルアドレス、およびデバイスアドレ
スを含む。チャネルアドレスとデバイスアドレスは、入
出力動作を行なう入出力デバイスと入出力チャネルを指
定するアドレスである。
[0005] The main CPU issues an input / output activation command 20 to start an input / output operation. The input / output activation instruction 20 is
Includes instruction code, channel address, and device address. The channel address and the device address are addresses for specifying an input / output device for performing an input / output operation and an 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
The first CCW (Channe
l Command Word) 22 stores the address on the main storage device. The CCW 22 provides information about an input / output operation to be performed to the input / output channel. CCW
22 is a command code, data address, count,
And flags. The flags are cd flag and c
Contains the c flag.

【0007】CCW22のコマンドコードでは、実行す
べき動作、例えば、入力ないし出力等を指定する。デー
タアドレスでは、入出力動作の対象であるデータ23の
先頭アドレスを指定する。カウントでは、入出力動作で
使用するバイト数を指定する。
The command code of the CCW 22 specifies an operation to be executed, for example, an input or an output. The data address specifies the head address of the data 23 to be subjected to the input / output operation. The count specifies the number of bytes used for input / output 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 performed on different data areas in the next CCW. The cc flag specifies a command chain. The command chain indicates that a different input / output operation is performed in the next CCW. All bits of the flag are 0
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 an input / output interrupt or an input / output start command is received, and indicates the state (busy or the like) of an input / output device or an input / output channel.

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

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

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

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

【0014】[0014]

【発明が解決しようとする課題】上述した入出力インタ
フェースでは、入出力起動命令(図31に示した一連の
CCW22をセットしたもの)を1回発行することによ
って、1つの入出力デバイスに対する複数回の入出力動
作を連続して行うことができる。いま、このような従来
の入出力インタフェースで、複数の入出力デバイスに対
する入出力動作を連続して行う場合を考える。
In the above-described input / output interface, an input / output activation instruction (a set of a series of CCWs 22 shown in FIG. 31) is issued once, so that a single input / output device can be executed a plurality of times. Can be continuously performed. Now, consider a case in which input / output operations for a plurality of input / output devices are continuously performed with 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, a case where an input / output instruction 1 for the device 1 and an input / output instruction 2 for another device 2 are successively 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 operations with the device 1. While the input / output adapter is performing input / output operations with the device 1, the CPU can perform other tasks. When the input / output operation with the device 1 is completed, the input / output adapter issues an interrupt, and the CPU performs interrupt processing 1, whereby the input / output is completed. Continue with CPU
Issues an input / output instruction 2, and executes input / output with the device 2 in the same manner.

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

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

【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 cope with multi-line. Directly connect these input / output devices to CP
When connected to the 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 an idea to measure the hierarchies of the buses (the main bus and the I / O bus are separated and both are connected by a bus adapter). However, when the bus is hierarchized, the distance between the CPU and the input / output device becomes large as a result. The command and the end interrupt operation are executed via the bus adapter. Therefore, CPU performance, I / O performance, and bus performance are consumed for such an operation. This is a significant problem particularly for a communication server for multi-line connection. Hereinafter, the reason will be described.

【0021】図33は、従来例であり本発明の適用対象
例でもある多回線接続用通信サーバ計算機(以下、単に
通信サーバと呼ぶ)100を使用した大規模オンライン
処理システムの一例である。
FIG. 33 shows an example of a large-scale online processing system using a communication server computer (hereinafter simply referred to as a communication server) 100 for a multi-line connection, which is a conventional example and 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 in each local branch. Communication server 100 in branch
, A plurality of in-store terminals 101 are connected via a telephone line, and a large number of remote terminals 101 are connected via a public network. The head office has a host computer 102 which manages a large-scale database. The host computer 102 and the communication server 100 at the head office have a high-speed L
They are connected by FDDI which is AN. The communication server 100 at the head office and the communication server 100 at the branch are connected by a high-speed line.

【0023】各端末101からは、データベースの更新
要求が通信サーバ100を介してホスト計算機102に
送られ、データベース更新後、その応答がホスト計算機
102から再度通信サーバ100を介して該当する端末
101に送られる。このような処理をトランザクション
処理と言う。特に、勘定系のトランザクション処理は、
休日前等の特定期間に集中して発生する。これらは、す
べて通信サーバ100の入出力動作を伴う処理であるた
め、集中して発生する多数の入出力デバイス(回線)に
よる入出力オーバーヘッドが通信サーバ100で問題と
なる。
A request for updating the database is sent from each terminal 101 to the host computer 102 via the communication server 100. After the database is updated, a response is sent from the host computer 102 to the corresponding terminal 101 again via the communication server 100. Sent. Such processing is called transaction processing. In particular, accounting transaction processing is
Occurs during a specific period, such as before a holiday. Since these are all processes involving the input / output operations of the communication server 100, the input / output overhead due to a large number of input / output devices (lines) generated in a concentrated manner poses 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 an input / output activation instruction once, but to issue the input / output activation instruction once. Since a plurality of input / output operations cannot be performed for 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 device (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 command, and an input / output adapter capable of receiving the input / output commands. (Input / output channel) The purpose of this is to provide a control mechanism (processing logic) for 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 of an amount corresponding to the state (acceptability) of an input / output adapter, in other words. It is another object of the present invention to provide an input / output interface which allows the user to easily understand how many command groups can be accepted without being busy.

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

【0028】また、上記入出力アダプタ装置を介したデ
ータ転送において、通信プロトコルの処理特にウインド
制御やパケット分割処理に関連させた効率的なコマンド
群の発行方法を提供することにある。
Another object of the present invention is 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回の入出力起動命令に含
まれる複数の入出力装置に対する複数の入出力コマンド
をどの入出力装置に対する入出力コマンドか特定し、特
定した入出力装置に対して入出力コマンドを各々与える
ようにしたことを特徴とする。
SUMMARY OF THE INVENTION 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 devices via the adapter device. In a computer system having a main processing device, a plurality of input / output commands for a plurality of input / output devices are issued as one input / output activation command from the main processing device. A plurality of input / output commands for a plurality of input / output devices included in the instruction are specified as input / output commands to which input / output device, and the input / output commands are provided to the specified input / output devices. .

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

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

【0032】複数のコマンド列は、例えば、コマンド列
の先頭位置を指定するアドレス情報とコマンド列の各コ
マンドの実行対象である1つの入出力装置を特定する識
別子情報とを含むブロックを基本単位とし該ブロックが
複数個連続した構造を有するテーブルにより管理する。
主処理装置からアダプタ装置に取り込んだか否かを示す
フラグ情報を設けてもよい。
The plurality of command strings are, for example, a block including, as a basic unit, a block including address information for specifying a head position of the command string and identifier information for specifying one input / output device to be executed by each command in the command string. The block 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 taken into the adapter device from the main processing device may be provided.

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

【0034】具体的には、入出力装置に対する入力コマ
ンドの最大発行数を示す第1の規定数を記憶する第1の
記憶手段と、入力コマンド列を再発行するための契機を
規定するための第2の規定数を記憶する第2の記憶手段
と、各入出力装置に対する未完了の入力コマンド数を記
録する第3の記憶手段とを設け、ドライバ部の初期化
後、入力コマンドを前記第1の規定数分連ねた入力コマ
ンド列を各入出力装置ごとに作成して前記アダプタ装置
に発行し、前記第3の記憶手段に各入出力装置に発行し
た入力コマンド数を記録し、以後、前記各入出力装置か
ら入力コマンドの完了報告を受けるたびに、前記第3の
記憶手段に記憶された該当入出力装置の未完了入力コマ
ンド数を1つ減じ、この処理によりその入出力装置にお
ける未完了入力コマンド数が前記第2の規定数になった
らば、前記第3の記憶手段に記憶された未完了入力コマ
ンド数と第1の記憶手段に記録された第1の規定数との
差分を計算し、この差分の数だけ入力コマンドを連ねた
入力コマンド列を前記アダプタ装置に再発行するように
する。
More specifically, a first storage means for storing a first specified number indicating the maximum number of input commands issued to the input / output device, and a trigger for re-issuing the input command sequence. Second storage means for storing a second prescribed number and third storage means for recording the number of uncompleted input commands for each input / output device are provided. A sequence of input commands for a specified number of 1 is created for each input / output device 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 incomplete input commands of the corresponding input / output device stored in the third storage means is reduced by one. Completion 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. An input command sequence in which input commands are repeated by the number of the differences is re-issued 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 places the communication protocol control at the beginning of each of the divided output data. A plurality of fragmented packets are created by adding information. At this time, if the number of the plurality of divided packets is equal to or less than the number of continuous transfers, which is the number of packets that can be continuously transferred without a delivery confirmation from the other party at that time, based on the plurality of divided packets, By generating a plurality of input / output commands and issuing the generated plurality of input / output commands as one input / output activation instruction, the output data of the plurality of divided packets can be transferred by one input / output operation. I do.

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

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

【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 continuous. By providing flag information indicating whether or not the data is taken into the adapter device from the device, it is possible to smoothly exchange a command string between the main processing device and the adapter device. Commands can be requested at once.

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

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

【0042】本発明では、必要な場合に、上述の詰め替
え処理を行なうことにより、ヘッダ部を指し示す位置か
ら連続したデータとして、アダプタ装置がデータチェー
ンを辿る処理をしないでデータ転送処理を実行できる。
これにより、入出力アダプタ処理を含めた入出力処理オ
ーバーヘッドを最適化することができる。
According to the present invention, when necessary, by performing the above-described refilling process, 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. Hereinafter, five embodiments 1 to 5 will be described. 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 starts the input / output operation for the two input / output devices 1 and 2 by issuing one input / output instruction. When the CPU issues only one input / output instruction, the input / output (IO) adapter continuously performs input / output operations with the device 1 and input / output operations with the device 2. The IO adapter interrupts the CPU when the input / output operation with the device 1 is completed, and the CPU performs interrupt processing 1. After interrupt processing 1, the CPU
It is not necessary to issue an input / output activation command for the device 2, and another task can be performed. When the input / output operation with the device 2 is completed, the IO adapter interrupts the CPU, and the CPU performs 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 focusing on the functional structure of a computer system using an input / output channel device to which the present invention is applied, particularly the function of an input / output channel (hereinafter, referred to as CH) 142. The CPU 140 is a central processing unit of the CISC type. 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 device, and is connected to the CH 142. Also, one CH1
A plurality of IOCUs 147 are connected to 42. Similarly, one IOCU 147 is connected with a plurality of input / output devices (hereinafter, referred to as DEVs) 148. 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 an input / output start command, notifies an interrupt to the CPU,
This is a block for controlling the access to the device 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 U147. The data transfer control unit 144 transfers data on the MS 141 to the IOCU 147 according to an instruction of the CCW execution unit 145,
Alternatively, it is a functional block for storing data from the IOCU 147 in the MS 141.

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

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

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

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

【0054】コマンドブロック中のストップビット30
2は、当該コマンドブロックが、拡張CAW301の最
後のコマンドブロックであるか否かを示す情報である。
最後のコマンドブロックのストップビットはオン
(1)、それ以外のコマンドブロックのストップビット
はオフ(0)であるようにする。
Stop bit 30 in command block
Reference numeral 2 denotes 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 above interface information and executes the extended input / output start command 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 flowchart showing the main processing logic of the CH 142. The CH 142 that has received the extended input / output activation instruction 200 first takes in the first command block of the extended CAW 301 starting from the determined address into an internal register (step 310).
1). Next, processing of the CCW column 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 the 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 processing of the CCW sequence 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 above-mentioned 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 head CCW of the CCW column indicated by the command address of the fetched command block is fetched (step 3201). Next, a path is opened by selecting the target device DEV 148 identified by the device address of the fetched command block (step 3203). Next, a command is issued to the target device, and a response is waited (step 3205).

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

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

【0062】次に、CPU140側での複数デバイスに
対する入出力コマンドをまとめて発行する処理について
説明する。ここでは、CPU140がデータ通信のため
の入出力コマンドを発行する場合を例に説明する。
Next, the process of issuing input / output commands for a plurality of devices on the CPU 140 side will be described. Here, a case where 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 detailed configuration of the processing program executed by CPU 140 for data communication and CH 142. The communication management 340 provides communication services (data transmission and data reception) for a plurality of application programs (APs) 34. The communication management 340 includes a manager (MGR) 341 for managing computer resources such as buffers and timers, an application interface (API) 342 for receiving a communication request from the AP 34, and processes and controls communication data according to a communication protocol. And a driver 345 for controlling 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 for data communication are issued from the AP 34 to the communication management 340. Communication management 34
0, the API 342 is set to A under the management of the MGR 341.
Accepts an input / output request from P34 and executes protocol processing 3
43 processes and controls the communication data and issues an input / output request to the driver 345. The driver 345 sets the various information described in FIG. 3 in response to the received input / output request, and issues an input / output activation command 200 to the CH 142.

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

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

【0067】完了待ち管理テーブル331は、CH14
2に対してコマンドを発行済みであり、未だCH142
からのコマンド終了応答が帰ってきてないものを管理す
るテーブルである。なお、本テーブル331の構成と管
理方式は、待ち要求管理テーブル330と同様である。
The completion wait management table 331 is stored in the CH 14
2 has been issued and CH142 is still
This is a table for managing commands for which no command end response has been returned. The configuration and management method of this table 331 are the same as those of the wait 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 higher-level protocol processing 343.

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

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

【0071】以上で、上位のプロトコル処理345から
の要求によりコマンド発行を行う一連の処理の説明を終
わる。
The above is a description of a 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 flowchart showing the command reissue processing logic of the driver 345 after receiving a termination interrupt from the CH 142. When receiving the end interrupt from the CH 142, the driver 345 executes the end interrupt processing. After executing the end interrupt processing, the driver 345 executes the command reissue processing of FIG.

【0073】まず、ドライバ345は、待ち要求管理テ
ーブル330を調べることで、要求待ちが有り、かつ、
CH142の状態がビジーでないかどうかを調べる(ス
テップ3601)。要求待ちが有りかつCH142がビ
ジーでないならば、ステップ3603に進む。要求待ち
が無いかまたはCH142がビジーならば、処理を終了
する。
First, the driver 345 checks the waiting request management table 330 to determine whether 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 the CH 142 is busy, the process ends.

【0074】ステップ3603では、待ち要求管理テー
ブル330に待ち要求が無いかどうかチェックする(ス
テップ3603)。待ち要求がある場合は、待ち要求を
待ち要求管理テーブル330からデキューし(ステップ
3605)、デキューした要求33にしたがってCCW
列を作成する(ステップ3607)。そして、前記ステ
ップで作成したCCW列の先頭アドレス等を設定するこ
とで拡張CAW301を作成する(ステップ360
9)。次に、再度ステップ3603からの処理を繰り返
す。
At step 3603, it is checked whether or not there is a waiting request in the waiting request management table 330 (step 3603). If there is a waiting request, the waiting request is dequeued from the waiting request management table 330 (step 3605), and the CCW is executed in accordance with the dequeued request 33.
A column is created (step 3607). Then, the extended CAW 301 is created by setting the head address and the like of the CCW column 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 to create the CCW column and the extended CAW 301 as described with reference to FIG.

【0076】ステップ3603で待ち要求が無くなった
場合は、拡張CAW301のストップビットを設定する
(ステップ3611)。具体的には、拡張CAW301
の最後のコマンドブロックのストップビットをオン
(1)とし、それ以前のコマンドブロックのストップビ
ットをオフ(0)とする。次に、起動すべきCH142
を特定するチャネルアドレスをロードし、入出力起動命
令200を実行する(ステップ3613)。
If no waiting request is found in step 3603, the stop bit of the extended CAW 301 is set (step 3611). Specifically, the extended CAW 301
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 start 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 of the input / output is confirmed in the end interrupt processing, and the waiting request is deleted from the completion waiting management table 331.

【0078】以上で、終了割り込み受け付け後のコマン
ド再発行処理の説明を終わる。
The description of the command reissuing process after accepting the end interrupt has been completed.

【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 described with reference to 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.
FIG. 2 shows a hardware configuration of 00. The display 121 is a display device for displaying a message for an operator (or an operator). The keyboard 122 is an input device for an operation command given by the operator. The CPU 123 is a processing device for software such as an online processing program. MU (storage unit)
124 stores the software programs, various control tables and buffers. CPU123
And the MU 124 are connected by a main bus.

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

【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 controller) 1
23 and the like. These input / output controller and input / output bus are connected to an IOA (input / output adapter) 12.
8 are connected. In particular, the MCI 130 has one I
A plurality of OAs 128 are connected via a local bus (SCSI bus). The reason is that, since the number of lines 131 that can be connected to one MCI 130 is limited, depending on the business scale of the user, it is necessary to connect a plurality of MCIs 130 as described above to connect a large number of lines. is there. The input / output bus includes an FDDIA (FDDI adapter) 126, which is a high-speed LAN adapter device, and a CCU.
(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 first embodiment described above.
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 the DEV 148 of the first embodiment.

【0084】図10の本機器構成に基づいて入出力動作
の概要を説明する。IOA128は、CPU123から
の入出力コマンドをBA125を介して受け取ること
で、その入出力動作を開始する。データ送信の場合、I
OA128は、MU124から指定されたデータを該当
するMCI130に転送する。データ受信の場合、当該
MCI130からMU124の指定エリアにBA125
を介してデータを転送する。MCI130はデータを格
納するためのバッファを備えている。
The outline of the input / output operation will be described based on the configuration of the apparatus shown in FIG. The IOA 128 starts its 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 specified by the MU 124 to the corresponding MCI 130. In the case of data reception, BA125 is assigned 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 includes an instruction to the IOA 128 and the line 13
1. This input / output command is
Execution of I130 causes data communication via the line.

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

【0087】各種ソフトウェアとは、記憶管理やプロセ
ス管理等を行うOSカーネル、ディスプレイ121やキ
ーボード122との間の入出力を行うコンソール制御、
ログファイル等の更新を行うファイル管理、および回線
やFDDIを介したデータ通信を行う通信管理からなる
制御ソフト群、並びにオンライン処理等の各種アプリケ
ーションプログラム群である。それぞれに対応して、参
照テーブルとバッファ領域が設けられている。
Various kinds of software include an OS kernel for performing storage management and process management, a console control for performing input and output with the display 121 and the keyboard 122,
A control software group includes a file management for updating a log file and the like, a communication management for performing data communication via a line and an FDDI, and various application programs for online processing. A reference table and a buffer area are provided for 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 in the communication management program prepares interface information having a structure shown in FIG.
An I / O activation command is issued to the IOA 128. Hereinafter, when describing the communication management driver and the protocol processing of the second embodiment, the numbering shown in FIG. 6 is used.

【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 IOA 128. The IOA 128 includes the following functional blocks. A bus interface LSI 401 for controlling an interface between an external bus, which is an input / output bus, and a local bus, which is an internal bus of the IOA 128, and an MPU 402, which is a processing device similar to the CPU (to be distinguished from the CPU 123 which is a processing device of the main body 100, MPU), local memory (LM) 403, and SCSI
The protocol processor 404.

【0090】CPU123からのIOA128に対する
指示を受け付けるのがバスインタフェースLSI401
である。バスインタフェースLSI401は、次の4つ
の機能ブロックから構成されている。外部バス制御部
は、CPUのアドレス信号の値に応じてデータバスのパ
ス開閉を制御したりCPUへの割り込み信号を制御する
ブロックである。アーキテクチャレジスタ制御部は、C
PU123とのインタフェース用レジスタ群とこれに対
するアクセス(入出力情報の書き込みやMPU402に
対する割り込み等)を制御するブロックである。外部バ
ス−ローカルバス変換部は、外部バスでのアドレス信号
とローカルバスでのアドレス信号とのマッピングを行う
ブロックである。ローカルバス制御部は、ローカルバス
の開閉を制御するブロックである。
The instruction from the CPU 123 to the IOA 128 is accepted by the bus interface LSI 401.
It is. The bus interface LSI 401 is composed of the following four functional blocks. The external bus control unit is a block that controls opening and closing of a data bus path and controls an interrupt signal to the CPU according to the value of the address signal of the CPU. The architecture register control unit uses C
This is a block for controlling a register group for interface with the PU 123 and access to the register group (writing of input / output information, interruption to the MPU 402, etc.). The external bus-local bus conversion unit is a block that performs mapping between 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 and 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 (command entry, command chain, trace, work) necessary for control are recorded. For this information,
It will be described later. The SCSI protocol processor 404 uses S
It has both 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.
This is an internal structure of the MCI 130 that performs data input / output processing for each line according to a series of commands passed from the MCI 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 that processes the communication protocol of the second layer. On the other hand, LC52
Reference numeral 0 denotes a processor module that processes an interface with a physical line, and a plurality of processor modules exist. 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 a SCSI bus interface, a SCSI controller memory 512, a global memory 513 serving as a buffer for communication data, an MPU 514, and an MP.
It comprises a U memory 515. On the other hand, LC520 is LC
An LCP 521, which is a processor device for LCP, and an LCP memory 522.

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

【0096】図14を参照して、データ送信時のシーケ
ンスを説明する。CPU123は、まずコマンド505
(後述)を作成し、これをコマンドエントリ504(後
述)に設定する。次に、IOコマンドレジスタ501
(後述)をアクセスすることで、IOA128を起動す
る。次に、起動したIOA128は、コマンドエントリ
504を、そのLM403に取り込む。IOA128
は、取り込んだコマンドエントリ情報から、当該コマン
ドを見つけその内容を解析する。そして、ターゲットM
CI130とのバスを結合させたのち、MCI130に
対してコマンドを発行する。以上のシーケンス動作は、
図15のデータ受信時も同一である。
Referring to FIG. 14, a sequence at the time of data transmission will be described. The CPU 123 first executes the command 505
(Described later) is created and set in the command entry 504 (described later). Next, the IO command register 501
By accessing (described later), the IOA 128 is activated. Next, the activated 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 applies to the data reception in FIG.

【0097】以後まず、送信動作について述べる。送信
(send)コマンドを送信した後、IOA128は、
送信データをMU124から当該MCI130のグロー
バルメモリ513へDMA転送する。当該MCI130
からのデータ転送完了通知を受けたIOA128は、S
CSIバス開放を行うと同時に、完了情報をMU124
に書き込む。そして、コマンド終了割り込みによって、
コマンドの終了をCPU123に知らせる。割り込みに
よって起動されたCPU123は、完了情報をチェック
する。
First, the transmission operation will be described. After sending the send (send) command, the IOA 128
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 the
At the same time as releasing the CSI bus, the completion information is
Write to. And by the command end interrupt,
Inform the CPU 123 of the end of the command. The CPU 123 activated by the interruption 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 before 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 transmitting the reception (read) command,
IOA 128 waits for a signal from MCI 130.
If there is no received data in the MCI 130, the IOA 12
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 reconnects the bus with the MCI 130,
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 with reference to 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 operations.
FIG. 4 is a diagram showing a relationship of interface information between IOAs. In this embodiment, since a RISC processor is used for the CPU 123, a dedicated instruction cannot be used as an input / output activation instruction. Therefore, a memory mapped IO method is adopted as the IO method. This is because a part of the memory space of the CPU 123 is stored in the IO command register 501 of the IOA 128.
This is the method assigned to. Executing a load instruction for this address refers to accessing the IO command register 501, which 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
It is information arranged at a fixed address in the IP address 124 and 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
This is an array (array) in which two command entries 504 are continuously arranged. By arranging the powers of two, IO
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 a command 5
It has a pointer to 05. The command 505 has information of the transfer area 506 and pointer information to the next command 505. Command 505 is the next command 50
5 are linked by a pointer to 5 to form a command sequence. 1
Since one command entry 504 points to a single command string, a plurality of command strings are pointed 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, a buffer for storing reception data at the time of reception, and an area for storing reception data after completion of a command.

【0104】図17は、コマンド505を詳細に記述し
た図である。次コマンドアドレスは、コマンド列を構成
するためのポインタ情報であり、次コマンド505への
ポインタである。フラグeocは、コマンド列の最後を
示す情報である。フラグeocが0のとき当該コマンド
の次に次コマンドが存在することを示し、フラグeoc
が1のとき当該コマンドがコマンド列の最後のコマンド
であることを示す。デバイスIDは、回線を識別するた
めの情報である。
FIG. 17 is a diagram describing the command 505 in detail. The next command address is pointer information for composing 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 after the command, and the flag eoc
Indicates that the command is the last command in the command sequence. The device ID is information for identifying a line.

【0105】フラグ領域は、次の3つのフラグからな
る。3つのフラグとは、dc、crep、intであ
る。
The flag area includes 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. A 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. Different commands are referred to as a command chain. The crep flag is information for instructing creation of completion information when the operation by the command is completed. The int flag is information instructing generation of a termination interrupt when the operation by the command is completed. In this embodiment, the specification is such that completion information is received by interruption after each command is completed.

【0107】IOAコマンドは、DMA起動要求を意味
する情報である。転送エリアアドレスは、先に述べた転
送エリア506のアドレスであり、転送長はその長さで
ある。SCSIコマンドは、MCI130が実行すべき
コマンド(read/send等)である。完了情報エ
リアは、IOA128が完了情報を記録するエリアであ
る。なお、コマンド505は、IOA128が参照し易
いように8ワードからなりたっている。
The IOA command is information meaning a DMA start request. The transfer area address is the address of the transfer area 506 described above, and the transfer length is that length. The SCSI command is a command (read / send, etc.) 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 is composed of eight words so that the IOA 128 can easily refer to the command.

【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 describing the command entry 504 in detail. The flag busy is set to IOA128
Changes the command entry 504 from the MU 124 to the LM4
03 is a flag indicating whether or not the data has been captured. That is, the CPU 123 stores the command entry 504 in the MU12
When creating in IOA4, set 1 and IOA12
8 is activated, and the IOA 128
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 identifier information that is the same as that of the command 505 and indicates a device (line in this example) that performs input and output. The device I of the command entry 504
One device designated by D is a target of input / output of a series of commands 505 pointed from the command entry 504. Therefore, each command 5 in FIG.
It can be said that there is no need for the device ID column of 05,
It is provided for use in processing at the time of failure.

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

【0111】次に、IOA128の処理ロジックを説明
する。図19、図20、および図21は、図12に示し
たIOA128内のMPU402の処理ロジックを説明
するためのフローチャート図である。図22は、上記処
理ロジックで参照するLM403上の情報構造である。
Next, the processing logic of the IOA 128 will be described. FIGS. 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 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 includes:
This is a table for managing the command entry fetched from the MU 124 by the IOA 128. The command entry copy 581 is a table for storing a copy of the fetched command entry and the like. The execution command processing table 582 is a table that is 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 linked by a chain, so that the address of the first command entry copy 581 and the last command entry copy 5
81 are 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 address.

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

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

【0116】以下、図14および図15で説明した処理
シーケンスにしたがって、IOA128の処理ロジック
を説明する。
Hereinafter, the processing logic of the IOA 128 will be described 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 flowchart showing the processing logic of the command entry fetch processing.
As described with reference to FIG. 14 and FIG.
(And the driver 345 of the communication management 340) are shown in FIG.
The command 505 shown in FIG. 18 is created and set in the command entry 504 shown in FIG. 18. 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から処理を開始
する。
By the interruption from the CPU 123,
In the IOA 128, the command entry fetching process of FIG. 21 starts. In this processing, M in the IOA 128
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 information of the command entry 504 set in the MU 124 by the CPU 123 is copied to the command entry copy area in the LM 403 (step 5701). Next, the command entry copy 58 just created is added to the command entry copy management table 580.
1 (FIG. 22) is registered (step 5703).

【0120】これらの処理は、一連のコマンドエントリ
コピー581のチェーンの最後に新たにコマンドエント
リコピー581を追加する方式である。すなわち、まず
LM403内のコマンドエントリコピーエリア内に新た
にコマンドエントリコピー581を作成し、そこにコマ
ンドエントリ504の情報をコピーする。そして、コマ
ンドエントリコピー581のチェーンの最後のコマンド
エントリコピー581の次コマンドエントリコピー欄の
値として、いま新たに作成したコマンドエントリコピー
581のアドレスを設定する。さらに、コマンドエント
リコピー管理テーブル580の最終コマンドエントリコ
ピーのアドレスを更新し、コマンドエントリコピーの数
を更新する。
In these processes, a new command entry copy 581 is added to the end of a chain of a 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 there. 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 of the chain of the command entry copy 581. Further, the address of the last command entry copy in the command entry copy management table 580 is updated, and the number of command entry copies is updated.

【0121】無論、初めての登録時は、先頭コマンドエ
ントリーコピーのアドレスと実行コマンドエントリコピ
ーのアドレスをも設定する(ステップ5703)。実行
コマンドエントリコピーのアドレスの初期値は、先頭コ
マンドエントリーコピー581のアドレスである。
Of course, at the time of the first registration, the address of the first 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, an 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 column of the execution command processing table 81. 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. Furthermore, the command string chained from the command string head address is checked, and the number of command chains constituting the command string 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, a next command entry determination process 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
Check the sy flag. If the flag is set, the command entry 504 has not yet been taken into the IOA, and therefore, the processing is repeated from step 5701.
Continue capturing command entries. Step 570
If the busy flag is not set in step 7, this interrupt processing ends (step 5707).

【0124】図19と図20を用いて、IOA128に
おけるコマンド処理のメインロジックを説明する。図1
9は図14で説明した送信系の処理、図20は図15で
説明した受信系の処理である。
The main logic of the command processing in the IOA 128 will be described with reference to FIGS. 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 storage address of the command to be executed (the execution command address of the execution command processing table 582) is obtained by following the chain from the execution command entry copy address of the command entry copy management table 580. 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 value is null or the flag is set, the command entry copy management table 580 is used to obtain an execution command for a different device.
Is updated (updated so as to point to the next command entry copy 581) (step 5527), and the process returns to step 5501.

【0127】ステップ5501で上記以外ならば、コマ
ンドエントリコピー管理テーブル580の実行コマンド
エントリコピーアドレスでポイントされるコマンドエン
トリコピー581のデバイスIDから、コマンドの実行
対象であるターゲットMCIのアドレスを得る処理を行
う(ステップ5503)。次に、ステップ5503で得
たアドレスを指定してSCSIプロトコル処理プロセッ
サ404にバス結合要求を発行することで、ターゲット
MCIとのバスをオープンさせる(ステップ550
5)。
If it is not the above in step 5501, the process of obtaining the address of the target MCI to be executed by the 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 is executed. Perform (step 5503). Next, a bus connection request is issued to the SCSI protocol processor 404 by designating the address obtained in step 5503 to open the bus with the target MCI (step 550).
5).

【0128】次に、コマンドのチェックを行う。ここで
は、send系コマンドかread系コマンドかによっ
て以降の処理の振り分けを行う(ステップ5507)。
read系の処理は後で説明することとし、まずsen
d系処理を説明する。
Next, the command is checked. Here, the subsequent processing is distributed depending on whether the command is a send command or a read command (step 5507).
The processing of the read system will be described later.
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 transmitted from the target MCI via the previously opened bus.
(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 with an execution 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 checks 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). If the crep bit is off, or after step 5515, in
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 a termination interrupt for 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, release processing of the command entry copy 581 is performed (step 55).
25). That is, the number of command entry copies is reduced by one from the table 580, and the address of the executed command entry copy is updated (the next command entry copy 581).
After that, the command entry copy 581 is deleted. If the eoc bit is off, the execution command address of the execution command processing table 582 is updated (updated so as to point to the next command) (step 5523).

【0133】ステップ5525の後は、ステップ550
1から繰り返す。ステップ5523の後は、ステップ5
507から繰り返す。
After step 5525, step 550 is executed.
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-based 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
Read M command to processor 404
Make a request to send to CI. As a result, the read command is transferred via the previously opened bus (step 5601).

【0135】次に、ターゲットMCIからの応答をチェ
ックし、ターゲットMCIに受信データが無いかどう
か、すなわちバス解放を行うかどうかをチェックする
(ステップ5601)。受信データが無い場合はバス解
放を行なうこととし、プロセッサ404に対してバス解
放要求を行う(ステップ5605)。そして、実行コマ
ンド処理テーブル582のRead発行済みフラグをオ
ンにする(ステップ5697)。その後、ステップ55
27から実行し、異なるデバイスのコマンドを処理す
る。
Next, the response from the target MCI is checked to check whether there is no received data in the target MCI, that is, whether or not to release the bus (step 5601). If there is no received data, the bus is released, and a bus release request is made 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 for 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 flowchart in the lower part of FIG. 20, a description will be given of the processing when the received data is generated after the bus is released in step 5605. This processing is re
IOA128 from MCI that has issued ad-related command
Triggered by an interrupt generated by reconnecting 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 caused 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, by issuing a DMA transfer request, the received data is transferred from the target MCI to the MU 124 (step 5).
615).

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

【0140】以上でIOA128のメイン処理の説明を
終わる。
The main processing of the IOA 128 has been described above.

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

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

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

【0144】また、テーブル400は、複数(デバイス
総数分)のデバイスIDと発行済みread数とのペア
を備えている。デバイスIDとは、各デバイスを識別す
るための識別子情報である。発行済みread数とは、
各デバイスIDに対応したデバイスにおいて発行したr
eadコマンドでそのコマンド動作が終了していないコ
マンドの数である。なお、各発行済みread数は、初
期化時にゼロクリアされている。
The table 400 has a plurality of pairs of device IDs (for the total number of devices) and the number of issued reads. The device ID is identifier information for identifying each device. The number of issued reads is
R issued in the device corresponding to each device ID
This is the number of commands for which the command operation has not been completed in the "head" command. The number of issued reads has been cleared to zero at the time of 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 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 indicating the initial device ID (initially, the device ID in FIG. 23 indicates 0x00) is set (step 410).
9). Next, the subsequent processing is sorted according to the value of the variable y. y
If> 0, the process proceeds to step 4117; otherwise, the process proceeds to step 4113 (step 4111).

【0146】y>0のケースから説明する。テーブル4
00を参照して上記ポインタ変数が指すデバイスIDに
対応する発行済みread数の値を求め、最大read
発行数から該発行済みread数の値を減算し、その結
果を変数zに代入する(ステップ4117)。次に、テ
ーブル400の該当する発行済みread数の値を最大
read発行数に更新する(ステップ4115)。
The description will begin with the case where y> 0. Table 4
00, the value of the number of issued reads corresponding to the device ID indicated by the pointer variable is obtained, and the maximum read
The value of the issued read number is subtracted from the issued number, and the result is substituted into a variable z (step 4117). Next, the value of the corresponding issued read number in the table 400 is updated to the maximum read issued number (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 one, and the pointer variable is updated (to point to the next device ID) (step 4123).
Return to 11. Thus, steps 4111 to 4123
Is executed for all the devices, and a first read is issued to each device for the maximum number of issued reads.

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

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

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

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

【0152】(実施例4)前述した実施例1〜3では、
ドライバ345(図6)の処理については述べたが、プ
ロトコル処理343と入出力コマンドとの関連は述べな
かった。本実施例4ではそれらの関係を考慮し、プロト
コル処理によりデータを複数のパケットに分割して送信
する場合に、一度に送信可能なパケット数分のパケット
を転送するためのwriteコマンドからなる一連のコ
マンド列を作成して発行する例について説明する。
(Embodiment 4) In Embodiments 1 to 3 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 relations, when data is divided into a plurality of packets by the protocol processing and transmitted, a series of write commands for transferring the number of packets that can be transmitted at one time is used. An example in which a command string is created and issued will be described.

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

【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 used as a unit for transmission and reception. The packet is
The original data is obtained by adding protocol control information called a header to the head 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 and a plurality of packets must be created. This processing is called packet division processing.

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

【0156】まず、パケット分割処理前では、バッファ
Bf0に元データD0が格納されており、1個のSPB
0が元データのアドレスとそのデータ長を保持すること
で元データD0を管理している。SPBは、次SPBア
ドレスを示すフィールド等を有している。元データが1
つのバッファに格納し切れない場合、複数のSPBで元
データを管理する。このとき、複数のSPB間は次SP
Bアドレスによって結合されている(これを、SPBデ
ータチェーンと呼ぶ)。
First, before the packet division processing, the original data D0 is stored in the buffer Bf0 and one SPB
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, the original data is managed by a plurality of SPBs. At this time, the next SP is
B addresses (this is called an 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に
おいて実行される。
Referring to FIG. 25, a description will be given of a method of packet division processing for creating two packets from original data D0. The packet division processing is executed in the protocol processing 343.

【0159】まず、パケット分割処理は、元データD0
のデータ長を調べ、分割の要否、および分割する場合は
データの分割位置を決定する。ここでは、元データD0
をデータD1とD2に分割するとする。
First, in the packet division processing, the original data D0
The data length of the data is checked to determine whether or not the data is to be divided, and if the data is to be divided, the data dividing 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の長さに変更する。
To create the first packet, a buffer BF1 for storing the first header is reserved, and the header is created. In order to create an SPB for managing the first packet, the address of the first header and its data length are recorded, and the 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 data D0 to the length of data D1.

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

【0162】次に、パケット分割処理とコマンド作成処
理(ドライバ345によって図16のようなデータを作
成する処理)との関連を述べる。
Next, the relationship between packet division processing and 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)は、相手から
の送達確認無しに連続して送信できる最大のデータパケ
ットの数を示している。
The 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 confirming the delivery of each data packet, and the delivery is confirmed collectively. The transmitting side determines the window size from the reception sequence number (Pr) returned from the other party to WS.
Then, a data packet having a transmission sequence number (Ps) up to WS + Pr-1 can be transmitted without acknowledgment. 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, assuming that the transmission sequence number of the newest transmitted packet is PS, the number of continuous transfers is defined as WS + Pr-1-PS. The number of continuous transfers indicates the number of data packets that can be continuously transmitted at present without confirming delivery from the other party. In the present embodiment, a method is adopted in which an input / output command in which packets within the number of continuous transfers are combined is created, and these are collectively transferred to the line controller. According to this method, input / output efficiency is improved as compared with a method in which individual packets are transferred one by one.

【0165】この処理をパケット分割一括io処理と呼
ぶ。この処理の説明に移る。まず、プロトコル制御情報
として、上記の連続転送数を記録しておく。連続転送数
が0でなくかつ滞留パケットが有るときに、パケット分
割処理からパケット分割一括io処理へ処理が移行する
ようにする。滞留パケットとは、パケット分割処理で作
成した分割パケットのことである。パケット分割処理か
らパケット分割一括io処理へ移行する際には、パケッ
ト分割処理で作成した分割パケットの総数を、滞留パケ
ット数として引き渡すとともに、その各々のパケットの
アドレスも引き渡す。
This process is called packet division batch io process. Moving 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 is shifted from the packet division processing to the packet division batch io processing. The staying packet is a fragmented packet created by the packet dividing process. When shifting from the packet division processing to the packet division batch io processing, the total number of divided packets created in the packet division processing 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 flowchart 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 the data structure of the interface to the driver. In particular, FIG. 26 shows the result of processing the lower data structure (divided by the packet division process) of FIG. 25 by the packet division batch io process.

【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 a delivery confirmation for each packet at the present time) and the number of staying packets (the divided packets divided by the packet division process). Is compared with the number (step 531). If the number of staying packets is equal to or greater than the number of continuous transfers, connect the packets of the number of continuous transfers from the beginning of the staying packets by a command chain,
The remaining packets are retained (step 53).
5). Conversely, if the number of staying packets is smaller than the number of continuous transfers, all the staying packets are connected by a 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 number of continuous transfers to obtain a new number of continuous transfers.

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

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

【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 checks the SPB (head S
The command 505 (FIGS. 16 and 17) is created based on the PB (processing is started) (step 54).
1). Next, the next SPB address of the SPB is null.
1 is determined (step 543). The SPB
If the next SPB address is not null, there is data to follow, so 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 processing from the command creation (step 541) is repeated again.

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

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

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

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

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

【0177】まず、詰め替え処理601は、SPB0で
示されるデータ長とデータ長判定情報600を比較する
ことで、詰め替えの要否を決定する(ステップ61
1)。
First, the refilling process 601 determines whether or not repacking is necessary 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 determination information 600 will be described. Now, the overhead of the IOA processing one command is defined as O (c). Assuming that the data length (bytes) is D1 and the overhead required to move one byte of data is O (m1), the overhead of moving the data of length D1 (O (md)) is O (m1). * It can be represented by D1. Assuming that the refill method is effective when O (c) is greater than O (md), the data length D1 in that case is D1 <O
The condition (c) / O (m1) is satisfied. Therefore,
O (c) / O (m1) is calculated, and data length determination information 60 is calculated.
It is set to 0 when the computer is started.

【0179】ステップ611では、SPB0で示される
データ長とデータ長判定情報600とを比較し、SPB
0で示されるデータ長がデータ長判定情報600より小
さいとき詰め替えが必要と判定し、そうでないとき詰め
替えが不要と判定することになる。
In step 611, the data length indicated by SPB0 is compared with the data length judgment information 600,
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 an area after the header of the header buffer Bf1 (step 613). Next, the buffer Bf0 that 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). And SPB0 which is the SPB of the data move source
Is released (step 619), thereby ending a series of processing.

【0181】以上の処理により、1つのバッファにヘッ
ダとデータが格納され、1つSPBで管理される。これ
をドライバ345に渡すことで、1つのコマンド505
が作成される。
By 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 communication server computer (including a number of input / output devices such as line controllers) for performing data exchange and file processing with a number of terminals and host computer systems and performing part of online processing. An example in which the present invention is applied has been described with reference to FIG. 33), but the present invention is not limited to this and can be generally applied to a computer system. For example, the main CPU is connected to a plurality of slave CPUs (device processors) via an input / output processor (input / output adapter device).
When data is generated asynchronously in the slave CPU and it is necessary to distinguish between data generated in one slave CPU and data generated in another slave CPU in a computer system configuration connected to Connect an asynchronous device,
When each data must be processed separately, the local memory and the main CP managed by the slave CPU
The present invention can also be applied to a case where an input / output command sequence (specific to a slave CPU) for controlling data transfer between main storage devices managed by U is issued from the main CPU to a plurality of slave CPUs.

【0183】[0183]

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

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

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

【図2】実施例1の計算機での入出力機器構成図FIG. 2 is a configuration diagram of input / output devices 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 a channel according to the first embodiment.

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

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

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

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

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

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

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

【図12】IOアダプタの構造図FIG. 12 is a structural diagram of an IO adapter.

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

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

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

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

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

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

【図19】IOアダプタの処理を示すフローチャート
(その1)図
FIG. 19 is a flowchart (part 1) illustrating processing of an 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 (3) showing the processing of the IO adapter;

【図22】IOアダプタの処理テーブル関連図FIG. 22 is a view showing a processing table of an IO adapter.

【図23】先だしReadコマンド管理テーブル構成図FIG. 23 is a configuration diagram of an advance Read command management table;

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

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

【図26】一括IO方式で作成された複数パケットの関
連図
FIG. 26 is a diagram showing a relation between a plurality of packets created by the collective IO method;

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

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

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

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

【図31】従来のチャネルインタフェースを示す図FIG. 31 shows 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 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

───────────────────────────────────────────────────── フロントページの続き (72)発明者 松永 和男 神奈川県横浜市戸塚区戸塚町5030番地 株式会社 日立製作所 ソフトウェア開 発本部内 (56)参考文献 特開 昭63−208147(JP,A) 特開 昭63−259753(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 13/12 G06F 13/10 ────────────────────────────────────────────────── ─── Continuation of front page (72) Inventor Kazuo Matsunaga 5030 Totsuka-cho, Totsuka-ku, Yokohama-shi, Kanagawa Prefecture Hitachi, Ltd. Software Development Division (56) References JP-A-63-208147 (JP, A) Kaisho 63-259753 (JP, A) (58) Field surveyed (Int. Cl. 6 , DB name) G06F 13/12 G06F 13/10

Claims (20)

(57)【特許請求の範囲】(57) [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 device for giving an input / output request to the input / output device via the adapter device. The system, further comprising: means for issuing a plurality of input / output commands to the plurality of input / output devices as one input / output activation command; Means for specifying a plurality of input / output commands for a plurality of input / output devices included in the start instruction as an input / output command for which input / output device; A computer system, comprising: means for providing input / output devices.
【請求項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 device for giving an input / output request to the input / output device via the adapter device. A main processing unit, the main processing unit comprising: a waiting request management table for storing and managing an input / output request to the input / output device; Means for storing the input / output request in the waiting request management table when the output request cannot be processed immediately; and storing the input / output request in the waiting request management table at that time when the processing of the input / output request becomes possible. 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. When Means for issuing to the adapter device, wherein the adapter device specifies a plurality of command strings included in the one input / output activation command as a command string to which input / output device; 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 further comprises means for issuing a termination interrupt to the main processing device when processing of a given input / output command is completed, wherein the main processing device receives the input / output command from the input / output device. As a trigger of the output command end interrupt, it is determined whether or not the processing of the input / output request is possible.If possible, based on the input / output request stored in the waiting request management table at that time, Means for generating 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 activation command The computer system according to claim 2, comprising:
【請求項4】前記1回の入出力起動命令として前記主処
理装置から前記アダプタ装置に発行される複数のコマン
ド列は、コマンド列の先頭位置を指定するアドレス情報
とコマンド列の各コマンドの実行対象である1つの入出
力装置を特定する識別子情報とを含むブロックを基本単
位とし該ブロックが複数個連続した構造を有するテーブ
ルにより管理される請求項2または3のいずれか1つに
記載の計算機システム。
4. A plurality of command strings issued from said main processing unit to said adapter device as said one input / output start command include address information designating a head position of the command string and execution of each command of the command string. 4. The computer according to claim 2, wherein a block including identifier information specifying one target input / output device is used as a basic unit and managed by a table having a structure in which a plurality of blocks are 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 activation command, 5. 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 apparatus receives a command sequence of the input / output activation instruction.
【請求項6】複数の入出力装置と、該複数の入出力装置
に結合されたアダプタ装置と、該アダプタ装置を介して
前記入出力装置に入出力要求を与える主処理装置とを備
えるとともに、該主処理装置はアプリケーションプログ
ラムを実行するアプリケーション実行部と該アプリケー
ション実行部から発行される入出力要求を処理するドラ
イバ部とを備えている計算機システムであって、 前記主処理装置のドライバ部は、前記アプリケーション
実行部から発行される入出力要求に基づいて入出力コマ
ンドを生成するとともに、複数の入出力装置に対する複
数の入出力コマンドを、1回の入出力起動命令として発
行する手段を備え、 前記アダプタ装置は、前記1回の入出力起動命令に含ま
れる複数の入出力装置に対する複数の入出力コマンドを
どの入出力装置に対する入出力コマンドか特定する手段
と、前記複数の入出力装置に対する複数の入出力コマン
ドの各々を前記特定された入出力装置に対して各々与え
る手段とを備えたことを特徴とする計算機システム。
6. An input / output device comprising: 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 unit 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 unit includes: Means 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 to a plurality of input / output devices as one input / output activation command, The adapter device sends a plurality of input / output commands for a plurality of input / output devices included in the one input / output start command. Means for specifying an input / output command for the input / output device; and means for giving 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. An electronic apparatus comprising: 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 unit 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 unit includes: A wait request management table for storing and managing the input / output requests issued from the application execution unit, and when an input / output request from the application execution unit occurs, when the input / output request cannot be processed immediately, Means for storing the input / output request in the waiting request management table, and when the input / output request can be processed, At that time, based on the input / output requests stored in the waiting request management table, a command string, 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. Is issued to the adapter device as a single input / output activation command. The adapter device outputs a plurality of command sequences included in the single input / output activation command to any one of the input / output A computer system comprising: means for specifying a command sequence for a device; and means for giving each of the input / output commands of the plurality of command sequences to the specified 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, converts a plurality of input commands to the plurality of input / output devices into a single input / output activation command and outputs the input / output activation command to the adapter unit. The computer system according to claim 6, further comprising a means for preloading the device.
【請求項9】前記入力コマンドを先出しする手段は、 前記入出力装置に対する入力コマンドの最大発行数を示
す第1の規定数を記憶する第1の記憶手段と、入力コマ
ンド列を再発行するための契機を規定するための第2の
規定数を記憶する第2の記憶手段と、前記各入出力装置
に対する未完了の入力コマンド数を記録する第3の記憶
手段とを備え、 前記ドライバ部の初期化後、入力コマンドを前記第1の
規定数分連ねた入力コマンド列を各入出力装置ごとに作
成して前記アダプタ装置に発行し、前記第3の記憶手段
に各入出力装置に発行した入力コマンド数を記録し、以
後、前記各入出力装置から入力コマンドの完了報告を受
けるたびに、前記第3の記憶手段に記憶された該当入出
力装置の未完了入力コマンド数を1つ減じ、この処理に
よりその入出力装置における未完了入力コマンド数が前
記第2の規定数になったらば、前記第3の記憶手段に記
憶された未完了入力コマンド数と第1の記憶手段に記録
された第1の規定数との差分を計算し、この差分の数だ
け入力コマンドを連ねた入力コマンド列を前記アダプタ
装置に再発行することを特徴とする請求項8に記載の計
算機システム。
9. An input command advance means, comprising: first storage means for storing a first specified number indicating a maximum number of input commands issued to the input / output device; and an input command sequence for reissuing the input command sequence. A second storage unit for storing a second specified number for defining the timing of the operation; and a third storage unit for storing the number of uncompleted input commands for each of the input / output devices. After the initialization, an input command sequence in which the input commands are connected for the first prescribed number is created for each input / output device, issued to the adapter device, and issued to the third storage means to each input / output device. The number of input commands is recorded, and thereafter, each time an input command completion report is received from each of the input / output devices, the number of incomplete input commands of the corresponding input / output device stored in the third storage means is reduced by one, By this processing When the number of uncompleted input commands in the input / output device reaches the second prescribed number, the number of uncompleted input commands stored in the third storage means and the first number of uncompleted input commands stored in the first storage means are set. 9. The computer system according to claim 8, wherein a difference from a prescribed number is calculated, and an input command sequence in which input commands are linked by the difference is reissued to the adapter device.
【請求項10】前記入出力装置が回線制御装置であり、 前記主処理装置は、前記アプリケーション実行部から発
行されたデータ転送要求に係るデータを分割し、該分割
された各々の出力データの先頭に通信プロトコル制御情
報を付加して複数の分割パケットを作成するプロトコル
処理部を備え、 前記主処理装置のドライバ部は、前記複数の分割パケッ
トの数がその時点で相手からの送達確認なしで連続転送
できるパケットの数である連続転送数以下である場合
は、前記複数の分割パケットに基づいて複数の入出力コ
マンドを作成し、作成した複数の入出力コマンドを1回
の入出力起動命令として発行することにより、前記複数
の分割パケットの出力データを1回の入出力動作で転送
することを特徴とする請求項6または7のいずれか1つ
に記載の計算機システム。
10. 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 sets a head of each of the divided output data. A protocol processing unit that adds communication protocol control information to the packet to generate a plurality of fragmented packets, wherein the driver unit of the main processing unit is configured to continuously transmit the number of the plurality of fragmented packets without confirming delivery from the other party at that time. When the number of packets that can be transferred is equal to or less than the continuous transfer number, 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. 8. The method according to claim 6, wherein the output data of the plurality of divided packets is transferred by one input / output operation. The placing of the computer system.
【請求項11】前記入出力装置が回線制御装置であり、 前記主処理装置は、 前記アプリケーション実行部から発行されたデータ転送
要求に係るデータを分割し、該分割された出力データを
ポイントするデータ管理情報ブロックを各々作成し、該
分割された出力データの先頭に論理的に付加されるべき
通信プロトコル制御情報であって該通信プロトコル制御
情報と出力データとで論理的に分割パケットが構成され
るような通信プロトコル制御情報を作成し、該通信プロ
トコル制御情報をポイントするデータ管理情報ブロック
を各々作成するプロトコル処理部と、 前記プロトコル処理部から出力された別のデータ管理情
報ブロックによりポイントされる前記通信プロトコル制
御情報と前記出力データについて、前記アダプタ装置が
前記通信プロトコル制御情報を転送するコマンドを処理
することに要するオーバーヘッドと前記出力データを前
記通信プロトコル制御情報に連続する領域にコピーする
ことに要するオーバーヘッドとを比較することにより、
後者のオーバーヘッドのほうが小さい場合は、前記通信
プロトコル制御情報と前記出力データとを連続した領域
に設定するとともに、該領域をポイントするデータ管理
情報ブロックを作成し、前記ドライバ部に渡す詰め替え
処理部とを備えた請求項6または7のいずれか1つに記
載の計算機システム。
11. The input / output device is a line control device, wherein the main processing device divides data relating to a data transfer request issued from the application execution unit, and points to the divided output data. Each of the management information blocks is created, and communication protocol control information to be logically added to the beginning of the divided output data, wherein the communication protocol control information and the output data logically constitute a divided packet. 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 the data processing information block that is pointed to by another data management information block output from the protocol processing unit. For 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 a refill processing unit to be passed to the driver unit. 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 device for giving an input / output request to the input / output device via the adapter device. A method of issuing an input / output command in a system, comprising: a plurality of input / output commands for the plurality of input / output devices from the main processing device, as one input / output activation command;
Issuing the input / output command, and specifying which input / output device is the input / output command for the input / output devices for the input / output devices included in the one input / output activation command; Providing each of the plurality of input / output commands for the plurality of input / output devices to the specified input / output device.
【請求項13】複数の入出力装置と、該複数の入出力装
置に結合されたアダプタ装置と、該アダプタ装置を介し
て前記入出力装置に入出力要求を与える主処理装置とを
備えた計算機システムにおける入出力命令の発行方法で
あって、 前記主処理装置において、 前記入出力装置への入出力要求が発生したとき、該入出
力要求を直ちに処理できないときは、該入出力要求を待
ち要求管理テーブルに保管して管理するステップと、 入出力要求の処理が可能になったときは、その時点で前
記待ち要求管理テーブルに保管されている入出力要求に
基づいて、前記各入出力装置に与えるべき入出力コマン
ドを連ねた列であるコマンド列を入出力装置ごとに作成
し、それら複数のコマンド列を、1回の入出力起動命令
として、前記アダプタ装置に発行するステップと、 前記アダプタ装置において、 前記1回の入出力起動命令に含まれる複数のコマンド列
を、どの入出力装置に対するコマンド列か特定するステ
ップと、 前記複数のコマンド列の各々の入出力コマンドを前記特
定された入出力装置に対して各々与えるステップとを備
えたことを特徴とする入出力命令の発行方法。
13. A computer comprising: 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. A method of issuing an input / output instruction in a system, wherein, when an input / output request to the input / output device is generated in the main processing unit, the input / output request cannot be processed immediately, a request for waiting for the input / output request is issued. Storing and managing the input / output request in the management table; and when the processing of the input / output request becomes possible, based on the input / output request 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 these command sequences are issued to the adapter device as one input / output activation command. A step of identifying a plurality of command strings included in the one input / output activation command as a command string to which input / output device, and the input / output command of each of the plurality of command strings. Providing an input / output command to the specified input / output device.
【請求項14】前記入出力装置で、与えられた入出力コ
マンドの処理が終了したとき、前記主処理装置に終了割
込みを発行するステップと、 前記主処理装置で、前記入出力装置からの入出力コマン
ドの終了割り込みを契機として、入出力要求の処理が可
能か否かを判定し、可能であるときは、その時点で前記
待ち要求管理テーブルに保管されている入出力要求に基
づいて、前記各入出力装置に与えるべき入出力コマンド
を連ねた列であるコマンド列を入出力装置ごとに作成
し、それら複数のコマンド列を、1回の入出力起動命令
として、前記アダプタ装置に発行するステップとをさら
に備えた請求項13に記載の入出力命令の発行方法。
14. When the input / output device has completed processing of a given input / output command, issuing a termination interrupt to the main processing device; As a trigger of the output command end interrupt, it is determined whether or not the processing of the input / output request is possible.If possible, based on the input / output request stored in the waiting request management table at that time, 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 command sequences to the adapter device as one input / output activation command 14. The method for issuing an input / output instruction according to claim 13, further comprising:
【請求項15】複数の入出力装置と、該複数の入出力装
置に結合されたアダプタ装置と、該アダプタ装置を介し
て前記入出力装置に入出力要求を与える主処理装置とを
備えるとともに、該主処理装置はアプリケーションプロ
グラムを実行するアプリケーション実行部と該アプリケ
ーション実行部から発行される入出力要求を処理するド
ライバ部とを備えている計算機システムにおける入出力
命令の発行方法であって、 前記主処理装置のドライバ部から、前記複数の入出力装
置に対する複数の入出力コマンドを、1回の入出力起動
命令として、発行するステップと、 前記アダプタ装置により、前記1回の入出力起動命令に
含まれる複数の入出力装置に対する複数の入出力コマン
ドをどの入出力装置に対する入出力コマンドか特定する
ステップと、 前記複数の入出力装置に対する複数の入出力コマンドの
各々を前記特定された入出力装置に対して各々与えるス
テップとを備えたことを特徴とする入出力命令の発行方
法。
15. An input / output device comprising: 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 for issuing an input / output command in 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. Issuing a plurality of input / output commands to the plurality of input / output devices from the driver unit of the processing device as a single input / output activation command; and including the input / output activation command by the adapter device in the single input / output activation command Identifying a plurality of input / output commands for a plurality of input / output devices to be input / output commands for the input / output devices , 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. An input / output device comprising: 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 for issuing an input / output command in 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. In the driver unit of the processing device, when an input / output request from the application execution unit occurs, if the input / output request cannot be processed immediately, storing and managing the input / output request in a waiting request management table; When I / O requests can be processed, the I / O requests stored in the waiting request management table at that time On the basis of the request, a command sequence that is a sequence of input / output commands to be given to each of the input / output devices is created for each input / output device. Issuing to the adapter device, in the adapter device, identifying a plurality of command sequences included in the one input / output activation command as a command sequence to which input / output device, and each of the plurality of command sequences Applying the input / output command to each of the specified input / output devices.
【請求項17】前記主処理装置のドライバ部において、
前記アプリケーション実行部からデータの入力要求を受
け取る前に、前記複数の入出力装置に対する複数の入力
コマンドを、1回の入出力起動命令として前記アダプタ
装置に先出しするステップをさらに備えた請求項15ま
たは16のいずれか1つに記載の入出力命令の発行方
法。
17. The driver of the main processing unit,
16. The method according to claim 15, further comprising, before receiving a data input request from the application execution unit, sending 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 for issuing an input / output instruction according to any one of items 16.
【請求項18】前記入力コマンドを先出しするステップ
は、 前記ドライバ部の初期化後、入力コマンドを所定の最大
発行数分連ねた入力コマンド列を各入出力装置ごとに作
成して前記アダプタ装置に発行するステップと、 各入出力装置に発行した入力コマンド数を記録するステ
ップと、 前記各入出力装置から入力コマンドの完了報告を受ける
たびに、前記記憶された該当入出力装置の未完了入力コ
マンド数を1つ減じ、この処理によりその入出力装置に
おける未完了入力コマンド数が所定数以下になったら
ば、前記記憶された未完了入力コマンド数と前記最大発
行数との差分を計算し、この差分の数だけ入力コマンド
を連ねた入力コマンド列を前記アダプタ装置に再発行す
るステップとを含む請求項17に記載の入出力命令の発
行方法。
18. The method according to claim 18, wherein, after initializing the driver unit, an input command sequence in which the input commands are connected for a predetermined maximum issuance number is created for each input / output device, and the adapter device is initialized. Issuing the command, recording the number of input commands issued to each input / output device, and each time a completion report of the input command is received from each of the input / output devices, the stored incomplete input command of the corresponding input / output device is stored. If the number of uncompleted input commands in the input / output device is reduced to a predetermined number or less 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 for issuing an input / output instruction according to claim 17, further comprising: re-issuing an input command sequence in which input commands are connected by the number of differences 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, and adds a plurality of pieces of communication protocol control information to the head of each of the divided output data to add a plurality of pieces of communication protocol control information. Performing a protocol process for generating a fragmented packet; and in the driver unit of the main processing device, the number of continuous transfers in which the number of the plurality of fragmented packets is the number of packets that can be continuously transferred at that time without confirmation of delivery from the other party. In the following cases, a plurality of input / output commands are created based on the plurality of fragmented packets, and the created plurality of input / output commands are issued as one input / output activation command, thereby Transferring the output data by one input / output operation.
6. The method for 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, and data management information blocks each pointing to the divided output data are created. Communication protocol control information that is to be logically added to the beginning of the output data, and that forms a logically divided packet with the communication protocol control information and the output data. A protocol processing step for creating data management information blocks each pointing to communication protocol control information; and for 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 By comparing the overhead required to process the command to be performed with the overhead required to copy the output data to an area continuous with the communication protocol control information, if the latter is smaller, the communication protocol control 17. The refilling step according to claim 15, further comprising the steps of: setting information and the output data in a continuous area; creating a data management information block pointing to the area; and passing the data management information block to the driver unit. The issuance method of the input / output instruction described in (1).
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 JPH0844652A (en) 1996-02-16
JP2901882B2 true 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)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434630B1 (en) * 1999-03-31 2002-08-13 Qlogic Corporation Host adapter for combining I/O completion reports and method of using the 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
JP6395203B2 (en) 2011-03-02 2018-09-26 日本電気株式会社 Data control system, data control method, and data control program
JP6323155B2 (en) * 2014-05-13 2018-05-16 株式会社ソシオネクスト Data processing apparatus and data processing apparatus control method

Also Published As

Publication number Publication date
JPH0844652A (en) 1996-02-16

Similar Documents

Publication Publication Date Title
US5860022A (en) Computer system and method of issuing input/output commands therefrom
JP3364572B2 (en) Data processing system having multi-path I / O request mechanism and queue status updating method
US7200695B2 (en) Method, system, and program for processing packets utilizing descriptors
EP0790562B1 (en) Computer system data I/O by reference among CPUs and I/O devices
JP3165022B2 (en) Computer system and message transfer method
JP3033935B2 (en) How to interface to adapter hardware
US6785760B2 (en) Performance of a PCI-X to infiniband bridge
JP2557199B2 (en) Interface system and method
EP0790564A2 (en) Computer system data I/O by reference among I/O devices and multiple memory units
EP0790563A2 (en) Computer system data I/O by reference among CPUs and multiple memory units
JPH0217818B2 (en)
US7460531B2 (en) Method, system, and program for constructing a packet
EP0789305A2 (en) Computer system data I/O by reference among multiple data sources and sinks
US6330625B1 (en) System for initiating multiple read operation requests to multiple copies of a data item and identifying a first one of the requests as having the fastest response time
JP2901882B2 (en) Computer system and method of issuing input / output instructions
JPH0844649A (en) Data processor
US7251248B2 (en) Connection device
US5931903A (en) Computer system data I/O by reference among multiple CPUS
JP3499938B2 (en) I / O device sharing system between multiple systems with different protocols
JPH05204816A (en) High-efficiency access method to storage data in connecting table
US6829652B1 (en) I2O ISM implementation for a san based storage subsystem
JPH08241262A (en) External storage extension system
EP1282287A2 (en) A connection device
JP2002351622A (en) Data transfer control method and external storage system using the same
JP2001005681A (en) Method and device for managing common resource and machine-readable recording medium recording program

Legal Events

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