IP Library Granted Patent US 12,164,807
Granted Patent B2
US 12,164,807 · App. 17/717,707 · Granted Dec 10, 2024

Speculative command processing interface in storage systems

Inventor: Ramanathan Muthiah (Bangalore, IN)
Assignee: Sandisk Technologies, Inc.
G06F3/0659G06F3/0607G06F3/0656G06F3/0679G06F9/3005G06F9/3842
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,164,807
App. No.
17/717,707
Granted
Dec 10, 2024
Kind
B2
Abstract

Systems and methods are disclosed for providing speculative command processing. In certain embodiments, a data storage device includes a non-volatile memory, a buffer, and a controller configured to: receive one or more actual requests for data from one or more hosts, wherein an actual request is associated with data confirmed to be required by an application on a host; receive one or more speculative requests for data from the one or more hosts, wherein a speculative request is associated with data that has not been confirmed to be required by an application on a host; process the one or more actual requests prior to the one or more speculative requests; and in response to determining that resources are available after processing the one or more actual requests, perform preprocessing for the one or more speculative requests.

Claims (61)

1. A data storage device comprising:

a non-volatile memory;

a buffer; and

one or more processors, individually or in combination, configured to:

receive one or more actual requests for data from one or more hosts, wherein an actual request is associated with data confirmed to be required by an application on a host;

receive one or more speculative requests for data from the one or more hosts, wherein a speculative request is associated with data that has not been confirmed to be required by an application on a host;

process the one or more actual requests prior to the one or more speculative requests;

in response to determining that resources are available after processing the one or more actual requests, perform preprocessing for the one or more speculative requests, wherein the performing preprocessing for the one or more speculative requests comprises:

performing prefetching for data associated with a first speculative request from the non-volatile memory; and

loading the prefetched data into the buffer;

receive a notification from a host associated with the first speculative request that the first speculative request has been confirmed by a corresponding application; and

send the prefetched data in the buffer to the host associated with the first speculative request.

2. The data storage device of claim 1 , wherein the one or more processors, individually or in combination, are further configured to, in response to determining that resources are available after the performing preprocessing for the one or more speculative requests, perform one or more data storage device speculative techniques.

3. The data storage device of claim 2 , wherein the one or more data storage device speculative techniques include one or more of: read look ahead (RLA) or machine learning.

4. The data storage device of claim 2 , wherein the one or more processors, individually or in combination, are further configured to rank the one or more actual requests, the one or more speculative requests, and the one or more data storage device speculative techniques based on a type of request.

5. The data storage device of claim 1 , wherein the performing preprocessing for the one or more speculative requests further comprises:

obtaining a logical-to-physical (L2P) table or page relating to logical addresses for the data associated with the first speculative request; and

converting the logical addresses to physical addresses based on the L2P table or page.

6. The data storage device of claim 1 , wherein the one or more processors, individually or in combination, are further configured to convert the first speculative request to an actual request in response to the first speculative request being confirmed by the corresponding application.

7. The data storage device of claim 1 , wherein the one or more processors, individually or in combination, are further configured to:

receive a notification from the host associated with the first speculative request that the first speculative request has been canceled by the corresponding application; and

thrash the prefetched data in the buffer.

8. The data storage device of claim 1 , wherein the one or more processors, individually or in combination, are further configured to:

determine that the first speculative request has not been confirmed by the corresponding application within a specified period of time; and

thrash the prefetched data in the buffer.

9. The data storage device of claim 1 , wherein the one or more processors, individually or in combination, are further configured to receive a plurality of speculative requests from an application on a host that are associated with logical data that is not sequential to each other.

10. The data storage device of claim 1 , wherein the one or more processors, individually or in combination, are further configured to store the one or more actual requests and the one or more speculative requests in separate queues.

11. The data storage device of claim 1 , wherein the one or more processors, individually or in combination, are further configured to store the one or more actual requests and the one or more speculative requests in the same queue, and each request is configured to include a flag or metadata indicating whether the request is an actual request or a speculative request.

12. A computing device comprising:

a memory; and

one or more processors, individually or in combination, configured to:

receive one or more actual requests for data on a data storage device from one or more applications, wherein an actual request is associated with data confirmed to be required by an application;

receive one or more speculative requests for data on the data storage device from the one or more applications, wherein a speculative request is associated with data that has not been confirmed to be required by an application, wherein a plurality of speculative requests from an application on a host are configured to be associated with logical data that is not sequential to each other;

send the one or more actual requests to the data storage device;

send the one or more speculative requests to the data storage device; and

in response to determining that a speculative request has been confirmed by an application, send a notification to the data storage device.

13. The computing device of claim 12 , wherein the one or more processors, individually or in combination, are further configured to, in response to determining that a speculative request has been canceled by an application, send a notification to the data storage device.

14. The computing device of claim 12 , wherein the computing device includes a driver configured to interface with the one or more applications and to consolidate the one or more actual requests and the one or more speculative requests.

15. A data storage device comprising:

a non-volatile memory;

a buffer; and

controller means configured to:

receive one or more actual requests for data from one or more hosts, wherein an actual request is associated with data confirmed to be required by an application on a host;

receive one or more speculative requests for data from the one or more hosts, wherein a speculative request is associated with data that has not been confirmed to be required by an application on a host;

process the one or more actual requests prior to the one or more speculative requests;

in response to determining that resources are available after processing the one or more actual requests, perform preprocessing for the one or more speculative requests, wherein the performing preprocessing for the one or more speculative requests comprises:

performing prefetching for data associated with a first speculative request from the non-volatile memory; and

loading the prefetched data into the buffer;

receive a notification from a host associated with the first speculative request that the first speculative request has been confirmed by a corresponding application; and

send the prefetched data in the buffer to the host associated with the first speculative request.

16. The data storage device of claim 15 , wherein the controller means is further configured to:

receive a notification from the host associated with the first speculative request that the first speculative request has been canceled by the corresponding application; and

thrash the prefetched data in the buffer.

17. The data storage device of claim 15 , wherein the performing preprocessing for the one or more speculative requests further comprises:

obtaining a logical-to-physical (L2P) table or page relating to logical addresses for the data associated with the first speculative request; and

converting the logical addresses to physical addresses based on the L2P table or page.

18. The data storage device of claim 15 , wherein the controller means is further configured to convert the first speculative request to an actual request in response to the first speculative request being confirmed by the corresponding application.

19. The data storage device of claim 15 , wherein the controller means is further configured to:

determine that the first speculative request has not been confirmed by the corresponding application within a specified period of time; and

thrash the prefetched data in the buffer.

20. The data storage device of claim 15 , wherein the controller means is further configured to receive a plurality of speculative requests from an application on a host that are associated with logical data that is not sequential to each other.

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 Apr 11, 2022
From: MUTHIAH, RAMANATHAN
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059563/0559 →
Continuity (1)
Related Publication 20230325117A1 · Oct 12, 2023