You are on page 1of 18

4.

Memorija

ta emo uiti
Osnovni pojmovi
Hijerarhijski sistem memorija
Poluprovodnike memorije
Postojane memorije
Ke memorije
Ispravljanje greaka

Osnovni pojmovi
Naziv memorija koristimo za specijalizovani hardver koji obezbeuje pamenje informacija u
raunarskom sistemu. Taj hardver sadri dve osnovne komponente - memorijski medijum i upravljaki
sistem memorije. Memorijski medijum slui za upis podataka koji e kasnije, po potrebi, biti itani.
Dakle, nad memorijom se vre dve osnovne operacije: upis i itanje podataka. Upravljaki sistem
memorije definie vrstu pristupa - za upis ili itanje, pronalazi lokaciju kojoj se pristupa i omoguava
prenoenje podataka izmeu magistrale podataka i izabrane memorijske lokacije.
Znaenje pojma lokacija zavisi od toga na koju vrstu memorije se odnosi unutranju ili
spoljanju. Unutranja memorija se esto izjednaava sa glavnom (operativnom) memorijom, ali i
procesorski registri, sopstvena memorija upravljake jedinice i ke memorija takoe spadaju u
unutranju memoriju. Spoljanje memorije kao to su disk i traka slue za skladitenje podataka, a
procesor im pristupa preko U/I kontrolera.
Re je prirodna jedinica organizacije glavne memorije. Veliina rei je tipino jednaka broju
bitova koji se koriste da bi se predstavio ceo broj i duina instrukcije, mada ima izuzetaka, S druge
strane, podaci na spoljanjim memorijama organizuju se u skladu sa fizikim karakteristikama
memorijskog medijuma. Na primer, na diskovima se podaci organizuju u sektore.
Definisanje lokacije u memorijskom medijumu moe se ostvariti na osnovu adrese pridruene
lokaciji ili na osnovu njenog sadraja. U prvom sluaju kaemo da imamo adresni pristup, a u drugom
da je to asocijativni pristup. Adresni pristup moe biti direktan, poludirektan i sekvencijalan.
Direktan pristup podrazumeva da se svakoj adresibilnoj jedinici pristupa za isto vreme
nezavisno od njenog mesta u memoriji i karakteristian je za glavnu memoriju. Ova metoda pristupa
esto se naziva sluajni (random) pristup.
Poludirektan pristup podrzumeva da grupe podataka imaju jedinstvenu adresu zasnovanu na
fizikoj lokaciji (npr. sektor na disku). Vreme pristupa zavisi od toga gde se prethodno nalazio
mehanizam za itanje/upisivanje.
Sekvencijalni pristup koristi kod memorija u kojima su grupe podataka organizovane u zapise
koji slede jedan za drugim. Da bi se pronaao odgovarajui zapis mehanizam za itanje/upisivanje
mora da se premeta preko svi zapisa koji prethode traenom, pa se vreme pristupa razliitim zapisima
znaajno razlikuje. Ovakav pristup karakteristian je za jedinice traka.
Asocijativan pristup koristi vrsta memorije sa direktnim pristupom koja omoguava da se
porede eljene lokacije bitova unutar rei kako bi se postigla podudarnost sa odreenim uzorkom i da
se to uradi za sve rei istovremeno. Dakle, re se izvlai na osnovu njenog sadra, a ne na osnovu
njene adrese. Kao i kod memorije sa direktnim pristupom, vreme izvlaenja je konstantno i ne zavisi
od lokacije ili prethodnih uzoraka pristupanja. Ke memorije mogu da koriste asocijativni pristup.
Dinamiku pristupa mehanizam za itanje/upisivanje karakterie parametar koji nazivamo vreme
pristupa. Vreme pristupa za glavnu memoriju je vremenski interval koji protekne od dovoenja signala
za definisanje pristupa do zavretka upisa podatka ako se radi o operaciji upisa, odnosno dobijanja
podataka na magistrali podataka, ako se radi o operaciji itanja. Najkrae vreme izmeu dva uzastopna
pristupa memoriji naziva se memorijski ciklus. Memorijski ciklus obino je neto dui od vremena
pristupa zbog tzv. "mrtvog vremena" neophodnog iz tehnikih razloga. Za memoriju koja nema
direktni pristup, vreme pristupa je ono vreme koje je potrebno da se mehanizam za itanje/upisivanje
pozicionira na eljenu lokaciju. Brzina kojom se podaci prenose u memorijsku jedinicu ili iz nje

- 52 -
naziva se vreme prenosa. Za memoriju sa direktnim pristupom brzina prenosa je 1/(vreme ciklusa), a
za ostale memorije
tn=ta+n/r
gde su:
tn vreme itanja ili upisivanja n bitova
ta srednje vreme pristupa
n broj bitova
r brzina prenosa izraena brojem bitova u sekundi
Pod organizacijom se podrazumeva fiziko ureenje bitova koji obrazuju rei. Kasnije u
ovom poglavlju govoriemo detaljnije o razliitim organizacijama memorije sa direktnim
pristupom.

Lokacija Performansa Metoda pristupa


procesor vreme pristupa direktni (random)
unutranja (glavna) vreme ciklusa ..poludirektni
spoljanja (sekundarna) brzina prenosa ..sekvencijalni
Kapacitet Princip registrovanja asocijativni
veliina rei elektronski Fizike karakteristike
broj rei magnetski nepostojana/trajna
Jedinica prenosa optiki izbrisiva/neizbrisiva
re ..magnetno-optiki Organizacija
..blok

Slika 4.1 Osnovne krakteristike raunarskih memorijskih sistema


Osim vrste pristupa i brzine, meu osnovne karakteristike memorije ubrajamo kapacitet i cenu.
Radi to efikasnije obrade podataka raunaski sistem treba da ima memoriju sa to je mogue veim
kapacitetom, to veom brzinom i to niom cenom. Kako su ovi zahtevi opreni, savremeni
raunarski sistemi opremaju su hijerarhijskim sistemom memorija.

Hijerarhijski sistem memorija


Kako su za efikasan rad centralnog procesora od presudnog znaaja brzina pristupa i kapacitet
memorije, savremeni raunarski sistemi nemaju samo dve vrste memorija - brze operativne i
spoljanje velikog kapaciteta, ve itav hijerarhijski sistem memorija koji ine:
procesorski registri,
ultrabrza ke memorija,
glavna operativna memorija,
hard diskovi i
spoljanje memorije sa izmenjivim medijumima.
Na sledeoj slici prikazan je dijagram hijerarhije memorije u raunarskom sistemu, sa
naznaenim linijama poveanja kapaciteta i brzine kao glavnih karakteristika memorije. Kako se ide
niz hijerarhiju, dogaa se sledee:
smanjije se cena po bitu
poveava se kapacitet
poveava se vreme pristupa
smanjuje se uestalost pristupa memoriji od strane procesora.
Kako bi glavni resurs raunara - centralni procesor, troio to manje vremena na dobijanje
podataka potrebnih za obradu, u njegov sastav obino ulazi grupa od desetak registra opte namene.
Vreme pristupa ovim registrima zavisi od brzine rada procesora i kree se oko 1 nsec.
Centralnom procesoru pridruuje se i veoma brza memorija u koju se smetaju instrukcije i
podaci kojima se procesor u toku rada po nekom programu najee obraa. Ona po brzini odgovara
centralnom procesoru, ali je relativno malog kapaciteta zbog visoke specifine cene. Za nju se koristi
naziv ke memorija (cache - skrivena), jer je programer (i centralni procesor) praktino ne vidi, za
razliku od procesorskih registara o ijem stanju stalno treba da vodi evidenciju. Ke podsistem se
umee izmeu CPU i glavne memorije. On se sastoji od ke kontrolera i brzih memorijskih ipova

- 53 -
(SRAM). Ke podsistem moe biti ugraen u sam CPU (L1 - level 1 chache) ili predstavljati izdvojene
komponente (L2- level 2 cache). Takoe postoje i reenja u kojima je ke kontroler ugraen u CPU, a
brzi memorijski ipovi se nalaze spolja. Interni ke L1 obino ima kapacitet izmeu 4 i 16KB, a
eksterni ke L2 256-1000KB. Eksterni ke ima vreme pristupa oko 10ns, pa moemo rei da je ke
memorija obino do 1000 puta manja od operativne memorije, ali oko 100 puta bra.

