(57)【要約】【課題】メインメモリと周辺装置との間でデータを転送すること。【解決手段】メインメモリ１３０を具備する中央処理装置１００と、ＰＣＩ  Ｅｘｐｒｅｓｓカード２６０〜２６３及びローカルメモリ２３０を具備する入出力処理装置２００とを備え、入出力処理装置２００は、ＰＣＩ  Ｅｘｐｒｅｓｓカード２６０〜２６３からメインメモリ１３０に対して直接データ転送を行う第１の経路と、ＰＣＩ  Ｅｘｐｒｅｓｓカード２６０〜２６３又はメインメモリ１３０からローカルメモリ２３０に一度データ転送した後、メインメモリ１３０又はＰＣＩ  Ｅｘｐｒｅｓｓカード２６０〜２６３にデータ転送を行う第２の経路とを有する。【選択図】図１
2011186658.tif 000002
【特許請求の範囲】
【請求項１】
メインメモリと周辺装置との間でデータを転送する情報処理装置であって、
前記メインメモリを具備する中央処理装置と、
ＰＣＩ  Ｅｘｐｒｅｓｓカード及びローカルメモリを具備する入出力処理装置と
を備え、
前記入出力処理装置は、
前記ＰＣＩ  Ｅｘｐｒｅｓｓカードから前記メインメモリに対して直接データ転送を行う第１の経路と、
前記ＰＣＩ  Ｅｘｐｒｅｓｓカード又は前記メインメモリから前記ローカルメモリに一度データ転送した後、前記メインメモリ又は前記ＰＣＩ  Ｅｘｐｒｅｓｓカードにデータ転送を行う第２の経路と
を有する情報処理装置。
【請求項２】
前記中央処理装置は、演算処理装置を更に具備し、
前記入出力装置は、プロセッサ及びＩ／Ｏコントローラを更に具備すると共に、前記演算処理装置より前記メインメモリと前記周辺装置との間のデータ転送を指示されたとき、前記プロセッサに内蔵されたファームウェアがそれを解析し、前記Ｉ／Ｏコントローラのリソースと比較して、リソースが十分であり、データ転送中に前記プロセッサが前記Ｉ／Ｏコントローラに介在しないと判断した場合、前記ファームウェアは前記ＰＣＩ  Ｅｘｐｒｅｓｓカードをマスタとして前記第１の経路を使用してデータ転送する
請求項１に記載の情報処理装置。
【請求項３】
前記Ｉ／Ｏコントローラは、ＤＭＡコントローラを具備し、
前記入出力処理装置は、前記Ｉ／Ｏコントローラのリソースが不十分であり、データ転送中に前記プロセッサが前記Ｉ／Ｏコントローラに介在する必要があると判断した場合、前記ファームウェアは入力転送の場合は前記ＰＣＩ  Ｅｘｐｒｅｓｓカードをマスタとして前記ローカルメモリに前記第２の経路を使用してデータ転送した後、前記ＤＭＡコントローラをマスタとして前記ローカルメモリのデータを前記第２の経路を使用して前記メインメモリに転送し、出力転送の場合は前記ＤＭＡコントローラをマスタとして前記メインメモリから前記ローカルメモリに前記第２の経路を使用してデータ転送をした後、前記ＰＣＩ  Ｅｘｐｒｅｓｓカードをマスタとして前記ローカルメモリから前記周辺装置に前記第２の経路を使用してデータ転送する
請求項２に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関する。特に本発明は、メインメモリと周辺装置との間でデータを転送する情報処理装置に関する。
【背景技術】
【０００２】
近年、磁気ディスク等の周辺装置は、性能が向上してきている。また、ＰＣＩ  Ｅｘｐｒｅｓｓ等の高速なＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）インターフェースも登場してきている。これに伴い、入出力処理装置は更なる性能向上が必要になってきている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開昭６３−２４５７５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、現状では、周辺装置やＩ／Ｏインターフェースの高速化に対して入出力処理装置のＩ／Ｏコントローラやプロセッサの性能向上が追いつかず、入出力処理装置の転送効率が低下して周辺装置やＩ／Ｏインターフェースの性能を十分発揮できていない。また、入出力処理装置の性能を向上するにはＩ／ＯコントローラをカスタムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）として設計する方法や、プロセッサを高性能化する方法が考えられるが、近年少量生産の装置についてはＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）による開発が行われるため、ハードウェア量や性能に制限があり十分に性能を発揮できない状態になっており、また、プロセッサについてもコスト削減のため必要最低限の性能しか与えられないのが現状である。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明の第１の形態によると、メインメモリと周辺装置との間でデータを転送する情報処理装置であって、メインメモリを具備する中央処理装置と、ＰＣＩ  Ｅｘｐｒｅｓｓカード及びローカルメモリを具備する入出力処理装置とを備え、入出力処理装置は、ＰＣＩ  Ｅｘｐｒｅｓｓカードからメインメモリに対して直接データ転送を行う第１の経路と、ＰＣＩ  Ｅｘｐｒｅｓｓカード又はメインメモリからローカルメモリに一度データ転送した後、メインメモリ又はＰＣＩ  Ｅｘｐｒｅｓｓカードにデータ転送を行う第２の経路とを有する。
【０００６】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となり得る。
【発明の効果】
【０００７】
以上の説明から明らかなように、この発明によれば、アドレスカウント制御配列の再設定が必要なデータ転送とアドレスカウント制御配列の再設定が必要でないデータ転送の経路が分離される。その結果、プロセッサがアドレスカウント制御配列を再設定している間にもバッファは満杯にならず、ＰＣＩ  Ｅｘｐｒｅｓｓカードによるデータ転送は継続されるため、入出力処理装置のデータ転送効率が向上する。
【０００８】
また、プロセッサがアドレスカウント制御配列を再設定している間もＰＣＩ  Ｅｘｐｒｅｓｓによるデータ転送は停止しないので、プロセッサの処理時間を考慮してバッファを大量に持つ必要がなくなるのでハードウェア量を削減することが可能になる。
【図面の簡単な説明】
【０００９】
【図１】一実施形態に係る情報処理装置１０００の利用環境の一例を示す図である。
【図２】Ｉ／Ｏコントローラ２１０の構造を示す図である。
【図３】転送制御装置２１５の構造を示す図である。
【図４】アドレスカウント制御配列ｎの構造を示す図である。
【図５】メモリ空間２１ａを示す図である。
【図６】データ転送処理の動作フローの一例を示す図である。
【図７】直接転送処理の動作フローの一例を示す図である。
【図８】間接転送処理の動作フローの一例を示す図である。
【図９】間接入力転送処理の動作フローの一例を示す図である。
【図１０】間接出力転送処理の動作フローの一例を示す図である。
【図１１】チャネルプログラム１３ａを示す図である。
【図１２】メインメモリ１３０のデータ転送対象空間とチャネルプログラム１３ａとの関係を示す図である。
【図１３】Ｉ／Ｏコントローラのメモリ空間２１ａとアドレスカウント制御配列ｎとメインメモリ１３０の転送空間の関係を示す図である。
【図１４】チャネルプログラム１３ａの形式を示す図である。
【図１５】Ｉ／Ｏコントローラのメモリ空間２１ａとアドレスカウント制御配列ｎとメインメモリ１３０のアドレス空間の関係を示す図である。
【発明を実施するための形態】
【００１０】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１１】
図１は、一実施形態に係る情報処理装置１０００の利用環境の一例を示す。情報処理装置１０００は一般的にメインフレームやサーバと呼ばれるコンピューターシステムで、中央処理装置１００と入出力処理装置２００がバス３００によって接続された構造になっている。また、情報処理装置１０００の外部には磁気ディスク装置等の周辺装置２０００、３０００がそれぞれ接続ケーブル２００１、２００２、３００１、３００２によって接続されており、情報処理装置１０００は周辺装置２０００、３０００との間でデータ転送を行い、処理を行っている。
【００１２】
中央処理装置１００にはソフトウェアの命令を実行し、処理を行う演算処理装置１１０〜１１３と、演算処理装置１１０〜１１３が実行するソフトウェア命令や処理するデータ等を格納するメインメモリ１３０を持ち、また、演算処理装置１１０〜１１３や入出力処理装置２００からのメインメモリ１３０に対する読み出しや書き込み等の要求を処理し、演算処理装置１１０〜１１３と入出力処理装置２００の間の通信を処理するメモリコントローラ１２０を持っており、それぞれバス１４０とバス１５０とバス３００によって接続されている。
【００１３】
入出力処理装置２００はメインメモリ１３０と周辺装置２０００、３０００との間のデータ転送を行うＩ／Ｏコントローラ２１０と、周辺装置２０００、３０００を接続して入出力処理装置２００と周辺処理装置２０００、３０００との間のデータ転送を行うＰＣＩ  Ｅｘｐｒｅｓｓカード２６０〜２６３と、Ｉ／Ｏコントローラ２１０とＰＣＩ  Ｅｘｐｒｅｓｓカード２６０〜２６３をそれぞれ接続し、それぞれの間でのデータ転送及び通信を行うスイッチ２４０を持っており、それぞれバス２５２とバス２７０〜２７３によって接続されている。また、入出力処理装置２００には演算処理装置１１０〜１１３の指示により、Ｉ／Ｏコントローラ２１０とＰＣＩ  Ｅｘｐｒｅｓｓカード２６０〜２６３を制御し、メインメモリ１３０と周辺装置２０００、３０００との間のデータ転送を制御するプロセッサ２２０とプロセッサで使用されるデータや転送データを格納するローカルメモリ２３０も持っており、プロセッサ２２０とローカルメモリ２３０はバス２５３により接続され、プロセッサ２２０とＩ／Ｏコントローラ２１０とスイッチ２４０はそれぞれバス２５０とバス２５１により接続されている。
【００１４】
Ｉ／Ｏコントローラ２１０の構造は図２のようになっており、ローカルメモリ２３０とメインメモリ１３０の間のデータ転送を行うＤＭＡコントローラ２１１を持っている。また、バス３００とバス２５０とバス２５２の性能差に対応するための緩衝バッファをそれぞれのデータ転送の経路に持っており、Ｉ／Ｏコントローラ２１０とＰＣＩ  Ｅｘｐｒｅｓｓカード２６０〜２６３の経路にはバッファ２１４を持ち、Ｉ／Ｏコントローラ２１０とローカルメモリ２３０の経路にはバッファ２１２を持ち、Ｉ／Ｏコントローラ２１０とメインメモリ１３０の経路にはバッファ２１３を持っている。そして、データ転送の経路の中心には転送制御装置２１５を持っており、それぞれバス２１６、２１７、２１８によって接続されている。
【００１５】
転送制御装置２１５の構造は図３のようになっている。転送制御装置２１５とはＰＣＩ  Ｅｘｐｒｅｓｓカード２６０〜２６３とＤＭＡコントローラ２１１からのメインメモリ１３０に対する要求を変換する装置である。メインメモリ１３０のアドレス空間とＰＣＩ  Ｅｘｐｒｅｓｓカード２６０〜２６３とＤＭＡコントローラ２１１が要求するアドレス空間は異なっており、転送制御装置２１５ではＰＣＩ  Ｅｘｐｒｅｓｓカード２６０〜２６３とＤＭＡコントローラ２１１からの要求アドレスよりアドレスカウント変換装置２１５−ａが対応するアドレスカウント制御配列０〜６３を選択することによって対応するメインメモリ１３０のアドレス空間の要求アドレスに変換し、バス２１６に対して要求を発行する。
【００１６】
アドレスカウント制御配列ｎの構造は図４のようになっている。アドレスカウント制御配列ｎは７個のエントリｎ−２００〜２７０とカレントエントリポインタｎ−１００を持ち、各エントリｎ−２ｐ０にはメインメモリ１３０のデータ転送アドレスを示すアドレスフィールドｎ−２ｐ１と、転送するカウントを示すカウントフィールドｎ−２ｐ２と、最後のエントリであること等を示すフラグフィールドｎ−２ｐ３によって構成されている。また、カレントエントリポインタｎ−１００は現在のデータ転送で使用されているエントリｎ−２ｐ０を指している。
【００１７】
Ｉ／Ｏコントローラ２１０にはＰＣＩ  Ｅｘｐｒｅｓｓカード２６０〜２６３とＤＭＡコントローラ２１１のデータ転送用のメモリ空間２１ａを持っており、十分な固定サイズの６４個の転送空間２１ａ−０〜６３に分割されている（図５）。この転送空間２１ａ−ｎとアドレスカウント制御配列ｎは対応しており、ＰＣＩ  Ｅｘｐｒｅｓｓカード２６０〜２６３又はＤＭＡコントローラ２１１が転送空間２１ａ−ｎの先頭アドレスから連続してデータ転送を行うと、アドレスカウント変換装置２１５−ａは対応するアドレスカウント制御配列ｎを選択し、カレントエントリポインタｎ−１００の示すエントリｎ−２００のアドレスフィールドｎ−２０１の示すアドレスに変換してメインメモリ１３０に要求を発行する。このとき、転送したカウント分だけアドレスフィールドｎ−２０１の値は加算され、カウントフィールドｎ−２０２の値は減算される。そして、カウントフィールドｎ−２０２の値が０になったとき、アドレスカウント変換装置２１５−ａはカレントエントリポインタｎ−１００を加算して次のエントリｎ−２１０を示すようにし、上記と同様に処理する。また、カレントエントリポインタｎ−１００が最終エントリｎ−２７０を示しているときにカウントフィールドｎ−２７２が０になり、フラグフィールドｎ−２７３が最終エントリであることを示していなかった場合、アドレスカウント変換装置２１５−ａは転送を一旦停止し、プロセッサ２２０に割込でエントリ終了を報告して次のアドレスカウント制御配列の設定を要求する。なお、エントリｎ−２ｐ０のフラグフィールドｎ−２ｐ０が最終エントリであることを示していた場合、アドレスカウント変換装置２１５−ａはアドレスカウント制御配列ｎに対するデータ転送を終了する。このとき、ＰＣＩ  Ｅｘｐｒｅｓｓカード２６０〜２６３又はＤＭＡコントローラ２１１から引き続きデータ転送要求がある場合、アドレスカウント変換装置２１５−ａはメインメモリに対する書き込みの場合はその要求を破棄し、読み出しの場合は０を返す。
【００１８】
入出力処理装置２００のプロセッサ２２０は入出力処理装置として動作するためのファームウェア２２１〜２２５を内蔵している。その中には演算処理装置１１０〜１１３からのデータ転送指示を処理する図６のデータ転送処理２２１を持っており、また、データ転送で使用するアドレスカウント制御配列ｎのエントリ数に応じて、ＰＣＩ  Ｅｘｐｒｅｓｓカード２６０〜２６３とメインメモリ１３０の間のデータ転送をＰＣＩ  Ｅｘｐｒｅｓｓカード２６０〜２６３とメインメモリ１３０の間で直接転送する図７の直接転送処理２２２と、メインメモリ１３０又はＰＣＩ  Ｅｘｐｒｅｓｓカード２６０〜２６３からローカルメモリ２３０にデータを転送したのち、ローカルメモリ２３０からメインメモリ１３０又はＰＣＩ  Ｅｘｐｒｅｓｓカード２６０〜２６３に転送する図８、９、１０の間接転送処理２２３を持っている。なお、入出力処理装置２００のデータ転送では、ＰＣＩ  Ｅｘｐｒｅｓｓカード２６０〜２６３がマスタとなって行う場合と、ＤＭＡコントローラ２１１がマスタとなって行う場合がある。前者はＰＣＩ  Ｅｘｐｒｅｓｓカード２６０〜２６３がメインメモリ１３０又はローカルメモリ２３０に対して要求を行う場合で、後者はＤＭＡコントローラ２１１がメインメモリ１３０又はローカルメモリ２３０に対して要求を行う場合である。
【００１９】
本発明の実施例である図１の情報処理装置１０００においてメインメモリ１３０と周辺装置２０００、３０００の間でデータ転送を行う場合、演算処理装置１１０〜１１３はソフトウェアの指示により図１１に示すチャネルプログラム１３ａをメインメモリ１３０上に作成し、入出力処理装置２００にチャネルプログラム１３ａの実行を指示する。チャネルプログラム１３ａは処理毎に複数のエントリ１３ａ−ｍに分割されており、各エントリ１３ａ−ｍは指示を示すコマンド１３ａ−ｍ−０と、コマンド１３ａ−ｍ−０を拡張したり最後のエントリであること等を示すフラグ１３ａ−ｍ−１と、データ転送長を示すカウント１３ａ−ｍ−２と、データ転送対象となるメインメモリ１３０のアドレス１３ａ−ｍ−３によって構成されている。
【００２０】
実際にこのチャネルプログラム１３ａによって入出力処理装置２００にデータ転送を指示する場合、メインメモリ１３０のデータ転送対象空間とチャネルプログラム１３ａとの関係は図１２のようになる。一般的に入出力処理装置２００はアドレス変換機能を持っており、チャネルプログラム１３ａにおいてメインメモリ１３０のデータ転送対象アドレスに論理アドレス空間を指定することが可能である。図１２のチャネルプログラム１３ａではアドレス１３ａ−０−３でデータ転送対象の先頭論理アドレスを示し、カウント１３ａ−０−２は論理アドレス空間における転送サイズを示している。一般的に論理アドレス空間はソフトウェアによって定義される空間でページと呼ばれる固定長の空間で区切られ、ページ毎に実際の物理メモリに割り当てられる。各ページに割り当てる物理メモリのアドレスは固定長でアライメントされた任意のアドレスとなるので、図１２のようにデータ転送対象アドレスが論理アドレス空間上で連続していたとしても物理アドレス空間上ではページ毎に不連続となる場合がある。一般的に入出力処理装置２００はメインメモリ１３０の物理アドレス空間に対してしかデータ転送できないので、指定された論理アドレスをページ毎に物理アドレスに変換し、その物理アドレスに対してページサイズ分だけデータ転送することをカウント１３ａ−０−２分だけ行う必要がある。
【００２１】
図１２のチャネルプログラム１３ａを実施例の入出力処理装置２００で実行する場合、次のようになる。入出力処理装置２００は演算処理装置１１０（１１１、１１２、１１３）よりデータ転送の指示を受けると、プロセッサ２２０上で図６のデータ転送処理２２１を実行する。データ転送処理２２１ではチャネルプログラム１３ａをメインメモリ１３０より読み出し、その内容を解析して全てのデータ転送を完了させるのに必要となるアドレスカウント制御配列ｎのエントリ数を求める。この場合、チャネルプログラム１３ａは論理アドレス空間を指定しているので、ページ数ｒ＋１が必要なエントリ数となる。そして、必要エントリ数ｒ＋１がアドレスカウント制御配列ｎの最大エントリ数である８と比較され、ｒ＋１が８以下ならば図７の直接転送処理２２２が実行され、ｒ＋１が８を超える場合は図８の間接転送処理２２３が実行される。
【００２２】
直接転送処理２２２では転送制御装置２１５よりアドレスカウント制御配列ｎを取得し（２２２−１）、チャネルプログラム１３ａを解析してアドレスカウント制御配列ｎの各エントリｎ−２ｐ０に設定する情報を求めて設定する（２２２−２）。このとき、転送アドレスとして指定されたアドレスは論理アドレスであるので、直接転送処理２２２はチャネルプログラム１３ａで指定されたアドレス１３ａ−０−３を物理アドレスに変換し、また、転送対象となる各ページの先頭物理アドレスをアドレス１３ａ−０−３とページサイズの加算により求めた値を物理アドレスに変換することを、アドレス１３ａ−０−３からのオフセットがカウント１３ａ−０−２分になるまで行う。そして、各ページ毎に求めた物理アドレスとカウントをアドレスカウント制御配列ｎの各エントリｎ−２ｐ０に設定し、また、最後の転送となるエントリｎ−２ｐ０のフラグｎ−２ｐ３にはこのエントリが最後であることを示す情報を設定する。
【００２３】
そして、カレントエントリポインタｎ−１００を０に設定し（２２２−３）、チャネルプログラム１３ａを解析してＰＣＩ  Ｅｘｐｒｅｓｓカード２６０（２６１、２６２、２６３）に設定する情報を求めてＰＣＩ  Ｅｘｐｒｅｓｓカード２６０（２６１、２６２、２６３）に設定する（２２２−４）。このとき、ＰＣＩ  Ｅｘｐｒｅｓｓカード２６０（２６１、２６２、２６３）には転送カウントとしてカウント１３ａ−０−２や転送方向、周辺装置２０００、３０００側の情報等が設定される。次にＰＣＩ  Ｅｘｐｒｅｓｓカード２６０（２６１、２６２、２６３）にアドレスカウント制御配列ｎに対応するＩ／Ｏコントローラ転送空間２１ａ−ｎに対してデータ転送するよう設定してデータ転送の起動を指示し（２２２−５、２２２−６）、ＰＣＩ  Ｅｘｐｒｅｓｓカード２６０（２６１、２６２、２６３）からの転送終了報告を待ち合わせる（２２２−７）。
【００２４】
ＰＣＩ  Ｅｘｐｒｅｓｓカード２６０（２６１、２６２、２６３）はデータ転送の起動を指示されると、設定された情報に基づき周辺装置２０００、３０００とアドレスカウント制御配列ｎに対応するＩ／Ｏコントローラ転送空間２１ａ−ｎの間でデータ転送を行う。このとき、アドレスカウント制御配列ｎではカレントエントリポインタｎ―１００で示されるエントリｎ−２００のアドレスｎ−２０１で示されるメインメモリ１３０のデータがＰＣＩ  Ｅｘｐｒｅｓｓカード２６０（２６１、２６２、２６３）に設定された転送方向に従って転送され、その度にアドレスｎ−２０１は転送サイズ分加算され、カウントｎ−２０２は転送サイズ分減算される。そして、カウントｎ−２０２が０になったときカレントエントリポインタｎ−１００は１加算されて次のエントリｎ−２１０を示すようになり、同様にデータ転送処理が行われる。そして、カレントエントリポインタｎ−１００の示すエントリｎ−２ｐ０のカウントｎ−２ｐ２が０になり、フラグｎ−２ｐ３が最後のエントリであること示していたときデータ転送が終了する。また、ＰＣＩ  Ｅｘｐｒｅｓｓカード２６０（２６１、２６２、２６３）はデータ転送が終了するとプロセッサ２２０に割込でデータ転送終了を報告する。
【００２５】
そして、ＰＣＩ  Ｅｘｐｒｅｓｓカード２６０（２６１、２６２、２６３）からのデータ転送終了報告によりデータ転送の終了を確認すると直接転送処理２２２はアドレスカウント制御配列ｎを解放して処理を終え（２２２−８）、データ転送処理２２１は演算処理装置１１０（１１１、１１２、１１３）に転送終了を報告し、データ転送処理を終える（２２１−６）。
【００２６】
また、間接転送処理２２３ではチャネルプログラム１３ａを解析して周辺装置２０００、３０００からメインメモリ１３０に対して転送する入力転送か、メインメモリ１３０から周辺装置２０００、３０００に対して転送する出力転送か判断し（２２３−１、２２３−２）、入力転送ならば間接入力転送処理２２４が実行され（２２３−３）、出力転送ならば間接出力転送処理２２５が実行される（２２３−４）。
【００２７】
間接入力転送処理２２４ではチャネルプログラム１３ａを解析してＰＣＩ  Ｅｘｐｒｅｓｓカード２６０（２６１、２６２、２６３）に設定する情報を求め、ＰＣＩ  Ｅｘｐｒｅｓｓカード２６０（２６１、２６２、２６３）に設定する（２２４−１）。このとき、ＰＣＩ  Ｅｘｐｒｅｓｓカード２６０（２６１、２６２、２６３）には転送カウントとしてカウント１３ａ−０−２や転送方向、周辺装置２０００、３０００側の情報等が設定される。そして、ＰＣＩ  Ｅｘｐｒｅｓｓカード２６０（２６１、２６２、２６３）にローカルメモリ２３０に対してデータ転送するように転送情報を設定してデータ転送の起動を指示し（２２４−２、２２４−３）、ＰＣＩ  Ｅｘｐｒｅｓｓカード２６０（２６１、２６２、２６３）からのデータ転送の終了報告を待ち合わせる（２２３−４）。ＰＣＩ  Ｅｘｐｒｅｓｓカード２６０（２６１、２６２、２６３）はデータ転送を指示されると設定された情報に基づき周辺装置２０００、３０００からデータを読み出してローカルメモリ２３０にデータを転送し、データ転送が終了したときプロセッサ２３０に割込で転送終了を報告する。
【００２８】
データ転送が終了すると直接転送処理２２２と同様に転送制御装置２１５よりアドレスカウント制御配列ｎを取得し（２２４−５）、チャネルプログラム１３ａを解析してアドレスカウント制御配列ｎの各エントリｎ−２ｐ０に設定する情報を求めて設定し、カレントエントリポインタｎ−１００を０に設定する（２２４−６、２２４−７）。この処理は直接転送処理２２２の処理（２２２−２、２２２−３）と同じである。ただし、アドレスカウント制御配列ｎに設定すべきエントリ数がアドレスカウント制御配列ｎのエントリ数を超えているので直接転送処理２２２とは異なり、ここではフラグｎ−２ｐ３にエントリが最後であることを示す情報は設定されない。
【００２９】
次に、チャネルプログラム１３ａを解析してＤＭＡコントローラ２１１に設定する情報を求め、ＤＭＡコントローラ２１１に設定する（２２４−８）。このとき、ＤＭＡコントローラ２１１には転送カウントとしてカウント１３ａ−０−２や転送方向等が設定される。そして、ＤＭＡコントローラ２１１にローカルメモリ２３０からアドレスカウント制御配列ｎのＩ／Ｏコントローラ転送空間２１ａ−ｎに対してデータ転送するように設定してデータ転送の起動を指示し、ＤＭＡコントローラ２１１からの転送終了報告か転送制御装置２１５からのエントリ終了報告を待ち合わせる（２２４−１０、２２４−１１）。
【００３０】
ＤＭＡコントローラ２１１はデータ転送の起動を指示されると、設定された情報に従ってデータ転送を行う。このとき、ＤＭＡコントローラ２１１はローカルメモリ２３０よりデータを読み出し、アドレスカウント制御配列ｎに対応するＩ／Ｏコントローラ転送空間２１ａ−ｎに対してデータを転送する処理をカウント１３ａ−０−２の分だけ行う。これにより、アドレスカウント制御配列ｎは直接転送処理２２２の時と同様に動作するが、最終エントリｎ−２７０のフラグｎ−２７３にはデータ転送の最後のエントリであることを示していないので、カウントｎ−２７２が０になったとき、転送制御装置２１５はプロセッサ２１５に割込でエントリの終了を報告する。なお、ＤＭＡコントローラは転送カウントが０になったとき転送終了をプロセッサ２２０に割込で報告する。
【００３１】
次に、転送制御装置２１５からエントリ終了報告又はＤＭＡコントローラ２１１から転送終了報告があるとそれを確認し（２２４−１２）、エントリ終了報告ならばチャネルプログラム１３ａをデータ転送した分だけ進める（２２４−１４）。図１２のチャネルプログラム１３ａの例ではエントリは１つしかないが、間接入力転送処理２２４ではページ単位にアドレスカウント制御配列ｎに情報を設定してデータ転送を行っているので、チャネルプログラム１３ａのアドレス１３ａ−０−３とカウント１３ａ−０−２を転送したカウントで補正する。なお、チャネルプログラムの進め方はチャネルプログラムの形式によって様々だが、どのようにチャネルプログラムの形式や進め方については本発明の範囲ではないので詳細は記述しない。
【００３２】
次に、（２２４−６、２２４−７）と同様にチャネルプログラム１３ａを解析してアドレスカウント制御配列ｎの各エントリｎ−２ｐ０に設定する情報を求めて設定し、カレントエントリポインタｎ−１００に０を設定する（２２４−１５、２２５−１６）。このとき、チャネルプログラム１３ａで指定された全ての転送が終了するならば、最後の転送となるエントリｎ−２ｐ０のフラグｎ−２ｐ３に最後のエントリであることを示す。これは、直接転送処理２２２の（２２２−５）と同じである。そして、転送制御装置２１５に転送再開を指示する（２２４−１７）。なお、（２２４−１４〜２２４−１７）の処理を行っている間は間接転送処理２２３によって行われているデータ転送は停止してしまう。その間に直接転送処理２２５で行われるデータ転送は別の転送パスとなるので実行できる。
【００３３】
そして、再度ＤＭＡコントローラ２１１の転送終了報告か転送制御装置２１５のエントリ終了報告を待ち合わせ（２２４−１１）、ＤＭＡコントローラ２１１の転送終了報告ならばアドレスカウント制御配列ｎを解放し（２２４−１３）、間接入力転送処理２２４、及び間接転送処理２２３を終了し、ＥＰＵ１１０（１１１、１１２、１１３）に転送終了を報告して（２２１−６）処理を終える。
【００３４】
また、間接出力転送処理２２５は図１０のようになる。まず、転送制御装置２１５に指示を出してアドレスカウント制御配列ｎを取得し（２２５−１）、チャネルプログラム１３ａを解析してアドレスカウント制御配列ｎに設定する情報を求めて設定してカレントエントリポインタｎ−１００を０に設定する（２２５−２、２２５−３）。この処理は直接転送処理２２２の処理（２２２−２、２２２−３）と同じである。ただし、アドレスカウント制御配列ｎに設定すべきエントリ数がアドレスカウント制御配列ｎのエントリ数を超えているので直接転送処理２２２とは異なり、ここではフラグｎ−２ｐ３にエントリが最後であることを示す情報は設定されない。次に、チャネルプログラム１３ａを解析してＤＭＡコントローラ２１１に設定する情報を求めて設定する（２２５−４）。ここでは、転送カウントとしてカウント１３ａ−０−２や転送方向等が設定される。そして、ＤＭＡコントローラ２１１にアドレスカウント制御配列ｎのＩ／Ｏコントローラ転送空間２１ａ−ｎからローカルメモリ２３０に対してデータ転送するように設定して転送起動を指示し（２２５−５、２２５−６）、ＤＭＡコントローラ２１１からの転送終了報告又は転送制御装置２１５からのエントリ終了報告を待ち合わせる（２２５−７）。
【００３５】
ＤＭＡコントローラ２１１は転送を指示されると、間接入力転送処理２２４と同様に処理する。異なるのは、間接入力転送処理２２４ではローカルメモリ２３０からアドレスカウント制御配列ｎのＩ／Ｏコントローラ転送空間２１ａ−ｎにデータ転送したのに対し、間接出力転送処理２２４ではアドレスカウント制御配列ｎのＩ／Ｏコントローラ転送空間２１ａ−ｎからローカルメモリ２３０へデータ転送している点のみである。また、間接出力転送処理２２４の処理（２２５−８〜２２５−１２）は間接入力転送処理２２４の処理（２２４−１２〜２２４−１７）と同じなので説明は省略する。
【００３６】
次に、ＤＭＡコントローラ２１１よりデータ転送終了が報告されると、チャネルプログラム１３ａを解析してＰＣＩ  Ｅｘｐｒｅｓｓカード２６０（２６１、２６２、２６３）に設定する情報を求めて設定する。このとき、転送カウントとしてカウント１３ａ−０−２や転送方向、周辺装置２０００、３０００の情報等が設定される（２２５−１３）。そして、ＰＣＩ  Ｅｘｐｒｅｓｓカード２６０（２６１、２６２、２６３）にローカルメモリ２３０からＰＣＩ  Ｅｘｐｒｅｓｓカード２６０（２６１、２６２、２６３）に対して転送するように設定して転送起動を指示し（２２５−１４、２２５−１５）、ＰＣＩ  Ｅｘｐｒｅｓｓカード２６０（２６１、２６２、２６３）からの転送終了報告を待ち合わせる（２２５−１６）。ＰＣＩ  Ｅｘｐｒｅｓｓカード２６０（２６１、２６２、２６３）から転送の終了を報告されるとアドレスカウント制御配列ｎを解放し（２２５−１７）、間接出力転送処理２２５と間接転送処理２２３は処理を終え、中央処理装置１１０（１１１、１１２、１１３）に転送終了を報告してデータ転送処理２２１は処理を終える（２２１−６）。
【００３７】
なお、実施例におけるＩ／Ｏコントローラのメモリ空間２１ａとアドレスカウント制御配列ｎとメインメモリ１３０の転送空間の関係は図１３のようになる。ＰＣＩ  Ｅｘｐｒｅｓｓカード２６０（２６１、２６２、２６３）又はＤＭＡコントローラ２１１はＩ／Ｏコントローラ転送空間２１ａ−ｎにデータ転送のためアクセスすることによってアドレスカウント制御配列ｎが選択され、そのエントリｎ−２ｐ０で示されるメインメモリ１３０の物理アドレスに対するアクセスへとアドレスカウント変換機構２１５−ａによって変換される。このとき、全てのデータを転送するのに使用するアドレスカウント制御配列ｎのエントリ数が８以内、つまり、メインメモリ１３０の転送空間（ページ７）までの転送であるならば直接転送となり、エントリ数が８を超える場合、つまり、メインメモリ１３０の転送空間（ページ７）を超える転送ならば間接転送となる。
【００３８】
また、チャネルプログラム１３ａの形式は本発明によるところではないが、一般的には図１４のようにメインメモリ１３０の不連続な転送空間に対してデータ転送するように各エントリ１３ａ−ｍに設定することも可能であり、本発明ではこのようなチャネルプログラム１３ａにおいても対応する。この場合、Ｉ／Ｏコントローラのメモリ空間２１ａとアドレスカウント制御配列ｎとメインメモリ１３０のアドレス空間の関係は図１５のようになる。
【００３９】
図１の情報処理装置１０００では中央処理装置１００と入出力処理装置２００がそれぞれ１個ずつであるが、それぞれ複数存在しても良い。この場合、中央処理装置１００と入出力処理装置２００はポイントツーポイントで接続される。また、ＰＣＩ  Ｅｘｐｒｅｓｓカード２６０（２６１、２６２、２６３）の個数やアドレスカウント制御配列ｎとそのエントリｎ−２ｐ０の個数は任意である。
【００４０】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。そのような変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【符号の説明】
【００４１】
１３ａ  チャネルプログラム
１３ａ−ｍ  エントリ
１３ａ−ｍ−０  コマンド
１３ａ−ｍ−１  フラグ
１３ａ−ｍ−２  カウント
１３ａ−ｍ−３  アドレス
２１ａ  メモリ空間
２１ａ−ｎ  転送空間
１００  中央処理装置
１１０  演算処理装置
１１１  演算処理装置
１１２  演算処理装置
１１３  演算処理装置
１２０  メモリコントローラ
１３０  メインメモリ
１４０  バス
１５０  バス
２００  入出力処理装置
２１０  Ｉ／Ｏコントローラ
２１１  ＤＭＡコントローラ
２１２  バッファ
２１３  バッファ
２１４  バッファ
２１５  転送制御装置
２１５−ａ  アドレスカウント変換装置
２１６  バス
２１７  バス
２１８  バス
２２０  プロセッサ
２２１  データ転送処理
２２２  直接転送処理
２２３  間接転送処理
２２４  間接入力転送処理
２２５  間接出力転送処理
２３０  ローカルメモリ
２４０  スイッチ
２５０  バス
２５１  バス
２５２  バス
２５３  バス
２６０  ＰＣＩ  Ｅｘｐｒｅｓｓカード
２６１  ＰＣＩ  Ｅｘｐｒｅｓｓカード
２６２  ＰＣＩ  Ｅｘｐｒｅｓｓカード
２６３  ＰＣＩ  Ｅｘｐｒｅｓｓカード
２７０  バス
２７１  バス
２７２  バス
２７３  バス
３００  バス
１０００  情報処理装置
２０００  周辺装置
２００１  接続ケーブル
２００２  接続ケーブル
３０００  周辺装置
３００１  接続ケーブル
３００２  接続ケーブル
ｎ  アドレスカウント制御配列
ｎ−１００  カレントエントリポインタ
ｎ−２ｐ０  エントリ
ｎ−２ｐ１  アドレスフィールド
ｎ−２ｐ２  カウントフィールド
ｎ−２ｐ３  フラグフィールド
【図１】
2011186658.tif 000003
【図２】
2011186658.tif 000004
【図３】
2011186658.tif 000005
【図４】
2011186658.tif 000006
【図５】
2011186658.tif 000007
【図６】
2011186658.tif 000008
【図７】
2011186658.tif 000009
【図８】
2011186658.tif 000010
【図９】
2011186658.tif 000011
【図１０】
2011186658.tif 000012
【図１１】
2011186658.tif 000013
【図１２】
2011186658.tif 000014
【図１３】
2011186658.tif 000015
【図１４】
2011186658.tif 000016
【図１５】
2011186658.tif 000017