ece 15b computer organization spring 2010 dmitri strukov lecture 1: introduction partially adapted...
Post on 19-Dec-2015
217 views
TRANSCRIPT
ECE 15B Computer OrganizationSpring 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
ECE 15B Spring 2010
Course Logistics : Instructor
Dmitri Strukov [email protected]
Office : HFH 5153Office hours: Tuesday – Thursday
6:45 – 7:45 pm (right after class) or by appointment
ECE 15B Spring 2010
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
My Own Background...
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] hours: Phelps 1435, Tuesday 2:00-3:00 pm (tentative)Discussion session: Phelps 1425, Monday 5:00-5:50 pm
Isai Michel [email protected] hours: Phelps 1435, Wednesday 2:00-3:00 pmDiscussion 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
Market size?
Semiconductor industry >$1000B
Microprocessor (w. embedded) > $100B
USA GDP ~ $14000B (24% of worlds total)
ECE 15B Spring 2010
The Rise of Embedded ComputersIn millions
Population 6.4B in 2004, i.e. ~ 1PC, 2.2 cell phones, and 2.5 televisions for every 8 people on the planet
What is next?
ECE 15B Spring 2010
Different Approaches to Computationcomputer engineers users
ge
ne
ral
pu
rpo
se
Let’s make circuits which will compute anything we want
architectureneed Computing platform I want to
solve equation
I want to sort numbers
problem
algorithmcode
ap
pli
ca
tio
n s
pe
cif
icn
eu
rom
orp
hic
Let’s make circuits which will solve a particular problem
I want to denoise my image
I want to denoise my image
problemalgorithmneed
Humans are better than computers. Let’s emulate the brain
need architecture
I want to predict the future
I want to find search for a face on the web
training
problem
input data
results
input data
results
input data
results
Computing platform
Computing platform
ECE 15B Spring 2010
“Von-Neumann” Computer
Processor
Computer
Control
Datapath
Memory
(where programs, data live whenrunning)
Devices
Input
Output
Keyboard, Mouse
Display, Printer
Disk (where programs, data live whennot running)
Store –programmed concept was not invented by John von Neumann only
Other inventors Presper Eckert and John Mauchly ENIAC 1943University of Pensilvania
ECE 15B Spring 2010
Layers of Abstractions
I/O systemProcessor
CompilerOperatingSystem(Mac OSX)
Application (ex: browser)
Digital DesignCircuit Design
Instruction Set Architecture
Datapath & Control
transistors
MemoryHardware
Software Assembler
Computation is implemented using many layers of abstractions – WHY?
ECE 15B Spring 2010
Moore’s LawPredicts: 2X Transistors / chip every 2 years
Gordon MooreIntel CofounderB.S. Cal 1950!
Year
# of
tran
sist
ors
on a
n in
tegr
ated
circ
uit (
IC)
en.wikipedia.org/wiki/Moore's_law
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
ECE 15B Spring 2010
Technology Trends: Uniprocessor Performance (SPECint)
• VAX : 1.25x/year 1978 to 1986• RISC + x86: 1.52x/year 1986 to 2002• RISC + x86: 1.20x/year 2002 to present
1.25x/year
1.52x/year
1.20x/year
Perf
orm
ance
(vs.
VAX
-11/
780)
3X“Sea change” in chip design: multiple “cores” or processors per chip
ECE 15B Spring 2010
• Processor– Speed 2x / 1.5 years (since ’85) [slowing!]– 100X performance last decade
• Memory (DRAM)– Capacity: 2x / 2 years (since ’96)– 64x size last decade.
• Disk– Capacity: 2x / 1 year (since ’97)– 250X size last decade.
Kilo (103) & Kibi (210)
Mega (106) & Mebi (220)
Giga (109) & Gibi (230)
Tera (1012) & Tebi (240)
Peta (1015) & Pebi (250)
Exa (1018) & Exbi (260)
Zetta (1021) & Zebi (270)
Yotta (1024) & Yobi (280)
Computer Technology - Growth!
ECE 15B Spring 2010
AMD’s Barcelona Multicore Chip
http://www.techwarelabs.com/reviews/processors/barcelona/
Core 1 Core 2
Core 3 Core 4
Northbridge51
2KB
L2
512K
B L2
51
2KB
L2
512K
B L2
2MB
shar
ed L
3 Ca
che
Four out-of-order cores on one chip
1.9 GHz clock rate
65nm technology
Three levels of caches (L1, L2, L3) on chip
Integrated Northbridge
ECE 15B Spring 2010
Need Many Layers to Handle Complexity
I/O systemProcessor
CompilerOperatingSystem(Mac OSX)
Application (ex: browser)
Digital DesignCircuit Design
Instruction Set Architecture
Datapath & Control
transistors
MemoryHardware
Software Assembler
Layers of AbstractionThis class is about this region
ECE 15B Spring 2010
Below the Program
• 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
Systems software
Applications software
Hardware
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;
)
• Assembly language program (for MIPS)swap: sll $2, $5, 2
add $2, $4, $2lw $15, 0($2)lw $16, 4($2)sw $16, 0($2)sw $15, 4($2)jr $31
• Machine (object, binary) code (for MIPS) 000000 00000 00101 0001000010000000 000000 00100 00010 0001000000100000
. . .
C compiler
assembler
one-to-many
one-to-one
Below the Program
lw $t0, 0($2)lw $t1, 4($2)sw $t1, 0($2)sw $t0, 4($2)
High Level Language Program (e.g., C)
Assembly Language Program (e.g.,MIPS)
Machine Language Program (MIPS)
Hardware Architecture Description (e.g., block diagrams)
Compiler
Assembler
Machine Interpretation
temp = v[k];v[k] = v[k+1];v[k+1] = temp;
0000 1001 1100 0110 1010 1111 0101 10001010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111
Logic Circuit Description(Circuit Schematic Diagrams)
Architecture Implementation
ECE 15B Spring 2010
Advantages of Higher-Level Languages ?
• Higher-level languages
• As a result, very little programming is done today at the assembler level
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
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