keŠ memorija

Upload: vkosanovic

Post on 17-Jul-2015

133 views

Category:

Documents


0 download

TRANSCRIPT

Organizacija kes memorije kod cpuaUvoenje ke memorije je bazirano na pretpostavci da ako Vreme izvravanja instrukcija, a samim tim i programa, direktno zavisi od vremena pristupa operativnoj memoriji. Pristup operativnoj memoriji se moe ubrzati korienjem ke memorije koja se ubacuje izmeu procesora i operativne memorije. Ke memorija se realizuje tako da je njeno vreme pristupa daleko manje od vremena pristupa operativne memorije. S obzirom da je cena po bitu ke memorije znaajno vea od cene po bitu operativne memorije, kapacitet ke memorije je daleko manji od kapaciteta operativne memorije. U ke memoriji se uvaju sadraji onih lokacija operativne memorije kojima se procesor najee obraa. Algoritam izvravanja instrukcija u raunarima sa ke memorijom predvia da se pri svakom obraanju procesora operativnoj memoriji najpre izvri provera da li je dati sadraj u ke memoriji. Ako jeste, itanje ili upis se vri sa ke memorijom. Ako nije, sadraj date lokacije se, najpre, prebaci iz operativne u ke memoriju pa se, potom, itanje ili upis realizuje sa ke memorijom. Kompletan rad sa ke memorijom se realizuje hardverski. je iz programa pristupano nekim lokacijama operativne memorije, postoji velika verovatnoa da e im se uskoro ponovo pristupiti. Ova pretpostavka je utemeljena na uoenom prostornom i vremenskom lokalitetu programa. Prostorni lokalitet znai da su adrese koje e se uskoro generisati u neposrednoj blizini adresa koje su upravo generisane. Ovakav nain generisanja adresa se javlja kod generisanja adresa elemenata nizova, iji su elementi u operativnoj memoriji smeteni jedan za drugim, ili kod instrukcija, koje se izvravaju sekvencijalno. Vremenski lokalitet znai da se odreene adrese, koje prostorno u operativnoj memoriji ne moraju da budu bliske, vie puta generiu u odreenom vremenskom intervalu.

Ovakav nain generisanja adresa se javlja kod generisanja adresa skalarnih promenljiv. Ke memorije je mogue realizovati na vie naina. Razlike postoje u tehnici preslikavanja, dimenziji bloka, zameni blokova ke memorije i auriranju operativne memorije. Tehnika preslikavanja odreuje nain voenja evidencije o tome koji se delovi operativne memorije nalaze u pojedinim delovima ke memorije. Dimenzija bloka odreuje broj rei operativne memorije na nivou kojih se realizuje preslikavanje. Zamena blokova ke memorije odreuje ulaz ke memorije u koji treba smestiti blok koji se dovlai iz operativne memorije u sluaju kada je ke memorija popunjena. Auriranje operativne memorije odreuje kako se kod operacije upisa obezbeuje ne samo promena sadraja u ke, ve i u operativnoj memoriji.

TEHNIKE PRESLIKAVANJA:

Najee se koriste sledee tri tehnike preslikavanja: direktno, asocijativno i set-asocijativno.

DIREKTNO PRESLIKAVANJEKod tehnike direktnog preslikavanja ke memorija se sastoji iz sledeih delova (slika 1): memorije DATA i memorije TAG. U memoriju DATA se smetaju blokovi preneti iz operativne u ke memoriju. U memoriju TAG se smetaju brojevi grupa, koji se nazivaju TAG-ovi, za blokove prenete iz operativne u ke memoriju. Za realizaciju memorija DATA i TAG koristi se RAM memorija. Ukoliko u memoriju DATA moe da se smesti 2k blokova operativne memorije kae se da ke memorija ima 2k ulaza. Za svaki ulaz memorije DATA postoji odgovarajui ulaz memorije TAG. U sluaju ke memorije sa 2k ulaza realizovane u tehnici direktnog preslikavanja zamilja

