ilp control flow
play

ILP: CONTROL FLOW Mahdi Nazm Bojnordi Assistant Professor School - PowerPoint PPT Presentation

ILP: CONTROL FLOW Mahdi Nazm Bojnordi Assistant Professor School of Computing University of Utah CS/ECE 6810: Computer Architecture Overview Announcement Homework 2 submission deadline: Feb. 13 th This lecture Performance


  1. ILP: CONTROL FLOW Mahdi Nazm Bojnordi Assistant Professor School of Computing University of Utah CS/ECE 6810: Computer Architecture

  2. Overview ¨ Announcement ¤ Homework 2 submission deadline: Feb. 13 th ¨ This lecture ¤ Performance bottleneck ¤ Program flow ¤ Branch instructions ¤ Branch prediction

  3. Performance Bottleneck ¨ Key performance limitation ¤ Number of instructions fetched per second is limited ¨ How to increase fetch performance? ¤ Deeper fetch (multiple stages) ¤ Wider fetch (multiple pipelines) How to handle branches?

  4. Impact of Branches ¨ Example C code do { sum = sum + i; ¤ No structural/data hazards i = i – 1; ¤ What is fetch rate (IPS)? } while(i > 0); Assembly code: ¨ Five-stage pipeline Loop: ADD R1, R1, R2 ¤ Cycle time = 10ns ADDI R2, R2, #-1 BNEQ R2, R0, Loop stall Fetch Decode Execute Memory Writeback

  5. Impact of Branches ¨ Example C code do { sum = sum + i; ¤ No structural/data hazards i = i – 1; ¤ What is fetch rate (IPS)? } while(i > 0); Assembly code: ¨ Ten-stage pipeline Loop: ADD R1, R1, R2 ¤ Cycle time = 5ns ADDI R2, R2, #-1 BNEQ R2, R0, Loop stall stall stall Fetch Decode Execute Memory Writeback

  6. Program Flow ¨ A program contains basic blocks ¤ Only one entry and one exit point per basic block … ¨ Branches branch ¤ Conditional vs. unconditional n How to check conditions … n Jumps, calls, and returns ¤ Target address branch n Absolute address n Relative to the program counter … jump

  7. Branch Instructions ¨ Branch penalty due to unknown outcome ¤ Direction and target ¨ How to reduce penalty direction clk target NPC clk PC + 4 Can we predict what Instruction instruction to be fetched? Inst. Memory

  8. Branch Prediction ¨ How to predict the outcome of a branch ¤ Profiling the entire program ¤ Predict based on common cases Example C/C++ code: i = 10000; do { r = i%4; if(r != 0) { => How many branches? sum = sum + i; } i = i – 1; } while(i > 0); =>

  9. Branch Prediction ¨ How to predict the outcome of a branch ¤ Profiling the entire program ¤ Predict based on common cases Assembly code: ADDI R1, R0, #10000 TAKEN NOT-TAKEN do: ANDI R2, R1, #3 7500 BEQ R2, R0, skp branch-1 2500 ADD R3, R3, R1 skp: ADDI R1, R1, #-1 9999 BNEQ R1, R0, do branch-2 1

  10. Branch Prediction ¨ The goal of branch prediction ¤ To avoid stall cycles in fetch stage ¨ Types ¤ Static prediction (based on direction or profile) n Always not-taken n Target = next PC Which ones are influenced n Always taken a. Performance b. Energy n Target = unknown c. Power ¤ Dynamic prediction n Special hardware using PC

  11. Branch Prediction/Misprediction ¨ Prediction accuracy? i = 100; do { ¤ A: always not-taken sum = sum + i; i = i – 1; 0.01 } while(i > 0); ¤ B: always taken 0.99

  12. Problem ¨ Compute IPC of a scalar processor when there are ¤ no data/structural hazards, only control hazards, ¤ every 5th instruction is a branch, and ¤ 90% branch prediction accuracy ¨ IPC = 1/ (1 + stalls per instruction) = 1/(1 + 0.2x0.1x1) = 0.98 ¨

  13. Dynamic Branch Prediction ¨ Hardware unit capable of learning at runtime ¤ 1. Prediction logic n Direction (taken or not-taken) n Target address (where to fetch next) ¤ 2. Outcome validation and training n Outcome is computed regardless of prediction ¤ 3. Recovery from misprediction n Nullify the effect of instructions on the wrong path

  14. Simple Dynamic Predictors ¨ One-bit branch predictor ¤ Keep track of and use the outcome of last executed branch taken not-taken N T taken ¨ Prediction accuracy not-taken while(1) { • A single predictor shared by for(i=0; i<10; i++) { branch-1 multiple branches } • Two mispredictions for loops for(j=0; j<20; j++) { branch-2 (1 entry and 1 exit) } }

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend