トップ :: G 物理学 :: G06 計算;計数




【発明の名称】 空間的に組織された地理データをブロックでアクセスするシステム及びその方法
【発明者】 【氏名】リチャード エイ アシュビー

【要約】 【課題】地理データを使用する複数の異なる計算プラットホームにおいて、I/O操作を最適化できる方法を提供する。

【解決手段】与えられた大きさのパーセルに空間的に組織された地理データを使用する計算プラットホームが、与えられた大きさよりも大きいパーセル・ブロック大きさを指定できる方法。そして、実行時中に、地理データは計算プラットホームによりパーセル・ブロック大きさよりも大きくない1つ又は複数のパーセルのグループでアクセスされる。1つの実施の形態では、計算プラットホームの初期化時又は後に、パーセル・ブロックに対応するパーセルのグループ化が決定される。各パーセル・ブロックは最大パーセル大きさよりも大きいが、最大パーセル・ブロック大きさよりも大きくない。
【特許請求の範囲】
【請求項1】 異なる計算プラットホーム上で使用する地理データを提供する方法であって、複数の異なる計算プラットホーム上で使用するため、各々が与えられた大きさを有するパーセルに空間的に組織されている地理データを与え、前記複数の異なる計算プラットホームの少なくとも幾つかの各々において、前記プラットホームのために、前記与えられた大きさよりも大きいパーセル・ブロックの大きさを選択するソフトウェア・プログラムを実行し、そして前記ソフトウェア・プログラムが実行されているそれらのコンピュータ・プラットホーム上において、各々が前記パーセル・ブロックの大きさを越えない大きさを有するグループとしてパーセルのブロックを一緒にアクセスする、各ステップを含む方法。
【請求項2】 前記地理データが、コンピュータ読取可能媒体上で前記複数の異なる計算プラットホームに提供される請求項1に記載の方法。
【請求項3】 前記地理データが、前記複数の異なる計算プラットホームにおいて、CD−ROMデイスク上で記憶されている請求項1に記載の方法。
【請求項4】 前記地理データが、空間的にパーセル化されている請求項1に記載の方法。
【請求項5】 前記ソフトウェア・プログラムが、初期化の際に実行される請求項1に記載の方法。
【請求項6】 前記パーセルが、インターリーブされた異なるタイプの地理データを一緒に含む請求項1に記載の方法。
【請求項7】 前記アクセスするステップが、どんなパーセルの地理データがアクセスされる時は何時でも実行される請求項1に記載の方法。
【請求項8】 異なる計算プラットホーム上で使用する地理データを提供する方法であって、複数の異なる計算プラットホーム上で使用するため、各々が与えられた大きさを有するパーセルに空間的に組織されている地理データを与え、前記複数の異なる計算プラットホームの少なくとも幾つかの各々において、前記パーセルの各々を複数の別個のパーセル・ブロックの1つに割当てるソフトウェア・プログラムを実行し、そしてどんな特定のパーセル内の地理データが必要とされる時は何時でも、前記特定のパーセルが割当てられたそのパーセル・ブロックに割当てられた全てのパーセルをアクセスする、各ステップを含む方法。
【請求項9】 前記パーセル・ブロックは前記与えられた大きさよりも大きさが大きい請求項8に記載の方法。
【請求項10】 前記地理データが、コンピュータ読取可能媒体上で前記複数の異なる計算プラットホームに提供される請求項8に記載の方法。
【請求項11】 前記地理データが、前記複数の異なる計算プラットホームにおいて、CD−ROMデイスク上で記憶されている請求項8に記載の方法。
【請求項12】 前記地理データが、空間的にパーセル化されている請求項8に記載の方法。
【請求項13】 前記ソフトウェア・プログラムが、初期化の際に実行される請求項8に記載の方法。
【請求項14】 前記パーセルが、インターリーブされた異なるタイプの地理データを一緒に含む請求項8に記載の方法。
【請求項15】 各々が与えられた大きさのデータのパーセルに空間的に組織された地理データを使用する計算プラットホームを操作する方法であって、前記与えられた大きさよりも大きいパーセル・ブロック大きさを選択するプログラムを実行し、前記パーセルいずれか1つ内のデータが必要とされる時は何時でも、前記パーセル・ブロック大きさに一致する複数のパーセルを一緒にアクセスする、各ステップを含む方法。
【請求項16】 前記実行するステップが、実行時間中に行なわれる請求項15に記載の方法。
【請求項17】 前記実行するステップがさらに、前記グループ中の前記パーセルのいずれか1つ内のどんなデータが必要な時は何時でも、グループとして一緒にアクセスされるべきパーセルのグループを識別する配列を構築する、ことを含む請求項15に記載の方法。
【請求項18】 前記構築するステップが、初期化時に実行される請求項17に記載の方法。
【請求項19】 前記構築するステップが、バックグランド・タスクとして実行される請求項17に記載の方法。
【請求項20】 前記構築するステップが完了するまで、データのパーセルを個別にアクセスすることをさらに含む請求項17に記載の方法。
【発明の詳細な説明】【0001】本明細書は著作権保護を受ける部分を含む。著作権者は本明細書又は特許庁のフアイル又はレコードに表されているような複写については異議を有さないが、その他についてはどんなものでも全ての著作権を留保する。
【0002】
【発明の属する技術分野】本発明はナビゲーション・システムに使用される地理的データに関し、より詳細には、本発明は改良された性能を与えるナビゲーション・システムにおける地理データの使用方法に関する。
【0003】
【従来の技術】ナビゲーション・システム(汎用計算プラットホームなどの計算プラットホームの他のタイプ上に提供されたナビゲーション応用を含む)は地理データを使用する。ナビゲーション・システム及びナビゲーション応用は地理データを既知の方法で使用するため、ナビゲーション・システム又はナビゲーション応用の性能を改良するように地理データを組織及び配列できる。米国特許第5,974,419号、第5,968,109号及び第5,953,722号には、ナビゲーション・システムの性能を改良するために地理データを組織及び配列する方法が記載されている。
【0004】前述の特許に記載されているように、空間的データはパーセルに分割され、各パーセルは地理的に矩形の面積に位置する地理的特徴(例えば、道、交差点、興味ある場所、川、湖等)を表すデータを含む。各パーセル内のデータ量は、特定の最大パーセルの大きさを越えないように制限される。空間的データをパーセルに分割する方法は、「パーセル化」と呼ばれ、そしてパーセルに組織されたデータは「パーセル化された」と呼ばれる。図1乃至3は、異なる最大パーセル大きさを使用してパーセル化した同じ地理的データを示す。
【0005】空間的にパーセル化されたデータは、CD−ROMデイスク、DVDデイスク、ハード・デイスク等のさまざまな物理媒体に記憶される。パーセル化された地理データはこのような媒体からナビゲーション・システム及びナビゲーション応用によりアクセスされて、使用される。
【0006】
【発明が解決しようとする課題】地理データをパーセル化するために最適な大きさを決定することは、いくつかの異なる要素のバランスを取ることを含む。ナビゲーション・システムが媒体からデータを読み取りナビゲーション・システム(又は他のコンピュータ・プラットホーム)のメモリ内に入れる時、各I/O動作に関連したオーバーヘッドが存在する。例えば、CD−ROMデイスクから2つの8Kパーセルを別個に読取ることは1つの16Kパーセルを読取るよりも、より長い時間がかかる。従って、I/O性能は平均パーセル大きさが小さくなりすぎる時に低下する。
【0007】一方、ナビゲーション・システムの通常の使用中、システムのバッフア・メモリ中に幾つかのパーセルのデータを同時に保持することが好ましい。いくつかのシステムは制限されたメモリ資源を有する。これはパーセルの大きさの上限を課する。もし、パーセルが利用可能なバッフア・メモリと比較して相対的に大きければ、一度にバッフア・メモリ内に相対的に少ない数のパーセルしか記憶できない。従って、パーセルはバッフア空間が異なるパーセルに対して必要となるために、より頻繁に廃棄されなければならないであろう。しかし、廃棄されたパーセルはすぐ後に必要となるかもしれない。従って、廃棄されたパーセルは再度読み出されなければならず、性能を低下させる。
【0008】テスト又は解析が、どのようなパーセルの大きさにおいてこれら2つの制約がバランスされてI/O性能が最適化されるかを示唆することができる。しかし、最適なパーセルの大きさは、1つのハードウエア・プラットホームと他のものでは変化するであろう。1つのプラットホームに対して最適なパーセルの大きさは異なるプラットホームでは最適以下となるであろう。
【0009】従って、ナビゲーション・システムにおいて性能を改良する地理データを使用する方法が必要である。
【0010】
【課題を解決するための手段】本発明は、これら及びその他の目的を達成するために、本発明は与えられた大きさのパーセルに空間的に組織された地理データを使用するコンピュータ・プラットホームが、与えられた大きさよりも大きいパーセル・ブロック大きさを指定できる方法を含む。その後、実行時に、地理データはコンピュータ・プラットホームによりパーセルのブロック大きさよりも大きくない1つ又は複数のパーセルのグループでアクセスされる。
【0011】1つ実施の形態によれば、コンピュータ・プラットホーム初期化時又はその後に、パーセル・ブロックに対応したパーセルのグループ化が決定される。各パーセル・ブロックは最大のパーセル大きさよりも大きいが、最大パーセル・ブロック大きさよりも大きくない。グループ及びグループに対応するパーセルを識別するデータはコンピュータ・プラットホームに記憶されて、グループ及びグループに対応するパーセルを識別するデータはいかなるパーセルの1つの中に有る地理データが必要とされる時には何時でもパーセル・ブロックに対応した全てのパーセルをアクセスするのに使用される。
【0012】
【発明の実施の形態】1.ブロックでパーセルを読み出地理データが空間的に組織されたパーセルに記憶でき、さらに性能を改良するために1つのI/O操作により読まれるデータ量がプラットホームにより調整できるような態様でデータがアクセスできて使用できるシステム及び方法が説明される。開示されたシステム及び方法によれば、CD−ROMデイスク、DVDデイスク、ハード・ドライブなどの媒体上のデータ記憶構成は、プラットホームにより変化しない。その代り、異なるハードウェア・プラットホームにおいて同じ記憶媒体構成が使用できる。しかし、各々の異なったプラットホームにおいては、データは性能を改良するためにアクセスが異なる。
【0013】開示された方法は従来のレコードの読取方法とは、データ・レコードが順次に記憶されて処理される時に使用されるブロックにおいて異なる。ここにおいて開示されるブロック化の方法は、空間的に組織されたデータのパーセルは空間的にアクセスされる、すなわち、互いに空間的に近い領域を表すパーセルは近い時間で一緒に必要とされる可能性のため、単純なレコードのブロック化とは異なる。しかし、CD−ROMデイスク又はDVDデイスクなどの媒体上の連続的なパーセル・レコードのブロックは、必ずしも、空間的に互いに近い領域を表すものではない。例えば、図3に示すように、パーセル13−16から成るブロックは2つの空間的に分離された領域を表す。一方、パーセル4−6から成るブロックは単一の密接な領域を表す。
【0014】図1乃至図3は、3つの異なる方法で分割された地理的領域を示す。図1は、大きさが128Kバイトより大きくない4つのパーセル1乃至4に分割された空間データを示す。図2は、大きさが64Kバイトより大きくない8つのパーセル1乃至8に分割された同じデータを示す。図3は、大きさが32Kバイトより大きくない17のパーセル1乃至17に分割された同じデータを示す。データの全体の大きさは図1よりも図3において大きい。これは各パーセルに関連した(例えば、パーセル・ヘッダー及びパッデイング)オーバーヘッドが存在し、そしてしばしばパーセル境界において余分なデータが発生されるためである。
【0015】図1乃至図3により組織されたデータは三つの異なるプラットホームで使用されると仮定する。プラットホームA上で、128Kブロックでデータを読むことが最適である。プラットホームB上で、64Kブロックでデータを読むことが最適である。プラットホームC上で、32Kブロックでデータを読むことが最適である。3つ全てのプラットホーム上で、パーセルの大きさを最適にするようにデータをコンパイルすることはできない。しかし、図3(プラットホームCについて最適)のようにパーセル化して、実行時にプラットホームA及びBについて最適な大きさにされたここで「パーセル・ブロック」と呼ばれるブロックにパーセルをグループ化することは可能である。
【0016】図4は、大きさが64Kバイトを越えない9つのパーセル・ブロックにグループ化された図3からのパーセル1乃至17を示す。図4と図2の比較は、64K又はそれより小さいパーセル・ブロックが、もしデータが64K最大パーセルの大きさでパーセル化された時に得られるパーセルとは異なることを示す。図4からのパーセル・ブロックが図2と同じ長方形のパーセルを表す時でさえ、図4においては余分なパーセル・オーバーヘッドのためデータ大きさは僅かに高い。図4に示すように、64Kのブロックを得るためにパーセルをブロック化することは、図2の方法のパーセル化により得られる64Kパーセルと比較して余分なパーセルを生ずる。これはパーセル1−3が66Kバイトまで加えられて、64Kバイト又はこれより少ないパーセル・ブロックを作成するためには大きすぎる理由から生ずる。しかし、データが図2においてパーソナル化される時、データを64Kバイトに適合する同じ長方形に作成するためにパーセル境界は決定された。
【0017】図5は、図3のパーセル1乃至17から大きさが128Kを越えない4つのパーセル・ブロックにグループ化されたものを示す。図5の図1に対する関係は、図4の図2に対する関係と同じである。図5の場合、余分なパーセル・ブロックは発生しない。図1には4つのパーセルがあり、図5には4つのパーセル・ブロックが存在する。
【0018】プラットホームA上を走っているアプリケーションは図5に示されるパーセル・ブロックを読むことができ、そしてプラットホームAに対して最適な大きさのパーセル(すなわち、図1)を読む際に得られるのと匹敵するI/O性能を得ることができる。プラットホームB上を走っているアプリケーションは図4に示されるパーセル・ブロックを読むことができ、そしてプラットホームBに対して最適な大きさのパーセル(すなわち、図2)を読む際に得られるのと匹敵するI/O性能を得ることができる。
【0019】2.パーセル・ブロック大きさは任意上記例は、32K、64K及び128Kのブロック大きさを使用しているけれど、この方法はパーセル・ブロックの大きさを2の累乗又は最大パーセル大きさの整数倍に強制しない。しかし、パーセル・ブロックの大きさは最大パーセルの大きさよりも大きいか又は等しい。
【0020】3.パーセル化制限空間的なパーセル・レコードは、媒体にパーセルをパーセル・ブロックにグループ化されることを容易にする順序で記憶されることが好適である。好適な順序は米国特許番号第5,953,722号(例外は、以下に説明される、異なるタイプのデータのパーセルが一緒に間挿(インターリーブ)される実施例に関する)に記載されている。この明細書の表1(アペンデイックスA)には、パーセルを好適な順序で書く反復的なパーソナル化アルゴリズムが含まれている。アルゴリズムは最初に、パーセル化すべき全体領域を含んだ長方形と共に呼出される。このアルゴリズムに述べられる方法を使用して、データ・パーセルは媒体上にパーセル・ブロックにグループ化することができる順序で書き込まれる。
【0021】4.インターリーブ異なるデータ・タイプのパーセルは、媒体上で一緒にインターリーブできる。インターリーブの方法は、米国特許番号第6,038,559号及び同時係属している特許出願シリアル番号09/039,586に開示されている。
【0022】データベース・コンパイラによる異なるパーセル・タイプのインターリーブは、パーセルのブロック化が使用される時に制約を受けるであろう。データ・タイプBのパーセルが媒体上でデータ・タイプAの2つのパーセル間に位置する時に、もはや2つのタイプAのパーセルを含む1つのパーセル・ブロックを形成することは可能でなくなる。
【0023】以下は、インターリーブされたデータ・タイプを処理するための3つの代替的な方法である。
1)パーセル・ブロック化が使用されるかもしれないどんなパーセル・タイプもインターリーブしない。
2)どんなプラットホームにも使用されるであろう最大のパーセル・ブロック大きさを決定し、コンパイラー内でその大きさのブロックを決定し、そしてそのようなブロック内では他のパーセル・タイプをインターリーブしない。この最大ブロック大きさがデータベース中に記憶される。
3)パーセル・ブロックを構築する目的のために、2つのインターリーブされたパーセル・タイプをあたかも同じパーセル・タイプのように取扱う。
【0024】5.パーセル・ブロックの定義表2a−2d(アペンデイックスB)は、パーセル・ブロックにグループ化できるパーセルのリストの生成のために使用できる機能、BuildPclList()、のための擬似コードを含む。このリストは、異なるプラットホームが異なる最適バッフア大きさを有する可能性のため、データベースがコンパイルされる時よりもナビゲーション・システムが初期化される時に生成される。表2a−2d(アペンデイックスB)のBuildPclList()の機能は、2つのパラメータ、領域のkdツリーのルート及びプラットホームの最適バッフアの大きさ、と共に呼ばれる。
【0025】機能、BuildPclList()、が完了した後、ParcelBlockArrayと呼ばれるパーセルIDのテーブルは、1つのI/O操作中で読み出されるパーセルのグループを含み、各グループの始まりのパーセルIDの高次ビットを1に設定する。
【0026】6.バックグランド・タスクとしてパーセル・ブロック・リストを作成初期化時のParcelBlockArrayリストの作成に関係する考察は実行に要する時間の長さである。この考察を行なう1つの方法はバックグランドでパーセル・ブロックのリストを作成することである。そして、ユーザが最初にパーセル・ブロック無しにナビゲーション・ユニットを使用し、現在、実行されているように一度に1つ空間的パーセルを読む。一旦、パーセル・ブロック・リスト又はルック・アップ・テーブルが構築されると、ナビゲーション・ユニット・ソフトウェアは、一度に1つの代りに、パーセル・ブロックに従ってパーセルの読取を開始できる。
【0027】7.パーセル・ブロック配列の使用上で生成されたパーセル・ブロック・テーブルは、少なくとも2つの方法で使用できる。
【0028】2進値探索:パーセルIDが与えられると、それが属するパーセル・ブロックが決定され、そして以下の通り1つのI/O操作でそのパーセル・ブロックに対応しているパーセルのグループを読み出す。
【0029】与えられたパーセルID(テーブル・エントリイ内の高次ビットを無視する)についてパーセル・ブロック配列の2進値探索を行なう。もしパーセルIDが発見されなければ、パーセルはグループ(すなわち、パーセル・ブロック)の部分ではない。もしパーセルIDが発見されれば、テーブル・エントリイの高次ビットは1に設定されず、高次ビットが1に設定されたエントリイが見つかるまで後退する。そのパーセルIDはグループ内の第1パーセルである。高次ビットが1に設定されている別のエントリイが見つかるまで前進する。このエントリイに先行するエントリイはそのグループ内の最後のパーセルである。
【0030】ハッシュ・テーブル・ルックアップ:2進値探索でこのデータをアクセスする代替法は、パーセルIDによりアクセスされるハッシュ・テーブルを構築するためにそれを使用することである。も度釣れたハッシュ・テーブル記録はパーセルIDに加え、2つの項目を含むであろう:(1)パーセル・ブロックの開始のパーセルID及び(2)ブロック長さ。もし、ハッシュ・テーブル・ルックアップがレコードを発見することができなければ、それはそのパーセルがパーセル・ブロックの一部でないことわ示す。一旦、ハッシュ・テーブルが構築されると、パーセル・ブロック・テーブルは廃棄できる。
【0031】8.パーセル・ブロック及びバッフア管理パーセル・ブロックがメモリ・バッフア内に読み込まれた後、もしパーセル・ブロックが以下の例に示されるようにバッフアが再使用される時に単位として取扱われるならば、バッフア管理は単純化される。
【0032】パーセル100−102を含んだパーセル・ブロックがメモリ内に読込まれたと仮定する。その後、あるバッフア空間がパーセル85のために必要となる。パーセル102が最も古く使用されたパーセルであることが知られる。従って、パーセル102が廃棄されて、パーセル102が空にされたメモリ空間中にパーセル85が読込まれる。そして、パーセル102が再び読み出されなければならないと仮定する。しかし、上記したように、パーセル102はパーセル100−102を含むパーセル・ブロックの一部である。これが発生した時の処理の代替法が、以下の様に存在する。
1) メモリ内に現在あるパーセル100及び101のコピーを廃棄でき、完全なパーセル・ブロック(すなわち、パーセル100−102を含む)を再読込みできる。
2) ブロック化を無視でき、パーセル102のみを読むことができる。
【0033】いずれの代替法もナビゲーション・ソフトウエアがメモリ内のパーセルのリストをパーセル・ブロック内のパーセルのリストと比較すること、そして、何をすべきかを決定することを要する。この複雑さは、もしパーセル・ブロック内のパーセルが個別ではなく単位として廃棄されるならば、生じない。
【0034】パーセル・ブロックを使用する要点は、プラットホームに最適な大きさの単位で空間的パーセルを読込むことである。もしコンパイラーが最初に最適な大きさのパーセルを生成したならば、ナビゲーション・ソフトウエアはバッフアめメモリを再使用する時、その大きさの単位で廃棄するであろう。従って、バッフアを管理する時にパーセル・ブロックを単位として取扱うことは、もしパーセルがそのプラットホームについて最適の大きさであれば、いずれにしても発生する振舞いに近づく。
【0035】9.地理データをさまざまな計算プラットホームに配布する図6は、地理データベースがどのようにしてある大きさのパーセルでもって形成さるか、そして地理データベースのコピーが異なるプラットホーム上に実現されたシステムに配布されるかを示す。コンパイラーは異なるプラットホームについて最適なパーセル大きさの最小に大きさが等しいか又はより小さいパーセルを生成する。異なるプラットホームの各々において、データアクセス・ソフトウェアは特定のプラットホームにふさわしいパーセル・ブロック大きさを選択できる。異なるプラットホームは異なる形式のナビゲーション・システム、汎用計算プラットホーム、ネットワーク、無線クライアント・サーバー・アプリケーション、及び他の形式のアプリケーションを含む。
【0036】10.データアクセス層ソフトウェア図7は、図6の異なるプラットホームの各々に含めることができ、それに与えられた地理データにアクセスするのに使用される、データアクセス・インターフエイス層ソフトウェア41を示すブロックずである。図7に示されるデータアクセス・インターフエイス層ソフトウェア41は、米国特許番号第6,047,280に記載されているデータアクセス・インターフエイス層ソフトウェアと同一又は類似のものである。図7に示される要素は上記特許に開示されているものに対応する。
【0037】図7中のデータアクセス・インターフエイス層ソフトウェア41は、パーセルのブロック化を実行するのに使用されるルーチン500を含む。ルーチン500は表2a−2d(アペンデイックスB)に含まれるルーチンと同様なものである。ルーチン500は、それが導入される計算プラットホームに適したパーセル・ブロックの大きさを選択し、パーセル・リスト配列を構築する、等に使用できる。ルーチン500は、インデックス管理層242とリソース管理層220の間に存在する。インデックス管理層242は媒体からパーセルを読み出すべき決定をした時、パーセル・ブロック化ルーチン500は読込まれるべきパーセルについての要求に割り込み、要求されたパーセルがどのパーセル・ブロックに属するかを決定し、そしてそのパーセル・ブロックに対応する全てのパーセルにアクセスする。そのパーセル・ブロックに対応する全てのパーセルはリソース管理層220によりメモリ内に読込まれる。
【0038】11.代替法ここに開示された方法は特定のタイプの地理データベースに限定されない。方法は異なるコンパイル方法により形成されたデータベースに使用できる。
【0039】方法は、計算プラットホーム中のハードウェア・リソースが変化した時でも使用できる。例えば、もし既存のナビゲーション・システムの所有者がより多くのメモリを追加したならば、それはパーセル・ブロック大きさをより大きなメモリ・リソースをより良く使用するために変えて、ナビゲーション・システムの性能を増強できるであろう。
【0040】上述の詳細な説明は、限定的というよりは例示的な意図でなされた。全ての均等物を含む特許請求の範囲の記載が、本発明の範囲を定義することを意図している。
【0041】
【表1】

【0042】
【表2a】

【0043】
【表2b】

【0044】
【表2c】

【0045】
【表2d】

【出願人】 【識別番号】597011544
【氏名又は名称】ナヴィゲイション テクノロジーズ コーポレイション
【出願日】 平成13年5月16日(2001.5.16)
【代理人】 【識別番号】100059959
【弁理士】
【氏名又は名称】中村 稔 (外9名)
【公開番号】 特開2002−91989(P2002−91989A)
【公開日】 平成14年3月29日(2002.3.29)
【出願番号】 特願2001−146575(P2001−146575)