Architektura počítačových systémů Pamět ová hierarchie, virtuální pamět doc. Ing. Róbert Lórencz, CSc. České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových systémů Příprava studijních programů Informatika pro novou fakultu ČVUT je spolufinancována Evropským sociálním fondem a rozpočtem Hlavního města Prahy v rámci Operačního programu Praha adaptabilita (OPPA) projektem CZ.2.17/3.1.00/31952 Příprava a zavedení nových studijních programů Informatika na ČVUT v Praze. Praha & EU: Investujeme do vaší budoucnosti R. Lórencz (ČVUT FIT) Pamět ová hierarchie, virtuální pamět BI-APS, 2011, Předn. 8.-10. 1 / 28
Obsah přednášky CPU výkonnostní rovnice virtuální pamět stránkování TLB segmentace R. Lórencz (ČVUT FIT) Pamět ová hierarchie, virtuální pamět BI-APS, 2011, Předn. 8.-10. 2 / 28
CPU výkonnostní rovnice s cache 1 Průměrný čas CPU T CPU pro vykonání programu s použitím cache T CPU = (Cyc CPU + Cyc MEM ) T CLK = IC (CPI + MAPI MR MP) T CLK Cyc MEM # pamět ových čekacích (stall) taktů programu. Cyc MEM = IC MAPI MR MP průměrný # čekajících taktů na jeden přístup do paměti MAPI # pamět ových přístupů na instrukci programu. MAPI = # přístupů do paměti # instrukcí AMAT = HT + MR MP [takty] R. Lórencz (ČVUT FIT) Pamět ová hierarchie, virtuální pamět BI-APS, 2011, Předn. 8.-10. 3 / 28
CPU výkonnostní rovnice s cache 2 Instrukční, datová a unifikovaná (společná, sjednocená) cache Průměrná doba přístupu do paměti rozdělená na čtení instrukcí a dat AMAT = F I (HT I + MR I MP I ) + F D (HT D + HT LS + MR D MP D ) HT LS extra hit pro load a store pro unifikovanou cache jenom pro jednoportovou cache F I = # instr. přístupů do MEM celkový # přístupů do MEM F D = # datových přístupů do MEM celkový # přístupů do MEM HT I, MR I, MP I jsou hit time, miss rate a miss penalty pro instrukce HT D, MR D, MP D jsou hit time, miss rate a miss penalty pro data Celkový miss rate MR S pro rozdělenou cache MR S = F I MR I + F D MR D R. Lórencz (ČVUT FIT) Pamět ová hierarchie, virtuální pamět BI-APS, 2011, Předn. 8.-10. 4 / 28
CPU výkonnostní rovnice s cache 3 Příklad: F I = 75%, F D = 25%, HT I = HT D = HT U = HT LS = 1 16 KB instrukční cache s 16 KB datovou cache MR I = 0.64 %, MP I = 50 taktů MR D = 6.47 %, MP D = 50 taktů 32 KB unifikovaná cache MR U = 1.99 %, MP U = 50 taktů Která cache má menší miss rate? Řešení: MR S = F I MR I + F D MR D = (0.75 0.0064) + (0.25 0.0647) = 2.10 % MR S > MR U AMAT S = F I (HT I + MR I MP I ) + F D (HT D + MR D MP D ) = 0.75 (1 + 0.0064 50) + 0.25 (1 + 0.0647 50) = 2.049 AMAT U = F I (HT U + MR I MP I ) + F D (HT U + HT LS + MR D MP D ) = 0.75 (1 + 0.0199 50) + 0.25 (1 + 1 + 0.0199 50) = 2.245 AMAT S < AMAT U R. Lórencz (ČVUT FIT) Pamět ová hierarchie, virtuální pamět BI-APS, 2011, Předn. 8.-10. 5 / 28
CPU výkonnostní rovnice s cache 4 Příklad 2: 8 KB unifikovaná cache s 32 B blok, 33 % L/S CPI = 2 takty, MAPI = 1.33, MP = 50 taktů, MR = 2% O kolik je výkonnost systému s cache větší než bez ní? Řešení: S cache T CPU+CACHE = IC (CPI + MAPI MR MP) T CLK = IC (2 + 1.33 0.02 50) T CLK = IC 3.33 T CLK Bez cache T CPU = IC (CPI + MAPI MP) T CLK = IC (2 + 1.33 50) T CLK = IC 68.5 T CLK S CACHE = T CPU T CPU+CACHE = IC 68.5 T CLK IC 3.33 T CLK = 20.6 R. Lórencz (ČVUT FIT) Pamět ová hierarchie, virtuální pamět BI-APS, 2011, Předn. 8.-10. 6 / 28
Virtuální pamět principy 1 Virtuální pamìt Registry L1 Cache L2 Cache Memory Disk Tape Instrukce Operandy Bloky Bloky Stránky Soubory Velikost 1 16 B 8 128 B 8 128 B 512 8 KB» MB Øídí prog./poè. cache kon. cache kon. OS Principů lokalit lze podobně jako u pamět ových systémů s cache využít dále pro pamět ové systémy rozšířené o diskové jednotky. R. Lórencz (ČVUT FIT) Pamět ová hierarchie, virtuální pamět BI-APS, 2011, Předn. 8.-10. 7 / 28
Virtuální pamět principy 2 Virtuální pamět Virtual memory umožňuje sdílení paměti (OS) vzájemná ochrana programů v současnosti je důležitější ochrana dat, než využití principů lokalit Program pracuje se svým virtuálním adresním prostorem VA virtuální adresa HW mapování PA fyzická adresa Fyzická pamìt (+caches) každý běžící program pracuje se svým virtuálním adresním prostorem OS rozhoduje o umístění v paměti daných běžících programů HW provádí VA PA mapování R. Lórencz (ČVUT FIT) Pamět ová hierarchie, virtuální pamět BI-APS, 2011, Předn. 8.-10. 8 / 28
Virtuální pamět principy 3 V = {0, 1,..., n 1} VA prostor (n m) M = {0, 1,..., m 1} PA prostor MAP: V M {Z } zobrazovací mapovací funkce adres MAP(a) = a, když data na adrese a VA jsou reprezentována daty fyzické paměti PA na adrese a M = Z když data na místě VA a nejsou obsažena ve fyzické paměti Chybìjící polozka Procesor a Virtuální adresa Pøevod adres Z a' Fyzická adresa Spolupráce hardwaru a softwaru Zpracování chybìjících stránek Hlavní pamìt Vedlejší pamìt OS vykonává pøesun R. Lórencz (ČVUT FIT) Pamět ová hierarchie, virtuální pamět BI-APS, 2011, Předn. 8.-10. 9 / 28
Virtuální pamět stránkování 1 Virtuální adresní prostor 1. procesu Rámce stránek Virtuální adresní prostor 2. procesu Fyzická pamìt Disk Velikost stránky = velikost rámce Virtuální prostor je rozdělen na stejně velké stránky (pages), které se přiřazují jednotlivým běžícím procesům. Fyzická pamět je rozdělená do stějně velkých rámců (frames) R. Lórencz (ČVUT FIT) Pamět ová hierarchie, virtuální pamět BI-APS, 2011, Předn. 8.-10. 10 / 28
Virtuální pamět stránkování 2 Tabulka stránek Page table Stránky jsou mapované do rámců Stránky tvorí souvislý VA prostor, ale korespondující rámce jsou libovolně umístěné ve fyzické paměti ne všechny stránky jsou mapované do rámců Stránky jsou jednotkou mapování a současně jedna stránka je jednotkou přenosu mezi diskem a hlavní pamětí fyzickou pamětí Protože je nemožné mít jednoduchou funkci pro libovolný převod VA na PA je pro tento účel používána Lookup table Page table (vyhledávací tabulka tabulka stránek). Použití tabulky stránek pro mapování prostoru VA do prostoru PA: offset VA = offset PA = velikost stránky číslo rámce = Tabulka stránek (číslo virtuální strány) R. Lórencz (ČVUT FIT) Pamět ová hierarchie, virtuální pamět BI-APS, 2011, Předn. 8.-10. 11 / 28
Virtuální pamět stránkování 3 VA virtuální adresa Page # Offset Page Table Base Reg.- PTBR Index do page table Page table... V Access rights - AR Frame # + PA Fyzická adresa Kdyz bit platnosti V = 0, stránka není v pamìti (page fault).... Page table je umístìná ve fyzické pamìti R. Lórencz (ČVUT FIT) Pamět ová hierarchie, virtuální pamět BI-APS, 2011, Předn. 8.-10. 12 / 28
Virtuální pamět stránkování 4 Formát položky tabulky stránek tabulka stránek je dána struk. OS obsahuje mapování VA PA každý proces běžící v OS má vlastní tabulku stránek stav procesu: PC, všechny registry a tabulka stránek OS mění tabulky stránek se změnou PTBR obsahuje začátek tabulky stránek Formát položky tabulky stránek Page table entry format (PTE) bud číslo rámce, nebo indikaci, že stránka není v hlavní paměti když V = 0, potom OS přenese stránku z disku do hlavní paměti když je stránka platná a je přítomná v hlavní paměti, potom se ověří ještě práva použití této stránky daným procesem: Access rights AR přístupová práva: V AR Frame # Read Only, Read/Write, Executable R. Lórencz (ČVUT FIT) Pamět ová hierarchie, virtuální pamět BI-APS, 2011, Předn. 8.-10. 13 / 28
Virtuální pamět stránkování 5 Porovnání 2 úrovní pamět ové hierarchie Cache Virtuální pamět Blok/řádek Stránka Miss Page fault Velikost bloku: 8 128B Velikost stránky: 512B 8KB Typ: DM, N-way, asociativní asociativní Výběr oběti: LRU/Random Výběr oběti: LRU Write Thru/Write back Write back Poznámky k stránkování fragmentace: stránky mají stejnou velikost každý rámec je využit OS rezervuje Swap space na disku pro každý proces když proces narůstá potom: pokud nějaké stránky nejsou používané, jsou vyměněné jako první když ne, potom OS swapuje starší stránky na disk LRU vybírá stránky k swapování každý proces má vlastní tabulku stránek R. Lórencz (ČVUT FIT) Pamět ová hierarchie, virtuální pamět BI-APS, 2011, Předn. 8.-10. 14 / 28
Virtuální pamět stránkování 6 Výpadek stránky page fault Když data jsou na disku načte se žádaná stránka z disku do prázdného rámce paměti přenos prostřednictvím DMA a přepnutí na proces, který čeká když DMA je ukončen přerušení a update tabulky stránek procesu při přepnutí zpět na původní úlohu jsou požadovaná data v hl. paměti načtené stránce Když je nedostatek paměti uvolníme rámec tak, že stránku s dirty bitem náležící programu zapíšeme na disk uvolníme rámec obsazen stránkou pomocí LRU aktualizuje se tabulka stránek programu (procesu) R. Lórencz (ČVUT FIT) Pamět ová hierarchie, virtuální pamět BI-APS, 2011, Předn. 8.-10. 15 / 28
Virtuální pamět stránkování 7 Problem 1 Je málo fyzické paměti mějme 64 MB fyzické paměti N procesů a každý z nich má 4 GB virtuální paměti můžeme mít až 1000 virtuálních stránek na 1 fyzickou stránku Řešení: Princip prostorové lokality velikost stránky 4 KB množství blízkých referencí i veliký program požaduje v určitém čase jen málo stránek pracovmí set: "právě"používané stránky mapování každé adresy další přístup do paměti navíc pozorování: platí princíp lokality uvnitř stránky musí platit ve virtuálních adresách těchto stránek proč nepoužít "cache TLB"pro převod VA PA pro urychlení převodu? R. Lórencz (ČVUT FIT) Pamět ová hierarchie, virtuální pamět BI-APS, 2011, Předn. 8.-10. 16 / 28
Virtuální pamět stránkování 8 Cache a virtuální pamět : Procesor VA PA miss Translation hit Cache data Hlavní pamìt cache typicky pracuje s fyzickými adresami tabulka stránek představuje další přístup do paměti pro každý programový přístup do paměti jak řešit tento problém? R. Lórencz (ČVUT FIT) Pamět ová hierarchie, virtuální pamět BI-APS, 2011, Předn. 8.-10. 17 / 28
Translation Lookaside Buffer TLB 1 Valid VA PA AR Dirty Ref ASID 1 0xFA00 0x0003 R/W 1 0 34 TLB je cache pro položky tabulky stránek TLB přístupový čas je srovnatelný s cache Ref: používá se pro výpočet LRU Dirty: protože TLB pracuje Write back, musíme vědět jestli se má/nemá stránka při odstranění zapsat na disk AR: přístup ASID: který uživatel Co když je miss TLB? 1 HW se podívá do tabulky stránek a načte nové PTE do TLB 2 HW s OS rozhodne co dál R. Lórencz (ČVUT FIT) Pamět ová hierarchie, virtuální pamět BI-APS, 2011, Předn. 8.-10. 18 / 28
TLB 2 VA Hit PA Miss Procesor TLB Hit Cache Miss Translation Data Hlavní pamìt TLB obvykle malá, typicky 128-256 položek TLB jako cache, může být DM, s omezeným stupněm asociativity a plně asociativní R. Lórencz (ČVUT FIT) Pamět ová hierarchie, virtuální pamět BI-APS, 2011, Předn. 8.-10. 19 / 28
Stránkování Problem 2 Tabulka stránek je příliš velká! 4 GB virtuální paměti, 4 KB stránka 1 milión PTE 4 MB jen pro tabulku stránek jednoho procesu 25 procesů 100 MB pro tabuky stránek Pokud proces běží, tak jeho tabulka stránek musí být celá ve fyzické paměti. Řešení: víceúrovňové stránkování inverzní tabulka stránek segmentace R. Lórencz (ČVUT FIT) Pamět ová hierarchie, virtuální pamět BI-APS, 2011, Předn. 8.-10. 20 / 28
Víceúrovňové stránkování 1 Jednoúrovňová tabulka stránek: Číslo stránky p = 20 b Offset d = 12 b Víceúrovňová tabulka stránek: Super Číslo stránky p 1 = 10 b Offset p 2 = 10 b Offset d = 12 b Tabulky stránek 2. úrovně máme jenom pro platné položky super tabulky stránek Pokud máme jenom 10 % platných vstupů super tabulky stránek, potom pro všechny tabulky stránek potřebujeme přibližně 1/10 prostoru stránek jednoduchého stránkovaní! R. Lórencz (ČVUT FIT) Pamět ová hierarchie, virtuální pamět BI-APS, 2011, Předn. 8.-10. 21 / 28
Víceúrovňové stránkování 2 Při víceúrovňovém stránkování jsou jednotlivé tabulky menší než při jednoúrovňovém a mohou být různě umístěny v paměti dvouúrovňové stránkování vyžaduje 3 přístupy do paměti VA p 1 p 2 d p 1 { Super Page Table 2nd Level Page Tables p 2 { Fyzická pamìt PA d { R. Lórencz (ČVUT FIT) Pamět ová hierarchie, virtuální pamět BI-APS, 2011, Předn. 8.-10. 22 / 28
Inverzní tabulka stránek hashing 1 VA p d i d Page Table Hash Table (Hash) Page # PTE Chain PA Fyzická pamìt Linked list Frame # jeden vstup pro každý rámec hledání pomocí hašovací tabulky/funkce vzhledem k tomu, že více VA mohou být mapovány do stejného vstupu, je pro nalezení správné položky použito "chaining"techniky, typický počet kroků je 1 až 2 R. Lórencz (ČVUT FIT) Pamět ová hierarchie, virtuální pamět BI-APS, 2011, Předn. 8.-10. 23 / 28
Inverzní tabulka stránek asociatívní pamět 2 VA pid p d PA i d Page table } i pid p Hledání Fyzická pamìt Asociat vní pamìt R. Lórencz (ČVUT FIT) Pamět ová hierarchie, virtuální pamět BI-APS, 2011, Předn. 8.-10. 24 / 28
Segmentace Původně není vztažené k stránkování, ale v mnoha systémech je segmentace spojená se stránkováním. R. Lórencz (ČVUT FIT) Pamět ová hierarchie, virtuální pamět BI-APS, 2011, Předn. 8.-10. 25 / 28
Segmentace se stránkováním 1 Jednotlivé segmenty jsou implementované jako stránkovaný virtuální adresní prostor. R. Lórencz (ČVUT FIT) Pamět ová hierarchie, virtuální pamět BI-APS, 2011, Předn. 8.-10. 26 / 28
Segmentace se stránkováním 2 Ochrana může být specifikována lépe přes segment než přes stránku (sdílení). R. Lórencz (ČVUT FIT) Pamět ová hierarchie, virtuální pamět BI-APS, 2011, Předn. 8.-10. 27 / 28
Segmentace vs. stránkování Externí fragmentace typická pro segmentci, absolutní pamět ový prostor je k dispozici pro splnění požadavků, ale není souvisle obsazován. Interní fragmentace typická pro stránkování, alokovaná část paměti může být větší než je požadováno. R. Lórencz (ČVUT FIT) Pamět ová hierarchie, virtuální pamět BI-APS, 2011, Předn. 8.-10. 28 / 28