JP4801041B2 - ファームウェアアップグレードにおける自動バックアップストア - Google Patents

ファームウェアアップグレードにおける自動バックアップストア Download PDF

Info

Publication number
JP4801041B2
JP4801041B2 JP2007502324A JP2007502324A JP4801041B2 JP 4801041 B2 JP4801041 B2 JP 4801041B2 JP 2007502324 A JP2007502324 A JP 2007502324A JP 2007502324 A JP2007502324 A JP 2007502324A JP 4801041 B2 JP4801041 B2 JP 4801041B2
Authority
JP
Japan
Prior art keywords
memory block
address space
delta file
version
block
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.)
Expired - Fee Related
Application number
JP2007502324A
Other languages
English (en)
Other versions
JP2007528071A (ja
Inventor
ペーター ユング,
Original Assignee
ソニー エリクソン モバイル コミュニケーションズ, エービー
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 ソニー エリクソン モバイル コミュニケーションズ, エービー filed Critical ソニー エリクソン モバイル コミュニケーションズ, エービー
Priority claimed from PCT/EP2005/050701 external-priority patent/WO2005085997A2/en
Publication of JP2007528071A publication Critical patent/JP2007528071A/ja
Application granted granted Critical
Publication of JP4801041B2 publication Critical patent/JP4801041B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • G11C16/105Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99954Version management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

発明の分野
本発明は、コンピュータ及びマイクロプロセッサのシステムに用いられる方法であって、ターゲットアップグレードのためのデルタファイルを受信して実行することにより、ソフトウェアをアップグレードする方法に関する。特に、本発明は、ターゲットアップグレードにおいて潜在的な電力の損失に対処するように改良されたソリューションに関する。
バックグラウンド
現在のソフトウェアバージョンとアップデート後のソフトウェアバージョンとの差分を送るだけで、ソフトウェアのバイナリをアップグレードすることを可能にするいくつかの技術がある。新バージョンのソフトウェアの特定の部分における差分は、通常、ソースバイナリの約1-10%である。差分ファイル(一般に指示されたデルタファイル)を使用する手順は、アップデートがGPRS(汎用パケット無線サービス)のような低いバンド幅ベアラで送られる場合に、特にメリットが大きい。この技術は、ファームウェア・アップグレード・オーバー・ザ・エアー(Firmware Upgrade Over the Air)と呼ばれて、現在、OMAにおいて標準化されている。このタイプのアップグレードの動作の1例を概説したものを次に示す:
携帯電話は、マイクロプロセッサで制御されアップグレードされるべきデバイスであるが、現在、ソフトウェアV1を有する。目標は、ソフトウェアを最新のリリースバージョンV2にアップデートすることである。以下の手続きは、携帯電話におけるソフトウェアをアップデートするために実行される:
1. ターゲットソフトウェアV2をコンパイルしてリンクする;
2. VlからV2までバイナリの差分D12を計算する。D12は、V1からV2を作成するのに必要なすべての情報を含んでいる;
3. ターゲットへ例えばGPRSでD12を転送する;
4. 現在のバイナリのV1とD12とを用いてターゲットにV2を作成することにより、ターゲットデバイスを再フラッシュ、すなわち、アップグレードさせる。
このように、ターゲットデバイスは、小さいアップデートパッケージD12をデバイスに送るだけでV2にアップデートされた。
上記したアップデートプロセスにおける重要なステップは、ターゲットアップグレードのステップである。ターゲットソフトウェア、例えば、RTOS(リアルタイムオペレーティングシステム)及びアプリケーションが再フラッシュされるという事実のために、電力損失はデバイスに致命的なものとなり得る。アップデートプロセスは100%のフォルトトレランス安全性を有する必要がある。つまり、予期しない停電の後であってもアップデートプロセスを続けることができなければならない。フェイルセーフ能力を実行するのに使用される従来の方法は二相コミットと呼ばれる。この二相コミットは、データベースのような多くのアプリケーションで既に使用されている。アイデアは、アップデート中に古い情報のコピーを取っておくことである。アップデートが完了するまで、古い情報は削除されない。この様にして、アップデート中にアップデートが失敗したら、直前の状態に戻ることができる。
NOR型フラッシュを使用するデバイスに対して、通常、メモリは等しい大きさの64kBのブロックに分割されている。NORデバイスに書込みを行うとき、特別な制約がある。全ブロックしかすぐに消すことができず、各ブロックのすべてのビットは1にセットされる。書込みは、バイトレベルで実行して、ビット状態を1から0へ変更することができるだけである。NORデバイスにおけるアップグレードはブロックごとに実行される。フェイルリカバリを可能にするために、元のブロックにアップデート後のブロックが書き込まれる前に、各ブロックがまず特定のバックアップブロックにコピーされる。この従来技術の手順を、図1に関して説明する。
特定のデバイスソフトウェアは、4つのメモリブロック101-104に格納された4つのソフトウェアブロック1-4から構成される。メモリブロック101-104は、デバイスの物理メモリのメモリスペース111の中で定義される。メモリブロック101-104は、アップデートプロセスの間、特定の状態106-110で表されるように縦方向に描かれている。各カラムは、アップデートプロセスにおける新しい状態を表す。そのアップデートプロセスは、図面に矢印で示されるように、左から右へと実行される。また、そのプロセスは、デルタパッケージ、状態情報及びアップデートアプリケーションに関連している。しかし、これらは、全体のプロセス自体をはっきりさせるために、ここで示されていない。アップデートプロセス中に、2つのソフトウェアのブロック1及び2が既にアップデートされているが、それはカラム106に表現される状態である。次に、ブロック3がアップデートされる。潜在的な電力損失から回復することができるように、情報は、持続的にストアされる必要性がある。状態情報は、どのブロックが処理されているか、そして、現在アップデートのどの状態にあるのかをつかむのに使用される。さらに、新しいブロックが作り出されるまで、古いブロックは保持されなければならない。ブロック3をアップデートするプロセスでは、まずバックアップブロック105が消去される。バックアップブロック105は、状態107へのステップにおいて、メモリスペース111の中で定義される。そして、ブロック3のデータは、状態108へのステップにおいて、ブロック103からバックアップブロック105へコピーされる。次に、ブロック103が状態109へのステップにおいて消去され、空ブロック103が残る。最後に、書込みプロセスが状態110へのステップにおいてブロック103に対して行われ、そこにデータがアップグレードさせて新ブロック3が生成される。あるいは、古いブロック3がバックアップブロック105へコピーされる代わりに、新ブロック3は、バックアップブロック105において生成されてもよい。
仮に、バックアップブロック105が使用されていなかったならば、ブロックが消去された後であって新ブロックが完全に書き込まれる前における電力損失は、ソースのブロックも送出先のブロックも利用できないので、回復不能の事態を招いていただろう。上記の手順を用いることにより、直前のブロックを書き直してアップデートを続行することができるので、アップデートをいつでも行うことができる。
この従来技術の手順の問題は、各ブロックが電力損失に対するリカバリをサポートできるように各ブロックが二度書き込まれなければならないので、フラッシュアップデートの間の書込み時間が倍になるということである。NOR型フラッシュに関しては、通常、書込みスピードは約200kB/sである。次に、16MBのイメージアップデートにおいてブロックに書き込むための時間はおよそ16MB*2/0.2=160秒である。そのデバイスは、アップデート中に全ブロックがアップデートされる必要があるなら、完全に使用不能である。したがって、この時間をできるだけ短く保つのは重要である。アップデートのデータサイズと、コードの変化の新しいバイナリーイメージにおける分布の仕方とに応じて、アップデートされなければならないブロック数は異なることがある。経験から明らかなことは、ほとんどのアップデートにおいて、すべての利用可能なブロックの大部分をアップデートする必要があるということである。アップデートがイメージのより小さな部品に集中するような方法でバイナリーイメージを構造化することによって、アップデートが必要なブロック数を減少させるいくつかの方法がある。しかしながら、これらの技術はかなり複雑である。
発明の概要
本発明の全般的な目的は、ソフトウェアのアップデートプロセスが例えば電力損失などによる中断後にも回復可能であることを保証するように改良されたソリューションを提供することである。特に、本発明の目的は、デルタファイルを使用してターゲットアップグレード時間を最小とすることができるソフトウェアアップグレ−ドのソリューションを提供することである。
本発明の第1の側面によれば、この目的は、第1のバージョンを第2のバージョンにアップグレードするためのデルタファイルを受信して実行することにより、デバイスの物理メモリのアドレス空間で定義される多くのメモリブロックに分割保存されている前記第1のバージョンのソフトウェアをアップデートする方法であって、以下のステップを備えた方法により、実現することができる。
−前記多くのメモリブロックと関連した特別メモリブロックを定義する;
−特別メモリブロック空間を定義するために前記特別メモリブロックを消去する;
−前記多くのメモリブロックにおける第1のメモリブロックのためのデータであって前記デルタファイルによって決定されるようにアップデートされたデータを、前記特別メモリブロックに書き込む;
−前記第1のメモリブロックを消去し、それによって前記特別メモリブロック空間を1ブロック動かす;及び、
−前記多くのメモリブロックにおける第2のメモリブロックのためのデータであって前記デルタファイルによって決定されるようにアップデートされたデータを、前記第1のメモリブロックに書き込む。
好適な実施形態において、前記特別メモリブロックは、前記アドレス空間における前記第1のメモリブロックに隣接して配置されたメモリブロックとして定義される。
好ましくは、その方法は、前記デルタファイルによって決定されるようにアップグレ−ドされている間、前記多くのメモリブロックの全てがアドレス空間において1ステップだけシフトするまで、前記アドレス空間における次のメモリブロックからの前記多くのメモリブロックの1つにデータを書き込むことにより、前記特別メモリブロックから前記多くのメモリブロックの全てを1つずつ処理するステップを備える。
1つの実施形態では、その方法は、第1のバージョンから第2のバージョンへの前記アップグレードから、前記第2のバージョンから第3のバージョンへの第2のアップグレードへ、メモリブロックを書き込む順番を前記アドレス空間において逆にするステップを備える。
好ましくは、その方法は、以下のステップを備える。
−前記デバイスが、デルタファイルを受信して実行する前に、サーバに接続して、前記アドレス空間における前記特別ブロックの現在位置に応じて、前記ソフトウェアをアップグレードするためのデルタファイルのどのタイプが利用可能かを決定する情報であって現在のアドレス空間のステータスに関連する情報を通信し、第1のデルタファイルタイプは、アドレス空間において1つの順番で前記メモリブロックに存在するソフトウェアをアップグレードさせることに適用され、第2のデルタファイルは、アドレス空間において逆の順番で前記メモリブロックに存在するソフトウェアをアップグレードさせることに適用される;
−適用可能なデルタファイルタイプのデルタファイルを前記サーバから前記デバイスへダウンロードする;及び、
−その適用可能なデルタファイルを用いて、前記ソフトウェアをアップグレ−ドする。
1つの実施形態において、その方法は、前記デルタファイルによって決定されるように書き込まれる間に、前記メモリブロック間のデータを移動することに応じて、前記ソフトウェアのブートコードにおける前記アドレス空間内の開始アドレスを変更するステップを備える。
本発明の第2の側面によれば、前述の目的は、コンピュータ制御された電子デバイスにおいてそのデバイスに存在している第1のバージョンのソフトウェアをアップデートするために使用されるプログラム製品であって、前記デバイスが、前記第1のバージョンから第2のバージョンへアップグレ−ドするためのデルタファイルを受信して実行する手段を備え、前記ソフトウェアが、前記デバイスの物理メモリのアドレス空間で定義される多くのメモリブロックに分割保存され、以下のステップをそのデバイスに実行させることができるプログラムコードを備えた前記プログラム製品によって解決される。
−前記多くのメモリブロックとともに特別メモリブロックを定義する;
−特別メモリブロック空間を定義するために前記特別メモリブロックを消去する;
−前記多くのメモリブロックにおける第1のメモリブロックのためのデータであって前記デルタファイルによって決定されるようにアップデートされたデータを、前記特別メモリブロックに書き込む;
−前記第1のメモリブロックを消去し、それによって、前記特別メモリブロックスペースを1ブロック移動する;及び
−前記多くのメモリブロックにおける第2のメモリブロックのためのデータであって前記デルタファイルによって決定されるようにアップデートされたデータを、前記第1のメモリブロックに書き込む。
1つの実施形態において、そのプログラム製品は、上記のステップにおけるいずれのステップも、前記デバイスに実行させることができるプログラムコードを備える。
本発明の第3の側面によれば、前述の目的は、端末における第1のバージョンのソフトウェアをアップデートすることに関連したコンピュータコードと、前記第1のバージョンを第2のバージョンへアップグレードするためのデルタファイルを受信して実行する手段とを有するコンピュータシステムを備え、前記ソフトウェアは、前記端末の物理メモリのアドレス空間で定義される多くのメモリブロックに分割保存され、前記多くのメモリブロックに関連する特別メモリブロックは、前記アドレス空間で定義され、前記端末は、以下の手段をさらに備えた無線通信端末によって解決される。特別メモリブロックスペースを定義するために前記特別メモリブロックを消去する手段;前記多くのメモリブロックにおける第1のメモリブロックに対して、前記特別メモリブロックに、デルタファイルによって決定されるようにアップデートされたデータを書き込むデータ書き込み手段;前記特別メモリブロックスペースを1ブロック移動するために前記第1のメモリブロックを消去するデータ消去手段;前記データ書き込み手段は、前記多くのメモリブロックにおける第2のメモリブロックのためのデータであって前記デルタファイルによって決定されるようにアップデートされたデータを、前記第1のメモリブロックに書き込むためのものである。
1つの実施形態において、前記特別メモリブロックは、前記アドレス空間における前記第1のメモリブロックに隣接して配置される。
好ましくは、前記データ書き込み手段は、前記デルタファイルによって決定されるようにアップグレ−ドされる間に、前記多くのメモリブロックのすべてが前記アドレス空間において1ステップだけシフトするまで、前記アドレス空間において次のメモリブロックから前記多くのメモリブロックの1つにデータを書き込むことにより、前記多くのメモリブロックのすべてを前記特別メモリブロックからひとつずつ処理するためのものである。
好ましくは、前記無線通信端末は、第1のバージョンから第2のバージョンへの前記アップグレードから、前記第2のバージョンから第3のバージョンへの第2のアップグレードへ、前記アドレス空間においてメモリブロックに書き込みを行う順番を逆にする手段を備える。
好適な実施形態において、前記デバイスは、現在のアドレス空間ステータスに関連する情報であって、前記アドレス空間における前記特別ブロックの現在位置に応じて前記ソフトウェアをアップグレ−ドするのにどのタイプのデルタファイルが適しているかを決定する情報を通信するために、デルタファイルを受信して実行する前に、サーバにつなぐように配される。
好ましくは、前記無線通信端末は、前記デルタファイルによって決定されるように書き込まれる間に、前記メモリブロック間でデータを移動することに応じて、前記ソフトウェアのブートコードにおける前記アドレス空間内の開始アドレスを変更するための手段を備える。
本発明の特徴及び利点は、添付した図面に関して好適な実施形態の以下の説明文から明らかになる。
好適な実施形態の詳細な説明
本説明は、デルタファイルとターゲットアップグレードとを用いてソフトウェアのファームウェアアップグレードすることに使用される手段及び方法について言及する。本発明は、比較的低い伝送帯域幅を使うシステムに使用された場合に特にメリットが大きいが、そのような技術分野に限定されない。
以下に述べる好適な実施形態は、モバイル電話の技術分野に関し、特に無線通信端末への実装に関する。用語「無線通信端末」は、放送局と無線通信するためのすべての移動通信装置を含んでいる。また、その放送局は、例えば、移動端末であってもよいし、静止した基地局であってもよい。その結果、用語「無線端末」は、WLAN(Wireless Local Area Network)などの無線通信のための携帯用ラップトップコンピュータだけでなく、移動電話、コミュニケータ、電子手帳、スマートフォン、PDA:s(携帯情報端末)、乗り物据付けの無線通信デバイス、または同様のものを含む。さらに、用語「備えている」又は「備える」は、この説明や添付したクレームにおいて含まれている機能、要素又はステップを示す際に、明白に述べられたもの以外の機能、要素又はステップを除外して解釈されることには決してならない点を強調しておく。
以下の説明は、本発明の好適な実施形態に関し、アドレス空間が4つのメモリブロックを備える場合に関する。もっとも、本発明は、いろいろなメモリブロックを備えるアドレス空間に適用可能である点に注意すべきである。
図2は、本発明の好適な実施形態において、ファームウェアアップグレードにおいて自動バックアップストアするための方法の考え方を示す。このアップデートの考え方を用いることによって、アップデート前に各ブロックのバックアップをとる必要がなくなる。図2に示す実施形態の一例において、デバイスは、4つのメモリブロック201-204を備えるメモリ又はアドレス空間211を定義し、各前記メモリブロックがそれぞれ1つのソフトウェアブロック1-4を保持するメモリを備える。カラム206で示される状態では、どんなブロックもまだアップデートされていない、そして、ソフトウェアは第1のバージョンになっている。上記の従来技術の方法に関して、メモリ空間211は、少なくとも1つのブロックを備え、4つのブロック201-204より多くのブロックを備える。しかしながら、特定バックアップブロックを使用する代わりに、特別ブロックは、バイナリーイメージがブロック201-204により表される前に、アドレス空間211においてソフトウェアの全イメージを1ブロック又は前方に移動するのに使用される。別の実施形態では、1以上、例えば、2つの特別ブロックが使用されてもよい。
ソフトウェアがアップデートされる際に、アドレス空間211に関する物理メモリを保持したデバイスは、前記第1のバージョンから第2のバージョンへソフトウェアをアップデートするのに必要なすべての情報を含むデルタファイル又は差分ファイルを受信する。状態206から状態207へのステップにおいて、特別ブロック212が消去され、次に、現在のソフトウェアに関連したデルタファイルに従ってアップデートされる。この考え方を用いることにより、アップデートされたブロックが常に古いブロックのすぐ前に書き込まれているので、各ブロックのバックアップをとる必要がなくなる。アップデートされるブロックの書込みが完了するまで、古いブロックは上書きされない。消去/書込みの2つの動作の代わりに、消去/書込みの1つの動作が必要なだけである。
提案されたソリューションは、明確な利点を持っているが、克服すべき問題もまたもたらす。1つのアップデートが完了すると、全イメージがアドレス空間においてシフトし終わるので、イメージの始めには特別ブロックがもはや1つも存在しない。しかしながら、本発明の好適な実施形態は、この問題のソリューションを提供する。第1のアップデート動作の後に、代わりにイメージの終わりに、すなわち、、図2の実施形態におけるブロック204に、1つの特別ブロックを設ける。しかしながら、アップデートプロセスを逆にすることにより、すなわち、逆の順番でブロックに書き込みを行うことにより、次のアップデートにおいて、同じアルゴリズムを使うことができる。別の問題は、実際のバイナリのコードが、あるベースアドレスにリンクされているということである。ベースアドレスが動かされるならば、バイナリーイメージ内の位置への絶対アドレスが間違ったアドレスで示すことになるので、そのコードは実行できないだろう。何らかの方法において、イメージで使用される絶対アドレスは、アップデート後に1ブロックだけ移動するようにしなければならない。1つの実施形態によれば、この問題は、図3に図示されるように、各アップデートに対して2つのデルタファイルを生成することによって解決される。
図3において、D12(UP)は、カラム306に示すソフトウェアバージョンV1タイプAから、カラム307に示すV2タイプBへと変換するための第1のデルタファイルを表す。その結果、タイプAのイメージは、ブロック1-4の後に位置している特別ブロックとともにアドレス空間を定義する。一方、タイプBのイメージは、ブロック1-4の前に位置している特別ブロックとともにアドレス空間を定義する。D12(DOWN)は、カラム308に示すソフトウェアバージョンV1タイプBから、カラム309に示すV2タイプAへと変換するための第2のデルタファイルを表す。好ましくは、2つのデルタファイルは、実際のデルタファイルを生成する前にタイプAとBのイメージを作り出すようにリンクプロセスを変更するのによって生成される。最後に、ブートコードに位置する開始アドレスは、ソフトウェアの実行が意図した通りに行われるように、正しい開始アドレスを指し示すように変更される必要がある。これは、アップデート手順の最後のステップとして行われても良い。
アップデート時間は、本発明によって提供される新しいバックアップの考え方により、最も良い場合において、約半分になる。これは、すべてのブロックがアップデートされた場合である。提案されたソリューションにより、すべてのブロックが、一度書き直される必要がある。現在のソリューションにより、変更されたブロックのみが、アップデートされる必要があり、二度書き込まれる必要がある。全ブロックの半分以上が変更されるアップデートに対して、新しいソリューションは、さらに速い。通常、ほとんどのブロックが、アップデートにおいて変更される必要がある。
好適な実施形態において、本発明は、無線によるファームウェア・アップグレードに使用される。特に、本発明は、ターゲットデバイスとして無線通信端末を用いて移動無線通信する技術分野に適用される。図4は、本発明が用いられる可能性があるデバイスの一例として、セルラー携帯電話40の実施形態における無線通信端末を示している。端末40は、車台又はハウジング45を備える。端末40は、マイクロホン41の形でユーザの音声入力を運び、スピーカ42の形又はイヤホン(図示せず)に接続されるコネクターの形でユーザの音声出力を運ぶ。一連のキー、ボタンまたは同様のものは、既存の技術に従って、例えば、電話をかけるのに使用可能なデータ入力インタフェース43を構成する。データ出力インタフェースは、当業者によく知られた方法で、通信情報、アドレスリスト情報などを表示するものをさらに含むディスプレイ44を備える。無線通信端末40は、無線送受信エレクトロニクス(図示せず)を含んでおり、ハウジング45内に内蔵アンテナ46が設けられ、そのアンテナは、実質的に平坦な物体であるとして破線で図面に示されている。図5は、簡易化された方法で図4の端末40を示したものである。端末40は、そのアンテナ46によって、無線通信ネットワークに含まれる基地局50に、よく知られている方法で通信可能に接続される。端末40は、マイクロプロセッサ制御器47をそれと関連した物理メモリ48とともに備えるコンピュータシステムをさらに含んでいる。基地局50と通信することにより、端末40は、本発明に従って、メモリ48に存在しているアップグレ−ドソフトウェア、特にソフトウェアバイナリーのデルタファイルを受信することができる。さらに、プロセッサ47を含むコンピュータシステムは、図2と3とで定義されるアドレス空間を用いて、メモリ48に格納されたソフトウェアを保存及びアクセスし、上記図2と3とに関連して定義されるプロセスのステップを実行する。特に、プロセッサ47によって制御されるコンピュータシステムは、前記ソフトウェアを更新し、それによってメモリブロックの内容をアップデートしたかどうかに関わらず1ブロックだけアドレス空間においてシフトさせるために、デルタファイルの内容によって決定されるようにメモリブロックを消去して及び書き込む手段を備える。
以上は、本発明の原理、好適な実施形態、および動作モードを説明したものである。もっとも、添付した特許請求の範囲において定義されるように、本発明の範囲から逸脱しないで当業者がこれらの実施形態を変更可能な点も評価すべきである。
図1は、ターゲットアップグレードによりソフトウェアをアップデートするための従来技術のプロセスの概要を示したものである。 図2は、ターゲットアップグレードによりソフトウェアをアップデートするための本発明の実施形態に従ったプロセスの概要を示したものである。 図3は、図2の全体的なプロセスにおける2つの異なるバージョンの概要を示したものである。 図4は、本発明のプロセスのステップを実行するためのプログラム製品が実装された一例となる無線通信端末の概要を示したものである。 図5は、端末でのターゲットアップグレードのためのアップデートデルタファイルを受信するために基地局と通信している状態において、図4の端末とその内蔵のコンピュータシステムとの概要を示したものである。

Claims (6)

  1. 第1のバージョンを第2のバージョンにアップグレードするためのデルタファイル(D12)を受信して実行することにより、デバイス(40)の物理メモリ(48)のアドレス空間(211)で定義される複数のメモリブロック(201−204)に分割保存されている前記第1のバージョンのソフトウェアをアップデートするためのアップデート方法であって、
    前記複数のメモリブロックと関連しており初期状態においてメモリ空間の一端に位置している第1のメモリブロックの前に配置される特別メモリブロック(212)を定義する定義ステップと、
    前記特別メモリブロックを消去する消去ステップと、
    前記第1のメモリブロックに対してアップデートされたデータを、前記特別メモリブロックに書き込む書き込みステップと、
    前記特別メモリブロックを1ブロックだけに移動させる移動ステップと、
    前記複数のメモリブロックの全てが前記アドレス空間において1ステップだけシフトするまで、前記複数のメモリブロックの全てを1つずつ処理する処理ステップであって、
    前記特別メモリブロックを消去する工程と、
    前記特別メモリブロックに隣接しかつ前記特別メモリブロックの後に位置するメモリブロックのためのアップデートされたデータを前記特別メモリブロックに書き込む工程と、
    前記特別メモリブロックを一度に1ブロックだけ後に移動する工程と、
    を含む処理ステップと、
    前記第1のバージョンから前記第2のバージョンへの前記アップグレードから、前記第2のバージョンから第3のバージョンへの第2のアップグレードへ、メモリブロックを書き込む順番を前記アドレス空間において逆にする逆書き込みステップと、
    前記デバイスが、デルタファイルを受信して実行する前に、サーバに接続して、前記アドレス空間における前記特別メモリブロックの現在位置に応じて、前記ソフトウェアをアップグレードするのにデルタファイルのどのタイプが利用可能かを決定する情報であって現在のアドレス空間のステータスに関連する情報を通信し、第1のデルタファイルタイプが、前記アドレス空間において1つの順番で前記メモリブロックに存在するソフトウェアをアップグレードさせることに適用され、第2のデルタファイルタイプが、前記アドレス空間において逆の順番で前記メモリブロックに存在するソフトウェアをアップグレードさせることに適用される通信ステップと、
    適用可能なデルタファイルタイプのデルタファイルを前記サーバから前記デバイスにダウンロードするダウンロードステップと、
    前記適用可能なデルタファイルを用いて、前記ソフトウェアをアップグレ−ドするアップグレードステップと、
    を含むことを特徴とするアップデート方法。
  2. 前記メモリブロック間データを移動することに応じて、前記ソフトウェアのブートコードにおける前記アドレス空間内の開始アドレスを変更する変更ステップをさらに備えたことを特徴とする請求項1に記載のアップデート方法。
  3. コンピュータ制御された電子デバイス(40)において前記デバイスに存在している第1のバージョン(V1)のソフトウェアをアップデートするために使用されるプログラムであり、前記デバイスが、前記第1のバージョンから第2のバージョン(V2)へアップグレ−ドするためのデルタファイル(D12)を受信して実行する手段を備え、前記ソフトウェアが、前記デバイスの物理メモリ(48)のアドレス空間(211)で定義される複数のメモリブロック(201−204)に分割保存されるプログラムであって、
    前記複数のメモリブロックと関連しており初期状態においてメモリ空間の一端に位置している第1のメモリブロックの前に配置される特別メモリブロック(212)を定義する定義ステップと、
    前記特別メモリブロックを消去する消去ステップと、
    前記第1のメモリブロックに対してアップデートされたデータを、前記特別メモリブロックに書き込む書き込みステップと、
    前記特別メモリブロックを1ブロックだけ後に移動する移動ステップと、
    前記複数のメモリブロックの全てが前記アドレス空間において1ステップだけシフトするまで、前記複数のメモリブロックの全てを1つずつ処理する処理ステップであって、
    前記特別メモリブロックを消去する工程と、
    前記特別メモリブロックに隣接しかつ前記特別メモリブロックの後に位置するメモリブロックのためのアップデートされたデータを前記特別メモリブロックに書き込む工程と、
    前記特別メモリブロックを一度に1ブロックだけ後に移動する工程と、
    と、
    を含む処理ステップと、
    前記第1のバージョンから前記第2のバージョンへの前記アップグレードから、前記第2のバージョンから第3のバージョンへの第2のアップグレードへ、メモリブロックを書き込む順番を前記アドレス空間において逆にする逆書き込みステップと、
    前記デバイスが、デルタファイルを受信して実行する前に、サーバに接続して、前記アドレス空間における前記特別メモリブロックの現在位置に応じて、前記ソフトウェアをアップグレードするのにデルタファイルのどのタイプが利用可能かを決定する情報であって現在のアドレス空間のステータスに関連する情報を通信し、第1のデルタファイルタイプが、前記アドレス空間において1つの順番で前記メモリブロックに存在するソフトウェアをアップグレードさせることに適用され、第2のデルタファイルタイプが、前記アドレス空間において逆の順番で前記メモリブロックに存在するソフトウェアをアップグレードさせることに適用される通信ステップと、
    適用可能なデルタファイルタイプのデルタファイルを前記サーバから前記デバイスにダウンロードするダウンロードステップと、
    前記適用可能なデルタファイルを用いて、前記ソフトウェアをアップグレ−ドするアップグレードステップと、
    を前記デバイスに実行させることを特徴とするプログラム。
  4. 前記メモリブロック間でデータを移動することに応じて、前記ソフトウェアのブートコードにおける前記アドレス空間内の開始アドレスを変更する変更ステップを前記デバイスに実行させることを特徴とする請求項に記載のプログラム。
  5. 端末における第1のバージョン(V1)のソフトウェアをアップデートすることに関連したコンピュータコードと、前記第1のバージョンを第2のバージョン(V2)へアップグレードするためのデルタファイル(D12)を受信して実行する手段(46)とを有するコンピュータシステム(47)を備え、前記ソフトウェアは、前記端末の物理メモリのアドレス空間(211)で定義される複数のメモリブロック(201−204)に分割保存される無線通信端末(40)であって、
    前記複数のメモリブロックに関連しており初期状態においてメモリ空間の一端に位置している第1のメモリブロックの前に配置される特別メモリブロック(212)は、前記アドレス空間で定義され、
    前記端末は、
    前記特別メモリブロックを消去する手段と、
    前記第1のメモリブロックに対してアップデートされたデータを、前記特別メモリブロックに書き込むデータ書き込み手段と、
    前記特別メモリブロックを1ブロックだけに移動させる移動手段と、
    前記複数のメモリブロックの全てが前記アドレス空間において1ステップだけシフトするまで、前記特別メモリブロックを消去し、前記特別メモリブロックに隣接しかつ前記特別メモリブロックの後に位置するメモリブロックのためのアップデートされたデータを前記特別メモリブロックに書き込み、前記特別メモリブロックを一度に1ブロックだけ後に移動することにより、前記複数のメモリブロックの全てを1つずつ処理する処理手段と、
    前記第1のバージョンから前記第2のバージョンへの前記アップグレードから、前記第2のバージョンから第3のバージョンへの第2のアップグレードへ、前記アドレス空間においてメモリブロックに書き込みを行う順番を逆にする逆書き込み手段と、
    を備えており、
    前記端末は、現在のアドレス空間ステータスに関連する情報であって、前記アドレス空間における前記特別メモリブロックの現在位置に応じて前記ソフトウェアをアップグレ−ドするのにどのタイプのデルタファイルが適しているかを決定する情報を通信するために、デルタファイルを受信して実行する前に、サーバにつなぐように構成され、
    第1のデルタファイルタイプは、前記アドレス空間において1つの順番で前記メモリブロックに存在するソフトウェアをアップグレードさせることに適用され、
    第2のデルタファイルタイプは、前記アドレス空間において逆の順番で前記メモリブロックに存在するソフトウェアをアップグレードさせることに適用され、
    前記端末は、
    適用可能なデルタファイルタイプのデルタファイルを前記サーバから前記端末にダウンロードするダウンロード手段と、
    前記適用可能なデルタファイルを用いて、前記ソフトウェアをアップグレ−ドするアップグレード手段と、
    をさらに備えたことを特徴とする無線通信端末。
  6. 前記デルタファイルによって決定されるように書き込まれる間に、前記メモリブロック間でデータを移動することに応じて、前記ソフトウェアのブートコードにおける前記アドレス空間内の開始アドレスを変更する変更手段をさらに備えたことを特徴とする請求項5に記載の無線通信端末。
JP2007502324A 2004-03-10 2005-02-17 ファームウェアアップグレードにおける自動バックアップストア Expired - Fee Related JP4801041B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP04005700A EP1574952B1 (en) 2004-03-10 2004-03-10 Automatic backup store in firmware upgrades
EP04005700.2 2004-03-10
US55368704P 2004-03-16 2004-03-16
US60/553,687 2004-03-16
PCT/EP2005/050701 WO2005085997A2 (en) 2004-03-10 2005-02-17 Automatic backup store in firmware upgrades

Publications (2)

Publication Number Publication Date
JP2007528071A JP2007528071A (ja) 2007-10-04
JP4801041B2 true JP4801041B2 (ja) 2011-10-26

Family

ID=34814286

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007502324A Expired - Fee Related JP4801041B2 (ja) 2004-03-10 2005-02-17 ファームウェアアップグレードにおける自動バックアップストア

Country Status (6)

Country Link
US (1) US7502813B2 (ja)
EP (1) EP1574952B1 (ja)
JP (1) JP4801041B2 (ja)
CN (1) CN100492292C (ja)
AT (1) ATE392661T1 (ja)
DE (1) DE602004013120T2 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4417123B2 (ja) * 2003-02-19 2010-02-17 パナソニック株式会社 ソフトウェア更新方法及び無線通信装置
DE102006057977A1 (de) * 2006-12-08 2008-06-12 Siemens Ag Verfahren und Vorrichtung zum Aktualisieren einer Datenbank und Computerprogrammprodukt
CN101159610B (zh) * 2007-11-09 2010-06-09 中兴通讯股份有限公司 一种远程擦除传输设备单板软件的方法及其装置
US8327101B2 (en) 2008-02-01 2012-12-04 International Business Machines Corporation Cache management during asynchronous memory move operations
US8356151B2 (en) 2008-02-01 2013-01-15 International Business Machines Corporation Reporting of partially performed memory move
US8136108B2 (en) * 2008-09-03 2012-03-13 Computime, Ltd Updating firmware with multiple processors
US8386757B1 (en) * 2009-02-13 2013-02-26 Unidesk Corporation Managed desktop system
CN101610499A (zh) * 2009-07-13 2009-12-23 中兴通讯股份有限公司 无线数据卡的升级方法和系统
JP5346253B2 (ja) * 2009-08-24 2013-11-20 株式会社日立ソリューションズ ファームウェア更新システム、及び情報機器、並びにプログラム
US20120047223A1 (en) * 2010-08-20 2012-02-23 Nokia Corporation Method and apparatus for distributed storage
US9552201B2 (en) * 2011-08-31 2017-01-24 Avaya Inc. System and method for incremental software installation
CN102508713B (zh) 2011-10-12 2015-01-28 杭州华三通信技术有限公司 进程启动方法及装置
WO2014018256A1 (en) 2012-07-26 2014-01-30 Utc Fire And Security Americas Corporation, Inc. Wireless firmware upgrades to an alarm security panel
CN102945179B (zh) * 2012-11-28 2016-06-29 青岛海信宽带多媒体技术有限公司 基于mtd分区的软件升级方法和装置
CN103605552B (zh) * 2013-11-29 2017-12-29 Tcl通力电子(惠州)有限公司 Mcu的升级方法和装置
CN105718246A (zh) * 2014-07-31 2016-06-29 格马尔托股份有限公司 在电子设备中管理应用程序包的方法
US10430176B2 (en) 2014-11-17 2019-10-01 Hitachi Automotive Systems, Ltd. In-vehicle control device, program update system, and program update software
JP6434994B2 (ja) * 2015-01-26 2018-12-05 日立オートモティブシステムズ株式会社 車載制御装置、プログラム書き込み装置、プログラム生成装置及びプログラム
CN104810055B (zh) * 2015-05-08 2018-09-07 京东方科技集团股份有限公司 Flash芯片读写控制电路和方法、AMOLED应用电路
DE102017205274A1 (de) * 2017-03-29 2018-10-04 Robert Bosch Gmbh Verfahren und Vorrichtung zum Aktualisieren eines Programmes
CN109284123A (zh) * 2017-07-21 2019-01-29 深圳市中兴微电子技术有限公司 一种采用版本分割实现压缩版本升级的方法及系统
CN111124475B (zh) * 2018-10-31 2023-12-08 伊姆西Ip控股有限责任公司 存储管理的方法、电子设备和计算机可读存储介质
CN111240722B (zh) * 2020-01-07 2021-05-04 翱捷科技股份有限公司 空中升级固件的方法及其所应用的终端、服务器及系统
CN113225729B (zh) * 2020-01-21 2022-07-12 荣耀终端有限公司 空中下载技术ota升级的方法、设备及可读存储介质
CN113472884A (zh) * 2021-06-30 2021-10-01 潍柴动力股份有限公司 Ota升级方法和装置
CN113986312B (zh) * 2021-12-09 2024-03-26 北京奕斯伟计算技术股份有限公司 软件升级方法、装置、电子设备及计算机可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10177527A (ja) * 1996-10-16 1998-06-30 Fujitsu Ltd フラッシュメモリにおけるデータ書き込み/読み出し方法およびフラッシュメモリを用いた記憶装置
JPH113223A (ja) * 1997-06-10 1999-01-06 Canon Inc 情報処理装置及び情報格納方法
JP2000293366A (ja) * 1999-04-06 2000-10-20 Mitsubishi Electric Corp セットトップボックス用モジュールのアップデート方法
JP2001209543A (ja) * 2000-01-28 2001-08-03 Nec Ic Microcomput Syst Ltd フラッシュ・マイコンにおけるプログラム書き換え方法
US20040040020A1 (en) * 2002-08-22 2004-02-26 Xuguang Yang Electronic device with an update agent that employs preprocessing techniques for update

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3542565C2 (de) * 1984-12-03 1994-03-31 Asahi Chemical Ind Kunststofftüte und Verfahren zu ihrer Herstellung
EP0398545A1 (en) * 1989-05-19 1990-11-22 Delco Electronics Corporation Method and apparatus for storing data in a non-volatile memory
US5522076A (en) * 1993-05-13 1996-05-28 Kabushiki Kaisha Toshiba Computer system having BIOS (basic input/output system)-ROM (Read Only Memory) writing function
DE19520030C1 (de) * 1995-05-31 1996-05-15 Siemens Ag Verfahren zur Aktualisierung der Programmstruktur einer modularen Kommunikationsanlage
US5960445A (en) * 1996-04-24 1999-09-28 Sony Corporation Information processor, method of updating a program and information processing system
DE19652628A1 (de) * 1996-12-18 1998-06-25 Philips Patentverwaltung Kommunikationssystem
JP4772214B2 (ja) * 2001-06-08 2011-09-14 ルネサスエレクトロニクス株式会社 不揮発性記憶装置及びその書き換え制御方法
US7100011B2 (en) * 2002-03-01 2006-08-29 Arris International, Inc. Method and system for reducing storage requirements for program code in a communication device
JP3830867B2 (ja) * 2002-07-10 2006-10-11 Necエレクトロニクス株式会社 シングルチップマイクロコンピュータおよびそのブート領域切り替え方法
US6938140B2 (en) * 2002-08-29 2005-08-30 Micron Technology, Inc. System and method for linear object reallocation in place

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10177527A (ja) * 1996-10-16 1998-06-30 Fujitsu Ltd フラッシュメモリにおけるデータ書き込み/読み出し方法およびフラッシュメモリを用いた記憶装置
JPH113223A (ja) * 1997-06-10 1999-01-06 Canon Inc 情報処理装置及び情報格納方法
JP2000293366A (ja) * 1999-04-06 2000-10-20 Mitsubishi Electric Corp セットトップボックス用モジュールのアップデート方法
JP2001209543A (ja) * 2000-01-28 2001-08-03 Nec Ic Microcomput Syst Ltd フラッシュ・マイコンにおけるプログラム書き換え方法
US20040040020A1 (en) * 2002-08-22 2004-02-26 Xuguang Yang Electronic device with an update agent that employs preprocessing techniques for update

Also Published As

Publication number Publication date
EP1574952B1 (en) 2008-04-16
EP1574952A1 (en) 2005-09-14
JP2007528071A (ja) 2007-10-04
DE602004013120D1 (de) 2008-05-29
US20080126672A1 (en) 2008-05-29
CN100492292C (zh) 2009-05-27
DE602004013120T2 (de) 2009-05-14
ATE392661T1 (de) 2008-05-15
US7502813B2 (en) 2009-03-10
CN1930551A (zh) 2007-03-14

Similar Documents

Publication Publication Date Title
JP4801041B2 (ja) ファームウェアアップグレードにおける自動バックアップストア
US8539471B2 (en) Updating firmware of an electronic device
CN101026848B (zh) 移动终端和软件更新方法
KR100774857B1 (ko) 통신단말의 소프트웨어 갱신 방법, 통신단말 및소프트웨어 갱신 시스템
JP4859465B2 (ja) ソフトウェア更新方法および移動端末装置
CN101211265A (zh) 一种终端嵌入式系统的软件更新方法和装置
KR20040008007A (ko) 무선단말기 펌웨어 업그레이드 방법
JPH113224A (ja) 携帯型情報端末機器のプログラム更新方法
KR20120109800A (ko) Fota 기반의 데이터 갱신 방법 및 이를 지원하는 휴대 단말기
KR101130875B1 (ko) 펌웨어 업그레이드 경우의 자동 백업 저장
JP2004213201A (ja) バージョンアップ方法
JP2010044574A (ja) 携帯端末、携帯端末制御方法、及び携帯端末制御プログラム
JP2002207599A (ja) 通信端末及びそのソフトウェア更新システム
JP2009009391A (ja) 更新処理ソフトウェア自己更新方法および携帯端末装置
JP2005215841A (ja) ソフトウエア修正機能付き携帯電話端末装置
KR100538627B1 (ko) 무선통신단말기의 소프트웨어 부분 업그레이드 방법
KR100591813B1 (ko) 펌웨어 다운로드 에러에 대한 복구 기능을 구비한이동통신 단말기 및 이동통신 단말기의 펌웨어 다운로드에러에 대한 복구 방법
JPH0793276A (ja) コンピュータの立ち上げ方式
KR100622816B1 (ko) 이동 단말장치의 시스템 소프트웨어 업데이트 방법 및시스템
CN116069349A (zh) 板卡的参数修改方法、装置及系统
KR101094622B1 (ko) 단말기의 시스템 소프트웨어 업데이트 시스템 및 방법
KR101175825B1 (ko) 휴대용 운영체제를 설치하는 방법 및 그를 이용하는휴대용정보기기
CN117806689A (zh) 嵌入式设备的系统升级方法、系统、存储介质及电子设备
KR20050123360A (ko) 이동통신단말기의 소프트웨어 업그레이드방법
KR20040060366A (ko) 무선통신매체의 os 업그레이드 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110427

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110509

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110624

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110722

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110804

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140812

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees