GATE | GATE-CS-2015 (Set 3) | Question 65
Consider the following code sequence having five instructions I1 to I5. Each of these instructions has the following format.
OP Ri, Rj, Rk
where operation OP is performed on contents of registers Rj and Rk and the result is stored in register Ri.
I1 : ADD R1, R2, R3 I2 : MUL R7, R1, R3 I3 : SUB R4, R1, R5 I4 : ADD R3, R2, R4 I5 : MUL R7, R8, R9
Consider the following three statements:
S1: There is an anti-dependence between instructions I2 and I5. S2: There is an anti-dependence between instructions I2 and I4. S3: Within an instruction pipeline an anti-dependence always creates one or more stalls.
Which one of above statements is/are correct?
(A) Only S1 is true
(B) Only S2 is true
(C) Only S1 and S2 are true
(D) Only S2 and S3 are true
Explanation: The given instructions can be written as below:
I1: R1 = R2 + R3 I2: R7 = R1 * R3 I3: R4 = R1 - R5 I4: R3 = R2 + R4 I5: R7 = R8 * R9
An anti-dependency, also known as write-after-read (WAR), occurs when an instruction requires a value that is later updated.
S1: There is an anti-dependence between instructions I2 and I5. False, I2 and I5 don't form any write after read situation. They both write R7. S2: There is an anti-dependence between instructions I2 and I4. True, I2 reads R3 and I4 writes it. S3: Within an instruction pipeline an anti-dependence always creates one or more stalls. Anti-dependency can be removed by renaming variables. See following example. 1. B = 3 2. A = B + 1 3. B = 7 Renaming of variables could remove the dependency. 1. B = 3 N. B2 = B 2. A = B2 + 1 3. B = 7
Attention reader! Don’t stop learning now. Practice GATE exam well before the actual exam with the subject-wise and overall quizzes available in GATE Test Series Course.
Learn all GATE CS concepts with Free Live Classes on our youtube channel.