Physical Address Extension

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Physical Address Extension (PAE) je v informačních technologiích metoda rozšíření adresního prostoru 32bitového režimu procesorů Pentium Pro a kompatibilních (včetně novějších, tj. procesory i686 od roku 1995) tak, aby bylo možné využít v počítači až 64 GiB RAM. Kvůli zpětné kompatibilitě je však v rámci jedné strojové instrukce stále možné adresovat pouze 4 GiB RAM (tj. stejné omezení, jako mají procesory od verze i386). Kvůli návrhu jader operačních systémů pak ve skutečnosti typicky ještě méně (2 nebo 3 GiB).

Rozšíření PAE ztrácí význam u 64bitových procesorů nástupnické architektury x86-64 uvedených na trh v roce 2003, kde je možné díky návrhu přímo adresovat až 16 EiB (264) operační paměti (aktuálně však méně).

Technické řešení

Procesor Intel 80386 v roce 1986 přinesl 32bitový chráněný režim, ve kterém je pro adresaci paměti použita 32bitová sběrnice, takže lze adresovat 232 bajtů operační paměti (4 GiB RAM). Proto strojové instrukce obsahují 32bitové adresy, které popisují umístění dat v RAM. +more Na počátku 90. let však začalo toto omezení způsobovat při práci s většími objemy dat potíže (pracovní stanice, servery), a proto přinesl Intel v roce 1995 rozšíření PAE, které umožňuje využít až 64 GiB RAM. PAE je přítomno ve všech následujících procesorech (kromě několika výjimek u Pentium M) a řeší problém tak, aby byla zachována 100 % zpětná kompatibilita pro aplikační software, což však přineslo jen částečné řešení problému a k tomu další komplikace (které je však možné řešit na úrovni operačního systému). Ne vždy je však možné využít plných 64 GiB, protože maximální množství osazené paměti je závislé na konstrukci základní desky.

Zapnutím PAE se rozšíří počet linek adresy v paměti RAM z 32 bitů (max. 4 GiB) na 36 bitů (max. +more 64 GiB RAM). Pozice v tabulce stránek (viz stránkování paměti) se po zapnutí PAE zvětšuje z 32 bitů (20 bitů na číslo stránky, zbytek pro příznaky) na 64 bitů (24 bitů pro číslo stránky, zbytek pro příznaky). Kromě rozšíření počtu příznaků, čehož využívá například NX bit, vede zdvojnásobení délky položky k dramatickému nárůstu nároků pro ukládání tabulek stránek. Proto se při zapnutí PAE rozšiřuje počet úrovní tabulek stránek, které se používají (v Microsoft Windows ze 2 na 3). PAE používá buď standardní 4 kiB stránky nebo 2 MiB stránky, které jsou pak ve fyzické paměti odkazovány přímo.

Adresy míst v paměti i registry procesoru zůstávají stejné, což umožňuje běh programů bez jejich změny (100 % zpětná kompatibilita na aplikační úrovni), avšak zachovává omezení maximální velikosti lineárního adresního prostoru jednoho procesu na 4 GiB. Protože každý proces může alokovat jinou část paměti, je využití větší paměti závislé na konkrétních podmínkách: více současně spuštěných procesů, snížení potřeby odkládání stránek na disk (viz virtuální paměť), zvětšení cache pro pevný disk a podobně.

Nevýhody

Obsluha PAE zvyšuje režii operačního systému jak při změně kontextu (přepínání úloh při využití multitaskingu), tak při systémovém volání (v závislosti na aktuálním modelu rozvržení paměti). I přes jistou režii poskytuje PAE podporu NX bitu pro 32bitový režim, a proto je v současných systémech obvykle zapnut, i když pak není využit pro zpřístupnění větší paměti (od Windows XP SP2). +more Použití PAE s pamětí nad 4 GiB komplikuje funkci ovladačů, protože při použití adres nad hranicí 4 GiB je nutné po 32bitové PCI sběrnici přenášet adresu ve dvou cyklech, což musí podporovat ovladače i připojená vstupně-výstupní zařízení.

Při použití 64bitových procesorů a 64bitových operačních systémů nemá PAE význam a není ani podporováno. PAE je však dostupné v 32bitovém režimu 64bitových procesorů.

