EECS 470 Dynamic Scheduling – Part II Lecture 10 Coverage: Chapter 3.

Slides:



Advertisements
Similar presentations
1 Lecture 11: Modern Superscalar Processor Models Generic Superscalar Models, Issue Queue-based Pipeline, Multiple-Issue Design.
Advertisements

EECS 470 ILP and Exceptions Lecture 7 Coverage: Chapter 3.
Computer Structure 2014 – Out-Of-Order Execution 1 Computer Structure Out-Of-Order Execution Lihu Rappoport and Adi Yoaz.
1 Lecture: Out-of-order Processors Topics: out-of-order implementations with issue queue, register renaming, and reorder buffer, timing, LSQ.
Computer Organization and Architecture (AT70.01) Comp. Sc. and Inf. Mgmt. Asian Institute of Technology Instructor: Dr. Sumanta Guha Slide Sources: Based.
Microprocessor Microarchitecture Dependency and OOO Execution Lynn Choi Dept. Of Computer and Electronics Engineering.
Instruction-Level Parallelism (ILP)
Spring 2003CSE P5481 Reorder Buffer Implementation (Pentium Pro) Hardware data structures retirement register file (RRF) (~ IBM 360/91 physical registers)
CPE 731 Advanced Computer Architecture ILP: Part IV – Speculative Execution Dr. Gheith Abandah Adapted from the slides of Prof. David Patterson, University.
DATAFLOW ARHITEKTURE. Dataflow Processors - Motivation In basic processor pipelining hazards limit performance –Structural hazards –Data hazards due to.
EECS 470 Lecture 7 Branches: Address prediction and recovery (And interrupt recovery too.)
Computer Architecture 2011 – Out-Of-Order Execution 1 Computer Architecture Out-Of-Order Execution Lihu Rappoport and Adi Yoaz.
1 Lecture 18: Core Design Today: basics of implementing a correct ooo core: register renaming, commit, LSQ, issue queue.
1 Lecture 7: Out-of-Order Processors Today: out-of-order pipeline, memory disambiguation, basic branch prediction (Sections 3.4, 3.5, 3.7)
CS 152 Computer Architecture and Engineering Lecture 15 - Advanced Superscalars Krste Asanovic Electrical Engineering and Computer Sciences University.
EECS 470 Pipeline Hazards Lecture 4 Coverage: Appendix A.
Computer Architecture Lecture 3 Coverage: Appendix A
EECS 470 Register Renaming Lecture 8 Coverage: Chapter 3.
Computer Architecture 2011 – out-of-order execution (lec 7) 1 Computer Architecture Out-of-order execution By Dan Tsafrir, 11/4/2011 Presentation based.
March 9, 2011CS152, Spring 2011 CS 152 Computer Architecture and Engineering Lecture 12 - Advanced Out-of-Order Superscalars Krste Asanovic Electrical.
Lec 8: Pipelining Kavita Bala CS 3410, Fall 2008 Computer Science Cornell University.
1 Lecture 9: Dynamic ILP Topics: out-of-order processors (Sections )
Computer Architecture 2010 – Out-Of-Order Execution 1 Computer Architecture Out-Of-Order Execution Lihu Rappoport and Adi Yoaz.
EECS 470 Memory Scheduling Lecture 11 Coverage: Chapter 3.
1 Practical Selective Replay for Reduced-Tag Schedulers Dan Ernst and Todd Austin Advanced Computer Architecture Lab The University of Michigan June 8.
Complexity-Effective Superscalar Processors S. Palacharla, N. P. Jouppi, and J. E. Smith Presented by: Jason Zebchuk.
1 Advanced Computer Architecture Dynamic Instruction Level Parallelism Lecture 2.
1 Lecture 5 Overview of Superscalar Techniques CprE 581 Computer Systems Architecture, Fall 2009 Zhao Zhang Reading: Textbook, Ch. 2.1 “Complexity-Effective.
1 Lecture 6 Tomasulo Algorithm CprE 581 Computer Systems Architecture, Fall 2009 Zhao Zhang Reading:Textbook 2.4, 2.5.
1 Lecture 7: Speculative Execution and Recovery using Reorder Buffer Branch prediction and speculative execution, precise interrupt, reorder buffer.
© Wen-mei Hwu and S. J. Patel, 2005 ECE 412, University of Illinois Lecture Instruction Execution: Dynamic Scheduling.
1 Lecture 5: Dependence Analysis and Superscalar Techniques Overview Instruction dependences, correctness, inst scheduling examples, renaming, speculation,
2/24; 3/1,3/11 (quiz was 2/22, QuizAns 3/8) CSE502-S11, Lec ILP 1 Tomasulo Organization FP adders Add1 Add2 Add3 FP multipliers Mult1 Mult2 From.
1 Lecture 7: Speculative Execution and Recovery Branch prediction and speculative execution, precise interrupt, reorder buffer.
1 CPRE 585 Term Review Performance evaluation, ISA design, dynamically scheduled pipeline, and memory hierarchy.
The life of an instruction in EV6 pipeline Constantinos Kourouyiannis.
CDA 5155 Out-of-order execution: Pentium Pro/II/III Week 7.
OOO Pipelines - II Smruti R. Sarangi IIT Delhi 1.
1 Lecture: Out-of-order Processors Topics: branch predictor wrap-up, a basic out-of-order processor with issue queue, register renaming, and reorder buffer.
1 Lecture: Out-of-order Processors Topics: a basic out-of-order processor with issue queue, register renaming, and reorder buffer.
Out-of-order execution Lihu Rappoport 11/ MAMAS – Computer Architecture Out-Of-Order Execution Dr. Lihu Rappoport.
15-740/ Computer Architecture Lecture 12: Issues in OoO Execution Prof. Onur Mutlu Carnegie Mellon University Fall 2011, 10/7/2011.
CS203 – Advanced Computer Architecture ILP and Speculation.
Lecture: Out-of-order Processors
CS 352H: Computer Systems Architecture
Smruti R. Sarangi IIT Delhi
CS203 – Advanced Computer Architecture
Microprocessor Microarchitecture Dynamic Pipeline
CMSC 611: Advanced Computer Architecture
Lecture 6: Advanced Pipelines
A Dynamic Algorithm: Tomasulo’s
Lecture 16: Core Design Today: basics of implementing a correct ooo core: register renaming, commit, LSQ, issue queue.
Lecture 18: Core Design Today: basics of implementing a correct ooo core: register renaming, commit, LSQ, issue queue.
Lecture 8: ILP and Speculation Contd. Chapter 2, Sections 2. 6, 2
Smruti R. Sarangi IIT Delhi
Lecture 17: Core Design Today: implementing core structures – rename, issue queue, bypass networks; innovations for high ILP and clock speed.
Smruti R. Sarangi Computer Science and Engineering, IIT Delhi
Lecture 8: Dynamic ILP Topics: out-of-order processors
Lecture 7: Dynamic Scheduling with Tomasulo Algorithm (Section 2.4)
The Processor Lecture 3.6: Control Hazards
Control unit extension for data hazards
Lecture 19: Core Design Today: implementing core structures – rename, issue queue, bypass networks; innovations for high ILP and clock speed.
Tomasulo Organization
Out-of-Order Execution Structures Optimizations
Prof. Onur Mutlu Carnegie Mellon University
Control unit extension for data hazards
Control unit extension for data hazards
Lecture 9: Dynamic ILP Topics: out-of-order processors
Conceptual execution on a processor which exploits ILP
Presentation transcript:

