31.01.2015 Views

Problem 1: Loop Unrolling [18 points] In this problem, we will use the ...

Problem 1: Loop Unrolling [18 points] In this problem, we will use the ...

Problem 1: Loop Unrolling [18 points] In this problem, we will use the ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Part C. [6 <strong>points</strong>]<br />

Now unroll and reschedule <strong>the</strong> loop <strong>the</strong> minimum number of times needed to eliminate all<br />

stalls. You can remove redundant instructions. How many times did you unroll <strong>the</strong> loop<br />

How many cycles elapse before <strong>the</strong> next iteration of <strong>the</strong> loop begins Don’t worry about<br />

clean-up code. Show your work.<br />

<strong>Loop</strong>:<br />

L.D F4, 0(R1)<br />

L.D F6, 0(R2)<br />

MUL.D F8, F4, F0<br />

L.D F14, 8(R1)<br />

L.D F16, 8(R2)<br />

MUL.D F<strong>18</strong>, F14, F0<br />

ADD.D F10, F6, F2<br />

ADD.D F20, F16, F2<br />

DADDUI R1, R1, #16<br />

DADDUI R2, R2, #16<br />

DADDUI R3, R3, #16<br />

ADD.D F12, F8, F10<br />

DSUB R5, R4, R1<br />

ADD.D F22, F<strong>18</strong>, F20<br />

S.D F12, -16(R3)<br />

BNEZ R5, <strong>Loop</strong><br />

S.D F22, -8(R3)<br />

17 cycles for 2 iterations, 8.5 cycles per iteration.<br />

<strong>Problem</strong> 2: Tomasulo's algorithm (12 <strong>points</strong>)<br />

This exercise examines Tomasulo’s algorithm on a simple loop operation. Consider <strong>the</strong><br />

following code fragment:<br />

LOOP: L.D F2, 0(R1)<br />

L.D F4, 8(R1)<br />

DIV.D F6, F2, F4<br />

MUL.D F8, F6, F6<br />

ADD.D F6, F2, F4<br />

MUL.D F10, F6, F6<br />

S.D F8, 0(R1)<br />

S.D F10, 8(R1)<br />

DADDI R1, R1, 16<br />

BNEZ R1, LOOP<br />

1. The pipeline functional units are described by <strong>the</strong> following table<br />

FU type Cycles in EX #of FU’s # of Reservation Stations<br />

<strong>In</strong>teger 1 1 5<br />

FP add/subtract 4 1 4

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!