SIGNALS of 8086
SIGNALS of 8086
The following signal description are common for both the minimum and
maximum modes. AD15-AD0: These are the time multiplexed memory I/O
address and data lines. Address remains on the lines during T1 state, while the
data is available on the data bus during T2, T3, TW and T4. Here T1, T2, T3,
T4 and TW are the clock states of a machine cycle. TW is a wait state. These
lines are active high and float to a tristate during interrupt acknowledge and
local bus hold acknowledge cycles.
A19/S6, A18/S5, A17/S4, A16/S3: These are the time multiplexed address and
status lines. During T1, these are the most significant address lines or memory
operations. During I/O operations, these lines are low. During memory or I/O
operations, status information is available on those lines for T2, T3, TW and T4
.The status of the interrupt enable flag bit(displayed on S5) is updated at the
beginning of each clock cycle. The S4 and S3 combined indicate which segment
register is presently being used for memory accesses as shown in Table 2.1.1.
These lines float to tri-state off (tristated) during the local bus hold acknowledge.
The status line S6 is always low (logical). The address bits are separated from
the status bits using latches controlled by the ALE signal.
S4 S3 Indication
0 0 Alternate Data
0 1 Stack
1 0 Code or none
1 1 Data
Table 2.1.1 S4 & S3 status
BHE A0 Indication
0 0 Whole word
0 1 Upper byte from or to odd
address
1 0 Upper byte from or to even
address
1 1 None
Table 2.1.2 Bus high enable status
[Source: Advanced Microprocessors and Microcontrollers by A.K Ray & K.M.Bhurchandi]
RD-Read:
Read signal, when low, indicates the peripherals that the processor is performing
a memory or I/O read operation. RD is active low and shows the state for T2, T3,
and TW of any read cycle. The signal remains tristated during the 'hold
acknowledge'.
READY:
This is the acknowledgement from the slow devices or memory that they
have completed the data transfer. The signal made available by the devices is
synchronized by the 8284A clock generator to provide ready input to the 8086. The
signal is active high.
INTR- lnterrupt Request:
This is a level triggered input. This is sampled during the last clockcycle
of each instruction to determine the availability of the request. If any interrupt
request is pending, the processor enters the interrupt acknowledge cycle. This can
be internally masked by resetting the interrupt enable flag. This signal is active high
and internally synchronized.
TEST:
This input is examined by a 'WAIT' instruction. If the TEST input goes low,
execution will continue, else, the processor remains in an idle state. The input is
synchronized internally during each clock cycle on leading edge of clock.
NMI-Non-maskable Interrupt:
This is an edge-triggered input which causes a Type2 interrupt. The NMI is
not maskable internally by software. A transition from low to high initiates the
interrupt response at the end of the current instruction. This input is internally
synchronized.
RESET:
This input causes the processor to terminate the current activity and start
execution from FFFF0H. The signal is active high and must be active for at least
four clock cycles. It restarts execution when the RESET returns low. RESET is also
internally synchronized.
CLK-Clock Input:
The clock input provides the basic timing for processor operation and bus
control activity. Its an asymmetric square wave with 33% duty cycle. The range of
frequency for different 8086 versions is from 5MHz to 10MHz.
VCC:
+5V power supply for the operation of the internal circuit. GND ground
for the internal circuit.
MN/MX:
The logic level at this pin decides whether the processor is to operate
in either minimum (single processor) or maximum (multiprocessor) mode.
THE FOLLOWING PIN FUNCTIONS ARE FOR THE MINIMUM MODE
OPERATION OF 8086.
M/IO - Memory/IO:
This is a status line logically equivalent to S2 in maximum mode. When it is
low, it indicates the CPU is having an I/O operation, and when it is high, it indicates
that the CPU is having a memory operation. This line becomes active in the previous
T4 and remains active till final T4 of the current cycle. It is tristated during local bus
"hold acknowledge".
DMA request is made while the CPU is performing a memory or I/O cycle, it
will release the local bus during T 4 provided:
1. The request occurs on or before T 2 state of the current cycle.
2. The current cycle is not operating over the lower byte of a word (or
0 0 0 Interrupt
acknowledge
0 1 1 Halt
1 0 0 Code Access
1 0 1 Read Memory
1 1 0 Write Memory
1 1 1 Passive
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 Table2.1.4.
RQ/GT0, RQ/GT1-ReQuest/Grant:
These pins are used by other local bus masters, in maximum mode, to force
the processor to release the local bus at the end of the processor's current bus
cycle. Each of the pins is bidirectional with RQ/GT0 having higher priority than
RQ/ GT1, RQ/GT pins have internal pull-up resistors and may be left
unconnected. The request Grant sequence is as follows:
1. A pulse one clock wide from another bus master requests the bus access to8086.
2. During T4 (current) or T1 (next) clock cycle, a pulse one clock wide from
8086 to the requesting master, indicates that the 8086 has allowed the local bus
to float and that it will enter the "hold acknowledge" state at next clock cycle.
The CPU's bus interface unit is likely to be disconnected from the local bus of
the system.
3. A one clock wide pulse from another master indicates to 8086 that the 'hold'
request is about to end and the 8086 may regain control of the local bus at the
next clock cycle. Thus each master to master exchange of the local bus is a
sequence of 3 pulses. There must be at least one dead clock cycle after each bus
exchange. The request and grant pulses are active low. For the bus requests those
are received while 8086 is performing memory or I/O cycle, the granting of the
bus is governed by the rules as discussed in case of HOLD, and HLDA in
minimum mode.