Full Datapath. Chapter 4 The Processor 2

Similar documents
Processor (II) - pipelining. Hwansoo Han

Pipelining Analogy. Pipelined laundry: overlapping execution. Parallelism improves performance. Four loads: Non-stop: Speedup = 8/3.5 = 2.3.

Full Datapath. Chapter 4 The Processor 2

Chapter 4. The Processor

COMPUTER ORGANIZATION AND DESIGN

CSEE 3827: Fundamentals of Computer Systems

The Processor (3) Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University

Pipelining. CSC Friday, November 6, 2015

Pipeline Hazards. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Department of Computer and IT Engineering University of Kurdistan. Computer Architecture Pipelining. By: Dr. Alireza Abdollahpouri

3/12/2014. Single Cycle (Review) CSE 2021: Computer Organization. Single Cycle with Jump. Multi-Cycle Implementation. Why Multi-Cycle?

Lecture Topics. Announcements. Today: Data and Control Hazards (P&H ) Next: continued. Exam #1 returned. Milestone #5 (due 2/27)

COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Interface. 5 th. Edition. Chapter 4. The Processor

Chapter 4 The Processor 1. Chapter 4B. The Processor

LECTURE 3: THE PROCESSOR

COMPUTER ORGANIZATION AND DESIGN

ECE260: Fundamentals of Computer Engineering

Chapter 4. The Processor

Computer Architecture Computer Science & Engineering. Chapter 4. The Processor BK TP.HCM

Determined by ISA and compiler. We will examine two MIPS implementations. A simplified version A more realistic pipelined version

MIPS Pipelining. Computer Organization Architectures for Embedded Computing. Wednesday 8 October 14

Chapter 4. The Processor

Chapter 4 The Processor 1. Chapter 4A. The Processor

EIE/ENE 334 Microprocessors

Outline Marquette University

Chapter 4. The Processor

Thomas Polzer Institut für Technische Informatik

COMPUTER ORGANIZATION AND DESIGN. 5 th Edition. The Hardware/Software Interface. Chapter 4. The Processor

Chapter 4. Instruction Execution. Introduction. CPU Overview. Multiplexers. Chapter 4 The Processor 1. The Processor.

COMPUTER ORGANIZATION AND DESIGN. 5 th Edition. The Hardware/Software Interface. Chapter 4. The Processor

Chapter 4. The Processor

zhandling Data Hazards The objectives of this module are to discuss how data hazards are handled in general and also in the MIPS architecture.

Computer Architecture Computer Science & Engineering. Chapter 4. The Processor BK TP.HCM

Pipelined datapath Staging data. CS2504, Spring'2007 Dimitris Nikolopoulos

Lecture 3: The Processor (Chapter 4 of textbook) Chapter 4.1

Chapter 4 (Part II) Sequential Laundry

ECE473 Computer Architecture and Organization. Pipeline: Data Hazards

COMPUTER ORGANIZATION AND DESI

ECE260: Fundamentals of Computer Engineering

Computer Organization and Structure. Bing-Yu Chen National Taiwan University

ELE 655 Microprocessor System Design

Chapter 4. The Processor. Jiang Jiang

The Processor. Z. Jerry Shi Department of Computer Science and Engineering University of Connecticut. CSE3666: Introduction to Computer Architecture

COMP2611: Computer Organization. The Pipelined Processor

Chapter 4. The Processor

Pipelined Datapath. Reading. Sections Practice Problems: 1, 3, 8, 12 (2) Lecture notes from MKP, H. H. Lee and S.

Pipelined Datapath. Reading. Sections Practice Problems: 1, 3, 8, 12

Midnight Laundry. IC220 Set #19: Laundry, Co-dependency, and other Hazards of Modern (Architecture) Life. Return to Chapter 4

14:332:331 Pipelined Datapath

COMPUTER ORGANIZATION AND DESIGN

CENG 3420 Lecture 06: Pipeline

LECTURE 9. Pipeline Hazards

COMPUTER ORGANIZATION AND DESIGN. 5 th Edition. The Hardware/Software Interface. Chapter 4. The Processor

Design a MIPS Processor (2/2)

4. The Processor Computer Architecture COMP SCI 2GA3 / SFWR ENG 2GA3. Emil Sekerinski, McMaster University, Fall Term 2015/16

DEE 1053 Computer Organization Lecture 6: Pipelining

COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Interface 5 th Edition. Chapter 4. The Processor

ECS 154B Computer Architecture II Spring 2009

EE557--FALL 1999 MIDTERM 1. Closed books, closed notes

ECE 154A Introduction to. Fall 2012

1 Hazards COMP2611 Fall 2015 Pipelined Processor

