IP Library › Granted Patent US 11,188,496
Granted Patent B2
US 11,188,496 · App. 16/130,729 · Granted Nov 30, 2021

System and method for storing data using ethernet drives and ethernet open-channel drives

Inventor: Yaron Klein (Raanana, IL)
Assignee: TOSHIBA MEMORY CORPORATION
G06F15/17331G06F3/0607G06F3/067G06F3/0656G06F3/0659G06F12/0246H04L69/08G06F2212/7201
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,188,496
App. No.
16/130,729
Granted
Nov 30, 2021
Kind
B2
Abstract

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.

Claims (48)

1. A system for reading 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 read command from the host device, the first read command including a first set of one or more input parameters and a first set of one or more output parameters indicating first addresses of one or more memory buffers in the host device;

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 read command into a second read command, the second read command including a second set of one or more output parameters indicating second different addresses of one or more memory buffers in the host device; and

send the second read command to the first drive,

wherein the first drive is configured to

responsive to receiving the second read command, send a first remote data transfer instruction to the host device independent of the controller, the first remote data transfer instruction including stored data read from the first drive to cause the host device to write the stored data read from the first drive to the second addresses of one or more memory buffers indicated by the second set of one or more output parameters.

2. The system of claim 1 , wherein the first set of output parameters and the second set of output parameters are the same as each other.

3. The system of claim 1 , wherein the controller is further configured to:

translate the first read command into a third read command, the third read command including a third set of one or more output parameters indicating one or more memory buffers in the host device;

determine a second drive among the one or more Ethernet drives using at least one of the one or more input parameters and the mapping table; and

send the third read command to the second drive,

wherein the second drive is configured to:

responsive to receiving the third read command, send a second remote data transfer instruction to the host device independent of the controller, the second remote data transfer instruction including data read from the second drive to cause the host device to write the data read from the second drive to the one or more memory buffers indicated by the third set of one or more output parameters.

4. The system of claim 3 ,

wherein the first set of output parameters, the second set of output parameters and the third set of output parameters are different from each other,

the first set of output parameters including a first memory buffer descriptor comprising a first memory buffer address in the host device and a first length of data,

the second set of output parameters including a second memory buffer descriptor comprising a second memory buffer address in the host device and a second length of data, and

the third set of output parameters including a third memory buffer descriptor comprising a third memory buffer address in the host device and a third length of data.

5. The system of claim 1 , wherein the first set of output parameters and the second set of output parameters include scatter gather lists of memory buffer descriptors.

6. The system of claim 1 , wherein

the first read command is a Non-Volatile Memory Express over Fabric (NVMeoF) read command, and

the first remote data transfer instruction is a remote direct memory access (RDMA) write command.

7. A method for reading stored data, comprising:

receiving, by a controller of a storage system in communication with a host device and one or more Ethernet drives, a first read command from the host device, the first read command including a first set of one or more input parameters and first set of one or more output parameters indicating first addresses of one or more memory buffers in the host device;

determining, by the controller, a first drive among 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 read command into a second read command, the second read command including a second set of one or more output parameters indicating second different addresses of one or more memory buffers in the host device;

sending, by the controller, the second read command to the first drive; and

responsive to receiving the second read 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 including stored data read from the first drive to cause the host device to write the stored data read from the first drive to the second addresses of one or more memory buffers indicated by the second set of one or more output parameters.

8. The method of claim 7 , wherein the first set of output parameters and the second set of output parameters are the same as each other.

9. The method of claim 7 , further comprising:

translating, by the controller, the first read command into a third read command, the third read command including a third set of one or more output parameters indicating one or more memory buffers in the host device;

determining, by the controller, a second drive among the one or more Ethernet drives using at least one of the one or more input parameters and the mapping table;

sending, by the controller, the third read command to the second drive; and

responsive to receiving the third read command, sending a second remote data transfer instruction to the host device independent of the controller, the second remote data transfer instruction including data read from the second drive to cause the host device to write the data read from the second drive to the one or more memory buffers indicated by the third set of one or more output parameters.

10. The method of claim 9 ,

wherein the first set of output parameters, the second set of output parameters and the third set of output parameters are different from each other,

the first set of output parameters including a first memory buffer descriptor comprising a first memory buffer address in the host device and a first length of data,

the second set of output parameters including a second memory buffer descriptor comprising a second memory buffer address in the host device and a second length of data, and

the third set of output parameters including a third memory buffer descriptor comprising a third memory buffer address in the host device and a third length of data.

11. The method of claim 7 , wherein the first set of output parameters and the second set of output parameters include scatter gather lists of memory buffer descriptors.

12. The method of claim 7 , wherein

the first read command is a Non-Volatile Memory Express over Fabric (NVMeoF) read command, and

the first remote data transfer instruction is a remote direct memory access (RDMA) write command.

13. The system of claim 1 , wherein determining using the mapping table includes using the mapping table to map a physical LBA to a virtual LBA within a virtual logical unit number (LUN) or vice versa.

14. The method of claim 7 , wherein determining using the mapping table includes using the mapping table to map a physical LBA to a virtual LBA within a virtual logical unit number (LUN) or vice versa.

Assignments (4)
CHANGE OF NAME Recorded Jan 13, 2022
From: TOSHIBA MEMORY CORPORATION
To: KIOXIA CORPORATION
Reel/Frame 058758/0804 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2020
From: KLEIN, YARON
To: OCZ ISRAEL LIMITED
Reel/Frame 052800/0056 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2020
From: OCZ ISRAEL LIMITED
To: TOSHIBA MEMORY AMERICA, INC.
Reel/Frame 052800/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2020
From: TOSHIBA MEMORY AMERICA, INC.
To: TOSHIBA MEMORY CORPORATION
Reel/Frame 052800/0160 →
Continuity (1)
Related Publication 20200089648A1 · Mar 19, 2020