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 |
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.
|