(57)【要約】【課題】ソフトウェアの更新が中断された後の再起動に要する時間を短縮することのできる電子機器を提供すること。【解決手段】携帯電話機１は、プログラムコードおよびプログラムコードを更新するための更新情報データを格納する不揮発性のＮＡＮＤ３５と、実行対象のプログラムコードを作業用に格納する揮発性のＳＤＲＡＭ３４と、更新情報データに基づいて、ＮＡＮＤ３５に格納されたプログラムコードを更新する更新し、ＮＡＮＤ３５に格納されたプログラムコードの一部または全部をＳＤＲＡＭ３４へコピーし、ＳＤＲＡＭ３４に格納されたプログラムコードを実行するＭＰＵ３０と、を備え、ＭＰＵ３０は、ＮＡＮＤ３５の更新が中断された場合、当該更新を再開する前に、ＮＡＮＤ３５の更新済みのプログラムコードから更新前のプログラムコードを復元して、ＳＤＲＡＭ３４へ格納する。【選択図】図２
2010231349.tif 000002
【特許請求の範囲】
【請求項１】
プログラムコードを格納する不揮発性の第１記憶部と、
実行対象のプログラムコードを作業用に格納する揮発性の第２記憶部と、
前記第１記憶部に格納されたプログラムコードを更新するための更新情報データを記憶する第３記憶部と、
前記第３記憶部に記憶されている更新情報データに基づいて、前記第１記憶部に格納されたプログラムコードを更新する更新部と、
前記第１記憶部に格納されたプログラムコードの一部または全部を、前記第２記憶部へコピーし、前記第２記憶部に格納されたプログラムコードを実行する制御部と、を備え、
前記制御部は、前記更新部による更新が中断された場合、当該更新を再開する前に、前記第１記憶部の更新済みのプログラムコードから更新前のプログラムコードを復元して、前記第２記憶部へ格納することを特徴とする電子機器。
【請求項２】
前記第１記憶部は、前記プログラムコードを格納するためのブロックを複数備え、
前記制御部は、前記第１記憶部の更新済みのプログラムコードを有するブロックのプログラムコードのみ復元を行うことを特徴とする請求項１に記載の電子機器。
【請求項３】
前記第３記憶部に記憶されている更新情報データを受信する通信部をさらに備える請求項１または請求項２に記載の電子機器。
【請求項４】
前記更新部は、前記第１記憶部に格納されたプログラムコードを更新したときに、当該更新済みのプログラムコードから更新前のプログラムコードを復元するための逆差分データを生成し、
前記第３記憶部は、前記逆差分データをさらに記憶することを特徴とする請求項１から請求項３のいずれか１項に記載の電子機器。
【請求項５】
前記通信部は、前記更新情報データと共に、更新済みのブロックから更新前のブロックを復元するための逆差分データを受信し、
前記第３記憶部は、前記逆差分データをさらに記憶することを特徴とする請求項３に記載の電子機器。
【請求項６】
前記更新情報データは、前記逆差分データと一体化されていることを特徴とする請求項５に記載の電子機器。
【請求項７】
前記更新部による更新が中断された後の再起動時に、前記更新済みのプログラムコードから更新前のプログラムコードを復元して前記第２記憶部へ格納するか、前記更新部による更新を完了させた後に前記第２記憶部へコピーするか、の選択入力を受け付ける受付部をさらに備える請求項１から請求項６のいずれか１項に記載の電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの更新機能を有する電子機器に関する。
【背景技術】
【０００２】
従来、様々な電子機器において、メモリに予め記憶されたソフトウェアを実行することにより各種機能を実現している。このような電子機器の中には、ソフトウェアの不具合修正や機能拡張等の理由により、更新用データを取得して新しいソフトウェアに更新する機能を有するものがある。
【０００３】
このようなソフトウェア更新の機能を有する電子機器は、例えば、ソフトウェアの新旧バージョンの差分データをダウンロードし、所定の更新エンジンを実行して、この差分データにより単位領域（ブロック）毎にソフトウェアを更新する（例えば、特許文献１参照）。
【０００４】
ところで、電子機器は、安価で容量の大きい不揮発性のメモリ（例えば、ＮＡＮＤフラッシュメモリ）にソフトウェアを格納し、実際にソフトウェアを実行する際には、読み書きが高速な揮発性メモリ（例えば、ＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））にコピーして実行する場合が多い。
【０００５】
この場合、電子機器は、揮発性メモリ上のソフトウェアによって通常動作中に、不揮発性メモリのソフトウェアを更新する、いわゆるバックグラウンド更新を行うことができる。その後、電子機器は、不揮発性メモリ上の更新済みのソフトウェアの機能を電子機器の実際の動作に反映させるため、再起動処理に伴って、更新済みソフトウェアの全ブロックを揮発性メモリへコピーしていた。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−２１９８８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、バックグラウンド更新の処理中に、電源が切られる等の理由により中断された場合、不揮発性メモリに記憶されているソフトウェアは、不完全に更新された状態となっている。この状態で再び電子機器が起動した際には、不完全な状態のソフトウェアを揮発性メモリへコピーしても正常に実行することができない。したがって、電子機器を使用可能な状態で起動するためには、不揮発性メモリ上のソフトウェアの更新処理を再開し、更新が完了した後に揮発性メモリへコピーする必要がある。ところが、ＮＡＮＤフラッシュメモリ等の不揮発性メモリの書き換えには時間が掛かるため、ユーザは使用を待機しなければならなかった。
【０００８】
本発明は、ソフトウェアの更新が中断された後の再起動に要する時間を短縮することのできる電子機器を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る電子機器は、プログラムコードを格納する不揮発性の第１記憶部と、実行対象のプログラムコードを作業用に格納する揮発性の第２記憶部と、前記第１記憶部に格納されたプログラムコードを更新するための更新情報データを記憶する第３記憶部と、前記第３記憶部に記憶されている更新情報データに基づいて、前記第１記憶部に格納されたプログラムコードを更新する更新部と、前記第１記憶部に格納されたプログラムコードの一部または全部を、前記第２記憶部へコピーし、前記第２記憶部に格納されたプログラムコードを実行する制御部と、を備え、前記制御部は、前記更新部による更新が中断された場合、当該更新を再開する前に、前記第１記憶部の更新済みのプログラムコードから更新前のプログラムコードを復元して、前記第２記憶部へ格納することを特徴とする。
【００１０】
また、前記第１記憶部は、前記プログラムコードを格納するためのブロックを複数備え、前記制御部は、前記第１記憶部の更新済みのプログラムコードを有するブロックのプログラムコードのみ復元を行うことが好ましい。
【００１１】
また、本発明に係る電子機器は、前記第３記憶部に記憶されている更新情報データを受信する通信部をさらに備えることが好ましい。
【００１２】
また、前記更新部は、前記第１記憶部に格納されたプログラムコードを更新したときに、当該更新済みのプログラムコードから更新前のプログラムコードを復元するための逆差分データを生成し、前記第３記憶部は、前記逆差分データをさらに記憶することが好ましい。
【００１３】
また、前記通信部は、前記更新情報データと共に、更新済みのブロックから更新前のブロックを復元するための逆差分データを受信し、前記第３記憶部は、前記逆差分データをさらに記憶することが好ましい。
【００１４】
また、前記更新情報データは、前記逆差分データと一体化されていることが好ましい。
【００１５】
また、本発明に係る電子機器は、前記更新部による更新が中断された後の再起動時に、前記更新済みのプログラムコードから更新前のプログラムコードを復元して前記第２記憶部へ格納するか、前記更新部による更新を完了させた後に前記第２記憶部へコピーするか、の選択入力を受け付ける受付部をさらに備えることが好ましい。
【発明の効果】
【００１６】
本発明によれば、ソフトウェアの更新が中断された後の再起動に要する時間を短縮することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態に係る携帯電話機の外観斜視図である。
【図２】本発明の実施形態に係る携帯電話機の機能を示すブロック図である。
【図３】本発明の実施形態に係るソフトウェアの更新システムを示す概略図である。
【図４】本発明の実施形態に係るＮＡＮＤからＳＤＲＡＭへのプログラムコードのコピー処理を示す図である。
【図５】本発明の実施形態に係るＮＡＮＤにおけるバックグラウンド更新処理を示す図である。
【図６】本発明の実施形態に係るバックグラウンド更新が中断した後、再起動した際のＳＤＲＡＭへのコピー処理を示す図である。
【図７】本発明の実施形態に係るＭＰＵの処理を示すフローチャートである。
【発明を実施するための形態】
【００１８】
以下、本発明の実施形態の一例について説明する。なお、本実施形態では、電子機器の一例として、携帯電話機１を説明する。なお、本発明の電子機器はこれには限られず、例えば、ＰＨＳ（Ｐｅｒｓｏｎａｌ  Ｈａｎｄｙ  ｐｈｏｎｅ  Ｓｙｓｔｅｍ）やＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）の他、ナビゲーション装置やパーソナルコンピュータ等、様々な電子機器に適用可能である。
【００１９】
図１は、本実施形態に係る携帯電話機１（電子機器）の外観斜視図である。なお、図１は、いわゆる折り畳み型の携帯電話機の形態を示しているが、本発明に係る携帯電話機の形態はこれに限られない。例えば、両筐体を重ね合わせた状態から一方の筐体を一方向にスライドさせるようにしたスライド式や、重ね合せ方向に沿う軸線を中心に一方の筐体を回転させるようにした回転式（ターンタイプ）や、操作部と表示部とが１つの筐体に配置され、連結部を有さない形式（ストレートタイプ）でもよい。
【００２０】
携帯電話機１は、操作部側筐体２と、表示部側筐体３と、を備えて構成される。操作部側筐体２は、表面部１０に、操作部１１と、携帯電話機１の使用者が通話時に発した音声が入力されるマイク１２と、を備えて構成される。操作部１１は、各種設定機能や電話帳機能やメール機能等の各種機能を作動させるための機能設定操作ボタン１３と、電話番号の数字やメールの文字等を入力するための入力操作ボタン１４と、各種操作における決定やスクロール等を行う決定操作ボタン１５と、から構成されている。
【００２１】
また、表示部側筐体３は、表面部２０に、各種情報を表示するための表示部２１と、通話の相手側の音声を出力するレシーバ２２と、を備えて構成されている。
【００２２】
また、操作部側筐体２の上端部と表示部側筐体３の下端部とは、ヒンジ機構４を介して連結されている。また、携帯電話機１は、ヒンジ機構４を介して連結された操作部側筐体２と表示部側筐体３とを相対的に回転することにより、操作部側筐体２と表示部側筐体３とが互いに開いた状態（開放状態）にしたり、操作部側筐体２と表示部側筐体３とを折り畳んだ状態（折畳み状態）にしたりできる。
【００２３】
図２は、本実施形態に係る携帯電話機１の機能を示すブロック図である。携帯電話機１は、ＭＰＵ３０（更新部、制御部）と、電源部３１と、無線部３２（通信部）と、アンテナ３３と、ＳＤＲＡＭ３４（第２記憶部）と、ＮＡＮＤ３５（第１記憶部、第３記憶部）と、操作部１１（受付部）と、表示部２１と、音声制御部３６と、を備える。
【００２４】
ＭＰＵ３０は、携帯電話機１の全体を制御しており、例えば、表示部２１、無線部３２、音声制御部３６等に対して所定の制御を行う。また、ＭＰＵ３０は、操作部１１等から入力を受け付けて、各種処理を実行する。そして、ＭＰＵ３０は、処理実行の際には、ＳＤＲＡＭ３４およびＮＡＮＤ３５を制御し、各種プログラムおよびデータの読み出し、およびデータの書き込みを行う。
【００２５】
電源部３１は、携帯電話機１の各部へ電源を供給している。また、電源ＯＮ／ＯＦＦを切り替える所定の操作入力に応じて、電源部３１は、電源の供給先を変更する。すなわち、電源ＯＦＦの場合には、例えばＳＤＲＡＭ３４等の限られた部位のみに電源を供給する。
【００２６】
無線部３２は、所定の使用周波数帯（例えば、２ＧＨｚ帯や８００ＭＨｚ帯等）で外部装置（基地局）と通信を行う。そして、無線部３２は、アンテナ３３より受信した信号を復調処理し、処理後の信号をＭＰＵ３０に供給し、また、ＭＰＵ３０から供給された信号を変調処理し、アンテナ３３から外部装置に送信する。
【００２７】
ＳＤＲＡＭ３４は、ＭＰＵ３０により作業用に使用される記憶装置であり、電流の供給を受け続けることによりデータを保持する揮発性の記憶装置である。なお、携帯電話機１は、電源をＯＦＦにした場合にも、電源部３１によりＳＤＲＡＭ３４へ電流を供給し続ける。これにより、例えば再起動時に一旦電源がＯＦＦとなった場合にも、ＳＤＲＡＭ３４に記憶されたデータは保持される（セルフリフレッシュ）。
【００２８】
ＮＡＮＤ３５は、ソフトウェアのプログラムコード等を静的に記憶する不揮発性の記憶装置である。ＳＤＲＡＭ３４へのデータの読み書きは、ＮＡＮＤ３５へのそれよりも速いため、ＮＡＮＤ３５に記憶されたプログラムコードの一部または全部をＳＤＲＡＭ３４にコピーすることにより、ＭＰＵ３０で実行される。また、無線部３２により受信（ダウンロード）したソフトウェア、あるいはソフトウェアの更新情報データは、このＮＡＮＤ３５に記憶される。
【００２９】
表示部２１は、ＭＰＵ３０の制御に従って、所定の画像処理を行う。そして、処理後の画像データをフレームメモリに蓄え、所定のタイミングで画面出力する。
【００３０】
音声制御部３６は、ＭＰＵ３０の制御に従って、無線部３２から供給された信号に対して所定の音声処理を行い、処理後の信号をレシーバ２２に出力する。レシーバ２２は、音声制御部３６から供給された信号を外部に出力する。なお、この信号は、レシーバ２２に代えて、または、レシーバ２２と共に、スピーカ（図示せず）から出力されるとしてもよい。
【００３１】
また、音声制御部３６は、ＭＰＵ３０の制御に従って、マイク１２から入力された信号を処理し、処理後の信号を無線部３２に出力する。無線部３２は、音声制御部３６から供給された信号に所定の処理を行い、処理後の信号をアンテナ３３より出力する。
【００３２】
図３は、本実施形態に係るソフトウェアの更新システムを示す概略図である。携帯電話機１で利用されるソフトウェアは、管理サーバにて新旧のバージョン管理がされている。管理サーバは、データベースにてソフトウェアのプログラムコードと、旧バージョンから新バージョンへ更新するための更新情報データとを保持する。そして、管理サーバは、携帯電話機１からの要求に応じて、最新のプログラムコードまたは更新情報データを、基地局を介して送信する。
【００３３】
以下、携帯電話機１で実行されるソフトウェアを新バージョンへ更新するための、ＭＰＵ３０の処理内容を説明する。
【００３４】
図４は、本実施形態に係るＮＡＮＤ３５からＳＤＲＡＭ３４へのプログラムコードのコピー処理を示す図である。この処理では、ＭＰＵ３０は、携帯電話機１の電源がＯＮとなったときに、実行対象のソフトウェアのプログラムコードを、作業用の記憶装置であるＳＤＲＡＭ３４へコピーする。
【００３５】
ＮＡＮＤ３５において、プログラムコードはブロック単位に格納されており、ＳＤＲＡＭ３４へも、このブロック単位で順次コピーされる。そして、全ブロックのコピーが完了すると、ＭＰＵ３０は、ＳＤＲＡＭ３４上でソフトウェアを実行し、ユーザの利用が開始される。
【００３６】
なお、前述のセルフリフレッシュ機能が動作しているときは、ＳＤＲＡＭ３４のデータが保持されているので、本処理は省略され、ＭＰＵ３０は、即座にＳＤＲＡＭ３４上のソフトウェアを実行することができる。
【００３７】
図５は、本実施形態に係る更新情報データを受信した後の、ＮＡＮＤ３５におけるバックグラウンド更新処理を示す図である。この処理は、携帯電話機１が利用され、ＳＤＲＡＭ３４上でソフトウェアが実行されている間に実行される。
【００３８】
ＭＰＵ３０は、旧バージョンのソフトウェアを新バージョンへ更新するための差分データ（更新情報データ）をサーバより受信すると、ＮＡＮＤ３５に記憶する。続いて、この差分データおよび、ＮＡＮＤ３５の該当ブロックにある更新前のイメージに基づいて、更新後のイメージを生成すると、このブロックを更新後のイメージで更新する。
【００３９】
さらに、ＭＰＵ３０は、差分データによりＮＡＮＤ３５を更新する際に、更新後のイメージから更新前のイメージを生成可能な逆差分データを生成して記憶しておく。逆差分データは、ブロック単位でＮＡＮＤ３５を更新する度に生成してもよいし、差分データ全体に対応する逆差分データを一度に生成してもよい。
【００４０】
ここで、差分データに基づくＮＡＮＤ３５の更新処理が完了する前に、携帯電話機１の電源がＯＦＦとなる等の理由により、更新処理が中断したとする。例えば、図５では、ブロック１〜ブロック３までが更新されるべきところ、ブロック３が更新されない状態で中断されている。すると、ＮＡＮＤ３５に格納されたプログラムコードは、新旧バージョンが混在した状態となっており、このままでは、ＭＰＵ３０により実行することはできない。
【００４１】
図６は、本実施形態に係るバックグラウンド更新が中断した後、携帯電話機１が再起動した際のＳＤＲＡＭ３４へのコピー処理を示す図である。
【００４２】
ＮＡＮＤ３５に格納されているプログラムコードは、ブロック３が更新前の状態であり、このままＳＤＲＡＭ３４へコピーしても、実行することはできない。そこで、ＭＰＵ３０は、更新済みのブロック（ブロック１およびブロック２）については、前述の逆差分データに基づいて、更新前のイメージを生成してＳＤＲＡＭ３４へ格納する。また、ＭＰＵ３０は、未更新のブロックと更新対象外のブロックについては、そのままＳＤＲＡＭ３４へコピーする。
【００４３】
この処理により、ＳＤＲＡＭ３４には、更新前（旧バージョン）のソフトウェアが展開され、ＭＰＵ３０がこのソフトウェアを実行することにより、携帯電話機１の利用が開始される。
【００４４】
ここで、ＮＡＮＤ３５の更新を再開した後、更新後のデータをＳＤＲＡＭ３４へコピーする場合と比較する。ＮＡＮＤ３５に対するデータの書き換え処理は、ＮＡＮＤ３５からの読み出し処理や、ＳＤＲＡＭ３４の書き換え処理に比べて非常に遅い。したがって、ＮＡＮＤ３５の更新処理に長時間が掛かるので、更新後のソフトウェアが実行されるまでに要する時間よりも、逆差分データを利用して更新前のソフトウェアを実行するまでに要する時間の方が短くなることが期待できる。つまり、本実施形態によれば、起動処理が完了してユーザが利用を開始できるまでの時間を短縮することができる。
【００４５】
図７は、本実施形態に係るＭＰＵ３０の処理を示すフローチャートである。
ステップＳ１では、ＭＰＵ３０は、無線部３２を介して、管理サーバからソフトウェア更新の通知を受け取る。
【００４６】
ステップＳ２において、ＭＰＵ３０は、ユーザからの指示入力に応じて、あるいはステップＳ１の通知を受け取ったことに応じて自動的に、ＮＡＮＤ３５に格納されているソフトウェアのプログラムコードに対するバックグラウンド更新処理を開始する。
【００４７】
ステップＳ３において、ステップＳ２で開始されたＮＡＮＤ３５に対するバックグラウンド更新処理が中断される。具体的には、携帯電話機１の電源がＯＦＦとなった場合等である。
【００４８】
ステップＳ４において、ステップＳ３でバックグラウンド更新が中断された後に、携帯電話機１の再起動が実施される。
【００４９】
ステップＳ５において、ＭＰＵ３０は、旧バージョンのソフトウェアにより高速起動するか否かを判定する。具体的には、操作部１１が受け付けたユーザからの選択入力が高速起動か否か（通常起動か）を判定する。この判定がＹＥＳの場合はステップＳ６に移り、判定がＮＯの場合はステップＳ９に移る。
【００５０】
ステップＳ６において、ＭＰＵ３０は、ＮＡＮＤ３５において既に更新されたブロックについて、逆差分データを用いて更新前のメモリイメージを生成し、更新されていないブロックと共にＳＤＲＡＭ３４へ展開する。
【００５１】
ステップＳ７において、ＭＰＵ３０は、ステップＳ６にてＳＤＲＡＭ３４上に展開された旧バージョンのソフトウェアを実行することにより、携帯電話機１の機能を起動する。
【００５２】
ステップＳ８において、ＭＰＵ３０は、ステップＳ３で中断されたＮＡＮＤ３５のバックグラウンド更新を再開し、ＮＡＮＤ３５に格納されているソフトウェアを新バージョンに更新する。
【００５３】
ステップＳ９において、ＭＰＵ３０は、通常起動による更新処理を行う。具体的には、ステップＳ３で中断されたＮＡＮＤ３５の更新を再開し、更新が完了した後に、ＳＤＲＡＭ３４へ新バージョンのソフトウェアをコピーする。
【００５４】
このように、本実施形態によれば、ＮＡＮＤ３５の更新が中断した場合でも、旧バージョンのソフトウェアにより高速に起動することが可能である。したがって、ユーザの待ち時間を短縮することができ、利便性が向上する。
【００５５】
さらに、高速起動と通常起動とを選択可能としたので、ユーザは、通常起動を選択することにより、旧バージョンで起動されることを避け、すぐに新バージョンのソフトウェアを利用することもできる。
【００５６】
また、本実施形態によれば、旧バージョンのソフトウェア全体を保持することなく、逆差分データにより更新前のプログラムコードを生成できる。したがって、ＮＡＮＤ３５に確保すべき記憶領域を節約できる。
【００５７】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されるものではない。
【００５８】
前述の実施形態では、携帯電話機１においてＭＰＵ３０が逆差分データを生成したが、これには限られない。例えば、管理サーバから、無線部３２により差分データと共に逆差分データを受信して記憶するようにしてもよい。
【００５９】
また、差分データと逆差分データとは、一体化されていてもよい。すなわち、旧バージョンのソフトウェアに当該データを適用すると新バージョンのソフトウェアが生成され、新バージョンのソフトウェアに当該データを適用すると旧バージョンのソフトウェアが生成される。
【００６０】
また、前述の実施形態では、高速起動と通常起動とをユーザの選択入力に応じて決定したが、これには限られない。例えば、受信した差分データの属性として付加された重要度に応じて、自動的に決定してもよい。また、重要度にかかわらず、全てを高速起動にしてもよい。
【符号の説明】
【００６１】
１  携帯電話機（電子機器）
１１  操作部（受付部）
２１  表示部
３０  ＭＰＵ（更新部、制御部）
３１  電源部
３２  無線部（通信部）
３３  アンテナ
３４  ＳＤＲＡＭ（第２記憶部）
３５  ＮＡＮＤ（第１記憶部、第３記憶部）
３６  音声制御部
【図１】
2010231349.tif 000003
【図２】
2010231349.tif 000004
【図３】
2010231349.tif 000005
【図４】
2010231349.tif 000006
【図５】
2010231349.tif 000007
【図６】
2010231349.tif 000008
【図７】
2010231349.tif 000009