NonStop S-Series Server Description Manual (G06.27+)

Interprocessor Communication
HP NonStop S-Series Server Description Manual520331-004
9-2
Interprocessor Protocols
Interprocessor Protocols
Section 2, Principles of System Operation, showed that ServerNet devices, including
those associated with processors, communicate with each other by exchanging
ServerNet packets and that each single exchange is a ServerNet transaction. The
originating device sends a read or write request packet, and the receiving device sends
back a corresponding read or write response packet. In the particular case of a
processor device, locally originated transactions are handled by the processor’s block
transfer engine (BTE); remotely originated transactions are handled by the processor’s
access validation and translation (AVT) logic. Both the BTE and the AVT use direct
memory access to push or pull data between memory buffers and the ServerNet
hardware.
Figure 9-1 shows that interprocessor communication actually involves communication
between at least four distinct peer layers, with each layer using its own protocol.
At the lowest level, as described in the first paragraph, the BTE and AVT logic in the
processors communicate through the ServerNet hardware using the ServerNet
protocol that each request packet requires a corresponding response packet. Buffer
addresses are supplied by higher layers and are made available through memory
tables.
At the next higher level, the message system drivers in the two processors
communicate with each other using the message transfer protocol, consisting of the
pre-push protocol and the post-pull protocol. The message system drivers in the
two processors determine which of these two protocols to use depending on the length
and direction (read or write) of the data that needs to be sent, as well as the protocol
demands of the higher layers (such as needing to transmit their own kind of
acknowledgments). Having made that determination, ServerNet services then direct
the BTE and AVT hardware to carry out the message transfer, one packet at a time.
At the next higher level, the message systems in the two processors communicate with
each other by exchanging setup information and additionally an acknowledgment for
each message sent. Setup information, sent in a setup packet, includes such things
as the byte count of the data and the ServerNet addresses of where the message
information is to be written or from where it is to be read. The message information
includes control information passed to the message system from its client (the next-
higher layer). From all this information (control, data, and setup), the message system
creates messages for transmission by the ServerNet services. If the combination of
control information and data exceeds a certain length (approximately 61 kilobytes,
currently), the message systems create multiple messages as necessary.
At the highest level (at least as shown in Figure 9-1) are the two processes that
originated the need for a particular interprocessor communication. The linker process
invokes the message system to deliver a particular request, and the listener process
receives the request from its message system and returns a reply after it has fulfilled
the request. The linker and listener might be some kind of application program
interface (API) executing on behalf of some other application or user process, or they