IP Library › Granted Patent US 12,366,984
Granted Patent B2
US 12,366,984 · App. 18/340,199 · Granted Jul 22, 2025

Storage pool resizing to meet memory endurance targets

Inventors: Roman Alexander Pletka (Uster, CH); Nikolaos Papandreou (Thalwil, CH); M. Dean Sciacca (Poughkeepsie, NY); Timothy J. Fisher (Cypress, TX); Aaron Daniel Fry (Richmond, TX); Radu Ioan Stoica (Zurich, CH); Charalampos Pozidis (Thalwil, CH); Andrew D. Walls (San Jose, CA)
Assignee: International Business Machines Corporation
G06F3/0644G06F3/0602G06F3/064G06F3/0679
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,366,984
App. No.
18/340,199
Granted
Jul 22, 2025
Kind
B2
Abstract

A non-volatile memory includes physical blocks each including a respective plurality of cells, where each cell is capable of storing multiple bits of data. A controller maintains dynamically resizable pools of physical blocks, including at least a low-density pool in which cells are configured to store fewer bits and a high-density pool in which cells are configured to store more bits. The controller repeatedly dynamically resizes the low-density and the high-density pools based on write utilization of the non-volatile memory.

Claims (31)

1. A method of operating a non-volatile memory including a plurality of physical blocks of storage each including a respective plurality of cells, wherein each of the plurality of cells is individually capable of storing multiple bits of data, the method comprising:

a controller for the non-volatile memory maintaining dynamically resizable pools of physical blocks including at least a low-density pool of physical blocks and a high-density pool of physical blocks, wherein cells of physical blocks in the low-density pool are configured to store a fewer number of bits than cells of physical blocks in the high-density pool; and

the controller repeatedly dynamically resizing the low-density and the high-density pools based on write utilization of the non-volatile memory, wherein the write utilization is an amount of data written to the non-volatile memory per time period.

2. The method of claim 1 , wherein the resizing includes dynamically resizing the low-density and the high-density pools based on data utilization of the non-volatile memory.

3. The method of claim 2 , wherein the resizing includes determining a number of physical blocks to transfer between the low-density and high-density pools based on a minimum of a first pool size determined based on write utilization and a second pool size determined based on data utilization.

4. The method of claim 1 , wherein the resizing includes initially dynamically resizing the low-density and the high-density pools based on the data utilization exceeding a pool resizing threshold.

5. The method of claim 1 , further comprising:

based on transferring at least one of the physical blocks in the low-density pool into the high-density pool, permanently allocating a subset of the physical blocks in the low-density pool as compaction blocks dedicated to compaction of data written into physical blocks of the low-density pool for storage in physical blocks of the high-density pool.

6. The method of claim 1 , further comprising the controller determining write utilization of the non-volatile memory system based on an elapsed portion of a projected lifetime of the non-volatile memory and an average write utilization over the elapsed portion.

7. A data storage system, comprising:

a controller for a non-volatile memory including a plurality of physical blocks of storage each including a respective plurality of cells, wherein each of the plurality of cells is individually capable of storing multiple bits of data, wherein the controller is configured to perform:

maintaining dynamically resizable pools of physical blocks including at least a low-density pool of physical blocks and a high-density pool of physical blocks, wherein cells of physical blocks in the low-density pool are configured to store a fewer number of bits than cells of physical blocks in the high-density pool of physical blocks; and

repeatedly dynamically resizing the low-density and the high-density pools based on write utilization of the non-volatile memory, wherein the write utilization is an amount of data written to the non-volatile memory per time period.

8. The data storage system of claim 7 , wherein the resizing includes dynamically resizing the low-density and the high-density pools based on data utilization of the non-volatile memory.

9. The data storage system of claim 8 , wherein the resizing includes determining a number of physical blocks to transfer between the low-density and high-density pools based on a minimum of a first pool size determined based on write utilization and a second pool size determined based on data utilization.

10. The data storage system of claim 7 , wherein the resizing includes initially dynamically resizing the low-density and the high-density pools based on the data utilization exceeding a pool resizing threshold.

11. The data storage system of claim 7 , wherein the controller is configured to perform:

