Browse Prior Art Database

SHARED BUS SEMAPHORE DETECTOR PROPOSAL

IP.com Disclosure Number: IPCOM000005517D
Original Publication Date: 1983-Mar-01
Included in the Prior Art Database: 2001-Oct-11
Document File: 5 page(s) / 230K

Publishing Venue

Motorola

Related People

Donald G. Weiss: AUTHOR

Abstract

The problem of coordinating multiple processes on a shared bus multiple processor system is discussed. It is demonstrated how solutions involving only software or primitive hardware suffer from serious performance drawbacks.

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 28% of the total text.

Page 1 of 5

$$ MOTOROLA Technlcal Developments Volume 3 March 1983

SHARED BUS SEMAPHORE DETECTOR PROPOSAL

By Donald G. Weiss

ABSTRACT

    The problem of coordinating multiple processes on a shared bus multiple processor system is discussed. It is demonstrated how solutions involving only software or primitive hardware suffer from serious performance drawbacks.

   A functional hardware module is then described which is capable of alleviating the problem. It con- sists of a peripheral device, one per processor, which monitors bus activity and detects when any of a dynamically specified set of semaphores residing in storage on the shared bus is set to its free state. When a release of one of the monitored semaphores takes place, the device interrupts its processor and identifies which semaphore was detected.

   The described system has the advantage that a process waiting on a semaphore to become free does not require any running time on its processor, which would be the case if it needed to periodically execute to re-interrogate the semaphore. In addition, the system is insensitive to the location of the process which releases a semaphore; the releasing process can be anywhere in the system, indepen- dent of the location of the waiting process.

INTRODUCTION

    This paper examines the subject of synchronization (coordination) of processes running on an im- portant subclass of multiprocessor systems, namely, one in which several processors share at least a portion of the total memory (and perhaps l/O) resources on a single processor bus. The reason for such a common bus is, of course, to allow common access to resources that must be shared among the.pro- cessors.

   An important shared resource is the means to effect signalling between processes in order to coor- dinate them. The shared memory resource presents a seemingly natural way to implement this com- munication at minimum cost, by simply providing areas of read/write memory on the common bus that can be used for holding messages and signals. This paper demonstrates a weakness of the above technique, and proposes a functional unit to alleviate that problem.

THE SEMAPHORE

    The traditional means for synchronizing among processes in a computer system is a technique known as the 'Semaphore'.' A semaphore 'guards' some operation, known as a 'critical section', from simultaneous attempts at invocation (by separate processes) which would interfere with each other and give invalid results.

   An example would be a pair of processes, one of which reads an array of bytes representing the time of day and the other of which updates it in response to periodic interrupts. While one process is in the midst of manipulating the multi-byte array (i.e., it has read or written some but not all of the bytes), an interrupt could occur which would cause the other process to gain control of the CPU and perform a

SimUltSnSOUS access, leading to some combination of erroneous results for either of the processes, and/or an erroneous valu...