(57)【要約】【課題】ネットワーク経由の印刷ジョブ分散処理全体の性能を向上させることができる画像形成システムおよびプログラムを提供する。【解決手段】印刷装置Ａ（Ｂ，Ｃ，Ｄ）は、各画像形成手段２１が印刷コントローラ１に対して画像データのリクエストを発行する際のスプリット数を、画像データ転送に要するリクエストのレイテンシ（遅延時間）に応じて変更する（例えば、レイテンシが大きいほどリクエストのスプリット数を増やし、レイテンシが小さいほどリクエストのスプリット数を減らす）。これにより、複数の画像形成手段２１で分散処理を行ってレイテンシが増大する場合でも、最大のデータ転送レートで画像データを転送することができるので、ネットワーク経由の印刷ジョブ分散処理全体の性能を向上させることができる。【選択図】        図３
2010067201.tif 000002
【特許請求の範囲】
【請求項１】
画像データを記憶するメモリと、
システム全体を制御するＣＰＵを介さずに前記メモリとの間でデータ転送を行うＤＭＡＣ（Direct Memory Access Controller）を有し、前記メモリに記憶された前記画像データの画像形成を行う単一または複数の画像形成手段と、
前記画像形成手段に対して高速シリアル伝送路を介して接続され、ネットワーク経由で投入された印刷ジョブにかかる前記画像データを前記メモリに記憶するとともに、前記ＤＭＡＣが発行するリクエストによって要求された前記画像データを、前記メモリから要求元の前記画像形成手段に転送する制御手段と、
を備え、
前記画像形成手段は、所定のリクエストに対する前記画像データが前記制御手段から戻ってくる間に続けて発行される後続のリクエストの個数であるリクエストのスプリット数を、前記画像形成手段が動作している状態におけるリクエストに対する前記画像データを受け取るまでの遅延時間であるリクエストのレイテンシに応じて変更する、
ことを特徴とする画像形成システム。
【請求項２】
前記画像形成手段は、前記制御手段に対して前記画像データの転送をメモリリードリクエストによって要求する際のリードリクエストのレイテンシを検出するレイテンシ検出手段と、検出されたレイテンシが大きいほどリクエストのスプリット数を増やし、検出されたレイテンシが小さいほどリクエストのスプリット数を減らすスプリット発行制御手段と、を備える、
ことを特徴とする請求項１記載の画像形成システム。
【請求項３】
前記画像形成手段は、前記制御手段に対して前記画像データの転送をメモリリードリクエストによって要求する際のリードリクエストのレイテンシを検出するレイテンシ検出手段と、前記画像形成手段の画像形成にかかる最大データ転送帯域が広いほどスプリット数を増やし、最大データ転送帯域が狭いほどスプリット数を減らすスプリット発行制御手段と、を備える、
ことを特徴とする請求項１記載の画像形成システム。
【請求項４】
前記制御手段は、投入された印刷ジョブを複数の前記画像形成手段に分割して制御を実行し、その際、投入された印刷ジョブが複数のページから構成される場合は、ひとつの印刷ジョブを複数の前記画像形成手段に対して分割して画像形成の実行を制御する、
ことを特徴とする請求項１ないし３のいずれか一記載の画像形成システム。
【請求項５】
前記制御手段は、複数のページから構成される印刷ジョブを複数の前記画像形成手段に対して分割して制御を実行する際、複数の前記画像形成手段を２つずつ複数のグループに分けるとともに、各グループに対して複数のページからなる範囲を割り当てて、さらに各グループの１台目の前記画像形成手段は割り当てられた範囲の最初のページから順に画像形成の実行を制御し、２台目の前記画像形成手段は、割り当てられた範囲の最後のページから逆順に画像形成の実行を制御する、
ことを特徴とする請求項４記載の画像形成システム。
【請求項６】
前記制御手段は、投入された印刷ジョブが単一あるいは複数ページから構成される印刷ジョブを複数回繰り返すことにより多部数の画像形成を実行するものである場合は、投入された印刷ジョブと同一の印刷ジョブを複数の前記画像形成手段に対して並行して画像形成制御を実行する、
ことを特徴とする請求項４または５記載の画像形成システム。
【請求項７】
前記制御手段は、複数の前記画像形成手段において画像形成処理を実行している際に、新たな印刷ジョブが投入された場合は、印刷ジョブに指定されている優先度情報を検知し、画像形成中のジョブよりも優先度が高い場合は、一部の前記画像形成手段のジョブを停止させて、新たに投入された印刷ジョブを実行し、印刷を停止させなかった前記画像形成手段では先に実行中だった印刷ジョブを継続して実行する、
ことを特徴とする請求項４ないし６のいずれか一記載の画像形成システム。
【請求項８】
前記制御手段は、複数の前記画像形成手段において画像形成処理を実行している際に、画像形成不可能な障害が発生した場合、これを検知した前記画像形成手段のジョブを停止し、画像形成処理を停止させなかった前記画像形成手段では実行中だった印刷ジョブを継続して実行する、
ことを特徴とする請求項４ないし６のいずれか一記載の画像形成システム。
【請求項９】
コンピュータを、
画像データを記憶するメモリとの間でシステム全体を制御するＣＰＵを介さずにデータ転送を行うＤＭＡＣ（Direct Memory Access Controller）を有し、前記メモリに記憶された前記画像データの画像形成を行う単一または複数の画像形成手段に対して、高速シリアル伝送路を介して接続され、ネットワーク経由で投入された印刷ジョブにかかる前記画像データを前記メモリに記憶するとともに、前記ＤＭＡＣが発行するリクエストによって要求された前記画像データを、前記メモリから要求元の前記画像形成手段に転送する制御手段として機能させるためのプログラムであって、
前記画像形成手段は、所定のリクエストに対する前記画像データが前記制御手段から戻ってくる間に続けて発行される後続のリクエストの個数であるリクエストのスプリット数を、前記画像形成手段が動作している状態におけるリクエストに対する前記画像データを受け取るまでの遅延時間であるリクエストのレイテンシに応じて変更する、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成システムおよびプログラムに関する。
【背景技術】
【０００２】
特許文献１に開示されている分散印刷システムは、１つの印刷ジョブを複数の分散ジョブに分割し、ネットワークに接続された複数のプリンタを用いて印刷するものである。この際、印刷ジョブの属性情報を検出し、検出した印刷ジョブの属性をもとに、該印刷ジョブに部単位印刷が指定されている場合には部単位で分割し、部単位印刷が設定されていない場合には頁単位で分割することを特徴とするものである。
【０００３】
また、特許文献２に開示されている画像形成システムは、１つ以上のプリンタにより構成されるグループの各プリンタにページ単位でデータを分割した各画像形成ジョブを各プリンタに振り分けて実行させ、各プリンタに振り分けた画像形成ジョブがほぼ同時に終了するように画像形成ジョブを分割することで、複数のプリンタに印刷データを分割し分散させて印刷する場合の印刷時間を短縮する。
【０００４】
【特許文献１】特開２００６−０２４００５号公報
【特許文献２】特開２００６−１７８８８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に開示されている分散印刷システムでは、ネットワーク経由で印刷ジョブの制御を行うため、印刷用に展開された大量の画像データを高速に転送することが不可能である。このため、印刷ジョブの分散は中間言語の状態で転送する必要があり、各プリンタの印刷コントローラが別々に必要となっている。すなわち、独立したプリンタを複数接続することになり、高速なプリンタシステムに対してコストが安くならないという問題がある。また、分散ジョブの一部で障害が発生した場合や、印刷速度にばらつきがある場合、あるいは先行して印刷している印刷ジョブよりも優先させたい印刷ジョブを投入したい場合などにシステム全体の性能が上がらないという問題を有する。
【０００６】
そこで、従来のネットワーク経由の印刷ジョブ分散技術をPCI Express等をはじめとする高速シリアル伝送路による画像データ通信にそのまま適用することも考えられるが、データ転送リクエストに対してデータが送信されてくるまでのレイテンシ（遅延時間）の影響により、意図したデータ転送帯域が得られないという問題を有する。たとえば、特許文献２に開示されている画像形成システムで、複数の印刷装置に対して各印刷装置の性能比に従ってジョブを配分しても、複数の印刷装置が一本のシリアル転送路を競合してデータ転送に使用するため、データ転送に要するレイテンシが増加することで、各印刷装置で所望の性能が得られなくなり、全体の印刷ジョブ処理性能が低下する問題が発生する。
【０００７】
本発明は、上記に鑑みてなされたものであって、ネットワーク経由の印刷ジョブ分散処理全体の性能を向上させることができる画像形成システムおよびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明の画像形成システムは、画像データを記憶するメモリと、システム全体を制御するＣＰＵを介さずに前記メモリとの間でデータ転送を行うＤＭＡＣ（Direct Memory Access Controller）を有し、前記メモリに記憶された前記画像データの画像形成を行う単一または複数の画像形成手段と、前記画像形成手段に対して高速シリアル伝送路を介して接続され、ネットワーク経由で投入された印刷ジョブにかかる前記画像データを前記メモリに記憶するとともに、前記ＤＭＡＣが発行するリクエストによって要求された前記画像データを、前記メモリから要求元の前記画像形成手段に転送する制御手段と、を備え、前記画像形成手段は、所定のリクエストに対する前記画像データが前記制御手段から戻ってくる間に続けて発行される後続のリクエストの個数であるリクエストのスプリット数を、前記画像形成手段が動作している状態におけるリクエストに対する前記画像データを受け取るまでの遅延時間であるリクエストのレイテンシに応じて変更する。
【０００９】
また、本発明のプログラムは、コンピュータを、画像データを記憶するメモリとの間でシステム全体を制御するＣＰＵを介さずにデータ転送を行うＤＭＡＣ（Direct Memory Access Controller）を有し、前記メモリに記憶された前記画像データの画像形成を行う単一または複数の画像形成手段に対して、高速シリアル伝送路を介して接続され、ネットワーク経由で投入された印刷ジョブにかかる前記画像データを前記メモリに記憶するとともに、前記ＤＭＡＣが発行するリクエストによって要求された前記画像データを、前記メモリから要求元の前記画像形成手段に転送する制御手段として機能させるためのプログラムであって、前記画像形成手段は、所定のリクエストに対する前記画像データが前記制御手段から戻ってくる間に続けて発行される後続のリクエストの個数であるリクエストのスプリット数を、前記画像形成手段が動作している状態におけるリクエストに対する前記画像データを受け取るまでの遅延時間であるリクエストのレイテンシに応じて変更する。
【発明の効果】
【００１０】
本発明によれば、各画像形成手段が制御手段に対して画像データのリクエストを発行する際のスプリット数を、画像データ転送に要するリクエストのレイテンシ（遅延時間）に応じて変更する（例えば、レイテンシが大きいほどリクエストのスプリット数を増やし、レイテンシが小さいほどリクエストのスプリット数を減らす）ことにより、複数の画像形成手段で分散処理を行ってレイテンシが増大する場合でも、最大のデータ転送レートで画像データを転送することができるので、ネットワーク経由の印刷ジョブ分散処理全体の性能を向上させることができる、という効果を奏する。
【発明を実施するための最良の形態】
【００１１】
以下に添付図面を参照して、この発明にかかる画像形成システムおよびプログラムの最良な実施の形態を詳細に説明する。
【００１２】
［第１の実施の形態］
本発明の第１の実施の形態を図１ないし図７に基づいて説明する。図１は、本発明の第１の実施の形態にかかる画像形成システムの構成を示すブロック図である。図１に示す画像形成システムは、制御手段として機能する１台の印刷コントローラ１に対して４台の印刷装置Ａ，Ｂ，Ｃ，Ｄを、シリアル伝送路２とスイッチ３とを経由して接続している。シリアル伝送路としては、大量の印刷データを高速に転送できる高速シリアルインターフェース（PCI Express（以降、ＰＣＩｅと記載する））を用いる。したがって、本実施の形態のスイッチ３は、ＰＣＩｅスイッチである。このように、１台の印刷コントローラ１に対して４台の印刷装置Ａ，Ｂ，Ｃ，Ｄを、ＰＣＩｅを用いたシリアル伝送路２とスイッチ３とを経由して接続することにより、大量の印刷ジョブを高速かつ低コストで印刷することができる。
【００１３】
ここで、印刷コントローラ１のＰＣＩｅ接続ポートはRootComplex４となり、各印刷装置Ａ，Ｂ，Ｃ，ＤのＰＣＩｅ接続ポートはEndpoint５となる。
【００１４】
印刷コントローラ１には、印刷ジョブ制御などの各種制御を実行するＣＰＵ６が実装されている。ＣＰＵ６は、ＨＤＤ Ｉ／Ｆ７を介してＨＤＤ（Hard Disk Drive）８と接続されるとともに、メモリＩ／Ｆ９を介してメモリ１０に接続されている。また、ＣＰＵ６は、ネットワークＩ／Ｆ１１を介してネットワーク１２に接続されている。なお、ＨＤＤ８は、大量の印刷ジョブ全体の印刷データが記録できる容量をもつ記録装置であれば、他の記録装置（例えばフラッシュメモリを搭載したメモリカード等）に置き換えても構わない。
【００１５】
次に、１つの印刷ジョブを１台の印刷装置（例えば、印刷装置Ａ）で実行する基本的な動作を説明する。
【００１６】
図２は、印刷ジョブが印刷コントローラ１に投入されて、印刷用の画像データがＨＤＤ８に格納されるまでのデータの流れを示している。図２に示すように、はじめに印刷ジョブはネットワーク１２を経由して印刷コントローラ１に送信されてくる。ここで、印刷ジョブは画像データよりも容量の少ない、印刷言語データであるものとする。印刷言語はＣＰＵ６のソフトウェアによる展開処理によって、印刷用の画像データに変換され、１ページ単位でメモリ１０に書き込まれる。メモリ１０に書き込まれた印刷データは、順次ＨＤＤ８に転送された後、消去されるものとする。ＣＰＵ６の展開処理が全て完了すると、印刷ジョブに含まれる全てのページの画像データがＨＤＤ８に記録される。
【００１７】
図３は、印刷時のデータの流れを示している。印刷時の概略的な流れとしては、印刷コントローラ１が、ＨＤＤ８内部の印刷用データを1ページずつＰＣＩｅのRootComplex４に転送し、印刷用データはRootComplex４からＰＣＩｅスイッチ３を経由して印刷装置Ａに転送されて紙に印刷される、というものである。以下において、詳細に説明する。
【００１８】
なお、図３に示すように、印刷装置Ａ（Ｂ，Ｃ，Ｄ）は、画像形成手段として機能する例えば電子写真方式のプロッタユニット２１と、ＣＰＵ６を介さずにメモリ１０との間でデータ転送を行うＤＭＡＣ（Direct Memory Access Controller）２２と、レイテンシ検出部２３と、スプリット発行制御部２４とを備えている。
【００１９】
図３に示すように、印刷時における印刷コントローラ１は、印刷装置Ａのプロッタユニット２１に対して、印刷指示情報をＰＣＩｅ２およびＰＣＩｅスイッチ３を経由するメモリWriteパケットによって送信する（図３に示す（１））。
【００２０】
印刷指示を受信したプロッタユニット２１は、ＤＭＡＣ２２に対して起動信号を送信する。起動信号を受けたＤＭＡＣ２２は、印刷コントローラ１に対して、ＰＣＩｅ Endpoint５を経由して、メモリReadリクエストによって画像データの転送をリクエストする（図３に示す（２））。加えて、ＤＭＡＣ２２は、レイテンシ検出部２３に対して、Readリクエストを発行した時間情報を通知する。なお、ＰＣＩｅ２はシリアルのパケット転送を処理するため、ＤＭＡＣ２２は印刷ジョブ全体を構成する画像データを、例えば１２８Ｂｙｔｅの小さいサイズの単位に分割して、複数のメモリReadリクエストとして転送要求を発行する。
【００２１】
Readリクエストは、印刷コントローラ１のRootComplex４を介して印刷データを記憶するＨＤＤ８に届く。そして、RootComplex４には、要求されたReadリクエストに対する印刷データがＨＤＤ８から転送される。RootComplex４に転送された印刷データは、ＰＣＩｅ２およびＰＣＩｅスイッチ３を経由してＤＭＡＣ２２に転送される。
【００２２】
ＤＭＡＣ２２は、Readデータを受信した際に、ＤＭＡＣ２２から受け取ったReadデータが転送されてくるまでの受信時間情報をレイテンシ検出部２３に通知する。ＤＭＡＣ２２は、さらに受信したReadデータを、画像データとしてプロッタユニット２１に転送し、紙に画像データが順次印刷する（図３に示す（３））。
【００２３】
レイテンシ検出部２３は、ＤＭＡＣ２２から受け取ったReadリクエストを発行した時間情報と、ＤＭＡＣ２２から受け取ったReadデータが転送されてくるまでの受信時間情報とから、リクエスト発行からデータ受信にかかったレイテンシ（遅延時間）を検出して、スプリット発行制御部２４に通知する。ここで、Readリクエストのレイテンシ（または、単にレイテンシ）は、Readリクエストに対するReadデータが到着するまでにかかる時間をいう。
【００２４】
スプリット発行制御部２４は、レイテンシ検出部２３から受信したレイテンシに応じて、ＤＭＡＣ２２に対してReadリクエストを発行する際のスプリット発行数を通知する。なお、スプリット発行制御部２４の動作の詳細については、後述する。
【００２５】
ＤＭＡＣ２２は、通知を受けたスプリット発行数にしたがって、Readリクエストを発行する際のスプリット数を決定する。ここで、Readリクエストのスプリット発行数（または、スプリット数）は、あるReadリクエストに対するReadデータが、要求先から戻ってくる前に続けて発行する、後続のReadリクエストの個数をいう。
【００２６】
ここで、スプリット数、Readリクエストおよび印刷装置に対するReadデータの転送レートの関係について、図４〜図７のタイミングチャートを用いて説明する。
【００２７】
図４は、スプリット数が“１”である場合の動作例を示すタイミングチャートである。図４に示すように、スプリット数が“１”の場合、一つのReadリクエスト１を発行した後、ReadデータＤ１を受信するまで、次のReadリクエスト２を発行しない。このため、レイテンシが発生すると、図４のタイミングチャートに示すようにReadデータＤ１，Ｄ２，Ｄ３…のパケットを受信に間隔が生じて、データ転送帯域が狭くなる。図４に示す例では、半分程度に転送レートが低下する。
【００２８】
図５は、スプリット数を“２”に増やした例である。スプリット数が“２”の場合、印刷装置からは初めのReadデータＤ１が転送されてくる前に２つのリクエスト１，２を発行する。このため、ReadデータＤ１，Ｄ２のパケットは、間隔を空けずに転送されてくる。ReadデータＤ１を受信した時点で、次のReadリクエスト３が発行されるので、ReadデータＤ２，Ｄ３以降のReadデータも間隔を空けずに転送されつづけて、最大の実効帯域が得られるようになる。図５に示す例では、１００％の効率でデータ転送が行われる。
【００２９】
図６は、スプリット数が“２”で、さらにレイテンシが大きくなった場合の例を示すタイミングチャートである。レイテンシが大きくなることで、印刷装置からのReadリクエスト２とReadリクエスト３の間隔が広がるため、受信するReadデータＤ２とReadデータＤ３の間隔に隙間が生じてしまう。このため、レイテンシが大きくなる場合の転送帯域は、２／３程度に悪化することがある。
【００３０】
そこで、レイテンシが大きくなる場合、図７に示す例のように、スプリット数を“３”に増やせば、Readデータパケットが隙間なく受信できて、最大の転送効率が得られるようになる。
【００３１】
このため、スプリット発行制御部２４では、レイテンシに応じてＤＭＡＣ２２の発行するReadリクエストのスプリット数を、レイテンシが大きいほどスプリット数を増やし、レイテンシが小さいほどスプリット数を減らすように、スプリット数を算出する。
【００３２】
このように本実施の形態によれば、各印刷装置は、各プロッタユニット２１が印刷コントローラ１に対して画像データのリクエストを発行する際のスプリット数を、画像データ転送に要するリクエストのレイテンシ（遅延時間）に応じて変更する（例えば、レイテンシが大きいほどリクエストのスプリット数を増やし、レイテンシが小さいほどリクエストのスプリット数を減らす）ことにより、複数のプロッタユニット２１で分散処理を行ってレイテンシが増大する場合でも、最大のデータ転送レートで画像データを転送することができるので、ネットワーク経由の印刷ジョブ分散処理全体の性能を向上させることができる。
【００３３】
［第２の実施の形態］
次に、本発明の第２の実施の形態を図８ないし図１３に基づいて説明する。なお、前述した第１の実施の形態と同じ部分は同じ符号で示し説明も省略する。
【００３４】
第２の実施の形態で説明した画像形成システムにおいて、レイテンシが小さいほどスプリット数を減らすのは、複数の印刷装置が同時に動作した場合に、印刷性能の低い印刷装置が過剰な数のReadリクエストを印刷コントローラ１に対して、発行することを抑制するためである。しかしながら、遅い印刷装置のReadリクエストのスプリット数が多すぎる場合には、印刷コントローラ１やＰＣＩｅ２の内部バッファに遅い印刷装置からのReadリクエストが多数キューイングされて、Readデータの転送が完了するまで、バッファが開放されなくなる。このため、他の印刷性能の高い印刷装置からのReadデータ転送レートが低下する問題が発生する。
【００３５】
そこで、本実施の形態においては、スプリット発行制御部２４で、各印刷装置の最大印刷速度に必要なデータ転送帯域に応じて、ＤＭＡＣ２２の発行するReadリクエストのスプリット数を、印刷性能が高い（画像形成にかかる最大データ転送帯域が広い）ほどスプリット数を増やし、印刷性能が低い（画像形成にかかる最大データ転送帯域が狭い）ほどスプリット数を減らすように、スプリット数を算出するようにしたものである。
【００３６】
ここで、スプリット発行制御部２４のスプリット数算出値の具体例について、図８〜図１０を用いて説明する。
【００３７】
図８は、Readリクエストのデータサイズが１２８Ｂｙｔｅで、印刷装置のプロッタユニット２１が１ＧＢ／ｓのデータ転送レートで最大性能を発揮する場合の、レイテンシとスプリット数の関係を示したものである。また、図９は、レイテンシが１０２４ｎｓで、Readリクエストのデータサイズが１２８Ｂｙｔｅである場合の、印刷装置のプロッタユニット２１の最大データ転送帯域とスプリット数の関係を示したものである。
【００３８】
スプリット数は、スプリット発行制御部２４において、Readリクエストに対するReadデータのレイテンシと、パケット１つあたりのペイロードサイズと、プロッタユニット２１の最大帯域とＰＣＩｅ２（データ転送経路）の最大帯域から、以下の演算処理によって導出することができる。
スプリット数
＝（レイテンシ（ｎｓ）／（１バイト転送時間（ｎｓ）×ペイロードサイズ（ｂｙｔｅ））＊プロッタ帯域（ＧＢ／ｓ）／ＰＣＩｅ帯域（ＧＢ／ｓ）
【００３９】
ここで、
１バイト転送時間（ｎｓ）＝１／ＰＣＩｅ帯域（ＧＢ／ｓ）
である。
【００４０】
また、スプリット数の最小数は１であるため、演算結果が１よりも小さくなる場合は、スプリット数を１とすればよい。また、演算結果が整数とならない場合は、切り上げ処理によりスプリット数を決定すればよい。
【００４１】
ここで、下記の条件を、具体例として挙げる。
ＰＣＩｅ帯域＝１ＧＢ／ｓ  （ＰＣＩｅ規格の４レーン接続に相当する。１レーンでは片方向２５０ＭＢ／ｓ）
プロッタ帯域＝１ＧＢ／ｓ
Readデータのペイロードサイズ＝１２８Ｂｙｔｅ
レイテンシ＝１０２４ｎｓ
上記の条件の場合は、
スプリット数
＝１０２４（ｎｓ）／（１／１（ＧＢ／ｓ）＊１２８（ｂｙｔｅ））＊１（ＧＢ／ｓ）／１（ＧＢ／ｓ）
＝８個
となる。
【００４２】
以上の演算により、スプリット発行制御部２４からＤＭＡＣ２２に対して、スプリット数“８”を指示する信号が通知される。
【００４３】
ここで、上記演算により導出されるスプリット数と、レイテンシおよびプロッタユニット２１の帯域（性能）の関係を、図１０に示す。図１０に示すように、スプリット数を制御することによって、各プロッタユニット２１の最大性能が発揮できるデータ転送レートで、印刷コントローラからReadデータを転送することが可能となる。
【００４４】
以上のように、レイテンシ情報に応じてスプリット数を変更することは、特に複数の印刷装置による分散印刷処理を実行した際に有効である。これは、同時に起動している印刷装置（プロッタユニット２１）の数によって、レイテンシが変化するためである。図１１に示す例のように、印刷装置（プロッタユニット２１）の起動数が多いほど、Readリクエストに対するレイテンシは増加する。これは、図１２に示すように、一台の印刷装置（プロッタユニット２１）だけを起動した場合に比べ、他の印刷装置（プロッタユニット２１）を起動した場合、Readデータの転送が他の印刷装置（プロッタユニット２１）のReadデータの転送に待たされている時間が、レイテンシに加算されるためである。
【００４５】
このように本実施の形態によれば、各プロッタユニット２１が印刷コントローラ１に対して画像データのリクエストを発行する際のスプリット数を、画像データ転送に要するリクエストのレイテンシ（遅延時間）に応じて変更する（例えば、画像形成にかかる最大データ転送帯域が広いほどスプリット数を増やし、最大データ転送帯域が狭いほどスプリット数を減らす）ことにより、複数のプロッタユニット２１で分散処理を行ってレイテンシが増大する場合でも、最大のデータ転送レートで画像データを転送することができるので、ネットワーク経由の印刷ジョブ分散処理全体の性能を向上させることができる。
【００４６】
なお、構成を簡易にする場合、印刷装置に対するスプリット数は、あらかじめレイテンシの予測値に基づいて、プロッタユニット２１の起動時に印刷コントローラ１から直接指定するようにしてもよい。図１３に示す例は、印刷装置にレイテンシ検出部とスプリット制御を設けず、印刷指示（図１３に示す（１））の際に、同時にスプリット数をプロッタユニット２１に対して通知する例である。この場合、起動するプロッタ数とレイテンシの値などが、印刷ジョブが完了するまで間、変化が無ければ、高速に印刷処理を実行することができる。しかしながら、印刷ジョブが不定期に投入され、レイテンシや起動プロッタ数が不規則に変化する場合は、図３に示すようなレイテンシ検出部２３と、スプリット発行制御部２４を設けることが望ましい。
【００４７】
［第３の実施の形態］
次に、本発明の第３の実施の形態を図１４および図１５に基づいて説明する。なお、前述した第１の実施の形態または第２の実施の形態と同じ部分は同じ符号で示し説明も省略する。すなわち、本発明の第３の実施の形態の印刷装置Ａ，Ｂ，Ｃ，Ｄも、前述したようにReadリクエストのスプリット数をレイテンシやプロッタ性能に応じて制御をするものを用いることを特徴とするものである。
【００４８】
図１４は、本発明の第３の実施の形態にかかる画像形成システムにおけるデータの流れを示している。なお、図１４においては、図を単純化するために、印刷コントローラ１からのReadデータ転送のみを示し、印刷コントローラ１から印刷装置Ａ，Ｂ，Ｃ，Ｄに対する印刷指示と、印刷装置Ａ，Ｂ，Ｃ，Ｄから印刷コントローラ１に対するReadリクエストのフローの表示は省略する。
【００４９】
図１４に示すように、本実施の形態の印刷コントローラ１は、投入された印刷ジョブを複数の印刷装置Ａ，Ｂ，Ｃ，Ｄに分割して印刷制御を実行し、その際、投入された印刷ジョブが複数のページから構成される場合は、一つの印刷ジョブを複数の印刷装置Ａ，Ｂ，Ｃ，Ｄに対して分割して印刷制御をするものである。より詳細には、印刷コントローラ１は、印刷装置を２台一組としたグループに分け、各グループに対して複数のページからなる印刷範囲を指定し、さらに各グループの１台目の印刷装置は指定された印刷範囲の初めのページから順に印刷する制御を実行し、２台目の印刷装置は、最後のページから逆順に印刷する制御を実行するものである。
【００５０】
図１５のフローチャートを参照しつつ具体例を説明する。なお、これらの動作は印刷コントローラ１のＣＰＵ６におけるソフトウェアで処理するか、または同等の動作をするハードウェアロジックにより実装する。ここでは、説明を単純にするために、印刷ジョブが２０ページの原稿で構成されるものとする。なお、印刷コントローラ１にネットワーク１２経由で印刷ジョブが投入されて、ＨＤＤ８に全ページの印刷データが記録されるまでの動作は、前述した通りである。
【００５１】
まず、印刷コントローラ１は、ＨＤＤ８に全ページの印刷データが記録されると（ステップＳ１〜Ｓ５のＹｅｓ）、ＰＣＩｅスイッチ３に接続された印刷装置Ａ，Ｂ，Ｃ，Ｄを、印刷装置Ａ，Ｂで構成されると、印刷装置Ｃ，Ｄで構成される第２グループにグループ分けする（ステップＳ６）。
【００５２】
次に、印刷コントローラ１は、各グループが印刷するページ範囲を、各印刷装置の性能に基づいて決定する（ステップＳ７）。図１４に示す例では、印刷装置Ａ，Ｂ，Ｃ，Ｄの性能が全て同じであるとして、第１グループおよび第２グループに対して均等に２０ページのジョブのうち、１０ページずつ割り当てている（すなわち、第１グループに１〜１０ページを割り当て、第２グループに１１〜２０ページを割り当てることとする）。もし、各印刷装置の性能が均等でない場合は、その速度によってグループ分けと、印刷ページ範囲を割り付けることが望ましい。一例として、性能の高い順に２台ずつグループ分けし、各グループの印刷装置の性能の合計の比率に応じて、性能の高いグループには広い印刷ページ範囲を割り当て、性能の低いグループには狭い印刷ページ範囲を割り当てることで、印刷ジョブ全体の印刷が完了する時間を短くすることができる。
【００５３】
印刷装置のグループ分けと、ページ範囲の割り当てが完了した後、印刷コントローラ１は、ＨＤＤ８から各印刷装置Ａ，Ｂ，Ｃ，Ｄへ印刷データを転送する処理を実行する（ステップＳ８）。
【００５４】
ここで、各グループのうち、１台目の印刷装置には、割り当てられた印刷ページ範囲のはじめのページから昇順に印刷データを転送していき、２台目の印刷装置には、１台目とは逆に割り当てられた印刷ページ範囲の最後のページから逆順に印刷データを転送していくように、制御を実行する。図１４に示す例では、第１グループの印刷装置Ａには１，２，３・・・の順で印刷データを転送し、第１グループの印刷装置Ｂには１０，９，８・・・の順で印刷データを転送していく。一方、第２グループの印刷装置Ｃには１１，１２，１３・・・の順で印刷データを転送し、第２グループの印刷装置Ｄには２０，１９，１８・・・の順で印刷データを転送していくことになる。
【００５５】
そして、各印刷装置Ａ，Ｂ，Ｃ，Ｄは、印刷データを受信し始めると、受信したページから順次印刷処理を実行するが、１ページの印刷データを受信するごとに、印刷を完了したページのページ番号を、ＰＣＩｅのEndpoint５からＰＣＩｅスイッチ３を介して印刷コントローラ１に通知する。
【００５６】
印刷コントローラ１は、各印刷装置Ａ，Ｂ，Ｃ，Ｄに印刷データを転送しながら、各印刷装置Ａ，Ｂ，Ｃ，Ｄから通知されてくるページ番号を受信する（ステップＳ９）。もし、１台目と２台目のページ番号が次のページで一致する状態が検出されたグループがある場合は（ステップＳ１０のＹｅｓ）、そのグループに対する印刷データの送信を完了する（ステップＳ１１）。各グループでは、２台の印刷装置がそれぞれ初めのページと終わりのページから印刷を進めているので、上の状態が検出された場合は、そのグループに割り当てたすべてのページの印刷が完了したことになる。以上の動作によって、印刷処理を進めすべてのグループにおける印刷処理が完了すると（ステップＳ１２のＹｅｓ）、すなわち投入された印刷ジョブのすべてのページの印刷が完了したことになり、全体の処理を終了する（ステップＳ１３）。
【００５７】
このように本実施の形態によれば、複数のページから構成される印刷ジョブを複数の印刷装置に対して分割して印刷制御を実行する際、印刷装置を２台を一組としたグループに分け、各グループに対して複数のページからなる印刷範囲を指定し、さらに各グループの１台目の印刷装置は指定された印刷範囲の初めのページから昇順に印刷し、２台目の印刷装置は、最後のページから逆順に印刷するため、各印刷装置の性能が異なっている場合でも、２台の印刷装置が常に停止することなく、最大の速度で印刷を完了することができる。
【００５８】
［第４の実施の形態］
次に、本発明の第４の実施の形態を図１６および図１７に基づいて説明する。なお、前述した第１の実施の形態ないし第３の実施の形態と同じ部分は同じ符号で示し説明も省略する。すなわち、本発明の第４の実施の形態の印刷装置Ａ，Ｂ，Ｃ，Ｄも、前述したようにReadリクエストのスプリット数をレイテンシやプロッタ性能に応じて制御をするものを用いることを特徴とするものである。
【００５９】
図１６は、本発明の第４の実施の形態にかかる画像形成システムにおけるデータの流れを示している。なお、図１６においては、図を単純化するために、印刷コントローラ１からのReadデータ転送のみを示し、印刷コントローラ１から印刷装置Ａ，Ｂ，Ｃ，Ｄに対する印刷指示と、印刷装置Ａ，Ｂ，Ｃ，Ｄから印刷コントローラ１に対するReadリクエストのフローの表示は省略する。
【００６０】
図１６に示すように、本実施の形態の印刷コントローラ１は、投入された印刷ジョブが単一あるいは複数ページから構成される印刷ジョブを複数回繰り返して、多部印刷するものである場合は、投入された印刷ジョブと同一の印刷ジョブを複数の印刷装置に対して並行して印刷制御を実行するものである。
【００６１】
図１７のフローチャートを参照しつつ具体例を説明する。なお、これらの動作は印刷コントローラ１のＣＰＵ６におけるソフトウェアで処理するか、または同等の動作をするハードウェアロジックにより実装する。なお、印刷コントローラ１にネットワーク１２経由で印刷ジョブが投入されて、ＨＤＤ８に全ページの印刷データが記録されるまでの動作は、前述した通りである。
【００６２】
まず、印刷コントローラ１は、ＨＤＤ８に全ページの印刷データが記録されると（ステップＳ２１〜Ｓ２５のＹｅｓ）、ＰＣＩｅスイッチ３に接続された印刷装置Ａ，Ｂ，Ｃ，Ｄすべてに対して、印刷ジョブの全ページを１ページ目（あるいは最終ページから逆順でも構わない）から順に１，２，３，４・・・ページの順で、印刷データを転送する処理を実行する（ステップＳ２６）。
【００６３】
各印刷装置Ａ，Ｂ，Ｃ，Ｄは、印刷データを受信し始めると、受信したページから順次印刷処理を実行するが、印刷ジョブの最後のページの印刷が完了受信するごとに、その時点で印刷を完了した部数を、ＰＣＩｅのEndpoint５からＰＣＩｅスイッチ３を介して印刷コントローラ１に通知する。
【００６４】
印刷コントローラ１は、各印刷装置Ａ，Ｂ，Ｃ，Ｄに印刷データを転送しながら、各印刷装置Ａ，Ｂ，Ｃ，Ｄから通知されてくる印刷部数を検出し（ステップＳ２７）、すべての印刷装置Ａ，Ｂ，Ｃ，Ｄから通知されてきた部数の合計値が印刷ジョブで指定された部数に達した時点で（ステップＳ２８のＹｅｓ）、全体の転送処理を終了する（ステップＳ２９）。
【００６５】
このように本実施の形態によれば、投入された印刷ジョブが単一あるいは複数ページから構成される印刷ジョブを複数回繰り返して、多部数を印刷するものである場合は、投入された印刷ジョブと同一の印刷ジョブを複数の印刷装置に対して並行して印刷するため、各印刷装置の性能が異なっている場合でも、全ての印刷装置が常に停止することなく、最大の速度で印刷を完了することができる。
【００６６】
［第５の実施の形態］
次に、本発明の第５の実施の形態を図１８ないし図２１に基づいて説明する。なお、前述した第１の実施の形態ないし第４の実施の形態と同じ部分は同じ符号で示し説明も省略する。すなわち、本発明の第５の実施の形態の印刷装置Ａ，Ｂ，Ｃ，Ｄも、前述したようにReadリクエストのスプリット数をレイテンシやプロッタ性能に応じて制御をするものを用いることを特徴とするものである。
【００６７】
まず、第３の実施の形態に示した態様において、複数の印刷装置で印刷処理を実行している途中で、新たな印刷ジョブが投入された場合について説明する。
【００６８】
図１８は、本発明の第５の実施の形態にかかる画像形成システムにおけるデータの流れを示している。なお、図１８においては、図を単純化するために、印刷コントローラ１からのReadデータ転送のみを示し、印刷コントローラ１から印刷装置Ａ，Ｂ，Ｃ，Ｄに対する印刷指示と、印刷装置Ａ，Ｂ，Ｃ，Ｄから印刷コントローラ１に対するReadリクエストのフローの表示は省略する。
【００６９】
図１８に示すように、本実施の形態の印刷コントローラ１は、第３の実施の形態で示した態様において、複数の印刷装置で印刷処理を実行している途中で、新たな印刷ジョブが投入された場合は、印刷ジョブに指定されている優先度情報を検知し、印刷中のジョブよりも優先度が高い場合は、一部の印刷装置のジョブを停止させて、新たに投入された印刷ジョブを実行し、印刷を停止させなかった印刷装置では先に実行中だった印刷ジョブを継続して実行するものである。
【００７０】
図１９のフローチャートを参照しつつ具体例を説明する。なお、これらの動作は印刷コントローラ１のＣＰＵ６におけるソフトウェアで処理するか、または同等の動作をするハードウェアロジックにより実装する。なお、印刷コントローラ１にネットワーク１２経由で印刷ジョブが投入されて、ＨＤＤ８に全ページの印刷データが記録されるまでの動作は、前述した通りである。
【００７１】
まず、印刷コントローラ１は、ＨＤＤ８に全ページの印刷データが記録されると（ステップＳ１〜Ｓ５のＹｅｓ）、ＰＣＩｅスイッチ３に接続された印刷装置Ａ，Ｂ，Ｃ，Ｄを、印刷装置Ａ，Ｂで構成される第１グループと、印刷装置Ｃ，Ｄで構成される第２グループにグループ分けする（ステップＳ６）。
【００７２】
次に、印刷コントローラ１は、各グループが印刷するページ範囲を、各印刷装置の性能に基づいて決定する（ステップＳ７）。図１８に示す例では、印刷装置Ａ，Ｂ，Ｃ，Ｄの性能が全て同じであるとして、第１グループおよび第２グループに対して均等に２０ページのジョブのうち、１０ページずつ割り当てている（すなわち、第１グループに１〜１０ページを割り当て、第２グループに１１〜２０ページを割り当てることとする）。もし、各印刷装置の性能が均等でない場合は、その速度によってグループ分けと、印刷ページ範囲を割り付けることが望ましい。一例として、性能の高い順に２台ずつグループ分けし、各グループの印刷装置の性能の合計の比率に応じて、性能の高いグループには広い印刷ページ範囲を割り当て、性能の低いグループには狭い印刷ページ範囲を割り当てることで、印刷ジョブ全体の印刷が完了する時間を短くすることができる。
【００７３】
印刷装置のグループ分けと、ページ範囲の割り当てが完了した後、印刷コントローラ１は、ＨＤＤ８から各印刷装置Ａ，Ｂ，Ｃ，Ｄへ印刷データを転送する処理を実行する（ステップＳ８）。
【００７４】
ここで、各グループのうち、１台目の印刷装置には、割り当てられた印刷ページ範囲のはじめのページから昇順に印刷データを転送していき、２台目の印刷装置には、１台目とは逆に割り当てられた印刷ページ範囲の最後のページから逆順に印刷データを転送していくように、制御を実行する。図１８に示す例では、第１グループの印刷装置Ａには１，２，３・・・の順で印刷データを転送し、第１グループの印刷装置Ｂには１０，９，８・・・の順で印刷データを転送していく。一方、第２グループの印刷装置Ｃには１１，１２，１３・・・の順で印刷データを転送し、第２グループの印刷装置Ｄには２０，１９，１８・・・の順で印刷データを転送していくことになる。
【００７５】
そして、各印刷装置Ａ，Ｂ，Ｃ，Ｄは、印刷データを受信し始めると、受信したページから順次印刷処理を実行するが、１ページの印刷データを受信するごとに、印刷を完了したページのページ番号を、ＰＣＩｅのEndpoint５からＰＣＩｅスイッチ３を介して印刷コントローラ１に通知する。
【００７６】
印刷コントローラ１は、各印刷装置Ａ，Ｂ，Ｃ，Ｄに印刷データを転送しながら、各印刷装置Ａ，Ｂ，Ｃ，Ｄから通知されてくるページ番号を受信する（ステップＳ９）。
【００７７】
ここで、印刷ジョブの転送処理実行中に、後からより優先度の高い印刷ジョブ（優先ジョブ）が投入された場合、印刷コントローラ１は、これを検知して（ステップＳ３１のＹｅｓ）、いずれかのグループの印刷装置に対する転送処理を中断し、優先ジョブの印刷データの転送に切り替えを行う（ステップＳ３２）。図１８に示す例では、第２グループの印刷装置Ｄを優先ジョブの印刷データの転送に切り替えた状態を示している。優先ジョブは、このまま印刷装置Ｄによってただちに印刷を開始するため、先に投入された印刷ジョブが全て完了するまで待たされることなく、印刷ジョブを完了することができる。また、このとき、第２ループの印刷装置Ｃは、そのまま先に投入された印刷ジョブの印刷データを印刷し続けているので、印刷装置Ｄが優先ジョブによって中断された状態でも、割り当てられた印刷ページ範囲すべての印刷データを印刷することが可能となる。
【００７８】
その後、１台目と２台目のページ番号が次のページで一致する状態が検出されたグループがある場合は（ステップＳ１０のＹｅｓ）、そのグループに対する印刷データの送信を完了する（ステップＳ１１）。各グループでは、２台の印刷装置がそれぞれ初めのページと終わりのページから印刷を進めているので、上の状態が検出された場合は、そのグループに割り当てたすべてのページの印刷が完了したことになる。以上の動作によって、印刷処理を進めすべてのグループにおける印刷処理が完了すると（ステップＳ１２のＹｅｓ）、すなわち投入された印刷ジョブのすべてのページの印刷が完了したことになり、全体の処理を終了する（ステップＳ１３）。
【００７９】
次に、第４の実施の形態に示した態様において、複数の印刷装置で印刷処理を実行している途中で、新たな印刷ジョブが投入された場合について説明する。
【００８０】
図２０は、本発明の第５の実施の形態にかかる画像形成システムにおけるデータの流れを示している。なお、図２０においては、図を単純化するために、印刷コントローラ１からのReadデータ転送のみを示し、印刷コントローラ１から印刷装置Ａ，Ｂ，Ｃ，Ｄに対する印刷指示と、印刷装置Ａ，Ｂ，Ｃ，Ｄから印刷コントローラ１に対するReadリクエストのフローの表示は省略する。
【００８１】
図２０に示すように、本実施の形態の印刷コントローラ１は、第４の実施の形態で示した態様において、複数の印刷装置で印刷処理を実行している途中で、新たな印刷ジョブが投入された場合は、印刷ジョブに指定されている優先度情報を検知し、印刷中のジョブよりも優先度が高い場合は、一部の印刷装置のジョブを停止させて、新たに投入された印刷ジョブを実行し、印刷を停止させなかった印刷装置では先に実行中だった印刷ジョブを継続して実行するものである。
【００８２】
図２１のフローチャートを参照しつつ具体例を説明する。なお、これらの動作は印刷コントローラ１のＣＰＵ６におけるソフトウェアで処理するか、または同等の動作をするハードウェアロジックにより実装する。なお、印刷コントローラ１にネットワーク１２経由で印刷ジョブが投入されて、ＨＤＤ８に全ページの印刷データが記録されるまでの動作は、前述した通りである。
【００８３】
まず、印刷コントローラ１は、ＨＤＤ８に全ページの印刷データが記録されると（ステップＳ２１〜Ｓ２５のＹｅｓ）、ＰＣＩｅスイッチ３に接続された印刷装置Ａ，Ｂ，Ｃ，Ｄすべてに対して、印刷ジョブの全ページを１ページ目（あるいは最終ページから逆順でも構わない）から順に１，２，３，４・・・ページの順で、印刷データを転送する処理を実行する（ステップＳ２６）。
【００８４】
各印刷装置Ａ，Ｂ，Ｃ，Ｄは、印刷データを受信し始めると、受信したページから順次印刷処理を実行するが、印刷ジョブの最後のページの印刷が完了受信するごとに、その時点で印刷を完了した部数を、ＰＣＩｅのEndpoint５からＰＣＩｅスイッチ３を介して印刷コントローラ１に通知する。
【００８５】
印刷コントローラ１は、各印刷装置Ａ，Ｂ，Ｃ，Ｄに印刷データを転送しながら、各印刷装置Ａ，Ｂ，Ｃ，Ｄから通知されてくる印刷部数を検出し（ステップＳ２７）、すべての印刷装置Ａ，Ｂ，Ｃ，Ｄから通知されてきた部数の合計値が印刷ジョブで指定された部数に達した時点で（ステップＳ２８のＹｅｓ）、全体の転送処理を終了する（ステップＳ２９）。
【００８６】
ここで、印刷ジョブの転送処理実行中に、後からより優先度の高い印刷ジョブ（優先ジョブ）が投入された場合、印刷コントローラ１は、これを検知して（ステップＳ４１のＹｅｓ）、いずれかのグループの印刷装置に対する転送処理を中断し、優先ジョブの印刷データの転送に切り替えを行う（ステップＳ４２）。図２０に示す例では、第２グループの印刷装置Ｄを優先ジョブの印刷データの転送に切り替えた状態を示しているが、印刷装置Ａ，Ｂ，Ｃは継続して、先に投入された印刷ジョブの印刷を実行し続けるので、優先ジョブと並行して、すべての部数の印刷を完了することが可能となる。
【００８７】
このように本実施の形態によれば、印刷中のジョブに対して優先したいジョブが後から投入された場合でも、一部の印刷装置のジョブを停止させて、新たに投入された印刷ジョブを実行し、印刷を停止させなかった印刷装置では先に実行中だった印刷ジョブを継続して実行するので、高速に双方の印刷ジョブを処理することができる。
【００８８】
［第６の実施の形態］
次に、本発明の第６の実施の形態を図２２ないし図２５に基づいて説明する。なお、前述した第１の実施の形態ないし第５の実施の形態と同じ部分は同じ符号で示し説明も省略する。すなわち、本発明の第６の実施の形態の印刷装置Ａ，Ｂ，Ｃ，Ｄも、前述したようにReadリクエストのスプリット数をレイテンシやプロッタ性能に応じて制御をするものを用いることを特徴とするものである。
【００８９】
まず、第３の実施の形態に示した態様において、複数の印刷装置において印刷処理を実行している途中で、紙つまり、消耗品（トナー、インク、紙）切れ、その他の故障による画像形成不可能な障害が発生した場合について説明する。
【００９０】
図２２は、本発明の第６の実施の形態にかかる画像形成システムにおけるデータの流れを示している。なお、図２２においては、図を単純化するために、印刷コントローラ１からのReadデータ転送のみを示し、印刷コントローラ１から印刷装置Ａ，Ｂ，Ｃ，Ｄに対する印刷指示と、印刷装置Ａ，Ｂ，Ｃ，Ｄから印刷コントローラ１に対するReadリクエストのフローの表示は省略する。
【００９１】
図２２に示すように、本実施の形態の印刷コントローラ１は、第３の実施の形態で示した態様において、複数の印刷装置において印刷処理を実行している途中で、紙つまり、消耗品（トナー、インク、紙）切れ、その他の故障による画像形成不可能な障害が発生した場合、これを検知した印刷装置のジョブを停止し、印刷を停止させなかった印刷装置では実行中だった印刷ジョブを継続して実行するものである。
【００９２】
図２３のフローチャートを参照しつつ具体例を説明する。なお、これらの動作は印刷コントローラ１のＣＰＵ６におけるソフトウェアで処理するか、または同等の動作をするハードウェアロジックにより実装する。なお、印刷コントローラ１にネットワーク１２経由で印刷ジョブが投入されて、ＨＤＤ８に全ページの印刷データが記録されるまでの動作は、前述した通りである。
【００９３】
まず、印刷コントローラ１は、ＨＤＤ８に全ページの印刷データが記録されると（ステップＳ１〜Ｓ５のＹｅｓ）、ＰＣＩｅスイッチ３に接続された印刷装置Ａ，Ｂ，Ｃ，Ｄを、印刷装置Ａ，Ｂで構成される第１グループと、印刷装置Ｃ，Ｄで構成される第２グループにグループ分けする（ステップＳ６）。
【００９４】
次に、印刷コントローラ１は、各グループが印刷するページ範囲を、各印刷装置の性能に基づいて決定する（ステップＳ７）。図２２に示す例では、印刷装置Ａ，Ｂ，Ｃ，Ｄの性能が全て同じであるとして、第１グループおよび第２グループに対して均等に２０ページのジョブのうち、１０ページずつ割り当てている（すなわち、第１グループに１〜１０ページを割り当て、第２グループに１１〜２０ページを割り当てることとする）。もし、各印刷装置の性能が均等でない場合は、その速度によってグループ分けと、印刷ページ範囲を割り付けることが望ましい。一例として、性能の高い順に２台ずつグループ分けし、各グループの印刷装置の性能の合計の比率に応じて、性能の高いグループには広い印刷ページ範囲を割り当て、性能の低いグループには狭い印刷ページ範囲を割り当てることで、印刷ジョブ全体の印刷が完了する時間を短くすることができる。
【００９５】
印刷装置のグループ分けと、ページ範囲の割り当てが完了した後、印刷コントローラ１は、ＨＤＤ８から各印刷装置Ａ，Ｂ，Ｃ，Ｄへ印刷データを転送する処理を実行する（ステップＳ８）。
【００９６】
ここで、各グループのうち、１台目の印刷装置には、割り当てられた印刷ページ範囲のはじめのページから昇順に印刷データを転送していき、２台目の印刷装置には、１台目とは逆に割り当てられた印刷ページ範囲の最後のページから逆順に印刷データを転送していくように、制御を実行する。図２２に示す例では、第１グループの印刷装置Ａには１，２，３・・・の順で印刷データを転送し、第１グループの印刷装置Ｂには１０，９，８・・・の順で印刷データを転送していく。一方、第２グループの印刷装置Ｃには１１，１２，１３・・・の順で印刷データを転送し、第２グループの印刷装置Ｄには２０，１９，１８・・・の順で印刷データを転送していくことになる。
【００９７】
そして、各印刷装置Ａ，Ｂ，Ｃ，Ｄは、印刷データを受信し始めると、受信したページから順次印刷処理を実行するが、１ページの印刷データを受信するごとに、印刷を完了したページのページ番号を、ＰＣＩｅのEndpoint５からＰＣＩｅスイッチ３を介して印刷コントローラ１に通知する。
【００９８】
印刷コントローラ１は、各印刷装置Ａ，Ｂ，Ｃ，Ｄに印刷データを転送しながら、各印刷装置Ａ，Ｂ，Ｃ，Ｄから通知されてくるページ番号を受信する（ステップＳ９）。
【００９９】
ここで、印刷ジョブの転送処理実行中に、いずれかの印刷装置において、故障や消耗品切れの障害が発生した場合がある。図２２に示す例では、第２グループの印刷装置Ｄにおいて、障害が発生したものとする。印刷装置Ｄは、印刷ジョブの印刷中に故障／消耗品切れを発生した場合、印刷処理を停止するとともに、故障／消耗品切れをＰＣＩｅのEndpoint５からＰＣＩｅスイッチ３を介して印刷コントローラ１に通知する。なお、他の印刷装置についても、障害発生時には同様に印刷コントローラ１に故障／消耗品切れを通知する。
【０１００】
そして、印刷ジョブの転送処理実行中に、故障／消耗品切れ通知を受信した場合、印刷コントローラ１は、これを検知して（ステップＳ５１のＹｅｓ）、通知元の印刷装置に対する印刷データ転送処理を停止する（ステップＳ５２）。図２２に示す例では、第２グループの印刷装置Ｄに対する印刷データの転送を中断する。このとき、第２グループの印刷装置Ｃは、そのまま先に投入された印刷ジョブの印刷データを印刷し続けているので、印刷装置Ｄが印刷途中で中断された状態でも、割り当てられた印刷ページ範囲すべての印刷データをそのまま印刷することが可能となる。
【０１０１】
その後、１台目と２台目のページ番号が次のページで一致する状態が検出されたグループがある場合は（ステップＳ１０のＹｅｓ）、そのグループに対する印刷データの送信を完了する（ステップＳ１１）。各グループでは、２台の印刷装置がそれぞれ初めのページと終わりのページから印刷を進めているので、上の状態が検出された場合は、そのグループに割り当てたすべてのページの印刷が完了したことになる。以上の動作によって、印刷処理を進めすべてのグループにおける印刷処理が完了すると（ステップＳ１２のＹｅｓ）、すなわち投入された印刷ジョブのすべてのページの印刷が完了したことになり、全体の処理を終了する（ステップＳ１３）。
【０１０２】
次に、第４の実施の形態に示した態様において、複数の印刷装置において印刷処理を実行している途中で、紙つまり、消耗品（トナー、インク、紙）切れ、その他の故障による障害が発生した場合について説明する。
【０１０３】
図２４は、本発明の第６の実施の形態にかかる画像形成システムにおけるデータの流れを示している。なお、図２４においては、図を単純化するために、印刷コントローラ１からのReadデータ転送のみを示し、印刷コントローラ１から印刷装置Ａ，Ｂ，Ｃ，Ｄに対する印刷指示と、印刷装置Ａ，Ｂ，Ｃ，Ｄから印刷コントローラ１に対するReadリクエストのフローの表示は省略する。
【０１０４】
図２４に示すように、本実施の形態の印刷コントローラ１は、第４の実施の形態で示した態様において、複数の印刷装置において印刷処理を実行している途中で、紙つまり、消耗品（トナー、インク、紙）切れ、その他の故障による画像形成不可能な障害が発生した場合、これを検知した印刷装置のジョブを停止し、印刷を停止させなかった印刷装置では実行中だった印刷ジョブを継続して実行するものである。
【０１０５】
図２５のフローチャートを参照しつつ具体例を説明する。なお、これらの動作は印刷コントローラ１のＣＰＵ６におけるソフトウェアで処理するか、または同等の動作をするハードウェアロジックにより実装する。なお、印刷コントローラ１にネットワーク１２経由で印刷ジョブが投入されて、ＨＤＤ８に全ページの印刷データが記録されるまでの動作は、前述した通りである。
【０１０６】
まず、印刷コントローラ１は、ＨＤＤ８に全ページの印刷データが記録されると（ステップＳ２１〜Ｓ２５のＹｅｓ）、ＰＣＩｅスイッチ３に接続された印刷装置Ａ，Ｂ，Ｃ，Ｄすべてに対して、印刷ジョブの全ページを１ページ目（あるいは最終ページから逆順でも構わない）から順に１，２，３，４・・・ページの順で、印刷データを転送する処理を実行する（ステップＳ２６）。
【０１０７】
各印刷装置Ａ，Ｂ，Ｃ，Ｄは、印刷データを受信し始めると、受信したページから順次印刷処理を実行するが、印刷ジョブの最後のページの印刷が完了受信するごとに、その時点で印刷を完了した部数を、ＰＣＩｅのEndpoint５からＰＣＩｅスイッチ３を介して印刷コントローラ１に通知する。
【０１０８】
印刷コントローラ１は、各印刷装置Ａ，Ｂ，Ｃ，Ｄに印刷データを転送しながら、各印刷装置Ａ，Ｂ，Ｃ，Ｄから通知されてくる印刷部数を検出し（ステップＳ２７）、すべての印刷装置Ａ，Ｂ，Ｃ，Ｄから通知されてきた部数の合計値が印刷ジョブで指定された部数に達した時点で（ステップＳ２８のＹｅｓ）、全体の転送処理を終了する（ステップＳ２９）。
【０１０９】
ここで、印刷ジョブの転送処理実行中に、故障／消耗品切れ通知を受信した場合、印刷コントローラ１は、これを検知して（ステップＳ６１のＹｅｓ）、通知元の印刷装置に対する印刷データ転送処理を停止する（ステップＳ６２）。図２４に示す例では、第２グループの印刷装置Ｄに対する印刷データの転送を中断する。このとき、第２グループの印刷装置Ｃは、そのまま先に投入された印刷ジョブの印刷データを印刷し続けているので、印刷装置Ｄが印刷途中で中断された状態でも、割り当てられた印刷ページ範囲すべての印刷データをそのまま印刷することが可能となる。
【０１１０】
このように本実施の形態によれば、印刷装置において印刷処理を実行している途中で、紙つまり、消耗品（トナー、インク、紙）切れ、その他の故障による印刷不可能な障害が発生した場合、障害を検知した印刷装置のジョブを停止し、印刷を停止させなかった印刷装置で実行中だった印刷ジョブを継続して実行するので、高速に双方の印刷ジョブを処理することができる。
【図面の簡単な説明】
【０１１１】
【図１】本発明の第１の実施の形態にかかる画像形成システムの構成を示すブロック図である。
【図２】印刷用の画像データがＨＤＤに格納されるまでのデータの流れを示す模式図である。
【図３】印刷時のデータの流れを示す模式図である。
【図４】スプリット数が“１”である場合の動作例を示すタイミングチャートである。
【図５】スプリット数が“２”である場合の動作例を示すタイミングチャートである。
【図６】スプリット数が“２”である場合の動作例を示すタイミングチャートである。
【図７】スプリット数が“３”である場合の動作例を示すタイミングチャートである。
【図８】本発明の第２の実施の形態にかかるレイテンシとスプリット数の関係を示すグラフである。
【図９】プロッタの最大データ転送帯域とスプリット数の関係を示すグラフである。
【図１０】スプリット数と、レイテンシおよびプロッタ帯域の関係を示すグラフである。
【図１１】プロッタ起動数とレイテンシの関係を示すグラフである。
【図１２】プロッタ起動数とレイテンシの関係を示す模式図である。
【図１３】画像形成システムの構成の変形例を示すブロック図である。
【図１４】本発明の第３の実施の形態にかかる画像形成システムにおけるデータの流れを示す模式図である。
【図１５】印刷処理の流れを示すフローチャートである。
【図１６】本発明の第４の実施の形態にかかる画像形成システムにおけるデータの流れを示す模式図である。
【図１７】印刷処理の流れを示すフローチャートである。
【図１８】本発明の第５の実施の形態にかかる画像形成システムにおけるデータの流れを示す模式図である。
【図１９】印刷処理の流れを示すフローチャートである。
【図２０】画像形成システムにおけるデータの流れを示す模式図である。
【図２１】印刷処理の流れを示すフローチャートである。
【図２２】本発明の第６の実施の形態にかかる画像形成システムにおけるデータの流れを示す模式図である。
【図２３】印刷処理の流れを示すフローチャートである。
【図２４】画像形成システムにおけるデータの流れを示す模式図である。
【図２５】印刷処理の流れを示すフローチャートである。
【符号の説明】
【０１１２】
１        制御手段
６        ＣＰＵ
１０      メモリ
１２      ネットワーク
２１      画像形成手段
２２      ＤＭＡＣ
【図１】
2010067201.tif 000003
【図２】
2010067201.tif 000004
【図３】
2010067201.tif 000005
【図４】
2010067201.tif 000006
【図５】
2010067201.tif 000007
【図６】
2010067201.tif 000008
【図７】
2010067201.tif 000009
【図８】
2010067201.tif 000010
【図９】
2010067201.tif 000011
【図１０】
2010067201.tif 000012
【図１１】
2010067201.tif 000013
【図１２】
2010067201.tif 000014
【図１３】
2010067201.tif 000015
【図１４】
2010067201.tif 000016
【図１５】
2010067201.tif 000017
【図１６】
2010067201.tif 000018
【図１７】
2010067201.tif 000019
【図１８】
2010067201.tif 000020
【図１９】
2010067201.tif 000021
【図２０】
2010067201.tif 000022
【図２１】
2010067201.tif 000023
【図２２】
2010067201.tif 000024
【図２３】
2010067201.tif 000025
【図２４】
2010067201.tif 000026
【図２５】
2010067201.tif 000027