JP2009271737A - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP2009271737A
JP2009271737A JP2008121829A JP2008121829A JP2009271737A JP 2009271737 A JP2009271737 A JP 2009271737A JP 2008121829 A JP2008121829 A JP 2008121829A JP 2008121829 A JP2008121829 A JP 2008121829A JP 2009271737 A JP2009271737 A JP 2009271737A
Authority
JP
Japan
Prior art keywords
software
data
stored
updating
update
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008121829A
Other languages
English (en)
Other versions
JP5167936B2 (ja
Inventor
Tomoaki Nakanishi
智明 中西
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2008121829A priority Critical patent/JP5167936B2/ja
Publication of JP2009271737A publication Critical patent/JP2009271737A/ja
Application granted granted Critical
Publication of JP5167936B2 publication Critical patent/JP5167936B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】ソフトウェアの更新時における情報処理端末の信頼性の向上を図る。
【解決手段】自装置にて実行するソフトウェアのデータを二重化して記憶した記憶手段を備え、二重化されたソフトウェアのうち一方を実行して使用する情報処理装置である。そして、この情報処理装置は、記憶手段に記憶されているソフトウェアのうち、使用されている一方のソフトウェアのデータに基づいて、使用されていない他方のソフトウェアを更新するソフトウェア更新手段を備えている。
【選択図】図2

Description

本発明は、情報処理装置にかかり、特に、実行するソフトウェアを更新する機能に特徴を有する情報処理装置に関する。
近年の携帯通信端末は、非常に多くの機能を有して構成されている。そして、各機能は、当該機能用ソフトウェアが携帯通信端末に組み込まれることによって実現されることが多い。ところが、携帯通信端末は、販売後に種々の利用者にて使用されることによって明らかになり指摘される不具合も多い。かかる場合には、ソフトウェアの書換えによって対応を実施している。
一方で、携帯通信端末の場合、その構造上、内部にバッテリを持ち、また、バッテリはユーザ操作により取り外ししやすい場合が多い。そのため、上述したようにソフトウェアの書換えを行っている最中にバッテリの残量が無くなったり、取り外されたりしてバッテリ動作ができなくなる、という状態が発生する可能性がある。そして、プログラムコードの部分が完全に書き換えられる前にこのような現象が発生した場合、ソフトウェアによる機能の起動ができなくなってしまう、と言った障害が発生してしまう。
また、プログラムの高度化により、大容量のメモリが要求されるようになった。メモリとしては、安価なNAND型フラッシュメモリが主流となりつつあるが、このメモリは一定値以下のハードウェアとしての不良が許容されているため、万が一、使用中にプログラム部分の破損が発生した場合には、装置として機能しなくなる可能性がある。
これに対して、特許文献1には、端末にソフトウェアを二重化して記憶することが開示されている。そして、この文献では、二重化したソフトウェアのうち、使用されていないソフトウェアを先に更新する技術が開示されている。また、特許文献2には、移動端末装置内に当該移動端末装置の本体プログラムを2面化して記憶し、一方を更新する技術が開示されている。これによると、一方の更新に失敗した場合であっても、更新されていない他方のプログラムを使用して、更新前の本体プログラムの起動を可能としている。
特開平3−33959号公報 特開2007−189332号公報
しかしながら、上述した特許文献に開示の技術では、以下のような問題があった。まず、使用されていないソフトウェアを更新する場合には、当該更新対象となっている使用されていないソフトウェアが正常でないこともあり、この場合には、更新も正常に実行できない、という問題が生じる。また、使用されているソフトウェアを更新する場合には、使用されているソフトウェアの更新が失敗したときに、他方の使用されていないソフトウェアが正常でないと、正常に端末を起動ができない、という問題が生じうる。
このため、本発明の目的は、上述した課題である、ソフトウェアの更新時における情報処理端末の信頼性の向上を図ることにある。
そこで、本発明の一形態である情報処理装置は、自装置にて実行するソフトウェアのデータを二重化して記憶した記憶手段を備え、二重化されたソフトウェアのうち一方を実行して使用する情報処理装置である。そして、この情報処理装置は、記憶手段に記憶されているソフトウェアのうち、使用されている一方のソフトウェアのデータに基づいて、使用されていない他方のソフトウェアを更新するソフトウェア更新手段を備えている。
また、本発明の他の形態であるプログラムは、自装置にて実行するソフトウェアのデータを二重化して記憶した記憶手段を備え、二重化されたソフトウェアのうち一方を実行して使用する情報処理装置に、記憶手段に記憶されているソフトウェアのうち、使用されている一方のソフトウェアのデータに基づいて、使用されていない他方のソフトウェアを更新するソフトウェア更新手段、を実現させる、という構成を採っている。
さらに、本発明の他の形態であるソフトウェア更新方法は、自装置にて実行するソフトウェアのデータを二重化して記憶した記憶手段を備え、二重化されたソフトウェアのうち一方を実行して使用する情報処理装置におけるソフトウェア更新方法であって、記憶手段に記憶されているソフトウェアのうち、使用されている一方のソフトウェアのデータに基づいて、使用されていない他方のソフトウェアを更新するソフトウェア更新工程を有する、という構成を採っている。
本発明は、以上のように構成されるため、ソフトウェアを正常に更新することができ、当該ソフトウェアを実行する情報処理装置の信頼性の向上を図ることができる、という優れた効果を有する。
本発明は、携帯電話端末などの情報処理端末に組み込まれるソフトウェアの更新処理において、書換え処理の途中でハードウェア故障が発生しない限り、より確実なソフトウェアの書換えを行うことを可能とする点に特徴を有する。
そして、本発明の一形態である情報処理装置は、自装置にて実行するソフトウェアのデータを二重化して記憶した記憶手段を備え、二重化されたソフトウェアのうち一方を実行して使用する情報処理装置であって、上記記憶手段に記憶されているソフトウェアのうち、使用されている一方のソフトウェアのデータに基づいて、使用されていない他方のソフトウェアを更新するソフトウェア更新手段を備えた、という構成を採る。
また、上記情報処理装置は、ソフトウェアを更新する差分データを取得して記憶手段に記憶する差分データ取得手段を備え、上記ソフトウェア更新手段は、記憶手段に記憶されているソフトウェアのうち、使用されている一方のソフトウェアのデータと、記憶手段に記憶されている差分データと、に基づいて、記憶手段に記憶されており使用されていない他方のソフトウェアのデータを更新する、という構成を採る。
また、上記ソフトウェア更新手段は、記憶手段に記憶されており更新した他方のソフトウェアを使用状態とし、当該他方のソフトウェアのデータをコピーして記憶手段に記憶されている一方のソフトウェアを更新する、という構成を採る。
また、上記情報処理装置は、各ソフトウェアの使用状態を検出する使用状態検出手段を備え、上記ソフトウェア更新手段は、使用状態検出手段による検出結果に応じて、記憶手段に記憶されているソフトウェアのうち、使用されている一方のソフトウェアのデータに基づいて、使用されていない他方のソフトウェアを更新する、という構成を採る。
さらに、上記情報処理装置は、記憶手段に記憶されている各ソフトウェアの更新状況を検出する更新状況検出手段を備え、上記ソフトウェア更新手段は、更新状況検出手段による検出結果に応じて、記憶手段に記憶されており更新されているソフトウェアを使用状態とし、当該使用状態となったソフトウェアのデータをコピーして記憶手段に記憶されており更新されていないソフトウェアを更新する、という構成を採る。
上記発明によると、情報処理装置は、二重化されたソフトウェアを、使用されている一方のソフトウェアのデータに基づいて、使用されていない他方のソフトウェアを更新する。具体的には、使用されている一方のソフトウェアのデータと、更新に必要な差分データとを使用して、使用されていない他方のソフトウェアを更新する。これにより、使用されていない他方のソフトウェアが正常ではない場合であっても、当該他方のソフトウェアが、使用されている正常な一方のソフトウェアを用いて、正常に更新される。従って、ソフトウェアを常に正常に更新することができ、当該ソフトウェアを実行する情報処理装置の信頼性の向上を図ることができる。特に、ソフトウェアが、情報処理装置の基本的な動作の制御を行い当該情報処理装置に組み込まれるファームウェアである場合には、より効果的である。
また、上述したように他方のソフトウェアの更新後には、当該更新された他方のソフトウェア自体をコピーして一方のソフトウェアを更新するため、当該一方のソフトウェアも正確に更新することが可能となる。その結果、情報処理装置の更なる信頼性の向上を図ることができる。
以下、本発明の具体的な構成を、実施形態にて説明する。なお、実施形態では、情報処理端末の一例として、通信可能な携帯端末を挙げて説明するが、いかなる情報処理端末にも適用可能である。
<実施形態1>
本発明の第1の実施形態を、図1乃至図7を参照して説明する。図1乃至図2は、携帯端末の構成を示すブロック図である。図3乃至図6は、携帯端末の動作を示すフローチャートである。図7は、携帯端末におけるソフトウェアの更新及び使用状態を示す表である。
[構成]
図1乃至図2に、本実施形態における携帯端末1の構成を示す。なお、図1は、携帯端末1全体の構成を示すブロック図であり、図2は、CPUとフラッシュROMの詳細な構成を示す機能ブロック図である。
図1に示すように、携帯端末1は、自端末の動作を制御する演算装置であるCPU2と、当該CPU2にて処理を実行する際に使用するワークエリアとなるRAM4と、制御プログラムや各種フラグ、取り込んだ差分データの一時保存等を行うフラッシュROM3(記憶手段)と、を備えている。また、通信事業者やRFIDなどのソフトウェアの差分データを持つ外部ネットワーク上のデータサーバ100等と接続するための無線部9(ベースバンド部91、RF部92)と、各種情報を表示する表示部5と、データを入力するためのキー入力部6と、外部メモリ200より差分データを取り込むためのメモリリーダ8と、を備えている。なお、無線部9、メモリリーダ8は、同時に実装をする必要はない。また、外部機器との接続端子である外部I/F7を備えていてもよく、この場合には、外部I/F7に外部機器であるメモリリーダ300等を接続することで、外部メモリ200から差分データを取り込むことが可能となる。
そして、本実施形態における携帯端末1は、さらに、以下の構成を備えている。具体的には、図2に示すように、CPU2に本発明であるプログラムが組み込まれることによって構成された、差分データ取得部21と、フラグ確認・設定部22と、ソフトウェア更新部23と、を備えている。また、フラッシュROM3内には、差分データ記憶部31と、フラグ記憶部32と、ソフトウェア記憶部33と、を備えている。以下、各構成について詳述する。
上記ソフトウェア記憶部33は、携帯端末1のCPU2に組み込まれ、当該携帯端末1の各種機能を実現するためのソフトウェアを二重化して記憶している。このソフトウェアは、例えば、携帯端末1の基本的な動作の制御を行い当該情報処理装置に組み込まれるファームウェアである。但し、ソフトウェアは、ファームウェアであることに限定されず、携帯端末1の機能の一部を実現するためにファームウェア上に組み込まれるソフトウェアであってもよい。そして、上述したように、ソフトウェアは二重化されているため、初期状態では、「正データ」と、「副データ」と、といった同一内容のソフトウェアデータを記憶している。なお、ここでは、一例として、二重化されているソフトウェアデータのうち、一方を「正データ」と呼び、他方を「副データ」と呼ぶこととする。
そして、携帯端末1のCPU2は、上記「正データ」、「副データ」のうち、いずれか一方を読み出して実行し、使用する。なお、上記ソフトウェアは、CPU2に上述した本発明の特徴となる機能である差分データ取得部21と、フラグ確認・設定部22と、ソフトウェア更新部23と、を実現させるプログラムを含んでいてもよい。
また、フラグ記憶部32は、以下の4つのフラグを記憶している。
1.正データ書換え完了フラグ(以下、「完了フラグ(正)」と記載する。
2.副データ書換え完了フラグ(以下、「完了フラグ(副)」と記載する。
3.有効データフラグ
4.書換え失敗フラグ
上記1.「完了フラグ(正)」と2.「完了フラグ(副)」は、二重化されたソフトウェアである「正データ」と「副データ」のそれぞれの書換えが終了したことを示すフラグである。これらフラグは、後述するように、差分データを取得すると、正副の両方が「未完了」を示すようリセットされ、ソフトウェアの更新が完了すると、完了したデータのフラグが「完了」を示すよう設定される。これら完了フラグを参照することで、各ソフトウェアの書換えがどこまで進んでいるかを検出することが可能である。
また、上記3.「有効データフラグ」は、正副のソフトウェアのうち、どちらが現在使用されているかを示すフラグである。このフラグは、CPU2によるソフトウェアの使用状況によって変化する。これを参照することで、どちらが実際にCPU2によって使用されているかを検出することができる。また、上記4.「書換え失敗フラグ」は、書換えの最中にハードウェア不良により書換えができなくなった場合に設定されるフラグである。本フラグは起動時に判定され、有効の場合は通常起動は不可とし、場合によってはメーカ等でしか書き換えることのできない特殊書換えモードに遷移させるなどの処理を行うこととする。
次に、上記差分データ取得部21について説明する。差分データ取得部21(差分データ取得手段)は、上述したソフトウェア記憶部33に記憶されている正データ及び副データを更新するための差分データを取得して、差分データ記憶部31に記憶するよう機能する。なお、差分データの取得は、例えば、無線通信を介してデータサーバ100から取得してもよく、あるいは、メモリリーダ8や外部I/F7を介して外部メモリ200から取得してもよい。また、差分データ取得部21は、ソフトウェアの差分データを取得すると、フラグ確認・設定部22に、上記「完了フラグ(正)」、「完了フラグ(副)」を「未完了」に設定(リセット)するよう指示する。
次に、フラグ確認・設定部22について説明する。フラグ確認・設定部22は、CPU2や差分データ取得部21、ソフトウェア更新部23からの指令などを受けて、フラグ記憶部32に記憶されている各種フラグの状態の確認や、設定・リセット処理を行う。例えば、上述したように、差分データ取得部21から「完了フラグ(正)」、「完了フラグ(副)」を「未完了」に設定(リセット)するよう指示を受けると、当該指示に従い、これらのフラグをリセットする。また、後述するソフトウェア更新部23にてソフトウェアの更新が完了した旨の通知を受けると、完了したソフトウェアのフラグを「完了」に設定する。
また、フラグ確認・設定部22は、例えば、ソフトウェア更新部23からの指示に応じて、あるいは、予め設定されたタイミングにて、「完了フラグ(正)」、「完了フラグ(副)」を調べて、各ソフトウェアの更新状況が完了か未完了かを検出し、ソフトウェア更新部23に通知する(更新状況検出手段)。一方で、更新が失敗した場合には、「書換え失敗フラグ」を設定する。
さらに、フラグ確認・設定部22は、例えば、CPU2にて使用されているソフトウェアを検出すると、当該使用されているソフトウェア(正または副)を「有効データフラグ」に設定する。そして、ソフトウェア更新部23からの指示に応じて、あるいは、予め設定されたタイミングにて、上記「有効データフラグ」を調べて、正、副のどちらのソフトウェアが使用されているか(使用状態)を検出して、ソフトウェア更新部23に通知する(使用状態検出手段)。
次に、ソフトウェア更新部23について説明する。ソフトウェア更新部23(ソフトウェア更新手段)は、上述したソフトウェア記憶部33に記憶されているソフトウェアである「正データ」と「副データ」とを更新する機能を有する。具体的には、まず、上述したフラグ確認・設定部22にて検出した各ソフトウェアの使用状況や更新状況を確認する。そして、「正データ」及び「副データ」の両ソフトウェアが更新されていない場合には、現在CPU2にて使用されている一方のソフトウェアのデータをソフトウェア記憶部33から読み出し、また、差分データ記憶部31に記憶されている差分データを読み出し、これら読み出した使用されているソフトウェアのデータと差分データとを利用して、使用されていない他方のソフトウェアのデータを更新し、ソフトウェア記憶部33に記憶する。
その後、ソフトウェア更新部23は、更新してソフトウェア記憶部33に記憶した他方のソフトウェアをCPU2にて使用し、上記一方のソフトウェアを使用していない状態とする。そして、更新してソフトウェア記憶部33に記憶し、さらに現在使用状態となっている他方のソフトウェアのデータをコピーして、ソフトウェア記憶部33に記憶されている現在は使用されていない一方のソフトウェアのデータを更新する。
なお、ソフトウェア更新部23は、いずれか1つのソフトウェアが更新されていて、他のソフトウェアが更新されていない場合には、更新が完了しているソフトウェアを使用状態にし、当該ソフトウェアをコピーして、更新されていない他のソフトウェアを更新するよう作動する。
[動作]
次に、上記携帯端末1の動作を、図3乃至図6を参照して説明する。なお、図3は、後述するようにソフトウェアの書換え(更新)が完了した状態から説明する。まず、ソフトウェアの書換えが実施されると、フラグを「完了」に設定する(ステップS1)。ここで、設定されるフラグは、「完了フラグ(正)」と「完了フラグ(副)」の2つのフラグである。
その後、任意のタイミングにて、差分データの取得を行う(ステップS2)。なお、取得した差分データは、書換えが完了するまでの間、一時的にフラッシュROM3内の差分データ記憶部31に保持する。これは、書換え途中でバッテリが無くなった場合等に、再度データを取得しにいく処理をなくすことで、ネットワーク負荷の軽減、フェイルセーフ処理の高速化を行うためである。そして、このとき、「完了フラグ(正)」と「完了フラグ(副)」の2つのフラグが「未完了」に設定され、その後、書換え処理に移行する(ステップS3、ソフトウェア更新工程)。
続いて、図4を参照して、ソフトウェアの書換え処理に進むまでの具体的な動作を説明する。はじめに、正常にソフトウェアを更新されるときの動作を説明する。
まず、書換え完了フラグ(「完了フラグ(正)」、「完了フラグ(副)」)の確認を行い、現在の各ソフトウェアの書換えの状況を確認する(ステップS11,S12,S17)。ここで、「正データ」及び「副データ」の両方のソフトウェアの書換えが完了していると判定されると(ステップS11で「完」、ステップS17で「完」)、そのまま通常起動を行う(ステップS22)。
そして、「正データ」及び「副データ」の両方のソフトウェアの書換えが完了していない(未完了)と判定されると(ステップS11で「未」、ステップS12で「未」)、「有効データフラグ」の確認を行う(ステップS13)。確認後、有効となっているデータを読み出すが(ステップS14,S18)、最初の書換え処理、もしくは、プログラム書換えのうち先に行う書換え処理でエラーとなり、一方のデータで読出しエラーが発生した場合は(ステップS14でYes,ステップS18でYes)、他方にデータに有効データを書き換えた上で(ステップS15,S16,S19,S20)、書換え処理を開始する(ステップS21)。例えば、有効データが「正データ」である場合に(ステップS13で「正」)、正データの読み出しエラーが発生すると(ステップS14でYes)、「有効データフラグ」を「副データ」に書き換えて(ステップS15)、「副データ」が読み出せる状態で(ステップS16でNo)、書換え処理を開始する(ステップS21)。但し、両方のデータが読み出しエラーとなってしまった場合には(ステップS16でYes,S20でYes)、起動不可となる(ステップS23)。
続いて、図5のフローチャートを参照して、実際のソフトウェアの書換え処理について説明する。まず、「有効データフラグ」の確認を行うが(ステップS31)、この確認は、上記図4のステップ13やステップS15、S19の処理の結果を利用してもよい。
そして、有効データつまりCPU2にて「正データ」が読み出されて使用されている場合には(ステップS31で「正」)、「副データ」を書き換えることになる。このとき、書換えに際しては、「副データ」は使用しない。これは、「副データ」は、この時点では使用されていないため、正常かどうかの判断ができないためである。従って、本実施形態では、現時点で問題なく起動できている「正データ」をベースに差分書換えを行う。
具体的に、ソフトウェアの更新処理は、まず、RAM2にテンポラリエリアをとり、そこにソフトウェア記憶部33に記憶している「正データ」をロードすると共に、差分データ記憶部31に記憶されている差分データもロードする。そして、「正データ」と「差分データ」とを利用して、ソフトウェアの書換えを実行する。その後、書き換えたソフトウェアのデータを、「副データ」としてソフトウェア記憶部33にかき戻す(ステップS32)。書込み完了後は、チェックサム確認をするなど、書き込まれたデータの正当性を確認する(ステップS33)。そして、正常に書き込めたことが確認されたら(ステップS33でYes)、「完了フラグ(副)」を「完了」に書き換える(ステップS34)。さらに、その後、「有効フラグ」を「副データ」に書き換え(ステップS35)、更新した「副データ」をCPU2にて使用する。これにより、「正データ」は、使用されていない状態となる。
続いて、「正データ」の書換えを行う。ここでは、既に書き換えられているソフトウェアの記憶部33に記憶されている「副データ」を「正データ」としてコピーすればよい(ステップS36)。そして、正当性の確認後(ステップS37でYes)、「完了フラグ(正)」を「完了」にし(ステップS38)、「有効データフラグ」を「正」に書き換える(ステップS39)。これにより、再度、「正データ」をCPU2にて使用している状態に戻す。
以上のように、全ての書換え処理が完了後、リセットをかけ再起動処理を行う(ステップS40)。なお、この時点で「正データ」及び「副データ」共に、データが正常に書き込まれているため、ここでの有効データフラグの設定は省略してもよい。
なお、ステップS33とステップS37におけるデータ書込み後に、正常に書込みできていないと判断された場合には(ステップS33及びS37でNo)、書換え失敗フラグを設定する(ステップS41)。その後、リセット、再起動処理を実行する(ステップS40)。
次に、図5のステップS31の有効データフラグ確認で、現在使用されているデータが「副データ」であると判定されたとき(ステップS31で「副」)の動作を、図6を参照して説明する。この場合には、「正データ」を書き換えることになる。従って、現時点で問題なく起動できている「副データ」をベースに差分書換えを行う。
具体的に、ソフトウェアの書換えは、まず、RAM2にテンポラリエリアをとり、そこにソフトウェア記憶部33に記憶している「副データ」をロードすると共に、差分データ記憶部31に記憶されている差分データもロードする。そして、「副データ」と「差分データ」とを利用して、ソフトウェアの書換えを実行する。その後、書き換えたソフトウェアのデータを、「正データ」として、ソフトウェア記憶部33に書き戻す(ステップS42)。書込み完了後は、チェックサム確認をするなど、書き込まれたデータの正当性を確認する(ステップS43)。そして、正常に書き込めたことが確認されたら(ステップS43でYes)、「完了フラグ(正)」を「完了」に書き換える(ステップS44)。さらに、その後、「有効フラグ」を「正データ」に書き換え(ステップS45)、更新した「正データ」をCPU2にて使用する。これにより、「副データ」は、使用されていない状態となる。
続いて、「副データ」の書換えを行う。ここでは、既に書き換えられているソフトウェアの記憶部33に記憶されている「正データ」を「副データ」としてコピーすればよい(ステップS46)。そして、正当性の確認後(ステップS47でYes)、「完了フラグ(副)」を「完了」にし(ステップS48)、「有効データフラグ」を「副」に書き換える(ステップS49)。これにより、再度、「副データ」をCPU2にて使用している状態に戻す。
以上のように、全ての書換え処理が完了後、リセットをかけ再起動処理を行う(ステップS50)。なお、この時点で「正データ」及び「副データ」共に、データが正常に書き込まれているため、ここでの有効データフラグの設定は省略してもよい。
なお、ステップS43とステップS47におけるデータ書込み後に、正常に書込みできていないと判断された場合には(ステップS43及びS47でNo)、書換え失敗フラグを設定する(ステップS51)。その後、リセット、再起動処理を実行する(ステップS50)。
次に、いずれか1つのデータ、つまり、「正データ」あるいは「副データ」のみの書換えが完了している場合の動作を説明する(図4のステップS12で「完」、ステップS17で「未」)。
例えば、「正データ」の更新が未完了で、「副データ」の更新が完了している場合には(図4のステップS12で「完」)、まず更新されている「副データ」を「有効データ」としてCPU2にて使用されるよう設定する(図5のステップS35)。そして、更新されている「副データ」をコピーして、更新されていない「正データ」を更新する(図5のステップS36)。その後の処理は、上記同様である。
また、「正データ」の更新が完了で、「副データ」の更新が未完了である場合には(図4のステップS17で「未」)、まず更新されている「正データ」を「有効データ」としてCPU2にて使用されるよう設定する(図6のステップS45)。そして、更新されている「正データ」をコピーして、更新されていない「副データ」を更新する(ステップS46)。その後の処理は、上記同様である。
次に、異常処理となった場合の動作について説明する。上述した一連のシーケンスの中で、バッテリが切れる、または、はずされるなど、書換え処理が途中で終了する場合がある。すると、書き換え中のファイルは異常状態となることがある。つまり、上述した図5のステップS41及び図6のステップS51で、書換え失敗フラグが設定される場合である。この場合には、その後、携帯端末1は、以下のように動作する。なお、以下では、先に書き換えるソフトウェアを「正データ」とした場合を説明する。
強制終了された場合、次の起動時の処理は、必ず図4の先頭からとなるが、強制終了した場所が「正データ」の書換えが終わった後の「完了フラグ(正)」の書換え(図6のステップS44)を行う前後で動作が異なる。
まず、フラグ書換え(図6のステップS44)の前に強制終了した場合は(ステップS43でNo)、「完了フラグ(正)」、「完了フラグ(副)」共に未完了状態となっており、かつ、「データ有効フラグ」が「副データ」となっていることから、最初の書換え時と同じ処理をたどることになる。つまり、この時点では、「正データ」のプログラムが異常状態となっている可能性が高いが、「副データ」をベースに書換えを行うため(図6のステップS42)、「正データ」が異常であっても問題なく正常に当該「正データ」を書き換えることができる。
次に、フラグ書換え(図6のステップS44)の後に強制終了した場合は(ステップS47でNo)、この時点でのフラグの状態は、「完了フラグ(正)」は「完了」、「完了フラグ(副)」は「未完了」、「有効データフラグ」は、「正もしくは副」となっている。すると、「完了フラグ(副)」の確認により(図4のステップS17で「未」)、「有効データフラグ」を「正データ」にする書換え処理(図6のステップS45)を開始する。これにより、書込みが完了している「正データ」をCPU2にて使用させることができ、当該「正データ」からコピーして書き換える「副データ」も(ステップS46)、リセット、再起動が行えるようになる。
なお、正当性の確認でNGとなる場合は、ハードウェアに不良がない限り発生しえない。かかる場合には、「書換え失敗フラグ」を有効にして、図4のステップS23に示すように、通常起動不可状態としてしまう。これにより、リセットの繰り返しが発生することを抑制し、ユーザにこの装置が異常状態にあることを早期通知することができる。また、過度の書込みをなくすことによる装置への負担を軽減することができる。また、異常状態での起動時に発生する可能性のある発熱等、二次障害の発生を抑制することができる。さらに、異常状態に入った直後の状態を保持することによる障害解析の容易化を図ることができる。
ここで、図7に、フローチャートの各ステップにおいて、強制終了されたときのフラグ、及び、データの状態を示す。この図に示すように、どの状態で強制終了された場合でも、リセット後には正常なデータが使用されていることが分かる。
以上により、本実施形態では、データを二重化した携帯端末でのソフト書換えにおいて、ハードウェア不良が発生しない限り確実にソフト書換えを行うことができる。その結果、当該ソフトウェアを実行する携帯端末の信頼性の向上を図ることができる。
ここで、上記では、「正データ」と「副データ」が均等に使用されることを前提としているが、ハードウェアによっては、使用時間にあわせて劣化していく可能性があり、一方のソフトウェアをバックアップとして残しておく使い方も想定される。その場合は「有効データフラグ」を制御することにより対応が可能である。例えば、出荷時、また書換えが完了した時点で、「有効データフラグ」を最後に「正データ」とすることで、基本的には、「正データ」のみが使用されることになる。そして、「正データ」に異常が発生した場合は、「有効データフラグ」を「副データ」に切り替えて一時的に動作させ、その間に「副データ」→「正データ」にコピー、及び、ベリファイ処理を行い、完了した時点で再度、「有効データフラグ」を「正データ」に切り替える。なお、このとき、「副データ」でも異常があった場合は、無理な回復は試みず、起動不可状態とする。
また、上記構成において、「正データ」のソフトウェアを使用している場合においても、「副データ」の正当性の確認を、一定期間毎に、また、この作業自体は動作への影響を考慮してユーザ処理が行われていない間に、実行することが望ましい。
本発明は、ファームウェアが組み込まれる携帯端末などの情報処理装置にて利用することが可能であり、産業上の利用可能性を有する。
携帯端末全体の構成を示すブロック図である。 携帯端末の構成を示す図であり、CPUとフラッシュROMの詳細な構成を示す機能ブロック図である。 携帯端末の動作を示すフローチャートである。 携帯端末の動作を示すフローチャートである。 携帯端末の動作を示すフローチャートである。 携帯端末の動作を示すフローチャートである。 携帯端末に記憶されているフラグ及びデータの状態を示す図である。
符号の説明
1 携帯端末
2 CPU
3 フラッシュROM
4 RAM
5 表示部
6 キー入力部
7 外部I/F
8 メモリリーダ
9 無線部
21 差分データ取得部
22 フラグ確認・設定部
23 ソフトウェア更新部
31 差分データ記憶部
32 フラグ記憶部
33 ソフトウェア記憶部
91 ベースバンド部
92 RF部
100 データサーバ
200 外部メモリ
300 メモリリーダ

Claims (10)

  1. 自装置にて実行するソフトウェアのデータを二重化して記憶した記憶手段を備え、前記二重化されたソフトウェアのうち一方を実行して使用する情報処理装置であって、
    前記記憶手段に記憶されているソフトウェアのうち、使用されている一方のソフトウェアのデータに基づいて、使用されていない他方のソフトウェアを更新するソフトウェア更新手段を備えた、
    ことを特徴とする情報処理装置。
  2. 前記ソフトウェアを更新する差分データを取得して前記記憶手段に記憶する差分データ取得手段を備え、
    前記ソフトウェア更新手段は、前記記憶手段に記憶されているソフトウェアのうち、使用されている一方のソフトウェアのデータと、前記記憶手段に記憶されている前記差分データと、に基づいて、前記記憶手段に記憶されており使用されていない他方のソフトウェアのデータを更新する、
    ことを特徴とする請求項1記載の情報処理装置。
  3. 前記ソフトウェア更新手段は、前記記憶手段に記憶されており更新した前記他方のソフトウェアを使用状態とし、当該他方のソフトウェアのデータをコピーして前記記憶手段に記憶されている前記一方のソフトウェアを更新する、
    ことを特徴とする請求項1又は2記載の情報処理装置。
  4. 前記各ソフトウェアの使用状態を検出する使用状態検出手段を備え、
    前記ソフトウェア更新手段は、前記使用状態検出手段による検出結果に応じて、前記記憶手段に記憶されているソフトウェアのうち、使用されている一方のソフトウェアのデータに基づいて、使用されていない他方のソフトウェアを更新する、
    ことを特徴とする請求項1,2又は3記載の情報処理装置。
  5. 前記記憶手段に記憶されている前記各ソフトウェアの更新状況を検出する更新状況検出手段を備え、
    前記ソフトウェア更新手段は、前記更新状況検出手段による検出結果に応じて、前記記憶手段に記憶されており更新されている前記ソフトウェアを使用状態とし、当該使用状態となったソフトウェアのデータをコピーして前記記憶手段に記憶されており更新されていない前記ソフトウェアを更新する、
    ことを特徴とする請求項1,2,3又は4記載の情報処理装置。
  6. 前記ソフトウェアは、情報処理装置の基本的な動作の制御を行い当該情報処理装置に組み込まれるファームウェアである、
    ことを特徴とする請求項1,2,3,4又は5記載の情報処理装置。
  7. 自装置にて実行するソフトウェアのデータを二重化して記憶した記憶手段を備え、前記二重化されたソフトウェアのうち一方を実行して使用する情報処理装置に、
    前記記憶手段に記憶されているソフトウェアのうち、使用されている一方のソフトウェアのデータに基づいて、使用されていない他方のソフトウェアを更新するソフトウェア更新手段、を実現させるためのプログラム。
  8. 前記ソフトウェア更新手段は、前記記憶手段に記憶されており更新した前記他方のソフトウェアを使用状態とし、当該他方のソフトウェアのデータをコピーして前記記憶手段に記憶されている前記一方のソフトウェアを更新する、
    ことを特徴とする請求項7記載のプログラム。
  9. 自装置にて実行するソフトウェアのデータを二重化して記憶した記憶手段を備え、前記二重化されたソフトウェアのうち一方を実行して使用する情報処理装置におけるソフトウェア更新方法であって、
    前記記憶手段に記憶されているソフトウェアのうち、使用されている一方のソフトウェアのデータに基づいて、使用されていない他方のソフトウェアを更新するソフトウェア更新工程を有する、
    ことを特徴とするソフトウェア更新方法。
  10. 前記ソフトウェア更新工程は、前記記憶手段に記憶されており更新した前記他方のソフトウェアを使用状態とし、当該他方のソフトウェアのデータをコピーして前記記憶手段に記憶されている前記一方のソフトウェアを更新する、
    ことを特徴とする請求項9記載のソフトウェア更新方法。
JP2008121829A 2008-05-08 2008-05-08 情報処理装置 Expired - Fee Related JP5167936B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008121829A JP5167936B2 (ja) 2008-05-08 2008-05-08 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008121829A JP5167936B2 (ja) 2008-05-08 2008-05-08 情報処理装置

Publications (2)

Publication Number Publication Date
JP2009271737A true JP2009271737A (ja) 2009-11-19
JP5167936B2 JP5167936B2 (ja) 2013-03-21

Family

ID=41438229

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008121829A Expired - Fee Related JP5167936B2 (ja) 2008-05-08 2008-05-08 情報処理装置

Country Status (1)

Country Link
JP (1) JP5167936B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011150383A (ja) * 2010-01-19 2011-08-04 Hitachi Medical Corp ファームウェア書き込み方法
JP2011164827A (ja) * 2010-02-08 2011-08-25 Nippon Avionics Co Ltd フラッシュメモリを備えた電子機器およびフラッシュメモリに格納されたプログラムの更新方法
JP2011227713A (ja) * 2010-04-20 2011-11-10 Nippon Telegr & Teleph Corp <Ntt> データ投入方法及びデータ投入システム
JP2016139211A (ja) * 2015-01-26 2016-08-04 Kddi株式会社 ソフトウェア更新装置、方法及びプログラム
JP2016539426A (ja) * 2013-12-05 2016-12-15 グーグル インコーポレイテッド オペレーティングシステムの更新
JP2018018186A (ja) * 2016-07-26 2018-02-01 日立オートモティブシステムズ株式会社 車両制御装置、車載ネットワークシステム
WO2021186987A1 (ja) * 2020-03-16 2021-09-23 Fdk株式会社 制御装置及び制御プログラムの書き換え方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0793276A (ja) * 1993-09-24 1995-04-07 Nec Corp コンピュータの立ち上げ方式
JP2002526828A (ja) * 1998-09-30 2002-08-20 フィーニックス テクノロジーズ リミテッド ブート・ブロックへの書き込みアクセスを可能にする時のブート・ブロック・コードの保護
JP2006508432A (ja) * 2002-11-12 2006-03-09 イノパス・ソフトウェアー・インコーポレーテッド アップグレード中に発生した障害や誤りからの自動復元を含む電子ファイルのアップグレード
JP2007115066A (ja) * 2005-10-21 2007-05-10 Meidensha Corp ディジタル端末のブートプログラム書き替え方法
JP2009544095A (ja) * 2006-07-14 2009-12-10 サムスン エレクトロニクス カンパニー リミテッド Ota可能な携帯端末のプログラム更新システム及び方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0793276A (ja) * 1993-09-24 1995-04-07 Nec Corp コンピュータの立ち上げ方式
JP2002526828A (ja) * 1998-09-30 2002-08-20 フィーニックス テクノロジーズ リミテッド ブート・ブロックへの書き込みアクセスを可能にする時のブート・ブロック・コードの保護
JP2006508432A (ja) * 2002-11-12 2006-03-09 イノパス・ソフトウェアー・インコーポレーテッド アップグレード中に発生した障害や誤りからの自動復元を含む電子ファイルのアップグレード
JP2007115066A (ja) * 2005-10-21 2007-05-10 Meidensha Corp ディジタル端末のブートプログラム書き替え方法
JP2009544095A (ja) * 2006-07-14 2009-12-10 サムスン エレクトロニクス カンパニー リミテッド Ota可能な携帯端末のプログラム更新システム及び方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011150383A (ja) * 2010-01-19 2011-08-04 Hitachi Medical Corp ファームウェア書き込み方法
JP2011164827A (ja) * 2010-02-08 2011-08-25 Nippon Avionics Co Ltd フラッシュメモリを備えた電子機器およびフラッシュメモリに格納されたプログラムの更新方法
JP2011227713A (ja) * 2010-04-20 2011-11-10 Nippon Telegr & Teleph Corp <Ntt> データ投入方法及びデータ投入システム
JP2016539426A (ja) * 2013-12-05 2016-12-15 グーグル インコーポレイテッド オペレーティングシステムの更新
JP2016139211A (ja) * 2015-01-26 2016-08-04 Kddi株式会社 ソフトウェア更新装置、方法及びプログラム
JP2018018186A (ja) * 2016-07-26 2018-02-01 日立オートモティブシステムズ株式会社 車両制御装置、車載ネットワークシステム
WO2021186987A1 (ja) * 2020-03-16 2021-09-23 Fdk株式会社 制御装置及び制御プログラムの書き換え方法
JP7477328B2 (ja) 2020-03-16 2024-05-01 Fdk株式会社 制御装置及び制御プログラムの書き換え方法

Also Published As

Publication number Publication date
JP5167936B2 (ja) 2013-03-21

Similar Documents

Publication Publication Date Title
JP5167936B2 (ja) 情報処理装置
US10114655B2 (en) Rapid start up method for electronic equipment
US20090094450A1 (en) Firmware image update and management
CN106775610B (zh) 一种电子设备启动方法及一种电子设备
US7882388B2 (en) Dual independent non volatile memory systems
JP2009169524A (ja) 宅内設備機器用のネットワークシステム
US20050033954A1 (en) Computer system having BIOS with multiple memory block
JP5870696B2 (ja) 情報処理装置、情報処理装置のシステム動作設定方法及びプログラム
EP2733612B1 (en) Information processing device, method, and program
JP2005284902A (ja) 端末装置、その制御方法及び制御プログラム、ホスト装置、その制御方法及び制御プログラム、遠隔更新システム、方法及びプログラム
JP2010102454A (ja) 情報処理装置、情報処理プログラム
JP5419123B2 (ja) 電子機器システム及びファームウェアの更新方法
JP2007172200A (ja) ソフトウェア更新システム
JP4635993B2 (ja) 起動診断方式、起動診断方法およびプログラム
JP2003228490A (ja) ネットワークに接続される端末装置およびこれを用いたネットワークシステム
JP2005128613A (ja) 画像形成装置
JP2011150383A (ja) ファームウェア書き込み方法
JP5002900B2 (ja) 制御装置とそのプログラム、及び、プログラムダウンロード方法
US20200326950A1 (en) Simulation apparatus, simulation method, and information processing apparatus
JP2018136608A (ja) ファームウェア実行装置、ドライバ実行装置、ドライバ管理装置、ファームウェア管理装置、コンピュータ装置、方法およびプログラム
KR20080065166A (ko) 이동단말기에서 터치패널의 응용 프로그램 다운로드 장치및 방법
CN112231149A (zh) 升级失败的处理方法、装置及电子设备
JP2004110220A (ja) プログラムの更新方法
CN117492799A (zh) 一种软件升级方法、装置、终端设备及存储介质
CN115794179A (zh) 一种程序升级方法、装置、电子设备以及存储介质

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100629

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110404

RD07 Notification of extinguishment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7427

Effective date: 20120712

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120801

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120911

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121106

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121127

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121210

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees