IP Library Granted Patent US 7,502,869
Granted Patent B2
US 7,502,869 · App. 10/724,588 · Granted Mar 10, 2009

Intelligent network interface system and method for accelerated protocol processing

Assignee: Alacritech, Inc.
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 7,502,869
App. No.
10/724,588
Granted
Mar 10, 2009
Kind
B2
Abstract

A system for protocol processing in a computer network has an intelligent network interface card (INIC) or communication processing device (CPD) associated with a host computer. The CPD provides a fast-path that avoids protocol processing for most large multipacket messages, greatly accelerating data communication. The CPD also assists the host CPU for those message packets that are chosen for processing by host software layers. A context for a message is defined that allows DMA controllers of the CPD to move data, free of headers, directly to or from a destination or source in the host. The context can be stored as a communication control block (CCB) that is controlled by either the CPD or by the host CPU. The CPD contains specialized hardware circuits that process media access control, network and transport layer headers of a packet received from the network, saving the host CPU from that processing for fast-path messages.

Claims (46)

1. A system for communication between by a local host that is connectable by a network to a remote host, the system comprising:

a communication processing device (CPD) that is integrated into the local host to connect the network and the local host, said CPD including hardware configured to analyze Internet Protocol (IP) and Transmission Control Protocol (TCP) headers of network packets, and

a central processing unit (CPU) running protocol processing instructions in the local host to create a TCP connection between the local host and the remote host, said CPU providing to said CPD a media-access control (MAC) address, an IP address and a TCP port that correspond to said connection, wherein said CPD and said CPU are configured such that a message transferred between the network and the local host is generally processed by said CPD instead of said CPU when said CPD controls said connection and said message corresponds to said connection.

2. The system of claim 1 , wherein said CPU provides to said CPD an address in local host memory for storing application data from said message.

3. The system of claim 1 , wherein said CPU provides to said CPD an address in local host memory for retrieving application data corresponding to said connection.

4. The system of claim 1 , wherein said CPD is connected to said CPU by a bus.

5. The system of claim 1 , wherein said CPD includes a microprocessor.

6. The system of claim 1 , wherein said CPD is connected to an input/output (I/O) controller.

7. The system of claim 6 , wherein said I/O controller is a peripheral component interconnect (PCI) bridge.

8. The system of claim 1 , further comprising a memory that is disposed in said host and accessible by said CPU and said CPD.

9. The system of claim 1 , wherein said CPD is integrated with a peripheral component interconnect (PCI) bridge.

10. The system of claim 1 , wherein said CPD is integrated with a memory controller for said CPU.

11. The system of claim 1 , wherein said CPD is integrated with an I/O controller and a memory controller for said CPU.

12. The system of claim 1 , wherein said CPD is connected with an I/O controller that connects said CPD to a memory controller for said CPU.

13. The system of claim 1 , wherein said CPD is connected to a hub interface bus that connects a memory controller to an I/O controller.

14. The system of claim 1 , wherein said message is received from the network by the local host.

15. A system for communication by a local host that is connectable by a network to a remote host, the system comprising:

a communication processing device (CPD) that is integrated into the local host to connect the network and the local host, said CPD including hardware configured to analyze Internet Protocol (IP) and Transmission Control Protocol (TCP) headers of network packets, and

a central processing unit (CPU) running protocol processing instructions in the local host to create a TCP connection between the local host and the remote host, said CPU providing to said CPD a media-access control (MAC) address, an IP address and a TCP port that correspond to said connection, wherein said CPD and said CPU are configured such that a packet transferred between the network and the local host is processed by said CPD and not by said CPU when said CPD controls said connection and said packet corresponds to said connection.

16. The system of claim 15 , wherein said CPD is connected to said CPU by a bus.

17. The system of claim 15 , wherein said CPD includes a microprocessor.

18. The system of claim 15 , wherein said CPD is connected to an input/output (I/O) controller.

19. The system of claim 15 , wherein said CPD is connected to a peripheral component interconnect (PCI) bridge.

20. The system of claim 15 , further comprising a memory that is disposed in said host and accessible by said CPU and said CPD.

21. The system of claim 15 , wherein said CPD is integrated with a peripheral component interconnect (PCI) bridge.

