Lecture: Pipelining Hazards

Slides:



Advertisements
Similar presentations
1 Lecture: Pipelining Hazards Topics: Basic pipelining implementation, hazards, bypassing HW2 posted, due Wednesday.
Advertisements

COMP381 by M. Hamdi 1 (Recap) Pipeline Hazards. COMP381 by M. Hamdi 2 I n s t r. O r d e r add r1,r2,r3 sub r4,r1,r3 and r6,r1,r7 or r8,r1,r9 xor r10,r1,r11.
1 Lecture: Out-of-order Processors Topics: out-of-order implementations with issue queue, register renaming, and reorder buffer, timing, LSQ.
Pipeline Computer Organization II 1 Hazards Situations that prevent starting the next instruction in the next cycle Structural hazards – A required resource.
Lecture Objectives: 1)Define pipelining 2)Calculate the speedup achieved by pipelining for a given number of instructions. 3)Define how pipelining improves.
Lecture: Pipelining Basics
Instruction-Level Parallelism (ILP)
1 Lecture: Pipelining Extensions Topics: control hazards, multi-cycle instructions, pipelining equations.
1 Lecture 17: Basic Pipelining Today’s topics:  5-stage pipeline  Hazards and instruction scheduling Mid-term exam stats:  Highest: 90, Mean: 58.
1 Lecture 3: Pipelining Basics Biggest contributors to performance: clock speed, parallelism Today: basic pipelining implementation (Sections A.1-A.3)
1 Lecture 4: Advanced Pipelines Data hazards, control hazards, multi-cycle in-order pipelines (Appendix A.4-A.10)
1 Lecture 5: Pipeline Wrap-up, Static ILP Basics Topics: loop unrolling, VLIW (Sections 2.1 – 2.2) Assignment 1 due at the start of class on Thursday.
Lec 8: Pipelining Kavita Bala CS 3410, Fall 2008 Computer Science Cornell University.
1 Lecture 18: Pipelining Today’s topics:  Hazards and instruction scheduling  Branch prediction  Out-of-order execution Reminder:  Assignment 7 will.
1 Lecture 4: Advanced Pipelines Data hazards, control hazards, multi-cycle in-order pipelines (Appendix A.4-A.10)
1 Lecture 4: Advanced Pipelines Control hazards, multi-cycle in-order pipelines, static ILP (Appendix A.4-A.10, Sections )
Lecture: Pipelining Basics
ENGS 116 Lecture 51 Pipelining and Hazards Vincent H. Berk September 30, 2005 Reading for today: Chapter A.1 – A.3, article: Patterson&Ditzel Reading for.
Chapter 2 Summary Classification of architectures Features that are relatively independent of instruction sets “Different” Processors –DSP and media processors.
Pipeline Hazards. CS5513 Fall Pipeline Hazards Situations that prevent the next instructions in the instruction stream from executing during its.
Winter 2002CSE Topic Branch Hazards in the Pipelined Processor.
Lecture 16: Basic Pipelining
CBP 2005Comp 3070 Computer Architecture1 Last Time … All instructions the same length We learned to program MIPS And a bit about Intel’s x86 Instructions.
1 Lecture 3: Pipelining Basics Today: chapter 1 wrap-up, basic pipelining implementation (Sections C.1 - C.4) Reminders:  Sign up for the class mailing.
1 Lecture: Pipelining Extensions Topics: control hazards, multi-cycle instructions, pipelining equations.
CSCI206 - Computer Organization & Programming
Lecture 15: Basic CPU Design
Lecture 16: Basic Pipelining
Lecture: Pipelining Basics
Lecture 17: Pipelining Today’s topics: 5-stage pipeline Hazards
Pipeline Implementation (4.6)
Appendix C Pipeline implementation
CDA 3101 Spring 2016 Introduction to Computer Organization
\course\cpeg323-08F\Topic6b-323
Lecture: Pipelining Basics
Chapter 4 The Processor Part 3
Morgan Kaufmann Publishers The Processor
Lecture 6: Advanced Pipelines
Lecture 16: Basic Pipelining
ELEC / Computer Architecture and Design Spring Pipelining (Chapter 6)
Lecture 19: Branches, OOO Today’s topics: Instruction scheduling
Lecture: Pipelining Hazards
Lecture 18: Pipelining Today’s topics:
Lecture: Static ILP Topics: compiler scheduling, loop unrolling, software pipelining (Sections C.5, 3.2)
Lecture: Pipelining Hazards
Lecture 5: Pipelining Basics
Lecture 18: Pipelining Today’s topics:
CSCI206 - Computer Organization & Programming
Lecture: Pipelining Hazards
CSCI206 - Computer Organization & Programming
Lecture: Out-of-order Processors
Lecture 8: Dynamic ILP Topics: out-of-order processors
\course\cpeg323-05F\Topic6b-323
Lecture: Static ILP Topics: predication, speculation (Sections C.5, 3.2)
Lecture 17: Pipelining Today’s topics: 5-stage pipeline Hazards.
Lecture: Static ILP Topics: loop unrolling, software pipelines (Sections C.5, 3.2) HW3 posted, due in a week.
Lecture 19: Branches, OOO Today’s topics: Instruction scheduling
The Processor Lecture 3.6: Control Hazards
Lecture: Pipelining Extensions
Lecture 20: OOO, Memory Hierarchy
Lecture 18: Pipelining Today’s topics:
Lecture 17: Pipelining Today’s topics: 5-stage pipeline Hazards.
Daxia Ge Friday February 9th, 2007
Instruction Execution Cycle
CS 286 Computer Architecture & Organization
Lecture 4: Advanced Pipelines
Introduction to Computer Organization and Architecture
Guest Lecturer: Justin Hsia
Lecture: Pipelining Basics
Presentation transcript:

