Zona de memorie principală

Zona de memorie principală ( Memoria principală , ing.  Memorie convențională ) ocupă primii 640 KB de RAM în computerele IBM compatibile cu PC . Această zonă încarcă tabelul vector de întrerupere (ocupă 1 KB), unele date din BIOS (de exemplu, tamponul tastaturii), diverse programe DOS pe 16 biți . Pentru ei, 640 KB este o barieră.

Bariera 640 Kbytes

Pentru computerele IBM compatibile cu PC, 1 MB era limita de memorie pe care procesorul o putea adresa. CPU Intel 8088 are 20 de linii de adresă și ar putea accesa până la 2 20 = 1 MB de memorie. Primul megabyte a fost împărțit în 16 zone a câte 64 KB fiecare. Primele zece zone au fost rezervate pentru utilizare de către programele utilizatorului (în timp ce sistemul de operare însuși putea accesa întregul megaoctet de memorie) și s-a numit memorie principală . Restul de 6 zone cu un volum de 384 KB ( Upper Memory Area , UMA, upper memory ) au fost rezervate pentru nevoile sistemului și dispozitivele suplimentare. Primele calculatoare găzduiau BIOS -ul și extensiile sale, memoria adaptorului video și driverele de dispozitiv. În implementările existente ale PC-ului IBM, o parte din memoria superioară a fost folosită pentru CGA / EGA , restul a rămas nefolosit. La începutul anilor 1980, 640 KB de memorie era suficient pentru nevoile utilizatorului obișnuit, dar nevoia de RAM pentru aplicații noi a crescut mai rapid, ceea ce a condus la necesitatea de a utiliza zonele de rezervă ale memoriei superioare în diferite moduri care au ocolit interzicerea accesului programelor de aplicație în memoria superioară. Ca rezultat, acest lucru a dus la faptul că 1 MB de memorie disponibilă au apărut „găuri” rezervate care au fost folosite de diverse dispozitive hardware. Eliminarea unor astfel de „găuri” a fost din punct de vedere tehnic dificil de implementat și nu ar fi susținută de versiunile existente ale DOS și de programele de aplicație. Ulterior, a fost dezvoltată o metodă universală care permite accesarea blocurilor de memorie superioare ( Upper memory blocks, UMB ).

Pentru a asigura compatibilitatea cu aplicațiile existente, limita de 640 KB a fost păstrată în implementările ulterioare ale standardului IBM PC , chiar și după ce arhitectura Intel 8086/8088 a fost înlocuită cu Intel 80286 mai modern , care permitea deja abordarea a 16 MB de memorie. în modul protejat . Această limitare a fost cauzată de faptul că procesorul 80286 ar putea funcționa atât în ​​noul mod protejat, cât și în vechiul mod real , ceea ce asigură compatibilitatea cu arhitectura veche: în modul real, este imposibil să se adreseze memoriei cu o lățime de biți mai mare de 20. biți (sau 2 20 = 1 MB). Procesoarele ulterioare compatibile cu arhitectura PC IBM au continuat să implementeze această compatibilitate. Chiar și pe computerele moderne, există încă o zonă de memorie rezervată între 640 și 1024 KB de memorie [1] [2] , deși pentru majoritatea sistemelor de operare moderne aceasta este invizibilă, deoarece accesează RAM prin intermediul memoriei virtuale , ascunzând alocarea reală în spatele acesteia. memorie și nu depinde de ea [3] .

Utilizarea memoriei principale

Bariera de 640 KB este relevantă numai pentru programele pe 16 biți care rulează sub DOS. Funcționarea sistemelor de operare pe 32 și 64 de biți ( Microsoft Windows 4.x , NT , GNU / Linux etc.) nu este practic afectată de bariera de 640 KB.

Note

  1. White Paper: Un tur dincolo de designul hărții de memorie BIOS în UEFI BIOS (link nu este disponibil) . Intel Corporation (februarie 2015). Consultat la 3 decembrie 2018. Arhivat din original la 30 septembrie 2015. 
  2. Mark, Russinovici; David A., Solomon; Alex, Ionescu. Interne Windows. — 6. — Microsoft Press, 2012. - T. Partea 2. - S. 322. . - „Rețineți decalajul în intervalul de adrese de memorie de la pagina 9F000 la pagina 100000 ...”.
  3. ↑ Aplicații de programare pentru Microsoft Windows  . — P. 435 și urm..

Vezi și

Literatură