Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Univerzitet u Novom SaduFakultet tehničkih nauka
PROJEKTOVANJE MEMORIJE
LPRS2
Memorija
Sekvencijalni sistem namenjen za smeštanje, čuvanje i izdavanje informacija
Optimizovan broj sprežnih signala (malo žica da bude):Podaci: ulaz i izlazPristup: adresa, CSFunkcije: upis, čitanje
Jedan od najznačajnijih resursa računarskog sistema
Osobine i klasifikacija memorijskih sistema
Lokacija: procesorska(interna), operativna(radna), spoljna
Fizička izvedba: poluprovodnička, magnetna, optička Trajnost podataka: stalna/nestalna,
izbrisiva/neizbrisiva Kapacitet: širina i broj registara (reči) Jedinica prenosa: byte, reč, blok (Flash) Način (metod) pristupa:
Sekvencijalan (FIFO), slučajan (RAM), asocijativan (cache) Performanse:
Vreme pristupa (Latency) – vreme transakcije tj. koliko vremena treba da se upiše/pročita podatak nakon date adrese i komande.
Brzina tj. protok (Bandwidth) – količina podataka u sekundi
Rukovanje - upravljanje memorijom u cilju podrške efikasnosti i zaštiti operativnog sistema
ORGANIZACIJA MEMORIJE
Skup memorijskih registara i pridruženih kola neophodnih za prenos informacije
M = MUJ + MM (matrična struktura ME)
memorijski modul
upravljanje memorijom upravljački
signali adresa
očitavanje upis
SRAM – Statički RAM
Tipično 6 tranzistora po ćeliji (bitu) M5 i M6 snažniji tranzistori Postoje i druge realizacije (4T, 8T, 10T SRAM)
Osnovna memorijska ćelija je flip flop ili latch CMOS tehnologija
SRAM – Statički RAM
Prednosti Brz pristup i jednostavno upravljanje Nema potrebe za osvežavanjem
Mane Velika potrošnja energije Relativno mala gustina pakovanja, veća cena
NEC 256K-BIT CMOS STATIC RAM32K-WORD BY 8-BIT
DRAM - Dinamički RAM
Kapacitivna ćelija – tranzistor + kondenzator Osvežavanje – zbog gubitaka Mala potrošnja, velika gustina pakovanja i niska cena Ograničena brzina
Struktura DRAM memorijskog modula
Adrese vrste i adrese kolone se multipleksiraju na iste ulazne linije
RAS - Row Address Strobe CAS - Column Address
Strobe Sprega i kućište 64kx1 DRAM
A0-AN privremeni registar vrste i
dekoder
matrica memorijskih elemenata
izlazni prihv. reg. upravljanje
U / I ulazni
prihv. reg.
privremeni reg. kolone i dekoder
vremenski signali i
upravljanje
interni upravljački
signali RAS
CAS
WE
DO
DIN
SC
Organizacija 64K8 DRAM
RAS
CAS
WE
8 8
adresa prihvatni registar
A0 - A7
RAS
WE
DO
DIN
I
D0
# 1
64K x 1 RAM-ovi
A0 - A7
RAS
WE
DO
DIN
I
D1
# 2
A0 - A7
RAS
WE
DO
DIN
I
D7
# 8
CAS
CAS
. . .
CAS
Vremenski dijagram, čitanje
Adresiranje vrste Adresiranje kolone Izvršenje prenosa podataka
Osvežavanjememorije
Usled pražnjenja kapacitivnosti, neophodno je Očitati napon svakog memorijskog elementa u vrsti Dopuniti kondenzator do originalnog napona Ciklus osvežavanja reda 10 ms
Potencijalni konflikt sa standardnim R/W zahtevima (arbitraža)
Osnovni problem DRAM je njihova sporost u odnosu na centralni procesor
Stoga je razvijen niz DRAM struktura radi ubrzanja pristupa podacima
Odziv DRAM je određen vremenima osvežavanja, adresiranja reda i adresiranja kolone
Nove DRAM strukture nastoje da unapređenjem pristupnih kola ograniče njihov uticaj na isporuku ili prijem podataka EDO, SDRAM, DDR
Tehnike za ubrzanje pristupa DRAM memorijama – tehnološki (interni)
Asocijativne memorije
CAM – Content Addresable MemoryPristup po sadržaju
OZNAKA (KLJUČ) PODATAK
OZNAKA - adresaPODATAK – informacija kojoj se pristupa
Oznaka može biti deo podatka
7 6 5 4 3 2 1 0
0 0 1 1 0 1 1 0
5 4 2 1
podatakmaska
oznaka
METODI ZA UBRZANJE RADA I PROŠIRENJE ADRESNOG
PROSTORA
Organizacioni metodi – van integrisanog
kola
Brzina pristupa
Memorija sa umetanjem (interleaved)
Skrivena memorija (cache)
Kapacitet
Virtuelna memorija
Memorije sa pristupom ka više reči istovremeno
Osnovni koncept - upotreba većeg broja nezavisnih memorijskih modula koji dele pristupnu magistralu
Memorijske reference se distribuiraju na m modula, koji se međusobno razlikuju u jednom bitu adrese
Preplitanje, umetanje (interleaving)
Primer memorije sa istovremenim pristupom
Realizacije memorije – pregled osobina
Vrsta memorije
Brzina (vreme
pristupa)
Adresabilnost
Stalna memorija Cena
Statički RAM (SRAM) 1 ns Reč ne Visoka
Dinamički RAM (DRAM) 10 ns Blok (~8 reči) ne Srednje
visoka
Flash 10 us Reč čitanje, blok pisanje da Srednje niska
Hard Disk 10 ms Blok (~1k reči) da Niska
Računarski sistem sa skrivenom i virtualnom
memorijom
Učitavati instrukcije i podatke isključivo iz skrivene memorije
(95% + 5%) 0.95 * 5ns + 0.05 * 80ns = 8.75 ns Proširiti virtualni adresni prostor
ako se disku pristupa tek jednom u 20.000 pokušaja(95% + 4.995% + 0.005%) 0.95*5ns + 0.04995*80ns + 0.00005*16000ns = 9.546ns
Centralni Procesor
SkrivenaMemorija
M1
GlavnaMemorija
M2
SpoljnaMemorija
(disk)
M332-bitna adresa
4GB adresni prostor 5 ns 80 ns 16 ms
Skrivena memorija
Mala i brza, smeštena između procesora i operativne memorije
Namenjena prihvatu podataka iz operativne memorije
Cilj dodavanja skrivene memorije je da se srednje vreme pristupa memoriji, viđeno sa strane procesora, približi vremenu pristupa skrivenoj memoriji TAi
Metodi učitavanja podataka u sistemima sa skrivenom
memorijom
Potreban je mehanizam koji će, na osnovu generisane adrese, jednoznačno odrediti lokaciju traženog podatka, kao i način njegovog kasnijeg korišćenja.
Ukoliko je on već u skrivenoj memoriji, čita se sa minimalnim kašnjenjem (pogodak - hit).
U suprotnom (promašaj - miss), podatak se učitava iz operativne memorije i potom upisuje u skrivenu memoriju.
Adrese koje su namenjene skrivenoj memoriji interpretiraju se preko nekog od mehanizama preslikavanja.
Njihov cilj je uspostavljanje adresnih relacija između memorijskih lokacija u skrivenoj i operativnoj memoriji.
Hipotetički procesor sa skrivenom i operativnom
memorijom
Skrivena memorija ima 3 adresna bita, a operativna 10 Pri adresiranju OM, 2 adresna bita najmanje težine se
koriste za adresiranje okteta (byte-a) u okviru standardne 32-bitne reči.
Direktno preslikavanje (mapiranje)
Potpuno asocijativno preslikavanje
N-pravaca asocijativna
Kompromisna tehnika: direktno preslikavanje sa asocijativnim skupom lokacija
Asociativnost skrivene memorije
Poslagano od najmanje prema najviše složenoj i efikasnoj– Direktno mapirana (Direct mapped)– N-pravaca asocijativna (N-way associative)– Potpuno asocijativna memorija (Fully
associative) Kompromis cene i performanse
Asocijativna memorija za prihvat 4-bitnih oznaka
Metode zamene (oslobađanja) reči Random FIFO LRU
Kompleksno rešenje
Blok dijagram memorije sa dvostrukim
asocijativnim skupom
Asocijativno postavljanje sa nizom od 4 reči
Učitavanje niza (line) Zahteva proširenje prenosnih puteva Drastično pomaže kod prostorne lokalnosti
Metodi zapisa u sistemima sa skrivenom memorijom
Bit validnosti (ispravnosti) se postavlja pri upisu oznake
Dve kopije podataka: SM, OM Zato treba mehanizam koji će obezbediti njihovu
uzajamnu ažurnostTu su moguće tri metode zapisa podataka:
Upis rezultata u glavnu memorijuUpis rezultata u skrivenu memorijuUpis rezultata u obe memorije
Razvijene su dve glavne kategorije rešenjaUpis sa prolazom Upis sa zadrškom
Upis sa prolazom
Write – troughPodatak se uvek upisuje u operativnu
memoriju, a u skrivenu samo ako je data lokacija već tamo
Vreme pristupa OM se može nadoknaditi tehnikom baferovanja upisa (write buffering)
Uz pomoć posebne hardverske strukture koja prima par [Adresa, Podatak]
Time se centralnom procesoru omogućuje nesmetan nastavak rada, paralelno sa zapisom podataka koji izvršava navedena komponenta.
Upis sa zadrškom
Write - back, copy - back U slučaju pogotka zapisuje podatak samo u
skrivenu memorijuPosle promašaja raspoložive su dve opcije
Write - allocate - upis u OM + unos niza reči kojem pripada adresirana lokacija, predupređujući verovatni promašaj
Samo upis u operativnu memoriju Privremeno postojanje dvostrukih podataka
Dirty-bit označava razliku koja se ažurira pri izlasku lokacije iz skrivene memorije
Problem u slučaju višeprocesorskog rada, autonomnih U/I procesora i izvršenja DMA operacija
Primer kontrolera skrivene memorije
Metod asocijativnog postavljanja s=2 i upisom sa prolazom Memorijska reč je 32-bitna, kao i adresa, ukupan kapacitet SM je 256 kB, Dva bita definišu niz od 4 reči, te je prenosni put ka OM proširen na 128 bita Indeks je dug 13 bita, postoji ukupno 213 = 8192 dvostrukih vrednosti (s=2) Memorija za smeštaj 15-bitnih oznaka proširena je sa bitima validnosti
Skrivene memorije za rukovanje instrukcijama i podacima
Često postoji odvojena skrivena memorija za podatke i odvojena skrivena memorija za instrukcije
Razdavajanje jedinstvene skrivene memorije ima dva osnovna cilja:Uvećanje broja pristupa memoriji (dva u ovom slučaju),
čime se u jednom taktu može izvršiti učitavanje instrukcije i operanda
Istovremeno, razdvojene skrivene memorije mogu se uspešnije prilagoditi njihovoj različitoj nameni i prirodi funkcionisanja.
Pri tome su realne mogućnosti uprošćenja strukture i jednostavnije realizacije u odnosu na integrisano rešenje.
Na primer, za instrukcijski cache je dovoljna i implementacija tehnike direktnog mapiranja, pri čemu se u skrivenoj memoriji za podatke može smanjiti broj asocijativnih skupova (4 2)
Performanse skrivene memorije
Srednje vreme pristupa memorijimean access time = hit time + miss rate * miss penalty
– hit time – vreme pristupa skrivenoj memoriji
– miss penalty – vreme dobavke podatka iz operativne memorije u slučaju promašaja
– miss rate – odnos promašaja i ukupnog broja pristupa
Performanse skrivene memorije
Veliki blokovi (linije) pomažu kod prostorne lokalnosti
Performanse skrivene memorije
Male i kompleksnije (asocijativnije) memorije su brze
Na velikim memorijama (L2, L3) asocijativnost ne znači mnogo
Skrivene memorije sa više nivoa
Dodavanje više nivoa skrivene memorije je u funkciji ostvarenja što bržeg pristupa.
Interna skrivena memorija je ultra-brza, s obzirom da je integrisana sa mikroprocesorom u istom kućištu integrisanog kola.
Spoljna skrivena memorija povećava ukupan kapacitet, i služi primarno kao prihvatni bafer internoj memoriji.
Projektovanje ovakvih sistema je značajno složenije u odnosu na prethodno izneto, jer su funkcije podeljene po nivoima.
L1, L2, L3, L4 ….
Primer architekture
Performanse standardnog računara
Relativni odnos vremena pristupa
Jednostavna instrukcija - 1 takt, 0.33 nsNeka je to u analogiji nešto što traje 1 s
Pristup L1/L2 – 3/14 taktovaUzimanje papira sa stola / iz ormana, 3/14 s
Pristup OM - 250 taktovaOdlazak do automata sa čokoladicama, 4 min
Čitanje diska – ~14 msVečnost, godina i još tri meseca, 15 meseci!
Aktuelno - eDRAM
Haswell and Broadwell
Skylake
RUKOVANJE MEMORIJOM
Rukovanje memorijomMemory management
Način na koji se raspoloživa memorija ustupa na korišćenje jednom ili više korisnika
Operativni sistemi, procesi, jednokorisnički i višekorisnički OS Dodela dela memorije svakom od korisniku (procesa)
Statička, ne uvek prihvatljiva jer traži velike kapacitete memorije Dinamička, efikasnija jer programi ne moraju stalno biti u
memoriji (unos po potrebi) Moraju se sprečiti modifikacije ili uništavanje sistemske
programske podrške, ili programa jednog od strane drugih korisnika.
U nekim primenama se zahteva da se spreči ilegalan pristup tuđim podacima ili zaštita programa od mogućnosti narušavanja od strane drugih programa istog korisnika.
Istovremeno, često se javlja potreba deljenja izvesnih podataka i čak programa između više korisnika i zadataka.
Mehanizmi dodele memorije Klasifikacija rešenja
Jednoprogramski sistemi: Granični registar koji razdvaja adresni prostor sistema od
korisničkog. Multiprogramski sistemi kod kojih je ceo adresni prostor
korisničke PP istovremeno prisutan u OM: Memorija se deli odgovarajućim tehnikama na particije ili
stranice - partitivnom i straničnom podelom. Tehnika zamene procesa (swapping) ima za cilj dodatno
povećanje iskorišćenja procesora, tako što na disku čuva deo aktivnih procesa koji ne mogu biti napunjeni u radnu memoriju.
Multiprogramski sistemi kod kojih je samo deo adresnog prostora korisničke PP prisutan u operativnoj memoriji, a deo na spoljnoj memoriji U ovom slučaju se radi o virtuelnim memorijama.
Partitivna podela
Svakom procesu se dodeljuje jedna particija Fiksne veličine (statička podela) Koliko treba (dinamička podela)
Kod dinamičke podele potreban je adekvatan zaštitni mehanizam zbog sprečavanja prepisivanja Dva granična registra, da bi se utvrdilo da li je adresna referenca u
okvirima jedne particije U slučaju pokušaja pristupa van dodeljene particije dolazi do
prekida
Operativni sistem
Particija 1
Particija 2
Particija n
Centralni procesor
najniža adresa najviša adresaAB
Fragmentacija
Posledica vremenskog redosleda punjenja – zamene - završetka procesa, kod dinamičke podele particija se u memoriji javljaju neiskorišćene zone (fragmenti), premale da se u njih napuni novi proces.
Zato OS mora povremeno pokrenuti korektivnu proceduru koja vrši sažimanje slobodnih delova - defragmentaciju memorije.
Pri zameni procesa nije obavezno da se proces vrati na isto mesto u radnoj memoriji, što uzrokuje promenu adresnih referenci, kako ka podacima tako i u programskom kodu (adrese grananja). Isto se dešava i prilikom defragmentacije.
Rešenja ovog problema zasnovana su na dva pristupa: Podešavanje adresno osetljivih elemenata Dinamička relokacija
Dinamička relokacija
Početna tačka adresnog prostora procesa ne mora biti vezana za fizičku lokaciju particije
Logička adresa omogućuje se da adresni prostor uvek počne sa adresom 0 Preslikavanje logičke u fizičku adresu pomoću baznog i graničnog
relokacionog registra Fizička adresa = bazni relokacioni registar + efektivna adresa Ništa se ne menja u adresnom prostoru posla, program nije svestan stvarne
fizičke lokacije
Stranična podela
Rešenje kojim se izbegava potreba za kontinualnim memorijskim zonama – bolja iskorišćenost memorije
Adresni prostor procesora se deli na fiksne delove – stranice, a realna OM na delove iste dužine – blokove
Pomoću odgovarajućeg mehanizma za preslikavanja adresa, bilo koja stranica može da se smesti u bilo koji blok.
Stranice ostaju logički kontinualne, ali blokovi ne moraju biti
Preslikavanje stranice u blokove nije vidljivo za korisnika.
Logička adresa je definisana parom [broj stranice, relativna adresa u okviru stranice]
Fizička adresa je definisana sličnim parom broj bloka, relativna adresa u okviru bloka
TPS - Tabela prevođenja (preslikavanja) stranica
Ilustracija dodele stranica memorijskim blokovima
Pre dodele Lista slobodnih blokova: 13, 14, 15, 18, 20 ---------
Posle dodele Lista slobodnih blokova: 20
Memorija Memorija 12 12
Proces A 13 Proces A TPS 13 Stranica A.0 Stranica 0 14 Stranica 0 13 14 Stranica A.1 Stranica 1 15 Stranica 1 14 15 Stranica A.2 Stranica 2 16 Zauzeto Stranica 2 15 16 Zauzeto Stranica 3 17 Zauzeto Stranica 3 18 17 Zauzeto
18 18 Stranica A.3 19 Zauzeto 19 Zauzeto 20 20 21 Zauzeto 21 Zauzeto
0
1000
2000 P1
LOAD 1,2108
015571
0
1000
2000
3000 P2
0
1
5
6
TPS1
0
1000 P3
0
1
2
4
TPS2
2 7
TPS3
0 8
3000
2000
0
LOAD 2,2108
/////////////////////// ///////// OS //////// ///////////////////////
/////////////////////// /SLOBODNO/ 4000
5000
6000
7000
8000
/////////////////////// /SLOBODNO/
////////////////////////
P2 STR0
P2 STR1
P1 STR0
P1 STR1
P2 STR2
P3 STR0
Virtuelna memorija
Mogućnost adresiranja memorijskog prostora koji je znatno veći od raspoložive realne operativne memorije
Koncept se pojavio se 1960. Godine (ATLAS, Univerzitet u Mančesteru)
Adrese koje razvija tekući izvršavani program nisu i adrese koje direktno odgovaraju realnoj memoriji, jer se izabiraju iz mnogo većeg skupa adresa Program razvija virtuelne adrese, iz virtuelnog adresnog prostora Adrese operativne memorije su realne adrese (realni adresni prostor)
Iako procesi mogu da pozivaju samo virtuelne adrese, oni se stvarno izvršavaju samo u realnoj memoriji. To zahteva postojanje mehanizma za preslikavanje virtuelnih adresa u realne adrese u vreme izvršavanja procesa.
Da bi se omogućilo da korisnički virtuelni adresni prostor bude veći od realnog adresnog prostora, mora se obezbediti mehanizam čuvanja programa i podataka na spoljnim memorijama velikog kapaciteta. preslikavanje se vrši na nivou bloka (ne reči ili bajta) v = [ b, o ], format virtualne adrese
Prevođenje virtuelne u realnu adresu
Straničenje Blokovi iste veličine,
stranice Segmentacija
Blokovi različite veličine, segmenti
Segmentirana stranična dodela Kombinacija obe
tehnike Unutar segmenta se
formiraju stranice.
Dodela stranica na zahtev
Format adrese
Format TPS
i – indikator prisustva u OM
Algoritam dinamičkog preslikavanja
Mehanizmi dinamičkog prevođenja virtalnih
adresa
Direktno preslikavanje Asocijativno preslikavanje
REGISTARADRESE TPS
r
r
+ pi oi Vi
b b o a
r+pi
Pi
pi
Obavlja se od strane MMU – Memory Management Unit
Mehanizmi dinamičkog prevođenja virtualnih
adresa
Tehnika kombinovanog direktnog i asocijativnog preslikavanja
MMU sa TLB TLB – Translation
Lookaside Buffer
Interesantni linkovi
Detaljne informacije o velikom broju procesora (www.7-cpu.com)
https://en.wikipedia.org/wiki/Main_Page