se kao da je operativna memorija kapaciteta 2m+k blokova podeljena na 2m grupa pri emu veliina grupe odgovara veliini memorije DATA i iznosi 2k blokova. Ukoliko se uzme da je dimenzija bloka 2l rei, tada generisana adresa ima sledeu strukturu: najniih l bita odreuju adresu rei unutar bloka, srednjih k odreuju broj bloka unutar grupe i najviih m bita odreuju broj grupe u operativnoj memoriji kojoj pripada blok. U ovoj tehnici svaki blok operativne memorije ima fiksno definisan ulaz u ke memoriji u koji se smeta prilikom dovlaenja iz operativne u ke memoriju. Tako se i-ti blok iz bilo koje od 2m grupa operativne memorije prilikom dovlaenja moe da smesti jedino u iti ulaz memorije DATA. Poto se u i-tom ulazu memorije DATA moe da nae i-ti blok iz bilo koje od 2m grupa operativne memorije, u i-tom ulazu memorije TAG se uva broj grupe kojoj pripada dati blok. S obzirom da u operativnoj memoriji ima 2m grupa, irina memorijske rei memorije TAG je m bita. Pri generisanju zahteva za itanje od strane procesora srednjih k bita generisane adrese odreuju ulaz u memorijama TAG i DATA. Sadraj adresirane lokacije memorije TAG poredi se sa najviih m bita generisane adrese da bi se utvrdilo da li postoji saglasnost ili ne. Ukoliko postoji saglasnost, sa srednjih k i najniih l bita generisane adrese adresira se re memorije DATA i obavlja itanje. Ako saglasnost ne postoji, najpre se ceo blok iz ulaza memorije DATA koji je odreen sa srednjih k bita generisane adrese prebacuje u operativnu memoriju. Broj grupe operativne memorije u koju se blok upisuje odreen je sa m bita. Pri generisanju zahteva za itanje od strane procesora srednjih k bita generisane adrese odreuju ulaz u memorijama TAG i DATA. Sadraj adresirane lokacije memorije TAG poredi se sa najviih m bita generisane adrese da bi se utvrdilo da li postoji saglasnost ili ne. Ukoliko postoji saglasnost, sa srednjih k i najniih l bita generisane adrese adresira se re memorije DATA i obavlja itanje. Ako saglasnost ne postoji, najpre se ceo blok iz ulaza memorije DATA koji je odreen sa srednjih k bita generisane adrese prebacuje u operativnu

memoriju. Broj grupe operativne memorije u koju se blok upisuje odreen je sa m bita6

oitanih iz memorije TAG i to sa ulaza odreenog sa srednjih k bita generisane adrese. Broj bloka unutar date grupe operativne memorije odreen je sa srednjih k bita generisane adrese. Potom se ceo blok u kome se nalazi adresirani sadraj dovlai iz operativne memorije i smeta u ulaz memorije DATA koji je odreen sa srednjih k bita generisane adrese. Takoe se broj grupe kojoj dati blok pripada, odreen sa najviih m bita generisane adrese, upisuje u memoriju TAG i to u ulaz odreen sa srednjih k bita generisane adrese. Potom se na ve opisani nain vri provera da li postoji saglasnost, utvruje da postoji, i realizuje itanje. Pri generisanju zahteva za upis od strane procesora na isti nain se ispituje saglasnost sa sadrajem ke memorije kao u sluaju operacije itanja. Ukoliko postoji saglasnost, sa srednjih k i najniih l bita generisane adrese adresira se re memorije DATA i nakon toga vri se upis. Ako saglasnost ne postoji, na identian nain kao i za operaciju itanja se najpre blok iz ulaza ke memorije odreenog sa srednjih k bita generisane adrese prebacuje u operativnu memoriju, a zatim u isti ulaz ke memorije dovlai novi blok iz operativne memorije. Potom se, ponovo, na ve opisani nain vri provera da li postoji saglasnost, utvruje da postoji, i realizuje upis. Opisani mehanizam itanja iz i upisa u ke memoriju je osnovni mehanizam rada sa ke memorijom. U praktinim realizacijama postoji vie varijanti ovog osnovnog mehanizma. Prednost tehnike direktnog preslikavanja je da se za realizaciju ke memorije koriste standardne RAM memorije i da je algoritam zamene trivijalan. Nedostatak je da se u isti blok ke memorije preslikava 2m blokova operativne memorije, tako da dolazi do zamene starog bloka novim i onda kada nije popunjena cela ke memorija.

