Multiprocessor
Multiprocessor
Interconnection Topologies
One of the first decisions that must be made when designing a multiprocessor
system is the type of interconnection network that will be used between the
processors and the shared memory.
The interconnection must be such that each processor is able to access all the
available memory space. When two or more processors are accessing memory at
the same time, they should all be able to receive the requested data.
Shared Bus: One commonly used interconnection is the shared bus (also called
common bus or single bus). The shared bus is the simplest and least expensive way
of connecting several processors to a set of memory modules. It allows
compatibility and provides ease of operation and high bandwidth.
Multiple Bus: In a multiple-bus architecture, multiple buses are physically
connected to components of the system. In this way, the performance and
reliability of the system are increased. Although the failure of a single bus line may
degrade system performance slightly, the whole system is prevented from going
down.
There are other topologies also like crossbar switch, hierarchy based etc.
CO-PROCESSORS
The 8087 was first released in 1980 by Intel and this can work with 8086,
8088, 80186 and 80188 processors.
The 8087 Numeric Data Processor (NDP) is called a high-speed math co-
processor. This math co-processor is also known as Numeric Processor
Extension (NPX) or Numeric Data Processor (NDP) or Floating Unit Point
(FUP).
The 8087 is available in 40-pin DIP packages in 5 MHz, 8 MHz, and 10
MHz versions and it is compatible with 8086 and higher-version processors.
The purpose of 8087 was to speed up the computations involving floating
point calculations. Addition, subtraction, multiplication and division of
simple numbers is not the coprocessor’s job. It does all the calculations
involving floating point numbers like scientific calculations and algebraic
functions.
This increases the overall speed and performance of the entire system.
This coprocessor introduced about 60 new instructions available to the
programmer.
All the mnemonics begin with “F” to differentiate them from the standard
8086 instructions. For e.g. in contrast to ADD/MUL, 8087 provide
FADD/FMUL.
ARCHITECTURE OF 8087
The internal structure of 8087 coprocessor is divided into two major sections:
STATUS REGISTER
Exception Masks: It determines that whether an error effects the exception bits in
the status register.
If it is one, then the corresponding error is ignored.
If it is zero and the corresponding error occurs, then it generates an interrupt,
and the corresponding bit in status register is set.
TAG WORD
Tag Register is used to indicate the contents of each register in the stack.
There are total 8 tags (Tag 0 to Tag 7) in this register and each tag uses 2
bits to represent a value.
Therefore, it is a 16-bit register.
Data Types
Internally, all data operands are converted to the 80-bit temporary real format.
There are 3 types.
1. Integer data type
2. Packed BCD data type
3. Real data type
I/O PROCESSORS
The Input Output Processor is a specialized processor which loads and stores
data into memory along with the execution of I/O instructions.
It acts as an interface between the processor and the devices.
It involves a sequence of events to execute I/O operations and then store the
results into the memory.
I/O Processors handles all of the interactions between the I/O devices and
the microprocessor.
1. I/O Processors communicates with input and output devices through
separate address, data, and control lines.
2. This provides an independent pathway for the transfer of information
between external devices and internal memory.
3. Relieves the microprocessor of ‘I/O device chores’.
Used to address the problem of direct transfer after executing the necessary
format conversion or other instructions
In an IOP-based system, I/O devices can directly access the memory
without the intervention by the processor.
When I/O is handled by IOP, microprocessor can perform some other
functions at the time of I/O transfer. This increases the system speed.
8089 IOP is the most extensively processor used for I/O interfacing.
The microprocessor is connected with the memory and input/output devices
and forms a microcomputer. The technique of connection between
input/output devices and a microprocessor is known as interfacing.
8089 IO PROCESSOR
Features of 8089
An IOP can fetch and execute its own instructions.
Instructions are specially designed for I/O processing.
In addition to data transfer, 8089 can perform arithmetic and logic
operations, branches, searching and translation.
IOP does all work involved in I/O transfer including device setup,
programmed I/O and DMA operation.
IOP can transfer data from an 8-bit source to 16-bit destination and vice-
versa.
Communication between IOP and CPU is through memory based control
blocks. CPU defines tasks in the control blocks to locate a program
sequence, called a channel program.
ARCHITECTURE OF 8089 IOP
SEL the first CA received after reset informs the IOP through
the SEL line, whether it is a master or slave and starts
the initialization process.
Bus Arbitration refers to the process by which the current bus master
accesses and then leaves the control of the bus and passes it to the another
bus requesting processor unit. The controller that has access to a bus at an
instance is known as Bus master.
A conflict may arise if a number of controllers or processors try to access the
common bus at the same time, but access can be given to only one of those.
Only one processor or controller can be Bus master at the same point of
time.
To resolve these conflicts, Bus Arbitration procedure is implemented to
coordinate the activities of all devices requesting memory transfers.
The Bus Arbiter decides who would become current bus master.
Advantages –
Simplicity and Scalability.
The user can add more devices anywhere along the chain, up to a certain
maximum value.
Disadvantages–
The value of priority assigned to a device is depends on the position of
master bus.
Propagation delay is arises in this method.
If one device fails then entire system will stop working.
This method does not favor any particular device and processor.
The method is also quite simple.
If one device fails then entire system will not stop working.
Disadvantages –
Adding bus masters is difficult as increases the number of address lines of
the circuit.
The built-in priority decoder within the controller selects the highest priority
request and asserts the corresponding bus grant signal.
Advantages –
This method generates fast response.
Disadvantages –
Hardware cost is high as large no. of control lines are required.
Distributed BUS Arbitration
In this, all devices participate in the selection of the next bus master. Each device
on the bus is assigned a 4-bit identification number. The priority of the device will
be determined by the generated ID.
8289 BUS ARBITER
The Intel 8289 is a bus arbiter designed for Intel 8086/ 8087/ 8088/ 8089.
The chip is supplied in 20-pin DIP package.
The 8086 (and 8088) operate in maximum mode, so they are configured
primarily form multiprocessor or for working with coprocessors.
Provides simple interface with 8288 Bus Controller
The 8289 bus arbiter operates in conjunction with the 8288 bus controller to
interface the 8086.
PIN DIAGRAM OF 8289 BUS ARBITER
CRQLCK An active low on this input pin prevents the arbiter from
surrendering the multi-master system bus to any other
bus arbiter IC after being requested through CBRQ input
pin.
8289 bus arbiter provides support to two types of processors : 8089 I/O Processor
and 8086/8088. Thus 8289 supports two modes of operations:
(a) IOB (I/O Peripheral Bus) mode which permits the processor access to both I/O
peripheral bus and a multi-master system bus. When 8289 needs to communicate
with system memory, this is effected with the help of system memory bus.
(b) RESB (Resident Bus) mode which permits the processor to access to resident
bus and a multi-master system bus.
All devices residing on IOB are treated as I/O devices (including memory) and are
all addressed by I/O commands, the memory commands being handled by
multimaster system bus. A Resident Bus can also issue both memory and I/O
commands—but distinct from the multi-master system bus. The Resident Bus has
only one master.
When IOB = 0 , 8289 is in IOB mode and when RESB = 1, 8289 is in RESB mode.
When IOB =0 and RESB = 1, then 8089 interfaces with 8086 to a multi-master
system bus, a Resident Bus and an I/O Bus. Again, for IOB = 1 and RESB = 0,
8089 interfaces with 8086 to a multi-master system bus only.
On a multi-master system bus, there may be several bus masters. The particular bus
master which is going to gain control of multi-master system bus is determined by
employing bus arbiters. Several techniques are there to resolve this priority
amongst bus masters. They are:
Parallel Priority Resolving Technique.
Serial Priority Resolving Technique.
Rotating Priority Resolving Technique.