IP Library › Granted Patent US 12,182,445
Granted Patent B2
US 12,182,445 · App. 17/886,369 · Granted Dec 31, 2024

NVMe command completion management for host system memory

Inventors: Sahil Soi (Bangalore Urban, IN); Dhananjayan Athiyappan (Bangalore Urban, IN)
Assignee: Micron Technology, Inc.
G06F3/0659G06F3/0619G06F3/0679
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 12,182,445
App. No.
17/886,369
Granted
Dec 31, 2024
Kind
B2
Abstract

A processing device in a memory sub-system identifies an indication of a completion of a memory access command directed to a memory device and determines whether there are other memory access commands directed to the memory device that are pending. Responsive to determining that there are other memory access commands pending, the processing device coalesces additional indications of completions of the other memory access commands that are available within a threshold period of time with the indication of the completion into a completion data chunk and sends the completion data chunk to a host system. The host system is to store the completion data chunk as one or more completion queue entries in a completion queue in a host memory of the host system via a single host memory write operation.

Claims (66)

1. A system comprising:

a memory device; and

a processing device, operatively coupled with the memory device, to perform operations comprising:

identifying an indication of a completion of a memory access command directed to the memory device;

determining whether there are other memory access commands directed to the memory device that are pending;

responsive to determining that there are other memory access commands that are pending and have not yet been completed, waiting for a threshold period of time to expire before sending the indication of the completion to a host system;

responsive to determining that the threshold period of time has expired, coalescing additional indications of completions of the other memory access commands that have since completed and are available with the indication of the completion into a completion data chunk; and

sending the completion data chunk to the host system, the host system to store the completion data chunk as one or more completion queue entries in a completion queue in a host memory of the host system via a single host memory write operation.

2. The system of claim 1 , wherein the processing device is to perform operations further comprising:

responsive to determining that there are no other memory access commands pending, sending the indication of the completion to the host system as a partial completion data chunk, wherein the partial completion data chunk has a smaller size than a host memory write size granularity.

3. The system of claim 1 , wherein the processing device is to perform operations further comprising:

responsive to determining that there are no other memory access commands pending, appending dummy data to the indication of the completion to form a full completion data chunk equal to a host memory write size granularity; and

sending the full completion data chunk comprising the indication of the completion and the dummy data to the host system.

4. The system of claim 1 , wherein the processing device is to perform operations further comprising:

determining whether the indication of the completion of the memory access command or any of the additional indications of the completions of the other memory access commands indicate an error of a corresponding memory access operation; and

responsive to there being an indication of an error, sending the indication of the error to the host system without waiting for the threshold period of time to expire.

5. The system of claim 1 , wherein coalescing the additional indications of completions of the other memory access commands that are available within the threshold period of time into the completion data chunk comprises:

determining whether the threshold period of time has expired; and

responsive to the threshold period of time having expired, sending the completion data chunk to the host system, wherein the completion data chunk comprises a partial completion data chunk having a smaller size than a host memory write size granularity.

6. The system of claim 1 , wherein coalescing the additional indications of completions of the other memory access commands that are available within the threshold period of time into the completion data chunk comprises:

determining whether the threshold period of time has expired;

responsive to the threshold period of time having expired, appending dummy data to the additional indications of completions to form a full completion data chunk equal to a host memory write size granularity; and

sending the full completion data chunk comprising the indications of the completions and the dummy data to the host system.

7. The system of claim 5 , wherein coalescing the additional indications of completions of the other memory access commands that are available within the threshold period of time into the completion data chunk comprises:

responsive to the threshold period of time not having expired, determining whether a size of the coalesced indications has reached the host memory write size granularity; and

responsive to determining that the size of the coalesced indications has reached the host memory write size granularity, sending the completion data chunk to the host system, wherein the completion data chunk comprises a full completion data chunk equal to the host memory write size granularity.

8. The system of claim 7 , wherein coalescing the additional indications of completions of the other memory access commands that are available within the threshold period of time into the completion data chunk comprises:

responsive to determining that the size of the coalesced indications has not reached the host memory write size granularity, continuing to coalesce additional indications of completions of the other memory access commands.

9. A method comprising:

identifying an indication of a completion of a memory access command directed to a memory device;

