US 12,277,341 B2
Software-hardware combination method for internal mapping address query of zoned namespace
Xiang Gao, Shanghai (CN); Fei Xue, Sunnyvale, CA (US); Jiajing Jin, Hangzhou (CN); Wentao Wu, Shanghai (CN); Jiu Heng, Chengdu (CN); Yuming Xu, Chengdu (CN); and Jifeng Wang, Chengdu (CN)
Assigned to T-Head (Shanghai) Semiconductor Co., Ltd., Shanghai Free Trade Area (CN)
Filed by T-Head (Shanghai) Semiconductor Co., Ltd., Shanghai Free Trade Area (CN)
Filed on Feb. 22, 2023, as Appl. No. 18/172,761.
Claims priority of application No. 202211363339.9 (CN), filed on Nov. 2, 2022.
Prior Publication US 2024/0143219 A1, May 2, 2024
Int. Cl. G06F 3/06 (2006.01)
CPC G06F 3/0655 (2013.01) [G06F 3/0604 (2013.01); G06F 3/0679 (2013.01)] 18 Claims
OG exemplary drawing
 
1. A system, comprising:
a host,
a memory controller communicatively coupled with the host, and
a flash memory communicatively coupled to the memory controller, the flash memory comprises a plurality of blocks grouped into a plurality of super blocks, and each of the plurality of blocks including a plurality of pages,
wherein the memory controller comprises:
a flash translation layer configured to:
receive a read command on the flash memory from the host, wherein the read command comprises a logic block address (LBA), and
determine, based on the LBA, a zone identification and an LBA offset;
a random access memory (RAM) configured to store a mapping table, wherein the mapping table includes a plurality of flash physical addresses (FPAs) arranged in a plurality of zones corresponding to the plurality of super blocks; and
an address management circuitry configured to:
receive the zone identification and the LBA offset from the flash translation layer,
determine that a block with a block index corresponding to the LBA offset is a bad block,
store information of the bad block in the RAM of the memory controller,
iteratively move the block index until finding a good block,
determine a physical address without page information in the good block corresponding to the LBA by accessing the mapping table stored in the RAM according to the zone identification and the LBA offset, and
determine a page number based on the LBA and a number of FPAs within a single page, wherein the page number and the physical address are used to execute the read command by accessing data stored at a page from the plurality of pages corresponding to the page number in a block from the plurality of blocks corresponding to the physical address.