based on transferring at least one of the physical blocks in the low-density pool into the high-density pool, permanently allocating a subset of the physical blocks in the low-density pool as compaction blocks dedicated to compaction of data written into physical blocks of the low-density pool for storage in physical blocks of the high-density pool.

12. The data storage system of claim 7 , wherein the controller is configured to perform:

determining write utilization of the non-volatile memory system based on an elapsed portion of a projected lifetime of the non-volatile memory and an average write utilization over the elapsed portion.

13. The data storage system of claim 7 , further comprising the non-volatile memory.

14. A computer program product, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions being executable by a controller of a non-volatile memory including a plurality of cells each individually capable of storing multiple bits of data, wherein, when executed, the program instructions cause the controller to perform:

maintaining dynamically resizable pools of physical blocks including at least a low-density pool of physical blocks and a high-density pool of physical blocks, wherein cells of physical blocks in the low-density pool are configured to store a fewer number of bits than cells of physical blocks in the high-density pool of physical blocks; and

repeatedly dynamically resizing the low-density and the high-density pools based on write utilization of the non-volatile memory, wherein the write utilization is an amount of data written to the non-volatile memory per time period.

15. The computer program product of claim 14 , wherein the resizing includes dynamically resizing the low-density and the high-density pools based on data utilization of the non-volatile memory.

16. The computer program product of claim 15 , wherein the resizing includes determining a number of physical blocks to transfer between the low-density and high-density pools based on a minimum of a first pool size determined based on write utilization and a second pool size determined based on data utilization.

17. The computer program product of claim 14 , wherein the resizing includes initially dynamically resizing the low-density and the high-density pools based on the data utilization exceeding a pool resizing threshold.

18. The computer program product of claim 14 , wherein the program instructions cause the controller to perform:

based on transferring at least one of the physical blocks in the low-density pool into the high-density pool, permanently allocating a subset of the physical blocks in the low-density pool as compaction blocks dedicated to compaction of data written into physical blocks of the low-density pool for storage in physical blocks of the high-density pool.

19. The computer program product of claim 14 , wherein the program instructions cause the controller to perform:

determining write utilization of the non-volatile memory system based on an elapsed portion of a projected lifetime of the non-volatile memory and an average write utilization over the elapsed portion.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2023
From: PLETKA, ROMAN ALEXANDER; PAPANDREOU, NIKOLAOS; SCIACCA, M. DEAN; FISHER, TIMOTHY J.; FRY, AARON DANIEL; STOICA, RADU IOAN; POZIDIS, CHARALAMPOS; WALLS, ANDREW D.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 064041/0597 →
Continuity (1)
Related Publication 20240427515A1 · Dec 26, 2024
References Cited (18)
US 9558107B2 · Camp et al. · 2017 [cited by applicant]
US 11023150B2 · Pletka et al. · 2021 [cited by applicant]
US 11119672B2 · Natarajan · 2021 [cited by applicant]
US 11126360B2 · Stoica · 2021 [cited by applicant]
US 11182089B2 · Pletka et al. · 2021 [cited by applicant]
US 11797199B2 · Pletka · 2023 [cited by examiner]
US 12093171B2 · Pletka · 2024 [cited by examiner]
US 20100017555A1 · Chang · 2010 [cited by examiner]
US 20150058530A1 · Reddy · 2015 [cited by applicant]
US 20160085612A1 · Liu · 2016 [cited by examiner]
US 20180373438A1 · Bennett et al. · 2018 [cited by applicant]
US 20210294737A1 · Wang · 2021 [cited by examiner]
US 20220066638A1 · Luo · 2022 [cited by examiner]
US 20230010632A1 · Pletka · 2023 [cited by applicant]
WO 2024261554A1 · 2024 [cited by applicant]
“Proactive Disabling Relief Valve to Ensure Proper Pool Resizing,” Aug. 31, 2020, 6 pages, IPCOM/000263454, IP.com. [cited by applicant]
Malventano, “Micron M600 SSD Review—Digging into Dynamic Write Acceleration,” Sep. 29, 2014, 9 pages, accessed online from https://pcper.com/2014/09/micron-m600-ssd-review-digging-into-dynamic-write-acceleration/. [cited by applicant]
International Searching Authority, Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, Jun. 21, 2024, 10 pages, International Application No. … [cited by applicant]