Microprocessor hardware v1
Microprocessor hardware v1
Microprocessor Circuitry
These lecture notes are based on the book by Muhammed Ali Mazidi,
Janice Gillispie Mazidi, Danny Causey; «The x86 PC assembly language,
design, ad interfacing», 5the Ed., Prentice Hall
8086 and 8088 Microprocessors
u 8086 announced in 1978; 8086 is a 16 bit microprocessor with a 16 bit data bus
u 8088 announced in 1979; 8088 is a 16 bit microprocessor with an 8 bit data bus
u Both manufactured using High-performance Metal Oxide Semiconductor (HMOS)
technology
u Both contain about 29000 transistors
u Both are packaged in 40 pin dual-in-line package (DIP)
u Address lines A0-A7 and Data lines D0-D7 are multiplexed in 8088. These lines
are labelled as AD0-AD7.
u By multiplexed we mean that the same physical pin carries an address bit at one time
and the data bit another time
u Address lines A0-A15 and Data lines D0-D15 are multiplexed in 8086. These lines
are labelled as AD0-AD15.
8086 and 8088 Microprocessors
Minimum and maximum mode
u 8088 and 8086 microprocessors can be configured to work in
either of the two modes: the minimum mode and the maximum
mode
u Minimum mode:
u Pull MN/MX to logic 1
u Typically, smaller systems and contains a single microprocessor
u Cheaper since all control signals for memory and I/O are generated by
the microprocessor.
u Maximum mode
u Pull MN/MX logic 0
u Larger systems with more than one processor (designed to be used when
a coprocessor (8087) exists in the system)
Data Bus
u Due to chip packaging limitations
in the 1970s, there was great
effort to use the minimum
number of pins for external
connections.
u Intel multiplexed address & data
buses, using the same pins to
carry two sets of information:
address & data.
u Pins 9-16 (AD0–AD7) are used
for both data and addresses in
8088.
u AD stands for "address/data.”
u The ALE (address latch enable)
pin signals whether the
information on pins AD0–AD7 is
address or data.
Address Bus
u 8088 has 20 address pins (A0–A19),
allowing it to address a maximum of
one megabyte of memory (220 = 1M).
u To demultiplex address signals, a latch
must be used to grab the addresses.
u Widely used is the 74LS373 IC, also
74LS573, a 74LS373 variation.
u AD0 to AD7 go to the 74LS373 latch,
providing the 8-bit address A0–A7.
u A8–A15 come directly from the
microprocessor (pins 2–8 & pin 39).
u The last 4 bits of the address come
from A16–A19, pin numbers 35–38.
Address Bus
Address Bus
Control Bus
u 8088 can access both memory and I/O devices for
read and write operations, four operations, which
need four control signals:
u MEMR (memory read); MEMW (memory write).
u IOR (I/O read); IOW (I/O write).
u 8088 provides three pins for control signals:
u RD, WR, and IO/M.
u RD & WR pins are both active-low.
u IO/M is low for memory, high for I/O devices.
Control Bus
Control Bus
Control Bus
Minimum mode Interface
u Control Signals: (8088)
ü Address Latch Enable (ALE) is a pulse to logic 1 that signals
external circuitry when a valid address is on the bus. This address can
be latched in external circuitry on the 1-to-0 edge of the pulse at ALE.
ü IO/M line: memory or I/O transfer is selected (complement for 8086)
ü DT/R line: direction of data is selected
ü RD line: =0 when a read cycle is in progress
ü WR line: =0 when a write cycle is in progress
ü DEN line: (Data enable) Enables the external devices to supply
data to the processor. Used when sharing memory with another
processor.
Bus timing
u A bus cycle (machine cycle) defines the basic operation that a
microprocessor performs to communicate with external devices
u Examples of bus cycles are memory read, memory write, input/output
read, and input/output write.
u A bus cycle corresponds to a sequence of events that starts with an
address being output on the system bus followed by a read or write data
transfer
u During these operations, a series of control signals are also produced by
the MPU to control the direction and timing of the bus.
u Each bus cycle consists of at least four clock periods: T1, T2, T3, and T4.
u These clock periods are also called the T-States
ALE timing, read operation
u MN/MX (minimum/maximum) -
minimum mode is selected by
connecting MN/MX (pin number
33) directly to +5 V.
u Maximum mode is selected by
grounding this pin.
u CLOCK - an input signal,
connected to the 8284 clock
generator.
8088 other pins
8088 other pins
u TEST - in maximum mode, an input from the 8087 math coprocessor to
coordinate communications.
u Processor suspends operation when=1. Resumes operation when=0.
u Used to synchronize the processor to external events. (All 8087-capable
compilers and assemblers automatically generate a WAIT instruction before each
coprocessor instruction).
u The WAIT instruction tests the CPU's TEST pin and suspends execution until its
input becomes "LOW". When TEST=0, WAIT instruction is like NOP.
u In all 8086/8087 systems, the 8086 /TEST pin is connected to the 8087 BUSY
pin. If the EU executes a coprocessor instruction, it forces its BUSY pin
"HIGH"; thus, the WAIT opcode preceding the coprocessor instruction stops
the CPU until any still-executing coprocessor instruction has finished)
u – Not used In minimum mode.!
8088 other pins
u RESET - terminates present activities of the processor when a high is applied to the
RESET input pin.
u RESET : =0. Need at least 4 clock cycles. Issuing reset causes the processor to
fetch the first instruction from the memory FFFF:0000h.
u Protection
u Protect the OS
u Protect one user from the other
u 386 uses privilege level for protection
u Virtual memory
u Segmentation: variable size
u Paging: fixed size
80486