Lecture: Pipelining Hazards Topics: Basic pipelining implementation, hazards, bypassing Sign up for the class mailing list! HW2 posted, due Tuesday Monday is a holiday, so TA office hours on Friday (tomorrow) (email shevgoor@cs to set up a time)

Problem 3 Convert this C code into equivalent RISC assembly instructions a[i] = b[i] + c[i];

Problem 3 Convert this C code into equivalent RISC assembly instructions a[i] = b[i] + c[i]; LD [R1], R2 # R1 has the address for variable i MUL R2, 8, R3 # the offset from the start of the array ADD R4, R3, R7 # R4 has the address of a[0] ADD R5, R3, R8 # R5 has the address of b[0] ADD R6, R3, R9 # R6 has the address of c[0] LD [R8], R10 # Bringing b[i] LD [R9], R11 # Bringing c[i] ADD R10, R11, R12 # Sum is in R12 ST [R7], R12 # Putting result in a[i]

Problem 4 Design your own hypothetical 8-stage pipeline.

A 5-Stage Pipeline Source: H&P textbook

Hazards Structural hazards: different instructions in different stages (or the same stage) conflicting for the same resource Data hazards: an instruction cannot continue because it needs a value that has not yet been generated by an earlier instruction Control hazard: fetch cannot continue because it does not know the outcome of an earlier branch – special case of a data hazard – separate category because they are treated in different ways

Structural Hazards Example: a unified instruction and data cache  stage 4 (MEM) and stage 1 (IF) can never coincide The later instruction and all its successors are delayed until a cycle is found when the resource is free  these are pipeline bubbles Structural hazards are easy to eliminate – increase the number of resources (for example, implement a separate instruction and data cache)

A 5-Stage Pipeline Source: H&P textbook

Problem 1 IF IF IF IF IF IF IF IF D/R D/R D/R D/R D/R D/R D/R D/R ALU Show the instruction occupying each stage in each cycle (no bypassing) if I1 is R1+R2R3 and I2 is R3+R4R5 and I3 is R7+R8R9 CYC-1 CYC-2 CYC-3 CYC-4 CYC-5 CYC-6 CYC-7 CYC-8 IF IF IF IF IF IF IF IF D/R D/R D/R D/R D/R D/R D/R D/R ALU ALU ALU ALU ALU ALU ALU ALU DM DM DM DM DM DM DM DM RW RW RW RW RW RW RW RW

