IP Library › Granted Patent US 11,907,123
Granted Patent B2
US 11,907,123 · App. 17/234,897 · Granted Feb 20, 2024

Flash memory garbage collection

Inventors: Robert Edward Galbraith (Rochester, MN); Daniel Frank Moertl (Rochester, MN); Rick A. Weckwerth (Oronoco, MN); Matthew Szekely (Austin, TX)
Assignee: International Business Machines Corporation
G06F12/0804G06F12/0246G06F12/0253G06F2212/7205
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 11,907,123
App. No.
17/234,897
Granted
Feb 20, 2024
Kind
B2
Abstract

Embodiments include methods, systems and computer program products for managing a flash memory device. Aspects include monitoring a percentage of memory of the flash memory device that is in a ready to use state. Aspects also include operating the flash memory device in a first operating mode based on a determination that the percentage is greater than a first threshold value. Aspects further include operating the flash memory device in a second operating mode based on a determination that the percentage has fallen below the first threshold value. Aspects include operating the flash memory device in a third operating mode until the percentage exceeds the first threshold value based on a determination that the percentage has fallen below a second threshold value, which is lower than the first threshold value. The erasing of ready to erase memory block stripes is only performed during the third operating mode.

Claims (80)

1. A method for managing a flash memory device, the method comprising:

monitoring a percentage of memory of the flash memory device that is in a ready to use state, wherein the flash memory device includes a plurality of dies each comprising a plurality of memory block stripes;

based on a determination that the percentage is greater than a first threshold value, operating the flash memory device in a first operating mode;

based on a determination that the percentage has fallen below the first threshold value; operating the flash memory device in a second operating mode; and

based on a determination that the percentage has fallen below a second threshold value, which is lower than the first threshold value, operating the flash memory device in a third operating mode until the percentage exceeds the first threshold value,

maintaining a heat level for each of the plurality of memory block stripes on each of the plurality of dies;

maintaining an operational state of each of the plurality of dies,

identifying one of the plurality of memory block stripes for filling with an data set based on a heat level of the data set, the operational state of plurality of dies and the heat level for each of the plurality of memory block stripes, wherein the one of the plurality of memory block stripes for filling is selected to have a heat level that is equal to the heat level of the data set,

wherein erasing of ready to erase memory block stripes is only performed during the third operating mode, and

wherein the third operating mode includes:

selecting a ready to erase memory block for erasure, wherein the selecting of the ready to erase memory block for erasure includes prioritizing erasure of block stripes located on dies that are not currently being used for a fill operation and selecting a block stripe in a round-robin fashion based on a determination that all dies are currently being used for fill operation;

erasing the selected ready to erase memory block; and

marking the erased memory block as ready to use.

2. The method of claim 1 , wherein the first operating mode includes:

identifying one or more memory block stripes of the flash memory device that exceed a first dirty threshold;

moving valid data from the one or more block stripes to other memory locations in the flash device; and

marking the one or more memory block stripes as ready to erase.

3. The method of claim 2 , wherein the second operating mode includes:

identifying one or more memory block stripes of the flash memory device that exceed a second dirty threshold, wherein the second dirty threshold is lower than the first dirty threshold;

moving valid data from the one or more block stripes to other memory locations in the flash device; and

marking the one or more memory block as ready to erase.

4. The method of claim 1 , wherein

wherein the selection of the ready to erase memory block for erasure is based at least in part on the operational state of plurality of dies and the heat level for each of the plurality of memory block stripes.

5. The method of claim 4 , wherein the selecting of the ready to erase memory block for erasure is configured to avoid program/erase collisions.

6. The method of claim 1 , wherein the third operating mode further includes:

identifying one or more memory block stripes of the flash memory device that exceed a second dirty threshold, wherein the second dirty threshold is lower than a first dirty threshold;

moving valid data from the one or more block stripes to other memory locations in the flash device; and

marking the one or more memory block as ready to erase.

7. A computer program product, comprising:

a storage device; and

program code stored in the storage device, wherein the program code, when executed by a controller that controls a non-volatile memory array of a data storage system, causes the controller to:

monitor a percentage of memory of the flash memory device that is in a ready to use state, wherein the flash memory device includes a plurality of dies each comprising a plurality of memory block stripes;

based on a determination that the percentage is greater than a first threshold value, operate the flash memory device in a first operating mode;

based on a determination that the percentage has fallen below the first threshold value; operate the flash memory device in a second operating mode;

based on a determination that the percentage has fallen below a second threshold value, which is lower than the first threshold value, operate the flash memory device in a third operating mode until the percentage exceeds the first threshold value,

