Instructions per second

Instructions per second (IPS) is a measure of a computer's processor speed. For complex instruction set computers (CISCs), different instructions take different amounts of time, so the value measured depends on the instruction mix; even for comparing processors in the same family the IPS measurement can be problematic. Many reported IPS values have represented "peak" execution rates on artificial instruction sequences with few branches and no cache contention, whereas realistic workloads typically lead to significantly lower IPS values. Memory hierarchy also greatly affects processor performance, an issue barely considered in IPS calculations. Because of these problems, synthetic benchmarks such as Dhrystone are now generally used to estimate computer performance in commonly used applications, and raw IPS has fallen into disuse.

Computer processing efficiency, measured as the power needed per million instructions per second (watts per MIPS)

The term is commonly used in association with a metric prefix (k, M, G, T, P, or E) to form kilo instructions per second (kIPS), mega instructions per second (MIPS), giga instructions per second (GIPS) and so on. Formerly TIPS was used occasionally for "thousand IPS".

Computing edit

IPS can be calculated using this equation:[1]

However, the instructions/cycle measurement depends on the instruction sequence, the data and external factors.

Thousand instructions per second (TIPS/kIPS) edit

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,[2] produced by Jack Clark Gibson of IBM for scientific applications in 1959. Other ratings, such as the ADP mix which does not include floating point operations, were produced for commercial applications. The thousand instructions per second (kIPS) unit is rarely used today, as most current microprocessors can execute at least a million instructions per second.

The Gibson Mix edit

Gibson divided computer instructions into 12 classes, based on the IBM 704 architecture, adding a 13th class to account for indexing time. Weights were primarily based on analysis of seven scientific programs run on the 704, with a small contribution from some IBM 650 programs. The overall score was then the weighted sum of the average execution speed for instructions in each class.[3]

