US 12,216,931 B1
Techniques for directed data migration
Alan Chen, Simi Valley, CA (US); Craig Robertson, Simi Valley, CA (US); Robert Lercari, Thousand Oaks, CA (US); and Andrey V. Kuzmin, Moscow (RU)
Assigned to Radian Memory Systems, LLC, Plano, TX (US)
Filed by Radian Memory Systems, LLC, Plano, TX (US)
Filed on Jan. 15, 2024, as Appl. No. 18/412,919.
Application 18/412,919 is a continuation of application No. 17/948,161, filed on Sep. 19, 2022, granted, now 11,907,569.
Application 17/948,161 is a continuation of application No. 17/176,035, filed on Feb. 15, 2021, granted, now 11,481,144, issued on Oct. 25, 2022.
Application 17/176,035 is a continuation of application No. 16/702,736, filed on Dec. 4, 2019, granted, now 10,956,082, issued on Mar. 23, 2021.
Application 16/702,736 is a continuation of application No. 15/211,939, filed on Jul. 15, 2016, granted, now 10,552,085, issued on Feb. 4, 2020.
Application 15/211,939 is a continuation in part of application No. 14/848,273, filed on Sep. 8, 2015, granted, now 10,642,505, issued on May 5, 2020.
Claims priority of provisional application 62/241,429, filed on Oct. 14, 2015.
Claims priority of provisional application 62/199,969, filed on Jul. 31, 2015.
Claims priority of provisional application 62/194,172, filed on Jul. 17, 2015.
Claims priority of provisional application 62/048,162, filed on Sep. 9, 2014.
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 3/06 (2006.01)
CPC G06F 3/0655 (2013.01) [G06F 3/061 (2013.01); G06F 3/0679 (2013.01)] 20 Claims
OG exemplary drawing
 
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.