Homework 2 Solutions

1. speedup = 1/(1-(<% dual issue>/2)) = 2/(2-x)

Double check your answer by noting that at 0% dual issue, the speedup should be 1 (ie, no change) and at 100% dual issue, speedup should be 2 (ie, twice as fast).

I'll assume you can all draw a graph from a formula. (When you graph the answer, the graph is convex.)

2. For all machines, CPI is as follows:

<% single issue>+<% dual issue>/2+<% triple issue>/3+<%quad issue>/4

That is, the CPI for Micro2/Comp2 is 0.75, for Micro3/Comp2 is 0.508 and for Micro2/Comp3 is 0.600.

To calculate speedup, take the ratios of the CPI's. That is, the speedup of Micro3/Comp2 is 0.75/0.508=1.48 and the speedup of Micro2/Comp3 is 0.75/0.600=1.25.

3. To keep pace with doubling performance every year, you need a speedup of 2^x after x years (for x>=0).

Comp2 will take three months to develop, so it requires a speedup of 2^0.25=1.19 or better to keep pace with the competition.

Micro2 will take 1 year to develop, so it requires a speedup of 2^1=2 or better to keep pace with the competition.

Referring to the previous question, the compiler is the only choice which will meet the target of doubling speed every year.

4. Current average latency is 0.80*1+0.20*10=2.8 cycles.

Fast cache average latency is 0.80*1+0.20*5=1.8 cycles.

Large cache average latency is 0.90*1+0.10*10=1.9 cycles.

5. Taking CPI numbers from question 2, we arrive at the following:

current price/performance ratio =10000*0.75=7500

Micro3/Comp2 price/performance ratio=10500*0.508=5334

Micro2/Comp3 price/performance ratio=10200*0.600=6120

Intuition: Notice that the prices of the different configurations are essentially identical but the performance is not. Given essentially identical pricing, you expect the best performance (ie, lowest CPI) to give you the best price/performance ratio.