Sunteți pe pagina 1din 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).
Rung-Bin Lin Chapter 1: Fundamental of Computer Design 1-2
Performance Growth for Micro-processors
Rung-Bin Lin Chapter 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
Rung-Bin Lin Chapter 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.
Rung-Bin Lin Chapter 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

Rung-Bin Lin Chapter 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.
Rung-Bin Lin Chapter 1: Fundamental of Computer Design 1-7
organization includes the high-level aspects of a computers
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.

Rung-Bin Lin Chapter 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
Rung-Bin Lin Chapter 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.
Rung-Bin Lin Chapter 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

Rung-Bin Lin Chapter 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)
Rung-Bin Lin Chapter 1: Fundamental of Computer Design 1-12
Prices of DRAM

Rung-Bin Lin Chapter 1: Fundamental of Computer Design 1-13
Price of Pentium III

Rung-Bin Lin Chapter 1: Fundamental of Computer Design 1-14
Price for $1000 PC

Rung-Bin Lin Chapter 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.
) (
) (
) (
) (
Y e Performanc
X e Performanc
n
X time Execution
Y time Execution
= =
Rung-Bin Lin Chapter 1: Fundamental of Computer Design 1-16
Choosing Programs to Evaluate Performance
Best case: Measure the execution time of a systems 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)
Rung-Bin Lin Chapter 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
Rung-Bin Lin Chapter 1: Fundamental of Computer Design 1-18
Desktop Benchmarks
SPEC Benchmarks
SPEC CPU2000 (SPEC95, SPEC92, SPEC89) (Fig. 1.12)
Graphic benchmarks
SPECviewperf
SPECapc
Windows OS benchmarks (Fig. 1.11)
Business Winstone
CC Winstone
Winbench

Rung-Bin Lin Chapter 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
Rung-Bin Lin Chapter 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

Rung-Bin Lin Chapter 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?
Rung-Bin Lin Chapter 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:
Time
Weight
i
i

n
n
1 i
[
=
ratio time Execution
i
Rung-Bin Lin Chapter 1: Fundamental of Computer Design 1-23
Quantitative Principles of Computer Design
Make the common case fast: A fundamental law, called
Amdahls Law, can be used to quantify this principle.
Amdahls 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.
Amdahls Law defines speedup as







Example on pages 41 and 42
t enhancemen e without Performanc
t enhancemen with e Performanc
Speedup

=
Speedup
Fraction
Fraction
time Execution
time Execution
enhanced
enhanced
enhanced
+
= =
1
1


new
old
Rung-Bin Lin Chapter 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.
time cycle clock program a for cycles clock CPU time CPU =
cycle Clock
Seconds
n Instructio
cycles Clock
ogram
ns Instructio
time cycle Clock CPI IC
Pr

=
=
time cycle Clock time CPU
n
1 i
i
CPI

|
.
|

\
|
=
=
|
.
|

\
|
=
= count n Instructio
CPI
n
1 i
i
CPI
IC
i
Rung-Bin Lin Chapter 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 measure
CPI = Pipeline CPI + Memory system CPI
Basic block
Label:xxx Branch *** Branch *** Label: xxx

Branch *** Branch *** Label: xxx Label: xxx
Use the CPU performance equations to compute performance
Rung-Bin Lin Chapter 1: Fundamental of Computer Design 1-26
Principle of Locality
Application of Amdahls 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.
Rung-Bin Lin Chapter 1: Fundamental of Computer Design 1-27
Put it All Together
Performance and Price-Performance
Desktop computers
Server computers
Embedded processors
Rung-Bin Lin Chapter 1: Fundamental of Computer Design 1-28
Price and Performance of Desktops (1)

Rung-Bin Lin Chapter 1: Fundamental of Computer Design 1-29
Price and Performance of Desktops (2)

Rung-Bin Lin Chapter 1: Fundamental of Computer Design 1-30
Price and Performance of Servers (1)

Rung-Bin Lin Chapter 1: Fundamental of Computer Design 1-31
Price and Performance of Servers (2)

Rung-Bin Lin Chapter 1: Fundamental of Computer Design 1-32
Price&Performance of Embedded Processors (1)

Rung-Bin Lin Chapter 1: Fundamental of Computer Design 1-33
Price&Performance of Embedded Processors (2)

Rung-Bin Lin Chapter 1: Fundamental of Computer Design 1-34
Price&Performance of Embedded Processors (3)

S-ar putea să vă placă și