the head of the ROB, and hence, no earlier loads or stores can still
be pending
* RAW hazards are maintained by two restrictions:
- 1. not allowing a load to initiate the second step of its execution if
- any active ROB entry occupied by a store has a destination
- field that matches the value of the A field of the load and
- 2. maintaining the program order for the computation of an effective
+ 1. not allowing a load to initiate the second step of its execution if
+ any active ROB entry occupied by a store has a destination
+ field that matches the value of the A field of the load and
+ 2. maintaining the program order for the computation of an effective
address of a load with respect to all earlier stores
* These restrictions ensure that any load that access a memory location
written to by an earlier store cannot perform the memory access until
the store has written the data.
+Advantages of Speculation, Load and Store hazards:
+
+* A store updates memoryy only when it reached the head of the ROB
+* WAW and WAR type of hazards are eliminated with speculation
+ (actual updating of memory occurs in order)
+* RAW hazards through memory are maintained by not allowing a load
+ to initiate the second step of its execution
+* Check if any store has a destination field that matched the
+ value of the load:
+ - SD F1 100(R2)
+ - LD F2 100(R2)
+
+Exceptions
+
+* Exceptions are handled by not recognising the exception until
+ instruction that caused it is ready to commit in ROB (reaches head
+ of ROB)
+
+Reorder Buffer
+
+* Results of an instruction become visible externally when it leaves
+ the ROB
+ - Registers updated
+ - Memory updated
+
# References
* <https://en.wikipedia.org/wiki/Tomasulo_algorithm>