Uvođenje keš memorije je bazirano na pretpostavci da ako Vreme izvršavanja instrukcija,a samim tim i programa, direktno zavisi od vremena pristupa operativnoj memoriji. Pristupoperativnoj memoriji se može ubrzati korišćenjem keš memorije koja se ubacuje između 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 značajno veća od cene po bitu operativne memorije, kapacitet keš memorije je daleko manji od kapaciteta operativne memorije. U keš memoriji se čuvaju sadržaji onih lokacija operativne memorije kojima se procesor najčešće obraća. Algoritam izvršavanja instrukcija u računarima sa keš memorijom predviđa da se pri svakom obraćanju procesora operativnoj memoriji najpre izvrši provera da li je dati sadržaj u keš memoriji. Ako jeste, čitanje ili upis se vrši sa keš memorijom. Ako nije, sadržaj 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 verovatnoća da će im se uskoro ponovo pristupiti. Ova pretpostavka je utemeljena na uočenom prostornom i vremenskom lokalitetu programa. Prostorni lokalitet znači da su adrese
koje će se uskoro generisati u neposrednoj blizini adresa koje su upravo generisane. Ovakav način generisanja adresa se javlja kod generisanja adresa elemenata nizova, čiji su elementi u operativnoj memoriji smešteni jedan za drugim, ili kod instrukcija, koje se izvršavaju
sekvencijalno. Vremenski lokalitet znači da se određene adrese, koje prostorno u operativnoj memoriji ne moraju da budu bliske, više puta generišu u određenom vremenskom intervalu. Ovakav način generisanja adresa se javlja kod generisanja adresa skalarnih promenljivih.
Keš memorije je moguće realizovati na više načina. Razlike postoje u tehnici preslikavanja, dimenziji bloka, zameni blokova keš memorije i ažuriranju operativne memorije. Tehnika preslikavanja određuje način vođenja evidencije o tome koji se delovi operativne memorije nalaze u pojedinim delovima keš memorije. Dimenzija bloka određuje
broj reči operativne memorije na nivou kojih se realizuje preslikavanje. Zamena blokova keš memorije određuje ulaz keš memorije u koji treba smestiti blok koji se dovlači iz operativne memorije u slučaju kada je keš memorija popunjena. Ažuriranje operativne memorije
određuje kako se kod operacije upisa obezbeđuje ne samo promena sadržaja u keš, već i u operativnoj memoriji.
1.1.1. TEHNIKE PRESLIKAVANJA
Najčešće se koriste sledeće tri tehnike preslikavanja:
• direktno,
• asocijativno i
• set-asocijativno.
1.1.1.1. DIREKTNO PRESLIKAVANJE
Kod tehnike direktnog preslikavanja keš memorija se sastoji iz sledećih delova (slika 1):
• memorije DATA i
• memorije TAG.
U memoriju DATA se smeštaju blokovi preneti iz operativne u keš memoriju. U memoriju TAG se smeštaju 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 može da se smesti 2k blokova operativne memorije kaže se da keš memorija ima 2k ulaza. Za svaki ulaz memorije DATA postoji odgovarajući ulaz memorije TAG. U slučaju keš memorije sa 2k ulaza realizovane u tehnici direktnog preslikavanja zamišlja
se kao da je operativna memorija kapaciteta 2m+k blokova podeljena na 2m grupa pri čemu veličina grupe odgovara veličini memorije DATA i iznosi 2k blokova. Ukoliko se uzme da je dimenzija bloka 2l reči, tada generisana adresa ima sledeću strukturu:
• najnižih l bita određuju adresu reči unutar bloka,
• srednjih k određuju broj bloka unutar grupe i
• najviših m bita određuju 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 smešta prilikom dovlačenja iz operativne u keš memoriju. Tako se i-ti blok iz bilo koje od 2m grupa operativne memorije prilikom dovlačenja može da smesti jedino u i-ti ulaz memorije DATA. Pošto se u i-tom ulazu memorije DATA može da nađe 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 reči memorije TAG je m bita.
Pri generisanju zahteva za čitanje od strane procesora srednjih k bita generisane adrese određuju ulaz u memorijama TAG i DATA. Sadržaj adresirane lokacije memorije TAG poredi se sa najviših m bita generisane adrese da bi se utvrdilo da li postoji saglasnost ili ne.
Ukoliko postoji saglasnost, sa srednjih k i najnižih 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 određen sa srednjih k bita generisane adrese prebacuje u operativnu memoriju. Broj grupe operativne memorije u koju se blok upisuje određen je sa m bita očitanih iz memorije TAG i to sa ulaza određenog sa srednjih k bita generisane adrese. Broj bloka unutar date grupe operativne memorije određen je sa srednjih k bita generisane adrese.
Potom se ceo blok u kome se nalazi adresirani sadržaj dovlači iz operativne memorije i smešta u ulaz memorije DATA koji je određen sa srednjih k bita generisane adrese. Takođe se broj
grupe kojoj dati blok pripada, određen sa najviših m bita generisane adrese, upisuje u memoriju TAG i to u ulaz određen sa srednjih k bita generisane adrese. Potom se na već opisani način vrši provera da li postoji saglasnost, utvrđuje da postoji, i realizuje čitanje.
Pri generisanju zahteva za upis od strane procesora na isti način se ispituje saglasnost sa sadržajem keš memorije kao u slučaju operacije čitanja. Ukoliko postoji saglasnost, sa srednjih k i najnižih l bita generisane adrese adresira se reč memorije DATA i nakon toga vrši
se upis. Ako saglasnost ne postoji, na identičan način kao i za operaciju čitanja se najpre blok iz ulaza keš memorije određenog sa srednjih k bita generisane adrese prebacuje u operativnu memoriju, a zatim u isti ulaz keš memorije dovlači novi blok iz operativne memorije. Potom
se, ponovo, na već opisani način vrši provera da li postoji saglasnost, utvrđuje da postoji, i realizuje upis.
Opisani mehanizam čitanja iz i upisa u keš memoriju je osnovni mehanizam rada sa keš memorijom. U praktičnim realizacijama postoji više 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.
Use google...
|