desetak, 1 takt (~ 1ns)


4-16KB, 3 takta
256KB-1MB, 20 taktova
MB, 50-70ns

100GB-TB <10ms
neogranieno, 100ms
neogranieno, 10sec

Slika 4.2 Hijerarhija memorije u raunarskom sistemu


Glavna operativna memorija ijim registrima procesor moe direktno da pristupa kod
dananjih personalnih raunara obino ima kapacitet 512 MB ili 1GB (a moe biti i znatno vei, zavisi
od matine ploe) i vreme pristupa oko 50-70 nsec. Ako to uporedimo sa karakteristikama operativnih
memorija skupih i monih raunarskih sistema od pre nekoliko desetina godina, koje su imale
kapacitet od 64 KB i vreme pristupa koje se merilo mikrosekundama, vidimo da su pokazatelji brzina i
kapaciteta koje navodimo uslovni i da e moda ve za koji mesec biti zastareli. Veliki IBM-ovi
raunari poseduju proirenje operativne memorije (expanded storage), vrstu unutranje
poluprovodnike memorije koja je sporija i jeftinija od glavne operativne memorije. Istini za volju, ta
memorija se ne uklapa u hijerahiju jer podatke moe da razmenjuje sa glavnom operativnom
memorijom, ali ne i sa spoljanjim memorijama.
Najbre spoljanje memorije su hard diskovi. Procesor moe da koristi podatke sa hard diska
samo ako su prethodno prebaeni u operativnu memoriju. Ovo prebacivanje vri se u blokovima, pa
kaemo da je pristup podacima na hard disku poludirektan - moe se pristupiti samo bloku, a ne
direktno svakom pojedinanom podatku kao u operativnim memorijama. Podaci su na hard disku
zabeleeni korienjem magnetskog principa registrovanja podataka (za razliku od podataka u
centralnom procesoru, keu i glavnoj operativnoj memoriji kod kojih se koristi elektronski princip) pa
je vreme pristupa znatno vee i meri se u ms. Kapacitet hard diska danas se meri stotinama GB i TB, a
vreme pristupa manje je od 10ms.
Spoljanje memorije sa izmenjivim medijumima imaju praktino neogranien kapacitet. U
zavisnosti od principa registrovanja informacija, korienog interfejsa i karakteristika samog ureaja
vreme pristupa kree se od stotinak ms (kod CD ROM ureaja) do destak sekundi (kod jedinica
magnetskih traka).
Kapacitet operativne memorije prividno se poveava korienjem mehanizma koji se naziva
virtualna memorija. Iluzija znatno veeg kapaciteta operativne memorije nego to on realno jeste
postie se organizacijom adresnog prostora operativne memorije i hard diska kao jedne celine -
virtualnog adresnog prostor. Svaka virtualna adresa identifikuje jednu memorijsku lokaciju koja moe
biti u operativnoj ili na spoljanjoj memoriji. Ako program zahteva pristup podatku ija virtualna
adresa ukazuje na neku lokaciju u operativnoj memoriji, pristup se obavlja bez problema. Meutim,
ako se podatak nalazi na nekoj od spoljanjih memorija, mora se prvo preneti u operativnu memoriju,
pa se tek onda moe koristiti. Ako se podatak nalazi na hard disku, onda virtualnoj logikoj adresi
odgovara fizika adresa ije su komponenete redni broj povrine, cilindra i sektora diska. Prenoenje
informacija sa spoljanje u operativnu memoriju obavlja operativni sistem, a koliko e ovi transferi
koji su nevidljivi za korisnika trajati zavisi od nivoa hardverske podrke. Za operativni sistem
prenoenje informacija u operativnu memoriju na zahtev nije jednostavan zadatak, naroito ako je

- 54 -
operativna memorija ve popunjena. Na osnovu evidencije koju vodi, mora da utvrdi koji blok
informacija iz operativne memorije moe da izbaci kako bi na njegovo mesto uitao potrebne
informacije sa diska. Poto donese odluku, ukoliko je u bloku koji izbacuje bilo izmena, treba da ih
prepie na disk, a zatim uita sa diska u operativnu memoriju traene podatke, aurira evidenciju o
raspodeli memorijskog prostora i na kraju - vrati upravljanje prekinutom programu koji je traio
podatak sa diska. Nainima za realizaciju virtualne memorije detaljnije emo se baviti u delu knjige
posveenom operativnim sistemima.

Obim bloka
Memorijski Tipino srednje Kapacitet Ko upravlja prenosom
Propusna mo prebaenog sa
medijum vreme pristupa medijuma podataka
vieg na nii nivo
Re obima 2B ili Upravljaka jedinica
Registri CPU-a 200ps-1ns 0.5-60GB/s 256B-1kB
4B CPU-a
L1 ke memorija 5-10ns 0.8-1GB/s 16-64kB Linija 4-32B Primarni ke kontroler
Sekundarni ke
L2 ke memorija 15-40ns 0.1-0.3GB/s 128kB-1GB Linije 4-128B
kontroler
MMU (upravljaka
Glavna memorija 50-100ns 20-80MB/s 256MB-1GB Stranice 4kB
jedinica memorije)
Slotovi proirenja
75-500ns 800kB-30MB/s 1-10GB Stranice 4kB MMU
glavne memorije
Disk ke 60-500ns 900kB-30MB/s 1-10MB Blokovi 4kB Kontroler ureaja
Hard disk 5-50ms 1200-6000kB/s 100-500GB Fajlovi obima MB Kontroler ureaja
Flopi disk 95ms 100-200kB/s 1.44MB Fajlovi obima MB Kontroler ureaja
CD-ROM 100-500ms 500-4000kB/s 600MB-20GB Fajlovi obima MB Kontroler ureaja
Trake (cartridge) 0.5s pa navie 2000kB/s 1-10TB Fajlovi obima MB Kontroler ureaja

Slika 4.3- Performanse memorije i kapacitet memorisanja.

Poluprovodnike memorije
Osnovni element poluprovodnike memorije je memorijska elija. Memorijske elije imaju
sledee osobine:
- mogu da se nau u dva stabilna stanja
- omoguavaju da se u njih upisuje (barem jednom)
- omoguavaju da se iz njih ita.
elija najee ima tri terminala
koji mogu da nose elektrini signal.
Upravljaki terminal definie u kom
cilju se pristupa eliji za upis ili
itanje, terminal za izbor omoguava
adresiranje elije kojoj se pristupa, trei
terminal u sluaju upisa obezbeuje
elektrini signal kojim se stanje elije
postavlja na 1 ili 0, dok se u sluaju
itanja koristi za izdavanje stanja elije.
Slika 4.4 Rad memorijske elije
Savremeni raunari raspolau sa dve vrste poluprovodnikih operativnih memorija koje se
izrauju u visokointegrisanoj tehnologiji. To su RAM (Random Access Memory) memorija koja se
koristi za itanje i za upis informacija i postojana ROM (Read Only Memory) memorija iz koje se
moe jedino itati.
Memorijski elementi kod poluprovodnikih memorije mogu biti bipolarni ili MOS tranzistori.
Memorije bipolarnog tipa imaju krae vreme pristupa od memorija MOS tipa, ali su MOS memorije
znatno manjih dimenzija i jeftinije, pa imaju veu primenu. U oba sluaja gubi se sadraj pri
iskljuivanju jednosmernog izvora napajanja. Da bi se bar delimino kompenzovalo ovo loe svojstvo,

