IP Library › Granted Patent US 12,724,550
Granted Patent B2
US 12,724,550 · App. 18/941,513 · Granted Sep 1, 2026

Energy-per-processing event estimates based on total power consumption measurements within a data storage device

Inventors: Yoseph Hassan (Nechusha, IL); Ariel Navon (Revava, IL); Eran Sharon (Rishon Lezion, IL); Shay Benisty (Beer Sheva, IL)
Assignee: Western Digital Technologies, Inc.
G06F3/0625G06F3/0653G06F3/0679
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,724,550
App. No.
18/941,513
Filed
Nov 8, 2024
Granted
Sep 1, 2026
Kind
B2
Art Unit
2137
USPC
711/100
Abstract

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.

Claims (72)

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.

Assignments (2)
SECURITY AGREEMENT (SUPPLEMENTAL) Recorded Feb 3, 2025
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 070088/0377 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 15, 2024
From: HASSAN, YOSEPH; NAVON, ARIEL; SHARON, ERAN; BENISTY, SHAY
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 069286/0171 →
Continuity (3)
Continuation In Part 18132230 · Apr 7, 2023
Continuation In Part 17959037 · Oct 3, 2022
Related Publication 20250068340A1 · Feb 27, 2025
References Cited (42)
US 8718798B2 · Bultman et al. · 2014 [cited by applicant]
US 8732635B2 · Lewis et al. · 2014 [cited by applicant]
US 8904209B2 · Davis et al. · 2014 [cited by applicant]
US 8938630B2 · Jeddeloh · 2015 [cited by applicant]
US 8949637B2 · Knight · 2015 [cited by applicant]
US 8966293B1 · Dutch et al. · 2015 [cited by applicant]
US 9857978B1 · Griffin · 2018 [cited by examiner]
US 9977487B2 · Choi et al. · 2018 [cited by applicant]
US 10996733B2 · Lee et al. · 2021 [cited by applicant]
US 11016545B2 · Yang et al. · 2021 [cited by applicant]
US 11048448B2 · Suzuki et al. · 2021 [cited by applicant]
US 11244242B2 · Prakash et al. · 2022 [cited by applicant]
US 11307778B2 · Klein · 2022 [cited by examiner]
US 11847327B2 · Palmer · 2023 [cited by applicant]
US 12019413B2 · Brophy et al. · 2024 [cited by applicant]
US 20070266269A1 · Fuchikami et al. · 2007 [cited by applicant]
US 20090016137A1 · Hur et al. · 2009 [cited by applicant]
US 20100275047A1 · Kaneko et al. · 2010 [cited by applicant]
US 20140149760A1 · Drake et al. · 2014 [cited by applicant]
US 20150185813A1 · Ping et al. · 2015 [cited by applicant]
US 20150268712A1 · Mouler · 2015 [cited by examiner]
US 20160012555A1 · Harada et al. · 2016 [cited by applicant]
US 20160041762A1 · Kanno et al. · 2016 [cited by applicant]
US 20170075611A1 · Choi et al. · 2017 [cited by applicant]
US 20180182452A1 · Lee · 2018 [cited by applicant]
US 20180196490A1 · Ail et al. · 2018 [cited by applicant]
US 20190065086A1 · Margetts · 2019 [cited by examiner]
US 20190235774A1 · Benisty · 2019 [cited by examiner]
US 20190384513A1 · Matsubara · 2019 [cited by applicant]
US 20210055776A1 · Parry et al. · 2021 [cited by applicant]
US 20210303184A1 · Palmer · 2021 [cited by applicant]
US 20210359514A1 · Suzuki · 2021 [cited by applicant]
US 20220215273A1 · Sethi et al. · 2022 [cited by applicant]
US 20220398035A1 · Thokala et al. · 2022 [cited by applicant]
US 20230058022A1 · Chung · 2023 [cited by applicant]
US 20230104672A1 · Nakamura et al. · 2023 [cited by applicant]
US 20240111438A1 · Navon et al. · 2024 [cited by applicant]
CN 112084089A · 2020 [cited by applicant]
CN 111914000A · 2020 [cited by applicant]
CN 114238060A · 2022 [cited by applicant]
Yang, Ming-Chang, Che-Wei Tsao, and Yuan-Hao Chang. “A fifty-percent rule to minimize the energy consumption of PCM-based storage systems.” 2013 IEEE 19th International Conference on Embedded and Real-Time Computing Sys… [cited by examiner]
Hsu et al., “Self-Aware Workload Forecasting in Data Center Power Prediction”; 2018, 18th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGrid), May 1, pp. 321-330.IEEE (10 pages). [cited by applicant]