IP Library Granted Patent US 12,287,690
Granted Patent B2
US 12,287,690 · App. 17/959,037 · Granted Apr 29, 2025

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

Inventors: Yoseph Hassan (Nechusha, IL); Eran Sharon (Rishon Lezion, IL); Shay Benisty (Beer Sheva, IL); Ariel Navon (Revava, IL)
Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.
G06F1/3206
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,287,690
App. No.
17/959,037
Granted
Apr 29, 2025
Kind
B2
Abstract

Methods and apparatus for power 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 a power-per-processing event value for each of the set of processing engines based on total power consumption measurements, then control delivery of power to the processing engines based on the power-per-processing event values in accordance with a power budget. In some examples, the DSD employs a least-squares procedure to estimate the power-per-processing event values so the values can be determined without needing to measure the individual power consumption of the processing engines. Exemplary processing engines include a Read engine, a Write engine, etc. A recursive least-squares update procedure is also described.

Claims (73)

1. A data storage device, comprising:

a non-volatile memory (NVM);

a plurality of processing devices configured to process 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 in combination, to:

measure a plurality of total power consumption values using the power sensor, with each of the plurality of total power consumption values measured at a different time;

identify, for each total power consumption value of the plurality of total power consumption values, active processing devices of the plurality of processing devices that were active while a corresponding total power consumption value was measured;

determine a power-per-processing event value for each of the plurality of processing devices based on the plurality of total power consumption values and the active processing devices by being further configured to determine a least-squares fit of the total power consumption values to a matrix product of the power-per-processing event values and the corresponding active processing devices, wherein each power-per-processing event value is an estimated power consumption of a corresponding one of the processing devices for a corresponding processing event; and

control delivery of power to the plurality of processing devices based on the power-per-processing event values.

2. The data storage device of claim 1 , wherein the plurality of processing devices comprises a read transfer engine and a write transfer engine and wherein the power-per-processing event values comprise a power-per-read transfer event and a power-per-write transfer event.

3. The data storage device of claim 1 , wherein the one or more processors are further configured, individually or in combination, to:

store the plurality of total power consumption values as a power measurement vector (Pt);

for each of the total power consumption values, store indications of the active processing devices operating while the corresponding total power consumption value was measured in a corresponding row of a matrix (E), wherein a first column of the matrix (E) stores a value indicative of a baseline power; and

determine the power-per-processing event values 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.

4. The data storage device of claim 3 , wherein the one or more processors are further configured, individually or in combination, to:

obtain an additional total power consumption value from the power sensor;

obtain indications of additional active processing devices operating while the additional total power consumption value was measured by the power sensor; and

perform an iterative least-squares procedure to determine an updated estimated power consumption vector (Pe) using the additional total power consumption value and the additional active processing devices.

5. The data storage device of claim 3 , wherein the one or more processors are further configured, individually or in combination, to use at least some initial values within at least one of the matrix (E), the power measurement vector (Pt), and the estimated power consumption vector (Pe) to determine preliminary estimated power consumption vector (Pe) values.

6. The data storage device of claim 5 , wherein the one or more processors are further configured, individually or in combination, to obtain the initial values by: (a) receiving the initial values from a host device, (b) randomly generating the initial values, and/or (c) assigning unique indicator values as the initial values.

7. The data storage device of claim 1 , wherein the one or more processors are further configured, individually or in combination, to control the delivery of power to the plurality of processing devices based on the power-per-processing event values to correspond to a power budget.

8. The data storage device of claim 1 , wherein the plurality of processing devices comprises a set of hardware processing devices.

9. The data storage device of claim 8 , wherein the one or more processors and the set of hardware processing devices comprise components of an integrated circuit.

10. The data storage device of claim 1 , wherein:

each of the plurality of processing devices is represented by a corresponding column of a matrix with an indicator in each row of the column; and

the indicators are configured to identify which of the plurality of processing devices were active while a corresponding total power consumption value was measured.

11. A method for use by a data storage device including a non-volatile memory (NVM), a power sensor, and a plurality of processing devices configured to process 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 at a different time;

identifying, for each total power consumption value of the plurality of total power consumption values, active processing devices of the plurality of processing devices that were active while a corresponding total power consumption value was measured;

determining a power-per-processing event value for each of the plurality of processing devices based on the plurality of total power consumption values and the active processing devices by determining a least-squares fit of the total power consumption values to a matrix product of the power-per-processing event values and the corresponding active processing devices, wherein each power-per-processing event value is an estimated power consumption of a corresponding one of the processing devices for a corresponding processing event; and

controlling delivery of power to the plurality of processing devices based on the power-per-processing event values.

12. The method of claim 11 , further comprising:

storing the plurality of total power consumption values as a power measurement vector (Pt);

for each of the total power consumption values, storing indications of the active processing devices operating while the corresponding total power consumption value was measured in a corresponding row of a matrix (E), wherein a first column of the matrix (E) stores a value indicative of baseline power; and

determining the power-per-processing event values 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.

13. The method of claim 12 , further comprising:

obtaining an additional total power consumption value from the power sensor;

obtaining indications of additional active processing devices operating while the additional total power consumption value was measured by the power sensor; and

performing an iterative least-square procedure to determine an updated estimated power consumption vector (Pe) using the additional total power consumption value and the additional active processing devices.

14. The method of claim 12 , further comprising using at least some initial values within at least one of the matrix (E), the power measurement vector (Pt), and the estimated power consumption vector (Pe) to determine preliminary estimated power consumption vector (Pe) values.

