Network interface device having general-purpose computing capability

US9350828B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9350828-B2
Application numberUS-201213565615-A
CountryUS
Kind codeB2
Filing dateAug 2, 2012
Priority dateAug 2, 2012
Publication dateMay 24, 2016
Grant dateMay 24, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Techniques for a network interface controller (NIC) capable of performing general-purpose computing tasks without intervention from a central processing unit (CPU) are disclosed herein. The network interface controller includes a circuit board, a network interface, a computer bus interface and a processor. The network interface is operatively coupled to the circuit board for receiving network packets. The computer bus interface is operatively coupled to the circuit board for receiving a general-purpose program. The processor is operatively coupled to the circuit board and capable of executing the general-purpose program to process the network packets.

First claim

Opening claim text (preview).

What is claimed is: 1. A hardware network interface controller, comprising: a circuit board; a network interface operatively coupled to the circuit board for receiving network packets, the network packets including a client request; a computer bus interface operatively coupled to the circuit board for receiving a general-purpose program from a memory of a host computer; and a hardware processor operatively coupled to the circuit board and configured to execute the general-purpose program to process the network packets and to directly access data on the memory of the host computer via the computer bus interface based on the network packets without intervention from a central processing unit of the host computer; wherein the hardware processor is further configured to generate a plurality of new network packets based on the data from the memory of the host computer as a result of the executing the general-purpose program to process the network packets, the network packets including a response to the client request that is generated by the hardware processor without intervention from the central processing unit of the host computer; and wherein the hardware network interface controller is configured to send via the network interface the new network packets including the response to the client request, wherein the hardware network interface controller is an expansion card to be inserted in the host computer for executing the general-purpose program without intervention from the central processing unit of the host computer. 2. The hardware network interface controller of claim 1 , wherein the general-purpose program is based on a functionally complete set of logic operators. 3. The hardware network interface controller of claim 1 , wherein the network interface is an Ethernet interface, a WiFi interface, or a Token Ring interface. 4. The hardware network interface controller of claim 1 , wherein the computer bus interface is a PCI interface, a PCI-X interface, a PCI Express interface, or a USB interface. 5. The hardware network interface controller of claim 1 , wherein a clock rate of the hardware processor is higher than a bitrate of the network packets. 6. The hardware network interface controller of claim 1 , wherein the network packets comprises at least one of TCP segments and UDP segments. 7. The hardware network interface controller of claim 1 , further comprising: a read-write memory operatively coupled to the circuit board for storing the general-purpose program and storing program state information when the hardware processor executes the general-purpose program. 8. The hardware network interface controller of claim 1 , wherein the processor is configured to execute the general-purpose program to process the network packets while the processor continues to serve regular network interface controller tasks. 9. A computer, comprising: a central processing unit; a memory; and a hardware network interface controller expansion card inserted in the computer, the network interface controller expansion card including: a circuit board; a network interface operatively coupled to the circuit board for receiving network packets, the network packets including a client request; a computer bus interface operatively coupled to the circuit board for receiving a general-purpose program and directly accessing the memory of the computer; and a hardware processor of the network interface controller expansion card operatively coupled to the circuit board and configured to execute the general-purpose program to process the network packets and to directly access data on the memory of the computer via the computer bus interface based on the network packets without intervention from the central processing unit of the computer; wherein the hardware processor is further configured to generate a plurality of new network packets based on the data from the memory of the host computer as a result of the executing the general-purpose program to process the network packets, the network packets including a response to the client request that is generated by the hardware processor without intervention from the central processing unit of the computer; and wherein the network interface is further configured to send the new network packets including the response to the client request. 10. The computer of claim 9 , wherein the network interface controller expansion card further includes: a general programming module configured to recognize the general-purpose program received via the computer bus interface, and prepare the general-purpose program for execution at the hardware processor. 11. The computer of claim 9 , wherein, during operation, the hardware processor of the network interface controller expansion card is configured to execute a general-purpose program that is not predetermined by hardware components of the network interface controller expansion card. 12. The computer of claim 9 , wherein the memory of the computer includes a volatile memory. 13. The computer of claim 9 , wherein the memory of the computer includes a non-volatile storage. 14. The computer of claim 9 , wherein the general-purpose program is a computing task for Memcached, Haystack, web server, compression, decompression, encryption, or decryption. 15. A computer implemented method, comprising: retrieving, via a computer bus interface of a network interface controller, a general-purpose program from a memory of a host computer, wherein the network interface controller is an expansion card inserted in the host computer; receiving, via a network interface of the hardware network interface controller, a plurality of network packets, the received network packets including a client request; in response to the client request, executing, at a hardware processor of the network interface controller, the general-purpose program to process the network packets, to directly access data on the memory of the host computer via the computer bus interface based on the network packets without intervention from a central processing unit of the host computer, and to generate a plurality of new network packets based on the data as a result of executing the general purpose program, wherein the new network packets include a response to the client request that is generated without intervention from the central processing unit of the host computer; and sending, via the network interface of the hardware network interface controller, the new network packets including the response to the client request.

Assignees

Inventors

Classifications

  • H04L69/12Primary

    Protocol engines · CPC title

  • H04L67/142Primary

    Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9350828B2 cover?
Techniques for a network interface controller (NIC) capable of performing general-purpose computing tasks without intervention from a central processing unit (CPU) are disclosed herein. The network interface controller includes a circuit board, a network interface, a computer bus interface and a processor. The network interface is operatively coupled to the circuit board for receiving network p…
Who is the assignee on this patent?
Frachtenberg Eitan, Berezecki Mateusz, Facebook Inc
What technology area does this patent fall under?
Primary CPC classification H04L69/12. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue May 24 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).