The CPU takes program machine code instructions from the main memory and executes them, i.e. it carries out the machine code instructions. The instructions use the data that is also stored in the main memory.
Buses are sets of parallel wires. The Address bus is used for telling the main memory the memory location that the CPU needs next. The Data bus is used for passing the contents of memory locations between the CPU and the main memory. The Control bus inside the CPU is used to trigger the appropriate circuits inside the CPU depending on which type of machine code instruction it is executing at the time.
The Control Unit is the part of the CPU that is responsible for executing instructions. It retrieves the next instruction in the program from main memory. It decodes this instruction and uses the Control bus to trigger the circuits of the CPU ready to carry out the instruction. For instructions that use data it also obtains the data from the correct memory address.
The Arithmetic Logic Unit (ALU) is where arithmetic, such as adding two numbers, is carried out under the control of the CPU.
What are registers?
The Accumulator, Program Counter, Memory Address Register, Memory Buffer Register and Instruction Register are all special data stores called registers situated within the CPU. As a consequence accessing registers is relatively faster than accessing main memory storage locations. Registers are used for very special activities and each has special circuitry associated with it.
The Accumulator is the most important of these registers. Associated with it is all of the circuitry for adding, subtracting, transferring data, comparing data and so on. Most processes that are carried out involve transferring numbers to the Accumulator, operations being performed on the contents of the Accumulator, and the result being stored back in main memory.
Where does the processor get instructions from?