Non-volatile storage subsystem with energy-based performance throttling
AssigneeWestern Digital Technologies, Inc.
InventorRobert L. Horn
Life of this patent
Estimating the term…
Abstract
A non-volatile storage subsystem regulates energy consumption by controlling or “throttling” the rate at which memory operations are performed. During relatively idle periods in which few or no memory operations are performed, energy allotments or “counts” are accumulated to reflect unused energy. These accumulated energy counts may then be effectively allocated for use during bursts or other periods of relatively heavy memory activity, such that the memory operations are performed at a relatively high rate without causing a maximum average power consumption to be exceeded.
Claims21
A storage subsystem capable of regulating energy consumption by controlling memory operations, the storage subsystem comprising:
- an array of non-volatile memory;
- and
- a controller that accesses the array of non-volatile memory in response to commands received from a host system, said controller configured to maintain energy count data representing accumulated energy counts available for performing memory operations on the array of non-volatile memory, said energy count data reflecting at least (1) energy counts accrued over time, and (2) energy consumed by actual memory operations;
- wherein memory operations comprise a first memory operation and a second memory operation, the first memory operation scheduled to be executed before the second memory operation;
- and
- wherein the controller is further configured to, in response to determining that the first memory operation exceeds an energy count data threshold:
- defer execution of the first memory operation;
- and
- in response to determining that the second memory operation does not exceed the energy count data threshold, execute the second memory operation before executing the first memory operation,
- wherein the energy count data threshold is based at least in part on the energy count data.
A method of regulating energy consumption in a storage subsystem that comprises a controller and an array of non-volatile memory, the method comprising:
- maintaining energy count data representing accumulated energy counts available for performing memory operations on the array of non-volatile memory, wherein maintaining said energy count data comprises updating the energy count data to reflect (1) energy counts accrued over time, and (2) energy consumed by actual memory operations, and wherein memory operations comprise a first memory operation and a second memory operation, the first memory operation scheduled to be executed before the second memory operation;
- in response to determining that the first memory operation exceeds an energy count data threshold:
- deferring execution of the first memory operation;
- and
- in response to determining that the second memory operation does not exceed the energy count data threshold, executing the second memory operation before executing the first memory operation,
- wherein the energy count data threshold is based at least in part on the energy count data;
- said method implemented by the controller.
A method of regulating energy consumption in a storage subsystem that comprises a controller and an array of non-volatile memory, the method comprising:
- tracking, with said controller, a quantity of energy allotments accumulated during a substantially idle period in which memory activity is below an average level, said energy allotments accrued at a rate corresponding to a target average energy consumption rate;
- subsequently, using the accumulated energy allotments to enable a sequence of memory operations to be performed by the controller at a rate at which energy consumption exceeds the target average energy consumption rate, wherein memory operations comprise a first memory operation and a second memory operation, the first memory operation scheduled to be executed before the second memory operation;
- in response to determining that the first memory operation exceeds an energy count allotment threshold:
- deferring execution of the first memory operation;
- and
- in response to determining that the second memory operation does not exceed the energy count allotment threshold, executing the second memory operation before executing the first memory operation,
- wherein the energy count allotment threshold is based at least in part on (1) the accumulated energy allotments and (2) energy consumed by memory operations,
- said method implemented by the controller.
Dependencies are inferred from the claim text.