IP Library Granted Patent US 9,575,677
Granted Patent B2
US 9,575,677 · App. 14/572,633 · Granted Feb 21, 2017

Storage system power management using controlled execution of pending memory commands

Inventors: Robert W. Ellis (Phoenix, AZ); James M Higgins (Chandler, AZ); Mark Dancho (Chandler, AZ); Ryan R. Jones (Mesa, AZ)
Assignee: SANDISK TECHNOLOGIES LLC
G06F3/0625G06F1/329G06F1/3225G06F3/0659G06F3/0679G06F2206/1014
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,575,677
App. No.
14/572,633
Granted
Feb 21, 2017
Kind
B2
Abstract

The various embodiments described herein include methods and/or systems for throttling power in a storage device. In one aspect, a method of operation in a storage system includes obtaining a power metric corresponding to a count of active memory commands in the storage system, where active memory commands are commands being executed by the storage system. The method further includes, in accordance with a determination that the power metric satisfies one or more power thresholds, deferring execution of one or more pending memory commands.

Claims (49)

1. A method of operation in a storage system, the method comprising:

obtaining a power metric corresponding to a weighted count of active memory commands in the storage system, wherein active memory commands are commands being executed by the storage system and the weighted count includes a first weight for a first active memory command and a second weight, different from the first weight, for a second active memory command; and

in accordance with a determination that the power metric satisfies one or more power thresholds, deferring execution of one or more pending memory commands.

2. The method of claim 1 , wherein the storage system comprises a plurality of distinct sets of storage devices, and the plurality of distinct sets of non-volatile memory devices includes a first distinct set of non-volatile memory devices and a second distinct set of non-volatile memory devices; and

wherein deferring execution of the one or more pending memory commands comprises:

for each distinct set of storage devices in at least a subset of the plurality of distinct sets of storage devices, deferring execution of the one or more pending memory commands corresponding to a respective set of storage devices during a respective wait period;

wherein the respective wait period for the first distinct set of storage devices is determined by the storage system such that the respective wait period for the first distinct set of non-volatile memory devices is at least partially non-overlapping with the respective wait period for the second distinct set of non-volatile storage devices in the at least a subset of the plurality of distinct sets.

3. The method of claim 1 , wherein the storage system comprises a plurality of distinct sets of storage devices and wherein the weighted count of active memory commands comprises a count of active memory commands within a subset of the plurality of distinct sets of storage devices.

4. The method of claim 1 , further comprising:

obtaining a second power metric; and

adjusting at least one of the one or more power thresholds based on the obtained second power metric.

5. The method of claim 4 , wherein the second power metric corresponds to a measure of heat associated with the storage device.

6. The method of claim 4 , wherein the second power metric corresponds to a measure of a current drawn by the storage device.

7. The method of claim 4 , wherein the second power metric corresponds to a measure of power consumption of the storage device.

8. The method of claim 4 , wherein the second power metric is based at least in part on a parameter in an external command.

9. The method of claim 1 , further comprising adjusting at least one of the one or more power thresholds based on a mode of operation of the storage system.

10. The method of claim 1 ,

wherein each memory command of the active memory commands has a respective memory command type of a plurality of distinct memory command types; and

wherein each distinct memory command type has a respective weight.

11. The method of claim 1 , wherein the storage system comprises a plurality of distinct sections, each section coupled to a distinct power supply;

wherein the weighted count of active memory commands comprises a weighted count of active memory commands in a first section of the plurality of distinct sections; and

wherein deferring execution of the one or more pending memory commands comprises deferring execution of the one or more pending memory commands in the first section.

12. A storage device comprising:

a power throttling module;

one or more non-volatile memory controllers coupled to the power throttling module; and

a plurality of non-volatile memory devices, each non-volatile memory device in the plurality of non-volatile memory devices coupled to a particular non-volatile memory controller of the one or more non-volatile memory controllers, the storage device configured to:

