ECE 252 / CPS 220 Advanced Computer Architecture I. Administrivia. Instructors and Course Website. Where to Get Answers

Similar documents
Which is the best? Measuring & Improving Performance (if planes were computers...) An architecture example

ECE 252 / CPS 220 Advanced Computer Architecture I. Administrivia. Instructors. Where to Get Answers

Instructor Information

Performance, Cost and Amdahl s s Law. Arquitectura de Computadoras

Computer System. Performance

Computer Science 246. Computer Architecture

EECS 452 Advanced Computer Architecture - I

Overview of Today s Lecture: Cost & Price, Performance { 1+ Administrative Matters Finish Lecture1 Cost and Price Add/Drop - See me after class

ECE 486/586. Computer Architecture. Lecture # 2

This Unit. CIS 501 Computer Architecture. As You Get Settled. Readings. Metrics Latency and throughput. Reporting performance

EECS4201 Computer Architecture

Copyright 2012, Elsevier Inc. All rights reserved.

Computer Architecture A Quantitative Approach, Fifth Edition. Chapter 1. Copyright 2012, Elsevier Inc. All rights reserved. Computer Technology

Advanced Computer Architecture (CS620)

EE282 Computer Architecture. Lecture 1: What is Computer Architecture?

Microarchitecture Overview. Performance

ECE 2162 Intro & Trends. Jun Yang Fall 2009

Performance of computer systems

COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Interface. 5 th. Edition. Chapter 1. Computer Abstractions and Technology

ECE C61 Computer Architecture Lecture 2 performance. Prof. Alok N. Choudhary.

PERFORMANCE METRICS. Mahdi Nazm Bojnordi. CS/ECE 6810: Computer Architecture. Assistant Professor School of Computing University of Utah

Fundamentals of Quantitative Design and Analysis

Microarchitecture Overview. Performance

Performance COE 403. Computer Architecture Prof. Muhamed Mudawar. Computer Engineering Department King Fahd University of Petroleum and Minerals

EECS2021. EECS2021 Computer Organization. EECS2021 Computer Organization. Morgan Kaufmann Publishers September 14, 2016

1.6 Computer Performance

Performance. CS 3410 Computer System Organization & Programming. [K. Bala, A. Bracy, E. Sirer, and H. Weatherspoon]

CpE 442 Introduction to Computer Architecture. The Role of Performance

Computer Architecture. What is it?

TDT4255 Computer Design. Lecture 1. Magnus Jahre

Computer Architecture. Minas E. Spetsakis Dept. Of Computer Science and Engineering (Class notes based on Hennessy & Patterson)

Computer Performance Evaluation: Cycles Per Instruction (CPI)

Lecture 1: Introduction

ECE/CS 552: Introduction To Computer Architecture 1

Outline Marquette University

Chapter 1. Instructor: Josep Torrellas CS433. Copyright Josep Torrellas 1999, 2001, 2002,

Computer Architecture. Fall Dongkun Shin, SKKU

Chapter 1. Computer Abstractions and Technology. Adapted by Paulo Lopes, IST

Course web site: teaching/courses/car. Piazza discussion forum:

Performance, Power, Die Yield. CS301 Prof Szajda

Lecture 2: Computer Performance. Assist.Prof.Dr. Gürhan Küçük Advanced Computer Architectures CSE 533

CS61C : Machine Structures

COMPUTER ORGANIZATION AND DESIGN. 5 th Edition. The Hardware/Software Interface. Chapter 1. Computer Abstractions and Technology

MEASURING COMPUTER TIME. A computer faster than another? Necessity of evaluation computer performance

CS/ECE 752: Advanced Computer Architecture 1. Lecture 1: What is Computer Architecture?

The Computer Revolution. Classes of Computers. Chapter 1

CPS104 Computer Organization Lecture 1

Lecture 3: Evaluating Computer Architectures. How to design something:

Computer Architecture!

Engineering 9859 CoE Fundamentals Computer Architecture

CPS104 Computer Organization Lecture 1. CPS104: Computer Organization. Meat of the Course. Robert Wagner

ECE 587 Advanced Computer Architecture I

Lecture 2: Performance

How What When Why CSC3501 FALL07 CSC3501 FALL07. Louisiana State University 1- Introduction - 1. Louisiana State University 1- Introduction - 2

EE382 Processor Design. Class Objectives

Computer and Information Sciences College / Computer Science Department CS 207 D. Computer Architecture

CPU Performance Evaluation: Cycles Per Instruction (CPI) Most computers run synchronously utilizing a CPU clock running at a constant clock rate:

Computer Architecture

Instructors. ECE 152 Introduction to Computer Architecture. Undergrad Teaching Assistants. Course Website. Textbook.

Computer Architecture. R. Poss

CSE 141: Computer Architecture. Professor: Michael Taylor. UCSD Department of Computer Science & Engineering

Measure, Report, and Summarize Make intelligent choices See through the marketing hype Key to understanding effects of underlying architecture

ECE 486/586. Computer Architecture. Lecture # 3

Transistors and Wires

CS152 Computer Architecture and Engineering. Lecture 9 Performance Dave Patterson. John Lazzaro. www-inst.eecs.berkeley.

Computer Architecture Computer Architecture. Computer Architecture. What is Computer Architecture? Grading

ECE 154A. Architecture. Dmitri Strukov

What is Good Performance. Benchmark at Home and Office. Benchmark at Home and Office. Program with 2 threads Home program.

Multiple Issue ILP Processors. Summary of discussions

CSE 502 Graduate Computer Architecture

Computer Architecture

Computer Architecture

Lecture 1: CS/ECE 3810 Introduction

The Role of Performance

Performance Measurement (as seen by the customer)

Computer Architecture s Changing Definition

UNIVERSITY OF MASSACHUSETTS Dept. of Electrical & Computer Engineering. Computer Architecture ECE 568/668

EECS2021E EECS2021E. The Computer Revolution. Morgan Kaufmann Publishers September 12, Chapter 1 Computer Abstractions and Technology 1

Performance evaluation. Performance evaluation. CS/COE0447: Computer Organization. It s an everyday process

1.13 Historical Perspectives and References

Lecture Topics. Principle #1: Exploit Parallelism ECE 486/586. Computer Architecture. Lecture # 5. Key Principles of Computer Architecture

1.3 Data processing; data storage; data movement; and control.

CS/EE 6810: Computer Architecture

Computer Architecture

UCB CS61C : Machine Structures

Impact of Cache Coherence Protocols on the Processing of Network Traffic

Defining Performance. Performance 1. Which airplane has the best performance? Computer Organization II Ribbens & McQuain.

EE282H: Computer Architecture and Organization. EE282H: Computer Architecture and Organization -- Course Overview

Reporting Performance Results

Quantifying Performance EEC 170 Fall 2005 Chapter 4

Fundamentals of Computer Design

CS61C - Machine Structures. Week 6 - Performance. Oct 3, 2003 John Wawrzynek.

When and Where? Course Information. Expected Background ECE 486/586. Computer Architecture. Lecture # 1. Spring Portland State University

Chapter 1. and Technology

The Von Neumann Computer Model

Computer Architecture

EECS 598: Integrating Emerging Technologies with Computer Architecture. Lecture 2: Figures of Merit and Evaluation Methodologies

ECE 588/688 Advanced Computer Architecture II

CMPSCI 201: Architecture and Assembly Language

Vector and Parallel Processors. Amdahl's Law

Transcription:

ECE 252 / CPS 220 Advanced Computer Architecture I Fall 2003 Duke University Instructor: Prof. Daniel Sorin (sorin@ee.duke.edu) Administrivia addresses, email, website, etc. list of topics expected background course requirements grading and academic misconduct based on slides developed by Profs. Roth, Hill, Wood, Sohi, Smith, Lipasti, and Vijaykumar 2003 by by Sorin, Roth, Hill, Wood, ECE 252/ CPS 220 Lecture Notes 1 2 Instructors and Course Website instructor: Prof. Daniel Sorin (sorin@ee.duke.edu) office: 1111 Hudson Hall office hours: Weds 3-4, Thurs 10-11 TA: Phil Paik (pyp@ee.duke.edu) no office hours - send questions by email website: http://www.ee.duke.edu/~sorin/ece252 info on schedule, lectures, readings, etc. please become familiar with this website don t email me or Phil without first checking website for the answer Where to Get Answers Consult course resources in this order: Course Website (http://www.ee.duke.edu/~sorin/ece252) Course Newsgroup (duke.courses.ece252) TA: Phil Paik (pyp@ee.duke.edu) Professor Sorin Email to TA and Professor must have subject that begins with ECE252 No other email will be answered! 3 4

What is This Course All About? State-of-the-art computer hardware design Topics Uniprocessor architecture (i.e., microprocessors) Memory architecture I/O architecture Brief look at multithreading and multiprocessors Fundamentals, current systems, and future systems Will read from textbook, classic papers, brand-new papers Course Goals and Expectations Course Goals + Understand how current processors work + Understand how to evaluate/compare processors + Learn how to use simulator to perform experiments + Learn research skills by performing term project Course expectations: Will loosely follow text Major emphasis on cutting-edge issues Students will read a list of research papers Term project 5 6 Expected Background Basic architecture (ECE 152 / CPS 104) Basic OS (ECE 153 / CPS 110) Other useful and related courses: Digital system design (ECE 251) VLSI systems (ECE 261) Multiprocessor architecture (ECE 259 / CPS 221) Fault tolerant computing (ECE 254) Computer networks and systems (CPS 114 & 214) Programming languages & compilers (CS 106 & 206) Advanced OS (CPS 210) Course Components Reading Materials Computer Architecture: A Quantitative Approach by Hennessy and Patterson, 3rd Edition Readings in Computer Architecture by Hill, Jouppi, Sohi Recent research papers (online) Homework 4 to 6 homework assignments Project Groups of 3 or 2 Exams Midterm and final exam, in class 7 8

Grading Conduct Grading breakdown Homework: 30% Midterm: 15% Project: 25% Final: 30% Lectures Consult course website for tentative schedule Academic Misconduct University policy will be followed strictly Zero tolerance for cheating and/or plagiarism Late policy Late homeworks late <1 day = 50% off late >1 day = zero No late term project will be accepted. Period. Now, moving on to computer architecture... 9 10 Question What do these two time periods have in common? big bang 2001 2001 2003 What is Computer Architecture? The term architecture is used here to describe the attributes of a system as seen by the programmer, i.e., the conceptual structure and functional behavior as distinct from the organization of the dataflow and controls, the logic design, and the physical implementation. Gene Amdahl, IBM Journal of R&D, Apr 1964 11 12

Architecture and Other Disciplines Application Software Operating Systems, Compilers, Networking Software Computer Architecture Circuits, Wires, Devices, Network Hardware architecture interacts with many other fields can t be studied in a vacuum Levels of Computer Architecture architecture functional appearance to immediate user opcodes, addressing modes, architected registers implementation (microarchitecture) logical structure that performs the architecture pipelining, functional units, caches, physical registers realization (circuits) physical structure that embodies the implementation gates, cells, transistors, wires 13 14 Role of the Computer Microarchitect architect: defines the hardware/software interface microarchitect: defines the hardware implementation usually the same person decisions based on applications performance cost reliability power... Applications -> Requirements -> Designs scientific: weather prediction, molecular modeling need: large memory, floating-point arithmetic examples: CRAY-1, T3E, IBM DeepBlue, BlueGene commercial: inventory, payroll, web serving, e-commerce need: integer arithmetic, high I/O examples: SUN SPARCcenter, Enterprise desktop: multimedia, games, entertainment need: high data bandwidth, graphics examples: Intel Pentium4, IBM Power4, Motorola PPC 620 mobile: laptops need: low power (battery), good performance examples: Intel Mobile Pentium III, Transmeta TM5400 embedded: cell phones, automobile engines, door knobs need: low power (battery + heat), low cost examples: Compaq/Intel StrongARM, X-Scale, Transmeta TM3200 15 16

Why Study Computer Architecture? answer #1: requirements are always changing Why Study Computer Architecture? answer #2: technology playing field is always changing aren t computers fast enough already? are they? fast enough to do everything we will EVER want? AI, VR, protein sequencing,???? is speed the only goal? power: heat dissipation + battery life cost reliability etc. annual technology improvements (approximate) SRAM (logic): density +25%, speed +20% DRAM (memory): density + 60%, speed: + 4% disk (magnetic): density +25%, speed: + 4% fiber:?? parameters change and change relative to one another! designs change even if requirements fixed but requirements are not fixed 17 18 Examples of Changing Designs example I: caches 1970: 10K transistors, DRAM faster than logic -> bad idea 1990: 1M transistors, logic faster than DRAM -> good idea will caches ever be a bad idea again? example II: out-of-order execution 1985: 100K transistors + no precise interrupts -> bad idea 1995: 2M transistors + precise interrupts -> good idea 2005: 100M transistors + 10GHz clock -> bad idea? semiconductor technology is an incredible driving force Moore s Law Cramming More Components onto Integrated Circuits G.E. Moore, Electronics, 1965 observation: (DRAM) transistor density doubles annually became known as Moore s Law wrong density doubles every 18 months (had only 4 data points) corollaries cost / transistor halves annually (18 months) power per transistor decreases with scaling speed increases with scaling reliability increases with scaling (depends how small!) 19 20

Moore s Law performance doubles every 18 months common interpretation of Moore s Law, not original intent wrong! performance doubles every ~2 years self-fulfilling prophecy (Moore s Curve) 2X every 2 years = ~3% increase per month 3% per month used to judge performance features if feature adds 9 months to schedule......it should add at least 30% to performance (1.03 9 = 1.30 30%) Itanium: under Moore s Curve in a big way Q: what do (big bang 2001 and 2000 2003) have in common? A: same absolute increase in computing power Evolution of Single-Chip Microprocessors 1971 1980 1981 1990 1991 2000 2010 Transistor Count 10K 100K 100K 1M 1M 100M 1B Clock Frequency 0.2 2MHz 2 20MHz 20M 1GHz 10GHz IPC < 0.1 0.1 0.9 0.9 2.0 10 (?) MIPS/MFLOPS < 0.2 0.2 20 20 2,000 100,000 some perspective: 1971 2001 performance improved 35,000X!!! what if cars improved at this rate? 1971: 60 MPH / 10 MPG 2001: 2,100,000 MPH / 350,000 MPG but... what if cars crashed as often as computers did? 21 22 Performance and Cost Readings performance metrics CPU performance equation benchmarks and benchmarking reporting averages Amdahl s Law Little s Law concepts balance tradeoffs bursty behavior (average and peak performance) cost (mostly read on your own) Hennessy & Patterson Chapter 1 23 24

Performance Metrics latency: response time, execution time good metric for fixed amount of work (minimize time) throughput: bandwidth, work per time, performance = (1 / latency) when there is NO OVERLAP > (1 / latency) when there is overlap in real processors there is always overlap (e.g., pipelining) good metric for fixed amount of time (maximize work) comparing performance A is N times faster than B iff perf(a)/perf(b) = time(b)/time(a) = N A is X% faster than B iff perf(a)/perf(b) = time(b)/time(a) = 1 + X/100 Performance Metric I: MIPS MIPS (millions of instructions per second) (instruction count / execution time in seconds) x 10-6 instruction count is not a reliable indicator of work some optimizations add instructions work per instruction varies (FP mult >> register move) instruction sets are not equal (3 Pentium instrs!= 3 Alpha instrs) may vary inversely with actual performance relative MIPS (time reference / time new ) x MIPS reference + a little better than native MIPS but very sensitive to reference machine upshot: may be useful if same ISA/compiler/OS/workload 25 26 Performance Metric II: MFLOPS MFLOPS (millions of floating-point operations per second) (FP ops / execution time) x 10-6 like MIPS, but counts only FP operations FP ops can t be optimized away (problem #1 from MIPS) FP ops have longest latencies anyway (problem #2) FP ops are the same across machines (problem #3) may have been valid in 1980 (most programs were FP) most programs today are integer i.e., light on FP (#1) load from memory takes longer than FP divide (#2) Cray doesn t implement divide, Motorola has SQRT, SIN, COS (#3) normalized MFLOPS: tries to deal with problem #3 (canonical FP ops / time) x 10-6 assign a canonical # FP ops to a HLL program CPU Performance Equation processor performance = seconds / program separate into three components instructions program x cycles instruction x seconds cycle architecture implementation realization (ISA) (micro-architecture) (physical layout) compiler-designer processor-designer circuit-designer CPS 206 ECE 252 / CPS 220 ECE 261 27 28

CPU Performance Equation instructions / program: dynamic instruction count mostly determined by program, compiler, ISA cycles / instruction: CPI mostly determined by ISA and CPU/memory organization seconds / cycle: cycle time, clock time, 1 / clock frequency mostly determined by technology and CPU organization uses of CPU performance equation high-level performance comparisons back of the envelope calculations helping architects think about compilers and technology CPU Performance Comparison famous example: RISC Wars (RISC vs. CISC) assume instructions / program: CISC = P, RISC = 2P CPI: CISC = 8, RISC = 2 CISC time = P x 8 x T = 8PT RISC time = 2P x 2 x T = 4PT RISC time = CISC CPU time/2 the truth is much, much, much more complex actual data from IBM AS/400 (CISC -> RISC in 1995): CISC (IMPI) time = P x 7 x T = 7PT RISC (PPC) time = 3.1P x 3 x T/3.1 = 3PT (+1 tech. gen.) 29 30 CPU Back-of-the-Envelope Calculation base machine 43% ALU ops (1 cycle), 21% loads (1 cycle) 12% stores (2 cycles), 24% branches (2 cycles) note: pretending latency is 1 because of pipeline Q: should 1 cycle stores be implemented if it slows clock 15%? old CPI = 0.43 + 0.21 + (0.12 x 2) + (0.24 x 2) = 1.36 new CPI = 0.43 + 0.21 + 0.12 + (0.24 x 2) = 1.24 speedup = (P x 1.36 x T) / (P x 1.24 x 1.15T) = 0.95 Answer: NO! Actually Measuring Performance how are execution-time & CPI actually measured? execution time: time (Unix cmd): wall-clock, CPU, system CPI = CPU time / (clock frequency * # instructions) more useful? CPI breakdown (compute, memory stall, etc.) so we know what the performance problems are (what to fix) measuring CPI breakdown hardware event counters (PentiumPro, Alpha DCPI) calculate CPI using instruction frequencies/event costs cycle-level microarchitecture simulator (e.g., SimpleScalar) + measure exactly what you want model microarchitecture faithfully (at least parts of interest) method of choice for many architects (yours, too!) 31 32

Benchmarks and Benchmarking program as unit of work millions of them, many different kinds, which to use? benchmarks standard programs for measuring/comparing performance + represent programs people care about + repeatable!! benchmarking process define workload extract benchmarks from workload execute benchmarks on candidate machines project performance on new machine run workload on new machine and compare not close enough -> repeat Benchmarks: Instruction Mixes instruction mix: instruction type frequencies ignores dependences + ok for non-pipelined, scalar processor without caches the way all processors used to be example: Gibson Mix - developed in 1950 s at IBM load/store: 31%, branches: 17% compare: 4%, shift: 4%, logical: 2% fixed add/sub: 6%, float add/sub: 7% float mult: 4%, float div: 2%, fixed mul: 1%, fixed div: <1% qualitatively, these numbers are still useful today! 33 34 Benchmarks: Toys, Kernels, Synthetics toy benchmarks: little programs that no one really runs e.g., fibonacci, 8 queens little value, what real programs do these represent? scary fact: used to prove the value of RISC in early 80 s kernels: important (frequently executed) pieces of real programs e.g., Livermore loops, Linpack (inner product) + good for focusing on individual features not big picture over-emphasize target feature (for better or worse) synthetic benchmarks: programs made up for benchmarking e.g., Whetstone, Dhrystone toy kernels++, which programs do these represent? Benchmarks: Real Programs real programs + only accurate way to characterize performance requires considerable work (porting) Standard Performance Evaluation Corporation (SPEC) http://www.spec.org collects, standardizes and distributes benchmark suites consortium made up of industry leaders?!#$: program only included if it makes enough members look good SPEC CPU (CPU intensive benchmarks) SPEC89, SPEC92, SPEC95, SPEC2000 (consortium at work) other benchmark suites SPECjvm, SPECmail, SPECweb 35 36

SPEC CPU2000 12 integer programs (C, C++) gcc (compiler), perl (interpreter), vortex (database) bzip2, gzip (replace compress), crafty (chess, replaces go) eon (rendering), gap (group theoretic enumerations) twolf, vpr (FPGA place and route) parser (grammar checker), mcf (network optimization) 14 floating point programs (C, FORTRAN) swim (shallow water model), mgrid (multigrid field solver) applu (partial diffeq s), apsi (air pollution simulation) wupwise (quantum chromodynamics), mesa (OpenGL library) art (neural network image recognition), equake (wave propagation) fma3d (crash simulation), sixtrack (accelerator design) lucas (primality testing), galgel (fluid dynamics), ammp (chemistry) Benchmarking Pitfalls benchmark properties mismatch with features studied e.g., using SPEC for large cache studies careless scaling using only first few million instructions (initialization phase) reducing program data size choosing performance from wrong application space e.g., in a realtime environment, choosing troff others: SPECweb, TPC-W (amazon.com) using old benchmarks benchmark specials : benchmark-specific optimizations benchmarks must be continuously maintained and updated! 37 38 Reporting Average Performance averages: one of the things architects frequently get wrong + pay attention now and you won t get them wrong on exams important things about averages (i.e., means) ideally proportional to execution time (ultimate metric) AM for times HM for rates (IPCs) GM for ratios (speedups), time proportionality impossible there is no such thing as the average program use average when absolutely necessary What Does The Mean Mean? arithmetic mean (AM): average execution times of N programs 1..Ν (time(i)) / N harmonic mean (HM): average IPCs of N programs arithmetic mean cannot be used for rates (like IPCs) 30 MPH for 1 mile + 90 MPH for 1 mile!= avg. 60 MPH N / 1..N (1 / rate(i)) geometric mean (GM): average speedups of N programs N ( 1..N (speedup(i)) what if programs run at different frequencies within workload? weighting weighted AM = ( 1..N w(i) * time(i)) / N 39 40

GM Weirdness what about averaging ratios (speedups)? HM / AM change depending on which machine is the base machine A machine B B/A A/B Program1 1 10 10 0.1 Program2 1000 100 0.1 10 AM (10+.1)/2 = 5.05 B is 5.05 times faster! (.1+10)/2 = 5.05 A is 5.05 times faster! HM 2/(1/10+1/.1) = 5.05 B is 5.05 times faster! 2/(1/.1+1/10) = 5.05 A is 5.05 times faster! GM (10*.1) = 1 (.1*10) = 1 geometric mean of ratios is not proportional to total time! if we take total execution time, B is 9.1 times faster GM says they are equal Amdahl s Law Validity of the Single-Processor Approach to Achieving Large- Scale Computing Capabilities G. Amdahl, AFIPS, 1967 let optimization speed up fraction f of program by factor s speedup = old / ([(1-f) x old] + f/s x old) = 1 / (1 - f + f/s) f = 95%, s = 1.1 1/[(1-0.95) + (0.95/1.1)] = 1.094 f = 5%, s = 10 1/[(1-0.05) + (0.05/10)] = 1.047 f = 5%, s = 1/[(1-0.05) + (0.05/ )] = 1.052 f = 95%, s 1/[(1-0.95) + (0.95/ )] = 20 make common case fast, but......uncommon case eventually limits performance 41 42 Little s Law Key Relationship between latency and bandwidth: Average number in system = arrival rate * avg. holding time Example: How big a wine cellar should I build? We drink (and buy) an average of 4 bottles per week On average, I want to age my wine 5 years bottles in cellar = 4 bottles/week * 52 weeks/year * 5 years = 1040 bottles System Balance each system component produces & consumes data make sure data supply and demand is balanced X demand >= X supply computation is X-bound e.g., memory bound, CPU-bound, I/O-bound goal: be bound everywhere at once (why?) X can be bandwidth or latency X is bandwidth buy more bandwidth X is latency much tougher problem 43 44

Tradeoffs Bandwidth problems can be solved with money. Latency problems are harder, because the speed of light is fixed and you can t bribe God someone famous (John Cocke?) well... can convert some latency problems to bandwidth problems solve those with money the famous bandwidth/latency tradeoff architecture is the art of making tradeoffs Bursty Behavior Q: to sustain 2 IPC... how many instructions should processor be able to fetch per cycle? execute per cycle? complete per cycle? A: NOT 2 (more than 2) dependences will cause stalls (under-utilization) if desired performance is X, peak performance must be > X programs don t always obey average behavior can t design processor only to handle average behvaior 45 46 Cost very important to real designs startup cost one large investment per chip (or family of chips) increases with time unit cost cost to produce individual copies decreases with time only loose correlation to price and profit Moore s corollary: price of high-performance system is constant performance doubles every 18 months cost per function (unit cost) halves every 18 months assumes startup costs are constant (they aren t) Startup and Unit Costs startup cost: manufacturing fabrication plant, clean rooms, lithography, etc. (~$3B) chip testers/debuggers (~$5M a piece, typically ~200) few companies can play this game (Intel, IBM, Sun) equipment more expensive as devices shrink startup cost: research and development 300 500 person years, mostly spent in verification need more people as designs become more complex unit cost: manufacturing raw materials, chemicals, process time (2 5K per wafer) decreased by improved technology & experience 47 48

Unit Cost and Die Size (Chip Area) unit cost most strongly influenced by physical size of chip (die) semiconductors built on silicon wafers (8 ) chemical+photolithographic steps create transistor/wire layers typical number of metal layers (M) today is 6 (α = ~4) cost per wafer is roughly constant C 0 + C 1 * α (~$5000) basic cost per chip proportional to chip area (mm 2 ) typical: 150 200mm 2, 50mm 2 (embedded) 300mm 2 (Itanium) typical: 300 600 dies per wafer yield (% working chips) inversely proportional to area and α non-zero defect density (manufacturing defect per unit area) P(working chip) = (1 + (defect density * die area)/α) α typical defect density: 0.005 per mm 2 typical yield: (1 + (0.005 * 200) / 4) 4 = 40% typical cost per chip: $5000 / (500 * 40%) = $25 Unit Cost Price if chip cost 25$ to manufacture, why do they cost $500 to buy? integrated circuit costs 25$ must still be tested, packaged, and tested again testing (time == $): $5 per working chip packaging (ceramic+pins): $30 more expensive for more pins or if chip is dissipates a lot of heat packaging yield < 100% (but high) post-packaging test: another 5$ total for packaged chip: ~$65 spread startup cost over volume ($100 200 per chip) proliferations (i.e., shrinks) are startup free (help profits) Intel needs to make a profit...... and so does Dell 49 50 H+P chapter 1 Reading Summary: Performance next up: instruction set design (H+P, chapter 2) 51