Problems in this exercise refer to the following sequence of instructions, and assume that it is executed on a 5-stage pipelined datapath:Add $s5,$s2,$s1Lw $s3,4($s5)Lw $s2,0($s2)Or $s3,$s5,$s3Sw $s3,0($s5)a. If there is no forwarding or hazard detection, insert nops to ensure correct execution.b. Now use nops only when a hazard cannot be avoided by changing or rearranging these instructions.

Respuesta :

a. If there is no forwarding or hazard detection, we need to insert nops to ensure correct execution. In this case, we have a data hazard between the first and second instructions, since the second instruction uses the value of $s5 that is being modified by the first instruction.

To avoid this hazard, we can insert a nop after the first instruction:

Add $s5,$s2,$s1

Nop

Lw $s3,4($s5)

Lw $s2,0($s2)

Or $s3,$s5,$s3

Sw $s3,0($s5)

We also have a data hazard between the second and third instructions, since the third instruction uses the value of $s2 that is being modified by the second instruction. To avoid this hazard, we can insert a nop after the second instruction:

Add $s5,$s2,$s1

Nop

Lw $s3,4($s5)

Nop

Lw $s2,0($s2)

Or $s3,$s5,$s3

Sw $s3,0($s5)

b. Now, we can use nops only when a hazard cannot be avoided by changing or rearranging these instructions. In this case, we can rearrange the second and third instructions to avoid the hazard between them:

Add $s5,$s2,$s1

Lw $s2,0($s2)

Lw $s3,4($s5)

Or $s3,$s5,$s3

Sw $s3,0($s5)

We still have a data hazard between the first and second instructions, but it cannot be avoided by rearranging the instructions. Therefore, we need to insert a nop to ensure correct execution:

Add $s5,$s2,$s1

Nop

Lw $s2,0($s2)

Lw $s3,4($s5)

Or $s3,$s5,$s3

Sw $s3,0($s5)

This is the final solution that uses nops only when necessary to avoid hazards.

To know more about data hazard, visit: https://brainly.com/question/17184351

#SPJ4

ACCESS MORE
EDU ACCESS
Universidad de Mexico