Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

PROBLEM 2 Assume that the following code segment is run on a MIPS like processor with hazard detection and forwarding, in order, 5 stages pipeline

PROBLEM 2
Assume that the following code segment is run on a MIPS like processor with hazard detection and forwarding, in order, 5 stages pipeline (F (instruction fetch), D (instruction decode), E (execute), M (memory access, W (write-back)), static not taken branch prediction (branches are always predicted as not taken), etc.. Below is the code segment that is running on the processor.
# code segment
beq $R1, $R0, L2
L1: sw $R2,100($R1) # $R2-> M[$R1+100]
shl $R2, $R2,1
beq $R1, $R0, L3
L2: lw $R2,100($R1) # M[$R1+100]-> $R2
addi $R2, $R2,100
addi $R3, $R3,1
beq $R1, $R0, L1
L3: END
Note: END is an assembly directive, not an instruction and should not be counted as an instruction.
a) How many cycles does this program take? Assume all data and instructions are already in the cache, and that all register values are initially 0. The branches are always going to be evaluated as not taken and they require two stall clock cycles each.
b) An optimizing compiler is used to re-order the code for faster execution. Given that the branches are always going to be not taken, how would the new code look like? How many cycles would the code take?

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions