Mikroprocesory - Skripta
Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.
6.1.4 Víceúrovňové stránkovací tabulky
Většina dnešních počítačových systémů umožňuje pracovat s logickým adresovým
prostorem od 2
32 do 264. U takto velkých adresových prostorů se stávají stránkovací tabulky
značně velké. Uvažujme například procesor s 32 bitovou logickým adresovým prostorem. Při
velikosti stránky 4 KiB (212 B) je adresový prostor rozdělen na 232/212 = 220 (tj. něco přes milion)
stránek. Každá stránkovací tabulka by musela mít 220 položek. Uvažujeme-li velikost položky
tabulky 4 byty, pak celková velikost stránkovací tabulky dosáhne 4 MiB. Přitom každý proces
musí mít svou vlastní stránkovací tabulku a při běhu procesu musí být stránkovací tabulka
umístěna ve fyzické paměti. Takto velkými stránkovacími tabulkami by se zbytečně plýtvalo
fyzickým paměťovým prostorem. Řešením je rozdělit jednu velkou stránkovací tabulku na dvě
nebo více menších tabulek – víceúrovňové stránkovací tabulky.
Ukazatel na
začátek
stránkovací
tabulky
Číslo virtuální stránky
Číslo fyzické stránky
Ukazatel začátku
31
31 11
Offset ve stránce
P
20
Číslo fyzické stránky
TABULKA
STRÁNEK
12
12 11
29
1/0
Stránka je/není
přítomna v
paměti
Fyzická adresa
Virtuální adresa
0
0
.
.
.
.
.
.
48
FEKT Vysokého učení technického v Brně
Logickou adresu o velikosti 32 bitů můžeme například rozdělit na 3 části: 10 bitové pole
PT1 představující index do stránkovací tabulky první úrovně, 10 bitové pole PT2 představující
index do stránkovací tabulky druhé úrovně a 12 bitový offset v rámci stránky. Stránkovací
tabulka první úrovně má 210 = 1024 položek. Každá stránkovací tabulka druhé úrovně má také
1024 položek, přitom položka tabulky reprezentuje stránku o velikosti 212 = 4096 B. Každá
tabulka druhé úrovně tedy reprezentuje paměťový prostor 1024*4096 = 4MiB.