Data Hazards Compiler Scheduling Pipeline scheduling or instruction scheduling: Compiler generates code to eliminate hazard

ECE154A Introduction to Computer Architecture. Homework 4 solution

ECE Exam II - Solutions November 8 th, 2017

SI232 Set #20: Laundry, Co-dependency, and other Hazards of Modern (Architecture) Life. Chapter 6 ADMIN. Reading for Chapter 6: 6.1,

COSC 6385 Computer Architecture - Pipelining

Pipeline Data Hazards. Dealing With Data Hazards

ECEC 355: Pipelining

CS 61C: Great Ideas in Computer Architecture Pipelining and Hazards

5 th Edition. The Processor We will examine two MIPS implementations A simplified version A more realistic pipelined version

CS 2506 Computer Organization II Test 2. Do not start the test until instructed to do so! printed

CS 110 Computer Architecture. Pipelining. Guest Lecture: Shu Yin. School of Information Science and Technology SIST

Pipelining. Pipeline performance

CS/CoE 1541 Exam 1 (Spring 2019).

Lecture 2: Processor and Pipelining 1

Chapter 4. The Processor

Instr. execution impl. view

CS 251, Winter 2018, Assignment % of course mark

Computer and Information Sciences College / Computer Science Department Enhancing Performance with Pipelining

Instruction word R0 R1 R2 R3 R4 R5 R6 R8 R12 R31

CSCI 402: Computer Architectures. Fengguang Song Department of Computer & Information Science IUPUI. Today s Content

COSC121: Computer Systems. ISA and Performance

Pipelining. Ideal speedup is number of stages in the pipeline. Do we achieve this? 2. Improve performance by increasing instruction throughput ...

MIPS An ISA for Pipelining

Basic Pipelining Concepts

Instruction Level Parallelism. Appendix C and Chapter 3, HP5e

CS 61C: Great Ideas in Computer Architecture. Lecture 13: Pipelining. Krste Asanović & Randy Katz

(Basic) Processor Pipeline

Full Datapath. CSCI 402: Computer Architectures. The Processor (2) 3/21/19. Fengguang Song Department of Computer & Information Science IUPUI

Computer Architecture Review. Jo, Heeseung

CS 251, Winter 2019, Assignment % of course mark

Processor Architecture. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Pipelining: Overview. CPSC 252 Computer Organization Ellen Walker, Hiram College

Basic Instruction Timings. Pipelining 1. How long would it take to execute the following sequence of instructions?

Lecture 05: Pipelining: Basic/ Intermediate Concepts and Implementation

Pipelined Processor Design

Lecture 9. Pipeline Hazards. Christos Kozyrakis Stanford University

The Processor: Instruction-Level Parallelism

Advanced Parallel Architecture Lessons 5 and 6. Annalisa Massini /2017

Unresolved data hazards. CS2504, Spring'2007 Dimitris Nikolopoulos

Transcription:

Pipelining

Full Datapath Chapter 4 The Processor 2

Datapath With Control Chapter 4 The Processor 3

Performance Issues Longest delay determines clock period Critical path: load instruction Instruction memory register file ALU data memory register file Not desirable to vary period for different instructions Violates the regularity design principle We will improve performance by pipelining exploiting instruction-level parallelism (ILP) Chapter 4 The Processor 4

Pipelining Analogy Pipelined laundry: overlapping execution Parallelism improves performance 4 loads: Speedup = 8/3.5 = 2.3 Non-stop: Speedup = Kn/(n + (K-1)) K = number of stages assume: all tasks take same amount of time Chapter 4 The Processor 5

MIPS Pipeline Five stages, one step per stage 1. 2. 3. 4. 5. IF: Instruction fetch from memory ID: Instruction decode & register read EX: Execute operation or calculate address MEM: Access memory operand WB: Write result back to register Chapter 4 The Processor 6

Pipeline Performance Assume time for stages is 100ps for register read or write 200ps for other stages Instr Instr fetch Register read ALU op Memory access Register write Total time lw 200ps 100 ps 200ps 200ps 100 ps 800ps sw 200ps 100 ps 200ps 200ps R-format 200ps 100 ps 200ps beq 200ps 100 ps 200ps 700ps 100 ps 600ps 500ps Chapter 4 The Processor 7

Pipeline Performance Single-cycle (Tc= 800ps) Pipelined (Tc= 200ps) Chapter 4 The Processor 8

Pipeline Speedup If all stages are balanced i.e., all take the same time Time between instructionspipelined = Time between instructionsnonpipelined Number of stages If not balanced, speedup is less Speedup due to increased throughput Latency (time for each instruction) does not decrease! Chapter 4 The Processor 9

