(57)【特許請求の範囲】
【請求項１】
転送対象となるデータが記憶される主記憶装置を有するホスト装置と、該ホスト装置に接続され、それぞれ複数の周辺装置を配下に有する複数の周辺制御装置とを備え、前記主記憶装置と前記周辺装置との間でデータ転送を行うデータ転送システムであって、
前記ホスト装置は、
前記複数の周辺制御装置の２つ以上に接続可能で、前記複数の周辺制御装置のいずれかとの協働によって当該周辺制御装置が配下に有する周辺装置と前記主記憶装置との間でデータ転送を行わせる複数のデータ転送制御手段と、
前記周辺装置と前記主記憶装置との間でデータ転送を行うために起動されたプログラムが、前記複数のデータ転送制御手段のうちでどのデータ転送制御手段を使用してデータ転送を行わせるかをスケジューリングするスケジュール手段とを備え、
前記データ転送制御手段は、自身を使用するタスクが実行すべきデータ転送に関する情報を保持するタスク情報記憶手段を備え、
前記スケジュール手段は、
起動されたデータ転送のためのプログラムをそれぞれタスクとして管理し、さらに各タスクでデータ転送のために使用するデータ転送制御手段に関する情報と該各タスクでデータ転送のために使用しているデータ転送制御手段の動作状態に関する情報とを各タスクに対応付けて管理するタスク管理手段と、
データ転送のためのプログラムが起動され、新たなタスクとして管理されるときに、前記タスク管理手段を参照して他のタスクでデータ転送のために使用していないデータ転送制御手段があればそのデータ転送制御手段を選択し、前記複数のデータ転送制御手段のすべてが他のタスクによって使用されているときには前記タスク管理手段を参照して動作状態がデータ転送中でないデータ転送制御手段を選択し、当該データ転送制御手段の前記情報記憶手段に保持された当該データ転送制御手段を使用しているタスクのデータ転送に関する情報を所定の退避領域に退避させ、当該データ転送制御手段を新たなタスクのデータ転送のために使用するデータ転送制御手段として前記タスク管理手段に管理させるタスクスケジュール手段とを備えることを特徴とするデータ転送システム。
【請求項２】
複数の周辺装置を配下に有する複数の周辺制御装置が接続され、転送対象となるデータが記憶される内部の主記憶装置と前記周辺装置との間でデータ転送を行うデータ転送装置であって、
前記複数の周辺制御装置の２つ以上に接続可能で、前記複数の周辺制御装置のいずれかとの協働によって当該周辺制御装置が配下に有する周辺装置と前記主記憶装置との間でデータ転送を行わせる複数のデータ転送制御手段と、
前記周辺装置と前記主記憶装置との間でデータ転送を行うために起動されたプログラムが、前記複数のデータ転送制御手段のうちでどのデータ転送制御手段を使用してデータ転送を行わせるかをスケジューリングするスケジュール手段とを備え、
前記スケジュール手段は、
起動されたデータ転送のためのプログラムをそれぞれタスクとして管理し、さらに各タスクでデータ転送のために使用するデータ転送制御手段に関する情報と該各タスクでデータ転送のために使用しているデータ転送制御手段の動作状態に関する情報とを各タスクに対応付けて管理するタスク管理手段と、
データ転送のためのプログラムが起動され、新たなタスクとして管理されるときに、前記タスク管理手段を参照して他のタスクでデータ転送のために使用していないデータ転送制御手段があればそのデータ転送制御手段を選択し、前記複数のデータ転送制御手段のすべてが他のタスクによって使用されているときには前記タスク管理手段を参照して動作状態がデータ転送中でないデータ転送制御手段を選択し、当該データ転送制御手段に保持された当該データ転送制御手段を使用しているタスクのデータ転送に関する情報を所定の退避領域に退避させ、当該データ転送制御手段を新たなタスクのデータ転送のために使用するデータ転送制御手段として前記タスク管理手段に管理させるタスクスケジュール手段とを備えることを特徴とするデータ転送装置。
【請求項３】
転送対象となるデータが記憶される主記憶装置を有するホスト装置と、該ホスト装置に接続され、それぞれ複数の周辺装置を配下に有する複数の周辺制御装置とを備えるシステムにおいて、前記主記憶装置と前記周辺装置との間でデータ転送を行うデータ転送方法であって、
前記ホスト装置には、前記複数の周辺制御装置の２つ以上に接続可能で、前記複数の周辺制御装置のいずれかとの協働によって当該周辺制御装置が配下に有する周辺装置と前記主記憶装置との間でデータ転送を行わせる複数のデータ転送制御手段を備え、
起動されたデータ転送のためのプログラムをそれぞれタスクとして管理し、さらに各タスクでデータ転送のために使用するデータ転送制御手段に関する情報を各タスクに対応付けて管理する第１のタスク管理ステップと、
各タスクでデータ転送のために使用しているデータ転送制御手段の動作状態に関する情報を各タスクに対応付けて管理する第２のタスク管理ステップと、
データ転送のためのプログラムが起動され、新たなタスクとして管理されるときに、前記第１のタスク管理ステップですでに管理された他のタスクでデータ転送のために使用していないデータ転送制御手段を選択し、当該新たなタスクでデータ転送のために使用するデータ転送制御手段として前記第１のタスク管理ステップによる管理対象とさせる第１のタスクスケジュールステップと
データ転送のためのプログラムが起動され、新たなタスクとして管理されるときに、前記複数のデータ転送制御手段のすべてが他のタスクによって使用されているときに、前記第２のタスク管理ステップですでに管理された動作状態がデータ転送中でないデータ転送制御手段を選択し、当該データ転送制御手段に保持される当該データ転送制御手段を使用しているタスクのデータ転送に関する情報を所定の退避領域に退避させ、当該新たなタスクでデータ転送のために使用するデータ転送制御手段として前記第２のタスク管理ステップによる管理対象とさせる第２のタスクスケジュールステップとを含むことを特徴とするデータ転送方法。
【請求項４】
複数の周辺装置を配下に有する複数の周辺制御装置と、前記複数の周辺制御装置の２つ以上に接続可能で、前記複数の周辺制御装置のいずれかとの協働によって当該周辺制御装置が配下に有する周辺装置と内部の主記憶装置との間でデータ転送を行わせる複数のデータ転送制御手段を有するホスト装置とから構成されるシステムにおいて、前記周辺装置と前記主記憶装置との間のデータ転送をコンピュータに制御させるためのプログラムを記録するコンピュータ読み取り可能な記録媒体であって、
起動されたデータ転送のためのプログラムをそれぞれタスクとして管理し、さらに各タスクでデータ転送のために使用するデータ転送制御手段に関する情報と各タスクでデータ転送のために使用しているデータ転送制御手段の動作状態に関する情報とを各タスクに対応付けて管理するタスク管理機能と、
前記タスク管理機能によって管理されている他のタスクでデータ転送のために使用していないデータ転送制御手段があればそのデータ転送制御手段を選択し、前記複数のデータ転送制御手段のすべてが他のタスクによって使用されているときには前記タスク管理機能で管理されている動作状態がデータ転送中でないデータ転送制御手段を選択し、当該データ転送制御手段の前記情報記憶手段に保持された当該データ転送制御手段を使用しているタスクのデータ転送に関する情報を所定の退避領域に退避させ、選択したデータ転送制御手段を当該新たなタスクでデータ転送のために使用するデータ転送制御手段として前記タスク管理機能によって管理させるタスクスケジュール機能と、を実行するためのプログラムを記録することを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の周辺装置と主記憶装置との間のデータ転送を効率的に行うための技術に関する。
【０００２】
【従来の技術】
ホストコンピュータに複数の周辺装置が接続されるシステムにおいて、ホストコンピュータの主記憶装置と周辺装置との間で行われるデータ転送が、配下に複数の周辺装置を有する周辺制御装置とホストコンピュータ側のデータ転送制御装置とを介して行われるものがある。このようなシステムで複数の周辺制御装置が用いられる場合には、従来、ホストコンピュータの側のデータ転送制御装置は、周辺制御装置と１対１で対応して配置されていた。
【０００３】
【発明が解決しようとする課題】
このようなシステムですでにデータ転送動作を行っている周辺装置と同一の周辺制御装置に接続されている他の周辺装置が主記憶装置との間でデータ転送を行う場合、当該他の周辺装置に関わるデータ転送は、前の周辺装置に関わるデータ転送が終了するまで、待たされることとなってしまう。
【０００４】
ところで、ホストコンピュータに複数の周辺装置が接続されたシステムにおいて、複数の周辺装置とホストコンピュータ内の主記憶装置との間のデータ転送を効率的に行う技術として、特開昭６２−２１４４５６号公報に開示されたデータ転送スケジュール方式（以下、公報１という）や、特公平７−２１７８６号公報に開示されたデータ転送制御方式（以下、公報２という）がある。
【０００５】
公報１は、従データ処理装置から主データ処理装置へのデータ転送を、従データ処理装置から要求される優先度及びデータ転送に必要とされる資源の有無により設定される優先度に従って行うことを開示している。しかしながら、公報１は、ホストコンピュータ（ここでは、主データ処理装置が該当する）に複数の周辺制御装置が接続される構成は開示しておらず、上記した従来技術の問題点を解消するものとはなり得ない。
【０００６】
一方、公報２は、任意の１台の入出力装置のデータ転送終了から前処理に必要とする一定時間分先だって、別の入出力装置の前処理を起動することを開示している。しかしながら、公報２でも、入出力装置との間での転送対象となるデータが記憶される主記憶装置を有するホストコンピュータに複数の周辺制御装置が接続される構成は開示しておらず、上記した従来技術の問題点を解消するものとはなり得ない。
【０００７】
本発明は、同一の周辺制御装置の配下にある複数の周辺装置と主記憶装置との間のそれぞれのデータ転送を効率的に行うことができるデータ転送システム、装置及び方法、並びにその方法を実現するプログラムを記録したコンピュータ読み取り可能な記録媒体を提供することを目的とする。
【０００８】
【課題を解決するための手段】
上記目的を達成するため、本発明の第１の観点にかかるデータ転送システムは、  転送対象となるデータが記憶される主記憶装置を有するホスト装置と、該ホスト装置に接続され、それぞれ複数の周辺装置を配下に有する複数の周辺制御装置とを備え、前記主記憶装置と前記周辺装置との間でデータ転送を行うデータ転送システムであって、
前記ホスト装置は、
前記複数の周辺制御装置の２つ以上に接続可能で、前記複数の周辺制御装置のいずれかとの協働によって当該周辺制御装置が配下に有する周辺装置と前記主記憶装置との間でデータ転送を行わせる複数のデータ転送制御手段と、
前記周辺装置と前記主記憶装置との間でデータ転送を行うために起動されたプログラムが、前記複数のデータ転送制御手段のうちでどのデータ転送制御手段を使用してデータ転送を行わせるかをスケジューリングするスケジュール手段とを備え、
前記スケジュール手段は、
起動されたデータ転送のためのプログラムをそれぞれタスクとして管理し、さらに各タスクでデータ転送のために使用するデータ転送制御手段に関する情報と該各タスクでデータ転送のために使用しているデータ転送制御手段の動作状態に関する情報とを各タスクに対応付けて管理するタスク管理手段と、
データ転送のためのプログラムが起動され、新たなタスクとして管理されるときに、前記タスク管理手段を参照して他のタスクでデータ転送のために使用していないデータ転送制御手段があればそのデータ転送制御手段を選択し、前記複数のデータ転送制御手段のすべてが他のタスクによって使用されているときには前記タスク管理手段を参照して動作状態がデータ転送中でないデータ転送制御手段を選択し、選択したデータ転送制御手段を当該新たなタスクでデータ転送のために使用するデータ転送制御手段として前記タスク管理手段に管理させるタスクスケジュール手段とを備える
ことを特徴とする。
【０００９】
上記データ転送システムでは、スケジュール手段は、起動されたデータ転送のためのプログラムに対して、動的にデータ転送制御手段を割り当てることができる。このため、例えば、すでにデータ転送制御手段を使用してデータ転送を行っている周辺装置のデータ転送が完了していなくても、他のデータ転送制御手段を使用させることによって、同一の周辺制御装置の配下にある周辺装置と主記憶装置との間のデータ転送を行うことができるようになる。このため、データ転送の効率がよくなる。
【００１０】
さらに、データ転送のためのプログラムが起動され、新たなタスクとして管理されるときに、他のタスクでデータ転送のために使用していないデータ転送制御手段があればそのデータ転送制御手段が選択される。また、複数のデータ転送制御手段のすべてが他のタスクによって使用されているときには動作状態がデータ転送中でないデータ転送制御手段が選択される。よって、データ転送の効率が一層向上する。
【００１２】
なお、前記データ転送制御手段は、それぞれを使用するタスクのうちで前記周辺装置と前記主記憶装置とのデータ転送を行うことが可能なタスクが実行すべきデータ転送に関する情報を記憶するタスク情報記憶手段を備え、該タスク情報記憶手段に記憶されている情報に従って、前記周辺装置と前記主記憶装置との間のデータ転送を行うものとしてもよい。
【００１３】
この場合には、前記タスクスケジュール手段は、新たなタスクで使用するデータ転送制御手段として動作状態がデータ転送中でないデータ転送制御装置を選択する際に、前記タスク情報記憶手段に記憶されているデータ転送に関する情報を、所定の退避領域に退避させる手段をさらに備えるものとすることができる。
【００１４】
上記データ転送システムにおいて、
前記複数の周辺制御装置は、前記複数のデータ転送制御手段の２つ以上と実質的に同時に協働動作することが可能であり、配下にある２つ以上の周辺装置と前記主記憶装置との間のデータ転送を実質的に同時に行うことができるものであってもよい。
【００１５】
上記目的を達成するため、本発明の第２の観点にかかるデータ転送装置は、
複数の周辺装置を配下に有する複数の周辺制御装置が接続され、転送対象となるデータが記憶される内部の主記憶装置と前記周辺装置との間でデータ転送を行うデータ転送装置であって、
前記複数の周辺制御装置の２つ以上に接続可能で、前記複数の周辺制御装置のいずれかとの協働によって当該周辺制御装置が配下に有する周辺装置と前記主記憶装置との間でデータ転送を行わせる複数のデータ転送制御手段と、
前記周辺装置と前記主記憶装置との間でデータ転送を行うために起動されたプログラムが、前記複数のデータ転送制御手段のうちでどのデータ転送制御手段を使用してデータ転送を行わせるかをスケジューリングするスケジュール手段とを備え、
前記スケジュール手段は、
起動されたデータ転送のためのプログラムをそれぞれタスクとして管理し、さらに各タスクでデータ転送のために使用するデータ転送制御手段に関する情報と該各タスクでデータ転送のために使用しているデータ転送制御手段の動作状態に関する情報とを各タスクに対応付けて管理するタスク管理手段と、
データ転送のためのプログラムが起動され、新たなタスクとして管理されるときに、前記タスク管理手段を参照して他のタスクでデータ転送のために使用していないデータ転送制御手段があればそのデータ転送制御手段を選択し、前記複数のデータ転送制御手段のすべてが他のタスクによって使用されているときには前記タスク管理手段を参照して動作状態がデータ転送中でないデータ転送制御手段を選択し、選択したデータ転送制御手段を当該新たなタスクでデータ転送のために使用するデータ転送制御手段として前記タスク管理手段に管理させるタスクスケジュール手段とを備える、
ことを特徴とする。
【００１８】
上記目的を達成するため、本発明の第３の観点にかかるデータ転送方法は、
転送対象となるデータが記憶される主記憶装置を有するホスト装置と、該ホスト装置に接続され、それぞれ複数の周辺装置を配下に有する複数の周辺制御装置とを備えるシステムにおいて、前記主記憶装置と前記周辺装置との間でデータ転送を行うデータ転送方法であって、
前記ホスト装置には、前記複数の周辺制御装置の２つ以上に接続可能で、前記複数の周辺制御装置のいずれかとの協働によって当該周辺制御装置が配下に有する周辺装置と前記主記憶装置との間でデータ転送を行わせる複数のデータ転送制御手段を備え、
起動されたデータ転送のためのプログラムをそれぞれタスクとして管理し、さらに各タスクでデータ転送のために使用するデータ転送制御手段に関する情報を各タスクに対応付けて管理する第１のタスク管理ステップと、
各タスクでデータ転送のために使用しているデータ転送制御手段の動作状態に関する情報を各タスクに対応付けて管理する第２のタスク管理ステップと、
データ転送のためのプログラムが起動され、新たなタスクとして管理されるときに、前記第１のタスク管理ステップですでに管理された他のタスクでデータ転送のために使用していないデータ転送制御手段を選択し、当該新たなタスクでデータ転送のために使用するデータ転送制御手段として前記第１のタスク管理ステップによる管理対象とさせる第１のタスクスケジュールステップと
データ転送のためのプログラムが起動され、新たなタスクとして管理されるときに、前記複数のデータ転送制御手段のすべてが他のタスクによって使用されているときに、前記第２のタスク管理ステップですでに管理された動作状態がデータ転送中でないデータ転送制御手段を選択し、当該新たなタスクでデータ転送のために使用するデータ転送制御手段として前記第２のタスク管理ステップによる管理対象とさせる第２のタスクスケジュールステップと、
を含むことを特徴とする。
【００２０】
上記目的を達成するため、本発明の第４の観点に係るコンピュータ読み取り可能な記録媒体は、
複数の周辺装置を配下に有する複数の周辺制御装置と、前記複数の周辺制御装置の２つ以上に接続可能で、前記複数の周辺制御装置のいずれかとの協働によって当該周辺制御装置が配下に有する周辺装置と内部の主記憶装置との間でデータ転送を行わせる複数のデータ転送制御手段を有するホスト装置とから構成されるシステムにおいて、前記周辺装置と前記主記憶装置との間のデータ転送を制御するためのプログラムを記録するコンピュータ読み取り可能な記録媒体であって、起動されたデータ転送のためのプログラムをそれぞれタスクとして管理し、さらに各タスクでデータ転送のために使用するデータ転送制御手段に関する情報と各タスクでデータ転送のために使用しているデータ転送制御手段の動作状態に関する情報とを各タスクに対応付けて管理するタスク管理機能と、
前記タスク管理機能によって管理されている他のタスクでデータ転送のために使用していないデータ転送制御手段があればそのデータ転送制御手段を選択し、前記複数のデータ転送制御手段のすべてが他のタスクによって使用されているときには前記タスク管理機能で管理されている動作状態がデータ転送中でないデータ転送制御手段を選択し、選択したデータ転送制御手段を当該新たなタスクでデータ転送のために使用するデータ転送制御手段として前記タスク管理機能によって管理させるタスクスケジュール機能と、
を実行するためのプログラムを記録することを特徴とする。
【００２２】
【発明の実施の形態】
以下、添付図面を参照して、本発明の実施の形態について説明する。
【００２３】
図１は、この実施の形態にかかるデータ転送システムの機能ブロック図である。図示するように、このデータ転送システムは、ホストコンピュータ０と、配下に入出力装置（Ｉ／Ｏ  ＤＥＶＩＣＥ）４１、４２を有する周辺制御装置４０と、配下に入出力装置５１、５２を有する周辺制御装置５０と、配下に入出力装置６１、６２を有する周辺制御装置６０とを有している。
【００２４】
ホストコンピュータ０は、タスクスケジュール装置４と、主記憶装置６と、データ転送制御装置１０、２０、３０とを備えている。また、ホストコンピュータ０上にソフトウェア的に実現されている機能として、チャネルプログラム（ＣＰ）１〜３、チャネルプログラム退避領域７〜９、タスク管理表５、及びカレントタスク情報１１、２１、３１が存在する。
【００２５】
チャネルプログラム１〜３は、ホストコンピュータ１のチャネルが入出力装置４１、４２、５１、５２、６１、６２を制御するためのプログラムであり、チャネル番号（制御すべき周辺制御装置の番号ＰＣＵ／配下の入出力装置の番号ＤＥＶＩＣＥ）と、入出力装置のアドレスや主記憶装置のアドレスと、入出力装置４１、４２、５１、５２、６１、６２の動作を規定するプログラムが記述されている。なお、チャネルプログラム１〜３は、プログラムを実行するＣＰＵ（Central Processing Unit）からの指示によって起動され、起動されたもののそれぞれがタスクスケジュール装置４によってタスクとして管理される。
【００２６】
チャネルプログラム退避領域７〜９は、チャネルプログラム１〜３のそれぞれに対応して設けられ、チャネルプログラム１〜３の実行途中の状態を格納する。チャネルプログラム退避領域７〜９には、後述するように他のタスクに切り換わる前のカレントタスク情報１１、２１、３１が、タスクスケジュール装置４によって退避される領域である。
【００２７】
タスクスケジュール装置４は、ＣＰＵからの指示によって起動されたチャネルプログラム１〜３に、それぞれユニークなタスク番号を付与する。タスクスケジュール装置４は、チャネルプログラム１〜３で使用するデータ転送制御装置１０、２０、３０を他のチャネルプログラム（タスクを意味する。以下、同じ）で使用していないものから優先して選択する。データ転送制御装置１０、２０、３０のすべてが他のチャネルプログラムで使用されている場合には、タスクスケジュール装置４は、データ転送状態でないデータ転送制御装置１０、２０、３０をチャネルプログラム１〜３で使用するものとして選択する。その際、選択したデータ転送制御装置１０、２０、３０に対応するカレントタスク情報１１、２１、３１が、チャネルプログラム退避領域７〜９に退避される。
【００２８】
タスク管理表５は、タスクスケジュール装置４によって管理され、起動されたチャネルプログラム１〜３に付与したタスク番号と、選択したデータ転送制御装置１０、２０、３０の番号（ＤＴＣ番号）と、データ転送制御装置１０、２０、３０の動作状態（ＤＴＣ状態）と、前述したチャネル番号とを対応付けて格納する。
【００２９】
主記憶装置６は、入出力装置４１、４２、５１、５２、６１、６２との間で転送されるデータを記憶する。
【００３０】
データ転送制御装置１０、２０、３０は、それぞれ周辺制御装置４０、５０、６０のすべてと論理的に接続可能である。データ転送制御装置１０、２０、３０は、それぞれタスクスケジュール装置４によって決められた周辺制御装置４０、５０、６０との協働により、主記憶装置６と入出力装置４１、４２、５１、５２、６１、６２との間でのデータ転送を制御する。
【００３１】
周辺制御装置４０、５０、６０は、それぞれの配下にある入出力装置４１、４２、５１、５２、６１、６２の動作を制御する。周辺制御装置４０、５０、６０は、バッファメモリを有しており、実質上同時に複数のデータ転送制御装置１０、２０、３０と協働して動作可能となっており、配下の入出力装置と主記憶装置６との間のデータ転送を、実質的に並行して行うことができるようになっている。
【００３２】
なお、チャネルプログラム１〜３、チャネルプログラム退避領域７〜９、及びタスク管理表５は、実際には、主記憶装置６の所定の領域に記憶されている。タスクスケジュール装置４は、ホストコンピュータ０のチャネルが後述するプログラムを実行することによって実現することができる。カレントタスク情報１１、２１、３１は、それぞれデータ転送装置１０、２０、３０のローカルメモリに記憶させるものとしても、主記憶装置６の所定の領域に記憶させるものとしてもよい。
【００３３】
以下、この実施の形態にかかるデータ転送システムの動作について説明する。
【００３４】
図２は、図１のタスクスケジュール装置４の処理を示すフローチャートである。このフローチャートの処理は、ホストコンピュータのＣＰＵが実行するプログラムによりチャネルプログラム１〜３のいずれかが起動され、そのことがタスクスケジュール装置４に通知されることによって開始する。なお、このフローチャートの処理は、起動されたチャネルプログラム１〜３毎に、それぞれ別々のプロセスとして実行される。
【００３５】
処理が開始すると、タスクスケジュール装置４は、まず、タスク管理表５のタスク番号の欄を参照し、タスク管理表５で管理可能なタスク番号のうちで他のチャネルプログラムに付与されていない未使用のタスク番号があるかどうかサーチする（ステップＳ１０１）。そして、タスクスケジュール装置４は、サーチの結果から未使用のタスク番号があるかどうかを判定する（ステップＳ１０２）。
【００３６】
未使用のタスク番号がない場合には、タスクスケジュール装置４は、ステップＳ２０１の判定処理を繰り返し、他のプロセスにおけるステップＳ１１８の処理（後述）でタスク番号が開放されるのを待ち合わせる。未使用のタスク番号がある場合には、タスクスケジュール装置４は、サーチされた未使用のタスク番号のいずれかに対応付けて、当該チャネルプログラムのチャネル番号をタスク管理表５に登録する（ステップＳ１０３）。
【００３７】
次に、タスクスケジュール装置４は、タスク管理表５のＤＴＣ番号の欄を参照し、他のチャネルプログラムで使用していないデータ転送制御装置１０、２０、３０をサーチする（ステップＳ１０４）。そして、タスクスケジュール装置４は、サーチの結果から未使用のデータ転送制御装置１０、２０、３０があるかどうかを判定する（ステップＳ１０５）。
【００３８】
未使用のデータ転送制御装置１０、２０、３０がある場合には、ステップＳ１０９の処理に進む。一方、未使用のデータ転送制御装置１０、２０、３０がない場合には、タスクスケジュール装置４は、タスク管理表５のＤＴＣ状態の欄を参照し、現在の動作状態がデータ転送中になっていないものをサーチする（ステップＳ１０６）。そして、タスクスケジュール装置４は、サーチの結果からデータ転送中の状態になっていないものがあるかどうかを判定する（ステップＳ１０７）。
【００３９】
データ転送中の状態になっていないものがない場合には、タスクスケジュール装置４は、ステップＳ１０７の処理を繰り返し、他のいずれかのチャネルプログラムによるデータ転送が中断されるのを待ち合わせる。一方、データ転送中の状態になっていないものがある場合には、タスクスケジュール装置４は、データ転送中の状態になっていないチャネルプログラムが使用するデータ転送制御装置１０、２０、３０に対応したカレントタスク情報１１、２１、３１をチャネルプログラム退避領域７〜９に退避し（ステップＳ１０８）、ステップＳ１０９の処理に進む。
【００４０】
ステップＳ１０９では、タスクスケジュール装置４は、ステップＳ１０４でサーチした未使用のデータ転送制御装置１０、２０、３０の番号、或いはステップＳ１０８でカレントタスク情報１１、２１、３１を退避したデータ転送制御装置１０、２０、３０の番号をタスク管理表５のＤＴＣ番号の欄に登録する。
【００４１】
さらに、タスクスケジュール装置４は、ＤＴＣ番号を登録したデータ転送制御装置１０、２０、３０に対応するカレントタスク情報１１、２１、３１に、ステップＳ１０３で付与したタスク番号、当該チャネルプログラムのチャネル番号、及び転送対象となるデータの主記憶装置６上のアドレスやデータ長を登録する（ステップＳ１１０）。
【００４２】
次に、タスクスケジュール装置４は、ステップＳ１０３で登録したチャネル番号に含まれる入出力装置４１、４２、５１、５２、６１、６２の番号、入出力装置４１、４２、５１、５２、６１、６２内でのアドレスと共に、データ転送の起動を登録したチャネル番号に含まれる周辺制御装置４０、５０、６０に通知する（ステップＳ１１１）。その後、タスクスケジュール装置４は、この通知に対してステップＳ２０２の処理（後述）で周辺制御装置４０、５０、６０から送られてくるタスク番号とＤＴＣ番号との受信を待ち合わせる（ステップＳ１１２）。
【００４３】
周辺制御装置４０、５０、６０からタスク番号とＤＴＣ番号とを受信すると、タスクスケジュール装置４は、周辺制御装置４０、５０、６０から受信したＤＴＣ番号のデータ転送制御装置１０、２０、３０に対応するカレントタスク情報１１、２１、３１として登録されているタスク番号を、周辺制御装置４０、５０、６０から受信したタスク番号と比較し（ステップＳ１１３）、比較結果が一致であるか不一致であるかを判定する（ステップＳ１１４）。
【００４４】
比較結果が不一致である場合には、ステップＳ１０９でＤＴＣ番号を登録したデータ転送制御装置１０、２０、３０が他のチャネルプログラムによって取得されてしまっているため、ステップＳ１０４の処理に戻ってＤＴＣ番号の再登録を行う。この際、チャネルプログラム退避領域７〜９に退避されているカレント情報を再登録したＤＴＣ番号のデータ転送制御装置１０、２０、３０に対応するカレント情報１１、２１、３１に復元する。
【００４５】
一方、比較結果が一致である場合には、タスクスケジュール装置４は、当該タスク番号に対応してタスク管理表５に登録されているＤＴＣ状態を、データ転送中に遷移させる（ステップＳ１１５）。さらに、タスクスケジュール装置４は、当該周辺制御装置４０、５０、６０にデータ転送の許可を通知する（ステップＳ１１６）。
【００４６】
その後、タスクスケジュール装置４は、この通知によって行われたデータ転送に対してステップＳ２０５の処理（後述）で周辺制御装置４０、５０、６０から送られてくる完了通知を待ち合わせる（ステップＳ１１７）。
【００４７】
周辺制御装置４０、５０、６０からの完了通知を受け取ると、タスクスケジュール装置４は、タスク管理表５内の当該タスク番号に対応するＤＴＣ番号、ＤＴＣ状態及びチャネル番号の欄を空き状態にして、他のチャネルプログラムが当該タスク番号を使用できるようにする（ステップＳ１１８）。そして、このフローチャートの処理を終了する。
【００４８】
図３は、図１の周辺制御装置４０の処理を示すフローチャートである（周辺制御装置５０、６０の処理も同じ）。周辺制御装置４０は、電源がオンされると図３の処理を開始し、前述したタスクスケジュール装置４から何らかの通知がされたかどうかを判定する（ステップＳ２０１）。タスクスケジュール装置４からの通知がないと判定している間は、周辺制御装置４０は、ステップＳ２０１の処理を繰り返し、タスクスケジュール装置４からの通知を待ち合わせる。
【００４９】
タスクスケジュール装置４からの通知がデータ転送の起動であると判定した場合は、周辺制御装置４０は、タスク番号とＤＴＣ番号とをタスクスケジュール装置４に送信して、当該ＤＴＣ番号に対応するタスクスケジュール装置１０、２０、３０が周辺制御装置４０の配下にある入出力装置４１、４２にデータ転送をするのに使用可能かを確認する（ステップＳ２０２）。その後、ステップＳ２０１の処理に戻り、周辺制御装置４０は、再度タスクスケジュール装置４からの通知を待ち合わせる。
【００５０】
一方、タスクスケジュール装置４からの通知がデータ転送の許可であると判定した場合には、周辺制御装置４０は、ステップＳ２０２でＤＴＣ番号が通知されているデータ転送制御装置１０、２０、３０との協働作業により、主記憶装置６と配下の入出力装置４１、４２との間でデータ転送を実行する（ステップＳ２０３）。そして、ステップＳ２０４でデータ転送の完了を判別するまで、周辺制御装置４０は、データ転送の実行を継続する。
【００５１】
ステップＳ２０４でデータ転送の完了を判別すると、周辺制御装置４０は、タスクスケジュール装置４に対して、タスク番号及びＤＴＣ番号と共に、データ転送の完了を通知する（ステップＳ２０５）。その後、ステップＳ２０１の処理に戻り、周辺制御装置４０は、再度タスクスケジュール装置４からの通知を待ち合わせる。
【００５２】
なお、図３のフローチャートの処理は、周辺制御装置４の電源がオフされた場合や、エラーが生じた場合に強制的に終了させられる他は、常時実行されることとなる。
【００５３】
以下、この実施の形態にかかるデータ転送システムの動作例を、具体例に基づいて説明する。ここでは、主記憶装置６と入出力装置４１との間でデータ転送を行う場合、タスク番号１００が他のチャネルプログラムによって使用されていないものとして、次の２つの場合を例として説明する。
【００５４】
Ｉ．データ転送制御装置１０が使用中であるが、データ転送制御装置２０が未使用である場合
この場合は、タスク番号１００が未使用であるため（ステップＳ１０１、Ｓ１０２）、起動されたチャネルプログラムにタスク番号１００が割り当てられ、まず、タスク管理表５のタスク番号１００に対応するチャネル番号の欄に、「ＰＣＵ４０／ＤＥＶＩＣＥ４１」が登録される（ステップＳ１０３）。
【００５５】
次に、データ転送制御装置１０が使用中であるが、データ転送制御装置２０が未使用であるため（ステップＳ１０４、Ｓ１０５）、タスク管理表５のタスク番号１００に対応するＤＴＣ番号に、「ＤＴＣ２０」が登録される（ステップＳ１０９）。そして、データ転送制御装置２０に対応するカレントタスク情報２１に、主記憶装置６のアドレスなどの他に、「タスク番号１００」と「ＰＣＵ４０／ＤＥＶＩＣＥ４１」が登録される（ステップＳ１１０）。
【００５６】
次に、タスク管理装置４から周辺制御装置４０にデータ転送の起動が通知される（ステップＳ１１１）。これに対する応答が返却され（ステップＳ２０２、Ｓ１１２）、タスク番号が一致すると（ステップＳ１１３、Ｓ１１４）、タスク管理表５のタスク番号１００に対応するＤＴＣ状態が「転送中」に遷移される（ステップＳ１１５）。
【００５７】
さらに、タスク管理装置４から周辺制御装置４０にデータ転送の許可が通知されることで、データ転送制御装置２０と周辺制御装置４０との協働によって、主記憶装置６と入出力装置４１との間でデータ転送が行われる（ステップＳ１１６、Ｓ２０３）。
【００５８】
ＩＩ．すべてのデータ転送制御装置１０、２０、３０が使用中で、データ転送制御装置３０が転送状態でない場合
この場合も、Ｉの場合と同様に、起動されたチャネルプログラムにタスク番号１００が割り当てられ、タスク管理表５のタスク番号１００に対応するチャネル番号の欄に、「ＰＣＵ４０／ＤＥＶＩＣＥ４１」が登録される（ステップＳ１０１〜Ｓ１０３）。
【００５９】
次に、データ転送制御装置１０、２０、３０のすべてが使用中であるが（ステップＳ１０４、Ｓ１０５）、データ転送制御装置３０が転送状態でないため（ステップＳ１０６、Ｓ１０７）、カレントタスク情報３１がチャネルプログラム退避領域に退避され（ステップＳ１０８）、タスク管理表５のタスク番号１００に対応するＤＴＣ番号に、「ＤＴＣ３０」が登録される（ステップＳ１０９）。そして、データ転送制御装置３０に対応するカレントタスク情報３１に、主記憶装置６のアドレスなどの他に、「タスク番号１００」と「ＰＣＵ４０／ＤＥＶＩＣＥ４１」が登録される（ステップＳ１１０）。
【００６０】
次に、タスク管理装置４から周辺制御装置４０にデータ転送の起動が通知される（ステップＳ１１１）。これに対する応答が返却され（ステップＳ２０２、Ｓ１１２）、タスク番号が一致すると（ステップＳ１１３、Ｓ１１４）、タスク管理表５のタスク番号１００に対応するＤＴＣ状態が「転送中」に遷移される（ステップＳ１１５）。
【００６１】
さらに、タスク管理装置４から周辺制御装置４０にデータ転送の許可が通知されることで、データ転送制御装置３０と周辺制御装置５０との協働によって、主記憶装置６と入出力装置４１との間でデータ転送が行われる（ステップＳ１１６、Ｓ２０３）。
【００６２】
以上説明したように、この実施の形態にかかるデータ転送システムでは、データ転送制御装置１０、２０、３０が使用中であっても、他に使用されていないデータ転送制御装置があれば、これを使用して同一の周辺制御装置４０、５０、６０の配下にある入出力装置４１、４２、５１、５２、６１、６２と主記憶装置６との間のデータ転送を行うことができる。このため、他の入出力装置と主記憶装置６との間のデータ転送の終了を待つことなく、データ転送を効率的に行うことができる。
【００６３】
さらに、この実施の形態にかかるデータ転送システムでは、データ転送制御装置１０、２０、３０が使用中であっても、データの転送動作中でないデータ転送制御装置があれば、これを使用して同一の周辺制御装置４０、５０、６０の配下にある入出力装置４１、４２、５１、５２、６１、６２と主記憶装置６との間のデータ転送を行うことができる。このため、他の入出力装置と主記憶装置６との間のデータ転送の終了を待つことなく、データ転送を効率的に行うことができる。
【００６４】
この場合において、転送動作中でないタスクに関して登録されているカレントタスク情報１１、２１、３１がチャネルプログラム退避領域７〜９に退避され、退避したカレントタスク情報を復帰させてデータ転送を行なうことによって、エラーを生じさせることなく、起動されたすべてのチャネルプログラム１〜３（タスク）によるデータ転送を行うことができる。
【００６５】
上記の実施の形態では、データ転送制御装置１０、２０、３０と周辺制御装置４０、５０、６０とは、それぞれ３つずつであり、周辺制御装置４０、５０、６０は、それぞれ配下に２つずつの入出力装置４１、４２、５１、５２、６１、６２を有するものとしていた。しかしながら、本発明においてこれらの数は任意である。
【００６６】
上記の実施の形態では、タスク管理装置４の機能は、チャネルが図２のフローチャートの処理を実行することによって実現されるものとして説明した。これに対して、図２のフローチャートに示すプログラムは、磁気ディスクや光磁気ディスクなどのコンピュータ読み取り可能な記録媒体に格納して配布するものとしてもよい。
【００６７】
【発明の効果】
以上説明したように、本発明によれば、同一の周辺制御装置の配下にある周辺装置に対してのデータ転送が終了していなくても、他の周辺装置に対してのデータ転送が行えるようになるため、データ転送を効率よく行うことができる。
【図面の簡単な説明】
【図１】本発明の実施の形態にかかるデータ転送システムの機能ブロック図である。
【図２】図１のタスクスケジュール装置の処理を示すフローチャートである。
【図３】図１の周辺制御装置の処理を示すフローチャートである。
【符号の説明】
１〜３  チャネルプログラム（ＣＰ）
４  タスクスケジュール装置
５  タスク管理表
６  主記憶装置
７〜９  チャネルプログラム（ＣＰ）退避領域
１０、２０、３０  データ転送制御装置
１１、２１、３１  カレントタスク情報
４０、５０、６０  周辺制御装置
４１、４２、５１、５２、６１、６２  入出力装置（Ｉ／Ｏ  ＤＥＶＩＣＥ）
【図１】
0003853535.tif 000002
【図２】
0003853535.tif 000003
【図３】
0003853535.tif 000004