Different MicroprocessorsTamanna Haque NipaLecturerDept. of Computer ScienceStamford University Bangladesh
Difference between 8086 &8088 External Data Path: 8 bit for 8088 and 16 bit
for 8086 Memory Access: 8088 access memory in byte
while 8086 can access memory both bytes and words.
8086 has faster clock rate and better performance then 8088.
8088 is less expensive than 8086.
80186/80188
Enhanced version of 8086/8088 The 6/8 MHz clock provides 2 times greater
throughput than the 5MHz 8086/8088. 68 pin package On chip priority interrupt controller chip to provide 5
interrupt pins 1 megabyte of memory can be addressed Instructions set as 8086 and 10 new instructions
(extended instruction set)
8086/8088
General Registers
ALU
Control
Instruction Decoder
Segment Register
Bus Interface
Prefetcher
Prefetch queue
16 bit data or operand
request
Prefetch Instruction
20 bit address bus
multiplexed with data bus
8086/8088
2 units:Execution unitBus interface unit
Both units are independent and operates parallel to each other to maximized th performance.
Execution unit
It executes all instructions as well as manipulating the general registers and the status and control flags.
It sends data and address to the BIU when required Instructions are fed to EU over 8 bit wide prefetch
queue bus Instructions are processed by the control system ALU, registers and internal data path are 16 bits wide
Bus Interface Unit
The BIU processes all requestes from the EU to read data from or write data to memory or I/O device
All requests pass through to BIU and it combines the segment and offsets to form the physical address using a dedicated hardware adder
Prefetch queue is a small FIFO RAM array, used to prefetch instruction following the current executing instruction for EU when the BIU is free
Bus Interface Unit Prefetch queue in 8088 hold 4 bytes and BIU begins a
fetch cycle whenever one or more bytes empty in the queue.
Prefetch queue in 8086 hold 6 bytes and BIU begins a fetch cycle whenever one or more bytes empty in the queue.
When an instruction causes program control to be transferred to the non-sequential location then the prefetch instruction no longer be valid.
Then BIU flushes the prefetch queue and immediately starts an instruction fetch at the target address.
Features of 80286
24-bit address bus. 16 bit data bus Able to address 16 MB of physical memory. It has a MMU[memory management unit] 68 pins 6 times faster than 8086 Used for multiuser and multitasking
80286 It operates in 2 modes
Real address mode: behaves like 8086 and program for 8086 can run directly.
Protected virtual address mode: it supports maltitasking, so several program runs at the same time and memory protection is required to protect the memory used by one program from the action of other program
Can address 16 megabye of physical address in protected mode and 1 GB of virtual memory.
Features of 80286 cont…
Register organization of 80286Eight 16-bit general purpose registersFour 16-bit segment registersStatus & control registers Instruction pointer
80286
Instruction Decoder
Decoded Instruction
Queue
General Registers
ALU
Control
Physical Address
GeneratorSegment RegistersSegment
Descriptor Cache
Bus Interface
Prefetcher
Prefetch Queue
16 bit offsets
and data
Operand request
Decoded instruction
Execution Unit
Instruction Unit
Physical address (24 bits)
Address unit
BIU
Address bus 24 bits
Data bus 16 bits
Processing Unit
4 Processing UnitAddress unitBus unit Instruction unitExecution unit
All units are independent and operates asynchronously and in parallel with the others.
Execution unit
Execution unit manipulates the general register as well as the status and control flags and executes all instructions.
The ALU performs the arithmetic and logical operations that are required by the instruction.
ALU also maintain the CPU status and control flags. General registers are used to moves data to or
from the registers as required.
BUS Interface Unit It handles all communications and data
transfer between CPU and the system bus.
It generates the address, commands and data signals required to access memory and I/O devices.
Data and address bus are not multiplexed. The BIU uses the idle bus cycles to pre-
fetch instructions
BUS Interface Unit cont…
Pre-fetch queue is 6 bytes long and whenever 2 or more bytes of pre-fetch queue becomes empty the pre-fetch cycle occurs.
A control transfer instruction causes the BIU flush the queue and immediately begin loading the instruction from the new address.
The Instruction Unit
It decodes the pre-fetched instruction bytes for execution unit.
Up to 3 fully decoded instructions are available in the queue provided by the instruction unit.
The Address Unit In real mode the address unit works same as in the 8086.
segment and offset values are summed together by a dedicated adder to produce a physical memory address.
In protected mode, every memory references, including code pre-fetches, must be checked against the permissions and segment limits of the current task to detect memory protection violations.
After the permission, the logical address needs to translate to a physical address for use by the BIU.
A cache has been designed into the address unit named segment descriptor cache register.
The Address Unit One segment descriptor cache register is provided
for each of the four segment register. When a segment register is loaded with a new
value, the segment descriptor specifying access right, segment base address and address size associated with that value is automatically loaded into the appropriate segment descriptor cache register.
segment descriptor cache register is only accessed by the address unit.
80386 Similar to 80286 but enhanced 6 parts:
BIU Code Prefetch Unit Instruction Decode unit Execution Unit Segmentation Unit Paging Unit
Six level of pipelining makes it more faster Each part can work independently and parallel to
each other. So different part can process different instruction at a time.
80386Translation Lookaside
buffer
Page translator
Segment register
Segment Descriptor
Cache
Segment translator
Instruction decoder
Decoded Instruction
Queue
Protection test unit
General Registers
Barrel shifter
ALU
Multiply/Divide
Control Prefetcher
Prefetch Queue
BIUOperand request
Decoded instruction
Execution Unit
Instruction Decode Unit
Physical address
Address bus
Data bus
Code prefetch unit
Segmentation Unit
Paging Unit
Effective address 32 bits
Linear address
Additional hardware
The performance of 80386 has been also improved by some additional hardware64 bit barrel shifter: a specialized hardware that
performs multiple bit shifts in a single clock cycle.3 input adder dedicated to effective address processingAn early-out multiplier : terminates the multiply
algorithm when no significant digits remain to be processed.
386DX and 386SX
Difference between 80386DX and 80386SX is the width of the external address and data buses. Internally both uses 32 bit pathways.
The address bus of 386DX is 32 bits wide and can directly address 4 gigabytes (232 bytes) of physical memory
The address bus of 386SX is 24 bits wide and can directly address 16 Mb (224 bytes) of physical memory
Bus Interface Unit
All requests for access to the bus that comes from the other on chip processing unit passes through the BIU
Because of the parallel operation of other parts of the microprocessor, it is possible that more than one bus request may be received by the BIU at the same time
BIU also queue and prioritize these requests. To avoid the delaying program execution, request from EU have highest priority
Every unit can independently communicate with BIU.
The Code Pre-fetch Unit
Operates same as 80286 80386 can store 16 bytes of prefetch
instrution
The instruction decode unit
3 decoded instruction can be saved in decoded instruction queue
Same as 80286
Execution Unit The function of the EU can be divided into 3 major parts: Control unit: the function of control unit is to speed up
certain types of operations including multiplies, divides and effective address calculations.
Data unit: it contains ALU and eight 32 bit general registers of the 80386. it includes 64 bit barrel shifter and an early out multiplier.
The protection test unit: it monitors memory to detect segmentation violations.
Segmentation unit
It performs the first stage of address translation, converting the logical address to linear address.
Segment descriptor caches are employed both to speed up the translation and to allow protection violations to be detected without performance.
The dedicated 3 input adder is also used to speed up
The paging unit
It translate the linear address to physical address.
If paging unit is not enable then physical address is the same as linear address .
It contains a cache called translation lookaside buffer (TLB), which holds 32 most recently used page table entries.
80486 Microprocessor
The 32-bit 80486 is the next evolutionary step up from the 80386. One of the most obvious feature included in a 80486 is a built in
math coprocessor. This coprocessor is essentially the same as the 80387 processor used with a 80386, but being integrated on the chip allows it to execute math instructions about three times as fast as a 80386/387 combination.
80486 is an 8Kbyte code and data cache. To make room for the additional signals, the 80486 is packaged
in a 168 pin, pin grid array package instead of the 132 pin PGA used for the 80386.
ALU
BUSINTERFACE
F.P. Register File
Floating point Unit
Register File
Barrel Shifter
Segmentation Unit
Descriptor Register
Limit and Attribuite PLA
Translation Lookaside
Buffer
Paging Unit
8k Byte Cache
Cache Unit Address
Drivers
Write Buffers
Data Bus Treansceivers
Bus Control Request
Sequencer
Burst Bus Control
Bus Size Control
Cache Control
Parity Generation and Control
Prefetcher
32 Byte Code Queue
Instruction Decode
Control and Protection test Unit
Control Rom
Code Stream
Physical Address
Decode Instruction
Path
Micro - Instruction
32 – bit Data Bus
32 – bit Data Bus
Linear Address Bus
Base / Index Bus
Displacement Bus
32
32
32
3232
32
32
24
128
32
2
20
A2 – A 31 BE0# - BE3#
PCHK# DP0-DP3
KEN# FLUSH#AHOLD, EADS#
D0 - D31
BRDY# BLAST#
Pentium Processor