Instruction pipelining
Before we introduce pipelining, we will first break down the execution of a single processor instruction into a sequence of discrete steps:
- Fetch: The processor control unit accesses the memory address of the next instruction to execute, as determined by the previous instruction, or from the predefined reset value of the program counter immediately after power-on, or in response to an interrupt. Reading from this address, the control unit loads the instruction opcode into the processor’s internal instruction register.
- Decode: From the opcode, the control unit determines the actions to be taken during instruction execution. This may involve the ALU and may require read or write access to registers or memory locations.
- Execute: The control unit executes the requested operation, invoking an ALU operation if required.
- Write-back: The control unit writes the results of instruction execution to register or memory locations. The...