IP Library Granted Patent US 9,946,481
Granted Patent B2
US 9,946,481 · App. 14/702,560 · Granted Apr 17, 2018

Dynamic power throttling in solid state drives

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 9,946,481
App. No.
14/702,560
Granted
Apr 17, 2018
Kind
B2
Abstract

An apparatus, system, and method is provided to dynamically throttle a solid state drive based on measured local temperature and power measurements. The solid state drive includes a monitoring system to monitor temperature and power. A controller in the solid state drive determines a throttle setting. The controller may be implemented as proportional integral differential (PID) control loop. The throttling may include adjusting the rate of concurrent non-volatile memory operations between a minimum value and a maximum value.

Claims (210)

1. A method of controlling a solid state drive, comprising:

measuring either a temperature of the solid state drive using a temperature sensor or a power consumed by the solid state drive using a power sensor;

determining a value for an amount of throttling to be applied to a non-volatile memory array of the solid state drive, the value calculated as a function of a difference between the measured temperature or the measured power of the solid state drive and a target temperature setting or a power setting, respectively, wherein the value corresponds to the precise amount of throttling required to converge the measured temperature or the measured power of the solid state drive on the target temperature setting or the power setting, respectively;

setting an amount of throttling according to the value; and

throttling the solid state drive with the set amount of throttling.

2. The method of claim 1 , wherein throttling the solid state drive comprises adjusting a rate of concurrent non-volatile memory operations between a minimum value and a maximum value.

3. The method of claim 2 , wherein the minimum value is selected to be a minimum value for normal operation of a host platform.

4. The method of claim 1 , wherein throttling the solid state drive comprises adjusting a rate of non-volatile memory operations based on the operation type for each memory bus channel.

5. The method of claim 2 , wherein the throttling is selected by a control loop to protect the solid state drive from overheating and to keep the solid state drive under a power requirement.

6. The method of claim 5 , wherein the control loop is a proportional integral differential (PID) control loop.

7. The method of claim 6 , wherein PID control loop includes in each loop: getting current temperature and power values, determining a PID throttle value, and setting a differential error value and an integral error value for the next loop.

8. The method of claim 5 , wherein the control loop comprises a first proportional integral differential (PID) control loop to generate a first throttle value based on temperature and a second PID control loop to generate a second throttle value based on power and the throttle setting is selected to be a maximum of the first throttle value and the second throttle value.

9. The method of claim 1 , wherein the non-volatile memory is a flash memory array.

10. The method of claim 1 , wherein the calculation uses the mathematical formula:

u

(

t

)

=

K

p

e

(

t

)

+

K

i

0

t

e

(

τ

)

d

τ

+

K

d

d

d

t

e

(

t

)

wherein u(t) is the value for the amount of throttling,

K p is a proportional gain tuning parameter,

K i is an integral gain tuning parameter,

K d is a differential gain tuning parameter,

e is an error value,

t is time, and

τ is a variable of integration.

11. A solid state drive (SSD), comprising:

a non-volatile memory array;

a solid state drive controller;

a monitoring system to measure either a temperature of the solid state drive using a temperature sensor, or a power consumed by the solid state drive using a power sensor;

at least one control loop to determine a value for an amount of throttling to be applied to the non-volatile memory, the value calculated as a function of a difference between the measured temperature or the measured power of the solid state drive and a target temperature setting or a power setting, respectively, wherein the value corresponds to the precise amount of throttling required to converge the measured temperature or the measured power of the solid state drive on the target temperature setting or the power setting, respectively; and

a throttling unit to set an amount of throttling according to the value, and to throttle the solid state drive with the set amount of throttling.

12. The solid state drive of claim 11 , wherein the control loop is a proportional integral differential (PID) control loop.

13. The solid state drive of claim 11 , wherein the non-volatile memory array is a flash memory array.

14. The solid state drive of claim 11 , wherein the solid state drive controller is further adapted to receive power state commands from a host.

15. The solid state drive of claim 11 , wherein throttling the solid state drive comprises adjusting a rate of concurrent flash operations between a minimum value and a maximum value.

16. The solid state drive of claim 15 , wherein the minimum value is selected to be a minimum value for normal operation of the host platform.

17. The solid state drive of claim 11 , wherein the solid state drive controller, monitoring system, control loop, and throttling unit provide autonomous local control of power settings of the solid state drive.

18. The solid state drive of claim 17 , wherein the solid state drive is compatible with host commands to adjust power and includes an input to receive a power state control command from a host and an output to provide performance statistics to the host.

