(57)【要約】【課題】アップデート用に必要なメモリサイズが確保できない場合であっても、大きなメモリを確保しているモジュールにメモリを解放させることにより、起動中にファームウェアのアップデートを行うことができるようにする。【解決手段】アップデート要求前のメモリの使用状況は、（ａ）に示すように、画像形成の制御のために使用されるＰＤＬ処理用領域３０２に多くのメモリが確保されている。アップデートには、画像用領域３０１が使用されるが、この領域がアップデート実行に充分でない場合、起動中のＰＤＬ解析モジュールが確保していたＰＤＬ処理用領域３０２をメモリ上から解放することとして、アップデートのために使用する。【選択図】図３
2008071287.tif 000002
【特許請求の範囲】
【請求項１】
画像処理を行うモジュールを持つ画像形成装置でのファームウェアのアップデート方法において、前記画像処理を行うモジュールの起動中にファームウェアのアップデートを行う際、メモリ上の大きな領域を確保している前記画像処理を行うモジュールが制御のために使用しているメモリ上の領域を解放してメモリに空き領域を作り出すことにより、ファームウェアのアップデートに必要なメモリ領域を確保することを特徴とするファームウェアのアップデート方法。
【請求項２】
請求項１記載のファームウェアのアップデート方法において、前記の大きなメモリ領域を確保しているモジュールがＰＤＬ解析モジュールであり、解放されるメモリ領域は受信したＰＤＬデータの解析時に使用する処理用領域であることを特徴とするファームウェアのアップデート方法。
【請求項３】
請求項２記載のファームウェアのアップデート方法において、前記ＰＤＬ処理用領域の解放の際、使用している全ての領域を解放して空き領域を作り出すことを特徴とするファームウェアのアップデート方法。
【請求項４】
請求項３記載のファームウェアのアップデート方法において、前記ＰＤＬ処理用領域の解放は、現在起動中のＰＤＬ解析モジュールの処理を終了させることにより実現することを特徴とするファームウェアのアップデート方法。
【請求項５】
請求項３記載のファームウェアのアップデート方法において、前記ＰＤＬ処理用領域の解放は、前記ＰＤＬ解析モジュールが使用しているメモリ領域のサイズを０バイトに変更することにより実現することを特徴とするファームウェアのアップデート方法。
【請求項６】
請求項４または５記載のファームウェアのアップデート方法において、アップデートに必要なメモリサイズを認識し、ファームウェアのアップデートに必要なメモリが不足する場合のみ空き領域を作り出すようにすることを特徴とするファームウェアのアップデート方法。
【請求項７】
請求項２記載のファームウェアのアップデート方法において、前記ＰＤＬ処理用領域の解放の際、ファームウェアのアップデートに必要なメモリサイズのみを解放して空き領域を作り出すことを特徴とするファームウェアのアップデート方法。
【請求項８】
請求項７記載のファームウェアのアップデート方法において、前記ＰＤＬ処理用領域の解放は、現在起動中のＰＤＬ解析モジュールを一旦終了させ、少ないサイズの前記ＰＤＬ処理用領域で前記一旦終了させたＰＤＬ解析モジュールを再起動させることを特徴とするファームウェアのアップデート方法。
【請求項９】
請求項８記載のファームウェアのアップデート方法において、前記ＰＤＬ解析モジュールが必要とするＰＤＬ処理用領域の最低サイズが決められていて、前記ＰＤＬ解析モジュールを再起動が前記最低サイズを下回ることにより正常な再起動を行うことができない場合、前記ＰＤＬ解析モジュールの再起動を行わず、前記最低サイズを下回っていない場合、前記ＰＤＬ解析モジュールの再起動を行うことを特徴とするファームウェアのアップデート方法。
【請求項１０】
請求項９記載のファームウェアのアップデート方法において、前記ＰＤＬ処理用領域の最低サイズは、ＰＤＬ解析モジュールの識別子と最低必要サイズとの組み合わせで表現されたテーブルを用意し、前記テーブルに従ってＰＤＬ解析モジュールの再起動が可能であるか否かが判断されることを特徴とするファームウェアのアップデート方法。
【請求項１１】
請求項７記載のファームウェアのアップデート方法において、前記ＰＤＬ処理用領域の解放は、前記ＰＤＬ解析モジュールがアップデートに不足する分を減じたメモリサイズに変更することにより実現することを特徴とするファームウェアのアップデート方法。
【請求項１２】
画像処理を行うモジュールを持ち、ファームウェアのアップデートを行うことが可能な画像形成装置において、前記画像処理を行うモジュールの起動中にファームウェアのアップデートを行う際、メモリ上の大きな領域を確保している前記画像処理を行うモジュールが制御のために使用しているメモリ上の領域を解放してメモリに空き領域を作り出す手段を備えて、ファームウェアのアップデートに必要なメモリ領域を確保することを特徴とする画像形成装置。
【請求項１３】
請求項１２記載の画像形成装置において、前記の大きなメモリ領域を確保しているモジュールがＰＤＬ解析モジュールであり、解放されるメモリ領域は受信したＰＤＬデータの解析時に使用する処理用領域であることを特徴とする画像形成装置。
【請求項１４】
請求項１３記載の画像形成装置において、前記ＰＤＬ処理用領域の解放の際、使用している全ての領域を解放して空き領域を作り出すことを特徴とする画像形成装置。
【請求項１５】
請求項１４記載の画像形成装置において、前記ＰＤＬ処理用領域の解放は、現在起動中のＰＤＬ解析モジュールの処理を終了させることにより実現することを特徴とする画像形成装置。
【請求項１６】
請求項１４記載の画像形成装置において、前記ＰＤＬ処理用領域の解放は、前記ＰＤＬ解析モジュールが使用しているメモリ領域のサイズを０バイトに変更することにより実現することを特徴とする画像形成装置。
【請求項１７】
請求項１５または１６記載の画像形成装置において、アップデートに必要なメモリサイズを認識する手段を備え、ファームウェアのアップデートに必要なメモリが不足する場合のみ空き領域を作り出すようにすることを特徴とする画像形成装置。
【請求項１８】
請求項１３記載の画像形成装置において、前記ＰＤＬ処理用領域の解放の際、ファームウェアのアップデートに必要なメモリサイズのみを解放して空き領域を作り出すことを特徴とする画像形成装置。
【請求項１９】
請求項１８記載の画像形成装置において、前記ＰＤＬ処理用領域の解放は、現在起動中のＰＤＬ解析モジュールを一旦終了させ、少ないサイズの前記ＰＤＬ処理用領域で前記一旦終了させたＰＤＬ解析モジュールを再起動させることを特徴とする画像形成装置。
【請求項２０】
請求項１９記載の画像形成装置において、前記ＰＤＬ解析モジュールが必要とするＰＤＬ処理用領域の最低サイズが決められていて、前記ＰＤＬ解析モジュールを再起動が前記最低サイズを下回ることにより正常な再起動を行うことができない場合、前記ＰＤＬ解析モジュールの再起動を行わず、前記最低サイズを下回っていない場合、前記ＰＤＬ解析モジュールの再起動を行うことを特徴とする画像形成装置。
【請求項２１】
請求項２０記載の画像形成装置において、前記ＰＤＬ処理用領域の最低サイズは、ＰＤＬ解析モジュールの識別子と最低必要サイズとの組み合わせで表現されたテーブルを用意し、前記テーブルに従ってＰＤＬ解析モジュールの再起動が可能であるか否かが判断されることを特徴とする画像形成装置。
【請求項２２】
請求項１８記載の画像形成装置において、前記ＰＤＬ処理用領域の解放は、前記ＰＤＬ解析モジュールがアップデートに不足する分を減じたメモリサイズに変更することにより実現することを特徴とする画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファームウェアのアップデート方法及び画像形成装置に係り、特に、効率的にメモリを使用してファームウェアのアップデートを可能にするファームウェアのアップデート方法及び画像形成装置に関する。
【背景技術】
【０００２】
近年、画像形成装置の高機能化が進み、ファームウェアの肥大化が顕著になってきている。そして、ファームウェアのバグフィックスや機能アップ等を目的として、ファームウェアのアップデート（書き換え）が行われるが、この際に使用するメモリが不足する事態に陥る状況も発生してきている。
【０００３】
このような状況の発生にも対応することができるようにした画像形成装置のファームウェアのアップデート方法に関する従来技術として、例えば、特許文献１に記載された技術が知られている。
【０００４】
この従来技術は、受信したアップデート用データのデータ構造に従って順番に処理したのでは、メモリ不足となってしまう場合に、アップデートの順序を適宜入れ替えることにより、メモリ不足が発生しないようにメモリの書き込み制御を行うというものである。
【特許文献１】特開２００４−１９４２９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、前述した従来技術は、アップデート用モジュールが複数の場合に効率的にメモリを使用することを可能とすることができるが、アップデート用モジュールの１つの容量が非常に大きい場合や、画像形成装置の搭載メモリが少なくてアップデート用モジュールがそれほど大きなサイズでなくてもメモリが不足してしまうような場合について考慮されていないものであった。このため、前述の従来技術は、アップデート用モジュールの１つの容量が非常に大きい場合や、画像形成装置の搭載メモリが少ない場合には、アップデート用に必要なメモリサイズを確保することができずアップデートを行うことがができない可能性があるという問題点を生じさせている。
【０００６】
本発明の目的は、前述した従来技術の問題点を解決し、アップデート用に必要なメモリサイズが確保できない場合であっても、大きなメモリを確保しているモジュールにメモリを解放させることにより、起動中にファームウェアのアップデートを行うことができるようにしたファームウェアのアップデート方法及び画像形成装置を提供することにある。
【課題を解決するための手段】
【０００７】
前記目的を達成するため本発明の第１の手段は、画像処理を行うモジュールを持つ画像形成装置でのファームウェアのアップデート方法において、前記画像処理を行うモジュールの起動中にファームウェアのアップデートを行う際、メモリ上の大きな領域を確保している前記画像処理を行うモジュールが制御のために使用しているメモリ上の領域を解放してメモリに空き領域を作り出すことにより、ファームウェアのアップデートに必要なメモリ領域を確保することを特徴とする。
【０００８】
また、本発明の第２の手段は、第１の手段において、前記の大きなメモリ領域を確保しているモジュールがＰＤＬ解析モジュールであり、解放されるメモリ領域は受信したＰＤＬデータの解析時に使用する処理用領域であることを特徴とする。
【０００９】
また、本発明の第３の手段は、第２の手段において、前記ＰＤＬ処理用領域の解放の際、使用している全ての領域を解放して空き領域を作り出すことを特徴とする。
【００１０】
また、本発明の第４の手段は、第３の手段において、前記ＰＤＬ処理用領域の解放は、現在起動中のＰＤＬ解析モジュールの処理を終了させることにより実現することを特徴とする。
【００１１】
また、本発明の第５の手段は、第３の手段において、前記ＰＤＬ処理用領域の解放は、前記ＰＤＬ解析モジュールが使用しているメモリ領域のサイズを０バイトに変更することにより実現することを特徴とする。
【００１２】
また、本発明の第６の手段は、第４または第５の手段において、アップデートに必要なメモリサイズを認識し、ファームウェアのアップデートに必要なメモリが不足する場合のみ空き領域を作り出すようにすることを特徴とする。
【００１３】
また、本発明の第７の手段は、第２の手段において、前記ＰＤＬ処理用領域の解放の際、ファームウェアのアップデートに必要なメモリサイズのみを解放して空き領域を作り出すことを特徴とする。
【００１４】
また、本発明の第８の手段は、第７の手段において、前記ＰＤＬ処理用領域の解放は、現在起動中のＰＤＬ解析モジュールを一旦終了させ、少ないサイズの前記ＰＤＬ処理用領域で前記一旦終了させたＰＤＬ解析モジュールを再起動させることを特徴とする。
【００１５】
また、本発明の第９の手段は、第８の手段において、前記ＰＤＬ解析モジュールが必要とするＰＤＬ処理用領域の最低サイズが決められていて、前記ＰＤＬ解析モジュールを再起動が前記最低サイズを下回ることにより正常な再起動を行うことができない場合、前記ＰＤＬ解析モジュールの再起動を行わず、前記最低サイズを下回っていない場合、前記ＰＤＬ解析モジュールの再起動を行うことを特徴とする。
【００１６】
また、本発明の第１０の手段は、第９の手段において、前記ＰＤＬ処理用領域の最低サイズは、ＰＤＬ解析モジュールの識別子と最低必要サイズとの組み合わせで表現されたテーブルを用意し、前記テーブルに従ってＰＤＬ解析モジュールの再起動が可能であるか否かが判断されることを特徴とする。
【００１７】
また、本発明の第１１の手段は、第７の手段において、前記ＰＤＬ処理用領域の解放は、前記ＰＤＬ解析モジュールがアップデートに不足する分を減じたメモリサイズに変更することにより実現することを特徴とする。
【００１８】
また、本発明の第１２の手段は、画像処理を行うモジュールを持ち、ファームウェアのアップデートを行うことが可能な画像形成装置において、前記画像処理を行うモジュールの起動中にファームウェアのアップデートを行う際、メモリ上の大きな領域を確保している前記画像処理を行うモジュールが制御のために使用しているメモリ上の領域を解放してメモリに空き領域を作り出す手段を備えて、ファームウェアのアップデートに必要なメモリ領域を確保することを特徴とする。
【００１９】
また、本発明の第１３の手段は、第１２の手段において、前記の大きなメモリ領域を確保しているモジュールがＰＤＬ解析モジュールであり、解放されるメモリ領域は受信したＰＤＬデータの解析時に使用する処理用領域であることを特徴とする。
【００２０】
また、本発明の第１４の手段は、第１３の手段において、前記ＰＤＬ処理用領域の解放の際、使用している全ての領域を解放して空き領域を作り出すことを特徴とする。
【００２１】
また、本発明の第１５の手段は、第１４の手段において、前記ＰＤＬ処理用領域の解放は、現在起動中のＰＤＬ解析モジュールの処理を終了させることにより実現することを特徴とする。
【００２２】
また、本発明の第１６の手段は、第１４の手段において、前記ＰＤＬ処理用領域の解放は、前記ＰＤＬ解析モジュールが使用しているメモリ領域のサイズを０バイトに変更することにより実現することを特徴とする。
【００２３】
また、本発明の第１７の手段は、第１５または第１６の手段において、アップデートに必要なメモリサイズを認識する手段を備え、ファームウェアのアップデートに必要なメモリが不足する場合のみ空き領域を作り出すようにすることを特徴とする。
【００２４】
また、本発明の第１８の手段は、第１３の手段において、前記ＰＤＬ処理用領域の解放の際、ファームウェアのアップデートに必要なメモリサイズのみを解放して空き領域を作り出すことを特徴とする。
【００２５】
また、本発明の第１９の手段は、第１８の手段において、前記ＰＤＬ処理用領域の解放は、現在起動中のＰＤＬ解析モジュールを一旦終了させ、少ないサイズの前記ＰＤＬ処理用領域で前記一旦終了させたＰＤＬ解析モジュールを再起動させることを特徴とする。
【００２６】
また、本発明の第２０の手段は、第１９の手段において、前記ＰＤＬ解析モジュールが必要とするＰＤＬ処理用領域の最低サイズが決められていて、前記ＰＤＬ解析モジュールを再起動が前記最低サイズを下回ることにより正常な再起動を行うことができない場合、前記ＰＤＬ解析モジュールの再起動を行わず、前記最低サイズを下回っていない場合、前記ＰＤＬ解析モジュールの再起動を行うことを特徴とする。
【００２７】
また、本発明の第２１の手段は、第２０の手段において、前記ＰＤＬ処理用領域の最低サイズは、ＰＤＬ解析モジュールの識別子と最低必要サイズとの組み合わせで表現されたテーブルを用意し、前記テーブルに従ってＰＤＬ解析モジュールの再起動が可能であるか否かが判断されることを特徴とする。
【００２８】
また、本発明の第２２の手段は、第１８の手段において、前記ＰＤＬ処理用領域の解放は、前記ＰＤＬ解析モジュールがアップデートに不足する分を減じたメモリサイズに変更することにより実現することを特徴とする。
【発明の効果】
【００２９】
本発明によれば、アップデート用モジュールのサイズが大きい場合や、搭載メモリの少ない画像形成装置である場合においても、メモリが不足することなくファームウェアのアップデートを行うことが可能となり、また、ファームウェアアップデート時に、アップデートするモジュールと関連性のないモジュールは、メモリを効率的に利用することにより動作し続けさせることが可能となる。
【発明を実施するための最良の形態】
【００３０】
以下、本発明によるファームウェアのアップデート方法及び画像形成装置の実施形態を図面により詳細に説明する。
【００３１】
図１は本発明の実施形態によるファームウェアのアップデート時の全体の制御を説明する画像形成装置の構成を示すブロック図である。図１に示す例は、アップデート用のデータがホストコンピュータから送信されてくるものとした場合の例である。
【００３２】
本発明の実施形態による画像形成装置は、図１に示すように、ネットワークコントローラ１０２と、ＣＰＵ１０３と、メモリ１０４と、ＮＶ−ＲＡＭ１０５と、プリンタ等のエンジン１０７が接続されたエンジンインタフェース１０６と、フラッシュＲＯＭ１０８と、ＳＤメディア１１０が接続されたＳＤコントローラ１０９とがバスにより接続されて構成されており、この画像形成装置には、アップデート用のファームウェアを保持するホストコンピュータ１０１が接続されている。
【００３３】
次に、前述のように構成される画像形成装置におけるファームウェアのアップデートを行う場合のデータの流れを説明する。
【００３４】
まず、ホストコンピュータ１０１からftp 等によりアップデート用データが送信されてくる（矢印１）と、ネットワークコントローラ１０２がそのデータを受信し、受信したデータをメモリ１０４に書き込む（矢印２）。その際、ＣＰＵ１０３は、処理の制御を行って、メモリ１０４のどの領域にデータを書き込むべきかといった制御を行う。
【００３５】
前述のようにしてメモリ１０４上に保存されたアップデート用のデータは、セキュリティー等の観点から暗号化されていることがあるため、復号する必要がある場合もあり、また、ファームウェアが格納されている領域がＳＤメディア等である場合、専用に暗号化しなければならない場合もある。このような復号、暗号化の処理は、ＣＰＵ１０３が行い、メモリ１０４上に書き込みが行われる。
【００３６】
最終的に書き込まれるファームウェアデータがメモリ１０４上に生成されると、ＣＰＵ１０３は、ファームウェアデータをメモリ１０４からフラッシュＲＯＭ１０８やＳＤコントローラ１０９を介してＳＤメディア１１０に書き込む（矢印３）。
【００３７】
図２は本発明の実施形態による画像形成装置の内部で実行されるプログラム構成を説明するブロック図である。
【００３８】
プログラムの全体は、図２に示すように、ＰＤＬ（プログラム記述言語）解析モジュール２０３、アップデート処理モジュール２０１、ＰＤＬ管理モジュール２０２、サービス提供モジュール群２０８からなり、サービス提供モジュール群２０８は、ネットワーク管理モジュール２０４、システム管理モジュール２０５、メモリ管理モジュール２０６、印刷管理モジュール２０７を含んでいる。
【００３９】
前述において、アップデート処理モジュール２０１は、ファームウェアのアップデートを制御するモジュールであり、ネットワーク管理モジュール２０４を介してアップデート用データを受け取り、メモリ管理モジュール２０６により必要なメモリの割り当てを受けて、アップデート用データをメモリ１０４上に保存し、必要があれば復号・暗号化を行ってメモリ１０４上に最終的なアップデート用データを生成した上で、フラッシュＲＯＭ１０８やＳＤメディア１１０にあるファームウェアの書き換えを行う責務を担っている。
【００４０】
また、アップデート処理モジュール２０１は、システム管理モジュール２０５からアップデートデータ受信の通知を受けたり、画像形成装置の状態に関する情報を得るために、システム管理モジュール２０５との間で相互に通信を行っている。
【００４１】
ＰＤＬ管理モジュール２０２は、ＰＤＬ処理全般に関わる制御を行っており、主にＰＤＬ解析モジュール２０３側が必要とする処理を仲介して、他のモジュールに対して要求を行うモジュールである。すなわち、ＰＤＬ管理モジュール２０２は、ＰＤＬ解析モジュール２０３の起動・終了、ネットワーク管理モジュール２０４が受け取ったＰＤＬデータをＰＤＬ解析モジュール２０３へ受け渡す仲介、ＰＤＬ解析モジュール２０３がシステム管理モジュール２０５で管理している機器の情報を取得する仲介、ＰＤＬ解析モジュール２０３がメモリ管理モジュール２０６から必要なメモリを確保する仲介、ＰＤＬ解析モジュール２０３が作成した印刷画像の印刷管理モジュール２０７に対する印刷要求の発行等を行う。
【００４２】
ＰＤＬ解析モジュール２０３は、画像形成装置が受信したＰＤＬデータを解析して印刷画像を生成するモジュールであり、ＰＤＬ管理モジュール２０２の仲介によりネットワーク管理モジュール２０４からＰＤＬデータを受け取り、また、ＰＤＬ管理モジュール２０２の仲介によりメモリ管理モジュール２０６が確保したメモリ上に印刷画像を生成することが主な責務である。また、ＰＤＬ解析モジュール２０３は、印刷画像生成の際に、機器構成情報、例えば、給紙トレイ・排紙トレイの構成や、給紙トレイ内の用紙サイズといった情報が必要になるが、これらの情報をＰＤＬ管理モジュール２０２の仲介によりシステム管理モジュール２０５から得る。なお、このＰＤＬ解析モジュール２０３は、ＰＤＬ解析のために非常に多くのメモリを必要とし、ＰＤＬ処理用領域として多くのメモリを確保している。
【００４３】
ネットワーク管理モジュール２０４は、ネットワークコントローラ１０２の管理とネットワークコントローラ１０２から得られる受信データの処理を制御するモジュールであり、ホストコンピュータ１０１からのデータ受信の際に欠かせない通信プロトコル（ｆｔｐやｌｐｒ等）を制御してネットワークコントローラ１０２からデータを受信し、他のモジュールへ受信データを受け渡すことが主な責務である。
【００４４】
システム管理モジュール２０５は、画像形成装置の機器構成情報や機器状態を管理・制御するモジュールである。機器構成情報とは、給紙トレイや排紙トレイの着脱の情報や給紙トレイ内の用紙構成といった情報であり、機器状態とは、印刷中・待機中、ジャムや用紙切れ等のエラー発生中といった内容である。システム管理モジュール２０５は、このような情報を他のモジュールへ通知する他、ユーザによる機器設定（設定により動作を変化させるカスタマイズ可能項目）の管理が主な責務である。
【００４５】
メモリ管理モジュール２０６は、メモリ１０４を管理するモジュールであり、他のモジュールの要求に基いてメモリの割り当て・解放を行うことが主な責務である。
【００４６】
印刷管理モジュール２０７は、ＰＤＬ解析モジュール２０３が生成した印刷画像の印刷処理に関する制御を行うモジュールであり、メモリ管理モジュール２０６が管理するメモリ内に格納された印刷画像を、エンジン１０７に印刷させるために必要な各種処理を実行するのが主な責務であり、印刷ジョブ生成等のジョブ制御、給排紙命令の発行、印刷に関わるエラー状態の検知と他のモジュールへの通知等を行う。
【００４７】
サービス提供モジュール群２０８は、すでに説明したように、ネットワーク管理モジュール２０４、システム管理モジュール２０５、メモリ管理モジュール２０６、印刷管理モジュール２０７の各種サービスを提供するモジュールの総称である。これらのモジュールは、互いに通信をし合って画像形成装置の基本動作を分担し、協力して上位層からの要求に対応する。
【００４８】
なお、図１に示して説明した画像形成装置の構成と、図２に示して説明したプログラム構成とは、以後に説明する本発明の複数の実施形態のそれぞれに共通するものである。
【００４９】
図３は画像形成装置が本発明の第１の実施形態によりファームウェアをアップデートするときにメモリを解放する際のメモリの使用状況を示す図である。
【００５０】
アップデート要求前の通常時、メモリの使用状況は、図３（ａ）に示すように、画像形成の制御のために使用されるＰＤＬ処理用領域３０２に非常に多くのメモリが確保されている状態となっている。そして、アップデートのために画像用領域３０１が使用されることになるが、価格を抑えたローエンドモデル等のメモリ搭載量が少ない画像形成装置の場合や、全モジュールのアップデート等でメモリを多く必要とするような場合には、この画像用領域３０１だけではアップデート実行に充分な容量のメモリが得られないことがある。
【００５１】
通常、ＰＤＬ処理用領域３０２には、数十Ｍバイトといった単位の比較的大きな領域が確保されているため、アップデート要求が行われた際にＰＤＬ処理用領域３０２を使用することができれば、前述のような場合であっても、通常の起動中にファームウェアのアップデートを行うことが可能になる。
【００５２】
このため、本発明の第１の実施形態は、起動中のＰＤＬ解析モジュール２０３の処理を終了させ、ＰＤＬ解析モジュール２０３が確保していたＰＤＬ処理用領域３０２をメモリ上から解放することとしている。この結果、図３（ａ）に示す画像用領域３０１とＰＤＬ処理用領域３０２との両方を、図３（ｂ）に示すように、画像用領域３０１として使用することが可能となる。このようにすることにより、アップデート用として使用可能なメモリ容量を増加させることができ、メモリが不足する場合であってもアップデートが可能となる。
【００５３】
図４は本発明の第１の実施形態によりファームウェアをアップデートする際の処理動作を説明するシーケンスチャートであり、次に、これについて説明する。
【００５４】
（１）まず、ファームウェアのアップデート要求があると、ネットワーク管理モジュール２０４は、アップデート用データを受信し、システム管理モジュール２０５に対してアップデート用データの受信を知らせるメッセージを発行する。このメッセージを受け取ったシステム管理モジュール２０５は、アップデート処理モジュール２０１に対してアップデート用データ受信の通知を行う（シーケンス４０１、４０２）。
【００５５】
（２）アップデート用データ受信の通知を受けたアップデート処理モジュール２０１は、処理を開始し、アップデート用データをメモリ上に書き込むため、メモリ管理モジュール２０６に対してメモリの確保を要求する。なお、このとき、確保すべきメモリサイズについては、アップデート用データのヘッダ部分に自身のサイズに関する記述があるので、これを読み取ることにより知ることができる。例えば、アップデート用データが暗号化されており復号が必要で、書き込み先がＳＤでＳＤ用の暗号化も必要であれば、前述で知ることができるサイズの３倍というように決定される。また、メモリ管理モジュール２０６は、要求されたサイズのメモリの確保が可能であれば、この時点でメモリの確保成功の応答を返し、アップデート処理モジュール２０１は、そのままアップデートを実行して終了となるが、メモリが不足している場合、メモリ管理モジュール２０６は、メモリの確保要求に対して失敗の応答を返す（シーケンス４０４）。
【００５６】
（３）アップデート処理モジュール２０１は、メモリの確保要求に対して失敗の応答を受け取ると、必要なメモリが確保することができずアップデートを実行することができないので、メモリの確保要求のリトライを、メモリが確保できるまで続けようとする。
【００５７】
（４）一方、ネットワーク管理モジュール２０４からアップデート用データの受信を知らせるメッセージを受け取ったシステム管理モジュール２０５は、ＰＤＬ管理モジュール２０２に対してもアップデート用データの受信を知らせるメッセージ発行する（シーケンス４０３）。
【００５８】
（５）システム管理モジュール２０５からのアップデート用データの受信によるアップデート要求を受け取ったＰＤＬ管理モジュール２０２は、ＰＤＬ解析モジュールに対して終了を要求するメッセージを発行する（シーケンス４０５）。
【００５９】
（６）シーケンス４０５での終了要求を受け取ったＰＤＬ解析モジュールは、ＰＤＬ切り替え時に行う通常のシーケンスに従って自ら行っていた処理を終了させ、処理が終了すると、ＰＤＬ管理モジュール２０２にその旨を通知する（シーケンス４０６）。
【００６０】
（７）ＰＤＬ管理モジュール２０２は、今までＰＤＬ解析モジュール用２０３に確保していたメモリの解放をメモリ管理モジュール２０６に対して要求する。通常のＰＤＬ切り替え時には、この後、次のＰＤＬ解析モジュールを起動させ、ＰＤＬ処理用メモリの確保という順で処理が進められるが、本発明の第１の実施形態においては、ＰＤＬ管理モジュール２０２がこれ以降の処理を行わないようにすることにより、ＰＤＬ処理用領域が解放されたままの状態とする（シーケンス４０７）。
【００６１】
（８）ところで、アップデート処理モジュール２０１は、メモリ確保要求をリトライし続けていたが、前述したＰＤＬ解析モジュール２０３の終了処理が完了すると、メモリ管理モジュール２０６からメモリの割り当て成功が通知されるようになるため、アップデート処理モジュールは、アップデートに必要なメモリの確保に成功し、アップデートの処理を進めていく（シーケンス４０８、４０９）。
【００６２】
図５は本発明の第２の実施形態によりファームウェアをアップデートする際の処理動作を説明するシーケンスチャートであり、次に、これについて説明する。ここで説明する例は、図４に示した本発明の第１の実施形態での処理動作のシーケンスの一部を変更し、動作の無駄を省いた場合の例である。
【００６３】
本発明の第１の実施形態の場合、ファームウェアのアップデート要求を受けとると、システム管理モジュール２０５がＰＤＬ管理モジュール２０２に対してもメッセージを送信して、直ちにＰＤＬ解析モジュール２０３の処理終了とメモリのＰＤＬ処理用領域の解放処理を実行するとしていた。このような処理は、メモリが不足しているか否かに関わらず行われるので、どのようなアップデート要求に対しても簡単に対応できる利点がある。
【００６４】
しかし、図４に示した説明した本発明の第１の実施形態での処理は、メモリが不足していないときには、アップデート処理と同時進行でＰＤＬ解析モジュール２０３の処理終了以降の処理が行われてしまい、無駄な処理となってしまう。
【００６５】
このため、本発明の第２の実施形態においては、図５に示すように、途中に、メモリの容量が不足しているか否かを判定する処理を追加することにより、不足した場合にのみＰＤＬ解析モジュール２０３の処理終了以降の処理を実行するようにしている。
【００６６】
まず、メモリ不足が発生しなかった場合の動作について、図５（ａ）に示すシーケンスを参照して説明する。
【００６７】
（１）まず、ファームウェアのアップデート要求があると、ネットワーク管理モジュール２０４は、アップデート用データを受信し、システム管理モジュール２０５に対してアップデート用データの受信を知らせるメッセージを発行する。このメッセージを受け取ったシステム管理モジュール２０５は、アップデート処理モジュール２０１に対してアップデート用データ受信の通知を行う。これらの処理は、図４におけるシーケンス４０１、４０２と同一である（シーケンス５０１、５０２）。
【００６８】
（２）アップデート用データ受信の通知を受けたアップデート処理モジュール２０１は、処理を開始し、図４におけるシーケンス４０４と同様に、アップデート用データをメモリ上に書き込むため、メモリ管理モジュール２０６に対してメモリの確保を要求し、メモリ管理モジュール２０６から成功の応答が通知されると、そのまま、直ちにアップデート処理を開始する（シーケンス５０３、５１０）。
【００６９】
前述の処理では、ＰＤＬ管理モジュール２０２に対してはアップデートに関する通知は何も行われない。これにより、メモリ不足が発生しない場合に無駄な処理が動作してしまうことをなくすことができる。
【００７０】
次に、メモリ不足が発生した場合の動作について、図５（ｂ）に示すシーケンスを参照して説明する。
【００７１】
（１）まず、ファームウェアのアップデート要求があると、ネットワーク管理モジュール２０４は、アップデート用データを受信し、システム管理モジュール２０５に対してアップデート用データの受信を知らせるメッセージを発行する。このメッセージを受け取ったシステム管理モジュール２０５は、アップデート処理モジュール２０１に対してアップデート用データ受信の通知を行う。これらの処理は、図４におけるシーケンス４０１、４０２と同一である（シーケンス５０１、５０２）。
【００７２】
（２）アップデート用データ受信の通知を受けたアップデート処理モジュール２０１は、処理を開始し、図４におけるシーケンス４０４と同様に、アップデート用データをメモリ上に書き込むため、メモリ管理モジュール２０６に対して１回目のメモリの確保要求を送信し、メモリ管理モジュール２０６から失敗の応答が通知されると、システム管理モジュール２０５に対してメモリが不足したことを通知する（シーケンス５０３、５０４）。
【００７３】
（３）メモリが不足したことの通知を受け取ったシステム管理モジュール２０５は、ＰＤＬ管理モジュール２０２に対してアップデート要求でメモリが不足したことを通知するメッセージを発行する（シーケンス５０５）。
【００７４】
（４）ＰＤＬ管理モジュール２０２は、シーケンス５０５で、メモリ不足のメッセージを受け取ると、ＰＤＬ解析モジュール２０３の処理終了要求をＰＤＬ解析モジュール２０３送信し、要求をＰＤＬ解析モジュール２０３は、処理を終了すると、メモリのＰＤＬ処理用領域の解放要求を、ＰＤＬ管理モジュール２０２を介してメモリ管理モジュール２０６に通知する処理を順に実行する（シーケンス５０６〜５０８）。
【００７５】
（５）一方、アップデート処理モジュール２０１は、第１の実施形態の場合と同様に、メモリ確保要求をリトライし続けているので、前述の処理でメモリのＰＤＬ処理用領域の解放が完了すると、メモリの確保が成功してアップデート処理を開始する（シーケンス５０９、５１０）。
【００７６】
前述した本発明の第２の実施形態でのポイントは、アップデート要求を受け取っても、システム管理モジュール２０５がすぐにはＰＤＬ管理モジュール２０２に対して処理を要求せず、アップデート処理モジュール２０１からのメモリ不足のメッセージを受け取ってから、ＰＤＬ管理モジュール２０２に対して処理を要求することにある。
【００７７】
前述により、本発明の第２の実施形態によれば、メモリが確保可能な場合に、現状の状態を保持したままアップデートを行い、メモリが不足した場合に限って第１の実施形態と同様にＰＤＬ解析モジュール２０３の処理を終了させる方法によりアップデートすることが可能となる。
【００７８】
図６は本発明の第３の実施形態によりファームウェアをアップデートする際の処理動作を説明するシーケンスチャートであり、次に、これについて説明する。ここで説明する例は、図５により説明した本発明の第２の実施形態における処理のうちで、メモリを解放させる方法を別の方法とした場合の例である。すなわち、前述した第１の実施形態、第２の実施形態においては、ＰＤＬ解析モジュール２０３のを処理を終了させることにより、メモリに確保していたＰＤＬ処理用領域の解放を行っていたが、ＰＤＬ解析モジュール２０３側がＰＤＬ処理用領域のサイズの変動に対応している場合、サイズを変更することにより対応することが可能であり、ここで説明する例は、この場合の例である。
【００７９】
（１）図５（ｂ）に示す本発明の第２の実施形態の場合と同様なシーケンス５０１〜５０５の処理により、システム管理モジュール２０５からアップデート用メモリ不足の通知を受けたＰＤＬ管理モジュール２０２は、ＰＤＬ解析モジュール２０３に対してアップデート用メモリ不足の通知を発行する（シーケンス６０１）。
【００８０】
（２）このアップデート用メモリ不足の通知を受け取ったたＰＤＬ解析モジュール２０３は、ＰＤＬ管理モジュール２０２の仲介でメモリサイズを０バイトに減少させるリサイズ要求をメモリ管理モジュール２０６に対して送信する（シーケンス６０２）。
【００８１】
前述の処理によりアップデートに必要なメモリが確保することが可能となり、アップデータと処理モジュール２０１がアップデート処理を開始する。
【００８２】
（３）アップデート終了時、アップデート処理モジュール２０１からのアップデート終了通知を受けたシステム管理モジュール２０５は、ＰＤＬ管理モジュール２０２に対してアップデート終了通知を発行する（シーケンス６０３、６０４）。
【００８３】
なお、前述で説明した本発明の第１、第２の実施形態の場合、アップデート処理モジュール２０１からのアップデート終了通知を受けたシステム管理モジュール２０５がＰＤＬ管理モジュール２０２に対してアップデート終了通知を発行した際に、単に、ＰＤＬ解析モジュールの起動を行えばよいだけで、処理としては非常に簡単であったが、本発明の第３の実施形態の場合、次のような若干別の処理の追加が必要となる。
【００８４】
（４）シーケンス６０４の処理で、アップデート終了通知を受けたＰＤＬ管理モジュール２０２は、ＰＤＬ解析モジュール２０３に対してアップデート終了通知を発行する（シーケンス６０５）。
【００８５】
（５）これを受けたＰＤＬ解析モジュール２０３は、ＰＤＬ管理モジュール２０２の仲介でメモリ管理モジュール２０６に対してメモリサイズを元のサイズに戻すリサイズ要求を行う（シーケンス６０６）。
【００８６】
図７は画像形成装置が本発明の第１の実施形態によりファームウェアをアップデートするときにメモリを解放する際のメモリの使用状況を示す図である。この本発明の第４の実施形態は、第１、第２の実施形態の処理にさらに改良を加えた方法である。
【００８７】
前述で説明した第１、第２の実施形態は、ＰＤＬ解析モジュールを終了させ、ＰＤＬ処理領域を解放してしまうことで空きメモリを増加させ、また、第３の実施形態は、ＰＤＬ処理用領域のサイズを０にリサイズすることで空きメモリを増加させていた。しかし、これらの実施形態は、画像形成装置に適用した場合、アップデートが終了するまでの間、画像形成装置がプリンタとしての動作を行うことができないことになり、アップデート対象モジュールが例えばファクシミリを制御するモジュールであり、プリンタとしての動作には関係しないモジュールのアップデートの際にも、プリンタとしての動作を行うことができないことになってしまう。
【００８８】
そこで、本発明の第４の実施形態は、第２、第２の実施形態のように、ＰＤＬ解析モジュール２０３が終了したままの状態にしておくのではなく、ＰＤＬ解析モジュール２０３を再起動させるが、その際、図７（ｂ）に示すように、確保するＰＤＬ処理用領域７０２を、図７（ａ）に示すアップデート前に比べて、少量に減らした状態にする。このようにすることにより、画像用領域７０１として使用可能なメモリを増やすことが可能となる。
【００８９】
図８は本発明の第４の実施形態によりファームウェアをアップデートする際の処理動作を説明するシーケンスチャートであり、次に、これについて説明する。
【００９０】
（１）前述した第２、第３の実施形態の場合と同様に、アップデート処理モジュール２０１がシステム管理モジュール２０５に対してメモリが不足していることを通知する際、要求したメモリサイズも合わせて通知を行う（シーケンス８０１）。
【００９１】
（２）システム管理モジュール２０５は、メモリ管理モジュール２０６から空きメモリサイズを取得し、要求メモリサイズと空きメモリサイズとの差をとって不足しているメモリサイズを求め、この値をＰＤＬ管理モジュール２０２に対してアップデート要求でメモリが不足したことを通知するメッセージを通知する際に合わせて通知する（シーケンス８０２、８０３）。
【００９２】
（３）ＰＤＬ管理モジュール２０２は、この通知によりどれだけのメモリを減らせばよいかが判るるので、第１、第２の実施形態の場合のように、、一旦、ＰＤＬ解析モジュール２０３の終了とＰＤＬ処理用領域の解放とを行った後に、ＰＤＬ解析モジュール２０３の再起動を行った際、ＰＤＬ処理用領域の確保を、以前確保していたサイズから不足分を引いたサイズ以下のメモリを確保させる（シーケンス８０４、８０５）。
【００９３】
前述したような処理を行うことにより、アップデート中にも画像形成装置をプリンタとしての動作を確保しつつ、通常状態でメモリが不足する場合でもアップデートを行うことが可能となる。
【００９４】
図９は本発明の第５の実施形態によりファームウェアをアップデートする際の処理動作を説明するシーケンスチャートであり、次に、これについて説明する。
【００９５】
前述した本発明の第４の実施形態は、ＰＤＬ処理領域を少量にした状態でＰＤＬ解析モジュールを再起動させるものであったが、本発明の第５の実施形態は、第３の実施形態と同様にＰＤＬ処理用領域のリサイズによって、第４の実施形態と同様な機能を行わせるようにしたものである。
【００９６】
（１）図８のシーケンス８０１〜８０３と同様な処理を行った後、システム管理モジュール２０５からアップデート用メモリ不足通知を受けたＰＤＬ管理モジュール２０２は、ＰＤＬ解析モジュール２０３に対してアップデート用メモリ不足通知を行うが、この際にシステム管理モジュール２０５から得た不足メモリサイズをＰＤＬ解析モジュール２０３に対して合わせて通知する（シーケンス９０１）。
【００９７】
（２）ＰＤＬ解析モジュール２０３は、この通知によりどれだけのメモリを減らせばよいかがわかるので、ＰＤＬ処理用領域を以前確保していたサイズから不足分を引いたサイズ以下のメモリサイズに変更する。このメモリサイズの変更は、ＰＤＬ管理モジュール２０２の仲介により、メモリ管理モジュール２０６に対してリサイズ要求を出す形で行われる（シーケンス９０２）。
【００９８】
前述したような処理を行うことにより、ＰＤＬ解析モジュール２０３の再起動なしで必要なサイズのメモリを空けることが可能となる。
【００９９】
図１０は本発明の第６の実施形態によりファームウェアをアップデートする際に、アップデート用メモリの不足通知を受けたＰＤＬ管理モジュールでの処理動作を説明するフローチャートであり、次に、これについて説明する。
【０１００】
前述した本発明の第４の実施形態は、メモリを減らしてＰＤＬ解析モジュールを再起動する方法、第５の実施形態は、ＰＤＬ処理領域のサイズを少量に変更する方法に関するものであったが、ＰＤＬ解析モジュール側には最低限必要なＰＤＬ処理用領域のサイズが決まっているものも存在する。このようなＰＤＬ解析モジュールの場合、アップデートに必要なメモリサイズが大きい等により非常に多くのメモリを必要とするような場合、再起動時またはリサイズ時にＰＤＬ処理用領域に必要なサイズを確保できず、正しく動作できない状態になることもある。本発明の第６の実施形態は、このような場合にも対応した処理を行うことができるようにしたものである。
【０１０１】
（１）まず、アップデート用メモリ不足通知の受信により、不足分のサイズが判明すると、次に確保可能なメモリサイズの算出が行われる。この処理は、第４の実施形態のようにＰＤＬ解析モジュール２０３を再起動する方法の場合には、ＰＤＬ管理モジュール２０２が行うことになり、第５の実施形態のようにＰＤＬ処理用領域のリサイズを行う方法の場合には、ＰＤＬ解析モジュール２０３が行うことになる（ステップ１００１）。
【０１０２】
（２）次に、ステップ１００１での処理の結果による確保可能なメモリサイズが、ＰＤＬ解析モジュール２０３で最低限必要なＰＤＬ処理用メモリのサイズを下回るか否かを判定する。この処理は、ステップ１００１と同様のモジュールが判定を行う（ステップ１００２）。
【０１０３】
（３）ステップ１００２の判定で、確保可能なメモリサイズが最低限必要なＰＤＬ処理用メモリのサイズを下回った場合、第１の実施形態で説明したと同様に、ＰＤＬ解析モジュール２０３の終了からＰＤＬ処理用領域の解放までを行って次のＰＤＬ解析モジュールの起動を止めた状態にする方法、あるいは、第３の実施形態で説明したと同様に、ＰＤＬ処理用領域を０バイトにリサイズする方法をとることにより対応する（ステップ１００３）。
【０１０４】
（４）ステップ１００２の判定で、確保可能なメモリサイズが最低限必要なＰＤＬ処理用メモリのサイズを上回った場合、第４の実施形態で説明したと同様に、ＰＤＬ処理用領域のサイズを減らした状態でＰＤＬ解析モジュール２０３の再起動を行う方法、あるいは、第５の実施形態で説明した同様に、ＰＤＬ処理用領域が少量になるようにリサイズする方法をとることにより対応する（ステップ１００４）。
【０１０５】
図１１は確保可能なメモリサイズが、ＰＤＬ解析モジュール２０３で最低限必要なＰＤＬ処理用メモリのサイズを下回るか否の判定に用いるテーブルの構成例を示す図である。このテーブルには、ＰＤＬ解析モジュールの識別子と最低必要なＰＤＬ処理用領域のサイズとがセットで記録されており、ＰＤＬ管理モジュール２０２は、このテーブルを参照することにより、ＰＤＬ解析モジュール２０３が最低限必要としているサイズを知り、ＰＤＬ解析モジュール２０３の再起動またはリサイズ時に確保可能なメモリサイズ（以前確保していたサイズから不足分を引いた値）と比較することにより、前述した２つの方法のうちどちらを採用するか決定することができる。
【０１０６】
前述で説明した本発明の実施形態によれば、アップデート用モジュールのサイズが大きい場合や、搭載メモリの少ない画像形成装置である場合においても、メモリが不足することなくファームウェアのアップデートを行うことが可能となり、また、ファームウェアアップデート時に、アップデートするモジュールと関連性のないモジュールは、メモリを効率的に利用することにより動作し続けさせることが可能となる。
【０１０７】
また、本発明の実施形態の１つによれば、ＰＤＬ解析モジュールが受信したＰＤＬデータを解析して印刷画像を得る際に使用する領域として確保しているＰＤＬ処理用領域のメモリを解放することにより、ファームウェアアップデート用にメモリを確保できるようにしているので、ファームウェアアップデート時、ＰＤＬ解析モジュールが使用する領域として確保されているＰＤＬ処理用領域のメモリを、ＰＤＬ解析モジュールを終了させる、ＰＤＬ解析モジュールがＰＤＬ処理用領域のサイズを変更する、ＰＤＬ解析モジュールを再起動させるが、その際にＰＤＬ処理用領域を少量に減らして確保するのいずれかの方法により全てまたは一部解放することにより、アップデート用に空き領域を作り出すことができる。
【図面の簡単な説明】
【０１０８】
【図１】本発明の実施形態によるファームウェアのアップデート時の全体の制御を説明する画像形成装置の構成を示すブロック図である。
【図２】本発明の実施形態による画像形成装置の内部で実行されるプログラム構成を説明するブロック図である。
【図３】画像形成装置が本発明の第１の実施形態によりファームウェアをアップデートするときにメモリを解放する際のメモリの使用状況を示す図である。
【図４】本発明の第１の実施形態によりファームウェアをアップデートする際の処理動作を説明するシーケンスチャートである。
【図５】本発明の第２の実施形態によりファームウェアをアップデートする際の処理動作を説明するシーケンスチャートである。
【図６】本発明の第３の実施形態によりファームウェアをアップデートする際の処理動作を説明するシーケンスチャートである。
【図７】画像形成装置が本発明の第１の実施形態によりファームウェアをアップデートするときにメモリを解放する際のメモリの使用状況を示す図である。
【図８】本発明の第４の実施形態によりファームウェアをアップデートする際の処理動作を説明するシーケンスチャートである。
【図９】本発明の第５の実施形態によりファームウェアをアップデートする際の処理動作を説明するシーケンスチャートである。
【図１０】本発明の第６の実施形態によりファームウェアをアップデートする際に、アップデート用メモリの不足通知を受けたＰＤＬ管理モジュールでの処理動作を説明するフローチャートである。
【図１１】確保可能なメモリサイズが、ＰＤＬ解析モジュールで最低限必要なＰＤＬ処理用メモリのサイズを下回るか否の判定に用いるテーブルの構成例を示す図である。
【符号の説明】
【０１０９】
１０１ホストコンピュータ
１０２  ネットワークコントローラ
１０３  ＣＰＵ
１０４  メモリ
１０５  ＮＶ−ＲＡＭ
１０６  エンジンインタフェース
１０７  エンジン
１０８  フラッシュＲＯＭ
１０９  ＳＤコントローラ
１１０  ＳＤメディア１１０
２０１  アップデート処理モジュール
２０２  ＰＤＬ管理モジュール
２０３  ＰＤＬ解析モジュール
２０４  ネットワーク管理モジュール
２０５  システム管理モジュール
２０６  メモリ管理モジュール
２０７  印刷管理モジュール
２０８  サービス提供モジュール群
【図１】
2008071287.tif 000003
【図２】
2008071287.tif 000004
【図３】
2008071287.tif 000005
【図４】
2008071287.tif 000006
【図５】
2008071287.tif 000007
【図６】
2008071287.tif 000008
【図７】
2008071287.tif 000009
【図８】
2008071287.tif 000010
【図９】
2008071287.tif 000011
【図１０】
2008071287.tif 000012
【図１１】
2008071287.tif 000013