Processing of Un-Map Commands to Enhance Performance and Endurance of a Storage Device
First Claim
1. A method of managing a storage device, the method comprising:
- maintaining a write cache, in volatile memory of the storage device, for storing data corresponding to write commands from a host, wherein the host is operatively coupled to the storage device, the storage device including non-volatile memory;
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;
receiving, at the storage device, an un-map command from the host;
determining whether a size of the un-map command satisfies a size threshold, wherein the size of the un-map command corresponds to a number of logical addresses to be un-mapped by the un-map command;
in accordance with a determination that the size of the un-map command satisfies the size threshold, performing one or more operations of a first un-map process, wherein the first un-map process does not include saving the mapping table to the non-volatile memory of the storage device; and
in accordance with a determination that the size of the un-map command does not satisfy the size threshold, performing one or more operations of a second un-map process, wherein the second un-map process does not include saving the mapping table to the non-volatile memory of the storage device and does not include flushing the write cache to the non-volatile memory of the storage device.
3 Assignments
0 Petitions
Accused Products
Abstract
A storage device and method enable processing of un-map commands. In one aspect, the method includes (1) determining whether a size of an un-map command satisfies (e.g., is greater than or equal to) a size threshold, (2) if the size of the un-map command satisfies the size threshold, performing one or more operations of a first un-map process, wherein the first un-map process forgoes (does not include) saving a mapping table to non-volatile memory of a storage device, and (3) if the size of the un-map command does not satisfy the size threshold, performing one or more operations of a second un-map process, wherein the second un-map process forgoes (does not include) saving the mapping table to non-volatile memory of the storage device and forgoes (does not include) flushing a write cache to non-volatile memory of the storage device.
-
Citations
20 Claims
-
1. A method of managing a storage device, the method comprising:
-
maintaining a write cache, in volatile memory of the storage device, for storing data corresponding to write commands from a host, wherein the host is operatively coupled to the storage device, the storage device including non-volatile memory; 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; receiving, at the storage device, an un-map command from the host; determining whether a size of the un-map command satisfies a size threshold, wherein the size of the un-map command corresponds to a number of logical addresses to be un-mapped by the un-map command; in accordance with a determination that the size of the un-map command satisfies the size threshold, performing one or more operations of a first un-map process, wherein the first un-map process does not include saving the mapping table to the non-volatile memory of the storage device; and in accordance with a determination that the size of the un-map command does not satisfy the size threshold, performing one or more operations of a second un-map process, wherein the second un-map process does not include saving the mapping table to the non-volatile memory of the storage device and does not include flushing the write cache to the non-volatile memory of the storage device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A storage device, comprising:
-
non-volatile memory; a write cache; and a storage controller having one or more processors configured to execute instructions in one or more programs; wherein the storage controller is configured to perform operations comprising; maintaining the write cache, in volatile memory of the storage device, for write commands from a host, wherein the host is operatively coupled to the storage device, and the write cache includes write commands from the host not yet saved to the non-volatile memory of the storage device; 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; receiving, at the storage device, an un-map command from the host; determining whether a size of the un-map command satisfies a size threshold, wherein the size of the un-map command corresponds to a number of logical addresses to be un-mapped by the un-map command; in accordance with a determination that the size of the un-map command satisfies the size threshold, performing one or more operations of a first un-map process, wherein the first un-map process does not include saving the mapping table to the non-volatile memory of the storage device; and in accordance with a determination that the size of the un-map command does not satisfy the size threshold, performing one or more operations of a second un-map process, wherein the second un-map process does not include saving the mapping table to the non-volatile memory of the storage device and does not include flushing the write cache to the non-volatile memory of the storage device. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A non-transitory computer readable storage medium, storing one or more programs configured for execution by one or more processors of a storage controller in a storage device, the storage device having non-volatile memory and a write cache, wherein execution of the one or more programs by the one or more processors causes the storage device to perform operations comprising:
-
maintaining the write cache, in volatile memory of the storage device, for write commands from a host, wherein the host is operatively coupled to the storage device, the storage device including non-volatile memory, wherein the write cache includes write commands from the host not yet saved to the non-volatile memory of the storage device; 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; receiving, at the storage device, an un-map command from the host; determining whether a size of the un-map command satisfies a size threshold, wherein the size of the un-map command corresponds to a number of logical addresses to be un-mapped by the un-map command; in accordance with a determination that the size of the un-map command satisfies the size threshold, performing one or more operations of a first un-map process, wherein the first un-map process does not include saving the mapping table to the non-volatile memory of the storage device; and in accordance with a determination that the size of the un-map command does not satisfy the size threshold, performing one or more operations of a second un-map process, wherein the second un-map process does not include saving the mapping table to the non-volatile memory of the storage device and does not include flushing the write cache to the non-volatile memory of the storage device.
-
Specification