You are on page 1of 25

Fundamentals of Computer

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

Emerging Hardware Requirements:


? Multi-threading, security support
Stack-machines (?); MMX, MTX, WX(?)
2/12/2019 B. Ramamurthy 3
Topics of Discussion
 Areas of growth
 Task of a computer designer
 Computer Architecture
 Trends in computer organization and usage
 Trends in implementation technology
 Cost and trends in cost
 Measuring and reporting performance
 Quantitative principles
 Summary

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