V22.0436 - Prof. Grishman

Lecture 16: Measuring Performance (cont'd)

Some Popular Metrics

How Architecture Affects Performance

Our goal is to minimize the product of the three factors (number of instructions executed, average CPI, clock cycle time) . Whenever we consider a change to the architecture, we must evaluate its effect on each of these factors.

In particular, when we add an instruction to the instruction set, we must consider whether it can significantly reduce the number of instructions to execute (the first factor) without affecting the time per instruction (the last two factors). A specialized instruction may be used only rarely by a compiler (most of the execution time is spent on a small number of instructions;  see Figure 3.26 for the distribution of instructions for the SPEC benchmarks).  On the other hand, if the instruction requires a longer data path, it may require a longer clock cycle. The net effect would be a slower machine. [We ignore the issue of code size, which is much less important than it used to be because memory is so much cheaper.]

Good candidates for instructions are those which would be used frequently and would take much longer if performed by a sequence of other instructions ... for example, floating point operations for scientific applications.

The increased use of RISC machines, starting in the mid-80's, reflected a more careful assessment of the benefits and costs of adding instructions to the instruction set.

However, the issue of binary code compatibility remains very important, if not overwhelming.  The development of entirely new machine architectures has decreased in the 90's, with the Intel PC architecture, and its variants, increasingly dominant.