IP Library Granted Patent US 11,461,052
Granted Patent B1
US 11,461,052 · App. 17/225,385 · Granted Oct 4, 2022

Storage system with dual submission queue doorbell registers and method for use in a multi-tenant system

Inventor: Shay Benisty (Beer Sheva, IL)
Assignee: Western Digital Technologies, Inc.
G06F3/0659G06F3/061G06F3/0664G06F3/0673G06F9/45558G06F2009/45583
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,461,052
App. No.
17/225,385
Granted
Oct 4, 2022
Kind
B1
Abstract

A storage system has two submission queue doorbell registers associated with a submission queue in a host. The storage system fetches and executes a command from the submission queue only in response to both submission queue doorbell registers being written. The second submission queue doorbell register may be visible (and directly written to) by the host or invisible (and indirectly written to) by the host. The use of two submission queue doorbell registers for a single submission queue can be used as a protection mechanism to protect an administration command submission queue of a child controller in a multiple physical function Non-Volatile Memory Express (NVMe) device (MFND).

Claims (42)

1. A multiple physical function Non-Volatile Memory Express (NVMe) device (MFND) comprising:

a memory; and

a controller comprising first and second submission queue doorbell registers associated with a submission queue in a host;

wherein the controller is configured to:

receive a request from a child host entity to write to the first submission queue doorbell register;

write to the first submission queue doorbell register in response to the request from the child host entity;

receive a request from a parent host entity to write to the second submission queue doorbell register;

attempt to verify that the parent host entity is a parent to the child host entity;

only after verifying that the parent host entity is the parent to the child host entity, write to the second submission queue doorbell register; and

fetch and execute a command from the submission queue in the host only in response to both the first and second submission queue doorbell registers being written.

2. The MFND of claim 1 , wherein the submission queue comprises an administration command submission queue.

3. The MFND of claim 1 , wherein both the first and second submission queue doorbell registers are visible to the host.

4. The MFND of claim 3 , wherein the child host entity comprises a virtual machine.

5. The MFND of claim 3 , wherein the parent host entity comprises a root partition.

6. The MFND of claim 5 , wherein the controller comprises a parent physical function associated with the root partition.

7. The MFND of claim 4 , wherein the controller comprises a child physical function associated with the virtual machine.

8. The MFND of claim 1 , wherein the first submission queue doorbell register is visible to the host but the second submission queue doorbell register is not visible to the host.

9. The MFND of claim 8 , wherein the child host entity comprises a virtual machine.

10. The MFND of claim 8 , wherein the parent host entity comprises a root partition.

11. The of claim 9 , wherein the controller comprises a child physical function associated with the virtual machine.

12. The MFND of claim 10 , wherein the controller comprises a parent physical function associated with.

13. The MFND of claim 1 , wherein the first and second submission queue doorbell registers are in a host interface module in the controller.

14. The MFND of claim 1 , wherein the memory comprises a three-dimensional memory.

15. In a multiple physical function Non-Volatile Memory Express (NVMe) device (MFND) comprising first and second submission queue doorbell registers associated with a submission queue in a host, a method comprising:

receiving a request from a child host entity to write to the first submission queue doorbell register;

writing to the first submission queue doorbell register in response to the request from the child host entity;

receiving a request from a parent host entity to write to the second submission queue doorbell register;

attempting to verify that the parent host entity is a parent to the child host entity;

writing to the second submission queue doorbell register only after verifying that the parent host entity is the parent to the child host entity; and

fetching and executing a command from the submission queue in the host only in response to both the first and second submission queue doorbell registers being written.

16. The method of claim 15 , wherein both the first and second submission queue doorbell registers are visible to the host.

17. The method of claim 16 , wherein the child host entity comprises a virtual machine and the parent host entity comprises a root partition.

18. The method of claim 15 , wherein the first submission queue doorbell register is visible to the host but the second submission queue doorbell register is not visible to the host.

19. The method of claim 18 , wherein the child host entity comprises a virtual machine and the parent host entity comprises a root partition.

20. A multiple physical function Non-Volatile Memory Express (NVMe) device (MFND) comprising:

first and second submission queue doorbell registers associated with a submission queue in a host;

means for receiving a request from a child host entity to write to the first submission queue doorbell register;

means for writing to the first submission queue doorbell register in response to the request from the child host entity;

means for receiving a request from a parent host entity to write to the second submission queue doorbell register;

means for attempting; to verify that the parent host entity is a parent to the child host entity;

means for writing to the second submission queue doorbell register only after verifying that the parent host entity is the parent to the child host entity; and

means for fetching and executing a command from the submission queue in the host only in response to both the first and second submission queue doorbell registers being written.

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 - 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 →
RELEASE OF SECURITY INTEREST AT REEL 056285 FRAME 0292 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058982/0001 →
SECURITY INTEREST Recorded May 19, 2021
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 056285/0292 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 9, 2021
From: BENISTY, SHAY
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 055872/0723 →
Cited By (5)
US 12,499,040 US 12,541,451 US 12,619,380 US 12,645,397 US 12,711,057