JP3252517B2 - 入出力制御方法および入出力制御システム - Google Patents

入出力制御方法および入出力制御システム

Info

Publication number
JP3252517B2
JP3252517B2 JP04773193A JP4773193A JP3252517B2 JP 3252517 B2 JP3252517 B2 JP 3252517B2 JP 04773193 A JP04773193 A JP 04773193A JP 4773193 A JP4773193 A JP 4773193A JP 3252517 B2 JP3252517 B2 JP 3252517B2
Authority
JP
Japan
Prior art keywords
input
output
control
external storage
read
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
JP04773193A
Other languages
English (en)
Other versions
JPH0612359A (ja
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 JP04773193A priority Critical patent/JP3252517B2/ja
Publication of JPH0612359A publication Critical patent/JPH0612359A/ja
Application granted granted Critical
Publication of JP3252517B2 publication Critical patent/JP3252517B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はコンピュータシステムに
係り、特に高スループット、高速レスポンスの要求され
るデータ入出力制御方法及び入出力制御システムに関す
る。
【0002】
【従来の技術】一般に入出力制御装置は、中央処理装置
のような上位装置と磁気ディスク装置に代表される2次
記憶装置などのデバイスの中間に位置し、上位装置とデ
バイスとの間の入出力を非同期に行うことを主な目的と
している。すなわち、従来技術では、上位装置は、入出
力要求の内容を示す一組のチャネルコマンド語(チャネ
ルプログラムともいう)を主記憶装置に記憶し、さら
に、その入出力要求がデバイスへのデータの書き込みを
要求するときにはそのデータを主記憶装置内に記憶し、
その後その一組のチャネルコマンド語のアドレスその入
出力要求を入出力制御装置に送出していた。
【0003】入出力制御装置は、主記憶装置内に設けた
入出力要求キューにこの入出力要求を登録し、その後適
宜このキューから入出力要求を取り出して、デバイスに
転送していた。この入出力制御装置により上位装置は、
デバイスの入出力処理完了を待つことなく他の処理を実
行し続けることができる。
【0004】入出力制御装置とデバイスの間は、複数の
チャネルパスで接続されており、入出力制御装置とデバ
イス間で転送される入出力コマンドやデータは、このチ
ャネルパスを介して転送される。チャネルパスとデバイ
スとは、1対1、1対多、多対1の接続形態で接続可能
である。また、入出力制御装置は同時に複数の入出力要
求を処理することができる。こういった状況では、上位
装置が入出力要求を発行してもチャネルパスが使用中の
ためコマンドやデータの転送ができないことがありう
る。この問題の対策として、従来技術装置では、例えば
特開昭60−183660号公報に記載されていよう
に、上位装置から転送された入力要求を入力要求キュー
に登録したときに、その入力要求が使用可能なチャネル
パスが空き状態にあるかを判別し、そのパスが空きであ
れば、その入力キューからそのパスを使用する一つの入
出力要求を取り出し、処理していた。あるいは、いずれ
かの現在使用のチャネルパスが空き状態になったとき
も、同様のことをしていた。
【0005】入出力制御装置が一つの入出力要求を処理
するには、その空き状態となったチャネルパスを使用す
る一つの入出力要求を、上記にキューから取り出した
後、(1)その入出力要求が指定するアドレスに基づい
てチャネルプログラム内の一つのチャネルコマンド語を
読み出し、(2)それをディスク制御装置に転送し、
(3)そのコマンド語の実行終了がディスク制御装置か
ら通知されるごとに上記(1)(2)を繰り返してい
た。
【0006】このような処理により、その一組のチャネ
ルコマンド語が全て実行されたときに、その入出力制御
装置によるその入出力要求の実行が終了する。
【0007】従来技術では、以上の動作を、上位装置か
ら新たな入出力要求が入力されるごとに、あるいは一つ
のチャネルパスが空き状態になるごとに実施していた。
【0008】(4)さらに、その入出力要求がデータの
書き込み要求であるときには、その一組のチャネルコマ
ンド語の一つより指定された主記憶アドレスを用いて、
主記憶装置から書き込みデータを入出力制御装置内のバ
ッファに読み出し、その後、そのデータをディスク制御
装置へ転送していた。
【0009】
【発明が解決しようとする課題】上記、従来方式ではキ
ューから一つづつ入出力要求の取り出しを行っては、そ
れを処理している。したがって、一つ一つの入出力要求
の処理に、いろいろのオーバヘッドがかかることにな
る。
【0010】これらのオーバヘッドをさらに具体的に説
明する。オーバヘッドは大きく分けると二つの種類があ
る。
【0011】一つは、主記憶装置内に格納されているチ
ャネルコマンド語やデータ等の取り出しオーバヘッドで
ある。入出力プロセッサが入出力の実行を行なう際、ユ
ーザあるいはオペレーティングシステムが主記憶装置内
に格納した、入出力コマンドやデータを入出力プロセッ
サ内に取り込む必要がある。さらに具体的には、以下の
通りである。以下の処理は、複数のチャネルコマンド語
で構成された一つの入出力要求を、入出力要求が存在す
る限り繰り返し実行する動作を示している。
【0012】(1)入出力要求の有無判定 (2)入出力構求の取り出し (3)取り出した入出力要求の無効化 (4)入出力要求からチャネルコマンドが格納されてい
る主記憶装置アドレスを抽出 (5)主記憶装置からチャネルコマンド語を一つ取り出
し (6)一つの入出力要求が終了するまで、(5)を繰り
返す (7)次の入出力要求を処理するため(1)に戻る 上記処理は、複数のマイクロプログラムモジュールから
構成されている。従って、入出力処理の実行には、多数
のマイクロプログラムモジュール渡り、時には複数のマ
イクロプセッサを渡った処理も必要になる。これらの処
理が、性能低下要因の一つとなる。
【0013】オーバヘッドの二つ目は、入出力プロセッ
サからディスク制御装置へコマンドやデータを転送する
際に生じるオーバヘッドである。具体的には、以下の通
りであり、上記(5)と(6)の間で実行される処理で
ある。
【0014】(a)主記憶装置から取り出したチャネル
コマンドを解析 (b)ティスク制御装置に対するコマンドか入出力プロ
セッサに対するコマンドかを判定し、ディスク制御装置
に対するコマンドであれば、コマンドを指定されたディ
スク制御装置へ転送 (c)入出力プロセッサに対するコマンドであればそれ
を実行 (d)一つの入出力要求が終了するまで、(a)から
(c)を繰り返す これらは主に、入出力プロセッサがディスク制御と同期
的に処理を行なっているために生じるオーバヘッドであ
る。ディスク制御装置はSEEK、SEARCH、RE
AD/WRITEといった一連の処理を行なうが、入出
力プロセッサからはこれらのコマンドを一つずつディス
ク制御装置に転送している。ところが、前記SEARC
Hコマンドは、ディスクヘッドが所定の一に到着したか
どうかを判定する処理であるが、入出力プロセッサは本
コマンドをディスク制御装置に転送してしまうと、次の
チャネルコマンドの実行を開始してしまうためこのまま
では正常な動作をしない。つまり、この時点で次のRE
AD/WRITEコマンドを実行してしまうと、現在の
ディスクヘッドの位置に対してREAD/WEITを実
行してしまうため、不当なデータを読み書きしてしま
う。そこで、TICコマンドをSEARCHコマンドと
READ/WRITEコマンドの間に置き、SEARC
Hコマンドにより目的のデータが存在する位置はディス
クが到着するまで、SEARCHコマンドを実行し続け
る処理が必要になる。この間、入出力プロセッサは本来
ディスク制御装置へのコマンドとは直接関係のない、入
出力プロセッサ専用のチャネルコマンドを実行しなけれ
ばならない。
【0015】従来方式は制御が容易である点や、比較的
低負荷環境での性能には大きく響かないこと等の利点が
ある。ところが、チャネルパス転送が高速になってくる
と、前記オーバヘッドの割合が相対的に大きくなってく
る。例えば、 従来チャネルパス転送時間:1m秒 オーバヘッド0.
5m秒 と仮定するとオーバヘッド比率は33%である。しか
し、オーバヘッドが一定でチャネルパス転送速度が1桁
向上した場合には、同じデータ長のデータを転送した場
合であっても、 高速チャネルパス転送時間:0.1m秒 オーバヘッド
0.5m秒 となりオーバヘッド比率は83%にもなる。つまりチャ
ネルパス転送時間が短くなってくるに従って、チャネル
パス使用時間のほとんどがオーバヘッド時間ということ
になる。
【0016】また、デバイスに接続するチャネルパス数
はできるだけ少なくしたほうが、運用が容易であり、デ
バイスの増設が柔軟にできるメリットがある。こういっ
たメリットを要求するユーザ環境では、キューイングさ
れる入出力要求の個数が多くなり、上記問題が一層、顕
著化することになる。
【0017】本発明の一つの目的は、入出力制御装置と
外部記憶制御装置との間のコマンド転送に伴うオーバヘ
ッドを減少させる入出力制御方法及び入出力制御システ
ムを提供するにある。
【0018】本発明の別の目的は個々のコマンドを主記
憶装置から読み出すことに伴う入出力制御方法及び入出
力制御システムを提供するにある。
【0019】
【課題を解決するための手段】本発明によれば、上位装
置から発行された外部記憶装置への複数の異なる出力要
求が指定するチャネルプログラムを読み出し、上記外部
記憶制御装置に送出する。
【0020】上記外部記憶制御装置ではそのチャネルプ
ログラムを記憶し、そのプログラムに含まれるコマンド
を外部記憶制御装置の制御下で実行して行く。本発明の
より望ましい態様では、複数のチャネルプログラムをま
とめて、入出力制御装置から外部記憶制御装置に転送す
る。
【0021】
【作用】この様に、本発明の一例においてはチャネルプ
ログラムの実行を外部記憶制御装置において制御するの
で、従来必要であった入出力制御装置と外部記憶制御装
置のコマンド転送に伴うオーバヘッドが最小に抑えられ
高スループットが得られる。
【0022】さらに、同一のチャネルプログラムに属す
る複数のコマンドがあらかじめまとめて取り出されるの
で、従来のごとく、逐次これらを取り出す場合に比べ
て、コマンド読み出しに伴うオーバヘッドが減少する。
【0023】さらに、複数のチャネルプログラムをまと
めて主記憶より取り出し、ディスク制御装置に転送した
場合には、コマンド読み出しオーバヘッドおよび転送オ
ーバヘッドがさらに減る。
【0024】
【実施例】以下、図面を用い本発明によるデータ入出力
制御方法について詳細に説明する。
【0025】(実施例1)図1は、本発明を適用した入
出力サブシステムの一実施例の全体構成を示すブロック
図である。入出力サブシステムは、主に入出力制御装置
あるいは入出力プロセッサ101、外部記憶制御装置あ
るいはディスク制御装置131、外部記憶装置、例えば
ディスク装置132、および主記憶装置121から構成
される。本発明よる入出力サブシステムは、上位装置
(図示せず)から入出力要求130が発行されると、入
出力プロセッサ101で入出力要求受付処理などを行な
い、その後、主記憶装置120とディスク制御装置13
1との間でデータ転送を行うことで入出力が達成され
る。入出力プロセッサ101は、入出力制御プロセッサ
102と複数のチャネル制御プロセッサ(またはチャネ
ル装置)108から構成される、入出力要求を発行した
上位装置とは独立して動作し、上位装置からの入出力要
求に従って、ディスク装置132等と記憶装置121と
の間で転送されるデータの入出力制御を行う。入出力プ
ロセッサ101とディスク制御装置131とは複数のチ
ャネルパス142により接続され、各チャネル制御プロ
セッサ108は、それぞれ一つのチャネルパスを介して
ディスク制御装置131に接続されている。入出力要求
制御プロセッサ102は、主記憶装置121とのデータ
転送制御を行う主記憶転送制御部134と制御プロセッ
サ136とメモリ138から構成される。メモリ138
には、例えばチャネルパス制御テーブル103や複数の
マイクロプログラム1060が格納されている。制御プ
ロセッサ136はメモリ138に格納されているマイク
ロプログラム1060を実行し、また制御テーブル10
3の参照更新を行いながら入出力要求130の受付制御
等を行う。チャネル制御プロセッサ108は、主記憶転
送制御部135と制御プロセッサ137とメモリ139
から構成される。これらのチャネル制御プロセッサ10
8は、ディスク制御装置131とのデータ転送を行う。
メモリ139にはコマンドやデータを一時的に格納する
ためのコマンド/データバッファ113や複数のマイク
ロプログラム1090等が格納されている。ディスク制
御装置131は、それぞれ制御プロセッサ140とメモ
リ141などで構成される複数のディスク制御プロセッ
サ133から成る。各ディスク制御プロセッサ133
は、入出力プロセッサ101に複数のチャネルパス14
2を介して接続され、入出力プロセッサ101から転送
されたコマンドを解析し、nコ(n:2以上の整数)の
ディスク装置132(132−1〜132−n)に対し
てディスク入出力を行ったりする。メモリ141内に
は、入出力プロセッサ101から転送されたコマンドや
データを一時保存するためのコマンド/データキュー1
15やチャネルパス制御テーブル103’,ディスク制
御テーブル118、複数のマイクロプログラム106
0’などが格納されている。
【0026】次に、図2は、図1の各制御プロセッサ1
36,137,140で実行されるマイクロプログラム
群を示す。入出力要求プロセッサ101内の制御プロセ
ッサ106は、チャネルパス選択/入出力要求登録部1
04、一括制御部106、チャネルビジー検出部10
5、入出力要求一括フェッチ部107といったマイクロ
プログラムを実行する。各チャネル制御プロセッサ10
8内の制御プロセッサ137はコマンド一括フェッチ部
109、データ一括転送部110、入出力要求解析部1
11、データ転送制御部112といったマイクロプログ
ラムを実行する。ディスク制御装置131内の制御プロ
セッサ140は、一括制御部106’、データ転送制御
部114、コマンド処理部117、チャネルビジー検出
部105’というマイクロプログラムを実行する。
【0027】また、主記憶装置121内には上位装置
(図示せず)から転送された入出力要求130を保持す
るための複数の入出力要求キュー122と、入出力要求
キュー122からポイントされるチャネルプログラム1
23,124,125の格納領域、およびそれぞれのチ
ャネルプログラムに付随するデータを格納するデータエ
リア126,127,128が確保されている。各チャ
ネルプログムは複数のチャネルコマンド語からなる。
【0028】まず、本実施例における入出力処理の概略
について説明する。図3は、入出力プロセッサ101内
の処理フローを示したものである。
【0029】まず、上位装置から発行された入出力要求
130は、入出力要求制御プログラム102で、受付け
られ(ステップ204)、次に、受け付けた入出力要求
130の内容からどのチャネルパス142を経由してデ
ータ転送を行うか判別する(ステップ205)。この判
別は、チャネルパス制御テーブル103をサーチするこ
とで行われる。その後、ステップ206で受付けた入出
力要求130を入出力要求キュー122の一つに登録す
る。次に、入出力要求制御プロセッサ102はステップ
205で選択されたチャネパスが、現在他のデータ転送
で使用中であるかどうか検出し(ステップ207)、他
のデータ転送で使用中(ビジー)であればそのデータ転
送が終了するのを待つ(ステップ210)。このパス空
き完了待ちは、そのチャネルパスにおけるデータ転送が
終了し、パス空き報告を受けた時点で解析され、ステッ
プ207においてチャネルパスがビジーでなければステ
ップ208に進む。ステップ208では、入出力要求キ
ュー122内に同じパスを使用する入出力要求の待ちが
既に存在しているかどうか判定し、待ちがなければ、登
録待ちによりキュー登録が行われるのを待つことになる
(ステップ209)。次に入出力制御プロセッサパス
は、ステップ208において、そのチャネルパスを使用
する入出力命令が登録ずみであるとき、ステップ211
で、入出力要求キュー122内に登録された入出力要求
の内、空き状態にあるチャネルパスを使用する複数の入
出力要求を取り出し、次のステップ212ではそれぞれ
の入出力要求に対応したコマンドあるいはデータをまと
めて、主記憶装置から読み出し、まとめにしてディスク
制御装置131に転送する。ディスク制御装置131で
は、これらのコマンドとデータをキューに保持し、コマ
ンド処理部117により、それぞれのコマンドを適当な
タイミングより実行する。本実施例において従来と大き
くことなるところは、いずれかのチャネルパスが空き状
態になっているとき、そのパスを使用する複数の入出力
要求とそれが指定する複数のチャネルプログラムとそれ
らの中の一部又は全部が指定する書き込みデータをまと
めて取り出す点およびそれらをディスク制御装置131
にそのチャネルパスを使用してまとめて転送し、ディス
ク制御装置131において、それらのコマンドの実行タ
イミングを決定するようにした点である。これにより、
チャネルプログラム、データの読み出しに伴なうオーバ
ヘッド、各チャネル制御プロセッサとディスク制御装置
の間のチャネルコマンド語とデータの転送に伴うオーバ
ヘッドなどを削減でき、高スループットを実現すること
ができる。
【0030】以下、本実施例についてさらに詳細に説明
する。
【0031】まず、本実施例において上位装置から発行
される入出力要求について、図4を用いて説明する。
【0032】図4はデバイス内に格納されたファイルの
入出力を行うプログラムの一例301と、ファイル入出
力を受けて実際にデバイスに対して入出力を行うため
の、上位装置(図示せず)で実行されるオペレーテイン
グシステムの動作(302〜304)の概略を示したも
のである。入出力プログラム301は、一般的なファイ
ル入出力プログラムを記述したものである。ファイル入
出力はREAD部分で行われ、その前後に入出力を行う
ための前後処理(OPEN/CLOSE)が含まれる。
READ部分では、パラメタとしてデータを格納したデ
ータエリアやその他の情報が指定される。入出力プログ
ラム301のREAD部分を受けてオペレーティングシ
ステムが起動される。ステップ302ではチャネルプロ
グラム語を作成する。チャネルプログムは入出力プロセ
ッサ101に要求する動作が前述されたチャネルコマン
ド語の並びで、この中にはディスクに対する入出力要求
などが格納されている。ステップ303では、チャネル
プログラムの実行を入出力プロセッサに依頼する入出力
要求を発行する。このとき、入出力要求は、パラメタと
して入出力動作を行うべきデバイスの識別子や入出力要
求ブロックアドレスを指定する。実行すべてチャネルプ
ログラムが格納されたアドレスは、入出力要求ブロック
アドレスから知ることができる。そして、ステップ30
4では入出力処理が完了するを待つ。入出力処理の完了
は入出力プロセッサ101から上位装置に対して割り込
みを返すことで実現される。この割り込みにより入出力
完了待ちが解除され、入出力プログラム301の処理が
継続される。
【0033】入出力プロセッサと上位装置とのインタフ
ェースプログラムであるチャネルプログラムの例を図
5,6に示す。
【0034】図5,6は、入出力処理に用いられるチャ
ネルプログラムを2種類示している。図5(A),
(B)にそれぞれ示す第1のタイプのチャネルプログラ
ムは、ディスクヘッドの制御をコマンドで行う形式で、
401〜408はREAD処理、409〜416はWR
ITE処理のチャネルプログラムを示している。SEE
K(401)はディスクの目的レコードへシリンダヘッ
ドの位置付けを行うためのものであり、SET SEC
TOR(402)は目的レコードのセクタへシリンダへ
ッドの位置付けを行うためのものである。SEARCH
ID EQUAL(403)は、目的レコードの確認
を行う命令であり、TIC(404)は、通常、SEA
RCH ID EQUAL(403)へのジャンプ動作
を意味する。SARCH ID EQUAL(403)
とTIC(404)とは対になっており、条件が成立
し、目的レコードが確認されるまでSEARCH ID
EEQUAL(403)を繰り返し実施する。SEA
RCH ID EQUAL(403)において条件が成
立する(目的レコード位置に達する)とTIC(40
4)はステップされREAD(405)へ制御が移行す
る。READ(405)は、現在のディスクヘッド位置
からデータ長(406)で示される長さのデータ読みだ
しを意味する。読みだされたデータは主記憶アドレス
(407)で示されるメモリ内に格納される。WRIT
E処理(409〜416)もREAD(405)がRI
TE(403)に変更され、主記憶アドレスが書き込み
データの格納エリアを示すアドレスに変更されるだけで
他の形式は同様である。
【0035】ただし、動作はREAD時はチャネルプロ
グラム(401−407)が指定するデータエリア(4
08)に結果が格納されるのに対し、WRITE時は上
位装置がデータエリア(416)にデータを格納した後
にチャネルプログラム(409〜415)の実行を開始
する。
【0036】図6(A),(B)にそれぞれ示す第2の
タイプのチヤネルプログラムは、第1のタイプのチャネ
ルプログラと異なり、シンプルな形式である。第1のタ
イプのチャネルプログラムがディスクヘッドの制御をチ
ャネルプログラム内(401〜407,409〜40
5)で行っているのに対し、第2のタイプのチャネルコ
マンド語はディスクに対する要求(READ,WRIT
E)と目的レコード位置を指定するだけで、SEEK,
SET SECTOR,SEARCH IR EQUA
L,TICといった一連の制御をディスク制御装置(1
31)が行う。417〜420はREAD動作を行うチ
ャネルプログラムであり、422〜425はWRITE
動作を行うチャネルプログラムである。
【0037】本実施例では上記2つのタイプのチャネル
プログラムに対しても適用可能である。
【0038】図7にはディスク装置接続構成例の概略図
を示す。入出力プロセッサ101内にはチャネル制御プ
ロセッサ108が複数存在し、それぞれは一つのチャネ
ルパスに対応している。本実施例では、チャネルパス1
〜4があると仮定する。ディスク制御装置131には複
数のディスク装置132が接続される。これらディスク
装置132に対して入出力要求を発行するソフトウェア
からは、一般的にはそれぞれのディスク装置132に対
応するシテム内でユニークな名称、例えば、VOL1〜
VOL4を指定して入出力を行う。図7ではVOL1と
VOL2に対しては、チャネルパス1とチャネルパス2
のいずれかを介してデータ入出力が行なわれる。同じよ
うにVOL3とVOL4に対しては、チャネルパス3あ
るいはチャネルパス4のいずれかを介してデータ入出力
が行われる。通常はデータ転送を行ってないチャネルパ
ス(空きパス)を介して入出力が行われる。このよう
に、複数のチャネルパスを同一ディスクに接続すること
でスループットを上げることができる。
【0039】次に、入出力プロセッサが使用する主要な
リソースについて説明する。本発明で使用する重要なリ
ソースは図1に示す入出力要求キュー122とチャネル
パス制御テーブル103である。チャネルパス制御テー
ブル103は図7で説明した複数のチャネル制御プロセ
ッサ108を管理するために用いられる。また、入出力
要求キュー122は、上位装置から送られてくる入出力
要求を一時的に待たせるために使用する。
【0040】まず、図8を用いてチャネルパス制御テー
ブル103の構造を説明する。チャネルパス制御テーブ
ル103は、各デバイスに対するデバイス識別子60
1、各デバイスに対する入出力要求を保持している入出
力要求キューの識別子602それぞれの入出力要求キュ
ーに登録されている待ち入出力要求数603、各デバイ
スをアクセスするのに現在使用可能チャネル番号(つま
り、チャネル制御プロセッサの番号)4、およびチャネ
ル装置ステータス605を格納するフィールドを有して
いる。
【0041】通常、デバイス識別子601は、個々の入
出力デバイスを識別するために、システム構築時にデバ
イスごとにシステム管理者が設定する値である。この値
は、システム内でユニークであり、異なるデバイスに対
して同じデバイス識別子が設定されることはない。した
がって、デバイス識別子が指定されると、それに対応す
るデバイスが一意に決定することになる。この値はソフ
トウェアから入出力プロセッサ101に対して入出力要
求を発行するときにも指定される。
【0042】入出力要求キュー識別子602は、複数存
在する入出力要求キュー122を識別するためのもので
ある。入出力要求キュー122は、基本的にはどういう
単位に持っていてもかまわない。入出力要求キュー12
2は構造、および保持単位についてはあとで詳細に説明
する。フィールド603は入出力要求キュー122ごと
にどのくらいの入出力要求が待ち入出力要求として登録
されているかを示す値である。フィールド604は、利
用可能チャネル装置を示し、図7で説明したように一つ
のデバイスに対応して複数のチャネルパスが割り当てら
れる。ここで利用可能チャネルパスとは、空き状態であ
ればデータ転送を行ってもよいチャネルパスを示す。こ
の利用可能チャネルパス(利用可能チャネル装置)は、
システムの構築時に管理者が設定する。例えば、管理者
は負荷の高そうなディスク装置が接続されたディスク制
御装置に対してより多くのパスを接続するのが一般的で
ある。チャネル装置ステータスフィールド605は、チ
ャネルパスが使用中かどうかを示している。図中“BU
SY”は、目的のチャネルパスが現在、他の入出力要求
の処理に使用されていることを示し、“FREE”は使
用されていないことを示している。例えば、デバイス識
別子“10”で識別されるディスク装置132には3つ
のチャネルパス(チャネル装置:“1”、“2”、“1
0”)が割り当てられており、そのうちチャネル装置
“2”と“10”のチャネルパスは現在使用中であるこ
とを示している。また、入出力要求キュー122は識別
子“1”で一括管理されており、要求待ちの入出力要求
数は5である。入出力要求キュー122の別な割り当て
方として、デバイス識別子“20”で識別されるディス
ク装置132のように、2つの入出力要求キュー122
(入出力要求キュー識別子:“2”、“3”)が割り当
てられているケースもある。これは、チャネル装置10
8ごとに入出力要求キュー122を持っていることを示
している。
【0043】次に、図9を用いて入出力要求キュー12
2に保持される入出力要求を説明する。ここでは、入出
力要求キュー識別子“1”で示される入出力要求キュー
122を例に説明する。各入出力要求は、4つのフィー
ルド701〜704を有する。
【0044】フィールド701は各入出力要求が指定す
るチャネルプログラム123,124又は125(図
1)の先頭アドレスを保持する。フィールド702は、
各入出力要求が使用するデバイスの識別子を保持する。
フィールド703は、各入出力要求で転送されるデータ
のデータ長をしめす。フィールド704は、各入出力要
求の種類を示し、例えば、デバイスから主記憶装置への
データ転送を示す“READ”、その逆に主記謀装置か
らデバイスへのデータ転送を示す“WRITE”などが
ある。図9に示すように、入出力要求キュー122は複
数存在する。また、入出力要求キュー122は、チャネ
ルパス制御テーブル103から入出力要求キュー識別子
を介して関連付けられている。なお、本実施例では入出
力要求キュー122は、主記憶装置121上に置かれる
が、可能であれば、入出力プロセッサ101内に配置し
た方が、処理性能を向上することができる。
【0045】次に、図10を用いて入出力要求キュー1
22の管理単位について説明する。
【0046】入出力要求キュー122は任意の単位に設
定することができる。基本的には、アクセス頻度が高く
性能上ネックになる可能性が高い箇所ごとに配置するこ
とが望ましい。図10(A)に示す配置1は、一例とし
て2台のディスク制御装置131a,131bのそれぞ
れに対応して入出力要求キュー122a、および122
bを設けている。このような配置が有効なケースとして
は、各ディスク制御装置131a,131bが多数のデ
ィスク装置を管理している場合が考えられる。
【0047】図10(B)に示す配置2は、ディスク装
置ごとに入出力要求キュー122c、122d配置した
ものを示している。配置2では配置1と異なり、ディス
ク制御装置131の数に関係なく各ディスク装置ごとに
入出力要求キューを設けている。このような入出力要求
キューの管理単位は、高頻度でアクセスを行なうことの
できるデバイスを用いる場合に有効である。例えば、デ
ィスクアレイ装置132′のようにソフトウェアからは
論理的に一つのディスク装置に見えるが、装置内部では
複数のディスク装置815,816,817に対して同
時にアクセス可能なデバイス、あるいは半導体メモリ等
で構成された非常に高速なレスポンスが期待できるデバ
イスなどが考えられる。
【0048】図10(c)に示す配置3はチャネルパス
ごとに入出力要求キュー122e,122fを配置した
ものである。このような配置は、少ない本数の入出力パ
スを用い高頻度で入出力要求処理しなければならないと
きや、高速なチャネルを用いて短いデータを効率よく処
理しようとするときに有効である。
【0049】本発明は以上のいろいろの配置に対しても
適用可能であるが、以下では、高速化のために、上記配
置3を使用していると仮定する。
【0050】次に、入出力プロセッサ101内の制御プ
ロセッサ136の動作を、上記リソースを利用しながら
説明する。図11はチャネルパス選択/入出力要求登録
部104における処理のフローを示したものである。上
位装置より入出力要求130が送られてくると、制御プ
ロセッサ136は、まず、この処理を起動し、その要求
を受付ける(ステップ901)。チャネルパス選択/入
出力要求登録部104は、入出力要求130を受付ける
と、チャネルパス制御テーブル103内のステータスフ
ィールド605をサーチし、その入出力要求が指定する
デバイス識別子に対応する利用可能チャネル装置108
が現在使用可能かどうか調べる(ステップ902)。な
お、チャネルビジー検出部105は、チャネル制御プロ
セッサ108の動作を常時監視して、このテーブル10
3内のステータスフィールドを更新するようになってい
る。ステップ402の調査の結果、チャネル装置ステー
タスが“FREE(空き)”のチャネル装置108があ
れば、それに対応する入出力要求キュー122を選択す
る。チャネル装置ステータスが“FREE”のチャネル
装置108がない場合には、入出力要求130の待ち数
がより少ないチャネルパスに対応する入出力要求キュー
識別子を選択する。待ち要求数は同じく図8の待ち要求
数フィールド603を参照することで得ることができ
る。ただし、入出力要求130の待ち数による選択は、
受付けられた入出力要求が指定するデバイスに対し複数
の入出力要求キュー122を割り当てている場合のみ可
能で、そうでない場合には入出力要求130の待ち数に
よる選択は必要はない。ステップ904では、ステップ
903で得られた入出力要求キュー識別子に対応する入
出力要求キュー122へ、デバイス識別子、チャネルコ
マンド語先頭アドレス、転送データ長、要求種類を登録
する。その後、チャネルパス制御テーブル103の待ち
要求数フィールド603の値をインクリメントし(ステ
ップ905)、一括制御部106に対し起動要求を行な
う(ステップ906)。この際、新たに登録した入出力
要求を一括制御部に通知する。
【0051】一括制御部106における処理は、本発明
の特徴の一つであり、以下これについて図12を参照し
て説明する。
【0052】一括制御部106の起動契機は、2種類あ
る。ひとつは先に述べたチャネルパス選択/入出力要求
登録処理部104からの起動要求、もう一つはチャネル
制御プロセッサ108で実行されるデータ転送処理部1
12からの起動要求である。
【0053】チャネルパス選択/入出力要求登録部10
4からの起動要求を受けると(ステップ1001)、一
括制御部106は、チャネルビジー検出部105に対し
チャネルパスの使用可否を問いあわせる(ステップ10
2)。ここで、チャネルビジー検出部105では、チャ
ネルパス制御テーブル103を参照し、受け付けられた
入出力要求で指定されたデバイス識別子に対応するチャ
ネルパス142が使用可能かどうかを検出する。そし
て、その結果を一括制御部106に報告する。次に、一
括制御部106は、該当するチャネルパス140が“B
USY”であれば処理を終了し、“FREE”である場
合には次のステップに移る(ステップ1003)。ステ
ップ1003において該当するチャネルパス140が
“FREE”であったならば、一括制御部106は、チ
ャネルパス制御テーブル103をサーチして、そのチャ
ネルパスを使用するデバイスに対する入出力装置要求を
保持している入出力要求キューの識別子得る(ステップ
1004)。ステップ1005では、入出力要求一括フ
ェッチ処理部107に対して、先に得た入出力要求キュ
ー識別子に対応する特定の入出力要求キュー122に登
録されているそのチャネルパスを使用するデバイスに対
する全ての入出力要求の取り出しを指示する(ステップ
1005)。本実施例で仮定しているように、各入出力
要求キューが一つのチャネルパスに対応して設けられて
いる場合には、ステップ1004で得た入出力要求キュ
ー識別子を有する入出力キューに登録されている全ての
入出力要求の取り出しを要求すればよい。そして、チャ
ネルパス制御テーブル103の対応する待ち要求数フィ
ールド603にゼロをセットし、またチャネル装置ステ
ータスフィールド605を“FREE”から“BUS
Y”にする(ステップ1006)。その後、入出力要求
一括フェッチ処理部107は、その特定の入出力要求キ
ューに登録された複数の入出力要求を取り出し、一括制
御部106は、これらの取り出された複数の入出力要求
を、そのチャネルパスに対して設けられたチャネル制御
プロセッサ108の入出力要求解析部111へ送る(ス
テップ1007)。具体的には、一括制御部106は、
それぞれの入出力要求として、図9に示すように、チャ
ネルプログラム先頭アドレスその他の情報を送る。
【0054】一括制御部106に対するもう一つの起動
である、いずれかのチャネル制御プロセッサのデータ転
送制御部112からの起動要求は、いずれかのチャネル
パスにおけるデータ転送が終了した時点で発生する。こ
のとき、一括制御部106には、情報として、どのチャ
ネルパスのデータ転送が終了したのかという情報が送ら
れる。ステップ1008でデータ転送制御部112から
の起動要求を受けると、一括制御部106は、この情報
を元にチャネルパス制御テーブル103をサーチし、該
当するチャネルパスへのデータ転送を待っている入出力
要求があるかどうか調べ、その結果データ転送を待って
いる入出力要求の待ちがなければ処理は終了し、そうで
なければステップ1002に移り、前述と同じ処理を行
う(ステップ1009)。
【0055】チャネル制御プロセッサ108の入出力要
求解析部111は、一括制御部106から送られてきた
複数の入出力要求の解析を行ない、それらがデバイスに
対するデータ読み出し要求かデータ書き込み要求かを判
別する。これらの判定は、入出力要求キュー122内の
要求種類704(図9)のフィールドを参照することに
より行なわれる。その後、コマンド一括フェッチ部10
9を起動し、それらの入出力要求が指定するチャネルプ
ログラムのフェッチを行う。一括制御部106から送ら
れてくる複数の入出力要求は、それぞれが使用するチャ
ネルプログラムの先頭アドレスを保持しており、コマン
ド一括フェッチ部109では、これらの先頭アドレスを
用いて主記憶装置121からこれらの入出力要求が指定
する複数のチャネルプログラム123,124又は12
5を順次読みだし、コマンド/データバッファ113に
転送する。その後、入出力要求制御部111は、データ
一括転送部110を起動し、コマンド一括フェッチ部1
09により取り出されたチャネルプログラム内のコマン
ドが指定する主記憶アドレスに基づいて書き込みデータ
を主記憶から読み出し、コマンド/データバッファ11
3に取り込む。データの書き込みを要求する入出力要求
が複数あるときには、順次それらの入出力要求が指定す
る書き込みデータを主記憶装置121から読み出す。
【0056】このようにして読み出された複数のチャネ
ルプログラムと書き込みデータが図16に示すようにコ
マンド/データバッファ113に記憶される。簡単化の
ために図ではチャネルプログラムをコマンドとして示
し、書き込みデータはデータとして示してある。具体的
には、各入出力要求に対する、チャネルプログラムに続
いて、その入出力要求がデータ書き込みを要求するとき
には、書き込みデータが記憶される。コマンド/データ
1405,1408はそのようなプログラムあるいはプ
ログラムと書き込みデータの組の例である。各コマンド
/データ1405又は1408の前には、コマンド識別
子1403又は1406、コマンド/データ長1404
又は1407が付加される。コマンド識別子1403又
は1406にはそれに続いて記憶されるチャネルプログ
ラムで制御されるデバイスを識別子を用いる。コマンド
/データ長は、それに続くチャネルプログラムあるいは
それと書き込みデータとの組のデータ長である。このよ
うな複数の入出力要求に対する複数組のデータの前に、
ヘッダとして、データ識別子1401、総転送データ長
1402が付加される。データ識別子1401は、本実
施例では前述の複数の入出力要求を取り出した入出力要
求キューの識別子を用いる。これらのデータ識別子14
01、総転送データ長、コマンド識別子1403,14
06、コマンド/データ長は、入出力要求制御部111
により書き込まれる。
【0057】このように、本実施例では、複数の入出力
要求の群に対して入出力要求部111、コマンド一括フ
ェッチ部109、データ一括転送部119が起動される
ので、これらのマイクロプログラムの起動、終了のオー
バヘッドが少ない。
【0058】従来とは異なり、複数のコマンドやそれに
付随するデータを取り込む必要があることから、コマン
ド/データバッファ113の容量は従来より大きくする
必要がある。この容量は、入出力要求キュー122の個
数と、入出力要求の入出力要求キュー122毎の平均キ
ューイング長と、一つの入出力要求の平均データ長の積
で求めた値が望ましいが、入出力プロセッサの実装など
の関係から、それよりも少ない容量のメモリ量しか持て
ない可能性がある。その場合には、入出力要求キュー1
22内の全ての要求をコマンド/データバッファ113
に格納することができないケースがある。こういった場
合は、コマンド/データバッファ113の空き領域に格
納できる限りの入出力要求を取り込む制御を設ければよ
い。これらの制御は、コマンド一括フェッチ部109あ
るいはデータ一括転送部110の実行時に、格納できな
かった入出力要求を入出力要求キュー122に戻すこと
で達成される。この際、既に所定の入出力要求キュー1
22に新たな入出力要求が格納されている可能性もある
ため、入出力要求キュー122の最も先頭(次に最も早
く取り出される位置)にキューイングすることで、入出
力の順番を保つことができる。また、チャネルパス制御
テーブル103の待ち要求数フィールド603の値に、
前記格納できなかった入出力要求数を加える必要があ
る。さらに、コマンド/データバッファ113に格納さ
れた複数の入出力要求がコマンド/データバッファ11
3のどの位置に格納されたかを認識しておく必要があ
る。このために、一括制御部106が入出力要求キュー
122から取り出したデータフィールド内に格納されて
いるチャネルコマンド語先頭アドレス701、コマンド
/データバッファ113内のアドレスに置き換えること
で実現可能となる。この情報は、ディスク制御装置13
1にコマンドやデータを正常に転送し終わるまで保存/
管理しているため可能となる。さらには、複数のコマン
ドやデータや一括してディスク制御装置131に転送す
ることから、ディスク制御装置131内のキュー116
の容量の関係で格納できないケースにも使用できる。つ
まり、ディスク制御装置131内のキュー116の容量
は有限であることから、キューイングできるコマンドや
データの数にも限りがある。この時、ディスク制御装置
131から格納できないコマンドを通知することで、デ
ィスク制御装置131内のキュー116に格納できなか
ったコマンドだけを入出力要求キュー122に再登録す
ることができるようになる。
【0059】さて、コマンド/データバッファ113へ
の複数のチャネルプログラムおよび書き込みデータの転
送が終了すると、チャネル制御プロセッサ108は、デ
ータ転送制御部112を起動する。データ転送制御部1
12は、このようにしてコマンド/データバッファ11
3に格納された1401〜1408の各部からなるデー
タをディスク制御装置131内のデータ転送制御部11
4に対して、チャネルパス群142の内、そのデータ転
送制御部112が属するチャネル制御プロセッサ108
−iに接続されたチャネルパスを介して一つの転送デー
タとして送信する。ディスク制御装置131との間での
コマンド/データ転送が終了すると、データ転送制御部
112は、一括制御部106に転送に使用したチャネル
制御プロセッサ108のチャネル装置番号とともに終了
を通知する。
【0060】ディスク制御装置131の一括制御部10
6′、およびチャネルビジー検出部105′では、それ
ぞれ、入出力プロセッサ101内の一括制御部106、
およびチャネルビジー検出部105と同様の処理が行な
われる。また、チャネルパス制御テーブル103′は、
チャネルパス制御テーブル103と同じ内容を有する。
コマンド/データキューは2種類あり、コマンド/デー
タキュー116は、複数に設けられ、入出力プロセッサ
101からの起動要求時に用いられ、入出力プロセッサ
101から一括して送られてきたコマンドやライト時の
ライトデータを格納する。一方、コマンド/データキュ
ー115は、複数設けられ、入出力処理完了時に、入出
力プロセッサ101に転送される実行結果情報およびリ
ード時のリードデータを保持するものである。コマンド
/データキュー115,116はそれぞれ複数存在す
る。理想的にはディスク装置132と同じ数だけ持つ事
が望ましい。
【0061】ディスク制御装置131内のデータ転送制
御部114は、チャネルパスを介して送られてきたデー
タを格納すべきコマンド/データキュー116を選択
し、ヘッダ1401,1402をはずした、1403〜
1408からなるデータをそのコマンド/データキュー
116に格納する。
【0062】図13には、ディスク装置制御テーブル1
18の構造をしめす。フィールド1101はディスク装
置識別子、フィールド1102はコマンド/データキュ
ー識別子、フィールド1103は処理待ち要求数、フィ
ールド1104はディスク装置ステータスを保持してい
る。ディスク装置制御テーブル118により、ディスク
装置132の状態や、各ディスク装置132に対応する
コマンド/データキュー115,116などを知る事が
できる。コマンド処理部117では、ディスク装置制御
テーブル118を参照して処理を行なう。
【0063】図14は、コマンド処理部117における
ディスクコマンド処理のフローを示している。ディスク
コマンド処理の起動契機は2種類あり、一つはデータ転
送制御部114からの起動要求に基づくもの、もうひと
つはディスク装置119からの入出力終了報告に基づく
ものである。
【0064】データ転送制御部114から起動要求を受
けた場合(ステップ1201)、コマンド処理部117
は、入出力要求されたディスク装置に対応するコマンド
/データキュー116から、そこに登録されているコマ
ンド及びデータのうち、先頭に登録された一つを取り出
し、そのコマンドに先行するコマンド識別子で指定され
る目的のディスクを起動する(ステップ1202)。こ
の起動により、バックグラウンドに図25の処理が開始
される。この起動はチャネルコマンド語(1210から
1213)が使用される。このチャネルコマンド語(1
210から1213)は入出力プロセッサ101から転
送されてきたものである。前に述べたように、ディスク
制御装置131にはディスク装置132の制御に必要な
コマンドしか転送されていないため、主記憶装置内に格
納されている形式と比べると簡略化されている。具体的
にはTICコマンドの削減である。従って、このTIC
コマンドと同じ動作をさせることが、本処理の主な目的
となる。ステップ1214はチャネルコマンド語の最後
を検知している。ステップ1215はチャネルコマンド
語を一つ取り出す動作を行なう。ステップ1216はチ
ャネルコマンドがSEEKかどうか判定し、そうであれ
ばコマンドをディスク装置131に転送し、その終了を
待って(ステップ1224)、ステップ1214に戻
る。ステップ1217では、チャネルコマンドがSEA
RCHかどうか判定し、そうであればコマンドをディス
ク装置131に転送し、その終了を待って(ステップ1
225)、ステップ1214に戻る。ステップ1218
では、コマンドがSEARCHID EQUALかどう
か判定し、そうであればコマンドをディスク装置131
に転送する。その後、コマンドの実行結果がコマンドの
条件を満足しているかどうかを判定し(ステップ122
6)、条件を満足していなければステップ1222を再
実行する。成立してれば、ステップ1214を実行す
る。この処理により、従来入出力プロセッサ側で行なっ
ていた、TICコマンドをディスク制御装置131で実
現可能となる。ステップ1219では、チャネルコマン
ドがREADかどうか判定し、そうであればコマンドを
ディスク装置131に転送し、その終了を待って(ステ
ップ1227)、ステップ1214に戻る。このとき、
ディスク装置制御テーブル118の該当するディスク装
置ステータス1104に“BUSY”を書き込み(ステ
ップ1203)、次のディスク起動要求を待つ(ステッ
プ1204)。
【0065】一方、ディスク装置119から入出力終了
報告を受けると(ステップ1205)、コマンド処理部
117は入出力終了報告のあったディスク装置に対応す
るコマンド/データキュー115にリードデータあるい
はリターン情報をセットする(ステップ1206)。そ
して、一括制御部106′にキューイングを通知する
(ステップ1207)。なお、キューイングの通知を受
けた一括制御部106′では、入出力プロセッサ101
内の一括制御部106と同様の処理(図12におけるス
テップ1001から始まる処理)を行ない、データある
いはリターン情報を入出力プロセッサに転送する操作を
開始する。
【0066】次に、入出力終了報告のあったディスク装
置に対応するコマンド/データキュー116から先頭に
あるデータ及びコマンドを一つ取り出し、ステップ12
02に進んで目的のディスク装置を起動する(ステップ
1208)。そして、ディスク装置制御テーブル118
の該当するディスク装置ステータス1104に“BUS
Y”を書き込む(ステップ1203)。もし、ステップ
1208においてコマンド/データキュー116に登録
されている待ち要求がなければ、ディスク装置制御テー
ブル118の該当するディスク装置ステータス1104
に、ディスクステータスとして“FREE”を書き込
む。
【0067】以上述べたようなディスクコマンド処理を
複数のコマンド/データキューのそれぞれに対してパラ
レルに行なうことで、図15に示すような動作を実現す
ることができる。
【0068】図15では、ディスク装置1307と13
08でコマンド/データキュー1301を共通に使用
し、ディスク装置1309,1310は、それぞれ独立
してコマンド/データキュー1302,1303を使用
する。ディスクコマンド処理1304,1305,13
06では、それぞれ対応するコマンド/データキュー1
301,1302,1303内に待ちがあるかどうか調
べ、待ちがある場合にはそれぞれ対応するディスク装置
を起動する。このような制御を行なうことにより、各デ
ィスク装置のビジー率を高めることができる。特にディ
スク装置1309,1310のように、1台のディスク
装置で1つのコマンド/データキューを使用するように
構成するとビジー率をより高めることができる。このた
めにはデータ転送制御114は、そこに転送された複数
のチャネルプログラムをコマンド/データキューに登録
するにあたり、同じ外部記憶装置を制御する複数のチャ
ネルプログラムを同じ、コマンド/データキューに登録
し、異なる外部記憶装置を制御する複数のチャネルプロ
グラムはなるべく異なるコマンド/データキューに登録
するようにすることが望ましい。
【0069】図15では、ディスク装置1307と13
08でコマンド/データキュー1301を共通に使用
し、ディスク装置1309,1310は、それぞれ独立
してコマンド/データキュー1302,1303を使用
する。ディスクコマンド処理1304,1305,13
06では、それぞれ対応するコマンド/データキュー1
301,1302,1303内に待ちがあるかどうか調
べ、待ちがある場合にはそれぞれ対応するディスク装置
を起動する。このような制御を行なうことにより、各デ
ィスク装置のビジー率を高めることができる。特にディ
スク装置1309,1310のように、1台のディスク
装置で1つのコマンド/データキューを使用するように
構成するとビジー率をより高めることができる。このた
めにはデータ転送制御114は、そこに転送された複数
のチャネルプログラムをコマンド/データキューに登録
するにあたり、同じ外部記憶装置を制御する複数のチャ
ネルプログラムを同じコマンド/データキューに登録
し、異なる外部記憶装置を制御する複数のチャネルプロ
グラムはなるべく異なるコマンド/データキューに登録
するようにすることが望ましい。
【0070】以上におけるチャンネルプログラムの処理
をより具体的に説明する。
【0071】先ず、WRITE要求に対応するチャンネ
ルプログラムの処理を図20、21を用いて説明する。
【0072】図20は、あるディスク装置132(例え
ば、132-1)に対するWRITE要求を示すチャネルプ
ログラム(123)が、該WRITE要求と同一ディス
ク装置に対する他の入出力要求(WRITE,READ
要求問わず)と共に一括化されてディスク制御装置(1
31)へ転送されるまでの流れを示している。入出力プ
ロセッサ(101)内の入出力要求一括フェッチ部(1
07)は、主記憶装置(121)内に格納されている入
出力要求キュー(122)内の入出力要求を一つ(例え
ば、122-1)あるいは複数を一括即ち、ひとまとめにし
て取り込む。こうして例えば一括して取り込まれた複数
の入出力要求sからポイントされている複数のチャネル
プログラム(123,124など)を取り込む。この
時、チャネルプログラム内に含まれるディスク入出力制
御には直接関連しないチャネルプログラムを取り除く、
例えば、本例では、TICは入出力プロセッサ(10
1)の制御用のものであるため取り除かれる。しかし、
図6A、6Bのチャネルコマンド語2のWRITE形式
では取り除く必要ない。さらに、データ一括フェッチ部
(110)は、もし入出力要求がWRITE処理であれ
ば、データ(126)を取り込む。これら、複数のチャ
ネルプログラムとデータを一つのデータとしてまとめ
(1803〜1810)、さらにこれら一括されたデー
タのデータ識別子1801)と、一括化後のチャネルコ
マンドとデータとの総データ転送長Lを示すデータ(1
802)とをヘッダとして付加したものが、データ転送
制御部(112)によりディスク制御装置(131)へ
転送され、ディスク転送制御部114を介してディスク
装置132(例えば、132-1)に対応するコマンド/デ
ータキュー116の一つのキューにストアされる。従っ
てコマンド処理部117により該WRITE要求に基づ
くデータが対応するディスク装置(例えば、132-1)に
書込まれる。
【0073】図21は、図20で発行された1つのWR
ITE要求(1803〜1809)によりそのデータ
(1809)が所定のディスク装置(例えば、132-1)
に書き終わり、その終了報告を入出力プロセッサ(10
1)に転送する処理を示している。コマンド処理部11
7は、WRITE要求(1803〜1809)により対
応するディスク装置(例えば、132-1)にデータが出力
された結果、その処理が正常に終了したか、異常終了で
あったかを示すWRITE終了結果(1908)にコマ
ンド識別子(1907)を付加し、それを該ディスク装
置(例えば、132-1)に対応するコマンドデータキュー
(例えば、115-1)に格納する。ディスク制御装置(1
31)の一括制御部(106)はこうしてコマンドデー
タキュー(115−1)にストアされたWRITE終了
結果及び同一ディスク装置(132−1)に対応する他
の入出力結果(WRITE,READ終了結果)から一
つあるいは複数の入出力終了結果(1906〜190
8)を取り込み、さらにデータ識別子(1901)と、
こうして一括して取込まれた入出力終了結果とデータと
の総データ転送長Lを示すデータ(1802)とをヘッ
ダとして付加したものをデータ転送制御部114より入
出力プロセッサ(106)へパケットとして転送する。
【0074】ここで、コマンド識別子1904等は一括
制御部106’で付加される。
【0075】このパケットを送られた入出力プロセッサ
(101)は、一括化された終了報告を一括化したまま
の形式で、あるいは入出力要求単位に、あるいはある分
割単位に対応するホストプロセッサに転送する。
【0076】次にREAD要求に対応するチャンネルプ
ログラムの処理について図22、23を参照して説明す
る。
【0077】図22はあるディスク装置132(例え
ば、132-1)に対するREAD要求を示すチャネルプロ
グラム(123)が、該READ要求と同一ディスク装
置に対する他の入出力要求(WRITE,READ要求
問わず)と共に一括化されてディスク制御装置(13
1)へ転送されるまでの流れを示している。入出力プロ
セッサ(101)内の入出力要求一括フェッチ部(10
7)は、主記憶装置(121)内に格納されている入出
力要求キュー(122)内の入出力要求を一つあるいは
複数を一括して取り込む。こうして例えば一括して取り
込まれた入出力要求からポイントされている複数のチャ
ネルプログラム(123,124など)を取り込む。こ
の時、チャネルプログラム内に含まれるディスク入出力
制御には直接関連しないチャネルプログラムを取り除
く。例えば、本例では、TICは入出力プロセッサ(1
01)の制御用のため取り除かれる。しかし、図6A,
6Bのチャネルコマンド語2のWRITE形式では取り
除く処理は必要ない。WRITE処理と違い、READ
処理ではデータはまだ存在しないため、入力後のデータ
を主記憶装置(121)のどこに書かなければならない
かを覚えておく必要があるため主記憶アドレス(200
9)も付加させる。さらに、データ一括フェッチ部11
0は、もし入出力要求がWRITE処理であれば、デー
タ(126)を取り込むが、本READ処理においては
なにもしない。これら、複数のチャネルプログラムある
いはデータを一つのデータとしてまとめ(2003〜2
010)、さらにデータ識別子(2001)と、一括化
後のチャネルコマンドsとデータとの総データ転送長L
を示すデータ(2002)をヘッダとして付加したもの
が、データ転送制御部(112)によりディスク制御装
置(131)へ転送されディスク転送制御部114を介
してディスク装置132(例えば、132-1)に対応する
コマンド/データキュー116にストアされる。従って
コマンド処理部117により該READ要求に基づき対
応するディスク装置(例えば、132-1)からデータが読
出される。
【0078】図23は、図22で発行された1つのRE
AD要求(2003〜2009)によりデータ(211
2)が所定のディスク装置(例えば、132-1)から転送
され、その終了報告を入出力プロセッサ(101)に転
送する処理を示している。コマンド処理部117はRE
AD要求(2003〜2009)により対応するディス
クにデータが出力された結果、その処理が正常に終了し
たか、異常終了であったかを示すREAD終了結果(2
110)とデータ(2112)にコマンド識別子(21
09)を付加し、それを該ディスク装置(例えば、132-
1)に対応するコマンドデータキュー(例えば、115-1)
に格納する。ディスク制御装置(131)の一括制御部
106’はこうしてコマンドデータキュー115−1に
ストアされた該READ終了結果及び同一ディスク装置
132−1に対応する他の入出力結果(READ,WR
ITE終了結果)から一つあるいは複数の入出力終了結
果(2108〜2112)及び主記憶アドレス2114
を取り込み、さらにデータ識別子(2101)とこうし
て一括して取込まれた入出力終了結果とデータとの総デ
ータ転送長Lを示すデータ(2,02)とをヘッダとし
て付加したものをデータ転送制御部114より入出力プ
ロセッサ(106)へパケットとして転送する。
【0079】ここで、コマンド識別子2103,210
4等は一括制御部106’で付加される。
【0080】このパケットを送られた入出力プロセッサ
(101)は、一括化された終了報告を一括化したまま
の形式で、あるいは入出力要求単位に、あるいはある分
割単位に対応するホストプロセッサに転送する。
【0081】入出力要求がREAD要求である場合はデ
ータを主記憶装置(121)の所定のエリアに書き込ま
なければならず、その場所を送られてきた主記憶アドレ
ス(2113)から求め書き込む。
【0082】このように、入出力要求がディスク装置か
らデータを読み出すことを要求するREAD要求の場
合、入出力プロセッサ101は、そのチャネルプログラ
ムに主記憶装置121の書き込み位置を示す主記憶アド
レスを付加してディスク制御装置131に送っておき、
ディスク制御装置は該READ要求に応答してディスク
装置からデータを読み出した時、読み出したデータを含
む入出力終了結果(2108−2112)と共にこの主
記憶アドレス(2114)を入出力プロセッサに転送
し、これにより入出力プロセッサは読み出されたデータ
を主記憶装置の該アドレスに書き込むことができる。
【0083】この場合、入出力プロセッサは、1つのR
EAD要求を示すチャネルプログラムに書き込みアドレ
スを付加したものだけを1まとめにしてディスク制御装
置に転送してもよく、他の入出力要求と共に1まとめに
して転送しても良い。
【0084】また、ディスク制御装置は、1つのREA
D要求に応答して読み出されたデータを含む入出力終了
結果に上記主記憶アドレスを付加したものだけを1まと
めにして入出力プロセッサに転送してもよく、該入出力
終了結果と同一ディスク装置に関する他の入出力終了結
果と共に1まとめにして転送しても良い。
【0085】更に、ディスク制御装置では、入出力プロ
セッサーよりばらばらに転送されてきた、同一ディスク
装置に関する、READ要求を含む複数の入出力要求を
示すチャネルプログラムと対応する書き込みアドレスを
まとめて管理しておき、該READ要求に応答して読み
出されたデータを含む入出力終了結果を、該複数の入出
力要求に対応する他の入出力終了結果と共に1まとめに
して入出力プロセッサーに転送しても良い。
【0086】以上のごとく、本実施例では、チャネル制
御プロセッサから、複数の入出力要求に関するチャネル
プログラム、書き込みデータを一組の転送データとして
ディスク制御装置に送り、ディスク制御装置において、
各チャネルプログラム内の各コマンドの実行タイミング
を制御するので、これらのチャネルプログラムと書き込
みデータの転送時間が従来より短くなる。
【0087】上記、制御を行なうことで従来発生してい
た以下の、主記憶装置121内に格納された入出力コマ
ンド123,124,125やデータ126,127,
128を入出力プロセッサ内に取り込むオーバヘッドを
少なくすることができる。 (1)入出力要求の有無判定 (2)入出力要求の取り出し (3)取り出した入出力要求の無効化 (4)入出力要求からチャネルコマンドが格納されてい
る主記憶装置アドレスを抽出 (5)主記憶装置からチャネルコマンドを一つ取り出し (6)一つの入出力要求が終了するまで、(5)を繰り
返す (7)次の入出力要求を処理するため(1)に戻る つまり、(1),(2)は一括して取り出すことから、
(1)から(2),(7)から(1)への制御移行オー
バヘッドを少なくすることができ、(3)から(6)は
連続したチャネルコマンドの取り出しと、複数の入出力
要求を一度の制御で行なえることから、前記同様複数の
マイクロプログラムモジュールに渡る制御移行オーバヘ
ッドを少なくすることができる。
【0088】また、入出力プロセッサからディスク制御
装置へコマンドやデータを転送する際に生じる以下のオ
ーバヘッドも削減可能である。
【0089】(a)主記憶装置から取り出したチャネル
コマンドを解析 (b)ディスク制御装置に対するコマンドか入出力プロ
セッサに対するコマンドかを判定し、ディスク制御装置
に対するコマンドであれば、コマンドを指定されたディ
スク制御装置へ転送 (c)入出力プロセッサに対するコマンドであればそれ
を実行 (d)一つの入出力要求が終了するまで、(a)から
(c)を繰り返す (a)から(d)は、一括して複数の入出力要求が処理
されることにより、マイクロプログラムモジュールに渡
る制御移行オーバヘッド削減効果があるが、(b),
(c)の処理が簡略化されることによる高性能化が大き
い。前述のように、入出力プロセッサ101からディス
ク制御装置131にチャネルコマンド語123,12
4,125を転送する際に、ディスク制御装置131に
直接関係しないコマンド(例えばTICコマンド)を取
り除き、そのコマンド列を一括してディスク制御装置1
31に転送している。TICコマンドの意味は以下の通
りである。ディスク制御装置はSEEK、SEARC
H,READ/WRITEといった一連の処理を行なう
が、入出力プロセッサからはこれらのコマンドを一つず
つディスク制御装置に転送している。ところが、前記S
EARCHコマンドは、ディスクヘッドが所定の一に到
着したかどうかを判定する処理であるが、入出力プロセ
ッサは本コマンドをディスク制御装置に転送してしまう
と、次のチャネルコマンドの実行を開始してしまうため
このままでは正常な動作をしない。つまり、この時点で
次のREAD/WRITEコマンドを実行してしまう
と、現在のディスクヘッドの位置に対してREAD/W
RITEを実行してしまうため、不当なデータを読み書
きしてしまう。そこで、TICコマンドをSEARCH
コマンドとREAD/WRITEコマンドの間に置き、
SEARCHコマンドにより目的のデータが存在する位
置にディスクヘッドが到着するまで、REARCHコマ
ンドを実行し続ける処理が必要になる。しかし、本実施
例のように、入出力プロセッサ101側でそういった同
期処理を行なわないようにすることで、従来は同期的に
行なっていた処理を非同期的に行なうことができるよう
になり、(b),(c)の処理を大幅に低減することが
できようになる。
【0090】図17Aに示す、従来技術による処理手順
によるタイプチャートに比べて、本実施例によれば、図
17Bに示すように、本実施例のチャネル制御によるデ
ータフローでは、入出力要求キューにキューイングされ
た入出力要求を一括して処理を行うことから、コマンド
/データ転送1515あるいは1516に見られるよう
に、チャネルオーバヘッドを生じることなく複数のコマ
ンド/データ転送が行なわれるところがでてくる。一括
化の数は入出力負荷によって異なり、低負荷では従来の
チャネル動作に近づき、高負荷状態では一括化の数が大
きくなる。このような制御が自動的に行われるため、不
必要に多くの入出力要求を待たせる事がなく、極力レス
ポンスを短くしたコマンド/データ転送を行なうことが
できる。また、入出力要求の一括化によりオーバヘッド
の介在が必要最小限に抑えられるため、従来のチャネル
装置に比べて高いスループットの達成が実現できる。特
に、チャネルスピードが早くなるほど、本発明の効果が
大きくなる。これは、チャネルが高速化されることでデ
ータ転送時間は短縮されてもオーバヘッドがほとんど変
わらないことに起因する相対的なオーバヘッド比率の増
大を、本実施例では抑えることができるためである。さ
らに、今後システムの拡大により、チャネルパスを形成
する入出力プロセッサとディスク制御装置等との間のケ
ーブル長が延長されることが想像される。このようにチ
ャネルパスが延長されればされるほど両者の間でコネク
ションが確立されるまでの時間が延び、データ転送時の
オーバヘッドも大きくなる。このような場合にも本実施
例によればオーバヘッド比率の増大を抑え、効率的なデ
ータ転送を行なうことが可能である。
【0091】(実施例2)次に別の実施例について説明
する。
【0092】図18は、本実施例においてレスポンス優
先制御を行う場合の一括制御部106における処理のフ
ローを示す図である。上記実施例と同様に一括制御部1
06の処理には、2つの起動契約がある。ひとつはチャ
ネルパス選択/入出力要求登録部104からの起動要
求、もう一つはデータ転送処理部112からの起動要求
である。入出力要求登録部104から起動要求があると
(ステップ1601)、一括制御部106はチャネルビ
ジー検出部105を用いてチャネルパス制御テーブル1
03を参照し、入出力要求のあったデバイス識別子に対
応するチャネルパスが使用可能かどうか検出する(ステ
ップ1602)。その結果、目的のチャネルパス140
が“BUSY”であれば処理を終了し、そうでなければ
ステップ1604に移る(ステップ1603)。ステッ
プ1604では、チャネルパス制御テーブル103より
チャネルパスに対応する入出力要求キュー識別子を取得
する。次に、ステップ1604で取得した入出力要求識
別子に対応する入出力要求キュー122からディスク制
御装置131に転送すべきデータのデータ長を加算しつ
つ入出力要求を取り出す。そして、データ長がある所定
の長さを越えたところで入出力要求の取り出しを終了す
る(ステップ1605,1606)。なお、ステップ1
606ではデータ長が所定の長さを超えた場合以外に、
取り出すべき入出力要求が無い場合にも次のステップに
進む。入出力要求の取り出しを終えると、チャネルパス
制御テーブル103の該当する待ち要求数フィールド6
03から、取り出した入出力要求数を差し引いた値をそ
の要求数フィールド603にセットし、またチャネル装
置ステータスフィールド605を“BUSY”にする
(ステップ1607)。その後、取り出した複数の入出
力要求をまとめて入出力要求解析部111へ送る(ステ
ップ1608)。
【0093】もう一つの起動契機であるデータ転送制御
部112からの起動要求は、いずれかのチャネルパスの
データ転送が終了した時点で発生する。このとき、デー
タ転送制御部112からは、どのチャネルパスにおける
データ転送が終了したのかを示す情報等が送られてくる
(ステップ1609)。ステップ1610では、これら
の情報を元にチャネルパス制御テーブル103をサーチ
し、このチャネルパスを使用する待ちの入出力要求があ
るかどうか調べる。その結果、待ちの入出力要求がなけ
れば処理は終了し、そうでなければステップ1602に
移る。
【0094】一括制御部106においてこのような制御
を行なうことにより、上位装置等に対するレスポンスを
優先した入出力制御が可能となる。一括数を制限すると
データあるいはコマンドの転送時間が短くになり、スル
ープットは幾分低下するが、上位装置等に対するレスポ
ンスを優先したいような場合には本実施例は有効であ
る。
【0095】(実施例3)次に、本発明の更に別の実施
例について説明する。
【0096】図19は、本実施例においてレスポンス優
先制御を行う場合の一括制御部106における処理のフ
ローを示す図である。本実施例ではステップ1706に
おける処理が実施例2のステップ1606とは異なって
いる。本実施例では、ステップ1704で得た入出力要
求識別子に対応する入出力要求キューから、ある所定の
数だけの入出力要求を取り出し、残りの入出力要求の取
り出しを終了する。即ち、ステップ1706において取
り出した入出力要求の数が所定の数に達したかどうか
(または、取り出すべき入出力要求が無くなったかどう
か)を判断し、取り出した入出力要求の数が所定の数を
超えないうちはステップ1705において入出力要求の
取り出しを行ない、取り出した入出力要求の数が所定の
数を超えると次のステップに進む。上記別の実施例2に
おけるステップ1602を本実施例のステップ1701
のように変更することにより、入出力要求の取り出し処
理を高速にできる。これは、複数のチャネルコマンド語
を一連のチャネルコマンド語列として指定したような場
合、実施例2では入出力要求を取り出す毎にチャネルコ
マンド語のチェインを何段か手繰り、データ長を計算し
なければならないのに対し、本実施例では取り出した入
出力要求の数をカウントするだけでよいためである。た
だし、本実施例では、チャネルパスの使用時間の大きな
要因であるデータ長については考慮していない。したが
って、入出力要求長の変化が大きい場合にはあまり適さ
ず、入出力要求長の変化の少ない環境下において有効で
ある。なお、本実施例におけるその他の処理は上記別の
実施例と同様に行なわれる。
【0097】(実施例4)図1、2に示す上記の各実施
例においては制御プロセッサ136、137、140を
用いて制御を行っているが、これら各プロセッサの機能
を専用ハードウェアで置きかえるようにしても良い。図
24はそのように図1、2の全ての構成をハードウェア
で構成した例を示すブロック図であり、図中図2のブロ
ックと同一機能を有する部分には記号Aを符してあり、
同一物には図2と同一番号を付してあり、その説明を省
略する。
【0098】
【発明の効果】以上の様に本発明によれば、チャネルの
起動および終了に要するオーバヘッドを必要最小限に抑
え、かつレスポンス時間をほとんど低下させない入出力
が可能になる。
【図面の簡単な説明】
【図1】本発明によるデータ入出力システム及び該シス
テムにおけるデータ入出力制御方法を適用した入出力サ
ブシステムの一実施例の構成を示すブロック図。
【図2】図1において各制御プロセッサsの構成を示し
たブロック図。
【図3】入出力プロセッサ内の処理を示すフローチャー
ト。
【図4】入出力要求の一例を示す図。
【図5】チャネルコマンド語の一例を示す図。
【図6】チャネルコマンド語の他の例を示す図。
【図7】ディスク装置の接続構成の一例を示す図。
【図8】チャネルパス制御テーブルの一例を示す図。
【図9】入出力要求キューの構造を示す図。
【図10】入出力要求キューの配置を説明する図。
【図11】チャネルパス選択/入出力要求登録部におけ
る処理の流れを示す図。
【図12】一括制御部における処理の流れを示す図。
【図13】ディスク装置制御テーブルの一例を示す図。
【図14】コマンド処理部におけるディスクコマンド処
理の流れを示す図。
【図15】ディスクコマンド処理の一例を示す図。
【図16】データ転送の様子を示す図。
【図17】従来のチャネル制御のデータフローおよび本
発明の第1の実施例のチャネル制御のデータフローを示
す図。
【図18】別の実施例におけるレスポンス優先制御を行
なう場合の一括制御部における処理の流れを示す図。
【図19】更に別の実施例におけるレスポンス優先制御
を行なう場合の一括制御部における処理の流れを示す
図。
【図20】WRITE要求を示すチャンネルプログラム
とディスク制御装置への転送を示す図。
【図21】WRITE要求に応答する入出力終了結果の
入出力プロセッサでの転送を示す図。
【図22】READ要求を示すチャンネルプログラムと
ディスク制御装置への転送を示す図。
【図23】READ要求に応答する入出力終了結果の入
出力プロセッサでの転送を示す図。
【図24】本発明の更に別の実施例の構成を示すブロッ
ク図。
【図25】コマンド処理部による起動処理の詳細フロー
チャート。
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 13/00 - 13/42 JICSTファイル(JOIS)

