IP Library Granted Patent US 9,582,211
Granted Patent B2
US 9,582,211 · App. 14/572,619 · Granted Feb 28, 2017

Throttling command execution in non-volatile memory systems based on power usage

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,582,211
App. No.
14/572,619
Granted
Feb 28, 2017
Kind
B2
Abstract

A method of operation in a non-volatile memory system for deferring, in accordance with a determination to reduce power consumption by the non-volatile memory system, execution of commands in a command queue corresponding to a distinct set of non-volatile memory devices during a respective wait period. In some implementations, the respective wait period for a first distinct set of non-volatile memory devices in at least two distinct sets is at least partially non-overlapping with the respective wait period for a second distinct set of non-volatile memory devices in the at least two distinct sets.

Claims (35)

1. A method of operation in a non-volatile memory system, comprising:

in accordance with a determination to reduce power consumption by the non-volatile memory system, the non-volatile memory system including a plurality of distinct sets of non-volatile memory devices, and the plurality of distinct sets of non-volatile memory devices including a first distinct set of non-volatile memory devices and a second distinct set of non-volatile memory devices:

for each of at least two distinct sets of the plurality of distinct sets of non-volatile memory devices, deferring execution of commands in a command queue corresponding to the distinct set of non-volatile memory devices during a respective wait period;

wherein:

the non-volatile memory system determines the respective wait period for the first distinct set of non-volatile memory devices 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.

2. The method of claim 1 , wherein each of the plurality of distinct sets of non-volatile memory devices comprises a memory channel that includes a corresponding channel controller, and the command queue corresponding to the distinct set of non-volatile memory devices in the memory channel comprises a command queue for the memory channel.

3. The method of claim 2 , wherein a channel controller for a respective memory channel determines whether to defer execution of commands in the command queue for the respective memory channel in accordance with an external signal received by the channel controller.

4. The method of claim 1 , wherein the non-volatile memory system includes M memory channels, each memory channel comprising a distinct set of non-volatile memory devices having a corresponding command queue, the method including:

restarting execution of commands in command queues of the M memory channels at M distinct staggered start times, where M is an integer greater than 1.

5. The method of claim 4 , wherein each memory channel of the M memory channels further comprises a channel controller configured to receive an external signal and to defer execution of commands in the command queue corresponding to the memory channel in accordance with the external signal.

6. The method of claim 4 , wherein each of the M distinct staggered start times corresponds to an end of a wait period for a corresponding memory channel, wherein the wait periods for the M memory channels have staggered end times corresponding to said M distinct start times.

7. The method of claim 1 , wherein the non-volatile memory system includes M memory channels, where M is an integer greater than 1, each memory channel comprising a distinct set of non-volatile memory devices having a corresponding command queue and wait period, wherein the wait period for each memory channel of the M memory channels repeats in accordance with a duty cycle corresponding to a priority of the memory channel.

8. The method of claim 1 , wherein the non-volatile memory system includes M memory channels, where M is an integer greater than 1, each memory channel comprising a distinct set of non-volatile memory devices having a corresponding command queue and wait period, wherein the wait period for each memory channel of the M memory channels has a duration based at least in part on a priority of the corresponding memory channel.

9. The method of claim 1 , including:

obtaining a power measurement corresponding to power consumption by a subsystem, wherein the subsystem includes the plurality of distinct sets of non-volatile memory devices; and

making said determination to reduce power consumption by the non-volatile memory system in accordance with the obtained power measurement and one or more power thresholds.

10. The method of claim 9 , wherein the obtained power measurement is a measure of instantaneous power consumption by the subsystem.

11. The method of claim 9 , wherein obtaining the power measurement is in accordance with a power measurement frequency.

12. The method of claim 9 , wherein the power measurement is received from a device external to the non-volatile memory system.

13. The method of claim 1 , including, overriding the deferred execution of commands in a respective command queue corresponding to a distinct set of non-volatile memory devices of the plurality of distinct sets of non-volatile memory devices.

14. The method of claim 13 , wherein overriding the deferred execution of commands in the respective command queue is based at least in part on a priority of the corresponding distinct set of non-volatile memory devices.

15. The method of claim 13 , wherein overriding the deferred execution of commands in the respective command queue is based at least in part on a priority of one or more of the commands in the respective command queue.

16. A memory system, comprising:

a plurality of distinct sets of non-volatile memory devices, the plurality of distinct sets of non-volatile memory devices including a first distinct set of non-volatile memory devices and a second distinct set of non-volatile memory devices;

execution deferral means, for each of at least two distinct sets of the plurality of distinct sets of non-volatile memory devices, for deferring execution of commands in a command queue corresponding to the distinct set of non-volatile memory devices during a respective wait period;

means for enabling the execution deferral means, for each of at least two distinct sets of the plurality of distinct sets of non-volatile memory devices, in accordance with a determination to reduce power consumption by the memory system; and

means for determining the wait period for each of the plurality of distinct sets of non-volatile memory devices in accordance with a requirement 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.

17. A memory system, comprising:

a plurality of distinct sets of non-volatile memory devices, the plurality of distinct sets of non-volatile memory devices including a first distinct set of non-volatile memory devices and a second distinct set of non-volatile memory devices;

a plurality of channel controllers, each channel controller corresponding to a respective set of the plurality of distinct sets of non-volatile memory devices, each channel controller configured to defer execution of commands in a command queue corresponding to the distinct set of non-volatile memory devices during a respective wait period; and

an apparatus of the memory system configured to determine the wait period for each of the plurality of distinct sets of non-volatile memory devices in accordance with a requirement 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.

18. The memory system of claim 17 , wherein each of the plurality of distinct sets of non-volatile memory devices comprises a memory channel that includes a corresponding channel controller, and the command queue corresponding to the distinct set of non-volatile memory devices in the memory channel comprises a command queue for the memory channel.

19. The memory system of claim 18 , wherein a channel controller for a respective memory channel is configured to defer execution of commands in the command queue for the respective memory channel in accordance with an external signal received by the channel controller.

20. The memory system of claim 17 , wherein the memory system includes M memory channels, each memory channel comprising a distinct set of non-volatile memory devices having a corresponding command queue, and the apparatus for determining the wait period for each of the plurality of distinct sets of non-volatile memory devices is configured to restart execution of commands in command queues of the M memory channels at M distinct staggered start times, where M is an integer greater than 1.

21. The memory system of claim 20 , wherein each memory channel of the M memory channels further comprises a channel controller configured to receive an external signal and to defer execution of commands in the command queue corresponding to the memory channel in accordance with the external signal.

Assignments (10)
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 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT (AR) Recorded May 15, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 067417/0329 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2024
From: SANDISK TECHNOLOGIES LLC
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 066114/0298 →
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
To: SANDISK ENTERPRISE IP LLC
Reel/Frame 034804/0416 →