Prof. John Nestor ECE Department Lafayette College Easton, Pennsylvania ECE Computer Organization Lecture 1 - Course Overview Fall 2004 Reading: Portions of these slides are derived from: Textbook figures © 1998 Morgan Kaufmann Publishers all rights reserved Tod Amon's COD2e Slides © 1998 Morgan Kaufmann Publishers all rights reserved Dave Patterson’s CS 152 Slides - Fall 1997 © UCB Rob Rutenbar’s Slides - Fall 1999 CMU other sources as noted Image source: Intel Corporation
ECE 313 Fall 2004Lecture 1 - Course Overview2 Outline - Course Overview Administrative Details Computer Systems Overview Types of Computer Systems High-Level Organization - The “5 classic components” High-Level Operations - the “fetch/execute cycle” Common Abstractions “Under the Hood” of some example computer systems Course Overview Roadmap - subjects to be covered Course Objectives Project Details
ECE 313 Fall 2004Lecture 1 - Course Overview3 Textbook and References Textbook: David A. Patterson and John L. Hennessy, Computer Organization and Design, 3nd Edition, Morgan-Kafumann, References (not required): Michael Ciletti, Modeling, Synthesis, and Prototyping with the Verilog HDL, Prentice-Hall, R. Bryant and D. O’Halloran, Computer Systems: A Programmer’s Perspective Prentice-Hall, John L. Hennessy and David A Patterson, Computer Architecture-A Quantitative Approach, 3rd Ed., Morgan-Kaufmann, Links on ECE 313 Web Page
ECE 313 Fall 2004Lecture 1 - Course Overview4 Administrative Details Grading Take-Home Entry Exam 0% 2 In-Class Exams40% Final Exam25% Projects25% Homeworks10% Office hours - TBD My schedule: ECE 313MWF 10:00-10:50 ECE 491MR6:00-7:20 T9:00-12:00 W6:00-9:00
ECE 313 Fall 2004Lecture 1 - Course Overview5 “Official” Prerequisite - ECE 212 Digital design Combinational logic: Gates Common building blocks: multiplexers, adders, etc Sequential logic: Flip-Flops, FSMs Controller/datapath systems Timing Microcontroller Organization & Programming 68HC11 Organization - Registers, Memory, Etc. 68HC11 Machine Language 68HC11 Assembly Language
ECE 313 Fall 2004Lecture 1 - Course Overview6 “Unofficial” Prerequisite - CS 102 High-Level Language (Java) Programming Variables, Primitive Data Types, and Expressions Assignments, Conditionals, Loops, etc. Classes, Objects, & Methods Basic Input/Output Arrays & Basic Data Structures
ECE 313 Fall 2004Lecture 1 - Course Overview7 Roadmap for the Term: Major Topics Computer Systems Overview Technology Trends Instruction Sets (and Software) Performance Logic and Arithmetic Processor Implementation Memory Systems Input/Output
ECE 313 Fall 2004Lecture 1 - Course Overview8 Outline - Course Overview Administrative Details Computer Systems Overview Classes of Computer Systems High-Level Organization - The “5 classic components” High-Level Operations - the “fetch/execute cycle” Common Abstractions “Under the Hood” of some example computer systems Course Overview Roadmap - subjects to be covered Course Objectives Project Details
ECE 313 Fall 2004Lecture 1 - Course Overview9 Classes of Computer Systems Embedded Desktop Server Image sources: Dell Computer Rackable Systems Apple Computer
ECE 313 Fall 2004Lecture 1 - Course Overview10 Desktop Computer Systems For “General-Purpose” Use Word-Processing, Web surfing, Multimedia, etc. Computation and Programming What’s in the box Microprocessor Memory - Synchronous DRAM Hard disk(s), CDROM/DVD, etc. I/O - mouse, keyboard, video card, monitor, network, etc. Important Issues: Performance - how fast is “fast enough”? Basic capabilities (and expandability) Cost
ECE 313 Fall 2004Lecture 1 - Course Overview11 Server Computer Systems Large-Scale Services File storage Computation (e.g., supercomputers) Transaction Processing, Web What’s in the Box(es) Microprocessor(s) Hard disks Network Interface(s) Important issues: Performance Reliability, availability Cost One Rack-Mount PC Unit (Google uses ~ 10,000)
ECE 313 Fall 2004Lecture 1 - Course Overview12 Embedded Computer Systems Computer as part of larger system Consumer electronics, appliances Networking, telecommunications Automotive / aircraft control What’s in the box Microcontroller / Microprocessor Memory: RAM, ROM; Disk Special-purpose I/O (including analog stuff) Important issues Cost, Power Consumption Performance (against real-time constraints) Reliability and Safety
ECE 313 Fall 2004Lecture 1 - Course Overview13 Computer System Organization “Five classic components” Processor Control Datapath OutputInput Memory
ECE 313 Fall 2004Lecture 1 - Course Overview14 Computer System Operation Executing Programs - the “fetch/execute” cycle Processor fetches instruction from memory Processor executes “machine language” instruction Processor Control Datapath Memory next instr OK, but how do we write useful programs using these instructions? Load Data Perform Calculation Store Results Address Instruction
ECE 313 Fall 2004Lecture 1 - Course Overview15 55EF Abstractions in Computer Systems Designers use abstraction to manage complexity Focus on pertinent information Suppress unnecessary detail Example: Auto controls Well-understood interface (inputs, outputs) Details suppressed
ECE 313 Fall 2004Lecture 1 - Course Overview16 Machine Language High-Level Language (C) c = a + b; Assembly Language add R8,R1,R2 AssemblerCompiler Software Abstractions - Languages
ECE 313 Fall 2004Lecture 1 - Course Overview17 Software Abstractions - System Software Operating system Insulates programmer from low-level details Manages system resources Manages file system Coordinates operation of multiple programs Protects from system from damage by user programs (accidental or malicious) Programs interact w/ OS through system calls Libraries Provide programmer access to high-level “primitives” Programs access through well-defined interface (API)
ECE 313 Fall 2004Lecture 1 - Course Overview18 Instruction Set Architecture (ISA) - The Hardware-Software Interface The most important abstraction of computer design Logic - gates, state machines, etc. Circuit - transistors, etc. Layout - mask patterns, etc. Hardware ProcessorI/O System Software Compiler Application Programs Operating System Application Instruction Set Architecture Interface between SW & HW
ECE 313 Fall 2004Lecture 1 - Course Overview19 Architecture vs. Organization Architecture: features visible to programmer Registers and memory model Data types Instructions Organization: system implementation Processor design: Datapath, Control, “microarchitecture” System design: Processor + Memory, I/O
ECE 313 Fall 2004Lecture 1 - Course Overview20 Example Architecture: MC68HC11 ADDA 42 ABA BEQ 0x0000 0x0001 0x0002 0x0003 0xfffe 0xffff 8 bits Memory (Max 65KB) AB X Y SP PC=0x0002 CCR 16 bits 8 bits Registers 16 bits opcode pre-opcodeopcode operand opcodeoperand opcode Instruction Formats
ECE 313 Fall 2004Lecture 1 - Course Overview21 Example Architecture: 80x86 (IA-32) Instruction Formats not shown (1-17 bytes in length) EIP(PC)=0x C (condition codes) EAX ECX EDX EBX ESP EBP ESI EDI CS SS DS ES FS GS EIP EFLAGS bits Registers Memory (Max. 4GB) 0x x x x C 0x x x x C 0xfffffffc 32 bits
ECE 313 Fall 2004Lecture 1 - Course Overview22 Example Architecture: MIPS Memory (Max. 4GB) 0x x x x C 0x x x x C 0xfffffffc 32 bits 32 General Purpose Registers R0 R1 R2 R30 R31 PC = 0x C 32 bits Registers 32 oprsrtoffset oprsrtrdfunctshamt opaddress Instruction Formats
ECE 313 Fall 2004Lecture 1 - Course Overview23 Top 5 Reasons to Study MIPS 5.It’s in the book 4.It’s used in many applications 3.Learning its architecture and implementation exposes you to important concepts 2.It’s relatively simple and easy to implement (compared to other architectures) 1.Ideas presented using MIPS generalize to other architectures (even the 80x86!)
ECE 313 Fall 2004Lecture 1 - Course Overview24 Under the Hood: The Pentium 4 Image sources: Intel Corporation Package Die Photo
ECE 313 Fall 2004Lecture 1 - Course Overview25 Pentium 4 Microarchitecture Source: “The Microarchitecture of the Pentium® 4 Processor”, Intel Technology Journal, First Quarter
ECE 313 Fall 2004Lecture 1 - Course Overview26 Under the Hood: A Desktop PC Display (CRT or LCD) Keyboard, Mouse “The Box” Power Supply Motherboard (see next slide) Memory Graphics card Standard bus card slots (e.g. PCI) Standard I/O connectors (e.g. USB, Parallel Port, etc) Disks, CDRW, etc.
ECE 313 Fall 2004Lecture 1 - Course Overview27 Organization of a Desktop PC
ECE 313 Fall 2004Lecture 1 - Course Overview28 Typical Motherboard (Pentium III) Rear Panel Conn. Processor Memory N. Bridge S. Bridge IDE Disk Conn. AGP BIOS ROM Floppy Conn.Power Conn. PCI Cards
ECE 313 Fall 2004Lecture 1 - Course Overview29 Under the Hood: Apple iPod Source: EE Times,
ECE 313 Fall 2004Lecture 1 - Course Overview30 Outline - Course Overview Administrative Details Computer Systems Overview Types of Computer Systems High-Level Organization - The “5 classic components” High-Level Operations - the “fetch/execute cycle” Common Abstractions “Under the Hood” of some example computer systems Course Overview Roadmap - subjects to be covered Course Objectives Project Details
ECE 313 Fall 2004Lecture 1 - Course Overview31 Roadmap for the Term: Major Topics Computer Systems Overview Technology Trends Instruction Sets (and Software) Logic and Arithmetic Performance Processor Implementation Memory Systems Input/Output
ECE 313 Fall 2004Lecture 1 - Course Overview32 Computer Systems Overview Types of Computer Systems Abstractions used in Computer Systems Architecture vs. Organization Common Architectures “Under the Hood” - chips and systems
ECE 313 Fall 2004Lecture 1 - Course Overview33 Technology Trends Historical Notes Current Technology (CMOS VLSI) Trends (Moore’s Law) Image Source: Intel Corporation
ECE 313 Fall 2004Lecture 1 - Course Overview34 Instruction Sets (and Software) General principles of instruction set design The MIPS instruction set Software concerns: procedures, stacks, etc. oprsrtoffset oprsrtrdfunctshamt opaddress
ECE 313 Fall 2004Lecture 1 - Course Overview35 Logic & Arithmetic Quick review: binary numbers and arithmetic Adder & ALUs; multiplication & division Floating Point A B F(A,B) Operation Select ALU
ECE 313 Fall 2004Lecture 1 - Course Overview36 Performance Response Time vs. Throughput Measuring performance using individual programs Combining measurements Benchmarks
ECE 313 Fall 2004Lecture 1 - Course Overview37 Processor Implementation Basic implementation Single-Cycle Multicycle Pipelined implementation Advanced techniques
ECE 313 Fall 2004Lecture 1 - Course Overview38 Memory Systems Memory Technology Overview Memory Hierarchy Cache Memories - making access faster Virtual Memory - making memory larger using disk RegistersCache Memory ProcessorDisk
ECE 313 Fall 2004Lecture 1 - Course Overview39 Input/Output I/O Overview Impact of I/O on Performance Buses Interfacing Image Source: Seagate Technolgy LLC
ECE 313 Fall 2004Lecture 1 - Course Overview40 Course Objectives Students should be able to... Describe high-level organization of computer systems Understand and use performance metrics Understand representation of instructions in memory Understand the fetch/execute cycle Understand the concept of Instruction Set Architecture Understand how computers represent data Design simple arithmetic circuits: adders, ALUs, etc. Design simple processor implementations Understand memory organization Understand input/output
ECE 313 Fall 2004Lecture 1 - Course Overview41 About the Projects Design modeling and simulation using synthesizable Verilog HDL * Modeling basic components Single-cycle processor design Multi-cycle processor design Pipelined processor design (group project) Design tool of choice: Synapticad Verilogger Demonstration version works with up to 1K lines Nice GUI for simulation and debugging Free for installation on your own PCs ( ) or download locally from ECE 313 website * HDL = Hardware Description Language
ECE 313 Fall 2004Lecture 1 - Course Overview42 Top 5 Reasons for Learning Verilog HDL 5.It’s syntax is close to C/C++/Java, making it easy to learn (compared to VHDL) 4.It may help you get a job 3.It’s the key to high-level design of processors, ASICs, and FPGAs 2.It will give you experience working with simulations of complex digital circuits 1.It will reinforce your understanding of computer organization concepts and their implementations
ECE 313 Fall 2004Lecture 1 - Course Overview43 Roadmap for the Term: Major Topics Computer Systems Overview Technology Trends Instruction Sets (and Software) Logic and Arithmetic Performance Processor Implementation Memory Systems Input/Output