(57)【要約】      （修正有）【課題】非共有領域へ他の入出力装置からデータを書き込む際や非共有領域から他の入出力装置へデータを読み出す際の転送効率を向上させたデータ転送システムを提供する。【解決手段】ＰＣＩバスを介してデータ転送可能に接続された入出力装置１１０及び入出力装置１２０からなるデータ転送システムであって、入出力装置１１０が、ＲＡＭ１１３上の非共有領域１１３ｂへの書込み又は非共有領域１１３ｂからの読出しが指定された入出力装置１２０からの転送要求に基づいて、ＰＣＩバスのアドレス空間に割り当てられているＲＡＭ１１３のメモリアドレスを変更し、非共有領域１１３ｂの一部又は全部を共有領域とするアドレス割当て変更部と、アドレス割当て変更部によるメモリアドレスの変更後に転送要求に対する応答としてＰＣＩバスコントローラ１１２を介して入出力装置１２０へ送出される転送応答を生成する転送応答生成部により構成される。【選択図】図２
2009064341.tif 000002
【特許請求の範囲】
【請求項１】
入出力バスを介してデータ転送可能に接続された第１の入出力装置及び第２の入出力装置からなるデータ転送システムであって、
上記第１の入出力装置は、上記入出力バスによるデータ転送を制御する第１の入出力バスコントローラと、上記第１の入出力バスコントローラが第１のローカルバスを介して通信可能に接続され、メモリアドレスが上記入出力バスのアドレス空間に割り当てられた共有領域、及び、上記アドレス空間に割り当てられていない非共有領域からなる第１のメモリとを有し、
上記第２の入出力装置は、上記入出力バスによるデータ転送を制御する第２の入出力バスコントローラと、上記第２の入出力バスコントローラが第２のローカルバスを介して通信可能に接続された第２のメモリとを有するデータ転送システムにおいて、
上記第１の入出力装置は、上記非共有領域への書込み又は非共有領域からの読出しが指定された上記第２の入出力装置からの転送要求に基づいて、上記アドレス空間に割り当てられている上記第１のメモリのメモリアドレスを変更するアドレス割当て変更手段と、
上記アドレス割当て変更手段によるメモリアドレスの変更後に上記転送要求に対する応答として上記第１の入出力バスコントローラを介して上記第２の入出力装置へ送出される転送応答を生成する転送応答生成手段とを備えたことを特徴とするデータ転送システム。
【請求項２】
上記第１の入出力装置が、データ転送後に送出される上記第２の入出力装置からの転送完了通知に基づいて、上記アドレス割当て変更手段により変更されたメモリアドレスを元に戻すアドレス割当て復元手段を備えたことを特徴とする請求項１に記載のデータ転送システム。
【請求項３】
上記転送応答生成手段が、上記第２の入出力装置によるデータ転送中に第２の入出力装置以外の入出力装置から転送要求を受信した場合に、転送不可を示す不許可応答を当該転送要求に対する応答として生成することを特徴とする請求項１に記載のデータ転送システム。
【請求項４】
上記アドレス割当て変更手段は、書込み先として連続するメモリアドレスが指定されたデータの書込みの場合であって、書込み先として指定されたメモリアドレスの数が上記共有領域のメモリアドレスの数よりも多い場合に、データの連続書込みの途中でメモリアドレスを変更することを特徴とする請求項１に記載のデータ転送システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送システムに係り、さらに詳しくは、ＰＣＩバスなどの入出力バスを介して入出力装置間でデータの転送を行うデータ転送システムの改良に関する。
【背景技術】
【０００２】
入出力バスを介して入出力装置間でデータの転送を行うデータ転送システムでは、各入出力装置における入出力バスコントローラにより、入出力バスを介して行われるデータ転送の制御が行われる。例えば、カラーコピー機能、ファクシミリ通信機能、ネットワークスキャナ機能及びネットワークプリンタ機能を有する複合機（MultiFunction Peripheral：ＭＦＰ）では、ＰＣＩ（Peripheral Component Interconnect）バスを介して行われるデータ転送がＰＣＩコントローラによって制御される（例えば、特許文献１）。
【０００３】
一般に、入出力バスを介して行われるデータ転送では、入出力バスコントローラがデータ転送時に使用するアドレス線の数により、入出力バスのバスアドレスからなるアドレス空間のサイズが決定される。この様なアドレス空間に入出力装置内のメモリのメモリアドレスを割り当てる場合のアドレス割当ては、入出力装置の使用目的や機能に応じて入出力装置ごとに適宜定められる。このため、メモリアドレスのビット数に比べて、アドレス空間のサイズが小さい場合や、アドレス空間に割り当てられるメモリアドレスの数が少ない場合に、入出力装置によっては、他の入出力装置と共有できないメモリ領域が生じることになる。すなわち、入出力バスのアドレス空間にメモリアドレスが割り当てられず、他の入出力装置と共有されないメモリ領域（非共有領域）が生じることになる。従来のデータ転送システムでは、この様な非共有領域へ他の入出力装置からデータを書き込む場合、一旦、転送先の入出力装置の共有領域、すなわち、アドレス空間にメモリアドレスが割り当てられたメモリ領域内にデータを書き込ませ、そして、転送元の入出力装置が書き込んだ共有領域上のデータを転送先の入出力装置内で非共有領域に移動させなければならなかった。また、非共有領域から他の入出力装置へデータを読み出す場合、まず、転送元の入出力装置に非共有領域上のデータを共有領域へ移動させ、それから、共有領域上に移動されたデータを転送先の入出力装置に読み出させなければならなかった。このため、データの転送効率が良くないという問題があった。
【０００４】
なお、ＰＣＩバスを介して入出力装置間でデータ転送を行う技術については、例えば、特許文献２及び３に記載されている。
【特許文献１】特開２００６−３０９４４４号公報
【特許文献２】特開２００１−２４３２０６号公報
【特許文献３】国際公開ＷＯ２００４／０８８５２２号
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述した様に、従来のデータ転送システムでは、入出力装置間でデータを転送する際のデータの転送効率が良くないという問題があった。
【０００６】
本発明は、上記事情に鑑みてなされたものであり、入出力装置間でデータを転送する際のデータの転送効率を向上させたデータ転送システムを提供することを目的としている。特に、非共有領域へ他の入出力装置からデータを書き込む際や非共有領域から他の入出力装置へデータを読み出す際の転送効率を向上させたデータ転送システムを提供することを目的としている。
【課題を解決するための手段】
【０００７】
第１の本発明によるデータ転送システムは、入出力バスを介してデータ転送可能に接続された第１の入出力装置及び第２の入出力装置からなるデータ転送システムであって、上記第１の入出力装置が、上記入出力バスによるデータ転送を制御する第１の入出力バスコントローラと、上記第１の入出力バスコントローラが第１のローカルバスを介して通信可能に接続され、メモリアドレスが上記入出力バスのアドレス空間に割り当てられた共有領域、及び、上記アドレス空間に割り当てられていない非共有領域からなる第１のメモリとを有し、上記第２の入出力装置が、上記入出力バスによるデータ転送を制御する第２の入出力バスコントローラと、上記第２の入出力バスコントローラが第２のローカルバスを介して通信可能に接続された第２のメモリとを有するデータ転送システムである。そして、上記第１の入出力装置は、上記非共有領域への書込み又は非共有領域からの読出しが指定された上記第２の入出力装置からの転送要求に基づいて、上記アドレス空間に割り当てられている上記第１のメモリのメモリアドレスを変更するアドレス割当て変更手段と、上記アドレス割当て変更手段によるメモリアドレスの変更後に上記転送要求に対する応答として上記第１の入出力バスコントローラを介して上記第２の入出力装置へ送出される転送応答を生成する転送応答生成手段とを備えて構成される。
【０００８】
このデータ転送システムでは、第２の入出力装置が第１の入出力装置の非共有領域へデータを書き込む場合、又は、第２の入出力装置が非共有領域からデータを読み出す場合に、第１の入出力装置により第１のメモリのメモリアドレスが変更される。その際、入出力バスのアドレス空間に割り当てられているメモリアドレスが変更され、メモリアドレスの変更後に転送応答が第２の入出力装置へ送出される。従って、データ転送時に第１の入出力装置においてデータを移動させなくても良いので、第１のメモリ上の非共有領域へ他の入出力装置からデータを書き込む際や非共有領域から他の入出力装置へデータを読み出す際の転送効率を向上させることができる。
【０００９】
第２の本発明によるデータ転送システムは、上記構成に加え、上記第１の入出力装置が、データ転送後に送出される上記第２の入出力装置からの転送完了通知に基づいて、上記アドレス割当て変更手段により変更されたメモリアドレスを元に戻すアドレス割当て復元手段を備えて構成される。
【００１０】
第３の本発明によるデータ転送システムは、上記構成に加え、上記転送応答生成手段が、上記第２の入出力装置によるデータ転送中に第２の入出力装置以外の入出力装置から転送要求を受信した場合に、転送不可を示す不許可応答を当該転送要求に対する応答として生成するように構成される。
【００１１】
第４の本発明によるデータ転送システムは、上記構成に加え、上記アドレス割当て変更手段が、書込み先として連続するメモリアドレスが指定されたデータの書込みの場合であって、書き込み先として指定されたメモリアドレスの数が上記共有領域のメモリアドレスの数よりも多い場合に、データの連続書込みの途中でメモリアドレスを変更するように構成される。
【発明の効果】
【００１２】
本発明によるデータ転送システムによれば、データ転送時に第１の入出力装置においてデータを移動させなくても良いので、第１のメモリ上の非共有領域へ他の入出力装置からデータを書き込む際や非共有領域から他の入出力装置へデータを読み出す際のデータの転送効率を向上させることができる。
【発明を実施するための最良の形態】
【００１３】
図１は、本発明の実施の形態によるデータ転送システムの一構成例を示したシステム図であり、データ転送システムの一例としてデジタル複合機１００が示されている。このデジタル複合機１００は、カラーコピー機能、ファクシミリ通信機能、ネットワークスキャナ機能及びネットワークプリンタ機能を有するデータ処理装置であり、ＰＣＩバス１０を介してデータ転送可能に接続された複数の入出力装置により構成される。
【００１４】
すなわち、デジタル複合機１００は、ＰＣＩバス１０、ＰＣＩブリッジ１１、ＭＦＰコントローラ２０、スキャナ２６、カラー画像処理ボード３０、ネットワークボード４０、プリンタコントローラ５０及びプリンタ５５により構成されている。
【００１５】
ＰＣＩバス１０は、データ伝送路としての入出力バスであり、データを伝送するためのデータ線、メモリアドレスを伝送するためのアドレス線、コマンドを伝送するための制御線などからなる。例えば、３２ビットのバス幅の入出力バスがＰＣＩバス１０として用いられる。
【００１６】
ＰＣＩブリッジ１１は、２つのＰＣＩバス１０を互いに接続するための回路である。この例では、一方のＰＣＩバス１０にＭＦＰコントローラ２０及びネットワークコントローラ４０が接続され、他方のＰＣＩバス１０にカラー画像処理ボード３０及びプリンタコントローラ５０が接続されている。この様な２つのＰＣＩバス１０は、ＰＣＩブリッジ１１により、１つの入出力バスとして機能するようになっている。
【００１７】
ＭＦＰコントローラ２０は、このデータ転送システムにおけるホストデバイスとして機能する入出力装置であり、カラー画像処理ボード３０、ネットワークボード４０及びプリンタコントローラ５０は、いずれもスレーブデバイスとして機能する入出力装置となっている。
【００１８】
ＭＦＰコントローラ２０は、ローカルバス２５を介して互いに通信可能に接続されたＣＰＵ２１、ＰＣＩホストコントローラ２２、割込みコントロールレジスタ２３及びＲＡＭ２４からなる。
【００１９】
このＭＦＰコントローラ２０では、例えば、スキャナ２６により原稿から読み取られたカラー画像データに対して、色空間変換やデータ圧縮などの画像処理を行い、ＰＣＩバス１０を介してカラー画像処理ボード３０又はネットワークボード４０に転送し、或いは、カラー画像データをファクシミリ送受信する動作が行われる。
【００２０】
スキャナ２６は、原稿などの光学読み取りにより、画像データを生成する光学式の画像読取装置であり、例えば、複数の色成分からなるカラー画像データが生成される。
【００２１】
ＣＰＵ（Central Processing Unit：中央演算処理装置）２１は、ローカルバス２５を介してＰＣＩホストコントローラ２２、割込みコントロールレジスタ２３及びＲＡＭ２４を制御する制御部である。ＰＣＩホストコントローラ２２は、ＰＣＩバス１０によるデータ転送を制御する入出力バスコントローラであり、ＰＣＩバス１０を介してスレーブデバイスとの間で行われる通信の制御を行っている。
【００２２】
割込みコントロールレジスタ２３は、このデータ転送システムを構成する入出力装置の１つが他の入出力装置に対して割込みを発生させる際に、割込み要求を書き込むためのメモリである。この割込みコントロールレジスタ２３は、自デバイスのＣＰＵ２１や他のスレーブデバイスのＣＰＵ３１、４１及び５１と割込み信号線により接続されており、割込み要求元のデバイスにより割込み要求が書き込まれると、割込み要求先のデバイスに割込み信号が出力される。
【００２３】
ＲＡＭ（Random Access Memory）２４は、通信データや画像データを保持するための書き換え可能な揮発性の半導体メモリであり、記憶保持に電力供給が必要なメモリとなっている。このＲＡＭ２４は、例えば、ＣＰＵ２１のメインメモリとして用いられる。ＲＡＭ２４には、自デバイスとＰＣＩバス１０を介して接続されたスレーブデバイスがコマンドを書き込むためのメモリ領域としてコマンド領域が設けられている。ＣＰＵ２１は、このコマンド領域を利用してスレーブデバイスと通信を行うことができる。
【００２４】
カラー画像処理ボード３０は、ローカルバス３４を介して互いに通信可能に接続されたＣＰＵ３１、ＰＣＩバスコントローラ３２及びＲＡＭ３３を有する回路基板からなり、画像データを用紙に印刷するための画像処理を行っている。例えば、ＰＣＩバス１０を介してＭＦＰコントローラ２０から転送された色成分ＹＣｒＣｂからなるカラー画像データを色成分ＣＭＹＫからなる画像データに色空間変換する処理、或いは、色空間変換された画像データをさらに２値化する階調減少処理などが行われる。
【００２５】
ＣＰＵ３１は、ローカルバス３４を介してＰＣＩバスコントローラ３２及びＲＡＭ３３を制御する制御部であり、割込みコントローラが内蔵されている。この割込みコントローラは、割込み信号線を介して割込みコントロールレジスタ２３から割込み信号を受信した場合に、割込みを発生させる。
【００２６】
ＰＣＩバスコントローラ３２は、ＰＣＩバス１０によるデータ転送を制御する入出力バスコントローラであり、ＰＣＩバス１０を介して他のデバイスとの間で行われる通信の制御を行っている。ＲＡＭ３３は、書き換え可能な揮発性の半導体メモリであり、例えば、ＣＰＵ３１のメインメモリとして用いられる。
【００２７】
ネットワークボード４０は、ローカルバス４４を介して互いに通信可能に接続されたＣＰＵ４１、ＰＣＩバスコントローラ４２及びＲＡＭ４３を有する回路基板からなり、ＬＡＮなどの通信ネットワーク４５上のクライアントＰＣ４６との間で通信を行っている。例えば、ＰＣＩバス１０を介してＭＦＰコントローラ２０から転送された画像データをクライアントＰＣ４６へ送信する処理、或いは、クライアントＰＣ４６から受信した画像データをファクシミリ送信するために、ＰＣＩバス１０を介して画像データをＭＦＰコントローラ２０に転送する処理が行われる。或いは、クライアントＰＣ４６から受信した画像データをプリンタ出力するために、ＰＣＩバス１０を介して画像データをプリンタコントローラ５０に転送する処理が行われる。
【００２８】
プリンタコントローラ５０は、ローカルバス５４を介して互いに通信可能に接続されたＣＰＵ５１、ＰＣＩバスコントローラ５２及びＲＡＭ５３からなり、他のデバイスから転送された画像データに基づいてプリンタ５５を制御する動作を行っている。例えば、ＰＣＩバス１０を介してカラー画像処理ボード３０から転送され、或いは、ネットワークボード４０から転送された画像データに基づいて、プリンタ５５が制御される。プリンタ５５は、画像データを用紙などに印刷する画像印刷装置である。
【００２９】
この様にして構成されたデータ転送システムでは、ホストデバイスとして機能するＭＦＰコントローラ２０がＰＣＩバス１０を介して接続されたカラー画像処理ボード３０、ネットワークボード４０及びプリンタコントローラ５０の各スレーブデバイスとの間で通信を行うことができるとともに、これらのスレーブデバイスがＭＦＰコントローラ２０を介さずに互いに通信を行うこともできる。
【００３０】
ここで、スレーブデバイス間でＭＦＰコントローラ２０を介さずに行われるデータ転送の一例として、カラー画像処理ボード３０がコマンド送信側のスレーブデバイスであり、プリンタコントローラ５０がコマンド受信側のスレーブデバイスである場合のデータ転送について説明する。
【００３１】
まず、コマンド送信側のカラー画像処理ボード３０のＣＰＵ３１は、コマンド受信側のプリンタコントローラ５０のＲＡＭ５３上に設けられている自デバイス、すなわち、カラー画像処理ボード３０用のコマンド領域のセマフォ（semaphore）を獲得する。具体的には、ＣＰＵ３１が、自デバイスのＲＡＭ３３上の所定領域内に上記コマンド領域の使用権を獲得するための情報を書き込むことにより、ＲＡＭ５３上のコマンド領域のセマフォが獲得される。
【００３２】
次に、ＣＰＵ３１は、ＲＡＭ５３上のコマンド領域内にコマンドを書き込む。このコマンドの書込みは、ＰＣＩバスコントローラ３２がＰＣＩバス１０を介してプリンタコントローラ５０のＰＣＩバスコントローラ５２にコマンドを送信し、ＰＣＩバスコントローラ５２が受信したコマンドをＲＡＭ５３上のコマンド領域内にローカルバス５４を介して書き込むことにより行われる。
【００３３】
次に、ＣＰＵ３１は、転送すべきデータをＲＡＭ５３上のデータ領域内に書き込む。具体的には、ＰＣＩバスコントローラ３２がＰＣＩバス１０を介してプリンタコントローラ５０のＰＣＩバスコントローラ５２にデータを送信し、ＰＣＩバスコントローラ５２が受信したデータをＲＡＭ５３上のデータ領域内にローカルバス５４を介して書き込むことにより行われる。
【００３４】
コマンド送信側のカラー画像処理ボード３０のＣＰＵ３１は、この様にしてコマンド受信側のＲＡＭ５３にコマンド及びデータを書き込むと、その旨をコマンド受信側のプリンタコントローラ５０に通知するために、割込みを発生させる。すなわち、ＰＣＩバスコントローラ３２により、プリンタコントローラ５０に対して割込みを発生させるための割込み要求が割込みコントロールレジスタ２３にＰＣＩバス１０を介して書き込まれる。
【００３５】
この割込み要求の書込みは、ＰＣＩバスコントローラ３２がＰＣＩバス１０を介してＰＣＩホストコントローラ２２に割込み要求を送信し、ＰＣＩホストコントローラ２２が受信した割込み要求を割込みコントロールレジスタ２３にローカルバス２５を介して書き込むことにより行われる。
【００３６】
カラー画像処理ボード３０からプリンタコントローラ５０への割込み要求が割込みコントロールレジスタ２３にセットされると、割込みコントロールレジスタ２３から割込み信号線を介してプリンタコントローラ５０のＣＰＵ５１に割込み信号が送信される。この様にして、ＣＰＵ３１がプリンタコントローラ５０のＣＰＵ５１に対して割込みを発生させることにより、コマンド及びデータの書込み完了がプリンタコントローラ５０に通知される。
【００３７】
一方、書込み完了が通知されたプリンタコントローラ５０のＣＰＵ５１は、ＲＡＭ５３内におけるカラー画像処理ボード３０用のコマンド領域からコマンドを読出し、データ領域からデータを読み出す。
【００３８】
次に、ＣＰＵ５１は、データ領域から読み出したデータに対して、カラー画像処理ボード３０用のコマンド領域から読み出したコマンドに対応する処理を実行し、カラー画像処理ボード３０用のコマンド領域からコマンド及びデータを読み出したことをコマンド送信側に通知するために、カラー画像処理ボード３０に対して割込みを発生させる。
【００３９】
すなわち、ＰＣＩバスコントローラ５２により、カラー画像処理ボード３０に対して割込みを発生させるための割込み要求が割込みコントロールレジスタ２３にＰＣＩバス１０を介して書き込まれる。
【００４０】
この割込み要求の書込みは、ＰＣＩバスコントローラ５２がＰＣＩバス１０を介してＰＣＩホストコントローラ２２に割込み要求を送信し、ＰＣＩホストコントローラ２２が受信した割込み要求を割込みコントロールレジスタ２３にローカルバス２５を介して書き込むことにより行われる。
【００４１】
プリンタコントローラ５０からカラー画像処理ボード３０への割込み要求が割込みコントロールレジスタ２３にセットされると、割込みコントロールレジスタ２３から割込み信号線を介してカラー画像処理ボード３０のＣＰＵ３１に割込み信号が送信される。
【００４２】
カラー画像処理ボード３０のＣＰＵ３１は、割込みコントロールレジスタ２３からの割込み信号の受信により、自デバイス用のコマンド領域に書き込んだコマンド及びデータがプリンタコントローラ５０のＣＰＵ５１によって読み出されて不要になったと判断する。そして、ＣＰＵ３１は、ＲＡＭ５３内における自デバイス用のコマンド領域に未使用であることを示すコマンドを書き込み、ＲＡＭ３３内の所定領域に上記コマンド領域の使用権を返却するための情報を書き込んで、自デバイス用のコマンド領域のセマフォを返却してこの通信を終了する。
【００４３】
本実施の形態では、この様にしてＰＣＩバス１０を介して行われるスレーブデバイス間のデータ転送と、ホストデバイス及びスレーブデバイス間で行われるデータ転送において、他の入出力装置がメモリ上の非共有領域へデータを書き込む場合や、他の入出力装置が非共有領域からデータを読み出す場合に、非共有領域を有する入出力装置によりメモリアドレスを変更する動作が行われる。
【００４４】
図２は、図１のデジタル複合機１００の要部における構成例を示したブロック図であり、ＰＣＩバス１０により接続された入出力装置１１０及び１２０が示されている。入出力装置１１０及び１２０は、いずれもデータ転送システムを構成するホストデバイス又はスレーブデバイスである。
【００４５】
ここでは、ＭＦＰコントローラ２０、カラー画像処理ボード３０、ネットワークボード４０及びプリンタコントローラ５０の各入出力装置のうち、ＲＡＭ１１３上に共有領域１１３ａ及び非共有領域１１３ｂを有する入出力装置１１０を第１の入出力装置「デバイスＡ」とする。一方、「デバイスＡ」とは異なる入出力装置１２０を第２の入出力装置「デバイスＢ」とする。
【００４６】
すなわち、入出力装置１１０は、ＣＰＵ１１１、ＰＣＩバスコントローラ１１２、共有領域１１３ａ、非共有領域１１３ｂ及びローカルバス１１４からなる。入出力装置１２０は、ＣＰＵ１２１、ＰＣＩバスコントローラ１２２、ＲＡＭ１２３及びローカルバス１２４からなる。
【００４７】
共有領域１１３ａは、ＰＣＩバス１０のアドレス空間にメモリアドレスが割り当てられ、ＰＣＩバス１０を介して他の入出力装置と共有されるメモリ領域からなる。一方、非共有領域１１３ｂは、ＰＣＩバス１０のアドレス空間にメモリアドレスが割り当てられず、他の入出力装置と共有されないメモリ領域からなる。
【００４８】
つまり、ＲＡＭ１１３は、メモリアドレスがＰＣＩバス１０のアドレス空間に割り当てられた共有領域１１３ａと、メモリアドレスがアドレス空間に割り当てられていない非共有領域１１３ｂとからなるメモリとなっている。
【００４９】
デジタル複合機１００には、この様な入出力装置１１０及び１２０がそれぞれ１以上存在するものとする。この様な入出力装置間で行われるデータ転送において、入出力装置１２０が入出力装置１１０の非共有領域１１３ｂへデータを書き込む場合と、入出力装置１２０が非共有領域１１３ｂからデータを読み出す場合に、非共有領域１１３ｂを含むＲＡＭ１１３のメモリアドレスが変更される。
【００５０】
具体的には、入出力装置１２０からの転送要求に基づいて、ＰＣＩバス１０のアドレス空間に割り当てられているＲＡＭ１１３のメモリアドレスが変更される。その際、非共有領域１１３ｂの一部又は全部が共有領域として機能するように、メモリアドレスが変更される。
【００５１】
一般に、ＰＣＩバス１０のアドレス空間は、ＰＣＩバス１０のバスアドレスからなる仮想空間であり、ＰＣＩバスコントローラがＰＣＩバス１０を介してデータを転送する際に使用するアドレス線の数に応じてそのサイズが定められる。
【００５２】
アドレス空間には、ＰＣＩバス１０を介して互いにデータ転送可能に接続されている入出力装置ごとに、メモリアドレスの割当て領域が形成される。例えば、入出力装置１１０のＲＡＭ１１３に対するアドレス割当てが配置される割当て領域と、入出力装置１２０のＲＡＭ１２３に対するアドレス割当てが配置される割当て領域が形成される。
【００５３】
このとき、ＲＡＭのメモリアドレスのビット数や記憶容量に比べて、アドレス空間が小さくて割当て領域が狭い場合、又は、アドレス空間のサイズがたとえ大きくても、メモリアドレスが割り当てられる割当て領域が狭い場合に、アドレス空間にメモリアドレスが割り当てられないメモリ領域、すなわち、非共有領域が生じることになる。入出力装置１１０の場合、アドレス空間には、ＲＡＭ１１３内のメモリ領域のうち、共有領域１１３ａに対してだけメモリアドレスが対応する割当て領域内に割り当てられている。
【００５４】
一方、割当て領域が大きい場合には、非共有領域が生じることはなく、ＲＡＭの全メモリアドレスがアドレス空間に割り当てられる。
【００５５】
図３は、図２の入出力装置１１０におけるＣＰＵ１１１の構成例を示したブロック図である。このＣＰＵ１１１は、アドレス割当て変更部１、転送応答生成部２、デフォルト情報記憶部３、アドレス割当て記憶部４、転送制御部５及びアドレス割当て復元部６により構成される。
【００５６】
アドレス割当て変更部１は、非共有領域１１３ｂへの書込み又は非共有領域１１３ｂからの読出しが指定された入出力装置１２０からの転送要求に基づいて、ＰＣＩバス１０のアドレス空間に割り当てられているＲＡＭ１１３のメモリアドレスを変更する動作を行っている。このメモリアドレスの変更では、アドレス空間に割り当てられていなかったメモリ領域を共有領域とし、共有領域としてメモリアドレスが割り当てられていたメモリ領域を非共有領域とする処理が行われる。
【００５７】
このアドレス割当て変更部１では、デフォルト情報として予め定められたアドレス割当てに基づいてメモリアドレスを変更する処理が行われる。デフォルト情報記憶部３には、この様な予め定められたアドレス割当て、すなわち、アドレス空間に対するメモリアドレスの割当て情報がデフォルト情報として保持されている。一方、アドレス割当て記憶部４には、変更後のアドレス割当てが保持される。
【００５８】
ここでは、アドレス割当てとして、複数のメモリアドレスがそれぞれＰＣＩバス１０の異なるバスアドレスに対応づけて保持されているものとする。
【００５９】
また、アドレス割当て変更部１が、書込み先として連続するメモリアドレスが指定されたデータの書込みの場合であって、書込み先として指定されたメモリアドレスの数が共有領域のメモリアドレスの数よりも多い場合に、データの連続書込みの途中でメモリアドレスを変更する動作が行われるものとする。
【００６０】
転送応答生成部２は、入出力装置１２０からの転送要求に基づいて、転送応答を生成する動作を行っている。この転送応答は、ＰＣＩバスコントローラ１１２を介して入出力装置１２０へ送出される。
【００６１】
具体的には、非共有領域１１３ｂへの書込み又は非共有領域１１３ｂからの読出しが指定された転送要求に対して、アドレス割当て変更部１によるメモリアドレスの変更後に、転送要求に対する応答として転送応答が生成され、入出力装置１２０へ送出される。
【００６２】
この転送応答生成部２は、不許可応答生成部２ａを有し、入出力装置１２０によるデータ転送中に入出力装置１２０以外の入出力装置から転送要求を受信した場合に、転送不可を示す不許可応答が当該転送要求に対する応答として生成される。
【００６３】
つまり、データ転送中に他の入出力装置から転送要求があった場合に、当該入出力装置に対して転送不可を通知することによる排他制御が行われる。この様な排他制御により、他の入出力装置がＲＡＭ１１３上の非共有領域へデータを誤転送してしまうのを防止することができる。
【００６４】
転送制御部５は、アドレス割当て記憶部４内に保持されているアドレス割当てに基づいて、ＰＣＩバスコントローラ１１２及びＲＡＭ１１３間におけるデータ転送の制御を行っている。
【００６５】
アドレス割当て復元部６は、データ転送後に送出される入出力装置１２０からの転送完了通知に基づいて、アドレス割当て変更部１により変更されたＲＡＭ１１３のメモリアドレスを元の状態に戻す動作を行っている。このメモリアドレスを元の状態に戻す動作は、デフォルト情報記憶部３からデフォルト情報を読み出して行われ、復元後のアドレス割当てがアドレス割当て記憶部４に書き込まれる。
【００６６】
図４は、図３のＣＰＵ１１１における動作の一例を示した図であり、デフォルト情報として予め定められているアドレス割当て３ａと、変更後のアドレス割当て４ａ及び４ｂが示されている。デフォルト情報として予め定められているアドレス割当て３ａでは、ＲＡＭ１１３上のメモリ領域Ａ１を共有領域としてメモリアドレスがアドレス空間に割り当てられており、このメモリ領域Ａ１以外のメモリ領域、すなわち、メモリ領域Ａ２が非共有領域となっている。
【００６７】
つまり、ＰＣＩバス１０を介して行われるデータ転送では、他の入出力装置がメモリ領域Ａ１内にデータを書込み、或いは、メモリ領域Ａ１内からデータを読み出すことができる。
【００６８】
アドレス割当て変更部１では、この様な予め定められているアドレス割当て３ａに対して、他の入出力装置からの転送要求に基づいてアドレス空間に割り当てられているメモリアドレスを変更する動作が行われる。変更後のアドレス割当て４ａでは、非共有領域であったメモリ領域Ａ２の一部が共有領域Ｂ１２としてメモリアドレスがアドレス空間に割り当てられ、共有領域であったメモリ領域Ａ１の一部が非共有領域Ｂ１１となっている。非共有領域であったメモリ領域Ａ２の他の部分は、そのまま非共有領域Ｂ１３となっている。
【００６９】
また、変更後のアドレス割当て４ｂでは、非共有領域であったメモリ領域Ａ２の全部が共有領域Ｂ２２としてメモリアドレスがアドレス空間に割り当てられ、共有領域であったメモリ領域Ａ１の全部が非共有領域Ｂ２１となっている。
【００７０】
この様に、他の入出力装置からの転送要求に応じてＲＡＭ１１３のメモリアドレスを変更することにより、デフォルトで非共有領域であったメモリ領域Ａ２に他の入出力装置がデータを書き込み、或いは、メモリ領域Ａ２からデータを読み出すことができる。
【００７１】
図５は、図２の入出力装置１１０及び１２０間でＰＣＩバス１０を介して行われるデータ転送の一例を示したシーケンス図であり、入出力装置１２０が入出力装置１１０へデータを書き込む場合が示されている。入出力装置１２０「デバイスＢ」から入出力装置１１０「デバイスＡ」にＰＣＩバス１０を介してデータを転送する場合、まず、入出力装置１２０のＣＰＵ１２１は、転送要求として送信コマンドを発行し、ＰＣＩバスコントローラ１２２を介して入出力装置１１０へ送出する（ステップＳ１０１）。
【００７２】
入出力装置１１０のＣＰＵ１１１は、入出力装置１２０からの送信コマンドを受信すると、当該送信コマンドに基づいてＲＡＭ１１３に対するアドレス割当てを変更する（ステップＳ１０２）。
【００７３】
次に、ＣＰＵ１１１は、アドレス割当ての変更後、転送応答として当該送信コマンドのレスポンスを発行し、ＰＣＩバスコントローラ１１２を介して入出力装置１２０へ送出する（ステップＳ１０３）。
【００７４】
ＣＰＵ１２１は、このレスポンスを受信すると、ＰＣＩバスコントローラ１２２を介して入出力装置１１０のＲＡＭ１１３に対するデータの書込みを行う（ステップＳ１０４）。
【００７５】
次に、ＣＰＵ１２１は、データの書込みが終了し、データ転送が完了すると、転送完了通知として送信完了コマンドを発行し、ＰＣＩバスコントローラ１２２を介して入出力装置１１０へ送出する（ステップＳ１０５，Ｓ１０６）。
【００７６】
入出力装置１１０のＣＰＵ１１１は、入出力装置１２０からの送信完了コマンドを受信すると、アドレス割当てを元の状態に戻す（ステップＳ１０７）。次に、ＣＰＵ１１１は、送信完了コマンドのレスポンスを発行し、この処理を終了する（ステップＳ１０８）。
【００７７】
送信完了コマンドのレスポンスは、ＰＣＩバスコントローラ１１２を介して入出力装置１２０へ送出され、ＣＰＵ１２１は、入出力装置１１０からの当該レスポンスを受信すると、その受信結果に基づいてこの処理を終了する。
【００７８】
本実施の形態によれば、データ転送時に入出力装置１１０においてデータを移動させなくても良いので、ＲＡＮ１１３上の非共有領域１１３ｂへ他の入出力装置からデータを書き込む際や非共有領域１１３ｂから他の入出力装置へデータを読み出す際の転送効率を向上させることができる。
【００７９】
特に、入出力装置１２０からの転送完了通知に基づいてメモリアドレスが元の状態に自動的に戻されるので、データ転送の終了後に他の入出力装置によってＲＡＭ１１３にデータが誤書込みされるのを防止することができる。また、書込み先として連続するメモリアドレスが指定されたデータの書込みの場合であって、書込み先として指定されたメモリアドレスの数が共有領域のメモリアドレスの数よりも多い場合に、データの連続書込みの途中でメモリアドレスが変更されるので、転送効率をさらに向上させることができる。
【００８０】
なお、本実施の形態では、データ転送後に送出される入出力装置１２０からの転送完了通知に基づいてアドレス割当て変更部１により変更されたメモリアドレスが元の状態に戻される場合の例について説明したが、本発明はこれに限られるものではない。例えば、データ転送の終了後、他の入出力装置からの転送要求が受信した場合に、当該転送要求の受信結果に基づいてメモリアドレスを元の状態に戻すようなものであっても良い。
【００８１】
また、本実施の形態では、入出力装置１２０によるデータ転送中に入出力装置１２０以外の入出力装置から転送要求を受信した際に、不許可応答が当該転送要求に対する応答として送出される場合の例について説明したが、本発明はこれに限られるものではない。例えば、データ転送中に他の入出力装置からの転送要求が受信した場合に、データ転送が終了して、ＲＡＭ１１３のメモリアドレスが元の状態に戻されるまで、当該転送要求に対する応答を送出しないようなものであっても良い。
【００８２】
また、本実施の形態では、ＣＰＵがＰＣＩバスコントローラ及びＲＡＭ間におけるデータの送受信を行う場合の例について説明したが、本発明はこれに限られるものではない。例えば、入出力装置内にＤＭＡ（Direct Memory Access）コントローラを設け、このＤＭＡコントローラがＣＰＵからの指示に基づいて動作することにより、ＣＰＵを介さずにＰＣＩバスコントローラ及びＲＡＭ間でデータが送受信されるようにしても良い。この様に、ＤＭＡコントローラにデータの送受信を行わせることにより、ＣＰＵの負荷を低減することができる。
【００８３】
ＤＭＡコントローラを用いてＰＣＩバスコントローラ及びＲＡＭ間のデータの送受信を行わせる際、ＤＭＡコントローラがアクセスできないメモリ領域が存在する場合には、ＳＲＡＭ（Static Random Access Memory）などの不揮発性メモリからなるワークバッファに一旦、データを受信して転送することが考えられる。
【図面の簡単な説明】
【００８４】
【図１】本発明の実施の形態によるデータ転送システムの一構成例を示したシステム図であり、データ転送システムの一例としてデジタル複合機１００が示されている。
【図２】図１のデジタル複合機１００の要部における構成例を示したブロック図であり、ＰＣＩバス１０により接続された入出力装置１１０及び１２０が示されている。
【図３】図２の入出力装置１１０におけるＣＰＵ１１１の構成例を示したブロック図である。
【図４】図３のＣＰＵ１１１における動作の一例を示した図であり、予め定められているアドレス割当て３ａ、変更後のアドレス割当て４ａ及び４ｂが示されている。
【図５】図２の入出力装置１１０及び１２０間でＰＣＩバス１０を介して行われるデータ転送の一例を示したシーケンス図である。
【符号の説明】
【００８５】
１  アドレス割当て変更部
２  転送応答生成部
３  デフォルト情報記憶部
４  アドレス割当て記憶部
５  転送制御部
６  アドレス割当て復元部
１０  ＰＣＩバス
１１  ＰＣＩブリッジ
２０  ＭＦＰコントローラ
２１，３１，４１，５１  ＣＰＵ
２２  ＰＣＩホストコントローラ
２３  割込みコントロールレジスタ
２４，３３，４３，５３  ＲＡＭ
２５，３４，４４，５４  ローカルバス
２６  スキャナ
３０  カラー画像処理ボード
３２，４２，５２  ＰＣＩバスコントローラ
４０  ネットワークボード
５０  プリンタコントローラ
５５  プリンタ
１００  デジタル複合機
１１０，１２０  入出力装置
１１１，１２１  ＣＰＵ
１１２，１２２  ＰＣＩバスコントローラ
１１３，１２３  ＲＡＭ
１１３ａ  共有領域
１１３ｂ  非共有領域
１１４，１２４  ローカルバス
【図１】
2009064341.tif 000003
【図２】
2009064341.tif 000004
【図３】
2009064341.tif 000005
【図４】
2009064341.tif 000006
【図５】
2009064341.tif 000007