19. The solid state drive of claim 18 , wherein the SSD is compatible with the NVM Express (NVMe) specification.

20. The solid state drive of claim 11 , wherein the at least one control loop comprises a first proportional integral differential (PID) control loop to generate a first throttle value based on temperature and a second PID control loop to generate a second throttle value based on power and the throttle setting is a maximum of the first throttle value and the second throttle value.

21. The solid state drive of claim 11 , wherein the value for the amount of throttling is calculated using the mathematical formula:

u

(

t

)

=

K

p

e

(

t

)

+

K

i

0

t

e

(

τ

)

d

τ

+

K

d

d

d

t

e

(

t

)

wherein u(t) is the value for the amount of throttling,

K p is a proportional gain tuning parameter,

K i is an integral gain tuning parameter,

K d is a differential gain tuning parameter,

e is an error value,

t is time, and

τ is a variable of integration.

22. A method of controlling a solid state drive, comprising:

receiving, at the solid state drive, a control command indicative of a target power setting;

providing local autonomous control, by the solid state drive, of temperature and power, including:

measuring, by the solid state drive, either a temperature of the solid state drive using a temperature sensor or a power consumed by the solid state drive using a power sensor;

determining, by at least one control loop of the solid state drive, a value for an amount of throttling to protect the solid state drive from overheating and to keep the solid state drive under a power requirement of the host platform, the value calculated as a function of a difference between the measured temperature or the measured power of the solid state drive and a target temperature setting or a power setting, respectively, wherein the value corresponds to the precise amount of throttling required to converge the measured temperature or the measured power of the solid state drive on the target temperature setting or the power setting, respectively;

setting, by a throttling unit, an amount of throttling according to the value, and throttling the solid state drive with the set amount of throttling.

23. The method of claim 22 wherein throttling the solid state drive comprises adjusting a number of concurrent flash operations per unit time between a minimum value and a maximum value.

24. The method of claim 23 , wherein the minimum value is selected to be a minimum value for normal operation of the host platform.

25. The method of claim 22 , wherein the at least one control loop comprises at least one proportional integral differential (PID) control loop.

26. The method of claim 25 , wherein the at least one PID control loop includes in each loop: getting current temperature and power values, determining a throttle value, and setting a differential error value and an integral error value for the next loop.

27. The method of claim 22 , further comprising receiving, at the solid state drive, a control command indicative of a target power setting.

28. The method of claim 22 , further comprising receiving, at the solid state drive, a control command indicative of a target temperature setting.

29. The method of claim 22 , wherein the at least one control loop comprises a first control loop to generate a first throttle value based on temperature and a second control loop to generate a second throttle value based on power and the throttle setting is a maximum of the first throttle value and the second throttle value.

30. The method of claim 22 , wherein the at least one control loop comprises a first proportional integral differential (PID) control loop to generate a first throttle value based on temperature and a second PID control loop to generate a second throttle value based on power and the throttle setting is a maximum of the first throttle value and the second throttle value.

31. The method of claim 22 , wherein the calculation uses the mathematical formula:

u

(

t

)

=

K

p

e

(

t

)

+

K

i

0

t

e

(

τ

)

d

τ

+

K

d

d

d

t

e

(

t

)

wherein u(t) is the value for the amount of throttling,

K p is a proportional gain tuning parameter,

K i is an integral gain tuning parameter,

K d is a differential gain tuning parameter,

e is an error value,

t is time, and

τ is a variable of integration.

Assignments (6)
MERGER Recorded Jan 22, 2021
From: TOSHIBA MEMORY CORPORATION
To: K.K. PANGEA
Reel/Frame 055659/0471 →
CHANGE OF NAME AND ADDRESS Recorded Jan 22, 2021
From: TOSHIBA MEMORY CORPORATION
To: KIOXIA CORPORATION
Reel/Frame 055669/0001 →
CHANGE OF NAME AND ADDRESS Recorded Jan 22, 2021
From: K.K. PANGEA
To: TOSHIBA MEMORY CORPORATION
Reel/Frame 055669/0401 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2017
From: KABUSHIKI KAISHA TOSHIBA
To: TOSHIBA MEMORY CORPORATION
Reel/Frame 043397/0380 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2016
From: OCZ STORAGE SOLUTIONS, INC.
To: TOSHIBA CORPORATION
Reel/Frame 038434/0371 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 4, 2015
From: WARRINER, MATTHEW
To: OCZ STORAGE SOLUTIONS, INC.
Reel/Frame 035560/0704 →