| CPC G06F 12/10 (2013.01) [G06F 2212/1056 (2013.01); G06F 2212/657 (2013.01)] | 18 Claims |

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