Page 78 -
P. 78
2.5 / PERFORMANCE ASSESSMENT 53
The average CPI when the program is executed on a uniprocessor with the
above trace results is CPI = 0.6 + (2 * 0.18) + (4 * 0.12) + (8 * 0.1) = 2.24.
The corresponding MIPS rate is (400 * 10 ) (2.24 * 10 ) L 178.
6
6
Another common performance measure deals only with floating-point in-
structions. These are common in many scientific and game applications. Floating-
point performance is expressed as millions of floating-point operations per second
(MFLOPS), defined as follows:
Number of executed floating-point operations in a program
MFLOPS rate =
Execution time * 10 6
Benchmarks
Measures such as MIPS and MFLOPS have proven inadequate to evaluating the
performance of processors. Because of differences in instruction sets, the instruction
execution rate is not a valid means of comparing the performance of different archi-
tectures. For example, consider this high-level language statement:
A = B + C /* assume all quantities in main memory */
With a traditional instruction set architecture,referred to as a complex instruction
set computer (CISC), this instruction can be compiled into one processor instruction:
add mem(B), mem(C), mem (A)
On a typical RISC machine, the compilation would look something like this:
load mem(B), reg(1);
load mem(C), reg(2);
add reg(1), reg(2), reg(3);
store reg(3), mem (A)
Because of the nature of the RISC architecture (discussed in Chapter 13),
both machines may execute the original high-level language instruction in about the
same time. If this example is representative of the two machines, then if the CISC
machine is rated at 1 MIPS, the RISC machine would be rated at 4 MIPS. But both
do the same amount of high-level language work in the same amount of time.
Further, the performance of a given processor on a given program may not be
useful in determining how that processor will perform on a very different type of ap-
plication.Accordingly, beginning in the late 1980s and early 1990s, industry and aca-
demic interest shifted to measuring the performance of systems using a set of
benchmark programs. The same set of programs can be run on different machines
and the execution times compared.
[WEIC90] lists the following as desirable characteristics of a benchmark
program:
1. It is written in a high-level language,making it portable across different machines.
2. It is representative of a particular kind of programming style, such as systems
programming, numerical programming, or commercial programming.