IP Library Granted Patent US 11,550,477
Granted Patent B2
US 11,550,477 · App. 17/318,259 · Granted Jan 10, 2023

Processing host write transactions using a non-volatile memory express controller memory manager

Inventor: Shay Benisty (Beer Sheva, IL)
Assignee: Western Digital Technologies, Inc.
G06F3/061G06F3/065G06F3/0659G06F3/0679G06F12/128G06F13/1668G06F13/4282G06F13/4295G06F2212/621G06F2213/0026
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,550,477
App. No.
17/318,259
Granted
Jan 10, 2023
Kind
B2
Abstract

Embodiments of the present disclosure generally relate to an NVMe storage device having a controller memory manager and a method of accessing an NVMe storage device having a controller memory manager. In one embodiment, a storage device comprises a non-volatile memory, a volatile memory, and a controller memory manager. The controller memory manager is operable to store one or more NVMe data structures within the non-volatile memory and the volatile memory.

Claims (55)

1. A method of accessing a storage device, comprising:

receiving a host write transaction classified as a non-volatile memory express (NVMe) data buffer access;

determining whether the host write transaction is directed to a persistent memory region (PMR) of the storage device; and

in response to a determination that the host write transaction is directed to the PMR, storing a duplicate copy of the host write transaction to a non-volatile memory of the storage device in a background operation.

2. The method of claim 1 , further comprising:

determining whether the host write transaction is deeply queued in a submission queue; and

in response to a determination that the host write transaction is deeply queued in the submission queue, storing the host write transaction in a dynamic random access memory (DRAM) of the storage device.

3. The method of claim 2 , further comprising waiting for prior commands in the submission queue to be executed prior to executing the host write transaction.

4. The method of claim 1 , further comprising:

determining whether the host write transaction is deeply queued in a submission queue; and

in response to a determination that the host write transaction is not deeply queued in the submission queue, storing the host write transaction in an available space in a static random access memory (SRAM) of the storage device.

5. The method of claim 4 , further comprising copying the host write transaction to the non-volatile memory of the storage device.

6. The method of claim 5 , further comprising releasing the host write transaction from the SRAM.

7. The method of claim 5 , further comprising:

copying the host write transaction to a dynamic random access memory (DRAM); and

releasing the host write transaction from the SRAM.

8. The method of claim 1 , further comprising:

determining whether the host write transaction is deeply queued in a submission queue;

determining whether there is available space in a static random access memory (SRAM) of the storage device; and

in response to a determination that the host write transaction is not deeply queued in the submission queue and a determination that there is no available space in the SRAM, storing the host write transaction in a dynamic random access memory (DRAM) of the storage device.

9. The method of claim 1 , further comprising:

determining whether a power cycle request has been received; and

in response to a determination that a power cycle request has been received, not performing an additional store operation of the duplicate copy of the host write transaction.

10. The method of claim 1 , further comprising:

determining that the host write transaction is a long burst; and

classifying the host write transaction as the NVMe data buffer access.

11. A storage device, comprising:

a memory device; and

a controller coupled to the memory device, wherein a controller buffer manager is disposed in the controller, and wherein the controller buffer manager is configured to:

classify a host write transaction as a non-volatile memory express (NVMe) data buffer access;

determine that the host write transaction is directed to a persistent memory region (PMR) of the storage device; and

store a duplicate copy of the host write transaction in the memory device in a background operation.

12. The storage device of claim 11 , wherein the PMR is disposed in either:

static random access memory (SRAM);

dynamic random access memory (DRAM);

the memory device; or

a combination of the SRAM, the DRAM, and the memory device.

13. The storage device of claim 11 , wherein the memory device is non-volatile memory.

14. The storage device of claim 11 , wherein the controller buffer manager is further configured to determine whether a static random access memory (SRAM) is:

full;

almost full;

almost empty; or

empty.

15. The storage device of claim 14 , wherein the controller buffer manager is further configured to store the host write transaction in dynamic random access memory (DRAM) when the SRAM is full.

16. The storage device of claim 14 , wherein the controller buffer manager is further configured to store the host write transaction in the SRAM when the SRAM is almost full, almost empty, or empty.

17. The storage device of claim 11 , wherein the controller buffer manager is further configured to determine whether write data associated with the host write transaction is deeply queued in a submission queue.

18. The storage device of claim 11 , wherein the controller buffer manager is further configured to store the write data in dynamic random access memory (DRAM) responsive to the write data associated with the host write transaction being deeply queued in a submission queue.

19. The storage device of claim 11 , wherein the controller buffer manager is further configured to store the write data in static random access memory (SRAM) responsive to the write data associated with the host write transaction being not deeply queued in a submission queue.

20. A storage device, comprising:

memory means; and

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

determine that a host write transaction is a non-volatile memory express (NVMe) data buffer access;

determine that the host write transaction is directed to a persistent memory region (PMR) of the storage device;

store a duplicate copy of the host write transaction in the memory means during a background operation; and

store write data associated with the host write transaction in either static random access memory (SRAM) or dynamic random access memory (DRAM) based on a location of the write data in a submission queue and based on an availability of space in the SRAM.

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 May 12, 2021
From: BENISTY, SHAY
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 056223/0216 →