# SYK 6
### Zadanie 1

Do obliczenia wartości s2, s3 zostanie użyta niewłaściwa wartość s0

Potrzebujemy 2 nopów, teraz s2 i s3 zostaną poprawnie obliczone
### Zadanie 2
#### Podpunkt a)

#### Podpunkt b)

#### Podpunkt c)

#### Podpunkt d)

### Zadanie 3

### Zadanie 4
a) Wariant always-taken zakłada, że zawsze nastąpi wykonanie skoku. Zatem po zakończeniu pierwszej iteracji jeszcze przed obliczeniem warunku pętli następuje rozpoczęcie wykonywania pierwszej instrukcji w drugiej iteracji.

b) Wariant always-not-taken, że skok zawsze zostanie pominięty. Zatem po zakończeniu pierwszej iteracji pętli następuje rozpoczęcie wykonywania instrukcji znajdujących się za pętlą. Po obliczeniu warunku okazuje się, że jednak należy wykonać skok, zatem obliczenia tych instrukcji zostają zignorowane i rozpoczyna się druga iteracja pętli.


### Zadanie 5
a) Się zrobi jak się dostanie
b)
$t0=*s0$
$t4=*t5$
$if\ t0 == t2\ goto\ L$
### Zadanie 6
Przy early branch resolution flush usuwa 1 instrukcję z potoku
Program zawiera `25%` instrukcji skoku, nie ma hazardów danych.
Przy 100% poprawnych predykcji CPI wynosiłoby 1
#### a) statyczny always-taken (45%)
$(100\% - 45\%) * 25\%=13,75\%$ - ilość instrukcji, które są niepoprawnie przewidzianymi skokami
Każdy niepoprawnie przewidziany skok dodaje 1 instukcję stąd
CPI będzie o $13,75\%$ większe
#### b) statyczny always-not-taken (55%)
analogicznie
$(100\% - 55\%) * 25\%=11,25\%$
CPI będzie o $11,25\%$ większe
#### c) 2-bitowy (85%)
analogicznie
$(100\% - 85\%) * 25\%=3,75\%$
CPI będzie o $3,75\%$ większe
#### d)
a) $(100\% - 45\%) * 12,5\%=6,875\%$
b) $(100\% - 55\%) * 12,5\%=5,625\%$
c) $(100\% - 85\%) * 12,5\%=1,875\%$
### Zadanie 7
a) się zrobi
b) tak, można przesunąć instrukcje
c) wstawienie nopów jest rozwiązaniem
### Zadanie 8
około 1 dla x = *(y+ imm)
około 1 dla *(x +imm) = y
Co da około 36% wzrost
### Zadanie 9