IP Library Granted Patent US 10,296,249
Granted Patent B2
US 10,296,249 · App. 15/585,808 · Granted May 21, 2019

System and method for processing non-contiguous submission and completion queues

Inventor: Shay Benisty (Beer Sheva, IL)
Assignee: Western Digital Technologies, Inc.
G06F3/0625G06F1/3287G06F3/0634G06F3/0659G06F3/0688G06F12/0811G06F3/0679G06F2212/283G06F2212/3042
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 10,296,249
App. No.
15/585,808
Granted
May 21, 2019
Kind
B2
Abstract

Systems and methods for processing non-contiguous submission and completion queues are disclosed. Non-Volatile Memory Express (NVMe) implements a paired submission queue and completion queue mechanism, with host software on a host device placing commands into the submission queue. The submission and completion queues may be contiguous or non-contiguous in host device memory. Non-contiguous queues may be defined by a link to a list on the host device that lists the non-contiguous sections in memory. In practice, the memory device stores the list in one type of memory (such as a dynamic random access memory (DRAM) cache) and the link in a different type of memory (such as always-on memory or non-volatile memory). In this way, the link may be accessed in various modes (such as low power mode) in order to recreate the list in DRAM. At least a part of the list of non-contiguous sections may be restored in response to the memory device exiting low power mode, or in response to determining that part or all of the list of noncontiguous sections is corrupted. The list of non-contiguous sections may comprise a list of physical region pages.

Claims (47)

1. A method comprising:

storing, in a first type of memory in a memory device, a link to a list of non-contiguous sections in host memory that defines a non-contiguous queue;

storing part or all of the list of non-contiguous sections in a second type of memory in the memory device, the first type of memory maintaining data therein during at least a part of operation of the memory device in which data is not maintained in the second type of memory;

determining to re-store at least a part of the list of non-contiguous sections; and

in response to determining to re-store the at least a part of the list of non-contiguous sections, re-storing the at least a part of the list of non-contiguous sections by:

accessing the link stored in the first type of memory in the memory device;

using the link to access in the host memory at least a part of the list of non-contiguous sections; and

re-storing the at least a part of the list of non-contiguous sections in the second type of memory.

2. The method of claim 1 , wherein the first type of memory comprises always-on memory.

3. The method of claim 2 , wherein:

the first type of memory maintains the data therein during a low power mode of the memory device; and

the second type of memory does not maintain the data therein during the low power mode of the memory device.

4. The method of claim 1 , wherein:

the first type of memory comprises a first type of cache; and

the second type of memory comprises a second type of cache.

5. The method of claim 1 , wherein the list of non-contiguous sections comprises a list of physical region pages.

6. The method of claim 1 , wherein determining to re-store at least a part of the list of non-contiguous sections is performed in response to the memory device exiting low power mode.

7. The method of claim 1 , wherein determining to re-store at least a part of the list of non-contiguous sections is performed in response to determining that the part or all of the list of non-contiguous sections stored in the second type of memory is corrupted.

8. The method of claim 1 , wherein:

the memory device determines a section of the list of non-contiguous sections stored in the second type of memory that is corrupted; and

re-storing the at least a part of the list of non-contiguous sections comprises re-storing the section of the list of non-contiguous sections that is corrupted.

9. The method of claim 1 , wherein:

storing part or all of the list of non-contiguous sections in the second type of memory comprises storing all of the list of non-contiguous sections in the second type of memory; and

re-storing the at least a part of the list of non-contiguous sections in the second type of memory comprises re-storing all of the list of non-contiguous sections in the second type of memory.

10. The method of claim 1 , wherein the non-contiguous queue is a non-contiguous submission queue.

11. The method of claim 1 , wherein:

the first type of memory comprises non-volatile memory; and

the second type of memory comprises cache.

12. A memory device comprising:

memory comprising a first type of memory and a second type of memory, the first type of memory maintaining data therein during a mode of the memory device and the second type of memory not maintaining data therein during the mode of the memory device; and

a controller in communication with the memory, the controller configured to:

store a link in the first type of memory, the link comprising an address in a host device to a list of non-contiguous sections for a queue;

store part or all of the list of non-contiguous sections in the second type of memory;

determine to enter the mode; and

in response to determining to exit the mode:

use the link stored in the first type of memory to access at least a part of the list of non-contiguous sections for the queue in the host device; and

store the at least a part of the list of non-contiguous sections for the queue in the second type of memory.

13. The memory device of claim 12 , wherein:

the first type of memory comprises always-on memory; and

the second type of memory comprises dynamic random access memory (DRAM).

14. The memory device of claim 13 , wherein the controller is further configured to store all of the list of non-contiguous sections in the DRAM.

15. The memory device of claim 12 , wherein:

the first type of memory comprises non-volatile memory; and

the second type of memory comprises cache memory.

16. The memory device of claim 12 , wherein the mode comprises a low power mode.

17. The memory device of claim 16 , wherein the controller is further configured to access the link in always-on memory to store the list of non-contiguous sections for the queue in dynamic random access memory (DRAM) responsive to the controller determining to exit the low power mode.

18. The memory device of claim 17 , wherein the queue is a submission queue.

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 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 3, 2017
From: BENISTY, SHAY
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 042228/0416 →
Continuity (1)
Related Publication 20180321864A1 · Nov 8, 2018
Cited By (2)
US 12,474,841 US 12,608,159