Controller (computing)

In computing and especially in computer hardware, a controller is a chip (such as a microcontroller), an expansion card, or a stand-alone device that interfaces with a more peripheral device. This may be a link between two parts of a computer (for example a memory controller that manages access to memory for the computer) or a controller on an external device that manages the operation of (and connection with) that device.

The term is sometimes used in the opposite sense to refer to a device by which the user controls the operation of the computer, as in game controller.

In desktop computers the controller may be a plug-in board, a single integrated circuit on the motherboard, or an external device. In mainframes the controller is usually either a separate device attached to a channel or integrated into the peripheral.

Host and peripheral controllersEdit

Controllers can be present on both sides of a computer bus. The controller on the host side (physically part of the host) is called a host controller or (in storage contexts) a host bus adapter. The controller on the peripheral side (physically part of the peripheral device) is called a peripheral controller; examples are disk controllers and flash memory controllers, which in modern systems are usually integrated into the drive.

This classification does not apply to network controllers, since systems participate as peers and neither system is clearly more central/peripheral.

Controller boardsEdit

Video display controller expansion board

Early desktop computers such as the IMSAI 8080 used expansion boards (or expansion cards) for all controllers, each handling a specific type of device. Examples of expansion board controllers are:

Controller chipsEdit

Intel C8251 Universal Synchronous/Asynchronous Receiver/Transmitter (USART) chip

As chip densities improved controllers were implemented as single chips and often located on the motherboard. Examples are:

Further integration enabled development of Super I/O chips — single chips that could control a variety of devices such as floppy disks, parallel ports, serial ports, keyboard, and mouse.

External controllersEdit

A disassembled and labeled disk drive showing controller integrated into the drive.

Mainframe controllersEdit

IBM 1311 Disk Drives. Model 3 (on right) contains an integrated controller for itself and up to 3 Model 2s (on left).[1]:p.2

In IBM terminology a controller is "a device that decodes the [channel] command and effects the operation of the device."[2]:p.5–1

In most mainframe systems a device-independent channel usually attaches to the CPU and to a controller or control unit which implements device-dependent logic for attaching specific devices. The functions performed by the control unit are similar to the functions performed by a device driver program on smaller systems. Some devices have integrated control units, which are logically discrete but are included with the device rather than requiring a separate box. Often a control unit can attach to multiple channels connected to a single or multiple systems. Some mainframe control units are:

See alsoEdit


  1. ^ IBM Corporation. IBM Systems Reference Library IBM 1311 Disk Storage Drive (PDF).
  2. ^ IBM Corporation (1978). Introduction to IBM Data Processing Systems (PDF).

External linksEdit