IP Library Granted Patent US 11,604,747
Granted Patent B2
US 11,604,747 · App. 17/034,726 · Granted Mar 14, 2023

Programmable hardware virtual network interface

Inventors: Patrick Karl Sisterhen (Cedar Park, TX); Ashish S. Chaudhari (San Jose, CA); Moritz Daniel Fischer (Santa Clara, CA); Daniel Paul Jepson (Austin, TX); Hector M. Rubio (Austin, TX); Andrew Michael Lynch (Austin, TX); Klaus Martin Braun (Eggenstein-Leopoldshafen, DE); Antonia Marie Walls Jones (Austin, TX)
Assignee: National Instruments Corporation
G06F13/28G06F13/4027
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,604,747
App. No.
17/034,726
Granted
Mar 14, 2023
Kind
B2
Abstract

Systems and methods for communication between heterogenous processors via a virtual network interface implemented via programmable hardware and one or more buses. The programmable hardware may be configured with a multi-function bus such that the programmable hardware appears as both a network device and a programmable device to a host system. Additionally, the programmable hardware may be configured with a second bus to appear as a network device to an embedded system. Each system may implement network drivers to allow access to direct memory access engines configured on the programmable hardware. The configured programmable hardware and the network drivers may enable a virtual network connection between the systems to allow for information transfer via one or more network communication protocols.

Claims (62)

1. A programmable hardware element, comprising:

a first one or more circuits configured as a first bus interface, wherein the first bus interface comprises a multi-function bus interface, wherein the multi-function bus interface operates according to a peripheral component interconnect express (PCIe) bus;

a second one or more circuits configured as a first direct memory access (DMA) engine associated with a first system via a first path of the multi-function bus interface;

a third one or more circuits configured as a second DMA engine associated with a second system;

a fourth one or more circuits configured as a second bus interface; and

a fifth one or more circuits configured as a reconfigurable logic device associated with the first system via a second path of the multi-function bus interface, wherein the first system accesses the reconfigurable logic device via a reconfigurable logic driver;

wherein the programmable hardware element is configured to:

receive, via the first path of the multi-function bus interface, first information from the first system into the first DMA engine, wherein the first information is received according to a network communications protocol, wherein the network communications protocol includes at least one of user data protocol (UDP), transport control protocol (TCP) sockets, Internet protocol (IP) sockets, remote procedure calls (RPCs), or a secure shell (SSH), and wherein the multi-function bus interface allows the programmable hardware element to appear as a network device and the reconfigurable logic device to the first system;

transfer the first information to the second DMA engine; and

send, to the second system, the first information via the second bus interface, wherein the first information is sent according to the network communications protocol.

2. The programmable hardware element of claim 1 ,

wherein the first system and the second system operate based on differing operating systems.

3. The programmable hardware element of claim 1 ,

wherein the second bus comprises an Advanced eXtensible Interface (AXI) bus.

4. The programmable hardware element of claim 1 ,

wherein the first system operates according to an x86 processor architecture, and wherein the second system operates according to a reduced instruction set computing architecture (RISC).

5. The programmable hardware element of claim 1 ,

wherein the multi-function allows the first system and the second system to communicate via network application programming interfaces (APIs) without requiring corresponding network interface cards (NICs).

6. The programmable hardware element of claim 1 ,

wherein the multi-function allows the first system and the second system to communicate via network application programming interfaces (APIs) without requiring corresponding Ethernet cabling between the first system and the second system.

7. A non-transitory computer readable memory medium storing program instructions executable by processing circuitry of a first computer system to:

provide a virtual network connection to a second computer system, wherein the first computer system and the second computer system operate based on differing processor architectures, wherein the virtual network connection is via programmable hardware in communication via bus interfaces with the first and second computer systems; and

send, via a network communications protocol, first information to the second computer system via the programmable hardware, wherein the programmable hardware implements a multi-function bus interface such that the programmable hardware presents as a network interface via a first path of the multi-function bus interface and a reconfigurable logic device via a second path of the multi-function bus interface, wherein the multi-function bus interface operates according to a peripheral component interconnect express (PCIe) bus, and wherein the network communications protocol comprises at least one of user data protocol (UDP), transport control protocol (TCP) sockets, Internet protocol (IP) sockets, remote procedure calls (RPCs), or a secure shell (SSH).

