Performance Metrics


response time, execution time, elapsed time

Latency metrics help to describe how long it takes to execute a task.

This metric is good for a fixed amount of work


work unit per time

Throughput metrics help to describe how much work can be done in a given period of time

This metric is good for a fixed amount of time.

Ideally we want low latency and high throughput, however in reality this can be hard to achieve

Performance Comparison

When comparing the performance of two designs for a given task, we often compare their execution time.

Given two designs X and Y, if X is n times faster than Y, then exec(Y)/exec(X) = n
Where n > 1

Processor Performance

Based on CPU time

The CPI varies from instruction to instruction - hence we calculate the average!
(To do so, we group instructions by the number of cycles needed, etc)

Answer: D

Answer: A, by 1.2x

Execution time = instruction count * CPI * cycle time
Given the same instruction count, machine A is faster than machine B by 1.2x

Impact on Processor Performance


A computer's performance can be best determined by running real applications.

i.e. running compilers, scientific applications, graphing, simulations

SPEC (System Performance Evaluation Cooperative)

  • A set of real programs and inputs used by industry
  • It is a valuable indicator of performance

Improving Performance

There are many ways to improve performance!

  • Enhance processor organisation to lower CPI and clock cycle time
  • Enhance the compilation to reduce instruction count and CPU

"Speedup" Metric

to measure the effectiveness of a design enhancement

Amdahl's Law

... So (1-F) + F/S = performance(orig) / performance(E) !!!

For the new design to take only 20 seconds (100 / 5 = 20)...

But this is impossible, x -> infinity