Professional Documents
Culture Documents
MEMORIJA
MEMORIJA
Sl.1. Krivulje koje pokazuju nejednako poveanje efikasnosti obzirom na broj komponenti
integriranih na chipu
Zbog toga je trebalo postojei sustav sistemske memorije poboljati ili ugradnjom bre
memorije, to bi znaajno poskupilo cijenu sustava ili odgovarajuim tehnikim inovacijama.
U ovom sluaju, hijerarhijska organizacija memorije (Sl.2.),pokazala se kao idealna jer se
dodavanjem malenog kapaciteta brze memorije (SRAM tehnologije) trebala ubrzati velika
mala priruna memorija iji sadraj sa lokacija procesor dobavlja jednako brzo kao i iz svojih
registara, a izvan procesora ugrauje se u raunarski sustav tzv. L2 cache, brzi memorijski
spremnik u koji se pohranjuje dio podataka iz RAM-a za koje se pretpostavlja da e ih
procesor ubrzo zatraiti. L2 cache otprilike je duplo bri od RAMa i ima kapacitet od 512KB
do 1MB.
Kako cache funkcionira?
Glavna se memorija sastoji od 2^n adresibilnog prostora rijei, kod kojeg svaku rije
dohvaamo pomou n-bitne adrese. Da bismo podatke prebacili u cache, memoriju dijelimo
na odgovarajue blokove rijei fiksne duine K. Stoga je ukupan broj blokova M=2^n/K.
Cache je podijeljen na C linija u koje moe stati K rijei. Kako je cache manji od memorije to
e i broj raspoloivih linija biti manji od ukupnog broja blokova (C<<M) to znai da e samo
odreeni broj blokova moi biti u cacheu. Ako se ita neka rije izodreenog bloka tada se
itav taj blok prebacuje u jednu liniju cache memorije. Kako ima vie blokova nego linija,
jedna se linija nikada ne moe trajno pridjeliti samo jednom bloku nego svaka linija sadri
oznaku koja govori o tome koji memorijski blok trenutno zauzima odreenu liniju cachea. Tag
je formiran od dijela bitova koji specificiraju adresu bloka u glavnoj memoriji (Sl.3.).
Vrijeme potrebno za dobavljanje podatka iz cachea je vrijeme pogotka (hit time). Ukoliko se
podatak ne dohvati, govorimo o promaaju, pa u tom sluaju dohvaaju se podaci iz
hijerarhijski nie memorijske strukture i premjetaju u cache. Vrijeme koje protekne da se
dohvati blok iz nie memorijske strukture, a zatim prebaci u cache i iz njega dohvati podatak,
nazivamo globom za promaaj (miss penalty). Uspjenost pogaanja (hit ratio) mjeri se kao
postotak uspjeno dobavljenih podataka iz cachea u odnosu na ukupan broj posezanja,
neuspjenost (miss ratio) je komplementarna vrijednost i raunamo je kao 1-hit_ratio. Cilj je
da uspjenost pogaanja bude to je mogue vea.
Primjer:
Pretpostavimo da za dohvaanje podataka iz L1 cachea treba 10 ns, a iz glavne memorije
100ns. Ukoliko je upsjenost pogaanja 90%, to znai da e tijekom 10 posezanja za
podacima, 9 biti u cacheu, a 1 u RAMu. Bez cachea, trebalo bi nam ukupno
T1=10*100ns=1000ns
vremena za dobavljanje podataka. U sluaju cache-a, treba nam
T2=1*100+9*10=190ns,
to znai da smo itav postupak ubrzali za 1000/190=5.3 puta.
Sa ciljem da se to vie povea postotak uspjenosti, razvijene su razliite tehnike, koje
djeluju na razliite uzroke promaaja. Tehnike se odnose na:
veliinu cachea
funkcije koje preslikavaju podatke iz RAMa u cache
Heksadecimalno oznaavanje
Kada promatramo unutarnju aktivnost u raunalu, baratamo sa nizovima bitova koji mogu biti
prilino dugi. Takvi se nizovi zovu stream-ovi. Na alost, ljudski mozak nije prilagoen
baratanju sa stream-ovima. Samo prepisivanje uzorka od desetak nula i jedinica je zamorno i
podlono pogrekama. Zbog toga, da bismo sve skupa pojednostavnili koristi se
heksadecimalno oznaavanje