Instructions per second (IPS) is a measure of a
computer
A computer is a machine that can be programmed to Execution (computing), carry out sequences of arithmetic or logical operations (computation) automatically. Modern digital electronic computers can perform generic sets of operations known as C ...
's
processor
Processor may refer to:
Computing Hardware
* Processor (computing)
**Central processing unit (CPU), the hardware within a computer that executes a program
*** Microprocessor, a central processing unit contained on a single integrated circuit (I ...
speed. For
complex instruction set computers (CISCs), different
instructions
Instruction or instructions may refer to:
Computing
* Instruction, one operation of a processor within a computer architecture instruction set
* Computer program, a collection of instructions
Music
* Instruction (band), a 2002 rock band from Ne ...
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
In computer architecture, the memory hierarchy separates computer storage into a hierarchy based on response time. Since response time, complexity, and capacity are related, the levels may also be distinguished by their performance and controlli ...
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), million instructions per second (MIPS), and billion instructions per second (GIPS) and so on. Formerly TIPS was used occasionally for "thousand ips".
Computing
IPS can be calculated using this equation:
:
However, the instructions/cycle measurement depends on the instruction sequence, the data and external factors.
Thousand instructions per second (TIPS/kIPS)
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 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
Gibson divided computer instructions into 12 classes, based on the
IBM 704
The IBM 704 is a large digital mainframe computer introduced by IBM in 1954. It was the first mass-produced computer with hardware for floating-point arithmetic. The IBM 704 ''Manual of operation'' states:
The type 704 Electronic Data-Pro ...
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
The IBM 650 Magnetic Drum Data-Processing Machine is an early digital computer produced by IBM in the mid-1950s. It was the first mass produced computer in the world. Almost 2,000 systems were produced, the last in 1962, and it was the first ...
programs. The overall score was then the weighted sum of the average execution speed for instructions in each class.
Millions of instructions per second (MIPS)
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. This led to the term "Meaningless Indicator of Processor Speed," or less commonly, "Meaningless Indices of Performance,"
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
BASIC (Beginners' All-purpose Symbolic Instruction Code) is a family of general-purpose, high-level programming languages designed for ease of use. The original version was created by John G. Kemeny and Thomas E. Kurtz at Dartmouth College ...
(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
In computer architecture, 8-bit Integer (computer science), integers or other Data (computing), data units are those that are 8 bits wide (1 octet (computing), octet). Also, 8-bit central processing unit (CPU) and arithmetic logic unit (ALU) arc ...
and
16-bit
16-bit microcomputers are microcomputers that use 16-bit microprocessors.
A 16-bit register can store 216 different values. The range of integer values that can be stored in 16 bits depends on the integer representation used. With the two mos ...
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
A mainframe computer, informally called a mainframe or big iron, is a computer used primarily by large organizations for critical applications like bulk data processing for tasks such as censuses, industry and consumer statistics, enterprise ...
servers (
zSeries,
IBM System z9, and
IBM System z10
IBM System z10 is a line of IBM Mainframe computer, mainframes. The z10 Enterprise Class (EC) was announced on February 26, 2008. On October 21, 2008, IBM announced the z10 Business Class (BC), a scaled-down version of the z10 EC. The System ...
).
''Weighted million operations per second (WMOPS)'' is a similar measurement, used for audio codecs.
Timeline of instructions per second
See also
*
TOP500
*
FLOPS
In computing, floating point operations per second (FLOPS, flops or flop/s) is a measure of computer performance, useful in fields of scientific computations that require floating-point calculations. For such cases, it is a more accurate meas ...
- floating-point operations per second
*
SUPS
In computational neuroscience, SUPS (for Synaptic Updates Per Second) or formerly CUPS (Connections Updates Per Second) is a measure of a neuronal network performance, useful in fields of neuroscience, cognitive science, artificial intelligence, a ...
*
Benchmark (computing)
*
BogoMips
BogoMips (from "bogus" and MIPS) is a crude measurement of CPU speed made by the Linux kernel when it boots to calibrate an internal busy-loop. An often-quoted definition of the term is "the number of million times per second a processor can do a ...
(measurement of CPU speed made by the
Linux kernel
The Linux kernel is a free and open-source, monolithic, modular, multitasking, Unix-like operating system kernel. It was originally authored in 1991 by Linus Torvalds for his i386-based PC, and it was soon adopted as the kernel for the GNU ope ...
)
*
Instructions per cycle
*
Cycles per instruction
In computer architecture, cycles per instruction (aka clock cycles per instruction, clocks per instruction, or CPI) is one aspect of a processor's performance: the average number of clock cycles per instruction for a program or program fragment. ...
*
Dhrystone (benchmark) - DMIPS integer benchmark
*
Whetstone (benchmark) - floating-point benchmark
*
Million service units (MSU)
*
Computer performance by orders of magnitude
This list compares various amounts of computing power in instructions per second organized by order of magnitude in FLOPS.
Scientific E notation index: 2 , 3 , 6 , 9 , 12 , 15 , 18 , 21 , 24 , >24
__TOC__
Deciscale comput ...
*
Performance per watt
In computing, performance per watt is a measure of the energy efficiency of a particular computer architecture or computer hardware. Literally, it measures the rate of computation that can be delivered by a computer for every watt of power consume ...
*
Data-rate units
References
{{DEFAULTSORT:Instructions Per Second
Computer performance
Units of frequency