Millions of instructions per second (MIPS) edit

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 simultaneously. MIPS can be useful when comparing performance between processors made with similar architecture (e.g. Microchip branded microcontrollers), but they are difficult to compare between differing CPU architectures.[4] This led to the term "Meaningless Indicator of Processor Speed,"[5] or less commonly, "Meaningless Indices of Performance," [6] being popular amongst technical people by the mid-1980s.

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.) 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 (1000 kIPS = 1 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 edit

Processor / SystemDhrystone MIPS or MIPS, and frequencyD instructions per clock cycleD instructions per clock cycle per coreYearSource
UNIVAC I0.002 MIPS at 2.25 MHz0.00080.00081951

[7]

IBM 7030 ("Stretch")1.200 MIPS at 3.30 MHz0.3640.3641961[8][9]
CDC 660010.00 MIPS at 10.00 MHz111965[10][11]
Intel 40040.092 MIPS at 0.740 MHz
(Not Dhrystone)
0.1240.1241971[12]
IBM System/370 Model 1580.640 MIPS at 8.696 MHz0.07360.07361972[13]
Intel 80800.290 MIPS at 2.000 MHz
(Not Dhrystone)
0.1450.1451974[14]
Cray 1160.0 MIPS at 80.00 MHz221975[15]
MOS Technology 65020.430 MIPS at 1.000 MHz0.430.431975[16]
Intel 8080A0.435 MIPS at 3.000 MHz
(Not Dhrystone)
0.1450.1451976[14]
Zilog Z800.580 MIPS at 4.000 MHz
(Not Dhrystone)
0.1450.1451976[16]
Motorola 68020.500 MIPS at 1.000 MHz0.50.51977[17]
IBM System/370 Model 158-30.730 MIPS at 8.696 MHz0.08390.08391977[13]
VAX-11/7801.000 MIPS at 5.000 MHz0.20.21977[13]
Motorola 68090.420 MIPS at 1.000 MHz0.420.421978[16]
Intel 80860.330 MIPS at 5.000 MHz0.0660.0661978[14]
Fujitsu MB88432.000 MIPS at 2.000 MHz
(Not Dhrystone)
111978[18]
Intel 80880.750 MIPS at 10.00 MHz0.0750.0751979[14]
Motorola 680001.400 MIPS at 8.000 MHz0.1750.1751979[16]
Zilog Z8001/Z80021.5 MIPS at 6 MHz0.250.251979[19]
Intel 8035/8039/80486 MIPS at 6 MHz
(Not Dhrystone)
111980[20]
Fujitsu MB8843/MB88446 MIPS at 6 MHz
(Not Dhrystone)
111980[18]
Zilog Z80/Z80H1.16 MIPS at 8 MHz
(Not Dhrystone)
0.1450.1451981[16][21]
Motorola 68021.79 MIPS at 3.58 MHz0.50.51981[17][22]
Zilog Z8001/Z8002B2.5 MIPS at 10 MHz0.250.251981[19]
MOS Technology 65022.522 MIPS at 5.865 MHz0.430.431981[16][22]
Intel 802861.28 MIPS at 12 MHz0.1070.1071982[13]
Motorola 680002.188 MIPS at 12.5 MHz0.1750.1751982[16]
Motorola 680102.407 MIPS at 12.5 MHz0.1930.1931982[23]
NEC V204 MIPS at 8 MHz
(Not Dhrystone)
0.50.51982[24]
LINKS-1 Computer Graphics System (257-processor)642.5 MIPS at 10 MHz2.50.251982[25]
Texas Instruments TMS320105 MIPS at 20 MHz0.250.251983[26]
NEC V305 MIPS at 10 MHz
(Not Dhrystone)
0.50.51983[24]
Motorola 680103.209 MIPS at 16.67 MHz0.1930.1931984[23]
Motorola 680204.848 MIPS at 16 MHz0.3030.3031984[27]
Hitachi HD637052 MIPS at 2 MHz111985[28][29]
Intel i386DX2.15 MIPS at 16 MHz0.1340.1341985[13]
Hitachi-Motorola 68HC0003.5 MIPS at 20 MHz0.1750.1751985[16]
Intel 87511 MIPS at 12 MHz0.0830.0831985[30]
Sega System 16 (4-processor)16.33 MIPS at 10 MHz4.0831.0201985[31]
ARM24 MIPS at 8 MHz0.50.51986[32]
Texas Instruments TMS340106 MIPS at 50 MHz0.120.121986[33]
NEC V706.6 MIPS at 20 MHz0.330.331987[34]
Motorola 680309 MIPS at 25 MHz0.360.361987[35][36]
Gmicro/20010 MIPS at 20 MHz0.50.51987[37]
Texas Instruments TMS320C2012.5 MIPS at 25 MHz0.50.51987[38]
Analog Devices ADSP-210012.5 MIPS at 12.5 MHz111987[39]
Texas Instruments TMS320C2525 MIPS at 50 MHz0.50.51987[38]
Motorola 6802010 MIPS at 33 MHz0.3030.3031988[27]
Motorola 6803018 MIPS at 50 MHz0.360.361988[36]
Namco System 21 (10-processor)73.927 MIPS at 25 MHz2.9570.2961988[40]
Intel i386DX4.3 MIPS at 33 MHz0.130.131989[13]
Intel i486DX8.7 MIPS at 25 MHz0.3480.3481989[13]
NEC V8016.5 MIPS at 33 MHz0.50.51989[34]
Intel i86025 MIPS at 25 MHz111989[41]
Atari Hard Drivin' (7-processor)33.573 MIPS at 50 MHz0.6710.09591989[42]
NEC SX-3 (4-processor)680 MIPS at 400 MHz1.70.4251989[43]
ARM312 MIPS at 25 MHz0.50.51989[44]
Motorola 6804044 MIPS at 40 MHz1.11.11990[45]
Namco System 21 (Galaxian³) (96-processor)1,660.386 MIPS at 40 MHz41.510.4321990[46]
AMD Am3869 MIPS at 40 MHz0.2250.2251991[47]
Intel i486DX11.1 MIPS at 33 MHz0.3360.3361991[13]
Intel i86050 MIPS at 50 MHz111991[41]
Intel i486DX225.6 MIPS at 66 MHz0.3880.3881992[13]
Alpha 21064 (EV4)86 MIPS at 150 MHz0.5730.5731992[13]
Alpha 21064 (EV4S/EV45)135 MIPS at 200 MHz0.6750.6751993[13][48]
MIPS R440085 MIPS at 150 MHz0.5670.5671993[49]
Gmicro/500132 MIPS at 66 MHz221993[50]
IBM-Motorola PowerPC 601157.7 MIPS at 80 MHz1.9711.9711993[51]
SGI Onyx RealityEngine2 (36-processor)2,640 MIPS at 150 MHz17.60.4891993[52]
Namco Magic Edge Hornet Simulator (36-processor)2,880 MIPS at 150 MHz19.20.5331993[49]
ARM740 MIPS at 45 MHz0.8890.8891994[53]
Intel DX470 MIPS at 100 MHz0.70.71994[14]
Motorola 68060110 MIPS at 75 MHz1.331.331994
Intel Pentium188 MIPS at 100 MHz1.881.881994[54]
Microchip PIC16F5 MIPS at 20 MHz0.250.251995[55]
IBM-Motorola PowerPC 603e188 MIPS at 133 MHz1.4141.4141995[56]
ARM 7500FE35.9 MIPS at 40 MHz0.90.91996
IBM-Motorola PowerPC 603ev423 MIPS at 300 MHz1.411.411996[56]
Intel Pentium Pro541 MIPS at 200 MHz2.72.71996[57]
Hitachi SH-4360 MIPS at 200 MHz1.81.81997[58][59]
IBM-Motorola PowerPC 750525 MIPS at 233 MHz2.32.31997
Zilog eZ8080 MIPS at 50 MHz1.61.61999[60]
Intel Pentium III2,054 MIPS at 600 MHz3.43.41999[54]
Sega Naomi Multiboard (32-processor)6,400 MIPS at 200 MHz3211999[61]
Freescale MPC8272760 MIPS at 400 MHz1.91.92000[62]
AMD Athlon3,561 MIPS at 1.2 GHz3.03.02000
Silicon Recognition ZISC 788,600 MIPS at 33 MHz260.6260.62000[63]
ARM11515 MIPS at 412 MHz1.251.252002[64]
AMD Athlon XP 2500+7,527 MIPS at 1.83 GHz4.14.12003[54]
Pentium 4 Extreme Edition9,726 MIPS at 3.2 GHz3.03.02003
Microchip PIC10F1 MIPS at 4 MHz0.250.252004[65][66]
ARM Cortex-M3125 MIPS at 100 MHz1.251.252004[67]
Nios II190 MIPS at 165 MHz1.131.132004[68]
MIPS32 4KEc356 MIPS at 233 MHz1.51.52004[69]
VIA C71,799 MIPS at 1.3 GHz1.41.42005[70]
ARM Cortex-A82,000 MIPS at 1.0 GHz2.02.02005[71]
AMD Athlon FX-5712,000 MIPS at 2.8 GHz4.34.32005
AMD Athlon 64 3800+ X2 (2-core)14,564 MIPS at 2.0 GHz7.33.62005[72]
PowerPC G4 MPC74483,910 MIPS at 1.7 GHz2.32.32005[73]
ARM Cortex-R4450 MIPS at 270 MHz1.661.662006[74]
MIPS32 24K604 MIPS at 400 MHz1.511.512006[75]
PS3 Cell BE (PPE only)10,240 MIPS at 3.2 GHz3.23.22006
IBM Xenon CPU (3-core)19,200 MIPS at 3.2 GHz6.02.02005
AMD Athlon FX-60 (2-core)18,938 MIPS at 2.6 GHz7.33.62006[72]
Intel Core 2 Extreme X6800 (2-core)27,079 MIPS at 2.93 GHz9.24.62006[72]
Intel Core 2 Extreme QX6700 (4-core)49,161 MIPS at 2.66 GHz18.44.62006[76]
MIPS64 20Kc1,370 MIPS at 600 MHz2.32.32007[77]
P.A. Semi PA6T-1682M8,800 MIPS at 1.8 GHz4.44.42007[78]
Qualcomm Scorpion (Cortex A8-like)2,100 MIPS at 1 GHz2.12.12008[64]
Intel Atom N2703,846 MIPS at 1.6 GHz2.42.42008[79]
Intel Core 2 Extreme QX9770 (4-core)59,455 MIPS at 3.2 GHz18.64.62008[76]
Intel Core i7 920 (4-core)82,300 MIPS at 2.93 GHz28.0897.0222008[80]
ARM Cortex-M045 MIPS at 50 MHz0.90.92009[81]
ARM Cortex-A9 (2-core)7,500 MIPS at 1.5 GHz5.02.52009[82]
AMD Phenom II X4 940 Black Edition42,820 MIPS at 3.0 GHz14.33.52009[83]
AMD Phenom II X6 1100T78,440 MIPS at 3.3 GHz23.73.92010[80]
Intel Core i7 Extreme Edition 980X (6-core)147,600 MIPS at 3.33 GHz44.77.462010[84]
ARM Cortex A51,256 MIPS at 800 MHz1.571.572011[71]
ARM Cortex A72,850 MIPS at 1.5 GHz1.91.92011[64]
Qualcomm Krait (Cortex A15-like, 2-core)9,900 MIPS at 1.5 GHz6.63.32011[64]
AMD E-350 (2-core)10,000 MIPS at 1.6 GHz6.253.1252011[85]
Nvidia Tegra 3 (Quad core Cortex-A9)13,800 MIPS at 1.5 GHz9.22.52011
Samsung Exynos 5250 (Cortex-A15-like 2-core)14,000 MIPS at 2.0 GHz7.03.52011[86]
Intel Core i5-2500K (4-core)83,000 MIPS at 3.3 GHz25.1526.2882011[87]
Intel Core i7 875K92,100 MIPS at 2.93 GHz31.47.852011[80]
AMD FX-8150 (8-core)90,749 MIPS at 3.6 GHz25.23.152011[88]
Intel Core i7 2600K (4-core)117,160 MIPS at 3.4 GHz34.458.612011[89]
Intel Core i7-3960X (6-core)176,170 MIPS at 3.3 GHz53.388.892011[90]
AMD FX-8350 (8-core)97,125 MIPS at 4.2 GHz23.12.92012[88][91]
AMD FX-9590 (8-core)115,625 MIPS at 5.0 GHz23.12.92012[80]
Intel Core i7 3770K (4-core)106,924 MIPS at 3.9 GHz27.46.92012[88]
Intel Core i7 4770K (4-core)133,740 MIPS at 3.9 GHz34.298.572013[88][91][92]
Intel Core i7 5960X (8-core)298,190 MIPS at 3.5 GHz85.210.652014[93]
Raspberry Pi 2 (quad-core ARM Cortex A7)4,744 MIPS at 1.0 GHz4.7441.1862014[94]
Intel Core i7 6950X (10-core)320,440 MIPS at 3.5 GHz91.559.162016[95]
ARM Cortex A73 (4-core)71,120 MIPS at 2.8 GHz25.46.352016
ARM Cortex A75??8.2-9.52017[96]
ARM Cortex A76??10.7-12.42018[96]
ARM Cortex A532,300 MIPS at 1 GHz2.32.32012[97]
ARM Cortex A352,100 MIPS at 1 GHz2.12.12015[97]
ARM Cortex A7215,750 to 18,375 at 2.5 GHz6.3 to 7.356.3 to 7.352015[97]
ARM Cortex A5710,250 to 11,750 at 2.5 GHz4.1 to 4.74.1 to 4.72012[97]
Sitara AM64x ARM Cortex A53 (2-core)5,992 MIPS at 1 GHz632021[98]
AMD Ryzen 7 1800X (8-core)304,510 MIPS at 3.7 GHz82.310.292017[99]
Intel Core i7-8086K (6-core)221,720 MIPS at 5.0 GHz44.347.392018[100]
Intel Core i9-9900K (8-core)412,090 MIPS at 4.7 GHz87.6810.962018[101]
AMD Ryzen 9 3950X (16-core)749,070 MIPS at 4.6 GHz162.8410.182019[101]
AMD Ryzen Threadripper 3990X (64 core)2,356,230 MIPS at 4.35 GHz541.668.462020[102]
Intel Core i5-11600K (6-core)346,350 MIPS at 4.92 GHz57.7211.732021[103]
Processor / SystemDhrystone MIPS / MIPSD instructions per clock cycleD instructions per clock cycle per coreYearSource

See also edit

References edit