JP3792232B2 - 情報処理装置及び格納位置管理方法及びプログラム - Google Patents

情報処理装置及び格納位置管理方法及びプログラム Download PDF

Info

Publication number
JP3792232B2
JP3792232B2 JP2004063364A JP2004063364A JP3792232B2 JP 3792232 B2 JP3792232 B2 JP 3792232B2 JP 2004063364 A JP2004063364 A JP 2004063364A JP 2004063364 A JP2004063364 A JP 2004063364A JP 3792232 B2 JP3792232 B2 JP 3792232B2
Authority
JP
Japan
Prior art keywords
data
storage
information
storage location
size
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2004063364A
Other languages
English (en)
Other versions
JP2005251045A (ja
Inventor
亮 小谷
良三 清原
大造 橘高
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2004063364A priority Critical patent/JP3792232B2/ja
Publication of JP2005251045A publication Critical patent/JP2005251045A/ja
Application granted granted Critical
Publication of JP3792232B2 publication Critical patent/JP3792232B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Description

本発明は、情報処理装置、特に携帯電話機・PDA等の組み込み情報機器に関わる。
近年、携帯電話機等の組み込み端末では、高機能化が進み、以前パーソナルコンピュータに使用されていたものと同程度のCPUを備え、搭載されるRAMや不揮発性メモリ(フラッシュROMやバックアップ電源つきSRAM等)の容量も飛躍的に増加している。それに伴い、不揮発性メモリ上に搭載されるソフトウェアは複雑化・大規模化している。このため、組み込み端末の開発においては、このような大規模ソフトウェアの品質の維持が非常に大きな課題となっており、実際に市場に出回った組み込み端末に不具合が発見される例が後を絶たない。製品の納期を遵守しながらソフトウェアを全く不具合のない状態で出荷することが事実上困難となってきているため、出荷後にユーザの手元でソフトウェアを更新する手段が実現されてきている。
例えば、特開2001−273147号公報では、バージョンアップされた情報およびその旧情報から差分情報を生成し、端末機器に送信する情報配布処理を提供する技術が開示されている。具体的には、サーバ計算機は、保持している情報のうち、バージョンアップされた情報およびその旧情報を有し、旧情報とバージョンアップされた情報とによって差分情報を生成する差分情報生成手段を有し、端末機器は、端末機器が保持する情報を最新の情報にバージョンアップする手段を有し、サーバ計算機から差分情報が送信されたとき、その差分情報および端末機器が保持する情報をもとにバージョンアップされた情報を生成する。
また、複雑化・大規模化にともない、搭載されるソフトウェアのオペレーティングシステムも、以前よりも高機能なものが採用されるようになってきており、ファイルシステムの広範囲な使用が進んできている。従来は、出荷後にユーザの手元で追加・修正されるデータのみファイルシステムで管理する等の方法が用いられることが多かったが、最近では、アプリケーションプログラムや、基本ソフトウェアの一部も、ファイルシステムの下に管理されるようなアーキテクチャが採用される例が増えてきている。
ファイルシステム上のシステムのソフトウェア更新方法の従来の例としては、UNIX(登録商標)におけるpatchコマンドが有名である。patchコマンドは、新旧のディレクトリ構造をファイルシステム上で比較した差分ファイルを入力として、旧版のディレクトリ構造に差分ファイルの内容を適用することにより新版のディレクトリ構造へ更新する機能を持つ。この際に、個々のファイルの更新はファイルシステムの機能を利用することによりおこなわれる。具体的には、旧版のディレクトリ構造の中に存在する複数のファイルのうち、差分ファイル中に差分情報が記載されているファイルのみをオープン(open)し、ファイルの内容を読み込み(read)、差分情報との照合を行なったのち、新版のファイルと一致するような書き込み(write)をおこない、ファイルをクローズ(close)する。このopen/read/write/closeといった機能はファイルシステムによって提供されるものであり、この一連の作業をおこなうことにより、ファイルシステムが搭載されている物理的なデバイス(ハードディスクドライブやフラッシュメモリ等)の内容を間接的に書き換えていることになる。例えば、上記の一連の操作においてファイルのサイズに変更が生じた場合には、closeが行なわれる際に、ファイルシステム中に格納されている対応するファイルのファイルサイズの情報の書き換えが行なわれる。
特開2001−273147号公報
一般にファイルシステムは、物理的なデバイス上では、ファイルシステム全体の管理情報を格納する領域・ディレクトリ構造を管理する領域・ファイルデータを格納する領域等に分かれている。上記のようなファイル更新の操作が行なわれた場合には、ファイルデータ領域が書き換えられると同時に、ファイルシステムの管理領域やディレクトリ構造の管理領域にも書き換えが発生する。また、ファイルのサイズが変更になった場合に、デバイス上の空き領域が不足する場合には、ファイルデータの再配置をおこなうことにより空き領域を確保する操作(ガーベジコレクション)が発生することがある。
このため、patchコマンドのように、ファイルシステム上の操作により、複数のファイルに対して更新がおこなわれる場合には、一部のファイルに対する更新のみ完了している各中間段階においてもファイルシステム上の情報が完全であることが保証されるため、管理情報の書き換えが複数回発生したり、ガーベジコレクションが複数回発生する等のオーバーヘッドが発生し、ソフトウェア更新の完了までの時間に影響する。
本発明の目的の1つは、以上のような課題を解決することにあり、ファイルシステムが物理的には不揮発性メモリ上に配置されている場合に、ファイルシステムが適用する(open/read/write/closeなどの)機能を用いずに、オーバーヘッドの発生を抑制し、ソフトウェア更新完了までの時間を短縮できるソフトウェア更新技術を実現することである。
本発明に係る情報処理装置は、
所定の不揮発性メモリを対象とし、前記不揮発性メモリにおけるデータの格納位置を管理する情報処理装置であって、
前記不揮発性メモリに格納される複数の格納データのデータサイズの分析のために用いられるデータサイズ分析用情報を取得するデータサイズ分析用情報取得部と、
前記不揮発性メモリにおける各格納データの仮の格納位置を示す仮格納位置情報を取得する仮格納位置情報取得部と、
前記データサイズ分析用情報取得部により取得されたデータサイズ分析用情報に基づき各格納データのデータサイズを分析し、分析した各格納データのデータサイズと前記仮格納位置情報取得部により取得された仮格納位置情報とに基づき、複数の格納データの間に空き領域を配置して各格納データの格納位置を指定する格納位置指定情報を生成する格納位置指定情報生成部とを有することを特徴とする情報処理装置。
本発明によれば、複数の格納データの間に空き領域を配置して各格納データの格納位置を指定する格納位置指定情報を生成するため、ソフトウェア更新の際のオーバーヘッドの発生を抑制し、ソフトウェア更新完了までの時間を短縮することができる。
実施の形態1.
図1は、本実施の形態に係るサーバ装置(情報処理装置)1の構成例を示す図である。本実施の形態に係るサーバ装置1は、携帯電話機、PDA等の組み込み端末(以下、端末または端末装置という)の不揮発性メモリにおけるプログラムやファイルデータ等の格納位置を指定することを主な役割とする。
また、図23は、本実施の形態に係るサーバ装置1と端末装置2との関係を示す図であり、サーバ装置1と端末装置2とがネットワーク3で接続され、サーバ装置1より各種情報を端末装置2に送信することが可能である。
図1において、データサイズ分析用情報入力部101は、端末が格納する格納データ(プログラムやファイルデータ等)のデータサイズを分析するためのデータサイズ分析用情報を入力する。データサイズ分析用情報の内容については、後述する。なお、データサイズ分析用情報入力部101はデータサイズ分析用情報取得部の例である。仮格納位置情報入力部102は、端末の不揮発性メモリにおける各格納データの仮の格納位置を示す仮格納位置情報を入力する。仮格納位置情報の内容については、後述する。なお、仮格納位置情報入力部102は、仮格納位置情報取得部の例である。格納位置指定情報生成部103は、データサイズ分析用情報入力部101から入力されたデータサイズ分析用情報と仮格納位置情報入力部102から入力された仮格納位置情報に基づいて、各格納データの間に所定の余裕領域(空き領域)を配置して各格納データの格納位置を指定する格納位置指定情報を生成する。格納位置指定情報書込/読出部104は、格納位置指定情報生成部103により生成された格納位置指定情報を格納位置指定情報記憶部106に書き込み、また、所定の場合に、格納位置指定情報記憶部106から格納位置指定情報を読み出す。出力部105は、格納位置指定情報生成部103により生成された格納位置指定情報を出力する。格納位置指定情報記憶部106は、格納位置指定情報書込/読出部104の制御に従い、格納位置指定情報を記憶する。
なお、サーバ装置1は、図示していないが、例えばマイクロプロセッサ等のCPU、半導体メモリ等や磁気ディスク等の記録手段を有する計算機により実現することができる。記録手段に、サーバ装置1に含まれる各構成要素の機能を実現するプログラムを記録し、CPUがこれらのプログラムを読み込むことによりサーバ装置1の動作を制御し、各構成要素の機能を実現することも可能である。
図2は端末の代表的なハードウェア構成を示す図である。端末はCPUを備え、バスを経由してネットワークと通信するための通信手段、RAM、不揮発性メモリ(ROM)、キーなどの入力手段、表示手段と接続されている。不揮発性メモリには、ブートローダ、カーネル、ファイルシステム、および書き換え用プログラムが格納されている。ファイルシステム中には、端末の機能に必要な実行プログラムが格納されている。
次に、図21を参照して、サーバ装置1の動作を説明する。なお、以下の説明では、端末の不揮発性メモリに初版の格納データを格納する際の各格納データの格納位置を指定する場合について説明する。
先ず、ステップS2201において、データサイズ分析用情報入力部101がデータサイズ分析用情報を入力する(データサイズ分析用情報取得ステップ)。データサイズ分析用情報とは、端末が格納する格納データのデータサイズを分析するための情報であり、例えば、ディレクトリツリー及び端末の不揮発性メモリに格納される他の格納データ(ブートヘッダ・カーネル・書き換えプログラム)である。図4は、ステップS2201において、入力されるディレクトリツリーの例を示す図である。本ディレクトリツリーの内容が不揮発性メモリ上のファイルシステム上に置かれる。図において、ルート(根元)のディレクトリの名前は”/”であり、その下にdir1とdir2というディレクトリが配置されている。ディレクトリdir1の下にはファイルfile1が、ディレクトリdir2の下にはfile2およびfile3が、それぞれ配置されている。
次に、ステップS2202において、仮格納位置情報を入力する(仮格納位置情報取得ステップ)。仮格納位置情報とは、格納位置指定情報の生成に用いる各格納データの仮の格納位置を示す情報であり、例えば、図3に示す不揮発性メモリ構成情報である。不揮発性メモリ構成情報には、不揮発性メモリに搭載するそれぞれのデータ領域の開始番地を記述する。データ領域に重なりが生じないように、十分に余裕をとることが必要である。図において、不揮発性メモリにはブートヘッダ・カーネル・ファイルシステムヘッダ・ディレクトリ情報・ファイルデータ・書き換えプログラムのそれぞれが配置され、たとえばブートヘッダは16進数のアドレスで0x00000000番地、ファイルデータは0x00400000番地から配置されるようになっている。ファイルシステムヘッダ・ディレクトリ情報・ファイルデータはファイルシステムの構成要素であり、ディレクトリツリーの内容から作成されるファイルシステムに対応して配置される。
次に、ステップS2203において、ステップS2201で入力された情報とステップS2202で入力された情報とに基づいて格納位置指定情報を生成する(格納位置指定情報生成ステップ)。この格納位置指定情報の生成については、後述するが、格納位置指定情報生成部103は、ステップS2201及びステップS2202で入力された情報を入力とし、指定された開始アドレスにそれぞれの情報を配置することにより、それぞれ格納位置指定情報である不揮発性メモリイメージ情報及び不揮発性メモリ配置情報を作成する。ファイルシステムについては、ディレクトリツリーからディレクトリツリーを作成し、ファイルシステムヘッダ・ディレクトリ情報・ファイルデータを作成する。これはたとえば、UNIX(登録商標)オペレーションシステムを組み込みシステムに使用する際にROM上に実装するファイルシステムとして多用されているCramFSファイルシステムであれば、mkcramfsというプログラムを使用することにより可能である。CramFSの場合、ファイルシステムヘッダはスーパーブロックと呼ばれており、ディレクトリ情報はi−node領域と呼ばれている。
ステップS2203において格納位置指定情報(不揮発性メモリイメージ情報及び不揮発性メモリ配置情報)が生成された後は、ステップS2204で格納位置指定情報が出力部105から出力され、また、ステップS2205で格納位置指定情報書込/読出部104により格納位置指定情報が格納位置指定情報記憶部106に格納される。
図5は格納位置指定情報生成部103により生成される、格納位置指定情報の一つである不揮発性メモリイメージ情報の例を示す図である。図において、斜線部は余裕領域(空き領域)であり、データが何も配置されず不揮発性メモリの初期状態となっている。たとえば、カーネルの開始アドレスが0x00100000、ファイルシステムヘッダの開始アドレスが0x00200000と不揮発性メモリ構成情報に指定されていたが、カーネルのサイズが0x00200000−0x00100000=0x100000バイトよりも小さい場合には、このような余裕領域が不揮発性メモリ上に発生することになる。ディレクトリツリーにより作成されたファイルシステムヘッダ・ディレクトリ情報もそれぞれ指定された位置に配置される。
file1、file2、file3はファイルデータであり、ディレクトリツリー中に与えられた各ファイルの内容である。図において、ファイルシステムヘッダ・ディレクトリ情報・およびそれぞれのファイルデータの間には、余裕領域が設けられている。格納位置指定情報生成部103は、このような余裕領域を自動的に挿入する。自動的に挿入する余裕領域のサイズを決定するための方法としては、最も単純にはそれぞれのデータの開始アドレスを一定間隔とすることが考えられる。
図6は格納位置指定情報生成部103により生成される、格納位置指定情報の一つである不揮発性メモリ配置情報の例を示す図である。不揮発性メモリ配置情報は、格納位置指定情報生成部103が、不揮発性メモリ構成情報(仮格納位置情報)に基づき、それぞれのデータを不揮発性メモリ上に配置した際の結果を示したものであり、基本的に不揮発性メモリ構成情報を包含するものである。例えば、ブートヘッダは不揮発性メモリ上でのサイズが0x00080042バイトであったため、余裕領域はそのアドレスからスタートしている。なお、ファイルシステムヘッダ・ディレクトリ情報・およびfile1、file2、file3のそれぞれの後ろの余裕領域は、格納位置指定情報生成部103が自動的に挿入したものであるが、本実施の形態においてはそれぞれのデータの間隔を0x00100000バイト刻みで増加させている(それぞれ開始アドレスが0x00200000、0x00300000、0x00400000、0x00500000、0x00600000となっている)。そのためこのような開始アドレスの配置になっており、余裕領域が自動的に配置される。
ここで、図22を用いて、格納位置指定情報の生成手順(ステップS2203)の内容を説明する。図21のステップS2202で入力された不揮発性メモリ構成情報(仮格納位置情報)に示された順に、各格納データを順に分析対象とし、ステップS2301において、対象となる格納データのデータサイズをステップS2201で入力されたディレクトリツリーやブートヘッダ・カーネル・書き換えプログラム(データサイズ分析用情報)をもとに算出する。次に、ステップS2302において、当該格納データの開始アドレスに算出したデータサイズを加算する。次に、ステップS2302で求めた加算値に対応するアドレスを余裕領域の開始アドレスに指定し(ステップS2303)、指定した余裕領域の開始アドレスを不揮発性メモリ構成情報(仮格納位置情報)に書き込む(ステップS2304)。次に、全ての格納データについて余裕領域の開始アドレスが書き込まれたか否かを確認し(ステップS2305)、全ての格納データについて余裕領域の開始アドレスの書き込みが終了している場合(ステップS2305でYes)は、処理を終了する。なお、全ての格納データについて余裕領域の開始アドレスが書き込みまれた不揮発性メモリ構成情報(仮格納位置情報)が不揮発性メモリ配置情報となり、この不揮発性メモリ配置情報をイメージ情報にデータ変換したものが不揮発性メモリイメージ情報となる。一方、余裕領域の開始アドレスの書き込みが行われていない格納データが存在する場合(ステップS2305でNo)は、不揮発性メモリ構成情報(仮格納位置情報)の順序で次の格納データを分析対象とし(ステップS2306)、ステップS2301に戻る。
さて、作成された不揮発性メモリイメージ情報は、初版においては端末上の不揮発性メモリ上に書き込まれて、端末が出荷される。端末の出荷後に不具合が発生した場合には、不揮発性メモリ上の端末ソフトウェアを修正しなければならない。本実施の形態においては、不具合修正対象をファイルシステム上のディレクトリツリー内に存在するファイルと仮定する。ディレクトリツリー内のファイルに不具合が発生した場合には、まずディレクトリツリー上のファイルを改修した修正版を人手により作成し、その後新版のディレクトリツリーに対して、不揮発性メモリイメージ情報及び不揮発性メモリ配置情報の作成をおこなう。
新版のディレクトリツリーが作成された後、データサイズ分析用情報入力部101には、新版のディレクトリツリーがデータサイズ分析用情報として入力され、仮格納位置情報入力部102には、初版の場合と異なり、不揮発性メモリ構成情報の代わりに、初版の際に作成された不揮発性メモリ配置情報が、仮格納位置情報として入力される。なお、初版の際に作成された不揮発性メモリ配置情報は、格納位置指定情報記憶部106に記憶されているので、格納位置指定情報書込/読出部104が初版の際に作成された不揮発性メモリ配置情報を格納位置指定情報記憶部106から読み出して格納位置指定情報生成部103に提供してもよい。この場合は、格納位置指定情報書込/読出部104が仮格納位置情報取得部として機能することになる。不揮発性メモリ配置情報には、ファイルシステムの構成要素であるファイルシステムヘッダ・ディレクトリ情報・およびfile1、file2、file3というそれぞれのファイルデータの開始アドレスが含まれる。新版の不揮発性メモリイメージ作成時には、これらの開始アドレスを変えないような配置をおこなう。
つまり、格納位置指定情報生成部103は、データサイズ分析用情報入力部101及び仮格納位置情報入力部102(または格納位置指定情報書込/読出部104)からの情報に基づき、新版の各格納データの間に空き領域を配置して新版の各格納データの格納位置を指定する格納位置指定情報を生成するが、その際に、格納データの改訂により新版においてデータサイズが変化する格納データが存在する場合に、旧版の格納データの格納位置指定情報において当該格納データの格納位置として指定されている領域と当該格納データについて設けられている空き領域とを合わせた領域(格納候補領域)にデータサイズが変化した新版の格納データを格納するよう指定する格納位置指定情報を生成する。また、データサイズの変更がない格納データについては、当該格納データの格納位置及び空き領域は旧版のままとする。
なお、従来は、余裕領域の挿入をおこなわず、しかも第2版以降も初版でおこなったのと同様に不揮発性メモリ構成情報から不揮発性メモリイメージの作成をおこなっていたため、ファイルのサイズが変化した場合に、初版と第2版以降ではメモリイメージにアドレスのずれが生じていた。このようなアドレスのずれは、端末上でソフトウェア更新のために不揮発性メモリ領域に書き込みをおこなう際に、不揮発性メモリ領域の書き込みが必要な領域が増加することになる。たとえば、本実施の形態では、file1のみを修正する場合には、file1の修正の影響は余裕領域に吸収され、file2やfile3に影響を与えることはない。しかし、余裕領域を設けない場合には、file1のサイズが増加することにより、file2やfile3の開始アドレスも後ろにずれることになる。その結果、file2やfile3には修正がないにもかかわらず、端末上ではアドレスのずれに対応するために、file2、file3を表すメモリ領域を書き直す必要が出てくる。一方、本実施の形態においては、余裕領域の挿入と、不揮発性メモリ配置情報の利用により、それぞれのデータが、旧版と同じ開始アドレスから配置されることが保証されるため、上記のようなずれが生じず、ソフトウェア更新時の不揮発性メモリ書き込み量を減少させることが可能となる。本実施の形態においては、file2、file3に関しては、端末上で上書きをおこなう必要がない。
図7は第2版作成時に格納位置指定情報生成部103が出力する不揮発性メモリ配置情報の例である。図7では、file1のみに変更が生じ、file1のサイズが変わっている場合の不揮発性メモリ配置情報の例を示している。この場合、file1のサイズが増加しているので、file1の後ろの余裕領域のサイズが減少している。一方で、他の格納データについては、それぞれの格納データの開始アドレス及び余裕領域の開始アドレスは変化していない。
このように、本実施の形態では、不揮発性メモリに格納される複数の格納データのデータサイズの分析のために用いられるデータサイズ分析用情報を取得するデータサイズ分析用情報取得部と、不揮発性メモリにおける各格納データの仮の格納位置を示す仮格納位置情報を取得する仮格納位置情報取得部と、データサイズ分析用情報取得部により取得されたデータサイズ分析用情報に基づき各格納データのデータサイズを分析し、分析した各格納データのデータサイズと仮格納位置情報取得部により取得された仮格納位置情報とに基づき、複数の格納データの間に空き領域を配置して各格納データの格納位置を指定する格納位置指定情報を生成する格納位置指定情報生成部とを有する情報処理装置について説明した。
また、本実施の形態では、各格納データの間に空き領域を配置するよう指定する格納位置指定情報を生成する場合について説明した。
また、複数の格納データを複数のグループに分類し、各グループの間に空き領域を配置するよう指定する格納位置指定情報を生成することも可能である。
また、データサイズ分析用情報取得部は、格納データの改訂が行われる場合に、新版の複数の格納データのデータサイズの分析のために用いられるデータサイズ分析用情報を取得し、仮格納位置情報取得部は、旧版の格納データについて格納位置指定情報生成部により生成された格納位置指定情報を仮格納位置情報として取得し、格納位置指定情報生成部は、データサイズ分析用情報取得部により取得されたデータサイズ分析用情報に基づき新版の各格納データのデータサイズを分析し、分析した新版の各格納データのデータサイズと仮格納位置情報取得部により取得された旧版の格納データの格納位置指定情報とに基づき、新版の複数の格納データの間に空き領域を配置して新版の各格納データの格納位置を指定する格納位置指定情報を生成する。
また、本実施の形態では、新版の各格納データの間に空き領域を配置するよう指定する格納位置指定情報を生成する場合について説明した。
また、新版の複数の格納データを複数のグループに分類し、各グループの間に空き領域を配置するよう指定する格納位置指定情報を生成することも可能である。
また、本実施の形態では、旧版の格納データの格納位置指定情報において指定された格納位置と同じ格納位置を新版の各格納データに対して指定する格納位置指定情報を生成する。
以上のように、本実施の形態によれば、複数の格納データの間に空き領域を配置して各格納データの格納位置を指定する格納位置指定情報を生成するため、ソフトウェア更新の際のオーバーヘッドの発生を抑制し、ソフトウェア更新完了までの時間を短縮することができる。
実施の形態2.
図8は、新版においてファイルサイズが大きく増加した場合に格納位置指定情報生成部103により生成される不揮発性メモリ配置情報の例を示す図である。この場合、file1のサイズが0x00133332に増加している。この場合には、初版におけるfile1の後ろの余裕領域内に増加量が収まらないため、file1の移動がおこなわれる。すなわち、file3の後ろの余裕領域内に新たに0x00700000番地にfile1を配置する。このことにより、余裕領域のサイズを越えた場合にも、file2、file3の書き込み位置に影響が生じないため、端末上でのソフトウェア更新において、不揮発性メモリの書き込み量を削減することが可能となる(file2、file3を上書きする必要がない)。
なお、サーバ装置1の構成は、図1に示したものと同様であり、説明は省略する。
このように、本実施の形態では、格納データの改訂により新版においてデータサイズが増加する格納データが存在する場合に、旧版の格納データの格納位置指定情報において当該格納データの格納位置として指定されている領域と当該格納データについて設けられている空き領域とを合わせた格納候補領域にデータサイズが増加した新版の格納データが格納可能か否かを判断し、格納候補領域に格納可能な場合には、実施の形態1で示したように、データサイズが増加した新版の格納データを格納候補領域に格納するよう指定する格納位置指定情報を生成し、格納候補領域に格納できない場合に、データサイズが増加した新版の格納データを格納可能な空き領域(図8の例では、file3の後ろの領域)を検索し、検索した空き領域にデータサイズが増加した新版の格納データを格納するよう指定する格納位置指定情報を生成する。
以上より、本実施の形態によれば、いずれかの新版の格納データが余裕領域のサイズを越えた場合にも、他の格納データの書き込み位置に影響が生じないため、端末上でのソフトウェア更新において、他の格納データの上書きをする必要がなく、不揮発性メモリの書き込み量を削減することが可能となる。
実施の形態3.
新版において、ファイルが新たに追加されるケースも考えられる。
図9はファイルが新たに追加された場合の新版のディレクトリツリーの例を示す図である。本例では、ディレクトリdir2の下にfile21が追加されている。
本実施の形態においては、基本的にメモリ上でのファイルの配置の順番は、ファイル名の辞書的配列としている。したがって、仮に図のようなディレクトリツリーが初版において与えられた場合には、file1、file2、file21、file3の順にメモリ上に配置されることになる。しかし、第2版以降においては、端末上での不揮発性メモリ書き込み量の削減のためには、初版のファイルの順序を極力変化させることなく配置することが望ましい。そこで、本実施の形態においては、新規ファイルの追加は、既存のファイルがすでに配置されている領域ではなく、余裕領域に対しておこなう。
図10はファイル数が増加した場合の格納位置指定情報生成部103により生成される不揮発性メモリ配置情報の例を示す図である。図において、file21は辞書的配列であればfile2とfile3の間に配置されるべきところであるが、これがfile3の後ろの余裕領域上に配置されている。このように、格納位置指定情報生成部103は、ファイルが新規に追加された場合には余裕領域に配置を行うよう指定する格納位置指定情報を生成する。
なお、サーバ装置1の構成は、図1に示したものと同様であり、説明は省略する。
このように、本実施の形態では、格納データの改訂により新たな格納データが生成された場合に、旧版の格納データの格納位置指定情報において空き領域として指定されている領域に新たに生成された格納データを格納するよう指定する格納位置指定情報を生成する。
以上より、本実施の形態によれば、第2版以降において、初版のファイルの順序を極力変化させることなく新たなファイルを配置することができ、端末上での不揮発性メモリ書き込み量を削減することが可能になる。
実施の形態4.
ところで、端末側で端末ソフトウェアの更新をおこなう際には、不揮発性メモリ上の内容を書き換えなければならない。端末は、サーバ装置1からネットワーク3を経由して送信される差分コマンドに従って不揮発性メモリの書き換えをおこなう。その際に、端末のRAM上に一旦不揮発性メモリに書き込む単位のイメージが作成される。
図11は端末上でのソフトウェア書き換えの全体的な手順を示す。まず、差分コマンドをネットワーク経由でダウンロードし(ステップS1101)、次に差分コマンドに従って不揮発性メモリイメージを書き換える(ステップS1102)。
なお、従来のソフトウェア更新は、図20にあるような手順でおこなわれる。これは、例えばUNIX(登録商標)で多用されるpatchプログラムを使用した場合にあてはまる。まず、端末は差分情報(パッチ)をダウンロードする(ステップS2001)。差分情報には、どのファイルに対してどのような修正を施すべきかが記述されている。次に、差分情報に含まれるそれぞれのファイルに対して、ファイルシステムの機能を用いて書き換えをおこなう(ステップS2002)。たとえば、あるファイルを修正する場合には、そのファイルをオープン(open)し、書き込み(write)をおこない、クローズ(close)する。このopen/write/closeといった機能は、ファイルシステムの機能として提供されるものであり、内部的には、ファイルデータ領域のほかに、ファイルシステムヘッダやディレクトリ情報の領域への書き換えの処理に変換される。したがって、複数のファイルに対する書き換えをおこなう場合には、それぞれのファイルを修正するごとに、ファイルシステムヘッダやディレクトリ情報への書き換えが発生するため、処理効率が良くない。これに対し、本実施の形態の方法によれば、ファイルシステムの機能を用いずに、不揮発性メモリイメージの新版・旧版の差分情報を用いて、不揮発性メモリを直接書き換えるため、ファイルシステムヘッダやディレクトリ情報への書き換えが一度で済む。
以下、不揮発性メモリイメージ書き換え処理について説明する。
図12は端末に送信される差分コマンドの例である。この例では、図6のfile1の先頭に4バイト分、0x12345678を追加し、以後すべて旧版のfile1のコピーするコマンドを示している。これにより、file1のサイズは0x00424058から0x0042405aとなる。なお、実際にはfile1のサイズが変化することにより、ファイルシステムヘッダやディレクトリ情報にも影響があるが、本例ではこれを省略する。本例の差分コマンドは以下の内容から成る。
・ SKIP 0x00400000
不揮発性メモリの先頭0x00400000バイト分を読み飛ばす(書き換えをおこなわない)
・ DATA 0x12345678
0x12345678を(現在の0x00400000バイト目から)書き込む
・ COPY 0x00400000、0x00424058
旧版の不揮発性メモリの0x00400000バイト目から0x00424058バイト分コピーをおこなう
・ FLUSH
今までの内容を実際に不揮発性メモリに書き込む
図13は差分コマンドによる端末上の不揮発性メモリの変化の様子を示す図である。図のように、データの書き込み(0x12345678)および領域のコピーを端末の不揮発性メモリ上でおこなう必要がある。
このような場合には、端末での処理には次のような問題が生ずる。もしも、不揮発性メモリ上でDATAコマンドの処理(0x12345678の書き込み)をおこなってからCOPY(領域のコピー)をおこなおうとすると、コピーする領域の先頭の4バイトがすでに0x12345678に書き換えられているため、望ましい結果が得られない。この場合には、COPYをおこなってからDATAを処理することにより、望ましい結果が得られるが、一般には不揮発性メモリ上の処理だけで書き換えをおこなうのは難しい。したがって、まず不揮発性メモリ上の内容を一旦RAM(ワークメモリ)にコピーして、RAM上に所望の新版のメモリイメージを作成してから、不揮発性メモリにコピーする方法をとる。
図14は端末上での不揮発性メモリ書き換えの様子を示す図である。図に示すように、差分コマンドの実行の際には、一旦RAM上でメモリイメージが作成され、FLUSHコマンド実行時に不揮発性メモリ上にコピーされる。これにより、コマンド実行順により不揮発性メモリの内容が破壊される問題は解決される。なお、FLUSHコマンドは、余裕領域の最後に挿入される。なお、以上のことはRAM上に一旦コピーすることの必要性を説明しているだけであって、本特許の請求する発明の範囲ではない。
ところで、今までに述べてきた実施の形態においては、ファイル1つ1つに対して余裕領域を設けてきた。実際には、余裕領域を多くとりすぎると、不揮発性メモリ上で実際に使用可能な領域が減ることになり、好ましくない。したがって、ファイル1つ1つに対してではなく、いくつかの複数のファイルをグループに分類し、各グループの間に余裕領域を挿入することが考えられる。上に説明したように、FLUSHコマンドは、余裕領域の単位ごとに挿入され、それまでに端末のRAM上に作成されてきたメモリイメージを不揮発性メモリに書き込む契機となる。
ところが、端末においてはRAMの容量を大きくとることができない場合がある。つまり、端末のコストを削減するためにRAMのサイズを小さくせざるを得ない場合がある。したがって、複数のファイルをグループに分類し、各グループに対して余裕領域を挿入する場合に、多くのファイルをまとめたために、次の余裕領域までのデータの量が大きくなりすぎると、端末において使用可能なRAMの量を超える場合が考えられ、この場合には上記方式により不揮発性メモリの書き換えをおこなうことができなくなる。
したがって、本実施の形態の格納位置指定情報生成部103では、あらかじめ端末の持つRAM(ワークメモリ)の量を考慮に入れて、余裕領域を挿入する単位として複数のファイルをまとめる際に、このRAMの上限を超えないようにすることを特徴とする。
図15は本実施の形態による格納位置指定情報生成部103により作成された不揮発性メモリ配置情報の例である。この場合、file1のサイズが0x00080000であり、file2のサイズが0x00060000であり、file3のサイズが0x000f0000である。端末のRAMの使用可能な上限が0x00100000バイトである場合、file1とfile2をあわせて0x000d0000というサイズとなり、RAMの使用可能な上限に収まる。ところが、file1、file2、file3を合わせると、サイズは0x001c0000となり、RAMの上限を超える。したがって、格納位置指定情報生成部103は、file1、file2をまとめて、その後ろに余裕領域を挿入する。また、file3の後ろにも余裕領域を挿入する。
なお、サーバ装置1の構成は、図1に示したものと同様であり、説明は省略する。
このように、本実施の形態では、複数の格納データをグループとして分類する場合に、各グループのデータサイズが、不揮発性メモリに新版の格納データを格納する際に用いられるワークメモリのメモリサイズ以下となるように新版の複数の格納データを複数のグループに分類し、各グループの間に空き領域を配置するよう指定する格納位置指定情報を生成する。
以上より、本実施の形態によれば、ワークメモリであるRAMの容量が少ない端末においても、有効に端末ソフトウェアの更新を行うことができる。
実施の形態5.
ところで、RAMの使用可能サイズを上回る大きさのファイルが存在する場合が考えられる。この場合には、格納位置指定情報生成部103は、ファイルが分割可能であれば、分割した部分に余裕領域を挿入する。分割可能なファイルとして、コンパイルリンク済みのファイルが、いくつかのセクションに分離されている場合がある。C言語等で記述されたプログラムをコンパイラリンクした場合、コンパイル済みファイルは、命令セクション(TEXTと呼ばれることがある)、初期値付きデータセクション、初期値なしデータセクション(BSSと呼ばれることがある)等に分割されていることが多い。このような場合に、格納位置指定情報生成部103は、これらのセクションの間に余裕領域を挿入するよう指示する格納位置指定情報を生成する。
図16は本実施の形態に係る格納位置指定情報生成部103が生成する不揮発性メモリ配置情報の例である。これによれば、file3は命令セクション、初期値つきデータセクション、初期値なしデータセクションがすべて0x000f0000である。この場合、RAMの使用可能なサイズを0x00100000バイトとすると、file3単体ではこれを超えるため、それぞれのセクションごとに余裕領域を挿入している。
なお、サーバ装置1の構成は、図1に示したものと同様であり、説明は省略する。
このように、本実施の形態では、新版のいずれかの格納データのデータサイズが、不揮発性メモリに新版の格納データを格納する際に用いられるワークメモリのメモリサイズ以上となる場合に、それぞれのセクション(パーツ)のデータサイズがワークメモリのメモリサイズ以下となるように当該新版の格納データを複数のセクション(パーツ)に分割し、各セクション(パーツ)の間に空き領域を配置するよう指定する格納位置指定情報を生成する。
以上より、本実施の形態によれば、ワークメモリであるRAMの容量が少ない端末においても、有効に端末ソフトウェアの更新を行うことができる。
実施の形態6.
本実施の形態では、端末ソフトウェアの改訂があった場合に、サーバ装置1において新版と旧版のプログラムの差分を抽出し、抽出した差分を端末装置2に通知する場合について説明する。
図24は、本実施の形態に係るサーバ装置1の構成例を示す図であり、101〜106の要素は図1と同じため説明を省略する。差分情報生成部107は、格納位置指定情報記憶部106に格納されている新版及び旧版の格納位置指定情報を比較して差分を抽出し、抽出結果を差分情報として生成する。通信部108は差分情報生成部107で生成された差分情報を端末装置2に送信する。
図17は差分情報生成部107の動作手順を示す図である。入力は、新旧の不揮発性メモリイメージ情報と、新旧の不揮発性メモリ配置情報である。不揮発性メモリ配置情報に記述されたデータ領域の集合を、旧版・新版それぞれS1、S2とする。図のようにS2からデータ領域を、アドレスの若い順に取り出し、F2とする。F2がファイルデータでない場合(F2がファイルシステムヘッダ・ディレクトリ構造のいずれかの場合)、F2に対応するデータ領域がS1に存在するため、それをF1とし、F2とF1の差分である差分コマンドを出力する。F2がファイルデータである場合には、新規ファイルである場合と既存のファイルである場合がありうる。S1中にF2と同一のパスを持つファイルデータが存在する場合には、それをF1とし、F2とF1の差分である差分コマンドを出力する。S1中にF2と同一のパスを持つファイルデータが存在しない場合には、新規ファイルであるため、F2を追加する差分コマンドを出力する。
なお、ファイルごとの差分抽出は、最も単純な方法は、単純に新版の内容によるDATAコマンドを出力し、そのあとにFLUSHコマンドを出力することである。DATAコマンドはすでに述べたように、不揮発性メモリ上の現在の番地から上書きをおこなう。この場合は実際には差分を抽出しているとはいえないが、端末上の不揮発性メモリを書き換える上では問題ない。また、これを改良した方法としては、新版のメモリイメージの中で、一定のサイズ(たとえば4バイト)ごとに、旧版と比較をおこない、一致した部分をCOPYコマンドにより表現し、それ以外の部分をDATAコマンドを用いて表現する方法も考えられる。そのほかには、新版と旧版の間の一致しているものの最長のものを探し、その部分をCOPYコマンドで表現し、それ以外をDATAコマンドで表現する方法も考えられる。また、一般によく知られているバイナリ差分抽出のアルゴリズムを使用することもできる。例えば、「Andrew Tridgell and Paul Mackerras、 The rsync algorithm、 TR−CS−96−05、 The Australian National University、 June 1996」に記述されているrsyncアルゴリズムが、バイナリ差分抽出のアルゴリズムとして知られている。
また、F2が新規ファイルであった場合の差分コマンドは、単純に新規ファイルの内容によるDATAコマンドを出力し、そのあとにFLUSHコマンドを出力することにより実現することができる。
このように、本実施の形態では、格納データの改訂が行われる度に、旧版の格納データの格納位置指定情報と新版の格納データの格納位置指定情報とを比較し、両者の差分を抽出し、抽出した差分を示す差分情報を生成する。また、差分情報の生成は、格納データ単位に、旧版の格納データの格納位置指定情報と新版の格納データの格納位置指定情報とを比較し、両者の差分を抽出することにより行われる。
以上より、本実施の形態によれば、ソフトウェア更新の際のオーバーヘッドの発生を抑制し、ソフトウェア更新完了までの時間を短縮可能な差分情報を端末装置に供給することができる。
実施の形態7.
上記実施の形態の差分情報生成部107においては、差分抽出の単位をファイルとしたが、ファイルがコンパイル済みファイルであり、機能の異なる複数のセクションからなる場合には、セクションごとに差分抽出をおこない、差分コマンドを出力する方法も考えられる。セクションの情報は、一般にはコンパイルリンク時に出力されるリンクマップファイル等から知ることが可能であり、この情報を用いて不揮発性メモリイメージ上をセクションごとに分割して、差分抽出をおこなうことが可能である。なお、ここでは、UNIX(登録商標) System Laboratoriesにより開発された、ELF(Executable and Linking Format)形式におけるELF header、 Program header table、 Section header tableも広義の意味でセクションに含まれる。
なお、サーバ装置1の構成は、図24に示したものと同様であり、説明は省略する。
このように、本実施の形態では、セクションごとに分割可能なコンパイル済みファイルを格納データとし、旧版のコンパイル済みファイルの格納位置指定情報と新版のコンパイル済みファイルの格納位置指定情報が生成されている場合に、セクション単位に、旧版のコンパイル済みファイルの格納位置指定情報と新版のコンパイル済みファイルの格納位置指定情報とを比較し、両者の差分を抽出する。ここで、セクションごとに分割可能なコンパイル済みファイルとは、例えば、セクションごとに分割可能なELF(Executable and Linking Format)形式のコンパイル済みファイルである。
以上より、本実施の形態によれば、ソフトウェア更新の際のオーバーヘッドの発生を抑制し、ソフトウェア更新完了までの時間を短縮可能な差分情報を端末装置に供給することができる。
実施の形態8.
また、ファイルがコンパイラによって生成されたコンパイル済みファイルであり、ファイルを構成するセクションのうち、命令セクションに対して、コンパイル前のC言語の関数単位に分割可能である場合には、この部分の差分抽出の単位を関数とする方法も考えられる。不揮発性メモリイメージ上でどこまでがそれぞれの関数に相当するかは、セクションの場合と同様、一般にはコンパイルリンク時に出力されるリンクマップファイル等から知ることが可能であり、この情報を用いて不揮発性メモリイメージ上を関数ごとに分割して、差分抽出をおこなうことが可能である。
図18は本実施の形態に係るファイルシステムヘッダの例を示す図である。本例では、図6の状態におけるファイルシステムヘッダの内容を示している。ファイル総数は3となっており、これはfile1、file2、file3の3つのファイルが存在することに対応する。また、ディレクトリ構造へのポインタは、ファイルシステムヘッダの先頭アドレスからのバイト数で示されている。本実施の形態においては、このようにファイルシステムヘッダは8バイトの非常に単純な構造としているが、ファイルシステムの実装によってはこれよりも複雑な構造でも良いことは言うまでもない。
図19は本実施の形態に係るディレクトリ構造の例を示す図である。本例では、図6の状態におけるディレクトリ構造の内容を示している。図において、ポインタはすべてディレクトリ構造の先頭アドレスからのバイト数により表現されている。本例は、ディレクトリを表す構造とファイルを表す構造が混在している。ディレクトリを表す構造は以下の要素からなる。
・ 名前(16バイト固定長の文字列)
・ 下位ディレクトリ数(4バイト)・・・これをNとする。
・ 下位ファイル数(4バイト)・・・これをMとする。
・ 下位ディレクトリへのポインタ(4バイト×N個)
・ 下位ファイルへのポインタ(4バイト×M個)
また、ファイルを表す構造は以下の要素からなる。
・ 名前(16バイト固定長の文字列)
・ ファイルデータへのポインタ(4バイト)
例えば、図において、先頭のデータはルートディレクトリである”/”のデータとなっている。名前として”/”が指定されており、下位ディレクトリ数はdir1、dir2の計2、下位ファイル数は直下にファイルが存在しないため0となっている。それに続き、下位ディレクトリであるdir1、dir2に相当するポインタが格納されている。その次に、dir1のデータある。これは、下位ディレクトリ数が0、下位ファイル数はfile1が存在するため1である。それに続き、file1に相当する下位ファイルへのポインタが格納されている。合計で152バイトのデータとなっている。
なお、サーバ装置1の構成は、図24に示したものと同様であり、説明は省略する。
このように本実施の形態では、コンパイル前のC言語の関数ごとに分割可能なコンパイル済みファイルを格納データとし、旧版のコンパイル済みファイルの格納位置指定情報と新版のコンパイル済みファイルの格納位置指定情報が生成されている場合に、コンパイル前のC言語の関数単位に、旧版のコンパイル済みファイルの格納位置指定情報と新版のコンパイル済みファイルの格納位置指定情報とを比較し、両者の差分を抽出する。
以上より、本実施の形態によれば、ソフトウェア更新の際のオーバーヘッドの発生を抑制し、ソフトウェア更新完了までの時間を短縮可能な差分情報を端末装置に供給することができる。
ここで、実施の形態1〜8に示したサーバ装置の特徴を以下にて示す。
実施の形態1〜8に示したサーバ装置は、端末に搭載し、端末を動作させるために必要な1つまたは複数のファイルの集合である端末ソフトウェアをファイルシステム上に格納するための不揮発性メモリに、
格納するメモリイメージを作成する際に、メモリイメージ上でファイルのデータの間に、データを含まない余裕領域を挿入することを特徴とする。
実施の形態1〜8に示したサーバ装置は、端末ソフトウェアの改版によりファイルシステムに新たなファイルが追加された場合には、新たなファイルを余裕領域に追加することを特徴とする。
実施の形態1〜8に示したサーバ装置は、RAMを備える端末が端末ソフトウェアの改版により不揮発性メモリを書き換える際に、余裕領域の間に挟まれる不揮発性メモリ領域のサイズが、端末が使用可能なRAMのサイズを超えないように、余裕領域の挿入をおこなうことを特徴とする。
実施の形態1〜8に示したサーバ装置は、端末が使用可能なRAMのサイズを超えるサイズのファイルに対しては、ファイルの途中に余裕領域を挿入することを特徴とする。
実施の形態1〜8に示したサーバ装置は、端末が使用可能なRAMのサイズを超えるサイズのファイルが、機能の異なる複数のセクションからなる場合には、セクションとセクションの間に余裕領域を挿入することを特徴とする。
実施の形態1〜8に示したサーバ装置は、ファイルのフォーマットはELF形式であることを特徴とする。
実施の形態1〜8に示したサーバ装置は、端末の不揮発性メモリに格納されるファイルシステム上のデータの新版と旧版の差分データを生成する際に、ファイルシステムの不揮発性メモリ上でのイメージの新版と旧版のそれぞれの間の差分データを出力とすることを特徴とする。
実施の形態1〜8に示したサーバ装置は、ファイルシステムの不揮発性メモリ上でのイメージの新版と旧版のそれぞれをある処理ブロック単位で読み込む手順と、新旧の処理ブロックを比較して差分を出力する手順をおこなう際に、処理ブロックの単位をファイルとすることを特徴とする。
実施の形態1〜8に示したサーバ装置は、ファイルがコンパイラによって生成されたコンパイル済みファイルであり、機能の異なる複数のセクションからなる場合には、処理ブロックの単位をセクションとすることを特徴とする。
実施の形態1〜8に示したサーバ装置は、コンパイル済みファイルのファイルフォーマットはELF形式であることを特徴とする。
実施の形態1〜8に示したサーバ装置は、ファイルがコンパイラによって生成されたコンパイル済みファイルであり、コンパイル前のC言語の関数単位に分割可能である場合には、処理ブロックの単位を関数とすることを特徴とする。
実施の形態1に係るサーバ装置の構成例を示す図。 実施の形態1に係る端末装置のハードウェア構成例を示す図。 実施の形態1に係る不揮発性メモリ構成情報の例を示す図。 実施の形態1に係るディレクトリツリーの例を示す図。 実施の形態1に係る不揮発性メモリイメージ情報の例を示す図。 実施の形態1に係る不揮発性メモリ配置情報の例を示す図。 実施の形態1に係る新版作成時の不揮発性メモリ配置情報の例を示す図。 実施の形態2に係る新版作成時の不揮発性メモリ配置情報の例を示す図。 実施の形態3に係る新版のディレクトリツリーの例を示す図。 実施の形態3に係る新版作成時の不揮発性メモリ配置情報の例を示す図。 実施の形態4に係る端末装置におけるソフトウェア書き換えの全体的な手順例を示す図。 実施の形態4に係る差分コマンドの例を示す図。 実施の形態4に係る差分コマンドによる端末上の不揮発性メモリの変化の様子を示す図。 実施の形態4に係る差分コマンドによる端末上の不揮発性メモリの変化の様子を示す図。 実施の形態4に係る新版作成時の不揮発性メモリ配置情報の例を示す図。 実施の形態5に係る新版作成時の不揮発性メモリ配置情報の例を示す図。 実施の形態6に係る差分抽出処理の手順例を示す図。 実施の形態8に係るファイルシステムヘッダの例を示す図。 実施の形態8に係るディレクトリ構造の例を示す図。 従来のソフトウェア更新の手順例を示す図。 実施の形態1に係るサーバ装置の動作例を示す図。 実施の形態1に係るサーバ装置の動作例を示す図。 サーバ装置と端末装置との関係を示す図。 実施の形態6に係るサーバ装置の構成例を示す図。
符号の説明
1 サーバ装置、2 端末装置、3 ネットワーク、101 データサイズ分析用情報入力部、102 仮格納位置情報入力部、103 格納位置指定情報生成部、104 格納位置指定情報書込/読出部、105 出力部、106 格納位置指定情報記憶部、107 差分情報生成部、108 通信部。

Claims (19)

  1. 所定の不揮発性メモリと所定のワークメモリを備える外部の端末装置を対象とし、前記端末装置の不揮発性メモリにおけるデータの格納位置を管理する情報処理装置であって、
    前記不揮発性メモリに格納される複数の格納データのデータサイズの分析のために用いられるデータサイズ分析用情報を取得するデータサイズ分析用情報取得部と、
    前記不揮発性メモリにおける各格納データの仮の格納位置を示す仮格納位置情報を取得する仮格納位置情報取得部と、
    前記端末装置のワークメモリのメモリサイズの情報を取得又は保持し、前記データサイズ分析用情報取得部により取得されたデータサイズ分析用情報に基づき各格納データのデータサイズを分析し、分析した各格納データのデータサイズと前記仮格納位置情報取得部により取得された仮格納位置情報と前記端末装置のワークメモリのメモリサイズの情報に基づき、複数の格納データの間に空き領域を配置して各格納データの格納位置を指定するとともに、各格納データのデータサイズの分析の結果、前記端末装置のワークメモリのメモリサイズを超えるデータサイズの格納データがある場合に、それぞれのパーツのデータサイズがワークメモリのメモリサイズ以内となるように当該格納データを複数のパーツに分割し、各パーツの間に空き領域を配置して各パーツの格納位置を指定し、指定した各格納データ及び各パーツの格納位置を示す格納位置指定情報を生成する格納位置指定情報生成部とを有し、
    前記格納位置指定情報生成部は、
    複数の格納データと空き領域が前記端末装置のワークメモリに格納される際に前記端末装置のワークメモリの最終アドレスが常に空き領域となるように複数の格納データの間に空き領域を配置して各格納データの格納位置を指定し、
    更に、前記端末装置のワークメモリのメモリサイズを超えるデータサイズの格納データがある場合に、各パーツと空き領域が前記端末装置のワークメモリに格納される際に前記端末装置のワークメモリの最終アドレスが常に空き領域となるように各パーツの間に空き領域を配置して各パーツの格納位置を指定することを特徴とする情報処理装置。
  2. 前記格納位置指定情報生成部は、
    前記端末装置のワークメモリのメモリサイズを超えるデータサイズの格納データを除く各格納データの間に空き領域を配置するよう指定する格納位置指定情報を生成することを特徴とする請求項1に記載の情報処理装置。
  3. 前記格納位置指定情報生成部は、
    前記端末装置のワークメモリのメモリサイズを超えるデータサイズの格納データを除く複数の格納データを複数のグループに分類し、各グループの間に空き領域を配置するよう指定する格納位置指定情報を生成することを特徴とする請求項1に記載の情報処理装置。
  4. 前記データサイズ分析用情報取得部は、
    格納データの改訂が行われる場合に、新版の複数の格納データのデータサイズの分析のために用いられるデータサイズ分析用情報を取得し、
    前記仮格納位置情報取得部は、
    旧版の格納データについて前記格納位置指定情報生成部により生成された格納位置指定情報を仮格納位置情報として取得し、
    前記格納位置指定情報生成部は、
    前記データサイズ分析用情報取得部により取得されたデータサイズ分析用情報に基づき新版の各格納データのデータサイズを分析し、分析した新版の各格納データのデータサイズと前記仮格納位置情報取得部により取得された旧版の格納データの格納位置指定情報と前記端末装置のワークメモリのメモリサイズの情報に基づき、新版の複数の格納データの間に空き領域を配置して新版の各格納データの格納位置を指定するとともに、新版の各格納データのデータサイズの分析の結果、前記端末装置のワークメモリのメモリサイズを超えるデータサイズの新版の格納データがある場合に、それぞれのパーツのデータサイズがワークメモリのメモリサイズ以内となるように当該新版の格納データを複数のパーツに分割し、各パーツの間に空き領域を配置して各パーツの格納位置を指定し、指定した各新版の格納データ及び各パーツの格納位置を示す格納位置指定情報を生成することを特徴とする請求項1に記載の情報処理装置。
  5. 前記格納位置指定情報生成部は、
    前記端末装置のワークメモリのメモリサイズを超えるデータサイズの格納データを除く新版の各格納データの間に空き領域を配置するよう指定する格納位置指定情報を生成することを特徴とする請求項4に記載の情報処理装置。
  6. 前記格納位置指定情報生成部は、
    前記端末装置のワークメモリのメモリサイズを超えるデータサイズの格納データを除く新版の複数の格納データを複数のグループに分類し、各グループの間に空き領域を配置するよう指定する格納位置指定情報を生成することを特徴とする請求項4に記載の情報処理装置。
  7. 前記格納位置指定情報生成部は、
    旧版の格納データの格納位置指定情報において指定された格納位置と同じ格納位置を新版の各格納データに対して指定する格納位置指定情報を生成することを特徴とする請求項4に記載の情報処理装置。
  8. 前記格納位置指定情報生成部は、
    格納データの改訂により新版においてデータサイズが変化する格納データが存在する場合に、旧版の格納データの格納位置指定情報において当該格納データの格納位置として指定されている領域と当該格納データについて設けられている空き領域とを合わせた格納候補領域にデータサイズが変化した新版の格納データが格納可能か否かを判断し、
    前記格納候補領域に格納可能な場合に、データサイズが変化した新版の格納データを前記格納候補領域に格納するよう指定する格納位置指定情報を生成し、
    前記格納候補領域に格納できない場合に、データサイズが変化した新版の格納データを格納可能な空き領域を検索し、検索した空き領域にデータサイズが変化した新版の格納データを格納するよう指定する格納位置指定情報を生成することを特徴とする請求項4に記載の情報処理装置。
  9. 前記格納位置指定情報生成部は、
    格納データの改訂により新たな格納データが生成された場合に、旧版の格納データの格納位置指定情報において空き領域として指定されている領域に新たに生成された格納データを格納するよう指定する格納位置指定情報を生成することを特徴とする請求項4に記載の情報処理装置。
  10. 前記格納位置指定情報生成部は、
    各グループのデータサイズが、前記不揮発性メモリに新版の格納データを格納する際に用いられる前記端末装置のワークメモリのメモリサイズ以下となるように新版の複数の格納データを複数のグループに分類し、各グループの間に空き領域を配置するよう指定する格納位置指定情報を生成することを特徴とする請求項6に記載の情報処理装置。
  11. 前記格納位置指定情報生成部は、
    前記端末装置のワークメモリのメモリサイズ以上のデータサイズを有する格納データがセクションごとに分割可能なコンパイル済みファイルである場合に、各セクションの間に空き領域を配置するよう指定する格納位置指定情報を生成することを特徴とする請求項1に記載の情報処理装置。
  12. 前記格納位置指定情報生成部は、
    前記端末装置のワークメモリのメモリサイズ以上のデータサイズを有する格納データがセクションごとに分割可能なELF(Executable and Linking Format)形式のコンパイル済みファイルである場合に、各セクションの間に空き領域を配置するよう指定する格納位置指定情報を生成することを特徴とする請求項1に記載の情報処理装置。
  13. 前記情報処理装置は、更に、
    格納データの改訂が行われる度に、前記格納位置指定情報生成部により生成された旧版の格納データの格納位置指定情報と新版の格納データの格納位置指定情報とを比較し、両者の差分を抽出し、抽出した差分を示す差分情報を生成する差分情報生成部を有することを特徴とする請求項4に記載の情報処理装置。
  14. 前記差分情報生成部は、
    格納データ単位に、旧版の格納データの格納位置指定情報と新版の格納データの格納位置指定情報とを比較し、両者の差分を抽出することを特徴とする請求項13に記載の情報処理装置。
  15. 前記差分情報生成部は、
    セクションごとに分割可能なコンパイル済みファイルを格納データとし、前記格納位置指定情報生成部により旧版のコンパイル済みファイルの格納位置指定情報と新版のコンパイル済みファイルの格納位置指定情報が生成されている場合に、セクション単位に、旧版のコンパイル済みファイルの格納位置指定情報と新版のコンパイル済みファイルの格納位置指定情報とを比較し、両者の差分を抽出することを特徴とする請求項13に記載の情報処理装置。
  16. 前記差分情報生成部は、
    セクションごとに分割可能なELF(Executable and Linking
    Format)形式のコンパイル済みファイルを格納データとし、前記格納位置指定情報生成部により旧版のコンパイル済みファイルの格納位置指定情報と新版のコンパイル済みファイルの格納位置指定情報が生成されている場合に、セクション単位に、旧版のコンパイル済みファイルの格納位置指定情報と新版のコンパイル済みファイルの格納位置指定情報とを比較し、両者の差分を抽出することを特徴とする請求項13に記載の情報処理装置。
  17. 前記差分情報生成部は、
    コンパイル前のC言語の関数ごとに分割可能なコンパイル済みファイルを格納データとし、前記格納位置指定情報生成部により旧版のコンパイル済みファイルの格納位置指定情報と新版のコンパイル済みファイルの格納位置指定情報が生成されている場合に、コンパイル前のC言語の関数単位に、旧版のコンパイル済みファイルの格納位置指定情報と新版のコンパイル済みファイルの格納位置指定情報とを比較し、両者の差分を抽出することを特徴とする請求項13に記載の情報処理装置。
  18. 所定の不揮発性メモリと所定のワークメモリを備える外部の端末装置を対象とし、前記端末装置の不揮発性メモリにおけるデータの格納位置を管理する格納位置管理方法であって、
    前記不揮発性メモリに格納される複数の格納データのデータサイズの分析のために用いられるデータサイズ分析用情報を取得するデータサイズ分析用情報取得ステップと、
    前記不揮発性メモリにおける各格納データの仮の格納位置を示す仮格納位置情報を取得する仮格納位置情報取得ステップと、
    前記端末装置のワークメモリのメモリサイズの情報を取得又は保持し、前記データサイズ分析用情報取得ステップにより取得されたデータサイズ分析用情報に基づき各格納データのデータサイズを分析し、分析した各格納データのデータサイズと前記仮格納位置情報取得ステップにより取得された仮格納位置情報と前記端末装置のワークメモリのメモリサイズの情報に基づき、複数の格納データの間に空き領域を配置して各格納データの格納位置を指定するとともに、各格納データのデータサイズの分析の結果、前記端末装置のワークメモリのメモリサイズを超えるデータサイズの格納データがある場合に、それぞれのパーツのデータサイズがワークメモリのメモリサイズ以内となるように当該格納データを複数のパーツに分割し、各パーツの間に空き領域を配置して各パーツの格納位置を指定し、指定した各格納データ及び各パーツの格納位置を示す格納位置指定情報を生成する格納位置指定情報生成ステップとを有し、
    前記格納位置指定情報生成ステップは、
    複数の格納データと空き領域が前記端末装置のワークメモリに格納される際に前記端末装置のワークメモリの最終アドレスが常に空き領域となるように複数の格納データの間に空き領域を配置して各格納データの格納位置を指定し、
    更に、前記端末装置のワークメモリのメモリサイズを超えるデータサイズの格納データがある場合に、各パーツと空き領域が前記端末装置のワークメモリに格納される際に前記端末装置のワークメモリの最終アドレスが常に空き領域となるように各パーツの間に空き領域を配置して各パーツの格納位置を指定することを特徴とする格納位置管理方法。
  19. 所定の不揮発性メモリと所定のワークメモリを備える外部の端末装置を対象とし、前記端末装置の不揮発性メモリにおけるデータの格納位置の管理をコンピュータに実行させるプログラムであって、
    前記不揮発性メモリに格納される複数の格納データのデータサイズの分析のために用いられるデータサイズ分析用情報を取得するデータサイズ分析用情報取得処理と、
    前記不揮発性メモリにおける各格納データの仮の格納位置を示す仮格納位置情報を取得する仮格納位置情報取得処理と、
    前記端末装置のワークメモリのメモリサイズの情報を取得又は保持し、前記データサイズ分析用情報取得処理により取得されたデータサイズ分析用情報に基づき各格納データのデータサイズを分析し、分析した各格納データのデータサイズと前記仮格納位置情報取得処理により取得された仮格納位置情報と前記端末装置のワークメモリのメモリサイズの情報に基づき、複数の格納データの間に空き領域を配置して各格納データの格納位置を指定するとともに、各格納データのデータサイズの分析の結果、前記端末装置のワークメモリのメモリサイズを超えるデータサイズの格納データがある場合に、それぞれのパーツのデータサイズがワークメモリのメモリサイズ以内となるように当該格納データを複数のパーツに分割し、各パーツの間に空き領域を配置して各パーツの格納位置を指定し、指定した各格納データ及び各パーツの格納位置を示す格納位置指定情報を生成する格納位置指定情報生成処理をコンピュータに実行させ
    前記格納位置指定情報生成処理として、
    コンピュータに、複数の格納データと空き領域が前記端末装置のワークメモリに格納される際に前記端末装置のワークメモリの最終アドレスが常に空き領域となるように複数の格納データの間に空き領域を配置させて各格納データの格納位置を指定させ、
    更に、前記端末装置のワークメモリのメモリサイズを超えるデータサイズの格納データがある場合に、コンピュータに、各パーツと空き領域が前記端末装置のワークメモリに格納される際に前記端末装置のワークメモリの最終アドレスが常に空き領域となるように各パーツの間に空き領域を配置させて各パーツの格納位置を指定させることを特徴とするプログラム。
JP2004063364A 2004-03-08 2004-03-08 情報処理装置及び格納位置管理方法及びプログラム Expired - Lifetime JP3792232B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004063364A JP3792232B2 (ja) 2004-03-08 2004-03-08 情報処理装置及び格納位置管理方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004063364A JP3792232B2 (ja) 2004-03-08 2004-03-08 情報処理装置及び格納位置管理方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2005251045A JP2005251045A (ja) 2005-09-15
JP3792232B2 true JP3792232B2 (ja) 2006-07-05

Family

ID=35031444

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004063364A Expired - Lifetime JP3792232B2 (ja) 2004-03-08 2004-03-08 情報処理装置及び格納位置管理方法及びプログラム

Country Status (1)

Country Link
JP (1) JP3792232B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5005811B2 (ja) * 2007-07-24 2012-08-22 エヌエックスピー ビー ヴィ アプリケーションを携帯電話にセキュアに伝送するための方法、システム及びトラステッド・サービス・マネージャ
JP5297848B2 (ja) * 2009-03-18 2013-09-25 株式会社日立ソリューションズ プログラム動的更新システム、管理サーバ、組込み機器及びプログラム
JP2011095952A (ja) * 2009-10-29 2011-05-12 Kyocera Mita Corp ファームウェア更新方法および電子機器
KR102000162B1 (ko) * 2016-03-17 2019-07-16 한국전자통신연구원 저사양 기기의 소프트웨어 업데이트 지원 장치 및 방법
CN110109695B (zh) * 2019-04-17 2021-08-27 华为技术有限公司 补丁方法、相关装置及系统

Also Published As

Publication number Publication date
JP2005251045A (ja) 2005-09-15

Similar Documents

Publication Publication Date Title
US9773017B2 (en) Method of configuring a virtual application
KR101143027B1 (ko) 자기 기술적 소프트웨어 이미지 업데이트 컴포넌트
US8418167B2 (en) Methods and systems for updating content including a compressed version
US5623661A (en) System for and method of providing delta-versioning of the contents of PCTE file objects
JP4936654B2 (ja) コンポーネント用として言語独立ファイル及び対応する言語特有リソースファイルを作成する方法
CN100456240C (zh) 以故障保险方式向非易失存储器应用自定义软件映象更新
CN103593216B (zh) 将ubi格式的系统文件制作成工厂烧录映像文件方法
CN100498703C (zh) 以存储技术抽象方式在文件内创建文件系统
CN109684292A (zh) 一种闪存数据库快速进行数据恢复的方法
CN103034486A (zh) 移动终端操作系统基于全系统扩展调用图的自动优化方法
CN106775824A (zh) 一种带有渠道信息的应用文件打包系统及方法
US8196093B2 (en) Apparatus and method for componentizing legacy system
CN101533346A (zh) 源文件的比较装置及方法
WO2007026484A1 (ja) 実行バイナリイメージの作成及び実行を行う装置、方法、プログラム、該プログラムを記録したコンピュータ読み取り可能な記録媒体
JP3792232B2 (ja) 情報処理装置及び格納位置管理方法及びプログラム
US11645058B2 (en) User interface resource file optimization
KR100637787B1 (ko) 파일 정보의 기록 처리 방법 및 프로그램
US6915512B1 (en) Software editing with indication of format and processing state of each process of the software
US5745749A (en) Method and system of file version clustering of object blocks using a compiler and database and having a predetermined value
US20230006814A1 (en) Method and apparatus for implementing changes to a file system that is emulated with an object storage system
WO2022227409A1 (zh) 一种嵌入式终端远程软件更新方法
JP2004206353A (ja) ソフトウェアのインストール方法
CN111290765A (zh) 一种固件快速烧录方法、系统及存储介质
Forward A File System in Erlang
KR100504797B1 (ko) 롬 이미지 생성방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050719

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20050719

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20050729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050823

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051003

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051206

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060116

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060404

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060404

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100414

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100414

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110414

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120414

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120414

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130414

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130414

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20140414

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250