Unit-2 MPMC Notes Research
Unit-2 MPMC Notes Research
Unit II
AD12 4 37 A17/S4
AD11 5 36 A18/S5
AD10 6 35 A19/S6
AD9 7 34 BHE /S7
AD 8 8 33 MN / MX
AD7 9 32 RD (Min mode)
AD3 13 28 S2 (M / IO)
AD2 14 27 S1 (DT / R)
AD1 15 26 S0 (DEN)
INTR 18 23 TEST
CLK 19 22 READY
GND 20 21 RESET
BHE A0 Characteristics
0 0 Whole word
0 1 Upper byte from/to odd address
1 0 Lower byte from/to even address
1 1 None
2.1.4 Read ( RD )
This signal is used to read data from memory or I/O device which reside on the 8086
local bus.
2.1.5 Ready
If this signal is low the 8086 enters into WAIT state. The READY signal from memory/IO
is synchronized by the 8284A clock generator to form READY. This signal is active HIGH.
2.1.6 Interrupt Request (INTR)
It is a level triggered maskable interrupt request. A subroutine is vectored via an
interrupt vector lookup table located in system memory. It can be internally masked by
software resetting the interrupt enable bit. INTR is internally synchronized. This signal is
active HIGH.
2.1.7 TEST
This input is examined by the “Wait” instruction. If the TEST input is LOW execution
continues, otherwise the processor waits in an ``Idle’’ state. This input is synchronized
internally during each clock cycle on the leading edge of CLK.
8086 System Bus Structure 2.5
2.1.8 Non-Maskable Interrupt (NMI)
It is an edge triggered input which causes a type 2 interrupt. NMI is not maskable
internally by software. A transition from LOW to HIGH initiates the interrupt at the end of
the current instruction.
2.1.9 Reset
This signal is used to reset the 8086. It causes the processor to immediately terminate
its present activity. The signal must be active HIGH for at least four clock cycles. It restarts
execution when RESET returns LOW.
2.1.10 Clock (CLK)
This signal provides the basic timing for the processor and bus controller. The clock
frequency may be 5 MHz or 8 MHz or 10 MHz depending on the version of 8086.
2.1.11 VCC
It is a +5V power supply pin.
2.1.12 Ground (GND)
Two pins (1 and 20) are connected to ground ie, 0 V power supply.
Status ( S 2 , S 1 , S 0 )
These three status signals indicate the type of machine cycle used. These status lines
are encoded as shown below:
S2 S1 S0 Machine cycle
0 0 0 Interrupt acknowledge
0 0 1 I/O read
0 1 0 I/O write
0 1 1 Halt
1 0 0 Opcode fetch
1 0 1 Memory read
1 1 0 Memory write
1 1 1 Passive
These pins are used by other local bus masters to force RQ / GT1 the processor to
release the local bus at the end of the processor’s current bus cycle. Each pin is bidirectional
with RQ / GT0 having higher priority than RQ / GT1 .
8086 System Bus Structure 2.7
LOCK
This signal indicates that other system bus masters are not to gain control of the system
bus while LOCK is active LOW. The LOCK signal is activated by the “LOCK” prefix
instruction and remains active until the completion of the next instruction. This signal is
active LOW.
Queue Status (QS 1 , QS 0 )
The queue status is valid during the CLK cycle after which the queue operation is
performed. QS1 and QS0 provide status to allow external tracking of the internal 8086
instruction queue.
QS 1 QS 0 Characteristics
0 0 No operation
0 1 First byte of opcode from Queue
1 0 Empty the Queue
1 1 Subsequent byte from Queue
System bus is a single computer bus that connects the major components of a computer
system. It consists of data bus, address bus and control bus. Figure 2.2 illustrates the
fundamental system bus architecture.
l It is used for the exchange of data between the processor, memory and peripherals.
l The width of the data bus can differ for every microprocessor.
l When the microprocessor issues the address of the instruction, it gets back the
instruction through the data bus.
l When it issues the address of the data, it loads the data through the data bus.
2.8 Microprocessors and Microcontrollers
(ii) Address Bus
l The address bus contains the connections between the microprocessor and memory
or output devices that carry the signals relating to the addresses which the CPU is
processing at that time, such as the locations that the CPU is reading from or
writing to.
l It is unidirectional.
l The width of the address bus corresponds to the maximum addressing capacity of
the bus, or the largest address within memory that the bus can work with.
l Maximum address capacity = 2 n (n=address lines).
l Address bus may be multiplexed with data bus.
(iii) Control Bus
l The control bus carries the signals relating to the control and coordination of the
various activities across the computer, which can be sent from the control
unit within the CPU.
l Microprocessor uses control bus to process data, that is what to do with the selected
memory location.
l Various operations are performed by microprocessor with the help of control bus.
l This is a dedicated bus, because all timing signals are generated according to
control signal
l Some control signals are Read, Write and Opcode fetch etc.
CPU
ALU Input and
Memory
Registers Output
and Controls
Data Bus
System Bus
Address Bus
Control Bus
0 0 1 I/O Read
0 1 0 I/O Write
1 0 1 Memory Read
1 1 0 Memory Write
l HOLD and HLDA signals are used to interface other bus masters like DMA controller.
l INTA (Interrupt Acknowledge) signal is issued by the microprocessor on receiving
any interrupt signal. Fig. 2.3 shows the minimum mode 8086 system.
8086 System Bus Structure 2.11
Crystal Vcc
Oscillator
CLK MN/MX RD
RESET WR
M/IO RAM
EPROM
From Interrupt
Controller INTR STB Address I/O Devices
ALE Interrupt
OE
To Interrupt GND 8282 Controller
Controller INTA Latch
BHE
2 or 3
From DMA INTEL
HOLD
Controller 8086
To DMA CPU
Controller HLDA
8286 Data
Transceiver
DT/R T (2)
DEN OE
T1 T2 T3 T4
CLK
Address, BHE OUT
A19/S6–A16/S3
and BHE/S 7 Status OUT
ALE
RD
DT/R
DEN
T1 T2 T3 T4
CLK
Address, BHE OUT
A19/S6–A16/S3
and BHE/S 7 Status OUT
ALE
WR
DT/R
DEN
Read Operation :
l The Read cycle begins in T 1 with the assertion of the address latch enable (ALE)
signal and also M/ IO signal. During the negative going edge of this signal, the valid
address is latched on this bus.
l The BHE and A0 Signals address low, high or both bytes. From T 1 to T 4 the M/ IO
signal indicates memory or I/O operation. At T 2 , the address is removed from the bus
and is sent to the output. The bus is then tristated.
l The RD signal is activated in T 2 . This signal causes the addressed device to enable its
data bus drivers.
l After RD goes low, the valid data is available on the data bus. After the data is accepted
by the processor, RD is raised high at the beginning of T 4 .
l At T 2 DEN is lowered to enable transceiver. At T 4 DEN is raised to disable the
transceiver.
8086 System Bus Structure 2.13
Write Operation
l The Write cycle begins in T 1 with the assertion of the ALE signal. The M/ IO signal is
asserted to indicate a memory or I/O operation.
l At T 2 , after sending the address in T 1 , the processor sends the data to be written to the
addressed location.
l The data on the bus remains until middle of T 4 state.
l The WR signal becomes active at the beginning of T 2 .
l The BHE and A0 signals are used to select the proper type of memory or I/O to be read
or written.
Pin 29 : LOCK
RQ / GT 0 0 0 Word transfer
RQ / GT1 1 1 None
2.14 Microprocessors and Microcontrollers
Crystal GND
Oscillator
S0 MRDC
CLK MN/MX S0
S1 8288 MWTC
RESET S1
BUS IORC
S2 RAM
S2 Controller
IOWC
NC AMWC EPROM
INTA
DEN I/O Devices
LOCK AIOWC
DT/R Interrupt
ALE Controller
NC
RQ / GT1
T Data Bus
OE
8286
Transceiver
(2)
l In maximum mode 8086 based system, an external Bus Controller (Intel 8288) has to
be employed to generate the bus control signals.
The advanced signals ( AMWC , AIOWC ) are activated one clock pulse earlier. This
give slow interfaces an extra clock cycle to prepare the input data.
8086 System Bus Structure 2.15
l Three numbers of 8 bit latches (Intel 8282) are employed to demultiplex the address
lines. The latches are enabled by using the ALE signal generated by the bus controller.
l Two numbers of octal bus transceivers (Intel 8286) are used as data transceivers. The
signals DEN and DT/ R are generated by the bus controller are used as enable and
direction control respectively.
l The clock generator (Intel 8284) is used to generate clock, reset and ready signals for
8086. A quartz crystal of frequency 15 MHz is connected to 8284.
The timing diagram for Read cycle is shown in Fig.2.7 and Write cycle is shown in
Fig.2.8.
T1 T2 T3 T4
CLK
S2–S0
S2–S0 S2–S0 Inactive
BHE, A19–A16
Address/Status Float
and BHE/S7 S7–S3
Data IN D15–D0
Address/data
AD15–AD0 A15–A0
*ALE
*MRDC
or IORC
*DT/R
*DEN
T1 T2 T3 T4
CLK
S2–S0
S2–S0 S2–S0 Inactive
BHE, A19–A16
Address/Status Float
and BHE/S S7–S3
Data IN D15–D0
Address/data
AD15–AD0 A15–A0
*ALE
*AMWC
or AIOWC
*MWTC
or IOWC
*DEN
l The status signals S2 , S1 and S0 are set at the begining of bus cycle. When
S2 = S1 = S0 =1, (inactive-passive), the bus controller will output a pulse on its ALE
and apply a required signal to its DT/ R pin at T 1 .
l At T 2 , the bus controller will set DEN = 1, therefore transceiver is enabled. For an
input, bus controller will activate MRDC or IORC . These signals are activated until
T 4 . For an output, it will activate AMWC or AIOWC . These signals are activated
from T 2 to T 4 and MWTC or IOWC is activated from T 3 to T 4 .
l The status signals S2 , S1 and S0 are remain active during T 1 and T 2 and become
inactive during T 3 and T 4 .
+Vcc
A19 A G1 Y0
A18 B Y1 To RAM
A17 C
Y2
Y3
Y4
A16 G1 Y5
RD G2 Y6
Y7 To EPROM
74LS138
Fig.2.9. Decoder
6. As 32 K bytes EPROM and RAM need 15 address lines, A1 to A15 lines are used. A0
and BHE are used to select even and odd memory banks respectively..
7. RAM address range = 00000H – 0FFFF H
EVEN address starts at 00000 H and
ODD address starts at 00001 H
Fig. 2.10 shows the interface between 8086 and EPROM, RAM memory chips and
Table 2.3 shows the address for memory chips.
2.20
AD15 A0
AD0 A15
ALE
D0
8086 D15
G1 MEMR
RD A MEMW
WR B IOR
M/IO C IOW
G1 G2
A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 Hex
Address Memory
1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 F0000H Even
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 FFFFEH EPROM 1
0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 F0001H Odd
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 FFFFFH EPROM 2
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00000H Even
1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0FFFEH RAM 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 00001H Odd
0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0FFFFH RAM 2
2.21
2.22 Microprocessors and Microcontrollers
2.6 MAXIMUM MODE SYSTEM CONFIGURATION
A design example for maximum mode system configuration is given here with the
following features.
i. 8086 CPU working at 4.77 MHz
ii. 8087 Math Co-processor is connected
iii. 64 kB of EPROM for storing the system software
iv. 64 k B of RAM
Solution :
1. Since a math co-processor is to be connected, 8086 should be in Maximum Mode.
2. To get 8086 working at 4.77 MHz, 8284A clock generator with oscillator is to be
connected.
3. Two numbers of 32 KB EPROM (EVEN and ODD)
Two numbers of 32 KB RAM (EVEN and ODD)
For 32 KB EPROM/RAM, 15 address lines are used (2 15 = 32 KB)
Address lines = A1 –A15
A0 and BHE are used to select EVEN and ODD memory banks respectively..
4. EPROM address range = F0000 H to FFFFF H
EVEN address starts at F0000 H and ends at FFFFE H
ODD address starts at F0001 H and ends at FFFFF H
5. RAM address range = 00000 H to 0FFFF H
EVEN address starts at 00000 H and ends at 0FFFEH
ODD address starts at 00001 H and ends at 0FFFF H
6 In maximum mode the following signals are decoded externally using bus controller
(8288) :
A0–A19
Latches
WR
WR
WR
WR
8086 and
A1–A13
A1–A13
D8–D13
A1–A2
A1–A13
A1–A13
D8–D15
D0–D7
D0–D7
D0–D7
D0–D7
Buffers
RD
RD
RD
RD
A1
RD
RD
I/O0–I/O7
I/O0–I/O7
A0–A12
A0–A12
A0–A12
A0–A12
D0–D7
D0–D7
O0–O7
BHE
O0–O7
A0–A1
A0
WR
WR
WE
WE
OE
OE
OE
OE
RD
RD
RD WR
8 kB 8 kB 8 kB 8 kB 8279 8255
RAM EPROM RAM EPROM
6264 2764 6264 2764
Odd Odd Even Even
CS CS CS CS CS CS
A18
A OBCS0
Y0
2-to-4 Decoder
A19 OBCS1
B Y1
OBCS2
Y2
BHE OBCS3
EBCS0
A18 Y0
A
2-to-4 Decoder
A19 EBCS1
B Y1
EBCS2
Y2
A0
E EBCS3
Y3
Binary Address
Device Decoder Unused Input To Memory/IO Device Hexa
Input Address Lines Address Pins Address
A 19 A 18 A 17 A 16 A 15 A 14 A 13 A 12 A 11 A 10 A 9 A 8 A7 A6 A5 A4 A3 A2 A1 A0
8 KB RAM 0 0 x x x x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00000
Memory 0 0 x x x x 0 0 0 0 0 0 0 0 0 0 0 0 1 0 00002
Even 0 . 0 x . x x x 0 . 0 0 . 0 0 0 0 . 0 0 0 0 . 1 0 0 00004
00000H to 03FFFH
. . . . . .
. . . . . . .
0 0 x x x x 1 1 1 1 1 1 1 1 1 1 1 1 1 0 03FFE
8 KB RAM 0 0 x x x x 0 0 0 0 0 0 0 0 0 0 0 0 0 1 00001
Memory 0 0 x x x x 0 0 0 0 0 0 0 0 0 0 0 0 1 1 00003
Odd 0 . 0 x . x x . x 0 0 0 0 . 0 0 0 0. 0 0 0 1. 0 1 00005
..
. . . . . . .
. . . . . .
0 0 x x x x 1 1 1 1 1 1 1 1 1 1 1 1 1 1 03FFF
8 KB 1 1 x x x x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 FC000
EPROM 1 1 x x x x 0 0 0 0 0 0 0 0 0 0 0 0 1 0 FC002
FC000H to EFFFFH
. . . . . ..
Even . . . . . . .
.
1 1 x x x x 1 1 1 1 1 1 1 1 1 1 1 1 1 0 FC00E
8 KB 1 1 x x x x 0 0 0 0 0 0 0 0 0 0 0 0 0 1 FC001
EPROM 1 1 x x x x 0 0 0 0 0 0 0 0 0 0 0 0 1 1 FC003
Memory 1 . 1 x . x x . x 0 0 0 0 . 0 0 0 0. 0 0 0 1. 0 1 FC001
Odd . . . . . .
. . . . . .
1 1 x x x x 1 1 1 1 1 1 1 1 1 1 1 1 1 1 FFFFF
8279
Data
Register 0 1 x x x x x x x x x x x x x x x x 0 0 40000
Control
Register 0 1 x x x x x x x x x x x x x x x x 1 0 40002
8255
Port-A 1 0 x x x x x x x x x x x x x x x 0 0 0 80000
Port-B 1 0 x x x x x x x x x x x x x x x 0 1 0 80002
Port-C 1 0 x x x x x x x x x x x x x x x 1 0 0 80004
Control
Register 1 0 x x x x x x x x x x x x x x x 1 1 0 80006
2.25
2.26 Microprocessors and Microcontrollers
DMA transfer: The interface requests the use of the bus by sending a signal through
the control line and makes the necessary transfer without the help of the CPU.
2.8.1 PROGRAMMED I/O
Programmed I/O consists of continually examining the status of an interface and
performing an I/O operation with the interface when its status indicates that it has data to be
input or its data-out buffer register is ready to receive data from the CPU.
(i) Read input in programmed I/O mode
Each input is read after first testing whether the device is ready with the input (a state
reflected by a bit in a status register) or whether the device input buffer is not empty. The
program waits for the ready status by repeatedly testing the status bit and till all targeted
bytes are read from the input device. The program is in busy state only after the device gets
ready else in wait state. Fig.2.12 illustrates the input read by the processor in programmed
I/O mode.
1 No
2 Yes
Read status bit and 3
test whether the Yes
device is ready Read bytes Test more bytes
with the data to be read
Input Not
Ready
4
1
No
2 Yes
3
Read status bit and
test whether the Yes Test more bytes
device is ready Write bytes
to be written
Output buffer
Not Full
4
INTR
+5V
Because more than one device can assert the shared interrupt line simultaneously,
some method must be employed to ensure device priority. This is done using the interrupt
acknowledge signal generated by the processor in response to an interrupt request. Each
device is connected to the same interrupt request line, but the interrupt acknowledge line is
8086 System Bus Structure 2.29
passed through each device, from the highest priority device first, to the lowest priority
device last.
After preserving the required registers, the microprocessor generates an interrupt
acknowledge signal. This is gated through each device. If device 1 generated the interrupt, it
will place its identification signal on the data bus, which is read by the processor, and used
to generate the address of the interrupt-service routine. If device 1 did not request the servicing,
it will pass the interrupt acknowledge signal on to the next device in the chain. Device 2
follows the same procedure, and so on.
(iii) Interrupt priority management hardware
A more flexible hardware priority arrangement can be held by designing a programmable
interrupt priority management circuit and including it in the bus control logic. This is the
fastest system. The duty is placed on the requesting device to request the interrupt, and
identify itself. The identity could be a branching address for the desired interrupt-handling
routine.
If the device just supplies an identification number, this can be used in conjunction
with a lookup table to determine the address of the required service routine. Response time
is best when the device requesting service also supplies a branching address.
2.8.3 Direct Memory Access Block Transfer
A DMA controller allows devices to transfer data to or from the system’s memory
without the intervention of the processor.
During any given bus cycle, one of the system components connected to the system
bus is given control of the bus. This component is said to be the master during that cycle and
the component it is communicating with is said to be the slave. The CPU with its bus control
logic is normally the master, but other specially designed components can gain control of the
bus by sending a bus request to the CPU. After the current bus cycle is completed the CPU
will return a bus grant signal and the component sending the request will become the master.
Taking control of the bus for a bus cycle is called cycle stealing. Just like the bus
control logic, a master must be capable of placing addresses on the address bus and directing
the bus activity during a bus cycle. The components capable of becoming masters are
processors (and their bus control logic) and DMA controllers. Sometimes a DMA controller
is associated with a single interface, but they are often designed to accommodate more than
one interface.
The 8086 microprocessor receives bus requests through its HOLD pin and issues grants
from the hold acknowledge (HLDA) pin. A request is made when a potential master sends a
1 to the HOLD pin. Normally, after the current bus cycle is complete the 8086 will respond
by putting a 1 on the HLDA pin. When the requesting device receives this grant signal it
2.30 Microprocessors and Microcontrollers
becomes the master. It will remain master until it drops the signal to the HOLD pin, at which
time the 8086 will drop the grant on the HLDA pin. One exception to the normal sequence is
that if a word, which begins at an odd address is being accessed, then two bus cycles are required
to complete the transfer and a grant will not be issued until after the second bus cycle.
When a DMA controller becomes master it places an address on the address bus and
sends the interface the necessary signals to cause it to put data on, or receive data from, the
data bus. Since the DMA controller determines when the bus request is dropped, it can
return control to the CPU after each data byte is transferred and then request control again
when the next data byte is ready, or it can retain control until the entire block is moved. The
former is the usual case because this allows the CPU to continue its work until the next data
byte is available.
Address Bus
4
5
CPU
Memory I/O I/O DMAC
Interface
HOLD
HLDA
7 1
2 3
6
8 9 Data Bus
Control Bus
During a block input byte transfer, the following sequence occurs as the data byte is
sent from the interface to the memory:
1. The interface sends the DMA controller a request for DMA service.
2. A Bus request is made to the HOLD pin (active High) on the 8086 microprocessor and
the controller gains control of the bus.
3. A Bus grant is returned to the DMA controller from the Hold Acknowledge (HLDA)
pin (active High) on the 8086 microprocessor.
4. The DMA controller places contents of the address register onto the address bus.
5. The controller sends the interface a DMA acknowledgment, which tells the interface
to put data on the data bus. (For an output it signals the interface to latch the next data
placed on the bus.)
8086 System Bus Structure 2.31
6. The data byte is transferred to the memory location indicated by the address bus.
7. The interface latches the data.
8. The Bus request is dropped, the HOLD pin goes Low, and the controller relinquishes
the bus.
9. The Bus grant from the 8086 microprocessor is dropped and the HLDA pin goes Low.
10. The address register is incremented by 1.
11. The byte count is decremented by 1.
12. If the byte count is non-zero, return to step 1, otherwise stop.
2.9 MULTIPROGRAMMING
Multiprogramming can execute several jobs concurrently by switching the attention
of the CPU back and forth among them. This switching is usually prompted by a relative
slow input, output storage request that can be handled by a buffer, spooler or channel freeing
the CPU to continue processing.
The code for two or more processes is in memory at the same time and is executed in
a time-multiplexed fashion in multiprogramming.
Multiprogramming enable the CPU to be utilized more efficiently. If the operating
system can quickly switch the CPU to another task whenever the being worked in requires
relatively slow input, output or storage operations, then CPU is not allowed to stand idle.
This mean that more can be accomplished a given amount of time. For example, if a
disk drive that task can be delegated to channel and the CPU can be put to work in another
program while the data are being read in multiprogramming is thus an effective way the fast-
working CPU most busy with computations while slower input, output and storage operation
are being carried out.
Advantages of multiprogramming
l It increases CPU utilization.
l It decreases total read time needed to execute a job.
l It maximizes the total job throughput of a computer.
Disadvantages of multiprogramming
l It is fairly sophisticated and more complex.
l A multiprogramming operating system must keep track of all kinds of jobs it is
concurrently running.
2.32 Microprocessors and Microcontrollers
(i) Single Program
Time
Timeout
Unblocking Blocking
Blocked
The life-cycle of a process can be described by a state diagram which has states
representing the execution status of the process at various times and transitions that represent
changes in execution status. The state diagram for a process captures its life-cycle. The
states represent the execution status of the process; the transitions represent changes of
execution state.
Each active process has its own execution status, so there is a state diagram for each
process. There are relationships between the states of various processes that are maintained
by the operating system.
2.9.2 States
Ready: A process in the ready state has all of the resources that it needs for further
execution except for a processor. It is normally held in a ready queue until a processor
becomes available.
Running: A process in the running state has all of the resources that it needs for further
execution, including a processor.
Blocked: A process that needs some resource other than a processor for further
execution is in a blocked state. It is usually placed in a queue waiting for the needed resource.
2.9.3 Transitions
The transitions of a process represent changes of its execution state. The transitions
can be described in terms of their causes and the resulting actions taken by the operating
system.
Creation
l The creation transition is caused by a syscall for loading a program.
l A process control block is created for the program. It is initialized so that the
process starts with cleared registers and PC set to the program’s start (main)
2.34 Microprocessors and Microcontrollers
address. Usually the operating system sets up three open files: standard input,
standard output, and standard error.
Dispatch
l A process is dispatched when a processor is free to execute the process and the
operating system has scheduled the process to run next. Scheduling involves
selecting one of the ready processes to run next. The choice is often based on
which ready process has gone the longest time since it last had a running execution
status, but the choice may also involve prioritization of processes.
l Saved information about the process’s register and PC contents is loaded into
the processor. The PC contents are typically loaded by executing a jump
instruction which, in effect, resumes execution of process code from where it
left off.
Timeout
l A timeout is triggered by an external interrupt from a timer device.
l Information about the process’s register and PC contents is saved into the PCB
for the process. The process then goes into the ready state, where it enters a
queue with other ready processes. The operating system will the schedule one of
the ready processes and dispatch it.
Blocking
l A blocking transition is caused by the process making an operating system request
(syscall) that must be satisfied before it can continue executing. The most common
type of request is a request for input.
l The operating system will initiate an action to satisfy the request. For example,
for file input from a disk, the operating system will send a signal to the disk
initiating the fetch of a block from the disk. The process is put into a blocked
state, where it cannot execute until its request is satisfied.
Unblocking
l The unblocking transition is triggered by satisfaction of the request that lead to
blocking. For example, if a process requested file input from a disk, the
satisfaction will occur several milliseconds later when the disk sends an external
interrupt indicating that it is ready to transfer the requested block.
l After the operating system has handled the request satisfaction it puts the process
into the ready state, entering it into the ready queue. In the file read example,
handling the request means storing the block contents in a file structure for the
process.
8086 System Bus Structure 2.35
Termination
l The termination transition may be triggered by an exit syscall from the process
(normal termination) or by a processor exception (abnormal termination).
l The operating system frees up any resources used by the process. If the
termination is abnormal an error message is displayed.
A multiprocessor system will have two or more processors that can execute instructions
or perform operations simultaneously.
Activate the
WAIT TEST pin
Wake up the
8086
8086
Bus
Clock
control System Bus
generator
Logic
Coprocessor
or
Independent
Processor
Memory I/O
The main difference between coprocessor and closely coupled configuration is, no
special instruction WAIT or ESC is used. The communication between 8086 and independent
processor is done through memory space.
As shown in Fig.2.19, the 8086 sets up a message in memory and wakes up independent
processor by sending command to one of its ports. The independent processor then accesses
2.38 Microprocessors and Microcontrollers
the memory to execute the task in parallel with the 8086. When task is completed the external
processor informs the 8086 about the completion of task by using either a status bit or an
interrupt request.
Set up
message
8086 8089
Independent
Wake up
Wait for Processor
independent processor
with an OUT request
instruction
Fetch
message
Execute
the 8086’s program
sequence
Perform
assigned task
Wait for
Notify CPU
Ready or Interrupt
of completion
request
Clock
8086/8088
Generator
Local Local
Memory I/O
Devices
Module - 2 System
Memory
Clock
8086/8088
Generator
System Bus
Local Bus
Local Bus System Bus
Control Logic Control Logic
Local Local
Memory I/O
Devices
Module - 3 System
I/O devices
Clock
8086/8088
Generator
Local Local
Memory I/O
Devices
Controller
Controller
Controller
X86 Family
Register Set
Multiplier
Adder
8 KB
Data Cache Divider
Pre-fetch Instruction
U Pipe V Pipe
FRD
FAND/FMUL
BUS INTERFACE
In 2005, AMD released the first native dual-core processor, the Athlon X2. Intel released
the Pentium D. As of 2012, dual-core and quad-core processors are widely used in home
PCs and laptops, while quad, six, eight, ten, twelve, and sixteen-core processors are common
in the professional and enterprise markets with workstations and servers.
Sun Microsystems has released the Niagara and Niagara 2 chips, both of which feature
an eight-core design. High-end Intel Xeon processors that are on the LGA 771, LGA1336,
and LGA 2011 sockets and high-end AMD Opteron processors that are on the C32 and G34
sockets are dual processor capable, as well as the older Intel Core 2 Extreme QX9775 also
used in an older Mac Pro by Apple and the Intel Skulltrail motherboard. AMD's G34
motherboards can support up to four CPUs and Intel’s LGA 1567 motherboards can support
up to eight CPUs.
8086 System Bus Structure 2.49
MODEL QUESTIONS
PART A
1. When the 8086 processor is in minimum mode and maximum mode?
2. Explain the BHE and LOCK signals of 8086.
3. Which pin is used to activate minimum mode of operation in 8086 ?
4. List the signals of 8086 for minimum mode operation.
5. List the signals of 8086 for maximum mode operation.
6. What is the function of TEST pin in 8086 ?
7. What is the use of ALE signal?
8. What is the use of HOLD and HLDA signals?
9. Why we use MN/MX pin in 8086?
10. What is the use of latch signal on the AD0–AD15 bus in an 8086 system?
11. What are the advantages of multiprogramming ?
12. What are the disadvantages of multiprogramming ?
13. List the states of multiprogramming.
14. Define closely coupled configuration.
15. Define loosely coupled configuration.
16. What are the features of closely coupled configuration?
17. What is meant by loosely coupled configuration?
18. Discuss the advantages of multiprocessor systems.
19. What are the advantages of loosely coupled configuration?
20. What is Daisy chaining?
21. What is polling?
22. Name the three bus allocation schemes used in loosely coupled multiprocessor system.
23. What are the three basic multiprocessor configurations that the 8086 can support?
24. What is a coprocessor?
25. What are the features of 8087?
26. Name the flags available in status word of 8087.
27. What are the functional units available in 8087?
28. What is a tag?
29. Write the data types of 8087.
2.50 Microprocessors and Microcontrollers
30. What is the need of 8089?
31. What are the channel registers in 8089?
32. What is CCP in 8089?
33. Differentiate minimum and maximum mode of 8086.
34. What is Daisy Chaining?
35. What do you meant by pipelining?
36. List any four 32 bit processor.
37. List any four 64 bit processor.
38. What do you meant by multi-core architecture ?
PART B
1. Sketch the block diagram showing 8086 minimum mode system and explain.
2. Sketch the block diagram showing 8086 maximum mode system and explain.
3. Draw and explain the timing diagrams of input and output transfers of 8086 in minimum
mode.
4. Draw and explain the timing diagrams of input and output transfers of 8086 in maximum
mode.
5. Draw and explain the minimum mode write cycle and read cycle timing diagrams.
6. Draw and explain the maximum mode write cycle and read cycle timing diagrams.
7. Interface four 8K RAM and two 8K EPROM with 8086. Interface the RAM bank at a
segment address 0B00 H and the EPROM bank at physical address F800 H.
8. Explain in detail about the multiprocessor system.
9. Explain i) Programmed IO, ii) Interrupt driven IO.
10. Explain daisy chaining.
11. Explain data transfer with a DMA controller.
12. Explain multiprogramming with neat diagram.
13. Explain the various transitions of multiprocessor.
14. With neat diagram explain closely coupled configuration.
15. With neat diagram explain loosely coupled configuration.
16. Explain how co-processor works and interacts with 8086.
17. Discuss in detail about the interconnecting topologies of a multiprocessor system.
18. Discuss about the multiprocessor configuration of 8086.
8086 System Bus Structure 2.51
19. Assume that a loosely coupled multiprocessor system consists of an 8086 with a local
memory in one module and in another module two 8089’s with local I/O bus. Determine
the major bus interfacing devices required for each module.
20. With a block diagram explain the architecture of 8087.
21. Explain the interconnection between 8086 and 8087 in detail.
22. Explain the 8087 coprocessor data format.
23. Explain the architecture of 8089 with neat diagram.
24. Explain the communication between 8086 and 8089.
25. Explain the minimum mode of operations of 8086 with a neat sketch.
26. Explain multi-microprocessor configuration methods.
27. Write down interfacing and operation of 8086 CPU module in MIN and MAX modes
with diagrams.
28. Draw the timing diagram of INTA cycle of 8086 and explain.
29. Write notes on advanced microprocessors.
30. Explain superscalar architecture of Pentium processor.
2.52 Microprocessors and Microcontrollers
May/Jun 2013
1. What is the function of LOCK and RQ/GT signals.
2. When the 8086 processor is in minimum mode and maximum mode?
May/Jun 2012
1. What are called assembler directives? Give two examples.
Nov/Dec 2011
1. What are the features of closely coupled multiprocessor systems?
2. What do you mean by CCW in an I/O Processor?
May/Jun 2011
1. How does co-processor identify the instructions meant for it?
2. Name the signals used by the processor to communicate with an I/O processor.
3. When the 8086 processor is in minimum mode and maximum mode?
Nov/Dec 2010
1. List the pointer and index registers of 8086 Architecture.
2. Identify the addressing modes involved in the following 8086 instructions: MOV AX,
0005H; MOV AX, 50H [BX][S1].
May/Jun 2010
1. Compare closely coupled configuration with loosely coupled configuration.
2. Mention the need for co-processor in a microprocessor based system
May/Jun 2009
1. What are the three basic multiprocessor configurations that the 8086 can support?
Nov/Dec 2008
1. What does it imply if the states of 8086 signals - BHE and A0 are at 0 and 1, respectively?
Apr/May 2008
1. Explain why the processor utilization rate can be improved in a multiprocessor system
by an instruction an instruction queue.
2. What information is conveyed when QS 1 , QS 0 bits are 01?
2.54 Microprocessors and Microcontrollers
3. Explain the BHE and LOCK signals of 8086.
Nov/Dec 2007
1. What is a Coprocessor?
2. What is the use of ALE signal?
3. What is the use of HOLD and HLDA signals?
Nov/Dec 2006
1. What is the use of latch signal on the AD0 –AD15 bus in an 8086 system?
Apr/May 2006
1. What are the advantages of a loosely coupled configuration in a multiprocessor system?
2. What are the signals differentiate ‘maximum mode’ and ‘minimum mode’ operation of
8086?
PART B
Nov/Dec 2013
1. What are the difference between memory mapped I/O and I/O mapped I/O. (6)
2. Draw and explain the timing diagram of write cycle in 8086 in minimum mode. (8)
May/Jun 2013
1. Describe the maximum mode of operation of 8086. (8)
2. Explain the 8086 basic bus cycle timing diagram. (6)
Nov/Dec 2012
1. Compare Closely Coupled configuration with Loosely coupled configuration. (8)
2. How is the communication between CPU and IOP being done? (8)
3. Describe the Maximum Mode Signals, Bus Cycles and Maximum Mode System
configuration of 8086 Microprocessor in detail. (16)
May/Jun 2012
1. Explain how I/O processor communicates between the CPU and I/O peripherals with
an example? (8)
8086 System Bus Structure 2.55
2. Draw the pin diagram of 8086 CPU and explain the functions of the pins in minimum
and maximum mode of operation of 8086. (10)
3. Describe the circuit suitable for generation of multiple wait states for 8086 CPU module.
(6)
Nov/Dec 2011
1. Discuss the schemes used to solve the bus arbitration problem in multiprocessors.(6)
2. Explain the bus structure of 8086 microprocessor. (8)
3. How does one configure 8086 in maximum mode and minimum mode? Explain. (8)
May/Jun 2011
1. Explain the salient features of 8087 co-processor units in architectural diagram. (8)
2. Draw the architecture of 8089 I/O processor and explain its functionalities. (8)
Nov/Dec 2010
1. Distinguish between loosely coupled and closely coupled multiprocessor systems with
suitable examples.
May/Jun 2010
1. Draw the internal block diagram of 8087 Co-processor and explain it with 8087 control
word and status word formats. (12)
2. Give two examples for packed decimal data transfers and integer data transfers of an 8087
Co-processor. (4)
May/Jun 2009
1. Explain the minimum and maximum mode operations of 8086 with neat diagram. (16)
2. Explain the memory addressin in 8086 (8)
3. What is bus arbitration? Explain briefly the various bus arbitration schemes. (8)
Nov/Dec 2008
1. Explain the basic bus access control and arbitration schemes used in multiprocessor
systems. (8)
2. What happens when 8086 is operated in maximum mode? List the signals that are
unique in this mode. (8)
3. Explain the maximum mode operation of 8086. (12)
2.56 Microprocessors and Microcontrollers
Apr/May 2008
1. Discuss about the multiprocessor configurations of 8086. (16)
2. Assume that a loosely coupled multiprocessor system consists of an 8086 with a local
memory in one module and in another module two 8089’s with local I/O bus. Determine
the major bus interface devices required for each module.
3. Draw and discuss the configuration diagram for the maximum mode operation of 8086.
(16)
Nov/Dec 2007
1. Discuss in detail about the interconnecting topologies of a multiprocessor system.
(16)
2. Discuss the software aspects of a multiprocessor system. (12)
3. Explain the I/O addressing capability of 8086. (4)
4. Explain about the different Interconnection topologies in multi microprocessor systems.
(16)
5. Explain in details about the maximum and minimum mode operation of 8086 system
with their respective timing diagram. (16)
Apr/May 2007
1. Explain the maximum mode operation of 8086 (12)
2. Explain the Minimum mode operation of 8086. (12)
3. Explain the function of following 8086 signals.
(a) HLDA
(b) RQ/GTO
(c) DEN
(d) ALE
4. Draw and explain in block diagram showing 8086 in maximum mode configuration.
(12)
Nov/Dec 2006
1. Explain the MIN/MAX mode operation of an 8086 processor. (10)
Apr/May 2006
1. Write a brief note on 8086 base loosely coupled system configuration. (8)
2. Explain the minimum mode configuration of 8086 processor. (8)
8086 System Bus Structure 2.57
TWO MARKS QUESTION AND ANSWERS
1. What are two operating modes of 8086?
The processor operates in two modes
l Minimum mode-Single Processor Configuration
l Maximum mode-Multiprocessor Configuration
2. State the significance of LOCK signal in 8086?
This output pin indicates that other system bus master will be prevented from gaining
the system bus, while the LOCK signal is low. The LOCK signal is activated by the
LOCK prefix instruction and remains active until the completion of the next instruction
3. State the function of queue status lines QS0 AND QS1 in 8086 microprocessor?
These lines give information about the status of the code- prefetch queue. These are
active during the CLK cycle after which the queue operation is performed. These are
encoded as shown in table
QS1 QS0 INDICATION
0 0 No operation
0 1 First byte of opcode from the queue
1 0 Empty queue
1 1 Subsequent byte from the queue
Activate the
WAIT TEST pin
Wake up the
8086
8086 System Bus Structure 2.61
21. Draw the read cycle timing diagram for minimum mode.
CLK
T1 T2 T3 TW T4
ALE
RD
DEN
DT/R
22. Draw the Memory write cycle timing diagram for Maximum Mode.
One bus cycle
T1 T2 T3 T4 T1
Clk
ALE
MWTC or IOWC
DT / R
DEN
2.62 Microprocessors and Microcontrollers
23. What is daisy chain bus arbitration?
Only single bus arbiter performs the required arbitration and it can be either a
processor or a separate DMS controller. There are three arbitration schemes which
run on centralized arbitration. a) Daisy Chaining ” It is a simple and cheaper method
where all the masters use the same line for making bus requests.
24. How many caches are there in Pentium microprocessor?
The Pentium processor has only one level of cache, referred to as Level 1 (L1). The
L1 cache is located on-chip and is divided into separate pieces; one for data and one
for code, each at 8KB.
25. What is the latest microprocessor?
Intel’s latest and sixth-gener ation chip is called the Pentium Pro. All Intel
microprocessors are backward compatible, which means that they can run programs
written for a less powerful processor.