ASOCIJATIVNO PRESLIKAVANJE:Kod tehnike asocijativnog preslikavanja ke memorija se sastoji iz sledeih delova:

memorije DATA i memorije TAG. U memoriju DATA se smetaju blokovi preneti iz operativne u ke memoriju. U memoriju TAG se smetaju brojevi blokova, koji se nazivaju TAG-ovi, za blokve prenete iz operativne u ke memoriju. Za realizaciju memorija DATA i TAG koriste se RAM i asocijativna memorija, respektivno. Ukoliko u memoriju DATA moe da se smesti 2n blokova kae se da ke memorija ima 2n ulaza. Za svaki ulaz memorije DATA postoji odgovarajui ulaz memorije TAG. U sluaju ke memorije realizovane u tehnici asocijativnog preslikavanja zamilja se kao da je operativna memorija podeljena na 2h blokova. Ukoliko se uzme da je dimenzija bloka 2l rei tada generisana adresa ima sledeu strukturu: niih l bita odreuju adresu rei unutar bloka i viih h bita odreuju broj bloka u operativnoj memoriji. U ovoj tehnici preslikavanja bilo koji blok operativne memorije moe da se smesti u bilo koji ulaz ke memorije prilikom dovlaenja iz operativne u ke memoriju. Poto se u i-tom ulazu memorije DATA moe da nae bilo koji od 2h blokova operativne memorije, u i-tom ulazu memorije TAG se uva broj bloka operativne memorije kome pripada dati blok. S obzirom da u operativnoj memoriji ima 2h blokova, irina memorijske rei memorije TAG je h bita. Pri generisanju zahteva za itanje od strane procesora viih h bita generisane adrese vodi se na ulaz memorije TAG da bi se, njihovim istovremenim uporeivanjem sa sadrajima svih 2n ulaza memorije TAG, utvrdilo da li postoji saglasnost sa sadrajem nekog ulaza ili ne. Za svaki od 2n ulaza memorije TAG postoji poseban signal do koji svojom aktivnom vrednou odreuje da je na datom ulazu otkrivena saglasnost. Utvrena saglasnost na i-tom ulazu memorije TAG znai da se adresirana re nalazi u bloku u i-tom ulazu memorije DATA. Binarna vrednost broja ulaza u kome je otkrivena saglasnost je odreena sa n bita sa izlaza kodera na osnovu signala do . Signal saglasnosti HIT, koji se dobija sa izlaza kodera W, ima aktivnu vrednost ukoliko jedan od signala do ima aktivnu