22. The system of claim 15 , wherein said CPD is integrated with a memory controller for said CPU.

23. The system of claim 15 , wherein said CPD is integrated with an I/O controller and a memory controller for said CPU.

24. The system of claim 15 , wherein said CPD is connected with an I/O controller that connects said CPD to a memory controller for said CPU.

25. The system of claim 15 , wherein said CPD is connected to a hub interface bus that connects a memory controller to an I/O controller.

26. The system of claim 15 , further comprising an ownership bit disposed in the local host, said ownership bit designating whether said CPU or said CPD controls said connection.

27. The system of claim 15 , wherein said packet is received from the network by the local host.

28. A system for communication by a local host that is connectable by a network to a remote host, the system comprising:

a central processing unit (CPU) disposed in the local host and running protocol processing instructions to create a Transmission Control Protocol (TCP) connection between the local host and the remote host, said CPU processing a first network packet corresponding to said connection; and

a communication processing device (CPD) integrated into the local host and connected to the network, said CPU providing to said CPD a media-access control (MAC) address, an Internet Protocol (IP) address and a Transmission Control Protocol (TCP) port that correspond to said connection, said CPD receiving control of said connection from said CPU, said CPD classifying a second network packet as corresponding to said connection and processing said second network packet without any protocol processing of said second network packet by said CPU.

29. The system of claim 28 , wherein said CPD is connected to said CPU by a bus.

30. The system of claim 28 , wherein said CPD includes a microprocessor.

31. The system of claim 28 , wherein said CPD is connected to an input/output (I/O) controller.

32. The system of claim 28 , wherein said CPD is connected to a peripheral component interconnect (PCI) bridge.

33. The system of claim 28 , further comprising a memory that is accessible by said CPU and said CPD.

34. The system of claim 28 , wherein said CPD is integrated with a peripheral component interconnect (PCI) bridge.

35. The system of claim 28 , wherein said CPD is integrated with a memory controller for said CPU.

36. The system of claim 28 , wherein said CPD is integrated with an I/O controller and a memory controller for said CPU.

37. The system of claim 28 , wherein said CPD is connected with an I/O controller that connects said CPD to a memory controller for said CPU.

38. The system of claim 28 , wherein said CPD is connected to a hub interface bus that connects a memory controller to an I/O controller.

39. The system of claim 28 , further comprising an ownership bit disposed in the local host, said ownership bit designating whether said CPU or said CPD controls said connection.

40. The system of claim 28 , wherein said second network packet is received from the network by the local host.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 22, 2016
From: A-TECH LLC
To: ALACRITECH, INC.
Reel/Frame 039068/0884 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 15, 2013
From: ALACRITECH INC.
To: A-TECH LLC
Reel/Frame 031644/0783 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 7, 2005
From: PHILBRICK, CLIVE M.; CRAFT, PETER K.; HIGGEN, DAVID A.; STARR, DARYL D.; BILGHTMAN, STEPHEN E. J.; BOUCHER, LAURENCE B.
To: ALACRITECH, INC.
Reel/Frame 016233/0022 →
Continuity (19)
Continuation 0980255000 · Mar 9, 2001
Continuation In Part 0906754400 · Apr 27, 1998
Continuation In Part 0914171300 · Aug 28, 1998
Continuation In Part 1000553600 · Nov 7, 2001
Continuation In Part 0980255100 · Mar 9, 2001
Continuation In Part 0980242600 · Mar 9, 2001
Continuation In Part 0980148800 · Mar 7, 2001
Continuation In Part 0978936600 · Feb 20, 2001
Continuation In Part 0974893600 · Dec 26, 2000
Continuation In Part 0969256100 · Oct 18, 2000
Continuation In Part 0967570000 · Sep 29, 2000
Continuation In Part 0967548400 · Sep 29, 2000
Continuation In Part 0946428300 · Dec 15, 1999
Continuation In Part 0943960300 · Nov 12, 1999
Continuation In Part 0941692500 · Oct 13, 1999
Continuation In Part 0938479200 · Aug 27, 1999
Provisional Application 6009829600 · Aug 27, 1998
Provisional Application 6006180900 · Oct 14, 1997
Related Publication 20040111535A1 · Jun 10, 2004