Konstrukční uspořádání PC –
typy pamětí a jejich funkce v PC
ROM BIOS · CMOS RAM · DRAM · SDRAM · DDR1–5 · Cache · ECC · Dual/Quad Channel · Adresace paměti
1. Paměťová hierarchie PC – proč existuje více typů pamětí
Klíčovou otázkou při návrhu počítače je: proč nemáme jen jeden typ paměti? Odpověď tkví ve fyzikálních a ekonomických zákonech. Velmi rychlá paměť je extrémně drahá a spotřebovává hodně energie. Velmi levná paměť je pomalá. Fyzikálně neexistuje způsob, jak vytvořit velkou, levnou a zároveň rychlou paměť. Tento kompromis vedl k vytvoření paměťové hierarchie – systému několika vrstev pamětí s různou rychlostí, velikostí a cenou.
Procesor pracuje na frekvencích 3–5 GHz – za jednu sekundu provede miliardy operací. Jeho interní registry a L1 cache drží krok díky tomu, že jsou fyzicky součástí procesoru. Operační paměť DRAM je již výrazně pomalejší a CPU na ni musí čekat (tzv. wait states). Pevný disk je o 5–6 řádů pomalejší než registry. Úkolem celé hierarchie je zajistit, aby CPU co nejméně čekal – tomu slouží cache paměti, jejichž princip vysvětlíme v kapitole 6.
2. ROM paměti – ROM BIOS, EPROM, Flash a CMOS RAM
Na základní desce PC najdeme kromě operační paměti DRAM ještě dvě speciální typy pamětí: firmware paměť pro BIOS/UEFI a konfigurační CMOS paměť. Obě jsou nevolatilní – data uchovávají i bez napájení.
ROM (Read-Only Memory) – základní princip
ROM je paměť, jejíž obsah byl zapsán při výrobě a nelze ho za normálního provozu měnit. Fyzicky je realizována maticí spojů ve vrstevnaté struktuře – bit "1" nebo "0" je dán přítomností nebo absencí konkrétního spoje. Je tedy statická, rychlá, bez nutnosti obnovy. Nevýhoda: obsah nelze změnit vůbec. Používala se pro starý BIOS, kdy bylo jasné, že firmware se nikdy měnit nebude.
PROM (Programmable ROM)
PROM lze jednou naprogramovat po výrobě. Každý bit obsahuje tavnou propojku (fuse). Programátor ji "přepálí" proudovým impulzem – odtud název jednou programovatelná. Tento proces je nevratný.
EPROM (Erasable Programmable ROM)
EPROM přinesla revoluci: lze ji smazat a přeprogramovat, ale mazání vyžaduje expozici UV světlem po dobu 15–20 minut (odtud charakteristické průhledné okénko na pouzdru čipu). Data uchovává pomocí plovoucí hradlové struktury MOS tranzistoru (floating gate) – elektrony zachycené v izolaci mění práh tranzistoru. UV záření elektrony uvolní. Programování probíhá elektrickým proudem přes speciální programátor.
EEPROM a Flash paměť – dnešní standard BIOSu
EEPROM (Electrically Erasable PROM) lze mazat i programovat elektricky – bez UV světla, přímo v cílovém zařízení. To umožnilo flashování BIOSu přes software. Flash paměť je moderní varianta EEPROM s buněčnou strukturou NOR nebo NAND. Mazání probíhá po blocích (sektorech), zápis pak po bajtech nebo stránkách. Flash v NOR provedení (jakou mají BIOS čipy) umožňuje přímý (random) přístup pro čtení – CPU může spouštět kód přímo z flash bez kopírování do RAM (execute in place, XIP). Kapacita BIOS flash čipu je typicky 32–128 Mbit.
CMOS RAM – paměť nastavení BIOSu
CMOS RAM (Complementary Metal-Oxide-Semiconductor RAM) je malá (64–256 bajtů) nevolatilní paměť na základní desce napájená lithiovou knoflíkovou baterií CR2032. Ukládá uživatelská nastavení BIOSu: aktuální datum a čas (RTC – Real Time Clock integrovaný v čipu), pořadí bootovacích zařízení, nastavení frekvence RAM a procesoru, heslo BIOSu, a konfiguraci periferií. CMOS je jiný typ paměti než DRAM – má velmi nízkou spotřebu (mikroampéry) díky CMOS technologii, proto ji baterie udrží léta. Po vybití baterie (5–10 let) se CMOS vynuluje, počítač ztratí čas a resetuje se nastavení na výchozí hodnoty.
3. SRAM – statická RAM a princip buňky
SRAM (Static Random Access Memory) si pamatuje data pomocí bistabilního klopného obvodu – flip-flopu. Každá buňka obsahuje 6 tranzistorů (nebo 4 u jednodušší varianty). Klopný obvod má dva stabilní stavy ("0" a "1") a bez napájení přechází mezi nimi. Pokud napájení zůstane, data zůstanou neomezeně dlouho bez jakékoli obnovy – odtud název statická. SRAM nevyžaduje refresh, je okamžitě přístupná a velmi rychlá (přístupová doba 0,5–10 ns).
Nevýhoda SRAM je jasná z obrázku buňky: 6 tranzistorů na bit oproti 1 tranzistoru + 1 kondenzátoru u DRAM. SRAM je proto 4–6× větší na čipu a tedy i mnohem dražší. Z tohoto důvodu se SRAM nepoužívá jako hlavní operační paměť (musela by být extrémně drahá), ale výhradně jako cache paměť, kde její rychlost má největší smysl.
4. DRAM – dynamická RAM, princip a adresování
DRAM (Dynamic Random Access Memory) je nejrozšířenější typ hlavní operační paměti PC. Každý bit je uložen jako náboj v miniaturním kondenzátoru spolu s jedním přístupovým tranzistorem – odtud 1T1C struktura (1 tranzistor, 1 kondenzátor). Díky tomu je DRAM výrazně hustší než SRAM – na jeden čip se vejde gigabity dat. Cena na bit je proto mnohonásobně nižší.
Problém: kondenzátor se samovolně vybíjí. Náboj "uteče" díky svodovým proudům ve zlomcích milisekundy. Proto musí paměťový řadič každých ~64 ms přečíst a znovu zapsat obsah všech řádků paměti – tento proces se nazývá refresh. Právě proto se paměť jmenuje dynamická – data se musí neustále obnovovat. Zatímco probíhá refresh konkrétního řádku, k tomuto řádku nelze přistoupit, což způsobuje drobné zpoždění.
4.1 RAS/CAS adresování a banky SDRAM
DRAM buňky jsou uspořádány do dvourozměrné matice (řádky × sloupce). K buňce na průsečíku řádku R a sloupce C se přistupuje ve dvou krocích: nejprve je poslána adresa řádku (aktivovaná signálem RAS – Row Address Strobe), pak adresa sloupce (CAS – Column Address Strobe). Toto se nazývá multiplexované adresování – adresové vodiče slouží jednou pro adresu řádku, podruhé pro adresu sloupce. Díky tomu stačí méně adresových vodičů.
Po aktivaci RAS se celý řádek načte do rychlého vyrovnávacího registru (row buffer nebo sense amplifiers – zesilovače signálu). Jakmile je řádek v registru, přístup ke sloupcům ve stejném řádku (tzv. CAS-only přístup) je mnohem rychlejší – nemusí se znovu aktivovat RAS. Toho využívají burst přístupy (přenáší více slov v jednom RAS cyklu).
Banky paměti (memory banks) jsou nezávislé sekce DRAM čipu nebo modulu, ke kterým lze přistupovat paralelně. Každá banka má vlastní sadu sense amplifierů a vlastní row buffer. Moderní DDR4/DDR5 čipy mají 8 nebo 16 bank. Klíčová výhoda: zatímco v bance A probíhá precharge (uzavírání řádku), banka B může zároveň obsluhovat požadavek CPU. Tím se výrazně zvyšuje efektivní propustnost paměti při střídavém přístupu do různých bank.
SDRAM (Synchronous DRAM, od roku 1993) přinesla zásadní změnu: synchronizaci s hodinovým signálem FSB (Front Side Bus, sběrnice mezi CPU a paměťovým řadičem). Asynchronní DRAM reagovala na příkazy kdykoliv, což komplikovalo timing. SDRAM přijímá příkazy jen na náběžné hraně hodinového signálu, a výsledky dodává po přesném počtu hodinových cyklů. To zjednodušilo řízení a umožnilo vyšší frekvence. Typické SDRAM frekvence: 66, 100 a 133 MHz (PC66, PC100, PC133).
5. DDR, DDR2, DDR3, DDR4 a DDR5 – evoluce synchronní RAM
DDR (Double Data Rate) paměti přenášejí data na obou hranách hodinového signálu – jak na náběžné, tak na sestupné. Tím se efektivní přenosová frekvence zdvojnásobí oproti SDRAM bez zvýšení frekvence vlastního hodinového signálu. Pokud hodiny běží na 100 MHz, DDR efektivně přenáší data na 200 MHz. Tento princip se zachoval ve všech generacích DDR.
5.1 Technologie přenosu dat – prefetch buffer
Základní paměťové buňky DRAM se s každou generací DDR tolik nezrychlují – to by bylo fyzicky velmi obtížné. Místo toho se zvyšuje šířka prefetch bufferu. Prefetch je technika, kde paměť z buněčného pole načte více bitů najednou (2n, 4n, 8n) a tyto bity pak pošle přes I/O rozhraní na sběrnici v rychlém sledu. Je to jako naložit celý bagr místo lopaty, i když samotný pohyb lopaty by byl stejně pomalý.
DDR1 používá 2n prefetch: při každém přístupu se z buněčného pole načtou 2 bity a pošlou na sběrnici na obou hranách jednoho hodinového cyklu. DDR2 zavedl 4n prefetch: načte se 4 bity, I/O rozhraní běží dvakrát rychleji. DDR3 používá 8n prefetch: 8 bitů najednou, I/O čtyřikrát rychleji než buňky. DDR4 zachovává 8n prefetch, ale zvyšuje frekvenci samotných I/O bufferů a zlepšuje signálovou integritu (POD terminace). DDR5 přechází na 16n prefetch a zavádí dva 32bitové kanály na jeden fyzický modul (místo jednoho 64bitového).
5.2 Provedení a moduly – SIMM, DIMM, SO-DIMM
SIMM (Single Inline Memory Module) byl první standardní modul – má 30 nebo 72 pinů. Charakteristika: piny na obou stranách plošného spoje jsou elektricky propojeny (=stejný signál). Starší desktop paměti z éry 486 a Pentium I.
DIMM (Dual Inline Memory Module) přišel s SDRAM a je standardem dodnes. Piny na obou stranách jsou elektricky odděleny – každá strana nese jiné signály. Datová šířka standardního DIMM je 64 bitů (nebo 72 bitů s ECC). Délka standardního desktopového DIMM: 133,35 mm. Každá generace DDR má fyzicky jiný počet pinů a jinak umístěný zářez (key), aby nebylo možné záměnné vložení.
SO-DIMM (Small Outline DIMM) je zmenšená verze pro notebooky a malé systémy. Délka jen 67,6 mm (DDR4/DDR5). SO-DIMM má stejnou funkčnost jako plný DIMM, jen v menším formátu.
RDIMM (Registered DIMM) obsahuje navíc registrační obvody (Register, odtud R) mezi paměťovým řadičem a DRAM čipy. Register zachytává příkazy a adresy, čímž snižuje elektrickou zátěž na piny řadiče – umožňuje přidat více modulů bez nestability. Cena: o jeden hodinový cyklus vyšší latence. Používá se výhradně na serverech a workstation deskách.
LRDIMM (Load-Reduced DIMM) je vylepšení RDIMM pro maximální kapacitu. Místo registru použije buffer pro datové signály i pro adresy – výrazně snižuje zátěž na řadič a umožňuje ještě více modulů na kanál. Pro serverové systémy s terabajty RAM.
| Generace | Piny (DIMM) | Napájení | Frekvence buněk | Efektiv. frekv. | Šířka prefetch | Max. kapacita modulu |
|---|---|---|---|---|---|---|
| SDRAM | 168 | 3,3 V | 66–133 MHz | 66–133 MHz | 1n | 1 GB |
| DDR1 | 184 | 2,5 V | 100–200 MHz | 200–400 MT/s | 2n | 1 GB |
| DDR2 | 240 | 1,8 V | 100–200 MHz | 400–1066 MT/s | 4n | 4 GB |
| DDR3 | 240 | 1,5 V (1,35 V LP) | ~200 MHz | 800–2133 MT/s | 8n | 8 GB |
| DDR4 | 288 | 1,2 V | ~200 MHz | 1600–3200 MT/s | 8n | 32 GB |
| DDR5 | 288 | 1,1 V | ~200 MHz | 3200–8400 MT/s | 16n | 128 GB |
5.3 Označení pamětí – DDR vs. PC notace
Paměti mají dvojí systém označování, který způsobuje zmatení. Je důležité vědět, čím se liší.
DDR označení (například DDR400, DDR2-800, DDR3-1600, DDR4-3200) uvádí efektivní přenosovou frekvenci v megatransferech za sekundu (MT/s). DDR400 přenáší 400 milionů přenosů za sekundu. Číslo za DDR je tedy efektivní frekvence, nikoli fyzická frekvence hodin.
PC označení (například PC3200, PC2-6400, PC3-12800, PC4-25600) uvádí teoretickou přenosovou šířku pásma modulu v MB/s. Výpočet:
Datová šířka standardního DIMM je 64 bitů = 8 bajtů. Takže DDR400 → 400 MT/s × 8 B = 3 200 MB/s → označení PC3200. Nebo DDR4-3200 → 3 200 MT/s × 8 B = 25 600 MB/s → PC4-25600. Je to přímý přepočet, stačí znát datovou šířku sběrnice.
5.4 ECC – Error Correcting Code paměti
ECC (Error Correcting Code) paměti mají schopnost automaticky detekovat a opravovat chyby v přenášených datech. Standardní DIMM je 64bitový (8 datových čipů × 8 bitů). ECC DIMM je 72bitový – navíc má 9. čip (nebo rozšíření stávajících čipů) věnovaný ECC kódu.
Jak ECC funguje? Používá Hammingův kód (nebo jeho rozšíření SEC-DED – Single Error Correction, Double Error Detection). Při každém zápisu 64 bitů dat vypočítá řadič 8 bitů ECC kódu a uloží je spolu s daty. Při čtení řadič znovu vypočítá ECC z přečtených dat a porovná s uloženým ECC. Pokud se liší, určí (pomocí syndromového kódu), který přesný bit je chybný, a opraví ho. Dokáže opravit jeden chybný bit a detekovat dva chybné bity (ty ale neopraví, jen signalizuje fatal error).
Chyby v paměti mohou vznikat z několika příčin: kosmické záření (vysokoenergetické částice způsobují tzv. bit flip – náhodná změna bitu; v letadle je toto riziko 100× vyšší než na zemi), alfa záření z příměsí v pouzdru čipu, elektromagnetické rušení, a fyzická degradace buněk. Pro normální domácí PC je riziko chyby malé. Pro servery, databáze, bankovní systémy a vědecké výpočty je ECC paměť absolutní nutností – jedna nekorigovaná chyba v datech může způsobit pád OS nebo korumpci databáze.
6. Cache paměť – HW cache a SW cache
Cache paměť (česky zásobníková paměť nebo skrytá paměť) je malá, ale velmi rychlá SRAM paměť, která stojí mezi procesorem a pomalejší hlavní pamětí DRAM. Jejím cílem je snížit průměrnou dobu přístupu k datům tím, že nejčastěji používaná data udržuje blízko CPU.
Proč cache vůbec funguje? Protože programy vykazují dvě klíčové vlastnosti: časovou lokalitu (pokud byl přistoupen adresa X, pravděpodobně se k ní bude přistupovat opět brzy – např. proměnná v smyčce) a prostorovou lokalitu (pokud byl přistoupen adresa X, pravděpodobně brzy bude potřeba i adresa X+1, X+2... – např. prvky pole). Cache využívá obou těchto vlastností.
HW cache – hardwarová cache v CPU
Hardwarová cache je přímo integrována do procesoru a spravuje se automaticky, bez zásahu programátora nebo OS. Moderní procesory mají tři (nebo čtyři) úrovně cache:
L1 cache (Level 1) je nejblíže jádrům CPU – fyzicky integrována uvnitř každého jádra. Přístupová doba typicky 3–5 hodinových cyklů (~1 ns). Kapacita typicky 32–64 KB (někdy 128 KB+ u moderních CPU) na jádro. Dělí se na L1 datová cache (L1d) a L1 instrukční cache (L1i), protože procesor tyto dva typy dat přistupuje různými způsoby.
L2 cache je větší a o trochu pomalejší (10–20 cyklů, ~4 ns). Kapacita typicky 256 KB – 1 MB na jádro. U moderních CPU je L2 stále privátní pro každé jádro.
L3 cache je sdílena mezi všemi jádry procesoru (anglicky Last Level Cache, LLC). Přístupová doba 30–60 cyklů. Kapacita 8–96 MB (u serverových CPU až stovky MB). Když jádro A potřebuje data, která jádro B má v L1/L2, komunikace přes L3 je výrazně rychlejší než přes DRAM.
Fungování cache: CPU potřebuje data na adrese X. Nejdříve se podívá do L1 cache – pokud je data tam (cache hit), přečte je okamžitě. Pokud ne (cache miss), jde do L2, pak L3, pak do DRAM. Pokud data nejsou v žádné cache, musí CPU čekat na DRAM (100+ cyklů zpoždění). Správná implementace cache tedy dramaticky snižuje průměrnou latenci přístupu k datům.
Způsoby mapování cache – přímé, asociativní
Přímé mapování (Direct-mapped): každý blok hlavní paměti může být umístěn jen do jednoho konkrétního řádku cache (určeno adresou modulo počet řádků). Jednoduché a rychlé vyhledávání, ale může docházet ke konfliktům – dva různé bloky, které se mapují na stejný řádek, se navzájem "vyhazují" z cache (aliasing).
Plně asociativní (Fully Associative): blok může být uložen do libovolného řádku cache. Maximální flexibilita, žádné konflikty, ale pomalé vyhledávání (musí se porovnat se všemi řádky najednou).
Set-asociativní (Set-Associative): kompromis. Cache je rozdělena do setů (skupin), každý set obsahuje N řádků (N-way = N-cestná asociativita). Blok paměti se mapuje vždy do konkrétního setu, ale v rámci setu může být v libovolném řádku. Moderní CPU L1 cache je typicky 8-cestná, L2 8-16cestná, L3 16-32cestná.
SW cache – softwarová cache
Softwarová cache je cache realizovaná softwarem, ne speciálním hardwarem. Principiálně jde o stejný nápad – uchovávat kopie dříve vypočtených nebo přečtených dat v rychlejší paměti. Příklady: File system cache (OS udržuje nedávno přečtené bloky disku v RAM; proto čtení souboru podruhé je mnohonásobně rychlejší). CPU instruction cache v JIT kompilátorech. DNS cache (výsledky překladu doménových jmen). Webový browser cache (stažené obrázky, CSS, JS soubory). Memcached/Redis (databázová cache pro webové aplikace).
7. Časování pamětí – latence CL, tRCD, tRP, tRAS
Latence paměti popisuje, kolik hodinových cyklů musí CPU čekat na data po odeslání požadavku. Existují čtyři hlavní parametry, které se uvádějí jako čtveřice čísel na štítku každého modulu (například 9-9-9-24 nebo 16-18-18-38):
CL (CAS Latency) je nejdůležitější parametr. Udává počet hodinových cyklů mezi okamžikem, kdy řadič paměti odešle příkaz ke čtení konkrétního sloupce (CAS), a okamžikem, kdy jsou data dostupná na datové sběrnici. Typické hodnoty: DDR3 = CL 9–11, DDR4 = CL 14–19, DDR5 = CL 32–40.
tRCD (RAS to CAS Delay) je čas (v hodinových cyklech) od aktivace řádku (příkaz RAS / ACTIVATE) do okamžiku, kdy lze odeslat příkaz ke čtení nebo zápisu konkrétního sloupce. Fyzicky jde o čas potřebný pro nabití sense amplifierů, které zachytí náboj z buněk aktivovaného řádku.
tRP (Row Precharge time) je čas potřebný k uzavření aktivního řádku (precharge) a přípravě paměti k aktivaci nového řádku. Při prechargi se kondenzátory sense amplifierů vrátí do neutrálního stavu. Než tato operace skončí, nelze otevřít jiný řádek.
tRAS (Row Active time / Active to Precharge Delay) je minimální čas, po který musí zůstat řádek otevřený. Platí: tRAS ≥ CL + tRCD + 2 (přibližně). Příliš krátké tRAS by způsobilo, že data se nestihnou zapsat zpět do buněk při refresh operaci (data by se ztratila).
Proč mají DDR5 moduly při 6 400 MT/s CL = 32–40, zatímco DDR3 na 1 600 MT/s měly CL = 9–11? Protože CL se uvádí v hodinových cyklech, nikoli v ns. Skutečná latence v nanosekundách:
DDR3-1600 CL11: 11 ÷ (800 MHz) = 13,75 ns. DDR4-3200 CL22: 22 ÷ (1600 MHz) = 13,75 ns. Skutečná latence je tedy přibližně stejná! Vyšší číslo CL u vyšší generace kompenzuje vyšší frekvenci. Proto při porovnání pamětí je vždy nutné přepočítat CL na nanosekundy, ne jen porovnávat čísla CL.
8. Multi-channel struktury – Dual, Triple a Quad Channel
Multi-channel technologie je jedním z nejjednodušších způsobů, jak zdvojnásobit (nebo více) propustnost paměťové sběrnice bez výměny samotných modulů. Princip je přímočarý: místo jednoho 64bitového kanálu se používají dva (nebo více) nezávislé 64bitové kanály, ke kterým paměťový řadič přistupuje paralelně.
Single Channel: jeden kanál, 64bitová sběrnice. Maximální propustnost: 64 ÷ 8 = 8 B × frekvence. Například DDR4-3200 single channel: 3 200 MT/s × 8 B = 25,6 GB/s.
Dual Channel: dva paralelní kanály, efektivně 128bitová sběrnice. Maximální propustnost: 25,6 GB/s × 2 = 51,2 GB/s. Aby Dual Channel fungoval, musí být v obou kanálech identické nebo párované moduly. Základní deska obvykle barevně označuje sloty pro Dual Channel – moduly musí být vloženy do párových slotů (typicky A2+B2 nebo DIMM1+DIMM3). Pokud se vloží modul jen do jednoho kanálu, systém běží v Single Channel.
Triple Channel: tři kanály, 192bitová sběrnice. Používal se u Intel Nehalem (Core i7-9xx) s X58 čipsetem (2008–2012). Vyžadoval tři moduly stejné kapacity a frekvence.
Quad Channel: čtyři kanály, 256bitová sběrnice. Používá se u Intel Xeon, AMD EPYC a Intel Core X (HEDT platformy – Skylake-X, Cascade Lake-X). Poskytuje propustnost přes 100 GB/s. Pro servery s DDR5 je standardem.
FB-DIMM je zajímavá serverová technologie z pohledu multi-channel: zatímco standardní RDIMM modulů lze na jeden 64bitový kanál zapojit max. 2–4 (kvůli elektrické zátěži), FB-DIMM jich zvládne až 8, protože řetězení přes AMB buffer izoluje elektrický vliv každého modulu. Cena: vyšší latence a spotřeba (AMB chip spotřebuje ~6 W navíc). Dnes nahrazena technologií LRDIMM.
9. Souvislost adresace RAM s BIOS a UEFI – logická organizace operační paměti
Aby bylo pochopení adresace paměti kompletní, je třeba znát historii, protože část paměťového prostoru je stále rezervována z historických důvodů – a to ovlivňuje moderní systémy dodnes.
Konvenční paměť (Base Memory, 0–640 KB)
Intel 8086 (1978) měl 20bitovou adresovou sběrnici – dokázal adresovat 2²⁰ = 1 048 576 bajtů = 1 MiB. Z tohoto megabajtu bylo prvních 640 KB (adresy 0x00000–0x9FFFF) určeno pro programy a OS. Tato oblast se nazývá konvenční paměť nebo base memory. DOS operoval výhradně v této oblasti. Horních 384 KB (0xA0000–0xFFFFF) bylo rezervováno pro systémové účely: video paměť (0xA0000–0xBFFFF pro EGA/VGA), ROM BIOS rozšíření pro síťové karty a pevné disky, ROM samotného BIOSu (0xF0000–0xFFFFF). Tato oblast se nazývá UMA (Upper Memory Area).
Extended Memory (XMS, paměť nad 1 MB)
S příchodem Intel 286 (16 MB adresovací prostor) a 386 (4 GB) bylo problémem, jak se dostat k paměti nad 1 MB při zachování zpětné kompatibility s DOS. XMS (eXtended Memory Specification) definoval rozhraní pro přístup k rozšířené paměti v chráněném módu. Driver HIMEM.SYS (Windows 3.x, DOS 6) spravoval extended memory. HMA (High Memory Area) jsou prvních 64 KB nad 1 MB – zvláštní oblast přístupná i v Real Mode díky přetečení 20bitové adresy přes A20 linku.
Adresace RAM v BIOS systémech – memory map
BIOS při startu sestaví E820 memory map (pojmenováno podle INT 15h, funkce E820h) – tabulku, která popisuje fyzický adresní prostor: která oblast je použitelná pro OS (Available), která je rezervovaná pro ACPI tabulky, která pro PCI zařízení (paměťově mapované I/O registrů), která pro BIOS ROM. Tuto tabulku pak OS přečte a ví přesně, které adresy může použít pro alokaci RAM stránek.
Adresace RAM v UEFI systémech
UEFI nahrazuje E820 tabulku UEFI Memory Map – strukturou GetMemoryMap(), která vrací podrobnější popis paměti s typy: EfiLoaderCode, EfiBootServicesData, EfiRuntimeServicesData, EfiConventionalMemory (volná RAM pro OS), EfiMemoryMappedIO (PCI zařízení), EfiPersistentMemory (NVDIMM). UEFI Boot Services jsou aktivní jen při bootování – po předání řízení OS volá OS funkci ExitBootServices(), která odstraní všechny UEFI boot-time alokace a vrátí paměť k dispozici OS.
PAE (Physical Address Extension) je technologie, která umožňuje 32bitovému OS přistupovat k více než 4 GB RAM. Rozšiřuje fyzické adresy na 36 bitů (max. 64 GB). 32bitový Windows použával PAE pro jádro, ale jednotlivé 32bitové procesy stále viděly max. 4 GB virtuálního adresního prostoru. Teprve 64bitový OS s 64bitovou adresaci virtuálního prostoru (2⁶⁴ adres – ve skutečnosti dnes ~256 TB fyzický prostor u Intel) odstranil omezení.