(57)【要約】【課題】画像形成装置における最適な電力消費量制御を実現し、無駄な電力消費を抑えること。【解決手段】プリンタのＣＰＵクロック調整部が、ＰＤＬデータ処理部による入力データの解釈結果に基づいて、ＰＤＬデータ処理部で処理中の一のジョブを構成する入力データから生成された画像データのうち、電子写真エンジンで処理済みの画像データを、電子写真エンジンで処理するのに要する時間を予測した第１処理時間（排紙時間）を取得し（Ｓ１００−２）、前記一のジョブを構成する入力データをＰＤＬデータ処理部や画像生成部で実際に処理した時間を示す第２処理時間（内部処理時間）を取得し（Ｓ１００−３）、第２処理時間が第１処理時間よりも大きい場合にはＣＰＵの動作クロックの周波数を上げ（Ｓ１００−４，Ｓ１００−５）、一方、第２処理時間が第１処理時間よりも小さい場合にはＣＰＵの動作クロックの周波数を下げる（Ｓ１００−４，Ｓ１００−６）。【選択図】図１１
2013178628.tif 000002
【特許請求の範囲】
【請求項１】
入力データを解釈して画像データを生成する生成処理を行う生成手段と、
前記生成手段により生成された画像データに基づいて可視媒体に画像形成を行う画像形成手段と、
前記生成手段による前記入力データの解釈結果に基づいて、前記生成手段が処理中の一のジョブを構成する入力データから生成された画像データのうち、前記画像形成手段により処理済みの画像データを、前記画像形成手段で画像形成するのに要する時間を予測した第１処理時間を取得する第１取得手段と、
前記一のジョブを構成する入力データを前記生成手段が実際に処理した時間又は該時間に所定の時間を加算した時間を示す第２処理時間を取得する第２取得手段と、
前記第２処理時間が前記第１処理時間よりも大きい場合には前記生成手段の処理能力を上げる制御を行い、一方、前記第２処理時間が前記第１処理時間よりも小さい場合には前記生成手段の処理能力を落とす制御を行う制御手段と、
を有することを特徴とする画像形成装置。
【請求項２】
前記制御手段は、前記第２処理時間が前記第１処理時間よりも大きい場合には前記生成手段を構成するハードウェアの動作クロックの周波数を上げる制御を行い、一方、前記第２処理時間が前記第１処理時間よりも小さい場合には前記生成手段を構成するハードウェアの動作クロックの周波数を下げる制御を行うことを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記生成手段を構成するハードウェアは、前記生成処理を分担して処理可能な複数のコアを有するものであり、
前記制御手段は、前記第２処理時間が前記第１処理時間よりも大きい場合には前記全てのコアを有効にする制御を行い、一方、前記第２処理時間が前記第１処理時間よりも小さい場合には前記一部のコアを無効にする制御を行うことを特徴とする請求項１に記載の画像形成装置。
【請求項４】
前記入力データの解釈結果は、少なくとも印刷設定情報を含むことを特徴とする請求項１乃至３のいずれか１項に記載の画像形成装置。
【請求項５】
前記印刷設定情報は、少なくとも、可視媒体の１つの面にレイアウトして画像形成する入力データのページ数を示すレイアウト設定情報と、可視媒体の片面のみに画像形成するか両面に画像形成するかを示す両面印刷設定情報と、可視媒体にカラー画像を形成するかモノクロ画像を形成するかを示すカラー／モノクロ印刷設定情報とを含むことを特徴とする請求項４に記載の画像形成装置。
【請求項６】
前記第１取得手段は、
前記印刷設定情報を用いて、前記画像形成手段が実際にカラーで画像形成した前記可視媒体の面数を示すカラー面数と、前記画像形成手段が実際にモノクロで画像形成した前記可視媒体の面数を示すモノクロ面数とを求め、
予め記憶手段に記憶される、前記カラー面数、前記モノクロ面数、前記画像形成手段がカラーで画像形成を１面行う場合に要する時間、及び、前記画像形成手段がモノクロで画像形成を１面行う場合に要する時間を用いて、前記第１処理時間を取得する、
ことを特徴とする請求項５に記載の画像形成装置。
【請求項７】
画像形成装置の制御方法であって、
生成手段が、入力データを解釈して画像データを生成する生成処理を行う生成ステップと、
画像形成手段が、前記生成ステップで生成された画像データに基づいて可視媒体に画像形成を行う画像形成ステップと、
第１取得手段が、前記生成ステップでの前記入力データの解釈結果に基づいて、前記生成ステップで処理中の一のジョブを構成する入力データから生成された画像データのうち、前記画像形成ステップで処理済みの画像データを、前記画像形成手段で画像形成するのに要する時間を予測した第１処理時間を取得する第１取得ステップと、
第２取得手段が、前記一のジョブを構成する入力データを前記生成ステップで実際に処理した時間又は該時間に所定の時間を加算した時間を示す第２処理時間を取得する第２取得ステップと、
前記第２処理時間が前記第１処理時間よりも大きい場合には前記生成手段の処理能力を上げる制御を行い、一方、前記第２処理時間が前記第１処理時間よりも小さい場合には前記生成手段の処理能力を落とす制御を行う制御ステップと、
を有することを特徴とする画像形成装置の制御方法。
【請求項８】
コンピュータを、請求項１乃至６のいずれか１項に記載された手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置の電力消費量の制御に関するものである。
【背景技術】
【０００２】
［従来技術における処理速度と電力消費量の関係］
ＣＰＵに代表されるハードウェアの消費電力は、その動作周波数に比例して増加する。しかし、多くのソフトウェアにおいて、その実行速度はＣＰＵの周波数に比例して処理速度が向上することはない。この理由は以下の通りである。
【０００３】
ＣＰＵに接続されたメモリに代表される記憶装置の動作速度は、ＣＰＵの動作速度より低速である。よって、ＣＰＵによって行われるメモリへの書き込み／読み込みの速度が、ＣＰＵの処理速度に追いつかず、結果、ＣＰＵが待ち状態になる時間が発生する。このＣＰＵの待ち時間は、ＣＰＵを高速化しても一定時間生じるため、ＣＰＵの動作周波数を向上しても、それに比例して全体の処理速度が向上することはない。
【０００４】
よって、電力消費量が二倍になるまでＣＰＵの動作周波数を上げても、ソフトウェアの処理速度は二倍になることはない。この傾向は、ＣＰＵ以外にもＬＳＩやＡＳＩＣと呼ばれるハードウェアにおいても同様である。
【０００５】
したがって、このようなハードウェアを持つ画像形成装置の処理速度を二倍高速にするためには、二倍以上の電力消費量が必要となる。このような処理速度と消費電力の非線形の関係が背景にあり、以下のような電力制御技術が従来から提案されてきた。
【０００６】
［従来技術における消費電力制御方法１］
従来、ＣＰＵに代表されるソフトウェアを実行することができるハードウェアには、電圧や動作周波数を制御することによって、電力消費量を制御する汎用的な技術がある。
【０００７】
例えば、特許文献１では、ＣＰＵの温度または消費電力に基づいて行われる、ＣＰＵのパワースロットリングのための方法が開示されている。しかし、この技術では、画像形成装置の特徴（画像形成）を考慮した電力消費量制御を行うことができないため、無駄な電気消費量が生じていた。この理由を以下に述べる。
【０００８】
画像形成装置は、画像形成、すなわち紙などに印刷するために要する時間が画像形成装置内の装置（例えば電子写真エンジンなど）の性能によって定められる。よって、画像形成装置内のソフトウェア処理は、印刷するために要する時間以上に高速に動作する必要がない。
【０００９】
例えば、１分間に１０枚印刷できる画像形成装置は、それ以上高速に画像形成することができない。よって、画像形成装置内で１分間に１０枚以上の画像形成にかかるソフトウェア処理を行ったとしても、印刷にかかる時間は変わらない。つまり、画像形成にかかるソフトウェア処理は、この印刷にかかる時間以上に高速に動作する必要はない。よって、この印刷にかかる時間以上に高速に処理するために要した電力消費量は無駄なものとなる。
【００１０】
つまり、上記の電力消費量を制御する汎用的技術では、このような画像形成装置の特性を考慮した画像形成処理にかかる電力消費量を制御することができない。
［従来技術における消費電力制御方法２］
画像形成装置における電力消費量制御技術も特許文献２において開示されている。特許文献２では、画像形成処理の進捗を蓄積された画像データ量で判定し、この進捗に応じて電力消費量を制御する技術が開示されている。
【００１１】
しかし、この従来技術では、以下に例示されるような画像形成処理装置の画像形成にかかる時間を左右する情報を考慮に入れていなかった。
例えば、従来のプリンタに代表される画像形成装置においては、カラーとモノクロ画像とでは印刷にかかる時間が異なるものがある。多くのプリンタはカラーよりモノクロ画像の印刷のほうが高速である。よって、ＰＤＬデータに代表される画像形成の対象となるデータがモノクロである場合には、カラーデータである場合より短時間に画像形成処理することが求められる。しかし、従来技術では、画像形成の対象となるデータがモノクロかカラーか等の情報を考慮に入れてなかった。
【００１２】
また、別の例では、画像形成の対象となるデータに印刷設定が含まれる場合もある。ここでいう印刷設定とは、プリントチケットに代表されるデータに含まれており、これは画像形成装置がどのように画像形成すべきかを示す情報である。
【００１３】
この印刷設定に２ｉｎ１で画像形成すべきだという情報がある場合には、１枚の紙面上に２ページ分の画像処理が求められる。すなわち、画像形成処理は、例示したような印刷設定に依存して、画像形成の対象となるデータを短時間に画像形成処理することが求められる。しかし、従来技術では、画像形成の対象となるデータの印刷設定の情報を考慮に入れていなかった。
【００１４】
上述したように、画像形成の対象となるデータの情報に依存して、画像形成装置が高速で処理すべきか否かが異なる。よって、従来技術では、画像形成装置が高速で処理すべきか否かを画像形成の対象となるデータに基づき判断していなかったため、画像形成装置の最適な電力消費量制御をすることができなかった。
【００１５】
なお、上述したプリントチケットの代表的な技術規格にはＪＤＦがある。ＪＤＦの技術情報に関しては非特許文献１を参照されたい。
また、上述したＰＤＬに代表される画像形成の対象となるデータには、ＰｏｓｔＳｃｒｉｐｔ（Ｒ）がある。このＰｏｓｔＳｃｒｉｐｔ（Ｒ）の技術情報に関しては非特許文献２を参照されたい。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特表２００２−５２９８０６号公報
【特許文献２】特開２００８−２３８５９２号公報
【非特許文献】
【００１７】
【非特許文献１】CIP4 Website, http://www.cip4.org/
【非特許文献２】Adobe PostScript 3 Resources, http://www.adobe.com/products/postscript/resources.html
【発明の概要】
【発明が解決しようとする課題】
【００１８】
上述したように、従来、ＣＰＵに代表されるソフトウェアを実行することができるハードウェアには、電圧や動作周波数を制御することによって、結果、電力消費量を制御する汎用的な技術がある。しかし、この技術では、画像形成装置の画像形成の特徴を考慮した電力消費量制御を行うことができないため、無駄な電気消費量が生じていたという課題があった。
【００１９】
なお、上述したように、画像形成装置における電力消費量制御技術も特許文献２において開示されている。この文献によれば、画像形成処理の進捗を蓄積された画像データ量で判定し、この進捗に応じて電力消費量を制御する技術が開示されている。しかし、画像形成の対象となるデータの情報に依存して、画像形成装置が高速で処理すべきか否かが異なる。この従来技術では、画像形成装置が高速で処理すべきか否かを画像形成の対象となるデータに基づき判断していなかったため、画像形成装置が最適な電力消費量制御をすることができないという課題があった。
【００２０】
本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、画像形成装置における最適な電力消費量制御を実現し、無駄な電力消費を抑える仕組みを提供することである。
【課題を解決するための手段】
【００２１】
本発明は、入力データを解釈して画像データを生成する生成処理を行う生成手段と、前記生成手段により生成された画像データに基づいて可視媒体に画像形成を行う画像形成手段と、前記生成手段による前記入力データの解釈結果に基づいて、前記生成手段が処理中の一のジョブを構成する入力データから生成された画像データのうち、前記画像形成手段により処理済みの画像データを、前記画像形成手段で画像形成するのに要する時間を予測した第１処理時間を取得する第１取得手段と、前記一のジョブを構成する入力データを前記生成手段が実際に処理した時間又は該時間に所定の時間を加算した時間を示す第２処理時間を取得する第２取得手段と、前記第２処理時間が前記第１処理時間よりも大きい場合には前記生成手段の処理能力を上げる制御を行い、一方、前記第２処理時間が前記第１処理時間よりも小さい場合には前記生成手段の処理能力を落とす制御を行う制御手段と、を有することを特徴とする。
【発明の効果】
【００２２】
本発明によれば、画像形成装置における最適な電力消費量制御を実現し、無駄な電力消費を抑えることができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の一実施例を示す画像形成装置を適用可能なシステムの構成を示す図である。
【図２】本実施例におけるＰＤＬデータ（１０００）の構造の一例を示す図である。
【図３】本実施例におけるＪＤＦデータ（１００１）の構造の一例を示す図である。
【図４】可視媒体の片面に可視化すべき論理ページの数を示す図である。
【図５】可視媒体の片面に可視化すべき論理ページの数を示す図である。
【図６】可視媒体の片面に可視化すべき論理ページの数を示す図である。
【図７】実施例１におけるプリンタの構成の一例を示すブロック図である。
【図８】実施例１においてＣＰＵ上で動作するソフトモジュールの構成の一例を示すブロック図である。
【図９】実施例１におけるプリンタ内のソフトモジュールの起動処理の一例を示すフローチャートである。
【図１０】プリンタ内で行われるデータフローの一例を示す図である。
【図１１】実施例１のプリンタ１００においてＣＰＵクロック調整部が実行するクロック調整処理の一例を示すフローチャートである。
【図１２】実施例２におけるプリンタの構成の一例を示すブロック図である。
【図１３】実施例２においてマルチコアＣＰＵ上で動作するソフトモジュール２００の構成の一例を示すブロック図である。
【図１４】実施例２におけるプリンタ内のソフトモジュールの起動処理の一例を示すフローチャートである。
【図１５】実施例２のプリンタにおいてＣＰＵコア制御部が実行するＣＰＵコア制御処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００２４】
以下、本発明を実施するための形態について図面を用いて説明する。
【実施例１】
【００２５】
［プリンタの接続形態の説明］
図１は、本発明の一実施例を示す画像形成装置を適用可能なシステムの構成を示す図である。
【００２６】
パーソナルコンピュータに代表されるホストコンピュータ（１０１）は、アプリケーションやミドルウェア、ドライバーソフトウェアを動作させ、プリンタ（１００）に対する入力データであるＰＤＬデータ（１０００）（図２）やＪＤＦデータ（１００１）（図３）を生成する。
【００２７】
ホストコンピュータ（１０１）とプリンタ（１００）は、ネットワーク（１０２）に代表される通信媒体によって相互に接続されている。プリンタ（１００）は、ネットワーク（１０２）を介して得たＰＤＬデータ（１０００）を使い、紙に代表される可視媒体（４００）上に可視像を形成する画像形成装置である。
【００２８】
なお、本実施例ではホストコンピュータ（１０１）はパーソナルコンピュータを例にして説明している。しかしながら、それ以外の以下のようなＰＤＬデータ（１０００）およびＪＤＦデータ（１００１）やそれに相当する画像データを生成し、転送することができる装置であれば、本発明を実施できることは言うまでもない。すなわち、ホストコンピュータ（１０１）がワークステーション、メインフレームコンピュータ、スマートフォンやデジタルカメラなどであっても本発明を実施できる。
【００２９】
また、本実施例では、画像形成装置はプリンタを例にして説明している。しかしながら画像形成装置も同様に、それ以外のＭＦＰ（マルチファンクションプリンタ）や、印刷機、プロッタ、ディスプレイ装置などとよばれている可視像を形成することができる装置一般でも、本発明を実施できる。
【００３０】
［ＰＤＬデータの説明］
次に、本実施例におけるＰＤＬデータ（１０００）の構造を図２を用いて説明する。
図２は、本実施例におけるＰＤＬデータ（１０００）の構造の一例を示す図である。
図２に示すように、ＰＤＬデータ（１０００）は、少なくともグラフィック描画命令（１０００−１）、文字描画命令（１０００−１）を持つ。また加えて、ＰＤＬデータ（１０００）は、ラスタービットマップ描画命令（１０００−３）をも持つことができる。
【００３１】
なお、ここでいうグラフィック描画命令（１０００−１）とは、幾何学的な情報によって指定可能な図形の描画命令を指す。また、ここでいう文字描画命令（１０００−１）とは、指定された文字を描画するための命令を指す。また、ここでいうラスタービットマップ描画命令（１０００−３）とは、離散的な色情報を持つ二次元配列を描画するための描画命令を指す。もちろん、ＰＤＬデータ（１０００）がこれ以外の命令を持つことができたとしても本発明を実施できる。
【００３２】
［ＪＤＦデータの説明］
次に、本実施例におけるＪＤＦデータ（１００１）の構造を図３を用いて説明する。
図３は、本実施例におけるＪＤＦデータ（１００１）の構造の一例を示す図である。
図３に示すように、ＪＤＦデータ（１００１）は、プリンタ（１００）に入力されるＰＤＬデータ（１０００）をどのように処理すべきかを示す印刷設定やカラー・モノクロ設定の情報を持つことができる。すなわち、ＪＤＦデータ（１００１）は、少なくとも、印刷設定の情報としてＮｉｎ１設定情報１００１−１、両面印刷設定情報１００１−２を持つことができる。また加えて、ＪＤＦデータ（１００１）は、カラー・モノクロ設定の情報として、カラー／モノクロ印刷設定情報１００１−３を持つことができる。なお、Ｎｉｎ１設定情報１００１−１とは、可視媒体の１つの面にレイアウトして画像形成する入力データのページ数を示すレイアウト設定情報である。また、両面印刷設定情報１００１−２とは、可視媒体の片面のみに画像形成するか両面に画像形成するかを示すものである。また、カラー／モノクロ印刷設定情報１００１−３とは、可視媒体にカラー画像を形成するかモノクロ画像を形成するかを示すものである。
【００３３】
もちろん、ＪＤＦデータ（１００１）がこれら以外の命令を持つことができたとしても本発明を実施できる。また、これらＪＤＦデータ（１００１）に含まれる情報に基づいて行われる処理については後述する。
【００３４】
［プリンタ内の装置の説明］
次に、上述したようなＰＤＬデータ（１０００）やＪＤＦデータ（１００１）に対するプリンタ（１００）内の画像処理装置が備える諸装置について図７を用いて説明する。
【００３５】
図７は、実施例１におけるプリンタ（１００）の構成の一例を示すブロック図である。
ＵＳＢインタフェース（１００−７）は、ＵＳＢ規格の外部装置を通じて外部からＰＤＬデータ（１０００）やＪＤＦデータ（１００１）をプリンタ（１００）に入力することを可能にしている。
【００３６】
ＩＥＥＥ１２８４インタフェース装置（１００−８）は、ＩＥＥＥ１２８４規格のハードウェアを持つ外部装置を通じて外部からＰＤＬデータ（１０００）やＪＤＦデータ（１００１）をプリンタ（１００）に入力することを可能にしている。
【００３７】
ネットワーク装置（１００−９）は、ネットワーク規格のハードウェアを持つ外部装置を通じて外部からＰＤＬデータ（１０００）やＪＤＦデータ（１００１）をプリンタ（１００）に入力することを可能にしている。
【００３８】
上述したＵＳＢインタフェース（１００−７）、ＩＥＥＥ１２８４インタフェース装置（１００−８）、ネットワーク装置（１００−９）は、後述する図８に示す通信制御部（２００−０）の制御のもと、上述したＰＤＬデータ（１０００）やＪＤＦデータ（１００１）をプリンタ（１００）内に受信することができる。
【００３９】
ＣＰＵ（１００−０）は、ＲＡＭ（１００−１）に保存された命令を実行することで、後述する図８に示す、ＰＤＬ解釈処理やＪＤＦ解釈処理などを実現するソフトモジュール（２００）を実行する。
【００４０】
ＲＡＭ（１００−１）は、揮発性の記憶媒体である。このＲＡＭ（１００−１）は、ＰＤＬデータ（１０００）やＣＰＵ（１００−０）が実行すべき命令（プログラム）を保存することができる。また、このＲＡＭ（１００−１）は、バス（１００−６）を通じてＰＤＬデータ（１０００）やＣＰＵ（１００−０）が実行すべき命令を、ＣＰＵ（１００−０）を含む諸装置に転送することができる。このＲＡＭ（１００−１）は、揮発性の記憶媒体であり、プリンタ（１００）の電源が落とされると、保存された命令やデータは消去される。
【００４１】
ＨＤＤ（１００−２）はハードディスクドライブであり、不揮発性の記憶媒体である。このＨＤＤ（１００−２）は、ＣＰＵ（１００−０）が処理すべき命令（プログラム）やデータを保存しておくことで、電源断によってＲＡＭ（１００−１）上から失われるＣＰＵ（１００−０）が処理すべき命令やデータを保存しておくことができる。即ち、ＲＡＭ（１００−１）に保持されるＣＰＵ（１００−０）のプログラムは、ＨＤＤ（１００−２）からＲＡＭ（１００−１）にロードされたものである。
【００４２】
また、本実施例においては、このＨＤＤ（１００−２）は、ＲＡＭ（１００−１）より容量が大きいため、本実施例においては画像形成用ビットマップデータ（３０００）に代表されるデータはこのＨＤＤ（１００−２）に保存される。もちろん、本実施例では不揮発性の記憶媒体としてＨＤＤを例に示しているが、ＨＤＤの代わりにフラッシュ型ＥＥＰＲＯＭ、強誘電体メモリ（ＦｅＲＡＭ）、磁気抵抗メモリ（ＭＲＡＭ）などを用いても本発明を実施できることは言うまでもない。
【００４３】
ＡＳＩＣ（１００−３）は、後述する中間データを受け取ってラスタービットマップデータを生成することができる。
電子写真エンジン（１００−４）は、ＡＳＩＣ（１００−３）が生成したラスタービットマップデータを用いて、紙に代表される可視媒体上に可視像を形成する。なお、本実施例では電子写真エンジンを使って可視媒体上に可視像を得ているが、下記に示すそれ以外の機構を用いても本発明を実施できることは言うまでもない。すなわち、液晶パネル、有機ＥＬパネル、凸版印刷電子写真エンジン、オフセット印刷電子写真エンジン、インクジェット印刷電子写真エンジンなどを使っても本発明を実施できる。
【００４４】
バス（１００−５）は、上述した各々の装置を接続し、データや命令を相互にやり取りすることを可能にする。
［ソフトモジュールの説明］
次に、ＣＰＵ（１００−０）上で動作するソフトモジュール（２００）を図８を用いて説明する。
【００４５】
図８は、実施例１においてＣＰＵ（１００−０）上で動作するソフトモジュール（２００）の構成の一例を示すブロック図である。
ソフトモジュール（２００）は、ＨＤＤ（１００−２）に記録されたプログラムを、ＣＰＵ（１００−０）がＲＡＭ（１００−１）にロードして実行することにより実現されるものである。以下、詳細に説明する。
【００４６】
通信制御部（２００−０）は、第一に、ＵＳＢインタフェース（１００−７）、ＩＥＥＥ１２８４インタフェース装置（１００−８）乃至ネットワーク装置（１００−９）を制御し、ホストコンピュータ（１０１）との通信コネクションを確立する。
【００４７】
第二に、通信制御部（２００−０）は、ＵＳＢインタフェース（１００−７）、ＩＥＥＥ１２８４インタフェース装置（１００−８）乃至ネットワーク装置（１００−９）を制御することで、上述したＰＤＬデータ（１０００）やＪＤＦデータ（１００１）を受信する。
【００４８】
第三に、通信制御部（２００−０）は、受信したＰＤＬデータ（１０００）やＪＤＦデータ（１００１）をＲＡＭ（１００−１）に記録することができる。
ＰＤＬ解釈部２００−１は、ＲＡＭ（１００−１）上に記録されたＰＤＬデータ（１０００）に対する解釈処理を行い中間データ（２０００）（図１０）を生成する。
ＪＤＦ解釈部（２００−２）は、ＲＡＭ（１００−１）上に記録されたＪＤＦデータ（１００１）に対する解釈処理を行い、この解釈結果をジョブコントローラ部（２００−６）に伝える。
【００４９】
画像処理部（２００−３）は、上記ＰＤＬ解釈部の処理結果である中間データ（２０００）とＡＳＩＣ（１００−３）を使うことで画像形成用ビットマップデータ（３０００）（図１０）を生成する。
【００５０】
ＣＰＵクロック調整部（２００−４）は、ジョブコントローラ部（２００−６）の指令のもと、ＯＳ（２００−７）を介してＣＰＵ（１００−０）の動作クロックの周波数を変更することができる。
【００５１】
エンジン制御部（２００−５）は、画像形成用ビットマップデータ（３０００）と電子写真エンジン（１００−４）を使うことで画像形成処理を行うことができる。
ジョブコントローラ（２００−６）は、上述した各ソフトモジュール（２００−０，２００−１，２００−２，２００−３，２００−４，２００−５）間の情報伝達および処理フローの伝達を行う。これによって、ジョブコントローラ（２００−６）は、画像形成装置（１００）の画像形成処理を実現する。
【００５２】
ＯＳ（２００−７）は、上述した各ソフトモジュール（２００−０，２００−１，２００−２，２００−３，２００−４，２００−５）のタスク管理を行う。また、ＯＳ（２００−７）は、各ソフトモジュール（２００−０，２００−１，２００−２，２００−３，２００−４，２００−５）の命令を受けて、ＣＰＵ（１００−０）、ＲＡＭ（１００−１）、ＨＤＤ（１００−２）ＡＳＩＣ（１００−３）、電子写真エンジン（１００−４）、バス（１００−５）、ＵＳＢインタフェース装置（１００−７）、ＩＥＥＥ１２８４インタフェース装置（１００−８）、ネットワーク装置（１００−９）の制御を可能にする。例えば、ＯＳ（２００−７）は、ソフトモジュール（２００−０，２００−１，２００−２，２００−３，２００−４，２００−５）に対して、ＣＰＵ（１００−０）のクロック周波数の高低を制御する機能を提供する。
【００５３】
［タスク起動処理］
次に、プリンタ（１００）内のソフトモジュール（２００−０，２００−１，２００−２，２００−３，２００−４，２００−５，２００−６，２００−７）の起動処理について図９を用いて説明する。
【００５４】
図９は、実施例１におけるプリンタ（１００）内のソフトモジュール（２００−０〜２００−７）の起動処理の一例を示すフローチャートである。なお、このフローチャートの処理は、ＨＤＤ（１００−２）にコンピュータ読み取り可能に記録されたブートプログラムをＣＰＵ（１００−０）が読み出して実行することにより実現される。
【００５５】
プリンタ（１００）の電源が入り、上述したプリンタ内の諸装置群が起動する。これによって、まずＣＰＵ（１００−０）が起動する。ＣＰＵ（１００−０）は、ＨＤＤ（１００−２）に格納されているブートプログラムを実行し、本タスク起動処理を開始する。
【００５６】
ＣＰＵ（１００−０）は、ＨＤＤ（１００−２）にあるＯＳ（２００−７）のソフトウェアコードをＲＡＭ（１００−１）に読み込み、実行する。これによって、ＯＳ（２００−７）の処理がＣＰＵ（１００−０）で開始される（ＯＳ起動）（Ｓ１０−０）。以下、ＣＰＵ（１００−０）が実行するＯＳ（２００−７）の処理を、ＯＳ（２００−７）を主語にして説明する。
【００５７】
ＯＳ（２００−７）は、処理が開始されると、第一に、ＨＤＤ（１００−２）にある電子写真エンジン制御部（２００−５）のソフトウェアコードを、ＲＡＭ（１００−１）上に読み込む。次に、ＯＳ（２００−７）は、このＲＡＭ（１００−１）に読み込んだ電子写真エンジン制御部（２００−５）のソフトウェアコードをＣＰＵ（１００−０）上で実行開始する（エンジン制御部起動）（Ｓ１０−１）。
【００５８】
次に、ＯＳ（２００−７）は、ＨＤＤ（１００−２）にあるジョブコントローラ部（２００−６）のソフトウェアコードをＲＡＭ（１００−１）上に読み込む。次に、ＯＳ（２００−７）は、このＲＡＭ（１００−１）に読み込んだジョブコントローラ部（２００−６）のソフトウェアコードをＣＰＵ上で実行開始する（ジョブコントローラ部起動）（Ｓ１０−２）。
【００５９】
次に、ＯＳ（２００−７）は、ＨＤＤ（１００−２）にある画像生成部（２００−３）のソフトウェアコードをＲＡＭ（１００−１）上に読み込む。次に、ＯＳ（２００−７）は、このＲＡＭ（１００−１）に読み込んだジョブコントローラ部（２００−３）のソフトウェアコードをＣＰＵ上で実行開始する（画像生成部起動）（Ｓ１０−３）。
【００６０】
次に、ＯＳ（２００−７）は、ＨＤＤ（１００−２）にあるＰＤＬデータ処理部（２００−１）のソフトウェアコードをＲＡＭ（１００−１）上に読み込む。次に、ＯＳ（２００−７）は、このＲＡＭ（１００−１）に読み込んだＰＤＬデータ処理部（２００−１）のソフトウェアコードをＣＰＵ上で実行開始する（ＰＤＬデータ処理部起動）（Ｓ１０−４）。
【００６１】
次に、ＯＳ（２００−７）は、ＨＤＤ（１００−２）にあるＪＤＦ解釈部（２００−２）のソフトウェアコードをＲＡＭ（１００−１）上に読み込む。次に、ＯＳ（２００−７）は、このＲＡＭ（１００−１）に読み込んだＪＤＦ解釈部（２００−２）のソフトウェアコードをＣＰＵ上で実行開始する（ＪＤＦ解釈部起動）（Ｓ１０−５）。
【００６２】
次に、ＯＳ（２００−７）は、ＨＤＤ（１００−２）にある通信制御部（２００−０）のソフトウェアコードをＲＡＭ（１００−１）上に読み込む。次に、ＯＳ（２００−７）は、このＲＡＭ（１００−１）に読み込んだ通信制御部（２００−０）のソフトウェアコードをＣＰＵ上で実行開始する（通信制御部起動）（Ｓ１０−６）。
【００６３】
次に、ＯＳ（２００−７）は、ＨＤＤ（１００−２）にあるＣＰＵクロック調整部（２００−４）のソフトウェアコードをＲＡＭ（１００−１）上に読み込む。次に、ＯＳ（２００−７）は、このＲＡＭ（１００−１）に読み込んだＣＰＵクロック調整部（２００−４）のソフトウェアコードをＣＰＵ上で実行開始する（ＣＰＵクロック調整部起動）（Ｓ１０−７）。
【００６４】
以上の処理をもって、ＯＳ（２００−７）は、ソフトモジュール（２００−０，２００−１，２００−２，２００−３，２００−４，２００−５）を起動する。これによって、ＯＳ（２００−７）のタスク管理機能のもとで、ソフトモジュール（２００−０，２００−１，２００−２，２００−３，２００−４，２００−５）は、その処理をＣＰＵ（１００−０）上で並行して開始する。
【００６５】
［ＰＤＬデータおよびＪＤＦデータのデータフロー］
次に、処理フロー詳細を説明する前に、上述したデータと諸装置、およびソフトウェアモジュール群（２００−０〜２００−７）がどのような処理を行うかを概説する。この概説のために、データフローの観点で図１０を用いる。
【００６６】
図１０は、プリンタ（１００）内で行われるデータフローの一例を示す図である。
本実施例においては、プリンタ（１００）は、入力データとしてＰＤＬデータ（１０００）とＪＤＦデータ（１００１）を受信する。
まず、第一に、ＪＤＦデータ（１００１）を入力とするデータフローを、以下に説明する。
ＪＤＦ解釈部（２００−２）は、ＪＤＦデータ（１００１）を受け取って、これを解釈する（Ｓ３０）。ＪＤＦ解釈部（２００−２）はこの解釈処理（Ｓ３０）において、上述した図３に示したＪＤＦデータ（１００１）内の情報を抽出し、ジョブコントローラ部（２００−６）に伝える。すなわち、ＪＤＦ解釈部（２００−２）は、少なくともＮｉｎ１設定情報（１００１−１）、両面印刷設定情報（１００１−２）、カラー／モノクロ印刷設定情報（１００１−３）の情報を、ジョブコントローラ部（２００−６）に伝える。
【００６７】
次に、ジョブコントローラ部（２００−６）は、上記ＪＤＦ解釈部（２００−２）から受け取ったＪＤＦデータ（１００１）の解釈結果の情報をもとに、ＰＤＬデータ解釈処理（Ｓ２０）および画像生成処理（Ｓ４０）を行う（詳細は後述する）。上述のＪＤＦ解釈部（２００−２）からジョブコントローラ部（２００−６）に伝えられる設定情報の説明を以下に行う。
【００６８】
Ｎｉｎ１設定情報（１００１−１）は、紙に代表される可視媒体（４００）の片面に可視化すべき論理ページの数を示している（図４〜図６）。
図４〜図６は、可視媒体の片面に可視化すべき論理ページの数を示す図である。
例えば、Ｎｉｎ１設定情報（１００１−１）が「１」である場合には、紙に代表される可視媒体（４００）の片面に可視化すべき論理ページ（４００−１）の数は１つである（図４で例示）。また、Ｎｉｎ１設定情報（１００１−１）が「２」である場合には、紙に代表される可視媒体（４００）の片面に可視化すべき論理ページ（４００−１）の数は２つである（図５で例示）。また、Ｎｉｎ１設定情報（１００１−１）が「４」である場合には、紙に代表される可視媒体（４００）の片面に可視化すべき論理ページ（４００−１）の数は４つである（図６で例示）。
【００６９】
両面印刷設定情報（１００１−２）は、紙に代表される可視媒体（４００）の片面のみに可視化すべき論理ページを割り当てるか、両面に可視化すべき論理ページを割り当てるかを示す。例えば、両面印刷設定情報（１００１−２）が「片面」である場合には、プリンタ（１００）は紙に代表される可視媒体（４００）の片面にのみ可視化すべき論理ページ（４００−１）を可視化する。また、両面印刷設定情報（１００１−２）が「両面」である場合には、プリンタ（１００）は紙に代表される可視媒体（４００）の両面に可視化すべき論理ページ（４００−１）を可視化する。
【００７０】
カラー／モノクロ印刷設定情報（１００１−３）は、紙に代表される可視媒体（４００）上に可視化すべき論理ページをカラーで印刷すべきか、モノクロで印刷すべきかの情報を紙に代表される可視媒体（４００）ごとに持つ。例えば、カラー／モノクロ印刷設定情報（１００１−３）の一枚目の情報が「モノクロ」に設定されていた場合には、プリンタ（１００）はＰＤＬデータ（１０００）中にカラーの描画命令があったとしても、モノクロで印刷すべきことを示す。また、カラー／モノクロ印刷設定情報（１００１−３）の一枚目の情報が「カラー」に設定されていた場合には、プリンタ（１００）はＰＤＬデータ（１０００）にあるカラーの描画命令をカラーで印刷すべきことを示す。
【００７１】
以上説明したＪＤＦデータ（１００１）内の情報をもとに、ジョブコントローラ部（２００−６）は、後述する図１１に示すＣＰＵクロック調整処理で、ＣＰＵクロック調整部（２００−４）に伝えるべき情報（詳細は後述する）を生成する。
【００７２】
次に、ＰＤＬデータ（１０００）を入力データとするデータフローを以下に説明する。
プリンタ（１００）内のソフトウェアモジュール群（２００−０〜２００−７）は、このＰＤＬデータ（１０００）を入力として画像形成用のビットマップデータ（３０００）を生成する。
【００７３】
第一に、ＰＤＬ解釈部（２００−２）は、ＣＰＵ（１００−０）上でジョブコントローラ部（２００−６）の制御のもと、ＰＤＬデータ（１０００）の解釈処理を行い、中間データ（２０００）を生成する（Ｓ２０）。このジョブコントローラ部（２００−６）の制御は、少なくとも上述したＪＤＦデータ（１００１）の解釈結果の情報をもとに行われる。
【００７４】
画像生成部（２００−３）は、ＡＳＩＣ（１００−３）上でこの中間データ（２０００）を入力として、画像形成用のビットマップデータ（３０００）を生成する（Ｓ４０）。この画像形成用のビットマップデータ（３０００）の生成も同様に、画像生成部（２００−３）は、少なくとも上述したＪＤＦデータ（１００１）の解釈結果の情報をもとに生成する。
【００７５】
次に、図１０には示していないが、電子写真エンジン制御部（２００−５）は、ジョブコントローラ部（２００−６）の制御のもと、電子写真エンジン（１００−４）を使って、画像形成用のビットマップデータ（３０００）をもとに、紙に代表される可視媒体（４００）上に可視像を生成する。
【００７６】
［ＣＰＵクロック調整処理］
次に、ＰＤＬ解釈処理（図１０のＳ２０）中に行われる、ＣＰＵ（１００−０）上で実行されるＣＰＵクロック調整部（２００−４）によるＣＰＵクロック調整処理を、図１１を用いて説明する。
【００７７】
図１１は、実施例１のプリンタ１００においてＣＰＵクロック調整部（２００−４）が実行するクロック調整処理の一例を示すフローチャートである。即ち、このフローチャートの処理は、ＨＤＤ（１００−２）に記録されたプログラムを、ＣＰＵ（１００−０）がＲＡＭ（１００−１）にロードして実行することにより実現されるものである。
【００７８】
まず、Ｓ１００−０において、ＣＰＵクロック調整部（２００−４）は、現在、ＰＤＬデータ処理部（２００−１）がＰＤＬデータ（１０００）の解釈処理を行っているか否かを判断する。なお、ＰＤＬデータ処理部（２００−１）がＰＤＬデータ（１０００）の解釈処理を行っているかどうかの情報は、ＣＰＵクロック調整部（２００−４）がジョブコントローラ部（２００−６）に問い合わせることによって得られる。
【００７９】
もし、上記Ｓ１００−０で、ＰＤＬデータ処理部（２００−１）がＰＤＬデータ（１０００）の解釈処理を行っていると判断した場合（Ｙｅｓ）、ＣＰＵクロック調整部（２００−４）は、Ｓ１００−１に処理を進める。
【００８０】
一方、上記Ｓ１００−０で、ＰＤＬデータ処理部（２００−１）がＰＤＬデータ（１０００）の解釈処理を行っていないと判断した場合（Ｎｏ）、ＣＰＵクロック調整部（２００−４）は、そのままＳ１００−６に処理を進める。
【００８１】
Ｓ１００−１では、ＣＰＵクロック調整部（２００−４）は、電子写真エンジン１００−４により処理済み（排紙済み）のカラー面数とモノクロ面数を得る。この処理済みのカラー面数とモノクロ面数は、ＣＰＵクロック調整部（２００−４）がジョブコントローラ部（２００−６）に問い合わせることによって得られる。これらの情報は、少なくともジョブコントローラ部（２００−６）によりＪＤＦ解釈部（２００−２）から得られたＮｉｎ１設定情報（１００１−１）、カラー／モノクロ印刷設定情報（１００１−３）をもとにして生成され、ＣＰＵクロック調整部（２００−４）に伝えられる。
【００８２】
次に、Ｓ１００−２において、ＣＰＵクロック調整部（２００−４）は以下のような方法で予測される排紙時間を計算する。まず、ＣＰＵクロック調整部（２００−４）は、上記ジョブコントローラ部（２００−６）から得た処理済みのカラーページ面数を、カラーのＰＰＭ値を除算して、前記画像形成手段がカラーの画像形成を１面行う場合に要する時間を予測する。なお、カラーのＰＰＭ値とは、１分あたりにカラーで画像形成可能な枚数（予測値、設計値）を示す。次に、ＣＰＵクロック調整部（２００−４）は、上記ジョブコントローラ部（２００−６）から得た処理済みのモノクロページ面数を、モノクロのＰＰＭ値で除算して、前記画像形成手段がモノクロの画像形成を１面行う場合に要する時間を予測する。なお、モノクロのＰＰＭ値とは、１分あたりにモノクロで画像形成可能な枚数（予測値、設計値）を示す。次に、ＣＰＵクロック調整部（２００−４）は、電子写真エンジン（１００−４）が一枚目を印刷するまでに必要な最短の時間（ＦＰＯＴ）を求める。これら三つの値を加算し、ＲＡＭ１００−１内に確保されている排紙時間の変数に代入する。
【００８３】
なお、本実施例では、ＣＰＵクロック調整部（２００−４）は、カラーのＰＰＭ値、モノクロのＰＰＭ値、及びＦＰＯＴを、予めＨＤＤ（１００−２）に保存された値を読み込むことによって得る。本実施例では、これら三つの値（カラーのＰＰＭ値、モノクロのＰＰＭ値、ＦＰＯＴ）は、電子写真エンジン（１００−４）に対応付けられた固定値であり、プリンタ（１００）に固定的に与えられた値である。このため、本実施例では、これらの三つの値は、工場出荷時等に、ＨＤＤ（１００−２）に固定値として保存されているものとする。
【００８４】
即ち、上記Ｓ１００−２では、ＰＤＬデータ処理部（２００−１）による入力データの解釈結果に基づいて、ＰＤＬデータ処理部（２００−１）が処理中の一のジョブを構成する入力データから生成された画像データのうち、電子写真エンジン１００−４により処理済みの画像データを、電子写真エンジン１００−４で処理するのに要する時間を予測した排紙時間（第１処理時間）を取得する（第１取得ステップ）。
【００８５】
次に、Ｓ１００−３において、ＣＰＵクロック調整部（２００−４）は、以下のような方法で内部処理時間を得る。まず、第一に、ＣＰＵクロック調整部（２００−４）は、前ページまでの累積内部処理時間（実時間）と現在処理中の論理ページの経過時間（実時間）との和を求める。これら実時間の和は、ＣＰＵクロック調整部（２００−４）がジョブコントローラ部（２００−６）に問い合わせることによって求められる。ジョブコントローラ部（２００−６）は、ＰＤＬデータ（１０００）の入力が開始された時間と現在の時間との差分を求めることによって上記時間の和を求め、この値を、ＲＡＭ１００−１内に確保されている内部処理時間の変数に代入する。
【００８６】
即ち、Ｓ１００−３では、前記一のジョブを構成する入力データをＰＤＬデータ処理部（２００−１）や画像生成部（２００−３）が実際に処理した時間を示す内部処理時間（第２処理時間）を取得する（第２取得ステップ）。
【００８７】
次に、Ｓ１００−４において、ＣＰＵクロック調整部（２００−４）は、上述した排紙時間と内部処理時間を比較する処理を行う。
そして、上記Ｓ１００−４において、ＣＰＵクロック調整部（２００−４）は、排紙時間が内部処理時間より小さいと判断した場合（Ｙｅｓ）、Ｓ１００―５に処理を進める。
一方、上記Ｓ１００−４において、ＣＰＵクロック調整部（２００−４）は、排紙時間が内部処理時間より小さくないと判断した場合（Ｎｏ）、Ｓ１００―６に処理を進める。
Ｓ１００−５では、ＣＰＵクロック調整部（２００−４）は、以下のように高クロック化処理を行う。ＣＰＵクロック調整部（２００−４）は、ジョブコントローラ部（２００−６）を介して、ＯＳ（２００−７）が提供するＣＰＵ（１００−０）のクロック周波数の制御機能を使い、ＣＰＵ（１００−０）のクロック周波数を高めることで上記高クロック化処理を実行する。そして、Ｓ１００−７に処理を進める。
【００８８】
また、Ｓ１００−６では、ＣＰＵクロック調整部（２００−４）は、以下のように低クロック化処理を行う。ＣＰＵクロック調整部（２００−４）は、ジョブコントローラ部（２００−６）を介して、ＯＳ（２００−７）が提供するＣＰＵ（１００−０）のクロック周波数の制御機能を使い、ＣＰＵ（１００−０）のクロック周波数を低めることで上記低クロック化処理を実行する。そして、Ｓ１００−７に処理を進める。
【００８９】
最後に、Ｓ１００−７において、ＣＰＵクロック調整部（２００−４）は以下のような方法で一定時間スリープ処理を行う。ＣＰＵクロック調整部（２００−４）は、上述したＯＳ（２００−７）のタスク管理機能を使って一定時間にわたりＣＰＵクロック調整部の処理を行わず、他のソフトウェアモジュール群（２００−０，２００−１，２００−２，２００−３，２００−６，２００−７）の制御を優先せしめる。そして、一定時間経過すると、ＣＰＵクロック調整部（２００−４）は、Ｓ１００−０に処理を戻す。これにより、ＣＰＵクロック調整部（２００−４）は、プリンタ（１００）が起動している間、ＰＤＬデータ（１０００）の解釈処理中かどうかを判定し続けながら、上述したクロック周波数の調整処理を行う。
【００９０】
なお、本実施例では、ＣＰＵ（１００−０）を、第１の周波数、又は、第２の周波数（第１の周波数より低い周波数）で動作させる構成とし、Ｓ１００−６の処理ではＣＰＵ（１００−０）の動作クロックを第１の周波数にし、Ｓ１００−７の処理ではＣＰＵ（１００−０）の動作クロックを第２の周波数にするように制御するものとする。しかし、ＣＰＵ（１００−０）を、３つ以上の周波数のいずれかで動作させる構成とし、Ｓ１００−６のではＣＰＵ（１００−０）の動作クロックをより高い周波数に変更するように制御し、Ｓ１００−７の処理ではＣＰＵ（１００−０）の動作クロックをより低い周波数に変更するように制御する構成でもよい。
【００９１】
［本実施例の効果］
以上述べてきたように、実施例１によれば、プリンタ（１００）は、ＰＤＬデータ（１０００）やＪＤＦデータ（１００１）を処理することで、上述した印刷設定やカラーデータかモノクロデータかを判定することができる。さらに、プリンタ（１００）は、少なくともこの判定結果をもとに、電子写真エンジン（１００−４）が画像形成する時間を予測する（図１１のＳ１００−２）ことができる。さらに、プリンタ（１００）はこの電子写真エンジンが画像形成する時間（排紙時間）と、ＰＤＬデータ処理部２００−１がＰＤＬデータを処理した時間（内部処理時間）とを比較し（図１１のＳ１００−４）、比較結果に基づいて、ＣＰＵ（１００−０）の動作周波数制御（Ｓ１００−５，Ｓ１００−６）を行う。これによって、画像形成にかかる時間というプリンタ（１００）の特性を考慮した電力消費量制御を行い、無駄な電力消費を抑えることができる。
【実施例２】
【００９２】
上述した実施例１では、プリンタ（１００）は、電子写真エンジンが画像形成する時間の時間予測（排紙時間）と内部処理時間とを比較し（図１１のＳ１００−４）、該比較結果に応じて、ＣＰＵ（１００−０）の動作周波数制御（Ｓ１００−５，Ｓ１００−６）を実行することで、電力消費量を制御している。
【００９３】
本実施例では、マルチコアＣＰＵを有するプリンタの例を示す。本実施例では、マルチコアＣＰＵを有するプリンタは、電子写真エンジンが画像形成する時間の時間予測（排紙時間）と内部処理時間とを比較し、該比較結果に応じて、マルチコアＣＰＵのＣＰＵコア制御を実行することで、電力消費量を制御する。以下、本発明を実施するためのこの別の形態について図面を用いて説明する。
【００９４】
なお、［プリンタの接続形態の説明］、［ＰＤＬデータの説明］、［ＪＤＦデータの説明］は実施例１と同等であるためここではその説明を省略し、実施例１と異なる点のみ説明する。
【００９５】
［プリンタ内の装置の説明］
図１２は、実施例２におけるプリンタ（１００）の構成の一例を示すブロック図である。なお、図７と同一のものには同一の符号を付してある。
【００９６】
本実施例のプリンタ１００は、実施例１と以下の点が異なる。すなわち本実施例において、本実施例のプリンタ１００は、マルチコアＣＰＵ（１００−１０）を有する点で実施例１とは異なる。マルチコアＣＰＵ（１００−１０）は、ＣＰＵの処理を分担して処理可能な複数のＣＰＵコアを持つことで、後述するソフトウェアによる処理を高速に処理することができる。
【００９７】
ＲＡＭ（１００−１）は、マルチコアＣＰＵ（１００−０）が実行すべき命令（プログラム）を保存することができる。ＲＡＭ（１００−１）は、バス（１００−６）を通じてマルチコアＣＰＵ（１００−１０）が実行すべき命令を、マルチコアＣＰＵ（１００−１０）を含む諸装置に転送することができる。
【００９８】
ＨＤＤ（１００−２）は、マルチコアＣＰＵ（１００−１０）が処理すべき命令（プログラム）やデータを保存しておくことで、電源断によってＲＡＭ（１００−１）上から失われるマルチコアＣＰＵ（１００−１０）が処理すべき命令やデータを保存しておくことができる。即ち、ＲＡＭ（１００−１）に保持されるマルチコアＣＰＵ（１００−１０）のプログラムは、ＨＤＤ（１００−２）からＲＡＭ（１００−１）にロードされたものである。
【００９９】
バス（１００−５）は、図１２に示した各々の装置を接続し、データや命令を相互にやり取りすることを可能にする。
［ソフトモジュールの説明］
次に、マルチコアＣＰＵ（１００−１０）上で動作するソフトモジュール２００を図１３を用いて以下に説明する。
【０１００】
図１３は、実施例２においてマルチコアＣＰＵ（１００−１０）上で動作するソフトモジュール２００の構成の一例を示すブロック図である。なお、図８と同一のものには同一の符号を付してある。
【０１０１】
本実施例のソフトモジュール２００は、実施例１と以下の点が異なる。すなわち本実施例において、本実施例のソフトモジュール２００は、ＣＰＵコア制御部（２００−８）を有する点で実施例１とは異なる。
【０１０２】
ＣＰＵコア制御部（２００−８）は、ジョブコントローラ部（２００−６）の指令のもと、ＯＳ（２００−７）を介して、動作させるマルチコアＣＰＵ（１００−１０）内のＣＰＵコアを制御することができる。すなわち、ＣＰＵコア制御部（２００−８）は、マルチコアＣＰＵ（１００−１０）内の複数のＣＰＵコアのうち、いくつのＣＰＵコアを有効又は無効にしてソフトウェアによる処理を実行するかを決定することができる。これによって、ＣＰＵコア制御部（２００−８）は、電力を消費するＣＰＵコアの数を制御することで、マルチコアＣＰＵ（１００−１０）の電力消費量を制御することができる。
【０１０３】
ＯＳ（２００−７）は、各ソフトモジュール（２００−０，２００−１，２００−２，２００−３，２００−８，２００−５）のタスク管理を行う。また、ＯＳ（２００−７）は、各ソフトモジュール（２００−０，２００−１，２００−２，２００−３，２００−８，２００−５）の命令を受けてマルチコアＣＰＵ（１００−１０）、ＲＡＭ（１００−１）、ＨＤＤ（１００−２）ＡＳＩＣ（１００−３）、電子写真エンジン（１００−４）、バス（１００−５）、ＵＳＢインタフェース装置（１００−７）、ＩＥＥＥ１２８４インタフェース装置（１００−８）、ネットワーク装置（１００−９）の制御を可能にする。例えば、ＯＳ（２００−７）は、ソフトモジュール（２００−０，２００−１，２００−２，２００−３，２００−８，２００−５）に対してマルチコアＣＰＵ（１００−１０）内のＣＰＵコアを制御する機能を提供する。
【０１０４】
［タスク起動処理］
次に、実施例２におけるプリンタ（１００）内のソフトモジュール（２００−０，２００−１，２００−２，２００−３，２００−８，２００−５，２００−６，２００−７）の起動処理を図１４を用いて説明する。
【０１０５】
図１４は、実施例２におけるプリンタ（１００）内のソフトモジュール（２００−０〜２００−３，２００−８，２００−５〜２００−７）の起動処理の一例を示すフローチャートである。なお、このフローチャートの処理は、ＨＤＤ（１００−２）にコンピュータ読み取り可能に記録されたブートプログラムをマルチコアＣＰＵ（１００−１０）が読み出して実行することにより実現される。
【０１０６】
プリンタ（１００）の電源が入り、上述したプリンタ内の諸装置群が起動する。これによって、まずマルチコアＣＰＵ（１００−１０）が起動する。マルチコアＣＰＵ（１００−１０）は、ＨＤＤ（１００−２）に格納されているブートプログラムを実行し、本タスク起動処理を開始する。
【０１０７】
マルチコアＣＰＵ（１００−１０）は、ＨＤＤ（１００−２）にあるＯＳ（２００−７）のソフトウェアコードをＲＡＭ（１００−１）に読み込み、実行する。これによって、ＯＳ（２００−７）の処理がマルチコアＣＰＵ（１００−１０）で開始される（ＯＳ起動）（Ｓ１１−０）。以下、マルチコアＣＰＵ（１００−１０）が実行するＯＳ（２００−７）の処理を、ＯＳ（２００−７）を主語にして説明する。
【０１０８】
なお、Ｓ１１−１〜Ｓ１１−６は、図９のＳ１０−１〜Ｓ１０−６と同一の処理であるので、説明は省略する。
Ｓ１１−７において、ＯＳ（２００−７）は、ＨＤＤ（１００−２）にあるＣＰＵコア制御部（２００−８）のソフトウェアコードをＲＡＭ（１００−１）上に読み込む。次に、ＯＳ（２００−７）は、このＲＡＭ（１００−１）に読み込んだＣＰＵコア制御部（２００−８）のソフトウェアコードをＣＰＵ上で実行開始する（ＣＰＵコア制御部起動）。
【０１０９】
以上の処理をもって、ＯＳ（２００−７）は、ソフトモジュール（２００−０，２００−１，２００−２，２００−３，２００−８，２００−５）を起動する。これによって、ＯＳ（２００−７）のタスク管理機能のもとで、ソフトモジュール（２００−０，２００−１，２００−２，２００−３，２００−８，２００−５）は、その処理をマルチコアＣＰＵ（１００−１０）上で並行して開始する。
【０１１０】
［ＰＤＬデータおよびＪＤＦデータのデータフロー］
次に上述したデータと諸装置、およびソフトウェアモジュール群（２００−０，２００−１，２００−２，２００−３，２００−８，２００−５，２００−６，２００−７）がどのような処理を行うかを、図１０を用いて概説する。しかし、ＰＤＬデータおよびＪＤＦデータのデータフローは実施例１とほぼ同等であるため差分のみ以下に説明する。
【０１１１】
実施例１においては、ＪＤＦデータ（１００１）内の情報をもとに、ジョブコントローラ部（２００−６）がＣＰＵクロック調整処理（図１１）でＣＰＵクロック調整部（２００−４）に伝えるべき情報を生成する。
【０１１２】
一方、実施例２においては、ＪＤＦデータ（１００１）内の情報をもとに、ジョブコントローラ部（２００−６）が後述するＣＰＵコア制御処理（図１５）でＣＰＵコア制御部（２００−８）に伝えるべき情報を生成する。
【０１１３】
［ＣＰＵコア制御処理］
次に、ＰＤＬ解釈処理（図１０のＳ２０）中に行われる、ＣＰＵ（１００−０）上で実行されるＣＰＵコア制御部（２００−８）によるＣＰＵコア制御処理を、図１５を用いて説明する。
【０１１４】
図１５は、実施例２のプリンタ（１００）においてＣＰＵコア制御部（２００−８）が実行するＣＰＵコア制御処理の一例を示すフローチャートである。即ち、このフローチャートの処理は、ＨＤＤ（１００−２）に記録されたプログラムを、マルチコアＣＰＵ（１００−１０）がＲＡＭ（１００−１）にロードして実行することにより実現されるものである。
【０１１５】
まず、Ｓ１０１−０、ＣＰＵコア制御部（２００−８）は、現在、ＰＤＬデータ処理部（２００−１）がＰＤＬデータ（１０００）の解釈処理を行っているか否かを判断する。なお、ＰＤＬデータ処理部（２００−１）がＰＤＬデータ（１０００）の解釈処理を行っているかどうかの情報は、ＣＰＵコア制御部（２００−８）がジョブコントローラ部（２００−６）に問い合わせることによって得られる。
【０１１６】
もし、上記Ｓ１０１−０で、ＰＤＬデータ処理部（２００−１）がＰＤＬデータ（１０００）の解釈処理を行っていると判断した場合（Ｙｅｓ）、ＣＰＵコア制御部（２００−８）は、Ｓ１０１−１に処理を進める。
【０１１７】
一方、上記Ｓ１０１−０で、ＰＤＬデータ処理部（２００−１）がＰＤＬデータ（１０００）の解釈処理を行っていないと判断した場合（Ｎｏ）、ＣＰＵコア制御部（２００−８）は、そのままＳ１０１−６に処理を進める。
【０１１８】
Ｓ１０１−１では、ＣＰＵコア制御部（２００−８）は、電子写真エンジン１００−４により処理済み（排紙済み）のカラー面数とモノクロ面数を得る。この処理済みのカラー面数とモノクロ面数は、ＣＰＵコア制御部（２００−８）がジョブコントローラ部（２００−６）に問い合わせることによって得られる。これらの情報は、少なくともジョブコントローラ部（２００−６）によりＪＤＦ解釈部（２００−２）から得られたＮｉｎ１設定情報（１００１−１）、カラー／モノクロ印刷設定情報（１００１−３）をもとにして生成され、ＣＰＵコア制御部（２００−８）に伝えられる。
【０１１９】
次に、Ｓ１０１−２において、ＣＰＵコア制御部（２００−８）は以下のような方法で予測される排紙時間を計算する。まず、ＣＰＵコア制御部（２００−８）は、上記ジョブコントローラ部（２００−６）から得た処理済みのカラーページ面数を、カラーのＰＰＭ値を除算する。なお、ＰＰＭ値とは、１分あたりに画像形成可能な枚数（設計値）を示す。次に、ＣＰＵコア制御部（２００−８）は、上記ジョブコントローラ部（２００−６）から得た処理済みのモノクロページ面数を、モノクロのＰＰＭ値で除算する。次に、ＣＰＵコア制御部（２００−８）は、電子写真エンジン（１００−４）が一枚目を印刷するまでに必要な最短の時間（ＦＰＯＴ）を求める。これら三つの値を加算し、ＲＡＭ１００−１内に確保されている排紙時間の変数に代入する。
【０１２０】
なお、本実施例では、ＣＰＵコア制御部（２００−８）は、カラーのＰＰＭ値、モノクロのＰＰＭ値、及びＦＰＯＴを、予めＨＤＤ（１００−２）に保存された値を読み込むことによって得る。本実施例では、これら三つの値（カラーのＰＰＭ値、モノクロのＰＰＭ値、ＦＰＯＴ）は、電子写真エンジン（１００−４）に対応付けられた固定値であり、プリンタ（１００）に固定的に与えられた値である。このため、本実施例では、これらの三つの値は、工場出荷時等に、ＨＤＤ（１００−２）に固定値として保存されているものとする。
【０１２１】
即ち、上記Ｓ１０１−２では、ＰＤＬデータ処理部（２００−１）による入力データの解釈結果に基づいて、ＰＤＬデータ処理部（２００−１）が処理中の一のジョブを構成する入力データから生成された画像データのうち、電子写真エンジン１００−４により処理済みの画像データを、電子写真エンジン１００−４で処理するのに要する時間を予測した排紙時間（第１処理時間）を取得する（第１取得ステップ）。
【０１２２】
次に、Ｓ１０１−３において、ＣＰＵコア制御部（２００−８）は、以下のような方法で内部処理時間を得る。まず、第一に、ＣＰＵコア制御部（２００−８）は、前ページまでの累積内部処理時間（実時間）と現在処理中の論理ページの経過時間（実時間）との和を求める。これら実時間の和は、ＣＰＵコア制御部（２００−８）がジョブコントローラ部（２００−６）に問い合わせることによって求められる。ジョブコントローラ部（２００−６）は、ＰＤＬデータ（１０００）の入力が開始された時間と現在の時間との差分を求めることによって上記時間の和を求め、この値を、ＲＡＭ１００−１内に確保されている内部処理時間の変数に代入する。
【０１２３】
即ち、Ｓ１０１−３では、前記一のジョブを構成する入力データをＰＤＬデータ処理部（２００−１）や画像生成部（２００−３）が実際に処理した時間を示す内部処理時間（第２処理時間）を取得する（第２取得ステップ）。
【０１２４】
次に、Ｓ１０１−４において、ＣＰＵクロック調整部（２００−４）は、上述した排紙時間と内部処理時間を比較する処理を行う。
そして、上記Ｓ１０１−４において、ＣＰＵコア制御部（２００−８）は、排紙時間が内部処理時間より小さいと判断した場合（Ｙｅｓ）、Ｓ１０１―５に処理を進める。
一方、上記Ｓ１０１−４において、ＣＰＵクロック調整部（２００−４）は、排紙時間が内部処理時間より小さくないと判断した場合（Ｎｏ）、Ｓ１０１―６に処理を進める。
Ｓ１０１−５では、ＣＰＵコア制御部（２００−８）は、以下のように、マルチコアＣＰＵ（１００−１０）の全てのＣＰＵコアを有効化する処理を行う。ＣＰＵコア制御部（２００−８）は、ジョブコントローラ部２００−６を介して、ＯＳ（２００−７）が提供するマルチコアＣＰＵ（１００−１０）内のＣＰＵコアの制御機能を使い、全てのＣＰＵコアを有効にすることで、上記全てのＣＰＵコアを有効化する処理を実行する。そして、Ｓ１０１−７に処理を進める。
【０１２５】
また、Ｓ１０１−６では、ＣＰＵコア制御部（２００−８）は、以下のようにＣＰＵコアの一部のみを有効にする処理（ＣＰＵコアの一部を無効にする処理）を行う。ＣＰＵコア制御部（２００−８）は、ジョブコントローラ部２００−６を介して、ＯＳ（２００−７）が提供するマルチコアＣＰＵ（１００−１０）内のＣＰＵコアの制御機能を使い、一部のＣＰＵコアを無効にすることで、上記ＣＰＵコアの一部のみを有効にする処理（ＣＰＵコアの一部を無効にする処理）を実行する。例えば、ここで本実施例のＣＰＵコア制御部（２００−８）は、マルチコアＣＰＵ（１００−１０）が有するＣＰＵコアのうち１つを除いてすべて無効化するものとする。なお、本発明は、ＣＰＵコアのうち１つを除いてすべて無効化する構成に限定されるものではなく、マルチコアＣＰＵ（１００−１０）が有するＣＰＵコアのうち１つ以上を無効化すれば、本発明を実施できることは言うまでもない。
そして、Ｓ１０１−６の処理を完了すると、ＣＰＵコア制御部（２００−８）は、Ｓ１０１−７に処理を進める。
【０１２６】
最後に、Ｓ１０１−７において、ＣＰＵコア制御部（２００−８）は以下のような方法で一定時間スリープ処理を行う。ＣＰＵコア制御部（２００−８）は、上述したＯＳ（２００−７）のタスク管理機能を使って一定時間にわたりＣＰＵクロック調整部の処理を行わず、他のソフトウェアモジュール群（２００−０，２００−１，２００−２，２００−３，２００−６，２００−７）の制御を優先せしめる。そして、一定時間経過すると、ＣＰＵコア制御部（２００−８）は、Ｓ１０１−０に処理を戻す。これにより、ＣＰＵコア制御部（２００−８）は、プリンタ（１００）が起動している間、ＰＤＬデータ（１０００）の解釈処理中かどうかを判定し続けながら、上述したＣＰＵコア制御処理を行う。
【０１２７】
なお、本実施例では、マルチコアＣＰＵ（１００−１０）を、全てのコアを有効化した状態、又は、所定の一部のみを有効化した状態（所定の一部以外を無効化した状態）で動作させる構成とし、Ｓ１０１−５の処理でマルチコアＣＰＵ（１００−１０）の全コアを有効化し、Ｓ１０１−６の処理ではマルチＣＰＵ（１００−１０）の所定の一部のみを有効化した状態（所定の一部以外を無効化した状態）にするように制御するものとする。しかし、Ｓ１０１−６の処理で、マルチＣＰＵ（１００−１０）のコアの一部を段階的に（最後の１つになるまで段階的に）無効化するように制御してもよい。
【０１２８】
［本実施例の効果］
以上述べてきたように、実施例２によれば、プリンタ（１００）は、ＰＤＬデータ（１０００）やＪＤＦデータ（１００１）を処理することで、上述した印刷設定やカラーデータかモノクロデータかを判定することができる。さらに、プリンタ（１００）は、少なくともこの判定結果をもとに、電子写真エンジン（１００−４）が画像形成する時間を予測する（図１５のＳ１０１−２）ことができる。さらに、プリンタ（１００）はこの電子写真エンジンが画像形成する時間（排紙時間）と、ＰＤＬデータ処理部２００−１がＰＤＬデータを処理した時間（内部処理時間）とを比較し（図１５のＳ１０１−４）、比較結果に基づいて、マルチコアＣＰＵ（１００−１０）のＣＰＵコア制御（図１５のＳ１０１−５，Ｓ１０１−６）を行う。これによって、画像形成にかかる時間というプリンタ（１００）の特性を考慮した電力消費量制御を行い、無駄な電力消費を抑えることができる。
【実施例３】
【０１２９】
ＣＰＵコア制御部（２００−８）が、上述の実施例１の［ＣＰＵクロック調整処理］、及び、実施例２の［ＣＰＵコア制御処理］を組み合わせた処理を行う構成であってもよい。
【０１３０】
即ち、ＣＰＵコア制御部（２００−８）は、排紙時間が内部処理時間より小さいと判断した場合、マルチコアＣＰＵ（１００−１０）内の全てのＣＰＵコアを有効にする処理、マルチコアＣＰＵ（１００−１０）を高クロック化する処理のいずれか又は双方を行う。一方、排紙時間が内部処理時間より小さくないと判断した場合、ＣＰＵコア制御部（２００−８）は、マルチコアＣＰＵ（１００−１０）内の一部のＣＰＵコアを無効にする処理、マルチコアＣＰＵ（１００−１０）を低クロック化する処理のいずれか又は双方を行うように構成する。
【実施例４】
【０１３１】
上述の実施例１の［ＣＰＵクロック調整処理］、及び、実施例２の［ＣＰＵコア制御処理］で説明した電力消費量制御の別の形態を説明する。
実施例１においては、ＣＰＵクロック調整部（２００−４）は以下のような方法で上述した排紙時間と内部処理時間を比較する処理を行っている（図１１のＳ１００−４）。すなわち、ＣＰＵクロック調整部（２００−４）は、排紙時間が内部処理時間より小さいと判断した場合にはＳ１００―５に処理を進める。一方、排紙時間が内部処理時間より小さくないと判断した場合、ＣＰＵクロック調整部（２００−４）は、Ｓ１００―６に処理を進める。
【０１３２】
また、実施例２においては、ＣＰＵコア制御部（２００−８）は以下のような方法で上述した排紙時間と内部処理時間を比較する処理を行っている（図１５のＳ１０１−４）。すなわち、ＣＰＵコア制御部（２００−８）は、排紙時間が内部処理時間より小さいと判断した場合にはＳ１０１−５に処理を進める。一方、排紙時間が内部処理時間より小さくないと判断した場合、ＣＰＵコア制御部（２００−８）は、Ｓ１０１−６に処理を進める。
【０１３３】
しかし、以下のように判断処理によっても電力消費量制御を実施可能である。以下に、本実施例における、実施例１と実施例２の差分を説明する。
第一に、実施例１の［ＣＰＵクロック調整処理］の場合、ＣＰＵクロック調整部（２００−４）は、図１１のＳ１００−４において、以下のような方法で上述した排紙時間と内部処理時間を比較する処理を行う。すなわち、ＣＰＵクロック調整部（２００−４）は、排紙時間が内部処理時間に予め定められた値を乗算したものより小さいと判断した場合、Ｓ１００―５に処理を進める。一方、排紙時間が内部処理時間に予め定められた値を乗算したものより小さくないと判断した場合、ＣＰＵクロック調整部（２００−４）は、Ｓ１００―６に処理を進めるように構成する。
【０１３４】
次に、実施例２の［ＣＰＵコア制御処理］の場合、ＣＰＵコア制御部（２００−８））は、図１５のＳ１０１−４において、以下のような方法で上述した排紙時間と内部処理時間を比較する処理を行う。すなわちＣＰＵコア制御部（２００−８）は、排紙時間が内部処理時間に予め定められた値を乗算したものより小さいと判断した場合、Ｓ１０１―５に処理を進める。一方、排紙時間が内部処理時間に予め定められた値を乗算したものより小さくないと判断した場合、ＣＰＵコア制御部（２００−８）は、Ｓ１０１―６に処理を進める。
【０１３５】
［本実施例の効果］
上記処理によって、画像形成にかかる時間というプリンタ（１００）の特性を考慮した電力消費量制御を行うことができる。加えて、内部処理時間に予め定められた値を乗算したものと、排紙時間とを比較することで、以下のような実施例１及び実施例２にない効果を奏する。
【０１３６】
すなわち、排紙時間と内部処理時間の差が大きくなったときにだけ電力消費量を下げる制御（実施例１の低クロック化処理（図１１のＳ１００−６）や実施例２のＣＰＵコア一部無効化処理（図１５のＳ１０１−６））を行うことで、不用意に内部処理時間を低下させてしまい、ＣＰＵによる消費電力を低下させる処理と、ＣＰＵによる消費電力を上げる処理とを、短時間に繰り返してしまうといった事態の発生を防止することができる。
【０１３７】
以上示したように、本発明の画像形成装置は、ＰＤＬデータやＪＤＦデータに代表される入力データを解釈して印刷設定やカラー／モノクロを判定し、該判定結果をもとに、電子写真エンジンが画像形成に要する設計上の時間（排紙時間）を予測する。そして、この排紙時間と入力データのＰＤＬ処理時間（内部時間）との比較結果に基づいて電力消費量制御を行うことによって、画像形成状態を考慮した画像形成装置の電力消費量制御（画像形成装置が備えるＣＰＵに代表されるハードウェアの処理能力を向上させて入力データのＰＤＬ処理を高速に行わせるか、前記ハードウェアの処理能力を低下させて入力データのＰＤＬ処理を低速に行わせるかの制御）を行うことができる。これにより、画像形成装置が備えるＣＰＵに代表されるハードウェアの電力消費の無駄を抑えることができ、画像形成装置の電力消費量を抑えることができる。
【０１３８】
すなわち、本発明によれば、画像形成処理すべきデータの特徴と画像形成処理の状態を考慮した画像形成装置における最適な電力消費量制御を実現し、無駄な電力消費を抑えることができる。
【０１３９】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１４０】
また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。
（他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【０１４１】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施例の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【０１４２】
１００    プリンタ
２００    ホストコンピュータ
１００−０    ＣＰＵ
１００−４    電子写真エンジン
２００−６    ジョブコントローラ部
２００−４    ＣＰＵクロック調整部
【図１】
2013178628.tif 000003
【図２】
2013178628.tif 000004
【図３】
2013178628.tif 000005
【図４】
2013178628.tif 000006
【図５】
2013178628.tif 000007
【図６】
2013178628.tif 000008
【図７】
2013178628.tif 000009
【図８】
2013178628.tif 000010
【図９】
2013178628.tif 000011
【図１０】
2013178628.tif 000012
【図１１】
2013178628.tif 000013
【図１２】
2013178628.tif 000014
【図１３】
2013178628.tif 000015
【図１４】
2013178628.tif 000016
【図１５】
2013178628.tif 000017