Intelligent network interface device and system for accelerated communication
First Claim
1. A device for use with a local host that is connectable to a remote host via a network, the local host containing a CPU operating a stack of protocol processing layers that define a connection context between an application of the local host and an application of the remote host, the device comprising:
- a communication processing mechanism connected to the CPU and to the network and containing a processor configured for choosing, by referencing the context, whether to process a network message by the protocol processing layers or to avoid the protocol processing layers and employ the context for transferring data contained in said message between the network and the local host application.
4 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.
459 Citations
27 Claims
-
1. A device for use with a local host that is connectable to a remote host via a network, the local host containing a CPU operating a stack of protocol processing layers that define a connection context between an application of the local host and an application of the remote host, the device comprising:
a communication processing mechanism connected to the CPU and to the network and containing a processor configured for choosing, by referencing the context, whether to process a network message by the protocol processing layers or to avoid the protocol processing layers and employ the context for transferring data contained in said message between the network and the local host application. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
9. A communication device for a host computer connectable to a network, the host computer having a CPU with a stack of protocol processing layers operable by the CPU for processing network communications and defining a connection context between a destination in the host and a source in a remote host, the device comprising:
-
a receive sequencer connected to the network and configured for validating a message packet received from the network by the device, said message packet containing data and a header with control information regarding several of said protocol layers, said receive sequencer adapted for creating a summary of said packet for storage in the device, and a communication processor connected to said receive sequencer and to the host, said communication processor adapted for comparing said summary with the communication control block and choosing, based upon said comparing, whether to send said message packet to the stack for protocol processing or to send said data directly to the destination without processing said message packet by the stack. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A device for communication between a local host with a CPU and a remote host, the hosts connected by a network, the device comprising:
-
a communication processing mechanism connected to the network and to the local host, said mechanism including hardware logic for processing a data packet and generating a summary of said packet, a protocol processing stack disposed in the local host and operable by the CPU for creating a communication control block and passing said communication control block to said mechanism, with said communication control block defining a connection between the local host and the remote host, wherein said mechanism and said protocol processing stack are arranged such that a message corresponding to said connection and transferred between said network and said local host is processed by said mechanism instead of by the CPU when said mechanism is holding said communication control block. - View Dependent Claims (19)
-
-
20. A device for processing communication between a network and a host having a stack of protocol layers, said device comprising:
-
a plurality of logic units for categorizing a message packet received from the network, said packet including data and a header containing protocol information, said packet flowing through said logic units as a stream of bits with said logic units creating a summary of said packet from said stream, a memory for storing said packet and said summary, a microprocessor for matching said summary with a connection context, and for moving said packet without said protocol information to a destination in the host indicated by said context. - View Dependent Claims (21, 22)
-
- 23. A device for transferring a message between a network and a host computer, wherein the message includes a series of headers corresponding to a sequence of protocol layers, with the device comprising a series of sequencers aligned for processing the series of headers as a stream of bits and generating a status of said message, with at least one of said sequencers including logic for categorizing a header corresponding to an upper layer of said protocol layers.
-
25. A device for transmitting messages between a network and a host, the device comprising:
-
an array of variable length FIFO circuits defining a plurality of queues, a receive sequencer configured for generating a status of a frame of the messages received from the network and storing said status in at least one of said queues, and a protocol processor containing a plurality of pipelined microprocessors operating a set of logical units in alternating phases, with a first of said microprocessors adapted for processing the messages received from the network and a second of said microprocessors adapted for processing the messages transmitted to the network, said processor employing a communication control block in concert with said sequencer for accelerating transfer of the messages. - View Dependent Claims (26)
-
-
27. A device for communication between a network and a host computer having a processor and a sequential stack of protocol layers, the device comprising:
-
means for receiving, by said host from said network, a message packet including data and a plurality of headers corresponding to said stack of protocol layers, said data intended for placement in a destination of said host according to protocol processing of said headers, means for processing said plurality of headers, including creating a summary of said group of headers, and means for sending said data to said destination according to said summary of said group of headers, whereby sequential processing of said packet by said stack of protocol layers is avoided.
-
Specification