The execution portion which matches the issuing portion written in Program 3 is the subject of this assignment.
Executing the program with Tomasulo scheduling involves successive rounds of issuing followed by executing until the final syscall is executed. That should terminate the simulation.
In execution, actual register values are determined an are marked in the reservation station entries as valid. An instruction with all of its inputs marked valid may then be executed. Execution involves calculating a result and propagating that result to all other reservation station entries which require data from that physical register. Thus, a physical register is only ever written to once by an instruction, but it may be used in many places.
Additionally, in-order commit is managed by committing the results from physical to architectural registers when an issued instruction at the top of the list is executed.
You should produce a dump of data memory before and after execution to show that execution happened correctly. Also, the original and loop-unrolled versions of the instructions should be executed so that you can see how dynamic scheduling is important in making processors work more quickly, but just as accurately.