Put Yes or No for each entry of the table of data dependenci
Put Yes or No for each entry of the table of data dependencies between instructions below in a 5-stage pipeline. The meaning of instructions are shown inline below (Note that these instructions are NOT HACK format but an example format)
I1: LD R1, MEM(324) /* Load content of MEM(324) into Register R1 */
I2: ADD R1, R1, R2 /* Add R1 to R2 and store result in R1 */
I3: SUB R2, R2, R4 /* Subtract R4 from R2 and store result in R2 */
I4: MUL R3, R3, R2 /*Multiply R3 and R2 and store result in R3 */
I5: ST MEM(324), R1 /* Store contents of R1 into MEM(324) */
Read After Write (RAW)
Write after Read (WAR)
Write after Write (WAW)
I1 -> I2
I1 -> I3
I2 -> I3
I2 -> I5
I1 -> I5
| Read After Write (RAW) | Write after Read (WAR) | Write after Write (WAW) | |
| I1 -> I2 | |||
| I1 -> I3 | |||
| I2 -> I3 | |||
| I2 -> I5 | |||
| I1 -> I5 |
Solution
I1->I2 yes yes no
I1->I3 yes yes no
I2->I3 no no yes
I2->I5 no yes yes
I1->I5 no yes no
