ENIAC, il primo computer general-purpose
Quasi tutti i primi computer comparsi nella storia hanno un tratto comune: furono costruiti per scopi bellici ed erano in grado di svolgere un solo specifico compito. Conosciamo tutti Enigma, la macchina tedesca utilizzata per cifrare e decifrare messaggi in tempo di guerra. Colossus, di origine inglese, fu il primo computer elettronico programmabile della storia, utilizzato per decifrare i messaggi della comunicazione tedesca. Anche Bomba, macchina del controspionaggio polacco, veniva utilizzata per lo stesso scopo.
Nel 1945 venne messo ufficialmente in funzione ENIAC. Il computer, al contrario dei suoi predecessori, era in grado di svolgere più funzioni, differenti tra di loro. Per questo motivo viene considerato il primo computer elettronico general purpose della storia.
La storia di ENIAC
Nel 1943 l’esercito statunitense richiese al governo una macchina che fosse in grado di risolvere i problemi di calcolo balistico per il lancio dei proiettili d’artiglieria. Il progetto, chiamato Project PX, venne affidato agli scienziati John Mauchly e John Presper Ecker dell’università della Pennsylvania. Due anni dopo l’Electrical Numerical Integrator And Calculator entrò finalmente in funzione.
Assieme ai due altri ingegneri presero parte al design e alla costruzione della macchina. Tra questi c’erano Robert Shaw, il quale si occupò delle tabelle di funzione, ovvero le tabelle in cui vengono specificati input e relativi output di una funzione; Jeffrey Chuan Chu, che sviluppò il modulo della divisione e radice quadrata; Arhur Burks, che si occupò dell’unità moltiplicatrice; Harry Huskey, per il modulo di lettura/scrittura; Jack Davis, che si occupò degli accumulatori. A gestire il gruppo, poi, vi erano Thomas Sharpless e Frank Mural.
ENIAC poteva essere programmato per realizzare delle sequenze di operazioni complesse, quali i loop, le subroutine e i cambiamenti di flusso. Ovviamente, i programmi dovevano essere prima sviluppati a mano e poi mappati sulla macchina. Ad occuparsi della programmazione furono principalmente 6 programmatrici: Kay McNulty, Betty Jennings, Betty Snyder, Marlyn Meltzer, Fran Bilas e Ruth Lichterman. Le donne inizialmente vennero chiamate, erroneamente, le “Refrigerator Ladies”, nome col quale si intendevano le ragazze che posavano di fronte alla macchina. A causa di questo, il loro lavoro venne riconosciuto solo dopo molti anni.
L’ENIAC ebbe un ruolo anche nel facilitare l’utilizzo del metodo di Monte Carlo. Von Neumann, infatti, studiando la macchina, si rese conto che i calcoli potevano essere svolti molto più velocemente con essa, e fu lui a programmarla per utilizzare il metodo.
La macchina venne utilizzata per diversi scopi anche negli anni successivi alla seconda guerra mondiale, grazie al suo enorme potenziale e alla sua flessibilità nei programmi eseguibili. Venne spenta definitivamente nel 1955.
La macchina
Come è facile immaginare, ENIAC si presentava come un computer dalle dimensioni enormi. Occupava infatti circa 167 metri quadri, e pesava 30 tonnellate. La macchina era composta da 42 pannelli disposti su 3 pareti, e consumava 150 kW di elettricità.
Il computer vantava 18mila valvole termoioniche e 1500 relè, e l’immenso calore dissipato faceva bruciare una valvola ogni due minuti. Le fasi critiche erano quelle di accensione e spegnimento, durante le quali veniva generata la maggior parte del calore. Si decise quindi di lasciarlo sempre in funzione; il periodo più lungo di funzionamento ininterrotto fu di 116 ore. La macchina era composta di soli circuiti elettronici, e gli unici elementi meccanici erano un lettore di schede (per l’input) e un “punzone” per l’ouput.
Per quanto riguarda i tempi operazionali, un ciclo base era di 200 microsecondi; in questo ciclo ENIAC poteva scrivere un numero, leggerlo o effettuare un’operazione di addizione/sottrazione tra due numeri. In un secondo, la macchina riusciva a fare 5 mila addizioni, 357 moltiplicazioni o 38 divisioni. L’aumento della velocità rispetto alle altre macchine fu dato dall’utilizzo di tubi a vuoto al posto di switch e relay. La macchina però peccava in velocità di riprogrammazione: per effettuare dei cambiamenti, infatti, erano necessarie intere settimane.
Come anticipato, ENIAC fu un computer modulare, in cui ad ogni funzione corrispondevano dei pannelli diversi. Venti di questi moduli erano accumulatori che riuscivano a mantenere in memoria numeri fino a 10 cifre (ma al massimo 20 di essi). Pur lavorando in logica binaria, utilizzava il sistema metrico decimale per la memorizzazione dei numeri.
Assieme alla macchina nacquero i primi gruppi di debuggers. Essi erano dei manutentori dedicati alla pulizia e sostituzione delle valvole, che si rompevano frequentemente. La causa della rottura non era solo la dissipazione termica, ma anche gli insetti che nidificavano nelle apparecchiature. I guasti di questi insetti (bug) causavano errori di calcolo, e gli inservienti-debuggers si dovevano occupare di eliminare larve e bruchi.