Download v[k+1] - Ece Ucsb

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Go (programming language) wikipedia , lookup

Program optimization wikipedia , lookup

Abstraction (computer science) wikipedia , lookup

History of compiler construction wikipedia , lookup

Interpreter (computing) wikipedia , lookup

Compiler wikipedia , lookup

Parallel computing wikipedia , lookup

C Sharp (programming language) wikipedia , lookup

ILLIAC IV wikipedia , lookup

Assembly language wikipedia , lookup

Transcript
ECE 15B Computer Organization
Spring 2011
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
Office :
Office hours:
[email protected]
HFH 5153
Wednesday 3:00 – 5:00 pm or by
appointment
please see my schedule online
http://www.ece.ucsb.edu/~strukov/DmitriWebPage_files/calendar.htm
ECE 15B Spring 2011
Course Logistics : TAs
Sam Masooman
[email protected]
Office hours: Phelps 1435,
Available time slots: Thursday 12:30 am -1:30 pm
Discussion session: Girvetz Hall 2119, Monday 5:00-5:50 pm
Jian Zhen
[email protected]
Office hours: ECI Lab (still tentative)
Available time slots: Friday 10:00 am – 11:00 am
Discussion session: Phelps 1448, Friday 9:00-9:50 pm
ECE 15B Spring 2011
Course Logistics: Material
• URL
– http://www.ece.ucsb.edu/~strukov/ece15bSpring201
1/ECE15bSpring2011.htm
• 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 2011
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 2011
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 2011
Course Logistics: Approximate Schedule
• Approximate schedule on class syllabus
– 1 hw/project/quiz per week
– Hw/projects typically 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
(HW#0 already online)
ECE 15B Spring 2011
Course Logistics: Approximate Schedule
Course introduction
Overview of computer organization (hw)
Arithmetic instructions
Data transfer instructions
Control flow instructions
Logic/shift/overflow
Procedures
Instruction representation
Memory addressing modes
Floating point arithmetic
Pointers and arrays
String, lists, stacks
Memory management
Compiling, assembling, linking and loading
History of computing
Final review
In class quiz
ECE 15B Spring 2011
1
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
2
Key milestones in semiconductor
industry and computer systems
• 1946 First digital electronic programmable
computer by John Mauchy and J.P. Eckert (UPenn) ,
ENIAC (1,800 sq ft, 18,000 vacuum tubes, 50 tones
• 1954 First silicon transistor by TI
• 1958 First integrated circuit by Jack Kilby by TI
• 1971 First (single chip) microprocessor – Intel 4004
by Ted Hoff and others, 10-um, 2300 transistors
• 2006 Intel Core 2 Duo
now 45 nm, up to 1 billion transistors
ECE 15B Spring 2011
Technology and scaling
ECE 15B Spring 2011
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
Gordon Moore
Intel Cofounder
B.S. Cal 1950!
ECE 15B Spring 2011
Source: Prof. N Cheung, UCB
Average price per transistor (source: Intel)
Source: Moore’s law at Forty, Chapter 7 from Understanding
ECE 15B Spring 2011 Moore’s Law: Four decades of Innovation, Edited by David C.
Brock, 2006
ECE 15B Spring 2011
Source: Prof. N Cheung, UCB
More fun facts about semiconductor industry
– 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
– More transistor produced each year than the
number of grains of rice globally
ECE 15B Spring 2011
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 2011
3X
1.20x/year
ECE 15B Spring 2011
Other computing platforms
(why not everything from silicon are
microprocessors?)
Involves NRE cost
Cost
Production cost
= Nonrecurring engineering cost/volume + Production cost
= (1+Defect density * Area/ alpha) alpha, where alpha = 1 to 5
ECE 15B Spring 2011
Other computing platforms
(why not everything microprocessors?)
manufacturing cost (at small volumes)
ASIC
performance
Market size:
- Semiconductor industry >$1000B
- Microprocessor (w. embedded) > $100B
For comparison: USA GDP ~ $14000B
(24% of worlds total)
μP
Other computing platforms
(why not everything microprocessors?)
manufacturing cost (at small volumes)
FPGA
ASIC
GPU
performance
μP
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 2011
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 2011
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 2011
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
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 2011
The Rise of Embedded Computers
In millions
Intel Atom, ~ 50 M Tran.
Population 6.4B in 2004, i.e. ~ 1PC, 2.2 cell phones, and 2.5 televisions for every 8 people
ECE 15B Spring 2011
on the planet
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 2011
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 2011
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 2011
ECE 15B: Does Not Teach
• A specific assembler language
– 486 instruction set
– ARM instruction set (i.e. Apple A5 processor with ARM
Cortex-A9 in iPad2, or iPhone)
– 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 2011
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 2011
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
• Hardware/software interface is important
layer in the hierarchy to understand how
computing is implemented
ECE 15B Spring 2011