Perfomance measurement: Execution Time and Throuput/Bandwidth. (Decreasing execution time always improves thruput) And intuitively performance is inversly related to execution time: .

Measuring Performance

  • Program Execution Time (is the sum of…)
    • CPU Time (e.g. 10 picoseconds)
      • User CPU Time
      • System CPU Time
    • I/O Time
  • Clock Cycle (= tick, clocks, cycles) e.g. one tick on this CPU is 250 picoseconds.
  • Instruction Count: Number of instructions in a program.

Clock Per Instruction (CPI) / IPC (Instructions Per Clock)

Thus

And:

The Three Factors of Performance: Clock Rate / Instruction Count / CPI

$$
\text{Performance}= \frac{\text{Seconds}}{\text{Program}}\\=\frac{\text{Instructions}}{\text{Program}}\times \frac{\text{Clock Cycles}}{\text{Instruction}}\times \frac{\text{Seconds}}{\text{Cycle}}\\\\
=\text{Instruction Count} \times \text{CPI} \times \text{Clock Rate}


$$

List of Common Misconcpetions Performance

Improving one aspect doesn’t improve overall performance porportionally

Amdahl’s Law:

→Some perfomance targets are impossible with partial improvements. See example on p.50.