Browse Prior Art Database

Mixed-Endian Interprocess Communication Messaging

IP.com Disclosure Number: IPCOM000116071D
Original Publication Date: 1995-Jul-01
Included in the Prior Art Database: 2005-Mar-30
Document File: 2 page(s) / 88K

Publishing Venue

IBM

Related People

Timms, GD: AUTHOR

Abstract

Described are mechanisms added to the Microkernel* to support communication using Microkernel Interprocess Communication (IPC) between threads running in different Endian modes, including considerations for the special form of Little-Endian (LE) processing implemented by PowerPC* architecture. This disclosure allows the receiver of an IPC message to use the same programming model for cross-endian data references, regardless of whether the hardware platform stores little-endian data in true-LE form (byte-reversed with respect to the big-endian form of each field) or in munged-LE form (fields stored in big-endian format at addresses defined in the PowerPC architecture by a process sometimes known as "address munging").

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Mixed-Endian Interprocess Communication Messaging

      Described are mechanisms added to the Microkernel* to support
communication using Microkernel Interprocess Communication (IPC)
between threads running in different Endian modes, including
considerations for the special form of Little-Endian (LE) processing
implemented by PowerPC* architecture.  This disclosure allows the
receiver of an IPC message to use the same programming model for
cross-endian data references, regardless of whether the hardware
platform stores little-endian data in true-LE form (byte-reversed
with respect to the big-endian form of each field) or in munged-LE
form (fields stored in big-endian format at addresses defined in the
PowerPC architecture by a process sometimes known as "address
munging").

      This invention requires that the kernel know the Endian
addressing mode (big-endian, true-LE, or munged-LE) of every
executable entity (thread) that wants to send or receive messages
using Microkernel IPC.

      For every Microkernel IPC send operation, the kernel must
interpret the control information in the message (header,
descriptors, and trailer) according to the endian mode of the sender.
Similarly, for receive operations, the kernel needs to provide
message control information in the addressing mode of the receiver.
Control information tells the kernel where to route the message, and
what resources (in-line data, port rights, and out-of-line data) must
be transferred to the receiver.  The kernel knows the field-level
structure of control information (because the structure is defined by
Microkernel architecture), so it is possible for the kernel to
convert between big-endian and little-endian formats (either true-LE
or munged-LE), thus handling any mismatch between addressing modes
for message control data between sender, kernel, and receiver.

      In untyped Microkernel IPC, the kernel does not know the
field-level structure of any untyped data for the message.  Untyped
data can appear in-line within the message buffer, and any
out-of-line memory reference (through a out-of-line memory region) is
implicitly untyped data to the kernel.  Because the field-level
structure of untyped message data is unkn...