18
9-1 9. KEŠ MEMORIJA Namena keš memorije je da pruži brzinu koja je blizu onoj koju imaju najbrže raspoložive memorije, a u isto vreme da obezbedi veliki kapacitet memorije po ceni jeftinih vrsta poluprovodničkih memorija. Keš memorija sadrži kopiju delova glavne memorije. Kada procesor pokuša da čita reči iz memorije, prvo se proverava da li je ta reč u kešu, i ako jeste, reč se isporučuje procesoru. Ako nije, blok glavne memorije, koji se sastoji od nekog fiksnog broja reči, se učitava u keš i onda se reč isporučuje procesoru (slika 1). Zbog fenomena lokalnosti reference, kada se blok podataka donese u keš da bi se zadovoljila jedna referenca memorije, verovatno će biti budućih referenci na tu istu memorijsku lokaciju ili na drugu reč u bloku. Slika 1. Odnos procesora, keša i glavne memorije Glavna memorija se sastoji od 2 n adresibilnih reči, gde svaka lokacija (reč) ima jedinstvenu n-bitnu adresu (slika 2). U svrhu preslikavanja, ta memorija je zamišljena da se sastoji od izvesnog broja blokova fiksne dužine, svaki po k reči. To znači da postoji M = 2 n /k blokova u glavnoj memoriji. Keš memorija se sastoji od C redova. Svaki red sadrži k reči, plus tag od nekoliko bitova. Broj reči u redu se zove veličina reda. Broj redova u kešu je mnogo manji od broja blokova u glavnoj memoriji (C << M).

9 - Kes Memorija

Embed Size (px)

DESCRIPTION

k

