(57)【特許請求の範囲】
【請求項１】
画像データを生成する画像データ生成装置と、前記画像データを出力する画像処理装置とを備えた画像処理システムであって、
前記画像処理装置は、
前記画像データ生成装置内に生成された画像データを読み出す複数の転送手段と、
前記複数の転送手段を管理する転送制御手段と、を備え、
前記転送制御手段は、前記複数の各転送手段の使用状況を監視し、前記複数の転送手段のうち、一つの転送手段に通信エラーが発生した場合、再度画像データの読み出しを行うリトライ処理を行い、他の空いた転送手段で次の画像データ読み出しを行い、
前記画像データ生成装置から読み出した画像データを記憶部の所定の場所に記憶するためのアドレスを、前記画像データの読み出しを行う際の読み出しアドレスに基づいて算出することを特徴とする画像処理システム。
【請求項２】
前記転送制御手段は、前記他の空いた転送手段で行った画像読み出しにより受信した画像データを、前記通信エラーが生じているデータ分のアドレスを空けて記憶部に記憶し、その後、前記通信エラーによって受信が遅れたデータを受信した場合に、空けておいたアドレスに記憶すること、を特徴とする請求項１記載の画像処理システム。
【請求項３】
前記転送手段は、高速かつ読み出しアドレスを指定できるPCI-Expressであることを特徴とする請求項１又は２記載の画像処理システム。
【請求項４】
画像データを生成する画像データ生成装置から前記画像データを取得し、出力する画像処理装置であって、
前記画像データ生成装置内に生成された画像データを読み出す複数の転送手段と、
前記複数の転送手段を管理する転送制御手段と、を備え、
前記転送制御手段は、前記複数の各転送手段の使用状況を監視し、前記複数の転送手段のうち、一つの転送手段に通信エラーが発生した場合、再度画像データの読み出しを行うリトライ処理を行い、他の空いた転送手段で次の画像データ読み出しを行い、
前記画像データ生成装置から読み出した画像データを記憶部の所定の場所に記憶するためのアドレスを、前記画像データの読み出しを行う際の読み出しアドレスに基づいて算出することを特徴とする画像処理装置。
【請求項５】
画像データを生成する画像データ生成装置から、前記画像データを取得する画像処理装置のデータ転送制御方法であって、
前記画像データ生成装置内に生成された画像データを読み出す複数の各転送手段の使用状況を監視し、前記複数の転送手段のうち、一つの転送手段に通信エラーが発生した場合、再度画像データの読み出しを行うリトライ処理を行い、他の空いた転送手段で次の画像データ読み出しを行うよう制御するステップと、
前記画像データ生成装置から読み出した画像データを記憶部の所定の場所に記憶するためのアドレスを、前記画像データの読み出しを行う際の読み出しアドレスに基づいて算出するステップと、を備えることを特徴とするデータ転送制御方法。
【請求項６】
画像データを生成する画像データ生成装置から、前記画像データを取得する画像処理装置のデータ転送制御プログラムであって、
前記画像データ生成装置内に生成された画像データを読み出す複数の各転送手段の使用状況を監視し、前記複数の転送手段のうち、一つの転送手段に通信エラーが発生した場合、再度画像データの読み出しを行うリトライ処理を行い、他の空いた転送手段で次の画像データ読み出しを行うよう制御する処理と、
前記画像データ生成装置から読み出した画像データを記憶部の所定の場所に記憶するためのアドレスを、前記画像データの読み出しを行う際の読み出しアドレスに基づいて算出する処理と、をコンピュータに実行させることを特徴とするデータ転送制御プログラム。
【請求項７】
請求項６記載のデータ転送制御プログラムの処理を記録するコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理システム、画像処理装置、データ転送制御方法、プログラム及び記録媒体に関し、特に画像データのデータ転送を行う画像処理システム、画像処理装置、データ転送制御方法、プログラム及び記録媒体に関する。
【背景技術】
【０００２】
フルカラー画像データ等の大量データを印刷装置に転送するために、高速なデータ転送手段が用いられている。
【０００３】
例えば、IEEE（Institute of Electrical and Electronics Engineers）1394バス（シリアルインターフェイスの規格）及びそのアイソクロナス転送（Isochronous Transfer）が使用されている。印刷用途に用いられる静止画データ等では、データ転送時に何等かの原因によるデータの欠落が発生することは致命的な問題である。そこで、再送制御を行う等によりデータの転送エラーを回復し、転送帯域を保証しつつ確実なデータ転送を行うための方法として、単一のアイソクロナスチャンネルを時分割することにより双方向通信を行う方式がある。しかし、IEEE Std 1394規格では、複数のノードが単一のチャネルに対してデータを送出することを認めていない。そこで、IEEE1394バスやUSB（Universal Serial Bus）等のインターフェイスを備えた装置において、複数のアイソクロナスを使うことにより、データ受信側からの実時間での再送制御を行いつつ信頼性の高い高速データ転送を提供する情報転送装置が提案されている（特許文献１参照）。
【０００４】
また、画像データの転送処理に関し、画像メモリから他の記憶装置に画像データを退避し復帰させる際の転送処理を他の処理に影響を与えずに効率良く実行可能な画像処理装置が提案されている（特許文献２参照）。デジタル写真機などの画像処理装置内では、原稿を読取る入力部や電子写真方式の出力部との間で画像データ入出力する際に、高速の半導体メモリで構成された画像メモリが入出力バッファとして使用されている。しかし近年は画像の高解像度化やカラー化、多階調化などにより、扱うべき画像データのデータ量が増大しており、ハードディスク装置などの比較的安価で大容量の記憶装置を画像メモリとして使用することが多い。しかしハードディスク装置などの記憶装置は、半導体メモリに比べてアクセス速度が遅く、リアルタイムの応答性に欠ける。従って、入出力部とのやりとりは従来通り高速の半導体メモリで構成された画像メモリを用いて行い、入力時は画像データを半導体メモリからハードディスク装置等へ退避させ、出力時は半導体メモリからハードウェア装置等に復帰させる転送処理を行う。このような転送処理は、基幹バスを通じて行うと、転送される画像データが膨大なので、基幹バスがほぼ占有され、他の処理の円滑な実行に影響を与えてしまう。そこで、画像データを形成色毎に独立したバスで転送することで、データ転送の効率を高め、転送速度の向上を行っている。かかる画像転送用バス内で独立してDMA転送（Direct Memory Access；CPUを介さず、主記憶装置と入出力装置間で直接データを転送する方式）を行うことにより、全体として画像データの転送処理が高速化される。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記のような技術には、以下の問題点があった。
【０００６】
転送制御部であるDMAC（Direct Memory Access Controller）をバス毎に独立させると、例えば複数あるバスのうちの一つに、プロトコルエラー等によるリトライ処理（再送制御）が発生した場合、リトライ処理により発生したオーバーヘッド、すなわち、リトライ処理により再度エラーが発生した該当アドレスへのリード動作を行うため、正常動作時よりも転送時間が長くなる現象が生じてしまう。かかるオーバーヘッドは、他のバスを利用してカバーすることができず、結果的に全てのバスがこのリトライ処理によるオーバーヘッドの影響を受けてしまい、転送時間がさらに長くかかってしまうという問題が生じる。
【０００７】
本発明は、画像データの転送におけるリトライ処理による影響を低減することを目的としている。
【課題を解決するための手段】
【０００８】
本発明に係る画像処理システムは、画像データを生成する画像データ生成装置と、前記画像データを出力する画像処理装置とを備えた画像処理システムであって、前記画像処理装置は、前記画像データ生成装置内に生成された画像データを読み出す複数の転送手段と、前記複数の転送手段を管理する転送制御手段と、を備え、前記転送制御手段は、前記複数の各転送手段の使用状況を監視し、前記複数の転送手段のうち、一つの転送手段に通信エラーが発生した場合、再度画像データの読み出しを行うリトライ処理を行い、他の空いた転送手段で次の画像データ読み出しを行い、前記画像データ生成装置から読み出した画像データを記憶部の所定の場所に記憶するためのアドレスを、前記画像データの読み出しを行う際の読み出しアドレスに基づいて算出することを特徴とする。
【０００９】
本発明に係る画像処理装置は、画像データを生成する画像データ生成装置から前記画像データを取得し、出力する画像処理装置であって、前記画像データ生成装置内に生成された画像データを読み出す複数の転送手段と、前記複数の転送手段を管理する転送制御手段と、を備え、前記転送制御手段は、前記複数の各転送手段の使用状況を監視し、前記複数の転送手段のうち、一つの転送手段に通信エラーが発生した場合、再度画像データの読み出しを行うリトライ処理を行い、他の空いた転送手段で次の画像データ読み出しを行い、前記画像データ生成装置から読み出した画像データを記憶部の所定の場所に記憶するためのアドレスを、前記画像データの読み出しを行う際の読み出しアドレスに基づいて算出することを特徴とする。
【００１０】
本発明に係るデータ転送制御方法は、画像データを生成する画像データ生成装置から、前記画像データを取得する画像処理装置のデータ転送制御方法であって、前記画像データ生成装置内に生成された画像データを読み出す複数の各転送手段の使用状況を監視し、前記複数の転送手段のうち、一つの転送手段に通信エラーが発生した場合、再度画像データの読み出しを行うリトライ処理を行い、他の空いた転送手段で次の画像データ読み出しを行うよう制御するステップと、前記画像データ生成装置から読み出した画像データを記憶部の所定の場所に記憶するためのアドレスを、前記画像データの読み出しを行う際の読み出しアドレスに基づいて算出するステップと、を備えることを特徴とする。
【００１１】
本発明に係るデータ転送制御プログラムは、画像データを生成する画像データ生成装置から、前記画像データを取得する画像処理装置のデータ転送制御プログラムであって、前記画像データ生成装置内に生成された画像データを読み出す複数の各転送手段の使用状況を監視し、前記複数の転送手段のうち、一つの転送手段に通信エラーが発生した場合、再度画像データの読み出しを行うリトライ処理を行い、他の空いた転送手段で次の画像データ読み出しを行うよう制御する処理と、前記画像データ生成装置から読み出した画像データを記憶部の所定の場所に記憶するためのアドレスを、前記画像データの読み出しを行う際の読み出しアドレスに基づいて算出する処理と、をコンピュータに実行させることを特徴とする。
【００１２】
本発明に係る記録媒体は、上記本発明に係るデータ転送制御プログラムの処理を記録するコンピュータ読取り可能な記録媒体である。
【発明の効果】
【００１３】
本発明によれば、画像データの転送におけるリトライ処理による影響を低減することが出来る。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態に係る印刷システムの全体構成図である。
【図２】本発明の実施形態に係るデータ転送の動作処理の概略を示すフローチャートである。
【図３】本発明の実施形態に係るDMAコントローラの動作処理を示すフローチャートである。
【図４】本発明の実施形態に係るデータ転送の動作処理を示すタイムチャートである。
【発明を実施するための形態】
【００１５】
以下に、本発明の実施形態について図面を用いて詳細に説明する。なお、以下に述べる実施形態は、本発明の好適な実施形態であるから、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明において特に本発明を限定する旨の記載がない限り、これらの態様に限られるものではない。
【００１６】
本発明の実施形態に係る画像処理システムは、画像データ転送の使用状況を監視し、通信エラー時の再送処理による遅延を、転送順序を柔軟に変更することで防ぎ、効率良く高速データ転送を行うことが出来る。
【００１７】
以下説明する実施形態では、画像データの一例として印刷データ、画像データ生成装置の一例として印刷データ生成装置、画像データを出力する画像処理装置の一例として印刷データを印刷する印刷装置、画像処理システムの一例として印刷システムを用いて説明する。
【００１８】
本実施形態に係るデータ転送は、印刷データを生成し、印刷装置からの要求に応じて印刷データを転送する印刷データ生成装置と、印刷データ生成手段に印刷データを要求し、要求に応じた印刷データを受け取って印刷を実行する印刷装置との間におけるデータ転送に関する。
【００１９】
かかる装置間には、複数の転送手段（以下、データ通信線と称す）が設けられ、１のデータ通信線で通信エラーが生じた場合に、他のデータ通信線によって次に呼び出すデータを受信することを特徴とする。
【００２０】
なお、１のデータ通信線で通信エラーが生じた場合に、他のデータ通信線によって次に呼び出すデータを受信した場合は、通信エラーが生じているデータ分のアドレスを空けてメモリに記録する。その後、通信エラーによって受信が遅れたデータを受信すると、空けておいたアドレスに記録する。
【００２１】
以下に説明する実施形態では、２つのデータ通信線を用いる。また、データ通信線の一例として、高速かつリードデータのアドレスを指定できる転送手段であるPCI-Expressを用いる。
【００２２】
転送手段を管理する転送制御手段の一例として、DMAC（Direct Memory Access Controller）を用い、印刷データ生成装置から取得した印刷データを、CPUを介さずに、印刷装置内のメモリに転送し、高速データ通信を実現する。
【００２３】
（構成）
図１は、本発明の実施形態に係る印刷システムの全体構成図である。本実施形態に係る印刷システムは、印刷データ生成装置１、印刷装置２、及びPCI-ExpressのポートであるバスＡ、バスＢから構成される。本実施形態では、最も単純なPCI-Expressバスを二重にした例を用いて説明する。
【００２４】
印刷データ生成装置１は、生成した印刷データを格納しておくメモリ１１、バスＡを制御するPCI-ExpressポートＡ１３１、バスＢを制御するPCI-ExpressポートＢ１３２、各PCI-Expressバスへデータを振り分けるPCI-Expressスイッチ１４及びメモリバスとPCI-Expressスイッチバスをブリッジするバススイッチ１２から成る。
【００２５】
印刷装置２は、受信した印刷データを格納するメモリ２１、バスＡを制御するPCI-ExpressポートＡ２３１、バスＢを制御するPCI-ExpressポートＢ２３２、各PCI-Expressから受信したデータをメモリ２１に転送するDMAC内蔵型PCI-Expressスイッチ２４、及びメモリバスとPCI-Expressスイッチバスをブリッジするバススイッチ２２から成る。
【００２６】
本実施形態では、PCI-Expressスイッチ内にDMAコントローラ（DMAC）を内蔵した"DMAC内蔵型PCI-Expressスイッチ２４"を用い、多重化された各PCI-Expressバス上に出力するアドレス情報をDMAコントローラが直接制御可能なデータ転送システムを実現する。
【００２７】
（動作処理）
次にユーザが印刷指示を行い、印刷データが、印刷データ生成装置１から印刷装置２のメモリ２１へ転送されるまでの概略フローを図２に示し、本実施形態の動作処理について説明する。
【００２８】
図２に示すように印刷データ生成装置１がユーザからの印刷指示を受け付けると（ステップＳ１）、メモリ１１に印刷データを展開する（ステップＳ２）。
【００２９】
印刷データの展開が完了すると、印刷データ生成装置１は印刷装置２に対して印刷を要求する（ステップＳ３）。
【００３０】
印刷装置２は印刷データ生成装置１からの指示に従い、PCI-Expressスイッチ２４に内蔵されているDMAコントローラに、印刷データ生成装置１内のメモリ１１に格納されている印刷データの先頭アドレス、印刷データのサイズ、印刷データの転送先である印刷装置２内のメモリ２１の格納先先頭アドレス等の初期設定を行い、DMA転送の起動を行う（ステップＳ４）。
【００３１】
上記印刷データの先頭アドレス及び印刷データのサイズの初期設定は、印刷データ生成装置１からの指示に基づく。印刷装置２内の格納先先頭アドレスは、印刷装置２自身の指示に基づくことを想定しているが、印刷データ生成装置１で全てを管理しても良い。
【００３２】
この時、DMAC内蔵型PCI-Expressスイッチ２４は、印刷装置２内の処理を考慮し、印刷データの縦、横方向のデータサイズ設定や、印刷装置２の機械的な誤差を吸収するための印刷開始位置の微調整設定などを行う。なお、上記初期設定での印刷データサイズは、単純にDMA転送を行うバイト数を想定したものであり、ここで設定する縦方向、横方向のサイズとは異なる。また、印刷装置２内のメモリ２１に印刷データを格納する際にラスタ単位に分割して格納しても良い。
【００３３】
そして、印刷装置２は、DMAC内蔵型PCI-Expressスイッチ２４に、DMA転送を指示する（ステップＳ５）。PCI-Expressスイッチ２４に内蔵されているDMAコントローラは、上述した設定情報に基づき、バスＡ、バスＢの両方のPCI-Expressバスを使用し、データ転送を開始する（ステップＳ６）。DMAコントローラによるデータ転送が完了することにより、印刷データ生成装置１から印刷装置２内のメモリ２１へ印刷データの転送が完了したことになる（ステップＳ７）。なお、DMA転送実行時、印刷データ生成装置１はPCI-Expressポート経由で要求されたデータをメモリ１１から読み出し、要求されたポートから出力すれば良く、内部でどのような処理を行っているかについては、特に限定しない。
【００３４】
次に、DMA転送時のDMAコントローラの動作処理について詳述する。図３は、DMA転送時のDMAコントローラの動作処理を示すフローチャートである。図３に示すように、PCI-Expressスイッチ２４に内蔵されたDMAコントローラはDMA転送開始指示を受けると、バスＡの使用状況を確認する（ステップＳ１０）。なお、ここではバスＡから使用状況の確認を行っているが、バスＢから行っても良い。
【００３５】
バスＡが使用可能である場合（ステップＳ１０／No）、DMAコントローラはバスＡを使用してデータREAD要求を実施する（ステップＳ１１）。
【００３６】
データREAD要求実施後、データREAD完了前にDMAコントローラは要求したデータREAD完了後にまだ転送すべきデータが残っているか確認する（ステップＳ１２）。転送すべきデータが残っている場合（ステップＳ１２／Yes）、DMAコントローラは再度、バスの使用状況を確認する（ステップＳ１０）。
【００３７】
バスＡは使用中であるが（ステップＳ１０／Yes）、バスＢが使用可能である場合（ステップＳ１６／No）、DMAコントローラはバスＢを使用してデータREAD要求を実施する（ステップＳ１７）。
【００３８】
データREAD要求実施後、データREAD完了前にDMAコントローラは要求したデータREAD完了後にまだ転送すべきデータが残っているか確認する（ステップＳ１８）。転送すべきデータが残っている場合（ステップＳ１８／Yes）、DMAコントローラはバスの使用状況を確認する（ステップＳ１０）。
【００３９】
バスＡ、Ｂが共に使用中である場合は（ステップＳ１６／Yes）、DMAコントローラはバスＡ又はバスＢのデータ転送完了まで待つ（ステップＳ２１）。どちらかのデータ転送が完了すると（ステップＳ２１／Yes）、再度バスの使用状況確認を行い（ステップＳ１０）、以下、同様の処理をDMA完了する（データ転送の完了）まで（ステップＳ１３がYesの場合、Ｓ１９がYesの場合）行う。
【００４０】
バスでプロトコルエラーが発生した場合は、リトライ処理を行う（Ｓ１５／Yes、Ｓ１１、Ｓ２０／Yes、Ｓ１７）。
【００４１】
なお、上述したデータ転送が完了するとは、印刷データ生成装置１から印刷装置２へのデータ転送に関するものであり、PCI-Expressバスによるデータ転送プロトコルが全て正常に終了したことを意味する。
【００４２】
次に、具体例を用いて本実施形態に係るデータ転送の詳細を説明する。ここでは、印刷データ生成装置１内の印刷データ格納アドレス、即ち転送元アドレスをＸ、データ転送単位をｎバイトとした場合を例としてDMAコントローラの動作を説明する。
【００４３】
DMAコントローラ（DMAC内蔵型PCI-Expressスイッチ２４）は、バスＡを使用してアドレスＸからｎバイトのデータREADを要求する。続いて、バスＢを使用して、アドレス（Ｘ＋ｎ）からｎバイトのデータREAD要求を行う。
【００４４】
データ転送時にCRC（Cyclic Redundancy Check）エラーやプロトコルエラー等の通信エラーが発生しない場合、バスＡ、バスＢのデータ転送性能は等しいため、バスＡがデータ転送完了後にバスＢがデータ転送を完了する。CRCエラーとは、任意長のデータストリームを入力とし、例えば32ビット整数などの固定サイズの値を出力する関数の一種であり、誤り検出符号の一種である。送信側は、ある関数を使用して転送データからCRC出力を計算し、データ列にCRCを付加して送信する。受信側は送信側と同じ関数を用いて受信データからCRC出力を計算し、送信側が付加したCRC値と比較する。送信側と受信側でCRC値が不一致となった場合、データ転送に誤りがあると判断でき、これを一般にCRCエラーと称している。
【００４５】
バスＡのデータ転送が完了すると、DMAコントローラは即座にバスＡを使用してアドレス（Ｘ＋２ｎ）からｎバイトのデータREADを要求する。この後、バスＢのデータ転送が完了すると、DMAコントローラは即座にバスＢを使用してアドレス（Ｘ＋３ｎ）からｎバイトのデータREADを要求する。
【００４６】
このような処理を繰り返し、通信エラーが発生しない場合はDMA起動時に設定されたデータ転送バイト数分のデータ転送を行う。
【００４７】
次に、片側のPCI-Expressバスで、例えばプロトコルエラーが発生し、PCI-Expressの仕様に則ってリトライ処理が発生した場合のデータ転送動作について図４を用いて説明する。図４は、本実施形態に係るデータ転送のタイムチャートである。バスＡを利用した転送は実線、長二点鎖点の矢印で示す。バスＢを利用した転送は、破点、長鎖点の矢印で示す。
【００４８】
図４に示すように、バスＡにはアドレスＸからｎバイトのデータREADを要求し（A1）、バスＢにはアドレス（Ｘ＋ｎ）からｎバイトのデータREADを要求し（B1）、バスＡにおいてプロトコルエラーが検出されたとする（A3）。バスＡはPCI-Expressの仕様に従いプロトコルエラーによるデータ転送のリトライ処理が発生し、再度アドレスＸからｎバイトのデータREADの要求を行う（A4）。そのため、バスＡのデータ転送完了前にバスＢのデータ転送が完了する（B2）。
【００４９】
このとき、DMAコントローラはバスＡの（リトライ処理による）データ転送完了を待つことなく、バスＢを使用してアドレス（Ｘ＋２ｎ）からｎバイトのデータREADを要求する（B3）。すなわち、１つのデータ通信線（例えばPCI-ExpressバスＡ）で通信エラーが生じた場合に、他のデータ通信線（例えばPCI-ExpressバスＢ）によって、次に呼び出すデータ（図４では、アドレスＸ＋２ｎ）を受信する。
【００５０】
続いてバスＡの（リトライ処理による）データ転送が完了すると（A5）、バスＡにはアドレス（Ｘ＋３ｎ）からｎバイトのデータREADを要求する（A6）。
【００５１】
このように、使用されていないバスを次々と利用してデータ転送を行う。
【００５２】
この後、データ転送時にプロトコルエラー等が発生しなければ、正常データ転送時と同様にデータ転送処理を繰り返し、DMA起動時に設定されたデータ転送バイト数分のデータ転送を行う。
【００５３】
このように、使用されていないバスを優先的に利用してデータ転送を行うことで、プロトコルエラー発生等により片側のバスにリトライ処理が発生しても、データ転送性能の低下を最小限に留めることが可能となる。
【００５４】
しかし、上述したエラー発生時の処理を行うと、バスＢのデータ転送完了がバスＡのデータ転送完了よりも早くなってしまう。即ち、データREAD完了の順序性が失われる。
【００５５】
このような順序性の問題は、印刷データ生成装置１の転送元アドレスと、印刷装置２の転送先アドレスを、DMA起動時に対応付けておくことにより対処可能である。以下、この対応付けについて詳述する。
【００５６】
上述したように、DMA転送実行に先んじて行う初期設定において、転送元である印刷データ生成装置１内のメモリ１１に格納されている印刷データの先頭アドレス、及び転送先である印刷装置２内のメモリ２１の転送先先頭アドレスが設定されている。これら初期設定情報から転送元アドレスと転送先アドレスは１対１の関係になるため、順序性が失われても転送元データを転送先の正しいアドレスへ転送することが可能である。
【００５７】
すなわち、受信したREADデータを、受信順にメモリ２１に格納するのではなく、それぞれ所定の場所に記録することで、通信エラーによって受信が遅れてしまうデータ分のアドレスを空けて記録することが可能となる。
【００５８】
続いて、受信したREADデータを所定の場所に記録するためのアドレス（WRITE要求の際のアドレス）の算出について詳述する。
【００５９】
初期設定で設定された転送元先頭アドレスをＳ、転送先先頭アドレスをＤ、READ要求時にDMAコントローラが出力したアドレスをＡとしたとき、DMAコントローラが印刷装置２内にある印刷データ格納用メモリ２１へWRITE要求する際に出力すべきアドレスＢは、次式により求めることができる。
Ｂ ＝ Ａ−Ｓ＋Ｄ
【００６０】
例えば、転送元先頭アドレスSを0x10000000、転送先先頭アドレスDを0x20000000とした場合に、
Ｉ．DMAコントローラが0x10000000をREADしたとすると、A=0x10000000 となるため、上記式に当てはめて、WRITE要求のアドレスBを求めると、
A(0x10000000)  - S(0x10000000) + D(0x20000000) = B(0x20000000)
と、なる。これは転送開始時のアドレスであるため、Bは転送先先頭アドレス(D)と一致している。
ＩＩ．DMAコントローラが0x10001000をリードしたとすると、A=0x10001000 となるため、上記式に当てはめて、WRITE要求のアドレスBを求めると、
A(0x10001000) - S(0x10000000) + D(0x20000000) = B(0x20001000)
と、なる。
【００６１】
図４に示すタイムチャートでは、READデータ（アドレスX+ｎ）を受信したDMAC内蔵型PSI-Expressスイッチ２４が、メモリ２１へデータWRITE要求（アドレスS+ｎ）を行っている（B4）。以下、詳述する。
【００６２】
図４では、まずポートAから転送元アドレスXのデータをｎバイトリードしている（A1）。続いてポートAで要求した次のリードデータをポートBからリード要求するが、この時のアドレスはXからｎバイト後となるため、X+nとなる（B1）。
【００６３】
ここで、図４ではポートAでプロトコルエラーが発生したため（A3）、PCI-ExpressポートA２３１はデータリードを再要求している（リトライ処理）（A4）。再要求のためアドレスはXとなる。一方DMACは、転送元アドレスXとして要求したデータよりも先に、アドレスX+nとして要求したデータがリードできる（B2）。これは、転送先アドレスSからｎバイト分のライト要求を行うべきデータよりも先に転送先アドレスS+nからｎバイト分のライト要求を行うべきデータが揃ったことを意味している。そのため、図４では最初にアドレスS＋ｎのデータライト要求を行っている（B4）。
【００６４】
これを、上記式（B = A - S + D）に当てはめると、転送元先頭アドレスをX、転送先先頭アドレスをS、リード要求時にDMAコントローラが出力したアドレスをX+nとし、同様にWRITE要求アドレスS+nが算出される。
(X+n) - X + S = (S+n)
【００６５】
このように、WRITE要求時にDMAコントローラが出力すべきアドレス（B）は、READ要求時にDMAコントローラが出力したアドレス（A）に基づき決定されることで、READデータを受信順ではなく（転送元アドレスと１対１の関係にある）所定の位置（アドレス）に格納することが出来る。本実施形態に係るデータ転送を行った場合（リトライ処理が発生した際に、使用されていないバスを優先的に利用してデータ転送を行い、READデータの順序性が失われた場合）における、データREAD完了順序性の問題を解決できる。
【００６６】
このように、本方式によりPCI-Expressバスを多重化し、データ転送性能を向上させると共に、プロトコルエラー発生時のリトライ処理に伴うデータ転送性能の低下を最小限に留めたデータ転送システムを実現することが可能となる。なお、本実施形態ではPCI-Expressバスの多重度を２としているが、多重度を更に上げても良い。多重度が３、４と上がっていっても同様の方式が成立する。
【００６７】
本実施形態に係るデータ転送は、プロダクションプリンティング用の印刷システムのような、印刷業務向け、すなわち通常の印刷システムよりも高品質、高信頼性、高生産性が求められる、高速印刷システムに応用され、印刷データ生成装置から印刷装置へ、印刷速度に見合った高速なデータ転送を行うことが可能となる。
【００６８】
なお、各図のフローチャートに示す処理を、ＣＰＵが実行するためのプログラムは本発明によるプログラムを構成する。このプログラムを記録する記録媒体としては、半導体記憶部や光学的及び／又は磁気的な記憶部等を用いることができる。このようなプログラム及び記録媒体を、前述した各実施形態とは異なる構成のシステム等で用い、そこのＣＰＵで上記プログラムを実行させることにより、本発明と実質的に同じ効果を得ることができる。
【００６９】
以上、本発明を好適な実施形態に基づき具体的に説明したが、本発明は上記のものに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【符号の説明】
【００７０】
１    印刷データ生成装置
１１    印刷データ生成装置内蔵のメモリ
１２    印刷データ生成装置内蔵のバススイッチ
１３１    印刷データ生成装置のPCI-Express Ｉ／ＯポートＡ
１３２    印刷データ生成装置のPCI-Express Ｉ／ＯポートＢ
２    印刷装置
２１    印刷装置内蔵のメモリ
２２    印刷装置内蔵のバススイッチ
２３１    印刷装置のPCI-Express Ｉ／ＯポートＡ
２３２    印刷装置のPCI-Express Ｉ／ＯポートＢ
２４    DMAコントローラ内蔵型PCI-Expressスイッチ
【先行技術文献】
【特許文献】
【００７１】
【特許文献１】特開２００２−２８１０３４号公報
【特許文献２】特開２００８−２０６２０５号公報
【図１】
0005440105.tif 000002
【図２】
0005440105.tif 000003
【図３】
0005440105.tif 000004
【図４】
0005440105.tif 000005