Početna stranica > Članci > Računala > Što je cache memorija?

Što je cache memorija?

Cache, priručna ili predmemorija je mala memorija koja služi pohranjivanju podataka kojima procesor često pristupa, a služi za povećanje brzine izvođenja programa. Kako procesor radi puno brže od RAM memorije, on gubi puno vremena na čitanje podataka. Ovaj problem nastaje zbog nesrazmjera u brzini rada procesora i RAM memorije. Kao rješenje uvodi se cache memorija koja djeluje kao posrednik između procesora i RAM-a. Njegova brzina je jednaka brzini procesora te se ne gubi vrijeme na čekanje na upis ili čitanje podataka iz RAM-a.

Cache se obično izvodi u dvije ili više razina, koje se nazivaju L1, L2 itd. Na samom procesoru ugrađen je L1 cache i njegova brzina je ista kao i brzina procesora, što znači da iz njega procesor dohvaća podatke jednako brzo kao i iz svojih registara. Obično je reda nekoliko KB, a može biti podijeljen na instrukcijski (I cache) u koji se pohranjuje blok instrukcija, podatkovni (D cache) u koji se pohranjuje blok podataka ili dijeljeni (I&D cache). Ponekad izvan procesora, no u novije vrijeme na samom procesoru ugrađen je L2 cache. On je nešto sporiji od L1, no brži od RAM memorije. U njega se pohranjuju podaci za koje se temeljem cache algoritama pretpostavlja da će ih procesor trebati. Veličine je od nekoliko stotina KB do nekoliko MB. Intelov procesor i7 prve generacije imao je L1 cache veličine 32KB (podatkovni) + 32KB (instrukcijski), L2 cache veličine 256KB i L3 cache veličine 8MB.

Kako funkcionira cache memorija?

Kad procesor generira zahtjev za čitanje ili upis podataka u memoriju, on se uvijek poziva na lokaciju u RAM memoriji bez obzira na cache. On ga zapravo i nije svjestan. Sklop za upravljanje cache memorijom određuje nalazi li se riječ u cacheu ili ne. Ako se nalazi, izvodi se tražena operacija na lokaciji u cache memoriji. Kod čitanja sudjeluje samo cache memorija. Međutim, kod upisa se podatak upisuje i u cache i RAM memoriju. Ako se adresirani podatak (riječ) ne nalazi u cache memoriji, kod operacije čitanja se cijeli blok riječi (stranica) najprije prenosi iz RAM-a u cache, a zatim se šalje procesoru. Kod upisa, podatak se direktno upisuje u RAM. Kad procesor čita samo neku riječ iz RAM-a, podaci se u cache uvijek upisuju u blokovima, jer je velika vjerojatnost da će uskoro i druge riječi u bloku biti potrebne.

Efikasnost cache memorije

Cache algoritam ne može predvidjeti sve blokove koji će zatrebati procesoru. Stoga se podaci povremeno čitaju i iz RAM-a. Kad se cache napuni, algoritam mora odrediti koji podaci će se zadržati, a koji obrisati. Jedan od takvih algoritama je LRU (Least Recently Used) koji briše podataka koji je najstariji. Efikasnost se mjeri pomoću broja pogodaka (hit) i promašaja (miss). Hit se mjeri kao postotak broja dohvaćenih podataka iz cachea u odnosu na ukupan broj dohvaćanja. Imamo još i hit time, odnosno vrijeme potrebno da se podatak dohvati iz cachea i miss time, vrijeme da se dohvati iz RAM-a. Pokažimo to u sljedećem primjeru za 10 dohvaćanja:

Za dohvat podataka iz RAM-a potrebno je 60ns, a iz cachea 5ns. Hit je 80%.

Dohvaćanje podataka trajalo je: T(cache)=5ns*8+60ns*2=160ns

Kad ne bi bilo cachea, svi podaci bi se dohvaćali iz RAM-a, pa bi dohvaćanje trajalo: T(RAM)=60ns*10=600ns

Dohvaćanje podataka je ubrzano za: 3.75 puta

 

O Ivan Matačić

Urednik sam portala Petvolta.com. Profesionalno se bavim računalima i IT opremom općenito, a elektronika mi je hobi, ali i struka. Nadam se da će čitatelji naučiti nešto novo, korisno i zabavno, a ako se, kao i ja, zaljube u elektroniku, cilj ovog projekta bit će ispunjen.

3 komentara

  1. Arslan Fejzić

    Dobar dan
    -Ovako,zanima me gdje se tačno nalazi cache memorija ? 😀

  2. Cache memorija se nalazi integrirana unutar samog procesora, u istom su chipu.

  3. ljerka odadžić

    prilikom dizanja novih windovsa izgubila sam sve iz ADD POHRANE PA I LOZINKE serviser nije pitao moj mail da sustav vrati sve nego je nepravio novi kojim me uključio u sustav i kako da ja sad vratim svoje podatke

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.