|
POMNILNIŠKA HIERARHIJA

Avtorji: Rok Dervarič, Bojan Petrovčič, Miha Vesel


OPIS NALOGE:

Prikazati želimo delovanje predpomnilnika, pomnilnika in navideznega pomnilnika. S tem je mišljeno predvsem dogajanje ob zgrešitvah, glede na različne strategije zamenjav blokov. Pri tem bi lahko opazovali različne dejavnike, ki vplivajo na dostop do podatkov; prisotnost predpomnilnikov, širina vodila,... . Poskušali želimo tudi predstaviti dogajanje ob prekinitvah.

Opis računalnika:

Najprej naj navedem nekaj značilnosti računalnika, ki ga simulira spodnji applet. Velikost navideznega pomnilnika je 32 bajtov, kar pomeni, da potrebujemo za naslavljanje enega izmed bajtov 5 bitov. Navidezni naslov se mora pred samim dostopom do primarnega pomnilnika preslikati v fizični naslov. V našem primeru je dolžina fizičnega naslova enaka 4 bite, saj je glavni pomnilnik velikosti 16 baytov. Glavni pomnilnik je razdeljen na štiri bloke, izmed katerih sta dva zasedena s preslikovalno tabelo. V hierarhiji se nam pojavlja tudi asociativni predpomnilnik, ki je razdeljen na dva bloka. Vsak je velikosti dveh besed. Za naslavljanje v predpomnilniku tako rabimo v našem primeru le tri bite.

Preslikovalni predpomnilnik je najbližji procesorju. Skozi njega se vrši pospešena preslikava navideznega naslova v fizični naslov. V našem primeru vsebuje le eno preslikavo.


Navodila:

Pred začetkom simulacije je potrebno nastaviti nekatere parametre. V pomoč naj vam bo naslednji opis:

V primeru, da hierarhija vsebuje tudi predpomnilnik, lahko določimo še naslednje parametre: Ko končate z nastavitvami, lahko korak za korakom izvajate simulacijo, tako da pritiskate na gumb "Korak". V srednjem oknju se izpisuje tudi tekst, ki komentira samo dogajanje.



Strategije za zamenjavo strani ob zgrešitvi v glavnem pomnilniku

  • Najbolj dolgo neuporabljen (Least Recently Used - LRU)

  • Zamenja se stran do katere najdlje ni bil narejen dostop. Realizacija: Sklad. Tisto stran, ki je na dnu sklada se zamenja in se jo da na vrh sklada, ostale pa se pomakne za eno mesto navzdol.

  • Prvi noter prvi ven (First In First Out - FIFO)

  • Zamenja se stran, ki je najdlje v glavnem pomnilniku. Realizacija: Ravno tako s skladom, le da se gleda na čas prihoda.

  • Najbolj redko uporabljen (Least Frequently Used - LFU)

  • Zamenja se stran, do katere je bilo opravljenih najmanj dostopov. Realizacija: Pomnimo frekvence dostopov do posameznih strani.

  • Naključni (RANDom)

  • Stran za zamenjavo se izbere naključno. Realizacija: Generator naključnih števil nam da številko strani, ki jo bomo zamenjali.

  • WS algoritem (working set)
  • Pomnimo množico strani ki jih je program naslovil v zadnjih T sekundah. Algoritem deluje podobno kot LRU le, da imamo dodaten pogoj, da stran za zamenjavo ni bila uporabljena v zadnjih T sekundah. Uspešnost WS algoritma je v tem, da upošteva spremembe v stopnji lokalnosti do katerih prihaja med izvajanjem programa. Strategije pri pisanju v predpomnilnik - zadetek

    Uporabljata se dve strategiji:

    Strategije pri pisanju v predpomnilnik - zgrešitev

    Tudi tu se uporabljata dve strategiji:

    Strategije pri bralnih zgrešitvah v predpomnilniku so podobne kot pri zgrešitvah v glavnem pomnilniku.


    Natančno razlago delovanja pomnilniške hierarhije si oglejte v naslednjih knjigah:


    Zadnja sprememba je bila narejena . Pripravil Bojan Petrovčič.