Multiprocessor System
Multiprocessor System
Introduction
Characteristics
Interaction between CPU & Coprocessor
Coprocessor configuration
• The configuration in which coprocessor is connected with the main
processor is called coprocessor configuration.
• Main processor and coprocessor work parallely in the system.
• For example, 8087 is a coprocessor for the 8086 processor
• 8087 coprocessor mainly used for numeric calculation.
• After calculation it supplies its result to the main processor .
• Then main processor work with the result supplied by the
coprocessor.
Coprocessor configuration
• 8086 and 8088 are powerful single-chip microprocessors.
• But, their instruction is not sufficient for some complex applications.
• For example, the 8086/8088 has no instructions for performing floating
point arithmetic.
• Coprocessor 8087 can help as a numeric data processor here.
• Hence, 8086/8088 are used as the dominant processors in
multiprocessing systems.
Characteristics
• Both the dominant processor and coprocessor uses same clock
generator.
• Main processor and the coprocessor shares the bus control logic.
• Dominant processor and coprocessor communicates with some specific
instructions.
Interaction between CPU & Coprocessor
• The host CPU fetch instructions, but coprocessor also receives all
instructions and monitor them.
• An instruction to be executed by the coprocessor is indicated when an
escape (ESC) instruction appears.
• This ESC instruction contains an external operation code.
• Both processor and coprocessor decodes it but coprocessor executes
the instruction.
Interaction between CPU & Coprocessor (Contd.)
• At this point, the host may simply go on the next instruction or it may
fetch the first word of a memory operand for the coprocessor and then
go on next instruction.
• While coprocessor executes an instruction, it sends a busy (high) signal
to host’s TEST pin.
• As the host continues processing instruction stream, the coprocessor
will perform operation indicated by the code in ESC instruction.
• If the host needs result of coprocessor it executes WAIT instruction and
stop parallel operation.
Interaction between CPU & Coprocessor (Contd.)
• The host has to wait until TEST pin of host is activated by coprocessor .
• The WAIT instruction repeatedly checks the test pin to check activation
status of host.
• When coprocessor completes its operation, it activates the TEST pin.
• When the TEST pin is activated. The host executes the next instruction
in sequence.
Synchronization between 8086 and its coprocessor
8086 Coprocessor
Wake up t
he coproc
ESC essor
Monitor
the 8086
or 8088
Execute the
8086
instructions Deactivate the
host’s TEST pin
& execute the
specified
WAIT operation.
Wake up
the 8086
or 8088
Activate
the TEST
pin
Closely Coupled Configuration
Introduction
Characteristics
Interaction
20
Closely Coupled Configuration
1. The second configuration is Closely Coupled Configuration.
2. In this configuration, the 8086/8088 supports independent
processor, which unlike a coprocessor, executes its own
instruction stream.
3. Closely coupled multiprocessor system share the same
clock and bus control logic.
4. The independent processor access bus through the CPU’s
RQ/GT lines.
21
Interaction
• Communication between the host and independent
processor is accomplished through shared memory
space
• Host sets up a message in memory
• Accesses shared memory to get the assigned task
• Executes the task in parallel with the host
22
Independent
8086/8088 Processor
Wait for
Set up messages request
Wake up independent
Fetch message
processor with an OUT
instruction
Perform assigned
Execute the 8086’s task
program sequence
Notify CPU of
Wait for ready or
completion
interrupt request
23
Figure 11.6: Interprocessor Communication through shared memory
Interaction
• After the task is completed, the external processor
notifies its host using either a status bit or an interrupt
request.
• A message specify
- which operation is to be performed
- the input parameters
- the address of the location to store result.
24
Loosely Coupled Configurations
Introduction, advantages &
bus allocations schemes
25
Introduction
In a loosely coupled multi processor system each CPU has
its own bus control logic and bus arbitration is resolved by
extending this logic and adding external logic that is common
to all master modules.
26
Advantages
High system throughput can be achieved by having more than
one CPU.
A failure in one module normally does not cause a breakdown of
the entire system and the faulty module can be easily detected
and replaced.
Each bus master may have a local bus to access dedicated
memory or I/O devices so that a greater degree of parallel
processing can be achieved.
The system can be expanded in a modular from a bus master
module can be added or removed without affecting the other
27
Bus arbitration problem
Definition
When more than one bus master module may have access to the
shared bus. This problem is called bus arbitration problem.
28
Bus arbitration resolver schemes
Daisy Chaining
Polling
Independent requesting
29
Daisy Chaining
It is characterized by its simplicity & low cost.
In daisy chain all masters use the same line for making
bus requests.
To respond to a bus request signal the controller sends out
a bus grant signal if the bus busy signal is inactive.
The grant signal serially propagates until it encounters the
first one that is requesting access to the bus.
This module blocks the propagation of the bus grant signal,
activates the busy line , and gains control of the bus.
30
Daisy chaining (contd...)
Bus grant
Bus busy
33
Disadvantages - Daisy Chaining
34
Polling Method
The polling scheme uses a set of lines sufficient to address each
module .
In response to bus request, the controller generates a sequence of
module addresses.
When a requesting module recognizes its address , it activates the
busy line.
The major advantages of polling is that the priority can be
changed dynamically by alternating the polling sequence stored in
the controller. 35
master1 master2 master N
Bus busy
Polling method
36
Advantages - Polling Method
The priority can be dynamically change by altering the polling
sequence stored in the controller.
If one module is failed the whole system will not fail.
37
Independent Request Scheme
The independent requests scheme resolves priority in a parallel
fashion .
Each module has a separate pair of bus request and bus grant lines
and each pair has a priority assigned to it .
The controller includes a priority decoder , which selects the request
with the highest priority and returns the corresponding bus grant
signal.
Compared to the other methods the independent requests design is
fastest. It requires more bus request and grant lines.
38
master1 master2 master N
Bus request 1
Controller
Bus grant 2
Bus request 2
Bus grant N
Bus request N
Bus busy
Disadvantages
More bus requests and grants line
40
Module
Module contains:
1. Host (8086 or 8088)
2. Bus arbiter (8289)
3. Bus controller (8288)
4. Latches (8283 ) X 3
5. Transceivers (8287) X 2
Host (8086 or 8088)
• Lacks the capability of requesting bus access and recognizing bus
grants.
• So it is necessary for each module containing a bus master to have
extra logic for sending and receiving bus access logic.
• Here comes bus arbiter (Intel 8289).
Bus arbiter (Intel 8289)