IP Library Granted Patent US 9,892,082
Granted Patent B2
US 9,892,082 · App. 14/629,319 · Granted Feb 13, 2018

Encapsulated accelerator

Inventor: Steven L. Pope (Costa Mesa, CA)
Assignee: Solarflare Communications Inc.
G06F13/4221G06F13/102G06F13/28G06F13/385G06Q40/04H04L49/9068G06F12/1081G06F2213/0058G06F2213/3808
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 9,892,082
App. No.
14/629,319
Granted
Feb 13, 2018
Kind
B2
Abstract

A data processing system comprising a host computer system and a network interface device for connection to a network, the host computer system and network interface device being coupled together by means of a data bus, and: the network interface device comprising: a controller unit having a first data port for connection to a network, a second data port, and a data bus interface connected to said data bus, the controller unit being operable to perform, in dependence on the network endpoints to which data packets received at the network interface device are directed, switching of data packets between the first and second data ports and the data bus interface; and an accelerator module having a first medium access controller coupled to said second data port of the controller unit and a processor operable to perform one or more functions in hardware on data packets received at the accelerator module, the said first medium access controller being operable to support one or more first network endpoints; the host computer system supporting: a plurality of guest software domains including a first guest software domain having an application; and a privileged software domain configured to present a virtual operating platform to said plurality of guest domains, the privileged software entity including a first software driver for the controller unit but not including a second software driver for the accelerator module; wherein the application is configured to access the accelerator module by means of one or more first data packets formed in accordance with a predetermined network protocol and directed to one or more of the first network endpoints.

Claims (20)

1. A data processing system comprising:

a host computer system;

a plurality of quest software domains supported by the host computer system;

a privileged software domain supported by the host computer system; and

a network interface device for connection to a network, the host computer system and network interface device being coupled together by means of a data bus, the network interface device comprising:

a controller unit having a first data port for connection to a network, a second data port, and a data bus interface connected to said data bus, the controller unit being configured to perform, in dependence on the network endpoints to which data packets received at the network interface device are directed, switching of data packets between the first and second data ports and communication queues at the host computer system; and

an accelerator module having a first medium access controller coupled to said second data port of the controller unit and a processor configured to perform one or more functions in hardware on data packets received at the accelerator module; the said first medium access controller being configured to support one or more first network endpoints;

wherein the plurality of guest software domains include a first guest software domain having an application;

wherein the privileged software domain is configured to present a virtual operating platform to said plurality of guest domains, the privileged software domain including a first software driver for the controller unit but not including a second software driver for the accelerator module; and

wherein the application is configured to access the accelerator module by means of one or more first data packets formed in accordance with a predetermined network protocol and directed to one or more of the first network endpoints.

2. A data processing system as claimed in claim 1 , wherein the plurality of guest software domains includes a second guest software domain having a driver library for said accelerator module, the driver library supporting a second network endpoint and the privileged software domain being configured so as to allow the application to access the driver library by means of one or more second data packets directed to said second network endpoint, the second data packets being formed in accordance with the predetermined network protocol.

3. A data processing system as claimed in claim 2 , wherein the driver library is configured to manage the accelerator module by means of driver commands encapsulated within data packets of the predetermined network protocol and directed to one or more of the first network endpoints.

4. A data processing system as claimed in claim 1 , wherein the first guest software domain includes a communications library configured to translate send and receive requests by the application into the transmission and reception of data packets formed in accordance with the predetermined network protocol.

5. A data processing system as claimed in claim 1 , wherein the accelerator module further comprises a memory configured for storing data generated by the said one or more functions performed by the processor, and the application is configured to access said memory by means of one or more read requests encapsulated in one or more first data packets formed in accordance with the predetermined network protocol.

6. A data processing system as claimed in claim 1 , wherein the privileged software domain is a hypervisor or virtual machine monitor.

7. A data processing system as claimed in claim 6 , wherein said first software driver is integral with the kernel level code of the hypervisor or virtual machine monitor.

8. A data processing system as claimed in claim 1 , wherein the predetermined network protocol is UDP/IP and the network endpoints can be identified by IP addresses.

9. A data processing system as claimed in claim 1 , wherein the network interface device is an Ethernet network interface device and the first network endpoint can be identified by an Ethernet address.

10. A data processing system as claimed in claim 1 , wherein the application is a trading platform configured to perform trades at one or more financial exchanges accessible by means of the network interface device.

11. A data processing system as claimed in claim 1 , wherein the controller unit is configured to forward data packets received at the second data port to the accelerator module over the first data port only if those data packets are directed to one of the one or more first network endpoints.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 25, 2019
From: SOLARFLARE COMMUNICATIONS, INC.
To: XILINX, INC.
Reel/Frame 051108/0209 →
RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jul 31, 2019
From: ALLY BANK
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 049918/0440 →
RELEASE OF SECURITY INTEREST Recorded Jun 15, 2017
From: PACIFIC WESTERN BANK
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 042820/0890 →
SECURITY INTEREST Recorded Mar 7, 2017
From: SOLARFLARE COMMUNICATIONS, INC.
To: ALLY BANK
Reel/Frame 041902/0527 →
SECURITY INTEREST Recorded Apr 6, 2016
From: SOLARFLARE COMMUNICATIONS, INC.
To: PACIFIC WESTERN BANK
Reel/Frame 038363/0589 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 13, 2015
From: POPE, STEVEN L.
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 035161/0419 →
Continuity (2)
Division 12964642 · Dec 9, 2010
Related Publication 20150169496A1 · Jun 18, 2015