IP Library › Granted Patent US 12,093,171
Granted Patent B2
US 12,093,171 · App. 18/321,896 · Granted Sep 17, 2024

Proactive data placement in high density storage by a hybrid non-volatile storage controller

Inventors: Roman Alexander Pletka (Uster, CH); Andrew D. Walls (San Jose, CA); Nikolaos Papandreou (Thalwil, CH); Radu Ioan Stoica (Zurich, CH); Timothy J. Fisher (Cypress, TX); Aaron Daniel Fry (Richmond, TX); Charalampos Pozidis (Thalwil, CH); Nikolas Ioannou (Zurich, CH)
Assignee: International Business Machines Corporation
G06F12/0246G06F3/0619G06F3/0653G06F3/0679G06F2212/7201G06F2212/7205G06F2212/7211
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,093,171
App. No.
18/321,896
Granted
Sep 17, 2024
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 determines whe ther total utilization of physical blocks is less than a low-density pool utilization threshold above which the high-density pool of physical blocks is utilized for storing host write data and additionally identifies cold in-use logical block address (LBA) regions having low total access frequencies. Based on determining the total utilization of physical blocks is less than the low-density pool utilization threshold, the controller performs data placement of data from the cold in-use LBA regions in blocks of the high-density pool.

Claims (41)

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 the plurality of physical blocks, the dynamically resizable pools including at least a low-density pool of physical blocks in which cells are configured to store a fewer number of bits and a high-density pool of physical blocks in which cells are configured to store a greater number of bits;

the controller determining whether total utilization of the plurality of physical blocks is less than a low-density pool utilization threshold above which the high-density pool of physical blocks is utilized for storing host write data, wherein the total utilization of the plurality of physical blocks is determined based on an amount of valid data stored in the plurality of physical blocks relative to a total usable capacity of the plurality of physical blocks;

the controller identifying cold in-use logical block address (LBA) regions having low total access frequencies; and

based on determining the total utilization of the plurality of physical blocks is less than the low-density pool utilization threshold, the controller performing data placement of data from the cold in-use LBA regions in blocks of the high-density pool, such that in the low-density pool overprovisioning is increased and write amplification is decreased.

2. The method of claim 1 , wherein:

the method further comprises the controller maintaining a logical-to-physical translation (LPT) cache storing address translations for recently accessed in-use LBAs; and

the controller identifying cold LBA regions includes the controller identifying cold LBA regions as those in-use LBA regions not having a LBA in the LPT cache.

3. The method of claim 1 and further comprising:

while the total utilization of the plurality of physical blocks is less than the low-density pool utilization threshold, the controller limiting data placement in the high-density pool such that high-density pool utilization does not exceed a high-density pool utilization threshold.

4. The method of claim 1 , wherein performing data placement includes performing relocation writes that relocate data from the low-density pool to the high-density pool.

5. The method of claim 1 , wherein performing data placement includes performing initial data placement of host write data into the high-density pool.

6. The method of claim 1 , wherein the total access frequencies include both read and write access frequencies.

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 the plurality of physical blocks, the dynamically resizable pools including at least a low-density pool of physical blocks in which cells are configured to store a fewer number of bits and a high-density pool of physical blocks in which cells are configured to store a greater number of bits;

determining whether total utilization of the plurality of physical blocks is less than a low-density pool utilization threshold above which the high-density pool of physical blocks is utilized for storing host write data, wherein the total utilization of the plurality of physical blocks is determined based on an amount of valid data stored in the plurality of physical blocks relative to a total usable capacity of the plurality of physical blocks;

identifying cold in-use logical block address (LBA) regions having low total access frequencies; and

based on determining the total utilization of the plurality of physical blocks is less than the low-density pool utilization threshold, performing data placement of data from the cold in-use LBA regions in blocks of the high-density pool, such that in the low-density pool overprovisioning is increased and write amplification is decreased.

8. The data storage system of claim 7 , wherein:

the controller is configured to perform maintaining a logical-to-physical translation (LPT) cache storing address translations for recently accessed in-use LBAs; and

identifying cold LBA regions includes identifying cold LBA regions as those in-use LBA regions not having a LBA in the LPT cache.

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

while the total utilization of the plurality of physical blocks is less than the low-density pool utilization threshold, limiting data placement in the high-density pool such that high-density pool utilization does not exceed a high-density pool utilization threshold.

10. The data storage system of claim 7 , wherein performing data placement includes performing relocation writes that relocate data from the low-density pool to the high-density pool.

11. The data storage system of claim 7 , wherein performing data placement includes performing initial data placement of host write data into the high-density pool.

12. The data storage system of claim 7 , wherein the total access frequencies include both read and write access frequencies.

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 the plurality of physical blocks, the dynamically resizable pools including at least a low-density pool of physical blocks in which cells are configured to store a fewer number of bits and a high-density pool of physical blocks in which cells are configured to store a greater number of bits;

determining whether total utilization of the plurality of physical blocks is less than a low-density pool utilization threshold above which the high-density pool of physical blocks is utilized for storing host write data, wherein the total utilization of the plurality of physical blocks is determined based on an amount of valid data stored in the plurality of physical blocks relative to a total usable capacity of the plurality of physical blocks;

identifying cold in-use logical block address (LBA) regions having low total access frequencies; and

based on determining the total utilization of the plurality of physical blocks is less than the low-density pool utilization threshold, performing data placement of data from the cold in-use LBA regions in blocks of the high-density pool, such that in the low-density pool overprovisioning is increased and write amplification is decreased.

15. The computer program product of claim 14 , wherein:

the program instructions cause the controller to perform maintaining a logical-to-physical translation (LPT) cache storing address translations for recently accessed in-use LBAs; and

identifying cold LBA regions includes identifying cold LBA regions as those in-use LBA regions not having a LBA in the LPT cache.

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

while the total utilization of the plurality of physical blocks is less than the low-density pool utilization threshold, limiting data placement in the high-density pool such that high-density pool utilization does not exceed a high-density pool utilization threshold.

17. The computer program product of claim 14 , wherein performing data placement includes performing relocation writes that relocate data from the low-density pool to the high-density pool.

18. The computer program product of claim 14 , wherein performing data placement includes performing initial data placement of host write data into the high-density pool.

19. The computer program product of claim 14 , wherein the total access frequencies include both read and write access frequencies.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2023
From: PLETKA, ROMAN ALEXANDER; WALLS, ANDREW D.; PAPANDREOU, NIKOLAOS; STOICA, RADU IOAN; FISHER, TIMOTHY J.; FRY, AARON DANIEL; POZIDIS, CHARALAMPOS; IOANNOU, NIKOLAS
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 063726/0793 →
Priority Claims (1)
GR 20230100060 · Jan 27, 2023 · national
Continuity (1)
Related Publication 20240256440A1 · Aug 1, 2024
Cited By (1)
US 12,366,984