(57)【特許請求の範囲】
【請求項１】
ファームウェアによる制御に従って画像形成を行う画像形成装置であって、
画像処理を行い、得られたデータを画像形成手段に渡す画像処理手段と、
ファームウェアを圧縮して格納するための第１の領域と、前記画像処理を実行する際に一時的に中間データを格納するための第２の領域とを有する記憶手段と、
前記第１の領域に格納されている前記ファームウェアを更新するための更新データを取得する取得手段と、
前記取得した更新データを前記第２の領域に展開する展開手段と、
前記第１の領域から読み出されたファームウェアを前記第２の領域に展開された更新データで更新したものである更新ファームウェアを圧縮し、前記第１の領域に格納されている圧縮されたファームウェアと差し替える差し替え手段と、
を備えることを特徴とする画像形成装置。
【請求項２】
前記取得手段は複数の更新データを含むパッケージを取得し、
前記画像形成装置は、前記複数の更新データの中から、前記展開手段が展開する更新データを選択する選択手段を更に備え、
前記展開手段は、前記選択手段によって選択された更新データを展開する
ことを特徴とする、請求項１に記載の画像形成装置。
【請求項３】
前記選択手段は、前記第２の領域に展開可能なサイズの前記更新データを選択することを特徴とする、請求項２に記載の画像形成装置。
【請求項４】
前記取得手段は、前記複数の更新データのそれぞれの圧縮前のサイズを示す情報を取得し、
前記選択手段は、前記圧縮前のサイズを示す情報に基づいて前記更新データを選択することを特徴とする、請求項２又は３に記載の画像形成装置。
【請求項５】
前記取得手段は、前記複数の更新データのそれぞれの圧縮率を示す情報を取得し、
前記選択手段は、前記圧縮率を示す情報に基づいて前記更新データを選択することを特徴とする、請求項２又は３に記載の画像形成装置。
【請求項６】
前記取得手段は、外部装置から前記更新データを取得することを特徴とする、請求項１乃至５の何れか１項に記載の画像形成装置。
【請求項７】
前記記憶手段は不揮発性メモリであることを特徴とする、請求項１乃至６の何れか１項に記載の画像形成装置。
【請求項８】
前記記憶手段は、前記取得手段が取得した更新データを格納するための第３の領域を更に有することを特徴とする、請求項１乃至７のいずれか１項に記載の画像形成装置。
【請求項９】
前記パッケージは、圧縮された第１の更新データ及び第２の更新データを含み、
前記展開手段は、前記第１の更新データを前記第２の領域へと展開し、
前記差し替え手段は、前記第１の領域から読み出されたファームウェアを前記第２の領域に展開された前記第１の更新データで更新したものである第１の更新ファームウェアを圧縮し、前記第１の領域に格納されている圧縮されたファームウェアと差し替え、
前記展開手段はさらに、前記第２の更新データを前記第２の領域へと展開し、
前記差し替え手段はさらに、前記第１の領域から読み出された第１の更新ファームウェアを前記第２の領域に展開された前記第２の更新データで更新したものである第２の更新ファームウェアを圧縮し、前記第１の領域に格納されている圧縮された第１の更新ファームウェアと差し替える
ことを特徴とする、請求項２に記載の画像形成装置。
【請求項１０】
ファームウェアによる制御に従って画像形成を行う画像形成装置が行うファームウェア更新方法であって、
前記画像形成装置は、
画像処理を行い、得られたデータを画像形成手段に渡す画像処理手段と、
ファームウェアを圧縮して格納するための第１の領域と、前記画像処理を実行する際に一時的に中間データを格納するための第２の領域とを有する記憶手段と、
を備え、
前記ファームウェア更新方法は、
前記第１の領域に格納されている前記ファームウェアを更新するための更新データを取得する取得工程と、
前記取得した更新データを前記第２の領域に展開する展開工程と、
前記第１の領域から読み出されたファームウェアを前記第２の領域に展開された更新データで更新したものである更新ファームウェアを圧縮し、前記第１の領域に格納されている圧縮されたファームウェアと差し替える差し替え工程と、
を有することを特徴とするファームウェア更新方法。
【請求項１１】
ファームウェアによる制御に従って画像形成を行う画像形成装置に、ファームウェア更新方法を実行させるためのプログラムであって、
前記画像形成装置は、
画像処理を行い、得られたデータを画像形成手段に渡す画像処理手段と、
ファームウェアを圧縮して格納するための第１の領域と、前記画像処理を実行する際に一時的に中間データを格納するための第２の領域とを有する記憶手段と、
を備え、
前記ファームウェア更新方法は、
前記第１の領域に格納されている前記ファームウェアを更新するための更新データを取得する取得工程と、
前記取得した更新データを前記第２の領域に展開する展開工程と、
前記第１の領域から読み出されたファームウェアを前記第２の領域に展開された更新データで更新したものである更新ファームウェアを圧縮し、前記第１の領域に格納されている圧縮されたファームウェアと差し替える差し替え工程と、
を有することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファームウェアの更新における作業領域の最適化を行う画像形成装置及びそのファームウェア更新方法、並びにプログラムに関する。
【背景技術】
【０００２】
組み込み機器としての情報処理装置は、ファームウェアを格納する不揮発性メモリ（例えば、フラッシュメモリ等）を省容量化するため、圧縮された読み込み専用のファイルシステム（例えば、ＳｑｕａｓｈＦＳ等）を採用することが多い。係る読み込み専用のファイルシステム（以下、圧縮ファイルシステムと言う。）は、汎用ファイルシステムにファイルを作成し、所定の圧縮ロジックにより圧縮ファイルシステムを作成し、対象システムにマウントする必要がある。また、セキュリティ向上等を目的として、ファームウェアを迅速にアップデートする必要があるため、ネットワークを介したオンラインアップデート等が採用されている。更に、ネットワークの通信速度が遅いあるいは通信エラーの発生率が高い場合には、アップデートを行うための更新ファイルをダウンロードする時間が比較的長く必要であるため、ファームウェア全体ではなく更新部分のみを転送する差分アップデートが採用されている。係る差分アップデートにおいては、ファイル単位を更新部分の最小単位として実行することが多く、差分の反映ロジックの複雑さやバージョンアップ毎の差分の管理が困難であることから、単一のファイルを更に分割して転送することは一般的ではない。差分ファイルとは、ファイルの集合体で表現され、複数の更新を同時に実施する場合は、複数セットの差分ファイルを更新部分として扱うことになる。
【０００３】
圧縮ファイルシステムのディレクトリに対して圧縮を実施する構成では、最小単位が任意のディレクトリであり、最大単位がファイルシステム全体である。よって、更新部分の単位と圧縮ファイルシステムの単位が異なるため、圧縮ファイルシステムを予め作成しておき、差分ファイルとして転送する構成は適さない。無線ネットワークを介して、圧縮ファイルシステムのファイルを更新するために圧縮ファイルをＲＡＭに展開し、差分ファイルをＲＡＭで反映させ、ＲＡＭのデータを圧縮処理する構成が提案されている（特許文献１）。係る圧縮ファイルシステムによれば、差分のファイルを反映させるために機器で圧縮ファイルシステムを再作成する必要がなくなる。また、受信したファイルを配置するダウンロード領域を最適化する構成が提案されている（特許文献２）。これにより、ダウンロード領域をシステムとして固定的に確保できない場合に、他の機能が使用する不揮発性メモリの領域を動的に取得して利用し、更に十分な容量が取得できない場合にダウンロードを中断することができるため、不揮発性メモリの省容量化を図ることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−９３９２号公報
【特許文献２】特開２００３−１０８３９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここで、複合機のように大量の機能（例えば、画像形成機能や画像読取機能等）を有するシステムでは、ファームウェアの圧縮データのサイズが大きい（例えば、数１００ＭＢ）。また、特許文献１のようにファームウェアをＲＡＭに展開する場合には、ＲＡＭの容量を更に大きく確保する必要がある（例えば、最大数ＧＢ）。
【０００６】
しかしながら、複合機で用いられるＲＡＭの容量は、コストの面から非常に小さく（例えば、２５６ＭＢ）、更にアップデートの作業領域として使用可能な領域はその一部の領域（例えば、１００ＭＢ程度）に限定される。このため、複合機等の場合にはＲＡＭに展開可能な領域を確保することが困難である。一方、複合機は複雑な画像処理を実施する必要があるため、画像処理時に一時的に中間画像データを格納するために比較的大容量の不揮発性メモリを備えている。この不揮発性メモリは、画像形成処理等のアップデート処理以外の処理と競合しない限り使用されないため、アップデート時の展開領域として使用することが可能である。ただし、他の処理と競合しない場合であってもサイズに制約があるため、全ての差分ファイルを同時に展開できない場合がある。
【０００７】
また、圧縮ファイルシステムを用いない情報処理装置においても、ファームウェアのアップデートが完了する前にアップデート処理が中断する可能性があるため、アップデート前のファームウェアをバックアップしておくのが望ましい。しかしながら、この場合も、ファームウェアをバックアップするための領域が不揮発性メモリに確保することができない場合がある。
【０００８】
本発明は、上述の課題に鑑みてなされたものであり、記憶容量の大容量化によるコストアップを抑制すると共に、ファームウェアのアップデート処理がその他の処理と競合することを防止しながら、圧縮した差分ファイルの展開領域を確保可能な画像形成装置及びそのファームウェア更新方法、並びにプログラムを提供するものである。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、本発明に係る、ファームウェアによる制御に従って画像形成を行う画像形成装置は、
画像処理を行い、得られたデータを画像形成手段に渡す画像処理手段と、
ファームウェアを圧縮して格納するための第１の領域と、前記画像処理を実行する際に一時的に中間データを格納するための第２の領域とを有する記憶手段と、
前記第１の領域に格納されている前記ファームウェアを更新するための更新データを取得する取得手段と、
前記取得した更新データを前記第２の領域に展開する展開手段と、
前記第１の領域から読み出されたファームウェアを前記第２の領域に展開された更新データで更新したものである更新ファームウェアを圧縮し、前記第１の領域に格納されている圧縮されたファームウェアと差し替える差し替え手段と、
を備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、記憶容量の大容量化によるコストアップを抑制すると共に、ファームウェアのアップデート処理がその他の処理と競合することを防止しながら、圧縮した差分ファイルの展開領域を確保可能な画像形成装置及びそのファームウェア更新方法、並びにプログラムを提供することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施例１に係る画像入出力システムの構成を示すブロック図である。
【図２】画像形成装置の内部構造を示す図である。
【図３】制御部の詳細な構成を示すブロック図である。
【図４】アップデートで使用する作業領域を概念的に示す図である。
【図５】制御部の処理手順を示す図である。
【図６】本発明の実施例２に係る制御部の処理手順を示す図である。
【発明を実施するための形態】
【００１２】
以下に、本発明の実施の形態について添付図面を参照して詳細に説明する。なお、以下に説明する実施の形態は、本発明の実現手段としての一例であり、本発明は、その趣旨を逸脱しない範囲で以下の実施形態を修正又は変形したものに適用可能である。例えば、以下では、本発明に係る情報処理装置を画像形成装置における情報処理を行う制御装置として機能させる例を説明するが、その実施形態に限定されるものではなく、一般的な計算機システム全般に適用することが可能である。
【００１３】
＜実施例１＞
［画像形成装置１の全体構成（図１）］
本発明の実施例１に係る画像形成装置１は、イーサネット（登録商標）等のＬＡＮ５（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を介してホストコンピュータ３、４に接続される。
【００１４】
画像形成装置１は、画像データの読取処理を行う原稿読取部２と、画像データの出力処理を行う画像形成部６と、画像データの入出力操作を行うキーボードや画像データ・各種機能の表示を行う液晶パネル等を備えた操作部７と、制御プログラムや画像データ等が予め書き込まれた記憶部１６と、これらの各構成要素に接続されて該構成要素を制御する制御部１００とを備える。
【００１５】
原稿読取部２は、読み取り対象である原稿用紙を搬送する原稿給紙部１０と、搬送された原稿画像を光学的に読み取って電気信号としての原稿画像データに変換するスキャナ部１１とを有する。
【００１６】
画像形成部６は、出力媒体である複数種類、複数サイズの用紙をそれぞれ収容する複数段の給紙カセットを備えた給紙部１２と、画像データを用紙に転写、定着するマーキング部１３と、印刷された用紙にソート処理やステイプル処理を施して、外部に排出する排紙部１４とを有する。
【００１７】
制御部１００は、単一の電子部品で構成され、原稿読取部２で読み取った画像データをコードに変換し、ＬＡＮ５を介してホストコンピュータ３、４に送信するスキャナ機能と、ホストコンピュータ３、４からＬＡＮ２を介して受信したコードデータを画像形成データに変換し、画像形成部６に出力する画像形成機能とを少なくとも有する。制御部１００は、給紙部１２を制御する給紙制御部として機能する。
【００１８】
［画像形成部６の詳細構成（図２）］
原稿読取部２は、原稿給紙部２１０に積層された原稿用紙がその積層順に従って、先頭から順次１枚ずつプラテンガラス２１５上に給送される。スキャナ部１１が所定の読取動作を終了した後、該読み取られた原稿用紙はプラテンガラス２１５上から原稿給紙部２１０に排出される。また、スキャナ部１１では、原稿用紙がプラテンガラス２１５上に搬送されてくるとランプ２１６が点灯し、次いで光学ユニット２１７の移動を開始させ、読み取り位置で固定する。
【００１９】
光学ユニット２１７は、搬送される原稿用紙を下方から照射して走査する。そして、原稿用紙からの反射光は、複数のミラー２１８、２１９、２２０、及びレンズ２２１を介してＣＣＤイメージセンサ（以下、単に「ＣＣＤ」と言う）２２２へと導かれ、走査された原稿画像はＣＣＤ２２２によって読み取られる。そして、ＣＣＤ２２２で読み取られた画像データは、所定の処理が施された後、制御部１００（図２では図示省略）に転送される。あるいは、原稿プラテン上に載置された原稿に、同様にランプ２１６を点灯し、次いで光学ユニット２１７の移動を開始させ、原稿用紙を下方から照射し、走査することで、走査された原稿画像をＣＣＤ２２２によって読み取ることが可能である。以上の手順で送出された原稿読取部２からの画像データは、スキャナコネクタ５６を介して制御部１００に送出される。
【００２０】
次いで、画像形成部６では、制御部１００から出力された画像データに対応するレーザ光が、不図示のレーザドライバ２３により駆動されるレーザ発光部２２４から発光される。該レーザ光はマーキング部１３の感光ドラム２２５にはレーザ光に応じた静電潜像が形成され、現像器２２６により静電潜像の部位に現像剤が付着する。一方、レーザ光の照射開始と同期したタイミングで、給紙部１２（給紙カセット２１２ａ，２１２ｂ）から記録用紙が給紙されて転写部２２７に搬送され、感光ドラム２２５に付着している現像剤を記録用紙に転写する。画像データが転写された記録用紙は定着部２２８に搬送され、定着部２２８における加熱・加圧処理により画像データが記録紙に定着される。
【００２１】
そして、画像データを記録用紙に片面記録する場合は、定着部２２８を通過した記録用紙が排出ローラ２２９によってそのまま排紙部１４に排出される。排紙部１４は、排出された記録用紙を束ねて記録用紙の仕分けを行い、また、仕分けされた記録用紙のステイプル処理を行う。また、画像データを記録用紙に両面記録する場合は、排出ローラ２２９まで記録用紙を搬送した後、排出ローラ２２９の回転方向を逆転させる。その後、フラッパ２３０によって再給紙搬送路２３１へと導かれ、該再給紙搬送路２３１に導かれた記録用紙は上述と同様にして転写部２２７に搬送される。
【００２２】
制御部１００は、上述したように単一の電子部品で構成される。原稿読取部２で読み取った画像データをコードに変換し、ＬＡＮ４００を介してホストコンピュータ３、４に送信するスキャナ機能を有する。更に、ホストコンピュータ３、４から不図示のＬＡＮ２を介して受信したコードデータを画像データに変換し、画像形成部６に出力するプリンタ機能、その他の機能ブロックを有している。
【００２３】
［制御部１００の詳細構成（図３）］
主制御部３２は、ＣＰＵ３３と、バス制御部３４と、後述する各種制御回路を含む機能ブロックとを有し、ＲＯＭＩ／Ｆ３５を介してＲＯＭ３６と接続され、ＤＲＡＭＩ／Ｆ３７を介してＤＲＡＭ３８と接続され、コーデックＩ／Ｆ３９を介してコーデック４０と接続され、また、ネットワークＩ／Ｆ４１を介してネットワーク制御部４２と接続される。
【００２４】
ＲＯＭ３６は、主制御部３２のＣＰＵ３３で実行される各種制御プログラムや演算データを格納する。ＤＲＡＭ３８は、ＣＰＵ３３が動作するための作業領域や画像データを蓄積するための領域として使用される。
【００２５】
コーデック４０は、ＤＲＡＭ３８に蓄積されたラスタイメージデータをＭＨ／ＭＲ／ＭＭＲ／ＪＢＩＧ等の周知の圧縮方式で圧縮し、また圧縮されたデータをラスタイメージに伸長する。また、コーデック４０にはＳＲＡＭ４３が接続され、ＳＲＡＭ４３は、コーデック４０の一時的な作業領域として使用される。ネットワーク制御部４２は、ネットワーク４４を介してＬＡＮ２との間で所定の制御動作を行う。
【００２６】
主制御部３２は、スキャナバス４５を介してスキャナＩ／Ｆ４６に接続され、プリンタバス４７を介してプリンタＩ／Ｆ４８に接続され、更にＰＣＩバス等の汎用高速バス４９を介して拡張ボードを接続するための拡張コネクタ５０及び入出力制御部（Ｉ／Ｏ制御部）５１に接続される。
【００２７】
Ｉ／Ｏ制御部５１は、原稿読取部２や画像形成部６との間で制御コマンドを送受信するための調歩同期式のシリアル通信制御部５２が２チャンネル装備されており、該シリアル通信制御部５２は、Ｉ／Ｏバス５３を介してスキャナＩ／Ｆ４６及びプリンタＩ／Ｆ４８に接続される。
【００２８】
スキャナＩ／Ｆ４６は、調歩同期シリアルＩ／Ｆ５４及びビデオＩ／Ｆ５５を介してスキャナコネクタ５６に接続され、スキャナコネクタ５６は、原稿読取部２のスキャナ部１１に接続される。スキャナＩ／Ｆ４６は、スキャナ部１１から受信した画像データに対し所望の２値化処理や、主走査方向や副走査方向の変倍処理を行い、またスキャナ部１１から送られてきたビデオ信号に基づいて制御信号を生成し、スキャナバス４５を介して主制御部３２に転送する。
【００２９】
プリンタＩ／Ｆ４８は、調歩同期シリアルＩ／Ｆ５７及びビデオＩ／Ｆ５８を介してプリンタコネクタ５９に接続され、プリンタコネクタ５９は、画像形成部６のマーキング部１３に接続される。プリンタＩ／Ｆ４８は、主制御部３２から出力された画像データにスムージング処理を施して該画像データをマーキング部１３に出力し、更にマーキング部１３から送られたビデオ信号に基づいて、生成された制御信号をプリンタバス４７に出力する。
【００３０】
ＣＰＵ３３は、ＲＯＭ３６からＲＯＭＩ／Ｆ３５を介して読み込まれた制御プログラムに基づいて動作し、例えば、ホストコンピュータ３、４から受信したＰＤＬ（ページ記述言語）データを解釈し、ラスタイメージデータに展開処理を行う。
【００３１】
バス制御部３４は、スキャナＩ／Ｆ４６、プリンタＩ／Ｆ４８、その他拡張コネクタ５０等に接続された外部機器から入出力されるデータ転送を制御するものであり、バス競合時のアービトレーション（調停）やＤＭＡデータ転送の制御を行う。例えば、上述したＤＲＡＭ３８とコーデック４０との間のデータ転送や、スキャナ部１１からＤＲＡＭ３８へのデータ転送、ＤＲＡＭ３８からマーキング部１３へのデータ転送等は、バス制御部３４によって制御され、ＤＭＡ転送される。
【００３２】
Ｉ／Ｏ制御部５１は、ＬＣＤ制御部６０及びパネルＩ／Ｆ６２を介して操作部７に接続される。また、Ｉ／Ｏ制御部５１は、Ｅ−ＩＤＥコネクタ６３を介して、ハードディスクドライブ８、９及び不揮発性メモリ６６に接続される。不揮発性メモリ６６は、電源断時でもデータの記憶内容を保持可能であるメモリであり、例えば、書き込み可能であるフラッシュメモリやＥＥＰＲＯＭを用いることができる。また、不揮発性メモリ６６は、主制御部３２を制御するための各種制御プログラムを格納している。
【００３３】
更に、Ｉ／Ｏ制御部５１は、機器内で管理する日付と時刻を更新／保持するリアルタイムクロックモジュール６４に接続される。なお、リアルタイムクロックモジュール６４は、バックアップ用電池６５に接続されて、バックアップ用電池６５によりバックアップされる。
【００３４】
［不揮発性メモリの領域分割（図４）］
不揮発性メモリ６６は、圧縮したファームウェアを格納するためのファームウェア格納領域Ａ１０（第１の領域）と画像処理用の中間データを一時的に格納するための作業領域Ａ２０（第２の領域）とに機能的に分割されている。なお、不揮発性メモリ６６は、物理的に分割された２つのメモリであっても構わない。
【００３５】
ファームウェア格納領域Ａ１０は、画像形成装置の種々の制御プログラムを格納する領域であるファームウェア格納領域Ａ１１を有する。種々の制御プログラムには、ＰＤＬデータを解釈してラスタイメージデータに展開処理するためのファームウェアが含まれる。また、プリントやコピー等のジョブを制御するためのファームウェアが含まれる。ファームウェア格納領域Ａ１１は、圧縮ファイルシステムであるため、任意のファイルを通常のｗｒｉｔｅシステムコール等で直接編集することはできず、通常時は読み取りしかできない領域として運用される。一方、ファームウェア格納領域Ａ１１は、アップデート時には書き換えが可能となる。
【００３６】
作業領域Ａ２０は、汎用ファイルシステムであるため、通常のディレクトリとして読み込み及び書き込みが可能であり、各種データの保持に使用する領域である。また、作業領域Ａ２０は、アップデートに使用するパッケージを格納するためのダウンロード領域Ａ２１と、画像展開領域Ａ２２とを有する。
【００３７】
ここで、パッケージとは、配布形式のファームウェアであり、具体的には更新対象のファイルと、ファイルに付随する各種メタデータ情報とを含み、サイズ低減のためＺＩＰ等の汎用圧縮アルゴリズムで圧縮されたものである。パッケージには、少なくとも１つの差分ファイルが含まれるが、制御モジュールを機能毎に動的リンクライブラリファイル等に分割しておくことで、機能毎にパッケージを分割することができる。例えば、画像処理機能に不具合があった場合は画像処理機能パッケージを更新対象とすることで不具合修正の反映を実行することができる。同様に、通信機能をパッケージとして分割しておき、通信機能にセキュリティの脆弱性が見つかった場合には、通信機能パッケージを更新対象とすることで脆弱性対応を反映することができる。
【００３８】
なお、本実施例１に係る圧縮ファイルシステムで内部的に使用する圧縮アルゴリズムは、ＺＩＰ等の汎用的なものを想定しており、パッケージが採用する圧縮アルゴリズムと同一とする。ダウンロード領域Ａ２１のサイズは、更新対象がファームウェア全体であるような場合に最大となることが想定され、この場合には、ファームウェア格納領域Ａ１１と同じサイズまで拡張される。本実施例１では、通常運用時のバックグラウンドダウンロードを実施するため、ダウンロード領域Ａ２１は、常にファームウェア格納領域Ａ１１と同じサイズを確保可能である。
【００３９】
ダウンロードは、外部サーバやＵＳＢ等のリムーバブルメディア等の複数の系から実施可能とするが、ここではアップデートサーバ１５から転送されるものとする。実際の転送シーケンス等は、公知の技術を用いるものとする。
【００４０】
画像展開領域Ａ２２は、通常時には画像処理用の中間データを格納するために使用され、アップデート処理時にはダウンロード領域Ａ２１に格納したパッケージを展開し配置する領域として使用される。画像展開領域Ａ２２を通常時とアップデート時で排他的に使用するため、機器の状態として通常モードとアップデートモードとを設ける。
【００４１】
アップデートモードでは、プリントやコピー等のジョブを一切受け付けないように、ネットワークやユーザインターフェースからジョブを投入できない構成に制御モジュールを設定する。アップデートモードであっても、画像展開領域Ａ２２に中間データ等が残っていた場合には、不要なファイルであるため、アップデートシーケンス中に削除処理を実施する。
【００４２】
画像展開領域Ａ２２にＵｎｉｏｎＦＳ等を実施することで、ファームウェア格納領域Ａ１１に配置したファームウェアを画像展開領域Ａ２２の配置パス上に仮想的に配置する。更に、画像展開領域Ａ２２に対して、パッケージに含まれるファイルを上書き等の処理で反映することで更新後のファームウェアイメージを作成する。更に、更新後のファームウェアイメージを圧縮ファイルシステムに変換し、ファームウェア格納領域Ａ１１に配置される更新前の圧縮ファイルシステムと差し替えることでファームウェアのアップデートを実現することができる。
【００４３】
［制御部１００のアップデート処理手順（図５）］
制御部１００は、ユーザインターフェースからの指示、ネットワーク経由の指示、事前のスケジュール設定による指示等により種々のタイミングでアップデートモードへ移行し、割り込み処理としてのアップデート処理を開始する。モード移行に際しては、ユーザが機器設定値の書き換えのみを行えばよい場合には、書き換えに加えて再起動処理が必要となる場合がある。
【００４４】
アップデートモードが開始されると、まず、制御部１００は、アップデートサーバ１５から更新するためのパッケージ（ファームウェア）をダウンロードし、ダウンロード領域Ａ２１に格納する（Ｓ１）。なお、作業領域Ａ２０には、ダウンロードされるパッケージを記憶するのに十分な記憶領域が予め割り当てられている。
【００４５】
そして、制御部１００は、画像展開領域Ａ２２に展開可能なパッケージの組合せを選択する（Ｓ２）。実際には圧縮に使用するアルゴリズムの最良値の圧縮率を仮定し、パッケージのサイズから展開後のサイズを推測する。例えば、最良の圧縮率が２５％の圧縮アルゴリズムを採用している場合は、パッケージのサイズの４倍の領域が展開後に必要であると仮定する。
【００４６】
なお、パッケージ作成時にパッケージのメタデータとして、パッケージの圧縮前のサイズや圧縮率等を示す情報を持たせる構成であっても良い。また、このサイズ情報や圧縮率等を示す情報に基づいて、画像展開領域Ａ２２に展開可能な組合せを選択するアルゴリズムは如何なるものであっても良い。例えば、サイズの大きいパッケージから順次選択していき、サイズの合計値が画像展開領域Ａ２２のサイズに展開可能な範囲で選択処理を終了するようなアルゴリズムが考えられる。
【００４７】
例えば、画像展開領域Ａ２２として、６４ＭＢ分の領域が割り当てられているものとする。そして、ダウンロードされたパッケージには、Ａ、Ｂ、Ｃ及びＤの４つの圧縮されたファームウェアが含まれているものとする。さらに、ファームウェアＡを伸張したサイズが３２ＭＢ、ファームウェアＢを伸張したサイズが１６ＭＢであるものとする。さらに、ファームウェアＣを伸張したサイズが１６ＭＢ、ファームウェアＤを伸張したサイズが１６ＭＢであるものとする。この場合、ステップＳ２では、制御部１００は、画像展開領域Ａ２２のサイズ（６４ＭＢ）に展開可能なＡ、Ｂ及びＣ（合計サイズが６４ＭＢ）を選択する。そして、制御部１００は、ファームウェアＤをＳ６の後に再びＳ２が実行される際に選択する。
【００４８】
次に、制御部１００は、画像展開領域Ａ２２を配置したディレクトリパスにファームウェア格納領域Ａ１１のファームウェアをＵｎｉｏｎＦＳ等を使用して仮想的に配置する（Ｓ３）。そして、ステップＳ２で選択したパッケージを画像展開領域Ａ２２へ展開する（Ｓ４）。ここで、選択したパッケージの情報をテーブルに記憶したり、パッケージ自体をダウンロード領域Ａ２１から削除したりして、展開したファイルが再度展開対象にならないようにする。ここでは、パッケージ自体を削除することにより展開対象から除外することとする。
【００４９】
次に、制御部１００は、画像展開領域Ａ２２に展開されたファイル群をディレクトリ単位で圧縮することで圧縮ファイルシステムを作成し、ファームウェア格納領域Ａ１１に配置されている圧縮ファイルシステムと差し替える（Ｓ５）。そして、制御部１００は、ダウンロード領域Ａ２１に未反映のパッケージがあるか否かを判定する。
【００５０】
未反映のパッケージがある場合には、ステップＳ２へ戻り、未反映のパッケージがない場合には、アップデートモードから通常モードへ移行することによりアップデート処理を終了し、ジョブの受付等ができる通常状態として動作を継続する。
【００５１】
以上述べた通り、本実施例１によれば、低コストで迅速にネットワークアップデートを実行可能とすることにより、セキュリティの脆弱性を軽減することができる。
【００５２】
＜実施例２＞
実施例１は、ファームウェア格納領域に格納されるファームウェアが圧縮された形式のものであったが、本実施例２は、そのファームウェアが圧縮されていない形式のものである点で異なる。また、実施例１は、アップデートサーバからダウンロードされるパッケージ（ファームウェア）が圧縮された形式のものであったが、本実施例２は、そのパッケージが圧縮されていない形式のものである点で異なる。なお、本実施例２は、実施例１の変形例であり、以下で特に説明する部分を除き、実施例１と同様であるものとする。
【００５３】
［制御部１００のアップデート処理手順（図６）］
制御部１００は、ユーザインターフェースからの指示、ネットワーク経由の指示、事前のスケジュール設定による指示等により種々のタイミングでアップデートモードへ移行し、割り込み処理としてのアップデート処理を開始する。モード移行に際しては、ユーザが機器設定値の書き換えのみを行えばよい場合には、書き換えに加えて再起動処理が必要となる場合がある。
【００５４】
アップデートモードが開始されると、まず、制御部１００は、アップデートサーバ１５から更新するためのパッケージ（ファームウェア）をダウンロードし、ダウンロード領域Ａ２１に格納する（Ｓ１１）。
【００５５】
そして、制御部１００は、ダウンロードされたパッケージを参照して、アップデート処理の対象となる更新するファームウェアを選択する（Ｓ１２）。例えば、ダウンロードされたパッケージが、ファームウェアＡ及びＢである場合には、ファームウェアＡ及びＢを選択する。
【００５６】
その後、制御部１００は、画像展開領域Ａ２２の空きサイズ（空き領域）が、Ｓ１２で選択されたファームウェアのサイズよりも大きいか否かを判定する（Ｓ１３）。例えば、Ｓ１２でファームウェアＡ及びＢが選択された場合、ファームウェアのサイズは４８ＭＢ（３２ＭＢ＋１６ＭＢ）であるので、画像展開領域Ａ２２の空きサイズが４８ＭＢよりも大きいか否かを判定することとなる。
【００５７】
画像展開領域Ａ２２の空きサイズがＳ１２で選択されたファームウェアのサイズよりも大きい場合には、Ｓ１４の処理を行うことなくＳ１５へ進む。一方、画像展開領域Ａ２２の空きサイズがＳ１２で選択されたファームウェアのサイズ以下である場合には、制御部１００は、画像展開領域Ａ２２の空きサイズが少なくともＳ１２で選択されたファームウェアのサイズよりも大きくなるように、画像展開領域Ａ２２に格納されたデータを消去し（Ｓ１４）、Ｓ１５に進む。
【００５８】
なお、画像展開領域Ａ２２からデータを消去する際は、データを消去しても影響が少ないデータを優先的に消去するものとする。例えば、ファームウェアＡを実行する際にキャッシュデータとして画像展開領域Ａ２２に記憶されるデータは、優先的に消去される。
【００５９】
そして、制御部１００は、Ｓ１２で選択されたファームウェアを、バックアップのために、ファームウェア格納領域Ａ１０から画像展開領域Ａ２２へ移動させる（Ｓ１５）。
【００６０】
なお、この移動に際しては、移動中に画像形成装置１の電源が遮断される等の不具合を考慮して、一旦、画像展開領域Ａ２２へ複製を行い、複製が成功した後にファームウェア格納領域Ａ１０から複製済みのファームウェアを消去するようにしても良い。
【００６１】
そして、制御部１００は、Ｓ１１でダウンロード領域Ａ２１に格納されたパッケージ（ファームウェア）を、ファームウェア格納領域Ａ１０へ格納する（Ｓ１６）。このアップデート処理により、ファームウェア格納領域Ａ１０に格納されるファームウェアがアップデートされる。
【００６２】
そして、制御部１００は、Ｓ１６のアップデート処理が成功したか否かを判定する（Ｓ１７）。アップデート処理が成功した場合には、Ｓ１８の処理を行うことなく、Ｓ１９へ進む。一方、アップデート処理が失敗したと判定した場合には、制御部１００は、画像展開領域Ａ２２へバックアップしておいたファームウェアをファームウェア格納領域Ａ１０へ格納し（Ｓ１８）、Ｓ１９へ進む。この処理により、アップデート処理前のファームウェアが、ファームウェア格納領域Ａ１０に復元される。
【００６３】
そして、制御部１００は、画像展開領域Ａ２２へバックアップしておいたファームウェアを消去し（Ｓ１９）、図６に記載の一連の処理フローを終了させる。
【００６４】
以上述べた通り、本実施例２によれば、低コストで迅速にネットワークアップデートを実行可能とすることにより、セキュリティの脆弱性を軽減することができる。また、画像展開領域Ａ２２の空きサイズがアップデート処理の対象となるファームウェアのサイズ以下である場合であっても、画像展開領域Ａ２２に格納されたデータを消去する量を最低限とすることができる。
【００６５】
従って、画像展開領域Ａ２２に格納されたデータを用いるファームウェアを実行する際の処理速度がファームウェアのアップデート処理により低下することが無いようにすることができる。
【００６６】
＜他の実施例＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005383516.tif 000002
【図２】
0005383516.tif 000003
【図３】
0005383516.tif 000004
【図４】
0005383516.tif 000005
【図５】
0005383516.tif 000006
【図６】
0005383516.tif 000007