Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design...

34
Rung-Bin Lin Chapter 1: Fundamental of Computer Design 1-1 Chapter 1. Fundamentals of Computer Design Introduction Performance Improvement due to (1). Advances in the technology (2). Innovation in computer design 1945-1970: (1) and (2) made a major contribution to performance improvement 1970 ~ : 25% to 30% per year performance improvement for the mainframes and minicomputers. 1975~ : 35% per year performance improvement for microprocessors simply due to (1).

Transcript of Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design...

Page 1: Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design Introduction –Performance Improvement due to (1).

Rung-Bin LinChapter 1: Fundamental of Computer Design 1-1

Chapter 1. Fundamentals of Computer Design

• Introduction– Performance Improvement due to

(1). Advances in the technology

(2). Innovation in computer design

– 1945-1970: (1) and (2) made a major contribution to performance improvement

– 1970 ~ : 25% to 30% per year performance improvement for the mainframes and minicomputers.

– 1975~ : 35% per year performance improvement for microprocessors simply due to (1).

Page 2: Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design Introduction –Performance Improvement due to (1).

Rung-Bin LinChapter 1: Fundamental of Computer Design 1-2

Performance Growth for Micro-processors

Page 3: Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design Introduction –Performance Improvement due to (1).

Rung-Bin LinChapter 1: Fundamental of Computer Design 1-3

Changes in the Marketplaces Made a Successful Architecture

• The virtual elimination of assembly language reduced the need for object code compatibility

• The creation of standardized, vendor-independent operating system, such as Unix and Linux, lowered the cost and risk

• Consequence of the changes– Enable the development of RISCs to focus on

• Exploitation of instruction level parallelism• Use of caches

– Lead to 50% increase in performance per year

Page 4: Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design Introduction –Performance Improvement due to (1).

Rung-Bin LinChapter 1: Fundamental of Computer Design 1-4

The Effect of the Growth rate in Computer Performance

• Significantly enhanced the capability available to computer users

• Lead to the dominance of microprocessor-based computers across the entire range of computer design.– Workstations and PCs have emerged as major products.– Servers replace minicomputers.– Multiprocessors replace mainframe computers and super

computers.• The advance of IC technology

– Emergence of RSIC– Renewal of CISC such as x86 (IA32) microprocessors.

Page 5: Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design Introduction –Performance Improvement due to (1).

Rung-Bin LinChapter 1: Fundamental of Computer Design 1-5

The Changing Face of Computing

1960s Large mainframes» Business data processing and scientific computing

1970s Minicomputers» Time-sharing

1980s Desktop computing(personal computing)

1990s Internet and Word Wide Web (servers)

2000s Embedded computing, mobile computing, and pervasive computing

Page 6: Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design Introduction –Performance Improvement due to (1).

Rung-Bin LinChapter 1: Fundamental of Computer Design 1-6

Tasks of a Computer Designer• Determine what attributes are important for a new machine,

then design a machine to maximize performance while staying within cost constraints.

• Task aspects: Instruction set design, functional organization, logic design, and implementation.

• In the past, “Computer Architecture” often referred only to instruction set design. Other aspects of computer design were called “implementation”.

• In this book, “Computer Architecture” is intended to cover all three aspects of computer design: instruction set architecture, organization and hardware.

• “Instruction set architecture” refers to the actual programmable-visible instruction set. It serves as the boundary between the hardware and software.

Page 7: Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design Introduction –Performance Improvement due to (1).

Rung-Bin LinChapter 1: Fundamental of Computer Design 1-7

• “organization” includes the high-level aspects of a computer’s design, such as the memory system, the bus structure, and the internal CPU.

• NEC VR5432 and NEC VR 4122 have the same instruction set architecture but with different organization.

• “Hardware” would include the detailed logic design and packaging technology of the machine.– For example: different Pentium microprocessors running

in different frequency have the same instruction set architecture and organization but with different hardware implementation

• Organization and hardware are two components of implementations.

Page 8: Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design Introduction –Performance Improvement due to (1).

Rung-Bin LinChapter 1: Fundamental of Computer Design 1-8

Functional Requirements (Fig. 1.4)

• Application Area: – General purpose, scientific and server, commercial,

embedded computing

• Level of Software Compatibility– At programming language, object code or binary code

compatibility

• Operating System Requirements– Size of address space, memory management, protection

• Standards– Floating point, I/O bus, operating systems, networks,

programming languages

Page 9: Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design Introduction –Performance Improvement due to (1).

Rung-Bin LinChapter 1: Fundamental of Computer Design 1-9

Technology Trends• A successful instruction set architecture must be designed to survive

changes in computer implementation technology.• Trends in implementation technology:

– Integrated circuit logic technology:• Transistor density: 35% increase per year, quadruple in 4 years.• Die size: 10%~20% increase per year• Transistor count/per chip: 55% increase per year.• Transistor speed: scales more slowly.

– DRAM:• Density: 40%~60% increase per year recently.• Cycle time : decrease 1/3 in 10 years.

– Magnetic disk:• Density: 100% increase per year recently.

30% increase per year, double in 3 years, prior to 1990.– Network technology

• Ethernet: 10M to 100M to 1G byte band width.

Page 10: Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design Introduction –Performance Improvement due to (1).

Rung-Bin LinChapter 1: Fundamental of Computer Design 1-10

Scaling of IC Technology

• IC Process Technology– 10um(1971) 0.18um(2001)

• IC Technology and Computer Performance– Transistor performance– Wire delay– Power consumption

Page 11: Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design Introduction –Performance Improvement due to (1).

Rung-Bin LinChapter 1: Fundamental of Computer Design 1-11

Cost, Price and Their Trends• Cost reduction factors

– Learning curve drives the cost down; manufacturing costs over time, i.e., yield improvement.

– High volume (i.e. mass production)– Commodities are products sold by multiple vendors in large volumes

and essentially identical, i.e., competition.– Price of DRAM (fig. 1.5)– Price of Pentium III (fig. 1.6)

• Cost of an integrated circuit– Cost of die =f(die area)– Computer designer affects die size both by what functions are

included on the die and by the number of I/O pins.

• Distribution of cost in a system (fig. 1.9, 1.10)

Page 12: Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design Introduction –Performance Improvement due to (1).

Rung-Bin LinChapter 1: Fundamental of Computer Design 1-12

Prices of DRAM

Page 13: Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design Introduction –Performance Improvement due to (1).

Rung-Bin LinChapter 1: Fundamental of Computer Design 1-13

Price of Pentium III

Page 14: Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design Introduction –Performance Improvement due to (1).

Rung-Bin LinChapter 1: Fundamental of Computer Design 1-14

Price for $1000 PC

Page 15: Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design Introduction –Performance Improvement due to (1).

Rung-Bin LinChapter 1: Fundamental of Computer Design 1-15

Measuring and Reporting Performance

• “X is n times faster than Y” means

• The term “system performance” is used to refer to elapsed time on an unloaded system.

• CPU performance refers to user CPU time on an unloaded system.