Claims (34)

    (57)【特許請求の範囲】
  1. 【請求項1】上位装置が発行した、それぞれ複数の外部
    記憶装置の一つに対する複数の入出力要求の実行を制御
    する入出力制御装置と、該入出力制御装置から転送され
    たコマンドに基づいて該複数の外部記憶装置を制御する
    外部記憶制御装置とを有する入出力制御方法において、 (a)複数の制御プログラムを保持する記憶装置から、該
    上位装置から発行された複数の入出力要求の内、処理す
    べき複数の異なる入出力要求が指定する制御プログラム
    を該入出力制御装置によりまとめて読み出し、 (b)該読み出された制御プログラムを該入出力制御装置
    から該外部記憶制御装置にまとめて転送し、 (c)該転送された制御プログラムを該外部記憶制御装置
    内に一時的に記憶し、 (d)該記憶された制御プログラムを該外部記憶制御装置
    の制御下で実行するステップを有する入出力制御方法。
  2. 【請求項2】その実行ステップ(d)は、該記憶された制
    御プログラムに含まれる複数のコマンドを、それぞれそ
    の制御プログラムで制御すべき一つの外部装置の動作に
    依存するタイミングで順次実行するステップを有する請
    求項1記載の入出力制御方法。
  3. 【請求項3】(e)該読み出された制御プログラムが該一
    つの外部記憶装置に対するデータの書き込みを要求する
    とき、該読み出された制御プログラムが指定する書き込
    みデータを該記憶装置から該入出力制御装置により読み
    出すステップをさらに有し、 該転送ステップ(c)は、該読み出された制御プログラム
    と該読み出された書き込みデータを該外部記憶制御装置
    に転送するステップを有し、 該方法は、 (f)該転送された書き込みデータを記憶し、 (g)該記憶された書き込みデータを該複数のコマンドの
    実行中の適当なタイミングで該記憶された制御プログラ
    ムで制御すべき一つの外部記憶装置に転送するステップ
    をさらに有する請求項1記載の入出力制御方法。
  4. 【請求項4】該転送ステップ(c)は、該読み出された制
    御プログラムと該読み出された書き込みデータを該外部
    記憶制御装置を一緒に転送するステップを有する請求項
    3記載の入出力制御方法。
  5. 【請求項5】該実行ステップ(d)は、 該記憶された制御プログラムが該複数の外部記憶装置の
    一つからのデータの読み出しを指定するときには、その
    制御プログラムが指定するデータを、該記憶された制御
    プログラムで制御されるべき一つの外部記憶装置から読
    み出し、 その読み出したデータとともに、その記憶された制御プ
    ログラムが指定する、該記憶装置の、そのデータに対す
    る書き込みアドレスを該入出力制御装置に転送するステ
    ップを有する請求項1記載の入出力制御方法。
  6. 【請求項6】上位装置が発行した、それぞれ複数の外部
    記憶装置の一つに対する複数の入出力要求の実行を制御
    する入出力制御装置と、該入出力制御装置から転送され
    たコマンドに基づいて該複数の外部記憶装置を制御する
    外部記憶制御装置とを有する入出力制御方法において、 (a)複数の制御プログラムを保持する記憶装置から、該
    上位装置から発行された複数の入出力要求の内、処理す
    べき複数の異なる入出力要求が指定する制御プログラム
    を、該入出力制御装置によりまとめて読み出し、 (b)該読み出された制御プログラムが該複数の外部記憶
    装置の一つに対する書き込みデータを指定するときに
    は、該書き込みデータを該記憶装置から該入出力制御装
    置により読み出し、 (c)該読み出された制御プログラムと書き込みデータを
    該入出力制御装置内に一時的に記憶し、 (d)該記憶された制御プログラムに含まれる複数のコマ
    ンドと該記憶された書き込みデータを該外部記憶制御装
    置により処理させるために、それらを該入出力制御装置
    から該外部記憶制御装置にまとめて転送するステップを
    有する入出力制御方法。
  7. 【請求項7】上位装置が発行した、それぞれ複数の外部
    記憶装置の一つに対する複数の入出力要求の実行を制御
    する入出力制御装置と、該入出力制御装置から転送され
    たコマンドに基づいて該複数の外部記憶装置を制御する
    外部記憶制御装置とを有する入出力制御方法において、 (a)該上位装置から発行された複数の入出力要求の内、
    処理すべき複数の入出力要求を選択し、 (b)複数の制御プログラムを保持する記憶装置から、該
    選択された複数の入出力要求が指定する複数の制御プロ
    グラムを、該入出力制御装置により読み出し、 (c)該読み出された複数の制御プログラムを該入出力制
    御装置から該外部記憶制御装置に転送し、 (d)該転送された複数の制御プログラムを該外部記憶制
    御装置内に一時的に記憶し、 (e)該記憶された複数の制御プログラムを該外部記憶制
    御装置の制御下で実行するステップを有する入出力制御
    方法。
  8. 【請求項8】該実行ステップ(e)は、該記憶された複数
    の制御プログラムの内、異なる外部記憶装置に対する入
    出力動作を要求する複数のチャネル制御プログラムを並
    列に実行するステップを有する請求項7記載の入出力制
    御方法。
  9. 【請求項9】該記憶ステップ(d)は、該転送された複数
    の制御プログラムを、複数のコマンド記憶領域に分散し
    て記憶するステップを有し、 該実行ステップ(e)は、異なるコマンド記憶領域に記憶
    され、異なる外部記憶装置に対する入出力動作を要求す
    る複数のチャネル制御プログラムを並列に実行するステ
    ップを有する請求項8記載の入出力制御方法。
  10. 【請求項10】該転送ステップ(c)は、該読み出された
    複数の制御プログラムとともに、それぞれ該複数の制御
    プログラムの一つでもって制御すべき外部記憶装置を識
    別するための複数の識別情報を該外部記憶制御装置に転
    送するステップを有し、 該実行ステップ(e)は、該転送された複数の識別情報か
    ら、該転送された複数の制御プログラムにより制御すべ
    き外部記憶装置を決定するステップをさらに有する請求
    項7記載の入出力制御方法。
  11. 【請求項11】該転送ステップ(c)は、該読み出された
    複数の制御プログラムを該外部記憶制御装置に一緒に転
    送するステップを有する請求項7記載の入出力制御方
    法。
  12. 【請求項12】(f)該読み出された複数の制御プログラ
    ムの一つまたは複数が該複数の外部記憶装置に対する一
    つまたは複数の書き込みデータを指定するときには、該
    一つまたは複数の書き込みデータを、該記憶装置から該
    入出力制御装置により読み出すステップをさらに有し、 該転送ステップ(c)は、該読み出された複数の制御プロ
    グラムと該読み出された一つまたは複数の書き込みデー
    タを該外部記憶制御装置に転送するステップを有する請
    求項7記載の入出力制御方法。
  13. 【請求項13】該転送ステップ(c)は、該読み出された
    複数の制御プログラムと該読み出された一つまたは複数
    の書き込みデータを該外部記憶制御装置に一緒に転送す
    るステップを有する請求項12記載の入出力制御方法。
  14. 【請求項14】該入出力制御装置は、複数のチャネルパ
    スを介して該外部記憶制御装置に接続され、 該複数の外部記憶装置は、それぞれに対する入出力動作
    を要求する入出力要求が使用可能な一つまたは複数のチ
    ャネルパスを割り当てられ、 該選択ステップ(a)は、該複数のチャネルパスのうち、
    同一のチャネルパスを割り当てられた一つまたは複数の
    外部記憶装置に対する入出力動作を要求する複数の入出
    力要求を選択するステップを有する請求項7記載の入出
    力制御方法。
  15. 【請求項15】(f)該上位装置より発行された複数の入
    出力要求の各々を、それぞれ該複数のチャネルパスの一
    つに対応して設けられた複数の入出力要求キューの内、
    その各入出力要求が指定する外部記憶装置に割り当てら
    れた一つのチャネルパスに対応して設けられた一つの入
    出力要求キューに記憶するステップをさらに有し、 該選択ステップ(a)は、該複数の入出力要求キューの一
    つに記憶された複数の入出力要求を選択するステップを
    有する請求項14記載の入出力制御方法。
  16. 【請求項16】該選択ステップ(a)は、該上位装置から
    新に一つの入出力要求を転送されたときに、その入出力
    要求が指定する一つの外部記憶装置に割り当てられた一
    つのチャネルパスが使用可能であるという条件下で、そ
    の一つのチャネルパスに関して実行される請求項14記
    載の入出力制御方法。
  17. 【請求項17】該選択ステップ(a)は、該複数のチャネ
    ルパスのいずれかが使用状態から不使用状態に変化した
    ときに、その一つのチャネルパスに関して実行される請
    求項14記載の入出力制御方法。
  18. 【請求項18】該選択ステップ(a)は、該選択された複
    数の入出力要求が要求する書き込みデータの総量が所定
    量を越えないという条件下で、複数の入出力要求を選択
    するステップを有する請求項12記載の入出力制御方
    法。
  19. 【請求項19】該選択ステップ(a)は、所定数の入出力
    要求を選択するステップを有する請求項12記載の入出
    力制御方法。
  20. 【請求項20】(f)該記憶された複数の制御プログラム
    内のいずれかのコマンドを実行した結果、該複数の外部
    記憶装置から該入出力制御装置に転送すべき応答が出力
    されたとき、該応答を該外部記憶制御装置内の所定の記
    憶領域に一時的に記憶し、 (g)該記憶領域に記憶された応答が複数あるときには、
    それらの応答を一緒に該入出力制御装置に転送するステ
    ップをさらに有する請求項7記載の入出力制御方法。
  21. 【請求項21】上位装置が発行した、それぞれ複数の外
    部記憶装置の一つに対する複数の入出力要求の実行を制
    御する入出力制御装置と該入出力制御装置から転送さ
    れたコマンドに基づいて該複数の外部記憶装置を制御す
    る外部記憶制御装置とを有する入出力制御システムにお
    いて、 該入出力制御装置は、 (a1)複数の制御プログラムを保持する記憶装置から、該
    上位装置から発行された複数の入出力要求の内、処理す
    べき複数の異なる入出力要求が指定する制御プログラム
    まとめて読み出す手段と、 (a2)該読み出された制御プログラムを該外部記憶制御装
    置にまとめて転送する手段とを有し、 該外部記憶制御装置は、 (b1)該転送された制御プログラムを記憶する手段と、 (b2)該記憶された制御プログラムを実行する手段を有す
    る入出力制御システム。
  22. 【請求項22】該実行手段(b2)は、該記憶された制御プ
    ログラムに含まれる複数のコマンドをそれぞれその制御
    プログラムで制御すべき一つの外部装置の動作に依存す
    るタイミングで順次実行する手段を有する請求項21記
    載の入出力制御システム。
  23. 【請求項23】該入出力制御装置は、 (a3)該読み出された制御プログラムが該一つの外部記憶
    装置に対するデータの書き込みを要求するとき、該読み
    出された制御プログラムが指定する書き込みデータを該
    記憶装置から読み出す手段をさらに有し、 該転送手段(a2)は、該読み出された制御プログラムと該
    読み出された書き込みデータを該外部記憶制御装置に転
    送する手段を有し、 該外部記憶制御装置は、 (b3)該転送された書き込みデータを記憶する手段と、 (b4)該記憶された書き込みデータを該制御プログラムの
    実行中の適当なタイミングで該一つの外部記憶装置に転
    送する手段をさらに有する請求項21記載の入出力制御
    システム。
  24. 【請求項24】該転送手段(a2)は、該読み出された制御
    プログラムと該読み出された書き込みデータを該外部記
    憶制御装置を一緒に転送する手段を有する請求項23記
    載の入出力制御システム。
  25. 【請求項25】該実行手段(b2)は、 該記憶された制御プログラムが該複数の外部記憶装置の
    一つからのデータの読み出しを指定するときには、その
    制御プログラムが指定するデータを該一つの外部記憶装
    置から読み出す手段と、 その読み出したデータとともに、その記憶された制御プ
    ログラムが指定する、該記憶装置内のそのデータの書き
    込みアドレスを該入出力制御装置に転送する手段を有す
    る請求項21記載の入出力制御システム。
  26. 【請求項26】上位装置が発行した、それぞれ複数の外
    部記憶装置の一つに対する複数の入出力要求の実行を制
    御する入出力制御装置と、該入出力制御装置から転送さ
    れたコマンドに基づいて該複数の外部記憶装置を制御す
    る外部記憶制御装置を有する入出力制御システムにおい
    、 該入出力制御装置は、 (a)複数の制御プログラムを保持する記憶装置から、該
    上位装置から発行された複数の入出力要求の内、処理す
    べき複数の異なる入出力要求が指定する制御プログラム
    まとめて読み出す手段と、 (b)該読み出された制御プログラムが該複数の外部記憶
    装置の一つに対する書き込みデータを指定するときに
    は、該書き込みデータを該記憶装置から読み出す手段
    と、 (c)該読み出された制御プログラムと書き込みデータを
    一時的に記憶する手段と、 (d)該記憶された制御プログラムに含まれる複数のコマ
    ンドと該記憶された書き込みデータを該外部記憶制御装
    置により処理させるために、それらを該外部記憶制御装
    置にまとめて転送する手段を有する入出力制御システ
    ム。
  27. 【請求項27】上位装置が発行した、それぞれ複数の外
    部記憶装置の一つに対する複数の入出力要求の実行を制
    御する入出力制御装置と該入出力制御装置から転送され
    たコマンドに基づいて該複数の外部記憶装置を制御する
    外部記憶制御装置とを有する入出力制御システムにおい
    て、 該入出力制御装置は、 (a1)複数の制御プログラムを保持する記憶装置から、
    該上位装置から発行された複数の入出力要求の内、処理
    すべき複数の入出力要求が指定する複数の制御プログラ
    ムを読み出す手段と、 (a2)該読み出された複数の制御プログラムを該外部記憶
    制御装置に転送する手段とを有し、 該外部記憶制御装置は、 (b1)該転送された複数の制御プログラムを記憶する手段
    と、 (b2)該記憶された複数の制御プログラムを実行する手段
    を有する入出力制御システム。
  28. 【請求項28】該記憶手段(b1)は、該転送された複数の
    制御プログラムを分散して記憶するための複数の記憶領
    域を有し、 該実行手段(b2)は、該複数の記憶領域に保持された複数
    の制御プログラムの内、異なる外部記憶装置に対する入
    出力動作を要求する複数のチャネル制御プログラムを並
    列に実行する手段を有する請求項27記載の入出力制御
    システム。
  29. 【請求項29】該入出力制御装置は、 (f)該読み出された複数の制御プログラムの一つまたは
    複数が該複数の外部記憶装置に対する一つまたは複数の
    書き込みデータを指定するときには、該一つまたは複数
    の書き込みデータを該記憶装置から読み出す手段をさら
    に有し、 該転送手段(a2)は、該読み出された複数の制御プログラ
    ムと該読み出された一つまたは複数の書き込みデータを
    該外部記憶制御装置に転送する手段を有する請求項27
    記載の入出力制御システム。
  30. 【請求項30】該転送手段(a2)は、該読み出された複数
    の制御プログラムと該読み出された一つまたは複数の書
    き込みデータを該外部記憶制御装置に一緒に転送する手
    段を有する請求項29記載の入出力制御システム。
  31. 【請求項31】該入出力制御装置は、複数のチャネルパ
    スを介して該外部記憶制御装置に接続され、 該複数の外部記憶装置は、それぞれに対する入出力動作
    を要求する入出力要求が使用可能な一つまたは複数のチ
    ャネルパスを割り当てられ、 該読み出し手段は、それぞれ該複数のチャネルパスの一
    つに対応して設けられ、それぞれ対応するチャネルパス
    を割り当てられた外部記憶装置を使用する複数の入出力
    要求が指定する制御プログラムを該記憶装置より読み出
    す複数の、互いに並列に動作可能な読み出し手段を有
    し、 該転送手段は、それぞれ該複数のチャネルパスの一つに
    対応して設けられ、それぞれ対応するチャネルパスに対
    応する読み出し手段により読み出された複数の制御プロ
    グラムを該外部記憶制御装置に転送する複数の、互いに
    並列に動作可能な転送手段を有する請求項27記載の入
    出力制御システム。
  32. 【請求項32】該入出力制御手段は、 (a3)該複数のチャネルパスが使用中であるか否かを検出
    する手段と、 (a4)いずれかのチャネルパスが使用中でないと検出され
    たときに、該複数の読み出し手段のうち、そのチャネル
    パスに対応して設けられた一つの読み出し手段を起動す
    る手段をさらに有する請求項31記載の入出力制御シス
    テム。
  33. 【請求項33】該検出手段は、該上位装置から新に一つ
    の入出力要求を転送されたときに、その入出力要求が指
    定する一つの外部記憶装置に割り当てられた一つのチャ
    ネルパスが使用中か否かを検出する手段を有する請求項
    32記載の入出力制御システム。
  34. 【請求項34】上位装置が発行した、それぞれ複数の外
    部記憶装置の一つに対する複数の入出力要求の実行を制
    御する入出力制御装置と、該入出力制御装置に複数のチ
    ャネルパスを介して接続され、該入出力制御装置から転
    送されたコマンドに基づいて該複数の外部記憶装置を制
    御する外部記憶制御装置とを有する入出力制御システム
    において、 該入出力制御装置は、 (a1)該複数のチャネルパスの一つに対応して設けられた
    複数のチャネル制御プロセッサと、 (a2)該複数のチャネル制御プロセッサに共通に設けられ
    た入出力要求制御プロセッサとを有し、 該入出力要求制御プロセッサは、 (b1)該上位装置から発行された入出力要求を複数の入手
    力要求キューに記憶する手段と、 (b2)該複数の入出力要求キューに記憶された複数の入出
    力要求の内、該複数のチャネルパスの一つを使用して実
    行可能な複数の入出力要求を取り出す手段と、 (b3)該取り出された入出力要求を、該複数のチャネル制
    御プロセッサのうち、該一つのチャネルパスに対応して
    設けられた一つのチャネル制御プロセッサに通知する手
    段とを有し、 各チャネル制御プロセッサは、 (c1)複数の制御プログラムを保持する記憶装置から、該
    入出力制御プロセッサから通知された複数の入出力要求
    が指定する複数の制御プログラムを読み出す手段と、 (c2)該読み出された複数の制御プログラムを該外部記憶
    制御装置に転送する手段とを有し、 該外部記憶制御装置は、 (d1)該転送された複数の制御プログラムを記憶する手段
    と、 (d2)該記憶された複数の制御プログラムの実行を制御す
    る手段とを有する入出力制御システム。
