15-740/18-740 Computer Architecture Lecture 7: Out-of-Order Execution Prof. Onur Mutlu Carnegie Mellon University.

Slides:



Advertisements
Similar presentations
Spring 2003CSE P5481 Out-of-Order Execution Several implementations out-of-order completion CDC 6600 with scoreboarding IBM 360/91 with Tomasulos algorithm.
Advertisements

Hardware-Based Speculation. Exploiting More ILP Branch prediction reduces stalls but may not be sufficient to generate the desired amount of ILP One way.
Real-time Signal Processing on Embedded Systems Advanced Cutting-edge Research Seminar I&III.
A scheme to overcome data hazards
Dynamic ILP: Scoreboard Professor Alvin R. Lebeck Computer Science 220 / ECE 252 Fall 2008.
Computer Organization and Architecture (AT70.01) Comp. Sc. and Inf. Mgmt. Asian Institute of Technology Instructor: Dr. Sumanta Guha Slide Sources: Based.
COMP25212 Advanced Pipelining Out of Order Processors.
ECE 2162 Tomasulo’s Algorithm. Implementing Dynamic Scheduling Tomasulo’s Algorithm –Used in IBM 360/91 (in the 60s) –Tracks when operands are available.
Microprocessor Microarchitecture Dependency and OOO Execution Lynn Choi Dept. Of Computer and Electronics Engineering.
Spring 2003CSE P5481 Reorder Buffer Implementation (Pentium Pro) Hardware data structures retirement register file (RRF) (~ IBM 360/91 physical registers)
CS 211: Computer Architecture Lecture 5 Instruction Level Parallelism and Its Dynamic Exploitation Instructor: M. Lancaster Corresponding to Hennessey.
CPE 731 Advanced Computer Architecture ILP: Part IV – Speculative Execution Dr. Gheith Abandah Adapted from the slides of Prof. David Patterson, University.
1 IBM System 360. Common architecture for a set of machines. Robert Tomasulo worked on a high-end machine, the Model 91 (1967), on which they implemented.
OOO execution © Avi Mendelson, 4/ MAMAS – Computer Architecture Lecture 7 – Out Of Order (OOO) Avi Mendelson Some of the slides were taken.
Ch2. Instruction-Level Parallelism & Its Exploitation 2. Dynamic Scheduling ECE562/468 Advanced Computer Architecture Prof. Honggang Wang ECE Department.
1 Sixth Lecture: Chapter 3: CISC Processors (Tomasulo Scheduling and IBM System 360/91) Please recall:  Multicycle instructions lead to the requirement.
1 Advanced Computer Architecture Dynamic Instruction Level Parallelism Lecture 2.
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.
Computer Architecture: Out-of-Order Execution
Spring 2003CSE P5481 Precise Interrupts Precise interrupts preserve the model that instructions execute in program-generated order, one at a time If an.
Professor Nigel Topham Director, Institute for Computing Systems Architecture School of Informatics Edinburgh University Informatics 3 Computer Architecture.
1 Lecture 7: Speculative Execution and Recovery Branch prediction and speculative execution, precise interrupt, reorder buffer.
Computer Architecture: Out-of-Order Execution II
Dataflow Order Execution  Use data copying and/or hardware register renaming to eliminate WAR and WAW ­register name refers to a temporary value produced.
15-740/ Computer Architecture Lecture 12: Issues in OoO Execution Prof. Onur Mutlu Carnegie Mellon University Fall 2011, 10/7/2011.
Samira Khan University of Virginia Feb 9, 2016 COMPUTER ARCHITECTURE CS 6354 Precise Exception The content and concept of this course are adapted from.
CSE431 L13 SS Execute & Commit.1Irwin, PSU, 2005 CSE 431 Computer Architecture Fall 2005 Lecture 13: SS Backend (Execute, Writeback & Commit) Mary Jane.
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.
IBM System 360. Common architecture for a set of machines
CS 352H: Computer Systems Architecture
Dynamic Scheduling Why go out of style?
Precise Exceptions and Out-of-Order Execution
Computer Architecture Lecture 14: Out-of-Order Execution
Design of Digital Circuits Lecture 18: Out-of-Order Execution
15-740/ Computer Architecture Lecture 21: Superscalar Processing
/ Computer Architecture and Design
Prof. Onur Mutlu Carnegie Mellon University
Prof. Onur Mutlu Carnegie Mellon University Spring 2015, 2/16/2015
Tomasulo’s Algorithm Born of necessity
PowerPC 604 Superscalar Microprocessor
CIS-550 Advanced Computer Architecture Lecture 10: Precise Exceptions
15-740/ Computer Architecture Lecture 7: Pipelining
Out of Order Processors
Dynamic Scheduling and Speculation
Tomasulo Loop Example Loop: LD F0 0 R1 MULTD F4 F0 F2 SD F4 0 R1
CS203 – Advanced Computer Architecture
Microprocessor Microarchitecture Dynamic Pipeline
Prof. Onur Mutlu Carnegie Mellon University Spring 2014, 2/21/2014
Advantages of Dynamic Scheduling
High-level view Out-of-order pipeline
Out of Order Processors
Lecture 8: ILP and Speculation Contd. Chapter 2, Sections 2. 6, 2
Adapted from the slides of Prof
15-740/ Computer Architecture Lecture 5: Precise Exceptions
Lecture 7: Dynamic Scheduling with Tomasulo Algorithm (Section 2.4)
15-740/ Computer Architecture Lecture 14: Runahead Execution
CS5100 Advanced Computer Architecture Dynamic Scheduling
Adapted from the slides of Prof
Prof. Onur Mutlu Carnegie Mellon University Fall 2011, 9/30/2011
15-740/ Computer Architecture Lecture 10: Out-of-Order Execution
Prof. Onur Mutlu Carnegie Mellon University
September 20, 2000 Prof. John Kubiatowicz
Lecture 7 Dynamic Scheduling
Conceptual execution on a processor which exploits ILP
Prof. Onur Mutlu Carnegie Mellon University Spring 2013, 2/15/2013
Prof. Onur Mutlu Carnegie Mellon University Spring 2015, 2/11/2015
Design of Digital Circuits Lecture 16: Out-of-Order Execution
Prof. Onur Mutlu Carnegie Mellon University Spring 2012, 3/19/2012
Presentation transcript:

