[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP5653259B2 - 更新差分データ作成装置、データ更新システムおよび更新差分データ作成プログラム - Google Patents

更新差分データ作成装置、データ更新システムおよび更新差分データ作成プログラム Download PDF

Info

Publication number
JP5653259B2
JP5653259B2 JP2011050716A JP2011050716A JP5653259B2 JP 5653259 B2 JP5653259 B2 JP 5653259B2 JP 2011050716 A JP2011050716 A JP 2011050716A JP 2011050716 A JP2011050716 A JP 2011050716A JP 5653259 B2 JP5653259 B2 JP 5653259B2
Authority
JP
Japan
Prior art keywords
data
update
difference data
block size
update difference
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.)
Active
Application number
JP2011050716A
Other languages
English (en)
Other versions
JP2012190075A (ja
Inventor
義孝 住友
義孝 住友
靖 永井
靖 永井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Faurecia Clarion Electronics Co Ltd
Original Assignee
Clarion Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Clarion Co Ltd filed Critical Clarion Co Ltd
Priority to JP2011050716A priority Critical patent/JP5653259B2/ja
Publication of JP2012190075A publication Critical patent/JP2012190075A/ja
Application granted granted Critical
Publication of JP5653259B2 publication Critical patent/JP5653259B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Description

本発明は更新差分データ作成装置、データ更新システムおよび更新差分データ作成プログラムに関し、より詳細には、FLASHメモリまたはSDカードに記録されるバージョンの古いデータを新しいバージョンのデータに迅速かつ少ない更新データで更新することが可能な更新差分データ作成装置、データ更新システムおよび更新差分データ作成プログラムに関する。
近年では、地図画像をディスプレイ上に表示させ、目的地までの経路案内を行うカーナビゲーションシステムが広く普及している。
カーナビゲーションシステムにおいて、経路案内の精度を向上させるためには、できるだけ新しい地図情報をカーナビゲーションシステムで保持しておくことが望ましい。また、今日のカーナビゲーションシステムは、単なる経路案内処理だけではなく、CDやMD等に記録される音楽の操作・再生処理を行うための車載用オーディオ装置や、DVDやブルーレイディスク(登録商標)などの再生を行うための映像再生装置としての機能を有するものが多い。このため、必要に応じてシステムの更新などを行うことにより、ユーザのニーズに対応するような機能を追加する必要が生じている。
このような地図情報の更新や、システム情報の更新を行うために、最新の地図情報やシステム情報が記録された記録媒体(例えばCD―ROMやDVD―ROMなど)を用いて、カーナビゲーションシステムの地図情報やシステム情報の更新を行う方法が多く用いられている(例えば、特許文献1参照)。
しかしながら、このようにして地図情報やシステム情報を更新する場合には、古い情報の全てを消去してから新しい情報を書き込むことによって、更新処理を行う必要があるため、更新処理に多くの時間が必要とされてしまうという問題があった。
このため、全ての地図情報などを更新するのではなく、新しく更新された一部の地図情報やシステム情報のみを古いデータから新しいデータに更新し、新しいデータと古いデータとでデータ内容が変わっていないデータ(つまり、変更がなされていないデータ)に関しては、全く更新処理を行わない差分更新処理方法が知られている。
この差分更新処理方法では、一般的に、カーナビゲーションシステムのデータ記録部の内容を、複数のファイルデータ(部分的にまとめられた1まとまりのデータ)の集合として判断し、更新されたファイルデータのみ変更し、更新されていないファイルデータをそのまま更新せずに利用する方法が用いられている。
しかしながら、更新されたファイルデータであっても、そのファイルデータを構成する全てのデータの更新が行われるのではなく、ファイルデータ内の一部のデータのみが更新対象となることの方が多い。このため、さらに、ファイルデータ毎に更新箇所を求めて更新差分データを作成してデータの更新を行う場合と、ファイルデータの全体をそのまま用いて更新を行う場合とを必要に応じて使い分ける方法も提案されている(例えば、特許文献2参照)。
特許文献2に開示される方法では、カーナビゲーションシステムの更新対象となるデータ領域をファイルデータ毎に抽出し(特許文献2の図4では、ファイル1〜ファイル4が例示されている)、抽出されたファイルデータのデータ量に対する差分データのデータ量を求め差分データのサイズ率を算出して、サイズ率が所定比率よりも小さい場合にのみ該当するファイルデータの差分データを用いてデータの更新を行い、サイズ率が所定比率よりも大きい場合には新しいファイルデータを用いることにより、全体的にデータの更新を行う方法を採用している。
特開2003―337027号公報 特開2006―251768号公報(図2〜図4)
ところで、特許文献2には、更新データをDVDなどの記録媒体に記録させ、カーナビゲーションシステムでこの更新データを読み出すことにより情報の更新を行う場合が例示されている。しかしながら、DVD等の記録媒体に更新データを記録させる方法では、更新データを頻繁に提供することが困難であった。実際に、DVD等に更新データを記録して提供する場合には、提供頻度が1年〜2年間に1回程度になってしまうという問題があった。
一方で、カーナビゲーションシステムを利用するユーザの立場からすれば、少しでも早く新しい地図情報などに情報を更新したいという要望が存在する。このため、今日では、カーナビゲーションシステムを携帯電話回線などの通信回線を用いてサーバにアクセスさせて、データの更新があった場合に迅速にデータの更新を行う方法が提案されている。
このようにして通信回線を用いて更新データを取得する場合には、通信費の削減とデータのダウンロード時間の短縮とを図るために、できるだけ小さなデータを用いて地図情報などの更新することが好ましい。しかしながら、地図情報などのデータは情報量が比較的多いため、地図情報を通信回線だけを用いて更新すると、受信データ量とダウンロード時間との増大により、利便性を損なうおそれもあった。
このため、ファイルデータ単位の更新に関してはDVD等の記録媒体に記録された情報によって更新を行い、1つのファイルデータよりも小さなデータ単位で更新を行う場合には通信回線を用いて、差分データを取得することによりデータの更新処理を行う方法が提案されている。
一方で、差分データを用いてデータの更新を行うことにより、通信回線を介して送受信するデータのデータ量を低減させることは可能となるが、少量のデータを頻繁に更新する方法を用いると、地図情報等を記録する記録媒体へのデータの書き込み回数が増大するため、更新処理に時間を要してしまう傾向がある。
特に近年では、カーナビゲーションシステムにおいて、FLASHメモリやSDカードなどの不揮発性メモリに、地図情報やシステム情報を記録する機種が増えている。不揮発性メモリにデータを記録するカーナビゲーションシステムでは、データの消去・書き込み処理に必要とされる時間がハードディスクドライブを利用する場合よりも多くなる傾向がある。
このため、差分データを用いて更新のあったデータブロックだけを頻繁に更新する処理を行うと、更新処理にかえって時間が掛かってしまい、さらに、書き換え回数が多くなるためメモリ寿命の短縮化を招いてしまうおそれがあるという問題があった。
本発明は上記課題に鑑みてなされたものであり、記録媒体(FLASHメモリやSDカード)に記録されるデータの書き換え処理を迅速に行うことが可能な更新差分データ作成装置、データ更新システムおよび更新差分データ作成プログラムを提供することを課題とする。
上記課題を解決するために、本発明に係る更新差分データ作成装置は、FLASHメモリに記録されている古いバージョンのデータと、当該古いバージョンのデータよりも新しいバージョンのデータとが記録された更新情報記録手段と、前記FLASHメモリにおいて1回毎の消去処理で消去可能なデータ容量をブロックサイズと定義し、前記更新情報記録手段に記録された新しいバージョンのデータと古いバージョンのデータとを比較して、データ内容の異なる部分のデータを相違データとして前記ブロックサイズ単位で抽出し、抽出された前記ブロックサイズ単位の前記相違データを組み合わせることによって更新差分データを作成する更新差分データ作成手段とを備え、前記更新差分データ作成手段は、小さなデータ容量であるSバイトと大きなデータ容量であるLバイトとを、前記FLASHメモリの前記ブロックサイズとして利用することが可能である場合に、前記ブロックサイズをSバイトにした場合の前記更新差分データのブロック数BN_Sと、前記ブロックサイズをLバイトにした場合の前記更新差分データのブロック数BN_Lとを算出し、下記の式が成立するときには前記小さなデータ容量であるSバイト単位で前記相違データを抽出して前記更新差分データを作成し、下記の式が成立しないときには前記大きなデータ容量であるLバイト単位で前記相違データを抽出して前記更新差分データを作成することを特徴とする。
但し、式はBN_S×(T_se+(T_bp×S/WS))<BN_L×(T_be+(T_bp×L/WS))であり、BN_Sは、前記ブロックサイズをSバイトにした場合の前記更新差分データのブロック数、BN_Lは、前記ブロックサイズをLバイトにした場合の前記更新差分データのブロック数、T_seは、前記FLASHメモリにおいてSバイト分のデータを消去するために必要とされる時間、T_beは、前記FLASHメモリにおいてLバイト分のデータを消去するために必要とされる時間、T_bpは、前記FLASHメモリにおける1ワード分のデータの書き込み時間、WSは、前記FLASHメモリにおける1ワード当たりのバイト数を示し、前記FLASHメモリについてのT_se、T_be、T_bp、WSのデータは予め前記更新情報記録手段に記録されていることを特徴とする。
また、本発明に係る更新差分データ作成装置は、SDカードに記録されている古いバージョンのデータと、当該古いバージョンのデータよりも新しいバージョンのデータとが記録された更新情報記録手段と、前記SDカードにおいて1回毎の消去処理で消去可能なデータ容量をブロックサイズと定義し、前記更新情報記録手段に記録された新しいバージョンのデータと古いバージョンのデータとを比較して、データ内容の異なる部分のデータを相違データとして前記ブロックサイズ単位で抽出し、抽出された前記ブロックサイズ単位の前記相違データを組み合わせることによって更新差分データを作成する更新差分データ作成手段とを備え、前記SDカードのブロックサイズとして複数のデータ容量を利用することが可能である場合には、前記更新情報記録手段に、異なるデータ容量のブロックサイズBS毎に、前記SDカードの書き込みスループットWth(BS)と、前記SDカードの読み込みスループットRth(BS)と、更新差分データに基づいて前記新しいバーションのデータを作成するパッチ処理のパッチ処理スループットPth(BS)とが記録され、前記更新差分データ作成手段は、前記更新差分データのデータ量がD(BS)である場合において、前記更新情報記録手段にブロックサイズBS毎に記録される複数の書き込みスループットWth(BS)と、複数の読み込みスループットRth(BS)と、複数のパッチ処理スループットPth(BS)を読み出して、D(BS)/(Wth(BS)+Rth(BS)+Pth(BS))の値を最小とするブロックサイズBSを求めて、当該ブロックサイズBS単位で前記相違データを抽出することによって前記更新差分データを作成することを特徴とする。
ここで、書き込みスループットとは、単位時間当たりに書き込みを行うことが可能なデータのブロックサイズ数を示し、ブロックサイズとして設定されるバイト数に応じて値が変化し、また、SDカードのハード特性に応じて値が異なるという性質を有している。
また、読み込みスループットとは、単位時間当たりに読み込みを行うことが可能なデータのブロックサイズ数を示し、ブロックサイズとして設定されるバイト数に応じて値が変化し、また、SDカードのハード特性に応じて値が異なるという性質を有している。
さらに、パッチ処理のスループットとは、SDカードに記録されている古いバージョンのデータと更新差分データとに基づいて新しいバージョンのデータを作成する場合において、単位時間当たりに新しいバーションのデータを作成することが可能なブロックサイズ数を示し、パッチ処理に利用されるDRAM(SDRAM等)とSDカードとの間のメモリコピー・スループットに近似した値を示す。
また、本発明に係るデータ更新システムは、古いバージョンのデータが記録されるFLASHメモリと、該FLASHメモリにおいて1回毎の消去処理で消去可能なデータ容量をブロックサイズと定義し、前記古いバージョンのデータと新しいバーションのデータとにおいてデータ内容の異なる部分のデータを相違データとして前記ブロックサイズ単位で抽出して組み合わせることにより作成された更新差分データと、前記FLASHメモリに記録される古いバーションのデータとに基づいて、新しいバーションのデータを生成する新バージョンデータ生成手段と、前記ブロックサイズ単位で前記FLASHメモリのデータを消去するメモリデータ消去手段と、該メモリデータ消去手段により消去された前記FLASHメモリの領域に、前記新バージョンデータ生成手段により生成された新しいバーションのデータを書き込むデータ書き込み手段と、前記古いバージョンのバージョン情報をネットワーク回線を介してサーバへ出力すると共に、前記更新差分データを前記ネットワーク回線を介して前記サーバより受信することが可能なクライアント通信手段とを有するクライアントと、前記FLASHメモリに記録され得る全てのバージョンのデータが記録された更新情報記録手段と、前記クライアント通信手段により出力された前記バージョン情報を前記ネットワーク回線を介して受信すると共に、前記更新差分データを前記ネットワーク回線を介して前記クライアントへ出力することが可能なサーバ通信手段と、該サーバ通信手段により受信された前記バージョン情報に該当するバージョンのデータを、前記更新情報記録手段に記録されるデータより取得し、取得されたバージョンのデータと前記更新情報記録手段に記録される新しいバージョンのデータとを比較して、前記相違データを抽出することにより、更新差分データを作成する更新差分データ作成手段とを有するサーバとを備え、前記更新差分データ作成手段は、小さなデータ容量であるSバイトと大きなデータ容量であるLバイトとを、前記FLASHメモリの前記ブロックサイズとして利用することが可能である場合に、前記ブロックサイズをSバイトにした場合の前記更新差分データのブロック数BN_Sと、前記ブロックサイズをLバイトにした場合の前記更新差分データのブロック数BN_Lとを算出し、下記の式が成立するときには前記小さなデータ容量であるSバイト単位で前記相違データを抽出して前記更新差分データを作成し、下記の式が成立しないときには前記大きなデータ容量であるLバイト単位で前記相違データを抽出して前記更新差分データを作成し、前記サーバ通信手段は、前記更新差分データ作成手段により作成された前記更新差分データを前記クライアントに対して出力し、前記クライアント通信手段は、前記サーバによって出力された前記更新差分データを受信し、前記新バージョンデータ生成手段は、前記クライアント通信手段により受信された前記更新差分データと、前記FLASHメモリに記録される古いバージョンのデータとに基づいて、新しいバーションのデータを生成し、前記メモリデータ消去手段は、前記クライアント通信手段により受信された前記更新差分データを構成するブロックサイズに基づいて、当該ブロックサイズ単位で前記FLASHメモリのデータを消去し、前記データ書き込み手段は、前記メモリデータ消去手段により消去された前記FLASHメモリの領域に、前記新バージョンデータ生成手段により生成された新しいバーションのデータを、前記ブロックサイズ単位で書き込むことを特徴とする。
但し、式は、BN_S×(T_se+(T_bp×S/WS))<BN_L×(T_be+(T_bp×L/WS))であり、BN_Sは、前記ブロックサイズをSバイトにした場合の前記更新差分データのブロック数、BN_Lは、前記ブロックサイズをLバイトにした場合の前記更新差分データのブロック数、T_seは、前記FLASHメモリにおいてSバイト分のデータを消去するために必要とされる時間、T_beは、前記FLASHメモリにおいてLバイト分のデータを消去するために必要とされる時間、T_bpは、前記FLASHメモリにおける1ワード分のデータの書き込み時間、WSは、前記FLASHメモリにおける1ワード当たりのバイト数を示し、前記FLASHメモリについてのT_se、T_be、T_bp、WSのデータは予め前記更新情報記録手段に記録されていることを特徴とする。
また、本発明に係るデータ更新システムは、古いバージョンのデータが記録されるSDカードと、前記SDカードにおいて1回毎の消去処理で消去可能なデータ容量をブロックサイズと定義し、前記古いバージョンのデータと新しいバーションのデータとにおいてデータ内容の異なる部分のデータを相違データとして前記ブロックサイズ単位で抽出して組み合わせることにより作成された更新差分データと、前記SDカードに記録される古いバーションのデータとに基づいて新しいバーションのデータを生成する新バージョンデータ生成手段と、前記ブロックサイズ単位で前記SDカードのデータの書き込みを行うデータ書き込み手段と、前記古いバージョンのバージョン情報をネットワーク回線を介してサーバへ出力すると共に、前記更新差分データを前記ネットワーク回線を介して前記サーバより受信することが可能なクライアント通信手段とを有するクライアントと、前記SDカードに記録され得る全てのバージョンのデータが記録された更新情報記録手段と、前記クライアント通信手段により出力された前記バージョン情報を前記ネットワーク回線を介して受信すると共に、前記更新差分データを前記ネットワーク回線を介して前記クライアントへ出力することが可能なサーバ通信手段と、該サーバ通信手段により受信された前記バージョン情報に該当するバージョンのデータを、前記更新情報記録手段に記録されるデータより取得し、取得されたバージョンのデータと前記更新情報記録手段に記録される新しいバージョンのデータとを比較して、前記相違データを抽出することにより、更新差分データを作成する更新差分データ作成手段とを有するサーバとを備え、前記SDカードのブロックサイズとして複数のデータ容量を利用することが可能である場合には、前記更新情報記録手段に、異なるデータ容量のブロックサイズBS毎に、前記SDカードの書き込みスループットWth(BS)と、前記SDカードの読み込みスループットRth(BS)と、更新差分データに基づいて前記新しいバーションのデータを作成するパッチ処理のパッチ処理スループットPth(BS)とが記録され、前記更新差分データ作成手段は、前記更新差分データのデータ量がD(BS)である場合において、前記更新情報記録手段にブロックサイズBS毎に記録される複数の書き込みスループットWth(BS)と、複数の読み込みスループットRth(BS)と、複数のパッチ処理スループットPth(BS)を読み出して、D(BS)/(Wth(BS)+Rth(BS)+Pth(BS))の値を最小とするブロックサイズBSを求めて、当該ブロックサイズBS単位で前記相違データを抽出することによって前記更新差分データを作成し、前記サーバ通信手段は、前記更新差分データ作成手段により作成された前記更新差分データを前記クライアントに対して出力し、前記クライアント通信手段は、前記サーバによって出力された前記更新差分データを受信し、前記新バージョンデータ生成手段は、前記クライアント通信手段により受信された前記更新差分データと、前記SDカードに記録される古いバージョンのデータとに基づいて、新しいバーションのデータを生成し、前記データ書き込み手段は、前記新バージョンデータ生成手段において生成された新しいバーションのデータを、前記更新差分データの前記ブロックサイズ単位で前記SDカードに書き込むことを特徴とする
さらに、本発明に係る更新差分データ作成プログラムは、FLASHメモリに記録されている古いバージョンのデータと、当該古いバージョンのデータよりも新しいバージョンのデータとが記録された更新情報記録手段と、前記FLASHメモリにおいて1回毎の消去処理で消去可能なデータ容量をブロックサイズと定義し、前記更新情報記録手段に記録された新しいバージョンのデータと古いバージョンのデータとを比較して、データ内容の異なる部分のデータを相違データとして前記ブロックサイズ単位で抽出し、抽出された前記ブロックサイズ単位の前記相違データを組み合わせることによって更新差分データを作成する更新差分データ作成手段と、を備える更新差分データ作成装置において、前記更新差分データ作成手段に、前記更新差分データを作成させるための更新差分データ作成プログラムであって、前記更新差分データ作成手段に、小さなデータ容量であるSバイトと大きなデータ容量であるLバイトとを、前記FLASHメモリの前記ブロックサイズとして利用することが可能である場合に、前記ブロックサイズをSバイトにした場合の前記更新差分データのブロック数BN_Sと、前記ブロックサイズをLバイトにした場合の前記更新差分データのブロック数BN_Lとを算出させるブロック数算出ステップと、下記の式が成立するときには前記小さなデータ容量であるSバイト単位で前記相違データを抽出して前記更新差分データを作成させ、下記の式が成立しないときには前記大きなデータ容量であるLバイト単位で前記相違データを抽出して前記更新差分データを作成させる更新差分データ作成ステップとを実行させるためのプログラムであることを特徴とする。
だたし、式はBN_S×(T_se+(T_bp×S/WS))<BN_L×(T_be+(T_bp×L/WS))であり、BN_Sは、前記ブロックサイズをSバイトにした場合の前記更新差分データのブロック数、BN_Lは、前記ブロックサイズをLバイトにした場合の前記更新差分データのブロック数、T_seは、前記FLASHメモリにおいてSバイト分のデータを消去するために必要とされる時間、T_beは、前記FLASHメモリにおいてLバイト分のデータを消去するために必要とされる時間、T_bpは、前記FLASHメモリにおける1ワード分のデータの書き込み時間、WSは、前記FLASHメモリにおける1ワード当たりのバイト数を示し、前記FLASHメモリについてのT_se、T_be、T_bp、WSのデータは予め前記更新情報記録手段に記録されていることを特徴とする。
また、本発明に係る更新差分データ作成プログラムは、SDカードに記録されている古いバージョンのデータと、当該古いバージョンのデータよりも新しいバージョンのデータとが記録され、さらに、前記SDカードにおいて1回毎の消去処理で消去可能なデータ容量をブロックサイズと定義し、前記SDカードのブロックサイズとして複数のデータ容量を利用することが可能である場合に、異なるデータ容量のブロックサイズ毎に、前記SDカードの書き込みスループットWth(BS)と、前記SDカードの読み込みスループットRth(BS)と、更新差分データに基づいて前記新しいバーションのデータを作成するパッチ処理のパッチ処理スループットPth(BS)とが記録された更新情報記録手段と、前記更新情報記録手段に記録された新しいバージョンのデータと古いバージョンのデータとを比較して、データ内容の異なる部分のデータを相違データとして前記ブロックサイズ単位で抽出し、抽出された前記ブロックサイズ単位の前記相違データを組み合わせることによって更新差分データを作成する更新差分データ作成手段とを備える更新差分データ作成装置において、前記更新差分データ作成手段に、前記更新差分データを作成させるための更新差分データ作成プログラムであって、前記更新差分データ作成手段に、前記更新差分データのデータ量がD(BS)である場合において、前記更新情報記録手段にブロックサイズ毎に記録される複数の書き込みスループットWth(BS)と、複数の読み込みスループットRth(BS)と、複数のパッチ処理スループットPth(BS)を読み出させて、D(BS)/(Wth(BS)+Rth(BS)+Pth(BS))の値を最小とするブロックサイズBSを求めさせる最小ブロックサイズ算出ステップと、該最小ブロックサイズ算出ステップにおいて算出された前記ブロックサイズBS単位で前記相違データを抽出することによって前記更新差分データを作成させる更新差分データ作成ステップとを実行させるためのプログラムであることを特徴とする。
一般的に、FLASHメモリは、データを上書き保存することができないため、一度データの消去を行った後に更新されたデータの書き込みを行う必要がある。さらに、FLASHメモリでは、1バイト単位でデータを消去することができないため、所定のブロックサイズ単位でデータを消去した後に、更新されたデータの書き込みを行う必要がある。
このため、本発明に係る更新差分データ作成装置、データ更新システムおよび更新差分データ作成プログラムでは、FLASHメモリにおいて1回毎の消去処理で消去可能なデータ容量をブロックサイズと定義し、新しいバージョンのデータと古いバージョンのデータとを比較してデータ内容の異なる部分のデータを相違データとしてブロックサイズ単位で抽出して組み合わせることにより更新差分データを作成する。このようにして更新差分データを作成することによって、FLASHメモリの更新処理に適した更新差分データを作成することが可能となる。
さらに、FLASHメモリにおいて1回毎の消去処理で消去可能なデータ容量は、必ずしも1通りのデータ容量には限定されず、複数種類のデータ容量のいずれかを選択してブロックサイズとし、選択されたブロックサイズに基づいてデータの消去を行うことが可能となっている場合も存在する。
このように1回毎の消去処理で消去可能なブロックサイズのデータ容量を選択可能な場合には、どの程度のブロックサイズ単位で相違データを抽出して更新差分データを作成するか否かによって、FLASHメモリの更新処理時間に差が生じてしまう場合がある。
一般的に、FLASHメモリにおけるデータの消去時間は、1回で消去されるデータ容量に違いがあっても消去時間に差が生じない傾向がある。このため、同じデータ容量を消去する場合には、ブロックデータを大きくした方が、ブロックデータを小さくする場合よりも消去処理回数を低減させることができるため、消去処理時間を全体的に短くすることが可能である。
一方で、データの書き込み時間は、データの書き込み処理回数に比例して多くの時間が掛かってしまう傾向がある。従って、ブロックサイズを大きくすると、新旧バージョンにおいてデータ内容の異なる部分が、1つのブロックサイズ内に含まれる可能性が高くなり、ブロックサイズが小さい場合に比べて抽出される相違データの数が増加する傾向がある。従って、ブロックサイズが大きくなって抽出される相違データ数が増加されると、更新差分データをFLASHメモリに書き込むための書き込み回数が増加してしまい、書き込み処理時間が全体的に長くなってしまうという問題がある。
本発明に係る更新差分データ作成装置、データ更新システムおよび更新差分データ作成プログラムでは、FLASHメモリのブロックサイズとして、小さなデータ容量であるSバイトと、大きなデータ容量であるLバイトとを利用することが可能である場合に、ブロックサイズをSバイトにした場合の更新差分データのブロック数BN_Sと、ブロックサイズをLバイトにした場合の更新差分データのブロック数BN_Lとを算出し、FLASHメモリのハード特性に基づいて決定されるT_se(FLASHメモリにおいてSバイト分のデータを消去するために必要とされる時間)、T_be(FLASHメモリにおいてLバイト分のデータを消去するために必要とされる時間)、T_bp(FLASHメモリにおける1ワード分のデータの書き込み時間)、WS(FLASHメモリにおける1ワード当たりのバイト数)を用いることにより、
BN_S×(T_se+(T_bp×S/WS))<BN_L×(T_be+(T_bp×L/WS))
が成立するか否かの判断を行う。
ここで、上述した式におけるT_seは、FLASHメモリにおける小さいデータ容量であるSバイト分のデータの消去処理時間、(T_bp×S/WS)は、FLASHメモリにおけるSバイト分のデータの書き込み処理時間、T_beは、FLASHメモリにおける大きいデータ容量であるLバイト分のデータの消去処理時間、(T_bp×L/WS)は、FLASHメモリにおけるLバイト分のデータの書き込み処理時間を示している。
従って、上述の式は、ブロックサイズの相違に基づくデータの消去時間と書き込み時間との和を比較したものに該当し、式が成立する場合には、SバイトをブロックサイズとしてFLASHメモリのデータ更新処理を行う方が、Lバイトをブロックサイズとしてデータ更新処理を行うよりも処理時間が短縮され、式が成立しない場合には、Lバイトをブロックサイズとしてデータ更新処理を行う方が、Sバイトをブロックサイズとしてデータ更新処理を行うよりも処理時間が短縮されると判断することができる。
このようにしてブロックサイズを決定することにより、FLASHメモリのデータ更新処理に用いられる更新差分データのブロックサイズを最適化することができ、データの更新処理の迅速化と、更新差分データのデータ量低減とを実現することが可能となる。
また、SDカードもFLASHメモリの一種であり、データの書き込みを行う前に古いデータを消去してから新しいデータの書き込みを行う必要がある点で、FLASメモリと共通する。このため、SDカードにおいても1回毎の消去処理で消去可能なデータ容量をブロックサイズとして定義する。
また、一般的に、SDカードには、データの更新(消去・読み込み・書き込み)制御を行うためのコントローラが設けられており、このコントローラによってデータの消去・読み込み・書き込みが行われることになる。但し、データの更新を行うためのブロックサイズが異なると、同じSDカードであっても、データ更新の処理時間が異なっていた。
本発明に係る更新差分データ作成装置、データ更新システムおよび更新差分データ作成プログラムでは、SDカードのブロックサイズとして複数のデータ容量を利用することが可能である場合に、異なるデータ容量のブロックサイズ毎に、SDカードの書き込みスループットWth(BS)と、SDカードの読み込みスループットRth(BS)と、更新差分データに基づいて新しいバーションのデータを作成するパッチ処理のパッチ処理スループットPth(BS)とが、更新情報記録手段に記録されている。
本発明に係る更新差分データ作成装置、データ更新システムおよび更新差分データ作成プログラムの更新差分データ作成手段は、更新差分データのデータ量がD(BS)である場合において、更新情報記録手段にブロックサイズ毎に記録される複数の書き込みスループットWth(BS)と、複数の読み込みスループットRth(BS)と、複数のパッチ処理スループットPth(BS)を読み出して、D(BS)/(Wth(BS)+Rth(BS)+Pth(BS))の値を最小とするブロックサイズBSを求めて、当該ブロックサイズBS単位で相違データを抽出することによって更新差分データを作成する。
このようにして更新差分データを作成することによって、SDカードにおいてブロックサイズに応じて異なる、書き込み時間、読み込み時間およびパッチ処理時間の組み合わせを最も低減することが可能なブロックサイズを求めることが可能となる。このブロックサイズ単位で相違データを抽出して更新差分データを作成することにより、SDカードのデータ更新処理に用いられる更新差分データのブロックサイズを最適化することができ、データの更新処理の迅速化と、更新差分データのデータ量低減とを実現することが可能となる。
本実施の形態に係るカーナビゲーションシステムとサーバがネットワーク回線を介して接続された状態を示した図である。 本実施の形態に係るカーナビゲーションシステムの概略構成を示したブロック図である。 本実施の形態に係るデータ記録部のデータ記録構造を説明するための図である。 本実施の形態に係るサーバの概略構成を示したブロック図である。 本実施の形態に係るカーナビゲーションシステムとサーバとの間の情報の送受信を示したタイミングチャートである。 本実施の形態に係るカーナビゲーションシステムのCPUにより実行されるデータ更新処理を示したフローチャートである。 本実施の形態に係るサーバのサーバ用CPUにより実行されるデータ更新処理を示したフローチャートである。 本実施の形態に係るサーバのサーバ用CPUにおいて、更新差分データを作成する手順を説明するための図である。
以下、本発明に係る更新差分データ作成装置を、更新差分データ作成装置の一例であるサーバと、そのサーバにネットワーク回線を介して接続されるカーナビゲーションシステムとを示して、図面を用いて詳細に説明する。
図1は、本実施の形態に係るカーナビゲーションシステム(クライアント)1と、サーバ(更新差分データ作成装置、サーバ)20とを示した図である。図1に示すように、カーナビゲーションシステム1とサーバ20とは、ネットワーク回線30を介して接続されている。具体的に、カーナビゲーションシステム1は、車両2に搭載されると共に、後述するように携帯電話回線を介してネットワーク回線30に接続することが可能となっている。一方で、サーバ20もネットワーク回線30に接続されており、カーナビゲーションシステム1とサーバ20とは、ネットワーク回線30を介して、データの送受信を行うことが可能となっている。
なお、ネットワーク回線30は、インターネットのように広く第三者に公開されているネットワークであってもよく、LAN等のように、ネットワークのアクセスに一定の制限が課されるネットワークであってもよい。さらに、カーナビゲーションシステム1におけるネットワーク回線30への接続は、必ずしも携帯電話回線だけには限定されず、Wi−FiやWiMAXなどの通信回線を利用するものであってもよい。
さらに、図1には、カーナビゲーションシステム1とサーバ20とが1つずつしか示されていないが、カーナビゲーションシステム1やサーバ20は必ずしも1つずつには限定されない。一般的に、カーナビゲーションシステム1は、ネットワーク回線30を介して多数存在し、各ユーザが各々のカーナビゲーションシステム1を利用することによって、サーバ20にアクセスすることが可能となっている。また、サーバ20は、ネットワーク回線30に対して1台だけ接続されているものであってよく、また、多数接続されているものであってもよい。
[カーナビゲーションシステム1について]
図2は、カーナビゲーションシステム1の概略構成を示したブロック図である。カーナビゲーションシステム1は、ディスプレイ部5とタッチパネル部6と本体部10とを有している。ディスプレイ部5には、経路案内時にユーザに対して走行中の周囲の地図情報などを表示する役割を有している。一般的に、ディスプレイ部5には、液晶ディスプレイが用いられる。また、必要に応じてディスプレイ部5には、経路案内時に音声情報を出力させるためのスピーカ(図示省略)などが設けられている。なお、このスピーカは、ディスプレイ部5に直接設けられるものには限定されず、車両に設置される音楽用スピーカを利用するものであってもよい。
タッチパネル部6は、ディスプレイ部5に表示されるメニューアイコンなどのタッチ操作を検出する役割を有している。ユーザのタッチ位置の情報が後述するCPU15に伝達され、タッチ位置の情報と、ディスプレイ部5に表示されるメニューアイコンの表示位置との関係に基づいて、CPU15がユーザの操作内容を判断することが可能となっている。なお、本実施の形態においては、タッチパネル部6によりユーザの入力操作の検出を行う構成を説明するが、タッチパネル部6以外の操作手段として、例えば、キーボード、ジョイスティックおよび操作リモコンなどを用いることにより、ユーザの入力操作検出を行う構成であってもよい。
本体部10は、通信部(クライアント通信手段)11と、データ記録部(FLASHメモリ、SDカード)12と、SDRAM13と、SDカード読み書き部14、CPU(新バージョンデータ生成手段、メモリデータ消去手段、データ書き込み手段)15とを有している。通信部11は、ネットワーク回線30との接続を行う役割を有している。通信部11として、具体的には携帯電話回線(例えば、CDMA(2G)方式、W−CDMA(3G)方式、HSDPS方式など)を用いるネットワークインターフェース機器などが該当する。通信部11はCPU15の指示(制御命令)に応じて、次述するカーナビゲーションシステム1の情報をサーバ20に出力し、また、サーバ20が出力したデータの取得処理を行う。
データ記録部12には、カーナビゲーションシステム1におけるシステム情報および地図情報が記録されている。データ記録部12には、ハードディスク、SSD(Solid State Drive)、FLASHメモリ、SDカードなどの一般的な補助記録装置を用いることが可能となっている。本実施の形態に係るカーナビゲーションシステム1では、データ記録部12として、FLASHメモリが用いられる場合について説明する。
データ記録部12には、一般的な補助記録装置と同じように、記録されたデータの記録位置を示すためのアドレスが割り当てられており、このアドレスを参照することによってデータの内容を判断することが可能となっている。特に、本実施の形態に係るデータ記録部12では、予め規定された容量のアドレス範囲毎に、予め記録対象となるファイルデータの種類(データ構造)が決められている。
例えば、図3(a)に示すように、予めファイルデータA1(データA1)の記録には、アドレス1000〜2000のアドレス範囲が確保(規定)されており、ファイルデータB(データB)の記録には、アドレス0000〜1000のアドレス範囲が確保(規定)されており、ファイルデータC(データC)の記録には、アドレス2000〜3000のアドレス範囲が確保(規定)されている。このため、図3(a)のファイルデータA1(データA1)の場合のように、確保されたデータ容量(アドレス1000〜2000の範囲に該当するデータ容量)よりも、記録されるファイルデータA1のデータ量の方が小さい場合には、ファイルデータA1の最後のアドレスから確保されたアドレス範囲の最後のアドレスまで(ファイルデータA1においては、アドレス2000まで)のデータ領域に空データ(例えば、Nullデータ)が記録されるデータ構造となっている。
このため、図3(b)に示すように、ファイルデータA1が更新されてファイルデータA2(データA2)となり、ファイルデータA2のデータ量が増えた場合であっても、予め空データ領域を考慮してファイルデータA2のアドレス範囲が確保されているため、開始アドレス1000から終了アドレス2000までの範囲(アドレス範囲)を変更することなく、ファイルデータA1よりもデータ量が増大したファイルデータA2にデータを更新することが可能となる。従って、更新されたファイルデータA2以外のファイルデータB、ファイルデータCは、開始アドレスおよび終了アドレスを変更する必要がなく、データ記録部12に記録されていたファイルデータが他のファイルデータの更新に伴って、後のアドレスへとアドレス範囲がずれ込んで変わってしまうことを防止することができる。
また、データ記録部12に記録されるデータは、4Kバイトを1ブロックとし、CPU15によってブロック毎にデータが管理されている。次述する更新差分データによるデータ更新処理において、CPU15は、後述するように、8Kバイト単位、あるいは64Kバイト単位でデータの更新処理(書き込み処理)を行う。その詳細については後述する。
なお、本実施の形態に係るデータ記録部12は、上述したようにFLASHメモリが用いられている。FLASHメモリは、データを上書き保存することができないため、一度データの消去を行った後に更新されたデータの書き込みを行う必要がある。さらに、FLASHメモリでは、1バイト単位でデータを消去することができないため、ブロック単位でデータを消去した後に、更新されたデータの書き込みを行う必要がある。
本実施の形態に用いられるFLASHメモリでは、データの消去を8Kバイト毎、あるいは64Kバイト毎に行うことが可能となっている。但し、本実施の形態に係るデータ記録部12では、FLASHメモリにおける8Kバイト分のデータ消去に必要とされる時間と、64Kバイト分のデータ消去に必要とされる時間とを予め記録している。但し、それぞれのデータ消去時間は、ほぼ同じ時間であり、1回の消去処理により消去されるデータ量が8Kバイトであっても、64Kバイトであっても、消去時間は変わらないという特性を有している。
また、本実施の形態に用いられるFLASHメモリでは、データの書き込みを1ワード(2バイト)単位で書き込むWord-Program方式と、16ワード(32バイト)単位で書き込むWrite Buffer Program方式との2つの書き込みモードを備えている。従来より用いられている差分データの更新処理では、Word-Program方式を利用することが多いが、本実施の形態に係るカーナビゲーションシステム1では、Write Buffer Program方式を採用する。Write Buffer Program方式を採用することによって、Word-Program方式を利用する場合よりも一度に書き込みを行うことができるデータ量が多くなるため、書き込み回数を減らすことができ、書き込み時間をWord-Program方式を採用する場合に比べて4分の1にすることが可能となる。
データ記録部12には、システム情報、地図情報などのほかに、カーナビゲーションシステム1のID情報(カーナビゲーションシステム1をそれぞれの機器毎に特定するため情報であって、カーナビゲーションシステム1の製造番号情報や識別番号情報などが該当する)およびデータ記録部12に記録される地図情報やシステム情報のバージョン情報(このバージョン情報によって、データ記録部12に記録される地図情報やシステム情報の更新回数、具体的なデータ内容などを、サーバ20で特定することが可能となる。)が記録されている。
また、データ記録部12に記録されるシステム情報には、CPU15がカーナビゲーションシステム1における様々な機能を実現するためのプログラムなどが含まれる。プログラムとして、例えば、CPU15が、経路案内を行うためのプログラムや、データ記録部12に記録される情報を更新するためのデータ更新処理用のプログラム(例えば、図6においてフローチャートで示されたプログラム)などが該当する。CPU15は、データ記録部12に記録されるプログラムに基づいて、カーナビゲーションシステム1における様々な処理を実行する。
SDRAM13は、更新差分データの更新処理を行う際に利用されるワークエリアである。SDRAM13のデータ容量は、データ記録部12よりも小容量となっている。本実施の形態に係るデータ記録部12では、FLASHメモリが用いられているため、更新対象となるFLASHメモリのデータ領域のデータを一時的にSDRAMに記録し、記録されたSDRAMのデータを更新差分データに基づいて新たなデータ(更新データ)に変更する。その後、CPU15が、FLASHメモリの該当データ領域を所定のブロック単位で消去した後に、SDRAMに記録される新たなデータをFLASHメモリに書き込むことによって、データ記録部12のデータ更新が行われることになる。
SDカード読み書き部14は、SDカードに記録されるデータの読み取りおよび書き込みを行う役割を有している。具体的に、SDカード読み書き部14は、データ記録部12のシステム情報または地図情報をファイルデータ毎に、あるいはデータ記録部12の全データを更新する場合に、更新データの記録されたSDカードから必要とされる更新データを読み出す処理を行う。SDカード読み書き部14では、CPU15の指示(制御命令)に基づいて、SDカードにアクセスして必要な更新データを読み出し、CPU15では、SDカード読み書き部14によって読み出された更新データに基づいて、データ記録部12のデータを更新する処理を行う。なお、SDカード読み書き部14は、SDカードの情報を読み出すだけでなく、必要に応じて情報を書き込むことも可能となっている。さらに、SDカード読み書き部14の利用は、SDカードからシステム情報または地図情報を読み出してデータ記録部12を更新する場合だけには限定されない。例えば、SDカードに記録される音楽データを読み取って、車載スピーカから出力させたり、あるいは、SDカードに記録される映像や画像を読み出してディスプレイ部5に表示させることにも利用可能である。
CPU15は、データ記録部12に記録されるプログラムに従って、経路案内処理を行ったり、データ記録部12のデータを更新する処理を行ったりする役割を有している。CPU15が経路案内処理を行う場合には、図示を省略したGPSアンテナを介して車両の現在位置を取得し、さらに図示を省略したジャイロや車速パルス検出器を介して、車両の走行状態(進行方向、移動速度など)を取得する。そしてCPU15は、車両2の現在位置および走行状態に基づいて地図情報をディスプレイ部5に表示させて、必要に応じて音声情報により走行経路や交差点名などの案内を行う。CPU15が、データ記録部12のデータを更新する処理については後述する。
なお、CPU15の処理内容を示したプログラムは、必ずしもデータ記録部12に記録されるものには限定されない。例えば、データ記録部12とは別にプログラムを記録したROMなどを用意し、このROMに記録されるプログラムをカーナビゲーションシステム1の起動時にCPU15が読み込んで実行することにより、システムの起動処理を行うことが可能である。さらに、CPU15には、図示を省略したRAMなどを備えており、RAMをプログラム処理におけるワークエリアとして利用する。
[サーバ20について]
続いて、サーバ20について説明する。図4は、サーバ20の概略構成を示したブロック図である。サーバ20は、通信部(サーバ通信手段)21と、更新情報記録部(更新情報記録手段)22と、サーバ用CPU(更新差分データ作成手段)23と、ROM24と、RAM25とを備えている。
通信部21は、ネットワーク回線30との接続を行う役割を有している。具体的には、有線通信あるいは無線通信を用いてネットワーク回線30に接続し、サーバ用CPU23の指示(制御命令)に応じて、カーナビゲーションシステム1のID情報およびバージョン情報を取得し、また、更新差分データをカーナビゲーションシステム1へ出力する。通信部21として、例えば、一般的なNIC(ネットワーク・インターフェース・カード)などが該当する。
更新情報記録部22は、ハードディスク、SSDなどの一般的な補助記録装置により構成されている。更新情報記録部22には、カーナビゲーションシステム1のハード構成と、様々なバージョンの更新データ(部分的な更新データではなく全体の更新データ)とが記録されている。例えば、カーナビゲーションシステム1は、ハード構成に応じて実現可能な機能などが異なっており、またハード構成に基づく機能に応じて、データ記録部12のデータ構造が異なっている。このため、サーバ用CPU23は、通信部21を介して取得したカーナビゲーションシステム1のID情報に基づいて、データ記録部12のデータ構造を判断する。上述したように、データ記録部12には、予め規定された容量のアドレス範囲毎に、記録されるファイルデータのデータ構造が決められている。このため、サーバ用CPU23は、ID情報によりハード構成を特定することによって、データ記録部12に記録されるファイルデータの種類(内容、役割)およびその開始アドレスから終了アドレスまでの範囲(アドレス範囲)を把握することが可能となる。
また、更新情報記録部22には、データ記録部12に記録され得る様々なバージョンのデータが記録されている。サーバ用CPU23は、カーナビゲーションシステム1からバージョン情報を取得することによって、ID情報により特定されるハード構成における該当するバージョン情報のデータ内容と、最新の更新データのデータ内容とを判断することが可能になっている。このため、サーバ用CPU23では、取得された異なるバージョンのデータ内容に基づいて、データ記録部12のデータ更新を行うための更新差分データの作成を行うことが可能になっている。
ROM24は、サーバ用CPU23において差分データの作成処理を行うためのプログラム(例えば、図7においてフローチャートで示されたプログラム)が記録されている。サーバ用CPU23は、ROM24に記録されるプログラムに基づいて、後述する更新差分データの作成を行う。また、RAM25は、サーバ用CPU23における更新差分データの作成処理においてワークエリアとして利用される。
[データ更新処理について]
次に、カーナビゲーションシステム1およびサーバ20におけるデータ更新処理について説明する。なお、データ更新処理の説明を行うに当たって、カーナビゲーションシステム1のSDカード読み書き部14には、データを読み出し可能な状態で予めSDカードがセットされており、このSDカードには、最新バージョンのデータが記録されているものとする。
図5は、カーナビゲーションシステム1とサーバ20との間の情報の送受信を示したタイミングチャートである。また、図6は、カーナビゲーションシステム1におけるデータ更新処理を示したフローチャートを示し、図7は、サーバ20におけるデータ更新処理を示したフローチャートを示している。
まず、カーナビゲーションシステム1のCPU15は、サーバ20のサーバ用CPU23に対して、ID情報とバージョン情報とを出力する(ステップS.1)。CPU15は、ID情報とバージョン情報とをサーバ用CPU23に出力することにより、サーバ20に対して新しい更新データが存在するかどうか(データ記録部12に記録されるシステム情報および地図情報が最新バージョンの情報であるか否か)の確認を行う。その後、CPU15は、送信した情報に対応する返信情報をサーバ用CPU23から受信したか否かの判断を行い(ステップS.2)、返信情報を受信していない場合(ステップS.2においてNoの場合)には、返信情報を取得するまで、同じ処理を繰り返し実行する。
なお、返信情報とは、サーバ用CPU23が、ID情報およびバージョン情報に基づいてデータの更新処理を行うか否かの判断を行った結果の情報であって、後述するように、更新を必要とする情報が存在しない旨の情報か、ファイルデータ単位で更新が必要とされる旨の情報か、8Kバイト単位または64Kバイト単位の更新差分データかのいずれかが該当する。
一方で、サーバ用CPU23では、ネットワーク回線30を介して、いずれのカーナビゲーションシステム1のCPU15から、ID情報とバージョン情報とを受信したか否かの判断を行い(ステップS.31)、ID情報とバージョン情報とを受信するまで、同じ処理を繰り返す(ステップS.31においてNoの場合にステップS.31の受信判断処理を繰り返し実行する)。
そして、サーバ用CPU23が、ID情報とバージョン情報とを受信した場合(ステップS.31においてYesの場合)、ID情報に基づいて、情報の送信元であるカーナビゲーションシステム1を特定し、データ記録部12のデータ構造を判断する(ステップS.32)。次いで、サーバ用CPU23は、判断されたデータ記録部12のデータ構造に対応するシステム情報および地図情報であって、最新のバージョンの情報と受信したバージョン情報に基づく情報とを更新情報記録部22から読み出して、データの相違点を抽出する(ステップS.33)。
そして、サーバ用CPU23は、双方の情報においてデータの相違点が存在するか否かを判断し(ステップS.34)、相違点が存在しない場合(ステップS.34においてNoの場合)には、カーナビゲーションシステム1に対して、最新バージョンの情報がデータ記録部12に記録されているため、更新を必要とする情報が存在しない旨の情報を、カーナビゲーションシステム1のCPU15に対して出力し(ステップS.35)、データ更新処理を終了する。
一方で、データの相違点が存在する場合(ステップS.34においてYes場合)、サーバ用CPU23は、まず、ファイルデータ単位で更新を行う必要が生ずるほどの相違が存在するか否かを判断し(ステップS.36)、ファイルデータ単位で更新を必要とする場合(ステップS.36においてYesの場合)には、該当するアドレスと、そのデータ量とを抽出して、一時的に更新情報記録部22に記録する(ステップS.37)。
ここで、ファイルデータ単位で更新を必要とする場合とは、例えば、ファイルデータのデータ量が増減した場合などが該当する。上述したように、カーナビゲーションシステム1のデータ記録部12では、予め規定された容量のアドレス範囲毎に、予め記録されるファイルデータのデータ構造が決められている。このため、図3で説明したように、古いバージョンのファイルデータ(例えば、図3(a)に示すデータA1)に比べて、新しいバージョンのファイルデータ(例えば、図3(b)に示すデータA2)の方が、データ量が増えた場合(あるいは減った場合)には、該当するアドレスを基準として、古いファイルデータを新しいファイルデータに更新する処理を行う必要が生ずる。このような場合、サーバ用CPU23は、データの相違点に基づいて、ファイルデータ単位で更新を行う必要があると判断し、該当するアドレスとデータ量とを更新情報記録部22に記録する。
ファイルデータ単位で更新を必要としない場合(ステップS.36においてNoの場合)、または、ファイルデータ単位で更新を行うためのアドレスと、そのデータ量とを抽出した後(ステップS.37)に、サーバ用CPU23は、データの相違点が存在する位置(アドレス)とその相違するデータの連続性などを考慮して、更新差分データを作成する必要があるか否かの判断を行う(ステップS.38)。例えば、ファイルデータの全体のデータ量が増減した場合には、ファイルデータ全体が更新対象となるため、更新差分データを作成する必要がないと判断される。一方で、ファイルデータの全体のデータ量は増減しないが、ファイルデータ内の一部のデータだけを更新する必要がある場合には、この一部の更新対象のデータに基づいて更新差分データを作成する必要があると判断する。
そして、更新差分データを作成する必要があると判断した場合(ステップS.38においてYesの場合)、サーバ用CPU23は、相違するデータを8Kバイト単位で抽出して更新差分データを作成するか否か(具体的には、8Kバイトを基準とする更新差分データを作成するか、64Kバイトを基準とする更新差分データを作成するか否か)の判断処理を行う(ステップS.39)。ここで抽出された相違するデータを相違データという。
ここで、カーナビゲーションシステム1のデータ記録部12は、FLASHメモリにより構成されている。このため、FLASHメモリに記録されるデータを更新する場合には、まず、消去対象となるアドレスのデータを消去する必要がある。このデータの消去は、8Kバイト毎、あるいは64Kバイト毎に行うことができるので、8Kバイト単位で相違データを抽出して更新差分データを作成する場合には、8Kバイトのデータを消去した後に、新しい更新データを8Kバイトだけ書き込みする処理を行い、64Kバイト単位で相違データを抽出して更新差分データを作成する場合には、64Kバイトのデータを消去した後に、新しい更新データを64Kバイトだけ書き込みする処理を行う。
サーバ用CPU23が、更新差分データにおける相違データの抽出基準を、8Kバイト単位とするのか64Kバイト単位とするのかによって、データ記録部12のデータ更新に必要とされる時間が異なってくる。具体的には、データ記録部12において、相違データの抽出を行うデータ容量(このデータ容量をブロックサイズとする)を小さくすると、相違データに基づくデータの書き換え量を削減することができるため、データの書き込み時間を短縮することができる。つまり、8Kバイトをブロックサイズとして更新処理を行う方が、64Kバイトをブロックサイズとして更新処理を行うよりもデータの書き換え量を削減でき、データの書き込み時間を短縮することができる。
しかしながら、上述したようにFLASHメモリにおいてデータの更新を行う場合に、FLASHメモリの消去処理を行った後にデータの書き込み処理を行う必要があり、この消去処理に必要とされる時間は、8Kバイトをブロックサイズとして消去する場合であっても、64Kバイトをブロックサイズとして消去する場合であっても、同じ時間が必要とされる。このため、ブロックサイズを小さくすると、FLAHメモリにおける書き換えブロック数が増え、この書き換えブロック数の増加に伴ってデータの消去回数が増えるため、結果としてブロックサイズが大きい場合に比べて長い消去時間が必要になってしまうという問題があった。
サーバ用CPU23は、8Kバイトを基準としたブロックサイズ毎に相違点の存在を判断する場合のブロック数(以下、データの内容が相違するために更新する必要のあるブロックを差分ブロックといい、そのブロックの数を差分ブロック数とする)と、64Kバイトを基準としたブロックサイズ毎に相違点の存在を判断する場合のブロック数とを求めて、次の式1が成り立つか否かの判断を行う。
BN_8KB×(T_se+(T_bp×8×1024/WS))
<BN_64KB×(T_be+(T_bp×64×1024/WS)) ・・・式1
ここで、
BN_8KBは、ブロックサイズを8Kバイトにした場合の更新差分データの差分ブロック数
BN_64KBは、ブロックサイズを64Kバイトにした場合の更新差分データの差分ブロック数
T_seは、FLASHメモリの8Kバイト分のデータを消去するために必要とされる時間
T_beは、FLASHメモリの64Kバイト分のデータを消去するために必要とされる時間
T_bpは、FLASHメモリにおける1ワード分のデータの書き込み時間(より詳細には、FLASHメモリのバッファプログラミングモードのワードプログラミング時間)
WSは、FLASHメモリの1ワード当たりのバイト数(データ記録部12の場合には2バイト)
を示している。
T_se、T_be、T_bpは、全てFLASHメモリに依存するデータであるため、サーバ20の更新情報記録部22に、予めデータ記録部12のFLASHメモリに関するT_se、T_be、T_bpを記録させておくことができる。従って、サーバ用CPU23は、ID情報に基づいてカーナビゲーションシステム1のハード構成を判断する際に、該当するFLASHメモリ(データ記録部12の)のT_se、T_be、T_bpを、更新情報記録部22に記録されるデータに基づいて求めることができる。
さらに、WSは2バイトであり、BN_8KBとBN_64KBとは、相違データの抽出に伴って求めることができる。このため、サーバ用CPU23が式1のそれぞれに該当する値を代入しすることにより、式1が成り立つか否かの判断を行うことが可能となる。
なお、式1におけるT_seは、FLASHメモリにおける8Kバイト分のデータの消去処理時間、(T_bp×8×1024/WS)は、FLASHメモリにおける8Kバイト分のデータの書き込み処理時間、T_beは、FLASHメモリにおける64Kバイト分のデータの消去処理時間、(T_bp×64×1024/WS)は、FLASHメモリにおける64Kバイト分のデータの書き込み処理時間を示している。従って、式1は、ブロックサイズの相違に基づくデータの消去時間と書き込み時間との総和を比較したものに該当し、式1が成立する場合には、8Kバイトを基準としてデータ更新処理を行う方が、64Kバイトを基準としてデータ更新処理を行うよりも処理時間が短縮され、式1が成立しない場合には、64Kバイトを基準としてデータ更新処理を行う方が、8Kバイトを基準としてデータ更新処理を行うよりも処理時間が短縮されると判断することができる。
式1が成立する場合(ステップS.39においてYesの場合)、サーバ用CPU23は、8Kバイト単位で相違データを抽出して更新差分データを作成し(ステップS.40)、式1が成立しない場合(ステップS.39においてNoの場合)には、64Kバイト単位で相違データを抽出して更新差分データを作成して(ステップS.41)、更新情報記録部22に一時的に記録する。
図8は、更新差分データを作成する手順を説明するための図面である。
データ記録部12に記録される旧バージョンのデータをold/rom1.binで示し、最新バージョンのデータをnew/rom1.binとする。それぞれのデータは、上述したように8Kバイトあるいは64Kバイトをブロックサイズとした単位ブロック毎に分割されている。サーバ用CPU23は、このブロックサイズ毎にデータの相違点の有無を判断し、一部のデータであっても相違点が存在する場合には、該当する単位ブロック毎のアドレスを検出する。図8(a)には、アドレス0001で示される単位ブロックの一部において相違点(old/rom1.binにおける「02」とnew/rom1.binにおける「ff」)が存在し、また、アドレス0002で示される単位ブロックの一部において相違点(old/rom1.binにおける「0a」とnew/rom1.binにおける「00」)が存在する場合が示されている。
サーバ用CPU23は、図8(b)に示すように、該当する単位ブロックのアドレス0001、0002を抽出し、該当するアドレスの単位ブロック間において、旧バージョンのデータ(old/0001.rom1、old/0002.rom1)と最新バージョンのデータ(new/0001.rom1、new/0002.rom1)との差分をとって、図8(c)に示すように、更新差分データ(pat/rom1.pat)を作成する。更新差分データには、相違点が存在したアドレスとそのデータ内容とが記録されることになる。この更新差分データは、パッチファイルとして作成され、相違データがブロックサイズで抽出された更新差分データとそのアドレスとが記録されるため、全体的なデータ量を低減させることが可能となる。
なお、サーバ用CPU23が更新差分データを作成する方法は、上述した方法だけには限定されない。例えば、図8(b)に示すように、アドレス0001で示される単位ブロックの一部と、アドレス0002で示される単位ブロックの一部において相違点が存在する場合に、サーバ用CPU23が、該当する単位ブロックのアドレス0001、0002のブロックデータを結合して新たなファイルを作成し、さらに、差分のあるブロックに関するアドレス一覧ファイルを作成するものであってもよい。
その後、サーバ用CPU23は、全てのアドレス(ファイルデータを構成し得る全てのアドレス範囲)に対して、上述したステップS.36〜S.41の更新確認処理が行われたか否かを判断し(ステップS.42)、全てのアドレスに対してステップS.36〜S.41の処理が行われるまで(ステップS.42においてYesになるまで)、ステップS.36〜S.41の処理を繰り返す。
そして、サーバ用CPU23は、全てのアドレスにおいて、データの相違点を抽出して、ステップS.36〜S.41の処理が行われたものと判断した場合(ステップS.42においてYesの場合)に、作成された8Kバイト単位あるいは64Kバイト単位の更新差分データ・ファイルデータ単位で更新が必要とされる旨の情報などを、一時的に記録されていた更新情報記録部22から読み出して、カーナビゲーションシステム1のCPU15に対して出力する(ステップS.43)。
CPU15では、返信情報を受信した場合(ステップS.2においてYesの場合)、返信情報が、更新を必要とする情報が存在しない旨の情報であるか否かの判断を行う(ステップS.3)。返信情報が更新を必要とする情報が存在しない旨の情報である場合(ステップS.3においてYesの場合)、CPU15は、データ記録部12のデータ更新処理を終了する。
一方で、返信情報が、更新を必要とする情報が存在しない旨の情報ではない場合(ステップS.3においてNoの場合)、CPU15は、返信情報にファイルデータ単位で更新が必要とされる旨の情報が含まれているか否かの判断を行う(ステップS.4)。返信情報にファイルデータ単位で更新が必要とされる旨の情報が含まれている場合(ステップS.4においてYesの場合)、CPU15は、該当する情報から更新を行うアドレス情報とデータ量の情報とを取得する。そして、CPU15は、該当するアドレスのデータをSDカード読み書き部14を介してSDカードから読み出して、データ記録部12に記録される情報を更新する処理を行う(ステップS.5)。
本実施の形態に係るカーナビゲーションシステム1のデータ記録部12は、FLASHメモリであるため、FLASHメモリの消去を行った後でなければ、データの書き込みを行うことができない。そのため、データ記録部12に記載される情報の更新は、
(1)SDカードに記録されるファイルデータ単位の情報を、サーバ用CPU23より取得したアドレス情報とデータ量とに基づいて読み出す。
(2)SDカードより読み出した情報をSDRAM13に一時的に記録する。
(3)データ記録部12においてデータの更新対象となるアドレスを、サーバ用CPU23より取得したアドレス情報に基づいて判断し、当該アドレスから取得したデータ量に対応するデータ量だけデータを消去する。
(4)SDRAM13に記録された情報を読み出して、消去されたデータ記録部12に記録する。
という4つのステップを経て、データの更新が行われる。この処理により、予め規定された容量のアドレス範囲に対応するようにして、更新対象となるファイルデータの更新処理が行われることになる。
返信情報にファイルデータ単位で更新が必要とされる旨の情報が含まれていない場合(ステップS.4においてNoの場合)、あるいは、ファイルデータ単位でのデータの更新処理を行った場合(ステップS.5)に、CPU15は、返信情報に8Kバイト単位の更新差分データが含まれているか否かの判断を行う(ステップS.6)。
返信情報に8Kバイト単位の更新差分データが含まれている場合(ステップS.6においてYesの場合)、CPU15は、更新差分データに基づいて8Kバイト単位でのデータ更新処理を行う(ステップS.7)。
具体的にCPU15では、次の5つの処理を経てデータの更新処理を行う。
(1)CPU15が、更新差分データより更新対象となるデータ記録部12のアドレス情報を抽出する。
(2)CPU15が、抽出したアドレスから8Kバイト分の情報をデータ記録部12より読み出して、SDRAM13に一時的に記録する。
(3)CPU15が、更新差分データに記録される更新対象となる差分のデータを抽出し、SDRAM13に記録されたデータ記録部12の情報のうち、差分のデータだけを更新することにより更新後のデータを作成して、SDRAM13に記録する
(4)CPU15は、更新対象となるデータ記録部12の情報を、サーバ用CPU23より取得したアドレスに基づいて8Kバイト分だけ消去する。
(5)CPU15が、SDRAM13に記録される更新後のデータ(8Kバイト分のデータ)を読み出して、消去されたデータ記録部12の8Kバイト分のスペースに書き込みを行う。
このように、CPU15が上述した5つの処理を実行することにより、データ記録部12のデータが8Kバイトを基準として更新される。
返信情報に8Kバイト単位の更新差分データが含まれていない場合(ステップS.6においてNoの場合)、あるいは、8Kバイト単位の更新差分データを用いてデータの更新処理を行った場合(ステップS.7)に、CPU15は、返信情報に64Kバイト単位の更新差分データが含まれているか否かの判断を行う(ステップS.8)。
返信情報に64Kバイト単位の更新差分データが含まれている場合(ステップS.8においてYesの場合)、CPU15は、更新差分データに基づいて、64Kバイト単位でのデータ更新処理を行う(ステップS.9)。
具体的にCPU15では、次の5つの処理を経てデータの更新処理を行う。
(1)CPU15が、更新差分データより更新対象となるデータ記録部12のアドレス情報を抽出する。
(2)CPU15が、抽出したアドレスから64Kバイト分の情報をデータ記録部12より読み出して、SDRAM13に一時的に記録する。
(3)CPU15が、更新差分データに記録された更新対象となる差分のデータを抽出し、SDRAM13に記録されたデータ記録部12の情報のうち、差分のデータだけを更新することにより更新後のデータを作成して、SDRAM13に記録する
(4)CPU15は、更新対象となるデータ記録部12の情報を、サーバ用CPU23より取得したアドレスに基づいて64Kバイト分だけ消去する。
(5)CPU15が、SDRAM13に記録される更新後のデータ(64Kバイト分のデータ)を読み出して、消去されたデータ記録部12の64Kバイト分のスペースに書き込みを行う。
このように、CPU15が上述した5つの処理を実行することにより、データ記録部12のデータが64Kバイトを基準としデータの更新が実行されることになる。
返信情報に64Kバイト単位の更新差分データが含まれていない場合(ステップS.8においてNoの場合)、あるいは、64Kバイト単位の更新差分データを用いてデータの更新処理を行った場合(ステップS.9)に、CPU15は、サーバ用CPU23より取得した更新に関する情報に基づいて、更新対象となる全ての情報を更新したか否かの判断を行い(ステップS.10)、全ての情報の更新が完了していない場合(ステップS.10においてNoの場合)には、上述した処理(ステップS.4〜ステップS.9)の処理を繰り返し実行する。一方で、全ての情報の更新が完了した場合(ステップS.10においてYesの場合)、CPU15は、更新が完了した旨の情報を、ネットワーク回線30を介してサーバ用CPU23に出力して(ステップS.11)、データ記録部12のデータ更新処理を終了する。
サーバ用CPU23では、CPU15から更新が完了した旨の情報が受信されたか否かの判断を行い(ステップS.44)、情報が受信されない場合(ステップS.44においてNoの場合)には、受信判断処理(ステップS.44)を繰り返し実行する。
なお、通信回線のトラブルなどによってCPU15から更新が完了した旨の情報が受信できない場合や、更新が失敗して完了した旨の情報が受信されない場合もあり得るため、完了した旨の情報が受信されたか否かの判断処理においてタイマー設定を行い、ステップS.43による情報の送信後に、一定期間経過しても更新が完了した旨の情報が受信されない場合に、サーバ用CPU23が更新処理を強制的に終了するようにしてもよい。
更新が完了した旨の情報を受信した場合(ステップS.44においてYesの場合)、サーバ用CPU23は、更新情報記録部22に記録されるデータ記録部12のバージョン情報を、最新の情報に更新して(ステップS.45)、カーナビゲーションシステム1のデータ記録部12における更新処理を終了する。
このように、本実施の形態に係るサーバ20では、カーナビゲーションシステム1に関するバージョン情報とハード情報とを取得することにより、カーナビゲーションシステム1のデータ記録部12において更新処理が必要であるか否かの判断を行うことができる。またデータの更新処理が必要であると判断された場合には、必要なアドレスおよびデータ量を求めて、ファイルデータ単位でSDカードより読み出したデータに基づいてデータ記録部12の更新処理を行うか、サーバ20より送信する更新差分データに基づいてデータ記録部12の更新処理を行うかの判断を行うことができる。
さらに、更新差分データを作成する場合においても、更新対象となるデータ記録部12のハードウェア特性(具体的には、FLASHメモリの消去可能なデータ容量(ブロックサイズ))を考慮して、式1を基準に、
BN_8KB×(T_se+(T_bp×8×1024/WS))
<BN_64KB×(T_be+(T_bp×64×1024/WS)) ・・・式1
8Kバイトを基準とした更新差分データを作成するか、64Kバイトを基準とした更新差分データを作成するかの判断を行う。式1におけるT_se、T_be、T_bpは、全てFLASHメモリに依存するデータであるため、データ記録部12のFLASHメモリに関するT_se、T_be、T_bpを予めサーバ20で記録しておくことにより、データの更新処理において更新時間を短くすることが可能な形式(8Kバイトまたは64Kバイト)で更新差分データを作成することができる。
このため、カーナビゲーションシステム1において更新処理を行う場合に最も更新処理の時間を短縮可能な形式の更新差分データを用いて、データ記録部12のデータを更新することができるので、送信データ量の低減と共に、更新時間の短縮化を図ることが可能となる。
以上、本発明に係る更新差分データ作成装置について説明を行ったが、本発明に係る更新差分データ作成装置は上述した実施の形態には限定されない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
例えば、本実施の形態に係るカーナビゲーションシステム1では、データ記録部12としてFLASHメモリを用いた場合について説明を行った。しかしながら、近時のカーナビゲーションシステムでは、地図情報やシステム情報を記録する記録媒体として、SDカードを用いる機器も存在している。
SDカードもFLASHメモリの一種であり、データの書き込みを行う前に古いデータを消去してから、新たなデータの書き込みを行う必要がある点でFLASHメモリと共通する性質を有している。このため、SDカードにおいても1回毎の消去処理で消去可能なデータ容量をブロックサイズとして定義することができる。
また、SDカードには、データの更新(消去・読み込み・書き込み)制御を行うためのコントローラが予め設けられており、このコントローラによってデータの消去、読み込み・書き込みが行われることになる。但し、データの更新を行うためのブロックサイズが異なると、同じSDカードであっても、データ更新の処理時間が異なっていた。
このため、サーバ用CPU23において、SDカード毎に最適なブロックサイズを求めて、求められたブロックサイズ単位で更新差分データを作成することにより、SDカードにおけるデータ更新処理時間の短縮化を図ることが可能となる。
まず、サーバ用CPU23は、データ記録部12としてSDカードが使用された場合に、式2に示された値が最小になるように更新データのブロックサイズを決定する。
D(BS)/(Wth(BS)+Rth(BS)+Pth(BS))・・・式2
ここで、
BSは、更新差分データのブロックサイズを示し、
D(BS)は、書き換えデータ量を示し、
Wth(BS)は、SDカードにおける書き込みスループットを示し、
Rth(BS)は、SDカードにおける読み込みスループットを示し、
Pth(BS)は、更新差分データに基づいて更新用の新しいデータを作成するパッチ処理のスループット(パッチ処理スループット)を示している。
なお、書き込みスループットとは、単位時間当たりに書き込みを行うことが可能なデータのブロックサイズ数を示し、ブロックサイズとして設定されるバイト数に応じて値が変化し、また、SDカードのハード特性に応じて値が異なるという性質を有している。
また、読み込みスループットとは、単位時間当たりに読み込みを行うことが可能なデータのブロックサイズ数を示し、ブロックサイズとして設定されるバイト数に応じて値が変化し、また、SDカードのハード特性に応じて値が異なるという性質を有している。
さらに、パッチ処理のスループットとは、SDカードに記録されている古いバージョンのデータと更新差分データとに基づいて新しいバージョンのデータを作成する場合において、単位時間当たりに新しいバーションのデータを作成することが可能なブロックサイズ数を示し、パッチ処理に利用されるSDRAM13とSDカードとの間のメモリコピー・スループットに近似した値を示す。
書き換えデータ量D(BS)は、古いバージョンのデータと新しいバージョンのデータとの相違するデータにより求められるものである。また、Wth(BS)、Rth(BS)、Pth(BS)は、予めデータ記録部12のハードウェア特性に応じて求めておくことにより、更新情報記録部22に記録させておくことが可能である。
但し、Wth(BS)、Rth(BS)、Pth(BS)の値は、更新差分データのブロックサイズ(BS)に応じて値が変化するため、サーバ用CPU23は、更新情報記録部22に予め記録されるデータ記録部12のハードウェア毎のWth(BS)、Rth(BS)、Pth(BS)のデータに基づいて、式2の値を算出する処理を行う。
なお、SDカードにおけるデータの更新処理時間は、(1)書き込み時間、(2)読み込み時間、(3)パッチ処理時間との和により求めることができる。従って、SDカードにおける書き込みスループット(Wth(BS))と、SDカードにおける読み込みスループット(Rth(BS))と、パッチ処理のスループット(Pth(BS))とを共に高めることが可能な、ブロックサイズ(BS)を求めることにより、書き換えデータ量Dに対して効率的な書き込み処理、読み込み処理、パッチ処理を行うことが可能となり、結果として、データの更新処理時間の低減を図ることが可能となる。
このようにしてサーバ用CPU23において、更新差分データのブロックサイズ(BS)を求めて、このブロックサイズに基づく更新差分データを作成し、作成された更新差分データを用いてSDカードのコントローラがSDカードに記録されるデータの更新処理を行うことにより、SDカードにおけるデータの更新処理時間を従来よりも短くすることが可能となる。さらに、式2において最小となるブロックサイズを用いて更新差分データを作成し、ネットワーク回線30を介してカーナビゲーションシステム1へと送信するため、送信データ量の低減を図ることが可能となる。
1 …カーナビゲーションシステム(クライアント)
2 …車両
5 …ディスプレイ部
6 …タッチパネル部
10 …(カーナビゲーションシステムの)本体部
11 …(カーナビゲーションシステムの)通信部(クライアント通信手段)
12 …データ記録部(FLASHメモリ、SDカード)
13 …SDRAM
14 …SDカード読み書き部
15 …(カーナビゲーションシステムの)CPU(新バージョンデータ生成手段、メモリデータ消去手段、データ書き込み手段)
20 …サーバ(更新差分データ作成装置、サーバ)
21 …(サーバ用の)通信部(サーバ通信手段)
22 …更新情報記録部(更新情報記録手段)
23 …サーバ用CPU(更新差分データ作成手段)
24 …(サーバ用の)ROM
25 …(サーバ用の)RAM
30 …ネットワーク回線

Claims (6)

  1. FLASHメモリに記録されている古いバージョンのデータと、当該古いバージョンのデータよりも新しいバージョンのデータとが記録された更新情報記録手段と、
    前記FLASHメモリにおいて1回毎の消去処理で消去可能なデータ容量をブロックサイズと定義し、前記更新情報記録手段に記録された新しいバージョンのデータと古いバージョンのデータとを比較して、データ内容の異なる部分のデータを相違データとして前記ブロックサイズ単位で抽出し、抽出された前記ブロックサイズ単位の前記相違データを組み合わせることによって更新差分データを作成する更新差分データ作成手段と
    を備え、
    前記更新差分データ作成手段は、
    小さなデータ容量であるSバイトと大きなデータ容量であるLバイトとを、前記FLASHメモリの前記ブロックサイズとして利用することが可能である場合に、前記ブロックサイズをSバイトにした場合の前記更新差分データのブロック数BN_Sと、前記ブロックサイズをLバイトにした場合の前記更新差分データのブロック数BN_Lとを算出し、下記の式が成立するときには前記小さなデータ容量であるSバイト単位で前記相違データを抽出して前記更新差分データを作成し、下記の式が成立しないときには前記大きなデータ容量であるLバイト単位で前記相違データを抽出して前記更新差分データを作成すること
    を特徴とする更新差分データ作成装置。
    BN_S×(T_se+(T_bp×S/WS))<BN_L×(T_be+(T_bp×L/WS))
    ただし、
    BN_Sは、前記ブロックサイズをSバイトにした場合の前記更新差分データのブロック数、
    BN_Lは、前記ブロックサイズをLバイトにした場合の前記更新差分データのブロック数、
    T_seは、前記FLASHメモリにおいてSバイト分のデータを消去するために必要とされる時間、
    T_beは、前記FLASHメモリにおいてLバイト分のデータを消去するために必要とされる時間、
    T_bpは、前記FLASHメモリにおける1ワード分のデータの書き込み時間、
    WSは、前記FLASHメモリにおける1ワード当たりのバイト数
    を示し、
    前記FLASHメモリについてのT_se、T_be、T_bp、WSのデータは予め前記更新情報記録手段に記録されていることを特徴とする。
  2. SDカードに記録されている古いバージョンのデータと、当該古いバージョンのデータよりも新しいバージョンのデータとが記録された更新情報記録手段と、
    前記SDカードにおいて1回毎の消去処理で消去可能なデータ容量をブロックサイズと定義し、前記更新情報記録手段に記録された新しいバージョンのデータと古いバージョンのデータとを比較して、データ内容の異なる部分のデータを相違データとして前記ブロックサイズ単位で抽出し、抽出された前記ブロックサイズ単位の前記相違データを組み合わせることによって更新差分データを作成する更新差分データ作成手段と
    を備え、
    前記SDカードのブロックサイズとして複数のデータ容量を利用することが可能である場合には、前記更新情報記録手段に、異なるデータ容量のブロックサイズBS毎に、前記SDカードの書き込みスループットWth(BS)と、前記SDカードの読み込みスループットRth(BS)と、更新差分データに基づいて前記新しいバーションのデータを作成するパッチ処理のパッチ処理スループットPth(BS)とが記録され、
    前記更新差分データ作成手段は、
    前記更新差分データのデータ量がD(BS)である場合において、前記更新情報記録手段にブロックサイズBS毎に記録される複数の書き込みスループットWth(BS)と、複数の読み込みスループットRth(BS)と、複数のパッチ処理スループットPth(BS)を読み出して、D(BS)/(Wth(BS)+Rth(BS)+Pth(BS))の値を最小とするブロックサイズBSを求めて、当該ブロックサイズBS単位で前記相違データを抽出することによって前記更新差分データを作成すること
    を特徴とする更新差分データ作成装置。
  3. 古いバージョンのデータが記録されるFLASHメモリと、
    該FLASHメモリにおいて1回毎の消去処理で消去可能なデータ容量をブロックサイズと定義し、前記古いバージョンのデータと新しいバーションのデータとにおいてデータ内容の異なる部分のデータを相違データとして前記ブロックサイズ単位で抽出して組み合わせることにより作成された更新差分データと、前記FLASHメモリに記録される古いバーションのデータとに基づいて、新しいバーションのデータを生成する新バージョンデータ生成手段と、
    前記ブロックサイズ単位で前記FLASHメモリのデータを消去するメモリデータ消去手段と、
    該メモリデータ消去手段により消去された前記FLASHメモリの領域に、前記新バージョンデータ生成手段により生成された新しいバーションのデータを書き込むデータ書き込み手段と、
    前記古いバージョンのバージョン情報をネットワーク回線を介してサーバへ出力すると共に、前記更新差分データを前記ネットワーク回線を介して前記サーバより受信することが可能なクライアント通信手段と
    を有するクライアントと、
    前記FLASHメモリに記録され得る全てのバージョンのデータが記録された更新情報記録手段と、
    前記クライアント通信手段により出力された前記バージョン情報を前記ネットワーク回線を介して受信すると共に、前記更新差分データを前記ネットワーク回線を介して前記クライアントへ出力することが可能なサーバ通信手段と、
    該サーバ通信手段により受信された前記バージョン情報に該当するバージョンのデータを、前記更新情報記録手段に記録されるデータより取得し、取得されたバージョンのデータと前記更新情報記録手段に記録される新しいバージョンのデータとを比較して、前記相違データを抽出することにより、更新差分データを作成する更新差分データ作成手段と
    を有するサーバとを備え、
    前記更新差分データ作成手段は、
    小さなデータ容量であるSバイトと大きなデータ容量であるLバイトとを、前記FLASHメモリの前記ブロックサイズとして利用することが可能である場合に、前記ブロックサイズをSバイトにした場合の前記更新差分データのブロック数BN_Sと、前記ブロックサイズをLバイトにした場合の前記更新差分データのブロック数BN_Lとを算出し、下記の式が成立するときには前記小さなデータ容量であるSバイト単位で前記相違データを抽出して前記更新差分データを作成し、下記の式が成立しないときには前記大きなデータ容量であるLバイト単位で前記相違データを抽出して前記更新差分データを作成し、
    前記サーバ通信手段は、前記更新差分データ作成手段により作成された前記更新差分データを前記クライアントに対して出力し、
    前記クライアント通信手段は、前記サーバによって出力された前記更新差分データを受信し、
    前記新バージョンデータ生成手段は、前記クライアント通信手段により受信された前記更新差分データと、前記FLASHメモリに記録される古いバージョンのデータとに基づいて、新しいバーションのデータを生成し、
    前記メモリデータ消去手段は、前記クライアント通信手段により受信された前記更新差分データを構成するブロックサイズに基づいて、当該ブロックサイズ単位で前記FLASHメモリのデータを消去し、
    前記データ書き込み手段は、前記メモリデータ消去手段により消去された前記FLASHメモリの領域に、前記新バージョンデータ生成手段により生成された新しいバーションのデータを、前記ブロックサイズ単位で書き込むこと
    を特徴とするデータ更新システム。
    BN_S×(T_se+(T_bp×S/WS))<BN_L×(T_be+(T_bp×L/WS))
    ただし、
    BN_Sは、前記ブロックサイズをSバイトにした場合の前記更新差分データのブロック数、
    BN_Lは、前記ブロックサイズをLバイトにした場合の前記更新差分データのブロック数、
    T_seは、前記FLASHメモリにおいてSバイト分のデータを消去するために必要とされる時間、
    T_beは、前記FLASHメモリにおいてLバイト分のデータを消去するために必要とされる時間、
    T_bpは、前記FLASHメモリにおける1ワード分のデータの書き込み時間、
    WSは、前記FLASHメモリにおける1ワード当たりのバイト数
    を示し、
    前記FLASHメモリについてのT_se、T_be、T_bp、WSのデータは予め前記更新情報記録手段に記録されていることを特徴とする。
  4. 古いバージョンのデータが記録されるSDカードと、
    前記SDカードにおいて1回毎の消去処理で消去可能なデータ容量をブロックサイズと定義し、前記古いバージョンのデータと新しいバーションのデータとにおいてデータ内容の異なる部分のデータを相違データとして前記ブロックサイズ単位で抽出して組み合わせることにより作成された更新差分データと、前記SDカードに記録される古いバーションのデータとに基づいて新しいバーションのデータを生成する新バージョンデータ生成手段と、
    前記ブロックサイズ単位で前記SDカードのデータの書き込みを行うデータ書き込み手段と、
    前記古いバージョンのバージョン情報をネットワーク回線を介してサーバへ出力すると共に、前記更新差分データを前記ネットワーク回線を介して前記サーバより受信することが可能なクライアント通信手段と
    を有するクライアントと、
    前記SDカードに記録され得る全てのバージョンのデータが記録された更新情報記録手段と、
    前記クライアント通信手段により出力された前記バージョン情報を前記ネットワーク回線を介して受信すると共に、前記更新差分データを前記ネットワーク回線を介して前記クライアントへ出力することが可能なサーバ通信手段と、
    該サーバ通信手段により受信された前記バージョン情報に該当するバージョンのデータを、前記更新情報記録手段に記録されるデータより取得し、取得されたバージョンのデータと前記更新情報記録手段に記録される新しいバージョンのデータとを比較して、前記相違データを抽出することにより、更新差分データを作成する更新差分データ作成手段と
    を有するサーバとを備え、
    前記SDカードのブロックサイズとして複数のデータ容量を利用することが可能である場合には、前記更新情報記録手段に、異なるデータ容量のブロックサイズBS毎に、前記SDカードの書き込みスループットWth(BS)と、前記SDカードの読み込みスループットRth(BS)と、更新差分データに基づいて前記新しいバーションのデータを作成するパッチ処理のパッチ処理スループットPth(BS)とが記録され、
    前記更新差分データ作成手段は、
    前記更新差分データのデータ量がD(BS)である場合において、前記更新情報記録手段にブロックサイズBS毎に記録される複数の書き込みスループットWth(BS)と、複数の読み込みスループットRth(BS)と、複数のパッチ処理スループットPth(BS)を読み出して、D(BS)/(Wth(BS)+Rth(BS)+Pth(BS))の値を最小とするブロックサイズBSを求めて、当該ブロックサイズBS単位で前記相違データを抽出することによって前記更新差分データを作成し、
    前記サーバ通信手段は、前記更新差分データ作成手段により作成された前記更新差分データを前記クライアントに対して出力し、
    前記クライアント通信手段は、前記サーバによって出力された前記更新差分データを受信し、
    前記新バージョンデータ生成手段は、前記クライアント通信手段により受信された前記更新差分データと、前記SDカードに記録される古いバージョンのデータとに基づいて、新しいバーションのデータを生成し、
    前記データ書き込み手段は、前記新バージョンデータ生成手段において生成された新しいバーションのデータを、前記更新差分データの前記ブロックサイズ単位で前記SDカードに書き込む
    ことを特徴とするデータ更新システム。
  5. FLASHメモリに記録されている古いバージョンのデータと、当該古いバージョンのデータよりも新しいバージョンのデータとが記録された更新情報記録手段と、
    前記FLASHメモリにおいて1回毎の消去処理で消去可能なデータ容量をブロックサイズと定義し、前記更新情報記録手段に記録された新しいバージョンのデータと古いバージョンのデータとを比較して、データ内容の異なる部分のデータを相違データとして前記ブロックサイズ単位で抽出し、抽出された前記ブロックサイズ単位の前記相違データを組み合わせることによって更新差分データを作成する更新差分データ作成手段と、
    を備える更新差分データ作成装置において、前記更新差分データ作成手段に、前記更新差分データを作成させるための更新差分データ作成プログラムであって、
    前記更新差分データ作成手段に、
    小さなデータ容量であるSバイトと大きなデータ容量であるLバイトとを、前記FLASHメモリの前記ブロックサイズとして利用することが可能である場合に、前記ブロックサイズをSバイトにした場合の前記更新差分データのブロック数BN_Sと、前記ブロックサイズをLバイトにした場合の前記更新差分データのブロック数BN_Lとを算出させるブロック数算出ステップと、
    下記の式が成立するときには前記小さなデータ容量であるSバイト単位で前記相違データを抽出して前記更新差分データを作成させ、下記の式が成立しないときには前記大きなデータ容量であるLバイト単位で前記相違データを抽出して前記更新差分データを作成させる更新差分データ作成ステップと
    を実行させるための更新差分データ作成プログラム。
    BN_S×(T_se+(T_bp×S/WS))<BN_L×(T_be+(T_bp×L/WS))
    ただし、
    BN_Sは、前記ブロックサイズをSバイトにした場合の前記更新差分データのブロック数、
    BN_Lは、前記ブロックサイズをLバイトにした場合の前記更新差分データのブロック数、
    T_seは、前記FLASHメモリにおいてSバイト分のデータを消去するために必要とされる時間、
    T_beは、前記FLASHメモリにおいてLバイト分のデータを消去するために必要とされる時間、
    T_bpは、前記FLASHメモリにおける1ワード分のデータの書き込み時間、
    WSは、前記FLASHメモリにおける1ワード当たりのバイト数
    を示し、
    前記FLASHメモリについてのT_se、T_be、T_bp、WSのデータは予め前記更新情報記録手段に記録されていることを特徴とする。
  6. SDカードに記録されている古いバージョンのデータと、当該古いバージョンのデータよりも新しいバージョンのデータとが記録され、さらに、前記SDカードにおいて1回毎の消去処理で消去可能なデータ容量をブロックサイズと定義し、前記SDカードのブロックサイズとして複数のデータ容量を利用することが可能である場合に、異なるデータ容量のブロックサイズ毎に、前記SDカードの書き込みスループットWth(BS)と、前記SDカードの読み込みスループットRth(BS)と、更新差分データに基づいて前記新しいバーションのデータを作成するパッチ処理のパッチ処理スループットPth(BS)とが記録された更新情報記録手段と、
    前記更新情報記録手段に記録された新しいバージョンのデータと古いバージョンのデータとを比較して、データ内容の異なる部分のデータを相違データとして前記ブロックサイズ単位で抽出し、抽出された前記ブロックサイズ単位の前記相違データを組み合わせることによって更新差分データを作成する更新差分データ作成手段と
    を備える更新差分データ作成装置において、前記更新差分データ作成手段に、前記更新差分データを作成させるための更新差分データ作成プログラムであって、
    前記更新差分データ作成手段に、
    前記更新差分データのデータ量がD(BS)である場合において、前記更新情報記録手段にブロックサイズ毎に記録される複数の書き込みスループットWth(BS)と、複数の読み込みスループットRth(BS)と、複数のパッチ処理スループットPth(BS)を読み出させて、D(BS)/(Wth(BS)+Rth(BS)+Pth(BS))の値を最小とするブロックサイズBSを求めさせる最小ブロックサイズ算出ステップと、
    該最小ブロックサイズ算出ステップにおいて算出された前記ブロックサイズBS単位で前記相違データを抽出することによって前記更新差分データを作成させる更新差分データ作成ステップと
    を実行させるための更新差分データ作成プログラム。
JP2011050716A 2011-03-08 2011-03-08 更新差分データ作成装置、データ更新システムおよび更新差分データ作成プログラム Active JP5653259B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011050716A JP5653259B2 (ja) 2011-03-08 2011-03-08 更新差分データ作成装置、データ更新システムおよび更新差分データ作成プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011050716A JP5653259B2 (ja) 2011-03-08 2011-03-08 更新差分データ作成装置、データ更新システムおよび更新差分データ作成プログラム

Publications (2)

Publication Number Publication Date
JP2012190075A JP2012190075A (ja) 2012-10-04
JP5653259B2 true JP5653259B2 (ja) 2015-01-14

Family

ID=47083196

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011050716A Active JP5653259B2 (ja) 2011-03-08 2011-03-08 更新差分データ作成装置、データ更新システムおよび更新差分データ作成プログラム

Country Status (1)

Country Link
JP (1) JP5653259B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6568947B2 (ja) 2015-09-29 2019-08-28 日立オートモティブシステムズ株式会社 車載制御装置、プログラム更新システム、及び、プログラム更新ソフトウェア
EP3611614A4 (en) 2017-03-24 2020-12-23 Hitachi Automotive Systems, Ltd. IN-CAR CONTROLLER AND PROGRAM UPDATE SOFTWARE
JP7087334B2 (ja) * 2017-10-13 2022-06-21 株式会社デンソー 電子制御装置
CN111684416B (zh) 2018-02-16 2023-09-29 日立安斯泰莫株式会社 车辆控制装置及程序更新系统
CN111488410B (zh) * 2019-01-25 2023-05-09 阿里巴巴集团控股有限公司 Nds数据的差分处理、更新方法和装置以及电子设备
KR102088167B1 (ko) * 2019-08-27 2020-03-12 루나 주식회사 소프트웨어 업데이트 에이전트 장치 및 이를 통한 패치방법
KR102088164B1 (ko) 2019-08-27 2020-03-12 루나 주식회사 소프트웨어 업데이트를 위한 신구 데이터간의 차분 생성 방법 및 그 장치
KR102088170B1 (ko) * 2019-08-27 2020-03-12 루나 주식회사 신구 데이터간의 차분에 대한 데이터 구조화 방법 및 그 디바이스
US11231878B2 (en) * 2019-10-31 2022-01-25 Arm Ip Limited Content modification control
WO2021131754A1 (ja) * 2019-12-24 2021-07-01 京セラ株式会社 通信機器及びプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5832493A (en) * 1997-04-24 1998-11-03 Trimble Navigation Limited Flash file management system
JP4153324B2 (ja) * 2003-01-31 2008-09-24 松下電器産業株式会社 差分データ生成装置及び方法、更新後データ復元装置及び方法、並びにプログラム
WO2005015406A1 (ja) * 2003-08-06 2005-02-17 Matsushita Electric Industrial Co., Ltd. 半導体メモリカード、アクセス装置及びアクセス方法
US20080288710A1 (en) * 2004-01-26 2008-11-20 Takuji Maeda Semiconductor Memory Device and Its Control Method
JP5005961B2 (ja) * 2006-06-09 2012-08-22 アイシン・エィ・ダブリュ株式会社 データ更新システム、ナビゲーション装置、及びデータ更新方法
JP2010176191A (ja) * 2009-01-27 2010-08-12 Mitsubishi Electric Corp データ送信装置及びデータ記憶装置及びデータ更新システム及びコンピュータプログラム及びデータ更新方法
WO2010134300A1 (ja) * 2009-05-21 2010-11-25 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム、データ書き込み方法、および、プログラム

Also Published As

Publication number Publication date
JP2012190075A (ja) 2012-10-04

Similar Documents

Publication Publication Date Title
JP5653259B2 (ja) 更新差分データ作成装置、データ更新システムおよび更新差分データ作成プログラム
JP4065202B2 (ja) 地図データ処理装置およびセンターシステム
JP4531582B2 (ja) 地図更新処理用データ作成方法、地図更新方法及び装置
JP4961606B2 (ja) データ管理システム、更新用ファイル生成システム、及び、データ更新方法
US8190811B2 (en) Defragmentation of solid state memory
JP4418439B2 (ja) 不揮発性記憶装置およびそのデータ書込み方法
US9015695B2 (en) Information processing apparatus and information processing method
JP3922857B2 (ja) ナビゲーションシステム
JP2001209543A (ja) フラッシュ・マイコンにおけるプログラム書き換え方法
JP2010020586A (ja) データ処理装置
JP6123766B2 (ja) データ読み出し装置、プログラムおよびデータ読み出し方法
JP2008305061A (ja) メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
JP5717971B2 (ja) ナビゲーション装置およびナビゲーション方法
JP5759759B2 (ja) カーナビゲーションシステム
JP5855781B2 (ja) カーナビゲーションシステム
JP6005826B2 (ja) カーナビゲーションシステムおよびカーナビゲーションシステムのデータ更新方法
TW201621668A (zh) 資料儲存裝置及其資料寫入方法
JP2009053993A (ja) ファイルシステム管理装置
JP4468342B2 (ja) データ管理方法
JPWO2009022388A1 (ja) リムーバブルメディア、フォーマット装置、フォーマットシステム、フォーマット方法、及びフォーマットプログラム
JP5424574B2 (ja) ナビゲーション装置
JP4933532B2 (ja) 追記型記録媒体に対するデータ記録方法及びデータ記録装置
US20050041479A1 (en) Information recording and reproducing device, information recording and reproducing mehtod, and program
JP2010128605A (ja) 情報記憶装置、データ記憶方法、およびプログラム
US20100094804A1 (en) Method and Device for Updating a Database, and Computer Program Product

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140214

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140919

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: 20141021

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141118

R150 Certificate of patent or registration of utility model

Ref document number: 5653259

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250