Problem 1 IF I1 IF I2 IF I3 IF I3 IF I3 IF I4 IF I5 IF D/R D/R I1 D/R Show the instruction occupying each stage in each cycle (no bypassing) if I1 is R1+R2R3 and I2 is R3+R4R5 and I3 is R7+R8R9 CYC-1 CYC-2 CYC-3 CYC-4 CYC-5 CYC-6 CYC-7 CYC-8 IF I1 IF I2 IF I3 IF I3 IF I3 IF I4 IF I5 IF D/R D/R I1 D/R I2 D/R I2 D/R I2 D/R I3 D/R I4 D/R ALU ALU ALU I1 ALU ALU ALU I2 ALU I3 ALU DM DM DM DM I1 DM DM DM I2 DM I3 RW RW RW RW RW I1 RW RW RW I2

Problem 2 IF IF IF IF IF IF IF IF D/R D/R D/R D/R D/R D/R D/R D/R ALU Show the instruction occupying each stage in each cycle (with bypassing) if I1 is R1+R2R3 and I2 is R3+R4R5 and I3 is R3+R8R9. Identify the input latch for each input operand. CYC-1 CYC-2 CYC-3 CYC-4 CYC-5 CYC-6 CYC-7 CYC-8 IF IF IF IF IF IF IF IF D/R D/R D/R D/R D/R D/R D/R D/R ALU ALU ALU ALU ALU ALU ALU ALU DM DM DM DM DM DM DM DM RW RW RW RW RW RW RW RW

Problem 2 IF I1 IF I2 IF I3 IF I4 IF I5 IF IF IF D/R D/R I1 D/R I2 D/R Show the instruction occupying each stage in each cycle (with bypassing) if I1 is R1+R2R3 and I2 is R3+R4R5 and I3 is R3+R8R9. Identify the input latch for each input operand. CYC-1 CYC-2 CYC-3 CYC-4 CYC-5 CYC-6 CYC-7 CYC-8 IF I1 IF I2 IF I3 IF I4 IF I5 IF IF IF D/R D/R I1 D/R I2 D/R I3 D/R I4 D/R D/R D/R L3 L3 L4 L3 L5 L3 ALU ALU ALU I1 ALU I2 ALU I3 ALU ALU ALU DM DM DM DM I1 DM I2 DM I3 DM DM RW RW RW RW RW I1 RW I2 RW I3 RW

Pipeline Implementation Signals for the muxes have to be generated – some of this can happen during ID Need look-up tables to identify situations that merit bypassing/stalling – the number of inputs to the muxes goes up

Example add R1, R2, R3 lw R4, 8(R1) Source: H&P textbook

Example lw R1, 8(R2) lw R4, 8(R1) Source: H&P textbook

Example lw R1, 8(R2) sw R1, 8(R3) Source: H&P textbook

Summary For the 5-stage pipeline, bypassing can eliminate delays between the following example pairs of instructions: add/sub R1, R2, R3 add/sub/lw/sw R4, R1, R5 lw R1, 8(R2) sw R1, 4(R3) The following pairs of instructions will have intermediate stalls: lw R1, 8(R2) add/sub/lw R3, R1, R4 or sw R3, 8(R1) fmul F1, F2, F3 fadd F5, F1, F4

Problem 3 IF DE RR AL AL DM DM RW Consider this 8-stage pipeline For the following pairs of instructions, how many stalls will the 2nd instruction experience (with and without bypassing)? ADD R1+R2R3 ADD R3+R4R5 LD [R1]R2 ADD R2+R3R4 SD [R2]R3 SD [R3]R2 IF DE RR AL AL DM DM RW

Problem 3 IF DE RR AL AL DM DM RW Consider this 8-stage pipeline (RR and RW take a full cycle) For the following pairs of instructions, how many stalls will the 2nd instruction experience (with and without bypassing)? ADD R1+R2R3 ADD R3+R4R5 without: 5 with: 1 LD [R1]R2 ADD R2+R3R4 without: 5 with: 3 SD [R2]R3 without: 5 with: 3 SD [R3]R2 without: 5 with: 1 IF DE RR AL AL DM DM RW

Title Bullet