(57)【要約】【課題】電源復旧後に更新処理を途中から再開できるようにする。【解決手段】差分データ受信部３２は、全区画分の差分データを受信して不揮発メモリ３４に格納する。復元処理部３６は、現在の処理区画を示す復元処理区画番号Ｘを不揮発メモリ３４に保存した後に、差分データから区画データを復元して不揮発メモリ３４に格納する。上書き処理部３８は１つ前の処理区画を示す上書き処理区画番号Ｘ−１を不揮発メモリ３４に保存した後に、１つ前の区画で復元されている復元データを不揮発メモリ３４から読み出して揮発メモリ４０の書替え対象データに上書きする。再開処理部４４は、区画データの復元処理中に電源が遮断された場合は、電源復旧後に不揮発メモリから読み出した復元処理区画番号の区画の先頭から復元処理を再開し、区画データの上書き処理中に電源が遮断された場合、電源復旧後に不揮発メモリから読み出した上書き処理区画番号の先頭から上書き処理を再開する。【選択図】          図１
2004199121.tif 000002
【特許請求の範囲】
【請求項１】
差分データ受信部により、新旧２つのファイルに対して、新ファイルを同一サイズの複数区画に分割し、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置より更に１区画分前方の位置から旧ファイルの最後尾までの範囲で探索して区画毎に生成された差分データを全区画分受信して不揮発メモリに格納する差分データ受信ステップと、
復元処理部により、現在の処理区画を示す復元処理区画番号（Ｘ）を前記不揮発メモリに保存した後に、１区画分の差分データから区画データを復元して前記不揮発メモリに格納する復元処理ステップと、
上書き処理部により、１つ前の処理区画を示す上書き処理区画番号（Ｘ−１）を前記不揮発性メモリに保存した後に、１つ前の区画で復元されている復元データを前記不揮発性メモリから読み出して不揮発メモリの書替え対象データに上書きする上書き処理ステップと、
を備えたことを特徴とする差分更新方法。
【請求項２】
請求項１記載の差分更新方法に於いて、更に、
判定部により、電源が遮断された場合の電源復旧後に、区画データの復元処理中に電源が遮断されたか、区画データの上書き処理中に電源が遮断されたかを判別する判別ステップと、
復元再開部により、区画データの復元処理中に電源が遮断された場合は、電源復旧後に前記不揮発メモリから読み出した前記復元処理区画番号の区画の先頭から復元処理を再開する復元再開ステップと、
上書き再開部により、区画データの上書き処理中に電源が遮断された場合、電源復旧後に前記不揮発メモリから読み出した前記上書き処理区画番号の先頭から上書き処理を再開する上書き再開ステップと、
を備えたことを特徴とする差分更新方法。
【請求項３】
差分データ受信部により、新旧２つのファイルに対して、新ファイルを同一サイズの複数区画に分割し、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置より更に１区画分前方の位置から旧ファイルの最後尾までの範囲で探索して区画毎の差分データを生成し、更に、１区画分の新旧データをｎ個のブロックに等分し、各ブロック単位で親ファイルブロックデータと旧ファイルデータが同一であるか否かを判断し、同一であった場合は前記差分ブロックデータに代えて新旧同一が記述された差分データを全区画分受信して不揮発メモリに格納する差分データ受信ステップと、
復元処理部により、現在の処理区画を示す復元処理区画番号（Ｘ）を前記不揮発メモリに保存した後に、１区画分の差分データにつきｎ分割されたブロックデータを復元して前記不揮発メモリに格納する復元処理ステップと、
上書き処理部により、１つ前の処理区画を示す上書き処理区画番号（Ｘ−１）を前記不揮発性メモリに保存した後に、１つ前の区画で復元されている復元データにつきｎ分割された復元ブロックデータを前記不揮発性メモリから読み出して不揮発メモリの書替え対象データに上書きする上書き処理ステップと、
を備えたことを特徴とする差分更新方法。
【請求項４】
請求項３記載の差分更新方法に於いて、更に、
判定部により、電源が遮断された場合の電源復旧後に、区画データの復元処理中に電源が遮断されたか、区画データの上書き処理中に電源が遮断されたかを判別する判別ステップと、
復元再開部により、区画データの復元処理中に電源が遮断された場合は、電源復旧後に前記不揮発メモリから読み出した前記復元処理区画番号の区画の先頭から復元処理を再開する復元再開ステップと、
上書き処理部により、区画データの上書き処理中に電源が遮断された場合、電源復旧後に前記不揮発メモリから読み出した前記上書き処理区画番号の先頭から上書き処理を再開する上書き再開ステップと、
を備えたことを特徴とする差分更新方法。
【請求項５】
コンピュータに、
新旧２つのファイルに対して、新ファイルを同一サイズの複数区画に分割し、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置より更に１区画分前方の位置から旧ファイルの最後尾までの範囲で探索して区画毎に生成された差分データを全区画分受信して不揮発メモリに格納する差分データ受信ステップと、
現在の処理区画を示す復元処理区画番号（Ｘ）を前記不揮発メモリに保存した後に、１区画分の差分データから区画データを復元して前記不揮発メモリに格納する復元処理ステップと、
上書き処理部により、１つ前の処理区画を示す上書き処理区画番号（Ｘ−１）を前記不揮発性メモリに保存した後に、１つ前の区画で復元されている復元データを前記不揮発性メモリから読み出して不揮発メモリの書替え対象データに上書きする上書き処理ステップと、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、新旧２つのファイルから生成された差分データを受信して書替え対象ファイルのデータを更新する差分更新方法、プログラム及び装置に関し、特にデータ更新中に遮断された電源の復旧後にデータ更新処理を途中から再開するための差分更新方法、プログラム及び装置に関する。
【０００２】
【従来の技術】
従来、携帯端末のような組み込み型システムでは、外部との通信が低速、使用可能なワークメモリが少ないといった制限がある。このような環境において内部メモリに格納されたソフトウェアを短時間で更新するためにはソフトウェアの新旧差分データを用いる差分更新法がある。
【０００３】
差分更新法を用いて組み込み型システムの内蔵メモリに格納されたソフトウェアの更新を行う場合、更新量が多いと差分データのサイズが大きくなり、組み込み型システムの利用可能メモリに収まらない。
【０００４】
このような場合、書き替え対象のデータ（ソフトウェア）全体をいくつかの区画に分割して、それぞれに対して更新処理を行うことになる。このときの更新処理の流れは次のようになる。
Ｓ１：  書き替え対象データの１区画を更新するための差分データを外部から転送させて受信する。
Ｓ２：  受信された１区画分の差分データと対応する１区画分の書替対象データから新しい１区画分の新データを生成する。
Ｓ３：  生成された１区画分の新データを対応する１区画分の書替対象データに上書きする。
【０００５】
【発明が解決しようとする課題】
しかしながら、このような差分更新処理にあっては、各区画毎に差分データから生成された新データを書替対象データに上書きしている処理の途中で携帯電話の電源が切断され、電源回復後に差分更新処理を再開しようとしても、書替対象端末は途中まで書き換えられた状態になっており、差分データは参照するべきデータを失うため、更新処理を継続することはできない。
【０００６】
また、電源遮断の際に生成されていた１区画分の新データも電源切断により失われ、電源回復による再開処理で対応する書替対象データの上書きをやりなおすことはできない。
【０００７】
このため、データの上書き処理中に電源が遮断された場合、差分更新法による更新処理を断念し、更新を完了させるためには外部から更新後のデータそのものを転送してもらう必要があり、更新後のデータそのものを受け取る場合、そのデータ量は差分データと比べて大変大きなサイズとなるため、更新処理時間の増加を避けられない問題があった。
【０００８】
本発明は、転送された区画毎の差分データから新データを復元して書替え対象データに上書きする更新処理の途中で電源が遮断し、電源復旧後に更新処理を途中から再開できるようにする差分更新方法、プログラム及び装置を提供することを目的とする。
【０００９】
【課題を解決するための手段】
図１は本発明の原理説明図である。
（方法）
本発明は、差分更新方法を提供するものであり、この差分更新方法は、
差分データ受信部３２により、新旧２つのファイルに対して、新ファイル１６を同一サイズの複数区画に分割し、各区画中のデータ列と一致するデータ列を旧ファイル１４の対象区画の開始位置より更に１区画分前方の位置から旧ファイル１４の最後尾までの範囲で探索して区画毎に生成された差分データを全区画分受信して不揮発メモリ３４に格納する差分データ受信ステップと、
復元処理部３６により、現在の処理区画を示す復元処理区画番号（Ｘ）を不揮発メモリ３４に保存した後に、１区画分の差分データから区画データを復元して前記不揮発メモリに格納する復元処理ステップと、
上書き処理部３８により、１つ前の処理区画を示す上書き処理区画番号（Ｘ−１）を前記不揮発性メモリ３４に保存した後に、１つ前の区画で復元されている復元データを不揮発性メモリ３４から読み出して不揮発メモリ４０の書替え対象データに上書きする上書き処理ステップと、
を備えたことを特徴とする。ここで、差分データ受信ステップは、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置から旧ファイルの最後尾までの範囲で探索して生成された区画毎の差分データを受信するようにしてもよい。
【００１０】
更に本発明は、
判定部４６により、電源が遮断された場合の電源復旧後に、区画データの復元処理中に電源が遮断されたか、区画データの上書き処理中に電源が遮断されたかを判別する判別ステップと、
復元再開部４８により、区画データの復元処理中に電源が遮断された場合は、電源復旧後に不揮発メモリから読み出した復元処理区画番号の区画の先頭から復元処理を再開する復元再開ステップと、
上書き再開部５０により、区画データの上書き処理中に電源が遮断された場合、電源復旧後に不揮発メモリから読み出した上書き処理区画番号の先頭から上書き処理を再開する上書き再開ステップと、
を備えたことを特徴とする。
【００１１】
このような本発明による差分更新方法を用いることで、携帯電話などの組み込み型システム上での分割差分更新処理における処理手順のうち、各区分の差分データからの更新処理の処理中に電源が遮断された場合でも、電源復旧後にその区画から更新処理を再開することが可能となる。
【００１２】
また、データ復元中の電源遮断時、旧データ上書き処理中の電源遮断時ともに、電源復旧後には遮断前の処理からの続行となり、無駄な復元処理、上書き処理を行わずに処理を再開することができる。
【００１３】
ここで判別ステップは、電源が遮断された場合の電源復旧後に、復元処理区画番号と上書き処理区画番号との差を算出し、差が１の場合は復元処理中の電源遮断と判別し、差が２の場合は上書き処理中の電源遮断と判別する。
【００１４】
復元処理ステップは、１区画分の差分データから復元された復元区分データと、書替え対象データの該当区画データの内容が同一であるか否か判断し、同一であった場合は前記復元区分データに代えて不揮発メモリに新旧同一を記述し、上書き処理ステップは、不揮発メモリに新旧同一が記述されている場合は、復元区分データの上書きをスキップする。
【００１５】
このため各区分の差分データから復元した親データが書替え対象データ（旧データ）と同一の場合、新データの不揮発メモリへの書き込み、旧データが格納されているメモリへの上書きを不要とし、処理を行う必要性がない場合は何もしないことで処理時間を短くする。
【００１６】
復元処理ステップは、更に、１区画分の差分データから復元された復元区画データを更にｎ個の復元ブロックデータに等分し、各ブロック単位で復元ブロックデータと書替えデータが同一であるか否かを判断し、同一であった場合は復元ブロックデータに代えて不揮発メモリに新旧同一を記述し、上書き処理ステップは、不揮発メモリに新旧同一が記述されている場合は、復元ブロックデータの上書きをスキップすることを特徴とする。
【００１７】
このように復元した１区画分の新データを更にｎブロックに分割し、旧データとの同一の場合は新データの不揮発メモリへの書き込み、旧データが格納されているメモリへの上書きを不要とし、ブロック単位で処理を行う必要性がない場合は何もしないことで、更に処理時間を短くする。
【００１８】
本発明による差分更新方法の別の形態にあっては、各区画の差分データを更にｎ個のブロックに分割して処理された差分データを受信して更新する差分更新方法が提供される。即ち、この差分更新方法は、
差分データ受信部により、新旧２つのファイルに対して、新ファイルを同一サイズの複数区画に分割し、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置より更に１区画分前方の位置から旧ファイルの最後尾までの範囲で探索して区画毎の差分データを生成し、更に、１区画分の新旧データをｎ個のブロックに等分し、各ブロック単位で新ファイルブロックデータと旧ファイルデータが同一であるか否かを判断し、同一であった場合は差分ブロックデータに代えて新旧同一が記述された差分データを全区画分について受信して不揮発メモリに格納する差分データ受信ステップと、
復元処理部により、現在の処理区画を示す復元処理区画番号（Ｘ）を前記不揮発メモリに保存した後に、１区画分の差分データにつきｎ分割されたブロックデータを復元して前記不揮発メモリに格納する復元処理ステップと、
上書き処理部により、１つ前の処理区画を示す上書き処理区画番号（Ｘ−１）を前記不揮発性メモリに保存した後に、１つ前の区画で復元されている復元データにつきｎ分割された復元ブロックデータを前記不揮発性メモリから読み出して揮発メモリの書替え対象データに上書きする上書き処理ステップと、
を備えたことを特徴とする。ここで差分データ受信ステップは、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置より更に１区画分前方の位置から旧ファイルの最後尾までの範囲で探索して区画毎に生成された差分データを受信するようにしても良い。
【００１９】
この差分更新方法は、更に、
判定部により、電源が遮断された場合の電源復旧後に、区画データの復元処理中に電源が遮断されたか、区画データの上書き処理中に電源が遮断されたかを判別する判別ステップと、
復元再開部により、区画データの復元処理中に電源が遮断された場合は、電源復旧後に前記不揮発メモリから読み出した前記復元処理区画番号の区画の先頭から復元処理を再開する復元再開ステップと、
上書き再開部により、区画データの上書き処理中に電源が遮断された場合、電源復旧後に前記不揮発メモリから読み出した前記上書き処理区画番号の先頭から上書き処理を再開する上書き再開ステップと、
を備えたことを特徴とする。
【００２０】
この差分更新方法を用いることで、携帯電話などの組み込み型システム上での分割差分更新処理における処理手順のうち、各区分の差分データからの更新処理の処理中に電源が遮断された場合でも、電源復帰後にその区画から更新処理を再開することができる。
【００２１】
また、データ復元中の電源遮断時、旧データ上書き処理中の電源遮断時ともに、電源復旧後には遮断前の処理からの続行となり、無駄な復元処理、上書き処理を行わずに処理を再開することができる。
【００２２】
ここで判別ステップは、電源が遮断された場合の電源復旧後に、復元処理区画番号と前記上書き処理区画番号との差を算出し、差が１の場合は復元処理中の電源遮断と判別し、差が２の場合は上書き処理中の電源遮断と判別する。
【００２３】
復元処理ステップは、差分ブロックデータに新旧同一であることが記述されている場合は、差分ブロックデータに基づく復元処理をスキップして不揮発メモリに新旧同一を記述し、上書き処理ステップは、不揮発メモリに新旧同一が記述されている場合は、復元ブロックデータの上書きをスキップする。
【００２４】
このように差分データから復元した１区画分をｎブロックに分割した新ブロックデータが、旧ブロックデータとの同一の場合は新ブロックデータの不揮発メモリへの書き込み、旧データが格納されているメモリへの上書きを不要とし、更に細かなブロック単位で処理を行う必要性がない場合は何もしないことで処理時間を短くする。また復元後に各区画の復元データをｎブロックに分割して新旧を比較する処理が不要であり、その分、処理時間を短縮できる。
【００２５】
（プログラム）
本発明は、携帯電話などの組み込みシステムのコンピュータで実行される差分更新のためのプログラムを提供する。このプログラムは、コンピュータに、
新旧２つのファイルに対して、新ファイルを同一サイズの複数区画に分割し、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置（又は開始位置より更に１区画分前方の位置）から旧ファイルの最後尾までの範囲で探索して区画毎に生成された差分データを全区画分受信して不揮発メモリに格納する差分データ受信ステップと、
現在の処理区画を示す復元処理区画番号（Ｘ）を不揮発メモリに保存した後に、１区画分の差分データから区画データを復元して不揮発メモリに格納する復元処理ステップと、
１つ前の処理区画を示す上書き処理区画番号（Ｘ−１）を不揮発性メモリに保存した後に、１つ前の区画で復元されている復元データを不揮発性メモリから読み出して不揮発メモリの書替え対象データに上書きする上書き処理ステップと、を実行させることを特徴とする。
【００２６】
このプログラムは、更に、
電源が遮断された場合の電源復旧後に、区画データの復元処理中に電源が遮断されたか、区画データの上書き処理中に電源が遮断されたかを判別する判別ステップと、
区画データの復元処理中に電源が遮断された場合は、電源復旧後に前記不揮発メモリから読み出した前記復元処理区画番号の区画の先頭から復元処理を再開する復元再開ステップと、
区画データの上書き処理中に電源が遮断された場合、電源復旧後に前記不揮発メモリから読み出した前記上書き処理区画番号の先頭から上書き処理を再開する上書き再開ステップと、
を備える。
【００２７】
本発明によるプログラムの別の形態にあっては、各区画の新旧データを更にｎ個のブロックに分割して処理された差分データを受信して更新するプログラムが提供される。即ち、このプログラムは、携帯電話などの組み込みシステムのコンピュータに、
新旧２つのファイルに対して、新ファイルを同一サイズの複数区画に分割し、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置（又は開始位置より更に１区画分前方の位置）から旧ファイルの最後尾までの範囲で探索して区画毎の差分データを生成し、更に、１区画分の新旧データをｎ個のブロックに等分し、各ブロック単位で新ファイルブロックデータと旧ファイルデータが同一であるか否かを判断し、同一であった場合は差分ブロックデータに代えて新旧同一が記述された差分データを全区画分受信して不揮発メモリに格納する差分データ受信ステップと、
現在の処理区画を示す復元処理区画番号（Ｘ）を不揮発メモリに保存した後に、１区画分の差分データにつきｎ分割されたブロックデータを復元して不揮発メモリに格納する復元処理ステップと、
１つ前の処理区画を示す上書き処理区画番号（Ｘ−１）を不揮発性メモリに保存した後に、１つ前の区画で復元されている復元データにつきｎ分割された復元ブロックデータを前記不揮発性メモリから読み出して不揮発メモリの書替え対象データに上書きする上書き処理ステップと、
を実行することを特徴とする。
【００２８】
このプログラムは、更に、
電源が遮断された場合の電源復旧後に、区画データの復元処理中に電源が遮断されたか、区画データの上書き処理中に電源が遮断されたかを判別する判別ステップと、
区画データの復元処理中に電源が遮断された場合は、電源復旧後に不揮発メモリから読み出した復元処理区画番号の区画の先頭から復元処理を再開する復元再開ステップと、
区画データの上書き処理中に電源が遮断された場合、電源復旧後に前記不揮発メモリから読み出した前記上書き処理区画番号の先頭から上書き処理を再開する上書き再開ステップと、
を備える。なお、本発明におけるプログラムの詳細は、差分更新方法と基本的に同じになる。
【００２９】
（装置）
本発明は、携帯電話などの組み込みシステムを対象とした差分更新装置を提供する。この差分更新装置は、
新旧２つのファイルに対して、新ファイルを同一サイズの複数区画に分割し、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置（又は開始位置より更に１区画分前方の位置）から旧ファイルの最後尾までの範囲で探索して区画毎に生成された差分データを全区画分受信して不揮発メモリに格納する差分データ受信部と、
現在の処理区画を示す復元処理区画番号（Ｘ）を不揮発メモリに保存した後に、１区画分の差分データから区画データを復元して不揮発メモリに格納する復元処理部と、
１つ前の処理区画を示す上書き処理区画番号（Ｘ−１）を不揮発性メモリに保存した後に、１つ前の区画で復元されている復元データを不揮発性メモリから読み出して不揮発メモリの書替え対象データに上書きする上書き処理部と、
電源が遮断された場合の電源復旧後に、区画データの復元処理中に電源が遮断されたか、区画データの上書き処理中に電源が遮断されたかを判別する判定部と、
区画データの復元処理中に電源が遮断された場合は、電源復旧後に前記不揮発メモリから読み出した前記復元処理区画番号の区画の先頭から復元処理を再開する復元再開部と、
区画データの上書き処理中に電源が遮断された場合、電源復旧後に前記不揮発メモリから読み出した前記上書き処理区画番号の先頭から上書き処理を再開する上書き再開部と、
を備える。
【００３０】
本発明による差分更新装置の別の形態にあっては、各区画の新旧データを更にｎ個のブロックに分割して処理された差分データを受信して更新する差分更新装置が提供される。
【００３１】
この差分更新装置は、
新旧２つのファイルに対して、新ファイルを同一サイズの複数区画に分割し、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置（又は開始位置より更に１区画分前方の位置）から旧ファイルの最後尾までの範囲で探索して区画毎の差分データを生成し、更に、１区画分の新旧データをｎ個のブロックに等分し、各ブロック単位で差分ブロックデータと旧ファイルデータが同一であるか否かを判断し、同一であった場合は新ファイルブロックデータに代えて新旧同一が記述された差分データを全区画分受信して不揮発メモリに格納する差分データ受信部と、
現在の処理区画を示す復元処理区画番号（Ｘ）を不揮発メモリに保存した後に、１区画分の差分データにつきｎ分割されたブロックデータを復元して前記不揮発メモリに格納する復元処理部と、
１つ前の処理区画を示す上書き処理区画番号（Ｘ−１）を不揮発性メモリに保存した後に、１つ前の区画で復元されている復元データにつきｎ分割された復元ブロックデータを不揮発性メモリから読み出して不揮発メモリの書替え対象データに上書きする上書き処理部と、
電源が遮断された場合の電源復旧後に、区画データの復元処理中に電源が遮断されたか、区画データの上書き処理中に電源が遮断されたかを判別する判定部と、
区画データの復元処理中に電源が遮断された場合は、電源復旧後に不揮発メモリから読み出した復元処理区画番号の区画の先頭から復元処理を再開する復元再開部と、
区画データの上書き処理中に電源が遮断された場合、電源復旧後に不揮発メモリから読み出した上書き処理区画番号の先頭から上書き処理を再開する上書き再開部と、
を備えたことを特徴とする。
【００３２】
なお、本発明における差分更新装置の詳細は、差分更新方法と基本的に同じになる。
【００３３】
【発明の実施の形態】
図２は、本発明の差分更新方法が適用される第１実施形態のブロック図である。図２において、送信側の差分データ生成装置として機能する基地局１０には、ハードディスクドライブなどにより旧ファイル１４と新ファイル１６が保存されている。
【００３４】
基地局１０における差分データの生成は、新ファイル１６を一定サイズ、例えば２５６ＫＢサイズの複数区画に分割し、各区画中の新ファイルのデータ列と一致する旧ファイル１４のデータ列を旧ファイルの最後尾から対象区画の開始位置までの範囲で探索して、各区画ごとの差分データを生成する。
【００３５】
このため基地局１０には、区画切出部１８、データ比較部２０、一致データ列検索部２２、更新データ出力部２４、複写コード出力部２６及び差分データ出力部２８が設けられている。
【００３６】
図３は、図２の基地局１０における差分データ生成処理の説明図である。新ファイル１６は、一定サイズ例えば２５６ＫＢごとに複数の区画１６−１〜１６−５に分けられている。
【００３７】
この新ファイル１６において、いま区画１６−２が処理中であったとすると、区画１６−２の先頭アドレスにデータ比較対象ポインタＰ１をセットし、旧ファイル１４についても同じ位置にデータ比較参照ポインタＱ１をセットし、各ポインタＰ１，Ｑ１の指し示すデータ値、例えば１バイトデータが一致するか否かチェックする。
【００３８】
一致していれば、この位置から後方に何バイト一致データが続くかを計測する。値が一致しなくなった場合には、「複写コード」に最初に値が一致したときのデータ参照ポインタＱ１の値と計測した一致長を組み合わせて差分データとして出力する。
【００３９】
一方、新ファイル１６のデータ比較対象ポインタＰ１と同じ位置の旧ファイル１４のデータ比較参照ポインタＱ１の示す値が不一致であった場合には、旧ファイル１４のデータ比較参照ポインタＱ２のように、旧ファイル１４の最後尾にセットした後に、前方に移動させながら新ファイル１６のデータ比較対象ポインタＰ１の値との一致検索を、対象区画１６−２に対応する区画より１つの前の旧ファイル１４の区画までの範囲で行う。
【００４０】
なお旧ファイル１４における検索範囲は、最後尾から新ファイル１６の対象区画１６−２に対応した旧ファイルの区画までの範囲であってもよい。旧ファイルの探索範囲を対象区画より１つ前の範囲に拡大している理由は、後の説明で明らかにする差分データが転送受信される差分更新側で、旧ファイルに対する更新データの上書きが復元処理を行っている区画より１つ前の区画について行われることから、これに合わせて差分データ生成側においても対象区画１つの前の区画までを旧ファイルの探索範囲としている。
【００４１】
図４は、図３と同じ区画１６−２のデータ比較対象ポインタＰ１について、旧ファイル１４の最後尾にセットしたデータ比較参照ポインタＱ２を前方に移動しながら一致探索を行った場合に、複数のデータ列５６−１，５６−２，５６−３が一致探索された場合である。
【００４２】
このように複数のデータ列５６−１〜５６−３が一致データ列として探索された場合には、最後尾のデータ列５６−１のデータ比較参照ポインタの位置と一致長を持つ「複写コード」を差分データとして出力する。
【００４３】
一方、図３，図４による旧ファイル１４における一致部分の探索で一致部分が探索できなかった場合には、区分１６−２のデータは新たな更新データであることから、「更新コード」と新データを差分データとして出力する。
【００４４】
ここで、区画ごとに新ファイル１６と旧ファイル１４との一致検索を行う処理は、新ファイル１６においてデータ比較対象ポインタを１バイトずつずらして行うことから、１区画の差分データの中には最小１バイト幅で旧ファイルとの一致に基づく複写コードと旧ファイルの不一致に基づく更新コードとそれぞれの値が混在することになる。
【００４５】
このような差分データの生成を図２の基地局１０について具体的に説明すると、区画切出部１８が新ファイル１６から２５６ＫＢ単位に更新後の新データを切り出し、データ比較部２０で対応する位置の旧ファイル１４の先頭位置の値と比較する。
【００４６】
データ比較部２０で区画先頭位置と旧ファイルの対応する先頭位置の値が一致すると、一致データ列検索部２２が図３及び図４に示したように旧ファイルの一致部分の検索を行い、「複写コード」に値が最初に一致したときのデータ参照ポインタの値と一致長を組み合わせた差分データを差分データ出力部２８に出力する。
【００４７】
一方、処理対象区画となる新データに一致するデータが旧ファイル中に発見されなかった場合には、複写コード出力部２６が「更新コード」と新データの組合せでなる差分データを差分データ出力部２８に出力する。
【００４８】
差分データ出力部２８は、伝送回線３０を介して接続される例えば携帯電話１２などの組込システムからの差分データの転送要求を受けて、携帯電話１２に保存しているソフトウェアを更新するための差分データを転送する。この伝送回線３０は、基地局１０と携帯電話１２の例では無線回線となる。
【００４９】
組込システムとして実現される携帯電話１２は、本発明の差分更新方法が適用される差分更新装置として機能する。この差分更新装置として機能する携帯電話１２には、差分データ受信部３２、不揮発メモリ３４、復元処理部３６、上書き処理部３８、不揮発メモリを用いた書替え対象メモリ４０、ワークメモリ４２、更に電源遮断による復旧後に動作する再開処理部４４を備えている。この再開処理部４４には、判定部４６、復元再開部４８及び上書き再開部５０の機能が設けられている。
【００５０】
携帯電話１２に設けた差分データ受信部３２は、基地局１０に対し書替え対象メモリ４０に保存している書替え対象データの更新に必要な全区画の差分データの転送を要求し、全区画の差分データを受信して不揮発メモリ３４に格納する。
【００５１】
復元処理部３６は、現在の処理区画を示す復元処理区画番号（ｘ）を不揮発メモリ３４に保存した後、該当する１区画分の差分データから区画データを復元し、不揮発メモリ３４に格納する。
【００５２】
上書き処理部３８は、現在処理中の区画に対し１つ前の処理区画を示す上書き処理区画番号（ｘ−１）を不揮発メモリ３４に保存した後に、１つ前の区画で復元されている復元区画データを不揮発メモリ３４から読み出し、書替え対象メモリ４０の書替え対象データに上書きする。
【００５３】
このように本発明の差分更新処理が行われる携帯電話１２にあっては、差分データに基づく各区画ごとの更新処理において、差分データからの新データの復元と、復元した新データの書替え対象データに対する上書き処理とを分離しており、更に、ある区画の復元処理が終了した場合には、その区画の新データの上書きは行わず、１つ前の区画で復元している新データの上書きを行っている。
【００５４】
このように復元処理と上書き処理を分離し且つ復元処理に対し上書き処理を１区画遅らせている理由は、差分更新処理中に携帯電話１２の電源が遮断して更新処理が中断し、その後に電源が復旧した場合に、電源遮断による中断時点から処理を再開できるようにするためである。
【００５５】
また電源遮断のタイミングは、復元処理と上書き処理を時間的に分けていることから、復元処理の途中で電源が遮断される場合と上書き処理の途中で電源が遮断される場合との２つのケースがあり、それぞれのケースに分けて再開処理部４４で電源復旧後の差分更新処理の再開を行うことになる。
【００５６】
このため再開処理部４４に設けている判定部４６は、電源が遮断された場合の電源復旧後に、区画データの復元処理中に電源が遮断されたか区画データの上書き処理中に電源が遮断されたかを判別する。この判定部４６による判別は、電源が遮断された場合の電源復旧後に復元処理区画番号と上書き処理区画番号との差を算出し、差が１の場合は復元処理中の電源遮断と判別し、差が２の場合は上書き処理中の電源遮断と判別する。
【００５７】
図５は、図２の携帯電話１２における区分データの復元処理中における復元処理区画番号と上書き処理区画番号の不揮発メモリでの記述状態の説明図である。図５（Ａ）は復元処理区画番号ｙであり、図５（Ｂ）の不揮発メモリ差分データＳＤｉを用いた復元処理にあっては、復元に先立って復元処理区画番号ｙとして不揮発メモリ３４に（ｘ）を記述している。この状態で差分データＳＤｉから図５（Ｃ）のワークメモリ上に新データＮＤｉを復元している。
【００５８】
このとき図５（Ｄ）の上書き処理区画番号ｚは、図５（Ｅ）に示す不揮発メモリ復元データにおける前々回の復元データＮＤｉ−２について記述された番号（ｘ−２）のみであり、前回復元された復元データＮＤｉ−１についての区画番号はまだ記述されていない。
【００５９】
図６は、図５の新データＮＤｉの復元が終了して不揮発メモリ格納中における復元処理区画番号と上書き処理区画番号の記述状態の説明図である。図６にあっては、図６（Ｂ）の不揮発メモリ差分データＳＤｉを用いて図６（Ｃ）のワークメモリ上に新データＮＤｉの復元が完了した状態であり、復元が完了すると、図６（Ｅ）のように不揮発メモリに復元データＮＤｉを格納する。この不揮発メモリに対する復元データＮＤｉの格納に先立ち、図５（Ｄ）のように上書き処理区画番号ｚとして１つ前の区画の番号（ｘ−１）を不揮発メモリに記述する。
【００６０】
このような図５または図６のそれぞれの状態において、電源が遮断された場合を考える。まず、図５のように新データＮＤｉの復元の途中で電源が遮断されたとする。この場合、不揮発メモリに記述されている復元処理区画番号ｙはｙ＝ｘであり、一方、上書き処理区画番号ｚはｚ＝ｘ−２となっている。したがって、両者の差（ｙ−ｚ）を求めると
（ｙ−ｚ）＝ｘ−（ｘ−２）＝２
となる。したがって復元処理区画番号ｙと上書き処理区画番号ｚの差が２の場合には、復元処理中に電源遮断が起きたことが分かる。
【００６１】
一方、図６のように、復元した新データＮＤｉを不揮発メモリに書き込んだ後に上書き区画番号ｚに１つ前の区画の番号（ｘ−１）を記述し、その後に１つ前の区画の復元データによる書替え対象メモリの上書きを行っていることから、この上書き処理中に電源が遮断された場合、不揮発メモリ３４の復元処理区画番号ｙはｙ＝ｘであり、一方、上書き処理区画番号ｚはｚ＝ｘ−１となっている。したがって、両者の差をとると
（ｙ−ｚ）＝ｘ−（ｘ−１）＝１
となり、差が１の場合には上書き処理中の電源遮断と判断することができる。
【００６２】
再び図２を参照するに、携帯電話１２の再開処理部４４に設けている復元再開部４８は、判定部４６により区画データの復元処理中に電源が遮断されたと判断した場合は、電源復旧後に不揮発メモリ３４から読み出した復元処理区画番号の区画の先頭から復元処理を再開する。
【００６３】
また上書き再開部５０は、判定部４６により区画データの上書き処理中に電源が遮断されたと判断した場合、電源復旧後に不揮発メモリ３４から読み出した上書き処理区画番号の先頭から上書き処理を再開する。
【００６４】
このような再開処理部４４の機能により、差分データに基づく差分更新処理の途中で携帯電話１２の電源が遮断し、その後に電源が復旧した場合には、電源遮断が復元処理中に起きても上書き処理中に起きても、電源復旧後はそれぞれの中断した区画位置からの処理を再開して差分更新処理を継続することができる。
【００６５】
更に本発明の差分更新処理における復元処理部３６にあっては、区画ごとに差分データを用いて新データを復元した後、書替え対象メモリの書替え対象データ即ち旧データとの同一の有無を判断し、同一である場合には新旧同一コードを不揮発メモリに書き込んで新データの格納をスキップし、同一でない場合にのみ新データの不揮発メモリへの書込みを行う処理を併せて行っている。
【００６６】
図７及び図８は、図２の基地局１０における差分データ生成処理のフローチャートである。ここで、１つの区画の大きさを例えば２５６ＫＢとする。
Ｓ１：  旧ファイルをディスク等から読み出す。
Ｓ２：  新ファイルからサイズ２５６ＫＢのデータを読み込み、１つの区画ｘ（ｘ番目の区画）として定義する。
Ｓ３：  データ比較対象ポインタＰを区画ｘの先頭に、データ参照ポインタＱを旧ファイルの区画ｘの先頭に相当する位置に設定する。
Ｓ４：  データ比較対象ポインタＰの指す値とデータ参照ポインタＱの指す値を比較する。
Ｓ５：  Ｓ４の比較で値が同一であればＳ８へ進み、そうでなければＳ６へ進む。
Ｓ６：  旧ファイルの最後尾から区画（ｘ−１）の先頭に相当する位置に向かって、データ比較対象ポインタの指す値と一致する箇所を探索する。
Ｓ７：  探索の結果、一致するデータが旧ファイル中に発見されたならばＳ８へ進む。発見されなければＳ１１へ進む。
Ｓ８：  データ比較対象ポインタＰとデータ参照ポインタＱのそれぞれのポインタの位置からポインタを後方へ１バイトずつ移動させながら値を比較し、値の一致が何バイト連続して起こるかを計測する。
Ｓ９：  値が一致しなくなった時、最初に値が一致したときのデータ参照ポインタの値とＳ６で計測した一致長を「複写コード」として差分データに出力する。
Ｓ１０：  データ比較対象ポインタＰ、データ参照ポインタＱを最後に一致したデータの位置へ移動させて、Ｓ１３へ進む。
Ｓ１１：  Ｓ７で一致するデータが旧ファイル中に発見されなかった場合であり、データ比較対象の指す値は更新されて新規に現れたデータであると判定される。
Ｓ１２：  更新コードとその値（更新後データ）を差分データに出力する。
Ｓ１３：  データ比較対象ポインタＰを１バイト後方へ移動させる。
Ｓ１４：  Ｓ１３の移動の結果、データ比較対象ポインタＰが区画ｘの最終位置に到達したならＳ１５へ進み、そうでなければＳ４へ進む。
Ｓ１５：  区画ｘが新ファイルの最終区画であった場合、差分抽出処理を終了し、そうでなければＳ１６へ進む。
Ｓ１６：  次の区画を読み込み対象とするためｘを１増加させ、Ｓ２へ戻る。
【００６７】
図９及び図１０は、図２の携帯電話１２におけるデータ更新処理のフローチャートである。ここで、ｘの初期値を１とする。
Ｓ１：  全部の区画用の差分データを外部から転送させて受信する。
Ｓ２：  受信した差分データを不揮発メモリに保存する。
Ｓ３：  不揮発メモリに復元処理区画番号として値ｘを記述する。
Ｓ４：  区画ｘ用の差分データを不揮発メモリから読み出す。
Ｓ５：  転送された差分データからコードを１つ読み出す。
Ｓ６：  Ｓ５で読み出されたコードが「複写コード」であればＳ７へ進み、「更新コード」であればＳ８へ進む。
Ｓ７：  「複写コード」が指し示す旧データの参照位置から「複写コード」が指し示す複写長分のデータをワークメモリに出力し、Ｓ９へ進む。
Ｓ８：  「更新コード」が指し示す更新後データをワークメモリに出力する。
Ｓ９：  差分データのコード読み取り位置を一つ後方へ移動させる。
Ｓ１０：  差分データのコード読み取り位置が差分データの最終であった場合Ｓ１１へ進み、そうでなければＳ５へ戻る。
Ｓ１１：  ワークメモリに復元された区画ｘの新データと書替対象メモリ上の区画ｘの旧データを比較し、同一であればＳ１２へ進み、そうでなければＳ１３へ進む。
Ｓ１２：  不揮発メモリに区画ｘは新旧同一データであることを示す新旧同一コードを書き、Ｓ１４へ進む。
Ｓ１３：  ワークメモリに復元された区画ｘの新データを不揮発メモリに格納する。
Ｓ１４：不揮発メモリに上書き処理区画番号として値（ｘ−１）を記述する。
Ｓ１５：  区画（ｘ−１）のデータが格納された不揮発メモリの内容を読み込み、新旧同一コードが記述されていた場合はＳ１７へ進み，そうでなければ
Ｓ１６へ進む。
Ｓ１６：  不揮発メモリ復元された区画（ｘ−１）の新データを内部メモリに格納された旧データの（ｘ−１）区画に上書きする。
Ｓ１７：  次の区画を読み込み対象とするためｘを１増加させる。
Ｓ１８：  すべての区画の復元が終了していた場合、Ｓ１９へ進み、そうでなければＳ３へ戻る。
Ｓ１９：  不揮発メモリに復元された最終区画の新データを内部メモリに格納された旧データの最終区画に上書きする。
【００６８】
このデータ更新処理にあっては、ステップＳ１，Ｓ２の処理により全ての区画の差分データを最初に不揮発メモリに保存することにより、更新処理中の電源遮断により外部から差分データを受信できなくなる問題を解消する。また、ステップＳ３の復元処理区画番号の不揮発メモリへの記述とステップＳ１４の上書き処理区画番号の不揮発メモリへの記述により、電源遮断により更新処理が途絶えた場合でも、電源復旧後に途中の区画から更新処理を再開可能としている。
【００６９】
更に、ステップＳ１３の復元された区画の新データの不揮発メモリに対する格納によって、復元した区画の新データが電源遮断により消滅してしまう問題を解消している。更に、ステップＳ１１，Ｓ１２の処理により、復元した新データと旧データを比較し、同一である場合には新旧同一コードを不揮発メモリに書き込んで復元した新データの書込みを省略することによって、上書き処理による処理時間の増加を防いでいる。
【００７０】
図１１及び図１２は、図２の携帯電話１２でのデータ更新処理の途中で電源が遮断され、電源復旧後に更新処理を途中から再開する処理のフローチャートである。この処理は、図９のステップＳ１，Ｓ２の処理がステップＳ１０１〜Ｓ１０４の処理に自動的に切替ったものであり、ステップＳ３〜Ｓ１９は図９及び図１０のデータ更新処理と同じになる。
Ｓ１０１：  不揮発メモリから復元処理区画番号ｙと上書き処理区画番号ｚを読み出す。
Ｓ１０２：  復元処理区画番号と上書き処理区画番号の差が１であれば、上書き処理中の電源遮断と判断してＳ１０４に進み、差が２であれば復元処理中の電源遮断と判断してＳ１０３に進む。
Ｓ１０３：  ｘ＝ｙとしてＳ３へ進む。
Ｓ１０４：  ｘ＝ｚ＋１としてＳ１５へ進む。
Ｓ３：  不揮発メモリに復元処理区画番号として値ｘを記述する。
Ｓ４：  区画ｘ用の差分データを不揮発メモリから読み出す。
Ｓ５：  転送された差分データからコードを１つ読み出す
Ｓ６：  Ｓ５で読み出されたコードが「複写コード」であればＳ７へ進み、「更新コード」であればＳ８へ進む。
Ｓ７：  「複写コード」が指し示す旧データの参照位置から「複写コード」が指し示す複写長分のデータをワークメモリに出力し、Ｓ９へ進む。
Ｓ８：  更新コードが指し示す更新後データをワークメモリに出力する。
Ｓ９：  差分データのコード読み取り位置を一つ後方へ移動させる。
Ｓ１０：  差分データのコード読み取り位置が差分データの最終であった場合Ｓ１１へ進み、そうでなければＳ５へ戻る。
Ｓ１１：  ワークメモリに復元された区画ｘの新データと書替対象メモリ上の区画ｘの旧データを比較し、同一であればＳ１２へ進み、そうでなければＳ１３へ進む。
Ｓ１２：  不揮発メモリに区画ｘは新旧同一データであることを示す新旧同一コードを記述し、Ｓ１４へ進む。
Ｓ１３：  ワークメモリに復元された区画ｘの新データを不揮発メモリに格納する。
Ｓ１４：  不揮発メモリに上書き処理区画番号として値（ｘ−１）を記述する。
Ｓ１５：  区画（ｘ−１）のデータが格納された不揮発メモリの内容を読み込み、新旧同一コードが記述されていた場合はＳ１７へ進み、そうでなければＳ１６へ進む。
Ｓ１６：  不揮発メモリ復元された区画（ｘ−１）の新データを内部メモリに格納された旧データの（ｘ−１）区画に上書きする。
Ｓ１７：  次の区画を読み込み対象とするためｘを１増加させる。
Ｓ１８：  すべての区画の復元が終了していた場合、Ｓ１９へすすみ、そうでなければＳ３へ戻る。
Ｓ１９：  不揮発メモリに復元された最終区画の新データを内部メモリに格納された旧データの最終区画に上書きする。
【００７１】
この電源復旧後に再開する更新処理において、ステップＳ１０１〜Ｓ１０４の処理によって電源復帰後の処理開始位置が復元処理か上書き処理かを判定し、データ更新処理の続行を可能としている。
【００７２】
図１３は、本発明による差分更新処理方法の第２実施形態が適用されるブロック図である。この実施形態にあっては、基地局１０側における差分データ生成処理において、新ファイル１６から区画切出部１８で切り出した一定サイズ例えば２５６ＫＢのデータを更にｎ個のブロックデータにブロック分割部５２で分割して、各ブロックごとの処理により差分データを生成するようにしたことを特徴とする。
【００７３】
この基地局１０側における１区分をｎブロックに分割したブロックデータに対応した差分データの生成に対応し、携帯電話１２側の復元処理部３６にあっても、各区分ごとの差分データを用いた復元処理において、ｎ個に分割された差分ブロックデータに基づいた新データの復元を行うようにしている。なお、それ以外の構成は図２の第１実施形態と同じである。
【００７４】
図１４及び図１５は、図１３の基地局１０における差分データ生成処理のフローチャートある。なお、この処理にあっては、１つの区画の大きさを例えば２５６ＫＢとする。
Ｓ１：  旧ファイルをディスク等から読み出す。
Ｓ２：  新ファイルからサイズ２５６ＫＢのデータを読み込み、１つの区画ｘ（ｘ番目の区画）として定義する。
Ｓ３：  データ比較対象ポインタＰを区画ｘの先頭に、データ参照ポインタＱを旧ファイルの区画ｘの先頭に相当する位置に設定する。
Ｓ４：  データ比較対象ポインタＰの指す値とデータ参照ポインタＱの指す値を比較する。
Ｓ５：  Ｓ４の比較で値が同一であればＳ８へ進み、そうでなければＳ６へ進む。
Ｓ６：  旧ファイルの最後尾から区画（ｘ−１）の先頭に相当する位置に向かって、データ比較対象ポインタＰの指す値と一致する箇所を探索する。
Ｓ７：  探索の結果、一致するデータが旧ファイル中に発見されたならばＳ８へ進み、発見されなければＳ１１へ進む。
Ｓ８：  データ比較対象ポインタＰとデータ参照ポインタＱのそれぞれのポインタの位置からポインタを後方へ１バイトずつ移動させながら値を比較し、値の一致が何バイト連続して起こるかを計測する。
Ｓ９：  値が一致しなくなった時、最初に値が一致したときのデータ参照ポインタＱの値とＳ６で計測した一致長を「複写コード」として差分データに出力する。
Ｓ１０：  データ比較対象ポインタＰをデータ参照ポインタＱが最後に一致したデータの位置へ移動させて、Ｓ１３へ進む。
Ｓ１１：  一致するデータが旧ファイル中に発見されなかった場合であり、データ比較対象の指す値は更新されて新規に現れたデータであると判定される。
Ｓ１２：  「更新コード」とその値（更新後データ）を差分データに出力する。
Ｓ１３：  データ比較対象ポインタＰを１バイト後方へ移動させる。
Ｓ１４：  Ｓ１３の移動の結果ポインタが区画ｘの最終位置に到達したならばＳ１５へ進み、そうでなければＳ４へ戻る。
Ｓ１５：  区画ｘをｎ等分しｎ個のブロックに分割する。
Ｓ１６：  ｍ番目のブロックにおいて、新旧データの内容を比較し、新旧同一であればＳ１７へ進み、そうでなければＳ１８へ進む。
Ｓ１７：  ｍ番目のブロックの内容が新旧同一であることを示す新旧同一コードを区画ｘ用の差分データに付加する。
Ｓ１８：  ｍ番目のブロックは区画ｘの最終ブロックであった場合、Ｓ２０へ進み、そうでなければＳ１９へ進む。
Ｓ１９：  ｍの値を１増加させるてＳ１６へ戻る。
Ｓ２０：  区画ｘが新ファイルの最終区画であった場合、差分抽出処理を終了し、そうでなければＳ２１へ進む。
Ｓ２１：  次の区画を読み込み対象とするためｘを１増加させ、Ｓ２へ戻る。
【００７５】
この差分データ生成処理において、ステップＳ１〜Ｓ１９の処理により、各区分につきｎ個に分割したブロックデータと旧ファイルのブロックデータを比較して、一致する場合には新旧同一コードを差分データに付加しておくことで、組込システムとなる携帯電話１２側における更新処理の際のブロック単位で復元した新データと旧データとを比較する処理を省略し、その分、更新処理時間を短縮することができる。
【００７６】
図１６及び図１７は、図１３の携帯電話におけるデータ更新処理のフローチャートである。なお、ｘの初期値を１とする。
Ｓ１：  全部の区画用の差分データを外部から転送して受信する。
Ｓ２：  受信した差分データを不揮発メモリに保存する。
Ｓ３：  不揮発メモリに復元処理区画番号として値ｘを記述する。
Ｓ４：  区画ｘ用の差分データにブロックｍが新旧同一である由の新旧同一コードが付加されていればＳ５へ進み、そうでなければＳ６へ進む。
Ｓ５：  区画ｘブロックｍが新旧同一である由の新旧同一コードを不揮発メモリに書き出し記憶させ、Ｓ１４へ進む。
Ｓ６：  区画ｘブロックｍ用の差分データを不揮発メモリから読み出す。
Ｓ７：  転送された差分データからコードを１つ読み出す。
Ｓ８：  Ｓ７で読み出されたコードが「複写コード」であればＳ９へ進み、「更新コード」であればＳ１０へ進む。
Ｓ９：  「複写コード」が指し示す旧データの参照位置から「複写コード」が指し示す複写長分のデータをワークメモリに出力してＳ１１へ進む。
Ｓ１０：  「更新コード」が指し示す更新後データをワークメモリに出力する。
Ｓ１１：  差分データのコード読み取り位置を一つ後方へ移動させる。
Ｓ１２：  差分データのコード読み取り位置がブロックｍの差分データの最終であった場合はＳ１３へすすみ、そうでなければＳ７へ戻る。
Ｓ１３：  ワークメモリに復元された区画ｘブロックｍのデータを不揮発メモリに格納する。
Ｓ１４：  ｍの値を１増加させる。
Ｓ１５：  区画ｘの最終ブロックまで処理を完了した場合はＳ１６へ進み、そうでなければＳ４へ戻る。
Ｓ１６：  不揮発メモリに上書き処理区画番号として値（ｘ−１）を記述する。
Ｓ１７：  区画（ｘ−１）のデータが格納された不揮発メモリの内容を読み出し、ブロックｍについて新旧同一データである由の新旧同一コードが記述されていた場合はＳ１９へ進み、そうでなければＳ１８へ進む。
Ｓ１８：  不揮発メモリに復元された区画（ｘ−１）、ブロックｍの新データを内部メモリに格納された旧データの区画（ｘ−１）、ブロックｍに上書きする。
Ｓ１９：  ｍの値を１増加させる。
Ｓ２０：  区画（ｘ−１）の最終ブロックまですべて上書き処理が完了していればＳ２１へ進み、そうでなければＳ１７へ進む。
Ｓ２１：  次の区画を読み込み対象とするためｘを１増加させる。
Ｓ２２：  すべての区画の復元が終了していた場合はＳ２３へ進み、そうでなければＳ３へ戻る。
Ｓ２３：  不揮発メモリに復元された最終区画の新データを内部メモリに格納された旧データの最終区画に上書きする。
【００７７】
このような携帯電話１２におけるデータ更新処理において、ステップＳ１，Ｓ２の処理により全ての区画の差分データを最初に不揮発メモリに保存することで、更新処理中の電源遮断により外部からデータを二度と受信できなくなる問題を解消する。
【００７８】
また、ステップＳ３における不揮発メモリに対する復元処理区画番号の記述とステップＳ１６における不揮発メモリに対する上書き処理区画番号の記述により、電源遮断により更新処理が途絶えた場合でも、電源復帰後に途中の区画から更新処理を再開することができる。
【００７９】
更に、ステップＳ３で復元された区画のブロックデータの不揮発メモリへの書込みにより、電源遮断により復元したブロックデータが消滅してしまう問題を解消する。更に、ステップＳ４における新旧同一コードがあった場合の不揮発メモリへの書込みのスキップ、ステップＳ１７における同じく新旧同一コードが記述されていた場合の書込み対象データへの上書きのスキップによって、上書き処理による処理時間の増加を防ぐことができる。
【００８０】
図１８及び図１９は、図１３の携帯電話１２でデータ更新処理の途中で電源が遮断され、電源復帰後に更新処理を途中から再開する場合のフローチャートである。この処理は、図１２のステップＳ１，Ｓ２の処理がステップＳ１０１〜Ｓ１０４の処理に自動的に切替ったものであり、ステップＳ３〜Ｓ２３は図１２のデータ更新処理と同じになる。
Ｓ１０１：  不揮発メモリから復元処理区画番号ｙと上書き処理区画番号ｚを読み出す。
Ｓ１０２：  復元処理区画番号ｙと上書き処理区画番号ｚの差が１であれば上書き処理中の電源遮断と判断してＳ１０４に進み、差が２であれば復元処理中の電源遮断と判断してｓ１０３に進む。
Ｓ１０３：  ｘ＝ｙとしてＳ３へ進む。
Ｓ１０４：  ｘ＝ｚ＋１としてＳ１７へ進む。
Ｓ３：  不揮発メモリに復元処理区画番号として値ｘを記述する。
Ｓ４：  区画ｘ用の差分データにブロックｍが新旧同一である由の新旧同一コードが付加されていればＳ５へ進み、そうでなければＳ６へ進む。
Ｓ５：  区画ｘブロックｍが新旧同一である由の新旧同一コードを不揮発メモリに書き出し記憶させ、Ｓ１４へ進む。
Ｓ６：  区画ｘブロックｍ用の差分データを不揮発メモリから読み出す。
Ｓ７：  転送された差分データからコードを１つ読み出す。
Ｓ８：  Ｓ７で読み出されたコードが「複写コード」であればＳ９へ進み、「更新コード」であればＳ１０へ進む。
Ｓ９：  「複写コード」が指し示す旧データの参照位置から「複写コード」が指し示す複写長分のデータをワークメモリに出力し、Ｓ１１へ進む。
Ｓ１０：  「更新コード」が指し示す更新後データをワークメモリに出力する。
Ｓ１１：  差分データのコード読み取り位置を一つ後方へ移動させる。
Ｓ１２：  差分データのコード読み取り位置がブロックｍの差分データの最終であった場合はＳ１３へ進み、そうでなければＳ７へ戻る。
Ｓ１３：  ワークメモリに復元された区画ｘ、ブロックｍのデータを不揮発メモリに格納する。
Ｓ１４：  ｍの値を１増加させる。
Ｓ１５：  区画ｘの最終ブロックまで処理を完了した場合はＳ１６へ進み、そうでなければＳ４へ戻る。
Ｓ１６：  不揮発メモリに上書き処理区画番号として値（ｘ−１）を記述する。
Ｓ１７：  区画（ｘ−１）のデータが格納された不揮発メモリの内容を読み出し、ブロックｍについて新旧同一データである由の新旧同一コードが記述されていた場合はＳ１９へ進み、そうでなければＳ１８へ進む。
Ｓ１８：  不揮発メモリ復元された区画（ｘ−１）、ブロックｍの新データを内部メモリに格納された旧データの区画（ｘ−１）、ブロックｍに上書きする。
Ｓ１９：  ｍの値を１増加させる。
Ｓ２０：  区画（ｘ−１）の最終ブロックまですべて上書き処理が完了していればＳ２１へ進み、そうでなければＳ１７へ進む。
Ｓ２１：  次の区画を読み込み対象とするためｘを１増加させる。
Ｓ２２：  すべての区画の復元が終了していた場合はＳ２３へ進み、そうでなければＳ３へ戻る。
Ｓ２３：  不揮発メモリに復元された最終区画の新データを内部メモリに格納された旧データの最終区画に上書きする。
【００８１】
このような電源復帰後のデータ更新処理において、ステップＳ１０１〜Ｓ１０４の処理によって電源復帰後の処理再開位置が更新処理か上書き処理かを判定し、データ更新処理の続行を行うことができる。
【００８２】
図２０及び図２１は、図２の携帯端末１２におけるデータ更新処理の他の実施形態のフローチャートであり、この実施形態は、１区画分のデータ復元処理が完了した段階でｎ個のブロックに分割し、ブロック単位に新旧データが同一かどうかを比較し、同一であればその由を示す新旧同一コードを新ブロックデータに代えて不揮発メモリに記憶するようにしたことを特徴とする。ここで、ｘの初期値を１とする。
Ｓ１：  全部の区画用の差分データを外部から転送させて受信する。
Ｓ２：  受信した差分データを不揮発メモリに保存する。
Ｓ３：  不揮発メモリに復元処理区画番号として値ｘを記述する。
Ｓ４：  区画ｘ用の差分データを不揮発メモリから読み出す。
Ｓ５：  転送された差分データからコードを１つ読み出す。
Ｓ６：  Ｓ５で読み出されたコードが「複写コード」であればＳ７へ進み、「更新コード」であればＳ８へ進む。
Ｓ７：  「複写コード」が指し示す旧データの参照位置から「複写コード」が指し示す複写長分のデータをワークメモリに出力し、Ｓ９へ進む。
Ｓ８：  「更新コード」が指し示す更新後データをワークメモリに出力する。
Ｓ９：  差分データのコード読み取り位置を一つ後方へ移動させる。
Ｓ１０：  差分データのコード読み取り位置が差分データの最終であった場合Ｓ１１へ進み、そうでなければＳ５へ戻る。
Ｓ１１：  区画ｘをｎ等分しｎ個のブロックに分割する。
Ｓ１２：  ｍ番目のブロックにおいて、新旧データの内容を比較し、新旧同一であればＳ１３へ進み、そうでなければＳ１４へ進む。
Ｓ１３：  ｍ番目のブロックの内容が新旧同一であることを示す新旧同一コードを不揮発メモリの区画ｘに記述する。
Ｓ１４：  ワークメモリに復元されたｍ番目のブロックの新データを不揮発メモリに格納する。
Ｓ１５：  ｍ番目のブロックは区画ｘの最終ブロックであった場合、Ｓ１７へ進み、そうでなければＳ１６へ進む。
Ｓ１６：  ｍの値を１増加させるてＳ１２へ戻る。
Ｓ１７：  不揮発メモリに上書き処理区画番号として値（ｘ−１）を記述する。
Ｓ１８：  区画（ｘ−１）のデータが格納された不揮発メモリの内容を読み出し、ブロックｍについて新旧同一データである由の新旧同一コードが記述されていた場合はＳ２０へ進み、そうでなければＳ１９へ進む。
Ｓ１９：  不揮発メモリに復元された区画（ｘ−１）、ブロックｍの新データを内部メモリに格納された旧データの区画（ｘ−１）、ブロックｍに上書きする。
Ｓ２０：  ｍの値を１増加させる。
Ｓ２１：  区画（ｘ−１）の最終ブロックまですべて上書き処理が完了していればＳ２２へ進み、そうでなければＳ１８に戻る。
Ｓ２２：  次の区画を読み込み対象とするためｘを１増加させる。
Ｓ２３：  すべての区画の復元が終了していた場合はＳ２４へ進み、そうでなければＳ３へ戻る。
Ｓ２４：  不揮発メモリに復元された最終区画の新データを内部メモリに格納された旧データの最終区画に上書きする。
【００８３】
図２２及び図２３は、図２０及び図２１のデータ更新処理の途中で電源が遮断され、電源復帰後に更新処理を途中から再開する場合のフローチャートである。この処理は、図２０のステップＳ１，Ｓ２の処理がステップＳ１０１〜Ｓ１０４の処理に自動的に切替ったものであり、ステップＳ３〜Ｓ２４は図２０及び図２１のデータ更新処理と同じになる。
Ｓ１０１：  不揮発メモリから復元処理区画番号ｙと上書き処理区画番号ｚを読み出す。
Ｓ１０２：  復元処理区画番号ｙと上書き処理区画番号ｚの差が１であれば上書き処理中の電源遮断と判断してＳ１０４に進み、差が２であれば復元処理中の電源遮断と判断してＳ１０３に進む。
Ｓ１０３：  ｘ＝ｙとしてＳ３へ進む。
Ｓ１０４：  ｘ＝ｚ＋１としてＳ１７へ進む。
Ｓ３：  不揮発メモリに復元処理区画番号として値ｘを記述する。
Ｓ４：  区画ｘ用の差分データを不揮発メモリから読み出す。
Ｓ５：  転送された差分データからコードを１つ読み出す。
Ｓ６：  Ｓ５で読み出されたコードが「複写コード」であればＳ７へ進み、「更新コード」であればＳ８へ進む。
Ｓ７：  「複写コード」が指し示す旧データの参照位置から「複写コード」が指し示す複写長分のデータをワークメモリに出力し、Ｓ９へ進む。
Ｓ８：  「更新コード」が指し示す更新後データをワークメモリに出力する。
Ｓ９：  差分データのコード読み取り位置を一つ後方へ移動させる。
Ｓ１０：  差分データのコード読み取り位置が差分データの最終であった場合Ｓ１１へ進み、そうでなければＳ５へ戻る。
Ｓ１１：  区画ｘをｎ等分しｎ個のブロックに分割する。
Ｓ１２：  ｍ番目のブロックにおいて、新旧データの内容を比較し、新旧同一であればＳ１３へ進み、そうでなければＳ１４へ進む。
Ｓ１３：  ｍ番目のブロックの内容が新旧同一であることを示す新旧同一コードを不揮発メモリの区画ｘに記述する。
Ｓ１４：  ワークメモリに復元されたｍ番目のブロックの新データを不揮発メモリに格納する。
Ｓ１５：  ｍ番目のブロックは区画ｘの最終ブロックであった場合、Ｓ１７へ進み、そうでなければＳ１６へ進む。
Ｓ１６：  ｍの値を１増加させるてＳ１２へ戻る。
Ｓ１７：  不揮発メモリに上書き処理区画番号として値（ｘ−１）を記述する。
Ｓ１８：  区画（ｘ−１）のデータが格納された不揮発メモリの内容を読み出し、ブロックｍについて新旧同一データである由の新旧同一コードが記述されていた場合はＳ２０へ進み、そうでなければＳ１９へ進む。
Ｓ１９：  不揮発メモリに復元された区画（ｘ−１）、ブロックｍの新データを内部メモリに格納された旧データの区画（ｘ−１）、ブロックｍに上書き
する。
Ｓ２０：  ｍの値を１増加させる。
Ｓ２１：  区画（ｘ−１）の最終ブロックまですべて上書き処理が完了していればＳ２２へ進み、そうでなければＳ１８に戻る。
Ｓ２２：  次の区画を読み込み対象とするためｘを１増加させる。
Ｓ２３：  すべての区画の復元が終了していた場合はＳ２４へ進み、そうでなければＳ３へ戻る。
Ｓ２４：  不揮発メモリに復元された最終区画の新データを内部メモリに格納された旧データの最終区画に上書きする。
【００８４】
なお上記の実施形態は、基地局で差分データを生成して組込システムとしての携帯電話に転送して差分更新処理を行う場合を例にとっているが、本発明はこれに限定されず、適宜の送信側の装置から組込システムを備えた装置に差分データを転送して書替え対象データの差分更新を行う場合を含む。
【００８５】
また本発明は、その目的と利点を損なうことのない適宜の変形を含み、更に上記の実施形態に示した数値による限定は受けない。
【００８６】
ここで本発明の特徴を列挙すると次のようになる。
（付記）
（付記１）
差分データ受信部により、新旧２つのファイルに対して、新ファイルを同一サイズの複数区画に分割し、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置より更に１区画分前方の位置から旧ファイルの最後尾までの範囲で探索して区画毎に生成された差分データを全区画分受信して不揮発メモリに格納する差分データ受信ステップと、
復元処理部により、現在の処理区画を示す復元処理区画番号（Ｘ）を前記不揮発メモリに保存した後に、１区画分の差分データから区画データを復元して前記不揮発メモリに格納する復元処理ステップと、
上書き処理部により、１つ前の処理区画を示す上書き処理区画番号（Ｘ−１）を前記不揮発性メモリに保存した後に、１つ前の区画で復元されている復元データを前記不揮発性メモリから読み出して不揮発メモリの書替え対象データに上書きする上書き処理ステップと、
を備えたことを特徴とする差分更新方法。（１）
【００８７】
（付記２）
付記１記載の差分更新方法に於いて、前記差分データ受信ステップは、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置から旧ファイルの最後尾までの範囲で探索して生成された区画毎の差分データを受信することを特徴とする差分更新方法。
【００８８】
（付記３）
付記１記載の差分更新方法に於いて、更に、
判定部により、電源が遮断された場合の電源復旧後に、区画データの復元処理中に電源が遮断されたか、区画データの上書き処理中に電源が遮断されたかを判別する判別ステップと、
復元再開部により、区画データの復元処理中に電源が遮断された場合は、電源復旧後に前記不揮発メモリから読み出した前記復元処理区画番号の区画の先頭から復元処理を再開する復元再開ステップと、
上書き再開部により、区画データの上書き処理中に電源が遮断された場合、電源復旧後に前記不揮発メモリから読み出した前記上書き処理区画番号の先頭から上書き処理を再開する上書き再開ステップと、
を備えたことを特徴とする差分更新方法。（２）
【００８９】
（付記４）
付記３記載の差分更新方法に於いて、前記判別ステップは、電源が遮断された場合の電源復旧後に、前記復元処理区画番号と前記上書き処理区画番号との差を算出し、差が１の場合は復元処理中の電源遮断と判別し、差が２の場合は上書き処理中の電源遮断と判別することを特徴とする差分更新方法。
【００９０】
（付記５）
付記１記載の差分更新方法に於いて、前記復元処理ステップは、１区画分の差分データから復元された復元区分データと、書替え対象データの該当区画データの内容が同一であるか否か判断し、同一であった場合は前記復元区分データに代えて前記不揮発メモリに新旧同一を記述し、
前記上書き処理ステップは、前記不揮発メモリに新旧同一が記述されている場合は、復元区分データの上書きをスキップすることを特徴とする差分更新方法。
【００９１】
（付記６）
付記１記載の差分更新方法に於いて、前記復元処理ステップは、更に、１区画分の差分データから復元された復元区画データを更にｎ個の復元ブロックデータに等分し、各ブロック単位で復元ブロックデータと書替えデータが同一であるか否かを判断し、同一であった場合は前記復元ブロックデータに代えて前記不揮発メモリに新旧同一を記述し、
前記上書き処理ステップは、前記不揮発メモリに新旧同一が記述されている場合は、復元ブロックデータの上書きをスキップすることを特徴とする差分更新方法。
【００９２】
（付記７）
差分データ受信部により、新旧２つのファイルに対して、新ファイルを同一サイズの複数区画に分割し、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置より更に１区画分前方の位置から旧ファイルの最後尾までの範囲で探索して区画毎の差分データを生成し、更に、１区画分の新旧データをｎ個のブロックに等分し、各ブロック単位で親ファイルブロックデータと旧ファイルデータが同一であるか否かを判断し、同一であった場合は前記差分ブロックデータに代えて新旧同一が記述された差分データを全区画分受信して不揮発メモリに格納する差分データ受信ステップと、
復元処理部により、現在の処理区画を示す復元処理区画番号（Ｘ）を前記不揮発メモリに保存した後に、１区画分の差分データにつきｎ分割されたブロックデータを復元して前記不揮発メモリに格納する復元処理ステップと、
上書き処理部により、１つ前の処理区画を示す上書き処理区画番号（Ｘ−１）を前記不揮発性メモリに保存した後に、１つ前の区画で復元されている復元データにつきｎ分割された復元ブロックデータを前記不揮発性メモリから読み出して不揮発メモリの書替え対象データに上書きする上書き処理ステップと、
を備えたことを特徴とする差分更新方法。（３）
【００９３】
（付記８）
付記７記載の差分更新方法に於いて、更に、
判定部により、電源が遮断された場合の電源復旧後に、区画データの復元処理中に電源が遮断されたか、区画データの上書き処理中に電源が遮断されたかを判別する判別ステップと、
復元再開部により、区画データの復元処理中に電源が遮断された場合は、電源復旧後に前記不揮発メモリから読み出した前記復元処理区画番号の区画の先頭から復元処理を再開する復元再開ステップと、
上書き処理部により、区画データの上書き処理中に電源が遮断された場合、電源復旧後に前記不揮発メモリから読み出した前記上書き処理区画番号の先頭から上書き処理を再開する上書き再開ステップと、
を備えたことを特徴とする差分更新方法。（４）
【００９４】
（付記９）
付記７記載の差分更新方法に於いて、
前記復元処理ステップは、前記差分ブロックデータに新旧同一であることが記述されている場合は、差分ブロックデータに基づく復元処理をスキップして不揮発メモリに新旧同一を記述し、
前記上書き処理ステップは、前記不揮発メモリに新旧同一が記述されている場合は、復元ブロックデータの上書きをスキップすることを特徴とする差分更新方法。
【００９５】
（付記１０）
コンピュータに、
新旧２つのファイルに対して、新ファイルを同一サイズの複数区画に分割し、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置より更に１区画分前方の位置から旧ファイルの最後尾までの範囲で探索して区画毎に生成された差分データを全区画分受信して不揮発メモリに格納する差分データ受信ステップと、
現在の処理区画を示す復元処理区画番号（Ｘ）を前記不揮発メモリに保存した後に、１区画分の差分データから区画データを復元して前記不揮発メモリに格納する復元処理ステップと、
上書き処理部により、１つ前の処理区画を示す上書き処理区画番号（Ｘ−１）を前記不揮発性メモリに保存した後に、１つ前の区画で復元されている復元データを前記不揮発性メモリから読み出して不揮発メモリの書替え対象データに上書きする上書き処理ステップと、
を実行させることを特徴とするプログラム。（５）
【００９６】
（付記１１）
付記１０記載のプログラムに於いて、前記差分データ受信ステップは、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置より更に１区画分前方の位置から旧ファイルの最後尾までの範囲で探索して生成された区画毎の差分データを受信することを特徴とするプログラム。
【００９７】
（付記１２）
付記１０記載のプログラムに於いて、更に、
電源が遮断された場合の電源復旧後に、区画データの復元処理中に電源が遮断されたか、区画データの上書き処理中に電源が遮断されたかを判別する判別ステップと、
区画データの復元処理中に電源が遮断された場合は、電源復旧後に前記不揮発メモリから読み出した前記復元処理区画番号の区画の先頭から復元処理を再開する復元再開ステップと、
区画データの上書き処理中に電源が遮断された場合、電源復旧後に前記不揮発メモリから読み出した前記上書き処理区画番号の先頭から上書き処理を再開する上書き再開ステップと、
を備えたことを特徴とするプログラム。
【００９８】
（付記１３）
付記１２記載のプログラムに於いて、前記判別ステップは、電源が遮断された場合の電源復旧後に、前記復元処理区画番号と前記上書き処理区画番号との差を算出し、差が１の場合は復元処理中の電源遮断と判別し、差が２の場合は上書き処理中の電源遮断と判別することを特徴とするプログラム。
【００９９】
（付記１４）
付記１０記載のプログラムに於いて、前記復元処理ステップは、１区画分の差分データから復元された復元区分データと、書替え対象データの該当区画データの内容が同一であるか否か判断し、同一であった場合は前記復元区分データに代えて前記不揮発メモリに新旧同一を記述し、
前記上書き処理ステップは、前記不揮発メモリに新旧同一が記述されている場合は、復元区分データの上書きをスキップすることを特徴とするプログラム。
【０１００】
（付記１５）
付記１０記載のプログラムに於いて、
前記復元処理ステップは、更に、１区画分の差分データから復元された復元区画データを更にｎ個の復元ブロックデータに等分し、各ブロック単位で復元ブロックデータと書替えデータが同一であるか否かを判断し、同一であった場合は前記復元ブロックデータに代えて前記不揮発メモリに新旧同一を記述し、
前記上書き処理ステップは、前記不揮発メモリに新旧同一が記述されている場合は、復元ブロックデータの上書きをスキップすることを特徴とするプログラム。
【０１０１】
（付記１６）
コンピュータに、
新旧２つのファイルに対して、新ファイルを同一サイズの複数区画に分割し、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置からより更に１区画分前方の位置旧ファイルの最後尾までの範囲で探索して区画毎の差分データを生成し、更に、１区画分の新旧データをｎ個のブロックに等分し、各ブロック単位で親ファイルブロックデータと旧ファイルデータが同一であるか否かを判断し、同一であった場合は前記差分ブロックデータに代えて新旧同一が記述された差分データを全区画分受信して不揮発メモリに格納する差分データ受信ステップと、
現在の処理区画を示す復元処理区画番号（Ｘ）を前記不揮発メモリに保存した後に、１区画分の差分データにつきｎ分割されたブロックデータを復元して前記不揮発メモリに格納する復元処理ステップと、
１つ前の処理区画を示す上書き処理区画番号（Ｘ−１）を前記不揮発性メモリに保存した後に、１つ前の区画で復元されている復元データにつきｎ分割された復元ブロックデータを前記不揮発性メモリから読み出して不揮発メモリの書替え対象データに上書きする上書き処理ステップと、
を備えたことを特徴とするプログラム。
【０１０２】
（付記１７）
付記１６記載のプログラムに於いて、前記差分データ受信ステップは、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置から旧ファイルの最後尾までの範囲で探索して区画毎に生成された差分データを受信することを特徴とするプログラム。
【０１０３】
（付記１８）
付記１６記載のプログラムに於いて、更に、
電源が遮断された場合の電源復旧後に、区画データの復元処理中に電源が遮断されたか、区画データの上書き処理中に電源が遮断されたかを判別する判別ステップと、
区画データの復元処理中に電源が遮断された場合は、電源復旧後に前記不揮発メモリから読み出した前記復元処理区画番号の区画の先頭から復元処理を再開する復元再開ステップと、
区画データの上書き処理中に電源が遮断された場合、電源復旧後に前記不揮発メモリから読み出した前記上書き処理区画番号の先頭から上書き処理を再開する上書き再開ステップと、
を備えたことを特徴とするプログラム。
【０１０４】
（付記１９）
付記１８記載のプログラムに於いて、前記判別ステップは、電源が遮断された場合の電源復旧後に、前記復元処理区画番号と前記上書き処理区画番号との差を算出し、差が１の場合は復元処理中の電源遮断と判別し、差が２の場合は上書き処理中の電源遮断と判別することを特徴とするプログラム。
【０１０５】
（付記２０）
付記１６記載のプログラムに於いて、
前記復元処理ステップは、前記差分ブロックデータに新旧同一であることが記述されている場合は、差分ブロックデータに基づく復元処理をスキップして不揮発メモリに新旧同一を記述し、
前記上書き処理ステップは、前記不揮発メモリに新旧同一が記述されている場合は、復元ブロックデータの上書きをスキップすることを特徴とするプログラム。
【０１０６】
（付記２１）
新旧２つのファイルに対して、新ファイルを同一サイズの複数区画に分割し、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置又は前記開始位置より１区画分前方の位置から旧ファイルの最後尾までの範囲で探索して区画毎に生成された差分データを全区画分受信して不揮発メモリに格納する差分データ受信部と、
現在の処理区画を示す復元処理区画番号（Ｘ）を前記不揮発メモリに保存した後に、１区画分の差分データから区画データを復元して前記不揮発メモリに格納する復元処理部と、
１つ前の処理区画を示す上書き処理区画番号（Ｘ−１）を前記不揮発性メモリに保存した後に、１つ前の区画で復元されている復元データを前記不揮発性メモリから読み出して不揮発メモリの書替え対象データに上書きする上書き処理部と、電源が遮断された場合の電源復旧後に、区画データの復元処理中に電源が遮断されたか、区画データの上書き処理中に電源が遮断されたかを判別する判定部と、区画データの復元処理中に電源が遮断された場合は、電源復旧後に前記不揮発メモリから読み出した前記復元処理区画番号の区画の先頭から復元処理を再開する復元再開部と、
区画データの上書き処理中に電源が遮断された場合、電源復旧後に前記不揮発メモリから読み出した前記上書き処理区画番号の先頭から上書き処理を再開する上書き再開部と、
を備えたことを特徴とする差分更新装置。
【０１０７】
（付記２２）
新旧２つのファイルに対して、新ファイルを同一サイズの複数区画に分割し、各区画中のデータ列と一致するデータ列を旧ファイルの対象区画の開始位置又は前記開始位置より更に１区画分前方の位置から旧ファイルの最後尾までの範囲で探索して区画毎の差分データを生成し、更に、１区画分の新旧ファイルデータをｎ個のブロックに等分し、各ブロック単位で新ファイルブロックデータと旧ファイルデータが同一であるか否かを判断し、同一であった場合は前記差分ブロックデータに代えて新旧同一が記述された差分データを全区画分受信して不揮発メモリに格納する差分データ受信部と、
現在の処理区画を示す復元処理区画番号（Ｘ）を前記不揮発メモリに保存した後に、１区画分の差分データにつきｎ分割されたブロックデータを復元して前記不揮発メモリに格納する復元処理部と、
１つ前の処理区画を示す上書き処理区画番号（Ｘ−１）を前記不揮発性メモリに保存した後に、１つ前の区画で復元されている復元データにつきｎ分割された復元ブロックデータを前記不揮発性メモリから読み出して不揮発メモリの書替え対象データに上書きする上書き処理部と、
電源が遮断された場合の電源復旧後に、区画データの復元処理中に電源が遮断されたか、区画データの上書き処理中に電源が遮断されたかを判別する判定部と、区画データの復元処理中に電源が遮断された場合は、電源復旧後に前記不揮発メモリから読み出した前記復元処理区画番号の区画の先頭から復元処理を再開する復元再開部と、
区画データの上書き処理中に電源が遮断された場合、電源復旧後に前記不揮発メモリから読み出した前記上書き処理区画番号の先頭から上書き処理を再開する上書き再開部と、
を備えたことを特徴とする差分更新装置。
【０１０８】
【発明の効果】
以上説明してきたように本発明によれば、携帯電話などの組込型システム上での分割差分更新処理における処理手順のうち各区分の差分データからの更新処理の処理中に電源が遮断された場合でも、電源復帰後にその区画から更新処理を再開することができる。
【０１０９】
また、データ復元中の電源遮断時であっても、旧データに対する上書き処理中の電源遮断であっても、電源復旧後に遮断された処理を判別して遮断前の処理から続行することができ、無駄な復元処理や上書き処理を行わずに差分更新処理を再開することができる。
【０１１０】
更に、各区分の差分データから復元した新データが書替え対象となる旧データと同一の場合、新データの不揮発メモリへの書込み及び旧データが格納されている書替え対象メモリへの上書きを不要とし、処理を行う必要がない場合については何もせずに処理をスキップすることで、差分更新処理における処理時間を短縮することができる。
【図面の簡単な説明】
【図１】本発明の原理説明図
【図２】本発明による第１実施形態のブロック図
【図３】図２の実施形態における差分データ生成処理の説明図
【図４】旧ファイルに一致部分が複数存在した場合の差分抽出の説明図
【図５】区分データの復元処理中における復元処理区画番号と上書き処理区分番号の不揮発メモリの記述状態の説明図
【図６】区分データの復元が終了して不揮発メモリ格納中における復元処理区画番号と上書き処理区分番号の記述状態の説明図
【図７】図２の基地局側で行われる差分データ生成処理のフローチャート
【図８】図７に続く差分データ生成処理のフローチャート
【図９】図２の携帯電話で行われる本発明の第１実施形態によるデータ更新処理のフローチャート
【図１０】図９に続くデータ更新処理のフローチャート
【図１１】データ更新中に遮断した電源が復旧した後に行う本発明の第１実施形態によるデータ更新処理のフローチャート
【図１２】図１１に続くデータ更新処理のフローチャート
【図１３】本発明による第２実施形態のブロック図
【図１４】図１３の基地局側で行われる差分データ生成処理のフローチャート
【図１５】図１４に続く差分データ生成処理のフローチャート
【図１６】図１３の携帯電話で行われる本発明の第２実施形態によるデータ更新処理のフローチャート
【図１７】図１６に続くデータ更新処理のフローチャート
【図１８】データ更新中に遮断した電源が復旧した後に行う本発明の第２実施形態によるデータ更新処理のフローチャート
【図１９】図１８に続くデータ更新処理のフローチャート
【図２０】携帯電話で行われる本発明の第３実施形態によるデータ更新処理のフローチャート
【図２１】図２０に続くデータ更新処理のフローチャート
【図２２】データ更新中に遮断した電源が復旧した後に行う本発明の第３実施形態によるデータ更新処理のフローチャート
【図２３】図２２に続くデータ更新処理のフローチャート
【符号の説明】
１０：基地局
１２：携帯電話
１４：旧ファイル
１６：新ファイル
１８：区画切出部
２０：データ比較部
２２：一致データ列検索部
２４：更新データ出力部
２６：複写コード出力部
２８：差分データ出力部
３０：伝送回線
３２：差分データ受信部
３４：不揮発メモリ
３６：復元処理部
３８：上書き処理部
４０：書替対象メモリ（揮発メモリ）
４２：ワークメモリ
４４：再開処理部
４６：判定部
４８：復元再開部
５０：上書き再開部
５２：ブロック分割部
【図１】
2004199121.tif 000003
【図２】
2004199121.tif 000004
【図３】
2004199121.tif 000005
【図４】
2004199121.tif 000006
【図５】
2004199121.tif 000007
【図６】
2004199121.tif 000008
【図７】
2004199121.tif 000009
【図８】
2004199121.tif 000010
【図９】
2004199121.tif 000011
【図１０】
2004199121.tif 000012
【図１１】
2004199121.tif 000013
【図１２】
2004199121.tif 000014
【図１３】
2004199121.tif 000015
【図１４】
2004199121.tif 000016
【図１５】
2004199121.tif 000017
【図１６】
2004199121.tif 000018
【図１７】
2004199121.tif 000019
【図１８】
2004199121.tif 000020
【図１９】
2004199121.tif 000021
【図２０】
2004199121.tif 000022
【図２１】
2004199121.tif 000023
【図２２】
2004199121.tif 000024
【図２３】
2004199121.tif 000025