Flash Memory Controller Garbage Collection Operations Performed Independently In Multiple Flash Memory Groups
AssigneeSanDisk Enterprise IP LLC
InventorsAaron K. Olbrich, Douglas A. Prins
Life of this patent
Estimating the term…
Abstract
A flash memory controller connected to multiple flash memory groups performs independent garbage collection operations in each group. For each group, the controller independently determines the amount of free space and performs garbage collection operations if the amount falls below a threshold.
Claims25
A method of performing garbage collection operations in a system comprising a flash memory controller and a flash memory module made up of at least four groups of flash memory devices each having a plurality of flash memory areas, including performing for each of the groups of flash memory devices the following steps:
- providing a table associated with each group of flash memory devices including an erase count for each flash memory area in the plurality of flash memory areas and a defect count for each flash memory area in the plurality of flash memory areas;
- determining the number of flash memory areas that do not contain valid data;
- if the number is equal to or less than a first threshold, setting an indicator to a first state;
- when the indicator is in the first state, copying data from a first flash memory area to a second flash memory area and erasing the first flash memory area, the first flash memory area and the second flash memory area each being associated with the group of memory devices;
- and
- incrementing the erase count associated with the first flash memory area and updating the table associated with the group of flash memory devices.
A flash memory controller connected to a group of flash memory-devices, the controller storing computer executable instructions, the controller storing a table associated with each group of flash memory devices including an erase count for each memory area in a plurality of memory areas and a defect count for each flash memory area in a plurality of flash memory areas;
- the computer executable instructions comprising:
- a first set of instructions stored in a first memory, the first set of instructions including
- instructions to check the number of free memory areas in a first subgroup of flash memory devices and, if the number is below a threshold, trigger a first set of garbage collection instructions, the first set of garbage collection instructions including
- instructions to select a first memory area from the first subgroup of flash memory devices and copy the valid data from the first memory area to a first volatile memory within the flash memory controller;
- and
- instructions to copy the valid data from the first volatile memory to a second memory area from the first subgroup of flash memory devices;
- and
- instructions to erase at least a portion of the first memory area, and update the table stored for the group of flash memory devices;
- and
- second programming stored in a second memory, the second programming including
- instructions to check the number of free memory areas in a second subgroup of flash memory devices and, if the number is below a threshold, trigger second garbage collection programming, the second garbage collection programming including
- instructions to select a third memory area from the second subgroup of flash memory devices and copy the valid data from the third memory area to a second volatile memory within the flash memory controller;
- instructions to copy the valid data from the second volatile memory to a fourth memory area from the second subgroup of flash memory devices, and
- instructions to erase at least a portion of the third memory area.
Dependencies are inferred from the claim text.