Advanced Microprocessors: Date: 16/11/2005 Prof. S. Jagannathan
Advanced Microprocessors: Date: 16/11/2005 Prof. S. Jagannathan
Advanced Microprocessors: Date: 16/11/2005 Prof. S. Jagannathan
Date: 16/11/2005
Prof. S. Jagannathan,
HOD – Department of Electronics and Communication
Engineering,
R.V. College of Engineering, Bangalore
Contents
• Pin Diagram of 8086
• Pin Details
• Pin Diagram of 8088
• Comparison of 8086 and 8088
8086 Pin diagram
35 S6
34 S7
8086
28 S2 (M/I O )
27 S1 (DT/ R )
26
S 0 ( DEN )
Continued…
Pin Description
Continued…
These signals float to 3-state OFF in “hold acknowledge”.
These status lines are encoded as shown.
S2* S1* S0* Characteristics
0(LOW) 0 0 Interrupt acknowledge
0 0 1 Read I/O Port
0 1 0 Write I/O Port
0 1 1 Halt
1(HIGH) 0 0 Code Access
1 0 1 Read Memory
1 1 0 Write Memory
1 1 1 Passive Continued…
Status Details
S2 S1 S0 Indication
0 0 0 Interrupt Acknowledge
0 0 1 Read I/O port
0 1 0 Write I/O port
0 1 1 Halt
1 0 0 Code access
1 0 1 Read memory
1 1 0 Write memory
1 1 1 Passive Continued…
S4 S3 Indications
0 0 Alternate data
0 1 Stack
1 0 Code or none
1 1 Data
Continued…
S5 ----- Value of Interrupt Enable flag
31 HOLD
30 HLDA
29 WR
28 M/I O
8086
27 DT/ R
26 DEN
25 ALE
24 INTA
Continued…
Pin Description
HOLD, HLDA – Pin no. 31, 30 – Type I/O
HOLD: indicates that another master is requesting a local bus
“hold”. To be acknowledged, HOLD must be active HIGH. The
processor receiving the “hold” request will issue HLDA (HIGH) as
an acknowledgement in the middle of a T1 clock cycle.
Simultaneous with the issuance of HLDA the processor will float
the local bus and control lines. After HOLD is detected as being
LOW, the processor will LOWer the HLDA, and when the
processor needs to run another cycle, it will again drive the local bus
and control lines.
The same rules as apply regarding when the local bus will be
released.
HOLD is not an asynchronous input. External synchronization
should be provided if the system can not otherwise guarantee the
setup time.
Continued…
WR* - Pin no. 29 – Type O
Write: indicates that the processor is performing a write memory or
write I/O cycle, depending on the state of the M/IO* signal. WR* is
active for T2, T3 and TW of any write cycle. It is active LOW, and
floats to 3-state OFF in local bus “hold acknowledge”.
Continued…
DT/R* - Pin no. 27 – Type O
Data Transmit / Receive: needed in minimum system that desires to
use an 8286/8287 data bus transceiver. It is used to control the
direction of data flow through the transceiver. Logically DT/R* is
equivalent to S1* in the maximum mode, and its timing is the same as
for M/IO*. (T=HIGH, R=LOW). This signal floats to 3-state OFF in
local bus “hold acknowledge”.
DEN* - Pin no. 26 – Type O
Data Enable: provided as an output enable for the 8286/8287 in a
minimum system which uses the transceiver. DEN* is active LOW
during each memory and I/O access and for INTA cycles. For a read
or INTA* cycle it is active from the middle of T2 until the middle of
T4, while for a write cycle it is active from the beginning of T2 until
the middle of T4. DEN* floats to 3-state OFF in local bus “hold
acknowledge”. Continued…
ALE – Pin no. 25 – Type O
Address Latch Enable: provided by the processor to latch the
address into the 8282/8283 address latch. It is a HIGH pulse active
during T1 of any bus cycle. Note that ALE is never floated.
30 RQ/ GT1
29 LOCK
28 S2
8086
27 S1
26 S0
25 QS0
24 QS1
Continued…
Pin Description:
RQ*/GT0*, RQ*/GT1* - Pin no. 30, 31 – Type I/O
Request /Grant: pins are used by other local bus masters to force 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*. RQ*/GT* has an internal pull up
resistor so may be left unconnected. The request/grant sequence is as
follows:
Continued…
1. A pulse of 1 CLK wide from another local bus master indicates a
local bus request (“hold”) to the 8086 (pulse 1)
2. During a T4 or T1 clock cycle, a pulse 1 CLK wide from the 8086
to the requesting master (pulse 2), indicates that the 8086 has
allowed the local bus to float and that it will enter the “hold
acknowledge” state at the next CLK. The CPU’s bus interface unit
is disconnected logically from the local bus during “hold
acknowledge”.
3. A pulse 1 CLK wide from the requesting master indicates to the
8086 (pulse 3) that the “hold” request is about to end and that the
8086 can reclaim the local bus at the next CLK.
Continued…
Each master-master exchange of the local bus is a sequence of 3
pulses. There must be one dead CLK cycle after each bus exchange.
Pulses are active LOW.
If the request is made while the CPU is performing a memory cycle,
it will release the local bus during T4 of the cycle when all the
following conditions are met:
Request occurs on or before T2.
Current cycle is not the low byte of a word (on an odd address)
Current cycle is not the first acknowledge of an interrupt
acknowledge sequence.
A locked instruction is not currently executing.
Continued…
LOCK* - Pin no. 29 – Type O
LOCK* : output 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,
and floats to 3-state OFF in “hold acknowledge”.
QS1, QS0 – Pin no. 24, 25 – Type O
Queue Status: 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.
Continued…
QS1 QS0 Characteristics
0(LOW) 0 No operation
0 1 First Byte of Op Code from Queue
1 (HIGH) 0 Empty the Queue
1 1 Subsequent byte from Queue
Common Signals
Continued…
Pin Description:
Continued…
BHE*/S7- Pin No. 34 – Type O
Bus High Enable / Status: During T1 the Bus High Enable signal (BHE*) should
be used to enable data onto the most significant half of the data bus, pins D15-D8.
Eight bit oriented devices tied to the upper half of the bus would normally use
BHE* to condition chip select functions. BHE* is LOW during T1 for read, write,
and interrupt acknowledge cycles when a byte is to be transferred on the high
portion of the bus. The S,7 status information is available during T2, T3 and T4.
The signal is active LOW and floats to 3-state OFF in “hold”. It is LOW during T1
for the first interrupt acknowledge cycle.
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 Continued…
MN/MX* - Pin no. 33 – Type - I
Minimum / Maximum: indicates what mode the processor is to
operate in.
If the local bus is idle when the request is made the two possible
events will follow:
Local bus will be released during the next clock.
A memory cycle will start within 3 clocks. Now the four
rules
for a currently active memory cycle apply with condition
number 1 already satisfied.
8088 Pin Diagram
Comparison of 8086 and 8088
1. In 8088 we have A15-8, instead of AD15-8 of 8086. this is
because, the 8088 can communicate with the outside world
using only 8 bits o data. However, the registers in 8088 and
8086 are same, and the instruction set is also the same. So,
for word operations, the 8088 has to access information
twice. Thus the execution time is increased in the case of
8088.
Continued…
2. In 8086 pin 28 is assigned for the signal M/IO* in the minimum
mode. But in 8088, this pin is assigned to the signal IO/M* in
the minimum mode. This change has been done in 8088 so that
the signal is compatible with 8085 bus structure.
3. The instruction queue length in the case of 8086 is 6 bytes. The
BIU in 8088 needs more time to fill up the queue a byte at a
time. Thus to prevent overuse of the bus by the BIU, the
instruction queue in 8088 is shortened to 4 bytes.
4. To optimize the working of the queue, the 8086 BIU will fetch a
word into the queue whenever there is a space for a word in the
queue. The 8088 BIU will fetch a byte into the queue whenever
there is space for a byte in the queue. Continued…
5. Pin number 34 of 8086 is BHE*/S7. BHE* is irrelevant for
8088, which can only access 8 bits at a time. Thus pin 34 o
8088 is assigned for the signal SSO*. This pin acts like SO*
status line in the minimum mode of operation. So, in the
minimum mode, DT/R*, IO/M*, and SSO* provide the
complete bus status as shown.
Continued…
IO/M* DT/R* SSO* Bus Cycle
1 0 0 Interrupt
acknowledge
1 0 1 Read I/O port
1 1 0 Write I/O port
1 1 1 Halt
0 0 0 Code Access
0 0 1 Read Memory
0 1 0 Write Memory
0 1 1 Passive Continued…
6. In the maximum mode for 8088 the SSO* (pin 34) signal is
always a 1. In the maximum mode for 8086, the BHE*/S7
(pin 34) will provide BHE* information during the first clock
cycle, and will be 0 during subsequent clock cycles. In
maximum mode, 8087 will monitor this pin to identify the
CPU as a 8088 or a 8086, and accordingly sets its own queue
length to 4 or 6 bytes.