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