US 11,809,328 B2
Control method of flash memory controller and associated flash memory controller and storage device
Ken-Fu Hsu, Hsinchu County (TW); and Ching-Hui Lin, Hsinchu County (TW)
Assigned to Silicon Motion, Inc., Hsinchu County (TW)
Filed by Silicon Motion, Inc., Hsinchu County (TW)
Filed on Jan. 24, 2022, as Appl. No. 17/581,998.
Claims priority of provisional application 63/169,222, filed on Apr. 1, 2021.
Prior Publication US 2022/0318133 A1, Oct. 6, 2022
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 12/1009 (2016.01); G06F 12/06 (2006.01); G06F 3/06 (2006.01); G06F 12/02 (2006.01); G06F 12/0882 (2016.01)
CPC G06F 12/1009 (2013.01) [G06F 3/064 (2013.01); G06F 3/0614 (2013.01); G06F 3/0631 (2013.01); G06F 3/0644 (2013.01); G06F 3/0652 (2013.01); G06F 3/0679 (2013.01); G06F 12/0246 (2013.01); G06F 12/0615 (2013.01); G06F 12/0882 (2013.01); G06F 2212/7201 (2013.01); G06F 2212/7203 (2013.01)] 15 Claims
OG exemplary drawing
 
1. A control method of a flash memory controller, wherein the flash memory controller is configured to access a flash memory module, the flash memory module comprises a plurality of blocks, and each block comprises a plurality of pages; the control method comprising:
receiving a settling command from a host device, wherein the settling command configures at least one portion of the flash memory module as a zoned namespace, wherein the zoned namespace logically comprises a plurality of zones, the host device performs a zone-based data write operation on the zoned namespace, each zone has a same size, logical addresses corresponding to each zone are continuous, the logical addresses are not overlapping between zones, the size of each zone is greater than a size of each block;
writing data of a first zone into a plurality of first blocks;
establishing a zone-block mapping table, wherein the zone-block mapping table comprises information about the first zone and the corresponding first blocks and a shared block, wherein the shared block stores only a portion of the data of the first zone and data of another zone;
establishing or updating a logical address to physical address mapping table (L2P mapping table) based on the data of the first zone written into the plurality of first blocks;
receiving a reset command from the host device, wherein the reset command indicates to reset the first zone;
updating the L2P mapping table to delete physical addresses corresponding to logical addresses of the first zone;
directly putting the first blocks into a spare block pool;
determining if the shared block does not have any valid data by referring to a valid page count table, wherein the valid page count table records the shared block and corresponding valid page count; and
in response to determining that the shared block does not have any valid data, putting the shared block into the spare block pool.