Perché i PC erano limitati a 640 KB di RAM (e come hanno risolto il problema)?

Blog

CasaCasa / Blog / Perché i PC erano limitati a 640 KB di RAM (e come hanno risolto il problema)?

May 19, 2024

Perché i PC erano limitati a 640 KB di RAM (e come hanno risolto il problema)?

Memoria esaurita, err... Nei giorni selvaggi dei primi computer, esisteva una limitazione che poteva benissimo essere considerata una delle più grandi stranezze della storia della tecnologia. Quella limitazione era la

Memoria esaurita, ehm...

Nei giorni selvaggi dei primi computer, esisteva una limitazione che poteva benissimo essere considerata una delle più grandi stranezze della storia della tecnologia. Quella limitazione era la famigerata barriera di 640K sui PC. Che succedeva?

La prima domanda su cui riflettere è perché, sulla Terra, i PC sono sempre stati limitati a 640K di RAM (Random Access Memory). Si tratta di una somma irrisoria per gli standard odierni, dove i nostri telefoni sfoggiano diversi gigabyte senza pensarci due volte. Ma torna indietro ai primi anni '80 e ti troverai in un panorama tecnologico completamente diverso.

Il personal computer originale di IBM, l'IBM PC 5150, fu introdotto nel 1981 e venne fornito con una CPU che consentiva un massimo di 1 MB di RAM indirizzabile. Ma perché lo strano limite di 640K per la RAM di sistema?

IBM ha riservato lo spazio di indirizzi di memoria rimanente per altri usi come ROM (memoria di sola lettura) e periferiche hardware. Si trattava in realtà di una divisione ragionevole, considerando le applicazioni e le capacità hardware limitate dell'epoca.

Bill Gates è stato citato erroneamente per aver affermato: "640.000 dovrebbero essere sufficienti per chiunque". Anche se ha negato di aver mai fatto questa affermazione, essa incarna lo spirito di un'epoca in cui 640K sembravano un'enorme quantità di memoria. Chi potrebbe aver bisogno di più?

Come forse non rimarrai scioccato nel sentire, il software ha iniziato a crescere in complessità e sofisticazione. Gli sviluppatori di giochi, le società di software di elaborazione testi e altre menti creative scalpitavano, assetati di più memoria.

All'improvviso, 640K non era più un grande parco giochi; era una scatola claustrofobica e gli sviluppatori di software ne sentivano la stretta.

Ingegneri e sviluppatori hanno preso la limitazione di memoria di 640K come una sfida, escogitando modi per superare i vincoli dell'architettura del PC IBM.

La specifica di memoria espansa (EMS) e la specifica di memoria estesa (XMS) erano due soluzioni intelligenti per superare il limite di memoria di 640 KB nei primi PC.

EMS utilizzava una tecnica chiamata "page framing" e "bank switching", in cui la memoria aggiuntiva veniva divisa in pagine e scambiata dentro e fuori da una finestra specifica nell'area di memoria superiore, tra 640 KB e 1 MB. Ciò consentiva ai programmi di accedere dinamicamente a diverse pagine di memoria espansa secondo necessità. EMS è stato originariamente sviluppato da Lotus, Intel e Microsoft, motivo per cui è stato brevemente noto come memoria LIM.

XMS, d'altra parte, sfruttava processori più recenti come Intel 80286, che consentiva l'accesso a più memoria in una speciale modalità "protetta". Questo approccio utilizzava anche un'area di memoria elevata (HMA) appena sopra il limite di 1 MB e utilizzava un gestore di memoria estesa per standardizzare il modo in cui i programmi accedevano a questa memoria aggiuntiva. XMS è stato sviluppato anche da Lotus, Intel e Microsoft.

Il passaggio ai processori Intel 80286 e 80386, con le loro funzionalità avanzate di gestione della memoria, ha contribuito a superare la barriera dei 640 KB. Questi chip consentivano l’accesso a grandi quantità di memoria che sarebbero state impensabili solo pochi anni prima. L'80286 poteva indirizzare fino a 16 MB di RAM in modalità protetta ma non in modalità reale, che era compatibile con le applicazioni DOS. L'80386 può indirizzare fino a 4 GB di RAM in entrambe le modalità utilizzando una tecnica chiamata paging. Tuttavia, l'accesso alla memoria estesa in modalità reale richiede software speciale come estensori DOS o gestori di memoria.

La fine degli anni '80 e l'inizio degli anni '90 hanno visto i videogiochi evolversi da semplici sprite a mondi coinvolgenti. Questa evoluzione ha richiesto più memoria. Giochi come "Doom" nel 1993, che richiedevano un minimo di 4 MB di RAM, rappresentavano un momento critico in cui 640K non erano più sufficienti.

L’industria dei giochi è diventata un catalizzatore del progresso tecnologico. Gli sviluppatori di giochi hanno lavorato a stretto contatto con i produttori di hardware, promuovendo l'innovazione e ampliando i confini del personal computing. Era un chiaro appello al fatto che più RAM non era solo un desiderio ma una necessità per soddisfare la crescente ambizione del mondo dei videogiochi.

È difficile pensare a un altro tipo di software che giustifichi quantità di RAM così relativamente elevate così presto nel mercato dei personal computer, in particolare per gli utenti domestici. Tuttavia, una volta che il tuo PC di casa disponeva di RAM per giochi ad alto consumo di memoria, significava che gli sviluppatori non di giochi potevano ragionevolmente aspettarsi più RAM per il proprio software. Con l'80386, il multitasking è diventato una realtà, sfruttando appieno la memoria disponibile.