Efficient storage device data move operation based on priority of garbage collection command
US-11422726-B1 · Aug 23, 2022 · US
US11726948B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11726948-B2 |
| Application number | US-202117537126-A |
| Country | US |
| Kind code | B2 |
| Filing date | Nov 29, 2021 |
| Priority date | Sep 13, 2018 |
| Publication date | Aug 15, 2023 |
| Grant date | Aug 15, 2023 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A system for reading stored data may include one or more Ethernet drives and a controller, both configured to communicatively connect to a host device. The controller may receive a first read command from the host device, determine a first drive among the one or more Ethernet drives using the first read command and a mapping table, translate the first read command into a second read command, and send the second read command to the first drive. Responsive to receiving the second read command, the first drive may send a first remote data transfer instruction to the host device independent of the controller. The first remote data transfer instruction may include stored data read from the first drive to cause the host device to write the stored data read from the first drive to one or more memory buffers in the host device indicated by the second read command.
Opening claim text (preview).
What is claimed is: 1. A system for managing stored data, comprising: one or more Ethernet drives configured to communicatively connect to a host device; and a controller in communication with the host device and the one or more Ethernet drives, configured to: receive a first write command from the host device, the first write command including a first set of one or more input parameters and a first set of one or more output parameters indicating one or more memory buffers in the host; determine a first drive among the one or more Ethernet drives using at least one of the one or more input parameters and a mapping table; translate the first write command into a second write command, the second write command including a logical unit number (LUN) within the first drive obtained from the mapping table and a second set of one or more output parameters indicating one or more memory buffers in the host device; and send the second write command to the first drive, wherein the first drive is configured to responsive to receiving the second write command, send a first remote data transfer instruction to the host device independent of the controller, the first remote data transfer instruction being configured to cause the host device to read data from the one or more memory buffers indicated by the second set of one or more output parameters and to remotely write the read data from the one or more memory buffers to the LUN of the first drive. 2. The system of claim 1 , wherein the first write command is an Non-Volatile Memory Express over Fabric (NVMeoF) write command, and the first remote data transfer instruction is a remote direct memory access (RDMA) read command. 3. The system of claim 1 , wherein the controller is further configured to: execute a garbage collection command, the garbage collection command including a first drive identifier identifying the first drive among one or more Ethernet drives; allocate, with the first drive identifier using a mapping table, a free block at a destination address in a destination drive among one or more Ethernet drives; and identify, with the first drive identifier using the mapping table, a source address in the first drive. 4. The system of claim 3 , wherein the controller is further configured to send a move command to the first drive, the move command including the source address, the destination address, and the destination drive, and wherein the first drive is further configured to: responsive to receiving the move command, read data from the identified source address in the first drive; and send a program command to the destination drive and cause the destination drive to copy the data read from the identified source address to the free block at the destination address in the destination drive. 5. The system of claim 4 , wherein the one or more Ethernet drives includes at least one Ethernet Open-Channel drive supporting Open-Channel program and read of a page, and Open-Channel move and erase of a block, the move command is an Open-Channel move command, and the program command is an Open-Channel program command. 6. The system of claim 4 , wherein the first drive is further configured to, responsive to completion of copying the data to the free block, send an acknowledgement command to the controller, and wherein the controller is further configured to: responsive to receiving the acknowledgement command from the first drive, update the mapping table with the destination address; and responsive to completion of updating the mapping table with the destination address, send an erase command to the first drive and cause the first drive to erase the data at the identified source address in the first drive. 7. The system of claim 6 , wherein the erase command is an Open-Channel erase command. 8. A method for managing stored data, comprising: receiving, by a controller in communication with a host device and one or more Ethernet drives, a first write command from the host device, the first write command including a first set of one or more input parameters and a first set of one or more output parameters indicating one or more memory buffers in the host; determining, by the controller, a first drive among the one or more Ethernet drives in communication with the host device, using at least one of the one or more input parameters and a mapping table; translating, by the controller, the first write command into a second write command, the second write command including a logical unit number (LUN) within the first drive obtained from the mapping table and a second set of one or more output parameters indicating one or more memory buffers in the host device; sending, by the controller, the second write command to the first drive, responsive to receiving the second write command, sending by the first drive a first remote data transfer instruction to the host device independent of the controller, the first remote data transfer instruction being configured to cause the host device to read data from the one or more memory buffers indicated by the second set of one or more output parameters and to remotely write the read data from the one or more memory buffers to the LUN within the first drive. 9. The method of claim 8 , wherein the first write command is an Non-Volatile Memory Express over Fabric (NVMeoF) write command, and the first remote data transfer instruction is a remote direct memory access (RDMA) read command. 10. The method of claim 8 , further comprising: executing, by the controller, a garbage collection command, the garbage collection command including a first drive identifier identifying the first drive among one or more Ethernet drives; allocating, by the controller with the first drive identifier using a mapping table, a free block at a destination address in a destination drive among one or more Ethernet drives; and identifying, by the controller with the first drive identifier using the mapping table, a source address in the first drive. 11. The method of claim 10 , further comprising: sending, by the controller, a move command to the first drive, the move command including the source address, the destination address, and the destination drive; responsive to receiving the move command, reading, by the first drive, data from the identified source address in the first drive; and sending, by the first drive, a program command to the destination drive and causing the destination drive to copy the data read from the identified source address to the free block at the destination address in the destination drive. 12. The method of claim 11 , wherein the one or more Ethernet drives includes at least one Ethernet Open-Channel drive supporting Open-Channel program and read of a page, and Open-Channel move and erase of a block, the move command is an Open-Channel move command, and the program command is an Open-Channel program command. 13. The method of claim 11 , further comprising: responsive to completion of copying the data to the free block, by the first drive, sending an acknowledgement command to the controller; responsive to receiving the acknowledgement command from the first drive, by the controller, updating the mapping table with the destination address; and responsive to completion of updating the mapping table with the destination address, by the controller, sending an erase command to the first drive and causing the first drive to erase the data at the identified source address in the first drive. 14. The method of claim 13 , wherein the erase command is an Open-Channel erase command. 15. A method for managing
Protocols for interworking; Protocol conversion · CPC title
in the physical layer [OSI layer 1] · CPC title
for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS] · CPC title
Distributed shared memory [DSM], e.g. remote direct memory access [RDMA] · CPC title
in block erasable memory, e.g. flash memory · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.