Minimal instruction set computer is a central processing unit architecture, usually in the form of a microprocessor, with a very small number of basic operations and corresponding opcodes, together forming an instruction set. Such sets are commonly stack-based rather than register-based to reduce the size of operand specifiers. Such a stack machine architecture is inherently simpler since all instructions operate on the top-most stack entries. One result of the stack architecture is an overall smaller instruction set, allowing a smaller and faster instruction decode unit with overall faster operation of individual instructions. Separate from the stack definition of a MISC architecture, is the MISC architecture being defined by the number of instructions supported.
Typically a minimal instruction set computer is viewed as having 32 or fewer instructions, where NOP, RESET, and CPUID type instructions are usually not counted by consensus due to their fundamental nature.
32 instructions is viewed as the highest allowable number of instructions for a MISC, though 16 or 8 instructions are closer to what is meant by "Minimal Instructions".
Some of the first digital computers implemented with instruction sets were by modern definition minimal instruction set computers. Among these various computers, only ILLIAC and ORDVAC had compatible instruction sets.
Manchester Baby made its first successful run of a stored program on June 21, 1948.
The IBM SSEC had the ability to treat instructions as data, and was publicly demonstrated on January 27, 1948. This ability was claimed in a US patent issued April 28, 1953. However, it was partly electromechanical, not fully electronic. In practice, instructions were read from paper tape due to its limited memory.
The Manchester Baby, by the Victoria University of Manchester, was the first fully electronic computer to run a stored program. It ran a factoring program for 52 minutes on June 21, 1948, after running a simple division program and a program to show that two numbers were relatively prime.
The Binary Automatic Computer ran some test programs in February, March, and April 1949, although was not completed until September 1949.
The Manchester Mark 1 developed from the Baby project. An intermediate version of the Mark 1 was available to run programs in April 1949, but was not completed until October 1949.
The Electronic Delay Storage Automatic Calculator ran its first program on May 6, 1949.
The Electronic Discrete Variable Automatic Computer was delivered in August 1949, but it had problems that kept it from being put into regular operation until 1951.
The Whirlwind was completed in December 1950 and was in actual use in April 1951.
The first ERA Atlas was installed in December 1950.
Design weaknesses
The disadvantage of a MISC is that instructions tend to have more sequential dependencies, reducing overall instruction-level parallelism. MISC architectures have much in common with some features of some programming languages such as Forth's use of the stack, and the Java virtual machine. Both are weak in providing full instruction-level parallelism.
Notable CPUs
Probably the most commercially successful MISC was the original INMOS transputer architecture that had no floating-point unit. However, many 8-bit microcontrollers, for embedded computer applications, qualify as MISC. Each STEREO spacecraft includes two P24 MISC CPUs and two CPU24 MISC CPUs.