以下、本発明の好適な実施例を添付図面に基づいて詳細に説明する。なお、以下に述べる実施例は、本発明の好適な実施例であるので、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明によって不当に限定されるものではなく、また、本実施の形態で説明される構成の全てが本発明の必須の構成要件ではない。
図1〜図7は、本発明のデータ転送装置、画像処理装置、データ転送方法及びデータ転送プログラムの一実施例を示す図であり、図1は、本発明のデータ転送装置、画像処理装置、データ転送方法及びデータ転送プログラムの一実施例を適用した複合装置1の要部ブロック図である。
図1において、複合装置(画像処理装置)1は、コントロール(CLT)ボード2、IPU(Image Processing Unit)ボード3、スキャナ4、プリンタ5及び図示しない操作表示部等を備えている。複合装置1は、コントロールボード2とIPUボード3が、スプリットトランザクションの伝送路であるPCIe6によって接続されている。
コントロールボード2は、CPU(Central Processing Unit)21、ROM(Read Only Memory)22、メモリ23、ASIC24、第2メモリ25等を備えており、CPU21とASIC24とは、PCIe26によって接続されている。
ROM22内には、複合装置1としての基本プログラム、本発明のデータ転送方法を実行するためのデータ転送プログラム及び必要なシステムデータが格納されている。
CPU21は、ROM22内のプログラムにもとづいて、複合装置1の各部を制御して、複合装置1としての基本処理を実行するとともに、本発明のデータ転送方法を実行する。
すなわち、複合装置1は、ROM、EEPROM(Electrically Erasable and Programmable Read Only Memory )、EPROM、フラッシュメモリ、フレキシブルディスク、CD−ROM(Compact Disc Read Only Memory )、CD−RW(Compact Disc Rewritable )、DVD(Digital Versatile Disk)、SD(Secure Digital)カード、MO(Magneto-Optical Disc)等のコンピュータが読み取り可能な記録媒体に記録されている本発明のデータ転送方法を実行するデータ転送プログラムを読み込んでROM22等に導入することで、後述するデータ転送周期を厳守する必要のあるデータのリクエストを適切に発行しつつ、その他のデータのリクエストも適宜発行するデータ転送方法を実行するデータ転送装置を搭載する画像処理装置として構築されている。このデータ転送プログラムは、アセンブラ、C、C++、C#、Java(登録商標)等のレガシープログラミング言語やオブジェクト指向プログラミング言語等で記述されたコンピュータ実行可能なプログラムであり、上記記録媒体に格納して頒布することができる。
メモリ(記憶デバイス)23は、CPU21のワークメモリとして利用されるとともに、後述するように、スキャナ4が読み取った原稿の画像データ、ASIC24で、圧縮処理、描画処理、拡大/縮小等の各種画像処理等のデータ処理された処理済み画像データを格納する。
特に、メモリ23は、詳細に外ししないが、スキャナ用メモリ領域、IPA(Image Prosessing Accelerator )用メモリ領域、プリンタ用メモリ領域を備えている。スキャナ用メモリ領域には、スキャナ4で読み取られたスキャナデータがASIC24を介して転送されて、ライト(Write)される(書き込まれる)。プリンタ用メモリ領域は、ASIC24からの復号化されたプリンタ用データが、ライトされ、また、リード(Read)されて(読み出されて)ASIC24及びIPUボード3を介してプリンタ5へ送られる。IPA用メモリ領域は、描画コマンド、ASIC24で生成された描画データ、C(シアン)、M(マゼンタ)、Y(イエロー)、K(ブラック)の各色のバンドデータ及びASIC24で符号化された符号化データがライトされ、また、リードされる。すなわち、ASIC24は、データ処理を行うIPAを搭載しており、IPAは、メモリ23を利用したデータ処理、特に、描画処理を行う。
ASIC(データ処理デバイス)24は、第2メモリ25をローカルメモリとして利用して、スキャナ4の読み取った原稿の画像データに対して各種画像処理を施して、PCIe26及びCPU21を介してメモリ23にライトし、また、リードして必要なデータ処理を施す。このASIC24については、後で詳細に説明する。さらに、CPU21は、周期データ及び非周期データを蓄積するメモリ(記憶デバイス)23への該データの書き込みと該データの読み出しを制御し、制御デバイスとして機能している。そして、ASIC24、CPU21及びPCIe26は、全体として、データ転送装置7して機能している。
IPUボード3は、CPU31及びASIC32等を搭載しており、ASIC32がコントロールボード2のASIC24と、PCIe6によって接続されている。ASIC32は、さらに、スキャナ4及びプリンタ5に接続されている。
スキャナ(スキャナ手段)4は、例えば、CCD(Charge Coupled Device )、CIS(Contact Image Sensor:密着イメージセンサ)またはCMOS(Complementary Metal Oxide Semiconductor )等を用いたスキャナ等が用いられている。スキャナ4は、原稿の表面を主走査及び副走査して該原稿の表面の画像を読み取る。スキャナ4は、原稿の画像を読み取ったアナログの画像データを図示しないA/D(アナログ/デジタル)変換器でデジタル変換して、デジタルの画像データをIPUボード3のASIC32に出力する。すなわち、スキャナ4は、プリンタ5で印刷出力する画像データや外部インターフェイスへ出力するための画像データを読み取って、ASIC32に出力する。なお、図示しないが、外部インターフェイスには、コンピュータ等の外部装置の接続されているネットワークが接続されている。
プリンタ(プリンタ手段)5は、所定の画像形成方式、例えば、電子写真方式でカラー画像を用紙(印刷媒体)に印刷出力する。プリンタ5は、例えば、印刷部が電子写真方式の場合には、回転駆動される感光体を中心に、光書込部、現像部及び転写部、定着部、帯電部及びクリーニング部等が配設されている各色(例えば、CMYK色)の印刷ユニットが搬送路上に所定間隔空けて並んで配設されている。このような電子写真方式のプリンタ5は、その各色の印刷ユニットが、帯電部で一様に帯電された感光体上に、印刷部がASIC32からの描画データに基づいて変調した書込光を照射して、静電潜像を形成する。各色の印刷ユニットは、この静電潜像の形成された感光体に現像部から該印刷ユニットに対応する色のトナー(現像剤)を供給して現像する。各色の印刷ユニットは、感光体上のトナー画像を転写部と感光体との間に給紙カセットから用紙搬送部によって搬送されてきた用紙(被記録媒体)に、各色のトナー画像を重ね合わせるように転写して、カラーのトナー画像の転写が完了した用紙を定着部に搬送して、定着部で定着させる。
ASIC32は、スキャナ4で読み取られた原稿の画像データに適宜の補正を行った画像データ及び必要な画像関連情報を生成して、PCIe6を介してコントロールボード2のASIC24に転送する。また、ASIC32は、ASIC24から送られてくる描画データをプリンタ5で印刷できるように画像処理したり、プリンタ5の印刷タイミングにあわせて描画データをプリンタ5に送る。
そして、図2において、上記コントロールボード2のASIC24は、アービタ(Arbiter)41、復号化部を備えた各色分のビデオアウトモジュール42c、42m、42y、42k、PCIe26のエンドポイント(EndPoint)26e及びPCIe6のルートコンプレックス(Root Complex)6r等を備えている。また、ASIC24は、図示しないが、スキャナ4の読み取った画像データをプリンタ5で印刷出力するための画像処理を行って描画データを生成する描画モジュール、描画データを符号化する符号化部等を搭載している。そして、上記ビデオアウトモジュール42c、42m、42y、42kは、この符号化部が符号化した描画データを復号化する。
PCIeルートコンプレックス6rは、ASIC32からPCIe6によって送られてくるスキャナデータをアービタ41へ転送する。また、PCIeルートコンプレックスモジュール6rは、ASIC32からリード要求(リードアクセス)があると、プリンタデータをビデオアウトモジュール42c、42m、42y、42kから取得する。
ビデオアウトモジュール42c、42m、42y、42kは、図示しないが、DMAC(Direct Memory Access Controller :DMAコントローラ)、2つのラインバッファ等を備えている。ビデオアウトモジュール42c、42m、42y、42kは、起動時には、1ライン分のデータをメモリ23から上記2つあるうちの1つのラインバッファに取得する。ビデオアウトモジュール42c、42m、42y、42kは、取得完了通知をASIC32を介してCPU31へ送ると、ASIC32からプリンタデータ転送用のリクエストがくるのを待つ。ビデオアウトモジュール42c、42m、42y、42kは、プリンタデータ転送用のリクエストがくると、データ転送を開始すると同時に、もう一方のラインバッファにメモリ23からデータを取得し始めるという制御を行う。
アービタ41は、PCIeエンドポイントモジュール26eとの間のデータ転送の調停、ビデオアウトモジュール42c、42m、42y、42kとの間のデータ転送の調停及びPCIeルートコンプレックス6rとのデータ転送の調停を行う。
そして、本実施例のASIC24は、図3に示すように、第1ライン利用率計測部51と第2ライン利用率計測部52を備えている。PCIeエンドポイントモジュール26eは、PCIe論理層回路61を備えており、PCIe論理層回路61は、コンフィグ(Config)レジスタ制御部61aとバッファ制御部61b等を備えている。
第1ライン利用率計測部51は、スキャナ4のライン周期同期信号がアービタ41から入力されるとともに、アービタ41からPCIeエンドポイントモジュール26eへのライトデータが入力される。また、アービタ41は、このライトデータに伴うライトアドレスと制御信号をPCIeエンドポイントモジュール26eへ出力する。
第2ライン利用率計測部52は、アービタ41からプリンタ5のC版、M版、Y版、K版のライン周期同期信号が入力され、PCIeエンドポイントモジュール26eからアービタ41へ出力されるリードデータが入力される。また、アービタ41は、リードデータをリードするためのリードアドレスと制御信号をPCIeエンドポイントモジュール26eへ出力する。
そして、第1ライン利用率計測部51と第2ライン利用率計測部52は、アービタ41とPCIeエンドポイントモジュール26eの図示しないTLP(Transaction Layer Packet)調停制御部の間で転送されるデータ量を計測する。具体的には、第1ライン利用率計測部51は、入力されるライン周期同期信号に基づいて、ラインスタートからの時間を計測する。そして、第1ライン利用率計測部51は、全データ転送量を保持しており、ラインスタートからの計測時間に基づいて、データ転送周期であるライン周期における残りのデータ転送量を算出する。そして、第1ライン利用率計測部51は、残りのデータ転送量から必要ライン利用率(転送余裕度)の計算を行い、該必要ライン利用率に基づいてデータ転送に余裕があると判定すると、PCIeエンドポイントモジュール26eへ出力している第1フラグをアサートする。同様に、第2ライン利用率計測部52は、入力される各ライン周期同期信号に基づいて、ラインスタートからの時間を計測する。そして、第2ライン利用率計測部52は、全データ転送量を保持しており、ラインスタートからの計測時間に基づいて、データ転送周期であるライン周期における残りのデータ転送量を算出する。そして、第2ライン利用率計測部52は、残りのデータ転送量から必要ライン利用率(転送余裕度)の計算を行い、該必要ライン利用率に余裕があると判定すると、PCIeエンドポイントモジュール26eへ出力している第2フラグをアサートする。
上記第1ライン利用率計測部51及び第2ライン利用率計測部52は、データ転送周期内における周期データのデータ転送の転送余裕度を求める余裕度取得手段として機能している。
そして、PCIE論理層回路61のバッファ制御部61bは、各種TLP(Posted TLP、Non Posted TLP等)のバッファ制御を行う。
すなわち、PCIeエンドポイントモジュール26eは、図4に示すように、マスタ(Master)I/F71とターゲット(Target)I/F72を備え、それぞれ、送信用(TX)および受信用(RX)のバッファを備えている。マスタI/F71は、その送信用バッファには、Posted Headerの基に、Posted Dataが、Non Posted Headerの基に、Non Posted Dataが、格納され、受信用バッファには、Completion Headerの基に、Completion Dataが格納される。また、ターゲットI/F72は、その送信用バッファには、Completion Headerの基に、Completion Dataが格納され、その受信用バッファには、Posted Headerの基に、Posted Dataが、Non Posted Headerの基に、Non Posted Dataが、格納される。
そして、PCIe26eによるデータ転送においては、全てのリクエストは、一旦、図4に示したバッファにキューイングされる。例えば、メモリライト(Memory Write)トランザクションは、Posted Data/Headerにキューイングされ、メモリリード(Memory Read)トランザクションは、Non Posted Data/Headerにキューイングされる。PCIe26eによるデータ転送においては、接続される対向デバイスのバッファ状況を監視(Flow Control )しながらデータ転送を行うため、全てのリクエストがバッファにキューイングされる。
そこで、バッファ制御部61bは、第1ライン利用率計測部51からの第1フラグを、送信用(TX)のPosted Header/Dataバッファの制御に利用し、第2フラグを送信用(TX)のNon Posted Headerバッファの制御に利用する。さらに、バッファ制御部61bは、リクエストを出力する際のPostedリクエストとNon Postedリクエストの優先順位判定にも第1フラグと第2フラグを利用する。そして、バッファ制御部61bは、第1フラグと第2フラグ及びIDを観測しながら、キューイングされたリクエストを入れ替える入替制御を行う。なお、このIDは、各マスタ毎にユニークなものであり、図3における制御信号の一つである。
そして、バッファ制御部61bは、ASIC24のIPAからのリクエストがキューイングされているかどうかを常に監視している。したがって、バッファ制御部61bは、ラインバッファ(蓄積手段)に蓄積されている周期データ(データ転送周期内でのデータ転送の完了に拘束されるデータ)の上記転送余裕度に基づいて、該周期データの転送リクエストをデータ転送周期内に該周期データのデータ転送を完了する状態で発行するとともに、該ラインバッファに蓄積されている非周期データ(データ転送周期内でのデータ転送完了に非拘束のデータ)の転送リクエストの発行を制御するリクエスト制御手段として機能している。上記スキャナデータ及びプリンタデータが、周期データであり、その他のメモリ23とASIC24の間で授受されるデータが、非周期データである。また、バッファ制御部61bは、転送リクエストに基づいて、前記周期データ(スキャナデータ、プリンタデータ)と非周期データ(スキャナデータ、プリンタデータ以外のデータ)の転送を行う転送手段として機能している。
上記第1ライン利用率計測部51及び第2ライン利用率計測部52は、以下に第2ライン利用率計測部52について説明するように、ライン利用率の計測(計算)する。
図5は、ライン周期同期信号lsync_n及びASIC24とCPU21との間のPCIe26のデータ転送時のデータのタイミングチャートである。図5において、up streamは、ASIC24からCPU21へのデータ転送方向を示しており、down streamは、CPU21からASIC24へのデータ転送方向を示している。また、T1は、リードレイテンシ、T2は、1パケット分データ転送時間、T3は、lsync周期、T4は、ラインスタートからの経過時間を示している。
図5において、ラインデータ転送開始から、T4経過後を、「現時点」として、第2ライン利用率計測部52は、残りのデータ転送に必要な時間である残りデータ転送必要時間T5を、次式(1)により算出する。
T5=残り転送データ量*(T1+T2)・・・(1)
ここで、残りの転送データ量は、(全転送データ量)−(転送完了データ量)で与えられ、payload数である。
そして、第2ライン利用率計測部52は、残りデータ転送必要時間T5と残り時間(T3−T4)から、次式(2)により、画像データ転送を正常に完了させるために必要なライン利用率である必要ライン利用率Rrを算出する。
Rr=(T3−T4)*ライン利用率係数/T5・・・(2)
第2ライン利用率計測部52は、必要ライン利用率Rrの値が「1」以上であると、残りデータ転送必要時間T5が十分にあると判断して、第2フラグをアサーとし、IPAのトランザクションを優先することを許可する。
また、第2ライン利用率計測部52は、必要ライン利用率Rrの値が「1」未満であると、残りデータ転送必要時間T5が不十分であると判断して、第2フラグをネゲートし、画像データの転送を優先する。
なお、必要ライン利用率Rrは、ライン周期同期信号lsync_nに対する必要データ転送時間の割合であり、最悪値で見てみると、100%であるので、「1」となる。PCIeにおいては、通常、マージンを考慮して、「80」%で転送可能なように設計されているため、必要ライン利用率Rr=0.8とする。
本実施例の複合装置1においては、必要ライン利用率Rrを固定値として使用するが、レジスタ等を用いて適宜設定可能としてもよい。
なお、図5において、ライン周期同期信号lsyncは、1つのみ記載されているが、プリンタ5側ではCMYKの各版毎に存在し、各ライン周期同期信号lsyncは、感光体と感光体の間のピッチずれ分に応じてアサートされる。従って、第2ライン利用率計測部52は、上記計算を各版毎に実施し、また、判定を各版毎に実施して、第2ライン利用率計測部52内部でOR処理して出力する。すなわち、第2ライン利用率計測部52は、いずれかの版の必要ライン利用率Rrが「1」以下であると、画像データ優先信号をアサートするように動作し、全ての必要ライン利用率Rrが「1」以上であると、画像データ優先信号をネゲートする。
そして、上記第2ライン利用率計測部52は、上記第1ライン利用率計測部51と同様に、スキャナデータに対して、up streamにおける残りデータ転送必要時間T5及び必要ライン利用率Rrを算出して、画像データ優先信号のアサートとネゲートを行う。
次に、本実施例の作用を説明する。本実施例の複合装置1は、データ転送周期を厳守する必要のあるデータのリクエストを適切に発行しつつ、その他のデータのリクエストも適宜発行する。
すなわち、複合装置1は、スキャナ4やプリンタ5等のデータ転送においてテイミングを確保する必要のあるデバイスを備えている。そして、複合装置1は、スキャナ4で読み取られた原稿の画像データ(スキャナデータ)をIPUボード3のASIC32を介してコントロールボード2のASIC24へPCIe6を介して転送する。
ASIC24は、このスキャナ画像データを優先的に、PCIeルートコンプレックスモジュール6r、スキャナデータ転送バス、アービタ41及びPCIeエンドポイントモジュール26eを介して、PCIe26及びCPU21を通して、メモリ23に転送する。
複合装置1は、CPU21の制御下で、メモリ23に格納されたデータをASIC24へ読み出して必要な画像処理を施し、メモリ23へ再度格納する。また、複合装置1は、該データをプリント出力する場合には、メモリ23内のデータを、ASIC24へ読み出して、プリンタ5の必要とする版のプリンタデータを生成して、再度、メモリ23へ転送して格納する。その後、複合装置1は、出力タイミングに応じて、メモリ23からプリンタデータを読み出して、PCIe26、ASIC24のPCIeエンドポイントモジュール26e、アービタ41、ビデオアウトモジュール42c、42m、42y、42k及びPCIeルートコンプレックスモジュール6rを通して、IPUボード3のASIC32へ転送する。ASIC32は、プリンタ5の出力タイミング合わせて、プリンタデータをプリンタ5に出力して、画像を被記録媒体に記録出力させる。
そして、コントロールボード2のPCIe24におけるデータ転送においては、基本的に、同期信号に同期させてデータ転送を行う必要のあるデータの転送を優先させる。すなわち、ASIC24は、ASIC32から送られてきたスキャナデータのメモリ23への転送、及び、メモリ23からビデオアウトモジュール42c〜42kを介してASIC32へ転送するプリンタデータの転送を、優先させる。
そして、ASIC24は、第1ライン利用率計測部51及び第2ライン利用率計測部52でライン利用率を算出して、ライン利用率に基づいて、PCIeエンドポイントモジュール26eのバッファ制御部61bによるリクエスト制御を行う。
すなわち、第1ライン利用率計測部51及び第2ライン利用率計測部52は、図6に示すように、ライン利用率に基づいて、ライン転送を制御する第1フラグ、第2フラグのアサートとネゲートを制御する。なお、図6には、第1フラグと第2フラグを区別することなく、フラグとして示しているが、第1ライン利用率計測部51によるフラグが第1フラグであり、第2ライン利用率計測部52によるフラグが第2フラグである。この第1フラグは、スキャナデータのライトリクエストを制御するフラグであり、第2フラグは、プリンタデータのリードリクエストを制御するフラグである。
そして、第1ライン利用率計測部51及び第2ライン利用率計測部52は、図6に示すように、スキャナ4またはプリンタ5からライン周期同期信号lsyncがアサートされたかチェックする(ステップS101)。第1ライン利用率計測部51及び第2ライン利用率計測部52は、ライン周期同期信号lsyncがアサートされないとき(ステップS101で、NOのとき)、ライン周期同期信号lsyncがアサートされるまで待つ。
第1ライン利用率計測部51及び第2ライン利用率計測部52は、ライン周期同期信号lsyncがアサートされると(ステップS101で、YESのとき)、必要ライン利用率Rrが「1」未満であるかチェックする(ステップS102)。すなわち、複合装置1は、電源が投入されると、必要ライン利用率Rrを設定するために、最低ライン利用率を、上述のように、複合装置1の機種毎に計算で求まる数値として設定する。なお、この最低ライン利用率は、データの解像度、画像深度等によって適宜設定することもできる。
そして、第1ライン利用率計測部51及び第2ライン利用率計測部52は、ライン周期同期信号lsyncがアサートされると、必要ライン利用率Rrを上記式(2)に基づいて算出し、該必要ライン利用率Rrが「1」未満であるかチェックする。
ステップS102で、必要ライン利用率Rrが、「1」以上であると(ステップS102で、NOのとき)、第1ライン利用率計測部51及び第2ライン利用率計測部52は、フラグをアサートする(ステップS103)。このフラグは、上記第1フラグまたは第2フラグである。
次に、第1ライン利用率計測部51及び第2ライン利用率計測部52は、1ラインのデータ転送が完了したかチェックする(ステップS104)。ステップS104で、完了していないとき(ステップS104で、NOのとき)、第1ライン利用率計測部51及び第2ライン利用率計測部52は、必要ライン利用率Rrが「1」未満であるかのチェックから上記同様に処理する(ステップS102〜S104)。
ステップS102で、必要ライン利用率Rrが「1」未満であると(ステップS102で、YESのとき)、第1ライン利用率計測部51及び第2ライン利用率計測部52は、フラグをネゲートする(ステップS105)。第1ライン利用率計測部51及び第2ライン利用率計測部52は、一旦フラグをネゲートすると、必要ライン利用率Rrが「1」以上になるまで、フラグのネゲートを継続する(ステップS102、S105)。すなわち、第1ライン利用率計測部51及び第2ライン利用率計測部52は、一旦フラグをネゲーとすると、必要ライン利用率Rrが「1」以上になるまで、画像データ転送優先信号をアサートし続ける。第1ライン利用率計測部51及び第2ライン利用率計測部52は、ステップS102で、必要ライン利用率Rrが「1」以上になると、ネゲートしたフラグをアサートする(ステップS102、S103)。すなわち、第1ライン利用率計測部51及び第2ライン利用率計測部52は、アサートしていた画像データ転送優先信号をネゲートする。
ステップS104で、該当ラインの転送が完了すると、第1ライン利用率計測部51及び第2ライン利用率計測部52は、該当ラインでのPCIeエンドポイントモジュール26eのバッファ制御部61bに設定するフラグの制御処理を終了する。
そして、第1ライン利用率計測部51及び第2ライン利用率計測部52は、上記フラグの制御においては、上述のように、CMYKのいずれかの版の必要ライン利用率Rrが「1」未満であると、フラグをネゲート、すなわち、画像データ優先信号をアサートする。
そして、バッファ制御部61bは、PCIeエンドポイントモジュール26eのNon Posted Headerバッファにリクエストが入力されると、図9に示すように、第1フラグ,第2フラグ及びIPAの状態に基づいてリクエストの制御を行う。
すなわち、バッファ制御部61bは、PCIeエンドポイントモジュール26eのNon Posted Headerバッファにリクエストが入力されると、まず、第1フラグがアサート状態であるかチェックする(ステップS201)。
ステップS201で、第1フラグがアサート状態であると(ステップS201で、YESのとき)、バッファ制御部61bは、第2フラグがアサート状態であるかチェックする(ステップS202)。
ステップS202で、第2フラグがアサート状態であると(ステップS202で、YESのとき)、バッファ制御部61bは、IPAのリクエストがキューイングされているかチェックする(ステップS203)。
ステップS203で、IPAのリクエストがキューイングされているときには、バッファ制御部61bは、該IPAのリードリクエストを最優先に出力し(ステップS204)、Non Posted Headerバッファにリクエストがあるかチェックする(ステップS205)。
ステップS205で、Non Posted Headerバッファにリクエストがないときには、バッファ制御部61bは、ステップS201に戻って、次のリクエストに対して、上記同様に処理を行う(ステップS201〜S205)。
ステップS205で、Non Posted Headerバッファにリクエストがあると、バッファ制御部61bは、処理を終了する。
ステップS203で、IPAのリクエストがキューイングされておらず、プリンタ5のリードリクエストのみの場合(ステップS203で、NOのとき)、バッファ制御部61bは、プリンタ5のリードリクエストを最優先に出力する(ステップS206)。その後、バッファ制御部61bは、Non Posted Headerバッファにリクエストがあるかチェックし(ステップS205)、上記同様に処理する。
ステップS202で、第2フラグがネゲート状態であると(ステップS202で、NOのとき)、バッファ制御部61bは、第2フラグがネゲートされているので、プリンタ5のリードリクエストを最優先に出力する(ステップS206)。その後、バッファ制御部61bは、Non Posted Headerバッファにリクエストがあるかチェックし(ステップS205)、上記同様に処理する。
ステップS201で、第1フラグがネゲート状態であると(ステップS201で、NOのとき)、バッファ制御部61bは、第2フラグがアサート状態であるかチェックする(ステップS207)。
ステップS207で、第2フラグがアサート状態であると(ステップS207で、YESのとき)、バッファ制御部61bは、第1フラグのみがネゲートされているので、スキャナ4のライトリクエストを最優先に出力する(ステップS208)。その後、バッファ制御部61bは、Non Posted Headerバッファにリクエストがあるかチェックし(ステップS205)、上記同様に処理する。
ステップS207で、第2フラグがネゲート状態であると(ステップS207で、NOのとき)、バッファ制御部61bは、プリンタ5のリードリクエストを最優先に出力する(ステップS209)。すなわち、Readリクエストは、コマンドの転送のみであり、upstreamの転送を占有する時間が短いこと、及び、Readリクエストにはメモリレイテンシがあり、応答が返ってくるまでに時間を要することから、Readリクエストを優先させている。
その後、バッファ制御部61bは、Non Posted Headerバッファにリクエストがあるかチェックし(ステップS205)、上記同様に処理する。
このように、本実施例の複合装置1は、デバイス間でスプリットトランザクションの伝送路を経由させてデータ転送を行うとともに、該データ転送において、データ転送周期内でのデータ転送の完了に拘束される周期データと、データ転送周期内でのデータ転送完了に非拘束の非周期データと、を転送するデータ転送装置7を搭載し、該データ転送装置7は、該周期データと該周期データの転送リクエスト及び該非周期データと該非周期データの転送リクエストを蓄積するPCIeエンドポイント(蓄積手段)26eと、前記データ転送周期内における前記周期データのデータ転送の転送余裕度(必要ライン利用率Rr)を求める余裕度取得手段としての第1ライン利用率計測部51及び第2ライン利用率計測部52と、前記PCIeエンドポイントモジュール26eに蓄積されている前記周期データの前記転送余裕度に基づいて、該周期データの転送リクエストを前記データ転送周期内に該周期データのデータ転送を完了する状態で発行するとともに、該PCIeエンドポイントモジュール26eに蓄積されている前記非周期データの転送リクエストの発行を制御するバッファ制御部(リクエスト制御手段)61bと、前記転送リクエストに基づいて、前記周期データと前記非周期データの転送を行うバッファ制御部(転送手段)61bと、を備えている。
したがって、周期データの転送リクエストの発行を該周期データの転送周期内での転送を確保しつつ行うことができるとともに、非周期データの転送リクエストを該周期データの転送に影響を与えない状態で発行することができる。その結果、データ転送周期を厳守する必要のあるデータのリクエストを適切に発行しつつ、その他のデータのリクエストも適宜発行することができる。
また、本実施例の複合装置1は、そのデータ転送装置7が、デバイス間でスプリットトランザクションの伝送路を経由させてデータ転送を行うとともに、該データ転送において、データ転送周期内でのデータ転送の完了に拘束される周期データと、データ転送周期内でのデータ転送完了に非拘束の非周期データとを転送するデータ転送方法であって、前記周期データと該周期データの転送リクエスト及び前記非周期データと該非周期データの転送リクエストをPCIeエンドポイント(蓄積手段)26eに蓄積する蓄積処理ステップと、前記データ転送周期内における前記周期データのデータ転送の転送余裕度(必要ライン利用率Rr)を求める余裕度取得処理ステップと、前記PCIeエンドポイントモジュール26eに蓄積されている前記周期データの前記転送余裕度に基づいて、該周期データの転送リクエストを前記データ転送周期内に該周期データのデータ転送を完了する状態で発行するとともに、該PCIeエンドポイントモジュール26eに蓄積されている前記非周期データの転送リクエストの発行を制御するリクエスト制御処理ステップと、前記転送リクエストに基づいて、前記周期データと前記非周期データの転送を行う転送処理ステップと、を有しているデータ転送方法を実行している。
したがって、周期データの転送リクエストの発行を該周期データの転送周期内での転送を確保しつつ行うことができるとともに、非周期データの転送リクエストを該周期データの転送に影響を与えない状態で発行することができる。その結果、データ転送周期を厳守する必要のあるデータのリクエストを適切に発行しつつ、その他のデータのリクエストも適宜発行することができる。
さらに、本実施例の複合装置1は、そのデータ転送装置7が、デバイス間でスプリットトランザクションの伝送路を経由させてデータ転送を行うとともに、該データ転送において、データ転送周期内でのデータ転送の完了に拘束される周期データと、データ転送周期内でのデータ転送完了に非拘束の非周期データとを転送するデータ転送プログラムであって、制御プロセッサに、前記周期データと該周期データの転送リクエスト及び前記非周期データと該非周期データの転送リクエストをPCIeエンドポイント(蓄積手段)26eに蓄積する蓄積処理と、前記データ転送周期内における前記周期データのデータ転送の転送余裕度(必要ライン利用率Rr)を求める余裕度取得処理と、前記PCIeエンドポイントモジュール26eに蓄積されている前記周期データの前記転送余裕度に基づいて、該周期データの転送リクエストを前記データ転送周期内に該周期データのデータ転送を完了する状態で発行するとともに、該PCIeエンドポイントモジュール26eに蓄積されている前記非周期データの転送リクエストの発行を制御するリクエスト制御処理と、前記転送リクエストに基づいて、前記周期データと前記非周期データの転送を行う転送処理と、を実行させるデータ転送プログラムを搭載している。
したがって、周期データの転送リクエストの発行を該周期データの転送周期内での転送を確保しつつ行うことができるとともに、非周期データの転送リクエストを該周期データの転送に影響を与えない状態で発行することができる。その結果、データ転送周期を厳守する必要のあるデータのリクエストを適切に発行しつつ、その他のデータのリクエストも適宜発行することができる。
また、本実施例の複合装置1のデータ転送装置7は、前記伝送路が、PCIーExpress26である。
したがって、伝送路として、PCIeを用いたデータ転送において、周期データの転送リクエストの発行を該周期データの転送周期内での転送を確保しつつ行うことができるとともに、非周期データの転送リクエストを該周期データの転送に影響を与えない状態で発行することができる。その結果、PCIeを用いたデータ転送において、データ転送周期を厳守する必要のあるデータのリクエストを適切に発行しつつ、その他のデータのリクエストも適宜発行することができる。
さらに、本実施例の複合装置1のデータ転送装置7は、前記伝送路が、前記周期データ及び前記非周期データを蓄積するメモリ(記憶デバイス)23への該データの書き込みと該データの読み出しを制御するCPU(制御デバイス)21と、該CPU21に対して、該周期データの該メモリ23への書き込みと読み出しのリクエストと該リクエストに伴うデータ転送を行うとともに、該非周期データの該メモリ23からの読み出しのリクエストと該リクエストに伴うデータ転送を行い、読み出した該データに対してデータ処理を行って該メモリ23への書き込みのリクエストと該リクエストに伴うデータ転送を行うASIC(データ処理デバイス)23と、の間におけるデータ転送を行う。
したがって、CPU21等の制御デバイスを介してメモリ23にデータを格納する際のデータ転送において、データ転送周期を厳守する必要のあるデータのリクエストを適切に発行しつつ、その他のデータのリクエストも適宜発行することができる。
また、本実施例の複合装置1のデータ転送装置7は、前記余裕度取得手段(第1ライン利用率計測部51と第2ライン利用率計測部52)が、前記周期データのうち前記データ転送周期内における未転送の該周期データを該データ転送周期内に転送するのに必要な残り転送必要時間と、該データ転送周期の終わりまでの残り時間と、に基づいて前記転送余裕度(必要ライン利用率Rr)を求めている。
したがって、簡単かつ正確に、周期データの転送リクエストの発行を該周期データの転送周期内での転送を確保しつつ行うことができるとともに、非周期データの転送リクエストを該周期データの転送に影響を与えない状態で発行することができる。その結果、簡単かつ正確に、データ転送周期を厳守する必要のあるデータのリクエストを適切に発行しつつ、その他のデータのリクエストも適宜発行することができる。
さらに、本実施例の複合装置1のデータ転送装置7は、前記蓄積手段が、PCIe(PCIーExpress)のエンドポイント26eに設けられているバッファであり、前記余裕度取得手段(第1ライン利用率計測部51と第2ライン利用率計測部52)が、前記バッファに蓄積されている前記周期データと該周期データの転送リクエスト及び前記非周期データと該非周期データの転送リクエストに基づいて前記転送余裕度(必要ライン利用率Rr)を求めている。
したがって、全てのリクエストがキューイングされるPCIe26のバッファ内のリクエストに基づいて、簡単かつ正確に、周期データの転送リクエストの発行を該周期データの転送周期内での転送を確保しつつ行うことができるとともに、非周期データの転送リクエストを該周期データの転送に影響を与えない状態で発行することができる。その結果、簡単かつ正確に、データ転送周期を厳守する必要のあるデータのリクエストを適切に発行しつつ、その他のデータのリクエストも適宜発行することができる。
また、本実施例の複合装置1のデータ転送装置7は、前記リクエスト制御手段(バッファ制御部61b)が、前記PCIeエンドポイントモジュール26eに蓄積されている前記周期データの前記転送余裕度(必要ライン利用率Rr)に基づいて、該周期データの転送リクエストと前記非周期データの転送リクエストの発行順序を入れ替えている。
したがって、リクエストの順序を入れ替えることで、簡単かつ正確に、周期データの転送リクエストの発行を該周期データの転送周期内での転送を確保しつつ行うことができるとともに、非周期データの転送リクエストを該周期データの転送に影響を与えない状態で発行することができる。その結果、簡単かつ正確に、データ転送周期を厳守する必要のあるデータのリクエストを適切に発行しつつ、その他のデータのリクエストも適宜発行することができる。
以上、本発明者によってなされた発明を好適な実施例に基づき具体的に説明したが、本発明は上記実施例で説明したものに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。