Sie sind auf Seite 1von 16

Fundamentals of Computer Design

Fundamentals of Computer Design


There has been a dramatic, unprecedented growth in the area of computer technology. Sustaining this growth requires continued innovation in computer design. Topics of Discussion (1) Area of Growth (2) Task of a Computer Architect (3) Computer Architecture (4) Trends in Implementation Technology (5) Cost and Trends in Cost (6) Measuring and Reporting Performance (7) Quantitative Principles (8) Summary

Huang - Spring 2008 CSE 340

Fundamentals of Computer Design

Areas of Growth
(1) Significant enhancements in the capability available to the users. E.g. Servers, Clusters. (2) Dominance of micro-processor based design across the entire range of computers. E.g. Desktop computing: Workstations and PCs thriving. Main-frame and Mini-computers vanished. (3) Exponential growth in the variety and complexity of the applications. E.g. Distributed computing. Client-server applications. Embedded computing

Huang - Spring 2008 CSE 340

Fundamentals of Computer Design

Tasks of a Computer Designer


(1) Determine the attributes important to the new machine. (2) Design a machine to maximize performance while staying within cost constraints. (3) Some important design aspects: instruction set design functional requirements logic design implementation (4) Design optimization involves a range of items from Compilers to Operating System to Logic Design and Packaging.

Huang - Spring 2008 CSE 340

Fundamentals of Computer Design

Computer Architecture
Covering three aspects of computer design

Instruction Set Architecture: Programmer visible instruction sets


Boundary between software and hardware

Organization: High-level aspects of computer design e.g. CPU internal organization Bus structure Memory organization Hardware:
Implementation specifics of a machine e.g. Logic design and Packing technology

Huang - Spring 2008 CSE 340

Fundamentals of Computer Design

Technology Trends
Address space growth. eg. MS DOSs 640K to current systems Gbytes Pipelining - Instruction and Data. Cache use at all levels. Compiler technology - exploring underlying architectural features. High-level languages - OOPs, Structured programming. Software development environment.

Huang - Spring 2008 CSE 340

Fundamentals of Computer Design

Technology Trends
IC Technology: Transistor count on a chip increases 55% per year. Semiconductor DRAM: Density increases 40-60% per year. Cycle time (slowly) decreases by one-third in ten years. Bandwidth per chip increases about twice as fast as latency decreases. Magnetic disk technology: Density increases 100% per year recently. Access time improved by one-third in ten years. Network Technology: 1 Gb Ethernet becomes available, leading to a faster internet structure. Higher bandwidth is made possible by optical media and faster switching hardware.

Huang - Spring 2008 CSE 340

Fundamentals of Computer Design

Cost and Trends in Cost


What is cost? What is price? Impacts on cost: Time, Volume, and Commodization Time: As time progresses, yield improvement brings down the cost. Volume As consumption increases, cost comes down. (mass production) Commodization: Competition among producers brings prices down.

Huang - Spring 2008 CSE 340

Fundamentals of Computer Design

Measuring and Reporting Performance


Performance =1/ (Execution Time). Measuring Performance: Elapsed time System CPU time Unix time command: 90.7u 12.9s 2.39 65% (1) CPU time for program (2) OS time for program (3) Elapsed time (4) % (CPU time/ Elapsed time) CPU Performance: user CPU time on unloaded system. System performance: Elapsed time on unloaded system.

Huang - Spring 2008 CSE 340

Fundamentals of Computer Design

Measuring and Reporting Performance (Contd.)


What do we test the system with? Synthetic benchmarks: Dhrystone and Whetstone Realworld programs: TeX, Spice, gcc, grep Kernels (part of): Linpack, Livermore loops Toy benchmarks: Quicksort, 8-Queen/n-Queen Benchmark suites

Huang - Spring 2008 CSE 340

Fundamentals of Computer Design

Quantitative Principles
Most important principle in computer design: - Make the common case fast (optimize for the normal case) - Identify the frequently requested case(s) - Estimate the performance improvement by making these cases faster - Carry out the optimization, if satisfactory Amdahls Law: Speedup = Perf. with enhancement / Perf. without enhancement * Enhancement is any change/modification in the design and realization of a component. * Speedup tells us how much faster a task will run using the enhancement as opposed to the original machine.

Huang - Spring 2008 CSE 340

10

Fundamentals of Computer Design

Amdahls Law (contd.)


* The enhancement feature may not be used all the time. Let the fraction of the computation time when the enhanced feature is used be F. * Let the speedup when enhanced feature is used be Se. * Then, the execution time with enhancement Xnew = Xold*(1-F) + Xold*F/Se. * Then, the overall speedup So is Xold/Xnew = 1/((1-F)+F/Se). * If an enhancement feature is rarely used, its not worth adding it. * Amdahls Law serves as a guide to how much an enhancement will improve performance and how to distribute resources to improve cost/performance.

Huang - Spring 2008 CSE 340

11

Fundamentals of Computer Design

Amdahls Law - Example


Objective: Speedup Floating point square root operation. Decide which of the following two designs is better. Design 1: Add FPSQR hardware. FPSQR is responsible for 20% of the execution time of a critical graphics benchmark. The speedup of this unit is by a factor of 10. Design 2: Make all floating point (FP) instructions run 1.6 times faster. FP instructions are responsible for 50% of the total execution time. How will we measure the times for new and improved FP operations without building the system? (Simulation and Quantitative Analysis)

Huang - Spring 2008 CSE 340

12

Fundamentals of Computer Design

CPU Performance Equation


Some definitions: * Time reference in a computer is provided by a clock. The discrete time events specified by the clock is known as clock cycles. * CPU time for a program = CPU clock cycles for a program * Clock cycle time (= CPU clock cycles for a program / Clock Rate) * Clock cycle time = Period (e.g. 2ns) Clock rate = Frequency (e.g. 200 MHz) * IC = Instruction Count of a program CPI = CPU clock cycle for a program / IC * CPU Time = IC * CPI * Clock cycle time = IC * CPI / Clock rate Therefore, the CPU performance is dependent on three components: IC, CPI and Clock cycle time.
Huang - Spring 2008 CSE 340
13

Fundamentals of Computer Design

CPU Performance Equation (contd.)


Now how do we improve performance? These three factors are inter-dependent. * Clock cycle time - Hardware technology and organization * CPI - Organization and Instruction set architecture * Instruction count - Instruction set architecture and compiler technology Improvement in one component has some predictable impacts on the other two.

Huang - Spring 2008 CSE 340

14

Fundamentals of Computer Design

CPU Performance Equation -Example


* Frequency of FP instructions (other than FPSQR): 25% * Average CPI of FP instructions: 4.0 * Average CPI of other instructions: 1.33 * Frequency of FPSQR: 2% * CPI of FPSQR: 20 Design alternative 1: Reduce CPI of FPSQR from 20 to 2. Design alternative 2: Reduce average CPI of all FP instructions to 2.5. Compare these two design alternatives using CPU performance equation.

Huang - Spring 2008 CSE 340

15

Fundamentals of Computer Design

CPU Performance Equation -Example (Contd.)


Program CPI original = (4*25/100)+(1.33*75/100)=2.0. Design 1: New Program CPI = CPI Original - 2%(Old CPI for FPSQR - New CPI for FPSQR) = 2.0 - 0.02(20-2) = 1.64. Design 2: New Program CPI = (2.5*25/100)+(1.33*75/100) = 1.625. Design 1 speedup = 2.0/1.64=1.22. Design 2 speedup = 2.0/1.625 = 1.23. Same as computed by Amdahls Law.

Huang - Spring 2008 CSE 340

16

Das könnte Ihnen auch gefallen