System data storage mechanism providing coherency and segmented data loading
AssigneeWestern Digital Technologies, Inc.
InventorsJerry Lo, Dominic S. Suryabudi, Lan D. Phan
Life of this patent
Estimating the term…
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.
Claims6
A method of storing and recovering a segmented system table having y table pages in a data storage system, the method comprising:
- in response to updating a first table page of the segmented system table in a volatile memory:
- flushing the updated first table page from the volatile memory to a non-volatile memory;
- and
- flushing, from the volatile memory to the non-volatile memory, one or more additional table pages of the segmented system table in the volatile memory based at least on a predetermined ratio of a number of flushed table pages to a number of segmented system table update triggers to keep table pages in the non-volatile memory updated, wherein the one or more additional table pages are different from the first table page;
- loading a set of z table pages divided into a plurality of segments from the non-volatile memory to the volatile memory according to individual segments;
- determining whether a host data access request accessing an address within a yet-to-be loaded segment of the plurality of segments is pending;
- processing a segment containing the address of the host data access request when it is determined that the host data access request is pending and is within the yet-to-be loaded segment of the plurality of segments;
- locating and copying into the volatile memory, by individual segment, a most up-to date version of each table page contained in the individual segment;
- and
- recovering the segmented system table using a number of load operations less than or equal to twice a size of the segmented system table measured in segments.
A non-volatile storage system comprising:
- a non-volatile memory configured to store data;
- a volatile memory;
- and
- a controller configured to store and recover a segmented system table having y table pages by:
- in response to updating a first table page of the segmented system table in the volatile memory:
- flushing the updated first table page from the volatile memory to the non-volatile memory;
- and
- flushing, from the volatile memory to the non-volatile memory, one or more additional table pages of the segmented system table in the volatile memory based at least on a predetermined ratio of a number of flushed table pages to a number of segmented system table update triggers to keep table pages in the non-volatile memory updated, wherein the one or more additional table pages are different from the first table page;
- loading a set of z table pages divided into a plurality of segments from a non-volatile memory to a volatile memory according to individual segments;
- determining whether a host data access request accessing an address within a yet-to-be loaded segment of the plurality of segments is pending;
- processing a segment containing the address of the host data access request when it is determined that a host data access request is pending and is within the yet-to-be loaded segment of the plurality of segments;
- locating and copying into the volatile memory, by individual segment, a most up-to date version of each table page contained in the individual segment;
- and
- recovering the segmented system table using a number of operations less than or equal to twice a size of the segmented system table measured in segments.
Dependencies are inferred from the claim text.