UL/FRI/UN-RI/2/ARS/Kolokviji/2011-01-18

Iz E-študij, proste zakladnice študentskega znanja

< UL | FRI | UN-RI | 2 | ARS | Kolokviji
Skoči na: navigacija, iskanje

Kolokvij z dne 18.01.2011
UL/FRI/UN-RI/2/ARS


Čas pisanja: 80 minut.
Literatura: A4 list.

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.

Ars 2kol 2011 shema.png

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)
Osebna orodja
Imenski prostori
Različice
Dejanja
navigacija

Tiskanje/izvoz
orodja