IP Library Granted Patent US 12,105,574
Granted Patent B2
US 12,105,574 · App. 17/729,854 · Granted Oct 1, 2024

Data storage with real time dynamic clock frequency control

Inventor: Refael Ben-Rubi (Rosh Haayin, IL)
Assignee: Sandisk Technologies, Inc.
G06F1/3268G06F1/324G06F1/08G06F1/3203G06F1/3221G06F1/3225G06F1/3275G06F3/0625G06F3/0656G06F9/546G06F11/3409
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,105,574
App. No.
17/729,854
Granted
Oct 1, 2024
Kind
B2
Abstract

The present disclosure generally relates to ensuring a data storage device consumes as little power as possible. Different HW modules in the data storage device can operate at different frequencies to ensure any bottleneck HW modules operate at as fast a frequency as possible, while non-bottleneck HW modules operate at slower frequencies and hence, consume less power. The frequency for each HW modules is dynamic and is adjusted based upon detected bottlenecks so that the data storage device can operate as efficiently as possible and consume as little power as possible.

Claims (52)

1. A data storage device, comprising:

a memory device; and

a controller coupled to the memory device, wherein the controller comprises a processor programmed to:

identify a bottleneck in one or more hardware (HW) modules of a plurality of HW modules, wherein each HW module of the plurality of HW modules operates at a clock frequency, and wherein the clock frequency is dynamic for each HW module;

change the clock frequency of at least one HW module of the plurality of HW modules, wherein changing the clock frequency comprises:

increasing the clock frequency of a first HW module of the plurality of HW modules; and

setting the clock frequency of a second HW module of the plurality of HW modules to match the changed clock frequency of the first HW module, wherein the second HW module is a sub-module of the first HW module; and

monitor the plurality of HW modules for bottleneck issues.

2. The data storage device of claim 1 , wherein changing the clock frequency further comprises decreasing the clock frequency of a third HW module of the plurality of HW modules.

3. The data storage device of claim 1 , wherein identifying the bottleneck comprises identifying which HW module of the plurality of HW modules has a highest number of messages in an input queue of each HW module of the plurality of HW modules.

4. The data storage device of claim 1 , wherein the processor is further programmed to change the clock frequency of the at least one HW module after the monitoring.

5. The data storage device of claim 1 , wherein the processor is further programmed to repeat the identifying, changing, and monitoring.

6. A data storage device, comprising:

a memory device; and

a controller coupled to the memory device, wherein the controller comprises a processor programmed to:

identify a bottleneck in one or more hardware (HW) modules of a plurality of HW modules, wherein each HW module of the plurality of HW modules operates at a clock frequency, and wherein the clock frequency is dynamic for each HW module;

change the clock frequency of at least one HW module of the plurality of HW modules, wherein, for a HW module of the plurality of HW modules, a percentage change in the clock frequency is equal to a ratio of a current amount of messages in an input queue divided by a maximum number of messages permitted in the input queue; and

monitor the plurality of HW modules for bottleneck issues.

7. A data storage device, comprising:

a memory device; and

a controller coupled to the memory device, wherein the controller comprises a processor programmed to:

identify a bottleneck in one or more hardware (HW) modules of a plurality of HW modules, wherein each HW module of the plurality of HW modules operates at a clock frequency, and wherein the clock frequency is dynamic for each HW module;

change the clock frequency of at least one HW module of the plurality of HW modules, wherein identifying the bottleneck comprises identifying which HW module of the plurality of HW modules has a slowest handling time of one flash memory unit (FMU); and

monitor the plurality of HW modules for bottleneck issues.

8. The data storage device of claim 7 , wherein the processor is further programmed to:

determine a number of messages pending in an input queue of the plurality of HW modules; and

determine which HW module has a smallest amount of messages in the input queue.

9. The data storage device of claim 8 , wherein the processor is further programmed to:

set a clock frequency for a first HW module of the plurality of HW modules to a first clock frequency setting; and

set a clock frequency for a second HW module of the plurality of HW modules to a second clock frequency setting, wherein the second clock frequency setting is lower than the first clock frequency setting.

10. The data storage device of claim 9 , wherein the processor is further programmed to repeat:

the determining the number of messages,

the setting the clock frequency for the first HW module, and

the setting the clock frequency for the second HW module, wherein the repeating occurs after a predetermined period of time.

11. The data storage device of claim 10 , wherein the processor is further programmed to determine a product of the number of messages and a handling time for each operation requested by the message.

12. The data storage device of claim 11 , wherein the first HW module is a HW module with a highest product compared to all other HW modules of the plurality of HW modules.

13. The data storage device of claim 12 , wherein the second HW module is a HW module with a lowest product compared to all other HW modules of the plurality of HW modules.

14. The data storage device of claim 9 , wherein setting the clock frequency for the second HW module comprises lowering the clock frequency of the second HW module by a percentage based on a current number of messages in the input queue divided by a maximum number of messages permitted in the input queue.

15. A data storage device, comprising:

a memory device; and

a controller coupled to the memory device, wherein the controller comprises a processor programmed to:

identify a bottleneck in one or more hardware (HW) modules of a plurality of HW modules, wherein each HW module of the plurality of HW modules operates at a clock frequency, and wherein the clock frequency is dynamic for each HW module;

change the clock frequency of at least one HW module of the plurality of HW modules, wherein identifying the bottleneck comprises identifying which HW module of the plurality of HW modules has a highest number of a product of a number of messages in an input queue of the respective HW module times a processing time for each message in the input queue; and

monitor the plurality of HW modules for bottleneck issues.

16. A data storage device, comprising:

memory means; and

a controller coupled to the memory means, wherein the controller comprises a processor programmed to:

dynamically change a clock frequency of one or more hardware (HW) modules of a plurality of HW modules based upon detected bottlenecking in the plurality of HW modules, wherein dynamically changing the clock frequency comprises:

increasing the clock frequency of a first HW module of the plurality of HW modules; and

setting the clock frequency of a second HW module of the plurality of HW modules to match the changed clock frequency of the first HW module, wherein the second HW module is a sub-module of the first HW module; and

monitor a number of messages in an input queue of each HW module of the plurality of HW modules.

17. The data storage device of claim 16 , wherein the dynamically changing further comprises increasing the clock frequency of a slowest HW module of the plurality of HW modules and another HW module of the plurality of HW modules.

Assignments (8)
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 →
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 May 3, 2022
From: BEN-RUBI, REFAEL
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059797/0644 →
Continuity (1)
Related Publication 20230341921A1 · Oct 26, 2023