画像形成システムおよびプログラム
【課題】ネットワーク経由の印刷ジョブ分散処理全体の性能を向上させることができる画像形成システムおよびプログラムを提供する。
【解決手段】印刷装置A(B,C,D)は、各画像形成手段21が印刷コントローラ1に対して画像データのリクエストを発行する際のスプリット数を、画像データ転送に要するリクエストのレイテンシ(遅延時間)に応じて変更する(例えば、レイテンシが大きいほどリクエストのスプリット数を増やし、レイテンシが小さいほどリクエストのスプリット数を減らす)。これにより、複数の画像形成手段21で分散処理を行ってレイテンシが増大する場合でも、最大のデータ転送レートで画像データを転送することができるので、ネットワーク経由の印刷ジョブ分散処理全体の性能を向上させることができる。
【解決手段】印刷装置A(B,C,D)は、各画像形成手段21が印刷コントローラ1に対して画像データのリクエストを発行する際のスプリット数を、画像データ転送に要するリクエストのレイテンシ(遅延時間)に応じて変更する(例えば、レイテンシが大きいほどリクエストのスプリット数を増やし、レイテンシが小さいほどリクエストのスプリット数を減らす)。これにより、複数の画像形成手段21で分散処理を行ってレイテンシが増大する場合でも、最大のデータ転送レートで画像データを転送することができるので、ネットワーク経由の印刷ジョブ分散処理全体の性能を向上させることができる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像形成システムおよびプログラムに関する。
【背景技術】
【0002】
特許文献1に開示されている分散印刷システムは、1つの印刷ジョブを複数の分散ジョブに分割し、ネットワークに接続された複数のプリンタを用いて印刷するものである。この際、印刷ジョブの属性情報を検出し、検出した印刷ジョブの属性をもとに、該印刷ジョブに部単位印刷が指定されている場合には部単位で分割し、部単位印刷が設定されていない場合には頁単位で分割することを特徴とするものである。
【0003】
また、特許文献2に開示されている画像形成システムは、1つ以上のプリンタにより構成されるグループの各プリンタにページ単位でデータを分割した各画像形成ジョブを各プリンタに振り分けて実行させ、各プリンタに振り分けた画像形成ジョブがほぼ同時に終了するように画像形成ジョブを分割することで、複数のプリンタに印刷データを分割し分散させて印刷する場合の印刷時間を短縮する。
【0004】
【特許文献1】特開2006−024005号公報
【特許文献2】特開2006−178884号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に開示されている分散印刷システムでは、ネットワーク経由で印刷ジョブの制御を行うため、印刷用に展開された大量の画像データを高速に転送することが不可能である。このため、印刷ジョブの分散は中間言語の状態で転送する必要があり、各プリンタの印刷コントローラが別々に必要となっている。すなわち、独立したプリンタを複数接続することになり、高速なプリンタシステムに対してコストが安くならないという問題がある。また、分散ジョブの一部で障害が発生した場合や、印刷速度にばらつきがある場合、あるいは先行して印刷している印刷ジョブよりも優先させたい印刷ジョブを投入したい場合などにシステム全体の性能が上がらないという問題を有する。
【0006】
そこで、従来のネットワーク経由の印刷ジョブ分散技術をPCI Express等をはじめとする高速シリアル伝送路による画像データ通信にそのまま適用することも考えられるが、データ転送リクエストに対してデータが送信されてくるまでのレイテンシ(遅延時間)の影響により、意図したデータ転送帯域が得られないという問題を有する。たとえば、特許文献2に開示されている画像形成システムで、複数の印刷装置に対して各印刷装置の性能比に従ってジョブを配分しても、複数の印刷装置が一本のシリアル転送路を競合してデータ転送に使用するため、データ転送に要するレイテンシが増加することで、各印刷装置で所望の性能が得られなくなり、全体の印刷ジョブ処理性能が低下する問題が発生する。
【0007】
本発明は、上記に鑑みてなされたものであって、ネットワーク経由の印刷ジョブ分散処理全体の性能を向上させることができる画像形成システムおよびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上述した課題を解決し、目的を達成するために、本発明の画像形成システムは、画像データを記憶するメモリと、システム全体を制御するCPUを介さずに前記メモリとの間でデータ転送を行うDMAC(Direct Memory Access Controller)を有し、前記メモリに記憶された前記画像データの画像形成を行う単一または複数の画像形成手段と、前記画像形成手段に対して高速シリアル伝送路を介して接続され、ネットワーク経由で投入された印刷ジョブにかかる前記画像データを前記メモリに記憶するとともに、前記DMACが発行するリクエストによって要求された前記画像データを、前記メモリから要求元の前記画像形成手段に転送する制御手段と、を備え、前記画像形成手段は、所定のリクエストに対する前記画像データが前記制御手段から戻ってくる間に続けて発行される後続のリクエストの個数であるリクエストのスプリット数を、前記画像形成手段が動作している状態におけるリクエストに対する前記画像データを受け取るまでの遅延時間であるリクエストのレイテンシに応じて変更する。
【0009】
また、本発明のプログラムは、コンピュータを、画像データを記憶するメモリとの間でシステム全体を制御するCPUを介さずにデータ転送を行うDMAC(Direct Memory Access Controller)を有し、前記メモリに記憶された前記画像データの画像形成を行う単一または複数の画像形成手段に対して、高速シリアル伝送路を介して接続され、ネットワーク経由で投入された印刷ジョブにかかる前記画像データを前記メモリに記憶するとともに、前記DMACが発行するリクエストによって要求された前記画像データを、前記メモリから要求元の前記画像形成手段に転送する制御手段として機能させるためのプログラムであって、前記画像形成手段は、所定のリクエストに対する前記画像データが前記制御手段から戻ってくる間に続けて発行される後続のリクエストの個数であるリクエストのスプリット数を、前記画像形成手段が動作している状態におけるリクエストに対する前記画像データを受け取るまでの遅延時間であるリクエストのレイテンシに応じて変更する。
【発明の効果】
【0010】
本発明によれば、各画像形成手段が制御手段に対して画像データのリクエストを発行する際のスプリット数を、画像データ転送に要するリクエストのレイテンシ(遅延時間)に応じて変更する(例えば、レイテンシが大きいほどリクエストのスプリット数を増やし、レイテンシが小さいほどリクエストのスプリット数を減らす)ことにより、複数の画像形成手段で分散処理を行ってレイテンシが増大する場合でも、最大のデータ転送レートで画像データを転送することができるので、ネットワーク経由の印刷ジョブ分散処理全体の性能を向上させることができる、という効果を奏する。
【発明を実施するための最良の形態】
【0011】
以下に添付図面を参照して、この発明にかかる画像形成システムおよびプログラムの最良な実施の形態を詳細に説明する。
【0012】
[第1の実施の形態]
本発明の第1の実施の形態を図1ないし図7に基づいて説明する。図1は、本発明の第1の実施の形態にかかる画像形成システムの構成を示すブロック図である。図1に示す画像形成システムは、制御手段として機能する1台の印刷コントローラ1に対して4台の印刷装置A,B,C,Dを、シリアル伝送路2とスイッチ3とを経由して接続している。シリアル伝送路としては、大量の印刷データを高速に転送できる高速シリアルインターフェース(PCI Express(以降、PCIeと記載する))を用いる。したがって、本実施の形態のスイッチ3は、PCIeスイッチである。このように、1台の印刷コントローラ1に対して4台の印刷装置A,B,C,Dを、PCIeを用いたシリアル伝送路2とスイッチ3とを経由して接続することにより、大量の印刷ジョブを高速かつ低コストで印刷することができる。
【0013】
ここで、印刷コントローラ1のPCIe接続ポートはRootComplex4となり、各印刷装置A,B,C,DのPCIe接続ポートはEndpoint5となる。
【0014】
印刷コントローラ1には、印刷ジョブ制御などの各種制御を実行するCPU6が実装されている。CPU6は、HDD I/F7を介してHDD(Hard Disk Drive)8と接続されるとともに、メモリI/F9を介してメモリ10に接続されている。また、CPU6は、ネットワークI/F11を介してネットワーク12に接続されている。なお、HDD8は、大量の印刷ジョブ全体の印刷データが記録できる容量をもつ記録装置であれば、他の記録装置(例えばフラッシュメモリを搭載したメモリカード等)に置き換えても構わない。
【0015】
次に、1つの印刷ジョブを1台の印刷装置(例えば、印刷装置A)で実行する基本的な動作を説明する。
【0016】
図2は、印刷ジョブが印刷コントローラ1に投入されて、印刷用の画像データがHDD8に格納されるまでのデータの流れを示している。図2に示すように、はじめに印刷ジョブはネットワーク12を経由して印刷コントローラ1に送信されてくる。ここで、印刷ジョブは画像データよりも容量の少ない、印刷言語データであるものとする。印刷言語はCPU6のソフトウェアによる展開処理によって、印刷用の画像データに変換され、1ページ単位でメモリ10に書き込まれる。メモリ10に書き込まれた印刷データは、順次HDD8に転送された後、消去されるものとする。CPU6の展開処理が全て完了すると、印刷ジョブに含まれる全てのページの画像データがHDD8に記録される。
【0017】
図3は、印刷時のデータの流れを示している。印刷時の概略的な流れとしては、印刷コントローラ1が、HDD8内部の印刷用データを1ページずつPCIeのRootComplex4に転送し、印刷用データはRootComplex4からPCIeスイッチ3を経由して印刷装置Aに転送されて紙に印刷される、というものである。以下において、詳細に説明する。
【0018】
なお、図3に示すように、印刷装置A(B,C,D)は、画像形成手段として機能する例えば電子写真方式のプロッタユニット21と、CPU6を介さずにメモリ10との間でデータ転送を行うDMAC(Direct Memory Access Controller)22と、レイテンシ検出部23と、スプリット発行制御部24とを備えている。
【0019】
図3に示すように、印刷時における印刷コントローラ1は、印刷装置Aのプロッタユニット21に対して、印刷指示情報をPCIe2およびPCIeスイッチ3を経由するメモリWriteパケットによって送信する(図3に示す(1))。
【0020】
印刷指示を受信したプロッタユニット21は、DMAC22に対して起動信号を送信する。起動信号を受けたDMAC22は、印刷コントローラ1に対して、PCIe Endpoint5を経由して、メモリReadリクエストによって画像データの転送をリクエストする(図3に示す(2))。加えて、DMAC22は、レイテンシ検出部23に対して、Readリクエストを発行した時間情報を通知する。なお、PCIe2はシリアルのパケット転送を処理するため、DMAC22は印刷ジョブ全体を構成する画像データを、例えば128Byteの小さいサイズの単位に分割して、複数のメモリReadリクエストとして転送要求を発行する。
【0021】
Readリクエストは、印刷コントローラ1のRootComplex4を介して印刷データを記憶するHDD8に届く。そして、RootComplex4には、要求されたReadリクエストに対する印刷データがHDD8から転送される。RootComplex4に転送された印刷データは、PCIe2およびPCIeスイッチ3を経由してDMAC22に転送される。
【0022】
DMAC22は、Readデータを受信した際に、DMAC22から受け取ったReadデータが転送されてくるまでの受信時間情報をレイテンシ検出部23に通知する。DMAC22は、さらに受信したReadデータを、画像データとしてプロッタユニット21に転送し、紙に画像データが順次印刷する(図3に示す(3))。
【0023】
レイテンシ検出部23は、DMAC22から受け取ったReadリクエストを発行した時間情報と、DMAC22から受け取ったReadデータが転送されてくるまでの受信時間情報とから、リクエスト発行からデータ受信にかかったレイテンシ(遅延時間)を検出して、スプリット発行制御部24に通知する。ここで、Readリクエストのレイテンシ(または、単にレイテンシ)は、Readリクエストに対するReadデータが到着するまでにかかる時間をいう。
【0024】
スプリット発行制御部24は、レイテンシ検出部23から受信したレイテンシに応じて、DMAC22に対してReadリクエストを発行する際のスプリット発行数を通知する。なお、スプリット発行制御部24の動作の詳細については、後述する。
【0025】
DMAC22は、通知を受けたスプリット発行数にしたがって、Readリクエストを発行する際のスプリット数を決定する。ここで、Readリクエストのスプリット発行数(または、スプリット数)は、あるReadリクエストに対するReadデータが、要求先から戻ってくる前に続けて発行する、後続のReadリクエストの個数をいう。
【0026】
ここで、スプリット数、Readリクエストおよび印刷装置に対するReadデータの転送レートの関係について、図4〜図7のタイミングチャートを用いて説明する。
【0027】
図4は、スプリット数が“1”である場合の動作例を示すタイミングチャートである。図4に示すように、スプリット数が“1”の場合、一つのReadリクエスト1を発行した後、ReadデータD1を受信するまで、次のReadリクエスト2を発行しない。このため、レイテンシが発生すると、図4のタイミングチャートに示すようにReadデータD1,D2,D3…のパケットを受信に間隔が生じて、データ転送帯域が狭くなる。図4に示す例では、半分程度に転送レートが低下する。
【0028】
図5は、スプリット数を“2”に増やした例である。スプリット数が“2”の場合、印刷装置からは初めのReadデータD1が転送されてくる前に2つのリクエスト1,2を発行する。このため、ReadデータD1,D2のパケットは、間隔を空けずに転送されてくる。ReadデータD1を受信した時点で、次のReadリクエスト3が発行されるので、ReadデータD2,D3以降のReadデータも間隔を空けずに転送されつづけて、最大の実効帯域が得られるようになる。図5に示す例では、100%の効率でデータ転送が行われる。
【0029】
図6は、スプリット数が“2”で、さらにレイテンシが大きくなった場合の例を示すタイミングチャートである。レイテンシが大きくなることで、印刷装置からのReadリクエスト2とReadリクエスト3の間隔が広がるため、受信するReadデータD2とReadデータD3の間隔に隙間が生じてしまう。このため、レイテンシが大きくなる場合の転送帯域は、2/3程度に悪化することがある。
【0030】
そこで、レイテンシが大きくなる場合、図7に示す例のように、スプリット数を“3”に増やせば、Readデータパケットが隙間なく受信できて、最大の転送効率が得られるようになる。
【0031】
このため、スプリット発行制御部24では、レイテンシに応じてDMAC22の発行するReadリクエストのスプリット数を、レイテンシが大きいほどスプリット数を増やし、レイテンシが小さいほどスプリット数を減らすように、スプリット数を算出する。
【0032】
このように本実施の形態によれば、各印刷装置は、各プロッタユニット21が印刷コントローラ1に対して画像データのリクエストを発行する際のスプリット数を、画像データ転送に要するリクエストのレイテンシ(遅延時間)に応じて変更する(例えば、レイテンシが大きいほどリクエストのスプリット数を増やし、レイテンシが小さいほどリクエストのスプリット数を減らす)ことにより、複数のプロッタユニット21で分散処理を行ってレイテンシが増大する場合でも、最大のデータ転送レートで画像データを転送することができるので、ネットワーク経由の印刷ジョブ分散処理全体の性能を向上させることができる。
【0033】
[第2の実施の形態]
次に、本発明の第2の実施の形態を図8ないし図13に基づいて説明する。なお、前述した第1の実施の形態と同じ部分は同じ符号で示し説明も省略する。
【0034】
第2の実施の形態で説明した画像形成システムにおいて、レイテンシが小さいほどスプリット数を減らすのは、複数の印刷装置が同時に動作した場合に、印刷性能の低い印刷装置が過剰な数のReadリクエストを印刷コントローラ1に対して、発行することを抑制するためである。しかしながら、遅い印刷装置のReadリクエストのスプリット数が多すぎる場合には、印刷コントローラ1やPCIe2の内部バッファに遅い印刷装置からのReadリクエストが多数キューイングされて、Readデータの転送が完了するまで、バッファが開放されなくなる。このため、他の印刷性能の高い印刷装置からのReadデータ転送レートが低下する問題が発生する。
【0035】
そこで、本実施の形態においては、スプリット発行制御部24で、各印刷装置の最大印刷速度に必要なデータ転送帯域に応じて、DMAC22の発行するReadリクエストのスプリット数を、印刷性能が高い(画像形成にかかる最大データ転送帯域が広い)ほどスプリット数を増やし、印刷性能が低い(画像形成にかかる最大データ転送帯域が狭い)ほどスプリット数を減らすように、スプリット数を算出するようにしたものである。
【0036】
ここで、スプリット発行制御部24のスプリット数算出値の具体例について、図8〜図10を用いて説明する。
【0037】
図8は、Readリクエストのデータサイズが128Byteで、印刷装置のプロッタユニット21が1GB/sのデータ転送レートで最大性能を発揮する場合の、レイテンシとスプリット数の関係を示したものである。また、図9は、レイテンシが1024nsで、Readリクエストのデータサイズが128Byteである場合の、印刷装置のプロッタユニット21の最大データ転送帯域とスプリット数の関係を示したものである。
【0038】
スプリット数は、スプリット発行制御部24において、Readリクエストに対するReadデータのレイテンシと、パケット1つあたりのペイロードサイズと、プロッタユニット21の最大帯域とPCIe2(データ転送経路)の最大帯域から、以下の演算処理によって導出することができる。
スプリット数
=(レイテンシ(ns)/(1バイト転送時間(ns)×ペイロードサイズ(byte))*プロッタ帯域(GB/s)/PCIe帯域(GB/s)
【0039】
ここで、
1バイト転送時間(ns)=1/PCIe帯域(GB/s)
である。
【0040】
また、スプリット数の最小数は1であるため、演算結果が1よりも小さくなる場合は、スプリット数を1とすればよい。また、演算結果が整数とならない場合は、切り上げ処理によりスプリット数を決定すればよい。
【0041】
ここで、下記の条件を、具体例として挙げる。
PCIe帯域=1GB/s (PCIe規格の4レーン接続に相当する。1レーンでは片方向250MB/s)
プロッタ帯域=1GB/s
Readデータのペイロードサイズ=128Byte
レイテンシ=1024ns
上記の条件の場合は、
スプリット数
=1024(ns)/(1/1(GB/s)*128(byte))*1(GB/s)/1(GB/s)
=8個
となる。
【0042】
以上の演算により、スプリット発行制御部24からDMAC22に対して、スプリット数“8”を指示する信号が通知される。
【0043】
ここで、上記演算により導出されるスプリット数と、レイテンシおよびプロッタユニット21の帯域(性能)の関係を、図10に示す。図10に示すように、スプリット数を制御することによって、各プロッタユニット21の最大性能が発揮できるデータ転送レートで、印刷コントローラからReadデータを転送することが可能となる。
【0044】
以上のように、レイテンシ情報に応じてスプリット数を変更することは、特に複数の印刷装置による分散印刷処理を実行した際に有効である。これは、同時に起動している印刷装置(プロッタユニット21)の数によって、レイテンシが変化するためである。図11に示す例のように、印刷装置(プロッタユニット21)の起動数が多いほど、Readリクエストに対するレイテンシは増加する。これは、図12に示すように、一台の印刷装置(プロッタユニット21)だけを起動した場合に比べ、他の印刷装置(プロッタユニット21)を起動した場合、Readデータの転送が他の印刷装置(プロッタユニット21)のReadデータの転送に待たされている時間が、レイテンシに加算されるためである。
【0045】
このように本実施の形態によれば、各プロッタユニット21が印刷コントローラ1に対して画像データのリクエストを発行する際のスプリット数を、画像データ転送に要するリクエストのレイテンシ(遅延時間)に応じて変更する(例えば、画像形成にかかる最大データ転送帯域が広いほどスプリット数を増やし、最大データ転送帯域が狭いほどスプリット数を減らす)ことにより、複数のプロッタユニット21で分散処理を行ってレイテンシが増大する場合でも、最大のデータ転送レートで画像データを転送することができるので、ネットワーク経由の印刷ジョブ分散処理全体の性能を向上させることができる。
【0046】
なお、構成を簡易にする場合、印刷装置に対するスプリット数は、あらかじめレイテンシの予測値に基づいて、プロッタユニット21の起動時に印刷コントローラ1から直接指定するようにしてもよい。図13に示す例は、印刷装置にレイテンシ検出部とスプリット制御を設けず、印刷指示(図13に示す(1))の際に、同時にスプリット数をプロッタユニット21に対して通知する例である。この場合、起動するプロッタ数とレイテンシの値などが、印刷ジョブが完了するまで間、変化が無ければ、高速に印刷処理を実行することができる。しかしながら、印刷ジョブが不定期に投入され、レイテンシや起動プロッタ数が不規則に変化する場合は、図3に示すようなレイテンシ検出部23と、スプリット発行制御部24を設けることが望ましい。
【0047】
[第3の実施の形態]
次に、本発明の第3の実施の形態を図14および図15に基づいて説明する。なお、前述した第1の実施の形態または第2の実施の形態と同じ部分は同じ符号で示し説明も省略する。すなわち、本発明の第3の実施の形態の印刷装置A,B,C,Dも、前述したようにReadリクエストのスプリット数をレイテンシやプロッタ性能に応じて制御をするものを用いることを特徴とするものである。
【0048】
図14は、本発明の第3の実施の形態にかかる画像形成システムにおけるデータの流れを示している。なお、図14においては、図を単純化するために、印刷コントローラ1からのReadデータ転送のみを示し、印刷コントローラ1から印刷装置A,B,C,Dに対する印刷指示と、印刷装置A,B,C,Dから印刷コントローラ1に対するReadリクエストのフローの表示は省略する。
【0049】
図14に示すように、本実施の形態の印刷コントローラ1は、投入された印刷ジョブを複数の印刷装置A,B,C,Dに分割して印刷制御を実行し、その際、投入された印刷ジョブが複数のページから構成される場合は、一つの印刷ジョブを複数の印刷装置A,B,C,Dに対して分割して印刷制御をするものである。より詳細には、印刷コントローラ1は、印刷装置を2台一組としたグループに分け、各グループに対して複数のページからなる印刷範囲を指定し、さらに各グループの1台目の印刷装置は指定された印刷範囲の初めのページから順に印刷する制御を実行し、2台目の印刷装置は、最後のページから逆順に印刷する制御を実行するものである。
【0050】
図15のフローチャートを参照しつつ具体例を説明する。なお、これらの動作は印刷コントローラ1のCPU6におけるソフトウェアで処理するか、または同等の動作をするハードウェアロジックにより実装する。ここでは、説明を単純にするために、印刷ジョブが20ページの原稿で構成されるものとする。なお、印刷コントローラ1にネットワーク12経由で印刷ジョブが投入されて、HDD8に全ページの印刷データが記録されるまでの動作は、前述した通りである。
【0051】
まず、印刷コントローラ1は、HDD8に全ページの印刷データが記録されると(ステップS1〜S5のYes)、PCIeスイッチ3に接続された印刷装置A,B,C,Dを、印刷装置A,Bで構成されると、印刷装置C,Dで構成される第2グループにグループ分けする(ステップS6)。
【0052】
次に、印刷コントローラ1は、各グループが印刷するページ範囲を、各印刷装置の性能に基づいて決定する(ステップS7)。図14に示す例では、印刷装置A,B,C,Dの性能が全て同じであるとして、第1グループおよび第2グループに対して均等に20ページのジョブのうち、10ページずつ割り当てている(すなわち、第1グループに1〜10ページを割り当て、第2グループに11〜20ページを割り当てることとする)。もし、各印刷装置の性能が均等でない場合は、その速度によってグループ分けと、印刷ページ範囲を割り付けることが望ましい。一例として、性能の高い順に2台ずつグループ分けし、各グループの印刷装置の性能の合計の比率に応じて、性能の高いグループには広い印刷ページ範囲を割り当て、性能の低いグループには狭い印刷ページ範囲を割り当てることで、印刷ジョブ全体の印刷が完了する時間を短くすることができる。
【0053】
印刷装置のグループ分けと、ページ範囲の割り当てが完了した後、印刷コントローラ1は、HDD8から各印刷装置A,B,C,Dへ印刷データを転送する処理を実行する(ステップS8)。
【0054】
ここで、各グループのうち、1台目の印刷装置には、割り当てられた印刷ページ範囲のはじめのページから昇順に印刷データを転送していき、2台目の印刷装置には、1台目とは逆に割り当てられた印刷ページ範囲の最後のページから逆順に印刷データを転送していくように、制御を実行する。図14に示す例では、第1グループの印刷装置Aには1,2,3・・・の順で印刷データを転送し、第1グループの印刷装置Bには10,9,8・・・の順で印刷データを転送していく。一方、第2グループの印刷装置Cには11,12,13・・・の順で印刷データを転送し、第2グループの印刷装置Dには20,19,18・・・の順で印刷データを転送していくことになる。
【0055】
そして、各印刷装置A,B,C,Dは、印刷データを受信し始めると、受信したページから順次印刷処理を実行するが、1ページの印刷データを受信するごとに、印刷を完了したページのページ番号を、PCIeのEndpoint5からPCIeスイッチ3を介して印刷コントローラ1に通知する。
【0056】
印刷コントローラ1は、各印刷装置A,B,C,Dに印刷データを転送しながら、各印刷装置A,B,C,Dから通知されてくるページ番号を受信する(ステップS9)。もし、1台目と2台目のページ番号が次のページで一致する状態が検出されたグループがある場合は(ステップS10のYes)、そのグループに対する印刷データの送信を完了する(ステップS11)。各グループでは、2台の印刷装置がそれぞれ初めのページと終わりのページから印刷を進めているので、上の状態が検出された場合は、そのグループに割り当てたすべてのページの印刷が完了したことになる。以上の動作によって、印刷処理を進めすべてのグループにおける印刷処理が完了すると(ステップS12のYes)、すなわち投入された印刷ジョブのすべてのページの印刷が完了したことになり、全体の処理を終了する(ステップS13)。
【0057】
このように本実施の形態によれば、複数のページから構成される印刷ジョブを複数の印刷装置に対して分割して印刷制御を実行する際、印刷装置を2台を一組としたグループに分け、各グループに対して複数のページからなる印刷範囲を指定し、さらに各グループの1台目の印刷装置は指定された印刷範囲の初めのページから昇順に印刷し、2台目の印刷装置は、最後のページから逆順に印刷するため、各印刷装置の性能が異なっている場合でも、2台の印刷装置が常に停止することなく、最大の速度で印刷を完了することができる。
【0058】
[第4の実施の形態]
次に、本発明の第4の実施の形態を図16および図17に基づいて説明する。なお、前述した第1の実施の形態ないし第3の実施の形態と同じ部分は同じ符号で示し説明も省略する。すなわち、本発明の第4の実施の形態の印刷装置A,B,C,Dも、前述したようにReadリクエストのスプリット数をレイテンシやプロッタ性能に応じて制御をするものを用いることを特徴とするものである。
【0059】
図16は、本発明の第4の実施の形態にかかる画像形成システムにおけるデータの流れを示している。なお、図16においては、図を単純化するために、印刷コントローラ1からのReadデータ転送のみを示し、印刷コントローラ1から印刷装置A,B,C,Dに対する印刷指示と、印刷装置A,B,C,Dから印刷コントローラ1に対するReadリクエストのフローの表示は省略する。
【0060】
図16に示すように、本実施の形態の印刷コントローラ1は、投入された印刷ジョブが単一あるいは複数ページから構成される印刷ジョブを複数回繰り返して、多部印刷するものである場合は、投入された印刷ジョブと同一の印刷ジョブを複数の印刷装置に対して並行して印刷制御を実行するものである。
【0061】
図17のフローチャートを参照しつつ具体例を説明する。なお、これらの動作は印刷コントローラ1のCPU6におけるソフトウェアで処理するか、または同等の動作をするハードウェアロジックにより実装する。なお、印刷コントローラ1にネットワーク12経由で印刷ジョブが投入されて、HDD8に全ページの印刷データが記録されるまでの動作は、前述した通りである。
【0062】
まず、印刷コントローラ1は、HDD8に全ページの印刷データが記録されると(ステップS21〜S25のYes)、PCIeスイッチ3に接続された印刷装置A,B,C,Dすべてに対して、印刷ジョブの全ページを1ページ目(あるいは最終ページから逆順でも構わない)から順に1,2,3,4・・・ページの順で、印刷データを転送する処理を実行する(ステップS26)。
【0063】
各印刷装置A,B,C,Dは、印刷データを受信し始めると、受信したページから順次印刷処理を実行するが、印刷ジョブの最後のページの印刷が完了受信するごとに、その時点で印刷を完了した部数を、PCIeのEndpoint5からPCIeスイッチ3を介して印刷コントローラ1に通知する。
【0064】
印刷コントローラ1は、各印刷装置A,B,C,Dに印刷データを転送しながら、各印刷装置A,B,C,Dから通知されてくる印刷部数を検出し(ステップS27)、すべての印刷装置A,B,C,Dから通知されてきた部数の合計値が印刷ジョブで指定された部数に達した時点で(ステップS28のYes)、全体の転送処理を終了する(ステップS29)。
【0065】
このように本実施の形態によれば、投入された印刷ジョブが単一あるいは複数ページから構成される印刷ジョブを複数回繰り返して、多部数を印刷するものである場合は、投入された印刷ジョブと同一の印刷ジョブを複数の印刷装置に対して並行して印刷するため、各印刷装置の性能が異なっている場合でも、全ての印刷装置が常に停止することなく、最大の速度で印刷を完了することができる。
【0066】
[第5の実施の形態]
次に、本発明の第5の実施の形態を図18ないし図21に基づいて説明する。なお、前述した第1の実施の形態ないし第4の実施の形態と同じ部分は同じ符号で示し説明も省略する。すなわち、本発明の第5の実施の形態の印刷装置A,B,C,Dも、前述したようにReadリクエストのスプリット数をレイテンシやプロッタ性能に応じて制御をするものを用いることを特徴とするものである。
【0067】
まず、第3の実施の形態に示した態様において、複数の印刷装置で印刷処理を実行している途中で、新たな印刷ジョブが投入された場合について説明する。
【0068】
図18は、本発明の第5の実施の形態にかかる画像形成システムにおけるデータの流れを示している。なお、図18においては、図を単純化するために、印刷コントローラ1からのReadデータ転送のみを示し、印刷コントローラ1から印刷装置A,B,C,Dに対する印刷指示と、印刷装置A,B,C,Dから印刷コントローラ1に対するReadリクエストのフローの表示は省略する。
【0069】
図18に示すように、本実施の形態の印刷コントローラ1は、第3の実施の形態で示した態様において、複数の印刷装置で印刷処理を実行している途中で、新たな印刷ジョブが投入された場合は、印刷ジョブに指定されている優先度情報を検知し、印刷中のジョブよりも優先度が高い場合は、一部の印刷装置のジョブを停止させて、新たに投入された印刷ジョブを実行し、印刷を停止させなかった印刷装置では先に実行中だった印刷ジョブを継続して実行するものである。
【0070】
図19のフローチャートを参照しつつ具体例を説明する。なお、これらの動作は印刷コントローラ1のCPU6におけるソフトウェアで処理するか、または同等の動作をするハードウェアロジックにより実装する。なお、印刷コントローラ1にネットワーク12経由で印刷ジョブが投入されて、HDD8に全ページの印刷データが記録されるまでの動作は、前述した通りである。
【0071】
まず、印刷コントローラ1は、HDD8に全ページの印刷データが記録されると(ステップS1〜S5のYes)、PCIeスイッチ3に接続された印刷装置A,B,C,Dを、印刷装置A,Bで構成される第1グループと、印刷装置C,Dで構成される第2グループにグループ分けする(ステップS6)。
【0072】
次に、印刷コントローラ1は、各グループが印刷するページ範囲を、各印刷装置の性能に基づいて決定する(ステップS7)。図18に示す例では、印刷装置A,B,C,Dの性能が全て同じであるとして、第1グループおよび第2グループに対して均等に20ページのジョブのうち、10ページずつ割り当てている(すなわち、第1グループに1〜10ページを割り当て、第2グループに11〜20ページを割り当てることとする)。もし、各印刷装置の性能が均等でない場合は、その速度によってグループ分けと、印刷ページ範囲を割り付けることが望ましい。一例として、性能の高い順に2台ずつグループ分けし、各グループの印刷装置の性能の合計の比率に応じて、性能の高いグループには広い印刷ページ範囲を割り当て、性能の低いグループには狭い印刷ページ範囲を割り当てることで、印刷ジョブ全体の印刷が完了する時間を短くすることができる。
【0073】
印刷装置のグループ分けと、ページ範囲の割り当てが完了した後、印刷コントローラ1は、HDD8から各印刷装置A,B,C,Dへ印刷データを転送する処理を実行する(ステップS8)。
【0074】
ここで、各グループのうち、1台目の印刷装置には、割り当てられた印刷ページ範囲のはじめのページから昇順に印刷データを転送していき、2台目の印刷装置には、1台目とは逆に割り当てられた印刷ページ範囲の最後のページから逆順に印刷データを転送していくように、制御を実行する。図18に示す例では、第1グループの印刷装置Aには1,2,3・・・の順で印刷データを転送し、第1グループの印刷装置Bには10,9,8・・・の順で印刷データを転送していく。一方、第2グループの印刷装置Cには11,12,13・・・の順で印刷データを転送し、第2グループの印刷装置Dには20,19,18・・・の順で印刷データを転送していくことになる。
【0075】
そして、各印刷装置A,B,C,Dは、印刷データを受信し始めると、受信したページから順次印刷処理を実行するが、1ページの印刷データを受信するごとに、印刷を完了したページのページ番号を、PCIeのEndpoint5からPCIeスイッチ3を介して印刷コントローラ1に通知する。
【0076】
印刷コントローラ1は、各印刷装置A,B,C,Dに印刷データを転送しながら、各印刷装置A,B,C,Dから通知されてくるページ番号を受信する(ステップS9)。
【0077】
ここで、印刷ジョブの転送処理実行中に、後からより優先度の高い印刷ジョブ(優先ジョブ)が投入された場合、印刷コントローラ1は、これを検知して(ステップS31のYes)、いずれかのグループの印刷装置に対する転送処理を中断し、優先ジョブの印刷データの転送に切り替えを行う(ステップS32)。図18に示す例では、第2グループの印刷装置Dを優先ジョブの印刷データの転送に切り替えた状態を示している。優先ジョブは、このまま印刷装置Dによってただちに印刷を開始するため、先に投入された印刷ジョブが全て完了するまで待たされることなく、印刷ジョブを完了することができる。また、このとき、第2ループの印刷装置Cは、そのまま先に投入された印刷ジョブの印刷データを印刷し続けているので、印刷装置Dが優先ジョブによって中断された状態でも、割り当てられた印刷ページ範囲すべての印刷データを印刷することが可能となる。
【0078】
その後、1台目と2台目のページ番号が次のページで一致する状態が検出されたグループがある場合は(ステップS10のYes)、そのグループに対する印刷データの送信を完了する(ステップS11)。各グループでは、2台の印刷装置がそれぞれ初めのページと終わりのページから印刷を進めているので、上の状態が検出された場合は、そのグループに割り当てたすべてのページの印刷が完了したことになる。以上の動作によって、印刷処理を進めすべてのグループにおける印刷処理が完了すると(ステップS12のYes)、すなわち投入された印刷ジョブのすべてのページの印刷が完了したことになり、全体の処理を終了する(ステップS13)。
【0079】
次に、第4の実施の形態に示した態様において、複数の印刷装置で印刷処理を実行している途中で、新たな印刷ジョブが投入された場合について説明する。
【0080】
図20は、本発明の第5の実施の形態にかかる画像形成システムにおけるデータの流れを示している。なお、図20においては、図を単純化するために、印刷コントローラ1からのReadデータ転送のみを示し、印刷コントローラ1から印刷装置A,B,C,Dに対する印刷指示と、印刷装置A,B,C,Dから印刷コントローラ1に対するReadリクエストのフローの表示は省略する。
【0081】
図20に示すように、本実施の形態の印刷コントローラ1は、第4の実施の形態で示した態様において、複数の印刷装置で印刷処理を実行している途中で、新たな印刷ジョブが投入された場合は、印刷ジョブに指定されている優先度情報を検知し、印刷中のジョブよりも優先度が高い場合は、一部の印刷装置のジョブを停止させて、新たに投入された印刷ジョブを実行し、印刷を停止させなかった印刷装置では先に実行中だった印刷ジョブを継続して実行するものである。
【0082】
図21のフローチャートを参照しつつ具体例を説明する。なお、これらの動作は印刷コントローラ1のCPU6におけるソフトウェアで処理するか、または同等の動作をするハードウェアロジックにより実装する。なお、印刷コントローラ1にネットワーク12経由で印刷ジョブが投入されて、HDD8に全ページの印刷データが記録されるまでの動作は、前述した通りである。
【0083】
まず、印刷コントローラ1は、HDD8に全ページの印刷データが記録されると(ステップS21〜S25のYes)、PCIeスイッチ3に接続された印刷装置A,B,C,Dすべてに対して、印刷ジョブの全ページを1ページ目(あるいは最終ページから逆順でも構わない)から順に1,2,3,4・・・ページの順で、印刷データを転送する処理を実行する(ステップS26)。
【0084】
各印刷装置A,B,C,Dは、印刷データを受信し始めると、受信したページから順次印刷処理を実行するが、印刷ジョブの最後のページの印刷が完了受信するごとに、その時点で印刷を完了した部数を、PCIeのEndpoint5からPCIeスイッチ3を介して印刷コントローラ1に通知する。
【0085】
印刷コントローラ1は、各印刷装置A,B,C,Dに印刷データを転送しながら、各印刷装置A,B,C,Dから通知されてくる印刷部数を検出し(ステップS27)、すべての印刷装置A,B,C,Dから通知されてきた部数の合計値が印刷ジョブで指定された部数に達した時点で(ステップS28のYes)、全体の転送処理を終了する(ステップS29)。
【0086】
ここで、印刷ジョブの転送処理実行中に、後からより優先度の高い印刷ジョブ(優先ジョブ)が投入された場合、印刷コントローラ1は、これを検知して(ステップS41のYes)、いずれかのグループの印刷装置に対する転送処理を中断し、優先ジョブの印刷データの転送に切り替えを行う(ステップS42)。図20に示す例では、第2グループの印刷装置Dを優先ジョブの印刷データの転送に切り替えた状態を示しているが、印刷装置A,B,Cは継続して、先に投入された印刷ジョブの印刷を実行し続けるので、優先ジョブと並行して、すべての部数の印刷を完了することが可能となる。
【0087】
このように本実施の形態によれば、印刷中のジョブに対して優先したいジョブが後から投入された場合でも、一部の印刷装置のジョブを停止させて、新たに投入された印刷ジョブを実行し、印刷を停止させなかった印刷装置では先に実行中だった印刷ジョブを継続して実行するので、高速に双方の印刷ジョブを処理することができる。
【0088】
[第6の実施の形態]
次に、本発明の第6の実施の形態を図22ないし図25に基づいて説明する。なお、前述した第1の実施の形態ないし第5の実施の形態と同じ部分は同じ符号で示し説明も省略する。すなわち、本発明の第6の実施の形態の印刷装置A,B,C,Dも、前述したようにReadリクエストのスプリット数をレイテンシやプロッタ性能に応じて制御をするものを用いることを特徴とするものである。
【0089】
まず、第3の実施の形態に示した態様において、複数の印刷装置において印刷処理を実行している途中で、紙つまり、消耗品(トナー、インク、紙)切れ、その他の故障による画像形成不可能な障害が発生した場合について説明する。
【0090】
図22は、本発明の第6の実施の形態にかかる画像形成システムにおけるデータの流れを示している。なお、図22においては、図を単純化するために、印刷コントローラ1からのReadデータ転送のみを示し、印刷コントローラ1から印刷装置A,B,C,Dに対する印刷指示と、印刷装置A,B,C,Dから印刷コントローラ1に対するReadリクエストのフローの表示は省略する。
【0091】
図22に示すように、本実施の形態の印刷コントローラ1は、第3の実施の形態で示した態様において、複数の印刷装置において印刷処理を実行している途中で、紙つまり、消耗品(トナー、インク、紙)切れ、その他の故障による画像形成不可能な障害が発生した場合、これを検知した印刷装置のジョブを停止し、印刷を停止させなかった印刷装置では実行中だった印刷ジョブを継続して実行するものである。
【0092】
図23のフローチャートを参照しつつ具体例を説明する。なお、これらの動作は印刷コントローラ1のCPU6におけるソフトウェアで処理するか、または同等の動作をするハードウェアロジックにより実装する。なお、印刷コントローラ1にネットワーク12経由で印刷ジョブが投入されて、HDD8に全ページの印刷データが記録されるまでの動作は、前述した通りである。
【0093】
まず、印刷コントローラ1は、HDD8に全ページの印刷データが記録されると(ステップS1〜S5のYes)、PCIeスイッチ3に接続された印刷装置A,B,C,Dを、印刷装置A,Bで構成される第1グループと、印刷装置C,Dで構成される第2グループにグループ分けする(ステップS6)。
【0094】
次に、印刷コントローラ1は、各グループが印刷するページ範囲を、各印刷装置の性能に基づいて決定する(ステップS7)。図22に示す例では、印刷装置A,B,C,Dの性能が全て同じであるとして、第1グループおよび第2グループに対して均等に20ページのジョブのうち、10ページずつ割り当てている(すなわち、第1グループに1〜10ページを割り当て、第2グループに11〜20ページを割り当てることとする)。もし、各印刷装置の性能が均等でない場合は、その速度によってグループ分けと、印刷ページ範囲を割り付けることが望ましい。一例として、性能の高い順に2台ずつグループ分けし、各グループの印刷装置の性能の合計の比率に応じて、性能の高いグループには広い印刷ページ範囲を割り当て、性能の低いグループには狭い印刷ページ範囲を割り当てることで、印刷ジョブ全体の印刷が完了する時間を短くすることができる。
【0095】
印刷装置のグループ分けと、ページ範囲の割り当てが完了した後、印刷コントローラ1は、HDD8から各印刷装置A,B,C,Dへ印刷データを転送する処理を実行する(ステップS8)。
【0096】
ここで、各グループのうち、1台目の印刷装置には、割り当てられた印刷ページ範囲のはじめのページから昇順に印刷データを転送していき、2台目の印刷装置には、1台目とは逆に割り当てられた印刷ページ範囲の最後のページから逆順に印刷データを転送していくように、制御を実行する。図22に示す例では、第1グループの印刷装置Aには1,2,3・・・の順で印刷データを転送し、第1グループの印刷装置Bには10,9,8・・・の順で印刷データを転送していく。一方、第2グループの印刷装置Cには11,12,13・・・の順で印刷データを転送し、第2グループの印刷装置Dには20,19,18・・・の順で印刷データを転送していくことになる。
【0097】
そして、各印刷装置A,B,C,Dは、印刷データを受信し始めると、受信したページから順次印刷処理を実行するが、1ページの印刷データを受信するごとに、印刷を完了したページのページ番号を、PCIeのEndpoint5からPCIeスイッチ3を介して印刷コントローラ1に通知する。
【0098】
印刷コントローラ1は、各印刷装置A,B,C,Dに印刷データを転送しながら、各印刷装置A,B,C,Dから通知されてくるページ番号を受信する(ステップS9)。
【0099】
ここで、印刷ジョブの転送処理実行中に、いずれかの印刷装置において、故障や消耗品切れの障害が発生した場合がある。図22に示す例では、第2グループの印刷装置Dにおいて、障害が発生したものとする。印刷装置Dは、印刷ジョブの印刷中に故障/消耗品切れを発生した場合、印刷処理を停止するとともに、故障/消耗品切れをPCIeのEndpoint5からPCIeスイッチ3を介して印刷コントローラ1に通知する。なお、他の印刷装置についても、障害発生時には同様に印刷コントローラ1に故障/消耗品切れを通知する。
【0100】
そして、印刷ジョブの転送処理実行中に、故障/消耗品切れ通知を受信した場合、印刷コントローラ1は、これを検知して(ステップS51のYes)、通知元の印刷装置に対する印刷データ転送処理を停止する(ステップS52)。図22に示す例では、第2グループの印刷装置Dに対する印刷データの転送を中断する。このとき、第2グループの印刷装置Cは、そのまま先に投入された印刷ジョブの印刷データを印刷し続けているので、印刷装置Dが印刷途中で中断された状態でも、割り当てられた印刷ページ範囲すべての印刷データをそのまま印刷することが可能となる。
【0101】
その後、1台目と2台目のページ番号が次のページで一致する状態が検出されたグループがある場合は(ステップS10のYes)、そのグループに対する印刷データの送信を完了する(ステップS11)。各グループでは、2台の印刷装置がそれぞれ初めのページと終わりのページから印刷を進めているので、上の状態が検出された場合は、そのグループに割り当てたすべてのページの印刷が完了したことになる。以上の動作によって、印刷処理を進めすべてのグループにおける印刷処理が完了すると(ステップS12のYes)、すなわち投入された印刷ジョブのすべてのページの印刷が完了したことになり、全体の処理を終了する(ステップS13)。
【0102】
次に、第4の実施の形態に示した態様において、複数の印刷装置において印刷処理を実行している途中で、紙つまり、消耗品(トナー、インク、紙)切れ、その他の故障による障害が発生した場合について説明する。
【0103】
図24は、本発明の第6の実施の形態にかかる画像形成システムにおけるデータの流れを示している。なお、図24においては、図を単純化するために、印刷コントローラ1からのReadデータ転送のみを示し、印刷コントローラ1から印刷装置A,B,C,Dに対する印刷指示と、印刷装置A,B,C,Dから印刷コントローラ1に対するReadリクエストのフローの表示は省略する。
【0104】
図24に示すように、本実施の形態の印刷コントローラ1は、第4の実施の形態で示した態様において、複数の印刷装置において印刷処理を実行している途中で、紙つまり、消耗品(トナー、インク、紙)切れ、その他の故障による画像形成不可能な障害が発生した場合、これを検知した印刷装置のジョブを停止し、印刷を停止させなかった印刷装置では実行中だった印刷ジョブを継続して実行するものである。
【0105】
図25のフローチャートを参照しつつ具体例を説明する。なお、これらの動作は印刷コントローラ1のCPU6におけるソフトウェアで処理するか、または同等の動作をするハードウェアロジックにより実装する。なお、印刷コントローラ1にネットワーク12経由で印刷ジョブが投入されて、HDD8に全ページの印刷データが記録されるまでの動作は、前述した通りである。
【0106】
まず、印刷コントローラ1は、HDD8に全ページの印刷データが記録されると(ステップS21〜S25のYes)、PCIeスイッチ3に接続された印刷装置A,B,C,Dすべてに対して、印刷ジョブの全ページを1ページ目(あるいは最終ページから逆順でも構わない)から順に1,2,3,4・・・ページの順で、印刷データを転送する処理を実行する(ステップS26)。
【0107】
各印刷装置A,B,C,Dは、印刷データを受信し始めると、受信したページから順次印刷処理を実行するが、印刷ジョブの最後のページの印刷が完了受信するごとに、その時点で印刷を完了した部数を、PCIeのEndpoint5からPCIeスイッチ3を介して印刷コントローラ1に通知する。
【0108】
印刷コントローラ1は、各印刷装置A,B,C,Dに印刷データを転送しながら、各印刷装置A,B,C,Dから通知されてくる印刷部数を検出し(ステップS27)、すべての印刷装置A,B,C,Dから通知されてきた部数の合計値が印刷ジョブで指定された部数に達した時点で(ステップS28のYes)、全体の転送処理を終了する(ステップS29)。
【0109】
ここで、印刷ジョブの転送処理実行中に、故障/消耗品切れ通知を受信した場合、印刷コントローラ1は、これを検知して(ステップS61のYes)、通知元の印刷装置に対する印刷データ転送処理を停止する(ステップS62)。図24に示す例では、第2グループの印刷装置Dに対する印刷データの転送を中断する。このとき、第2グループの印刷装置Cは、そのまま先に投入された印刷ジョブの印刷データを印刷し続けているので、印刷装置Dが印刷途中で中断された状態でも、割り当てられた印刷ページ範囲すべての印刷データをそのまま印刷することが可能となる。
【0110】
このように本実施の形態によれば、印刷装置において印刷処理を実行している途中で、紙つまり、消耗品(トナー、インク、紙)切れ、その他の故障による印刷不可能な障害が発生した場合、障害を検知した印刷装置のジョブを停止し、印刷を停止させなかった印刷装置で実行中だった印刷ジョブを継続して実行するので、高速に双方の印刷ジョブを処理することができる。
【図面の簡単な説明】
【0111】
【図1】本発明の第1の実施の形態にかかる画像形成システムの構成を示すブロック図である。
【図2】印刷用の画像データがHDDに格納されるまでのデータの流れを示す模式図である。
【図3】印刷時のデータの流れを示す模式図である。
【図4】スプリット数が“1”である場合の動作例を示すタイミングチャートである。
【図5】スプリット数が“2”である場合の動作例を示すタイミングチャートである。
【図6】スプリット数が“2”である場合の動作例を示すタイミングチャートである。
【図7】スプリット数が“3”である場合の動作例を示すタイミングチャートである。
【図8】本発明の第2の実施の形態にかかるレイテンシとスプリット数の関係を示すグラフである。
【図9】プロッタの最大データ転送帯域とスプリット数の関係を示すグラフである。
【図10】スプリット数と、レイテンシおよびプロッタ帯域の関係を示すグラフである。
【図11】プロッタ起動数とレイテンシの関係を示すグラフである。
【図12】プロッタ起動数とレイテンシの関係を示す模式図である。
【図13】画像形成システムの構成の変形例を示すブロック図である。
【図14】本発明の第3の実施の形態にかかる画像形成システムにおけるデータの流れを示す模式図である。
【図15】印刷処理の流れを示すフローチャートである。
【図16】本発明の第4の実施の形態にかかる画像形成システムにおけるデータの流れを示す模式図である。
【図17】印刷処理の流れを示すフローチャートである。
【図18】本発明の第5の実施の形態にかかる画像形成システムにおけるデータの流れを示す模式図である。
【図19】印刷処理の流れを示すフローチャートである。
【図20】画像形成システムにおけるデータの流れを示す模式図である。
【図21】印刷処理の流れを示すフローチャートである。
【図22】本発明の第6の実施の形態にかかる画像形成システムにおけるデータの流れを示す模式図である。
【図23】印刷処理の流れを示すフローチャートである。
【図24】画像形成システムにおけるデータの流れを示す模式図である。
【図25】印刷処理の流れを示すフローチャートである。
【符号の説明】
【0112】
1 制御手段
6 CPU
10 メモリ
12 ネットワーク
21 画像形成手段
22 DMAC
【技術分野】
【0001】
本発明は、画像形成システムおよびプログラムに関する。
【背景技術】
【0002】
特許文献1に開示されている分散印刷システムは、1つの印刷ジョブを複数の分散ジョブに分割し、ネットワークに接続された複数のプリンタを用いて印刷するものである。この際、印刷ジョブの属性情報を検出し、検出した印刷ジョブの属性をもとに、該印刷ジョブに部単位印刷が指定されている場合には部単位で分割し、部単位印刷が設定されていない場合には頁単位で分割することを特徴とするものである。
【0003】
また、特許文献2に開示されている画像形成システムは、1つ以上のプリンタにより構成されるグループの各プリンタにページ単位でデータを分割した各画像形成ジョブを各プリンタに振り分けて実行させ、各プリンタに振り分けた画像形成ジョブがほぼ同時に終了するように画像形成ジョブを分割することで、複数のプリンタに印刷データを分割し分散させて印刷する場合の印刷時間を短縮する。
【0004】
【特許文献1】特開2006−024005号公報
【特許文献2】特開2006−178884号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に開示されている分散印刷システムでは、ネットワーク経由で印刷ジョブの制御を行うため、印刷用に展開された大量の画像データを高速に転送することが不可能である。このため、印刷ジョブの分散は中間言語の状態で転送する必要があり、各プリンタの印刷コントローラが別々に必要となっている。すなわち、独立したプリンタを複数接続することになり、高速なプリンタシステムに対してコストが安くならないという問題がある。また、分散ジョブの一部で障害が発生した場合や、印刷速度にばらつきがある場合、あるいは先行して印刷している印刷ジョブよりも優先させたい印刷ジョブを投入したい場合などにシステム全体の性能が上がらないという問題を有する。
【0006】
そこで、従来のネットワーク経由の印刷ジョブ分散技術をPCI Express等をはじめとする高速シリアル伝送路による画像データ通信にそのまま適用することも考えられるが、データ転送リクエストに対してデータが送信されてくるまでのレイテンシ(遅延時間)の影響により、意図したデータ転送帯域が得られないという問題を有する。たとえば、特許文献2に開示されている画像形成システムで、複数の印刷装置に対して各印刷装置の性能比に従ってジョブを配分しても、複数の印刷装置が一本のシリアル転送路を競合してデータ転送に使用するため、データ転送に要するレイテンシが増加することで、各印刷装置で所望の性能が得られなくなり、全体の印刷ジョブ処理性能が低下する問題が発生する。
【0007】
本発明は、上記に鑑みてなされたものであって、ネットワーク経由の印刷ジョブ分散処理全体の性能を向上させることができる画像形成システムおよびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上述した課題を解決し、目的を達成するために、本発明の画像形成システムは、画像データを記憶するメモリと、システム全体を制御するCPUを介さずに前記メモリとの間でデータ転送を行うDMAC(Direct Memory Access Controller)を有し、前記メモリに記憶された前記画像データの画像形成を行う単一または複数の画像形成手段と、前記画像形成手段に対して高速シリアル伝送路を介して接続され、ネットワーク経由で投入された印刷ジョブにかかる前記画像データを前記メモリに記憶するとともに、前記DMACが発行するリクエストによって要求された前記画像データを、前記メモリから要求元の前記画像形成手段に転送する制御手段と、を備え、前記画像形成手段は、所定のリクエストに対する前記画像データが前記制御手段から戻ってくる間に続けて発行される後続のリクエストの個数であるリクエストのスプリット数を、前記画像形成手段が動作している状態におけるリクエストに対する前記画像データを受け取るまでの遅延時間であるリクエストのレイテンシに応じて変更する。
【0009】
また、本発明のプログラムは、コンピュータを、画像データを記憶するメモリとの間でシステム全体を制御するCPUを介さずにデータ転送を行うDMAC(Direct Memory Access Controller)を有し、前記メモリに記憶された前記画像データの画像形成を行う単一または複数の画像形成手段に対して、高速シリアル伝送路を介して接続され、ネットワーク経由で投入された印刷ジョブにかかる前記画像データを前記メモリに記憶するとともに、前記DMACが発行するリクエストによって要求された前記画像データを、前記メモリから要求元の前記画像形成手段に転送する制御手段として機能させるためのプログラムであって、前記画像形成手段は、所定のリクエストに対する前記画像データが前記制御手段から戻ってくる間に続けて発行される後続のリクエストの個数であるリクエストのスプリット数を、前記画像形成手段が動作している状態におけるリクエストに対する前記画像データを受け取るまでの遅延時間であるリクエストのレイテンシに応じて変更する。
【発明の効果】
【0010】
本発明によれば、各画像形成手段が制御手段に対して画像データのリクエストを発行する際のスプリット数を、画像データ転送に要するリクエストのレイテンシ(遅延時間)に応じて変更する(例えば、レイテンシが大きいほどリクエストのスプリット数を増やし、レイテンシが小さいほどリクエストのスプリット数を減らす)ことにより、複数の画像形成手段で分散処理を行ってレイテンシが増大する場合でも、最大のデータ転送レートで画像データを転送することができるので、ネットワーク経由の印刷ジョブ分散処理全体の性能を向上させることができる、という効果を奏する。
【発明を実施するための最良の形態】
【0011】
以下に添付図面を参照して、この発明にかかる画像形成システムおよびプログラムの最良な実施の形態を詳細に説明する。
【0012】
[第1の実施の形態]
本発明の第1の実施の形態を図1ないし図7に基づいて説明する。図1は、本発明の第1の実施の形態にかかる画像形成システムの構成を示すブロック図である。図1に示す画像形成システムは、制御手段として機能する1台の印刷コントローラ1に対して4台の印刷装置A,B,C,Dを、シリアル伝送路2とスイッチ3とを経由して接続している。シリアル伝送路としては、大量の印刷データを高速に転送できる高速シリアルインターフェース(PCI Express(以降、PCIeと記載する))を用いる。したがって、本実施の形態のスイッチ3は、PCIeスイッチである。このように、1台の印刷コントローラ1に対して4台の印刷装置A,B,C,Dを、PCIeを用いたシリアル伝送路2とスイッチ3とを経由して接続することにより、大量の印刷ジョブを高速かつ低コストで印刷することができる。
【0013】
ここで、印刷コントローラ1のPCIe接続ポートはRootComplex4となり、各印刷装置A,B,C,DのPCIe接続ポートはEndpoint5となる。
【0014】
印刷コントローラ1には、印刷ジョブ制御などの各種制御を実行するCPU6が実装されている。CPU6は、HDD I/F7を介してHDD(Hard Disk Drive)8と接続されるとともに、メモリI/F9を介してメモリ10に接続されている。また、CPU6は、ネットワークI/F11を介してネットワーク12に接続されている。なお、HDD8は、大量の印刷ジョブ全体の印刷データが記録できる容量をもつ記録装置であれば、他の記録装置(例えばフラッシュメモリを搭載したメモリカード等)に置き換えても構わない。
【0015】
次に、1つの印刷ジョブを1台の印刷装置(例えば、印刷装置A)で実行する基本的な動作を説明する。
【0016】
図2は、印刷ジョブが印刷コントローラ1に投入されて、印刷用の画像データがHDD8に格納されるまでのデータの流れを示している。図2に示すように、はじめに印刷ジョブはネットワーク12を経由して印刷コントローラ1に送信されてくる。ここで、印刷ジョブは画像データよりも容量の少ない、印刷言語データであるものとする。印刷言語はCPU6のソフトウェアによる展開処理によって、印刷用の画像データに変換され、1ページ単位でメモリ10に書き込まれる。メモリ10に書き込まれた印刷データは、順次HDD8に転送された後、消去されるものとする。CPU6の展開処理が全て完了すると、印刷ジョブに含まれる全てのページの画像データがHDD8に記録される。
【0017】
図3は、印刷時のデータの流れを示している。印刷時の概略的な流れとしては、印刷コントローラ1が、HDD8内部の印刷用データを1ページずつPCIeのRootComplex4に転送し、印刷用データはRootComplex4からPCIeスイッチ3を経由して印刷装置Aに転送されて紙に印刷される、というものである。以下において、詳細に説明する。
【0018】
なお、図3に示すように、印刷装置A(B,C,D)は、画像形成手段として機能する例えば電子写真方式のプロッタユニット21と、CPU6を介さずにメモリ10との間でデータ転送を行うDMAC(Direct Memory Access Controller)22と、レイテンシ検出部23と、スプリット発行制御部24とを備えている。
【0019】
図3に示すように、印刷時における印刷コントローラ1は、印刷装置Aのプロッタユニット21に対して、印刷指示情報をPCIe2およびPCIeスイッチ3を経由するメモリWriteパケットによって送信する(図3に示す(1))。
【0020】
印刷指示を受信したプロッタユニット21は、DMAC22に対して起動信号を送信する。起動信号を受けたDMAC22は、印刷コントローラ1に対して、PCIe Endpoint5を経由して、メモリReadリクエストによって画像データの転送をリクエストする(図3に示す(2))。加えて、DMAC22は、レイテンシ検出部23に対して、Readリクエストを発行した時間情報を通知する。なお、PCIe2はシリアルのパケット転送を処理するため、DMAC22は印刷ジョブ全体を構成する画像データを、例えば128Byteの小さいサイズの単位に分割して、複数のメモリReadリクエストとして転送要求を発行する。
【0021】
Readリクエストは、印刷コントローラ1のRootComplex4を介して印刷データを記憶するHDD8に届く。そして、RootComplex4には、要求されたReadリクエストに対する印刷データがHDD8から転送される。RootComplex4に転送された印刷データは、PCIe2およびPCIeスイッチ3を経由してDMAC22に転送される。
【0022】
DMAC22は、Readデータを受信した際に、DMAC22から受け取ったReadデータが転送されてくるまでの受信時間情報をレイテンシ検出部23に通知する。DMAC22は、さらに受信したReadデータを、画像データとしてプロッタユニット21に転送し、紙に画像データが順次印刷する(図3に示す(3))。
【0023】
レイテンシ検出部23は、DMAC22から受け取ったReadリクエストを発行した時間情報と、DMAC22から受け取ったReadデータが転送されてくるまでの受信時間情報とから、リクエスト発行からデータ受信にかかったレイテンシ(遅延時間)を検出して、スプリット発行制御部24に通知する。ここで、Readリクエストのレイテンシ(または、単にレイテンシ)は、Readリクエストに対するReadデータが到着するまでにかかる時間をいう。
【0024】
スプリット発行制御部24は、レイテンシ検出部23から受信したレイテンシに応じて、DMAC22に対してReadリクエストを発行する際のスプリット発行数を通知する。なお、スプリット発行制御部24の動作の詳細については、後述する。
【0025】
DMAC22は、通知を受けたスプリット発行数にしたがって、Readリクエストを発行する際のスプリット数を決定する。ここで、Readリクエストのスプリット発行数(または、スプリット数)は、あるReadリクエストに対するReadデータが、要求先から戻ってくる前に続けて発行する、後続のReadリクエストの個数をいう。
【0026】
ここで、スプリット数、Readリクエストおよび印刷装置に対するReadデータの転送レートの関係について、図4〜図7のタイミングチャートを用いて説明する。
【0027】
図4は、スプリット数が“1”である場合の動作例を示すタイミングチャートである。図4に示すように、スプリット数が“1”の場合、一つのReadリクエスト1を発行した後、ReadデータD1を受信するまで、次のReadリクエスト2を発行しない。このため、レイテンシが発生すると、図4のタイミングチャートに示すようにReadデータD1,D2,D3…のパケットを受信に間隔が生じて、データ転送帯域が狭くなる。図4に示す例では、半分程度に転送レートが低下する。
【0028】
図5は、スプリット数を“2”に増やした例である。スプリット数が“2”の場合、印刷装置からは初めのReadデータD1が転送されてくる前に2つのリクエスト1,2を発行する。このため、ReadデータD1,D2のパケットは、間隔を空けずに転送されてくる。ReadデータD1を受信した時点で、次のReadリクエスト3が発行されるので、ReadデータD2,D3以降のReadデータも間隔を空けずに転送されつづけて、最大の実効帯域が得られるようになる。図5に示す例では、100%の効率でデータ転送が行われる。
【0029】
図6は、スプリット数が“2”で、さらにレイテンシが大きくなった場合の例を示すタイミングチャートである。レイテンシが大きくなることで、印刷装置からのReadリクエスト2とReadリクエスト3の間隔が広がるため、受信するReadデータD2とReadデータD3の間隔に隙間が生じてしまう。このため、レイテンシが大きくなる場合の転送帯域は、2/3程度に悪化することがある。
【0030】
そこで、レイテンシが大きくなる場合、図7に示す例のように、スプリット数を“3”に増やせば、Readデータパケットが隙間なく受信できて、最大の転送効率が得られるようになる。
【0031】
このため、スプリット発行制御部24では、レイテンシに応じてDMAC22の発行するReadリクエストのスプリット数を、レイテンシが大きいほどスプリット数を増やし、レイテンシが小さいほどスプリット数を減らすように、スプリット数を算出する。
【0032】
このように本実施の形態によれば、各印刷装置は、各プロッタユニット21が印刷コントローラ1に対して画像データのリクエストを発行する際のスプリット数を、画像データ転送に要するリクエストのレイテンシ(遅延時間)に応じて変更する(例えば、レイテンシが大きいほどリクエストのスプリット数を増やし、レイテンシが小さいほどリクエストのスプリット数を減らす)ことにより、複数のプロッタユニット21で分散処理を行ってレイテンシが増大する場合でも、最大のデータ転送レートで画像データを転送することができるので、ネットワーク経由の印刷ジョブ分散処理全体の性能を向上させることができる。
【0033】
[第2の実施の形態]
次に、本発明の第2の実施の形態を図8ないし図13に基づいて説明する。なお、前述した第1の実施の形態と同じ部分は同じ符号で示し説明も省略する。
【0034】
第2の実施の形態で説明した画像形成システムにおいて、レイテンシが小さいほどスプリット数を減らすのは、複数の印刷装置が同時に動作した場合に、印刷性能の低い印刷装置が過剰な数のReadリクエストを印刷コントローラ1に対して、発行することを抑制するためである。しかしながら、遅い印刷装置のReadリクエストのスプリット数が多すぎる場合には、印刷コントローラ1やPCIe2の内部バッファに遅い印刷装置からのReadリクエストが多数キューイングされて、Readデータの転送が完了するまで、バッファが開放されなくなる。このため、他の印刷性能の高い印刷装置からのReadデータ転送レートが低下する問題が発生する。
【0035】
そこで、本実施の形態においては、スプリット発行制御部24で、各印刷装置の最大印刷速度に必要なデータ転送帯域に応じて、DMAC22の発行するReadリクエストのスプリット数を、印刷性能が高い(画像形成にかかる最大データ転送帯域が広い)ほどスプリット数を増やし、印刷性能が低い(画像形成にかかる最大データ転送帯域が狭い)ほどスプリット数を減らすように、スプリット数を算出するようにしたものである。
【0036】
ここで、スプリット発行制御部24のスプリット数算出値の具体例について、図8〜図10を用いて説明する。
【0037】
図8は、Readリクエストのデータサイズが128Byteで、印刷装置のプロッタユニット21が1GB/sのデータ転送レートで最大性能を発揮する場合の、レイテンシとスプリット数の関係を示したものである。また、図9は、レイテンシが1024nsで、Readリクエストのデータサイズが128Byteである場合の、印刷装置のプロッタユニット21の最大データ転送帯域とスプリット数の関係を示したものである。
【0038】
スプリット数は、スプリット発行制御部24において、Readリクエストに対するReadデータのレイテンシと、パケット1つあたりのペイロードサイズと、プロッタユニット21の最大帯域とPCIe2(データ転送経路)の最大帯域から、以下の演算処理によって導出することができる。
スプリット数
=(レイテンシ(ns)/(1バイト転送時間(ns)×ペイロードサイズ(byte))*プロッタ帯域(GB/s)/PCIe帯域(GB/s)
【0039】
ここで、
1バイト転送時間(ns)=1/PCIe帯域(GB/s)
である。
【0040】
また、スプリット数の最小数は1であるため、演算結果が1よりも小さくなる場合は、スプリット数を1とすればよい。また、演算結果が整数とならない場合は、切り上げ処理によりスプリット数を決定すればよい。
【0041】
ここで、下記の条件を、具体例として挙げる。
PCIe帯域=1GB/s (PCIe規格の4レーン接続に相当する。1レーンでは片方向250MB/s)
プロッタ帯域=1GB/s
Readデータのペイロードサイズ=128Byte
レイテンシ=1024ns
上記の条件の場合は、
スプリット数
=1024(ns)/(1/1(GB/s)*128(byte))*1(GB/s)/1(GB/s)
=8個
となる。
【0042】
以上の演算により、スプリット発行制御部24からDMAC22に対して、スプリット数“8”を指示する信号が通知される。
【0043】
ここで、上記演算により導出されるスプリット数と、レイテンシおよびプロッタユニット21の帯域(性能)の関係を、図10に示す。図10に示すように、スプリット数を制御することによって、各プロッタユニット21の最大性能が発揮できるデータ転送レートで、印刷コントローラからReadデータを転送することが可能となる。
【0044】
以上のように、レイテンシ情報に応じてスプリット数を変更することは、特に複数の印刷装置による分散印刷処理を実行した際に有効である。これは、同時に起動している印刷装置(プロッタユニット21)の数によって、レイテンシが変化するためである。図11に示す例のように、印刷装置(プロッタユニット21)の起動数が多いほど、Readリクエストに対するレイテンシは増加する。これは、図12に示すように、一台の印刷装置(プロッタユニット21)だけを起動した場合に比べ、他の印刷装置(プロッタユニット21)を起動した場合、Readデータの転送が他の印刷装置(プロッタユニット21)のReadデータの転送に待たされている時間が、レイテンシに加算されるためである。
【0045】
このように本実施の形態によれば、各プロッタユニット21が印刷コントローラ1に対して画像データのリクエストを発行する際のスプリット数を、画像データ転送に要するリクエストのレイテンシ(遅延時間)に応じて変更する(例えば、画像形成にかかる最大データ転送帯域が広いほどスプリット数を増やし、最大データ転送帯域が狭いほどスプリット数を減らす)ことにより、複数のプロッタユニット21で分散処理を行ってレイテンシが増大する場合でも、最大のデータ転送レートで画像データを転送することができるので、ネットワーク経由の印刷ジョブ分散処理全体の性能を向上させることができる。
【0046】
なお、構成を簡易にする場合、印刷装置に対するスプリット数は、あらかじめレイテンシの予測値に基づいて、プロッタユニット21の起動時に印刷コントローラ1から直接指定するようにしてもよい。図13に示す例は、印刷装置にレイテンシ検出部とスプリット制御を設けず、印刷指示(図13に示す(1))の際に、同時にスプリット数をプロッタユニット21に対して通知する例である。この場合、起動するプロッタ数とレイテンシの値などが、印刷ジョブが完了するまで間、変化が無ければ、高速に印刷処理を実行することができる。しかしながら、印刷ジョブが不定期に投入され、レイテンシや起動プロッタ数が不規則に変化する場合は、図3に示すようなレイテンシ検出部23と、スプリット発行制御部24を設けることが望ましい。
【0047】
[第3の実施の形態]
次に、本発明の第3の実施の形態を図14および図15に基づいて説明する。なお、前述した第1の実施の形態または第2の実施の形態と同じ部分は同じ符号で示し説明も省略する。すなわち、本発明の第3の実施の形態の印刷装置A,B,C,Dも、前述したようにReadリクエストのスプリット数をレイテンシやプロッタ性能に応じて制御をするものを用いることを特徴とするものである。
【0048】
図14は、本発明の第3の実施の形態にかかる画像形成システムにおけるデータの流れを示している。なお、図14においては、図を単純化するために、印刷コントローラ1からのReadデータ転送のみを示し、印刷コントローラ1から印刷装置A,B,C,Dに対する印刷指示と、印刷装置A,B,C,Dから印刷コントローラ1に対するReadリクエストのフローの表示は省略する。
【0049】
図14に示すように、本実施の形態の印刷コントローラ1は、投入された印刷ジョブを複数の印刷装置A,B,C,Dに分割して印刷制御を実行し、その際、投入された印刷ジョブが複数のページから構成される場合は、一つの印刷ジョブを複数の印刷装置A,B,C,Dに対して分割して印刷制御をするものである。より詳細には、印刷コントローラ1は、印刷装置を2台一組としたグループに分け、各グループに対して複数のページからなる印刷範囲を指定し、さらに各グループの1台目の印刷装置は指定された印刷範囲の初めのページから順に印刷する制御を実行し、2台目の印刷装置は、最後のページから逆順に印刷する制御を実行するものである。
【0050】
図15のフローチャートを参照しつつ具体例を説明する。なお、これらの動作は印刷コントローラ1のCPU6におけるソフトウェアで処理するか、または同等の動作をするハードウェアロジックにより実装する。ここでは、説明を単純にするために、印刷ジョブが20ページの原稿で構成されるものとする。なお、印刷コントローラ1にネットワーク12経由で印刷ジョブが投入されて、HDD8に全ページの印刷データが記録されるまでの動作は、前述した通りである。
【0051】
まず、印刷コントローラ1は、HDD8に全ページの印刷データが記録されると(ステップS1〜S5のYes)、PCIeスイッチ3に接続された印刷装置A,B,C,Dを、印刷装置A,Bで構成されると、印刷装置C,Dで構成される第2グループにグループ分けする(ステップS6)。
【0052】
次に、印刷コントローラ1は、各グループが印刷するページ範囲を、各印刷装置の性能に基づいて決定する(ステップS7)。図14に示す例では、印刷装置A,B,C,Dの性能が全て同じであるとして、第1グループおよび第2グループに対して均等に20ページのジョブのうち、10ページずつ割り当てている(すなわち、第1グループに1〜10ページを割り当て、第2グループに11〜20ページを割り当てることとする)。もし、各印刷装置の性能が均等でない場合は、その速度によってグループ分けと、印刷ページ範囲を割り付けることが望ましい。一例として、性能の高い順に2台ずつグループ分けし、各グループの印刷装置の性能の合計の比率に応じて、性能の高いグループには広い印刷ページ範囲を割り当て、性能の低いグループには狭い印刷ページ範囲を割り当てることで、印刷ジョブ全体の印刷が完了する時間を短くすることができる。
【0053】
印刷装置のグループ分けと、ページ範囲の割り当てが完了した後、印刷コントローラ1は、HDD8から各印刷装置A,B,C,Dへ印刷データを転送する処理を実行する(ステップS8)。
【0054】
ここで、各グループのうち、1台目の印刷装置には、割り当てられた印刷ページ範囲のはじめのページから昇順に印刷データを転送していき、2台目の印刷装置には、1台目とは逆に割り当てられた印刷ページ範囲の最後のページから逆順に印刷データを転送していくように、制御を実行する。図14に示す例では、第1グループの印刷装置Aには1,2,3・・・の順で印刷データを転送し、第1グループの印刷装置Bには10,9,8・・・の順で印刷データを転送していく。一方、第2グループの印刷装置Cには11,12,13・・・の順で印刷データを転送し、第2グループの印刷装置Dには20,19,18・・・の順で印刷データを転送していくことになる。
【0055】
そして、各印刷装置A,B,C,Dは、印刷データを受信し始めると、受信したページから順次印刷処理を実行するが、1ページの印刷データを受信するごとに、印刷を完了したページのページ番号を、PCIeのEndpoint5からPCIeスイッチ3を介して印刷コントローラ1に通知する。
【0056】
印刷コントローラ1は、各印刷装置A,B,C,Dに印刷データを転送しながら、各印刷装置A,B,C,Dから通知されてくるページ番号を受信する(ステップS9)。もし、1台目と2台目のページ番号が次のページで一致する状態が検出されたグループがある場合は(ステップS10のYes)、そのグループに対する印刷データの送信を完了する(ステップS11)。各グループでは、2台の印刷装置がそれぞれ初めのページと終わりのページから印刷を進めているので、上の状態が検出された場合は、そのグループに割り当てたすべてのページの印刷が完了したことになる。以上の動作によって、印刷処理を進めすべてのグループにおける印刷処理が完了すると(ステップS12のYes)、すなわち投入された印刷ジョブのすべてのページの印刷が完了したことになり、全体の処理を終了する(ステップS13)。
【0057】
このように本実施の形態によれば、複数のページから構成される印刷ジョブを複数の印刷装置に対して分割して印刷制御を実行する際、印刷装置を2台を一組としたグループに分け、各グループに対して複数のページからなる印刷範囲を指定し、さらに各グループの1台目の印刷装置は指定された印刷範囲の初めのページから昇順に印刷し、2台目の印刷装置は、最後のページから逆順に印刷するため、各印刷装置の性能が異なっている場合でも、2台の印刷装置が常に停止することなく、最大の速度で印刷を完了することができる。
【0058】
[第4の実施の形態]
次に、本発明の第4の実施の形態を図16および図17に基づいて説明する。なお、前述した第1の実施の形態ないし第3の実施の形態と同じ部分は同じ符号で示し説明も省略する。すなわち、本発明の第4の実施の形態の印刷装置A,B,C,Dも、前述したようにReadリクエストのスプリット数をレイテンシやプロッタ性能に応じて制御をするものを用いることを特徴とするものである。
【0059】
図16は、本発明の第4の実施の形態にかかる画像形成システムにおけるデータの流れを示している。なお、図16においては、図を単純化するために、印刷コントローラ1からのReadデータ転送のみを示し、印刷コントローラ1から印刷装置A,B,C,Dに対する印刷指示と、印刷装置A,B,C,Dから印刷コントローラ1に対するReadリクエストのフローの表示は省略する。
【0060】
図16に示すように、本実施の形態の印刷コントローラ1は、投入された印刷ジョブが単一あるいは複数ページから構成される印刷ジョブを複数回繰り返して、多部印刷するものである場合は、投入された印刷ジョブと同一の印刷ジョブを複数の印刷装置に対して並行して印刷制御を実行するものである。
【0061】
図17のフローチャートを参照しつつ具体例を説明する。なお、これらの動作は印刷コントローラ1のCPU6におけるソフトウェアで処理するか、または同等の動作をするハードウェアロジックにより実装する。なお、印刷コントローラ1にネットワーク12経由で印刷ジョブが投入されて、HDD8に全ページの印刷データが記録されるまでの動作は、前述した通りである。
【0062】
まず、印刷コントローラ1は、HDD8に全ページの印刷データが記録されると(ステップS21〜S25のYes)、PCIeスイッチ3に接続された印刷装置A,B,C,Dすべてに対して、印刷ジョブの全ページを1ページ目(あるいは最終ページから逆順でも構わない)から順に1,2,3,4・・・ページの順で、印刷データを転送する処理を実行する(ステップS26)。
【0063】
各印刷装置A,B,C,Dは、印刷データを受信し始めると、受信したページから順次印刷処理を実行するが、印刷ジョブの最後のページの印刷が完了受信するごとに、その時点で印刷を完了した部数を、PCIeのEndpoint5からPCIeスイッチ3を介して印刷コントローラ1に通知する。
【0064】
印刷コントローラ1は、各印刷装置A,B,C,Dに印刷データを転送しながら、各印刷装置A,B,C,Dから通知されてくる印刷部数を検出し(ステップS27)、すべての印刷装置A,B,C,Dから通知されてきた部数の合計値が印刷ジョブで指定された部数に達した時点で(ステップS28のYes)、全体の転送処理を終了する(ステップS29)。
【0065】
このように本実施の形態によれば、投入された印刷ジョブが単一あるいは複数ページから構成される印刷ジョブを複数回繰り返して、多部数を印刷するものである場合は、投入された印刷ジョブと同一の印刷ジョブを複数の印刷装置に対して並行して印刷するため、各印刷装置の性能が異なっている場合でも、全ての印刷装置が常に停止することなく、最大の速度で印刷を完了することができる。
【0066】
[第5の実施の形態]
次に、本発明の第5の実施の形態を図18ないし図21に基づいて説明する。なお、前述した第1の実施の形態ないし第4の実施の形態と同じ部分は同じ符号で示し説明も省略する。すなわち、本発明の第5の実施の形態の印刷装置A,B,C,Dも、前述したようにReadリクエストのスプリット数をレイテンシやプロッタ性能に応じて制御をするものを用いることを特徴とするものである。
【0067】
まず、第3の実施の形態に示した態様において、複数の印刷装置で印刷処理を実行している途中で、新たな印刷ジョブが投入された場合について説明する。
【0068】
図18は、本発明の第5の実施の形態にかかる画像形成システムにおけるデータの流れを示している。なお、図18においては、図を単純化するために、印刷コントローラ1からのReadデータ転送のみを示し、印刷コントローラ1から印刷装置A,B,C,Dに対する印刷指示と、印刷装置A,B,C,Dから印刷コントローラ1に対するReadリクエストのフローの表示は省略する。
【0069】
図18に示すように、本実施の形態の印刷コントローラ1は、第3の実施の形態で示した態様において、複数の印刷装置で印刷処理を実行している途中で、新たな印刷ジョブが投入された場合は、印刷ジョブに指定されている優先度情報を検知し、印刷中のジョブよりも優先度が高い場合は、一部の印刷装置のジョブを停止させて、新たに投入された印刷ジョブを実行し、印刷を停止させなかった印刷装置では先に実行中だった印刷ジョブを継続して実行するものである。
【0070】
図19のフローチャートを参照しつつ具体例を説明する。なお、これらの動作は印刷コントローラ1のCPU6におけるソフトウェアで処理するか、または同等の動作をするハードウェアロジックにより実装する。なお、印刷コントローラ1にネットワーク12経由で印刷ジョブが投入されて、HDD8に全ページの印刷データが記録されるまでの動作は、前述した通りである。
【0071】
まず、印刷コントローラ1は、HDD8に全ページの印刷データが記録されると(ステップS1〜S5のYes)、PCIeスイッチ3に接続された印刷装置A,B,C,Dを、印刷装置A,Bで構成される第1グループと、印刷装置C,Dで構成される第2グループにグループ分けする(ステップS6)。
【0072】
次に、印刷コントローラ1は、各グループが印刷するページ範囲を、各印刷装置の性能に基づいて決定する(ステップS7)。図18に示す例では、印刷装置A,B,C,Dの性能が全て同じであるとして、第1グループおよび第2グループに対して均等に20ページのジョブのうち、10ページずつ割り当てている(すなわち、第1グループに1〜10ページを割り当て、第2グループに11〜20ページを割り当てることとする)。もし、各印刷装置の性能が均等でない場合は、その速度によってグループ分けと、印刷ページ範囲を割り付けることが望ましい。一例として、性能の高い順に2台ずつグループ分けし、各グループの印刷装置の性能の合計の比率に応じて、性能の高いグループには広い印刷ページ範囲を割り当て、性能の低いグループには狭い印刷ページ範囲を割り当てることで、印刷ジョブ全体の印刷が完了する時間を短くすることができる。
【0073】
印刷装置のグループ分けと、ページ範囲の割り当てが完了した後、印刷コントローラ1は、HDD8から各印刷装置A,B,C,Dへ印刷データを転送する処理を実行する(ステップS8)。
【0074】
ここで、各グループのうち、1台目の印刷装置には、割り当てられた印刷ページ範囲のはじめのページから昇順に印刷データを転送していき、2台目の印刷装置には、1台目とは逆に割り当てられた印刷ページ範囲の最後のページから逆順に印刷データを転送していくように、制御を実行する。図18に示す例では、第1グループの印刷装置Aには1,2,3・・・の順で印刷データを転送し、第1グループの印刷装置Bには10,9,8・・・の順で印刷データを転送していく。一方、第2グループの印刷装置Cには11,12,13・・・の順で印刷データを転送し、第2グループの印刷装置Dには20,19,18・・・の順で印刷データを転送していくことになる。
【0075】
そして、各印刷装置A,B,C,Dは、印刷データを受信し始めると、受信したページから順次印刷処理を実行するが、1ページの印刷データを受信するごとに、印刷を完了したページのページ番号を、PCIeのEndpoint5からPCIeスイッチ3を介して印刷コントローラ1に通知する。
【0076】
印刷コントローラ1は、各印刷装置A,B,C,Dに印刷データを転送しながら、各印刷装置A,B,C,Dから通知されてくるページ番号を受信する(ステップS9)。
【0077】
ここで、印刷ジョブの転送処理実行中に、後からより優先度の高い印刷ジョブ(優先ジョブ)が投入された場合、印刷コントローラ1は、これを検知して(ステップS31のYes)、いずれかのグループの印刷装置に対する転送処理を中断し、優先ジョブの印刷データの転送に切り替えを行う(ステップS32)。図18に示す例では、第2グループの印刷装置Dを優先ジョブの印刷データの転送に切り替えた状態を示している。優先ジョブは、このまま印刷装置Dによってただちに印刷を開始するため、先に投入された印刷ジョブが全て完了するまで待たされることなく、印刷ジョブを完了することができる。また、このとき、第2ループの印刷装置Cは、そのまま先に投入された印刷ジョブの印刷データを印刷し続けているので、印刷装置Dが優先ジョブによって中断された状態でも、割り当てられた印刷ページ範囲すべての印刷データを印刷することが可能となる。
【0078】
その後、1台目と2台目のページ番号が次のページで一致する状態が検出されたグループがある場合は(ステップS10のYes)、そのグループに対する印刷データの送信を完了する(ステップS11)。各グループでは、2台の印刷装置がそれぞれ初めのページと終わりのページから印刷を進めているので、上の状態が検出された場合は、そのグループに割り当てたすべてのページの印刷が完了したことになる。以上の動作によって、印刷処理を進めすべてのグループにおける印刷処理が完了すると(ステップS12のYes)、すなわち投入された印刷ジョブのすべてのページの印刷が完了したことになり、全体の処理を終了する(ステップS13)。
【0079】
次に、第4の実施の形態に示した態様において、複数の印刷装置で印刷処理を実行している途中で、新たな印刷ジョブが投入された場合について説明する。
【0080】
図20は、本発明の第5の実施の形態にかかる画像形成システムにおけるデータの流れを示している。なお、図20においては、図を単純化するために、印刷コントローラ1からのReadデータ転送のみを示し、印刷コントローラ1から印刷装置A,B,C,Dに対する印刷指示と、印刷装置A,B,C,Dから印刷コントローラ1に対するReadリクエストのフローの表示は省略する。
【0081】
図20に示すように、本実施の形態の印刷コントローラ1は、第4の実施の形態で示した態様において、複数の印刷装置で印刷処理を実行している途中で、新たな印刷ジョブが投入された場合は、印刷ジョブに指定されている優先度情報を検知し、印刷中のジョブよりも優先度が高い場合は、一部の印刷装置のジョブを停止させて、新たに投入された印刷ジョブを実行し、印刷を停止させなかった印刷装置では先に実行中だった印刷ジョブを継続して実行するものである。
【0082】
図21のフローチャートを参照しつつ具体例を説明する。なお、これらの動作は印刷コントローラ1のCPU6におけるソフトウェアで処理するか、または同等の動作をするハードウェアロジックにより実装する。なお、印刷コントローラ1にネットワーク12経由で印刷ジョブが投入されて、HDD8に全ページの印刷データが記録されるまでの動作は、前述した通りである。
【0083】
まず、印刷コントローラ1は、HDD8に全ページの印刷データが記録されると(ステップS21〜S25のYes)、PCIeスイッチ3に接続された印刷装置A,B,C,Dすべてに対して、印刷ジョブの全ページを1ページ目(あるいは最終ページから逆順でも構わない)から順に1,2,3,4・・・ページの順で、印刷データを転送する処理を実行する(ステップS26)。
【0084】
各印刷装置A,B,C,Dは、印刷データを受信し始めると、受信したページから順次印刷処理を実行するが、印刷ジョブの最後のページの印刷が完了受信するごとに、その時点で印刷を完了した部数を、PCIeのEndpoint5からPCIeスイッチ3を介して印刷コントローラ1に通知する。
【0085】
印刷コントローラ1は、各印刷装置A,B,C,Dに印刷データを転送しながら、各印刷装置A,B,C,Dから通知されてくる印刷部数を検出し(ステップS27)、すべての印刷装置A,B,C,Dから通知されてきた部数の合計値が印刷ジョブで指定された部数に達した時点で(ステップS28のYes)、全体の転送処理を終了する(ステップS29)。
【0086】
ここで、印刷ジョブの転送処理実行中に、後からより優先度の高い印刷ジョブ(優先ジョブ)が投入された場合、印刷コントローラ1は、これを検知して(ステップS41のYes)、いずれかのグループの印刷装置に対する転送処理を中断し、優先ジョブの印刷データの転送に切り替えを行う(ステップS42)。図20に示す例では、第2グループの印刷装置Dを優先ジョブの印刷データの転送に切り替えた状態を示しているが、印刷装置A,B,Cは継続して、先に投入された印刷ジョブの印刷を実行し続けるので、優先ジョブと並行して、すべての部数の印刷を完了することが可能となる。
【0087】
このように本実施の形態によれば、印刷中のジョブに対して優先したいジョブが後から投入された場合でも、一部の印刷装置のジョブを停止させて、新たに投入された印刷ジョブを実行し、印刷を停止させなかった印刷装置では先に実行中だった印刷ジョブを継続して実行するので、高速に双方の印刷ジョブを処理することができる。
【0088】
[第6の実施の形態]
次に、本発明の第6の実施の形態を図22ないし図25に基づいて説明する。なお、前述した第1の実施の形態ないし第5の実施の形態と同じ部分は同じ符号で示し説明も省略する。すなわち、本発明の第6の実施の形態の印刷装置A,B,C,Dも、前述したようにReadリクエストのスプリット数をレイテンシやプロッタ性能に応じて制御をするものを用いることを特徴とするものである。
【0089】
まず、第3の実施の形態に示した態様において、複数の印刷装置において印刷処理を実行している途中で、紙つまり、消耗品(トナー、インク、紙)切れ、その他の故障による画像形成不可能な障害が発生した場合について説明する。
【0090】
図22は、本発明の第6の実施の形態にかかる画像形成システムにおけるデータの流れを示している。なお、図22においては、図を単純化するために、印刷コントローラ1からのReadデータ転送のみを示し、印刷コントローラ1から印刷装置A,B,C,Dに対する印刷指示と、印刷装置A,B,C,Dから印刷コントローラ1に対するReadリクエストのフローの表示は省略する。
【0091】
図22に示すように、本実施の形態の印刷コントローラ1は、第3の実施の形態で示した態様において、複数の印刷装置において印刷処理を実行している途中で、紙つまり、消耗品(トナー、インク、紙)切れ、その他の故障による画像形成不可能な障害が発生した場合、これを検知した印刷装置のジョブを停止し、印刷を停止させなかった印刷装置では実行中だった印刷ジョブを継続して実行するものである。
【0092】
図23のフローチャートを参照しつつ具体例を説明する。なお、これらの動作は印刷コントローラ1のCPU6におけるソフトウェアで処理するか、または同等の動作をするハードウェアロジックにより実装する。なお、印刷コントローラ1にネットワーク12経由で印刷ジョブが投入されて、HDD8に全ページの印刷データが記録されるまでの動作は、前述した通りである。
【0093】
まず、印刷コントローラ1は、HDD8に全ページの印刷データが記録されると(ステップS1〜S5のYes)、PCIeスイッチ3に接続された印刷装置A,B,C,Dを、印刷装置A,Bで構成される第1グループと、印刷装置C,Dで構成される第2グループにグループ分けする(ステップS6)。
【0094】
次に、印刷コントローラ1は、各グループが印刷するページ範囲を、各印刷装置の性能に基づいて決定する(ステップS7)。図22に示す例では、印刷装置A,B,C,Dの性能が全て同じであるとして、第1グループおよび第2グループに対して均等に20ページのジョブのうち、10ページずつ割り当てている(すなわち、第1グループに1〜10ページを割り当て、第2グループに11〜20ページを割り当てることとする)。もし、各印刷装置の性能が均等でない場合は、その速度によってグループ分けと、印刷ページ範囲を割り付けることが望ましい。一例として、性能の高い順に2台ずつグループ分けし、各グループの印刷装置の性能の合計の比率に応じて、性能の高いグループには広い印刷ページ範囲を割り当て、性能の低いグループには狭い印刷ページ範囲を割り当てることで、印刷ジョブ全体の印刷が完了する時間を短くすることができる。
【0095】
印刷装置のグループ分けと、ページ範囲の割り当てが完了した後、印刷コントローラ1は、HDD8から各印刷装置A,B,C,Dへ印刷データを転送する処理を実行する(ステップS8)。
【0096】
ここで、各グループのうち、1台目の印刷装置には、割り当てられた印刷ページ範囲のはじめのページから昇順に印刷データを転送していき、2台目の印刷装置には、1台目とは逆に割り当てられた印刷ページ範囲の最後のページから逆順に印刷データを転送していくように、制御を実行する。図22に示す例では、第1グループの印刷装置Aには1,2,3・・・の順で印刷データを転送し、第1グループの印刷装置Bには10,9,8・・・の順で印刷データを転送していく。一方、第2グループの印刷装置Cには11,12,13・・・の順で印刷データを転送し、第2グループの印刷装置Dには20,19,18・・・の順で印刷データを転送していくことになる。
【0097】
そして、各印刷装置A,B,C,Dは、印刷データを受信し始めると、受信したページから順次印刷処理を実行するが、1ページの印刷データを受信するごとに、印刷を完了したページのページ番号を、PCIeのEndpoint5からPCIeスイッチ3を介して印刷コントローラ1に通知する。
【0098】
印刷コントローラ1は、各印刷装置A,B,C,Dに印刷データを転送しながら、各印刷装置A,B,C,Dから通知されてくるページ番号を受信する(ステップS9)。
【0099】
ここで、印刷ジョブの転送処理実行中に、いずれかの印刷装置において、故障や消耗品切れの障害が発生した場合がある。図22に示す例では、第2グループの印刷装置Dにおいて、障害が発生したものとする。印刷装置Dは、印刷ジョブの印刷中に故障/消耗品切れを発生した場合、印刷処理を停止するとともに、故障/消耗品切れをPCIeのEndpoint5からPCIeスイッチ3を介して印刷コントローラ1に通知する。なお、他の印刷装置についても、障害発生時には同様に印刷コントローラ1に故障/消耗品切れを通知する。
【0100】
そして、印刷ジョブの転送処理実行中に、故障/消耗品切れ通知を受信した場合、印刷コントローラ1は、これを検知して(ステップS51のYes)、通知元の印刷装置に対する印刷データ転送処理を停止する(ステップS52)。図22に示す例では、第2グループの印刷装置Dに対する印刷データの転送を中断する。このとき、第2グループの印刷装置Cは、そのまま先に投入された印刷ジョブの印刷データを印刷し続けているので、印刷装置Dが印刷途中で中断された状態でも、割り当てられた印刷ページ範囲すべての印刷データをそのまま印刷することが可能となる。
【0101】
その後、1台目と2台目のページ番号が次のページで一致する状態が検出されたグループがある場合は(ステップS10のYes)、そのグループに対する印刷データの送信を完了する(ステップS11)。各グループでは、2台の印刷装置がそれぞれ初めのページと終わりのページから印刷を進めているので、上の状態が検出された場合は、そのグループに割り当てたすべてのページの印刷が完了したことになる。以上の動作によって、印刷処理を進めすべてのグループにおける印刷処理が完了すると(ステップS12のYes)、すなわち投入された印刷ジョブのすべてのページの印刷が完了したことになり、全体の処理を終了する(ステップS13)。
【0102】
次に、第4の実施の形態に示した態様において、複数の印刷装置において印刷処理を実行している途中で、紙つまり、消耗品(トナー、インク、紙)切れ、その他の故障による障害が発生した場合について説明する。
【0103】
図24は、本発明の第6の実施の形態にかかる画像形成システムにおけるデータの流れを示している。なお、図24においては、図を単純化するために、印刷コントローラ1からのReadデータ転送のみを示し、印刷コントローラ1から印刷装置A,B,C,Dに対する印刷指示と、印刷装置A,B,C,Dから印刷コントローラ1に対するReadリクエストのフローの表示は省略する。
【0104】
図24に示すように、本実施の形態の印刷コントローラ1は、第4の実施の形態で示した態様において、複数の印刷装置において印刷処理を実行している途中で、紙つまり、消耗品(トナー、インク、紙)切れ、その他の故障による画像形成不可能な障害が発生した場合、これを検知した印刷装置のジョブを停止し、印刷を停止させなかった印刷装置では実行中だった印刷ジョブを継続して実行するものである。
【0105】
図25のフローチャートを参照しつつ具体例を説明する。なお、これらの動作は印刷コントローラ1のCPU6におけるソフトウェアで処理するか、または同等の動作をするハードウェアロジックにより実装する。なお、印刷コントローラ1にネットワーク12経由で印刷ジョブが投入されて、HDD8に全ページの印刷データが記録されるまでの動作は、前述した通りである。
【0106】
まず、印刷コントローラ1は、HDD8に全ページの印刷データが記録されると(ステップS21〜S25のYes)、PCIeスイッチ3に接続された印刷装置A,B,C,Dすべてに対して、印刷ジョブの全ページを1ページ目(あるいは最終ページから逆順でも構わない)から順に1,2,3,4・・・ページの順で、印刷データを転送する処理を実行する(ステップS26)。
【0107】
各印刷装置A,B,C,Dは、印刷データを受信し始めると、受信したページから順次印刷処理を実行するが、印刷ジョブの最後のページの印刷が完了受信するごとに、その時点で印刷を完了した部数を、PCIeのEndpoint5からPCIeスイッチ3を介して印刷コントローラ1に通知する。
【0108】
印刷コントローラ1は、各印刷装置A,B,C,Dに印刷データを転送しながら、各印刷装置A,B,C,Dから通知されてくる印刷部数を検出し(ステップS27)、すべての印刷装置A,B,C,Dから通知されてきた部数の合計値が印刷ジョブで指定された部数に達した時点で(ステップS28のYes)、全体の転送処理を終了する(ステップS29)。
【0109】
ここで、印刷ジョブの転送処理実行中に、故障/消耗品切れ通知を受信した場合、印刷コントローラ1は、これを検知して(ステップS61のYes)、通知元の印刷装置に対する印刷データ転送処理を停止する(ステップS62)。図24に示す例では、第2グループの印刷装置Dに対する印刷データの転送を中断する。このとき、第2グループの印刷装置Cは、そのまま先に投入された印刷ジョブの印刷データを印刷し続けているので、印刷装置Dが印刷途中で中断された状態でも、割り当てられた印刷ページ範囲すべての印刷データをそのまま印刷することが可能となる。
【0110】
このように本実施の形態によれば、印刷装置において印刷処理を実行している途中で、紙つまり、消耗品(トナー、インク、紙)切れ、その他の故障による印刷不可能な障害が発生した場合、障害を検知した印刷装置のジョブを停止し、印刷を停止させなかった印刷装置で実行中だった印刷ジョブを継続して実行するので、高速に双方の印刷ジョブを処理することができる。
【図面の簡単な説明】
【0111】
【図1】本発明の第1の実施の形態にかかる画像形成システムの構成を示すブロック図である。
【図2】印刷用の画像データがHDDに格納されるまでのデータの流れを示す模式図である。
【図3】印刷時のデータの流れを示す模式図である。
【図4】スプリット数が“1”である場合の動作例を示すタイミングチャートである。
【図5】スプリット数が“2”である場合の動作例を示すタイミングチャートである。
【図6】スプリット数が“2”である場合の動作例を示すタイミングチャートである。
【図7】スプリット数が“3”である場合の動作例を示すタイミングチャートである。
【図8】本発明の第2の実施の形態にかかるレイテンシとスプリット数の関係を示すグラフである。
【図9】プロッタの最大データ転送帯域とスプリット数の関係を示すグラフである。
【図10】スプリット数と、レイテンシおよびプロッタ帯域の関係を示すグラフである。
【図11】プロッタ起動数とレイテンシの関係を示すグラフである。
【図12】プロッタ起動数とレイテンシの関係を示す模式図である。
【図13】画像形成システムの構成の変形例を示すブロック図である。
【図14】本発明の第3の実施の形態にかかる画像形成システムにおけるデータの流れを示す模式図である。
【図15】印刷処理の流れを示すフローチャートである。
【図16】本発明の第4の実施の形態にかかる画像形成システムにおけるデータの流れを示す模式図である。
【図17】印刷処理の流れを示すフローチャートである。
【図18】本発明の第5の実施の形態にかかる画像形成システムにおけるデータの流れを示す模式図である。
【図19】印刷処理の流れを示すフローチャートである。
【図20】画像形成システムにおけるデータの流れを示す模式図である。
【図21】印刷処理の流れを示すフローチャートである。
【図22】本発明の第6の実施の形態にかかる画像形成システムにおけるデータの流れを示す模式図である。
【図23】印刷処理の流れを示すフローチャートである。
【図24】画像形成システムにおけるデータの流れを示す模式図である。
【図25】印刷処理の流れを示すフローチャートである。
【符号の説明】
【0112】
1 制御手段
6 CPU
10 メモリ
12 ネットワーク
21 画像形成手段
22 DMAC
【特許請求の範囲】
【請求項1】
画像データを記憶するメモリと、
システム全体を制御するCPUを介さずに前記メモリとの間でデータ転送を行うDMAC(Direct Memory Access Controller)を有し、前記メモリに記憶された前記画像データの画像形成を行う単一または複数の画像形成手段と、
前記画像形成手段に対して高速シリアル伝送路を介して接続され、ネットワーク経由で投入された印刷ジョブにかかる前記画像データを前記メモリに記憶するとともに、前記DMACが発行するリクエストによって要求された前記画像データを、前記メモリから要求元の前記画像形成手段に転送する制御手段と、
を備え、
前記画像形成手段は、所定のリクエストに対する前記画像データが前記制御手段から戻ってくる間に続けて発行される後続のリクエストの個数であるリクエストのスプリット数を、前記画像形成手段が動作している状態におけるリクエストに対する前記画像データを受け取るまでの遅延時間であるリクエストのレイテンシに応じて変更する、
ことを特徴とする画像形成システム。
【請求項2】
前記画像形成手段は、前記制御手段に対して前記画像データの転送をメモリリードリクエストによって要求する際のリードリクエストのレイテンシを検出するレイテンシ検出手段と、検出されたレイテンシが大きいほどリクエストのスプリット数を増やし、検出されたレイテンシが小さいほどリクエストのスプリット数を減らすスプリット発行制御手段と、を備える、
ことを特徴とする請求項1記載の画像形成システム。
【請求項3】
前記画像形成手段は、前記制御手段に対して前記画像データの転送をメモリリードリクエストによって要求する際のリードリクエストのレイテンシを検出するレイテンシ検出手段と、前記画像形成手段の画像形成にかかる最大データ転送帯域が広いほどスプリット数を増やし、最大データ転送帯域が狭いほどスプリット数を減らすスプリット発行制御手段と、を備える、
ことを特徴とする請求項1記載の画像形成システム。
【請求項4】
前記制御手段は、投入された印刷ジョブを複数の前記画像形成手段に分割して制御を実行し、その際、投入された印刷ジョブが複数のページから構成される場合は、ひとつの印刷ジョブを複数の前記画像形成手段に対して分割して画像形成の実行を制御する、
ことを特徴とする請求項1ないし3のいずれか一記載の画像形成システム。
【請求項5】
前記制御手段は、複数のページから構成される印刷ジョブを複数の前記画像形成手段に対して分割して制御を実行する際、複数の前記画像形成手段を2つずつ複数のグループに分けるとともに、各グループに対して複数のページからなる範囲を割り当てて、さらに各グループの1台目の前記画像形成手段は割り当てられた範囲の最初のページから順に画像形成の実行を制御し、2台目の前記画像形成手段は、割り当てられた範囲の最後のページから逆順に画像形成の実行を制御する、
ことを特徴とする請求項4記載の画像形成システム。
【請求項6】
前記制御手段は、投入された印刷ジョブが単一あるいは複数ページから構成される印刷ジョブを複数回繰り返すことにより多部数の画像形成を実行するものである場合は、投入された印刷ジョブと同一の印刷ジョブを複数の前記画像形成手段に対して並行して画像形成制御を実行する、
ことを特徴とする請求項4または5記載の画像形成システム。
【請求項7】
前記制御手段は、複数の前記画像形成手段において画像形成処理を実行している際に、新たな印刷ジョブが投入された場合は、印刷ジョブに指定されている優先度情報を検知し、画像形成中のジョブよりも優先度が高い場合は、一部の前記画像形成手段のジョブを停止させて、新たに投入された印刷ジョブを実行し、印刷を停止させなかった前記画像形成手段では先に実行中だった印刷ジョブを継続して実行する、
ことを特徴とする請求項4ないし6のいずれか一記載の画像形成システム。
【請求項8】
前記制御手段は、複数の前記画像形成手段において画像形成処理を実行している際に、画像形成不可能な障害が発生した場合、これを検知した前記画像形成手段のジョブを停止し、画像形成処理を停止させなかった前記画像形成手段では実行中だった印刷ジョブを継続して実行する、
ことを特徴とする請求項4ないし6のいずれか一記載の画像形成システム。
【請求項9】
コンピュータを、
画像データを記憶するメモリとの間でシステム全体を制御するCPUを介さずにデータ転送を行うDMAC(Direct Memory Access Controller)を有し、前記メモリに記憶された前記画像データの画像形成を行う単一または複数の画像形成手段に対して、高速シリアル伝送路を介して接続され、ネットワーク経由で投入された印刷ジョブにかかる前記画像データを前記メモリに記憶するとともに、前記DMACが発行するリクエストによって要求された前記画像データを、前記メモリから要求元の前記画像形成手段に転送する制御手段として機能させるためのプログラムであって、
前記画像形成手段は、所定のリクエストに対する前記画像データが前記制御手段から戻ってくる間に続けて発行される後続のリクエストの個数であるリクエストのスプリット数を、前記画像形成手段が動作している状態におけるリクエストに対する前記画像データを受け取るまでの遅延時間であるリクエストのレイテンシに応じて変更する、
ことを特徴とするプログラム。
【請求項1】
画像データを記憶するメモリと、
システム全体を制御するCPUを介さずに前記メモリとの間でデータ転送を行うDMAC(Direct Memory Access Controller)を有し、前記メモリに記憶された前記画像データの画像形成を行う単一または複数の画像形成手段と、
前記画像形成手段に対して高速シリアル伝送路を介して接続され、ネットワーク経由で投入された印刷ジョブにかかる前記画像データを前記メモリに記憶するとともに、前記DMACが発行するリクエストによって要求された前記画像データを、前記メモリから要求元の前記画像形成手段に転送する制御手段と、
を備え、
前記画像形成手段は、所定のリクエストに対する前記画像データが前記制御手段から戻ってくる間に続けて発行される後続のリクエストの個数であるリクエストのスプリット数を、前記画像形成手段が動作している状態におけるリクエストに対する前記画像データを受け取るまでの遅延時間であるリクエストのレイテンシに応じて変更する、
ことを特徴とする画像形成システム。
【請求項2】
前記画像形成手段は、前記制御手段に対して前記画像データの転送をメモリリードリクエストによって要求する際のリードリクエストのレイテンシを検出するレイテンシ検出手段と、検出されたレイテンシが大きいほどリクエストのスプリット数を増やし、検出されたレイテンシが小さいほどリクエストのスプリット数を減らすスプリット発行制御手段と、を備える、
ことを特徴とする請求項1記載の画像形成システム。
【請求項3】
前記画像形成手段は、前記制御手段に対して前記画像データの転送をメモリリードリクエストによって要求する際のリードリクエストのレイテンシを検出するレイテンシ検出手段と、前記画像形成手段の画像形成にかかる最大データ転送帯域が広いほどスプリット数を増やし、最大データ転送帯域が狭いほどスプリット数を減らすスプリット発行制御手段と、を備える、
ことを特徴とする請求項1記載の画像形成システム。
【請求項4】
前記制御手段は、投入された印刷ジョブを複数の前記画像形成手段に分割して制御を実行し、その際、投入された印刷ジョブが複数のページから構成される場合は、ひとつの印刷ジョブを複数の前記画像形成手段に対して分割して画像形成の実行を制御する、
ことを特徴とする請求項1ないし3のいずれか一記載の画像形成システム。
【請求項5】
前記制御手段は、複数のページから構成される印刷ジョブを複数の前記画像形成手段に対して分割して制御を実行する際、複数の前記画像形成手段を2つずつ複数のグループに分けるとともに、各グループに対して複数のページからなる範囲を割り当てて、さらに各グループの1台目の前記画像形成手段は割り当てられた範囲の最初のページから順に画像形成の実行を制御し、2台目の前記画像形成手段は、割り当てられた範囲の最後のページから逆順に画像形成の実行を制御する、
ことを特徴とする請求項4記載の画像形成システム。
【請求項6】
前記制御手段は、投入された印刷ジョブが単一あるいは複数ページから構成される印刷ジョブを複数回繰り返すことにより多部数の画像形成を実行するものである場合は、投入された印刷ジョブと同一の印刷ジョブを複数の前記画像形成手段に対して並行して画像形成制御を実行する、
ことを特徴とする請求項4または5記載の画像形成システム。
【請求項7】
前記制御手段は、複数の前記画像形成手段において画像形成処理を実行している際に、新たな印刷ジョブが投入された場合は、印刷ジョブに指定されている優先度情報を検知し、画像形成中のジョブよりも優先度が高い場合は、一部の前記画像形成手段のジョブを停止させて、新たに投入された印刷ジョブを実行し、印刷を停止させなかった前記画像形成手段では先に実行中だった印刷ジョブを継続して実行する、
ことを特徴とする請求項4ないし6のいずれか一記載の画像形成システム。
【請求項8】
前記制御手段は、複数の前記画像形成手段において画像形成処理を実行している際に、画像形成不可能な障害が発生した場合、これを検知した前記画像形成手段のジョブを停止し、画像形成処理を停止させなかった前記画像形成手段では実行中だった印刷ジョブを継続して実行する、
ことを特徴とする請求項4ないし6のいずれか一記載の画像形成システム。
【請求項9】
コンピュータを、
画像データを記憶するメモリとの間でシステム全体を制御するCPUを介さずにデータ転送を行うDMAC(Direct Memory Access Controller)を有し、前記メモリに記憶された前記画像データの画像形成を行う単一または複数の画像形成手段に対して、高速シリアル伝送路を介して接続され、ネットワーク経由で投入された印刷ジョブにかかる前記画像データを前記メモリに記憶するとともに、前記DMACが発行するリクエストによって要求された前記画像データを、前記メモリから要求元の前記画像形成手段に転送する制御手段として機能させるためのプログラムであって、
前記画像形成手段は、所定のリクエストに対する前記画像データが前記制御手段から戻ってくる間に続けて発行される後続のリクエストの個数であるリクエストのスプリット数を、前記画像形成手段が動作している状態におけるリクエストに対する前記画像データを受け取るまでの遅延時間であるリクエストのレイテンシに応じて変更する、
ことを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【公開番号】特開2010−67201(P2010−67201A)
【公開日】平成22年3月25日(2010.3.25)
【国際特許分類】
【出願番号】特願2008−235289(P2008−235289)
【出願日】平成20年9月12日(2008.9.12)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
【公開日】平成22年3月25日(2010.3.25)
【国際特許分類】
【出願日】平成20年9月12日(2008.9.12)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
[ Back to top ]