Expanded Memory Specification
# Expanded Memory Specification

Expanded Memory Specification (abbreviato EMS), in informatica, è 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).

## Storia

Sono state rilasciate diverse versioni della specifica; 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.

## Utilizzo

Consentiva al sistema operativo di accedere a locazioni di memoria RAM (Random Access Memory) oltre la memoria convenzionale, limitata a 1 MB nell'hardware PC IBM 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 ed all'epoca noto per esser stato usato sulle piastre di espansione usate dall'Apple Pascal sull'Apple II per raggiungere i 128Kb, 256Kb o il megabyte su un processore 6502.

