SI232 Introduction to Computer Architecture Spring 2006 Asst. Prof. Luke McDowell http://www.cs.usna.edu/~lmcdowel/courses/si232/S06/ Outline • Class Survey / Role Call • What is: - a computer? - computer architecture? - this class? • Course Admin – Policy Letter – Syllabus Computers over time 1940s -- ENIAC Today – UCLA “mote” Performance over time 10,000 Intel Pentium 4/3000 Intel Xeon/2000 DEC Alpha 21264A/667 DEC Alpha 21264/600 Performance 1,000 DEC Alpha 5/500 DEC Alpha 5/300 IBM POWER 100 100 • Rapidly changing field: SUN-4/ 260 – vacuum tube -> transistor -> IC -> VLSI – doubling every 1.5 years: DEC AXP/500 0 DEC Alpha 4/266 HP 9000/750 IBM RS6000 MIPS M2000 MIPS M/120 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 • How do computers really work? Why learn this stuff? • How to analyze performance (and not to!) • You want to call yourself a “computer scientist” • Issues affecting modern processors (caches, pipelines, wire delay, parallelism…) • You want to build software people use (need performance) • Constant tradeoffs: – Speed vs. Capacity vs. Cost • Insight into complexity of easy/hard operations What is a computer? • You need to make a purchasing decision or offer “expert” advice What is a computer, continued • Our primary focus: Computer Control Input Memory Datapath Processor Output – implemented using millions of transistors – Impossible to understand by looking at each transistor – We need... 2 Abstraction • An abstraction helps us cope with complexity by: What is Computer Architecture? Hig h-level lang ua ge program (in C) swap (in t v[], int k) {int temp ; tem p = v[k]; v[k] = v[k+1 ]; v[k+ 1] = tem p; } C com p iler • Delving into the depths reveals more information swap : m uli $2, $5,4 a dd $ 2, $ 4,$2 lw $15, 0($ 2) lw $16, 4($ 2) sw $1 6, 0($2 ) sw $1 5, 4($2 ) jr $3 1 Asse mb ly lang ua ge program (for M IP S) A ssem bler Binary m a ch ine lang ua ge program (for M IP S) 0000 00 001010 0001 00 000000000 11 000 0000 00 001000 1110 00 011000001 00 001 1000 11 000110 0010 00 000000000 00 000 1000 11 001111 0010 00 000000000 00 100 1010 11 001111 0010 00 000000000 00 000 1010 11 000110 0010 00 000000000 00 100 0000 00 111110 0000 00 000000000 01 000 Instruction Set Architecture • A very important abstraction – interface between hardware and low-level software – defines how a program interacts with the machine – standardizes instructions, machine language bit patterns, etc. – advantage: – disadvantage: • Modern instruction set architectures: Where we are headed • • • • • • • • • • Today – Chapter 1 A specific instruction set architecture (Chapter 2) Logic Design (Appendix B) Arithmetic and how to build an ALU (Chapter 3) Performance issues (Chapter 4) Constructing a processor to execute our instructions (Chapter 5) Pipelining to improve performance (Chapter 6) Memory: caches and virtual memory (Chapter 7) I/O (Chapter 8) A few advanced topics – 80x86/Pentium/K6, PowerPC, DEC Alpha, MIPS, SPARC, HP 3 Classroom Pet Peeves Admin • • • • Assignments • • • • Get the textbook Get a binder to keep track of notes Read Chapter 1 (1.7 optional) Homework #1 due next Wed Pet Peeves Policy Collaboration Syllabus Success in SI232 • In Class – Participate – 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