- 55 -
snabdevaju se rezervnim izvorima napajanja. U tu svrhu mogu da poslue baterije koje se u toku rada
dopunjavaju iz ispravljaa, pa je onda od znaaja da je potronja u radu to manja. Po ovom
kriterijumu najbolji su ipovi izvedini u CMOS tehnologiji poznatoj po tome to zahteva izvanredno
malu snagu napajanja.
RAM memorije se izvode u dve osnovne varijante: kao statike i kao dinamike. Kod
dinamike RAM memorije pamenje binarnog podatka zasniva se na postojanju elektrinog naboja na
kondenzatoru. To nije neki posebno ugraen kondenzator ve je to kondenzator koji postoji izmeu
upravljake elektrode i podloge NMOS tranzistora. Prema tome nije potreban nikakav posebni
postupak za dobijanje tog kondenzatora, a kondenzator i tranzistor ine celinu za pamenje podatka.
Dakle, postojanje naboja na kondenzatoru moe znaiti logiku nulu, a nepostojanje logiku jedinicu.
No kako se naboj na kondenzatoru postepeno gubi, zapisani podatak se ne moe trajno pamtiti, ve
samo krae vreme. (Tanije, ne moe se trajno pamtiti podatak predstavljen postojanjem naboja, a
podatak koji se predstavalja nepostojanjem naboja moe se trajno pamtiti.) Zbog toga je potrebno
periodino osveavanje naboja na kondenzatorima za pamenje, kako se podaci ne bi izgubili, to je i
razlog da se te memorije nazivaju dinamikim memorijama. Postupak osveavanja moe se ostvariti
na vie naina, zavisno od vrste sistema koji je u pitanju, pomou specijalizovanog hardvera u
upravljakom sistemu memorije. Prema tome, moe se rei da dinamike memorije imaju dva
nedostatka. Jedan je potreba za hardverom koji vri osveavanje, a drugi to se osveavanje mora
obavljati u odreenim vremenskim razmacima - svakih nekoliko ms, pa moe nastati konflikt izmeu
trajne potrebe za raspoloivou memorije za upotrebu i potrebe za osveavanjem. No s druge strane,
elije dinamikih memorija zahtevaju znatno manje elementa nego statike, pa se na ipu iste veliine
i tehnologije moe zapisivati mnogo vie podataka.

Slika 4.5 Tipine strukture memorijskih elija


Statike RAM memorije ne zahtevaju osveavanje podataka, jer su memorijske elije
bistabilnog karaktera i sline po reenju klasinom flip-flopu. Element pamenja binarnog podatka u
statikoj memoriji su dva unakrsno spojena invertora (od kojih se svaki sastoji od po 2 ili 5 tranzistora
u zavisnosti od tehnologije). Kad jedan od njih provodi, on dri zatvorenim drugi. To moe biti stanje
1. Kada provodi onaj drugi, on dri zatvorenim prvi pa je to stanje 0. Ta stanja su stabilna, tj. mogu se
promeniti samo nekom spoljanjom intervencijom. Tranzistori mogu biti izvedeni u bipolarnoj
(najee TTL) ili MOS tehnologiji. Statike memorije za svoj rad trae veu energiju nego
dinamike. Meutim, njima je potrebno manje dodatnih kola i ne zahtevaju posebnu sinhronizaciju u
ciklusu osveavanja kod normalnih procesorskih operacija pri upisu ili itanju podataka. Veoma dobri
SRAM ipovi izraeni u ECL ili BiCmos tehnologiji imaju vreme pristupa manje od 10ns, dok one
izraene u CMOS tehnologiji imaju vreme pristupa izmeu 12 i 150ns.

Napredne organizacije DRAM ipova


Osim osnovnog naina rada DRAM-a koji podrazumeva da se za svaki pristup zadaju adresa
reda i adresa kolone, postoje i drugi naini zadavanja adresa koji redukuju vreme pristupa. Jedan od

- 56 -
njih je page mod - stranienje, koji podravaju svi moderni DRAM ipovi, a podrazumeva da se u
svakom pristupu ne zadaju i adresa reda i adresa kolone, jer se u uzastopnim pristupima obino itaju
susedni podaci koji imaju istu adresu reda (pripadaju istoj stranici). Adresa reda zadaje se samo kada
treba prei na itanje podataka iz neke druge stranice.
Drugi esto korien metod za ubrzavanje rada DRAM ipova je preplitanje (interlive)
memorije. Zasniva se na podeli DRAM-a u vie sekcija, koje se nazivaju banke (banks), snabdevenih
zasebnim upravljakim sistemima kojima procesor naizmenino pristupa. Objasniemo ovo na
primeru Pentiuma. Kako Pentium prima 64 bita preko magistrale podataka, memorije takoe moraju
biti organizovane tako da daju 64 bita. Memorija se deli u dve banke od kojih je svaka 64 bita iroka.
Svi podaci sa parnim quad word adresama (kao 0000h, 0010h, 0020h,...) smetaju se banku 0, a podaci
sa neparnim quad word adresama (0008h, 0018h, 0028h,...) u banku 1. Obe banke adresiraju se
alternativno za vreme sekvencijalnog i burst procesorovog pristupa memoriji. To znai da se vreme
adresiranja jedne banke preklapa sa vremenom pristupa podacima u drugoj banci. Na taj nain
udvostruuje se brzina prenosa podataka. U DRAM memorijama sa stranienjem mogu se
kombinovati stranienje i preplitanje.
Na tritu se pojavilo vie reenja za ubrzavanje rada dinamikih RAM memorija, a mi emo se
zadrati na SDRAM , DDR SDRAM i RDRAM memorijama.
SDRAM ili Sinhroni DRAM za razliku od tradicionalne DRAM memorije koja je asinhrona,
radi na istom signalu takta kao CPU. To znai da je spreman za prenos podataka kada CPU to i
oekuje. S drugim tipovima memorije CPU mora da odvoji vie vremena da bi bio siguran da su
ipovi preneli podatke. Kod sinhronog pristupa DRAM memorija pomera podatke unutra i spolja pod
kontrolom sistemskog generatora takta. Procesor ili neki drugi gospodar (master) magistrale izdaje
instrukcije i adrese koje prihvata DRAM memorija i odgovara posle postavljenog broja ciklusa
generatora takta. Zahvaljujui tome procesor u meuvremenu dok SDRAM obrauje zahtev moe da
obavlja druge zadatke.
DDR SDRAM je SDRAM memorija sa dvostrukom brzinom podataka koja moe da alje
podatke dva puta po ciklusu takta - i na ulaznoj i na silaznoj ivici signala. Nastala je od SGRAM
memorije - grafikog unapreenje SDRAM interfejsa, ime su ubrzane grafike operacije kao na
primer transfer bloka bitova. Ovaj tip memorije poeo je da radi na 66 MHZ ili bre i omoguavao
etvorostruko vee brzine od konvencionalnog DRAM-a. Tako je 2000. godine radio na 266MHz, a
2003. na 500MHz, a 2005. na 800 MHz. Njegova unapreenja DDR2 SDRAM koje se pojavilo 2006.
godine i DDR3 SDRAM 2007. rade i bre (1033MHz).DDR2 je druga generacija SDRAM tehnologije
koja omoguava dva pristupa po ciklusu takta, zahteva manju snagu napajanja i manje se zagreva.
DDR3 SDRAM koristi se za vrhunske dual i quad core procesore za servere i mobilne korisnike.
RDRAM (Rambus RAM) je memorija koja se najvie razlikuje od ostalih tipova i zahteva
potpuno novu arhitekturu memorije. ipovi RDRAM memorije su vertikalna pakovanja, sa svim
pinovima na jednoj strani. Ona se sa CPU-om povezuje preko posebne magistrale koja je veoma uska i
ne sme biti dugaka (do12cm). RDRAM magistrala isporuuje adresne i upravljake informacije
koristei asinhroni protokol orijentisan na blokove. Direct Rambus Channel koristi 16-bitni bus i radi
na 1.66GBps (800*2).

Organizacija SRAM memorije


SRAM ipovi ne multipleksiraju adrese redova i kolona, ve imaju pinove za sve njih, pa je
pakovanje mnogo vee nego kod DRAM ipova. Tek interno, SRAM deli adrese na adrese redova i
kolona. Nasuprot DRAM-u, nije neophodno zadravanje RAS i CAS signala, jer pod normalnim
uslovima odgovarajue vreme pristupa je uvek jednako vremenu SRAM ciklusa. Napredni DRAM
koncepti, kao stanienje i preplitanje na primer, ne daju realna poboljanja kod SRAM ipova jer oni
ne koriste niti multipleksiranje redova i kolona, niti imaju potrebu da zadravaju RAS. Stoga SRAM
uvek radi u normalnom reimu rada. Kako simultano dobija adrese redova i kolona i ne mora da vri
osveavanje sadraja, memorijski kontroler SRAM ipova je znatno jednostavniji od kontrolera
DRAM-a. S druge strane, zbog jednostavnijih memorijskih elija (svaka memorijska elija u SRAM
memoriji sastoji se od najmanje 4 do 6 tranzistora), u DRAM ipovima se postie aproksimativno 4
puta vea integracija komponenti.
Statike memorije se u CMOS tehnologiji izrauju u 1-bit, 4-bit i 8-bit organizaciji (nKx1,
nKx4 ili nKx8). Najee se koriste ire organizacije, npr. 128Kx8. Sa etiri takva ipa moe se

