(57)【特許請求の範囲】
【請求項１】
ＦＬＡＳＨメモリに記録されている古いバージョンのデータと、当該古いバージョンのデータよりも新しいバージョンのデータとが記録された更新情報記録手段と、
前記ＦＬＡＳＨメモリにおいて１回毎の消去処理で消去可能なデータ容量をブロックサイズと定義し、前記更新情報記録手段に記録された新しいバージョンのデータと古いバージョンのデータとを比較して、データ内容の異なる部分のデータを相違データとして前記ブロックサイズ単位で抽出し、抽出された前記ブロックサイズ単位の前記相違データを組み合わせることによって更新差分データを作成する更新差分データ作成手段と
を備え、
前記更新差分データ作成手段は、
小さなデータ容量であるＳバイトと大きなデータ容量であるＬバイトとを、前記ＦＬＡＳＨメモリの前記ブロックサイズとして利用することが可能である場合に、前記ブロックサイズをＳバイトにした場合の前記更新差分データのブロック数BN_Sと、前記ブロックサイズをＬバイトにした場合の前記更新差分データのブロック数BN_Lとを算出し、下記の式が成立するときには前記小さなデータ容量であるＳバイト単位で前記相違データを抽出して前記更新差分データを作成し、下記の式が成立しないときには前記大きなデータ容量であるＬバイト単位で前記相違データを抽出して前記更新差分データを作成すること
を特徴とする更新差分データ作成装置。
BN_S×(T_se＋(T_bp×S／WS))＜BN_L×(T_be＋(T_bp×L／WS))
ただし、
BN_Sは、前記ブロックサイズをＳバイトにした場合の前記更新差分データのブロック数、
BN_Lは、前記ブロックサイズをＬバイトにした場合の前記更新差分データのブロック数、
T_seは、前記ＦＬＡＳＨメモリにおいてＳバイト分のデータを消去するために必要とされる時間、
T_beは、前記ＦＬＡＳＨメモリにおいてＬバイト分のデータを消去するために必要とされる時間、
T_bpは、前記ＦＬＡＳＨメモリにおける１ワード分のデータの書き込み時間、
WSは、前記ＦＬＡＳＨメモリにおける１ワード当たりのバイト数
を示し、
前記ＦＬＡＳＨメモリについてのT_se、T_be、T_bp、WSのデータは予め前記更新情報記録手段に記録されていることを特徴とする。
【請求項２】
ＳＤカードに記録されている古いバージョンのデータと、当該古いバージョンのデータよりも新しいバージョンのデータとが記録された更新情報記録手段と、
前記ＳＤカードにおいて１回毎の消去処理で消去可能なデータ容量をブロックサイズと定義し、前記更新情報記録手段に記録された新しいバージョンのデータと古いバージョンのデータとを比較して、データ内容の異なる部分のデータを相違データとして前記ブロックサイズ単位で抽出し、抽出された前記ブロックサイズ単位の前記相違データを組み合わせることによって更新差分データを作成する更新差分データ作成手段と
を備え、
前記ＳＤカードのブロックサイズとして複数のデータ容量を利用することが可能である場合には、前記更新情報記録手段に、異なるデータ容量のブロックサイズＢＳ毎に、前記ＳＤカードの書き込みスループットＷｔｈ（ＢＳ）と、前記ＳＤカードの読み込みスループットＲｔｈ（ＢＳ）と、更新差分データに基づいて前記新しいバーションのデータを作成するパッチ処理のパッチ処理スループットＰｔｈ（ＢＳ）とが記録され、
前記更新差分データ作成手段は、
前記更新差分データのデータ量がＤ（ＢＳ）である場合において、前記更新情報記録手段にブロックサイズＢＳ毎に記録される複数の書き込みスループットＷｔｈ（ＢＳ）と、複数の読み込みスループットＲｔｈ（ＢＳ）と、複数のパッチ処理スループットＰｔｈ（ＢＳ）を読み出して、Ｄ（ＢＳ）／（Ｗｔｈ（ＢＳ）＋Ｒｔｈ（ＢＳ）＋Ｐｔｈ（ＢＳ））の値を最小とするブロックサイズＢＳを求めて、当該ブロックサイズＢＳ単位で前記相違データを抽出することによって前記更新差分データを作成すること
を特徴とする更新差分データ作成装置。
【請求項３】
古いバージョンのデータが記録されるＦＬＡＳＨメモリと、
該ＦＬＡＳＨメモリにおいて１回毎の消去処理で消去可能なデータ容量をブロックサイズと定義し、前記古いバージョンのデータと新しいバーションのデータとにおいてデータ内容の異なる部分のデータを相違データとして前記ブロックサイズ単位で抽出して組み合わせることにより作成された更新差分データと、前記ＦＬＡＳＨメモリに記録される古いバーションのデータとに基づいて、新しいバーションのデータを生成する新バージョンデータ生成手段と、
前記ブロックサイズ単位で前記ＦＬＡＳＨメモリのデータを消去するメモリデータ消去手段と、
該メモリデータ消去手段により消去された前記ＦＬＡＳＨメモリの領域に、前記新バージョンデータ生成手段により生成された新しいバーションのデータを書き込むデータ書き込み手段と、
前記古いバージョンのバージョン情報をネットワーク回線を介してサーバへ出力すると共に、前記更新差分データを前記ネットワーク回線を介して前記サーバより受信することが可能なクライアント通信手段と
を有するクライアントと、
前記ＦＬＡＳＨメモリに記録され得る全てのバージョンのデータが記録された更新情報記録手段と、
前記クライアント通信手段により出力された前記バージョン情報を前記ネットワーク回線を介して受信すると共に、前記更新差分データを前記ネットワーク回線を介して前記クライアントへ出力することが可能なサーバ通信手段と、
該サーバ通信手段により受信された前記バージョン情報に該当するバージョンのデータを、前記更新情報記録手段に記録されるデータより取得し、取得されたバージョンのデータと前記更新情報記録手段に記録される新しいバージョンのデータとを比較して、前記相違データを抽出することにより、更新差分データを作成する更新差分データ作成手段と
を有するサーバとを備え、
前記更新差分データ作成手段は、
小さなデータ容量であるＳバイトと大きなデータ容量であるＬバイトとを、前記ＦＬＡＳＨメモリの前記ブロックサイズとして利用することが可能である場合に、前記ブロックサイズをＳバイトにした場合の前記更新差分データのブロック数BN_Sと、前記ブロックサイズをＬバイトにした場合の前記更新差分データのブロック数BN_Lとを算出し、下記の式が成立するときには前記小さなデータ容量であるＳバイト単位で前記相違データを抽出して前記更新差分データを作成し、下記の式が成立しないときには前記大きなデータ容量であるＬバイト単位で前記相違データを抽出して前記更新差分データを作成し、
前記サーバ通信手段は、前記更新差分データ作成手段により作成された前記更新差分データを前記クライアントに対して出力し、
前記クライアント通信手段は、前記サーバによって出力された前記更新差分データを受信し、
前記新バージョンデータ生成手段は、前記クライアント通信手段により受信された前記更新差分データと、前記ＦＬＡＳＨメモリに記録される古いバージョンのデータとに基づいて、新しいバーションのデータを生成し、
前記メモリデータ消去手段は、前記クライアント通信手段により受信された前記更新差分データを構成するブロックサイズに基づいて、当該ブロックサイズ単位で前記ＦＬＡＳＨメモリのデータを消去し、
前記データ書き込み手段は、前記メモリデータ消去手段により消去された前記ＦＬＡＳＨメモリの領域に、前記新バージョンデータ生成手段により生成された新しいバーションのデータを、前記ブロックサイズ単位で書き込むこと
を特徴とするデータ更新システム。
BN_S×(T_se＋(T_bp×S／WS))＜BN_L×(T_be＋(T_bp×L／WS))
ただし、
BN_Sは、前記ブロックサイズをＳバイトにした場合の前記更新差分データのブロック数、
BN_Lは、前記ブロックサイズをＬバイトにした場合の前記更新差分データのブロック数、
T_seは、前記ＦＬＡＳＨメモリにおいてＳバイト分のデータを消去するために必要とされる時間、
T_beは、前記ＦＬＡＳＨメモリにおいてＬバイト分のデータを消去するために必要とされる時間、
T_bpは、前記ＦＬＡＳＨメモリにおける１ワード分のデータの書き込み時間、
WSは、前記ＦＬＡＳＨメモリにおける１ワード当たりのバイト数
を示し、
前記ＦＬＡＳＨメモリについてのT_se、T_be、T_bp、WSのデータは予め前記更新情報記録手段に記録されていることを特徴とする。
【請求項４】
古いバージョンのデータが記録されるＳＤカードと、
前記ＳＤカードにおいて１回毎の消去処理で消去可能なデータ容量をブロックサイズと定義し、前記古いバージョンのデータと新しいバーションのデータとにおいてデータ内容の異なる部分のデータを相違データとして前記ブロックサイズ単位で抽出して組み合わせることにより作成された更新差分データと、前記ＳＤカードに記録される古いバーションのデータとに基づいて新しいバーションのデータを生成する新バージョンデータ生成手段と、
前記ブロックサイズ単位で前記ＳＤカードのデータの書き込みを行うデータ書き込み手段と、
前記古いバージョンのバージョン情報をネットワーク回線を介してサーバへ出力すると共に、前記更新差分データを前記ネットワーク回線を介して前記サーバより受信することが可能なクライアント通信手段と
を有するクライアントと、
前記ＳＤカードに記録され得る全てのバージョンのデータが記録された更新情報記録手段と、
前記クライアント通信手段により出力された前記バージョン情報を前記ネットワーク回線を介して受信すると共に、前記更新差分データを前記ネットワーク回線を介して前記クライアントへ出力することが可能なサーバ通信手段と、
該サーバ通信手段により受信された前記バージョン情報に該当するバージョンのデータを、前記更新情報記録手段に記録されるデータより取得し、取得されたバージョンのデータと前記更新情報記録手段に記録される新しいバージョンのデータとを比較して、前記相違データを抽出することにより、更新差分データを作成する更新差分データ作成手段と
を有するサーバとを備え、
前記ＳＤカードのブロックサイズとして複数のデータ容量を利用することが可能である場合には、前記更新情報記録手段に、異なるデータ容量のブロックサイズＢＳ毎に、前記ＳＤカードの書き込みスループットＷｔｈ（ＢＳ）と、前記ＳＤカードの読み込みスループットＲｔｈ（ＢＳ）と、更新差分データに基づいて前記新しいバーションのデータを作成するパッチ処理のパッチ処理スループットＰｔｈ（ＢＳ）とが記録され、
前記更新差分データ作成手段は、
前記更新差分データのデータ量がＤ（ＢＳ）である場合において、前記更新情報記録手段にブロックサイズＢＳ毎に記録される複数の書き込みスループットＷｔｈ（ＢＳ）と、複数の読み込みスループットＲｔｈ（ＢＳ）と、複数のパッチ処理スループットＰｔｈ（ＢＳ）を読み出して、Ｄ（ＢＳ）／（Ｗｔｈ（ＢＳ）＋Ｒｔｈ（ＢＳ）＋Ｐｔｈ（ＢＳ））の値を最小とするブロックサイズＢＳを求めて、当該ブロックサイズＢＳ単位で前記相違データを抽出することによって前記更新差分データを作成し、
前記サーバ通信手段は、前記更新差分データ作成手段により作成された前記更新差分データを前記クライアントに対して出力し、
前記クライアント通信手段は、前記サーバによって出力された前記更新差分データを受信し、
前記新バージョンデータ生成手段は、前記クライアント通信手段により受信された前記更新差分データと、前記ＳＤカードに記録される古いバージョンのデータとに基づいて、新しいバーションのデータを生成し、
前記データ書き込み手段は、前記新バージョンデータ生成手段において生成された新しいバーションのデータを、前記更新差分データの前記ブロックサイズ単位で前記ＳＤカードに書き込む
ことを特徴とするデータ更新システム。
【請求項５】
ＦＬＡＳＨメモリに記録されている古いバージョンのデータと、当該古いバージョンのデータよりも新しいバージョンのデータとが記録された更新情報記録手段と、
前記ＦＬＡＳＨメモリにおいて１回毎の消去処理で消去可能なデータ容量をブロックサイズと定義し、前記更新情報記録手段に記録された新しいバージョンのデータと古いバージョンのデータとを比較して、データ内容の異なる部分のデータを相違データとして前記ブロックサイズ単位で抽出し、抽出された前記ブロックサイズ単位の前記相違データを組み合わせることによって更新差分データを作成する更新差分データ作成手段と、
を備える更新差分データ作成装置において、前記更新差分データ作成手段に、前記更新差分データを作成させるための更新差分データ作成プログラムであって、
前記更新差分データ作成手段に、
小さなデータ容量であるＳバイトと大きなデータ容量であるＬバイトとを、前記ＦＬＡＳＨメモリの前記ブロックサイズとして利用することが可能である場合に、前記ブロックサイズをＳバイトにした場合の前記更新差分データのブロック数BN_Sと、前記ブロックサイズをＬバイトにした場合の前記更新差分データのブロック数BN_Lとを算出させるブロック数算出ステップと、
下記の式が成立するときには前記小さなデータ容量であるＳバイト単位で前記相違データを抽出して前記更新差分データを作成させ、下記の式が成立しないときには前記大きなデータ容量であるＬバイト単位で前記相違データを抽出して前記更新差分データを作成させる更新差分データ作成ステップと
を実行させるための更新差分データ作成プログラム。
BN_S×(T_se＋(T_bp×S／WS))＜BN_L×(T_be＋(T_bp×L／WS))
ただし、
BN_Sは、前記ブロックサイズをＳバイトにした場合の前記更新差分データのブロック数、
BN_Lは、前記ブロックサイズをＬバイトにした場合の前記更新差分データのブロック数、
T_seは、前記ＦＬＡＳＨメモリにおいてＳバイト分のデータを消去するために必要とされる時間、
T_beは、前記ＦＬＡＳＨメモリにおいてＬバイト分のデータを消去するために必要とされる時間、
T_bpは、前記ＦＬＡＳＨメモリにおける１ワード分のデータの書き込み時間、
WSは、前記ＦＬＡＳＨメモリにおける１ワード当たりのバイト数
を示し、
前記ＦＬＡＳＨメモリについてのT_se、T_be、T_bp、WSのデータは予め前記更新情報記録手段に記録されていることを特徴とする。
【請求項６】
ＳＤカードに記録されている古いバージョンのデータと、当該古いバージョンのデータよりも新しいバージョンのデータとが記録され、さらに、前記ＳＤカードにおいて１回毎の消去処理で消去可能なデータ容量をブロックサイズと定義し、前記ＳＤカードのブロックサイズとして複数のデータ容量を利用することが可能である場合に、異なるデータ容量のブロックサイズ毎に、前記ＳＤカードの書き込みスループットＷｔｈ（ＢＳ）と、前記ＳＤカードの読み込みスループットＲｔｈ（ＢＳ）と、更新差分データに基づいて前記新しいバーションのデータを作成するパッチ処理のパッチ処理スループットＰｔｈ（ＢＳ）とが記録された更新情報記録手段と、
前記更新情報記録手段に記録された新しいバージョンのデータと古いバージョンのデータとを比較して、データ内容の異なる部分のデータを相違データとして前記ブロックサイズ単位で抽出し、抽出された前記ブロックサイズ単位の前記相違データを組み合わせることによって更新差分データを作成する更新差分データ作成手段と
を備える更新差分データ作成装置において、前記更新差分データ作成手段に、前記更新差分データを作成させるための更新差分データ作成プログラムであって、
前記更新差分データ作成手段に、
前記更新差分データのデータ量がＤ（ＢＳ）である場合において、前記更新情報記録手段にブロックサイズ毎に記録される複数の書き込みスループットＷｔｈ（ＢＳ）と、複数の読み込みスループットＲｔｈ（ＢＳ）と、複数のパッチ処理スループットＰｔｈ（ＢＳ）を読み出させて、Ｄ（ＢＳ）／（Ｗｔｈ（ＢＳ）＋Ｒｔｈ（ＢＳ）＋Ｐｔｈ（ＢＳ））の値を最小とするブロックサイズＢＳを求めさせる最小ブロックサイズ算出ステップと、
該最小ブロックサイズ算出ステップにおいて算出された前記ブロックサイズＢＳ単位で前記相違データを抽出することによって前記更新差分データを作成させる更新差分データ作成ステップと
を実行させるための更新差分データ作成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は更新差分データ作成装置、データ更新システムおよび更新差分データ作成プログラムに関し、より詳細には、ＦＬＡＳＨメモリまたはＳＤカードに記録されるバージョンの古いデータを新しいバージョンのデータに迅速かつ少ない更新データで更新することが可能な更新差分データ作成装置、データ更新システムおよび更新差分データ作成プログラムに関する。
【背景技術】
【０００２】
近年では、地図画像をディスプレイ上に表示させ、目的地までの経路案内を行うカーナビゲーションシステムが広く普及している。
【０００３】
カーナビゲーションシステムにおいて、経路案内の精度を向上させるためには、できるだけ新しい地図情報をカーナビゲーションシステムで保持しておくことが望ましい。また、今日のカーナビゲーションシステムは、単なる経路案内処理だけではなく、ＣＤやＭＤ等に記録される音楽の操作・再生処理を行うための車載用オーディオ装置や、ＤＶＤやブルーレイディスク（登録商標）などの再生を行うための映像再生装置としての機能を有するものが多い。このため、必要に応じてシステムの更新などを行うことにより、ユーザのニーズに対応するような機能を追加する必要が生じている。
【０００４】
このような地図情報の更新や、システム情報の更新を行うために、最新の地図情報やシステム情報が記録された記録媒体（例えばＣＤ―ＲＯＭやＤＶＤ―ＲＯＭなど）を用いて、カーナビゲーションシステムの地図情報やシステム情報の更新を行う方法が多く用いられている（例えば、特許文献１参照）。
【０００５】
しかしながら、このようにして地図情報やシステム情報を更新する場合には、古い情報の全てを消去してから新しい情報を書き込むことによって、更新処理を行う必要があるため、更新処理に多くの時間が必要とされてしまうという問題があった。
【０００６】
このため、全ての地図情報などを更新するのではなく、新しく更新された一部の地図情報やシステム情報のみを古いデータから新しいデータに更新し、新しいデータと古いデータとでデータ内容が変わっていないデータ（つまり、変更がなされていないデータ）に関しては、全く更新処理を行わない差分更新処理方法が知られている。
【０００７】
この差分更新処理方法では、一般的に、カーナビゲーションシステムのデータ記録部の内容を、複数のファイルデータ（部分的にまとめられた１まとまりのデータ）の集合として判断し、更新されたファイルデータのみ変更し、更新されていないファイルデータをそのまま更新せずに利用する方法が用いられている。
【０００８】
しかしながら、更新されたファイルデータであっても、そのファイルデータを構成する全てのデータの更新が行われるのではなく、ファイルデータ内の一部のデータのみが更新対象となることの方が多い。このため、さらに、ファイルデータ毎に更新箇所を求めて更新差分データを作成してデータの更新を行う場合と、ファイルデータの全体をそのまま用いて更新を行う場合とを必要に応じて使い分ける方法も提案されている（例えば、特許文献２参照）。
【０００９】
特許文献２に開示される方法では、カーナビゲーションシステムの更新対象となるデータ領域をファイルデータ毎に抽出し（特許文献２の図４では、ファイル１〜ファイル４が例示されている）、抽出されたファイルデータのデータ量に対する差分データのデータ量を求め差分データのサイズ率を算出して、サイズ率が所定比率よりも小さい場合にのみ該当するファイルデータの差分データを用いてデータの更新を行い、サイズ率が所定比率よりも大きい場合には新しいファイルデータを用いることにより、全体的にデータの更新を行う方法を採用している。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００３―３３７０２７号公報
【特許文献２】特開２００６―２５１７６８号公報（図２〜図４）
【発明の概要】
【発明が解決しようとする課題】
【００１１】
ところで、特許文献２には、更新データをＤＶＤなどの記録媒体に記録させ、カーナビゲーションシステムでこの更新データを読み出すことにより情報の更新を行う場合が例示されている。しかしながら、ＤＶＤ等の記録媒体に更新データを記録させる方法では、更新データを頻繁に提供することが困難であった。実際に、ＤＶＤ等に更新データを記録して提供する場合には、提供頻度が１年〜２年間に１回程度になってしまうという問題があった。
【００１２】
一方で、カーナビゲーションシステムを利用するユーザの立場からすれば、少しでも早く新しい地図情報などに情報を更新したいという要望が存在する。このため、今日では、カーナビゲーションシステムを携帯電話回線などの通信回線を用いてサーバにアクセスさせて、データの更新があった場合に迅速にデータの更新を行う方法が提案されている。
【００１３】
このようにして通信回線を用いて更新データを取得する場合には、通信費の削減とデータのダウンロード時間の短縮とを図るために、できるだけ小さなデータを用いて地図情報などの更新することが好ましい。しかしながら、地図情報などのデータは情報量が比較的多いため、地図情報を通信回線だけを用いて更新すると、受信データ量とダウンロード時間との増大により、利便性を損なうおそれもあった。
【００１４】
このため、ファイルデータ単位の更新に関してはＤＶＤ等の記録媒体に記録された情報によって更新を行い、１つのファイルデータよりも小さなデータ単位で更新を行う場合には通信回線を用いて、差分データを取得することによりデータの更新処理を行う方法が提案されている。
【００１５】
一方で、差分データを用いてデータの更新を行うことにより、通信回線を介して送受信するデータのデータ量を低減させることは可能となるが、少量のデータを頻繁に更新する方法を用いると、地図情報等を記録する記録媒体へのデータの書き込み回数が増大するため、更新処理に時間を要してしまう傾向がある。
【００１６】
特に近年では、カーナビゲーションシステムにおいて、ＦＬＡＳＨメモリやＳＤカードなどの不揮発性メモリに、地図情報やシステム情報を記録する機種が増えている。不揮発性メモリにデータを記録するカーナビゲーションシステムでは、データの消去・書き込み処理に必要とされる時間がハードディスクドライブを利用する場合よりも多くなる傾向がある。
【００１７】
このため、差分データを用いて更新のあったデータブロックだけを頻繁に更新する処理を行うと、更新処理にかえって時間が掛かってしまい、さらに、書き換え回数が多くなるためメモリ寿命の短縮化を招いてしまうおそれがあるという問題があった。
【００１８】
本発明は上記課題に鑑みてなされたものであり、記録媒体（ＦＬＡＳＨメモリやＳＤカード）に記録されるデータの書き換え処理を迅速に行うことが可能な更新差分データ作成装置、データ更新システムおよび更新差分データ作成プログラムを提供することを課題とする。
【課題を解決するための手段】
【００１９】
上記課題を解決するために、本発明に係る更新差分データ作成装置は、ＦＬＡＳＨメモリに記録されている古いバージョンのデータと、当該古いバージョンのデータよりも新しいバージョンのデータとが記録された更新情報記録手段と、前記ＦＬＡＳＨメモリにおいて１回毎の消去処理で消去可能なデータ容量をブロックサイズと定義し、前記更新情報記録手段に記録された新しいバージョンのデータと古いバージョンのデータとを比較して、データ内容の異なる部分のデータを相違データとして前記ブロックサイズ単位で抽出し、抽出された前記ブロックサイズ単位の前記相違データを組み合わせることによって更新差分データを作成する更新差分データ作成手段とを備え、前記更新差分データ作成手段は、小さなデータ容量であるＳバイトと大きなデータ容量であるＬバイトとを、前記ＦＬＡＳＨメモリの前記ブロックサイズとして利用することが可能である場合に、前記ブロックサイズをＳバイトにした場合の前記更新差分データのブロック数BN_Sと、前記ブロックサイズをＬバイトにした場合の前記更新差分データのブロック数BN_Lとを算出し、下記の式が成立するときには前記小さなデータ容量であるＳバイト単位で前記相違データを抽出して前記更新差分データを作成し、下記の式が成立しないときには前記大きなデータ容量であるＬバイト単位で前記相違データを抽出して前記更新差分データを作成することを特徴とする。
【００２０】
但し、式はBN_S×(T_se＋(T_bp×S／WS))＜BN_L×(T_be＋(T_bp×L／WS))であり、BN_Sは、前記ブロックサイズをＳバイトにした場合の前記更新差分データのブロック数、BN_Lは、前記ブロックサイズをＬバイトにした場合の前記更新差分データのブロック数、T_seは、前記ＦＬＡＳＨメモリにおいてＳバイト分のデータを消去するために必要とされる時間、T_beは、前記ＦＬＡＳＨメモリにおいてＬバイト分のデータを消去するために必要とされる時間、T_bpは、前記ＦＬＡＳＨメモリにおける１ワード分のデータの書き込み時間、WSは、前記ＦＬＡＳＨメモリにおける１ワード当たりのバイト数を示し、前記ＦＬＡＳＨメモリについてのT_se、T_be、T_bp、WSのデータは予め前記更新情報記録手段に記録されていることを特徴とする。
【００２１】
また、本発明に係る更新差分データ作成装置は、ＳＤカードに記録されている古いバージョンのデータと、当該古いバージョンのデータよりも新しいバージョンのデータとが記録された更新情報記録手段と、前記ＳＤカードにおいて１回毎の消去処理で消去可能なデータ容量をブロックサイズと定義し、前記更新情報記録手段に記録された新しいバージョンのデータと古いバージョンのデータとを比較して、データ内容の異なる部分のデータを相違データとして前記ブロックサイズ単位で抽出し、抽出された前記ブロックサイズ単位の前記相違データを組み合わせることによって更新差分データを作成する更新差分データ作成手段とを備え、前記ＳＤカードのブロックサイズとして複数のデータ容量を利用することが可能である場合には、前記更新情報記録手段に、異なるデータ容量のブロックサイズＢＳ毎に、前記ＳＤカードの書き込みスループットＷｔｈ（ＢＳ）と、前記ＳＤカードの読み込みスループットＲｔｈ（ＢＳ）と、更新差分データに基づいて前記新しいバーションのデータを作成するパッチ処理のパッチ処理スループットＰｔｈ（ＢＳ）とが記録され、前記更新差分データ作成手段は、前記更新差分データのデータ量がＤ（ＢＳ）である場合において、前記更新情報記録手段にブロックサイズＢＳ毎に記録される複数の書き込みスループットＷｔｈ（ＢＳ）と、複数の読み込みスループットＲｔｈ（ＢＳ）と、複数のパッチ処理スループットＰｔｈ（ＢＳ）を読み出して、Ｄ（ＢＳ）／（Ｗｔｈ（ＢＳ）＋Ｒｔｈ（ＢＳ）＋Ｐｔｈ（ＢＳ））の値を最小とするブロックサイズＢＳを求めて、当該ブロックサイズＢＳ単位で前記相違データを抽出することによって前記更新差分データを作成することを特徴とする。
【００２２】
ここで、書き込みスループットとは、単位時間当たりに書き込みを行うことが可能なデータのブロックサイズ数を示し、ブロックサイズとして設定されるバイト数に応じて値が変化し、また、ＳＤカードのハード特性に応じて値が異なるという性質を有している。
【００２３】
また、読み込みスループットとは、単位時間当たりに読み込みを行うことが可能なデータのブロックサイズ数を示し、ブロックサイズとして設定されるバイト数に応じて値が変化し、また、ＳＤカードのハード特性に応じて値が異なるという性質を有している。
【００２４】
さらに、パッチ処理のスループットとは、ＳＤカードに記録されている古いバージョンのデータと更新差分データとに基づいて新しいバージョンのデータを作成する場合において、単位時間当たりに新しいバーションのデータを作成することが可能なブロックサイズ数を示し、パッチ処理に利用されるＤＲＡＭ（ＳＤＲＡＭ等）とＳＤカードとの間のメモリコピー・スループットに近似した値を示す。
【００２５】
また、本発明に係るデータ更新システムは、古いバージョンのデータが記録されるＦＬＡＳＨメモリと、該ＦＬＡＳＨメモリにおいて１回毎の消去処理で消去可能なデータ容量をブロックサイズと定義し、前記古いバージョンのデータと新しいバーションのデータとにおいてデータ内容の異なる部分のデータを相違データとして前記ブロックサイズ単位で抽出して組み合わせることにより作成された更新差分データと、前記ＦＬＡＳＨメモリに記録される古いバーションのデータとに基づいて、新しいバーションのデータを生成する新バージョンデータ生成手段と、前記ブロックサイズ単位で前記ＦＬＡＳＨメモリのデータを消去するメモリデータ消去手段と、該メモリデータ消去手段により消去された前記ＦＬＡＳＨメモリの領域に、前記新バージョンデータ生成手段により生成された新しいバーションのデータを書き込むデータ書き込み手段と、前記古いバージョンのバージョン情報をネットワーク回線を介してサーバへ出力すると共に、前記更新差分データを前記ネットワーク回線を介して前記サーバより受信することが可能なクライアント通信手段とを有するクライアントと、前記ＦＬＡＳＨメモリに記録され得る全てのバージョンのデータが記録された更新情報記録手段と、前記クライアント通信手段により出力された前記バージョン情報を前記ネットワーク回線を介して受信すると共に、前記更新差分データを前記ネットワーク回線を介して前記クライアントへ出力することが可能なサーバ通信手段と、該サーバ通信手段により受信された前記バージョン情報に該当するバージョンのデータを、前記更新情報記録手段に記録されるデータより取得し、取得されたバージョンのデータと前記更新情報記録手段に記録される新しいバージョンのデータとを比較して、前記相違データを抽出することにより、更新差分データを作成する更新差分データ作成手段とを有するサーバとを備え、前記更新差分データ作成手段は、小さなデータ容量であるＳバイトと大きなデータ容量であるＬバイトとを、前記ＦＬＡＳＨメモリの前記ブロックサイズとして利用することが可能である場合に、前記ブロックサイズをＳバイトにした場合の前記更新差分データのブロック数BN_Sと、前記ブロックサイズをＬバイトにした場合の前記更新差分データのブロック数BN_Lとを算出し、下記の式が成立するときには前記小さなデータ容量であるＳバイト単位で前記相違データを抽出して前記更新差分データを作成し、下記の式が成立しないときには前記大きなデータ容量であるＬバイト単位で前記相違データを抽出して前記更新差分データを作成し、前記サーバ通信手段は、前記更新差分データ作成手段により作成された前記更新差分データを前記クライアントに対して出力し、前記クライアント通信手段は、前記サーバによって出力された前記更新差分データを受信し、前記新バージョンデータ生成手段は、前記クライアント通信手段により受信された前記更新差分データと、前記ＦＬＡＳＨメモリに記録される古いバージョンのデータとに基づいて、新しいバーションのデータを生成し、前記メモリデータ消去手段は、前記クライアント通信手段により受信された前記更新差分データを構成するブロックサイズに基づいて、当該ブロックサイズ単���で前記ＦＬＡＳＨメモリのデータを消去し、前記データ書き込み手段は、前記メモリデータ消去手段により消去された前記ＦＬＡＳＨメモリの領域に、前記新バージョンデータ生成手段により生成された新しいバーションのデータを、前記ブロックサイズ単位で書き込むことを特徴とする。
【００２６】
但し、式は、BN_S×(T_se＋(T_bp×S／WS))＜BN_L×(T_be＋(T_bp×L／WS))であり、BN_Sは、前記ブロックサイズをＳバイトにした場合の前記更新差分データのブロック数、BN_Lは、前記ブロックサイズをＬバイトにした場合の前記更新差分データのブロック数、T_seは、前記ＦＬＡＳＨメモリにおいてＳバイト分のデータを消去するために必要とされる時間、T_beは、前記ＦＬＡＳＨメモリにおいてＬバイト分のデータを消去するために必要とされる時間、T_bpは、前記ＦＬＡＳＨメモリにおける１ワード分のデータの書き込み時間、WSは、前記ＦＬＡＳＨメモリにおける１ワード当たりのバイト数を示し、前記ＦＬＡＳＨメモリについてのT_se、T_be、T_bp、WSのデータは予め前記更新情報記録手段に記録されていることを特徴とする。
【００２７】
また、本発明に係るデータ更新システムは、古いバージョンのデータが記録されるＳＤカードと、前記ＳＤカードにおいて１回毎の消去処理で消去可能なデータ容量をブロックサイズと定義し、前記古いバージョンのデータと新しいバーションのデータとにおいてデータ内容の異なる部分のデータを相違データとして前記ブロックサイズ単位で抽出して組み合わせることにより作成された更新差分データと、前記ＳＤカードに記録される古いバーションのデータとに基づいて新しいバーションのデータを生成する新バージョンデータ生成手段と、前記ブロックサイズ単位で前記ＳＤカードのデータの書き込みを行うデータ書き込み手段と、前記古いバージョンのバージョン情報をネットワーク回線を介してサーバへ出力すると共に、前記更新差分データを前記ネットワーク回線を介して前記サーバより受信することが可能なクライアント通信手段とを有するクライアントと、前記ＳＤカードに記録され得る全てのバージョンのデータが記録された更新情報記録手段と、前記クライアント通信手段により出力された前記バージョン情報を前記ネットワーク回線を介して受信すると共に、前記更新差分データを前記ネットワーク回線を介して前記クライアントへ出力することが可能なサーバ通信手段と、該サーバ通信手段により受信された前記バージョン情報に該当するバージョンのデータを、前記更新情報記録手段に記録されるデータより取得し、取得されたバージョンのデータと前記更新情報記録手段に記録される新しいバージョンのデータとを比較して、前記相違データを抽出することにより、更新差分データを作成する更新差分データ作成手段とを有するサーバとを備え、前記ＳＤカードのブロックサイズとして複数のデータ容量を利用することが可能である場合には、前記更新情報記録手段に、異なるデータ容量のブロックサイズＢＳ毎に、前記ＳＤカードの書き込みスループットＷｔｈ（ＢＳ）と、前記ＳＤカードの読み込みスループットＲｔｈ（ＢＳ）と、更新差分データに基づいて前記新しいバーションのデータを作成するパッチ処理のパッチ処理スループットＰｔｈ（ＢＳ）とが記録され、前記更新差分データ作成手段は、前記更新差分データのデータ量がＤ（ＢＳ）である場合において、前記更新情報記録手段にブロックサイズＢＳ毎に記録される複数の書き込みスループットＷｔｈ（ＢＳ）と、複数の読み込みスループットＲｔｈ（ＢＳ）と、複数のパッチ処理スループットＰｔｈ（ＢＳ）を読み出して、Ｄ（ＢＳ）／（Ｗｔｈ（ＢＳ）＋Ｒｔｈ（ＢＳ）＋Ｐｔｈ（ＢＳ））の値を最小とするブロックサイズＢＳを求めて、当該ブロックサイズＢＳ単位で前記相違データを抽出することによって前記更新差分データを作成し、前記サーバ通信手段は、前記更新差分データ作成手段により作成された前記更新差分データを前記クライアントに対して出力し、前記クライアント通信手段は、前記サーバによって出力された前記更新差分データを受信し、前記新バージョンデータ生成手段は、前記クライアント通信手段により受信された前記更新差分データと、前記ＳＤカードに記録される古いバージョンのデータとに基づいて、新しいバーションのデータを生成し、前記データ書き込み手段は、前記新バージョンデータ生成手段において生成された新しいバーションのデータを、前記更新差分データの前記ブロックサイズ単位で前記ＳＤカードに書き込むことを特徴とする
【００２８】
さらに、本発明に係る更新差分データ作成プログラムは、ＦＬＡＳＨメモリに記録されている古いバージョンのデータと、当該古いバージョンのデータよりも新しいバージョンのデータとが記録された更新情報記録手段と、前記ＦＬＡＳＨメモリにおいて１回毎の消去処理で消去可能なデータ容量をブロックサイズと定義し、前記更新情報記録手段に記録された新しいバージョンのデータと古いバージョンのデータとを比較して、データ内容の異なる部分のデータを相違データとして前記ブロックサイズ単位で抽出し、抽出された前記ブロックサイズ単位の前記相違データを組み合わせることによって更新差分データを作成する更新差分データ作成手段と、を備える更新差分データ作成装置において、前記更新差分データ作成手段に、前記更新差分データを作成させるための更新差分データ作成プログラムであって、前記更新差分データ作成手段に、小さなデータ容量であるＳバイトと大きなデータ容量であるＬバイトとを、前記ＦＬＡＳＨメモリの前記ブロックサイズとして利用することが可能である場合に、前記ブロックサイズをＳバイトにした場合の前記更新差分データのブロック数BN_Sと、前記ブロックサイズをＬバイトにした場合の前記更新差分データのブロック数BN_Lとを算出させるブロック数算出ステップと、下記の式が成立するときには前記小さなデータ容量であるＳバイト単位で前記相違データを抽出して前記更新差分データを作成させ、下記の式が成立しないときには前記大きなデータ容量であるＬバイト単位で前記相違データを抽出して前記更新差分データを作成させる更新差分データ作成ステップとを実行させるためのプログラムであることを特徴とする。
【００２９】
だたし、式はBN_S×(T_se＋(T_bp×S／WS))＜BN_L×(T_be＋(T_bp×L／WS))であり、BN_Sは、前記ブロックサイズをＳバイトにした場合の前記更新差分データのブロック数、BN_Lは、前記ブロックサイズをＬバイトにした場合の前記更新差分データのブロック数、T_seは、前記ＦＬＡＳＨメモリにおいてＳバイト分のデータを消去するために必要とされる時間、T_beは、前記ＦＬＡＳＨメモリにおいてＬバイト分のデータを消去するために必要とされる時間、T_bpは、前記ＦＬＡＳＨメモリにおける１ワード分のデータの書き込み時間、WSは、前記ＦＬＡＳＨメモリにおける１ワード当たりのバイト数を示し、前記ＦＬＡＳＨメモリについてのT_se、T_be、T_bp、WSのデータは予め前記更新情報記録手段に記録されていることを特徴とする。
【００３０】
また、本発明に係る更新差分データ作成プログラムは、ＳＤカードに記録されている古いバージョンのデータと、当該古いバージョンのデータよりも新しいバージョンのデータとが記録され、さらに、前記ＳＤカードにおいて１回毎の消去処理で消去可能なデータ容量をブロックサイズと定義し、前記ＳＤカードのブロックサイズとして複数のデータ容量を利用することが可能である場合に、異なるデータ容量のブロックサイズ毎に、前記ＳＤカードの書き込みスループットＷｔｈ（ＢＳ）と、前記ＳＤカードの読み込みスループットＲｔｈ（ＢＳ）と、更新差分データに基づいて前記新しいバーションのデータを作成するパッチ処理のパッチ処理スループットＰｔｈ（ＢＳ）とが記録された更新情報記録手段と、前記更新情報記録手段に記録された新しいバージョンのデータと古いバージョンのデータとを比較して、データ内容の異なる部分のデータを相違データとして前記ブロックサイズ単位で抽出し、抽出された前記ブロックサイズ単位の前記相違データを組み合わせることによって更新差分データを作成する更新差分データ作成手段とを備える更新差分データ作成装置において、前記更新差分データ作成手段に、前記更新差分データを作成させるための更新差分データ作成プログラムであって、前記更新差分データ作成手段に、前記更新差分データのデータ量がＤ（ＢＳ）である場合において、前記更新情報記録手段にブロックサイズ毎に記録される複数の書き込みスループットＷｔｈ（ＢＳ）と、複数の読み込みスループットＲｔｈ（ＢＳ）と、複数のパッチ処理スループットＰｔｈ（ＢＳ）を読み出させて、Ｄ（ＢＳ）／（Ｗｔｈ（ＢＳ）＋Ｒｔｈ（ＢＳ）＋Ｐｔｈ（ＢＳ））の値を最小とするブロックサイズＢＳを求めさせる最小ブロックサイズ算出ステップと、該最小ブロックサイズ算出ステップにおいて算出された前記ブロックサイズＢＳ単位で前記相違データを抽出することによって前記更新差分データを作成させる更新差分データ作成ステップとを実行させるためのプログラムであることを特徴とする。
【発明の効果】
【００３１】
一般的に、ＦＬＡＳＨメモリは、データを上書き保存することができないため、一度データの消去を行った後に更新されたデータの書き込みを行う必要がある。さらに、ＦＬＡＳＨメモリでは、１バイト単位でデータを消去することができないため、所定のブロックサイズ単位でデータを消去した後に、更新されたデータの書き込みを行う必要がある。
【００３２】
このため、本発明に係る更新差分データ作成装置、データ更新システムおよび更新差分データ作成プログラムでは、ＦＬＡＳＨメモリにおいて１回毎の消去処理で消去可能なデータ容量をブロックサイズと定義し、新しいバージョンのデータと古いバージョンのデータとを比較してデータ内容の異なる部分のデータを相違データとしてブロックサイズ単位で抽出して組み合わせることにより更新差分データを作成する。このようにして更新差分データを作成することによって、ＦＬＡＳＨメモリの更新処理に適した更新差分データを作成することが可能となる。
【００３３】
さらに、ＦＬＡＳＨメモリにおいて１回毎の消去処理で消去可能なデータ容量は、必ずしも１通りのデータ容量には限定されず、複数種類のデータ容量のいずれかを選択してブロックサイズとし、選択されたブロックサイズに基づいてデータの消去を行うことが可能となっている場合も存在する。
【００３４】
このように１回毎の消去処理で消去可能なブロックサイズのデータ容量を選択可能な場合には、どの程度のブロックサイズ単位で相違データを抽出して更新差分データを作成するか否かによって、ＦＬＡＳＨメモリの更新処理時間に差が生じてしまう場合がある。
【００３５】
一般的に、ＦＬＡＳＨメモリにおけるデータの消去時間は、１回で消去されるデータ容量に違いがあっても消去時間に差が生じない傾向がある。このため、同じデータ容量を消去する場合には、ブロックデータを大きくした方が、ブロックデータを小さくする場合よりも消去処理回数を低減させることができるため、消去処理時間を全体的に短くすることが可能である。
【００３６】
一方で、データの書き込み時間は、データの書き込み処理回数に比例して多くの時間が掛かってしまう傾向がある。従って、ブロックサイズを大きくすると、新旧バージョンにおいてデータ内容の異なる部分が、１つのブロックサイズ内に含まれる可能性が高くなり、ブロックサイズが小さい場合に比べて抽出される相違データの数が増加する傾向がある。従って、ブロックサイズが大きくなって抽出される相違データ数が増加されると、更新差分データをＦＬＡＳＨメモリに書き込むための書き込み回数が増加してしまい、書き込み処理時間が全体的に長くなってしまうという問題がある。
【００３７】
本発明に係る更新差分データ作成装置、データ更新システムおよび更新差分データ作成プログラムでは、ＦＬＡＳＨメモリのブロックサイズとして、小さなデータ容量であるＳバイトと、大きなデータ容量であるＬバイトとを利用することが可能である場合に、ブロックサイズをＳバイトにした場合の更新差分データのブロック数BN_Sと、ブロックサイズをＬバイトにした場合の更新差分データのブロック数BN_Lとを算出し、ＦＬＡＳＨメモリのハード特性に基づいて決定されるT_se（ＦＬＡＳＨメモリにおいてＳバイト分のデータを消去するために必要とされる時間）、T_be（ＦＬＡＳＨメモリにおいてＬバイト分のデータを消去するために必要とされる時間）、T_bp（ＦＬＡＳＨメモリにおける１ワード分のデータの書き込み時間）、WS（ＦＬＡＳＨメモリにおける１ワード当たりのバイト数）を用いることにより、
BN_S×(T_se＋(T_bp×S／WS))＜BN_L×(T_be＋(T_bp×L／WS))
が成立するか否かの判断を行う。
【００３８】
ここで、上述した式におけるT_seは、ＦＬＡＳＨメモリにおける小さいデータ容量であるＳバイト分のデータの消去処理時間、(T_bp×S／WS)は、ＦＬＡＳＨメモリにおけるＳバイト分のデータの書き込み処理時間、T_beは、ＦＬＡＳＨメモリにおける大きいデータ容量であるＬバイト分のデータの消去処理時間、(T_bp×L／WS)は、ＦＬＡＳＨメモリにおけるＬバイト分のデータの書き込み処理時間を示している。
【００３９】
従って、上述の式は、ブロックサイズの相違に基づくデータの消去時間と書き込み時間との和を比較したものに該当し、式が成立する場合には、ＳバイトをブロックサイズとしてＦＬＡＳＨメモリのデータ更新処理を行う方が、Ｌバイトをブロックサイズとしてデータ更新処理を行うよりも処理時間が短縮され、式が成立しない場合には、Ｌバイトをブロックサイズとしてデータ更新処理を行う方が、Ｓバイトをブロックサイズとしてデータ更新処理を行うよりも処理時間が短縮されると判断することができる。
【００４０】
このようにしてブロックサイズを決定することにより、ＦＬＡＳＨメモリのデータ更新処理に用いられる更新差分データのブロックサイズを最適化することができ、データの更新処理の迅速化と、更新差分データのデータ量低減とを実現することが可能となる。
【００４１】
また、ＳＤカードもＦＬＡＳＨメモリの一種であり、データの書き込みを行う前に古いデータを消去してから新しいデータの書き込みを行う必要がある点で、ＦＬＡＳメモリと共通する。このため、ＳＤカードにおいても１回毎の消去処理で消去可能なデータ容量をブロックサイズとして定義する。
【００４２】
また、一般的に、ＳＤカードには、データの更新（消去・読み込み・書き込み）制御を行うためのコントローラが設けられており、このコントローラによってデータの消去・読み込み・書き込みが行われることになる。但し、データの更新を行うためのブロックサイズが異なると、同じＳＤカードであっても、データ更新の処理時間が異なっていた。
【００４３】
本発明に係る更新差分データ作成装置、データ更新システムおよび更新差分データ作成プログラムでは、ＳＤカードのブロックサイズとして複数のデータ容量を利用することが可能である場合に、異なるデータ容量のブロックサイズ毎に、ＳＤカードの書き込みスループットＷｔｈ（ＢＳ）と、ＳＤカードの読み込みスループットＲｔｈ（ＢＳ）と、更新差分データに基づいて新しいバーションのデータを作成するパッチ処理のパッチ処理スループットＰｔｈ（ＢＳ）とが、更新情報記録手段に記録されている。
【００４４】
本発明に係る更新差分データ作成装置、データ更新システムおよび更新差分データ作成プログラムの更新差分データ作成手段は、更新差分データのデータ量がＤ（ＢＳ）である場合において、更新情報記録手段にブロックサイズ毎に記録される複数の書き込みスループットＷｔｈ（ＢＳ）と、複数の読み込みスループットＲｔｈ（ＢＳ）と、複数のパッチ処理スループットＰｔｈ（ＢＳ）を読み出して、Ｄ（ＢＳ）／（Ｗｔｈ（ＢＳ）＋Ｒｔｈ（ＢＳ）＋Ｐｔｈ（ＢＳ））の値を最小とするブロックサイズＢＳを求めて、当該ブロックサイズＢＳ単位で相違データを抽出することによって更新差分データを作成する。
【００４５】
このようにして更新差分データを作成することによって、ＳＤカードにおいてブロックサイズに応じて異なる、書き込み時間、読み込み時間およびパッチ処理時間の組み合わせを最も低減することが可能なブロックサイズを求めることが可能となる。このブロックサイズ単位で相違データを抽出して更新差分データを作成することにより、ＳＤカードのデータ更新処理に用いられる更新差分データのブロックサイズを最適化することができ、データの更新処理の迅速化と、更新差分データのデータ量低減とを実現することが可能となる。
【図面の簡単な説明】
【００４６】
【図１】本実施の形態に係るカーナビゲーションシステムとサーバがネットワーク回線を介して接続された状態を示した図である。
【図２】本実施の形態に係るカーナビゲーションシステムの概略構成を示したブロック図である。
【図３】本実施の形態に係るデータ記録部のデータ記録構造を説明するための図である。
【図４】本実施の形態に係るサーバの概略構成を示したブロック図である。
【図５】本実施の形態に係るカーナビゲーションシステムとサーバとの間の情報の送受信を示したタイミングチャートである。
【図６】本実施の形態に係るカーナビゲーションシステムのＣＰＵにより実行されるデータ更新処理を示したフローチャートである。
【図７】本実施の形態に係るサーバのサーバ用ＣＰＵにより実行されるデータ更新処理を示したフローチャートである。
【図８】本実施の形態に係るサーバのサーバ用ＣＰＵにおいて、更新差分データを作成する手順を説明するための図である。
【発明を実施するための形態】
【００４７】
以下、本発明に係る更新差分データ作成装置を、更新差分データ作成装置の一例であるサーバと、そのサーバにネットワーク回線を介して接続されるカーナビゲーションシステムとを示して、図面を用いて詳細に説明する。
【００４８】
図１は、本実施の形態に係るカーナビゲーションシステム（クライアント）１と、サーバ（更新差分データ作成装置、サーバ）２０とを示した図である。図１に示すように、カーナビゲーションシステム１とサーバ２０とは、ネットワーク回線３０を介して接続されている。具体的に、カーナビゲーションシステム１は、車両２に搭載されると共に、後述するように携帯電話回線を介してネットワーク回線３０に接続することが可能となっている。一方で、サーバ２０もネットワーク回線３０に接続されており、カーナビゲーションシステム１とサーバ２０とは、ネットワーク回線３０を介して、データの送受信を行うことが可能となっている。
【００４９】
なお、ネットワーク回線３０は、インターネットのように広く第三者に公開されているネットワークであってもよく、ＬＡＮ等のように、ネットワークのアクセスに一定の制限が課されるネットワークであってもよい。さらに、カーナビゲーションシステム１におけるネットワーク回線３０への接続は、必ずしも携帯電話回線だけには限定されず、Ｗｉ−ＦｉやＷｉＭＡＸなどの通信回線を利用するものであってもよい。
【００５０】
さらに、図１には、カーナビゲーションシステム１とサーバ２０とが１つずつしか示されていないが、カーナビゲーションシステム１やサーバ２０は必ずしも１つずつには限定されない。一般的に、カーナビゲーションシステム１は、ネットワーク回線３０を介して多数存在し、各ユーザが各々のカーナビゲーションシステム１を利用することによって、サーバ２０にアクセスすることが可能となっている。また、サーバ２０は、ネットワーク回線３０に対して１台だけ接続されているものであってよく、また、多数接続されているものであってもよい。
【００５１】
［カーナビゲーションシステム１について］
図２は、カーナビゲーションシステム１の概略構成を示したブロック図である。カーナビゲーションシステム１は、ディスプレイ部５とタッチパネル部６と本体部１０とを有している。ディスプレイ部５には、経路案内時にユーザに対して走行中の周囲の地図情報などを表示する役割を有している。一般的に、ディスプレイ部５には、液晶ディスプレイが用いられる。また、必要に応じてディスプレイ部５には、経路案内時に音声情報を出力させるためのスピーカ（図示省略）などが設けられている。なお、このスピーカは、ディスプレイ部５に直接設けられるものには限定されず、車両に設置される音楽用スピーカを利用するものであってもよい。
【００５２】
タッチパネル部６は、ディスプレイ部５に表示されるメニューアイコンなどのタッチ操作を検出する役割を有している。ユーザのタッチ位置の情報が後述するＣＰＵ１５に伝達され、タッチ位置の情報と、ディスプレイ部５に表示されるメニューアイコンの表示位置との関係に基づいて、ＣＰＵ１５がユーザの操作内容を判断することが可能となっている。なお、本実施の形態においては、タッチパネル部６によりユーザの入力操作の検出を行う構成を説明するが、タッチパネル部６以外の操作手段として、例えば、キーボード、ジョイスティックおよび操作リモコンなどを用いることにより、ユーザの入力操作検出を行う構成であってもよい。
【００５３】
本体部１０は、通信部（クライアント通信手段）１１と、データ記録部（ＦＬＡＳＨメモリ、ＳＤカード）１２と、ＳＤＲＡＭ１３と、ＳＤカード読み書き部１４、ＣＰＵ（新バージョンデータ生成手段、メモリデータ消去手段、データ書き込み手段）１５とを有している。通信部１１は、ネットワーク回線３０との接続を行う役割を有している。通信部１１として、具体的には携帯電話回線（例えば、ＣＤＭＡ（２Ｇ）方式、Ｗ−ＣＤＭＡ（３Ｇ）方式、ＨＳＤＰＳ方式など）を用いるネットワークインターフェース機器などが該当する。通信部１１はＣＰＵ１５の指示（制御命令）に応じて、次述するカーナビゲーションシステム１の情報をサーバ２０に出力し、また、サーバ２０が出力したデータの取得処理を行う。
【００５４】
データ記録部１２には、カーナビゲーションシステム１におけるシステム情報および地図情報が記録されている。データ記録部１２には、ハードディスク、ＳＳＤ（Solid State Drive）、ＦＬＡＳＨメモリ、ＳＤカードなどの一般的な補助記録装置を用いることが可能となっている。本実施の形態に係るカーナビゲーションシステム１では、データ記録部１２として、ＦＬＡＳＨメモリが用いられる場合について説明する。
【００５５】
データ記録部１２には、一般的な補助記録装置と同じように、記録されたデータの記録位置を示すためのアドレスが割り当てられており、このアドレスを参照することによってデータの内容を判断することが可能となっている。特に、本実施の形態に係るデータ記録部１２では、予め規定された容量のアドレス範囲毎に、予め記録対象となるファイルデータの種類（データ構造）が決められている。
【００５６】
例えば、図３（ａ）に示すように、予めファイルデータＡ１（データＡ１）の記録には、アドレス１０００〜２０００のアドレス範囲が確保（規定）されており、ファイルデータＢ（データＢ）の記録には、アドレス００００〜１０００のアドレス範囲が確保（規定）されており、ファイルデータＣ（データＣ）の記録には、アドレス２０００〜３０００のアドレス範囲が確保（規定）されている。このため、図３（ａ）のファイルデータＡ１（データＡ１）の場合のように、確保されたデータ容量（アドレス１０００〜２０００の範囲に該当するデータ容量）よりも、記録されるファイルデータＡ１のデータ量の方が小さい場合には、ファイルデータＡ１の最後のアドレスから確保されたアドレス範囲の最後のアドレスまで（ファイルデータＡ１においては、アドレス２０００まで）のデータ領域に空データ（例えば、Ｎｕｌｌデータ）が記録されるデータ構造となっている。
【００５７】
このため、図３（ｂ）に示すように、ファイルデータＡ１が更新されてファイルデータＡ２（データＡ２）となり、ファイルデータＡ２のデータ量が増えた場合であっても、予め空データ領域を考慮してファイルデータＡ２のアドレス範囲が確保されているため、開始アドレス１０００から終了アドレス２０００までの範囲（アドレス範囲）を変更することなく、ファイルデータＡ１よりもデータ量が増大したファイルデータＡ２にデータを更新することが可能となる。従って、更新されたファイルデータＡ２以外のファイルデータＢ、ファイルデータＣは、開始アドレスおよび終了アドレスを変更する必要がなく、データ記録部１２に記録されていたファイルデータが他のファイルデータの更新に伴って、後のアドレスへとアドレス範囲がずれ込んで変わってしまうことを防止することができる。
【００５８】
また、データ記録部１２に記録されるデータは、４Ｋバイトを１ブロックとし、ＣＰＵ１５によってブロック毎にデータが管理されている。次述する更新差分データによるデータ更新処理において、ＣＰＵ１５は、後述するように、８Ｋバイト単位、あるいは６４Ｋバイト単位でデータの更新処理（書き込み処理）を行う。その詳細については後述する。
【００５９】
なお、本実施の形態に係るデータ記録部１２は、上述したようにＦＬＡＳＨメモリが用いられている。ＦＬＡＳＨメモリは、データを上書き保存することができないため、一度データの消去を行った後に更新されたデータの書き込みを行う必要がある。さらに、ＦＬＡＳＨメモリでは、１バイト単位でデータを消去することができないため、ブロック単位でデータを消去した後に、更新されたデータの書き込みを行う必要がある。
【００６０】
本実施の形態に用いられるＦＬＡＳＨメモリでは、データの消去を８Ｋバイト毎、あるいは６４Ｋバイト毎に行うことが可能となっている。但し、本実施の形態に係るデータ記録部１２では、ＦＬＡＳＨメモリにおける８Ｋバイト分のデータ消去に必要とされる時間と、６４Ｋバイト分のデータ消去に必要とされる時間とを予め記録している。但し、それぞれのデータ消去時間は、ほぼ同じ時間であり、１回の消去処理により消去されるデータ量が８Ｋバイトであっても、６４Ｋバイトであっても、消去時間は変わらないという特性を有している。
【００６１】
また、本実施の形態に用いられるＦＬＡＳＨメモリでは、データの書き込みを１ワード（２バイト）単位で書き込むWord-Program方式と、１６ワード（３２バイト）単位で書き込むWrite Buffer Program方式との２つの書き込みモードを備えている。従来より用いられている差分データの更新処理では、Word-Program方式を利用することが多いが、本実施の形態に係るカーナビゲーションシステム１では、Write Buffer Program方式を採用する。Write Buffer Program方式を採用することによって、Word-Program方式を利用する場合よりも一度に書き込みを行うことができるデータ量が多くなるため、書き込み回数を減らすことができ、書き込み時間をWord-Program方式を採用する場合に比べて４分の１にすることが可能となる。
【００６２】
データ記録部１２には、システム情報、地図情報などのほかに、カーナビゲーションシステム１のＩＤ情報（カーナビゲーションシステム１をそれぞれの機器毎に特定するため情報であって、カーナビゲーションシステム１の製造番号情報や識別番号情報などが該当する）およびデータ記録部１２に記録される地図情報やシステム情報のバージョン情報（このバージョン情報によって、データ記録部１２に記録される地図情報やシステム情報の更新回数、具体的なデータ内容などを、サーバ２０で特定することが可能となる。）が記録されている。
【００６３】
また、データ記録部１２に記録されるシステム情報には、ＣＰＵ１５がカーナビゲーションシステム１における様々な機能を実現するためのプログラムなどが含まれる。プログラムとして、例えば、ＣＰＵ１５が、経路案内を行うためのプログラムや、データ記録部１２に記録される情報を更新するためのデータ更新処理用のプログラム（例えば、図６においてフローチャートで示されたプログラム）などが該当する。ＣＰＵ１５は、データ記録部１２に記録されるプログラムに基づいて、カーナビゲーションシステム１における様々な処理を実行する。
【００６４】
ＳＤＲＡＭ１３は、更新差分データの更新処理を行う際に利用されるワークエリアである。ＳＤＲＡＭ１３のデータ容量は、データ記録部１２よりも小容量となっている。本実施の形態に係るデータ記録部１２では、ＦＬＡＳＨメモリが用いられているため、更新対象となるＦＬＡＳＨメモリのデータ領域のデータを一時的にＳＤＲＡＭに記録し、記録されたＳＤＲＡＭのデータを更新差分データに基づいて新たなデータ（更新データ）に変更する。その後、ＣＰＵ１５が、ＦＬＡＳＨメモリの該当データ領域を所定のブロック単位で消去した後に、ＳＤＲＡＭに記録される新たなデータをＦＬＡＳＨメモリに書き込むことによって、データ記録部１２のデータ更新が行われることになる。
【００６５】
ＳＤカード読み書き部１４は、ＳＤカードに記録されるデータの読み取りおよび書き込みを行う役割を有している。具体的に、ＳＤカード読み書き部１４は、データ記録部１２のシステム情報または地図情報をファイルデータ毎に、あるいはデータ記録部１２の全データを更新する場合に、更新データの記録されたＳＤカードから必要とされる更新データを読み出す処理を行う。ＳＤカード読み書き部１４では、ＣＰＵ１５の指示（制御命令）に基づいて、ＳＤカードにアクセスして必要な更新データを読み出し、ＣＰＵ１５では、ＳＤカード読み書き部１４によって読み出された更新データに基づいて、データ記録部１２のデータを更新する処理を行う。なお、ＳＤカード読み書き部１４は、ＳＤカードの情報を読み出すだけでなく、必要に応じて情報を書き込むことも可能となっている。さらに、ＳＤカード読み書き部１４の利用は、ＳＤカードからシステム情報または地図情報を読み出してデータ記録部１２を更新する場合だけには限定されない。例えば、ＳＤカードに記録される音楽データを読み取って、車載スピーカから出力させたり、あるいは、ＳＤカードに記録される映像や画像を読み出してディスプレイ部５に表示させることにも利用可能である。
【００６６】
ＣＰＵ１５は、データ記録部１２に記録されるプログラムに従って、経路案内処理を行ったり、データ記録部１２のデータを更新する処理を行ったりする役割を有している。ＣＰＵ１５が経路案内処理を行う場合には、図示を省略したＧＰＳアンテナを介して車両の現在位置を取得し、さらに図示を省略したジャイロや車速パルス検出器を介して、車両の走行状態（進行方向、移動速度など）を取得する。そしてＣＰＵ１５は、車両２の現在位置および走行状態に基づいて地図情報をディスプレイ部５に表示させて、必要に応じて音声情報により走行経路や交差点名などの案内を行う。ＣＰＵ１５が、データ記録部１２のデータを更新する処理については後述する。
【００６７】
なお、ＣＰＵ１５の処理内容を示したプログラムは、必ずしもデータ記録部１２に記録されるものには限定されない。例えば、データ記録部１２とは別にプログラムを記録したＲＯＭなどを用意し、このＲＯＭに記録されるプログラムをカーナビゲーションシステム１の起動時にＣＰＵ１５が読み込んで実行することにより、システムの起動処理を行うことが可能である。さらに、ＣＰＵ１５には、図示を省略したＲＡＭなどを備えており、ＲＡＭをプログラム処理におけるワークエリアとして利用する。
【００６８】
［サーバ２０について］
続いて、サーバ２０について説明する。図４は、サーバ２０の概略構成を示したブロック図である。サーバ２０は、通信部（サーバ通信手段）２１と、更新情報記録部（更新情報記録手段）２２と、サーバ用ＣＰＵ（更新差分データ作成手段）２３と、ＲＯＭ２４と、ＲＡＭ２５とを備えている。
【００６９】
通信部２１は、ネットワーク回線３０との接続を行う役割を有している。具体的には、有線通信あるいは無線通信を用いてネットワーク回線３０に接続し、サーバ用ＣＰＵ２３の指示（制御命令）に応じて、カーナビゲーションシステム１のＩＤ情報およびバージョン情報を取得し、また、更新差分データをカーナビゲーションシステム１へ出力する。通信部２１として、例えば、一般的なＮＩＣ（ネットワーク・インターフェース・カード）などが該当する。
【００７０】
更新情報記録部２２は、ハードディスク、ＳＳＤなどの一般的な補助記録装置により構成されている。更新情報記録部２２には、カーナビゲーションシステム１のハード構成と、様々なバージョンの更新データ（部分的な更新データではなく全体の更新データ）とが記録されている。例えば、カーナビゲーションシステム１は、ハード構成に応じて実現可能な機能などが異なっており、またハード構成に基づく機能に応じて、データ記録部１２のデータ構造が異なっている。このため、サーバ用ＣＰＵ２３は、通信部２１を介して取得したカーナビゲーションシステム１のＩＤ情報に基づいて、データ記録部１２のデータ構造を判断する。上述したように、データ記録部１２には、予め規定された容量のアドレス範囲毎に、記録されるファイルデータのデータ構造が決められている。このため、サーバ用ＣＰＵ２３は、ＩＤ情報によりハード構成を特定することによって、データ記録部１２に記録されるファイルデータの種類（内容、役割）およびその開始アドレスから終了アドレスまでの範囲（アドレス範囲）を把握することが可能となる。
【００７１】
また、更新情報記録部２２には、データ記録部１２に記録され得る様々なバージョンのデータが記録されている。サーバ用ＣＰＵ２３は、カーナビゲーションシステム１からバージョン情報を取得することによって、ＩＤ情報により特定されるハード構成における該当するバージョン情報のデータ内容と、最新の更新データのデータ内容とを判断することが可能になっている。このため、サーバ用ＣＰＵ２３では、取得された異なるバージョンのデータ内容に基づいて、データ記録部１２のデータ更新を行うための更新差分データの作成を行うことが可能になっている。
【００７２】
ＲＯＭ２４は、サーバ用ＣＰＵ２３において差分データの作成処理を行うためのプログラム（例えば、図７においてフローチャートで示されたプログラム）が記録されている。サーバ用ＣＰＵ２３は、ＲＯＭ２４に記録されるプログラムに基づいて、後述する更新差分データの作成を行う。また、ＲＡＭ２５は、サーバ用ＣＰＵ２３における更新差分データの作成処理においてワークエリアとして利用される。
【００７３】
［データ更新処理について］
次に、カーナビゲーションシステム１およびサーバ２０におけるデータ更新処理について説明する。なお、データ更新処理の説明を行うに当たって、カーナビゲーションシステム１のＳＤカード読み書き部１４には、データを読み出し可能な状態で予めＳＤカードがセットされており、このＳＤカードには、最新バージョンのデータが記録されているものとする。
【００７４】
図５は、カーナビゲーションシステム１とサーバ２０との間の情報の送受信を示したタイミングチャートである。また、図６は、カーナビゲーションシステム１におけるデータ更新処理を示したフローチャートを示し、図７は、サーバ２０におけるデータ更新処理を示したフローチャートを示している。
【００７５】
まず、カーナビゲーションシステム１のＣＰＵ１５は、サーバ２０のサーバ用ＣＰＵ２３に対して、ＩＤ情報とバージョン情報とを出力する（ステップＳ．１）。ＣＰＵ１５は、ＩＤ情報とバージョン情報とをサーバ用ＣＰＵ２３に出力することにより、サーバ２０に対して新しい更新データが存在するかどうか（データ記録部１２に記録されるシステム情報および地図情報が最新バージョンの情報であるか否か）の確認を行う。その後、ＣＰＵ１５は、送信した情報に対応する返信情報をサーバ用ＣＰＵ２３から受信したか否かの判断を行い（ステップＳ．２）、返信情報を受信していない場合（ステップＳ．２においてＮｏの場合）には、返信情報を取得するまで、同じ処理を繰り返し実行する。
【００７６】
なお、返信情報とは、サーバ用ＣＰＵ２３が、ＩＤ情報およびバージョン情報に基づいてデータの更新処理を行うか否かの判断を行った結果の情報であって、後述するように、更新を必要とする情報が存在しない旨の情報か、ファイルデータ単位で更新が必要とされる旨の情報か、８Ｋバイト単位または６４Ｋバイト単位の更新差分データかのいずれかが該当する。
【００７７】
一方で、サーバ用ＣＰＵ２３では、ネットワーク回線３０を介して、いずれのカーナビゲーションシステム１のＣＰＵ１５から、ＩＤ情報とバージョン情報とを受信したか否かの判断を行い（ステップＳ．３１）、ＩＤ情報とバージョン情報とを受信するまで、同じ処理を繰り返す（ステップＳ．３１においてＮｏの場合にステップＳ．３１の受信判断処理を繰り返し実行する）。
【００７８】
そして、サーバ用ＣＰＵ２３が、ＩＤ情報とバージョン情報とを受信した場合（ステップＳ．３１においてＹｅｓの場合）、ＩＤ情報に基づいて、情報の送信元であるカーナビゲーションシステム１を特定し、データ記録部１２のデータ構造を判断する（ステップＳ．３２）。次いで、サーバ用ＣＰＵ２３は、判断されたデータ記録部１２のデータ構造に対応するシステム情報および地図情報であって、最新のバージョンの情報と受信したバージョン情報に基づく情報とを更新情報記録部２２から読み出して、データの相違点を抽出する（ステップＳ．３３）。
【００７９】
そして、サーバ用ＣＰＵ２３は、双方の情報においてデータの相違点が存在するか否かを判断し（ステップＳ．３４）、相違点が存在しない場合（ステップＳ．３４においてＮｏの場合）には、カーナビゲーションシステム１に対して、最新バージョンの情報がデータ記録部１２に記録されているため、更新を必要とする情報が存在しない旨の情報を、カーナビゲーションシステム１のＣＰＵ１５に対して出力し（ステップＳ．３５）、データ更新処理を終了する。
【００８０】
一方で、データの相違点が存在する場合（ステップＳ．３４においてＹｅｓ場合）、サーバ用ＣＰＵ２３は、まず、ファイルデータ単位で更新を行う必要が生ずるほどの相違が存在するか否かを判断し（ステップＳ．３６）、ファイルデータ単位で更新を必要とする場合（ステップＳ．３６においてＹｅｓの場合）には、該当するアドレスと、そのデータ量とを抽出して、一時的に更新情報記録部２２に記録する（ステップＳ．３７）。
【００８１】
ここで、ファイルデータ単位で更新を必要とする場合とは、例えば、ファイルデータのデータ量が増減した場合などが該当する。上述したように、カーナビゲーションシステム１のデータ記録部１２では、予め規定された容量のアドレス範囲毎に、予め記録されるファイルデータのデータ構造が決められている。このため、図３で説明したように、古いバージョンのファイルデータ（例えば、図３（ａ）に示すデータＡ１）に比べて、新しいバージョンのファイルデータ（例えば、図３（ｂ）に示すデータＡ２）の方が、データ量が増えた場合（あるいは減った場合）には、該当するアドレスを基準として、古いファイルデータを新しいファイルデータに更新する処理を行う必要が生ずる。このような場合、サーバ用ＣＰＵ２３は、データの相違点に基づいて、ファイルデータ単位で更新を行う必要があると判断し、該当するアドレスとデータ量とを更新情報記録部２２に記録する。
【００８２】
ファイルデータ単位で更新を必要としない場合（ステップＳ．３６においてＮｏの場合）、または、ファイルデータ単位で更新を行うためのアドレスと、そのデータ量とを抽出した後（ステップＳ．３７）に、サーバ用ＣＰＵ２３は、データの相違点が存在する位置（アドレス）とその相違するデータの連続性などを考慮して、更新差分データを作成する必要があるか否かの判断を行う（ステップＳ．３８）。例えば、ファイルデータの全体のデータ量が増減した場合には、ファイルデータ全体が更新対象となるため、更新差分データを作成する必要がないと判断される。一方で、ファイルデータの全体のデータ量は増減しないが、ファイルデータ内の一部のデータだけを更新する必要がある場合には、この一部の更新対象のデータに基づいて更新差分データを作成する必要があると判断する。
【００８３】
そして、更新差分データを作成する必要があると判断した場合（ステップＳ．３８においてＹｅｓの場合）、サーバ用ＣＰＵ２３は、相違するデータを８Ｋバイト単位で抽出して更新差分データを作成するか否か（具体的には、８Ｋバイトを基準とする更新差分データを作成するか、６４Ｋバイトを基準とする更新差分データを作成するか否か）の判断処理を行う（ステップＳ．３９）。ここで抽出された相違するデータを相違データという。
【００８４】
ここで、カーナビゲーションシステム１のデータ記録部１２は、ＦＬＡＳＨメモリにより構成されている。このため、ＦＬＡＳＨメモリに記録されるデータを更新する場合には、まず、消去対象となるアドレスのデータを消去する必要がある。このデータの消去は、８Ｋバイト毎、あるいは６４Ｋバイト毎に行うことができるので、８Ｋバイト単位で相違データを抽出して更新差分データを作成する場合には、８Ｋバイトのデータを消去した後に、新しい更新データを８Ｋバイトだけ書き込みする処理を行い、６４Ｋバイト単位で相違データを抽出して更新差分データを作成する場合には、６４Ｋバイトのデータを消去した後に、新しい更新データを６４Ｋバイトだけ書き込みする処理を行う。
【００８５】
サーバ用ＣＰＵ２３が、更新差分データにおける相違データの抽出基準を、８Ｋバイト単位とするのか６４Ｋバイト単位とするのかによって、データ記録部１２のデータ更新に必要とされる時間が異なってくる。具体的には、データ記録部１２において、相違データの抽出を行うデータ容量（このデータ容量をブロックサイズとする）を小さくすると、相違データに基づくデータの書き換え量を削減することができるため、データの書き込み時間を短縮することができる。つまり、８Ｋバイトをブロックサイズとして更新処理を行う方が、６４Ｋバイトをブロックサイズとして更新処理を行うよりもデータの書き換え量を削減でき、データの書き込み時間を短縮することができる。
【００８６】
しかしながら、上述したようにＦＬＡＳＨメモリにおいてデータの更新を行う場合に、ＦＬＡＳＨメモリの消去処理を行った後にデータの書き込み処理を行う必要があり、この消去処理に必要とされる時間は、８Ｋバイトをブロックサイズとして消去する場合であっても、６４Ｋバイトをブロックサイズとして消去する場合であっても、同じ時間が必要とされる。このため、ブロックサイズを小さくすると、ＦＬＡＨメモリにおける書き換えブロック数が増え、この書き換えブロック数の増加に伴ってデータの消去回数が増えるため、結果としてブロックサイズが大きい場合に比べて長い消去時間が必要になってしまうという問題があった。
【００８７】
サーバ用ＣＰＵ２３は、８Ｋバイトを基準としたブロックサイズ毎に相違点の存在を判断する場合のブロック数（以下、データの内容が相違するために更新する必要のあるブロックを差分ブロックといい、そのブロックの数を差分ブロック数とする）と、６４Ｋバイトを基準としたブロックサイズ毎に相違点の存在を判断する場合のブロック数とを求めて、次の式１が成り立つか否かの判断を行う。
【００８８】
BN_8KB×(T_se＋(T_bp×8×1024／WS))
＜BN_64KB×(T_be＋(T_bp×64×1024／WS))    ・・・式１
ここで、
BN_8KBは、ブロックサイズを８Ｋバイトにした場合の更新差分データの差分ブロック数
BN_64KBは、ブロックサイズを６４Ｋバイトにした場合の更新差分データの差分ブロック数
T_seは、ＦＬＡＳＨメモリの８Ｋバイト分のデータを消去するために必要とされる時間
T_beは、ＦＬＡＳＨメモリの６４Ｋバイト分のデータを消去するために必要とされる時間
T_bpは、ＦＬＡＳＨメモリにおける１ワード分のデータの書き込み時間（より詳細には、ＦＬＡＳＨメモリのバッファプログラミングモードのワードプログラミング時間）
WSは、ＦＬＡＳＨメモリの１ワード当たりのバイト数（データ記録部１２の場合には２バイト）
を示している。
【００８９】
T_se、T_be、T_bpは、全てＦＬＡＳＨメモリに依存するデータであるため、サーバ２０の更新情報記録部２２に、予めデータ記録部１２のＦＬＡＳＨメモリに関するT_se、T_be、T_bpを記録させておくことができる。従って、サーバ用ＣＰＵ２３は、ＩＤ情報に基づいてカーナビゲーションシステム１のハード構成を判断する際に、該当するＦＬＡＳＨメモリ（データ記録部１２の）のT_se、T_be、T_bpを、更新情報記録部２２に記録されるデータに基づいて求めることができる。
【００９０】
さらに、ＷＳは２バイトであり、BN_8KBとBN_64KBとは、相違データの抽出に伴って求めることができる。このため、サーバ用ＣＰＵ２３が式１のそれぞれに該当する値を代入しすることにより、式１が成り立つか否かの判断を行うことが可能となる。
【００９１】
なお、式１におけるT_seは、ＦＬＡＳＨメモリにおける８Ｋバイト分のデータの消去処理時間、(T_bp×8×1024／WS)は、ＦＬＡＳＨメモリにおける８Ｋバイト分のデータの書き込み処理時間、T_beは、ＦＬＡＳＨメモリにおける６４Ｋバイト分のデータの消去処理時間、(T_bp×64×1024／WS)は、ＦＬＡＳＨメモリにおける６４Ｋバイト分のデータの書き込み処理時間を示している。従って、式１は、ブロックサイズの相違に基づくデータの消去時間と書き込み時間との総和を比較したものに該当し、式１が成立する場合には、８Ｋバイトを基準としてデータ更新処理を行う方が、６４Ｋバイトを基準としてデータ更新処理を行うよりも処理時間が短縮され、式１が成立しない場合には、６４Ｋバイトを基準としてデータ更新処理を行う方が、８Ｋバイトを基準としてデータ更新処理を行うよりも処理時間が短縮されると判断することができる。
【００９２】
式１が成立する場合（ステップＳ．３９においてＹｅｓの場合）、サーバ用ＣＰＵ２３は、８Ｋバイト単位で相違データを抽出して更新差分データを作成し（ステップＳ．４０）、式１が成立しない場合（ステップＳ．３９においてＮｏの場合）には、６４Ｋバイト単位で相違データを抽出して更新差分データを作成して（ステップＳ．４１）、更新情報記録部２２に一時的に記録する。
【００９３】
図８は、更新差分データを作成する手順を説明するための図面である。
【００９４】
データ記録部１２に記録される旧バージョンのデータをold/rom1.binで示し、最新バージョンのデータをnew/rom1.binとする。それぞれのデータは、上述したように８Ｋバイトあるいは６４Ｋバイトをブロックサイズとした単位ブロック毎に分割されている。サーバ用ＣＰＵ２３は、このブロックサイズ毎にデータの相違点の有無を判断し、一部のデータであっても相違点が存在する場合には、該当する単位ブロック毎のアドレスを検出する。図８（ａ）には、アドレス０００１で示される単位ブロックの一部において相違点（old/rom1.binにおける「０２」とnew/rom1.binにおける「ｆｆ」）が存在し、また、アドレス０００２で示される単位ブロックの一部において相違点（old/rom1.binにおける「０ａ」とnew/rom1.binにおける「００」）が存在する場合が示されている。
【００９５】
サーバ用ＣＰＵ２３は、図８（ｂ）に示すように、該当する単位ブロックのアドレス０００１、０００２を抽出し、該当するアドレスの単位ブロック間において、旧バージョンのデータ（old/0001.rom1、old/0002.rom1）と最新バージョンのデータ（new/0001.rom1、new/0002.rom1）との差分をとって、図８（ｃ）に示すように、更新差分データ（pat/rom1.pat）を作成する。更新差分データには、相違点が存在したアドレスとそのデータ内容とが記録されることになる。この更新差分データは、パッチファイルとして作成され、相違データがブロックサイズで抽出された更新差分データとそのアドレスとが記録されるため、全体的なデータ量を低減させることが可能となる。
【００９６】
なお、サーバ用ＣＰＵ２３が更新差分データを作成する方法は、上述した方法だけには限定されない。例えば、図８（ｂ）に示すように、アドレス０００１で示される単位ブロックの一部と、アドレス０００２で示される単位ブロックの一部において相違点が存在する場合に、サーバ用ＣＰＵ２３が、該当する単位ブロックのアドレス０００１、０００２のブロックデータを結合して新たなファイルを作成し、さらに、差分のあるブロックに関するアドレス一覧ファイルを作成するものであってもよい。
【００９７】
その後、サーバ用ＣＰＵ２３は、全てのアドレス（ファイルデータを構成し得る全てのアドレス範囲）に対して、上述したステップＳ．３６〜Ｓ．４１の更新確認処理が行われたか否かを判断し（ステップＳ．４２）、全てのアドレスに対してステップＳ．３６〜Ｓ．４１の処理が行われるまで（ステップＳ．４２においてＹｅｓになるまで）、ステップＳ．３６〜Ｓ．４１の処理を繰り返す。
【００９８】
そして、サーバ用ＣＰＵ２３は、全てのアドレスにおいて、データの相違点を抽出して、ステップＳ．３６〜Ｓ．４１の処理が行われたものと判断した場合（ステップＳ．４２においてＹｅｓの場合）に、作成された８Ｋバイト単位あるいは６４Ｋバイト単位の更新差分データ・ファイルデータ単位で更新が必要とされる旨の情報などを、一時的に記録されていた更新情報記録部２２から読み出して、カーナビゲーションシステム１のＣＰＵ１５に対して出力する（ステップＳ．４３）。
【００９９】
ＣＰＵ１５では、返信情報を受信した場合（ステップＳ．２においてＹｅｓの場合）、返信情報が、更新を必要とする情報が存在しない旨の情報であるか否かの判断を行う（ステップＳ．３）。返信情報が更新を必要とする情報が存在しない旨の情報である場合（ステップＳ．３においてＹｅｓの場合）、ＣＰＵ１５は、データ記録部１２のデータ更新処理を終了する。
【０１００】
一方で、返信情報が、更新を必要とする情報が存在しない旨の情報ではない場合（ステップＳ．３においてＮｏの場合）、ＣＰＵ１５は、返信情報にファイルデータ単位で更新が必要とされる旨の情報が含まれているか否かの判断を行う（ステップＳ．４）。返信情報にファイルデータ単位で更新が必要とされる旨の情報が含まれている場合（ステップＳ．４においてＹｅｓの場合）、ＣＰＵ１５は、該当する情報から更新を行うアドレス情報とデータ量の情報とを取得する。そして、ＣＰＵ１５は、該当するアドレスのデータをＳＤカード読み書き部１４を介してＳＤカードから読み出して、データ記録部１２に記録される情報を更新する処理を行う（ステップＳ．５）。
【０１０１】
本実施の形態に係るカーナビゲーションシステム１のデータ記録部１２は、ＦＬＡＳＨメモリであるため、ＦＬＡＳＨメモリの消去を行った後でなければ、データの書き込みを行うことができない。そのため、データ記録部１２に記載される情報の更新は、
（１）ＳＤカードに記録されるファイルデータ単位の情報を、サーバ用ＣＰＵ２３より取得したアドレス情報とデータ量とに基づいて読み出す。
（２）ＳＤカードより読み出した情報をＳＤＲＡＭ１３に一時的に記録する。
（３）データ記録部１２においてデータの更新対象となるアドレスを、サーバ用ＣＰＵ２３より取得したアドレス情報に基づいて判断し、当該アドレスから取得したデータ量に対応するデータ量だけデータを消去する。
（４）ＳＤＲＡＭ１３に記録された情報を読み出して、消去されたデータ記録部１２に記録する。
【０１０２】
という４つのステップを経て、データの更新が行われる。この処理により、予め規定された容量のアドレス範囲に対応するようにして、更新対象となるファイルデータの更新処理が行われることになる。
【０１０３】
返信情報にファイルデータ単位で更新が必要とされる旨の情報が含まれていない場合（ステップＳ．４においてＮｏの場合）、あるいは、ファイルデータ単位でのデータの更新処理を行った場合（ステップＳ．５）に、ＣＰＵ１５は、返信情報に８Ｋバイト単位の更新差分データが含まれているか否かの判断を行う（ステップＳ．６）。
【０１０４】
返信情報に８Ｋバイト単位の更新差分データが含まれている場合（ステップＳ．６においてＹｅｓの場合）、ＣＰＵ１５は、更新差分データに基づいて８Ｋバイト単位でのデータ更新処理を行う（ステップＳ．７）。
【０１０５】
具体的にＣＰＵ１５では、次の５つの処理を経てデータの更新処理を行う。
（１）ＣＰＵ１５が、更新差分データより更新対象となるデータ記録部１２のアドレス情報を抽出する。
（２）ＣＰＵ１５が、抽出したアドレスから８Ｋバイト分の情報をデータ記録部１２より読み出して、ＳＤＲＡＭ１３に一時的に記録する。
（３）ＣＰＵ１５が、更新差分データに記録される更新対象となる差分のデータを抽出し、ＳＤＲＡＭ１３に記録されたデータ記録部１２の情報のうち、差分のデータだけを更新することにより更新後のデータを作成して、ＳＤＲＡＭ１３に記録する
（４）ＣＰＵ１５は、更新対象となるデータ記録部１２の情報を、サーバ用ＣＰＵ２３より取得したアドレスに基づいて８Ｋバイト分だけ消去する。
（５）ＣＰＵ１５が、ＳＤＲＡＭ１３に記録される更新後のデータ（８Ｋバイト分のデータ）を読み出して、消去されたデータ記録部１２の８Ｋバイト分のスペースに書き込みを行う。
このように、ＣＰＵ１５が上述した５つの処理を実行することにより、データ記録部１２のデータが８Ｋバイトを基準として更新される。
【０１０６】
返信情報に８Ｋバイト単位の更新差分データが含まれていない場合（ステップＳ．６においてＮｏの場合）、あるいは、８Ｋバイト単位の更新差分データを用いてデータの更新処理を行った場合（ステップＳ．７）に、ＣＰＵ１５は、返信情報に６４Ｋバイト単位の更新差分データが含まれているか否かの判断を行う（ステップＳ．８）。
【０１０７】
返信情報に６４Ｋバイト単位の更新差分データが含まれている場合（ステップＳ．８においてＹｅｓの場合）、ＣＰＵ１５は、更新差分データに基づいて、６４Ｋバイト単位でのデータ更新処理を行う（ステップＳ．９）。
【０１０８】
具体的にＣＰＵ１５では、次の５つの処理を経てデータの更新処理を行う。
（１）ＣＰＵ１５が、更新差分データより更新対象となるデータ記録部１２のアドレス情報を抽出する。
（２）ＣＰＵ１５が、抽出したアドレスから６４Ｋバイト分の情報をデータ記録部１２より読み出して、ＳＤＲＡＭ１３に一時的に記録する。
（３）ＣＰＵ１５が、更新差分データに記録された更新対象となる差分のデータを抽出し、ＳＤＲＡＭ１３に記録されたデータ記録部１２の情報のうち、差分のデータだけを更新することにより更新後のデータを作成して、ＳＤＲＡＭ１３に記録する
（４）ＣＰＵ１５は、更新対象となるデータ記録部１２の情報を、サーバ用ＣＰＵ２３より取得したアドレスに基づいて６４Ｋバイト分だけ消去する。
（５）ＣＰＵ１５が、ＳＤＲＡＭ１３に記録される更新後のデータ（６４Ｋバイト分のデータ）を読み出して、消去されたデータ記録部１２の６４Ｋバイト分のスペースに書き込みを行う。
このように、ＣＰＵ１５が上述した５つの処理を実行することにより、データ記録部１２のデータが６４Ｋバイトを基準としデータの更新が実行されることになる。
【０１０９】
返信情報に６４Ｋバイト単位の更新差分データが含まれていない場合（ステップＳ．８においてＮｏの場合）、あるいは、６４Ｋバイト単位の更新差分データを用いてデータの更新処理を行った場合（ステップＳ．９）に、ＣＰＵ１５は、サーバ用ＣＰＵ２３より取得した更新に関する情報に基づいて、更新対象となる全ての情報を更新したか否かの判断を行い（ステップＳ．１０）、全ての情報の更新が完了していない場合（ステップＳ．１０においてＮｏの場合）には、上述した処理（ステップＳ．４〜ステップＳ．９）の処理を繰り返し実行する。一方で、全ての情報の更新が完了した場合（ステップＳ．１０においてＹｅｓの場合）、ＣＰＵ１５は、更新が完了した旨の情報を、ネットワーク回線３０を介してサーバ用ＣＰＵ２３に出力して（ステップＳ．１１）、データ記録部１２のデータ更新処理を終了する。
【０１１０】
サーバ用ＣＰＵ２３では、ＣＰＵ１５から更新が完了した旨の情報が受信されたか否かの判断を行い（ステップＳ．４４）、情報が受信されない場合（ステップＳ．４４においてＮｏの場合）には、受信判断処理（ステップＳ．４４）を繰り返し実行する。
【０１１１】
なお、通信回線のトラブルなどによってＣＰＵ１５から更新が完了した旨の情報が受信できない場合や、更新が失敗して完了した旨の情報が受信されない場合もあり得るため、完了した旨の情報が受信されたか否かの判断処理においてタイマー設定を行い、ステップＳ．４３による情報の送信後に、一定期間経過しても更新が完了した旨の情報が受信されない場合に、サーバ用ＣＰＵ２３が更新処理を強制的に終了するようにしてもよい。
【０１１２】
更新が完了した旨の情報を受信した場合（ステップＳ．４４においてＹｅｓの場合）、サーバ用ＣＰＵ２３は、更新情報記録部２２に記録されるデータ記録部１２のバージョン情報を、最新の情報に更新して（ステップＳ．４５）、カーナビゲーションシステム１のデータ記録部１２における更新処理を終了する。
【０１１３】
このように、本実施の形態に係るサーバ２０では、カーナビゲーションシステム１に関するバージョン情報とハード情報とを取得することにより、カーナビゲーションシステム１のデータ記録部１２において更新処理が必要であるか否かの判断を行うことができる。またデータの更新処理が必要であると判断された場合には、必要なアドレスおよびデータ量を求めて、ファイルデータ単位でＳＤカードより読み出したデータに基づいてデータ記録部１２の更新処理を行うか、サーバ２０より送信する更新差分データに基づいてデータ記録部１２の更新処理を行うかの判断を行うことができる。
【０１１４】
さらに、更新差分データを作成する場合においても、更新対象となるデータ記録部１２のハードウェア特性（具体的には、ＦＬＡＳＨメモリの消去可能なデータ容量（ブロックサイズ））を考慮して、式１を基準に、
BN_8KB×(T_se＋(T_bp×8×1024／WS))
＜BN_64KB×(T_be＋(T_bp×64×1024／WS))    ・・・式１
８Ｋバイトを基準とした更新差分データを作成するか、６４Ｋバイトを基準とした更新差分データを作成するかの判断を行う。式１におけるT_se、T_be、T_bpは、全てＦＬＡＳＨメモリに依存するデータであるため、データ記録部１２のＦＬＡＳＨメモリに関するT_se、T_be、T_bpを予めサーバ２０で記録しておくことにより、データの更新処理において更新時間を短くすることが可能な形式（８Ｋバイトまたは６４Ｋバイト）で更新差分データを作成することができる。
【０１１５】
このため、カーナビゲーションシステム１において更新処理を行う場合に最も更新処理の時間を短縮可能な形式の更新差分データを用いて、データ記録部１２のデータを更新することができるので、送信データ量の低減と共に、更新時間の短縮化を図ることが可能となる。
【０１１６】
以上、本発明に係る更新差分データ作成装置について説明を行ったが、本発明に係る更新差分データ作成装置は上述した実施の形態には限定されない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【０１１７】
例えば、本実施の形態に係るカーナビゲーションシステム１では、データ記録部１２としてＦＬＡＳＨメモリを用いた場合について説明を行った。しかしながら、近時のカーナビゲーションシステムでは、地図情報やシステム情報を記録する記録媒体として、ＳＤカードを用いる機器も存在している。
【０１１８】
ＳＤカードもＦＬＡＳＨメモリの一種であり、データの書き込みを行う前に古いデータを消去してから、新たなデータの書き込みを行う必要がある点でＦＬＡＳＨメモリと共通する性質を有している。このため、ＳＤカードにおいても１回毎の消去処理で消去可能なデータ容量をブロックサイズとして定義することができる。
【０１１９】
また、ＳＤカードには、データの更新（消去・読み込み・書き込み）制御を行うためのコントローラが予め設けられており、このコントローラによってデータの消去、読み込み・書き込みが行われることになる。但し、データの更新を行うためのブロックサイズが異なると、同じＳＤカードであっても、データ更新の処理時間が異なっていた。
【０１２０】
このため、サーバ用ＣＰＵ２３において、ＳＤカード毎に最適なブロックサイズを求めて、求められたブロックサイズ単位で更新差分データを作成することにより、ＳＤカードにおけるデータ更新処理時間の短縮化を図ることが可能となる。
【０１２１】
まず、サーバ用ＣＰＵ２３は、データ記録部１２としてＳＤカードが使用された場合に、式２に示された値が最小になるように更新データのブロックサイズを決定する。
Ｄ（ＢＳ）／（Ｗｔｈ（ＢＳ）＋Ｒｔｈ（ＢＳ）＋Ｐｔｈ（ＢＳ））・・・式２
【０１２２】
ここで、
ＢＳは、更新差分データのブロックサイズを示し、
Ｄ（ＢＳ）は、書き換えデータ量を示し、
Ｗｔｈ（ＢＳ）は、ＳＤカードにおける書き込みスループットを示し、
Ｒｔｈ（ＢＳ）は、ＳＤカードにおける読み込みスループットを示し、
Ｐｔｈ（ＢＳ）は、更新差分データに基づいて更新用の新しいデータを作成するパッチ処理のスループット（パッチ処理スループット）を示している。
【０１２３】
なお、書き込みスループットとは、単位時間当たりに書き込みを行うことが可能なデータのブロックサイズ数を示し、ブロックサイズとして設定されるバイト数に応じて値が変化し、また、ＳＤカードのハード特性に応じて値が異なるという性質を有している。
【０１２４】
また、読み込みスループットとは、単位時間当たりに読み込みを行うことが可能なデータのブロックサイズ数を示し、ブロックサイズとして設定されるバイト数に応じて値が変化し、また、ＳＤカードのハード特性に応じて値が異なるという性質を有している。
【０１２５】
さらに、パッチ処理のスループットとは、ＳＤカードに記録されている古いバージョンのデータと更新差分データとに基づいて新しいバージョンのデータを作成する場合において、単位時間当たりに新しいバーションのデータを作成することが可能なブロックサイズ数を示し、パッチ処理に利用されるＳＤＲＡＭ１３とＳＤカードとの間のメモリコピー・スループットに近似した値を示す。
【０１２６】
書き換えデータ量Ｄ（ＢＳ）は、古いバージョンのデータと新しいバージョンのデータとの相違するデータにより求められるものである。また、Ｗｔｈ（ＢＳ）、Ｒｔｈ（ＢＳ）、Ｐｔｈ（ＢＳ）は、予めデータ記録部１２のハードウェア特性に応じて求めておくことにより、更新情報記録部２２に記録させておくことが可能である。
【０１２７】
但し、Ｗｔｈ（ＢＳ）、Ｒｔｈ（ＢＳ）、Ｐｔｈ（ＢＳ）の値は、更新差分データのブロックサイズ（ＢＳ）に応じて値が変化するため、サーバ用ＣＰＵ２３は、更新情報記録部２２に予め記録されるデータ記録部１２のハードウェア毎のＷｔｈ（ＢＳ）、Ｒｔｈ（ＢＳ）、Ｐｔｈ（ＢＳ）のデータに基づいて、式２の値を算出する処理を行う。
【０１２８】
なお、ＳＤカードにおけるデータの更新処理時間は、（１）書き込み時間、（２）読み込み時間、（３）パッチ処理時間との和により求めることができる。従って、ＳＤカードにおける書き込みスループット（Ｗｔｈ（ＢＳ））と、ＳＤカードにおける読み込みスループット（Ｒｔｈ（ＢＳ））と、パッチ処理のスループット（Ｐｔｈ（ＢＳ））とを共に高めることが可能な、ブロックサイズ（ＢＳ）を求めることにより、書き換えデータ量Ｄに対して効率的な書き込み処理、読み込み処理、パッチ処理を行うことが可能となり、結果として、データの更新処理時間の低減を図ることが可能となる。
【０１２９】
このようにしてサーバ用ＣＰＵ２３において、更新差分データのブロックサイズ（ＢＳ）を求めて、このブロックサイズに基づく更新差分データを作成し、作成された更新差分データを用いてＳＤカードのコントローラがＳＤカードに記録されるデータの更新処理を行うことにより、ＳＤカードにおけるデータの更新処理時間を従来よりも短くすることが可能となる。さらに、式２において最小となるブロックサイズを用いて更新差分データを作成し、ネットワーク回線３０を介してカーナビゲーションシステム１へと送信するため、送信データ量の低減を図ることが可能となる。
【符号の説明】
【０１３０】
１     …カーナビゲーションシステム（クライアント）
２     …車両
５     …ディスプレイ部
６     …タッチパネル部
１０   …（カーナビゲーションシステムの）本体部
１１   …（カーナビゲーションシステムの）通信部（クライアント通信手段）
１２   …データ記録部（ＦＬＡＳＨメモリ、ＳＤカード）
１３   …ＳＤＲＡＭ
１４   …ＳＤカード読み書き部
１５   …（カーナビゲーションシステムの）ＣＰＵ（新バージョンデータ生成手段、メモリデータ消去手段、データ書き込み手段）
２０   …サーバ（更新差分データ作成装置、サーバ）
２１   …（サーバ用の）通信部（サーバ通信手段）
２２   …更新情報記録部（更新情報記録手段）
２３   …サーバ用ＣＰＵ（更新差分データ作成手段）
２４   …（サーバ用の）ＲＯＭ
２５   …（サーバ用の）ＲＡＭ
３０   …ネットワーク回線
【図１】
0005653259.tif 000002
【図２】
0005653259.tif 000003
【図３】
0005653259.tif 000004
【図４】
0005653259.tif 000005
【図５】
0005653259.tif 000006
【図６】
0005653259.tif 000007
【図７】
0005653259.tif 000008
【図８】
0005653259.tif 000009