(57)【要約】無線通信デバイスにおける永続データを更新するためのシステムおよび方法が提供される。本方法は、システムソフトウェアを実行するステップと、ランタイムエンジンを起動するステップと、動的命令セットおよび新しいコードセクションを有するパッチマネージャランタイム命令を受け取るステップと、不揮発性メモリ中のファイルシステムセクションにおいて更新された永続データを含むステップと、動的命令セットを処理するステップと、動的命令セットの処理に応答して、無線周波数（ＲＦ）調整データ、不揮発性システムおよびユーザ構成データ、リソースデータ、不揮発性システムおよびユーザアプリケーションデータ、および任意のデータを含む群から選択されたシステムソフトウェアにおける永続データを選択的に更新するステップと、更新された永続データを有するシステムソフトウェアを実行するステップとを含む。
2004537209.tif 000002
【特許請求の範囲】
【請求項１】
無線通信デバイスにおいて永続データを更新するための方法であって、
システムソフトウェアを実行するステップと、
ランタイムエンジンを起動するステップと、
動的命令セットを処理するステップと、
該動的命令セットの処理に応答して、該システムソフトウェアにおける永続データを選択的に更新するステップと
を包含する、方法。
【請求項２】
前記更新された永続データを有する該システムソフトウェアを実行するステップをさらに包含する、請求項１に記載の方法。
【請求項３】
前記システムソフトウェアにおける永続データを更新するステップは、無線周波数（ＲＦ）調整データ、不揮発性システムおよびユーザ構成データ、リソースデータ、不揮発性システムおよびユーザアプリケーションデータ、ならびに任意のデータを含む群から選択された永続データを更新するステップを包含する、請求項２に記載の方法。
【請求項４】
前記システムソフトウェアをシンボルライブラリに形成するステップであって、各シンボルライブラリは、関連した機能を有するシンボルを含む、ステップと、
コードセクションへの該シンボルライブラリを不揮発性メモリに配置するステップと、
更新された永続データを包む動的命令セットおよび新しいコードセクションを有するパッチマネージャランタイム命令を不揮発性メモリ中のファイルシステムセクションにおいて受け取るステップと
をさらに包含する、請求項３に記載の方法。
【請求項５】
動的命令セットを受け取るステップは、永続データ命令を受け取るステップを包含し、
コードセクションにシンボルライブラリを配置するステップは、第１のコードセクションにおける複数の永続データアイテムを配置するステップを包含し、
永続データを更新するステップは、該永続データ命令に応答して、該第１のコードセクションにおける永続データアイテムを更新された永続データアイテムと置換するステップを包含する、請求項４に記載の方法。
【請求項６】
不揮発性メモリ中のファイルシステムセクションにおいて更新された永続データを受け取るステップは、複数のデータアイテムを有する置換コードセクションを受け取るステップを包含し、
前記永続データ命令に応答して、前記第１のコードセクションにおける永続データアイテムを、更新された永続データアイテムと置換するステップは、該第１のコードセクションにおける該永続データアイテムを、該置換コードセクションからのデータアイテムと置換するステップを包含する、請求項５に記載の方法。
【請求項７】
永続データ命令を受け取るステップは、該永続データ命令が組み込まれた置換データアイテムを受け取るステップを包含し、
該永続データ命令に応答して、前記第１のコードセクションにおける永続データアイテムを更新された永続データアイテムと置換するステップは、該第１のコードセクションにおける該永続データアイテムを該永続データ命令に組み込まれたデータアイテムと置換するステップを包含する、請求項５に記載の方法。
【請求項８】
不揮発性メモリ中のファイルシステムセクションにおける更新された永続データを受け取るステップは、複数の制約データアイテムおよび条件付き永続データ命令を受け取るステップを包含し、
該条件付き永続データ命令に応答して、前記第１のコードセクションにおける永続データアイテムを更新されたデータアイテムと置換するステップは、
該条件付き永続データ命令を使用して、該第１のコードセクションにおける永続データアイテムを該制約データアイテムと比較するステップと、
比較に応答して、該第１のコードセクションにおける該永続データアイテムを置換するステップとを包含する、請求項５に記載の方法。
【請求項９】
不揮発性メモリ中のファイルシステムセクションにおいて、更新された永続データを受け取るステップは、複数のデータアイテムを有する制約コードセクションを受け取るステップを包含し、
比較に応答して、前記第１のコードセクションにおける該永続データアイテムを置換するステップは、該第１のコードセクションにおける永続データアイテムを、前記制約コードセクションからのデータアイテムと置換するステップを包含する、請求項８に記載の方法。
【請求項１０】
条件付き永続データ命令を受け取るステップは、該条件付き永続データ命令が組み込まれた制約データアイテムを受け取るステップを包含し、
比較に応答して、前記第１のコードセクションにおける前記永続データアイテムを置換するステップは、該第１のコードセクションにおける永続データアイテムを、該条件付き永続データ命令に組み込まれた制約データアイテムと置換するステップを包含する、請求項８に記載の方法。
【請求項１１】
比較に応答して、前記第１のコードセクションにおける前記永続データアイテムを置換するステップは、該第１のコードセクションにおける永続データアイテムを前記条件付き永続データ命令によって計算されたデータアイテムと置換するステップを包含する、請求項８に記載の方法。
【請求項１２】
比較に応答して、前記第１のコードセクションにおける永続データアイテムを置換するステップは、
前記条件付き永続データ命令によって実行された計算におけるオペランドとして前記制約データアイテムを使用して、データアイテムの積を作成するステップと、
該第１のコードセクションにおける永続データアイテムを、該データアイテムの積と置換するステップと
を包含する、請求項８に記載の方法。
【請求項１３】
不揮発性メモリ中のファイルシステムセクションにおける更新された永続データを受け取るステップは、複数のデータアイテムアドレスを有するディレクトリコードセクションを受け取るステップを包含し、
前記永続データ命令に応答して、前記第１のコードセクションにおける永続データアイテムを、更新された永続データアイテムと置換するステップは、
ディレクトリコードセクションデータアイテムアドレスに応答して置換データアイテムを位置付けるステップと、
該第１のコードセクションにおける該永続データアイテムを、該位置付けられた置換データアイテムと置換するステップと
を包含する、請求項５に記載の方法。
【請求項１４】
不揮発性メモリ中のファイルシステムセクションにおいて更新された永続データを受け取るステップは、複数の制約アドレスを有するディレクトリコードセクションを受け取るステップを包含し、
前記永続データ命令に応答して、前記第１のコードセクションにおける永続データアイテムを永続データアイテムと置換するステップは、
該ディレクトリコードセクションデータにおける該制約アドレスを用いて、制約データアイテムを位置付けるステップと、
前記条件付き永続データ命令を用いて、該第１のコードセクションにおける該永続データアイテムを制約と比較するステップと、
比較に応答して、該第１のコードセクションにおける該永続データアイテムを置換するステップと
を包含する、請求項５に記載の方法。
【請求項１５】
更新された永続データを受け取るステップは、エアリンク、無線通信デバイスキーボード、インストール可能なメモリモジュール、赤外線、論理ポート、およびＲＦハードラインインターフェースを含む群から選択されたインターフェースを介して、更新された永続データを受け取るステップを包含する、請求項５に記載の方法。
【請求項１６】
更新された永続データを受け取るステップは、少なくとも１つの更新されたＲＦ調整データアイテムを有するパッチマネージャランタイム命令を受け取るステップを包含し、
シンボルライブラリをコードセクションに配置するステップは、第１のコードセクションにおけるＲＦ調整データアイテムを配置するステップを包含し、
該システムソフトウェアを実行するステップは、周波数調整、増幅器バイアス、減衰器調整、および温度調整を含む群から選択された機能に対する該第１のコードセクションからのＲＦ調整データを用いるステップを包含し、
該第１のコードセクションにおけるＲＦ調整データアイテムを置換する場合、該システムソフトウェアにおける、該永続データを更新するステップは、前記パッチマネージャランタイム命令における該更新されたＲＦ調整データアイテムを参照するステップを包含する、請求項５に記載の方法。
【請求項１７】
更新された永続データを受け取るステップは、少なくとも１つの更新された不揮発性システムおよびユーザ構成データアイテムを有するパッチマネージャランタイム命令を受け取るステップを包含し、
シンボルライブラリをコードセクションに配置するステップは、第１のコードセクションにおける不揮発性システムおよびユーザ構成データアイテムを配置するステップを包含し、
該システムソフトウェアを実行するステップは、前記無線デバイスのホーム領域を識別し、許容可能なローミング領域を識別し、該無線デバイスがデジタルおよびアナログモードで演算するかどうか識別し、該無線デバイスの好適な演算モードを識別するためにシステム構成ファイルを含む群から選択された機能に対して該第１のコードセクションからの前記不揮発性システムおよびユーザ構成データアイテムを使用するステップを包含し、
該第２のコードセクションにおける不揮発性システムおよびユーザ構成データアイテムを置換する場合、該システムソフトウェアにおける該永続データを更新するステップは、パッチマネージャランタイム命令における該更新された不揮発性システムおよびユーザ構成データアイテムを参照するステップを包含する、請求項５に記載の方法。
【請求項１８】
更新された永続データを受け取るステップは、少なくとも１つの更新された不揮発性システムおよびユーザアプリケーションデータアイテムを有するパッチマネージャランタイム命令を受け取るステップを包含し、
シンボルライブラリをコードセクションに配置するステップは、第１のコードセクションにおける不揮発性システムおよびユーザアプリケーションデータアイテムを包含し、
該システムソフトウェアを実行するステップは、電話帳ファイルを管理することおよびカレンダースケジューリングファイルを管理することを含む群から選択された機能に対する該第１のコードセクションからの該不揮発性システムおよびユーザアプリケーションデータアイテムを用いるステップを包含し、
該第１のコードセクションにおける不揮発性システムおよびユーザアプリケーションデータアイテムを置換する場合、該システムソフトウェアにおける該永続データを更新するステップは、該パッチマネージャランタイム命令における該更新された不揮発性システムおよびユーザアプリケーションデータアイテムを参照するステップを包含する、請求項５に記載の方法。
【請求項１９】
新しいコードセクションを受け取るステップは、少なくとも１つの更新されたリソースデータアイテムを有するパッチマネージャランタイム命令を受け取るステップを包含し、
シンボルライブラリをコードセクションに配置するステップは、第１のコードセクションにおけるリソースデータアイテムを配置するステップを包含し、
前記システムソフトウェアを実行するステップは、ユーザインターフェース対話、ユーザインターフェースメニュー、およびユーザインターフェース言語を含む群から選択された機能に対して第１のコードセクションからの該リソースデータを使用するステップを包含し、
該第１のコードセクションにおけるリソースデータアイテムを置換する場合、該システムソフトウェアにおける永続データを更新するステップは、該パッチマネージャランタイム命令における該更新されたリソースデータアイテムを参照するステップを包含する、請求項５に記載の方法。
【請求項２０】
無線通信デバイスにおいて、永続データを更新するための方法は、
システムソフトウェアを実行するステップと、
ランタイムエンジンを起動するステップと、
不揮発性メモリ中のファイルシステムセクションにおいて、更新された永続データを包含する動的命令セットおよび新しいコードセクションを有するパッチマネージャランタイム命令を受け取るステップと、
動的命令セットを処理するステップと、
該動的命令セットの処理に応答して、無線周波数（ＲＦ）調整データ、不揮発性システムおよびユーザ構成データ、リソースデータ、不揮発性システムおよびユーザアプリケーションデータ、ならびに任意のデータを含む群から選択されたシステムソフトウェアにおける永続データを選択的に更新するステップと、
該更新された永続データを有する該システムソフトウェアを実行するステップと
を包含する、方法。
【請求項２１】
無線通信デバイスにおいて、永続データを更新するためのシステムは、
不揮発性メモリ永久格納装置に格納されたコードセクションに区分された実行可能なシステムソフトウェアおよびシステムデータと、
該システムソフトウェアにおける永続データを選択的に更新するための動的命令セットと、
該動的命令セットを処理するためのランタイムエンジンと
を含む、システム。
【請求項２２】
前記実行可能なシステムソフトウェアおよびシステムデータは、前記動的命令セットの処理に応答して更新される、請求項２１に記載のシステム。
【請求項２３】
前記実行可能なシステムソフトウェアは、シンボルライブラリに形成され、各シンボルライブラリは、関連する機能を有するシンボルを含み、コード格納セクションにおいて格納されたコードセクションに配置され、
エアリンクインターフェースと、
該エアリンクインターフェースを介してパッチマネージャランタイム命令（ＰＭＲＴＩ）を受け取る不揮発性永久メモリのファイルシステムセクションであって、該パッチマネージャランタイム命令は、動的命令セットおよび新しいコードセクションを含む、ファイルシステムセクションと
をさらに含む、請求項２２に記載のシステム。
【請求項２４】
前記動的命令セットは、無線周波数（ＲＦ）調整データ、不揮発性システムおよびユーザ構成データ、リソースデータ、不揮発性システムおよびユーザアプリケーションデータ、ならびに任意のデータを含む群から選択された前記システムソフトウェアにおける永続データを更新する、請求項２３に記載のシステム。
【請求項２５】
前記システムソフトウェアは、シンボルライブラリに形成され、各シンボルライブラリは、関連する機能を有するシンボルを含み、不揮発性永久メモリ内のコードセクションに配置され、
前記システムファイルセクションは、更新される永続データを含む、動的命令セットおよび新しいコードセクションを受け取る、請求項２４に記載のシステム。
【請求項２６】
前記ファイルシステムセクションは、永続データ命令を含む動的命令セットを受け取り、
前記システムソフトウェアは、第１のコードセクションに複数の永続データアイテムを含み、
該永続データ命令は、該第１のコードセクションにおける永続データアイテムを更新される永続データアイテムと置換する、請求項２５に記載のシステム。
【請求項２７】
前記ファイルシステムセクションは、複数のデータアイテムを有する置換コードセクションを受け取り、
前記永続データ命令は、前記第１のコードセクションにおける前記永続データアイテムを前記置換コードセクションからのデータアイテムと置換する、請求項２６に記載のシステム。
【請求項２８】
前記ファイルシステムセクションは、前記永続データ命令が組み込まれた置換データアイテムを受け取り、
該永続データ命令は、前記第１のコードセクションにおける前記永続データアイテムを該永続データ命令に組み込まれた該データアイテムと置換する、請求項２６に記載のシステム。
【請求項２９】
前記ファイルシステムセクションは、複数の制約データアイテムおよび条件付き永続データ命令を受け取り、
該条件付き永続データ命令は、前記第１のコードセクションにおける前記永続データアイテムを該制約データアイテムと比較し、該第１のコードセクションにおける該永続データアイテムを該制約データアイテムと比較することに応答して、該第１のコードセクションにおける該永続データアイテムを置換する、請求項２６に記載のシステム。
【請求項３０】
前記ファイルシステムセクションは、複数のデータアイテムを有する制約コードセクションを受け取り、
前記第１のコードセクションにおける前記永続データアイテムを前記制約データアイテムと比較することに応答して、条件付き永続データ命令は、該第１のコードセクションにおける永続データアイテムを該制約コードセクションからのデータアイテムと置換する、請求項２９に記載のシステム。
【請求項３１】
前記ファイルシステムセクションは、前記条件付き永続データ命令が組み込まれた制約データアイテムを受け取り、
前記第１のコードセクションにおける永続データアイテムを該制約データアイテムと比較することに応答して、該第１のコードセクションにおける永続データアイテムを該条件付き永続データ命令に組み込まれた制約データアイテムと置換する、請求項２９に記載のシステム。
【請求項３２】
前記第１のコードセクションにおける前記永続データアイテムを前記制約データアイテムと比較することに応答して、前記条件付き永続データ命令は、前記第１のコードセクションにおける永続データアイテムを該条件付き永続データ命令によって計算されたデータアイテムと置換する、請求項２９に記載のシステム。
【請求項３３】
前記条件付き永続データ命令は、データアイテムの積を生成する計算の際に、オペランドとして前記制約データアイテムを使用して、前記第１のコードセクションにおける永続データアイテムを該データアイテムの積と置換する、請求項２９に記載のシステム。
【請求項３４】
前記ファイルシステムセクションは、複数のデータアイテムアドレスを有するディレクトリコードセクションを受け取り、
前記永続データ命令は、ディレクトリコードセクションデータアイテムアドレスに応答して、置換データアイテムを位置付け、前記第１のコードセクションにおける前記永続データアイテムを該位置付けられた置換データアイテムと置換する、請求項２６に記載のシステム。
【請求項３５】
前記ファイルシステムセクションは、複数の制約アドレスを有する条件付き永続データ命令およびディレクトリコードセクションを受け取り、
該条件付き永続データ命令は、該ディレクトリコードセクションにおける該制約アドレスを用いて制約データアイテムを位置付け、前記第１のコードセクションにおける前記永続データアイテムを該位置付けられた制約と比較し、比較に応答して、該第１のコードセクションにおける該永続データアイテムを置換する、請求項２６に記載のシステム。
【請求項３６】
無線通信デバイスキーボード、インストール可能なメモリモジュール、赤外線、論理ポート、およびＲＦハードラインインターフェースを含む群から選択されたインターフェースをさらに包含し、
前記ファイルシステムセクションは、エアリンク、無線通信デバイスキーボード、インストール可能なメモリモジュール、赤外線、論理ポート、およびＲＦハードラインインターフェースを含む群から選択されたインターフェースを介して更新された永続データを受け取る、請求項２６に記載のシステム。
【請求項３７】
前記ファイルシステムセクションは、少なくとも１つの更新されるＲＦ調整データアイテムを有するパッチマネージャランタイム命令を受け取り、
前記システムソフトウェアは、周波数調整、増幅器バイアス、減衰器調整、および温度調整を含む群から選択された機能に対して第１のコードセクションにおいて配置されたＲＦ調整データアイテムを包含し、
該第１のコードセクションにおけるＲＦ調整データアイテムを置換する場合、該永続データ命令は、パッチマネージャランタイム命令における該更新されるＲＦ調整データアイテムを参照する、請求項２６に記載のシステム。
【請求項３８】
前記ファイルシステムセクションは、少なくとも１つの更新される不揮発性システムおよびユーザ構成データアイテムを有するパッチマネージャランタイム命令を受け取り、
前記システムソフトウェアは、前記無線デバイスのホーム領域を識別し、許容可能なローミング領域を識別し、該無線デバイスがデジタルおよびアナログモードで演算するかどうか識別し、そして該無線デバイスの好適な演算モードを識別するためにシステム構成ファイルを含む群から選択された機能に対して第１のコードセクションに配置された不揮発性システムおよびユーザ構成データアイテムを含み、
前記第１のコードセクションにおける不揮発性システムおよびユーザ構成データアイテムを置換する場合、該パッチマネージャランタイム命令における該更新される不揮発性システムおよびユーザ構成データアイテムを参照する、請求項２６に記載のシステム。
【請求項３９】
前記ファイルシステムセクションは、少なくとも１つの更新される不揮発性システムおよびユーザアプリケーションデータアイテムを有するパッチマネージャランタイム命令を受け取り、
前記システムソフトウェアは、電話帳ファイルの管理およびカレンダースケジューリングファイルの管理を含む群から選択された機能に対して、第１のコードセクションに配置された不揮発性システムおよびユーザアプリケーションデータアイテムを含み、
該第１のコードセクションにおける不揮発性システムおよびユーザアプリケーションデータアイテムを置換する場合、前記永続データ命令は、該パッチマネージャランタイム命令における該更新される不揮発性システムおよびユーザアプリケーションデータアイテムを参照する、請求項２６に記載のシステム。
【請求項４０】
前記ファイルシステムセクションは、少なくとも１つの更新されたリソースデータアイテムを有するパッチマネージャランタイム命令を受け取り、
前記システムソフトウェアは、ユーザインターフェース対話、ユーザインターフェースメニュー、およびユーザインターフェース言語を含む群から選択された機能に対して第１のコードセクションに配置されたリソースデータアイテムを包含し、
該第１のコードセクションにおけるリソースデータアイテムを置換する場合、該永続データ命令は、該パッチマネージャランタイム命令における更新されたリソースデータアイテムを参照する、請求項２６に記載のシステム。
【請求項４１】
無線通信デバイスにおいて、永続データを更新するためのシステムであって、
不揮発性メモリ永久格納装置に格納されたコードセクションに分割され、シンボルライブラリに形成された実行可能なシステムソフトウェアおよびシステムデータであって、各シンボルライブラリは、コード格納セクションに格納されたコードセクションに配置された、関連した機能を有するシンボルを含む、実行可能なシステムソフトウェアおよびシステムデータと、
無線周波数（ＲＦ）調整データ、不揮発性システムおよびユーザ構成データ、リソースデータ、不揮発性システムおよびユーザアプリケーションデータ、ならびに任意のデータを含む群から選択されたシステムソフトウェアにおける永続データを選択的に更新する動的命令セットと、
該動的命令セットを処理するためのランタイムエンジンと、
エアリンクインターフェースと、
該エアリンクインターフェースを介してパッチマネージャランタイム命令（ＰＭＲＴＩ）を受け取る不揮発性永続メモリのファイルシステムセクションであって、該パッチマネージャランタイム命令は、永続データ命令および新しいコードセクションを含み、
該実行可能なシステムソフトウェアおよびシステムデータは、該動的命令セットの処理に応答して更新される、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
（１．発明の分野）
本出願は、２００１年８月１０日に出願され、「Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｅｘｅｃｕｔｉｎｇ  Ｗｉｒｅｌｅｓｓ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｄｅｖｉｃｅ  Ｄｙｎａｍｉｃ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔｓ」と題された米国特許出願第０９／９２７，１３１号に対する優先権を主張し、２００１年７月２６日に出願され、「Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｆｉｅｌｄ  Ｄｏｗｎｌｏａｄｉｎｇ  ａ  Ｗｉｒｅｌｅｓｓ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｄｅｖｉｃｅ  Ｓｏｆｔｗａｒｅ  Ｃｏｄｅ  Ｓｅｃｔｉｏｎ」と題された米国特許出願第０９／９１６，９００に関連し、そして２００１年７月２６日に出願され、「Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｃｏｍｐａｃｔｉｎｇ  Ｆｉｅｌｄ  Ｕｐｇｒａｄｅａｂｌｅ  Ｗｉｒｅｌｅｓｓ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｄｅｖｉｃｅ  Ｓｏｆｔｗａｒｅ  Ｃｏｄｅ  Ｓｅｃｔｉｏｎｓ」と題された米国特許出願第０９／９１６９，４６０号に関連し、これらの全ては本明細書中で参考として援用される。
【０００２】
本発明は、概して無線通信デバイスに関し、より詳細には、無線通信デバイスのシステムソフトウェアにおける永続データアイテムを更新するために動的命令セットを使用するシステムおよび方法に関する。
【背景技術】
【０００３】
（２．関連技術の説明）
現場に既に存在するフォンに対してソフトウェア更新をリリースすることは珍しくはない。これらの更新は、一度フォンが製造され公に流通されてからソフトウェアに見つけられた問題に関連し得る。ある更新には、サービスプロバイダから供給されたフォンの新機能の用途またはサービスが含まれ得る。さらに他の更新は、地域的な問題、またはある通信事業者に関連する問題に関係し得る。例えば、ある地域では、通信事業者のネットワークレイアウトが、より不適切なチャンネル検索、より不適切なコールの終了、より不適切なオーディオまたはこれと同等の予期していない演算をハンドセットに示させる、ハンドセットにエアリンクインターフェース条件を課し得る。
【０００４】
このような更新に対する従来のアプローチは、最も近い通信事業者小売店／サービスアウトレットまたは製造業者に、本明細書中で無線デバイス、フォン、電話、またはハンドセットと呼ばれている無線通信デバイスおよびその変更を処理するためにリコールすることであった。このような更新に含まれるコストは、広範囲に渡り、最終結果へ食い込む。さらに、顧客は、不便であり、いらいらさせられがちである。多くの場合、実際的なソリューションは、顧客に新しいフォンを提供することである。
【０００５】
無線デバイスは、多くの異なるカスタマーアプリケーションに対して異なる加入者サービスと共に多くの環境において使用される。従って、無線デバイスのソフトウェアがサービスを改善するようにアップグレードされても、アップグレードは、全てのユーザに対して均一な改良を提供する可能性がある。
【０００６】
顧客に不便さなく、無線通信デバイスソフトウェアが安価でアップグレードされ得れば、より有利である。
【０００７】
無線通信デバイスソフトウェアが、顧客が重要な期間のフォンの利用を失うことなく、アップグレードされ得れば、より有利である。
【０００８】
無線通信デバイスソフトウェアが、最小の専門家のサービス時間で、または、サービス設備へデバイスを送る必要なく更新され得れば、より有利である。
【０００９】
無線デバイスシステムソフトウェアがコードセクションに分割する場合、有利であり、それにより、システムソフトウェアを更新する際に、システムソフトウェアの特定のコードセクションのみが置換される必要があり、これらのコードセクションが、エアリンクを介して無線デバイスに通信され得る場合、有利である。
【００１０】
無線デバイスがシステムソフトウェア永続データの現場更新において支援する動的にロードされた命令のセットと共に演算し得る場合、有利である。この永続データがこの必要性に適応するために、または特定のユーザの問題を取り扱う場合、有利である。
【発明の開示】
【課題を解決するための手段】
【００１１】
（発明の要旨）
無線通信デバイスソフトウェア更新は、顧客にできる限り最良の製品およびユーザ経験を与える。本商業界の高価な部分とは、ソフトウェアを更新するためにハンドセットのリコールを含むことである。これらの更新は、フォンが製造された後に、ユーザに付加的なサービスを提供し、フォンの利用中に発見された問題を処理するために必要とし得る。本発明は、エアリンクインターフェースを介して、現場のハンドセットソフトウェアを実際に更新することを可能にする。より詳細には、本発明は、無線通信デバイスを動的な命令のセットを実行することを可能にする。これらの動的な命令のセットは、無線デバイスがシステムソフトウェアおよびシステムデータを「インテリジェントに」または条件付きにシステムソフトウェアおよびシステムデータを更新することを可能にする。さらに、動的命令のセットは、無線デバイスがシステムソフトウェアによって使用される永続データアイテムを無線デバイスが選択的に変化させることを可能にする。
【００１２】
従って、無線通信デバイスにおける永続データを更新するための方法が提供される。本方法は、システムソフトウェアを実行するステップと、ランタイムエンジンを起動するステップと、不揮発性メモリ中のファイルシステムセクションにおいて更新された永続データを含む、新しいコードセクションおよび動的命令セットを有するパッチマネージャランタイム命令を受け取るステップと、動的命令セットを処理するステップと、動的命令セットの処理に応答して、無線周波数（ＲＦ）調整データ、不揮発性システムおよびユーザ構成データ、リソースデータ、不揮発性システムおよびアプリケーションデータ、ならびに任意のデータを含む群から選択されたシステムソフトウェアにおける永続データを選択的に更新するステップと、更新された永続データと共にシステムソフトウェアを実行するステップとを含む。
【００１３】
上述の永続データ更新方法の詳細および無線通信デバイスにおける永続データを更新するためのシステムが以下に提供される。
【発明を実施するための最良の形態】
【００１４】
（好適な実施形態の詳細な説明）
以下の詳細な説明のいくつかの部分は、無線デバイスマイクロプロセッサまたはメモリ内のデータビットにおける演算の手順、ステップ、ロジックブロック、コード、処理、および、他のシンボリックな表現ついて示される。これらの記述および表現は、データ処理技術の当業者によって利用される手段であって、これらは、当該の別の技術者に仕事の実質を最も効果的に提供するためのものである。手順、マイクロプロセッサに実行されるステップ、データアイテム、アプリケーション、ロジックブロック、プロセス等は、本明細書中において、および一般的に、所望の結果を導くステップまたは命令の一貫したシーケンスであると考えられる。本ステップは、物理量（ｑｕａｎｔｉｔｙ）の物理的操作を要求するステップである。通常、必須ではないが、これらの量は、マイクロプロセッサに基づく無線デバイスにおいて、格納、伝達、結合、比較、およびそうでなければ操作され得る電気または磁気信号の形式を取り得る。これらの信号をビット、値、エレメント、シンボル、文字、用語、または数字等として示すことは、原則的に共通の用法で、時には便利であることが証明されている。メモリ等の物理的デバイスについて言及される場合、それらは、バスまたは他の電気接続を介して他の物理的デバイスに接続される。これらの物理的デバイスは、論理的プロセスまたはアプリケーションと相互作用し、従って、論理的演算に「接続される」と考えられ得る。例えば、メモリはさらなる論理演算に対するコードを格納またはアクセスしてもよいし、アプリケーションは、実行のためにメモリからコード選択を呼び出してもよい。さらに、ソフトウエアアプリケーションは、データアイテムを使用する命令を実行し得る。
【００１５】
しかし、尚、全てのこれらおよび同様の用語は、適切な物理量に関連すべきであり、単にこれらの量に適用される便利なラベルにすぎない。他に特別に述べられない限り、以下の説明から明らかなように、本発明を通して、「処理」「接続」「翻訳」「表示」「プロンプト」「判定」「表示」または「認識」等の用語を利用した説明は、コンピュータシステムのレジスタおよびメモリ内の物理（電気的）量として示されるデータを無線デバイスメモリまたはレジスタまたは他のこのような情報格納デバイス、送信デバイスまたは表示デバイス内の物理量として同様に示される他のデータへ操作して変換する、無線デバイスマイクロプロセッサシステムのアクションおよびプロセスを示す。
【００１６】
図１は、無線デバイスソフトウェアメンテナンスシステム全体１００の概略的なブロック図である。本発明のシステムソフトウェアの組織化は、以下に詳細に示され、ソフトウェアメンテナンスシステムの一般的概要１００に従う。一般的なシステム１００は、システムソフトウェア更新および命令セット（プログラム）を送達するステップ、および送達されたソフトウェアを無線デバイスにインストールするステップのプロセスについて記述する。命令セットまたは動的命令セットとして一般的に公知である、システムソフトウェア更新またはパッチマネージャランタイム命令（ＰＭＲＩＳ）は、ハンドセットの製造業者によって作成される。システムソフトウェアは、シンボルライブラリに組織化される。シンボルライブラリは、コードセクション内に配置される。シンボルライブラリが更新される場合、ソフトウェア更新１０２は、１つ以上のコードセクションとしてトランスポートされる。ソフトウェア更新は、現場の無線デバイス（無線通信デバイス１０４はその代表である）にブロードキャストされるか、または、公知の従来の空中でかつ、データまたはメッセージトランスポートプロトコルを利用して基地局１０６から別々の通信で送信される。本発明は、無線通信デバイスが、システムソフトウェアおよびＰＭＲＴＩ更新を受け取る目的のために、任意の利用可能な空中を介した（ｏｖｅｒ−ｔｈｅ−ａｉｒ）トランスポートプロトコルを処理するように容易に修正され得るので、任意の特定のトランスポーテーションフォーマットに制限されない。
【００１７】
システムソフトウェアは、異なるサブシステムのコレクションとみなされ得る。コードオブジェクトは、これらの抽象的なサブシステムの１つにしっかりと接続され得、結果のコレクションは、シンボルライブラリとしてラベル付けされ得る。これは、コードベースの論理的ブレークダウンを提供し、ソフトウェアパッチおよび修正は、これらのシンボルライブラリに関連し得る。多くの場合、単一の更新は、１つまたは多くとも２つのシンボルライブラリと関連する。残りのコードベース、すなわち他のシンボルライブラリは、変化しないままである。
【００１８】
シンボルライブラリの概念は、コードおよび定数を扱うためのメカニズムを提供する。一方、リードライト（ＲＷ）データは、全てのライブラリのためのＲＡＭベースのデータを含む固有の個別ＲＷライブラリへ適合する。
【００１９】
無線デバイス１０４によって受け取られると、トランスポートされたコードセクションは、処理されなければならない。この無線デバイスは、不揮発性メモリ１０８の固有のコードセクションを上書きする。不揮発性メモリ１０８は、ファイルシステムセクション（ＦＳＳ）１１０およびコード格納セクション１１２を含む。コードセクションは、通常、ＦＳＳ１１０の占有率を最小化するためにトランスポートの前に圧縮される。多くの場合、更新されたコードセクションは、ＲＷデータを伴い、ＲＷデータは、各シンボルライブラリのための全ＲＷデータを含む別の種類のシンボルライブラリである。システムソフトウェアは実行時にランダムアクセス揮発性リード−ライトメモリ１１４にロードされるが、ＲＷデータは、常に不揮発性メモリ１０８に格納される必要があり、そのため、ＲＷデータは、無線デバイスがリセットされる度に、ランダムアクセス揮発性リード−ライトメモリ１１４にロードされ得る。これは、初回のＲＷデータのランダムアクセス揮発性リード−ライトメモリへのロードを含む。以下により詳細に説明されるように、ＲＷデータは、通常、パッチマネージャコードセクションに配置される。
【００２０】
システム１００は、仮想テーブルの概念を含む。このようなテーブルを用いて、あるコードセクションのシンボルライブラリは、システムソフトウェアの他の部分（他のコードセクション）を壊す（置き換える）ことなく、パッチされる（置き換えられる）。仮想テーブルは、効率性のために、ランダムアクセス揮発性リード−ライトメモリ１１４から実行する。コードセクションアドレステーブルおよびシンボルオフセットアドレステーブルは、仮想テーブルである。
【００２１】
更新されたコードセクションは、無線デバイス１０４によって受信され、ＦＳＳ１１０に格納される。無線デバイスユーザインターフェイス（ＵＩ）は、通常、新しいソフトウェアが利用可能であることをユーザに通知する。ＵＩプロンプトに応答して、ユーザは、通知を確認し、かつ、パッチまたは更新演算をシグナリングする。もしくは、更新演算が自動的に実行される。無線デバイスは、更新プロセスが実行される時、標準的な通信タスクを実行不可能であり得る。パッチマネージャ更新セクションは、さらにランダムアクセス揮発性リード−ライトメモリ１１４へロードされる不揮発性リード−ライトドライバシンボルライブラリを含み得る。不揮発性リード−ライトドライバシンボルライブラリは、コードセクションを更新されるべきコードセクションで上書きさせる。パッチマネージャコードセクションは、リード−ライトデータ、コードセクションアドレステーブル、およびシンボルオフセットアドレステーブル、ならびに、シンボルアクセサコードおよびシンボルアクセサコードアドレス（以下に説明される）を含む。このデータの一部分は、更新されたコードセクションが導入される時に無効であり、更新されたパッチマネージャコードセクションは、更新されたコードセクションに対して有効なリード−ライトデータ、コードセクションアドレステーブル、およびシンボルオフセットアドレステーブルを含む。一旦、更新されたコードセクションが、コード格納媒体１１２内にロードされると、無線デバイスはリセットされる。リセット演算に続いて、無線デバイスは、更新されたシステムソフトウェアを実行し得る。尚、パッチマネージャコードセクションは、上述されていない他のシンボルライブラリを含み得る。これらの他のシンボルライブラリは、リード−ライト揮発性メモリ１１４へロードされる必要がない。
【００２２】
図２は、エアリンクインターフェースを介する命令セットのインストールをハイライトする、ソフトウェアメンテナンスシステム１００の概略的なブロック図である。更新システムソフトウェアコードセクションに加えて、メンテナンスシステム１００は、本明細書中でパッチマネージャランタイム命令（ＰＭＲＴＩ）と呼ばれる、動的命令セット、プログラム、またはパッチマネージャ命令セット（ＰＭＩＳ）をダウンロードおよびインストールし得る。ＰＭＲＴＩコードセクション２００は、上述のシステムソフトウェアコードセクションと同一の態様で無線デバイス１０４にトランスポートされる。ＰＭＲＴＩコードセクションは、最初にＦＳＳ１１０に格納される。ＰＭＲＴＩコードセクションは、通常、コンパイルされたハンドセットへの命令として可視化され得るバイナリフィアルである。ＰＭＲＴＩコードセクションは、基本数学的演算の性能および条件付きで実行される演算の性能を提供するのに十分に包括的である。例えば、ＲＦ調整ＰＭＲＴＩは、以下の演算を実行し得る。
【００２３】
ＩＦ  ＲＦ  ＣＡＬ  ＩＴＥＭ  ＩＳ  ＬＥＳＳ  ＴＨＡＮ  Ｘ
ＥＸＥＣＵＴＥ  ＩＮＳＴＲＵＣＴＩＯＮ
ＥＬＳＥ
ＥＸＥＣＵＴＥ  ＩＮＳＴＲＵＣＴＩＯＮ
ＰＭＲＴＩは、加算、減算、乗算、および除算等の基本数学的演算をサポートし得る。システムソフトウェアコードセクションと共に、ＰＭＲＴＩコードセクションは、ＵＩプロンプトに応答してロードされ得、無線デバイスは、ＰＭＲＴＩがコード格納セクション１１２へロードされた後、リセットされなくてはならない。その後、ＰＭＲＴＩセクションは、実行され得る。ＰＭＲＴＩコードセクションが任意の仮想テーブルまたはリード−ライトデータと関連する場合、更新されたパッチマネージャコードセクションは、コード格納セクション１１２におけるインストールのためにＰＭＲＴＩと共にトランスポートされる。もしくは、ＰＭＲＴＩは、保持されて、ＦＳＳ１１０から処理され得る。ハンドセット１０４は、ＰＭＲＴＩセクションにおける全ての命令を実行した後、ＰＭＲＴＩセクションは、ＦＳＳ１１０から削除され得る。あるいは、ＰＭＲＴＩは、未来の演算のために保守される。例えば、ＰＭＲＴＩは、無線デバイスがエネルギー付与される度に実行され得る。
【００２４】
ＰＭＲＴＩは、非常に強力なランタイム命令エンジンである。ハンドセットは、ＰＭＲＴＩ環境を介してハンドセットに送達される任意の命令を実行し得る。このメカニズムは、ＲＦ調整をサポートするために利用され得る。より一般的には、ＰＭＲＴＩが利用され、典型的にはユーザの不満の結果等のソフトウェア問題が製造業者またはサービスプロバイダによって認識される場合、無線デバイスソフトウェアをリモートデバックし得る。ＰＭＲＴＩはまた、ソフトウェアの問題を診断するために必要なデータを記録できる。ＰＭＲＴＩは、データ解析、デバック、および修正用の新しくダウンロードされたシステムアプリケーションを起動し得る。ＰＭＲＴＩは、更新されたシステムソフトウェアコードセクションの代わりに、ある問題に対する解析およびできる限り短い時間での修正のためのＲＷデータをベースにした更新を提供し得る。ＰＭＲＴＩは、無線デバイスによる利用のためにメモリ圧縮アルゴリズムを提供し得る。
【００２５】
本発明のある局面では、システムソフトウェアのシンボルライブラリへの組織化は、実行のために要求される揮発性メモリ１１４および不揮発性メモリ１０８のサイズに影響をし得る。これは、コードセクションが、コードセクション内に配置されるシンボルライブラリよりも典型的には大きいという事実による。これらのより大きいコードセクションが存在するのは、更新されたコードセクションを収容するためである。システムソフトウェアのライブラリのコレクションとしての組織化は、不揮発性メモリサイズ要件に影響する。同一のコードサイズに対して、利用される不揮発性メモリの量は、コードセクションが、内部に配置されるシンボルライブラリよりも大きくなるようにサイズ合わせし得るという事実により、より大きくなる。
【００２６】
一旦、ソフトウェア更新が、無線デバイスに送達されると、ソフトウェアメンテナンスシステム１００は、メモリ圧縮をサポートする。メモリ圧縮は、デスクトップコンピュータのディスクデフラグアプリケーションと同様である。圧縮メカニズムは、メモリが最適に利用され、将来のコードセクション更新のために良好にバランスされることを保証し、ここで、更新されるコードセクションのサイズは、予測できない。システム１００は、パッチがあてられる（更新される）コード格納セクションを解析する。システム１００は、更新されたコードセクションを、置換されるコードセクションにより占有されるメモリスペースへ適応させることを試みる。更新されたコードセクションが置換されるコードセクションよりも大きい場合、システム１００は、メモリ１１２のコードセクションを圧縮する。もしくは、圧縮は、製造業者またはサービスプロバイダによって計算され得、圧縮命令は、無線デバイス１０４へトランポートされ得る。
【００２７】
圧縮は、アルゴリズムの複雑性および膨大な量のデータ移動により、時間消費プロセスになり得る。圧縮アルゴリズムは、任意の処理が開始する前に、実行可能性を予測する。ＵＩプロンプトは、圧縮が試みられる前に、ユーザからの許可を適用するために利用され得る。
【００２８】
本発明のある局面では、全システムソフトウェアコードセクションは、同時に更新され得る。しかしながら、完全なシステムソフトウェア更新は、より大きなＦＳＳ１１０を要求する。
【００２９】
図３は、無線通信デバイスにおける本発明の動的命令セットを示す概略的ブロック図である。システム３００は、複数の現在のコードセクションに区別される実行可能な無線デバイスシステムソフトウェアを含むメモリ１０８中にコード格納セクション１１２を含む。コードセクション１（３０２）、コードセクション２（３０４）、コードセクションｎ（３０６）、およびパッチマネージャコードセクション３０８が示される。しかし、本発明は、コードセクションの任意の特定の数に制限されない。システム３００はさらに、第２の複数のコードセクション内に配置される第１の複数のシンボルライブラリをさらに含む。示されるのは、コードセクション１（３０２）に配置されるシンボルライブラリ１（３１０）、コードセクション２（３０４）に配置されるシンボルライブラリ２（３１２）および３（３１４）、ならびにコードセクションｎ（３０６）に配置されるシンボルライブラリｍ（３１６）である。各ライブラリは、関連する機能性を有するシンボルを含む。例えば、シンボルライブラリ１（３１０）は、無線デバイス液晶ディスプレイ（ＬＣＤ）の演算に関与し得る。そして、シンボルは、ディスプレイ機能に関連する。以下に詳細に示されるように、さらなるシンボルライブラリは、パッチマネージャコードセクション３０８に配置される。
【００３０】
図４は、無線デバイスメモリの概略的なブロック図である。示されるように、メモリは、図１のコード格納セクション１１２である。メモリは、フラッシュメモリのような書き込み可能な不揮発性メモリである。尚、コードセクションは、必ずしもＦＳＳ１１０と同一のメモリに格納される必要はないことが理解される。尚、本発明のシステムソフトウェア構造は、複数の協働するメモリに格納されるコードセクションにより可能にされることも理解される。コード格納セクション１１２は、第２の複数の連続してアドレスされるメモリブロックを含み、ここで、各メモリブロックは、第２の複数のコードセクションに対応するコードセクションを格納する。従って、コードセクション１（３０２）は、第１のメモリブロック４００に格納され、コードセクション２（３０４）は、第２のメモリブロック４０２に格納され、コードセクションｎ（３０６）は、第ｎのメモリブロック４０４に格納され、そしてパッチマネージャコードセクション（３０８）は、第ｐのメモリブロック４０６に格納される。
【００３１】
図３および４と対照的に、各コードセクションの開始点は、メモリの対応する開始アドレスに格納され、シンボルライブラリは、コードセクションの開始点で開始するように配置される。すなわち、各シンボルライブラリは、第１のアドレスで開始し、第１のアドレスから連続してある範囲のアドレスを通って走る。例えば、コードセクション１（３０２）は、コード格納セクションメモリ１１２の第１の開始アドレス４０８（「Ｓ」でマークされる）で開始する。図３では、シンボルライブラリ１（３１０）は、第１のコードセクションの開始点３１８で開始する。コードセクション２（３０４）が第２の開始アドレス４１０（図４）で開始するのと同様に、シンボルライブラリ２は、コードセクション２（図３）の開始点３２０で開始する。コードセクションｎ（３０６）は、コード格納セクションメモリ１１２の第３の開始アドレス４１２（図４）で開始し、シンボルライブラリｍ（３１６）は、コードセクションｎの開始点３２２（図３）で開始する。パッチマネージャコードセクションは、コード格納セクションメモリ１１２の第ｐの開始アドレス４１４で開始し、そしてパッチマネージャコードセクション３０８の第１のシンボルライブラリは、パッチマネージャコードセクションの開始点３２４で開始する。従って、シンボルライブラリ１（３１０）は、最終的に、第１のメモリブロック４００に格納される。コードセクションが、コードセクション２（３０４）のような複数のシンボルライブラリを含む場合、複数のシンボルライブラリは、対応するメモリブロック（この場合、第２のメモリブロック４０２）に格納される。
【００３２】
図３では、システム３００は、パッチマネージャコードセクション３０８に配置されるシンボルライブラリに含まれるシンボルのあるタイプとして、コードセクションアドレステーブル３２６をさらに含む。コードセクションアドレステーブルは、コードセクション識別子をメモリの対応するコードセクション開始アドレスと相互参照する。
【００３３】
図５は、図３のコードセクションアドレステーブル３２６を示すテーブルである。コードセクションアドレステーブル３２６は、シンボルライブラリに対するコードセクション開始アドレスを見つけ出すために参照される。例えば、システム３００は、シンボルライブラリ１のシンボルが実行に必要とされる時、コードセクション１を検索する。コードセクション１の開始アドレスを見つけ出し、従って、シンボルをシンボルライブラリ１に位置付けるために、コードセクションアドレステーブル３２６は、参照される。コードセクションのシンボルライブラリの配置、およびテーブルによるコードセクションのトラッキングは、コードセクションが移動され、かつ拡張されることを可能にする。拡張または移動演算は、アップグレードされたコードセクション（アップグレードされたシンボルライブラリを含む）をインストールするために必要とされ得る。
【００３４】
尚、図３に戻って、全てのシンボルライブラリは、必ずしもコードセクションの開始点で開始するわけではない。示されるように、シンボルライブラリ３（３１４）は、コードセクション２（３０４）に配置されるが、コードセクション開始アドレス３２０で開始しない。従って、シンボルライブラリ３（３１４）のシンボルが実行のために必要とされる場合、システム３００は、コードセクション２（３０４）の開始アドレスに対してコードセクションアドレステーブル３２６を参照する。以下に説明されるように、シンボルオフセットアドレステーブルは、シンボルライブラリ３（３１４）のシンボルが位置付けられることを可能にする。シンボルが、複数のライブラリにわたって広がることは、同一のコードセクションに保持されない限り、問題ではない。
【００３５】
上述されたように、各シンボルライブラリは、機能的に関連したシンボルを含む。シンボルは、ルーティン本体、変数、またはデータ構造を位置付け、かつ利用するための、プログラマ定義の名前である。従って、シンボルは、アドレスまたは値であり得る。シンボルは、内部または外部であり得る。内部シンボルは、現在のコードセクションの範囲を超えて、可視ではない。より詳細には、内部シンボルは、他のコードセクションにおいて、他のシンボルライブラリによって検索されない。外部シンボルは、コードセクション間で利用および呼び出しされ、かつ、異なるコードセクションのライブラリによって検索される。シンボルオフセットアドレステーブルは、通常、全ての外部シンボルのリストを含む。
【００３６】
例えば、シンボルライブラリ１（３１０）は、無線デバイスディスプレイ上に文字を生成する。このライブラリのシンボルは、電話番号、名前、時刻、または他のディスプレイ機能を生成する。各機能は、本明細書中でシンボルとして参照する、ルーティンによって生成される。例えば、シンボルライブラリ１（３１０）の１つのシンボルは、ディスプレイ上に電話番号を生成する。このシンボルは、「Ｘ」で表わされ、外部である。無線デバイスがフォンコールを受け、呼び出し側ＩＤサービスが起動される場合、システムは、「Ｘ」シンボルを実行させたい場合、ディスプレイ上に番号を生成しなければならない。従って、システムは、「Ｘ」シンボルを位置付けなければならない。
【００３７】
図６は、シンボルを有する、図３のシンボルライブラリ１（３１０）の詳細な図である。シンボルは、各コードセクション開始アドレスからオフセットされるように配置される。多くの状況では、シンボルライブラリの開始点は、コードセクションの開始点であるが、これは、コードセクションが１つより多いシンボルライブラリを含む場合に当てはまらない。シンボルライブラリ１（３１０）は、コードセクション１（図３を参照）の開始点で開始する。図６に示されるように、「Ｘ」シンボルは、シンボルライブラリの開始点からの（０３）のオフセットに位置付けられ、「Ｙ」シンボルは、（１５）のオフセットに位置付けられる。シンボルオフセットアドレスは、パッチマネージャコードセクションのシンボルオフセットアドレステーブル３２８に格納される（図３参照）。
【００３８】
図７は、図３のシンボルオフセットアドレステーブル３２８を示すテーブルである。シンボルオフセットアドレステーブル３２８は、対応するオフセットアドレス、およびメモリの対応するコードセクション識別子によってシンボル識別子を相互参照する。従って、システムは、シンボルライブラリ１において「Ｘ」シンボルを実行させるために検索し、シンボルオフセットアドレステーブル３２８は、それが配置されるコードセクションについて、シンボルの正確なアドレスを位置付けるために参照される。
【００３９】
図３に戻って、第１の複数のシンボルライブラリは全て、通常、これらのシンボルライブラリの実行時に参照される、または設定されなければならないリード−ライトデータを含む。例えば、シンボルライブラリは、条件付きステートメントに依存する演算を含み得る。リード−ライトデータセクションを参照して、条件付きステートメントを完了させるために必要なステータスを判定する。本発明は、全てのシンボルライブラリから共有されるリード−ライトセクションへリード−ライトデータをグループ化する。本発明のある局面では、リード−ライトデータ３３０は、パッチマネージャコードセクション３０８に配置される。もしくは（示されない）、リード−ライトデータは、異なるコードセクション、例えば、コードセクションｎ（３０６）に配置され得る。
【００４０】
第１の複数のシンボルライブラリはまた、ソートされるシンボルのアドレスを計算するために、コードセクションに配置されるシンボルアクセサコードを含む。シンボルアクセサコードは、別々のコードセクション、例えば、コードセクション２（３０４）のアドレスに配置され、かつ格納され得る。しかし、示されるように、シンボルアクセサコード３３２は、パッチマネージャコードセクション３０８のアドレスに配置され、格納される。システム３００は、さらに、シンボルアクセサコードアドレスを格納する第１の位置を含む。第１の位置は、コード格納セクション１１２、または無線デバイス（示されない）の別々のメモリセクションにおけるコードセクションであり得る。第１の位置はまた、リード−ライトデータと同一のコードセクションにも配置され得る。示されるように、第１の位置３３４は、リード−ライトデータ３３０、シンボルオフセットアドレステーブル３２８、コードセクションアドレステーブル３２６、シンボルアクセサコード３３２、およびパッチライブラリ（パッチシンボルライブラリ）３３６を有するパッチマネージャコードセクション３０８に格納される。
【００４１】
シンボルアクセサコードは、コードセクションアドレステーブルおよびシンボルオフセットアドレステーブルにアクセスして、メモリにおいてソートシンボルのアドレスを計算するかまたは見出す。すなわち、シンボルアクセサコードは、対応するシンボル識別子および対応するコードセクション識別子を用いて、検索されるべきシンボルのアドレスを計算する。例えば、シンボルライブラリ１の「Ｘ」シンボルが検索される場合、シンボルアクセサは、「Ｘ」シンボルに対応して（図７を参照されたい）、シンボル識別子（シンボルＩＤ）「Ｘ＿１」を検索するために呼び出される。シンボルアクセサコードは、シンボルオフセットアドレスを参照して、「Ｘ＿１」シンボル識別子がコードセクション１の開始点から（０３）のオフセットを有することを判定する（図６を参照されたい）。シンボルアクセサコードは、コードセクション１に対応して、コードセクション識別子「ＣＳ＿１」を検索するために呼び出される。シンボルアクセサコードは、コードセクションテーブルを参照して、コードセクション識別子（コードセクションＩＤ）「ＣＳ＿１」と関連する開始アドレスを決定する。この方法では、シンボルアクセサコードは、シンボル識別子「Ｘ＿１」が、（００１００）のアドレスからの（０３）のオフセットであるか、または、アドレス（００１０３）に位置付けられるかを決定する。
【００４２】
シンボル「Ｘ」は、実際のコードの一部であるので、予約された名前である。言い換えると、シンボル「Ｘ」は、それに関連する絶対値データである。データは、アドレスまたは値であり得る。シンボル識別子は、シンボルをトラックするために生成されるエイリアスである。シンボルオフセットアドレステーブルおよびコードセクションアドレステーブルの両方が識別子と共に作用して、予約されたシンボルおよびコードセクション名との混乱を避ける。また、同一のシンボル名を多くのシンボルライブラリにわたって利用することが可能である。識別子の利用は、これらのシンボル間の混乱を避ける。
【００４３】
図１に戻って、システム３００はさらに、リード−ライト揮発性メモリ１１４、典型的にはランダムアクセスメモリ（ＲＡＭ）を含む。リード−ライトデータ３３０、コードセクションアドレステーブル３２６、シンボルオフセットアドレステーブル３２８、シンボルアクセサコード３３２、およびシンボルアクセサコードアドレス３３４は、システムソフトウェアの実行中のアクセスのために、パッチマネージャコードセクションからリード−ライト揮発性メモリ１１４へロードされる。周知のように、ＲＡＭに格納されるコードのアクセス時間は、Ｆｌａｓｈのような不揮発性メモリへのアクセスよりもはるかに短い。
【００４４】
図３に戻って、尚、シンボルライブラリは、それらが配置されるコードセクションを必ずしも満たす必要はないが、内部に格納される対応のコードセクションを正確に収容するようにメモリブロックがサイズ合わせされることに留意され得る。代わりに述べられるのは、第２の複数のコードセクションの各々は、配置されるシンボルライブラリを収容するバイトサイズを有し、連続してアドレスされるメモリブロックの各々は、対応するコードセクションを収容するバイトサイズを有する。例えば、コードセクション１（３０２）は、１００バイトの長さを有するシンボルライブラリを収容する１００バイトのセクションであり得る。第１のメモリブロックは、コードセクション１のバイトサイズに一致する１００バイトである。しかし、コードセクション１にロードされるシンボルライブラリは、１００バイトよりも小さくなってもよい。図３に示されるように、コードセクション１（３０２）は、シンボルライブラリ１（３１０）が１００バイトよりも小さい場合、未使用セクション３４０を有する。従って、第２の複数のコードセクションの各々は、配置されるシンボルライブラリを収容するのに必要となるサイズよりも大きいサイズを有する。「過剰なサイズ」のコードセクションにより、より大きな更新されたシンボルライブラリが収容され得る。
【００４５】
連続的にアドレスされたメモリブロックは、物理メモリ空間を種々のサイズの論理ブロックに分割することを参照する。コードセクションおよびメモリブロックは、コードセクションがメモリ内に格納される場合、本質的に交換可能である用語である。コードセクションの概念は、それが移動されかつ処置される場合のコードセクションにおけるシンボルライブラリの集合、または、シンボルライブラリよりも恐らく大きいコードのセクションを識別するために使用される。
【００４６】
図３に見出されるように、現在のコードセクションを有するコード格納セクションに新しいコードセクションを配置するために、システム３００は、本明細書中でパッチライブラリ３３６と呼ばれるパッチシンボルライブラリを含む。コード格納セクションにおける現在のコードセクションと共に新しいコードセクションの配置は、更新される実行可能なシステムソフトウェアを形成する。パッチマネージャ３３６は、現在のコードセクションと共に新しいコードセクションを配置するだけでなく、コードセクションを更新されるコードセクションとも置換する。
【００４７】
図４に戻って、メモリ１０８のファイルシステムセクション１１０は、新しいコードセクション４５０および更新されるパッチマネージャコードセクション４５２等の新しいコードセクションを受信する。ファイルシステムセクションは、さらに、現在のコードセクションと共に新しいコードセクションを配置するための命令を含む第１のパッチマネージャランタイム命令（ＰＭＲＴＩ）４５４を受信する。図１に見出されるように、エアリンクインターフェース１５０は、新しいか、または更新されるコードセクション、ならびに第１のＰＭＲＴＩを受信する。エアリンクインターフェース１５０は、アンテナによって表されるが、エアリンクインターフェース１５０は、さらに、ＲＦトランシーバ、ベースバンド回路および復調回路（図示せず）を含むことに留意されたい。ファイルシステムセクション１１０は、エアリンクインターフェース１５０を介して受信された新しいコードセクションを格納する。パッチライブラリ３３６は、リード−ライト揮発性メモリ１１４から実行し、コード格納セクションの第１のコードセクション、例えば、コードセクションｎ（３０６）を、第１のＰＭＲＴＩ４５４に応答して、新しいか、または更新されるコードセクション４５０と置換する。通常、パッチマネージャコードセクション３０８は、更新されるパッチマネージャコードセクション４５２と置換される。コードセクションが置換された場合、パッチライブラリ３３６は、コード格納セクション１１２における第１のコードセクション、例えば、コードセクションｎ（３０６）を、ファイルシステムセクション１１２における、更新されたコードセクション、例えば、コードセクション４５０に上書きする。極端な場合、コード格納セクション１１２におけるすべてのコードセクションは、更新されるコードセクションと置換される。すなわち、ＦＳＳ１１０は、第２の複数の更新されたコードセクション（図示せず）を受け取り、パッチライブラリ３３６は、コード格納セクション１１２における第２の複数のコードセクションを第２の複数の更新されるコードセクションと置換する。当然、ＦＳＳ１１０は、エアリンクインターフェースを介して受信された第２の複数の更新されるコードセクションを収容するように十分に大きくしなければならない。
【００４８】
上述のように、受信された更新されるコードは、リード−ライトデータコードセクション、コードセクションアドレステーブルコードセクション、シンボルライブラリ、シンボルオフセットアドレステーブルコードセクション、シンボルアクセサコードセクション、または新しいパッチライブラリを有するコードセクションを含み得る。これらのすべてのコードセクションは、関連するシンボルライブラリおよびシンボルと共に、別個かつ独立したコードセクションとして格納され得る。その後、これらのコードセクションの各々は、一意的に更新されるコードセクションと置換される。すなわち、更新されるリード−ライトコードセクションは、受信されて、コード格納セクションにおけるリード−ライトコードセクションを置換する。更新されたコードセクションアドレステーブルコードセクションは、受信されて、コード格納セクションにおけるコードセクションアドレステーブルコードセクションを置換する。更新されたシンボルオフセットアドレステーブルコードセクションは、受信されて、コード格納セクションにおけるシンボルオフセットアドレステーブルコードセクションを置換する。更新されるシンボルアクセサコードセクションは、受信されて、コード格納セクションにおけるシンボルアクセサコードセクションと置換する。同様に、更新されるパッチマネージャコードセクション（パッチライブラリを有する）は、受信されて、コード格納セクションにおけるパッチマネージャコードセクションと置換する。
【００４９】
しかしながら、上述のコードセクションは、通常、パッチマネージャコードセクションの中でバンドルされる。従って、コード格納セクションにおけるリード−ライトコードセクションは、パッチマネージャコードセクション３０８が、更新されるパッチマネージャコードセクション４５０と置換された場合、ファイルシステムセクション１１０からの更新されるリード−ライトコードセクションと置換される。同様に、更新されるパッチマネージャコードセクション４５０がインストールされた場合、コードセクションアドレステーブル、シンボルオフセットアドレステーブル、シンボルアクセサコードセクション、およびパッチライブラリが置換される。新しいリード−ライトデータ、新しいコードセクションアドレステーブル、新しいシンボルオフセットアドレステーブル、新しいシンボルアクセサコード、および更新されるパッチマネージャコードセクションとしての新しいパッチライブラリの、コード格納セクションにおける現在のコードセクションと共に配置されることが更新される実行可能なシステムソフトウェアを形成する。
【００５０】
ファイルシステムセクション１１０が更新されたシンボルアクセサコードアドレスを受信した場合、パッチマネージャは、メモリ内の第１のロケーションにおけるシンボルアクセサコードアドレスを更新されるシンボルアクセサコードアドレスと置換する。上述のように、メモリ内３３４の第１のロケーションは、通常、パッチマネージャコードセクションにある（図３を参照）。
【００５１】
図３に見出されるように、パッチライブラリ３０８は、さらに、圧縮器、または圧縮器シンボルライブラリ３４２を含み得る。圧縮器３４２は、さらに、別個および独立したコードセクションとしてイネーブルされ得るが、上述のように、システムソフトウェアアップグレードと関連した機能を単一のパッチマネージャコードセクションにバンドルすることは有用かつ効率的である。通常、圧縮器３４２は、コードセクションのサイズを変更すると考えられることができ、これにより、新しいセクションは、コード格納セクション１１２における現在のコードセクションと共に配置され得る。
【００５２】
ここで確立された組織、ダウンロード、および圧縮の本発明の局面に関して、以下の説明は、無線通信デバイス動的命令セット実行システム３００に集中させる。システム３００は、詳細に上述されたように、実行可能なシステムソフトウェア、およびコードセクションと区分されたシステムデータを含む。さらに、システム３００は、システムデータおよびシステムソフトウェア上で演算し、かつ、システムソフトウェアの実行を制御するための動的命令セットを含む。図４に示されるように、動的命令セット４７０は、第１のＰＭＲＴＩ４５４に組織化される。図３に見出されるように、システムは、さらに、ランタイムライブラリ３７０によってイネーブルされる動的命令セットを処理するためのランタイムエンジンを含む。圧縮器ライブラリ３４２およびパッチライブラリ３３６に関して述べられたように、ランタイムライブラリ３７０は、通常、パッチマネージャコードセクション３０８に配置される。しかしながら、ランタイムライブラリ３７０は、代替的に、別のコードセクション、例えば、第１のコードセクション３０４において配置され得る。
【００５３】
動的命令セットは、条件付きオペレーションコードを含み、かつ、通常、データアイテムを含む命令の１つまたは複数のセットである。ランタイムエンジンは、オペレーションコードを読み出し、かつ、どの演算が実行されることが必要かを決定する。オペレーションコードは、条件的、数学的、プロシージャ的または論理的であり得る。ランタイムエンジン、またはランタイムライブラリ３７０は、数学的または論理演算等の演算を実行するために動的命令セットを処理する。すなわち、ランタイムエンジンは、動的命令セット４７０を読み出し、かつ、このオペレーションコードに応答して、演算のシーケンスを実行する。動的命令セットは任意の特定の言語に限定されないが、オペレーションコードは、通常、マシンコードの形態であり、これは、無線デバイスメモリが限定され、実行速度が重要だからである。オペコードは、データアイテムを解析し、かつ、解析の結果として決定を下すという点で条件的であると考えられる。ランタイムエンジンは、さらに、解析される前に、データに関する演算が実行されることを決定し得る。
【００５４】
例えば、オペレーションコードは、無線デバイスメモリからのデータが所定の値と比較されるように規定し得る。データアイテムが所定の値よりも小さい場合、データアイテムは、そのままにされ、データアイテムが所定の値よりも大きい場合、これは所定の値と置換される。あるいは、オペレーションコードは、上述の比較演算が実行される前に、第２の所定の値を無線デバイスメモリからのデータアイテムに追加し得る。
【００５５】
上述のように、ファイルシステムセクション不揮発性メモリ１１０は、エアリンク１５０等のインターフェースを通じて動的命令セットを受信する。図１に示されるように、インターフェースは、さらに、無線周波数の（ＲＦ）ハードライン１６０であり得る。その後、ＰＭＲＴＩは、システムソフトウェアが工場での調整環境等のように演算状態ではなく、ＦＳＳ１１０によって受信され得る。ＰＭＲＴＩは、さらに、論理ポートインターフェース１６２、またはインストール可能メモリモジュール１６４を介して受信され得る。メモリモジュール１６４は、初期調整で無線デバイス１０４にインストールされるか、または工場での再調整中にインストールされ得る。特に記載はないが、ＰＭＲＴＩは、赤外線またはＢｌｕｅｔｏｏｔｈインターフェースを介して受信され得る。
【００５６】
図８ａおよび図８ｂは、ランタイムエンジン３７０によってアクセスされる命令を示す。示されるのは、第１の命令８００、第２の命令８０２、およびｊ番目の命令８０４であるが、動的命令セットは任意の特定の数の命令に限定されない。各命令におけるオペレーションコードの長さは固定される。ランタイムエンジン３７０は、バイトまたはビットの測定のように、命令の長さをキャプチャし、命令がデータアイテムを含むか否かを決定する。オペレーションコードが減算された後の命令の残りの長さは、データアイテムを含む。ランタイムエンジンは命令からデータアイテムを抽出する。示されるように、第１の命令８００の長さ８０６が測定され、かつデータアイテム８０８が抽出される。すべての命令が抽出されるべきデータアイテムを必ずしも含まないことに留意されたい。ランタイムエンジン３７０は、命令８００におけるオペレーションコード８１０に応答する演算のシーケンスを実行する際に、この抽出されたデータ８０８を用いる。
【００５７】
図８ｂは、図８の第１の命令８００のより詳細な図である。第１の命令８００を例として用いて、命令は、オペレーションコード８１０およびデータ８０８を含む。命令、および、より具体的には、データアイテムセクション８０８は、シンボル識別子を含み、これは、無線デバイスコードセクションにおけるシンボルへのリンクとして機能する。すでに詳細に説明されたように、シンボル識別子は、シンボル識別子に対応するシンボルを配置するために、コードセクションアドレステーブル３２６（図５を参照）およびシンボルオフセットアドレステーブル３２８（図７を参照）と共に用いられる。示されるように、シンボル識別子「Ｘ＿１」は、第１の命令８００において示される。シンボルオフセットアドレステーブル３２８は、「ＣＳ＿１」識別子および「３」のオフセットを有するコードセクションにおいて対応するシンボルを配置する。コードセクションアドレステーブル３２６は、コードセクション１の開始アドレス（３０２）を与える。このようにして、シンボル「Ｘ」が見出される（図６を参照）。
【００５８】
ランタイムエンジンが、コードセクションアドレステーブルおよびシンボルオフセットアドレステーブルを用いて、受信されたシンボル識別子に対応するシンボルを配置した後、これは、配置されたシンボルがデータアイテムである場合データを抽出する。例えば、シンボル「Ｘ」がシンボルライブラリ１（３１０）におけるデータアイテムである場合、ランタイムエンジンはこれを抽出する。あるいは、「Ｘ」シンボルは、オペレーションコードであり得、ランタイムエンジンは、これが配置されると、シンボル「Ｘ」を実行させる。
【００５９】
ＰＭＲＴＩがシステムデータまたはシステムデータアイテムを更新するために用いられ得る。本発明のいくつかの局面において、システムデータが、ファイルシステムセクション１１０、例えば、コードセクション４７２におけるコードセクションに格納される（図４を参照）。ランタイムエンジンはコードセクション４７２からのシステムデータにアクセスし、かつ、このシステムデータを解析する。ランタイムエンジンは、上述のように、データアイテムに関する数学的、または論理的演算を実行するために、動的命令のオペレーションコードを処理する。演算の後、ランタイムエンジンは、更新されるシステムデータを生成する命令を処理する。更新されるシステムデータは、いくつかの状況において、変更されないデータアイテムを含み得ることに留意されたい。第２のコードセクション４７２におけるシステムデータは、オペレーションコードに応答して、更新されるシステムデータと置換される。従って、ランタイムエンジンによる命令の処理によって、システムソフトウェアは、コードセクション４７２における更新されたシステムデータを用いて実行するように制御される。このようにして、システムソフトウェアにおける、特定のターゲットとされたシンボルが更新され得るが、コードセクション全体は置換されない。同じプロセスによって、システムデータは、コード格納セクション１１２におけるコードセクションにおいて置換され得る。例えば、システムデータは、第３のコードセクション３４４に格納され得、ランタイムエンジンは、第３のコードセクションにおけるシステムデータを、オペレーションコードに応答して、更新されるシステムデータと置換し得る。
【００６０】
ＰＭＲＴＩは、さらに、揮発性メモリ１１４内のデータを更新するために用いられ得る。１例として、揮発性メモリ１１４は、リード−ライトデータ３３０を受取る（図１を参照）。リード−ライトデータは、コード格納セクション１１２および／またはＦＳＳ１１０における１つまたは複数のコードセクションから出力され得る。ランタイムエンジンは、リード−ライトデータにアクセスし、リード−ライトデータ３３０を解析し、更新されるリード−ライトデータを生成し、かつ揮発性メモリ１１４におけるリード−ライトデータ３３０を、オペレーションコードに応答して、更新されるリード−ライトデータ３３０と置換する。その後、システムソフトウェアは、揮発性メモリ１１４内の更新されたリード−ライトデータを用いて実行するように制御される。
【００６１】
本発明のいくつかの局面において、ランタイムエンジンは、システムソフトウェアの実行をモニタリングする。性能モニタリングは、多数の無線デバイスアクティビティを含むように広く規定される。例えば、チャネルパラメータ、チャネル特性、システムスタック、エラー状態、または、特定の故障状態または性能低下状態に至る演算のシーケンスを通じてのＲＡＭにおけるデータアイテムのレコード等のデータが収集され得る。収集された性能データを解析するために動的命令セットを用い、更新されるデータの変形を提供し、かつ問題に対する可能な解決策を検討するためにデータを再キャプチャすることも可能である。ＰＭＲＴＩプロセスを用いて一次的な修理も提供され得る。
【００６２】
より具体的には、ランタイムエンジンは性能データを収集し、かつ、オペレーションコードに応答して、性能データをファイルシステムセクションに格納する。その後、システムソフトウェアは、システムソフトウェアの評価のために性能データを収集することによって実行するように制御される。評価は、動的命令セットオペレーションコードによって実行される解析の形態として行われ得るか、または、評価は、無線デバイスの外部で実行され得る。本発明のいくつかの局面において、ランタイムエンジンは、ファイルシステムセクションから収集された性能データをアクセスし、かつ、オペレーションコードに応答して、エアリンクインターフェースを介して性能データを送信する。現場の無線デバイスから性能データを収集することによって、製造業者が、デバイスをリコールすることなく、地域的または地球規模で問題を徹底的に解析することが可能になる。
【００６３】
本発明のいくつかの局面において、ファイルシステムセクション１１０は、新しいコードセクションを含むパッチマネージャランタイム命令を受信する。例えば、新しいコードセクション４７４は、図４に示される。あるいは、新しいコードセクションｎ（４５０）等の新しいコードセクションは、ＰＭＲＴＩに依存し得ない。例えば、新しいコードセクションｎ（４５０）は、以前のエアリンク通信で受信され得るか、または、工場調整中にインストールされ得る。ランタイムエンジンは、オペレーションコードに応答して、新しいコードセクション４７４（４５０）をコード格納セクションに追加する。本発明のいくつかの局面において、新しいコードセクションは、コード格納セクション１１２における未使用のブロックに追加される。あるいは、圧縮演算が必要とされる。その後、システムソフトウェアは、新しいコードセクション４７４（４５０）を用いて実行するように制御される。本発明の他の局面において、ＰＭＲＴＩ４５４は、更新されたコードセクション４７４を含む。あるいは、新しいコードセクション４５０は、ＰＭＲＴＩに依存しない更新されたコードセクションである。ランタイムエンジンは、コード格納セクションにおけるコードセクション、例えば、コードセクション２（３０４）を、オペレーションコードに応答して、更新されるコードセクション４７４（４５０）と置換する。システムソフトウェアは、更新されたコードセクション４７４（４５０）を用いて実行するように制御される。本発明のいくつかの局面において、圧縮演算は、更新されるコードセクションを収容するために必要とされる。あるいは、更新されるコードセクションは、コード格納セクションの未使用または空のセクションに追加される。
【００６４】
上述のように、新しいコードセクションの追加、またはコードセクションの更新は、通常、新しいコードセクションアドレステーブルの生成を必要とし、これは、これらの演算は、新しいおよび／または変更されたコードセクション開始アドレステーブルを含むからである。さらに、圧縮演算はまた、新しいコードセクションアドレステーブルを必要とする。圧縮演算は、上述の圧縮器３４２の演算の結果か、または、圧縮方法関する詳細を供給するＰＭＲＴＩ命令の結果であり得る。ＰＭＲＴＩがダウンロードおよび圧縮命令を含む場合、ＰＭＲＴＩは、通常、ダウンロードおよび圧縮が完了された後に有効になる新しいコードセクションアドレステーブルをさらに含む。
【００６５】
図９は、無線通信デバイスのシステムソフトウェアにおける永続データを更新するための本発明のシステムを示す概略的ブロック図である。システム９００は、図１のエアリンクインターフェース１５０と等価なエアリンクインターフェース９０２と、図１のメモリ１０８と等価な不揮発性メモリ永久格納装置９０４に格納されたコードセクションに分割された実行可能なシステムソフトウェアおよびシステムデータとを含む。システム９００は、上述のシステム１００と実質的に同じであり、同様な特徴は、簡潔さの意図のために繰り返されない。不揮発性永久格納装置９０４は、システムセクション９０６およびコード格納セクション９０８を含む。
【００６６】
システムソフトウェアにおける永続データを選択的に更新するための動的命令セット９１０は、エアリンクインターフェース９０２を介して受け取られる。永久データは、固定または一定の値として一般的に維持されるシステムソフトウエアデータアイテムであると理解される。例えば、永続データは、基地局による伝送電力レベルコマンドの受信に応答して決定された、ＲＦ減衰器の計算において使用される固定された値であり得る。永続データにおける変化は、局所的温度差またはＲＦ電力トランジスタロットの変動を説明するためになされ得る。このような変化は、無線デバイスがその調整プロセスを永久的に補正することを可能にする。ＲＦ調整データに加えて、不揮発性システムおよびユーザ構成データ、リソースデータ、不揮発性システムおよびユーザアプリケーションデータ、および任意のデータが更新され得る全てのタイプの永続データである。不揮発性システムおよびユーザ調整データ、リソースデータ、不揮発性システムおよびユーザアプリケーションデータは、以下により詳細に説明される。任意のデータは、上記データカテゴリによって網羅されない任意のタイプのシステムソフトウエアデータアイテムであると理解される。
【００６７】
システムは、永続データを選択的に更新すると言われている。なぜなら、コードセクションまたはシンボルライブラリにおける全てのデータアイテムが、いくつかの従来技術のプロセスのように、大量に置換される必要がないからである。すなわち、コードセクションにおける単一のまたは複数のデータアイテムが更新され得る。更新は、置換されるデータアイテムおよび置換として使用される値の両方を決定するために、条件付論理または数学的演算を用いて潜在的にさらに選択可能である。最終的に、システムは、多くの上述のデータクラスから永続データを更新することができる。
【００６８】
動的命令セット９１０および新しいコードセクション９１２は、パッチマネージャランタイム命令９１４の一部である。典型的には動的命令セット９１０は、ファイルシステムセクション９０６に格納される。ランタイムエンジンまたはランタイムライブラリ９１６は、動的命令セット９１０を処理する。上述のように、ランタイムライブラリ９１６は、典型的には、パッチマネージャコードセクション９１８の一部である。実行可能なシステムソフトウェアおよびシステムデータ（永続メモリ９０４におけるコードセクション）が動的命令セットの処理に応答して更新される。システムソフトウェアは、動的命令セット９１０によって作成されたシステムソフトウェア永続データ更新に従って実行される。
【００６９】
上記で詳細に説明されたように、システムソフトウェアは、シンボルライブラリに形成される。各シンボルライブラリは、不揮発性メモリ９０４におけるコードセクション（コード格納セクション９０８またはファイルシステムセクション９０４のいずれか一方）に配置される関連した機能を有するシンボルを含む。不揮発性メモリのファイルシステムセクション９０６は、動的命令セット９１０および新しいコードセクション（新しいコードセクション９１２が示される）を含むパッチマネージャランタイム命令（ＰＭＲＴＩ）９１４を受け取る。これらの動的命令セットおよび新しいコードセクションは、更新された永続データおよび永続データ命令を含み得る。
【００７０】
システム９００は、エアリンクインターフェース９０２のほかに他のインターフェースを含み得る。例えば、無線通信デバイスキーボードまたはキーパッド９５０、インストール可能なメモリモジュール９５２、赤外線インターフェース９５４、論理ポート９５６、およびＲＦハードラインインターフェース９５８である。ファイルシステムセクション９０６は、これらのインターフェースのいずれかを介して、更新された永続データの受信を可能にする。
【００７１】
図１０は、図９のシステム９００の一般的な表現を示す概略的ブロック図である。ファイルシステムセクション９０６は、永続データ命令９１０を含む動的命令セットを受け取る。システムソフトウェアは、第１のコードセクション１０００における複数の永続データアイテムを含む。永続データイテムＸ＿１は、参照符号１００２を用いて表わされる。コードセクションが通常多くの永続データイテムを含むことが理解されるべきである。永続データ命令９１０は、第１のコードセクション１０００における永続データイテムを、更新された永続データイテムと置換させる。示されたように、更新された永続データイテムＹ＿１（１００４）は、データアイテムＸ＿１（１００２）を置換する（「１」と示された破線矢印を参照のこと）。以下に説明されたように、更新された永続データが種々の手段を介して更新される。コード格納セクション９０８に位置付けられた第１のコードセクションが示されるが、第１のコードセクションが代替的にファイルシステムセクション９０６に位置付けられ得、本発明のシステムは、永続メモリ９０４のファイルシステムセクション９０６における永続データイテムを更新し得ることがさらに理解されるべきである。
【００７２】
図１１ａおよび図１１ｂは、図１０の本発明のシステム９００の置換コードセクション局面を示す概略的ブロック図である。図１１ａは、データアイテム置換プロセスの一局面を示す。ファイルシステム９０６は、複数のデータアイテムと共に置換コードセクション９１２を受け取るが、コードセクション９１２は、わずか１つのデータアイテムとして含み得る。あるいは、置換データアイテムは、複数の置換コードセクションに分散され得る。永続データ命令９１０は、置換コードセクションからのデータアイテムと、第１のコードセクション１０００における永続データイテムを置換する。示されたように、データアイテムＸ＿１（１００２）は、置換コードセクション９１２からのデータアイテムＹ＿１（１００４）で置換される（「１」と示された破線矢印を参照）。
【００７３】
図１１ｂは、本発明のシステム９００の置換コードセクションの局面の改変を示す概略的ブロック図である。本発明のいくつかの局面では、ファイルシステムセクション９０６は、永続データ命令９１０と共に組み込まれた置換データアイテムを受け取る。永続データ命令９１０は、永続データ命令に組み込まれたデータアイテムと、第１のコードセクション１０００における永続データアイテムを置換する。示されたように、データアイテムＸ＿１（１００２）は、永続命令セット９１０からのデータアイテムＹ＿１（１００４）で置換される（「１」と示された破線矢印を参照）。コード格納セクション９０８に位置付けられた第１のコードセクションが示されるが、第１のコードセクションが代替的にファイルシステムセクション９０６に位置付けられ得、本発明のシステムの置換局面は、永続メモリ９０４のファイルシステムセクション９０６における永続データアイテムを更新し得ることがさらに理解されるべきである。
【００７４】
図１２は、本発明のシステム９００の条件付き論理局面を示す概略的ブロック図である。ファイルシステムセクション９０６は、複数の制約データアイテムおよび条件付き永続データ命令１２００を受け取る。条件付き永続データ命令１２００は、特に条件論理または数学的演算を使用して、データアイテム置換を実行する永続命令セットのサブセットであると考えられ得る。条件付き永続データ命令１２００は、第１のコードセクション１０００における永続データアイテムと制約データアイテムとを比較する。第１のコードセクション１０００における永続データアイテムと制約データアイテムとを比較することに応答して、条件付き永続データ命令１２００は、第１のコードセクション１０００における永続データアイテムを置換する。
【００７５】
本発明の一局面では、ファイルシステムセクション９０６は、複数のデータアイテムを有する制約コードセクション１２０２を受け取る。データアイテムＹ＿１（１２０４）、Ｙ＿２（１２０６）、およびＹ＿３（１２０８）が示される。条件付き永続データ命令１２００は、第１のコードセクション１０００における永続データアイテムと制約コードセクション１２０２におけるデータアイテムとの比較に応答して、制約コードセクション１２０２からのデータアイテムで第１のコードセクション１０００における永続データアイテムを置換する。
【００７６】
図１３は、条件付き永続データ命令の演算を示す概略的ブロック図である。本例において示されたように、条件付き永続データ命令１２００は、第１のコードセクション１０００からのデータアイテムＸ＿１（１００２）と制約データセクション１２０２からのデータアイテムＹ＿１（１２０４）とを比較し得る。条件の演算は、「（Ｙ＿１＞Ｘ＿１）であるか？」であり得る。この演算の結果、条件付き永続データ命令１２００は、Ｘ＿１（１００２）をその場所に残すことを決定して、Ｘ＿１（１００２）をＹ＿１（１２０４）で置換するか、Ｘ＿１（１００２）をＹ＿２（１２０６）で置換するか、またはＸ＿１（１００２）を計算された値で置換し、数個の可能な結果を除いてネーミングし得る。従って、条件付き永続データ命令１２００は、第１のコードセクション１０００における永続データアイテム（すなわち、Ｘ＿１）と制約データアイテム（すなわち、Ｙ＿１）との比較に応答して、第１のコードセクション１０００における永続データアイテムを条件付き永続データ命令１２０２によって計算されたデータアイテムで置換し得る。例えば（示されたように）、計算は、Ｙ＿１とＸ＿１との間の差を見出し得、その差をＹ＿１に加算し、Ｘ＿１を置換するためにその結果を使用する。
【００７７】
あるいは、条件付き永続データ命令１２００は、計算におけるオペランドとして制約データアイテムを使用して、データアイテム積を生成する。次いで、第１のコードセクションにおける永続データアイテムは、データアイテム積で置換される。例えば、Ｙ＿１がＸ＿１より大きい場合、計算は、オペランドＹ＿１を３で乗算することであり得、その積を使用してＸ＿１を置換する。別の改変では、Ｙ＿１がＸ＿１よりも大きい場合、計算は、オペランドＹ＿２を３で乗算することであり得、その積を使用してＸ＿１を置換する。条件の論理または数学的演算が従来のソフトウェア演算を用いて処理され、そしてソフトウェアを用いて実行され得る任意の演算であり得ることもまた理解されるべきである。
【００７８】
図１２を参照すると、本発明のいくつかの局面では、ファイルシステムセクション９０６は、条件付き永続データ命令１２００と共に組み込まれたＺ＿１（１２１０）等の制約データアイテムを受け取る。次いで、条件付き永続データ命令１２００は、第１のコードセクション１０００における永続データアイテムと制約データアイテムとの比較に応答して、第１のコードセクション１０００における永続データアイテムを条件付き永続データ命令１２００に組み込まれた制約データアイテムと置換する。特に示されないが、条件付き永続データ命令１２００は、条件論理または数学的演算を実行し（例えば、Ｘ＿１（１００２）とＺ＿１（１２１０）との比較）、置換決定は、その比較の結果としてなされる。さらに、データアイテムは、単に組み込まれたデータアイテムで置換されてもよいし、置換データアイテムは条件付き永続データ命令１２００に組み込まれたデータアイテムを用いて数学的演算の積として生成されてもよい。コード格納セクション９０８に位置付けられた第１のコードセクションが示されるが、第１のコードセクションが代替的にファイルシステムセクション９０６に位置付けられ得、本発明のシステムの条件論理局面は、永続メモリ９０４のファイルシステムセクション９０６における永続データアイテムを更新し得ることがさらに理解されるべきである。
【００７９】
図１４は、本発明のシステム９００のディレクトリの局面を示す概略的ブロック図である。ファイルシステムセクション９０６は、Ａ＿１（１４０２）、Ａ＿２（１４０４）、およびＡ＿３（１４０６）等の複数のデータアイテムアドレスを有するディレクトリコードセクション１４００を受け取る。永続データ命令９１０は、ディレクトリコードセクションデータアイテムアドレスに応答して置換データアイテムを位置付ける。永続データ命令９１０は、第１のコードセクション１０００における永続データアイテムを位置付けられた置換データアイテムと置換する。示されたように、永続データ命令９１０は、データアイテムアドレスＡ＿１（１４０２）、を使用する（「１」と示された破線矢印参照）。アドレスＡ＿１（１４０２）は、永続データ命令９１０を新しいコードセクション９１２におけるデータアイテムＹ＿１（１００４）に向ける（「２」と示された破線矢印参照）。一旦位置付けられると、第１のコードセクション１０００におけるデータアイテムＸ＿１（１００２）は、データアイテムＹ＿１（１００４）で置換される（「３」と示された破線矢印参照）。
【００８０】
ディレクトリプロセスのより複雑な改変では、ファイルシステムセクション９０６は、参照符号９１０と表わされた条件付き永続データ命令と、Ａ＿１（１４０２）、Ａ＿２（１４０４）、およびＡ＿３（１４０６）として表わされた、複数の制約アドレスを有するディレクトリコードセクション１４００とを受け取る。条件付き永続データ命令９１０は、ディレクトリコードセクション１４００における制約アドレスを用いて制約データアイテムを位置付ける。次いで、条件付き永続データ命令９１０は、制約アドレスを用いて、位置付けられた制約と第１のコードセクション１０００における永続データアイテムとを比較する。比較に応答して、条件付き永続データ命令９１０は、第１のコードセクション１０００における永続データアイテムを置換する。例えば（示されない）、条件付き永続データ命令９１０は、新しいコードセクション９１２に制約されたＹ＿１（１００４）を位置付けるようにアドレスＡ＿１（１４０２）を使用する。次いで、上記図１３の説明と同様な態様では、条件付き永続データ命令９１０は、制約Ｙ＿１（１００４）を使用して条件論理または数学的演算を実行する。再度、上記のように、置換データアイテムは、簡単な置換値であり得、計算の結果として生成される。コード格納セクション９０８に配置された第１のコードセクションが示されるが、第１のコードセクションが代替的にファイルシステムセクション９０６に位置付けられ得、本発明のシステムのディレクトリ局面は、永続メモリ９０４のファイルシステムセクション９０６における永続データアイテムを更新し得ることがさらに理解されるべきである。
【００８１】
上記のように、本発明の１つの重要な使用がＲＦ調整演算を支援するデータアイテムを更新することである。図９を参照すると、システムソフトウェアは、第１のコードセクション１０００に配置されたＲＦ調整データアイテムを含む。ＲＦ調整データアイテムは、例をいくつか挙げると、周波数調整、増幅器バイアス、減衰器調整、および温度調整等の機能のために使用される。次いで、ファイルシステムセクション９０６は、少なくとも１つの更新されたＲＦ調整データアイテムと共にパッチマネージャ実行時間命令９１４を受け取る。典型的には、永続データの更新は、１より多くの更新されたデータアイテムの受け取ることと、１より多くのデータアイテムの置換とに関係している。上記のように、データアイテムは、ＰＭＲＴＩ９１４に関連付けられた種々の手段（置換、条件、ディレクトリ、またはこれら３つの組み合わせ）によって更新され得る。次いで一般的に説明すると、第１のコードセクション１０００におけるＲＦ調整データアイテムを置換する場合、永続データ命令９１０は、パッチマネージャランタイム命令９１４における更新されたＲＦ調整データアイテムを参照すると言われ得る。
【００８２】
本発明のいくつかの局面では、ファイルシステムセクション９０６は、更新された不揮発性システムおよびユーザ構成データアイテムの内の少なくとも１つと共にパッチマネージャランタイム命令９１４を受け取る。再度、複数のデータアイテムソースが存在し得る。システムソフトウェアは、無線デバイスのホーム領域を識別し、許容可能なローミング領域を識別し、無線デバイスがデジタルおよびアナログモードで演算するかどうか識別し、そして無線デバイスの好適な演算モードを識別するためにシステム構成等の機能に対して第１のコードセクション１０００において配置された不揮発性システムおよびユーザ構成データアイテムを含む。不揮発性システムおよび第１のコードセクション１０００におけるユーザ構成データアイテムを置換する場合、更新された不揮発性システムおよびパッチマネージャランタイム命令９１４におけるユーザ構成データアイテムを参照する。データアイテムは、置換プロセス、条件の論理演算、またはディレクトリプロセスを用いて更新される。
【００８３】
本発明のいくつかの局面では、ファイルシステムセクション９０６は、更新された不揮発性システムおよびユーザアプリケーションデータアイテムを用いてパッチマネージャランタイム命令９１４を受け取る。システムソフトウェアは、電話帳ファイルを管理し、カレンダースケジューリングファイルを管理する等の機能のために、不揮発性システムおよび第１のコードセクション１０００に配置されたユーザデータアイテムを含む。不揮発性システムおよび第１のコードセクション１０００におけるユーザアプリケーションデータアイテムを置換する場合、永続データ命令９１０は、更新された不揮発性システムおよびパッチマネージャランタイム命令９１４におけるユーザアプリケーションデータアイテムを参照する。上記で説明されたように、不揮発性システムおよびユーザアプリケーションデータアイテムは、置換プロセス、条件論理演算、ディレクトリプロセス、これらの基本プロセスの組み合わせを用いて更新される。
【００８４】
本発明のいくつかの局面では、ファイルシステムセクション９０６は、少なくとも１つの更新されたリソースデータアイテムと共にパッチマネージャランタイム命令９１４を受け取る。システムソフトウェアは、ユーザインターフェース対話、ユーザインターフェースメニュー、およびユーザインターフェース言語のために第１のコードセクション１０００において配置されたリソースデータアイテムを含む。第１のコードセクション１０００におけるリソースデータアイテムを置換する場合、永続データ命令９１０は、パッチマネージャランタイム命令９１４における更新されたリソースデータアイテムを参照する。リソースデータアイテムは、置換プロセス、条件の論理演算、ディレクトリプロセス、これらの基本プロセスの組み合わせを用いて更新される。
【００８５】
図１５ａおよび図１５ｂは、無線通信デバイスにおける動的命令セットを実行するための本発明の方法を示すフローチャートである。明瞭にするために番号付けされたステップの順序として示されるが、明示的に言及されない限り、順番は番号付け（および以下に提示された方法における番号付け）から推論されるべきではない。ステップ１５００における方法が開始する。ステップ１５０１ａは、システムソフトウェアをシンボルライブラリに形成し、各シンボルライブラリは、関連した機能性を有するシンボルを含む。ステップ１５０１ｂは、シンボルライブラリをコードセクションに配置する。ステップ１５０２は、システムソフトウェアを実行する。ステップ１５０３は、ランタイムエンジンを起動する。典型的には、ランタイムエンジンを起動することは、第１のコードセクションからランタイムライブラリを呼び出すことに関係する。ランタイムエンジンは、揮発性または不揮発性メモリのいずれかから起動され得る。ステップ１５０３の後のステップ１５０４は、動的命令セットを受け取る。ステップ１５０４において動的命令セットを受け取ることは、エアリンク、無線周波数（ＲＦ）ハードライン、インストール可能なメモリモジュール、赤外線、および論理ポートインターフェースを含む群から選択されたインターフェースを介して動的命令セットを受け取ることを含む。本発明のいくつかの局面では、ステップ１５０４における動的命令セットを受け取ることは、ファイルシステムセクション不揮発性メモリにおけるパッチマネージャランタイム命令（ＰＭＲＴＩ）を受け取ることを含む。
【００８６】
ステップ１５０６は、動的命令セットを処理する。動的命令セットを処理することは、数学的および論理演算に応答して命令を処理することを含む。本発明のいくつかの局面では、動的命令セットの処理の後のステップ１５０７（図示せず）は、動的命令セットを削除する。ステップ１５０８は、システムデータおよびシステムソフトウェアで演算する。システムデータおよびシステムソフトウェア上での演算に応答するステップ１５１０は、システムソフトウェアの実行を制御する。
【００８７】
典型的には、ステップ１５０４においてパッチマネージャランタイム命令を受け取ることは、条件演算コードおよびデータアイテムを受け取ることを含む。次いで、ステップ１５０６で動的命令セットを処理することは、サブステップを含む。ステップ１５０６ａ１は、パッチマネージャランタイム命令演算コードを読み出すためのランタイムエンジンを使用する。ステップ１５０６ｂは、演算コードに応答して一連の演算を実行する。
【００８８】
いくつかの局面では、ステップ１５０１ｂにおいてシンボルライブラリをコードセクションに配置することは、コードセクションの開始点においてシンボルライブラリを開始すること、および各コードセクション開始アドレスからオフセットしたシンボルを配置することを含む。次いで、この方法は、さらなるステップを含む。ステップ１５０１ｃは、対応する開始アドレスにおけるコードセクションの開始点を格納する。ステップ１５０１ｄは、対応する開始アドレスと共にコードセクションアドレステーブル（ＣＳＡＴ）相互参照コードセクション識別子を保守する。ステップ１５０１ｅは、対応するオフセットアドレスおよび対応するコードセクション識別子と共にシンボルオフセットアドレステーブル（ＳＯＡＴ）相互参照シンボル識別子を保守する。
【００８９】
本発明のいくつかの局面では、ステップ１５０４においてパッチマネージャランタイム命令を受け取ることは、シンボル識別子を受け取ることを含む。次いで、本方法は、さらなるステップを含む。ステップ１５０６ａは、コードセクションアドレステーブルおよびシンボルオフセットアドレステーブルを用いることによって、受け取られたシンボル識別子に対応するシンボルを位置付ける。ステップ１５０６ｂにおける演算コードに応答して一連の演算を実行することは、サブステップを含む。位置付けられたシンボルがデータアイテムである場合、ステップ１５０６ｂ１は、そのデータを抽出する。位置付けられたシンボルが命令である場合、ステップ１５０６ｂ２は、そのシンボル実行する。
【００９０】
本発明のいくつかの局面では、ステップ１５０６ｂ１における動的命令セットを処理することは、さらなるサブステップを含む。ステップ１５０６ｂ１ａは、ランタイムエンジンを使用してパッチマネージャランタイム命令の長さをキャプチャする。ステップ１５０６ｂ１ｂは、演算コードに応答してパッチマネージャランタイム命令からデータアイテムを抽出する。ステップ１５０６ｂ１ｃは、演算コードに応答して一連の演算を実行する場合に、抽出されたデータを使用する。
【００９１】
図１６は、例示的な動的命令セット演算を示すフローチャートである。図１６におけるいくつかのステップは、図１５と同じであり、明瞭化の意図でここでは繰り返されない。ステップ１６０６において動的命令を処理することは、サブステップを含む。ステップ１６０６ａは、ファイルシステムセクションにおける第２のコードセクションに格納されたシステムデータにアクセスする。ステップ１６０６ｂは、システムデータを解析する。ステップ１６０６ｃは更新されたシステムデータを生成する。次いで、ステップ１６０８においてシステムデータおよびシステムソフトウェア上で演算させることは、第２のセクションにおけるシステムデータを、更新されたシステムデータと置換することを含み、ステップ１６１０でシステムソフトウェアの実行を制御することは、システムソフトウェアの実行における更新されたシステムデータを用いることを含む。
【００９２】
図１７は、別の例示的な動的命令セット演算を示すフローチャートである。図１７におけるいくつかのステップは、図１５と同じであり、明瞭化の意図でここでは繰り返されない。ステップ１７０１ｃは、コード格納セクション不揮発性メモリに複数のコードセクションを格納する。ステップ１７０６において動的命令を処理することは、サブステップを含む。ステップ１７０６ａは、コード格納セクション（ＣＳＳ）における第３のコードセクションに格納されたシステムデータにアクセスする。ステップ１７０６ｂは、システムデータを解析する。ステップ１７０６ｃは更新されたシステムデータを生成する。次いで、ステップ１７０８においてシステムデータおよびシステムソフトウェア上で演算することは、第３のコードセクションにおけるシステムデータを更新されたシステムデータと置換することを含み、ステップ１７１０でシステムソフトウェアの実行を制御することは、システムソフトウェアの実行における更新されたシステムデータを用いることを含む。
【００９３】
図１８は、第３の例示的な動的命令セット演算を示すフローチャートである。図１８におけるいくつかのステップは、図１５と同じであり、明瞭化の意図でここでは繰り返されない。ステップ１８０１ｃは、コード格納セクション不揮発性メモリに複数のコードセクションを格納する。ステップ１８０１ｄは、読み出し書き込みデータを揮発性メモリにロードする。ステップ１８０６において動的命令セットを処理することは、サブステップを含む。ステップ１８０６ａは、揮発性メモリにおける読み出し書き込みデータにアクセスする。ステップ１８０６ｂは、読み出し書き込みデータを解析する。ステップ１８０６ｃは更新された読み出し書き込みデータを生成する。ステップ１８０８においてシステムデータおよびシステムソフトウェア上で演算させることは、揮発性メモリにおける読み出し書き込みデータを更新された読み出し書き込みデータと置換することを含み、ステップ１８１０でシステムソフトウェアの実行を制御することは、システムソフトウェアの実行における更新された読み出し書き込みデータを用いることを含む。
【００９４】
図１９は、第４の例示的な動的命令セット演算を示すフローチャートである。図１９におけるいくつかのステップは、図１５と同じであり、明瞭化の意図でここでは繰り返されない。動的命令セットを処理することはサブステップを含む。演算コードに応答して、ステップ１９０６ａは、システムソフトウェアの実行をモニタリングする。ステップ１９０６ｂは、性能データを収集する。ステップ１９０６ｃは、性能データを格納する。ステップ１９０６ｄは、エアリンクインターフェースを介して格納されたデータを転送する。ステップ１９０８においてシステムデータおよびシステムソフトウェア上で演算することは、システムソフトウェアの評価の際に、性能データを用いることを含む。ステップ１９１０は、システムソフトウェアの実行を制御する。
【００９５】
図２０は、第５の例示的な動的命令セット演算を示すフローチャートである。図２０におけるいくつかのステップは、図１５と同じであり、明瞭化の意図でここでは繰り返されない。ステップ２００１ｃは、コード格納セクション不揮発性メモリに複数のコードセクションを格納する。ステップ２００３においてパッチマネージャランタイム命令を受け取ることは、新しいコードセクションを受け取ることを含む。ステップ２００８においてシステムデータおよびシステムソフトウェア上で演算することは、新しいコードセクションをコード格納セクションに追加することを含み、ステップ２０１０におけるシステムソフトウェアの実行は、システムソフトウェアの実行の際に新しいコードセクションを用いることを含む。
【００９６】
あるいは、ステップ２００３において新しいコードセクションを受け取ることは、更新されたコードセクションを受け取ることを含む。次いで、ステップ２００８においてシステムデータおよびシステムソフトウェア上で演算することは、コード格納セクションにおける第４のコードセクションを更新されたコードセクションで置換することを含む。
【００９７】
図２１は、無線通信デバイスのシステムソフトウェアにおける永続データを格納するための本発明の方法を示すフローチャートである。本方法は、ステップ２１００で開始する。上記で詳細に説明されたので、図で特に示されないが、ステップ２１０１ａは、システムソフトウェアをシンボルライブラリに形成し、各シンボルライブラリは、関連する機能性を有するシンボルを含む。ステップ２１０１ｂは、シンボルライブラリを不揮発性メモリにおける（ファイルシステムセクションのいずれかのコード格納セクションのいずれかにおける）コードセクションに配置する。ステップ２１０２は、システムソフトウェアを実行する。ステップ２１０４は、ランタイムエンジンを起動する。ステップ２１０６は、更新された永続データを含む動的命令セットおよび新しいコードセクションと共にパッチマネージャランタイム命令を受け取る。ステップ２１０８は、動的命令セットを処理する。動的命令セットの処理に応答して、ステップ２１１０は、システムソフトウェア内で永続データを選択的に更新する。
【００９８】
ステップ２１１０においてシステムソフトウェアにおける永続データを更新することは、無線周波数（ＲＦ）調整データ、不揮発性システムおよびユーザ構成データ、リソースデータ、不揮発性システムおよびユーザアプリケーションデータ、ならびに任意のデータ等の永続データを更新することを含む。本発明における（多くの中でも）新規性のポイントの１つは、全てのデータアイテムの大部分の置換を実行する必要なく、システムソフトウエアセクションにおけるいくつかのデータアイテムを置換する能力である。ステップ２１１２は、更新された永続データを有するシステムソフトウェアを実行する。
【００９９】
図２２は、置換データアイテム更新プロセスを特徴とする、図２１と実質的に同じであるフローチャートである。図２２におけるほとんどのステップは、図２１と同じステップであり、明瞭化の意図で説明されない。ステップ２２０６において動的命令セットを受け取ることは、永続データ命令を受け取ることを含み、ステップ２２０１ｂ（図示せず）においてシンボルライブラリをコードセクションに配置することは、複数の永続データアイテムを第１のコードセクションに配置することを含む。次いで、ステップ２２１０における永続データアイテムを更新することは、永続データ命令に応答して、第１のコードセクションにおける永続データアイテムと更新された永続データアイテムとを置換することを含む。
【０１００】
いくつかの局面では、ステップ２２０６において不揮発性メモリにおけるファイルシステムセクションで更新された永続データを受け取ることは、複数のデータアイテムを有する第１のコードセクションを受け取る。次いで、永続データ命令に応答して、第１のコードセクションにおける永続データアイテムを更新された永続データアイテムと置換すること（ステップ２２１０）は、第１のコードセクションにおける永続データアイテムと置換コードセクションからのデータアイテムで置換することを含む。
【０１０１】
いくつかの局面では、ステップ２２０６において永続データ命令を受け取ることは、永続データ命令と組み込まれた置換データアイテムを受け取ることを含む。次いで、永続データ命令に応答して、第１のコードセクションにおける永続データアイテムと更新されたデータアイテムとを置換すること（ステップ２２１０）は、第１のコードセクションにおける永続データアイテムと永続データ命令に組み込まれたデータアイテムを置換することを含む。
【０１０２】
図２３は、条件の論理データアイテム更新プロセスを特徴とする、図２１と実質的に同じであるフローチャートである。図２３におけるほとんどのステップは、図２１と同じステップであり、明瞭化の意図で説明されない。ステップ２３０６において不揮発性メモリ中のファイルシステムセクションにおける更新された永続データを受け取ることは、複数の制約データアイテムおよび条件付き永続データ命令を受け取ることを含む。次いで、条件付き永続データ命令に応答して、第１のコードセクションにおける永続データアイテムと更新されたデータアイテムとを置換すること（ステップ２３１０）はサブステップを含む。条件付き永続データ命令を使用するステップ２３１０ａは、第１のコードセクションにおける永続データアイテムと制約データアイテムとを比較する。比較に応答して、ステップ２３１０ｂは、第１のコードセクションにおける永続データアイテムを置換する。
【０１０３】
いくつかの局面では、ステップ２３０６において不揮発性メモリ中のファイルシステムセクションにおける更新された永続データを受け取ることは、複数のデータアイテムを有する制約コードセクションを受け取ることを含む。次いで、比較に応答して、第１のコードセクションにおける永続データアイテムを置換することは（ステップ２３１０ｂ）、第１のコードセクションにおける永続データアイテムを制約コードセクションからのデータアイテムで置換することを含む。
【０１０４】
いくつかの局面では、ステップ２３０６において条件付き永続データ命令を受け取ることは、条件付き永続データ命令と共に組み込まれる制約データアイテムを受け取ることを含む。次いで、比較に応答して、第１のコードセクションにおける永続データアイテムを置換することは（ステップ２３１０ｂ）、第１のコードセクションにおける永続データアイテムを条件付き永続データ命令に組み込まれた制約データアイテムで置換することを含む。
【０１０５】
本発明のいくつかの局面では、比較に応答して、第１のコードセクションにおける永続データアイテムを置換すること（ステップ２３１０ｂ）は、第１のコードセクションにおける永続データアイテムを条件付き永続データ命令によって計算されたデータアイテムで置換することを含む。他の局面では、比較に応答して、第１のコードセクションにおける永続データアイテムを置換すること（ステップ２３１０ｂ）は、サブステップを含む。ステップ２３１０ｂ１は、条件付き永続データ命令によって実行された計算におけるオペランドとして制約データアイテムを使用して、データアイテムの積を作成する。ステップ２３１０ｂ２は、第１のコードセクションにおける永続データアイテムをデータアイテムの積で置換する。
【０１０６】
図２４は、ディレクトリデータアイテム更新プロセスを特徴とする、図２１と実質的に同じであるフローチャートである。図２４におけるほとんどのステップは、図２１と同じステップであり、明瞭化の意図で説明されない。ステップ２４０６において不揮発性メモリ中のファイルシステムセクションにおける更新された永続データを受け取ることは、複数のデータアイテムアドレスを有するディレクトリコードセクションを受け取ることを含む。次いで、永続データ命令に応答して、第１のコードセクションにおける永続データアイテムと更新された永続データアイテムとを置換すること（ステップ２４１０）は、サブステップを含む。ステップ２４１０ａは、ディレクトリコードセクションデータアイテムアドレスに応答して置換データアイテムを位置付ける。ステップ２４１０ｂは、第１のコードセクションにおける永続データアイテムを位置付けられた置換データアイテムと置換する。
【０１０７】
いくつかの局面では、ステップ２４０６において不揮発性メモリ中のファイルシステムセクションにおける更新された永続データを受け取ることは、複数の制約アドレスを有するディレクトリコードセクションを受け取ることを含む。次いで、永続データ命令に応答して、第１のコードセクションにおける永続データアイテムと永続データアイテムとを置換すること（ステップ２４１０）は、サブステップを含む。ステップ２４１０ｃは、ディレクトリコードセクションにおける制約アドレスを用いて制約データアイテムを位置付ける。条件付き永続データ命令を用いるステップ２４１０ｄは、第１のコードセクションにおける永続データアイテムを制約と比較する。比較に応答して、ステップ２４１０ｅは、第１のコードセクションにおける永続データアイテムを置換する。
【０１０８】
図２１を参照すると、ステップ２１０６において更新された永続データを受け取ることは、エアリンク、無線通信デバイスキーボード、インストール可能なメモリモジュール、赤外線、論理ポート、およびＲＦハードラインインターフェースを含む群から選択されたインターフェースを介して、更新された永続データを受け取ることを含む。
【０１０９】
いくつかの局面では、ステップ２１０６において更新された永続データを受け取ることは、少なくとも１つの更新されたＲＦ調整データアイテムを有するパッチマネージャランタイム命令を受け取ることを含む。ステップ２１０１ｂにおいてシンボルライブラリをコードセクションに配置すること（図示せず）は、第１のコードセクションにＲＦ構成データアイテムを配置することを含み、ステップ２１０２においてシステムソフトウェアを実行することは、以下に限定されないが、周波数調整、増幅器バイアス、減衰器調整、および温度調整を含む機能に対する第１のコードセクションからＲＦ調整データを使用することを含む。次いで、システムソフトウェア２１１０における永続データを更新するステップは、第１のコードセクションにおけるＲＦ調整データアイテムを置換する場合、パッチマネージャランタイム命令における更新されたＲＦ調整データアイテムを参照することを含む。上記で示されたように、更新されたデータアイテムは、置換、条件論理、またはディレクトリ更新プロセスを用いて参照される。
【０１１０】
本発明のいくつかの局面では、ステップ２１０６における更新された永続データを受け取ることは、少なくとも１つの更新された不揮発性システムおよびユーザ構成データアイテムを有するパッチマネージャランタイム命令を受け取ることを含む。ステップ２１０１ｂにおいてシンボルライブラリをコードセクションに配置すること（図示せず）は、不揮発性システムおよび第１のコードセクションにおけるユーザ構成データアイテムを配置することを含み、ステップ２１０２においてシステムソフトウェアを実行することは、以下に限定されないが、無線デバイスのホーム領域を識別し、許容可能なローミング領域を識別し、無線デバイスがデジタルおよびアナログモードで演算するかどうか識別し、そして無線デバイスの好適な演算モードを識別するためのシステム構成ファイルを含む機能に対して、不揮発性システムおよび第１のコードセクションからのユーザ構成データアイテムを使用することを含む。次いで、不揮発性システムと第１のコードセクションにおけるユーザ構成データアイテムを置換する場合、更新された不揮発性システムおよびパッチマネージャランタイム命令におけるユーザ構成データアイテムを参照することを含む。
【０１１１】
いくつかの局面では、ステップ２１０６における更新された永続データを受け取ることは、少なくとも１つの更新された不揮発性システムおよびユーザアプリケーションデータアイテムを有するパッチマネージャランタイム命令を受け取ることを含む。ステップ２１０１ｂにおいてシンボルライブラリをコードセクションに配置すること（図示せず）は、不揮発性システムおよび第１のコードセクションにおけるユーザアプリケーションデータアイテムを配置することを含む。ステップ２１０２においてシステムソフトウェアを実行することは、以下に限定されないが、電話帳ファイルを管理することおよびカレンダースケジューリングファイルを管理することを含む機能に対して第１のコードセクションからのユーザアプリケーションデータアイテムおよび不揮発性システムを用いることを含む。次いで、不揮発性システムと第１のコードセクションにおけるユーザアプリケーションデータアイテムを置換する場合、更新された不揮発性システムおよびパッチマネージャランタイム命令におけるユーザアプリケーションデータアイテムを参照することを含む。
【０１１２】
いくつかの局面では、ステップ２１０６における更新された永続データを受け取ることは、少なくとも１つの更新されたリソースデータアイテムを有するパッチマネージャランタイム命令を受け取ることを含む。ステップ２１０１ｂにおいてシンボルライブラリをコードセクションに配置すること（図示せず）は、ソースデータアイテムを第１のコードセクションに配置することを含む。ステップ２１０２においてシステムソフトウェアを実行することは、以下に限定されないが、ユーザインターフェース対話、ユーザインターフェースメニュー、およびユーザインターフェース言語を含む機能に対して第１のコードセクションからのリソースデータを使用するステップを含む。ステップ２１１０におけるシステムソフトウェアの永続データを更新するステップは、第１のコードセクションにおけるリソースデータアイテムを置換する場合、パッチマネージャランタイム命令における更新されたリソースデータアイテムを参照することを含む。
【０１１３】
システムソフトウェア問題の更新および訂正を支援するために、無線通信デバイスにおける動的命令セットを実行するためのシステムおよび方法が提供される。本システムは、容易に更新可能である。なぜなら、コードセクションにおけるシンボルライブラリの配置が、メモリにおけるコードセクションの開始点アドレスおよびシンボルライブラリにおけるシンボルのオフセットアドレスにアクセスするためのテーブルを有するからである。動的命令セットの使用は、デバイス特有の特徴に基づいて各無線デバイスに対してカスタム改変が実行されることを可能にする。システムソフトウェア永続データを更新する際に動的命令に対して可能な使用を示す数個の一般的な例が与えられてきた。しかし、本発明は、これらの例のみに限定されない。本発明の他の改変および実施形態が当業者に想起される。
【図面の簡単な説明】
【０１１４】
【図１】図１は、無線デバイスソフトウェアメンテナンスシステム全体の概略的なブロック図である。
【図２】図２は、エアリンクインターフェースを介する命令セットのインストールを強調する、ソフトウェアメンテナンスシステムの概略的なブロック図である。
【図３】図３は、無線通信デバイスにおける動的な命令セットを実行するための本発明のシステムを示す概略的ブロック図である。
【図４】図４は、無線デバイスメモリの概略的ブロック図である。
【図５】図５は、図３のコードセクションアドレステーブルを示すテーブルである。
【図６】図６は、シンボルを有する、図３のシンボルライブラリの詳細な図である。
【図７】図７は、図３のシンボルオフセットアドレステーブルを示すテーブルである。
【図８ａ】図８ａは、ランタイムエンジンによってアクセスされる演算コード（ｏｐ−ｃｏｄｅ）の図である。
【図８ｂ】図８ｂは、ランタイムエンジンによってアクセスされる演算コード（ｏｐ−ｃｏｄｅ）の図である。
【図９】図９は、無線通信デバイスのシステムソフトウェアにおける永続データを更新するための本発明のシステムを示す概略的ブロック図である。
【図１０】図１０は、図９のシステムの一般的強調を示す概略的ブロック図である。
【図１１ａ】図１１ａは、図１０の本発明のシステムの置換コードセクションの局面を示す概略的ブロック図である。
【図１１ｂ】図１１ｂは、図１０の本発明のシステムの置換コードセクションの局面を示す概略的ブロック図である。
【図１２】図１２は、本発明の条件の論理の局面を示す概略的ブロック図である。
【図１３】図１３は、条件付き永続データ命令の演算を示す概略的な図である。
【図１４】図１４は、本発明のシステムのディレクトリ局面を示す概略的ブロック図である。
【図１５ａ】図１５ａは、無線通信デバイスにおける動的命令セットを実行するための本発明の方法を示すフローチャートである。
【図１５ｂ】図１５ｂは、無線通信デバイスにおける動的命令セットを実行するための本発明の方法を示すフローチャートである。
【図１６】図１６は、例示的な動的命令セットの演算を示すフローチャートである。
【図１７】図１７は、別の例示的な動的命令セットの演算を示すフローチャートである。
【図１８】図１８は、第３の例示的な動的命令セットの演算を示すフローチャートである。
【図１９】図１９は、第４の例示的な動的命令セットの演算を示すフローチャートである。
【図２０】図２０は、第５の例示的な動的命令セットの演算を示すフローチャートである。
【図２１】図２１は、無線通信デバイスのシステムソフトウェアにおける永続データを更新するための本発明の方法を示すフローチャートである。
【図２２】図２２は、置換データアイテム更新プロセスを特徴とする図２１と実質的に同じであるフローチャートである。
【図２３】図２３は、条件論理データアイテム更新プロセスを特徴とする図２１と実質的に同じであるフローチャートである。
【図２４】図２４は、ディレクトリデータアイテム更新プロセスを特徴とする図２１と実質的に同じであるフローチャートである。
【図１】
2004537209.tif 000003
【図２】
2004537209.tif 000004
【図３】
2004537209.tif 000005
【図４】
2004537209.tif 000006
【図５】
2004537209.tif 000007
【図６】
2004537209.tif 000008
【図７】
2004537209.tif 000009
【図８ａ】
2004537209.tif 000010
【図８ｂ】
2004537209.tif 000011
【図９】
2004537209.tif 000012
【図１０】
2004537209.tif 000013
【図１１ａ】
2004537209.tif 000014
【図１１ｂ】
2004537209.tif 000015
【図１２】
2004537209.tif 000016
【図１３】
2004537209.tif 000017
【図１４】
2004537209.tif 000018
【図１５ａ】
2004537209.tif 000019
【図１５ｂ】
2004537209.tif 000020
【図１６】
2004537209.tif 000021
【図１７】
2004537209.tif 000022
【図１８】
2004537209.tif 000023
【図１９】
2004537209.tif 000024
【図２０】
2004537209.tif 000025
【図２１】
2004537209.tif 000026
【図２２】
2004537209.tif 000027
【図２３】
2004537209.tif 000028
【図２４】
2004537209.tif 000029
【国際公開パンフレット】
2004537209.tif 000030
2004537209.tif 000031
2004537209.tif 000032
2004537209.tif 000033
2004537209.tif 000034
2004537209.tif 000035
2004537209.tif 000036
2004537209.tif 000037
2004537209.tif 000038
2004537209.tif 000039
2004537209.tif 000040
2004537209.tif 000041
2004537209.tif 000042
2004537209.tif 000043
2004537209.tif 000044
2004537209.tif 000045
2004537209.tif 000046
2004537209.tif 000047
2004537209.tif 000048
2004537209.tif 000049
2004537209.tif 000050
2004537209.tif 000051
2004537209.tif 000052
2004537209.tif 000053
2004537209.tif 000054
2004537209.tif 000055
2004537209.tif 000056
2004537209.tif 000057
2004537209.tif 000058
2004537209.tif 000059
2004537209.tif 000060
2004537209.tif 000061
2004537209.tif 000062
2004537209.tif 000063
2004537209.tif 000064
2004537209.tif 000065
2004537209.tif 000066
2004537209.tif 000067
2004537209.tif 000068
2004537209.tif 000069
2004537209.tif 000070
2004537209.tif 000071
2004537209.tif 000072
2004537209.tif 000073
2004537209.tif 000074
2004537209.tif 000075
2004537209.tif 000076
2004537209.tif 000077
2004537209.tif 000078
2004537209.tif 000079
2004537209.tif 000080
2004537209.tif 000081
2004537209.tif 000082
2004537209.tif 000083
2004537209.tif 000084
2004537209.tif 000085
2004537209.tif 000086
2004537209.tif 000087
2004537209.tif 000088
2004537209.tif 000089
2004537209.tif 000090
2004537209.tif 000091
2004537209.tif 000092
2004537209.tif 000093
2004537209.tif 000094
2004537209.tif 000095
2004537209.tif 000096
2004537209.tif 000097
2004537209.tif 000098
2004537209.tif 000099
2004537209.tif 000100
2004537209.tif 000101
2004537209.tif 000102
2004537209.tif 000103
2004537209.tif 000104
2004537209.tif 000105
2004537209.tif 000106
2004537209.tif 000107
2004537209.tif 000108
2004537209.tif 000109
2004537209.tif 000110
2004537209.tif 000111
2004537209.tif 000112
【国際公開パンフレット（コレクトバージョン）】
2004537209.tif 000113
2004537209.tif 000114
【国際調査報告】
2004537209.tif 000115
2004537209.tif 000116
2004537209.tif 000117