SYSTEM AND METHOD FOR PREDICTING AND IMPROVING BOOT-UP SEQUENCE
First Claim
1. A method for optimizing a boot up sequence of a computer system, comprising:
- in a memory system controller having a non-volatile data store and a data prediction table, the controller in communication with a host device, the method comprising;
during a host idle time or during a data transfer corresponding to a prior host read command;
obtaining a predicted read address from the data prediction table based on a previously determined offset value;
prefetching from the non-volatile data store, data corresponding to the read address obtained from the data prediction table;
saving the prefetched data in temporary memory;
receiving a current read command issued by the host;
if the read address corresponding to the current read command matches the predicted read address, providing to the host the prefetched data saved in temporary memory, and indicating a match;
if a match is not indicated, obtaining current data from the non-volatile data store corresponding to the read address of the current read command, and providing the current data to the host; and
if a match was not indicated, searching the data prediction table for the predicted read address that matches the read address corresponding to the current read command, and if found in the data prediction table, recording the offset value.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for optimizing a boot up sequence includes, during a host idle time or during data transfer: obtaining a predicted read address from the a prediction table, prefetching from the non-volatile data store, and saving the prefetched data in memory. Also included is receiving a current read command issued by the host and if the read address matches the predicted read address, providing to the host the prefetched data saved in temporary memory, and indicating a match. If a match is not indicated, obtaining current data from the non-volatile data store corresponding to the read address of the current read command, and providing the current data to the host. If a match was not indicated, searching the data prediction table for the predicted read address that matches the read address corresponding to the current read command, and if found in the data prediction table, recording the offset value.
-
Citations
18 Claims
-
1. A method for optimizing a boot up sequence of a computer system, comprising:
in a memory system controller having a non-volatile data store and a data prediction table, the controller in communication with a host device, the method comprising; during a host idle time or during a data transfer corresponding to a prior host read command; obtaining a predicted read address from the data prediction table based on a previously determined offset value; prefetching from the non-volatile data store, data corresponding to the read address obtained from the data prediction table; saving the prefetched data in temporary memory; receiving a current read command issued by the host; if the read address corresponding to the current read command matches the predicted read address, providing to the host the prefetched data saved in temporary memory, and indicating a match; if a match is not indicated, obtaining current data from the non-volatile data store corresponding to the read address of the current read command, and providing the current data to the host; and if a match was not indicated, searching the data prediction table for the predicted read address that matches the read address corresponding to the current read command, and if found in the data prediction table, recording the offset value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 17)
-
12. A method for optimizing a boot up sequence of a computer system comprising:
in a memory system controller having a non-volatile data store and a data prediction table, the controller in communication with a host device, the method comprising; initializing the data prediction table by recording a sequence of read commands issued by the host device to the memory system controller, the sequence of read commands corresponding to a second boot up sequence; detecting a valid boot up sequence after initialization of the data prediction table; during a host idle time or during a data transfer corresponding to a prior host read command; obtaining a predicted read address from the data prediction table based on a previously determined offset value; prefetching from the non-volatile data store, data corresponding to the read address obtained from the data prediction table; saving the prefetched data in temporary memory; receiving a current read command issued by the host; if the read address corresponding to the current read command matches the predicted read address, providing the prefetched data saved in temporary memory to the host, and indicating a match; if a match is not indicated, obtaining current data from the non-volatile data store corresponding to the read address of the current read command, and providing the current data to the host; and if a match was not indicated, searching the data prediction table for the predicted read address that matches the read address corresponding to the current read command, and if found in the data prediction table, recording an offset value. - View Dependent Claims (13, 14, 15, 16)
-
18. A memory storage system operative to interface with a host, comprising:
-
a memory system controller; a non-volatile data store operatively coupled to the memory system controller; a data prediction table accessible by the memory system controller; the memory system controller configured to; initialize the data prediction table by recording a sequence of read commands issued by the host device to the memory system controller, the sequence of read commands corresponding to a second boot up sequence; detect a valid boot up sequence after initialization of the data prediction table; during a host idle time or during a data transfer corresponding to a prior host read command; obtain a predicted read address from the data prediction table based on a previously determined offset value; prefetch from the non-volatile data store, data corresponding to the read address obtained from the data prediction table; save the prefetched data in temporary memory; receive a current read command issued by the host; if the read address corresponding to the current read command matches the predicted read address, provide the prefetched data saved in temporary memory to the host, and indicate a match; if a match is not indicated, obtain current data from the non-volatile data store corresponding to the read address of the current read command, and provide the current data to the host; and if a match was not indicated, search the data prediction table for the predicted read address that matches the read address corresponding to the current read command, and if found in the data prediction table, recording an offset value.
-
Specification