Prioritized access for media with heterogeneous access rates
First Claim
1. A non-volatile storage subsystem, comprising:
- non-volatile storage media comprising a solid-state storage array, the non-volatile storage media including a higher write performance portion and a lower write performance portion; and
a controller configured to;
perform wear leveling operations on the solid-state storage array;
designate at least one portion of the solid-state storage array as a portion with reduced wear compared to other portions of the solid-state storage array and maintain the designated at least one portion of the solid-state storage array as the portion with reduced wear compared to the other portions of the solid-state storage array, the higher write performance portion comprising the designated at least one portion of the solid-state storage array;
maintain a list of available storage locations for the non-volatile storage media;
receive a write command comprising a logical address and write data;
determine a performance sensitivity associated with the write command, the write command having a higher performance sensitivity when it is received from a host system and having a lower performance sensitivity when it is received from a maintenance process internal to the non-volatile storage subsystem; and
in response to determining that the write command has the higher performance sensitivity, execute the write command in a storage location of the designated at least one portion of the solid-state storage array chosen from the list of available storage locations.
10 Assignments
0 Petitions
Accused Products
Abstract
A non-volatile storage subsystem is described which identifies performance-sensitive commands and heterogeneous performance characteristics of portions of a non-volatile storage media, and matches the performance sensitivity of the commands with an available physical write address corresponding to performance characteristics appropriate for the performance sensitivity of the command. A command can be considered performance sensitive if it originates from a host or a preferred host among a plurality of hosts, or if the command designates a frequently accessed logical address. Performance characteristics of the storage device can be determined by physical architectures of the storage media such as the distance from the axial center of a disk media, or the architecture technology of a solid-state array. Performance characteristics can also be determined dynamically and heterogeneous performance can be encouraged by internal maintenance policies of the subsystem.
-
Citations
19 Claims
-
1. A non-volatile storage subsystem, comprising:
-
non-volatile storage media comprising a solid-state storage array, the non-volatile storage media including a higher write performance portion and a lower write performance portion; and a controller configured to; perform wear leveling operations on the solid-state storage array; designate at least one portion of the solid-state storage array as a portion with reduced wear compared to other portions of the solid-state storage array and maintain the designated at least one portion of the solid-state storage array as the portion with reduced wear compared to the other portions of the solid-state storage array, the higher write performance portion comprising the designated at least one portion of the solid-state storage array; maintain a list of available storage locations for the non-volatile storage media; receive a write command comprising a logical address and write data; determine a performance sensitivity associated with the write command, the write command having a higher performance sensitivity when it is received from a host system and having a lower performance sensitivity when it is received from a maintenance process internal to the non-volatile storage subsystem; and in response to determining that the write command has the higher performance sensitivity, execute the write command in a storage location of the designated at least one portion of the solid-state storage array chosen from the list of available storage locations. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for assigning a physical address location to a write command in a non-volatile storage subsystem, comprising:
-
performing wear leveling operations on a solid-state storage array; designating at least one portion of the solid-state storage array as a portion with reduced wear compared to other portions of the solid-state storage array and maintaining the designated at least one portion of the solid-state storage array as the portion with reduced wear compared to the other portions of the solid-state storage array; maintaining a list of available physical address locations of non-volatile storage media including the solid-state storage array, each available physical address location associated with a performance characteristic, the list being organized by the performance characteristic of the available physical address locations; determining a performance sensitivity associated with the write command; assigning the physical address location from the available physical address locations to the write command based at least in part on the determined performance sensitivity associated with the write command and the performance characteristic of the physical address location; wherein when the write command is received from a host, the write command is deemed to have a high performance sensitivity and is assigned an available physical address from the list corresponding to the designated at least one portion of the solid-state storage array, wherein when the write command is received from a management process internal to the non-volatile storage subsystem, the write command is deemed have a low performance sensitivity and is assigned an available physical address from the list corresponding to a portion of the solid-state storage array other than the designated at least one portion of the solid-state storage array, wherein the method is performed by a controller in the non-volatile storage subsystem. - View Dependent Claims (12)
-
-
13. A non-volatile storage system comprising:
-
non-volatile storage media comprising a solid-state storage array, the non-volatile storage media including a higher write performance portion and a lower write performance portion; and a controller configured to; perform wear leveling operations on the solid-state storage array; designate at least one portion of the solid-state storage array as a portion with reduced wear compared to other portions of the solid-state storage array and maintain the designated at least one portion of the solid-state storage array as the portion with reduced wear compared to the other portions of the solid-state storage array, the higher write performance portion comprising the designated at least one portion of the solid-state storage array; receive a write command from a host; receive a write command from an internal component; maintain a list of available write locations for the non-volatile storage media; assign a write location to the write command from the host chosen from the list of available write locations based at least in part on a preference for assigning available write locations from the higher write performance portion of the non-volatile storage media to write commands from the host, the chosen write location assigned to the write command from the host being a memory location of the designated at least one portion of the solid-state storage array; and assign a write location to the write command from the internal component chosen from the list of available write locations based at least in part on a preference for assigning available write locations from the lower write performance portion of the non-volatile storage media to write commands from the internal component. - View Dependent Claims (14, 15, 16)
-
-
17. A non-volatile storage subsystem, comprising:
-
non-volatile storage media comprising a solid-state storage array, the non-volatile storage media including a higher write performance portion and a lower write performance portion; and a controller configured to; perform wear leveling operations on the solid-state storage array; designate at least one portion of the solid-state storage array as a portion with reduced wear compared to other portions of the solid-state storage array and maintain the designated at least one portion of the solid-state storage array as the portion with reduced wear compared to the other portions of the solid-state storage array, the higher write performance portion comprising the designated at least one portion of the solid-state storage array; maintain a list of available write locations for the non-volatile storage media; receive a write command comprising a logical address and write data; determine a performance sensitivity associated with the write command in part based on a run-time characteristic of the non-volatile storage subsystem and whether the write command is received from a host system or a maintenance process internal to the non-volatile storage subsystem; and select a write location either in the higher write performance portion or the lower write performance portion of the storage media chosen from the list of available write locations based at least in part on the determined performance sensitivity associated with the write command. - View Dependent Claims (18, 19)
-
Specification