Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
MICROPROCESSORS
Submitted by:
Shalini Rai
EU
SU
Translation
PTU PU
Segment look aside
REGISTERS Registers buffer
BARREL SHIFTERS BUS
CONTROL
MUL/DIV Segment Page
ALU Translator Translator
ADDRESS DRIVER
PIPELINE/BUS SIZE
CONTROL
DECODER AND
SEUENCING
CONTROL
ROM
PREFETCH
QUEUE(16 MUX/TRANSCEIVER
BYTES)
INSTRUCTION
QUEUE
PREFETCHER
(3 Decoded
instructions)
DU
The 80386 includes a Bus Interface Unit for reading and providing data and instructions,
With a Prefetch Queue, an IU for controlling the EU with its registers, as well as an AU (SU + PU) for
Generating memory and I/O addresses.
By pipelining its functional units, it can overlap the execution of different stages of one instruction
and can process multiple instructions simultaneously.
Its multiply/divide unit can perform 32-bit multiplication in 9-41 clock cycles depending upon the
no. of significant digits. It can divide 32 bit operands in 38 clocks (unsigned) or 43 clocks (signed).
Its barrel shifter can shift 1-64 bits in a single clock cycle.
Addressing Modes: 11 modes for instructions to specify operands.
2 modes provide for instruction that operate on register or immediate operands.
REGISTER, IMMEDIATE
9 are memory addressing modes.
DIRECT, INDIRECT, BASED, INDEXED, SCALED INDEXED, BASED INDEXED, BASED
SCALED INDEXED, BASED INDEXED WITH DISPLACEMENT, BASED SCALED INDEXED
WITH DISPLACEMENT
CLK2 Vcc
GND
D0-D31
A2-A31 ADDRESS BUS
BE0’-BE3’
31 16 15 0 31 16 15 0
31 16 15 87 0 15 0
EAX AH AL
EBX BH BL
ECX CH CL
EDX DH DL
ESI SI
EDI DI
EBP BP
ESP SP
CS
SS
DS
ES
FS
GS
The 80386 maintains compatibility with the 8086, and 80286, so even though its general registers are 32-
bit, they can also be used as 16- or 8-bit registers. The table above illustrates this. Note that this
Programming model of the 80386 also applies to the Pentium.
The 32-bit EIP register can support programs up to 4Gbytes, whereas the 8086 and 80286, with their 16-
bit IP register, could only support program segments of 64kbytes. The CS register enables larger
programs. Note that the CS can be changed under program control, but that the instruction pointer cannot
be written to directly by a program. It can only be changed by jumps, calls, returns or interrupts. Note that
far calls and jumps change the value of the CS register as well as the value of the instruction pointer.
Usually every program has its own stack segment. As on the 8086 the stack grows downwards, that is,
the value of the stack pointer decreases with a PUSH instruction and increases with a POP instruction. In
the 80386, if data is stored on the stack the value of ESP is reduced by 4, because the 80386 always
writes a
Complete double word (2*16 bits = 4*8 bits). When the i386 operates in 16-bit mode, only 2 bytes are
Written to the stack, and the value of SP is only reduced by 2, with each push.
Data Segments:
The 80386 adds two more data segment registers, called FS and GS.
The 80386 has four control registers and four memory management registers for protected mode, as well
as 8 debug registers. These registers are particularly useful in a multitasking environment. The debug
registers can be useful in locating errors in a given task.
Control Registers:
31 16 15 0
CR0 for Paging
CR1 RESERVED
Debug Registers:
31 0
DR4 RESERVED
RESERVED
DR5
DEBUG STATUS
DR6
DEBUG CONTROL
DR7
Test Registers:
31 0
TEST CONTROL
TEST STATUS
FLAGS:
Two new flags introduced in addition to those present till 80286
VM (Virtual Mode): If set, while 80386 is in protected mode, switches to virtual 8086 operation,
handling segment loads as 8086 but generates exception 13 fault on privileged opcodes.
RF (Resume Flag): This flag is used with the debug register breakpoints. It is checked at
instruction boundaries before breakpoint processing. When RF is set, it causes any debug fault to
be ignored on the next instruction. RF is then automatically reset at the successful completion of
every instruction.
So now total of 13 flags are there in 80386.
CONTROL REGISTERS:
CR0 (MSW):
80486
BUS
INTERFA
CE
Prefetch
Decodin
er (32 Control Floating
g Unit
Bytes Unit Point Unit
Queue)
The 80486 was the first x86 to incorporate RISC elements into its design to improve performance. In
Addition to maintaining compatibility with the 80386 and earlier x86 processors it added the following
Features:
Improved 80386 CPU (6 extra instructions)
Hard-wired implementation of frequently used instructions (as in RISCs)
A 5 stage instruction pipeline
An 8K Cache Memory + cache controller (previously a separate device)
An on-chip Floating Point coprocessor
Longer Prefetch Queue (32-bytes as opposed to 16 on the 80386)
Higher frequency operation
Parity Generator/Checker
Register architecture same as 80386
EFLAG register contains an additional bit AC(Alignment Check)
(It is used to indicate that the processor has accessed a word at an odd
address or a double word at a non double word boundary.)
Like the 80386 it uses real, protected and virtual 8086 modes and its Memory Management Unit includes
a Segmentation Unit and a Paging Unit.
PARITY CHECKER/GENERATOR:
Parity is often used to determine if data are correctly read from a memory location. To facilitate this, Intel
has incorporated an internal parity generator/checker. Parity is generated by 80486 during each write
cycle.Parity is generated by the 80486 during each write cycle. Parity is generated as even parity, and a
parity bit is provided for each byte of memory. The parity check bits appear on pins DP0-DP3, which are
also parity inputs as well as outputs. These are typically stored in memory during each write cycle and
read from memory during each read cycle.
On a read, the microprocessor checks parity and generates a parity check error, if it occurs, on the PCHK
pin. A parity error causes no change in processing unless the user applies the PCHK signal to an interrupt
input.
CACHE MEMORY:
The cache memory system stores data used by a program and also the instructions of the program. The
cache is organized as a four- way set associative cache, with each line (location) containing 16 bytes or
four double words of data. The cache operates as write through cache.
Control Register 0(CR0) is used to control the cache with two new control bits not present in 80386.
These are inhibited only for testing. For normal program operation, CD=0 and NW=0.
When a bus line is filled , it must acquire $, 32-bit numbers from the memory to fill a line in the in the
cache. Filling is done with a burst cycle.
Two new control bits are added to disable caching for sections of translated memory pages.
PWT (Page Write Through): Controls how the cache functions for a write operation of the
extended cache memory. It does not control writing to the internal cache.Externally it can be
used to dictate the write through policy of the external cache.
PCD (Page Cache Disable): controls the on-chip cache. If PCD=0, the on-chip cache is
enabled for the current page of the memory.
68020
• REGISTERS:
68030:
68040:
Zilog Z80000
This was Zilog's 32-bit processor from 1986, an expansion of its 16-bit predecessor,
the Zilog Z8000. It included multiprocessing capability, a six-stage instruction
pipeline, and a 256-byte cache. Its memory addressing system could access 4
gigabytes of RAM. Described at the time as a "mainframe on a chip," the processor
was in many ways an equivalent to Intel's 80386. It could execute code written for
the Z8000, but was not compatible with the Intel x86 architecture, nor was it Z80
compatible.
The processor was designed to interoperate with other integrated circuits designed
for use with the Z8000, such as the Zilog Z8070 floating-point coprocessor
REFERENCES:
Wikipedia