Minimal instruction set computer
   HOME

TheInfoList



OR:

Minimal instruction set computer (MISC) is a
central processing unit A central processing unit (CPU), also called a central processor, main processor, or just processor, is the primary Processor (computing), processor in a given computer. Its electronic circuitry executes Instruction (computing), instructions ...
(CPU) architecture, usually in the form of a
microprocessor A microprocessor is a computer processor (computing), processor for which the data processing logic and control is included on a single integrated circuit (IC), or a small number of ICs. The microprocessor contains the arithmetic, logic, a ...
, with a very small number of basic operations and corresponding
opcode In computing, an opcode (abbreviated from operation code) is an enumerated value that specifies the operation to be performed. Opcodes are employed in hardware devices such as arithmetic logic units (ALUs), central processing units (CPUs), and ...
s, together forming an
instruction set In computer science, an instruction set architecture (ISA) is an abstract model that generally defines how software controls the CPU in a computer or a family of computers. A device or program that executes instructions described by that ISA, s ...
. Such sets are commonly stack-based rather than register-based to reduce the size of
operand In mathematics, an operand is the object of a mathematical operation, i.e., it is the object or quantity that is operated on. Unknown operands in equalities of expressions can be found by equation solving. Example The following arithmetic expres ...
specifiers. Such a
stack machine In computer science, computer engineering and programming language implementations, a stack machine is a computer processor or a Virtual machine#Process virtual machines, process virtual machine in which the primary interaction is moving short- ...
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.


