Upload
elias-fickett
View
218
Download
0
Tags:
Embed Size (px)
Citation preview
Execution Cycle
2
Outline
• (Brief) Review of MIPS Microarchitecture• Execution Cycle• Pipelining• Big vs. Little Endian-ness• CPU Execution Time
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
3
MIPS Microarchitecture
• Recall the datapath for the lw (load word) command
4
MIPS Microarchitecture
• The first step was to fetch the instruction
5
MIPS Microarchitecture
• fetch the instruction
6
MIPS Microarchitecture
• The next step was to decode the instruction
7
MIPS Microarchitecture
• decode the instruction
8
MIPS Microarchitecture
• Next, execute the instruction
9
MIPS Microarchitecture
• execute the instruction
10
MIPS Microarchitecture
• Next, access memory (if necessary)
11
MIPS Microarchitecture
• Finally, write back to a register
12
MIPS Microarchitecture
• write back to a register
13
MIPS Microarchitecture
• Just described classic 5-stage execution cycle• Fetch• Decode• Execute• Memory• Write Back
• 5-stage execution cycle typical of RISC machines• RISC is easier to explain• CISC is more complicated…
• x86 is CISC
14
Outline
• (Brief) Review of MIPS Microarchitecture• Execution Cycle• Pipelining• Big vs. Little Endian-ness• CPU Execution Time
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
15
Execution Cycle (aka Instruction Cycle)
IF – Instruction Fetch
ID – Instruction Decode
EX - Execute
MEM – Memory
WB- Write Back
16
Execution Cycle - Fetch
IF
ID
EXE
MEM
WB
• Send the program counter (PC) to memory • fetch the current instruction from memory• Update the PC
• PC = PC + 4• (since each instruction is four bytes)
17
Execution Cycle - Decode
IF
ID
EXE
MEM
WB
• Figure out type of instruction (e.g., load, add, etc.)• Based on “opcode”
• Determine registers involved• aka “operands”
• Get things “setup” for execution• Control Unit sets appropriate pins
18
Execution Cycle - Execute
IF
ID
EXE
MEM
WB
• ALU operates on operands prepared during decode
• ALU performs function based on instruction type• Arithmetic (add, subtract, …)• Logic (equivalence, negation, …)
19
Execution Cycle - Memory
IF
ID
EXE
MEM
WB
• If instruction is LOAD, • Read data from effective memory address • Effective memory address computed during EXE
• If instruction is STORE,• Write data from register to effective memory address• Effective memory address computed during EXE
• MEM is an OPTIONAL execution stage• Memory access does not always occur
20
Execution Cycle – Write Back
IF
ID
EXE
MEM
WB
• Write results “back” to a register• Result type depends on instruction
• Results could be from:• ALU computation
-or-• Memory access (i.e., load)
21
Execution Cycle – Fetch
• The execution cycle then repeats…
• The next instruction is already indicated by PC• Recall that PC set to PC + 4 during previous fetch
IF
ID
EXE
MEM
WB
22
Outline
• (Brief) Review of MIPS Microarchitecture• Execution Cycle• Pipelining• Big vs. Little Endian-ness• CPU Execution Time
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
23
Pipelining
• It’s laundry day, and you have to complete the following tasks:
1. Wash white clothes in washing machine2. Dry white clothes in dryer3. Wash color clothes in washing machine4. Dry color clothes in dryer5. Wash athletic clothes in washing machine6. Dry athletic clothes in dryer
24
Pipelining
• Would you do the following?• I.e., Wait for each load to wash and dry before starting next?
wash white
s
dry white
s
wash color
s
dry color
s
wash athletic
dry athletic
time
25
Pipelining
• Heck no!!• What a waste of time!!• What do you do instead?
wash white
s
dry white
s
wash color
s
dry color
s
wash athletic
dry athletic
time
26
Pipelining
• Overlap: wash one load while another is drying
wash white
s
dry white
s
wash color
s
dry color
s
wash athletic
dry athletic
time
27
Pipelining
• Do more things at once…
wash white
s
dry white
s
wash color
s
dry color
s
wash athletic
dry athletic
time
28
Pipelining
• Complete tasks in less time…
FREE TIME!!
29
Pipelining
• Can this be applied to the execution cycle?• Yes!!
• Fetch the next instruction while decoding the current instruction?
• Decode the next instruction while executing the current instruction?
• …
IF ID EX MEM WB
IF ID EX MEM WB
30
Pipelining
• Typical 5-stage pipeline of RISC CPU• 5th instruction is being fetched while 1st instruction is being written back
• There are much deeper and fancier pipelines…
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
31
Pipelining
• Typical 5-stage pipeline of RISC CPU• 9 clock cycles to complete 5 instructions
clock cycle
Instruction 1 2 3 4 5 6 7 8 9
instr-1 IF
ID
EXE
MEM WB
instr-2 IF ID EXE MEM WB
instr-3 IF ID EXE MEM WB
instr-4 IF ID EXE MEM WB
instr-5 IF ID EXE MEM
WB
32
Pipelining
• Without pipelining• 25 clock cycles to complete 5 instructions
IF ID EX MEM WB IF ID EX MEM WB…
33
Pipelining
• There are several things that can disrupt a pipeline• Called hazards
• E.g., What happens if the next instruction depends on the result of the current instruction?
34
Pipeline Hazards
• Three types of hazards• Control hazard• Data hazard• Structural hazard
35
Pipeline Hazards: Control
• Control Hazard• Occurs when pipelining branches (e.g., if statements)• … or other instructions that change the PC
???
36
Pipeline Hazards: Data
• Data Hazard• Occurs when an instruction tries to use data before it’s available• For example:
1: R1 <- R2 + R32: R4 <- R1 + R5
• Contents in R1 (register 1) may have been loaded for instruction #2 before instruction #1 has finished.
• Several types of data hazards…
37
Pipeline Hazards: Data
• Data Hazard1: R1 <- R2 + R32: R4 <- R1 + R5
IF ID EX MEM WB
IF ID EX MEM WB
1:
2:
R1 used in instruction #2’s execution before instruction #1 writes back
38
Pipeline Hazards: Structural
• Structural Hazard• Occurs when one hardware component is needed by two (pipelined)
tasks at same time
• Example: read from and write to memory at the same time• Fetch an instruction from memory while writing data to memory
• Hence why instruction and data memory are separated
39
Pipelining: Solutions
• Ways to minimize pipeline hazards• Stall• Flush• Out-of-order execution• Forwarding• Bypassing• Branch prediction• …
• Beyond the scope of this course…• Learn about / master pipeline hazards
40
Break Time!!!
I don’t fish, but this likes nice…
41
Outline
• (Brief) Review of MIPS Microarchitecture• Execution Cycle• Pipelining• Big vs. Little Endian-ness• CPU Execution Time
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
42
Big vs. Little Endian
• Some important jargon:
0x97 46 AB 07
1001 0111 0100 0110 1010 1011 0000 0111
MSB: Most
Significant Bit
LSB: Least
Significant Bit
43
Big vs. Little Endian
0x97 46 AB 07
1001 0111 0100 0110 1010 1011 0000 0111
Most Significant Byte
Least Significant Byte
MSB can stand for most significant bit OR byte
LSB can stand for least significant bit OR byte
44
Big vs. Little Endian
• Endian refers to the ordering of bytes for multiple byte words• How the bytes are stored in memory • How the bytes are interpreted
• Whether the MSB comes “first” or “last”
• Whether the LSB comes “first” or “last”
MSB - Most Significant ByteLSB - Least Significant Byte
45
Big Endian
• Most significant byte stored at smallest address• Least significant byte stored at largest address
0x97 46 AB 07addres
s byte
1000 97
1001 46
1002 AB
1003 07
46
Little Endian
• Most significant byte stored at largest address• Least significant byte stored at smallest address
0x97 46 AB 07addres
s byte
1000 07
1001 AB
1002 46
1003 97
47
Example
• Store 0x46 A0 B7 FF using:
address byte
1274
1275
1276
1277
address byte
1274
1275
1276
1277
Big Endian Little Endian
48
Example
• Store 0x46 A0 B7 FF using:
address byte
1274 46
1275 A0
1276 B7
1277 FF
address byte
1274 FF
1275 B7
1276 A0
1277 46
Big Endian Little Endian
49
Outline
• (Brief) Review of MIPS Microarchitecture• Execution Cycle• Pipelining• Big vs. Little Endian-ness• CPU Execution Time
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
50
CPU Execution Time
51
Example
• What is the execution time required to complete: • 10 instructions• with 5 cycles per instruction• using a 100 Hz CPU?
• Hz = cycles / second
52
Example
• 10 instructions• 5 cycles per instruction• 100 Hz CPU = 100 cycles per second = 1 second per 100 cycles
53
Next Time..
• Review for midterm
• Bring your laptop (if you can)• Linux bootstrap day
• Install VMWare onto your computer• Will need very soon!!