説明

情報処理装置

【課題】メインメモリと周辺装置との間でデータを転送すること。
【解決手段】メインメモリ130を具備する中央処理装置100と、PCI Expressカード260〜263及びローカルメモリ230を具備する入出力処理装置200とを備え、入出力処理装置200は、PCI Expressカード260〜263からメインメモリ130に対して直接データ転送を行う第1の経路と、PCI Expressカード260〜263又はメインメモリ130からローカルメモリ230に一度データ転送した後、メインメモリ130又はPCI Expressカード260〜263にデータ転送を行う第2の経路とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置に関する。特に本発明は、メインメモリと周辺装置との間でデータを転送する情報処理装置に関する。
【背景技術】
【0002】
近年、磁気ディスク等の周辺装置は、性能が向上してきている。また、PCI Express等の高速なI/O(Input/Output)インターフェースも登場してきている。これに伴い、入出力処理装置は更なる性能向上が必要になってきている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開昭63−245755号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、現状では、周辺装置やI/Oインターフェースの高速化に対して入出力処理装置のI/Oコントローラやプロセッサの性能向上が追いつかず、入出力処理装置の転送効率が低下して周辺装置やI/Oインターフェースの性能を十分発揮できていない。また、入出力処理装置の性能を向上するにはI/OコントローラをカスタムLSI(Large Scale Integration)として設計する方法や、プロセッサを高性能化する方法が考えられるが、近年少量生産の装置についてはFPGA(Field Programmable Gate Array)による開発が行われるため、ハードウェア量や性能に制限があり十分に性能を発揮できない状態になっており、また、プロセッサについてもコスト削減のため必要最低限の性能しか与えられないのが現状である。
【課題を解決するための手段】
【0005】
上記課題を解決するために、本発明の第1の形態によると、メインメモリと周辺装置との間でデータを転送する情報処理装置であって、メインメモリを具備する中央処理装置と、PCI Expressカード及びローカルメモリを具備する入出力処理装置とを備え、入出力処理装置は、PCI Expressカードからメインメモリに対して直接データ転送を行う第1の経路と、PCI Expressカード又はメインメモリからローカルメモリに一度データ転送した後、メインメモリ又はPCI Expressカードにデータ転送を行う第2の経路とを有する。
【0006】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となり得る。
【発明の効果】
【0007】
以上の説明から明らかなように、この発明によれば、アドレスカウント制御配列の再設定が必要なデータ転送とアドレスカウント制御配列の再設定が必要でないデータ転送の経路が分離される。その結果、プロセッサがアドレスカウント制御配列を再設定している間にもバッファは満杯にならず、PCI Expressカードによるデータ転送は継続されるため、入出力処理装置のデータ転送効率が向上する。
【0008】
また、プロセッサがアドレスカウント制御配列を再設定している間もPCI Expressによるデータ転送は停止しないので、プロセッサの処理時間を考慮してバッファを大量に持つ必要がなくなるのでハードウェア量を削減することが可能になる。
【図面の簡単な説明】
【0009】
【図1】一実施形態に係る情報処理装置1000の利用環境の一例を示す図である。
【図2】I/Oコントローラ210の構造を示す図である。
【図3】転送制御装置215の構造を示す図である。
【図4】アドレスカウント制御配列nの構造を示す図である。
【図5】メモリ空間21aを示す図である。
【図6】データ転送処理の動作フローの一例を示す図である。
【図7】直接転送処理の動作フローの一例を示す図である。
【図8】間接転送処理の動作フローの一例を示す図である。
【図9】間接入力転送処理の動作フローの一例を示す図である。
【図10】間接出力転送処理の動作フローの一例を示す図である。
【図11】チャネルプログラム13aを示す図である。
【図12】メインメモリ130のデータ転送対象空間とチャネルプログラム13aとの関係を示す図である。
【図13】I/Oコントローラのメモリ空間21aとアドレスカウント制御配列nとメインメモリ130の転送空間の関係を示す図である。
【図14】チャネルプログラム13aの形式を示す図である。
【図15】I/Oコントローラのメモリ空間21aとアドレスカウント制御配列nとメインメモリ130のアドレス空間の関係を示す図である。
【発明を実施するための形態】
【0010】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0011】
図1は、一実施形態に係る情報処理装置1000の利用環境の一例を示す。情報処理装置1000は一般的にメインフレームやサーバと呼ばれるコンピューターシステムで、中央処理装置100と入出力処理装置200がバス300によって接続された構造になっている。また、情報処理装置1000の外部には磁気ディスク装置等の周辺装置2000、3000がそれぞれ接続ケーブル2001、2002、3001、3002によって接続されており、情報処理装置1000は周辺装置2000、3000との間でデータ転送を行い、処理を行っている。
【0012】
中央処理装置100にはソフトウェアの命令を実行し、処理を行う演算処理装置110〜113と、演算処理装置110〜113が実行するソフトウェア命令や処理するデータ等を格納するメインメモリ130を持ち、また、演算処理装置110〜113や入出力処理装置200からのメインメモリ130に対する読み出しや書き込み等の要求を処理し、演算処理装置110〜113と入出力処理装置200の間の通信を処理するメモリコントローラ120を持っており、それぞれバス140とバス150とバス300によって接続されている。
【0013】
入出力処理装置200はメインメモリ130と周辺装置2000、3000との間のデータ転送を行うI/Oコントローラ210と、周辺装置2000、3000を接続して入出力処理装置200と周辺処理装置2000、3000との間のデータ転送を行うPCI Expressカード260〜263と、I/Oコントローラ210とPCI Expressカード260〜263をそれぞれ接続し、それぞれの間でのデータ転送及び通信を行うスイッチ240を持っており、それぞれバス252とバス270〜273によって接続されている。また、入出力処理装置200には演算処理装置110〜113の指示により、I/Oコントローラ210とPCI Expressカード260〜263を制御し、メインメモリ130と周辺装置2000、3000との間のデータ転送を制御するプロセッサ220とプロセッサで使用されるデータや転送データを格納するローカルメモリ230も持っており、プロセッサ220とローカルメモリ230はバス253により接続され、プロセッサ220とI/Oコントローラ210とスイッチ240はそれぞれバス250とバス251により接続されている。
【0014】
I/Oコントローラ210の構造は図2のようになっており、ローカルメモリ230とメインメモリ130の間のデータ転送を行うDMAコントローラ211を持っている。また、バス300とバス250とバス252の性能差に対応するための緩衝バッファをそれぞれのデータ転送の経路に持っており、I/Oコントローラ210とPCI Expressカード260〜263の経路にはバッファ214を持ち、I/Oコントローラ210とローカルメモリ230の経路にはバッファ212を持ち、I/Oコントローラ210とメインメモリ130の経路にはバッファ213を持っている。そして、データ転送の経路の中心には転送制御装置215を持っており、それぞれバス216、217、218によって接続されている。
【0015】
転送制御装置215の構造は図3のようになっている。転送制御装置215とはPCI Expressカード260〜263とDMAコントローラ211からのメインメモリ130に対する要求を変換する装置である。メインメモリ130のアドレス空間とPCI Expressカード260〜263とDMAコントローラ211が要求するアドレス空間は異なっており、転送制御装置215ではPCI Expressカード260〜263とDMAコントローラ211からの要求アドレスよりアドレスカウント変換装置215−aが対応するアドレスカウント制御配列0〜63を選択することによって対応するメインメモリ130のアドレス空間の要求アドレスに変換し、バス216に対して要求を発行する。
【0016】
アドレスカウント制御配列nの構造は図4のようになっている。アドレスカウント制御配列nは7個のエントリn−200〜270とカレントエントリポインタn−100を持ち、各エントリn−2p0にはメインメモリ130のデータ転送アドレスを示すアドレスフィールドn−2p1と、転送するカウントを示すカウントフィールドn−2p2と、最後のエントリであること等を示すフラグフィールドn−2p3によって構成されている。また、カレントエントリポインタn−100は現在のデータ転送で使用されているエントリn−2p0を指している。
【0017】
I/Oコントローラ210にはPCI Expressカード260〜263とDMAコントローラ211のデータ転送用のメモリ空間21aを持っており、十分な固定サイズの64個の転送空間21a−0〜63に分割されている(図5)。この転送空間21a−nとアドレスカウント制御配列nは対応しており、PCI Expressカード260〜263又はDMAコントローラ211が転送空間21a−nの先頭アドレスから連続してデータ転送を行うと、アドレスカウント変換装置215−aは対応するアドレスカウント制御配列nを選択し、カレントエントリポインタn−100の示すエントリn−200のアドレスフィールドn−201の示すアドレスに変換してメインメモリ130に要求を発行する。このとき、転送したカウント分だけアドレスフィールドn−201の値は加算され、カウントフィールドn−202の値は減算される。そして、カウントフィールドn−202の値が0になったとき、アドレスカウント変換装置215−aはカレントエントリポインタn−100を加算して次のエントリn−210を示すようにし、上記と同様に処理する。また、カレントエントリポインタn−100が最終エントリn−270を示しているときにカウントフィールドn−272が0になり、フラグフィールドn−273が最終エントリであることを示していなかった場合、アドレスカウント変換装置215−aは転送を一旦停止し、プロセッサ220に割込でエントリ終了を報告して次のアドレスカウント制御配列の設定を要求する。なお、エントリn−2p0のフラグフィールドn−2p0が最終エントリであることを示していた場合、アドレスカウント変換装置215−aはアドレスカウント制御配列nに対するデータ転送を終了する。このとき、PCI Expressカード260〜263又はDMAコントローラ211から引き続きデータ転送要求がある場合、アドレスカウント変換装置215−aはメインメモリに対する書き込みの場合はその要求を破棄し、読み出しの場合は0を返す。
【0018】
入出力処理装置200のプロセッサ220は入出力処理装置として動作するためのファームウェア221〜225を内蔵している。その中には演算処理装置110〜113からのデータ転送指示を処理する図6のデータ転送処理221を持っており、また、データ転送で使用するアドレスカウント制御配列nのエントリ数に応じて、PCI Expressカード260〜263とメインメモリ130の間のデータ転送をPCI Expressカード260〜263とメインメモリ130の間で直接転送する図7の直接転送処理222と、メインメモリ130又はPCI Expressカード260〜263からローカルメモリ230にデータを転送したのち、ローカルメモリ230からメインメモリ130又はPCI Expressカード260〜263に転送する図8、9、10の間接転送処理223を持っている。なお、入出力処理装置200のデータ転送では、PCI Expressカード260〜263がマスタとなって行う場合と、DMAコントローラ211がマスタとなって行う場合がある。前者はPCI Expressカード260〜263がメインメモリ130又はローカルメモリ230に対して要求を行う場合で、後者はDMAコントローラ211がメインメモリ130又はローカルメモリ230に対して要求を行う場合である。
【0019】
本発明の実施例である図1の情報処理装置1000においてメインメモリ130と周辺装置2000、3000の間でデータ転送を行う場合、演算処理装置110〜113はソフトウェアの指示により図11に示すチャネルプログラム13aをメインメモリ130上に作成し、入出力処理装置200にチャネルプログラム13aの実行を指示する。チャネルプログラム13aは処理毎に複数のエントリ13a−mに分割されており、各エントリ13a−mは指示を示すコマンド13a−m−0と、コマンド13a−m−0を拡張したり最後のエントリであること等を示すフラグ13a−m−1と、データ転送長を示すカウント13a−m−2と、データ転送対象となるメインメモリ130のアドレス13a−m−3によって構成されている。
【0020】
実際にこのチャネルプログラム13aによって入出力処理装置200にデータ転送を指示する場合、メインメモリ130のデータ転送対象空間とチャネルプログラム13aとの関係は図12のようになる。一般的に入出力処理装置200はアドレス変換機能を持っており、チャネルプログラム13aにおいてメインメモリ130のデータ転送対象アドレスに論理アドレス空間を指定することが可能である。図12のチャネルプログラム13aではアドレス13a−0−3でデータ転送対象の先頭論理アドレスを示し、カウント13a−0−2は論理アドレス空間における転送サイズを示している。一般的に論理アドレス空間はソフトウェアによって定義される空間でページと呼ばれる固定長の空間で区切られ、ページ毎に実際の物理メモリに割り当てられる。各ページに割り当てる物理メモリのアドレスは固定長でアライメントされた任意のアドレスとなるので、図12のようにデータ転送対象アドレスが論理アドレス空間上で連続していたとしても物理アドレス空間上ではページ毎に不連続となる場合がある。一般的に入出力処理装置200はメインメモリ130の物理アドレス空間に対してしかデータ転送できないので、指定された論理アドレスをページ毎に物理アドレスに変換し、その物理アドレスに対してページサイズ分だけデータ転送することをカウント13a−0−2分だけ行う必要がある。
【0021】
図12のチャネルプログラム13aを実施例の入出力処理装置200で実行する場合、次のようになる。入出力処理装置200は演算処理装置110(111、112、113)よりデータ転送の指示を受けると、プロセッサ220上で図6のデータ転送処理221を実行する。データ転送処理221ではチャネルプログラム13aをメインメモリ130より読み出し、その内容を解析して全てのデータ転送を完了させるのに必要となるアドレスカウント制御配列nのエントリ数を求める。この場合、チャネルプログラム13aは論理アドレス空間を指定しているので、ページ数r+1が必要なエントリ数となる。そして、必要エントリ数r+1がアドレスカウント制御配列nの最大エントリ数である8と比較され、r+1が8以下ならば図7の直接転送処理222が実行され、r+1が8を超える場合は図8の間接転送処理223が実行される。
【0022】
直接転送処理222では転送制御装置215よりアドレスカウント制御配列nを取得し(222−1)、チャネルプログラム13aを解析してアドレスカウント制御配列nの各エントリn−2p0に設定する情報を求めて設定する(222−2)。このとき、転送アドレスとして指定されたアドレスは論理アドレスであるので、直接転送処理222はチャネルプログラム13aで指定されたアドレス13a−0−3を物理アドレスに変換し、また、転送対象となる各ページの先頭物理アドレスをアドレス13a−0−3とページサイズの加算により求めた値を物理アドレスに変換することを、アドレス13a−0−3からのオフセットがカウント13a−0−2分になるまで行う。そして、各ページ毎に求めた物理アドレスとカウントをアドレスカウント制御配列nの各エントリn−2p0に設定し、また、最後の転送となるエントリn−2p0のフラグn−2p3にはこのエントリが最後であることを示す情報を設定する。
【0023】
そして、カレントエントリポインタn−100を0に設定し(222−3)、チャネルプログラム13aを解析してPCI Expressカード260(261、262、263)に設定する情報を求めてPCI Expressカード260(261、262、263)に設定する(222−4)。このとき、PCI Expressカード260(261、262、263)には転送カウントとしてカウント13a−0−2や転送方向、周辺装置2000、3000側の情報等が設定される。次にPCI Expressカード260(261、262、263)にアドレスカウント制御配列nに対応するI/Oコントローラ転送空間21a−nに対してデータ転送するよう設定してデータ転送の起動を指示し(222−5、222−6)、PCI Expressカード260(261、262、263)からの転送終了報告を待ち合わせる(222−7)。
【0024】
PCI Expressカード260(261、262、263)はデータ転送の起動を指示されると、設定された情報に基づき周辺装置2000、3000とアドレスカウント制御配列nに対応するI/Oコントローラ転送空間21a−nの間でデータ転送を行う。このとき、アドレスカウント制御配列nではカレントエントリポインタn―100で示されるエントリn−200のアドレスn−201で示されるメインメモリ130のデータがPCI Expressカード260(261、262、263)に設定された転送方向に従って転送され、その度にアドレスn−201は転送サイズ分加算され、カウントn−202は転送サイズ分減算される。そして、カウントn−202が0になったときカレントエントリポインタn−100は1加算されて次のエントリn−210を示すようになり、同様にデータ転送処理が行われる。そして、カレントエントリポインタn−100の示すエントリn−2p0のカウントn−2p2が0になり、フラグn−2p3が最後のエントリであること示していたときデータ転送が終了する。また、PCI Expressカード260(261、262、263)はデータ転送が終了するとプロセッサ220に割込でデータ転送終了を報告する。
【0025】
そして、PCI Expressカード260(261、262、263)からのデータ転送終了報告によりデータ転送の終了を確認すると直接転送処理222はアドレスカウント制御配列nを解放して処理を終え(222−8)、データ転送処理221は演算処理装置110(111、112、113)に転送終了を報告し、データ転送処理を終える(221−6)。
【0026】
また、間接転送処理223ではチャネルプログラム13aを解析して周辺装置2000、3000からメインメモリ130に対して転送する入力転送か、メインメモリ130から周辺装置2000、3000に対して転送する出力転送か判断し(223−1、223−2)、入力転送ならば間接入力転送処理224が実行され(223−3)、出力転送ならば間接出力転送処理225が実行される(223−4)。
【0027】
間接入力転送処理224ではチャネルプログラム13aを解析してPCI Expressカード260(261、262、263)に設定する情報を求め、PCI Expressカード260(261、262、263)に設定する(224−1)。このとき、PCI Expressカード260(261、262、263)には転送カウントとしてカウント13a−0−2や転送方向、周辺装置2000、3000側の情報等が設定される。そして、PCI Expressカード260(261、262、263)にローカルメモリ230に対してデータ転送するように転送情報を設定してデータ転送の起動を指示し(224−2、224−3)、PCI Expressカード260(261、262、263)からのデータ転送の終了報告を待ち合わせる(223−4)。PCI Expressカード260(261、262、263)はデータ転送を指示されると設定された情報に基づき周辺装置2000、3000からデータを読み出してローカルメモリ230にデータを転送し、データ転送が終了したときプロセッサ230に割込で転送終了を報告する。
【0028】
データ転送が終了すると直接転送処理222と同様に転送制御装置215よりアドレスカウント制御配列nを取得し(224−5)、チャネルプログラム13aを解析してアドレスカウント制御配列nの各エントリn−2p0に設定する情報を求めて設定し、カレントエントリポインタn−100を0に設定する(224−6、224−7)。この処理は直接転送処理222の処理(222−2、222−3)と同じである。ただし、アドレスカウント制御配列nに設定すべきエントリ数がアドレスカウント制御配列nのエントリ数を超えているので直接転送処理222とは異なり、ここではフラグn−2p3にエントリが最後であることを示す情報は設定されない。
【0029】
次に、チャネルプログラム13aを解析してDMAコントローラ211に設定する情報を求め、DMAコントローラ211に設定する(224−8)。このとき、DMAコントローラ211には転送カウントとしてカウント13a−0−2や転送方向等が設定される。そして、DMAコントローラ211にローカルメモリ230からアドレスカウント制御配列nのI/Oコントローラ転送空間21a−nに対してデータ転送するように設定してデータ転送の起動を指示し、DMAコントローラ211からの転送終了報告か転送制御装置215からのエントリ終了報告を待ち合わせる(224−10、224−11)。
【0030】
DMAコントローラ211はデータ転送の起動を指示されると、設定された情報に従ってデータ転送を行う。このとき、DMAコントローラ211はローカルメモリ230よりデータを読み出し、アドレスカウント制御配列nに対応するI/Oコントローラ転送空間21a−nに対してデータを転送する処理をカウント13a−0−2の分だけ行う。これにより、アドレスカウント制御配列nは直接転送処理222の時と同様に動作するが、最終エントリn−270のフラグn−273にはデータ転送の最後のエントリであることを示していないので、カウントn−272が0になったとき、転送制御装置215はプロセッサ215に割込でエントリの終了を報告する。なお、DMAコントローラは転送カウントが0になったとき転送終了をプロセッサ220に割込で報告する。
【0031】
次に、転送制御装置215からエントリ終了報告又はDMAコントローラ211から転送終了報告があるとそれを確認し(224−12)、エントリ終了報告ならばチャネルプログラム13aをデータ転送した分だけ進める(224−14)。図12のチャネルプログラム13aの例ではエントリは1つしかないが、間接入力転送処理224ではページ単位にアドレスカウント制御配列nに情報を設定してデータ転送を行っているので、チャネルプログラム13aのアドレス13a−0−3とカウント13a−0−2を転送したカウントで補正する。なお、チャネルプログラムの進め方はチャネルプログラムの形式によって様々だが、どのようにチャネルプログラムの形式や進め方については本発明の範囲ではないので詳細は記述しない。
【0032】
次に、(224−6、224−7)と同様にチャネルプログラム13aを解析してアドレスカウント制御配列nの各エントリn−2p0に設定する情報を求めて設定し、カレントエントリポインタn−100に0を設定する(224−15、225−16)。このとき、チャネルプログラム13aで指定された全ての転送が終了するならば、最後の転送となるエントリn−2p0のフラグn−2p3に最後のエントリであることを示す。これは、直接転送処理222の(222−5)と同じである。そして、転送制御装置215に転送再開を指示する(224−17)。なお、(224−14〜224−17)の処理を行っている間は間接転送処理223によって行われているデータ転送は停止してしまう。その間に直接転送処理225で行われるデータ転送は別の転送パスとなるので実行できる。
【0033】
そして、再度DMAコントローラ211の転送終了報告か転送制御装置215のエントリ終了報告を待ち合わせ(224−11)、DMAコントローラ211の転送終了報告ならばアドレスカウント制御配列nを解放し(224−13)、間接入力転送処理224、及び間接転送処理223を終了し、EPU110(111、112、113)に転送終了を報告して(221−6)処理を終える。
【0034】
また、間接出力転送処理225は図10のようになる。まず、転送制御装置215に指示を出してアドレスカウント制御配列nを取得し(225−1)、チャネルプログラム13aを解析してアドレスカウント制御配列nに設定する情報を求めて設定してカレントエントリポインタn−100を0に設定する(225−2、225−3)。この処理は直接転送処理222の処理(222−2、222−3)と同じである。ただし、アドレスカウント制御配列nに設定すべきエントリ数がアドレスカウント制御配列nのエントリ数を超えているので直接転送処理222とは異なり、ここではフラグn−2p3にエントリが最後であることを示す情報は設定されない。次に、チャネルプログラム13aを解析してDMAコントローラ211に設定する情報を求めて設定する(225−4)。ここでは、転送カウントとしてカウント13a−0−2や転送方向等が設定される。そして、DMAコントローラ211にアドレスカウント制御配列nのI/Oコントローラ転送空間21a−nからローカルメモリ230に対してデータ転送するように設定して転送起動を指示し(225−5、225−6)、DMAコントローラ211からの転送終了報告又は転送制御装置215からのエントリ終了報告を待ち合わせる(225−7)。
【0035】
DMAコントローラ211は転送を指示されると、間接入力転送処理224と同様に処理する。異なるのは、間接入力転送処理224ではローカルメモリ230からアドレスカウント制御配列nのI/Oコントローラ転送空間21a−nにデータ転送したのに対し、間接出力転送処理224ではアドレスカウント制御配列nのI/Oコントローラ転送空間21a−nからローカルメモリ230へデータ転送している点のみである。また、間接出力転送処理224の処理(225−8〜225−12)は間接入力転送処理224の処理(224−12〜224−17)と同じなので説明は省略する。
【0036】
次に、DMAコントローラ211よりデータ転送終了が報告されると、チャネルプログラム13aを解析してPCI Expressカード260(261、262、263)に設定する情報を求めて設定する。このとき、転送カウントとしてカウント13a−0−2や転送方向、周辺装置2000、3000の情報等が設定される(225−13)。そして、PCI Expressカード260(261、262、263)にローカルメモリ230からPCI Expressカード260(261、262、263)に対して転送するように設定して転送起動を指示し(225−14、225−15)、PCI Expressカード260(261、262、263)からの転送終了報告を待ち合わせる(225−16)。PCI Expressカード260(261、262、263)から転送の終了を報告されるとアドレスカウント制御配列nを解放し(225−17)、間接出力転送処理225と間接転送処理223は処理を終え、中央処理装置110(111、112、113)に転送終了を報告してデータ転送処理221は処理を終える(221−6)。
【0037】
なお、実施例におけるI/Oコントローラのメモリ空間21aとアドレスカウント制御配列nとメインメモリ130の転送空間の関係は図13のようになる。PCI Expressカード260(261、262、263)又はDMAコントローラ211はI/Oコントローラ転送空間21a−nにデータ転送のためアクセスすることによってアドレスカウント制御配列nが選択され、そのエントリn−2p0で示されるメインメモリ130の物理アドレスに対するアクセスへとアドレスカウント変換機構215−aによって変換される。このとき、全てのデータを転送するのに使用するアドレスカウント制御配列nのエントリ数が8以内、つまり、メインメモリ130の転送空間(ページ7)までの転送であるならば直接転送となり、エントリ数が8を超える場合、つまり、メインメモリ130の転送空間(ページ7)を超える転送ならば間接転送となる。
【0038】
また、チャネルプログラム13aの形式は本発明によるところではないが、一般的には図14のようにメインメモリ130の不連続な転送空間に対してデータ転送するように各エントリ13a−mに設定することも可能であり、本発明ではこのようなチャネルプログラム13aにおいても対応する。この場合、I/Oコントローラのメモリ空間21aとアドレスカウント制御配列nとメインメモリ130のアドレス空間の関係は図15のようになる。
【0039】
図1の情報処理装置1000では中央処理装置100と入出力処理装置200がそれぞれ1個ずつであるが、それぞれ複数存在しても良い。この場合、中央処理装置100と入出力処理装置200はポイントツーポイントで接続される。また、PCI Expressカード260(261、262、263)の個数やアドレスカウント制御配列nとそのエントリn−2p0の個数は任意である。
【0040】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。そのような変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【符号の説明】
【0041】
13a チャネルプログラム
13a−m エントリ
13a−m−0 コマンド
13a−m−1 フラグ
13a−m−2 カウント
13a−m−3 アドレス
21a メモリ空間
21a−n 転送空間
100 中央処理装置
110 演算処理装置
111 演算処理装置
112 演算処理装置
113 演算処理装置
120 メモリコントローラ
130 メインメモリ
140 バス
150 バス
200 入出力処理装置
210 I/Oコントローラ
211 DMAコントローラ
212 バッファ
213 バッファ
214 バッファ
215 転送制御装置
215−a アドレスカウント変換装置
216 バス
217 バス
218 バス
220 プロセッサ
221 データ転送処理
222 直接転送処理
223 間接転送処理
224 間接入力転送処理
225 間接出力転送処理
230 ローカルメモリ
240 スイッチ
250 バス
251 バス
252 バス
253 バス
260 PCI Expressカード
261 PCI Expressカード
262 PCI Expressカード
263 PCI Expressカード
270 バス
271 バス
272 バス
273 バス
300 バス
1000 情報処理装置
2000 周辺装置
2001 接続ケーブル
2002 接続ケーブル
3000 周辺装置
3001 接続ケーブル
3002 接続ケーブル
n アドレスカウント制御配列
n−100 カレントエントリポインタ
n−2p0 エントリ
n−2p1 アドレスフィールド
n−2p2 カウントフィールド
n−2p3 フラグフィールド

