US 12,093,171 B2
Proactive data placement in high density storage by a hybrid non-volatile storage controller
Roman Alexander Pletka, Uster (CH); Andrew D. Walls, San Jose, CA (US); Nikolaos Papandreou, Thalwil (CH); Radu Ioan Stoica, Zurich (CH); Timothy J. Fisher, Cypress, TX (US); Aaron Daniel Fry, Richmond, TX (US); Charalampos Pozidis, Thalwil (CH); and Nikolas Ioannou, Zurich (CH)
Assigned to International Business Machines Corporation, Armonk, NY (US)
Filed by INTERNATIONAL BUSINESS MACHINES CORPORATION, Armonk, NY (US)
Filed on May 23, 2023, as Appl. No. 18/321,896.
Claims priority of application No. 20230100060 (GR), filed on Jan. 27, 2023.
Prior Publication US 2024/0256440 A1, Aug. 1, 2024
Int. Cl. G06F 3/06 (2006.01); G06F 12/02 (2006.01)
CPC G06F 12/0246 (2013.01) [G06F 3/0619 (2013.01); G06F 3/0653 (2013.01); G06F 3/0679 (2013.01); G06F 2212/7201 (2013.01); G06F 2212/7205 (2013.01); G06F 2212/7211 (2013.01)] 19 Claims
OG exemplary drawing
 
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.