IP Library Granted Patent US 11,561,735
Granted Patent B2
US 11,561,735 · App. 17/349,598 · Granted Jan 24, 2023

Latency on indirect admin commands

Inventors: Amir Segev (Meiter, IL); Shay Benisty (Beer Sheva, IL); David Meyer (Lakewood, CO)
Assignee: Western Digital Technologies, Inc.
G06F3/0659G06F3/0611G06F3/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,561,735
App. No.
17/349,598
Granted
Jan 24, 2023
Kind
B2
Abstract

A data storage device includes a memory device and a controller coupled to the memory device. The controller is configured to receive a parent physical function (PF), receive one or more child PFs, determine whether any part of a first child command of a first child PF of the one or more child PFs can be executed prior to receiving approval from the parent PF, and start executing the first child command. The controller is further configured to initialize an indirect queue, set fetching pointers of the indirect queue to the first child command, mimic a doorbell for the first child command, fetch the first child command, determine whether the first child command has started execution by a child PF flow, and complete the first child command.

Claims (54)

1. A data storage device, comprising:

a memory device; and

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

receive a parent physical function (PF);

receive one or more child PFs;

fetch a first child command of a first child PF of the one or more child PFs from a child submission queue;

mark a command arrival time for the first child command;

place the first child command in a command pool;

determine whether any part of the first child command of the first child PF of the one or more child PFs can be executed prior to receiving approval from the parent PF; and

start executing the first child command.

2. The data storage device of claim 1 , wherein the controller is further configured to determine whether the first child command has been executed by a parent PF command.

3. The data storage device of claim 1 , wherein the controller is further configured to pull the first child command out of the command pool.

4. The data storage device of claim 1 , wherein the controller is further configured to receive an approval to execute the first child command after starting to execute the first child command.

5. The data storage device of claim 1 , wherein the controller is further configured to complete execution of the first child command prior to receiving approval to execute the first child command.

6. The data storage device of claim 5 , wherein the controller is further configured to withhold sending a completion message to a host regarding the first child command until after receiving the approval to execute the first child command.

7. A data storage device, comprising:

a memory device; and

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

receive a parent physical function (PF);

receive one or more child PFs;

determine whether the first child command has been executed by a parent PF flow;

determine whether any part of a first child command of a first child PF of the one or more child PFs can be executed prior to receiving approval from the parent PF; and

start executing the first child command.

8. The data storage device of claim 7 , wherein the controller is further configured to determine whether the first child command has been approved after determining that the first child command has been executed by the parent PF flow.

9. A data storage device, comprising:

a memory device; and

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

receive a parent physical function (PF);

receive one or more child PFs;

determine whether a first child command of a first child PF of the one or more child PFs is approved by the parent PF, wherein the first child command is fetched from a child submission queue;

initialize an indirect queue, wherein the initialized indirect queue comprises:

the first child command and first child command pointers, wherein:

the first child command pointers point to the child submission queue; and

the child submission queue comprises the first child command; and

second command pointers, wherein the second command pointers point to a different location than the first child command pointers;

set fetching pointers of the indirect queue to the first child command;

mimic a doorbell for the first child command;

fetch the first child command;

determine whether the first child command has started execution by a child PF flow; and

complete the first child command.

10. The data storage device of claim 9 , wherein the controller is further configured to determine that the first child command has already started execution by the child PF flow.

11. The data storage device of claim 10 , wherein the controller is further configured to continue to execute the first child command.

12. The data storage device of claim 9 , wherein the first child command is fetched from a child submission queue.

13. The data storage device of claim 9 , wherein the controller is further configured to begin executing the first child command prior to the approval.

14. The data storage device of claim 9 , wherein the controller is further configured to fetch the first child command twice.

15. A data storage device, comprising:

memory means; and

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

receive a parent physical function (PF);

receive one or more child PFs;

mark a time of arrival of the first child command and place the first child command into a command pool; and

begin processing a first child command associated with a first child PF of the one or more child PFs, wherein the processing occurs prior to receiving approval from a first parent command of the parent PF.

16. The data storage device of claim 15 , wherein the controller is further configured to determine whether the first child command has started processing, wherein the determining occurs after the approval.

17. The data storage device of claim 15 , wherein the controller is configured to initialize an indirect queue, wherein the indirect queue comprises the first child command a pointers to child submission queue that also comprises the first child command.

Assignments (10)
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 →
RELEASE OF SECURITY INTEREST AT REEL 057651 FRAME 0296 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058981/0958 →
SECURITY INTEREST Recorded Sep 17, 2021
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 057651/0296 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 18, 2021
From: SEGEV, AMIR; BENISTY, SHAY; MEYER, DAVID
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 056582/0517 →
Continuity (1)
Related Publication 20220405011A1 · Dec 22, 2022
Cited By (1)
US 12,572,308