IP Library Granted Patent US 11,768,531
Granted Patent B2
US 11,768,531 · App. 17/565,928 · Granted Sep 26, 2023

Power management for storage controllers

Inventors: Dinesh Matta (Bangalore, IN); Raghu Voleti (Bangalore, IN); Sitaram Banda (Bangalore, IN); Mikael Mortensen (Milpitas, CA)
Assignee: Western Digital Technologies, Inc.
G06F1/324G06F1/08
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 11,768,531
App. No.
17/565,928
Granted
Sep 26, 2023
Kind
B2
Abstract

A storage controller includes a plurality of pipeline stages configured to process data. A system clock signal is received that has a system frequency and at least one performance metric is determined for one or more pipeline stages of the plurality of pipeline stages. A first clock signal is generated having a first frequency for operation of a first pipeline stage of the plurality of pipeline stages. Based at least in part on the at least one determined performance metric, a second clock signal is generated having a second frequency for operation of a second pipeline stage of the plurality of pipeline stages. The second frequency is less than the system frequency and may also differ from the first frequency.

Claims (60)

1. A storage controller, comprising:

a plurality of pipeline stages configured to process data; and

circuitry configured to:

receive a system clock signal having a system frequency;

determine at least one performance metric for one or more pipeline stages of the plurality of pipeline stages;

generate a first clock signal having a first frequency for operation of a first pipeline stage of the plurality of pipeline stages;

based at least in part on the at least one determined performance metric, generate a second clock signal having a second frequency for operation of a second pipeline stage of the plurality of pipeline stages, wherein the at least one determined performance metric indicates at least one of a throughput of commands processed by a previous pipeline stage relative to the second pipeline stage and a throughput of commands processed by a next pipeline stage relative to the second pipeline stage, and

wherein the second frequency is less than the system frequency and differs from the first frequency; and

operate the first pipeline stage at the first frequency using the first clock signal while operating the second pipeline stage at the second frequency using the second clock signal.

2. The storage controller of claim 1 , wherein the at least one performance metric further indicates at least one of an overall throughput of commands processed by the plurality of pipeline stages, a throughput of commands processed by a current pipeline stage, an overall number of pending commands to be processed by the plurality of pipeline stages, a number of pending commands to be processed by the current pipeline stage, a number of pending commands to be processed by the previous pipeline stage, and a number of pending commands to be processed by the next pipeline stage.

3. The storage controller of claim 1 , wherein the at least one performance metric further indicates at least one of a current throughput of processed commands and an average throughput of processed commands.

4. The storage controller of claim 1 , wherein the circuitry is further configured to:

determine that a performance metric for the second pipeline stage does not satisfy a threshold value; and

in response to determining that the performance metric for the second pipeline stage does not satisfy the threshold value, increase the second frequency to the system frequency.

5. The storage controller of claim 1 , wherein the circuitry is further configured to:

determine that an overall performance metric for the plurality of pipeline stages does not satisfy a threshold value; and

in response to determining that the overall performance metric does not satisfy the threshold value, set the frequency for the clock signal for each pipeline stage of the plurality of pipeline stages to the system frequency.

6. The storage controller of claim 1 , wherein the circuitry is further configured to determine the first frequency using a different number of performance metrics than the number of performance metrics used to determine the second frequency.

7. The storage controller of claim 1 , wherein the circuitry is further configured to determine the first frequency using at least one different type of performance metric than a performance metric used to determine the second frequency.

8. The storage controller of claim 1 , wherein the circuitry is further configured to:

decrease the second frequency by a predetermined frequency;

determine a subsequent performance metric after decreasing the second frequency by the predetermined frequency; and

determine whether to further decrease the second frequency by the predetermined frequency based at least in part on the subsequent performance metric.

9. The storage controller of claim 1 , wherein the circuitry is further configured to:

determine that the plurality of pipeline stages is idle; and

