Network interface having support for message processing and an interface to a message coprocessor
First Claim
1. A receive side of a network interface for connecting a host computer having a processor and a memory to a network, wherein the network connects the host computer to a plurality of computers, wherein the host computer and each of the plurality of computers has a separate memory and operating system, the receive side of the network interface comprising:
- means, in the network interface, for receiving a message from one of the plurality of computers containing data and destination control information which indicates an operation to be performed on the message data;
means, in the network interface, for extracting the destination control information from the received message and for communicating the extracted destination control information to a programmable message coprocessor connected to the network interface and separate from the operating system of the host computer;
means, in the network interface and operative after communication of the extracted control information to the programmable message coprocessor, for receiving a command and arguments generated by the programmable message coprocessor; and
means for performing at least one of a small set of operations on the received message according to the received command and arguments while bypassing the operating system of the host computer.
6 Assignments
0 Petitions
Accused Products
Abstract
A network interface for a connection-based communication network has support for message processing, including an interface for communication with an optional message coprocessor that performs a variety of message processing operations. Message processing is low level processing of messages between the host computer and the network. Such processing is performed on transmission in response to control information provided by the host and is performed on reception in response to control information included in incoming messages. Message processing includes low latency remote read and remote write operations, message filtering, and message demultiplexing. Such a network interface provides support for a variety of message processing operations using the coprocessor, while the complexity and cost of the network interface due to this support is minimal. The network interface provides control information for a message to the message coprocessor. The control information indicates an operation to be performed by the message coprocessor, and possibly operands. The message coprocessor responds with one of a small set of commands to be executed by the network interface. The command from the message coprocessor may include additional data, such as a location in memory in which data should be deposited at the host or at a remote destination. Using this kind of interface, the control information provided to the message coprocessor can be completely arbitrary, limited only by the capabilities of the message coprocessor. Since the message coprocessor can be arbitrarily selected so long as it conforms to the protocol used by the network interface, experimentation with new communication protocols in connection with the network interface is simplified.
-
Citations
26 Claims
-
1. A receive side of a network interface for connecting a host computer having a processor and a memory to a network, wherein the network connects the host computer to a plurality of computers, wherein the host computer and each of the plurality of computers has a separate memory and operating system, the receive side of the network interface comprising:
-
means, in the network interface, for receiving a message from one of the plurality of computers containing data and destination control information which indicates an operation to be performed on the message data; means, in the network interface, for extracting the destination control information from the received message and for communicating the extracted destination control information to a programmable message coprocessor connected to the network interface and separate from the operating system of the host computer; means, in the network interface and operative after communication of the extracted control information to the programmable message coprocessor, for receiving a command and arguments generated by the programmable message coprocessor; and means for performing at least one of a small set of operations on the received message according to the received command and arguments while bypassing the operating system of the host computer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A transmit side of a network interface for connecting a host computer having a processor and memory to a network, wherein the network connects the host computer to a plurality of computers to communicate messages among the computers, wherein the host computer and each of the plurality of computers has a separate memory and operating system, the transmit side of the network interface comprising:
-
means, in the network interface, for receiving source control information from the host computer, wherein the source control information indicates how destination control information is obtained for an outgoing message, and for communicating the source control information to a programmable message coprocessor connected to the network interface and separate from the operating system of the host computer; and means, in the network interface and operative after communication of source control information to the programmable message coprocessor, for receiving a command and arguments generated by the programmable message coprocessor in response to the source control information; means for performing at least one of a small set of commands according to the received command and arguments to obtain the destination control information indicating an operation to be performed on the outgoing message by a recipient of the outgoing message while bypassing the operating system of the host computer; and
means, in the network interface, for inserting the destination control information in the outgoing message to be transmitted over the network to at least one of the plurality of computers. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A network interface connected to a host computer having a processor and a memory, for transmitting and receiving messages to and from a network connecting the host computer to a plurality of computers, wherein the host computer and each of the plurality of computers has a separate memory and operating system, wherein a message contains destination control information indicating an operation to be performed and a header indicating a communication channel, the network interface comprising:
-
a controller and associated memory containing information on a location of destination control information in messages received and transmitted by the network interface; an interface for connection to a programmable message coprocessor, including means for transmitting control information to the programmable message coprocessor from the controller and means for receiving one of a small set of commands from the programmable message coprocessor separate from the operating system of the host computer, wherein the controller has means for obtaining destination control information, indicating an operation to be performed at a destination of an outgoing message, in response to a command from the programmable message coprocessor and for inserting the destination control information into the outgoing message; and wherein the controller has means for handling received messages according to commands received from the programmable message coprocessor while bypassing the operating system of the host computer.
-
Specification