Citation preview

  • 9-1

    9.

    KE MEMORIJA

    Namena ke memorije je da prui brzinu koja je blizu onoj koju imaju najbre

    raspoloive memorije, a u isto vreme da obezbedi veliki kapacitet memorije po ceni jeftinih

    vrsta poluprovodnikih memorija.

    Ke memorija sadri kopiju delova glavne memorije. Kada procesor pokua da ita rei

    iz memorije, prvo se proverava da li je ta re u keu, i ako jeste, re se isporuuje procesoru.

    Ako nije, blok glavne memorije, koji se sastoji od nekog fiksnog broja rei, se uitava u ke i

    onda se re isporuuje procesoru (slika 1). Zbog fenomena lokalnosti reference, kada se blok

    podataka donese u ke da bi se zadovoljila jedna referenca memorije, verovatno e biti

    buduih referenci na tu istu memorijsku lokaciju ili na drugu re u bloku.

    Slika 1. Odnos procesora, kea i glavne memorije

    Glavna memorija se sastoji od 2n adresibilnih rei, gde svaka lokacija (re) ima

    jedinstvenu n-bitnu adresu (slika 2). U svrhu preslikavanja, ta memorija je zamiljena da se

    sastoji od izvesnog broja blokova fiksne duine, svaki po k rei. To znai da postoji M = 2n/k

    blokova u glavnoj memoriji.

    Ke memorija se sastoji od C redova. Svaki red sadri k rei, plus tag od nekoliko

    bitova. Broj rei u redu se zove veliina reda. Broj redova u keu je mnogo manji od broja

    blokova u glavnoj memoriji (C

  • 9-2

    Slika 2. Organizacija kea i glavne memorije

    U bilo kom trenutku, neki podskup blokova memorije se nalazi u redovima u keu. Ako

    se ita re u bloku memorije, taj blok se prenosi u jedan od redova kea. S obzirom na to da

    ima vie blokova od redova, pojedinani red se ne moe jedinstveno i trajno dodeliti

    odreenom bloku. Prema tome, svaki red poseduje tag, koji predstavlja deo adrese glavne

    memorije i koji identifikuje blok koji je trenutno uskladiten u keu. Organizacija kea je

    prikazana na slici 3.

    Slika 3. Organizacija ke memorije

    S obzirom na to da ima manje redova kea od blokova u glavnoj memoriji, potreban je

    algoritam za preslikavanje blokova glavne memorije u redove kea. Pored toga, potreban je

    nain na koji se odreuje koji blok glavne memorije trenutno zauzima red u keu. Najee se

    koriste tri tehnike preslikavanja:

    - Direktno preslikavanje,

  • 9-3

    - Asocijativno preslikavanje,

    - Asocijativno preslikavanje skupa (set-asocijativno preslikavanje).

    9.1 Direktno preslikavanje

    Ovo je najjednostavnija tehnika preslikavanja gde se svaki blok glavne memorije moe

    preslikati samo u jedan mogui red kea (slika 4). Preslikavanje se izvrava po sledeem

    obrascu:

    i = j moduo m,

    gde je:

    i broj reda u keu,

    j broj bloka u glavnoj memoriji,

    m broj redova u keu.

    Slika 4. Direktno preslikavanje kea

    Funkcija preslikavanja se lako implementira koristei adrese. Kada se pristupa keu,

    svaka adresa glavne memorije moe da se posmatra kao da se sastoji iz tri dela.

    Najmanje znaajnih w bitova identifikuju jedinstvenu re unutar bloka glavne memorije.

    To znai da jedan blok glavne memorije sadri 2w rei. Ostalih s bitova odreuju 2s blokova

    glavne memorije. Logika kea interpretira tih s bitova kao tag od s-r bitova i polje reda od r

    bitova. Polje reda identifikuje jedan od m = 2r redova kea.

    Kod direktnog preslikavanja, prvo se ita red u adresi i tag u keu koji odgovara tom

    redu (slika 5). Tag se poredi sa tagom u memorijskoj adresi. Ako su isti, blok se nalazi u keu

    i re se ita. Ako nisu isti, kaemo da je dolo do promaaja u keu i pristupa se glavnoj

    memoriji. Blok iz glavne memorije u kojem se nalazi traena re se prebacuje u ke

    memoriju. Tada se ita blok s i re na adresi w iz tog bloka.

  • 9-4

    Slika 5. Organizacija kea kod direktnog preslikavanja

    Rezime:

    - Duina adrese: s + w bitova,

    - Kapacitet memorije: 2s+w rei,

    - Veliina bloka (ili reda): 2w rei,

    - Broj blokova u glavnoj memoriji: 2s,

    - Broj redova u ke memoriji: 2r,

    - Veliina taga: s r bitova.

    Tehnika direktnog preslikavanja je jednostavna i jeftina za implementaciju. Njen glavni

    nedostatak je to to postoji fiksna lokacija u keu za svaki blok glavne memorije. Ako se

    dogodi da program stalno trai rei iz dva razliita bloka koji se preslikavaju u isti red, onda

    e se blokovi stalno izbacivati iz kea, a verovatnoa pogotka e biti mala.

    U tabeli 1 su dati redovi kea u koje se preslikavaju blokovi operativne memorije

    Tabela 1. Redovi kea u koje se preslikavaju blokovi operativne memorije

  • 9-5

    Zadatak 1. Raunar poseduje operativnu memoriju veliine 4 kB i ke memoriju veliine 64

    B. Veliina bloka u memoriji je 8 B. Prikazati organizaciju glavne memorije, kea i polje

    fizike adrese, ako je u pitanju direktno preslikavanje kea.

    2 10 124 kB = 2 2 2 BMC duina memorijske adrese je n = 12 bita.

    38 B = 2 BK w = 3 bita

    129

    3

    22 512 blokova

    2

    MCMK

    s = 9 bitova

    8KC

    CK

    postoji 8 redova u keu r = 3 bita

    Zadatak 2. Raunar poseduje memorijski podsistem koji se sastoji iz operativne memorije i

    kea sa direktnim preslikavanjem. Odrediti kapacitet glavne memorije i kea, ako su polja

    fizike adrese prikazana na slici.

  • 9-6

    32 2 302 2 b = 2 2 4 GBnMC kapacitet glavne memorije je 4 GB

    12 2 102 2 B = 2 2 4 kBwK veliina bloka (ili reda) je 4 kB

    202MC

    MK

    broj blokova u operativnoj memoriji

    92 2 512rC broj redova u keu

    212 B = 2 MBKC C K kapacitet ke memorije.

    9.2 Asocijativno preslikavanje

    Asocijativno preslikavanje prevazilazi nedostatak direktnog preslikavanja

    dozvoljavajui svakom memorijskom bloku da se uita u bilo koji red u keu (slika 6). U tom

    sluaju, upravljaka logika kea interpretira memorijsku adresu kao polje za tag i polje rei.

    Polje za tag jedinstveno identifikuje blok glavne memorije. Da bi odredila da li je blok u keu,

    upravljaka logika kea mora istovremeno da ispita tag svakog reda radi pronalaenja

    podudarnosti.

    Slika 6. Asocijativno preslikavanje

    Kod asocijativnog preslikavanja postoji fleksibilnost u pogledu toga koji blok treba

    zameniti kada se novi blok uitava u ke. Osnovni nedostatak ovog preslikavanja su sloena

    elektronska kola koja su potrebna da bi se paralelno ispitivali tagovi svih redova u keu.

    Organizacija kea kod asocijativnog preslikavanja je prikazana na slici 7.

  • 9-7

    Slika 7. Organizacija kea kod asocijativnog preslikavanja

    Dakle, kod asocijativnog preslikavanja vai:

    - Duina adrese: n = s + w bita,

    - Duina taga: s bitova,

    - Duina rei: w bitova,

    - Kapacitet glavne memorije: 2n rei,

    - Veliina bloka (ili reda): 2w rei,

    - Broj blokova u glavnoj memoriji: 2s.

    Zadatak 3. Raunar poseduje operativnu memoriju kapaciteta 2 KB i ke memoriju

    kapaciteta 256 B koji poseduje asocijativno preslikavanje. Nacrtati organizaciju operativne i

    ke memorije i odrediti polje fizike adrese, ako je veliina bloka u operativnoj memoriji 64

    B.

    1 10 122 kB = 2 2 2 BMC duina memorijske adrese je n = 11 bita

    664 B = 2 BK w = 6 bitova

    115

    6

    22 32

    2

    MCMK

    broj blokova u operativnoj memoriji

    2564

    64

    KCCK

    broj redova u ke memoriji

  • 9-8

    9.3 Asocijativno preslikavanje skupa

    Ovo je kompromis izmeu direktnog i asocijativnog pristupa, pri emu do izraaja

    dolaze njihove prednosti, a umanjuju se njihovi nedostaci. U sluaju asocijativnog

    preslikavanja skupa, ke je podeljen na v skupova, od kojih se svaki sastoji od k redova. Ovo

    preslikavanje se vri prema sledeem obrascu:

    moduo

    m v k

    i j v

    gde je:

    i redni broj skupa u ke memoriji,

    j redni broj bloka u glavnoj memoriji,

    m broj redova u ke memoriji,

    v broj skupova u ke memoriji,

    k broj redova u svakom skupu.

    Ako jedan skup sadri k redova, onda za preslikavanje kaemo da je k-tostruko

    asocijativno preslikavanje skupa.

    Kod ovog preslikavanja, blok Bj moe da se preslika u bilo koji od redova skupa j (slika

    8). U tom sluaju, upravljaka logika kea interpretira memorijsku adresu kao tri polja: tag,

    skup i re. Pomou d bitova skupa se odreuje jedan od v = 2d skupova. Jedan od 2s blokova

    glavne memorije se odreuje pomou s bitova polja za tag i polja za skup.

  • 9-9

    Slika 8. Asocijativno preslikavanje skupa

    Kod potpuno asocijativnog preslikavanja, tag u memorijskoj adresi je prilino dugaak i

    mora da se poredi sa tagom od svakog reda u keu. Kod k-tostrukog asocijativnog

    preslikavanja skupa, tag u memorijskoj adresi je mnogo manji i poredi se samo sa k tagova

    unutar jednog skupa (slika 9).

    Slika 9. Organizacija kea kod asocijativnog preslikavanja skupa

    Kod asocijativnog preslikavanja skupa vai sledee:

    - Duina memorijske adrese: n = s + w bitova,

    - Kapacitet memorije: 2n rei,

    - Veliina bloka: 2w rei,

    - Broj blokova u glavnoj memoriji: 2s,

  • 9-10

    - Broj redova u skupu: k,

    - Broj skupova: v = 2d,

    - Broj redova u ke memoriji: C = k v.

    U ekstremnom sluaju kada je v = m, k = 1, asocijativno preslikavanje skupa postaje

    direktno preslikavanje, a kada je v = 1, k = m, postaje asocijativno preslikavanje. Najea

    organizacija ovog preslikavanja je korienje dva reda po skupu (v = m/2, k = 2).

    Zadatak 4. Raunar poseduje operativnu memoriju kapaciteta 4 kB podeljenu u blokove

    veliine 16 B, a ke je veliine 512 B i koristi 8-struko asocijativno preslikavanje skupa.

    Prikazati organizaciju operativne i ke memorije, kao i format fizike adrese.

    2 10 122 2 2 BMC duina memorijske adrese n = 12 bitova

    416 B = 2 BK w = 4 bita

    52 32MC

    MK

    broj redova u ke memoriji

    22 4C

    vk

    broj skupova u ke memoriji d = 2 bita

    s d = 6 bitova veliina taga

  • 9-11

    Zadatak 5. Raunar poseduje operativnu memoriju kapaciteta 4 GB i ke memoriju

    kapaciteta 2 MB. Veliina bloka u operativnoj memoriji je 512 B. Nacrtati emu organizacije

    operativne i ke memorije i prikazati format fizike adrese u sluaju: a) direktnog

    preslikavanja, b) asocijativnog preslikavanja, c) 16-tostrukog asocijativnog preslikavanja

    skupa.

    324 GB = 2 BMC duina memorijske adrese n = 32 bita

    9512 B = 2 BK w = 9 bitova

    3223

    9

    22

    2

    MCMK

    broj blokova u operativnoj memoriji s = 23 bita

    Napomena: Organizacija glavne memorije je ista za sva tri tipa preslikavanja

    a) 21

    12

    9

    2 MB 22

    512 B 2

    KCCK

    r = 12 bitova (12 bitova adrese bloka se odvaja za

    adresiranje reda, a preostalih 11 bitova predstavljaju tag)

  • 9-12

    b)

    c) Broj redova u skupu: k = 16

    84096 redova 2 25616 redova/skupu

    Cv

    k broj skupova u ke memoriji d = 8 bita

  • 9-13

    9.4 Zamena blokova ke memorije

    Pri generisanju zahteva za upis ili itanje od strane procesora moe se utvrditi da se blok

    u kome je zahtevana re ne nalazi u bloku ke memorije koji je predvien odabranom

    tehnikom preslikavanja. Tada se jedan blok ke memorije mora vratiti u operativnu memoriju,

    da bi se u ke memoriji napravio prostor za blok iz operativne memorije u kome se zahtevana

    re nalazi. Ovaj blok se odreuje korienjem jednog od algoritama zamene koji se hardverski

    realizuju u ke memoriji.

    Kod ke memorije sa direktnim preslikavanjem algoritam zamene je trivijalan jer je

    blok za zamenu odreen brojem bloka generisane adrese. Kod ke memorije sa asocijativnim i

    asocijativnim preslikavanjem skupa, algoritmom zamene se za zamenu bira jedan od svih

    blokova ke memorije sa asocijativnim preslikavanjem i jedan od svih blokova skupa,

    odreenog brojem skupa generisane adrese, ke memorije sa asocijativnim preslikavanjem

    skupa. Stoga se algoritam zamene realizuje za celu ke memoriju sa asocijativnim

    preslikavanjem, a posebno za svaki skup ke memorije sa asocijativnim preslikavanjem

    skupa.

    Pri izboru algoritma zamene treba voditi rauna o dva zahteva. Prvi je da on treba da

    obezbedi minimalnu verovatnou da e blok koji je odabran za zamenu i vraen iz ke u

    operativnu memoriju ubrzo morati ponovo da se dovue iz operativne u ke memoriju. Drugi

    je da cena hardvera potrebnog za njegovu realizaciju bude to je mogue nia. Ova dva

    zahteva su kontradiktorna, jer je cena hardvera algoritama zamene koji bolje ispunjavaju prvi

  • 9-14

    zahtev via u odnosu na cenu hardvera algoritama zamene koji to ine loije. Ovde se

    razmatraju etiri algoritma zamene i to RANDOM, FIFO, LRU i PSEUDO. Razmatranja se

    odnose na ke memoriju sa asocijativnim preslikavanjem i vae i za jedan skup ke memorije

    sa asocijativnim preslikavanjem skupa.

    9.4.1 RANDOM

    RANDOM algoritmom zamene za zamenu se sluajno bira blok korienjem jednog od

    postojeih generatora sluajnih brojeva. Mogui nain realizacije je da se koristi broja po

    modulu 2n, gde 2n predstavlja broj ulaza ke memorije sa asocijativnim preslikavanjem i broj

    ulaza po skupu ke memorije sa asocijativnim preslikavanjem skupa. Moe se odabrati neki

    proizvoljan signal i koristiti za inkrementiranje brojaa. U trenutku kada nema saglasnosti i

    treba odabrati blok za zamenu, trenutna vrednost brojaa odreuje ulaz za zamenu. Posle toga

    se produava se inkrementiranje brojaa do sledeeg trenutka kada nema saglasnosti i kada

    ponovo na osnovu vrednosti brojaa treba odabrati ulaz za zamenu.

    Ovaj algoritam ne vodi rauna o tome da e blok koji je odabran za zamenu i vraen iz

    ke u operativnu memoriju moda ubrzo morati ponovo da se dovue iz operativne u ke

    memoriju. Meutim, hardver za njegovu realizaciju je jednostavan.

    9.4.2 FIFO

    FIFO (First InFirst Out) algoritmom zamene za zamenu se bira blok koji je najranije

    unet iz operativne memorije u ke memoriju. Mogui nain realizacije je da se koristi broja

    po modulu 2n, gde 2n predstavlja broj ulaza ke memorije sa asocijativnim preslikavanjem i

    broj ulaza po skupu ke memorije sa asocijativnim preslikavanjem skupa. U trenutku kada

    nema saglasnosti i treba odabrati blok za zamenu, trenutna vrednost brojaa odreuje ulaz za

    zamenu. Pri tome se i vri inkrementiranje brojaa.

    Ovaj algoritam ne vodi rauna o tome da e blok koji je odabran za zamenu i vraen iz

    ke u operativnu memoriju moda ubrzo morati ponovo da se dovue iz operativne u ke

    memoriju, ve za zamenu bira blokove po onom redosledu po kome su i dovlaeni iz

    operativne memorije u ke memoriju. Meutim, hardver za njegovu realizaciju je jednostavan.

    9.4.3 LRU

    LRU (Least Recently Used) algoritmom zamene za zamenu se bira blok kome se

    najdue vremena nije pristupalo. Mogui nain realizacije je da se koristi 2n brojaa po

    modulu 2n, gde 2n predstavlja broj ulaza ke memorije sa asocijativnim preslikavanjem i broj

    ulaza po skupu ke memorije sa asocijativnim preslikavanjem skupa. Svakom od 2n ulaza ke

  • 9-15

    memorije dodeljuje se jedan od 2n brojaa po modulu 2n. Brojai se tokom rada tako auriraju

    da je u njima uvek 2n razliitih vrednosti i da broja ulaza kome se najdue vremena nije

    pristupalo ima sve jedinice i time vrednost 2n-1. U trenutku kada ima saglasnosti sadraj

    brojaa ulaza u kome je otkrivena saglasnost se uporeuje sa sadrajima brojaa svih

    preostalih ulaza. Brojai koji imaju manju vrednost od brojaa ulaza u kome je otkrivena

    saglasnost se inkrementiraju, brojai koji imaju veu vrednost od brojaa ulaza u kome je

    otkrivena saglasnost se ne menjaju i broja ulaza u kome je otkrivena saglasnost se postavlja

    na nulu. U trenutku kada nema saglasnosti za zamenu se bira ulaz iji broja ima sve jedinice

    i time vrednost 2n-1, brojai svih preostalih ulaza imaju manju vrednost od brojaa ulaza koji

    je odabran za zamenu pa se inkrementiraju i broja ulaza koji je odabran za zamenu se

    postavlja na nulu. Na poetku rada brojai 2n ulaza treba tako da se inicijalizuju da u njima

    bude 2n razliitih vrednosti, pri emu brojae ulaza treba inicijalizovati na vrednosti 2n-1, 2n-

    2, ..., 1 i 0 saglasno redosledu po kome se eli popunjavanje ulaza. Time se i za popunjavanje

    ke memorije i za zamenu blokova popunjene ke memorije koristi isti mehanizam.

    9.4.4 PSEUDO LRU

    PSEUDO LRU algoritmom zamene se pokuava realizacija principa LRU algoritma

    zamene sa jednostavnijim hardverom. Mogui nain realizacije je dat za ke memorije sa

    asocijativnim preslikavanjem i etiri ulaza i ke memorije sa asocijativnim preslikavanjem

    skupa i etiri ulaza po skupu. Ovaj algoritam zamene esto se koristi kod asocijativnog

    preslikavanja skupa kod koga je broj ulaza po skupu najee dva, etiri ili osam.

    Ulazi 0 do 3 su upareni u dve grupe, pri emu ulazi 0 i 1 jedan ine jednu grupu i ulazi 2

    i 3 drugu grupu. Ovim grupama se dodeljuje indikator I2 koji se postavlja na 0 kad god se

    pristupi ulazu 0 ili 1 i na 1 kod god se pristupi ulazu 2 ili 3. Ulazima iz grupe koju ine ulazi 0

    i 1 dodeljuje se indikator I1 koji se postavlja na 0 kad god se pristupi ulazu 0 i na 1 kod god se

    pristupi ulazu 1. Ulazima iz grupe koju ine ulazi 2 i 3 dodeljuje se indikator I0 koji se

    postavlja na 0 kad god se pristupi ulazu 2 i na 1 kod god se pristupi ulazu 3. Dijagram toka

    PSEUDO LRU algoritma zamene pri auriranju je dat na slici 9.

    Slika 10. Dijagram toka PSEUDO LRU algoritma zamene

  • 9-16

    9.5 Auriranje operativne memorije

    Auriranje operativne memorije odreuje kako se kod operacije upisa menja sadraj u

    operativnoj memoriji. Pri tome se, kod zahteva za upis, mogu javiti dve situacije. Prva je da u

    ke memoriji postoji saglasnost, a druga da nema saglasnosti.

    Za sluaj kada je u ke memoriji otkrivena saglasnost, postoje dva pristupa i to upii

    skroz (write through ili store through) i vrati nazad (write back ili copy back). Kod pristupa

    upii skroz, pri svakom zahtevu za upis istovremeno se vri upis i u ke memoriju i u

    operativnu memoriju. Kod pristupa vrati nazad, pri svakom zahtevu za upis vri se upis samo

    u ke memoriju, pa odgovarajui sadraj u operativnoj memoriji nije auran. Zbog toga se za

    svaki blok u ke memoriji vodi evidencija o tome da li je modifikovan ili ne. Ukoliko je

    kasnije potrebno dovui novi blok iz operativne memorije na mesto nekog bloka u ke

    memoriji koji je nekim od prethodni upisa modifikovan, potrebno je, najpre, dati blok ke

    memorije vratiti u operativnu memoriju i time obezbediti da i sadraj u operativnoj memoriji

    bude auran. Pored toga, kada se nekom procesu oduzima procesor, treba proveriti koji su

    blokovi u ke memoriji modifikovani, pa ih, radi auriranja sadraja u operativnoj memoriji,

    vratiti iz ke memorije u operativnu memoriju. Stoga kod ke memorija koje koriste ovaj

    pristup auriranja sadraja operativne memorije, pored zahteva za itanje i upis, postoje i

    zahtevi za selektivno i kompletno vraanje blokova iz ke memorije u operativnu memoriju

    (flush).

    Prednost pristupa upii skroz je u tome da je operativna memorija uvek aurna ime je

    obezbeena konzistentnost sadraja operativne i ke memorije. Nedostatak ovog pristupa je u

    obraanju operativnoj memoriji pri svakom upisu u ke memoriju, ime se bespotrebno

    optereuje magistrala upisivanjem meurezultata u operativnu memoriju.

    Prednost pristupa vrati nazad je u tome to se operativnoj memoriji i magistrali pristupa

    samo onda kada se blok vraa iz ke memorije u operativnu memoriju to rezultuje u manjem

    saobraaju na magistrali. Nedostatak ovog pristupa je potreba da se blok koji se izbacuje iz

    ke memorije mora najpre vratiti u operativnu memoriju, pa tek onda dovui novi, to znatno

    usporava odziv ke memorije u sluaju promaaja.

    Ovde se vidi da su sve prednosti jednog pristupa ujedno i nedostaci drugog. Stoga se

    pristup vrati nazad koristi tamo gde je magistrala usko grlo sistema, a pristup upii skroz gde

    magistrala to nije.

    Za sluaj kada je u ke memoriji nije otkrivena saglasnost, postoje dva pristupa i to

    dovuci blok (write allocate) i ne dovlai blok (no write allocate). Kod pristupa dovuci blok,

    blok se dovlai iz operativne u ke memoriju, ime se obezbeuje da se sada u ke memoriji

  • 9-17

    otkriva saglasnost. Dalji postupak odgovara prethodno opisanoj situaciji za operaciju upisa i

    otkrivenu saglasnost, u kojoj se upis vri u ke memoriju, a za auriranje sadraja operativne

    memorije koristi pristup upii skroz ili vrati nazad. Kod pristupa ne dovlai blok, blok se ne

    dovlai iz operativne u ke memoriju, ve se upis vri samo u operativnu memoriju. Obino se

    uz pristup vrati nazad (write back ili copy back) koristi pristup dovuci blok (write allocate),

    dok se uz pristup upii skroz (write through ili store through) koristi pristup ne dovlai blok

    (no write allocate).

    9.6 Neka razmatranja u vezi realizacije ke memorije

    U osnovni mehanizam funkcionisanja ke memorije mogue je uvesti neka poboljanja

    koja skrauju vreme itanja iz i upisa u ke memoriju.

    Mogue poboljanje je u tome da ke memorija, ako se radi o operaciji upisa, odmah

    dozvoli procesoru da produi sa izvravanjem tekue instrukcije bez obzira na to da li je upis

    zaista izvren ili nije. Time e paralelno ke memorija obavljati upis a procesor izvravati

    instrukciju. Ke memorija nee moi da prihvati novi zahtev za upis ili itanje ukoliko se

    prethodno zapoeti upis nije zavrio.

    Poboljanje je mogue uiniti i u sluaju operacije itanja kada traeni blok nije u ke

    memoriji, ve ga treba dovui iz operativne memorije. Tada procesor ne mora da eka da ceo

    blok bude prenesen iz operativne u ke memoriju i da tek tada dobije traeni sadraj. Ke

    memorija moe procesoru dostaviti traeni sadraj im on stigne iz operativne u ke

    memoriju. U tom sluaju procesor moe ranije da nastavi izvravanje tekue instrukcije, a da

    se paralelno s time ostatak bloka prenese iz operativne u ke memoriju. Pri tome dovlaenje

    rei bloka treba zapoeti od rei ije je itanje zahtevano. Kao u prethodnom sluaju, ke

    memorija opet ne moe prihvatiti novi zahtev za itanje ili upis sve dok se prenos prethodnog

    bloka ne obavi do kraja. Ova tehnika naziva se by-pass.

    Sledee poboljanje je mogue ostvariti u sluajevima kada je potrebno izvriti vraanje

    modifikovanog bloka u operativnu memoriju. Da bi se ubrzao taj postupak mogue je u

    poseban bafer privremeno smestiti ceo blok koji se vraa i odmah prei na dovlaenje novog

    bloka iz operativne memorije. Tek po zavretku dovlaenja novog bloka prelazi se na

    vraanje u operativnu memoriju bloka koji se nalazi u baferu. I ovde ke memorija ne moe

    prihvatiti novi zahtev za itanje ili upis sve dok se cela operacija ne zavri do kraja. Ovo

    poboljanje se naziva baferisanje.

    Sva navedena poboljanja imaju za cilj da se procesor to manje zadrava prilikom

    obraanja ke memoriji. Pri tome se pretpostavlja da se procesor vrlo verovatno nee uskoro

  • 9-18

    ponovo obraati ke memoriji, pa e do sledeeg obraanja procesora ke memoriji, ke

    memorija moi da obavi prethodno zapoetu operaciju do kraja.

    U sluaju operacije upisa postoji vie naina da se promene sadraja operativne i ke

    memorije realizuju. Ako se koristi pristup vrati nazad onda se promena u operativnoj

    memoriji ostvaruje samo u sluaju vraanja bloka u operativnu memoriju. to se tie ke

    memorije kod ovog pristupa se promena u ke memoriji ostvaruje uvek i to i u sluaju da ima

    saglasnosti i u sluaju da nema saglasnosti, pri emu se u drugom sluaju to ini tek poto se

    blok prenese iz operativne u ke memoriju. Ako se koristi pristup upii skroz onda se promena

    u operativnoj memoriji ostvaruje uvek. to se tie ke memorije kod ovog pristupa se u

    sluaju saglasnosti ili upisuje novi sadraj u ke memoriju ili se ulaz ke memorije proglaava

    nevaeim. U sluaju da nema saglasnosti u nekim situacijama aurirani blok operativne

    memorije se dovlai u ke memoriju, dok se u drugim aurirani blok operativne memorije ne

    dovlai u ke memoriju.

    U osnovni mehanizam funkcionisanja ke memorije je mogue uvesti neka poboljanja,

    koja skrauju vreme itanja iz i upisa u ke memoriju. Mogue poboljanje je u tome da ke

    memorija, ako se radi o operaciji upisa, upis izvri u bafer podatka i odmah dozvoli procesoru

    da produi sa izvravanjem tekue instrukcije. Time e se paralelno obavljati upis iz bafera

    podatka u operativnu memoriju i izvravati instrukcije procesora. Ove tehnike se nazivaju

    baferovanje podatka i rani start procesora.

    Poboljanje je mogue uiniti i u sluaju operacije itanja kada traeni blok nije u ke

    memoriji, ve ga treba dovui iz operativne memorije. Tada procesor ne mora da eka da ceo

    blok bude dovuen iz operativne memorije u ke memoriju i da tek tada dobije traeni sadraj.

    Ke memorija moe procesoru dostaviti traeni sadraj im on stigne iz operativne u ke

    memoriju. U tom sluaju, procesor moe ranije da nastavi izvravanje tekue instrukcije i da

    se paralelno ostatak bloka prenosi iz operativne u ke memoriju. Pri tome, dovlaenje rei

    bloka treba zapoeti od rei ije je itanje zahtevano. Ove tehnike se nazivaju prosleivanje i

    rani start procesora.

    Sledee poboljanje je mogue ostvariti u sluajevima kada je potrebno izvriti vraanje

    modifikovanog bloka odabranog za zamenu iz ke memorije u operativnu memoriju. Da bi se

    ubrzao taj postupak, mogue je postaviti bafer bloka, koji e prihvatiti ceo blok koji se vraa, i

    odmah prei na dovlaenje bloka iz operativne memorije. Tek po zavretku dovlaenja bloka

    iz operativne u ke memoriju, prelazi se na vraanje bloka iz bafera bloka u operativnu

    memoriju. Ovo poboljanje se naziva baferovanje bloka podataka.