Inter-processor communication protocol
AssigneeAmerican Telephone and Telegraph Company
InventorsThomas P. Bishop, Mark H. Davis, David N. Horn, Grover T. Surratt, Lawrence A. Welsch
Life of this patent
Estimating the term…
Abstract
Processors (101) of a multiprocessor system (FIG. 1) communicate across bus (150) via a low-latency packet protocol featuring per-logical channel input queues (143) and output queues (144), different per-processor priorities for sending data packets (FIG. 10) and data packet-acknowledging "quick" messages (FIG. 11), and separate buffers (923; 918) for receiving data packets and "quick" messages, respectively. Transmitted data packets afflicted by error, receive buffer overflow, and input queue-full conditions are discarded by the receiving processor and are retransmitted by the sending processor.
Claims34
A communication system comprising:
- an arbitrated-access communication medium;
- and
- a plurality of stations communicatively connected to and sharing use of the medium, each station comprising
- first means, for seeking exclusive access to the medium according to either one of a first and a second priority associated with the station, each station's associated first and second priority being different from the first and second priorities, respectively, of the other stations, and the second priority of every station being higher than the first priority of every station;
- second means, responsive to gaining of sought access by the first means, for transmitting messages of either one of a first and a second predetermined type on the medium to other stations, and responsive to not gaining of sought access by the first means for forbearing transmitting on the medium;
- third means, for storing messages of the first type received on the medium from other stations;
- fourth means, for storing, separately from messages of the first type, messages of the second type received on the medium from other stations;
- fifth means, for causing the first means to seek medium access according to the first priority and causing the second means to transmit a message of the first type;
- and
- sixth means, responsive to a message stored in the third means and received from another station, for causing the first means to seek medium access according to the second priority and causing the second means to transmit a message of the second type to the other station.
A station for a system having an arbitrated-access communication medium and a plurality of stations communicatively connected to and sharing use of the medium, the station comprising:
- first means, for seeking exclusive access to the medium according to either one of a first and a second priority associated with the station, each station's associated first and second priority being different from the first and second priorities, respectively, of the other stations, and the second priority of being higher than the first priority;
- second means, responsive to gaining of sought access by the first means, for transmitting messages of either one of a first and a second predetermined type on the medium to other stations, and responsive to not gaining of sought access by the first means, for forbearing transmitting on the medium;
- third means, for storing messages of the first type received on the medium from other stations;
- fourth means, for storing, separately from messages of the first type, messages of the second type received on the medium from other stations;
- fifth means, for causing the first means to seek medium access according to the first priority and causing the second means to transmit a message of the first type;
- and
- sixth means, responsive to a message stored in the third means and received from another station, for causing the first means to seek medium access according to the second priority and causing the second means to transmit a message of the second type to the other station.
A station for a system having a communication medium and a plurality of stations communicatively connected to the medium, the station comprising:
- first means, for seeking exclusive access to the medium according to either one of a first and a second priority associated with the station, the second priority being higher than the first priority;
- second means, responsive to gaining of sought access by the first means, for transmitting messages of either one of a first and a second predetermined type on the medium to other stations;
- third means, for storing messages of the first type received on the medium from other stations;
- fourth means, for storing, separately from messages of the first type, messages of the second type received on the medium from other stations;
- fifth means, for causing the first means to seek medium access according to the first priority and causing the second means to transmit a message of the first type;
- sixth means, responsive to a message stored in the third means and received from another station, for causing the first means to seek medium access according to the second priority and causing the second means to transmit a message of the second type to the other station;
- seventh means, cooperative with the third means, for determining whether a message being stored in the third means should be retransmitted for a first reason;
- eighth means, cooperative with the seventh means, for sending a first signal on the medium when it is determined that a message should be retransmitted;
- and
- ninth means, responsive to receipt of a first signal on the medium, for causing retransmission of a message of the first type transmitted by the second means during receipt of the first signal.
A station for a system having a communication medium and a plurality of stations communicatively connected to the medium, the station comprising:
- first means, for seeking access to the medium according to either one of a first and a second priority associated with the station, the second priority being higher than the first priority;
- second means, responsive to gaining of sought access by the first means, for transmitting messages of either one of a first and a second predetermined type on the medium to other stations;
- third means, for storing messages of the first type received on the medium from other stations;
- fourth means, for storing, separately from messages of the first type, messages of the second type received on the medium from other stations;
- fifth means, for causing the first means to seek medium access according to the first priority and causing the second means to transmit a message of the first type;
- sixth means, responsive to a message stored in the third means and received from another station, for causing the first means to seek medium access according to the second priority and causing the second means to transmit a message of the second type to the other station, and including
- means for determining whether a received message stored in the third means should be transmitted, and
- means, cooperative with the determining means, for causing the first means to seek medium access according to the second priority and causing the second means to transmit to a second station from which the stored message was received a message of the second type conveying a positive acknowledgment of the message stored in the third means and received from the second station, if it is not determined that the acknowledged message should be retransmitted, and further for causing the first means to seek medium access according to the second priority and causing the second means to transmit to the second station a message of the second type conveying a negative acknowledgment of the message stored in the third means and received from the second station, if it is determined that the acknowledged message should be retransmitted;
- and
- seventh means responsive to a message stored by the fourth means and conveying a negative acknowledgment of a message for causing retransmission of the negatively-acknowledged message.
A station for a system having a communication medium defining a plurality of logical communication paths, and further having a plurality of stations connected to the medium, the station comprising:
- a plurality of output queues, each for association with different logical paths extending to other stations of the plurality of stations of the communication system, each output queue for storing entries, each entry defining a packet of a first type for transmission across an associated logical path;
- a plurality of input queues, each for association with different logical paths extending from output queues of other stations of the plurality of stations of the communication system, each input queue for storing entries each representing a packet of the first type received across an associated logical path;
- first memory means for buffering packets for transmission on the medium;
- second memory means for buffering packets of the first type received on the medium;
- third memory means for buffering packets of a second type received on the medium;
- first operative means, for storing in the first memory means a packet defined by an entry of an output queue and identifying the output queue's associated logical path;
- second operative means, responsive to storage in the first memory means of a packet of the first type, for contending for access to the medium according to a first priority associated with the station, and further responsive to storage in the first memory means of a packet of a second type, for contending for access to the medium according to a second priority associated with the station and higher than the first priority;
- third operative means, responsive to gaining of access to the medium by the second operative means, for transmitting on the medium the packet stored in the first memory means;
- fourth operative means, responsive to receipt on the medium of a packet of the first type, for storing the received packet in the second memory means, and responsive to receipt on the medium of a packet of the second type, for storing the received packet in the third memory means;
- fifth operative means, for removing a received packet from the second memory means and in response to the removed packet forming in the input queue associated with the logical path identified by the removed packet an entry representing the removed packet;
- and
- sixth operative means, cooperative with the fifth operative means, for storing in the first memory means a packet of the second type acknowledging the removed packet.
A method of communication between a plurality of stations each for transmitting and receiving messages of both a first and a second type, connected to and sharing use of an arbitrated-access communication medium, comprising the steps of
- (a) seeking exclusive access from a first station to the medium according to a first priority and a second priority which are associated with the first station, the first priority of the first station being lower than the second priority of the first station;
- (b) upon gaining access to the medium, transmitting a message of the first type from the first station on the medium to a second station while other stations forbear transmitting on the medium;
- (c) receiving the transmitted message of the first type at the second station in first storage means, the second station having the first storage means for receiving messages of the first type and having second storage means for separately receiving messages of the second type;
- (d) in response to receipt of the message of the first type, seeking exclusive access from the second station to the medium according to a second priority of a first and the second priority which are associated with the second station, the first priority of the second station being lower than the second priority of the second station and each station's associated first and second priority being different from the first and second priorities, respectively, of the other station;
- (e) upon gaining access to the medium, transmitting a message of the second type from the second station on the medium to the first station while other stations forbear transmitting on the medium;
- and
- (f) receiving the transmitted message of the second type at the first station in a second storage means, the first station having first storage means for receiving messages of the first type and the second storage means for separately receiving messages of the second type.
A method of communicating between a plurality of stations each for transmitting and receiving messages of both a first and a second type, connected to a communication medium, comprising the steps of:
- (a) seeking access from a first station to the medium according to a first priority of the first and a second priority which are associated with the first station, the first priority being lower than the second priority;
- (b) upon gaining access to the medium, transmitting a message of the first type from the first station on the medium to a second station;
- (c) receiving the transmitted message of the first type at the second station in first storage means, the second station having the first storage means for receiving messages of the first type and having second storage means for separately receiving messages of the second type;
- (d) in response to receipt of the message of the first type, seeking access from the second station to the medium according to a second priority of a first and the second priority which are associated with the second station, the first priority being lower than the second priority;
- (e) upon gaining access to the medium, transmitting a message of the second type from the second station on the medium to the first station, including the steps of
- (f) determining whether the message received by the first storage means of the second station is affected by a condition of a first type,
- (g) upon gaining access to the medium, transmitting from the second station to the first station a message of the second type conveying a positive acknowledgment of the received message of the first type, if the received message is determined to not be affected by a condition of the first type;
- and
- (h) upon gaining access to the medium, transmitting from the second station to the first station a message of the second type conveying a negative acknowledgment of the received message of the first type, if the received message is determined to be affected by a condition of the first type;
- and
- (i) receiving the transmitted message of the second type at the first station in a second storage means, the first station having first storage means for receiving messages of the first type and the second storage means for separately receiving messages of the second type.
A method of communicating between a plurality of stations having storage means and input and output queues and connected to a communicating medium defining a plurality of logical communication paths, comprising the steps of:
- (a) forming in first storage means of a first station a packet of a first type from an entry of an output queue of a plurality of output queues each associated with different logical paths extending from the first station to other stations, each output queue for storing entries each defining a packet of a first type for transmission across an associated logical path, the packet identifying the queue's associated logical path;
- (b) in response to formation of the packet in the first storage means, seeking access at the first station to the medium according to a first priority of the first and a higher second priority which are associated with the first station;
- (c) upon gaining access to the medium, transmitting the formed packet from the first storage means on the medium to a second station;
- (d) receiving the transmitted packet of the first type at the second station in a second storage means, the second station having the second storage means for receiving packets of the first type and having third storage means for separately receiving packets of a second type;
- (e) forming an entry, representing a packet of the first type received in the second storage means, in an input queue associated with the logical path identified by the received packet, the input queue being of a plurality of input queues each associated with different logical communication paths extending to the second station from output queues of other stations, each input queue for storing entries each representing a packet of the first type received across an associated logical path;
- (f) forming in first storage means of the second station a packet of a second type acknowledging the packet of the first type received in the second storage means;
- (g) in response to formation of the packet in the first storage means, seeking access at the second station to the medium according to a second priority of a lower first and the second priority which are associated with the second station;
- (h) upon gaining access to the medium, transmitting the formed packet from the first storage means on the medium to the first station;
- (i) receiving the transmitted packet of the second type at the first station in third storage means, the first station having a second storage means for separately receiving packets of the second type;
- and
- (j) in response to receipt of the packet of the second type, deleting from an output queue an entry representing the packet of the first which was acknowledged by the received packet of the second type.
Dependencies are inferred from the claim text.