Intelligent network interfaced device and system for accelerated communication
First Claim
1. A device for communication between a network and a host computer, the device being coupled to the network and being coupled to the host computer, the host computer having a protocol stack, the device comprising:
- a receive sequencer that analyzes headers of packets received onto the device from the network, the receive sequencer generating for each of the packets an associated summary, each of the summaries being indicative of whether the associated packet is a fast-path candidate;
a memory that stores the summaries; and
a processor that obtains the summaries from the memory and determines, for each summary indicating that the associated packet is a fast-path candidate, whether the associated packet meets a plurality of fast-path criteria, and wherein if the processor determines that a packet meets the plurality of fast-path criteria then the processor performs transport and network layer processing of the packet on the device such that the protocol stack of the host computer does not perform the transport or network layer processing of the packet, whereas if the processor determines that the packet does not meet the plurality of fast-path criteria then the processor does not perform the transport and network layer processing such that the transport and network layer processing is done by the protocol stack of the host computer.
3 Assignments
0 Petitions
Accused Products
Abstract
An intelligent network interface card (INIC) or communication processing device (CPD) works with a host computer for data communication. The device provides a fast-path that avoids protocol processing for most messages, greatly accelerating data transfer and offloading time-intensive processing tasks from the host CPU. The host retains a fallback processing capability for messages that do not fit fast-path criteria, with the device providing assistance such as validation even for slow-path messages, and messages being selected for either fast-path or slow-path processing. A context for a connection is defined that allows the device to move data, free of headers, directly to or from a destination or source in the host. The context can be passed back to the host for message processing by the host. The device contains specialized hardware circuits that are much faster at their specific tasks than a general purpose CPU. A preferred embodiment includes a trio of pipelined processors devoted to transmit, receive and utility processing, providing full duplex communication for four Fast Ethernet nodes. The device provides a fast-path that avoids protocol processing for most messages, greatly accelerating data transfer and offloading time-intensive processing tasks from the host CPU. The host retains a fallback processing capability for messages that do not fit fast-path criteria, with the device providing assistance such as validation even for slow-path messages, and messages being selected for either fast-path or slow-path processing. A context for a connection is defined that allows the device to move data, free of headers, directly to or from a destination or source in the host. The context can be passed back to the host for message processing by the host.
-
Citations
20 Claims
-
1. A device for communication between a network and a host computer, the device being coupled to the network and being coupled to the host computer, the host computer having a protocol stack, the device comprising:
-
a receive sequencer that analyzes headers of packets received onto the device from the network, the receive sequencer generating for each of the packets an associated summary, each of the summaries being indicative of whether the associated packet is a fast-path candidate;
a memory that stores the summaries; and
a processor that obtains the summaries from the memory and determines, for each summary indicating that the associated packet is a fast-path candidate, whether the associated packet meets a plurality of fast-path criteria, and wherein if the processor determines that a packet meets the plurality of fast-path criteria then the processor performs transport and network layer processing of the packet on the device such that the protocol stack of the host computer does not perform the transport or network layer processing of the packet, whereas if the processor determines that the packet does not meet the plurality of fast-path criteria then the processor does not perform the transport and network layer processing such that the transport and network layer processing is done by the protocol stack of the host computer. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A device for communication between a network and a host computer, the device being coupled to the network and being coupled to the host computer, the host computer having a protocol stack, the device comprising:
-
a receive sequencer that analyzes headers of packets received onto the device from the network, the receive sequencer generating for each of the packets an associated summary;
a memory that stores the summaries; and
a mechanism that obtains the summaries from the memory and determines, for each summary, whether;
1) the packet associated with the summary is processed by the protocol stack of the host, or
2) data contained in the packet is delivered to a destination in the host without protocol processing by the host.- View Dependent Claims (8, 9, 10, 11, 12, 13, 14)
-
-
15. A system for communicating a TCP data packet through a network from a first computer to a second computer, the TCP data packet being communicated from the first computer to the second computer via a TCP/IP connection, the system comprising:
-
a device coupled to the network, the device comprising a first portion and a second portion, the first portion performing initial TCP processing on the TCP data packet as the TCP data packet is received onto the device from the network, the second portion being a processor that performs subsequent TCP processing on the TCP data packet; and
a protocol processing stack disposed in the second computer and configured for passing control of the TCP/IP connection to the device, the control being passed from the protocol processing stack to the device, the TCP data packet being generally processed by the device instead of the protocol processing stack when the device is controlling the TCP/IP connection. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification