310 likes | 420 Views
ECE 15B Computer Organization Spring 2010 Dmitri Strukov. Lecture 1: Introduction. Partially adapted from Computer Organization and Design, 4 th edition, Patterson and Hennessy, and classes taught by Patterson at Berkeley, Ryan Kastner at UCSB and Mary Jane Irwin at Penn State.
E N D
ECE 15B Computer OrganizationSpring 2010Dmitri Strukov Lecture 1: Introduction Partially adapted from Computer Organization and Design, 4th edition, Patterson and Hennessy, and classes taught by Patterson at Berkeley, Ryan Kastner at UCSB and Mary Jane Irwin at Penn State
Course Logistics : Instructor Dmitri Strukov strukov@ece.ucsb.edu Office : HFH 5153 Office hours: Tuesday – Thursday 6:45 – 7:45 pm (right after class) or by appointment ECE 15B Spring 2010
Features Assembler & Debug Cycle-accurate simulation GUI and Script support Detailed statistics including runtime conflicts Implementation C - 35 K lines of code TCL - 7 K lines of code My Own Background... MMT Simulator Memory latency reduction with fine-grain migrating threads in NUMA shared-memory multiprocessors” (with M. Dorojevets) in: Proc. PDCS’02, Cambridge, MA, Nov. 2002, pp. 762-767 ECE 15B Spring 2010
Course Logistics : TAs Vivek Nandakumar vivek@ece.ucsb.edu Office hours: Phelps 1435, Tuesday 2:00-3:00 pm (tentative) Discussion session: Phelps 1425, Monday 5:00-5:50 pm Isai Michel isai@umail.ucsb.edu Office hours: Phelps 1435, Wednesday 2:00-3:00 pm Discussion session: Phelps 1445, Friday 9:00-9:50 pm ECE 15B Spring 2010
Course Logistics: Material • URL • Go to my web page www.ece.ucsb.edu/~dimastrukov/ and click on ECE 15B link at the bottom • Software: MIPS-32bit simulator (“SPIM”) • Both software and documentation available online for free • Can be installed on any common platform • See instructions on web for MACs • Try to install that software early ECE 15B Spring 2010
Course Logistics: Textbooks • Required: Computer Organization and Design: The Hardware/Software Interface, Fourth Edition, Patterson and Hennessy (COD). The third edition is also accepted. • Recommended: MIPS Assembly Language Programming, Robert L. Britton, 2003. • Additional (not required): The C Programming Language, Kernighan and Ritchie (K&R), 2nd edition • C language manual webpage from Stanford University • UCSB book store should have them all ECE 15B Spring 2010
Course Logistics: Grading • Homework Assignments (excluding HW #0): 10% • Projects: 20% • Quiz 1: 15% • Quiz 2: 15% • Final: 40% • Class Participation: 5% • Attendance & discussion in class ECE 15B Spring 2010
Course Logistics: Approximate Schedule • Approximate schedule on class syllabus • 1 hw/project/quiz per week • Hw/projects due Fridays at 11:00 pm in HFH, 3rd floor (box labeled ECE15B) • Last year lecture viewgraphs will be replaced with newest one on the day of lecture • Hw, projects description, and solutions will be posted on the web (check website for HW#0 today) ECE 15B Spring 2010
Course Problems: Cheating • What is cheating? • Turned-in work must be completely your own however studying together in groups is encouraged • Common examples of cheating: running out of time on assignment and then pick up output, take hw from box and copy, person asks to borrow solution “just to take a look”, copying and exam question etc. • Cheating on HWs: negative points for that assignments (e.g. if it is worth 10 points, you get -10) • Cheating on projects/exams: At least, negative points for that project/exam. In most cases, F in the course • Any instance of cheating will be referred to Office of Student Judicial Affairs http://kiosk.ucsb.edu/AcademicServices/cheatingAtUCSB.aspx ECE 15B Spring 2010
The Computer Revolution • Progress in computer technology • Underpinned by Moore’s Law • Makes novel applications feasible • Computers in automobiles • Cell phones • Human genome project • World Wide Web • Search Engines • Computers are pervasive Market size? Semiconductor industry >$1000B Microprocessor (w. embedded) > $100B USA GDP ~ $14000B (24% of worlds total) ECE 15B Spring 2010
The Rise of Embedded Computers In millions What is next? Population 6.4B in 2004, i.e. ~ 1PC, 2.2 cell phones, and 2.5 televisions for every 8 people on the planet ECE 15B Spring 2010
computer engineers users problem need architecture Computing platform I want to solve equation I want to sort numbers Let’s make circuits which will compute anything we want general purpose algorithm code need algorithm problem Let’s make circuits which will solve a particular problem application specific architecture problem need I want to denoise my image I want to denoise my image Humans are better than computers. Let’s emulate the brain results results results neuromorphic input data input data input data training I want to predict the future I want to find search for a face on the web Different Approaches to Computation Computing platform Computing platform ECE 15B Spring 2010
ASIC vs. FPGA vs. μP General Purpose Computing μP FPGA GPU ECE 15B Spring 2010
“Von-Neumann” Computer Store –programmed concept was not invented by John von Neumann only Other inventors Presper Eckert and John Mauchly ENIAC 1943 University of Pensilvania Keyboard, Mouse Computer Processor Memory (where programs, data live when running) Devices Disk(where programs, data live when not running) Input Control Datapath Output Display, Printer ECE 15B Spring 2010
Layers of Abstractions Application (ex: browser) Operating Compiler System (Mac OSX) Software Assembler Instruction Set Architecture Hardware Processor Memory I/O system Datapath & Control Digital Design Circuit Design transistors Computation is implemented using many layers of abstractions – WHY? ECE 15B Spring 2010
Moore’s Law Predicts: 2X Transistors / chip every 2 years Gordon MooreIntel CofounderB.S. Cal 1950! # of transistors on an integrated circuit (IC) Year en.wikipedia.org/wiki/Moore's_law ECE 15B Spring 2010
Technology Scaling Road Map (ITRS) • Fun facts about 45nm transistors • 30 million can fit on the head of a pin • You could fit more than 2,000 across the width of a human hair • If car prices had fallen at the same rate as the price of a single transistor has since 1968, a new car today would cost about 1 cent
Technology Trends: Uniprocessor Performance (SPECint) 3X “Sea change” in chip design: multiple “cores” or processors per chip 1.20x/year 1.52x/year Performance (vs. VAX-11/780) 1.25x/year • VAX : 1.25x/year 1978 to 1986 • RISC + x86: 1.52x/year 1986 to 2002 • RISC + x86: 1.20x/year 2002 to present ECE 15B Spring 2010
Computer Technology - Growth! • Processor • Speed 2x / 1.5 years (since ’85) [slowing!] • 100X performance last decade • Memory (DRAM) • Capacity: 2x / 2 years (since ’96) • 64x size last decade. • Disk • Capacity: 2x / 1 year (since ’97) • 250X size last decade. Kilo (103) & Kibi (210) Mega (106) & Mebi (220) Giga (109) & Gibi (230) Tera (1012) & Tebi (240) Peta (1015) & Pebi (250) Exa (1018) & Exbi (260) Zetta (1021) & Zebi (270) Yotta (1024) & Yobi (280) ECE 15B Spring 2010
AMD’s Barcelona Multicore Chip • Four out-of-order cores on one chip • 1.9 GHz clock rate • 65nm technology • Three levels of caches (L1, L2, L3) on chip • Integrated Northbridge Core1 Core 2 512KB L2 512KB L2 Northbridge 2MB shared L3 Cache 512KB L2 512KB L2 Core 3 Core 4 ECE 15B Spring 2010 http://www.techwarelabs.com/reviews/processors/barcelona/
Layers of Abstraction Need Many Layers to Handle Complexity This class is about this region Application (ex: browser) Operating Compiler System (Mac OSX) Software Assembler Instruction Set Architecture Hardware Processor Memory I/O system Datapath & Control Digital Design Circuit Design transistors ECE 15B Spring 2010
Below the Program Applications software Systems software • System software • Operating system – supervising program that interfaces the user’s program with the hardware (e.g., Linux, MacOS, Windows) • Handles basic input and output operations • Allocates storage and memory • Provides for protected sharing among multiple applications • Compiler – translate programs written in a high-level language (e.g., C, Java) into instructions that the hardware can execute Hardware ECE 15B Spring 2010
C compiler assembler Below the Program • High-level language program (in C) swap (int v[], int k) (int temp; temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; ) • Assembly language program (for MIPS) swap: sll $2, $5, 2 add $2, $4, $2 lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2) jr $31 • Machine (object, binary) code (for MIPS) 000000 00000 00101 0001000010000000 000000 00100 00010 0001000000100000 . . . one-to-many one-to-one ECE 15B Spring 2010
Below the Program temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; lw $t0, 0($2) lw $t1, 4($2) sw $t1, 0($2) sw $t0, 4($2) High Level Language Program (e.g., C) Compiler Assembly Language Program (e.g.,MIPS) Assembler 0000 1001 1100 0110 1010 1111 0101 1000 1010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111 Machine Language Program (MIPS) Machine Interpretation Hardware Architecture Description (e.g., block diagrams) Architecture Implementation Logic Circuit Description(Circuit Schematic Diagrams)
Advantages of Higher-Level Languages ? • Allow the programmer to think in a more natural language and for their intended use (Fortran for scientific computation, Cobol for business programming, Lisp for symbol manipulation, Java for web programming, …) • Improve programmer productivity – more understandable code that is easier to debug and validate • Improve program maintainability • Allow programs to be independent of the computer on which they are developed (compilers and assemblers can translate high-level language programs to the binary instructions of any machine) • Emergence of optimizing compilers that produce very efficient assembly code optimized for the target machine • Higher-level languages • As a result, very little programming is done today at the assembler level ECE 15B Spring 2010
ECE 15B: So what’s in it for me? • Learning computer systems from a programmer’s point of view • What the programmer writes • How it is converted to something the computer understands • How computer interprets the program • What makes programs go slow ECE 15B Spring 2010
ECE 15B: So what’s in it for me? • Learn big ideas in computer engineering • Principle of abstraction used to build systems as layers • 5 classic components of a computer • Data can be anything (integers, floating point, characters): program determines what it is • Stored program concept: instructions just data • Principle of locality, exploited via memory hierarchy • Greater performance by exploiting parallelism ECE 15B Spring 2010
ECE 15B: can also help you • Assembly Language Programming • This is a skill you will pick up as a side effect of understanding big ideas • Hardware Design • Hardware at the abstract level with only a little bit of physical implementation details to give perspective • Understand Language Concept • If you know one, you should be able to learn another “low” level programming language on your own • C constructs used in many other “higher” level programming languages ECE 15B Spring 2010
ECE 15B: Does Not Teach • A specific assembler language • 486 instruction set • ARM instruction set • PowerPC instruction set • Because technologies change so dramatically • Learning the concepts is more important that learning the language • Learning abstract ideas is more important that learning the specific features ECE 15B Spring 2010
Summary • Continued rapid improvement in computing • May end up soon but new paradigms and concept will likely inherit a lot from traditional computer implantation, e.g. multi core • The market for computing systems is huge • Hardware/software interface is important layer in the hierarchy to understand how computing is implemented ECE 15B Spring 2010
Questions? ECE 15B Spring 2010