vrednost. Ukoliko postoji saglasnost, sa n bita sa izlaza kodera i l bita generisane adrese adresira se re memorije DATA i obavlja itanje. Ako saglasnost ne postoji, na osnovu odabranog algoritma zamene, odreuje se ulaz ke memorije za zamenu. Najpre se ceo blok iz odabranog ulaza memorije DATA prebacuje u operativnu memoriju. Broj bloka operativne memorije u koji se blok upisuje odreen je sa h bita oitanih iz memorije TAG i to sa ulaza odreenog za zamenu. Potom se ceo blok u kome se nalazi adresirani sadraj dovlai iz operativne memorije i smeta u ulaz memorije DATA koji je odreen za zamenu. Takoe se, broj bloka operativne memorije, odreen sa najviih h bita generisane adrese, upisuje u memoriju TAG i to u ulaz odreen za zamenu. Pri generisanju zahteva za upis od strane procesora na isti nain se ispituje saglasnost sa sadrajem ke memorije kao u sluaju operacije itanja. Ukoliko postoji saglasnost, sa n bita sa izlaza kodera i l bita generisane adrese, adresira se re memorije DATA i obavlja upis. Ako saglasnost ne postoji, na identian nain kao i za operaciju itanja se, najpre, blok ulaza ke memorije odreenog za zamenu prebacuje u operativnu memoriju, a zatim u isti ulaz ke memorije dovlai novi blok iz operativne memorije. Potom se, ponovo, na ve opisani nain vri provera da li postoji saglasnost, utvruje da postoji saglasnost i realizuje upis. Opisani mehanizam itanja iz i upisa u ke memoriju je osnovni mehanizam rada sa ke memorijom. U praktinim realizacijama postoji vie varijanti ovog osnovnog mehanizma. Prednost ove tehnike je pre svega u boljem popunjavanju ke memorije jer bilo koji blok operativne memorije moe da se smesti u bilo koji ulaz ke memorije. Nedostatak je u potrebi da se implementira neki od algoritama zamene i visoka cena asocijativne memorije koja se koristi u realizaciji memorije TAG.

SET-ASOCIJATIVNO PRESLIKAVANJETehnika set-asocijativnog preslikavanja predstavlja kombinaciju prethodne dve tehnike

preslikavanja. Moe se uzeti da je set-asocijativno preslikavanje dobijeno prostom podelom ke memorije na dve ili vie identinih manjih ke memorija. Njihov broj je 2b, gde je b prirodan broj, i svaka od njih je realizovana tehnikom direktnog preslikavanja. Operativna memorija se sada moe podeliti na vie grupa tako da broj blokova u grupi odgovara broju blokova jedne manje ke memorije. Kao i u tehnici direktnog preslikavanja na osnovu broja bloka u grupi se utvruje u koji ulaz manje ke memorije se dati blok preslikava. Poto ovde ima 2b manjih ke memorija, taj blok moe da se preslika u bilo koji od njih, jedino e broj bloka u toj manjoj ke memoriji odgovarati broju bloka u grupi operativne memorije. Time je stvoreno onoliko setova ke memorije koliko ima blokova u grupi operativne memorije, sa onoliko blokova po setu ke memorije koliko ima manjih ke memorija. Na nivou seta preslikavanje je direktno, jer je brojem bloka u grupi operativne memorije jednoznano odreen set u koji se dati blok preslikava. Unutar seta preslikavanje je asocijativno, jer se unutar seta dati blok operativne memorije moe smestiti u bilo koji od blokova seta. Kod ove tehnike preslikavanja ke memorija se sastoji iz 2b manjih ke memorija i to ke memorije blokova 0 u kojoj se za sve setove uvaju samo blokovi 0, ke memorije blokova 1 u kojoj se za sve setove uvaju samo blokovi 1 i tako redom do ke memorije blokova (2b 1) u kojoj se za sve setove uvaju samo blokovi (2b 1). Ke memorija se sastoji od sledeih delova : memorija DATAi i memorija TAGi. pri emu je i = 0, 1, , 2b 1. U bilo koju memoriju DATAi, i = 0, 1, , 2b 1, se smetaju blokovi preneti iz operativne u ke memoriju. U odgovarajuu memoriju TAGi, i = 0, 1, , 2b 1, se smetaju brojevi grupa blokova prenetih iz operativne u ke memoriju. Za realizaciju memorija DATAi i TAGi, i = 0, 1, , 2b 1 , koristi se RAM memorija. Ukoliko u memoriju DATAi, i = 0, 1, , 2b 1, moe da se smesti 2kb blokova operativne memorije kae se da ke memorija ima 2kb

