Static vs Dynamic Branch Prediction
(1)

The efficiency of P1's static branch prediction is \$\eta_{Branch_1}=0.4\$ (since 60% of branches are taken).

In order for P2 to perform as well as P1 it should have the same efficiency on branch prediction.

(2)

Your definition of speed-up seems strange. I'd say that:

$$SU = \frac{Troughput_{P2}-Troughput_{P1}}{Troughput_{P1}}$$

where

$$Throughput = &lt;fraction\_of\_nonbranches&gt;*1+&lt;fraction\_of\_branches&gt;&lt;mean\_throuhput\_of\_branches&gt;$$

where

$$&lt;mean\_throuhput\_of\_branches&gt;=&lt;fraction\_of\_correct\_predictions&gt;*1+&lt;fraction\_of\_incorrect\_predictions&gt;*&lt;throughput\_of\_incorrect\_predictions&gt;$$

The penalty for incorrect prediction seems to be 1 clock cycle (because it is "fixed" at stage 2). This means that fractional penalty is \$\times2\$. This means that throughput of incorrect predictions is \$0.5\$ (one instruction in two clock cycles).

Substituting everything leads to:

$$SU=\frac{0.985-0.91}{0.91}=0.082=8.2\%$$