Top Qs
Timeline
Chat
Perspective
Instructions per second
Measure of a computer's processing speed From Wikipedia, the free encyclopedia
Remove ads
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.

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".
Remove ads
Computing
IPS can be calculated using this equation:[1]
However, the instructions/cycle measurement depends on the instruction sequence, the data and external factors.
Remove ads
Scaling units
For the most early 8-bit and 16-bit microprocessors, performance was measured in thousand instructions per second, or kilo instructions per second (kIPS).
The term "mega instructions per second" became useful in the late 1970s. The IBM System/370 model 158–3 and the VAX-11/780 were considered roughly equivalent at 1 MIPS.
Types of instruction
Summarize
Perspective
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. PIC microcontrollers), but they are difficult to compare between differing CPU architectures, especially between RISC and CISC architectures.[2] This led to the term "Meaningless Indicator of Processor Speed,"[3] or less commonly, "Meaningless Indices of Performance," [4] being popular amongst technical people by the mid-1980s.
The Gibson Mix (1959)
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). Among the first attempts at defining a specific collections of instructions to time was the Gibson Mix, produced by Jack Clark Gibson of IBM for scientific applications in 1959.[5]
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.[6]
The Gibson Mix is a product of its era, when computer speeds were still measured in kIPS. Other ratings, such as the ADP mix which does not include floating point operations, were produced for commercial applications. These early ratings were nowhere as systemic as the later approaches, although the idea of creating a benchmark to resemble real-world applications (later called a "synthetic benchmark") would persist.
Two flavors of VAX MIPS
The VAX-11/780 was released in 1977. It was marketed as being able to execute the equivalant of 1 million System/370 instructions per second, the first minicomputer to achieve such a speed. VAX-11/780 would quickly become a unit of reference for MIPS measurements, in two separate benchmarks:
- The Whetstone benchmark of 1972 was modified in 1980 to combine three of its integer-operation speed measures into a "VAX MIPS". It originally included a mix of 42 statements written in ALGOL 60 (124 instructions on the KDF9 compiler), though by 1980 it had been rewritten in Fortran.
- The integer-and-string-heavy Dhrystone benchmark of 1984 inherited the idea of using VAX as a MIPS referenece. Its results were reported in "DMIPS", for Dhrystone MIPS. Each Dhrystone MIPS was defined as the ability to run the Dhrystone main loop 1757 times per second, the score VAX-11/780 received on this benchmark.
Other instruction mixes
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.
Remove ads
Other factors that affect instructions per second
Effective MIPS speeds are highly dependent on the programming language used: some compilers generate highly-efficient code, others do not. 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.
Remove ads
Timeline of instructions per second
Summarize
Perspective
CPU results
Multi-CPU cluster results
Remove ads
See also
- TOP500
- Floating point operations per second (FLOPS)
- SUPS
- Benchmark (computing)
- BogoMips (measurement of CPU speed made by the Linux kernel)
- Instructions per cycle
- Cycles per instruction
- Dhrystone (benchmark) - DMIPS integer benchmark
- Whetstone (benchmark) - floating-point benchmark
- Million service units (MSU)
- Computer performance by orders of magnitude
- Performance per watt
- Data-rate units
References
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads