-- Principles of Computer Architecture Fall Quarter, 1999 UCSD l Computer Architect (building architect) high-level design organization functionality performance l Hardware Designer (builder, construction engineer) materials implementation details l the first computer science discipline l Eckert and Mauchly, the first computer scientists, were computer architects, as was John von Neumann and Maurice Wilkes
l Instruction Set Design l Computer Organization l That part of the machine that is visible to the user (programmer/compiler-writer/os writer/user) the software interface (Instruction Set Design) performance (Computer Organization) PERFORMANCE!!!!! Why do I care? l You may actually do computer architecture someday l You may actually care about software performance someday The ability of application programs, compilers, operating systems, etc. to deliver performance depends critically on an understanding of the underlying computer organization. That becomes more true every year. Computer architectures become more difficult to understand every year.
Which is faster? Which is faster? for (i=0; i<n; i=i+1) for (j=0; j<n; j=j+1) { r = 0; for (k=0; k<n; k=k+1) r = r + y[i][k] * z[k][j]; x[i][j] = r; } for (jj=0; jj<n; jj=jj+b) for (kk=0; kk<n; kk=kk+b) for (i=0; i<n; i=i+1) { for (j=jj; j<min(jj+b-1,n); j=j+1) r = 0; for (k=kk; k<min(kk+b-1,n); k=k+1) r = r + y[i][k] * z[k][j]; x[i][j] = x[i][j] + r; } load R1, addr1 store R1, addr2 add R0, R2 -> R3 subtract R4, R3 -> R5 add R0, R6 ->R7 store R7, addr3 load R1, addr1 add R0, R2 -> R3 add R0, R6 -> R7 store R1, addr2 subtract R4, R3 -> R5 store R7, addr3 Which is faster? The Forces on Computer Architecture loop1: add... add... bne R1, loop1 loop2: add... bne R2, loop2 loop1: add... add... bne R1, loop1 nop nop loop2: add... bne R2, loop2 Applications Operating Systems Technology Parallelism Computer Architecture: Instruction Set Design Hardware Organization Programming Languages History
Administration What is Computer Architecture? l Who are you? l Who am I? Instructor -- Dr. l syllabus, other details Computer Architecture = Machine Organization + Instruction Set Architecture What the machine looks like How you talk to the machine The Instruction Set Architecture Examples of ISAs l that part of the architecture that is visible to the programmer opcodes (available instructions) number and types of registers instruction formats storage access, addressing modes exceptional conditions l Alpha AXP l 80x86/pentium l VAX l MIPS l SPARC l IBM 360 l...
The Instruction Set Architecture Computer Organization Application Compiler Instr. Set Proc. Digital Design Circuit Design Operating System I/O system Instruction Set Architecture l Once you have decided on an ISA, you must decide how to design the hardware to execute those programs written in the ISA as fast as possible. l This must be done every time a new implementation of the architecture is released, with typically very different technological constraints. ISA provides a level of abstraction for both the hardware and the software The Challenge of Computer Architecture Performance Trends l This industry changes faster than any other. l The ground rules change every year. new problems new opportunities different tradeoffs l It s all about making programs run faster than the next guy s machine. 1000 100 10 CPU DRAM 1 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000
Processor Performance Course Outline Performance 1200 1100 1000 900 800 700 600 500 400 300 200 100 SUN-4/ 260 0 1987 MIPS M/120 1988 MIPS M2000 1989 IBM RS6000 1990 1991 DEC Alpha 21264/600 DEC Alpha 5/300 DEC Alpha 4/266 IBM POWER 100 DEC AXP/500 HP 9000/750 1992 Year 1993 1994 1995 1996 DEC Alpha 5/500 1997 I. Introduction II. Computer System Performance III. Instruction Set Architecture IV. Pipelining V. Instruction-Level Parallelism VI. The Memory/Cache Hierarchy VII. Parallel Machines What you can expect to get out of this class l to become conversant with computer architecture terms and concepts. l to understand fundamental concepts in computer architecture and how they impact computer and application performance. l to be able to read and evaluate architectural descriptions of even today s most complex processors. l to learn experimental techniques used to evaluate advanced architectural ideas. In other words, to do architecture research! Key Points l Computer Architecture defines the software-visible machine description (ISA) and the overall machine organization. l High-performance software requires a deep understanding of the underlying machine organization. l The instruction set architecture defines how software is allowed to use the processor. Multiple computers with vastly different organizations and performance can share an ISA. l We can t improve performance unless we can quantify it, model it, and argue about it.