8086
Memory
module
Timing
Memory
Y
S
T
Central
processing
unit
Bus
Control
logic
Interface
Memory
Module
E
M
B
Interface
Mass
Storage
device
I/O subsystem
Interface
8086
I/O
device
8086
Features of 8086
Introduced in 1978 .
Comes in Dual-In-Line Package(DIP) IC.
8086 is a 16-bit N-channel HMOS microprocessor .
Works on 5 volts power supply and draws a current of 360
ma, with an internal circuitry made up of 29K transistors.
It consists of an electronic circuitry built using 29000
transistors.
It is built on single semiconductor chip and packaged in an
40-pin IC.
It has 20-bit address bus and 16-bit data bus.
It can directly address upto 220 I.e., 1M bytes of memory.
The 16-bit data word is divided into lower-order byte and
higher order byte.
8086
Features of 8086
The 20-bit address bus is time multiplexed:
The lower order 16-bit address bus is time multiplexed
with data bus.
The higher order 4-bit address bus is time multiplexed with
status signals.
The maximum internal clock for 8086 is 5MHz.
8086 chip does not have the facility of internal clock
generation.
(the INTEL 8284 clock generator/driver is used to generate
the clock signal for 8086 microprocessor
The clock signal is divided by 3 in case of 8086 for
internal clock requirements.
8086
Features of 8086
8086 uses I/O mapped I/O techniques hence I/O devices
are accessed by using separate 16-bit address
8086 operates in two different modes
Minimum mode
( It works as a simple single processor system when
configured in minimum mode)
Maximum mode
( It works as a multiprocessor system i.e., along with math
coprocessor and I/O coprocessor when configured in
maximum mode)
8086
Execution Unit
Data pointer
&
Index registers
Relocation
Register file
____
BHE
A16/S3 to A19/S6
AD0 to AD15
Bus
Interface
Unit
ALU
FLAGS
_____
INTA
__
RD
__
WR
___
DEN _
DT/R
Instruction Queue
_____
TEST
INTR
NMI
LOCK
QS0
RESET
HOLD HLDA
CLK
___
MN/MX
READY
Vcc
QS1
GND
8086
__
S3
__
S2
__
S1
ALE
Memory Interface
ES Register
CS Register
SS Register
DS Register
Instruction Pointer
AX
BX
CX
DX
AH
BH
CH
DH
AL
BL
CL
DL
Stack Pointer
Base Pointer
Source Index
Destination Index
6
5
4
3
2
1
BIU
Instruction
Queue
Control
System
EU
INTERNAL
BLOCK
DIAGRAM
ALU
Operands
8086 FLAGS
8086 Architecture
i.
ii.
8086 Architecture
EXECUTION UNIT
The execution unit informs the BIU of the processor
regarding from where to fetch the instructions from and
then executes these instructions.
The execution unit consists of the following:
General purpose registers
Stack pointer
Base pointer
Index registers
ALU
Flag register( FLAGS/ PSW)
Instruction decoder
Timing and control unit
8086
10
8086 Architecture
Functions of EU
Tells BIU regarding from where to fetch instructions or to read
data.
Receives opcode of an instruction from the queue.
decodes the instructions.
Executes the instruction.
8086 Architecture
BUS INTERFACE UNIT
The BIU handles transfer of data and address between the
processor and memory/ I/O devices by computing address
(Physical/ Effective address) and send the computed
address to memory / I/O and fetches instruction codes then
stores them in FIFO register set called Queue register.
The BIU also relocates the addresses of the un relocated
operands and reads/writes data from/to memory/ I/O
devices.
The BIU consists of the following:
o Segment Registers
o Instruction pointer
o 6-Byte instruction Queue Register
8086
12
8086 Architecture
Functions of BIU
Handles transfer of data and address between processor
and memory / I/O devices.
Compute physical address and send it to memory
interfaces.
Fetches instruction codes and stores it in Queue
Reads/Writes data from/to memory/ I/O devices
Relocates the unrelocated addresses of operands sent by
EU
8086
13
8086 Architecture
Functions of various parts of BIU
Segment registers : Used to hold the starting address of the
segment registers.
Queue register: Used to store prefetched instructions and
inputs it to EU.
Instruction Pointer: Used to point to the next instruction to
be executed by EU.
While the EU is decoding an instruction or executing an
instruction which does not require use of the buses, the
BIU fetches upto six instruction bytes that will be
following the present instruction from memory and stores
them in the queue register simultaneously.
8086
14
8086 Architecture
The prefetched instructions are stored in the queue register
which is an 6-byte FIFO register set.
When the EU is ready for its next instruction,it simply
reads the instruction byte(s) for the instruction from the
queue which is present in BIU.
At the starting, CS : IP pair are loaded with the required
address from which the execution is to be started.
Initially, the queue register will be empty and
microprocessor starts a fetch operation to bring one byte
(the 1st byte ) of the instruction code depending on whether
CS : IP is pointing to an even memory location or an odd
memory location.
The instruction of 8086 have 1 to 6 bytes i.e., we have
instruction of size 1-byte long to 6-byte long, at a time two
bytes of queue can be filled.
8086
15
16
17
15
14 13
12
11
10
X X X X O D I
T S Z X AC X P X C
8086
18
19
8086
20
001101001101
1100
+000001110010
1110
001111000000
1010
CF=0
PF=1
AF=1
ZF=0
SF=0
OF=0
8086
21
8086
22
23
24
25
Is it
Single?
No
Queue Register
From memory
1
2
3
4
5
6
Update Queue
Opcode Queue
Opcode
8086
26
Entering
Entering
instruction
instruction
4th fetch
3rd fetch
3rd ins
3rd ins
3rd fetch
2nd fetch
2nd ins
1st fetch
1 ins
st
2nd fetch
2nd ins
1st ins
1st fetch
8086
27
28
3
3
4489F
38AB4
Top of CODE
Segment
CODE Byte
IP
348A0
Start of CODE
segment
Hard-Wired
Zero
8086
30
34
35
8086
36
8086
37
8086
39
41
8086
43
44
Segment-1
End of Data/Code
64 KB
Starting of segment-2
Ending of segment-1
Segment-2
64 KB
Ending of segment-2
8086
45
8086
46
2000
EA
Data Memory
0H
20001H
20002H
20003H
0000H
0001H
0002H
0003H
22001H
2001H
2002H
2003H
22002H
22003H
2FFFBH
2FFFCH
2FFFDH
2FFFEH
2FFFFH
8086
FFFBH
FFFCH
FFFDH
FFFEH
FFFFH
47
48
PA =
16-bit
0000
20-bit
Memory Pointer
16-bit
20-bit
8086
49
50
51
8086
52
53
54
VCC
GND
AD16AD19/
CLK
S3 S6
MN
MX
BHE / S7
INTR
NMI
_____
TEST
___
INTEL
8086
READY
RESET
___
RD
GND
/ ___
8086
___
HOLD
RQ / GT0
HLDA
___ ___
RQ / GT1
___
WR
_____
LOCK
M /__
IO
__
S2
DT/_
R
____
DEN
__
S0
ALE
____
INTA
QS0
S1
55
QS1
Pin Definitions
Pin(s)
symbol
In/Out/
tri-state
Description
1&20
GND
2-16
AD14-AD0
I/O-3
17
NMI
Non-maskable interrupt request- positivegoing edge triggered. This interrupt does not check
whether IE flag is a logic 1.
18
INTR
19
CLK
clock-33%duty cycle,
5 MHz for 8086
8 MHz for 8086-2, 10MHz for 8086.
ground
8086
56
Pin Definitions
21
RESET
must be 1
22
READY
______
23
24-31
TEST
--
8086
57
Pin Definitions
32
RD
0-3
___
33 MN / MX
____
34 BHE / S7
O-3
8086
58
Pin Definitions
35-38 A19/S6 -
O-3
A16/S3
39
AD15
I/O-3
same as AD14-AD0
40
VCC
--
8086
59
CLK
___
MN / MX
ALE
Ready
+5V
BHE
A19-A16
8086
DEN
DT / R
M/IO
WR
RD
HOLD
HLDA
INTR
INTA
AD15-AD0
BHE
Address
Latches
(3 8282s)
Transceivers
(2 8282s)
optional
Address bus
Data bus
Control bus
8086
60
INTA O-3
25
ALE
26
____
DEN
O-3
output during the latter portion of bus cycle and is to inform the
transceiver that CPU is ready to send or receive data.
26
___
DT / R
O-3
26
26
27
28
__
M / IO
__
WR
HOLD
HLDA
O-3
O-3
I
O
8086
61
VCC
GND
__
S0
__
INTR
_____
TEST
NMI
RESET
s1
CLK
8288 Bus
Controller
__
S2
5V
CEN
DEN __
DT / R
ALE
8086
MPU
___
M/N MX
AEN
_______
MRDC
______
MWDC
______
AMWC
______
IORC
_______
IOWC
______
AIOWC
_____
INTA
_____
MCE / PDEN
______
ALE
__
DT / R
_____
DEN
______
LOCK
______
BHE
___
RD
READY
___ ___
RQ / GT1
___ ___
RQ / GT0
QS1, QS0
8086
62
24,25 QS1,QS0
O
Reflects the status of the instruction queue.
__ __ __
26 28 S0,S1,S2
O-3
Indicates the type of transfer to take place during the current bus cycle.
__ __ __
S2 S1 S0
QS1 QS0
Indication
0
0
0 Interrupt acknowledge 0
0
No operation
0
0
1 Read I/O port
0
1 First byte of op-code
0
1
0 Write I/O port
from the queue
0
1
1 Halt
1
0 Empty Queue
1
0
0 Instruction fetch
1
1 Subsequent byte from 1
0
1 Read memory
the queue.
1
1
0 Write memory
1
1
1 Inactive passive
_____
29
LOCK
O-3
Indicates the bus will not be released to other potential bus
masters unti
the instruction with prefix LOCK is executed.
___ ___
30
RQ / GT1 I/O
for inputting bus requests and outputting bus grants.
___ ___
___ ___
___ ___
31
RQ / GT0
I/O
same as that RQ / GT1 except that a request on RQ / GT0 has
higher
priority.
8086
63
8086
64
8086
65
8086
66
8086
67