A Better Crystal Ball

Pages: 1 2 3 4 5 6 7 8

Determinants of Performance

The simplest derivation of performance is from the principle that the time to perform a computational task is determined by the total number of instructions that must be executed to perform that task divided by average number of instructions the hardware can execute per unit time. If we define performance as the number of tasks that can be performed per unit time then we can define performance as:

Performance (Tasks/second) = [Instructions / second] / [Instructions per Task]

Let’s define average clocks per instruction, or CPI, as the average instruction execution rate of the processor divided by the processor clock frequency. In addition, the dynamic path length, or instructions per task, will be represented as N. So now performance can defined as:

Performance (Tasks/second) = F / (CPI * N)

In reality, the equation Performance = F / (CPI * N) is about as practical in predicting computer performance from basic parameters as E = mc2 is for engineering a nuclear powered submarine. What this expression is useful for is illustrating the myriad of ways that hardware and software can interact to affect performance. We can increase performance by decreasing CPI, by increasing clock frequency F, or by reducing the program dynamic path length N (or some combination of the three).

This simple formula can actually be used as a starting point to extrapolate the performance of yet unavailable or hypothetical hardware from measured benchmark results of similar hardware. But extrapolation and prediction can only be done within certain bounds and requires the right kind of input data – input data that is free from hidden influences of extraneous factors that can render the prediction flawed and inaccurate. The most difficult aspect of comparing two or more performance measurements is identifying all the factors that are held the same and all the factors that changed, deliberately or inadvertently. In general the processor clock rate F will be assumed to be a free variable while CPI and N are determined by many separate influences. The factors that influence CPI and N are listed in Table 1 along with a short explanation.

<b>Table 1 Influences on Clocks per Instruction (CPI) and Dynamic Path Length (N)</b>

Variable

CPI

N

Processor Clock Frequency (F)

Non-scaling of the memory system with F changes the component of CPI associated with off-chip cache and memory access

None, unless task dynamic path is influenced by a real time input like a clock value or interrupt

Processor

Different stepping of the MPU may have differences in instruction execution related timing

Stepping version of the MPU may be detected by the task code and influence the dynamic path

System hardware (chipset, memory configuration and type etc)

Changes in system hardware can change the component of CPI associated with off-chip cache and memory access

None, unless task dynamic path is influenced by a real time input like a clock value or interrupt

Software (compiler, compiler flags, libraries, OS device drivers, firmware, etc)

Changes in the mix and scheduling of instructions will affect both the architectural and memory access related components of CPI

Changes in any of these factors can alter the dynamic path length.

Input Data

Can change dynamic path which alters the mix and scheduling of instructions executed to complete task

Can change dynamic path through the task code and alter its length


Pages: « Prev   1 2 3 4 5 6 7 8   Next »

Be the first to discuss this article!