Beruflich Dokumente
Kultur Dokumente
Design
Bina Ramamurthy
Copyright 1997 B.Ramamurthy
CS506
2/12/2019 B. Ramamurthy 1
Introduction
There has been a dramatic, unprecedented
growth in the area of computer technology.
Sustaining this growth requires continued
innovation in computer design. What can
we do? How can we contribute?
Software-Hardware Cycle (My Theory)
2/12/2019 B. Ramamurthy 2
Hardware-Software Cycle
Von Neumann Machine
Machine / Assembly Language
Storage (RAM)
Programming Languages, Applications (Ex: AI)
High-Level Architectures, EX: Lisp Machines, Symbolics
Structured Programming, Top-down Design
RISC Architecture, Compiler technology
Object Technology, Web Technology
2/12/2019 B. Ramamurthy 4
Areas of growth
Significant enhancements in the capability
available to the users: Example: Internet
Dominance of micro-processor based design
across the entire range of computers Example:
Workstations and PCs, Main-frame and mini-
computers vanished.
Exponential growth in the variety and
complexity of the applications. Example:
Distributed computing, client-server
applications.
2/12/2019 B. Ramamurthy 5
Task of a computer designer
Determine the attributes important to the new
machine
Design a machine to maximize performance while
staying within cost constraints
Some important design aspects: Instruction set
design, functional requirements, logic design, and
implementation.
Design optimization involves a range of items
from Compilers to Operating System to logic
design and packaging.
2/12/2019 B. Ramamurthy 6
Computer Architecture
AOR: Architecture, Organization and Realization
Architecture: High-level, user-programmer visible
components:
– Instruction set architecture
– Major blocks: CPU, Memory , IO
Organization: Next lower level to architecture ::
– CPU internal organization
– Bus structure
– Memory Organization
Realization (implementation)
– CMOS or Bipolar
2/12/2019 B. Ramamurthy 7
– DIP or PGA etc.
Trends in computer organization
and usage
Address space growth. Examples : MS-
DOS’s 640 K to current system’s Gbytes
Pipelining - instruction and data
Cache use at all levels
Compiler Technology - exploiting
underlying architectural features
High-level languages - OOPs, Structured
programming
Software development environment
2/12/2019 B. Ramamurthy 8
Trends in implementation
technology
IC technology : Transistor density increases
50% per year (wiring tech is not able to
keep with it)
Semiconductor DRAM : Density increase
60% per year
Magnetic disk technology : Floppy, hard-
drive, ZIP-drives, Speed increase 50% per
year.
What else? DIP to PGA, Clock speed.
2/12/2019 B. Ramamurthy 9
Cost and trends in cost
What is cost? What is Price? Reading
assignment: Section 1.4
As time progresses: yield improves
bringing down cost down.
Volume: As consumption increases cost
comes down (mass production)
Commodization: Many producers
competing for IC commodity: competition
brings prices down.
2/12/2019 B. Ramamurthy 10
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%
(user) CPU time for program, OS time for program,
Elapsed time, %(CPUtime/Elapsed time)
– CPU Perf: user CPU time on unloaded system.
– System Perf: Elapsed time on unloaded system.
2/12/2019 B. Ramamurthy 11
Measuring and reporting
performance (contd.)
What do you test the systems with?
Workloads?
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 : SPEC 92 . Look at Fig.1.9 for
more details.
2/12/2019 B. Ramamurthy 12
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
2/12/2019 B. Ramamurthy 13
Amdahl’s Law
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 machine with the
enhancement as opposed to the original
machine.
– Speedup = Perf. with enhancement / Perf.
without enhancement
2/12/2019 B. Ramamurthy 14
Amdahl’s Law (contd.)
But the enhanced 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.
Now execution time with enhancement Xnew =
Xold * (1-F) + Xold* F /Se
Then the overall speedup So is : Xold /Xnew = 1
/((1- F) + F/Se)
2/12/2019 B. Ramamurthy 15
Amdahl’s law - Example 1
Suppose that we are considering an enhancement
that runs 10 times faster than the original machine
but is usable only 40% of the time. What is the
overall speedup gained by incorporating the
enhancement?
Se = 10
F = 40/100 = 0.4
So = 1 / (( 1 - F) + F/Se)
= 1/ (0.6 + 0.4/10)
= 1/0.64 = 1.56.
2/12/2019 B. Ramamurthy 16
Amdahl’s law (contd.)
It expresses the law of diminishing returns.
You could add a enhancement that speeds up an
operation in processor. But if the operation is seldom
used what is the purpose of this enhancement?
It serves as a guide to how much an enhancement will
improve performance and how to distribute resources
to improve cost/performance.
It can be used to compare two design alternatives.
2/12/2019 B. Ramamurthy 17
Amdahl’s law - Example 2
Objective: Speedup Floating point square root
operation. Which is better: Design1 or Design2?
Design 1: The operation uses FPSQR hardware.
FPSQR is responsible for 20% of the square root
execution time. Speedup this component by a
factor of 10.
Design 2: Make all the floating point (FP)
instructions run faster. How much faster? 2 times
faster. Fp instructions are responsible for 50% of
the square root execution time.
2/12/2019 B. Ramamurthy 18
Amdahl’s law - Example 2
(contd.)
Design 1: F = 0.2, Se = 10 , So = ?
Design 2: F = 0.5 , Se = 2, So = ?
Which is better? Why?
Now, how will you measure the times for new and
improved FP operations without building the
system? Simulation? Quantitative analysis?
Alternative: Comparisons based on equation that
decomposes CPU execution time into three
separate components.
2/12/2019 B. Ramamurthy 19
CPU Performance Equation
Time reference in a computer is provided by a
clock.
The discrete time events specified by the clock is
known an 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 (Ex: 2ns)
Clock Rate == Frequency (Ex: 200MHz)
2/12/2019 B. Ramamurthy 20
CPU Performance Equation
(contd.)
IC= Instruction Count of a program
CPI = CPU clock cycles for a program / IC
CPU Time = IC * CPI * Clock cycle Time
CPU Time = IC * CPI / Clock Rate
Thus the CPU perf is dependent on three
components:
– Instruction count of program
– Cycle per instruction
– Clock cycle time
2/12/2019 B. Ramamurthy 21
CPU Performance Equation
(contd.)
Now how can we improve perf.? These factors are
inter-dependent.
1) Clock cycle time - Hardware technology and
organization
2) CPI - Organization and instruction set architecture
3) Instruction Count - Instruction set architecture
and compiler tech.
Improvement in one component has some
predictable impact on the other two.
2/12/2019 B. Ramamurthy 22
CPU Performance Equation -
Example 3
Frequency of FP instructions : 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
instruction to 2.
Compare these two design alternatives using CPU Perf.
equation.
2/12/2019 B. Ramamurthy 23
Example 3 (contd.)
Program CPI original = (4 * 25/100) + (1.33 *75/100) =
2.0
Design 1:
Program CPI new FPSQR = CPI original -- 2% (Old
CPI for FPSQR -- New CPI for FPSQR)
= CPI original -- (2/100)* (20 -- 2) = 2.0 - 0.02 * 18 =
1.64
Design 2:
Program CPI new FP = (2 * 25/100) + (1.33 * 75/100) =
1.5
Speed up of Design 2: 2.00/1.5 = 1.33, same as
computed by Amdahl’s law!
2/12/2019 B. Ramamurthy 24
Summary
Firsttaste of quantitative principles.
We studied Amdahl’s law, CPU performance
equation.
Quantitative comparison of design alternatives.
Reading Assignment: Go through examples from
p.35-44. Work them out and make sure you
understand them.
Read through the rest of the Chapter 1.
HWk 1: 1.1, 1.2, 1.6 , 1.7 Due date : 9/10/97
2/12/2019 B. Ramamurthy 25