(57)【特許請求の範囲】
【請求項１】
複数の印刷ジョブを受け付ける受付手段と、
複数のコアを有し複数の処理を並列に実行する制御手段を備え、
前記制御手段は、
前記受付手段で受け付けた複数の印刷ジョブそれぞれのデータを印刷可能か１ページごとに判定する判定処理と、該複数の印刷ジョブそれぞれの画像データを作成する展開処理と、を前記複数のコアそれぞれに割り当てる割当部と、
前記判定処理において印刷不可と判定されたときに、該印刷不可と判定されたページを有する印刷ジョブのデータを印刷可能か１ページごとに判定する前記判定処理、および該印刷ジョブの画像データを作成する前記展開処理、を中断させるデータ走査部と、
を有し、
前記割当部は、前記データ走査部によって中断された前記印刷ジョブの前記展開処理を割り当てられたコア、および前記データ走査部によって中断された前記印刷ジョブの前記判定処理を割り当てられたコアに、前記複数の印刷ジョブのうち他の印刷ジョブのデータを印刷可能か１ページごとに判定する前記判定処理、または該印刷ジョブの画像データを作成する前記展開処理、を割り当てる、
ことを特徴とする画像形成装置。
【請求項２】
前記データ走査部は、ページ記述言語データの１ページ分の解析の結果当該ページの印刷不可が判明すると、当該データ走査部による解析および対応する前記展開処理を中断させることを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記割当部は、印刷開始する印刷ジョブがある場合には当該印刷ジョブにコアを集中して割り当て、印刷開始した印刷ジョブがなく全印刷ジョブが印刷不可の状態の場合にはコアを均等に割り当て、印刷開始した印刷ジョブがなく印刷可の印刷ジョブがある場合には、印刷可の印刷ジョブに優先順位を着けて優先して割り当てることを特徴とする請求項１または請求項２に記載の画像形成装置。
【請求項４】
イベントの発生に応じて、前記複数のコアの割当ての再配分が必要か否か判定する判定部を備え、
前記割当部は、前記判定部による前記判定結果に応じてコア割り当ての再配分を行い、
前記割当部によるコア割り当ての再配分が行われた後に、中断された前記印刷ジョブのうち印刷可能な印刷ジョブを再開させることを特徴とする請求項１から請求項３のいずれか１項に記載の画像形成装置。
【請求項５】
前記判定部は、前記イベントの１つとして新規印刷ジョブが投入された場合に、前記複数のコアの割り当ての再配分が必要と判定し、該判定結果に応じて、前記コア割り当て部によりコア割り当ての再配分を行うことを特徴とする請求項４に記載の画像形成装置。
【請求項６】
複数の印刷ジョブを受け付ける受付手段と、複数のコアを有し複数の処理を並列に実行する制御手段を備える画像形成装置の制御方法であって、
前記制御手段を、
前記受付手段で受け付けた複数の印刷ジョブそれぞれのデータを印刷可能か１ページごとに判定する判定処理と、該複数の印刷ジョブそれぞれの画像データを作成する展開処理と、を前記複数のコアそれぞれに割り当てる割当部、および、
前記判定処理において印刷不可と判定されたときに、該印刷不可と判定されたページを有する印刷ジョブのデータを印刷可能か１ページごとに判定する前記判定処理、および該印刷ジョブの画像データを作成する前記展開処理、を中断させるデータ走査部として機能させ、
前記割当部が、前記データ走査部によって中断された前記印刷ジョブの前記展開処理を割り当てられたコア、および前記データ走査部によって中断された前記印刷ジョブの前記判定処理を割り当てられたコアに、前記複数の印刷ジョブのうち他の印刷ジョブのデータを印刷可能か１ページごとに判定する前記判定処理、または該印刷ジョブの画像データを作成する前記展開処理、を割り当てる、
ことを特徴とする画像形成装置の制御方法。
【請求項７】
前記データ走査部は、ページ記述言語データの１ページ分の解析の結果当該ページの印刷不可が判明すると、当該データ走査部による解析および対応する前記展開処理を中断させることを特徴とすることを特徴とする請求項６に記載の画像形成装置の制御方法。
【請求項８】
前記割当部が、印刷開始する印刷ジョブがある場合には当該印刷ジョブにコアを集中して割り当て、印刷開始した印刷ジョブがなく全印刷ジョブが印刷不可の状態の場合にはコアを均等に割り当て、印刷開始した印刷ジョブがなく印刷可の印刷ジョブがある場合には、印刷可の印刷ジョブに優先順位を着けて優先して割り当てることを特徴とする請求項６または請求項７に記載の画像形成装置の制御方法。
【請求項９】
前記制御手段を、イベントの発生に応じて、前記複数のコアの割当ての再配分が必要か否か判定する判定部として更に機能させ、
前記割当部は、前記判定部による前記判定結果に応じてコア割り当ての再配分を行い、
前記割当部によるコア割り当ての再配分が行われた後に、中断された前記印刷ジョブのうち印刷可能な印刷ジョブを再開させることを特徴とする請求項６から請求項８のいずれか１項に記載の画像形成装置の制御方法。
【請求項１０】
前記判定部は、前記イベントの１つとして新規印刷ジョブが投入された場合に、前記複数のコアの割り当ての再配分が必要と判定し、該判定結果に応じて、前記コア割り当て部によりコア割り当ての再配分を行うことを特徴とする請求項９に記載の画像形成装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ジョブスキップ処理を行う画像形成装置およびその制御方法に関する。
【背景技術】
【０００２】
従来より、プリンタ等の画像形成装置において、印刷ジョブに対応する用紙が給紙可能か否かを給紙前に判定し、給紙不能により印刷不可とされた印刷ジョブを事前に停止状態にして、印刷可能な後続ジョブを先に処理し印刷する技術が知られている（以下、これをジョブスキップ処理という）。
【０００３】
例えば、図１８に示すように、従来のプリンタ印刷処理では、ＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ：ページ記述言語）データをビットマップに変換するＰＤＬ展開処理と、作成されたビットマップ画像を順次印字する印刷処理の２つがある。各ジョブにおけるＰＤＬ展開処理と印刷処理とは非同期となっていて、現在の印刷処理完了を待たずに投入されたＰＤＬデータに対して、ＰＤＬ展開処理を次々に実施する。印刷処理は、ＰＤＬ展開処理で展開済みのビットマップがあれば、それを順次印刷する。しかし、印刷処理の途中で該当サイズの用紙がトレイに無いなど印刷不可エラーがあると、図１９に示すように、エラーが解決するまでそれ以降の印刷処理が停止する。そこで、図２０に示すように、印刷を開始する前に印刷できないことが判明した場合は、該当の印刷ジョブについて印刷処理を保留し、次のジョブの印刷を可能とするのが従来のジョブスキップ処理であった。
【０００４】
続いて、従来の印刷処理動作を、図２１〜２３を用いて説明する。ここで、図２１は、従来のジョブ管理のフロー図であり、図２２は、従来のＰＤＬ展開のフロー図であり、図２３は、従来のジョブスキップ処理のフロー図である。図２１に示すように、従来のジョブ管理処理では、次のジョブデータの有無を判定し（ステップＳ２１００）、次のジョブデータがある場合（ステップＳ２１００でＹｅｓ）は、ＰＤＬ展開処理を行い（ステップＳ２１０１）、ステップＳ２１００に戻って次のジョブデータの有無を判定する。次のジョブデータがなくなると（ステップＳ２１００でＮｏ）、処理が終了する。
【０００５】
図２１のＰＤＬ展開処理（ステップＳ２１０１）は、図２２に示すように、１ジョブにおける１ページ分のＰＤＬデータをビットマップに変換すると（ステップＳ２２００）、１ジョブ内のデータが終了したか否かを判定し（ステップＳ２２０１）、データが終了していなければ（ステップＳ２２０１でＮｏ）、ステップＳ２２００に戻ってビットマップ変換処理を繰り返す。１ジョブ内のＰＤＬデータが終了すると（ステップＳ２２０１でＹｅｓ）、ＰＤＬ展開処理が終了する。
【０００６】
また、図２３に示す印刷管理では、ＰＤＬ展開処理された印刷ジョブが印刷可能か否かを判定し（ステップＳ２３００）、印刷可能であれば（ステップＳ２３００でＹｅｓ）、印刷処理を行い（ステップＳ２３０１）、ステップＳ２３０２に進み、次の印刷ジョブの有無を判定する（ステップＳ２３０２）。次の印刷ジョブがある場合は（ステップＳ２３０２でＹｅｓ）、ステップＳ２３００に戻って、次の印刷ジョブが印刷可能か否かを判定する。印刷不可能な場合（ステップＳ２３００でＮｏ）は、印刷処理を行わずにスキップして、次の印刷ジョブの有無を判定する（ステップＳ２３０２）。このように、従来の画像形成装置では、ある印刷ジョブについて印刷を開始する前に印刷できないことが判明すると、当該印刷ジョブについての印刷処理を保留し、次の印刷ジョブの印刷を可能とするジョブスキップ処理を行っている。
【０００７】
さらに、特許文献１では、受け取った印刷データを圧縮して記憶部に格納する際に、ジョブ制御部により印刷部の印刷資源が印刷データの条件を充たすか否かをチェックし、印刷処理を行っている。１ページも画像形成することなく資源不足が判明した場合は、後続ジョブによる追い越しを可能としている。１ページでも画像形成した場合は、印刷部を解放せずに資源の回復を待つことにより、複数のジョブの画像形成出力の重なりを防止している。また、ジョブの追い越しを認めることによって、装置の有効利用と、生産性の向上とを図っている。このように、特許文献１には、ジョブスキップ処理に関する記載があり、ＰＤＬ展開処理については、順次展開を行い、印刷処理において印刷不可の場合は印刷保留処理を行う構成が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来の画像形成装置では、上記のように、印刷開始前に印刷できないことが判明すると、該当の印刷ジョブについての印刷処理が保留され、次のジョブの印刷を可能とするジョブスキップ処理が行われている。このため、従来のジョブスキップ処理は、印刷処理の可否に関係なくＰＤＬ展開処理を行い、印刷開始直前に印刷できないことが判明してから当該印刷不可ジョブをスキップするので、印刷できない印刷ジョブをＰＤＬ展開処理する時間が無駄となり、その分印刷可能な他の印刷ジョブの印刷が遅れるという問題があった。
【０００９】
また、上記特許文献１に記載された技術にあっては、ＰＤＬ展開処理を、投入されたジョブから順次実施し、追い越しの要否の判断を行っている。このため、追い越しが必要と判断してから次のジョブの処理が開始されるため、追い越し時における印刷開始が遅くなるという問題があった。
【００１０】
これらの問題を解決するため、本出願人は、従来のＰＤＬ展開処理から、ＰＤＬデータを解析する処理を分離し（以下、この処理をＰＤＬデータ走査処理と称す）、ＰＤＬデータをビットマップに変換し画像データを作成する処理（ＰＤＬデータ走査処理に対してこの処理をＰＤＬ展開処理と称す）とＰＤＬデータ走査処理とを、マルチコアを有するＣＰＵを用いて並列処理し、ＰＤＬ展開処理よりも早く処理が完了するＰＤＬデータ走査処理内で印刷処理の可否を判定した上で、ジョブスキップ処理を行うことを考えたが、さらに改良する余地があった。
【００１１】
本発明は、上記に鑑みてなされたものであって、複数の印刷ジョブを順次受け付けている状況で、印刷ジョブの印刷の可否判断をＰＤＬデータ走査処理とＰＤＬ展開処理と印刷処理とに反映させ、印刷可能な印刷ジョブをさらに効率よく迅速に印刷することができる画像形成装置およびその制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するために、本発明にかかる画像形成装置は、複数の印刷ジョブを受け付ける受付手段と、複数のコアを有し複数の処理を並列に実行する制御手段を備え、前記制御手段は、前記受付手段で受け付けた複数の印刷ジョブそれぞれのデータを印刷可能か１ページごとに判定する判定処理と、該複数の印刷ジョブそれぞれの画像データを作成する展開処理と、を前記複数のコアそれぞれに割り当てる割当部と、前記判定処理において印刷不可と判定されたときに、該印刷不可と判定されたページを有する印刷ジョブのデータを印刷可能か１ページごとに判定する前記判定処理、および該印刷ジョブの画像データを作成する前記展開処理、を中断させるデータ走査部と、を有し、前記割当部は、前記データ走査部によって中断された前記印刷ジョブの前記展開処理を割り当てられたコア、および前記データ走査部によって中断された前記印刷ジョブの前記判定処理を割り当てられたコアに、前記複数の印刷ジョブのうち他の印刷ジョブのデータを印刷可能か１ページごとに判定する前記判定処理、または該印刷ジョブの画像データを作成する前記展開処理、を割り当てる、ことを特徴とする。
【００１３】
また、本発明は、複数の印刷ジョブを受け付ける受付手段と、複数のコアを有し複数の処理を並列に実行する制御手段を備える画像形成装置の制御方法であって、前記制御手段を、前記受付手段で受け付けた複数の印刷ジョブそれぞれのデータを印刷可能か１ページごとに判定する判定処理と、該複数の印刷ジョブそれぞれの画像データを作成する展開処理と、を前記複数のコアそれぞれに割り当てる割当部、および、前記判定処理において印刷不可と判定されたときに、該印刷不可と判定されたページを有する印刷ジョブのデータを印刷可能か１ページごとに判定する前記判定処理、および該印刷ジョブの画像データを作成する前記展開処理、を中断させるデータ走査部として機能させ、前記割当部が、前記データ走査部によって中断された前記印刷ジョブの前記展開処理を割り当てられたコア、および前記データ走査部によって中断された前記印刷ジョブの前記判定処理を割り当てられたコアに、前記複数の印刷ジョブのうち他の印刷ジョブのデータを印刷可能か１ページごとに判定する前記判定処理、または該印刷ジョブの画像データを作成する前記展開処理、を割り当てる、ことを特徴とする。
【発明の効果】
【００１４】
本発明によれば、複数の印刷ジョブを順次受け付けている状況で、印刷可能な印刷ジョブをさらに効率よく迅速に印刷することができるという効果を奏する。
【図面の簡単な説明】
【００１５】
【図１】図１は、一実施形態であるプリンタを含む印刷システムの構成を示すブロック図である。
【図２】図２は、同実施形態のプリンタの構成を示すブロック図である。
【図３】図３は、図２のプログラムＲＯＭに記憶されたプログラムを構成するモジュールの構成図である。
【図４】図４は、同参考例１としてのジョブスキップ処理を説明する図である。
【図５】図５は、参考例２としてのジョブスキップ処理を説明する図である。
【図６】図６は、参考例２における印刷に係る一連の処理を管理する管理処理を説明するフロー図である。
【図７】図７は、参考例２における印刷に係る一連の処理を管理する管理処理を説明する図であり、特に再コア割り当てが有効なイベントの例を示す図である。
【図８】図８は、参考例２におけるコア割り当て処理の詳細を示すフロー図である。
【図９】図９は、参考例２における印刷可能判定の一例を示す図である。
【図１０】図１０は、参考例２におけるＰＤＬデータ走査／展開処理の詳細（ＰＤＬデータ走査処理）を示すフロー図である。
【図１１】図１１は、参考例２におけるＰＤＬデータ走査／展開処理の詳細（ＰＤＬ展開処理）を示すフロー図である。
【図１２】図１２は、上記一実施形態でのプリンタ印刷処理における印刷不可ジョブのジョブスキップ処理の概要について説明する図である。
【図１３】図１３は、参考例２の変形例としてのジョブスキップ処理を説明する図である。
【図１４】図１４は、上記一実施形態での印刷に係る一連の処理を管理する管理処理を説明するフロー図である。
【図１５】図１５は、同実施形態におけるコア割り当て処理の詳細を示すフロー図である。
【図１６】図１６は、同実施形態におけるＰＤＬデータ走査処理の詳細を示すフロー図である。
【図１７】図１７は、同実施形態における画像形成装置本体における状態の変化に応じたコア割り当ての見直しの例を示す図である。
【図１８】図１８は、従来のプリンタ印刷処理の説明図である。
【図１９】図１９は、従来のプリンタ印刷処理の印刷不可エラー発生時の説明図である。
【図２０】図２０は、従来のジョブスキップ処理の説明図である。
【図２１】図２１は、従来のジョブ管理を説明するフロー図である。
【図２２】図２２は、従来のＰＤＬ展開を説明するフロー図である。
【図２３】図２３は、従来のジョブスキップ処理を説明するフロー図である。
【発明を実施するための形態】
【００１６】
以下に添付図面を参照して、この発明にかかる画像形成装置およびその制御方法の一実施の形態を詳細に説明する。以下では、画像形成装置としてレーザプリンタ（以下、プリンタと略称）を例に説明するが、他方式のプリンタや、プリンタ機能を有する複写機、複合機など、ページ記述言語を用いた印刷ジョブを受け付ける画像形成装置であれば、本発明を適用することができる。
【００１７】
図１は、本実施形態のプリンタを含む印刷システムの構成例を示すブロック図である。同図に例示する印刷システムは、プリンタ１０、および、複数のパーソナルコンピュータ等のホストＰＣ２０を有して構成される。また、プリンタ１０とホストＰＣ２０とは、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等のネットワーク１００により接続される。プリンタ１０は、ネットワーク１００を介してホストＰＣ２０から送信されたＰＤＬデータを含む印刷ジョブを受信し、印刷処理を実行する。
【００１８】
図２は、本実施形態のプリンタの概略構成を示すブロック図である。同図に示すプリンタ１０は、大別すると、コントローラ３０、プリンタエンジン４０、および操作パネル５０を備え、上述したように、ネットワーク１００を介して各種データ等を送受信するホストＰＣ２０と接続されている。
【００１９】
コントローラ３０は、プリンタ１０本体各部の制御を行う制御手段である。操作パネル５０からの制御信号に従う制御を行い、また、ネットワーク１００を介しホストＰＣ２０から送信された印刷ジョブを受けると、そのＰＤＬデータを解析し画像データ（Ｂｉｔｍａｐ）に変換して、当該画像データを示す画像信号および制御信号をプリンタエンジン４０へ出力する制御を行う。
【００２０】
操作パネル５０は、プリンタ１０の状態や蓄積された文書の一覧等を示す表示部、およびプリンタ１０のモード、フォント等の切替えや、蓄積された文書の一覧から選択した文書の印刷や消去を指示するスイッチ部などからなり、ユーザによる各種指示等を示す制御信号をコントローラ３０に出力する。
【００２１】
プリンタエンジン４０は、給紙トレイ部４０ａ、給紙部４０ｂ、印刷部４０ｃ、排紙部４０ｄ、および排紙トレイ４０ｅを備えている。このプリンタエンジン４０は、印刷に際して、コントローラ３０からの画像信号および制御信号により、周知のとおり、感光体上に静電潜像を形成し、現像し、また給紙部４０ｂより転写紙を給紙し、転写紙に転写および定着を施して、画像を形成する。
【００２２】
給紙トレイ部４０ａは、複数の給紙トレイを有している。例えば、ＳＥＦ方向のＡ４、ＬＥＦ方向のＡ５などの複数の用紙サイズの用紙を給紙可能な給紙先であるロール紙、ＳＥＦ方向のＡ３、ＬＥＦ方向のＡ４などの複数の用紙サイズの用紙を給紙可能な給紙先であるロール紙、ＬＥＦ方向のＡ４の用紙を給紙可能な給紙先であるカット紙、およびＬＥＦ方向のＢ５の用紙を給紙可能な給紙先であるカット紙などが各給紙トレイに収納されている。
【００２３】
給紙部４０ｂは、コントローラ３０からの指示に応じて、印刷部４０ｃに給紙する用紙を選択して、選択した用紙を印刷部４０ｃに給紙する。印刷部４０ｃは、所定の記録方式で、コントローラ３０から入力される画像信号および制御信号により感光体上に静電潜像を形成し、さらに現像して、現像された画像を給紙された用紙に転写および定着させ、画像を形成する。排紙部４０ｄは、画像が記録された用紙を排紙トレイ４０ｅに排出する。排紙トレイ４０ｅは、排紙部４０ｄにより排紙された用紙を蓄積する。
【００２４】
次に、プリンタ１０に備わるコントローラ３０の詳細な構成について説明する。図２に示すコントローラ３０は、ホストＩ／Ｆ３１、プログラムＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３３、フォントＲＯＭ３５、パネルＩ／Ｆ３７、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３４、ＮＶ（Ｎｏｎ  Ｖｏｌａｔｉｌｅ）−ＲＡＭ３６、エンジンＩ／Ｆ３８、オプションＲＡＭ３９等のようなモジュールで構成されている。なお、コントローラ３０を構成する各モジュールは、バスを介して接続されている。
【００２５】
ホストＩ／Ｆ３１は、ホストＰＣ２０からプリンタ１０への制御信号およびデータ、およびプリンタ１０からホストＰＣ２０へのステータス信号を送受信するためのインターフェイスである。ホストＩ／Ｆ３１を通してホストＰＣ２０から送られてきた印刷ジョブは、ＣＰＵ３２によりＰＤＬデータおよび印字制御データとその他に分けられ印字制御データは制御コードに変換されＰＤＬデータとともにＲＡＭ３４に一時記憶される。ＣＰＵ３２は、まずＰＤＬデータから中間コードを生成しそれを画像データに変換しＲＡＭ３４に記憶する。そして、印刷可能な状態であれば、画像データを示す画像信号をエンジンＩ／Ｆ３８を通してプリンタエンジン４０に供給しプリントスタートの命令を出す。以上のような一連の流れにより、印字がなされる。
【００２６】
パネルＩ／Ｆ３７は、操作パネル５０からコントローラ３０へのまたコントローラ３０から操作パネル５０への制御信号をやりとりするためのインターフェイスである。このパネルＩ／Ｆ３７を介して、プリンタ１０の状態表示や、モード、フォント等の切替えを行うための信号等がやりとりされる。エンジンＩ／Ｆ３８は、コントローラ３０からプリンタエンジン４０への制御信号や上記画像データを示す画像信号、およびプリンタエンジン４０からコントローラ３０へのステータス信号等を送受信するためのインターフェイスである。フォントＲＯＭ３５は、印字に使用されるさまざまな種類のフォント・データを格納している。
【００２７】
ＮＶ−ＲＡＭ３６は、電源を切っても保持したいデータを格納しておくための不揮発性ＲＡＭである。
【００２８】
ＲＡＭ３４は、揮発性の記憶デバイスであり、ＣＰＵ３２がデータ処理する際のワークメモリとして、またＰＤＬデータをページ単位に管理して一時的に記憶するバッファとして、またバッファに記憶されたＰＤＬデータから変換された画像データを記憶するビットマップメモリ等として使用される。なお、オプションＲＡＭ３９は、ＲＡＭ３４を補完する任意追加のメモリである。
【００２９】
ＣＰＵ３２は、プログラムＲＯＭ３３に記憶されている制御プログラムに従って、ホストＰＣ２０からの印刷ジョブ（ＰＤＬデータ、印字制御データ等を含む）などに対する処理を実施する。本実施形態での制御手段としてのＣＰＵ３２は、マルチコアで構成されている点に特徴がある。マルチコア（Ｍｕｌｔｉｐｌｅ  ｃｏｒｅ、Ｍｕｌｔｉ−ｃｏｒｅ）技術とは、１つのプロセッサ・パッケージ内に複数のプロセッサ・コアを封入した技術である。マルチコアのＣＰＵ３２は、複数のコアを１つのプロセッサとして集中的に使用したり、複数のプロセッサとして並列処理を行ったりすることが可能となる。なお、本実施形態では、マルチコアを用いて実施するが、必ずしもこれに限定されず、複数のプロセッサを使って、同様の集中処理あるいは並列処理を行うように構成することも可能である。処理内容としては、ＰＤＬデータに対するＰＤＬデータ走査処理（以下、データ走査あるいはデータ走査処理とも記す）およびＰＤＬデータを展開処理するＰＤＬ展開処理の他、展開後のビットマップデータを用いて印刷する印刷処理などがある。
【００３０】
ここで、プログラムＲＯＭ３３に記憶された制御プログラムを構成するモジュールについて説明する。図３は、図２のプログラムＲＯＭに記憶された制御プログラムを構成するモジュールの構成図である。
【００３１】
プログラムＲＯＭ３３に記憶された制御プログラムを構成するモジュールは、大別すると、ＰＤＬ展開モジュール６１、ジョブ管理モジュール６２、およびサービス提供モジュール群６８を有して構成される。なお、サービス提供モジュール群６８は、ネットワーク管理モジュール６３、メモリ管理モジュール６４、印刷管理モジュール６５、システム管理モジュール６６、および操作パネル管理モジュール６７による各種サービスを提供するモジュールの総称である。サービス提供モジュール群６８に含まれる各モジュールは、プリンタ１０の基本動作を分担し、上位層のモジュールからの要求に対応する。
【００３２】
ＰＤＬ展開モジュール６１は、ネットワーク管理モジュール６３による制御の下プリンタ１０がホストＰＣ２０からＰＤＬデータを受けると、このＰＤＬデータに対し、ＰＤＬデータ走査処理としてデータの解析および印刷可／不可の判定等（詳細は後述）をし、ＰＤＬ展開処理としてＰＤＬデータをビットマップに変換し画像データを生成するモジュールである。具体的には、ＰＤＬ展開モジュール６１は、ジョブ管理モジュール６２の仲介により、メモリ管理モジュール６４からメモリ（ＲＡＭ３４）に一時格納されているＰＤＬデータを受け取り、データ走査処理を行うとともに、同じくジョブ管理モジュール６２の仲介によりメモリ管理モジュール６４が確保したメモリ領域（ＲＡＭ３４）上に画像データを生成する。なお、データ走査処理およびＰＤＬ展開処理の際には機器構成情報、例えば給紙トレイ・排紙トレイの構成や、給紙トレイに収納された給紙先から給紙可能な用紙の用紙サイズといった情報が必要になるが、これらの情報はジョブ管理モジュール６２の仲介によりシステム管理モジュール６６から取得する。
【００３３】
ジョブ管理モジュール６２は、ＰＤＬ展開モジュール６１によるＰＤＬデータ走査処理およびＰＤＬ展開処理を含むＰＤＬデータ走査／展開処理全般に関わる制御を行っており、後述の管理処理や、上記のようにＰＤＬ展開モジュール６１側が必要とする処理を仲介して他モジュールに対して要求を行うモジュールである。また、ジョブ管理モジュール６２は、ＰＤＬ展開モジュール６１が作成した画像データについての印刷管理モジュール６５に対する印刷要求の発行なども行う。
【００３４】
メモリ管理モジュール６４は、メモリ（ＲＡＭ３４、ＮＶ−ＲＡＭ３６）および外部記憶装置を管理するモジュールであり、他モジュールの要求に基づいてメモリおよび外部記憶装置の割り当て・解放を行うことが主な責務である。
【００３５】
印刷管理モジュール６５は、ＰＤＬ展開モジュール６１が生成した画像データの印刷処理に関する制御を行うモジュールである。メモリ管理モジュール６４が管理するメモリ（ＲＡＭ３４、ＮＶ−ＲＡＭ３６）あるいは外部記憶装置内に格納された画像データを、プリンタエンジン４０に印刷させるために必要な制御を実行するのが主な責務であり、印刷要求の発行、給排紙命令の発行、後処理実行命令の発行、印刷に関わるエラー状態の検知と他モジュールへの通知などを行う。
【００３６】
ネットワーク管理モジュール６３は、ネットワーク１００を介したホストＰＣ２０からの印刷ジョブ等の受信、およびネットワーク１００を介したプリンタ１０からホストＰＣ２０へのステータス信号の送信を制御するモジュールであり、所定の通信プロトコル（ｆｔｐやｌｐｒなど）に基づき、ホストＰＣ２０等とのネットワーク１００を介した通信制御が主な責務である。
【００３７】
操作パネル管理モジュール６７は、操作パネル５０上の表示およびユーザによるパネル操作の管理を行うモジュールである。他モジュールからの要求に基づいて、プリンタ１０の状態の表示、システム管理モジュール６６が管理する機器設定の変更を行うメニュー画面の表示、エラー画面を表示してユーザに適切な処置を促すことなどが主な責務である。また、メニュー画面やエラー画面などでボタンを表示した際には、押下されたボタンを認識して他モジュールへ通知することも行う。
【００３８】
以下ではまず、本実施形態における印刷不可ジョブに対するジョブスキップ処理との比較をするための諸参考例について説明する。
【００３９】
まず、参考例１として、印刷不可ジョブに対するジョブスキップ処理の一例について説明する。図４は、参考例１としてのジョブスキップ処理を説明する図である。以下では、前述の従来例である図１８〜図２０を参照して説明する。
【００４０】
図１８に示すように、従来のプリンタ印刷処理は、ＰＤＬデータから画像データ（ビットマップ画像）に画像展開するＰＤＬ展開処理と、作成されたビットマップ画像を順次実際に印字する、印刷処理との２つに分かれている。印刷処理は、ＰＤＬ展開処理より処理時間が通常長いため、印刷処理を待たずに次のジョブのＰＤＬ展開処理が次々に実施される。また、図１９に示すように、印刷不可エラーが発生すると、エラーが解決されるまで、それ以降の印刷処理が全て停止する。そこで、図２０に示す従来のジョブスキップでは、印刷不可エラーとなるジョブ１の印刷を保留し、印刷可能なジョブ２から先に印刷することで印刷処理が全て停止するのを防止していた。
【００４１】
図４に示す参考例１は、ＣＰＵが、少なくとも３つのコア（コア１、コア２、コア３）を含むマルチコアを有し、ＰＤＬデータ走査処理およびＰＤＬ展開処理（画像データ作成処理）を実行するためにコア１〜コア３を用いる画像形成装置におけるジョブスキップ処理である。なお、この参考例１においてＣＰＵは、下記の印刷処理判定手段、割り当て配分手段として機能する。参考例１では、印刷する用紙サイズの用紙がトレイにない場合は給紙不可となり、印刷処理が不可能と判定される。そして、図４の例では、当初、コア１がジョブ１の画像データを作成し、コア２がジョブ２の画像データを作成し、コア３がジョブ３の画像データを作成するように、分散処理が行われている。
【００４２】
この状態の下で、印刷処理判定手段により、コア１がジョブ１の画像データを２ページ作成した時点で給紙不可と判定されると、割り当て配分手段がコア１によるジョブ１の画像データ作成を中断させ、受け付け順がジョブ１の次に新しく、給紙が可能な（給紙不可が判明していない状態も含む）ジョブ２の画像データ作成にコア１とコア２を集中させている。これにより、印刷開始が決定するまでの画像データの作成時間を短縮させている。
【００４３】
また、印刷処理判定手段は、コア１およびコア２がジョブ２の画像データを３ページ作成した時点で給紙不可と判定すると、割り当て配分手段がコア１およびコア２によるジョブ２の画像データの作成を中断させ、割り当て配分手段が、受け付け順がジョブ２の次に新しく、給紙可能な（給紙不可が判明していない状態も含む）ジョブ３の画像データ作成にコア１、コア２、コア３を集中させている。これにより、印刷開始が決定するまでの画像データ作成時間を短縮している。ジョブ３では、３ページ目まで給紙可能であることが判明したため、印刷処理を開始する。印刷開始後のジョブ３は、コア１〜３を集中させて画像データを作成するため、画像データ作成処理を印刷処理に間に合わせることが可能となって、効率良く、印刷処理することができている。
【００４４】
このように、参考例１では、各ジョブで使用するサイズの印刷用紙が切れている場合（すなわち「印刷不可」の場合）に、あるジョブのＰＤＬ展開処理に用いていたコアを他のジョブの処理に割り当てることで、印刷処理全体がより効率的となって、迅速に印刷処理することができるものとなっている。
【００４５】
また、参考例１では、印刷を開始するジョブがある場合に、当該ジョブにコアを集中させるコア割り当てを行うことで、ＰＤＬ展開処理の処理能力を高め、印刷処理がＰＤＬ展開処理待ちになることを防ぎ、紙に印字する印刷処理が停止するのを防止することができる。
【００４６】
次に、参考例２として、印刷不可ジョブのジョブスキップ処理の他の一例について説明する。図５は、参考例２としてのジョブスキップ処理を説明する図である。なお、本参考例２は、ＣＰＵが、少なくとも４つのコア（コア１、コア２、コア３、コア４）を含むマルチコアを有し、ＰＤＬデータ走査処理およびＰＤＬ展開処理（画像データ作成処理）を実行するためにコア１〜コア４を用いる画像形成装置におけるジョブスキップ処理の一例である。ここで、ＣＰＵは、下記のデータ走査処理部、ＰＤＬ展開処理部およびコア割り当て部として機能する。また、ＣＰＵは、所定のイベントの発生に応じて、当該イベントにより再コア割り当てが必要か否か等の判定をする判定部としても機能する。参考例２は上記参考例１に対し、参考例１での各ジョブのＰＤＬ展開処理を、マルチコアを利用してＰＤＬデータ走査処理と、ＰＤＬ展開処理とに分けて実施する点に特徴がある。
【００４７】
図５に示すように、参考例２では、参考例１での各ジョブのＰＤＬ展開処理を、画像データの印刷処理が可能か否かを判定するためのデータ走査処理部によるＰＤＬデータ走査処理と、ＰＤＬデータから画像データを作成するＰＤＬ展開処理部によるＰＤＬ展開処理とに分けて実施している。図５の例では、当初、コア１がジョブ１のデータ走査を行い、コア２がジョブ１のＰＤＬ展開処理を行い、コア３がジョブ２のデータ走査を行い、コア４がジョブ２のＰＤＬ展開処理を行うようにコア割り当てが行われている。
【００４８】
まず、コア１によるジョブ１のデータ走査により、２ページ目で印刷不可が判明すると、コア２が行っていたジョブ１の画像データ作成（ＰＤＬ展開処理）も中断させている。ここで、使われなくなったコア１は、コア割り当て部により、ジョブ２のデータ走査を行うコア３と一緒にデータ走査を行うようにされ、使われなくなったコア２は、ジョブ２の画像データ作成を行うコア４と一緒にＰＤＬ展開処理を行うようにされる。そして、一定のページ数（ここでは、３ページ目）まで印刷可能と判断すると、コア割り当て部により、データ走査を行っていたコア１とコア３を解放して、ジョブ２の画像データ作成に集中するようにコア割り当ての再配分が行われる。これにより、ジョブ２のＰＤＬ展開処理は、コア１〜４を使って高速に処理することができるため、印刷処理が開始されても印刷処理がＰＤＬ展開処理待ちになることを防止することができるようになっている。
【００４９】
以下では、参考例２について、図６〜図１１を用いてそのジョブスキップに係る動作について説明する。
【００５０】
まず、印刷に係る一連の処理を管理する管理処理について、図６および図７を用いて説明する。図６および図７は、印刷に係る一連の処理を管理する管理処理を説明する図である。
【００５１】
図６では、マルチコアにより、現在のジョブ数に対応する複数のＰＤＬデータ走査／展開処理に対し、コアを分散して処理が行われる。また、並列処理される各ＰＤＬデータ走査／展開処理時のイベントによって、ＰＤＬデータ／展開処理におけるコアの再配分（再コア割り当て）が必要になった場合には、割り当ての見直しが行われる。
【００５２】
まず、新規ジョブが投入された場合は（本体の状態変更）（ステップＳ６００）、ＰＤＬデータ走査／展開処理のコア割り当てが行われる（ステップＳ６０１）。このＰＤＬデータ走査／展開処理のコア割り当ての詳細については、後述する。
【００５３】
コア割り当てが行われると、割り当てられたコア毎にジョブ１〜ジョブｎまでのＰＤＬデータ／展開処理が並列に処理される（ステップＳ６０２、Ｓ６０３、Ｓ６０４）。その後、所定のイベントが発生すると、全ＰＤＬ展開処理が完了したか否かを判定する（ステップＳ６０５）。全ＰＤＬ展開処理が完了していない場合（ステップＳ６０５でＮｏ）は、ステップＳ６０６に進み、発生したイベント内容に応じて再コア割り当てが必要か否かを判定する。
【００５４】
ここで、再コア割り当てが必要でなければ（ステップＳ６０６でＮｏ）、他のイベントの発生を待機し（ステップＳ６０７）、ステップＳ６０６に進んで、再び、イベントにより再コア割り当てが必要か否かを判定する。再コア割り当てが必要になった場合は（ステップＳ６０６でＹｅｓ）、ステップＳ６０１に進んでＰＤＬデータ走査／展開処理のコア割り当て処理が再度行われる。また、上記ステップＳ６０５において、全ＰＤＬデータ走査／展開処理が完了した場合は（ステップＳ６０５でＹｅｓ）、処理が終了する。
【００５５】
図７にそのイベントの例を示している。新規ジョブ投入後における参考例２での再コア割り当てが有効なイベントとしては、図７に示す（３）ジョブの展開が終了した場合（つまり、いずれかの１または複数のジョブに対するデータ走査処理およびＰＤＬ展開処理の総数が減ってコアが余る場合）、（４）新規に印刷不可のジョブ（ジョブ１〜ジョブｎのうち、ジョブｋ）が判明した場合（つまり、印刷不可ジョブのコアを他に配分する必要がある場合）、（５）あるジョブ（ジョブ１〜ジョブｎのうち、ジョブｋ）が印刷可能となる場合（つまり、印刷可能となったジョブにコアを集中させる場合）などがある。
【００５６】
続いて、上記ステップＳ６０１におけるコア割り当て処理の詳細を図８に示す。図８に示す参考例２におけるコア割り当て処理は、印刷開始可能なジョブの有無を判断し（ステップＳ８００）、印刷開始可能なジョブが有る場合は（ステップＳ８００でＹｅｓ）、ステップＳ８０１に進んで、最初の開始可能なジョブの印刷を開始し、印刷を開始したジョブのＰＤＬ展開処理にコアを集中して割り当てるようにする（ステップＳ８０２）。また、ステップＳ８００において、印刷開始可能なジョブがない場合は（ステップＳ８００でＮｏ）、ステップＳ８０３で「印刷不可」以外のジョブが有るか否かを判定する。
【００５７】
「印刷不可」以外のジョブが有る場合は（ステップＳ８０３でＹｅｓ）、印刷不可以外のジョブのＰＤＬ走査処理とＰＤＬ展開処理にコアを分散割り当てする（ステップＳ８０４）。一方、ステップＳ８０３において、「印刷不可」以外のジョブがない場合は（ステップＳ８０３でＮｏ）、ステップＳ８０５に進んで、全ジョブのＰＤＬ走査処理とＰＤＬ展開処理にコアを分散割り当てする。
【００５８】
印刷可能判定は、参考例２では図９に示すように、各トレイの用紙が給紙可能か否かを全てのトレイについて判定し、印刷ジョブが要求する用紙が給紙できない状態にあるときは、印刷不可と判定する。
【００５９】
続いて、上記ステップＳ６０２〜Ｓ６０４におけるＰＤＬデータ走査／展開処理の詳細を図１０（ＰＤＬデータ走査処理）および図１１（ＰＤＬ展開処理）に示す。
【００６０】
図１０に示すＰＤＬデータ走査処理では、はじめに、ＰＤＬデータの１ページ分のコマンドの走査を行い（ステップＳ１０００）、その走査の結果、ページが印刷不可か否かを判定する（ステップＳ１００１）。ページが印刷不可と判定されると（ステップＳ１００１でＹｅｓ）、当該ジョブのデータ走査処理を中断すると共に（ステップＳ１００２）、同じジョブのＰＤＬ展開処理（この処理は別のコアにより並行して実行されている）も中断させる（ステップＳ１００３、ステップＳ１００４）。このＰＤＬ展開処理は、再開の指示（ステップＳ１００５）によって再開される。
【００６１】
また、ステップＳ１００１において、上記走査の結果、ページが印刷不可でないと判定された場合は（ステップＳ１００１でＮｏ）、ｎページまでデータ走査が済んだか否かを判断する（ステップＳ１００６）。ｎページまでデータ走査が済んだ場合は（ステップＳ１００６でＹｅｓ）、他に印刷が開始されているジョブがないか否かを判定する（ステップＳ１００７）。印刷が開始されているジョブがない場合は（ステップＳ１００７でＹｅｓ）、印刷開始が可能であることを通知する（ステップＳ１００８）。
【００６２】
ここで、印刷が開始されるとデータ走査処理は終了するが（ステップＳ１００９でＹｅｓ）、印刷が開始されない場合は（ステップＳ１００９でＮｏ）、ステップＳ１０１０に進んで、全ページのデータ走査が完了したか否かを判定する。全ページのデータ走査が完了すると（ステップＳ１０１０でＹｅｓ）、処理が終了となるが、まだ全ページのデータ走査が完了していなければ（ステップＳ１０１０でＮｏ）、ステップＳ１０００に戻り上記処理を繰り返す。
【００６３】
次に、ＰＤＬ展開処理の詳細を説明する。図１１に示すＰＤＬ展開処理では、ＰＤＬデータの１ページ分のコマンドをビットマップデータに変換処理する（ステップＳ１１００）。そして、該当のジョブデータ（全ページ分のコマンド）が終了したか否かを判断し（ステップＳ１１０１）、ジョブデータが終了していなければステップＳ１１００に戻り（ステップＳ１１０１でＮｏ）、ジョブデータが終了していれば（ステップＳ１１０１でＹｅｓ）、図１２のメインルーチンに戻る。なお、本ＰＤＬ展開処理は、ＰＤＬデータ走査処理を実行するコアとは別のコアにより並行して実行され、上述の図１０に示したステップＳ１００３の「ＰＤＬ展開処理の中断」処理が発生した場合、本処理は中断し、ステップＳ１００５の再開指示後再開する。
【００６４】
以上のようにして、参考例２では、各ジョブに対する処理を、ＰＤＬデータ走査処理と、ＰＤＬ展開処理とに分けて実施するようにしたため、参考例１よりも印刷可能判定をより早く行えるようになり、マルチコアの割り当ての再配分を迅速に実施することができるようになっている。また、ＰＤＬデータ走査処理による印刷可能判定後は、コアをＰＤＬ展開処理に集中させることができるため、より高速にＰＤＬ展開処理を行うことが可能となり、印刷処理が開始しても印刷処理がＰＤＬ展開処理待ちになることを防止することができるようになっている。
【００６５】
続いて、本実施形態でのプリンタ印刷処理における印刷不可ジョブのジョブスキップ処理の概要について、図１２を用いて説明する。なお、以下では、説明の簡単のため、ＣＰＵが、４つのコア（コア１、コア２、コア３、コア４）とその他のコアを含むマルチコアを有し、ＰＤＬデータ走査処理およびＰＤＬ展開処理（画像データ作成処理）を実行するためにコア１〜コア４を用いるものとして説明する。その他の処理（管理処理等）は、上記その他のコアにより実行されるものとする。なお、ＣＰＵは、下記のデータ走査処理部（データ走査部）、ＰＤＬ展開処理部（展開処理部）およびコア割り当て部として機能する。また、ＣＰＵは、所定のイベントの発生に応じて、当該イベントにより再コア割り当てが必要か否か等の判定をする判定部としても機能する。
【００６６】
図１２は、本実施形態におけるジョブスキップ処理の概要を説明する図である。図１２に示す例では、コア割り当てを１ページ単位でおこなっており、比較のため、図５に示した参考例２のコア割り当てを１ページ単位にしたものを図１３に示している。なお、図１２等で、コア割り当てを１ページ単位で行っているのは、説明の簡単のためであり、これに限らず、参考例２のように、１ページ分をさらに分割した単位で行うことができる。
【００６７】
図１２に示すジョブスキップ処理では、参考例２のジョブスキップ処理に対して、後述のようにＰＤＬデータ走査／展開処理において、初期段階に画像形成装置本体の状態変更（状態変化）の発生を検知してコアの割り当てを見直している。これは、検知されたプリンタの状態変更を基に、より早く印刷可／不可を判定し、再開されるジョブや新規に投入されたジョブを含めて、コアの割り当ての見直しを実施できるようにしたものである。また、後述のように、印刷開始可能ジョブがなく、かつ、「印刷不可」以外のジョブがある場合に、「印刷可能」のジョブに優先順位を着けてコア割り当ての再配分を行っている。これにより、例えば、「印刷可能」のジョブに対する処理のうち、処理を早く済ませる必要がある処理など優先すべき処理にコアを多く割り当てることができ、その結果、印刷可能な印刷ジョブを迅速に印刷することができるようになる。
【００６８】
図１２では、参考例２と同様に、各ジョブのＰＤＬ展開処理を、画像データの印刷処理が可能か否かを判定するためのデータ走査処理部によるデータ走査と、ＰＤＬ展開処理部による画像データ作成処理とに分けて実施している。図１２の例では、最初、コア１がジョブ１のデータ走査を行い、コア２がジョブ１のＰＤＬ展開処理を行い、コア３がジョブ２のデータ走査を行い、コア４がジョブ２のＰＤＬ展開処理を行うようにコア割り当てが行われている。
【００６９】
まず、コア１によるジョブ１のデータ走査により、２ページ目で印刷不可が判明すると、コア２が行っていたジョブ１の画像データ作成（ＰＤＬ展開処理）も中断させている。ここで、使われなくなったコア１およびコア２は、図１２の例では、ジョブ２が印刷開始可能となったときに、ジョブ２の３ページ目のデータ走査を完了したコア３と一緒にジョブ２の２ページ目以降の画像データ作成に集中するようにコアの割り当ての再配分が行われる。また、ジョブ２について、一定のページ数（ここでは、３ページ目）まで印刷可能と判断でき、さらにジョブ２の１ページ目の画像データ作成が完了すると、印刷処理が開始される。このように、ジョブ２の２ページ目以降のＰＤＬ展開処理（画像データ作成）は、コア１〜４を使って高速に処理することができるため、このままジョブ２について印刷可能の状態であれば、図１３（参考例２の変形例）のように、印刷処理が開始されても印刷処理がＰＤＬ展開処理待ちになることを防止することができるようになっている。
【００７０】
ところが、図１２の例では、ジョブ１に対し、給紙できなかったＡ３の用紙が補給され、ジョブ２の１ページ目の印刷途中で次に給紙するＡ４の用紙切れが生じるという状態変更が発生したため、ジョブ２の印刷は１ページ目で中断する。また、このときジョブ３が投入されたとする。この状態変更後、ジョブ２は、必要な用紙の補給後処理を再開するが、すでに２ページ目まで画像データを作成済みで余裕があるので、ジョブ２の３ページ目の画像データ作成用にコア１のみ用い、コア２〜４を解放する。一方、ジョブ２のコア２〜４が解放（キャンセル）されるとジョブ１が再開するのでコアの割り当てを多くすることとして、コア２およびコア３をジョブ１の画像データ作成に割り当て、余ったコア４を、ジョブ３のデータ走査／画像データ作成処理に割り当てている。そして、コア割り当ての再配分が行われた後に、中断されたジョブのうち印刷可能なジョブを再開させ、新規のジョブを開始させている。なお、ここでのコア割り当ての再配分はコア割り当て部により行われる。
【００７１】
このように、本実施形態のジョブスキップ処理では、参考例２とは異なり、本体状態の変更や新規ジョブの投入といったイベントが検出された場合にも、コア割り当ての再配分が行われるので、ＰＤＬデータ走査／展開処理をより効率よく実施することができる。なお、図１２に示した例は、説明のための一例であり、各ジョブのデータ走査処理および画像データ作成処理に対するコアの割り当ての優先順位は、画像形成装置各部の処理能力、処理速度等に応じて設定される。
【００７２】
次に、図１４〜図１７を用いて、本実施形態におけるジョブスキップに係る動作について説明する。
【００７３】
はじめに、本実施形態での印刷に係る一連の処理を管理する管理処理の流れを図１４に示す。この処理の流れは、図６に示した参考例２の管理処理と基本的に同様である。したがって、共通する処理については説明を省略する。ただし、再コア割り当てが有効なイベントとして２つのイベントが追加されている。参考例２では、前述のように、図７に示したイベントの例のうちの（３）あるジョブの展開が終了した場合、（４）新規に印刷不可のジョブが判明した場合、（５）あるジョブが印刷可能となる場合の３つを例示したが、本実施形態では、図７に示した（１）新規ジョブ投入の場合（つまり、新規ジョブの投入により、新規ジョブに対する新規のデータ走査処理やＰＤＬ展開処理を実施する場合）と、（２）本体状態の変更の場合（印刷可／不可の状態が変化した場合および変化する可能性のある場合）が追加される。
【００７４】
続いて、上記管理処理のステップＳ１４０１におけるコア割り当て処理の詳細を図１５に示す。図１５に示すコア割り当て処理のステップＳ１５００〜ステップＳ１５０５はそれぞれ、図８に示した参考例２のコア割り当て処理のステップＳ８００〜ステップＳ８０５に対応している。ただし、本実施形態では、参考例２とは異なり、印刷開始可能なジョブが無く「印刷不可」以外のジョブがある場合に行うステップＳ１５０４にて、「印刷可」のジョブのＰＤＬデータ走査処理／ＰＤＬ展開処理にコアを優先して割り当てるようにしている。また、このときコアの割り当てに優先順位を着けて行う。
【００７５】
図１７に、画像形成装置本体における状態の変化に応じたコア割り当ての見直しの例を示す。同例では、最初ジョブ１とジョブ２のみがあり、ジョブ（Ｊｏｂ）１が印刷不可であり、ジョブ２が印刷可であったものとする。このときはステップＳ１５０４により、ジョブ２にコア１〜４が優先して割り当てられている（図示せず）。ここで、図１７に示すように、ジョブ２が印刷可の状態から印刷不可の状態になると、すなわち、ジョブ１とジョブ２が共に印刷不可の状態となると、ステップＳ１５０５により、コア１，２がジョブ１に割り当てられ、コア３，４がジョブ２に割り当てられる（分散割り当て）。
【００７６】
その後、ジョブ１が印刷不可の状態から印刷可の状態になると、ステップＳ１５０４により、同図の例ではジョブ１を優先し、ジョブ１にコア１，２，３が割り当てられ、ジョブ２にコア４が割り当てられる。さらに、新規のジョブ３が投入されると、ステップＳ１５０４によりコアの割り当てを見直し、同図の例では、ジョブ１にコア１，２が割り当てられ、ジョブ２にコア３が割り当てられ、ジョブ３にコア４が割り当てられる。このように、画像形成装置本体における状態の変化に応じて、コアの割り当ての見直しが行われる。
【００７７】
続いて、上記管理処理のステップＳ１４０２〜Ｓ１４０４におけるＰＤＬデータ走査／展開処理のうち、ＰＤＬデータ走査処理の詳細を図１６に示す。なお、ＰＤＬ展開処理は、図１１を用いて前述した参考例２のＰＤＬ展開処理と同様であるので、ここでは図示せず、その説明は省略する。
【００７８】
図１６に示す処理のステップＳ１６０５〜ステップＳ１６１５はそれぞれ、図１０に示し前述したＰＤＬデータ走査処理のステップＳ１０００〜ステップＳ１０１０に対応し、同様の処理を行っている。ここでは共通する処理の説明は省略する。図１６に示す本実施形態における処理フローは、参考例２のＰＤＬデータ走査処理のはじめに、ステップＳ１６００〜ステップＳ１６０４の処理を追加した処理フローとなっている点が異なっている。
【００７９】
ステップＳ１６００では、画像形成装置における本体状態変更を検出する。その検出の結果、ページが印刷不可であると判定されると（ステップＳ１６０１でＹｅｓ）、当該ジョブのＰＤＬ展開処理を中断させる（ステップＳ１６０２、ステップＳ１６０３）。このＰＤＬ展開処理は、再開の指示（ステップＳ１６０４）によって再開される。
【００８０】
そして、ＰＤＬ展開処理の再開後、または、ステップＳ１６０１でページが印刷不可ではないと判定されると（同ステップでＮｏ）、ステップＳ１６０５以降の処理、すなわち前述した図１０のステップＳ１０００〜ステップＳ１０１０の処理と同様の処理を実行する。なお、ステップＳ１６０１での判定は、ステップＳ１６００〜Ｓ１６１５のループにおいてすでにＰＤＬデータのコマンドが解析されているページについてはそのページが印刷不可か否かを判断し、ループの初期でデータ走査がなされていない段階では、任意のページが印刷不可か否かを判断する。
【００８１】
本実施形態では、前述の参考例２の効果に加え、画像形成装置における本体状態変更を検出しＰＤＬデータ走査処理におけるＰＤＬデータのコマンドの走査（解析）よりも前に印刷可能判定を行うことによって、前述の参考例２よりも効率の良いマルチコアの割り当ての再配分を迅速に実施することができる。また、印刷開始可能なジョブが無く「印刷不可」以外のジョブがある場合に、優先順位を着けて各ジョブに対するＰＤＬデータ走査処理およびＰＤＬ展開処理にコアを割り当てるので、さらに効率良く迅速に印刷処理することができる。
【００８２】
なお、本実施形態の画像形成装置の機能を実現させるプログラムは、当該装置のプログラムＲＯＭ３３やその他の不揮発性記憶媒体に予め組み込まれて提供される以外に、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録し提供することも可能である。
【００８３】
または、上記プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供または配布するように構成してもよい。
【００８４】
以上、発明を実施するための実施の形態について説明を行ったが、本発明は、上述した実施の形態に限定されるものではない。本発明の主旨を損なわない範囲で変更することが可能である。
【符号の説明】
【００８５】
１０  プリンタ
２０  ホストＰＣ
３０  コントローラ
３１  ホストＩ／Ｆ
３２  ＣＰＵ
３３  プログラムＲＯＭ
３４  ＲＡＭ
３５  フォントＲＯＭ
３６  ＮＶ−ＲＡＭ
３７  パネルＩ／Ｆ
３８  エンジンＩ／Ｆ
３９  オプションＲＡＭ
４０  プリンタエンジン
４０ａ  給紙トレイ部
４０ｂ  給紙部
４０ｃ  印刷部
４０ｄ  排紙部
４０ｅ  排紙トレイ
５０  操作パネル
６１  ＰＤＬ展開モジュール
６２  ジョブ管理モジュール
６３  ネットワーク管理モジュール
６４  メモリ管理モジュール
６５  印刷管理モジュール
６６  システム管理モジュール
６７  操作パネル管理モジュール
６８  サービス提供モジュール群
１００  ネットワーク
【先行技術文献】
【特許文献】
【００８６】
【特許文献１】特開２００２−２００８２１号公報
【図１】
0005740913.tif 000002
【図２】
0005740913.tif 000003
【図３】
0005740913.tif 000004
【図４】
0005740913.tif 000005
【図５】
0005740913.tif 000006
【図６】
0005740913.tif 000007
【図７】
0005740913.tif 000008
【図８】
0005740913.tif 000009
【図９】
0005740913.tif 000010
【図１０】
0005740913.tif 000011
【図１１】
0005740913.tif 000012
【図１２】
0005740913.tif 000013
【図１３】
0005740913.tif 000014
【図１４】
0005740913.tif 000015
【図１５】
0005740913.tif 000016
【図１６】
0005740913.tif 000017
【図１７】
0005740913.tif 000018
【図１８】
0005740913.tif 000019
【図１９】
0005740913.tif 000020
【図２０】
0005740913.tif 000021
【図２１】
0005740913.tif 000022
【図２２】
0005740913.tif 000023
【図２３】
0005740913.tif 000024