Chapter 1 Computer Abstractions and Technology Slides partially adapted from Computer Organization and Design,3rd Edition, Patterson & Hennessy, © 2005 Elsevier, Inc.
Introduction This course is all about how computers work But what do we mean by a computer? Different types: desktop, servers, embedded devices Different uses: automobiles, graphics, finance, genomics… Different manufacturers: Intel, Apple, IBM, Microsoft, Sun… Different underlying technologies and different costs!
Introduction Analogy: Consider a course on “automotive vehicles” Many similarities from vehicle to vehicle e.g., wheels Huge differences from vehicle to vehicle e.g., gas vs. electric Best way to learn: Focus on a specific instance and learn how it works While learning general principles and historical perspectives
Why learn this stuff? You want to call yourself a “computer scientist” You want to build software people use need performance You need to make a purchasing decision or offer “expert” advice
The Computer Market Millions of Computers
Why learn this stuff? Both Hardware and Software affect performance: Algorithm determines number of source-level statements Language/Compiler/Architecture determine machine instructions (Chapter 2 and 3) Processor/Memory determine how fast instructions are executed (Chapter 5, 6, and 7) Assessing and Understanding Performance in Chapter 4
“By the architecture of a system, I mean the complete and detailed specification of the user interface. ... As Blaauw has said, ‘Where architecture tells what happens, implementation tells how it is made to happen.’” The Mythical Man-Month, Frederick P. Brooks, Jr.
What is a computer? Components: input (mouse, keyboard) output (display, printer) memory (disk drives, DRAM, SRAM, CD) network Our primary focus: the processor (datapath and control) implemented using millions of transistors Impossible to understand by looking at each transistor We need...
Abstraction Delving into the depths reveals more information An abstraction omits unneeded detail, helps us cope with complexity Example: High-level Language Assembly Language Machine Language What are some of the details that appear in these familiar abstractions?
Instruction Set Architecture (ISA) ISA: An abstract interface between the hardware and the lowest level software of a machine that encompasses all the information necessary to write a machine language program that will run correctly, including instructions, registers, memory access, I/O, and so on. Enables implementations of varying cost and performance to run identical software ABI (application binary interface): The user portion of the instruction set plus the operating system interfaces used by application programmers. Defines a standard for binary portability across computers.
ISA Type Sales Millions of Processor PowerPoint “comic” bar chart with approximate values (see text for correct values)
Impacts of Advancing Technology Processor logic capacity: increases about 30% per year performance: 2x every 1.5 years Memory DRAM capacity: 4x every 3 years now 2x every 2 years memory speed: 1.5x every 10 years cost per bit: decreases about 25% per year Disk capacity: increases about 60% per year
Moore’s Law In 1965, Gordon Moore predicted that the number of transistors that can be integrated on a die would double every 18 to 24 months i.e., grow exponentially with time Amazingly visionary – million transistor/chip barrier was crossed in the 1980’s. 1971: 2300 transistors, 1 MHz clock (Intel 4004) 16 Million transistors (Ultra Sparc III) 2001: 42 Million transistors, 2 GHz clock (Intel Xeon) 2004: 55 Million transistors, 3 GHz, 130nm technology, 250mm2 die (Intel Pentium 4) 140 Million transistor (HP PA-8500)
Processor Performance Increase Intel Pentium 4/3000 DEC Alpha 21264A/667 DEC Alpha 21264/600 Intel Xeon/2000 DEC Alpha 5/500 DEC Alpha 4/266 DEC Alpha 5/300 DEC AXP/500 IBM POWER 100 HP 9000/750 IBM RS6000 MIPS M2000 SUN-4/260 MIPS M/120
DRAM Capacity Growth 512M 256M 128M 64M 16M 4M 1M 256K 64K 16K
Example Machine Organization Workstation design target 25% of cost on processor 25% of cost on memory (minimum memory size) Rest on I/O devices, power supplies, box Computer CPU Memory Devices Control Input Datapath Output
PC Motherboard Closeup
Inside the Pentium 4 Processor Chip
Example Machine Organization TI SuperSPARCtm TMS390Z50 in Sun SPARCstation20 MBus Module SuperSPARC Floating-point Unit DRAM Controller L2 CC Integer Unit MBus L64852 MBus control M-S Adapter Inst Cache Ref MMU Data Cache STDIO SBus serial SCSI kbd Store Buffer SBus DMA mouse Ethernet audio RTC Bus Interface SBus Cards Boot PROM Floppy
How do computers work? Need to understand abstractions such as: Applications software Systems software Assembly Language Machine Language Architectural Issues: i.e., Caches, Virtual Memory, Pipelining Sequential logic, finite state machines Combinational logic, arithmetic circuits Boolean logic, 1s and 0s Transistors used to build logic gates (CMOS) Semiconductors/Silicon used to build transistors Properties of atoms, electrons, and quantum dynamics
Instruction Set Architecture A very important abstraction interface between hardware and low-level software standardizes instructions, machine language bit patterns, etc. advantage: different implementations of the same architecture disadvantage: sometimes prevents using new innovations True or False: Binary compatibility is extraordinarily important? Modern instruction set architectures: IA-32, PowerPC, MIPS, SPARC, ARM, and others
MIPS R3000 Instruction Set Architecture Registers Instruction Categories Load/Store Computational Jump and Branch Floating Point coprocessor Memory Management Special R0 - R31 PC HI LO 3 Instruction Formats: all 32 bits wide OP rs rt rd sa funct OP rs rt immediate OP jump target
Historical Perspective ENIAC built in World War II was the first general purpose computer