Multiprocessor Configuration
Multiprocessor Configuration
Multiprocessor Configuration
REF: Microcomputer Systems: The 8086/8088 Family, Liu & Gibson, 1986 Multiprocessor Systems refer to the use of multiple processors that execute instructions simultaneously and communicate using mailboxes and semaphores Maximum mode of 8086 is designed to implement 3 basic multiprocessor configurations: 1. 2. 3. coprocessor (8087) closely coupled (8089) loosely coupled (Multibus)
Coprocessors and closely coupled configurations are similar in that both the CPU and the external processor share: - Memory - I/O system - Bus & bus control logic - Clock generator Closely Coupled Configuration:
CLOCK
8086
S y ste m B u s
M em o ry
I/O
- Can have 8086, 8087 & 8089 running in prallel - How do we synchronize operations?
Example: 8086/8087
8086/8088
ESC
Deactivate the host's !TEST pin and execute the specified operation
WAIT
Coprocessor cannot take control of the bus, it does everything through the CPU - 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 NOTE: Closely Coupled processor may take control of the bus independently Two 8086s cannot be closely coupled
8086/8088
Set up message
ADVANTAGES:
- high system throughput can be achieved by having more than one CPU. - The system can be expanded in modular form. Each bus master module is an independant unit and normally resides on a separate PC board. One can be added or removed without affecting the others in the system. - A failure in one module normally does not affect the breakdown of the entire system and the faulty module can be easily detected and replaced - each bus master has its own local bus to access dedicated memory or IO devices so a greater degree of parallel processing can be achieved.
PROBLEMS:
- Bus Arbitration (contention): Make sure that only 1 processor can access the bus at any given time - must synchronize local and system clocks for synchronous transfer - requires control chips to tie into the system bus
Clocking:
- take both clocks and derive a common clock or - take leading edge of one of the clocks >> can alternate or change for each individual operation (clock will jitter) (ie: local clock & system clock)
Master 1
Bus Access Logic BGR
Master 2
Bus Access Logic
...
Master N
Bus Access Logic
Bus Controller
BRQ BBSY
Polling: - Controller sends address of device to grant bus access - Can use priority resolution here: memory= highest priority - Highest priority is granted first, if it does not respond, then a lower priority is granted, and so on until someone accepts (ie: one request line, 3-bit grant line)
Master 1
Bus Access Logic
Master 2
Bus Access Logic
...
Master N
Bus Access Logic
BRQ BBSY
Independent: - Each master has a request and grant line - Now just a question of priority - Could have fixed priority, rotating priority, etc. usually fixed because memory is desired to be the highest priority - Synchronization of the clocks must be performed once a Master is recognized - Master will receive a common clock from one side and pass it to the controller which will derive a clock for transfer - Can accurately predict calculations (since memory is always the highest priority)
M a s te r 1
B us A ccess L o g ic
M a s te r 2
B us A ccess L o g ic
M a s te r N
B us A ccess L o g ic
Bus C o n tr o lle r
Bus G r a n t1
Bus G r a n t2
Bus G r a n tn
Bus B usy