You are on page 1of 15

Multiprocessor Configurations

P. Rajkumar
AP/CSE
2.8 Multiprocessor configuration
INTRODUCTION
• Multiprocessor Systems refer to the use of multiple processors
that executes instructions simultaneously and
communicate with each other using mail boxes and
Semaphores.
• Maximum mode of 8086 is designed to implement 3 basic
multiprocessor configurations:
1. Coprocessor (8087)
2. Closely coupled (8089)
3. Loosely coupled (Multibus)
• Coprocessors and Closely coupled configurations are
similar in that both the 8086 and the external processor
shares the:
- Memory
- I/O system
- Bus & bus control logic
- Clock generator
MZCET/CSE II/EC6504/UNIT II 2
Coprocessor Configuration
• WAIT instruction  allows the processor to
synchronize itself with external hardware,
eg., waiting for 8087 math co-processor.
•  When the CPU executes WAIT  waiting
state.
•TEST input is asserted (low), the waiting
state is completed and execution will
resume.

• ESC instruction: ESC opcode , operand


• opcode : immediate value recognizable to
a coprocessor as an instruction opcode
• operand: name of a register or a memory
address (in any mode)
• When the CPU executes the ESC
instruction, the processor accesses the
memory operand by placing the address on
the address bus.
•  If a coprocessor is configured to share the
system bus, it will recognize the ESC
instruction and therefore will get the opcode
and the operand.
Co-processor – Intel 8087

8086 and 8087 reads


instruction bytes and puts
8087 instructions them in the respective queues
are inserted in
the 8086 NOP
program
8087 instructions have 11011
as the MSB of their first code
byte

MZCET/CSE II/EC6504/UNIT II 4
Coprocessor Configuration
Closely Coupled Configuration

 Coprocessor cannot take control of the bus, it does everything through the CPU
 Closely Coupled processor may take control of the bus independently
- 8089 shares CPU’s clock and bus control logic
- communication with host CPU is by way of shared memory
- host sets up a message (command) in memory
- independent processor interrupts host on completion Two
8086’s cannot be closely coupled
Closely Coupled Configuration
Loosely Coupled Configurations

A loosely coupled configuration provides the


following advantages:
1. High system throughput can be achieved by having
more than one CPU.
2. The system can be expanded in a modular form.
Each bus master module is an independent unit
and normally resides on a separate PC board.
Therefore, a bus master module can be added or
removed without affecting the other modules in the
system.
3. 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.
4. 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.

More than one bus master module may have


access to the shared system bus  extra bus
control logic must be provided to resolve the bus
arbitration problem.
The extra logic is called bus access logic and it is
its responsibility to make sure that only one bus
master at a time has control of the bus.
Simultaneous bus requests are resolved on a
priority basis. There are three schemes for
establishing priority:

1.DaisyChaining
2.Polling.
3.Independent requesting.
2-9-3 BUS ALLOCATION SCHEMES

Simultaneous bus requests are resolved on a


priority basis.
Three bus allocation schemes:
1. Daisy Chaining
2. Pooling
3. Independent Requesting

1. Daisy Chaining:
- Need a bus controller to monitor bus busy and bus
request signals
- Sends a bus grant to a Master >> each Master
either keeps the service or passes it on
- Controller synchronizes the clocks
- Master releases the Bus Busy signal when finished

MZCET/CSE II/EC6504/UNIT II 10
MZCET/CSE II/EC6504/UNIT II 11
Independent Requesting

MZCET/CSE II/EC6504/UNIT II 12
8289 controls the shared bus by
causing the READY input to the
microprocessor to become logic 0
(not ready) if access to the shared
bus is denied.

AEN
The address enable output causes the
bus drivers in a system to switch to
their three-state, high-impedance state.

ANYRQST
The any request input is a strapping
option that prevents a lower- priority
microprocessor from gaining access to
the shared bus.
If tied to a logic 0, normal arbitration
occurs and a lower priority
microprocessor can gain access to the
shared bus if CBRQ is also a logic 0.

BUSY
The busy input/output indicates, as an
output, that an 8289 has acquired the
shared bus.
As an input, BUSY is used to detect that
another 8289 has acquired the shared
bus.
BPRN (BUS PRIORITY IN): returned to the IOB
arbiter to instruct it that it may acquire the The I/O bus input selects whether
multi-master system bus on the next falling 8289 operates in a shared-bus system
edge of BCLK. BPRN active indicates to the (if selected by RESB) with I/O (IOB=0)
arbiter that it is the highest priority requesting or with memory and I/O (IOB=1).
arbiter presently on the bus. The loss of
BPRN instructs the arbiter that it has lost LOCK
priority to a higher priority arbiter. The lock input prevents the 8289 from
allowing any other microprocessor from
BPRO (BUS PRIORITY OUT): used in the gaining access to the shared bus.
serial priority resolving scheme where BPRO An 8086/8088 instruction that contains
is daisy-chained to BPRN of the next lower a LOCK prefix will prevent other
priority arbiter. processors from accessing the shared
bus.
CBRQ (COMMON BUS REQUEST):
instructs the arbiter if there are any other RESB
arbiters of lower priority requesting the use The resident-bus input is a strapping
of the multi-master system bus. connection allowing 8289 to operate in
systems that have either a shared-bus or
resident-bus system.
BCLK ( BUS CLOCK): The multi-master if RESB is a logic 1, 8289 is configured
system bus clock to which all multi-master as a shared-bus master
system bus interface signals are if RESB is a logic 0, as a local-bus
synchronized. master
As a shared-bus master, access is requested
through the SYSB/RESB input pin.
Summary
In summary, processing modules of different configurations may be combined to
form a complex, loosely coupled multiprocessor system.Each module in such a
system may be:
1.A single 8086 or 8088 or an independent processor such as an 8089.
2.A cluster of processors consisting of an 8086 or
8088 and a coprocessor (such as an 8087) and/or independent processors.
3.A cluster of independent processors (such as two 8089s).
In addition, each module may include a local bus or a dedicated I/O bus.