UL/FRI/UN-RI/2/ARS/Kolokviji/2011-01-18
Iz E-študij, proste zakladnice študentskega znanja
|
Kolokvij z dne 18.01.2011
Čas pisanja: 80 minut.
|
1. naloga
Imamo program za cevovodni procesor HIP, ki ima vgrajene mehanizma za premoščanje operandnih nevarnosti, za odpravljanje kontrolnih pa procesor vedno vstavi mehurčke.
0x0F0 ADDUI R2, R0, #POLJE 0x0F4 ADDI R5, R0, #4 0x0F8 LOOP2: ADDUI R3, R0, #3 0x0FC ADD R4, R0, R0 0x100 LOOP1: LBU R1, 0(R2) 0x104 ADDU R4, R4, R1 0x108 ADDUI R2, R2, #1 0x10C SUBI R3, R3, #1 0x110 BNE R3, LOOP1 0x114 SB 0(R2), R4 0x118 ADDUI R2, R2, #1 0x11C SUBI R5, R5, #1 0x120 BNE R5, LOOP2
a) Zapišite kje se pojavijo cevovodne nevarnosti, katerega tipa so in koliko mehurčkov vstavi procesor?
b) Koliko časa se program izvaja? Pri analizi upoštevajte izvajanje programa do prevzema prvega ukaza po izstopu iz glavne zanke (po BNE R5, LOOP2). Iz rešitve naj bo jasno razvidno koliko časa traja izvajanje programa.
c) Ali je mogoče program optimizirati? Če da, na kratko zapišite, kaj je potrebno narediti in koliko urinih period pridobimo z optimizacijo.
d) Izgubo časa zaradi kontrolnih nevarnosti želimo zmanjšati z vgradnjo dvobitne predikcijske tabele. Dostop do tabele je narejen z naslovnimi biti A2-A5. Na začetku so v tabeli ničle, kar pomeni, da se predvideva neizpolnjen pogoj. Določite v katere vrstice tabele se preslika posamezen skočni ukaz in za vsak obhod zanke zapišite stanje predikcijskih bitov po izvršenem skočnem ukazu in ali je bila posamezna napoved pravilna ali napačna. Izračunajte tudi procent pravilnih napovedi. Pri zapisu pravilnosti napovedi in stanja predikcijskih bitov zapisujte le stanje tistih vrstic tabele v katere se preslika kakšen skočni ukaz.
e) Predpostavite, da ima procesor vgrajen korelacijski prediktor (2,2), kjer je globalni prediktor narejen s pomočjo pomikalnega registra. Zapišite zaporedje vrednosti globalnega prediktorja in za vsako napoved tudi indeks tabele, ki se uporabi ob vsaki skočni napovedi.
f) Kakšno najmanjšo vrednost CPI lahko teoretično dosežemo na procesorju HIP?
g) Kakšna je glavna zahteva, da pri procesorjih dosežemo CPI < 1?
h) Katere tipe večnitnosti lahko izvaja procesor HIP in katere lahko izvajajo procesorji s CPI < 1? Zelo na kratko pojasnite zakaj.
2. naloga
Na računalniku z ločenim ukaznim in operandnim predpomnilnikom poženemo program dolžine 900 ukazov in ugotovimo naslednje: program se izvede v 1620 urinih periodah. Verjetnost zadetka v operandnem predpomnilniku je 0,85, v ukaznem pa 0.97. Pri tem vemo, da se za vsak ukaz naredi po en dostop do ukaznega predpomnilnika, dostop do operandnega predpomnilnika pa se izvrši le pri vsakem petem ukazu. Zgrešitvena kazen za oba predpomnilnika znaša 10 urinih period. V koliko urinih periodah bi se izvedel program, če zgrešitev ne bi bilo?
3. naloga
Računalnik ima direktni ukazni predpomnilnik velikosti 128 blokov po 32 bajtov. Na njem se izvaja program, ki do pomnilnika dostopa tako, kot je prikazano na sliki. Podani so desetiški naslovi, pri čemer polna puščica označuje zaporedne dostope do vseh ukazov med dvema naslovoma, pikčasta pa predstavlja skok. Vsi ukazi so 32-bitni in poravnani, preberejo se pa v enem dostopu do pomnilnika. Vsi dostopi so bralni.
a) zapišite naslove na katerih pride do zgrešitev in pri vseh navedite, za kakšen tip zgrešitve gre.
b) Zgrešitvena kazen je 10 urinih period. Če ne bi bilo zgrešitev v ukaznem predpomnilniku, bi za dani program veljalo CPI=1,3. Kakšen je CPI, če upoštevamo tudi zgrešitve? Upoštevajte, da med prenosom bloka v predpomnilnik procesor stoji ves čas prenosa in da je na začetku predpomnilnik prazen. Namig: izračunati je potrebno število ukazov, ki se izvedejo in število zgrešitev v ukaznem predpomnilniku.
Točke: 1-70; 2-25; 3-35 (skupaj 130 točk od tega je 30 točk bonusa)
