System data management using garbage collection and logs
First Claim
1. In a data storage system comprising a non-volatile memory array and a controller, a method of managing system data, the method comprising:
- executing a plurality of storage access commands received from a host system, the plurality of storage access commands being associated with host data, wherein the execution of the plurality of storage access commands causes first system data stored in the non-volatile memory array to become outdated, the first system data being different from the host data;
selectively generating log pages to record changes to the first system data and not the host data, the changes being caused by the execution of the plurality of storage access commands;
storing the log pages in the non-volatile memory array;
determining whether the execution of the plurality of storage access commands causes second system data stored in the non-volatile memory array to become outdated, the first system data and the second system data being stored in the same non-volatile memory pages;
in response to determining that the execution of the plurality of storage access commands causes the second system data to become outdated, updating the first and second system data based on the log pages at a first update frequency so that at least some of the first and second system data becomes current; and
in response to determining that the execution of the plurality of storage access commands does not cause the second system data to become outdated, updating the first and second system data based on the log pages at a second update frequency so that at least some of the first and second system data becomes current, wherein the first update frequency is different than the second update frequency,wherein the method reduces write amplification of the non-volatile memory array associated with managing the first and second system data, andwherein the method is performed under the control of the controller.
10 Assignments
0 Petitions
Accused Products
Abstract
A data storage system is disclosed that utilizes garbage collection and logs for managing system data. In one embodiment, system data stored in a non-volatile memory is updated based on the character of changes to data stored in a data storage system (e.g., changes caused by host system activity). For example, when changes to stored data are scattered (e.g., changes are made to random memory locations), it may be beneficial to generate and accumulate more logs reflecting changes to the system data. As another example, when changes to stored data are substantially consolidated (e.g., changes are made to consecutive memory locations), it may be beneficial to update system data stored in the non-volatile memory more frequently. Reduction in write amplification, increase in efficiency, and reduction in start-up and initialization time can be attained. Reconstruction time of system data can also be reduced.
-
Citations
28 Claims
-
1. In a data storage system comprising a non-volatile memory array and a controller, a method of managing system data, the method comprising:
-
executing a plurality of storage access commands received from a host system, the plurality of storage access commands being associated with host data, wherein the execution of the plurality of storage access commands causes first system data stored in the non-volatile memory array to become outdated, the first system data being different from the host data; selectively generating log pages to record changes to the first system data and not the host data, the changes being caused by the execution of the plurality of storage access commands; storing the log pages in the non-volatile memory array; determining whether the execution of the plurality of storage access commands causes second system data stored in the non-volatile memory array to become outdated, the first system data and the second system data being stored in the same non-volatile memory pages; in response to determining that the execution of the plurality of storage access commands causes the second system data to become outdated, updating the first and second system data based on the log pages at a first update frequency so that at least some of the first and second system data becomes current; and in response to determining that the execution of the plurality of storage access commands does not cause the second system data to become outdated, updating the first and second system data based on the log pages at a second update frequency so that at least some of the first and second system data becomes current, wherein the first update frequency is different than the second update frequency, wherein the method reduces write amplification of the non-volatile memory array associated with managing the first and second system data, and wherein the method is performed under the control of the controller. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A data storage system comprising:
-
a non-volatile memory array configured to store host data and system data; and a controller configured to; execute a plurality of storage access commands received from a host system, the plurality of storage access commands being associated with host data, wherein the execution of the plurality of storage access commands causes first system data stored in the non-volatile memory array to become outdated, the first system data being different from the host data; selectively generate log pages to record changes to the first system data and not the host data, the changes being caused by the execution of the plurality of storage access commands; store the log pages in the non-volatile memory array; determine whether the execution of the plurality of storage access commands causes second system data stored in the non-volatile memory array to become outdated, the first system data and the second system data being stored in the same non-volatile memory pages; in response to determining that the execution of the plurality of storage access commands causes the second system data to become outdated, update the first and second system data based on the log pages at a first update frequency so that at least some of the first and second system data becomes current; and in response to determining that the execution of the plurality of storage access commands does not cause the second system data to become outdated, update the first and second system data based on the log pages at a second update frequency so that at least some of the first and second system data becomes current, wherein the first update frequency is different than the second update frequency. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. In a data storage system comprising a non-volatile memory array and a controller, a method of managing system data, the method comprising:
-
executing a plurality of storage access commands received from a host system, the plurality of storage access commands being associated with host data, wherein the execution of the plurality of storage access commands causes first system data stored in the non-volatile memory array to become outdated, the first system data being different from the host data; generating log pages to record changes to the first system data and not the host data, the changes being caused by the execution of the plurality of storage access commands; storing the log pages in the non-volatile memory array; in response to determining that a number of generated log pages exceeds a first threshold; determining whether the execution of the plurality of storage access commands causes second system data stored in the non-volatile memory array to become outdated, the first system data and the second system data being stored in the same non-volatile memory pages; updating the first system data and the second system data stored in the non-volatile memory array based on a set of generated log pages at an update frequency, the update frequency being based on whether the execution of the plurality of storage access commands causes the second system data stored in the non-volatile memory array to become outdated; and performing garbage collection of the set of generated log pages after changes reflected in the log pages of the set are applied to the at least one of the first system data or the second system data, wherein the method reduces write amplification of the non-volatile memory array associated with managing the first system data and the second system data, and wherein the method is performed under the control of the controller. - View Dependent Claims (23, 24, 25)
-
-
26. In a data storage system comprising a non-volatile memory array and a controller, a method of managing system data, the method comprising:
-
executing a plurality of storage access commands received from a host system, the plurality of storage access commands being associated with host data, wherein the execution of the plurality of storage access commands comprising the host data causes first system data stored in the non-volatile memory array to become outdated, the first system data being different from the host data; generating a log page to record changes to the first system data and not the host data, the changes being caused by the execution of the plurality of storage access commands; storing the log page in the non-volatile memory array; determining whether the execution of the plurality of storage access commands causes second system data stored in the non-volatile memory array to become outdated, the first system data and the second system data being stored in the same non-volatile memory pages; updating the first system data and the second system data stored in the non-volatile memory array based at least on the log page at an update frequency, the update frequency being based on whether the execution of the plurality of storage access commands causes the second system data stored in the non-volatile memory array to become outdated; and performing garbage collection of the log page after the changes reflected in the log page are applied to the at least one of the first system data or the second system data, wherein the method reduces write amplification of the non-volatile memory array associated with managing the first system data and second system data, and wherein the method is performed under the control of the controller. - View Dependent Claims (27, 28)
-
Specification