Author
minoshini-fonseka
View
219
Download
0
Embed Size (px)
8/2/2019 Processor Organization
1/55
8/2/2019 Processor Organization
2/55
8/2/2019 Processor Organization
3/55
CPU With Systems Bus
8/2/2019 Processor Organization
4/55
CPU Internal Structure
8/2/2019 Processor Organization
5/55
Registers
CPU must have some working space (temporarystorage) Called registers
Number and function vary between processordesigns
One of the major design decisions Top level of memory hierarchy
8/2/2019 Processor Organization
6/55
User Visible Registers
General Purpose
Data
Address
Condition Codes
8/2/2019 Processor Organization
7/55
General Purpose Registers
Can be assigned to variety of functions
Can contain the operand for any opcode, However there are
restriction.
ex: There may be dedicated registers for floating - -
point and stack operations
Can be used for addressing functions such as register indirect ,Displacement
8/2/2019 Processor Organization
8/55
Data Registers
Can hold data and cannot used for calculation purpose.
Address Registers
may be devoted to a particular addressing modeSegment registers holds the address of the basesegment. There may be multiple registers
ex: one for the operating system and one for the
process
Index Registers used for indexed addressing
Stack pointer : That point to the top of the stack
8/2/2019 Processor Organization
9/55
Condition codes - Flags
Conditions codes are bits set by the processor hardware
as the result of operation.ex : Arithmetic operation may produce negative,
Zero or overflow results
8/2/2019 Processor Organization
10/55
Control & Status Registers
Program Counter Contains the address of aninstruction to be executed.
Instruction Register : Contain the instruction
most recently fetched
Memory Address Register : Contain the address
of a location in main memory
Memory Buffer Register : Contains a word ofdata to be written or the most recently used
8/2/2019 Processor Organization
11/55
Program Status Word
Many processors designs include a register or set of
registers, often known as the PSW
The PSW typically contains condition codes plus otherstatus information
Common field or flags contain the following Sign : sign bit of the last arithmetic operation
Zero : Set when the result is 0
Carry : Set if an operation resulted in a carry
Equal : Set if a logical compare result is equality Overflow :Used to indicate arithmetic overflow
Interrupt enable/disable : Used to enable or disable interrupts
Supervisor : Indicates whether the processor is executing in
supervisor or user mode
8/2/2019 Processor Organization
12/55
Other Registers
May have registers pointing to:
Process control blocks (see O/S)
Interrupt Vectors (see O/S)
N.B. CPU design and operating system designare closely linked
8/2/2019 Processor Organization
13/55
Example Register Organizations
8/2/2019 Processor Organization
14/55
Instruction Cycle
Revision
Stallings Chapter 3
8/2/2019 Processor Organization
15/55
Indirect Cycle
May require memory access to fetch operands
Indirect addressing requires more memoryaccesses
Can be thought of as additional instruction
subcycle
8/2/2019 Processor Organization
16/55
Instruction Cycle with Indirect
8/2/2019 Processor Organization
17/55
Instruction Cycle State Diagram
8/2/2019 Processor Organization
18/55
Data Flow (Instruction Fetch)
Depends on CPU design
In general:
Fetch
PC contains address of next instruction
Address moved to MAR
Address placed on address bus
Control unit requests memory read
Result placed on data bus, copied to MBR, then to IR
Meanwhile PC incremented by 1
8/2/2019 Processor Organization
19/55
8/2/2019 Processor Organization
20/55
Data Flow (Fetch Diagram)
8/2/2019 Processor Organization
21/55
Data Flow (Indirect Diagram)
8/2/2019 Processor Organization
22/55
Data Flow (Execute)
May take many forms
Depends on instruction being executed
May include
Memory read/write
Input/OutputRegister transfers
ALU operations
8/2/2019 Processor Organization
23/55
Data Flow (Interrupt)
Simple
Predictable
Current PC saved to allow resumption afterinterrupt
Contents of PC copied to MBR Special memory location (e.g. stack pointer)
loaded to MAR
MBR written to memory
PC loaded with address of interrupt handlingroutine
Next instruction (first of interrupt handler) canbe fetched
8/2/2019 Processor Organization
24/55
Data Flow (Interrupt Diagram)
8/2/2019 Processor Organization
25/55
Prefetch
Fetch accessing main memory
Execution usually does not access main memory
Can fetch next instruction during execution ofcurrent instruction
Called instruction prefetch
8/2/2019 Processor Organization
26/55
Improved Performance
But not doubled:
Fetch usually shorter than execution
Prefetch more than one instruction?
Any jump or branch means that prefetchedinstructions are not the required instructions
Add more stages to improve performance
8/2/2019 Processor Organization
27/55
Pipelining
Fetch instruction
Decode instruction
Calculate operands (i.e. EAs)
Fetch operands
Execute instructions
Write result
Overlap these operations
8/2/2019 Processor Organization
28/55
Two Stage Instruction Pipeline
Ti i Di f
8/2/2019 Processor Organization
29/55
Timing Diagram for
Instruction Pipeline Operation
Th Eff t f C diti l B h
8/2/2019 Processor Organization
30/55
The Effect of a Conditional Branch on
Instruction Pipeline Operation
Six Stage
8/2/2019 Processor Organization
31/55
Six Stage
Instruction Pipeline
8/2/2019 Processor Organization
32/55
Alternative Pipeline Depiction
S d F t
8/2/2019 Processor Organization
33/55
Speedup Factors
with Instruction
Pipelining
8/2/2019 Processor Organization
34/55
Dealing with Branches
Multiple Streams
Prefetch Branch Target
Loop buffer
Branch prediction
Delayed branching
8/2/2019 Processor Organization
35/55
Multiple Streams
Have two pipelines
Prefetch each branch into a separate pipeline
Use appropriate pipeline
Leads to bus & register contention
Multiple branches lead to further pipelines beingneeded
8/2/2019 Processor Organization
36/55
Prefetch Branch Target
Target of branch is prefetched in addition to
instructions following branch
Keep target until branch is executed
Used by IBM 360/91
8/2/2019 Processor Organization
37/55
Loop Buffer
Very fast memory
Maintained by fetch stage of pipeline
Check buffer before fetching from memory
Very good for small loops or jumps
c.f. cache
Used by CRAY-1
8/2/2019 Processor Organization
38/55
Loop Buffer Diagram
8/2/2019 Processor Organization
39/55
Branch Prediction (1)
Predict never taken
Assume that jump will not happen
Always fetch next instruction
68020 & VAX 11/780
VAX will not prefetch after branch if a page faultwould result (O/S v CPU design)
Predict always taken
Assume that jump will happen
Always fetch target instruction
8/2/2019 Processor Organization
40/55
Branch Prediction (2)
Predict by Opcode
Some instructions are more likely to result in a jumpthan thers
Can get up to 75% success
Taken/Not taken switchBased on previous history
Good for loops
8/2/2019 Processor Organization
41/55
Branch Prediction (3)
Delayed Branch
Do not take jump until you have to
Rearrange instructions
8/2/2019 Processor Organization
42/55
Branch Prediction Flowchart
8/2/2019 Processor Organization
43/55
Branch Prediction State Diagram
Dealing With
8/2/2019 Processor Organization
44/55
Dealing With
Branches
8/2/2019 Processor Organization
45/55
Intel 80486 Pipelining
Fetch From cache or external memory
Put in one of two 16-byte prefetch buffers
Fill buffer with new data as soon as old data consumed
Average 5 instructions fetched per load
Independent of other stages to keep buffers full
Decode stage 1 Opcode & address-mode info
At most first 3 bytes of instruction
Can direct D2 stage to get rest of instruction
Decode stage 2 Expand opcode into control signals
Computation of complex address modes
ExecuteALU operations, cache access, register update
Writeback Update registers & flags
Results sent to cache & bus interface write buffers
8/2/2019 Processor Organization
46/55
80486 Instruction Pipeline Examples
8/2/2019 Processor Organization
47/55
Pentium 4 Registers
8/2/2019 Processor Organization
48/55
EFLAGS Register
8/2/2019 Processor Organization
49/55
Control Registers
8/2/2019 Processor Organization
50/55
MMX Register Mapping
MMX uses several 64 bit data types
Use 3 bit register address fields
8 registers
No MMX specific registers
Aliasing to lower 64 bits of existing floating pointregisters
Mapping of MMX Registers to
8/2/2019 Processor Organization
51/55
Mapping of MMX Registers to
Floating-Point Registers
8/2/2019 Processor Organization
52/55
Pentium Interrupt Processing
Interrupts
Maskable
Nonmaskable
Exceptions
Processor detectedProgrammed
Interrupt vector table
Each interrupt type assigned a number
Index to vector table
256 * 32 bit interrupt vectors
5 priority classes
8/2/2019 Processor Organization
53/55
PowerPC User Visible Registers
8/2/2019 Processor Organization
54/55
PowerPC Register Formats
8/2/2019 Processor Organization
55/55
Foreground Reading
Processor examples
Stallings Chapter 12
Manufacturer web sites & specs