IP Library › Granted Patent US 12,730,588
Granted Patent B2
US 12,730,588 · App. 18/951,446 · Granted Sep 8, 2026

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,730,588
App. No.
18/951,446
Granted
Sep 8, 2026
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 (63)

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, appending dummy data to additional indications of completions of the other memory access commands that have since completed to form a full completion data chunk equal to a host memory write size granularity; and

sending the full 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, appending the dummy data to the indication of the completion to form the 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.

3 . 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.

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

responsive to there being an indication of an error, 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.

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

coalescing the 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.

6 . 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.

7 . The system of claim 6 , 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.

8 . 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, appending dummy data to additional indications of completions of the other memory access commands that have since completed to form a full completion data chunk equal to a host memory write size granularity; and

sending the full 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.

9 . The method of claim 8 , further comprising:

responsive to determining that there are no other memory access commands pending, appending the dummy data to the indication of the completion to form the 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.

10 . The method of claim 8 , 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.

11 . The method of claim 10 , further comprising:

responsive to there being an indication of an error, 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.

12 . The method of claim 8 , further comprising:

coalescing the 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.

13 . The method of claim 12 , 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.

14 . 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 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.

15 . A non-transitory computer-readable storage medium storing instructions which, when executed by a processing device, cause the processing device to perform operations 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, appending dummy data to additional indications of completions of the other memory access commands that have since completed to form a full completion data chunk equal to a host memory write size granularity; and

sending the full 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.

16 . The non-transitory computer-readable storage medium of claim 15 , wherein the instructions cause the processing device to perform operations further comprising:

responsive to determining that there are no other memory access commands pending, appending the dummy data to the indication of the completion to form the 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.

17 . The non-transitory computer-readable storage medium of claim 15 , wherein the instructions cause the processing device 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.

18 . The non-transitory computer-readable storage medium of claim 17 , wherein the instructions cause the processing device to perform operations further comprising:

responsive to there being an indication of an error, 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.

19 . The non-transitory computer-readable storage medium of claim 15 , wherein the instructions cause the processing device to perform operations further comprising:

coalescing the 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.

20 . The non-transitory computer-readable storage medium of claim 19 , 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.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2024
From: SOI, SAHIL; ATHIYAPPAN, DHANANJAYAN
To: MICRON TECHNOLOGY, INC.
Reel/Frame 069310/0698 →
Priority Claims (1)
IN 202141061856 · Dec 30, 2021 · national
Continuity (2)
Continuation 17886369 · Aug 11, 2022
Related Publication 20250077126A1 · Mar 6, 2025
References Cited (14)
US 9626309B1 · Burke et al. · 2017 [cited by applicant]
US 10528469B2 · Koo et al. · 2020 [cited by applicant]
US 20090157971A1 · Liu et al. · 2009 [cited by applicant]
US 20160034188A1 · Bisht · 2016 [cited by examiner]
US 20170123656A1 · Benisty · 2017 [cited by examiner]
US 20170212800A1 · Sharma et al. · 2017 [cited by applicant]
US 20180018101A1 · Benisty et al. · 2018 [cited by applicant]
US 20180150220A1 · Pandian · 2018 [cited by examiner]
US 20190042149A1 · Kesler · 2019 [cited by examiner]
US 20200150898A1 · Byun · 2020 [cited by examiner]
US 20200304142A1 · Nakanishi et al. · 2020 [cited by applicant]
US 20210165691A1 · Diril et al. · 2021 [cited by applicant]
US 20210181957A1 · Diril et al. · 2021 [cited by applicant]
US 20220091980A1 · Kayiran · 2022 [cited by examiner]