Instructions per second is a measure of a computer's processor speed. Many reported
IPS values have represented "peak" execution rates on artificial instruction sequences
with few branches, whereas realistic workloads typically lead to significantly lower IPS
values. The performance of the memory hierarchy also greatly affects processor performance,
an issue barely considered in MIPS calculations. Because of these problems, synthetic benchmarks
such as SPECint are now generally used to estimate computer performance in commonly
used applications, and raw IPS has fallen into disuse.
The term is commonly used in association with a numeric value such as thousand instructions
per second, million instructions per second, Giga instructions per second, or million operations
per second.
Thousand instructions per second Before standard benchmarks were available,
average speed rating of computers was based on calculations for a mix of instructions
with the results given in kilo Instructions Per Second. The most famous was the Gibson
Mix, produced by Jack Clark Gibson of IBM for scientific applications. Other ratings,
such as the ADP mix which does not include floating point operations, were produced for
commercial applications. Computer Speeds From Instruction Mixes pre-1960 to 1971 has results
for around 175 computers, providing scientific and commercial ratings. For IBM, the earliest
Gibson Mix calculations shown are the 1954 IBM 650 at 0.06 kIPS and 1956 IBM 705 at
0.5 kIPS. The results are mainly for IBM and others known as the BUNCH — Burroughs,
UNIVAC, NCR, CDC, and Honeywell. The thousand instructions per second unit
is rarely used today, as most current microprocessors can execute at least a million instructions
per second. kIPS is also a common joke name for 16 bit
microprocessor designs developed in undergraduate computer engineering courses that use the
text Computer Organization and Design by Patterson and Hennessy, which explains computer architecture
concepts in terms of the MIPS architecture. Such architectures tend to be scaled down
versions of the MIPS R2000 architecture. Millions of instructions per second
The speed of a given CPU depends on many factors, such as the type of instructions being executed,
the execution order and the presence of branch instructions. CPU instruction rates are different
from clock frequencies, usually reported in Hz, as each instruction may require several
clock cycles to complete or the processor may be capable of executing multiple independent
instructions at once. MIPS can be useful when comparing performance between processors made
from a similar architecture. However, MIPS are difficult to compare between CPU architectures.
For this reason, MIPS has become not a measure of instruction execution speed, but task performance
speed compared to a reference. In the late 1970s, minicomputer performance was compared
using VAX MIPS, where computers were measured on a task and their performance rated against
the VAX 11/780 that was marketed as a 1 MIPS machine. This was chosen because the 11/780
was roughly equivalent in performance to an IBM System/370 model 158-3, which was commonly
accepted in the computing industry as running at 1 MIPS.
Many minicomputer performance claims were based on the Fortran version of the Whetstone
benchmark, giving Millions of Whetstone Instructions Per Second. The VAX 11/780 with FPA runs at
1.02 MWIPS. Effective MIPS speeds are highly dependent
on the programming language used. The Whetstone Report has a table showing MWIPS speeds of
PCs via early interpreters and compilers up to modern languages. The first PC compiler
was for BASIC when a 4.8 MHz 8088/87 CPU obtained 0.01 MWIPS. Results on a 2.4 GHz
Intel Core 2 Duo vary from 9.7 MWIPS using BASIC Interpreter, 59 MWIPS via BASIC Compiler,
347 MWIPS using 1987 Fortran, 1,534 MWIPS through HTML/Java to 2,403 MWIPS using a
modern C/C++ compiler. For the most early 8-bit and 16-bit microprocessors,
performance was measured in thousand instructions per second. The first general purpose microprocessor,
the Intel i8080, ran at 0.64 MIPS. The Intel i8086 microprocessor, the first 16-bit microprocessor
in the line of processors made by Intel a variant of which was used in IBM PCs, ran
at 0.8 MIPS. Early 32-bit PCs ran at about 3 MIPS.
zMIPS refers to the MIPS measure used internally by IBM to rate its mainframe servers.
Weighted million operations per second is a similar measurement, used for audio codecs.
Timeline of instructions per second Note: Bold highlight indicates the next step-up
in terms of the highest known MIPS figures of their time.
Historic data Computer Speeds From Instruction Mixes pre-1960
to 1971 Computer Speed Claims 1980 to 1996
PC CPU Performance Comparisons %MIPS/MHz See also
Benchmark BogoMips
Cycles per instruction Dhrystone MIPS
FLOPS Instructions per cycle
Million service units Orders of magnitude
Peak MIPS Performance per watt
Relative MIPS References