"データの転送を行う上位のスイッチとバスで接続され、前記スイッチ及びバスを介して転送されたデータをバッファリングするバッファと、この転送されたデータを下位の複数の出力先に分配して転送する制御を行う分配制御回路と、を備えているデータ分配装置。PCIExpress規格の前記スイッチ及びバスを介してデータの転送を受けるPCIExpress規格のエンドポイントと、前記分配制御回路の制御により前記データの転送を行なうPCIExpress規格のルートコンプレックス及びスイッチと、をさらに備えている請求項1に記載のデータ分配装置。データの転送を行うPCIExpress規格のバス、ルートコンプレックス及びスイッチと、前記スイッチの下位に前記バスを介して接続されている請求項2に記載のデータ分配装置と、を備えているデータ転送装置。画像データに関する所定の処理を行ない、画像データを転送する請求項3に記載のデータ転送装置を備えている、画像処理装置。しかしながら、このPCIExpress規格では、その装置構成は後述のような木構造をなしているが、その木構造の根元に位置するルートコンプレックスRootcomplexを経る経路を利用して大量のデータの伝送を行なうと、データ転送の高速化を図れない場合がある。本発明の目的は、大量のデータを各部に適切に分配し、データ転送の高速化を図ることができるようにすることである。本発明は、データの転送を行う上位のスイッチとバスで接続され、前記スイッチ及びバスを介して転送されたデータをバッファリングするバッファと、この転送されたデータを下位の複数の出力先に分配して転送する制御を行う分配制御回路と、を備えているデータ分配装置である。本発明によれば、PCIExpress規格のルートコンプレックスなどの上位の装置ですべてのデータの転送処理を行わなくても、その下位に位置するデータ分配装置でさらにその下位に対するデータの分配の制御を行なうことができるので、大量のデータを各部に適切に分配し、データ転送の高速化を図ることができる。本発明を実施するための最良の形態について図面を参照して説明する。以下では、PCIExpressの詳細について、[PCIExpress規格の概要]~[PCIExpressのアーキテクチャの詳細]の欄で説明し、その後、本実施の形態の画像処理装置について、[画像処理装置]の欄で説明する。[PCIExpress規格の概要]まず、本実施の形態は高速シリアルバスの一つであるPCIExpress登録商標を利用するものであり、本実施の形態の前提として当該PCIExpress規格の概要について、非特許文献1の一部抜粋により説明する。ここに、高速シリアルバスとは、1本の伝送路を用いてシリアル直列伝送により高速100Mbps程度以上にデータをやり取りすることができるインタフェースを意味する。PCIExpressは、PCIの後継規格としてコンピュータ全般に通用する標準拡張バスとして規格化されたバスであり、概略的には、低電圧差動信号伝送、ポイントツーポイントで送受信独立の通信チャネル、パケット化されたスプリットトランザクション、リンク構成の違いによる高いスケーラビリティなどの特徴を持つ。図1に既存のPCIシステム、図2にPCIExpressシステムの各々の構成例を示す。既存のPCIシステムにあっては、CPU100やAGPグラフィックス101やメモリ102が接続されたホストブリッジ103に対して、PCIXPCIの上位互換規格デバイス104a,104bがPCIXブリッジ105aを介して接続されたり、PCIXデバイス104c,104dが接続されたPCIXブリッジ105bやPCIバススロット106が接続されたPCIブリッジ107がPCIXブリッジ105cを介して接続されたりしたツリー構造木構造とされている。これに対して、PCIExpressシステムにあっては、CPU110やメモリ111が接続されたルートコンプレックス112に対して、PCIExpressグラフィックス113がPCIExpress114aにより接続され、また、エンドポイント115aやレガシーエンドポイント116aがPCIExpress114bにより接続されたスイッチ117aがPCIExpress114cにより接続され、さらには、エンドポイント115bやレガシーエンドポイント116bがPCIExpress114dにより接続されたスイッチ117bやPCIバススロット118が接続されたPCIブリッジ119がPCIExpress114eにより接続されたスイッチ117cがPCIExpress114fにより接続されたツリー構造木構造とされている。実際に想定されるPCIExpressプラットホーム例を図3に示す。図示例は、デスクトップ/モバイルへの適用例を示し、CPU121がCPUホストバス122により接続され、メモリ123が接続されたメモリハブ124ルートコンプレックスに相当するに対して、例えば、グラフィックス125がx16のPCIExpress126aにより接続され、また、変換機能を有するI/Oハブ127がPCIExpress126bにより接続されている。このI/Oハブ127には、例えば、SerialATA128によりメモリ129が接続され、LPC130によりローカルI/O131が接続され、USB20132やPCIバススロット133が接続されている。さらには、I/Oハブ127には、PCIExpress126cによりスイッチ134が接続され、このスイッチ134には、各々、PCIExpress126d,126e,126fによりモバイルドック135、ギガビットイーサネットイーサネットは登録商標136、アドインカード137が接続されている。即ち、PCIExpressシステムでは、従来のPCI,PCIX,AGPといったバスがPCIExpressで置き換わり、既存のPCI/PCIXデバイスを接続するためにブリッジが使用される。チップセット間の接続もPCIExpress接続となり、IEEE1394,SerialATA,USB20などの既存のバスはI/OハブによりPCIExpressに接続される。[PCIExpressの構成要素]A.ポートPort/レーンLane/リンクLink図4に物理層の構造を示す。ポートは、物理的には同一半導体内にあり、リンクを形成するトランスミッタ/レシーバの集合で、論理的にはコンポーネント間を1対1で接続ポイントツーポイントするインタフェースを意味する。転送レートは、例えば片方向2.5Gbpsとされている将来的には、5Gbpsや10Gbpsが想定されている。レーンは、例えば0.8Vの差動信号ペアのセットで、送信側の信号ペア2本、受信側の信号ペア2本からなる。リンクは、2つのポートとその間を結ぶレーンの集まりであり、コンポーネント間のデュアルシンプレックス通信バスである。xNリンクはN本のレーンから構成され、現在の規格では、N=1,2,4,8,16,32が定義されている。図示例は、x4リンク例である。例えば、図5に示すように、デバイスA,B間を結ぶこのレーン幅Nを可変することにより、スケーラブルなバンド幅を構成することが可能となる。B.ルートコンプレックスRootComplexルートコンプレックス112は、I/O構造の最上位に位置し、CPUやメモリサブシステムをI/Oに接続する。ブロック図などでは、図3に示すように、メモリハブと記述されることが多い。ルートコンプレックス112又は、124は、1つ以上のPCIExpressポートルートポート図2中では、ルートコンプレックス112中の四角で示すを持ち、各々のポートは独立したI/O階層ドメインを形成する。I/O階層ドメインは、単純なエンドポイントである場合例えば、図2中のエンドポイント115a側の例や、多数のスイッチやエンドポイントから形成される場合例えば、図2中のエンドポイント115bやスイッチ117b,115c側の例がある。C.エンドポイントEndPointエンドポイント115は、タイプ00hのコンフィグレーション空間ヘッダを持つデバイス具体的には、ブリッジ以外のデバイスで、レガシーエンドポイントとPCIExpressエンドポイントとに分けられる。両者の大きな違いは、PCIExpressエンドポイントはBARベースアドレスレジスタで基本的にI/Oポートリソースを要求せず、このためI/Oリクエストを要求しない。また、PCIExpressエンドポイントは、ロックリクエストもサポートしていない。D.スイッチSwitchスイッチ117又は、134は、2つ以上のポートを結合し、ポート間でのパケットルーティングを行う。コンフィグレーションソフトウェアからは、当該スイッチは、図6に示すように、仮想PCIPCIブリッジ141の集合体として認識される。図中、両矢印はPCIExpressリンク114又は、126を示し、142a~142dはポートを示す。このうち、ポート142aはルートコンプレックスに近い方のアップストリームポートであり、ポート142b~142dはルートコンプレックスから遠い方のダウンストリームポートである。E.PCIExpress114e-PCIブリッジ119PCIExpressからPCI/PCIXへの接続を提供する。これにより、既存のPCI/PCIXデバイスをPCIExpressシステム上で使用することができる。[階層アーキテクチャ]従来のPCIのアーキテクチャは、図7aに示すように、プロトコルとシグナリングが密接に関連する構造であり階層という考え方はなかったが、PCIExpressでは、図7bに示すように、一般的な通信プロトコルやInfiniBandのように、独立した階層構造とされ、各層に分けて仕様が定義されている。即ち、最上位のソフトウェア151、最下位の機構メカニカル部152間に、トランザクション層153、データリンク層154、物理層155を持つ構造とされている。これにより、各層のモジュール性が確保され、スケーラビリティを持たせることやモジュールの再利用が可能となる。例えば、新たな信号コーディング方式や伝送媒体を採用する場合、物理層を変更するだけでデータリンク層やトランザクション層は変更せずに対応できる。PCIExpressのアーキテクチャの中心となるのは、トランザクション層153、データリンク層154、物理層155であり、各々図8を参照して説明する以下のような役割を持つ。A.トランザクション層153トランザクション層153は、最上位に位置し、トランザクションレイヤパケットTLPの組み立て、分解機能を持つ。トランザクションレイヤパケットTLPは、リード/ライト、各種イベントといったトランザクションの伝達に用いられる。また、トランザクション層153は、トランザクションレイヤパケットTLPのためのクレジットを用いたフロー制御を行う。各層153~155におけるトランザクションレイヤパケットTLPの概要を図9に示す詳細は、後述する。B.データリンク層154データリンク層154の主な役割は、エラー検出/訂正再送によりトランザクションレイヤパケットTLPのデータ完全性を保証することと、リンク管理である。データリンク層154間では、リンク管理やフロー制御のためのパケットのやり取りを行う。このパケットは、トランザクションレイヤパケットTLPと区別するために、データリンクレイヤパケットDLLPと呼ばれる。C.物理層155物理層155は、ドライバ、入力バッファ、パラレル-シリアル/シリアル-パラレル変換器、PLL、インピーダンス整合回路といったインタフェース動作に必要な回路を含んでいる。また、論理的な機能としてインタフェースの初期化保守の機能を持つ。物理層155は、データリンク層154/トランザクション層153を実際のリンクで使用される信号技術から独立させる役目も持っている。なお、PCIExpressのハードウェア構成上、エンベデッドクロックという技術を採用しており、クロック信号はなく、クロックのタイミングはデータ信号中に埋め込まれており、受信側でデータ信号のクロスポイントを基にクロックを抽出する方式とされている。[コンフィグレーション空間]PCIExpressは、従来のPCIと同様にコンフィグレーション空間を持つが、その大きさは従来のPCIが256バイトであるのに対して、図10に示すように、4096バイトへと拡張されている。これにより、多数のデバイス固有レジスタセットを必要とするデバイスホストブリッジなどに対しても、将来的に十分な空間が確保されている。PCIExpressでは、コンフィグレーション空間へのアクセスは、フラットなメモリ空間へのアクセスコンフィグレーションリード/ライトで行われ、バス/デバイス/機能/レジスタ番号はメモリアドレスにマップされている。当該空間の先頭256バイトは、PCIコンフィグレーション空間として、BIOSや従来のOSからI/Oポートを使用した方法でもアクセスできる。従来のアクセスをPCIExpressでのアクセスに変換する機能は、ホストブリッジ上に実装される。00hから3FhまではPCI23互換のコンフィグレーションヘッダとなっている。これにより、PCIExpressで拡張された機能以外であれば、従来のOSやソフトウェアをそのまま使用することができる。即ち、PCIExpressにおけるソフトウェア層は、既存のPCIと互換性を保ったロードストアアーキテクチャプロセッサが直接I/Oレジスタをアクセスする方式を継承している。しかし、PCIExpressで拡張された機能例えば、同期転送やRASReliabilityAvailabilityandServiceabilityなどの機能を使用するには、4KバイトのPCIExpress拡張空間にアクセスできるようにする必要がある。なお、PCIExpressとしては様々なフォームファクタ形状が考えられるが、具体化している例としては、アドインカード、プラグインカードNEWCARD、MiniPCIExpressなどがある。[PCIExpressのアーキテクチャの詳細]PCIExpressのアーキテクチャの中心となっているトランザクション層153、データリンク層154、物理層155について、各々詳細に説明する。A.トランザクション層153トランザクション層153の主な役割は、前述したように、上位のソフトウェア層151と下位のデータリンク層154との間でトランザクションレイヤパケットTLPの組み立てと分解を行うことである。a.アドレス空間とトランザクションタイプPCIExpressでは、従来のPCIでサポートされていたメモリ空間メモリ空間とのデータ転送用、I/O空間I/O空間とのデータ転送用、コンフィグレーション空間デバイスのコンフィグレーションとセットアップ用に加えて、メッセージ空間PCIExpressデバイス間のインバンドでのイベント通知や一般的なメッセージ送信交換用...割り込み要求や確認は、メッセージを仮想ワイヤとして使用することにより伝達されるが追加され、4つのアドレス空間が定義されている。各々の空間に対してトランザクションタイプが定義されているメモリ空間、I/O空間、コンフィグレーション空間は、リード/ライト、メッセージ空間は基本ベンダ定義含む。b.トランザクションレイヤパケットTLPPCIExpressは、パケット単位で通信を行う。図9に示したトランザクションレイヤパケットTLPのフォーマットにおいて、ヘッダのヘッダ長は3DWDWはダブルワードの略;合計12バイト又は4DW16バイトで、トランザクションレイヤパケットTLPのフォーマットヘッダ長とペイロードの有無、トランザクションタイプ、トラフィッククラスTC、アトリビュートやペイロード長などの情報が含まれる。パケット内の最大ペイロード長は1024DW4096バイトである。ECRCは、エンドツーエンドのデータ完全性を保証するためのもので、トランザクションレイヤパケットTLP部分の32ビットCRCである。これは、スイッチ内部などでトランザクションレイヤパケットTLPにエラーが発生した場合、LCRCリンクCRCではエラーを検出できないためであるエラーとなったTLPでLCRCが再計算されるため。リクエストは、完了パケットが不要なものと必要なものとがある。c.トラフィッククラスTCと仮想チャネルVC上位のソフトウェアは、トラフィッククラスTCを使用することによりトラフィックの差別化優先度をつけるを行うことができる。例えば、映像データをネットワークのデータよりも優先して転送する、といったことが可能となる。トラフィッククラスTCはTC0からTC7まで8つある。仮想チャネルVC:VertualChannelは、各々独立した仮想通信バス同一のリンクを共用する複数の独立したデータフローバッファを使用するメカニズムで、各々がリソースバッファやキューを持ち、図11に示すように、独立したフロー制御を行う。これにより、1つの仮想チャネルのバッファが満杯の状態fullになっても、他の仮想チャネルの転送を行うことができる。つまり、物理的には1つのリンクを仮想的な複数のチャネルに分けることで、有効に使用することができる。例えば、図11中に示すように、スイッチを経由してルートのリンクが複数のデバイスに分かれる場合、各デバイスのトラフィックの優先度を制御することができる。VC0は必須で、コストパフォーマンスのトレードオフに応じてその他の仮想チャネルVC1~VC7が実装される。図11中の実線矢印は、デフォルト仮想チャネルVC0を示し、破線矢印はその他の仮想チャネルVC1~VC7を示している。トランザクション層内では、トラフィッククラスTCが仮想チャネルVCにマッピングされる。1つの仮想チャネルVCに対して1つ又は複数のトラフィッククラスTCをマッピングできる仮想チャネルVCの数が少ない場合。単純な例では、各トラフィッククラスTCから各仮想チャネルVCに1対1、全てのトラフィッククラスTCを仮想チャネルVC0にマッピングする、といったことが考えられる。TC0-VC0のマッピングは、必須/固定で、それ以外のマッピングは上位のソフトウェアから制御される。ソフトウェアはトラフィッククラスTCを利用することで、トランザクションの優先度を制御することが可能となる。d.フロー制御受信バッファのオーバーフローを避け、伝送順序を確立するためにフロー制御FC:FlowControlが行われる。フロー制御は、リンク間のポイントツーポイントで行われ、エンドツーエンドではない。従って、フロー制御により最終的な相手コンプリータにパケットが届いたことを確認することはできない。PCIExpressのフロー制御は、クレジットベースで行われるデータ転送を始める前に、受け取り側のバッファの空き状況を確認し、オーバーフロー、アンダフローが発生しないメカニズム。即ち、受信側はリンク初期化時にバッファ容量クレジット値を送信側に通知し、送信側はクレジット値と送信するパケットの長さとを比較し、一定の残りがある場合のみパケットを送信する。このクレジットには6種類ある。フロー制御の情報交換はデータリンク層のデータリンクレイヤパケットDLLPを使用して行われる。フロー制御はトランザクションレイヤパケットTLPのみに適用され、データリンクレイヤパケットDLLPには適用されないDLLPは常時送受信可能。B.データリンク層154データリンク層154の主な役割は、前述したように、リンク上の2つのコンポーネント間での信頼性の高いトランザクションレイヤパケットTLP交換機能を提供することである。a.トランザクションレイヤパケットTLPの扱いトランザクション層153から受け取ったトランザクションレイヤパケットTLPに対しては、先頭に2バイトのシーケンス番号、末尾に4バイトのリンクCRCLCRCを付加して、物理層155に渡す図9参照。トランザクションレイヤパケットTLPは、リトライバッファに保管され、相手から受信確認ACKが届くまで再送される。トランザクションレイヤパケットTLPの送信に失敗が続いた場合は、リンク異常であると判断して物理層155に対してリンクの再トレーニングを要求する。リンクのトレーニングが失敗した場合、データリンク層154の状態はインアクティブに遷移する。物理層155から受け取ったトランザクションレイヤパケットTLPは、シーケンス番号とリンクCRCLCRCが検査され、正常であればトランザクション層153に渡され、エラーがあった場合は再送を要求する。b.データリンクレイヤパケットDLLPデータリンク層154が生成するパケットは、データリンクレイヤパケットDLLPと呼ばれ、データリンク層154間でやり取りされる。データリンクレイヤパケットDLLPには、Ack/Nak:TLPの受信確認、リトライ再送InitFC1/InitFC2/UpdateFC:フロー制御の初期化とアップデート電源管理のためのDLLPなる種類がある。図12に示すように、データリンクレイヤパケットDLLPの長さは6バイトで、種類を示すDLLPタイプ1バイト、DLLPの種類で固有の情報3バイト、CRC2バイトから構成される。C.物理層-論理サブブロック156図8中に示す物理層155の論理サブブロック156での主な役割は、データリンク層154から受け取ったパケットを電気サブブロック157で送信できる形式に変換することである。また、物理層155を制御/管理する機能も有する。a.データ符号化とパラレル-シリアル変換PCIExpressは、連続した0や1が続かないように長い期間、クロスポイントが存在しない状態が続かないようにするため、データ符号化に8B/10B変換を用いる。変換されたデータは、図13中に示すように、シリアル変換され、LSBからレーン上に送信される。ここに、レーンが複数ある場合は図13はx4リンクの場合を例示している、符号化の前にデータがバイト単位で各レーンに割り振られる。この場合、一見パラレルバスのようにみえるが、レーン毎に独立した転送を行うので、パラレルバスで問題となるスキューが大幅に緩和される。b.電源管理とリンクステートリンクの消費電力を低く抑えるために、図14に示すように、L0/L0s/L1/L2というリンクステートが定義されている。L0が通常モードで、L0sからL2へと低消費電力となるが、L0への復帰にも時間がかかるようになる。図15に示すように、ソフトウェアによる電源管理に加えて、アクティブステート電源管理を積極的に行うことにより、消費電力を極力小さくすることが可能となる。D.物理層-電気サブブロック157物理層155の電気サブブロック157での主な役割は、論理サブブロック156でシリアル化されたデータをレーン上に送信することと、レーン上のデータを受信して論理サブブロック156に渡すことである。a.ACカップリングリンクの送信側では、ACカップリング用のコンデンサが実装される。これにより、送信側と受信側のDCコモンモード電圧が同一である必要がなくなる。このため、送信側と受信側で異なる設計、半導体プロセス、電源電圧を使用することが可能となる。b.デエンファシスPCIExpressでは、前述したように、8B/10Bエンコーディングによってできるだけ連続した0や1が続かないように処理されるが、連続した0や1が続くこともある最大5回。この場合、送信側はデエンファシス転送を行わなければならないことが規定されている。同一極性のビットが連続する場合は、2つ目のビットからは差動電圧レベル振幅を3.5±0.5dB落とすことで、受信側で受け取る信号のノイズマージンを稼ぐ必要がある。これを、デエンファシスという。伝送路の周波数依存性減衰のため、変化するビットの場合は高周波成分が多く、減衰により受信側の波形が小さくなるが、変化しないビットの場合は高周波成分が少なく、相対的に受信側の波形が大きくなる。このため、受信側での波形を一定とするためにデエンファシスを行う。[画像処理装置]図16は、本実施の形態の画像処理装置1の概略構成を示すブロック図である。画像処理装置1は、画像データに関する所定の処理、この例では、原稿画像の読み取り、その読み取り画像の画像データの記憶装置への保存、この画像データの印刷出力などの処理を実行する。画像処理装置1では、画像データの転送に本実施の形態のデータ転送装置を用いている。このデータ転送装置は、PCIExpressのバスで接続されたPCIExpress規格のルートコンプレックスRootComplex11とスイッチSwitch12、さらには、スイッチ12の下位にPCIExpressのバスで接続された接続されたデータ分配装置13などから構成されている。スイッチ12には、データ分配装置13の他にも、スキャナなどの入力部14、画像データの一時記憶などに用いるメモリ15、画像データに対して画像処理、圧縮、伸長、データ変換処理プリンタ言語の展開、拡大、縮小などの処理を行なう処理部16、画像データを格納するハードディスクなどのストレージ部17、外部のネットワークなどとの通信を行なう通信制御装置等である通信部18が、PCIExpressのバスで接続されている。また、データ分配装置13には、その下位に画像データに基づいて用紙などの媒体上に画像形成するプロッタ等である複数の出力部201,202,203,...,mが、PCIExpressのバスで接続されている。スイッチ12以下は×nリンクn≧1、データ分配装置13以下は×1リンクとする。図17は、データ分配装置13の構成を説明する説明図である。データ分配装置13は、その上位のスイッチ12とPCIExpressのバスで接続され、上位のルートコンプレックス11、スイッチ12を介してデータの転送を受けるPCIExpress規格のエンドポイントEndPoint21と、この転送されたデータをバッファリングするバッファ22と、CPUを備えていてスイッチ12を介して転送されたデータを一時的にバッファ22に蓄積してデータの分配制御をする回路である分配制御回路23と、この分配制御回路23の制御に従って、データ分配装置13の下位に位置するデータの出力先である出力部201,202,203,...,mに画像データを分配して転送するPCIExpress規格のルートコンプレックス24及びスイッチ25と、を備えている。データ分配装置13は、分配制御回路23の制御により、上位のスイッチ12を介して転送された画像データを下位の出力部201,202,203,...,mに配送制御するが、以下では、その具体例について説明する。具体例1まず、各出力部201,202,203,...,mは、プリント速度の異なるものが混在するようにする。例えば、出力部201を高速プリント機、出力部202を中速プリント機、出力部203を低速プリント機などである。そして、分配制御回路23は、画像データの各出力部201,202,203,...,mへの分配の仕方を予め設定している。これは、例えば、プリント速度の速いものの優先度を高くする。これにより、バッファ22がフルになったためにデータ送信が一時的に停止しても、自動的に画像データの出力先を変更することで、画像データの印刷のための待ち時間を低減することができる。さらに、プリント速度の速いものを優先することで、より印刷の高速化を図ることができる。具体例2また、各出力部201,202,203,...,mは、出力画質の異なるものが混在するようにしてもよい。例えば、出力部201を普通画質プリント機、出力部202も普通画質プリント機、出力部203は高画質プリント機とするなどである。ここで、プリント速度は、例えば、出力部201、出力部202、出力部203の順に速いものとする。この例では、大量の部数を用途に応じてお客様への配布用は高画質で、一般への配布用は普通画質で、など、各出力部201,202,203,...,mで出力する場合、具体例1と同様に優先度を設けることで、用途に応じた印刷出力を高速に行うことができる。具体例3さらに、各出力部201,202,203,...,mが中速から低速のプリント機で、同程度の印刷速度のものである場合にも、大量の部数を印刷するに際して各出力部201,202,203,...,mを用いて印刷出力する場合、具体例1の場合と同様に、中速から低速のプリント機を用いても印刷出力全体の高速化を図ることができる。次に、具体的にデータ分配装置13が実行する処理について説明する。具体例1の場合で、データ分配装置13の下位に出力部201,202,203が接続され、そのプリント速度は、出力部201,202,203の順に速い出力部201が最も速いものとする。そして、この例で、1部あたり2ページのものを8部印刷出力する場合について図18を参照して説明する。図18においては、出力部201,202,203ごとにデータ転送とプロットについてのタイミングを表示している。各出力部201,202,203のデータ転送の欄においてデータ転送をしているのはHレベルの期間、転送を待機しているのはプリントが終了するまでのLレベルの期間とする。また、各出力部201,202,203のプロットの欄において、プリントをしているのはHレベルの期間とする。各出力部201,202,203は1ページ分相当の画像データを記憶できるバッファを備えているものとする。各出力部201,202,203のデータ転送の欄において、Hレベルの期間では1ページ分のデータをバッファに転送し、バッファがいっぱいになるので、次のLレベルの期間ではデータ転送を待機する。プリント中はバッファを確保し、プリントが終了したらリリースする。リリース後はバッファが空になるので、データ転送が可能となる。データ分配装置13によるデータの分配について説明する。図18中に付した番号は、プリントされる部数の順番である。1部あたり2ページとしているので同じ番号が2つ付されている。同一番号で1番目のものが1ページ目、2番目のものが2ページ目になる。そしてプリント速度の速い出力部ほど優先度が高いものとする。最初に、最速のプリント速度の出力部201からスタートする。出力部201でデータ転送が終わったら、転送待機になるが、次に優先度が高い出力部202を選択する図18の分配1。出力部202のデータ転送が終わったら出力部202ではデータ転送が転送待機になる。ここで、転送可能な優先度の高い出力部があれば新たに選択するが、出力部201は1部あたりの全ページ数のプリントが終了していないので、引き続きデータ転送、プリントが継続される図18の継続1。出力部201の2回目のデータ転送が終わったら、出力部201では転送待機になる。ここで優先度が高いのは、出力部202だが、出力部202はプリント中で転送待機になっているので、出力部203が選択される図18の分配2。大きな処理の手順は以上のとおりだが、部数を考慮すると以下の処理の流れになる。ここで、tsel:分配判定時に選択された出力部での1ページあたりのプリント時間。rnum:分配判定時に設定部数総プリント数に対してプリントしなければならない残りのプリント枚数図19参照。なお、図19の例は、図18と関連はない。なお、プリント中のページはプリント済みとはしない。pnum:1部あたりのページ数。plotsel:分配判定時に選択された出力部。selnum:plotselが1部プリントする時間において、plotselより高速の各々の出力部においてプリント可能なページ数の総和。plotselが全ての出力部で最速のものの場合は、1部あたりのページ数。とする。selnumについて説明する。出力部201、出力部202、出力部203の1ページあたりのプリント時間を各々、t1,t2,t3とする図18参照。分配判定時に選択された出力部が出力部203であるとする。従って、tsel=t3である。出力部203より速い出力部は、出力部201、出力部202であるので、出力部203が1部プリントする時間においてプリント可能な出力部201、出力部202のページ数は各々、tsel/t1×pnum,tsel/t2×pnumである。従って、selnumは、selnum=tsel/t1×pnumtsel/t2×pnumである。初めに最速の出力部へデータ転送開始するともに最速の出力部でプリントを行う。データ転送が終了したら、分配判定を行う。分配判定の処理について図20のフローチャートを参照して説明する。分配制御回路23のCPUは、現在プリント中転送待機でない出力部201~203の中で最速の出力部を選択する。この選択された最速の出力部にて、1部あたりでの全てのページのプリントが終了していないものは、今後もプリントを続けるので、利用可能な出力部なしと判断するステップS1のN。1部あたりでの全てのページのプリントが終了している、または、まだ1ページもプリントしていない場合は、利用可能な出力部ありとするステップS1のY。すべての出力部がプリント中の場合は、利用可能な出力部なしと判断するステップS1のN。利用可能な出力部なしの場合はステップS1のN、現在稼動中の出力部で1部あたりでの全てのページのプリントが終了するまで、データ転送、プリントを継続するステップS2。利用可能な出力部がある場合はステップS1のY、ステップS3の判定を行う。ステップS3で、未プリントの残りページ数と比較して、選択された出力部で1部プリントする時間において、選択された出力部より高速の各々の出力部においてプリント可能な枚数の総和が小さい場合はステップS3のY、選択された出力部を用いることを判定するステップS4。そうでないときはステップS3のN、現在稼動中の出力部でデータ転送、プリントを継続するステップS5。すなわち、ステップS3では、選択された出力部でプリントすることで、逆に全体としてのプリント時間が長くならないかどうか判定している。この分配判定は、稼動している各出力部201~203のデータ転送の終了後毎に設定部数になるまで行われる。なお、プリントが設定部数分全て終了しなくても、設定部数の最後の部数設定部数が10部なら10部目の1ページ目のデータ転送の開始時点で、設定部数になったとみなす。全ての中で最速の出力部において1部あたりでの全てのページのプリントが終了後で、プリントが設定部数分全て終了していない場合は、最速の出力部ではデータ転送、プリントを継続する図18の継続2、継続3。以上は、データ転送を1ページの単位で示した例だが、1部単位やライン単位で行っても同様である。次に、図18のトレース例について、図21を参照して説明する。図21の例では、1部2ページpnum=2、8部プリントt2=2×t1,t3=4×t1出力部203選択時のselnum=12t3/t1t3/t2×2出力部202選択時のselnum=4t2/t1×2出力部201選択時のselnum=2という条件の例を示す。この条件での分配判定での結果分配判定でないところもあるは以下の通りである。以下の符号A~Lは、図21に示すとおりである。A:利用可能な出力部は出力部202である。rnum=16>selnum=4より、出力部202へデータ転送し、プリントする。B:最速は出力部201だが、1部あたりで残りページがあるので、利用可能な出力部はない。現在稼動中の出力部でデータ転送、プリントを継続する。C:利用可能な出力部は出力部203である。rnum=15>selnum=12より、出力部203へデータ転送し、プリントする。D:利用可能な出力部は出力部201である。rnum=14>selnum=2より、出力部201へデータ転送し、プリントする。または、設定部数になっていないので、出力部201でデータ転送、プリントを継続と判定させてもよい。E:最速は出力部202だが、1部あたりで残りページがあるので、利用可能な出力部はない。現在稼動中の出力部でデータ転送、プリントを継続する。F:最速は出力部201だが、1部あたりで残りページがあるので、利用可能な出力部はない。現在稼動中の出力部でデータ転送、プリントを継続する。G:全ての出力部はプリント中なので、利用可能な出力部はない。現在稼動中の出力部でデータ転送、プリントを継続する。H:分配判定ではない。設定部数になっていないので出力部201でデータ転送、プリントを継続する。I:利用可能な出力部は出力部202である。rnum=10>selnum=4より、出力部202へデータ転送し、プリントする。J:最速は出力部201だが、1部あたりで残りページがあるので、利用可能な出力部はない。現在稼動中の出力部でデータ転送、プリントを継続する。K:最速は出力部203だが、1部あたりで残りページがあるので、利用可能な出力部はない。現在稼動中の出力部でデータ転送、プリントを継続する。L:分配判定ではない。設定部数になっていないので出力部201でデータ転送、プリントを継続する。この後、設定部数分に達するので、以降は、分配判定は行わない。"