IP Library Granted Patent US 11,941,295
Granted Patent B2
US 11,941,295 · App. 17/572,917 · Granted Mar 26, 2024

Data storage device and method for providing an adaptive data path

Inventors: Shay Benisty (Beer Sheva, IL); Judah Gamliel Hahn (Ofra, IL); Ariel Navon (Revava, IL)
Assignee: Western Digital Technologies, Inc.
G06F3/0659G06F3/0604G06F3/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,941,295
App. No.
17/572,917
Granted
Mar 26, 2024
Kind
B2
Abstract

A data storage device and method for providing an adaptive data path are disclosed. In one embodiment, a data storage device is in communication with a host comprising a first processor (e.g., a graphics processing unit (GPU)), a second processor (e.g., a central processing unit (CPU)), and a queue. The data storage device chooses a data path to use to communicate with the queue based on whether the queue is associated with the first processor or with the second processor. Other embodiments are possible, and each of the embodiments can be used alone or together in combination.

Claims (40)

1. A data storage device comprising:

an interface configured to communicate with a host comprising a central processing unit (CPU), a graphics processing unit (GPU), and a plurality of submission queues;

a memory; and

one or more processors configured to communicate with the interface and the memory and further configured to:

classify each submission queue of the plurality of submission queues as either a CPU queue or a GPU queue;

determine a data path for a transmission to one submission queue of the plurality of submission queues based on whether the one submission queue is classified as a CPU queue or as a GPU queue; and

determine a maximum packet size and/or a maximum read request size based on whether the one submission queue is classified as a CPU queue or as a GPU queue.

2. The data storage device of claim 1 , wherein each submission queue is classified by its address range.

3. The data storage device of claim 1 , wherein the host further comprises at least one additional GPU, each GPU with its own data path to the data storage device.

4. The data storage device of claim 1 , wherein there are more switches in a data path from the data storage device to the GPU than there are switches in a data path from the data storage device to the CPU.

5. The data storage device of claim 1 , wherein:

a first data path is used in response to the one submission queue being classified as a CPU queue;

a second data path is used in response to the one submission queue being classified as a GPU queue; and

the first and the second data paths have different latency and/or throughput attributes.

6. The data storage device of claim 1 , wherein the transmission relates to command fetching, physical region pages (PRP) fetching, scatter gather lists (SGL) fetching, data transfer, completion posting, and/or interrupt posting.

7. The data storage device of claim 1 , wherein the one or more processors is further configured to determine a maximum number of outstanding transactions to issue based on whether the one submission queue is classified as a CPU queue or as a GPU queue.

8. The data storage device of claim 1 , wherein the one or more processors is further configured to associate a request from a direct memory access (DMA) engine with the one submission queue.

9. The data storage device of claim 1 , wherein the memory comprises a three-dimensional memory.

10. The data storage device of claim 1 , wherein each submission queue is classified by its creation time.

11. A method comprising:

performing the following in a data storage device in communication with a host comprising a first processor, a second processor, and a queue:

determine whether the queue is associated with the first processor or with the second processor;

in response to determining that the queue is associated with the first processor, select a first data path to the queue;

in response to determining that the queue is associated with the second processor, select a second data path to the queue, wherein the first and the second data paths have different latency and/or throughput attributes; and

determine a maximum packet size, a maximum read request size, and/or a maximum number of outstanding transactions to issue based on whether the queue is associated with the first processor or with the second processor.

12. The method of claim 11 , wherein the first processor comprises a graphics processing unit (GPU) and the second processor comprises a central processing unit (CPU).

13. The method of claim 11 , wherein the determination whether the queue is associated with the first processor or with the second processor is made based on an address range of the queue.

14. The method of claim 11 , wherein the determination whether the queue is associated with the first processor or with the second processor is made based on a creation time of the queue.

15. The method of claim 11 , further comprising sending a transmission on the selected data path, wherein the transmission relates to command fetching, physical region pages (PRP) fetching, and/or scatter gather lists (SGL) fetching.

16. The method of claim 11 , further comprising associating a request from a direct memory access (DMA) engine with the queue.

17. The method of claim 11 , wherein there are more switches in the first data path than there are switches in the second data path.

18. The method of claim 11 , further comprising sending a transmission on the selected data path, wherein the transmission relates to data transfer.

19. The method of claim 11 , further comprising sending a transmission on the selected data path, wherein the transmission relates to completion posting and/or interrupt posting.

20. A data storage device comprising:

an interface configured to communicate with a host comprising a central processing unit (CPU), a graphics processing unit (GPU), and a plurality of submission queues;

a memory; and

means for:

classifying each submission queue of the plurality of submission queues as either a CPU queue or a GPU queue;

determining a data path for a transmission to one submission queue of the plurality of submission queues based on whether the one submission queue is classified as a CPU queue or as a GPU queue; and

determining a maximum number of outstanding transactions to issue based on whether the one submission queue is classified as a CPU queue or as a GPU queue.

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 Jan 11, 2022
From: BENISTY, SHAY; HAHN, JUDAH GAMLIEL; NAVON, ARIEL
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058619/0084 →
Continuity (1)
Related Publication 20230221889A1 · Jul 13, 2023
Cited By (1)
US 12,619,375