You are on page 1of 12

1

6. MEMORIJSKI SISTEM
Glavna i virtuelna memorija
Neboja Milenkovi
Elektronski fakultet u Niu
GLAVNA MEMORIJA
Glavna memorija (koristi se i termin
primarna memorija i operativna memorija)
je osnovna memorija u raunaru. U njoj
moraju biti prisutni programi koji se moraju biti prisutni programi koji se
izvravaju i podaci koje ti programi koriste.
Adrese instrukcija i operanada odnose se
na lokacije glavne memorije u kojima su
instrukcije i operandi prisutni.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Karakteristike performansi DRAM
memorija
DRAM memorije, koje se skoro iskljuivo koriste
za gradnju glavnih memorija raunara, imaju pri
proizvoljnim pristupima veliku latenciju merenu
periodama takta procesora.
Sa drugim vanim pokazateljem performansi Sa drugim vanim pokazateljem performansi,
propusnou, DRAM memorije stoje mnogo
bolje.
Reenje koje umanjuje negativan uticaj velike
latencije glavne memorije i koristi njenu veliku
propusnost je velika duina blokova podataka
koje glavna memorija dostavlja ke memoriji.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Zahtevi saobraaja sa ulazom-
izlazom
Glavna memorija komunicira i sa ulazno-
izlaznim ureajima u sistemu, od kojih su
najzahtevniji u pogledu brzine memorije najzahtevniji u pogledu brzine memorije
disk drajvovi, grafike i mrene kartice.
Ovi ureaji zahtevaju od glavne memorije
pre svega dovoljno veliku propusnost, koju
ona viestruko premauje.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Prenos bloka podataka u ke
Razmotrimo mogue organizacije glavne
memorije koje mogu da doprinesu smanjenju
promaajne kazne ke memorije.
Pri tome treba imati u vidu da je pri pribavljanju
u ke promaenog bloka podataka duine B za
to potrebno vreme
T
B
= t
A
+B/ D,
gde je t
A
latencija a D je propusnost memorije.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Primer parametara glavne
memorije
Ispitajmo kako poveanje propusnosti memorije,
dobijeno poveanjem njene irine, utie na
smanjenje vremena T
B
.
Posluimo se pri tome sledeim brojnim
podacima podacima.
Blokovi podataka sekundarnog kea su duine
B=128 bajtova.
Glavna memorija realizovana je ipovima tipa
DDR3 1333, 10-10-10 sa interfejsom na
667MHz (T
DRAM
=1,5ns) i duinom grupe BL=8.
N. Milenkovi, Arhitektura i organizacija raunara 2011
2
Parametri prenosa podataka
Neka procesor radi na 1333MHz, pa je
T
CP
=0,75ns.
Neka je latencija glavne memorije samo Neka je latencija glavne memorije samo
10+10+10=30T
DRAM
=60T
CP
.
Prenos grupe duine BL=8 (88=64B na
magistrali) zahteva 4T
DRAM
= 8T
CP
.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Osnovno i proireno reenje
Izmeu procesora i primarnog kea
najee se prenose podaci duine rei,
pa je logino da ke memorije (primarna i
sekundarna), glavna memorija i magistrala
koja ih povezuje budu iste irine (ovde
8B), to je prikazano na slici a.
Reenje sa dvostrukom irinom glavne
memorije, sekundarnog kea i njihove
veze prikazano je na slici b.
N. Milenkovi, Arhitektura i organizacija raunara 2011
CP CP
Ke{
Primarni
ke{
Ke{
CP
Tri reenja sa razliitim irinama glavne
memorije, magistrale i ke memorije
a.
b.
c.
memorija
Sekundarni ke{
ke{
memorija
Glavna
memorija
Glavna memorija
Memorija
banka 0
Memorija
banka 1
Memorija
banka 2
Memorija
banka 3
Magistrala
Magistrala
Multiplekser
Magistrala
N. Milenkovi, Arhitektura i organizacija raunara 2011
Memorija sa preklapanjem
Sve memorijske banke dele zajedniku
memorijsku magistralu irine jednake irini
primarnog kea. Takvo reenje sa 4 banke
prikazano je na slici c.
Slanjem naloga, naprimer za itanje, sa jednom j g , p j , j
adresom, paralelno se pristupa adresiranim
lokacijama u svim bankama.
Po obavljenom pristupu, svaka memorijska
banka ekskluzivno koristi magistralu za vraanje
proitanog podatka.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Raspodela podataka po bankama
Ovako organizovana memorija naziva se
memorija sa preklapanjem pristupa (engl.
interleaved memory).
Lokacije u ovakvoj memoriji sa k banaka,
k 2
c
adresiraju se odbacivanjem c k=2
c
, adresiraju se odbacivanjem c
adresnih bitova najmanje teine.
Memorijska banka 0 sadri sve rei ije su
adrese po modulu k jednake 0,
memorijska banka 1 sadri sve rei ije su
adrese po modulu k jednake 1 itd.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Prilagoenost razmeni podataka sa
ke memorijama
Dakle, adrese lokacija u jednoj
memorijskoj banci menjaju se sa korakom
k.
Ovakva organizacija memorije je idealna
za razmenu podataka sa ke memorijama,
jer blokovi podataka sadre podatke sa
sukcesivnim adresama.
N. Milenkovi, Arhitektura i organizacija raunara 2011
3
Vremena pribavljanja bloka podataka
Vreme za pribavljanje 128-bajtnog bloka
podataka u ke je
a) 128/64 pristupa-T
1
=60+20+28 = 96 T
CP
.
(drugi pristup u otvorenu vrstu)
b) 128/(264) pristupa-
T
2
= 1(60+8) = 68 T
CP
.
c) 1 pristup, 2 grupna prenosa po
8 rei
T
3
= 60+28 = 76 T
CP
.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Propusnost
Prosena brzina prenosa podataka
izmeu glavne i ke memorije je
a) 128B/96T
CP
=1,333 [B/T
CP
].
b) 128B/68T 1 882 [B/T ] b) 128B/68T
CP
=1,882 [B/T
CP
].
c) 128B/76 T
CP
=1,684 [B/T
CP
].
N. Milenkovi, Arhitektura i organizacija raunara 2011
I sinhrone DRAM memorije...
Sinhrone DRAM memorije, kada rade u
reimu prenosa grupe duine k rei,
ponaaju se kao memorija sa ponaaju se kao memorija sa
preklapanjem pristupa sa k memorijskih
modula.
N. Milenkovi, Arhitektura i organizacija raunara 2011
VIRTUELNA MEMORIJA
Do prelaska na izvrenje, programi se obino
dre u sekundarnoj memoriji u svom izvrnom
objektnom obliku.
Prelasku na izvrenje programa prethodi
punjenje glavne memorije programom. Sastavni p j j g j p g
deo punjenja je dodela memorije programu, tj.
odreivanje slobodnog bloka glavne memorije u
koji se prenosi (kopira) program iz sekundarne
memorije.
Po zavretku izvrenja programu se oduzima
memorija, tj. blok glavne memorije koji mu je bio
dodeljen proglaava se slobodnim.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Operativni sistem upravlja
memorijom
Poslovi dodele memorije programima, punjenja
memorije i oslobaanja memorije od okonanih
programa su u nadlenosti operativnog sistema
raunara. Uzeti zajedno, ovi poslovi nazivaju se
upravljanje memorijom upravljanje memorijom.
Oni se detaljno izuavaju u kursevima o
operativnim sistemima raunara, tako da o tome
ovde neemo detaljnije govoriti.
Meutim, upravljanje memorijom zahteva i
odreena arhitekturna i implementaciona
reenja, kojima emo se baviti u izlaganju koje
sledi.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Memorijska slika
procesa pod
Linuxom
Programi uvek
poinju od virtuelne
adrese 0x08048000.
Stek korisnika
uvek poinje od
virtuelne adrese
0xbfffffff.
Deljeni objekti se
uvek pune u oblast
poev od virtuelne
adrese 0x40000000.
N. Milenkovi, Arhitektura i organizacija raunara 2011
4
Virtuelna memorija kao apstrakcija
glavne memorije
Upravljanje memorijom postaje sloeno kada
u glavnoj memoriji nema dovoljno prostora za
dranje celih programa i njima pridruenih
podataka u toku izvrenja programa, ili
u glavnoj memoriji smenjuje se vie procesa g j j j j p
(programa u izvrenju) pri multiprogramskom
radu raunara.
U tenji da se korisnici raunara oslobode svih
zaduenja vezanih za upravljanje memorijom,
kao apstrakcija glavne memorije nastala je
virtuelna memorija, razvijena sa ciljem da
upravljanje memorijom uini efikasnijim i sa
manje greaka.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Virtuelna memorija kao sloeni
sistem
U sistemima koji rade u multiprogramskom
reimu upravljanje memorijom mora obezbediti
izolovanje adresnih prostora razliitih programa,
ali i dozvoliti kontrolisanu deobu memorije za
kooperaciju i sinhronizaciju programa kooperaciju i sinhronizaciju programa.
Virtuelna memorija uspeno objedinjuje
hardverske izuzetke, hardverom potpomognuto
prevoenje adresa, glavnu memoriju, disk
memoriju i jezgo operativnog sistema da
svakom procesu obezbedi veliki, uniformni i
privatni adresni prostor.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Odvajanje logikih od fizikih
adresa
Kljuna koncepcija na kojoj se zasniva virtuelna
memorija je odvajanje virtuelnih, odnosno
logikih adresa, koje se koriste u programu, od
d l k ij l ij i k d adresa lokacija glavne memorije i sekundarne
memorije u kojima se programi uvaju.
Virtuelne adrese sistem generie pri prevoenju
i/ili povezivanju programa. Ove adrese na
jedinstven nain odreuju elemente koji
pripadaju jednom logikom adresnom prostoru.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Prevoenje adresa pri svakom
obraanju memoriji
Sistem odlae konkretnu dodelu memorije
programu sve do trenutka kada poinje izvrenje
programa. Naime tek tada operativni sistem,
prema trenutnom zauzeu memorije moe na prema trenutnom zauzeu memorije, moe na
najbolji nain dodeliti memoriju tom programu.
Pri izvrenju programa svako obraanje
memoriji zahteva prevoenje virtuelne adrese,
koju generie procesor, u fiziku adresu,
odreenu dodelom memorije programu i
relativnom adresom instrukcije ili podatka u
programu.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Jedinica za upravljanje memorijom
(MMU)
Prevoenje virtuelnih u fizike adrese vri
jedinica za upravljanje memorijom (engl.
memory management unit, skr. MMU), koja je
obino implementirana u ipu procesora.
Mogunost da se programi izvravaju pri bilo
kojoj dodeli memorije programu zahteva i kojoj dodeli memorije programu zahteva i
potovanje sledeeg ogranienja: u programima
se ne smeju koristiti naini adresiranja sa fiksnim
adresama, kao to je to direktno odnosno
apsolutno adresiranje.
Najpogodniji nain adresiranja je bazno
adresiranje, koje je u savremenim procesorima
esto i jedini nain adresiranja podataka u
memoriji.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Preslikavanje virtuelne u fiziku adresu pri
izvrenju instrukcije Load.
Virtuelna
Fizi~ka
adresa
0
12
4
8
Prevo|enje
adresa
^ip procesora
Glavna
memorija
MMU
adresa
(VA)
adresa
(FA)
12
16
20
4116
20
M-4
Re~ podatka
ad esa
CPU
N. Milenkovi, Arhitektura i organizacija raunara 2011
5
Segmentna virtuelna memorija
Virtuelna memorija kod koje se virtuelni adresni
prostor deli u segmente ije su duine odreene
duinom programa naziva se segmentna
virtuelna memorija (engl. segmented virtual
memory).
Kod nje se i dodela memorije programima vri u
takvim segmentima.
Pojava velikog broja malih slobodnih blokova
memorije, koji se pojedinano ne mogu iskoristiti
za nove dodele, a zbirno mogu initi znaajan
deo memorije- spoljanja fragmentacija
memorije.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Stranina virtuelna memorija
Dodela memorije programima moe se
pojednostaviti ako se svaki program upakuje u
izvestan broj stranica fiksnih duina. Za datu
veliinu stranica i duinu programa potreban broj
stranica odreuje se tako da njihova zbirna stranica odreuje se tako da njihova zbirna
duina bude jednaka ili vea od duine
programa.
Virtuelna memorija kod koje se virtuelni adresni
prostor deli u ovakve stranice fiksnih duina
naziva se stranina virtuelna memorija (engl.
paged virtual memory).
N. Milenkovi, Arhitektura i organizacija raunara 2011
Unutranja fragmentacija memorije
Kod nje se i memorija dodeljuje programu
u stranicama. Pri tome se takoe javljaju
neiskorieni delovi memorije, ovog puta u
vidu neiskorienih delova poslednjih vidu neiskorienih delova poslednjih
stranica dodeljenih programima.
Ova pojava naziva se unutranja
fragmentacija memorije.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Stranina virtuelna memorija
Kod stranine virtuelne memorije virtuelni
adresni prostor podeljen je na virtuelne stranice,
a fiziki adresni prostor na fizike stranice, za
koje se esto koristi i termin okvir stranice.
Veliina stranica L odreena je celobrojnim
stepenom dvojke, i najee iznosi L=4 KB.
Virtuelni adresni prostor veliine 2
v
bajtova
sadri V virtuelnih stranica oznaenih brojevima
0, 1,, V-1.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Elementi virtuelne i fizike adrese
Fiziki adresni prostor veliine 2
r
bajtova sadri
R fizikih stranica oznaenih brojevima 0, 1,,
R-1.
Data virtuelna adresa a
v
deli se na pomeraj
v
p j
unutar stranice p i broj virtuelne stranice BVS.
Pri svakom obraanju memoriji ova virtuelna
adresa preslikava se u fiziku adresu a
f
, koja se
takoe deli na pomeraj unutar stranice p i broj
fizike stranice BFS.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Preslikavanje virtuelnih u fizike
stranice
Virtuelna
memorija Glavna
memorija
VS 0
GM
NP
GM
VS 1
VS 2
FS 0
FS 1
GM- virtuelne
stranice
prisutne u
glavnoj
memoriji,
DSK i t l
NP
GM
GM
DSK
DSK
DSK
VS 2
VS 3
FS 1
FS (R-1)
VS (V-1)
DSK- virtuelne
stranice
prisutne na
disku,
NP-
nepostojee
virtuelne
stranice.
N. Milenkovi, Arhitektura i organizacija raunara 2011
6
Stranina tablica
Prevoenje virtuelnih u fizike adrese vri se pri
svakom obraanju memoriji. Ovo prevoenje
vri se korienjem stranine tablice (ST), koja
za svaku virtuelnu stranicu ima po jednu stavku.
Stavka stranine tablice (SST) adresira se ( )
brojem virtuelne stranice BVS, dobijene iz
virtuelne adrese a
v
izdvajanjem pomeraja iz nje.
Ova stavka stranine tablice sadri broj fizike
stranice BFS u koju se preslikava virtuelna
stranica BVS.
Pomeraj u virtuelnoj adresi a
v
se neizmenjen
prenosi u polje pomeraja fizike adrese.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Korienje stranine tablice pri prevoenju
virtuelne u fiziku adresu
pomeraj BVS
Strani~na tablica
Virtuelna adresa
Indeks
BFS P R M K W
P - prisutna u
glavnoj memoriji,
K-koriena u
proteklom periodu,
M modifikovana u
Fizi~ka adresa
pomeraj BFS
Bazna adresa
strani~ne tablice
Registar procesora
Indeks
u ST
M-modifikovana u
glavnoj memoriji,
R-dozvoljen pristup
radi itanja, i
W-dozvoljen pristup
radi upisa.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Greka stranice
Ako je virtuelna stranica prisutna u glavnoj
memoriji, tj P(SST)=1, imamo pogodak
stranice. P(SST)=0 signalizira da stranica
nije prisutna u glavnoj memoriji, i tada se
javlja greka stranice (engl. page fault).
Pored ove stranine tablice, mora postojati
jo jedna tablica koja za svaku kreiranu
virtuelnu stranicu sadri njenu adresu na
disku.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Prevoenje adresa pri pogodku
Prevoenjem virtuelne adrese u sluaju
pogotka upravlja MMU kroz sledee
korake, prikazane na slici 6.28a:
Korak 1: Procesor formira virtuelnu adresu
VA i alje je u MMU.
Korak 2: MMU formira adresu stavke
stranine tablice A(SST) i upuuje zahtev
za pribavljanje SST iz kea/glavne
memorije.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Prevoenje adresa pri pogodku
Korak 3: Ke/glavna memorija vraaju u
MMU zahtevanu SST.
Korak 4: MMU formira fiziku adresu i Korak 4: MMU formira fiziku adresu i
dostavlja je keu/glavnoj memoriji.
Korak 5: Ke/glavna memorija vraaju
procesoru zahtevanu re podatka.
N. Milenkovi, Arhitektura i organizacija raunara 2011
1
Procesor
^ip procesora
R k l i tk
Izuzetak
MMU
VA
a)
Podatak
FA
A(SST)
SST
Ke{/
memorija
3
4
4
5
2
Uee
hardvera
raunara u
prevoenju
virtuelne
adrese
a) pri pogotku
1
Procesor
^ip procesora
Rukovalac izuzetka
gre{ke stranice
`rtvovana
stranica
nova
stranica
Izuzetak
MMU
Disk
b)
VA
A(SST)
SST
Ke{/
memorija
3
4
5
7
6
2
a) pri pogotku
stranice,
b) pri greci
stranice
N. Milenkovi, Arhitektura i organizacija raunara 2011
7
Prevoenje adresa pri greci stranice
Greka stranice zahteva sadejstvo hardvera i
kernela operativnog sistema, definisano
sledeim koracima, ilustrovanim slikom 6.28b.
Koraci 13: Istovetni su sa koracima 13 pri
pogotku stranice.
Korak 4: Bit P(SST)=0 pa MMU aktivira izuzetak Korak 4: Bit P(SST)=0 pa MMU aktivira izuzetak,
koji predaje upravljanje procesorom rukovaocu
izuzecima greke stranice u kernelu operativnog
sistema.
Korak 5: Rukovalac izuzecima greke stranice
pronalazi rtvovanu stranicu u glavnoj memoriji
(onu koja e biti zamenjena), i ako je ona
modifikovana, vraa je na disk.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Prevoenje adresa pri greci stranice
Korak 6: Rukovalac izuzecima greke stranice
pribavlja novu stranicu u glavnu memoriju i
aurira u njoj i odgovarajuu SST.
Korak 7: Rukovalac izuzecima greke stranice
vraa upravljanje procesu koji ga je aktivirao, p j j p j g j
dovodei do restartovanja instrukcije na kojoj se
javio izuzetak. Procesor ponovo alje istu
virtuelnu adresu u MMU. Meutim, sada je
virtuelna stranica prisutna u glavnoj memoriji pa
se javlja pogodak, pri kome se zahtevani
podatak dostavlja procesoru na ve opisani
nain.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Linearna stranina tablica
Ovakva linearna stranina tablica ili
potpuna stranina tablica, ima V stavki.
Za 32-bitni virtuelni adresni prostor sa
adresiranjem na nivou bajtova i stranice adresiranjem na nivou bajtova i stranice
veliine L=4 KB, V=2
32
/2
12
=2
20
=1M. Ako
je svaka stavka stranine tablice duine
etiri bajta, cela stranina tablica je
veliine 4 MB.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Dranje stranine tablice u
memoriji
Po jedna ovakva stranina tablica
potrebna je za svaki proces u sistemu.
Stranine tablice ovih veliina ne mogu se
d i i i drati u registrima procesora, ve u
glavnoj memoriji raunara.
Onda svako obraanje memoriji za
pribavljanje instrukcije ili podatka zahteva
po jedno dodatno obraanje memoriji za
prevoenje virtuelne u fiziku adresu.
N. Milenkovi, Arhitektura i organizacija raunara 2011
TLB - ke za prevoenje virtuelnih
u fizike adrese
Ovaj problem moe se delimino reiti
korienjem posebne ke memorije u kojoj se
dre najaktuelnije stavke stranine tablice.
Ke memorija sa ovom namenom poznata je
kao Translation Lookaside Buffer, skr. TLB.
Pri svakom obraanju memoriji najpre se
pristupa TLB-u, sa ciljem da se u njemu nae
broj fizike stranice u kojoj je prisutna tekua
virtuelna stranica.
U sluaju pogotka, nije potrebno obraanje
straninoj tablici u memoriji, pa se prevoenje
adrese znatno ubrzava.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Struktura stavki TLB-a
Nastoji se da se obraanje TLB-u svede
na samo jedan taktni ciklus, to upuuje
da se TLB implementira kao mala ke
memorija sa potpunim asocijativnim
preslikavanjem.
Stavka TLB-a sadri kao etiketu broj
virtuelne stranice na koju se odnosi, broj
fizike stranice u kojoj je prisutna ta
virtuelna stranica, i indikatore V, R, W i M.
N. Milenkovi, Arhitektura i organizacija raunara 2011
8
TLB u postupku prevoenja virtuelnih
adresa
pomeraj BVS
BFS
TLB
etiketa V R W M
Virtuelna adresa
pomeraj BFS
BFS
etiketa V R W M
pogodak Fizi~ka adresa
N. Milenkovi, Arhitektura i organizacija raunara 2011
Greku stranice opsluuje operativni sistem
Ako se javi promaaj u TLB-u sledi pristup
straninoj tablici iz koje dobijamo informaciju da
li je virtuelna stranica prisutna u memoriji i gde,
ili da ona tamo nije prisutna.
U drugom sluaju javlja se greka stranice (page
fault), koja dovodi do istoimenog izuzetka, za
ije opsluivanje se poziva operativni sistem.
Poto opsluivanje greke stranice traje dugo
(nekoliko ms), dolazi do promene konteksta, do
okonanja ovog opsluivanja.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Promaaj TLB-a
Opsluivanje greke stranice ukljuuje
prenoenje promaene stranice u glavnu
memoriju, auriranje stranine tablice i TLB-a.
Kada se javi promaaj u TLB-u ali se u
straninoj tablici nae fizika stranica u kojoj je straninoj tablici nae fizika stranica u kojoj je
prisutna virtuelna stranica, aurira se TLB
zamenom sadraja polja u izabranoj stavci.
U pogoenoj stavci TLB-a ili stranine tablice
proveravaju se bitovi zatite memorije R i W, i
ako je pokuan nedozvoljeni pristup memoriji,
javlja se izuzetak povrede zatite memorije.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Aktivnosti pri prevoenju virtuelne
adrese uz uee TLB-a
Pregledanje
TLB-a
proma{aj
Virtuelna adresa
Restartovanje instrukcije
pogodak
hardver
hardver ili softver
softver
A`uriranje
TLB-a
Provera
za{tite
ne ne da da
Stranica u GM Pristup dozvoljen
Fizi~ka adresa
(ka ke{u)
Gre{ka
za{tite
[etnja kroz
strani~nu tablicu
Gre{ka stranice
(OS pribavlja
stranicu)
N. Milenkovi, Arhitektura i organizacija raunara 2011
Sadraj TLB-a pri promeni konteksta
procesa
Poto TLB sadri stavke stranine tablice
tekueg procesa, promena konteksta procesa
zahteva izmenu celokupnog sadraja TLB-a.
Pri naputanju tekueg procesa moraju se sve
stavke TLB a proglasiti nevaeim to se stavke TLB-a proglasiti nevaeim, to se
postie jednostavnim brisanjem indikatora V u
svim njegovim stavkama.
Alternativno reenje je da se etiketi u svakoj
stavci TLB-a doda identifikator procesa PID, koji
bi uestvovao u traenju stavke TLB-a koja
odreuje zahtevano prevoenje virtuelne
adrese.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Organizacija TLB-a
Broj stavki TLB-a kree se od 32 do 256.
TLB-i manjeg obima implementiraju se kao ke
memorije sa potpunim asocijativnim
preslikavanjem, a oni veeg obima sa skupno-
asocijativnim preslikavanjem i asocijativnou asocijativnim preslikavanjem i asocijativnou
24.
Mnogi procesori sa posebnim ke memorijama
instrukcija i podataka imaju i odvojene TLB-e za
prevoenje virtuelnih adresa instrukcija i
podataka.
N. Milenkovi, Arhitektura i organizacija raunara 2011
9
Hijerarhijska stranina tablica
Razmotrimo virtuelnu memoriju sa 32-bitnim
virtuelnim adresnim prostorom, adresivom na
nivou bajtova, i stranicama veliine 4KB.
Stranina tablica ima 1M stavki.
Linearna struktura ovakve stranine tablice
moe se zameniti hijerarhijskom strukturom,
naprimer u dva nivoa na sledei nain naprimer u dva nivoa, na sledei nain.
Neka je svaki blok stranine tablice sa po 1K
njenih sukcesivnih stavki (nazovimo ga ST-blok)
adresiran jednom stavkom pomone stranine
tablice, nazovimo je stranina tablica nivoa 1
(skr. STN1), koja takoe ima 1K stavki. Sa
stavkama duine 4B, STN1 je veliine jedne
stranice, i moe se uvati u glavnoj memoriji.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Hijerarhijska stranina tablica u dva nivoa
0
pomeraj
pomeraj
11
v1 v2
2
Virtuelna adresa
12 21 22 31
Indeks u ST
nivoa 1(10b)
Indeks u ST
nivoa 2(10b)
v1
v2
(Bazni registar
procesora)
Koren teku}e
strani~ne tablice
Strani~na tablica
nivoa 1
Strani~ne tablice
nivoa 2
Stranice
podataka
Stranica u glavnoj memoriji
Stranica u sekundarnoj memoriji
SST nepostoje}e stranice
N. Milenkovi, Arhitektura i organizacija raunara 2011
Dobre i loe strane...
Hijerarhijska stranina tablica moe smanjiti
zauzee glavne memorije delovima straninih
tablica procesa.
Ako je lokalnost obraanja procesa memoriji
slabo izraena aktivni ST blokovi se esto slabo izraena, aktivni ST-blokovi se esto
menjaju.
Ovo povlai potrebu za estom razmenom
prethodno aktivnih ST-blokova i novih aktivnih
ST-blokova izmeu glavne memorije i diska, to
poveava premaenje operativnog sistema
raunara.
N. Milenkovi, Arhitektura i organizacija raunara 2011
... hijerarhijske stranine tablice
Znaajan nedostatak hijerarhijske
organizacije stranine tablice je povean
broj obraanja memoriji pri prevoenju u
sluaju promaaja TLB-a, jednak broju
nivoa stranine tablice.
Novi 64-bitni procesori sa vrlo velikim
virtuelnim adresnim prostorom zahtevaju
tri i vie nivoa stranine tablice, to znatno
produuje prevoenje virtuelnih adresa.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Strategije pribavljanja i zamene
podataka u memoriji
Podaci se sa diska u glavnu memoriju mogu
pribavljati po zahtevu, unapred, ili njihovom
kombincijom.
Strategijom pribavljanje po zahtevu virtuelna
stranica se sa diska prenosi u memoriju posle stranica se sa diska prenosi u memoriju posle
nastanka greke stranice. Ona nastaje u okviru
instrukcije a ne po njenom zavretku.
Procesor po nastanku ove greke, koju zapaa
kroz pojavu izuzetka greke stranice, pamti
informacije potrebne za restartovanje instrukcije
u kojoj je dolo do greke stranice i poziva
rukovoca izuzetka.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Pribavljanje po zahtevu i
pribavljanje unapred
Po opsluenom izuzetku obnavlja informacije o
prekinutoj instrukciji i restartuje njeno izvrenje.
Pribavljanje unapred zasniva se na prostornoj
l k l ti k b ti t i i i l lokalnosti: ako se program obratio stranici i, vrlo
je verovatno da e se uskoro obratiti i susednim
stranicama. i-2, i-1, i+1, i+2,itd.
Pribavljanje ovih stranica unapred moe iskljuiti
greke stranica pri skorom obraanju njima. U
tome mogu biti od velike koristi ke memorije
diskova
N. Milenkovi, Arhitektura i organizacija raunara 2011
10
Izbor fizike stranice za dodelu
Izbor fizike stranice za dodelu vri algoritam
zamene stranica.
Sistem vodi evidenciju o nedodeljenim
stranicama naprimer u obliku posebne liste
nedodeljenih stranica Kada ova lista nije nedodeljenih stranica. Kada ova lista nije
prazna, onda se za dodelu uzima fizika stranica
sa poetka liste.
Ako se pri tome takva lista formira za svaki
proces odvojeno, algoritam zamene je lokalni.
Ako je lista zajednika za sve procese, algoritam
zamene je globalni.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Algoritmi kandidati
Za izbor se mogu koristiti algoritmi zamene
pominjani kod ke memorija (FIFO, RANDOM,
LRU) ali i drugi koji su pogodni ba kod
virtuelnih memorija.
Ovde se mogu koristiti sloeniji algoritmi, koji
daju bolje rezultate sa stanovita smanjenja
buduih greaka stranica, jer sistem ima vie
vremena za analizu istorije korienja ranije
dodeljenih fizikih stranica.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Ipak, LRU algoritam
Ipak se i za zamenu stranica kod virtuelnih
memorija najee koristi LRU algoritam.
Kako je ovde broj kandidata za zamenu
veliki, striktna implementacija LRU , p j
algoritma nije mogua.
Zato se ovde koristi jedna aproksimacija
LRU algoritma, koja je jednostavna za
implementaciju a daje zadovoljavajue
rezultate.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Zatita memorije od neovlaenog
korienja
Pri istovremenom izvravanju vie procesa u
sistemu, postoji opasnost od neovlaenog
pristupa jednog procesa podacima drugog
procesa.
Ali postoji i potreba da se omogui deoba nekih p j p g
programa i/ili podataka u svrhu sinhronizacije
procesa i razmene podataka izmeu njih.
Pri tome pristupi deljenim programima ili
podacima mogu biti ogranieni na odreene
aktivnosti.
Takva zatita se u straninoj virtuelnoj memoriji
lako izvodi na sledei nain.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Deljive i privatne stranice
Neka procesi Proces_i i Proces_j imaju kako
privatne, tako i deljive stranice podataka.
Pri dodeli memorije ovim procesima, deljivim
stranicama podataka dodeljuju se iste fizike p j j
stranice.
Na sledeem slajdu prikazan je primer dva
procesa. Proces_i ima privatnu stranicu vs1 i
deljivu stranicu vs2. Proces_j ima privatnu
stranicu vs0 i deljivu stranicu vs1.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Zajednika fizika stranica
Deljive stranice su deljive ba izmeu ova dva
procesa.
Privatnim stranicama oba procesa dodeljuju se
razliite fizike stranice, dok se deljivim j
stranicama dodeljuje ista fizika stranica.
Pri dodeli memorije ovim stranicama upisuju se i
odgovarajue vrednosti indikatora R i W u
odgovarajuim stavkama stranine tablice
odnosno TLB-a.
N. Milenkovi, Arhitektura i organizacija raunara 2011
11
Dodela fizikih stranica privatnim i deljivim
virtuelnim stranicama.
Virtuelni
adresni prostori
Glavna
memorija
Prevo|enje
adresa
VS 0
VS 1
VS 2
r
o
c
e
s

i
FS 0
VS 0
VS 1
FS h
VS 2
P
r
P
r
o
c
e
s

j
FS 1
FS (R-1)
VS (V-1)
VS (V-1)
N. Milenkovi, Arhitektura i organizacija raunara 2011
Ke memorije u virtuelnom
adresnom prostoru
Da li se ke memorija mora adresirati fizikim
adresama?
Svako prevoenje virtuelne adrese zahteva
vreme koje u tom sluaju odlae i pristup keu vreme, koje u tom sluaju odlae i pristup keu,
to dovodi do zastoja u radu procesora.
Na sledeem slajdu prikazani su procesor,
MMU, ke i glavna memorija u dve konfiguracije,
koje se razlikuju po tome da li se ke adresira
fizikim adresama (gore) ili virtuelnim adresama
(dole).
N. Milenkovi, Arhitektura i organizacija raunara 2011
Adresiranje kea fizikim adresama
(gore) i virtuelnim adresama (dole).
MMU Procesor
Glavna
memorija
Fizi~ki
ke{
VA
FA
.
MMU Procesor
Glavna
memorija
Virtuelni
ke{
VA
FA
.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Fiziki ke
Ke adresiran fizikim adresama (fiziki
ke) dolazi u tom lancu iza MMU-a.
Veliki nedostatak ovog reenja je da se
obraanje keu moe zapoeti tek po j p p
okonanju prevoenja virtuelne adrese.
U ovom reenju nema nikakvih
ogranienja, a povoljno je i sa stanovita
eventualne direktne komunikacije kea i
U-I sistema raunara.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Virtuelni ke
Adresiranje kea moe se zapoeti virtuelnom
adresom, a dovriti prevedenom fizikom
adresom (virtuelni ke).
U tom sluaju se pomeraj u virtuelnoj adresi, koji
se neizmenjen prenosi u fiziku adresu koristi se neizmenjen prenosi u fiziku adresu , koristi
za adresiranje skupa ke blokova i itanje
njihovih etiketa.
Po prevoenju virtuelne u fiziku adresu, ona se
moe uporediti sa proitanim etiketama blokova
u adresiranom skupu ke blokova.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Prevoenje sa zastojem ili bez
zastoja
Ako se prevoenje adresa obavi sa pogotkom
TLB-a, nema zastoja u pristupu keu.
U suprotnom, dolazi do zastoja u pristupu keu i
u radu procesora u radu procesora.
Ovde postoji sledee ogranienje Ako je l
duina polja pomeraja u virtuelnoj adresi, a r i b
su duine polja indeksa i adrese rei u bloku kod
ke emorije, onda za ovakvo adresiranje kea
mora biti ispunjen uslov
N. Milenkovi, Arhitektura i organizacija raunara 2011
12
Ogranienje kod virtuelnog kea
l r+b. Iz ovoga sledi 2
l
2
r+b
.
2
l
= L je veliina stranice podataka, a
2
r+b
= 2
r
2
b
= SB.
Onda je L SB .
Ako obe strane nejednakosti pomnoimo sa A,
d bi dobiemo
LA ASB = C
(A, S i B su asocijativnost, broj skupova ke
blokova i duina blokova ke memorije
respektivno. C je kapacitet kea u bajtovima.)
Sledi ogranienje
C LA
N. Milenkovi, Arhitektura i organizacija raunara 2011
Prednosti i nedostaci virtuelnog
kea
Prednost virtuelnog kea je pristup bez ekanja
na okonanje prevoenja virtuelne adrese.
Nedostatak je nemogunost direktne
komunikacije kea i U I sistema komunikacije kea i U-I sistema.
Izmeu ke memorija i virtuelnih memorija
postoje slinosti i razlike koje su navedene u
tabeli na sledeem slajdu.
Veliine primarnih ke memorija su 4 KB64 KB,
sekundarnih ke memorija su 128 KB4 MB, a
glavne memorije 256 MB 16 GB.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Tipian opseg parametara primarne i sekundarne
ke memorije i virtuelne memorije.
Parametar
Primarna ke
memorija
Sekundarna ke
memorija
Virtuelna memorija
Veliina bloka
(stranice)
432 B 32256 B 409616.384 B
Vreme pogotka (TC) 13 815 50200
Promaajna kazna
(TC)
1040 100500 1.000.00010.000.000
Faktor promaaja 0,5 20 % 1530 % 0,00001 0,001 %
Nii nivo memorije sekundarni ke glavna memorija diskovi
Smetanje blokova
podataka
direktno ili
skupno-asoc.
direktno ili skupno-
asoc.
potpuno asocijativno
Zamena blokova LRU Random ili LRU Aproksimacija LRU
N. Milenkovi, Arhitektura i organizacija raunara 2011

You might also like