Využití PAE

Po spuštění počítače (IBM PC kompatibilní) je veškerá dostupná paměť RAM ve spolupráci BIOSu a čipsetu namapována do adresního prostoru procesoru. Tyto informace jsou uloženy a dále využity při zavedení jádra operačního systému, které tak získá přehled o dostupné paměti RAM. +more Podporuje-li procesor rozšíření PAE, je při použití 32bitového jádra operačního systému nutné rozhodnout, jestli bude režim PAE použit. Rozhodnutí je závislé na velikosti používané operační paměti RAM a požadovaných provozních vlastnostech systému.

Rezervovaný prostor pro PCI zařízení

Do celkové dostupné paměti se započítává nejen paměť RAM (v současné době typicky v podobě DDR2 modulů), ale i paměť osazená na doplňujících kartách (typicky grafická karta)) která je obvykle systému přímo zpřístupněna (ale nemusí být zpřístupněna celá). Z tohoto důvodu je při úvodní inicializaci v prvních 4 GiB rezervována oblast velká 0,5 až 1 GiB pro zařízení připojené přes PCI sběrnici. +more Proto může být přímo dostupný 4 GiB adresní prostor zaplněn již při osazení 3 GiB paměti v paměťových RAM modulech. Zároveň nemůže být paměť grafické karty, která přesahuje rezervovanou hodnotu pro PCI sběrnici, přístupná přímo. Paměť grafické karty, která nemůže být namapována do rezervovaného prostoru nebo paměť RAM, která do tohoto prostoru zasahuje, může být namapována nad hranici 4 GiB, avšak přemapování paměti je nutné ručně zapnout v nastavení BIOSu aktivací volby Mapování paměti nad 3 GiB (na základních deskách Asus se tato funkce nazývá „Memory Remap“).

NX bit

Rozšíření PAE poskytuje zvětšením položky v tabulce stránek podporu pro NX bit, avšak ne všechny procesory s podporou PAE obsahují také podporu NX bitu (například AMD Duron). Seznam procesorem podporovaných rozšíření je možné zjistit pomocí instrukce CPUID (ve Windows nějakým diagnostickým programem, v Linuxu jednoduše výpisem souboru /proc/cpuinfo). +more NX bit umožňuje znemožnit některé útoky na chybně naprogramované aplikace. Úseky paměti lze chránit též pomocí limitů segmentů, což je však pomalejší a komplikovanější, než hardwarově řešený NX bit. Ve většině systémů je proto PAE pro svůj přínos k bezpečnosti systému použit i přes jisté snížení výkonu počítače, pokud procesor NX bit podporuje (v Microsoft Windows XP od SP 2).

Aplikační rozhraní

Pro aplikace je standardně paměť mimo hranice 4 GiB přímo nedostupná, avšak existují metody, jak ji využít nepřímo. V systémech Microsoft Windows je k dispozici rozhraní AWE. +more V unixových systémech jsou k dispozici různé techniky, jako například mmap pro mapování souborů do paměti do adresního prostoru a mimo něj podle potřeby.

Podpora PAE v operačních systémech

V běžném 32bitovém systému může jeden proces využívat méně než 4 GiB paměti, protože do stejného adresního prostoru je mapováno i jádro operačního systému. Společný adresní prostor jádra i procesu umožňuje snížení režie nutné pro přebudování tabulek stránek v okamžiku, kdy se přestupuje při vykonávání kódu z prostoru jádra (kernel space) do prostoru procesu (user space) a naopak. +more Hranice mezi uživatelským a jaderným prostorem je kvůli snadné kontrole jejího nežádoucího překročení obvykle stanovena obsahem jednoho nebo dvou vrchních bitů adresy, takže je 4 GiB prostor rozdělen na 2 + 2 GiB, případně 3 + 1 GiB.

Je-li paměti 3 až 4 GiB, může aktivace PAE využít celou paměť, avšak ve výsledku může výkon počítače poklesnout (v závislosti na tom, co běžící procesy převážně dělají). Je-li paměti více, než 4 GiB, bude zřejmě využití PAE přínosem. +more Nejlepším řešením je však použití 64bitového operačního systému (umožňuje-li to procesor).

Windows

