La memoria centrale dei computer Nell'architettura di von Neumann la componente più importante, dopo la CPU, è la memoria. Questa deve permettere di conservare non solo le informazioni da elaborare ma deve consentire la memorizzazione anche del codice del programma in esecuzione. Inizialmente, la costruzione di unità di memoria anche di pochi Kbyte rappresentò un grosso problema. Per la costruzione delle unità di memoria furono quindi sperimentati vari tipi di dispositivi basati su diversi principi e un po' alla volta si individuarono le tecnologie adatte per la realizzazione di memorie sempre più capienti e veloci. La memoria dei calcolatori si divide in due grandi categorie: memoria centrale (o primaria) e memoria di massa (o secondaria). La prima è una memoria veloce direttamente utilizzabile dalla CPU per eseguire le operazioni, mentre la seconda è una memoria più lenta su cui la CPU non può lavorare direttamente, ma disponibile in grande quantità. I costi di produzione della memoria centrale sono maggiori di quelli per realizzare memoria secondaria, pertanto al fine di ottenere un buon compromesso tra costi e prestazioni i calcolatori dispongono in generale più di memoria secondaria che non di memoria centrale. Infine, poiché i dispositivi impiegati attualmente per la memoria centrale non permettono di conservare i dati memorizzati dopo che il calcolatore è stato spento, le informazioni vengono conservate nella memoria secondaria in grado di mantenersi inalterata anche con il calcolatore spento.
Fig. 101. Circuito dimostrativo: memoria per un singolo bit realizzata con un relè passo-passo. Anche un semplice interruttore può funzionare come memoria: nello stato chiuso memorizza un 1 mentre nello stato aperto memorizza uno 0. Nei primi calcolatori venivano utilizzati come memorie anche semplici interruttori, dato il loro costo molto ridotto. L'inconveniente principale di questo tipo di memoria è rappresentato dall'impossibilità di modificare automaticamente lo stato dell'interruttore durante il funzionamento del calcolatore poiché tale operazione deve essere svolta manualmente. Pertanto, un simile dispositivo può essere impiegato unicamente come memoria a sola lettura. Per avere una memoria "scrivibile" durante l'esecuzione di un programma possiamo sostituire il semplice interruttore con un relè. In questo caso lo stato dell'interruttore può essere commutato mediante un opportuno segnale elettrico. Ad esempio, la memoria del calcolatore Z3, realizzato da Zuse, era costituita da 1408 relè. Per realizzare memorie di questo tipo è possibile utilizzare anche particolari relè, chiamati relè passo-passo. In questo, caso il relè può rimanere in uno qualsiasi dei due stati anche se la bobina non è percorsa da corrente elettrica. Il relè cambia alternativamente stato solo ogni volta che giunge alla bobina un singolo impulso elettrico.
Fig. 102. Flip-flop a valvole termoioniche di elaboratore Burroughs (anni '50). Il flip-flop costituisce una memoria elementare e può essere costruito combinando insieme alcune porte logiche. Nei primi calcolatori questo tipo di memoria, costruito dapprima con le valvole termoioniche e poi successivamente con i transistor, veniva utilizzato solo per realizzare le memorie interne della CPU (ossia, i registri) molto veloci.
Fig. 103. Memoria magnetostrittiva – Olivetti (seconda metà degli anni '60). Le linee di ritardo rappresentano uno dei metodi impiegati nel primi calcolatori elettronici per memorizzare le informazioni. Inizialmente, queste memorie erano basate sulla propagazione di suoni lungo tubi riempiti di mercurio. La memoria magnetostrittiva, inventata nel 1951, rappresenta un successivo perfezionamento delle linee di ritardo a mercurio.
Fig. 104. Memoria a tubi catodici (tubi di Williams). La memoria a tubi catodici, realizzata in Inghilterra da F.C. Williams e T. Kilburn tra il 1946 e 1947, permise per la prima volta di realizzare memorie ad accesso diretto in cui ogni bit è accessibile nello stesso tempo e indipendentemente dalla sua posizione. Queste memorie furono sperimentate per la prima volta nel calcolatore Manchester Mark I. Fig. 105. Memoria a nuclei da 1 Kbyte (anni '60). Intorno al 150 si cominciò a sperimentare la memoria centrale del calcolatore mediante la tecnologia a nuclei di ferrite, inventate indipendentemente da J. Forrester e A. Booth. Le memorie a nuclei rappresentarono il primo tipo di memoria (centrale) veramente affidabile e costruibile in grande quantità rispetto a tutti i dispositivi precedenti. Il primo calcolatore elettronico a essere dotato di memoria a nuclei (1952) fu il Whirlwind, progettato dallo stesso Forrester presso il MIT. Questo tipo di memoria è stato ampiamente utilizzato fino ai primi anni '70. Fig. 106. Ingrandimento di una memoria a nuclei. Le memorie a nucleo magnetico sono costituite da matrici composte di piccoli anelli di ferrite. La magnetizzazione dei nuclei (secondo due possibili direzioni di magnetizzazione) permette di memorizzare in ogni singolo nucleo un bit di informazione. Ogni nucleo di ferrite, mediante i fili elettrici che lo attraversano, può essere selezionato e magnetizzato in uno dei due sensi e può così registrare convenzionalmente un 1 o uno 0.
Fig. 107. Blocco a 6 piani di memoria a nuclei .
Fig. 108. Memoria da 256Kbit, realizzata mediante un circuito integrato a tecnologia CMOS. A partire dai primi anni '70 la tecnologia dei semiconduttori permise di realizzare memorie molto veloci mediante i circuiti integrati. Nel giro di pochi anni queste nuove memorie hanno sostituito le memorie a nuclei.
Fig. 109. Memoria da 8 Mb (personal computer, 1994), realizzata mediante circuiti integrati. Fig. 110. Memorie a sola lettura EPROM. Le EPROM sono un altro tipo di memoria veloce, inventate nel 1971 presso la Intel da D. Frohman, che le concepì come un mezzo economico per immagazzinare programmi (firmware) per microprocessori. Benché il contenuto di queste memoria possa essere modificato, esse servono per conservare informazioni per lunghi periodi.
Fig. 111. Scheda di memoria da 2 Mb (calcolatore Siemens, 1988). |
|