ECE 15B Computer Organization Spring 2010 Dmitri

Download Report

Transcript ECE 15B Computer Organization Spring 2010 Dmitri

ECE 15B Computer Organization
Spring 2010
Dmitri Strukov
Lecture 1: Introduction
Partially adapted from Computer Organization and Design, 4th edition, Patterson and Hennessy, and classes taught by
Patterson at Berkeley, Ryan Kastner at UCSB and Mary Jane Irwin at Penn State
Course Logistics : Instructor
Dmitri Strukov
[email protected]
Office :
Office hours:
HFH 5153
Tuesday – Thursday
6:45 – 7:45 pm (right after
class) or by appointment
ECE 15B Spring 2010
My Own Background...
MMT Simulator
• Features
–
–
–
–
Assembler & Debug
Cycle-accurate simulation
GUI and Script support
Detailed statistics including
runtime conflicts
• Implementation
– C - 35 K lines of code
– TCL - 7 K lines of code
Memory latency reduction with fine-grain migrating threads in NUMA shared-memory multiprocessors” (with M. Dorojevets)
in: Proc. PDCS’02, Cambridge, MA, Nov. 2002, pp. 762-767
ECE 15B Spring 2010
Course Logistics : TAs
Vivek Nandakumar
[email protected]
Office hours: Phelps 1435, Tuesday 2:00-3:00 pm (tentative)
Discussion session: Phelps 1425, Monday 5:00-5:50 pm
Isai Michel
[email protected]
Office hours: Phelps 1435, Wednesday 2:00-3:00 pm
Discussion session: Phelps 1445, Friday 9:00-9:50 pm
ECE 15B Spring 2010
Course Logistics: Material
• URL
– Go to my web page www.ece.ucsb.edu/~dimastrukov/
and click on ECE 15B link at the bottom
• Software: MIPS-32bit simulator (“SPIM”)
– Both software and documentation available online for
free
– Can be installed on any common platform
– See instructions on web for MACs
– Try to install that software early
ECE 15B Spring 2010
Course Logistics: Textbooks
• Required: Computer Organization and Design: The
Hardware/Software Interface, Fourth Edition, Patterson
and Hennessy (COD). The third edition is also accepted.
• Recommended: MIPS Assembly Language Programming,
Robert L. Britton, 2003.
• Additional (not required): The C Programming Language,
Kernighan and Ritchie (K&R), 2nd edition
• C language manual webpage from Stanford University
• UCSB book store should have them all
ECE 15B Spring 2010
Course Logistics: Grading
• Homework Assignments (excluding HW #0):
10%
• Projects:
20%
• Quiz 1:
15%
• Quiz 2:
15%
• Final:
40%
• Class Participation:
5%
– Attendance & discussion in class
ECE 15B Spring 2010
Course Logistics: Approximate
Schedule
• Approximate schedule on class syllabus
– 1 hw/project/quiz per week
– Hw/projects due Fridays at 11:00 pm in HFH, 3rd
floor (box labeled ECE15B)
• Last year lecture viewgraphs will be replaced
with newest one on the day of lecture
• Hw, projects description, and solutions will be
posted on the web
(check website for HW#0 today)
ECE 15B Spring 2010
Course Problems: Cheating
• What is cheating?
– Turned-in work must be completely your own however studying
together in groups is encouraged
– Common examples of cheating: running out of time on
assignment and then pick up output, take hw from box and
copy, person asks to borrow solution “just to take a look”,
copying and exam question etc.
– Cheating on HWs: negative points for that assignments (e.g. if it
is worth 10 points, you get -10)
– Cheating on projects/exams: At least, negative points for that
project/exam. In most cases, F in the course
– Any instance of cheating will be referred to Office of Student
Judicial Affairs
http://kiosk.ucsb.edu/AcademicServices/cheatingAtUCSB.aspx
ECE 15B Spring 2010
The Computer Revolution
• Progress in computer technology
– Underpinned by Moore’s Law
• Makes novel applications feasible
– Computers in automobiles
– Cell phones
– Human genome project
– World Wide Web
– Search Engines
• Computers are pervasive
ECE 15B Spring 2010
Market size?
Semiconductor
industry >$1000B
Microprocessor (w.
embedded) > $100B
USA GDP ~ $14000B
(24% of worlds total)
The Rise of Embedded Computers
In millions
What is
next?
Population 6.4B in 2004, i.e. ~ 1PC, 2.2 cell phones, and 2.5 televisions for every 8 people
ECE 15B Spring 2010
on the planet
Different Approaches to Computation
computer engineers
application specific
general purpose
need
Let’s make
circuits which will
compute anything
we want
problem
Computing
platform
I want to
solve
equation
results
I want to
sort
numbers
input data
algorithm
code
need
algorithm
Computing
platform
Let’s make
circuits which will
solve a particular
problem
problem
I want to
denoise
my image
results
I want to
denoise
my image
input data
need
neuromorphic
architecture
users
architecture
Computing
platform
problem
results
Humans are better
than computers.
Let’s emulate
the brain
input data
training
ECE 15B Spring 2010
I want to
predict the
future
I want to find
search for a
face on the web
ASIC vs. FPGA vs. μP
General Purpose Computing
μP
FPGA
GPU
ECE 15B Spring 2010
“Von-Neumann” Computer
Store –programmed concept
was not invented by John von
Neumann only
Other inventors Presper Eckert
and John Mauchly ENIAC 1943
University of Pensilvania
Computer
Processor
Control
Datapath
Memory
(where
programs,
data
live when
running)
Devices
Input
Output
ECE 15B Spring 2010
Keyboard,
Mouse
Disk
(where
programs,
data
live when
not running)
Display,
Printer
Layers of Abstractions
Application (ex: browser)
Compiler
Software
Hardware
Assembler
Processor
Operating
System
(Mac OSX)
Memory I/O system
Instruction Set
Architecture
Datapath & Control
Digital Design
Circuit Design
transistors
Computation is implemented using
many layers of abstractions – WHY?
ECE 15B Spring 2010
Moore’s Law
# of transistors on an
integrated circuit (IC)
Predicts: 2X Transistors / chip every 2 years
Gordon Moore
Intel Cofounder
B.S. Cal 1950!
Year
en.wikipedia.org/wiki/Moore's_law
ECE 15B Spring 2010
Technology Scaling Road Map (ITRS)
Year
2004
2006
2008
2010
2012
Feature size (nm)
90
65
45
32
22
Intg. Capacity (BT)
2
4
6
16
32
• Fun facts about 45nm transistors
– 30 million can fit on the head of a pin
– You could fit more than 2,000 across the width of a
human hair
– If car prices had fallen at the same rate as the price
of a single transistor has since 1968, a new car
today would cost about 1 cent
Performance (vs. VAX-11/780)
Technology Trends:
Uniprocessor Performance (SPECint)
“Sea change” in chip
design: multiple “cores”
or processors per chip
1.52x/year
1.25x/year
• VAX
: 1.25x/year 1978 to 1986
• RISC + x86: 1.52x/year 1986 to 2002
• RISC + x86:
2002 to present
ECE1.20x/year
15B Spring 2010
3X
1.20x/year
Computer Technology - Growth!
• Processor
Kilo (103) & Kibi (210)
– Speed 2x / 1.5 years (since ’85) [slowing!]
– 100X performance last decade
• Memory (DRAM)

Mega (106) & Mebi (220)

Giga (109) & Gibi (230)
– Capacity: 2x / 2 years (since ’96)
– 64x size last decade.
• Disk

Tera (1012) & Tebi (240)

Peta (1015) & Pebi (250)
– Capacity: 2x / 1 year (since ’97)
– 250X size last decade.

Exa (1018) & Exbi (260)

Zetta (1021) & Zebi (270)

Yotta (1024) & Yobi (280)
ECE 15B Spring 2010
512KB L2
Core 2

Four out-oforder cores
on one chip

1.9 GHz clock
rate

65nm
technology

Three levels
of caches (L1,
L2, L3) on chip

Integrated
Northbridge
Core 3
512KB L2
Northbridge
512KB L2
2MB shared L3 Cache
Core 1
512KB L2
AMD’s Barcelona Multicore Chip
Core 4
ECE 15B Spring 2010
http://www.techwarelabs.com/reviews/processors/barcelona/
Layers of Abstraction
Application (ex: browser)
Compiler
Software
Hardware
Assembler
Processor
This class is about
this region
Operating
System
(Mac OSX)
Memory I/O system
Instruction Set
Architecture
Datapath & Control
Digital Design
Circuit Design
transistors
Need Many Layers to Handle Complexity
ECE 15B Spring 2010
Below the Program
Applications software
Systems software
Hardware
• System software
– Operating system – supervising program that interfaces the
user’s program with the hardware (e.g., Linux, MacOS,
Windows)
• Handles basic input and output operations
• Allocates storage and memory
• Provides for protected sharing among multiple applications
– Compiler – translate programs written in a high-level language
(e.g., C, Java) into instructions that the hardware can execute
ECE 15B Spring 2010
Below the Program
• High-level language program (in C)
swap (int v[], int k)
(int temp;
temp = v[k];
v[k] = v[k+1];
v[k+1] = temp;
)
one-to-many
C compiler
• Assembly language program (for MIPS)
swap:
sll
add
lw
lw
sw
sw
jr
$2, $5, 2
$2, $4, $2
$15, 0($2)
$16, 4($2)
$16, 0($2)
$15, 4($2)
$31
one-to-one
assembler
• Machine (object, binary) code (for MIPS)
000000 00000 00101 0001000010000000
000000 00100 00010 0001000000100000
. . .
ECE 15B Spring 2010
Below the Program
temp = v[k];
v[k] = v[k+1];
v[k+1] = temp;
High Level Language
Program (e.g., C)
Compiler
Assembly Language
Program (e.g.,MIPS)
Assembler
Machine Language
Program (MIPS)
Machine
Interpretation
lw
lw
sw
sw
0000
1010
1100
0101
Hardware Architecture Description (e.g.,
block diagrams)
Architecture
Implementation
Logic Circuit Description
(Circuit Schematic Diagrams)
$t0, 0($2)
$t1, 4($2)
$t1, 0($2)
$t0, 4($2)
1001
1111
0110
1000
1100
0101
1010
0000
0110
1000
1111
1001
1010
0000
0101
1100
1111
1001
1000
0110
0101
1100
0000
1010
1000
0110
1001
1111
Advantages of Higher-Level Languages ?
• Higher-level languages





Allow the programmer to think in a more natural language and for
their intended use (Fortran for scientific computation, Cobol for
business programming, Lisp for symbol manipulation, Java for web
programming, …)
Improve programmer productivity – more understandable code
that is easier to debug and validate
Improve program maintainability
Allow programs to be independent of the computer on which they
are developed (compilers and assemblers can translate high-level
language programs to the binary instructions of any machine)
Emergence of optimizing compilers that produce very efficient
assembly code optimized for the target machine
• As a result, very little programming is done
today at the assembler level
ECE 15B Spring 2010
ECE 15B: So what’s in it for me?
• Learning computer systems from a
programmer’s point of view
– What the programmer writes
– How it is converted to something the computer
understands
– How computer interprets the program
– What makes programs go slow
ECE 15B Spring 2010
ECE 15B: So what’s in it for me?
• Learn big ideas in computer engineering
– Principle of abstraction used to build systems as
layers
– 5 classic components of a computer
– Data can be anything (integers, floating point,
characters): program determines what it is
– Stored program concept: instructions just data
– Principle of locality, exploited via memory
hierarchy
– Greater performance by exploiting parallelism
ECE 15B Spring 2010
ECE 15B: can also help you
• Assembly Language Programming
– This is a skill you will pick up as a side effect of
understanding big ideas
• Hardware Design
– Hardware at the abstract level with only a little bit of
physical implementation details to give perspective
• Understand Language Concept
– If you know one, you should be able to learn another
“low” level programming language on your own
– C constructs used in many other “higher” level
programming languages
ECE 15B Spring 2010
ECE 15B: Does Not Teach
• A specific assembler language
– 486 instruction set
– ARM instruction set
– PowerPC instruction set
• Because technologies change so dramatically
– Learning the concepts is more important that
learning the language
– Learning abstract ideas is more important that
learning the specific features
ECE 15B Spring 2010
Summary
• Continued rapid improvement in computing
– May end up soon but new paradigms and concept
will likely inherit a lot from traditional computer
implantation, e.g. multi core
– The market for computing systems is huge
• Hardware/software interface is important
layer in the hierarchy to understand how
computing is implemented
ECE 15B Spring 2010
Questions?
ECE 15B Spring 2010