Expanded Memory Specification
In informatica, Expanded Memory Specification o EMS è una specifica per l'utilizzo della memoria espansa nel sistema operativo MS-DOS sviluppata congiuntamente da Lotus, Intel, e Microsoft (per questo veniva chiamata dagli esperti di settore LIM EMS, dalle iniziali delle società coinvolte).
La specifica EMS consentiva al sistema operativo di accedere a locazioni di memoria RAM (Random Access Memory) oltre la memoria convenzionale, limitata a 1 MB nell'hardware IMB XT compatibile. La memoria convenzionale era la memoria direttamente accessibile dalle istruzioni del processore, e il processo che consentiva l'utilizzo della memoria aggiuntiva era conosciuto come bank switching.
Sono state rilasciate diverse versioni della specifica LIM EMS. La prima versione che ha avuto un'ampia adozione è stata la 3.2, che era capace di pilotare fino a 8 MB di memoria espansa, utilizzando parte della cosiddetta memoria superiore (upper memory) per mappare blocchi memoria oltre il limite di 1 MB. La memoria superiore era la memoria che si trovava tra i 640 KB e 1 MB (per un totale di 384 KB), e che era utilizzata dal sistema come area di lavoro per il BIOS (Basic Input/Output System), e come memoria video e per le schede di espansione.
Una versione successiva, la 4.0, incorporò lo standard EEMS (Enhanced Expanded Memory System) sviluppato dalle aziende AST Research, Quadram e Ashton-Tate. Questa versione poteva mappare fino a 32 MB di memoria espansa, poteva mappare anche tutte le aree di memoria sotto a 1 MB, e incorporava alcune funzionalità per il multi-tasking in DOS.
Fino a circa la metà degli anni '90, la memoria espansa era la soluzione preferita per aggiungere memoria a un PC, ed era soprattutto utilizzata dai giochi e da alcuni programmi professionali che richiedevano una cospicua quantità di memoria. Il suo utilizzo andò a scemare quando il sistema operativo Microsoft Windows (a partire dalla versione 3.0) divenne la piattaforma preferita per le nuove applicazioni.