JP2005502971A - Method, apparatus and system for updating software - Google Patents

Method, apparatus and system for updating software Download PDF

Info

Publication number
JP2005502971A
JP2005502971A JP2003529305A JP2003529305A JP2005502971A JP 2005502971 A JP2005502971 A JP 2005502971A JP 2003529305 A JP2003529305 A JP 2003529305A JP 2003529305 A JP2003529305 A JP 2003529305A JP 2005502971 A JP2005502971 A JP 2005502971A
Authority
JP
Japan
Prior art keywords
memory
version
core firmware
update
partition
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.)
Pending
Application number
JP2003529305A
Other languages
Japanese (ja)
Other versions
JP2005502971A5 (en
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 ソマ ネットワークス インコーポレイテッド
Publication of JP2005502971A publication Critical patent/JP2005502971A/en
Publication of JP2005502971A5 publication Critical patent/JP2005502971A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Retry When Errors Occur (AREA)

Abstract

本発明は、ソフトウェアをアップデートする方法、装置、および、システムを提供する。
ネットワークに接続された少なくとも1つの電子機器に存在するソフトウェアを遠隔からアップデートするためのシステム。電子機器は、少なくとも2つのパーティションに分割された不揮発性書き替え可能記憶装置を有し、一方のパーティションはコアファームウェアを含み、他方のパーティションは補助ソフトウェアを含む。機器においてアップデートが受信されると、アップデートされたコアファームウェアが、書き替え可能記憶装置の補助ソフトウェアを含むパーティションに書き込まれて上書きされる。これが完了し、かつ、うまくなされたことが確認されたら、記憶装置に記憶された以前のバージョンのコアファームウェアは、機器がそれを実行できないようにされる。次に、アップデートされた補助ソフトウェアが、古いバージョンのコアファームウェアに書き込まれて上書きされる。この書き込みが完了すると、機器は、アップデートされたソフトウェアを実行するために、その機器をリブートする適切な時間を決定する。別の実施形態においては、機器の現在のコアファームウェアは、それが存在するパーティションから他方のパーティションにコピーされて、そこに記憶された補助ソフトウェアに上書きされる。機器をアップデートするために受信された新しいコアファームウェアは、第1のパーティションに上書きされ、アップグレードに失敗した場合には、コピーされた古いコアファームウェアが存在し、そして、第1のパーティションをうまくアップデートできれば、補助ソフトウェアが、第2のパーティションに書き込まれて、コピーされた古いコアファームウェアに上書きされる。このように、機器の通常動作中、パーティション内のコアファームウェアおよび補助ソフトウェアの位置が、維持される。
The present invention provides a method, apparatus, and system for updating software.
A system for remotely updating software existing in at least one electronic device connected to a network. The electronic device has a non-volatile rewritable storage device divided into at least two partitions, one partition containing core firmware and the other partition containing auxiliary software. When an update is received at the device, the updated core firmware is written and overwritten on the partition containing the auxiliary software of the rewritable storage device. Once this is completed and confirmed to be successful, the previous version of the core firmware stored in the storage device is prevented from executing by the device. The updated auxiliary software is then written over the old version of the core firmware and overwritten. When this writing is complete, the device determines an appropriate time to reboot the device in order to execute the updated software. In another embodiment, the device's current core firmware is copied from the partition in which it resides to the other partition and overwritten with auxiliary software stored there. The new core firmware received to update the device will be overwritten on the first partition, and if the upgrade fails, the copied old core firmware exists and if the first partition can be successfully updated The auxiliary software is written to the second partition and overwrites the copied old core firmware. In this way, the location of the core firmware and auxiliary software within the partition is maintained during normal operation of the device.

Description

【技術分野】
【0001】
本発明は、一般的には、遠隔に配置された電子機器内のソフトウェアをアップデートするための方法、装置、および、システムに関する。より詳細には、本発明は、ネットワークに接続された遠隔配置電子機器内に存在するソフトウェアをアップデートするための方法、システム、および、装置に関し、これらの方法、システム、および、装置によれば、それらの電子機器は、ネットワークを介して、アップデートの失敗をリカバーすることができ、かつ、アップデートを完了することができる。
【背景技術】
【0002】
多くの一般的な電気機器は、デバイスの電源が落とされた場合でも、ソフトウェア若しくはデータを保持することができる書き替え可能メモリを備えている。該書き替え可能メモリに保持されているソフトウェア若しくはデータは、書き替え可能である。現在、そのような書き替え可能なメモリは、典型的には、フラッシュメモリまたはそれと同等のものであるが、その他の種類のメモリまたは記憶装置を使用することもできる。フラッシュメモリは、不揮発性の半導体メモリの一種であり、そのため、電源が切られてもデータが消失することはなく、さらには、異なるデータを含むように書き替え可能である。フラッシュメモリは、小型であり、相当に耐久性があり、高速であり、かつ、書き替え可能であるので、広く普及している。例えば、携帯電話は、短縮番号、呼出音、ファームウェアアップデート、などの電話機能を実行するソフトウェアを保持するのにフラッシュメモリを使用する。したがって、新しい機能が提供されまたはバグフィックスが実施されるので、電子機器内のファームウェアをアップデートすることができる。
【0003】
しかしながら、フラッシュメモリまたはそれと同等なものに、欠点がないわけではない。1つの欠点は、フラッシュメモリが比較的高価なことである。製造業者が消費者価格を低く維持しなければならない機器においては、その機器は、必要とされるフラッシュメモリの量を最小限に抑制するように設計しなければならない。
【0004】
ファームウェアまたはその他のソフトウェアまたはデータを、それらが配置された機器においてアップデートできることは明らかに望ましいことではあるが、電子機器内のフラッシュメモリをアップデートするのは、必ずしも容易なことではない。例えば、たいていの携帯電話のファームウェアまたはその他のソフトウェアのアップデートを必要とする場合、ローカルサービスセンターに当該携帯電話を持ち込まなければならない。ローカルサービスセンターは、アップデートされたソフトウェアを保持するアップデートステーションを有し、携帯電話を有線データリンクを介して当該アップデートステーションに接続することによってソフトウェアをアップデートする。アップデートセッション中に新しいソフトウェアの転送に問題があれば、機器は不明の状態または動作不能の状態になる。この場合、機器はリセットされ、転送が完了しかつ機器が適切に動作するようになるまで、新しいソフトウェアが、単に、再度転送されることになる。
【0005】
しかしながら、この方法が魅力的なオプションであることは極めて稀である。なぜなら、このような方法は、サービスセンターを訪問しなければならないユーザの積極的な関与または協力を必要とするからである。無線ローカルループ加入者ステーションのような機器の場合、加入者ステーションをサービスセンターに持ち込むことは、サービスセンターまで出かける不便さに加えて、加入者ステーションが通常配置されている場所に電話またはデータサービスが一時的に存在しなくなることを意味する。
【0006】
機器内の不揮発性書き替え可能メモリをそれらの機器が接続されたネットワークを介してアップデートすることが、これまでに試みられてきた。例えば、携帯電話は、サービスする無線ネットワークを介して、そのフラッシュメモリにソフトウェアアップデートを受信することができる。しかしながら、何らかの理由によって、伝送に失敗すれば、あるいは、伝送に誤りがあれば、機器は不明の状態または動作不能の状態のままとなるかもしれないという点において、当該技術には問題がある。このような場合、サービスセンターにおいてアップデートがなされる上述の例と異なり、アップデートソフトウェアの再送を試みることはできず、サービスセンターに戻されるまで、ユーザには動作不能の機器が残される。
【0007】
この問題の従来技術による一解決方法は、別個のバンクからなる書き替え可能メモリを提供することであった。特許文献1は、携帯電話システムを教示しており、この携帯電話システムにおいては、書き替え可能なメモリの半分が、現在のバージョンのソフトウェアを保持するのに使用されるバンクであり、アップデートされたソフトウェアは、書き替え可能なメモリの他方の半分のバンクにダウンロードされる。携帯電話が、例えば、CRCを検査することによって、転送がうまくなされたと判断すれば、その携帯電話は、メモリのアップデートされたバンクを使用するように切り換え、そして、古いソフトウェアを含むバンクは、次のアップデートを受信するのに使用することができる。類似する従来技術による解決方法が、特許文献2に教示されている。これらの構成は、アップデート中に回復不能エラーが発生するのを防止するが、高価な書き替え可能メモリを2倍必要とする。
【0008】
また、上述した従来技術によるアップデート方法は、典型的には、機器のユーザの協力または関与を必要とし、ユーザは、サービスセンターに出向かなければならないか、あるいは、ネットワークを介してアップデートデータを転送することを受け入れ、しかも、当該転送を開始しなければならない。ネットワークオペレータのためにネットワークの安定性または容量を改善するような重要なアップデートは、ユーザに不便をかけるために、ユーザによっては、拒絶されるかもしれないし、さもなければ、遅延させられるかもしれない。さらに、公知の従来技術による方法は、ネットワークにおいてそれぞれの機器をアップデートすることは、個々に実施されなければならない。
【0009】
ネットワークに接続された機器の不揮発性書き替え可能メモリ内のソフトウェアまたはデータを高い信頼性でアップデートする方法およびシステムが望まれている。当該方法およびシステムは、機器内において2倍の量の不揮発性書き替え可能メモリを必要とせず、かつ、多数の機器において自動的にかつ並行して実行されることが可能であることが望まれる。
【特許文献1】
米国特許第6,023,620号
【特許文献2】
米国特許第6,275,931号
【発明の開示】
【発明が解決しようとする課題】
【0010】
本発明の目的は、電子機器内に存在するソフトウェアをネットワークを介してアップデートするための新規な方法、システム、および、装置を提供することであり、これらの方法、システム、および、装置は、上述した従来技術の欠点を除去または緩和するものである。
【課題を解決するための手段】
【0011】
本発明の第1の態様によれば、少なくとも1つの電子機器を通信リンクを介して遠隔からアップデートするためのシステムが提供される。当該システムは、アップデートサーバー、揮発性メモリ、前記少なくとも1つの電子機器内に存在する不揮発性書き替え可能記憶装置、および、当該機器で動作するアップデートクライアントを含む。アップデートサーバーは、コアファームウェアおよび補助ソフトウェアを備えたアップデートを通信リンクを介して少なくとも1つの電子機器に転送するのに使用することができる。揮発性メモリは、アップデートサーバーから受信された転送を一時的に記憶するのに使用される。不揮発性書き替え可能記憶装置は、少なくとも第1および第2のパーティションに分割され、第1のパーティションは、あるバージョンのコアファームウェアおよび補助ソフトウェアの一方を記憶し、第2のパーティションは、あるバージョンのコアファームウェアおよび補助ソフトウェアの他方を記憶する。アップデートクライアントは、機器において動作し、(1)揮発性メモリに記憶された受信されたアップデートコアファームウェアを、第1および第2のパーティションの一方に記憶されたバージョンの補助ソフトウェアに上書きし、この書き込みがうまくなされたかどうかを検査し、(2)機器を次にリブートしたときに、(1)において記憶されたコアファームウェアを実行するように機器を設定し、(3)揮発性メモリに記憶された受信されたアップデートされた補助ソフトウェアを、第1および第2のパーティションの他方に記憶されたバージョンのコアファームウェアに上書きし、この書き込みがうまくなされたかどうかを検査し、(4)機器をリブートし、アップデートされたコアファームウェアおよびアップデートされた補助ソフトウェアを実行する、のに使用することができる。
【0012】
本発明の別の態様によれば、ネットワークに接続された複数の遠隔機器内に存在するソフトウェアをアップデートする方法が、提供される。この方法は、(1)少なくともコアファームウェアアップデートを備えたアップデートをアップデートサーバーに配置するステップと、(2)ネットワークに接続されたアップデートされるべき機器を識別するステップと、(3)アップデートをアップデートサーバーからネットワークを介して識別された機器に転送し、識別された機器のそれぞれが、アップデートが正しく受信されたことを検査し、それまでに受信したアップデートに誤りのある部分があれば、その部分の再送を要求し、かつ、その部分を受信するステップと、(4)以前のバージョンのコアファームウェアの有効なコピーが、常に、記憶装置に存在することを保証しながら、受信されたアップデートのコアファームウェア部分をパーティショニングされた不揮発性書き替え可能記憶装置に書き込んで、コアファームウェア部分を、以前に記憶されたバージョンのソフトウェアを含むパーティションに上書きし、その書き込みを検査するステップと、(5)検査されたアップデートコアファームウェアパーティションを、機器によって使用されるべき有効なコアファームウェアとみなし、以前のバージョンのコアファームウェアを、使用できないものであるとみなすステップと、(6)アップデートされたソフトウェアをロードおよび実行するために、機器をリブートするステップと、を含む。
【0013】
オプションとして、受信されたアップデートのコアファームウェア部分がパーティショニングされた不揮発性書き替え可能記憶装置に書き込まれる前に、以前のバージョンのコアファームウェアが、記憶装置に記憶された補助ソフトウェア上にコピーされ、正しくコピーされたか検査され、そのコピーが、機器によって使用されるべき有効なコアファームウェアであるとみなされ、そして、オリジナルのコアファームウェアが、使用できないものであるとみなされてもよい。
【0014】
また、アップデートは、アップデートされた補助ソフトウェアを含んでもよい。補助ソフトウェアが、機器によって、受信され、検査され、そして、機器がリブートされる前に、補助ソフトウェアアップデートが、使用できない以前のバージョンのコアファームウェアに上書きされる。
【0015】
本発明の別の態様によれば、少なくとも1つの電子機器に存在するコアファームウェアを通信リンクを介して遠隔からアップデートするシステムが、提供される。当該システムは、電子機器内に存在するメモリサブシステムと、アップデートされたバージョンのコアファームウェアを少なくとも含むアップデートを通信リンクを介して電子機器に転送するのに使用することのできるアップデートサーバーと、を含む。メモリサブシステムは、不揮発性書き替え可能メモリを含み、その不揮発性書き替え可能メモリにはコアファームウェアが記憶され、その不揮発性書き替え可能メモリは補助ソフトウェアを記憶できるほどに十分に大きいが、コアファームウェア、アップデートされたバージョンのコアファームウェア、および、補助ソフトウェアを同時に記憶できるほどには大きくない。コアファームウェアは、(1)以前のバージョンのコアファームウェアに上書きしないようにして、アップデートされたバージョンのコアファームウェアを不揮発性書き替え可能メモリに書き込み、オプションとして、その書き込みが正しくなされたか検査し、そして、(2)以前のバージョンのコアファームウェアを使用できないようにし、それによって、少なくとも1つの電子機器をリブートするとき、アップデートされたバージョンのコアファームウェアがロードされ、かつ、実行される、ための命令を含む。
【0016】
また、コアファームウェアは、使用できないようにされた以前のバージョンのコアファームウェアの少なくとも一部分には上書きするがアップデートされたバージョンのコアファームウェアには上書きしないようにして、アップデートされたバージョンの補助ソフトウェアを不揮発性書き替え可能メモリに書き込むための命令を含んでもよい。オプションとして、その書き込みが正しくなされたかどうか検査されてもよい。
【0017】
メモリサブシステムは、さらに、命令が記憶された不揮発性メモリを含んでもよく、その命令は、電子機器がリブートしたときに実行され、使用できないようにされていないバージョンのコアファームウェアを見つけるために、不揮発性書き替え可能メモリがスキャンされる。使用できないようにされていないバージョンのコアファームウェアが見つかれば、その当該バージョンがロードされ、かつ、実行される。
【0018】
本発明のさらに別の態様によれば、少なくとも1つの電子機器に存在するコアファームウェアおよび補助ソフトウェアを通信リンクを介して遠隔からアップデートするためのシステムが提供される。当該システムは、コアファームウェアおよび補助ソフトウェアを記憶するための少なくとも1つの電子機器内に存在するメモリ装置と、アップデートを少なくとも1つの電子機器に通信リンクを介して転送するのに使用することのできるアップデートサーバーと、を含む。メモリ装置は不揮発性書き替え可能メモリを含む。該メモリにおいて、第1のパーティションには、コアファームウェアを含む第1のメモリ内容が記憶され、第2のパーティションには、第1のパーティションに記憶されるのに十分なほど小さく補助ソフトウェアを含む第2のメモリ内容が記憶される。該第2のパーティションは第1のメモリ内容を記憶するのに十分なほど大きい。コアファームウェアはアップデートクライアントを含み、そのアップデートクライアントは、アップデートされたバージョンの第1のメモリ内容を受信すると、そのアップデートされたバージョンの第1のメモリ内容を第2のパーティションに書き込んで、第2のメモリ内容に上書きし、オプションとして、その書き込みが正しくなされたか検査し、第1のパーティションに含まれる第1のメモリ内容を使用できないようにし、そして、アップデートされたバージョンの第2のメモリ内容を受信すると、そのアップデートされたバージョンの第2のメモリ内容を第1のパーティションに書き込んで、使用できないようにされた第1のメモリ内容に上書きし、電子機器をリブートする。さらに、メモリ装置は、ブートローディング命令が記憶された不揮発性メモリを含み、そのブートローディング命令は、電子機器がリブートされたときに、実行される。ブートローディング命令は、命令を含み、その命令は、実行されると、使用できないようにされていないバージョンの第1のメモリ内容を見つけるために、不揮発性書き替え可能メモリを探索し、見つかれば、電子機器の制御をそのメモリ内容に記憶されたコアファームウェアに切り換える。
【0019】
あるいは、アップデートクライアントは、アップデートされたバージョンの第1のメモリ内容を受信すると、第1のメモリ内容を第2のパーティションにコピーして、第2のメモリ内容に上書きし、アップデートされたバージョンの第1のメモリ内容を第1のパーティションに書き込んで、第1のメモリ内容に上書きしてもよい。オプションとして、その書き込みが正しくなされたか検査する。アップデートされたバージョンの第2のメモリ内容を受信すると、そのアップデートされたバージョンの第2のメモリ内容を第2のパーティションに書き込み、オプションとして、その書き込みが正しくなされたか検査し、そして、電子機器をリブートする。
【0020】
さらに、あるいは、アップデートクライアントは、アップデートされたバージョンの第1のメモリ内容を受信すると、第2のパーティションのサイズを縮小してもよい。それによって、第2のパーティションは、アップデートされたバージョンの第1のメモリ内容をちょうど記憶できる大きさとなり、アップデートされたバージョンの第1のメモリ内容を第2のパーティションに書き込んで、第2のパーティションの以前の内容に上書きし、オプションとして、その書き込みが正しくなされたか検査する。そして、第1のパーティションに記憶された第1のメモリ内容のバージョンを使用できないようにし、そして、アップデートされたバージョンの第2のメモリ内容を受信すると、第1のパーティションのサイズを増大させ、第2のパーティションに含まれない不揮発性書き替え可能メモリのすべての部分を含め、アップデートされたバージョンの第2のメモリ内容を第1のパーティションに書き込んで、第1のパーティションの以前の内容に上書きし、オプションとして、その書き込みが正しくなされたか検査し、そして、電子機器をリブートする。
【0021】
オプションとして、アップデートクライアントは、さらに、与えられた時間に少なくとも1つの電子機器をアップデートすることができるかどうかをアップデートサーバーに通知するのに使用することができてもよい。アップデートサーバーは、アップデートクライアントから受信した情報に応答し、電子機器がアップデートできる状態になければ、電子機器のアップデートを延期する。また、アップデートサーバーは、アップデートに優先順位をつけることができ、それによって、アップデートクライアントは、そうしなければアップデートできない電子機器をアップデートできる状態にする。
【0022】
本発明のさらに別の態様によれば、電子機器において使用するためのメモリサブシステムが提供され、そのメモリサブシステムは、コアファームウェアおよび補助ソフトウェアが記憶された不揮発性書き替え可能メモリを含む。コアファームウェアは命令を含み、その命令は、補助ソフトウェアの少なくとも一部分には上書きするが、以前のバージョンのコアファームウェアには上書きしないようにして、アップデートされたバージョンのコアファームウェアを不揮発性書き替え可能メモリに書き込み、アップデートされたバージョンのコアファームウェアを検査し、以前のバージョンのコアファームウェアを使用できないようにし、それによって、電子機器をリブートしたとき、アップデートされたバージョンのコアファームウェアが、ロードされ、かつ、実行される。コアファームウェアは、命令を含んでもよく、その命令は、使用できないようにされた以前のバージョンのコアファームウェアの少なくとも一部分には上書きするがアップデートされたバージョンのコアファームウェアには上書きしないようにして、アップデートされたバージョンの補助ソフトウェアを不揮発性書き替え可能メモリに書き込む。また、メモリサブシステムは、命令を記憶する不揮発性メモリを含んでもよく、その命令は、電子機器がリブートしたときに実行され、使用できないようにされていないバージョンのコアファームウェアを見つけるために、不揮発性書き替え可能メモリをスキャンし、そして、使用できないようにされていないバージョンのコアファームウェアをロードし、かつ、実行する。
【0023】
本発明のさらに別の側面によれば、電子機器において使用するためのメモリサブシステムが、提供され、そのメモリサブシステムは、不揮発性書き替え可能メモリを含み、その不揮発性書き替え可能メモリには、コアファームウェアが記憶され、不揮発性書き替え可能メモリは、コアファームウェアおよび補助ソフトウェアを記憶できるほどに十分に大きいが、コアファームウェアを同時に記憶できるほどには大きくない。コアファームウェアは、命令を含み、その命令は、以前のバージョンのコアファームウェアに上書きしないようにして、アップデートされたバージョンのコアファームウェアを不揮発性書き替え可能メモリに書き込み、アップデートされたバージョンのコアファームウェアを検査し、以前のバージョンのコアファームウェアを使用できないようにし、それによって、電子機器をリブートしたとき、アップデートされたバージョンのコアファームウェアが、ロードされ、かつ、実行される。コアファームウェアは、命令を含んでもよく、その命令は、使用できないようにされた以前のバージョンのコアファームウェアの少なくとも一部分には上書きするがアップデートされたバージョンのコアファームウェアには上書きしないようにして、アップデートされたバージョンの補助ソフトウェアを不揮発性書き替え可能メモリに書き込む。また、メモリサブシステムは、命令を記憶する不揮発性メモリを含んでもよく、その命令は、電子機器がリブートしたときに実行され、使用できないようにされていないバージョンのコアファームウェアを見つけるために、不揮発性書き替え可能メモリをスキャンし、そして、使用できないようにされていないバージョンのコアファームウェアをロードし、かつ、実行する。
【0024】
本発明のさらに別の態様によれば、記憶された命令を実行することができ、そのような命令のアップデートされたバージョンを受信することができる電子機器において使用するための、そのような命令を記憶するためのメモリサブシステムが提供される。当該メモリサブシステムは、不揮発性書き替え可能メモリおよび不揮発性メモリを含む。電子機器がリブートされたときに実行されるブートローディング命令が、不揮発性メモリに記憶される。不揮発性書き替え可能メモリにおいては、電子機器がリスタートするのを可能にし、あるいは、アップデートが進行中に電子機器がリブートした場合に不揮発性書き替え可能メモリをアップデートするのを継続するのを可能にするのに必要な命令を少なくとも含む第1のメモリ内容が、第1のパーティションに記憶され、第1のパーティションに記憶できるほど十分に小さくかつ第1のメモリ内容に含まれない電子機器のリブート後の通常動作に必要なすべての命令を含む第2のメモリ内容が、第1のメモリ内容を記憶できるほど十分に大きい第2のパーティションに記憶される。第1のメモリ内容に記憶された命令は、アップデートされたバージョンの第1のメモリ内容が受信された後に実行されると、アップデートされたバージョンの第1のメモリ内容を第2のパーティションに書き込んで、第2のメモリ内容に上書きし、第1のパーティションに含まれる第1のメモリ内容を使用できないようにする命令と、アップデートされたバージョンの第2のメモリ内容が受信された後に実行されると、アップデートされたバージョンの第2のメモリ内容を第1のパーティションに書き込んで、使用できないようにされた第1のメモリ内容に上書きし、電子機器をリブートする命令と、を含む。
【0025】
あるいは、第1のメモリ内容に記憶された命令は、アップデートされたバージョンの第1のメモリ内容が受信された後に実行されると、第1のメモリ内容を第2のパーティションにコピーして、第2のメモリ内容に上書きし、アップデートされたバージョンの第1のメモリ内容を第1のパーティションに書き込んで、第1のメモリ内容に上書きする命令と、アップデートされたバージョンの第2のメモリ内容が受信された後に実行されると、アップデートされたバージョンの第2のメモリ内容を第2のパーティションに書き込んで、使用できないようにされた第1のメモリ内容に上書きし、電子機器をリブートする命令とを含んでもよい。
【0026】
あるいは、第1のメモリ内容に記憶された命令は、アップデートされたバージョンの第1のメモリ内容が受信された後に実行されると、可能であれば、第2のパーティションのサイズを縮小し、それによって、第2のパーティションが、アップデートされたバージョンの第1のメモリ内容をちょうど記憶できる大きさとなり、アップデートされたバージョンの第1のメモリ内容を第2のパーティションに書き込んで、第2のパーティションの以前の内容に上書きし、第1のパーティションに記憶された第1のメモリ内容のバージョンを使用できないようにする命令と、アップデートされたバージョンの第2のメモリ内容が受信された後に実行されると、可能であれば、第1のパーティションのサイズを増大させ、第2のパーティションに含まれない不揮発性書き替え可能メモリのすべての部分を含め、アップデートされたバージョンの第2のメモリ内容を第1のパーティションに書き込んで、第1のパーティションの以前の内容に上書きし、そして、電子機器をリブートする命令と、を含んでもよい。
【0027】
本発明のさらに別の態様によれば、アップデートおよびソフトウェアの両方を保持できるほど大きくない不揮発性書き替え可能メモリに記憶されたソフトウェアにアップデートをインストールする方法が提供される。この方法は、アップデートを、不揮発性書き替え可能メモリの半分以下の領域に記憶することのできるコア部分を含む個々に書き込み可能な部分に分割するステップと、不揮発性書き替え可能メモリを、アップデートのコア部分とアップデートのコア部分をちょうど保持できる大きさの補助部分とに対応する、不揮発性書き替え可能メモリの半分以下の領域を含むコア部分を含みかつソフトウェア部分を含む個々に書き替え可能な部分に分割するステップと、アップデートのコア部分を不揮発性書き替え可能メモリの補助部分に書き込み、かつ、その書き込みが正しくなされたかを検査するステップと、不揮発性書き替え可能メモリのコア部分に含まれる以前のバージョンのソフトウェアを使用できないようにするステップと、アップデートのコア部分に含まれないアップデートの部分を、不揮発性書き替え可能メモリのコア部分に含まれない不揮発性書き替え可能メモリの部分に書き込み、その書き込みが正しくなされたかを検査するステップと、を備える。
【発明を実施するための最良の形態】
【0028】
以下、添付の図面を参照して、本発明の例としての実施形態を説明する。
【0029】
ここで、図1を参照すると、少なくとも1つの電子機器内に存在するソフトウェアまたはデータをアップグレードするのを可能にする無線ネットワークが、符号20によって概略的に示されている。ネットワーク20は、少なくとも1つのアップデートステーションを含み、そのアップデートステーションは、この例においては、無線基地局24であり、双方向通信リンク32を介して、ソフトウェアアップデートを送信するのに使用することができる。また、ネットワーク20は、音声およびデータに対応可能な無線ローカルループのための加入者ステーション28a、28b、...、28nのような少なくとも1つの電子機器を含む。加入者ステーション28は、音声およびデータのための無線ローカルループにおける顧客構内機器、無線POS端末、または、モデムを有する携帯情報端末(「PDA」)、携帯電話、ケーブルモデム、ラップトップコンピュータ、および、当業者が想到するであろう通信リンク32を介して通信することのできるその他の適切な電子機器のようなその他の何らかの電子機器であってもよい。
【0030】
基地局24によってサービスされる加入者ステーションの数「n」は、利用できる無線帯域幅の大きさ、または、加入者ステーション28の構成および要件に応じて、変化してもよい。わかりやすいように、アップデートされる電子機器として、ここでは、加入者ステーション28にしか言及しない。しかしながら、上述したようなものおよび通信リンク32を介してソフトウェアアップデートを受信できるものなど、その他の電子機器が、本発明の範囲に存在する。
【0031】
ネットワーク20において、基地局24は、適切なゲートウェイおよびバックホール34によって、地上通信線データ交換網30および公衆電話交換網33のような少なくとも1つの電気通信網に接続されてもよい。バックホール34は、T1、T3、E1、E3、OC3、または、その他の適切な地上通信線リンクのようなリンクであってもよく、あるいは、衛星チャネルリンク、その他の無線またはマイクロ波チャネルリンク、または、当業者が考えつくようなバックホールとして動作するのに適切なその他の何らかのリンクであってもよい。また、基地局24は、ソフトウェアアップデートサーバー36を含んでもよく、あるいは、バックホール34またはその他の手段によって、ソフトウェアアップデートサーバー36に接続されてもよく、そのソフトウェアアップデートサーバー36は、加入者ステーション28のためのソフトウェアロードを含む。さらに、基地局24は、加入者データベースに接続され、その加入者データベースは、アップデートサーバー36内に配置され、あるいは、そのような目的のために集中ネットワークオペレーションセンター(以下で説明する)のようなどこかほかの場所に提供される別個のデータベースサーバー(図示しない)内に配置され、そのデータベースサーバーは加入者ステーション28の現在のソフトウェアロードの記録を保持する。
【0032】
無線ネットワーク20においては、通信リンク32が、無線によって、基地局24とそれぞれの加入者ステーション28との間で確立されるが、有線、赤外線、および、超音波手段を含むその他の物理的な接続手段が、使用されてもよい。通信リンク32は、必要に応じて、基地局24とそれぞれの加入者ステーション28a、28b、...、28nとの間で音声およびデータ情報を伝送してもよい。通信リンク32は、TDMA、FDMA、CDMA、OFDM、または、GSMのような混成システムなどを含む様々な多重化技術によって実施されてもよい。さらに、通信リンク32は、音声通信またはデータ伝送のような異なる種類のデータを搬送する様々なチャネル内に配置されてもよく、あるいは、エンドユーザ通信またはネットワーク20の制御のような様々な目的に使用されてもよい。図1に示される実施形態においては、通信リンク32を介して送信されるデータは、IP(インターネットプロトコル)パケットとして送信されるが、任意の適切な種類のパケットが、使用されてもよい。
【0033】
図2は、基地局24の例をより詳細に示す。基地局24は、通信リンク32を介して無線通信を受信および送信するための1つかまたは複数のアンテナ40を備える。アンテナ40は無線送受信機44に接続され、そして、その無線送受信機44はモデム48に接続される。モデム48は、Intelによって製造されるPentium(登録商標)IIIプロセッサシステムおよびそれに関連する装置のようなマイクロプロセッサルータアセンブリ52に接続される。マイクロプロセッサルータアセンブリ52は、必要であれば、複数のマイクロプロセッサを含んでもよいことがわかる。さらに、マイクロプロセッサルータアセンブリ52のルータ機能は、必要であれば、別個のユニットとして提供されてもよい。マイクロプロセッサルータアセンブリ52内において実施されるルータ機能は、何らかの適切なやり方でバックホール34に接続され、基地局24を少なくとも1つの電気通信網30、33に接続する。また、上述したように、基地局24は、直接に、または、バックホール34を介して、アップデートサーバー36に接続されてもよい。
【0034】
ここで、図3を参照すると、加入者ステーション28の例が、より詳細に示される。加入者ステーション28は、通信リンク32を介して無線通信を受信および送信するために、1つかまたは複数のアンテナ60を備える。アンテナ60は、無線送受信機64に接続され、そして、その無線送受信機64は、モデム68に接続される。モデム68は、マイクロプロセッサアセンブリ72に接続され、そのマイクロプロセッサアセンブリ72は、メモリ装置78に接続される。
【0035】
マイクロプロセッサアセンブリ72は、例えば、Intelによって製造されるStrongARMプロセッサを含んでもよく、様々な機能を実行し、それらの機能には、A/D−D/A変換、フィルタ、符号器、復号器、データ圧縮器、データ解凍器、および/または、パケット分解を実施することが含まれる。図3に示されるように、マイクロプロセッサアセンブリ72は、また、モデム68と1つかまたはそれ以上のポート76とを相互接続し、その1つかまたはそれ以上のポート76は、加入者ステーション28をデータ装置および電話装置に接続するのに使用されてもよい。電話装置の例は、電話である。データ装置の例には、パーソナルコンピュータ、PDA、または、それらに類似するものが含まれる。したがっって、マイクロプロセッサアセンブリ72は、ポート76とモデム68との間のデータを処理するのに使用することができる。
【0036】
加入者ステーション28において、メモリ装置78は、2つの主要構成要素、すなわち、(1)加入者ステーション28を動作させるのに必要な命令およびデータを記憶するためにマイクロプロセッサアセンブリ72によって使用される、ダイナミックRAM(DRAM)または同期型DRAM(SDRAM)であってよい揮発性ランダムアクセスメモリ(「RAM」)82、および、(2)命令も含めたデータを記憶するのに使用される、加入者ステーション28においてはフラッシュメモリである、不揮発性書き替え可能記憶装置RSU86を備える。RSU86においては、加入者ステーション28の電源が切られたときにも、データが消失することはない。メモリ装置78は、ブートソフトウェア、オペレーティングシステム、ソフトウェアアプリケーション、無線リソース管理ソフトウェア、デバイスドライバ、および、データファイルを含めた加入者ステーション28の適切かつ所望の機能のために必要なすべての命令およびデータを含むのに使用することができる。
【0037】
当業者には良く知られているように、RAM82は、典型的には、RSU86において使用されるフラッシュメモリよりも高速であり、そのために、加入者ステーション28の現時点において好ましい実施形態においては、命令およびデータは、ほとんどの場合、実行される前に、マイクロプロセッサアセンブリ72によってRSU86からRAM82にコピーされる。ある環境においては、当業者には良く知られていることではあるが、命令またはデータを、RSU86からマイクロプロセッサアセンブリ72に直接読み込み、実行し、あるいは、動作する。
【0038】
また、マイクロプロセッサアセンブリ72は、以下で説明するように、RAM82からRSU86に命令およびデータを書き込むのに使用することができる。
【0039】
加入者ステーション28において、RAM82は、32MバイトのSDRAMであり、RSU86は、8Mバイトのフラッシュメモリである。しかしながら、RAMメモリの容量および種類は、特に限定されるわけではなく、その他の種類の不揮発性書き替え可能メモリ、例えば、一般的なIDEおよびSCSIハードドライブ、光メモリ記憶装置、および、EPROMSがフラッシュメモリの代わりに使用されてもよい。他のタイプの不揮発性書き替え可能メモリを当業者ならば想到することができるであろう。本発明の実施形態におけるRSU86において代替の不揮発性書き替え可能メモリなどを使用することが必要とされるかもしれない以下の記載に対する変更にも、当業者ならば想到するであろう。
【0040】
RSU86に使用されるようなフラッシュメモリは、一般的にブロック単位で読込及び書込をしなければならない。ブロックは、書き込むことのできる最小単位であり、書き込まれる前に、消去されなければならない(言い換えれば、フラッシュメモリは、「粒状」のものであり、以下で説明するように、それを使用する方法に影響を及ぼす)。当業者には、この制約が、加入者ステーション28におけるフラッシュメモリの代わりに使用されるかもしれない何らかのその他の形態の不揮発性書き替え可能メモリには適用されないことがわかるはずである。加入者ステーション28において現時点で使用されるある特定のフラッシュメモリは、256Kバイトのブロックサイズを有する。ここで、図4aを参照すると、RSU86の初期パーティショニングが概略的に示される。RSU86は、論理的パーティションに分割され、それらの論理的パーティションのそれぞれは、1つかまたはそれ以上の論理的に連続するブロックからなる記憶装置である。当業者には明らかなように、「パーティション」および「論理的パーティション」という用語は、ここでは、同義的に使用される。本発明に対する唯一の制約は、サイズの等しいパーティションが使用されるかもしれない特別な場合を除いて、パーティションはサイズ変更可能および/または再配置可能でなければならないことである。したがって、論理的パーティション、および、場合によっては、この要件を満足する物理的パーティションは、いずれも本発明の範囲に含められる。
【0041】
それぞれのパーティションは、少なくとも開始位置とそのパーティションのために定義された長さ/サイズとを有する。当業者には良く知られているように、パーティションは、何らかの目的のために、それらのパーティションがあたかも独立した個々のメモリ装置であるかのように取り扱われる。例えば、2つのパーティションを備えたハードドライブは、そのハードドライブに接続されたコンピュータで実行されているアプリケーションソフトウェアにとっては、2つの独立したハードドライブのように見える。また、当業者には良く知られているように、論理的パーティションおよび何らかの物理的パーティションは、典型的には、記憶装置内において柔軟性を提供するために、追加、削除、または、サイズを変更することができる。論理的パーティションの場合、これは、不揮発性書き替え可能メモリに記憶されたデータ構造を変更することによってなされ、あるいは、加入者ステーション28の場合のように、以下で説明するように、スタートアップ時に再構成される。データ構造は、上述した開始位置およびサイズ/長さのようなデータを含み、記憶装置における物理的な場所と論理的パーティションとを対応させる。また、論理的なパーティショニングは、不連続な記憶場所を、アプリケーションにとっては、あたかも連続するブロックのように見えるようにすることができる。例えば、偶数番号のブロック(すなわち、ブロック0、2、4、6、など)が、アプリケーションにとっては、記憶装置の一方の連続するブロックに見え、かつ、奇数番号のブロック(すなわち、ブロック1、3、5、7、など)が、アプリケーションにとっては、他方の連続するブロックに見えるように、フラッシュROMをパーティショニングすることができる。当業者は、多くのその他のパーティショニング方式およびパーティショニング構造を考え出すことができ、それらは、本発明の範囲に含まれる。加入者ステーション28において、RSU86は、まず最初に、3つのパーティション、すなわち、ブートパーティション104、コアファームウェアパーティション108、および、補助ソフトウェアパーティション112に分割される。
【0042】
ブートパーティション104は、RSU86の第1のブロックに配置され、加入者ステーション28のためのブートローディングファームウェアを含む。加入者ステーション28は、スタートアップ(ブート)時、まず最初にRSU86の第1のブロック内に存在する命令をマイクロプロセッサアセンブリ72が実行するように構成されるが、RSU86の最後のブロックを読み込むような、その他の方式が使用されてもよい。RSU86の残りのブロックは、まず最初に、以下で説明するようにして、コアファームウェアパーティション108と補助ソフトウェアパーティション112とにパーティショニングされる。図4aにおいて、コアファームウェアパーティション108は、ブートパーティション104の直後のブロックを占めるものとして示され、補助ソフトウェアパーティション112は、コアファームウェアパーティション108の最後のブロックとRSU86の終了点との間に存在するブロックを占めるものとして示される。以下で説明するように、コアファームウェアパーティション108と補助ソフトウェアパーティション112との最初の位置は反対であってもよく、以下に記載されるように、アップグレードの結果として、反対にされてもよい(図4c参照、図4cにおいて参照符号にダッシュを付加することにより反対の順序が示されている。)。
【0043】
加入者ステーション28において、ブートローディングファームウェアは、加入者ステーション28においてさらなるROMまたはその他の不揮発性記憶装置パッケージを備える必要性を回避するために、ブートパーティション104内に備えられる。しかしながら、当業者には明らかなように、そのようなROMまたはその他の不揮発性記憶装置パッケージが、加入者ステーション28において、メモリ装置78かまたはどこか他の場所に備えられるのであれば、ブートパーティション104はそこに配置され、RSU86からは除去されてもよく、そして、そのRSU86は、2つのパーティション108および112として構成される。「メモリサブシステム」という用語は、メモリ装置78と、ブートパーティション104がROMまたは別の不揮発性記憶装置パッケージに記憶されているのであれば、そのROMまたは別の不揮発性記憶装置パッケージと、のいずれをも含むものである。
【0044】
少なくとも最低限の機能を加入者ステーション28に提供するのに必要なコアファームウェアが、まず最初に、コアファームウェアパーティション108に書き込まれる。コアファームウェアは、加入者ステーション28の基本動作を提供する責任を有する。これらの基本動作は、メモリ管理と、タスクハンドリングと、ファイル、I/O、などの管理と、(何らかのエンドユーザサービスを提供するには必ずしも十分な機能ではないが)加入者ステーション28が基地局24と通信するのを可能にするのに必要な少なくとも最小限の数の機能と、を含んでもよい。加入者ステーション28において、コアファームウェア内に含まれるオペレーティングシステムは、リナックスカーネルバージョン2.4を含み、ブートパーティション104内のブートローディングソフトウェアは、リナックスブートローダである。パーティション108内のコアファームウェアは、cramfsファイルシステムであり、そのcramfsファイルシステムは、当業者には良く知られている読み出し専用の圧縮されたファイルシステムである。cramfsファイルシステムの資料は、容易に入手することができ(例えば、http://sourceforge.net/projects/cramfs/を参照)、その動作は、ここでは、さらには説明しない。
【0045】
スタートアップ時、ブートパーティションが読み込まれ、そのパーティションの内容を実行することが開始されると、ブートローダは、コアファームウェアパーティション108の開始ブロックおよびサイズを探索するために、RSU86の開始点から順次に読み込むことを開始する。ブートローダは、cramfsファイルシステムにおいて定義されたスーパーブロックを捜し出すことによって、これを実行する。1つのブロックが見つかれば、それがコアファームウェアパーティション108における圧縮されたリナックスカーネルのスーパーブロックであるとみなされる。そして、ブートローダは、カーネルイメージをRAM82内へ解凍するために、スーパーブロック内に記憶された情報を使用し、オペレーティングシステムが開始するときに、コアファームウェアパーティション108の開始ブロックおよびサイズをブートパラメータとしてリナックスカーネルに転送し、それによって、RSUのパーティショニングを決定することができる。
【0046】
現時点においてはリナックスが好ましいが、その他のオペレーティングシステムおよびオペレーティングシステムバージョンが本発明の範囲に含まれる。RSU86内におけるコアファームウェアパーティション108の場所は、特に限定されるわけではなく、ブートローダとしてのブートパーティション104(もし存在すれば)がRSU86の内容を探索した後に、有効なコアファームウェアパーティション108の開始点、すなわち、cramfsスーパーブロックが探索されるまでは、どのような連続した一連の論理的ブロックアドレスを占めてもよい。しかしながら、以下の説明から明らかとなるように、1つかまたはそれ以上のメモリブロックがコアファームウェアパーティション108または補助ソフトウェアパーティション112のどちらにも存在しない状態を回避するために、コアファームウェアパーティション108は、ブートパーティション104の直後に配置されるか、あるいは、RSU86の最後の部分に配置されることが好ましい。
【0047】
残りのソフトウェアおよびデータは、RSU86の補助ソフトウェアパーティション112内に記憶される。以下、このソフトウェアは、補助ソフトウェアと呼ばれる。補助ソフトウェアは、特に限定されるわけではなく、オプションとしてのデバイスドライバ、ユーザアプリケーション、システムソフトウェアアプリケーション、データファイル、電話呼処理ソフトウェアのようなソフトウェアおよびエンドユーザアプリケーション、音声およびオーディオコーデック、ソフトウェアフィルタ、ファイアウォール、ユーティリティ、ヘルプファイル、加入者データファイル、ディジタルメディアファイル、および、当業者が想到するようなその他のアプリケーションファイルおよびデータファイルを含んでもよい。
【0048】
補助ソフトウェアは、上述したcramfs形式のような圧縮ファイルシステム形式で記憶されてもよく、あるいは、この分野に精通する者が考えつくようなその他の何らかの適切な形で記憶されてもよい。補助ソフトウェアがモノリシックであれば、すなわち、ソフトウェアの変更およびアップデートがパーティションの内容全体を入れ替えることを必要とするものであれば、cramfsまたはそれに類似するファイル/記憶装置システムが、それらの代わりとなる好ましいものであるかもしれない。あるいは、補助ソフトウェアがモノリシックではなく、そのために、必要に応じて、パーティションにおいてソフトウェア構成要素をロードおよび/またはアンロードすることができるのであれば、Axis Communications AB,Emdalavaegen 14,S−223 69,Lund Swedenによって開発されたJFFS(Journaling Flash File System)のような適切なシステムが、使用されてもよい。
【0049】
一般的に、補助ソフトウェアパーティション112内に記憶された補助ソフトウェアは、加入者ステーション28が基地局24と通信するためにはなくてもよいものであるが、補助ソフトウェアパーティション112内に記憶された補助ソフトウェアは、加入者ステーション28が、ボイスコールを送受信し、エンドユーザデータコネクション(httpブラウザセッションのような)をなし、または、その他のエンドユーザ機能をなすのを可能にするのに必要とされるかもしれない。RSU86内における補助ソフトウェアパーティション112の場所は、特に限定されるわけではなく、論理的に連続する一連のブロックを占めればよいが、上述したように、好ましくは、RSU86の最後の部分のブロックに存在するか、あるいは、ブートパーティション104の直後に存在する。
【0050】
図4aに示されるように、コアファームウェアパーティション108は、補助ソフトウェアパーティション112よりもサイズが小さい。しかしながら、コアファームウェアパーティション108および補助ソフトウェアパーティション112としてパーティショニングするのに利用できるブロック数が、偶数であれば、それらのパーティションは、サイズが同じであってもよい。加入者ステーション28のこの実施形態においては、RSU86において利用できる総記憶空間は、8Mバイトであり、ブートパーティション104は、256Kバイトであり、コアファームウェアパーティション108は、3.75Mバイトの最大サイズを有し、補助ソフトウェアパーティション112は、(7.75Mバイト−コアファームウェアパーティション108のサイズ)の最大サイズを有する。ここで説明される特定の実施形態においては、補助ソフトウェアブロックの最大サイズは、4Mバイトである。
【0051】
この実施形態においては、RSU86におけるメモリブロックの総数は偶数であるので、かつ、1つのブロックがブートパーティション104に使用されるので、奇数の数のブロックが、コアファームウェアパーティション108および補助ソフトウェアパーティション112としてパーティショニングするのに利用でき、したがって、コアファームウェアパーティション108および補助ソフトウェアパーティション112は、サイズが等しくないかもしれない。以下の説明から明らかとなるように、重要な制約は、コアファームウェアパーティション108が補助ソフトウェアパーティション112よりも大きくてはいけないことである。それによって、いかなる場合にも、既存のコアファームウェアパーティション108に上書きすることなく、コアファームウェアのアップデートを補助ソフトウェアパーティション112に書き込むことができる。これは、以下の説明からすぐにわかることである。
【0052】
コアファームウェアパーティション108内のコアファームウェアをアップデートすることが望ましい場合、以下でより詳細に説明するように、アップデートコアファームウェアが、アップデートサーバー36から通信リンク32を介して加入者ステーション28に転送される。加入者ステーション28へのアップデートコアファームウェアおよび補助ソフトウェアのすべての転送が完了するまで、コアファームウェアが、受信され、加入者ステーション28内のRAM82に記憶されるが、必要であれば、アップデートコアファームウェアを転送し、そして、補助ソフトウェアを転送する前に、そのアップデートコアファームウェアをインストールすることも考えられる。アップデートのサイズおよびRAM82のサイズに応じて、加入者ステーション28で実行されている大きな量のRAM82を必要とする何らかのプロセスを終了しなければならないかもしれない。以下で説明するように、そのようなプロセスを終了させる能力は、加入者ステーション28をアップデートすることを決定する前に考慮される状態判断基準の1つである。
【0053】
アップデートサーバー36から加入者ステーション28にコアファームウェアおよび補助ソフトウェアを転送するために、UDP/IPまたはTCP/IPによってソフトウェアをパケットで送信するなど、様々な技術を使用できることが考えられる。ソフトウェアを転送するのに使用される通信リンク32または物理的メディア(有線接続、など)は、障害または誤りの影響を受ける可能性があるので、受信された転送ソフトウェアの正当性が、使用される前に検査される。この正当性を検査するのに使用される特定の方法は、特に限定されるわけではなく、当業者には明らかなように、チェックサム、CRC、ディジタル署名などが、転送のすべてかまたは一部分に使用されてもよい。受信された内容が、正しくなければ、また、1つかまたはそれ以上の誤りを含むならば、ソフトウェアまたはそれの適切な一部分が、完全な正しいコピーが加入者ステーション28で受信されるまで、アップデートサーバー36から加入者ステーション28に再送されてもよい。
【0054】
アップデート/交換コアファームウェアの完全な正しいコピー、すなわち、「新しい」コアファームウェアが、加入者ステーション28において受信され、RAM82に記憶されると、アップデートプロセスは、これまでに補助ソフトウェアパーティション112によって占められていたRSU86の全部分または一部分に新しいコアファームウェアを書き込むことによって、処理を続行する。この上書きを実行するために、何らかの残存するプロセス、それは、加入者ステーション28で実行されていたものであり、また、補助ソフトウェアパーティション112内に存在する補助ソフトウェアへの読み込みアクセスを必要とするものであるが、それらの残存プロセスが、終了させられる。これらのプロセス(もしあれば)が終了させられると、新しいコアファームウェアが、RAM82からコピーされ、RSU86に書き込まれる。新しいコアファームウェアが、新しいコアファームウェアパーティション108’として図4bに示される。ここで使用される場合、「上書きする」および「上書きされる」という用語は、古いデータと交換するために新しいデータを不揮発性メモリに配置するのに必要な操作を備えることを意味するものであり、フラッシュメモリの場合、新しいデータをフラッシュメモリに書き込む前に、(もしそのようなステップが必要であれば)まずメモリを消去することを含む。
【0055】
また、受信されるアップデートが書き込む前に適切に受信されたことを検査することができれば、RAM82において必要とされるメモリを少なくするために、アップデートされるコアファームウェアは、それが受信されているときに、一定量ずつ、例えば、256Kバイトのアップデートブロックの単位で、書き込まれてもよいことが考えられる。そのような場合、与えられた量のアップデートデータが、加入者ステーション28において受信されると、そのアップデートデータは、RAM82に一時的に記憶され、かつ、検査され、そして、RSU86に書き込まれ、そして、受信される次のアップデートは、RAM82に一時的に記憶されている以前に受信されたアップデートに上書きされる。このように、RAM82から待避した様々なアプリケーションおよびプロセスは、以下で説明するように、少なくとも加入者ステーション28がリブートされるまでは、アップデートプロセス中に必ずしも終了させられなくてもよい。
【0056】
図4bに示されるように、上書きは、新しいコアファームウェアパーティション108’の終了点が補助ソフトウェアパーティション112の終了点に一致するように決定された補助ソフトウェアパーティション112の開始点からのオフセットにおいて開始される。上述した例において、RSU86が、全サイズが8Mバイトであり、ブートパーティション104のサイズが0.25Mバイトであり、補助ソフトウェアパーティション112のサイズが4Mバイトであり、そして、コアファームウェアパーティション108が、3.75Mバイトであれば、新しいコアファームウェアパーティション108’が補助ソフトウェアパーティション112上に上書きされるオフセットは、ブートパーティション104がRSU86の開始点に実際に存在すると仮定すれば、RSU86の開始点から4.25Mバイトである。
【0057】
新しいコアファームウェアパーティション108’が、書き込まれた後、それの内容が、加入者ステーション28によって検査され、加入者ステーション28は、今度は新しいコアファームウェアパーティション108’から内容を読み込み、その内容を、RAM82内の新しいコアファームウェアのコピーと比較する。受信されたとき、新しいコアファームウェアパーティション108’が、RAM82からより小さな部分に書き込まれるならば、次に受信される部分がRAM82に一時的に記憶された最後の部分を上書きする前に、それらのより小さい部分の書き込みは、RAM82内に記憶されたものと比較される。
【0058】
いずれの場合においても、新しいコアファームウェアパーティション108’から読み込まれた内容が正しいことを確認できなければ、新しいコアファームウェアパーティション108’の書き込み、または、新しいコアファームウェアパーティション108’の関連する部分の書き込みが、再度、実行され、内容が正しいことが確認されるまで、検査/再書き込みプロセスが、反復される。
【0059】
新しいコアファームウェアパーティション108’の内容が、正しく書き込まれたと確認されると、新しいコアファームウェアパーティション108’は、加入者ステーション28によって、最も新しいコアファームウェアを含むものとみなされ、そして、コアファームウェアパーティション108内に存在する元々のコアファームウェアは、「無効」のマークを付けることによって、加入者ステーション28が、実行できないようにされる。コアファームウェアパーティション108および108’がcramfs形式リナックスカーネルなどを含む加入者ステーション28においては、コアファームウェアパーティション108内に存在する元々のコアファームウェアは、コアファームウェアパーティション108のスーパーブロックをそれがもはや有効なスーパーブロックではないものに変更するように上書きすることによって、無効であるとみなされる。これがなされると、加入者ステーション28が次にリブートするときには、ブートローダは、最も新しい有効なコアファームウェアパーティションである新しいコアファームウェアパーティション108’のスーパーブロックしか探索せず、加入者ステーション28は、パーティション108’からブートすることになる。
【0060】
図4bから明らかなように、上述したことは、結果として、無効なコアファームウェアパーティション108と、もしあれば、有効なデータをもはや含んでいない補助ソフトウェアパーティション112の残りの部分とをもたらす。そして、加入者ステーション28は、図4cに示されるように、補助ソフトウェアをRAM82から書き込み(あるいは、その補助ソフトウェアをアップデートサーバー36からRAM82にダウンロードし(もしこれがまだ実行されていなければ))、新しい補助ソフトウェアパーティション112’をコアファームウェアパーティション108および補助ソフトウェアパーティション112の残りの部分(もしあれば)のメモリ空間に形成することができる。あるいは、加入者ステーション28は、新しいコアファームウェアを実行するために、リブートされてもよく、そして、補助ソフトウェアが、アップデートサーバーからダウンロードされ、新しい補助ソフトウェアパーティション112’に記憶されてもよい。コアファームウェアについて上述したものと類似するようなやり方で、新しい補助ソフトウェアの書き込みが正しくなされたことが、確認されると、加入者ステーション28は、補助ソフトウェアを実行することができ(加入者ステーション28がすでにリブートされておりかつ新しいコアファームウェアを実行していると仮定すれば)、あるいは、新しいコアファームウェアパーティション108’内のアップデートされたコアファームウェアをローダにブートさせかつコアファームウェアおよび補助ソフトウェアの両方によって提供されるすべてのサービスをリスタートするために、リブートされてもよい。その際、オペレーティングシステムは、新しいコアファームウェアパーティション108’のスーパーブロックおよび新しい補助ソフトウェアパーティション112’のスーパーブロック(もしcramfsが補助ソフトウェアパーティションに使用されていれば)を探索し、リパーティショニングされたRSU86を表現するデータ構造を形成する。
【0061】
上述したことから明らかなように、アップデートプロセス中に、加入者ステーション28が、例え、電源が切られ、電力が不安定であり、リブートを必要とし、さもなければ、妨害されても、コアファームウェアの有効なコピーは、常に、RSU86に存在する。アップデートプロセスが、新しいコアファームウェアパーティション108’を補助ソフトウェアパーティション112に上書きすることによってすでに開始されている場合、新しいコアファームウェアパーティション108’の書き込みが完了および確認される前に、加入者ステーション28の電源が切られると、加入者ステーション28は、次にそれの電源が再び投入されたとき、依然として無傷の古いコアファームウェアパーティション108からブートする。有効な補助ソフトウェアパーティション112が存在しないことがわかり、アップデートプロセス全体が、リスタートされるか、あるいは、有効な補助ソフトウェアの転送が、アップデートサーバー36に要求され、復元された補助ソフトウェアパーティション112としてRSU86に記憶されてもよく、アップデートプロセスは、後に延期される。ネットワーク20が過度の負荷がかかった状態で使用され、アップデートを実行する容量を容易に得ることができない場合、この後者の選択肢が選択される。
【0062】
アップデートがうまく実行されたならば、加入者ステーション28内のコアファームウェアを再びアップデートしたい場合にはいつでも、新しいコアファームウェアパーティション108が、補助ソフトウェアパーティション112’の一部分を上書きし、新しい補助ソフトウェアパーティション112が、古いコアファームウェアパーティション108’および古い補助ソフトウェアパーティション112’の残りの部分を上書きし、再び、図4aに示される構成が得られる。新しいコアファームウェアパーティション108が正しいことが確認された後、古いコアファームウェアパーティション108’のスーパーブロックを消去することは絶対に必要なわけではないことに注意されたい。なぜなら、アップデートが、その段階において中断されたならば、リブートが発生したとき、ブートローダは、古いコアファームウェアパーティション108’に到達する前に、新しいコアファームウェアパーティション108の内容を探索および使用するからである。
【0063】
コアファームウェアをその後にアップデートするたびに、新しいコアファームウェアパーティションが、既存の補助ソフトウェアパーティションに上書きされ、かつ、新しい補助ソフトウェアパーティションが、古いコアファームウェアパーティションおよび補助ソフトウェアパーティションの残りの部分に上書きされることになる。
【0064】
ここで使用されるように、「新しい補助ソフトウェア」という用語は、補助ソフトウェアに変更がまったくなされておらず、かつ、新しい補助ソフトウェアが、加入者ステーション28にダウンロードされたその変更されていないソフトウェアの新しいコピーのことをただ単に意味する場合、および、補助ソフトウェアのアップデートされたかさもなければ変更されたバージョンが加入者ステーション28にダウンロードされた場合の両方を含むことを意図していることに注意されたい。
【0065】
図5aに示されるように、通常動作中のRSU86におけるパーティション108および112の場所を変えたくなければ、「古い」コアファームウェアパーティション108が、「古い」補助ソフトウェアパーティション112上にコピーされ、コピーされた古いコアファームウェアパーティション108”が、形成されてもよい。そして、このコピーされた古いコアファームウェアパーティション108”が、検査され、正しいことが確認されると、元々のコアファームウェアパーティション108は、それを変更するためにそれのスーパーブロックを上書きすることによって、または、何らかのその他の適切な手段によって、無効なものであるとみなされる。この時点において、加入者ステーション28が、何らかの理由でリブートされれば、ブートローダは、コピーされたコアファームウェアパーティション108”の内容を探索および使用する。
【0066】
次に、図5bに示されるように、「新しい」コアファームウェアが、RAM82から元々のコアファームウェアパーティション108に上書きされ、検査される。元々のコアファームウェアパーティション108に代わる新しいコアファームウェアのスーパーブロックは、コアファームウェアパーティション108の残りの部分の内容が検査されるまでは、元々のコアファームウェアパーティション108に書き込まれることはなく、その後に、スーパーブロックが書き込まれ、かつ、検査される。そして、コピーされたコアファームウェアパーティション108”は、それのスーパーブロックを上書きまたは変更することによって、または、何らかのその他の適切な手段によって、無効なものであるとみなされる。このように、新しいコアファームウェアパーティション108の書き込みを検査するのに先だってコアファームウェアをロードしなければならないリブートまたはその他のイベントは、新しいコアファームウェアパーティション108の代わりに、コピーされたコアファームウェアパーティション108”を使用する。
【0067】
最後に、新しい補助ソフトウェアが、図5cに示されるように、RAM82からコピーされ、補助ソフトウェアパーティション112が形成され、このパーティションが使用される前に検査され、加入者ステーション28は、再度、その通常の動作構成になる。このプロセスは、結果として、RSU86において同じ位置を常に有するパーティション108および112をもたらすが、コアファームウェアパーティション108の内容をコピーされるコアファームウェアパーティション108”にコピーするために実行される余計な書き込み操作および確認操作を必要とし、これは、アップデートを実行するのに必要な時間を増加させ、そして、RSU86がフラッシュメモリであれば、より早くRSU86を疲弊させるかもしれない。
【0068】
本発明のこの実施形態においては、加入者ステーション28におけるソフトウェアのアップデートは、管理されたプロセスである。これは、とりわけ、主要な電話回線に取って代わる無線ローカルループのようなクリティカルネットワークまたは「常時サービス継続性」ネットワークにおいては重要なことである。図6は、ネットワークオペレーションセンター(NOC)200、ネットワーク20の基地局24におけるそれぞれのセクタごとの無線セクタマネージャー204、および、ネットワーク20によってサービスを提供されるそれぞれの加入者ステーションごとの加入者ステーションアップデートクライアント208を含むネットワーク20の管理システム階層を示す。
【0069】
ネットワークオペレーションセンター200は、ネットワーク20のオペレータによって操作される中央集中設備であり、ネットワーク20全体における加入者ステーションをアップデートするのを管理することに加えて、OAM&Pなどのその他のネットワーク管理機能を実行することもできる。無線セクタマネージャー204は、好ましくは、ネットワーク20のそれぞれの基地局24に配置され、また、アップデートサーバー36と同じ場所に配置されてもよく、あるいは、アップデートサーバー36内で実施されてもよい。基地局24が、無指向性(単一セクタ)基地局であれば、その基地局においては、ただ1つの無線セクタマネージャー204しか提供されない。より一般的には、基地局24は、指向性(ビーム形成)アンテナを使用することも考えられ、その指向性アンテナによって、基地局24は、より多くの加入者ステーション28にサービスを提供することができる。例えば、60°のビーム形成アンテナが使用されるならば、基地局24は、6つの異なる無線セクタとして構成することができ、それぞれのセクタは、その基地局24によってサービスを提供される総加入者ステーション28の一部にサービスを提供する。そのような場合、6つの無線セクタマネージャー204が、基地局24に提供される。最後に、それぞれの加入者ステーション28は、そのコアファームウェアの一部分として、アップデートクライアント208を含み、そのアップデートクライアント208は、加入者ステーション28で動作する。
【0070】
NOC200は、数百の無線セクタマネージャー204にサービスを提供することができ、そして、それらの無線セクタマネージャー204を介して、数千またはそれ以上の加入者ステーション28にそれらのアップデートクライアント208を介してサービスを提供することができるので、図6においては、破線で示される無線セクタマネージャー204は、複数のそのような無線セクタマネージャー204およびそれらに関連するアップデートクライアントを表現しようとするものである。
【0071】
加入者ステーション28の補助ソフトウェアまたはコアファームウェアへのアップデートが生成され、かつ、ネットワーク20のオペレータがそのアップデートを実施したければ、ネットワークオペレーションセンター200は、ネットワーク20によってサービスを提供されるそれぞれの加入者ステーション28内にロードされたソフトウェアの現在のバージョンを判断する。当業者には明らかなように、この判断は、様々なやり方でなされてもよい。本発明の実施形態においては、加入者ステーション28の電源が投入されるたびに、および/または、アップデートがなされた後にその都度、それぞれの加入者ステーション28のアップデートクライアント208が、その加入者ステーション28にサービスを提供している無線セクタマネージャー204に、加入者ステーション28内にロードされたソフトウェアの現在のバージョンを報告する。無線セクタマネージャー204は、この情報をネットワークオペレーションセンター200に転送し、そのネットワークオペレーションセンター200において、その情報は、適切なデータベースに記憶される。当業者には明らかなように、それぞれの加入者ステーション28の現在のソフトウェアロードを決定するために、適切な間隔でアップデートクライアント208をポーリングすることなども含めて、様々なその他の技術を使用することができる。
【0072】
ネットワーク20におけるそれぞれの加入者ステーションの現在のソフトウェアロード、または、ネットワーク20において関心のある一部の加入者ステーション28(例えば、ネットワークオペレータは特定の都市の加入者ステーションをアップデートすることにしか関心がないかもしれない)の現在のソフトウェアロードが、決定されると、ネットワークオペレーションセンター200は、アップデートされるべき加入者ステーション28を決定する。ほとんどの環境においては、ネットワーク20におけるすべての加入者ステーション28をアップデートすることが望ましいが、一部の選択された加入者ステーション28をアップデートすることが、あるいは、個々の加入者ステーション28をアップデートすることすらもが、望ましいと考えられる場合もある。
【0073】
ネットワークオペレーションセンター200は、アップデートされるべき加入者ステーション28を備えた無線セクタマネージャー204にサービスを提供する1つかまたはそれ以上のアップデートサーバー36において、アップデートされた所望のソフトウェアを利用できることを保証し、必要であれば、アップデートされたソフトウェアをアップデートサーバー36に転送する。次に、ネットワークオペレーションセンター200は、アップデートされるべき加入者ステーション28を備えた無線セクタマネージャー204にそれらの加入者ステーション28のIDを通知し、アップデートを開始するようにそれらの無線セクタマネージャー204に指示する。
【0074】
無線セクタマネージャー204が、ネットワークオペレーションセンター200からアップデートの指示を受信すると、無線セクタマネージャー204は、それが管理するアップデートされるべき加入者ステーション28のアクティビティのレベルおよび/または状態を判断する。理想的には、アップデートは、そのアップデートが通信リンク32で必要とする容量がその他のものに必要とされない場合、および/または、加入者ステーション28がアップデートプロセスのために中断されなければならないエンドユーザプロセスを実行していない場合にしか実施されない。したがって、無線セクタマネージャー204は、まず最初に、アップデートを送信するために通信リンク32に余裕および/または容量があるかどうかを判断する。典型的には、そのようなアップデートは、通信リンク32がエンドユーザによってあまり利用されていない深夜または早朝に実施されることが考えられる。しかしながら、また、ネットワーク20の動作を安定させるために、あるいは、改善されたセキュリティなどを提供するために必要とされるような重要なアップデートは、ネットワークオペレータセンター200によって高いアップデート優先順位を割り付けられてもよいことが考えられ、そのネットワークオペレータセンター200は、アップデートをできるだけ早く実施するように無線セクタマネージャー204に指示し、通信リンク32の容量をその他のものに使用するのを終了または中断し、および/または、アップデートされるべき加入者ステーション28におけるエンドユーザアクティビティを中断し、サービスを低下させ、または、保留する。
【0075】
無線セクタマネージャー204が、無線セクタマネージャー204が加入者ステーション28にアップデートを送信するための容量を通信リンク32に有すると判断すれば、あるいは、無線セクタマネージャー204が容量を確保した優先順位の高いアップデートの場合、無線セクタマネージャー204は、アップデートされるべき加入者ステーション28それぞれにおけるアップデートクライアント208に問い合わせ、それらの加入者ステーション28の状態を判断する。この状態は、加入者ステーション28において現在なされているアクティビティのレベルおよび/または種類を通知するものである。
【0076】
例えば、加入者ステーション28は、それが10分の間ずっとアイドル状態(エンドユーザアクティビティがない)であること、あるいは、それが、現在、エンドユーザのためのhttpセッションを実行していること、などを通知してもよい。転送されるアップデートのダウンロードは、典型的には、まず最初に、RAM82に記憶されるので、そのダウンロードを記憶するのに必要な選択されたメモリの量(この量は、すべてのアップデートのために予め定められた量であってもよく、あるいは、無線セクタマネージャー204によって、それのアップデートクライアント208への状態問い合わせの中に提供されてもよい)が、RAM82において足らなければ、加入者ステーション28は、この情報を、無線セクタマネージャー204へのそれの状態レポートに含める。あるいは、加入者ステーション23におけるアップデートクライアント208は、メモリ空間を解放するために、RAMメモリ82を使用しているプロセスおよび/またはアプリケーションを終了させることができるかどうかを判断してもよく、そして、もしそれができれば、状態応答を無線セクタマネージャー204に送信する前に、そのようにする。
【0077】
無線セクタマネージャー204は、アップデートされるべきそれぞれの加入者ステーション28から受信した状態応答を精査し、どの加入者ステーション28をこの時点におけるアップデートに含めてもよいかを決定する。そして、それらの加入者ステーション28それぞれのアップデートクライアント208は、無線セクタマネージャー204から送信されるアップデート情報を受信し、そのアップデート情報は、それらの加入者ステーション28がアップデートされることをそれらの加入者ステーション28に通知し、かつ、アップデートが送信される通信リンク32のチャネルを指示するものである。
【0078】
そして、無線セクタマネージャー204は、アップデートサーバー36からのアップデートを、アップデートを処理するように通知されている加入者ステーション28にマルチキャスト送信することを開始する。本発明の実施形態においては、アップデートは、マルチキャスト送信として、IPを介してUDPによって送信され、送信されるそれぞれのパケットは、正しく受信されたことを検査するためのCRCチェックサム、および、パケットの一連番号またはその他の固有の識別子を含み、それによって、それぞれの加入者ステーション28は、必要なすべてのパケットを正しく受信したかどうかを判断することができる。1つかまたはそれ以上のパケットが、加入者ステーション28によって、誤りのある状態またはまるまる紛失した状態で受信された場合、そのような加入者ステーション28は、パケットの送信が進行中に、再送要求を無線セクタマネージャー204に送信してもよく、そして、要求されたパケットが、再送されてもよい。好ましくは、この再送は、マルチキャストチャネルを介して実施され、アップデートされるすべての加入者ステーション28にとって有効であるが(1つよりも多い加入者ステーション28が同じパケットの再送を必要とする場合)、また、そのような再送は、そのために、無線セクタマネージャー204によって加入者ステーション28との間に確立された通信リンク32の専用チャネルを介して、1つの加入者ステーション28に対してなされてもよいことが考えられる。
【0079】
本発明の実施形態においては、アップデート全体が、ダウンロードされ、かつ、検査されたならば、加入者ステーションにおけるアップデートクライアントは、RSU86のアップデートをいつ実施するかを決定しなければならない。アップデートは、加入者ステーション28のリブート(リスタート)を必要とするので、アップデートクライアント208は、たとえあるとしてもサービスの最小限の中断しかエンドユーザに発生しないようなアップデートのための時間帯を選択することを試みる。繰り返すと、そのようなアップデートは、典型的には、深夜または早朝に、あるいは、ユーザが加入者ステーション28を使用する可能性の低いその他のいずれかの時間に、実施されることが考えられる。
【0080】
しかしながら、また、加入者ステーション28におけるアップデートクライアント208は、エンドユーザのどのようなアクティビティが発生しているかおよび/またはエンドユーザの最後のアクティビティからの時間を判断することによって、アップデートをいつ実施するかについてインテリジェントに決定してもよい。例えば、エンドユーザの音声コネクションまたはデータコネクションを20分以上も前に最後に実施した加入者ステーション28は、アップデートが実施される次の数分間はエンドユーザによって使用されないと合理的に仮定することができる。
【0081】
繰り返すと、また、何らかのアップデートは、それらのアップデートに高い優先順位を割り付けさせるのに十分なほどネットワーク20の動作にとって重要性を有することが考えられ、その高い優先順位は、アップデートが実施されるのを保証するために、加入者ステーションにおけるエンドユーザのアクティビティをアップデートクライアント208が終了させるのを可能にする。
【0082】
アップデートクライアント208が、アップデートを実施することができると判断すれば、上述したプロセスが、実行され、新しいファームウェアパーティション108’またはコピーされるパーティション108などが、補助ソフトウェアパーティション112に上書きされる。
【0083】
アップデートがうまく実施され、加入者ステーション28が新しいコアファームウェアおよび/または補助ソフトウェアをリブートし、そして、それらの新しいコアファームウェアおよび/または補助ソフトウェアが実行されると、アップデート状態メッセージが、無線セクタマネージャー204に送信され、アップデートが完了したことを通知し、かつ、加入者ステーション28によって実行されるソフトウェアのバージョン番号を確認する。そして、無線セクタマネージャー204は、アップデートされた加入者ステーション28および依然としてアップデートを要求している加入者ステーション28に関するそれの記録を更新する。
【0084】
そして、無線セクタマネージャー20は、アップデートされるべき残りの加入者ステーション28のために、1回かまたはそれ以上の回数だけ繰り返すことによってプロセスを反復する。無線セクタにおけるアップデートされるべき予め選択された比率の加入者ステーション28をアップデートできるようになるまではアップデートは開始されないことも考えられる。例えば、無線セクタマネージャー204のセクタにおけるアップデートされるべき加入者ステーション28の少なくとも50%がアップデートできるようにならない限り、その無線セクタマネージャー204はアップデートを開始しないことが選択されてもよい。もしこのしきい値に達しなければ、このしきい値を満足できるまで、あるいは、ネットワークオペレーションセンターがこのしきい値を(例えば、35%にまで)下げ、または、アップデートの優先順位を上げ、それによって、加入者ステーション28が強制的にアップデートを実施させられるまで、アップデートは延期される。
【0085】
ネットワークオペレーションセンター200は、無線セクタマネージャー204によって、アップデートの状態を通知される。したがって、ネットワークオペレーションセンター200は、アップデートされた加入者ステーション28の数およびアップデートされるべき残りの加入者ステーション28の数を判断することができる。ネットワークオペレーションセンター200が、所望されるよりも少ない加入者ステーション28に対してアップデートが実行されていることに気がつけば、ネットワークオペレーションセンター200は、それらの加入者ステーション28に強制的にアップデートなどの準備をさせるために、そのアップデートに高い優先順位を適用してもよい。
【0086】
ほとんどの環境においては、コアファームウェアアップデートおよび補助ソフトウェアアップデートは、1つのアップデートとして送信されると考えられるが、また、環境によっては、まず最初に、コアファームウェアアップデートを送信し、加入者ステーション28がそのアップデートをうまくインストールした後に、補助ソフトウェアアップデートを送信することが望ましいかもしれないことが考えられる。また、環境によっては、補助ソフトウェアだけをアップデートすることが望ましいことも考えられる。そのような場合、コアファームウェアは、アップデートされず、アップデートされた補助ソフトウェアが、既存のソフトウェアパーティション112に上書きされる。
【0087】
図7は、上述したアップデートプロセスのフローチャートを示す。ネットワークオペレーションセンター200が、ネットワーク20に存在する機器をアップデートしたい場合、ステップ300において、アップデートをインストールされるべき機器が決定される。ステップ304において、アップデートが、1つかまたは複数のアップデートサーバー36に転送され、さもなければ、それらのアップデートサーバー36によって利用できるようにされ、それらのアップデートサーバー36から、アップデートが、アップデートされるべき機器に転送される。
【0088】
ステップ308において、それぞれの無線セクタマネージャー204は、それがサービスを提供している機器のどれをアップデートすることができるかを判断する。ステップ312において、無線セクタマネージャー204は、それらの機器がアップデートされることをそれらに通知し、マルチキャストパラメータなどのアップデート通信の詳細を提供する。
【0089】
ステップ316において、アップデートが、アップデートされる機器に転送される。対象となるそれぞれの機器は、送信が完了したときかまたは送信中に、送信されたアップデートが正しく受信されたかどうかを確認し、ステップ320において、送信の誤りのある部分を受信し、あるいは、送信の一部を受信できなかった機器は、このことを無線セクタマネージャー204に通知し、無線セクタマネージャー204は、それらの部分を再送する。
【0090】
ステップ324において、機器が、アップデートの正しいコピーを受信すれば、機器は、アップデートを実行する適切な時間を決定する。上述したように、この決定は、取るに足らない問題であってもよく(すなわち、機器の状態に関係なくアップデートを実行する)、あるいは、機器の状態に応じてなされてもよく、その機器の状態には、機器で実行されている現在のプロセス、エンドユーザプロセスが実行されてからの時間、など、のような要因が含まれる。
【0091】
機器のアップデートおよびリブートが、完了すると、ステップ328において、機器は、それがアップデートされたことをそれを管理する無線セクタマネージャー204に通知し、また、それの現在のソフトウェアロードの詳細を提供してもよい。
【0092】
ステップ332において、それぞれの無線セクタマネージャー204は、それが管理する機器でまだアップデートされていないものがあるかどうかを判断する。そのような機器がまだあれば、必要に応じて、ステップ308〜ステップ328が、再度、実行される。そのような機器がもうなければ、アップデートプロセスは、ステップ336において完了する。
【0093】
ここで説明されたいくつかの実施形態は、本発明の特定の実施形態を説明するものであり、この実施形態の組み合わせ、一部分、および、変形は、本発明の範囲に含まれることがわかる。
【0094】
本発明の上述した実施形態は、本発明の例として説明されたものであり、当業者は、ここに添付された特許請求の範囲によってのみ定義される本発明の範囲を逸脱することなく、それに変形および変更を実施することができる。
【図面の簡単な説明】
【0095】
【図1】本発明の実施形態における電子機器のアップグレードを可能にするネットワークのブロック図である。
【図2】本発明の実施形態におけるアップデートステーションのブロック図である。
【図3】本発明の実施形態におけるメモリ装置を含むアップデート可能な電子機器のブロック図である。
【図4a】図3に示される電子機器における本発明の実施形態のメモリ装置のブロック図である。
【図4b】図3に示される電子機器における本発明の実施形態のメモリ装置のブロック図である。
【図4c】図3に示される電子機器における本発明の実施形態のメモリ装置のブロック図である。
【図5a】図3に示される電子機器における本発明の別の実施形態のメモリ装置のブロック図である。
【図5b】図3に示される電子機器における本発明の別の実施形態のメモリ装置のブロック図である。
【図5c】図3に示される電子機器における本発明の別の実施形態のメモリ装置のブロック図である。
【図6】本発明の実施形態によるアップデートシステムの階層のブロック図である。
【図7】本発明によるアップデートプロセスの実施形態を説明するフローチャートである。
【Technical field】
[0001]
The present invention relates generally to methods, apparatus, and systems for updating software in remotely located electronic devices. More particularly, the present invention relates to methods, systems and devices for updating software residing in remotely located electronic devices connected to a network, according to these methods, systems and devices, Those electronic devices can recover from the update failure and complete the update via the network.
[Background]
[0002]
Many common electrical appliances include a rewritable memory that can hold software or data even when the device is powered down. Software or data held in the rewritable memory can be rewritten. Currently, such rewritable memory is typically flash memory or equivalent, but other types of memory or storage devices may be used. A flash memory is a kind of nonvolatile semiconductor memory. Therefore, data is not lost even when the power is turned off, and can be rewritten to include different data. Flash memories are widely used because they are small, fairly durable, fast, and rewritable. For example, cell phones use flash memory to hold software that performs phone functions such as abbreviated numbers, ring tones, firmware updates, and the like. Therefore, new functions are provided or bug fixes are implemented, so that firmware in the electronic device can be updated.
[0003]
However, flash memory or equivalent is not without its drawbacks. One drawback is that flash memory is relatively expensive. In equipment where manufacturers must keep consumer prices low, the equipment must be designed to minimize the amount of flash memory required.
[0004]
While it is clearly desirable to be able to update firmware or other software or data at the device on which they are located, it is not always easy to update the flash memory in the electronic device. For example, if you need to update most mobile phone firmware or other software, you must bring the mobile phone to a local service center. The local service center has an update station that holds updated software, and updates the software by connecting a mobile phone to the update station via a wired data link. If there is a problem transferring new software during an update session, the device will be in an unknown or inoperable state. In this case, the device will be reset and new software will simply be transferred again until the transfer is complete and the device is operating properly.
[0005]
However, this method is very rarely an attractive option. This is because such a method requires the active involvement or cooperation of the user who has to visit the service center. In the case of devices such as wireless local loop subscriber stations, bringing a subscriber station to a service center, in addition to the inconvenience of going to the service center, is a telephone or data service where the subscriber station is usually located. It means that it temporarily disappears.
[0006]
Attempts have been made so far to update the non-volatile rewritable memory in devices via a network to which the devices are connected. For example, a mobile phone can receive software updates to its flash memory via a serving wireless network. However, the technique is problematic in that if for some reason the transmission fails or if there is an error in the transmission, the device may remain in an unknown or inoperable state. In such a case, unlike the above-described example in which the update is performed in the service center, it is not possible to attempt to retransmit the update software, and the user is left with an inoperable device until the service center is returned.
[0007]
One prior art solution to this problem has been to provide a rewritable memory consisting of separate banks. U.S. Pat. No. 6,057,031 teaches a mobile phone system in which half of the rewritable memory is a bank used to hold the current version of software and has been updated. The software is downloaded to the other half bank of the rewritable memory. If the mobile phone determines that the transfer was successful, for example by examining the CRC, the mobile phone switches to use the updated bank of memory, and the bank containing the old software is Can be used to receive updates. A similar prior art solution is taught in US Pat. These configurations prevent unrecoverable errors from occurring during the update, but require twice as much expensive rewritable memory.
[0008]
Also, the prior art update methods described above typically require the cooperation or involvement of the device user, who must either go to a service center or transfer update data over the network. And the transfer must be initiated. Critical updates, such as improving network stability or capacity for network operators, may be rejected by some users or otherwise delayed to inconvenience users . Furthermore, in the known prior art method, updating each device in the network must be performed individually.
[0009]
What is desired is a method and system for reliably updating software or data in non-volatile rewritable memory of devices connected to a network. It is desirable that the method and system do not require twice the amount of non-volatile rewritable memory in the device and can be automatically and concurrently executed in multiple devices. .
[Patent Document 1]
US Pat. No. 6,023,620
[Patent Document 2]
US Pat. No. 6,275,931
DISCLOSURE OF THE INVENTION
[Problems to be solved by the invention]
[0010]
An object of the present invention is to provide a novel method, system, and apparatus for updating software existing in an electronic device via a network. These method, system, and apparatus are described above. This eliminates or alleviates the disadvantages of the prior art.
[Means for Solving the Problems]
[0011]
According to a first aspect of the present invention, a system for remotely updating at least one electronic device via a communication link is provided. The system includes an update server, volatile memory, a non-volatile rewritable storage device present in the at least one electronic device, and an update client operating on the device. The update server can be used to transfer updates comprising core firmware and auxiliary software to at least one electronic device via a communication link. Volatile memory is used to temporarily store transfers received from the update server. The non-volatile rewritable storage device is divided into at least first and second partitions, the first partition stores one version of the core firmware and one of the auxiliary software, and the second partition has a version of Stores the other of the core firmware and auxiliary software. The update client runs on the device and (1) overwrites the received update core firmware stored in volatile memory with the version of auxiliary software stored in one of the first and second partitions and writes (2) When the device is next rebooted, set the device to run the core firmware stored in (1), and (3) Stored in volatile memory Overwrite the received updated auxiliary software with the version of the core firmware stored in the other of the first and second partitions, check if this write was successful, (4) reboot the device, Updated core firmware and updated auxiliary Running the software, it can be used to.
[0012]
According to another aspect of the invention, a method for updating software present in a plurality of remote devices connected to a network is provided. The method includes (1) placing an update comprising at least a core firmware update on an update server; (2) identifying a device to be updated connected to a network; and (3) updating the update server. To each identified device over the network, each identified device verifies that the update was received correctly, and if there is an error in the update received so far, Requesting retransmission and receiving the part; (4) core firmware of received updates, ensuring that a valid copy of the previous version of core firmware is always present in the storage device; Non-volatile rewrite with part partitioned Writing to the possible storage device, overwriting the core firmware part over the partition containing the previously stored version of software, and checking the write; (5) using the checked update core firmware partition by the device Considered as valid core firmware to be performed and the previous version of the core firmware is considered unusable; (6) rebooting the device to load and execute the updated software; including.
[0013]
Optionally, before the core firmware portion of the received update is written to the partitioned non-volatile rewritable storage device, the previous version of the core firmware is copied onto the auxiliary software stored on the storage device, It may be verified that it has been correctly copied, the copy is considered valid core firmware to be used by the device, and the original core firmware may be considered unusable.
[0014]
The update may also include updated auxiliary software. Auxiliary software is received and tested by the device, and before the device is rebooted, the auxiliary software update is overwritten with an unusable previous version of the core firmware.
[0015]
According to another aspect of the invention, a system is provided for remotely updating core firmware residing in at least one electronic device via a communication link. The system includes a memory subsystem residing in the electronic device and an update server that can be used to transfer an update including at least an updated version of core firmware to the electronic device over a communication link. . The memory subsystem includes a non-volatile rewritable memory in which the core firmware is stored and the non-volatile rewritable memory is large enough to store auxiliary software, but the core Not large enough to store firmware, updated version of core firmware, and auxiliary software simultaneously. The core firmware (1) writes the updated version of the core firmware to the non-volatile rewritable memory, not overwriting the previous version of the core firmware, and optionally checks whether the writing was correct, and (2) an instruction for disabling the use of an earlier version of core firmware, whereby an updated version of the core firmware is loaded and executed when rebooting at least one electronic device; Including.
[0016]
In addition, the core firmware overwrites at least a portion of the previous version of the core firmware that has been disabled, but does not overwrite the updated version of the core firmware. Instructions for writing to the rewritable memory may be included. Optionally, it may be checked whether the writing was done correctly.
[0017]
The memory subsystem may further include a non-volatile memory in which instructions are stored, which instructions are executed when the electronic device reboots to find a version of the core firmware that is not disabled. The non-volatile rewritable memory is scanned. If a version of the core firmware that is not disabled is found, that version is loaded and executed.
[0018]
According to yet another aspect of the present invention, a system is provided for remotely updating core firmware and auxiliary software residing in at least one electronic device via a communication link. The system includes a memory device residing in at least one electronic device for storing core firmware and auxiliary software, and an update that can be used to transfer the update to the at least one electronic device via a communication link. Server. The memory device includes a non-volatile rewritable memory. In the memory, the first partition stores the first memory contents including the core firmware, and the second partition includes the auxiliary software small enough to be stored in the first partition. 2 memory contents are stored. The second partition is large enough to store the first memory contents. The core firmware includes an update client that receives the updated version of the first memory contents and writes the updated version of the first memory contents to the second partition, Overwrite the memory contents, and optionally verify that the write was done correctly, disable the use of the first memory contents contained in the first partition, and receive an updated version of the second memory contents Then, the second memory content of the updated version is written to the first partition, overwritten on the first memory content that is disabled, and the electronic device is rebooted. Furthermore, the memory device includes a non-volatile memory in which a bootloading instruction is stored, and the bootloading instruction is executed when the electronic device is rebooted. The bootloading instruction includes an instruction that, when executed, searches the nonvolatile rewritable memory to find a version of the first memory content that is not disabled, and if found, The control of the electronic device is switched to the core firmware stored in the memory contents.
[0019]
Alternatively, when the update client receives the updated version of the first memory contents, it copies the first memory contents to the second partition, overwrites the second memory contents, and updates the updated version of the first memory contents. One memory content may be written to the first partition and overwritten on the first memory content. Optionally check that the write was done correctly. Upon receipt of the updated version of the second memory content, the updated version of the second memory content is written to the second partition, optionally checking that the writing was correct, and the electronic device is Reboot.
[0020]
Additionally or alternatively, the update client may reduce the size of the second partition upon receiving an updated version of the first memory contents. Thereby, the second partition is just large enough to store the updated version of the first memory contents, and the updated version of the first memory contents is written to the second partition. Overwrite the previous contents of and optionally verify that the write was done correctly. And making the first memory content version stored in the first partition unusable and receiving the updated version of the second memory content, increasing the size of the first partition, Writes the updated version of the second memory contents to the first partition, overwriting the previous contents of the first partition, including all portions of non-volatile rewritable memory not included in the second partition Optionally, check that the writing was done correctly and reboot the electronics.
[0021]
Optionally, the update client may further be used to notify the update server whether at least one electronic device can be updated at a given time. In response to the information received from the update client, the update server postpones the update of the electronic device if the electronic device is not ready to be updated. The update server can also prioritize updates, thereby allowing the update client to update electronic devices that would otherwise not be updated.
[0022]
In accordance with yet another aspect of the present invention, a memory subsystem for use in an electronic device is provided, the memory subsystem including a non-volatile rewritable memory that stores core firmware and auxiliary software. The core firmware contains instructions that overwrite at least a portion of the auxiliary software, but do not overwrite previous versions of the core firmware, and update the updated version of the core firmware to non-volatile rewritable memory. To check for an updated version of the core firmware so that the previous version of the core firmware cannot be used, so that when the electronic device is rebooted, the updated version of the core firmware is loaded and Executed. The core firmware may include instructions that update to overwrite at least a portion of the previous version of the core firmware that has been disabled, but not to update the updated version of the core firmware. Write the version of the auxiliary software to the non-volatile rewritable memory. The memory subsystem may also include a non-volatile memory that stores instructions that are executed when the electronic device reboots to find a version of the core firmware that is not disabled. Scan the rewritable memory and load and execute a version of the core firmware that is not disabled.
[0023]
According to yet another aspect of the invention, a memory subsystem for use in an electronic device is provided, the memory subsystem including a non-volatile rewritable memory, wherein the non-volatile rewritable memory includes: The core firmware is stored and the non-volatile rewritable memory is large enough to store the core firmware and auxiliary software, but not large enough to store the core firmware simultaneously. The core firmware contains instructions that do not overwrite the previous version of the core firmware, write the updated version of the core firmware to non-volatile rewritable memory, and update the updated version of the core firmware. Inspects and prevents use of previous version of core firmware, so that when the electronic device is rebooted, the updated version of core firmware is loaded and executed. The core firmware may include instructions that update at least a portion of the previous version of the core firmware that has been disabled, but not over the updated version of the core firmware. Write the version of the auxiliary software to the non-volatile rewritable memory. The memory subsystem may also include a non-volatile memory that stores instructions that are executed when the electronic device reboots to find a version of the core firmware that is not disabled. Scan the rewritable memory and load and execute a version of the core firmware that is not disabled.
[0024]
According to yet another aspect of the invention, such instructions for use in an electronic device capable of executing stored instructions and receiving an updated version of such instructions. A memory subsystem for storing is provided. The memory subsystem includes a nonvolatile rewritable memory and a nonvolatile memory. A boot loading instruction that is executed when the electronic device is rebooted is stored in the nonvolatile memory. Non-volatile rewritable memory allows the electronic device to restart, or can continue to update the non-volatile rewritable memory if the electronic device reboots while the update is in progress Rebooting an electronic device in which the first memory content including at least the instructions necessary to achieve is stored in the first partition and is small enough to be stored in the first partition and not included in the first memory content The second memory content, including all instructions necessary for subsequent normal operation, is stored in a second partition that is large enough to store the first memory content. The instruction stored in the first memory content, when executed after the updated version of the first memory content is received, writes the updated version of the first memory content to the second partition. An instruction that overwrites the second memory contents and prevents the use of the first memory contents contained in the first partition, and is executed after an updated version of the second memory contents is received. And writing an updated version of the second memory contents to the first partition, overwriting the first memory contents made unusable, and rebooting the electronic device.
[0025]
Alternatively, when the instructions stored in the first memory contents are executed after an updated version of the first memory contents is received, the instructions copy the first memory contents to the second partition and Overwriting the memory contents of 2 and writing the updated version of the first memory contents to the first partition and overwriting the first memory contents, and receiving the updated version of the second memory contents Executed to write the updated version of the second memory contents to the second partition, overwrite the first memory contents made unusable, and reboot the electronic device. May be included.
[0026]
Alternatively, if the instructions stored in the first memory content are executed after an updated version of the first memory content is received, the size of the second partition is reduced, if possible, and Will cause the second partition to be large enough to store the updated version of the first memory contents, write the updated version of the first memory contents to the second partition, and An instruction that overwrites the previous contents and disables the use of the first memory content version stored in the first partition, and is executed after an updated version of the second memory content is received If possible, increase the size of the first partition and include it in the second partition Write an updated version of the second memory contents to the first partition, including all portions of non-volatile rewritable memory, overwriting the previous contents of the first partition, and And an instruction to reboot.
[0027]
In accordance with yet another aspect of the invention, a method is provided for installing an update in software stored in non-volatile rewritable memory that is not large enough to hold both the update and the software. The method divides the update into individually writable portions including a core portion that can be stored in less than half of the non-volatile rewritable memory, and the non-volatile rewritable memory is updated. An individually rewritable part that contains a core part that contains less than half of the non-volatile rewritable memory and that contains a software part, corresponding to the core part and an auxiliary part that is just large enough to hold the update core part A step of writing the update core part into the auxiliary part of the non-volatile rewritable memory and checking whether the writing has been made correctly, and before being included in the core part of the non-volatile rewritable memory. Steps and Updates to Prevent Using Versions of Software Writing portions of the updates that are not included in the core portion, the portion of the non-volatile rewriting operation must be not included in the core portion of the non-volatile rewriting addressable memory, comprising the steps of examining whether the write is successful, a.
BEST MODE FOR CARRYING OUT THE INVENTION
[0028]
Embodiments of the present invention will be described below with reference to the accompanying drawings.
[0029]
Referring now to FIG. 1, a wireless network that allows for upgrading software or data residing in at least one electronic device is indicated generally by the numeral 20. The network 20 includes at least one update station, which in this example is a radio base station 24, which can be used to send software updates over a two-way communication link 32. . Network 20 also includes subscriber stations 28a, 28b,... For wireless local loops capable of voice and data. . . , 28n. Subscriber station 28 may be a customer premises equipment in a wireless local loop for voice and data, a wireless POS terminal, or a personal digital assistant with a modem ("PDA"), a mobile phone, a cable modem, a laptop computer, and It may be any other electronic device such as other suitable electronic devices that can communicate via communication link 32 that would occur to those skilled in the art.
[0030]
The number “n” of subscriber stations served by the base station 24 may vary depending on the amount of available radio bandwidth or the configuration and requirements of the subscriber station 28. For the sake of clarity, only the subscriber station 28 will be mentioned here as the electronic equipment to be updated. However, other electronic devices such as those described above and those capable of receiving software updates via communication link 32 are within the scope of the present invention.
[0031]
In the network 20, the base station 24 may be connected by an appropriate gateway and backhaul 34 to at least one telecommunications network such as the landline data exchange network 30 and the public telephone exchange network 33. The backhaul 34 may be a link such as T1, T3, E1, E3, OC3, or other suitable landline link, or may be a satellite channel link, other radio or microwave channel link, Or it could be any other link suitable to operate as a backhaul as would be conceivable by those skilled in the art. The base station 24 may also include a software update server 36 or may be connected to the software update server 36 by a backhaul 34 or other means, the software update server 36 being connected to the subscriber station 28. Includes software load for. In addition, the base station 24 is connected to a subscriber database, which is located in the update server 36, or such as a centralized network operations center (described below). Located in a separate database server (not shown) provided elsewhere, that database server maintains a record of the current software load of the subscriber station 28.
[0032]
In the wireless network 20, a communication link 32 is established between the base station 24 and each subscriber station 28 by radio, but other physical connections including wired, infrared, and ultrasonic means. Means may be used. The communication link 32 connects the base station 24 and each subscriber station 28a, 28b,. . . , 28n may transmit voice and data information. Communication link 32 may be implemented by various multiplexing techniques including TDMA, FDMA, CDMA, OFDM, or hybrid systems such as GSM. Further, the communication link 32 may be located in various channels carrying different types of data such as voice communication or data transmission, or for various purposes such as end-user communication or network 20 control. May be used. In the embodiment shown in FIG. 1, the data sent over the communication link 32 is sent as IP (Internet Protocol) packets, but any suitable type of packet may be used.
[0033]
FIG. 2 shows an example of the base station 24 in more detail. Base station 24 includes one or more antennas 40 for receiving and transmitting wireless communications over communication link 32. The antenna 40 is connected to a radio transceiver 44, and the radio transceiver 44 is connected to a modem 48. The modem 48 is connected to a microprocessor router assembly 52, such as a Pentium® III processor system and associated equipment manufactured by Intel. It will be appreciated that the microprocessor router assembly 52 may include multiple microprocessors if desired. Further, the router functionality of the microprocessor router assembly 52 may be provided as a separate unit if desired. The router functions implemented within the microprocessor router assembly 52 are connected to the backhaul 34 in any suitable manner and connect the base station 24 to the at least one telecommunications network 30,33. Further, as described above, the base station 24 may be connected to the update server 36 directly or via the backhaul 34.
[0034]
Referring now to FIG. 3, an example subscriber station 28 is shown in more detail. Subscriber station 28 includes one or more antennas 60 for receiving and transmitting wireless communications over communication link 32. The antenna 60 is connected to a radio transceiver 64, and the radio transceiver 64 is connected to a modem 68. The modem 68 is connected to the microprocessor assembly 72, which is connected to the memory device 78.
[0035]
Microprocessor assembly 72 may include, for example, a StrongARM processor manufactured by Intel, which performs various functions including A / D-D / A conversion, filters, encoders, decoders, Implementing a data compressor, data decompressor, and / or packet decomposition. As shown in FIG. 3, the microprocessor assembly 72 also interconnects the modem 68 with one or more ports 76, which one or more ports 76 connect the subscriber station 28 with data. It may be used to connect to devices and telephone devices. An example of a telephone device is a telephone. Examples of data devices include personal computers, PDAs, or the like. Accordingly, the microprocessor assembly 72 can be used to process data between the port 76 and the modem 68.
[0036]
At the subscriber station 28, the memory device 78 is used by the microprocessor assembly 72 to store two main components: (1) the instructions and data necessary to operate the subscriber station 28. A volatile random access memory ("RAM") 82, which may be dynamic RAM (DRAM) or synchronous DRAM (SDRAM), and (2) a subscriber station used to store data including instructions 28 includes a nonvolatile rewritable storage device RSU86, which is a flash memory. In the RSU 86, data is not lost even when the subscriber station 28 is powered off. The memory device 78 stores all instructions and data necessary for proper and desired functionality of the subscriber station 28, including boot software, operating system, software application, radio resource management software, device drivers, and data files. Can be used to include.
[0037]
As is well known to those skilled in the art, the RAM 82 is typically faster than the flash memory used in the RSU 86, so that in the presently preferred embodiment of the subscriber station 28, the instruction And, in most cases, the data is copied from RSU 86 to RAM 82 by microprocessor assembly 72 before being executed. In certain circumstances, instructions or data are read directly from the RSU 86 into the microprocessor assembly 72 for execution or operation as is well known to those skilled in the art.
[0038]
Microprocessor assembly 72 can also be used to write instructions and data from RAM 82 to RSU 86, as described below.
[0039]
In the subscriber station 28, the RAM 82 is a 32 Mbyte SDRAM, and the RSU 86 is an 8 Mbyte flash memory. However, the capacity and type of the RAM memory are not particularly limited, and other types of non-volatile rewritable memories such as general IDE and SCSI hard drives, optical memory storage devices, and EPROMS are flash memories. May be used instead of Other types of non-volatile rewritable memories will occur to those skilled in the art. Those skilled in the art will also appreciate modifications to the following description that may require the use of an alternative non-volatile rewritable memory or the like in the RSU 86 in embodiments of the present invention.
[0040]
A flash memory such as that used for the RSU 86 must generally be read and written in blocks. A block is the smallest unit that can be written and must be erased before being written (in other words, flash memory is "granular" and how to use it as described below) Influences). Those skilled in the art will appreciate that this constraint does not apply to any other form of non-volatile rewritable memory that may be used in place of flash memory at the subscriber station 28. One particular flash memory currently used at the subscriber station 28 has a block size of 256K bytes. Referring now to FIG. 4a, the initial partitioning of RSU 86 is schematically shown. The RSU 86 is divided into logical partitions, each of which is a storage device consisting of one or more logically contiguous blocks. As will be apparent to those skilled in the art, the terms “partition” and “logical partition” are used interchangeably herein. The only limitation to the present invention is that the partition must be resizable and / or relocatable, except in special cases where equally sized partitions may be used. Accordingly, both logical partitions and, in some cases, physical partitions that meet this requirement are included within the scope of the present invention.
[0041]
Each partition has at least a starting position and a length / size defined for that partition. As is well known to those skilled in the art, partitions are treated as if they were independent individual memory devices for some purpose. For example, a hard drive with two partitions appears to the application software running on a computer connected to the hard drive as two independent hard drives. Also, as is well known to those skilled in the art, logical partitions and some physical partitions are typically added, deleted, or resized to provide flexibility within a storage device. can do. In the case of logical partitions, this is done by changing the data structure stored in non-volatile rewritable memory, or, as in the case of subscriber station 28, re-started at startup, as described below. Composed. The data structure includes data such as the start position and size / length described above, and associates a physical location in the storage device with a logical partition. Logical partitioning can also make discontinuous storage locations appear to applications as if they were contiguous blocks. For example, even-numbered blocks (ie, blocks 0, 2, 4, 6, etc.) appear to the application as one contiguous block of storage and are odd-numbered blocks (ie, blocks 1, 3). 5, 7, etc.) can be partitioned so that it appears to the application as the other contiguous block. One skilled in the art can devise many other partitioning schemes and structures, and these are within the scope of the present invention. At the subscriber station 28, the RSU 86 is first divided into three partitions: a boot partition 104, a core firmware partition 108, and an auxiliary software partition 112.
[0042]
The boot partition 104 is located in the first block of the RSU 86 and contains boot loading firmware for the subscriber station 28. The subscriber station 28 is configured to start up (boot) first with the microprocessor assembly 72 executing instructions that are present in the first block of the RSU 86, but to read the last block of the RSU 86. Other schemes may be used. The remaining blocks of RSU 86 are first partitioned into core firmware partition 108 and auxiliary software partition 112 as described below. In FIG. 4 a, the core firmware partition 108 is shown as occupying the block immediately after the boot partition 104, and the auxiliary software partition 112 is a block that exists between the last block of the core firmware partition 108 and the end point of the RSU 86. Shown as occupying. As described below, the initial locations of the core firmware partition 108 and the auxiliary software partition 112 may be reversed, and may be reversed as a result of the upgrade, as described below (FIG. 4c, the opposite order is shown by adding a dash to the reference number in FIG. 4c).
[0043]
At the subscriber station 28, bootloading firmware is provided in the boot partition 104 to avoid the need to provide additional ROM or other non-volatile storage packages at the subscriber station 28. However, as will be apparent to those skilled in the art, if such a ROM or other non-volatile storage package is provided at the subscriber station 28 at the memory device 78 or elsewhere, the boot partition. 104 may be located there and removed from the RSU 86 and the RSU 86 is configured as two partitions 108 and 112. The term “memory subsystem” refers to either the memory device 78 and, if the boot partition 104 is stored in a ROM or another non-volatile storage package, the ROM or another non-volatile storage package. Is also included.
[0044]
Core firmware necessary to provide at least the minimum functionality to the subscriber station 28 is first written to the core firmware partition 108. The core firmware is responsible for providing basic operation of the subscriber station 28. These basic operations include memory management, task handling, file, I / O, etc. management (although not necessarily sufficient to provide some end-user service) by the subscriber station 28 as a base station And at least a minimum number of functions necessary to enable communication with 24. At the subscriber station 28, the operating system included in the core firmware includes Linux kernel version 2.4, and the boot loading software in the boot partition 104 is a Linux boot loader. The core firmware in partition 108 is a crams file system, which is a read-only compressed file system that is well known to those skilled in the art. The crafs file system documentation is readily available (see, eg, http://sourceforge.net/projects/crams/), and its operation is not further described here.
[0045]
At startup, when the boot partition is read and begins executing the contents of that partition, the boot loader reads sequentially from the starting point of the RSU 86 to search for the starting block and size of the core firmware partition 108 To start. The boot loader does this by locating the superblock defined in the crams file system. If one block is found, it is considered to be a compressed Linux kernel superblock in the core firmware partition 108. The boot loader then uses the information stored in the super block to decompress the kernel image into the RAM 82 and uses the starting block and size of the core firmware partition 108 as a boot parameter when the operating system starts. Can be forwarded to the kernel, thereby determining the partitioning of the RSU.
[0046]
Although Linux is currently preferred, other operating systems and operating system versions are within the scope of the present invention. The location of the core firmware partition 108 within the RSU 86 is not particularly limited, and after the boot partition 104 (if present) as a boot loader searches the contents of the RSU 86, a valid starting point for the core firmware partition 108, That is, any continuous series of logical block addresses may be occupied until the crams superblock is searched. However, as will become apparent from the following description, in order to avoid the situation where one or more memory blocks are not present in either the core firmware partition 108 or the auxiliary software partition 112, the core firmware partition 108 It is preferably located immediately after partition 104 or in the last part of RSU 86.
[0047]
The remaining software and data are stored in the auxiliary software partition 112 of the RSU 86. Hereinafter, this software is referred to as auxiliary software. Auxiliary software is not particularly limited and includes optional device drivers, user applications, system software applications, data files, software and end user applications such as telephone call processing software, voice and audio codecs, software filters, firewalls , Utilities, help files, subscriber data files, digital media files, and other application and data files as would occur to those skilled in the art.
[0048]
The auxiliary software may be stored in a compressed file system format, such as the crafs format described above, or may be stored in any other suitable form that would be conceivable by those skilled in the art. If the auxiliary software is monolithic, i.e. if software changes and updates require replacing the entire contents of the partition, crafs or similar file / storage system is preferred instead. It may be a thing. Alternatively, if the auxiliary software is not monolithic and therefore software components can be loaded and / or unloaded in the partition as needed, Axis Communications AB, Emdalavagen 14, S-223 69, Lund A suitable system such as JFFS (Journaling Flash File System) developed by Sweden may be used.
[0049]
In general, the auxiliary software stored in the auxiliary software partition 112 is not necessary for the subscriber station 28 to communicate with the base station 24, but the auxiliary software stored in the auxiliary software partition 112. Software is required to enable the subscriber station 28 to send and receive voice calls, make end user data connections (such as http browser sessions), or perform other end user functions. It may be. The location of the auxiliary software partition 112 within the RSU 86 is not particularly limited and may occupy a logically contiguous series of blocks, but preferably as described above, the block of the last part of the RSU 86. Exists or immediately after the boot partition 104.
[0050]
As shown in FIG. 4 a, the core firmware partition 108 is smaller in size than the auxiliary software partition 112. However, if the number of blocks available for partitioning as core firmware partition 108 and auxiliary software partition 112 is an even number, the partitions may be the same size. In this embodiment of subscriber station 28, the total storage space available at RSU 86 is 8 Mbytes, boot partition 104 is 256 Kbytes, and core firmware partition 108 has a maximum size of 3.75 Mbytes. The auxiliary software partition 112 has a maximum size of (7.75 Mbytes—the size of the core firmware partition 108). In the particular embodiment described here, the maximum size of the auxiliary software block is 4 Mbytes.
[0051]
In this embodiment, since the total number of memory blocks in RSU 86 is an even number and one block is used for boot partition 104, an odd number of blocks are used as core firmware partition 108 and auxiliary software partition 112. Available for partitioning, therefore, the core firmware partition 108 and the auxiliary software partition 112 may not be equal in size. As will become apparent from the description below, an important constraint is that the core firmware partition 108 must not be larger than the auxiliary software partition 112. Thereby, in any case, core firmware updates can be written to the auxiliary software partition 112 without overwriting the existing core firmware partition 108. This is readily apparent from the following description.
[0052]
If it is desired to update the core firmware in the core firmware partition 108, the updated core firmware is transferred from the update server 36 to the subscriber station 28 via the communication link 32, as will be described in more detail below. The core firmware is received and stored in the RAM 82 in the subscriber station 28 until all transfer of the updated core firmware and auxiliary software to the subscriber station 28 is complete, It is also conceivable to install the update core firmware before transferring and transferring auxiliary software. Depending on the size of the update and the size of the RAM 82, any process that requires a large amount of RAM 82 running on the subscriber station 28 may have to be terminated. As explained below, the ability to terminate such a process is one of the status criteria that is considered before deciding to update the subscriber station 28.
[0053]
It is conceivable that various techniques can be used to transfer the core firmware and auxiliary software from the update server 36 to the subscriber station 28, such as sending the software in packets via UDP / IP or TCP / IP. Since the communication link 32 or physical medium (wired connection, etc.) used to transfer the software can be affected by failures or errors, the correctness of the received transfer software is used. Inspected before. The particular method used to verify this validity is not particularly limited and, as will be apparent to those skilled in the art, checksums, CRCs, digital signatures, etc. are included in all or part of the transfer. May be used. If the received content is not correct and contains one or more errors, the software or an appropriate portion thereof will update the update server until a complete correct copy is received at the subscriber station 28. 36 to the subscriber station 28.
[0054]
Once a complete correct copy of the update / replacement core firmware has been received at the subscriber station 28 and stored in the RAM 82, ie the “new” core firmware, the update process has been previously occupied by the auxiliary software partition 112. Processing continues by writing new core firmware to all or part of the RSU 86. In order to perform this overwriting, any remaining process that was running at the subscriber station 28 and that requires read access to the auxiliary software residing in the auxiliary software partition 112. Although there are those remaining processes, they are terminated. When these processes (if any) are terminated, new core firmware is copied from RAM 82 and written to RSU 86. The new core firmware is shown in FIG. 4b as a new core firmware partition 108 ′. As used herein, the terms “overwrite” and “overwritten” are meant to provide the operations necessary to place new data in non-volatile memory for replacement with old data. Yes, in the case of flash memory, this involves first erasing the memory (if such a step is necessary) before writing new data to the flash memory.
[0055]
Also, in order to reduce the memory required in the RAM 82, if the received update can be verified that it was properly received before writing, the updated core firmware will In addition, it is conceivable that data may be written in a certain amount, for example, in units of 256 Kbyte update blocks. In such a case, when a given amount of update data is received at subscriber station 28, the update data is temporarily stored in RAM 82 and examined and written to RSU 86, and The next update received will overwrite previously received updates temporarily stored in RAM 82. Thus, the various applications and processes saved from RAM 82 do not necessarily have to be terminated during the update process, as will be described below, at least until subscriber station 28 is rebooted.
[0056]
As shown in FIG. 4 b, the overwrite is initiated at an offset from the start point of the auxiliary software partition 112 that is determined such that the end point of the new core firmware partition 108 ′ matches the end point of the auxiliary software partition 112. . In the example described above, the RSU 86 has a total size of 8 Mbytes, the boot partition 104 size is 0.25 Mbytes, the auxiliary software partition 112 size is 4 Mbytes, and the core firmware partition 108 is 3 Mbytes. If .75 Mbytes, the offset at which the new core firmware partition 108 ′ is overwritten on the auxiliary software partition 112 is 4. 25 Mbytes.
[0057]
After the new core firmware partition 108 'has been written, its contents are examined by the subscriber station 28, which in turn reads the contents from the new core firmware partition 108' and stores the contents in the RAM 82. Compare with a copy of the new core firmware in If received, if a new core firmware partition 108 ′ is written to a smaller part from RAM 82, those parts received before the next received part overwrites the last part temporarily stored in RAM 82. The smaller portion of the write is compared with that stored in RAM 82.
[0058]
In either case, if the content read from the new core firmware partition 108 'cannot be verified to be correct, writing the new core firmware partition 108' or writing the relevant part of the new core firmware partition 108 ' Again, the inspection / rewriting process is repeated until it is executed and the contents are confirmed to be correct.
[0059]
If it is determined that the contents of the new core firmware partition 108 ′ have been written correctly, the new core firmware partition 108 ′ is considered by the subscriber station 28 to contain the latest core firmware and the core firmware partition 108 The original core firmware present within is marked "invalid" to prevent the subscriber station 28 from executing. In the subscriber station 28 where the core firmware partitions 108 and 108 'include a crafs format Linux kernel or the like, the original core firmware present in the core firmware partition 108 will superimpose the core firmware partition 108 superblock to which it is no longer valid. It is considered invalid by overwriting it to change to something that is not a block. Once this is done, the next time the subscriber station 28 reboots, the boot loader will only search for the superblock of the new core firmware partition 108 ', which is the newest valid core firmware partition, and the subscriber station 28 will Will boot from '.
[0060]
As is apparent from FIG. 4b, the above results in an invalid core firmware partition 108 and, if any, the rest of the auxiliary software partition 112 that no longer contains valid data. The subscriber station 28 then writes the auxiliary software from the RAM 82 (or downloads the auxiliary software from the update server 36 to the RAM 82 (if it is not already running), as shown in FIG. The auxiliary software partition 112 ′ can be formed in the memory space of the core firmware partition 108 and the remaining portion of the auxiliary software partition 112 (if any). Alternatively, the subscriber station 28 may be rebooted to execute the new core firmware, and the auxiliary software may be downloaded from the update server and stored in the new auxiliary software partition 112 ′. Once it is confirmed that the new auxiliary software has been written correctly in a manner similar to that described above for the core firmware, the subscriber station 28 can execute the auxiliary software (subscriber station 28). (If it has already been rebooted and is running new core firmware), or the updated core firmware in the new core firmware partition 108 'is booted into the loader and both by the core firmware and auxiliary software It may be rebooted to restart all services provided. In doing so, the operating system searches for the superblock of the new core firmware partition 108 ′ and the superblock of the new auxiliary software partition 112 ′ (if crams is used for the auxiliary software partition) and finds the repartitioned RSU 86. Form the data structure to represent.
[0061]
As is apparent from the above, during the update process, the subscriber station 28 may be powered off, power unstable, requires a reboot, or otherwise interrupted by the core firmware. A valid copy of is always present in RSU 86. If the update process has already begun by overwriting the new core firmware partition 108 ′ with the auxiliary software partition 112, the subscriber station 28 power supply is written before the writing of the new core firmware partition 108 ′ is completed and confirmed. When the power is turned off, the subscriber station 28 will boot from the still intact old core firmware partition 108 the next time it is powered on again. It can be seen that there is no valid auxiliary software partition 112 and either the entire update process is restarted or a transfer of valid auxiliary software is requested to the update server 36 and the RSU 86 is restored as a restored auxiliary software partition 112. And the update process is postponed later. This latter option is selected when the network 20 is used in an overloaded state and capacity for performing updates cannot be easily obtained.
[0062]
If the update is successful, whenever the core firmware in the subscriber station 28 is to be updated again, the new core firmware partition 108 overwrites a portion of the auxiliary software partition 112 'and the new auxiliary software partition 112 , Overwriting the rest of the old core firmware partition 108 'and old auxiliary software partition 112', again resulting in the configuration shown in FIG. 4a. Note that it is not absolutely necessary to erase the superblock of the old core firmware partition 108 ′ after the new core firmware partition 108 has been verified to be correct. This is because if the update is interrupted at that stage, when a reboot occurs, the boot loader searches and uses the contents of the new core firmware partition 108 before reaching the old core firmware partition 108 '. .
[0063]
With each subsequent update of the core firmware, the new core firmware partition will be overwritten on the existing auxiliary software partition, and the new auxiliary software partition will be overwritten on the old core firmware partition and the rest of the auxiliary software partition become.
[0064]
As used herein, the term “new auxiliary software” refers to the unaltered software that has not been changed to the auxiliary software and the new auxiliary software has been downloaded to the subscriber station 28. It is noted that it is intended to include both simply meaning a new copy and when an updated or otherwise modified version of the auxiliary software is downloaded to the subscriber station 28. I want.
[0065]
As shown in FIG. 5a, the “old” core firmware partition 108 was copied and copied onto the “old” auxiliary software partition 112, unless you want to change the location of the partitions 108 and 112 in the normal operating RSU 86 An old core firmware partition 108 "may be formed, and if this copied old core firmware partition 108" is examined and verified to be correct, the original core firmware partition 108 changes it. Is considered invalid by overwriting its superblock to do so, or by some other suitable means. At this point, if the subscriber station 28 is rebooted for any reason, the boot loader searches and uses the contents of the copied core firmware partition 108 ".
[0066]
Next, as shown in FIG. 5b, the “new” core firmware is overwritten from the RAM 82 to the original core firmware partition 108 and examined. The new core firmware superblock that replaces the original core firmware partition 108 is not written to the original core firmware partition 108 until the contents of the rest of the core firmware partition 108 are examined, after which Blocks are written and verified. The copied core firmware partition 108 "is then deemed invalid by overwriting or changing its superblock or by some other suitable means. Thus, the new core firmware Reboots or other events that must load the core firmware prior to verifying the writing of the partition 108 use the copied core firmware partition 108 ″ instead of the new core firmware partition 108.
[0067]
Finally, new auxiliary software is copied from RAM 82, as shown in FIG. 5c, to form auxiliary software partition 112, which is checked before it is used, and subscriber station 28 once again returns its normal The operation configuration is as follows. This process results in partitions 108 and 112 that always have the same location in the RSU 86, but extra write operations performed to copy the contents of the core firmware partition 108 to the copied core firmware partition 108 "and A confirmation operation is required, which increases the time required to perform the update and may exhaust the RSU 86 earlier if the RSU 86 is flash memory.
[0068]
In this embodiment of the invention, updating software at the subscriber station 28 is a managed process. This is especially important in critical networks or “always-on-service continuity” networks such as wireless local loops that replace major telephone lines. FIG. 6 illustrates a network operations center (NOC) 200, a radio sector manager 204 for each sector in the base station 24 of the network 20, and a subscriber station update for each subscriber station served by the network 20. 2 shows a management system hierarchy of a network 20 including a client 208.
[0069]
The network operations center 200 is a centralized facility operated by an operator of the network 20 and performs other network management functions such as OAM & P in addition to managing updating subscriber stations throughout the network 20. You can also The wireless sector manager 204 is preferably located at each base station 24 of the network 20 and may be located at the same location as the update server 36 or may be implemented within the update server 36. If the base station 24 is an omnidirectional (single sector) base station, only one radio sector manager 204 is provided in that base station. More generally, the base station 24 may use a directional (beamforming) antenna, which allows the base station 24 to serve more subscriber stations 28. Can do. For example, if a 60 ° beamforming antenna is used, the base station 24 can be configured as six different radio sectors, each sector being a total subscriber served by that base station 24. A service is provided to a part of the station 28. In such a case, six radio sector managers 204 are provided to the base station 24. Finally, each subscriber station 28 includes an update client 208 as part of its core firmware, and the update client 208 operates at the subscriber station 28.
[0070]
The NOC 200 can serve hundreds of wireless sector managers 204, and through those wireless sector managers 204, through their update clients 208 to thousands or more subscriber stations 28. Since a service can be provided, in FIG. 6, the wireless sector manager 204, shown in dashed lines, is intended to represent a plurality of such wireless sector managers 204 and their associated update clients.
[0071]
If an update to the auxiliary software or core firmware of the subscriber station 28 is generated and the operator of the network 20 wishes to perform the update, the network operations center 200 will provide each subscriber served by the network 20. Determine the current version of the software loaded in station 28. As will be apparent to those skilled in the art, this determination may be made in a variety of ways. In an embodiment of the present invention, each time a subscriber station 28 is powered on and / or after an update is made, the update client 208 of each subscriber station 28 will have its subscriber station 28. The current version of the software loaded in the subscriber station 28 is reported to the wireless sector manager 204 serving the The wireless sector manager 204 forwards this information to the network operations center 200, where the information is stored in an appropriate database. As will be apparent to those skilled in the art, various other techniques are used to determine the current software load for each subscriber station 28, including polling the update client 208 at appropriate intervals. be able to.
[0072]
The current software load of each subscriber station in the network 20, or some subscriber stations 28 of interest in the network 20 (eg, the network operator is only interested in updating subscriber stations in a particular city). Once the current software load (which may not be present) is determined, the network operations center 200 determines the subscriber station 28 to be updated. In most environments, it is desirable to update all the subscriber stations 28 in the network 20, but it is possible to update some selected subscriber stations 28 or to update individual subscriber stations 28. Even this may be considered desirable.
[0073]
The network operations center 200 ensures that the updated desired software is available at one or more update servers 36 serving the wireless sector manager 204 with the subscriber station 28 to be updated, If necessary, the updated software is transferred to the update server 36. The network operations center 200 then informs the wireless sector managers 204 with the subscriber stations 28 to be updated of the IDs of those subscriber stations 28 and informs those wireless sector managers 204 to begin the update. Instruct.
[0074]
When the wireless sector manager 204 receives an update instruction from the network operations center 200, the wireless sector manager 204 determines the level and / or status of the activity of the subscriber station 28 that it manages to be updated. Ideally, an update is an end user where the capacity that the update requires on the communication link 32 is not otherwise required, and / or where the subscriber station 28 must be interrupted for the update process. It is implemented only when the process is not running. Accordingly, the wireless sector manager 204 first determines whether there is room and / or capacity in the communication link 32 to send the update. Typically, such updates may be performed at midnight or early morning when the communication link 32 is not heavily utilized by the end user. However, critical updates such as those required to stabilize the operation of the network 20 or provide improved security etc. are also assigned a high update priority by the network operator center 200. The network operator center 200 may instruct the wireless sector manager 204 to perform the update as soon as possible, terminate or suspend use of the capacity of the communication link 32 for others, and / Or interrupts end user activity at the subscriber station 28 to be updated, degrades service, or puts it on hold.
[0075]
If the wireless sector manager 204 determines that the communication link 32 has a capacity for the wireless sector manager 204 to send updates to the subscriber station 28, or a high priority update with the wireless sector manager 204 ensuring capacity. , The wireless sector manager 204 queries the update client 208 at each subscriber station 28 to be updated to determine the status of those subscriber stations 28. This status informs the level and / or type of activity currently being performed at the subscriber station 28.
[0076]
For example, the subscriber station 28 is idle for 10 minutes (no end user activity) or it is currently running an http session for the end user, etc. May be notified. The download of the update to be transferred is typically first stored in RAM 82, so the amount of selected memory required to store the download (this amount is for all updates). If a predetermined amount or may be provided by the wireless sector manager 204 in a status query to its update client 208), the subscriber station 28 Include this information in its status report to the wireless sector manager 204. Alternatively, the update client 208 at the subscriber station 23 may determine whether a process and / or application using the RAM memory 82 can be terminated to free up memory space, and If so, do so before sending the status response to the wireless sector manager 204.
[0077]
The wireless sector manager 204 reviews the status responses received from each subscriber station 28 to be updated and determines which subscriber stations 28 may be included in the update at this time. Then, the update client 208 of each of those subscriber stations 28 receives the update information transmitted from the wireless sector manager 204, and the update information indicates that those subscriber stations 28 will be updated. It notifies the station 28 and indicates the channel of the communication link 32 to which updates are transmitted.
[0078]
The wireless sector manager 204 then starts multicasting updates from the update server 36 to the subscriber stations 28 that have been notified to process the updates. In an embodiment of the invention, the update is sent by UDP over IP as a multicast transmission, and each packet sent is checked with a CRC checksum to verify that it was received correctly, and Contains a sequence number or other unique identifier, so that each subscriber station 28 can determine whether it has received all the required packets correctly. If one or more packets are received by the subscriber station 28 in an erroneous or totally lost state, such subscriber station 28 may request a retransmission while the transmission of the packet is in progress. It may be transmitted to the wireless sector manager 204 and the requested packet may be retransmitted. Preferably, this retransmission is valid for all subscriber stations 28 that are implemented and updated via the multicast channel (if more than one subscriber station 28 requires retransmission of the same packet). Also, such retransmissions may be made to one subscriber station 28 for that purpose via the dedicated channel of the communication link 32 established with the subscriber station 28 by the radio sector manager 204. Good thing is considered.
[0079]
In an embodiment of the invention, once the entire update has been downloaded and verified, the update client at the subscriber station must determine when to perform the RSU 86 update. Since the update requires a reboot (restart) of the subscriber station 28, the update client 208 selects a time zone for the update so that there will be minimal, if any, disruption of service to the end user. Try to do. Again, it is conceivable that such updates are typically performed at midnight or early morning, or at some other time when the user is unlikely to use the subscriber station 28.
[0080]
However, when the update client 208 at the subscriber station 28 also performs the update by determining what end user activity is occurring and / or the time since the last end user activity. You may intelligently decide on. For example, a subscriber station 28 that last made an end user voice connection or data connection more than 20 minutes ago may reasonably assume that it will not be used by the end user for the next few minutes during which the update takes place. it can.
[0081]
Again, some updates may also be important to the operation of the network 20 enough to cause those updates to be assigned a high priority, which high priority will be updated. To ensure that the update client 208 terminates end user activity at the subscriber station.
[0082]
If the update client 208 determines that an update can be performed, the process described above is performed, and the auxiliary software partition 112 is overwritten, such as a new firmware partition 108 'or a copied partition 108.
[0083]
When the update is successfully performed, the subscriber station 28 reboots the new core firmware and / or auxiliary software, and the new core firmware and / or auxiliary software is executed, an update status message is sent to the wireless sector manager 204. To confirm that the update has been completed and to confirm the version number of the software executed by the subscriber station 28. The wireless sector manager 204 then updates its records for the updated subscriber stations 28 and subscriber stations 28 that are still requesting updates.
[0084]
The radio sector manager 20 then repeats the process by repeating one or more times for the remaining subscriber stations 28 to be updated. It is also conceivable that the update will not start until it becomes possible to update a preselected proportion of subscriber stations 28 to be updated in the wireless sector. For example, as long as at least 50% of the subscriber stations 28 to be updated in a sector of the wireless sector manager 204 can be updated, the wireless sector manager 204 may be selected not to initiate an update. If this threshold is not reached, until this threshold is met or the network operations center lowers this threshold (eg to 35%) or raises the priority of the update Will postpone the update until the subscriber station 28 is forced to perform the update.
[0085]
The network operation center 200 is notified of the update status by the wireless sector manager 204. Thus, the network operations center 200 can determine the number of updated subscriber stations 28 and the number of remaining subscriber stations 28 to be updated. If the network operations center 200 finds that updates are being performed for fewer subscriber stations 28 than desired, the network operations center 200 will force those subscriber stations 28 to prepare for updates, etc. In order to avoid this, high priority may be applied to the update.
[0086]
In most environments, core firmware updates and supplemental software updates are considered to be sent as one update, but in some environments, the core firmware update is sent first and the subscriber station 28 It may be desirable to send an auxiliary software update after successfully installing the update. Depending on the environment, it may be desirable to update only the auxiliary software. In such a case, the core firmware is not updated and the updated auxiliary software is overwritten on the existing software partition 112.
[0087]
FIG. 7 shows a flowchart of the update process described above. If the network operations center 200 wants to update a device present in the network 20, in step 300, the device on which the update is to be installed is determined. In step 304, the update is forwarded to one or more update servers 36, otherwise made available by those update servers 36 from which the update is to be updated on the device to be updated. Forwarded to
[0088]
In step 308, each wireless sector manager 204 determines which of the devices it is serving can be updated. In step 312, the wireless sector manager 204 notifies them that their devices are being updated and provides details of the update communication, such as multicast parameters.
[0089]
In step 316, the update is transferred to the device to be updated. Each target device confirms whether or not the transmitted update has been correctly received when transmission is completed or during transmission, and in step 320, the erroneous part of transmission is received or transmitted. The device that could not receive a part of the information notifies the wireless sector manager 204 of this, and the wireless sector manager 204 retransmits those parts.
[0090]
In step 324, if the device receives a correct copy of the update, the device determines an appropriate time to perform the update. As described above, this determination may be a trivial issue (ie, perform an update regardless of the device status), or may be made in response to the device status. The state includes factors such as the current process being executed on the device, the time since the end user process was executed, and so on.
[0091]
When the device update and reboot is complete, in step 328 the device notifies the radio sector manager 204 that manages it that it has been updated and provides details of its current software load. Also good.
[0092]
In step 332, each wireless sector manager 204 determines whether there are any devices it manages that have not yet been updated. If there is still such a device, steps 308 to 328 are executed again as necessary. If there are no more such devices, the update process is completed at step 336.
[0093]
It will be appreciated that the several embodiments described herein are intended to describe specific embodiments of the invention, and that combinations, portions and variations of this embodiment are within the scope of the invention.
[0094]
The above-described embodiments of the present invention have been described by way of example of the present invention, and those skilled in the art will recognize that without departing from the scope of the present invention, which is defined only by the claims appended hereto. Variations and changes can be made.
[Brief description of the drawings]
[0095]
FIG. 1 is a block diagram of a network that enables an electronic device upgrade in an embodiment of the present invention.
FIG. 2 is a block diagram of an update station in the embodiment of the present invention.
FIG. 3 is a block diagram of an updatable electronic device including a memory device according to an embodiment of the present invention.
4A is a block diagram of a memory device according to an embodiment of the present invention in the electronic device shown in FIG.
4B is a block diagram of the memory device according to the embodiment of the present invention in the electronic device shown in FIG. 3. FIG.
4c is a block diagram of a memory device according to an embodiment of the present invention in the electronic device shown in FIG.
5a is a block diagram of a memory device according to another embodiment of the present invention in the electronic device shown in FIG.
5b is a block diagram of a memory device according to another embodiment of the present invention in the electronic device shown in FIG. 3. FIG.
5c is a block diagram of a memory device according to another embodiment of the present invention in the electronic device shown in FIG. 3. FIG.
FIG. 6 is a block diagram of a hierarchy of an update system according to an embodiment of the present invention.
FIG. 7 is a flowchart illustrating an embodiment of an update process according to the present invention.

Claims (28)

複数の遠隔機器内のソフトウェアをアップデートする方法であって、
前記遠隔機器のそれぞれが、アップデートされたバージョンのソフトウェアおよび以前のバージョンのソフトウェアの両方を記憶するには不十分な容量の不揮発性書き替え可能記憶装置を有し、
前記遠隔機器のそれぞれが、ネットワークに接続され、
(1)少なくともコアファームウェアアップデートを含むアップデートをアップデートサーバーに配置するステップと、
(2)前記ネットワークに接続されたアップデートされるべき機器を識別するステップと、
(3)前記アップデートを前記アップデートサーバーから前記ネットワークを介して前記識別された機器に転送し、前記識別された機器のそれぞれが、前記アップデートが正しく受信されたことを検査し、受信した前記アップデートに誤りのある部分があれば、前記部分の再送を要求し、前記部分を受信するステップと、
(4)記憶装置に存在する以前のバージョンのコアファームウェアに上書きしないように、前記受信されたアップデートのコアファームウェア部分を不揮発性書き替え可能記憶装置に書き込むステップと、
(5)前記記憶装置に書き込まれた前記受信されたアップデートのコアファームウェア部分を検査するステップと、
(6)前記検査されたアップデートコアファームウェアを、前記機器によって使用されるべき有効なコアファームウェアであるとみなし、前記以前のバージョンのコアファームウェアを、使用できないものであるとみなすステップと、
(7)前記アップデートされたソフトウェアをロードおよび実行するために、前記機器をリブートするステップと、
を含む方法。
A method of updating software in multiple remote devices,
Each of the remote devices has a non-volatile rewritable storage capacity that is insufficient to store both an updated version of the software and a previous version of the software;
Each of the remote devices is connected to a network;
(1) placing an update including at least a core firmware update on an update server;
(2) identifying a device to be updated connected to the network;
(3) The update is transferred from the update server to the identified device via the network, and each of the identified devices checks that the update has been received correctly, and updates the received update. If there is an erroneous part, requesting retransmission of the part and receiving the part; and
(4) writing the core firmware portion of the received update to a non-volatile rewritable storage device so as not to overwrite a previous version of the core firmware present in the storage device;
(5) examining the core firmware portion of the received update written to the storage device;
(6) considering the inspected updated core firmware as valid core firmware to be used by the device, and considering the previous version of core firmware as unusable;
(7) rebooting the device to load and execute the updated software;
Including methods.
ステップ(3)とステップ(4)との間において、前記以前のバージョンのコアファームウェアが、前記記憶装置に記憶された補助ソフトウェア上にコピーされ、検査され、前記コピーを、前記機器によって使用されるべき有効なコアファームウェアであるとみなし、オリジナルの前記以前のバージョンのコアファームウェアを、使用できないものであるとみなす請求項1に記載の方法。Between step (3) and step (4), the previous version of the core firmware is copied onto the auxiliary software stored in the storage device, inspected, and the copy is used by the device The method of claim 1, wherein the method is considered to be valid core firmware and the original previous version of the core firmware is considered unusable. 前記アップデートが、アップデートされた補助ソフトウェアをさらに含み、前記補助ソフトウェアが、前記機器によって受信され、検査され、ステップ(6)とステップ(7)との間において、前記補助ソフトウェアアップデートが、前記使用できない以前のバージョンのコアファームウェアに上書きされる請求項2に記載の方法。The update further includes an updated auxiliary software, the auxiliary software is received and inspected by the device, and the auxiliary software update is not available between step (6) and step (7). The method of claim 2, overwritten on a previous version of core firmware. 前記アップデートが、アップデートされた補助ソフトウェアをさらに含み、前記補助ソフトウェアが、前記機器によって受信され、検査され、ステップ(6)とステップ(7)との間において、前記補助ソフトウェアアップデートが、前記使用できない以前のバージョンのコアファームウェアに上書きされる請求項1に記載の方法。The update further includes an updated auxiliary software, the auxiliary software is received and inspected by the device, and the auxiliary software update is not available between step (6) and step (7). The method of claim 1, overwritten on a previous version of core firmware. ステップ(2)が、前記機器がアップデートされ得る状態にあるかどうかを前記機器が前記ネットワークに通知することをさらに備えた請求項1〜4の何れか一項に記載の方法。The method according to any one of claims 1 to 4, wherein step (2) further comprises the device notifying the network whether the device is ready to be updated. 少なくとも1つの電子機器内に存在するコアファームウェアを通信リンクを介して遠隔からアップデートするためのシステムであって、
前記少なくとも1つの電子機器内に存在するメモリサブシステムと、
アップデートサーバーと、
を備え、
前記メモリサブシステムは、前記コアファームウェアが記憶される不揮発性書き替え可能メモリを含み、
前記不揮発性書き替え可能メモリは、補助ソフトウェアを記憶できるほどに十分に大きくはあるが、前記コアファームウェア、アップデートされたバージョンのコアファームウェア、および、前記補助ソフトウェアを同時に記憶できるほどには大きくなく、
前記コアファームウェアは、命令を含み、
前記命令は、以前のバージョンのコアファームウェアに上書きしないようにして、アップデートされたバージョンのコアファームウェアを前記不揮発性書き替え可能メモリに書き込み、前記以前のバージョンのコアファームウェアを使用できないようにし、
前記命令の結果、前記少なくとも1つの電子機器をリブートしたとき、前記アップデートされたバージョンのコアファームウェアがロード及び実行され、
前記アップデートサーバーは、前記アップデートされたバージョンのコアファームウェアを備えたアップデートを前記少なくとも1つの電子機器に通信リンクを介して転送するのに使用することのできる、
システム。
A system for remotely updating a core firmware present in at least one electronic device via a communication link,
A memory subsystem residing in the at least one electronic device;
An update server,
With
The memory subsystem includes a non-volatile rewritable memory in which the core firmware is stored,
The non-volatile rewritable memory is large enough to store auxiliary software, but not large enough to store the core firmware, an updated version of the core firmware, and the auxiliary software simultaneously,
The core firmware includes instructions,
The instruction does not overwrite the previous version of the core firmware, writes the updated version of the core firmware to the non-volatile rewritable memory, and prevents the use of the previous version of the core firmware.
As a result of the instruction, when the at least one electronic device is rebooted, the updated version of the core firmware is loaded and executed,
The update server can be used to transfer an update comprising the updated version of core firmware to the at least one electronic device via a communication link;
system.
前記コアファームウェアは命令を含み、
前記命令は、前記使用できないようにされた以前のバージョンのコアファームウェアの少なくとも一部には上書きするが、前記アップデートされたバージョンのコアファームウェアには上書きしないようにして、アップデートされたバージョンの補助ソフトウェアを不揮発性書き替え可能メモリに書き込む、
請求項6に記載のシステム。
The core firmware includes instructions,
The instruction overwrites at least a portion of the previous version of the core firmware that has been disabled, but does not overwrite the updated version of the core firmware, so that the updated version of the auxiliary software Write to non-volatile rewritable memory,
The system according to claim 6.
前記メモリサブシステムが命令を含む不揮発性メモリをさらに備え、
前記命令は、前記電子機器がリブートしたときに実行され、使用できないようにされていないバージョンのコアファームウェアを探索するために前記不揮発性書き替え可能メモリをスキャンし、前記バージョンのコアファームウェアをロードし、実行する、
請求項7に記載のシステム。
The memory subsystem further comprises a non-volatile memory containing instructions;
The instruction is executed when the electronic device reboots, scans the non-volatile rewritable memory for a version of the core firmware that is not disabled, and loads the version of the core firmware. ,Execute,
The system according to claim 7.
少なくとも1つの電子機器内に存在するコアファームウェアおよび補助ソフトウェアを通信リンクを介して遠隔からアップデートするためのシステムであって、
前記コアファームウェアおよび前記補助ソフトウェアを記憶するための前記少なくとも1つの電子機器内に存在するメモリ装置と、
アップデートサーバーと、
を備え、
前記メモリ装置が、
前記コアファームウェアを含む第1のメモリ内容を第1のパーティションに記憶し、前記第1のパーティションに記憶できるほどに十分に小さく、前記補助ソフトウェアを含む第2のメモリ内容を、前記第1のメモリ内容を記憶できるほどに十分に大きい第2のパーティションに記憶する、不揮発性書き替え可能メモリと、
前記電子機器がリブートされたときに実行されるブートローディング命令が記憶された不揮発性メモリと、
を含み、
前記コアファームウェアは、アップデートクライアントを含み、
前記アップデートクライアントは、アップデートされたバージョンの第1のメモリ内容を受信すると、前記アップデートされたバージョンの第1のメモリ内容を前記第2のパーティションに書き込んで、前記第2のメモリ内容に上書きし、第1のパーティションに含まれる前記第1のメモリ内容を使用できないようにし、アップデートされたバージョンの第2のメモリ内容を受信すると、前記アップデートされたバージョンの第2のメモリ内容を前記第1のパーティションに書き込んで、前記使用できないようにされた第1のメモリ内容に上書きし、前記電子機器をリブートし、
前記ブートローディング命令は命令を含み、
前記命令は、実行されると、使用できないようにされていないバージョンの前記第1のメモリ内容を得るために、前記不揮発性書き替え可能メモリを探索し、前記バージョンの第1のメモリ内容が見つかれば、前記電子機器の制御をそのバージョンのメモリ内容に記憶されたコアファームウェアに切り換え、
前記アップデートサーバーは、前記アップデートされたバージョンの第1および第2のメモリ内容を備えたアップデートを前記少なくとも1つの電子機器に前記通信リンクを介して転送するのに使用することができる、
システム。
A system for remotely updating core firmware and auxiliary software residing in at least one electronic device via a communication link,
A memory device residing in the at least one electronic device for storing the core firmware and the auxiliary software;
An update server,
With
The memory device is
The first memory content including the core firmware is stored in the first partition, and is small enough to be stored in the first partition, and the second memory content including the auxiliary software is stored in the first memory. A non-volatile rewritable memory for storing in a second partition large enough to store the contents;
A non-volatile memory storing a boot loading instruction to be executed when the electronic device is rebooted;
Including
The core firmware includes an update client,
When the updated client receives the updated version of the first memory content, the updated client writes the updated version of the first memory content to the second partition, overwriting the second memory content; When the first memory content included in the first partition is made unusable and an updated version of the second memory content is received, the updated version of the second memory content is transferred to the first partition. To the first memory content that has been disabled, reboot the electronic device,
The bootloading instruction comprises an instruction;
When executed, the instruction searches the non-volatile rewritable memory to obtain a version of the first memory content that is not disabled, and finds the version of the first memory content. For example, the control of the electronic device is switched to the core firmware stored in the memory content of the version,
The update server can be used to transfer an update with the updated versions of the first and second memory contents to the at least one electronic device via the communication link;
system.
少なくとも1つの電子機器内に存在するコアファームウェアおよび補助ソフトウェアを通信リンクを介して遠隔からアップデートするためのシステムであって、
前記コアファームウェアおよび前記補助ソフトウェアを記憶するための前記少なくとも1つの電子機器内に存在するメモリ装置と、
アップデートサーバーと、
を備え、
前記メモリ装置が、
前記コアファームウェアを含む第1のメモリ内容を、第1のパーティションに記憶し、前記第1のパーティションに記憶できるほどに十分に小さく、前記補助ソフトウェアを含む第2のメモリ内容を、前記第1のメモリ内容を記憶できるほどに十分に大きい第2のパーティションに記憶する不揮発性書き替え可能メモリと、
前記電子機器がリブートされたときに実行されるブートローディング命令を記憶する不揮発性メモリと、
を含み、
前記コアファームウェアが、アップデートクライアントを含み、
前記アップデートクライアントは、アップデートされたバージョンの第1のメモリ内容を受信すると、前記第1のメモリ内容を前記第2のパーティションにコピーして、前記第2のメモリ内容に上書きし、前記アップデートされたバージョンの第1のメモリ内容を前記第1のパーティションに書き込んで、前記第1のメモリ内容に上書きし、アップデートされたバージョンの第2のメモリ内容を受信すると、前記アップデートされたバージョンの第2のメモリ内容を前記第2のパーティションに書き込み、前記電子機器をリブートし、
前記ブートローディング命令は、命令を含み、
前記命令は、実行されると、使用できないようにされていないバージョンの前記第1のメモリ内容を得るために、前記不揮発性書き替え可能メモリを探索し、前記バージョンの第1のメモリ内容が見つかれば、前記電子機器の制御をそのバージョンのメモリ内容に記憶されたコアファームウェアに切り換え、
前記アップデートサーバは、前記アップデートされたバージョンの第1および第2のメモリ内容を備えたアップデートを前記少なくとも1つの電子機器に前記通信リンクを介して転送するのに使用することのできる、
システム。
A system for remotely updating core firmware and auxiliary software residing in at least one electronic device via a communication link,
A memory device residing in the at least one electronic device for storing the core firmware and the auxiliary software;
An update server,
With
The memory device is
A first memory content including the core firmware is stored in a first partition and is small enough to be stored in the first partition, and a second memory content including the auxiliary software is stored in the first partition. A non-volatile rewritable memory for storing in a second partition large enough to store the memory contents;
A non-volatile memory that stores a bootloading instruction that is executed when the electronic device is rebooted;
Including
The core firmware includes an update client;
When the update client receives the updated version of the first memory content, the update client copies the first memory content to the second partition, overwrites the second memory content, and updates the updated memory content. Writing a version of the first memory content to the first partition, overwriting the first memory content, and receiving an updated version of the second memory content, the updated version of the second memory content; Write the memory contents to the second partition, reboot the electronic device,
The bootloading instruction includes an instruction;
When executed, the instruction searches the non-volatile rewritable memory to obtain a version of the first memory content that is not disabled, and finds the version of the first memory content. For example, the control of the electronic device is switched to the core firmware stored in the memory content of the version,
The update server can be used to transfer an update with the updated versions of the first and second memory contents to the at least one electronic device over the communication link;
system.
少なくとも1つの電子機器内に存在するコアファームウェアおよび補助ソフトウェアを通信リンクを介して遠隔からアップデートするためのシステムであって、
前記コアファームウェアおよび前記補助ソフトウェアを記憶するための前記少なくとも1つの電子機器内に存在するメモリ装置と、
アップデートサーバーと、
を備え、
前記メモリ装置は、
前記コアファームウェアを含む第1のメモリ内容を第1のパーティションに記憶し、前記第1のパーティションに記憶できるほどに十分に小さく、前記補助ソフトウェアを含む第2のメモリ内容を前記第1のメモリ内容を記憶できるほどに十分に大きい第2のパーティションに記憶する、不揮発性書き替え可能メモリと、
前記電子機器がリブートされたときに実行されるブートローディング命令を記憶した不揮発性メモリと、
を含み、
前記コアファームウェアはアップデートクライアントを含み、
前記アップデートクライアントは、アップデートされたバージョンの第1のメモリ内容を受信すると、可能であれば、前記第2のパーティションのサイズを縮小し、該縮小により、前記第2のパーティションが、前記アップデートされたバージョンの第1のメモリ内容をちょうど記憶できる大きさとなり、前記アップデートされたバージョンの第1のメモリ内容を前記第2のパーティションに書き込んで、前記第2のパーティションの以前の内容に上書きし、前記第1のパーティションに記憶された第1のメモリ内容のバージョンを使用できないようにし、アップデートされたバージョンの第2のメモリ内容を受信すると、可能であれば、前記第1のパーティションのサイズを増大させ、前記第2のパーティションに含まれない不揮発性書き替え可能メモリのすべての部分を含め、前記アップデートされたバージョンの第2のメモリ内容を前記第1のパーティションに書き込んで、前記第1のパーティションの以前の内容に上書きし、前記電子機器をリブートし、
前記ブートローディング命令は、命令を含み、
前記命令は、実行されると、使用できないようにされていないバージョンの前記第1のメモリ内容を得るために、前記不揮発性書き替え可能メモリを探索し、前記バージョンの第1のメモリ内容が見つかれば、前記電子機器の制御をそのバージョンのメモリ内容に記憶されたコアファームウェアに切り換え、
前記アップデートサーバは、前記アップデートされたバージョンの第1および第2のメモリ内容を備えたアップデートを前記少なくとも1つの電子機器に前記通信リンクを介して転送するのに使用することのできる、
システム。
A system for remotely updating core firmware and auxiliary software residing in at least one electronic device via a communication link,
A memory device residing in the at least one electronic device for storing the core firmware and the auxiliary software;
An update server,
With
The memory device includes:
The first memory content including the core firmware is stored in the first partition and is small enough to be stored in the first partition, and the second memory content including the auxiliary software is changed to the first memory content. A non-volatile rewritable memory that stores in a second partition large enough to store
A non-volatile memory storing a boot loading instruction to be executed when the electronic device is rebooted;
Including
The core firmware includes an update client,
When the update client receives the updated version of the first memory contents, it reduces the size of the second partition, if possible, and the reduction causes the second partition to be updated. The first memory content of the version is just large enough to be stored, the updated version of the first memory content is written to the second partition, overwriting the previous content of the second partition, and Making the version of the first memory content stored in the first partition unusable and receiving the updated version of the second memory content increases the size of the first partition, if possible. Non-volatile write not included in the second partition Write the updated version of the second memory contents to the first partition, including all portions of the available memory, overwrite the previous contents of the first partition, and reboot the electronic device ,
The bootloading instruction includes an instruction;
When executed, the instruction searches the non-volatile rewritable memory to obtain a version of the first memory content that is not disabled, and finds the version of the first memory content. For example, the control of the electronic device is switched to the core firmware stored in the memory content of the version,
The update server can be used to transfer an update with the updated versions of the first and second memory contents to the at least one electronic device via the communication link;
system.
前記不揮発性書き替え可能メモリへの書き込みが正しいかどうか検査される、請求項6〜11の何れか一項に記載のシステム。12. A system according to any one of claims 6 to 11, wherein the writing to the non-volatile rewritable memory is checked for correctness. 前記アップデートクライアントが、前記少なくとも1つの電子機器を与えられた時間にアップデートすることができるかどうかを前記アップデートサーバーに通知するのに使用することができ、前記アップデートサーバーが、前記アップデートクライアントから受信した情報に応答し、前記電子機器がアップデートできる状態になければ、前記電子機器のアップデートを延期する、請求項12に記載のシステム。The update client can be used to notify the update server whether the at least one electronic device can be updated at a given time, the update server received from the update client 13. The system of claim 12, wherein in response to the information, if the electronic device is not ready to be updated, the update of the electronic device is postponed. 前記アップデートサーバーが、アップデートに優先順位をつけることができ、前記アップデートクライアントが、優先順位がつけられなければアップデートできない電子機器をアップデートできる状態にする、請求項13に記載のシステム。14. The system of claim 13, wherein the update server can prioritize updates and the update client is ready to update electronic devices that cannot be updated without prioritization. 電子機器において使用するためのメモリサブシステムであって、
コアファームウェアおよび補助ソフトウェアが記憶される不揮発性書き替え可能メモリを備え、
前記コアファームウェアが、命令を含み、
前記命令が、前記補助ソフトウェアの少なくとも一部分には上書きするが以前のバージョンのコアファームウェアには上書きしないようにして、アップデートされたバージョンのコアファームウェアを前記不揮発性書き替え可能メモリに書き込み、前記アップデートされたバージョンのコアファームウェアを検査し、前記以前のバージョンのコアファームウェアを使用できないようにすることにより、前記電子機器をリブートしたとき、前記アップデートされたバージョンのコアファームウェアが、ロードされ、実行される、
メモリサブシステム。
A memory subsystem for use in electronic equipment,
Non-volatile rewritable memory that stores core firmware and auxiliary software,
The core firmware includes instructions;
The instruction writes an updated version of the core firmware to the non-volatile rewritable memory, overwriting at least a portion of the auxiliary software, but not over a previous version of the core firmware. The updated version of the core firmware is loaded and executed when the electronic device is rebooted by examining the previous version of the core firmware and disabling the previous version of the core firmware.
Memory subsystem.
電子機器において使用するためのメモリサブシステムであって、
前記メモリサブシステムが、不揮発性書き替え可能メモリを備え、
前記不揮発性書き替え可能メモリには、コアファームウェアが記憶され、
前記不揮発性書き替え可能メモリは、前記コアファームウェアおよび補助ソフトウェアを記憶できるほどに十分に大きいが、前記コアファームウェア、アップデートされたバージョンのコアファームウェア、および、前記補助ソフトウェアを同時に記憶できるほどには大きくなく、
前記コアファームウェアが、命令を含み、
前記命令は、以前のバージョンのコアファームウェアに上書きしないようにして、アップデートされたバージョンのコアファームウェアを前記不揮発性書き替え可能メモリに書き込み、前記アップデートされたバージョンのコアファームウェアを検査し、前記以前のバージョンのコアファームウェアを使用できないようにすることにより、前記電子機器をリブートしたとき、前記アップデートされたバージョンのコアファームウェアが、ロードされ、実行される、
メモリサブシステム。
A memory subsystem for use in electronic equipment,
The memory subsystem comprises a non-volatile rewritable memory;
The nonvolatile rewritable memory stores core firmware,
The non-volatile rewritable memory is large enough to store the core firmware and auxiliary software, but large enough to store the core firmware, an updated version of the core firmware, and the auxiliary software simultaneously Not
The core firmware includes instructions;
The instructions write the updated version of the core firmware to the non-volatile rewritable memory, check the updated version of the core firmware, and not overwrite the previous version of the core firmware. By making the version of the core firmware unavailable, the updated version of the core firmware is loaded and executed when the electronic device is rebooted.
Memory subsystem.
前記コアファームウェアが、命令を含み、
前記命令は、使用できないようにされた以前のバージョンのコアファームウェアの少なくとも一部分には上書きするが前記アップデートされたバージョンのコアファームウェアには上書きしないようにして、アップデートされたバージョンの補助ソフトウェアを前記不揮発性書き替え可能メモリに書き込む、
請求項15または請求項16に記載のメモリサブシステム。
The core firmware includes instructions;
The instruction overwrites at least a portion of a previous version of the core firmware that has been disabled, but does not overwrite the updated version of the core firmware, so that an updated version of the auxiliary software is transferred to the non-volatile memory. Write to rewritable memory,
17. A memory subsystem according to claim 15 or claim 16.
命令を含む不揮発性メモリをさらに備え、
前記命令は、前記電子機器がリブートしたときに実行され、使用できないようにされていないバージョンのコアファームウェアを得るために、前記不揮発性書き替え可能メモリをスキャンし、使用できないようにされていない前記バージョンのコアファームウェアをロードし、実行する、
請求項17に記載のメモリサブシステム。
Further comprising a non-volatile memory containing instructions;
The instructions are executed when the electronic device reboots and scan the non-volatile rewritable memory to obtain an unusable version of the core firmware. Load and run a version of the core firmware,
The memory subsystem of claim 17.
記憶された命令を実行することができ、アップデートされたバージョンの命令を受信することができる電子機器において使用するための該命令を記憶するメモリサブシステムであって、
前記メモリサブシステムが、不揮発性書き替え可能メモリを備え、
前記不揮発性書き替え可能メモリにおいては、前記電子機器がリスタートするのを可能にし、あるいは、アップデートが進行中に前記電子機器がリブートした場合に前記不揮発性書き替え可能メモリをアップデートするのを継続するのを可能にするのに必要な命令を少なくとも含む第1のメモリ内容が、第1のパーティションに記憶され、
前記第1のパーティションに記憶できるほど十分に小さく、前記第1のメモリ内容に含まれない前記電子機器のリブート後の通常動作に必要なすべての命令を含む第2のメモリ内容が、前記第1のメモリ内容を記憶できるほど十分に大きい第2のパーティションに記憶され、
前記第1のメモリ内容に記憶された命令は、
アップデートされたバージョンの第1のメモリ内容が受信された後に実行されると、前記アップデートされたバージョンの第1のメモリ内容を第2のパーティションに書き込んで、前記第2のメモリ内容に上書きし、前記第1のパーティションに含まれる前記第1のメモリ内容を使用できないようにする命令と、
アップデートされたバージョンの第2のメモリ内容が受信された後に実行されると、前記アップデートされたバージョンの第2のメモリ内容を前記第1のパーティションに書き込んで、前記使用できないようにされた第1のメモリ内容に上書きし、前記電子機器をリブートする命令と、
を含み、
前記メモリサブシステムが、さらに、前記電子機器がリブートされたときに実行されるブートローディング命令が記憶された不揮発性メモリを備え、
前記ブートローディング命令が、命令を含み、
前記命令は、実行されると、使用できないようにされていない第1のメモリ内容のバージョンを得るために、前記不揮発性書き替え可能メモリを探索し、前記バージョンの第1のメモリ内容が見つかれば、前記電子機器の制御をそのバージョンのメモリ内容に記憶された命令に切り換える、
メモリサブシステム。
A memory subsystem for storing instructions for use in an electronic device capable of executing stored instructions and receiving an updated version of the instructions, comprising:
The memory subsystem comprises a non-volatile rewritable memory;
The non-volatile rewritable memory allows the electronic device to restart, or continues to update the non-volatile rewritable memory if the electronic device reboots while an update is in progress A first memory content including at least instructions necessary to enable the storage to be stored in the first partition;
A second memory content that is small enough to be stored in the first partition and that includes all instructions required for normal operation after reboot of the electronic device that is not included in the first memory content is the first memory content. Stored in a second partition large enough to store the memory contents of
The instruction stored in the first memory content is:
When executed after an updated version of the first memory content is received, the updated version of the first memory content is written to a second partition, overwriting the second memory content; An instruction to disable the use of the first memory content contained in the first partition;
When executed after an updated version of the second memory content is received, the updated version of the second memory content is written to the first partition to prevent the use of the first memory content. An instruction to overwrite the memory contents and reboot the electronic device;
Including
The memory subsystem further comprises a non-volatile memory storing a bootloading instruction to be executed when the electronic device is rebooted;
The bootloading instruction comprises an instruction;
When executed, the instruction searches the non-volatile rewritable memory to obtain a version of the first memory content that is not disabled, and if the first memory content of the version is found Switching control of the electronic device to instructions stored in the memory contents of that version;
Memory subsystem.
記憶された命令を実行することができ、アップデートされたバージョンの命令を受信することができる電子機器において使用するための、該命令を記憶するメモリサブシステムであって、
前記メモリサブシステムが、不揮発性書き替え可能メモリを備え、
前記不揮発性書き替え可能メモリにおいては、
前記電子機器が、リスタートするのを可能にし、あるいは、アップデートが進行中に前記電子機器がリブートした場合に前記不揮発性書き替え可能メモリをアップデートするのを継続するのを可能にするのに必要な命令を少なくとも含む第1のメモリ内容が、第1のパーティションに記憶され、
前記第1のメモリ内容に含まれない前記電子機器のリブート後の通常動作に必要なすべての命令を含む第2のメモリ内容が、前記第1のメモリ内容を記憶できるほど十分に大きい第2のパーティションに記憶され、
前記第1のメモリ内容に記憶された命令は、
アップデートされたバージョンの第1のメモリ内容が受信された後に実行されると、第1のメモリ内容を第2のパーティションにコピーして、前記第2のメモリ内容に上書きし、前記アップデートされたバージョンの第1のメモリ内容を前記第1のパーティションに書き込んで、前記第1のメモリ内容に上書きする命令と、
アップデートされたバージョンの第2のメモリ内容が受信された後に実行されると、前記アップデートされたバージョンの第2のメモリ内容を前記第2のパーティションに書き込んで、前記使用できないようにされた第1のメモリ内容に上書きし、前記電子機器をリブートする命令と、
を含み、
前記メモリサブシステムが、さらに、前記電子機器がリブートされたときに実行されるブートローディング命令が記憶された不揮発性メモリを備え、
前記ブートローディング命令が、命令を含み、
前記命令は、実行されると、使用できないようにされていない第1のメモリ内容のバージョンを得るために、前記不揮発性書き替え可能メモリを探索し、前記バージョンの第1のメモリ内容が見つかれば、前記電子機器の制御をそのバージョンのメモリ内容に記憶された命令に切り換える、
メモリサブシステム。
A memory subsystem for storing instructions for use in an electronic device capable of executing stored instructions and receiving an updated version of the instructions, comprising:
The memory subsystem comprises a non-volatile rewritable memory;
In the nonvolatile rewritable memory,
Necessary to allow the electronic device to restart or continue to update the non-volatile rewritable memory if the electronic device reboots while an update is in progress A first memory content including at least an instruction is stored in the first partition;
A second memory content that includes all the instructions required for normal operation after rebooting the electronic device that is not included in the first memory content is sufficiently large to store the first memory content. Stored in the partition,
The instruction stored in the first memory content is:
When executed after receiving an updated version of the first memory content, the first memory content is copied to a second partition, overwriting the second memory content, and the updated version An instruction to write the first memory contents of the first memory contents to the first partition and overwrite the first memory contents;
When executed after an updated version of the second memory content is received, the updated version of the second memory content is written to the second partition to prevent the use of the first memory content. An instruction to overwrite the memory contents and reboot the electronic device;
Including
The memory subsystem further comprises a non-volatile memory storing a bootloading instruction to be executed when the electronic device is rebooted;
The bootloading instruction comprises an instruction;
When executed, the instruction searches the non-volatile rewritable memory to obtain a version of the first memory content that is not disabled, and if the first memory content of the version is found Switching control of the electronic device to instructions stored in the memory contents of that version;
Memory subsystem.
記憶された命令を実行することができ、アップデートされたバージョンの命令を受信することができる電子機器において使用するための、該命令を記憶するメモリサブシステムであって、
前記メモリサブシステムが、不揮発性書き替え可能メモリを備え、
前記不揮発性書き替え可能メモリにおいては、
前記電子機器が、リスタートするのを可能にし、あるいは、アップデートが進行中に前記電子機器がリブートした場合に前記不揮発性書き替え可能メモリをアップデートするのを継続するのを可能にするのに必要な命令を少なくとも含む第1のメモリ内容が、前記不揮発性書き替え可能メモリの開始点から開始するかまたは前記不揮発性書き替え可能メモリの終了点で終了する連続する第1のパーティションに記憶され、
前記第1のメモリ内容に含まれない前記電子機器のリブート後の通常動作に必要なすべての命令を含む第2のメモリ内容が、前記不揮発性書き替え可能メモリの前記第1のパーティションが存在しない部分を占め、前記第1のメモリ内容を記憶できるほど十分に大きい連続する第2のパーティションに記憶され、
前記第1のメモリ内容に記憶された命令は、
アップデートされたバージョンの第1のメモリ内容が受信された後に実行されると、可能であれば、前記第2のパーティションのサイズを縮小することにより、前記第2のパーティションが、前記アップデートされたバージョンの第1のメモリ内容をちょうど記憶できる大きさとなり、前記アップデートされたバージョンの第1のメモリ内容を前記第2のパーティションに書き込んで、前記第2のパーティションの以前の内容に上書きし、前記第1のパーティションに記憶された第1のメモリ内容のバージョンを使用できないようにする命令と、
アップデートされたバージョンの第2のメモリ内容が受信された後に実行されると、可能であれば、前記第1のパーティションのサイズを増大させ、前記第2のパーティションに含まれない不揮発性書き替え可能メモリのすべての部分を含め、前記アップデートされたバージョンの第2のメモリ内容を前記第1のパーティションに書き込んで、前記第1のパーティションの以前の内容に上書きし、前記電子機器をリブートする命令と、
を含み、
前記メモリサブシステムが、さらに、前記電子機器がリブートされたときに実行されるブートローディング命令が記憶された不揮発性メモリを備え、
前記ブートローディング命令が、命令を含み、
前記命令は、実行されると、使用できないようにされていない第1のメモリ内容のバージョンを得るために、前記不揮発性書き替え可能メモリを探索し、前記バージョンの第1のメモリ内容が見つかれば、前記電子機器の制御を当該バージョンのメモリ内容に記憶された命令に切り換える、
メモリサブシステム。
A memory subsystem for storing instructions for use in an electronic device capable of executing stored instructions and receiving an updated version of the instructions, comprising:
The memory subsystem comprises a non-volatile rewritable memory;
In the nonvolatile rewritable memory,
Necessary to allow the electronic device to restart or continue to update the non-volatile rewritable memory if the electronic device reboots while an update is in progress First memory content including at least an instruction is stored in a continuous first partition starting from a start point of the nonvolatile rewritable memory or ending at an end point of the nonvolatile rewritable memory;
The second memory content including all instructions necessary for normal operation after rebooting the electronic device not included in the first memory content does not exist in the first partition of the nonvolatile rewritable memory. Occupying a portion and stored in a contiguous second partition large enough to store the first memory contents;
The instruction stored in the first memory content is:
When executed after an updated version of the first memory content is received, the second partition may be updated to the updated version by reducing the size of the second partition, if possible. The first memory content of the second partition is just large enough to be stored, the updated version of the first memory content is written to the second partition, overwriting the previous content of the second partition, and An instruction that disables the use of a version of the first memory content stored in one partition;
When executed after receiving an updated version of the second memory content, if possible, the first partition can be increased in size and non-volatile rewritable not included in the second partition An instruction to write the updated version of the second memory content, including all portions of memory, to the first partition, overwrite the previous contents of the first partition, and reboot the electronic device; ,
Including
The memory subsystem further comprises a non-volatile memory storing a bootloading instruction to be executed when the electronic device is rebooted;
The bootloading instruction comprises an instruction;
When executed, the instruction searches the non-volatile rewritable memory to obtain a version of the first memory content that is not disabled, and if the first memory content of the version is found Switching the control of the electronic device to the instruction stored in the memory content of the version,
Memory subsystem.
電子機器の不揮発性書き替え可能メモリに記憶されたコアファームウェアを補助ソフトウェアとともに、アップデートされたバージョンのコアファームウェアにアップデートする方法であって、
(1)前記補助ソフトウェアの少なくとも一部分には上書きするが、以前のバージョンのコアファームウェアには上書きしないようにして、前記アップデートされたバージョンのコアファームウェアを前記不揮発性書き替え可能メモリに書き込むステップと、
(2)前記以前のバージョンのコアファームウェアを使用できないようにすることにより、前記電子機器をリブートするとき、前記アップデートされたバージョンのコアファームウェアが、ロードされ、実行されるステップと、
を備えた方法。
A method of updating core firmware stored in a nonvolatile rewritable memory of an electronic device to an updated version of core firmware together with auxiliary software,
(1) overwriting at least a portion of the auxiliary software, but not overwriting a previous version of the core firmware, and writing the updated version of the core firmware into the non-volatile rewritable memory;
(2) the rebooted version of the core firmware is loaded and executed when the electronic device is rebooted by disabling the previous version of the core firmware;
With a method.
電子機器の不揮発性書き替え可能メモリに記憶された以前のバージョンのコアファームウェアおよび補助ソフトウェアを、アップデートされたバージョンのコアファームウェアおよび補助ソフトウェアにアップデートする方法であって、
(1)前記補助ソフトウェアの少なくとも一部分には上書きするが、以前のバージョンのコアファームウェアには上書きしないようにして、前記アップデートされたバージョンのコアファームウェアを前記不揮発性書き替え可能メモリに書き込むステップと、
(2)前記以前のバージョンのコアファームウェアを使用できないようにすることにより、前記電子機器をリブートするとき、前記アップデートされたバージョンのコアファームウェアが、ロードされ、実行されるステップと、
(3)前記アップデートされたバージョンのコアファームウェアに上書きしないようにして、前記アップデートされたバージョンの補助ソフトウェアを前記不揮発性書き替え可能メモリに書き込むステップと、
を備えた方法。
A method of updating a previous version of core firmware and auxiliary software stored in non-volatile rewritable memory of an electronic device to an updated version of core firmware and auxiliary software, comprising:
(1) overwriting at least a portion of the auxiliary software, but not overwriting a previous version of the core firmware, and writing the updated version of the core firmware into the non-volatile rewritable memory;
(2) when the electronic device is rebooted by disabling the previous version of the core firmware, the updated version of the core firmware is loaded and executed;
(3) writing the updated version of the auxiliary software into the nonvolatile rewritable memory without overwriting the updated version of the core firmware;
With a method.
前記電子機器がリブートされたとき、使用できないようにされていないコアファームウェアのバージョンを得るために、前記不揮発性書き替え可能メモリがスキャンされ、当該バージョンのコアファームウェアが、ロードされ、実行される、請求項22または請求項23に記載の方法。When the electronic device is rebooted, the non-volatile rewritable memory is scanned and the version of the core firmware is loaded and executed to obtain a version of the core firmware that is not disabled. 24. A method according to claim 22 or claim 23. アップデートおよびソフトウェアの両方を保持できるほど大きくない不揮発性書き替え可能メモリに記憶された前記ソフトウェアに前記アップデートをインストールする方法であって、
前記アップデートを、前記不揮発性書き替え可能メモリの半分以下の領域に記憶することのできるコア部分を含む個々に書き込み可能な部分に分割するステップと、
不揮発性書き替え可能メモリを、前記アップデートのコア部分と前記アップデートのコア部分をちょうど保持できる大きさの補助部分とに対応する、前記不揮発性書き替え可能メモリの半分以下の領域を含むコア部分を含み、ソフトウェア部分を含む個々に書き替え可能な部分に分割するステップと、
前記アップデートのコア部分を前記不揮発性書き替え可能メモリの補助部分に書き込み、前記アップデートのコア部分が正しく書き込まれたかを検査するステップと、
前記不揮発性書き替え可能メモリの前記コア部分に含まれる以前のバージョンのソフトウェアを使用できないようにするステップと、
前記アップデートのコア部分に含まれない前記アップデートの部分を、前記不揮発性書き替え可能メモリのコア部分に含まれない前記不揮発性書き替え可能メモリの部分に書き込み、前記アップデートの部分が正しく書き込まれたかを検査するステップと、
を備えた方法。
A method of installing the update into the software stored in non-volatile rewritable memory that is not large enough to hold both the update and the software, comprising:
Dividing the update into individually writable parts including a core part that can be stored in less than half of the non-volatile rewritable memory; and
A non-volatile rewritable memory having a core portion including an area less than half of the non-volatile rewritable memory, corresponding to the core portion of the update and an auxiliary portion having a size that can hold the core portion of the update. Including, dividing into individually rewritable parts including software parts;
Writing the core part of the update to the auxiliary part of the non-volatile rewritable memory and checking whether the core part of the update has been written correctly;
Disabling previous versions of software contained in the core portion of the non-volatile rewritable memory;
The update part not included in the core part of the update is written in the nonvolatile rewritable memory part not included in the core part of the nonvolatile rewritable memory, and the update part is correctly written. A step of inspecting
With a method.
少なくとも1つの電子機器を通信リンクを介して遠隔からアップデートするためのシステムであって、
コアファームウェアおよび補助ソフトウェアを備えたアップデートを前記少なくとも1つの電子機器に前記通信リンクを介して転送するのに使用することのできるアップデートサーバーと、
前記アップデートサーバーから受信される転送を一時的に記憶するための揮発性メモリと、
前記少なくとも1つの電子機器内に存在する不揮発性書き替え可能記憶装置であって、少なくとも第1および第2のパーティションに分割され、前記第1のパーティションは、あるバージョンのコアファームウェアおよび補助ソフトウェアの一方を記憶し、前記第2のパーティションは、あるバージョンのコアファームウェアおよび補助ソフトウェアの他方を記憶する、不揮発性書き替え可能記憶装置と、
前記機器において動作するアップデートクライアントと、
を備え、
前記アップデートクライアントが、
(1)揮発性メモリに記憶された受信アップデートコアファームウェアを、前記第1および第2のパーティションの一方に記憶されたあるバージョンの補助ソフトウェアに上書きし、該書き込みがうまくなされたかどうかを検査し、
(2)前記機器を次にリブートするときに、ステップ(1)において記憶された前記コアファームウェアを実行するように、前記機器を設定し、
(3)揮発性メモリに記憶された受信されたアップデートされた補助ソフトウェアを、前記第1および第2のパーティションの他方に記憶されたあるバージョンのコアファームウェアに上書きし、該書き込みがうまくなされたかどうかを検査し、
(4)前記機器をリブートし、前記アップデートされたコアファームウェアおよび前記アップデートされた補助ソフトウェアを実行する、
システム。
A system for remotely updating at least one electronic device via a communication link, comprising:
An update server that can be used to transfer updates comprising core firmware and auxiliary software to the at least one electronic device via the communication link;
Volatile memory for temporarily storing transfers received from the update server;
A non-volatile rewritable storage device existing in the at least one electronic device, wherein the non-volatile rewritable storage device is divided into at least a first and a second partition, and the first partition is one of a version of core firmware and auxiliary software. A non-volatile rewritable storage device storing the other of a version of core firmware and auxiliary software;
An update client running on the device;
With
The update client is
(1) Overwrite the received update core firmware stored in the volatile memory with a version of auxiliary software stored in one of the first and second partitions, and check whether the writing was successful;
(2) The next time the device is rebooted, the device is set to execute the core firmware stored in step (1),
(3) Whether the received updated auxiliary software stored in the volatile memory is overwritten with a version of the core firmware stored in the other of the first and second partitions, and whether the writing was successful Inspect the
(4) Reboot the device and execute the updated core firmware and the updated auxiliary software;
system.
前記アップデートクライアントが、さらに、前記機器を与えられた時間にアップデートすることができるかどうかを前記アップデートサーバーに通知し、
前記アップデートサーバーが、前記アップデートクライアントから受信した情報に応答し、前記機器がアップデートできる状態になければ、前記機器のアップデートを延期するする、
請求項26に記載のシステム。
The update client further informs the update server whether the device can be updated at a given time;
The update server responds to the information received from the update client and defers the update of the device if the device is not ready to update.
27. The system of claim 26.
前記アップデートサーバーが、アップデートに優先順位をつけることができ、該優先順位をつけることによって、前記アップデートクライアントが、優先順位がつけられなければアップデートできない電子機器をアップデートできる状態にする、請求項27に記載のシステム。28. The update server according to claim 27, wherein the update server can prioritize updates, and the prioritization enables the update client to update electronic devices that cannot be updated without prioritization. The described system.
JP2003529305A 2001-09-17 2002-09-17 Method, apparatus and system for updating software Pending JP2005502971A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CA002357382A CA2357382A1 (en) 2001-09-17 2001-09-17 Software update method, apparatus and system
PCT/CA2002/001414 WO2003025742A2 (en) 2001-09-17 2002-09-17 Software update method, apparatus and system

Publications (2)

Publication Number Publication Date
JP2005502971A true JP2005502971A (en) 2005-01-27
JP2005502971A5 JP2005502971A5 (en) 2007-04-12

Family

ID=4169991

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003529305A Pending JP2005502971A (en) 2001-09-17 2002-09-17 Method, apparatus and system for updating software

Country Status (7)

Country Link
US (1) US20050055595A1 (en)
EP (1) EP1461694A2 (en)
JP (1) JP2005502971A (en)
CN (1) CN100541430C (en)
CA (1) CA2357382A1 (en)
MX (1) MXPA04002527A (en)
WO (1) WO2003025742A2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007193505A (en) * 2006-01-18 2007-08-02 Nec Infrontia Corp Device for integrating partition size variable firmware, and method for updating its firmware
JP2009512916A (en) * 2005-09-30 2009-03-26 エアバス・フランス Device for controlling apparatus and method thereof
EP2345959A1 (en) 2010-01-15 2011-07-20 Fujitsu Limited An information processing device and a firmware updating method of the information processing device
JP2017504112A (en) * 2013-12-20 2017-02-02 ノルディック セミコンダクタ アーエスアーNordic Semiconductor ASA Updatable IC wireless device
US10296218B2 (en) 2016-08-10 2019-05-21 Fujitsu Limited Update control method, update control apparatus, and storage medium
CN112269585A (en) * 2020-11-04 2021-01-26 配天机器人技术有限公司 Joint driver firmware online updating method and device and joint driver

Families Citing this family (248)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7548787B2 (en) 2005-08-03 2009-06-16 Kamilo Feher Medical diagnostic and communication system
US8266657B2 (en) 2001-03-15 2012-09-11 Sling Media Inc. Method for effectively implementing a multi-room television system
US6263503B1 (en) 1999-05-26 2001-07-17 Neal Margulis Method for effectively implementing a wireless television system
US9373251B2 (en) 1999-08-09 2016-06-21 Kamilo Feher Base station devices and automobile wireless communication systems
US9307407B1 (en) 1999-08-09 2016-04-05 Kamilo Feher DNA and fingerprint authentication of mobile devices
US7260369B2 (en) * 2005-08-03 2007-08-21 Kamilo Feher Location finder, tracker, communication and remote control system
US20050108096A1 (en) * 1999-09-28 2005-05-19 Chameleon Network Inc. Portable electronic authorization system and method
US7814474B2 (en) * 2000-11-17 2010-10-12 Hewlett-Packard Development Company, L.P. Updatable mobile handset based on Linux with compression and decompression techniques
US7409685B2 (en) 2002-04-12 2008-08-05 Hewlett-Packard Development Company, L.P. Initialization and update of software and/or firmware in electronic devices
US8479189B2 (en) 2000-11-17 2013-07-02 Hewlett-Packard Development Company, L.P. Pattern detection preprocessor in an electronic device update generation system
CA2479343A1 (en) * 2002-03-19 2003-10-02 Chameleon Network Inc. Portable electronic authorization system and method
TW586074B (en) * 2002-05-24 2004-05-01 Integrated Technology Express System and method for online firmware update and on-screen-display parameter modification and control interface thereof
US6836657B2 (en) * 2002-11-12 2004-12-28 Innopath Software, Inc. Upgrading of electronic files including automatic recovery from failures and errors occurring during the upgrade
JP4417123B2 (en) * 2003-02-19 2010-02-17 パナソニック株式会社 Software update method and wireless communication apparatus
US7779114B2 (en) * 2003-04-17 2010-08-17 International Business Machines Corporation Method and system for administering devices with multiple user metric spaces
US7683029B2 (en) * 2003-05-07 2010-03-23 Philip Morris Usa Inc. Liquid aerosol formulations containing insulin and aerosol generating devices and methods for generating aerosolized insulin
US7987449B1 (en) * 2003-05-22 2011-07-26 Hewlett-Packard Development Company, L.P. Network for lifecycle management of firmware and software in electronic devices
US8250565B2 (en) 2003-06-27 2012-08-21 Hewlett-Packard Development Company, L.P. System and method for downloading update packages into a mobile handset in a carrier network
EP1652100A4 (en) * 2003-07-09 2009-12-16 Hewlett Packard Development Co Carrier network capable of conducting remote diagnostics in a mobile handset
US20050010915A1 (en) * 2003-07-11 2005-01-13 Chih-Wei Chen Network-based server code auto upgrade method and system
US8555273B1 (en) 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
US7281274B2 (en) * 2003-10-16 2007-10-09 Lmp Media Llc Electronic media distribution system
KR20050040432A (en) * 2003-10-28 2005-05-03 주식회사 팬택앤큐리텔 Mobile terminal capable of upgrading menu display and method for upgrading the images
US8555271B2 (en) * 2003-10-29 2013-10-08 Qualcomm Incorporated Method, software and apparatus for application upgrade during execution
US7542757B2 (en) * 2003-11-20 2009-06-02 Agere Systems Inc. Method, system, and computer program product for over-the-air download to satellite radio
CN1305260C (en) * 2003-12-01 2007-03-14 海信集团有限公司 Control system for traffic electronic stop plate and its method
US8990366B2 (en) * 2003-12-23 2015-03-24 Intel Corporation Method and apparatus for remote modification of system configuration
US7444681B2 (en) * 2004-01-12 2008-10-28 Hewlett-Packard Development Company, L.P. Security measures in a partitionable computing system
JP2005242555A (en) * 2004-02-25 2005-09-08 Hitachi Ltd Storage control system and method for loading firmware on disk type storage device owned by storage control system
EP1569102B1 (en) 2004-02-27 2010-04-28 Telefonaktiebolaget LM Ericsson (publ) Flash memory programming
US7318070B2 (en) * 2004-03-11 2008-01-08 International Business Machines Corporation Method and apparatus for maintaining compatibility within a distributed systems management environment with a plurality of configuration versions
US8589564B2 (en) * 2004-03-11 2013-11-19 International Business Machines Corporation Method and apparatus for maintaining compatibility within a distributed systems management environment with a plurality of configuration versions
US20050204347A1 (en) * 2004-03-12 2005-09-15 International Business Machines Corporation Method for generating XSLT documents from multiple versions of a UML model or XML schemas created from multiple versions of a UML model
US7428635B2 (en) * 2004-03-31 2008-09-23 Emulex Design & Manufacturing Corporation Method of writing non-volatile memory that avoids corrupting the vital initialization code
US7904895B1 (en) 2004-04-21 2011-03-08 Hewlett-Packard Develpment Company, L.P. Firmware update in electronic devices employing update agent in a flash memory card
US8346605B2 (en) 2004-06-07 2013-01-01 Sling Media, Inc. Management of shared media content
US7769756B2 (en) 2004-06-07 2010-08-03 Sling Media, Inc. Selection and presentation of context-relevant supplemental content and advertising
US7917932B2 (en) 2005-06-07 2011-03-29 Sling Media, Inc. Personal video recorder functionality for placeshifting systems
US8099755B2 (en) 2004-06-07 2012-01-17 Sling Media Pvt. Ltd. Systems and methods for controlling the encoding of a media stream
US7975062B2 (en) 2004-06-07 2011-07-05 Sling Media, Inc. Capturing and sharing media content
US9998802B2 (en) 2004-06-07 2018-06-12 Sling Media LLC Systems and methods for creating variable length clips from a media stream
US7647614B2 (en) 2004-06-07 2010-01-12 Sling Media, Inc. Fast-start streaming and buffering of streaming content for personal media player
CN1329822C (en) * 2004-06-16 2007-08-01 华为技术有限公司 Soft wave renewing method
AU2011244901B2 (en) * 2004-06-24 2013-10-03 X2M Connect Limited Client processor device
AU2011244955B2 (en) * 2004-06-24 2014-06-19 X2M Connect Limited An alert device
EP1766425A4 (en) * 2004-06-24 2012-06-06 Freestyle Technology Pty Ltd A meter device
US8606891B2 (en) 2004-09-10 2013-12-10 Freestyle Technology Pty Ltd Client processor device for building application files from file fragments for different versions of an application
US8526940B1 (en) 2004-08-17 2013-09-03 Palm, Inc. Centralized rules repository for smart phone customer care
KR100631584B1 (en) * 2004-08-24 2006-10-09 엘지전자 주식회사 How to Force Download of Program on Mobile Terminal
JP2006065857A (en) * 2004-08-24 2006-03-09 Lg Electronics Inc Method and device for forcibly downloading program in mobile communication terminal
US20060048055A1 (en) * 2004-08-25 2006-03-02 Jun Wu Fault-tolerant romanized input method for non-roman characters
CN1327342C (en) * 2004-09-13 2007-07-18 联发科技股份有限公司 Software updating method and its system for mobile phone
JP5173427B2 (en) 2004-11-08 2013-04-03 イノパス・ソフトウェアー・インコーポレーテッド Compressed read-only memory file system (CRMFS) image update
JP2006155393A (en) * 2004-11-30 2006-06-15 Toshiba Corp Server accommodation device, server accommodation method, and server accommodation program
DE602005006322T2 (en) * 2004-12-29 2009-07-09 Grundig Elektronik Anonim Sirketi SOFTWARE UPGRADE BY REMOTE CONTROL
US7607002B2 (en) * 2005-01-10 2009-10-20 Dell Products L.P. System and method for information handling system boot device branding of boot information
US7904518B2 (en) 2005-02-15 2011-03-08 Gytheion Networks Llc Apparatus and method for analyzing and filtering email and for providing web related services
US8402109B2 (en) 2005-02-15 2013-03-19 Gytheion Networks Llc Wireless router remote firmware upgrade
KR100652715B1 (en) * 2005-02-28 2006-12-01 엘지전자 주식회사 Method and apparatus of application program dynamic loading for mobile phone
US7516315B2 (en) 2005-03-18 2009-04-07 Research In Motion Ltd. Electronic device having an alterable configuration and methods of manufacturing and configuring the same
EP1703383A1 (en) * 2005-03-18 2006-09-20 Research In Motion Limited Electronic device having an alterable configuration and methods of manufacturing and configuring the device
US7426633B2 (en) * 2005-05-12 2008-09-16 Hewlett-Packard Development Company, L.P. System and method for reflashing disk drive firmware
CN100403836C (en) * 2005-06-10 2008-07-16 华为技术有限公司 Terminal device software/firmware downloading updating method
US7907531B2 (en) * 2005-06-13 2011-03-15 Qualcomm Incorporated Apparatus and methods for managing firmware verification on a wireless device
EP1899814B1 (en) * 2005-06-30 2017-05-03 Sling Media, Inc. Firmware update for consumer electronic device
DE102005034820A1 (en) * 2005-07-26 2007-02-01 Volkswagen Ag System and method for executing a parallelized software update
US10009956B1 (en) 2017-09-02 2018-06-26 Kamilo Feher OFDM, 3G and 4G cellular multimode systems and wireless mobile networks
GB2430774B (en) * 2005-10-03 2007-08-08 Nec Technologies Method of software updating and related device
US20070100957A1 (en) * 2005-10-13 2007-05-03 Bhogal Kulvir S Method and apparatus to provide guaranteed deployment of applications to nodes in an enterprise
CN100416503C (en) * 2005-11-04 2008-09-03 中兴通讯股份有限公司 Method for updating version of software
US20090125958A1 (en) * 2005-11-23 2009-05-14 Pak Siripunkaw Method of upgrading a platform in a subscriber gateway device
WO2007104899A1 (en) * 2006-03-16 2007-09-20 Thomson Licensing Method for robust software updating
US9348574B2 (en) * 2006-03-30 2016-05-24 Bosch Automotive Service Solutions Inc. Method for having multiple software programs on a diagnostic tool
CN100454253C (en) * 2006-04-29 2009-01-21 华为技术有限公司 Method for updating terminal software and terminal equipment thereof
US20070266128A1 (en) * 2006-05-10 2007-11-15 Bhogal Kulvir S Method and apparatus for monitoring deployment of applications and configuration changes in a network of data processing systems
EP2025095A2 (en) 2006-06-08 2009-02-18 Hewlett-Packard Development Company, L.P. Device management in a network
EP2047420A4 (en) 2006-07-27 2009-11-18 Hewlett Packard Development Co User experience and dependency management in a mobile device
CN100450034C (en) * 2006-08-01 2009-01-07 华为技术有限公司 Long-drawing loading equipment, system and method
US10104432B2 (en) * 2006-12-01 2018-10-16 Time Warner Cable Enterprises Llc Methods and apparatus for software provisioning of a network device
US8271968B2 (en) * 2006-12-12 2012-09-18 Dell Products L.P. System and method for transparent hard disk drive update
US8917165B2 (en) * 2007-03-08 2014-12-23 The Mitre Corporation RFID tag detection and re-personalization
US8216221B2 (en) 2007-05-21 2012-07-10 Estech, Inc. Cardiac ablation systems and methods
JP2009054645A (en) * 2007-08-23 2009-03-12 Rohm Co Ltd Semiconductor device
US8429643B2 (en) * 2007-09-05 2013-04-23 Microsoft Corporation Secure upgrade of firmware update in constrained memory
US8477793B2 (en) 2007-09-26 2013-07-02 Sling Media, Inc. Media streaming device with gateway functionality
US7966295B2 (en) * 2007-10-10 2011-06-21 Teefonaktiebolaget L M Ericsson (Publ) System and method of mirroring a database to a plurality of subscribers
US8350971B2 (en) 2007-10-23 2013-01-08 Sling Media, Inc. Systems and methods for controlling media devices
US8108911B2 (en) 2007-11-01 2012-01-31 Comcast Cable Holdings, Llc Method and system for directing user between captive and open domains
US8683458B2 (en) * 2007-11-30 2014-03-25 Red Hat, Inc. Automatic full install upgrade of a network appliance
US8539471B2 (en) 2007-12-13 2013-09-17 Telefonaktiebolaget L M Ericsson (Publ) Updating firmware of an electronic device
US8060609B2 (en) 2008-01-04 2011-11-15 Sling Media Inc. Systems and methods for determining attributes of media items accessed via a personal media broadcaster
CN101571807A (en) * 2008-04-28 2009-11-04 鸿富锦精密工业(深圳)有限公司 System with firmware and starting method thereof
JP4364285B1 (en) * 2008-05-13 2009-11-11 株式会社東芝 Communication device and error recovery method
US8418164B2 (en) 2008-05-29 2013-04-09 Red Hat, Inc. Image install of a network appliance
EP2310941A1 (en) * 2008-06-02 2011-04-20 Awox Method and device for updating a computer application
US8924469B2 (en) 2008-06-05 2014-12-30 Headwater Partners I Llc Enterprise access control and accounting allocation for access networks
US8402111B2 (en) 2009-01-28 2013-03-19 Headwater Partners I, Llc Device assisted services install
US8275830B2 (en) 2009-01-28 2012-09-25 Headwater Partners I Llc Device assisted CDR creation, aggregation, mediation and billing
US8346225B2 (en) 2009-01-28 2013-01-01 Headwater Partners I, Llc Quality of service for device assisted services
US9137739B2 (en) 2009-01-28 2015-09-15 Headwater Partners I Llc Network based service policy implementation with network neutrality and user privacy
US8245214B2 (en) * 2008-06-05 2012-08-14 International Business Machines Corporation Reliably updating computer firmware while performing command and control functions on a power/thermal component in a high-availability, fault-tolerant, high-performance server
US8635335B2 (en) 2009-01-28 2014-01-21 Headwater Partners I Llc System and method for wireless network offloading
US8589541B2 (en) 2009-01-28 2013-11-19 Headwater Partners I Llc Device-assisted services for protecting network capacity
US8391834B2 (en) 2009-01-28 2013-03-05 Headwater Partners I Llc Security techniques for device assisted services
US8340634B2 (en) 2009-01-28 2012-12-25 Headwater Partners I, Llc Enhanced roaming services and converged carrier networks with device assisted services and a proxy
US8406748B2 (en) 2009-01-28 2013-03-26 Headwater Partners I Llc Adaptive ambient services
US8924543B2 (en) 2009-01-28 2014-12-30 Headwater Partners I Llc Service design center for device assisted services
US8626115B2 (en) 2009-01-28 2014-01-07 Headwater Partners I Llc Wireless network service interfaces
US8725123B2 (en) 2008-06-05 2014-05-13 Headwater Partners I Llc Communications device with secure data path processing agents
US8548428B2 (en) 2009-01-28 2013-10-01 Headwater Partners I Llc Device group partitions and settlement platform
US8898293B2 (en) 2009-01-28 2014-11-25 Headwater Partners I Llc Service offer set publishing to device agent with on-device service selection
US8832777B2 (en) 2009-03-02 2014-09-09 Headwater Partners I Llc Adapting network policies based on device service processor configuration
US8667279B2 (en) 2008-07-01 2014-03-04 Sling Media, Inc. Systems and methods for securely place shifting media content
US20100001960A1 (en) * 2008-07-02 2010-01-07 Sling Media, Inc. Systems and methods for gestural interaction with user interface objects
CN102089753B (en) * 2008-07-11 2014-04-16 惠普开发有限公司 System and method for safely updating thin client operating system over a network
WO2010016057A2 (en) * 2008-08-04 2010-02-11 Red Bend Ltd. Performing a pre-update on a non volatile memory
EP2329367B1 (en) * 2008-08-04 2014-06-11 Red Bend Ltd. Performing an in-place update of an operating storage device
US8381310B2 (en) 2009-08-13 2013-02-19 Sling Media Pvt. Ltd. Systems, methods, and program applications for selectively restricting the placeshifting of copy protected digital media content
US8136108B2 (en) * 2008-09-03 2012-03-13 Computime, Ltd Updating firmware with multiple processors
US8667163B2 (en) 2008-09-08 2014-03-04 Sling Media Inc. Systems and methods for projecting images from a computer system
US20100064332A1 (en) * 2008-09-08 2010-03-11 Sling Media Inc. Systems and methods for presenting media content obtained from multiple sources
EP2327015B1 (en) 2008-09-26 2018-09-19 Sonova AG Wireless updating of hearing devices
CN101739262A (en) * 2008-11-11 2010-06-16 英业达股份有限公司 Firmware updating method and electronic device using same
US9191610B2 (en) 2008-11-26 2015-11-17 Sling Media Pvt Ltd. Systems and methods for creating logical media streams for media storage and playback
US20100153573A1 (en) * 2008-12-12 2010-06-17 At&T Intellectual Property I, L.P. Methods and Apparatus to Provide Content
US8892699B2 (en) * 2008-12-31 2014-11-18 Schneider Electric USA, Inc. Automatic firmware updates for intelligent electronic devices
US8769523B2 (en) * 2009-01-12 2014-07-01 Thomson Licensing Systems and methods for interrupting upgrades of content distribution systems
CN101778378B (en) * 2009-01-14 2013-03-13 英华达(上海)电子有限公司 Firmware node updating method, device and system
CN102282541B (en) * 2009-01-19 2014-06-25 瑞典爱立信有限公司 Mobile specialized software code update
US8438602B2 (en) 2009-01-26 2013-05-07 Sling Media Inc. Systems and methods for linking media content
US9578182B2 (en) 2009-01-28 2017-02-21 Headwater Partners I Llc Mobile device and service management
US9706061B2 (en) 2009-01-28 2017-07-11 Headwater Partners I Llc Service design center for device assisted services
US9858559B2 (en) 2009-01-28 2018-01-02 Headwater Research Llc Network service plan design
US10492102B2 (en) 2009-01-28 2019-11-26 Headwater Research Llc Intermediate networking devices
US10264138B2 (en) 2009-01-28 2019-04-16 Headwater Research Llc Mobile device and service management
US11218854B2 (en) 2009-01-28 2022-01-04 Headwater Research Llc Service plan design, user interfaces, application programming interfaces, and device management
US9351193B2 (en) 2009-01-28 2016-05-24 Headwater Partners I Llc Intermediate networking devices
US9980146B2 (en) 2009-01-28 2018-05-22 Headwater Research Llc Communications device with secure data path processing agents
US9253663B2 (en) 2009-01-28 2016-02-02 Headwater Partners I Llc Controlling mobile device communications on a roaming network based on device state
US9954975B2 (en) 2009-01-28 2018-04-24 Headwater Research Llc Enhanced curfew and protection associated with a device group
US9270559B2 (en) 2009-01-28 2016-02-23 Headwater Partners I Llc Service policy implementation for an end-user device having a control application or a proxy agent for routing an application traffic flow
US9565707B2 (en) 2009-01-28 2017-02-07 Headwater Partners I Llc Wireless end-user device with wireless data attribution to multiple personas
US9557889B2 (en) 2009-01-28 2017-01-31 Headwater Partners I Llc Service plan design, user interfaces, application programming interfaces, and device management
US9647918B2 (en) 2009-01-28 2017-05-09 Headwater Research Llc Mobile device and method attributing media services network usage to requesting application
US10715342B2 (en) 2009-01-28 2020-07-14 Headwater Research Llc Managing service user discovery and service launch object placement on a device
US11973804B2 (en) 2009-01-28 2024-04-30 Headwater Research Llc Network service plan design
US10783581B2 (en) 2009-01-28 2020-09-22 Headwater Research Llc Wireless end-user device providing ambient or sponsored services
US9955332B2 (en) 2009-01-28 2018-04-24 Headwater Research Llc Method for child wireless device activation to subscriber account of a master wireless device
US8793758B2 (en) 2009-01-28 2014-07-29 Headwater Partners I Llc Security, fraud detection, and fraud mitigation in device-assisted services systems
US9392462B2 (en) 2009-01-28 2016-07-12 Headwater Partners I Llc Mobile end-user device with agent limiting wireless data communication for specified background applications based on a stored policy
US10237757B2 (en) 2009-01-28 2019-03-19 Headwater Research Llc System and method for wireless network offloading
US8745191B2 (en) 2009-01-28 2014-06-03 Headwater Partners I Llc System and method for providing user notifications
US9755842B2 (en) 2009-01-28 2017-09-05 Headwater Research Llc Managing service user discovery and service launch object placement on a device
US10326800B2 (en) 2009-01-28 2019-06-18 Headwater Research Llc Wireless network service interfaces
US8893009B2 (en) 2009-01-28 2014-11-18 Headwater Partners I Llc End user device that secures an association of application to service policy with an application certificate check
US10484858B2 (en) 2009-01-28 2019-11-19 Headwater Research Llc Enhanced roaming services and converged carrier networks with device assisted services and a proxy
US10200541B2 (en) 2009-01-28 2019-02-05 Headwater Research Llc Wireless end-user device with divided user space/kernel space traffic policy system
US11985155B2 (en) 2009-01-28 2024-05-14 Headwater Research Llc Communications device with secure data path processing agents
US10779177B2 (en) 2009-01-28 2020-09-15 Headwater Research Llc Device group partitions and settlement platform
US10798252B2 (en) 2009-01-28 2020-10-06 Headwater Research Llc System and method for providing user notifications
US9572019B2 (en) 2009-01-28 2017-02-14 Headwater Partners LLC Service selection set published to device agent with on-device service selection
US10057775B2 (en) 2009-01-28 2018-08-21 Headwater Research Llc Virtualized policy and charging system
US10841839B2 (en) 2009-01-28 2020-11-17 Headwater Research Llc Security, fraud detection, and fraud mitigation in device-assisted services systems
US10248996B2 (en) 2009-01-28 2019-04-02 Headwater Research Llc Method for operating a wireless end-user device mobile payment agent
US10064055B2 (en) 2009-01-28 2018-08-28 Headwater Research Llc Security, fraud detection, and fraud mitigation in device-assisted services systems
US8171148B2 (en) 2009-04-17 2012-05-01 Sling Media, Inc. Systems and methods for establishing connections between devices communicating over a network
US8406431B2 (en) 2009-07-23 2013-03-26 Sling Media Pvt. Ltd. Adaptive gain control for digital audio samples in a media stream
US9479737B2 (en) 2009-08-06 2016-10-25 Echostar Technologies L.L.C. Systems and methods for event programming via a remote media player
US9565479B2 (en) * 2009-08-10 2017-02-07 Sling Media Pvt Ltd. Methods and apparatus for seeking within a media stream using scene detection
US8532472B2 (en) 2009-08-10 2013-09-10 Sling Media Pvt Ltd Methods and apparatus for fast seeking within a media stream buffer
US9525838B2 (en) 2009-08-10 2016-12-20 Sling Media Pvt. Ltd. Systems and methods for virtual remote control of streamed media
US8799408B2 (en) 2009-08-10 2014-08-05 Sling Media Pvt Ltd Localization systems and methods
US8966101B2 (en) * 2009-08-10 2015-02-24 Sling Media Pvt Ltd Systems and methods for updating firmware over a network
US9160974B2 (en) 2009-08-26 2015-10-13 Sling Media, Inc. Systems and methods for transcoding and place shifting media content
US8314893B2 (en) * 2009-08-28 2012-11-20 Sling Media Pvt. Ltd. Remote control and method for automatically adjusting the volume output of an audio device
CN101667133B (en) * 2009-09-30 2012-09-05 威盛电子股份有限公司 Method for updating firmware and chip updating firmware by using same
US20110113424A1 (en) * 2009-11-09 2011-05-12 Bank Of America Corporation Distribution Of Software Updates
US9015225B2 (en) 2009-11-16 2015-04-21 Echostar Technologies L.L.C. Systems and methods for delivering messages over a network
CN102073507B (en) * 2009-11-20 2014-06-04 华为技术有限公司 Method, device and system for calling widget
KR20110057037A (en) * 2009-11-23 2011-05-31 삼성전자주식회사 Display apparatus and control method of the same
US8799485B2 (en) 2009-12-18 2014-08-05 Sling Media, Inc. Methods and apparatus for establishing network connections using an inter-mediating device
US8893112B2 (en) * 2009-12-21 2014-11-18 Intel Corporation Providing software distribution and update services regardless of the state or physical location of an end point machine
US8626879B2 (en) * 2009-12-22 2014-01-07 Sling Media, Inc. Systems and methods for establishing network connections using local mediation services
US9178923B2 (en) 2009-12-23 2015-11-03 Echostar Technologies L.L.C. Systems and methods for remotely controlling a media server via a network
US9275054B2 (en) 2009-12-28 2016-03-01 Sling Media, Inc. Systems and methods for searching media content
US8856349B2 (en) 2010-02-05 2014-10-07 Sling Media Inc. Connection priority services for data communication between two devices
US20110264279A1 (en) * 2010-04-23 2011-10-27 Poth Robert J HVAC control
US20120117365A1 (en) * 2010-11-08 2012-05-10 Delta Electronics (Thailand) Public Co., Ltd. Firmware update method and system for micro-controller unit in power supply unit
US8924777B2 (en) * 2010-12-23 2014-12-30 Samsung Electronics Co., Ltd. Condensed FOTA backup
JP5688297B2 (en) * 2011-01-06 2015-03-25 任天堂株式会社 Communication system, information processing apparatus, communication program, and communication method
JP5675373B2 (en) 2011-01-06 2015-02-25 任天堂株式会社 Communication system, information processing apparatus, communication program, and communication method
CN102137154A (en) * 2011-02-23 2011-07-27 华为终端有限公司 Method and device for upgrading customer premise equipment (CPE)
US9154826B2 (en) 2011-04-06 2015-10-06 Headwater Partners Ii Llc Distributing content and service launch objects to mobile devices
US8595716B2 (en) 2011-04-06 2013-11-26 Robert Bosch Gmbh Failsafe firmware updates
WO2012148426A1 (en) * 2011-04-29 2012-11-01 Hewlett-Packard Development Company, L.P. Computer system firmware update
DE102012103654A1 (en) 2011-05-17 2012-11-22 International Business Machines Corp. Install and validate an application on a heavily used computer platform
KR20130029995A (en) * 2011-09-16 2013-03-26 삼성전자주식회사 Image forming apparatus and method for upgrading firmware
US8281119B1 (en) * 2011-11-22 2012-10-02 Google Inc. Separate normal firmware and developer firmware
JP2013161401A (en) * 2012-02-08 2013-08-19 Fujitsu Ltd Update controlling method for firmware, base station apparatus, communication system and program
TWI462017B (en) * 2012-02-24 2014-11-21 Wistron Corp Server deployment system and method for updating data
TWI486874B (en) 2012-03-27 2015-06-01 華擎科技股份有限公司 Electronic apparatus and booting method
US9471300B2 (en) 2012-07-26 2016-10-18 Utc Fire And Security America Corporation, Inc. Wireless firmware upgrades to an alarm security panel
US8594850B1 (en) * 2012-09-30 2013-11-26 Nest Labs, Inc. Updating control software on a network-connected HVAC controller
CN102880495A (en) * 2012-10-15 2013-01-16 华为终端有限公司 Mobile terminal and software upgrading method for same
CN103051674A (en) * 2012-11-23 2013-04-17 深圳市航天泰瑞捷电子有限公司 Method and device for remotely upgrading wireless communication module as well as handheld unit (HHU)
JP5803886B2 (en) * 2012-11-28 2015-11-04 コニカミノルタ株式会社 Image forming apparatus and program
US9413171B2 (en) * 2012-12-21 2016-08-09 Lutron Electronics Co., Inc. Network access coordination of load control devices
TWI502507B (en) * 2013-01-22 2015-10-01 Wistron Corp Method of updating battery firmware, portable electronics device and rechargeable battery module
WO2014159862A1 (en) 2013-03-14 2014-10-02 Headwater Partners I Llc Automated credential porting for mobile devices
US20140282478A1 (en) * 2013-03-15 2014-09-18 Silicon Graphics International Corp. Tcp server bootloader
US10064251B2 (en) 2013-03-15 2018-08-28 Cree, Inc. Updatable lighting fixtures and related components
KR20140122072A (en) * 2013-04-09 2014-10-17 삼성전자주식회사 Apparatus and method for updating application in electronic device
GB2513913A (en) * 2013-05-10 2014-11-12 Vetco Gray Controls Ltd A method of reducing downtime of production controls during upgrades
CN103559126B (en) * 2013-10-25 2016-08-24 深圳市欧珀通信软件有限公司 A kind of test the method for software version, device and computer terminal
US9830141B2 (en) * 2013-12-23 2017-11-28 Google Llc Providing a software update to computing devices on the same network
EP2889765A1 (en) * 2013-12-26 2015-07-01 Gemalto SA Method for updating a firmware on a low memory device
US10108187B2 (en) * 2014-03-14 2018-10-23 Omron Corporation Control device, control system, support device, and control-device maintenance management method
US20160027516A1 (en) * 2014-07-24 2016-01-28 Elster Solutions, Llc Efficient modification of data in non-volatile memory
CN104484200B (en) * 2014-12-09 2018-05-25 小米科技有限责任公司 The method and device upgraded to firmware
US9886264B2 (en) 2014-12-09 2018-02-06 Xiaomi Inc. Method and device for upgrading firmware
US9983888B2 (en) * 2015-05-04 2018-05-29 Verizon Patent And Licensing Inc. Predictive writing of bootable images to storage nodes in a cloud computing environment
US20170083254A1 (en) * 2015-09-19 2017-03-23 Qualcomm Incorporated Secure transaction management techniques
US10860310B2 (en) 2015-09-30 2020-12-08 Apple Inc. Software updating
CN105141784A (en) * 2015-10-14 2015-12-09 公安部第三研究所 Mobile phone evidence obtaining method based on recovery
FR3044124B1 (en) * 2015-11-20 2018-09-21 Sagemcom Energy & Telecom Sas METHOD FOR VERIFYING THE INTEGRITY OF A SET OF DATA
EP3255541A1 (en) * 2016-06-06 2017-12-13 Advanced Digital Broadcast S.A. A method and system for installing software
CN105898490A (en) * 2016-06-22 2016-08-24 青岛海信电器股份有限公司 Upgrading method for remote controller, television and remote controller
WO2018078406A1 (en) * 2016-10-31 2018-05-03 Harman Becker Automotive Systems Gmbh Software update mechanism for safety critical systems
JP6696414B2 (en) * 2016-12-05 2020-05-20 京セラドキュメントソリューションズ株式会社 Image processing device
US10051462B2 (en) * 2016-12-16 2018-08-14 T-Mobile Usa, Inc. Hybrid transport for installed service updates
CN107256161B (en) * 2017-06-13 2021-01-12 广发证券股份有限公司 Client upgrading method based on electron technology
EP3502875A1 (en) * 2017-12-22 2019-06-26 Siemens Aktiengesellschaft Seamless and safe upgrade of software intensive systems during operation
KR20190090634A (en) * 2018-01-25 2019-08-02 에스케이하이닉스 주식회사 Memory system and operating method thereof
TWI722269B (en) * 2018-01-26 2021-03-21 和碩聯合科技股份有限公司 Firmware updating method and electronic device using the same
CN108762795A (en) * 2018-04-10 2018-11-06 广东天波信息技术股份有限公司 A kind of method and device of dynamic load battery parameter
CN109101257A (en) * 2018-08-16 2018-12-28 珠海格力电器股份有限公司 A kind of circulation remote firmware update system and method for open upgrading authority
CN111124459B (en) * 2018-10-31 2023-04-07 阿里巴巴集团控股有限公司 Method and device for updating service logic of FPGA cloud server
KR20200076886A (en) * 2018-12-20 2020-06-30 에스케이하이닉스 주식회사 Storage device and operating method thereof
JP6699764B1 (en) * 2019-01-16 2020-05-27 株式会社富士通ゼネラル Air conditioning system
CN110333881B (en) * 2019-03-22 2022-09-16 中国电子科技集团公司第五十四研究所 On-orbit reconstruction method for load equipment software based on satellite-borne FPGA processing
CN112559002A (en) * 2019-09-26 2021-03-26 上海汽车集团股份有限公司 Vehicle application updating method and device and storage medium
GB201914047D0 (en) 2019-09-30 2019-11-13 Nordic Semiconductor Asa Bootloader updating
CN110765145B (en) * 2019-10-15 2022-08-09 益萃网络科技(中国)有限公司 Content item transmission method, device, equipment and storage medium
CN111506593B (en) * 2020-04-24 2023-07-18 东莞市精驰软件有限公司 Software system data upgrading method, device, equipment and storage medium
CN111666094B (en) * 2020-06-04 2024-04-05 深圳市稳先微电子有限公司 Real-time firmware upgrading system and method
CN113032021B (en) * 2021-02-24 2023-07-14 广州虎牙科技有限公司 System switching and data processing method, device, equipment and storage medium thereof
CN113848853A (en) * 2021-09-27 2021-12-28 一飞智控(天津)科技有限公司 Flight controller upgrading flow processing method, system, terminal, medium and application
US20230168877A1 (en) * 2021-11-29 2023-06-01 International Business Machines Corporation Upgrading operating software ("os") for devices in a multi-device ecosystem

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4332499A1 (en) * 1993-09-24 1995-03-30 Bosch Gmbh Robert Procedure for completely reprogramming an erasable, non-volatile memory
JP3187624B2 (en) * 1993-11-19 2001-07-11 京セラミタ株式会社 Updating the built-in program of a device with a communication function
US5568641A (en) * 1995-01-18 1996-10-22 Hewlett-Packard Company Powerfail durable flash EEPROM upgrade
DE19652629A1 (en) * 1996-12-18 1998-06-25 Philips Patentverwaltung Software exchange system
EP0898225A4 (en) * 1997-01-31 2000-07-05 Sony Corp Apparatus and method for processing information
US6023620A (en) * 1997-02-26 2000-02-08 Telefonaktiebolaget Lm Ecrisson Method for downloading control software to a cellular telephone
JP3950589B2 (en) * 1998-08-28 2007-08-01 キヤノン株式会社 Information processing apparatus, program update method, and storage medium
US6640334B1 (en) * 1999-09-27 2003-10-28 Nortel Networks Limited Method and apparatus of remotely updating firmware of a communication device
US6944854B2 (en) * 2000-11-30 2005-09-13 International Business Machines Corporation Method and apparatus for updating new versions of firmware in the background
US20030046524A1 (en) * 2001-08-30 2003-03-06 Zimmer Vincent J. Method for dynamically designating initialization modules as recovery code

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009512916A (en) * 2005-09-30 2009-03-26 エアバス・フランス Device for controlling apparatus and method thereof
JP2007193505A (en) * 2006-01-18 2007-08-02 Nec Infrontia Corp Device for integrating partition size variable firmware, and method for updating its firmware
JP4652240B2 (en) * 2006-01-18 2011-03-16 Necインフロンティア株式会社 Firmware update method for partition / size variable firmware embedded device
EP2345959A1 (en) 2010-01-15 2011-07-20 Fujitsu Limited An information processing device and a firmware updating method of the information processing device
US8607219B2 (en) 2010-01-15 2013-12-10 Fujitsu Limited Information processing device and a firmware updating method of the information processing device
JP2017504112A (en) * 2013-12-20 2017-02-02 ノルディック セミコンダクタ アーエスアーNordic Semiconductor ASA Updatable IC wireless device
US10296218B2 (en) 2016-08-10 2019-05-21 Fujitsu Limited Update control method, update control apparatus, and storage medium
CN112269585A (en) * 2020-11-04 2021-01-26 配天机器人技术有限公司 Joint driver firmware online updating method and device and joint driver
CN112269585B (en) * 2020-11-04 2022-11-25 配天机器人技术有限公司 Joint driver firmware online updating method and device and joint driver

Also Published As

Publication number Publication date
EP1461694A2 (en) 2004-09-29
MXPA04002527A (en) 2004-07-30
US20050055595A1 (en) 2005-03-10
WO2003025742A3 (en) 2004-06-10
CN1585926A (en) 2005-02-23
CA2357382A1 (en) 2003-03-17
CN100541430C (en) 2009-09-16
WO2003025742A2 (en) 2003-03-27

Similar Documents

Publication Publication Date Title
JP2005502971A (en) Method, apparatus and system for updating software
US7278002B2 (en) Method and system for reducing storage requirements for program code in a communication device
US7971199B1 (en) Mobile device with a self-updating update agent in a wireless network
US7082549B2 (en) Method for fault tolerant updating of an electronic device
US8578361B2 (en) Updating an electronic device with update agent code
US8037198B2 (en) Firmware upgrade for thin clients using one or more servers
US6330715B1 (en) Method and apparatus for managing software in a network system
ES2371995T3 (en) UPDATE OF THE FIRMWARE OF AN ELECTRONIC DEVICE.
US8839227B2 (en) Preventing overwrite of nonessential code during essential code update
US20040093597A1 (en) Firmware update system for facilitating firmware update in mobile handset related applications
JP2004514214A (en) System and method for updating and distributing information
US20050132351A1 (en) Updating electronic device software employing rollback
JP2003510678A (en) Method of organizing information stored in a non-volatile reprogrammable semiconductor memory
JPWO2003083647A1 (en) Software update method for communication terminal, communication terminal, and software update system
JP5395108B2 (en) Apparatus and method for upgrading firmware in embedded systems
CN1543107A (en) Method of singleboard Node B software download and upgrade
JPWO2009078285A1 (en) Wireless terminal, non-volatile memory of wireless terminal, and fail-safe storage method of diagnostic information
WO2022241918A1 (en) Remote upgrading method and apparatus for internet of things device
KR100986487B1 (en) Mobile handset with a fault tolerant update agent
CN111190628B (en) Base station upgrading method, device, equipment and storage medium
CA2498648A1 (en) Software update method, apparatus and system
AU2002325748A1 (en) Software update method, apparatus and system
KR100429903B1 (en) Method for updating images in home gateway system
JPH09190354A (en) Down line load system
CN1710858A (en) Electronic system and method capable of using general prompt-use communication protocol

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050916

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050916

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071218

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080520