IP Library Granted Patent US 12,242,850
Granted Patent B1
US 12,242,850 · App. 17/955,307 · Granted Mar 4, 2025

Data processing and transmission using hardware serialization and deserialization functions

Inventors: Brian Arnold Petersen (San Francisco, CA); Joseph Andonieh (Aurora, CA); Roy T. Myers, Jr. (Morgan City, CA)
Assignee: Ethernovia Inc.
G06F9/30087H04L69/04
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 12,242,850
App. No.
17/955,307
Granted
Mar 4, 2025
Kind
B1
Abstract

Various embodiments described herein support or provide for data processing and data transmission using hardware serialization and hardware deserialization functions, such as receiving structured data from a software application, using the data communication hardware to perform operations including: serializing the structured data to generate a serialized byte string based on the one or more hardware parameters; generate one or more data packets based on the serialized byte string; appending one or more headers to the one or more data packets; and transmitting the one or more data packets to a device based on a plurality of network parameters.

Claims (58)

1. A method comprising:

receiving, at data communication hardware of a first electronic device, structured data from a software application that is operating by a processor of the first electronic device, the structured data being associated with one or more hardware parameters; and

using the data communication hardware to perform operations comprising:

serializing the structured data to generate a serialized byte string based on the one or more hardware parameters,

generate one or more data packets based on the serialized byte string,

appending one or more headers to the one or more data packets, the one or more headers including a plurality of network parameters, and

transmitting, via a network operatively coupled to the data communication hardware, the one or more headers and the one or more data packets to a second electronic device based on the plurality of network parameters.

2. The method of claim 1 , wherein the data communication hardware performs the operations further comprise:

generating one or more messages that include the serialized byte string, each message including a plurality of variables;

determining a variable length value for each of the plurality of variables; and

encoding the variable length value for each of the plurality of variables into the serialized byte string, the variable length value representing a length of data content associated with a corresponding variable.

3. The method of claim 2 , further comprising:

determining a message length value based on a sum of a plurality of variable length values determined for the plurality of variables.

4. The method of claim 3 , wherein the data communication hardware performs the operations further comprise:

generating a lengths list based on the plurality of variable length values determined for the plurality of variables.

5. The method of claim 4 , wherein an order of the plurality of variable length values arranged in the lengths list is different from an order of the plurality of variable length values used for serialization.

6. The method of claim 1 , wherein the data communication hardware performs the operations further comprise:

generating one or more messages that include the serialized byte string;

generating one or more tags for the one or more messages, each tag representing a message type and a message value of a corresponding message; and

encoding the one or more tags into the serialized byte string.

7. The method of claim 1 , wherein the structured data comprises one or more data structures, the method further comprising:

using the data communication hardware associated with the software application to convert the one or more data structures into the serialized byte string.

8. The method of claim 1 , wherein the data communication hardware of the first electronic device comprises a network interface controller of the first electronic device.

9. The method of claim 1 , wherein the one or more headers comprise one or more serialization protocol-specific headers and one or more network parameters that are associated with one or more network protocols, the one or more network protocols comprising at least one of Remote Direct Memory Access (RDMA) over Converged Ethernet Version 2 (RoCEv2) network protocol, User Datagram Protocol (UDP), Internet Protocol version 4 (IPv4), Internet Protocol version 4 (IPv6), or Ethernet protocol.

10. The method of claim 9 , wherein the one or more serialization protocol-specific headers comprise one or more protocol parameters associated with at least one of Scalable Service-Oriented Middleware over IP (SOME/IP) protocol, Protocol Buffers protocol, or Thrift protocol.

11. 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 data communication hardware of a first electronic device, structured data from a software application that is operating by a processor of the first electronic device, the structured data being associated with one or more hardware parameters; and

using the data communication hardware to perform operations comprising:

serializing the structured data to generate a serialized byte string based on the one or more hardware parameters,

generate one or more data packets based on the serialized byte string,

appending one or more headers to the one or more data packets, the one or more headers including a plurality of network parameters, and

