What is computer architecture? – Why should ... Introductory course to computer
architecture. (Not for .... Taught intro/advanced digital design courses. – Worked ...
Computer Architecture I Lecture 1: Welcome and Introduc7on Instructor: David Black-‐Schaffer TAs: Muneeb Khan and Andreas Sembrant
Today, Part 1 • About the Course
– What is computer architecture? – Why should you care?
• Ge-ng to Know One Another • Administra7ve Details – Registra7on – Labs – Grading – Schedule
About the Course • Introductory course to computer architecture (Not for IT/DV students; they take the 7.5hp one) • How a computer is built – Logic -‐> circuits -‐> datapath
• How a computer is controlled
– Basic opera7ons -‐> microarchitecture -‐> instruc7ons (ISA) -‐> assembly
• Contents (in-‐order) – – – – – – –
MIPS assembly Logic design (adders, ALU, control) Performance analysis Data path and pipelining Input/Output Caches Virtual memory
AXer This Course, You Should… • Understand the func7onality and opera7on of the basic elements of a computer system including processor, memory and input/output • Reason about first-‐order performance • Understand the hardware/soEware interface • Understand and be able to write programs in assembly language
Credits • Slides and material adapted from – Karl Marklund – Jus7n Pearson – Stefanos Kaxiras (Slides originally developed by Profs. Hill, Falsafi, Marculescu, Paaerson, Rutenbar and Vijaykumar of CMU, Purdue, UCB, UW, Copyright 2003)
– Tanenbaum, Structured Computer Organiza7on, FiXh Edi7on, (c) 2006 Pearson Educa7on, Inc.
Ques7ons You Should Be Asking • Why MIPS? (None of us has a MIPS computer…) – It’s clean and easy to understand – x86 is not
• Why should I study computer architecture?
Why Should Study Computer Architecture? • Press release from last week…
• ARM introduced the “big.LITTLE” processor • Huh?
From The Register
Backup: Who Knows What ARM is? • Q: How many of you have an ARM computer? – A: All of you
A R M
From The Economist
What Exactly Are They Doing? • What is big.LITTLE? • Big cores for high performance • LiOle cores for low power
BIG
LITTLE
From ARM
Why is ARM Doing This? • Power Efficiency = calcula7ons/energy !"#$%&
BIG LITTLE !$%'"%()*+$&
The Details LITTLE
LITTLE
BIG
• Simple ( fewer func7onal units) • Short pipeline ( slower clock) BIG • Complex • More func7onal units • Out of order execu7on • Long pipeline • Faster clock • Bigger branch penalty
From ARM
Why Can They Do This? • Scaling: We can build more transistors than we know how to use 12/2005
A whole 1995 processor fits in this much of a 2005 processor.
6/2004
12/2002
6/2001
12/1999
6/1998 12/1996 6/1995
Why Should They Do This? • Can’t increase power: Need to improve power efficiency
10,000,000 1,000,000
Transistors per chip
100,000
Number of transistors (thousands) Relative performance Clock speed (MHz) Power type (W) Number of cores/chip
10,000 1,000
Power Wall
100 10 1 0 1985
1990
1995 2000 Year of introduction
2005
2010 From Fuller 2011
What are Others Doing? • GPUs: Lots and lots of very small cores Nvidia Fermi
AMD Barts
This is Computer Architecture vs.
• • • •
vs.
Understanding performance and efficiency Design tradeoffs in execu7ng instruc7ons Building the hardware Making it programmable
So, Why Should You Care? • Computers are evolving very fast • Need to understand how they work to understand why they are changing • Computer Architecture is cri7cal to performance and efficiency • Not just about designing hardware: – How does big.LITTLE affect soXware? – How easy is it to program a GPU?
Ques7ons?
GETTING TO KNOW ONE ANOTHER
About Me • I’m American (as if you haven’t no7ced…)
– From a different system (e.g., graded homework) – May speak too quickly – Tell me if I’m doing something wrong (and how to make it beOer)
• Background
– Power-‐efficient computer architecture – Taught intro/advanced digital design courses – Worked in industry (Apple) on CPU/GPU programming systems (OpenCL) – Speak/understand Swedish preay well
About You • What program(s) are you in? • What year(s) are you in? • Why are you taking this course? • Will you do the assigned reading before class? (Would in-‐class short quizzes help?)
• Would you do suggested prac7ce problems?
About Your Background • How many have taken an impera7ve programming course?
– Java, C, C++, C#, FORTRAN (I hope not…), MATLAB – Not func7onal languages such as ML or Erlang
• How many have seen digital design?
– AND/OR gates, mux/demux, Karnaugh maps – Flipflos, finite state machines
• How many care about the speed of your code?
Prerequisites • Basic programming (programmeringsteknik II) for (int i=0; i