- 57 -
realizovati velika L2 ke memorija kapaciteta 512KB irine 32 bita. Zavisno od tipa, vreme pristupa se
kree u granicama od 12ns do 150 ns. Bipolarne memorije su po pravilu bre, ali znatno manjeg
kapaciteta, a najbre se izrauju u ECL tehnologiji gde vreme pristupa moe biti manje od 10ns.

Postojane memorije
Kao to znamo, raunar radi pod kontrolom programa operativnog sistema. Dakle, da bi raunar
uopte mogao da radi potrebno je da se operativni sistem uita u operativnu memoriju i da se zatim
jedna po jedna njegova instrukcija prebacuje u centralni procesor koji je analizira i izvrava. Kako se
informacije u operativnoj memoriji pamte samo dok traje napajanje strujom, to je pri svakom
ukljuivanju raunara ranije bilo potrebno uitavanje programa operativnog sistema sa neke od
memorija koje trajno registruju informacije, sa magnetnog diska na primer. To je znailo da korisnik
pre svakog rada sa raunarom mora da zadaje komande za punjenje operativnog sistema. Stoga su
konstruktori nastojali da oslobode korisnike od ovakvih operacija - da naprave memorije koje rade
brzo kao operativne, ali trajno uvaju informacije koje nije potrebno menjati. Rezultat tih nastojanja -
specijalna memorija u koju se jednom unose informacije, a zatim trajno koriste. Kako su takve
memorije u toku rada omoguavale pristup jedino za itanje, dobile su naziv ROM (Read Only
Memory - memorija samo za itanje).
Postojane memorije moemo podeliti u sledee klase:
MASK ROM memorije kod kojih se sadraj unosi jo u procesu proizvodnje,
PROM memorije kod kojih se sadraj unosi naknadno,
EPROM memorije kod kojih se naknadno uneti sadraj moe i izbrisati i
NVRAM memorije koje se vei deo vremena ponaaju kao ROM, ali iji se podaci mogu
promeniti na zahtev.
U MASKROM memorije se sadraj ugrauje u zavrnom procesu izrade na osnovu naruenog
sadraja memorije. Sva integrisana kola su samo nizovi tranzistora koji su icom povezni po zadatoj
emi radi obavljanja nekog odreenog posla. Povezivanje icama se ostvaruje graviranjem ema u
poslednji metalni sloj koji se stavlja na vejfer. Na mestima gde se eli logika nula ne postavlja se
dioda, a na mestima gde se eli logika jedinica postavlja se dioda izmeu adresirane linije i linije
podataka. U optem sluaju, linija podataka e biti na logikom nivou 1 ako je prikljuena diodom na
adresnu liniju, a ako je dioda izostavljena, izlazni logiki nivo e biti 0. Umesto dioda, za definisanje
sadraja ROM memorije mogu se koristiti bipolarni ili MOSFET tranzistori. MASK ROM se obino
koristi kada se trai velika serija, jer je cena izrade metalne maske veoma visoka. Posle izlaska iz
proizvodnje sadraj memorije vie ne moe da se menja.
Za postojane memorije u koje korisnik moe sam trajno da upie informacije koristi se
skraenica PROM (Programmable ROM - programibilni ROM). Kako je suvie skupo praviti maske
za upis informacija po elji korisnika, proizvodi se ROM ip u koji su upisane samo jedinice. Na
primer, diodne PROM memorije se proizvode sa ugraenim svim diodama, a redno sa svakom diodom
je ugraen topljivi osigura. Kada memorija nije programirana, na svim adresama memorije bila bi
proitana jedinica jer su sve di ode prikljuene. Korisnik sam programira memoriju time to izazove
pregorevanje osiguraa na mestima gde eli da sadraj memorije bude 0. Na slian nain unosi se i
sadraj NMOS PROM-a iji se inicijalni sadraj sastoji samo od nula, jer se proizvodi sa ugraenim
svim tranzistorima (iji je drejn redno vezan sa osiguraem). Pregorevanjem osiguraa na mestima gde
se eli logika jedinica programira se sadraj ovakvih PROM-ova. Glavni nedostatak PROM meorija
je to se jedanput upisani sadraj ne moe promeniti. Meutim, promena sadraja je veoma esto
potrebna, naroito prilikom razvoja novih ureaja ili promene naina funkcionisanja ve razvijenih. Za
ove preimen pogodnije je koristiti programabilene ROM memorije sa mogunosu brisanja.
Programabilne memorije sa mogunou brisanja nazivaju se EPROM (Erasable PROM -
izbrisivi PROM). U grupu Programabilnih ROM memorija iji sadraj moe da se izbrie spadaju
EPROM, EEPROM i FLE memorije.
Sve tri vrste kao memorijsku eliju koriste MOS tranzistore sa izolavanim gejtom. Svaki tranzistor u
memorijskoj matrici ovih memorija ima dva gejta. Izolovani gejt je okruen praktino idealnim
izolacionim materijalom (SiO2) i sa kontrolnim neizolovanim gejtom predstavlja kapacitivni razdelnik
napona. Kada na izolovanom gejtu nema elektrinog tovara, napon logike jedinice na neizolovanom
gejtu (3-5V) je dovoljan da se preko kapacitivnog razdelnika C2-C1 formira kanal i tranzistor postaje

