You are on page 1of 2

Brza priruna memorija cache; Kada procesor dobavlja podatke iz RAM-a, treba mu prosjeno oko 60ns.

. Kako mikropr ocesor radi puno bre (u ciklusima od 2 ns) to gubi jako puno vremena ekajui na poda tke iz RAM-a. Problem se pojavio zbog nerazmjera u poveanju brzine rada izmeu proc esora i memorije. Naime, vei broj komponenti na jedinici povrine integriranog sklo pa rezultira veim poveanjem brzine rada procesora u odnosu na memoriju, to je vidlj ivo na slici Sl.1.

Sl.1. Krivulje koje pokazuju nejednako poveanje efikasnosti obzirom na broj kompo nenti 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 inovacij ama. U ovom sluaju, hijerarhijska organizacija memorije (Sl.2.),pokazala se kao i dealna jer se dodavanjem malenog kapaciteta brze memorije (SRAM tehnologije) tre bala ubrzati velika

Sl.2. Hijerarhijska organizacija memorije koliina spore i manje skupe memorije. Tako je na samom procesoru ugraen tzv. L1 ca che, mala priruna memorija iji sadraj sa lokacija procesor dobavlja jednako brzo ka o i iz svojih registara, a izvan procesora ugrauje se u raunarski sustav tzv. L2 c ache, brzi memorijski spremnik u koji se pohranjuje dio podataka iz RAM-a za koj e 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 ri je dohvaamo pomou n-bitne adrese. Da bismo podatke prebacili u cache, memoriju dije limo 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 iz dreenog 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 bl ok trenutno zauzima odreenu liniju cachea. Tag je formiran od dijela bitova koji specificiraju adresu bloka u glavnoj memoriji (Sl.3.). Sl.3. Struktura cachea i glavne memorije Efikasnost cache memorije: Efikasnost cache memorije odreuje broj koji govori koliko je puta procesoru stvar no i isporuen podatak nakon to ga je zatraio. U tom kontekstu esto se koriste termin i kao to je pogodak (hit) koji oznaava da je podatak kojeg procesor trai stvarno i pronaen u cache memoriji. U sluaju da ga tamo nema kaemo da je rije o promaaju (miss) . Postoje tri razliita tipa promaaja: Nezaobilazni (compulsory) promaaj pri prvom posezanju za podacima iz memorije kad a je cache jo prazan; Kapacitetni (capacity) promaaj koji se javlja ako se svi potrebni blokovi ne mogu smjestiti odmah u cache nego ih se dobavlja kasnije. Uzrok promaaja je nedostatn a veliina cache memorije.

Konfliktni promaaj je onaj koji nastaje zbog primijenjene strategije prebacivanja podataka u cache. Naime ukoliko vie blokova iz RAM-a pretendira na isto mjesto u cache memoriji, ne mogu se svi uitati odmah nego ih se dobavlja kasnije. Ponekad se ova vrsta promaaja zove promaajem kolizije ili interferencije; 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 po daci 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 p ogaanja (hit ratio) mjeri se kao postotak uspjeno dobavljenih podataka iz cachea u odnosu na ukupan broj posezanja, neuspjenost (miss ratio) je komplementarna vrij ednost i raunamo je kao 1-hit_ratio. Cilj je da uspjenost pogaanja bude to je mogue v ea. Primjer: Pretpostavimo da za dohvaanje podataka iz L1 cachea treba 10 ns, a iz glavne memo rije 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 algoritme temeljem kojih se postojei blokovi iz cachea zamjenjuju novima nainom na koji se upisuju blokovi odabirom veliine blokova brojem cache memorija

You might also like