• Executes all integer ALU and multiply operations, including flag generation
• Generates the virtual addresses for loads and stores and the base write-back value, when required
• Supplies formatted data for stores and forwards data and flags
• Processes branches and other changes of instruction stream and evaluates instruction condition codes