Controls and coordinates the activities of the CPU, directing the flow of data between the CPU and other devices. It accepts the next instruction, decodes it into several sequential steps such as fetching addresses and data from memory, manages its execution and stores the resulting data back in memory or registers
Addresses travel only one way along the address bus: the processor sends the address of an instruction, or of data to be stored or retrieved, to memory or to an I/O controller
1. The data and address buses are shared by all components of the system
2. Control lines must be provided to ensure that access to and use of the data and address buses by the different components of the system does not lead to conflict
Transmits the memory addresses of words that are used as operands in program instructions, so that the data can be retrieved and sent back to the processor
Performs arithmetic and logical operations on data, such as SUBTRACT, MULTIPLY, DIVIDE on fixed or floating point numbers. Can also perform bit shifting operations and Boolean logic operations like AND, OR, NOT, XOR.
Special memory cells that operate at very high speed. Results of arithmetic, logic or shift operations are temporarily stored in registers. Typically up to 16 general purpose registers in the CPU.
Program Counter (PC) - holds the address of the next instruction to be executed
Current Instruction Register (CIR) - holds the current instruction being executed, divided into operand and opcode
Memory Address Register (MAR) - holds the address of the memory location from which data (or an instruction) is to be fetched or to which data is to be written
Memory Data Register (MDR) - used to temporarily store the data read from or written to memory
The sequence of operations involved in executing an instruction can be divided into three phases - fetching, decoding and executing it. This cycle is repeated over and over as each instruction of the program is executed
The opcode is used to determine the type of instruction and what hardware to use to execute it
The operand holds either the address of the data to be used with the operation, which is then copied to the MAR, or the actual data to be operated on, which will be copied to the MDR
The system clock generates a series of signals, switching between 0 and 1 several million times per second and synchronising CPU operations. Each CPU operation starts as the clock changes from 0 to 1 (or in some systems from 1 to 0), and the CPU cannot perform operations faster than the clock cycle (the time the clock takes to go from 0 to 1 and back to 0)
Measured in Gigahertz (GHz), about 1 billion cycles per second. Typical speeds for a PC are between 2 and 4 GHz. The greater the clock speed, the faster instructions will be executed
Each core is theoretically able to process a different instruction at the same time with its own fetch-execute cycle, making the processor two or even four times faster with a quad-core chip
Although a dual-core processor has twice the power, it does not always perform twice as fast, because the software may not always be able to take full advantage of both processors
A small amount of expensive, very fast memory inside the CPU. When an instruction is fetched from main memory it is copied into the cache so if it is needed again soon after, it can be fetched from cache, which is much quicker than going back to main memory