790 likes | 1.01k Views
Fundamentals of Computer Design. 游象甫. Outline. Introduction The Changing Face of Computing and the Task of the Computer Designer Technology Trends Cost, Price, and Their Trends Measuring and Reporting Performance Quantitative Principles of Computer Design Performance and Price-Performance.
E N D
Outline • Introduction • The Changing Face of Computing and the Task of the Computer Designer • Technology Trends • Cost, Price, and Their Trends • Measuring and Reporting Performance • Quantitative Principles of Computer Design • Performance and Price-Performance
Introduction • $1K today buys a personal computer better than a computer bought in 1980 for $1M • My first computer, 1989 • Intel 80386 25MHz, 2MB RAM, 20MB hard disk, 51/4” and 31/2” floppy disk, 14” mono screen, dot-matrix printer Epson 500c => all cost NTD 70,000 • My Nth computer, 2004 • Intel Pentium 4 2.4GHz, 768MB DDR-400, 60GB hard disk, 31/2” floppy disk, 19” LCD, Epson C43UX => all cost NTD 35,000
Introduction (cont.) • 1945-1970 • Mainframes dominated • Improvement by better electronic technologies and computer architecture • 1970s • Mainframes and minicomputers still dominated • Improvement by integrated circuit technologies at 25% to 30% per year
Introduction (cont.) • 1980s • Microprocessor-based computers is a main trend • Improvement by integrated circuit technologies at 35% per year • Changes in software design • Mostly with UNIX and C • Virtual elimination of assembly language • Need for efficient compilers
Introduction (cont.) • Reduced Instruction Set Computer (RISC) was proposed • Favor a smaller and simpler set of instructions that all take about the same amount of time to execute • Doing everything in registers and loading and saving the data to and from them. Many researchers prefer the term load-store • Performance Improved by 50% per year • ARM, DEC Alpha, PA-RISC, SPARC, MIPS, and IBM PowerPC
Introduction (cont.) • Complex Instruction Set Computer (CISC) • Each instruction can execute several low-level operations, such as a load from memory, an arithmetic operation, and a memory store, all in a single instruction • CDC 6600, System/360, VAX, PDP-11, Motorola 68000 family and the Intel x86 CPUs
Introduction (cont.) By advanced architectural and organizational ideas
The Changing Face of Computing • Three computing markets • Desktop computing • The first and still the largest market in terms of dollars • Optimize the price-performance • Servers • Availability • A system can reliably and effectively provide a service • Scalability • Efficient Throughput • Transactions per minute
The Cost of an Unavailable System NTD 200,000,000 NTD 450,000
The Changing Face of Computing (cont.) • Embedded computers • Meeting the performance need at a minimum price • Real-time performance requirements • The need to minimize memory and power • Approaches to embedded computers • A combined hardware/software solution • Custom software on an off-the-shelf embedded processor • Custom software on a digital signal processor
The Task of the Computer Designer • Determine what attributes are important for a new machine • Design a machine to maximize performance while staying within cost and power constraints
Technology Trends • To design a new machine, we’d better be aware of technology trends • Integrated circuit logic technology • A growth rate in transistor count on a chip on about 55% per year, 35% from transistor density increase and 20% for die size decrease • Semiconductor DRAM • Density increases by between 40% and 60% per year • Cycle time improved by one-third in 10 years • Bandwidth per chip increases about twice as fast as latency decreases
Technology Trends (cont.) • Magnetic disk technology • Disk density increases by more than 100% per year • Access time has improved one-third in 10 years • Network technology • It took about 10 years for Ethernet to move from 10Mbps to 100Mbps. • It took only 5 years from 100Mbps to 1Gbps • From my personal experience, it seems take less than 2 years from 1Gbps to 10Gbps • Bandwidth is not a problem, but contents and security
Scaling of Transistor Performance, Wires, and Power • Feature size : size of a transistor • decreased from 10 microns in 1971 to 0.18 microns in 2001, recently 0.065 microns in 2005 • Wire delay becomes a problem • Power consumption increases • The first microprocessors consumed 1 watt, while 2 GHz Pentium 4 consumes close to 100 watts • How to remove the heat is a challenge • Why your notebook has different type of CPUs? Cook an egg by CPU
Cost, Price, and Their Trends • Price is what you sell a finished good for • Cost is the amount spend to produce it, including overhead • Time • Volume • Commodification • Learning curve • Manufacturing costs decrease over time
Cost of an Integrated Circuit • Wafer
Example • Find the number of dies per 30cm wafer for a die that is 0.7cm on a side. • Answer: When 1cm on a side, the number becomes 640!
Example • Find the die yield for dies that are 1com on a side and 0.7cm on a side, assuming a defect density of 0.6 per cm2. • Answer
Area vs. Defects per Unit Area From 柯皓仁, 交通大學
Computer Designers vs. Chip Costs • Smaller area + Higher yield -> Smaller cost • Possible solutions • Redundancy to reduce defects -> for DRAM • Simply functions included and reduce the number of I/O pins
Cost vs. Price We are here!
Cost/Price for Different Kinds of Systems From 柯皓仁, 交通大學
How much your boss spends on R&D • 4% - 12%, in general • 15% - 20%, rarely prosper over the long term!
Measuring and Reporting Performance • X is n times faster than Y
Measuring Performance • Wall-clock time, response time, elapsed time • The latency to complete a task, including everything • CPU time • time spent computing your program by CPU • system CPU time + user CPU time
OS Time • Unix time command reports • User CPU time • System CPU time • Total elapsed time • % of elapsed time that is user + system CPU time • BEWARE • OS’s have a way of under-measuring themselves 90.7u 12.9s 2:39 65% From 柯皓仁, 交通大學
Choosing Programs to Evaluate Performance • Real applications– clearly the right choice • Challenges • Porting and eliminating system-dependent activities • User burden -- to know which of your programs you really care about • Modified (or scripted) applications • Enhance portability or focus on particular aspects of system performance From 柯皓仁, 交通大學
Choosing Programs to Evaluate Performance (cont.) • Kernels– small, key pieces of real programs • Best used to isolate performance of individual features to explain the reasons from differences in performance of real programs • Livermore Loops and Linpack are examples • Not real programs however -- no user really uses them • Toy benchmarks– quicksort, puzzle • Beginning programming assignment From 柯皓仁, 交通大學
Choosing Programs to Evaluate Performance (Cont.) • Synthetic benchmarks • Try to match the average frequency of operations and operands of a large set of programs • No user really runs them -- not even pieces of real programs • They typically reside in cache & don’t test memory performance • You must understand what the benchmark code is in order to understand what it might be measuring • Companies thrive or bust on benchmark performance • Hence they optimize for the benchmark From 柯皓仁, 交通大學
Benchmark Suites • SPEC (Standard Performance Evaluation Corporation) • http://www.spec.org • Desktop benchmarks • CPU-intensive: SPEC CPU2000 • Graphic-intensive: SPECviewperf • Server benchmarks • CPU throughput-oriented: SPECrate • I/O activity: SPECSFS (NFS), SPECWeb • Transaction processing: TPC (Transaction Processing Council) From 柯皓仁, 交通大學
Benchmark Suits (cont.) • Embedded benchmarks • EEMBC (EDN Embedded Microprocessor Benchmark Consortium) From 柯皓仁, 交通大學
Reporting Performance Results • Claim Spice takes X seconds on machine Y • Missing: • Spice version input? What was the circuit? • Operational parameters - time step, duration • Compiler and version & optimization settings • Machine configuration - disk, memory, etc. • Source code modification or hand-generated assembly language • Reproducibility is a must • List everything another experimenter would need to duplicate the results From 柯皓仁, 交通大學
Comparing Performance • How can we compare performance fair? • Total Execution Time • Weighted Execution Time • Normalized Execution Time
An Example • By total execution time • B is 9.1 times faster than A for programs P1 and P2 • C is 25 times faster than A for programs P1 and P2 • C is 2.75 times faster than B for programs P1 and P2
An Example (cont.) • Weighted Arithmetic Mean
Normalized Execution Time • Arithmetic Mean • Geometric Mean • Ratio of the means = Mean of the ratios • Consistent no matter which machine is the reference