Messaging facility with hardware tail pointer and software implemented head pointer message queue for distributed memory massively parallel processing system
First Claim
1. A messaging facility in a multiprocessor computer system having a plurality of processing elements interconnected by a n-dimensional interconnect network, each processing element including a processor and a local memory, wherein globally addressable portions of local memory of each processing element form a distributed memory, the messaging facility comprising:
- assembling means in a source processing element for assembling a message to be sent from the source processing element to a destination processing element based on information provided from the source processing element'"'"'s processor;
a network router for transmitting the assembled message from the source processing element to the destination processing element via the interconnect network;
a message queue in a designated area of the local memory of the destination processing element for storing the transmitted message;
tail pointer hardware circuitry for indexing into the message queue to indicate a location where the transmitted message is to be stored in the message queue;
interrupt hardware circuitry in the destination processing element for providing an interrupt to the destination processing element'"'"'s processor in response to the message being stored in the message queue; and
message facility software providing a head pointer for indexing into the message queue to indicate a location where the message is stored in the message queue for reading by the destination processing element'"'"'s processor in response to the interrupt.
15 Assignments
0 Petitions
Accused Products
Abstract
A messaging facility is described that enables the passing of packets of data from one processing element to another in a globally addressable, distributed memory multiprocessor without having an explicit destination address in the target processing element'"'"'s memory. The messaging facility can be used to accomplish a remote action by defining an opcode convention that permits one processor to send a message containing opcode, address and arguments to another. The destination processor, upon receiving the message after the arrival interrupt, can decode the opcode and perform the indicated action using the argument address and data. The messaging facility provides the primitives for the construction of an interprocessor communication protocol. Operating system communication and message-passing programming models can be accomplished using the messaging facility.
233 Citations
22 Claims
-
1. A messaging facility in a multiprocessor computer system having a plurality of processing elements interconnected by a n-dimensional interconnect network, each processing element including a processor and a local memory, wherein globally addressable portions of local memory of each processing element form a distributed memory, the messaging facility comprising:
-
assembling means in a source processing element for assembling a message to be sent from the source processing element to a destination processing element based on information provided from the source processing element'"'"'s processor; a network router for transmitting the assembled message from the source processing element to the destination processing element via the interconnect network; a message queue in a designated area of the local memory of the destination processing element for storing the transmitted message; tail pointer hardware circuitry for indexing into the message queue to indicate a location where the transmitted message is to be stored in the message queue; interrupt hardware circuitry in the destination processing element for providing an interrupt to the destination processing element'"'"'s processor in response to the message being stored in the message queue; and message facility software providing a head pointer for indexing into the message queue to indicate a location where the message is stored in the message queue for reading by the destination processing element'"'"'s processor in response to the interrupt. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method of passing messages in a multiprocessor computer system having a plurality of processing elements interconnected by a n-dimensional interconnect network, each processing element including a processor and a local memory, wherein globally addressable portions of local memory of each processing element from a distributed memory, the method comprising:
-
assembling a message to be sent from the source processing element to a destination processing element based on information provided from the source processing element'"'"'s processor; transmitting the assembled message from the source processing element to the destination processing element via the interconnect network; indexing, with hardware circuitry, into a designed area of the local memory of the destination processing element'"'"'s local memory to indicate a location where the transmitted message is to be stored; storing the transmitted message in the indexed location in the designated area of the local memory of the destination processing element; generating an interrupt, with hardware circuitry in the destination processing element to the destination processing element'"'"'s processor in response to the message being stored in the indexed location; and indexing, with message facility software, into the designated area of the local memory of the destination processing element'"'"'s local memory to indicate a location where the message is stored for reading by the destination processing element'"'"'s processor in response to the interrupt. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A multiprocessor computer system comprising:
-
a plurality of processing elements, each processing element including a processor, a local memory having a designated message queue area, and shell circuitry, each shell circuitry including; assembly means for assembling a message to be sent from a source processing element to a destination processing clement based on information provided from the source processing element'"'"'s processor, a network router for transmitting the assembled messages from the source processing element to the destination processing element via the interconnect network to be stored in the designated message queue area of the local memory of the destination processing element, tail pointer circuitry to index into the designated message queue area of the local memory of the destination processing element to indicate a location where the transmitted message is to be stored, and interrupt circuitry providing an interrupt to the destination processing element'"'"'s processor in response to the message being stored in the designated message queue arae; messaging facility software providing head pointers to indicate locations where messages are stored in the designated message queue areas of the local memories of the destination processing elements for reading by the destination processing element'"'"'s processors in response to the interrupts from the destination processing element'"'"'s interrupt circuitry; and a n-dimensional interconnect network interconnecting the plurality of processing elements.
-
Specification