In the execute stage, the instruction operations are carried out. Instructions are delayed in this step until all of their operands are available, eliminating RAW hazards. Program correctness is maintained through effective address calculation to prevent hazards through memory.
#*If one or more of the operands is not yet available then: wait for operand to become available on the CDB.
#*When all operands are available, then: if the instruction is a load or store
##**Compute the effective address when the base register is available, and place it in the load/store buffer
***If the instruction is a load then: execute as soon as the memory unit is available
##
##*If**Else, if the instruction is a loadstore then: executewait asfor soonthe asvalue theto memorybe unitstored isbefore available,sending then:it to the memory unit
##*Else, if the instruction is aan storeALU operation then: wait forexecute the valueinstruction toat bethe stored before sending it to thecorresponding memoryfunctional unit
##*Else, the instruction is an ALU operation then: execute the instruction at the corresponding functional unit