obtain a power metric corresponding to a weighted count of active memory commands in the storage device, wherein active memory commands are commands being executed by the storage device and the weighted count includes a first weight for a first active memory command and a second weight, different from the first weight, for a second active memory command; and

in accordance with a determination that the power metric satisfies one or more power thresholds, defer execution of one or more pending memory commands.

13. The storage device of claim 12 , wherein the plurality of non-volatile memory devices comprise a plurality of distinct sets of memory devices, and the plurality of distinct sets of non-volatile memory devices includes a first distinct set of non-volatile memory devices and a second distinct set of non-volatile memory devices; and

wherein deferring execution of the one or more pending memory commands comprises:

for each distinct set of memory devices in at least a subset of the plurality of distinct sets of memory devices, deferring execution of the one or more pending memory commands corresponding to a respective set of memory devices during a respective wait period;

wherein the respective wait period for the first distinct set of memory devices is determined by the storage system such that the respective wait period for the first distinct set of non-volatile memory devices is at least partially non-overlapping with the respective wait period for the second distinct set of non-volatile memory devices in the at least a subset of the plurality of distinct sets.

14. The storage device of claim 12 , the storage device further configured to obtain a second power metric and adjust at least one of the one or more power thresholds based on the obtained second power metric.

15. The storage device of claim 12 , the storage device further configured to adjust at least one of the one or more power thresholds based on a mode of operation of the storage device.

16. The storage device of claim 12 ,

wherein each memory command of the active memory commands has a respective memory command type of a plurality of distinct memory command types; and

wherein each distinct memory command type has a respective weight.

17. A non-transitory computer-readable storage medium storing one or more programs for execution by one or more processors of a storage system, the one or more programs including instructions for:

obtaining a power metric corresponding to a weighted count of active memory commands in the storage system, wherein the active memory commands are commands being executed by the storage system and the weighted count includes a first weight for a first active memory command and a second weight, different form the first weight, for a second active memory command; and

in accordance with a determination that the power metric satisfies one or more power thresholds, deferring execution of one or more pending memory commands.

18. The computer-readable storage medium of claim 17 , wherein the storage system comprises a plurality of distinct sets of storage devices, and the plurality of distinct sets of non-volatile memory devices includes a first distinct set of non-volatile memory devices includes a first distinct set of non-volatile memory devices and a second distinct set of non-volatile memory devices; and

wherein deferring execution of the one or more pending memory commands comprises:

for each distinct set of storage devices in at least a subset of the plurality of distinct sets of storage devices, deferring execution of the one or more pending memory commands corresponding to a respective set of storage devices during a respective wait period;

wherein the respective wait period for the first distinct set of storage devices is determined by the storage system such that the respective wait period for the first distinct set of non-volatile memory devices is at least partially non-overlapping with the respective wait period for the second distinct set of non-volatile storage devices in the at least a subset of the plurality of distinct sets.

19. The computer-readable storage medium of claim 17 , the one or more programs further including instructions for obtaining a second power metric and adjusting at least one of the one or more power thresholds based on the obtained second power metric.

20. The computer-readable storage medium of claim 17 , the one or more programs further including instructions for adjusting at least one of the one or more power thresholds based on a mode of operation of the storage system.

21. The computer-readable storage medium of claim 17 ,

wherein each memory command of the active memory commands has a respective memory command type of a plurality of distinct memory command types; and

wherein each distinct memory command type has a respective weight.

Assignments (6)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2024
From: SANDISK TECHNOLOGIES LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069796/0423 →
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038807/0807 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2016
From: SANDISK ENTERPRISE IP LLC
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 038295/0225 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 23, 2015
From: ELLIS, ROBERT W.; HIGGINS, JAMES M.; DANCHO, MARK; JONES, RYAN R.
To: SANDISK ENTERPRISE IP LLC
Reel/Frame 034804/0413 →
Continuity (3)
Provisional Application 61985923 · Apr 29, 2014
Provisional Application 62066290 · Oct 20, 2014
Related Publication 20150309752A1 · Oct 29, 2015