# US 12,008,259 B1 · Data processing and transmission using hardware serialization and deserialization functions

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

- Number: US 12,008,259 B1
- Document ID: US12008259B1
- Status: Granted
- Kind: B1
- Application number: 17/955,324
- Filed: 2022-09-28
- Granted: 2024-06-11
- Earliest claimed: 2021-09-29
- Assignees: Ethernovia Inc.
- Applicants: Ethernovia Inc.
- Inventors: Brian Arnold Petersen; Joseph Andonieh; Roy T. Myers, Jr.
- Web page: https://patentgrep.com/patent/US12008259B1

## CPC

- G06F 3/0655: {Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 8/51: Source to source
- G06F 9/30087: {Synchronisation or serialisation instructions}
- H04L 69/04: Protocols for data compression, e.g. ROHC
- 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

Various embodiments described herein support or provide for data processing and transmission using hardware serialization and hardware deserialization functions, such as receiving a data packet from a second electronic device over a network; determining, by a data communication hardware, that the header indicates the payload data includes serialized data; deserializing, by the data communication hardware, the serialized data; and storing, by the data communication hardware, deserialized data in a memory of the first electronic device for further processing by a processor of the first electronic device.

## Claims

### Claim 1

A method comprising:
receiving, at a first device, a data packet from a second device over a network, the data packet comprising a header and payload data;
determining, by a network interface controller of the first device, that the header indicates the payload data comprises serialized data;
deserializing, by the network interface controller, the serialized data; and
storing, by the network interface controller, deserialized data in a memory of the first device for further processing by a processor of the first device, the processor being different from the network interface controller, the memory being external to the network interface controller and the processor and accessible by the processor.

### Claim 2 (depends on 1)

The method of claim 1, wherein the serialized data comprises at least one of an entirety of a message or a portion of the message that requires deserialization.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
determining that the data packet comprises raw data that does not require header stripping, length truncation, or payload transformation; and
storing the raw data directly in the memory of the first device.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
determining that the data packet comprises a message or a portion of the message that cannot be deserialized by the network interface controller of the first device; and
transmitting the data packet to the processor of the first device for processing.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
upon determining that the data packet comprises the serialized data, storing, by the network interface controller, the data packet in a temporary buffer of the network interface controller that comprises a plurality of received data packets; and
deserializing, by the network interface controller, the plurality of received data packets in parallel.

### Claim 6 (depends on 1)

The method of claim 1, wherein the memory is an on-chip memory or an off-chip memory of the first device.

### Claim 7 (depends on 1)

The method of claim 1, wherein the network interface controller is associated with the first device.

### Claim 8

A system comprising:
a memory storing instructions; and
one or more hardware processors communicatively coupled to the memory and configured by the instructions to perform operations comprising:
receiving, at a first device, a data packet from a second device over a network, the data packet comprising a header and payload data;
determining, by a network interface controller of the first device, that the header indicates the payload data comprises serialized data;
deserializing, by the network interface controller, the serialized data; and
storing, by the network interface controller, deserialized data in a memory of the first device for further processing by a processor of the first device, the processor being different from the network interface controller, the memory being external to the network interface controller and the processor and accessible by the processor.

### Claim 9 (depends on 8)

The system of claim 8, wherein the serialized data comprises at least one of an entirety of a message or a portion of the message that requires deserialization.

### Claim 10 (depends on 8)

The system of claim 8, wherein the operations further comprise:
determining that the data packet comprises raw data that does not require header stripping, length truncation, or payload transformation; and
storing the raw data directly in the memory of the first device.

### Claim 11 (depends on 8)

The system of claim 8, wherein the operations further comprise:
determining that the data packet comprises a message or a portion of the message that cannot be deserialized by the network interface controller of the first device; and
transmitting the data packet to the processor of the first device for processing.

### Claim 12 (depends on 8)

The system of claim 8, wherein the operations further comprise:
upon determining that the data packet comprises the serialized data, storing, by the network interface controller, the data packet in a temporary buffer of the network interface controller that comprises a plurality of received data packets; and
deserializing, by the network interface controller, the plurality of received data packets in parallel.

### Claim 13 (depends on 8)

The system of claim 8, wherein the memory is an on-chip memory or an off-chip memory of the first device.

### Claim 14 (depends on 8)

The system of claim 8, wherein the network interface controller is associated with the first device.

### Claim 15

A non-transitory computer-readable medium comprising instructions that, when executed by a hardware processor of a first device, cause the first device to perform operations comprising:
receiving, at the first device, a data packet from a second device over a network, the data packet comprising a header and payload data;
determining, by a network interface controller of the first device, that the header indicates the payload data comprises serialized data;
deserializing, by the network interface controller, the serialized data; and
storing, by the network interface controller, deserialized data in a memory of the first device for further processing by a processor of the first device, the processor being different from the network interface controller, the memory being external to the network interface controller and the processor and accessible by the processor.

### Claim 16 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the operations further comprise:
determining that the data packet comprises raw data that does not require header stripping, length truncation, or payload transformation; and
storing the raw data directly in the memory of the first device.

### Claim 17 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the operations further comprise:
determining that the data packet comprises a message or a portion of the message that cannot be deserialized by the network interface controller of the first device; and
transmitting the data packet to the processor of the first device for processing.

### Claim 18 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the operations further comprise:
upon determining that the data packet comprises the serialized data, storing, by the network interface controller, the data packet in a temporary buffer of the network interface controller that comprises a plurality of received data packets; and
deserializing, by the network interface controller, the plurality of received data packets in parallel.

### Claim 19 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the memory is an on-chip memory or an off-chip memory of the first device.

### Claim 20 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the network interface controller is associated with the first device.
