Capitolo 2
L'Hardware dei Primi Computer (1950-1960)
Il decennio tra il 1950 e il 1960 segnò il passaggio dalla teoria alla pratica, con la costruzione e la commercializzazione dei primi computer elettronici. Queste macchine pionieristiche, pur essendo enormi e con capacità di calcolo limitate rispetto agli standard odierni, rappresentarono un salto tecnologico epocale. In questo capitolo, esploreremo le principali tecnologie hardware che caratterizzarono questa fase iniziale, dalle valvole termoioniche ai primi sistemi di memoria e ai dispositivi di input/output.
2.1 Le Valvole Termoioniche:
Il Cuore Elettronico dei Primi Computer
I primi computer elettronici, come l'ENIAC (Electronic Numerical Integrator and Computer), utilizzavano le valvole termoioniche (o tubi a vuoto) come componenti elettronici fondamentali per l'elaborazione e la memorizzazione delle informazioni. Una valvola termoionica è un dispositivo elettronico a vuoto contenente un filamento riscaldato (catodo) che emette elettroni. Questi elettroni vengono attratti da un elettrodo caricato positivamente (anodo) e il flusso di elettroni può essere controllato da una griglia posta tra il catodo e l'anodo.
Le valvole termoioniche potevano svolgere diverse funzioni cruciali nei circuiti elettronici dei computer:
- Interruttori (Switch): Utilizzate per implementare le operazioni logiche fondamentali (AND, OR, NOT) necessarie per l'elaborazione digitale. La presenza o l'assenza di tensione sulla griglia poteva controllare il flusso di corrente tra catodo e anodo, agendo come un interruttore elettronico.
- Amplificatori: Capaci di aumentare l'ampiezza di un segnale elettrico, funzione essenziale per mantenere l'integrità dei segnali all'interno dei complessi circuiti dei computer.
L'impiego delle valvole termoioniche permise di raggiungere velocità di calcolo significativamente superiori rispetto ai precedenti calcolatori elettromeccanici basati su relè. Tuttavia, questa tecnologia presentava anche diverse limitazioni significative:
- Dimensioni e peso: Le valvole erano fisicamente ingombranti, e un computer come l'ENIAC, che conteneva circa 18.000 valvole, occupava un'intera stanza e pesava diverse tonnellate.
- Consumo energetico: Le valvole richiedevano un notevole quantitativo di energia elettrica per riscaldare il filamento, generando grandi quantità di calore. L'ENIAC, ad esempio, consumava circa 150 kW di potenza.
- Affidabilità: Le valvole erano fragili e avevano una durata limitata. Il guasto di una singola valvola poteva bloccare l'intero sistema, e i primi computer erano soggetti a frequenti malfunzionamenti. La sostituzione delle valvole era un'operazione complessa e dispendiosa in termini di tempo.
- Costo: La produzione e l'utilizzo di un gran numero di valvole rendevano i primi computer estremamente costosi.
Nonostante queste limitazioni, le valvole termoioniche rappresentarono la tecnologia dominante per la costruzione dei computer elettronici durante gli anni '40 e '50, aprendo la strada a nuove possibilità nel campo del calcolo automatico.
2.2 I Primi Sistemi di Memoria:
Dalla Memorizzazione Elettronica a Quella Magnetica
La capacità di memorizzare informazioni (sia dati che istruzioni) in modo rapido e affidabile era un requisito fondamentale per il funzionamento dei computer. Nei primi anni dell'informatica, furono sviluppate diverse tecnologie per la realizzazione della memoria:
- Tubi Williams (Williams Tubes): Sviluppati presso l'Università di Manchester da Freddie Williams e Tom Kilburn, i tubi Williams furono una delle prime forme di memoria ad accesso casuale (RAM). Si basavano sull'utilizzo di un tubo a raggi catodici (CRT), simile a quelli utilizzati nei vecchi televisori. L'informazione veniva memorizzata come una carica elettrostatica sulla superficie del tubo. Un fascio di elettroni veniva utilizzato per scrivere ("depositare") o leggere ("rilevare") la carica. La presenza o l'assenza di carica in un punto specifico rappresentava un bit di informazione. I tubi Williams offrivano tempi di accesso relativamente rapidi per l'epoca, ma avevano una capacità limitata (tipicamente poche centinaia di bit) e la carica tendeva a dissiparsi rapidamente, richiedendo un "refresh" periodico.
- Memorie a Tamburo Magnetico (Magnetic Drum Memory): Un'altra tecnologia di memoria precoce e ampiamente utilizzata era la memoria a tamburo magnetico. Questa consisteva in un cilindro metallico rotante rivestito con un materiale ferromagnetico.
Le informazioni venivano registrate e lette da testine magnetiche fisse posizionate vicino alla superficie del tamburo. Ogni traccia circolare sul tamburo poteva memorizzare una sequenza di bit. Per accedere a una specifica informazione, era necessario attendere che la parte corretta del tamburo ruotasse fino a raggiungere la testina di lettura/scrittura. Le memorie a tamburo magnetico offrivano una capacità maggiore rispetto ai tubi Williams (fino a decine di migliaia di bit), ma avevano tempi di accesso significativamente più lenti a causa della necessità di attendere la rotazione meccanica del tamburo. Furono utilizzate come memoria principale o come memoria secondaria (di massa) nei primi computer.
- Linee di Ritardo a Mercurio (Mercury Delay Lines): Utilizzate nell'EDVAC e in altri primi computer, le linee di ritardo a mercurio memorizzavano i dati come impulsi sonori che si propagavano attraverso un tubo riempito di mercurio. Un trasduttore all'estremità del tubo convertiva gli impulsi elettrici in onde sonore, che viaggiavano attraverso il mercurio e venivano riconvertite in impulsi elettrici all'altra estremità. La velocità di propagazione del suono nel mercurio determinava il tempo di ritardo, e i dati potevano essere "ricircolati" attraverso il tubo per essere memorizzati. Le linee di ritardo a mercurio offrivano una capacità maggiore rispetto ai tubi Williams, ma erano sensibili alle variazioni di temperatura e avevano tempi di accesso sequenziali.
- Memorie a Nuclei di Ferrite (Magnetic-Core Memory): Verso la fine degli anni '50, emerse una tecnologia di memoria più affidabile e performante: la memoria a nuclei di ferrite. Questa consisteva in una griglia di piccoli anelli (nuclei) di materiale ferromagnetico. Ogni nucleo poteva essere magnetizzato in due direzioni opposte, rappresentando i valori binari 0 e 1.
I nuclei erano attraversati da fili conduttori che permettevano di scrivere e leggere lo stato di magnetizzazione. La memoria a nuclei di ferrite offriva tempi di accesso più rapidi e una maggiore affidabilità rispetto alle tecnologie precedenti e divenne la tecnologia di memoria principale dominante per i computer negli anni '60 e '70.
2.3 L'Architettura dei Primi Mainframe:
ENIAC e UNIVAC I
I primi computer elettronici erano spesso macchine enormi, progettate per compiti di calcolo scientifico e militare. Due esempi emblematici di questa epoca sono l'ENIAC e l'UNIVAC I:
- ENIAC (Electronic Numerical Integrator and Computer): Costruito presso l'Università della Pennsylvania tra il 1943 e il 1945, l'ENIAC è spesso considerato il primo computer elettronico general-purpose. Fu progettato principalmente per calcolare tabelle di tiro per l'artiglieria dell'esercito statunitense. L'ENIAC utilizzava quasi 18.000 valvole termoioniche e occupava una superficie di circa 167 metri quadrati. La sua programmazione era un processo manuale e complesso che richiedeva la riconfigurazione fisica dei collegamenti tramite cavi e interruttori. Nonostante le sue limitazioni, l'ENIAC dimostrò il potenziale del calcolo elettronico e fu in grado di eseguire calcoli centinaia di volte più velocemente dei precedenti calcolatori meccanici. L'ENIAC non seguiva l'architettura di von Neumann, in quanto le istruzioni del programma erano separate dai dati.
- UNIVAC I (Universal Automatic Computer I): Progettato da J. Presper Eckert e John Mauchly (gli stessi ideatori dell'ENIAC) e costruito dalla loro azienda, la Eckert-Mauchly Computer Corporation, l'UNIVAC I fu il primo computer elettronico prodotto commercialmente negli Stati Uniti.
Il primo UNIVAC I fu consegnato all'U.S. Census Bureau nel 1951. A differenza dell'ENIAC, l'UNIVAC I fu progettato per applicazioni sia scientifiche che commerciali e fu il primo computer a utilizzare nastri magnetici per l'input e l'output dei dati, rappresentando un significativo passo avanti rispetto alle schede perforate. L'UNIVAC I adottava un'architettura più vicina al modello di von Neumann, con le istruzioni e i dati memorizzati nella stessa unità di memoria (anche se con alcune distinzioni). La sua introduzione segnò l'inizio dell'era dei computer commerciali e aprì nuove prospettive per l'automazione dei processi aziendali.
Oltre all'ENIAC e all'UNIVAC I, numerosi altri computer pionieristici furono sviluppati in questo periodo, come l'EDSAC (Electronic Delay Storage Automatic Calculator) all'Università di Cambridge, che fu uno dei primi computer a implementare pienamente l'architettura di von Neumann, e l'IBM 701, il primo computer scientifico prodotto da IBM.
2.4 I Primi Dispositivi di Input/Output:
Schede Perforate e Nastri Magnetici
L'interazione con i primi computer richiedeva l'utilizzo di dispositivi specifici per l'input dei dati e delle istruzioni e per l'output dei risultati:
- Schede Perforate (Punched Cards): Le schede perforate furono uno dei principali metodi di input per i primi computer. Le informazioni venivano codificate perforando fori in posizioni specifiche su una scheda di cartone. Ogni colonna della scheda rappresentava un carattere o un numero. I lettori di schede perforate interpretavano la presenza o l'assenza di fori per immettere i dati e le istruzioni nel computer. Le schede perforate erano un metodo relativamente lento e soggetto a errori, ma rappresentavano uno standard per l'epoca.
- Nastri Magnetici (Magnetic Tape): L'UNIVAC I fu il primo computer a utilizzare i nastri magnetici come mezzo principale per l'input e l'output dei dati. I dati venivano memorizzati come pattern magnetici su un nastro di plastica rivestito di materiale ferromagnetico. I nastri magnetici offrivano una maggiore densità di memorizzazione e velocità di trasferimento rispetto alle schede perforate, ma l'accesso ai dati era sequenziale, il che significava che per accedere a un'informazione specifica era necessario scorrere l'intero nastro fino a quel punto. I nastri magnetici divennero un importante supporto per l'archiviazione di grandi quantità di dati.
- Stampanti: I risultati dei calcoli venivano spesso prodotti su carta tramite stampanti. Le prime stampanti erano spesso di tipo meccanico o elettromeccanico e la velocità di stampa era limitata.
2.5 Sfide e Innovazioni
La costruzione e l'operazione dei primi computer presentavano numerose sfide ingegneristiche e logistiche. La complessità dei circuiti basati su valvole termoioniche rendeva i sistemi costosi, energivori e soggetti a guasti. La programmazione era un compito arduo che spesso richiedeva la comprensione dettagliata dell'architettura hardware. La gestione e l'archiviazione dei dati con schede perforate e nastri magnetici erano processi manuali e laboriosi.
Nonostante queste sfide, gli anni '50 furono un periodo di intensa innovazione. La ricerca e lo sviluppo si concentrarono sul miglioramento dell'affidabilità, della velocità e della capacità dei computer. L'introduzione della memoria a nuclei di ferrite verso la fine del decennio rappresentò un passo significativo verso sistemi di memoria più efficienti.
La crescente comprensione dei principi dell'architettura dei computer e l'emergere dei primi linguaggi di programmazione di alto livello avrebbero gettato le basi per la successiva esplosione dell'informatica.
L'hardware dei primi computer degli anni '50 era caratterizzato dall'impiego di tecnologie emergenti come le valvole termoioniche e i primi sistemi di memoria (tubi Williams e tamburi magnetici). L'architettura dei primi mainframe, come l'ENIAC e l'UNIVAC I, rappresentava un'innovazione radicale nel campo del calcolo automatico. L'utilizzo di schede perforate e nastri magnetici per l'input/output rifletteva le limitazioni tecnologiche dell'epoca. Nonostante le sfide, questo periodo pionieristico pose le fondamenta tecnologiche e concettuali per la successiva evoluzione dell'informatica, aprendo la strada a un futuro in cui i computer sarebbero diventati una forza trasformativa per la società.