8. The non-transitory computer readable memory medium of claim 7 ,

wherein the program instructions are further executable to provide functionality for one or more of:

device enumeration by operating system services of the first computer system;

device configuration by operating system services;

device configuration by user configured applications;

device configuration by user created applications; or

data transfer between the first computer system and enumerated or configured devices.

9. The non-transitory computer readable memory medium of claim 7 ,

wherein a first path of the multi-function bus interface provides direct memory access between the first computer system and the programmable hardware, thereby allowing the first information to be transferred between the first computer system and the programmable hardware.

10. The non-transitory computer readable memory medium of claim 9 ,

wherein a second path via the multi-function bus interface provides the first computer system with access to a configurable portion of the programmable hardware.

11. The non-transitory computer readable memory medium of claim 9 ,

wherein the first path provides the virtual network connection.

12. The non-transitory computer readable memory medium of claim 7 ,

wherein to send the first information to the second computer system, the program instructions are further executable to cause the first computer system to:

send, via a first path of the multi-function bus interface, data to a first direct memory access (DMA) engine on the programmable hardware, wherein the first DMA engine is associated with the first computer system.

13. The non-transitory computer readable memory medium of claim 7 ,

wherein the first system and the second system operate based on differing operating systems.

14. The non-transitory computer readable memory medium of claim 7 ,

wherein the multi-function allows the first computer system and the second computer system to communicate via network application programming interfaces (APIs) without requiring corresponding network interface cards (NICs).

15. A non-transitory computer readable memory medium storing program instructions executable by processing circuitry of a first computer system to:

provide a virtual network connection to a second computer system, wherein the first computer system and the second computer system operate based on differing processor architectures, wherein the virtual network connection is via a field programmable gate array (FPGA) fabric in communication via bus interfaces with the first and second computer systems; and

send, via a network communications protocol, first information to the second computer system via the FPGA fabric, wherein the FPGA fabric implements a multi-function bus interface with the first computer system such that the FPGA fabric presents to the first computer system as a reconfigurable logic device via a first path of the multi-function bus interface and a network interface via a second path of the multi-function bus interface, wherein the multi-function bus operates according to a peripheral component interconnect express (PCIe) bus, and wherein the network communications protocol comprises at least one of user data protocol (UDP), transport control protocol (TCP) sockets, Internet protocol (IP) sockets, remote procedure calls (RPCs), or a secure shell (SSH).

16. The non-transitory computer readable memory medium of claim 15 ,

wherein the program instructions are further executable to provide functionality for one or more of:

device enumeration by operating system services of the first computer system;

device configuration by operating system services;

device configuration by user configured applications;

device configuration by user created applications; or

data transfer between the first computer system and enumerated or configured devices.

17. The non-transitory computer readable memory medium of claim 15 ,

wherein the bus interface provides direct memory access between the first computer system and the FPGA fabric, thereby allowing the first information to be transferred between the first computer system and the FPGA fabric.

18. The non-transitory computer readable memory medium of claim 15 ,

wherein to send the first information to the second computer system, the program instructions are further executable to cause the first computer system to:

send, via the bus interface, the first information to a first direct memory access (DMA) engine on the FPGA fabric, wherein the first DMA engine is associated with the first computer system.

19. The non-transitory computer readable memory medium of claim 15 ,

wherein the first computer system operates according to a reduced instruction set computing architecture, and wherein the second system operates according to an x86 processor architecture.

20. The non-transitory computer readable memory medium of claim 15 ,

wherein the multi-function allows the first computer system and the second computer system to communicate via network application programming interfaces (APIs) without requiring corresponding network interface cards (NICs).

Assignments (3)
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 057280/0028) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 065231/0466 →
SECURITY INTEREST Recorded Jun 18, 2021
From: NATIONAL INSTRUMENTS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 057280/0028 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2020
From: SISTERHEN, PATRICK KARL; CHAUDHARI, ASHISH S.; FISCHER, MORITZ DANIEL; JEPSON, DANIEL PAUL; RUBIO, HECTOR M.; LYNCH, ANDREW MICHAEL; BRAUN, KLAUS MARTIN; JONES, ANTONIA MARIE WALLS
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 053904/0238 →