Browse Prior Art Database

Interrupt-Free Interprocessor Communications

IP.com Disclosure Number: IPCOM000061028D
Original Publication Date: 1986-Jun-01
Included in the Prior Art Database: 2005-Mar-09
Document File: 3 page(s) / 56K

Publishing Venue

IBM

Related People

McPherson, JA: AUTHOR [+2]

Abstract

A method is presented for transmitting messages between two processors using existing channel-to-channel adapter (CTCA) facilities that implement the PREPARE command and existing IBM System/370 or XA processors and channels that implement the Suspend/Resume function. The suspension and resumption of channel programs for communicating messages are accomplished with the I/O SUSPEND/RESUME facility which does not cause processor interrupts. An indicator byte is associated with each message, and is used by both the sender and receiver for identifying the state of their respective buffers. The indicator byte is used by the send side to indicate whether or not the message in the buffer has been sent, and the indicator byte is used on the receive side to tell whether or not the buffer has received a message.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 52% of the total text.

Page 1 of 3

Interrupt-Free Interprocessor Communications

A method is presented for transmitting messages between two processors using existing channel-to-channel adapter (CTCA) facilities that implement the PREPARE command and existing IBM System/370 or XA processors and channels that implement the Suspend/Resume function. The suspension and resumption of channel programs for communicating messages are accomplished with the I/O SUSPEND/RESUME facility which does not cause processor interrupts. An indicator byte is associated with each message, and is used by both the sender and receiver for identifying the state of their respective buffers. The indicator byte is used by the send side to indicate whether or not the message in the buffer has been sent, and the indicator byte is used on the receive side to tell whether or not the buffer has received a message. Messages are placed in buffers that reside in fixed storage. Fixed length buffers are assumed. The message portion of the buffer is left undefined, but presumably would contain a header that can be used for routing and other information about the message, and a data field that actually contains the message. The values for the indicator bytes associated with each message are shown in the table below. INDICATOR VALUES WRITE SIDE: 1 - Buffer not sent (initial value) 0 - Buffer sent READ SIDE: 0 - Buffer not received (initial value) 1 - Buffer received Channel programs for the interrupt-free protocol are shown in the figure. The channel programs are "never ending" in the sense that each channel command word (CCW) in the channel program command chains to another CCW; thus, the channel never presents final status to the processor with the accompanying interrupt. A channel program segment is associated with each buffer and the execution of a channel program is suspended any time there are no additional buffers. Each time a buffer is ready to be sent, its corresponding channel program segment is chained onto the channel program for the sender, and the suspended PREPARE on the send side is resumed. Likewise, each time the receiver has a free buffer that can be used to receive another message, the receiver appends the corresponding channel program segment onto the channel program on the receive side, and the suspended PREPARE on the receive side is resumed. In the figure, the buffer for the first message on the send side is at address W1 and the byte count for the WRITE is C which includes C-1 bytes for the message and 1 byte for an indicator byte. On the receive side, the receive buffer for the first message is at address R1, and, likewise, the byte count for the READ is C. An ind...