Tracking intermix of writes and un-map commands across power cycles
First Claim
1. A method of managing a storage system, the method comprising:
- receiving, at a storage device of the storage system, a plurality of commands from a host to which the storage device is operatively coupled, the plurality of commands from the host including write commands and un-map commands, the storage device including non-volatile memory;
maintaining a log corresponding to the write commands and un-map commands from the host;
maintaining a mapping table in volatile memory, the mapping table used to translate logical addresses in a logical address space available to the host to physical addresses in a physical address space of the storage device, wherein the log is distinct from the mapping table;
saving the mapping table, on a scheduled basis that is independent of the plurality of commands from the host, to the non-volatile memory of the storage device;
saving the log to the non-volatile memory of the storage device; and
upon power up of the storage device, rebuilding the mapping table from the saved mapping table in the non-volatile memory of the storage device and from the saved log in the non-volatile memory of the storage device.
3 Assignments
0 Petitions
Accused Products
Abstract
Systems, methods and/or devices are used to enable tracking intermix of writes and un-map commands across power cycles. In one aspect, the method includes (1) receiving, at a storage device, a plurality of commands from a host, the storage device including non-volatile memory, (2) maintaining a log corresponding to write commands and un-map commands from the host, (3) maintaining a mapping table in volatile memory, the mapping table used to translate logical addresses to physical addresses, (4) saving the mapping table, on a scheduled basis that is independent of the un-map commands, to the non-volatile memory of the storage device, (5) saving the log to the non-volatile memory, and (6) upon power up of the storage device, rebuilding the mapping table from the saved mapping table in the non-volatile memory of the storage device and from the saved log in the non-volatile memory of the storage device.
126 Citations
23 Claims
-
1. A method of managing a storage system, the method comprising:
-
receiving, at a storage device of the storage system, a plurality of commands from a host to which the storage device is operatively coupled, the plurality of commands from the host including write commands and un-map commands, the storage device including non-volatile memory; maintaining a log corresponding to the write commands and un-map commands from the host; maintaining a mapping table in volatile memory, the mapping table used to translate logical addresses in a logical address space available to the host to physical addresses in a physical address space of the storage device, wherein the log is distinct from the mapping table; saving the mapping table, on a scheduled basis that is independent of the plurality of commands from the host, to the non-volatile memory of the storage device; saving the log to the non-volatile memory of the storage device; and upon power up of the storage device, rebuilding the mapping table from the saved mapping table in the non-volatile memory of the storage device and from the saved log in the non-volatile memory of the storage device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A storage device, comprising:
-
non-volatile memory; one or more processors; and controller memory storing one or more programs configured for execution by the one or more processors, the one or more programs including instructions for; receiving, at the storage device, a plurality of commands from a host to which the storage device is operatively coupled, the plurality of commands from the host including write commands and un-map commands; maintaining a log corresponding to write commands and un-map commands from the host; maintaining a mapping table in volatile memory, the mapping table used to translate logical addresses in a logical address space available to the host to physical addresses in a physical address space of the storage device, wherein the log is distinct from the mapping table; saving the mapping table, on a scheduled basis that is independent of the plurality of commands from the host, to the non-volatile memory; saving the log to the non-volatile memory; and upon power up of the storage device, rebuilding the mapping table from the saved mapping table in the non-volatile memory and from the saved log in the non-volatile memory. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A non-transitory computer-readable storage medium, storing one or more programs configured for execution by one or more processors of a storage device, the one or more programs including instructions for:
-
receiving, at the storage device, a plurality of commands from a host to which the storage device is operatively coupled, the plurality of commands from the host including write commands and un-map commands, the storage device including non-volatile memory; maintaining a log corresponding to write commands and un-map commands from the host; maintaining a mapping table in volatile memory, the mapping table used to translate logical addresses in a logical address space available to the host to physical addresses in a physical address space of the storage device, wherein the log is distinct from the mapping table; saving the mapping table, on a scheduled basis that is independent of the plurality of commands from the host, to the non-volatile memory; saving the log to the non-volatile memory; and upon power up of the storage device, rebuilding the mapping table from the saved mapping table in the non-volatile memory and from the saved log in the non-volatile memory. - View Dependent Claims (18, 19, 20, 21, 22, 23)
-
Specification