JPH11327979A - ナビゲーションシステムのための改良されたメモリ管理 - Google Patents

ナビゲーションシステムのための改良されたメモリ管理

Info

Publication number
JPH11327979A
JPH11327979A JP10377975A JP37797598A JPH11327979A JP H11327979 A JPH11327979 A JP H11327979A JP 10377975 A JP10377975 A JP 10377975A JP 37797598 A JP37797598 A JP 37797598A JP H11327979 A JPH11327979 A JP H11327979A
Authority
JP
Japan
Prior art keywords
parcel
data
cache
memory
geographic
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.)
Granted
Application number
JP10377975A
Other languages
English (en)
Other versions
JP4489860B2 (ja
Inventor
Paul Crowley
クローリー ポール
John Jaugilas
ジャクラス ジョン
Alex Nash
ナッシュ アレックス
Senthil K Natesan
ケイ ナーテサン センティル
David S Lampert
エス ランパート ディヴィッド
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.)
Navteq Corp
Original Assignee
Navigation Technologies Corp
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 Navigation Technologies Corp filed Critical Navigation Technologies Corp
Publication of JPH11327979A publication Critical patent/JPH11327979A/ja
Application granted granted Critical
Publication of JP4489860B2 publication Critical patent/JP4489860B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Navigation (AREA)
  • Instructional Devices (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 地理データにアクセスするナビゲーション応
用プログラムと共に使用されるシステム内のメモリ資源
を管理する方法及びシステムを提供する。 【解決手段】 地理データは複数のデータレコードから
なる。これらはパーセルに編成され、各パーセルは複数
のデータレコードの一部分を含み、各パーセルを形成し
ている複数のデータレコードの各部分は一緒にアクセス
される。ナビゲーションシステムのメモリの隣接する部
分を形成している1つまたはそれ以上のバッファが、複
数のパーセルを格納するキャッシュとして設けられる。
メモリの隣接する部分の外側に位置する1つまたはそれ
以上のデータ構造は、キャッシュ内に格納されているデ
ータのパーセルと、パーセルが格納されているキャッシ
ュ内の位置を識別する他に、パーセルキャッシュの使用
を効率的にするように管理するためと、パーセルキャッ
シュを併合するためにも使用される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はナビゲーションシス
テムに関し、詳しく述べれば、本発明は地理データベー
スの使用及びアクセスを容易ならしめるナビゲーション
システムのためのメモリ管理に関する。
【0002】
【従来の技術】エンドユーザにいろいろなナビゲーティ
グン機能及び特色を提供する、コンピュータをベースと
するナビゲーション応用プログラムを使用することがで
きる。例えば、若干のナビゲーションシステムはビーク
ルに搭載され、エンドユーザ(即ち、ビークルの運転
手)に地理領域内の複数の位置の間の道路を走行するた
めの最適ルートを提供することができる。エンドユーザ
からの入力、及びオプションとしてユーザの物理的位置
を決定できる機器(例えば、GPSシステム)からの入
力を使用して、ナビゲーション応用プログラムは地理領
域内の2つの位置の間のいろいろなルートを調べ、出発
点から目的地まで走行するのに最適なルートを決定する
ことができる。次いでナビゲーション応用プログラム
は、出発点から目的地までエンドユーザが走行するのに
必要な運転を識別する命令の形状で、最適ルートに関す
る情報をエンドユーザに提供することができる。もしナ
ビゲーションシステムが自動車に設置されているのであ
れば、命令は、エンドユーザがルートを走行中に供給さ
れるオーディオ命令の形状をとることができる。若干の
ナビゲーション応用プログラムは、目的地までのルート
を示す詳細地図、ルートに沿ういろいろな位置において
とるべき運転の型、若干の型の特色の位置、等々をコン
ピュータディスプレイ上に表示することができる。
【0003】これらの、及び他のナビゲーティング機能
を提供するために、ナビゲーション応用プログラムは、
地理領域内の物理的特色を表すデータを含む1つまたは
それ以上の詳細なデータベースを使用する。この/これ
らの詳細なデータベースは、地理領域内の道路及び交差
点を表すデータを含むことができ、また交差点における
転回禁止、道路の速度制限、さまざまな道路の街路名、
いろいろな道路に沿う番地範囲、等々のような、表され
た地理領域内の道路及び交差点に関する情報を含むこと
もできる。
【0004】合理的に高レベルの機能を提供するため
に、比較的大きいデータベースを設けることができる。
CD−ROMディスク、またはPCMCIAカードのよ
うな記憶媒体は、適当な機能を提供するのに充分なサイ
ズ及び複雑さのデータベースを取扱うことができる。し
かしながら、コンピュータをベースとするナビゲーショ
ンシステムは、コンピュータハードウェア資源が比較的
制限されているものを含むいろいろなプラットフォーム
上に設置される。例えば、ビークルに搭載の、または手
持ちのナビゲーションシステムのメモリ資源は制限さ
れ、また媒体アクセスレートは比較的遅い。これらの比
較的制限されているハードウェア資源は、エンドユーザ
が期待または要求する比較的高レベルの機能、並びに適
当に高速な性能を提供することが困難である。ナビゲー
ションシステムの性能が低いことは望ましいだけではな
く、若干の環境においては、その意図した目的にとって
システムが無用になりかねない。例えば、もしナビゲー
ションシステムがビークルに搭載されていれば、運転手
は運転中に情報を利用するために、1−2秒程度で所望
ルートに関する情報をナビゲーションシステムから得た
いであろう。もしナビゲーションシステムがルートを計
算するのに数秒より多くを要すれば、運転手は既にナビ
ゲーションシステムが提供するルーティング情報が関連
している点を過ぎて移動してしまっていよう。従って、
適当なレベルの性能を提供するためには、ナビゲーショ
ンシステムを効率的に使用することが必要がある。
【0005】若干のナビゲーション応用は、より大きい
メモリ資源及び他のハードウェア資源を有するコンピュ
ータプラットフォーム上に設置することができる。これ
らの種類のシステムにも同じ考え方が適用されるが、ス
ケールは異なる。より大きいメモリ及び他のハードウェ
ア資源を有するコンピュータプラットフォームにおいて
は、もし使用可能な資源が効率的に使用されれば、より
大きい機能さえも得ることができる。
【0006】従って、ナビゲーションシステムの資源を
効率的に使用し、それによってシステムがより良好な性
能を提供できるようにする方法及びシステムを提供する
ことが目的である。
【0007】
【発明の概要】上述した及び他の目的を達成するため
に、及び本発明の目的によれば、地理データにアクセス
するナビゲーション応用プログラムと共に使用されるシ
ステム内のメモリ資源を管理する方法及びシステムが提
供される。地理データは、複数のデータレコードからな
る。複数のデータレコードはパーセル、またはグルーピ
ングに編成され、各パーセルまたはグルーピングは複数
のデータレコードの一部分を含み、各パーセルを形成し
ている複数のデータレコードの各部分内のデータレコー
ドは一緒にアクセスされるようになっている。複数のパ
ーセルを格納するためのキャッシュとして、各々がナビ
ゲーションシステムのメモリの隣接する部分を形成して
いる1つまたはそれ以上のバッファが設けられる。メモ
リの隣接する部分の外側に位置する1つまたはそれ以上
のデータ構造は、キャッシュ内に格納されているデータ
のパーセルと、パーセルが格納されているキャッシュ内
の位置とを識別する。パーセルがキャッシュされている
メモリの隣接する部分の外側に位置する1つまたはそれ
以上のデータ構造は、パーセルキャッシュを併合(デフ
ラグメント)させるためにも使用される。
【0008】
【実施例】I.ナビゲーションシステム−概要 図1に、ナビゲーションシステム10をブロック図で示
す。ナビゲーションシステム10は、乗用車またはトラ
ックのようなビークル11内に設置されているが、代替
実施例では、ナビゲーションシステム10は、後述する
ように、ビークル外に位置することも、または他のいろ
いろなプラットフォームまたは環境内に実現することも
できる。
【0009】図1に示す実施例では、ナビゲーションシ
ステム10はハードウェア及びソフトウェア成分の組合
せである。一実施例では、ナビゲーションシステム10
はプロセッサ12、プロセッサ12に接続されているド
ライブ14、及びナビゲーション応用ソフトウェアプロ
グラム18並びに構成パラメータ19のような他の情報
を格納している不揮発性メモリ記憶装置16を含んでい
る。プロセッサ12は、日立SH1、インテル 80386、
インテル 960、モトローラ 68020(または、類似の、ま
たはより大きいアドレス空間を有する他のプロセッサ)
のようなフラットアドレス空間を使用する 32 ビットプ
ロセッサのような、ナビゲーションシステム内に使用さ
れるどのような型であることもできる。これら以外の型
のプロセッサ、及び将来開発されるかも知れないプロセ
ッサも適当であり得る。
【0010】ナビゲーションシステム10は、測位シス
テム24を含むこともできる。測位システム24は、当
分野においては公知の、GPS型技術、推測型システ
ム、またはこれらの組合せ、または他のシステムを利用
することができる。測位システム24は、ビークルの走
行距離、速度、方向、等々を測定する適当な感知デバイ
ス25を含むことができる。測位システム24は、当分
野においては公知の手法でGPS信号を入手する適切な
技術を含むこともできる。測位システム24は、信号2
6をプロセッサ12へ出力する。プロセッサ12上で走
るナビゲーション応用ソフトウェア18はこの信号26
を使用して、ナビゲーションシステム10の位置、方
向、速度、等々を決定することができる。
【0011】ナビゲーションシステム10は、ユーザイ
ンタフェース31も含んでいる。ユーザインタフェース
31は、エンドユーザがナビゲーションシステム内へ情
報を入力できるようにする適切な機器を含む。この入力
情報は、ナビゲーションシステムのナビゲーション特色
の使用の要求を含む。例えば、入力情報は、所望の目的
地までのルートに関する要求を含むことができる。入力
情報は、構成情報のような他の種類の情報を含むことも
できる。ナビゲーションシステム内へ情報を入力するた
めに使用される機器は、キーパッド、キーボード、マイ
クロホン、等々、並びに音声認識プログラムのような適
切なソフトウェアを含むことができる。ユーザインタフ
ェース31は、エンドユーザへ情報を戻す適当な機器も
含む。この機器は、ディスプレイ27、スピーカ29、
または他の手段を含むことができる。
【0012】ナビゲーションシステム10は、記憶媒体
32上に格納されている地図データベース40を使用す
る。ナビゲーションシステムが地図データベース40を
読み出して使用することができるように、記憶媒体32
はドライブ14内に設置されている。記憶媒体32は取
り外し可能であり、置換可能であるので、ビークルが走
行している地理領域のための適切な地図データベースを
有する記憶媒体を使用することができる。更に、記憶媒
体32は置換可能であるので、その上の地図データベー
ス40は容易に更新することができる。一実施例では、
地理データはカリフォルニア州サニービルの Navigatio
n Technologiesから出版されているものであることがで
きる。
【0013】一実施例においては、記憶媒体32はCD
−ROMディスクである。代替実施例においては、記憶
媒体32はPCMCIAカードであることができ、この
場合ドライブ14はPCMCIAスロットに置換され
る。固定またはハードディスク、DVD(ディジタルビ
デオディスク)、または現在市販されている他の記憶媒
体、並びに将来開発されるかも知れない記憶媒体を含む
他のさまざまな記憶媒体を使用することができる。記憶
媒体32及び地理データベース40は、物理的にナビゲ
ーションシステムの位置に設ける必要はない。代替実施
例においては、地理データベース40の若干、または全
てを格納している記憶媒体32はナビゲーションシステ
ムの残余から離して配置することができ、地理データの
一部は必要に応じて通信リンクを介して供給される。
【0014】図2を参照する。ナビゲーション応用18
は、個々のナビゲーション機能(または、サブプログラ
ム)28を提供するソフトウェアプログラミングを含
む。これらのナビゲーション機能28は、例えば、ルー
ト計算機能33、地図表示機能34、ルート案内機能3
5(所望の目的地へ到達するための詳細な指令が供給さ
れる)を含む。ナビゲーション応用プログラム18は、
これらの他に、または代替として、ビークル位置決め機
能(例えば、マップマッチング)のような他の機能また
はサブプログラム36を含むことができる。これらのナ
ビゲーション応用機能28は、ナビゲーション応用プロ
グラム18内に分離したサブプログラムまたは応用とし
て表されているが、これらの機能28は組合せたり、ま
たはそれ以外に設けることもできる。ナビゲーション応
用プログラム18は、ユーザインタフェース機器31
(図1)を支援するユーザインタフェースプログラミン
グ37をも含む。例えば、このユーザインタフェースプ
ログラミング37は、ユーザインタフェース31、メニ
ューの表示、プロンプト、等々を介してエンドユーザへ
の情報の図形表示を提供することができる。ナビゲーシ
ョン応用18は、オペレーティングシステムを含むこと
もできる。ナビゲーション応用18は、地理データベー
ス40へアクセスする特定機能39をも含むことができ
る。好ましい実施例では、これらの機能39はいろいろ
なナビゲーション応用28と地理データベース40との
間、より詳しく言えば、ナビゲーション機能28とオペ
レーティングシステム38との間に位置している。これ
らの機能39は、ナビゲーティング機能28の間で地理
データベース40への共用アクセスを容易にするキャッ
シュ管理機能59及び待ち行列機能404のようなメモ
リ管理機能を含む。 II. 地理データベース a.概要。 地理データ40は、1つまたはそれ以上の
コンピュータ可読データファイル、またはデータベース
の形状で媒体32上に格納されている。地理データ40
は、特定の地理領域内の、またはそれに関係付けられた
道路及び交差点の位置に関する情報を含むことも、また
は、一方通行道路、転回禁止のような道路及び交差点の
属性に関する情報、または街路番地、ホテル、レストラ
ン、博物館、スタジアム、オフィス、自動車販売会社、
自動車修理工場、等のような他の情報を含むことができ
る。地理データベースのカバレッジ領域は、シカゴとそ
の郊外、ニューヨークとその郊外、ロスアンジェルスと
その郊外のような大都市圏を含むことができ、または代
替として、領域はカリフォルニアのような州(ステー
ト)全体、合衆国のような国全体、またはドイツ、フラ
ンス、及びイタリアもしくはこれらの組合せのような1
つの国より多くの国を含むことができる。記憶媒体上に
は1つの領域より多くの領域を格納することができる。
【0015】記憶媒体32上の地理データ40を使用す
る時に、ナビゲーション応用プログラム18内のナビゲ
ーション機能28の動作及び性能に影響を与え得る幾つ
かのファクタが存在する。合理的に高レベルの機能を提
供するために、比較的大きいデータベースを設けること
ができる。CD−ROMディスク、またはPCMCIA
カードのような記憶媒体は、適当な機能を提供するのに
充分なサイズ及び複雑さのデータベースを取扱うことが
できる。しかしながら、これらの型の媒体のアクセシン
グは比較的遅い。ナビゲーションシステムはビークルに
搭載することも、手持ちであることもできるので、ナビ
ゲーションシステムのハードウェア資源は制限され得
る。これらのナビゲーションシステムのメモリ資源が制
限されているために、ナビゲーション応用プログラムが
使用するためには、地理ディスクをCD−ROMのよう
な記憶媒体からナビゲーションシステムのメモリ内に必
要に応じてロードする必要がある。不幸にも、前述した
ように、これらの型のシステムの媒体アクセスも比較的
遅いことがあり得る。
【0016】ナビゲーションシステム資源が制限されて
いることによって賦課される制約に対処するために、地
理データベース、またはデータベース内のデータを特定
の手法で編成し、構成し、または配列することによって
ナビゲーションシステムの性能を改善するための技術が
考案、または実現されている。ナビゲーションシステム
は既知の機能を遂行するために、地理データを若干の既
知の、そして予測できるような手法で使用するので、地
理データはナビゲーションシステムによるこれらの既知
の手法で使用するのを容易にするように編成し、構成
し、または配列することができる。
【0017】ナビゲーション応用プログラムは、ネット
ワークを通してアクセス可能なパーソナルコンピュータ
または地理データベースサーバのような比較的多くのメ
モリ資源及び高速I/Oを有するコンピュータプラット
フォーム上で走らせることもできる。これらのプラット
フォームはより多くの、そしてより高速の資源を有する
ことはできるが、それでも地理データベースの効率的な
使用に関する考え方はスケールは異なるとしても適用さ
れる。これらの型のプラットフォームを用いると、もし
地理データベースを効率的に形成し、使用することがで
きれば、より多くの機能さえも提供することができる。
【0018】b.パーセル化。 ナビゲーションシステ
ムによる地理データの使用を容易にするために使用でき
る技術の中には、パーセル化が含まれる。ナビゲーショ
ン応用プログラムが走っているナビゲーションシステム
のメモリ資源が制限されているために、所与の地理領域
全体のための全てのデータレコードをナビゲーションシ
ステムのメモリ内に同時にロードできないものとすれ
ば、所望の機能を遂行するのに必要なデータだけをメモ
リ内へロードすることが望ましい。これを達成するため
に、地理データベース30内のデータベースは、ナビゲ
ーション機能を遂行するために媒体へアクセスし、媒体
から読み出すのに必要な時間の長さを最短にするように
編成される。このようにするために、データはパーセル
に編成される。データベースがパーセル化される場合、
一緒になって地理データを構成する複数のデータレコー
ドが分離したグループ、即ちパーセルにグループ化され
る。データのパーセルは、パーセル内の全てのデータが
一緒に、媒体から同時にアクセスされるように確立され
る。これは、1回のディスクアクセスでアクセスできる
データの量に関係するが、他のあるファクタに関係付け
ることもできる。CD−ROMディスクのような若干の
型の媒体の場合には、パーセルは 16 キロバイトのデー
タ量であるように確立することができる。(1K、2
K、4K、8K、32K等を含む他のデータサイズも使用
可能である。地理データベースの部分は一般に2n キロ
バイトのサイズで形成される。但し、nは1より大きい
整数値である。) パーセル化と共に、地理データの使用を容易にするため
に、それらを編成できる別の方法は、データを空間的に
編成することである。地理データが空間的に編成されて
いると、地理領域内で互いに物理的に近接している特色
は、データベース内でも物理的に(または、論理的に)
互いに近接しているデータレコードによって表される。
地理データは、これらの両技術を利用するために、パー
セル化し、空間的に編成することができる。
【0019】データをパーセルに形成する目的で、デー
タは先ず、それらにアクセスするナビゲーション機能2
8に基づいて異なる型に空間的に編成される。従って、
ナビゲーション機能28の若干、または全ては、地理デ
ータの分離した集まりであることができる。分離した各
集まりは、それぞれの機能を遂行するために必要なデー
タの本質的な部分を含むが、その機能を遂行するために
不要な部分は省かれる。従って、地理データベース内に
は、1つまたはそれ以上のナビゲーション機能28に関
連付けられたルーティング、地図作成(地図表示)、運
転(ルート案内)、関心点、名前、等々のような分離し
た型のデータが存在し得る。
【0020】ナビゲーション機能28によるデータの使
用を容易ならしめるために、これらの種類のデータの若
干は空間的にパーセル化することができる。空間的にパ
ーセル化されたデータは、地理的に近接する特色を表す
データが、データベース40及び/または媒体32内で
論理的に、及び/または物理的に近接して位置するよう
に配列される。若干のナビゲーション応用機能の場合に
は、それらの関連データを空間的にパーセル化すると、
それらを使用する時に密に関係している地理データを媒
体からより迅速に読み出したり、関連地理データをメモ
リ内にロードすることができる。この種類の編成は、記
憶媒体32のアクセスを最小にし、これらのナビゲーシ
ョン機能の動作をスピードアップさせることができる。
ルーティング、地図作成、及び関心点データは、空間的
に編成できる種類のデータに含まれる。
【0021】地理データを空間的にパーセル化するため
に使用できる多くの異なる手順が存在している。例え
ば、簡単なパーセル化方法では、データが複数のパーセ
ル、またはグルーピングに分離される。各パーセル内の
データは、一緒になって地理領域上に規則的な矩形格子
を形成する複数の規則的なサイズの矩形の分離した1つ
の中に含まれる特色を表す。別の空間パーセル化方法
は、パーセルサイズが最大しきい値以下になるまで、領
域の部分を包含する矩形を等分して行くことによって各
矩形を形成するように、データを矩形領域内に含まれる
パーセルに分離する。更に、パーセル化手順が 1996 年
10月25日付同時出願第 08/740,295 号に開示され、その
全文が参照として本明細書に採り入れられており、また
パーセル化手順が 1997 年9月5日付同時出願第 08/93
5,809 号に開示され、その全文が参照として本明細書に
採り入れられている。本願に適用できる更に他のパーセ
ル化方法は、米国特許第 4,888,698号及び第 4,937,572
号に開示されている。
【0022】空間的に編成されたデータのパーセル化
を、図3及び4を参照して説明する。図3は地理領域1
12の地図111を示している。複数の位置114(ド
ットまたは点によって表されている)が地図111上に
位置するように示されている。各位置114は地理領域
112内の場所または点を表しており、この場所または
点には、図1及び2の地理データベース40内に含まれ
る情報に関する特色が位置している。例えば、位置11
4は、地理データベース40内のデータによって表され
ている、道路セグメントの端点、道路セグメントに沿う
点、関心点(ホテル、市民会館等)等々の物理的位置に
対応させることができる。これらの各位置114は個々
の物理的位置(緯度、経度、及びオプションとして絶
対、または相対高度)を有し、各位置114はその二次
元(または、三次元)地理座標(即ち、緯度、経度、及
びオプションとして高度)によって個々に識別すること
ができる。
【0023】図3では、地図111によって表されてい
る地理領域112に格子117がオーバーレイされてい
る。格子117は、地理領域112を複数の矩形領域1
19に分割している。格子117の格子線は、矩形領域
119の境界を表す。境界の位置は、使用されるパーセ
ル化手順に依存することができる。一般的に言えば、空
間パーセル化にどのような手順を使用しても、各矩形領
域119内に含まれる特色を表す特定のデータの型のデ
ータレコードは、分離したデータのパーセル内に一緒に
グループ化される。従って、空間的に編成されてデータ
の各パーセル120(図4)は、複数の矩形119の分
離した1つ(図3に示すような)内に含まれる地理特色
を表す1つまたはそれ以上のデータレコードを含む。
【0024】図4に示すように、パーセル120は、各
パーセル120内のデータが論理的に、及び/または物
理的に一緒にグループ化されてデータベース40を形成
するように格納される。パーセルは、ナビゲーションシ
ステムによって媒体から同時にアクセスされるデータベ
ースレコードの量を表しているから、データのパーセル
がアクセスされた時、そのデータレコードの全てが同時
にナビゲーションシステムのメモリ内に読み込まれる。
図3の地図111について言えば、これは各矩形119
内に含まれる空間的に編成されたデータの型の全てのデ
ータレコードがグループとして一緒にアクセスされるこ
とを意味している。若干の種類のナビゲーション機能の
場合には、地理領域内で互いに物理的に密である特色を
表している全てのデータレコードを同時にメモリ内に有
することが望ましいことは理解できよう。
【0025】パーセル120がこれらのデータの型のた
めに形成される際に、パーセルは順序付けされる。いろ
いろな型の順序付けを使用することができる。一般的に
言えば、データの探索を最小にするような手法でパーセ
ルを順序付けすることが好ましい。空間的に編成された
パーセルを順序付けする1方法は、各データの型内のk
d木索引から深さ優先順序付けを使用することである。
これはペアノ( Peano) キー順序付けに類似した順序付
けである。パーセルは、この近似ペアノキー順序でディ
スク(即ち、図1及び2の媒体32)上に格納すること
ができる。kd木のような1つまたはそれ以上の索引を
使用して、空間的にパーセルにアクセスすることとがで
きる。この索引は、ナビゲーションシステム内のプログ
ラムが始めに現在のビークル位置に対応する地図データ
を探知する時のように、任意位置の初期探知にとって有
用である。パーセル120を順序付した後に、各パーセ
ルに独特のパーセル識別子(例えば、「パーセルI
D」)を割当てることもできる。パーセルIDは、パー
セル及び/または媒体上のその位置を識別するために使
用することができる。
【0026】前述したように、若干の種類のデータは、
空間的に編成されていない(即ち、空間的に編成されて
いないデータの各パーセルは、必ずしも図3の矩形領域
119の何れにも対応しない)。例えば、街路名を表す
データは、空間的にではなくアルファベット順に編成す
ることができる。国、州、市、等々のような行政または
政治的エンティティを表すデータは、空間的に編成され
ない他の種類のデータである。例えば、行政または政治
的エンティティを表すデータは、行政階層によって編成
することができる。一実施例では、これらの空間的に編
成されない型のデータも、同じようにパーセル化され
る。
【0027】III . 地理データベースのアクセス方法 ナビゲーション応用18の分離したいろいろなナビゲー
ション機能28は、有用なナビゲーション特色をナビゲ
ーションシステム10のエンドユーザに提供するため
に、記憶媒体32上に格納されている地理データベース
40内のデータを使用する。前述したように、ナビゲー
ション応用18は、地理データベース40にアクセスす
る機能39を含んでいる。これらのアクセス機能39
は、いろいろなナビゲーション応用28及び地理データ
ベース40と共に動作する。詳しく述べると、これらの
機能39は、ナビゲーション機能28とオペレーティン
グシステム38との間で動作する。媒体32上の地理デ
ータベース40内のデータは、いろいろなナビゲーショ
ン機能がそれらを使用し易いように、媒体32上に圧縮
され、配列され、編成され、パーセル化され、索引付け
されている。アクセス機能39は、ナビゲーション機能
28が使用するデータを戻すために、記憶媒体32上の
地理データベース40の編成及び配列を取扱う。
【0028】アクセス機能39の中には照会変換機能5
5が含まれている。この機能55は、ナビゲーション機
能からのデータに関する照会を、要求されたデータを含
む媒体上のパーセルの識別に変換するために使用するこ
とができる。この照会変換機能55は、データ探索機能
56を使用することができる。これらのデータ探索機能
56は、要求されたデータを探索するために、いろいろ
な索引(これらの索引の若干は媒体上に格納することが
できる)、並びに媒体上の地理データのファイル構造に
関する情報を使用することができる。データ探索機能5
6は、所望のデータのパーセルが媒体上に位置している
アドレス位置、またはファイルオフセットを決定するこ
とができる。データ探索機能56は、パーセル内の所望
のデータの位置を決定することもできる。ナビゲーショ
ン応用は、データ変換機能57を更に含む。データ変換
機能57は、データを圧縮解除し、ナビゲーティング機
能28がデータを容易に使用できるフォーマットに変換
するために設けられている。データ変換機能は、地理デ
ータベース40の異なるバージョンまたはリリースから
変換するためにも、並びに地理データベースを更新する
ためにも設けることができる。アクセス機能39は、あ
る最小資源がナビゲーションシステムによって提供され
ることを条件に、地理データベース40を使用するナビ
ゲーションシステムに受容できるレベルの性能をも与え
る。更に、アクセス機能39は、より向上した性能さえ
も与えるために、最小より多い付加的な資源の効率的な
使用をも提供する。一実施例では、アクセス機能39は
(以下に説明するパーセルキャッシュメモリ以外に)ほ
ぼ 128Kのメモリを使用するが、代替実施例では、それ
より小さいメモリでさえも( 64 K、または 16 Kでさ
えも)使用することができる。
【0029】別の代替実施例では、地理データへの全て
のアクセス機能は、この目的のために分離した機能を提
供する代わりに、それぞれのナビゲーション機能28に
よって実現することができる。この代替では、これらの
アクセス機能の動作は類似していよう。
【0030】IV.パーセルキャッシュ a.概要。 ナビゲーションシステムの性能を改善する
1つの方法は、メモリ内にパーセルキャッシュを実現す
ることである。図2を参照する。ナビゲーションシステ
ムの動作中、いろいろなナビゲーティング機能28は、
機能を遂行するために必要な地理データを識別する照会
をフォーミュレートする。媒体32上のどのパーセル1
20(図4)が、ナビゲーティング機能28が必要とす
るデータを含んでいるかを識別するために、データアク
セス機能39はこれらの照会を使用する。これらのパー
セル120が識別されると、それらはデータアクセス機
能39によってアクセスされ、読み出される。不幸に
も、前述したように、データのために媒体へのアクセス
は比較的遅い。データのパーセルが媒体32から読み出
されると、照会を満足させるために、パーセル内のデー
タの若干、または全てを圧縮解除し、ナビゲーション機
能28へ供給しなければならない。
【0031】ナビゲーティング機能28からのデータに
関する若干の照会について言えば、1つより多くのパー
セル内に含まれるデータに対する要望が存在し得る。更
に、ナビゲーティング機能28からのデータに関する若
干の照会について言えば、先にアクセスしたパーセルか
らのデータに対する要望が存在し得る。先にアクセスし
たパーセルからのデータに対する要望は、若干のナビゲ
ーション機能がデータに空間的にアクセスする場合に生
じ得る。例えばルート計算機能33が遂行されている時
に、どの経路が最適であるかを決定するために、地理領
域内の道路交差点の位置から複数の可能経路が探査され
る。これらの複数の可能経路の探査は、その交差点から
比較的近くに位置する特色を調べ、次にその交差点から
比較的離れて位置する特色を調べ、次いでその交差点か
ら比較的近くに位置する特色を再度調べることを要求し
得る。これらの特色を表すデータは空間的に編成するこ
とができるから、互いに近接する特色を表すデータを再
度調べることは、先にアクセスしたものと同一のパーセ
ルにアクセスすることが必要になり得る。別の例とし
て、空間的に編成されたデータのパーセルを探知するの
に必要なグローバルkd木パーセルのような、異なるデ
ータベースレコードを探知するために索引パーセルを繰
り返して必要とすることがあり得る。パーセルを、1回
より多く識別し、探知し、アクセスし、そして読み出さ
なければならなくなる度に、この時間消費が重ねられて
行く。これらの環境の下では、もしパーセルを、1回よ
り多く媒体上で探知し、アクセスし、そして読み出さな
ければならないのであれば、かなりの時間が節約でき、
それによってシステムの性能を改善することができる。
【0032】ナビゲーションシステムの性能を改善すべ
く、媒体からアクセスされ、読み出された地理データの
複数のパーセルを格納するために、ナビゲーションシス
テムのメモリ内に特定的にキャッシュを設ける。図5−
7にパーセルキャッシュのいろいろな面を示す。地理デ
ータのパーセルをパーセルキャッシュ内に格納すること
によって、複数の地理パーセルをメモリ内に維持し、何
時でも使用できるようにしてナビゲーティング機能28
を支援する。パーセルキャッシュは、先に調べたデータ
を再び調べることが必要なナビゲーション機能を収容す
る。若干のナビゲーション機能は、比較的短時間の間に
1回より多く同一のパーセルにアクセスする必要がある
ので、パーセルをメモリ内に格納して何時でも使用でき
るようにしておくと、再度媒体からのパーセルにアクセ
スするのに伴う比較的大きい遅れが回避される。パーセ
ルキャッシュは、ナビゲーション機能が直ぐに必要とす
ることが予測される地理データのパーセルを格納するた
めに使用することができる。また、パーセルキャッシュ
は、ナビゲーション機能28の1つ、または別の機能が
破棄すべきではないことを指示した最新使用済みパーセ
ルを含むために使用することもできる。
【0033】一実施例では、パーセルキャッシュは、媒
体から読み出された全てのデータのパーセルを含むため
に使用される。もしナビゲーション機能28からの照会
を満足させるのに必要なパーセルがパーセルキャッシュ
内に存在しなければ、そのパーセルは媒体からパーセル
キャッシュ内へ読み込まれ、次いでデータをナビゲーシ
ョン機能28へ送るためにそれはアクセス機能39によ
って使用され、照会を満足させる。図2を参照する。パ
ーセルキャッシュの形成及び動作は、キャッシュ管理者
機能59によって遂行させることができる。キャッシュ
管理者機能59は、データアクセス機能39の中に含ま
せることができる。
【0034】図5は、ナビゲーションシステム10にお
けるメモリの使用を示す図である。RAM20の部分2
02はナビゲーション機能28が使用し、別の部分20
4はアクセス機能39が使用する。これらの部分202
及び204は、ナビゲーションシステム内に設けられて
いるメモリの合計量に基づいて、ナビゲーションシステ
ムの初期化時に決定することができる。更に、メモリ2
0の部分206は、後述するようにパーセルキャッシュ
207のために使用される。メモリ20の更に別の部分
208は再割当て可能である。この再割当て可能な部分
208の若干、または全ては、ナビゲーションシステム
の要望に基づいてナビゲーションシステムのランタイム
中に、ナビゲーション機能28またはアクセス機能2
9、またはパーセルキャッシュ207によって交互に使
用することができる。
【0035】パーセルキャッシュ207は、1つまたは
それ以上のバッファ220を含む。各バッファ220
は、ナビゲーションシステムのメモリ20の一部分を表
している。図6は、図5のパーセルキャッシュ207を
形成しているバッファ220の1つを示す図である。キ
ャッシュ207には3つの基本的ユニット、即ち、ペー
ジ222、ブロック224、及びバッファ220が存在
している。これらのアイテムの関係を図6に示す。図6
に示すバッファに類似する複数のバッファ220が一緒
に連鎖されて存在することができる。1つまたはそれ以
上のブロック224が各バッファ220内に含まれる
が、実際の数はキャッシュの使用に依存する。各ブロッ
ク224は、1つまたはそれ以上のページ222で形成
されている。各ブロックはメモリの隣接範囲であり、こ
のメモリの隣接範囲はパーセルを格納しているか、また
は最大隣接範囲のフリーメモリの何れかである。ページ
222のサイズは固定されており、各パーセルはページ
サイズの倍数であるサイズを有している。ページサイズ
は、例えばCD−ROMの場合の2Kのように、媒体の
最小アドレス可能な量に選択することができる。ブロッ
ク224は2つの状態、即ちフリーか、または使用中の
一方にある。使用中のブロックは、パーセルデータを含
んでいるか、または現在その中へ読み込み中である。
【0036】b.パーセルキャッシュのサイズ。 パー
セルキャッシュのサイズは、幾つかのファクタに依存す
る。パーセルキャッシュのサイズに影響を与える1つの
ファクタは、パーセルの1つまたは複数のサイズに依存
する。パーセルのサイズに対するパーセルキャッシュの
サイズは、パーセルキャッシュ内にどれ程多くのパーセ
ルを含むことができるかを決定する。前述したように、
若干の実施例では、パーセルは例えば2K、4K、8
K、16K、32K、等々のような正規サイズで媒体上に格
納されている。従って、キャッシュのサイズは、格納で
きるこれらの各サイズの数、またはパーセルを限定す
る。例えば、384 Kパーセルキャッシュは、各々が 16
Kのサイズのパーセルを最大 24 格納することができ
る。大きいサイズのパーセルであれば格納できるパーセ
ル数は相応に少なくなり、サイズが小さければ格納でき
るパーセルの数は相応に多くなる。一実施例では、媒体
32上の地理データベース40は1つより多くのサイズ
を含んでいる。若干のパーセルは32 Kであり、他のパ
ーセルは 16 Kであり、他のパーセルは8Kであり、等
々である。従って、一実施例では、物理媒体32から読
み出された変化するサイズのパーセルを保持するため
に、パーセルキャッシュ207を使用する。
【0037】パーセルキャッシュのサイズに影響を及ぼ
す別のファクタは、ナビゲーションシステムの合計使用
可能メモリ資源である。メモリ資源が制限されているナ
ビゲーションシステムは、パーセルキャッシュのために
比較的小さい部分しか提供できない。より大きいメモリ
資源を有するナビゲーションシステムは、パーセルキャ
ッシュのために比較的大きい部分を提供することができ
る。
【0038】パーセルキャッシュのために設けられるメ
モリの量に影響する別のファクタは、パーセルに関する
要求を発したナビゲーション機能内の1つまたは複数の
探索アルゴリズムに関係している。先に調べたデータを
異なる方法で再び調べることは、異なる探索アルゴリズ
ムで実現することができる。例えば、若干の探索アルゴ
リズムは、先に検討した多くのパーセルを再びより多く
調べることを要求するのに対して、他の探索アルゴリズ
ムは、先に検討した僅かなパーセルを再び調べるだけで
よい。更に、若干の探索アルゴリズムは、長い時間にわ
たって先に検討したパーセルを再び調べるように実現す
ることができる。即ち、それらは始めに比較的多くのパ
ーセルが調べられたパーセルに戻って、それらを更に再
び調べることができる。
【0039】パーセルキャッシュのために設けられるメ
モリの量に影響する更に別のファクタは、若干の探索ア
ルゴリズムが「プリキャッシュ」探索技術を実現してい
ることである。「プリキャッシュする」とは、ナビゲー
ション応用機能が実際にパーセル内のデータを必要とす
る前に、パーセルキャッシュ内にパーセルを格納するこ
とを言う。プリキャッシュするために、ナビゲーション
機能は、ある動作パターンを検出し、実際に必要とする
前にどのデータが必要になるであろうかを予測するアル
ゴリズムを実現する。この検出したパターンに基づい
て、ナビゲーション機能28の1つは若干のデータにア
クセスすることを要求し、それによってそれらのデータ
を含むパーセルをパーセルキャッシュに格納させ、何時
でも使用できるようにする。
【0040】パーセルキャッシュのために使用されるメ
モリの量に影響する更に別のファクタは、パーセルキャ
ッシュ207に割当てられるメモリと、ナビゲーション
応用機能28に割当てられるメモリとの相対サイズであ
る。パーセルキャッシュ207にメモリを比較的大きく
割当てても、ナビゲーション応用機能28のために使用
可能なメモリの量を考えた場合、またはその逆の場合、
必ずしもナビゲーションシステムの性能の改善はもたら
されない。
【0041】更に別のファクタは、小さいパーセルキャ
ッシュを用いると、パーセルを圧縮された形状でキャッ
シュ内に格納し、パーセルからのデータが必要になる度
毎にパーセルを圧縮解除する必要があり得る。大きいパ
ーセルキャッシュを用いると、パーセルは圧縮解除され
た形状でキャッシュ内に格納することができる。
【0042】上述した諸ファクタを斟酌すると、パーセ
ルキャッシュ207のために合理的なサイズは 384Kで
あることが分かった。代替実施例では、パーセルキャッ
シュは 384Kよりも小さくて差し支えない。例えば、一
つの代替実施例では、パーセルキャッシュのために使用
されるメモリの量は 256K( 16 Kパーセルを最大 16
保持する)であることも、または 128Kであることさえ
もできる。384 Kよりも大きいパーセルキャッシュを設
けることもできる。一般的に言えば、より大きいパーセ
ルキャッシュは、より大きい性能便益をもたらす。パー
セルキャッシュのために使用することができるメモリの
量に関しては固定された上限はないが、パーセルキャッ
シュのために割当てられるメモリの量がナビゲーション
応用機能28のメモリ要求を制約すべきではない。例え
ば、1M(ほぼ 16 Kパーセルを64 保持する)の比較
的大きいキャッシュ、または数ギガバイトでさえも設け
ることができる。
【0043】c.パーセルヘッダープール及びハッシュ
テーブル。 パーセルキャッシュ内にパーセルを格納す
ると、資源が制限されているナビゲーションシステム、
並びにより大きい資源を有するナビゲーションシステム
の両者にとって便益を得ることができる。しかしなが
ら、パーセルキャッシュを効率的に使用すると、ナビゲ
ーションシステムの性能をさらに向上させることが可能
である。例えば、前述したように、パーセルは例えば8
K、16K、32K等のような異なるサイズのパーセルであ
ることができる。従って、所与のサイズのパーセルキャ
ッシュが与えられた場合、そのキャッシュを異なるサイ
ズのパーセルに割当てると、格納できるパーセルの数に
影響し得る。別のファクタは、キャッシュ内のパーセル
が絶えず変化することである。従って、もし 32 Kパー
セルのためのメモリ空間が必要であり、2つの隣接して
いない 16 Kの空間が使用可能であれば、これらの使用
可能な空間を合体させて 32 Kパーセルに使用させる手
段が必要である。更に別のファクタは、キャッシュ内の
パーセルを探索することに関係している。比較的大きい
(例えば、1M)パーセルキャッシュにおいては、連続
的に変化する数ダースのパーセルが存在し得る。所望の
パーセルを迅速に探索することは、システムの性能の改
善を援助する。
【0044】所望のパーセルを迅速に探索し、パーセル
キャッシュを効率的に管理するために、キャッシュ内の
各パーセルに関する情報を識別し、パーセルの索引を与
える少なくとも1つのデータ構造が設けられている。多
重タスキングまたは多重プロセッサシステムにおいては
一般的であるように、例えばミューテックス( mutex)
ロッキングによって1つまたは複数のデータ構造の完全
性を維持しなければならないことに注目されたい。一実
施例では、2種類のデータ構造が使用されている。複数
の第1のデータ構造は、キャッシュ内の各パーセルに関
する情報を含むために使用され、第2のデータ構造は第
1のデータ構造と組合せてパーセルを指し示し、探索す
るために使用される。いろいろな種類のデータ構造をこ
れらの目的のために使用することができる。図7及び8
に示すように、この実施例では、複数のパーセルヘッダ
ー264がヘッダープール262から割当てられ、バッ
ファ内の各パーセルに関する情報を保持するために使用
されている。これらのパーセルヘッダー264は、ハッ
シュテーブル266と組合せて使用される。
【0045】図7に、パーセルキャッシュ207のため
に使用されるメモリのバッファ220を示す。メモリの
バッファ220は、メモリの隣接する部分(即ち、隣接
するアドレス範囲)を表している。一実施例では、バッ
ファ220のサイズは 384Kである。キャッシュ管理者
機能59(図2)は、ヘッダープール262として使用
するための比較的小さいバッファ220の部分260を
割当てる。ヘッダープール262は複数のパーセルヘッ
ダー264からなり、各パーセルヘッダーはパーセルキ
ャッシュ207のバッファ220(図7)内の分離した
パーセルに関連付けられている。一実施例では、複数の
パーセルヘッダーは割当て構造のアレイとして編成され
ている。
【0046】ヘッダープール262のために使用される
メモリの部分260は、それが位置しているバッファ2
20の合計サイズの関数として決定することができる。
ヘッダープール260のために使用されるメモリの部分
のサイズを決定する一方法は、小さいサイズのパーセル
を保持するには小さ過ぎるバッファの残余のサイズを決
定することである。例えば、500 Kのバッファは 31 の
16 Kパーセルを保持することができ、4Kが残され
る。残された4Kを、ヘッダープールとして使用するこ
とができる。
【0047】ヘッダープール262のために使用される
メモリの部分260のサイズを決定する別の方法は、各
パーセルヘッダー毎に必要なバイトの数を推定し、次い
でバッファ220内に格納することができるパーセルの
最大数を、この数に乗ずることである。例えば、一実施
例では、各パーセル毎のヘッダーは約 40 バイトを必要
とすることができる。
【0048】一実施例では、ヘッダープール262のた
めに使用されるメモリの部分260の最小サイズは、ほ
ぼ4Kである。この4Kサイズは、約 384Kのパーセル
キャッシュサイズに基づいている。もし異なるサイズの
パーセルキャッシュが設けられれば、ヘッダープールの
ために要求されるメモリの部分260を相応に変化させ
ることができる。例えば、もし1Mのパーセルキャッシ
ュが使用されれば、メモリのより大きい部分がヘッダー
プールのために要求され得る。
【0049】パーセルキャッシュ207内に含まれるパ
ーセルは絶えず変化し得るから、必要に応じてパーセル
ヘッダー264がヘッダープール262から割当てら
れ、パーセルキャッシュ内の各パーセルに関連付けられ
る。後述するように、各パーセルに関連付けられたパー
セルヘッダー264内の情報の若干は、そのパーセルが
パーセルキャッシュ内にある間に変化し得る。キャッシ
ュ管理者機能59は、パーセルがパーセルキャッシュ内
に格納されると、ヘッダープール内のヘッダーの形成の
ためのデータを格納する。またキャッシュ管理者機能5
9は、パーセルが移動、アンロック、フィード、等々さ
れるとパーセルヘッダー内のデータの変更も行う。
【0050】図8に示すように、ハッシュテーブル26
6は、ヘッダープール262内のパーセルヘッダー26
4に関連付けられている。ハッシュテーブル266は、
あるパーセルがパーセルキャッシュ内にあるか否かを迅
速に決定するために使用される。ハッシュテーブル26
6は、パーセルキャッシュ207内に含まれる全てのパ
ーセルのバッファID(パーセルIDに関係付けられて
いる)の探索可能な索引を維持している。ハッシュテー
ブル266は、各バッファIDと、ヘッダープール26
2内の同一バッファIDを有するパーセルのパーセルヘ
ッダーの二重にリンクされたリスト内の最初のパーセル
に関連付けられているパーセルヘッダー264を指し示
すポインタ268とを関連付ける。ハッシュテーブル2
66を使用すると、アクセス機能39(図2)は、必要
なパーセルが既にパーセルキャッシュ内にあるのか、ま
たは媒体32から読み出さなければならないのかを迅速
に決定することができる。ハッシュテーブル266は、
パーセルキャッシュ内のパーセルの存在及び位置を迅速
に識別することができるので、パーセルキャッシュを直
線的に探索する必要はない。
【0051】一実施例においては、ハッシュテーブル2
66内に維持されているポインタ268は、パーセルキ
ャッシュ207のために使用される全てのバッファ22
0(図6)内のパーセルを探索するポインタを含んでい
る。従って、ハッシュテーブル266は必ずしも、パー
セル、またはそれらを指し示すパーセルヘッダーと同一
のバッファ220内に位置する必要はない。一実施例で
は、ハッシュテーブル266はバッファ220の1つの
一部分の中に位置している。代替として、ハッシュテー
ブル266はアクセス機能39のために使用されるメモ
リ20(図5)の部分204内に位置することができ
る。一実施例では、ハッシュテーブルのためのメモリ
は、第1のバッファの末尾を利用する。好ましい実施例
では、最初のバッファだけがハッシュテーブルを含んで
いることに注目されたい。それは、ハッシュテーブルは
ランタイムを通して存続するが、初期化の後に割当てら
れるバッファは存続しないからである。
【0052】ハッシュテーブル266は初期化中に割当
てられる。ハッシュテーブル266のサイズは、パーセ
ルキャッシュ207の目的のために設けられるメモリ2
06(図5)に依存して変化する。一実施例では、それ
は以下のようにして計算される。キャッシュサイズを、
パーセルヘッダーのサイズ+ページのサイズによって除
算する。キャッシュ内に残された空間の量を見出すため
に、得られた整数値に同じ定数を乗算する。もし残され
た空間が 64 Kハッシュバケットで除算したバッファキ
ャッシュサイズに等しい値を受け入れれば、残された空
間全体をハッシュテーブルのために使用する。そうでな
ければ、ハッシュテーブルのために付加的なページを使
用する。ハッシュバケットの数は、それが偶数ではない
ように処理する。理想的には、この数は素数であるが、
奇数でも充分である。
【0053】パーセルキャッシュ内の各パーセルは、ロ
ックされているか、またはロックされていないの何れか
の状態を有している。もしパーセルがロックされていれ
ば、それは使用中である。もしパーセルがロックされて
いなければ(即ち「アンロック」であれば)、それはフ
リーリストまたは最低使用頻度(LRU)リストの何れ
かに関連付けられている。各リスト内のアンロックパー
セルは、ある順序で割当てられる。フリーリストまたは
LRUリスト上の各パーセルの状態、並びに各アンロッ
クパーセルの順番は、そのパーセルに割当てられたパー
セルヘッダー264内に含まれている情報によって決定
される。この情報は、パーセルキャッシュ管理者59に
よって維持されている。
【0054】図9は、図8のヘッダープール262内の
パーセルヘッダー264の1つの構造を示している。パ
ーセルヘッダー264は、ブロック220内に含まれて
いる各パーセル、またはフリーブロックに関連付けられ
たデータ構造である。プール262内の全てのパーセル
ヘッダーは、類似の構造を有することができる。各パー
セルヘッダー264は、その関連するパーセルの探索、
及び使用を容易にする情報、及びパーセルキャッシュの
使用を容易にする情報を含む。各パーセルヘッダー26
4は、以下の種類のデータを含んでいる。
【0055】最初に、各パーセルヘッダー264はその
パーセルのための独自の識別子(“Buffer ID"とラベル
付けされている)を含む。このフィールド内のデータ2
80は、もしブロックがフリーであれば“0”である。
この Buffer IDデータ値は、パーセルID(例えば、媒
体上のパーセルのためのID)から、領域のためのID
から、または両者の組合せから導出することができる。
好ましい実施例では、2つの Buffer ID280はヘッダ
ープール内で同一ではない。
【0056】次に、パーセルヘッダー264は、順序付
けられたフリーリスト、または順序付けられたLRUリ
ストの何れかの中の先行パーセルに関連付けられたヘッ
ダーを識別するデータ282( “pPrev"とラベル付け
られている)を含む。もし Buffer IDが“0”であって
そのパーセルがフリーリスト上にあることを指示してい
れば、このアイテムのデータ282はフリーリスト上の
先行ヘッダーを識別する。もし Buffer IDが“0”以外
であってそのパーセルがRLUリスト上にあることを指
示していれば、このアイテムのデータ282はRLUリ
スト上の先行ヘッダーを識別する。
【0057】次に、パーセルヘッダー264は、順序付
けられたフリーリスト、または順序付けられたLRUリ
ストの何れかの中の次のパーセルに関連付けられたヘッ
ダーを識別するデータ284( “pNext"とラベル付け
られている)を含む。もし Buffer IDが“0”であって
そのパーセルがフリーリスト上にあることを指示してい
れば、このアイテムのデータ284はフリーリスト上の
次のヘッダーを識別する。もし Buffer IDが“0”以外
であってそのパーセルがRLUリスト上にあることを指
示していれば、このアイテムのデータ284はRLUリ
スト上の次のヘッダーを識別する。( pPrev282、及
び pNext284は、ブロック文脈に依存して、それらの
それぞれのヘッダーをフリーリスト、またはLRUに連
鎖させるために使用される。) 次いで、パーセルヘッダー264は、同一の Buffer ID
を有するパーセルのパーセルヘッダーの二重にリンクさ
れたリスト内の先行パーセルヘッダーを識別するデータ
286( “pHashPrev"とラベル付けられている)を含
んでいる。
【0058】次いで、パーセルヘッダー264は、同一
の Buffer IDを有するパーセルのパーセルヘッダーの二
重にリンクされたリスト内の次のパーセルヘッダーに関
連付けられたヘッダーを識別するデータ288( “pHa
shNext"とラベル付けられている)を含んでいる。
【0059】パーセルヘッダー264は、ヘッダーと、
メモリアドレスによって格納されているリストとを連鎖
させるデータ290( “pAddPrev" とラベル付けられ
ている)及びデータ292( “pAddNext" とラベル付
けられている)を含んでいる。後述するように、これは
併合化及び合体を援助する。
【0060】次に、パーセルヘッダー264は、パーセ
ルデータが位置しているバッファ内のアドレスを指し示
すデータ294( “pPages" とラベル付けられてい
る)を含んでいる。図6を参照する。このデータ294
は、パーセルが位置しているブロック224内のページ
222を指し示すことができる。もしこのブロックがフ
リーであれば、このデータ294はフリーメモリブロッ
クを指し示す。
【0061】パーセルヘッダー264は、次に、そのパ
ーセルを含むバッファを参照するデータ296( “pCa
che" とラベル付けられている)を含んでいる。次い
で、パーセルヘッダー264は、後述するようにパーセ
ル待ち行列のためのターンスタイル対象( turnstile ob
ject )を指し示すデータ298( “pTurnstile" とラ
ベル付けられている)を含んでいる。この情報は、I/
Oが進行中に同一のパーセルに対する第2の要求が発生
した場合、パーセルの探索を排除するために使用され
る。
【0062】パーセルヘッダー264は、次に、ブロッ
クのサイズを限定するデータ300( “pages"とラベ
ル付けられている)を含んでいる。
【0063】次に、パーセルヘッダー264は、パーセ
ルを移動または破棄することができるか否かを指示する
データ302( “lockCount"とラベル付けられてい
る)を含んでいる。この値が0以外であれば、そのパー
セルは移動または破棄されない。このアイテムのデータ
は、そのパーセルに関する照会が行われる度毎に1つだ
けインクリメントされ、そのパーセルに関する照会が満
足される度毎に1つだけデクレメントされる。従って、
もしそのパーセルに対して1回より多くの要求がなされ
れば、このアイテムのデータは、そのパーセルに対する
全ての要求が満足されてしまうまでは、そのパーセルが
破棄されないことを保証する。
【0064】パーセルヘッダー264は、次に、ブロッ
クが有効データを含んでいる場合にセットされるデータ
フィールド306( “bLoaded"とラベル付けられてい
る)を含んでいる。この値はパーセルヘッダーがフリー
リスト上にある間は有効ではない。パーセルヘッダー内
のこのアイテムのデータ306( “bLoaded")がクリ
アされると、それは関連ブロックが現在読み込み中であ
ることを指示する。
【0065】最後に、パーセルヘッダー264は、それ
がロックされているか否かには関係なく、パーセルデー
タがスワッピングのために使用可能であるか否かを指示
するデータ308( “bWired" とラベル付けられてい
る)を含んでいる。もしこのデータフィールド308が
セットされていれば、たとえそれがアンロックであって
も、そのパーセルをスワップすることはできない。
【0066】d.パーセル待ち行列。 前述したよう
に、もしナビゲーション機能28からの照会に対して必
要なデータのパーセルがパーセルキャッシュ207内に
存在していなければ、そのパーセルは媒体からパーセル
キャッシュ207内へ読み込まれ、それをアクセス機能
が使用してナビゲーション機能28からの照会を満足さ
せるようになる。図10及び11を参照する。媒体から
パーセルを入手するために、パーセルキャッシュ207
はパーセル待ち行列400と共働する。パーセル待ち行
列400は、パーセル待ち行列管理者機能404(図
2)によって形成され、管理される。図2に示したよう
に、パーセル待ち行列管理者404は、アクセス機能3
9の中にあることができる。パーセルキャッシュとパー
セル待ち行列との間の連絡は、双方向である。パーセル
待ち行列400は、パーセルキャッシュ207のための
パーセルに対する要求を含むために使用される。パーセ
ル待ち行列管理者404はパーセル待ち行列400を使
用して、パーセルに対する要求を媒体デバイスソフトウ
ェア層408へ引渡す。この層408は記憶媒体32へ
アクセスする媒体デバイス(図1のドライブ14のよう
な)をインタフェースするのに使用される。
【0067】一実施例では、パーセル待ち行列管理者4
04は、媒体からのパーセルへのアクセスを効率的にす
る特色を提供する。例えば、パーセルキャッシュ207
は同一パーセルに対する多重要求を受けることができ
る。パーセル待ち行列管理者404は、同一パーセルが
2回読み出されないようにパーセル要求を濾過する。パ
ーセル待ち行列管理者404は、これらの多重要求を認
識し、単一の要求だけを媒体デバイス層408へ引渡
す。
【0068】図11を参照する。パーセル待ち行列管理
者404は、パーセル待ち行列400を維持している。
対応する待ち行列409が媒体デバイス層408内に位
置している。パーセル待ち行列管理者404は、パーセ
ル待ち行列400を管理するために2つのデータ対象を
使用する。これらのデータ対象は、ターンスタイル対象
412、及びパーセル要求対象414を含む。ターンス
タイル対象412は、媒体デバイス層408へ転送され
るパーセルに対する要求を同期させるために使用され
る。媒体デバイス層408内の対応する待ち行列409
内の各要求毎に、1つのターンスタイル対象412が割
当てられる。
【0069】ナビゲーティング機能が必要とするパーセ
ルがパーセルキャッシュ207内に存在しない場合(ハ
ッシュテーブル266を探索することによって決定され
る)には、パーセルキャッシュ管理者59はパーセル要
求対象414を作成する。パーセル要求対象414はパ
ーセル待ち行列400へ供給され、パーセル待ち行列4
00においてパーセル待ち行列管理者404によってタ
ーンスタイル対象412が形成され、パーセル要求対象
414に関連付けられる。ターンスタイル対象412
は、ハンドルをパーセル要求対象412へ戻す。もし同
一パーセルに対するターンスタイル対象412が、先行
パーセル要求414を満足させるために既にパーセル待
ち行列400内に作成されていれば、同一パーセルに対
する第2のパーセル要求414及びその後のパーセル要
求414は、同一ターンスタイル対象412にリンクさ
れる。従って、同一パーセルに対して多重要求がなされ
た場合には、図11に示すように、多重パーセル要求対
象414が単一のターンスタイル対象412に割当てら
れ、連鎖される。前述したように、パーセル要求を参照
するために使用されるハンドルがターンスタイル対象4
12によって戻されるので、たとえ要求されたパーセル
の読み出しが1回だけであっても、一旦それがパーセル
キャッシュ内に入れられれば、それを要求した全ての機
能はそのパーセルを使用することができる。
【0070】ターンスタイル対象412内の情報を使用
して、パーセル待ち行列管理者404はパーセルに対す
る要求を媒体デバイス層408内の媒体待ち行列409
へ転送する。詳述すれば、パーセル待ち行列管理者40
4は、特定の領域/オフセット/サイズ組合せ420に
対する要求を媒体デバイス層408へ転送する。領域/
オフセット/サイズ組合せの領域部分は、媒体上に格納
されている1つまたはそれ以上のファイル(各々が分離
した領域を表すことができる)のどのファイルを読み出
すのかを識別するために使用される。領域/オフセット
/サイズ組合せのオフセット部分は、識別された領域フ
ァイルにおいて所望のパーセルデータが開始される位置
を識別するために使用される。領域/オフセット/サイ
ズ組合せのサイズ部分は、所望のパーセルを読み出すた
めには、オフセット位置から開始してどれ程多くのデー
タを読み出すのかを識別するために使用される。
【0071】図11は、パーセル待ち行列400及び3
つのパーセルのためのトランザクション/要求レイアウ
トを示している。パーセル1に対しては1つの要求がな
されており、パーセル2はそれに対してなされた2つの
要求を有し、パーセル3はそれに対してなされた3つの
要求を有している。(これらに加えて、他のパーセルに
対する付加的な要求が存在し得る。)パーセル待ち行列
400を使用することによりこれら6つのパーセル要求
414が、媒体待ち行列409においては僅か3つの要
求にされている。
【0072】媒体デバイス分離層408は、パーセルに
対する要求(領域/オフセット/サイズ組合せの表現
で)をパーセル待ち行列400から受ける。媒体デバイ
ス分離層408においては、媒体からパーセルを読み出
すデバイスの読み出しヘッドの走行を最小にするため
に、要求されたパーセルの順序を再配列することができ
る。例えば、CD−ROMのような低速媒体の場合に
は、散在させた、またはスキップされる読み出し支援が
設けられていれば、性能を改善することができる。媒体
デバイス分離層408は特定の型の媒体に合わせること
ができ、また特定のプラットフォームのために特定的に
準備することができる。
【0073】あるパーセルのためのI/Oが完了する
と、媒体デバイス層408は、I/O完了をパーセル待
ち行列管理者404に連絡するために関連するセマフォ
を通知する。各ターンスタイル対象は、要求されたパー
セルがロードされるまで、タスクまたプロセスが処理を
中断させることを可能にする関連するセマフォを含んで
いる。パーセル待ち行列管理者404は、I/Oの完了
を検出するとパーセルキャッシュ管理者59に通報す
る。パーセルキャッシュ管理者59は、キャッシュ内に
読み込まれたパーセルのための関連するパーセルヘッダ
ー264内の bLoadedフラグ306(図9)をセットさ
せる。
【0074】e.プリキャッシュ制限。 前述したよう
に、若干のナビゲーション機能28はプリキャッシング
を行う。プリキャッシングはナビゲーションシステムの
性能を強化する価値ある方法であることはできるが、も
し中間データ要求のためにナビゲーションシステム資源
が必要になれば、それは性能を損なう可能性がある。従
って、プリキャッシュ要求を管理して、中間要求に対し
て優先順位を与えることができるようにする方法を提供
することが望ましい。一実施例では、プリキャッシュ要
求を管理して優先順位を与えるために、パーセル待ち行
列管理者404を使用する。プリキャッシュ要求は、ど
のデータが必要とされ得るかの予測に基づいているから
(しかし、実際には未だに要求されていない)、プリキ
ャッシュ要求には、直ちに必要とされるパーセルに対す
る要求よりも低い優先順位を割当てることができる。パ
ーセル待ち行列管理者404は、この目的のためにプリ
キャッシュ要求にハンドルを割当てる。これにより、も
しナビゲーション機能28からのデータの即時要求を満
足させるためにナビゲーションシステム資源が必要であ
れば、プリキャッシュ要求を取り消すのが容易になる。
【0075】パーセル待ち行列管理者404の一実施例
がプリキャッシュ使用を管理する一方法は、パーセルキ
ャッシュがプリキャッシュ要求のために使用できる程度
を制限することによっている。これは、パーセルキャッ
シュの少なくとも一部分を非プリキャッシュ要求のため
に常時保留する効果を有している。図12は、プリキャ
ッシュの使用を制限するために、パーセル待ち行列管理
者404が実行するプログラミングステップを示してい
る。プリキャッシュ要求のために使用することができる
全パーセルキャッシュの部分の上限を確立するパーセン
テージが限定される。このパーセンテージは、パーセル
キャッシュ管理者404がセットすることができる。例
えば、一実施例では、プリキャッシュ要求は、パーセル
キャッシュのサイズの 70 %に制限されている。この限
度は構成可能である。
【0076】パーセル待ち行列管理者404はプリキャ
ッシングのこの限度を実現するために、ペンディングに
なっているプリキャッシュ要求に対して使用される現在
のバイト数を追跡する。パーセル待ち行列管理者404
は、付加的なパーセル要求を受けると、この数を使用す
る。もし新しいプリキャッシュパーセルが要求され、プ
リキャッシュ要求に対して使用されているパーセルキャ
ッシュの現在の合計量に追加された時に上限を超えれ
ば、そのプリキャッシュ要求は取り消される。ペンディ
ングになっているプリキャッシュ要求を追跡する際に、
完了した要求は考慮に入れないか、またはプリキャッシ
ュ及び非プリキャッシュの両要求に(ターンスタイル対
象を介して)関連付けられたパーセルに対する要求でも
ない。
【0077】プリキャッシュを制限しても、照会が、不
十分なメモリ資源に遭遇する可能性がある。これは、キ
ャッシュフラグメンテーションに起因して、または例外
的な数の同時データ要求が存在したために発生し得る。
この潜在的な問題に対処するために、メモリ資源が不十
分である時には全てのプリキャッシュ要求を破棄するこ
とができる。代替として、若干の選択されたプリキャッ
シュ要求のグループだけを取り消すことができる。
【0078】f.併合化。 前述したように、媒体から
読み出された地理データの各パーセルはパーセルキャッ
シュ内に格納され、パーセルキャッシュから要求中のナ
ビゲーション機能へデータが供給されるようになってい
る。データパーセルに対する要求は、パーセル識別子
(例えば、「パーセルID」)の表現でなされる。キャ
ッシュメモリ207内のパーセルの探索は、ハッシュテ
ーブル266を使用して遂行される。もしパーセルがキ
ャッシュ内に存在していなければ、媒体からパーセルを
読み出す要求が発生する。パーセルがパーセルキャッシ
ュ207内に入れられると、バッファアドレスがナビゲ
ーション応用へ戻された時にそのパーセルはバッファ内
にロックされる。これは、要求が活動状態になった時に
バッファがスワップされるのを阻止する。このロック
は、パーセルがナビゲーション応用28によって解放さ
れると解除される。
【0079】殆どの時間、パーセルキャッシュは一杯で
あり、現在のブロックを破棄しなければ新しいパーセル
を受入れることはできない。時には、現在のブロックを
破棄することなく、キャッシュ内のブロックを再配列し
て到来するパーセルに適合する充分な空間を合体させる
ことができる。パーセルキャッシュ管理者59は、新し
いパーセルを格納するのに充分な空間を得るのに併合化
が必要であるか否かを決定するために、各バッファ22
0内のフリー空間の量を追跡している。
【0080】一実施例では、併合化が使用される程度は
構成可能である。例えば、併合化は、比較的アグレッシ
ブに、比較的非アグレッシブに、またはアグレッシブと
非アグレッシブとの間にあるように構成することができ
る。非アグレッシブ併合化では、フリーメモリ(必ずし
も隣接はしていない)の量が新しいパーセルのために必
要なサイズの少なくとも2倍にならない限り併合化は発
生しない。アグレッシブ併合化では、フリーメモリ(必
ずしも隣接はしていない)の量が新しいパーセルのため
に必要なサイズの少なくとも2倍に等しいと併合化が実
施される。
【0081】パーセルキャッシュ管理者59が併合化を
遂行する場合、それは、1つまたは2つの条件が真にな
った時にブロックを再配置する。第1に、図13に示す
ように、フリーブロック224Aに隣接する使用中のブ
ロック224Bが、別のフリーブロック224Dを完全
に満たすことができる場合には、パーセルキャッシュ管
理者59は併合化を遂行する。第2に、図14に示すよ
うに、単一の使用中のブロック224Bが、2つのフリ
ーブロック224Aと224Cとの間にある時には、パ
ーセルキャッシュ管理者59は併合化を遂行する。
【0082】一実施例では、割当てられるメモリはキャ
ッシュのトップ(アドレス順で)から下方へ成長する。
これは、フリーブロックの端からメモリを割当てる方
が、始まりから割当てるより(アンリンクし、再サイジ
ングし、そして再リンクする代わりに、フリーブロック
を再サイジングする方が)容易だからである。また、パ
ーセルヘッダー264はアドレスで順序付けられたリス
トに配列され、各々は次のブロックを見出すのに使用す
ることができるサイズ値(即ち、図9の「ページ29
4」)を保持している。フリーブロック内の最後のペー
ジ(即ち、ブロックのための境界タグを形成している)
もサイズ値を含んでおり、これは、フリーブロックを合
体させる目的のためにフリーブロックのリストを通して
後方へ移動することができる。
【0083】パーセルキャッシュ管理者59は、キャッ
シュのトップから開始し、始まりへ戻るように動作して
併合化を遂行する。ロックされた(即ち、図9における
“lockCount 302" >0であるような)ブロック、
またはワイヤード(即ち、図9における “bWired30
8" ≠0であるような)ブロックは、再配置のために考
慮されることはない。また、もし割当て要求を満足する
充分なフリー空間が得られれば、併合化機能は終了す
る。
【0084】併合化プロセスのための擬似コードは以下
の通りである。
【0085】 FOREACH block(a), scanning from highest to lowest IF block(a) is in-use THEN IF adjacent blocks are free THEN relocate block to the highest free block ELSE FOREACH in-use blodk(b), scanning from lowest to previous(block(a)) IF size of block(a) =size of blodk(b) AND blodk(b) is adjacent to a free block THEN relocate block(b) to block(a) ENDIF 代替実施例では、パーセル管理者59内の統計構造内に
成功した併合化が、レコードされる。パーセル管理者5
9はこれらの統計を使用して、併合化の頻度を知的に制
御することができる。
【0086】代替実施例では、パーセルキャッシュ20
7は併合化なしに使用することができる。もしパーセル
キャッシュが充分に大きければ、キャッシュを併合化さ
せるためにパーセルを移動させるのではなく、パーセル
を全て破棄する方がより効率的であるかも知れない。
【0087】g.空間割当て。 典型的には、ナビゲー
ションシステムが暫時動作した後は、キャッシュ内のフ
リー空間だけが、異なるサイズのパーセルのフリーイン
グ/割当てによっ作られた小さい断片である。キャッシ
ュ内には存在しないパーセルに対する要求を満足させる
ために、パーセル管理者59はキャッシュチェーンを通
して多重パスを行い、割当てが完了すると直ちに戻すこ
とができる。第1のパスにおいてパーセル管理者59
は、要求を満足するために充分に大きいブロックが使用
可能であるか否かを調べる。もし充分に大きいブロック
が使用可能でなければ、パーセル管理者59はキャッシ
ュを併合させる(もし併合化が可能化され、上述した基
準に適合すれば)。
【0088】もし併合化によって新しいパーセルのため
の充分な空間が得られなければ、パーセル管理者59
は、以下に説明する最低使用頻度(LRU)アルゴリズ
ムを介して破棄する。LRUアルゴリズムは、パーセル
の読み出し数を最小にすることを試み、エージ( age )
を斟酌する。LRUアルゴリズムは、要求されたページ
数を満足させることを試みる際に、2回のパスを行う。
第1のパスはLRUの最古の 75 %に作用し、以下の基
準に合致するブロックを破棄し、割当てる。
【0089】1.ブロックは要求のサイズの2倍である
か、またはより大きく、それはキャッシュの最古の 25
%以内である。
【0090】2.ブロックは、要求されたサイズに正確
に一致する。
【0091】3.ブロックは、使用中のブロックをフリ
ーにすることが充分なサイズのフリー空間をもたらすよ
うに、フリーブロックに隣接している。
【0092】第1のパスは、要求を満足させるために単
一のパーセルを破棄することをシークする。もしこれ
が、キャッシュの最古の 75 %を処理した後に充分な空
間を設けることに失敗すれば、第2のパスが行われ、厳
格にLRUに基づいてそれらのブロックを破棄する。最
後に、もし、それでも充分な空間が得られなければ、全
てのプリキャッシュ要求は(パーセル待ち行列管理者4
04によって)取り消される。
【0093】V.開示した実施例の長所 上述した実施例は、メモリ資源を比較的効率的に使用す
るパーセルキャッシュを提供している。また、開示した
実施例における断片化(フラグメンテーション)は比較
的小さい。これらの長所は、部分的には、パーセルヘッ
ダー情報をパーセルデータから分離したことによって達
成される。これにより、使用可能なブロック内に概ね適
合するパーセルサイズが得られ、メモリの未使用部分が
比較的大きくなることを回避する。
【0094】開示した実施例によってもたらされる別の
長所は、どのパーセルがキャッシュ内に位置しているの
かを決定するためにハッシュテーブルを使用したことに
よって、キャッシュの内容を決定するのにキャッシュを
直接調べないことである。比較的大きいキャッシュは、
調べるのにかなりな長さの時間を必要とするから、これ
は、比較的大きいキャッシュを有する大きいシステムに
おいては特に有利である。従って、数百キロバイトから
数ギガバイトまでのキャッシュサイズが支援される。こ
れにより、開示した実施例は汎用性を有するようにな
り、同一キャッシュシステムを、手持ちナビゲーション
システム及びビークル搭載システムのような比較的小さ
いメモリを有する比較的小さいシステムにも、大きいメ
モリを有するネットワークされたサーバのような比較的
大きいシステムにも使用することができる。
【0095】開示した実施例によって提供される別の長
所は、パーセルキャッシュを効率的に併合化できること
である。メモリブロックは、必要な場合に移動する。併
合化は、特定のハードウェアプラットフォーム及び使用
の型の要求に合わせることができるように構成可能であ
る。併合化は、大きいキャッシュ/高速媒体環境に対し
ては完全に遮断することができる。
【0096】開示した実施例によって提供される別の長
所は、それらが異なるサイズのパーセルを比較的良好に
処理することである。これにより地理データは、地理デ
ータを最も効率的に編成するパーセルサイズで媒体上に
格納することができる。
【0097】VI.代替実施例 開示した実施例は、本発明の概念を特定的に実施したも
のに過ぎず、本発明の範囲内でいろいろな他の種類の実
施を考案することができる。例えば、ハッシュテーブル
及びヘッダープールの代わりに、他の種類の構造を使用
してキャッシュ内のパーセルの索引、及びキャッシュ内
のパーセルの位置の識別に関連する機能を実現すること
ができる。
【0098】地理データのパーセルは、パーセルキャッ
シュ内に圧縮した、または圧縮解除された形状で格納す
ることができる。例えば、もしパーセルが応用からの要
求を満足させるために圧縮解除されていれば、この圧縮
解除されたパーセルはその圧縮解除された形状でパーセ
ルキャッシュ内に格納することができ、それによって次
にそのパーセル内のデータが必要になった時に、パーセ
ルを再び圧縮解除する必要はなくなる。パーセルヘッダ
は、パーセルの圧縮解除されたサイズを指示する情報を
含むことができるので、パーセルキャッシュ内の充分な
空間を、圧縮解除された形状のパーセルを保持するのに
使用可能にすることができる。代替として、パーセル
は、媒体上に格納されているものと同じ圧縮されたフォ
ーマットでパーセルキャッシュ内に格納することができ
る。パーセルを圧縮された形状でパーセルキャッシュ内
に格納することは、パーセル当たり少ないメモリでよ
く、それによってより多くのパーセルを格納することが
できるという長所が得られる。圧縮された、及び圧縮解
除されたパーセルを、同時にキャッシュ内に格納するこ
とができる。例えば、もしプリキャッシュ要求に応答し
てパーセルをパーセルキャッシュ内に格納すれば、それ
らは圧縮された形状で格納し、実際に必要になった時に
だけ圧縮解除することができる。応用からの要求を満足
させるためにパーセルを圧縮解除した後は、そのパーセ
ルはその圧縮解除された形状で格納することができ、そ
のパーセルの圧縮されたコピーは破棄される。
【0099】上述した実施例においては、各ヘッダープ
ールは、パーセルキャッシュのために使用されるメモリ
の各バッファの一部で形成され、それぞれのメモリのバ
ッファ内のパーセルを参照するヘッダを含んでいる。代
替実施例では、ヘッダープールは、ヘッダープール内に
含まれているパーセルヘッダーによって表されるパーセ
ルを含むメモリのバッファの外側の、メモリの別の部分
内に位置することができる。
【0100】代替実施例においては、ナビゲーションシ
ステムは、ハードウェアプラットフォームまたはアーキ
テクチャには関係なく、エンドユーザにナビゲーション
機能を提供する、どのようなコンピュータをベースとす
るシステムをも含むものと理解すべきである。例えば、
ナビゲーションシステムは、手持ちシステム、またはパ
ーソナルディジタル支援またはパーソナルコンピュータ
上に設置されたシステムのような、どのような種類のポ
ータブルシステムをも含むことができる。代替実施例で
は、ナビゲーションシステムは、デスクトップコンピュ
ータのようなパーソナルコンピュータ上に設置されたナ
ビゲーション応用ソフトウェアを含むことができる。更
に、ナビゲーションシステムは、ネットワークされた環
境、及びクライアントサーバプラットフォーム環境を含
むさまざまな異なる環境内で実現することができる。ナ
ビゲーション応用プログラム及び地理データベースは同
一位置に配置する必要はなく、ネットワークを介して接
続することができる。地理データベースをエンドユーザ
から離して配置し、データは無線ネットワークを通して
エンドユーザに伝送することができる。
【0101】上述した実施例では、キャッシュが地理デ
ータのパーセルを保持するものと説明した。代替実施例
では、キャッシュはパーセル化されていない、または異
なる種類の配列を使用して編成された地理データを保持
することができる。例えば、キャッシュは、パーセルに
編成されていない個々のデータレコードを保持するため
に使用することができる。これらのデータレコードは、
圧縮することも、または圧縮しないこともできる。もし
キャッシュ内の地理データがパーセル(または類似のグ
ルーピング)に編成されていなければ、ハッシュテーブ
ル及びパーセルヘッダーに類似のデータ構造を準備し
て、キャッシュ内のデータ及びキャッシュ内のデータの
位置を識別する。他の面においては、この実施例は同じ
ように動作し、使用される。
【0102】上述した実施例においては、ナビゲーショ
ンシステム及び応用内の成分、データ構造、等々を呼ぶ
のにある用語を使用している。これらの種類の成分、デ
ータ構造、等々を呼ぶのに他の用語を使用することもで
き、開示した主題は類似概念を表現するためにどのよう
な特定の用語にも制限されるものではないことを理解さ
れたい。
【0103】パーセルキャッシュの再サイジング。 第
1の実施例に関連して説明したように、パーセルキャッ
シュのための初期バッファは、初期化時に応用によって
パーセルキャッシュサブシステム内へ渡される。後刻、
パーセルキャッシュ内の空間の量を増加させるために、
パーセルキャッシュのための付加的なバッファをパーセ
ルキャッシュサブシステムへ渡すことができる。これ
は、パーセルをこのバッファから他のバッファ内へ再配
置した後に限って、またはパーセルをこのバッファから
破棄した後に限って、可能でないかも知れないし(もし
バッファ内にロックされたパーセルが存在すれば)、可
能であるかも知れない。従って、付加的なバッファを応
用へ復帰させるための要求に関して、(本実施例では)
ロックされたパーセルがアンロックになる(他のタスク
またはプロセスによって)まで要求タスクまたはプロセ
スを中断するオプションを含む幾つかのオプションを設
けることができる。更に、付加的なバッファをパーセル
キャッシュサブシステムへ渡すことに関して、(本実施
例では)付加的なバッファをパーセルキャッシュサブシ
ステム内へ渡すタスクまたはプロセスだけによって要求
されたパーセルのための付加的なバッファを反転させる
(これらのパーセルは、他のタスクまたはプロセスと共
用されるが)オプション(このオプションは、後刻バッ
ファを同一タスクまたはプロセスに復帰させることがで
きる見込みを増加させる)を含む幾つかのオプションを
設けることができる。
【0104】サブセクタパーセル。 パーセルのサイズ
は、媒体の最小アドレス可能単位(「セクタ」として知
られている)を細分した「サブセクタ」単位の倍数であ
ることができる。これは、パーセルデータ内容がその記
憶空間を正確に充填していないことに起因する浪費を減
少させることによって、媒体の記憶空間を保存するため
に行うことができる。例えばCD−ROM媒体(セクタ
単位は2Kbである)用の実施例では、パーセルのサイ
ズは 256バイトの倍数に制約されるので、パーセル内の
浪費データは 256バイトより少ない量になる(代わり
に、もしパーセルのサイズが2Kbの倍数に制約されて
いれば、2Kより少ない量になる)。
【0105】「サブセクタ」パーセルの場合には、パー
セルをパーセルキャッシュ内にロードし、格納できる幾
つかの可能方法が存在する。本実施例では、パーセルを
構成している全てのセクタは、1つのI/O要求動作で
直接キャッシュ内に読み込まれ、キャッシュ内に完全に
格納されるが、パーセルの一部ではない最初と最後のセ
クタの部分が、キャッシュ内の浪費空間を占める。この
実施例は、1つだけのI/O要求を使用し、臨時バッフ
ァからデータをコピーする必要はないが、あるキャッシ
ュ空間を浪費する(平均で、約1セクタ/パーセル)。
この実施例ではページサイズは1セクタであり、パーセ
ルヘッダー構造はその最初のセクタ内のパーセルのオフ
セットを指示する特別フィールドを含んでいる。第2の
実施例では、1つのI/O要求でパーセルが多重セクタ
臨時バッファ内へ読み込まれ、次いでそのページだけが
キャッシュ内にコピーされる。この後者の実施例では、
ページサイズはサブセクタ単位である。浪費されるキャ
ッシュ空間は存在しないが臨時バッファのための空間は
必要であり、臨時バッファからキャッシュ内へコピーす
るために特別な処理が必要である。第3の実施例では、
パーセルは3つまでのI/O要求で読み込まれる。最初
と最後の要求は単一のセクタを臨時バッファに読み込む
ためのものであり、中間の要求は直接パーセルキャッシ
ュに読み込むためのものである。この第3の実施例のペ
ージサイズはサブセクタ単位である。浪費されるキャッ
シュ空間は存在せず、臨時バッファ及びコピーイングは
第1及び第3のI/O要求のみに制限されるが、3つの
分離したI/O要求が必要になる。
【0106】以上の詳細な説明は単なる例示に過ぎず、
本発明は特許請求の範囲によってのみ限定されるもので
あることを理解されたい。
【図面の簡単な説明】
【図1】ナビゲーションシステムのブロック図である。
【図2】図1のナビゲーション応用ソフトウェアの部分
を示すブロック図である。
【図3】地理データを空間的に編成するためのパーセル
化方法の応用を説明するために使用される地理領域の地
図を示す図である。
【図4】図3のパーセル化方法に従って図1及び2の地
理データベース内のデータのパーセルの配列を示す図で
ある。
【図5】図1のナビゲーションシステム内のメモリ資源
の使用を示す図である。
【図6】図5のパーセルキャッシュ内のバッファの1つ
を示す図である。
【図7】図6内のバッファの1つの使用を示すブロック
図である。
【図8】図7のヘッダープールの内容及びそれと共に使
用される関連ハッシュテーブルを示す図である。
【図9】図8の各パーセルヘッダー内に格納されている
情報を示す図である。
【図10】図5−7に示すパーセル待ち行列とパーセル
キャッシュとの間のデータの流れを示すブロック図であ
る。
【図11】図10に示すパーセル待ち行列の成分を示す
ブロック図である。
【図12】プリキャッシングを制限するために、図11
のパーセル待ち行列管理者によって遂行されるステップ
を示す流れ図である。
【図13】図2及び11のパーセルキャッシュ管理者に
よって遂行される併合化ステップを示す図である。
【図14】別の併合化ステップを示す図である。
【符号の説明】
10 ナビゲーションシステム 11 ビークル 12 プロセッサ 14 ドライブ 16 不揮発性メモリ記憶装置 18 ナビゲーション応用ソフトウェアプログラム 20 RAM 24 測位システム 25 感知デバイス 26 測位信号 27 ディスプレイ 28 ナビゲーション機能 29 スピーカ 31 ユーザインタフェース 32 記憶媒体 33 ルート計算機能 34 地図表示機能 35 ルート案内機能 36 その他の機能 37 ユーザインタフェースプログラミング 38 オペレーティングシステム 39 アクセス機能 40 地理データベース 55 照会変換機能 56 データ探索機能 57 データ変換機能 59 キャッシュ管理者機能 111 地図 112 地理領域 114 位置 117 格子 119 矩形領域 202 ナビゲーション機能が使用する部分 204 アクセス機能が使用する部分 206 パーセルキャッシュのために使用される部分 207 パーセルキャッシュ 208 再割当て可能部分 220 バッファ 222 ページ 224 ブロック 260 ヘッダープールとして使用するバッファの部分 262 ヘッダープール 264 パーセルヘッダー 266 ハッシュテーブル 268 ポインタ 400 パーセル待ち行列 404 待ち行列管理者機能 408 媒体デバイスソフトウェア層 409 媒体待ち行列 412 ターンスタイル 414 パーセル要求
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成11年2月15日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】発明の名称
【補正方法】変更
【補正内容】
【発明の名称】 ナビゲーションシステムのための改良
されたメモリ管理
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 FI G09B 29/00 G09B 29/10 A 29/10 G06F 15/40 350B 370C (72)発明者 ジョン ジャクラス アメリカ合衆国 イリノイ州 60148 ロ ンバード ノース メイン ストリート 135 (72)発明者 アレックス ナッシュ アメリカ合衆国 イリノイ州 60031 カ ントリー トレイルズ ガルニー 4481 (72)発明者 センティル ケイ ナーテサン アメリカ合衆国 イリノイ州 60188 キ ャロル ストリーム バーク ドライヴ 397 (72)発明者 ディヴィッド エス ランパート アメリカ合衆国 イリノイ州 60035 ハ イランド パーク ブラックストーン プ レイス 650

Claims (29)

    【特許請求の範囲】
  1. 【請求項1】 地理データを使用するナビゲーションシ
    ステムのためのメモリを管理するシステムであって、 上記メモリの一部分を占め、上記地理データの複数の部
    分を保持するために使用されるキャッシュと、 上記キャッシュ内に含まれている地理データの各部分を
    識別し、そのように識別された上記各部分と、上記部分
    が位置している上記キャッシュ内の位置とを関連付ける
    少なくとも1つのデータ構造と、を備えていることを特
    徴とするメモリ管理システム。
  2. 【請求項2】 上記少なくとも1つのデータ構造は、 上記地理データの上記部分の関連する1つが格納されて
    いる上記キャッシュ内の位置を各々が識別する複数の第
    1のデータ構造と、 上記キャッシュ内に含まれている上記地理データの上記
    各部分の識別を含む第2のデータ構造と、を備え、 上記各識別は、上記複数の第1のデータ構造の1つに関
    連付けられている請求項1に記載の発明。
  3. 【請求項3】 上記地理データは複数のデータレコード
    からなり、上記地理データの上記各部分は上記複数のデ
    ータレコードの一部分からなる請求項1に記載の発明。
  4. 【請求項4】 上記地理データは複数のデータレコード
    からなり、上記地理データの上記各部分は上記複数のデ
    ータレコードの空間的に編成された部分からなり、上記
    各部分内のデータレコードは、一緒になってある地理領
    域全体を包含する複数の矩形領域の分離した1つ内に含
    まれる地理特色を表している請求項1に記載の発明。
  5. 【請求項5】 上記キャッシュによって占められる上記
    メモリの部分は、上記ナビゲーションシステムの初期化
    時に割当てられる請求項1に記載の発明。
  6. 【請求項6】 上記キャッシュによって占められる上記
    メモリの部分は、ランタイム中に少なくとも1つのバッ
    ファの追加によって増補することができる請求項1に記
    載の発明。
  7. 【請求項7】 上記キャッシュは、上記メモリ内の隣接
    アドレス範囲を形成する少なくとも1つのバッファを備
    えている請求項1に記載の発明。
  8. 【請求項8】 上記メモリは、全て同一のサイズを有し
    ている複数のページで形成されている請求項1に記載の
    発明。
  9. 【請求項9】 上記ページは、2Kである請求項8に記
    載の発明。
  10. 【請求項10】 上記地理データベースは、物理的媒体
    上に格納されている請求項1に記載の発明。
  11. 【請求項11】 上記物理的媒体は、CD−ROMディ
    スクである請求項10に記載の発明。
  12. 【請求項12】 上記ナビゲーションシステムは、多重
    パーセルキャッシュを備えている請求項1に記載の発
    明。
  13. 【請求項13】 上記地理データベースの上記部分は、
    一般に、nを1より大きい整数値として2n キロバイト
    のサイズに形成されている請求項1に記載の発明。
  14. 【請求項14】 上記メモリは、mを1より大きい整数
    値として全てが2mキロバイトのサイズを有している複
    数のページで形成されている請求項13に記載の発明。
  15. 【請求項15】 上記ページサイズは、2Kである請求
    項14に記載の発明。
  16. 【請求項16】 上記少なくとも1つのデータ構造が、
    上記キャッシュによって占められる上記メモリの部分以
    外の上記メモリの一部分を占めている請求項1に記載の
    発明。
  17. 【請求項17】 上記キャッシュは複数のバッファから
    なり、上記複数の各バッファは上記メモリの隣接アドレ
    ス範囲を構成し、且つ上記地理データの上記部分の少な
    くとも1つを保持するために使用され、 上記少なくとも1つのデータ構造は、 第1のデータ構造の複数のプールを備え、上記複数の各
    プールは上記複数のバッファの分離した1つに関連して
    おり、上記各プール内の上記各第1のデータ構造はそれ
    ぞれのプールが関連付けられている上記バッファ内に含
    まれる地理データの上記部分の1つを識別するようにな
    っており、 上記キャッシュ内に含まれる地理データの上記各部分の
    識別を含む第2のデータ構造を更に備え、 上記各識別は上記複数の第1のデータ構造の1つに関連
    付けられている請求項1に記載の発明。
  18. 【請求項18】 上記各第1のデータ構造は、上記地理
    データのそれぞれの部分の格納が開始される上記キャッ
    シュ内の位置を識別する情報を含んでいる請求項2に記
    載の発明。
  19. 【請求項19】 上記各第1のデータ構造は、上記地理
    データのそれぞれの部分を格納するために使用される上
    記キャッシュ内のサイズを識別する請求項2に記載の発
    明。
  20. 【請求項20】 上記地理データの上記各部分は、上記
    ナビゲーションシステムによる1回の読み出し動作で一
    時にアクセスすることができる上記地理データの最小量
    を表している請求項1に記載の発明。
  21. 【請求項21】 地理データベースを使用し、メモリを
    有するナビゲーションシステムのためのキャッシュ管理
    システムであって、 地理データのパーセルのためのキャッシュを備え、上記
    各パーセルは上記地理データベースを形成している複数
    のデータレコードの一部分を構成し、上記キャッシュは
    上記メモリの少なくとも1つの隣接バッファで形成さ
    れ、上記少なくとも1つのバッファは上記パーセルのサ
    イズよりも実質的に大きく、それにより複数のパーセル
    が上記バッファを占めることが可能であり、 上記メモリの隣接バッファの外側に位置し、上記バッフ
    ァを占める各パーセル毎のヘッダー情報を含んでいるヘ
    ッダープールと、 上記メモリの隣接バッファの外側に位置し、上記ヘッダ
    ープール内の上記ヘッダー情報を各々が参照するパーセ
    ル識別子の探索可能な索引を含んでいるハッシュテーブ
    ルと、 を更に備え、 それによって、上記キャッシュ内に含まれるパーセルを
    探知することができるようになっている、ことを特徴と
    するキャッシュ管理システム。
  22. 【請求項22】 メモリを含むナビゲーションシステム
    を動作させる方法であって、上記ナビゲーションシステ
    ムは、ナビゲーション機能を提供するためにナビゲーシ
    ョン応用プログラムを実行し、且つある地理領域内の地
    理特色を表すデータレコードを有する地理データベース
    を使用し、上記地理データベースはある媒体上の複数の
    パーセルに編成されており、上記各パーセルは複数のデ
    ータレコードを含み、上記方法は、 パーセルキャッシュとして使用するために上記メモリの
    隣接部分を準備するステップと、 上記ナビゲーション機能を提供するために上記ナビゲー
    ション応用プログラムの実行中に、上記媒体から読み出
    されたデータのパーセルを上記パーセルキャッシュ内に
    格納するステップと、 上記パーセルキャッシュ内に格納されている上記各パー
    セルに関係するデータを、上記パーセルとは分離して上
    記メモリの一部分内に維持されているヘッダー構造内に
    格納するステップと、を備えていることを特徴とする方
    法。
  23. 【請求項23】 上記各パーセルを識別する索引を格納
    するステップを更に備え、上記索引は上記パーセルから
    分離して維持されているそれぞれのヘッダー構造を参照
    する請求項22に記載の方法。
  24. 【請求項24】 上記索引は、ハッシュテーブルである
    請求項23に記載の方法。
  25. 【請求項25】 メモリを含むナビゲーションシステム
    を動作させる方法であって、上記ナビゲーションシステ
    ムは、ナビゲーション機能を提供するためにナビゲーシ
    ョン応用プログラムを実行し、且つある地理領域内の地
    理特色を表すデータレコードを有する地理データベース
    を使用し、上記地理データベースは複数のデータレコー
    ドを各々が含む複数のパーセルに編成され、上記方法
    は、 上記ナビゲーション機能を提供するために必要なデータ
    を含んでいるパーセルを要求するステップと、 上記要求されたパーセルをパーセル識別の待ち行列に編
    成するステップと、を備え、 同一のパーセルに対する多重要求は、上記待ち行列内で
    単一のパーセル識別にリンクされる、ことを特徴とする
    方法。
  26. 【請求項26】 上記地理データベースから上記パーセ
    ルを読み出すために、上記パーセル識別子の待ち行列を
    媒体デバイス層へ転送するステップを更に備えている請
    求項25に記載の方法。
  27. 【請求項27】 もし、ナビゲーション機能を遂行する
    ために未だに必要ではないデータを表すパーセルを、上
    記地理データから読み出された全てのパーセルを格納す
    るために使用される上記メモリ内のパーセルキャッシュ
    へ追加した時に、上記ナビゲーション機能を遂行するた
    めに未だに必要ではないデータを表すパーセルのために
    使用できる上記パーセルキャッシュの部分に課せられた
    限度を超えれば、上記ナビゲーション機能を遂行するた
    めに未だに必要ではないデータを表すパーセルに対する
    要求は、上記待ち行列内の上記単一のパーセル識別の1
    つにリンクされない請求項25に記載の方法。
  28. 【請求項28】 上記メモリ内にハッシュテーブルを格
    納するステップを更に備え、上記ハッシュテーブルは上
    記パーセルキャッシュ内の各パーセルの識別データを指
    し示している請求項25に記載の方法。
  29. 【請求項29】 メモリを含むナビゲーションシステム
    を動作させる方法であって、上記ナビゲーションシステ
    ムは、ナビゲーション機能を提供するためにナビゲーシ
    ョン応用プログラムを実行し、且つある地理領域内の地
    理特色を表すデータレコードを有する地理データベース
    を使用し、上記地理データベースは媒体上の複数のパー
    セルに編成され、上記各パーセルは複数のデータレコー
    ドを含み、上記メモリの隣接部分は上記媒体からブロッ
    クで読み出されたパーセルを格納するためのパーセルキ
    ャッシュとして使用され、上記パーセルキャッシュ内の
    上記各パーセルに関係するデータは上記パーセルキャッ
    シュとして使用される上記隣接部分から分離した上記メ
    モリの一部分内に維持されているヘッダー構造内に格納
    され、上記方法は、 上記パーセルキャッシュが既に複数のパーセルを含んで
    いる時には、1つのパーセルを格納するめに上記パーセ
    ルキャッシュを併合させるステップを備え、 上記併合ステップは、 上記ヘッダー構造によって指示されたパーセルを含むど
    のブロックもロックするようにスキップするステップ
    と、 もし使用中のブロックが上記メモリの上記隣接部分の近
    接するフリーブロックを完全に充填することができれ
    ば、またはもし単一の使用中のブロックが上記メモリの
    上記隣接部分の2つのフリーブロックの間にあれば、上
    記ヘッダー構造によって使用中であることが指示された
    ブロックを、上記ヘッダー構造内にフリーであることが
    指示された近接するブロックへ移動させるステップと、
    を備えていることを特徴とする方法。
JP37797598A 1998-03-27 1998-12-16 ナビゲーションシステムのための改良されたメモリ管理 Expired - Fee Related JP4489860B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/049747 1998-03-27
US09/049,747 US6073076A (en) 1998-03-27 1998-03-27 Memory management for navigation system

Publications (2)

Publication Number Publication Date
JPH11327979A true JPH11327979A (ja) 1999-11-30
JP4489860B2 JP4489860B2 (ja) 2010-06-23

Family

ID=21961486

Family Applications (1)

Application Number Title Priority Date Filing Date
JP37797598A Expired - Fee Related JP4489860B2 (ja) 1998-03-27 1998-12-16 ナビゲーションシステムのための改良されたメモリ管理

Country Status (4)

Country Link
US (1) US6073076A (ja)
EP (1) EP0945706B1 (ja)
JP (1) JP4489860B2 (ja)
DE (1) DE69941994D1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002091989A (ja) * 2000-05-23 2002-03-29 Navigation Technol Corp 空間的に組織された地理データをブロックでアクセスするシステム及びその方法
JP2002116690A (ja) * 2000-07-28 2002-04-19 Navigation Technol Corp 地図データを編集するための改良された方法
JP2006309581A (ja) * 2005-04-28 2006-11-09 Aisin Aw Co Ltd ナビゲーションシステム、キャッシュメモリ及びキャッシュ管理方法
JP2009245152A (ja) * 2008-03-31 2009-10-22 Aisin Aw Co Ltd 地図更新システム及び地図更新プログラム
CN101980325A (zh) * 2010-09-20 2011-02-23 北京腾瑞万里科技有限公司 地图图幅的读取方法及装置

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9723654D0 (en) * 1997-11-10 1998-01-07 Philips Electronics Nv Distributed database access via virtual environment browser
JP3514626B2 (ja) * 1998-04-14 2004-03-31 インクリメント・ピー株式会社 ルート情報提供システム及びそれに用いるwwwサーバ、並びに、ルート情報提供方法及びそれに用いるwwwサーバ
US6393149B2 (en) * 1998-09-17 2002-05-21 Navigation Technologies Corp. Method and system for compressing data and a geographic database formed therewith and methods for use thereof in a navigation application program
US7215641B1 (en) * 1999-01-27 2007-05-08 Cisco Technology, Inc. Per-flow dynamic buffer management
ATE403847T1 (de) * 1999-03-23 2008-08-15 Sony Deutschland Gmbh System und verfahren zum automatischen verwalten von geolokalisationsinformation
JP4318004B2 (ja) 1999-05-19 2009-08-19 ソニー株式会社 情報授受システム、情報授受方法、情報処理装置、情報処理方法及び記録媒体
US6460046B1 (en) * 1999-06-01 2002-10-01 Navigation Technologies Corp. Method and system for forming, storing and using sets of data values
EP1750091B1 (en) * 1999-06-22 2008-05-21 Mitsubishi Denki Kabushiki Kaisha Server in a navigation system
JP4642953B2 (ja) * 1999-09-09 2011-03-02 クラリオン株式会社 音声検索装置、および、音声認識ナビゲーション装置
JP3494143B2 (ja) * 1999-11-18 2004-02-03 トヨタ自動車株式会社 経路案内情報提供システムおよび経路案内情報提供方法
DE19963766A1 (de) 1999-12-30 2001-07-05 Bosch Gmbh Robert Verfahren zum Betrieb eines Navigationssystems
US6587787B1 (en) * 2000-03-15 2003-07-01 Alpine Electronics, Inc. Vehicle navigation system apparatus and method providing enhanced information regarding geographic entities
JP3887518B2 (ja) * 2000-03-31 2007-02-28 パイオニア株式会社 ナビゲーションシステム
US6703947B1 (en) 2000-09-22 2004-03-09 Tierravision, Inc. Method for organizing and compressing spatial data
US7130803B1 (en) * 2000-10-13 2006-10-31 Couch John P Unique virtual dynamically-capable addressing system and method of mail and parcel delivery and forwarding
US6397143B1 (en) * 2000-10-26 2002-05-28 George Peschke Layout based method for map navigation
WO2002052227A1 (es) * 2000-12-22 2002-07-04 Geofactory Technologies, S.A. Sistema de visualizacion de mapas digitales en internet
US6611751B2 (en) 2001-03-23 2003-08-26 981455 Alberta Ltd. Method and apparatus for providing location based data services
US6691128B2 (en) * 2001-04-19 2004-02-10 Navigation Technologies Corp. Navigation system with distributed computing architecture
JP2003004455A (ja) * 2001-06-15 2003-01-08 Mitsubishi Electric Corp 車載用ナビゲーション装置
KR100424462B1 (ko) * 2001-11-21 2004-03-26 삼성전자주식회사 휴대용 단말기의 방향 및 위치 정보 표시장치 및 그 제어방법
US6574554B1 (en) * 2001-12-11 2003-06-03 Garmin Ltd. System and method for calculating a navigation route based on non-contiguous cartographic map databases
US6704645B1 (en) * 2001-12-11 2004-03-09 Garmin Ltd. System and method for estimating impedance time through a road network
US7283905B1 (en) 2001-12-11 2007-10-16 Garmin Ltd. System and method for estimating impedance time through a road network
US6581003B1 (en) 2001-12-20 2003-06-17 Garmin Ltd. Systems and methods for a navigational device with forced layer switching based on memory constraints
US6545637B1 (en) 2001-12-20 2003-04-08 Garmin, Ltd. Systems and methods for a navigational device with improved route calculation capabilities
US7184886B1 (en) 2001-12-21 2007-02-27 Garmin Ltd. Navigation system, method and device with detour algorithm
US7277794B1 (en) 2001-12-21 2007-10-02 Garmin Ltd. Guidance with feature accounting for insignificant roads
US6999873B1 (en) 2001-12-21 2006-02-14 Garmin Ltd. Navigation system, method and device with detour algorithm
US6975940B1 (en) 2001-12-21 2005-12-13 Garmin Ltd. Systems, functional data, and methods for generating a route
US6892135B1 (en) 2001-12-21 2005-05-10 Garmin Ltd. Navigation system, method and device with automatic next turn page
US6847890B1 (en) 2001-12-21 2005-01-25 Garmin Ltd. Guidance with feature accounting for insignificant roads
US7243134B2 (en) 2002-06-25 2007-07-10 Motorola, Inc. Server-based navigation system having dynamic transmittal of route information
US7082443B1 (en) 2002-07-23 2006-07-25 Navteq North America, Llc Method and system for updating geographic databases
US9342459B2 (en) * 2002-08-06 2016-05-17 Qualcomm Incorporated Cache management in a mobile device
AU2003253436A1 (en) 2002-08-29 2004-03-19 Matsushita Electric Industrial Co., Ltd. Content processing apparatus and content display apparatus based on location information
KR100982058B1 (ko) 2003-10-20 2010-09-13 엘지전자 주식회사 이동체의 지도 데이터 관리 방법
US20070168121A1 (en) * 2004-04-13 2007-07-19 Keisuke Adachi Map depiction device, navigation apparatus, file renewing method, file renewing program, and information recording medium for file renewing program
US20060058953A1 (en) 2004-09-07 2006-03-16 Cooper Clive W System and method of wireless downloads of map and geographic based data to portable computing devices
US7752600B2 (en) * 2004-09-30 2010-07-06 Citrix Systems, Inc. Method and apparatus for providing file-type associations to multiple applications
US7853947B2 (en) * 2004-09-30 2010-12-14 Citrix Systems, Inc. System for virtualizing access to named system objects using rule action associated with request
US8095940B2 (en) 2005-09-19 2012-01-10 Citrix Systems, Inc. Method and system for locating and accessing resources
US7680758B2 (en) 2004-09-30 2010-03-16 Citrix Systems, Inc. Method and apparatus for isolating execution of software applications
US8171479B2 (en) * 2004-09-30 2012-05-01 Citrix Systems, Inc. Method and apparatus for providing an aggregate view of enumerated system resources from various isolation layers
US8117559B2 (en) * 2004-09-30 2012-02-14 Citrix Systems, Inc. Method and apparatus for virtualizing window information
US20060180314A1 (en) * 2005-02-17 2006-08-17 Control Flow Inc. Co-linear tensioner and methods of installing and removing same
KR100657962B1 (ko) * 2005-06-21 2006-12-14 삼성전자주식회사 3차원 그래픽 디스플레이 장치 및 방법
US7706971B2 (en) * 2005-07-21 2010-04-27 The Boeing Company System and method for data mapping and map discrepancy reporting
US7783612B2 (en) * 2005-09-21 2010-08-24 The Boeing Company Creation of optimized terrain databases
US8131825B2 (en) 2005-10-07 2012-03-06 Citrix Systems, Inc. Method and a system for responding locally to requests for file metadata associated with files stored remotely
US7779034B2 (en) * 2005-10-07 2010-08-17 Citrix Systems, Inc. Method and system for accessing a remote file in a directory structure associated with an application program executing locally
AU2006302674A1 (en) * 2005-10-07 2007-04-19 Citrix Systems, Inc. Methods for selecting between a predetermined number of execution methods for an application program
US7925320B2 (en) 2006-03-06 2011-04-12 Garmin Switzerland Gmbh Electronic device mount
GB0624191D0 (en) * 2006-12-04 2007-01-10 Nxp Bv Road toll system
US8171483B2 (en) 2007-10-20 2012-05-01 Citrix Systems, Inc. Method and system for communicating between isolation environments
DE102007062991B3 (de) * 2007-12-21 2009-05-07 Navigon Ag Verfahren zur Erzeugung einer elektronisch speicherbaren, digitalen Landkarte und Navigationsgerät mit digitaler Landkarte
US7792934B2 (en) * 2008-01-02 2010-09-07 Citrix Systems International Gmbh Loading of server-stored user profile data
US20100222996A1 (en) * 2009-02-27 2010-09-02 Navteq North America, Llc Dual Representation of an Address in a Database
US8090797B2 (en) 2009-05-02 2012-01-03 Citrix Systems, Inc. Methods and systems for launching applications into existing isolation environments
DE102010063336B4 (de) * 2010-12-17 2023-08-24 Bayerische Motoren Werke Aktiengesellschaft Verfahren zur Erzeugung von standarisierten Navigationsdaten
US8594923B2 (en) * 2011-06-14 2013-11-26 Crown Equipment Limited Method and apparatus for sharing map data associated with automated industrial vehicles
US8683008B1 (en) 2011-08-04 2014-03-25 Google Inc. Management of pre-fetched mapping data incorporating user-specified locations
US8280414B1 (en) 2011-09-26 2012-10-02 Google Inc. Map tile data pre-fetching based on mobile device generated event analysis
US8868332B2 (en) * 2011-10-26 2014-10-21 Right There Ware LLC Method and system for navigation using bounded geograhic regions
US9275374B1 (en) 2011-11-15 2016-03-01 Google Inc. Method and apparatus for pre-fetching place page data based upon analysis of user activities
US8886715B1 (en) * 2011-11-16 2014-11-11 Google Inc. Dynamically determining a tile budget when pre-fetching data in a client device
US9063951B1 (en) 2011-11-16 2015-06-23 Google Inc. Pre-fetching map data based on a tile budget
US8711181B1 (en) 2011-11-16 2014-04-29 Google Inc. Pre-fetching map data using variable map tile radius
US9305107B2 (en) 2011-12-08 2016-04-05 Google Inc. Method and apparatus for pre-fetching place page data for subsequent display on a mobile computing device
US9197713B2 (en) 2011-12-09 2015-11-24 Google Inc. Method and apparatus for pre-fetching remote resources for subsequent display on a mobile computing device
US8803920B2 (en) 2011-12-12 2014-08-12 Google Inc. Pre-fetching map tile data along a route
US9389088B2 (en) 2011-12-12 2016-07-12 Google Inc. Method of pre-fetching map data for rendering and offline routing
US9804971B2 (en) 2012-01-17 2017-10-31 International Business Machines Corporation Cache management of track removal in a cache for storage
US20140025444A1 (en) * 2012-07-23 2014-01-23 Payurtoll LLC Universal Toll Tag Device and Systems and Methods to Automate Toll Payments
US9436606B2 (en) 2014-01-02 2016-09-06 Qualcomm Incorporated System and method to defragment a memory
US9633474B2 (en) * 2014-05-20 2017-04-25 Here Global B.V. Method and apparatus for generating a composite indexable linear data structure to permit selection of map elements based on linear elements
US10268590B2 (en) 2015-02-23 2019-04-23 Netflix, Inc. Efficient computer-implemented techniques for managing graphics memory
US9686357B1 (en) 2016-08-02 2017-06-20 Palantir Technologies Inc. Mapping content delivery
US9674278B1 (en) * 2016-08-03 2017-06-06 Palantir Technologies Inc. Geographic data management server
CN107918612B (zh) * 2016-10-08 2019-03-05 腾讯科技(深圳)有限公司 键值存储系统数据结构的实现方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03296841A (ja) * 1990-04-16 1991-12-27 Nec Corp キャッシュ制御方式
JPH04283844A (ja) * 1991-03-12 1992-10-08 Oki Electric Ind Co Ltd ディスクキャッシュ装置
JPH0962570A (ja) * 1995-08-29 1997-03-07 Fuji Xerox Co Ltd データベース管理装置及び方法
JPH0981429A (ja) * 1995-09-19 1997-03-28 Mitsubishi Electric Corp キャッシュ管理装置
JPH09179492A (ja) * 1995-12-25 1997-07-11 Toyota Motor Corp 地図表示装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58133696A (ja) * 1982-02-03 1983-08-09 Hitachi Ltd 記憶制御方式
JPS61250671A (ja) * 1985-04-27 1986-11-07 株式会社デンソー 地図表示装置
NL8602654A (nl) * 1986-10-23 1988-05-16 Philips Nv Werkwijze voor het in kavels verdelen en in een massageheugen bitsgewijs opslaan van een gegevensbestand, alsook voor het adresseren van een kavel, en inrichting voor het uitvoeren van de werkwijze.
US4876651A (en) * 1988-05-11 1989-10-24 Honeywell Inc. Digital map system
DE3904344A1 (de) * 1989-02-14 1990-08-16 Bosch Gmbh Robert Verfahren zum lesen von navigationsdaten einer compact-disc
JPH05225059A (ja) * 1992-02-10 1993-09-03 Hokkaido Nippon Denki Software Kk キャッシュメモリ管理方式
US5848373A (en) * 1994-06-24 1998-12-08 Delorme Publishing Company Computer aided map location system
JP3425276B2 (ja) * 1995-08-11 2003-07-14 株式会社日立製作所 情報通知システム
JP3462322B2 (ja) * 1995-11-30 2003-11-05 沖電気工業株式会社 テキスト音声読み上げシステム
US5781195A (en) * 1996-04-16 1998-07-14 Microsoft Corporation Method and system for rendering two-dimensional views of a three-dimensional surface
JP3042415B2 (ja) * 1996-09-04 2000-05-15 住友電気工業株式会社 キャッシュメモリ装置およびキャッシュ制御方法
US5953722A (en) * 1996-10-25 1999-09-14 Navigation Technologies Corporation Method and system for forming and using geographic data
US5968109A (en) * 1996-10-25 1999-10-19 Navigation Technologies Corporation System and method for use and storage of geographic data on physical media
US5966135A (en) * 1996-10-30 1999-10-12 Autodesk, Inc. Vector-based geographic data
US5978730A (en) * 1997-02-20 1999-11-02 Sony Corporation Caching for pathfinding computation
US6016485A (en) * 1998-02-13 2000-01-18 Etak, Inc. System for pathfinding

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03296841A (ja) * 1990-04-16 1991-12-27 Nec Corp キャッシュ制御方式
JPH04283844A (ja) * 1991-03-12 1992-10-08 Oki Electric Ind Co Ltd ディスクキャッシュ装置
JPH0962570A (ja) * 1995-08-29 1997-03-07 Fuji Xerox Co Ltd データベース管理装置及び方法
JPH0981429A (ja) * 1995-09-19 1997-03-28 Mitsubishi Electric Corp キャッシュ管理装置
JPH09179492A (ja) * 1995-12-25 1997-07-11 Toyota Motor Corp 地図表示装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002091989A (ja) * 2000-05-23 2002-03-29 Navigation Technol Corp 空間的に組織された地理データをブロックでアクセスするシステム及びその方法
JP2002116690A (ja) * 2000-07-28 2002-04-19 Navigation Technol Corp 地図データを編集するための改良された方法
JP2006309581A (ja) * 2005-04-28 2006-11-09 Aisin Aw Co Ltd ナビゲーションシステム、キャッシュメモリ及びキャッシュ管理方法
JP2009245152A (ja) * 2008-03-31 2009-10-22 Aisin Aw Co Ltd 地図更新システム及び地図更新プログラム
US8769237B2 (en) 2008-03-31 2014-07-01 Aisin Aw Co., Ltd. Map updating system and map updating program using dynamic cache memory
CN101980325A (zh) * 2010-09-20 2011-02-23 北京腾瑞万里科技有限公司 地图图幅的读取方法及装置

Also Published As

Publication number Publication date
JP4489860B2 (ja) 2010-06-23
EP0945706A3 (en) 2003-07-23
US6073076A (en) 2000-06-06
EP0945706B1 (en) 2010-02-03
DE69941994D1 (de) 2010-03-25
EP0945706A2 (en) 1999-09-29

Similar Documents

Publication Publication Date Title
JP4489860B2 (ja) ナビゲーションシステムのための改良されたメモリ管理
US6370539B1 (en) Interface layer for navigation system
JP5027985B2 (ja) 地理データベースを形成、更新、及び使用する方法及びシステム
US6601073B1 (en) Deductive database architecture for geographic data
US6600841B1 (en) Method and system for compressing data and a geographic database formed therewith and methods for use thereof in a navigation application program
US6336111B1 (en) Support for alternative names in a geographic database used with a navigation program and methods for use and formation thereof
JP4498486B2 (ja) 地理データベースにおけるデータ型のインタリービング、及びそれをナビゲーション応用に使用する方法
JP4447585B2 (ja) 物理的媒体で地理上のデータを使用し、記憶するためのシステムと方法
US6092076A (en) Method and system for map display in a navigation application
CN103092909B (zh) 一种用于结构化导航数据库的技术
US6184823B1 (en) Geographic database architecture for representation of named intersections and complex intersections and methods for formation thereof and use in a navigation application program
US7197500B1 (en) System and method for use and storage of geographic data on physical media
US5953722A (en) Method and system for forming and using geographic data
US6507850B1 (en) Segment aggregation and interleaving of data types in a geographic database and methods for use thereof in a navigation application
US6473770B1 (en) Segment aggregation and interleaving of data types in a geographic database and methods for use thereof in a navigation application
US20070253642A1 (en) Method and apparatus for indexing, storing and retrieving raster (GRID) data in a combined raster vector system
US20060217878A1 (en) Efficient geographic name searching system and method
Yang et al. Loose architecture of multi-level massive geospatial data based on virtual quadtree
KR100404907B1 (ko) 개방형 지리정보시스템을 위한 메모리 관리 방법 및 장치
CN111666357A (zh) 一种地图切片数据的组织方法和装置
Shaffer et al. CAR-TR-308 DAAL02–87–K–0019

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050629

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080811

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081111

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081211

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090119

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090420

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090423

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090721

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090903

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100215

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100223

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100401

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees