How is operand re-fetching different?
The re-fetch is different because we do not use the ROBmap entry. The original operand fetch checked the ROBmap to get the operand name; the re-fetch reads the operand name from the ISSUE bus.
The operand name in the ROBmap may have changed since the original instruction issue; this is why we have to read it from the ISSUE bus
A. add r10, r8, r7B. add r14, r10, r9C. add r10, r14, r15D. add r20, r22, r23
If all the above instructions are rejected by the CRS the first time they are issued, then the next time the operands are fetched for instruction ‘B’, the name for ‘r10’ in the ROBmap entry will be the name used in instruction ‘D’, not instruction ‘A’. Need to use the name for R10 that is on the issue bus (this was the original name for R10 when instruction B was issued the first time.).