Oblast hlavní paměti

Oblast hlavní paměti ( Main memory , angl.  konvenční paměť ) zabírá prvních 640 KB RAM v počítačích kompatibilních s IBM PC . Tato oblast načte tabulku vektorů přerušení (zabírá 1 KB), některá data z BIOSu (například vyrovnávací paměť klávesnice), různé 16bitové programy pro DOS . Pro ně je bariérou 640 KB.

Bariéra 640 Kbytes

U počítačů kompatibilních s IBM PC byl 1 MB limit paměti, který mohl procesor adresovat. Procesor Intel 8088 má 20 adresních řádků a mohl přistupovat až k 2 20 = 1 MB paměti. První megabajt byl rozdělen do 16 oblastí po 64 KB. Prvních deset oblastí bylo vyhrazeno pro použití uživatelskými programy (zatímco samotný operační systém měl přístup k celému megabajtu paměti) a nazývalo se hlavní paměť . Zbývajících 6 oblastí o objemu 384 KB ( Upper Memory Area , UMA, horní paměť ) bylo vyhrazeno pro systémové potřeby a přídavná zařízení. Dřívější počítače obsahovaly BIOS a jeho rozšíření, paměť grafického adaptéru a ovladače zařízení. Ve stávajících implementacích IBM PC byla část horní paměti použita pro CGA / EGA , zbytek zůstal nevyužit. Počátkem osmdesátých let stačilo pro potřeby běžného uživatele 640 KB paměti, ale potřeba RAM pro nové aplikace rostla rychleji, což vedlo k nutnosti využívat náhradní oblasti horní paměti různými způsoby, které obcházely zákaz aplikačním programům v přístupu k horní paměti. Ve výsledku to vedlo k tomu, že 1 MB dostupné paměti se objevily jako rezervované „díry“, které využívala různá hardwarová zařízení. Odstranění takových „děr“ bylo technicky obtížné implementovat a stávající verze DOSu a aplikačních programů by ho nepodporovaly. Později byla vyvinuta univerzální metoda, která umožňuje přístup k horním paměťovým blokům ( Upper memory blocks, UMB ).

Aby byla zajištěna zpětná kompatibilita se stávajícími aplikacemi, byl v následujících implementacích standardu IBM PC zachován limit 640 KB , a to i poté, co byla architektura Intel 8086/8088 nahrazena modernější Intel 80286 , která již umožňovala adresovat 16 MB paměti. v chráněném režimu . Toto omezení bylo způsobeno tím, že procesor 80286 mohl pracovat jak v novém chráněném, tak i ve starém reálném režimu , což zajišťuje kompatibilitu se starou architekturou: v reálném režimu není možné adresovat paměť s bitovou šířkou vyšší než 20 bitů (nebo 2 20 = 1 MB). Následující procesory kompatibilní s architekturou IBM PC pokračovaly v implementaci této kompatibility. I na moderních počítačích stále existuje vyhrazená paměťová oblast mezi 640 a 1024 KB paměti [1] [2] , i když pro většinu moderních operačních systémů je neviditelná, protože přistupují k RAM přes virtuální paměť a skrývají za tím skutečnou alokaci. paměti a nezávisí na ní [3] .

Využití hlavní paměti

Bariéra 640 KB je relevantní pouze pro 16bitové programy běžící pod DOSem. Provoz 32bitových a 64bitových operačních systémů ( Microsoft Windows 4.x , NT , GNU / Linux atd.) není bariérou 640 KB prakticky ovlivněn.

Poznámky

  1. Bílá kniha: Prohlídka za hranicemi návrhu mapy paměti systému BIOS v systému UEFI BIOS (odkaz není k dispozici) . Intel Corporation (únor 2015). Staženo 3. prosince 2018. Archivováno z originálu 30. září 2015. 
  2. Mark, Russinovič; David A., Solomon; Alex, Ionescu. Vnitřní části systému Windows. — 6. — Microsoft Press, 2012. - T. Část 2. - S. 322. . - "Všimněte si mezery v rozsahu adres paměti od stránky 9F000 do stránky 100000 ...".
  3. ↑ Programovací aplikace pro Microsoft Windows  . — str. 435ff..

Viz také

Literatura