Pipelining and ISA Design MIPS ISA designed for pipelining All instructions are same length (32-bits) Few and regular instruction formats Can decode and read registers in one step Load/store addressing Easier to fetch and decode in one cycle c.f. x86: 1- to 17-byte instructions Can calculate address in 3rd stage, access memory in 4th stage Alignment of memory operands Memory access takes only one cycle Chapter 4 The Processor 10

Hazards Situations that prevent starting the next instruction in the next cycle. Need to wait! Structure hazards Data hazard A required resource is busy Need to wait for a previous instruction to complete its data read/write Control hazard Deciding on control action depends on a previous instruction Chapter 4 The Processor 11

Structure Hazards Conflict for use of a resource In MIPS pipeline with a single memory Load/store requires data access Instruction fetch requires memory acces too would have to stall for that cycle Would cause a pipeline bubble Hence, pipelined datapaths require separate instruction/data memories Or separate instruction/data caches Chapter 4 The Processor 12

Data Hazards An instruction depends on completion of data access by a previous instruction add sub $s0, $t0, $t1 $t2, $s0, $t3 Chapter 4 The Processor 13

Forwarding (aka Bypassing) Use result when it is computed Don t wait for it to be stored in a register Requires extra connections in the datapath (extra hardware to detect and fix hazard) Chapter 4 The Processor 14

Load-Use Data Hazard Can t always avoid stalls by forwarding If value not computed when needed Can t forward backward in time! (causality) Chapter 4 The Processor 15

Code Scheduling to Avoid Stalls Reorder code to avoid use of load result in the next instruction code for A = B + E; C = B + F; $t3 stall stall lw lw add sw lw add sw $t1 $t1, $t2, $t3, $t3, $t4, $t5, $t5, $t2 0($t0) 4($t0) $t1, $t2 12($t0) 8($t0) $t1, $t4 16($t0) 13 cycles $t5 lw lw lw add sw add sw $t1 $t1, $t2, $t4, $t3, $t3, $t5, $t5, $t4 0($t0) 4($t0) 8($t0) $t1, $t2 12($t0) $t1, $t4 16($t0) 11 cycles Chapter 4 The Processor 16

Control Hazards Branch determines flow of control Fetching next instruction depends on test outcome Pipeline can t always fetch correct instruction still working on ID stage of branch In MIPS pipeline: Need to compare registers and compute target early in the pipeline add hardware to do it in ID stage (ID = Instruction Decode and Register Read) Chapter 4 The Processor 17

Stall on Branch Wait until branch outcome determined before fetching next instruction Chapter 4 The Processor 18

Branch Prediction Longer pipelines can t readily determine branch outcome early Predict outcome of branch Stall penalty becomes unacceptable Only stall if prediction is wrong In MIPS pipeline Can predict branches not taken Fetch instruction after branch, with no delay Chapter 4 The Processor 19

MIPS with Predict Not Taken Prediction correct Prediction incorrect Chapter 4 The Processor 20

More-Realistic Branch Prediction Static branch prediction Based on typical branch behavior Example: loop and if-statement branches Predict backward branches taken Predict forward branches not taken Dynamic branch prediction Hardware measures actual branch behavior e.g., record recent history of each branch Extrapolate: assume future behavior will continue the trend When wrong, stall while re-fetching, and update history Chapter 4 The Processor 21

Pipeline Summary The BIG Picture Pipelining improves performance by increasing instruction throughput Subject to hazards Executes multiple instructions in parallel Each instruction has the same latency structure, data, control Instruction set design (ISA) affects complexity of pipeline implementation Chapter 4 The Processor 22

MIPS Pipelined Datapath MEM Right-to-left flow leads to hazards WB Chapter 4 The Processor 23

Pipeline registers Need registers between stages to hold information produced in previous cycle Chapter 4 The Processor 24

Pipeline Operation Cycle-by-cycle flow of instructions through the pipelined datapath single-clock-cycle pipeline diagram shows pipeline usage in a single cycle: snapshot highlight resources used vs. multi-clock-cycle diagram shows operation over time next: look at single-clock-cycle diagrams for load & store Chapter 4 The Processor 25

IF for Load, Store, Chapter 4 The Processor 26

ID for Load, Store, Chapter 4 The Processor 27

EX for Load Chapter 4 The Processor 28

MEM for Load Chapter 4 The Processor 29

WB for Load Wrong register number Chapter 4 The Processor 30

Corrected Datapath for Load Chapter 4 The Processor 31

EX for Store Chapter 4 The Processor 32

MEM for Store Chapter 4 The Processor 33

WB for Store Chapter 4 The Processor 34

Multi-Cycle Pipeline Diagram showing resource usage Chapter 4 The Processor 35

Multi-Cycle Pipeline Diagram traditional form Chapter 4 The Processor 36

