First page Back Continue Last page Overview Graphics
Internal steps for executing an instruction
Fetch the instruction.
Decode the instruction and get the source operand.
Get the destination operand.
Perform the operation.
Store the result.
Before explaining the details of the pipeline, let us first see how to divide the execution of an instruction into several small steps. Instruction execution can be divided into small steps in different ways. One can divide it into two stages: instruction fetch and instruction execution (as e.g. in the Intel 8086). Alternatively, one can divide it as shown above into four or five stages. (We'll concern ourselves here with simple examples, but pipelining operations can be quite complex. The Pentium 4 processor uses a 20-stage pipeline for floating point operations.)
The number of execution stages affects the design of the instruction set. For example, if each instruction allows only one operand to be obtained from memory and the other operands must be contained in CPU registers, a four-stage pipeline makes sense. If each instruction allows two operands to be obtained from memory, a five-stage pipeline will be more efficient than a 4-stage pipeline.