Energy-per-processing event estimates based on total power consumption measurements within a data storage device
Methods and apparatus for energy management in data storage devices are provided. One such data storage device (DSD) includes a non-volatile memory (NVM), a set of hardware processing engines, and a power sensor to detect a total power consumption of the set of hardware processing engines. A processor is configured to determine an energy-per-processing event value for each of the set of processing engines based on total power consumption measurements and processing event duration values, then control energy delivery to the processing engines based on the energy-per-processing event values in accordance with an energy budget. In some examples, the DSD employs a least-squares procedure to estimate power-per-processing event values so the values can be determined without needing to measure individual power consumption of the processing engines. The power-per-processing event values are converted to energy-per-processing event values based on corresponding processing event durations. A recursive least-squares update procedure is also described.
1 . A data storage device, comprising:
a non-volatile memory (NVM) configured to store NVM data;
a plurality of processing devices, each configured to perform a corresponding processing event to process the NVM data;
a power sensor configured to measure a total power consumption of the plurality of processing devices; and
one or more processors configured, individually or collectively, to:
determine, based on total power consumption values obtained from the power sensor, a power-per-processing event value for each of the processing events,
determine corresponding duration values for each of the processing events,
determine, based on the power-per-processing event values and the corresponding duration values, an energy-per-processing event value for each of the processing events, and
control delivery of energy to the plurality of processing devices based on the energy-per-processing event values;
wherein the one or more processors are configured to determine the power-per-processing event values by being further configured, individually or collectively, to:
store a plurality of the total power consumption values obtained from the power sensor at different times as a power measurement vector (Pt);
for each of the plurality of total power consumption values, store an indication of particular processing devices of the plurality of processing devices that were operating while a corresponding total power consumption value was measured by the power sensor in a corresponding row of a matrix (E), wherein a first column of the matrix (E) is configured to store a value indicative of a baseline power; and
determine the power-per-processing event value for each of the plurality of processing devices by performing a least-squares procedure on the matrix (E) and the power measurement vector (Pt) to determine an estimated power consumption vector (Pe), wherein E·Pe=Pt and wherein each value within the estimated power consumption vector (Pe) represents the estimated power consumption of a corresponding one of the processing devices for a corresponding processing event.
2 . The data storage device of claim 1 , wherein:
the NVM comprises a plurality of dies, and
the one or more processors are configured to determine the corresponding duration values by being further configured, individually or collectively, to separately determine the corresponding duration values for processing events associated with different dies of the plurality of dies.
3 . The data storage device of claim 2 , wherein the one or more processors are configured to determine the energy-per-processing event values by being further configured, individually or collectively, to separately determine the energy-per-processing event values for processing events associated with different dies of the plurality of dies.
4 . The data storage device of claim 3 , wherein the one or more processors are configured to control the delivery of energy by being further configured, individually or collectively, to separately control the delivery of energy for processing events associated with different dies of the plurality of dies.
5 . The data storage device of claim 2 , wherein the one or more processors are further configured, individually or collectively, to:
determine a change over time in at least one of the duration values corresponding to at least one of the plurality of dies;
compare the change over time to a die-based duration threshold; and
control at least one of the plurality of processing devices in response to a determination that the change over time exceeds the die-based duration threshold.
6 . The data storage device of claim 1 , wherein:
the one or more processors are further configured to determine the corresponding duration values by measuring the corresponding duration values, and
the one or more processors are further configured, individually or collectively, to:
determine a change over time in at least one of the duration values corresponding to at least one of the plurality of power-per-processing event values;
compare the change over time to a processing event-based duration threshold; and
re-measure at least one of the duration values in response to a determination that the change over time exceeds the processing event-based duration threshold.
7 . The data storage device of claim 1 , wherein:
the plurality of processing devices comprises a read transfer engine and a write transfer engine, and
the energy-per-processing event values correspond to an energy-per-read transfer event and an energy-per-write transfer event.
8 . The data storage device of claim 1 , wherein the one or more processors are further configured, individually or collectively, to predict energy usage based on the energy-per-processing event values.
9 . The data storage device of claim 1 , wherein the one or more processors are further configured, individually or collectively, to:
determine at least one of the energy-per-processing event values from the estimated power consumption vector (Pe) and a corresponding duration value.
10 . The data storage device of claim 9 , wherein the one or more processors are further configured, individually or collectively, to:
obtain an additional total power consumption value from the power sensor;
obtain indications of particular processing devices operating while the additional total power consumption value was measured by the power sensor;
perform an iterative least-squares procedure to determine an updated estimated power consumption vector (Pe); and
determine an updated energy-per-processing event value from the updated estimated power consumption vector (Pe) and an updated corresponding duration value.
11 . The data storage device of claim 1 , wherein the one or more processors are configured, individually or collectively, to control, based on the energy-per-processing event values, the delivery of power to the plurality of processing devices to correspond to an energy budget.
12 . The data storage device of claim 1 , wherein the plurality of processing devices comprises a set of hardware processing devices.
13 . The data storage device of claim 12 , wherein the one or more processors and one or more of the set of hardware processing devices comprise components of an integrated circuit.
14 . A method for use by a data storage device including a non-volatile memory (NVM) configured to store NVM data, a power sensor, and a plurality of processing devices each configured to perform a corresponding processing event to process the NVM data, the method comprising:
measuring, using the power sensor, a plurality of total power consumption values, each representative of a total power consumed by the plurality of processing devices;
determining, based on total power consumption values measured using the power sensor, a power-per-processing event value for each of the processing events;
determining corresponding duration values for each of the processing events;
determining, based on the power-per-processing event values and the corresponding duration values, an energy-per-processing event value for each of the processing events; and
controlling delivery of energy to the plurality of processing devices based on the energy-per-processing event values;
wherein the determining the power-per-processing event values comprises:
storing a plurality of the total power consumption values obtained from the power sensor at different times as a power measurement vector (Pt);
for each of the plurality of total power consumption values, storing an indication of particular processing devices of the plurality of processing devices that were operating while a corresponding total power consumption value was measured by the power sensor in a corresponding row of a matrix (E), wherein a first column of the matrix (E) is configured to store a value indicative of a baseline power; and
determining the power-per-processing event value for each of the plurality of processing devices by performing a least-squares procedure on the matrix (E) and the power measurement vector (Pt) to determine an estimated power consumption vector (Pe), wherein E·Pe=Pt and wherein each value within the estimated power consumption vector (Pe) represents the estimated power consumption of a corresponding one of the processing devices for a corresponding processing event.
15 . The method of claim 14 , wherein the NVM comprises a plurality of dies, and wherein the corresponding duration values are determined separately for processing events associated with different dies of the plurality of dies.
16 . The method of claim 15 , wherein the energy-per-processing event values are determined separately for processing events associated with different dies of the plurality of dies.
17 . The method of claim 15 , further comprising:
determining a change over time in at least one of the duration values corresponding to at least one of the plurality of dies;
comparing the change over time to a die-based duration threshold; and
controlling at least one of the plurality of processing devices in response to a determination that the change over time exceeds the die-based duration threshold.
18 . The method of claim 14 , wherein the corresponding duration values are measured, and wherein the method further comprises:
determining a change over time in at least one of the duration values corresponding to at least one of the plurality of power-per-processing event values;
comparing the change over time to a processing event-based duration threshold; and
re-measuring at least one of the duration values in response to a determination that the change over time exceeded the processing event-based duration threshold.
19 . An apparatus for use by a data storage device including a non-volatile memory (NVM) configured to store NVM data, a power sensor, and a plurality of processing devices configured to process the NVM data, the apparatus comprising:
means for measuring, using the power sensor, a plurality of total power consumption values, each representative of a total power consumed by the plurality of processing devices;
means for determining, based on total power consumption values measured using the power sensor, a power-per-processing event value for each of the processing events;
means for determining corresponding duration values for each of the processing events;
means for determining, based on the power-per-processing event values and the corresponding duration values, an energy-per-processing event value for each of the processing events; and
means for controlling delivery of energy to the plurality of processing devices based on the energy-per-processing event values;
wherein the means for determining the power-per-processing event values is configured to:
store a plurality of the total power consumption values obtained from the power sensor at different times as a power measurement vector (Pt);
for each of the plurality of total power consumption values, store an indication of particular processing devices of the plurality of processing devices that were operating while a corresponding total power consumption value was measured by the power sensor in a corresponding row of a matrix (E), wherein a first column of the matrix (E) is configured to store a value indicative of a baseline power; and
determine the power-per-processing event value for each of the plurality of processing devices by performing a least-squares procedure on the matrix (E) and the power measurement vector (Pt) to determine an estimated power consumption vector (Pe), wherein E·Pe=Pt and wherein each value within the estimated power consumption vector (Pe) represents the estimated power consumption of a corresponding one of the processing devices for a corresponding processing event.