ECE 721 Modern Superscalar Microarchitecture

Slides:



Advertisements
Similar presentations
Hardware-Based Speculation. Exploiting More ILP Branch prediction reduces stalls but may not be sufficient to generate the desired amount of ILP One way.
Advertisements

Computer architecture
1 Lecture 11: Modern Superscalar Processor Models Generic Superscalar Models, Issue Queue-based Pipeline, Multiple-Issue Design.
1 Copyright © 2012, Elsevier Inc. All rights reserved. Chapter 3 Instruction-Level Parallelism and Its Exploitation Computer Architecture A Quantitative.
2/28/2013 CS152, Spring 2013 CS 152 Computer Architecture and Engineering Lecture 11 - Out-of-Order Issue, Register Renaming, & Branch Prediction Krste.
1 Lecture: Out-of-order Processors Topics: out-of-order implementations with issue queue, register renaming, and reorder buffer, timing, LSQ.
Out-of-Order Machine State Instruction Sequence: Inorder State: Look-ahead State: Architectural State: R3  A R7  B R8  C R7  D R4  E R3  F R8  G.
THE MIPS R10000 SUPERSCALAR MICROPROCESSOR Kenneth C. Yeager IEEE Micro in April 1996 Presented by Nitin Gupta.
Sim-alpha: A Validated, Execution-Driven Alpha Simulator Rajagopalan Desikan, Doug Burger, Stephen Keckler, Todd Austin.
Spring 2003CSE P5481 Reorder Buffer Implementation (Pentium Pro) Hardware data structures retirement register file (RRF) (~ IBM 360/91 physical registers)
1 COMP 206: Computer Architecture and Implementation Montek Singh Mon., Oct. 14, 2002 Topic: Instruction-Level Parallelism (Multiple-Issue, Speculation)
CPE 731 Advanced Computer Architecture ILP: Part IV – Speculative Execution Dr. Gheith Abandah Adapted from the slides of Prof. David Patterson, University.
February 28, 2012CS152, Spring 2012 CS 152 Computer Architecture and Engineering Lecture 11 - Out-of-Order Issue, Register Renaming, & Branch Prediction.
Mult. Issue CSE 471 Autumn 011 Multiple Issue Alternatives Superscalar (hardware detects conflicts) –Statically scheduled (in order dispatch and hence.
CS 152 Computer Architecture and Engineering Lecture 15 - Advanced Superscalars Krste Asanovic Electrical Engineering and Computer Sciences University.
March 9, 2011CS152, Spring 2011 CS 152 Computer Architecture and Engineering Lecture 12 - Advanced Out-of-Order Superscalars Krste Asanovic Electrical.
EECS 470 Superscalar Architectures and the Pentium 4 Lecture 12.
Reducing the Complexity of the Register File in Dynamic Superscalar Processors Rajeev Balasubramonian, Sandhya Dwarkadas, and David H. Albonesi In Proceedings.
1 Lecture 9: Dynamic ILP Topics: out-of-order processors (Sections )
Ch2. Instruction-Level Parallelism & Its Exploitation 2. Dynamic Scheduling ECE562/468 Advanced Computer Architecture Prof. Honggang Wang ECE Department.
Superscalar Processors by
Finishing out EECS 470 A few snapshots of the real world.
CSCE 614 Fall Hardware-Based Speculation As more instruction-level parallelism is exploited, maintaining control dependences becomes an increasing.
© Wen-mei Hwu and S. J. Patel, 2005 ECE 412, University of Illinois Lecture Instruction Execution: Dynamic Scheduling.
1 Lecture 7: Speculative Execution and Recovery Branch prediction and speculative execution, precise interrupt, reorder buffer.
OOO Pipelines - II Smruti R. Sarangi IIT Delhi 1.
1 Lecture: Out-of-order Processors Topics: a basic out-of-order processor with issue queue, register renaming, and reorder buffer.
Samira Khan University of Virginia Feb 9, 2016 COMPUTER ARCHITECTURE CS 6354 Precise Exception The content and concept of this course are adapted from.
CS203 – Advanced Computer Architecture ILP and Speculation.
Ch2. Instruction-Level Parallelism & Its Exploitation 2. Dynamic Scheduling ECE562/468 Advanced Computer Architecture Prof. Honggang Wang ECE Department.
Dynamic Scheduling Why go out of style?
CSL718 : Superscalar Processors
CS 152 Computer Architecture and Engineering Lecture 11 - Out-of-Order Issue, Register Renaming, & Branch Prediction John Wawrzynek Electrical Engineering.
/ Computer Architecture and Design
Smruti R. Sarangi IIT Delhi
PowerPC 604 Superscalar Microprocessor
CIS-550 Advanced Computer Architecture Lecture 10: Precise Exceptions
Tomasulo Loop Example Loop: LD F0 0 R1 MULTD F4 F0 F2 SD F4 0 R1
Module: Handling Exceptions
Sequential Execution Semantics
Lecture 6: Advanced Pipelines
Tolerating Long Latency Instructions
Lecture 8: ILP and Speculation Contd. Chapter 2, Sections 2. 6, 2
Smruti R. Sarangi IIT Delhi
ROB Example We will go through an example of the use of reorder buffers in two scenarios— Completion without exceptions One instruction raises an exception.
ROB Example We will go through an example of the use of reorder buffers in two scenarios— Completion without exceptions One instruction raises an exception.
Lecture: Out-of-order Processors
Lecture 8: Dynamic ILP Topics: out-of-order processors
Adapted from the slides of Prof
15-740/ Computer Architecture Lecture 5: Precise Exceptions
Krste Asanovic Electrical Engineering and Computer Sciences
Lecture 7: Dynamic Scheduling with Tomasulo Algorithm (Section 2.4)
Adapted from the slides of Prof
Prof. Onur Mutlu Carnegie Mellon University Fall 2011, 9/30/2011
Instruction-Level Parallelism (ILP)
15-740/ Computer Architecture Lecture 10: Out-of-Order Execution
Overview Prof. Eric Rotenberg
Additional ILP Topics Prof. Eric Rotenberg
pipelining: data hazards Prof. Eric Rotenberg
Lecture 9: Dynamic ILP Topics: out-of-order processors
Conceptual execution on a processor which exploits ILP
Prof. Onur Mutlu Carnegie Mellon University Spring 2015, 2/11/2015
Spring 2019 Prof. Eric Rotenberg
ECE 721, Spring 2019 Prof. Eric Rotenberg.
ECE 721 Alternatives to ROB-based Retirement
Handling Stores and Loads
Sizing Structures Fixed relations Empirical (simulation-based)
Spring 2019 Prof. Eric Rotenberg
Dynamic Scheduling Physical Register File ready bits Issue Queue (IQ)
Presentation transcript:

ECE 721 Modern Superscalar Microarchitecture Spring 2019 Prof. Eric Rotenberg ECE 721, Spring 2019 Prof. Eric Rotenberg

Logical Registers Logical registers Ex: Alpha Architecture Program registers Ex: Alpha Architecture 32 logical integer registers (r0-r31) 32 logical floating-point registers Also called architectural registers ECE 721, Spring 2019 Prof. Eric Rotenberg

Physical Registers Physical registers Hardware registers Ex: Alpha 21264 Microarchitecture 80 physical integer registers (p0-p79) 72 physical floating-point registers ECE 721, Spring 2019 Prof. Eric Rotenberg

Renaming Renaming Assign a unique physical register to a logical register Number of physical registers > number of logical registers Multiple definitions of a logical register are each assigned a unique physical register ECE 721, Spring 2019 Prof. Eric Rotenberg

Structures (required) Physical register file Rename map table Free list List of unused registers in physical register file Active list Active instruction: Instruction that has been dispatched but not yet retired Active list: List of all active instructions in program order Equivalent to the Reorder Buffer (ROB) ECE 721, Spring 2019 Prof. Eric Rotenberg

Structures (optional) Architectural map table Recovery from exceptions and mispredictions (branch, load, etc.) Restore rename map table to committed state Shadow map tables Recovery from branch mispredictions Restore rename map table to what it was just after the branch ECE 721, Spring 2019 Prof. Eric Rotenberg

Side notes Alternate names for map tables Optional structures Rename map table: frontend map table Architectural map table: backend map table Optional structures Architectural map table is optional Shadow map tables are optional Whether or not these exist depends on recovery strategy. Active list alone can be used for recovery. Recovery strategies affect contents of active list and existence of the architectural and shadow map tables. More on this later… ECE 721, Spring 2019 Prof. Eric Rotenberg

Renaming Rename logical source registers Obtain mappings from rename map table Rename logical destination register Pop a free physical register from the free list Assign the physical register to the logical destination register Update rename map table to reflect the new mapping ECE 721, Spring 2019 Prof. Eric Rotenberg

Renaming Example load r1, 16(r2) add r3, r1, #1 load r1, 20(r2) sub r4, r1, #1 add r3, r1, #1 ECE 721, Spring 2019 Prof. Eric Rotenberg

Renaming Example load r1, 16(r2) load p67, 16(p11) Rename Map Table (before) Rename Map Table (after) load r1, 16(r2) r0 p10 r1 p8 r2 p11 r3 p33 r4 p46 … r31 p2 r0 p10 r1 p67 r2 p11 r3 p33 r4 p46 … r31 p2 p11 head tail head tail load p67, 16(p11) p67 p19 p27 p28 … p5 p67 p19 p27 p28 … p5 Free List (before) Free List (after) p67 ECE 721, Spring 2019 Prof. Eric Rotenberg

Renaming Example add r3, r1, #1 add p19, p67, #1 Rename Map Table (before) Rename Map Table (after) add r3, r1, #1 r0 p10 r1 p67 r2 p11 r3 p33 r4 p46 … r31 p2 r0 p10 r1 p67 r2 p11 r3 p19 r4 p46 … r31 p2 p67 head tail head tail add p19, p67, #1 p67 p19 p27 p28 … p5 p67 p19 p27 p28 … p5 Free List (before) Free List (after) p19 ECE 721, Spring 2019 Prof. Eric Rotenberg

Renaming Example load r1, 20(r2) load p27, 20(p11) Rename Map Table (before) Rename Map Table (after) load r1, 20(r2) r0 p10 r1 p67 r2 p11 r3 p19 r4 p46 … r31 p2 r0 p10 r1 p27 r2 p11 r3 p19 r4 p46 … r31 p2 p11 head tail head tail load p27, 20(p11) p67 p19 p27 p28 … p5 p67 p19 p27 p28 … p5 Free List (before) Free List (after) p27 ECE 721, Spring 2019 Prof. Eric Rotenberg

Renaming Example sub r4, r1, #1 sub p28, p27, #1 Rename Map Table (before) Rename Map Table (after) sub r4, r1, #1 r0 p10 r1 p27 r2 p11 r3 p19 r4 p46 … r31 p2 r0 p10 r1 p27 r2 p11 r3 p19 r4 p28 … r31 p2 p27 head tail head tail sub p28, p27, #1 p67 p19 p27 p28 … p5 p67 p19 p27 p28 … p5 Free List (before) Free List (after) p28 ECE 721, Spring 2019 Prof. Eric Rotenberg

Renaming Example load r1, 16(r2) load r1, 20(r2) sub r4, r1, #1 add r3, r1, #1 load p67, 16(p11) add p19, p67, #1 load p27, 20(p11) sub p28, p27, #1 load p67, 16(p11) load p27, 20(p11) add p19, p67, #1 sub p28, p27, #1 ECE 721, Spring 2019 Prof. Eric Rotenberg