Single-Cycle Pipeline Diagram state of pipeline in a given cycle Chapter 4 The Processor 37

Pipelined Control (simplified) Chapter 4 The Processor 38

Pipelined Control control signals derived from instruction as in single-cycle implementation Chapter 4 The Processor 39

Pipelined Control Chapter 4 The Processor 40

Data Hazards in ALU Instructions Consider this sequence: sub $2, $1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) We can resolve hazards with forwarding How do we detect when to forward? Chapter 4 The Processor 41

Dependencies & Forwarding Chapter 4 The Processor 42

Detecting the Need to Forward Pass register numbers along pipeline ALU operand register numbers in EX stage are given by e.g., ID/EX.RegisterRs = register number for Rs sitting in ID/EX pipeline register ID/EX.RegisterRs, ID/EX.RegisterRt Data hazards when 1a. EX/MEM.RegisterRd = ID/EX.RegisterRs 1b. EX/MEM.RegisterRd = ID/EX.RegisterRt 2a. MEM/WB.RegisterRd = ID/EX.RegisterRs 2b. MEM/WB.RegisterRd = ID/EX.RegisterRt Fwd from EX/MEM pipeline reg Fwd from MEM/WB pipeline reg Chapter 4 The Processor 43

Detecting the Need to Forward but only if forwarding instruction will write to a register! EX/MEM.RegWrite, MEM/WB.RegWrite and only if Rd for that instruction is not $zero EX/MEM.RegisterRd 0, MEM/WB.RegisterRd 0 Chapter 4 The Processor 44

Forwarding Paths Chapter 4 The Processor 45

Forwarding Conditions EX hazard if (EX/MEM.RegWrite and (EX/MEM.RegisterRd 0) and (EX/MEM.RegisterRd = ID/EX.RegisterRs)) ForwardA = 10 if (EX/MEM.RegWrite and (EX/MEM.RegisterRd 0) and (EX/MEM.RegisterRd = ID/EX.RegisterRt)) ForwardB = 10 MEM hazard if (MEM/WB.RegWrite and (MEM/WB.RegisterRd 0) and (MEM/WB.RegisterRd = ID/EX.RegisterRs)) ForwardA = 01 if (MEM/WB.RegWrite and (MEM/WB.RegisterRd 0) and (MEM/WB.RegisterRd = ID/EX.RegisterRt)) ForwardB = 01 Chapter 4 The Processor 46

Double Data Hazard Consider the sequence: add $1,$1,$2 add $1,$1,$3 add $1,$1,$4 Both hazards occur Want to use the most recent Revise MEM hazard condition Only fwd if EX hazard condition is not true Chapter 4 The Processor 47

Revised Forwarding Condition MEM hazard if (MEM/WB.RegWrite and (MEM/WB.RegisterRd 0) and not (EX/MEM.RegWrite and (EX/MEM.RegisterRd 0) and (EX/MEM.RegisterRd = ID/EX.RegisterRs)) and (MEM/WB.RegisterRd = ID/EX.RegisterRs)) ForwardA = 01 if (MEM/WB.RegWrite and (MEM/WB.RegisterRd 0) and not (EX/MEM.RegWrite and (EX/MEM.RegisterRd 0) and (EX/MEM.RegisterRd = ID/EX.RegisterRt)) and (MEM/WB.RegisterRd = ID/EX.RegisterRt)) ForwardB = 01 Chapter 4 The Processor 48

Datapath with Forwarding Chapter 4 The Processor 49

Load-Use Data Hazard Need to stall for one cycle Chapter 4 The Processor 50

Load-Use Hazard Detection Check when using instruction is decoded in ID stage ALU operand register numbers in ID stage are given by Load-use hazard when target of load = input of computation IF/ID.RegisterRs, IF/ID.RegisterRt ID/EX.MemRead and ((ID/EX.RegisterRt = IF/ID.RegisterRs) or (ID/EX.RegisterRt = IF/ID.RegisterRt)) If detected, stall and insert bubble Chapter 4 The Processor 51

How to Stall the Pipeline? Force control values in ID/EX register to 0 EX, MEM and WB do NOP (no-operation) Prevent update of PC and IF/ID register Using instruction is decoded again Following instruction is fetched again 1-cycle stall allows MEM to read data for lw Can subsequently forward to EX stage Chapter 4 The Processor 52

Stall/Bubble in the Pipeline Stall inserted here Chapter 4 The Processor 53

Stall/Bubble in the Pipeline Or, more accurately Chapter 4 The Processor 54

Datapath with Hazard Detection Chapter 4 The Processor 55

Stalls and Performance The BIG Picture Stalls reduce performance But are required to get correct results Compiler can arrange code to avoid hazards and stalls Requires knowledge of the pipeline structure Chapter 4 The Processor 56