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
CS2504, Spring'2007 ©Dimitris Nikolopoulos CS2504: Computer Organization Lecture 1: Welcome to CS2504 Instructor: Dimitris Nikolopoulos (Δημήτρης Νικολόπουλος) CS2504, Spring'2007 ©Dimitris Nikolopoulos Administrivia Instructor: Dimitris Nikolopoulos Office hours: MCB 614, Monday 10.00am-11.30am 217 VTKWII Building, Wednesday 3.00pm-4.30pm By appointment: [email protected] TA: Ganesh Narayanaswami Office hours: TBD [email protected] 2 CS2504, Spring'2007 ©Dimitris Nikolopoulos Administrivia Course structure: Lectures, discussion, some problem solving 10% pop quizzes (always have a notebook), 20% midterm, 25% final, 50% homework (including programming and logic design assignments) Midterm, final, quizzes in class. Usual honor rules apply Use common sense You can not share code or written material You can share ideas 3 CS2504, Spring'2007 ©Dimitris Nikolopoulos Prerequisites Familiarity with UNIX (CS 2204) Data structures and C++ (CS 2605) Grades C or higher Fill out forms, honestly 4 CS2504, Spring'2007 ©Dimitris Nikolopoulos Textbook Patterson and Hennessy, Computer Organization and Design, 3ed. Additional material on CD Software (simulators, etc.) Practice problems Course web sites: http://courses.cs.vt.edu/~cs2504 Make a habit of checking the web site! http://forum.cs.vt.edu Curator to be used for homework assignments 5 CS2504, Spring'2007 ©Dimitris Nikolopoulos Assignments Submitted online via curator Instructions for file formats, coding rules, tools etc. will be posted Primary tools: SPIM, LogicSIM Late submission penalized by 25% per diem We do use plagiarism detection tools Protocol: Discuss grade with grader (TA or DSN) If not resolved, discuss further with DSN 6 CS2504, Spring'2007 ©Dimitris Nikolopoulos Assignments Use common sense: Assignments are atomic Take frequent backups Keep copies of your assignments until they are graded and any grading issues are resolved Can't prevent exchange of ideas. Feel free! Don't exchange code Do not edit the output! We run the assignments and we enforce occasional demos Use reasonable coding principles Some instructions will be posted. Use comments, reasonable identation, etc. 7 CS2504, Spring'2007 ©Dimitris Nikolopoulos Reading Read the book, lectures follow the book Read lecture notes, come to lectures Consult frequently with the TA and DSN Check University policies for attendance Lectures convey useful insight Lectures will be posted shortly after class Reward for bugs in lecture notes Nice guys, help a lot! Textbook CD, companion site Google! 8 CS2504, Spring'2007 ©Dimitris Nikolopoulos Evaluation Graded on a curve: 100-point scale Top 10% of class A, If within 95% of top 10% average A- 1 point under A, B+ 2 points under A B 10 points from A, C 20 points etc Curves may foster some competition, but they also shield you from unexpected failures in tests and assignments Instructor reserves right to tune grading policy 9 CS2504, Spring'2007 ©Dimitris Nikolopoulos Course outline I. Computers, abstractions and technology II.Instruction set architecture: talking to the computer in its own language III.Arithmetic for computers IV.Understanding and measuring performance V.Processor: Datapath and control VI.Improving performance: pipelines and ILP VII.Memory hierarchies VIII.Storage and I/O IX.Multiprocessors and clusters 10 CS2504, Spring'2007 ©Dimitris Nikolopoulos Introduction Computers, Abstractions and Technology 11 CS2504, Spring'2007 ©Dimitris Nikolopoulos Computer revolution Computers in ATMs Computers in cars Laptops, palmtops, cell phones Settop boxes, Sony PS3, Wii Computers and the web Computers and scientific revolution Human genome Climate change Nuclear reactions 12 CS2504, Spring'2007 ©Dimitris Nikolopoulos Computers around us Desktops: one user, at home Servers: many users, remotely Supercomputers: highest performance Embedded computers: computers hidden inside a box, running one application Class quiz: Which category has the highest population on the planet? 13 CS2504, Spring'2007 ©Dimitris Nikolopoulos And the winner is... 14 CS2504, Spring'2007 ©Dimitris Nikolopoulos Quiz set No. 2 How many of you know what a Pentium processor is? How many of you know what an ARM processor is? How many of you think that they are carrying an ARM processor in their jackets? 15 CS2504, Spring'2007 ©Dimitris Nikolopoulos Microprocessor sales 16 CS2504, Spring'2007 ©Dimitris Nikolopoulos Below your program System software Operating system: hiding complexities, managing resources efficiently Compiler: translate high-level languages into assembly language instructions Assembler: translate assembly instructions to bit streams 17 CS2504, Spring'2007 ©Dimitris Nikolopoulos A computer from 10 feet 18 CS2504, Spring'2007 ©Dimitris Nikolopoulos A computer from 1 foot 19 CS2504, Spring'2007 ©Dimitris Nikolopoulos Inside a microprocessor 20 CS2504, Spring'2007 ©Dimitris Nikolopoulos Some definitions Integrated circuit CPU Microprocessor Datapath and control A large collection of transistors Arithmetic and instruction logic in the CPU DRAM Volatile storage for data and instructions 21 CS2504, Spring'2007 ©Dimitris Nikolopoulos Some definitions Cache Non-volatile storage Disks, tapes and other media for permanent storage ISA (instruction set architecture) Volatile superfast storage for instructions and data Abstract interface between hardware and software: how to talk to a machine correctly ABI (application binary interface) ISA plus OS interfaces for talking to devices other 22 CS2504, Spring'2007 ©Dimitris Nikolopoulos Abstracting it away Computers seen as layers of abstractions: Each layers provides an interface to access the computer and hides implementation details from the layers above it Example: binary code, instruction set, high-level programming language, component programming Simplifies computing tasks, such as programming, compiling, running programs CS has been raising the level of abstraction for almost 50 years Some indications that this trend may change in the near future (blurred boundaries) 23 CS2504, Spring'2007 ©Dimitris Nikolopoulos Memory hierarchies A hierarchy of storage “devices”: E.g. Cache, DRAM, disk, tapes, the library Moving down: Lower cost, increased capacity, slower access time What makes memory hierarchies work: The principle of locality Programs go through phases A program needs only a portion of its instructions/data to execute in the time span of a phase Adjacent data accessed by adjacent instructions Data is often reused 24 CS2504, Spring'2007 ©Dimitris Nikolopoulos The network Wasn't even in the CO books until the latest edition... Now, a computers without a network interface may be considered useless! Networking drives computer evolution in many ways 25 CS2504, Spring'2007 ©Dimitris Nikolopoulos Moore's law (processors) 26 CS2504, Spring'2007 ©Dimitris Nikolopoulos Moore's law (memories) 27 CS2504, Spring'2007 ©Dimitris Nikolopoulos Moore's law discussion Many project its end Some reasons for being pessimistic: Physical limitations with packaging components in silicon Physical limitations with power. Microprocessor power density is similar to that of nuclear reactors... Physical limitations with distance. Signals need time to travel inside the processor... 28 CS2504, Spring'2007 ©Dimitris Nikolopoulos Moore's law discussion What is the driving force? For many years: technology! Able to package more transistors on a chip Think of PC ads you've seen in the past. All about clock-rate... Think of PC ads you've seen recently. All about multicore... So what changed? 29 CS2504, Spring'2007 ©Dimitris Nikolopoulos Staying on Moore's curve Innovation in the design of microprocessors has become more important Instruction-level parallelism Prediction, speculation Thread-level parallelism Better organization of memory hierarchies System software has become more important Optimizing compilers for exotic microprocessors Parallelism in algorithms and system software 30 CS2504, Spring'2007 ©Dimitris Nikolopoulos Recap An exciting, rapidly changing field of study: The computer is ubiquitous Exponential growth driven by: You may be carrying 2-3 with you as we speak May have a few tens of them at home Technology Innovation Technology that changes our lives in ways not seen before: Google and access to information The human genome The $100 laptop The virtual patient 31