JP04773193A 1992-03-10 1993-03-09 入出力制御方法および入出力制御システム Expired - Fee Related JP3252517B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP04773193A JP3252517B2 (ja) 1992-03-10 1993-03-09 入出力制御方法および入出力制御システム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP4-51299 1992-03-10
JP5129992 1992-03-10
JP04773193A JP3252517B2 (ja) 1992-03-10 1993-03-09 入出力制御方法および入出力制御システム

Publications (2)

Publication Number Publication Date
JPH0612359A JPH0612359A (ja) 1994-01-21
JP3252517B2 true JP3252517B2 (ja) 2002-02-04

Family

ID=26387893

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04773193A Expired - Fee Related JP3252517B2 (ja) 1992-03-10 1993-03-09 入出力制御方法および入出力制御システム

Country Status (1)

Country Link
JP (1) JP3252517B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3946873B2 (ja) 1998-06-19 2007-07-18 株式会社日立製作所 ディスクアレイ制御装置
JP2006277583A (ja) * 2005-03-30 2006-10-12 Hitachi Ltd データ処理システム、データ処理方法、及びプログラム

Also Published As

Publication number Publication date
JPH0612359A (ja) 1994-01-21

Similar Documents

Publication Publication Date Title
US5640596A (en) Input output control system for transferring control programs collectively as one transfer unit designated by plurality of input output requests to be executed
US6633925B2 (en) Operating system for generating overlapped input-output requests to a device in a disk array storage
EP0848321B1 (en) Method of data migration
US6944707B2 (en) Storage subsystem, information processing system and method of controlling I/O interface
JPH0778094A (ja) 計算機システムのアプリケーションプログラム障害発生時の制御方法
JPH0772888B2 (ja) ダイナミックポーリング装置、機械処理方法、コントローラ及びデータ処理システム
JP2000181773A (ja) 記憶装置システム
US6687764B2 (en) File I/O control method
JP2550311B2 (ja) 磁気デイスクの多重制御方式
US5678062A (en) Input/output control method and data processor
US5734918A (en) Computer system with an input/output processor which enables direct file transfers between a storage medium and a network
JP3252517B2 (ja) 入出力制御方法および入出力制御システム
JPH0789334B2 (ja) データベース管理処理方式
JP2001282551A (ja) ジョブ処理装置および方法
JPH08212178A (ja) 並列計算機
KR920007949B1 (ko) 컴퓨터 주변장치 제어기
JPH0944438A (ja) 同期タイプ入出力命令の多重処理方法
JPH02129724A (ja) プログラム実行方式
JP2682495B2 (ja) ディスク制御装置
JPH10320218A (ja) データ転送処理における連携ジョブ自動起動方法
JPH02291039A (ja) メモリ制御システム
JPH04271472A (ja) データベース処理方法
JPH0619625A (ja) 磁気ディスクの多重制御方式
JPH07114522A (ja) マルチプロセッサシステム
JPH0353655B2 (ja)

Legal Events

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