setova. Za svaki set postoji poseban ulaz u svakoj od memorija DATAi i TAG.i, i = 0, 1, , 2b 1. Memorije DATAi i TAG.i, i = 0, 1, , 2b 1 obrazuju memorije DATA i TAG ke memorije sa set-asocijativnim preslikavanjem. U sluaju ke memorije sa 2kb setova realizovane u tehnici set-asocijativnog preslikavanja zamilja se kao da je operativna memorija kapaciteta 2m+k blokova podeljena na 2m+b grupa pri emu veliina grupe odgovara veliini jedne manje memorije DATAi, i = 0, 1, , 2b 1, i iznosi 2kb blokova. Ukoliko se uzme da je dimenzija bloka 2l rei, tada generisana adresa ima sledeu strukturu: najniih l bita odreuju adresu rei unutar bloka, srednjih (k b) odreuju broj bloka unutar grupe i broj seta u ke memoriji i najviih (m + b) bita odreuju broj grupe u operativnoj memoriji kojoj pripada blok. U ovoj tehnici svaki blok operativne memorije ima fiksno definisan set u ke memoriji u koji se smeta prilikom dovlaenja iz operativne u ke memoriju. Tako se j-ti blok iz bilo koje od 2m+b grupa operativne memorije prilikom dovlaenja moe da smesti jedino u j-ti set ke memorije. Poto se u bilo kom od 2b blokova j-tog seta moe da nae j-ti blok iz bilo koje od 2m+b grupa operativne memorije, u j-tom ulazu jedne od 2b memorija TAGi, i = 0, 1, , 2b 1, se uva broj grupe kojoj pripada dati j-ti blok. S obzirom da u operativnoj memoriji ima 2m+b grupa, irina memorijske rei memorija TAGi, i = 0, 1, , 2b 1, je (m + b) bita. Totalni kapacitet ke memorije je kao i u sluaju direktnog preslikavanja 2k blokova, ali su sada oni organizovani u 2kb setova sa 2b blokova po setu. Pri generisanju zahteva za itanje od strane procesora srednjih (k b) bita generisane adrese, koji predstavljaju broj seta, odreuju ulaz u svakoj od memorija TAGi i DATAi, i = 0, 1, , 2b 1. Sadraji adresiranih lokacija memorija TAGi, i = 0, 1, , 2b 1, porede se sa najviih (m + b) bita generisane adrese da bi se utvrdilo da li u nekom od 2b blokova datog seta postoji saglasnost ili ne. Ukoliko postoji saglasnost, sa srednjih (k b) i najniih l bita generisane adrese adresira se re memorije DATAi, i = 0, 1, , 2b 1, onog bloka u setu za

koji je otkrivena saglasnost i obavlja itanje. Ako saglasnost ne postoji ni u jednom od 2b blokova datog seta onda se korienjem nekog od algoritama zamene bira jedan od 2b blokova seta za zamenu i prebacuje u operativnu memoriju. Broj grupe operativne memorije u koju se blok upisuje odreen je sa (m + b) bita oitanih iz memorije TAGi, i = 0, 1, , 2b 1, koja odgovara bloku u setu koji je odabran za zamenu i to sa ulaza odreenog sa srednjih (k + b) bita generisane adrese. Broj bloka unutar date grupe operativne memorije odreen je sa srednjih (k b) bita generisane adrese. Potom se ceo blok u kome se nalazi adresirani sadraj dovlai iz operativne memorije i smeta u ulaz memorije DATAi, i = 0, 1, , 2b 1, koja odgovara bloku u setu koji je odabran za zamenu pri emu je broj seta odreen sa srednjih (k b) bita generisane adrese. Takoe se broj grupe kojoj dati blok pripada, odreen sa najviih (m + b) bita generisane adrese, upisuje u memoriju TAGi, i = 0, 1, , 2b 1, koja odgovara bloku u setu koji je odabran za zamenu i to u ulaz odreen sa srednjih (k b) bita generisane adrese. Potom se na ve opisani nain vri provera da li postoji saglasnost, utvruje da postoji, i realizuje itanje. Pri generisanju zahteva za upis od strane procesora na isti nain se ispituje saglasnost sa sadrajem ke memorije kao u sluaju operacije itanja. Ukoliko postoji saglasnost sa srednjih (k b) i najniih l bita generisane adrese, adresira se re memorije DATA i nakon toga vri se upis. Ako saglasnost ne postoji, na identian nain kao i za operaciju itanja se najpre blok iz ulaza ke memorije odreenog sa srednjih (k b) bita generisane adrese koja odgovara bloku u setu koji je odabran za zamenu prebacuje u operativnu memoriju, a zatim u isti ulaz ke memorije dovlai novi blok iz operativne memorije. Potom se, ponovo, na ve opisani nain vri provera da li postoji saglasnost, utvruje da postoji, i realizuje upis. Opisani mehanizam itanja iz i upisa u ke memoriju je osnovni mehanizam rada sa ke memorijom. U praktinim realizacijama postoji vie varijanti ovog osnovnog mehanizma. Set-asocijativno preslikavanje otklanja nedostatke tehnika direktnog i asocijativnog

