Control unit

From Wikipedia, the free encyclopedia

A control unit is the part of a CPU or other device that directs its operation. The outputs of the unit control the activity of the rest of the device. A control unit can be thought of as a finite state machine.

The control unit is the circuitry that controls the flow of data through the processor, and coordinates the activities of the other units within it. In a way, it is the "brain within the brain", as it controls what happens inside the processor, which in turn controls the rest of the PC.

A few examples of devices that need a control unit are CPUs, Graphics Cards, Network Interfaces, Hard Drives, Bus Controllers (USB, PCI, Firewire, etc.). The modern information age would not be possible without complex control unit designs.


Contents

[edit] Hardwired Control

At one time control units for CPUs were ad-hoc logic, and they were difficult to design. This can be identified as the main part of the computer and the main device that helps the computer to function in an appropriate manner.

[edit] Microprogram Control

Main article: microcode

Now they are often implemented as a microprogram that is stored in a control store. Words of the microprogram are selected by a microsequencer and the bits from those words directly control the different parts of the device, including the registers, arithmetic and logic units, instruction registers, buses, and off-chip input/output. In modern computers, each of these subsystems may have its own subsidiary controller, with the control unit acting as a supervisor.

[edit] Functions of the Control Unit

The functions performed by the control unit vary greatly by the internal architecture of the CPU, since the control unit really implements this architecture. On a regular processor that executes x86 instructions natively the control unit performs the tasks of fetching, decoding, managing execution and then storing results. On a processor with a RISC core the control unit has significantly more work to do. It manages the translation of x86 instructions to RISC micro-instructions, manages scheduling the micro-instructions between the various execution units, and juggles the output from these units to make sure they end up where they are supposed to go. On one of these processors the control unit may be broken into other units (such as a scheduling unit to handle scheduling and a retirement unit to deal with results coming from the pipeline) due to the complexity of the job it must perform.

[edit] See also