15. The method of claim 14 , further comprising obtaining the initial values by: (a) receiving the initial values from a host device, (b) randomly generating the initial values, and/or (c) assigning unique indicator values as the initial values.

16. The method of claim 11 , further comprising controlling the delivery of power to the plurality of processing devices based on the power-per-processing event values to correspond to a power budget.

17. The method of claim 11 , wherein:

each of the plurality of processing devices is represented by a corresponding column of a matrix with an indicator in each row of the column; and

the indicators are configured to identify which of the plurality of processing devices were active while a corresponding total power consumption value was measured.

18. An apparatus for use with a non-volatile memory (NVM) and a plurality of processing devices configured to process NVM data, the apparatus comprising:

means for measuring a plurality of total power consumption values, each representative of a total power consumed by the plurality of processing devices at a different time;

means for identifying, for each total power consumption value of the plurality of total power consumption values, active processing devices of the plurality of processing devices that were active while a corresponding total power consumption value was measured;

means for determining a power-per-processing event value for each of the plurality of processing devices based on the plurality of total power consumption values and the active processing devices by determining a least-squares fit of the total power consumption values to a matrix product of the power-per-processing event values and the corresponding active processing devices, wherein each power-per-processing event value is an estimated power consumption of a corresponding one of the processing devices for a corresponding processing event; and

means for controlling delivery of power to the plurality of processing devices based on the power-per-processing event values.

19. The apparatus of claim 18 , wherein:

each of the plurality of processing devices is represented by a corresponding column of a matrix with an indicator in each row of the column; and

the indicators are configured to identify which of the plurality of processing devices were active while a corresponding total power consumption value was measured.

20. A data storage device, comprising:

a non-volatile memory (NVM);

a plurality of processing devices configured to process 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 in combination, to:

measure a plurality of total power consumption values using the power sensor, with each of the plurality of total power consumption values measured at a different time;

identify, for each total power consumption value of the plurality of total power consumption values, active processing devices of the plurality of processing devices that were active while a corresponding total power consumption value was measured;

determine a power-per-processing event value for each of the plurality of processing devices based on the plurality of total power consumption values and the active processing devices by being further configured to fit the total power consumption values to a matrix product of the power-per-processing event values and the corresponding active processing devices, wherein:

each power-per-processing event value is an estimated power consumption of a corresponding one of the processing devices for a corresponding processing event,

each of the plurality of processing devices is represented by a corresponding column of a matrix with an indicator in each row of the column, and

the indicators are configured to identify which of the plurality of processing devices were active while a corresponding total power consumption value was measured; and

control delivery of power to the plurality of processing devices based on the power-per-processing event values.

21. A method for use by a data storage device including a non-volatile memory (NVM), a power sensor, and a plurality of processing devices configured to process 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 at a different time;

identifying, for each total power consumption value of the plurality of total power consumption values, active processing devices of the plurality of processing devices that were active while a corresponding total power consumption value was measured;

determining a power-per-processing event value for each of the plurality of processing devices based on the plurality of total power consumption values and the active processing devices by fitting the total power consumption values to a matrix product of the power-per-processing event values and the corresponding active processing devices, wherein:

each power-per-processing event value is an estimated power consumption of a corresponding one of the processing devices for a corresponding processing event,

each of the plurality of processing devices is represented by a corresponding column of a matrix with an indicator in each row of the column, and

the indicators are configured to identify which of the plurality of processing devices were active while a corresponding total power consumption value was measured; and

controlling delivery of power to the plurality of processing devices based on the power-per-processing event values.

Assignments (3)
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 3, 2022
From: HASSAN, YOSEPH; SHARON, ERAN; BENISTY, SHAY; NAVON, ARIEL
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 061293/0957 →
Continuity (1)
Related Publication 20240118736A1 · Apr 11, 2024
References Cited (38)
US 8718798B2 · Bultman · 2014 [cited by examiner]
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 · 2015 [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 applicant]
US 11847327B2 · Palmer · 2023 [cited by applicant]
US 12019413B2 · Brophy · 2024 [cited by examiner]
US 20070266269A1 · Fuchikami · 2007 [cited by examiner]
US 20090016137A1 · Hur et al. · 2009 [cited by applicant]
US 20100275047A1 · Kaneko · 2010 [cited by examiner]
US 20140149760A1 · Drake · 2014 [cited by examiner]
US 20150185813A1 · Ping · 2015 [cited by examiner]
US 20160012555A1 · Harada · 2016 [cited by examiner]
US 20160041762A1 · Kanno · 2016 [cited by examiner]
US 20170075611A1 · Choi · 2017 [cited by examiner]
US 20180182452A1 · Lee · 2018 [cited by applicant]
US 20180196490A1 · Ail · 2018 [cited by examiner]
US 20190065086A1 · Margetts · 2019 [cited by examiner]
US 20190384513A1 · Matsubara · 2019 [cited by examiner]
US 20210055776A1 · Parry · 2021 [cited by examiner]
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 · 2022 [cited by examiner]
US 20230058022A1 · Chung · 2023 [cited by examiner]
US 20230104672A1 · Nakamura · 2023 [cited by examiner]
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]
Hsu, Ying-Feng et al., “Self-Aware Workload Forecasting in Data Center Power Prediction”; 18th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGRID); May 1-4, 2008; https://ieeexplore.ieee.org/d… [cited by applicant]