Microsoft Windows používá standardně model 2 + 2 GiB, tj. proces může používat maximálně 2 GiB lineárního adresního prostoru. +more Systém lze přepnout do režimu 3 + 1 GiB při startu systému (parametrem /3, viz níže), avšak paměť nad 2 GiB mohou využít jen speciálně přeložené programy, které mají ve spustitelném souboru nastaven příznak IMAGE_FILE_LARGE_ADDRESS_AWARE. Mezi takové paměťově náročné programy patří Microsoft Exchange Server, Microsoft SQL Server a podobně. Paměť nad 2 GiB proto i přes použití parametru /PAE jeden proces přímo nevyužije (jen s pomocí speciálního rozhraní, ale musí být tak naprogramován), ale využije se pro systémovou cache a rozdělí se mezi další procesy. Je-li kombinován parametr /3G a /PAE, je velikost využité paměti omezena na 16 GiB.

PAE je podporováno v následujících 32bitových verzích OS Windows: :

VerzeMaximální Fyzická Paměť
Windows XP4 GiB
Windows 2000 Professional4 GiB
Windows 2000 Advanced Server8 GiB
Windows 2000 Datacenter Server32 GiB
Windows Server 200364 GiB
Windows Server 200864 GiB

Máte-li v počítači osazeno maximálně 3 GiB paměti, není potřeba nijak zasahovat do jeho nastavení. Máte-li paměti více, využijte přepínač /PAE (bez tohoto přepínače sice operační systém PAE využívá, ale jen pro podporu NX bitu). +more Do souboru C:\boot. ini (jsou u něj nastaveny atributy skrytý a jen pro čtení - pro úpravu odškrtněte v „Možnosti složky“ → „Zobrazení“ záložku „Skrýt chráněné soubory operačního systému…“ a vypněte u souboru atribut „Jen pro čtení“) smažte přepínač „/3“, pokud jej boot. ini obsahuje (většinou jen u OS Server Edition). Přidejte za „multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect“ přepínač „/PAE“. Po restartu byste měli vidět 4 GiB RAM (tj. 4,1955xx GiB RAM). Pokud se v systému stále zobrazuje pouze 3,xx GiB RAM zapněte v setupu BIOSu funkci Mapování paměti nad 3 GiB (na základních deskách Asus se tato funkce nazývá „Memory Remap“).

Linux

Linuxové jádro podporuje v 32bitovém režimu PAE včetně přístupu k 64 GiB paměti od verze 2. 6. +more Jádro je nutné přeložit s podporou PAE. Je možné vybrat, zda bude adresní prostor rozdělen mezi jádro a uživatelský prostor (1+3, 2+2, 3+1) nebo úplně oddělen (4+4, avšak za cenu vyšší režie při systémových volání jádra). Tvůrci linuxových distribucí obvykle poskytují uživateli na výběr dvě nebo více různých jader, přičemž uživatel (nebo instalační program) vybere nejlépe vyhovující variantu vzhledem k hardware použitého počítače.

Vzhledem k vysoké rychlosti současných procesorů a tím snižujícího se podílu režie při použití PAE, používají distribuce obvykle pro procesory i686 pouze jádra s podporou PAE.

FreeBSD

FreeBSD podporuje PAE ve verzi 4. x počínaje verzí 4. +more9, ve verzi 5. x od verze 5. 1 a ve všech verzích 6. x a novějších. Pro podporu je vyžadováno jádro s podporou PAE. Ne všechny ovladače dovolují použití více než 4 GiB fyzické paměti.

Solaris

Solaris podporuje PAE od OS Solaris 7. Ne všechny ovladače (ovladače třetích stran) podporují více než 4 GiB fyzické paměti

Reference

Externí odkazy

[url=http://support. microsoft. +morecom/kb/833721]Možnosti přepínačů v souboru Boot. ini[/url] * [url=http://support. microsoft. com/kb/291988/cs]Popis funkce Tuning (ladění) pro systémy se 4 GiB paměti RAM a přepínače Rozšíření fyzické adresy[/url] * [url=http://support. microsoft. com/kb/888137]The RAM reported by the System Properties dialog box and the System Information tool is less than you expect in Windows Vista or in Windows XP Service Pack 2 or later version[/url] .

Kategorie:Počítačová paměť

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top