Instructions per second

Instructions per second

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 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 (kIPS), million instructions per second (MIPS), Giga instructions per second (GIPS), or million operations per second (MOPS).

Contents

  • Thousand instructions per second 1
  • Millions of instructions per second 2
  • Timeline of instructions per second 3
  • Thousand instructions per second 4
  • Millions of instructions per second 5
  • Timeline of instructions per second 6

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 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 (Gibson) and commercial (ADP) 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 (kIPS) 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 (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.

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 (problematic in CPU pipelines). 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 (e.g. Microchip branded microcontrollers). However, MIPS are difficult to compare between CPU architectures.[1]

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. (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 minicomputer performance claims were based on the Fortran version of the Whetstone benchmark, giving Millions of Whetstone Instructions Per Second (MWIPS). The VAX 11/780 with FPA (1977) 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 (1982) when a 4.8 MHz 8088/87 CPU obtained 0.01 MWIPS. Results on a 2.4 GHz Intel Core 2 Duo (1 CPU 2007) 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 (1 kIPS = 0.001 MIPS).

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

Weighted million operations per second (WMOPS) 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.
Processor / System Dhrystone MIPS / MIPS D IPS / clock cycles per second D IPS / clock cycles per second / Cores per die Year Source
UNIVAC I 0.002 MIPS at 2.25 MHz 0.0008 0.0008 1951 [2]
Intel 4004 0.092 MIPS at 740 kHz
(Not Dhrystone)
0.124 0.124 1971 [3]
IBM System/370 158 0.64 MIPS at 8.696 MHz 0.0736 0.0736 1972 [4]
Intel 8080 0.29 MIPS at 2 MHz 0.145 0.145 1974 [5]
MOS Technology 6502 0.43 MIPS at 1 MHz 0.43 0.43 1975 [6]
Intel 8080A 0.435 MIPS at 3 MHz 0.145 0.145 1976 [5]
Zilog Z80 0.58 MIPS at 4 MHz 0.145 0.145 1976 [6]
Motorola 6809 0.42 MIPS at 1 MHz 0.42 0.42 1977 [6]
Motorola 6802 0.5 MIPS at 1 MHz 0.5 0.5 1977 [7]
IBM System/370 158-3 0.73 MIPS at 8.696 MHz 0.0839 0.0839 1977 [4]
VAX-11/780 1 MIPS at 5 MHz 0.2 0.2 1977 [4]
Fujitsu FACOM 230-75 APU 2 MIPS at 11 MHz 0.182 0.182 1977 [8][9]
Intel 8086 0.33 MIPS at 5 MHz 0.066 0.066 1978 [5]
Fujitsu MB8843 2 MIPS at 2 MHz 1 1 1978 [10]
Intel 8088 0.75 MIPS at 10 MHz 0.075 0.075 1979 [5]
Motorola 68000 1.4 MIPS at 8 MHz 0.175 0.175 1979 [6]
Zilog Z8001/Z8002 1.5 MIPS at 6 MHz 0.25 0.25 1979 [11]
Intel 8035/8039/8048 6 MIPS at 6 MHz 1 1 1980 [12]
Fujitsu MB8843/MB8844 6 MIPS at 6 MHz 1 1 1980 [10]
Zilog Z80/Z80H 1.16 MIPS at 8 MHz 0.145 0.145 1981 [6][13]
Motorola 6802 1.79 MIPS at 3.58 MHz 0.5 0.5 1981 [7][14]
Zilog Z8001/Z8002B 2.5 MIPS at 10 MHz 0.25 0.25 1981 [11]
MOS Technology 6502 2.522 MIPS at 5.865 MHz 0.43 0.43 1981 [6][14]
Sega G80 (3 cInstructions 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 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 (kIPS), million instructions per second (MIPS), Giga instructions per second (GIPS), or million operations per second (MOPS).

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 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 (Gibson) and commercial (ADP) 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 (kIPS) 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 (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.

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 (problematic in CPU pipelines). 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 (e.g. Microchip branded microcontrollers). However, MIPS are difficult to compare between CPU architectures.[15]

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. (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 minicomputer performance claims were based on the Fortran version of the Whetstone benchmark, giving Millions of Whetstone Instructions Per Second (MWIPS). The VAX 11/780 with FPA (1977) 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 (1982) when a 4.8 MHz 8088/87 CPU obtained 0.01 MWIPS. Results on a 2.4 GHz Intel Core 2 Duo (1 CPU 2007) 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 (1 kIPS = 0.001 MIPS).

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

Weighted million operations per second (WMOPS) 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.
Processor / System Dhrystone MIPS / MIPS D IPS / clock cycles per second D IPS / clock cycles per second / Cores per die Year Source
UNIVAC I 0.002 MIPS at 2.25 MHz 0.0008 0.0008 1951 [16]
Intel 4004 0.092 MIPS at 740 kHz
(Not Dhrystone)
0.124 0.124 1971 [17]
IBM System/370 158 0.64 MIPS at 8.696 MHz 0.0736 0.0736 1972 [4]
Intel 8080 0.29 MIPS at 2 MHz 0.145 0.145 1974 [5]
MOS Technology 6502 0.43 MIPS at 1 MHz 0.43 0.43 1975 [6]
Intel 8080A 0.435 MIPS at 3 MHz 0.145 0.145 1976 [5]
Zilog Z80 0.58 MIPS at 4 MHz 0.145 0.145 1976 [6]
Motorola 6809 0.42 MIPS at 1 MHz 0.42 0.42 1977 [6]
Motorola 6802 0.5 MIPS at 1 MHz 0.5 0.5 1977 [7]
IBM System/370 158-3 0.73 MIPS at 8.696 MHz 0.0839 0.0839 1977 [4]
VAX-11/780 1 MIPS at 5 MHz 0.2 0.2 1977 [4]
Fujitsu FACOM 230-75 APU 2 MIPS at 11 MHz 0.182 0.182 1977 [18][19]
Intel 8086 0.33 MIPS at 5 MHz 0.066 0.066 1978 [5]
Fujitsu MB8843 2 MIPS at 2 MHz 1 1 1978 [10]
Intel 8088 0.75 MIPS at 10 MHz 0.075 0.075 1979 [5]
Motorola 68000 1.4 MIPS at 8 MHz 0.175 0.175 1979 [6]
Zilog Z8001/Z8002 1.5 MIPS at 6 MHz 0.25 0.25 1979 [11]
Intel 8035/8039/8048 6 MIPS at 6 MHz 1 1 1980 [12]
Fujitsu MB8843/MB8844 6 MIPS at 6 MHz 1 1 1980 [10]
Zilog Z80/Z80H 1.16 MIPS at 8 MHz 0.145 0.145 1981 [6][20]
Motorola 6802 1.79 MIPS at 3.58 MHz 0.5 0.5 1981 [7][14]
Zilog Z8001/Z8002B 2.5 MIPS at 10 MHz 0.25 0.25 1981 [11]
MOS Technology 6502 2.522 MIPS at 5.865 MHz 0.43 0.43 1981 [6][14]
Sega G80 (3 c

Genus: Leptotrombidium