IP Library Granted Patent US 11,836,384
Granted Patent B2
US 11,836,384 · App. 17/654,369 · Granted Dec 5, 2023

Automatic prediction timers adaptation

Inventors: Gadi Vishne (Petach-Tikva, IL); Michal Silbermintz (Tel-Mond, IL); Danny Berler (Tel-Mond, IL)
Assignee: Western Digital Technologies, Inc.
G06F3/0659G06F3/061G06F3/0679
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,836,384
App. No.
17/654,369
Granted
Dec 5, 2023
Kind
B2
Abstract

Data storage devices function by communication between a controller and a memory device over a data bus. The memory device can, at times, be busy. Attempting to communicate with the memory device while the memory device is busy causes delays. Holding back communications when the memory device is not busy causes avoidable delays. Correctly predicting the timing of when the memory device is available will reduce delays. An adaptive prediction timer is used that increases the time between communications if a status check of the memory device returns a busy indication, and decreases the time between communications if the status check returns a not busy indication.

Claims (77)

1. A data storage device, comprising:

a memory device; and

a controller coupled to the memory device via a data bus, wherein the controller is configured to:

set a value for a timer that predicts availability of the memory device;

receive a first command;

send the command for processing to the memory device;

check status of the memory device;

determine the memory device is available; and

decrease the value of the timer, wherein a value of the decrease is equal to a current timer value minus a mean timer value and then divided by 100.

2. The data storage device of claim 1 , wherein decreasing the value of the timer decreases the value by a predetermined amount.

3. The data storage device of claim 1 , wherein the controller is further configured to:

receive a second command;

send the command for processing to the memory device;

check the status of the memory device;

determine the memory device is not available; and

increase the value of the timer.

4. The data storage device of claim 3 , wherein increasing the value of the timer increases the value by a predetermined amount.

5. The data storage device of claim 1 , wherein a plurality of memory devices are coupled to the controller.

6. A data storage device, comprising:

a memory device; and

a controller coupled to the memory device via a data bus, wherein the controller is configured to:

set a value for a timer that predicts availability of the memory device;

receive a first command;

send the command for processing to the memory device;

check status of the memory device;

determine the memory device is available; and

decrease the value of the timer, wherein the controller is further configured to:

receive a second command;

send the command for processing to the memory device;

check the status of the memory device;

determine the memory device is not available; and

increase the value of the timer, wherein determining the memory device is not available incurs a delay to other memory devices using the same data bus.

7. The data storage device of claim 1 , wherein decreasing the value of the timer decreases the value by a calculated amount.

8. A data storage device, comprising:

a memory device; and

a controller coupled to the memory device via a data bus, wherein the controller is configured to:

set a value for a timer that predicts availability of the memory device;

receive a first command;

send the command for processing to the memory device;

check status of the memory device;

determine the memory device is available; and

decrease the value of the timer, wherein decreasing the value of the timer decreases the value by a calculated amount, wherein the calculated amount is a function of a mean of previous timer values.

9. A data storage device, comprising:

a memory device; and

a controller coupled to the memory device via a data bus, wherein the controller is configured to:

set a value for a timer that predicts availability of the memory device;

receive a first command;

send the command for processing to the memory device;

check status of the memory device;

determine the memory device is available; and

decrease the value of the timer, wherein the value of the timer is updated by a flash interface module (FIM) disposed in the controller.

10. A data storage device, comprising:

a memory device; and

a controller coupled to the memory device via a data bus, wherein the controller is configured to:

set a value for a timer that predicts availability of the memory device;

receive a first command;

check status of the memory device;

determine the memory device is not available; and

increase the value of the timer, wherein the controller is further configured to:

determine the memory device is available; and

decrease the value of the timer, wherein increasing and/or decreasing the value of the timer is by a predetermined amount, wherein the predetermined amount is different for the increasing as compared to the decreasing, wherein the predetermined amount for the increasing is about 1 microsecond and the predetermined amount for the decreasing is about 1/x microseconds, where x is a target for late predictions per every early prediction.

11. The data storage device of claim 10 , wherein improved quality of service (QoS) results by decreasing idle time between processing commands.

12. A data storage device, comprising:

memory means;

a controller coupled to the memory means, wherein the controller is configured to:

send commands to the memory means for processing;

coordinate timing of sending the commands to the memory means; and

adaptively adjusting timing of sending the commands based upon determining whether a memory device is busy, wherein the adaptively adjusting timing comprises increasing an amount of time between sending commands upon determining that the memory device is busy and decreasing the amount of time between sending commands upon determining the memory device is not busy, wherein the decreasing comprises decreasing the amount of time by a value equal to:

(current amount of time between sending commands−precalculated expected mean of amounts of time between sending commands)/x, where x is a target for late predictions per every early prediction.

13. The data storage device of claim 12 , wherein the controller is configured to check a status of the memory means prior to sending commands to the memory means; and monitor the status of the memory means after sending commands to the memory means so that a next command can be sent to the memory means as soon as possible.

14. The data storage device of claim 12 , wherein the adaptively adjusting results in a saw tooth-like pattern when using an adaptive prediction.

15. The data storage device of claim 12 , wherein an FIM will update the amount of time based on a failure in a status check.

16. The data storage device of claim 12 , wherein an FIM will update the amount of time based on a success in a status check.

17. The data storage device of claim 16 , wherein the FIM defines an early/late ratio to change a timer.

18. The data storage device of claim 17 , wherein the early/late ratio comprises:

selecting a correct first amount to increase the timer if the status check is successful; and

selecting a correct second amount to decrease the timer if the status check is failed.

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 - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 14, 2022
From: VISHNE, GADI; SILBERMINTZ, MICHAL; BERLER, DANNY
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059257/0442 →
Continuity (1)
Related Publication 20230289093A1 · Sep 14, 2023
Cited By (1)
US 12,670,066