Wear-leveling scheme for memory subsystems
AssigneeMicron Technology, Inc.
InventorsSamuel E. Bradshaw, Justin Eno
Life of this patent
Estimating the term…
Abstract
A wear-leveling process for a memory subsystem selects a source chunk to be removed from a usable address space of the memory subsystem to distribute wear across all available chunks in the memory subsystem. The memory subsystem has a plurality of non-volatile memory components. The plurality of non-volatile memory components includes a plurality of chunks including at least one chunk in an unusable address space of the memory subsystem. The wear-leveling process copies valid data of the source chunk to a destination chunk in the unusable address space of the memory subsystem and assigns the destination chunk to a location in the usable address space of the memory subsystem occupied by the source chunk.
Claims20
A method comprising:
- determining that error correction operations for a memory subsystem satisfy a policy trigger threshold;
- in response to determining that error correction operations for the memory subsystem satisfy the policy trigger threshold, selecting a source chunk to be removed from a usable address space of the memory subsystem, the memory subsystem having a plurality of non-volatile memory components, the plurality of non-volatile memory components including a plurality of chunks including multiple chunks in the usable address space and at least one chunk in an unusable address space of the memory subsystem, wherein the source chunk is selected using an address identified by an exchange pointer;
- copying valid data of the source chunk to a destination chunk of a plurality of destination chunks in the unusable address space of the memory subsystem wherein the source chunk is usable and is later rotated back into the usable address space and the destination chunk has a lowest write count of the plurality of destination chunks;
- updating a virtualization table to track assignment of the destination chunk to a location in the usable address space of the memory subsystem occupied by the source chunk;
- and
- updating the exchange pointer by incrementing or decrementing the address by an update value to identify a next source chunk location in the usable address space.
A memory subsystem comprising:
- a plurality of non-volatile memory components, the plurality of non-volatile memory components defining a plurality of chunks including at least one chunk in an unusable address space of the memory subsystem;
- and
- a processor coupled to the plurality of non-volatile memory components, the processor to:
- determine that error correction operations for the memory subsystem satisfy a policy trigger threshold;
- in response to determining that error correction operations for the memory subsystem satisfy the policy trigger threshold, migrate valid data of a first chunk in a usable address space of the memory subsystem to a second chunk of a plurality of destination chunks in the unusable address space of the memory subsystem, wherein the first chunk is selected using an address identified by an exchange pointer, the first chunk is usable and is later rotated back into the usable address space, and the second chunk has a lowest write count of the plurality of destination chunks,
- update mapping information to enable indirect addressing of the data in the second chunk in the usable address space of the memory subsystem, and
- update the exchange pointer by incrementing or decrementing the address by an update value to identify a next source chunk location in the usable address space.
A non-transitory computer-readable storage medium comprising instructions that, when executed by a processing device, cause the processing device to:
- determine that error correction operations for a memory subsystem satisfy a policy trigger threshold;
- in response to determining that error correction operations for the memory subsystem satisfy the policy trigger threshold, select a source chunk to be removed from a usable address space of the memory subsystem, the memory subsystem having a plurality of non-volatile memory components, the plurality of non-volatile memory components including a plurality of chunks including multiple chunks in the usable address space and at least one chunk in an unusable address space of the memory subsystem, wherein the source chunk is selected using an address identified by an exchange pointer;
- copy valid data of the source chunk to a destination chunk of a plurality of destination chunks in the unusable address space of the memory subsystem wherein the source chunk is usable and is later rotated back into the usable address space and the destination chunk has a lowest write count of the plurality of destination chunks;
- update a virtualization table to track assignment of the destination chunk to a location in the usable address space of the memory subsystem occupied by the source chunk;
- and
- update the exchange pointer by incrementing or decrementing the address by an update value to identify a next source chunk location in the usable address space.
Dependencies are inferred from the claim text.