EDVAC, one of the first stored-program computers

Use of two or more central processing units within a single computer system.

- Multiprocessing

322 related topics


Symmetric multiprocessing

Diagram of a symmetric multiprocessing system
Diagram of a typical SMP system. Three processors are connected to the same memory module through a system bus or crossbar switch

Symmetric multiprocessing or shared-memory multiprocessing (SMP) involves a multiprocessor computer hardware and software architecture where two or more identical processors are connected to a single, shared main memory, have full access to all input and output devices, and are controlled by a single operating system instance that treats all processors equally, reserving none for special purposes.

Non-uniform memory access

The motherboard of an HP Z820 workstation with two CPU sockets, each with their own set of eight DIMM slots surrounding the socket.
One possible architecture of a NUMA system. The processors connect to the bus or crossbar by connections of varying thickness/number. This shows that different CPUs have different access priorities to memory based on their relative location.
Topology of a ccNUMA Bulldozer server extracted using hwloc's lstopo tool.

Non-uniform memory access (NUMA) is a computer memory design used in multiprocessing, where the memory access time depends on the memory location relative to the processor.

Process (computing)

Instance of a computer program that is being executed by one or many threads.

A list of processes as displayed by htop
A process table as displayed by KDE System Guard
The various process states, displayed in a state diagram, with arrows indicating possible transitions between states.

On later systems with multiple processors, multiple programs may run concurrently in parallel.

Multi-core processor

Computer processor on a single integrated circuit with two or more separate processing units, called cores, each of which reads and executes program instructions.

Diagram of a generic dual-core processor with CPU-local level-1 caches and a shared, on-die level-2 cache
An Intel Core 2 Duo E6750 dual-core processor
An AMD Athlon X2 6400+ dual-core processor
An embedded system on a plug-in card with processor, memory, power supply, and external interfaces

A multi-core processor implements multiprocessing in a single physical package.

Computer multitasking

Concurrent execution of multiple tasks over a certain period of time.

Modern desktop operating systems are capable of handling large numbers of different processes at the same time. This screenshot shows Linux Mint running simultaneously Xfce desktop environment, Firefox, a calculator program, the built-in calendar, Vim, GIMP, and VLC media player.
Multitasking of Microsoft Windows 1.01 released in 1985, here shown running the MS-DOS Executive and Calculator programs

Even on multiprocessor computers, multitasking allows many more tasks to be run than there are CPUs.

Asymmetric multiprocessing

Asymmetric multiprocessing

An asymmetric multiprocessing (AMP or ASMP) system is a multiprocessor computer system where not all of the multiple interconnected central processing units (CPUs) are treated equally.

Flynn's taxonomy

Classification of computer architectures, proposed by Michael J. Flynn in 1966 and extended in 1972.

Since the rise of multiprocessing central processing units (CPUs), a multiprogramming context has evolved as an extension of the classification system.

Motorola 68000

16/32-bit complex instruction set computer (CISC) microprocessor, introduced in 1979 by Motorola Semiconductor Products Sector.

Pre-release XC68000 chip made in 1979
Die of Motorola 68000
Motorola MC68000 (leadless chip carrier (CLCC) package)
Motorola MC68000 (plastic leaded chip carrier (PLCC) package)
Hitachi HD68000
Thomson TS68000
Motorola MC68HC000LC8
Two Hitachi 68HC000 CPUs being used on an arcade-game PCB
Motorola 68EC000 controller

Multiprocessing control: TAS, test-and-set, performed an indivisible bus operation, permitting semaphores to be used to synchronize several processors sharing a single memory

Central processing unit

Electronic circuitry that executes instructions comprising a computer program.

EDVAC, one of the first stored-program computers
IBM PowerPC 604e processor
Fujitsu board with SPARC64 VIIIfx processors
CPU, core memory and external bus interface of a DEC PDP-8/I, made of medium-scale integrated circuits
Inside of laptop, with CPU removed from socket
Block diagram of a basic uniprocessor-CPU computer. Black lines indicate data flow, whereas red lines indicate control flow; arrows indicate flow directions.
Symbolic representation of an ALU and its input and output signals
A six-bit word containing the binary encoded representation of decimal value 40. Most modern CPUs employ word sizes that are a power of two, for example 8, 16, 32 or 64 bits.
Model of a subscalar CPU, in which it takes fifteen clock cycles to complete three instructions
Basic five-stage pipeline. In the best case scenario, this pipeline can sustain a completion rate of one instruction per clock cycle.
A simple superscalar pipeline. By fetching and dispatching two instructions at a time, a maximum of two instructions per clock cycle can be completed.

One technology used for this purpose was multiprocessing (MP).


Interrupt is a request for the processor to interrupt currently executing code (when permitted), so that the event can be processed in a timely manner.

interrupt sources and processor handling

In multiprocessor systems, a processor may send an interrupt request to another processor via inter-processor interrupts'' (IPI).