(57)【要約】【課題】どのタイミングでアップデートが異常終了してもアップデートを完了できるようにしつつ、バックアップ情報を減らし、不揮発性メモリーの容量を削減する。【解決手段】画像処理装置は第１ソフトウェアを記憶する第１領域と第２ソフトウェアを記憶する第２領域を含む不揮発性メモリー、不揮発メモリーを制御する制御回路、アップデート用情報を得るデータ入力部を備える。第１ソフトウェアは、アップデートに用いられる。第２ソフトウェアは、アップデートに用いられない。アップデートの開始条件が満たされたとき、制御回路は、第２領域に第１ソフトウェアを上書きし、第２領域を新たな第１領域にする。その後、制御回路は、古い方の第１領域に第２ソフトウェアを上書きし、古い方の第１領域を新たな第２領域にする。【選択図】図３
2018092417.tif 000002
【特許請求の範囲】
【請求項１】
パーティションにより複数の領域が設けられ、前記領域のうちの１つであり予め定められた第１ソフトウェアを記憶する第１領域と、前記領域のうちの１つであり予め定められた第２ソフトウェアを記憶する第２領域を含む不揮発性メモリーと、
前記不揮発メモリーを制御する制御回路と、
前記不揮発性メモリーのアップデート用情報を得るデータ入力部と、
を備え、
前記第１ソフトウェアは、前記不揮発性メモリーのアップデートに用いられ、
前記第２ソフトウェアは、前記不揮発性メモリーのアップデートに用いられず、
予め定められたアップデートの開始条件が満たされたとき、
前記データ入力部が得た前記アップデート用情報に基づき、前記制御回路は、前記第２領域に前記第１ソフトウェアを上書きし、前記第２領域を新たな前記第１領域にする第１上書き処理を前記不揮発性メモリーに行わせ、
前記第１上書き処理の完了後、
前記データ入力部が得た前記アップデート用情報に基づき、前記制御回路は、古い方の前記第１領域に前記第２ソフトウェアを上書きし、古い方の前記第１領域を新たな前記第２領域にする第２上書き処理を前記不揮発性メモリーに行わせることを特徴とする画像処理装置。
【請求項２】
前記第２上書き処理が完了した場合、
前記制御回路は、新たな前記第１領域と新たな前記第２領域において、起動時のマウント順をアップデート前とアップデート後で逆にすることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第１領域のサイズと前記第２領域のサイズは、同じであることを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記第１ソフトウェアのサイズと前記第２ソフトウェアのサイズは同じである、又は、サイズ差の絶対値が許容値以下であることを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記第１領域はルートファイルシステムが設けられるルートディスク領域であり、
前記第２領域は、印刷ジョブを実行するためのファームウェアが記憶されるアプリ領域であることを特徴とする請求項１乃至４の何れか１項に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリーのアップデートを行える画像処理装置に関する。
【背景技術】
【０００２】
機器や装置に不揮発性メモリーを搭載することがある。不揮発性メモリーには、ソフトウェアなどが記憶される。機器や装置は、不揮発性メモリーのソフトウェア等に基づき動作する。機能追加や安定性向上のため、不揮発性メモリー内のソフトウェアをアップデート（更新）することがある。
【０００３】
特許文献１には、不揮発性メモリーの更新に関する技術が記載されている。具体的に、特許文献１には、回復用プログラム及び更新用プログラムを受信し、プログラムを記憶し、更新用プログラムによってソフトウェア更新を実行し、回復用プログラム及び更新用プログラムを受信した場合、回復用プログラムを所定領域に書き込むと共に所定領域以外の領域に更新用プログラムを書き込み、更新用プログラムの書込みが成功した場合、所定領域に更新用プログラムを上書きし、更新用プログラムの書込みが失敗した場合、所定領域に書き込んだ回復用プログラムを実行する放送受信装置が記載されている。この構成により、プログラム更新失敗対策のために不揮発性メモリーを複数個、あるいはプログラムサイズの複数倍のサイズを持たせる必要をなくそうとする（特許文献１：請求項１、段落［００１４］）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−０９２３２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
複合機、プリンター、複写機、ファクシミリ装置のような画像処理装置（画像形成装置）にも、不揮発性メモリーが搭載される。不揮発性メモリーの記憶内容は、ソフトウェア、プログラム、データ、ファイル等である。画像処理装置では、不揮発性メモリーのソフトウェア等をアップデート（書き換え）することがある。しかし、アップデート中に、電力供給が停止される（電源が落ちる）ことがある。電力供給の停止の原因には、停電、電源コードの抜け落ちなどがある。
【０００６】
電力供給が停止された場合、アップデートは強制的に終了される（異常終了）。アップデートは失敗に終わる。異常終了したとき、ソフトウェアの更新が不十分のまま終わる。その結果、起動やアップデートに用いる重要なソフトウェアやデータの一部が破損する場合がある。この場合、異常終了後の画像処理装置の起動中や、アップデートのやり直し中に画像処理装置が停止する。このように、異常終了した場合、画像処理装置を使うことができなくなり得る。
【０００７】
そこで、アップデートに用いるソフトウェアの全てのコピー（バックアップ情報）を不揮発性メモリーに記憶させることがある。異常終了しても、バックアップ情報を用いて、画像処理装置の起動やアップデートのやり直しを行える。最終的には、アップデートを完了させることができる。
【０００８】
バックアップ情報を記憶させる場合、アップデートに用いるソフトウェアやデータの全てを不揮発性メモリーに２つ記憶させることになる。不揮発メモリーには、全バックアップ情報を格納できる空き容量を確保しておく必要がある。近年、アップデートに用いるソフトウェアやデータのサイズは大きくなりつつある。つまり、バックアップ情報のサイズが大きくなる場合がある。確保すべき空き容量が大きいので、大容量の不揮発性メモリーを採用しているという問題がある。
【０００９】
ここで、特許文献１記載の技術は、更新用プログラムの書込みが成功した場合、所定領域に更新用プログラムを上書きする。回復用プログラムに更新プログラムを上書きしているタイミングで電力供給が停止した場合、放送受信装置の起動やアップデートのやり直しを行えなくなる場合があり得る。なお、どのようなプログラムを回復用プログラムに上書きするかの記載は特許文献１にはない。
【００１０】
上記問題点を鑑み、本発明は、どのタイミングでアップデートが異常終了してもアップデートを完了できるようにしつつ、バックアップ情報を減らし、不揮発性メモリーの容量を削減する。
【課題を解決するための手段】
【００１１】
上記目的を達成するために請求項１に係る画像処理装置は、不揮発性メモリー、制御回路、データ入力部を備える。前記不揮発性メモリーは、パーティションにより複数の領域が設けられる。また、前記不揮発性メモリーは、前記領域のうちの１つであり予め定められた第１ソフトウェアを記憶する第１領域と、前記領域のうちの１つであり予め定められた第２ソフトウェアを記憶する第２領域を含む。前記制御回路は、前記不揮発メモリーを制御する。前記データ入力部は、前記不揮発性メモリーのアップデート用情報を得る。前記第１ソフトウェアは、前記不揮発性メモリーのアップデートに用いられる。前記第２ソフトウェアは、前記不揮発性メモリーのアップデートに用いられない。予め定められたアップデートの開始条件が満たされたとき、前記データ入力部が得た前記アップデート用情報に基づき、前記制御回路は、前記第２領域に前記第１ソフトウェアを上書きし、前記第２領域を新たな前記第１領域にする第１上書き処理を前記不揮発性メモリーに行わせる。前記第１上書き処理の完了後、前記データ入力部が得た前記アップデート用情報に基づき、前記制御回路は、古い方の前記第１領域に前記第２ソフトウェアを上書きし、古い方の前記第１領域を新たな前記第２領域にする第２上書き処理を前記不揮発性メモリーに行わせる。
【発明の効果】
【００１２】
本発明によれば、第１領域の第１ソフトウェアをバックアップしないので（バックアップ情報を減らせるので）、不揮発性メモリーの容量を削減することができる。また、破損のない第１ソフトウェアが常に確保される。そのため、どのタイミングでアップデートが異常終了しても、アップデートを完了することができる。
【図面の簡単な説明】
【００１３】
【図１】実施形態に係る複合機の一例を示す図である。
【図２】実施形態に係る半導体不揮発性メモリーの一例を示す図である。
【図３】実施形態に係る半導体不揮発性メモリーのアップデートの流れの一例を示すフローチャートである。
【図４】実施形態に係る半導体不揮発性メモリーのアップデート準備段階の一例を示す図である。
【図５】実施形態に係る半導体不揮発性メモリーのアップデート中の１回目の再起動段階の一例を示す図である。
【図６】実施形態に係る半導体不揮発性メモリーの第１領域のアップデートの一例を示す図である。
【図７】実施形態に係る半導体不揮発性メモリーの第２領域のアップデートの一例を示す図である。
【図８】実施形態に係る半導体不揮発性メモリーのアップデート完了後の通常起動時の一例を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態を図１〜図８を用いて説明する。画像処理装置１として複合機２を例に挙げて説明する。但し、以下に記載する構成、配置等の各要素は、発明の範囲を限定するものではなく単なる説明例にすぎない。
【００１５】
（画像形成装置の概要）
まず、図１を用いて、実施形態に係る複合機２の概要を説明する。図１は、実施形態に係る複合機２の一例を示す図である。
【００１６】
複合機２は、制御部３を含む。制御部３は基板である。制御部３は複合機２の各部を制御する。制御部３は、制御回路４、半導体不揮発性メモリー５（不揮発性メモリーに相当）、ＲＡＭ３１（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、画像処理部３２を含む。制御回路４はＣＰＵである。制御回路４は処理、制御、演算を行う。制御回路４は複合機２の各部の制御を行う。
【００１７】
例えば、半導体不揮発性メモリー５は、ＮＡＮＤ型のフラッシュＲＯＭである。他のタイプのフラッシュＲＯＭでもよい。制御回路４は各種演算や処理を行う。半導体不揮発性メモリー５、ＲＡＭ３１は制御に関するデータ、ソフトウェア（プログラム）を記憶する。制御回路４は、ソフトウェア、データに基づき、半導体不揮発性メモリー５の読み書きや消去を制御する。画像処理部３２は画像データに対し画像処理を行って印刷ジョブや送信ジョブに用いる画像データを生成する。このように、複合機２は画像処理を行い、ジョブを実行する画像処理装置１である。
【００１８】
複合機２はＨＤＤ３３（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）を含む。ＨＤＤ３３は大容量の記憶装置である。ＨＤＤ３３は制御部３と通信可能に接続される。制御回路４は、半導体不揮発性メモリー５やＨＤＤ３３に記憶されたソフトウェアや制御用データに基づき、演算や処理を行う。
【００１９】
複合機２は、原稿搬送部６ａと画像読取部６ｂを含む。制御部３は、セットされた原稿を原稿搬送部６ａに搬送させる。原稿搬送部６ａは、原稿を１枚ずつ読み取り位置（送り読取用コンタクトガラス、不図示）に向けて搬送する。制御部３は原稿を画像読取部６ｂに読み取らせる。画像読取部６ｂは搬送原稿や、載置読取用コンタクトガラス（不図示）にセットされた原稿を読み取る。画像読取部６ｂは画像データを生成する。
【００２０】
複合機２は、操作パネル７を含む。操作パネル７は、表示パネル７１、タッチパネル７２、ハードキー７３を含む。表示パネル７１は、印刷やスキャンに関する設定画面や各種メッセージを表示する。タッチパネル７２は表示パネル７１に対して設けられる。ハードキー７３はスタートキーのような操作用のキーである。操作パネル７は、使用者による設定を受け付ける。制御部３は、操作パネル７で設定された内容を認識する。
【００２１】
複合機２は印刷部８を含む。印刷部８は、給紙部８ａ、用紙搬送部８ｂ、画像形成部８ｃ、定着部８ｄを含む。印刷時、制御部３は、給紙部８ａに用紙を供給させる。制御部３は用紙を用紙搬送部８ｂに搬送させる。制御部３は、画像データに基づきトナー像を画像形成部８ｃに形成させる。制御部３は搬送される用紙へのトナー像の転写を画像形成部８ｃに行わせる。制御部３は、トナー像が転写された用紙を定着部８ｄに加熱・加圧させる。これにより、用紙にトナー像が定着する。定着後の用紙は機外に排出される。
【００２２】
複合機２は通信部９１を含む。制御部３は通信部９１と接続される。通信部９１は、通信用のコネクターや通信制御用のチップを含む。通信部９１は、ネットワーク４００を介し、コンピューター２００やＦＡＸ装置３００と通信を行う。コンピューター２００は、ＰＣやサーバーである。通信部９１は印刷用データ（画像データや印刷設定）を受信する。画像処理部３２は、印刷用データに対して画像処理を行う。制御部３は処理後の画像データに基づき、印刷部８に印刷を行わせる（プリンター機能）。また、画像処理部３２は、送信する画像データを生成する。通信部９１は、生成された画像データをコンピューター２００やＦＡＸ装置３００に送信する（送信機能）。
【００２３】
複合機２は接続Ｉ／Ｆ回路９２（インターフェイス回路）を含む。制御部３は接続Ｉ／Ｆ回路９２と接続される。接続Ｉ／Ｆ回路９２は、携帯型メモリー５００とデータをやりとりするための回路である。接続Ｉ／Ｆ回路９２は、コネクター（ソケット）、通信制御回路、メモリーを含む。携帯型メモリー５００は、例えば、ＵＳＢメモリーや、メモリーカードである。制御部３は、接続Ｉ／Ｆ回路９２を介して、接続された携帯型メモリー５００からデータを読み出す。また、制御部３は、接続Ｉ／Ｆ回路９２を介して、接続された携帯型メモリー５００にデータを書き込む。
【００２４】
（半導体不揮発性メモリー５）
次に、図２に基づき、本発明の実施形態に係る半導体不揮発性メモリー５の一例を説明する。図２は、実施形態に係る半導体不揮発性メモリー５の一例を示す図である。
【００２５】
画像処理装置１（複合機２）は、制御回路４（ＣＰＵ）、半導体不揮発性メモリー５、ＲＡＭ３１を含む。制御回路４は、半導体不揮発性メモリー５からの読み出しを制御する。制御回路４は、半導体不揮発性メモリー５への書き込みを制御する。
【００２６】
半導体不揮発性メモリー５の記憶領域は、複数の領域（パーティション）に予め分割される。各領域のサイズは、予め定められる。図２では、半導体不揮発性メモリー５は、ブート領域Ｐ１、カーネル領域Ｐ２、デバイスツリー領域Ｐ３、第１領域５１、第２領域５２を含む。
【００２７】
ブート領域Ｐ１には、ブート（起動）用のデータ、ソフトウェア（プログラム）、ファイルが記憶される。例えば、ブート領域Ｐ１には、ブートローダーが記憶される。カーネル領域Ｐ２には、カーネルの構築に必要なデータ、ソフトウェア（プログラム）、ファイルが記憶される。例えば、カーネル領域Ｐ２には、カーネルイメージや、カーネルを構築するためのソフトウェア、データ、ファイルが記憶される。
【００２８】
デバイスツリー領域Ｐ３には、複合機２の各ハードウェアの情報（デバイス情報ｉ１）が記憶される。例えば、デバイスは、半導体不揮発性メモリー５、ＲＡＭ３１、複合機２の機内で用いられる通信バス、通信部９１、接続Ｉ／Ｆ回路９２である。デバイスツリー領域Ｐ３には、これらの各デバイスの情報が記憶される。制御回路４は、デバイスツリー領域Ｐ３のデバイス情報ｉ１を用いて各デバイスのドライバーを設定する。
【００２９】
また、パーティションとして、第１領域５１と第２領域５２が設けられる。第１領域５１は予め定められた第１ソフトウェアＳＷ１を記憶する。第１領域５１には、第１ソフトウェアＳＷ１以外の情報を記憶させてもよい。例えば、複合機１００の状態情報や各ソフトウェアのバージョン情報を記憶させてもよい。
【００３０】
第１ソフトウェアＳＷ１は、複数のソフトウェアを含んでもよい。第１ソフトウェアＳＷ１は、必要なプログラムを含む。また、第１ソフトウェアＳＷ１は、関係するデータ、ファイルを含んでもよい。第１ソフトウェアＳＷ１の一部又は全部は、ＲＡＭ３１に読み出される。第１ソフトウェアＳＷ１は制御回路４に処理を行わせる。第１ソフトウェアＳＷ１は、第１ソフトウェアＳＷ１に対応する機能を実現させる一群の情報（第１領域５１の記憶内容）である。
【００３１】
第２領域５２は予め定められた第２ソフトウェアＳＷ２を記憶する。第２領域５２にも、第２ソフトウェアＳＷ１以外の情報を記憶させてもよい。第２ソフトウェアＳＷ２は、複数のソフトウェアを含んでもよい。第２ソフトウェアＳＷ２は、必要なプログラムを含む。また、第２ソフトウェアＳＷ２は、関係するデータ、ファイルを含んでもよい。第２ソフトウェアＳＷ２の一部又は全部は、ＲＡＭ３１に読み出される。第２ソフトウェアＳＷ２は制御回路４に処理を行わせる。第２ソフトウェアＳＷ２は、第２ソフトウェアＳＷ２に対応する機能を実現させる一群の情報（第２領域５２の記憶内容）である。
【００３２】
第１領域５１はルートディスク領域である。言い換えると、第１領域５１は、ルートファイルシステムＦＳ１（ルートディレクトリ）が設けられるパーティションである。第１ソフトウェアＳＷ１は、ルートファイルシステムＦＳ１に関するソフトウェアを含む。また、例えば、第１領域５１（第１ソフトウェアＳＷ１）には、各種コマンドファイルを含めることができる。
【００３３】
例えば、第２領域５２（第２ソフトウェアＳＷ２）は、印刷ジョブを実行するためのファームウェア（印刷用ファームウェアＦＷ１）や、原稿読み取りジョブを実行するためのファームウェア（スキャン用ファームウェアＦＷ２）を含む。これらのファームウェアは、第２ソフトウェアＳＷ２に含まれる。そのため、ジョブに用いるファームウェアを第２ソフトウェアＳＷ２に含めることができる。なお、第２ソフトウェアＳＷ２に含めるファームウェアは、印刷用、スキャン用に限られない。例えば、表示パネル７１の表示制御やタッチパネル７２の制御に関する操作パネル７用のファームウェアを含めてもよい。
【００３４】
第１ソフトウェアＳＷ１は半導体不揮発性メモリー５のアップデート（更新）に用いられる。第２ソフトウェアＳＷ２は、半導体不揮発性メモリー５のアップデートに用いられない。なお、第１ソフトウェアＳＷ１（第１領域５１）に半導体不揮発性メモリー５のアップデートに用いないソフトウェアを含めてもよい。
【００３５】
アップデート用情報Ｕ１（図１、図６参照）は、不揮発性メモリーの各領域を更新するためのデータ、ファイルである。アップデート用情報Ｕ１は、画像処理装置１（複合機２）のデータ入力部に入力される。通信部９１や接続Ｉ／Ｆ回路９２をデータ入力部として用いることができる。アップデートのとき、制御回路４は、各領域のソフトウェアを取得されたアップデート用情報Ｕ１に書き換えさせる。なお、アップデートのとき、制御回路４は、ソフトウェア以外の情報を書き換えてもよい。
【００３６】
通信部９１を用いる場合、制御回路４は、アップデート用情報Ｕ１をコンピューター２００（サーバー）から通信部９１にダウンロードさせる。接続Ｉ／Ｆ回路９２を用いる場合、制御回路４は、接続Ｉ／Ｆ回路９２に接続された携帯型メモリー５００（ＵＳＢメモリー）に記憶されたアップデート用情報Ｕ１を読み出す。
【００３７】
通信部９１用の通信ソフトウェアや、接続Ｉ／Ｆ回路９２用の通信ソフトウェアが無ければ、半導体不揮発性メモリー５のアップデートを行うことができない。通信部９１用の通信ソフトウェアを第１ソフトウェアＳＷ１として第１領域５１に含めることができる。例えば、第１領域５１は、通信部９１の制御用ファームウェアを第１ソフトウェアＳＷ１として記憶する。また、接続Ｉ／Ｆ回路９２用の通信ソフトウェアを第１ソフトウェアＳＷ１として第１領域５１に含めることができる。例えば、第１領域５１は、接続Ｉ／Ｆ回路９２の制御用ファームウェアを第１ソフトウェアＳＷ１として記憶する。
【００３８】
一方、第２ソフトウェアＳＷ２には、半導体不揮発性メモリー５のアップデートに用いるソフトウェアが含まれない。アップデートには必要がないソフトウェアの一部が第２ソフトウェアＳＷ２とされる。
【００３９】
画像処理装置１では、第１領域５１のサイズと第２領域５２のサイズは、同じとされる。完全に同じで無くてもよい。所定範囲内のサイズ差があってもよい。第１領域５１と第２領域５２の各サイズは、第１ソフトウェアＳＷ１のサイズよりも大きい。第１領域５１と第２領域５２の各サイズは、第２ソフトウェアＳＷ２のサイズよりも大きい。
【００４０】
また、できるだけ無駄な空き領域が少なくなるように、第１ソフトウェアＳＷ１のサイズと第２ソフトウェアＳＷ２のサイズは、同じとされる。あるいは、サイズの差の絶対値は予め定められた許容値以下とされる。例えば、許容値は、第１ソフトウェアＳＷ１と第１ソフトウェアＳＷ２に含まれるソフトウェアのうち、最大又は最小のサイズとできる。
【００４１】
さらに、第１領域５１のサイズと第１ソフトウェアＳＷ１のサイズとの差の絶対値である第１絶対値、第１領域５１のサイズと第２ソフトウェアＳＷ２のサイズとの差の絶対値である第２絶対値、第２領域５２のサイズと第１ソフトウェアＳＷ１のサイズとの差の絶対値である第３絶対値、第２領域５２のサイズと第２ソフトウェアＳＷ２のサイズとの差の絶対値である第４絶対値の何れもが許容値以下となるようにしてもよい。つまり、各絶対値が許容値以下となるように、第１領域５１、第２領域５２、第１ソフトウェアＳＷ１のサイズ、第２ソフトウェアＳＷ２のサイズは設定（調整）されてもよい。
【００４２】
（半導体不揮発性メモリー５のアップデート）
次に、図３〜図８を用いて、実施形態に係る半導体不揮発性メモリー５のアップデートの流れの一例を説明する。図３は、実施形態に係る半導体不揮発性メモリー５のアップデートの流れの一例を示すフローチャートである。図４は、実施形態に係る半導体不揮発性メモリー５のアップデート準備段階の一例を示す図である。図５は、実施形態に係る半導体不揮発性メモリー５のアップデート中の１回目の再起動段階の一例を示す図である。図６は、実施形態に係る半導体不揮発性メモリー５の第１領域５１のアップデートの一例を示す図である。図７は、実施形態に係る半導体不揮発性メモリー５の第２領域５２のアップデートの一例を示す図である。図８は、実施形態に係る半導体不揮発性メモリー５のアップデート完了後の通常起動時の一例を示す図である。
【００４３】
図４〜図８において、２点鎖線矢印は、半導体不揮発性メモリー５からＲＡＭ３１への読み出し（マウント）を示す。なお、起動のとき、制御回路４は、ブート領域Ｐ１、カーネル領域Ｐ２、デバイスツリー領域Ｐ３、第１領域５１、第２領域５２の順に読み出す。そして、各領域の内容がＲＡＭ３１に読み出される（図４参照）。図４〜図８において、破線矢印は、領域（パーティション、記憶内容）のコピー（バックアップ）を示す。図４〜図８において、太線矢印は、アップデートによる領域の上書きを示す。
【００４４】
図３のフローチャートのスタートは、半導体不揮発性メモリー５のアップデートの開始条件が満たされた時点である。なお、画像処理装置１（複合機２）が起動済であることが前提である。アップデート要求が画像処理装置１に入力されたことが開始条件とされる。操作パネル７は、アップデート要求の入力操作を受け付ける。また、制御回路４（制御部３）は、アップデート用情報Ｕ１が記憶された携帯型メモリー５００の接続Ｉ／Ｆ回路９２への接続をアップデート要求の入力とみなしてもよい。
【００４５】
アップデートの開始条件が満たされたとき、制御回路４は、アップデート用ソフトウェア（プログラム）の動作を開始させる。そして、制御回路４は、アップデート用ソフトウェアに基づき、図３に示す各処理を順次実行する。制御回路４は、通信部９１又は接続Ｉ／Ｆ回路９２からアップデート用ソフトウェアを取得し、実行する。あるいは、半導体不揮発性メモリー５にアップデート用ソフトウェアを記憶させておいてもよい。この場合、制御回路４は、半導体不揮発性メモリー５に記憶されたアップデート用ソフトウェアを実行する。
【００４６】
アップデートの開始に伴い、制御回路４は、予め定められた領域の内容のコピーを作成する（ステップ♯１）。言い換えると、制御回路４は、予め定められた領域のバックアップ情報Ｂ１を半導体不揮発性メモリー５に記憶させる。
【００４７】
図４に示すように、制御回路４は、カーネル領域Ｐ２の記憶内容と、デバイスツリー領域Ｐ３の記憶内容のバックアップ情報Ｂ１を作成する。各領域の記憶内容のバックアップ情報Ｂ１を格納する領域（パーティション）は予め用意される。カーネル領域Ｐ２と、デバイスツリー領域Ｐ３のサイズは、第１領域５１と第２領域５２よりも小さい。従って、カーネル領域Ｐ２とデバイスツリー領域Ｐ３のバックアップ情報Ｂ１は、半導体不揮発性メモリー５の記憶領域を圧迫しない。
【００４８】
ステップ♯１の完了後、制御回路４は、１回目の再起動を行う（ステップ♯２）。再起動では、ＲＡＭ３１がリセットされる（ＲＡＭ３１の記憶が消える。以下、同様）。図５を用いて再起動がなされたときの動作を説明する。図５に示すように、再起動がなされたとき、制御回路４は、ブート領域Ｐ１の内容をＲＡＭ３１に読み出す（ステップ♯３）。次に、制御回路４は、コピーしたカーネル領域Ｐ２の内容をＲＡＭ３１に読み出す（ステップ♯３）。つまり、制御回路４は、カーネル領域Ｐ２のバックアップ情報Ｂ１を読み出す。次に、制御回路４は、コピーしたデバイスツリー領域Ｐ３の内容をＲＡＭ３１に読み出す（ステップ♯３）。つまり、制御回路４は、デバイスツリー領域Ｐ３のバックアップ情報Ｂ１を読み出す。このように、カーネル領域Ｐ２やデバイスツリー領域Ｐ３については、バックアップ情報Ｂ１がマウントされる。制御回路４は、オリジナルのカーネル領域Ｐ２やデバイスツリー領域Ｐ３をマウントしない。
【００４９】
続いて、制御回路４は、第１領域５１の内容（第１ソフトウェアＳＷ１）をＲＡＭ３１に読み出す（ステップ♯３）。一方、アップデートには必要ないので、制御回路４は、第２領域５２の内容（第２ソフトウェアＳＷ２）をＲＡＭ３１に読み出さない（ステップ♯３）。言い換えると、１回目の再起動に基づく起動時、制御回路４は、第２領域５２をマウントしない。
【００５０】
続いて、制御回路４は、アップデート用情報Ｕ１を取得する（ステップ♯４、１回目のアップデート用情報Ｕ１の取得）。制御回路４は、アップデート用情報Ｕ１を通信部９１に取得させてもよい。この場合、通信部９１は、アップデート用情報Ｕ１をダウンロードする。また、制御回路４は、アップデート用情報Ｕ１を接続Ｉ／Ｆ回路９２に取得させてもよい。この場合、接続Ｉ／Ｆ回路９２は、携帯型メモリー５００からアップデート用情報Ｕ１を読み出す。
【００５１】
１回目のアップデート用情報Ｕ１の取得では、制御回路４は、カーネル領域Ｐ２、デバイスツリー領域Ｐ３、第１領域５１のアップデート用情報Ｕ１を取得する。例えば、図６に示すように、取得されたアップデート用情報Ｕ１は、ＲＡＭ３１に記憶される。取得したアップデート用情報Ｕ１に基づき、制御回路４は、カーネル領域Ｐ２の記憶内容とデバイスツリー領域Ｐ３の記憶内容を更新する（ステップ♯５）。
【００５２】
具体的に、制御回路４は、カーネル領域Ｐ２に対応するアップデート用情報Ｕ１をオリジナルのカーネル領域Ｐ２に上書きさせる。また、制御回路４は、デバイスツリー領域Ｐ３に対応するアップデート用情報Ｕ１をオリジナルのデバイスツリー領域Ｐ３に上書きさせる（図６参照）。
【００５３】
さらに、制御回路４は、第２領域５２に第１ソフトウェアＳＷ１を上書きする第１上書き処理を不揮発性メモリーに行わせる（ステップ♯６）。つまり、制御回路４は、第２領域５２を新たな第１領域５１にする。具体的に、制御回路４は、第１領域５１（第１ソフトウェアＳＷ１）のアップデート用情報Ｕ１を第２領域５２に書き込ませる。第１領域５１のサイズと第２領域５２のサイズは同じ、または、ほぼ等しい。そのため、全ての第１ソフトウェアＳＷ１を第２領域５２に記憶させることができる。第２領域５２のサイズは、第１ソフトウェアＳＷ１を記憶できるサイズに予め設定されている。
【００５４】
図６に示すように、制御回路４は、第１領域５１に記憶させる内容（第１ソフトウェアＳＷ１）に対応するアップデート用情報Ｕ１を第２領域５２に上書きする。これにより、第１ソフトウェアＳＷ１が一時的に２つの領域に記憶される。ステップ♯６の開始から終了まで、オリジナルの（古い）第１領域５１へのアクセスは行われない。従って、ステップ♯６の途中でアップデートが異常終了しても、オリジナルの第１ソフトウェアＳＷ１は保持される。異常終了しても、オリジナルの第１ソフトウェアＳＷ１には全く破損がない。例えば、第１上書きを開始したとき、制御回路４は第１上書き処理を開始したことを第１フラグとして半導体不揮発性メモリー５に記憶させる。あるいは、第１上書き処理中にアップデートが異常終了したとき、制御回路４は第１上書き処理中に異常終了したこと（第１フラグ）を半導体不揮発性メモリー５に記憶させてもよい。制御回路４は第１上書き処理が完了したとき、第１フラグを消す。再起動したとき、制御回路４は第１フラグの有無を確認する。第１フラグが記憶されているとき、制御回路４は、オリジナルの第１領域５１をマウントし、第１上書き処理をやり直す（ステップ♯２〜６のやり直し）。第１上書き処理が完了したとき、制御回路４は第１フラグを消す。従って、アップデート再開のために再起動したとき、制御回路４は、オリジナルの第１ソフトウェアＳＷ１に基づき、アップデートを問題なく遂行できる。
【００５５】
ステップ♯６の完了後、制御回路４は、２回目の再起動を行う（ステップ♯７）。図７に示す様に、制御回路４は、ブート領域Ｐ１の内容をＲＡＭ３１に読み出す（ステップ♯７）。次に、制御回路４は、更新されたカーネル領域Ｐ２の内容をＲＡＭ３１に読み出す（ステップ♯７）。次に、制御回路４は、更新されたデバイスツリー領域Ｐ３の内容をＲＡＭ３１に読み出す（ステップ♯７）。カーネル領域Ｐ２やデバイスツリー領域Ｐ３については、更新完了済の領域がマウントされる。制御回路４は、コピーのカーネル領域Ｐ２やデバイスツリー領域Ｐ３をマウントしない。
【００５６】
続いて、制御回路４は、新たな第１領域５１（旧第２領域５２）の内容（第１ソフトウェアＳＷ１）をＲＡＭ３１に読み出す（ステップ♯７）。なお、この段階では、第２ソフトウェアＳＷ２は半導体不揮発性メモリー５内に無い。そのため、２回目の再起動のとき、制御回路４は、第２ソフトウェアＳＷ２をＲＡＭ３１に読み出さない。２回目の再起動に基づく起動時でも、制御回路４は第２領域５２に記憶される第２ソフトウェアＳＷ２をマウントしない。
【００５７】
制御回路４は、アップデート用情報Ｕ１を取得する（ステップ♯８、アップデート用情報Ｕ１の２回目の取得）。図７に示すように、制御回路４は、アップデート用情報Ｕ１を通信部９１又は接続Ｉ／Ｆ回路９２に取得させる。２回目のアップデート用情報Ｕ１の取得では、制御回路４は、第２領域５２のアップデート用情報Ｕ１（第２ソフトウェアＳＷ２）を取得する。例えば、図７に示すように、取得された第２ソフトウェアＳＷ２は、ＲＡＭ３１に記憶される。
【００５８】
取得したアップデート用情報Ｕ１に基づき、制御回路４は、古い方の第１領域５１に第２ソフトウェアＳＷ２を上書きする第２上書き処理を不揮発性メモリーに行わせる（ステップ♯９）。古い方の第１領域５１とは、アップデート開始前から第１ソフトウェアＳＷ１が記憶されていた領域である。言い換えると、古い方の第１領域５１は、更新前の第１ソフトウェアＳＷ１が記憶されている領域である。制御回路４は、古い方の第１領域５１を新たな第２領域５２とする。半導体不揮発性メモリー５の更新が完了する。
【００５９】
具体的に、制御回路４は、第２ソフトウェアＳＷ２のアップデート用情報Ｕ１を古い方の第１領域５１に書き込む。第１領域５１のサイズと第２領域５２のサイズは同じ、または、ほぼ等しい。そのため、全ての第２ソフトウェアＳＷ２を古い方の第１領域５１に記憶させることができる。第１領域５１のサイズは、第２ソフトウェアＳＷ２を記憶できるサイズに予め設定される。
【００６０】
第２上書き処理（ステップ♯９）の途中でアップデートが異常終了しても、新たな第１ソフトウェアＳＷ１の記憶は完了している。新たな第１領域５１の第１ソフトウェアＳＷ１には全く破損がない。例えば、第２上書きを開始したとき、制御回路４は第２上書き処理を開始したことを第２フラグとして半導体不揮発性メモリー５に記憶させる。あるいは、第２上書き処理中にアップデートが異常終了したとき、制御回路４は第２上書き処理中に異常終了したこと（第２フラグ）を半導体不揮発性メモリー５に記憶させてもよい。制御回路４は第２上書き処理が完了したとき、第２フラグを消す。再起動したとき、制御回路４は第２フラグの有無を確認する。フラグが記憶されているとき、制御回路４は、新たな第１領域５１をマウントし、第２上書き処理をやり直す（ステップ♯７〜９のやり直し）。第２上書き処理が完了したとき、制御回路４は第２フラグを消す。新たな第１領域５１の第１ソフトウェアＳＷ１に基づき、第２上書き処理の途中で中断したアップデートを問題なく再開できる。
【００６１】
ここで、アップデートにより、第１領域５１と第２領域５２の順番（パーティションの順番）が入れ替わる。制御回路４は、新たな（更新後の）第１領域５１と新たな（更新後の）第２領域５２において、起動時のマウント順をアップデート前とアップデート後で逆にする（ステップ♯１０）。
【００６２】
半導体不揮発性メモリー５は、パーティションのマウント順を定義した順番定義ファイルを記憶する。ブート領域Ｐ１、カーネル領域Ｐ２、デバイスツリー領域Ｐ３、または、他の領域に順番定義ファイルを記憶させることができる。
【００６３】
ここで、新たな第１領域５１は、更新前の第２領域５２である。新たな第２領域５２は更新前の第１領域５１である。領域（パーティション）のマウント順が正しく無い場合、画像処理装置１を正常に起動できない場合がある。そこで、制御回路４は、新たな第１領域５１と新たな第２領域５２のマウント順を調整する。制御回路４は、順番定義ファイルの内容を変更する。制御回路４は、新たな第１領域５１と新たな第２領域５２のマウント順を入れ替える。
【００６４】
ステップ♯１０の完了後、制御回路４は、３回目の再起動を行う（ステップ♯１１）。再起動では、ＲＡＭ３１の記憶がリセットされる。図８に示す様に、制御回路４は、ブート領域Ｐ１の内容をＲＡＭ３１に読み出す。次に、制御回路４は、更新されたカーネル領域Ｐ２の内容をＲＡＭ３１に読み出す。次に、制御回路４は、更新されたデバイスツリー領域Ｐ３の内容をＲＡＭ３１に読み出す。次に、制御回路４は、新たな第１領域５１の内容（第１ソフトウェアＳＷ１）をＲＡＭ３１に読み出す。続いて、制御回路４は、新たな第２領域５２の内容（第２ソフトウェアＳＷ２）をＲＡＭ３１に読み出す。
【００６５】
図８に示すように、制御回路４は、カーネル領域Ｐ２とデバイスツリー領域Ｐ３のバックアップ情報Ｂ１を削除する（ステップ♯１２）。これにより、本フローは終了する（エンド）。
【００６６】
このようにして、実施形態に係る画像処理装置１は、不揮発性メモリー、制御回路４、データ入力部を備える。不揮発性メモリーは、パーティションにより複数の領域が設けられる。また、不揮発性メモリーは、領域のうちの１つであり予め定められた第１ソフトウェアＳＷ１を記憶する第１領域５１と、領域のうちの１つであり予め定められた第２ソフトウェアＳＷ２を記憶する第２領域５２を含む。制御回路４は、不揮発メモリーを制御する。データ入力部は、不揮発性メモリーのアップデート用情報Ｕ１を得る。第１ソフトウェアＳＷ１は、不揮発性メモリーのアップデートに用いられる。第２ソフトウェアＳＷ２は、不揮発性メモリーのアップデートに用いられない。予め定められたアップデートの開始条件が満たされたとき、データ入力部が得たアップデート用情報Ｕ１に基づき、制御回路４は、第２領域５２に第１ソフトウェアＳＷ１を上書きし、第２領域５２を新たな第１領域５１にする第１上書き処理を不揮発性メモリーに行わせる。第１上書き処理の完了後、データ入力部が得たアップデート用情報Ｕ１に基づき、制御回路４は、古い方の第１領域５１に第２ソフトウェアＳＷ２を上書きし、古い方の第１領域５１を新たな第２領域５２にする第２上書き処理を不揮発性メモリーに行わせる。
【００６７】
これにより、アップデート中（各上書き処理中）、第１領域５１と第２領域５２の何れかに完全な第１ソフトウェアＳＷ１を保持することができる。従って、第１上書き処理中にアップデートが異常終了しても、更新前の第１領域５１の第１ソフトウェアＳＷ１を用いることにより、画像処理装置１の起動やアップデートのやり直しを完了することができる。また、第２上書き処理中にアップデートが異常終了しても、新たな第１領域５１（旧第２領域５２）の第１ソフトウェアＳＷ１を用いることにより、画像処理装置１の起動やアップデートのやり直しを完了することができる。どのタイミングでアップデートの異常終了が生じても、画像処理装置１の動作に問題は生じない。
【００６８】
第１領域５１には、アップデートに用いる第１ソフトウェアが記憶される。そのため、従来、第１ソフトウェアＳＷ１はアップデート前にコピーされていた。つまり、第１ソフトウェアＳＷ１のバックアップ情報が不揮発性メモリーに記憶されていた。従来、第１フトウェアＳＷ１のバックアップ情報を記憶できるように、大容量の不揮発性メモリーを採用する必要があった。しかし、第１ソフトウェアＳＷ１のバックアップ情報を作成する必要がない。従って、従来よりも不揮発性メモリーの容量を減らすことができる。従来よりも容量が小さく、安価な不揮発性メモリーを採用することができる。
【００６９】
第２上書き処理まで完了したとき、かつての第２領域５２が新たな第１領域５１となる。また、かつての第１領域５１が新たな第２領域５２となる。そして、起動時、どのパーティションから利用できるようにする（マウントする）かが決まっている場合がある。そのため、第１ソフトウェアＳＷ１と第２ソフトウェアＳＷ２を格納するパーティションが入れ替わると、画像処理装置１を起動できなくなる場合がある。そこで、第２上書き処理が完了した場合、制御回路４は、起動時の第１領域５１と第２領域５２のマウント順をアップデート前とアップデート後で逆にする。これにより、第１ソフトウェアＳＷ１と第２ソフトウェアＳＷ２を格納パーティションが入れ替わっても、画像処理装置１を起動させることができる。
【００７０】
また、第１領域５１のサイズと第２領域５２のサイズは、同じである。これにより、第１領域５１と第２領域５２のサイズは、第１ソフトウェアＳＷ１を記憶できるサイズとなる。また、第１領域５１と第２領域５２のサイズは、第２ソフトウェアＳＷ２を記憶できるサイズとなる。
【００７１】
第１ソフトウェアのサイズと第２ソフトウェアＳＷ２のサイズの差が大きい場合、第１領域５１と第２領域５２のサイズは、大きい方のソフトウェアのサイズ以上にする必要がある。小さい方のソフトウェアが格納される領域（パーティション）では、空き領域が多くなる。空き領域は使用されず、無駄である。そこで、第１ソフトウェアＳＷ１のサイズと第２ソフトウェアＳＷ２のサイズは、同じである、又は、予め定められた許容範囲内のサイズ差である。これにより、第１領域５１と第２領域５２のサイズを、第１ソフトウェアＳＷ１又は第２ソフトウェアＳＷ２のサイズにあわせたサイズにすることで、各領域の空き領域を最低レベルまで減らすことができる。両領域の無駄な領域を減らすことができる。従って、従来よりも容量が小さい不揮発性メモリーを採用することができる。
【００７２】
また、第１領域５１はルートファイルシステムＦＳ１が設けられるルートディスク領域であり、記第２領域５２は、印刷ジョブを実行するためのファームウェアが記憶されるアプリ領域である。つまり、第１ソフトウェアＳＷ１はルートファイルシステムＦＳ１に関するソフトウェアを含む。第２ソフトウェアＳＷ２は、印刷ジョブを実行するためのファームウェアを含む。これにより、アップデートに必要なソフトウェアを第１領域５１に含めておくことにより、アップデートに必要なソフトウェアを少なくとも第１領域５１にマウントすることができる。また、印刷ジョブの実行には必要であるが、アップデートには用いないソフトウェアを第２ソフトウェアＳＷ２に含めることができる。
【００７３】
また、本発明は、画像処理装置１の制御方法としても捉えることもできる。この制御方法は、パーティションにより複数の領域を不揮発性メモリーに設け、領域のうちの１つである第１領域５１に予め定められた第１ソフトウェアＳＷ１を記憶させ、領域のうちの１つである第２領域５２に予め定められた第２ソフトウェアＳＷ２を記憶させ、不揮発性メモリーのアップデート用情報Ｕ１を取得し、第１ソフトウェアＳＷ１は、不揮発性メモリーのアップデートに用いられる。第２ソフトウェアＳＷ２は、不揮発性メモリーのアップデートに用いられない。予め定められたアップデートの開始条件が満たされたとき、アップデート用情報Ｕ１に基づき、第２領域５２に第１ソフトウェアＳＷ１を上書きし、第２領域５２を新たな第１領域５１にする第１上書き処理を行い、第１上書き処理の完了後、アップデート用情報Ｕ１に基づき、古い方の第１領域５１に第２ソフトウェアＳＷ２を上書きし、古い方の第１領域５１を新たな第２領域５２にする第２上書き処理を行う方法である。
【００７４】
以上、本発明の実施形態について説明したが、本発明の範囲はこれに限定されるものではなく、発明の主旨を逸脱しない範囲で種々の変更を加えて実施することができる。そこで、以下、変形例を説明する。
【産業上の利用可能性】
【００７５】
本発明は、制御回路、不揮発性メモリーを含む画像処理装置に利用可能である。
【符号の説明】
【００７６】
１      画像処理装置                      ４      制御回路
５      半導体不揮発性メモリー（不揮発性メモリー）
５１    第１領域                          ５２    第２領域
９１    通信部（データ入力部）            ９２    接続Ｉ／Ｆ回路（データ入力部）
ＳＷ１  第１ソフトウェア                  ＳＷ２  第２ソフトウェア
Ｕ１    アップデート用情報
【図１】
2018092417.tif 000003
【図２】
2018092417.tif 000004
【図３】
2018092417.tif 000005
【図４】
2018092417.tif 000006
【図５】
2018092417.tif 000007
【図６】
2018092417.tif 000008
【図７】
2018092417.tif 000009
【図８】
2018092417.tif 000010