SYSTEMS AND METHODS FOR IMPROVING THE PERFORMANCE OF NON-VOLATILE MEMORY OPERATIONS
First Claim
1. A storage subsystem, comprising:
- a non-volatile memory array; and
a controller comprising;
a characterization module configured to record, in a calibration table, execution times of memory operations performed on a plurality of memory devices in the non-volatile memory array; and
a task manager that uses the times from the calibration table to select one or more tasks to be executed while the controller is performing a current memory operation, the selected tasks having a total execution time less than the recorded execution time associated with the current memory operation.
10 Assignments
0 Petitions
Accused Products
Abstract
Disclosed herein are systems and methods that recognize and recapture potentially unused processing time in typical page program and block erase operations in non-volatile memory (NVM) devices. In one embodiment, a characterization module within a controller executes a characterization procedure by performing page program and block erase operations on one or more NVM devices in an array and storing execution time data of the operations in a calibration table. The procedure may be executed at start-up and/or periodically so that the time values are reflective of the actual physical condition of the individual NVM devices. A task manager uses the stored time values to estimate the time needed for completing certain memory operations in its task table. Based on the estimated time for completion, the task manager assigns tasks to be executed during page program and/or block erase cycles, so that otherwise unused processing time can be utilized.
253 Citations
27 Claims
-
1. A storage subsystem, comprising:
-
a non-volatile memory array; and a controller comprising; a characterization module configured to record, in a calibration table, execution times of memory operations performed on a plurality of memory devices in the non-volatile memory array; and a task manager that uses the times from the calibration table to select one or more tasks to be executed while the controller is performing a current memory operation, the selected tasks having a total execution time less than the recorded execution time associated with the current memory operation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method for optimizing memory operations executed by a controller for a storage subsystem, comprising:
-
executing a plurality of memory operations on a plurality of memory devices in a storage subsystem; recording execution times of the plurality of memory operations; selecting for execution one or more tasks with a total recorded execution time that is less than the recorded execution time of a current memory operation; and executing the selected tasks while the current memory operation is being executed. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. A storage subsystem, comprising:
-
a solid state non-volatile memory array, and a controller that is operative to write data to, and read data from, the solid state non-volatile memory in response to memory access commands received from a host system, the controller additionally operative to record, for each of a plurality of regions of the non-volatile solid state memory array, execution time data reflective of memory access operation execution times for the respective regions, the controller further operative to use the recorded execution times to select tasks to perform concurrently with particular memory access operations initiated by the host system.
-
Specification