maintain a heat level for each of the plurality of memory block stripes on each of the plurality of dies;

maintain an operational state of each of the plurality of dies, and

identify one of the plurality of memory block stripes for filling with an data set based on a heat level of the data set, the operational state of plurality of dies and the heat level for each of the plurality of memory block stripes, wherein the one of the plurality of memory block stripes for filling is selected to have a heat level that is equal to the heat level of the data set,

wherein erasing of ready to erase memory block stripes is only performed during the third operating mode, and

wherein the third operating mode includes:

selecting a ready to erase memory block for erasure, wherein the selecting of the ready to erase memory block for erasure includes prioritizing erasure of block stripes located on dies that are not currently being used for a fill operation and selecting a block stripe in a round-robin fashion based on a determination that all dies are currently being used for fill operation;

erasing the selected ready to erase memory block; and

marking the erased memory block as ready to use.

8. The computer program product of claim 7 , wherein the first operating mode includes:

identifying one or more memory block stripes of the flash memory device that exceed a first dirty threshold;

moving valid data from the one or more block stripes to other memory locations in the flash device; and

marking the one or more memory block stripes as ready to erase.

9. The computer program product of claim 8 , wherein the second operating mode includes:

identifying one or more memory block stripes of the flash memory device that exceed a second dirty threshold, wherein the second dirty threshold is lower than the first dirty threshold;

moving valid data from the one or more block stripes to other memory locations in the flash device; and

marking the one or more memory block as ready to erase.

10. The computer program product of claim 7 ,

wherein the selection of the ready to erase memory block for erasure is based at least in part on the operational state of plurality of dies and the heat level for each of the plurality of memory block stripes.

11. The computer program product of claim 10 , wherein the third operating mode further includes:

identifying one or more memory block stripes of the flash memory device that exceed a second dirty threshold, wherein the second dirty threshold is lower than a first dirty threshold;

moving valid data from the one or more block stripes to other memory locations in the flash device; and

marking the one or more memory block as ready to erase.

12. The computer program product of claim 7 , wherein the selecting of the ready to erase memory block for erasure is configured to avoid program/erase collisions.

13. A data storage system, comprising:

a controller configured to be coupled to a non-volatile memory array, wherein the controller is configured to:

monitor a percentage of memory of the flash memory device that is in a ready to use state, wherein the flash memory device includes a plurality of dies each comprising a plurality of memory block stripes;

based on a determination that the percentage is greater than a first threshold value, operate the flash memory device in a first operating mode;

based on a determination that the percentage has fallen below the first threshold value; operate the flash memory device in a second operating mode; and

based on a determination that the percentage has fallen below a second threshold value, which is lower than the first threshold value, operate the flash memory device in a third operating mode until the percentage exceeds the first threshold value,

maintain a heat level for each of the plurality of memory block stripes on each of the plurality of dies;

maintain an operational state of each of the plurality of dies, and

identify one of the plurality of memory block stripes for filling with an data set based on a heat level of the data set, the operational state of plurality of dies and the heat level for each of the plurality of memory block stripes, wherein the one of the plurality of memory block stripes for filling is selected to have a heat level that is equal to the heat level of the data set,

wherein erasing of ready to erase memory block stripes is only performed during the third operating mode, and

wherein the third operating mode includes:

selecting a ready to erase memory block for erasure, wherein the selecting of the ready to erase memory block for erasure includes prioritizing erasure of block stripes located on dies that are not currently being used for a fill operation and selecting a block stripe in a round-robin fashion based on a determination that all dies are currently being used for fill operation;

erasing the selected ready to erase memory block; and

marking the erased memory block as ready to use.

14. The data storage system of claim 13 , wherein the first operating mode includes:

identifying one or more memory block stripes of the flash memory device that exceed a first dirty threshold;

moving valid data from the one or more block stripes to other memory locations in the flash device; and

marking the one or more memory block stripes as ready to erase.

15. The data storage system of claim 14 , wherein the second operating mode includes:

identifying one or more memory block stripes of the flash memory device that exceed a second dirty threshold, wherein the second dirty threshold is lower than the first dirty threshold;

moving valid data from the one or more block stripes to other memory locations in the flash device; and

marking the one or more memory block as ready to erase.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 20, 2021
From: GALBRAITH, ROBERT EDWARD; MOERTL, DANIEL FRANK; WECKWERTH, RICK A.; SZEKELY, MATTHEW
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 055972/0318 →
Continuity (1)
Related Publication 20220334967A1 · Oct 20, 2022