in response to determining that the plurality of pipeline stages is idle, reduce the frequency of the clock signal for each pipeline stage of the plurality of pipeline stages by a predetermined frequency.

10. A method for operating a storage controller, the method comprising:

receiving a system clock signal having a system frequency;

determining at least one performance metric for one or more pipeline stages of a plurality of pipeline stages of the storage controller;

generating, based at least in part on the system frequency, a first clock signal having a first frequency for operation of a first pipeline stage of the plurality of pipeline stages;

generating, based at least in part on the at least one determined performance metric, a second clock signal having a second frequency for operation of a second pipeline stage of the plurality of pipeline stages, wherein the at least one determined performance metric indicates at least one of a throughput of commands processed by a previous pipeline stage relative to the second pipeline stage and a throughput of commands processed by a next pipeline stage relative to the second pipeline stage, and

wherein the second frequency differs from the first frequency; and

operating the first pipeline stage at the first frequency using the first clock signal while operating the second pipeline stage at the second frequency using the second clock signal.

11. The method of claim 10 , wherein the at least one performance metric further indicates at least one of an overall throughput of commands processed by the plurality of pipeline stages, a throughput of commands processed by a current pipeline stage, an overall number of pending commands to be processed by the plurality of pipeline stages, a number of pending commands to be processed by the current pipeline stage, a number of pending commands to be processed by the previous pipeline stage, and a number of pending commands to be processed by the next pipeline stage.

12. The method of claim 10 , wherein the at least one performance metric further indicates at least one of a current throughput of processed commands and an average throughput of processed commands.

13. The method of claim 10 , further comprising:

determining that a performance metric for the second pipeline stage does not satisfy a threshold value; and

in response to determining that the performance metric for the second pipeline stage does not satisfy the threshold value, increasing the second frequency to the system frequency.

14. The method of claim 10 , further comprising:

determining that an overall performance metric for the plurality of pipeline stages does not satisfy a threshold value; and

in response to determining that the overall performance metric does not satisfy the threshold value, setting the frequency of the clock signal for each pipeline stage of the plurality of pipeline stages to the system frequency.

15. The method of claim 10 , further comprising determining the first frequency using a different number of performance metrics than the number of performance metrics used to determine the second frequency.

16. The method of claim 10 , further comprising determining the first frequency using at least one different type of performance metric than a performance metric used to determine the second frequency.

17. The method of claim 10 , further comprising:

decreasing the second frequency by a predetermined frequency;

determining a subsequent performance metric after decreasing the second frequency by the predetermined frequency; and

determining whether to further decrease the second frequency by the predetermined frequency based at least in part on the subsequent performance metric.

18. The method of claim 10 , further comprising:

determining that the plurality of pipeline stages is idle; and

in response to determining that the plurality of pipeline stages is idle, reducing the frequency of the clock signal for each pipeline stage of the plurality of pipeline stages by a predetermined frequency.

19. A storage controller, comprising:

a plurality of pipeline stages configured to process data; and

means for:

receiving a system clock signal having a system frequency;

determining at least one performance metric for one or more pipeline stages of the plurality of pipeline stages;

generating a first clock signal having a first frequency for operation of a first pipeline stage of the plurality of pipeline stages;

based at least in part on the at least one determined performance metric, generating a second clock signal having a second frequency for operation of a second pipeline stage of the plurality of pipeline stages, wherein the at least one determined performance metric indicates at least one of a throughput of commands processed by a previous pipeline stage relative to the second pipeline stage and a throughput of commands processed by a next pipeline stage relative to the second pipeline stage, and

wherein the second frequency is less than the system frequency; and

operating the first pipeline stage at the first frequency while operating the second pipeline stage at the second frequency.

20. The storage controller of claim 19 , wherein the second frequency differs from the first frequency.

Assignments (8)
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 - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2021
From: MATTA, DINESH; VOLETI, RAGHU; BANDA, SITARAM; MORTENSEN, MIKAEL
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058508/0205 →