This is an old revision of the document!


Instruction Execution Process

As we already mentioned, instructions are executed by the processor in a few steps. You can find in the literature descriptions that there are three, four, or five stages of instruction execution. Everything depends on the level of detail one considers. The three stages description says that there are fetch, decode and execute steps. The four-stage model says that there are fetch, decode, data read and execute steps. The five stages version adds another final step for writing the result back and sometimes reverses the steps of data read and execution.

It is worth remembering that even a simple fetch step can be divided into a set of smaller actions which must be performed by the processor. The real execution of instructions depends on the processor's architecture, implementation and complexity. Considering the five-stage model we can describe the general model of instruction execution:

  1. Fetching the instruction:
    • The processor addresses the instruction by sending the content of the IP register by the address bus.
    • The processor reads the code of the instruction from program memory by data bus.
    • The processor stores the code of the instruction in the instruction register.
    • The processor prepares the IP (possibly increments) to point to the next instruction in a stream.
  2. Instruction decoding:
    • A simple instruction can be interpreted directly by instruction decoder logic.
    • More complex instructions are processed in some steps by microcodes.
    • Results are provided to the execution unit.
  3. Data reading (if the instruction requires reading the data):
    • The processor calculates the address of the data in the data memory.
    • The processor sends this address by address bus to the memory.
    • The processor reads the data from memory and stores it in the accumulator or general-purpose register.
  4. Instruction execution:
    • The execution unit performs actions as encoded in the instruction (simple or with microcode).
    • In modern processors there are more execution units, they can execute different instructions simultaneously.
  5. Writing back the result:
    • The processor writes the result of calculations into the register or memory.

From the perspective of the processor, instructions are binary codes, unambiguously determining the activities that the processor is to perform. Instruction can be encoded using a fixed or variable number of bits. Instruction encoding constant size

en/multiasm/cs/chapter_3_8.1736182789.txt.gz · Last modified: 2025/01/06 16:59 by ktokarz
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0