CPC G06F 3/0655 (2013.01) [G06F 3/061 (2013.01); G06F 3/0679 (2013.01)] | 20 Claims |
1. A storage device comprising:
an interface operable to communicate with a host;
flash memory having one or more namespaces and subdivisions, each of the subdivisions comprising one or more erase units;
logic operable to cause the storage device to:
receive via the interface, from a storage manager of the host, a query command and a write command, each of the query command and the write command being compatible with a non-volatile memory express (NVMe) command format;
transmit to the storage manager, via the interface, responsive to the query command, information representing the one or more namespaces and information representing the subdivisions;
receive via the interface, in association with the write command, write data, a designation of a given one of the one or more namespaces, a designation of a selected one of the subdivisions which is associated with the given one of the namespaces, and a logical block address (LBA);
store the write data in the one or more erase units of the flash memory which are associated with the selected one of the subdivisions,
track data validity information for the one or more erase units of flash memory which are associated with the selected one of the subdivisions; and
dependent on the data validity information, perform garbage collection in a manner dedicated to the selected one of the subdivisions;
wherein, as part of garbage collection, the logic is to cause the storage device to copy the write data to a destination erase unit of the flash memory, the destination erase unit being selected dependent on the selected one of the subdivisions; and
wherein said logic comprises at least one of (1) instructional logic stored on a physical storage medium that, when executed, is to control the operation of hardware circuitry of the storage device, or (2) hardware circuitry.
|