15-740/ Computer Architecture Lecture 7: Out-of-Order Execution Prof. Onur Mutlu Carnegie Mellon University

Readings General introduction and basic concepts  Smith and Sohi, “The Microarchitecture of Superscalar Processors,” Proc. IEEE, Dec  Hennessy and Patterson, Sections (inclusive). Modern designs  Stark, Brown, Patt, “On pipelining dynamic instruction scheduling logic,” MICRO  Boggs et al., “The microarchitecture of the Pentium 4 processor,” Intel Technology Journal,  Kessler, “The Alpha microprocessor,” IEEE Micro, March-April  Yeager, “The MIPS R10000 Superscalar Microprocessor,” IEEE Micro, April Seminal papers  Patt, Hwu, Shebanow, “HPS, a new microarchitecture: rationale and introduction,” MICRO  Patt et al., “Critical issues regarding HPS, a high performance microarchitecture,” MICRO  Anderson, Sparacio, Tomasulo, “The IBM System/360 Model 91: Machine Philosophy and Instruction Handling,” IBM Journal of R&D, Jan  Tomasulo, “An Efficient Algorithm for Exploiting Multiple Arithmetic Units,” IBM Journal of R&D, Jan

Reviews Due  Smith and Sohi, “The Microarchitecture of Superscalar Processors,” Proc. IEEE, Dec  Stark, Brown, Patt, “On pipelining dynamic instruction scheduling logic,” MICRO  Due September 30 3

Last Time … 4 Exceptions vs. Interrupts Precise Exceptions  What  How Reorder buffer History buffer Future file Checkpointing Register renaming: architectural vs. physical registers Handling out-of-order completion of stores  Store buffer