determining whether there are other memory access commands directed to the memory device that are pending;

responsive to determining that there are other memory access commands that are pending and have not yet been completed, waiting for a threshold period of time to expire before sending the indication of the completion to a host system;

responsive to determining that the threshold period of time has expired, coalescing additional indications of completions of the other memory access commands that have since completed and are available with the indication of the completion into a completion data chunk; and

sending the completion data chunk to the host system, the host system to store the completion data chunk as one or more completion queue entries in a completion queue in a host memory of the host system via a single host memory write operation.

10. The method of claim 9 , further comprising:

responsive to determining that there are no other memory access commands pending, sending the indication of the completion to the host system as a partial completion data chunk, wherein the partial completion data chunk has a smaller size than a host memory write size granularity.

11. The method of claim 9 , further comprising:

responsive to determining that there are no other memory access commands pending, appending dummy data to the indication of the completion to form a full completion data chunk equal to a host memory write size granularity; and

sending the full completion data chunk comprising the indication of the completion and the dummy data to the host system.

12. The method of claim 9 , further comprising:

determining whether the indication of the completion of the memory access command or any of the additional indications of the completions of the other memory access commands indicate an error of a corresponding memory access operation; and

responsive to there being an indication of an error, sending the indication of the error to the host system without waiting for the threshold period of time to expire.

13. The method of claim 9 , wherein coalescing the additional indications of completions of the other memory access commands that are available within the threshold period of time into the completion data chunk comprises:

determining whether the threshold period of time has expired; and

responsive to the threshold period of time having expired, sending the completion data chunk to the host system, wherein the completion data chunk comprises a partial completion data chunk having a smaller size than a host memory write size granularity.

14. The method of claim 9 , wherein coalescing the additional indications of completions of the other memory access commands that are available within the threshold period of time into the completion data chunk comprises:

determining whether the threshold period of time has expired;

responsive to the threshold period of time having expired, appending dummy data to the additional indications of completions to form a full completion data chunk equal to a host memory write size granularity; and

sending the full completion data chunk comprising the indications of the completions and the dummy data to the host system.

15. The method of claim 13 , wherein coalescing the additional indications of completions of the other memory access commands that are available within the threshold period of time into the completion data chunk comprises:

responsive to the threshold period of time not having expired, determining whether a size of the coalesced indications has reached the host memory write size granularity; and

responsive to determining that the size of the coalesced indications has reached the host memory write size granularity, sending the completion data chunk to the host system, wherein the completion data chunk comprises a full completion data chunk equal to the host memory write size granularity.

16. The method of claim 15 , wherein coalescing the additional indications of completions of the other memory access commands that are available within the threshold period of time into the completion data chunk comprises:

responsive to determining that the size of the coalesced indications has not reached the host memory write size granularity, continuing to coalesce additional indications of completions of the other memory access commands.

17. A system comprising:

a memory device; and

a processing device, operatively coupled with the memory device, to perform operations comprising:

identifying an indication of a completion of a memory access command directed to the memory device;

determining whether there are other memory access commands directed to the memory device that are pending;

responsive to determining that there are other memory access commands pending, determining whether a size of the indication of the completion is smaller than a host memory write size granularity;

responsive to determining that the size of the indication of the completion is smaller than the host memory write size granularity, appending dummy data to the indication of the completion to form a full completion data chunk; and

sending the full completion data chunk comprising the indication of the completion and the dummy data to a host system.

18. The system of claim 17 , wherein the host system is to store the full completion data chunk as one or more completion queue entries in a completion queue in a host memory of the host system via a single host memory write operation.

19. The system of claim 18 , where the full completion data chunk is equal to a host memory write size granularity of the host memory.

20. The system of claim 19 , wherein the processing device is to perform operations further comprising:

responsive to determining that the size of the indication of the completion is not smaller than the host memory write size granularity, sending the indication of the completion to the host system as a full completion data chunk equal to the host memory write size granularity.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2022
From: SOI, SAHIL; ATHIYAPPAN, DHANANJAYAN
To: MICRON TECHNOLOGY, INC.
Reel/Frame 060789/0575 →
Priority Claims (1)
IN 202141061856 · Dec 30, 2021 · national
Continuity (1)
Related Publication 20230214157A1 · Jul 6, 2023