unit6
unit6
Coupling of Processors
Interconnection Structure
The components that form a multiprocessor system are CPUs, IOPs connected
to input-output devices, and a memory unit.
The interconnection between the components can have different physical
configurations, depending on the number of transfer paths that are available
o Between the processors and memory in a shared memory system
o Among the processing elements in a loosely coupled system
There are several physical forms available for establishing an interconnection
network.
o Time-shared common bus
o Multiport memory
o Crossbar switch
Time Shared Common Bus
A common-bus multiprocessor system consists of a number of processors
connected through a common path to a memory unit.
o Only one processor can communicate with the memory or another processor
at any given time.
o 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.
Part of the local memory may be designed as a cache memory attached to the
CPU.
Multiport Memory
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.
Adv.:
o The high transfer rate can be achieved because of the multiple paths.
Disadv.:
o It requires expensive memory control logic and a large number of cables and
connections
Parallel Processing 9 Lecture 47
CPU1
CPU2
CPU3
CPU4
fig. shows the functional design of a crossbar switch connected to one memory module.
(a) Two or more CPUs and one or more memory modules all use the same bus for
communication. When a CPU wants to read a memory word, it first checks to see if
the bus is busy. If the bus is idle, the CPU puts the address of the word it wants on
the bus, asserts a few control signals, and waits until the memory puts the desired
word on the bus.
(b) Problem to previous approach, If the bus is busy when a CPU wants to read or write
memory, the CPU just waits until the bus becomes idle. The cache can be inside the
CPU chip, next to the CPU chip, on the processor board, or some combination of all
three. Since many reads can now be satisfied out of the local cache, there will be
much less bus traffic, and the system can support more CPUs.
(c) in this each CPU has not only a cache, but also a local, private memory which it
accesses over a dedicated (private) bus. To use this configuration optimally, the
compiler should place all the program text, strings, constants and other read-only data,
stacks, and local variables in the private memories. The shared memory is then only
used for writable shared variables.
Parallel Systems
• DEFINATION: A system is said to be a
parallel system in which multiple processor
have direct access to shared memory which
forms a common address space.
• Usually tightly-coupled system are referred
to as parallel system. In this systems there is
a single system wide primary memory that
is shared by all the processors.
• Parallel computing is the use of two or more
processors in combination to solve a single
problem.
Parallel System
Applications of Parallel System
• An example of parallel computing would be
two servers that shares the workload of
routing mail, managing connections to an
accounting system or database etc.
• Supercomputers are usually placed in parallel
system architecture.
• Terminals connected to single servers.
Advantages of Parallel
System
• Provide concurrency (do multiple things at the
same time)
• Taking advantage of non local sources
• Cost savings
• Save time and money
• Overcoming memory constraints
• Obtain faster result
Disadvantages of Parallel System
• Primary disadvantage is the lack of scalability
between memory and CPUs.
• Programmer responsibility for synchronization
constructs that ensure “correct” access of global
memory.
• It becomes increasingly difficult and expensive to
design and produce shared memory machines
with ever increasing number of processors.
• Reliability and fault tolerance.
Why Parallel
Computing ?
• Traditionally, software has been written for serial
computation:
– To be run on a single computer having a single
CPU;
– A problem is broken into a discrete series of
instructions.
– Instructions are executed one after another.
– Only one instruction may execute at any
moment of time.
Serial Problem…
Parallel Computing…
• Parallel computing is a form of computation in which
many calculations are carried out simultaneously.
• In the simplest sense, it is the simultaneous use of
multiple compute resources to solve a computational
problem:
– To be run using multiple CPUs
– A problem is broken into discrete parts that can be
solved concurrently
– Each part is further broken down to a series of
instructions
– Instructions from each part execute simultaneously
Parallel Problem
Why use Parallel Computing?
load B
• Only one instruction stream is being acted onT
C=A+B
I
by the CPU during anyone clock cycle. M
Store C
E
Single Data : A=B*2
• Only one data stream is being used as input
Store A