Optimizations and Simplifications
There are opportunities for optimization such as:
- Forwarding
- Buffering for one copy of source operands in execution units (this allows reading of operands one at a time and minimizing the WAR hazards)
We have assumed that there could be concurrent updates to (different) registers.
- Can be solved (dynamically) by grouping execution units together and preventing concurrent writes in the same group