transmitting, via a network operatively coupled to the data communication hardware, the one or more headers and the one or more data packets to a second electronic device based on the plurality of network parameters.

12. The system of claim 11 , wherein the data communication hardware performs the operations further comprise:

generating one or more messages that include the serialized byte string, each message including a plurality of variables;

determining a variable length value for each of the plurality of variables; and

encoding the variable length value for each of the plurality of variables into the serialized byte string, the variable length value representing a length of data content associated with a corresponding variable.

13. The system of claim 12 , wherein the operations further comprise:

determining a message length value based on a sum of a plurality of variable length values determined for the plurality of variables.

14. The system of claim 13 , wherein the data communication hardware performs the operations further comprise:

generating a lengths list based on the plurality of variable length values determined for the plurality of variables.

15. The system of claim 14 , wherein an order of the plurality of variable length values arranged in the lengths list is different from an order of the plurality of variable length values used for serialization.

16. The system of claim 11 , wherein the data communication hardware performs the operations further comprise:

generating one or more messages that include the serialized byte string;

generating one or more tags for the one or more messages, each tag representing a message type and a message value of a corresponding message; and

encoding the one or more tags into the serialized byte string.

17. The system of claim 11 , wherein the structured data comprises one or more data structures, and wherein the operations further comprise:

using the data communication hardware associated with the software application to convert the one or more data structures into the serialized byte string.

18. The system of claim 11 , wherein the data communication hardware of the first electronic device comprises a network interface controller of the first electronic device.

19. The system of claim 11 , wherein the one or more headers comprise one or more serialization protocol-specific headers and one or more network parameters that are associated with one or more network protocols, the one or more network protocols comprising at least one of Remote Direct Memory Access (RDMA) over Converged Ethernet Version 2 (RoCEv2) network protocol, User Datagram Protocol (UDP), Internet Protocol version 4 (IPv4), Internet Protocol version 4 (IPv6), or Ethernet protocol.

20. A non-transitory computer-readable medium comprising instructions that, when executed by a hardware processor of a device, cause the device to perform operations comprising:

receiving, at data communication hardware of a first electronic device, structured data from a software application that is operating by a processor of the first electronic device, the structured data being associated with one or more hardware parameters; and

using the data communication hardware to perform operations comprising:

serializing the structured data to generate a serialized byte string based on the one or more hardware parameters,

generate one or more data packets based on the serialized byte string,

appending one or more headers to the one or more data packets, the one or more headers including a plurality of network parameters, and

