Software management systems and methods for automotive computing devices
First Claim
1. A method of operating an automotive computing device comprising:
- providing an automotive computing device having a processor, volatile memory, non-volatile memory, and SRAM;
providing an object store for the computing device in the non-volatile memory; and
maintaining one or more pages from the object store in the SRAM.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods and systems for operating automotive computing devices are described. In one embodiment, a small amount of static RAM (SRAM) is incorporated into an automotive computing device. The SRAM is battery-backed to provide a non-volatile memory space in which critical data, e.g. the object store, can be maintained in the event of a power loss. Circuitry is provided to ensure that the SRAM receives back up power from the battery at appropriate times. Software manages the SRAM and the other storage assembly components and makes use of virtual paging or virtual addressing techniques to keep track of where various pages, including object store pages, are stored in the system. The software knows where all of the object store pages are located so that in the event of a power loss, the page locations are known and hence the pages can be used when power is restored. The SRAM is advantageously used to maintain so-called “dirty pages” or pages that have been written to so that these pages are not lost in the event of a power interruption. Additionally, the software can also provide an orderly means by which pages in the SRAM can be written out to flash memory thereby avoiding unnecessary flash write operations which, in turn, increases the lifetime of the flash memory.
159 Citations
81 Claims
-
1. A method of operating an automotive computing device comprising:
-
providing an automotive computing device having a processor, volatile memory, non-volatile memory, and SRAM;
providing an object store for the computing device in the non-volatile memory; and
maintaining one or more pages from the object store in the SRAM. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 27, 28, 29, 30, 31, 32, 33, 34, 36, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51)
-
-
14. In an automotive computing device having non-volatile storage that can contain a system object store and DRAM that can receive object store pages, a method comprising:
-
providing one or more object store pages from the DRAM into an SRAM or separate DRAM buffer, comprising part of the automotive computing device; and
providing one or more pages from the SRAM or DRAM buffer into the non-volatile storage.
-
-
25. A programmable automotive computing device programmed with instructions which, when executed by the computing device, cause the computing device to:
-
move object store pages between and among non-volatile memory, volatile memory, and battery-backed SRAM;
maintain an object store page table in the SRAM that maintains information associated with the location of object store pages; and
update the object store page table responsive to moving object store pages.
-
-
26. In an automotive computing device, a method comprising:
-
maintaining a translation look-aside buffer that contains entries for recently translated virtual page addresses;
maintaining a page table in device memory that contains a map for every valid virtual page address; and
maintaining an object store page table in device SRAM that contains information associated with locations for every object store page.
-
-
35. A programmable automotive computing device programmed with instructions which, when executed by the computing device, cause the computing device to:
-
maintain a translation look-aside buffer that contains entries for recently translated virtual page addresses;
maintain a page table in device memory that contains a map for every valid virtual page address;
maintain an object store page table in device SRAM that contains information associated with locations for every object store page;
update the object store page table in the SRAM responsive to paging an object store page within the device;
flush pages from SRAM to another medium in a predetermined manner to make room for additional pages in the SRAM; and
battery-back the SRAM in an event of a power failure.
-
-
37. A programmable automotive computing device programmed with instructions which, when executed by the computing device, cause the computing device to:
-
maintain a translation look-aside buffer that contains entries for recently translated virtual page addresses;
maintain a page table in device memory that contains a map for every valid virtual page address;
maintain an object store page table in a dedicated DRAM buffer, the object store page table containing information associated with locations for every object store page;
update the object store page table in the DRAM buffer responsive to paging an object store page within the device;
flush pages from the DRAM buffer to another medium in a predetermined manner to make room for additional pages in the DRAM buffer; and
copy an amount of data contained in the DRAM buffer to flash memory in the event of a power failure.
-
-
38. A programmable automotive computing device programmed with instructions which, when executed by the automotive computing device, cause the computing device to:
-
copy an object store into device flash memory; and
create an object store page table in device SRAM that is configured to track the locations of all of the object store pages in the device.
-
-
49. In an automotive computing device, a method comprising:
-
booting the computing device; and
responsive to said booting, processing an object store page table that is maintained in battery-backed SRAM, the object store page table being configured to track locations of all object store pages in the device, said processing comprising changing any entries in the object store page table that indicate an object store page is in device DRAM to an entry that indicates that the object store page is in device flash memory.
-
-
52. An automotive computing device programmed with instructions which, when executed by the device, cause the device to:
-
attempt to access a page that is not currently mapped in a translation look-aside buffer (TLB);
generate a TLB miss error exception;
call an exception handler to provide the handler with an opportunity to handle the exception;
determine, with the exception handler, whether the page comprises an object store page; and
if the page comprises an object store page, copy the page from device flash memory to either device DRAM or device SRAM. - View Dependent Claims (53, 54, 55, 56, 57, 60, 61, 62)
-
-
58. One or more computer-readable media having computer-readable instructions thereon which, when executed by an automotive computing device, cause the computing device to:
-
attempt to access a page that is not currently mapped in a translation look-aside buffer (TLB);
generate a TLB miss error exception;
call an exception handler to provide the handler with an opportunity to handle the exception;
determine, with the exception handler, whether the page comprises an object store page;
if the page comprises an object store page, copy the page from device flash memory to either device DRAM or device SRAM; and
return to another exception handler with an indication that the exception was not processed if the page does not comprise an object store page.
-
-
59. In an automotive computing device, a method comprising:
-
generating a write exception in an attempt to write-access a page in device flash memory or device DRAM;
calling an exception handler to give the exception handler an opportunity to handle the write exception;
determining whether the page is an object store page;
if the page is an object store page, copying the page with the exception handler into device SRAM; and
updating an object store page table that is maintained in the SRAM to indicate that the page is now located in SRAM and that the page is dirty.
-
-
63. An automotive computing system comprising:
-
a central processing unit having a translation look-aside buffer that contains entries for recently translated virtual page addresses;
physical memory operably associated with the central processing unit and containing a page table that contains a map for every valid virtual page address; and
SRAM containing an object store page table that contains information associated with locations for every object store page in the event of a power failure.
-
-
64. In an automotive computing device, a method comprising:
-
maintaining multiple object store pages in device SRAM; and
periodically flushing one or more object store pages to device non-volatile memory to make room for additional object store pages. - View Dependent Claims (65, 66, 67, 68, 69, 70)
-
-
71. In an automotive computing device, a method comprising:
-
providing flash memory arranged in blocks;
reserving at least one block for compaction;
copying one or more pages in one or more other blocks to the reserved block; and
erasing any blocks from which pages were copied to prepare the blocks for subsequent writes. - View Dependent Claims (72)
-
-
73. In an automotive computing device, a method of booting the device comprising:
-
booting the device by paging to RAM only object store pages from non-volatile memory that are necessary in order to boot the device; and
paging in other object store pages, after said booting, as the pages are needed by the device. - View Dependent Claims (74, 75, 76, 77, 79, 80, 81)
-
-
78. In an automotive computing device, a method of booting the device comprising:
-
maintaining a copy of an object store in flash memory that is carried by the automotive computing device;
initiating a boot sequence of the automotive computing device;
during the boot sequence, paging only predetermined object store pages from the flash memory into RAM that is carried by the automotive computing device, said predetermined pages comprising less than all of the pages in the entire object store;
after the boot sequence, determining whether any additional object store pages are needed from the flash memory; and
paging any needed object store pages from the flash memory into the RAM.
-
Specification