(57)【要約】【課題】優先度が高い制御プログラムの実行が遅延することを防止できる画像形成装置を提供する。【解決手段】画像形成装置１００は、画像形成装置１００の複数の制御プログラム１２３を格納するためのＨＤＤ（Hard Disk Drive）１２０と、キャッシュメモリと、画像形成装置１００を制御するためのＣＰＵ（Central Processing Unit）１０１とを備える。ＣＰＵ１０１は、複数の制御プログラム１２３における実行候補の制御プログラム１２３Ａ〜１２３Ｄをキャッシュメモリ１３０に書き込むための書込部と、制御プログラム１２３Ａ〜１２３Ｄの各々について実行の優先度を決定するための決定部と、制御プログラム１２３Ａ〜１２３Ｄの内、優先度が相対的に高い制御プログラムをロックダウン対象としてキャッシュメモリ１３０においてロックダウンするためのメモリ制御部とを含む。【選択図】図３
2018136867.tif 000002
【特許請求の範囲】
【請求項１】
画像形成装置であって、
前記画像形成装置の複数の制御プログラムを格納するための記憶装置と、
キャッシュメモリと、
前記画像形成装置を制御するための制御装置とを備え、
前記制御装置は、
前記複数の制御プログラムにおける実行候補の制御プログラムを前記キャッシュメモリに書き込むための書込部と、
前記実行候補の制御プログラムの各々について実行の優先度を決定するための決定部と、
前記実行候補の制御プログラムの内、前記優先度が相対的に高い制御プログラムをロックダウン対象として前記キャッシュメモリにおいてロックダウンするためのメモリ制御部とを含む、画像形成装置。
【請求項２】
前記決定部は、前記画像形成装置の状態が変化する度に当該変化後の状態に基づいて前記優先度を決定する、請求項１に記載の画像形成装置。
【請求項３】
前記書込部は、前記画像形成装置の現状態に基づいて、当該現状態の次に実行される可能性が高い制御プログラムを前記実行候補として推定する、請求項１または２に記載の画像形成装置。
【請求項４】
前記記憶装置は、前記画像形成装置の状態ごとに当該状態の次に実行される可能性が高い制御プログラムを規定した制御情報をさらに格納し、
前記書込部は、前記制御情報に規定されている制御プログラムの内、前記画像形成装置の現状態に対応付けられている制御プログラムを前記実行候補として推定する、請求項３に記載の画像形成装置。
【請求項５】
前記メモリ制御部は、前記ロックダウン対象の制御プログラムのデータサイズがロックダウン可能容量よりも小さい場合、当該ロックダウン対象の制御プログラムを前記キャッシュメモリにおいてロックダウンする、請求項１〜４のいずれか１項に記載の画像形成装置。
【請求項６】
前記メモリ制御部は、前記ロックダウン対象の制御プログラムのデータサイズがロックダウン可能容量よりも大きい場合、前記優先度が低い制御プログラムから順に前記キャッシュメモリにおけるロックダウンを解除し、前記ロックダウン対象の制御プログラムを前記キャッシュメモリにおいてロックダウンするための容量を確保する、請求項１〜５のいずれか１項に記載の画像形成装置。
【請求項７】
前記画像形成装置は、当該画像形成装置に関する状態値を検知するための検知部をさらに備え、
前記書込部は、前記状態値が所定値を超えたことに基づいて、予め定められた制御プログラムを前記キャッシュメモリに書き込み、
前記メモリ制御部は、前記予め定められた制御プログラムを前記キャッシュメモリにおいてロックダウンする、請求項１〜６のいずれか１項に記載の画像形成装置。
【請求項８】
前記決定部は、前記状態値が高くなるにつれて前記予め定められた制御プログラムについての実行の優先度を高くする、請求項７に記載の画像形成装置。
【請求項９】
前記検知部は、前記画像形成装置の搬送経路の所定位置を用紙が通過するのにかかる時間を前記状態値として検知する、請求項７または８に記載の画像形成装置。
【請求項１０】
前記検知部は、前記画像形成装置における印刷枚数を前記状態値として検知する、請求項７または８に記載の画像形成装置。
【請求項１１】
前記検知部は、前記画像形成装置内の環境状態を表わす環境値を前記状態値として検知する、請求項７または８に記載の画像形成装置。
【請求項１２】
画像形成装置におけるメモリ管理方法であって、
前記画像形成装置の複数の制御プログラムを準備するステップと、
前記複数の制御プログラムにおける実行候補の制御プログラムを前記画像形成装置のキャッシュメモリに書き込むステップと、
前記実行候補の制御プログラムの各々について実行の優先度を決定するステップと、
前記実行候補の制御プログラムの内、前記優先度が相対的に高い制御プログラムをロックダウン対象として前記キャッシュメモリにおいてロックダウンするステップとを備える、メモリ管理方法。
【請求項１３】
メモリ管理プログラムであって、
前記メモリ管理プログラムは、画像形成装置に、
前記画像形成装置の複数の制御プログラムを準備するステップと、
前記複数の制御プログラムにおける実行候補の制御プログラムを前記画像形成装置のキャッシュメモリに書き込むステップと、
前記実行候補の制御プログラムの各々について実行の優先度を決定するステップと、
前記実行候補の制御プログラムの内、前記優先度が相対的に高い制御プログラムをロックダウン対象として前記キャッシュメモリにおいてロックダウンするステップとを実行させる、メモリ管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、キャッシュメモリのロックダウンを制御するための技術に関する。
【背景技術】
【０００２】
画像形成装置が実行する処理は、メカコン処理と、ベストエフォート型の処理（以下、「ベストエフォート処理」ともいう。）とを含む。メカコン処理は、画像形成装置内の各装置を制御するための処理であり、リアルタイム性が要求される処理である。ベストエフォート処理とは、メカコン処理ほどはリアルタイム性が要求されないが、ユーザビリティが要求される処理である。
【０００３】
従来、画像形成装置は、メカコン処理とベストエフォート処理とを別々のＣＰＵ（Central Processing Unit）で実行していた。これに対して、近年、メカコン処理とベストエフォート処理とを共通のＣＰＵで実行する画像形成装置が普及している。この場合、メカコン処理用の制御プログラムとベストエフォート処理用の制御プログラムとがキャッシュメモリを共有する。
【０００４】
キャッシュメモリに関する技術として、特開２０００−２５０５１８号公報は、「記憶容量の増大化を招来することもなく高品位の文字データを高速処理することができる」文字処理装置を開示している。当該文字処理装置は、初期化処理で文字コードと使用頻度の高いフォントデータとをＲＡＭ（Random Access Memory）上に確保されたキャッシュ領域に保存して、これらデータアクセスの高速化を行う。
【０００５】
メカコン処理用の制御プログラムとベストエフォート処理用の制御プログラムとがキャッシュメモリを共有すると、キャッシュメモリが一方の制御プログラムによって占有される可能性が生じる。この場合、画像形成装置は、他方の制御プログラムをキャッシュメモリに格納することができず、当該他方の制御プログラムの処理時間が意図するよりも長くなってしまう。このことを防止するために、キャッシュロックダウンという技術がある。キャッシュロックダウンとは、キャッシュメモリに書き込んだ制御プログラムが他の制御プログラムによって上書きされないように、キャッシュメモリの内容を固定するための技術である。従来、画像形成装置は、一連の処理を実行するための制御プログラムをキャッシュメモリに格納してからキャッシュメモリ全体をロックダウンしていた。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−２５０５１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
キャッシュメモリ全体がロックダウンされると、ロックダウン対象の制御プログラムの実行が完了するまでロックダウンが解除されない。そのため、ロックダウンが必要な新たな制御プログラムが生じた場合には、画像形成装置は、当該新たな制御プログラムをロックダウンすることができない。その結果、当該新たな制御プログラムの処理時間が意図するよりも長くなってしまう可能性がある。したがって、優先度が高い制御プログラムの実行が遅延することを防止するための画像形成装置が望まれている。
【０００８】
本開示は上述のような問題点を解決するためになされたものであって、ある局面における目的は、優先度が高い制御プログラムの実行が遅延することを防止できる画像形成装置を提供することである。他の局面における目的は、優先度が高い制御プログラムの実行が遅延することを防止できるメモリ管理方法を提供することである。さらに他の局面における目的は、優先度が高い制御プログラムの実行が遅延することを防止できるメモリ管理プログラムを提供することである。
【課題を解決するための手段】
【０００９】
ある局面に従うと、画像形成装置は、上記画像形成装置の複数の制御プログラムを格納するための記憶装置と、キャッシュメモリと、上記画像形成装置を制御するための制御装置とを備える。上記制御装置は、上記複数の制御プログラムにおける実行候補の制御プログラムを上記キャッシュメモリに書き込むための書込部と、上記実行候補の制御プログラムの各々について実行の優先度を決定するための決定部と、上記実行候補の制御プログラムの内、上記優先度が相対的に高い制御プログラムをロックダウン対象として上記キャッシュメモリにおいてロックダウンするためのメモリ制御部とを含む。
【００１０】
好ましくは、上記決定部は、上記画像形成装置の状態が変化する度に当該変化後の状態に基づいて上記優先度を決定する。
【００１１】
好ましくは、上記書込部は、上記画像形成装置の現状態に基づいて、当該現状態の次に実行される可能性が高い制御プログラムを上記実行候補として推定する。
【００１２】
好ましくは、上記記憶装置は、上記画像形成装置の状態ごとに当該状態の次に実行される可能性が高い制御プログラムを規定した制御情報をさらに格納する。上記書込部は、上記制御情報に規定されている制御プログラムの内、上記画像形成装置の現状態に対応付けられている制御プログラムを上記実行候補として推定する。
【００１３】
好ましくは、上記メモリ制御部は、上記ロックダウン対象の制御プログラムのデータサイズがロックダウン可能容量よりも小さい場合、当該ロックダウン対象の制御プログラムを上記キャッシュメモリにおいてロックダウンする。
【００１４】
好ましくは、上記メモリ制御部は、上記ロックダウン対象の制御プログラムのデータサイズがロックダウン可能容量よりも大きい場合、上記優先度が低い制御プログラムから順に上記キャッシュメモリにおけるロックダウンを解除し、上記ロックダウン対象の制御プログラムを上記キャッシュメモリにおいてロックダウンするための容量を確保する。
【００１５】
好ましくは、上記画像形成装置は、当該画像形成装置に関する状態値を検知するための検知部をさらに備える。上記書込部は、上記状態値が所定値を超えたことに基づいて、予め定められた制御プログラムを上記キャッシュメモリに書き込む。上記メモリ制御部は、上記予め定められた制御プログラムを上記キャッシュメモリにおいてロックダウンする。
【００１６】
好ましくは、上記決定部は、上記状態値が高くなるにつれて上記予め定められた制御プログラムについての実行の優先度を高くする。
【００１７】
好ましくは、上記検知部は、上記画像形成装置の搬送経路の所定位置を用紙が通過するのにかかる時間を上記状態値として検知する。
【００１８】
好ましくは、上記検知部は、上記画像形成装置における印刷枚数を上記状態値として検知する。
【００１９】
好ましくは、上記検知部は、上記画像形成装置内の環境状態を表わす環境値を上記状態値として検知する。
【００２０】
他の局面に従うと、画像形成装置におけるメモリ管理方法は、上記画像形成装置の複数の制御プログラムを準備するステップと、上記複数の制御プログラムにおける実行候補の制御プログラムを上記画像形成装置のキャッシュメモリに書き込むステップと、上記実行候補の制御プログラムの各々について実行の優先度を決定するステップと、上記実行候補の制御プログラムの内、上記優先度が相対的に高い制御プログラムをロックダウン対象として上記キャッシュメモリにおいてロックダウンするステップとを備える。
【００２１】
他の局面に従うと、メモリ管理プログラムは、画像形成装置に、上記画像形成装置の複数の制御プログラムを準備するステップと、上記複数の制御プログラムにおける実行候補の制御プログラムを上記画像形成装置のキャッシュメモリに書き込むステップと、上記実行候補の制御プログラムの各々について実行の優先度を決定するステップと、上記実行候補の制御プログラムの内、上記優先度が相対的に高い制御プログラムをロックダウン対象として上記キャッシュメモリにおいてロックダウンするステップとを実行させる。
【発明の効果】
【００２２】
ある局面において、優先度が高い制御プログラムの実行が遅延することを防止できる。
本発明の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解される本発明に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【００２３】
【図１】実施の形態に従う画像形成装置の内部構造の一例を示す図である。
【図２】実施の形態に従う画像形成装置の主要なハードウェア構成を示すブロック図である。
【図３】実施の形態に従う画像形成装置によるロックダウン処理を時系列に示す図である。
【図４】実施の形態に従う画像形成装置の機能構成の一例を示す図である。
【図５】制御テーブルのデータ構造の一例を示す図である。
【図６】キャッシュメモリに書き込まれているメカコン処理についてロックダウン対象を切り替えている様子を示す図である。
【図７】モノクロ印刷指示を受け付けた場合におけるロックダウン対象の切り替え処理を示す図である。
【図８】ロックダウン処理のフローチャートを示す図である。
【図９】ロックダウンの解除処理におけるフローチャートを示す図である。
【図１０】停止処理に対するロックダウン処理を示すフローチャートである。
【発明を実施するための形態】
【００２４】
以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される各実施の形態および各変形例は、適宜選択的に組み合わされてもよい。
【００２５】
［画像形成装置１００の内部構造］
図１を参照して、本実施の形態に従う画像形成装置１００について説明する。図１は、画像形成装置１００の内部構造の一例を示す図である。
【００２６】
図１には、カラープリンタとしての画像形成装置１００が示されている。以下では、カラープリンタとしての画像形成装置１００について説明するが、画像形成装置１００は、カラープリンタに限定されない。たとえば、画像形成装置１００は、モノクロプリンタであってもよいし、ファックスであってもよいし、モノクロプリンタ、カラープリンタおよびファックスの複合機（ＭＦＰ：Multi-Functional  Peripheral）であってもよい。
【００２７】
画像形成装置１００は、画像形成ユニット１Ｙ，１Ｍ，１Ｃ，１Ｋと、トナーボトル１５Ｙ，１５Ｍ，１５Ｃ，１５Ｋと、中間転写ベルト３０と、転写ローラー３１，３３と、カセット３７と、従動ローラー３８と、駆動ローラー３９と、タイミングローラー４０と、クリーニング装置４２と、定着装置５０と、制御装置としてのＣＰＵ１０１とを備える。
【００２８】
画像形成ユニット１Ｙは、トナーボトル１５Ｙからトナーの供給を受けてイエロー（Ｙ）のトナー像を感光体１０に形成する。画像形成ユニット１Ｍは、トナーボトル１５Ｍからトナーの供給を受けてマゼンタ（Ｍ）のトナー像を感光体１０に形成する。画像形成ユニット１Ｃは、トナーボトル１５Ｃからトナーの供給を受けてシアン（Ｃ）のトナー像を感光体１０に形成する。画像形成ユニット１Ｋは、トナーボトル１５Ｋからトナーの供給を受けてブラック（ＢＫ）のトナー像を感光体１０に形成する。
【００２９】
画像形成ユニット１Ｙ，１Ｍ，１Ｃ，１Ｋは、それぞれ、中間転写ベルト３０に沿って中間転写ベルト３０の回転方向の順に配置されている。画像形成ユニット１Ｙ，１Ｍ，１Ｃ，１Ｋは、それぞれ、回転可能に構成されている感光体１０と、帯電装置１１と、露光装置１３と、現像装置１４と、クリーニング装置１７とを備える。
【００３０】
帯電装置１１は、帯電ローラー１２を含む。帯電ローラー１２は、感光体１０に当接している。帯電ローラー１２は、感光体１０の表面を所定電位に一様に帯電させる。
【００３１】
露光装置１３は、ＣＰＵ１０１からの制御信号に応じて感光体１０にレーザー光を照射し、入力された画像パターンに従って感光体１０の表面を露光する。これにより、入力画像に応じた静電潜像が感光体１０上に形成される。
【００３２】
現像装置１４は、感光体１０上に形成された静電潜像をトナー像として現像する。より具体的には、現像装置１４は、現像ローラー１５を回転させながら、現像ローラー１５に現像バイアスを印加し、現像ローラー１５の表面にトナーを付着させる。トナーは、現像ローラー１５から感光体１０に転写され、静電潜像に応じたトナー像が感光体１０の表面に現像される。
【００３３】
感光体１０と中間転写ベルト３０とは、転写ローラー３１を設けている部分で互いに接触している。トナー像と反対極性の転写電圧が転写ローラー３１に印加されることによって、トナー像が感光体１０から中間転写ベルト３０に転写される。イエロー（Ｙ）のトナー像、マゼンタ（Ｍ）のトナー像、シアン（Ｃ）のトナー像、およびブラック（ＢＫ）のトナー像が順に重ねられて感光体１０から中間転写ベルト３０に転写される。これにより、カラーのトナー像が中間転写ベルト３０上に形成される。
【００３４】
中間転写ベルト３０は、従動ローラー３８と駆動ローラー３９とに張架されている。駆動ローラー３９はモーター（図示しない）に接続されている。ＣＰＵ１０１が当該モーターを制御することにより、駆動ローラー３９は回転する。中間転写ベルト３０および従動ローラー３８は、駆動ローラー３９に連動して回転する。これにより、中間転写ベルト３０上のトナー像が転写ローラー３３に送られる。
【００３５】
クリーニング装置１７は、感光体１０から中間転写ベルト３０へのトナー像の転写後に感光体１０の表面に残留するトナーを回収する。
【００３６】
カセット３７には、用紙Ｓがセットされる。用紙Ｓは、カセット３７から１枚ずつタイミングローラー４０によって搬送経路４１に沿って転写ローラー３３に送られる。ＣＰＵ１０１は、用紙Ｓが送り出されるタイミングに合わせて、転写ローラー３３に印加する転写電圧を制御する。
【００３７】
転写ローラー３３は、トナー像と反対極性の転写電圧を搬送中の用紙Ｓに印加する。これにより、トナー像は、中間転写ベルト３０から転写ローラー３３に引き付けられ、中間転写ベルト３０上のトナー像が転写される。転写ローラー３３への用紙Ｓの搬送タイミングは、中間転写ベルト３０上のトナー像の位置に合わせてタイミングローラー４０によって制御される。その結果、中間転写ベルト３０上のトナー像は、用紙Ｓの適切な位置に転写される。
【００３８】
定着装置５０は、定着装置５０を通過する用紙Ｓを加圧および加熱する。これにより、トナー像は用紙Ｓに定着する。その後、用紙Ｓは、トレー４８に排紙される。
【００３９】
クリーニング装置４２は、中間転写ベルト３０から用紙Ｓへのトナー像の転写後に中間転写ベルト３０の表面に残留するトナーを回収する。回収されたトナーは、搬送スクリュー（図示しない）で搬送され、廃トナー容器（図示しない）に貯められる。
【００４０】
［画像形成装置１００のハードウェア構成］
図２を参照して、画像形成装置１００のハードウェア構成の一例について説明する。図２は、画像形成装置１００の主要なハードウェア構成を示すブロック図である。
【００４１】
図２に示されるように、画像形成装置１００は、ＣＰＵ１０１と、ＲＯＭ（Read  Only  Memory）１０２と、ＲＡＭ（Random  Access  Memory）１０３と、検知部としてのセンサー１０４と、メカコン制御対象部１０５と、コントローラー制御対象部１０６と、ＨＤＤ（Hard Disk Drive）１２０とを含む。これらの構成は、内部バス１１１を介して互いに接続されている。
【００４２】
ＣＰＵ１０１は、マルチコアプロセッサであって、コントローラー制御用コア１０１Ａと、メカコン制御用コア１０１Ｂと、キャッシュメモリ１３０とを内蔵している。キャッシュメモリ１３０は、ＣＰＵ１０１と一体的に構成されてもよいし、ＣＰＵ１０１とは別に構成されてもよい。コントローラー制御用コア１０１Ａはコントローラー制御を行う。メカコン制御用コア１０１Ｂはメカコン制御を行う。
【００４３】
コントローラー制御とは、画像処理や画像形成装置１００全体の制御である。一例として、コントローラー制御は、画像データを取得してビットマップ展開などを行う画像処理、ＰＣ（Personal Computer）やその他機器と通信を行うネットワーク通信処理、ユーザーなどからの指示を受け付ける操作パネルなどを制御する処理などである。コントローラー制御は、画像処理やネットワーク通信による大量データ処理、ユーザーからの応答などを可能な限り高速に行うベストエフォート型の処理である。
【００４４】
メカコン制御とは、コントローラー制御によって指定された画像形成処理を実行するために画像形成装置１００の機械的な制御を行うものである。一例として、メカコン制御は、印刷媒体の搬送制御、半導体レーザーの制御、温度調整などのメカ制御などである。メカコン制御が遅延すると印刷品質が低下するため、メカコン制御については、高いリアルタイム性が要求される。
【００４５】
コントローラー制御用コア１０１Ａおよびメカコン制御用コア１０１Ｂは、キャッシュメモリ１３０、ＲＯＭ１０２、ＲＡＭ１０３、およびＨＤＤ１２０を共有する。ＲＯＭ１０２には、画像形成装置１００の電源投入時にＣＰＵ１０１を起動するためのブートプログラムが記憶されている。ＲＡＭ１０３は、ＣＰＵ１０１の作業用記憶領域として使用される。ＨＤＤ１２０は、画像形成装置１００を制御するための制御プログラム１２３と、メモリ管理プログラム１２５とを格納している。制御プログラム１２３は、コントローラー制御用プログラム１２４Ａと、メカコン制御用プログラム１２４Ｂとを含む。
【００４６】
コントローラー制御用コア１０１Ａは、ＨＤＤ１２０からコントローラー制御用プログラム１２４Ａを読み出し、ＲＡＭ１０３を作業用記憶領域として、コントローラー制御対象部１０６を制御する。コントローラー制御対象部１０６は、たとえば、画像処理用回路やネットワークデバイス、操作パネルなどである。さらに、コントローラー制御用コア１０１Ａは、メカコン制御用コア１０１Ｂに画像形成処理の実行を指示する。
【００４７】
メカコン制御用コア１０１Ｂは、ＨＤＤ１２０からメカコン制御用プログラム１２４Ｂを読み出し、ＲＡＭ１０３を作業用記憶領域として、メカコン制御対象部１０５を制御する。メカコン制御対象部１０５は、たとえば、モーター、クラッチ、センサーなどである。
【００４８】
通常、ＣＰＵ１０１は、ＲＡＭ１０３などのメインメモリ内の制御プログラムにアクセスすることで当該制御プログラムを実行する。このとき、ＣＰＵ１０１は、アクセスした制御プログラムをキャッシュメモリ１３０に書き込む。キャッシュメモリ１３０に対するアクセス速度は、他の記憶装置（たとえば、ＲＡＭ１０３などのメインメモリや、ＨＤＤ１２０）に対するアクセス速度よりも速い。そのため、ＣＰＵ１０１は、同じ制御プログラムに次回アクセスする際にはより高速にアクセスすることができる。典型的には、キャッシュメモリ１３０の記憶容量は、メインメモリの記憶容量よりも小さいため、アクセスされた制御プログラムがキャッシュメモリ１３０に次々に書き込まれると、キャッシュメモリ１３０に空きがなくなってしまう。
【００４９】
キャッシュメモリ１３０に空きがない状態で、新たな制御プログラムがキャッシュメモリ１３０に書き込まれると、最も古い制御プログラムがキャッシュメモリ１３０から追い出される（所謂キャッシュアウト）。キャッシュアウトされた制御プログラムへの次回のアクセスは、キャッシュヒットしないので高速化されない。このことを防止するために、画像形成装置１００は、キャッシュメモリ１３０においてキャッシュロックダウンを実行する。キャッシュロックダウンは、キャッシュメモリ１３０の一部または全部の領域に記憶されている制御プログラムがキャッシュアウトを禁止するための処理である。ＣＰＵ１０１は、このようなキャッシュロックダウン機能を有している。キャッシュロックダウンにより、特定の制御プログラムがキャッシュアウトされなくなるので、その制御プログラムへのアクセスが必ず高速化される。
【００５０】
［画像形成装置１００によるロックダウン処理］
図３を参照して、画像形成装置１００によるロックダウン処理について説明する。図３は、画像形成装置１００によるロックダウン処理を時系列に示す図である。
【００５１】
ステップＳ１において、ＣＰＵ１０１は、ＨＤＤ１２０に予め格納されている複数の制御プログラム１２３の内から実行候補の制御プログラムをキャッシュメモリ１３０に書き込む。このとき、ＣＰＵ１０１は、画像形成装置１００の現状態に基づいて、当該現状態の次に実行される可能性が高い制御プログラムを実行候補として推定する。当該推定方法の詳細については後述する。ＣＰＵ１０１は、実行候補の制御プログラムをキャッシュメモリ１３０に書き込む。図３の例では、実行候補の制御プログラム１２３Ａ〜１２３Ｃがキャッシュメモリ１３０に書き込まれている。
【００５２】
ステップＳ２において、ＣＰＵ１０１は、実行候補の制御プログラム１２３Ａ〜１２３Ｃの各々について実行の優先度を決定する。好ましくは、ＣＰＵ１０１は、画像形成装置１００の状態が変化する度に当該変化後の状態に基づいて実行の優先度を決定する。優先度の決定方法の詳細については後述する。図３の例では、制御プログラム１２３Ａの優先度が「高」に設定されている。制御プログラム１２３Ｂの優先度が「中」に設定されている。制御プログラム１２３Ｂの優先度が「低」に設定されている。
【００５３】
ステップＳ３において、ＣＰＵ１０１は、実行候補の制御プログラム１２３Ａ〜１２３Ｃの内、ステップＳ２で決定された優先度が相対的に高い制御プログラムをキャッシュメモリ１３０においてロックダウンする。ある局面において、ＣＰＵ１０１は、実行候補の制御プログラム１２３Ａ〜１２３Ｃの内、優先度が最も高い制御プログラム１２３Ａを少なくともロックダウン対象とする。他の局面において、ＣＰＵ１０１は、実行候補の制御プログラム１２３Ａ〜１２３Ｃの内、優先度が高い上位所定数の制御プログラムをロックダウン対象とする。好ましくは、ＣＰＵ１０１は、ロックダウン可能容量を超えない範囲で、優先度の高い制御プログラムから順にロックダウンを行う。
【００５４】
実行の優先度が高い制御プログラムが他の制御プログラムよりも優先的にロックダウンされることで、ＣＰＵ１０１は、実行可能性が高い制御プログラムがキャッシュメモリ１３０からキャッシュアウトされることを防止できる。これにより、ＣＰＵ１０１は、優先度が高い制御プログラムの処理時間を短縮することができる。結果として、ＣＰＵ１０１は、リアルタイム性が要求されるような優先度が高い制御プログラムの実行が遅延することを防止できる。
【００５５】
［画像形成装置１００の機能構成］
図４および図５を参照して、画像形成装置１００の機能について説明する。図４は、画像形成装置１００の機能構成の一例を示す図である。
【００５６】
図４に示されるように、画像形成装置１００は、主要なハードウェア構成として、ＣＰＵ１０１と、ＨＤＤ１２０とを搭載している。ＣＰＵ１０１には、キャッシュメモリ１３０が搭載されている。ＣＰＵ１０１は、機能構成として、書込部１５２と、決定部１５４と、メモリ制御部１５６と、検知部１５８とを含む。以下では、これらの機能構成について順に説明する。
【００５７】
（書込部１５２）
上述のメカコン処理による画像形成装置１００の動作は、画像形成装置１００の機能に応じて複数の状態に分割して管理されている。画像形成装置１００は、各状態で発生したイベントに応じて次の状態に遷移してイベントで要求された動作を行う。発生するイベントは、メカコン処理の状態に応じて限定されるため、次の遷移先も限定される。
【００５８】
たとえば、画像形成装置１００の状態は、停止状態から印刷状態に遷移することはない。停止状態とは、印刷ができない状態である。停止処理は、デバイス部品が故障していたり、画像形成装置１００内で用紙が滞留していたり、画像形成装置のカバーが開いていたりする場合に実行される。画像形成装置１００は、印刷処理を実行する場合には、停止状態から印刷が可能な状態に遷移する必要がある。このように、メカコンの状態は、現在の状態に対して、次に実施する状態はいくつかの動作に限定される。
【００５９】
この点に着目して、書込部１５２は、画像形成装置１００の現状態に基づいて、当該現状態の次に実行される可能性が高い制御プログラムを実行候補として推定し、当該実行候補の制御プログラムをキャッシュメモリ１３０に書き込む。
【００６０】
典型的には、書込部１５２は、制御テーブル１２６（制御情報）を参照することで実行候補の制御プログラムを推定する。図５は、制御テーブル１２６のデータ構造の一例を示す図である。
【００６１】
制御テーブル１２６において、画像形成装置１００の現状態での制御プログラムと、次状態で実行される可能性の高い制御プログラムとが関連付けられている。すなわち、制御テーブル１２６において、画像形成装置１００の状態ごとに次に実行される可能性が高い制御プログラムが規定されている。制御テーブル１２６は、画像形成装置１００の設計時に予め設定されていてもよいし、ユーザーによって任意に設定されていてもよい。
【００６２】
書込部１５２は、制御テーブル１２６に規定されている制御プログラムの内、画像形成装置１００の現状態に対応付けられている制御プログラムを実行候補として推定する。たとえば、画像形成装置１００の現状態が「待機」状態である場合には、「待機」状態の次に実行される可能性が高い制御プログラム群１２７が実行候補として推定される。その後、書込部１５２は、制御プログラム群１２７をキャッシュメモリ１３０に書き込む。制御プログラム群１２７のいずれかが実行された場合に、その制御プログラムの処理時間が短縮される。
【００６３】
（決定部１５４）
再び図４を参照して、決定部１５４は、キャッシュメモリ１３０において書き込まれた実行候補の制御プログラムの各々について実行の優先度を決定する。典型的には、実行の優先度は、上述の制御テーブル１２６（図５参照）に基づいて決定される。
【００６４】
制御テーブル１２６において、次状態での各制御プログラムについて実行の優先度が予め関連付けられている。当該優先度は、画像形成装置１００の設計時に予め設定されていてもよいし、ユーザーによって任意に設定されていてもよい。
【００６５】
一例として、「待機」状態から「ＦＷ（Firmware）更新」状態に遷移するためのイベントは、サービスマンが画像形成装置１００に対してＦＷ更新を要求した場合に発生する。そのため、通常、ユーザーは、画像形成装置１００を使用する上で、「待機」状態から「ＦＷ更新」状態に遷移させることはない。したがって、ＦＷ更新の制御プログラムの優先度は、他の制御プログラムの優先度よりも低く設定される。
【００６６】
決定部１５４は、制御テーブル１２６を参照して、書込部１５２によってキャッシュメモリ１３０において書き込まれた実行候補の制御プログラムの各々について実行の優先度を取得する。たとえば、実行候補の制御プログラム群１２７については、「印刷」状態に関連付けられている制御プログラムの優先度が最も高くなる。「低電力」状態に関連付けられている制御プログラムの優先度が２番目に高くなる。「画像調整」状態に関連付けられている制御プログラムの優先度が３番目に高くなる。「停止」状態に関連付けられている制御プログラムの優先度が最も低くなる。
【００６７】
（メモリ制御部１５６）
メカコン制御用のコアとコントローラー制御用のコアとがキャッシュメモリ１３０を共有する場合において、キャッシュメモリ１３０全体がメカコン制御用の制御プログラムとコントローラー制御用の制御プログラムとの一方によってロックダウンされたとき、他方のコアによる処理が遅延してしまう。たとえば、メカコン制御用の制御プログラムがキャッシュメモリ１３０上に書き込まれていない場合には、メカコンのデバイスが破損してしまう可能性がある。一方で、コントローラー制御用の制御プログラムがキャッシュメモリ１３０に書き込まれていない場合には、印刷処理が所定時間内に実行が完了しない可能性がある。このように、キャッシュメモリ１３０が一方の制御プログラムのロックダウンによって占有されないようにする必要がある。
【００６８】
そこで、ロックダウン可能容量に空きがあるときには、画像形成装置１００は、当該新たな制御プログラムをロックダウンする。ロックダウン可能容量に空きがない場合は、画像形成装置１００は、ロックダウン済みの制御プログラムの優先度とロックダウン対象の制御プログラムの優先度とを比較し、優先度が低いものから順にロックダウンを解除する。
【００６９】
より具体的には、メモリ制御部１５６は、キャッシュメモリ１３０において、ロックダウン可能容量を管理している。ロックダウン可能容量は、予め設定されている。典型的には、ロックダウン可能容量は、キャッシュメモリ１３０のメモリサイズ以下に設定されている。なお、ロックダウン可能容量は、それぞれの制御の状態に応じて動的に変えられてもよい。メモリ制御部１５６は、ロックダウン対象の制御プログラムのデータサイズがロックダウン可能容量よりも小さい場合、当該ロックダウン対象の制御プログラムをキャッシュメモリ１３０においてロックダウンする。その後、メモリ制御部１５６は、ロックダウン対象の制御プログラムのデータサイズをロックダウン可能容量から減算する。
【００７０】
一方で、メモリ制御部１５６は、ロックダウン対象の制御プログラムのデータサイズがロックダウン可能容量よりも大きい場合、実行の優先度が低い制御プログラムから順にキャッシュメモリ１３０におけるロックダウンを解除する。このとき、メモリ制御部１５６は、キャッシュメモリ１３０においてロックダウン対象の制御プログラムをロックダウンするための容量を確保するまでロックダウンの解除を繰り返す。すなわち、メモリ制御部１５６は、ロックダウンされている制御プログラムの内で実行の優先度が最も低い制御プログラムについてロックダウンを解除し、当該制御プログラムのデータサイズをロックダウン可能容量に加算する。この解除処理は、ロックダウン可能容量がロックダウン対象の制御プログラムのサイズよりも大きくなるまで繰り返される。その後、メモリ制御部１５６は、ロックダウン対象の制御プログラムをロックダウンし、当該制御プログラムのデータサイズをロックダウン可能容量から減算する。
【００７１】
このように、メモリ制御部１５６は、キャッシュメモリ１３０に書き込まれている制御プログラム１２３Ａ〜１２３Ｃの内、決定部１５４によって決定された実行の優先度が相対的に高い制御プログラムをロックダウン対象としてキャッシュメモリ１３０においてロックダウンする。これにより、メモリ制御部１５６は、実行される可能性が高い制御プログラムがキャッシュアウトされることを防止できる。その結果、メモリ制御部１５６は、実行の優先度が高い制御プログラムの処理時間を短縮することができ、リアルタイム性が要求されるような優先度が高い制御プログラムの実行が遅延することを防止できる。
【００７２】
［メカコン処理についてのロックダウン処理］
図６を参照して、上述のメカコン処理を例に挙げて、ロックダウン処理について説明する。図６は、キャッシュメモリ１３０に書き込まれているメカコン処理についてロックダウン対象を切り替えている様子を示す図である。
【００７３】
図６に示される制御プログラム群１２７は、図５に示される制御プログラム群１２７に対応している。図６においては、印刷処理は、「カラー立上げ」処理と、「カラー印刷」処理と、「カラー立下げ」処理と、「モノクロ立上げ」処理と、「モノクロ印刷」処理と、「モノクロ立下げ」処理とに分けられている。
【００７４】
ステップＳ１１において、メカコンの状態が待機状態に遷移したことに基づいて、画像形成装置１００は、次に実行される可能性が高い制御プログラムをキャッシュメモリ１３０に書き込む。その結果、制御プログラム群１２７がキャッシュメモリ１３０に書き込まれる。その後、画像形成装置１００は、制御プログラム群１２７の中で実行可能性が高い「印刷」処理と「低電力」処理とをロックダウンする。「印刷」処理は、「立上げ」、「印刷」、「立下げ」の順に実行されるため、まず、「カラー立上げ」処理と、「モノクロ立上げ」処理とがロックダウンされる。
【００７５】
なお、「カラー印刷」および「モノクロ印刷」は、いずれか一方しか実行されないが、待機状態ではカラーまたはモノクロのどちらの印刷指示を受け付けるのかが決まっていないため、画像形成装置１００は、カラーおよびモノクロの両方の立上げ処理をロックダウンする。
【００７６】
ステップＳ１２において、画像形成装置１００は、カラー印刷指示を受け付けたとする。このことに基づいて、メカコンの状態は、「印刷」状態となる。この場合、メカコンの状態が「低電力」状態になる可能性がないため、画像形成装置１００は、「低電力」処理のロックダウンを解除する。また、印刷指示がカラーであるため、「モノクロ立上げ」処理は、実行されない。そのため、画像形成装置１００は、「モノクロ立上げ」処理のロックダウンを解除する。「カラー立上げ」処理の実行後には、「カラー印刷」処理を実行するため、画像形成装置１００は、「カラー印刷」処理のロックダウンを実行する。
【００７７】
ステップＳ１３において、「カラー立上げ」処理が終了したとする。このことに基づいて、画像形成装置１００は、「カラー立上げ」処理のロックダウンを解除する。
【００７８】
ステップＳ１４において、画像形成装置１００は、最終の用紙に対する印刷指示を受け付けたとする。最終の用紙に対する印刷が完了すると、その次には、「カラー立下げ」処理が実行されるため、画像形成装置１００は、「カラー立下げ」処理をロックダウンする。
【００７９】
図７は、モノクロ印刷指示を受け付けた場合におけるロックダウン対象の切り替え処理を示す図である。
【００８０】
ステップＳ２１において、「カラー印刷」処理がロックダウンされているとする。この場合において、画像形成装置１００は、モノクロ印刷指示を受け付けたとする。
【００８１】
ステップＳ２２において、画像形成装置１００は、「カラー立下げ」処理をロックダウンするとともに、「モノクロ立上げ」処理をロックダウンする。次に、画像形成装置１００は、「カラー印刷」処理が終了したことに基づいて、「カラー立下げ」処理を実行する。その後、画像形成装置１００は、「カラー立下げ」処理が終了したことに基づいて、「モノクロ立上げ」処理を実行する。
【００８２】
このように、印刷制御は、「立上げ」処理、「印刷」処理、「立下げ」処理の順に実行される。印刷制御に必要な制御プログラムが一度にロックダウンされる必要はないため、必要な制御プログラムが適宜ロックダウンされる。カラー印刷／モノクロ印刷、および片面印刷／両面印刷についても同じである。
【００８３】
［ロックダウン処理の制御フロー］
図８を参照して、ロックダウン処理の制御フローについて説明する。図８は、ロックダウン処理のフローチャートを示す図である。図８の処理は、画像形成装置１００のＣＰＵ１０１がプログラムを実行することにより実現される。他の局面において、処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
【００８４】
ステップＳ１１０において、ＣＰＵ１０１は、画像形成装置１００の状態が変化したか否かを判断する。典型的には、ＣＰＵ１０１は、画像形成装置１００の前回の状態を記憶しておき、画像形成装置１００の現状態が前状態と異なる場合に、画像形成装置１００の状態が変化したと判断する。ＣＰＵ１０１は、画像形成装置１００の状態が変化したと判断した場合（ステップＳ１１０においてＹＥＳ）、制御をステップＳ１１２に切り替える。そうでない場合には（ステップＳ１１０においてＮＯ）、ＣＰＵ１０１は、ステップＳ１１０の処理を再び実行する。
【００８５】
ステップＳ１１２において、ＣＰＵ１０１は、上述の書込部１５２（図４参照）として、画像形成装置１００の現状態の次状態において実行される可能性が高い制御プログラムを推定し、当該制御プログラムをキャッシュメモリ１３０に書き込む。
【００８６】
ステップＳ１１４において、ＣＰＵ１０１は、上述の決定部１５４（図４参照）として、ステップＳ１１２においてキャッシュメモリ１３０に書き込まれた制御プログラムの内から、ロックダウン対象の新たな制御プログラムを決定する。より具体的には、ＣＰＵ１０１は、キャッシュメモリ１３０に書き込まれた制御プログラムの各々について実行の優先度を決定し、当該優先度が相対的に高い制御プログラムをロックダウン対象の制御プログラムとして決定する。
【００８７】
ステップＳ１２０において、ＣＰＵ１０１は、ロックダウン対象の制御プログラムのデータサイズがロックダウン可能容量よりも大きいか否かを判断する。ＣＰＵ１０１は、ロックダウン対象の制御プログラムのデータサイズがロックダウン可能容量よりも大きいと判断した場合（ステップＳ１２０においてＹＥＳ）、制御をステップＳ１５０に切り替える。そうでない場合には（ステップＳ１２０においてＮＯ）、ＣＰＵ１０１は、制御をステップＳ１３０に切り替える。
【００８８】
ステップＳ１３０において、ＣＰＵ１０１は、ロックダウン対象の制御プログラムの優先度が既にロックダウンされている制御プログラムの少なくとも１つよりも高いか否かを判断する。ＣＰＵ１０１は、ロックダウン対象の制御プログラムの優先度が既にロックダウンされている制御プログラムの少なくとも１つよりも高いと判断した場合（ステップＳ１３０においてＹＥＳ）、制御をステップＳ１３２に切り替える。そうでない場合には（ステップＳ１３０においてＮＯ）、ＣＰＵ１０１は、制御をステップＳ１４０に切り替える。
【００８９】
ステップＳ１３２において、ＣＰＵ１０１は、上述のメモリ制御部１５６（図４参照）として、ロックダウンされている制御プログラムの内、実行の優先度が最も低い制御プログラムを特定し、当該制御プログラムのロックダウンを解除する。典型的には、ＣＰＵ１０１は、キャッシュメモリ１３０上においてロックダウンを解除するデータ領域をアドレス指定する。これにより、ＣＰＵ１０１は、指定したデータ領域においてロックダウンを解除する。
【００９０】
ステップＳ１３４において、ＣＰＵ１０１は、上述のメモリ制御部１５６として、ステップＳ１３２でロックダウンを解除した制御プログラムのデータサイズを現在のロックダウン可能容量に加算する。これにより、ＣＰＵ１０１は、ロックダウン可能容量を更新する。
【００９１】
ステップＳ１４０において、ＣＰＵ１０１は、上述のメモリ制御部１５６として、ステップＳ１１４で決定されたロックダウン対象についてロックダウンを中止する。
【００９２】
ステップＳ１５０において、ＣＰＵ１０１は、上述のメモリ制御部１５６として、ステップＳ１１４で決定されたロックダウン対象についてロックダウンを実行する。典型的には、ＣＰＵ１０１は、キャッシュメモリ１３０上においてロックダウンを行うデータ領域をアドレス指定する。これにより、ＣＰＵ１０１は、指定したデータ領域についてロックダウンを行う。
【００９３】
ステップＳ１５２において、ＣＰＵ１０１は、上述のメモリ制御部１５６として、ステップＳ１５０でロックダウンを実行した制御プログラムのデータサイズを現在のロックダウン可能容量から減算する。これにより、ＣＰＵ１０１は、ロックダウン可能容量を更新する。
【００９４】
［ロックダウンの解除処理の制御フロー］
図９を参照して、ロックダウンの解除処理の制御フローについて説明する。図９は、ロックダウンの解除処理におけるフローチャートを示す図である。図９の処理は、画像形成装置１００のＣＰＵ１０１がプログラムを実行することにより実現される。他の局面において、処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
【００９５】
ＣＰＵ１０１は、図９に示される処理を定期的に実行する。また、ＣＰＵ１０１は、図８に示される処理と並行して図９に示される処理を実行する。
【００９６】
ステップＳ１８０において、ＣＰＵ１０１は、キャッシュメモリ１３０においてロックダウンされている制御プログラムのいずれかについて処理の実行が完了したか否かを判断する。ＣＰＵ１０１は、キャッシュメモリ１３０においてロックダウンされている制御プログラムのいずれかについて処理の実行が完了したと判断した場合（ステップＳ１８０においてＹＥＳ）、制御をステップＳ１８２に切り替える。そうでない場合には（ステップＳ１８０においてＮＯ）、ＣＰＵ１０１は、制御をステップＳ１９０に切り替える。
【００９７】
ステップＳ１８２において、ＣＰＵ１０１は、処理の実行が完了した制御プログラムについてロックダウンを解除する。典型的には、ＣＰＵ１０１は、キャッシュメモリ１３０上においてロックダウンを解除するデータ領域をアドレス指定する。これにより、ＣＰＵ１０１は、指定したデータ領域についてロックダウンを解除する。
【００９８】
ステップＳ１９０において、ＣＰＵ１０１は、画像形成装置の状態が変化したか否かを判断する。典型的には、ＣＰＵ１０１は、画像形成装置１００の前状態を記憶しておき、画像形成装置１００の現状態が前状態と異なる場合に、画像形成装置１００の状態が変化したと判断する。ＣＰＵ１０１は、画像形成装置１００の状態が変化したと判断した場合（ステップＳ１９０においてＹＥＳ）、制御をステップＳ１９２に切り替える。そうでない場合には（ステップＳ１９０においてＮＯ）、ＣＰＵ１０１は、図９に示される処理を終了する。
【００９９】
ステップＳ１９２において、ＣＰＵ１０１は、画像形成装置１００の現状態において実行可能性が低い制御プログラムについてロックダウンを解除する。典型的には、ＣＰＵ１０１は、キャッシュメモリ１３０上においてロックダウンを解除するデータ領域をアドレス指定する。これにより、ＣＰＵ１０１は、指定したデータ領域についてロックダウンを解除する。
【０１００】
このように、ＣＰＵ１０１は、ロックダウンされている制御プログラムの実行が完了した場合、または、画像形成装置１００の状態が変化した場合に、ロックダウンの解除処理が実行される。
【０１０１】
なお、ある制御プログラムについてロックダウンが解除されたとしても、当該制御プログラムは、キャッシュメモリ１３０に残るが、新たな制御プログラムがキャッシュメモリ１３０に書き込まれることで、ロックダウンが解除された制御プログラムは、上書きされる。すなわち、ロックダウンが解除された制御プログラムは、そのうちキャッシュアウトされる。
【０１０２】
［ロックダウンの割込処理の制御フロー］
メカコン制御は、立上げ処理、印刷処理、立下げ処理を順に実行する印刷制御のようなシーケンシャルな制御プログラム以外にもロックダウンを実行する。一例として、ＣＰＵ１０１は、画像形成装置１００の停止処理や画像調整処理についてロックダウンを実行する。停止処理は、画像形成装置１００の故障が発生した場合に実行される。画像調整処理は、画像形成時の品質が維持されていない場合に実行される。停止処理および画像調整処理は、ともに、印刷処理を中断した上で実行される。すなわち、停止処理および画像調整処理は、印刷処理に割り込んで実行される。
【０１０３】
これらの割込処理が実行されるか否かは、画像形成装置１００内の状態を表わす状態値に基づいて判断される。当該状態値は、たとえば、画像形成装置１００内の温度、現在までの印刷枚数などである。画像形成装置１００は、当該状態値が所定閾値に達した場合に、割込処理を実行する。すなわち、状態値は、予め定められた制御プログラムを実行するためのトリガーとなる。
【０１０４】
当該状態値が所定閾値に近付くにつれて割込処理が実行される可能性が高くなる。この点に着目して、画像形成装置１００は、状態値が所定閾値に近付くにつれて割込処理（予め定められた制御プログラム）の優先度を高くする。
【０１０５】
より具体的には、状態値が第１閾値を超えたことに基づいて、画像形成装置１００は、割込処理を実行するための制御プログラムをキャッシュメモリ１３０に格納するとともに、当該割込処理をロックダウンする。その後、状態値が第１閾値よりも大きい第２閾値を超えたことに基づいて、画像形成装置１００は、割込処理を実行する。これにより、割込処理の実行タイミングが到来したときに、割込処理の遅延が生じない。
【０１０６】
以下では、図１０を参照して、割込処理の一例である停止処理に対するロックダウン処理について説明する。図１０は、停止処理に対するロックダウン処理を示すフローチャートである。図１０の処理は、画像形成装置１００のＣＰＵ１０１がプログラムを実行することにより実現される。他の局面において、処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
【０１０７】
ステップＳ２１０において、ＣＰＵ１０１は、カラー印刷指示を受け付けたか否かを判断する。ＣＰＵ１０１は、カラー印刷指示を受け付けたと判断した場合（ステップＳ２１０においてＹＥＳ）、制御をステップＳ２１２に切り替える。そうでない場合には（ステップＳ２１０においてＮＯ）、ＣＰＵ１０１は、ステップＳ２１０の処理を再び実行する。
【０１０８】
ステップＳ２１２において、ＣＰＵ１０１は、カラー印刷処理をキャッシュメモリ１３０に書き込むとともに、当該カラー印刷処理をロックダウンする。
【０１０９】
ステップＳ２１４において、ＣＰＵ１０１は、カラー立上げ処理を開始する。
ステップＳ２１６において、ＣＰＵ１０１は、停止処理を実行するトリガーとなる状態値をカウントアップする。
【０１１０】
ステップＳ２１８において、ＣＰＵ１０１は、画像形成装置１００の停止処理を実行するための制御プログラムをキャッシュメモリ１３０に書き込む。
【０１１１】
ステップＳ２２０において、ＣＰＵ１０１は、カラー立上げ処理が完了したか否かを判断する。ＣＰＵ１０１は、カラー立上げ処理が完了したと判断（ステップＳ２２０においてＹＥＳ）、制御をステップＳ２２２に切り替える。そうでない場合には（ステップＳ２２０においてＮＯ）、ＣＰＵ１０１は、制御をステップＳ２１６に戻す。
【０１１２】
ステップＳ２２２において、ＣＰＵ１０１は、カラー立上げ処理のロックダウンを解除する。
【０１１３】
ステップＳ２２４において、ＣＰＵ１０１は、カラー印刷処理を開始する。
ステップＳ２２６において、ＣＰＵ１０１は、停止処理を実行するトリガーとなる状態値をカウントアップする。
【０１１４】
ステップＳ２２８において、ＣＰＵ１０１は、停止処理を実行するトリガーとなる状態値が所定閾値（第１閾値）を超えたか否かを判断する。第１閾値は、停止処理の実行基準となる第２閾値よりも小さい。ＣＰＵ１０１は、停止処理を実行するトリガーとなる状態値が所定閾値を超えたと判断した場合（ステップＳ２２８においてＹＥＳ）、制御をステップＳ２３０に切り替える。そうでない場合には（ステップＳ２２８においてＮＯ）、ＣＰＵ１０１は、制御をステップＳ２３２に切り替える。
【０１１５】
ステップＳ２３０において、ＣＰＵ１０１は、画像形成装置１００の停止処理をキャッシュメモリ１３０に書き込むとともに、当該停止処理をロックダウンする。
【０１１６】
ステップＳ２３２において、ＣＰＵ１０１は、次のページの印刷指示を受け付けたか否かを判断する。ＣＰＵ１０１は、次ページの印刷指示を受け付けたと判断した場合（ステップＳ２３２においてＹＥＳ）、図１０に示される処理を終了する。そうでない場合には（ステップＳ２３２においてＮＯ）、ＣＰＵ１０１は、制御をステップＳ２２６に戻す。
【０１１７】
［状態値］
上述のように、ＣＰＵ１０１は、画像形成装置１００の状態を表わす状態値が高くなるにつれて、当該状態値に対応する予め定められた画像処理プログラム（たとえば、停止制御プログラム）についての実行の優先度を高くする。すなわち、画像形成装置１００は、様々な状態値を監視し、状態値のいずれかが所定閾値を超えたことに基づいて、当該状態値の種類に関連する画像処理プログラムを実行する。以下では、状態値の種類について説明する。
【０１１８】
状態値は、たとえば、上述のセンサー１０４（図２参照）によって検知される。一例として、センサー１０４は、用紙センサーである。用紙センサーは、検知範囲が用紙の搬送経路４１（図１参照）を含むように配置され、用紙が当該検知範囲を通過したことを検知する。画像形成装置１００は、用紙センサーからの出力値に基づいて、検知範囲の通過時間を状態値として計測する。当該通過時間が所定時間よりも長い場合には、用紙が何らかの理由により画像形成装置１００内に滞留していることを示す。この場合、画像形成装置１００は、用紙によるデバイスの破損を防止するために停止処理を実行する。
【０１１９】
より具体的には、画像形成装置１００は、用紙の通過時間が第１閾値を超えたことに基づいて、停止処理を実行するための制御プログラムをキャッシュメモリ１３０に書き込み、その後に停止処理をロックダウンする。次に、画像形成装置１００は、用紙の通過時間が第１閾値よりも大きい第２閾値を超えたことに基づいて、停止処理を実行する。
【０１２０】
他の例として、センサー１０４は、画像形成装置１００内の装置が所定位置にあることを検知する装置センサーを含む。当該装置センサーは、転写ベルトの圧接離間機構のように画像形成装置のある機構が所定位置にあることを検知する。装置センサーが当該機構の状態を所定時間の間に検知しない場合には、当該機構が破損している可能性がある。そのため、画像形成装置１００は、装置センサーが当該機構の状態を所定時間の間に検知しない場合には、キャッシュメモリ１３０において停止処理をロックダウンする。
【０１２１】
他の例として、センサー１０４は、画像形成装置１００が不安定である時間を状態値として検知する。一例として、センサー１０４は、モーターによる用紙の搬送速度が目標範囲内に属さない時間（以下、「不安定時間」ともいう。）を検知する。当該不安定時間が所定時間よりも長い場合には、用紙が何らかの理由により画像形成装置１００が故障している可能性がある。この場合、画像形成装置１００は、停止処理を実行する。より具体的には、画像形成装置１００は、不安定時間が第１閾値を超えたことに基づいて、停止処理を実行するための制御プログラムをキャッシュメモリ１３０に書き込み、その後に停止処理をロックダウンする。次に、画像形成装置１００は、不安定時間が第１閾値よりも大きい第２閾値を超えたことに基づいて、停止処理を実行する。
【０１２２】
他の例として、センサー１０４は、画像形成装置１００内の各制御の処理時間（動作時間）を状態値として検知する。処理時間が所定の時間内に終了しない場合には、画像形成装置１００が処理を終了できない状態になっている可能性がある。この場合には、画像形成装置１００は、当該処理を強制的に終了させ、停止制御を実行する。
【０１２３】
他の例として、センサー１０４は、画像形成装置１００における現在までの印刷枚数を状態値として検知する。画像形成装置１００は、印刷枚数に応じて、印刷品質を維持するための安定化処理を実行する。安定化処理としては、たとえば、装置内のクリーニング処理や、画像形成における制御パラメータ―の調整処理などが挙げられる。
【０１２４】
画像形成装置１００は、印刷枚数が第１閾値を超えたことに基づいて、安定化処理を実行するための制御プログラムをキャッシュメモリ１３０に書き込み、その後に安定化処理をロックダウンする。次に、画像形成装置１００は、印刷枚数が第１閾値よりも大きい第２閾値を超えたことに基づいて、安定化処理を実行する。
【０１２５】
他の例として、センサー１０４は、印刷処理の実行間隔を状態値として測定する。画像形成装置１００は、当該実行間隔が所定時間以上空いた場合に、印刷品質を維持するための安定化処理を実行する。当該安定化処理としては、たとえば、トナーの固着を防止する処理、ゴム部品の形状の変形を防止する処理、転写ベルトのクリープの発生を抑制する処理などが挙げられる。
【０１２６】
他の例として、センサー１０４は、画像形成装置１００内の環境状態を表わす環境値を状態値として測定する。温度センサーとしてのセンサー１０４は、画像形成装置１００内の温度を環境値として検知する。湿度センサーとしてのセンサー１０４は、画像形成装置１００内の湿度を環境値として検知する。画像形成装置１００は、検知される環境値が異常であると判断した場合には、印刷品質を維持するための安定化処理を実行する。当該安定化処理としては、たとえば、帯電電圧の補正処理、転写電圧の決定処理（ＡＴＶＣ：Active  Transfer  Voltage  Control）、画像形成のための制御パラメータを補正する処理などが挙げられる。
【０１２７】
より具体的には、画像形成装置１００は、環境値が第１閾値を超えたことに基づいて、安定化処理を実行するための制御プログラムをキャッシュメモリ１３０に書き込み、その後に安定化処理をロックダウンする。次に、画像形成装置１００は、環境値が第１閾値よりも大きい第２閾値を超えたことに基づいて、安定化処理を実行する。
【０１２８】
あるいは、画像形成装置１００は、前回の安定化処理の実行時からの環境値の変動値が第１閾値を超えたことに基づいて、安定化処理を実行するための制御プログラムをキャッシュメモリ１３０に書き込み、その後に安定化処理をロックダウンする。その後、画像形成装置１００は、当該変動値が第１閾値よりも大きい第２閾値を超えたことに基づいて、安定化処理を実行する。
【０１２９】
［まとめ］
以上のようにして、画像形成装置１００は、ＨＤＤ１２０に予め格納されている複数の制御プログラム１２３の内から実行候補の制御プログラムをキャッシュメモリ１３０に書き込む。次に、画像形成装置１００は、実行候補の制御プログラムの各々について実行の優先度を決定する。その後、画像形成装置１００は、実行候補の制御プログラムの内、実行の優先度が相対的に高い制御プログラムをキャッシュメモリ１３０においてロックダウンする。実行の優先度が高い制御プログラムが他の制御プログラムよりも優先的にロックダウンされることで、画像形成装置１００は、実行可能性が高い制御プログラムがキャッシュアウトされることを防止できる。これにより、画像形成装置１００は、リアルタイム性が要求されるような優先度が高い制御プログラムの実行が遅延することを防止できる。
【０１３０】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【０１３１】
１Ｃ，１Ｋ，１Ｍ，１Ｙ  画像形成ユニット、１０  感光体、１１  帯電装置、１２  帯電ローラー、１３  露光装置、１４  現像装置、１５  現像ローラー、１５Ｃ，１５Ｋ，１５Ｍ，１５Ｙ  トナーボトル、１７，４２  クリーニング装置、３０  中間転写ベルト、３１，３３  転写ローラー、３７  カセット、３８  従動ローラー、３９  駆動ローラー、４０  タイミングローラー、４１  搬送経路、４８  トレー、５０  定着装置、１００  画像形成装置、１０１  ＣＰＵ、１０１Ａ  コントローラー制御用コア、１０１Ｂ  メカコン制御用コア、１０２  ＲＯＭ、１０３  ＲＡＭ、１０４  センサー、１０５  メカコン制御対象部、１０６  コントローラー制御対象部、１１１  内部バス、１２３，１２３Ａ〜１２３Ｃ  制御プログラム、１２４Ａ  コントローラー制御用プログラム、１２４Ｂ  メカコン制御用プログラム、１２５  メモリ管理プログラム、１２６  制御テーブル、１２７  制御プログラム群、１３０  キャッシュメモリ、１５２  書込部、１５４  決定部、１５６  メモリ制御部、１５８  検知部。
【図１】
2018136867.tif 000003
【図２】
2018136867.tif 000004
【図３】
2018136867.tif 000005
【図４】
2018136867.tif 000006
【図５】
2018136867.tif 000007
【図６】
2018136867.tif 000008
【図７】
2018136867.tif 000009
【図８】
2018136867.tif 000010
【図９】
2018136867.tif 000011
【図１０】
2018136867.tif 000012