RAW Hazard Detection (Cont.)
Another example of RAW (Read After Write) data hazard is as follows:
i3. add $2, $1, $3 # $2 = $1 + $3
i4. and $12, $4, $5 # $12 = $4 ∧ $5
i5. or $13, $6, $2 # $13 = $6 ∨ $2
RAW data hazards could happen at both EX and MEM stages.
- MEM Hazard
-
This kind of hazards requires forwarding for operations that use results during the MEM stage.
It occurs when
- The current instruction being decoded is in the ID stage and the source register is in the IF/ID register and
- The second prior instruction is in the MEM stage and the destination register is in the EX/MEM register.
Therefore, a pair of hazard conditions are as follows:
2a. IF/ID.Rs = EX/MEM.Rw
2b. IF/ID.Rt = EX/MEM.Rw
where “EX/MEM.Rw
” refers to the Rw
register whose value is found in the pipeline register EX/MEM.
Hazard of the above instruction sequence can be detected by Condition 2b.
|
|
|