Architecture for optimizing execution of storage access commands
First Claim
1. In a storage subsystem that processes storage access commands received from a host system, a method of optimizing execution of storage access commands, the method comprising:
- receiving a calibration request from the host system, the request specifying a first write command and an optimization criterion;
determining a speed of execution of the first write command, the determining comprising;
using power provided by a primary power source, executing the first write command, andrecording the execution speed of the first write command for each of a plurality of regions of a non-volatile memory storage device;
selecting a region from the plurality of regions having a recorded execution speed that satisfies the optimization criterion; and
when there is a failure of the primary power source, executing, using power provided by a reserve power source, a second write command directed to the selected region, wherein overhead operations that are directed to the selected region are disabled until the second write command has finished executing, the overhead operations comprising block erase, wear leveling, and bad block management operations.
10 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for an architecture for optimizing execution of storage access commands is disclosed. The architecture enables a storage subsystem to execute storage access commands while satisfying one or more optimization criteria. The architecture thereby provides predictable execution times of storage access commands performed on a storage subsystem. In order to optimize execution of storage access commands, in one embodiment the host system sends a calibration request specifying a storage access command and an optimization criterion. In response to the calibration request, the storage subsystem determines the execution speeds of the storage access command within the non-volatile memory storage array and selects at least one region within the non-volatile memory storage array having the execution speed that satisfies the optimization criterion. Subsequently, when the host system desires that a storage access command be executed in satisfaction of the optimization criterion, the storage subsystem executes the command within the selected region.
98 Citations
24 Claims
-
1. In a storage subsystem that processes storage access commands received from a host system, a method of optimizing execution of storage access commands, the method comprising:
-
receiving a calibration request from the host system, the request specifying a first write command and an optimization criterion; determining a speed of execution of the first write command, the determining comprising; using power provided by a primary power source, executing the first write command, and recording the execution speed of the first write command for each of a plurality of regions of a non-volatile memory storage device; selecting a region from the plurality of regions having a recorded execution speed that satisfies the optimization criterion; and when there is a failure of the primary power source, executing, using power provided by a reserve power source, a second write command directed to the selected region, wherein overhead operations that are directed to the selected region are disabled until the second write command has finished executing, the overhead operations comprising block erase, wear leveling, and bad block management operations. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of optimizing execution of storage access commands communicated by a host system to a storage subsystem having a non-volatile memory storage device comprising a plurality of regions, the method comprising:
-
communicating a calibration request to the storage subsystem, the request specifying a first write command and an optimization criterion and causing the storage subsystem to perform calibration of the non-volatile memory storage device using power provided by a primary power source; in response to the calibration request, receiving an identification of a region of the plurality of regions within the non-volatile memory storage device, the region having a speed of execution of the first write command that satisfies the optimization criterion; communicating a second write command to the storage subsystem using power provided by a reserve power source, the command comprising the identification of the region embedded as a pattern within the second write command; and causing execution of the second write command directed to the region in response to detecting a condition requiring the second write command to be executed in a time-critical manner, wherein the execution is performed using power provided by the reserve power source and wherein overhead operations that are directed to the region are disabled until the second write command has finished executing, the overhead operations comprising block erase, wear leveling, and bad block management operations. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A storage subsystem comprising:
-
a non-volatile memory storage device; and a controller that accesses the non-volatile memory storage device in response to storage access commands received from a host system, the controller configured to; receive a calibration request from the host system, the request specifying a first write command and an optimization criterion; in response to receiving the calibration request, and using power from a primary power source; execute the first write command directed to a plurality of regions of the non-volatile memory storage device, record an execution speed of the first write command for each of the plurality of regions, and select a region from the plurality of regions having the recorded execution speed that satisfies the optimization criterion; receive a second write command; and execute, using power from a reserve power source, the second write command directed to the selected region in response to detecting a condition requiring the second write command to be executed in a time-critical manner, wherein overhead operations that are directed to the selected region are disabled until the second write command has finished executing, the overhead operations comprising block erase, wear leveling, and bad block management operations. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24)
-
Specification