IP Library Granted Patent US 11,656,798
Granted Patent B1
US 11,656,798 · App. 17/457,587 · Granted May 23, 2023

Immediate partial host buffer fetching

Inventors: Shay Benisty (Beer Sheva, IL); Amir Segev (Meiter, IL)
Assignee: Western Digital Technologies, Inc.
G06F3/0659G06F3/0614G06F3/0656G06F3/0673
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,656,798
App. No.
17/457,587
Granted
May 23, 2023
Kind
B1
Abstract

The present disclosure generally relates to improving data transfer in a data storage device. Not only prior to executing a command received from a host device, but even before scheduling the command, the data storage device parses the command and fetches physical region page (PRP) entries and/or scatter-gather list (SGL) entries. The fetching occurs just after receiving the command. Additionally, the host buffer pointers, which are described in PRP or SGL methods, associated with the entries are also fetched prior to scheduling the command. The fetching is a function of device constraints, queue depth, and/or tenant ID in a multi-tenant environment. The immediate fetching of at least part of the host buffers improves device performance, particularly in sequential write or read look ahead (RLA) scenarios.

Claims (42)

1. A data storage device, comprising:

a memory device; and

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

fetch a command from a host device, wherein the command meets a predefined threshold;

parse the command;

fetch entries associated with the command, wherein the entries are host buffer pointers; and

store the fetched entries in a command context with the command and parsing results.

2. The data storage device of claim 1 , wherein the fetching the command, parsing, fetching entries, and storing occurs prior to scheduling the command.

3. The data storage device of claim 1 , wherein the predefined threshold is a size of the command.

4. The data storage device of claim 1 , wherein the predefined threshold is that the command is a non-cached command.

5. The data storage device of claim 1 , wherein the predefined threshold is that the command is a fused command.

6. The data storage device of claim 1 , wherein the controller is further configured to queue the command.

7. The data storage device of claim 6 , wherein the controller is further configured to determine whether the command is associated with a physical region page (PRP) and/or a scatter-gather list (SGL).

8. The data storage device of claim 7 , wherein the determining and the configuring occurs in parallel.

9. The data storage device of claim 1 , wherein fetching the entries comprises fetching up to N physical page region (PRP) entries and/or up to M scatter-gather list (SGL) entries, wherein N>M, wherein a number of fetched entries depends upon one or more of the following: command type including read commands or write commands or copy commands or administrative commands, command size, parsing results, and combinations thereof.

10. The data storage device of claim 1 , wherein the command context comprises a plurality of slots.

11. The data storage device of claim 10 , wherein a slot of the plurality of slots comprises the command, parsing results, and the fetched entries.

12. The data storage device of claim 11 , wherein the fetched entries comprise:

a physical page region (PRP) slot that includes a PRP pointer; and/or

a scatter-gather list (SGL) slot that includes an indication of a type of SGL pointer, an SGL pointer, and a size of the SGL pointer.

13. A data storage device, comprising:

a memory device; and

a controller coupled to the memory device, wherein the controller includes:

a host interface module (HIM);

a command scheduler;

an initial buffer pointer fetcher, wherein the initial buffer pointer fetcher is configured to fetch one or more entries associated with a command prior to scheduling the command, wherein the fetching is a function of queue depth;

a command context; and

one or more processors, wherein the initial buffer pointer fetcher is coupled to the HIM, the command scheduler, the command context, and the one or more processors.

14. The data storage device of claim 13 , wherein the initial buffer pointer fetcher is configured to cease fetching when the queue depth exceeds a predetermined threshold.

15. The data storage device of claim 14 , wherein the queue depth is separately calculated between reads and writes.

16. The data storage device of claim 13 , wherein the command context comprises a plurality of slots and each slot is configured to store a plurality of host buffer pointers.

17. The data storage device of claim 13 , wherein the controller is further configured to fetch host buffers associated with the command prior to scheduling the command.

18. A data storage device, comprising:

memory means; and

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

receive a command from one or more host devices;

parse the command;

fetch physical region page (PRP) and/or scatter-gather list (SGL) pointers associated with the command;

fetch host buffers associated with the pointers, wherein fetching the PRP and/or SGL pointers and fetching the host buffers is a function of host device ID; and

store the fetched host buffers in a command context with the command and parsing results.

19. The data storage device of claim 18 , wherein at least one host device has a different quality of service (QoS) requirement compared to another host device.

20. The data storage device of claim 18 , wherein the command is a sequential write command.

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 3, 2021
From: BENISTY, SHAY; SEGEV, AMIR
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058285/0638 →