1 / 36

Computer Architecture

Computer Architecture. Chapter 1 Fundamentals Prof. Jerry Breecher CSCI 240 Fall 2003. Introduction. 1.1 Introduction 1.2 The Task of a Computer Designer 1.3 Technology and Computer Usage Trends 1.4 Cost and Trends in Cost 1.5 Measuring and Reporting Performance

tex
Download Presentation

Computer Architecture

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Computer Architecture Chapter 1 Fundamentals Prof. Jerry Breecher CSCI 240 Fall 2003 Chapter 1 - Fundamentals

  2. Introduction 1.1 Introduction 1.2 The Task of a Computer Designer 1.3 Technology and Computer Usage Trends 1.4 Cost and Trends in Cost 1.5 Measuring and Reporting Performance 1.6 Quantitative Principles of Computer Design 1.7 Putting It All Together: The Concept of Memory Hierarchy Chapter 1 - Fundamentals

  3. Art and Architecture What’s the difference between Art and Architecture? Lyonel Feininger, Marktkirche in Halle Chapter 1 - Fundamentals

  4. Art and Architecture Notre Dame de Paris What’s the difference between Art and Architecture? Chapter 1 - Fundamentals

  5. What’s Computer Architecture? The attributes of a [computing] system as seen by the programmer, i.e., the conceptual structure and functional behavior, as distinct from the organization of the data flows and controls the logic design, and the physical implementation. Amdahl, Blaaw, and Brooks, 1964 SOFTWARE Chapter 1 - Fundamentals

  6. What’s Computer Architecture? • 1950s to 1960s: Computer Architecture Course Computer Arithmetic. • 1970s to mid 1980s: Computer Architecture Course Instruction Set Design, especially ISA appropriate for compilers. (What we’ll do in Chapter 2) • 1990s to 2000s: Computer Architecture CourseDesign of CPU, memory system, I/O system, Multiprocessors. (All evolving at a tremendous rate!) Chapter 1 - Fundamentals

  7. The Task of a Computer Designer 1.1 Introduction 1.2 The Task of a Computer Designer 1.3 Technology and Computer Usage Trends 1.4 Cost and Trends in Cost 1.5 Measuring and Reporting Performance 1.6 Quantitative Principles of Computer Design 1.7 Putting It All Together: The Concept of Memory Hierarchy Evaluate Existing Systems for Bottlenecks Implementation Complexity Benchmarks Technology Trends Implement Next Generation System Simulate New Designs and Organizations Workloads Chapter 1 - Fundamentals

  8. Technology and Computer Usage Trends • When building a Cathedral numerous very practical considerations need to be taken into account: • available materials • worker skills • willingness of the client to pay the price. 1.1 Introduction 1.2 The Task of a Computer Designer 1.3 Technology and Computer Usage Trends 1.4 Cost and Trends in Cost 1.5 Measuring and Reporting Performance 1.6 Quantitative Principles of Computer Design 1.7 Putting It All Together: The Concept of Memory Hierarchy • Similarly, Computer Architecture is about working within constraints: • What will the market buy? • Cost/Performance • Tradeoffs in materials and processes Chapter 1 - Fundamentals

  9. Trends Gordon Moore (Founder of Intel) observed in 1965 that the number of transistors that could be crammed on a chip doubles every year. This has CONTINUED to be true since then. Chapter 1 - Fundamentals

  10. Trends Processor performance, as measured by the SPEC benchmark has also risen dramatically. Chapter 1 - Fundamentals

  11. Trends Memory Capacity (and Cost) have changed dramatically in the last 20 years. year size(Mb) cyc time 1980 0.0625 250 ns 1983 0.25 220 ns 1986 1 190 ns 1989 4 165 ns 1992 16 145 ns 1996 64 120 ns 2000 256 100 ns Chapter 1 - Fundamentals

  12. Trends Based on SPEED, the CPU has increased dramatically, but memory and disk have increased only a little. This has led to dramatic changed in architecture, Operating Systems, and Programming practices. Capacity Speed (latency) Logic 2x in 3 years 2x in 3 years DRAM 4x in 3 years 2x in 10 years Disk 4x in 3 years 2x in 10 years Chapter 1 - Fundamentals

  13. Measuring And Reporting Performance 1.1 Introduction 1.2 The Task of a Computer Designer 1.3 Technology and Computer Usage Trends 1.4 Cost and Trends in Cost 1.5 Measuring and Reporting Performance 1.6 Quantitative Principles of Computer Design 1.7 Putting It All Together: The Concept of Memory Hierarchy • This section talks about: • Metrics – how do we describe in a numerical way the performance of a computer? • What tools do we use to find those metrics? Chapter 1 - Fundamentals

  14. Plane DC to Paris Speed Passengers Throughput (pmph) Boeing 747 6.5 hours 610 mph 470 286,700 BAD/Sud Concodre 3 hours 1350 mph 132 178,200 Metrics • Time to run the task (ExTime) • Execution time, response time, latency • Tasks per day, hour, week, sec, ns … (Performance) • Throughput, bandwidth Chapter 1 - Fundamentals

  15. Metrics - Comparisons "X is n times faster than Y" means ExTime(Y) Performance(X) --------- = --------------- ExTime(X) Performance(Y) Speed of Concorde vs. Boeing 747 Throughput of Boeing 747 vs. Concorde Chapter 1 - Fundamentals

  16. Metrics - Comparisons Pat has developed a new product, "rabbit" about which she wishes to determine performance. There is special interest in comparing the new product, rabbit to the old product, turtle, since the product was rewritten for performance reasons. (Pat had used Performance Engineering techniques and thus knew that rabbit was "about twice as fast" as turtle.) The measurements showed: Performance Comparisons ProductTransactions / secondSeconds/ transactionSeconds to process transaction Turtle 30 0.0333 3 Rabbit 60 0.0166 1 Which of the following statements reflect the performance comparison of rabbit and turtle? o Rabbit is 100% faster than turtle. o Rabbit is twice as fast as turtle. o Rabbit takes 1/2 as long as turtle. o Rabbit takes 1/3 as long as turtle. o Rabbit takes 100% less time than turtle. o Rabbit takes 200% less time than turtle. o Turtle is 50% as fast as rabbit. o Turtle is 50% slower than rabbit. o Turtle takes 200% longer than rabbit. o Turtle takes 300% longer than rabbit. Chapter 1 - Fundamentals

  17. Application Answers per month Operations per second Programming Language Compiler (millions) of Instructions per second: MIPS (millions) of (FP) operations per second: MFLOP/s ISA Datapath Megabytes per second Control Function Units Cycles per second (clock rate) Transistors Wires Pins Metrics - Throughput Chapter 1 - Fundamentals

  18. Methods For Predicting Performance • Benchmarks, Traces, Mixes • Hardware: Cost, delay, area, power estimation • Simulation (many levels) • ISA, RT, Gate, Circuit • Queuing Theory • Rules of Thumb • Fundamental “Laws”/Principles Chapter 1 - Fundamentals

  19. Benchmarks SPEC: System Performance Evaluation Cooperative • First Round 1989 • 10 programs yielding a single number (“SPECmarks”) • Second Round 1992 • SPECInt92 (6 integer programs) and SPECfp92 (14 floating point programs) • Compiler Flags unlimited. March 93 of DEC 4000 Model 610: spice: unix.c:/def=(sysv,has_bcopy,”bcopy(a,b,c)= memcpy(b,a,c)” wave5: /ali=(all,dcom=nat)/ag=a/ur=4/ur=200 nasa7: /norecu/ag=a/ur=4/ur2=200/lc=blas • Third Round 1995 • new set of programs: SPECint95 (8 integer programs) and SPECfp95 (10 floating point) • “benchmarks useful for 3 years” • Single flag setting for all programs: SPECint_base95, SPECfp_base95 Chapter 1 - Fundamentals

  20. Benchmarks CINT2000 (Integer Component of SPEC CPU2000): Program Language What Is It 164.gzip C Compression 175.vpr C FPGA Circuit Placement and Routing 176.gcc C C Programming Language Compiler 181.mcf C Combinatorial Optimization 186.crafty C Game Playing: Chess 197.parser C Word Processing 252.eon C++ Computer Visualization 253.perlbmk C PERL Programming Language 254.gap C Group Theory, Interpreter 255.vortex C Object-oriented Database 256.bzip2 C Compression 300.twolf C Place and Route Simulator http://www.spec.org/osg/cpu2000/CINT2000/ Chapter 1 - Fundamentals

  21. Benchmarks CFP2000 (Floating Point Component of SPEC CPU2000): Program Language What Is It 168.wupwise Fortran 77 Physics / Quantum Chromodynamics 171.swim Fortran 77 Shallow Water Modeling 172.mgrid Fortran 77 Multi-grid Solver: 3D Potential Field 173.applu Fortran 77 Parabolic / Elliptic Differential Equations 177.mesa C 3-D Graphics Library 178.galgel Fortran 90 Computational Fluid Dynamics 179.art C Image Recognition / Neural Networks 183.equake C Seismic Wave Propagation Simulation 187.facerec Fortran 90 Image Processing: Face Recognition 188.ammp C Computational Chemistry 189.lucas Fortran 90 Number Theory / Primality Testing 191.fma3d Fortran 90 Finite-element Crash Simulation 200.sixtrack Fortran 77 High Energy Physics Accelerator Design 301.apsi Fortran 77 Meteorology: Pollutant Distribution http://www.spec.org/osg/cpu2000/CFP2000/ Chapter 1 - Fundamentals

  22. Sample Results For SpecINT2000 Benchmarks http://www.spec.org/osg/cpu2000/results/res2000q3/cpu2000-20000718-00168.asc Base Base Base Peak Peak Peak Benchmarks Ref Time Run Time Ratio Ref Time Run Time Ratio 164.gzip 1400 277 505* 1400 270 518* 175.vpr 1400 419 334* 1400 417 336* 176.gcc 1100 275 399* 1100 272 405* 181.mcf 1800 621 290* 1800 619 291* 186.crafty 1000 191 522* 1000 191 523* 197.parser 1800 500 360* 1800 499 361* 252.eon 1300 267 486* 1300 267 486* 253.perlbmk 1800 302 596* 1800 302 596* 254.gap 1100 249 442* 1100 248 443* 255.vortex 1900 268 710* 1900 264 719* 256.bzip2 1500 389 386* 1500 375 400* 300.twolf 3000 784 382* 3000 776 387* SPECint_base2000 438 SPECint2000 442 Intel OR840(1 GHz Pentium III processor) Chapter 1 - Fundamentals

  23. Benchmarks Performance Evaluation • “For better or worse, benchmarks shape a field” • Good products created when have: • Good benchmarks • Good ways to summarize performance • Given sales is a function in part of performance relative to competition, investment in improving product as reported by performance summary • If benchmarks/summary inadequate, then choose between improving product for real programs vs. improving product to get more sales;Sales almost always wins! • Execution time is the measure of computer performance! Chapter 1 - Fundamentals

  24. Benchmarks How to Summarize Performance Management would like to have one number. Technical people want more: • They want to have evidence of reproducibility – there should be enough information so that you or someone else can repeat the experiment. • There should be consistency when doing the measurements multiple times. How would you report these results? Chapter 1 - Fundamentals

  25. Quantitative Principles of Computer Design 1.1 Introduction 1.2 The Task of a Computer Designer 1.3 Technology and Computer Usage Trends 1.4 Cost and Trends in Cost 1.5 Measuring and Reporting Performance 1.6 Quantitative Principles of Computer Design 1.7 Putting It All Together: The Concept of Memory Hierarchy • Make the common case fast. • Amdahl’s Law: • Relates total speedup of a system to the speedup of some portion of that system. Chapter 1 - Fundamentals

  26. Quantitative Design Amdahl's Law Suppose that enhancement E accelerates a fraction F of the task by a factor S, and the remainder of the task is unaffected Speedup due to enhancement E: This fraction enhanced Chapter 1 - Fundamentals

  27. ExTimenew = ExTimeold x (1 - Fractionenhanced) + Fractionenhanced Speedupenhanced 1 ExTimeold ExTimenew Speedupoverall = = (1 - Fractionenhanced) + Fractionenhanced Speedupenhanced Quantitative Design Amdahl's Law This fraction enhanced ExTimeold ExTimenew Chapter 1 - Fundamentals

  28. ExTimenew= ExTimeold x (0.9 + .1/2) = 0.95 x ExTimeold 1 Speedupoverall = = 1.053 0.95 Quantitative Design Amdahl's Law • Floating point instructions improved to run 2X; but only 10% of actual instructions are FP Chapter 1 - Fundamentals

  29. Cycles Per Instruction Quantitative Design • CPI = (CPU Time * Clock Rate) / Instruction Count • = Cycles / Instruction Count Invest Resources where time is Spent! Number of instructions of type I. “Instruction Frequency” where Chapter 1 - Fundamentals

  30. Cycles Per Instruction Quantitative Design Suppose we have a machine where we can count the frequency with which instructions are executed. We also know how many cycles it takes for each instruction type. Base Machine (Reg / Reg) Op Freq Cycles CPI(i) (% Time) ALU 50% 1 .5 (33%) Load 20% 2 .4 (27%) Store 10% 2 .2 (13%) Branch 20% 2 .4 (27%) Total CPI 1.5 How do we get CPI(I)? How do we get %time? Chapter 1 - Fundamentals

  31. Locality of Reference Quantitative Design Programs access a relatively small portion of the address space at any instant of time. There are two different types of locality: Temporal Locality (locality in time): If an item is referenced, it will tend to be referenced again soon (loops, reuse, etc.) Spatial Locality (locality in space/location): If an item is referenced, items whose addresses are close by tend to be referenced soon (straight line code, array access, etc.) Chapter 1 - Fundamentals

  32. The Concept of Memory Hierarchy 1.1 Introduction 1.2 The Task of a Computer Designer 1.3 Technology and Computer Usage Trends 1.4 Cost and Trends in Cost 1.5 Measuring and Reporting Performance 1.6 Quantitative Principles of Computer Design 1.7 Putting It All Together: The Concept of Memory Hierarchy Fast memory is expensive. Slow memory is cheap. The goal is to minimize the price/performance for a particular price point. Chapter 1 - Fundamentals

  33. Memory Hierarchy Registers Level 1 cache Level 2 Cache Memory Disk Chapter 1 - Fundamentals

  34. Memory Hierarchy • Hit: data appears in some block in the upper level (example: Block X) • Hit Rate: the fraction of memory access found in the upper level • Hit Time: Time to access the upper level which consists of RAM access time + Time to determine hit/miss • Miss: data needs to be retrieve from a block in the lower level (Block Y) • Miss Rate = 1 - (Hit Rate) • Miss Penalty: Time to replace a block in the upper level + Time to deliver the block the processor • Hit Time << Miss Penalty (500 instructions on 21264!) Chapter 1 - Fundamentals

  35. Memory Hierarchy Registers Level 1 cache Level 2 Cache Memory Disk • What is the cost of executing a program if: • Stores are free (there’s a write pipe) • Loads are 20% of all instructions • 80% of loads hit (are found) in the Level 1 cache • 97 of loads hit in the Level 2 cache. Chapter 1 - Fundamentals

  36. Wrap Up 1.1 Introduction 1.2 The Task of a Computer Designer 1.3 Technology and Computer Usage Trends 1.4 Cost and Trends in Cost 1.5 Measuring and Reporting Performance 1.6 Quantitative Principles of Computer Design 1.7 Putting It All Together: The Concept of Memory Hierarchy Chapter 1 - Fundamentals

More Related