(57)【要約】【課題】画像処理装置において、画像形成部にトラブルが発生した場合に、制御部を無用にリブートすることを回避しつつ、必要に応じて制御部のリブートを実行するための技術を提供すること。【解決手段】画像処理装置のメインＣＰＵは、印刷ジョブの実行中にプリンター部等のメカ要素において１回目のトラブルの発生を検出した場合（ステップＳ１０８にてＹＥＳ）、メインＣＰＵをリブートすることなく、サブＣＰＵにリブートを指示する。一方、メインＣＰＵは、上記印刷ジョブの終了前にメカ要素において２回目のトラブルの発生を検出した場合には（ステップＳ１０８にてＮＯ）、画像処理装置全体（サブＣＰＵおよびメインＣＰＵ）をリブートする。【選択図】図１０
2020021985.tif 000002
【特許請求の範囲】
【請求項１】
画像形成動作を実行する画像形成部と、
前記画像形成部の画像形成動作を制御する制御部とを備え、
前記画像形成部は、画像形成動作のために駆動する駆動部と、前記駆動部を制御する制御回路とを含み、
前記制御部は、
印刷ジョブの実行中に前記画像形成部において１回目のトラブルの発生を検出した場合に、前記制御部をリブートすることなく前記制御回路にリブートを指示し、
前記印刷ジョブの終了前に前記画像形成部において２回目のトラブルの発生を検出した場合に、前記制御回路および前記制御部をリブートする、画像処理装置。
【請求項２】
前記制御部は、前記２回目のトラブルの発生を検出した場合に、前記画像形成部を利用しない他のジョブの実行中であるときには当該他のジョブの終了を待って、前記制御部をリブートする、請求項１に記載の画像処理装置。
【請求項３】
前記制御部は、前記画像形成部を利用するジョブを第１のプロセス空間で実行し、前記画像形成部を利用しないジョブを第２のプロセス空間で実行する、請求項１または請求項２に記載の画像処理装置。
【請求項４】
前記画像形成部は、前記印刷ジョブに利用する用紙を収容する給紙トレイを含み、
前記制御回路は、前記給紙トレイ内の用紙サイズを特定する情報を前記制御部へ送信し、
前記制御部は、前記印刷ジョブの実行のために、前記制御回路に、前記制御回路から受信した前記用紙サイズを特定する情報を利用した制御指示を送信する、請求項１〜請求項３のいずれか１項に記載の画像処理装置。
【請求項５】
前記画像形成部は、前記駆動部が所定の信号に従って出力した画像に基づいて、画像形成用の信号と前記駆動部の動作態様との関係を表す補正情報を生成し、当該補正情報を前記制御部へ送信し、
前記制御部は、前記印刷ジョブの実行のために、前記制御回路に、前記制御回路から受信した前記補正情報を利用した制御指示を送信する、請求項１〜請求項４のいずれか１項に記載の画像処理装置。
【請求項６】
画像形成動作を実行する画像形成部と、前記画像形成部の画像形成動作を制御する制御部とを備える画像処理装置において、前記制御部によって実行される前記画像処理装置の制御方法であって、
前記画像形成部は、画像形成動作のために駆動する駆動部と、前記駆動部を制御する制御回路とを含み、
印刷ジョブの実行中に前記画像形成部において１回目のトラブルの発生を検出した場合に、前記制御部をリブートすることなく前記制御回路にリブートを指示するステップと、
前記印刷ジョブの終了前に前記画像形成部において２回目のトラブルの発生を検出した場合に、前記制御回路にリブートを指示し、前記制御部をリブートするステップとを備える、画像処理装置の制御方法。
【請求項７】
画像形成動作を実行する画像形成部と、前記画像形成部の画像形成動作を制御する制御部とを備える画像処理装置において、前記制御部によって実行されるプログラムであって、
前記画像形成部は、画像形成動作のために駆動する駆動部と、前記駆動部を制御する制御回路とを含み、
前記プログラムを実行することにより、前記制御部は、
印刷ジョブの実行中に前記画像形成部において１回目のトラブルの発生を検出した場合に、前記制御部をリブートすることなく前記制御回路にリブートを指示するステップと、
前記印刷ジョブの終了前に前記画像形成部において２回目のトラブルの発生を検出した場合に、前記制御回路にリブートを指示し、前記制御部をリブートするステップとを実行する、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、画像処理装置の制御に関する。
【背景技術】
【０００２】
ＭＦＰ（Multi-Functional  Peripheral）等の画像処理装置は、感光体および用紙搬送機構などの画像形成を実行する要素を含む画像形成部と、当該画像形成部を制御する制御部とを含む。制御部は、たとえば画像処理装置の中央の制御基板によって実現される。
【０００３】
従来、画像処理装置において、一部にトラブルが発生した場合、トラブルが発生した部分のみをリブートし、他の部分の動作を継続させるための技術が種々提案されている。たとえば、特開２０１３−０５４３１４号公報（特許文献１）は、複数のＣＰＵ（Central  Processing  Unit）画像形成装置において、一つのＣＰＵが暴走した場合に、それ以外のＣＰＵによる機能を継続させながら、暴走したＣＰＵをリセットする技術を開示している。特開２０１６−１７５３４９号公報（特許文献２）は、印刷ジョブの実行中に障害が発生した場合、印刷ジョブを中断し、印刷ジョブ情報を記憶装置に格納し、画像形成部をリセットした後、画像形成部と制御部とを接続して、中断した印刷ジョブを再開する、画像形成装置を開示している。特開２０１７−０４６３５４号公報（特許文献３）は、操作部と画像処理部が異なるＯＳ（オペレーティングシステム）上で動作する画像処理装置において、操作部に異常が発生した場合、操作部のみをリブートする技術を開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−０５４３１４号公報
【特許文献２】特開２０１６−１７５３４９号公報
【特許文献３】特開２０１７−０４６３５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の画像処理装置には、画像形成部においても、感光体などの要素を制御するためのファームウェア（ＦＷ）を実行するプロセッサーが設置されているものがあった。画像形成部のプロセッサーは、制御部のプロセッサーによって制御される。このような画像処理装置において、制御部のプロセッサーは、画像形成部を利用することなく実行するジョブを実行する場合がある。このようなジョブの一例は、画像処理装置の記憶装置に格納されたデータを他の機器に送信するジョブである。
【０００６】
画像形成部においてトラブルが発生した場合、画像形成部のみをリブートすることによって、制御部が無用にリブートされることを回避できる場合がある。たとえば、制御部のプロセッサーが上記のようにデータを送信するジョブを実行している場合、制御部のプロセッサーは、無用にリブートされることなく継続して実行できる。
【０００７】
しかしながら、画像形成部におけるトラブルが制御部の処理にも影響を及ぼす場合があり得る。このような場合、画像形成部のみがリブートされても、画像処理装置に新たなトラブルが発生する場合があった。
【０００８】
本開示は、係る実情に鑑み考え出されたものであり、その目的は、画像処理装置において、画像形成部にトラブルが発生した場合に、制御部を無用にリブートすることを回避しつつ、必要に応じて制御部のリブートを実行するための技術を提供することである。
【課題を解決するための手段】
【０００９】
本開示のある局面に従うと、画像形成動作を実行する画像形成部と、画像形成部の画像形成動作を制御する制御部とを備え、画像形成部は、画像形成動作のために駆動する駆動部と、駆動部を制御する制御回路とを含み、制御部は、印刷ジョブの実行中に画像形成部において１回目のトラブルの発生を検出した場合に、制御部をリブートすることなく制御回路にリブートを指示し、印刷ジョブの終了前に画像形成部において２回目のトラブルの発生を検出した場合に、制御回路および制御部をリブートする、画像処理装置が提供される。
【００１０】
制御部は、２回目のトラブルの発生を検出した場合に、画像形成部を利用しない他のジョブの実行中であるときには当該他のジョブの終了を待って、制御部をリブートしてもよい。
【００１１】
制御部は、画像形成部を利用するジョブを第１のプロセス空間で実行し、画像形成部を利用しないジョブを第２のプロセス空間で実行してもよい。画像形成部は、印刷ジョブに利用する用紙を収容する給紙トレイを含んでいてもよい。制御回路は、給紙トレイ内の用紙サイズを特定する情報を制御部へ送信してもよい。制御部は、印刷ジョブの実行のために、制御回路に、制御回路から受信した用紙サイズを特定する情報を利用した制御指示を送信してもよい。
【００１２】
画像形成部は、駆動部が所定の信号に従って出力した画像に基づいて、画像形成用の信号と駆動部の動作態様との関係を表す補正情報を生成し、当該補正情報を制御部へ送信してもよい。制御部は、印刷ジョブの実行のために、制御回路に、制御回路から受信した補正情報を利用した制御指示を送信してもよい。
【００１３】
本開示の他の局面に従うと、画像形成動作を実行する画像形成部と、画像形成部の画像形成動作を制御する制御部とを備える画像処理装置において、制御部によって実行される画像処理装置の制御方法が提供される。画像形成部は、画像形成動作のために駆動する駆動部と、駆動部を制御する制御回路とを含む。制御方法は、印刷ジョブの実行中に画像形成部において１回目のトラブルの発生を検出した場合に、制御部をリブートすることなく制御回路にリブートを指示するステップと、印刷ジョブの終了前に画像形成部において２回目のトラブルの発生を検出した場合に、制御回路にリブートを指示し、制御部をリブートするステップとを備える。
【００１４】
本開示のさらに他の局面に従うと、画像形成動作を実行する画像形成部と、画像形成部の画像形成動作を制御する制御部とを備える画像処理装置において、制御部によって実行されるプログラムが提供される。画像形成部は、画像形成動作のために駆動する駆動部と、駆動部を制御する制御回路とを含む。プログラムを実行することにより、制御部は、印刷ジョブの実行中に画像形成部において１回目のトラブルの発生を検出した場合に、制御部をリブートすることなく制御回路にリブートを指示するステップと、印刷ジョブの終了前に画像形成部において２回目のトラブルの発生を検出した場合に、制御回路にリブートを指示し、制御部をリブートするステップとを実行する。
【発明の効果】
【００１５】
本開示によれば、画像処理装置の制御部は、印刷ジョブの実行中に画像形成部において１回目のトラブルの発生を検出した場合に、制御部をリブートすることなく制御回路にリブートを指示する。当該制御部は、上記印刷ジョブの終了前に画像形成部において２回目のトラブルの発生を検出した場合に、駆動部の制御回路および制御部をリブートする。これにより、画像処理装置において、画像形成部にトラブルが発生した場合に、制御部を無用にリブートすることを回避しつつ、必要に応じて制御部のリブートを実行するための技術が提供される。
【図面の簡単な説明】
【００１６】
【図１】画像処理装置１の外観図である。
【図２】画像処理装置１のハードウェアブロック図である。
【図３】図２のメインＣＰＵ２０およびサブＣＰＵ３０，３１のそれぞれがファームウェアプログラムを実行することによって実現される機能を説明するための図である。
【図４】メインＣＰＵ２０がＨＤＤ２４において管理する仮想メモリーの構成の一例を示す図である。
【図５】印刷ジョブの設定を入力するために表示部１５に表示される画面の一例を示す図である。
【図６】画像処理装置１において実行予定のジョブを管理する情報（ジョブ情報）の一例を示す図である。
【図７】コントローラーＦＷ２０１とプリンター部１３のメカコンＦＷ３０１との間の、通信の一例のシーケンス図である。
【図８】コントローラーＦＷ２０１とプリンター部１３のメカコンＦＷ３０１との間の、通信の他の例のシーケンス図である。
【図９】誤ったサイズ情報に従ったジョブ情報の更新態様の一例を示す図である。
【図１０】メインＣＰＵ２０によって、印刷ジョブのために実行される処理のフローチャートである。
【図１１】図１０のステップＳ１０２（エンジントラブルの検出）のサブルーチンのフローチャートである。
【図１２】メインＣＰＵ２０の機能構成の変形例を示す図である。
【図１３】図１２の例においてメインＣＰＵ２０が実行する処理のフローチャートである。
【図１４】エンジントラブルによってメカコンＦＷからコントローラーＦＷへと送信される誤ったデータの他の例を説明するための図である。
【図１５】エンジントラブルによってメカコンＦＷからコントローラーＦＷへと送信される誤ったデータの他の例を説明するための図である。
【図１６】エンジントラブルによってメカコンＦＷからコントローラーＦＷへと送信される誤ったデータの他の例を説明するための図である。
【図１７】図１４〜図１６を参照して説明される処理に対応する、メインＣＰＵ２０の機能構成の２つ目の変形例を示す図である。
【図１８】図１６の例においてメインＣＰＵ２０が実行する処理のフローチャートである。
【図１９】ＦＡＸ受信ジョブのために管理される、仮想メモリーの構成の一例を示す図である。
【図２０】利用される記憶領域がプロセスごとに分離されることの効果を説明するための図である。
【発明を実施するための形態】
【００１７】
以下に、図面を参照しつつ、画像処理装置の一実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらの説明は繰り返さない。
【００１８】
［１．画像処理装置の外観］
図１は、画像処理装置１の外観図である。図１に示されるように、画像処理装置１は、その上部に、原稿搬送部１１とスキャナー部１２とを備える。原稿搬送部１１は、当該原稿搬送部１１に載置された原稿を、１枚ずつスキャナー部１２に自動搬送する。これにより、スキャナー部１２は、原稿に記録された文字、記号、画像などを光学的に読み取る。
【００１９】
スキャナー部１２の下方には、プリンター部１３が設けられている。プリンター部１３の下方には、給紙部１４が設けられている。給紙部１４は、プリンター部１３に対して用紙を供給する。給紙部１４は、それぞれが用紙を収容する給紙トレイ１４Ａ〜１４Ｄを含む。
【００２０】
プリンター部１３は、コピー、ネットワークプリンター、又はＦＡＸに関するジョブを実行する。より具体的には、プリンター部１３は、給紙部１４から供給される用紙に画像を形成し、当該用紙を排出口１９から出力する。
【００２１】
画像処理装置１の前面側には、表示部１５と操作部１８とが設けられている。表示部１５は、ユーザーに対して、画像処理装置１によって実行されるジョブに関する情報やその他の情報を表示する。表示部１５は、たとえば液晶ディスプレイによって実現される。操作部１８は、画像処理装置１に対する情報の入力を受け付け、タッチパネル１６と操作ボタン１７とを含む。一例では、操作ボタン１７は、表示部１５の周囲に配置される。
【００２２】
［２．画像処理装置のハードウェア構成］
図２は、画像処理装置１のハードウェアブロック図である。図２に示されるように、画像処理装置１は、図１に示された構成要素に加えて、メインＣＰＵ（Central  Processing  Unit）２０、ＲＯＭ（Read  Only  Memory）２１、ＲＡＭ（Random  Access  Memory）２２、不揮発メモリー２３、ＨＤＤ（Hard  Disc  Drive）２４、ＮＩＣ（Network  Interface  Card）２５、および、ＦＡＸ送受信部２６を備える。
【００２３】
メインＣＰＵ２０は、ＲＯＭ２１に格納されるプログラム（コントローラーＦＷ（FirmWare））をＲＡＭ２２に読み出して実行することにより、画像形成装置としての基本機能（コピー、ネットワークプリンター、スキャナー、ＦＡＸなどの基本機能）を実現する。本明細書では、独自のファームウェアによって動作を制御される要素を「メカ要素」とも称する。メカ要素は、たとえば、原稿搬送部１１、スキャナー部１２、プリンター部１３、および、給紙部１４である。画像処理装置１において、メカ要素を制御する要素として機能するメインＣＰＵ２０を、「コントローラー」とも称する。コントローラーＦＷは、メインＣＰＵ２０がコントローラーとして機能するための実行するファームウェアプログラムを意味する。
【００２４】
ＮＩＣ２５およびＦＡＸ送受信部２６は、画像処理装置１における通信インタフェースとして機能することにより、画像処理装置１が他の機器との間でデータ通信することを可能にする。ＮＩＣ２５による通信は、無線通信であってもよいし、有線通信であってもよい。ＦＡＸ送受信部２６は、たとえば、Ｇ３−ＦＡＸ規格に従って通信し、モデムとＴＡ（ターミナルアダプタ）とによって実現される。ＲＯＭ２１に記憶されるプログラムは、ネットワークなどを介して外部の装置からダウンロードすることにより、最新バージョンのプログラムに更新することができるようになっている。
【００２５】
画像処理装置１は、サブＣＰＵ３０をさらに含む。サブＣＰＵ３０は、ＲＯＭ２１に格納されるプログラム（メカコンＦＷ）をＲＡＭ２２に読み出して実行することにより、メカ要素であるプリンター部１３および給紙部１４の駆動を制御する。「メカコンＦＷ」とは、メカ要素を制御するためのファームウェアプログラムを意味する。本明細書では、プリンター部１３および給紙部１４は、「プリントエンジン」とも称される場合がある。サブＣＰＵ３１は、ＲＯＭ２１に格納されるプログラムをＲＡＭ２２に読み出して実行することにより、メカ要素である原稿搬送部１１およびスキャナー部１２の駆動を制御する。本明細書では、原稿搬送部１１およびスキャナー部１２は、「スキャンエンジン」とも称される場合がある。プリンター部１３、給紙部１４、原稿搬送部１１、および、スキャナー部１２は、本明細書では、「エンジン」と総称される場合がある。
【００２６】
メインＣＰＵ２０は、画像処理装置の制御部の一例である。サブＣＰＵ３０，３１は、駆動部の制御回路の一例である。
【００２７】
［３．画像処理装置の機能的構成（１）］
図３は、図２のメインＣＰＵ２０およびサブＣＰＵ３０，３１のそれぞれがファームウェアプログラムを実行することによって実現される機能を説明するための図である。
【００２８】
＜メインＣＰＵ２０の機能＞
図３では、メインＣＰＵ２０がコントローラーＦＷのプログラムを実行することによって実現される機能が、コントローラーＦＷ２０１として示されている。以下、コントローラーＦＷに含まれるプログラムモジュールによって実現される各機能の役割を説明する。
【００２９】
（Ｊｏｂ制御）
Ｊｏｂ制御は、メインＣＰＵ２０がＪｏｂ制御用のプログラムモジュールを実行することによって実現される。Ｊｏｂ制御は、印刷ジョブの開始および停止を、後述する「Ｐｒｉｎｔ制御」に指示し、また、ＦＡＸジョブの開始および停止を「Ｐｒｉｎｔ制御」および「Ｆａｘ制御」に指示する。また、ジョブの順番を制御することによりジョブリストを生成（または調整）し、当該ジョブリストを後述する「Ｐａｎｅｌ制御」に送る。
【００３０】
（Ｐｒｉｎｔ制御）
Ｐｒｉｎｔ制御は、メインＣＰＵ２０がＰｒｉｎｔ制御用のプログラムモジュールを実行することによって実現される。Ｐｒｉｎｔ制御は、プリンター部１３用のメカコンＦＷ３０１を介して、プリンター部１３と通信し、給紙部１４と通信する。Ｐｒｉｎｔ制御は、プリンター部１３および給紙部１４と通信することによって、印刷ジョブについての、画像転送および給紙を制御する。
【００３１】
（Ｓｃａｎ制御）
Ｓｃａｎ制御は、メインＣＰＵ２０がＳｃａｎ制御用のプログラムモジュールを実行することによって実現される。Ｓｃａｎ制御は、スキャナー部１２用のメカコンＦＷ３１１を介してスキャナー部１２と通信する。Ｓｃａｎ制御は、スキャナー部１２と通信することにより、画像を読み取る。
【００３２】
（Ｎｅｔ制御）
Ｎｅｔ制御は、メインＣＰＵ２０がＮｅｔ制御用のプログラムモジュールを実行することによって実現される。Ｎｅｔ制御は、ＮＩＣ２５と通信することにより、外部の情報処理装置との間でジョブの送受信を行う。
【００３３】
（Ｆａｘ制御）
Ｆａｘ制御は、メインＣＰＵ２０がＦａｘ制御用のプログラムモジュールを実行することによって実現される。Ｆａｘ制御は、Ｆａｘ送受信部２６と通信することにより、ＦＡＸ対向機とＦＡＸ送受信を行う。
【００３４】
（Ｂｏｘ制御）
Ｂｏｘ制御は、メインＣＰＵ２０がＢｏｘ制御用のプログラムモジュールを実行することによって実現される。Ｂｏｘ制御は、ＨＤＤ２４と通信することにより、当該ＨＤＤ２４内のファイル記憶領域２４０（通称、「ＢＯＸ」）を管理する。一例では、Ｂｏｘ制御は、ＨＤＤ２４においてファイル記憶領域２４０の作成および／または削除を実行する。他の例では、Ｂｏｘ制御は、ＨＤＤ２４のファイル記憶領域２４０に、画像データを格納する。
【００３５】
（Ｐａｎｅｌ制御）
Ｐａｎｅｌ制御は、メインＣＰＵ２０がＰａｎｅｌ制御用のプログラムモジュールを実行することによって実現される。Ｐａｎｅｌ制御は、表示部１５と通信することによって表示部１５における表示を制御し、また、操作部１８と通信することによって操作部１８に入力された情報を「Ｊｏｂ制御」へ送る。一例では、Ｐａｎｅｌ制御は、操作部１８に入力されたジョブの開始指示を「Ｊｏｂ制御」へ送る。これにより、「Ｊｏｂ制御」は、「Ｐｒｉｎｔ制御」等のジョブの開始を指示する。他の例では、Ｐａｎｅｌ制御は、操作部１８に入力されたジョブについての設定を「Ｊｏｂ制御」へ送る。これにより、「Ｊｏｂ制御」は、「Ｐｒｉｎｔ制御」等に指示するジョブの内容を調整する。
【００３６】
（ＣＰＵ異常監視）
ＣＰＵ異常監視は、メインＣＰＵ２０がＣＰＵ異常監視用のプログラムモジュールを実行することによって実現される。ＣＰＵ異常監視は、「エンジン」におけるトラブルの一例として、サブＣＰＵ３０，３１の暴走を検出する。一例では、ＣＰＵ異常監視は、サブＣＰＵの暴走を検出した場合、暴走したサブＣＰＵにファームウェアのリブートの実行を指示する。
【００３７】
＜サブＣＰＵ３０，３１の機能＞
図３では、サブＣＰＵ３０が、プリンター部１３および給紙部１４用のファームウェアを実行することによって実現される機能が、メカコンＦＷ３０１として示されている。
【００３８】
図３では、サブＣＰＵ３１が、スキャナー部１２用のファームウェアを実行することによって実現される機能が、メカコンＦＷ３１１として示されている。サブＣＰＵ３１が、原稿搬送部１１用のファームウェアを実行することによって実現される機能が、メカコンＦＷ３１２として示されている。
【００３９】
図３の例では、コントローラーＦＷ２０１が１つのプロセス空間（プロセスアドレス空間）を用いて実現される。メカコンＦＷ３０１、メカコンＦＷ３１１、メカコンＦＷ３１２のそれぞれが１つずつプロセス空間を用いて実現される。
【００４０】
［４．仮想メモリーの構成］
図４は、メインＣＰＵ２０がＨＤＤ２４において管理する仮想メモリーの構成の一例を示す図である。図４に示されるように、仮想メモリー２４１０は、概略的には、プログラム領域と、データ領域と、スタック領域とによって構成される。
【００４１】
プログラム領域２４１１は、ＲＯＭ２１に格納されたプログラムがロードされる領域である。データ領域は静的メモリー２４１２と動的メモリー２４１３とを含む。動的メモリー２４１３は、確保されかつ解放されることが可能である。これにより、動的メモリー２４１３は、異なる用途で再利用され得る。静的メモリー２４１２は、一度確保されるとその領域は解放されることができない。
【００４２】
スタック領域は、プログラム領域の中で実際にメインＣＰＵ２０により実行された関数や変数のデータが配置される。メインＣＰＵ２０がＯＳのタスクスケジューラー制御を実行することによって、複数のスタック領域の中から利用するスタック領域を切り替えることにより、１つのメインＣＰＵ２０が、複数のタスクを同時に進行しているように振る舞う。タスクスケジューラー制御は、タスクプライオリティーに基づいて、タスクの処理順番を決定する。図４の例では、４種類のスタック領域が定義される。Ｊｏｂ制御タスクのスタック領域２４１４は、コントローラーＦＷ２０１のＪｏｂ制御において利用される。Ｐｒｉｎｔ制御タスクのスタック領域２４１５は、コントローラーＦＷ２０１のＰｒｉｎｔ制御において利用される。Ｓｃａｎ制御タスクのスタック領域２４１６は、コントローラーＦＷ２０１のＳｃａｎ制御において利用される。Ｎｅｔ制御タスクのスタック領域２４１７は、コントローラーＦＷ２０１のＮｅｔ制御において利用される。
【００４３】
［５．印刷ジョブの設定］
図５は、印刷ジョブの設定を入力するために表示部１５に表示される画面の一例を示す図である。図５に示されるように、画面５０００の欄５１００には、用紙を供給する給紙トレイの選択のための領域５１１０、用紙への印字面（片面／両面）の設定のための領域５１２０、印刷対象の原稿のページ数の設定のための領域５１３０とを含む。領域５１１０は、４種類の選択肢「自動」「トレイ１」「トレイ２」「トレイ３」を含む。「自動」は、原稿（印刷の対象）のサイズに従って、画像処理装置１が当該サイズに適した用紙を収容している給紙トレイを選択することを意味する。
【００４４】
「トレイ１」「トレイ２」「トレイ３」のそれぞれは、給紙部１４の３つの給紙トレイ（給紙トレイ１４Ａ，１４Ｂ，１４Ｃ）のそれぞれを示す。領域５１１０は、項目「用紙情報」として、「トレイ１」「トレイ２」「トレイ３」のそれぞれに収容されている用紙の情報を表示する。図５の例では、「トレイ１」には、種類「厚紙１」でありＡ３サイズの用紙が収容されている。「トレイ２」には、種類「普通紙」でありＡ４サイズの用紙が収容されている。「トレイ３」には、種類「薄紙１」でありＡ５サイズの用紙が収容されている。
【００４５】
図５の例では、領域５１１０にて「トレイ２」が選択され、領域５１２０にて「両面」が選択され、領域５１３０にて「１−２」（１ぺーじ目から２ページ目）が選択されている。
【００４６】
［６．ジョブ情報］
図６は、画像処理装置１において実行予定のジョブを管理する情報（ジョブ情報）の一例を示す図である。ジョブ情報６００は、ジョブによって印刷されるページごとに情報を有する。ジョブ情報は、項目「ページ位置」「ＡＰＳモード」「給紙トレイ」「用紙サイズ」「用紙種類」「印字面」を含む。
【００４７】
「ページ位置」は、ジョブ中のページ位置を示す。
「ＡＰＳモード」は、ＡＰＳ（自動用紙選択）機能を利用するか否かを表す。設定画面の領域６１１０にて「自動」が選択されると、ジョブ情報における「ＡＰＳモード」の値として「ＯＮ」が設定される。
【００４８】
「給紙トレイ」は、ユーザーの設定によって、または、ＡＰＳ機能によって、選択された給紙トレイを示す。
【００４９】
「用紙サイズ」は、選択された給紙トレイに収容される用紙のサイズを示す。
「用紙種類」は、選択された給紙トレイに収容される用紙の種類を示す。
【００５０】
「印字面」は、ジョブにおける印字面の設定内容を示す。
図６によって示されるジョブでは、たとえば、１ページ目の出力は、ＡＰＳ機能によって選択された「トレイ２」に収容される、Ａ４サイズの普通紙が利用される。１ページ目と２ページ目の印字面の設定値は「両面」である。これにより、用紙の表面に１ページ目の画像が印刷され、当該用紙の裏面に２ページ目の画像が印刷される。
【００５１】
［７．コントローラーＦＷとメカコンＦＷとの通信（例１）］
図７は、コントローラーＦＷ２０１とプリンター部１３のメカコンＦＷ３０１との間の、通信の一例のシーケンス図である。
【００５２】
図７の例では、メカコンＦＷ３０１は、コントローラーＦＷ２０１に、「用紙サイズレポート」として、給紙部１４の各給紙トレイに格納された用紙のサイズ情報を送信する。一例では、給紙部１４は、各給紙トレイに収容された用紙のサイズを検出するセンサーを含んでいてもよい。メカコンＦＷ３０１は、当該センサーの出力に従って、コントローラーＦＷ２０１に用紙のサイズ情報を送信してもよい。コントローラーＦＷ２０１は、送信されたサイズ情報に従って、ジョブ情報を編集する。図７の例では、トレイ２のサイズ情報として「Ａ４サイズ」が送信される。これに応じて、図６に示されたように、ジョブ情報では、「トレイ２」を含むページの用紙サイズの値として「Ａ４サイズ」が設定される。
【００５３】
コントローラーＦＷ２０１は、１ページ目の印刷のための「印刷開始コマンド」を、メカコンＦＷ３０１へ送信する。「印刷開始コマンド」は、ジョブ情報（図６等）における、対応するページの情報を含む。
【００５４】
図７の例では、１ページ目の印刷「印刷開始コマンド」の送信後、メカ要素においてトラブルが発生している。本明細書では、メカ要素においてトラブルが発生したことを「エンジントラブル」とも称する。
【００５５】
コントローラーＦＷ２０１は、エンジントラブルの発生を検出すると、メカコンＦＷ３０１に対して「リブ―ト指示」を送信することにより、リブートを指示する。
【００５６】
これに応じて、サブＣＰＵ３０は、メカコンＦＷ３０１をリブートする。
メカコンＦＷ３０１のリブートが完了すると、コントローラーＦＷ２０１は、再度、メカコンＦＷ３０１へ、１ページ目の「印刷開始コマンド」を送信する。図７の例では、リブートによりメカ要素におけるエンジントラブルが解消し、メカ要素（給紙部１４およびプリンター部１３）は１ページ目の画像の印刷を完了する。その後、コントローラーＦＷ２０１は、メカコンＦＷ３０１へ、２ページ目の「印刷開始コマンド」を送信する。メカ要素（給紙部１４およびプリンター部１３）は２ページ目の画像の印刷を完了する。
【００５７】
［８．コントローラーＦＷとメカコンＦＷとの通信（例２）］
図８は、コントローラーＦＷ２０１とプリンター部１３のメカコンＦＷ３０１メカコンＦＷ３０１との間の、通信の他の例のシーケンス図である。
【００５８】
図８の例では、図７の例と同様に、１回目の１ページ目の「印刷開始コマンド」の送信後、エンジントラブルが発生する。
【００５９】
図８の例では、エンジントラブルによってノイズが発生し、当該ノイズによって、メカコンＦＷ３０１が誤ったサイズ情報をコントローラーＦＷ２０１へ送信する。このサイズ情報では、「トレイ２」に（正しい「Ａ４サイズ」ではなく）「Ａ３サイズ」が関連付けられる。
【００６０】
コントローラーＦＷ２０１は、エンジントラブルの発生に応じて、メカコンＦＷ３０１にリブートを指示する。これにより、メカコンＦＷ３０１がリブートする。
【００６１】
その後、コントローラーＦＷ２０１は、再度、１ページ目から、「印刷開始コマンド」を送信する。
【００６２】
図８の例では、メカコンＦＷ３０１から誤ったサイズ情報を受信したことにより、コントローラーＦＷ２０１は、当該誤ったサイズ情報に従ってジョブ情報を更新してしまう。図９は、誤ったサイズ情報に従ったジョブ情報の更新態様の一例を示す図である。図９の左側のジョブ情報６００は、更新前の正しい情報を示す。コントローラーＦＷ２０１は、誤ったサイズ情報を受信することにより、右側に示されたジョブ情報６１０へと、ジョブ情報６００を書き換える。ジョブ情報６１０では、２ページ目の用紙サイズが「Ａ３サイズ」へと変更されている。
【００６３】
図８に戻って、コントローラーＦＷ２０１は、１ページ目の「印刷開始コマンド」に続いて、２ページ目の「印刷開始コマンド」を、メカコンＦＷ３０１へ送信する。送信される２ページ目の「印刷開始コマンド」は、図９のジョブ情報６１０に従う。１ページ目と２ページ目の「印刷開始コマンド」によれば、１ページ目の画像が用紙の表面に印刷され、２ページ目の画像が用紙の裏面に印刷される。しかしながら、ジョブ情報が誤って更新されたことによって、１ページ目と２ページ目の用紙サイズが異なる、という矛盾が生じている。
【００６４】
図８の例では、上記矛盾によってメカコンＦＷ３０１においてエラーが発生することにより、２回目のエンジントラブルが発生する。
【００６５】
本実施の形態のコントローラーＦＷ２０１は、同じジョブにおいて２回目のエンジントラブルが発生した場合には、画像処理装置１のシステム全体をリブートする。これにより、コントローラーＦＷ２０１は、メカコンＦＷ３０１から正しいサイズ情報を取得し、これにより、矛盾のないジョブ情報を生成する。矛盾のないジョブ情報に従って、コントローラーＦＷ２０１からメカコンＦＷ３０１へ、矛盾のない「印刷開始コマンド」が送信される。
【００６６】
すなわち、図７および図８の例によれば、エンジントラブルによってコントローラーＦＷ２０１が利用するデータに影響が無ければ、図７に示されたように、メカコンＦＷ３０１のみのリブートが指示され、コントローラーＦＷ２０１は処理を続行する。一方、エンジントラブルによってコントローラーＦＷ２０１が利用するデータが影響を受けた場合、画像処理装置１のシステム全体がリブートする。
【００６７】
同じ印刷ジョブの中で、１回目のエンジントラブルの発生に応じたメカコンＦＷのみのリブートの後、再度のエンジントラブルの発生に応じて、初めてコントローラーＦＷ２０１のリブートも含めた画像処理装置１全体のリブートが実施される。これにより、画像処理装置１全体のリブートを極力回避しながら、必要な場合には画像処理装置１全体のリブートが実行される。
【００６８】
なお、第１の印刷ジョブの実行中に１回目のエンジントラブルが発生した後、その後はエンジントラブルが発生することなく、当該第１の印刷ジョブが完了し、その後、当該第１の印刷ジョブとは別の第２の印刷ジョブにおいて１回目のエンジントラブルが発生した場合には、画像処理装置１全体のリブートではなく、メカコンＦＷ３０１のみのリブートが実行される。
【００６９】
本明細書において、同じジョブにおける１回目のエンジントラブルと２回目のエンジントラブルは、同一のメカ要素のエンジントラブルであってもよいし、異なる種類のメカ要素のエンジントラブルであってもよい。前者の場合には、同じ印刷ジョブにおいて、プリンター部１３においてエンジントラブルが発生した後、給紙部１４において発生したトラブルは、１回目のエンジントラブルである。一方、後者の場合には、同じ印刷ジョブにおいて、プリンター部１３においてエンジントラブルが発生した後、給紙部１４において発生したトラブルは、２回目のエンジントラブルである。
【００７０】
図７の例では、１回目のエンジントラブルの後、メカコンＦＷ３０１のみのリブートにて２回目のエンジントラブルが回避された。このような例における「１回目のエンジントラブル」の一例は、プリンター部１３および給紙部１４を構成する要素において異常が発生することである。要素の異常の一例は、転写ベルト等を駆動するモーターの回転の異常である。
【００７１】
図８の例では、１回目のエンジントラブルの後、メカコンＦＷ３０１のみをリブートしても、２回目のエンジントラブルが発生した。このような例における「１回目のエンジントラブル」の一例は、サブＣＰＵ３０が、ノイズによりデータを誤って書き換え、さらに書き換えられたデータをメインＣＰＵ２０へ送信する、という異常が発生することである。
【００７２】
［９．処理の流れ］
図１０は、メインＣＰＵ２０によって、印刷ジョブのために実行される処理のフローチャートである。図１０の処理は、たとえばメインＣＰＵ２０がコントローラーＦＷのプログラムを実行することによって実現される。図１０の処理は、たとえば、画像処理装置１が印刷ジョブの開始指示を入力されたことに応じて開始される。印刷ジョブの開始指示の入力の一例は、操作ボタン１７中の開始ボタンを操作されることである。
【００７３】
ステップＳ１００にて、メインＣＰＵ２０は、メカコンＦＷ３０１に、印刷開始コマンドを送信する。
【００７４】
ステップＳ１０２にて、メインＣＰＵ２０は、エンジントラブルの有無を検出する。ステップＳ１０２の内容は、図１１を参照して後述する。
【００７５】
ステップＳ１０４にて、メインＣＰＵ２０は、エンジントラブルが発生したか否かを判断し、発生したと判断するとステップＳ１０８へ制御を進め（ステップＳ１０４にてＹＥＳ）、発生していないと判断するとステップＳ１０６へ制御を進める（ステップＳ１０４にてＮＯ）。
【００７６】
ステップＳ１０６にて、メインＣＰＵ２０は、図１０の処理のために開始された印刷ジョブが終了したか否かを判断し、未だ終了していないと判断するとステップＳ１０２へ制御を戻し（ステップＳ１０６にてＮＯ）、終了したと判断すると図１０の処理を終了させる（ステップＳ１０６にてＹＥＳ）。
【００７７】
ステップＳ１０８にて、メインＣＰＵ２０は、直近のステップＳ１０４において検出されたエンジントラブルが、今回の図１０の処理の開始後、１回目のエンジントラブルの発生であるか否かを判断する。メインＣＰＵ２０は、１回目のものであると判断すると（ステップＳ１０８にてＹＥＳ）、ステップＳ１１０へ制御を進め、１回目のものではないと判断すると（ステップＳ１０８にてＮＯ）、ステップＳ１１２へ制御を進める。
【００７８】
ステップＳ１１０にて、メインＣＰＵ２０は、メカコンＦＷ３０１へ、リブートを指示した後、ステップＳ１０２へ制御を戻す。
【００７９】
ステップＳ１１２にて、メインＣＰＵ２０は、コントローラーＦＷ２０１を含む画像処理装置１全体をリブートして、ステップＳ１００へ制御を戻す。
【００８０】
図１１は、図１０のステップＳ１０２（エンジントラブルの検出）のサブルーチンのフローチャートである。図１１を参照して、ステップＳ２０１にて、メインＣＰＵ２０は、メカコンＦＷ３０１の各タスクのＣＰＵ３０の一定時間内の使用時間を測定する。
【００８１】
ステップＳ２０２にて、メインＣＰＵ２０は、ステップＳ２０１にて測定された使用時間が閾値を超えたか否かを判断する。一定時間の一例は、６０秒であってもよい。閾値の一例は５４秒であってもよい。メインＣＰＵ２０は、上記使用時間が閾値を超えたと判断すると（ステップＳ２０２にてＹＥＳ）、ステップＳ２０３へ制御を進め、閾値を超えていないと判断すると（ステップＳ２０２にてＮＯ）、そのまま処理を図１０へ戻す。
【００８２】
なお、メインＣＰＵ２０は、図１０のステップＳ１０２（エンジントラブルの検出）において、さらに、プリンター部１３および給紙部１４を構成する要素の異常の有無を検出してもよい。一例では、メインＣＰＵ２０は、プリンター部１３内のモーターの回転数を計測し、当該回転数が所与の範囲外である場合にエンジントラブルが発生していると判定してもよい。他の例では、メインＣＰＵ２０は、サブＣＰＵ３０へプリンター部１３内の転写ベルトを予め定められた初期位置に移動することを指示し、当該転写ベルトが当該初期位置を計測し、当該転写ベルトが当該初期位置に存在しない場合にエンジントラブルが発生していると判定してもよい。さらに他の例では、メインＣＰＵ２０は、プリンター部１３および給紙部１４内の他の要素に異常が発生した場合に、エンジントラブルが発生していると判定してもよい。
【００８３】
ステップＳ２０３にて、メインＣＰＵ２０は、「エンジントラブル発生」との判定結果を生成した後、処理を図１０へ戻す。
【００８４】
図１１の処理では、ステップＳ２０２における、サブＣＰＵ３０の使用時間の割合が所与の割合を超えたか否かの判断結果に従って、エンジントラブルが発生しているか否かが判断される。なお、エンジントラブルの発生の有無は、公知の如何なる基準に従って判断されてもよい。
【００８５】
図１０のステップＳ１０４において、メインＣＰＵ２０は、ステップＳ２０３にて「エンジントラブル発生」との判定結果が生成されていれば、エンジントラブルが発生したと判断する。上記判定結果が生成されていなければ、メインＣＰＵ２０は、エンジントラブルが発生していないと判断する。
【００８６】
［１０．画像処理装置の機能的構成（２）］
図１２は、メインＣＰＵ２０の機能構成の変形例を示す図である。図１２の例では、メインＣＰＵ２０は、コントローラーとして機能するために２つファームウェアを実行する。すなわち、メインＣＰＵ２０は、第１のファームウェアを実行することによって、コントローラーＦＷ（１）２１１として機能し、第２のファームウェアを実行することによって、コントローラーＦＷ（２）２１２として機能する。
【００８７】
コントローラーＦＷ（２）２１２によって実現される「Ｊｏｂ制御２」は、ＦＡＸ送信ジョブおよびＦＡＸ受信ジョブの制御を実行する。コントローラーＦＷ（１）２１１によって実現される「Ｊｏｂ制御１」は、ＦＡＸ送信ジョブおよびＦＡＸ受信ジョブ以外の種類のジョブの制御を実行する。すなわち、図１２の例では、ＦＡＸ送受信のジョブを制御するためのプロセス空間（コントローラーＦＷ（２）２１２）が、ＦＡＸ送受信以外のジョブを制御するためのプロセス空間（コントローラーＦＷ（１）２１１）とが別々に設定される。
【００８８】
このような構成によって、画像処理装置１では、印刷ジョブと、ＦＡＸ送信ジョブまたはＦＡＸ受信ジョブとが、並列的に制御され得る。図１２の例では、メインＣＰＵ２０は、ＦＡＸ受信ジョブの実行中に、印刷ジョブの２回目のエンジントラブルが発生した場合には、画像処理装置１全体のリブートをＦＡＸ受信ジョブの終了まで待つ。
【００８９】
図１３は、図１２の例においてメインＣＰＵ２０が実行する処理のフローチャートである。図１３の処理は、図１０の処理と比較して、ステップＳ１１２の前にステップＳ１１１の制御を含む。
【００９０】
すなわち、メインＣＰＵ２０は、ステップＳ１０８にて、実行中の印刷ジョブにおけるエンジントラブルの発生が１回目ではないと判断すると（ステップＳ１０８にてＮＯ）、ステップＳ１１１へ制御を進める。
【００９１】
ステップＳ１１１にて、メインＣＰＵ２０は、ＦＡＸ受信ジョブの実行中であるか否かを判断する。メインＣＰＵ２０は、ＦＡＸ受信ジョブの実行中であると判断すると（ステップＳ１１１にてＹＥＳ）、ステップＳ１１１の判断をたとえば一定時間ごとに繰り返し、ＦＡＸ受信ジョブが実行中でなくなったと判断すると（ステップＳ１１１にてＮＯ）、ステップＳ１１２へ制御を進める。
【００９２】
図１３に示されたようにＦＡＸ受信ジョブの実行中であればＦＡＸ受信が完了するまで画像処理装置１の全体のリブートが延期されることにより、ＦＡＸ対向機が文書を再送することを必要とされる事態が回避され得る。ＦＡＸ文書の送信は、ＦＡＸ対向機のユーザーに通信費を課する場合がある。画像処理装置１は、ＦＡＸ文書の再送を極力回避することにより、ＦＡＸ対向機のユーザーが、再送のために余計な通信費を必要とされる事態を極力回避することができる。
【００９３】
［１１．エンジントラブルによる誤ったデータの他の例］
図１４〜図１６は、エンジントラブルによってメカコンＦＷからコントローラーＦＷへと送信される誤ったデータの他の例を説明するための図である。図７および図８を参照して説明された例では、用紙のサイズ情報について、誤ったデータが送信された。図１４〜図１６を用いて説明される例では、ガンマデータについて、誤ったデータが送信される。ガンマデータとは、画像形成用の信号（たとえば、印刷ジョブに係る画像データ）と駆動部の動作態様（たとえば、感光体の帯電電圧）との関係（補正カーブ等）を表わす補正情報の一例である。
【００９４】
図１７は、図１４〜図１６を参照して説明される処理に対応する、メインＣＰＵ２０の機能構成の２つ目の変形例を示す図である。図１７の例では、メインＣＰＵ２０は、コントローラーとして機能するために２つファームウェアを実行する。すなわち、メインＣＰＵ２０は、第１のファームウェアを実行することによって、コントローラーＦＷ（１）２３１として機能し、第２のファームウェアを実行することによって、コントローラーＦＷ（２）２３２として機能する。
【００９５】
コントローラーＦＷ（２）２３２によって実現される「Ｊｏｂ制御２」は、印刷ジョブの制御を実行する。コントローラーＦＷ（１）２３１によって実現される「Ｊｏｂ制御１」は、印刷ジョブ以外の種類のジョブの制御を実行する。すなわち、図１７の例では、印刷ジョブを制御するためのプロセス空間（コントローラーＦＷ（２）２３２）が、ＦＡＸ送受信以外のジョブを制御するためのプロセス空間（コントローラーＦＷ（１）２３１）とが別々に設定される。
【００９６】
図１４〜図１６に戻って、印刷ジョブの概略的な流れを説明する。
まず、図１４を参照する。図１４の例では、誤ったデータは送信されない。すなわち、メカコンＦＷ３０１は、コントローラーＦＷ（２）２３２へ、メカ要素（プリンター部１３）における画像安定化制御等によって生成された、正常なガンマデータを送信する。
【００９７】
コントローラーＦＷ（２）２３２は、正常なガンマデータを利用して、印刷ジョブのデータを生成し、当該データに基づいて、メカコンＦＷ３０１へ印刷開始コマンドを送信する。
【００９８】
たとえば、９９ページ目の印刷開始コマンドの送信後、メカコンＦＷ３０１においてエンジントラブルが発生する。
【００９９】
当該エンジントラブルの発生は、印刷ジョブにおける１回目エンジントラブルの発生でれば、コントローラーＦＷ（２）２３２は、メカコンＦＷ３０１へ、リブートを指示する。
【０１００】
リブート後、メカコンＦＷ３０１は、コントローラーＦＷ（２）２３２へ、画像安定化制御の実行の許可を要求する（画像安定化制御許可要求）。
【０１０１】
コントローラーＦＷ（２）２３２は、メカコンＦＷ３０１へ、画像安定化制御の実行を許可する（画像安定化制御許可）。これに応じて、プリンター部１３では画像安定化制御が実行される。
【０１０２】
その後、コントローラーＦＷ（２）２３２は、メカコンＦＷ３０１へ、残りのページ（１００ページ目以降）の印刷開始コマンドを送信する。
【０１０３】
次に、図１５の例を説明する。図１５の例では、コントローラーＦＷ（２）２３２は、１回目のエンジントラブルの発生時の、実行中の印刷ジョブの残りページ数が所与の値以下であれば、メカコンＦＷ３０１への画像安定化制御の実行指示を省略する。当該省略の理由は、実行中の印刷ジョブを早期に終了させるためであってもよい。
【０１０４】
より具体的には、図１５の例では、１回目のエンジントラブルの発生により、コントローラーＦＷ（２）２３２は、メカコンＦＷ３０１へリブートを指示する。
【０１０５】
リブート後、メカコンＦＷ３０１は、コントローラーＦＷ（２）２３２へ、画像安定化制御許可要求を送信する。
【０１０６】
図１５の例では、実行中の印刷ジョブにおける残り枚数が所与の閾値より少ない。したがって、コントローラーＦＷ（２）２３２は、メカコンＦＷ３０１へ画像安定化制御許可を送信することなく、残りのページ（１００ページ目以降）の印刷開始コマンドを送信する。
【０１０７】
図１６の例では、図１５の例に加えて、１回目のエンジントラブルの際に、メカコンＦＷ３０１におけるガンマデータがノイズ等によって異常な値へと更新される。メカコンＦＷ３０１は、コントローラーＦＷ（２）２３２へ、異常なガンマデータを誤って送信する。
【０１０８】
その後、コントローラーＦＷ（２）２３２からの指示によってメカコンＦＷ３０１がリブートしても、図１５と同様にプリンター部１３における画像安定化制御が実施されないため、誤ったガンマデータが訂正される機会が発生しない。
【０１０９】
これにより、当該印刷ジョブにおいてそれ以降に送信される印刷開始コマンドによって、メカコンＦＷ３０１にエラーが発生する場合がある。たとえば、異常なガンマデータによって生成された画像データによって、メカコンＦＷ３０１が、本来あり得ないルーチン（たとえば、感光体の印加電圧の算出において所与の値をゼロで割る処理が発生する）に入る。メカコンＦＷ３０１のエラーにより、実行中の印刷ジョブにおいて２回目のエンジントラブルが発生する。
【０１１０】
この場合、コントローラーＦＷ（２）２３２は、画像処理装置１全体のリブートを実行する。これにより、メカコンＦＷ３０１は、プリンター部１３の画像安定化制御を実行し、正常なガンマデータを生成し、コントローラーＦＷ（２）２３２へ送信する。
【０１１１】
図１８は、図１６の例においてメインＣＰＵ２０が実行する処理のフローチャートである。図１８の処理は、図１０の処理と比較して、ステップＳ１１０の後にステップＳ１１４，Ｓ１１６の制御を含む。
【０１１２】
より具体的には、メインＣＰＵ２０（コントローラーＦＷ（２）２３２）は、ステップＳ１１０にて、メカコンＦＷ３０１へリブートを指示した後、ステップＳ１１４へ制御を進める。ステップＳ１１４にて、メインＣＰＵ２０は、実行中の印刷ジョブにおいて、印刷されるべきページのうち、残りのページ数が所与の閾値以下であるか否かを判断する。メインＣＰＵ２０は、残りのページ数が所与の閾値以下ではないと判断すると（ステップＳ１１４にてＮＯ）、ステップＳ１１６にて、メカコンＦＷ３０１へ、プリンター部１３の画像安定化制御の実行を指示した後、ステップＳ１０２へ制御を戻す。一方、メインＣＰＵ２０は、残りのページ数が所与の閾値以下であると判断すると（ステップＳ１１４にてＹＥＳ）、画像安定化制御の実行を指示することなく、ステップＳ１０２へ制御を戻す。画像安定化制御の実行の指示の一例は、メカコンＦＷ３０１からの画像安定化制御許可要求に対して、許可することを示す信号を送信することである。
【０１１３】
［１２．プロセス空間の分離］
画像処理装置１では、図１２または図１７において示されたように、ジョブの種類ごとに、メインＣＰＵ２０によって実行されるファームウェアのプロセス空間を分離することができる。図１２の例では、ＦＡＸの送受信ジョブとそれ以外の種類のジョブとで、プロセス空間が分離された。図１７の例では、印刷ジョブとそれ以外の種類のジョブとで、プロセス空間が分離された。
【０１１４】
プロセス空間が分離されることにより、ＲＡＭ２２（実メモリー）およびＨＤＤ２４上の仮想メモリーにおいて使用される記憶領域が分離される。これにより、ある種類のジョブについて、メカコンＦＷから送信された誤ったデータによってコントローラー側のデータが書き換えられても、このような誤った書き換えの影響が他の種類のジョブについてのコントローラー側のデータに影響が与えられることが極力回避される。
【０１１５】
以下、仮想メモリーにおけるデータ構成をより具体的に説明する。図１２の例では、ＦＡＸ受信ジョブのためのプロセス空間が、印刷ジョブのためのプロセス空間とは分離される。これにより、印刷ジョブのために生成されるタスクは、図４において仮想メモリー２４１０として示されたような領域で管理される。
【０１１６】
なお、図１２の例に適用される場合には、図４の「コントローラーＦＷのプログラム領域２４１１」は、図１２の「コントローラーＦＷ（１）２１１」がロードされる領域へと変更され得る。また、図１２の例に適用される場合には、図４の「Ｊｏｂ制御タスクのスタック領域２４１４」は、図１２の「Ｊｏｂ制御１」において利用されるように変更され得る。
【０１１７】
一方、ＦＡＸ受信ジョブのために生成されるタスクは、仮想メモリー２４１０とは異なる領域で管理される。図１９は、ＦＡＸ受信ジョブのために管理される、仮想メモリーの構成の一例を示す図である。
【０１１８】
図１９に示されるように、仮想メモリー２４２０は、概略的には、プログラム領域と、データ領域と、スタック領域とによって構成される。
【０１１９】
プログラム領域２４２１は、ＲＯＭ２１に格納されたプログラム（コントローラーＦＷ（２））がロードされる領域である。データ領域は静的メモリー２４２２と動的メモリー２４２３とを含む。
【０１２０】
スタック領域は、未使用領域２４２４，２４２７、「Ｊｏｂ制御２」タスクのスタック領域２４２５、および、Ｆａｘ制御タスクのスタック領域２４２６を含む。Ｊｏｂ制御２タスクのスタック領域２４２５は、コントローラーＦＷ（１）２１１のＪｏｂ制御２において利用される。Ｆａｘ制御タスクのスタック領域２４２６は、コントローラーＦＷ（１）２１１のＦａｘ制御において利用される。
【０１２１】
図２０は、利用される記憶領域がプロセスごとに分離されることの効果を説明するための図である。図２０において、仮想メモリー２４１０は、図４を参照して説明されたような印刷ジョブ用に管理される仮想メモリーの構成を示す。仮想メモリー２４２０は、図１９を参照して説明されたようなＦＡＸ受信ジョブ用に管理される仮想メモリーの構成を示す。図２０では、複数の線によって、仮想メモリー２４１０とＲＡＭ２２との間のマッピングが示されている。すなわち、仮想メモリー２４１０の領域５１０１，５１０２，５１０３のそれぞれは、ＲＡＭ２２の領域２２０４，２２０２，２２０５のそれぞれにマッピングされる。
【０１２２】
また、図２０では、複数の線によって、仮想メモリー２４２０とＲＡＭ２２との間のマッピングが示されている。すなわち、仮想メモリー２４２０の領域５２０１，５２０２のそれぞれは、ＲＡＭ２２の領域２２０３，２２０１のそれぞれにマッピングされる。仮想メモリ２４１０と仮想メモリー２４２０では、互いに独立して、データの読出および書込が実行される。これにより、コントローラーにおいて、ＦＡＸ受信ジョブを実行する部分と印刷ジョブを実行する部分とは、互いに独立して再起動（リブート）が可能である。
【０１２３】
同様に、図１７の例では、コントローラーにおいて、印刷ジョブを実行する部分と印刷ジョブ以外を実行する部分とは、互いに独立して再起動（リブート）が可能である。
【０１２４】
今回開示された各実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。また、実施の形態および各変形例において説明された発明は、可能な限り、単独でも、組合わせても、実施することが意図される。
【符号の説明】
【０１２５】
１  画像処理装置、１１  原稿搬送部、１２  スキャナー部、１３  プリンター部、１４  給紙部、１４Ａ，１４Ｂ，１４Ｃ，１４Ｄ  給紙トレイ、１５  表示部、１６  タッチパネル、１７  操作ボタン、１８  操作部、１９  排出口、２０  メインＣＰＵ、２１  ＲＯＭ、２２  ＲＡＭ、２３  不揮発メモリー、２６  送受信部、３０，３１  サブＣＰＵ、３０１，３１１，３１２  メカコンＦＷ。
【図１】
2020021985.tif 000003
【図２】
2020021985.tif 000004
【図３】
2020021985.tif 000005
【図４】
2020021985.tif 000006
【図５】
2020021985.tif 000007
【図６】
2020021985.tif 000008
【図７】
2020021985.tif 000009
【図８】
2020021985.tif 000010
【図９】
2020021985.tif 000011
【図１０】
2020021985.tif 000012
【図１１】
2020021985.tif 000013
【図１２】
2020021985.tif 000014
【図１３】
2020021985.tif 000015
【図１４】
2020021985.tif 000016
【図１５】
2020021985.tif 000017
【図１６】
2020021985.tif 000018
【図１７】
2020021985.tif 000019
【図１８】
2020021985.tif 000020
【図１９】
2020021985.tif 000021
【図２０】
2020021985.tif 000022