preslikavanja. Ovde je u odnosu na direktno preslikavanje efikasnije popunjavanje blokova memorije DATA, a u odnosu na asocijativno preslikavanje smanjeno je asocijativno preslikavanje.

DIMENZIJA BLOKAKod projektovanja ke memorije neophodno je paljivo odabrati dimenziju bloka jer ona moe znaajno da utie na performanse ke memorije, a time i celog raunara. Blokovi manjih dimenzija imaju neke prednosti. Vreme neophodno za prenoenje ovakvog bloka iz operativne memorije u ke memoriju i obrnuto je krae od onog potrebnog za vei blok. Ako je raunar projektovan tako da mora da se saeka da se prenese ceo blok pa tek onda da se pristupa datom bloku u ke memoriji, manji blokovi su povoljniji od veih. Sledea prednost blokova manjih dimenzija je u tome to je manja verovatnoa da ovakav blok sadri puno nepotrebnih rei. irina rei u operativnoj memoriji predstavlja donju granicu za dimenziju bloka. Blokovi veih dimenzija takoe imaju odreene prednosti. to je dimenzija bloka vea, tada je za odreeni kapacitet ke memorije, manji broj blokova u ke memoriji, a samim tim manja je i logika neophodna za implementaciju algoritma zamene, kao i ostala neophodna logika, koja je vezana za svaki od blokova. Manji je i deo adrese koji se upisuje u memoriju TAG, a i sama memorija TAG je manjeg kapaciteta. Ako je u pitanju program koji se sekvencijalno izvrava ili se pristupa sekvencijalnoj strukturi podataka, efikasnije je da se to vei deo programa ili date strukture podataka dovue odjednom u ke memoriju, pa tada vea dimenzija bloka predstavlja bolje reenje. Potrebno je primetiti da su sve prednosti nabrojane gore za blokove manjih dimenzija u isto vreme i nedostaci za blokove veih dimenzija i obrnuto.

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 setasocijativnim preslikavanjem algoritmom zamene se za zamenu bira jedan od svih blokova ke memorije sa asocijativnim preslikavanjem i jedan od svih blokova seta, odreenog brojem seta generisane adrese, ke memorije sa set-asocijativnim preslikavanjem. Stoga se algoritam zamene realizuje za celu ke memoriju sa asocijativnim preslikavanjem, a posebno za svaki set ke memorije sa set-asocijativnim preslikavanjem. Pri izboru algoritma zamene treba voditi rauna o dva zahteva. Prvi je da on treba da bude takav da bude minimalna verovatnoa 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, pa je cena hardvera algoritama zamene koji bolje ispunjavaju prvi zahtev via i obrnuto. Kod korienih algoritama zamene ima vie pristupa. Jedan je da se zameni onaj blok kome se najdue vremena nije pristupalo. Takav blok se definie kao LRU (least recently used) blok, a algoritam zamene se naziva LRU algoritam. Drugi pristup je da se zameni blok koji je najranije unet u ke memoriju. Takav blok se definie kao FIFO (first in first out) blok, a algoritam zamene se naziva FIFO algoritam. Hardver za implementaciju FIFO algoritma je dosta jednostavniji od hardvera potrebnog za realizaciju LRU algoritma. Interesantno je da se dosta esto primenjuje i algoritam kojim se sluajno bira blok za zamenu