【特許請求の範囲】
【請求項1】
メインメモリと周辺装置との間でデータを転送する情報処理装置であって、
前記メインメモリを具備する中央処理装置と、
PCI Expressカード及びローカルメモリを具備する入出力処理装置と
を備え、
前記入出力処理装置は、
前記PCI Expressカードから前記メインメモリに対して直接データ転送を行う第1の経路と、
前記PCI Expressカード又は前記メインメモリから前記ローカルメモリに一度データ転送した後、前記メインメモリ又は前記PCI Expressカードにデータ転送を行う第2の経路と
を有する情報処理装置。
【請求項2】
前記中央処理装置は、演算処理装置を更に具備し、
前記入出力装置は、プロセッサ及びI/Oコントローラを更に具備すると共に、前記演算処理装置より前記メインメモリと前記周辺装置との間のデータ転送を指示されたとき、前記プロセッサに内蔵されたファームウェアがそれを解析し、前記I/Oコントローラのリソースと比較して、リソースが十分であり、データ転送中に前記プロセッサが前記I/Oコントローラに介在しないと判断した場合、前記ファームウェアは前記PCI Expressカードをマスタとして前記第1の経路を使用してデータ転送する
請求項1に記載の情報処理装置。
【請求項3】
前記I/Oコントローラは、DMAコントローラを具備し、
前記入出力処理装置は、前記I/Oコントローラのリソースが不十分であり、データ転送中に前記プロセッサが前記I/Oコントローラに介在する必要があると判断した場合、前記ファームウェアは入力転送の場合は前記PCI Expressカードをマスタとして前記ローカルメモリに前記第2の経路を使用してデータ転送した後、前記DMAコントローラをマスタとして前記ローカルメモリのデータを前記第2の経路を使用して前記メインメモリに転送し、出力転送の場合は前記DMAコントローラをマスタとして前記メインメモリから前記ローカルメモリに前記第2の経路を使用してデータ転送をした後、前記PCI Expressカードをマスタとして前記ローカルメモリから前記周辺装置に前記第2の経路を使用してデータ転送する
請求項2に記載の情報処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2011−186658(P2011−186658A)
【公開日】平成23年9月22日(2011.9.22)
【国際特許分類】
【出願番号】特願2010−49690(P2010−49690)
【出願日】平成22年3月5日(2010.3.5)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】