Today and the Next Related Lectures Exploiting Instruction Level Parallelism (ILP) Out-of-order execution  Tomasulo’s algorithm  Precise exceptions Superscalar processing  Instruction dependency checking/detection Better instruction supply  Control flow handling: branch prediction, predication, etc 5

Summary: Precise Exceptions in Pipelining When the oldest instruction ready-to-be-retired is detected to have caused an exception, the control logic  Recovers architectural state (register file, IP, and memory)  Flushes all younger instructions in the pipeline  Saves IP and registers (as specified by the ISA)  Redirects the fetch engine to the exception handling routine 6

Pipelining Issues: Branch Mispredictions A branch misprediction resembles an “exception”  Except it is not visible to software What about branch misprediction recovery?  Similar to exception handling except can be initiated before the branch is the oldest instruction  All three state recovery methods can be used Difference between exceptions and branch mispredictions? Branch mispredictions more common: need fast recovery 7

Pipelining Issues: Stores Handling out-of-order completion of memory operations  UNDOing a memory write more difficult than UNDOing a register write. Why?  One idea: Keep store address/data in reorder buffer How does a load instruction find its data?  Store/write buffer: Similar to reorder buffer, but used only for store instructions Program-order list of un-committed store operations When store is decoded: Allocate a store buffer entry When store address and data become available: Record in store buffer entry When the store is the oldest instruction in the pipeline: Update the memory address (i.e. cache) with store data 8

Putting It Together: In-Order Pipeline with Future File Decode (D): Access future file, allocate entry in reorder buffer, store buffer, check if instruction can execute, if so dispatch instruction Execute (E): Instructions can complete out-of-order, store-load dependencies determined Completion (R): Write result to reorder/store buffer Retirement/Commit (W): Write result to architectural register file or memory In-order dispatch/execution, out-of-order completion, in-order retirement 9 FD E W EEEEEEEE E EEE EEEEEEEE... Integer add Integer mul FP mul Load/store R

Review: In-order pipeline Problem: A true data dependency stalls dispatch of younger instructions into functional (execution) units Dispatch: Act of sending an instruction to a functional unit 10 FD E W EEEEEEEE E EEE EEEEEEEE... Integer add Integer mul FP mul Cache miss

Can We Do Better? What do the following two pieces of code have in common (with respect to execution in the previous design)? Answer: First ADD stalls the whole pipeline!  ADD cannot dispatch because its source registers unavailable  Later independent instructions cannot get executed How are the above code portions different?  Answer: Load latency is variable (unknown until runtime)  What does this affect? Think compiler vs. microarchitecture 11 IMUL R3  R1, R2 ADD R3  R3, R1 ADD R1  R6, R7 IMUL R3  R6, R8 ADD R7  R3, R9 LD R3  R1 (0) ADD R3  R3, R1 ADD R1  R6, R7 IMUL R3  R6, R8 ADD R7  R3, R9

Preventing Dispatch Stalls Multiple ways of doing it You have already seen THREE:  1. Fine-grained multithreading  2. Value prediction  3. Compile-time instruction scheduling/reordering What are the disadvantages of the above three? Any other way to prevent dispatch stalls?  Actually, you have briefly seen the basic idea before Dataflow: fetch and “fire” an instruction when its inputs are ready  Problem: in-order dispatch (issue, execution)  Solution: out-of-order dispatch (issue, execution) 12

Terminology Issue vs. dispatch Scheduling Execution, completion, retirement/commit Graduation Out-of-order execution versus superscalar processing 13

Out-of-order Execution (Dynamic Scheduling) Idea: Move the dependent instructions out of the way of independent ones  Rest areas for dependent instructions: Reservation stations Monitor the source “values” of each instruction in the resting area When all source “values” of an instruction are available, “fire” (i.e. dispatch) the instruction  Instructions dispatched in dataflow (not control-flow) order Benefit:  Latency tolerance: Allows independent instructions to execute and complete in the presence of a long latency operation 14

