Professional Documents
Culture Documents
Lecture 1
Dr.Ayman AbuBaker
Dr.Ayman AbuBaker
ENIAC
http://www.seas.upenn.edu/~museum/index.html
Dr.Ayman AbuBaker
EDVAC
http://www.softlord.com/comp/
Types of Modern Computers
• Supercomputers
• Mainframes
• Minicomputers (workstations, servers)
• Microcomputers (PCs)
• Microcontrollers (PICs)
Dr.Ayman AbuBaker
Basic Parts of a Computer
• 3 Functional Units
– Central Processing Unit (CPU)
– Memory Unit
– I/O Devices
• 3 Buses
– Data Bus
– Address Bus
– Control Bus
Dr.Ayman AbuBaker
Basic Parts of a Computer
Address
Memory
Control
CPU Data
I/O
Dr.Ayman AbuBaker
Instruction Cycle
The basic action of microprocessor as it moves through the
instruction stream can be broken down into a series of four
simple steps:
1.FETCH
-Get instruction from memory and store in register.
2.DECODE
-Determine the instruction type and do the calculation.
3.EXECUTE
-Show the results.
Dr.Ayman AbuBaker
Fetch
Address
153 298
299
Instruction Pointer
Memory
Control
CPU Data
64
Instruction Register
7 I/O
Accumulator
Dr.Ayman AbuBaker
Decode & Execute
Address
153 299
Instruction Pointer
Memory
Control
CPU Data
64
Increment
Accumulator
Instruction Register
87 I/O
Accumulator
Dr.Ayman AbuBaker
Three-Bus System Architecture
• Bus
• A collection of electronic signal lines all dedicated
to a particular task
– The Data Bus
– The Address Bus
– The Control Bus
Dr.Ayman AbuBaker
Three-Bus Architecture
Address
Memory
Control
CPU Data
I/O
Dr.Ayman AbuBaker
Machine vs. Assembly Language
Comment
;Load 2000H into accumulator
Dr.Ayman AbuBaker
The 8086 Microprocessor
• Features
– 20-bit address bus, 16-bit data bus
– Separate units to fetch and execute instructions
– 16-bit registers (8-bit accessible)
– Hardware multiply and divide
– Support for external math coprocessor
– Instruction set 8080-compatible
Dr.Ayman AbuBaker
• It is a 16-bit μp.
Dr.Ayman AbuBaker
About Metrics
• The term metric means
– “a standard of measurement”
• A synonymous term is benchmark
– “a standard by which we can measure”
• We use metrics to measure the performance
of a microprocessor or computer.
• Other benchmarks:
– Whetstone, Dhrystone, CPUmark, Norton SI,
Winstone
Dr.Ayman AbuBaker
Performance Metrics
• MHz
• MIPS (Million Instructions Per Second)
• MFLOPS (Million Floating-point Operations
Per Second)
• SPEC (System Performance and Evaluation
Cooperative)
• iCOMP
– Productivity, Internet, 3D, multimedia
Dr.Ayman AbuBaker
8086 Package
40 lead 8086 Package
From:
Datasheet for Intel 80C86A
Dr.Ayman AbuBaker
Order number: 240029-002
Pipelining Inside 8086
• Two ways to make CPU become faster
– Increase frequency
• Technology dependent
• Only when the technology and cost allow, then we can make
the CPU work faster by increasing the frequency
– Improve the internal working of the CPU
• Pipeline scheme used in 8086
– Splitting the internal structure of the CPU into two parts
• Execution Unit (EU)
– Executes instructions previously fetched
• Bus Interface Unit (BIU)
– Access memory and peripherals
Dr.Ayman AbuBaker
Intel 8086 Internal Architecture
Dr.Ayman AbuBaker
Pipelining Inside 8086
• BIU has a buffer/queue to keep the BIU always
ahead of EU
– 4 bytes in 8088
– 6 bytes in 8086
– When queue is filled to the maximum capacity, the bus
will become idle
– BIU will fetch new instruction whenever the queue has
room for 2 bytes in the 8086 queue and for 1 byte in the
8088 queue
Dr.Ayman AbuBaker
Functional Units
Simple CPUs perform one action at a time.
Bus:
Busy Busy Busy Busy Busy
Dr.Ayman AbuBaker
Functional Units
The 8086/8088 has a pipelined architecture.
BIU – accesses memory and peripherals
EU – executes fetched instructions
BIU:
Fetch Fetch Write Fetch Fetch Read
EU:
6 cycles instead of 8
Idle Execute Execute Idle Execute Wait
Bus is more efficient
Bus:
Busy Busy Busy Busy Busy Busy
Dr.Ayman AbuBaker
Internal architecture of 8086
• 8086 has two blocks BIU and EU.
Dr.Ayman AbuBaker
• Both units operate asynchronously to give the 8086 an
overlapping instruction fetch and execution mechanism which
is called as Pipelining. This results in efficient use of the
system bus and system performance.
Dr.Ayman AbuBaker
EXECUTION UNIT
• Decodes instructions fetched by the BIU
• Generate control signals,
• Executes instructions.
• Control system
• Instruction decoder
• ALU
Dr.Ayman AbuBaker
EXECUTION UNIT – General Purpose Registers
16 bits
8 bits 8 bits
AX
AH AL Accumulator
BX BH BL Base
CX CH CL Count
DX DH DL Data
SP Stack Pointer
Pointer
BP Base Pointer
Index
SI Source Index
DI Destination Index
Dr.Ayman AbuBaker
EXECUTION UNIT – General Purpose Registers
Register Purpose
AX Word multiply, word divide, word I /O
AL Byte multiply, byte divide, byte I/O, decimal arithmetic
AH Byte multiply, byte divide
BX Store address information
CX String operation, loops
CL Variable shift and rotate
• The index registers (SI & DI) and the BX generally default to the
Data segment register (DS).
• The SI and the DI registers may also be used to access data stored in
arrays
Dr.Ayman AbuBaker
EXECUTION UNIT – Flag Register
• A flag is a flip flop which indicates some conditions produced by the
execution of an instruction or controls certain operations of the EU .
• In 8086 The EU contains
a 16 bit flag register
9 of the 16 are active flags and remaining 7 are undefined.
6 flags indicates some conditions- status flags
3 flags –control Flags
U U U U OF DF IF TF SF ZF U AF U PF U CF
Carry (CF) Holds the carry after addition or the borrow after subtraction.
Also indicates some error conditions, as dictated by some
programs and procedures .
Parity (PF) PF=0;odd parity, PF=1;even parity. Which count number of ones in the
number
Auxiliary (AF) Holds the carry (half – carry) after addition or borrow after
subtraction between bit positions 3 and 4 of the result
(for example, in BCD addition or subtraction.)
Zero (ZF) Shows the result of the arithmetic or logic operation.
Z=1; result is zero. Z=0; The result is 0
Sign (SF) Holds the sign of the result after an arithmetic/logic instruction
execution. Which isDr.Ayman
MSD inAbuBaker
the number , S=1; negative, S=0 for positive
Flag Purpose
A control flag.
Trap (TF) Enables the trapping through an on-chip debugging
feature. ( the program is debugging to find the error)
A control flag.
Interrupt (IF) Controls the operation of the INTR (interrupt request)
I=0; INTR pin disabled. I=1; INTR pin enabled.
A control flag.
Direction (DF) It selects either the increment or decrement mode for DI
and /or SI registers during the string instructions.
Overflow occurs when signed numbers are added or
Overflow (OF) subtracted. An overflow indicates the result has exceeded
the capacity of the Machine
Dr.Ayman AbuBaker
Execution unit – Flag Register
• Six of the flags are status indicators reflecting properties of the last
arithmetic or logical instruction.
• For example, if register AL = 7Fh and the instruction ADD AL,1 is
executed then the following happen
AL = 80h
CF = 0; there is no carry out of bit 7
PF = 0; 80h has an odd number of ones
AF = 1; there is a carry out of bit 3 into bit 4
ZF = 0; the result is not zero
SF = 1; bit seven is one
OF = 1; the sign bit has changed
Dr.Ayman AbuBaker
BUS INTERFACE UNIT (BIU)
Contains
• 6-byte Instruction Queue (Q)
• The Segment Registers (CS, DS, ES, SS).
• The Instruction Pointer (IP).
• The Address Summing block (Σ)
Dr.Ayman AbuBaker
THE QUEUE (Q)
• The BIU uses a mechanism known as an instruction stream
queue to implement a pipeline architecture.
Dr.Ayman AbuBaker
• These pre-fetching instructions are held in its FIFO queue. With
its 16 bit data bus, the BIU fetches two instruction bytes in a
single memory cycle.
• The EU accesses the queue from the output end. It reads one
instruction byte after the other from the output of the queue.
Dr.Ayman AbuBaker