EE382A Advanced Processor Architecture Christos Kozyrakis & John Shen Department of Electrical Engineering

Transcription

EE382A Advanced Processor Architecture Christos Kozyrakis & John Shen Department of Electrical Engineering
EE382A
Advanced Processor Architecture
Christos Kozyrakis & John Shen
Department of Electrical Engineering
Stanford University
http://eeclass.stanford.edu/ee382a
EE382A – Spring 2009
Lecture 1 - 1
Christos Kozyrakis
A Few Words About Christos
•
VIRAM media-processor
Associate professor of EE & CS
– Ph.D. from U.C. Berkeley
IRAM test chip
– B.Sc. from University of Crete
•
Current research
– Parallel systems (scheduling, TM)
ATLAS ATM Switch Telegraphos DSM
switch
– Energy efficient data-centers
– Security systems
– More info at http://csl.stanford.edu/~christos
•
Systems I have worked on
– Networking chips: ATLAS & Telegraphos switches
– Processor chips: VIRAM media-processor
•
Raksha Security
System
ATLAS TM System
125 million transistors, 9.6 billion ops/sec
– FPGA prototypes: Raksha & Atlas
– Server prototypes: CoolSort
EE282 – Autumn 2009
Lecture 1 - 2
Christos Kozyrakis
A Few Words About John
• Head of Nokia Research Center in Palo Alto
– Ph.D. from USC
– B.Sc. from University of Michigan
• Prior to Nokia
– Director of the Microarchitecture Research Lab (MRL) at Intel
• Superscalar architecture, speculative multithreading and memory prefetching,
3D die-stacking technology, and heterogeneous multi-sequencer architectures
– Professor of Computer Engineering at CMU
• Author of the main textbook for EE382a
EE282 – Autumn 2009
Lecture 1 - 3
Christos Kozyrakis
EE382a Team
• Instructors: Christos Kozyrakis & John Shen
• Teaching assistant: David Signiorelli
• Guest lectures: Ben Lee + one more
• Administrative support: Teresa Lynn
• Contact info & office hours: up-to-date info on class webpage
– http://eeclass.stanford.edu/ee382a
– Check frequently
EE282 – Autumn 2009
Lecture 1 - 4
Christos Kozyrakis
You…
• Class participation is EXTREMELY important in EE382a
• Your goals
– Ask questions
– Offer answers
– Suggest discussion topics
– Make us learn your name • Will take and post photos of everyone next week
EE282 – Autumn 2009
Lecture 1 - 5
Christos Kozyrakis
Class Basics
• Lectures: Mo & We, 11am-12.15pm, Hewlett 101
– There will also be some discussion sessions on Fridays
• Friday 2-3pm, Gates Hall 498
• Discussion sessions will be explicitly announced
– The class is not available on SCPD this quarter
• Web page: http://eeclass.stanford.edu/ee382a
– Announcements, handouts, office hours, latest schedule, bulletin board
– Check frequently
– Signup with webpage for on-line access to grades
• We will let you know when registration is open…
EE282 – Autumn 2009
Lecture 1 - 6
Christos Kozyrakis
The Bulletin Board
• The preferred way to ask class-related questions
– We promise to check & answer often, especially close to deadlines
– We encourage you to contribute to answers & have on-line discussions on
class material
• The bulletin rules
– Before posting a new question
• Check if question has already been asked or even answered
– Use the search capabilities of your web browser
• Check the FAQ page for the assignment
– Choose an appropriate subject for your question
• E.g. “HW2, problem 3, definition of memory latency”
• For questions not appropriate for the public: send us an email
EE282 – Autumn 2009
Lecture 1 - 7
Christos Kozyrakis
EE382a Topics
• Pipelining overview and analysis
• Architectures for instruction level parallelism
– Supersalar: instruction fetch, branch prediction, dynamic scheduling &
register renaming, memory disambiguation
– VLIW and dynamic binary translation
• Architecture for task and data level paralellism
– Multithreading, multi-core architectures, vector processing, GPUs, tradeoffs
in designing multi-core chips, memory hierarchy for multi-core
• Cross-cutting issues
– Checkpointed processors, phase-change memory, …
EE282 – Autumn 2009
Lecture 1 - 8
Christos Kozyrakis
Textbooks and Papers
• Textbooks
– Required: "Modern Processor Design: Fundamentals of Superscalar
Processors", J.P. Shen and M. Lipasti, 1st edition, McGraw-Hill
• Do not use/buy the beta edition!
– Reference: “Computer Architecture: A Quantitative Approach”, J. Hennessy
& D. Patterson, 4th edition, Morgan Kaufmann
– Reference: “Computer Organization and Design: The Hardware/Software
Interface”, D. Patterson & J. Hennessy, 4th edition, Morgan Kaufmann
• Papers (check handouts link on the webpage)
– A few required papers
• These papers are included in the exam materials
• Have to submit a 1-page paper summary by the next lecture
– Several optional papers
• Further in-depth information, references for projects, …
EE282 – Autumn 2009
Lecture 1 - 9
Christos Kozyrakis
Assignments, Exams, and Class Load
• Single exam and 1+2 homework assignments
• Large research project
–
–
–
–
On an open question in computer architecture
Work in groups of up to 3 students
See topic suggestions on-line or suggest your own project
Milestones: proposal, halfway review/status, presentation, paper…
• Grade breakdown (tentative)
– Exam 40%, Project 40%, HW + summaries + participation 20%
– All deadlines are final, no extensions, no exceptions
– Remember the honor code (more info on web page)
• Warnings
– This will be a loaded class!!
– This class will be as good as your participation…
EE282 – Autumn 2009
Lecture 1 - 10
Christos Kozyrakis
Prerequisites and Registration
•
Prerequisites: EE108B or equivalent
– Expected to know: simple pipelines, basic caching, virtual memory, main memory
•
EE282 is not a required prerequisite
•
Class registration:
– Limited to 30 students; all students must receive instructor’s approval
•
Homework 1: prerequisite assessment
– Due on in-class on Monday
– Work on it on your own
– Will send you email about your registration by Wednesday
EE282 – Autumn 2009
Lecture 1 - 11
Christos Kozyrakis
Should I Take EE382A?
• Good reason to take EE382A
– Prepare for research in computer architecture
– Broaden your Ph.D. research perspective
– Become a digital systems architect in industry
– Honest curiosity (how do Intel/AMD/… processors work?)
– Want to take a class with a research project
• Not a good reason to take EE382A
– Prepare for quals, comps, etc…
– Need another course for your degree program
• “EE382A is supposed to be an easy A, right?”
– Learn about digital circuits and CAD tools
EE282 – Autumn 2009
Lecture 1 - 12
Christos Kozyrakis
On Reading & Summarizing Papers
•
Look for the following
– The issue or problem addressed by the paper
– The original contributions (real or claimed, you have to check)
– Critique: what are the major strengths and weaknesses of the papers?
•
Look at the claims and assumptions, the methodology, the analysis of data, and the presentation style
– Future work: what are the natural extensions or improvements to this work?
•
Or, can we apply a similar methodology to other problems of interest
•
Do not submit the paper abstract as your summary :)
•
Helpful tips
– Read the abstract, introduction, and conclusions sections first.
– Read the rest of the paper twice
•
First a quick pass to get rough idea of details, then a detailed reading
– Underline/highlight the important parts of the paper
– Keep notes on the paper margins about comments or questions
•
Important insights, questionable claims, relevance to other topics, ways to improve some technique etc.
– Look up references that seem to be important or missing
•
In some cases, you may also want to check who and how references this paper
EE282 – Autumn 2009
Lecture 1 - 13
Christos Kozyrakis
EE382A Lecture 1:
Introduction to Advanced Processor Architecture
Department of Electrical Engineering
Stanford University
http://eeclass.stanford.edu/ee382a
EE382A – Spring 2009
Lecture 1 - 14
Christos Kozyrakis
Historical Perspectives on Processors
• The Decade of the 1970’s: “Birth of Microprocessors”
– Programmable Controller
– Single-Chip Microprocessors
– Personal Computers (PC)
• The Decade of the 1980’s: “Quantitative Architecture”
– Instruction Pipelining
– Fast Cache Memories
– Compiler Considerations
– Workstations
• The Decade of the 1990’s: “Instruction-Level Parallelism”
– Superscalar,Speculative Microarchitectures
– Aggressive Compiler Optimizations
– Low-Cost Desktop Supercomputing
EE282 – Autumn 2009
Lecture 1 - 15
Christos Kozyrakis
Performance Growth
• Doubling every 18 months (1982-2000):
– total of 3,200X
– Cars travel at 176,000 MPH; get 64,000 miles/gal.
– Air travel: L.A. to N.Y. in 5.5 seconds (MACH 3200)
– Wheat yield: 320,000 bushels per acre
• Doubling every 24 months (1971-2001):
– total of 36,000X
– Cars travel at 2,400,000 MPH; get 600,000 miles/gal.
– Air travel: L.A. to N.Y. in 0.5 seconds (MACH 36,000)
– Wheat yield: 3,600,000 bushels per acre
Unmatched by any other industry!!
[John Crawford, Intel, 1993]
EE282 – Autumn 2009
Lecture 1 - 16
Christos Kozyrakis
Convergence of Key Enabling Technologies
•
CMOS VLSI:
– Submicron feature sizes: 0.3u 0.25u 0.18u 0.13u 90n 65n 45nm…
– Metal layers: 3 4 5 6 7 (copper) 12 …
– Power supply voltage: 5V 3.3V 2.4V 1.8V 1.3V 1.1V …
•
CAD Tools:
– Interconnect simulation and critical path analysis
– Clock signal propagation analysis
– Process simulation and yield analysis/learning
•
Architecture & Microarchitecture:
– Superpipelined and superscalar machines
– Speculative and dynamic microarchitectures
– Simulation tools and emulation systems
•
Compilers:
– Extraction of instruction-level parallelism
– Aggressive and speculative code scheduling
– Object code translation and optimization
EE282 – Autumn 2009
Lecture 1 - 17
Christos Kozyrakis
Evolution of Single-Chip Processors
1970’s
1980’s
1990’s
Transistor Count
10K-100K
100K-1M
1M-100M
0.5-1B
Clock Frequency
0.2-2MHz
2-20MHz
20M-1GHz
1-5GHz
Instruction/Cycle
< 0.1
0.1-0.9
0.9- 2.0
10
MIPS or MFLOPS
< 0.2
0.2-20
20-2,000
100,000
Watt
<2
<10
<40
1-100+ (?)
CPUs/chip`
1
1
1
4-10
EE282 – Autumn 2009
Lecture 1 - 18
2010
Christos Kozyrakis
Aspects of Computer Architecture
• ARCHITECTURE
(instruction set architecture)
– programmer/compiler view - “Functional appearance to its immediate user/
system programmer”
• IMPLEMENTATION
(microarchitecture)
– processor designer view - “Logical structure or organization that
implements the instruction set”
•
DESIGN
(chip realization)
– chip/system designer view - “Physical structure that embodies the
implementation”
EE282 – Autumn 2009
Lecture 1 - 19
Christos Kozyrakis
Our Objective for this Quarter
• The “What’s-How’s-Why’s” of Processor Design
1. Knowledge
(“what’s”)
- Technology
- Techniques
2. Design Skills
(“how’s”)
- Critical Issues
- Trade-off Intuitions
3. Understanding
(“why’s”)
- Deeper Insights
- Fundamental Principles
EE282 – Autumn 2009
Lecture 1 - 20
Christos Kozyrakis
Basic Tools and Principles for Architects
EE282 – Autumn 2009
Lecture 1 - 21
Christos Kozyrakis
Amdahl’s Law
• Speedup= timewithout enhancement / timewith enhancement
• Suppose an enhancement speeds up a fraction f of a task by a
factor of S
timenew = timeold·( (1-f) + f/S )
Soverall = 1 / ( (1-f) + f/S )
timeold
(1 - f)
f
timenew
(1 - f)
EE282 – Autumn 2009
f/S
Lecture 1 - 22
Christos Kozyrakis
Amdahl’s Law (continued)
• Real life analogy: After driving through 60 minutes of traffic jam, how
much time can you make up by speeding in the final mile?
• Applications in Computer Architecture
– RISC - Reduced Instruction Set Computer
– Optimized to execute frequently used instructions quickly
– Infrequently used instructions take longer, or even emulated with SW
We should concentrate efforts on improving frequently occurring events or
frequently used mechanisms
EE282 – Autumn 2009
Lecture 1 - 23
Christos Kozyrakis
Pipelining
•
Latency : Elapsed time from start to completion of a particular task
•
Throughput : How many tasks can be completed per unit of time
•
A pipeline is like an assembly line!
stage1
stage2
stage3
stage4
stage5
start
•
finish
Pipelining only improves throughput
– Latency: each job still takes 5 cycles to complete
– Throughput: 1 job per cycle if pipelined vs. 1 job per 5 cycles if not pipelined
EE282 – Autumn 2009
Lecture 1 - 24
Christos Kozyrakis
Pipelining (continued)
• Real life analogy: Henry Ford’s automobile assembly line.
• Example in computer architecture:
– 5-stage Instruction Execution Pipeline
– Fetch-Decode-Execute-Memory-Writeback
Stages
Fetch
Decode
Execute
Memory
Writeback
EE282 – Autumn 2009
time t0 t1 t2
I1
I2
I1
I3
I2
I1
Lecture 1 - 25
t3
t4
t5
t6
t7
....
I4
I3
I2
I1
I5
I4
I3
I2
I1
I5
I4
I3
I2
I5
I4
I3
I5
I4
I5
Christos Kozyrakis
Parallel Processing
• Parallelism - the amount of independent sub-tasks available
• If sub-tasks are independent, the order that they are carried out does
not matter
• Thus by executing the independent subtasks concurrently, we can
finish the entire task faster
Improve Speedup!!!
EE282 – Autumn 2009
Lecture 1 - 26
Christos Kozyrakis
Parallel Processing
• Real life analogy: collaboration on problem sets
(although not always encouraged)
• Examples in computer architecture:
– Parallel computers
– Superscalar processors
– Multi-core processors
EE282 – Autumn 2009
Lecture 1 - 27
Christos Kozyrakis
Our-of-order Execution
• Specification (or Program) Order vs Dataflow Order
• Dataflow: Data-driven scheduling of events
– The start of an event should be enabled by the availability of its required
input (data dependency)
– The completion of an event will produce an output that will enable the start
a
of other events
b
*2
+
x = a + b;
y = b * 2
z = (x-y) * (x+y)
x
y
-
+
*
EE282 – Autumn 2009
Lecture 1 - 28
Christos Kozyrakis
Our-of-order Execution
• Real life analogy:
– A tip on taking tests: work on the questions you know first
• Examples in computer architecture
– Most modern microprocessors (Intel P4, Opteron etc) all schedule
instruction execution in dataflow order
EE282 – Autumn 2009
Lecture 1 - 29
Christos Kozyrakis
Work and Critical Path
• Work
T1 - time to complete a computation on a
sequential system
• Critical Path
T - time to complete the same computation
on an infinitely-parallel system
x = a + b;
y = b * 2
z =(x-y) * (x+y)
a
• Average Parallelism
b
*2
+
Pavg = T1 / T
x
y
• For a p wide system
-
+
Tp max{ T1/p, T }
*
Pavg>>p Tp T1/p
EE282 – Autumn 2009
Lecture 1 - 30
Christos Kozyrakis
Work and Critical Path
• Real life analogy: undergraduate degree requirements
– Work = unit requirement
– Critical Path to graduation is determined by course sequences and their
prerequisites
• Added constraints: classes are only available on specific quarters…
• Applications to computer architecture
– Parallel job scheduling
– Given a collection of inter-dependent task:
• How much resources should be allocated?
• Which sequence of tasks should be given priority?
EE282 – Autumn 2009
Lecture 1 - 31
Christos Kozyrakis
Speculation
Is it possible to parallelize the critical path?
i.e. violate data dependence?
• Guess the outcome of an operation from its inputs without performing
the operation
• Even better, guess the outcome of an operation before the inputs to
the operation are even known
• Speculation techniques must also include mechanisms for
1. Checking if the guesses are correct
2. Undoing “speculative execution” after wrong guesses
EE282 – Autumn 2009
Lecture 1 - 32
Christos Kozyrakis
Speculation (continued)
• Real life analogy:
– Another tip on taking tests: You can often guess what is going to be on an
exam by looking at lectures and HWs.
• Examples in computer architecture
– Circuit-level speculations: Carry Select Adder
– Architectural-level speculations
• Branch target predictions
• Load value predictions
• Speculative loop execution
EE282 – Autumn 2009
Lecture 1 - 33
Christos Kozyrakis
Locality Principle
• One’s recent past is a very good indication of his near future
– Temporal Locality: If you just did something, it is very likely that you will do
the same thing again soon
– Spatial Locality: If you just did something, it is very likely you will do some
thing related or similar next
• Locality == Patterns == Predictability
– Converse:
• Anti-locality : If you haven’t done something for a very long time, it is very likely
you won’t do it in the near future either
EE282 – Autumn 2009
Lecture 1 - 34
Christos Kozyrakis
Locality Principle (continued)
• Real life analogy:
– spatial locality - where you choose to sit in a room
– temporal locality - will you be here again next week?
• Examples in computer architecture:
– Execution of program loops
• Spatial locality - after you execute an instruction, with very good probability, you
will execute the next instruction
• Temporal locality - you are very likely to repeat the same instructions many
times
EE282 – Autumn 2009
Lecture 1 - 35
Christos Kozyrakis
Memoization
• If something is expensive to compute, you might want to remember the
answer for a while, just in case you will need the same answer again
Why does memoization work??
• Real life analogy:
– Keeping a list of frequently used phone numbers by your telephone
• Examples in computer architecture
– ?
EE282 – Autumn 2009
Lecture 1 - 36
Christos Kozyrakis
Amortization
• Overhead cost : one-time cost to set something up
• Per-unit cost : cost for per unit of operation
total cost = overhead + per-unit cost x N
• It is often okay to have a high overhead cost if the cost can be
distributed over a large number of units
low the average cost
average cost = total cost / N
= ( overhead / N ) + per-unit cost
EE282 – Autumn 2009
Lecture 1 - 37
Christos Kozyrakis
Amortization (continued)
• Real life analogy: economy of scale
– Why is pasta sauce cheaper when bought by the gallon?
• Examples in computer architecture:
Cache Access Latency
Tmiss= 50 cycles
Thit = 1 cycle
If on the average a cache line is reused n times before being ejected
Tave = ( Tmiss+ (n-1)Thit ) / n Tmiss / n + Thit
EE282 – Autumn 2009
n = 50
Tavg 2
n=2
Tavg 25
Lecture 1 - 38
Christos Kozyrakis
Basic Equations and Metrics
• Performance
– CPUtime = Instruction Count * CPI * Clock Cycle Tie
– AMAT = Hit Time + Miss Rate * Miss Penalty
– Amdahl’s law, amortization
• Cost
– Processor cost = f(die area4)
• Power Consumption
– Power = C*Vdd2*F + Vdd*Ishortcircuit*F + Vdd*Ileakage
– Energy = Power * Time
– E*D, E*D2, ED3, …
• Fault tolerance: MTTF, MTTR, …
• Design complexity: ?
EE282 – Autumn 2009
Lecture 1 - 39
Christos Kozyrakis
Ready to Learn More?
EE282 – Autumn 2009
Lecture 1 - 40
Christos Kozyrakis