# US 2018/0321876 A1 · Storage offload engine (soe) inside fabric switching

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2018/0321876 A1
- Document ID: US20180321876A1
- Status: Published application
- Kind: A1
- Application number: 15/654,493
- Filed: 2017-07-19
- Published: 2018-11-08
- Earliest claimed: 2017-05-08
- Assignees: Samsung Electronics Co., Ltd.
- Applicants: Samsung Electronics Co., Ltd.
- Inventors: Chinnakrishnan BALLAPURAM; Ajay SUNDAR RAJ; Robert BRENNAN
- Web page: https://patentgrep.com/patent/US20180321876A1

## CPC

- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/065: {Replication mechanisms}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- H04L 49/901: using storage descriptor, e.g. read or write pointers
- H04L 67/1097: 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]
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Improved latency and throughput associated with storage functionalities are provided by an Ethernet SSD (eSSD) system and corresponding method. The eSSD system includes at least one primary SSD, at least one secondary SSD, an Ethernet switch, and a storage-offload (SoE) controller. The SoE controller may operate in a replication mode and/or an erasure-coding mode. In either mode, the SoE controller receives a first write command sent from a remote device to at least one primary SSD. In the replication mode, the SoE controller sends a second write command to the at least one secondary SSD to replicate at the at least one secondary SSD data associated with the first write command. In the erasure-coding mode, the SoE determines erasure codes associated with the first write command and manages distribution of the write data and associated erasure codes.

## Claims

### Claim 1

An Ethernet solid-state drive (eSSD) system, comprising:
at least one primary SSD;
at least one secondary SSD;
an Ethernet switch coupled to the at least one primary SSD and the at least one secondary SSD; and
a storage-offload engine (SoE) controller coupled to the Ethernet switch, the SoE controller to receive a first write command sent from a remote device to the at least one primary SSD, and the SoE controller to send a second write command to the at least one secondary SSD to replicate data associated with the first write command at the at least one secondary SSD, the second write command being a replica or modified version of the first write command.

### Claim 2 (depends on 1)

The system of claim 1, wherein in an erasure-coding mode, the SoE controller in response to the first write command sends a first read command to the at least one primary SSD and to erasure-coding group peers of the at least one primary SSD, the SoE controller to determine a new stripe data and a new erasure coding data based on responses to the first read command, and the SoE controller to send a second write command associated with the new erasure coding to the at least one primary SSD and to erasure-coding peers of the at least one primary SSD.

### Claim 3 (depends on 2)

The system of claim 2, wherein in the erasure-coding mode, the SoE controller is to receive a second read command sent from the remote device to the at least one primary SSD, the SoE controller to send a third read command to the at least one primary SSD and to erasure-coding peers of the at least one primary SSD, to receive stored data in response to the third read command and to assemble the received data for the second read command, and the SoE controller to send the assembled data to the remote device.

### Claim 4 (depends on 1)

The system of claim 1, wherein the SoE controller is to further receive a data-cloning command from the remote device sent to the at least one primary SSD, and the SoE controller to control cloning of data associated with the data-cloning command in at least the at least one primary SSD.

### Claim 5 (depends on 1)

The system of claim 1, wherein the SoE controller is to further receive a data-movement command from the remote device sent to the at least one primary SSD, and the SoE controller to control movement of data associated with the data-movement command within at least the at least one primary SSD.

### Claim 6

An Ethernet solid-state drive (eSSD) system, comprising:
at least one primary SSD;
at least one secondary SSD;
an Ethernet switch coupled to the at least one primary SSD and the at least one secondary SSD; and
a storage-offload engine (SoE) controller coupled to the Ethernet switch, the at least one primary SSD and the at least one secondary SSD, the SoE controller to operate in a replication mode, in an erasure-coding mode, or in a combination thereof, and the SoE controller to receive a first write command sent from a remote device to the at least one primary SSD,
if the SoE controller is operating in the replication mode or a combination of the replication mode and the erasure-coding mode, the SoE controller in response to the first write command to at least: send a second write command to the at least one secondary SSD to replicate data associated with the first write command in the at least one secondary SSD, the second write command being a replica or a modified version of the first write command,
if the SoE controller is operating in the erasure-coding mode or a combination of the replication mode and the erasure-coding mode, the SoE controller in response to the first write command to at least: send a first read command to the at least one primary SSD and to erasure-coding peers of the at least one primary SSD, the SoE controller to receive stored data in response to the first read command and to determine a new erasure coding based on the first write command, the SoE controller to send a third write command associated with the new erasure coding to the at least one primary SSD and to erasure-coding peers of the at least one primary SSD.