- 58 -
provodan. Ako se pak na izlovanom gejtu nagomilaju elektroni, on e biti negativno naelektrisan u
odnosu na kanal i napon logike jedinice na neizlovanom gejtu nee biti dovoljan da oformi kanal, pa
e tranzistor ostati neprovodan i kada je adresna linija na visokom logikom nivou. Memorisanje
logike jedinice obavlja se ubacivanjem elektrona na izolovani gejt, a brisanje sadraja istiskivanjem
elektrona iz izlovanog gejta. EPROM EEPROM i FLE memorije razlikuju se po nainu upisa i
brisanja sadraja iz memorijskih elija.
U EPROM korisnik upisuje informacije pomou specijalnog ureaja, EPROM programatora.
Da bi se na odreenoj lokaciji upisala logika jedinica, eljena linija podataka se prikljuuje na
povieni napon (oko 25V), a napajanje dekoderskih kola se takoe prikljuuje na taj povieni napon,
pa se selektovana adresna linija nalazi na naponu od oko 25V. U tako selektovanom tranzistoru dolazi
do relativno velike struje drejna, pa elektroni dobijaju dovoljno veliko ubrazanje i deo elektrona
nedestruktivno probija izolaciju i akumulira se izolovanom gejtu. Kada se iskljui povieni napon,
izolovani gejt ostaje negativno naelektrisan (na oko -5V), tako da pri radnom naponu (tipino 5V),
napon logike jedinice na neizolovanom gejtu nije dovoljan da formira kanal, odnosno MOS tranzistor
i kada je adresiran ostaje neprovodan - na tom mestu upisana je jedinica ekvivalentno pregorevanju
osiguraa kod PROM memorije. Kvalitet izolacije na izolovanom gejtu obezbeuje da elektronski
tovar ostaje na gejtu vie od 10 godina. Brisanje EPROM-a obavlja se osvetljavanjem memorijske
matrice ultraljubiastom svetlou. Izolacioni materijal SiO2 tada postaje slabo provodan i elektroni
naputaju izolovani gejt, odnosno sadraj svih lokacija ponovo postaje nula. Iz tog razloga EPROM
memorije se izrauju u kuitima sa providnim prozorom od kvarcnog stakla. Brisanje traje 10 do 20
minuta u komori sa ultraljubiastom svetlou.
EEPROM (Electricaly EPROM) je skraenica koja se koristi za programabilne ROM memorije
sa mogunou elektronskog brisanja. U ovakvim memorijama je izolacija izmeu izolovanog gejta i
kanala svedena na 100 nm, tako da je za proboj izolacije dovoljan napon od svega 10 do 12 V.
Brisanje EEPROM-a obavlja se elektrino tako to se na gejt prikljuuje napon suprotnog polariteta od
napona za upis. Da bi na gejt svakog tranzistora u selektovanoj memorijskoj rei mogao da prikljui
bilo pozitivan bilo negativan napon, a da svaka memorijska elija moe da bude i adresirana,
memorijska elija EEPROM-a sadri dva tranzistora, jedan memorijski sa izolavanim gejtom, a drugi
selekcioni. Na gejt memorijskog tranzistra prikljuuje razliit napon u zavisnosti od reima rada. Za
upis podataka prikljuuje se napon +VE (10 do 12V), za itanje se gejt prikljuuje na napon VDD=5V,
a za brisanje sadraja na napon -VE. Zbog postojanja dva tranzistora po memorijskoj eliji i zbog
potrebe da se koriste tri razliita napajanja, gustina pakovanja EEPROM memorija je vie nego
dvostruko manja od gustine pakovanja EPROM memorija. Razlika izmeu EPROM-a i EEPROMA-a
je i u tome to se prilikom brisanja EPROMA-a brie kompletan sadraj memorije, a brisanje
EEPROM-a se obavlja selektivno, prikljuivanjem negativnog napona na gejtove memorijskih
registara i aktiviranjem selekcionih tranzistora samo na izabranoj adresi za vreme od oko 10ms po
rei. Savremene EEPROM memorije imaju na istom integrisanom kolu ugraene pretvarae 5V u -
VE, tako da se upis i brisanje EEPROM-a moe obavljati bez iskljuivanja ureaja u koji je ugraena
EEPROM komponenta.
Posebna vrsta EEPROM memorija je FLE memorija (Flash Memory). Naziv fle je dobila
po brzini zapisa koji je sveden na nekoliko mikrosekundi po bajtu, za razliku od EEPROM-a gde je za
upis potrebno nekoliko sekundi. Pored vee brzine upisa, FLE memorija se odlikuje velikom
gustinom pakovanja. Vea brzina upisa postignuta je tanjim slojem oksida izmeu gejta i podloge i
korienjem submikronske tehnologije. Vea gustina pakovanja je omoguena smanjenjem dimenzija i
korienjem samo jednog tranzistora sa izlovanim gejtom po memorijskoj eliji, za razliku od dva
tranzistora koliko se koristi kod EEPROM-a. Memorijska matrica sadri samo jedan tranzistor po
eliji, pa se ne moe bristi samo eljena memorijska lokacija, ve ceo sektor. Sektori su veliine 4K do
64K u zavisnosti od kapaciteta memorije (0.5MB do 16 MB). Meutim, ipak se ne brie cela
memorija, kao to je to sluaj kod EPROM-a. Dakle, FLE memorija predstavlja kompromis izmeu
EPROM i EEPROM memorija.
Sve vrste meorija koje kao medijum za pamenje koriste tranzistor sa izolovanim gejtom imaju
ogranien broj upisa i brisanja sadraja. Poto se kod svakog upisa i brisanja praktino probija
izolacija, nakon 104 do 105 brisanja memorija prestaje da bude pouzdana.
NVRAM (Non-Volatile RAM) je naziv koji emo koristiti za ipove mogu mogu da imaju bilo
koji sadraj koji se po elji moe izmeniti odnosno RAM sa trajnim pamenjem podataka ili postojani

- 59 -
RAM.
Najjednostavnija koncepcija koja omoguava NVRAM je korienje RAM memorije izraene u
CMOS tehnologiji kojoj je pridruena baterija (battery back-up RAM). Tako RAM moe veoma dugo
da uva informacije kao bilo koji klasini ROM ip. Postojane poluprovodnike RAM memorije mogu
se realizovati korienjem kombinacije SRAM i EEPROM memorija. U normalnom radu memorija se
koristi kao statika RAM memorija, a pre iskljuenja napajanja sadraj RAM memorije se prebacuje u
EEPROM. Za vreme dok nema napajanja sadraj je sauvan u EEPROM memoriji, a nakon ukljuenja
ponovo se prebacuje u RAM.

Ke memorije
Ke memorija ujedinjuje prednosti brzih SRAM i jeftinih DRAM memorija i omoguava
memorijski sistem visokih performansi. Velikoj i realtivno sporoj glavnoj memoriji pridruuje se
manja, bra i skuplja ke memorija u koju se upisuje kopija delova informacija iz glavne memorije
koji se najee koriste, pa se na taj nain ubrzava pristup. Efikasnost mehanizma keiranja je
zasnovana na osobini raunarskih programa koja je nazvana lokalnost referenci. Lokalnost referenci se
manifestuje u dva oblika: vremenskom i prostornom. Vremenska lokalnost podrazumeva da e
nedavno izvrene instrukcije vrlo verovatno biti ponovo izvravane. Prostorna lokalnost znai da e
instrukcije ije su adrese blizu adresa nedavno izvrenih instrukcija vrlo verovatno biti ubrzo
izvravane. Lokalnost referenci se odnosi i na instrukcije i na programe nad kojima se instrukcije
izvravaju. Ideja keiranja ilustrovana je na slici 4.6.
Kada CPU treba da ita podatke, alje
odgovarajue memorijske adrese
upravljakom sistemu memorije. Ako
se tu nalazi ke kontroler, utvrdie da
li se traeni podaci nalaze u SRAM
ipovima. Ovakav dogaaj naziva se
ke pogodak (cache hit). Ke
kontroler tada ita podatke iz bre ke
memorije i predaje ih procesoru. Ovo
se obino obavlja bez wait ciklusa,
odnosno na maksimalnoj brzini
magistrale. Pristup za itanje se
kompletno obavlja pomou kea i
glavna memorija nita o tome ne zna.
Takav dizajn je poznat pod nazivom
Look-trough chache jer procesor
gleda kroz ke.
Slika 4.6 Komunikacija CPU sa DRAM kroz ke memoriju
Kod Look-aside ke sistem je po strani, nadzire put CPU-memorija i proverava sve pristupe
memoriji ne bi li obezbedio bre itanje ako su podaci ve upisani u SRAM.
U suprotnom sluaju, tj. ako su traeni podaci nisu u ke memoriji, kaemo da je nastupio ke
promaaj (chache miss). Tada ke kontroler prvo ita podatke iz glavne memorije, a to zahteva vie
vremena.
Interna organizacija veine ke podsistema omoguava da se u sluaju ke promaaja ne prenosi
samo traeni bajt podataka, ve se prebacuje kompletna ke linija (chache line) iz glavne u ke
memoriju. Za ovu operaciju koristi se termin punjenje ke linije (chache line fill). Izmenjeni podaci
moraju da budu smeteni u glavnu memoriju pre no to novi podaci na ke liniji budu uitani u SRAM
ke. Ke kontroler je inteligentan u izvravanju bus ciklusa za upis i itanje podataka u i iz glavne
memorije. Bajtovi podataka adresirani direktno od CPU se odmah prenose pomou ke kontrolera,
odnosno pre no to se transfer ke linije kompletira.
Ke linije tipino imaju 16 ili 32 bajta duine. Kako se u veini uzastopnih pristupanja memoriji
obino pristupa susednim registrima, postoji velika verovatnoa da e u sledeem obraanju memoriji
procesor traiti upravo podatak koji se nalazi u bloku prenetom ke linijom. Ovakva koncepcija

- 60 -
uveava broj pogodaka i on obino iznosi 95%. To znai da u 95% sluajeva vreme pristupa memoriji
iznosi manje od 10ns. Na slici 6.7 prikazana je struktura sistema ke/glavna memorija. Glavna
memorija se sastoji od 2n adresibilnih rei, od kojih svaka ima jedinstvenu n-bitnu adresu. Moemo
zamisliti da se ta memorija sastoji od blokova
fiksne duine, svaki po k rei. Blokova ima
M=2n/k.
Ke memorija se sastoji od C redova.
Svaki sadri po k rei plus tag od nekoliko
bitova. Broj rei u redu naziva se veliina reda.
Broj redova je mnogo manji od broja blokova u
glavnoj memoriji (CM), pa samo deo sadraja
glavne memorije moe da bude u keu. Ako se
ita re iz bloka memorije, taj blok se prenosi u
jedan od redova kea, a kako ima vie blokova
od redova, pojedinani red ne moe da se
jedinstveno i trajno dodeli odreenom bloku.
Zato svaki red ukljuuje tag identifikator koji
konkretno blok je trenutno uskladiten. Tag je
obino deo adrese glavne memorije.
Slika 4.7 Struktura ke/glavna memorija

