Architektury systemów komputerowych

Transkrypt

Architektury systemów komputerowych
Architektury systemów komputerowych
Lista 9
x9 = 6 (minimum na bdb)
W niektórych zadaniach na dzisiejszej li±cie b¦dziemy odwoªywa¢ si¦ do poni»szych fragmentów
kodu MIPS:
Program 1:
sw r16,
lw r16,
beq r5,
add r5,
slt r5,
12(r6)
8(r6)
r4, Label #zaªó», »e r5 != r4
r1, r4
r15, r4
Program 2:
lw r2, 0(r1)
label1: beq r2, r0, label2 #za pierwszym razem r2 != r0, potem równe
lw r3, 0(r2)
beq r3, r0, label1 #zaªó», »e r3 = r0
add r1, r3, r1
label2: sw r1, 0(r2)
1. Rozwa»amy procesor potokowy z bezbª¦dn¡ predykcj¡ skoków (nie ma »adnych hazardów sterowania). Zaªó»my, »e mamy tylko jedn¡ jednostk¦ pami¦ci (nie ma podziaªu na pami¦¢ rozkazów
oraz danych). Wtedy, za ka»dym razem gdy chcemy pobra¢ rozkaz, a inny rozkaz z potoku
pobiera dane dochodzi do hazardu strukturalnego. Przyjmijmy, »e taki hazard jest zawsze rozwi¡zywany na korzy±¢ rozkazu pobieraj¡cego dane. Ile cykli zajmie wykonanie Programu 1
(które rozkazy trzeba b¦dzie opó¹ni¢?)? Czy tego typu hazardy strukturalne daªoby si¦ rozwi¡za¢ poprzez dopisanie (w czasie kompilacji) rozkazów nop w odpowiednich miejscach kodu?
2. Ponownie rozwa»amy procesor potokowy z bezbª¦dn¡ predykcj¡ skoków. Rozwa»my modykacj¦
rozkazów load/store tak¡, »e bior¡ one adres bezpo±rednio z rejestru (bez dodawania osetu).
Przy tej modykacji rozkazy te nie musz¡ u»ywa¢ ALU. A wtedy fazy MEM i EX mog¡ by¢
naªo»one na siebie i potok ma tylko cztery fazy. Zmodykuj Program 1 tak, aby dziaªaª dla przebudowanej w opisany sposób architektury. Zakªadaj¡c, »e modykacja nie wpªywa na dªugo±¢
cyklu zegarowego porównaj czas dziaªania zmodykowanego pragramu z oryginalnym.
3. Przedstaw diagram wykonania Programu 2 na procesorze potokowym (tzn. poka», w jakich fazach wykonania s¡ rozkazy w kolejnych cyklach zegarowych) zakªadaj¡c, »¦ skoki wykonywane
s¡ w fazie EX. Nast¦pnie powtórz to ¢wiczenie zakªadaj¡c, »e tym razem implementacja u»ywa
tzw. skoków opó¹nionych (deleyed branches). Instrukcja znajduj¡ca si¦ za beq wypeªnia tzw. delayed slot i wykonuje si¦ zawsze (ewentualny skok nast¦puje dopiero po niej).
4. Rozwa»my teraz architektur¦, w której rozkazami skoków warunkowych s¡ bez rd, Label oraz
bnez rd, Label (odpowiednio: skocz je±li w rejestrze rd jest zero, skocz je±li w rejestrze rd nie
ma zera). Przepisz kod Programu 2 do tak zmodykowanej architektury. Mo»esz u»y¢ rejestru
r8 jako rejestru pomocniczego oraz rozkazu seq rd, rs, rt (set if equal ; rozkaz typu R).
5. Przedstaw diagram wykonania Programu 2 na procesorze potokowym zakªadaj¡c, »e skoki wykonywane s¡ w fazie ID. Przyjmuj¡c, »e dªugo±¢ cyklu jest taka sama jak w przypadku procesora
wykonuj¡cego skoki w fazie EX porównaj czasy wykonania w Programu 2 w obydwu wariantach.
6. Zbadamy teraz skuteczno±¢ ró»nych wariantów predykcji skoków na pewnym rozkazie skoku
(mo»na np. my±le¢, »e jest to skok zamykaj¡cy p¦tl¦), który podczas swoich pierwszych pi¦ciu
wykona« kolejno: skoczyª, nie skoczyª, skoczyª, skoczyª, nie skoczyª.
(a) Jaka jest skuteczno±¢ predyktora, który zakªada, »e skok zawsze si¦ wykonuje?
(b) Jaka jest skuteczno±¢ predyktora, który zakªada, »e skok nigdy si¦ nie wykonuje?
(c) Jaka jest skuteczno±¢ predyktora dwubitowego (patrz Wykªad 9, Slajd 43 ) podczas pierwszych skoków, przy zaªo»eniu, »e startuje on w swoim lewym dolnym stanie?
(d) Jaka jest skuteczno±¢ predyktora dwubitowego, je±li przez rozwa»any skok przechodzimy
niesko«czenie wiele razy (opisana sekwencja wykona« skoku powtarza si¦ cyklicznie).
7. W tym i w nast¦pnym zadaniu rozwa»amy 4-gigabajtow¡ przestrze« adresow¡, adres okre±la
pojedynczy bajt pami¦ci, a wi¦c ma 32 bity. Przyjrzymy si¦ dwóm wariantom bezpo±redniego
mapowania przestrzeni adresowej w pami¦ci cache.
Zaªó»my, »e mamy do dyspozycji pami¦¢ cache, która mo»e przechowywa¢ 16 kB danych (nie liczymy miejsca przeznaczonego na znaczniki). Ka»dy bajt pami¦ci cache jest adresowany osobno,
a wi¦c ka»dy musi posiada¢ wªasny znacznik. Ile bitów ma adres bajtu w pami¦ci cache, a ile
bitów musi mie¢ znacznik? Pod jakim adresem w pami¦ci cache mo»e by¢ przechowywana zawarto±¢ pami¦ci RAM o adresie 0x1A2B3C4D (podanym szesnastkowo)? Ile bitów (ª¡cznie z
miejscem na znaczniki) ma nasza pami¦¢ cache?
8. Zaªó»my teraz, »e adresowaln¡ jednostk¡ pami¦ci cache jest wiersz (blok) zªo»ony z czterech
4-bajtowych sªów. Ile wierszy ma nasza 16 kB pami¦¢ cache? Gdzie w pami¦ci cache b¦dzie
przechowana zawarto±¢ adresu 0x1A2B3C4D (w którym wierszu, w którym sªowie tego wiersza,
w którym bajcie tego sªowa)? Ile bitów (ª¡cznie z miejscem na znaczniki) ma nasza pami¦¢
cache?
2

Podobne dokumenty