Chapter 4 Predication CSE 820. Michigan State University Computer Science and Engineering Go over midterm exam.

Slides:



Advertisements
Similar presentations
ILP: Software Approaches
Advertisements

IMPACT Second Generation EPIC Architecture Wen-mei Hwu IMPACT Second Generation EPIC Architecture Wen-mei Hwu Department of Electrical and Computer Engineering.
Anshul Kumar, CSE IITD CSL718 : VLIW - Software Driven ILP Hardware Support for Exposing ILP at Compile Time 3rd Apr, 2006.
Speculative ExecutionCS510 Computer ArchitecturesLecture Lecture 11 Trace Scheduling, Conditional Execution, Speculation, Limits of ILP.
ENGS 116 Lecture 111 ILP: Software Approaches 2 Vincent H. Berk October 14 th Reading for monday: 3.10 – 3.15, Reading for today: 4.2 – 4.6.
A scheme to overcome data hazards
Loop Unrolling & Predication CSE 820. Michigan State University Computer Science and Engineering Software Pipelining With software pipelining a reorganized.
FTC.W99 1 Advanced Pipelining and Instruction Level Parallelism (ILP) ILP: Overlap execution of unrelated instructions gcc 17% control transfer –5 instructions.
CSE 490/590, Spring 2011 CSE 490/590 Computer Architecture VLIW Steve Ko Computer Sciences and Engineering University at Buffalo.
1 COMP 740: Computer Architecture and Implementation Montek Singh Tue, Feb 24, 2009 Topic: Instruction-Level Parallelism IV (Software Approaches/Compiler.
EEL Advanced Pipelining and Instruction Level Parallelism Lotzi Bölöni.
Rung-Bin Lin Chapter 4: Exploiting Instruction-Level Parallelism with Software Approaches4-1 Chapter 4 Exploiting Instruction-Level Parallelism with Software.
Chapter 4 Advanced Pipelining and Intruction-Level Parallelism Computer Architecture A Quantitative Approach John L Hennessy & David A Patterson 2 nd Edition,
Static Scheduling for ILP Professor Alvin R. Lebeck Computer Science 220 / ECE 252 Fall 2008.
Lecture Objectives: 1)Define pipelining 2)Calculate the speedup achieved by pipelining for a given number of instructions. 3)Define how pipelining improves.
2.3) Example of program execution 1. instruction  B25 8 Op-code B means to change the value of the program counter if the contents of the indicated register.
Instruction Level Parallelism (ILP) Colin Stevens.
Virtual Memory Operating Systems Lecture # 8. Multi-tasking OS OS Excel MS Word Outlook 0x0000 0x7000 0x4000 0x8000 0x9000.
Microprocessors Introduction to ia64 Architecture Jan 31st, 2002 General Principles.
Tomasulo’s Approach and Hardware Based Speculation
NYU DARPA DIS kick-off September 24, Comparing IA-64 and HPL-PD NYU.
7/2/ _23 1 Pipelining ECE-445 Computer Organization Dr. Ron Hayne Electrical and Computer Engineering.
1 Lecture 7: Static ILP and branch prediction Topics: static speculation and branch prediction (Appendix G, Section 2.3)
Pipelining. Overview Pipelining is widely used in modern processors. Pipelining improves system performance in terms of throughput. Pipelined organization.
Just-In-Time Java Compilation for the Itanium Processor Tatiana Shpeisman Guei-Yuan Lueh Ali-Reza Adl-Tabatabai Intel Labs.
IA-64 ISA A Summary JinLin Yang Phil Varner Shuoqi Li.
IT253: Computer Organization Lecture 4: Instruction Set Architecture Tonga Institute of Higher Education.
Anshul Kumar, CSE IITD CS718 : VLIW - Software Driven ILP Example Architectures 6th Apr, 2006.
Hardware Support for Compiler Speculation
Spring 2003CSE P5481 VLIW Processors VLIW (“very long instruction word”) processors instructions are scheduled by the compiler a fixed number of operations.
IA-64 Architecture RISC designed to cooperate with the compiler in order to achieve as much ILP as possible 128 GPRs, 128 FPRs 64 predicate registers of.
CS 211: Computer Architecture Lecture 6 Module 2 Exploiting Instruction Level Parallelism with Software Approaches Instructor: Morris Lancaster.
Limits of Instruction-Level Parallelism Presentation by: Robert Duckles CSE 520 Paper being presented: Limits of Instruction-Level Parallelism David W.
Computer Architecture 2 nd year (computer and Information Sc.)
Represents different voltage levels High: 5 Volts Low: 0 Volts At this raw level a digital computer is instructed to carry out instructions.
Chapter 6 Pipelined CPU Design. Spring 2005 ELEC 5200/6200 From Patterson/Hennessey Slides Pipelined operation – laundry analogy Text Fig. 6.1.
1 Lecture 12: Advanced Static ILP Topics: parallel loops, software speculation (Sections )
Lecture 1: Introduction Instruction Level Parallelism & Processor Architectures.
Unit II Intel IA-64 and Itanium Processor By N.R.Rejin Paul Lecturer/VIT/CSE CS2354 Advanced Computer Architecture.
IA64 Complier Optimizations Alex Bobrek Jonathan Bradbury.
Chapter Six.
Instruction Level Parallelism
Computer Architecture Principles Dr. Mike Frank
Single Clock Datapath With Control
Henk Corporaal TUEindhoven 2009
Lecture: Static ILP Topics: predication, speculation (Sections C.5, 3.2)
The fetch-execute cycle
CS 704 Advanced Computer Architecture
Lecture: Static ILP, Branch Prediction
CS 704 Advanced Computer Architecture
Yingmin Li Ting Yan Qi Zhao
Topic 6 LC-3.
Computer Architecture
Lecture: Static ILP Topics: predication, speculation (Sections C.5, 3.2)
Lecture: Static ILP Topics: predication, speculation (Sections C.5, 3.2)
Computer Science 210 Computer Organization
Chapter Six.
Chapter Six.
Henk Corporaal TUEindhoven 2011
Control unit extension for data hazards
Computer Science 210 Computer Organization
Sampoorani, Sivakumar and Joshua
Instruction Level Parallelism (ILP)
Control unit extension for data hazards
CSC3050 – Computer Architecture
How to improve (decrease) CPI
Computer Concept and Practice
Control unit extension for data hazards
Loop-Level Parallelism
IA-64 Vincent D. Capaccio.
Presentation transcript:

Chapter 4 Predication CSE 820

Michigan State University Computer Science and Engineering Go over midterm exam

Michigan State University Computer Science and Engineering Review Predicated instructions have a predicate which determines if the instruction will complete execution or become a NOP

Michigan State University Computer Science and Engineering Example if (A==0) A=B; else A= A+4; LDR1,0(R3);load A BNEZR1,L1;test A LDR1,0(R2);then clause JL2;skip else L1:DADDIR1,R1,#4 ;else clause L2:SDR1,0(R3);store A

Michigan State University Computer Science and Engineering Hoist Load if (A==0) A=B; else A= A+4; LDR1,0(R3);load A LDR14,0(R2) ;speculative load B BEQZR1,L3;other branch of if DADDIR14,R1,#4 ;else clause L3:SDR14,0(R3);store A What if speculative load raises an exception?

Michigan State University Computer Science and Engineering Guard if (A==0) A=B; else A= A+4; LDR1,0(R3);load A sLDR14,0(R2);speculative load BNEZR1,L1;test A SPECCK0(R2);speculative check JL2;skip else L1:DADDIR14,R1,#4 ;else clause L2:SDR14,0(R3);store A sLD does not raise certain exceptions; leaves them for SPECCK (IA-64).

Michigan State University Computer Science and Engineering Other exception techniques Poison bit: –applied to destination register. –set upon exception –raise exception upon access to poisoned register.

Michigan State University Computer Science and Engineering Hoist Load above Store If memory addresses are known, a load can be hoisted above a store. If not, … add a special instruction to check addresses before the loaded value is used. (It is similar to SPECCK shown earlier: IA-64)

Michigan State University Computer Science and Engineering Speculation: soft vs. hard must be able to disambiguate memory (to hoist loads past stores), but at compile time information is insufficient hardware works best when control flow is unpredictable and when hardware branch prediction is superior exception handling is easier in hardware trace techniques require compensation code compilers see further for better scheduling