Memory management for navigation system
First Claim
1. A system for managing memory for a navigation system that uses geographic data, the system comprisinga cache occupying a portion of said memory and used for holding portions of the geographic data;
- andat least one data structure that identifies each of the portions of the geographic data contained in said cache and associates each of the portions so identified with a position in said cache at which the portion is located.
6 Assignments
0 Petitions
Accused Products
Abstract
A method and system for managing memory resources in a system used in conjunction with a navigation application program that accesses geographic data. The geographic data are comprised of a plurality of data records. The plurality of data records are organized into parcels, each of which contains a portion of the plurality of data records, such that the data records in each portion of the plurality of data records that forms each parcel are accessed together. One or more buffers each that forms a contiguous portion of the memory of the navigation system is provided as a cache to store a plurality of parcels. One or more data structures located outside the contiguous portion of memory identify the parcels of data stored in the cache and the locations in the cache at which the parcels are stored. The one or more data structures located outside the contiguous portion of memory in which the parcels are cached are used to manage the parcel cache to use it efficiently. These one or more data structures located outside the contiguous memory in which the parcels are cached are also used to defragment the parcel cache.
119 Citations
29 Claims
-
1. A system for managing memory for a navigation system that uses geographic data, the system comprising
a cache occupying a portion of said memory and used for holding portions of the geographic data; - and
at least one data structure that identifies each of the portions of the geographic data contained in said cache and associates each of the portions so identified with a position in said cache at which the portion is located. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
- and
-
21. A cache management system for a navigation system that uses a geographic database and that has a memory, said cache management system comprising:
-
a cache for parcels of geographic data, wherein each of said parcels comprises a portion of a plurality of data records that form said geographic database, and wherein said cache is formed of at least one contiguous buffer of said memory, wherein said at least one buffer is substantially larger than the sizes of said parcels so that a plurality of parcels can occupy said buffer; a header pool located outside said contiguous buffer of memory and containing header information for each of the parcels that occupy said buffer; and a hash table located outside said contiguous buffer of memory and containing a searchable index of parcel identifiers, each of which refers to said header information in said header pool, whereby a parcel contained in said cache can be located.
-
-
22. A method for operating a navigation system including a memory, wherein the navigation system executes a navigation application program to provide navigation functions and uses a geographic database having data records that represent geographic features in a geographic region and wherein said geographic database is organized into a plurality of parcels on a medium, each of said parcels including a plurality of the data records, the method comprising the steps of:
-
providing a contiguous portion of said memory for use as a parcel cache; during execution of the navigation application program to provide said navigation functions, storing parcels of data read from said medium into said parcel cache; storing data relating to each of said parcels stored in said parcel cache in a header structure maintained in a portion of the memory separate from said parcels. - View Dependent Claims (23, 24)
-
-
25. A method of operating a navigation system that includes a memory, wherein the navigation system executes a navigation application program to provide navigation functions and uses a geographic database having data records that represent geographic features in a geographic region, wherein said geographic database is organized into a plurality of parcels each of which includes a plurality of the data records, the method comprising the steps of:
-
requesting parcels that contain data required to provide said navigation functions; and organizing identifications of said requested parcels into a queue of parcel identifications, wherein multiple requests for the same parcel are linked to single parcel identification in said queue. - View Dependent Claims (26, 27, 28)
-
-
29. A method for operating a navigation system including a memory, wherein the navigation system executes a navigation application program to provide navigation functions and uses a geographic database having data records that represent geographic features in a geographic region and wherein said geographic database is organized into a plurality of parcels on a medium, each of said parcels including a plurality of the data records, and further wherein a contiguous portion of said memory is used as a parcel cache for storing parcels read from said medium in blocks thereof, and further wherein data relating to each of said parcels in said parcel cache is stored in a header structure maintained in a portion of the memory separate from said contiguous portion used as said parcel cache, the method comprising the step of:
defragmenting said parcel cache in order to store a parcel therein when said parcel cache already contains a plurality of parcels, wherein said defragmenting comprises; skipping any block contains a parcel indicated by the header structure to be locked; and if an in-use block is completely able to fill an adjacent free block of said contiguous portion of said memory, or if a single in-use block is between two free blocks of said contiguous portion of said memory, moving the block indicated by the header structure to be in-use to the adjacent block indicated in the header structure to be free.
Specification