説明

電子機器

【課題】ソフトウェア更新後の再起動に要する時間を短縮することのできる電子機器を提供すること。
【解決手段】携帯電話機1は、ソフトウェアのプログラムコードをブロック単位で格納する不揮発性のNAND35と、NAND35に格納されたプログラムコードを更新するための更新情報データを受信する無線部32と、実行対象のプログラムコードを作業用に格納する揮発性のSDRAM34と、受信した更新情報データに基づいて、NAND35に格納されたプログラムコードをブロック単位で更新し、NAND35に格納されたプログラムコードをSDRAM34へコピーし、SDRAM34に格納されたプログラムコードを実行するMPU30と、を備え、MPU30は、更新されたブロックのみをSDRAM34へコピーする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウェアの更新機能を有する電子機器に関する。
【背景技術】
【0002】
従来、様々な電子機器において、メモリに予め記憶されたソフトウェアを実行することにより各種機能を実現している。このような電子機器の中には、ソフトウェアの不具合修正や機能拡張等の理由により、更新用データを取得して新しいソフトウェアに更新する機能を有するものがある。
【0003】
このようなソフトウェア更新の機能を有する電子機器は、例えば、ソフトウェアの新旧バージョンの差分データをダウンロードし、所定の更新エンジンを実行して、この差分データにより単位領域(ブロック)毎にソフトウェアを更新する(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−219883号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、電子機器は、安価で容量の大きい不揮発性のメモリ(例えば、NANDフラッシュメモリ)にソフトウェアを格納し、実際にソフトウェアを実行する際には、読み書きが高速な揮発性メモリ(例えば、SDRAM(Synchronous Dynamic Random Access Memory))にコピーして実行する場合が多い。
【0006】
この場合、電子機器は、揮発性メモリにコピーされたソフトウェアによって通常動作中に、不揮発性メモリのソフトウェアを更新する、いわゆるバックグラウンド更新を行うことができる。その後、電子機器は、不揮発性メモリ上の更新済みのソフトウェアの機能を電子機器の実際の動作に反映させるため、再起動処理に伴って、更新済みソフトウェアの全ブロックを揮発性メモリへコピーしていた。
【0007】
しかしながら、揮発性メモリへのコピーを要するブロック数が多いと、コピー処理が終了してユーザによる利用が可能となるまでに長時間を要するという問題があった。
【0008】
本発明は、ソフトウェア更新後の再起動に要する時間を短縮することのできる電子機器を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明に係る電子機器は、ソフトウェアのプログラムコードをブロック単位で格納する不揮発性の第1記憶部と、前記第1記憶部に格納されたプログラムコードを更新するための更新情報データを受信する通信部と、前記通信部により受信した更新情報データに基づいて、前記第1記憶部に格納されたプログラムコードを前記ブロック単位で更新する更新部と、実行対象のプログラムコードを作業用に格納する揮発性の第2記憶部と、前記第1記憶部に格納されたプログラムコードの一部または全部を、前記第2記憶部へコピーし、前記第2記憶部に格納されたプログラムコードを実行する制御部と、を備え、前記制御部は、前記更新部により更新されたブロックのみを前記第2記憶部へコピーすることを特徴とする。
【0010】
また、前記制御部がプログラムコードの実行を再起動する場合において、前記第2記憶部は、電流が供給され、再起動前に格納されていた前記実行対象のプログラムコードを、再起動後も保持することが好ましい。
【0011】
また、本発明に係る電子機器は、前記通信部により受信した更新情報データを記憶する第3記憶部をさらに備えることが好ましい。
【0012】
また、本発明に係る電子機器は、前記更新情報データに基づいて更新されるブロックを示すデータを記憶する第4記憶部をさらに備え、前記更新部は、前記第1記憶部に格納されたプログラムコードを更新したときに、当該更新したブロックを示すデータを前記第4記憶部に記憶することが好ましい。
【0013】
また、本発明に係る電子機器は、前記更新情報データに基づいて更新されるブロックを示すデータを記憶する第4記憶部をさらに備え、前記通信部は、前記更新情報データと共に、前記更新されるブロックを示すデータを受信し、前記第4記憶部に記憶することが好ましい。
【発明の効果】
【0014】
本発明によれば、ソフトウェア更新後の再起動に要する時間を短縮することができる。
【図面の簡単な説明】
【0015】
【図1】第1実施形態に係る携帯電話機の外観斜視図である。
【図2】第1実施形態に係る携帯電話機の機能を示すブロック図である。
【図3】第1実施形態に係るソフトウェアの更新システムを示す概略図である。
【図4】第1実施形態に係るNANDからSDRAMへのプログラムコードのコピー処理を示す図である。
【図5】第1実施形態に係るNANDにおけるバックグラウンド更新処理を示す図である。
【図6】第1実施形態に係るバックグラウンド更新が終了し、再起動した際のSDRAMへのコピー処理を示す図である。
【図7】第1実施形態に係るMPUの処理を示すフローチャートである。
【図8】第2実施形態に係るMPUの処理を示すフローチャートである。
【発明を実施するための形態】
【0016】
<第1実施形態>
以下、本発明の第1実施形態について説明する。なお、本実施形態では、電子機器の一例として、携帯電話機1を説明する。なお、本発明の電子機器はこれには限られず、例えば、PHS(Personal Handy phone System)やPDA(Personal Digital Assistant)の他、ナビゲーション装置やパーソナルコンピュータ等、様々な電子機器に適用可能である。
【0017】
図1は、本実施形態に係る携帯電話機1(電子機器)の外観斜視図である。なお、図1は、いわゆる折り畳み型の携帯電話機の形態を示しているが、本発明に係る携帯電話機の形態はこれに限られない。例えば、両筐体を重ね合わせた状態から一方の筐体を一方向にスライドさせるようにしたスライド式や、重ね合せ方向に沿う軸線を中心に一方の筐体を回転させるようにした回転式(ターンタイプ)や、操作部と表示部とが1つの筐体に配置され、連結部を有さない形式(ストレートタイプ)でもよい。
【0018】
携帯電話機1は、操作部側筐体2と、表示部側筐体3と、を備えて構成される。操作部側筐体2は、表面部10に、操作部11と、携帯電話機1の使用者が通話時に発した音声が入力されるマイク12と、を備えて構成される。操作部11は、各種設定機能や電話帳機能やメール機能等の各種機能を作動させるための機能設定操作ボタン13と、電話番号の数字やメールの文字等を入力するための入力操作ボタン14と、各種操作における決定やスクロール等を行う決定操作ボタン15と、から構成されている。
【0019】
また、表示部側筐体3は、表面部20に、各種情報を表示するための表示部21と、通話の相手側の音声を出力するレシーバ22と、を備えて構成されている。
【0020】
また、操作部側筐体2の上端部と表示部側筐体3の下端部とは、ヒンジ機構4を介して連結されている。また、携帯電話機1は、ヒンジ機構4を介して連結された操作部側筐体2と表示部側筐体3とを相対的に回転することにより、操作部側筐体2と表示部側筐体3とが互いに開いた状態(開放状態)にしたり、操作部側筐体2と表示部側筐体3とを折り畳んだ状態(折畳み状態)にしたりできる。
【0021】
図2は、本実施形態に係る携帯電話機1の機能を示すブロック図である。携帯電話機1は、MPU30(更新部、制御部)と、電源部31と、無線部32(通信部)と、アンテナ33と、SDRAM34(第2記憶部)と、NAND35(第1記憶部、第3記憶部、第4記憶部)と、操作部11と、表示部21と、音声制御部36と、を備える。
【0022】
MPU30は、携帯電話機1の全体を制御しており、例えば、表示部21、無線部32、音声制御部36等に対して所定の制御を行う。また、MPU30は、操作部11等から入力を受け付けて、各種処理を実行する。そして、MPU30は、処理実行の際には、SDRAM34およびNAND35を制御し、各種プログラムおよびデータの読み出し、およびデータの書き込みを行う。
【0023】
電源部31は、携帯電話機1の各部へ電源を供給している。また、電源ON/OFFを切り替える所定の操作入力に応じて、電源部31は、電源の供給先を変更する。すなわち、電源OFFの場合には、例えばSDRAM34等の限られた部位のみに電源を供給する。
【0024】
無線部32は、所定の使用周波数帯(例えば、2GHz帯や800MHz帯等)で外部装置(基地局)と通信を行う。そして、無線部32は、アンテナ33より受信した信号を復調処理し、処理後の信号をMPU30に供給し、また、MPU30から供給された信号を変調処理し、アンテナ33から外部装置に送信する。
【0025】
SDRAM34は、MPU30により作業用に使用される記憶装置であり、電流の供給を受け続けることによりデータを保持する揮発性の記憶装置である。なお、携帯電話機1は、電源をOFFにした場合にも、電源部31によりSDRAM34へ電流を供給し続ける。これにより、例えば再起動時に一旦電源がOFFとなった場合にも、SDRAM34に記憶されたデータは保持される(セルフリフレッシュ)。
【0026】
NAND35は、ソフトウェアのプログラムコード等を静的に記憶する不揮発性の記憶装置である。SDRAM34へのデータの読み書きは、NAND35へのそれよりも速いため、NAND35に記憶されたプログラムコードの一部または全部をSDRAM34にコピーすることにより、MPU30で実行される。また、無線部32により受信(ダウンロード)したソフトウェア、あるいはソフトウェアの更新情報データは、このNAND35に記憶される。
【0027】
表示部21は、MPU30の制御に従って、所定の画像処理を行う。そして、処理後の画像データをフレームメモリに蓄え、所定のタイミングで画面出力する。
【0028】
音声制御部36は、MPU30の制御に従って、無線部32から供給された信号に対して所定の音声処理を行い、処理後の信号をレシーバ22に出力する。レシーバ22は、音声制御部36から供給された信号を外部に出力する。なお、この信号は、レシーバ22に代えて、または、レシーバ22と共に、スピーカ(図示せず)から出力されるとしてもよい。
【0029】
また、音声制御部36は、MPU30の制御に従って、マイク12から入力された信号を処理し、処理後の信号を無線部32に出力する。無線部32は、音声制御部36から供給された信号に所定の処理を行い、処理後の信号をアンテナ33より出力する。
【0030】
図3は、本実施形態に係るソフトウェアの更新システムを示す概略図である。携帯電話機1で利用されるソフトウェアは、管理サーバにて新旧のバージョン管理がされている。管理サーバは、データベースにてソフトウェアのプログラムコードと、旧バージョンから新バージョンへ更新するための更新情報データとを保持する。そして、管理サーバは、携帯電話機1からの要求に応じて、最新のプログラムコードまたは更新情報データを、基地局を介して送信する。
【0031】
以下、携帯電話機1で実行されるソフトウェアを新バージョンへ更新するための、MPU30の処理内容を説明する。
【0032】
図4は、本実施形態に係るNAND35からSDRAM34へのプログラムコードのコピー処理を示す図である。この処理では、MPU30は、携帯電話機1の電源がONとなったときに、実行対象のソフトウェアのプログラムコードを、作業用の記憶装置であるSDRAM34へコピーする。
【0033】
NAND35において、プログラムコードはブロック単位に格納されており、SDRAM34へも、このブロック単位で順次コピーされる。そして、全ブロックのコピーが完了すると、MPU30は、SDRAM34上でソフトウェアを実行し、ユーザの利用が開始される。
【0034】
なお、前述のセルフリフレッシュ機能が動作しているときは、SDRAM34のデータが保持されているので、本処理は省略され、MPU30は、即座にSDRAM34上でソフトウェアを実行することができる。
【0035】
図5は、本実施形態に係る更新情報データを受信した後の、NAND35におけるバックグラウンド更新処理を示す図である。この処理は、携帯電話機1が利用され、SDRAM34上でソフトウェアが実行されている間に実行される。
【0036】
MPU30は、旧バージョンのソフトウェアを新バージョンへ更新するための差分データ(更新情報データ)をサーバより受信すると、当該差分データをNAND35の差分データ用の記憶領域に記憶する。続いて、この差分データおよび、NAND35の該当ブロックにある更新前のイメージに基づいて、更新後のイメージを生成すると、このブロックを更新後のイメージで更新する。
【0037】
さらに、MPU30は、差分データによりNAND35のどのブロックを更新したのか(例えば、ブロック1〜ブロック3)を示す更新ブロック情報を、後述の処理のために生成して記憶しておく。
【0038】
図6は、本実施形態に係るバックグラウンド更新が終了し、再起動した際のSDRAM34へのコピー処理を示す図である。
【0039】
たとえ、前述のセルフリフレッシュ機能が動作していても、NAND35の更新が行われた場合には、SDRAM34に格納されているソフトウェアは旧バージョンである。したがって、NAND35からのコピー処理(図4参照)が行われないと、新バージョンのソフトウェアは実行されない。
【0040】
ところが、図4に示すようにMPU30が全ブロックをコピーした場合において、全てのブロックが更新されないとき(例えば、ブロック1〜ブロック3のみが更新されるとき)、MPU30は、NAND35とSDRAM34のデータが同じブロックについてもNAND35からSDRAM34へのコピーを行うため、処理の終了までに時間が掛かる。
【0041】
そこで、本実施形態では、バックグラウンド更新処理にて生成された更新ブロック情報に基づいて、MPU30は、更新されたNAND35のブロックのデータのみを、SDRAM34の対応するブロックへコピーする。その他のブロックは、セルフリフレッシュ機能により再起動前のデータを保持するため、MPU30は、最小限のコピー処理にて、更新後のデータをSDRAM34上に展開することが可能となる。したがって、更新後のデータをユーザが利用可能となるまでの時間が短縮される。
【0042】
図7は、本実施形態に係るMPU30の処理を示すフローチャートである。
ステップS1では、MPU30は、携帯電話機1の起動処理を行う。SDRAM34のデータが保持されていない場合、MPU30は、NAND35からSDRAM34へデータをコピーした後に当該データを実行する(図4参照)。
【0043】
ステップS2では、MPU30は、更新の存在が通知されたことに応じて、基地局を介して所定のサーバからソフトウェア更新の差分データをダウンロードする。MPU30は、ダウンロードした差分データをNAND35に記憶する。
【0044】
ステップS3では、MPU30は、NAND35に記憶されているソフトウェア(データ)のバックグラウンド更新を実行するか否かを判定する。具体的には、ユーザからの所定の指示入力を受け付けたか否かを判定する。この判定がYESの場合はステップS4に移り、判定がNOの場合は指示入力を待機する。
【0045】
ステップS4では、MPU30は、ステップS2で受信した差分データによるバックグラウンド更新が完了するまで、ループ処理を実行する。全ブロックを更新すると、MPU30は、当該ループ処理を終了し、ステップS7に移る。
【0046】
ステップS5では、MPU30は、ステップS2で受信した差分データに基づいて、NAND35のブロック単位に、プログラムコードのバックグラウンド更新を行う(図5参照)。
【0047】
ステップS6では、MPU30は、ステップS5で更新したブロックを示す更新ブロック情報をNAND35に記録する。
【0048】
ステップS7では、MPU30は、携帯電話機1を再起動し、起動処理を実行する。具体的には、ステップS6で記録された更新ブロック情報を参照し、NAND35からSDRAM34へ、更新されたブロックのみをコピーする(図6参照)。なお、前述したように、更新されないブロックに関しては、SDRAM34は再起動前のデータを保持する。
【0049】
本処理では、ユーザからの指示入力に応じてバックグラウンド更新を開始したが、これには限られない。例えば、受信した差分データの属性として付加された重要度に応じて、自動的に開始してもよい。また、重要度にかかわらず、自動的にバックグラウンド更新を開始する態様であってもよい。
【0050】
<第2実施形態>
以下、本発明の第2実施形態について説明する。第1実施形態では、更新ブロック情報をMPU30が生成して記録したが、本実施形態では、サーバから更新ブロック情報をダウンロードする。
【0051】
図8は、本実施形態に係るMPU30の処理を示すフローチャートである。なお、第1実施形態(図7)と同様の処理については同一の符号を付し、説明を省略または簡略化する。
【0052】
ステップS1での起動処理の後、ステップS2aにおいて、MPU30は、ソフトウェア更新のための差分データと共に、いずれのブロックを更新するのかを示す更新ブロック情報をダウンロードする。MPU30は、受信した差分データおよび更新ブロック情報を、NAND35の受信したデータ用の領域に記憶する。
【0053】
MPU30は、ステップS3において、バックグラウンド更新を実行すると判定すると、ステップS4からステップS5において、ステップ差分データに基づいてNAND35のバックグラウンド更新を実行する。
【0054】
そして、ステップS7において、MPU30は、携帯電話機1を再起動し、起動処理を実行する。ここでは、第1実施形態と同様に、ステップS2aで記憶された更新ブロック情報を参照し、NAND35からSDRAM34へ、更新されたブロックをコピーする(図6参照)。
【0055】
このように、サーバから更新ブロック情報の提供を受けることにより、第1実施形態においてバックグラウンド更新中に更新ブロック情報を生成して記憶していた処理負荷が低減される。
【0056】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されるものではない。
【0057】
前述の実施形態では、バックグラウンド更新後の再起動時において、NAND35からSDRAM34へプログラムコードをコピーする処理について述べたが、本発明の適用はこれには限られない。例えば、通常起動時にNAND35を更新した後のコピー処理に適用してもよい。
【0058】
また、携帯電話機1は、基地局を介して無線にて更新情報データを取得することとしたが、これには限られず、他の電子機器(例えば、パーソナルコンピュータ)や外付けの記憶装置から有線にて取得することとしてもよい。
【符号の説明】
【0059】
1 携帯電話機(電子機器)
11 操作部
21 表示部
30 MPU(更新部、制御部)
31 電源部
32 無線部(通信部)
33 アンテナ
34 SDRAM(第2記憶部)
35 NAND(第1記憶部、第3記憶部、第4記憶部)
36 音声制御部

【特許請求の範囲】
【請求項1】
ソフトウェアのプログラムコードをブロック単位で格納する不揮発性の第1記憶部と、
前記第1記憶部に格納されたプログラムコードを更新するための更新情報データを受信する通信部と、
前記通信部により受信した更新情報データに基づいて、前記第1記憶部に格納されたプログラムコードを前記ブロック単位で更新する更新部と、
実行対象のプログラムコードを作業用に格納する揮発性の第2記憶部と、
前記第1記憶部に格納されたプログラムコードの一部または全部を、前記第2記憶部へコピーし、前記第2記憶部に格納されたプログラムコードを実行する制御部と、を備え、
前記制御部は、前記更新部により更新されたブロックのみを前記第2記憶部へコピーすることを特徴とする電子機器。
【請求項2】
前記制御部がプログラムコードの実行を再起動する場合において、前記第2記憶部は、電流が供給され、再起動前に格納されていた前記実行対象のプログラムコードを、再起動後も保持することを特徴とする請求項1に記載の電子機器。
【請求項3】
前記通信部により受信した更新情報データを記憶する第3記憶部をさらに備える請求項1または請求項2に記載の電子機器。
【請求項4】
前記更新情報データに基づいて更新されるブロックを示すデータを記憶する第4記憶部をさらに備え、
前記更新部は、前記第1記憶部に格納されたプログラムコードを更新したときに、当該更新したブロックを示すデータを前記第4記憶部に記憶することを特徴とする請求項1から請求項3のいずれか1項に記載の電子機器。
【請求項5】
前記更新情報データに基づいて更新されるブロックを示すデータを記憶する第4記憶部をさらに備え、
前記通信部は、前記更新情報データと共に、前記更新されるブロックを示すデータを受信し、前記第4記憶部に記憶することを特徴とする請求項1から請求項3のいずれか1項に記載の電子機器。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2010−231300(P2010−231300A)
【公開日】平成22年10月14日(2010.10.14)
【国際特許分類】
【出願番号】特願2009−75530(P2009−75530)
【出願日】平成21年3月26日(2009.3.26)
【出願人】(000006633)京セラ株式会社 (13,660)
【Fターム(参考)】