Kako rade ke memorije?


Ke memorija obino sadri vei broj blokova u datom trenutku, ali taj broj je mali u odnosu na
ukupan broj blokova u glavnoj memoriji. Veza izmeu blokova u glavnoj memoriji i blokova u keu
data je funkcijom mapiranja. Kada je ke pun, a referie se na memorijsku re (instrukciju ili podatak)
koja nije u keu, tada kontrolni hardver kea mora da odredi koji e blok da bude uklonjen, kako bi se
kreirao prostor za novi blok koji sadri memorijsku re na koju se referie. Skup pravila za donoenje
ove odluke oformljuje algoritam zamene.
Procesor ne mora eksplicitno da zna o postojanju kea. On samo izdaje zahteve za itanje i za
upis koji referiu na lokacije u memoriji. Kontrolna elektronska kola u keu odreuju da li zahtevana
re postoji u keu ili ne. Ako je re u keu, tada se operacije itanja i pisanja obavljaju nad
odgovarajuom lokacijom kea. U tom sluaju, dolo je do pogotka pri itanju ili pogotka pri pisanju,
zavisno od toga koja se operacija izvrava.

ITANJE UPIS
iz kea u ke

Podaci su u keu Podaci nisu u keu Podaci su u keu Podaci nisu u keu

Prenoenje u CPU Load Through: Write Through: Write Allocate:


Prenoenje u CPU Upis podataka Donoenje bloka u
uporedo sa i u ke i u OM ke, pa upis.
punjenjem ke linije ILI ILI
ILI Write Back: Write No-Allocate:
Punjenje ke linije Upis podataka samo Upis samo u OM.
pa zatim u ke. Auriranje
prenoenje u CPU OM tek kada se
linija zamenjuje.

Slika 4.8 Strategije itanja i upisa u ke


Pri pogotku pri itanju, nije potrebno pristupati glavnoj memoriji, ali ako se radilo o pogotku pri
upisivanju, sistem moe da nastavi sa radom na dva naina tako da se lokacija u ke memoriji i

- 61 -
lokacija u glavnoj memoriji istovremeno auriraju ili da se aurira samo lokaciju u keu, a da se
auriranje lokacija te rei u glavnoj memoriji ostavi za kasnije.
Dakle, odgovor na pitanje kako rade ke memorije moemo dati kada se upoznamo sa:
strategijama za popunjavanje kea podacima koje procesor trai za itanje,
algoritmima zamene ke linija kada treba uitati ke liniju, a svi redovi kea su ve popunjeni,
politikama upisivanja u sluaju ke pogotka kada procesor zatrai upis u memoriju.

Strategije za popunjavanje kea


Kako 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 za odreivanje
koji blok glavne memorije trenutno zauzima red kea. Izbor funkcije preslikavanja diktira kako je ke
organizovan. Mogu da se koriste tri tehnike: direktno preslikavanje, asocijativno preslikavanje i set-
asocijativno preslikavanje.
Opisaemo svaki od ova tri algoritma pomou sledeeg primera.
Veliina kea je 64 KB.
Blok je veliine 4B, to znai da je ke organizovan u 64KB/4B = 16K = 214 redova po 4B.
Veliina glavne memorije je16 MB, gde je svaki bajt direktno adresibilan pomou 24-bitne
adrese (224 = 16M). Dakle, glavna memorija sastoji se od 4M blokova od po 4B.

Direktno preslikavanje
Pri direktnom preslika-
vanju svaki blok glavne
memorije moe se uitati
samo u jedan mogui red
kea. Na slici 4.9 ilustro-
van je opti mehanizam.
Preslikavanje se izraava
kao i = j mod m gde je:
i = broj reda kea
j = broj bloka glavne mem.
m = broj redova u keu.

Slika 4.9 Direktno


preslikavanje
Kada se pristupa keu, smatra se da se
svaka adresa glavne memorije sastoji od tri duina adrese = (s+w) bitova,
polja. Najmanje znaajnih w bitova broj adresibilnih jedinica = 2S+W rei ili bajtova,
identifikuju jedinstvenu re unutar bloka veliina bloka = veliina reda = 2W rei ili bajtova,
glavne memorije Ostalih s bitova odreuju broj blokova u glavnoj memoriji = 2S+W / 2W = 2S ,
S
2 blokova glavne memorije. Logika kea broj redova u keu = m = 2r
interpretira tih s bitova kao tag od (sr) veliina taga = (s - r) bitova.
bitova i polje reda od r bitova. Ovo
poslednje polje identifikuje jedan od m = 2r
redova kea.
Blokovi glavne memorije Mogu da se upiu red kea
S
0, m, 2m,..., 2 m 0
1, m+1,..., 2S m+1 1
... ...
m-1, 2m-1, 3m-1,...,2S - 1 m-1
Dakle, upotreba dela adrese kao broja reda obezbeuje jedinstveno preslikavanje svakog bloka
glavne memorije u ke. Kada se blok stvarno uita u njemu dodeljen red, potrebno je da se obelee
podaci kako bi se razlikovali od drugih blokova koji bi mogli da se upiu u taj red. U tu svrhu slui
najznaajnijih s - r bitova.

- 62 -
Na slici 6.9 prikazan je na primer sistema koji koristi direktno preslikavanje.
U tom primeru, m = 16 K = 214 i i = j mod 2 14.

Slika 4.10 Primer sa direktnim preslikavanjem