### Claim 7 (depends on 6)

The system of claim 6, wherein in the erasure-coding mode, the SoE controller is to receive a second read command sent from the remote device to the at least one primary SSD, the SoE controller to receive stored data and erasure coding associated with the stored data associated with the second read command and to assemble the received data and the received erasure coding associated with the received data, and the SoE controller to send the assembled data to the remote device for the second read command.

### Claim 8 (depends on 6)

The system of claim 6, wherein the SoE controller is to further receive a data-cloning command from the remote device sent to the at least one primary SSD, and the SoE controller to control cloning of data associated with the data-cloning command in at least the at least one primary SSD.

### Claim 9 (depends on 6)

The system of claim 6, wherein the SoE controller is to further receive a data-movement command from the remote device sent to the at least one primary SSD, and the SoE controller to control movement of data associated with the data-movement command within at least the at least one primary SSD.

### Claim at position 10

10-14. (canceled)

### Claim 15

An Ethernet solid-state drive (eSSD) system, comprising:
at least one SSD, the at least one SSD including a primary storage area and a secondary storage area;
an Ethernet switch coupled to the at least one SSD; and
a storage-offload engine (SoE) controller coupled to the Ethernet switch and the at least one SSD, the SoE controller to receive a first write command sent from a remote device to the at least one SSD to store data in the primary storage area, and the SoE controller to send a second write command to the at least one SSD to replicate data associated with the first write command within the secondary storage area, the second write command being a replica or a modified version of the first write command.

### Claim 16 (depends on 15)

The system of claim 15, wherein in an erasure-coding mode, the SoE controller in response to the first write command is to send a first read command to the at least one SSD, the SoE controller to determine a new stripe data and new erasure coding data based on a response to the first read command, the SoE controller to send a second write command associated with the new erasure coding to the at least one SSD.

### Claim 17 (depends on 15)

The system of claim 15, wherein the SoE controller is to further receive a data-cloning command from the remote device sent to the at least one SSD, and the SoE controller to control cloning of data associated with the data-cloning command in the at least one SSD.

### Claim 18 (depends on 15)

The system of claim 15, wherein the SoE controller is to further receive a data-movement command from the remote device sent to the at least one SSD, and the SoE controller to control movement of data associated with the data-movement command within the at least one SSD.

### Claim 19

An Ethernet solid-state drive (eSSD) system, comprising:
at least one SSD, the at least one SSD comprising a primary storage area and a secondary storage area;
an Ethernet switch coupled to the at least one SSD; and
a storage-offload engine (SoE) controller coupled to the Ethernet switch and the at least one SSD, the SoE controller to operate in a replication mode, in an erasure-coding mode, or in a combination thereof, and the SoE controller to receive a first write command sent from a remote device to the at least one SSD,
if the SoE controller is operating in the replication mode or a combination of the replication mode and the erasure-coding mode, the SoE controller in response to the first write command to at least: send a second write command to the at least one SSD to replicate data associated with the first write command in the secondary storage area of the at least one SSD, the second write command being a replica or a modified version of the first write command,
if the SoE controller is operating in the erasure-coding mode or a combination of the replication mode and the erasure-coding mode, the SoE controller in response to the first write command to at least: send a first read command to the at least one SSD, the SoE controller to receive stored data in response to the first read command and to determine a new erasure coding based on the first write command, and the SoE controller to send a third write command associated with the new erasure coding to the at least one SSD.

### Claim 20 (depends on 19)

The system of claim 19, wherein in the erasure-coding mode, the SoE controller is to receive a second read command sent from the remote device sent to the at least one SSD, the SoE controller to receive stored data and erasure coding associated with the stored data associated with the second read command and to assemble the received data and the received erasure coding associated with the received data, and the SoE controller to send the assembled data to the remote device for the second read command.

### Claim 21 (depends on 19)

The system of claim 19, wherein the SoE controller is to further receive a data-cloning command from the remote device sent to the at least one SSD, and the SoE controller to control cloning of data associated with the data-cloning command in the at least one SSD.

### Claim 22 (depends on 19)

The system of claim 19, wherein the SoE controller is to further receive a data-movement command from the remote device sent to the at least one SSD, and the SoE controller to control movement of data associated with the data-movement command within the at least one SSD.

### Claim at position 19

23-27. (canceled)
