a) The number of non-branch instructions are more than the branch instruction. Hence, In static branching we will assume that branch will not be taken.
Accuracy of static branch prediction = Percentage of non-branch instructions + Branch instructions not taken
= $\large 80 + \frac{25}{100}*20 = 85\%$
Hence, minimum prediction accuracy for the processor using dynamic branch prediction to perform at least as well as the processor using static branch prediction is $85\% .$
b) Dynamic prediction accuracy = $90\%$
$\large \delta_{branch\ penalty- static} = 0.2 * 0.75 = 0.15$
$\large \delta_{branch\ penalty- dynamic} = 0.2 * 0.5$ (90% of accuracy = 100% accurate on non branch instructions + 50% accuracy on branch instructions )
$\large S = 1 + \delta_{branch\ penalty}$
$\large S_{static} = 1 + 0.15 = 1.15$
$\large S_{dynamic} = 1 + 0.01 = 1.01$
$ \large Speed \ up =$ $\large \left ( \frac{1.15}{1.01} - 1 \right ) * 100 = 13.86 \%$