Method and apparatus for updating data in nonvolatile memory
First Claim
1. A method comprising:
- identifying a plurality of portions of a set of instructions to be transferred to a nonvolatile memory;
identifying a subset of the plurality of portions that represent a critical set of instructions;
transferring all of the plurality of portions other than the subset to the nonvolatile memory; and
transferring the subset of the plurality of portions to the nonvolatile memory after all other portions have been transferred.
2 Assignments
0 Petitions
Accused Products
Abstract
A computer system includes a Flash or other nonvolatile memory. A program(s) to coordinate data transfers is loaded into a volatile system memory to transfer data from an external device to the Flash memory. The data transferred from the external device to the Flash memory can be transferred to a previously unused portion of the Flash memory, or alternatively can overwrite a previously used portion of the Flash memory. According to one aspect of the invention, the data is transferred from the external device to the volatile system memory and then from the volatile system memory to the Flash memory, allowing additional verification steps to help insure that the data is transferred intact. According to another aspect of the invention, data is copied from the external device to the Flash memory on a portion by portion basis, leaving a set of critical portions to be transferred last.
136 Citations
20 Claims
-
1. A method comprising:
-
identifying a plurality of portions of a set of instructions to be transferred to a nonvolatile memory;
identifying a subset of the plurality of portions that represent a critical set of instructions;
transferring all of the plurality of portions other than the subset to the nonvolatile memory; and
transferring the subset of the plurality of portions to the nonvolatile memory after all other portions have been transferred. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method in a system including volatile system memory and Flash memory, the method comprising:
-
executing, under control of an operating system, a Flash memory update program;
setting a first flag;
rebooting the system a first time;
limiting, after rebooting the system the first time, the operating system to accessing a first portion of the system memory;
detecting, after rebooting the system the first time, the first flag having been set;
loading a temporary operating system into the first portion of the system memory in response to the first flag having been set;
setting a second flag;
rebooting the system a second time;
detecting, after rebooting the system the second time, the second flag having been set;
executing the temporary operating system in response to the second flag having been set;
loading a new operating system image, including a new operating system, into a second portion of the system memory in response to the second flag having been set, the second portion being different than the first portion of the system memory;
verifying the new operating system image in the second portion of the system memory;
erasing the Flash memory and copying the new operating system image from the second portion of the system memory to the erased Flash memory in portions, including erasing and copying a set of most critical portions for last;
verifying the new operating system image in the Flash memory;
clearing the first and second flags; and
rebooting the system a third time. - View Dependent Claims (10, 11, 12, 13)
detecting, based on the third flag having been set, whether the system has been rebooted during the erasing and copying; and
restarting the erasing and copying in the event the system has been rebooted during the erasing and copying.
-
-
12. At least one computer-readable memory containing a computer program that is executable by a processor to perform the method recited in claim 9.
-
13. An automobile computer programmed to perform the method as recited in claim 9.
-
14. A computer-readable storage medium having stored thereon computer-executable instructions that cause one or more processors to:
-
identify a plurality of portions of a set of instructions to be transferred to a nonvolatile memory;
identify a subset of the plurality of portions that represent a critical set of instructions;
transfer all of the plurality of portions other than the subset to the nonvolatile memory; and
transfer the subset of the plurality of portions to the nonvolatile memory after all other portions have been transferred. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification