The Bits and Bobs that make up our CPU
The brain of our computer, the Central Processing unit (CPU) is made up of a number of different elements. This includes the hardware components, the registers needed to complete instructions, and the buses needed to facilitate communications from one component to another.
Each component has its own role in our CPU's operations. These components are called the control unit, registers, cache memory and the arithmetic logic unit. All of these components are essential to the operations of the CPU, with no job being more important than another.
The control unit controls how the data moves around the CPU and coordinates the activities that take place on the CPU itself. It is involved in the fetch-execute cycle as it performs both the fetching and decoding operations.
The registers are memory locations that are used in the CPU operations. For information on certain registers, please see below.
Cache memory stores instructions that are used repeatedly, or are likely to be used for the next operation that the CPU has to complete. It is only temporary storage, so is intended for files that need to be accessed quickly during these operations.
The final component, the arithmetic logic unit (ALU), performs the mathematical operations needed for the CPU's operations. This can range from simple logic operations such as AND, NOT and or to binary shifts, and general addition, subtraction multiplication and division. This component is responsible for every mathematical or logical decision needed for all of the instructions performed by the CPU.
The CPU contains a number of memory locations that are involved in the CPU's operations (which are all of the operations of your device!). There are four important registers that you need to know about, and they are the program counter, the memory address resigster, the memory data register and the accumulator.
The Program counter (PC) is a register responnsible for storing the memory location for the next instruction that the CPU has to execute. Depending on what commands the CPU is doing, depends whether the PC is just incremented, or whether a completely different memory location is selected. Regardless, the PC will always show the memory location that the CPU is interacting with.
The Memory Address Register (MAR) stores the memory location to be used by the memory data register.
The Memory Data Register (MDR) is used to store the data that is fetched from main memory. This data will come from the location saved in the MAR, and will be used to complete the computer's instructions. The register will also store any data that has to be stored in main memory.
The final register is the Accumulator (ACC) and this can store one of two things: the value of inputs or outputs to and from the CPU, or the results of any calculations performed by the ALU.
To facilitate the functions in the CPU and move instructions between the CPU and memory. If the buses weren't there, no data would be moved. Three main buses are involved in CPU communications, these are the data bus, address bus and control bus.
Data bus: This bus carries the data between the CPU and memory
Address bus: This bus transports the memory addresses for the read, write locations in memory.
Control bus: This bus carries all of the control signals that are used for the CPU and memory.