transmitting, via a network operatively coupled to the data communication hardware, the one or more headers and the one or more data packets to a second electronic device based on the plurality of network parameters.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2022
From: PETERSEN, BRIAN ARNOLD; ANDONIEH, JOSEPH; MYERS, ROY T., JR.
To: ETHERNOVIA INC.
Reel/Frame 061427/0352 →
Continuity (1)
Provisional Application 63261825 · Sep 29, 2021
References Cited (48)
US 6636511B1 · Roy et al. · 2003 [cited by applicant]
US 7161937B1 · Dunning et al. · 2007 [cited by applicant]
US 7248573B2 · Harrison et al. · 2007 [cited by applicant]
US 7366267B1 · Lee et al. · 2008 [cited by applicant]
US 7509434B1 · Crosmer · 2009 [cited by examiner]
US 8966283B1 · Shankar · 2015 [cited by examiner]
US 9087138B2 · Zhou · 2015 [cited by applicant]
US 9723091B1 · Krock et al. · 2017 [cited by applicant]
US 9825949B2 · Asenjo · 2017 [cited by examiner]
US 10333731B2 · Ebrom et al. · 2019 [cited by applicant]
US 11172054B2 · Hermesh et al. · 2021 [cited by applicant]
US 12008259B1 · Petersen et al. · 2024 [cited by applicant]
US 20080114842A1 · Ellis et al. · 2008 [cited by applicant]
US 20100191525A1 · Rabenko · 2010 [cited by examiner]
US 20110137991A1 · Russell · 2011 [cited by applicant]
US 20120120960A1 · Nishioka · 2012 [cited by applicant]
US 20120216216A1 · Lopez et al. · 2012 [cited by applicant]
US 20160100027A1 · Haghighi · 2016 [cited by applicant]
US 20160179595A1 · Wong et al. · 2016 [cited by applicant]
US 20170163662A1 · Zhou et al. · 2017 [cited by applicant]
US 20170318031A1 · Zhou et al. · 2017 [cited by applicant]
US 20180054214A1 · Takahashi · 2018 [cited by applicant]
US 20190149751A1 · Wise · 2019 [cited by applicant]
US 20190278701A1 · Enz et al. · 2019 [cited by applicant]
US 20190347022A1 · Thiel et al. · 2019 [cited by applicant]
US 20190354310A1 · Tsirkin · 2019 [cited by applicant]
US 20210117360A1 · Kutch et al. · 2021 [cited by applicant]
CN 112712842 · 2021 [cited by applicant]
EP 3012740 · 2016 [cited by applicant]
WO 2005052754 · 2005 [cited by applicant]
“U.S. Appl. No. 17/955,324, Non Final Office Action mailed Dec. 7, 2023”, 15 pgs. [cited by applicant]
“U.S. Appl. No. 17/955,324, Response filed Dec. 29, 2023 to Non Final Office Action mailed Dec. 7, 2023”, 14 pgs. [cited by applicant]
“U.S. Appl. No. 17/955,324, Examiner Interview Summary mailed Jan. 2, 2024”, 2 pgs. [cited by applicant]
“U.S. Appl. No. 17/955,324, Notice of Allowance mailed Feb. 8, 2024”, 8 pgs. [cited by applicant]
“U.S. Appl. No. 17/955,324, 312 Amendment filed Feb. 27, 2024”, 6 pgs. [cited by applicant]
Hazelcase, “What Is Deserialization?”, (Jun. 14, 2021), 1-3. [cited by applicant]
Microsoft, “Computer Dictionary”, Fifth Edition, (2002), p. 122, 329, and 390. [cited by applicant]
“U.S. Appl. No. 17/955,324, PTO Response to Rule 312 Communication mailed Mar. 21, 2024”, 2 pgs. [cited by applicant]
“U.S. Appl. No. 17/955,317, Non Final Office Action mailed Jun. 18, 2024”, 10 pgs. [cited by applicant]
Arslan, “Nano Transport: A Low-Latency, Programmable Transport Layer for NICs”, Stanford University, (2021), 14 pgs. [cited by applicant]
Giuseppe, “Custom Struct Serialization for Networking in Unreal Engine”, [Online]. Retrieved from the Internet: http:www.aclockworkberry.com custom-struct-serialization-for-networking-in-unreal-engine, (2016), 8 pgs. [cited by applicant]
Ibanez, “The nanoPU: A Nanosecond Network Stack for Datacenters”, USENIX Association, (2021), 239-256. [cited by applicant]
Radostaw, Sokol, “Serialization of data structures in the C++ programming language using the reflection information”, [Online]. Retrieved from the Internet: https: web.archive.Org web 20200710005734 https: dspace5.zcu.c… [cited by applicant]
“U.S. Appl. No. 17/955,317, Examiner Interview Summary mailed Sep. 11, 2024”, 2 pgs. [cited by applicant]
“U.S. Appl. No. 17/955,317, Response filed Sep. 11, 2024 to Non Final Office Action mailed Jun. 18, 2024”, 13 pgs. [cited by applicant]
“U.S. Appl. No. 17/55,315, Non Final Office Action mailed Oct. 18, 2024”, 10 pgs. [cited by applicant]
“U.S. Appl. No. 17/955,317, Notice of Allowance mailed Oct. 24, 2024”, 7 pgs. [cited by applicant]
Tanenbaum, Andrew S., “Structured Computer Organization”, Prentice-Hall, Inc., Englewood Cliffs, New Jersey, 2nd Edition, (1984), 10-12. [cited by applicant]