From WikiChip
Microprocessor Performance

The performance of a microprocessor is a measure of its efficiency in terms of the amount of useful work it accomplishes.

Equation[edit]

The performance (time-to-execute) of a certain finite workload is the reciprocal of execution time.

Equation upper P proportional-to StartFraction 1 Over upper T Subscript exec Baseline EndFraction left-bracket StartFraction monospace program Over monospace seconds EndFraction right-bracket

The total execution time, Equation upper T Subscript exec , required to execute a specific finite program is.

Equation upper T Subscript exec Baseline equals StartFraction monospace IC times monospace CPI Over f EndFraction left-bracket StartFraction monospace seconds Over monospace program EndFraction right-bracket

Where,

Thus, the performance of a microprocessor can also be defined as.

Equation StartLayout 1st Row 1st Column upper P 2nd Column equals StartFraction f Over monospace IC times monospace CPI EndFraction 2nd Row 1st Column Blank 3rd Row 1st Column Blank 2nd Column equals StartFraction monospace IPC times f Over monospace IC EndFraction EndLayout

Note that for the sake of brevity, sometimes the instruction count is omitted when referring to the performance of a fixed portion of code. In other words, when the instruction count is fixed because the program is not being recompiled, it is sometimes omitted from the equation. However, doing this ignores the fact that recompiling code can have a positive impact on performance.

Three Performance Knobs[edit]

With the performance equation from above.

Equation p equals StartFraction monospace IPC times f Over monospace IC EndFraction

It can be seen that there are three control knobs for improving performance:

  • Frequency - Increasing the frequency, thus reducing the length of each clock cycle. Architectures that take this approach are referred to as a speed demon design.
  • Instruction Count - Reducing the instruction count, thus reducing the total amount of work that needs to be completed. This can be done through new compiler optimizations or through the introduction of new instruction set extensions.

Often times, a combination of all three is necessary to achieve good performance and power efficiency balance.

cpu perf graph.svg

Although in theory, the best performance can be achieved through very high frequency and very high IPC, in practice the design requirements for the two are largely contradictory. Achieving higher IPC requires higher logic circuit complexity. This significantly reduces the working frequency range. Likewise, by reducing the logic circuitry complexity, it's possible to increases the frequency at expense of the IPC. Both knobs are also affected by the process technology that is used to manufacture the design. In general, smaller nodes allows for slightly more complexity without regressing frequency (the exact impact is very node-dependent). Thus achieving a good performance requires a good balance between IPC, frequency, and the instruction count.