IC220 Outline Computer Architecture and • Class Survey / Role Call Organization • What is: - a computer? Spring 2007 - computer architecture? Asst. Prof. Luke McDowell - this class? Major W. Clay James • Course Admin – Policy Letter http://www.cs.usna.edu/~lmcdowel/courses/ic220/S07/ – Syllabus
Computers over time Performance over time 1940s -- ENIAC Today – UCLA “mote” 10,000
Intel Pentium 4/3000 Intel Xeon/2000 DEC Alpha 21264A/667
1,000 DEC Alpha 21264/600 e c n
a DEC Alpha 5/500 m r o f
r DEC Alpha 5/300 e P IBM POWER 100 100 DEC Alpha 4/266 DEC AXP/500
HP 9000/750 • Rapidly changing field: SUN-4/ 260 IBM RS6000 – vacuum tube -> transistor -> IC -> VLSI MIPS M2000 MIPS M/120 – doubling every 1.5 years: 0 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 Year
1
PAT01F17.eps What We’ll Learn Why learn this stuff?
• How do computers really work? • You want to call yourself a “computer • How to analyze performance (and not to!) • Issues affecting modern processors (caches, pipelines, wire delay, scientist” or “information technologist” parallelism…) • You want to build software people use • Constant tradeoffs: – Speed vs. Capacity vs. Cost (need performance) • Insight into complexity of easy/hard operations • You need to make a purchasing decision • Student comment from last year on “how much learned”: “A great deal. One of those classes where you don't realize how or offer “expert” advice much you learned- you just come out understanding a lot of things that nobody else does.”
What is a computer? What is a computer, continued
• Our primary focus: Computer Control
Input
Memory – implemented using millions of transistors Datapath – Impossible to understand by looking at each transistor
Output – We need... Processor
2
PAT01F05.eps Abstraction What is Computer Architecture?
Hig h-level swap(int v[], int k) lang uage {int temp; program temp = v[k]; (in C) v[k] = v[k+1]; • An abstraction helps us cope v[k+1] = tem p; with complexity by: }
C compiler
Assembly swap: • Delving into the depths lang uage muli $2, $5,4 program add $2, $4,$2 reveals more information (for MIPS) lw $15, 0($2) lw $16, 4($2) sw $1 6, 0($2) sw $15, 4($2 ) jr $31
Assembler
Binary m achine 000000001010 00010000000000011000 lang uage 000000001000 11100001100000100001 program 100011000110 00100000000000000000 (for MIPS) 100011001111 00100000000000000100 101011001111 00100000000000000000 101011 000110 00100000000000000100 000000 111110 00000000000000001000
Instruction Set Architecture Where we are headed
• A very important abstraction • Today – Chapter 1 – interface between hardware and low-level software • A specific instruction set architecture (Chapter 2) – defines how a program interacts with the machine • Logic Design (Appendix B) – standardizes instructions, machine language bit patterns, etc. • Arithmetic and how to build an ALU (Chapter 3) – advantage: • Performance issues (Chapter 4) • Constructing a processor to execute our instructions (Chapter 5) • Pipelining to improve performance (Chapter 6) – disadvantage: • Memory: caches and virtual memory (Chapter 7) • I/O (Chapter 8) • Modern instruction set architectures: • A few advanced topics – 80x86/Pentium/K6, PowerPC, DEC Alpha, MIPS, SPARC, HP
3 Admin Assignments
• Pet Peeves • Get the textbook • Policy • Get a binder to keep track of notes • Collaboration • Syllabus • Read Chapter 1 (1.7 optional) • Homeworks • Homework #1 due next Wed – Some exercises completed in class – All exercises must be completed & turned in – Expected less points for exercises done in class • All assignments must be turned in to possibly earn a passing grade
Success in IC220
• In Class – Participate – You must bring relevant slides/homework – Ask & answer questions – Be prepared to interact – Take notes – provided slides are not enough! • On your own – Keep Up – Review/finish exercises after class – Read the book – lecture won’t cover everything – See me for help and/or talk to friends
4