US 12,248,404 B2
ZNS standard based storage device providing data compression and method thereof
Rong Yuan, Beijing (CN)
Assigned to BEIJING MEMBLAZE TECHNOLOGY CO., LTD, Beijing (CN)
Filed by BEIJING MEMBLAZE TECHNOLOGY CO., LTD, Beijing (CN)
Filed on Dec. 29, 2021, as Appl. No. 17/646,311.
Claims priority of application No. 202011622910.5 (CN), filed on Dec. 30, 2020.
Prior Publication US 2022/0206952 A1, Jun. 30, 2022
Int. Cl. G06F 12/10 (2016.01)
CPC G06F 12/10 (2013.01) [G06F 2212/1056 (2013.01); G06F 2212/657 (2013.01)] 18 Claims
OG exemplary drawing
 
1. A method for processing an IO command comprising:
providing, by a host to a storage device, a first command for writing data to a first storage zone;
allocating, by the storage device according to a Write Pointer (WP) of the first storage zone, a first logical address index to the data to be written by the first command, wherein two dimensions including (i) the first logical address index and (ii) a first size of the data to be written by the first command define a first logical address space, and a starting address of the first logical address space is called the first logical address index; compressing the data to be written by the first command to obtain compressed data; storing the compressed data; recording an address for storing the compressed data in association with the first logical address index; and providing the first logical address index to the host; and
recording, by the host, a first host logical address (HLBA) accessed by the first command in association with the first logical address index; wherein
the method further comprises providing a former command for writing data to a storage zone, wherein
the former command is provided prior to the first command, and
a difference between the first logical address index and a logical address index of a logical address space allocated to the former command represents a size of a compressed data corresponding to the former command;
the method further comprises:
allocating, by the host, a first zLBA space from a zLBA space of the first storage zone and generating the first command for writing data to the first storage zone, wherein the first zLBA space has a size capable of holding the data to be written by the first command; wherein the zLBA space of the first storage zone is a one-dimensional linear space, and has a size as same as a capacity of the first storage zone, and each element of the zLBA space is addressed by a zLBA; and
recording, by the host, the first host logical address (HLBA) accessed by the first command in association with the first zLBA space, wherein elements of a host logical address (HLBA) space defined by the first host logical address (HLBA) and the first size correspond to elements of the first zLBA space.