Àrea de memòria superior

De Viquipèdia
Dreceres ràpides: navegació, cerca
L'àrea de memòria superior (UMA) ocupa 384 KB i va des dels 640 KB fins a 1 MB

L'àrea de memòria superior (UMA, Upper Memory Area) és una característica de disseny dels ordinadors compatibles amb el IBM PC d'arquitectura x86. Aquesta és la característica que crea la barrera dels 640K. IBM va reservar la regió més alta del mapa de memòria del PC per a la memòria ROM del BIOS (8 KB en una direcció just a sota de l'megabyte), a més, memòria RAM pels perifèric s com la targeta de vídeo CGA i MDA, altres ROM del sistema, i entrada/sortida (I/O) mapejada en memòria. En el cas dels ordinadors fabricats per IBM, també hi havia un interpretador BASIC, escrit per Microsoft que ocupava 40 KB per sota del BIOS.

Aquesta regió es diu UMA, ocupa 384 KB i descansa sobre la memòria normal, entre els 640 KB i 1 MB, màxim límit direccionable del CPU 8.088 del PC original. Per exemple, l'àrea de memòria de vídeo monocromàtica va des de les direcció B000 a la B7FF. No obstant això, fins i tot de la RAM de vídeo, el ROM BIOS i els ports d'E/S per a les targetes d'expansió, molts d'aquests 384 KB de l'espai de direcció no era usat, fins i tot quan una finestra de 64 KB va ser reservada per al "marc" d'adreces de la especificació d'expandida en la qual el RAM EMS tenia els bancs commutats. Per exemple, en la majoria dels PC, tota la o la major part de l'àrea des C800 a EFFF està normalment sense ús.

Ús en sistemes operatius del PC[modifica | modifica el codi]

La següent etapa en l'evolució del DOS va estar en el sistema operatiu en si mateix en fer-ho conscient dels blocs de memòria superior (UMB) i del àrea de memòria alta. Això va passar amb el llançament de DR-DOS 5.0 a 1990. El controlador de memòria incorporat en el DR-DOS, el EMM386.EXE, podia realitzar la major part de la funcionalitat bàsica del QEMM i programes comparables.

On el DR-DOS va fer punts sobre la combinació d'un més vell DOS juntament amb el QEMM va ser que el nucli (kernel) en si mateix del DR-DOS i gairebé totes les seves estructures de dades es podien carregar a memòria alta, més tots els seus components associats en UMBs. Això va deixar virtualment lliure tota la memòria baixa, permetent configuracions amb fins a 620K lliures dels 640K de la memòria convencional.

La configuració no era automàtica - UMBs lliures havien de ser identificats a mà, inclosos manualment en la línia que carregava l'EMM386 al config.sys, i llavors els drivers, etc., havien de ser carregats manualment en UMBs des del config.sys i el AUTOEXEC.BAT. Aquesta configuració no era un procés trivial. Mentre va ser automatitzada en gran part pel programa de la instal·lació de l'QEMM, aquest programa va sobreviure en el mercat. de fet, va treballar bé amb el propi suport de l'HMA i UMB del DR-DOS i va continuar sent una de les utilitats millor venudes per al PC.

Aquesta funcionalitat va ser copiada per Microsoft amb el llançament del MS-DOS 5.0 el juny de 1991. Eventualment, encara més estructures de dades del DOS van ser tretes de la memòria convencional, permetent fins a 631K lliures-hi.

Per un període a principis dels anys 1990, l'optimització manual del mapa de memòria del DOS es va convertir en una habilitat altament estimada, permetent que les aplicacions més grans correguessin fins i tot en les configuracions més complexes del PC. La tècnica era crear tants UMBs com fos possible, incloent el remapeo de blocs de memòria assignats però no necessaris, com l'àrea de la pantalla monocromàtica a les màquines amb targetes de vídeo a color. Llavors, molts subcomponents de l'DOS havien de ser carregats en aquests UMBs a just la seqüència correcta per usar els blocs de memòria tan eficientment com sigui possible, tenint en compte el fet que alguns programes TSR requerien memòria addicional mentre es carregaven que era Alliberada una vegada que la càrrega estava completa. Afortunadament hi havia poques dependències entre aquests mòduls, així que era possible carregar en gairebé qualsevol seqüència. Les excepcions eren tenir amb èxit la memòria cau dels CD-ROM, la majoria dels cache de disc havien de ser carregats després de qualsevol driver de CD-ROM, i els mòduls de la majoria dels stack de xarxes havien de ser carregats en certa seqüència, essencialment treballant progressivament a través de les capes del model OSI.

Amb l'addició d'un gestor de multitasca de DOS com el DesqView de Quarterdeck, múltiples sessions podien ser arrencades al mateix temps, cadascuna amb 600 K de memòria lliure i totes compartint l'accés al DOS i els seus drivers i facilitats associats.

La creixent popularitat de Windows 3.0 va fer això menys rellevant, atès que les aplicacions de Windows no eren afectades pels límits de la memòria base de l'DOS, però els programes de DOS corrent sota Windows (amb Windows en si mateix actuant com un gestor multitasca) encara tenien aquest inconvenient. Amb el llançament de Windows 95, encara es va convertir en menys rellevant, perquè aquesta versió de Windows proporcionava molta de la funcionalitat dels controladors de dispositiu del DOS a les aplicacions de DOS corrent sota Windows, com per exemple, suport de CD, xarxa i so. El mapa de memòria del DOSBox de Win95 va ser automàticament optimitzat. No obstant això, no tots els programes de DOS podien executar-se en aquest ambient. Específicament, els programes que intentaven canviar directament de manera real a mode protegit, no funcionarien ja que això no era permès en el mode virtual del 8.086 en el que estaven corrent (de fet, aquest punt està sent ara tractat per tecnologies de virtualització per als CPU x86 a punt venir (2006), com Vanderpool i pacífica). Tampoc treballaven a Windows 95, programes que tractaven de fer el canvi utilitzant el API VCPI (que va ser introduït per permetre als programes DOS que necessitaran mode protegit entrar a aquest des del manera virtual 8.086 posat en marxa per un gestor de memòria, segons el descrit a dalt). Per canviar al mode protegit només va ser suportat l'API DPMI.

Memòria superior i la RAM d'ombra[modifica | modifica el codi]

En molts sistemes incloent els moderns, és possible usar la memòria reservada per a l'ombra de la ROM de targetes d'expansió com a memòria superior. Molts chipset es reserven fins a 384K de RAM per a aquest propòsit, i com que aquest RAM generalment està sense ús, pot ser usat com a memòria superior de manera real amb un driver de dispositiu específic per a això.

Memòria superior a l'IBM XT[modifica | modifica el codi]

En els ordinadors IBM XT era possible afegir més memòria a la targeta mare i usar un PROM descodificador d'adreces a la mida per fer que aparegui en l'àrea de memòria superior . Com amb la memòria superior basada en el 386 descrita amunt, el RAM addicional podia ser utilitzat per carregar arxius de TSR, o com a disc RAM.

Sistemes de PC x86 que no tenien el UMA[modifica | modifica el codi]

L'existència del Upper Memory Àrea i la barrera dels 640 KB eren artefactes, característiques pròpies, del disseny de l'IBM PC i per tant de qualsevol ordinador compatible, en altres paraules, tots els sistemes compatibles de l'IBM PC. No obstant això, hi ha hagut moltes altres ordinadors basats en Intel o altres processadors x86 que no eren compatibles amb el PC i no tenien així un Upper Memory Àrea i cap barrera dels 640 KB.

Vegeu també[modifica | modifica el codi]