Characteristics and design philosophy

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 In the x86 architecture, the CPUID instruction (identified by a CPUID opcode) is a processor supplementary instruction (its name derived from " CPU Identification") allowing software to discover details of the processor. It was introduced by Int ...
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". * A MISC CPU cannot have zero instructions as that is a zero instruction set computer. * A MISC CPU cannot have one instruction as that is a one instruction set computer. * The implemented CPU instructions should by default not support a wide set of inputs, so this typically means an 8-bit or 16-bit CPU. * If a CPU has an
NX bit The NX bit (no-execute bit) is a processor feature that separates areas of a virtual address space (the memory layout a program uses) into sections for storing data or program instructions. An operating system supporting the NX bit can mark certai ...
, it is more likely to be viewed as being a
complex instruction set computer A complex instruction set computer (CISC ) is a computer architecture in which single instructions can execute several low-level operations (such as a load from memory, an arithmetic operation, and a memory store) or are capable of multi-step ...
(CISC) or
reduced instruction set computer In electronics and computer science, a reduced instruction set computer (RISC) is a computer architecture designed to simplify the individual instructions given to the computer to accomplish tasks. Compared to the instructions given to a com ...
(RISC). * MISC chips typically lack hardware memory protection of any kind, unless there is an application specific reason to have the feature. * If a CPU has a
microcode In processor design, microcode serves as an intermediary layer situated between the central processing unit (CPU) hardware and the programmer-visible instruction set architecture of a computer. It consists of a set of hardware-level instructions ...
subsystem, that excludes it from being a MISC. * The only
addressing mode Addressing modes are an aspect of the instruction set architecture in most central processing unit (CPU) designs. The various addressing modes that are defined in a given instruction set architecture define how the machine language instructions ...
considered acceptable for a MISC CPU to have is load/store, the same as for
reduced instruction set computer In electronics and computer science, a reduced instruction set computer (RISC) is a computer architecture designed to simplify the individual instructions given to the computer to accomplish tasks. Compared to the instructions given to a com ...
(RISC) CPUs. * MISC CPUs can typically have between 64 KB to 4 GB of accessible addressable memory—but most MISC designs are under 1 megabyte. Also, the instruction pipelines of MISC as a rule tend to be very simple.
Instruction pipeline In computer engineering, instruction pipelining is a technique for implementing instruction-level parallelism within a single processor. Pipelining attempts to keep every part of the processor busy with some instruction by dividing incoming Mac ...
s,
branch prediction In computer architecture, a branch predictor is a digital circuit that tries to guess which way a branch (e.g., an if–then–else structure) will go before this is known definitively. The purpose of the branch predictor is to improve the flow ...
,
out-of-order execution In computer engineering, out-of-order execution (or more formally dynamic execution) is an instruction scheduling paradigm used in high-performance central processing units to make use of instruction cycles that would otherwise be wasted. In t ...
,
register renaming In computer architecture, register renaming is a technique that abstracts logical processor register, registers from physical registers. Every logical register has a set of physical registers associated with it. When a machine language instructio ...
, and
speculative execution Speculative execution is an optimization (computer science), optimization technique where a computer system performs some task that may not be needed. Work is done before it is known whether it is actually needed, so as to prevent a delay that woul ...
broadly exclude a CPU from being classified as a MISC architecture. While 1-bit CPUs are otherwise obsolete (and were not MISCs nor OISCs), the first carbon nanotube computer is a 1-bit
one-instruction set computer A one-instruction set computer (OISC), sometimes referred to as an ultimate RISC, reduced instruction set computer (URISC), is an abstract machine that uses only one instructionobviating the need for a machine language opcode. With a judicious cho ...
, and has only 178 transistors, and thus likely the lowest-complexity (or next-lowest) CPU produced so far (by
transistor count The transistor count is the number of transistors in an electronic device (typically on a single substrate or silicon die). It is the most common measure of integrated circuit complexity (although the majority of transistors in modern microproc ...
).


History

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 The Manchester Baby, also called the Small-Scale Experimental Machine (SSEM), was the first electronic stored-program computer. It was built at the University of Manchester by Frederic Calland Williams, Frederic C. Williams, Tom Kilburn, and Ge ...
(University of Manchester, England) made its first successful run of a stored program on June 21, 1948. *
Electronic Delay Storage Automatic Calculator The Electronic Delay Storage Automatic Calculator (EDSAC) was an early British computer. Inspired by John von Neumann's seminal ''First Draft of a Report on the EDVAC'', the machine was constructed by Maurice Wilkes and his team at the Universi ...
(EDSAC,
University of Cambridge The University of Cambridge is a Public university, public collegiate university, collegiate research university in Cambridge, England. Founded in 1209, the University of Cambridge is the List of oldest universities in continuous operation, wo ...
, England) was the first practical stored-program electronic computer (May 1949) *
Manchester Mark 1 The Manchester Mark 1 was one of the earliest stored-program computers, developed at the Victoria University of Manchester, England from the Manchester Baby (operational in June 1948). Work began in August 1948, and the first version was operat ...
(
Victoria University of Manchester The Victoria University of Manchester, usually referred to as simply the University of Manchester, was a university in Manchester, England. It was founded in 1851 as Owens College. In 1880, the college joined the federal Victoria University. A ...
, England) Developed from the Baby (June 1949) * Commonwealth Scientific and Industrial Research Automatic Computer ( CSIRAC,
Council for Scientific and Industrial Research A council is a group of people who come together to consult, deliberate, or make decisions. A council may function as a legislature, especially at a town, city or county/shire level, but most legislative bodies at the state/provincial or nati ...
) Australia (November 1949) * Electronic Discrete Variable Automatic Computer (
EDVAC EDVAC (Electronic Discrete Variable Automatic Computer) was one of the earliest electronic computers. It was built by Moore School of Electrical Engineering at the University of Pennsylvania. Along with ORDVAC, it was a successor to the ENIAC. ...
,
Ballistic Research Laboratory The Ballistic Research Laboratory (BRL) was a research facility under the U.S. Army Ordnance Corps and later the U.S. Army Materiel Command that specialized in ballistics as well as vulnerability and lethality analysis. Situated at Aberdeen Pr ...
, Computing Laboratory at
Aberdeen Proving Ground Aberdeen Proving Ground (APG) is a U.S. Army facility located adjacent to Aberdeen, Harford County, Maryland, United States. More than 7,500 civilians and 5,000 military personnel work at APG. There are 11 major commands among the tenant units, ...
1951) * Ordnance Discrete Variable Automatic Computer ( ORDVAC,
University of Illinois at Urbana–Champaign The University of Illinois Urbana-Champaign (UIUC, U of I, Illinois, or University of Illinois) is a public land-grant research university in the Champaign–Urbana metropolitan area, Illinois, United States. Established in 1867, it is the f ...
) at Aberdeen Proving Ground, Maryland (completed November 1951) *
IAS machine The IAS machine was the first electronic computer built at the Institute for Advanced Study (IAS) in Princeton, New Jersey. It is sometimes called the von Neumann machine, since the paper describing its design was edited by John von Neumann, a ...
at
Princeton University Princeton University is a private university, private Ivy League research university in Princeton, New Jersey, United States. Founded in 1746 in Elizabeth, New Jersey, Elizabeth as the College of New Jersey, Princeton is the List of Colonial ...
(January 1952) *
MANIAC I __NOTOC__ The MANIAC I (Mathematical Analyzer Numerical Integrator and Automatic Computer Model I) was an early computer built under the direction of Nicholas Metropolis at the Los Alamos National Laboratory, Los Alamos Scientific Laboratory. It ...
at Los Alamos Scientific Laboratory (March 1952) * MESM performed its first test run in
Kyiv Kyiv, also Kiev, is the capital and most populous List of cities in Ukraine, city of Ukraine. Located in the north-central part of the country, it straddles both sides of the Dnieper, Dnieper River. As of 1 January 2022, its population was 2, ...
on November 6, 1950 * Illinois Automatic Computer ( ILLIAC) at the
University of Illinois The University of Illinois Urbana-Champaign (UIUC, U of I, Illinois, or University of Illinois) is a public university, public land-grant university, land-grant research university in the Champaign–Urbana metropolitan area, Illinois, United ...
, (September 1952)


Early stored-program computers

* 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 The Manchester Baby, also called the Small-Scale Experimental Machine (SSEM), was the first electronic stored-program computer. It was built at the University of Manchester by Frederic Calland Williams, Frederic C. Williams, Tom Kilburn, and Ge ...
, by the
Victoria University of Manchester The Victoria University of Manchester, usually referred to as simply the University of Manchester, was a university in Manchester, England. It was founded in 1851 as Owens College. In 1880, the college joined the federal Victoria University. A ...
, 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 In number theory, two integers and are coprime, relatively prime or mutually prime if the only positive integer that is a divisor of both of them is 1. Consequently, any prime number that divides does not divide , and vice versa. This is equiv ...
. * The Electronic Numerical Integrator and Computer (
ENIAC ENIAC (; Electronic Numerical Integrator and Computer) was the first Computer programming, programmable, Electronics, electronic, general-purpose digital computer, completed in 1945. Other computers had some of these features, but ENIAC was ...
) was modified to run as a primitive read-only stored-program computer (using the Function Tables for program
read-only memory Read-only memory (ROM) is a type of non-volatile memory used in computers and other electronic devices. Data stored in ROM cannot be electronically modified after the manufacture of the memory device. Read-only memory is useful for storing sof ...
(ROM) and was demonstrated as such on September 16, 1948, running a program by Adele Goldstine for von Neumann. * The Binary Automatic Computer (
BINAC BINAC (Binary Automatic Computer) is an early electronic computer that was designed for Northrop Corporation, Northrop Aircraft Company by the Eckert–Mauchly Computer Corporation (EMCC) in 1949. J. Presper Eckert, Eckert and Mauchly had started ...
) ran some test programs in February, March, and April 1949, although was not completed until September 1949. * The
Manchester Mark 1 The Manchester Mark 1 was one of the earliest stored-program computers, developed at the Victoria University of Manchester, England from the Manchester Baby (operational in June 1948). Work began in August 1948, and the first version was operat ...
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 The Electronic Delay Storage Automatic Calculator (EDSAC) was an early British computer. Inspired by John von Neumann's seminal ''First Draft of a Report on the EDVAC'', the machine was constructed by Maurice Wilkes and his team at the Universi ...
(EDSAC) ran its first program on May 6, 1949. * The Electronic Discrete Variable Automatic Computer (
EDVAC EDVAC (Electronic Discrete Variable Automatic Computer) was one of the earliest electronic computers. It was built by Moore School of Electrical Engineering at the University of Pennsylvania. Along with ORDVAC, it was a successor to the ENIAC. ...
) was delivered in August 1949, but it had problems that kept it from being put into regular operation until 1951. * The Commonwealth Scientific and Industrial Research Automatic Computer ( CSIRAC, formerly CSIR Mk I) ran its first program in November 1949. * The Standards Eastern Automatic Computer ( SEAC) was demonstrated in April 1950. * The
Pilot ACE The Pilot ACE (Automatic Computing Engine) was one of the first computers built in the United Kingdom. Built at the National Physical Laboratory (NPL) in the early 1950s, it was also one of the earliest general-purpose, stored-program computer ...
ran its first program on May 10, 1950 and was demonstrated in December 1950. * The Standards Western Automatic Computer ( SWAC) was completed in July 1950. * The
Whirlwind A whirlwind is a phenomenon in which a vortex of wind (a vertically oriented rotating column of air) forms due to instabilities and turbulence created by heating and flow ( current) gradients. Whirlwinds can vary in size and last from a cou ...
was completed in December 1950 and was in actual use in April 1951. * The first ERA Atlas (later the commercial ERA 1101/UNIVAC 1101) 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 Instruction-level parallelism (ILP) is the Parallel computing, parallel or simultaneous execution of a sequence of Instruction set, instructions in a computer program. More specifically, ILP refers to the average number of instructions run per st ...
''. MISC architectures have much in common with some features of some
programming language A programming language is a system of notation for writing computer programs. Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
s such as Forth's use of the stack, and the
Java virtual machine A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally descr ...
. Both are weak in providing full ''instruction-level parallelism''. However, one could employ macro-op fusion as a means of executing common instruction phrases as individual steps (e.g., ADD,FETCH to perform a single indexed memory read).


Notable CPUs

Probably the most commercially successful MISC was the original INMOS
transputer The transputer is a series of pioneering microprocessors from the 1980s, intended for parallel computing. To support this, each transputer had its own integrated memory and serial communication links to exchange data with other transputers. ...
architecture that had no
floating-point unit A floating-point unit (FPU), numeric processing unit (NPU), colloquially math coprocessor, is a part of a computer system specially designed to carry out operations on floating-point numbers. Typical operations are addition, subtraction, multip ...
. However, many
8-bit In computer architecture, 8-bit integers or other data units are those that are 8 bits wide (1 octet). Also, 8-bit central processing unit (CPU) and arithmetic logic unit (ALU) architectures are those that are based on registers or data bu ...
microcontroller A microcontroller (MC, uC, or μC) or microcontroller unit (MCU) is a small computer on a single integrated circuit. A microcontroller contains one or more CPUs (processor cores) along with memory and programmable input/output peripherals. Pro ...
s, for embedded computer applications, qualify as MISC. Each
STEREO Stereophonic sound, commonly shortened to stereo, is a method of sound reproduction that recreates a multi-directional, 3-dimensional audible perspective. This is usually achieved by using two independent audio channels through a configurat ...
spacecraft includes two P24 MISC CPUs and two CPU24 MISC CPUs.


See also

*
Complex instruction set computer A complex instruction set computer (CISC ) is a computer architecture in which single instructions can execute several low-level operations (such as a load from memory, an arithmetic operation, and a memory store) or are capable of multi-step ...
*
Explicitly parallel instruction computing Explicitly parallel instruction computing (EPIC) is a term coined in 1997 by the Itanium, HP–Intel alliance to describe a computing paradigm that researchers had been investigating since the early 1980s. This paradigm is also called ''Independe ...
*
Reduced instruction set computer In electronics and computer science, a reduced instruction set computer (RISC) is a computer architecture designed to simplify the individual instructions given to the computer to accomplish tasks. Compared to the instructions given to a com ...
*
Very long instruction word Very long instruction word (VLIW) refers to instruction set architectures that are designed to exploit instruction-level parallelism (ILP). A VLIW processor allows programs to explicitly specify instructions to execute in parallel, whereas conve ...
* No instruction set computing *
One-instruction set computer A one-instruction set computer (OISC), sometimes referred to as an ultimate RISC, reduced instruction set computer (URISC), is an abstract machine that uses only one instructionobviating the need for a machine language opcode. With a judicious cho ...


References


External links


Forth MISC chip designsseaForth-24
– the next to latest
multi-core processor A multi-core processor (MCP) is a microprocessor on a single integrated circuit (IC) with two or more separate central processing units (CPUs), called ''cores'' to emphasize their multiplicity (for example, ''dual-core'' or ''quad-core''). Ea ...
MISC design from Charles H. Moore
Green Arrays
- the latest
multi-core processor A multi-core processor (MCP) is a microprocessor on a single integrated circuit (IC) with two or more separate central processing units (CPUs), called ''cores'' to emphasize their multiplicity (for example, ''dual-core'' or ''quad-core''). Ea ...
MISC design from Charles H. Moore {{Processor technologies Instruction processing Central processing unit