System data storage mechanism providing coherency and segmented data loading
First Claim
Patent Images
1. A non-volatile storage system comprising:
- a non-volatile memory configured to store data;
a volatile memory; and
a controller configured to progressively flush a system table stored in y table pages in the volatile memory to the non-volatile memory at least in part by;
receiving a command from a host system that indicates that a first page of the system table is to be updated;
updating content of the first page in response to receiving the command; and
in response to receiving the command, flushing both the updated first page and a set of x additional pages of the system table to the non-volatile memory, wherein content of the set of additional pages is not updated in response to receiving the command;
wherein flushing the set of x additional pages guarantees that the system table can be reconstructed using a number z or fewer read operations, wherein z=y·
((x+1)/x).
8 Assignments
0 Petitions
Accused Products
Abstract
A data storage subsystem is disclosed that implements a process for storing and/or reconstructing system data, such as a system mapping table. In certain embodiments, table pages are systematically copied, or flushed, to non-volatile memory in a progressive manner, according to a fixed ratio of flushed table pages per table update trigger, thereby facilitating write and/or load efficiency. Full or partial reconstruction of a table may be performed within a bounded number of operations based on the size of the table, the ratio implemented, and/or other characteristics.
132 Citations
16 Claims
-
1. A non-volatile storage system comprising:
-
a non-volatile memory configured to store data; a volatile memory; and a controller configured to progressively flush a system table stored in y table pages in the volatile memory to the non-volatile memory at least in part by; receiving a command from a host system that indicates that a first page of the system table is to be updated; updating content of the first page in response to receiving the command; and in response to receiving the command, flushing both the updated first page and a set of x additional pages of the system table to the non-volatile memory, wherein content of the set of additional pages is not updated in response to receiving the command; wherein flushing the set of x additional pages guarantees that the system table can be reconstructed using a number z or fewer read operations, wherein z=y·
((x+1)/x).
-
-
2. In a data storage system, a method of progressively flushing system table information to non-volatile memory, the method comprising:
-
receiving a first command from a host system that indicates that a first page of a system table stored in y pages in a volatile memory of the data storage system is to be updated, wherein y is a number greater than one; in response to receiving the first command; updating the first page in the volatile memory; and flushing both the updated first page and a first set of x additional pages of the system table to the non-volatile memory, wherein the content of the first set of additional pages is not updated in response to receiving the first command; wherein flushing the first set of x additional pages guarantees that the system table can be reconstructed using a number z or fewer read operations, wherein z=y·
((x+1)/x);wherein the method is performed under the control of a controller of the data storage system. - View Dependent Claims (3, 4, 5, 6, 7, 8)
-
-
9. In a data storage system, a method of recovering a system table having y table pages, the method comprising:
-
reading a set of z table pages from a non-volatile memory to a volatile memory, wherein z is a number greater than y, but less than or equal to 2y, wherein the set of z table pages comprises at least one copy of each of the y table pages; and locating within the set of z table pages a most up-to-date version of each of the y table pages of the system table; copying the most up-to-date versions of each of the y table pages to a volatile memory, thereby generating an up-to-date version of the system table in the volatile memory; wherein the set of z table pages comprises z table pages that were most recently flushed to the non-volatile memory; wherein the method allows for recovering the system table using a limited number z or fewer read operations; wherein z is less than or equal to y*((x+1)1/x), wherein x is an integer value; and wherein the method is performed under the control of a controller of the data storage system. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
Specification