Multiprocessor Architecture and Programming
Multiprocessor Architecture and Programming
Multiprocessor Architecture and Programming
• VLSI circuit technology has reduced the cost of the computers to such a low
Level that the concept of applying multiple processors to meet system performance
requirements has become an attractive design possibility.
FUNCTIONAL STRUCTURES.
LOSSELY COUPLED MULTIPROCESSORS:
Multiprocessor is one which has more than two processors in the system.
Now when the degree of coupling between these processors is very low, the
system is called loosely coupled multiprocessor system.
In loosely coupled system each processor has its own local memory, a set
of input-output devices and a channel and arbiter switch (CAS). We refer
to the processor with its local memory and set of input-output devices and
CAS as a computer module.
Large virtual and physical address space: The processor should support large
physical address space to allow programs to access large amount of data if
required. It should also support a large virtual address space. The virtual memory
space should be segmented to achieve modular sharing. It should also provide the
mechanisms for memory protection and checking software reliability .
INTERCONNECTION NETWORKS.
TIME SHARED OR COMMON BUSES:
A common-bus multiprocessor system consists of a number of processors
connected through a common path to a memory unit.
Disadvantage - Only one processor can communicate with the memory or
another processor at any given time. As a consequence, the total overall
transfer rate within the system is limited by the speed of the single path .
A more economical implementation of a dual bus structure is depicted in
Fig. below. 4. Part of the local memory may be designed as a cache memory
attached to the CPU.
CROSSBAR SWITCH:
Consists of a number of crosspoints that are placed at intersections
between processor buses and memory module paths.
The small square in each crosspoint is a switch that determines the path
from a processor to a memory module.
Advantage - Supports simultaneous transfers from all memory modules .
Disadvantage - The hardware required to implement the switch can
become quite large and complex.
MULTIPORT MEMOTIES:
A multiport memory system employs separate buses between each
memory module and each CPU.
The module must have internal control logic to determine which port
will have access to memory at any given time.
Memory access conflicts are resolved by assigning fixed priorities to
each memory port.
Advantage - The high transfer rate can be achieved because of the
multiple paths.
Disadvantage - It requires expensive memory control logic and a large
number of cables and connections
One such topology is the omega switching network shown in Fig. below
PERFORMANCE OF INTERCONNECTION NETWORK:
A multiprocessor system consists of multiple processing units connected via
some interconnection network plus the software needed to make the
processing units work together.
A number of communication styles exist for multiprocessing networks.
These can be broadly classified according to the communication model as
shared memory (single address space) versus message passing (multiple
address spaces).
o Communication in shared memory systems is performed by writing
to and reading from the global memory
o Communication in message passing systems is accomplished via send
and receive commands.
o In both cases, the interconnection network plays a major role in
determining the communication speed. Two schemes are introduced,
namely static and dynamic interconnection networks.
Static networks form all connections when the system is
designed rather than when the connection is needed. In a
static network, messages must be routed along established
links. (hypercube, mesh, and k-ary n-cube topologies)
Dynamic interconnection networks establish connections
between two or more nodes on the fly as messages are routed
along the links(bus, crossbar, and multistage interconnection ).
The Crossbar;
o the cost of the crossbar system can be measured in terms of the
number of switching elements (cross points) required inside the
crossbar. The crossbar possesses a quadratic rate of cost (complexity)
given by .
o The delay (latency) within a crossbar switch, measured in terms of
the amount of the input to output delay, is constant.The crossbar
possesses a constant rate of delay (latency) given by . It should
be noted that the high cost (complexity) of the crossbar network
pays off in the form of reduction in the time (latency).
o The crossbar is however a nonblocking network; that is, it allows
multiple output connection pattern (permutation) to be achieved.
o A fault-tolerant system can be simply defined as a system that can
still function even in the presence of faulty components inside the
system. The crossbar can be affected by a single-point failure.
Nevertheless, segmenting the crossbar and realizing each segment
independently can reduce the effect of a single-point failure in a
crossbar.
Multiple Bus;
o It consists of memory modules, processors, and buses. A
given bus is dedicated to a particular processor for the duration of a
bus transaction.
o A processor?memory transfer can use any of the available buses.
Given buses in the system, then up to requests for memory
use can be served simultaneously.
Static Networks
a Mesh .
3. A network is said to be symmetric if it is isomorphic to itself with any node
labeled as the origin; that is, the network looks the same from any node.
Rings and Tori networks are symmetric while linear arrays and mesh
networks are not.
diameter is .
Linear Array Networks (LCNs)
o In this network architecture, each node is connected to its two
immediate neighboring nodes. Each of the two nodes at the extreme
ends of the network is connected only to its single immediate
neighbor.
o The network cost (complexity) measured in terms of the number of
o The node degree in the linear array is , that is, and the
Cache Coherence:
In a multiprocessor system, data inconsistency may occur among adjacent
levels or within the same level of the memory hierarchy. For example, the
cache and the main memory may have inconsistent copies of the same
object.
As multiple processors operate in parallel, and independently multiple
caches may possess different copies of the same memory block, this
creates cache coherence problem. Cache coherence schemes help to
avoid this problem by maintaining a uniform state for each cached block of
data.
Types of Multiprocessors
There are mainly two types of multiprocessors i.e. symmetric and asymmetric
multiprocessors. Details about them are as follows −
Symmetric Multiprocessors
In these types of systems, each processor contains a similar copy of the operating
system and they all communicate with each other. All the processors are in a peer
to peer relationship i.e. no master - slave relationship exists between them.
An example of the symmetric multiprocessing system is the Encore version of
Unix for the Multimax Computer.
Asymmetric Multiprocessors
In asymmetric systems, each processor is given a predefined task. There is a
master processor that gives instruction to all the other processors. Asymmetric
multiprocessor system contains a master slave relationship.
Asymmetric multiprocessor was the only type of multiprocessor available before
symmetric multiprocessors were created. Now also, this is the cheaper option.
OS requirements:
The multiple CPUs in the system are in close communication, which shares
a common bus, memory, and other peripheral devices. So we can say that
the system is tightly coupled. These systems are used when we want to
process a bulk amount of data, and these systems are mainly used in
satellite, weather forecasting, etc.
There are cases when the processors are identical, i.e., homogenous, in
terms of their functionality in multiple-processor scheduling. We can use
any processor available to run any process in the queue.