JP4302970B2 - 差分更新方法、プログラム及び装置 - Google Patents
差分更新方法、プログラム及び装置 Download PDFInfo
- Publication number
- JP4302970B2 JP4302970B2 JP2002363362A JP2002363362A JP4302970B2 JP 4302970 B2 JP4302970 B2 JP 4302970B2 JP 2002363362 A JP2002363362 A JP 2002363362A JP 2002363362 A JP2002363362 A JP 2002363362A JP 4302970 B2 JP4302970 B2 JP 4302970B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- partition
- processing
- difference
- restoration
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, restoring, recovering or retrying at system level during software upgrading
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
- Mobile Radio Communication Systems (AREA)
Description
【発明の属する技術分野】
本発明は、新旧2つのファイルから生成された差分データを受信して書替え対象ファイルのデータを更新する差分更新方法、プログラム及び装置に関し、特にデータ更新中に遮断された電源の復旧後にデータ更新処理を途中から再開するための差分更新方法、プログラム及び装置に関する。
【0002】
【従来の技術】
従来、携帯端末のような組み込み型システムでは、外部との通信が低速、使用可能なワークメモリが少ないといった制限がある。このような環境において内部メモリに格納されたソフトウェアを短時間で更新するためにはソフトウェアの新旧差分データを用いる差分更新法がある。
【0003】
差分更新法を用いて組み込み型システムの内蔵メモリに格納されたソフトウェアの更新を行う場合、更新量が多いと差分データのサイズが大きくなり、組み込み型システムの利用可能メモリに収まらない。
【0004】
このような場合、書き替え対象のデータ(ソフトウェア)全体をいくつかの区画に分割して、それぞれに対して更新処理を行うことになる。このときの更新処理の流れは次のようになる。
S1: 書き替え対象データの1区画を更新するための差分データを外部から転
送させて受信する。
S2: 受信された1区画分の差分データと対応する1区画分の書替対象データ
から新しい1区画分の新データを生成する。
S3: 生成された1区画分の新データを対応する1区画分の書替対象データに
上書きする。
【0005】
【発明が解決しようとする課題】
しかしながら、このような差分更新処理にあっては、各区画毎に差分データから生成された新データを書替対象データに上書きしている処理の途中で携帯電話の電源が切断され、電源回復後に差分更新処理を再開しようとしても、書替対象端末は途中まで書き換えられた状態になっており、差分データは参照するべきデータを失うため、更新処理を継続することはできない。
【0006】
また、電源遮断の際に生成されていた1区画分の新データも電源切断により失われ、電源回復による再開処理で対応する書替対象データの上書きをやりなおすことはできない。
【0007】
このため、データの上書き処理中に電源が遮断された場合、差分更新法による更新処理を断念し、更新を完了させるためには外部から更新後のデータそのものを転送してもらう必要があり、更新後のデータそのものを受け取る場合、そのデータ量は差分データと比べて大変大きなサイズとなるため、更新処理時間の増加を避けられない問題があった。
【0008】
本発明は、転送された区画毎の差分データから新データを復元して書替え対象データに上書きする更新処理の途中で電源が遮断し、電源復旧後に更新処理を途中から再開できるようにする差分更新方法、プログラム及び装置を提供することを目的とする。
【0009】
【課題を解決するための手段】
図1は本発明の原理説明図である。
(方法)
本発明は、差分更新方法を提供するものであり、この差分更新方法は、
差分データ受信部32により、新旧2つのファイルに対して、新ファイル16を同一サイズの複数区画に分割し、各区画中のデータ列と一致するデータ列を旧ファイル14の対象区画の開始位置より更に1区画分前方の位置から旧ファイル14の最後尾までの範囲で探索して区画毎に生成された差分データを全区画分受信して不揮発メモリ34に格納する差分データ受信ステップと、
復元処理部36により、現在の処理区画を示す復元処理区画番号(X)を不揮発メモリ34に保存した後に、1区画分の差分データから区画データを復元して前記不揮発メモリに格納する復元処理ステップと、
上書き処理部38により、1つ前の処理区画を示す上書き処理区画番号(X−1)を前記不揮発性メモリ34に保存した後に、1つ前の区画で復元されている復元データを不揮発性メモリ34から読み出して不揮発メモリ40の書替え対象データに上書きする上書き処理ステップと、
を備えたことを特徴とする。ここで、差分データ受信ステップは、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置から旧ファイルの最後尾までの範囲で探索して生成された区画毎の差分データを受信するようにしてもよい。
【0010】
更に本発明は、
判定部46により、電源が遮断された場合の電源復旧後に、区画データの復元処理中に電源が遮断されたか、区画データの上書き処理中に電源が遮断されたかを判別する判別ステップと、
復元再開部48により、区画データの復元処理中に電源が遮断された場合は、電源復旧後に不揮発メモリから読み出した復元処理区画番号の区画の先頭から復元処理を再開する復元再開ステップと、
上書き再開部50により、区画データの上書き処理中に電源が遮断された場合、電源復旧後に不揮発メモリから読み出した上書き処理区画番号の先頭から上書き処理を再開する上書き再開ステップと、
を備えたことを特徴とする。
【0011】
このような本発明による差分更新方法を用いることで、携帯電話などの組み込み型システム上での分割差分更新処理における処理手順のうち、各区分の差分データからの更新処理の処理中に電源が遮断された場合でも、電源復旧後にその区画から更新処理を再開することが可能となる。
【0012】
また、データ復元中の電源遮断時、旧データ上書き処理中の電源遮断時ともに、電源復旧後には遮断前の処理からの続行となり、無駄な復元処理、上書き処理を行わずに処理を再開することができる。
【0013】
ここで判別ステップは、電源が遮断された場合の電源復旧後に、復元処理区画番号と上書き処理区画番号との差を算出し、差が1の場合は復元処理中の電源遮断と判別し、差が2の場合は上書き処理中の電源遮断と判別する。
【0014】
復元処理ステップは、1区画分の差分データから復元された復元区分データと、書替え対象データの該当区画データの内容が同一であるか否か判断し、同一であった場合は前記復元区分データに代えて不揮発メモリに新旧同一を記述し、上書き処理ステップは、不揮発メモリに新旧同一が記述されている場合は、復元区分データの上書きをスキップする。
【0015】
このため各区分の差分データから復元した親データが書替え対象データ(旧データ)と同一の場合、新データの不揮発メモリへの書き込み、旧データが格納されているメモリへの上書きを不要とし、処理を行う必要性がない場合は何もしないことで処理時間を短くする。
【0016】
復元処理ステップは、更に、1区画分の差分データから復元された復元区画データを更にn個の復元ブロックデータに等分し、各ブロック単位で復元ブロックデータと書替えデータが同一であるか否かを判断し、同一であった場合は復元ブロックデータに代えて不揮発メモリに新旧同一を記述し、上書き処理ステップは、不揮発メモリに新旧同一が記述されている場合は、復元ブロックデータの上書きをスキップすることを特徴とする。
【0017】
このように復元した1区画分の新データを更にnブロックに分割し、旧データとの同一の場合は新データの不揮発メモリへの書き込み、旧データが格納されているメモリへの上書きを不要とし、ブロック単位で処理を行う必要性がない場合は何もしないことで、更に処理時間を短くする。
【0018】
本発明による差分更新方法の別の形態にあっては、各区画の差分データを更にn個のブロックに分割して処理された差分データを受信して更新する差分更新方法が提供される。即ち、この差分更新方法は、
差分データ受信部により、新旧2つのファイルに対して、新ファイルを同一サイズの複数区画に分割し、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置より更に1区画分前方の位置から旧ファイルの最後尾までの範囲で探索して区画毎の差分データを生成し、更に、1区画分の新旧データをn個のブロックに等分し、各ブロック単位で新ファイルブロックデータと旧ファイルデータが同一であるか否かを判断し、同一であった場合は差分ブロックデータに代えて新旧同一が記述された差分データを全区画分について受信して不揮発メモリに格納する差分データ受信ステップと、
復元処理部により、現在の処理区画を示す復元処理区画番号(X)を前記不揮発メモリに保存した後に、1区画分の差分データにつきn分割されたブロックデータを復元して前記不揮発メモリに格納する復元処理ステップと、
上書き処理部により、1つ前の処理区画を示す上書き処理区画番号(X−1)を前記不揮発性メモリに保存した後に、1つ前の区画で復元されている復元データにつきn分割された復元ブロックデータを前記不揮発性メモリから読み出して揮発メモリの書替え対象データに上書きする上書き処理ステップと、
を備えたことを特徴とする。ここで差分データ受信ステップは、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置より更に1区画分前方の位置から旧ファイルの最後尾までの範囲で探索して区画毎に生成された差分データを受信するようにしても良い。
【0019】
この差分更新方法は、更に、
判定部により、電源が遮断された場合の電源復旧後に、区画データの復元処理中に電源が遮断されたか、区画データの上書き処理中に電源が遮断されたかを判別する判別ステップと、
復元再開部により、区画データの復元処理中に電源が遮断された場合は、電源復旧後に前記不揮発メモリから読み出した前記復元処理区画番号の区画の先頭から復元処理を再開する復元再開ステップと、
上書き再開部により、区画データの上書き処理中に電源が遮断された場合、電源復旧後に前記不揮発メモリから読み出した前記上書き処理区画番号の先頭から上書き処理を再開する上書き再開ステップと、
を備えたことを特徴とする。
【0020】
この差分更新方法を用いることで、携帯電話などの組み込み型システム上での分割差分更新処理における処理手順のうち、各区分の差分データからの更新処理の処理中に電源が遮断された場合でも、電源復帰後にその区画から更新処理を再開することができる。
【0021】
また、データ復元中の電源遮断時、旧データ上書き処理中の電源遮断時ともに、電源復旧後には遮断前の処理からの続行となり、無駄な復元処理、上書き処理を行わずに処理を再開することができる。
【0022】
ここで判別ステップは、電源が遮断された場合の電源復旧後に、復元処理区画番号と前記上書き処理区画番号との差を算出し、差が1の場合は復元処理中の電源遮断と判別し、差が2の場合は上書き処理中の電源遮断と判別する。
【0023】
復元処理ステップは、差分ブロックデータに新旧同一であることが記述されている場合は、差分ブロックデータに基づく復元処理をスキップして不揮発メモリに新旧同一を記述し、上書き処理ステップは、不揮発メモリに新旧同一が記述されている場合は、復元ブロックデータの上書きをスキップする。
【0024】
このように差分データから復元した1区画分をnブロックに分割した新ブロックデータが、旧ブロックデータとの同一の場合は新ブロックデータの不揮発メモリへの書き込み、旧データが格納されているメモリへの上書きを不要とし、更に細かなブロック単位で処理を行う必要性がない場合は何もしないことで処理時間を短くする。また復元後に各区画の復元データをnブロックに分割して新旧を比較する処理が不要であり、その分、処理時間を短縮できる。
【0025】
(プログラム)
本発明は、携帯電話などの組み込みシステムのコンピュータで実行される差分更新のためのプログラムを提供する。このプログラムは、コンピュータに、
新旧2つのファイルに対して、新ファイルを同一サイズの複数区画に分割し、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置(又は開始位置より更に1区画分前方の位置)から旧ファイルの最後尾までの範囲で探索して区画毎に生成された差分データを全区画分受信して不揮発メモリに格納する差分データ受信ステップと、
現在の処理区画を示す復元処理区画番号(X)を不揮発メモリに保存した後に、1区画分の差分データから区画データを復元して不揮発メモリに格納する復元処理ステップと、
1つ前の処理区画を示す上書き処理区画番号(X−1)を不揮発性メモリに保存した後に、1つ前の区画で復元されている復元データを不揮発性メモリから読み出して不揮発メモリの書替え対象データに上書きする上書き処理ステップと、を実行させることを特徴とする。
【0026】
このプログラムは、更に、
電源が遮断された場合の電源復旧後に、区画データの復元処理中に電源が遮断されたか、区画データの上書き処理中に電源が遮断されたかを判別する判別ステップと、
区画データの復元処理中に電源が遮断された場合は、電源復旧後に前記不揮発メモリから読み出した前記復元処理区画番号の区画の先頭から復元処理を再開する復元再開ステップと、
区画データの上書き処理中に電源が遮断された場合、電源復旧後に前記不揮発メモリから読み出した前記上書き処理区画番号の先頭から上書き処理を再開する上書き再開ステップと、
を備える。
【0027】
本発明によるプログラムの別の形態にあっては、各区画の新旧データを更にn個のブロックに分割して処理された差分データを受信して更新するプログラムが提供される。即ち、このプログラムは、携帯電話などの組み込みシステムのコンピュータに、
新旧2つのファイルに対して、新ファイルを同一サイズの複数区画に分割し、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置(又は開始位置より更に1区画分前方の位置)から旧ファイルの最後尾までの範囲で探索して区画毎の差分データを生成し、更に、1区画分の新旧データをn個のブロックに等分し、各ブロック単位で新ファイルブロックデータと旧ファイルデータが同一であるか否かを判断し、同一であった場合は差分ブロックデータに代えて新旧同一が記述された差分データを全区画分受信して不揮発メモリに格納する差分データ受信ステップと、
現在の処理区画を示す復元処理区画番号(X)を不揮発メモリに保存した後に、1区画分の差分データにつきn分割されたブロックデータを復元して不揮発メモリに格納する復元処理ステップと、
1つ前の処理区画を示す上書き処理区画番号(X−1)を不揮発性メモリに保存した後に、1つ前の区画で復元されている復元データにつきn分割された復元ブロックデータを前記不揮発性メモリから読み出して不揮発メモリの書替え対象データに上書きする上書き処理ステップと、
を実行することを特徴とする。
【0028】
このプログラムは、更に、
電源が遮断された場合の電源復旧後に、区画データの復元処理中に電源が遮断されたか、区画データの上書き処理中に電源が遮断されたかを判別する判別ステップと、
区画データの復元処理中に電源が遮断された場合は、電源復旧後に不揮発メモリから読み出した復元処理区画番号の区画の先頭から復元処理を再開する復元再開ステップと、
区画データの上書き処理中に電源が遮断された場合、電源復旧後に前記不揮発メモリから読み出した前記上書き処理区画番号の先頭から上書き処理を再開する上書き再開ステップと、
を備える。なお、本発明におけるプログラムの詳細は、差分更新方法と基本的に同じになる。
【0029】
(装置)
本発明は、携帯電話などの組み込みシステムを対象とした差分更新装置を提供する。この差分更新装置は、
新旧2つのファイルに対して、新ファイルを同一サイズの複数区画に分割し、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置(又は開始位置より更に1区画分前方の位置)から旧ファイルの最後尾までの範囲で探索して区画毎に生成された差分データを全区画分受信して不揮発メモリに格納する差分データ受信部と、
現在の処理区画を示す復元処理区画番号(X)を不揮発メモリに保存した後に、1区画分の差分データから区画データを復元して不揮発メモリに格納する復元処理部と、
1つ前の処理区画を示す上書き処理区画番号(X−1)を不揮発性メモリに保存した後に、1つ前の区画で復元されている復元データを不揮発性メモリから読み出して不揮発メモリの書替え対象データに上書きする上書き処理部と、
電源が遮断された場合の電源復旧後に、区画データの復元処理中に電源が遮断されたか、区画データの上書き処理中に電源が遮断されたかを判別する判定部と、
区画データの復元処理中に電源が遮断された場合は、電源復旧後に前記不揮発メモリから読み出した前記復元処理区画番号の区画の先頭から復元処理を再開する復元再開部と、
区画データの上書き処理中に電源が遮断された場合、電源復旧後に前記不揮発メモリから読み出した前記上書き処理区画番号の先頭から上書き処理を再開する上書き再開部と、
を備える。
【0030】
本発明による差分更新装置の別の形態にあっては、各区画の新旧データを更にn個のブロックに分割して処理された差分データを受信して更新する差分更新装置が提供される。
【0031】
この差分更新装置は、
新旧2つのファイルに対して、新ファイルを同一サイズの複数区画に分割し、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置(又は開始位置より更に1区画分前方の位置)から旧ファイルの最後尾までの範囲で探索して区画毎の差分データを生成し、更に、1区画分の新旧データをn個のブロックに等分し、各ブロック単位で差分ブロックデータと旧ファイルデータが同一であるか否かを判断し、同一であった場合は新ファイルブロックデータに代えて新旧同一が記述された差分データを全区画分受信して不揮発メモリに格納する差分データ受信部と、
現在の処理区画を示す復元処理区画番号(X)を不揮発メモリに保存した後に、1区画分の差分データにつきn分割されたブロックデータを復元して前記不揮発メモリに格納する復元処理部と、
1つ前の処理区画を示す上書き処理区画番号(X−1)を不揮発性メモリに保存した後に、1つ前の区画で復元されている復元データにつきn分割された復元ブロックデータを不揮発性メモリから読み出して不揮発メモリの書替え対象データに上書きする上書き処理部と、
電源が遮断された場合の電源復旧後に、区画データの復元処理中に電源が遮断されたか、区画データの上書き処理中に電源が遮断されたかを判別する判定部と、
区画データの復元処理中に電源が遮断された場合は、電源復旧後に不揮発メモリから読み出した復元処理区画番号の区画の先頭から復元処理を再開する復元再開部と、
区画データの上書き処理中に電源が遮断された場合、電源復旧後に不揮発メモリから読み出した上書き処理区画番号の先頭から上書き処理を再開する上書き再開部と、
を備えたことを特徴とする。
【0032】
なお、本発明における差分更新装置の詳細は、差分更新方法と基本的に同じになる。
【0033】
【発明の実施の形態】
図2は、本発明の差分更新方法が適用される第1実施形態のブロック図である。図2において、送信側の差分データ生成装置として機能する基地局10には、ハードディスクドライブなどにより旧ファイル14と新ファイル16が保存されている。
【0034】
基地局10における差分データの生成は、新ファイル16を一定サイズ、例えば256KBサイズの複数区画に分割し、各区画中の新ファイルのデータ列と一致する旧ファイル14のデータ列を旧ファイルの最後尾から対象区画の開始位置までの範囲で探索して、各区画ごとの差分データを生成する。
【0035】
このため基地局10には、区画切出部18、データ比較部20、一致データ列検索部22、更新データ出力部24、複写コード出力部26及び差分データ出力部28が設けられている。
【0036】
図3は、図2の基地局10における差分データ生成処理の説明図である。新ファイル16は、一定サイズ例えば256KBごとに複数の区画16−1〜16−5に分けられている。
【0037】
この新ファイル16において、いま区画16−2が処理中であったとすると、区画16−2の先頭アドレスにデータ比較対象ポインタP1をセットし、旧ファイル14についても同じ位置にデータ比較参照ポインタQ1をセットし、各ポインタP1,Q1の指し示すデータ値、例えば1バイトデータが一致するか否かチェックする。
【0038】
一致していれば、この位置から後方に何バイト一致データが続くかを計測する。値が一致しなくなった場合には、「複写コード」に最初に値が一致したときのデータ参照ポインタQ1の値と計測した一致長を組み合わせて差分データとして出力する。
【0039】
一方、新ファイル16のデータ比較対象ポインタP1と同じ位置の旧ファイル14のデータ比較参照ポインタQ1の示す値が不一致であった場合には、旧ファイル14のデータ比較参照ポインタQ2のように、旧ファイル14の最後尾にセットした後に、前方に移動させながら新ファイル16のデータ比較対象ポインタP1の値との一致検索を、対象区画16−2に対応する区画より1つの前の旧ファイル14の区画までの範囲で行う。
【0040】
なお旧ファイル14における検索範囲は、最後尾から新ファイル16の対象区画16−2に対応した旧ファイルの区画までの範囲であってもよい。旧ファイルの探索範囲を対象区画より1つ前の範囲に拡大している理由は、後の説明で明らかにする差分データが転送受信される差分更新側で、旧ファイルに対する更新データの上書きが復元処理を行っている区画より1つ前の区画について行われることから、これに合わせて差分データ生成側においても対象区画1つの前の区画までを旧ファイルの探索範囲としている。
【0041】
図4は、図3と同じ区画16−2のデータ比較対象ポインタP1について、旧ファイル14の最後尾にセットしたデータ比較参照ポインタQ2を前方に移動しながら一致探索を行った場合に、複数のデータ列56−1,56−2,56−3が一致探索された場合である。
【0042】
このように複数のデータ列56−1〜56−3が一致データ列として探索された場合には、最後尾のデータ列56−1のデータ比較参照ポインタの位置と一致長を持つ「複写コード」を差分データとして出力する。
【0043】
一方、図3,図4による旧ファイル14における一致部分の探索で一致部分が探索できなかった場合には、区分16−2のデータは新たな更新データであることから、「更新コード」と新データを差分データとして出力する。
【0044】
ここで、区画ごとに新ファイル16と旧ファイル14との一致検索を行う処理は、新ファイル16においてデータ比較対象ポインタを1バイトずつずらして行うことから、1区画の差分データの中には最小1バイト幅で旧ファイルとの一致に基づく複写コードと旧ファイルの不一致に基づく更新コードとそれぞれの値が混在することになる。
【0045】
このような差分データの生成を図2の基地局10について具体的に説明すると、区画切出部18が新ファイル16から256KB単位に更新後の新データを切り出し、データ比較部20で対応する位置の旧ファイル14の先頭位置の値と比較する。
【0046】
データ比較部20で区画先頭位置と旧ファイルの対応する先頭位置の値が一致すると、一致データ列検索部22が図3及び図4に示したように旧ファイルの一致部分の検索を行い、「複写コード」に値が最初に一致したときのデータ参照ポインタの値と一致長を組み合わせた差分データを差分データ出力部28に出力する。
【0047】
一方、処理対象区画となる新データに一致するデータが旧ファイル中に発見されなかった場合には、複写コード出力部26が「更新コード」と新データの組合せでなる差分データを差分データ出力部28に出力する。
【0048】
差分データ出力部28は、伝送回線30を介して接続される例えば携帯電話12などの組込システムからの差分データの転送要求を受けて、携帯電話12に保存しているソフトウェアを更新するための差分データを転送する。この伝送回線30は、基地局10と携帯電話12の例では無線回線となる。
【0049】
組込システムとして実現される携帯電話12は、本発明の差分更新方法が適用される差分更新装置として機能する。この差分更新装置として機能する携帯電話12には、差分データ受信部32、不揮発メモリ34、復元処理部36、上書き処理部38、不揮発メモリを用いた書替え対象メモリ40、ワークメモリ42、更に電源遮断による復旧後に動作する再開処理部44を備えている。この再開処理部44には、判定部46、復元再開部48及び上書き再開部50の機能が設けられている。
【0050】
携帯電話12に設けた差分データ受信部32は、基地局10に対し書替え対象メモリ40に保存している書替え対象データの更新に必要な全区画の差分データの転送を要求し、全区画の差分データを受信して不揮発メモリ34に格納する。
【0051】
復元処理部36は、現在の処理区画を示す復元処理区画番号(x)を不揮発メモリ34に保存した後、該当する1区画分の差分データから区画データを復元し、不揮発メモリ34に格納する。
【0052】
上書き処理部38は、現在処理中の区画に対し1つ前の処理区画を示す上書き処理区画番号(x−1)を不揮発メモリ34に保存した後に、1つ前の区画で復元されている復元区画データを不揮発メモリ34から読み出し、書替え対象メモリ40の書替え対象データに上書きする。
【0053】
このように本発明の差分更新処理が行われる携帯電話12にあっては、差分データに基づく各区画ごとの更新処理において、差分データからの新データの復元と、復元した新データの書替え対象データに対する上書き処理とを分離しており、更に、ある区画の復元処理が終了した場合には、その区画の新データの上書きは行わず、1つ前の区画で復元している新データの上書きを行っている。
【0054】
このように復元処理と上書き処理を分離し且つ復元処理に対し上書き処理を1区画遅らせている理由は、差分更新処理中に携帯電話12の電源が遮断して更新処理が中断し、その後に電源が復旧した場合に、電源遮断による中断時点から処理を再開できるようにするためである。
【0055】
また電源遮断のタイミングは、復元処理と上書き処理を時間的に分けていることから、復元処理の途中で電源が遮断される場合と上書き処理の途中で電源が遮断される場合との2つのケースがあり、それぞれのケースに分けて再開処理部44で電源復旧後の差分更新処理の再開を行うことになる。
【0056】
このため再開処理部44に設けている判定部46は、電源が遮断された場合の電源復旧後に、区画データの復元処理中に電源が遮断されたか区画データの上書き処理中に電源が遮断されたかを判別する。この判定部46による判別は、電源が遮断された場合の電源復旧後に復元処理区画番号と上書き処理区画番号との差を算出し、差が1の場合は復元処理中の電源遮断と判別し、差が2の場合は上書き処理中の電源遮断と判別する。
【0057】
図5は、図2の携帯電話12における区分データの復元処理中における復元処理区画番号と上書き処理区画番号の不揮発メモリでの記述状態の説明図である。図5(A)は復元処理区画番号yであり、図5(B)の不揮発メモリ差分データSDiを用いた復元処理にあっては、復元に先立って復元処理区画番号yとして不揮発メモリ34に(x)を記述している。この状態で差分データSDiから図5(C)のワークメモリ上に新データNDiを復元している。
【0058】
このとき図5(D)の上書き処理区画番号zは、図5(E)に示す不揮発メモリ復元データにおける前々回の復元データNDi−2について記述された番号(x−2)のみであり、前回復元された復元データNDi−1についての区画番号はまだ記述されていない。
【0059】
図6は、図5の新データNDiの復元が終了して不揮発メモリ格納中における復元処理区画番号と上書き処理区画番号の記述状態の説明図である。図6にあっては、図6(B)の不揮発メモリ差分データSDiを用いて図6(C)のワークメモリ上に新データNDiの復元が完了した状態であり、復元が完了すると、図6(E)のように不揮発メモリに復元データNDiを格納する。この不揮発メモリに対する復元データNDiの格納に先立ち、図5(D)のように上書き処理区画番号zとして1つ前の区画の番号(x−1)を不揮発メモリに記述する。
【0060】
このような図5または図6のそれぞれの状態において、電源が遮断された場合を考える。まず、図5のように新データNDiの復元の途中で電源が遮断されたとする。この場合、不揮発メモリに記述されている復元処理区画番号yはy=xであり、一方、上書き処理区画番号zはz=x−2となっている。したがって、両者の差(y−z)を求めると
(y−z)=x−(x−2)=2
となる。したがって復元処理区画番号yと上書き処理区画番号zの差が2の場合には、復元処理中に電源遮断が起きたことが分かる。
【0061】
一方、図6のように、復元した新データNDiを不揮発メモリに書き込んだ後に上書き区画番号zに1つ前の区画の番号(x−1)を記述し、その後に1つ前の区画の復元データによる書替え対象メモリの上書きを行っていることから、この上書き処理中に電源が遮断された場合、不揮発メモリ34の復元処理区画番号yはy=xであり、一方、上書き処理区画番号zはz=x−1となっている。したがって、両者の差をとると
(y−z)=x−(x−1)=1
となり、差が1の場合には上書き処理中の電源遮断と判断することができる。
【0062】
再び図2を参照するに、携帯電話12の再開処理部44に設けている復元再開部48は、判定部46により区画データの復元処理中に電源が遮断されたと判断した場合は、電源復旧後に不揮発メモリ34から読み出した復元処理区画番号の区画の先頭から復元処理を再開する。
【0063】
また上書き再開部50は、判定部46により区画データの上書き処理中に電源が遮断されたと判断した場合、電源復旧後に不揮発メモリ34から読み出した上書き処理区画番号の先頭から上書き処理を再開する。
【0064】
このような再開処理部44の機能により、差分データに基づく差分更新処理の途中で携帯電話12の電源が遮断し、その後に電源が復旧した場合には、電源遮断が復元処理中に起きても上書き処理中に起きても、電源復旧後はそれぞれの中断した区画位置からの処理を再開して差分更新処理を継続することができる。
【0065】
更に本発明の差分更新処理における復元処理部36にあっては、区画ごとに差分データを用いて新データを復元した後、書替え対象メモリの書替え対象データ即ち旧データとの同一の有無を判断し、同一である場合には新旧同一コードを不揮発メモリに書き込んで新データの格納をスキップし、同一でない場合にのみ新データの不揮発メモリへの書込みを行う処理を併せて行っている。
【0066】
図7及び図8は、図2の基地局10における差分データ生成処理のフローチャートである。ここで、1つの区画の大きさを例えば256KBとする。
S1: 旧ファイルをディスク等から読み出す。
S2: 新ファイルからサイズ256KBのデータを読み込み、1つの区画x(x番目の区画)として定義する。
S3: データ比較対象ポインタPを区画xの先頭に、データ参照ポインタQを旧ファイルの区画xの先頭に相当する位置に設定する。
S4: データ比較対象ポインタPの指す値とデータ参照ポインタQの指す値を比較する。
S5: S4の比較で値が同一であればS8へ進み、そうでなければS6へ進む。
S6: 旧ファイルの最後尾から区画(x−1)の先頭に相当する位置に向かって、データ比較対象ポインタの指す値と一致する箇所を探索する。
S7: 探索の結果、一致するデータが旧ファイル中に発見されたならばS8へ進む。発見されなければS11へ進む。
S8: データ比較対象ポインタPとデータ参照ポインタQのそれぞれのポインタの位置からポインタを後方へ1バイトずつ移動させながら値を比較し、値の一致が何バイト連続して起こるかを計測する。
S9: 値が一致しなくなった時、最初に値が一致したときのデータ参照ポインタの値とS6で計測した一致長を「複写コード」として差分データに出力する。
S10: データ比較対象ポインタP、データ参照ポインタQを最後に一致したデータの位置へ移動させて、S13へ進む。
S11: S7で一致するデータが旧ファイル中に発見されなかった場合であり、データ比較対象の指す値は更新されて新規に現れたデータであると判定される。
S12: 更新コードとその値(更新後データ)を差分データに出力する。
S13: データ比較対象ポインタPを1バイト後方へ移動させる。
S14: S13の移動の結果、データ比較対象ポインタPが区画xの最終位置に到達したならS15へ進み、そうでなければS4へ進む。
S15: 区画xが新ファイルの最終区画であった場合、差分抽出処理を終了し、そうでなければS16へ進む。
S16: 次の区画を読み込み対象とするためxを1増加させ、S2へ戻る。
【0067】
図9及び図10は、図2の携帯電話12におけるデータ更新処理のフローチャートである。ここで、xの初期値を1とする。
S1: 全部の区画用の差分データを外部から転送させて受信する。
S2: 受信した差分データを不揮発メモリに保存する。
S3: 不揮発メモリに復元処理区画番号として値xを記述する。
S4: 区画x用の差分データを不揮発メモリから読み出す。
S5: 転送された差分データからコードを1つ読み出す。
S6: S5で読み出されたコードが「複写コード」であればS7へ進み、「更新コード」であればS8へ進む。
S7: 「複写コード」が指し示す旧データの参照位置から「複写コード」が指し示す複写長分のデータをワークメモリに出力し、S9へ進む。
S8: 「更新コード」が指し示す更新後データをワークメモリに出力する。
S9: 差分データのコード読み取り位置を一つ後方へ移動させる。
S10: 差分データのコード読み取り位置が差分データの最終であった場合S11へ進み、そうでなければS5へ戻る。
S11: ワークメモリに復元された区画xの新データと書替対象メモリ上の区画xの旧データを比較し、同一であればS12へ進み、そうでなければS13へ進む。
S12: 不揮発メモリに区画xは新旧同一データであることを示す新旧同一コードを書き、S14へ進む。
S13: ワークメモリに復元された区画xの新データを不揮発メモリに格納する。
S14:不揮発メモリに上書き処理区画番号として値(x−1)を記述する。
S15: 区画(x−1)のデータが格納された不揮発メモリの内容を読み込み、新旧同一コードが記述されていた場合はS17へ進み,そうでなければS16へ進む。
S16: 不揮発メモリ復元された区画(x−1)の新データを内部メモリに格納された旧データの(x−1)区画に上書きする。
S17: 次の区画を読み込み対象とするためxを1増加させる。
S18: すべての区画の復元が終了していた場合、S19へ進み、そうでなければS3へ戻る。
S19: 不揮発メモリに復元された最終区画の新データを内部メモリに格納された旧データの最終区画に上書きする。
【0068】
このデータ更新処理にあっては、ステップS1,S2の処理により全ての区画の差分データを最初に不揮発メモリに保存することにより、更新処理中の電源遮断により外部から差分データを受信できなくなる問題を解消する。また、ステップS3の復元処理区画番号の不揮発メモリへの記述とステップS14の上書き処理区画番号の不揮発メモリへの記述により、電源遮断により更新処理が途絶えた場合でも、電源復旧後に途中の区画から更新処理を再開可能としている。
【0069】
更に、ステップS13の復元された区画の新データの不揮発メモリに対する格納によって、復元した区画の新データが電源遮断により消滅してしまう問題を解消している。更に、ステップS11,S12の処理により、復元した新データと旧データを比較し、同一である場合には新旧同一コードを不揮発メモリに書き込んで復元した新データの書込みを省略することによって、上書き処理による処理時間の増加を防いでいる。
【0070】
図11及び図12は、図2の携帯電話12でのデータ更新処理の途中で電源が遮断され、電源復旧後に更新処理を途中から再開する処理のフローチャートである。この処理は、図9のステップS1,S2の処理がステップS101〜S104の処理に自動的に切替ったものであり、ステップS3〜S19は図9及び図10のデータ更新処理と同じになる。
S101: 不揮発メモリから復元処理区画番号yと上書き処理区画番号zを読み出す。
S102: 復元処理区画番号と上書き処理区画番号の差が1であれば、上書き処理中の電源遮断と判断してS104に進み、差が2であれば復元処理中の電源遮断と判断してS103に進む。
S103: x=yとしてS3へ進む。
S104: x=z+1としてS15へ進む。
S3: 不揮発メモリに復元処理区画番号として値xを記述する。
S4: 区画x用の差分データを不揮発メモリから読み出す。
S5: 転送された差分データからコードを1つ読み出す
S6: S5で読み出されたコードが「複写コード」であればS7へ進み、「更新コード」であればS8へ進む。
S7: 「複写コード」が指し示す旧データの参照位置から「複写コード」が指し示す複写長分のデータをワークメモリに出力し、S9へ進む。
S8: 更新コードが指し示す更新後データをワークメモリに出力する。
S9: 差分データのコード読み取り位置を一つ後方へ移動させる。
S10: 差分データのコード読み取り位置が差分データの最終であった場合S11へ進み、そうでなければS5へ戻る。
S11: ワークメモリに復元された区画xの新データと書替対象メモリ上の区画xの旧データを比較し、同一であればS12へ進み、そうでなければS13へ進む。
S12: 不揮発メモリに区画xは新旧同一データであることを示す新旧同一コードを記述し、S14へ進む。
S13: ワークメモリに復元された区画xの新データを不揮発メモリに格納する。
S14: 不揮発メモリに上書き処理区画番号として値(x−1)を記述する。
S15: 区画(x−1)のデータが格納された不揮発メモリの内容を読み込み、新旧同一コードが記述されていた場合はS17へ進み、そうでなければ
S16へ進む。
S16: 不揮発メモリ復元された区画(x−1)の新データを内部メモリに格納された旧データの(x−1)区画に上書きする。
S17: 次の区画を読み込み対象とするためxを1増加させる。
S18: すべての区画の復元が終了していた場合、S19へすすみ、そうでなければS3へ戻る。
S19: 不揮発メモリに復元された最終区画の新データを内部メモリに格納された旧データの最終区画に上書きする。
【0071】
この電源復旧後に再開する更新処理において、ステップS101〜S104の処理によって電源復帰後の処理開始位置が復元処理か上書き処理かを判定し、データ更新処理の続行を可能としている。
【0072】
図13は、本発明による差分更新処理方法の第2実施形態が適用されるブロック図である。この実施形態にあっては、基地局10側における差分データ生成処理において、新ファイル16から区画切出部18で切り出した一定サイズ例えば256KBのデータを更にn個のブロックデータにブロック分割部52で分割して、各ブロックごとの処理により差分データを生成するようにしたことを特徴とする。
【0073】
この基地局10側における1区分をnブロックに分割したブロックデータに対応した差分データの生成に対応し、携帯電話12側の復元処理部36にあっても、各区分ごとの差分データを用いた復元処理において、n個に分割された差分ブロックデータに基づいた新データの復元を行うようにしている。なお、それ以外の構成は図2の第1実施形態と同じである。
【0074】
図14及び図15は、図13の基地局10における差分データ生成処理のフローチャートある。なお、この処理にあっては、1つの区画の大きさを例えば256KBとする。
S1: 旧ファイルをディスク等から読み出す。
S2: 新ファイルからサイズ256KBのデータを読み込み、1つの区画x(x番目の区画)として定義する。
S3: データ比較対象ポインタPを区画xの先頭に、データ参照ポインタQを旧ファイルの区画xの先頭に相当する位置に設定する。
S4: データ比較対象ポインタPの指す値とデータ参照ポインタQの指す値を比較する。
S5: S4の比較で値が同一であればS8へ進み、そうでなければS6へ進む。
S6: 旧ファイルの最後尾から区画(x−1)の先頭に相当する位置に向かって、データ比較対象ポインタPの指す値と一致する箇所を探索する。
S7: 探索の結果、一致するデータが旧ファイル中に発見されたならばS8へ進み、発見されなければS11へ進む。
S8: データ比較対象ポインタPとデータ参照ポインタQのそれぞれのポインタの位置からポインタを後方へ1バイトずつ移動させながら値を比較し、値の一致が何バイト連続して起こるかを計測する。
S9: 値が一致しなくなった時、最初に値が一致したときのデータ参照ポインタQの値とS6で計測した一致長を「複写コード」として差分データに出力する。
S10: データ比較対象ポインタPをデータ参照ポインタQが最後に一致したデータの位置へ移動させて、S13へ進む。
S11: 一致するデータが旧ファイル中に発見されなかった場合であり、データ比較対象の指す値は更新されて新規に現れたデータであると判定される。
S12: 「更新コード」とその値(更新後データ)を差分データに出力する。
S13: データ比較対象ポインタPを1バイト後方へ移動させる。
S14: S13の移動の結果ポインタが区画xの最終位置に到達したならばS15へ進み、そうでなければS4へ戻る。
S15: 区画xをn等分しn個のブロックに分割する。
S16: m番目のブロックにおいて、新旧データの内容を比較し、新旧同一であればS17へ進み、そうでなければS18へ進む。
S17: m番目のブロックの内容が新旧同一であることを示す新旧同一コードを区画x用の差分データに付加する。
S18: m番目のブロックは区画xの最終ブロックであった場合、S20へ進み、そうでなければS19へ進む。
S19: mの値を1増加させるてS16へ戻る。
S20: 区画xが新ファイルの最終区画であった場合、差分抽出処理を終了し、そうでなければS21へ進む。
S21: 次の区画を読み込み対象とするためxを1増加させ、S2へ戻る。
【0075】
この差分データ生成処理において、ステップS1〜S19の処理により、各区分につきn個に分割したブロックデータと旧ファイルのブロックデータを比較して、一致する場合には新旧同一コードを差分データに付加しておくことで、組込システムとなる携帯電話12側における更新処理の際のブロック単位で復元した新データと旧データとを比較する処理を省略し、その分、更新処理時間を短縮することができる。
【0076】
図16及び図17は、図13の携帯電話におけるデータ更新処理のフローチャートである。なお、xの初期値を1とする。
S1: 全部の区画用の差分データを外部から転送して受信する。
S2: 受信した差分データを不揮発メモリに保存する。
S3: 不揮発メモリに復元処理区画番号として値xを記述する。
S4: 区画x用の差分データにブロックmが新旧同一である由の新旧同一コードが付加されていればS5へ進み、そうでなければS6へ進む。
S5: 区画xブロックmが新旧同一である由の新旧同一コードを不揮発メモリに書き出し記憶させ、S14へ進む。
S6: 区画xブロックm用の差分データを不揮発メモリから読み出す。
S7: 転送された差分データからコードを1つ読み出す。
S8: S7で読み出されたコードが「複写コード」であればS9へ進み、「更新コード」であればS10へ進む。
S9: 「複写コード」が指し示す旧データの参照位置から「複写コード」が指し示す複写長分のデータをワークメモリに出力してS11へ進む。
S10: 「更新コード」が指し示す更新後データをワークメモリに出力する。
S11: 差分データのコード読み取り位置を一つ後方へ移動させる。
S12: 差分データのコード読み取り位置がブロックmの差分データの最終であった場合はS13へすすみ、そうでなければS7へ戻る。
S13: ワークメモリに復元された区画xブロックmのデータを不揮発メモリに格納する。
S14: mの値を1増加させる。
S15: 区画xの最終ブロックまで処理を完了した場合はS16へ進み、そうでなければS4へ戻る。
S16: 不揮発メモリに上書き処理区画番号として値(x−1)を記述する。
S17: 区画(x−1)のデータが格納された不揮発メモリの内容を読み出し、ブロックmについて新旧同一データである由の新旧同一コードが記述されていた場合はS19へ進み、そうでなければS18へ進む。
S18: 不揮発メモリに復元された区画(x−1)、ブロックmの新データを内部メモリに格納された旧データの区画(x−1)、ブロックmに上書きする。
S19: mの値を1増加させる。
S20: 区画(x−1)の最終ブロックまですべて上書き処理が完了していればS21へ進み、そうでなければS17へ進む。
S21: 次の区画を読み込み対象とするためxを1増加させる。
S22: すべての区画の復元が終了していた場合はS23へ進み、そうでなければS3へ戻る。
S23: 不揮発メモリに復元された最終区画の新データを内部メモリに格納された旧データの最終区画に上書きする。
【0077】
このような携帯電話12におけるデータ更新処理において、ステップS1,S2の処理により全ての区画の差分データを最初に不揮発メモリに保存することで、更新処理中の電源遮断により外部からデータを二度と受信できなくなる問題を解消する。
【0078】
また、ステップS3における不揮発メモリに対する復元処理区画番号の記述とステップS16における不揮発メモリに対する上書き処理区画番号の記述により、電源遮断により更新処理が途絶えた場合でも、電源復帰後に途中の区画から更新処理を再開することができる。
【0079】
更に、ステップS3で復元された区画のブロックデータの不揮発メモリへの書込みにより、電源遮断により復元したブロックデータが消滅してしまう問題を解消する。更に、ステップS4における新旧同一コードがあった場合の不揮発メモリへの書込みのスキップ、ステップS17における同じく新旧同一コードが記述されていた場合の書込み対象データへの上書きのスキップによって、上書き処理による処理時間の増加を防ぐことができる。
【0080】
図18及び図19は、図13の携帯電話12でデータ更新処理の途中で電源が遮断され、電源復帰後に更新処理を途中から再開する場合のフローチャートである。この処理は、図12のステップS1,S2の処理がステップS101〜S104の処理に自動的に切替ったものであり、ステップS3〜S23は図12のデータ更新処理と同じになる。
S101: 不揮発メモリから復元処理区画番号yと上書き処理区画番号zを
読み出す。
S102: 復元処理区画番号yと上書き処理区画番号zの差が1であれば上書き処理中の電源遮断と判断してS104に進み、差が2であれば復元処理中の電源遮断と判断してs103に進む。
S103: x=yとしてS3へ進む。
S104: x=z+1としてS17へ進む。
S3: 不揮発メモリに復元処理区画番号として値xを記述する。
S4: 区画x用の差分データにブロックmが新旧同一である由の新旧同一コードが付加されていればS5へ進み、そうでなければS6へ進む。
S5: 区画xブロックmが新旧同一である由の新旧同一コードを不揮発メモリに書き出し記憶させ、S14へ進む。
S6: 区画xブロックm用の差分データを不揮発メモリから読み出す。
S7: 転送された差分データからコードを1つ読み出す。
S8: S7で読み出されたコードが「複写コード」であればS9へ進み、「更新コード」であればS10へ進む。
S9: 「複写コード」が指し示す旧データの参照位置から「複写コード」が指し示す複写長分のデータをワークメモリに出力し、S11へ進む。
S10: 「更新コード」が指し示す更新後データをワークメモリに出力する。
S11: 差分データのコード読み取り位置を一つ後方へ移動させる。
S12: 差分データのコード読み取り位置がブロックmの差分データの最終であった場合はS13へ進み、そうでなければS7へ戻る。
S13: ワークメモリに復元された区画x、ブロックmのデータを不揮発メモリに格納する。
S14: mの値を1増加させる。
S15: 区画xの最終ブロックまで処理を完了した場合はS16へ進み、そうでなければS4へ戻る。
S16: 不揮発メモリに上書き処理区画番号として値(x−1)を記述する。
S17: 区画(x−1)のデータが格納された不揮発メモリの内容を読み出し、ブロックmについて新旧同一データである由の新旧同一コードが記述されていた場合はS19へ進み、そうでなければS18へ進む。
S18: 不揮発メモリ復元された区画(x−1)、ブロックmの新データを内部メモリに格納された旧データの区画(x−1)、ブロックmに上書きする。
S19: mの値を1増加させる。
S20: 区画(x−1)の最終ブロックまですべて上書き処理が完了していればS21へ進み、そうでなければS17へ進む。
S21: 次の区画を読み込み対象とするためxを1増加させる。
S22: すべての区画の復元が終了していた場合はS23へ進み、そうでなければS3へ戻る。
S23: 不揮発メモリに復元された最終区画の新データを内部メモリに格納された旧データの最終区画に上書きする。
【0081】
このような電源復帰後のデータ更新処理において、ステップS101〜S104の処理によって電源復帰後の処理再開位置が更新処理か上書き処理かを判定し、データ更新処理の続行を行うことができる。
【0082】
図20及び図21は、図2の携帯端末12におけるデータ更新処理の他の実施形態のフローチャートであり、この実施形態は、1区画分のデータ復元処理が完了した段階でn個のブロックに分割し、ブロック単位に新旧データが同一かどうかを比較し、同一であればその由を示す新旧同一コードを新ブロックデータに代えて不揮発メモリに記憶するようにしたことを特徴とする。ここで、xの初期値を1とする。
S1: 全部の区画用の差分データを外部から転送させて受信する。
S2: 受信した差分データを不揮発メモリに保存する。
S3: 不揮発メモリに復元処理区画番号として値xを記述する。
S4: 区画x用の差分データを不揮発メモリから読み出す。
S5: 転送された差分データからコードを1つ読み出す。
S6: S5で読み出されたコードが「複写コード」であればS7へ進み、
「更新コード」であればS8へ進む。
S7: 「複写コード」が指し示す旧データの参照位置から「複写コード」が指し示す複写長分のデータをワークメモリに出力し、S9へ進む。
S8: 「更新コード」が指し示す更新後データをワークメモリに出力する。
S9: 差分データのコード読み取り位置を一つ後方へ移動させる。
S10: 差分データのコード読み取り位置が差分データの最終であった場合S11へ進み、そうでなければS5へ戻る。
S11: 区画xをn等分しn個のブロックに分割する。
S12: m番目のブロックにおいて、新旧データの内容を比較し、新旧同一であればS13へ進み、そうでなければS14へ進む。
S13: m番目のブロックの内容が新旧同一であることを示す新旧同一コードを不揮発メモリの区画xに記述する。
S14: ワークメモリに復元されたm番目のブロックの新データを不揮発メモリに格納する。
S15: m番目のブロックは区画xの最終ブロックであった場合、S17へ進み、そうでなければS16へ進む。
S16: mの値を1増加させるてS12へ戻る。
S17: 不揮発メモリに上書き処理区画番号として値(x−1)を記述する。
S18: 区画(x−1)のデータが格納された不揮発メモリの内容を読み出し、ブロックmについて新旧同一データである由の新旧同一コードが記述されていた場合はS20へ進み、そうでなければS19へ進む。
S19: 不揮発メモリに復元された区画(x−1)、ブロックmの新データを内部メモリに格納された旧データの区画(x−1)、ブロックmに上書きする。
S20: mの値を1増加させる。
S21: 区画(x−1)の最終ブロックまですべて上書き処理が完了していればS22へ進み、そうでなければS18に戻る。
S22: 次の区画を読み込み対象とするためxを1増加させる。
S23: すべての区画の復元が終了していた場合はS24へ進み、そうでなければS3へ戻る。
S24: 不揮発メモリに復元された最終区画の新データを内部メモリに格納された旧データの最終区画に上書きする。
【0083】
図22及び図23は、図20及び図21のデータ更新処理の途中で電源が遮断され、電源復帰後に更新処理を途中から再開する場合のフローチャートである。この処理は、図20のステップS1,S2の処理がステップS101〜S104の処理に自動的に切替ったものであり、ステップS3〜S24は図20及び図21のデータ更新処理と同じになる。
S101: 不揮発メモリから復元処理区画番号yと上書き処理区画番号zを
読み出す。
S102: 復元処理区画番号yと上書き処理区画番号zの差が1であれば上書き処理中の電源遮断と判断してS104に進み、差が2であれば復元処理中の電源遮断と判断してS103に進む。
S103: x=yとしてS3へ進む。
S104: x=z+1としてS17へ進む。
S3: 不揮発メモリに復元処理区画番号として値xを記述する。
S4: 区画x用の差分データを不揮発メモリから読み出す。
S5: 転送された差分データからコードを1つ読み出す。
S6: S5で読み出されたコードが「複写コード」であればS7へ進み、「更新コード」であればS8へ進む。
S7: 「複写コード」が指し示す旧データの参照位置から「複写コード」が指し示す複写長分のデータをワークメモリに出力し、S9へ進む。
S8: 「更新コード」が指し示す更新後データをワークメモリに出力する。
S9: 差分データのコード読み取り位置を一つ後方へ移動させる。
S10: 差分データのコード読み取り位置が差分データの最終であった場合S11へ進み、そうでなければS5へ戻る。
S11: 区画xをn等分しn個のブロックに分割する。
S12: m番目のブロックにおいて、新旧データの内容を比較し、新旧同一であればS13へ進み、そうでなければS14へ進む。
S13: m番目のブロックの内容が新旧同一であることを示す新旧同一コードを不揮発メモリの区画xに記述する。
S14: ワークメモリに復元されたm番目のブロックの新データを不揮発メモリに格納する。
S15: m番目のブロックは区画xの最終ブロックであった場合、S17へ
進み、そうでなければS16へ進む。
S16: mの値を1増加させるてS12へ戻る。
S17: 不揮発メモリに上書き処理区画番号として値(x−1)を記述する。
S18: 区画(x−1)のデータが格納された不揮発メモリの内容を読み出し、ブロックmについて新旧同一データである由の新旧同一コードが記述されていた場合はS20へ進み、そうでなければS19へ進む。
S19: 不揮発メモリに復元された区画(x−1)、ブロックmの新データを内部メモリに格納された旧データの区画(x−1)、ブロックmに上書きする。
S20: mの値を1増加させる。
S21: 区画(x−1)の最終ブロックまですべて上書き処理が完了していればS22へ進み、そうでなければS18に戻る。
S22: 次の区画を読み込み対象とするためxを1増加させる。
S23: すべての区画の復元が終了していた場合はS24へ進み、そうでなければS3へ戻る。
S24: 不揮発メモリに復元された最終区画の新データを内部メモリに格納された旧データの最終区画に上書きする。
【0084】
なお上記の実施形態は、基地局で差分データを生成して組込システムとしての携帯電話に転送して差分更新処理を行う場合を例にとっているが、本発明はこれに限定されず、適宜の送信側の装置から組込システムを備えた装置に差分データを転送して書替え対象データの差分更新を行う場合を含む。
【0085】
また本発明は、その目的と利点を損なうことのない適宜の変形を含み、更に上記の実施形態に示した数値による限定は受けない。
【0086】
ここで本発明の特徴を列挙すると次のようになる。
(付記)
(付記1)
差分データ受信部により、新旧2つのファイルに対して、新ファイルを同一サイズの複数区画に分割し、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置より更に1区画分前方の位置から旧ファイルの最後尾までの範囲で探索して区画毎に生成された差分データを全区画分受信して不揮発メモリに格納する差分データ受信ステップと、
復元処理部により、現在の処理区画を示す復元処理区画番号(X)を前記不揮発メモリに保存した後に、1区画分の差分データから区画データを復元して前記不揮発メモリに格納する復元処理ステップと、
上書き処理部により、1つ前の処理区画を示す上書き処理区画番号(X−1)を前記不揮発性メモリに保存した後に、1つ前の区画で復元されている復元データを前記不揮発性メモリから読み出して不揮発メモリの書替え対象データに上書きする上書き処理ステップと、
を備えたことを特徴とする差分更新方法。(1)
【0087】
(付記2)
付記1記載の差分更新方法に於いて、前記差分データ受信ステップは、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置から旧ファイルの最後尾までの範囲で探索して生成された区画毎の差分データを受信することを特徴とする差分更新方法。
【0088】
(付記3)
付記1記載の差分更新方法に於いて、更に、
判定部により、電源が遮断された場合の電源復旧後に、区画データの復元処理中に電源が遮断されたか、区画データの上書き処理中に電源が遮断されたかを判別する判別ステップと、
復元再開部により、区画データの復元処理中に電源が遮断された場合は、電源復旧後に前記不揮発メモリから読み出した前記復元処理区画番号の区画の先頭から復元処理を再開する復元再開ステップと、
上書き再開部により、区画データの上書き処理中に電源が遮断された場合、電源復旧後に前記不揮発メモリから読み出した前記上書き処理区画番号の先頭から上書き処理を再開する上書き再開ステップと、
を備えたことを特徴とする差分更新方法。(2)
【0089】
(付記4)
付記3記載の差分更新方法に於いて、前記判別ステップは、電源が遮断された場合の電源復旧後に、前記復元処理区画番号と前記上書き処理区画番号との差を算出し、差が1の場合は復元処理中の電源遮断と判別し、差が2の場合は上書き処理中の電源遮断と判別することを特徴とする差分更新方法。
【0090】
(付記5)
付記1記載の差分更新方法に於いて、前記復元処理ステップは、1区画分の差分データから復元された復元区分データと、書替え対象データの該当区画データの内容が同一であるか否か判断し、同一であった場合は前記復元区分データに代えて前記不揮発メモリに新旧同一を記述し、
前記上書き処理ステップは、前記不揮発メモリに新旧同一が記述されている場合は、復元区分データの上書きをスキップすることを特徴とする差分更新方法。
【0091】
(付記6)
付記1記載の差分更新方法に於いて、前記復元処理ステップは、更に、1区画分の差分データから復元された復元区画データを更にn個の復元ブロックデータに等分し、各ブロック単位で復元ブロックデータと書替えデータが同一であるか否かを判断し、同一であった場合は前記復元ブロックデータに代えて前記不揮発メモリに新旧同一を記述し、
前記上書き処理ステップは、前記不揮発メモリに新旧同一が記述されている場合は、復元ブロックデータの上書きをスキップすることを特徴とする差分更新方法。
【0092】
(付記7)
差分データ受信部により、新旧2つのファイルに対して、新ファイルを同一サイズの複数区画に分割し、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置より更に1区画分前方の位置から旧ファイルの最後尾までの範囲で探索して区画毎の差分データを生成し、更に、1区画分の新旧データをn個のブロックに等分し、各ブロック単位で親ファイルブロックデータと旧ファイルデータが同一であるか否かを判断し、同一であった場合は前記差分ブロックデータに代えて新旧同一が記述された差分データを全区画分受信して不揮発メモリに格納する差分データ受信ステップと、
復元処理部により、現在の処理区画を示す復元処理区画番号(X)を前記不揮発メモリに保存した後に、1区画分の差分データにつきn分割されたブロックデータを復元して前記不揮発メモリに格納する復元処理ステップと、
上書き処理部により、1つ前の処理区画を示す上書き処理区画番号(X−1)を前記不揮発性メモリに保存した後に、1つ前の区画で復元されている復元データにつきn分割された復元ブロックデータを前記不揮発性メモリから読み出して不揮発メモリの書替え対象データに上書きする上書き処理ステップと、
を備えたことを特徴とする差分更新方法。(3)
【0093】
(付記8)
付記7記載の差分更新方法に於いて、更に、
判定部により、電源が遮断された場合の電源復旧後に、区画データの復元処理中に電源が遮断されたか、区画データの上書き処理中に電源が遮断されたかを判別する判別ステップと、
復元再開部により、区画データの復元処理中に電源が遮断された場合は、電源復旧後に前記不揮発メモリから読み出した前記復元処理区画番号の区画の先頭から復元処理を再開する復元再開ステップと、
上書き処理部により、区画データの上書き処理中に電源が遮断された場合、電源復旧後に前記不揮発メモリから読み出した前記上書き処理区画番号の先頭から上書き処理を再開する上書き再開ステップと、
を備えたことを特徴とする差分更新方法。(4)
【0094】
(付記9)
付記7記載の差分更新方法に於いて、
前記復元処理ステップは、前記差分ブロックデータに新旧同一であることが記述されている場合は、差分ブロックデータに基づく復元処理をスキップして不揮発メモリに新旧同一を記述し、
前記上書き処理ステップは、前記不揮発メモリに新旧同一が記述されている場合は、復元ブロックデータの上書きをスキップすることを特徴とする差分更新方法。
【0095】
(付記10)
コンピュータに、
新旧2つのファイルに対して、新ファイルを同一サイズの複数区画に分割し、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置より更に1区画分前方の位置から旧ファイルの最後尾までの範囲で探索して区画毎に生成された差分データを全区画分受信して不揮発メモリに格納する差分データ受信ステップと、
現在の処理区画を示す復元処理区画番号(X)を前記不揮発メモリに保存した後に、1区画分の差分データから区画データを復元して前記不揮発メモリに格納する復元処理ステップと、
上書き処理部により、1つ前の処理区画を示す上書き処理区画番号(X−1)を前記不揮発性メモリに保存した後に、1つ前の区画で復元されている復元データを前記不揮発性メモリから読み出して不揮発メモリの書替え対象データに上書きする上書き処理ステップと、
を実行させることを特徴とするプログラム。(5)
【0096】
(付記11)
付記10記載のプログラムに於いて、前記差分データ受信ステップは、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置より更に1区画分前方の位置から旧ファイルの最後尾までの範囲で探索して生成された区画毎の差分データを受信することを特徴とするプログラム。
【0097】
(付記12)
付記10記載のプログラムに於いて、更に、
電源が遮断された場合の電源復旧後に、区画データの復元処理中に電源が遮断されたか、区画データの上書き処理中に電源が遮断されたかを判別する判別ステップと、
区画データの復元処理中に電源が遮断された場合は、電源復旧後に前記不揮発メモリから読み出した前記復元処理区画番号の区画の先頭から復元処理を再開する復元再開ステップと、
区画データの上書き処理中に電源が遮断された場合、電源復旧後に前記不揮発メモリから読み出した前記上書き処理区画番号の先頭から上書き処理を再開する上書き再開ステップと、
を備えたことを特徴とするプログラム。
【0098】
(付記13)
付記12記載のプログラムに於いて、前記判別ステップは、電源が遮断された場合の電源復旧後に、前記復元処理区画番号と前記上書き処理区画番号との差を算出し、差が1の場合は復元処理中の電源遮断と判別し、差が2の場合は上書き処理中の電源遮断と判別することを特徴とするプログラム。
【0099】
(付記14)
付記10記載のプログラムに於いて、前記復元処理ステップは、1区画分の差分データから復元された復元区分データと、書替え対象データの該当区画データの内容が同一であるか否か判断し、同一であった場合は前記復元区分データに代えて前記不揮発メモリに新旧同一を記述し、
前記上書き処理ステップは、前記不揮発メモリに新旧同一が記述されている場合は、復元区分データの上書きをスキップすることを特徴とするプログラム。
【0100】
(付記15)
付記10記載のプログラムに於いて、
前記復元処理ステップは、更に、1区画分の差分データから復元された復元区画データを更にn個の復元ブロックデータに等分し、各ブロック単位で復元ブロックデータと書替えデータが同一であるか否かを判断し、同一であった場合は前記復元ブロックデータに代えて前記不揮発メモリに新旧同一を記述し、
前記上書き処理ステップは、前記不揮発メモリに新旧同一が記述されている場合は、復元ブロックデータの上書きをスキップすることを特徴とするプログラム。
【0101】
(付記16)
コンピュータに、
新旧2つのファイルに対して、新ファイルを同一サイズの複数区画に分割し、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置からより更に1区画分前方の位置旧ファイルの最後尾までの範囲で探索して区画毎の差分データを生成し、更に、1区画分の新旧データをn個のブロックに等分し、各ブロック単位で親ファイルブロックデータと旧ファイルデータが同一であるか否かを判断し、同一であった場合は前記差分ブロックデータに代えて新旧同一が記述された差分データを全区画分受信して不揮発メモリに格納する差分データ受信ステップと、
現在の処理区画を示す復元処理区画番号(X)を前記不揮発メモリに保存した後に、1区画分の差分データにつきn分割されたブロックデータを復元して前記不揮発メモリに格納する復元処理ステップと、
1つ前の処理区画を示す上書き処理区画番号(X−1)を前記不揮発性メモリに保存した後に、1つ前の区画で復元されている復元データにつきn分割された復元ブロックデータを前記不揮発性メモリから読み出して不揮発メモリの書替え対象データに上書きする上書き処理ステップと、
を備えたことを特徴とするプログラム。
【0102】
(付記17)
付記16記載のプログラムに於いて、前記差分データ受信ステップは、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置から旧ファイルの最後尾までの範囲で探索して区画毎に生成された差分データを受信することを特徴とするプログラム。
【0103】
(付記18)
付記16記載のプログラムに於いて、更に、
電源が遮断された場合の電源復旧後に、区画データの復元処理中に電源が遮断されたか、区画データの上書き処理中に電源が遮断されたかを判別する判別ステップと、
区画データの復元処理中に電源が遮断された場合は、電源復旧後に前記不揮発メモリから読み出した前記復元処理区画番号の区画の先頭から復元処理を再開する復元再開ステップと、
区画データの上書き処理中に電源が遮断された場合、電源復旧後に前記不揮発メモリから読み出した前記上書き処理区画番号の先頭から上書き処理を再開する上書き再開ステップと、
を備えたことを特徴とするプログラム。
【0104】
(付記19)
付記18記載のプログラムに於いて、前記判別ステップは、電源が遮断された場合の電源復旧後に、前記復元処理区画番号と前記上書き処理区画番号との差を算出し、差が1の場合は復元処理中の電源遮断と判別し、差が2の場合は上書き処理中の電源遮断と判別することを特徴とするプログラム。
【0105】
(付記20)
付記16記載のプログラムに於いて、
前記復元処理ステップは、前記差分ブロックデータに新旧同一であることが記述されている場合は、差分ブロックデータに基づく復元処理をスキップして不揮発メモリに新旧同一を記述し、
前記上書き処理ステップは、前記不揮発メモリに新旧同一が記述されている場合は、復元ブロックデータの上書きをスキップすることを特徴とするプログラム。
【0106】
(付記21)
新旧2つのファイルに対して、新ファイルを同一サイズの複数区画に分割し、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置又は前記開始位置より1区画分前方の位置から旧ファイルの最後尾までの範囲で探索して区画毎に生成された差分データを全区画分受信して不揮発メモリに格納する差分データ受信部と、
現在の処理区画を示す復元処理区画番号(X)を前記不揮発メモリに保存した後に、1区画分の差分データから区画データを復元して前記不揮発メモリに格納する復元処理部と、
1つ前の処理区画を示す上書き処理区画番号(X−1)を前記不揮発性メモリに保存した後に、1つ前の区画で復元されている復元データを前記不揮発性メモリから読み出して不揮発メモリの書替え対象データに上書きする上書き処理部と、電源が遮断された場合の電源復旧後に、区画データの復元処理中に電源が遮断されたか、区画データの上書き処理中に電源が遮断されたかを判別する判定部と、区画データの復元処理中に電源が遮断された場合は、電源復旧後に前記不揮発メモリから読み出した前記復元処理区画番号の区画の先頭から復元処理を再開する復元再開部と、
区画データの上書き処理中に電源が遮断された場合、電源復旧後に前記不揮発メモリから読み出した前記上書き処理区画番号の先頭から上書き処理を再開する上書き再開部と、
を備えたことを特徴とする差分更新装置。
【0107】
(付記22)
新旧2つのファイルに対して、新ファイルを同一サイズの複数区画に分割し、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置又は前記開始位置より更に1区画分前方の位置から旧ファイルの最後尾までの範囲で探索して区画毎の差分データを生成し、更に、1区画分の新旧ファイルデータをn個のブロックに等分し、各ブロック単位で新ファイルブロックデータと旧ファイルデータが同一であるか否かを判断し、同一であった場合は前記差分ブロックデータに代えて新旧同一が記述された差分データを全区画分受信して不揮発メモリに格納する差分データ受信部と、
現在の処理区画を示す復元処理区画番号(X)を前記不揮発メモリに保存した後に、1区画分の差分データにつきn分割されたブロックデータを復元して前記不揮発メモリに格納する復元処理部と、
1つ前の処理区画を示す上書き処理区画番号(X−1)を前記不揮発性メモリに保存した後に、1つ前の区画で復元されている復元データにつきn分割された復元ブロックデータを前記不揮発性メモリから読み出して不揮発メモリの書替え対象データに上書きする上書き処理部と、
電源が遮断された場合の電源復旧後に、区画データの復元処理中に電源が遮断されたか、区画データの上書き処理中に電源が遮断されたかを判別する判定部と、区画データの復元処理中に電源が遮断された場合は、電源復旧後に前記不揮発メモリから読み出した前記復元処理区画番号の区画の先頭から復元処理を再開する復元再開部と、
区画データの上書き処理中に電源が遮断された場合、電源復旧後に前記不揮発メモリから読み出した前記上書き処理区画番号の先頭から上書き処理を再開する上書き再開部と、
を備えたことを特徴とする差分更新装置。
【0108】
【発明の効果】
以上説明してきたように本発明によれば、携帯電話などの組込型システム上での分割差分更新処理における処理手順のうち各区分の差分データからの更新処理の処理中に電源が遮断された場合でも、電源復帰後にその区画から更新処理を再開することができる。
【0109】
また、データ復元中の電源遮断時であっても、旧データに対する上書き処理中の電源遮断であっても、電源復旧後に遮断された処理を判別して遮断前の処理から続行することができ、無駄な復元処理や上書き処理を行わずに差分更新処理を再開することができる。
【0110】
更に、各区分の差分データから復元した新データが書替え対象となる旧データと同一の場合、新データの不揮発メモリへの書込み及び旧データが格納されている書替え対象メモリへの上書きを不要とし、処理を行う必要がない場合については何もせずに処理をスキップすることで、差分更新処理における処理時間を短縮することができる。
【図面の簡単な説明】
【図1】本発明の原理説明図
【図2】本発明による第1実施形態のブロック図
【図3】図2の実施形態における差分データ生成処理の説明図
【図4】旧ファイルに一致部分が複数存在した場合の差分抽出の説明図
【図5】区分データの復元処理中における復元処理区画番号と上書き処理区分番号の不揮発メモリの記述状態の説明図
【図6】区分データの復元が終了して不揮発メモリ格納中における復元処理区画番号と上書き処理区分番号の記述状態の説明図
【図7】図2の基地局側で行われる差分データ生成処理のフローチャート
【図8】図7に続く差分データ生成処理のフローチャート
【図9】図2の携帯電話で行われる本発明の第1実施形態によるデータ更新処理のフローチャート
【図10】図9に続くデータ更新処理のフローチャート
【図11】データ更新中に遮断した電源が復旧した後に行う本発明の第1実施形態によるデータ更新処理のフローチャート
【図12】図11に続くデータ更新処理のフローチャート
【図13】本発明による第2実施形態のブロック図
【図14】図13の基地局側で行われる差分データ生成処理のフローチャート
【図15】図14に続く差分データ生成処理のフローチャート
【図16】図13の携帯電話で行われる本発明の第2実施形態によるデータ更新処理のフローチャート
【図17】図16に続くデータ更新処理のフローチャート
【図18】データ更新中に遮断した電源が復旧した後に行う本発明の第2実施形態によるデータ更新処理のフローチャート
【図19】図18に続くデータ更新処理のフローチャート
【図20】携帯電話で行われる本発明の第3実施形態によるデータ更新処理のフローチャート
【図21】図20に続くデータ更新処理のフローチャート
【図22】データ更新中に遮断した電源が復旧した後に行う本発明の第3実施形態によるデータ更新処理のフローチャート
【図23】図22に続くデータ更新処理のフローチャート
【符号の説明】
10:基地局
12:携帯電話
14:旧ファイル
16:新ファイル
18:区画切出部
20:データ比較部
22:一致データ列検索部
24:更新データ出力部
26:複写コード出力部
28:差分データ出力部
30:伝送回線
32:差分データ受信部
34:不揮発メモリ
36:復元処理部
38:上書き処理部
40:書替対象メモリ(揮発メモリ)
42:ワークメモリ
44:再開処理部
46:判定部
48:復元再開部
50:上書き再開部
52:ブロック分割部
Claims (5)
- 受信側装置の書替え対象メモリに保存している書替え対象データの更新に必要な全区画の差分データ転送を送信装置に要求したとき送信装置における新旧2つのファイルに対して、新ファイルを同一サイズの複数区画に分割し、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置より更に1区画分前方の位置から旧ファイルの最後尾までの範囲で探索して区画毎に生成された差分データを受信装置の差分データ受信部により全区画分受信して不揮発メモリに格納する差分データ受信ステップと、
復元処理部により、現在の処理区画を示す復元処理区画番号(X)を前記不揮発メモリに保存した後に、1区画分の差分データから区画データを復元して前記不揮発メモリに格納する復元処理ステップと、
上書き処理部により、現在の区画より1つ前の処理区画を示す上書き処理区画番号(X−1)を前記不揮発性メモリに保存した後に、該上書き処理区画番号(X−1)に対応する部分の復元データを前記不揮発性メモリから読み出して書替対象メモリの書替え対象データに上書きする上書き処理ステップと、
を備えたことを特徴とする差分更新方法。 - 請求項1記載の差分更新方法に於いて、更に、
電源が遮断された場合の電源復旧後に、判定部により復元処理区画番号と上書き処理区画番号の差が2と判断されたの場合は区画データの復元処理中に電源が遮断されたと判別し、差が1の場合は区画データの上書き処理中に電源が遮断されたと判別する判別ステップと、
復元再開部により、区画データの復元処理中に電源が遮断された場合は、電源復旧後に前記不揮発メモリから読み出した前記復元処理区画番号を読み出し、該読み出した復元処理区画番号の区画の先頭から復元処理を再開する復元再開ステップと、
上書き再開部により、区画データの上書き処理中に電源が遮断された場合、電源復旧後に前記不揮発メモリから読み出した前記上書き処理区画番号の先頭から上書き処理を再開する上書き再開ステップと、
を備えたことを特徴とする差分更新方法。 - 受信側装置の書替え対象メモリに保存している書替え対象データの更新に必要な全区画の差分データ転送を送信装置に要求したとき送信装置における新旧2つのファイルに対して、新ファイルを同一サイズの複数区画に分割し、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置より更に1区画分前方の位置から旧ファイルの最後尾までの範囲で探索して区画毎の差分データを生成し、更に、1区画分の新旧データをn個のブロックに等分し、各ブロック単位で親ファイルブロックデータと旧ファイルデータが同一であるか否かを判断し、同一であった場合は前記差分ブロックデータに代えて新旧同一が記述された差分データを受信装置の差分データ受信部により全区画分受信して不揮発メモリに格納する差分データ受信ステップと、
復元処理部により、現在の処理区画を示す復元処理区画番号(X)を前記不揮発メモリに保存した後に、1区画分の差分データにつきn分割されたブロックデータを復元して前記不揮発メモリに格納する復元処理ステップと、
上書き処理部により、現在の区画より1つ前の処理区画を示す上書き処理区画番号(X−1)を前記不揮発性メモリに保存した後に、該上書き処理区画番号(X−1)に対応する部分の復元データにつきn分割された復元ブロックデータを前記不揮発性メモリから読み出して書替対象メモリの書替え対象データに上書きする上書き処理ステップと、
を備えたことを特徴とする差分更新方法。 - 請求項3記載の差分更新方法に於いて、更に、
電源が遮断された場合の電源復旧後に、判定部により復元処理区画番号と上書き処理区画番号の差が2と判断されたの場合は区画データの復元処理中に電源が遮断されたされたと判別し、差が1の場合は区画データの上書き処理中に電源が遮断されたと判別する判別ステップと、
復元再開部により、区画データの復元処理中に電源が遮断された場合は、電源復旧後に前記不揮発メモリから読み出した前記復元処理区画番号を読み出し、該読み出した復元処理区画番号の区画の先頭から復元処理を再開する復元再開ステップと、
上書き処理部により、区画データの上書き処理中に電源が遮断された場合、電源復旧後に前記不揮発メモリから読み出した前記上書き処理区画番号の先頭から上書き処理を再開する上書き再開ステップと、
を備えたことを特徴とする差分更新方法。 - コンピュータに、
受信側装置の書替え対象メモリに保存している書替え対象データの更新に必要な全区画の差分データ転送を送信装置に要求したとき送信装置における新旧2つのファイルに対して、新ファイルを同一サイズの複数区画に分割し、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置より更に1区画分前方の位置から旧ファイルの最後尾までの範囲で探索して区画毎に生成された差分データを受信装置の差分データ受信部により全区画分受信して不揮発メモリに格納する差分データ受信ステップと、
現在の処理区画を示す復元処理区画番号(X)を前記不揮発メモリに保存した後に、1区画分の差分データから区画データを復元して前記不揮発メモリに格納する復元処理ステップと、
上書き処理部により、現在の区画より1つ前の処理区画を示す上書き処理区画番号(X−1)を前記不揮発性メモリに保存した後に、該上書き処理区画番号(X−1)に対応する部分の復元データを前記不揮発性メモリから読み出して書替対象メモリの書替え対象データに上書きする上書き処理ステップと、
を実行させることを特徴とするプログラム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002363362A JP4302970B2 (ja) | 2002-12-16 | 2002-12-16 | 差分更新方法、プログラム及び装置 |
EP03028525A EP1431874A3 (en) | 2002-12-16 | 2003-12-10 | Difference updating method, program and apparatus |
KR1020030091272A KR100970064B1 (ko) | 2002-12-16 | 2003-12-15 | 차분 갱신 방법, 기록 매체 및 장치 |
US10/735,880 US7222137B2 (en) | 2002-12-16 | 2003-12-16 | Difference updating method, program and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002363362A JP4302970B2 (ja) | 2002-12-16 | 2002-12-16 | 差分更新方法、プログラム及び装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004199121A JP2004199121A (ja) | 2004-07-15 |
JP4302970B2 true JP4302970B2 (ja) | 2009-07-29 |
Family
ID=32376201
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002363362A Expired - Lifetime JP4302970B2 (ja) | 2002-12-16 | 2002-12-16 | 差分更新方法、プログラム及び装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7222137B2 (ja) |
EP (1) | EP1431874A3 (ja) |
JP (1) | JP4302970B2 (ja) |
KR (1) | KR100970064B1 (ja) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9692725B2 (en) | 2005-05-26 | 2017-06-27 | Citrix Systems, Inc. | Systems and methods for using an HTTP-aware client agent |
US9621666B2 (en) | 2005-05-26 | 2017-04-11 | Citrix Systems, Inc. | Systems and methods for enhanced delta compression |
US7756826B2 (en) * | 2006-06-30 | 2010-07-13 | Citrix Systems, Inc. | Method and systems for efficient delivery of previously stored content |
US8943304B2 (en) | 2006-08-03 | 2015-01-27 | Citrix Systems, Inc. | Systems and methods for using an HTTP-aware client agent |
US9407608B2 (en) | 2005-05-26 | 2016-08-02 | Citrix Systems, Inc. | Systems and methods for enhanced client side policy |
US7844652B2 (en) * | 2006-04-11 | 2010-11-30 | Emc Corporation | Efficient computation of sketches |
US7949824B2 (en) * | 2006-04-11 | 2011-05-24 | Emc Corporation | Efficient data storage using two level delta resemblance |
US7562186B2 (en) * | 2006-04-11 | 2009-07-14 | Data Domain, Inc. | Efficient data storage using resemblance of data segments |
JP4235236B2 (ja) * | 2006-09-12 | 2009-03-11 | 東芝テック株式会社 | 無線通信装置 |
JP5224800B2 (ja) * | 2007-12-21 | 2013-07-03 | 株式会社東芝 | 情報処理装置およびデータ復旧方法 |
US8112664B2 (en) * | 2008-03-26 | 2012-02-07 | Symantec Operating Corporation | Using volume snapshots to prevent file corruption in failed restore operations |
JP2010146257A (ja) * | 2008-12-18 | 2010-07-01 | Fujitsu Ten Ltd | 情報処理装置、プログラム更新方法および情報処理システム |
US8255366B1 (en) * | 2009-03-25 | 2012-08-28 | Symantec Corporation | Segment-based method for efficient file restoration |
US8504759B2 (en) * | 2009-05-26 | 2013-08-06 | Micron Technology, Inc. | Method and devices for controlling power loss |
JP5346253B2 (ja) | 2009-08-24 | 2013-11-20 | 株式会社日立ソリューションズ | ファームウェア更新システム、及び情報機器、並びにプログラム |
US8806263B2 (en) * | 2011-08-26 | 2014-08-12 | Micron Technology, Inc. | Methods and apparatuses including a global timing generator and local control circuits |
JP5547701B2 (ja) * | 2011-09-21 | 2014-07-16 | 日立オートモティブシステムズ株式会社 | 自動車用電子制御装置 |
JP6637398B2 (ja) * | 2016-09-23 | 2020-01-29 | ルネサスエレクトロニクス株式会社 | 判定装置及び判定方法 |
KR102259256B1 (ko) * | 2017-05-16 | 2021-06-02 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US10795585B2 (en) * | 2018-06-22 | 2020-10-06 | Intel Corporation | Nonvolatile memory store suppresion |
CN111176704B (zh) * | 2018-11-09 | 2022-08-23 | 中移(杭州)信息技术有限公司 | 一种差分包文件生成方法、中断恢复方法和相关装置 |
KR20210140862A (ko) * | 2020-05-14 | 2021-11-23 | 현대자동차주식회사 | 소프트웨어 업데이트 시스템 및 그 제어 방법 |
JP7420025B2 (ja) | 2020-09-07 | 2024-01-23 | トヨタ自動車株式会社 | プログラムの更新方法および更新システム |
KR102452400B1 (ko) * | 2020-12-16 | 2022-10-06 | 현대오토에버 주식회사 | 차량용 제어기의 차분 업데이트 방법, 및 차분 업데이트 롤백 방법 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06274384A (ja) | 1993-03-22 | 1994-09-30 | N T T Data Tsushin Kk | 実行ファイル差分抽出/更新装置及び実行ファイル差分抽出方法 |
JPH07168769A (ja) * | 1993-12-16 | 1995-07-04 | Toshiba Eng Co Ltd | 不揮発性メモリに対するデータ更新方法 |
US5446888A (en) * | 1994-01-14 | 1995-08-29 | Pyne; Charles F. | Remote file transfer method and apparatus |
JPH07219780A (ja) | 1994-02-04 | 1995-08-18 | N T T Data Tsushin Kk | 端末装置の処理プログラムダウンロード方式 |
US5940074A (en) | 1996-06-03 | 1999-08-17 | Webtv Networks, Inc. | Remote upgrade of software over a network |
JPH1013494A (ja) | 1996-06-20 | 1998-01-16 | Fujitsu Ltd | 伝送装置及びその復旧方式 |
JP3011116B2 (ja) | 1997-02-17 | 2000-02-21 | 日本電気株式会社 | 局データ更新回路 |
US6018747A (en) * | 1997-11-26 | 2000-01-25 | International Business Machines Corporation | Method for generating and reconstructing in-place delta files |
US6236993B1 (en) * | 1998-06-24 | 2001-05-22 | Victor V. Fanberg | Computer file comparison method |
KR20000020510A (ko) * | 1998-09-18 | 2000-04-15 | 구자홍 | 프로그램 갱신오류시 복구가능한 구동장치 및 그 프로그램 갱신방법 |
JP2002007192A (ja) | 2000-06-27 | 2002-01-11 | Mitsubishi Electric Corp | データ更新方法およびそのシステム |
JP2002152821A (ja) * | 2000-11-08 | 2002-05-24 | Nec Saitama Ltd | 携帯端末装置のプログラム更新方法および携帯端末装置 |
US6938140B2 (en) * | 2002-08-29 | 2005-08-30 | Micron Technology, Inc. | System and method for linear object reallocation in place |
-
2002
- 2002-12-16 JP JP2002363362A patent/JP4302970B2/ja not_active Expired - Lifetime
-
2003
- 2003-12-10 EP EP03028525A patent/EP1431874A3/en not_active Withdrawn
- 2003-12-15 KR KR1020030091272A patent/KR100970064B1/ko not_active IP Right Cessation
- 2003-12-16 US US10/735,880 patent/US7222137B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
KR20040055602A (ko) | 2004-06-26 |
EP1431874A2 (en) | 2004-06-23 |
JP2004199121A (ja) | 2004-07-15 |
KR100970064B1 (ko) | 2010-07-16 |
US20040128281A1 (en) | 2004-07-01 |
US7222137B2 (en) | 2007-05-22 |
EP1431874A3 (en) | 2006-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4302970B2 (ja) | 差分更新方法、プログラム及び装置 | |
JP5057519B2 (ja) | 記憶装置に記憶されたコンテンツをインプレース更新するための方法およびシステム | |
US8200886B2 (en) | Efficient system and method for updating a memory device | |
CN108170460B (zh) | 一种嵌入式系统增量升级的方法及装置 | |
JP4944686B2 (ja) | ソフトウェア更新方法および携帯端末装置 | |
US7502813B2 (en) | Software update process using an extra memory block | |
US20210034349A1 (en) | Data change detection using variable-sized data chunks | |
JPWO2017057111A1 (ja) | 車載制御装置、プログラム更新システム、及び、プログラム更新ソフトウェア | |
JP2002169729A (ja) | 不揮発性メモリユニットのコントローラ、同コントローラを有するメモリシステム及び不揮発性メモリユニットの制御方法 | |
US20090106580A1 (en) | Mobile handset employing efficient backup and recovery of blocks during update | |
CN101344868B (zh) | 数据备份和获取的方法和装置 | |
CN114036004B (zh) | 数据备份方法、恢复方法及装置 | |
US20140081922A1 (en) | Navigation device database update system | |
JP2013235531A (ja) | 制御装置、記憶装置、記憶制御方法 | |
US20190220272A1 (en) | Binary image differential patching | |
JP4285679B2 (ja) | 差分転送方法、プログラム及びシステム | |
JP5057887B2 (ja) | データ更新装置及びデータ更新方法及びデータ更新プログラム | |
US11262927B2 (en) | Update optimization using feedback on probability of change for regions of data | |
RU2375769C2 (ru) | Автоматическое резервное сохранение при модификациях встроенного программного обеспечения | |
JP2005215841A (ja) | ソフトウエア修正機能付き携帯電話端末装置 | |
JP2001249855A (ja) | 不揮発性メモリのデータ書き替え方法及び加入者回路 | |
US12169706B2 (en) | Application patching using variable-sized units | |
EP2333660B1 (en) | Method of and apparatus for providing a logical view of data stored in an non-volatile memory | |
JP5275105B2 (ja) | 電子機器 | |
JP2005258562A (ja) | データ更新装置及びデータ更新方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051125 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081224 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090106 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090309 |
|
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: 20090331 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090423 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120501 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4302970 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120501 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130501 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130501 Year of fee payment: 4 |
|
EXPY | Cancellation because of completion of term |