Pomnilniska hierarhija

76
Hierarhija pomnilnikov Milan Ojsteršek

description

hierarhija pominlnika, rad rama roma itd

Transcript of Pomnilniska hierarhija

Page 1: Pomnilniska hierarhija

Hierarhija pomnilnikov

Milan Ojsteršek

Page 2: Pomnilniska hierarhija

Lastnosti Lokacija Kapaciteta Enota informacije, ki se naenkrat prenaša Metoda dostopa Zmogljivost Tip pomnilnika Fizične lastnosti Organizacija

Page 3: Pomnilniska hierarhija

Lokacija CPE Notranji Zunanji

Page 4: Pomnilniska hierarhija

Kapaciteta Velikost pomnilniške besede Število pomnilniških besed ali

Bytov

Page 5: Pomnilniska hierarhija

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

Page 6: Pomnilniska hierarhija

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

Page 7: Pomnilniska hierarhija

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

Page 8: Pomnilniska hierarhija

Fizični tipi Polprevodniki

RAM Magnetni materiali

Disk & Trak Optični

CD & DVD Drugi

Bubble Hologram

Page 9: Pomnilniska hierarhija

Princip branja pri magnetnih materialih

Page 10: Pomnilniska hierarhija

Organizacija na disku

Page 11: Pomnilniska hierarhija

Zapis sektorjev na disku

Page 12: Pomnilniska hierarhija

Organizacija pri Winchester disku

Seagate ST506

Page 13: Pomnilniska hierarhija

Disk z več ploščami

Page 14: Pomnilniska hierarhija

Kako se izvede dostop do diska

Page 15: Pomnilniska hierarhija

SCSI diski

Page 16: Pomnilniska hierarhija

Zgradba CD in DVD Roma

Page 17: Pomnilniska hierarhija

Zapis bloka na CD Romu

Page 18: Pomnilniska hierarhija

Organizacija sledi na CD in DVD romu

Page 19: Pomnilniska hierarhija

Tri različne organizacije RAM-a

Page 20: Pomnilniska hierarhija

Little in big Edian organizacija pomnilniških celic

Page 21: Pomnilniska hierarhija

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…

Page 22: Pomnilniska hierarhija

Hierarhija Registri L1 predpomnilnik L2 predpomnilnik Pomnilnik Diskovni predpomnilnk Disk CD, DVD Trak

Page 23: Pomnilniska hierarhija

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

Page 24: Pomnilniska hierarhija

Fizične lastnosti Življenjska doba Trajnost podatkov Ali je možno večkratno pisanje Poraba toka

Page 25: Pomnilniska hierarhija

Lokalnost referenc Časovna lokalnost – zaporedja

naslovov Zanke Zančne spremenljivke

Zaporedna lokalnost Zaporedno izvrševanje ukazov Zaporeden dostop do podatkovnih

struktur

Page 26: Pomnilniska hierarhija

Predpomnilnik Zelo hiter pomnilnik Lociran je lahko znotraj CPE ali kot poseben

pomnilniški modul Ločimo homogen in nehomogen predpomnilnik

Page 27: Pomnilniska hierarhija

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

Page 28: Pomnilniska hierarhija

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

Page 29: Pomnilniska hierarhija

Organizacija predpomnilnika

Page 30: Pomnilniska hierarhija

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)

Page 31: Pomnilniska hierarhija

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

Page 32: Pomnilniska hierarhija

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)

Page 33: Pomnilniska hierarhija

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

Page 34: Pomnilniska hierarhija

Organizacija direktnega preslikovanja

Page 35: Pomnilniska hierarhija

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

Page 36: Pomnilniska hierarhija

Primer direktnega preslikovanja

Page 37: Pomnilniska hierarhija

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

Page 38: Pomnilniska hierarhija

Asociativno preslikovanje Blokec iz glavnega pomnilnika se

lahko preslika v katerikoli blokec Dražja je realizacija

Page 39: Pomnilniska hierarhija

Asociativni predpomnilnik

Page 40: Pomnilniska hierarhija

Primer asociativnega mapiranja

Page 41: Pomnilniska hierarhija

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

Page 42: Pomnilniska hierarhija

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

Page 43: Pomnilniska hierarhija

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

Page 44: Pomnilniska hierarhija

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

Page 45: Pomnilniska hierarhija

Primer organizacije predpomnilnika z dvema setoma

Page 46: Pomnilniska hierarhija

Primer preslikave iz glavnega pomnilnika v predpomnilnik z dvema setoma

Page 47: Pomnilniska hierarhija

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

Page 48: Pomnilniska hierarhija

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

Page 49: Pomnilniska hierarhija

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

Page 50: Pomnilniska hierarhija

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

Page 51: Pomnilniska hierarhija

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

Page 52: Pomnilniska hierarhija

Kako veliki naj bodo bloki v predpomnilniku

Verjetnost zadetka

Velikost bloka

Page 53: Pomnilniska hierarhija

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 —

Page 54: Pomnilniska hierarhija

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

Page 55: Pomnilniska hierarhija

Delitev pomnilnika na enako inrazličnovelikeparticije

Page 56: Pomnilniska hierarhija

Pri izvajanju programov nastajalo luknje v pomnilniku

Page 57: Pomnilniska hierarhija

Strategije polnjenja lukenj Zamenjava – (Swapping) First fit Best Fit Worst Fit Kompakcija – zapolnjevanje lukenj

Page 58: Pomnilniska hierarhija

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

Page 59: Pomnilniska hierarhija

Primer ostranjevanja

Page 60: Pomnilniska hierarhija

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

Page 61: Pomnilniska hierarhija

Navidezni in fizični naslovi pri ostranjevanju

Page 62: Pomnilniska hierarhija

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

Page 63: Pomnilniska hierarhija

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

Page 64: Pomnilniska hierarhija

Struktura ostranjevanja

Page 65: Pomnilniska hierarhija

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

Page 66: Pomnilniska hierarhija

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)

Page 67: Pomnilniska hierarhija

Virtualni naslov pri segmentaciji Številka segmenta Odmik od začetne lokacije

segmenta

Page 68: Pomnilniska hierarhija

Segmentacija

Bazni register Številka

segmenta

Naslov znotraj

segmenta

L

+ <

+

Primarni pomnilnik

Page 69: Pomnilniska hierarhija

Segmentacija z ostranjevanjem Potrebujemo

Tabelo segmentov Tabelo strani

Page 70: Pomnilniska hierarhija

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)

Page 71: Pomnilniska hierarhija

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

Page 72: Pomnilniska hierarhija

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

Page 73: Pomnilniska hierarhija

RAID 0, 1, 2

Page 74: Pomnilniska hierarhija

RAID 3 in 4

Page 75: Pomnilniska hierarhija

RAID 5 in 6

Page 76: Pomnilniska hierarhija

Logično preslikovanje blokov pri RAID 0