In-order vs. Out-of-order Dispatch In order dispatch: Tomasulo + precise exceptions: 16 vs. 12 cycles 15 FD W E EEE R FD E R W F IMUL R3  R1, R2 ADD R3  R3, R1 ADD R1  R6, R7 IMUL R3  R6, R8 ADD R7  R3, R9 D E R W F D E R W F D E R W FD W E EEE R FD STALL E R W FDE EEE E R FD E EEE R W FD E R W WAIT W

Enabling OoO Execution 1. Need to link the consumer of a value to the producer  Register renaming: Associate a “tag” with each data value 2. Need to buffer instructions until they are ready  Insert instruction into reservation stations after renaming 3. Instructions need to keep track of readiness of source values  Broadcast the “tag” when the value is produced  Instructions compare their “source tags” to the broadcast tag  if match, source value becomes ready 4. When all source values of an instruction are ready, dispatch the instruction to functional unit (FU)  What if more instructions become ready than available FUs? 16

Tomasulo’s Algorithm OoO with register renaming invented by Robert Tomasulo  Used in IBM 360/91 Floating Point Units  Read: Tomasulo, “An Efficient Algorithm for Exploiting Multiple Arithmetic Units,” IBM Journal of R&D, Jan Variants of it used in most high-performance processors  Most notably Pentium Pro, Pentium M, Intel Core(2)  Alpha 21264, MIPS R10000, IBM POWER5 What is the major difference today?  Precise exceptions: IBM 360/91 did NOT have this  Patt, Hwu, Shebanow, “HPS, a new microarchitecture: rationale and introduction,” MICRO  Patt et al., “Critical issues regarding HPS, a high performance microarchitecture,” MICRO

Two Humps in a Modern Pipeline Hump 1: Reservation stations (scheduling window) Hump 2: Reordering (reorder buffer, aka instruction window or active window) 18 FD E W EEEEEEEE E EEE EEEEEEEE... Integer add Integer mul FP mul Load/store REORDERREORDER SCHEDULESCHEDULE TAG and VALUE Broadcast Bus in orderout of orderin order

General Organization of an OOO Processor Smith and Sohi, “The Microarchitecture of Superscalar Processors,” Proc. IEEE, Dec

Tomasulo’s Machine: IBM 360/91 20 FP FU from memory load buffers from instruction unit FP registers store buffers to memory operation bus reservation stations Common data bus

Register Renaming Output and anti dependencies are not true dependencies  WHY? The same register refers to values that have nothing to do with each other  They exist because not enough register ID’s (i.e. names) in the ISA The register ID is renamed to the reservation station entry that will hold the register’s value  Register ID  RS entry ID  Architectural register ID  Physical register ID  After renaming, RS entry ID used to refer to the register This eliminates anti- and output- dependencies  Approximates the performance effect of a large number of registers even though ISA has a small number 21

Register rename table (register alias table) Tomasulo’s Algorithm: Renaming 22 R0 R1 R2 R3 tagvaluevalid? R4 R5 R6 R7 R8 R

Tomasulo’s Algorithm If reservation station available before renaming  Instruction + renamed operands (source value/tag) inserted into the reservation station  Only rename if reservation station is available Else stall While in reservation station, each instruction:  Watches common data bus (CDB) for tag of its sources  When tag seen, grab value for the source and keep it in the reservation station  When both operands available, instruction ready to be dispatched Dispatch instruction to the Functional Unit when instruction is ready After instruction finishes in the Functional Unit  Arbitrate for CDB  Put tagged value onto CDB (tag broadcast)  Register file is connected to the CDB Register contains a tag indicating the latest writer to the register If the tag in the register file matches the broadcast tag, write broadcast value into register (and set valid bit)  Reclaim rename tag no valid copy of tag in system! 23

An Exercise Assume ADD (4 cycle execute), MUL (6 cycle execute) Assume one adder and one multiplier How many cycles  in a non-pipelined machine  in an in-order-dispatch pipelined machine with future file and reorder buffer  in an out-of-order dispatch pipelined machine with future file and reorder buffer 24 MUL R3  R1, R2 ADD R5  R3, R4 ADD R7  R2, R6 ADD R10  R8, R9 MUL R11  R7, R10 ADD R5  R5, R11 FD E R W