IP Library › Granted Patent US 12,299,322
Granted Patent B1
US 12,299,322 · App. 17/974,410 · Granted May 13, 2025

Elastic buffer for media management of a memory sub-system

Inventor: Antonio David Bianco (Boise, ID)
Assignee: Micron Technology, Inc.
G06F3/0656G06F3/0604G06F3/0659G06F3/0673
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,299,322
App. No.
17/974,410
Granted
May 13, 2025
Kind
B1
Abstract

Methods, systems, and devices for an elastic buffer for a media management operation are described. A plurality of entries associated with a media management operation for a memory sub-system are stored. A first set of one or more write commands associated with the media management operation are buffered using the plurality of entries based on a second set of one or more write commands associated with a host write procedure. The first set of one or more write commands associated with the media management operation are issued based on the plurality of entries and a completion of the second set of one or more write commands associated with the host write procedure.

Claims (52)

1. A method by a memory device, comprising:

generating, by the memory device, a first set of one or more write commands associated with a set of transfer units for one or more media management operations;

identifying, from a plurality of entries, a subset of entries associated with the first set of one or more write commands;

buffering, by storing at a queue, the first set of one or more write commands using the subset of entries based at least in response to receiving, at the queue, a second set of one or more write commands from a host device; and

issuing the first set of one or more write commands based at least in part on the plurality of entries and a completion of the second set of one or more write commands.

2. The method of claim 1 , further comprising:

receiving a first set of one or more read responses corresponding to a second subset of the plurality of entries; and

buffering the first set of one or more write commands based at least in part on the first set of one or more read responses, wherein each of the first set of one or more read responses corresponds to a write command of the first set of one or more write commands.

3. The method of claim 2 , wherein the first set of one or more read responses are received in consecutive order with respect to a read order implicit to the plurality of entries.

4. The method of claim 2 , further comprising:

issuing a first set of one or more read commands; and

receiving the first set of one or more read responses based at least in part on issuing the first set of one or more read commands.

5. The method of claim 1 , further comprising:

updating a current state of operations for the subset of entries based at least in part on the first set of one or more write commands.

6. The method of claim 1 , further comprising:

storing the plurality of entries in a linked list or ring buffer; and

buffering the first set of one or more write commands using the subset of entries in the linked list or ring buffer.

7. The method of claim 1 , wherein the first set of one or more write commands correspond to consecutive entries of the plurality of entries.

8. A system comprising:

a plurality of memory devices; and

one or more controllers coupled with the plurality of memory devices, wherein the one or more controllers are operable to cause the system to:

generate a first set of one or more write commands associated with a set of transfer units for one or more media management operations;

identify, from a plurality of entries, a subset of entries associated with the first set of one or more write commands;

buffer, by storing at a queue, the first set of one or more write commands using the subset of entries based at least in response to receiving, at the queue, a second set of one or more write commands from a host device; and

issue the first set of one or more write commands based at least in part on the plurality of entries and a completion of the second set of one or more write commands.

9. The system of claim 8 , wherein the one or more controllers are further operable to cause the system to:

store a state of operations for the plurality of memory devices as the plurality of entries in a linked list or ring buffer, wherein each entry in the linked list or ring buffer corresponds to one of the plurality of memory devices.

10. The system of claim 9 , wherein the one or more controllers are further operable to cause the system to:

receive a first set of one or more read responses associated with a subset of the plurality of memory devices; and

update the state of operations for the subset of the plurality of memory devices based at least in part on the first set of one or more read responses.

11. The system of claim 10 , wherein the one or more controllers are further operable to cause the system to:

issue a first set of one or more read commands; and

receive the first set of one or more read responses based at least in part on issuing the first set of one or more read commands.

12. The system of claim 8 , wherein the first set of one or more write commands correspond to consecutive entries of the plurality of entries.

13. A non-transitory computer-readable storage medium comprising instructions that, when executed by one or more processors, cause the one or more processors to:

generate a first set of one or more write commands associated with a set of transfer units for one or more media management operations;

identify, from a plurality of entries, a subset of entries associated with the first set of one or more write commands;

buffer, by storing at a queue, the first set of one or more write commands using the subset of entries based at least in response to receiving, at the queue, a second set of one or more write commands from a host device; and

issue the first set of one or more write commands based at least in part on the plurality of entries and a completion of the second set of one or more write commands.

14. The non-transitory computer-readable storage medium of claim 13 , wherein the one or more processors are further to:

receive a first set of one or more read responses, the first set of one or more read responses corresponding to a second subset of the plurality of entries; and

buffer the first set of one or more write commands based at least in part on the first set of one or more read responses, wherein each of the first set of one or more read responses corresponds to a write command of the first set of one or more write commands.

15. The non-transitory computer-readable storage medium of claim 14 , wherein the first set of one or more read responses are received in consecutive order with respect to a read order implicit to the plurality of entries.

16. The non-transitory computer-readable storage medium of claim 14 , wherein the one or more processors are further to:

issue a first set of one or more read commands; and

receive the first set of one or more read responses based at least in part on issuing the first set of one or more read commands.

17. The non-transitory computer-readable storage medium of claim 13 , wherein the one or more processors are further to:

update a state of operations for the subset of entries based at least in part on the first set of one or more write commands.

18. The non-transitory computer-readable storage medium of claim 13 , wherein the one or more processors are further to:

store the plurality of entries in a linked list or ring buffer; and

buffer the first set of one or more write commands using the subset of entries in the linked list or ring buffer.

19. The non-transitory computer-readable storage medium of claim 13 , wherein the first set of one or more write commands correspond to consecutive entries of the plurality of entries.

Continuity (1)
Continuation 16721712 · Dec 19, 2019
References Cited (21)
US 3366945A · Bowman · 1968 [cited by examiner]
US 5488701A · Brady · 1996 [cited by examiner]
US 9558112B1 · Borchers · 2017 [cited by examiner]
US 9575759B2 · Cho · 2017 [cited by examiner]
US 10339046B1 · Hsieh · 2019 [cited by examiner]
US 20050223194A1 · Tremblay · 2005 [cited by examiner]
US 20110252075A1 · Ylonen · 2011 [cited by examiner]
US 20120278530A1 · Ebsen · 2012 [cited by examiner]
US 20170075823A1 · Ward · 2017 [cited by examiner]
US 20170371584A1 · Hsieh · 2017 [cited by examiner]
US 20180088810A1 · Ramalingam · 2018 [cited by examiner]
US 20190087332A1 · Jun · 2019 [cited by examiner]
US 20190147923A1 · Pawlowski · 2019 [cited by applicant]
US 20190354475A1 · Choi · 2019 [cited by examiner]
US 20200117534A1 · Yurzola · 2020 [cited by examiner]
US 20210191646A1 · Bianco · 2021 [cited by examiner]
CN 108874701A · 2018 [cited by applicant]
CN 109800183A · 2019 [cited by applicant]
J. Lee, Y. Kim, G. M. Shipman, S. Oral, F. Wang and J. Kim, “A semi-preemptive garbage collector for solid state drives,” (IEEE ISPASS) IEEE International Symposium on Performance Analysis of Systems and Software, Austi… [cited by examiner]
Liu, Ming Gang. BlueFlash: a reconfigurable flash controller for BlueDBM. Diss. Massachusetts Institute of Technology. (Year: 2014). [cited by applicant]
Chinese patent office, “China Office Action,” issued in connection with China Patent Application No. 202011487210.X dated Nov. 11, 2023 (14 pages) (6 pages of English Translation and 8 pages of Original Document). [cited by applicant]