Instructions per second

From Wikipedia, the free encyclopedia

Instructions per second (IPS) 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 consist of a mix of instructions and even applications, some of which take longer to execute than others. The performance of the memory hierarchy also greatly affects processor performance, an issue barely considered in MIPS calculations. Because of these problems, researchers created standardized tests such as SPECint to (maybe) measure the real effective 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 (kIPS), million instructions per second (MIPS), or Million Operations per Second (MOPS).

Contents

[edit] 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 (kIPS). The most famous was the Gibson Mix, produced by J Gibson of IBM for scientific applications. Other ratings were also 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.

A thousand instructions per second (kIPS) is rarely used, as most current microprocessors can execute several million instructions per second. The thousand means 1000 not 1024.

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 (ISBN 1-55860-428-6), which explains computer architecture concepts in terms of the MIPS architecture. Such architectures tend to be scaled down versions of the MIPS R2000 architecture.

[edit] Million instructions per second

MIPS are not comparable between CPU architectures. This and other limitations of the unit lead many computer engineers to define MIPS as "Meaningless Indicator of Processor Speed."

The floating-point arithmetic equivalent of MIPS is FLOPS, to which the same cautions apply.

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. (The measure was also known as the "VAX Unit of Performance" or VUP. Though orthographically incorrect, the "S" in "VUPs" is sometimes written in upper case.) 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 of the minicomputer performance claims were based on the Fortran version of the Whetstone benchmark. This produces an artificial speed rating in Millions of Whetstone Instructions Per Second (MWIPS). Whetstone Benchmark History and Results provides some 700 results for minicomputers, mainframes, supercomputers and PCs. The VAX 11/780 with FPA (1977) is shown as having a rating of 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 compiler was for BASIC (1982) when a 4.8 MHz 8088/87 CPU obtained 0.01 MWIPS. Results on a 2.4 GHz Core 2 Duo (1 CPU 2007) vary from 9.7 MWIPS using BASIC Interpreter, 59 MWIPS via BASIC Compiler, 347 MWIPS using 1987 Fortran, 1534 MWIPS through HTML/Java to 2403 MWIPS using a modern C/C++ compiler. Source code, pre-compiled versions and results on PCs, for these and other benchmarks that measure MIPS, are available from Roy Longbottom’s PC Benchmark Collection (Free).

Most 8-bit and early 16-bit microprocessors have a performance measured in kIPS (thousand instructions per second), which equals 0.001 MIPS. The first general purpose microprocessor, the Intel i8080, ran at 640 kIPS. The Intel i8086 microprocessor, the first 16-bit microprocessor in the line of processors made by Intel and used in IBM PCs, ran at 800 kIPS. Early 32-bit PCs (386) ran at about 3 MIPS.

zMIPS refers to the MIPS measure used internally by IBM to rate its mainframe servers (zSeries, IBM System z9, and IBM System z10).

[edit] Timeline of instructions per second

Processor IPS IPS/MHz Year Source
Pencil and paper (for comparison) 0.0119 IPS n/a 1892 [1]
Intel 4004 92 kIPS at 740 kHz[2] 0.124 1971
IBM System/370 model 158-3 1 MIPS ? 1972
Intel 8080 640 kIPS at 2 MHz 0.32 MIPS/MHz 1974
VAX 11/780 500 kIPS ? 1977
Motorola 68000 1 MIPS at 8 MHz 0.125 MIPS/MHz 1979
Intel 286 2.66 MIPS at 12 MHz 0.22 MIPS/MHz 1982 [3]
Motorola 68020 4 MIPS at 20 MHz 0.2 MIPS/MHz 1984
ARM2 4 MIPS at 8 MHz 0.5 MIPS/MHz 1986
Motorola 68030 11 MIPS at 33 MHz 0.33 MIPS/MHz 1987
Intel 386DX 8.5 MIPS at 25 MHz 0.34 MIPS/MHz 1988
Motorola 68040 44 MIPS at 40 MHz 1.1 MIPS/MHz 1990
Intel 486DX 54 MIPS at 66 MHz 0.818 MIPS/MHz 1992
PowerPC 600s (G2) 35 MIPS at 33 MHz 1.06 MIPS/MHz 1994
Motorola 68060 88 MIPS at 66 MHz 1.33 MIPS/MHz 1994
Intel Pentium Pro 541 MIPS at 200 MHz 2.705 MIPS/MHz 1996 [4]
ARM 7500FE 35.9 MIPS at 40 MHz 0.897 MIPS/MHz 1996
PowerPC G3 525 MIPS at 233 MHz 2.253 MIPS/MHz 1997
Zilog eZ80 80 MIPS at 50 MHz 1.6 MIPS/MHz 1999 [5]
Intel Pentium III 1,354 MIPS at 500 MHz 2.708 MIPS/MHz 1999
Freescale MPC8272 760 MIPS at 400 MHz 1.9 MIPS/MHz 2000 [6]
AMD Athlon 3,561 MIPS at 1.2 GHz 2.967 MIPS/MHz 2000
AMD Athlon XP 2400+ 5,935 MIPS at 2.0 GHz 2.967 MIPS/MHz 2002
Pentium 4 Extreme Edition 9,726 MIPS at 3.2 GHz 3.039 MIPS/MHz 2003
ARM Cortex A8 2,000 MIPS at 1.0 GHz 2.0 MIPS/MHz 2005 [7]
AMD Athlon FX-57 12,000 MIPS at 2.8 GHz 4.285 MIPS/MHz 2005
AMD Athlon 64 3800+ X2 (Dual Core) 14,564 MIPS at 2.0 GHz 7.282 MIPS/MHz 2005 [8]
Xbox360 IBM "Xenon" Triple Core 19,200 MIPS at 3.2 GHz 2.0 MIPS/MHz 2005
PS3 Cell BE (PPE only) 10,240 MIPS at 3.2 GHz 3.2 MIPS/MHz 2006
AMD Athlon FX-60 (Dual Core) 18,938 MIPS at 2.6 GHz 7.283 MIPS/MHz 2006 [9]
Intel Core 2 X6800 27,079 MIPS at 2.93 GHz 9.242 MIPS/MHz 2006 [10]
Intel Core 2 Extreme QX6700 49,161 MIPS at 2.66 GHz 18.481 MIPS/MHz 2006 [11]
P.A. Semi PA6T-1682M 8,800 MIPS at 2.0 GHz 4.4 MIPS/MHz 2007 [12]
Intel Core 2 Extreme QX9770 59,455 MIPS at 3.2 GHz 18.580 MIPS/MHz 2008 [13]

[edit] Historic Data

[edit] See also

[edit] References