aor g6 memorijski sistem 2
DESCRIPTION
SkriptaTRANSCRIPT
-
16. MEMORIJSKI SISTEM
Glavna i virtuelna memorija
Neboja MilenkoviElektronski 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 semoraju 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 memorijenajzahtevniji 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 TB = tA +B/ D,
gde je tA 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 TB.
Posluimo se pri tome sledeim brojnim podacimapodacima.
Blokovi podataka sekundarnog kea su duine B=128 bajtova.
Glavna memorija realizovana je ipovima tipa DDR3 1333, 10-10-10 sa interfejsom na 667MHz (TDRAM=1,5ns) i duinom grupe BL=8.
N. Milenkovi, Arhitektura i organizacija raunara 2011
-
2Parametri prenosa podataka
Neka procesor radi na 1333MHz, pa je TCP=0,75ns.
Neka je latencija glavne memorije samo Neka je latencija glavne memorije samo10+10+10=30TDRAM=60TCP.
Prenos grupe duine BL=8 (88=64B namagistrali) zahteva 4TDRAM= 8TCP.
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
Glavnamemorija
Glavna memorija
Memorijabanka 0
Memorijabanka 1
Memorijabanka 2
Memorijabanka 3
Magistrala
Magistrala
MultiplekserMagistrala
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 , jadresom, 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 2c adresiraju se odbacivanjem ck=2c, 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
-
3Vremena pribavljanja bloka podataka
Vreme za pribavljanje 128-bajtnog bloka podataka u ke je
a) 128/64 pristupa-T1=60+20+28 = 96 TCP. (drugi pristup u otvorenu vrstu)
b) 128/(264) pristupa-T2 = 1(60+8) = 68 TCP.
c) 1 pristup, 2 grupna prenosa po 8 rei T3 = 60+28 = 76 TCP.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Propusnost
Prosena brzina prenosa podataka izmeu glavne i ke memorije je
a) 128B/96TCP =1,333 [B/TCP].b) 128B/68T 1 882 [B/T ] b) 128B/68TCP =1,882 [B/TCP].
c) 128B/76 TCP =1,684 [B/TCP].
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 saponaaju 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 gdeo 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 memorijomupravljanje 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
-
4Virtuelna 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 programakooperaciju 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 dadresa 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 naprema 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 ikojoj 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~kaadresa
0
12
48Prevo|enje adresa
^ip procesora
Glavnamemorija
MMUadresa
(VA)adresa (FA)
121620
4116 20
M-4Re~ podatka
ad esa
CPU
N. Milenkovi, Arhitektura i organizacija raunara 2011
-
5Segmentna 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 zbirnastranica 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 poslednjihvidu 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 2v 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 2r bajtova sadri R fizikih stranica oznaenih brojevima 0, 1,, R-1.
Data virtuelna adresa av deli se na pomerajv p junutar stranice p i broj virtuelne stranice BVS.
Pri svakom obraanju memoriji ova virtuelna adresa preslikava se u fiziku adresu af , 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
Virtuelnamemorija Glavna
memorijaVS 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
-
6Stranina 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 av izdvajanjem pomeraja iz nje.
Ova stavka stranine tablice sadri broj fizike stranice BFS u koju se preslikava virtuelna stranica BVS.
Pomeraj u virtuelnoj adresi av se neizmenjen prenosi u polje pomeraja fizike adrese.
N. Milenkovi, Arhitektura i organizacija raunara 2011
Korienje stranine tablice pri prevoenju virtuelne u fiziku adresu
pomerajBVS
Strani~na tablica
Virtuelna adresa
Indeks BFSP RMK W
P - prisutna u glavnoj memoriji,
K-koriena u proteklom periodu,
M modifikovana u
Fizi~ka adresa
pomerajBFS Bazna adresastrani~ne tabliceRegistar procesora
Indeksu 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
1Procesor
^ip procesora
R k l i tkIzuzetak
MMUVA
a)
Podatak
FA
A(SST)
SST Ke{/memorija
3
4
4
5
2
Uee hardvera
raunara u prevoenju
virtuelne adrese
a) pri pogotku
1Procesor
^ip procesora
Rukovalac izuzetka gre{ke stranice
`rtvovana stranica
novastranica
Izuzetak
MMUDisk
b)
VA
A(SST)
SST Ke{/memorija
3
4
5
76
2
a) pri pogotku stranice,
b) pri greci stranice
N. Milenkovi, Arhitektura i organizacija raunara 2011
-
7Prevoenje 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 jdovodei 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 straniceadresiranjem na nivou bajtova i stranice veliine L=4 KB, V=232/212 =220=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 kememorija 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
-
8TLB u postupku prevoenja virtuelnih adresa
pomerajBVS
BFS
TLB
etiketaV R W M
Virtuelna adresa
pomerajBFS
BFSetiketaV 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 jestraninoj 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 adresaRestartovanje instrukcije
pogodak
hardver
hardver ili softversoftver
A`uriranje TLB-a
Proveraza{tite
ne neda daStranica u GM Pristup dozvoljen
Fizi~ka adresa (ka ke{u)
Gre{kaza{tite
[etnja krozstrani~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 sestavke 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 asocijativnouasocijativnim 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
-
9Hijerarhijska 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 nainnaprimer 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 adresa12212231
Indeks u STnivoa 1(10b)
Indeks u STnivoa 2(10b)
v1
v2
(Bazni registar procesora)
Koren teku}estrani~ne tablice
Strani~na tablica nivoa 1
Strani~ne tablice nivoa 2
Stranicepodataka
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 estoslabo 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 poslestranica 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 llokalnosti: 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 nijenedodeljenih 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 jalgoritma 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 gprograma 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 jstranice.
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 jstranicama 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.
Virtuelniadresni prostori Glavna
memorijaPrevo|enje adresa
VS 0
VS 1
VS 2roc
es i
FS 0
VS 0
VS 1
FS h
VS 2Pr
Proce
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 keuvreme, 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).
MMUProcesor Glavnamemorija
Fizi~ki ke{
VAFA.
MMUProcesor Glavnamemorija
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 pokonanju 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 koristise 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 procesorau radu procesora.
Ovde postoji sledee ogranienje Ako je lduina polja pomeraja u virtuelnoj adresi, a r i bsu 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 2l 2r+b . 2l = L je veliina stranice podataka, a
2r+b = 2r 2b = SB. Onda je L SB . Ako obe strane nejednakosti pomnoimo sa A,
d bidobiemo LA ASB = C(A, S i B su asocijativnost, broj skupova keblokova i duina blokova ke memorije respektivno. C je kapacitet kea u bajtovima.)
Sledi ogranienjeC 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 sistemakomunikacije 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 kememorijaSekundarna ke
memorija Virtuelna memorija
Veliina bloka (stranice) 432 B 32256 B 409616.384 B
Vreme pogotka (TC) 13 815 50200Promaajna 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