Control unit

Animation of the control matrix of a simple hardwired control unit performing an LDA-instruction

Component of a computer's central processing unit (CPU) that directs the operation of the processor.

- Control unit

53 related topics

Relevance

Von Neumann architecture

Instruction fetch and a data operation cannot occur at the same time .

A von Neumann architecture scheme
Single system bus evolution of the architecture

A control unit that includes an instruction register and a program counter

Arithmetic logic unit

Arithmetic logic unit is a combinational digital circuit that performs arithmetic and bitwise operations on integer binary numbers.

A symbolic representation of an ALU and its input and output signals, indicated by arrows pointing into or out of the ALU, respectively. Each arrow represents one or more signals. Control signals enter from the left and status signals exit on the right; data flows from top to bottom.
The combinational logic circuitry of the 74181 integrated circuit, which is a simple four-bit ALU

For example, a CPU begins an ALU addition operation by routing operands from their sources (which are usually registers) to the ALU's operand inputs, while the control unit simultaneously applies a value to the ALU's opcode input, configuring it to perform addition.

Instruction cycle

Cycle that the central processing unit (CPU) follows from boot-up until the computer has shut down in order to process instructions.

This is a simple diagram illustrating the individual stages of the fetch-decode-execute cycle.

During the decode stage, the control unit (CU) will decode the instruction in the CIR.

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.

Principal components of a CPU include the arithmetic–logic unit (ALU) that performs arithmetic and logic operations, processor registers that supply operands to the ALU and store the results of ALU operations, and a control unit that orchestrates the fetching (from memory), decoding and execution of instructions by directing the coordinated operations of the ALU, registers and other components.

Instruction set architecture

Instruction set architecture , also called computer architecture, is an abstract model of a computer.

One instruction may have several fields, which identify the logical operation, and may also include source and destination addresses and constant values. This is the MIPS "Add Immediate" instruction, which allows selection of source and destination registers and inclusion of a small constant.

There are two basic ways to build a control unit to implement this description (although many designs use middle ways or compromises):

X86

Family of complex instruction set computer instruction set architectures initially developed by Intel based on the Intel 8086 microprocessor and its 8088 variant.

The x86 architectures were based on the Intel 8086 microprocessor chip, initially released in 1978.
Intel Core 2 Duo, an example of an x86-compatible, 64-bit multicore processor
AMD Athlon (early version), a technically different but fully compatible x86 implementation
Am386, released by AMD in 1991
Registers available in the x86-64 instruction set
In supercomputer clusters (as tracked by TOP 500 data and visualized on the diagram above, last updated 2013), the appearance of 64-bit extensions for the x86 architecture enabled 64-bit x86 processors by AMD and Intel (teal hatched and blue hatched, in the diagram, respectively) to replace most RISC processor architectures previously used in such systems (including PA-RISC, SPARC, Alpha, and others), and 32-bit x86 (green on the diagram), even though Intel initially tried unsuccessfully to replace x86 with a new incompatible 64-bit architecture in the Itanium processor. The main non-x86 architecture which is still used, as of 2014, in supercomputing clusters is the Power ISA used by IBM Power microprocessors (blue with diamond tiling in the diagram), with SPARC as a distant second.

These are then handed to a control unit that buffers and schedules them in compliance with x86-semantics so that they can be executed, partly in parallel, by one of several (more or less specialized) execution units.

Computer program

Sequence of instructions in a programming language that a computer can execute or interpret.

Lovelace's description from Note G.
350px
Zuse Z3 replica on display at Deutsches Museum in Munich
Glenn A. Beck is changing a tube in ENIAC.
Switches for manual input on a Data General Nova 3, manufactured in the mid-1970s
A VLSI integrated-circuit die.
IBM's System/360 (1964) CPU wasn't a microprocessor.
Artist's depiction of Sacramento State University's Intel 8008 microcomputer (1972).
The original IBM Personal Computer (1981) used an Intel 8088 microprocessor.
The DEC VT100 (1978) was a widely used computer terminal.
Prior to programming languages, Betty Jennings and Fran Bilas programmed the ENIAC by moving cables and setting switches.
"Hello, World!" computer program by Brian Kernighan (1978)
A computer program written in an imperative language
A diagram showing that the user interacts with the application software. The application software interacts with the operating system, which interacts with the hardware.
A kernel connects the application software to the hardware of a computer.
Physical memory is scattered around RAM and the hard disk. Virtual memory is one continuous block.
NOT gate.
NAND gate.
NOR gate.
AND gate.
OR gate.
A symbolic representation of an ALU.

(Advances in hardware have migrated these operations to hardware execution circuits.) Microcode instructions allow the programmer to more easily implement the digital logic level —the computer's real hardware.

Microassembler

Computer program that helps prepare a microprogram, called firmware, to control the low level operation of a computer in much the same way an assembler helps prepare higher level code for a processor.

Lovelace's description from Note G.

After it is assembled, the microprogram is then loaded to a control store to become part of the logic of a CPU's control unit.

Digital electronics

Field of electronics involving the study of digital signals and the engineering of devices that use or produce them.

A binary clock, hand-wired on breadboards
A 4-bit ring counter using D-type flip flops is an example of synchronous logic. Each device is connected to the clock signal, and update together.
Example of a simple circuit with a toggling output. The inverter forms the combinational logic in this circuit, and the register holds the state.
Intel 80486DX2 microprocessor

The control unit of a computer is usually designed as a microprogram run by a microsequencer.

Adder–subtractor

Adder–subtractor is a circuit that is capable of adding or subtracting numbers .

A 4-bit ripple-carry adder–subtractor based on a 4-bit adder that performs two's complement on A when D = 1 to yield S = B − A.

The control unit decides which operations an ALU should perform (based on the op code being executed) and sets the ALU operation.