Pomnilniska hierarhija
-
Upload
aliciahorvat -
Category
Documents
-
view
107 -
download
3
description
Transcript of Pomnilniska hierarhija
Hierarhija pomnilnikov
Milan Ojsteršek
Lastnosti Lokacija Kapaciteta Enota informacije, ki se naenkrat prenaša Metoda dostopa Zmogljivost Tip pomnilnika Fizične lastnosti Organizacija
Lokacija CPE Notranji Zunanji
Kapaciteta Velikost pomnilniške besede Število pomnilniških besed ali
Bytov
Enota prenosa
Notranji pomnilnik Običajno je omejena z velikostjo vodila
Zunanji pomnilnik Običajno blok, ki je mnogo daljši od ene
pomnilniške besede
Metoda dostopa Zaporedni
Začnemo od začetne lokacije in beremo do končne lokacije
Gostota zapisa (bpi – bit per inch) Čas dostopa odvisen od lokacije pomnilniške besede Npr. trak
Direktni ali krožni Vsak blok ima svoj naslov Dostop je direkten do sledi, nato je odvisen od tega
kje se nahaja glava diska Npr. disk
Metoda dostopa
Naključno Naslov pove točno lokacijo v pomnilniku Čas dostopa je neodvisen od lokacije v pomnilniku Npr. RAM
Asociativno Podatke dobimo na podlagi primerjave vsebin v
primerjalnem registru Čas dostopa je neodvisen od lokacije v pomnilniku Npr. predpomnilnik
Fizični tipi Polprevodniki
RAM Magnetni materiali
Disk & Trak Optični
CD & DVD Drugi
Bubble Hologram
Princip branja pri magnetnih materialih
Organizacija na disku
Zapis sektorjev na disku
Organizacija pri Winchester disku
Seagate ST506
Disk z več ploščami
Kako se izvede dostop do diska
SCSI diski
Zgradba CD in DVD Roma
Zapis bloka na CD Romu
Organizacija sledi na CD in DVD romu
Tri različne organizacije RAM-a
Little in big Edian organizacija pomnilniških celic
Pomnilniška hierarhija Registri v CPE Izravnalniki v CPE Preslikovalna tabela Notranji ali glavni (main) pomnilnik
Več nivojev predpomnilnikov “RAM”, ROM,…
Zunanji pomnilnik Diski Tračne enote, CD-romi, DVD romi…
Hierarhija Registri L1 predpomnilnik L2 predpomnilnik Pomnilnik Diskovni predpomnilnk Disk CD, DVD Trak
Hierarhija pomnilnikov
Imamo množico pomnilnikov:{M1, M2, M3, … Mn}
Za to množico velja:Cena/bit: Ci > Ci+1
Čas dostopa: tai<tai+1
Velikost: si <si+1
Fizične lastnosti Življenjska doba Trajnost podatkov Ali je možno večkratno pisanje Poraba toka
Lokalnost referenc Časovna lokalnost – zaporedja
naslovov Zanke Zančne spremenljivke
Zaporedna lokalnost Zaporedno izvrševanje ukazov Zaporeden dostop do podatkovnih
struktur
Predpomnilnik Zelo hiter pomnilnik Lociran je lahko znotraj CPE ali kot poseben
pomnilniški modul Ločimo homogen in nehomogen predpomnilnik
Zaporedje operacij dostopa do podatkov v predpomnilniku CPE zahteva podatke iz pomnilniške lokacije Preveri, če podatki obstajajo v
predpomnilniku Če podatki obstajajo v predpomnilniku, jih
CPE vzame iz predpomnilnika Če podatki ne obstajajo, se prenesejo iz
glavnega pomnilnika v predpomnilnik Nato se podatki prenesejo v CPE Predpomnilnik vsebuje polje značk, ki povedo
kje v predpomnilniku se nahaja določen blokec iz glavnega pomnilnika
Načrtovanje predpomnilnika Velikost Funkcija preslikovanja (direktni, set
asociativni, asociativni) Funkcija zamenjave (LRU, LFU, FIFO,
naključna) Pisalna strategija (pisanje skozi (write
through), pisanje nazaj (write back)) Velikost blokcev Število predpomnilnikov
Organizacija predpomnilnika
Primer, uporabljen pri funkcijah preslikovanja Velikost 64 Kbytov Blokec velikosti 4 byte
Naš predpomnilnik ima torej 16k (214) blokcev velikosti 4 byte
16MBytov glavnega pomnilnika 24 bitni naslov
(224=16M)
Direkni predpomnilnik Vsak blokec iz glavnega pomnilnika
se lahko preslika v točno določen blokec v predpomnilniku
I- številka blokca v predpomnilnikuJ – številka blokca v glavnem pomnilnikuM –število blokcev v predpomnilniku Mapiranje:
I=J MOD M
Direktno preslikovanje – zgradba naslova
Značka s-r Številka blokca r beseda w
8 14 2
24 bitni naslov 2 bitni identifikator pomnilniške besede (4
bytni blokec) 22 bit identifikator bloka
8 bitna značka (=22-14) 14 bitna številka vrstice (blokca)
Direktno preslikovanje Blokec v predp. Glavni pomnilnik 0 0, m, 2m, 3m…
2s-m 1 1,m+1, 2m+1…
2s-m+1
m-1 m-1, 2m-1,3m-1…2s-1
Organizacija direktnega preslikovanja
Direktno preslikovanje Na podlagi številke blokca ( r )
dobimo naslov značke v predpomnilniku
Značko v predpomnilniku primerjamo z značko v pomnilniškem naslovu, če se ujemata, je blokec v predpomnilniku, drugače je v glavnem pomnilniku
Primer direktnega preslikovanja
Prednosti in slabosti direktnega preslikovanja Enostavno Poceni Fiksna lokacija bloka
Če program dosega dva blokca v glavnem pomnilniku, ki se mapirata v isti blokec predpomnilnika vkratkih časovnih intervalih, se zelo poveča število zgrešitev
Asociativno preslikovanje Blokec iz glavnega pomnilnika se
lahko preslika v katerikoli blokec Dražja je realizacija
Asociativni predpomnilnik
Primer asociativnega mapiranja
Značka 22 bitovBeseda2 bita
Struktura naslova pri asociativnem mapiranju
22 bitna značka za vsak 32 bitni blokec Primerjava značke v predpomnilniku z
značko v naslovu pomnilniške besede, če se znački ujemata, je blokec v predpomnilniku, drugače je v glavnem pomnilniku
Spodnja dva bita identificirata pomnilniško besedo v blokcu
Set asociativni predpomnilnik Predpomnilnik je razdeljen v več
setov Vsak set vsebuje več blokcev Vsak blokec iz glavnega
pomnilnika se lahko mapira v katerikoli blokec znotraj njemu pripadajočega seta
Struktura pomnilniškega naslova pri set asociativnem mapiranju
Številka seta pove, v katerem setu se nahaja blokec v prepomnilniku
Primerjava značke znotraj seta nam pove, če se blokec nahaja v predpomnilniku ali se nahaja v glavnem pomnilniku.
Značka 9 bit Številka seta 13 bitBeseda2 bit
Primer set asociativnega preslikovanja 13 bitna številka seta Številka blokca v glavnem
pomnilniku je velikost glavnega pomnilnika MOD 213
000000, 00A000, 00B000, 00C000 … se preslikajo v isti set
Primer organizacije predpomnilnika z dvema setoma
Primer preslikave iz glavnega pomnilnika v predpomnilnik z dvema setoma
Strategije zamenjave – direktni predpomnilnik Ni izbire Vsak blokec iz glavnega
pomnilnika se lahko mapira v določen blokec predpomnilnika
Pri zamenjavi blokcev, se zamenja obstoječi blokec z novim blokcem
Algoritmi zamenjave pri set asociativnem in asociatevnem pomnilniku
Algoritmi so implementirani s strojno opremo
Least Recently used (LRU) First in first out (FIFO) Least frequently used (LFU) Naključno
Pisalna strategija Vsak blokec v predpomnilniku ima še
dodatna bita in sicer: Umazani bit – postavlja se v primeru, če se
blokec spremeni Bit veljavnosti – postavlja se v primeru, ko je
blokec uporabljen Več CPE ima svoje predpomnilnike V/I enote zapisujejo v glavni pomnilnik
direktno
Pisanje skozi (Write through) Vsa pisanja se izvajajo sočasno v glavni
pomnilnik in v predpomnilnik Če več CPE uporablja glavni pomnilnik,
imajo pa vsaka svoj predpomnilnik, le te opazujejo prenose v glavni pomnilnik in v primeru sprememb osvežujejo svoje predpomnilnike.
Izvaja se precej prometa med predpomnilnikom in glavnim pomnilnikom
Upočasni pisanje v predpomnilnik
Pisanje nazaj (Write back) Ažuriranje blokcev se izvaja samo v
predpomnilniku Umazani bit se postavi, ko se izvede
ažuriranje blokca Blokec se ob zamenjavi zapiše v
predpomnilnik, če je postavljen njegov umazani bit,
V/I enote morajo spreminjati predpomnilnik samo prek glavnega pomnilnika
Povpr. 15% zahtev po pomnilniku je pisalnih
Kako veliki naj bodo bloki v predpomnilniku
Verjetnost zadetka
Velikost bloka
Primerjava velikosti predpomnilnikov
Processor TypeYear of
Introduction L1 cachea L2 cache L3 cache
IBM 360/85 Mainframe 1968 16 to 32 KB — —
PDP-11/70 Minicomputer 1975 1 KB — —
VAX 11/780 Minicomputer 1978 16 KB — —
IBM 3033 Mainframe 1978 64 KB — —
IBM 3090 Mainframe 1985 128 to 256 KB — —
Intel 80486 PC 1989 8 KB — —
Pentium PC 1993 8 KB/8 KB 256 to 512 KB —
PowerPC 601 PC 1993 32 KB — —
PowerPC 620 PC 1996 32 KB/32 KB — —
PowerPC G4 PC/server 1999 32 KB/32 KB 256 KB to 1 MB 2 MB
IBM S/390 G4 Mainframe 1997 32 KB 256 KB 2 MB
IBM S/390 G6 Mainframe 1999 256 KB 8 MB —
Pentium 4 PC/server 2000 8 KB/8 KB 256 KB —
IBM SPHigh-end server/ supercomputer
2000 64 KB/32 KB 8 MB —
CRAY MTAb Supercomputer 2000 8 KB 2 MB —
Itanium PC/server 2001 16 KB/16 KB 96 KB 4 MB
SGI Origin 2001 High-end server 2001 32 KB/32 KB 4 MB —
Itanium 2 PC/server 2002 32 KB 256 KB 6 MB
IBM POWER5 High-end server 2003 64 KB 1.9 MB 36 MB
CRAY XD-1 Supercomputer 2004 64 KB/64 KB 1MB —
Navidezno naslavljanje Računalniški program razdelimo v bloke Vsak naslov v programu opišemo z navideznim
naslovom, ki je sestavljen iz številke bloka in odmika od začetka bloka
Preslikovalnik na podlagi tabele blokov preslikuje navidezne naslove v dejanske (fizične)
Če je podatek iz določenega naslova v pomnilniku ali v predpomnilniku, ga preslika v fizični naslov, drugače sproži zahtevo po prenosu ustreznega bloka iz diska v pomnilnik
Delitev pomnilnika na enako inrazličnovelikeparticije
Pri izvajanju programov nastajalo luknje v pomnilniku
Strategije polnjenja lukenj Zamenjava – (Swapping) First fit Best Fit Worst Fit Kompakcija – zapolnjevanje lukenj
Ostranjevanje Razdelitev pomnilnika v enako
velike bloke - strani (page frames) Operacijski sistem opravlja
preslikavo med stranmi v primarnem pomnilniku in stranmi v sekundarnem pomnilniku
Preslikava se opravlja s pomočjo tabele strani - vsak proces ima svojo tabelo strani
Primer ostranjevanja
Element tabele strani V – bit veljavnosti (0, če stran ni veljavna) R – rezidentni bit (0, če stran ni v
primarnem pomnilniku) RWX – biti zaščite dostopa do strani C - Umazani bit (1, če se je stran
spremenila) S – naslov v sekundarnem pomnilniku Naslov okvira strani (kje se nahaja stran v
primarnem pomnilniku
Navidezni in fizični naslovi pri ostranjevanju
Navidezno naslavljanje Ostranjevanje na zahtevo (demand paging)
Vse strani procesa niso sočasno potrebne v pomnilniku
Ko je zahtevana stran potrebna, se naloži iz sekundarnega v primarni pomnilnik
Napaka strani (Page fault) Zahtevana stran ni v primarnem pomnilniku
Notranja fragmentacija Na zadnji strani programa ali njegovih podatkov
ni celotna stran zasedena, saj niti program, niti podatki ne zasedajo večkratnika velikosti strani
Premetavanje (trashing) Preveč procesov se sočasno izvaja, zato
je primarnega pomnilnika premalo Operacijski sistem večino časa porabi za
zamenjavo strani CPE opravlja zelo malo koristnega dela
Rešitev Dobre strategije zamenjave strani Zmanjšanje števila procesov Povečanje primarnega pomnilnika
Struktura ostranjevanja
Segmentacija Program razdeljen v bloke različne
dolžine (programski segment, podatkovni segment, sistemski segment)
Bloki predstavljajo logične celote Zunanja fragmentacija (med segmenti v
glavnem pomnilniku nastajajo luknje, po zamenjavi segmentov)
Ločimo: Lokalne segmente Globalne segmente
Element tabele segmentov R – rezidentni bit (0, če segment ni v
primarnem pomnilniku) RWX – biti zaščite dostopa do strani C - Umazani bit (1, če se je segment
spremenil) L – Velikost segmenta S – naslov v sekundarnem pomnilniku Naslov segmenta v primarnem
pomnilniku (kje se nahaja segment v primarnem pomnilniku)
Virtualni naslov pri segmentaciji Številka segmenta Odmik od začetne lokacije
segmenta
Segmentacija
Bazni register Številka
segmenta
Naslov znotraj
segmenta
L
+ <
+
Primarni pomnilnik
Segmentacija z ostranjevanjem Potrebujemo
Tabelo segmentov Tabelo strani
RAID Redundant Array of Independent Disks Redundant Array of Inexpensive Disks 6 nivojev Več fizičnih diskov, ki so vidni iz nivoja
operacijskega sistema kot en disk Podatki so porazdeljeni med več fizičnih diskov Del kapacitete posameznih diskov je namenjen
za nadzorne informacije (npr. parnost)
RAID 0 Ni redundance Podatki se delijo (strip) med vse diske Round Robin deljenje Povečanje hitrosti dostopa do
podatkov Če je sočasno več dostopov do podatkov,
hitreje pridemo do podatkov, saj so razpršeni med več diskov
Do diskov dostopamo paralelno
RAID 1 Kopirani diski Bloki podatkov (stripes) se prenesejo na različne
diske 2 kopiji vsakega bloka na dveh različnih diskih) Blok lahko beremo iz kateregakoli izmed dveh
diskov (večja paralelnost dostopa) Piše se sočasno na dva diska Okrevanje po napaki
Zamenjamo pokvarjen disk Okrevanje izvedemo brez ponovnega zagona računalnika
Realizacija relativno draga
RAID 0, 1, 2
RAID 3 in 4
RAID 5 in 6
Logično preslikovanje blokov pri RAID 0