Answered step by step
Verified Expert Solution
Question
1 Approved Answer
Assume that the following code segment is run on a MIPS processor with hazard detection and forwarding, in order, 5 stages pipeline (F (instruction fetch),
Assume that the following code segment is run on a MIPS 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 bge $R1,$R0,L2 L1: sw$R2,100($R1)#$R2>M[$R1+100] shl $R2,$R2,1 beq $RO,$RO, L3 L2: Iw $R2,100($R1) \# M[\$R1+100] >$R2 addi \$R2, \$R2, 100 addi $R3,$R3,1 beq $R0, \$RO, STR L3: END 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. Notice that END is a directive, not an instruction. Note: You only need to find the dependencies and establish if any of them require stall cycles. 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
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started