EECS 470 Dynamic Scheduling – Part II Lecture 10 Coverage: Chapter 3

MEM Dynamic Instruction Scheduling Recap IFID AllocREN EX ROB CT In-order Any order ARF Alloc –Allocate ROB storage at Tail –Allocate RS for REG –Get inputs from ROB/ARF entry specified by REN –Write instruction with available operands into assigned WB –Write result into ROB entry –Broadcast result into RS with phyID of dest register –Dellocate RS entry (requires maintenance of an RS free map) Reservation Stations (RS) –Associative storage indexed by phyID of dest, returns insts ready to execute –phyID is ROB index of inst that will compute operand (used to match on broadcast) –Value contains actual operand –Valid bits set when operand is available (after broadcast) RS Any order phyID V V Value dstIDOp WB

Wakeup-Select-Execute Loop Recap MEM EX RS WB src 1 val 1 src 2 val 2 dstID src 1 val 1 src 2 val 2 dstID src 1 val 1 src 2 val 2 dstID req grant Selection Logic == == == dstIDresult To EX/MEM

Window Size vs. Clock Speed Increasing the number of RS [Brainiac] –Longer broadcast paths –Thus more capacitance, and slower signal propagation –But, more ILP extracted Decreasing the number of RS [Speed Demon] –Shorter broadcast paths –Thus less capacitance, and faster signal propagation –But, less ILP extracted Which approach is better and when?

Cross-cutting Issue: Mispeculation What are the impacts of mispeculation or exceptions? –When instructions are flushed from the pipeline, their RS entries must be reclaimed –Otherwise, storage leaks in the microarchitecture This can happen, Alpha reportedly flushes the instruction window to reclaim all RS resources every million or so cycles The PIII processor reportedly contains a livelock/deadlock detector that would recover this failure scenario Typical recovery approach –Checkpoint free map at potential fault/mispeculation points –Recover the RS free map associated with recovery PC

Optimizing the Scheduler Optimizing Wakeup –Value-less reservation stations Remove register values from latency-critical RS structures –Pipelined schedulers Transform wakeup-select-execute loop to wakeup-execute loop –Clustered instruction windows Allow some RS to be “close” and other “far away”, for a clock boost Optimizing Selection –Reservation station banking Associate RS groups with a FU, reduces the complexity of picking

Value-less Reservation Stations Q: Do we need to know the value of a register to schedule its dependent operations? –A: No, we simply need dependencies and latencies Value-less RS only contains required info –Dependencies specified by physical register IDs –Latency specified by opcode Access register file in a later stage, after selection Reduces size of RS, which improves broadcast speed MEM IFID AllocREN EX ROB CT In-order Any order ARF REG RS Any order WB phyID V V dstIDOp

Value-less Reservation Stations MEM EX RS WB src 1 src 2 dstID src 1 src 2 dstID src 1 src 2 dstID req grant Selection Logic == == == dstID To EX/MEM

Pipelined Schedulers Q: Do we need to know the result of an instruction to schedule its dependent operations –A: Once again, no, we need know only dependencies and latency To decouple wakeup-select loop –Broadcast dstID back into scheduler N-cycles after inst enters REG, where N is the latency of the instruction What if latency of operation is non-deterministic? –E.g., load instructions (2 cycle hit, 8 cycle miss) –Wait until latency known before scheduling dependencies (SLOW) –Predict latency, reschedule if incorrect Reschedule all vs. selective MEM IFID AllocREN EX ROB CT In-order Any order ARF REG RS Any order WB phyID V V dstIDOp

Pipelined Schedulers MEM EX RS WB src 1 src 2 dstID src 1 src 2 dstID src 1 src 2 dstID req grant Selection Logic == == == dstID To EX/MEM timer

Clustered Instruction Windows Split instruction window into execution clusters –W/N RS per cluster, where W is the window size, N is the # of clusters –Faster broadcast into split windows –Inter-cluster broadcasts take at least an one more cycle Instruction steering –Minimizes inter-cluster transfers –Integer/Floating point split –Integer/Address split –Dependence-based steering Single Cycle Broadcast Single Cycle Broadcast Single Cycle Broadcast Single Cycle Inter-Cluster Broadcast I-steer

Reservation Station Banking Split instruction window into banks –Group of RS associated with FU –Faster selection within bank Instruction steering –Direct instructions to bank associated with instruction opcode Trade-offs with banking –Fewer selection candidates speeds selection logic, which is O(log W) –But, splits RS resources by FU, increasing the risk of running out of RS resources in ALLOC stage Unified RS Pool RS Bank for FU #1 RS Bank for FU #2 I-steer Selection Logic Selection Logic Selection Logic

Discussion Points If we didn’t rename the registers, would the dynamic scheduler still work? We can deallocate RS entries out-of- order (which improves RS utilization), why not allocate them out-of-order as well? What about memory dependencies?