Fundamentals of Computer Design - 1
Fundamentals of Computer Design - 1
•Dependability
•Performance
•Quantitative principles of Computer
Design
Defining Computer Architecture
• “Old” view of computer architecture:
– Instruction Set Architecture (ISA) design
– i.e. decisions regarding:
» registers, memory addressing, addressing modes,
instruction operands, available operations, control
flow instructions, instruction encoding
software
instruction set
hardware
Define and quantify dependability
• How decide when a system is operating properly?
• Infrastructure providers now offer Service Level
Agreements (SLA) to guarantee that their networking
or power service would be dependable
• Systems alternate between 2 states of service with
respect to an SLA:
1. Service accomplishment, where the service is delivered
as specified in SLA
2. Service interruption, where the delivered service is
different from the SLA
• Failure = transition from state 1 to state 2
• Restoration = transition from state 2 to state 1
Measures of dependability
• Module reliability = measure of continuous service
accomplishment (or time to failure) from a
reference initial instant.
2 metrics
1. Mean Time To Failure (MTTF) measures Reliability
2. Failures In Time (FIT) = 1/MTTF, the rate of failures
• Traditionally reported as failures per billion hours of operation
• Mean Time To Repair (MTTR) measures Service
Interruption
– Mean Time Between Failures (MTBF) = MTTF+MTTR
• Module availability measures service as alternate
between the 2 states of accomplishment and
interruption (number between 0 and 1, e.g. 0.9)
• Module availability = MTTF / ( MTTF + MTTR)
Example calculating reliability
• If modules have exponentially distributed
lifetimes (age of module does not affect
probability of failure), overall failure rate is the
sum of failure rates of the modules
• Calculate FIT and MTTF for 10 disks (1M hour
MTTF per disk), 1 disk controller (0.5M hour
MTTF), and 1 power supply (0.2M hour MTTF):
FailureRat e
MTTF
Example calculating reliability
• If modules have exponentially distributed
lifetimes (age of module does not affect
probability of failure), overall failure rate is the
sum of failure rates of the modules
• Calculate FIT and MTTF for 10 disks (1M hour
MTTF per disk), 1 disk controller (0.5M hour
MTTF), and 1 power supply (0.2M hour MTTF):
FailureRat e 10 (1 / 1,000,000) 1 / 500,000 1 / 200,000
10 2 5 / 1,000,000
17 / 1,000,000
17,000 FIT
MTTF 1,000,000,000 / 17,000
59,000hours
Definition: Performance
• Performance is in units of things per sec
– bigger is better
• If we are primarily concerned with response time
Performance = 1/Execution time
Performance(X) Execution_time(Y)
n = =
Performance(Y) Execution_time(X)
Performance: What to measure
• Usually rely on benchmarks.
• To increase predictability, collections of benchmark
applications, called benchmark suites, are popular
• SPECCPU: popular desktop benchmark suite
– Measuring processing time
• Server benchmarks: Processor throughput
oriented.
– SPECSFS (NFS file server) and SPECWeb (WebServer) added as
server benchmarks
• Transaction Processing Council measures server
performance and ability to handle transactions for
databases (airline reservation)
– TPC-C Complex query for Online Transaction Processing
– TPC-H models ad hoc decision support
– TPC-E OLTP
– TPC-App application server and web services benchmark
How to Summarize Suite Performance
• Designer vs user view (rely on benchmark to select
the system)
• Arithmetic average of execution time of all pgms?
– But they vary by 4X in speed, so some would be more important
than others in arithmetic average
• Could add a weights per program, but how pick
weight?
– Different companies want different weights for their products
• SPECRatio: Normalize execution times to reference
computer, yielding a ratio proportional to
• performance =
time on reference computer
time on computer being rated
How Summarize Suite Performance
• If program SPECRatio on Computer A is 1.25
times bigger than Computer B, then
ExecutionTimereference
SPECRatio A ExecutionTime A
1.25
SPECRatioB ExecutionTimereference
ExecutionTimeB
ExecutionTimeB Performance A
ExecutionTime A PerformanceB
• Note that when comparing 2 computers as a ratio,
execution times on the reference computer drop
out, so choice of reference computer is irrelevant
How Summarize Suite Performance
• Since ratios, proper mean is geometric mean
(SPECRatio unitless, so arithmetic mean meaningless)
n
GeometricMean n SPECRatio
i 1
i
ALU
n Ifetch Reg DMem Reg
s
t
r.
ALU
Ifetch Reg DMem Reg
O
r
ALU
Ifetch Reg DMem Reg
d
e
r
ALU
Ifetch Reg DMem Reg
2) The Principle of Locality
• The Principle of Locality:
– Program access a relatively small portion of the address space at
any instant of time.
– Program tend to reuse data and instructions that it has used
recently.
• Two Different Types of Locality:
– Temporal Locality (Locality in Time): If an item is referenced, it will
tend to be referenced again soon (e.g., loops, reuse)
– Spatial Locality (Locality in Space): If an item is referenced, items
whose addresses are close by tend to be referenced soon
(e.g., array access)
3) Focus on the Common Case
• In making a design trade-off, favor the frequent
case over the infrequent case
– E.g., Instruction fetch and decode unit used more frequently
than multiplier, so optimize it 1st
– E.g., If database server has 50 disks / processor, storage
dependability dominates system dependability, so optimize it 1st
• Frequent case is often simpler and can be done
faster than the infrequent case
• Eg: Adding 2 numbers
• What is frequent case and how much performance
improved by making case faster => Amdahl’s Law
Amdahl’s Law
• It states that performance improvement gained from
using enhancement is limited by the fraction of the
time the enhancement can be used.
• Speedup:
Fraction enhanced
Fraction enhanced / Speedup enhanced
ExTimeold 1
Speedupoverall
ExTimenew Fractionenhanced
1 Fractionenhanced
Speedupenhanced
Latch combinational
or logic
register
Processor performance equation
• Micro-processors are based on a clock running at
a constant rate
CPU time = CPU clock cycles for a program * Clock cycle time 1