Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Lecture 1: Computer Architecture and Technology Professor Mike Schulte Computer Architecture ECE 201 Today’s Lecture ° Course Objectives, Format, and Grading ° Course Prerequisites and Content ° Introduction to Computer Architecture ° Computer Technology ° Computer Components Course Objective ° Course Objective : To give students a clear understanding of the architecture and organization of modern computers, and the cost and performance tradeoffs involved in there design. Technology Parallelism Programming Languages Applications Computer Architecture: • Instruction Set Design • Machine Organization • Implementation Operating Systems Measurement & Evaluation Interface Design History Class Goals ° Show you how to understand modern computer architecture in its rapidly changing form - discuss fundamental ideas, plus real world examples. ° Provide you with an understanding of current and future trends in computer architecture ° Show you how to design by leading you through the process on challenging problems ° Give you exposure to digital design tools ° Make the class informative and enjoyable. So ... • • • • ask questions offer feedback on the course come to lecture and office hours learn from those around you Lecture Format ° Lectures presented from Power Point slides & transparencies ° Examples worked on the board ° Copies of slides, homeworks and other information can be downloaded from the course home page at: http://www.cse.lehigh.edu/~mschulte/ece201-02 ° Readings from the book are assigned to complement the lectures. ° Look over the notes and the material from the book before coming to class (not today :). ° Class is designed to be interactive => ask and answer questions. ° Office Hours: T, TH 12:00-1:00 or by appointment, PL 326. Grading ° Grading for the course is as follows: • • • • Homework and Quizzes : Midterm Exam : Class Project : Final Exam : 25% 20% 25% 30% ° Homework • Due at the start of class • Encouraged to work together, but make sure work is your own • For some homeworks, you will be asked to work in teams ° Exams • Open book and open note (most likely) • Makeup exams given only under extreme circumstances • Final is comprehensive ° Projects • • • • Design and simulate a version of the MIPS processor Done in teams of 3 to 4 students Initial Proposal, Status Report, Final Report, Project Demo More details later Prerequisites ° The course prerequisite is ECE 33 or the equivalent. ° You are expected to be familiar with: • • • • Boolean algebra Binary number systems 2’s complement arithmetic Combinational circuits (e.g., AND/OR gates) • Sequential circuits (e.g. registers) • Assembly language programming ° If you do not have the above prerequisites, please talk to me after class. Course Info ° If it has been a long time since you have had ECE 33, it would be a good idea to look over your ECE 33 class notes and Appendix B. ° This class will probably be lots of work, but hopefully you’ll also have fun and learn a lot. ° For the class projects and some homeworks, you will be expected to work in teams - start forming you teams now. ° Please give me feedback whenever you have questions/concerns - feedback form on web page or just stop by my office ° Email for course related questions: [email protected] Course Content ° Text book: Computer Organization and Design: The Hardware/Software Interface, 2nd Ed., Patterson and Hennessy, Morgan Kaugman, 1997. ° Topics covered include : • Computer Architecture and Technology • Computer Performance • • • • Computer Instruction Sets Computer Arithmetic Processor Design Pipelined Processors • Memory System Design • Input/Output System Design Three Great Teaching Assistants Name: Tony Deliebro Email: [email protected] Office hours: TBD Name: Venkatram Muddhasani Email: [email protected] Name: Faisal Khan Email: [email protected] Offices and Offices hours coming soon! Things We Hope You Will Learn from ECE201 ° Keep it simple and make it work • Fully test everything individually and then together • Retest everything whenever you make any changes • Last minute changes are big “no nos” ° Group dynamics. Communication is the key to success: • Be open with others of your expectations and your problems • Everybody should be there on design meetings when key decisions are made and jobs are assigned ° Planning is very important: • Promise what you can deliver; deliver more than you promise • Murphy’s Law: things DO break at the last minute - Don’t make your plan based on the best case scenarios - Freeze you design and don’t make last minute changes ° Never give up! It is not over until you give up. What is “Computer Architecture” ° Computer Architecture is the design of the computer at the hardware/software interface. ° Computer Architecture = Instruction Set Architecture + Machine Organization Computer Architecture Instruction Set Design Machine Organization Computer Interface Hardware Components Compiler/System View Logic Designer’s View The Instruction Set: a Critical Interface software instruction set hardware Instruction Set Architecture ° Instruction set architecture is the attributes of a computing system as seen by the assembly language programmer or compiler. This includes • Instruction Set (what operations can be performed?) • Instruction Format (how are instructions specified?) • Data storage (where is data located?) • Addressing Modes (how is data accessed?) • Exceptional Conditions (what happens if something goes wrong?) ° A good understanding of computer architecture is important for compiler writers, operating system designers, and general computer programmers. MIPS R3000 Instruction Set Architecture (Summary) Registers ° Instruction Categories • • • • • • Load/Store Computational Jump and Branch Floating Point Memory Management Special R0 - R31 PC HI LO 3 Instruction Formats: all 32 bits wide OP rs rt OP rs rt OP rd sa immediate jump target funct Machine Organization ° Machine organization is the view of the computer that is seen by the logic designer. This includes • Capabilities & performance characteristics of functional units (e.g., registers, ALU, shifters, etc.). • Ways in which these components are interconnected • How information flows between components • Logic and means by which such information flow is controlled • Coordination of functional units to realize the ISA ° Typically the machine organization is designed to meet a given instruction set architecture. ° However, in order to design good instruction sets, it is important to understand the how the architecture might be implemented. Key considerations in “Computer Architecture” Application Operating System Compiler Firmware Instr. Set Proc. I/O system Software Instruction Set Architecture Datapath & Control Digital Design Circuit Design Hardware Layout ° Coordination of many levels of abstraction ° Under a rapidly changing set of forces ° Design, Measurement, and Evaluation Levels of abstraction ° An important concept in computer architecture is the use of various levels of abstractions. ° Each level of abstraction consists of • an interface (outside view of what it does), and • an implementation (inside view of how it works) Implementation Interface B 2 x 1 Mux A S A Y NAND NAND B NAND S Y Forces on Computer Architecture Technology Programming Languages Applications Computer Architecture Operating Systems History Technology Trends DRAM chip capacity Microprocessor Logic Density 100000000 DRAM Size 1980 64 Kb 1983 256 Kb 1986 1 Mb 1989 4 Mb 1992 16 Mb 1996 64 Mb 1999 256 Mb 2002 1 Gb 10000000 R10000 Pentium R4400 i80486 1000000 Transistors Year i80386 i80286 100000 R3010 i8086 SU MIPS i80x86 M68K MIPS Alpha 10000 i4004 1000 1970 1975 1980 1985 1990 1995 2000 2005 ° In 1985, the single-chip 32-bit processor and the single-board computer emerged ° By 2002, we will have entire computer systems on a single chip. Technology trends ° Processor • logic capacity: increases about 30% per year • clock rate: increases about 20% per year • performance: increases about 50% per year ° Memory • DRAM capacity: increases about 60% per year (4x every 3 years) • performance: increases about 3.4% per year ° Disk • capacity: about 60% per year • performance: increases about 3.4% per year ° Network Bandwidth • Bandwidth increasing more than 100% per year! ° What impact does this have on future computer systems? ° What impact does this have on design decisions? Technoloy Trends Processor Performance performance now improves 50% per year (2x every 1.5 years) 300 250 RISC 150 Intel x86 RISC introduction 100 50 35%/yr Year 1995 1994 1993 1992 1991 1990 1989 1988 1987 1986 1985 1984 1983 0 1982 Performance 200 Levels of Representation temp = v[k]; High Level Language Program v[k] = v[k+1]; v[k+1] = temp; Compiler lw$15, lw$16, sw sw Assembly Language Program Assembler Machine Language Program 0000 1010 1100 0101 1001 1111 0110 1000 1100 0101 1010 0000 0110 1000 1111 1001 0($2) 4($2) $16, 0($2) $15, 4($2) 1010 0000 0101 1100 1111 1001 1000 0110 0101 1100 0000 1010 1000 0110 1001 1111 Machine Interpretation Control Signal Specification ° ° ALUOP[0:3] <= InstReg[9:11] & MASK The Big Picture ° Since 1946 all computers have had 5 main components Processor Input Control Memory Datapath Output Components of a Computer ° The functions of the different computer components are • datapath - performs arithmetic and logic operations - e.g., adders, multipliers, shifters • memory - holds data and instructions - e.g., cache, main memory, disk • input - sends data to the computer - e.g., keyboard, mouse • output - gets data from the computer - e.g., screen, sound card • control - gives directions to the other components - e.g., bus controller, memory interface unit Relative Cost of Computer Components Computer Workstation Design Target: 25% of cost on Processor 25% of cost on Memory Rest on I/O devices, power supplies, box Processor Memory Devices Control Input Datapath Output Computer System Components Proc Caches Busses adapters Memory Controllers I/O Devices: Disks Displays Keyboards Controllers Networks ° All have interfaces & organizations Example Organization ° TI SuperSPARCtm TMS390Z50 in Sun SPARCstation20 MBus Module SuperSPARC Floating-point Unit L2 $ Integer Unit Inst Cache Ref MMU Data Cache CC MBus L64852 MBus control M-S Adapter SBus Store Buffer Bus Interface DRAM Controller SBus DMA SBus Cards SCSI Ethernet STDIO serial kbd mouse audio RTC Boot PROM Floppy Instruction Execution Instruction Obtain instruction from program storage Fetch Instruction Determine required actions and instruction size Decode Operand Locate and obtain operand data Fetch Execute Result Compute result value or status Deposit results in storage for later use Store Next Instruction Determine successor instruction Summary ° Computer Architecture includes the design of the Instruction Set Architecture (progammer’s view) and the Machine Organization (logic designer’s view). ° Levels of abstraction, which consist of an interface and an implementation are useful to manage designs. ° Processor performance increases rapidly, but the speeds of memory and I/0 have not kept pace. ° Computer systems are comprised on datapath, memory, input devices, output devices, and control. ° By next class: • Read fill out course survey • read over all of Chapter 1 and Sections 2.1 to 2.3 • Start finding teammates for project and homework