korienjem jednog od postojeih generatora sluajnih brojeva.

AURIRANJE OPERATIVNE MEMORIJEPri svakom zahtevu za upis modifikuje se sadraj u nekom od blokova u ke memoriji. Zbog tih promena koje nastaju u kopijama blokova operativne memorije koje se nalaze u ke memoriji, potrebno je u nekom trenutku izvriti njihovo auriranje i u operativnoj memoriji. Postoje dva pristupa kojima se obezbeuje da sadraji u operativnoj memoriji budu aurirani, i to: 1. upii skroz, koji se u engleskoj terminologiji naziva write-through ili storethrough i 2. vrati nazad, koji se u engleskoj terminologiji naziva write-back ili copy-back. Kod pristupa upii skroz pri svakom zahtevu za upis upisivanje se istovremeno vri i u ke memoriju i u operativnu memoriju. Time se obezbeuje da sadraj u operativnoj memoriji bude uvek auran. Kod pristupa vrati nazad pri svakom zahtevu za upis upisivanje se vri 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 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, postoji i zahtev za ienje ke memorije (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 upisuivanjem 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.

NEKA RAZMATRANJA U VEZI REALIZACIJE KE MEMORIJEU 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 postaviti bafer koji e prihvatiti ceo blok to bi omoguilo da se odmah pree 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 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.

REALIZACIJA KE MEMORIJAU ovom poglavlju se daju realizacije ke memorija sa direktnim, asocijativnim i setasocijativnim preslikavanjem. U svim realizacijama veliina bloka je 4 bajta. Kod direktnog i set-asocijativnog preslikavanja se koristi vrati nazad, a kod asocijativnog preslikavanja upii skroz tehnika auriranja sadraja operativne memorije. Kod set-asocijativnog preslikavanja blok podataka koji se vraa iz ke memorije u operativnu memoriju se baferuje, a kod asocijativnog preslikavanja bajt podatka koji se upisuje se baferuje. Za zamenu bloka ke memorije se koristi LRU algoritam kod asocijativnog preslikavanja, a FIFO algoritam kod set-asocijativnog preslikavanja.

KE MEMORIJA SA DIREKTNIM PRESLIKAVANJEMKe memorija koja se razmatra realizovana je tehnikom direktnog preslikavanja na nivou bloka veliine 4 bajta. U ovoj tehnici preslikavanja svaki blok operativne memorije ima fiksno definisano mesto u ke memoriji, pa ovde nije potrebno definisati algoritam zamene. Za auriranja operativne memorije uzeta je metoda vrati-nazad. Ke memorija ima 8 ulaza u kojima se uva 8 blokova operativne memorije. S obzirom da je blok veliine 4 bajta, kapacitet dela ke memorije u kome se uva sadraj je 32 bajta, a adresibilna jedinica je jedan bajt. Operativna memorija je kapaciteta 64 Kbajta, a adresibilna jedinica je jedan bajt. Stoga se operativna memorija moe posmatrati kao da je organizovana u 211 grupa, od kojih svaka

sadri 23 blokova veliine 22 bajta. Adresa operativne memorije duine 16 bita moe se podeliti i oznaiti na sledei nain: najviih 11 bitova oznaavaju broj grupe, srednja 3 bita oznaavaju broj bloka i najnia 2 bita oznaavaju adresu bajta u bloku. Ke memorija je deo sistema (slika 4) koji se sastoji iz: procesora CPU, memorije MEM i ke memorije KE. Uzeto je da su sve sekvencijalne mree sistema sinhrone i da ceo sistem radi sinhrono sa zajednikim signalom takta CLK.