MFLOPS (Million Floating Point Operations Per Second) is a measurement
generally used in reference to supercomputers rather than personal
computers or workstations. Measuring MFLOPS is an inaccurate art, at best.
The reference manuals we consulted all stated that an MFLOPS rating can be
misleading. The issue that causes MFLOPS ratings to be suspect is that not
all instructions take the same time. On the 68881, a single instruction
can take from 29 to over 600 machine cycles.
From Motorola's 68020/68030 Performance Report:
"Benchmarking microprocessors is much like water-witching.
Everyone wants to use the results but are skeptical of the
900-methods. From the user's point of view, the best benchmark to
use in making a decision on a given microprocessor is to run the
code which will be run in the final application. This, however,
is usually difficult at best, and expensive and time consuming at
least. Since running the actual code is usually not feasible,
most users and all microprocessor manufacturers turn to either
synthetic benchmarks - ones that simulate real-world conditions -
or small standard benchmark programs which are designed to
indicate real-world performance. Not everyone can agree on what
simulates real conditions; thus, there are numerous benchmark
programs available, each written to test some aspect of
performance that the writer is interested in testing."
For many of the same reasons that Apple does not publish MIPS ratings and
those stated above, Apple does not publish MFLOPS ratings. However, you
can calculate this value on your own.
Using chapter 6 of the Motorola MC68881 Floating-Point Coprocessor User's
Manual, figure the average time for a floating-point operation. Here's
that problem mentioned above. Do you add the times for all instructions
and divide by the number of instructions? Do you pick a few "popular"
instructions and average their times? Do you pick the instruction that
requires the least amount of time (very sneaky)?
We suggest the first method. For the sake of this discussion, let's say that
value is xx cycles/instruction.
Assume that the floating-point unit and the microprocessor are clocked one
for one. On the Macintosh IIx, this value would be 15.6672 m-cycles/sec.
Invert the first number and multiply by the second giving you
m-instructions/sec (MFLOPS).
1 instructions 15.6672 million cycles 15.6672 million instructions
-- ------------ * ---------------------- = -------- --------------------
xx cycle sec xx sec
It is generally assumed that the 68882 is 1.5x faster than the 68881.