Spring 2008, Jan. 14 ELEC / Lecture 2 1 ELEC / Computer Architecture and Design Spring 2007 Introduction Vishwani D. Agrawal James J. Danaher Professor Department of Electrical and Computer Engineering Auburn University, Auburn, AL
Spring 2008, Jan. 14 ELEC / Lecture 2 2 Course Organization Text book: D. A. Patterson and J. L. Hennessy, Computer Organization & Design, the Hardware/Software Interface, San Francisco, California: Morgan Kaufman Publishers, Inc., 2005 (Third Edition). Instructor: Vishwani D. Agrawal, Broun 323, x41853, Graduate Assistants: Nitin Yogi, MWF 12:00-1:00PM, Broun 362, , Khushboo Sheth, Broun 359, x41865, Classroom: Broun 306, MWF 11:00-11:50AM. Lab: Broun 320.
Spring 2008, Jan. 14 ELEC / Lecture 2 3 Author of the Text Book Communications of the ACM, Volume 49, No. 4, April 2006, Page 31
Spring 2008, Jan. 14 ELEC / Lecture 2 4 Author of the Text Book
Spring 2008, Jan. 14 ELEC / Lecture 2 5 Student Performance Evaluation Homeworks (30%): 1 per week, most weeks. Two Class Tests (24%): to be announced. CPU Design Project (21%). Final Exam (25%): Tuesday, May 2, 2008, 9-11:30AM, Broun 306. Term Paper and Class Presentation by ELEC6200 Students: “Satisfactory” grade necessary; attendance necessary for ELEC5200 students.
Spring 2008, Jan. 14 ELEC / Lecture 2 6 Course Objective Learn what a digital computer contains and how it works. Learn design concepts of a modern computer. Gain design experience (through project).
Spring 2008, Jan. 14 ELEC / Lecture 2 7 The Concept of a Computer Application software Programs user writes and runs Hardware Systems software Operating system compiler assembler User
Spring 2008, Jan. 14 ELEC / Lecture 2 8 Software Application software, a program in C: swap (int v[ ], int k) {int temp; temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; } MIPS compiler output, assembly language program: swap; muli$2,$5, 4 add$2,$4, $2 lw$15, 0 ($2) lw$16, 4 ($2) sw$16, 0 ($2) sw$15, 4 ($2) jr$31 MIPS binary machine code: CompilerAssembler Application software Hardware Systems software See pages
Spring 2008, Jan. 14 ELEC / Lecture 2 9 The Hardware of a Computer Control Datapath Memory Central Processing Unit (CPU) or “processor” Input Output FIVE EASY PIECES Application software Hardware Systems software
Spring 2008, Jan. 14 ELEC / Lecture 2 10 Instruction Set Architecture (ISA) A set of assembly language instructions (ISA) provides a link between software and hardware. Given an instruction set, software programmers and hardware engineers work more or less independently. ISA is designed to extract the most performance out of the available hardware technology. Instruction set SoftwareHardware Application software Hardware Systems software
Spring 2008, Jan. 14 ELEC / Lecture 2 11 ISA Defines registers Defines data transfer modes between registers, memory and I/O Types of ISA: RISC, CISC, VLIW, Superscalar Examples: –IBM370/X86/Pentium/K6 (CISC) –PowerPC (Superscalar) –Alpha (Superscalar) –MIPS (RISC and Superscalar) –Sparc (RISC), UltraSparc (Superscalar)
Spring 2008, Jan. 14 ELEC / Lecture 2 12 Computer Architecture Architecture: System attributes that have a direct impact on the logical execution of a program Architecture is visible to a programmer: –Instruction set –Data representation –I/O mechanisms –Memory addressing
Spring 2008, Jan. 14 ELEC / Lecture 2 13 Computer Organization Organization: Physical details that are transparent to a programmer, such as –Hardware implementation of an instruction –Control signals –Memory technology used Example: System/370 architecture has been used in many IBM computers, which widely differ in their organization.
Spring 2008, Jan. 14 ELEC / Lecture 2 14 Architecture and Organization Software Programmers Hardware Engineers ISA
Spring 2008, Jan. 14 ELEC / Lecture 2 15 CPU Design Project Design and implementation of a processor: –Define instruction set –Design datapath and control hardware –Implement hardware in FPGA –Verify
Spring 2008, Jan. 14 ELEC / Lecture 2 16 Research and Development Instruction level parallelism (ILP) Chip multi-processing (CMP) Energy efficiency and low power design Embedded systems Network processing
Spring 2008, Jan. 14 ELEC / Lecture 2 17 Summary A computer processes digital data. A user solves a problem by writing and/or running a program written in a high-level programming language like C. Inside computer, system programs called compiler and assembler break the user program down into assembly code (instruction set) and then into binary machine code. The machine code is processed by the 5-piece hardware (control unit, datapath, memory, input and output) to obtain the desired result.