# US 12,192,278 B2 · Systems, methods, and apparatus for remote data transfers to memory

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

- Number: US 12,192,278 B2
- Document ID: US12192278B2
- Status: Granted
- Kind: B2
- Application number: 17/746,950
- Filed: 2022-05-17
- Published: 2023-02-09
- Granted: 2025-01-07
- Earliest claimed: 2021-08-06
- Assignees: Samsung Electronics Co., Ltd.
- Applicants: Samsung Electronics Co., Ltd.
- Inventors: Somnath Roy; Ronald Lee; Benixon Arul Dhas; Xiangnan Li
- Web page: https://patentgrep.com/patent/US12192278B2

## CPC

- G06F 3/061: {Improving I/O performance}
- 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 3/0635: {by changing the path, e.g. traffic rerouting, path reconfiguration}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0688: {Non-volatile semiconductor memory arrays}
- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- H04L 45/22: {Alternate routing}
- H04L 45/28: using route fault recovery
- H04L 45/42: Centralised routing
- H04L 67/06: specially adapted for file transfer, e.g. file transfer protocol [FTP]
- 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

A method may include receiving, at a target, from a server, a command, information to identify data, and access information to perform a data transfer using a memory access protocol, and performing, based on the command, based on the access information, the data transfer between the target and a client using the memory access protocol. The information to identify the data may include an object key, and the object key and the access information may be encoded, at least partially, in an encoded object key. The method may further include sending, based on the data transfer, from the target to the server, a completion. The method may further include sending, based on the completion, from the server to the client, an indication of success. The method may further include reconstructing the data based on the parity data.

## Claims

### Claim 1

A method comprising:
receiving, at a target, from a server using a first protocol, a data transfer command, information to identify data comprising an object key including a data length and a data start address of the data, and access information to perform a data transfer using a memory access protocol by the target; and
performing, based on the data transfer command, based on the access information, the data transfer between the target and a client using the memory access protocol, wherein the access information includes a connection handle which is part of the memory access protocol, wherein the connection handle is for the data transfer between the target and the client and the first protocol is different from the memory access protocol, and wherein the object key and the access information are encoded, at least partially, in an encoded object key, and the encoded object key is decoded at the target, at least partially to extract the connection handle.

### Claim 2 (depends on 1)

The method of claim 1, further comprising sending, based on the data transfer, between the target and the server, a completion.

### Claim 3 (depends on 2)

The method of claim 2, further comprising sending, based on the completion, from the server to the client, an indication of success.

### Claim 4 (depends on 1)

The method of claim 1, wherein the target is a first target, the data transfer command is a first command, the information to identify data is first information to identify first data, the access information is first access information, and the data transfer is a first data transfer and includes a direct transfer of a payload between the first target and the client, the method further comprising:
receiving, at the target, from the server, a second command, second information to identify second data, and second access information to perform a second data transfer using the memory access protocol;
obtaining, based on the second information to identify the second data, the second data; and
performing, based on the second command, based on the second access information, the second data transfer between the target and the client using the memory access protocol.

### Claim 5 (depends on 4)

The method of claim 4, further comprising:
sending, based on the first data transfer, from the target to the server, a first completion;
sending, based on the second data transfer, from the target to the server, a second completion; and
sending, based on the first completion and the second completion, from the server to the client, an indication of success.

### Claim 6 (depends on 1)

The method of claim 1, wherein the data is configured for error correction.

### Claim 7 (depends on 1)

The method of claim 1, wherein the data transfer is a first data transfer, and the target is one of one or more targets, the method further comprising:
determining a status of the first data transfer; and
performing a second data transfer, based on the status, between the client and one of the one or more targets, of parity data using the memory access protocol.

### Claim 8 (depends on 7)

The method of claim 7, further comprising reconstructing the data based on the parity data.

### Claim 9 (depends on 8)

The method of claim 8, wherein the reconstructing is performed at the client.

### Claim 10 (depends on 1)

The method of claim 1, further comprising initializing a connection, between the client and the target, for the memory access protocol.

### Claim 11 (depends on 10)

The method of claim 10, further comprising:
sending, from the server to the client, configuration information for the target, wherein the connection is based on the configuration information.

### Claim 12 (depends on 1)

The method of claim 1, wherein the performing the data transfer comprises transferring the data from the target to the client.

### Claim 13 (depends on 1)

The method of claim 1, wherein the performing the data transfer comprises transferring the data from the client to the target.

### Claim 14

A system comprising:
a target configured to:
receive, using a first network path with a first protocol, a data transfer command, information to identify data comprising an object key including a data length and a data start address of the data, and access information; and
perform, based on the data transfer command and based on the access information, using a second network path, using a memory access protocol, a transfer of the data, wherein the access information includes a connection handle which is part of the memory access protocol and the target is a memory, wherein the connection handle is for the transfer of data between the target and client and the first protocol is different from the memory access protocol, and wherein the object key and the access information are encoded, at least partially, in an encoded object key, and the encoded object key is decoded at the target, at least partially to extract the connection handle.

### Claim 15 (depends on 14)

The system of claim 14, further comprising a server configured to:
receive, using a third network path, a request; and
send, to the target, based on the request, using the first network path, the data transfer command.

### Claim 16 (depends on 15)

The system of claim 15, further comprising a client configured to:
send, to the server, using the third network path, the request; and
perform, using the second network path, using the memory access protocol, the transfer of data.

### Claim 17

An apparatus comprising:
a target interface; and
one or more network interfaces configured to connect the target interface to a first network path and a second network path;
wherein the target interface is configured to:
receive, using the first network path with a first protocol, a data transfer command, information to identify data comprising an object key including a data length and a data start address of the data, and access information; and
perform a data transfer on the data, based on the data transfer command and based on the access information, using the second network path, using a memory access protocol, wherein the access information includes a connection handle which is part of the memory access protocol for the data transfer between the target interface and a client interface and the first protocol is different from the memory access protocol, and the target interface is a memory interface, and wherein the object key and the access information are encoded, at least partially, in an encoded object key, and the encoded object key is decoded at the target, at least partially to extract the connection handle.

### Claim 18 (depends on 17)

The apparatus of claim 17, wherein the target interface is configured to initialize a connection for the memory access protocol for the second network path.

### Claim 19 (depends on 17)

The apparatus of claim 17, further comprising one or more resources, wherein the target interface is configured to provide access, using the second network path, using the memory access protocol, to the one or more resources.
