1.1.1 Structure & Function of the Processor Flashcards
What are all the registers in a CPU?
Program Counter (PC) Accumulator (ACC) Memory Address Register (MAR) Memory Data Register (MDR) Current Instruction Register (CIR)
What does the PC do?
Holds the address of the next instruction to be executed.
What does the ACC do?
Stores results of calculations.
What does the MAR do?
Holds the address of the location that is to be read from or written to.
What does the MDR do?
Temporarily stores data that has been read from or needs to be written.
What does the CIR do?
Holds the current instruction being executed, divided into opcode and operand.
What does the Control Unit (CU) do?
Directs the operations of the CPU by sending control signals to areas of the CPU to coordinate the operations.
What does the Arithmetic & Logic Unit (ALU) do?
Arithmetic operations (e.g. +, -, /, *) and logical operations (e.g. AND, OR, NOT, XOR)
What does the data bus do?
Transports data and instructions between components. Bi-directional.
What does the address bus do?
Transmits the memory addresses that specify where data is to be sent or retrieved from. Uni-directional.
What does the control bus do?
Transmits control signals between internal and external components. Bi-directional.
What does the opcode and operand contain?
Opcode => The type of instruction to be executed
Operand => The data or address of the data upon which the operation is to be performed.
What is pipelining and how does it work?
Increases the efficiency of the CPU by reducing the amount of time it’s kept idle.
It does this by completing the FDE cycles of 3 separate instructions simultaneously.
What happens in the FDE cycle?
Fetch => The address of the next instruction is copied from the PC to the MAR. The instruction held at this address is copied from the MAR to the MDR via the data bus. Simultaneously, the PC is incremented by 1. The value held in the MDR is copied to the CIR.
Decode => The contents of the CIR are split into opcode and operand.
Execute => The instruction is executed and the ALU performs any necessary calculations. The result is stored in the ACC.
Why does doubling the amount of cores not necessarily double the speed of the CPU?
Not all programs are designed to make use of multiple cores efficiently.