• To evaluate a new system is to compare the execution time of her workload - the mixture of programs and operating system commands run on a machine.

)()(

)( )(

YePerformancXePerformanc

nXtimeExecutionYtimeExecution

Page 16: Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design Introduction –Performance Improvement due to (1).

Rung-Bin LinChapter 1: Fundamental of Computer Design 1-16

Choosing Programs to Evaluate Performance

• Best case: Measure the execution time of a system’s workload• General case: five levels of programs are used:

– Real programs: C compiler, Tex, Spice, etc.– Modified (scripted) applications: A collection of real applications…– Kernels: small, key pieces from the real programs, ex., Livermore

loops and Linpack.– Toy Benchmarks: 10 to 100 lines of code and produce a result the user

already knows, ex., puzzle, quicksort,…– Synthetic benchmarks: try to match the average frequency of

operations and operands of a large set of programs, ex., Whetstone and Drystone.

• Performance prediction accuracy: – Real programs is best, wile synthetic benchmarks is worst. and

reporting performance results (fig. 1.9 &1.10)

Page 17: Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design Introduction –Performance Improvement due to (1).

Rung-Bin LinChapter 1: Fundamental of Computer Design 1-17

Benchmark Suites

• SPEC (Standard Performance Evaluation Corporation)– www.spec.org

• Benchmark types– Desktop benchmarks– Server benchmarks– Embedded benchmarks

Page 18: Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design Introduction –Performance Improvement due to (1).

Rung-Bin LinChapter 1: Fundamental of Computer Design 1-18

Desktop Benchmarks

• SPEC Benchmarks– SPEC CPU2000 (SPEC95, SPEC92, SPEC89) (Fig. 1.12)– Graphic benchmarks

• SPECviewperf• SPECapc

• Window’s OS benchmarks (Fig. 1.11)– Business Winstone– CC Winstone– Winbench

Page 19: Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design Introduction –Performance Improvement due to (1).

Rung-Bin LinChapter 1: Fundamental of Computer Design 1-19

Server Benchmarks

• SPEC– File server benchmarks: SPECSFS

• Measuring NFS performance

– Web server benchmarks: SPECWeb• Simulate multiple clients requesting both static and dynamic pages.

• TPC (Transaction-Processing Council)– TPC-A, TPC-C, TPC-H, TPC-R, TPC-W

• Simulate a business-oriented transactions (queries)• www.tpc.org

Page 20: Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design Introduction –Performance Improvement due to (1).

Rung-Bin LinChapter 1: Fundamental of Computer Design 1-20

Embedded Benchmarks

• EDN Embedded Microprocessor Benchmark Consortium (EEMBC) (Fig. 1.13)– Automotive/industrial– Consumer– Networking– Office automation– Telecommunications

Page 21: Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design Introduction –Performance Improvement due to (1).

Rung-Bin LinChapter 1: Fundamental of Computer Design 1-21

Reporting Performance Results• Guiding Principle

– The performance measurements should be reproducibility.

• Needs to tell– Hardware configurations– Software used

• Is source code modification for benchmarks allowed?

Page 22: Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design Introduction –Performance Improvement due to (1).

Rung-Bin LinChapter 1: Fundamental of Computer Design 1-22

Comparing Performance

Computer A Computer B Computer C

P1 (secs) 1 10 20

P2 (secs) 1000 100 20

Total time 1001 110 40

• Total execution time: A consistent summary measure• Another metrics

– Average execution time (arithmetic mean)– Harmonic mean– Weighted execution time: – Geometric mean:

TimeWeight ii

nn

1i

ratiotimeExecution i

Page 23: Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design Introduction –Performance Improvement due to (1).

Rung-Bin LinChapter 1: Fundamental of Computer Design 1-23

Quantitative Principles of Computer Design• Make the common case fast: A fundamental law, called

Amdahl’s Law, can be used to quantify this principle.• Amdahl’s Law

– the performance improvement to be gained from using some faster mode of execution is limited by the fraction of the time the faster mode can be used.

– Amdahl’s Law defines speedup as

• Example on pages 41 and 42

tenhancemene without PerformanctenhancemenwithePerformanc

Speedup

Speedup

FractionFraction

timeExecution

timeExecution

enhanced

enhancedenhanced

1

1

new

old

Page 24: Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design Introduction –Performance Improvement due to (1).

Rung-Bin LinChapter 1: Fundamental of Computer Design 1-24

CPU Performance Equation

– Dependency• Clock cycle time - Hardware technology and organization• CPI - Organization and instruction set architecture• Instruction count - Instruction set architecture and compiler

– Sometimes and overall

– Example on page 44.

timecycleclockprogramaforcyclesclockCPUtimeCPU

cycleClockSeconds

nInstructiocyclesClock

ogramnsInstructio

timecycleClockCPIIC

Pr

timecycleClock timeCPUn

1iiCPI

countn InstructioCPI

n

1iiCPI

ICi

Page 25: Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design Introduction –Performance Improvement due to (1).

Rung-Bin LinChapter 1: Fundamental of Computer Design 1-25

Measuring the Components of CPU Performance

• Clock cycle time: Timing simulator or timing verifiers• IC(instruction count)

– Direct measurement from running the applications on hardware– Instruction set simulator - slow but accurate– Instrumentation code approach: the binary program is modified by

inserting some extra code into every basic block. Fast but need instruction set translation if simulated machine differs from simulating machine.

• CPI: very difficult to measureCPI = Pipeline CPI + Memory system CPI

• Basic blockLabel:xxx Branch *** Branch *** Label: xxx

Branch *** Branch *** Label: xxx Label: xxx

• Use the CPU performance equations to compute performance

Page 26: Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design Introduction –Performance Improvement due to (1).

Rung-Bin LinChapter 1: Fundamental of Computer Design 1-26

Principle of Locality• Application of Amdahl’s Law

– A program spends 90% of execution time in on 10% of the code.

– Temporal locality: Recently accessed items are likely to be accessed in the near future.

– Spatial locality: Items whose addresses are near one another tend to be referenced close together in time.

Page 27: Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design Introduction –Performance Improvement due to (1).

Rung-Bin LinChapter 1: Fundamental of Computer Design 1-27

Put it All Together

• Performance and Price-Performance– Desktop computers– Server computers– Embedded processors

Page 28: Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design Introduction –Performance Improvement due to (1).

Rung-Bin LinChapter 1: Fundamental of Computer Design 1-28

Price and Performance of Desktops (1)

Page 29: Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design Introduction –Performance Improvement due to (1).

Rung-Bin LinChapter 1: Fundamental of Computer Design 1-29

Price and Performance of Desktops (2)

Page 30: Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design Introduction –Performance Improvement due to (1).

Rung-Bin LinChapter 1: Fundamental of Computer Design 1-30

Price and Performance of Servers (1)

Page 31: Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design Introduction –Performance Improvement due to (1).

Rung-Bin LinChapter 1: Fundamental of Computer Design 1-31

Price and Performance of Servers (2)

Page 32: Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design Introduction –Performance Improvement due to (1).

Rung-Bin LinChapter 1: Fundamental of Computer Design 1-32

Price&Performance of Embedded Processors (1)

Page 33: Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design Introduction –Performance Improvement due to (1).

Rung-Bin LinChapter 1: Fundamental of Computer Design 1-33

Price&Performance of Embedded Processors (2)

Page 34: Rung-Bin Lin Chapter 1: Fundamental of Computer Design1-1 Chapter 1. Fundamentals of Computer Design Introduction –Performance Improvement due to (1).

Rung-Bin LinChapter 1: Fundamental of Computer Design 1-34

Price&Performance of Embedded Processors (3)