Garbage collection with reduced buffer usage
AssigneeMicron Technology, Inc.
InventorsRitesh Tiwari, Giuseppe Cariello
Life of this patent
Estimating the term…
Abstract
Various embodiments described herein provide for performing garbage collection with reduced buffer usage on a memory system. In particular, various embodiments use program suspend and program resume during garbage collection to facilitate performance of the garbage collection using a buffer that is smaller in size than buffers used during conventional garbage collection processes.
Claims20
A system comprising:
- a memory device;
- local memory;
- and
- a processing device, operatively coupled to the memory device and the local memory, configured to perform operations comprising:
- starting a garbage collection process on the memory device;
- and
- during the garbage collection process:
- determining whether data currently stored in a set of page buffers of the memory device is ready to be written to a set of pages by a program operation, the set of page buffers storing first valid data from a first set of source blocks of the memory device, the set of pages being part of a set of destination blocks available on the memory device;
- and
- in response to determining that the data currently stored in the set of page buffers is not ready to be written to the set of pages by the program operation, performing an iteration of operations comprising:
- performing a program suspend that causes the data currently stored in the set of page buffers to be temporarily moved outside of the set of page buffers;
- reading additional valid data from an additional set of source blocks of the memory device such that the additional valid data is stored to a buffer allocated on the local memory;
- performing a program resume that causes temporarily moved data to be moved back to the set of page buffers;
- and
- transferring the additional valid data from the buffer to the set of page buffers of the memory device.
At least one non-transitory machine-readable storage medium comprising instructions that, when executed by a processing device of a memory sub-system, cause the processing device to perform operations comprising:
- starting a garbage collection process on a memory device of the memory sub-system;
- and
- during the garbage collection process:
- determining whether data currently stored in a set of page buffers of the memory device is ready to be written to a set of pages by a program operation, the set of page buffers storing first valid data from a first set of source blocks of the memory device, the set of pages being part of a set of destination blocks available on the memory device;
- and
- in response to determining that the data currently stored in the set of page buffers is not ready to be written to the set of pages by the program operation, performing an iteration of operations comprising:
- performing a program suspend that causes the data currently stored in the set of page buffers to be temporarily moved outside of the set of page buffers;
- reading additional valid data from an additional set of source blocks of the memory device such that the additional valid data is stored to a buffer allocated on local memory of the memory sub-system;
- performing a program resume that causes temporarily moved data to be moved back to the set of page buffers;
- and
- transferring the additional valid data from the buffer to the set of page buffers of the memory device.
A method comprising:
- starting a garbage collection process on a memory device of a memory sub-system;
- and
- during the garbage collection process:
- reading first valid data, from a first set of source blocks of the memory device, to a buffer allocated on local memory of the memory sub-system;
- transferring the first valid data from the buffer to a set of page buffers of the memory device;
- determining that data currently stored in the set of page buffers is not ready to be written to a set of pages using by a program operation, the set of pages being part of a set of destination blocks available on the memory device;
- and
- in response to determining that the data currently stored in the set of page buffers is not ready to be written to the set of pages by the program operation, performing an iteration of operations comprising:
- performing a program suspend that causes the data currently stored in the set of page buffers to be temporarily moved outside of the set of page buffers;
- reading additional valid data from an additional set of source blocks of the memory device such that the additional valid data is stored to the buffer;
- performing a program resume that causes temporarily moved data to be moved back to the set of page buffers;
- and
- transferring the additional valid data from the buffer to the set of page buffers of the memory device.
Dependencies are inferred from the claim text.