Tehnika direktnog preslikavanja je jednostavna i jeftina za implementaciju. Njen glavni
nedostatak je to to postoji fiksirana lokacija u keu za svaki dati blok. Dakle, ako se dogodi da
program ponovljivo referencira rei iz dva razliita bloka koji se preslikavaju u isti red, onda e se
blokovi stalno izbacivati iz kea i verovatnoa pogotka e biti mala (to je fenomen koji je poznat kao
uzaludan rad", engl. thrashing).

Asocijativno preslikavanje
Asocijativno preslikavanje prevazilazi nedostatak direktnog preslikavanja dozvoljavajui
svakom memorijskom bloku da se uita u bilo koji red kea. U tom sluaju, upravljaka logika kea
interpretira memorijsku adresu jednostavno 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.
Kod asocijativnog preslikavanja, postoji fleksibilnost u pogledu toga koji blok da se zameni
kada se novi blok uitava u ke. Algoritmi zamene, o kojima se govori kasnije u ovom odeljku,
projektovani su da maksimizuju verovatnou pogotka. Osnovni nedostatak asocijativnog preslikavanja
su sloena elektronska kola koja se zahtevaju da bi se paralelno ispitivali tagovi svih redova kea.

- 63 -
duina adrese
= (s + w) bitova,
broj adresibilnih jedinica
= 2S+W rei ili bajtova,
veliina bloka = veliina reda
= 2W rei ili bajtova
broj blokova u glavnoj memoriji
= 2S+W / 2W = 2S
broj redova u keu = neodreen,
veliina taga = s bitova.

Slika 4.11 Asocijativno preslikavanje


Na slici 4.12 prikazan je na primer koji koristi asocijativno preslikavanje.

Slika 4.12 Primer sa asocijativnim preslikavanjem

Set-asocijativno preslikavanje
Set-asocijativno preslikavanje (asocijativno preslikavanje skupa) je kompromis koji koristi
prednosti i direktnog i asocijativnog pristupa, a smanjuje njihove nedostatke. U tom sluaju, ke je
podeljen na v skupova, od kojih se svaki sastoji od k redova. Odnosi su: m = vk; i = j mod v

- 64 -
gde :je
i = broj skupa kea,
j = broj bloka glavne memorije i
m = broj redova u keu.
To se zove k-tostruko set-asocijativno preslikavanje. Kod set-asocijativnog preslikavanja blok
Bj moe da se preslika u bilo koji od redova skupa i. U tom sluaju, upravljaka logika kea
interpretira memorijsku adresu jednostavno kao tri polja: za tag, skup i re. Pomou d bitova skupa
odreuje se jedan od v = 2d skupova. Jedan od 2S blokova glavne memorije odreuje se pomou s
bitova polja za tag i polja za skup. Kod potpuno asocijativnog preslikavanja, tag u memorijskoj adresi
je prilino dugaak i mora da se poredi sa tagom svakog reda u keu. Kod k-tostrukog set-
asocijativnog preslikavanja, tag u memorijskoj adresi je mnogo manji i poredi se samo sa k tagova
unutar jednog skupa

duina adrese
= (s + w) bitova,
broj adresibilnih jedinica
= 2S+W rei ili bajtova,
veliina bloka = veliina reda
= 2W rei ili bajtova,
broj blokova u glavnoj memoriji
= 2S+W/2W = 2S,
broj redova u skupu = k,
broj skupova = v = 2d,
broj redova u keu = kv = k 2d
veliina taga = (s - d) bitova.

Slika 4.13 Set-asocijativno preslikavanje


Na slici 4.14 prikazan je na primer kako koristi set-asocijativno preslikavanje sa dva reda u svakom
skupu, to se zove dvostruko set-asocijativno preslikavanje.
Skup od dva reda unutar kea identiflkuje se pomou 13-bitnog broja skupa. On takoe daje
broj bloka u glavnoj memoriji, modulo 213. To odreuje preslikavanje blokova u redove. Prema tome,
blokovi 000000, 008000,..., FF8000 glavne memorije preslikavaju se u skup kea 0. Svaki od tih
blokova moe da se uita u bilo koji od dva reda u skupu. Zapazite da nema dva bloka sa istim brojem
taga koji se preslikavaju u isti skup kea. Za operaciju itanja, 13-bitni broj skupa koristi se za
odreivanje koji skup od dva reda treba da se ispita. Ispituju se oba reda u skupu radi podudarnosti sa
brojem taga adrese kojoj treba da se pristupi.
U ekstremnom sluaju, kada je v=m, k=1, tehnika asocijativnog preslikavanja skupa se redukuje
na direktno preslikavanje, a za v=1, k=m, ona se svodi na asocijativno preslikavanje. Upotreba dva

- 65 -
reda po skupu (v=m/2, k=2) je najzastupljenija organizacija set-asocijativnog preslikavanja. Ona
znaajno poboljava verovatnou pogotka u odnosu na direktno preslikavanje. etvorostruko set-
asocijativno preslikavanje (v=m/4, k=4) daje skromno dodatno poboljanje za relativno mali dodatni
troak. Dalje poveanje broja redova po skupu ima malo efekta.

Slika 4.14 Primer sa set-asocijativnim preslikavanjem

Algoritmi zamene
Kada je ke memorija napunjena, a u nju se donosi novi blok, jedan od postojeih blokova mora
da se zameni. Kod direktnog preslikavanja postoji samo jedan mogui red za svaki pojedinani blok,
pa nema nikakvog izbora. Kod asocijativnog i set-asocijativnog preslikavanja, potreban je algoritam za
zamenu. Da bi se postigla velika brzina, takav algoritam mora da se implementira hardverski. Ovde
emo opisti kako red rtvu biraju algoritmi LRU, FIFO, LFU i sluajni izbor. Iste algoritme koriste i
moduli operativnog sistema zadueni za realizaciju virtualne memorije, kada treba izabrati stranicu
koja se iz operativne memorije izbacuje na disk, ali tamo nisu hardverski implementirani.
Najefikasniji je algoritam koji zamenjuje najmanje skoro korien blok (LRU least recently
used). On menja onaj blok u skupu koji je najdue bio u keu, a da nije bio referenciran. Za
asocijativno preslikavanje dvostrukih skupova, to se lako implementira. Svaki red ukljuuje bit USE
(bit upotrebe). Kada se red referencira, njegov USE bit se postavi na 1, a USE bit drugog reda na 0.
Kada blok treba da se uita u skup, iskoristi se onaj red iji je USE bit jednak 0. S obzirom na to da
pretpostavljamo da e se skorije referencirane memorijske lokacije verovatnije opet referencirati,
algoritam LRU bi trebalo da obezbedi najbolju verovatnou pogotka.
Druga mogunost je algoritam prema redosledu dolaska (FIFO - first in first out) koji
zamenjuje onaj blok koji je u skupu proveo najdue vreme. FIFO se lako implementira kao tehnika sa
krunim dodeljivanjem, odnosno cirkularnim baferom.
Algoritam koji zamenjuje najmanje korien blok (LFU - least frequently used) menja onaj blok

- 66 -
u skupu koji je najmanje puta bio referenciran. LFU moe da se implementira pridruivanjem brojaa
svakom redu.
Tehnika koja se ne zasniva na iskorienju je da se na sluajan nain izmeu redova koji su
kandidati izabere red za izbacivanje. Simulacione studije su pokazale da je algoritam sluajne zamene
po performansi samo neznatno slabiji od algoritama zasnovanih na iskorienju.

Politika upisivanja
Najjednostavniji ke koristi strategiju pravovremenog auriranja (write-through) koja je
implementirana u mnoge ke podsisteme. Operacija upisa iz CPU uvek vodi do transfera podataka u
glavnu memoriju, ak i u sluaju ke pogotka. Svi upisi prolaze kroz glavnu memoriju. Razume se,
ovo ukljuuje i upis izmenjenih podataka u ke. Nedostatak ove strategije je to se sve operacije upisa
vre i u sporiju glavnu memoriju. S druge strane, ovakava koncepcija osigurava konzistenciju
podataka u glavnoj memoriji u multiprocesorskim sistemima. Meutim, konzistencija kea u
multiprocesorskim sistemima (svaki procesor ima sopstveni ke) nije sigurna, jer ako je neki drugi
procesor izmeni podatke u glavnoj memoriji, moe se desiti da ke nije o tome informisan.
Strategija odloenog auriranje (Write-back) u sluaju upisa menja jedino podatke u keu, a ne
istovremeno i u glavnoj memoriji. Samo posle eksplicitnog zadavanja odgovarajue komande
promenjena ke linija se kopira u glavnu memoriju. Na Pentiumu se ova komanda moe zadati
softverski, npr. instrukcijom WBINVD (write-back and invalidate cache) ili hardverski - pomou
signala FLUSH (npr. implicitno, kao rezultat ke promaaja kada ke linija mora da se zamenjuje
novom). Nedostatak strategije odloenog auriranja je to razmena ke linija traje due budui da
podaci prvo moraju biti upisani u memoriju, a tek potom se novi podatak moe uitati u ke. Ovaj
nedostatak vie je nego kompenzovan time to prethodni pristupi u cilju upisa nisu morali da se
realizuju kroz sporiju glavnu memoriju.
Ako drugi procesori ili komponente sistema imaju pristup glavnoj memoriji (npr. DMA
kontroler) u glavnoj memoriji moe se promeniti podatak koji je u keu neizmenjen. Stoga ke
kontroler mora konstantno da nadgleda sve pristupe memoriji u cilju upisa, i markira odgovarajui
sadraj SRAM-a kao nekorektan (chache invalidation), ako se podatak u glavnoj memoriji menja.
Ovo se moe desiti i ako sistem raspolae sa vie ke podsistema koji su povezani sa razliitim
procesorima. S druge strane, ako se zatrai prenos podataka iz glavne memorije u neki periferni
ureaj, a ke kontroler koristi write-back strategiju (to podrazumeva da se vre samo upisi podataka iz
CPU u SRAM), ke sadraj mora biti prenet u glavnu memoriju pod posebnim uslovima. Ovaj tip
operacije naziva se cache flush.
Primer. Pretpostavimo da imamo ke sa veliinom reda od 32 bajta i glavnu memoriju koja
zahteva 30 ns da bi se prenela re od 4 bajta. Za svaki red u koji je upisano bar jednom pre nego to
treba da se zameni, koji je prosean broj puta koliko u red mora da se upie pre nego to red mora da
se zameni u keu sa odloenim auriranjem da bi on bio efikasniji od kea sa pravovremenim
auriranjem?
U sluaju kea sa odloenim auriranjem, u svaki promenjeni red se upisuje jednom, u vreme
promene, to uzima 830 = 240 ns. U sluaju pravovremenog auriranja, svako auriranje reda zahteva
da se jedna re upie natrag u memoriju, to uzima 30 ns. Prema tome, ako prosean red u koji se
upisuje najmanje jednom dobija vie od 8 upisivanja pre zamene, onda je kod njega odloeno
upisivanje efikasnije.
U organizaciji magistrale u kojoj vie od jednog ureaja (tipino procesora) ima ke, a glavna
memorija se deli, to ini nevaeom ne samo odgovarajuu re u glavnoj memoriji, nego i istu re u
ostalim ke memorijama (ako se dogodi da bilo koji drugi ke ima istu re). ak i ako se upotrebi
politika pravovremenog auriranja, ostale ke memorije mogu da sadre nevaee podatke. Za sistem
koji spreava taj problem kae se da odrava koherentnost kea.

Broj ke memorija
Kada su ke memorije prvobitno uvedene, tipian sistem je imao jedan ke. U novije vreme,
upotreba viestrukih ke memorija je postala norma. Dva aspekta takvog dizajna tiu se broja nivoa
ke memorija i upotrebe objedinjenih, naspram odvojenih ke memorija.

- 67 -
Ke memorije u vie nivoa
Razvojem tehnologije i poveanjem broja tranzistora na ipu, postalo je mogue imati ke na
istom ipu kao i procesor: U poreenju sa keom sa kojim procesor komunicira preko spoljanje
magistrale, ke na ipu smanjuje spoljanje aktivnosti procesora i na taj nain ubrzava vremena
izvrenja i poveava ukupnu performansu sistema. Kada se zahtevana instrukcija ili podatak pronau u
keu na ipu, nije potreban pristup preko magistrate. Zbog kratkih putanja podataka unutar matrice
procesora, u poreenju sa duinama magistrale, pristupi keu na ipu zavravaju se znaajno bre ak i
od ciklusa magistrale sa nultim stanjima ekanja. Uz to, za vreme tog perioda, magistrala je slobodna
za druge prenose.
Veina savremenih sistema ukljuuje i ke na ipu i spoljanji ke. Najjednostavnija od takvih
organizacija je poznata kao ke u dva nivoa, sa internim keom oznaenim kao nivo 1 (Ll) i
spoljanjim keom oznaenim kao nivo 2 (L2). Razlog za ukljuivanje kea L2 je sledei. Ako nema
kea L2 i procesor pravi zahtev za pristupom memorijskoj lokaciji koja nije u keu Ll, onda procesor
mora da pristupi DRAM ili ROM memoriji preko magistrale. Zahvaljujui tipino maloj brzini
magistrale i dugom vremenu pristupa, to rezultuje slabom performansom. S druge strane, ako se
koristi ke L2 SRAM (statika RAM memorija), onda esto promaena informacija moe brzo da se
pozove. Ako je SRAM memorija dovoljno brza da odgovara brzini procesora, onda podatku moe da
se pristupi putem transakcije sa nultim vremenom ekanja, to je najbra vrsta prenosa preko
magistrale.
Napomenimo dva svojstva savremenog dizajna ke memorija u vie nivoa. Prvo, za ke L2
izvan ipa, mnoge konstrukcije ne koriste sistemsku magistralu kao putanju za prenos izmeu kea L2
i procesora, nego posebnu putanju za podatke da bi se smanjilo optereenje sistemske magistrale.
Drugo, sa smanjivanjem procesorskih komponenata, veliki je broj procesora sada ima ke L2 u
pakovanju procesorskog ipa, to poboljava performansu.
Mogue utede zahva-
ljujui upotrebi kea L2
zavise od verovatnoa pogo-
daka, kako u keu Ll, tako i u
keu L2. Vie studija je
pokazalo da upotreba ke
memorije drugog nivoa zaista
poboljava performansu, ali,
upotreba ke memorija u vie
nivoa komplikuje sva pitanja
projektovanja, ukljuujui
veliinu, algoritam zamene i
politiku upisivanja.
Slika 4.15 Ke memorija u vie nivoa
Sa poveanjem raspoloivosti povrine na ipu za ke, u veini savremenih mikroprocesora ke
L2 se premeta na procesorski ip, a dodaje se ke L3. Ke L3 je prvobitno bio pristupaan preko
spoljanje magistrale, a u novije vreme, u veini mikroprocesora i L3 ke je ugraen u ipu.

Objedinjene naspram odvojenih ke memorija


Kada su se ke memorije na ipu prvi put pojavile, mnoge konstrukcije sastojale su se od jednog
kea koji se koristio za skladitenje referenci i na podatke i na instrukcije. U novije vreme, postalo je
uobiajeno da se ke podeli na dva dela: jedan koji je namenjen za instrukcije i drugi za podatke.
Kljuna prednost dizajna sa razdvojenim ke memorijama je u tome to on odstranjuje nadmetanje za
ke izmeu jedinice za donoenje i dekodiranje instrukcija i jedinice za izvrenje. To je vano u
svakom dizajnu koji se oslanja na protonu obradu instrukcija.
Opisane strategije ne odnose se samo na SRAM ke i ke kontrolere. Softversko keiranje mora
takoe da zadovolji ove zahteve. Kao primer, veina operativnih sistema vri keiranje diska da bi
ubrzala pristup hard i flopi disku.

- 68 -
Kljuni pojmovi
memorijski ciklus funkcija mapiranja DRAM
vreme pristupa direktno preslikavanje SRAM
direktan pristup asocijativno preslikavanje SDRAM
poludirektan pristup set-asocijativno preslikavanje DDR SDRAM
sekvencijalan pristup algoritmi zamene RDRAM
memorijska hijerarhija pravovremeno auriranje PROM
ke pogodak odloeno auriranje EPROM
ke linija vienivoski ke EEPROM
prostorna lokalnost konzistencija kea fle memorija
vremenska lokalnost RAM kod za ispravljanje greaka
ROM

Pitanja i zadaci za vebu


1. emu slui memorija i koje su njene osnovne komponente?
2. Koje su osnovne operacije nad memorijom?
3. ta ulazi u sastav upravljakog sistema memorije?
4. Kakva je razlika izmeu adresnog i asocijativnog pristupa?
5. Definiite vreme pristupa i memorijski ciklus.
6. Koje su osnovne karakteristike memorije?
7. Zato se raunarski sistemi opremaju hijerahijskim memorijskim sistemom?
8. Navedite kapacitete i brzine komponeneti hijerahijskog memorijskog sistema.
9. emu slui i kako se koristi ke memorija?
10. ta je to virtualna memorija?
11. Kakve vrste poluprovodnikih memorija koriste mikroraunarski sistemi?
12. Po emu se razlikuju statike od dinamikih memorija?
13. Navedite reenja za ubrzavanje DRAM memorija.
14. Uporedite osobine pojedinih vrsta postojanih memorija.
15. Kako moe biti realizovan EPROM?
16. ta podrazumevamo pod FLE ROM-om?
17. ta podrazumevamo pod NVRAM-om i kako se moe realizovati.
18. ta je FRAM?
19. Po kojim strategijama mogu da rade ke kontroleri?
20. Koje su razlike izmeu direktnog preslikavanja, asocijativnog preslikavanja i set-asocijativnog
preslikavanja?
21. Za direktno preslikani ke, adresa glavne memorije se vidi kao da se sastoji od tri polja. Navedite i
definiite ta tri polja.
22. Za asocijativno preslikani ke, adresa glavne memorije se vidi kao da se sastoji od dva polja.
Navedite i definiite ta dva polja.
23. Za ke sa set-asocijativnim preslikavanje, adresa glavne memorije se vidi kao da se sastoji od tri
polja. Navedite i definiite ta tri polja.
24. Navedite algoritme za izbor ke linija koje e biti zamenjene.
25. Navedite razliku izmeu pravovremenog i odloenog auriranja.
26. ta je to konzistencija kea i kako se moe naruiti?

- 69 -

You might also like