Central Processing Unit

Central Processing Unit (CPU)
The CPU is the brain of the computer, it processes information from various inputs and programs stored in the computers storage devices and determines the outputs of the computer such as audio and visual.

The speed at which the computer can process this information is determined by the clock speed of the processor and the number of cores, with higher speeds been capable of processing more calculations per second.

Most modern CPUs will have multiple processing cores, this allows for processes to be spread across multiple cores of a lower clock speed for higher overall processing speeds.

The CPU is composed of two main parts, the control unit and the Arithmetic Logic Unit.

Control Unit
This is the part of the CPU that takes instructions from a program and signals from inputs and executes them sending signals to the ALU and outputs.

It provides of components in the CPU with timing and control signals in order to keep all the operations synchronised. It controls the flow of data between different devices that are connected to the CPU. For example, it will take in signals from input devices such as a mouse through USB controllers and control the output signals such as sound for speakers through sound cards.

Arithmetic Logic Unit
This is used for all the CPU’s arithmetic and logical operations with the control unit sending signals to tell the ALU what operations to perform and with what data. CPU’s may consist of multiple ALUs to allow more complex operations or just more operations total. Data is initially inputted into registers and the ALU stores the result in an output register.

Registers
Registers are a high-speed storage device within a CPU, when a CPU works on information it must first be stored on a register first then it can be processed. Components that process information will have input registers that store information to be processes and output registers that store processed data. The number and size of the registers in a CPU determine its speed and processing power, 32 bit CPUs have 32 bit wide registers and 64 bit CPUs have 64 bit wide registers.

In most cases a user will not interact with moving data between registers on the CPU when in either standard use or programming, the only time a user directly interacts with registers is when using assembly language programs.