Following table indicates the latencies of operations between the instructions producing the result and instruction using the result.
Instruction production the result |
Instruction using the result |
Latency |
ALU Operation |
ALU Operation |
2 |
ALU Operation |
Store |
2 |
Load |
ALU Operation |
1 |
Load |
Store |
0 |
Consider the following code segment.
Load R1, Loc1 ; Load R1 from memory location Loc1
Load R2, Loc2 ; Load R2 from memory location Loc2
Add R1, R2, R1 ; Add R1 and R2 and save result in R1
Dec R2 ; Decrement R2
Dec R1 ; Decrement R1
Mpy R1, R2, R3 ; Multiply R1 and R2 and save result in R3
Store R3, Loc3 ; Store R3 in memory location Loc3
What is the number of cycles needed to execute the above code segment assuming each instruction takes one cycle to execute?