Physical Address Extension

Z Wikipedie, otevřené encyklopedie

Skočit na: Navigace, Hledání

Physical Address Extension (PAE) je v informačních technologiích metoda rozšíření adresního prostoru 32bitového procesoru Pentium Pro (tzv. i686 z roku 1995) a novějších z 32 bitů (max. 4 GiB RAM) na 36 bitů (max. 64 GiB RAM). Celková paměť osazená v počítači tak může být vyšší než 4 GiB, avšak 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), avšak neodstraňuje 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, může být větší paměť efektivně využita zejména na serverech s paměťově náročnými aplikacemi (snížením potřeby odkládání stránek na disk – viz virtuální paměť).

PAE režim vyžaduje jistou režii, avšak poskytuje také podporu NX bitu i na 32bitové architektuře, 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.[1] 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ů.

Obsah

[editovat] Technické řešení

Operační systém využívá pro adresaci paměti při zapnutém PAE rozšířené tabulky stránek (viz stránkování paměti). Pozice v tabulce stránek se po zapnutí PAE zvětšuje z 32 na 64 bitů, což vede 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).[2] Větší prostor v tabulce stránek umožňuje uložit doplňující informace, jako například NX bit (viz výše). Použití PAE 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 i připojená zařízení.

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.

[editovat] Aplikační rozhraní pro využití PAE

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.[2] 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.

[editovat] Podpora PAE v operačních systémech

[editovat] FreeBSD

FreeBSD podporuje PAE ve verzi 4.x počínaje verzí 4.9, 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.

[editovat] Linux

Linuxové jádro podporuje PAE od verze 2.6.[3] Pod Linuxem je plná podpora PAE dovolující na 32bitových procesorech využití až 64 GiB paměti.

[editovat] Solaris

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

[editovat] Windows

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

Verze Maximální Fyzická Paměť
Windows XP a WinXP SP2 4 GiB
Windows 2000 Professional 4 GiB
Windows 2000 Advanced Server 8 GiB
Windows 2000 Datacenter Server 32 GiB
Windows Server 2003 64 GiB
Windows Server 2008 64 GiB

[editovat] Jak využít 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. 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.

Pro potřeby úvahy o paměti, kterou má systém k dispozici, je nutno zahrnou veškerou paměť, tj. operační paměť RAM, odkládací prostor pro virtuální paměť (nesprávně swap) i paměť doplňujících karet (zejména grafické karty).[6] Nelze však operovat s prostým součtem všech těchto pamětí, protože s odkládacím prostorem na disku i s pamětí grafické karty se pracuje specifickým způsobem.

Pokud má počítač 2 GiB nebo méně, využije PAE režim pouze v případě, že využívá speciálně naprogramované programy, u kterých by to mělo smysl. Je-li paměti do 4 GiB, může PAE paměť využít, avšak ve výsledku může výkon počítače poklesnout (v závislosti na tom, jak 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.

Nejlepším řešením je však použití 64bitového operačního systému (umožňuje-li to procesor).

[editovat] Microsoft 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. 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 (Microsoft Exchange Server, Microsoft SQL Server a podobně).[7]

Máte-li v počítači osazeno maximálně 4 GiB paměti (lze uvažovat i paměť osazenou na grafické kartě), 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). Paměť nad 2 GiB ani s parametrem /PAE jeden proces nevyužije (jedině pomocí speciálního rozhraní, ale musí být tak naprogramován)[2], 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.[8]

V novějších systémech Microsoft Windows[8] lze využít PAE tak, že je přidán přepínač /PAE do souboru „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č „3GB“, 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 GB RAM). Pokud se v systému stále zobrazuje pouze 3,xx GiB RAM zapněte v BIOSu funkci Mapování paměti nad 3 GiB (na základních deskách Asus se tato funkce nazývá „Memory Remap“).

[editovat] Linux

Linux umožňuje jádro přeložit na téměř libovolnou kombinaci, případně pomocí PAE využít i odděleného prostoru pro jádro i proces, takže proces má pak k dispozici celé 4 GiB lineárního prostoru paměti, avšak za cenu vyšší režie při systémových volání jádra. Pro podporu různých režimů musí být jádro příslušně přeloženo. 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.

[editovat] Externí odkazy

[editovat] Reference

  1. Physical Address Extension - PAE Memory and Windows (anglicky)
  2. a b c How PAE X86 Works – Microsoft TechNet (anglicky)
  3. Wonderful World of Linux 2.6 [online]. [s.n.]. Dostupné: <[1]>.
  4. Memory Limits for Windows releases [online]. Microsoft, [cit. 2007-12-10]. Dostupné: <[2]>.
  5. Intel Physical Addressing Extensions (PAE) in Windows 2000 [online]. Microsoft, [cit. 2007-12-29]. Dostupné: <[3]>.
  6. Některé grafické karty (tzv. onboard) používají sdílenou paměť (tj. část operační paměti) a žádnou vlastní paměť nemají, avšak POST test ji při startu počítače obvykle odečte a v nastavení BIOSu (tzv. setup) je na úvodní stránce zobrazen správný celkový údaj.
  7. Memory Support and Windows Operating Systems (anglicky)
  8. a b Podpora velkých pamětí v systémech Microsoft Windows

V tomto článku je použit překlad textu z článku Physical Address Extension na anglické Wikipedii.