31
ECE 15B Computer Organization Spring 2010 Dmitri Strukov Lecture 1: Introduction Partially adapted from Computer Organization and Design, 4 th edition, Patterson and Hennessy, and classes taught by Patterson at Berkeley, Ryan Kastner at UCSB and Mary Jane Irwin at Penn State

ECE 15B Computer Organization Spring 2010 Dmitri Strukov Lecture 1: Introduction Partially adapted from Computer Organization and Design, 4 th edition,

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

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

ASIC vs. FPGA vs. μP

FPGAμP

General Purpose Computing

GPU

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

ECE 15B Spring 2010

Questions?