Instructions Per Cycle

From Wikipedia, the free encyclopedia

In computer architecture, Instructions Per Clock (Instruction Per Cycle or IPC) is a term used to describe one aspect of a processor's performance: the average number of instructions executed for each clock cycle. It is the multiplicative inverse of Cycles Per Instruction.

Contents

[edit] Explanation

[edit] Calculation of IPC

The number of instructions per second for a processor can be derived by multiplying the instructions per cycle and the clock speed (measured in cycles per second or Hz) of the processor in question. The number of instructions per second is an approximate indicator of the likely performance of the processor.

The number of instructions executed per clock is not a constant for a given processor; it depends on how the particular software being run interacts with the processor, and indeed the entire machine, particularly the memory hierarchy. However, certain processor features tend to lead to designs that have higher-than-average IPC values; the presence of multiple ALUs (an ALU is a processor subsystem that can perform elementary arithmetic and logical operations), and short pipelines. When comparing different instruction sets, a simpler instruction set may lead to a higher IPC figure than an implementation of a more complex instruction set using the same chip technology; however, the more complex instruction set may be able to achieve more useful work with fewer instructions.

[edit] Factors governing IPC

A given level of instructions per second can be achieved with a high IPC and a low clock speed (like the AMD Athlon, Intel Core 2, HP PA-RISC, or Sun Microsystems SPARC), or from a low IPC and high clock speed (like the Intel Pentium 4 or DEC Alpha).

High-IPC, low-clock speed processor designs are traditionally called "brainiac" designs, while low-IPC, high-clock speed are often called "speed-demons". Both are valid processor designs, and the choice between the two is often dictated by history, engineering constraints, or marketing pressures.

[edit] Computer speed

The useful work that can be done with any computer depends on many factors besides the processor speed. These factors include the processor architecture, the internal layout of the machine, the speed of the disk storage system, the speed of other attached devices, the efficiency of the operating system, and most importantly the high level design of the application software in use.

For users and purchasers of a computer system, Instructions Per Clock is not a particularly useful indication of the performance of their system. For an accurate measure of performance relevant to them, application benchmarks are much more useful. Awareness of its existence is useful, in that it provides an easy-to-grasp example of why clock speed is not the only factor relevant to computer performance.

[edit] See also

  • Cycles Per Instruction
  • The benchmark article provides a useful introduction to computer performance measurement for those readers interested in the topic.