(57)【要約】【課題】プログラム更新中の際にも、装置を通常どおり利用することができる。【解決手段】情報処理装置であって、第１記憶領域と第２記憶領域とを含む複数の記憶領域を有し、第１記憶領域と第２記憶領域には同じプログラムが記憶され、少なくとも第１記憶領域または第２記憶領域のうちのいずれかを、起動対象の記憶領域とする記憶部と、更新プログラムを取得する取得部と、更新制御部であって、情報処理装置が第１記憶領域を起動対象として動作しているときに、第２記憶領域に記憶されているプログラムを取得部で取得した更新プログラムで更新し、情報処理装置がシャットダウンしさらに起動するときの起動対象が、更新後の第２記憶領域となるように制御する更新制御部と、を有する。【選択図】図１６
2018156638.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置であって、
第１記憶領域と第２記憶領域とを含む複数の記憶領域を有し、前記第１記憶領域と前記第２記憶領域には同じプログラムが記憶され、少なくとも前記第１記憶領域または前記第２記憶領域のうちのいずれかを、起動対象の記憶領域とする記憶部と、
更新プログラムを取得する取得部と、
更新制御部であって、
前記情報処理装置が前記第１記憶領域を起動対象として動作しているときに、前記第２記憶領域に記憶されているプログラムを前記取得部で取得した更新プログラムで更新し、
前記情報処理装置がシャットダウンしさらに起動するときの起動対象が、プログラムを更新した後の前記第２記憶領域となるように制御する更新制御部と、
を有する情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、
前記情報処理装置は、さらに、
前記情報処理装置のシャットダウンおよび起動を制御する電力状態制御部を有し、
前記更新制御部は、前記更新プログラムへの更新完了後に、前記情報処理装置の次回の起動時に起動対象となる記憶領域を示す領域特定データを書き替え、
前記電力状態制御部は、前記情報処理装置の次回の起動時に、前記書き替えられた領域特定データを参照して、起動対象となる記憶領域を特定し、前記特定された記憶領域に記憶されたプログラムを起動する、情報処理装置。
【請求項３】
請求項１に記載の情報処理装置において、
前記情報処理装置が前記第２記憶領域に記憶されている更新後のプログラムを用いて起動した後、前記更新制御部は、前記第１記憶領域に記憶された前記プログラムを更新する情報処理装置。
【請求項４】
請求項２に記載の情報処理装置において、
前記更新制御部は、前記更新プログラムへの更新が失敗した場合に、前記領域特定データを書き替えない、情報処理装置。
【請求項５】
請求項１に記載の情報処理装置において、さらに、
前記更新プログラムへの更新の結果を表示する表示部を有する、情報処理装置。
【請求項６】
請求項５に記載の情報処理装置において、
前記表示部は、前記結果が更新失敗である場合、前記情報処理装置を引き続き利用することができることを示すメッセージを表示する情報処理装置。
【請求項７】
請求項１に記載の情報処理装置であって、
前記記憶部は、さらに、他のいずれの記憶領域にも同じ情報が記憶されていない第３記憶領域を有し、
前記更新制御部は、前記第３記憶領域に記憶されている情報が更新対象に含まれる場合、前記第３記憶領域に記憶されている情報を、前記情報処理装置のシャットダウンの最中に更新する情報処理装置。
【請求項８】
請求項７に記載の情報処理装置において、
前記第３記憶領域に記憶されている情報の更新が失敗した場合、前記情報処理装置の起動の最中に、前記第３記憶領域に記憶されている情報を更新する情報処理装置。
【請求項９】
請求項１に記載の情報処理装置において、
更新対象である前記プログラムは、ハードウェアを制御する第１プログラムを実行させる第２プログラムであり、当該第２プログラムは、ユーザから指示を直接受け、当該指示に基づき前記第１プログラムを実行させ、当該第１プログラムの実行結果をユーザに通知するプログラムであり、
前記更新制御部は、前記第２記憶領域に記憶されている前記第２プログラムを、前記取得部で取得される更新プログラムで更新する、情報処理装置。
【請求項１０】
請求項１に記載の情報処理装置において、さらに、
設定データを更新する設定データ更新制御部と、
前記更新制御部によるプログラムの更新処理と、前記設定データ更新制御部による設定データの更新処理とを並列で実行させる並列実行制御部と、
を有する、情報処理装置。
【請求項１１】
請求項１０に記載の情報処理装置において、
前記並列実行制御部は、プログラムとの並列更新を許容もしくは禁止する設定データを規定している第１データを取得し、当該第１データに基づき、許容された設定データを前記プログラムと並列で更新させる、情報処理装置。
【請求項１２】
請求項１１に記載の情報処理装置において、
前記並列実行制御部は、並列更新が禁止された設定データを前記設定データ更新制御部が更新している場合、当該更新処理が終了した後に、前記更新制御部によるプログラムの更新処理を実行させる、情報処理装置。
【請求項１３】
画像形成装置であって、
第１記憶領域と第２記憶領域とを含む複数の記憶領域を有し、前記第１記憶領域と前記第２記憶領域には同じプログラムが記憶され、少なくとも前記第１記憶領域または前記第２記憶領域のうちのいずれかを、起動対象の記憶領域とする記憶部と、
更新プログラムを取得する取得部と、
更新制御部であって、
前記画像形成装置が前記第１記憶領域を起動対象として動作しているときに、前記第２記憶領域に記憶されているプログラムを前記取得部で取得した更新プログラムで更新し、
前記画像形成装置がシャットダウンしさらに起動するときの起動対象が、プログラムを更新した後の前記第２記憶領域となるように制御する更新制御部と、
を有する画像形成装置。
【請求項１４】
請求項１３に記載の画像形成装置において、
前記画像形成装置は、プリント、コピー、スキャン、ＦＡＸのうちの少なくとも１つの画像形成ジョブを行うエンジン部を備え、
前記更新制御部は、前記エンジン部の動作を伴うジョブを実行している最中に、バックグラウンドで、前記更新制御部が前記第２記憶領域に記憶されたプログラムを更新プログラムで更新する、画像形成装置。
【請求項１５】
情報処理装置において特定の機能を実行させる制御プログラムのアップデート方法であって、
前記情報処理装置は、
第１記憶領域と第２記憶領域とを含む複数の記憶領域を有し、前記第１記憶領域と前記第２記憶領域には同じプログラムが記憶され、少なくとも前記第１記憶領域または前記第２記憶領域のうちのいずれかを、起動対象の記憶領域とする記憶部を有しており、
更新プログラムを取得し、
前記情報処理装置が前記第１記憶領域を起動対象として動作しているときに、前記第２記憶領域に記憶されているプログラムを、取得した更新プログラムで更新し、
前記情報処理装置がシャットダウンしさらに起動するときの起動対象が、プログラムを更新した後の前記第２記憶領域となるように制御する、
アップデート方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、画像形成装置、アップデート方法に関する。
【背景技術】
【０００２】
画像形成装置などの装置は、不揮発性記憶装置にファームウェアと呼ばれるプログラムを導入し、これを実行して各種処理や制御を行っている。近年、ファームウェアは、不具合の修正や機能の拡張を行うことができるように、書き替えて更新することができる。
【０００３】
ファームウェアの更新には、ＳＤメモリカードやＵＳＢ（Universal Serial Bus）メモリなどの外部記憶装置から更新プログラムを取得して更新処理を実施する方法や、外部のリモートサーバから更新プログラムを受信して更新処理を実施する方法がある。
【０００４】
また従来技術には、ファームウェアを更新する際のメモリ使用量などを低減させるとともに、電源断や失敗時の復旧方法がある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来のファームウェアの更新処理では、更新処理中は装置を利用することができない。また、停電などによる電源断でファームウェアの更新が失敗した場合、当該復旧処理中も装置を利用することができない。
【０００６】
本発明は、ファームウェアの更新中でもユーザが装置を利用することができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の一態様は、情報処理装置であって、第１記憶領域と第２記憶領域とを含む複数の記憶領域を有し、第１記憶領域と第２記憶領域には同じプログラムが記憶され、少なくとも第１記憶領域または第２記憶領域のうちのいずれかを、起動対象の記憶領域とする記憶部と、更新プログラムを取得する取得部と、更新制御部であって、情報処理装置が第１記憶領域を起動対象として動作しているときに、第２記憶領域に記憶されているプログラムを取得部で取得した更新プログラムで更新し、情報処理装置がシャットダウンしさらに起動するときの起動対象が、プログラムを更新した後の第２記憶領域となるように制御する更新制御部と、を有する。
【発明の効果】
【０００８】
本発明によれば、ファームウェア更新中の際にも、装置を通常どおり利用することができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態のシステム構成および画像形成装置のハードウェア構成例を示す図である。
【図２】実施形態の画像形成装置が有する機能ブロックの一例を示す図である。
【図３】実施形態のパーティション構成例およびファームウェアの更新前後の起動パーティションを例示する図である。
【図４】ファームウェアの更新処理が失敗した場合の更新処理前後の起動パーティションを例示する図である。
【図５】実施形態の更新処理の一例を示すフローチャートである。
【図６】更新処理が正常終了したときの表示例を示す図である。
【図７】実施形態の起動時の動作例を示すフローチャートである。
【図８】実施形態のバックアップ処理を行わなかった場合の問題点を説明する図である。
【図９】単一パーティションの更新処理が正常終了しなかった場合を考慮した起動動作例を示すフローチャートである。
【図１０】更新処理が失敗した場合の動作例を示すフローチャートである。
【図１１】更新処理が失敗したときの表示例を示す図である。
【図１２】実施形態の更新処理の一例を示すシーケンス図である。
【図１３】実施形態の更新処理の一例を示すシーケンス図である。
【図１４】実施形態の更新処理の一例を示すシーケンス図である。
【図１５】実施形態の情報処理装置のハードウェア構成例を示す図である。
【図１６】実施形態の情報処理装置が有する機能ブロックの一例を示す図である。
【図１７】第２実施形態の画像形成装置が有する機能ブロックの一例を示す図である。
【図１８】第２実施形態の設定データ管理テーブルの一例を示す図である。
【図１９】第２実施形態の更新処理制御テーブルの一例を示す図である。
【図２０】第２実施形態の更新処理の一例を示すシーケンス図である。
【図２１】第２実施形態の表示画面の一例を示す図である。
【図２２】第２実施形態の表示ダイアログの一例を示す図である。
【図２３】第２実施形態の表示画面の一例を示す図である。
【図２４】第２実施形態の情報処理装置が有する機能ブロックの一例を示す図である。
【発明を実施するための形態】
【００１０】
（第１実施形態）
本実施形態の装置は、複数のパーティションに分割された記憶部を有する。また本実施形態の装置は、同じファームウェアを記憶したパーティションを二つ以上設けて多重化し、装置起動の際は、いずれか１つのパーティションで起動するように制御する。こうすることで、この起動パーティションに不具合が生じても、他のパーティションで起動させることができる。
【００１１】
またファームウェアの更新を行う際、本実施形態では、起動対象のパーティションではなく、非起動のパーティションに対し更新処理を行う。そして実施形態では、次回起動時に更新処理を行ったパーティションで起動するように、起動するパーティションを切り替える。本実施形態では、装置の運用稼働中に起動側のパーティションのファームウェアを書き替える必要がなくなり、装置を停止させることなくファームウェアの更新処理を行うことができる。また更新失敗や停電などにより電源断が生じた際には、これまで起動していたパーティションと同じパーティションで起動する。これにより、更新前の状態で、通常どおり稼働させることができる。
【００１２】
以下、主に画像形成装置を例にして、本実施形態の態様について図面を参照しつつ説明する。尚、本実施形態の態様は、後述の情報処理装置や、情報処理装置のアップデート方法にも適用可能である。
【００１３】
図１に本実施形態の画像形成装置のハードウェア構成例を示す。画像形成装置１００は、ＣＰＵ１０１（ＣＰＵ：Central Processing Unit）、ＲＯＭ１０２、ＲＡＭ１０３（ＲＡＭ：Random Access Memory）、ＨＤＤ１０４（ＨＤＤ：Hard Disk Drive）、セキュリティチップ１０５、プリントエンジン部１０６、操作部１０７、不揮発性メモリ１０８、Ｉ／Ｆ１０９（Ｉ／Ｆ：Interface）を有する。
【００１４】
ＣＰＵ１０１は、コピー機能、スキャナ機能、ファクス機能、プリンタ機能などの各種機能を実現するため、画像形成装置１００内の各ハードウェアの動作を統括的に制御する。ＣＰＵ１０１は、ＲＡＭ１０３をワークエリアとして、ＲＯＭ１０２またはＨＤＤ１０４に記憶されたファームウェアや制御プログラムを実行することで、画像形成装置１００全体の動作を制御する。
【００１５】
ＲＡＭ１０３は、ＣＰＵ１０１のワークエリアとして、データを揮発的に記憶する記憶装置である。ＲＯＭ１０２は、データを不揮発的に記憶する記憶装置であり、本実施形態では、ＮＡＮＤ型フラッシュメモリとする。ＲＯＭ１０２の記憶領域は、複数のパーティションに分割されており、本実施形態の更新処理の対象であるプログラムが記憶されている。
【００１６】
ＨＤＤ１０４は、データを不揮発的に記憶する補助記憶装置である。また、不揮発性メモリ１０８は、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）など、電源を供給しなくてもデータを記憶し続ける記憶装置である。不揮発性メモリ１０８は、例えばブートローダなど、画像形成装置１００が電源オンとなったときに実行される起動プログラムを記憶している。
【００１７】
操作部１０７は、ユーザから各種の入力を受け付けるとともに、各種の情報を表示するユーザインターフェイスである。操作部１０７は、フラット型のパネルディスプレイを表示装置とし、当該パネルディスプレイ上に積層配置したタッチパネルを入力装置として動作する。操作部１０７で表示される情報としては、例えば、受け付けたジョブの実行結果や、画像形成装置１００の動作状況を示す情報、設定状態などを示す情報などである。
【００１８】
Ｉ／Ｆ１０９は、ネットワーク１３０と接続するためのインタフェースを含む。Ｉ／Ｆ１０９は、ネットワーク１３０を介して、外部サーバ１５０などと通信することができるインタフェースであり、外部サーバ１５０から更新プログラムなどを取得する取得部である。またＩ／Ｆ１０９は、ＳＤカードと接続する端子を含み、ＳＤカードからも更新プログラムなどを取得することが可能となる。
【００１９】
プリントエンジン部１０６は、プリント、コピー、スキャン、ＦＡＸのうち少なくとも１つの画像形成ジョブを行うエンジン部である。プリントエンジン部１０６は、例えば、原稿の画像をスキャンして読み取るスキャナ、シートなどの記録媒体への画像形成を行うプロセスユニット、シートを搬送する搬送路などを有する。さらに、プリントエンジン部１０６は、画像形成後のシートを仕分けるフィニッシャや、原稿を自動給送する自動原稿給送装置を有することもできる。
【００２０】
セキュリティチップ１０５は、ＴＰＭ（Trusted Platform Module）であり、データの漏洩防止を目的としたチップである。セキュリティチップ１０５は、データを暗号化してＨＤＤ１０４やＲＯＭ１０２などに記憶する。セキュリティチップ１０５は、ＨＤＤ１０４やＲＯＭ１０２などに記憶された、暗号化されたデータを復号して利用可能にする。尚、暗号化する鍵と復号する鍵は、同じ鍵を用いてもよいし、互いに関連のある異なった鍵を用いてもよい。以降、暗号化する鍵や復号する鍵を、暗号鍵と称する。
【００２１】
図２は、本実施形態のソフトウェア構成例について説明する図である。画像形成装置１００は、ファームウェア更新制御部２０１、鍵管理制御部２０２、操作制御部２０３、電力状態制御部２０４、画像形成部２０５、記憶部２０６を有する。尚、図面ではファームウェアを「ＦＷ」と表記する。以下、各機能部の詳細を以下に記す。
【００２２】
ファームウェア更新制御部２０１は、ＲＯＭ１０２に記憶されている、ファームウェアや各種データの更新処理を行う。ファームウェア更新制御部２０１は、ＳＤカードやネットワーク１３０を経由して外部サーバ１５０からデータ受信することで、更新ファイル情報２１２、鍵情報２１３を取得し、記憶部２０６に記憶する。ファームウェア更新制御部２０１の機能を実現するプログラムは、不揮発性メモリ１０８、ＲＯＭ１０２、ＨＤＤ１０４のいずれかに記憶されているものとする。
【００２３】
鍵管理制御部２０２は、セキュリティチップ１０５を含み、取得した更新ファイル情報２１２に添付された署名情報を検証したり、データの暗号化や復号化などを行ったりする。暗号鍵など鍵管理制御部２０２で扱う制御データも、更新対象となる場合がある。
【００２４】
操作制御部２０３は、ユーザの操作を受け付ける入力部、およびユーザに通知するメッセージを表示する表示部を有する。操作制御部２０３は、図１に示す操作部１０７を含み、ユーザから入力を受け付けるとともに、各種の情報を表示する。また操作制御部２０３は、ユーザが行う操作の全般を制御する機能部でもあり、例えば、主電源をオン状態、オフ状態にする物理スイッチやタッチパネルの操作なども検知する。
【００２５】
電力状態制御部２０４は、画像形成装置１００の起動やシャットダウン、省電力モードへの移行や省電力モードからの復帰を制御する。電力状態制御部２０４は、省電力モードである場合、操作制御部２０３のパネルタッチ操作や、タイマ、ネットワーク経由の外部アクセスなどをトリガにして省電力モードから復帰させる。電力状態制御部２０４は、これら以外に、電源オンとなった際に不揮発性メモリ１０８に記憶された起動プログラムを実行し、ＲＯＭ１０２、ＨＤＤ１０４に記憶されたプログラムを起動する機能も有する。
【００２６】
画像形成部２０５は、印刷、コピー、スキャン、ファックス等、画像形成装置１００が提供する各種機能において、特にシートに画像を形成する機能を提供する機能部である。画像形成部２０５は、例えば、図１のプリントエンジン部１０６、およびＣＰＵ１０１で動作するプログラム等によって実現される。
【００２７】
記憶部２０６は、ＲＡＭ１０３、ＲＯＭ１０２、ＨＤＤ１０４の各記憶装置のいずれか、もしくは全てを含む。記憶部２０６には、ＳＤカードもしくは外部サーバ１５０から取得する更新ファイル情報２１２、鍵情報２１３を一時的に記憶する。更新ファイル情報２１２は、更新する全てのファイルの名前やパスを一覧にしたリストデータを含み、更新プログラムの本体や設定制御用のデータも含んでいる。鍵情報２１３は、鍵の更新処理に必要となるファイルをまとめたものである。ＳＤカードや外部サーバ１５０は、更新ファイル情報２１２、鍵情報２１３を圧縮した状態で提供し、ファームウェア更新制御部２０１が展開して、更新ファイル情報２１２、鍵情報２１３を記憶部２０６に記憶する。
【００２８】
本実施形態のファームウェア更新の概要について、図３を参照しつつ説明する。図３は、ＲＯＭ１０２のパーティション構成を示しており、いずれのパーティションで起動しているかも図示している。また図３の左図は、ファームウェア更新前の起動パーティションや非起動パーティションの状態を示しており、図３の右図はファームウェアが正常に更新された後の起動パーティションや非起動パーティションの状態を示している。
【００２９】
図３に示すように、本実施形態では、システム系ファームウェア、およびアプリケーション系ファームウェアの２つのファームウェアに分別され、これらが事前に導入されている。尚、図面においては、アプリケーション系ファームウェアをアプリ系ファームウェアと記している。
【００３０】
アプリケーション系ファームウェアは、システム系ファームウェアとは異なるファームウェアである。アプリケーション系ファームウェアは、コピー、スキャン、プリント、ＦＡＸ送受信などのジョブのパラメータ値や実行指示をユーザから直接受け付け、実行結果などをユーザに直接通知するファームウェアである。システム系ファームウェアは、アプリケーション系ファームウェアから指示を受けて、プリントエンジン部１０６などのハードウェアを制御するプログラムである。システム系ファームウェアは、ハードウェアの動作結果をアプリケーション系ファームウェアに戻す。
【００３１】
ＲＯＭ１０２は、６つの記憶領域に論理的に分割されている。ここではそれぞれパーティション０〜５とする。パーティション０およびパーティション１は、双方同じシステム系ファームウェアを記憶するためのパーティションである。画像形成装置１００は、いずれか一方のパーティションに記憶されているファームウェアで起動し、他方のパーティションに記憶されているファームウェアを使用しない。パーティション０およびパーティション１は、このような動作となるように二重化されている。以降、必要に応じて、起動している側のパーティションを起動パーティションと称し、起動の際に使用しなかったパーティションを非起動パーティションと称する。
【００３２】
パーティション２およびパーティション３は、双方同じアプリケーション系ファームウェアを記憶するためのパーティションである。パーティション２およびパーティション３も、一方が起動パーティションとなり、他方は非起動パーティションとなるように二重化されている。
【００３３】
パーティション４はデータを記憶するパーティションであり、ユーザ所有のデータやソフトウェアが動作するための一時ファイルなどが記憶される領域である。パーティション５は、暗号規格、鍵長を定義した設定ファイルや暗号鍵など、セキュリティチップ１０５が処理するにあたり必要となる情報が記憶される。パーティション４、パーティション５は、本実施形態では二重化されていないパーティションである。このように二重化されていないパーティションを、必要に応じて単一パーティションと称する。
【００３４】
尚、パーティション０およびパーティション２を、第１記憶領域とし、パーティション１およびパーティション３を、第２記憶領域とする。またパーティション４、５の単一パーティションをそれぞれ第３記憶領域とする。またシステム系ファームウェアを第１プログラムとし、アプリケーション系ファームウェアを第２プログラムとする。
【００３５】
図３の左図の状態の場合、システム系ファームウェアはパーティション０で起動し、アプリケーション系ファームウェアはパーティション２で起動している。パーティション１、３は非起動パーティションである。ファームウェア更新制御部２０１は更新処理を行う場合、非起動パーティションに対し更新処理を行う。すなわち、ファームウェア更新制御部２０１は、システム系ファームウェアを更新する場合は、非起動のパーティション１に書き込み、アプリケーション系ファームウェアを更新する場合は、非起動のパーティション３に書き込んで、更新処理を行う。更新処理が正常に完了した場合、ファームウェア更新制御部２０１は、画像形成装置１００の再起動の際に、更新を行ったパーティションのファームウェアで起動するように制御する。尚、ユーザが操作することによって画像形成装置１００が再起動するものとするが、例えば深夜などの時間帯を指定して、指定時間に自動で再起動してもよい。
【００３６】
電源オンとなった際には、上記のおとり、電力状態制御部２０４がブートローダなどの起動プログラムを用いて起動処理を行う。電力状態制御部２０４は、いずれのパーティションで起動するかを、所定の記憶領域に書き込まれた、起動の設定を示すデータを参照して決定する。ファームウェア更新制御部２０１は、更新処理が成功した場合、この所定の記憶領域に記憶された、設定データを書き替えて、更新後のパーティションで起動するよう制御する。以降、この設定データの書き替え処理をスイッチ処理と称し、書き替え対象の設定データを切り替えデータ（領域特定データ）と称する。
【００３７】
切り替えデータには、起動するファームウェアが記憶されているアドレスやファイル名、パーティションの識別情報など、起動するファームウェアを特定することができるデータを含んでいる。また切り替えデータには、パーティション０とパーティション１とを切り替えるためのデータと、パーティション２とパーティション３とを切り替えるためのデータとの２つのデータがある。
【００３８】
ファームウェア更新制御部２０１は、これまではパーティション０およびパーティション２で起動していた状態を、スイッチ処理を行うことで、図３の右図に示すように、パーティション１、パーティション３で起動するように切り替える。また、例えば非起動パーティション１のみを更新し、非起動パーティション３については更新しなかった場合、ファームウェア更新制御部２０１は、パーティション０、１の切り替えデータのみをスイッチ処理してもよい。
【００３９】
ファームウェア更新制御部２０１は、更新処理の最後にスイッチ処理を行うものとし、更新処理が正常に終了した場合にのみスイッチ処理を行う。すなわち、更新処理が異常終了した場合、スイッチ処理までたどり着かず、切り替えデータは書き替わらない。
【００４０】
ファームウェア更新制御部２０１は、バックグラウンドで更新処理を行う。すなわち、プリンタ・スキャナ・ＦＡＸ・コピーを含む画像形成動作であるジョブを実行している最中やユーザがジョブパラメータの設定を行っている最中、省電力化モード中、スタンバイ中などのいずれの状態であっても、ファームウェア更新制御部２０１は、これらの状態を維持したまま、バックグラウンドで更新処理を行う。
【００４１】
また、単一パーティションであるパーティション４やパーティション５は、画像形成装置１００のシャットダウンの動作内で行う。暗号鍵のデータは、ネットワーク通信時のセキュリティ検証などでも利用されるケースがある。そのため、バックグラウンドで暗号鍵のデータを変更すると、フォアグラウンドでの動作に支障が出る可能性がある。そこで、ファームウェア更新制御部２０１は、フォアグラウンドの動作を終了するシャットダウンのタイミングで、暗号鍵などのデータを更新し、次回起動時に更新済みの状態で起動する。
【００４２】
停電などで正常にシャットダウン処理が行われず、パーティション４やパーティション５についての更新処理が実施されなかった場合、ファームウェア更新制御部２０１は、次回起動時にこれらのパーティションについての更新処理を行う。
【００４３】
図３に示すように、本実施形態では、起動パーティションや非起動パーティションのマウントパスは、起動パーティション、非起動パーティションでそれぞれ同じパスが割り当てられるようにする。図３の場合、起動パーティションのパスを、更新前後ともに/flash/P0、P2、P4、P5とする。また非起動パーティションのパスを/flash/P1、P3とする。こうすることで、ＲＯＭ１０２内のデータを参照しているモジュールがある場合、常に同じマウントパスを参照すればよいことになる。尚、ファームウェア更新制御部２０１は、非起動パーティションのパスである/flash/P1、P3にアクセスすることで、更新処理を行う。この実装により、動作しているアプリケーションへの影響は限定的となる。
【００４４】
図４は、ファームウェアの更新に失敗した場合の、起動パーティション、非起動パーティションの状態を示した図である。バックグラウンドの更新処理中に停電などが発生して電源断となった場合や、デバイス不良等による書込み失敗となった場合、更新処理は正常終了しない。正常終了しなかった場合、上記のとおり、スイッチ処理までたどり着かないため、スイッチ処理が行われずに起動パーティションの切り替えが発生しない。よって、次回起動時、画像形成装置１００は前回の起動パーティションと同じパーティションで問題なく起動することができる。
【００４５】
図５は、更新処理の動作例を示すフローチャートである。ファームウェア更新制御部２０１は、ＳＤカードや外部サーバ１５０から更新用データを受信した場合、またはユーザから更新指示を受け付けた場合（Ｓ５０１）、今現在いずれのパーティションで起動しているかの情報を取得する（Ｓ５０２）。ファームウェア更新制御部２０１は、上記の切り替えデータを参照することで、いずれのパーティションで起動しているかの情報を取得する。次いでファームウェア更新制御部２０１は、鍵領域などの単一パーティションが更新対象となっているかを判定する（Ｓ５０３）。これは、例えば更新ファイル情報２１２に含まれる、更新対象のファイルのパス名などを参照することで判定することができる。
【００４６】
単一パーティションが更新対象となっていない場合（Ｓ５０３：Ｎｏ）、ファームウェア更新制御部２０１は、非起動パーティションに対して更新処理を行う（Ｓ５０４）。尚、本実施形態では、非起動パーティション内の全てのデータを書き替えて更新するのではなく、更新が必要なファイルのみを書き替える。例えばスキャン用ファームウェアが更新対象となっており、その他のファームウェアは更新対象となっていない場合、スキャン用ファームウェアに関するファイルのみが書き替わる。
【００４７】
更新完了後、ファームウェア更新制御部２０１はスイッチ処理を行い（Ｓ５０５）、次回起動の際の起動パーティションを切り替える。ファームウェア更新制御部２０１は、操作制御部２０３を動作させて、ファームウェアのアップデートが終了したこと、および再起動の操作によって更新後のファームウェアで起動する旨を通知する（Ｓ５０６）。このときの操作制御部２０３の表示例を図６に示す。ユーザは、図６に示すダイアログを確認し、確認ボタンが押下されると、通常のメニュー画面などに戻る。このメニュー画面内の規定の表示領域に、図６に示すメッセージを小さく表示してもよい。
【００４８】
更新対象のデータに、二重化でない単一パーティションのデータが含まれる場合（Ｓ５０３：Ｙｅｓ）、ファームウェア更新制御部２０１は、二重化されたパーティションの非起動パーティションのみを、バックグラウンドで更新する（Ｓ５１１）。そしてファームウェア更新制御部２０１は、パーティション４、５の単一パーティションの更新データはＨＤＤ１０４に一時保存しておく（Ｓ５１２）。バックグラウンドでの更新が完了した後、ファームウェア更新制御部２０１はスイッチ処理して（Ｓ５１３）、次回起動するパーティションを切り替える。ファームウェア更新制御部２０１は、操作制御部２０３を動作させて、ファームウェアのアップデートが終了したこと、および再起動の操作によって更新後のファームウェアで起動する旨を通知する（Ｓ５１４）。このとき、シャットダウン中に引き続きアップデートの処理を継続することをユーザに通知してもよい。
【００４９】
ユーザの操作によりシャットダウンが開始されると、ファームウェア更新制御部２０１は、二重化していない単一パーティション４、５に対して更新処理を行う（Ｓ５１５）。このシャットダウン時の更新処理が正常に終了したら、ファームウェア更新制御部２０１は、ＨＤＤ１０４に一時保存していた更新データを削除する（Ｓ５１６）。
【００５０】
図７は、画像形成装置１００が起動するときの動作例を示したフローチャートである。電源オンになると、電力状態制御部２０４は、画像形成装置１００の起動処理を行う（Ｓ７０１）。Ｓ７０１では、電力状態制御部２０４は、切り替え用データで示されるパーティションで起動する。
【００５１】
起動処理が完了すると、ファームウェア更新制御部２０１は、前回の運用稼働中にファームウェアの更新を実施したかを判定する（Ｓ７０２）。二重化しているパーティションについての更新ファイル情報２１２が現存している場合、ファームウェア更新制御部２０１は、前回の起動運用中に更新処理を実施したと判定する。またファームウェア更新制御部２０１は、更新ファイル情報２１２が無い場合、実施していないと判定する。
【００５２】
前回の運用稼働中にファームウェアの更新を実施した場合（Ｓ７０２：Ｙｅｓ）、ファームウェア更新制御部２０１は、今回非起動となったファームウェアに対し、更新ファイル情報２１２のファイルで更新してバックアップ処理を行う（Ｓ７０３）。または、ファームウェア更新制御部２０１は、今回非起動となったファームウェアに対し、今回起動となった更新ファームウェアのファイルを上書きコピーしてバックアップ処理を行ってもよい。これらのいずれかを行うことで、今回非起動のパーティションのファームウェアのバージョンと、今回起動のパーティションのファームウェアのバージョンとが一致し、いずれのパーティションも最新の状態となる。このバックアップ処理が終了すると、二重化されたパーティションを対象とした更新ファイル情報２１２を削除する（Ｓ７０４）。
【００５３】
ここで、Ｓ７０３のバックアップ処理の必要性について、図８を用いて説明する。ここでは、アプリケーション系ファームウェアを更新する場合について言及し、スキャンアプリケーション、ＦＡＸアプリケーションの２つを例にして説明する。尚、システム系ファームウェアでも同様である。
【００５４】
まずは、バックアップ処理を実行しない場合について、図８上段を参照して説明する。まず図８上段の左図に示すように、スキャンアプリケーションのバージョンがｖ１．１、ＦＡＸアプリケーションのバージョンがｖ１．１であるとする。
【００５５】
本実施形態では、上記のとおり必要なファームウェアのみ更新する動作となっており、スキャンアプリケーションとＦＡＸアプリケーションとを、それぞれ個別に更新することができる。ここで例えば、ファームウェア更新制御部２０１が非起動のパーティション３のＦＡＸアプリケーションのバージョンをｖ１．２に更新し、再起動を行うと、図８上段の中央図の状態となる。すなわち、ｖ１．２にバージョンアップした、パーティション３のＦＡＸアプリケーションが起動する。一方、非起動のパーティション２のＦＡＸアプリケーションは、ｖ１．１のままとなっている。
【００５６】
この図８上段の中央図の状態で運用稼働し、次に非起動パーティション２に対してスキャンアプリケーションのバージョンをｖ１．１からｖ１．２に更新する処理を行い、再起動すると、図８上段の右図の状態となる。すなわち、ＦＡＸアプリケーションのバージョンが元のｖ１．１に戻った状態で起動されてしまう。このように、当初起動状態であったパーティションが、第１のファームウェアの更新処理により非起動状態となり、次いで他の第２のファームウェアの更新処理によって起動状態になると、第１のファームウェアは、更新前のバージョンに戻った状態で起動する。これは、二重化している各パーティションで、新旧のファームウェアが混在してしまい、最新のファームウェアを保つことができないことに起因する。
【００５７】
これを回避するため、本実施形態では、起動パーティション内のファームウェアと非起動パーティション内のファームウェアのバージョンを揃えるよう、バックアップを行う。この場合の例を図８下段に示す。
【００５８】
図８下段の左図の状態は、図８上段の左図と同じであり、スキャンアプリケーション、ＦＡＸアプリケーションのバージョンのバージョンは、それぞれｖ１．１である。ここでファームウェア更新制御部２０１が更新処理を行い、非起動のパーティション３のＦＡＸアプリケーションのバージョンをｖ１．２に更新して再起動を行う。ファームウェア更新制御部２０１は、再起動後に、今回非起動となったパーティション２のＦＡＸアプリケーションも、ｖ１．２となるようにバックアップをとる。この状態が図８下段の中央図である。すなわち、ファームウェア更新制御部２０１は、起動しているパーティションのファームウェアと、非起動のパーティションのファームウェアとのバージョンを、常に同じとなるようにする。
【００５９】
図８下段の中央図の状態で、次に非起動のパーティション２のスキャンアプリケーションをｖ１．２に更新して再起動し、バックアップ処理を行うと、図８下段の右図の状態となる。ＦＡＸアプリケーションは、先の図８下段の左図の状態から図８下段の中央図の状態までの間にバックアップ処理をしたことから、バージョンダウンが発生せずにｖ１．２を維持して、パーティション２にて起動状態となる。またスキャンアプリケーションのバージョンも、バックアップ処理により、起動パーティション、非起動パーティションのいずれでもｖ１．２となる。このように、バックアップ処理を行うことで、起動状態、非起動状態が繰り返されてもファームウェアのバージョンを両パーティションで最新のものに維持することができる。尚、バージョンの整合性を図るため、バックアップ処理が完了するまでは次回のファームウェア更新は受け付けない、とする実装でもよい。
【００６０】
図９は、起動時の動作を示すフローチャートであり、シャットダウンの処理が停電などの理由で正常に行われず、単一パーティション４、５の更新が正常に行われなかった場合を考慮した動作例を示している。
【００６１】
画像形成装置１００の電源がオン状態になると（Ｓ９０１）、ファームウェア更新制御部２０１は、前回の運用稼働中の際に、ファームウェアの更新処理を実施したかを判定する（Ｓ９０２）。更新処理を実施しなかった場合（Ｓ９０２：Ｎｏ）、電力状態制御部２０４は、そのまま起動を行って（Ｓ９０３）、終了となる。
【００６２】
一方、前回の運用稼働中にファームウェアの更新処理を実施した場合（Ｓ９０２：Ｙｅｓ）、ファームウェア更新制御部２０１は、単一パーティション４、５の更新が未完了であるかを判定する（Ｓ９０４）。単一パーティション４、５の更新が正常終了すると、図５のＳ５１６で説明した通り、単一パーティション４、５に関する更新ファイル情報２１２は削除される。このことから、ファームウェア更新制御部２０１は、パーティション４、５に関する更新ファイル情報２１２が残っているか否かにより、更新処理が未完了であるかを判定することができる。
【００６３】
単一パーティション４、５についての更新処理が完了している場合（Ｓ９０４：Ｎｏ）、電力状態制御部２０４は、起動処理を行う（Ｓ９０５）。ここでは、今まで非起動であったパーティションから起動される。そしてファームウェア更新制御部２０１は、上記のバックアップ処理を行う（Ｓ９０６）。
【００６４】
単一パーティション４、５についての更新処理が未完了である場合（Ｓ９０４：Ｙｅｓ）、ファームウェア更新制御部２０１は、単一パーティション４、５についての更新処理をこの段階で行う（Ｓ９０７）。更新処理が完了すると、電力状態制御部２０４は、起動処理を行う（Ｓ９０８）。尚、Ｓ９０８の起動も、今まで非起動であったパーティションから起動される。またファームウェア更新制御部２０１は、残っている更新ファイル情報２１２を削除して（Ｓ９０９）、バックアップ処理を行う（Ｓ９１０）。
【００６５】
図１０は、更新処理が失敗したときの動作例を示すフローチャートである。図５と同様に、更新指示を受け付けると（Ｓ１００１）、ファームウェア更新制御部２０１は起動パーティションを取得し（Ｓ１００２）、その後非起動パーティションを更新する（Ｓ１００３）。
【００６６】
この更新処理中、更新が失敗したり、停電などで電源断が発生したりする場合（Ｓ１００４）、電源をオフ状態からオン状態にして再起動しても（Ｓ１００５）、前と同じファームウェアで起動される（Ｓ１００６）。これは、スイッチ処理が発生しなかったため、電力状態制御部２０４が前回と同じパーティションで起動処理を行ったからである。
【００６７】
ファームウェア更新制御部２０１は、操作制御部２０３を動作させて、更新処理が正常終了しなかったことを通知するため、更新失敗ダイアログを表示する（Ｓ１００７）。尚、ファームウェア更新制御部２０１は、更新処理を行う直前にフラグファイルを出力し、更新が正常に完了すると当該フラグファイルを削除する、などの動作を加えることで、このフラグファイルの有無により正常終了したか失敗したか判定することができる。
【００６８】
図１１に、Ｓ１００７で表示されるダイアログの一例を示す。本実施形態では、更新が失敗したこと、および引き続き装置を利用することができる旨のメッセージが表示される。図１１に示す確認ボタンが押下されると（Ｓ１００８）、今までとおり、同じファームウェアで利用可能となる（Ｓ１００９）。また、更新操作を改めて行うことで、同様のファームウェア更新処理を行うことができる。尚、図１１に示す確認ボタンが押下されると、通常のメニュー画面などに戻るが、このメニュー画面内の規定の領域に、図１１に示すメッセージを小さく表示してもよい。
【００６９】
図１２、図１３は、更新処理の動作を示すシーケンス図である。ユーザがファームウェアを記憶したＳＤカードを挿入し（Ｓ１２００）、操作制御部２０３がこれを検知すると（Ｓ１２０１）、ファームウェア更新制御部２０１は、ＳＤカードから更新用のデータを取得する。当該更新用データは圧縮ファイルであるため、ファームウェア更新制御部２０１は、このファイルを展開して（Ｓ１２０２）、記憶部２０６に記憶する（Ｓ１２０３）。展開先は、ＨＤＤ１０４などが該当する。これにより、更新ファイル情報２１２、鍵情報２１３が取得される。
【００７０】
ファームウェア更新制御部２０１は、ファームウェアの更新を行うことを、電力状態制御部２０４、画像形成部２０５に通知する（Ｓ１２０４、Ｓ１２０５）。従来は、この動作によりジョブの実行や省電力モードへの移行などを行わないように制限していたが、本実施形態では、バックグラウンドで更新処理を行うため、何も制限せずに通知のみが行われるものとする。
【００７１】
ファームウェア更新制御部２０１は、更新ファイル情報２１２、鍵情報２１３の検証を行う（Ｓ１２０６）。ここでは、ファームウェア更新制御部２０１は、鍵管理制御部２０２を動作させて署名を検証して更新用データが正規のものかを検証するとともに、機種情報、仕向け情報、接続機器情報の確認を行う。
【００７２】
ファームウェア更新制御部２０１は、上記の切り替えデータを参照して、現在起動しているパーティションの識別情報などを取得することで、非起動パーティションを決定する（Ｓ１２０７）。ファームウェア更新制御部２０１は、非起動パーティションに対し、更新ファイル情報２１２に基づき更新処理を行う（Ｓ１２０８）。
【００７３】
更新処理が終了したら、ファームウェア更新制御部２０１は、次いで正常に書き込まれたかの検証を行う（Ｓ１２０９）。この検証結果が適合である場合、ファームウェア更新制御部２０１は、次回起動時には現在の非起動パーティションで起動するように、スイッチ処理を行う（Ｓ１２１０）。
【００７４】
上記のＳ１２００〜Ｓ１２０２の処理は、ユーザの操作や、更新用ファイルを取得したことをトリガにして行われるが、Ｓ１２０３〜Ｓ１２１０の処理は、ユーザの操作や機器状態、ジョブの実行に影響を与えることなく、バックグラウンドで行われる。
【００７５】
次いで、画像形成装置１００のシャットダウン動作について説明する。操作制御部２０３は、ユーザによる主電源キーの操作を検知して、電力状態制御部２０４に電源オフの信号を出力する（Ｓ１２２１、Ｓ１２２２）。電力状態制御部２０４は、シャットダウンの開始をファームウェア更新制御部２０１に通知する（Ｓ１２２３）。ファームウェア更新制御部２０１は、データ領域のパーティション４、および鍵領域のパーティション５に対して、更新処理を行う（Ｓ１２２４）。この処理は、鍵情報２１３が存在するなど、当該領域が更新対象である場合に行われる。
【００７６】
更新処理の後、電力状態制御部２０４は、操作制御部２０３、画像形成部２０５、記憶部２０６、ファームウェア更新制御部２０１、鍵管理制御部２０２に対してシャットダウン処理を実行する（Ｓ１２２５〜Ｓ１２２９）。そして電力状態制御部２０４は、自らもシャットダウンする（Ｓ１２３０）。これにより、画像形成装置１００は正常終了し、電源オフの状態となる。
【００７７】
図１３は、画像形成装置１００の起動時の動作を示すシーケンス図である。操作制御部２０３は、ユーザによる主電源キーの操作を検知して、電力状態制御部２０４に電源オンの信号を出力する（Ｓ１３０１、Ｓ１３０２）。電力状態制御部２０４は、起動開始の通知をファームウェア更新制御部２０１に通知する（Ｓ１３０３）。ファームウェア更新制御部２０１は、鍵情報２１３の有無や単一パーティション４、５に関する更新ファイル情報２１２の有無などを判定することで、シャットダウン時の更新が正常に終了したかを判定する。ここで、正常に終了していない場合、データ領域のパーティション４、および鍵領域のパーティション５に対する更新処理を行う（Ｓ１３０４）。
【００７８】
ファームウェア更新制御部２０１から完了通知を受けた電力状態制御部２０４は、切り替えデータを参照して、起動パーティションを決定し（Ｓ１３０５）、当該パーティションで起動処理を実行する（Ｓ１３０６、Ｓ１３０７）。電力状態制御部２０４は、正常起動したことをファームウェア更新制御部２０１に通知する（Ｓ１３０８）。この通知を受信したファームウェア更新制御部２０１は、バックアップ処理を行い、現在の起動パーティションと非起動パーティションとでのファームウェアのバージョンを最新のものにそろえる（Ｓ１３０９）。
【００７９】
図１４は、更新用データの取得先を外部サーバ１５０とした場合の更新処理を示す図である。更新用データがある場合、外部サーバ１５０は画像形成装置１００に当該更新用データを送信する（Ｓ１４０１）。尚、本実施形態では、データを送信する側である外部サーバ１５０が、能動的にデータを送信するプッシュ型のデータ配信方法を採用する。尚、ファイアウォールによる通信制限が設けられている場合や、ＮＡＴ（Network Address Translation）が設けられているネットワーク環境などでは、プッシュ型のデータ送信が機能しない場合もある。このような場合は、画像形成装置１００側が能動的にデータを取りに行くプル型でもよい。
【００８０】
以降のＳ１２０２からＳ１２１０までの処理は、図１２に示すＳ１２０２からＳ１２１０までの処理と同様である。更新処理が完了すると、ファームウェア更新制御部２０１は、更新完了通知を外部サーバ１５０に送信する（Ｓ１４０２）。更新完了通知を受信した外部サーバ１５０は、ログ出力や管理データの書き替えを行う（Ｓ１４０３）。尚、Ｓ１４０２、Ｓ１４０３は、画像形成装置１００の次回起動時でもよい。
【００８１】
本実施形態の画像形成装置は、ＲＯＭ内のファームウェアを二重化することで、装置の動作を止めることなく、バックグラウンドで非起動パーティションに対して更新を行うことができる。また、本実施形態の画像形成装置は、更新処理が正常終了した後にスイッチ処理を行う。よって、更新処理に失敗した場合や、更新処理中に停電等で電源断となった場合は、スイッチ処理が行われないため、再起動後でもこれまでと同じパーティションで起動される。これにより、更新前の状態で正常に起動される。
【００８２】
オフィスなどで使用する画像形成装置は、多数のユーザが使用する装置であるため、更新処理で運用が停止すると、その分影響も大きい。本実施形態のように、停止させることなくバックグラウンドで更新処理を行うことで、可用性に優れ、且つ、容易に保守を行うことができる。
【００８３】
上記実施形態では、単一パーティションについては、シャットダウン時、起動時に更新するものとしたが、画像形成装置１００の非使用時であればよい。尚、シャットダウン時や起動時は、画像形成装置１００の非使用時の一つの態様である。また、単一パーティションの更新処理は、再起動しても更新データが残るように、ＨＤＤ１０４などの不揮発性記憶装置に更新データを一時記憶することについても言及した。
【００８４】
また、一定時間経過後に自動で更新を行い再起動する実装を、ファームウェア更新制御部２０１に付加してもよい。また、一定時間経過後に自動で更新を行い再起動することを、例えば外部サーバ１５０に確認する実装を、ファームウェア更新制御部２０１に付加してもよい。さらに、外部サーバ１５０からの指示またはユーザの操作によって、当該更新の時間を変更することも可能とする実装を、ファームウェア更新制御部２０１に付加してもよい。
【００８５】
上記では、パーティションを二重化する実装例について言及したが、二以上の多重化であれば、上記実施形態を実現することができる。また、１つの記憶装置に対して複数のパーティションを設けてもよいし、複数の記憶装置に対して複数のパーティションを設けてもよい。また、パーティションで分割する構成とはせず、１つの記憶装置を複数有した構成としても、記憶領域自体は複数となる。この構成でも、上記の実施形態を実現することも可能である。また、本実施形態では、「二重化」や「多重化」と表記したが、例えば「二面化」や「多面化」、「二つの領域」や「複数の記憶領域」などと表記してもよい。
【００８６】
尚、記憶部は、単数のハードウェア（ＲＯＭやＨＤＤ）であっても、複数のハードウェア（ＲＯＭやＨＤＤ）から成ってもよい。
【００８７】
本実施形態の上記態様を、汎用コンピュータなどの情報処理装置にも適用させることができる。図１５を用いて説明すると、情報処理装置１５００は、ＣＰＵ１５０１、ＲＯＭ１５０２、ＲＡＭ１５０３、ＨＤＤ１５０４、セキュリティチップ１５０５、操作部１５０７、不揮発性メモリ１５０８、Ｉ／Ｆ１５０９を有する。図１５に示す各ハードウェアは、図１に示すハードウェアと同様である。また図１６は、情報処理装置１５００の機能ブロックである。情報処理装置１５００は、ファームウェア更新制御部１６０１、鍵管理制御部１６０２、操作制御部１６０３、電力状態制御部１６０４、記憶部１６０６を有する。記憶部１６０６には、更新ファイル情報１６１２、鍵情報１６１３が記憶されている。これら各機能ブロックやデータは、いずれも図２に示すものと同様の機能を有し、上記と同様の動作を行うことができる。図１５、図１６に示す情報処理装置１５００は、図３に示すパーティション構成を有しており、上記と同じように、バックグラウンドで更新処理やスイッチ処理、メッセージ表示などを行うことができる。
【００８８】
以上に詳説したように、パーティションを多重化し、非起動側のパーティションに対してバックグラウンドでファームウェアの更新を行うことで、ファームウェア更新中も機器を通常どおり利用することができる。
【００８９】
（第２実施形態）
上記の第１実施形態や従来技術では、画像形成装置のファームウェアを最新のものに更新する際や、画像形成装置をリプレースする際、まずはファームウェアを更新し、その後に設定値やユーザデータなどの各種データ（以下、設定データもしくは単に設定値と称する）の更新処理を行う。すなわち、ファームウェアの更新と設定データの更新とを、それぞれ個別に実行しているため、時間がかかるという問題がある。
【００９０】
第２実施形態では、ファームウェアの更新と設定データの更新とを並列で実施することで、更新時間を削減する実装例について説明する。尚、第２実施形態では、主に画像形成装置の新旧交換（リプレース）に伴うデータ移行を想定して説明するが、画像形成装置の新規導入の際や、既設の画像形成装置のファームウェアや設定データの更新の際にも適用される。
【００９１】
図１７は、第２実施形態におけるソフトウェア構成例について説明する図であり、上記第１実施形態と同様の部位については、第１実施形態と同様の符号を付している。またハードウェア構成については、第１実施形態と同様である（図１参照）。第２実施形態における画像形成装置１００は、第１実施形態に加え、設定データ更新制御部１７０１、並列実行制御部１７０２を有し、記憶部２０６には、設定データ管理テーブル１７１０、更新処理制御テーブル１７１１、設定データ１７１２が記憶される。
【００９２】
設定データ更新制御部１７０１は、設定データを更新する機能部である。設定データ更新制御部１７０１は、ファームウェアの更新と同期をとるため、各フェーズで並列実行制御部１７０２に実行可否を問い合わせ、実行可である場合に更新処理を進める。
【００９３】
並列実行制御部１７０２は、ファームウェアの更新と設定データの更新とを並列で実行するように制御する。例えばスキャナ用のファームウェアと、ハードウェア全般に関係する設定データとを同時に更新すると、状況によってはデータの不整合などが生じるおそれがあるが、スキャナ用のファームウェアと、スキャナとは関連の無い操作画面の設定データとを同時に更新しても、問題は生じない。このように、並列で更新することができる組み合わせと、できない組み合わせが存在する。並列実行制御部１７０２は、効率的に処理を進められるように、ファームウェアおよび設定データの両方の更新処理の同期を取りながら、並列で実行するよう制御する。この制御は、記憶部２０６に記憶されている設定データ管理テーブル１７１０、更新処理制御テーブル１７１１に基づき行われる。
【００９４】
設定データ管理テーブル１７１０、更新処理制御テーブル１７１１は、更新処理の際に並列実行制御部１７０２により参照されるテーブルであり、詳細については後述する。設定データ１７１２は、更新ファイル情報２１２、鍵情報２１３とともに、ＳＤカードや外部サーバ１５０（図１参照）から提供され、一時的に記憶部２０６に記憶される。設定データ１７１２は、設定データの本体と、更新する全ての設定ファイルの名前やパスを一覧にしたリストデータとを含んでいる。尚、第１実施形態においては、更新ファイル情報２１２に制御データなどの設定データを含むものとしたが、第２実施形態では、別途設定データ１７１２として提供される。
【００９５】
また第２実施形態におけるファームウェア更新制御部２０１は、並列実行制御部１７０２との間で連携しながら動作する。
【００９６】
第２実施形態においては、ファームウェアや設定データを、その種類に応じて、エンジン、コントローラ、操作部の３つに区分し、各区分ごとにフェーズ分けして更新処理を行う。ここで、エンジン、コントローラ、操作部について説明する。エンジンは、プロッタ、スキャナ、フィニッシャなどのハードウェア機器を直接的にソフトウェア制御するドライバソフトウェア群であり、第１実施形態におけるシステム系ファームウェアに相当する。コントローラは、画像形成装置１００のコピー機能やプリンタ機能などを実現するソフトウェア群であり、第１実施形態におけるアプリケーション系ファームウェアに相当する。また操作部は、画面表示や操作に関する制御を担うソフトウェア群であり、例えばＷｅｂベースで表示制御が行われる場合、操作部はＷｅｂサーバプログラムおよびブラウザプログラムに相当する。
【００９７】
エンジンの設定データとしては、例えばシート搬送速度やトナーの出力量、シートをスキャンする際のスキャナの移動速度、本体からフィニッシャにシートを搬送する際のタイミング値などを挙げることができる。コントローラの設定データとしては、コピーやプリンタ処理を行う際のデフォルト値（白黒／カラーの別、シートサイズや拡大／縮小率、解像度など）、画像をシート上に形成する際に行われる各画像処理用の設定値などである。操作部の設定データとしては、操作制御部２０３により表示されるボタン用画像データ（アイコン）、入力欄やボタンの表示サイズ、配置関係を示すデータなどである。ここで示したものはあくまで例示であり、エンジン、コントローラ、操作部は、これら以外にも様々な設定データを用いて処理を行う。
【００９８】
図１８は、設定データ管理テーブル１７１０の一例を示す図である。図１８においては、説明上、「エンジン」、「なし」などの文字列を記しているが、事前に割り振られた数値データやコードなどがテーブル内に格納されてもよい。
【００９９】
設定データ管理テーブル１７１０は、更新する各設定データを管理するためのテーブルである。設定データ管理テーブル１７１０は、各設定データの識別番号（図中の設定値番号）、設定値格納先（具体的にはディレクトリやフォルダの名前）、当該設定データを利用するデバイスを対応付けて記憶する。並列実行制御部１７０２は、設定データの格納先や利用デバイスの動作、変更可能設定値（後述の図１９）が重ならないように、更新処理を実行させる。すなわち、設定データ管理テーブル１７１０は、当該設定データの更新時に何に影響するのかを管理しているテーブルとなる。
【０１００】
例えば、上から２段目のレコード（設定値番号：ＳＰ１−１８０−０２０）は、当該設定データがエンジン用の格納フォルダに記憶され、且つ、スキャナに影響を与える設定データであることを規定している。このレコードに関する設定データの更新処理が行われる場合、並列実行制御部１７０２は、エンジン用のフォルダに格納されるファームウェアの更新処理を禁止するとともに、スキャナの使用を不可とするように制御する。ユーザは、当該設定データを更新している最中において、スキャナを使用するスキャン処理やコピー処理、ＦＡＸ送信処理を行うことができない。一方、スキャナの動作を伴わない、ネットワーク経由で印刷データを取得するプリンタ処理については、実行させることができる。
【０１０１】
このほかの例として、上から５段目のレコード（設定値番号：ＳＰ５−５５２−７８５）は、コントローラ用として割り振られた格納先に記憶され、影響を与える機器が無い設定データを規定している。このレコードの場合、並列実行制御部１７０２が当該設定データを更新している最中でも、ユーザはコピー処理やプリンタ処理、スキャナ処理などを行うことができる。
【０１０２】
図１９は、更新処理制御テーブル１７１１の一例を示す図である。図１９においても、説明上、各項目値として文字列を記しているが、事前に割り振られた数値データやコードなどが格納されてもよい。
【０１０３】
更新処理制御テーブル１７１１は、ファームウェア更新時に、許容する動作や禁止する動作をファームウェア毎に規定しているテーブルである。更新処理制御テーブル１７１１は、ファームウェア毎に、その名称（図中の更新対象ＦＷ）、格納先デバイス、変更可能設定値、更新中パネル操作の可否、更新中に動作可能なデバイスを対応付けて記憶する。
【０１０４】
変更可能設定値は、当該更新プログラムとの並列更新を許容もしくは禁止する設定データを規定しているデータ（第１データ）である。例えば上から１段目の「コントローラシステム」のファームウェアを更新する場合、全ての設定データと並列で更新することができる。一方、上から８段目の「操作部システム」のファームウェアを更新する場合、操作部の設定データと並列で更新することができない。また「操作部システム」のファームウェアを更新する場合、再起動が必要となることも規定されている。
【０１０５】
更新中パネル操作は、一時的もしくは更新中全期間で操作制御部２０３を利用することができるか否かを規定している。パネル操作不可のファームウェアを更新する場合、ユーザはパネル操作を行うことができない。同様に、更新中動作可能デバイスで許容されていないデバイスを使用する操作も、更新処理中は行うことができない。例えば、図１９の例において、下から３段目の「プロッタ」のファームウェアを更新している場合、パネル操作は可能だが、プロッタとスキャナの利用は不可となる。この場合、ユーザはコピーの設定操作までを行うことができるが、コピーの実行はできない。
【０１０６】
図２０は、第２実施形態での動作例を示すシーケンス図である。ここでは、コントローラ、操作部、エンジンの順でファームウェアが更新され、エンジン、操作部、コントローラの順で設定データが更新されるものとする。設定データに関しては、アドレス帳などの移行も最後に行われるものとして説明する。またここでは、説明を簡略にするため、コントローラとしては、図１９に示す「コントローラシステム」、操作部としては「操作部システム」、エンジンとしては「プロッタ」の３つのファームウェアを更新対象とする。
【０１０７】
また図２０に示す処理が実行される前に、操作制御部２０３は、図２１に示す画面を表示する。図２１の画面例は、設定データの更新のみ行うのか、ファームウェアの更新のみを行うのか、もしくは両方を実施するのかをユーザに選択させるための画面である。ここで、両方実施を示すボタン２１０１が押下されると、図２０に示す処理が実行される。
【０１０８】
設定データ更新制御部１７０１は、並列実行制御部１７０２にエンジン設定データの更新可否を問い合わせる電文を出力し（Ｓ２００１）、これとともに、エンジンの設定データを記憶部２０６から取得する（Ｓ２００２）。
【０１０９】
エンジン設定データの更新可否の問合せ電文を入力した並列実行制御部１７０２は、ファームウェア更新制御部２０１が今現在でいずれのファームウェアに対して更新を行っているかを判定する。並列実行制御部１７０２は、ファームウェア更新制御部２０１が今現在更新しているファームウェアの名称（図１９の更新対象ＦＷの項目）、設定データ更新制御部１７０１が今現在更新している設定データの識別情報（図１８の設定値番号）を、リアルタイムに記憶している。並列実行制御部１７０２は、この記憶内容と、図１９に示す変更可能設定値とに基づき、判定動作を行う。尚、ステップＳ２００１の時点では、ファームウェア更新制御部２０１は更新処理を行っていないため、並列実行制御部１７０２は、更新許可の電文を設定データ更新制御部１７０１に出力する（Ｓ２００３）。
【０１１０】
更新許可の電文を入力した設定データ更新制御部１７０１は、エンジン設定データの更新処理を開始する（Ｓ２００４）。設定データ更新制御部１７０１がエンジン設定データの更新処理を行っている最中に、並列実行制御部１７０２は、コントローラのファームウェアの更新を行うように、ファームウェア更新制御部２０１に指示電文を出力する（Ｓ２００５）。ファームウェア更新制御部２０１は、この指示電文を入力すると、コントローラのファームウェアの更新処理を開始する（Ｓ２００６）。
【０１１１】
設定データ更新制御部１７０１は、エンジン設定データの更新処理が完了すると、完了通知を並列実行制御部１７０２に出力し（Ｓ２００７）、次いで操作部設定データの更新に進む。設定データ更新制御部１７０１は、更新用の操作部設定データを記憶部２０６から取得し（Ｓ２００８）、更新可否を問い合わせる電文を、並列実行制御部１７０２に出力する（Ｓ２００９）。
【０１１２】
並列実行制御部１７０２は、更新処理制御テーブル１７１１の変更可能設定値を取得し、現在行われているコントローラのファームウェア更新と、操作部設定データの更新とが並列実行可能であるかを判定する。当該ファームウェア（コンローラシステム）の変更可能設定値は、図１９の例によると「全て可」となっていることから、並列実行制御部１７０２は、更新許可の電文を設定データ更新制御部１７０１に出力する（Ｓ２０１０）。これにより設定データ更新制御部１７０１は、操作部設定データの更新処理を開始する（Ｓ２０１１）。
【０１１３】
操作部設定データの更新処理の最中に、ファームウェア更新制御部２０１は、スイッチ処理（第１実施形態参照）を行うなどの必要な処理を行う（Ｓ２０１２）。そしてファームウェア更新制御部２０１は、処理が完了した場合に、コントローラのファームウェア更新完了通知を並列実行制御部１７０２に出力する（Ｓ２０１３）。
【０１１４】
並列実行制御部１７０２は、引き続き操作部のファームウェア更新を行うにあたり、まずは更新処理制御テーブル１７１１の変更可能設定値を取得し、参照する。今現在、操作部設定データの更新処理（Ｓ２０１１）が行われており、また更新予定のファームウェア（操作システム）の変更可能設定値には、操作部設定データとの並列処理を禁止する値が設定されている。よって並列実行制御部１７０２は、今現在実行されている操作部設定データの更新処理が完了するまで待機する（Ｓ２０１４）。
【０１１５】
そして並列実行制御部１７０２は、操作部設定データの更新完了通知を設定データ更新制御部１７０１から入力すると（Ｓ２０１５）、操作部のファームウェア更新開始指示の電文をファームウェア更新制御部２０１に出力する（Ｓ２０１６）。ファームウェア更新制御部２０１は、この電文を入力すると、操作部の更新処理を開始する（Ｓ２０１７）。
【０１１６】
一方、設定データ更新制御部１７０１は、引き続きコントローラ用設定データの更新処理を行う。設定データ更新制御部１７０１は、記憶部２０６からコントローラの設定データを取得し（Ｓ２０１８）、更新処理の問い合わせ電文を並列実行制御部１７０２に出力する（Ｓ２０１９）。コントローラ用設定データの更新と、現在実行されている操作部（操作部システム）のファームウェア更新とは、図１９の変更可能設定値によると並列実行可能となっている。よって並列実行制御部１７０２は、更新許可の電文を出力する（Ｓ２０２０）。この電文を入力した設定データ更新制御部１７０１は、コントローラ用設定データの更新処理を開始する（Ｓ２０２１）。
【０１１７】
ファームウェア更新制御部２０１は、操作部のファームウェア更新処理が完了すると、完了通知を並列実行制御部１７０２に出力する（Ｓ２０２２）。並列実行制御部１７０２は、引き続きエンジンのファームウェア更新を行うにあたり、更新処理制御テーブル１７１１の変更可能設定値を参照する。今現在、コントローラ用設定データの更新処理（Ｓ２０２１）が行われており、また変更可能設定値には、エンジン（プロッタ）のファームウェア更新とコントローラ用設定データのインポート処理とは、並列して実行可能と規定されている。よって並列実行制御部１７０２は、エンジンのファームウェア更新指示をファームウェア更新制御部２０１に対して行う（Ｓ２０２３）。ファームウェア更新制御部２０１は、この指示に従い、エンジンのファームウェアの更新処理を開始する（Ｓ２０２４）。
【０１１８】
ファームウェア更新制御部２０１がエンジンのファームウェアの更新処理を行っている最中に、設定データ更新制御部１７０１は、コントローラ用設定データの更新処理の完了通知を出力する（Ｓ２０２５）。そして設定データ更新制御部１７０１は、アドレス帳のインポート処理の可否確認を並列実行制御部１７０２に出力し（Ｓ２０２６）、アドレス帳のデータを記憶部２０６から取得する（Ｓ２０２７）。更新処理制御テーブル１７１１には、アドレス帳に関する許可／禁止の設定は設けられていない。よって並列実行制御部１７０２は、許可通知を返信し（Ｓ２０２８）、この許可通知を入力した設定データ更新制御部１７０１は、アドレス帳の更新処理を開始する（２０２９）。
【０１１９】
アドレス帳の更新処理の最中に、並列実行制御部１７０２は、ファームウェア更新制御部２０１からエンジンのファームウェア更新の完了通知を入力する（Ｓ２０３０）。並列実行制御部１７０２は、ファームウェアに関しては全ての更新処理が完了したため、全更新処理の完了通知を設定データ更新制御部１７０１に出力する（Ｓ２０３１）。
【０１２０】
設定データ更新制御部１７０１は、アドレス帳のインポート処理を完了すると、完了通知を並列実行制御部１７０２に出力し（Ｓ２０３２）、再起動の可否確認の電文を出力する（Ｓ２０３３）。並列実行制御部１７０２は、全てのファームウェア更新が完了しているため、再起動許可通知を出力する（Ｓ２０３４）。この許可通知を入力した設定データ更新制御部１７０１は、再起動処理を行う（Ｓ２０３５）。尚、ここでは設定データ更新制御部１７０１が再起動処理を行うものとしているが、第１実施形態と同様に、電力状態制御部２０４が再起動処理を行ってもよい。
【０１２１】
尚、設定データ更新処理およびファームウェア更新処理の各処理の途中で、主電源キーが押下された場合、設定データ更新制御部１７０１は、並列実行制御部１７０２の指示に従い、一連の更新処理を全て終えてから再起動処理を行う。また、停電などで意図せず電源が切れた場合は、次回起動時の最初に残りの処理が行われる。
【０１２２】
図２２は、図２０に示す更新処理を行っている最中に操作制御部２０３により表示されるダイアログの遷移例を示す図である。操作制御部２０３は、メニュー画面内の規定の領域に、このダイアログを小さく表示する。並列実行制御部１７０２は、設定データ更新制御部１７０１から設定データの更新完了通知を入力するごとに、またファームウェア更新制御部２０１からファームウェアの更新完了通知を入力するごとに、表示内容を遷移させる。ユーザは、このダイアログを確認することで、現状の更新処理の進捗状況を把握することができる。
【０１２３】
また図２３は、ファームウェア更新、および設定データの更新処理のいずれか一方が終了した場合に、他方を待つかをユーザに確認するための画面表示例である。待つ場合は、引き続き更新処理が続行され、待たない場合は中途段階でも処理は停止され、処理前のデータに戻してから再起動の動作となる。尚、第１実施形態の態様のとおりパーティションが二重化されている場合、ファームウェアの切り替え設定を元に戻すだけでよい。
【０１２４】
また図２３の例のように、残り時間の目安を表示することで、ユーザは、このまま継続するか否かの判断を容易に行うことができる。
【０１２５】
上記第２実施形態では、画像形成装置の更新について言及したが、第２実施形態の上記態様を、図１５示す情報処理装置１５００にも適用させることができる。図２４は、第２実施形態における情報処理装置１５００の機能ブロックである。第２実施形態の情報処理装置１５００は、上記第１実施形態の情報処理装置１５００に加え、設定データ更新制御部２４０１、並列実行制御部２４０２を有する。また記憶部１６０６には、さらに、設定データ管理テーブル２４１０、更新処理制御テーブル２４１１、設定データ２４１２が記憶されている。これら各機能ブロックやデータは、いずれも図１７に示すものと同様の機能を有し、上記と同様の動作を行うことができる。
【０１２６】
上記の説明では、第１実施形態で説明した起動パーティションや非起動パーティションの二重化領域に関してはあまり言及していないが、更新用ファームウェアとともに、設定データが二重化領域に記憶される実装でもよい。また、二重化されていない単一パーティションに設定データが記憶され、更新されてもよい。尚、第１実施形態では、単一パーティションに対し更新処理を行う場合は画像形成装置１００のシャットダウンの動作内で行うものとしたが、第２実施形態では、上記のとおりファームウェアの更新と並列に行われる。このように、第１実施形態の態様と第２実施形態の態様を組み合わせてもよい。
【０１２７】
第２実施形態の態様を適用することで、設定データの更新とファームウェアの更新とを並列で実施することが可能となり、更新時間を削減することができる。
【符号の説明】
【０１２８】
１００    ：画像形成装置
１５００  ：情報処理装置
１０１、１５０１  ：ＣＰＵ
１０２、１５０２  ：ＲＯＭ
１０３、１５０３  ：ＲＡＭ
１０４、１５０４  ：ＨＤＤ
１０５、１５０５  ：セキュリティチップ
１０６    ：プリントエンジン部
１０７、１５０７  ：操作部
１０８、１５０８  ：不揮発性メモリ
１０９、１５０９  ：Ｉ／Ｆ
１３０    ：ネットワーク
１５０    ：外部サーバ
２０１、１６０１  ：ファームウェア更新制御部
２０２、１６０２  ：鍵管理制御部
２０３、１６０３  ：操作制御部
２０４、１６０４  ：電力状態制御部
２０５    ：画像形成部
２０６、１６０６  ：記憶部
２１２、１６１２  ：更新ファイル情報
２１３、１６１３  ：鍵情報
１７０１、２４０１  ：設定データ更新制御部
１７０２、２４０２  ：並列実行制御部
１７１０、２４１０  ：設定データ管理テーブル
１７１１、２４１１  ：更新処理制御テーブル
１７１２、２４１２  ：設定データ
【先行技術文献】
【特許文献】
【０１２９】
【特許文献１】特開２０１３−１０９４５０号公報
【特許文献２】特開２００８−２８４７１１号公報
【図１】
2018156638.tif 000003
【図２】
2018156638.tif 000004
【図３】
2018156638.tif 000005
【図４】
2018156638.tif 000006
【図５】
2018156638.tif 000007
【図６】
2018156638.tif 000008
【図７】
2018156638.tif 000009
【図８】
2018156638.tif 000010
【図９】
2018156638.tif 000011
【図１０】
2018156638.tif 000012
【図１１】
2018156638.tif 000013
【図１２】
2018156638.tif 000014
【図１３】
2018156638.tif 000015
【図１４】
2018156638.tif 000016
【図１５】
2018156638.tif 000017
【図１６】
2018156638.tif 000018
【図１７】
2018156638.tif 000019
【図１８】
2018156638.tif 000020
【図１９】
2018156638.tif 000021
【図２０】
2018156638.tif 000022
【図２１】
2018156638.tif 000023
【図２２】
2018156638.tif 000024
【図２３】
2018156638.tif 000025
【図２４】
2018156638.tif 000026