L'ENIAC (; Electronic Numerical Integrator and Computer), finalizzato nel 1945, rappresentò il primo computer digitale programmabile, elettronico e per uso generale. Mentre i computer precedenti possedevano alcune caratteristiche individuali, ENIAC ha integrato in modo univoco tutte queste funzionalità. La sua architettura era Turing-complete, consentendo la risoluzione di "un'ampia classe di problemi numerici" tramite la riconfigurazione del software.
ENIAC (; Computer e integratore numerico elettronico) è stato il primo computer digitale programmabile, elettronico e per uso generale, completato nel 1945. Altri computer avevano alcune di queste caratteristiche, ma ENIAC fu il primo ad averle tutte. Era completo di Turing e in grado di risolvere "un'ampia classe di problemi numerici" attraverso la riprogrammazione.
L'ENIAC fu concepito da John Mauchly e J. Presper Eckert per il calcolo dei tavoli di tiro dell'artiglieria per conto del Laboratorio di ricerca balistica dell'esercito degli Stati Uniti, successivamente integrato nel Laboratorio di ricerca dell'esercito. Tuttavia, il suo compito operativo iniziale prevedeva la valutazione della fattibilità dell'arma termonucleare.
Completato nel 1945, l'ENIAC iniziò la sua fase operativa pratica il 10 dicembre 1945.
L'ENIAC fu ufficialmente inaugurato presso l'Università della Pennsylvania il 15 febbraio 1946, con una spesa di 487.000 dollari (circa 7.000.000 di dollari in valuta del 2024), ed è stato colloquialmente definito un "cervello gigante" dai media contemporanei. La sua velocità di elaborazione era di circa tre ordini di grandezza maggiore di quella dei dispositivi informatici elettromeccanici prevalenti.
L'ENIAC fu ufficialmente commissionato dall'Ordnance Corps dell'esercito degli Stati Uniti nel luglio 1946. Successivamente, nel 1947, fu trasferito all'Aberdeen Proving Ground ad Aberdeen, nel Maryland, dove mantenne uno stato operativo continuo fino al 1955.
Concettualizzazione e ingegneria
Il Comando di ricerca e sviluppo del Corpo di artiglieria dell'esercito degli Stati Uniti, sotto la guida del Maggiore Generale Gladeon M. Barnes, ha fornito il sostegno finanziario per la progettazione e la costruzione dell'ENIAC. Il progetto ha sostenuto un costo totale di circa $ 487.000, che equivale a $ 7.000.000 nel 2024. La concettualizzazione dell'ENIAC iniziò nel giugno 1941, un periodo in cui l'Ordnance Department dell'esercito degli Stati Uniti si affidava ai calcolatori Friden e agli analizzatori differenziali, gestiti da studenti laureati sotto la supervisione di John Mauchly, per i calcoli dei tavoli di tiro dell'artiglieria. Successivamente Mauchly contemplò l'applicazione dei principi elettronici alla matematica per ottenere velocità di calcolo accelerate. Non avendo esperienza in elettronica, collaborò con il ricercatore associato J. Presper Eckert per formulare il progetto di un computer elettronico ad alta velocità. Nell'agosto 1942, Mauchly propose formalmente una macchina calcolatrice interamente elettronica in grado di assistere l'esercito americano nei complessi calcoli delle tabelle balistiche. L'Ordnance dell'esercito americano ha approvato questa proposta, assegnando all'Università della Pennsylvania un contratto di ricerca di sei mesi del valore di 61.700 dollari. Il contratto di costruzione fu stipulato il 5 giugno 1943, dando inizio allo sviluppo clandestino del computer il mese successivo presso la Moore School of Electrical Engineering dell'Università della Pennsylvania, con il nome in codice "Progetto PX", con John Grist Brainerd come investigatore principale. Herman Goldstine ha svolto un ruolo fondamentale nel garantire i finanziamenti dell'esercito per il progetto, assumendo successivamente responsabilità di supervisione per loro conto. L'assemblaggio del computer iniziò nel giugno 1944. Nel settembre dello stesso anno, Eckert e Mauchly avevano finalizzato il progetto concettuale del computer. La costruzione si concluse nel maggio 1945, seguita dai test presso la Moore School. Nel novembre 1945, le persone sopra menzionate, insieme a John Brainerd e Herman Goldstine, pubblicarono il rapporto confidenziale iniziale che descriveva in dettaglio i principi operativi e le metodologie di programmazione del computer.
Il progetto dell'ENIAC è stato attribuito principalmente a John Mauchly, professore di fisica presso l'Ursinus College, e a J. Presper Eckert dell'Università della Pennsylvania. Il team di ingegneri che ne ha supportato lo sviluppo comprendeva Robert F. Shaw (responsabile delle tabelle delle funzioni), Jeffrey Chuan Chu (divisore/radice quadrata), Thomas Kite Sharpless (maestro programmatore), Frank Mural (maestro programmatore), Arthur Burks (moltiplicatore), Harry Huskey (lettore/stampante) e Jack Davis (accumulatori). Fondamentalmente, una parte sostanziale della programmazione dell'ENIAC è stata eseguita da un team di matematiche, tra cui Jean Jennings, Marlyn Wescoff, Ruth Lichterman, Betty Snyder, Frances Bilas e Kay McNulty. Nel 1946, questi ricercatori lasciarono l'Università della Pennsylvania per fondare la Eckert-Mauchly Computer Corporation.
ENIAC era un computer sostanziale e modulare, strutturato da pannelli distinti, ciascuno progettato per funzionalità specifiche. Tra questi, venti moduli funzionavano come accumulatori, capaci sia di addizione che di sottrazione, e di memorizzare un numero decimale di dieci cifre. Il trasferimento dei dati tra queste unità avveniva tramite più bus generici, colloquialmente denominati vassoi. Per raggiungere la sua velocità operativa, i pannelli sono stati progettati per trasmettere e ricevere dati numerici, eseguire calcoli, memorizzare risultati e avviare operazioni successive, il tutto attraverso componenti interamente statici. Un aspetto fondamentale della sua versatilità era la sua capacità di ramificazione, consentendo l'avvio di varie operazioni dipendenti dal segno di un risultato calcolato.
Componenti
Dopo la cessazione del suo periodo operativo nel 1956, l'ENIAC comprendeva 18.000 tubi a vuoto, 7.200 diodi a cristallo, 6.000 relè, 70.000 resistori, 10.000 condensatori e circa 5.000.000 di connessioni saldate a mano. Le sue specifiche fisiche includevano un peso superiore a 30 tonnellate corte (27 t), dimensioni di circa 10 piedi (3 m) di altezza, 3 piedi (1 m) di profondità e 100 piedi (30 m) di lunghezza, occupando una superficie di 300 piedi quadrati (28 m2) e assorbendo 150 kW di energia elettrica. L'immissione dei dati è stata facilitata da un lettore di schede IBM, mentre un perforatore di schede IBM fungeva da meccanismo di output. Queste schede perforate consentivano la generazione di output stampati offline attraverso una macchina contabile IBM, in particolare modelli come IBM 405. Inizialmente, ENIAC mancava di un sistema di archiviazione di memoria integrato; tuttavia, le schede perforate fornivano un mezzo per la conservazione dei dati esterni. Nel 1953, un'unità di memoria a nucleo magnetico da 100 parole, prodotta dalla Burroughs Corporation, fu integrata nel sistema ENIAC.
ENIAC utilizzava contatori ad anello a dieci posizioni per la memorizzazione delle cifre, con ciascuna cifra che necessitava di 36 tubi a vuoto, dieci dei quali erano doppi triodi che formavano i flip-flop all'interno del contatore ad anello. Le operazioni aritmetiche venivano eseguite incrementando gli impulsi tramite questi contatori ad anello e producendo impulsi di riporto in caso di overflow del contatore, replicando così elettronicamente la funzionalità delle ruote numeriche delle macchine addizionatrici meccaniche.
Il sistema ENIAC incorporava 20 accumulatori con segno a dieci cifre, utilizzando la rappresentazione del complemento a dieci, in grado di eseguire 5.000 operazioni elementari di addizione o sottrazione al secondo tra qualsiasi accumulatore e una fonte designata (ad esempio, un altro accumulatore o una costante trasmettitore). L'architettura consentiva l'interconnessione simultanea di più accumulatori, migliorando significativamente la potenziale velocità operativa di picco attraverso l'elaborazione parallela.
Il sistema consentiva la cascata di uscite di riporto da un accumulatore all'altro, consentendo operazioni aritmetiche con doppia precisione; tuttavia, i vincoli di temporizzazione del circuito di trasporto dell'accumulatore precludevano l'interconnessione di tre o più unità per un ulteriore miglioramento della precisione. Quattro accumulatori, gestiti da un'unità moltiplicatrice dedicata, facilitano fino a 385 operazioni di moltiplicazione al secondo. Inoltre, cinque accumulatori, sotto il controllo di un'unità specializzata di divisione/radice quadrata, potrebbero eseguire fino a 40 operazioni di divisione al secondo o tre operazioni di radice quadrata al secondo.
Le restanti nove unità ENIAC includevano l'unità di avvio (responsabile dell'avvio e dell'arresto della macchina), l'unità ciclica (per la sincronizzazione di altri componenti), il programmatore principale (che governa la sequenza del ciclo), il lettore (che gestisce un lettore di schede perforate IBM), la stampante (che controlla una perforatrice di schede IBM), il trasmettitore costante e tre tabelle di funzioni distinte.
Orari di funzionamento
Ulteriori dettagli riguardanti i tempi operativi, che mostrano alcune variazioni rispetto alle cifre presentate in precedenza, sono disponibili nei riferimenti forniti da Rojas e Hashagen (o Wilkes).
Il ciclo fondamentale della macchina misurava 200 microsecondi (equivalenti a 20 cicli dell'orologio da 100 kHz all'interno dell'unità ciclistica), traducendosi in 5.000 cicli al secondo per operazioni che coinvolgono numeri a 10 cifre. Durante un singolo ciclo, ENIAC era in grado di scrivere un numero su un registro, leggere un numero da un registro o eseguire l'addizione/sottrazione di due numeri.
La moltiplicazione di un numero di 10 cifre per un numero di cifre d (dove d varia fino a 10) richiedeva d+4 cicli. Di conseguenza, una moltiplicazione di 10 cifre per 10 cifre ha richiesto 14 cicli, ovvero 2.800 microsecondi, raggiungendo una velocità di 357 operazioni al secondo. Le operazioni che coinvolgevano numeri con meno di dieci cifre venivano eseguite più rapidamente.
I calcoli delle divisioni e delle radici quadrate richiedevano 13(d+1) cicli, dove d rappresentava il numero di cifre nel valore risultante (il quoziente o la radice quadrata). Pertanto, un'operazione di divisione o radice quadrata potrebbe richiedere fino a 143 cicli, equivalenti a 28.600 microsecondi, con una velocità di elaborazione di 35 operazioni al secondo. (Wilkes (1956:20) riporta che una divisione che produceva un quoziente di 10 cifre richiedeva 6 millisecondi.) I risultati contenenti meno di dieci cifre venivano calcolati più rapidamente.
L'ENIAC ha raggiunto una capacità di elaborazione di circa 500 FLOPS, in netto contrasto con la potenza di calcolo a petascala ed esascala caratteristica dei supercomputer contemporanei.
Affidabilità
L'ENIAC incorporava tubi radio standard a base ottale prevalenti all'epoca; i suoi accumulatori decimali utilizzavano flip-flop 6SN7, mentre 6L7, 6SJ7, 6SA7 e 6AC7 eseguivano varie funzioni logiche. Inoltre, una moltitudine di 6L6 e 6V6 funzionavano come line driver, facilitando la trasmissione degli impulsi tramite cavi che collegavano i gruppi rack.
L'ENIAC subiva spesso guasti ai tubi, con diversi componenti che si bruciavano quasi ogni giorno, rendendo la macchina inutilizzabile per circa la metà del suo tempo operativo. Tubi specializzati ad alta affidabilità divennero disponibili solo nel 1948. Tuttavia, la maggior parte di questi malfunzionamenti avvenivano durante le fasi di riscaldamento e raffreddamento, quando i riscaldatori dei tubi e i catodi erano sottoposti a picchi di stress termico. Gli ingegneri sono riusciti a mitigare il tasso di guasto dei tubi dell'ENIAC portandolo a un'incidenza più gestibile di un tubo ogni due giorni. Secondo un'intervista del 1989 con Eckert, un guasto al tubo si verificava circa ogni due giorni e il problema poteva essere identificato entro 15 minuti. Nel 1954, il periodo di funzionamento ininterrotto più lungo della macchina senza guasti arrivò a 116 ore, quasi cinque giorni.
Programmazione
L'ENIAC possedeva la capacità di essere programmato per sequenze operative complesse, comprendenti cicli, rami e subroutine. Tuttavia, a differenza dei computer contemporanei a programma memorizzato, l’ENIAC funzionava come un vasto insieme di unità aritmetiche. La sua programmazione iniziale prevedeva una combinazione di cablaggio a spina e tre tavoli funzionali portatili, ciascuno dotato di 1.200 interruttori a dieci vie. Il processo di traduzione di un problema in un formato eseguibile dalla macchina era intrinsecamente complesso e spesso richiedeva diverse settimane. Di conseguenza, le modifiche al programma sono state apportate solo dopo test approfonditi del programma esistente. Una volta concettualizzato un programma su carta, l'implementazione fisica nell'ENIAC, che comporta la manipolazione di interruttori e cavi, potrebbe durare diversi giorni. A questa fase è seguito un periodo di verifica e debugging, facilitato dalla possibilità di eseguire il programma passo dopo passo. Un tutorial di programmazione che dimostra la funzione modulo tramite un simulatore ENIAC fornisce informazioni sulla struttura di un programma ENIAC.
I sei principali programmatori dell'ENIAC - Kay McNulty, Betty Jennings, Betty Snyder, Marlyn Wescoff, Fran Bilas e Ruth Lichterman - sono stati determinanti non solo nell'ideare metodi per l'input del programma, ma anche nel coltivare una profonda comprensione dei meccanismi interni dell'ENIAC. Questi programmatori spesso dimostravano la capacità di individuare i difetti del software in uno specifico tubo malfunzionante, che poteva poi essere identificato per la sostituzione da parte di un tecnico.
Programmatori
Durante la seconda guerra mondiale, quando l'esercito americano richiedeva il calcolo delle traiettorie balistiche, numerose donne furono intervistate per questo ruolo fondamentale. La Moore School of Engineering successivamente impiegò almeno 200 donne come "computer", tra le quali sei furono selezionate per diventare programmatrici dell'ENIAC. Betty Holberton, Kay McNulty, Marlyn Wescoff, Ruth Lichterman, Betty Jean Jennings e Fran Bilas erano responsabili della programmazione dell'ENIAC per eseguire elettronicamente calcoli della traiettoria balistica per il Laboratorio di ricerca balistica dell'esercito. Nonostante possedessero un'istruzione ed un'esperienza paragonabili a quelle dei loro colleghi maschi, classificati come "professionisti", queste donne, matematiche altamente qualificate con diplomi professionali, erano classificate come "subprofessioniste".
Queste donne non erano semplicemente "donne del frigorifero"—modelle che posavano per foto giornalistiche davanti alla macchina—un fatto stabilito dalla ricerca dell'allora studentessa di informatica Kathryn Kleiman, che contraddiceva le narrazioni di alcuni storici dell'informatica. Tuttavia, alcune di queste donne non hanno mai ricevuto il dovuto riconoscimento per il loro contributo all’ENIAC durante la loro vita. Dopo la conclusione della guerra, queste donne continuarono il loro lavoro sull'ENIAC, la loro competenza specializzata rendeva difficile ricoprire i loro ruoli con i soldati di ritorno. Negli anni '90 Kleiman scoprì che la maggior parte dei programmatori dell'ENIAC non era stata invitata alla commemorazione del 50° anniversario della macchina. Di conseguenza, ha intrapreso la missione per localizzarli e documentare le loro storie orali. Kleiman ha osservato: "Sono rimasti scioccati nell'essere scoperti. Erano entusiasti di essere riconosciuti, ma avevano impressioni contrastanti su come si sentivano nell'essere ignorati per così tanto tempo". Kleiman ha successivamente pubblicato un libro che descrive in dettaglio le esperienze delle sei programmatrici ENIAC nel 2022.
I programmatori iniziali sono stati selezionati tra circa 200 donne che lavoravano come "computer" presso la Moore School of Electrical Engineering dell'Università della Pennsylvania. Questi "computer" avevano il compito di generare risultati numerici per formule matematiche essenziali per studi scientifici e progetti di ingegneria, tipicamente utilizzando calcolatrici meccaniche. Le donne hanno analizzato meticolosamente la logica, la struttura fisica, le procedure operative e i circuiti dell'ENIAC, acquisendo così una comprensione completa sia della matematica computazionale che del design intrinseco della macchina. Questo ruolo rappresentava una delle rare professioni tecniche accessibili alle donne in quell'epoca. In particolare, Betty Holberton (nata Snyder) contribuì in seguito allo sviluppo del primo sistema di programmazione generativa (SORT/MERGE) e, con Jean Jennings, assistette nella progettazione dei primi computer elettronici commerciali, UNIVAC e BINAC. McNulty ha ulteriormente migliorato la capacità computazionale di ENIAC attraverso l'implementazione di subroutine.
Herman Goldstine selezionò personalmente questi programmatori, che chiamò "operatori", dal gruppo di "computer" che avevano calcolato tabelle balistiche utilizzando calcolatrici meccaniche da tavolo e un analizzatore differenziale sia prima che durante lo sviluppo dell'ENIAC. Guidati da Herman e Adele Goldstine, questi "computer" esaminarono meticolosamente i progetti e l'architettura fisica dell'ENIAC per accertare la precisa manipolazione dei suoi interruttori e cavi, data l'assenza di linguaggi di programmazione formali all'epoca. Nonostante la programmazione sia ampiamente considerata dai contemporanei come una funzione d'ufficio e il ruolo fondamentale dei programmatori nel funzionamento di successo di ENIAC e nella presentazione pubblica rimanga in gran parte non riconosciuto, individui come McNulty, Jennings, Snyder, Wescoff, Bilas e Lichterman hanno successivamente ricevuto riconoscimenti per i loro contributi fondamentali all'informatica. Nel 2020, tre supercomputer dell'esercito americano, chiamati Jean, Kay e Betty,, onorano rispettivamente Jean Bartik (nata Jennings), Kay McNulty e Betty Snyder.
Inizialmente, i ruoli di "programmatore" e "operatore" non erano percepiti come occupazioni professionali adatte per le donne. La significativa carenza di manodopera indotta dalla seconda guerra mondiale ha facilitato l'ingresso delle donne in questo settore. Tuttavia, il settore in sé mancava di prestigio e il reclutamento delle donne veniva spesso interpretato come una strategia per riallocare gli uomini in posizioni più altamente qualificate. Fondamentalmente, le donne erano considerate come capaci di soddisfare un bisogno temporaneo durante un periodo di crisi. Ad esempio, nel 1942, il Comitato consultivo nazionale per l'aeronautica affermò: "Si ritiene che si ottenga un ritorno sufficientemente maggiore liberando gli ingegneri dai calcoli dettagliati per superare eventuali spese aumentate negli stipendi dei computer. Gli ingegneri stessi ammettono che le ragazze computer fanno il lavoro più rapidamente e accuratamente di quanto farebbero. Ciò è dovuto in larga misura alla sensazione tra gli ingegneri che la loro esperienza universitaria e industriale venga sprecata e ostacolata da semplici calcoli ripetitivi."
Successivamente all'iniziale sei programmatori, un team ampliato comprendente circa un centinaio di scienziati è stato riunito per continuare il progetto ENIAC. Questo gruppo comprendeva diverse donne, in particolare Gloria Ruth Gordon. Adele Goldstine è autrice della descrizione tecnica fondamentale dell'ENIAC.
Linguaggi di programmazione
Vari sistemi linguistici sono stati successivamente sviluppati per articolare i programmi per l'ENIAC, tra cui:
Ruolo nello sviluppo della bomba all'idrogeno
Mentre il Ballistic Research Laboratory sponsorizzava l'ENIAC, a circa un anno dall'inizio del suo sviluppo triennale, John von Neumann, un matematico impegnato nella ricerca sulla bomba all'idrogeno presso il Los Alamos National Laboratory, venne a conoscenza della macchina. Nel dicembre 1945, l'ENIAC fu impiegato per calcolare le reazioni termonucleari utilizzando equazioni specifiche, con i dati risultanti che supportavano direttamente gli sforzi di ricerca per la costruzione di una bomba all'idrogeno.
Ruolo nello sviluppo dei metodi Monte Carlo
Il coinvolgimento dell'ENIAC nel progetto della bomba all'idrogeno era intrinsecamente legato al suo ruolo chiave nella divulgazione del metodo Monte Carlo. Gli scienziati impegnati nello sviluppo iniziale delle armi nucleari si erano precedentemente affidati a vasti gruppi di “computer” umani per eseguire un gran numero di calcoli, determinando la probabile distanza percorsa dai neutroni attraverso diversi materiali. John von Neumann e Stanislaw Ulam hanno riconosciuto che la velocità di elaborazione dell'ENIAC potrebbe accelerare significativamente questi calcoli. L'applicazione riuscita dell'ENIAC in questo contesto ha dimostrato inequivocabilmente l'utilità scientifica dei metodi Monte Carlo.
Sviluppi successivi
Il 1° febbraio 1946 fu convocata una conferenza stampa, seguita dall'annuncio pubblico della macchina completata la sera del 14 febbraio 1946, che includeva dimostrazioni delle sue capacità. Elizabeth Snyder e Betty Jean Jennings furono responsabili dello sviluppo del programma di traiettoria dimostrativa, sebbene Herman e Adele Goldstine successivamente rivendicassero il merito di questo lavoro. La macchina è stata formalmente inaugurata il giorno successivo presso l'Università della Pennsylvania. In particolare, nessuna delle donne coinvolte nella programmazione della macchina o nella creazione della dimostrazione è stata invitata alla cerimonia di inaugurazione formale o alla cena celebrativa tenutasi successivamente.
Il contratto iniziale specificava un importo di 61.700 dollari, ma il costo finale è salito a quasi 500.000 dollari, che equivalgono a circa 9.000.000 di dollari nel 2025. L'Ordnance Corps dell'esercito americano ha accettato formalmente l'ENIAC a luglio 1946. Il 9 novembre 1946, l'ENIAC fu dismesso per lavori di ristrutturazione e aggiornamento della memoria, successivamente trasferito ad Aberdeen Proving Ground, nel Maryland, nel 1947. Lì fu riattivato il 29 luglio 1947 e rimase in funzionamento continuo fino alle 23:45. il 2 ottobre 1955, quando fu ritirato a favore dei più efficienti computer EDVAC e ORDVAC.
Ruolo nello sviluppo dell'EDVAC
Diversi mesi dopo la presentazione pubblica dell'ENIAC nell'estate del 1946, il Pentagono avviò "uno sforzo straordinario per far ripartire la ricerca nel campo" invitando i principali esperti di elettronica e matematica degli Stati Uniti e della Gran Bretagna a una serie di quarantotto conferenze a Filadelfia, in Pennsylvania. Conosciute collettivamente come Teoria e tecniche per la progettazione dei computer digitali, queste lezioni sono più comunemente chiamate Lezioni della Moore School. La metà di queste presentazioni sono state tenute dagli inventori dell'ENIAC.
L'ENIAC rappresentava un design unico che non fu mai replicato. Un congelamento del design implementato nel 1943 fece sì che mancassero alcune innovazioni che presto divennero standard, in particolare la capacità di memorizzare un programma. Successivamente Eckert e Mauchly iniziarono a lavorare su un nuovo progetto, in seguito denominato EDVAC, che mirava a essere allo stesso tempo più semplice e più potente. Nello specifico, nel 1944, Eckert descrisse un'unità di memoria, la linea di ritardo al mercurio, progettata per memorizzare sia dati che programmi. John von Neumann, che ha lavorato come consulente per la Moore School sul progetto EDVAC, ha partecipato agli incontri della Moore School in cui è stato sviluppato il concetto di programma memorizzato. Von Neumann compilò quindi una serie incompleta di note, intitolate Prima bozza di un rapporto sull'EDVAC, intesa come memorandum interno. Questo documento descriveva, elaborava e articolava formalmente in linguaggio logico le idee generate durante questi incontri. Herman Goldstine, amministratore dell'ENIAC e responsabile della sicurezza, ha distribuito copie di questa Prima bozza a numerose istituzioni governative e educative, stimolando così un interesse diffuso nello sviluppo di una nuova generazione di computer elettronici, tra cui l'Electronic Delay Storage Automatic Calculator (EDSAC) presso l'Università di Cambridge, in Inghilterra, e il SEAC presso l'U.S. Bureau of Standards.
Miglioramenti
Una serie di miglioramenti furono implementati per l'ENIAC dopo il 1947, incluso un rudimentale meccanismo di programmazione memorizzata di sola lettura che utilizzava le tabelle delle funzioni come ROM di programma, consentendo la programmazione tramite le impostazioni degli interruttori. Questo concetto è stato sviluppato in varie forme da Richard Clippinger e dal suo team, e indipendentemente dai Goldstine, per essere infine incorporato nel brevetto ENIAC. Clippinger si è consultato con von Neumann riguardo al set di istruzioni da implementare; Clippinger aveva proposto un'architettura a tre indirizzi, mentre von Neumann sosteneva un'architettura più semplice a un indirizzo. Tre cifre di un accumulatore (#6) erano allocate per il contatore del programma, un altro accumulatore (#15) fungeva da accumulatore primario, un terzo (#8) fungeva da puntatore di indirizzo per il recupero dei dati dalle tabelle delle funzioni e la maggior parte degli accumulatori rimanenti (1–5, 7, 9–14, 17–19) erano designati per la memoria dei dati.
Nel marzo del 1948 venne installata l'unità di conversione, che facilitava la programmazione tramite un lettore di schede IBM standard. Il "primo ciclo di produzione" che impiegava queste nuove tecniche di codifica per il problema di Monte Carlo avvenne nell'aprile successivo. Dopo il trasferimento dell'ENIAC ad Aberdeen, fu costruito anche un pannello di registro destinato alla memoria, sebbene si rivelò non funzionale. Inoltre, è stata integrata una piccola unità di controllo principale per gestire lo stato di alimentazione della macchina.
L'implementazione del programma memorizzato per ENIAC è stata sviluppata da Betty Jennings, Clippinger, Adele Goldstine e altri. La sua dimostrazione inaugurale come computer a programma memorizzato avvenne nell'aprile 1948, eseguendo un programma realizzato da Adele Goldstine per John von Neumann. Anche se questa modifica ha diminuito la velocità operativa dell'ENIAC di un fattore sei e ha rimosso la sua capacità di calcolo parallelo, la significativa riduzione del tempo di riprogrammazione da giorni a ore ha giustificato il compromesso in termini di prestazioni. Inoltre, le analisi hanno indicato che la maggior parte dei problemi pratici erano prevalentemente legati all'I/O, anche senza sfruttare il parallelismo originale della macchina, a causa delle disparità tra la velocità di calcolo elettronico e le velocità di input/output elettromeccaniche. Di conseguenza, la maggior parte dei calcoli rimase legata all'I/O, anche dopo la riduzione della velocità introdotta da questa modifica.
All'inizio del 1952 fu integrato un cambio ad alta velocità, migliorando le operazioni di cambio di un fattore cinque. Successivamente, nel luglio 1953, fu incorporata nel sistema una memoria centrale di espansione da 100 parole, che utilizzava decimali in codice binario con rappresentazione di numeri in eccesso di 3. Per facilitare questa espansione della memoria, ENIAC ha ricevuto un nuovo selettore della tabella delle funzioni, un selettore dell'indirizzo di memoria, circuiti di formazione degli impulsi e tre ordini di programmazione aggiuntivi.
Confronto con altri primi sistemi informatici
Mentre i dispositivi informatici meccanici esistevano già all'epoca di Archimede, si ritiene generalmente che l'era dei computer moderni sia iniziata negli anni '30 e '40.
Simile all'IBM Harvard Mark I e allo Z3 tedesco, l'ENIAC poteva eseguire una sequenza arbitraria di operazioni matematiche, sebbene non le recuperasse dal nastro magnetico. La sua programmazione, simile al colosso britannico, si basava su connettori e interruttori. ENIAC ha integrato in modo univoco la programmabilità completa e completa di Turing con velocità di elaborazione elettronica. L'Atanasoff-Berry Computer (ABC), l'ENIAC e il Colossus utilizzavano tutti valvole termoioniche, comunemente note come tubi a vuoto. In particolare, i registri dell'ENIAC elaboravano l'aritmetica decimale, in contrasto con l'aritmetica binaria impiegata da Z3, ABC e Colossus.
Prima dell'aprile 1948, ENIAC, proprio come il Colossus, necessitava di un ricablaggio fisico per la riprogrammazione. Nel giugno 1948, il Manchester Baby eseguì il suo programma iniziale, ottenendo così il riconoscimento come il primo computer elettronico a programma memorizzato. Sebbene il concetto di un computer con programma memorizzato, dotato di memoria unificata sia per le istruzioni che per i dati del programma, sia emerso durante lo sviluppo dell'ENIAC, inizialmente non è stato integrato. Questa omissione era dovuta alle esigenze della Seconda Guerra Mondiale che richiedevano un rapido completamento della macchina, insieme al fatto che le 20 posizioni di archiviazione limitate di ENIAC erano insufficienti sia per i dati che per i programmi.
Diffusione pubblica
Durante la seconda guerra mondiale, la Z3 e il Colossus furono sviluppati in modo indipendente, separati dai progetti ABC ed ENIAC. Lo sviluppo dell'ABC presso la Iowa State University cessò nel 1942 quando John Atanasoff fu convocato a Washington, DC, per ricerche di fisica con la Marina degli Stati Uniti; la macchina è stata successivamente smantellata. La Z3 fu distrutta durante i bombardamenti alleati su Berlino nel 1943. Le dieci macchine Colossus, parte integrante dello sforzo bellico del Regno Unito, rimasero segrete fino alla fine degli anni '70, sebbene le loro capacità fossero note al personale britannico e a selezionati invitati americani. In netto contrasto, l’ENIAC fu presentato alla stampa nel 1946, una manifestazione pubblica che “caturò l’immaginazione del mondo”. Di conseguenza, i precedenti resoconti storici dell'informatica potrebbero non avere una copertura e un'analisi completa di quest'epoca. Nel 1945, tutte le macchine Colossus tranne due furono smantellate; i restanti due furono impiegati dal GCHQ per decriptare le comunicazioni sovietiche fino agli anni '60. Snyder e Jennings hanno ideato la dimostrazione pubblica dell'ENIAC, che mostrava il calcolo della traiettoria di un missile in 15 secondi, un compito che avrebbe richiesto diverse settimane per un calcolatore umano.
Brevetto
A causa di diversi fattori, in particolare dell'ispezione da parte di Mauchly del giugno 1941 dell'Atanasoff–Berry Computer (ABC), prototipato nel 1939 da John Atanasoff e Clifford Berry, Gli Stati Uniti il brevetto 3.120.606 per ENIAC, depositato nel 1947 e rilasciato nel 1964, fu invalidato dalla sentenza del 1973 nel caso cruciale della corte federale Honeywell, Inc. contro Sperry Rand Corp.. Questa decisione stabilì che gli inventori dell'ENIAC avevano derivato l'oggetto principale del computer elettronico digitale da Atanasoff, avevano legalmente riconosciuto Atanasoff come l'inventore del primo computer elettronico digitale e di conseguenza avevano reso l'invenzione del computer elettronico digitale di dominio pubblico.
Componenti primari
I componenti principali comprendevano 40 pannelli e tre tavoli funzionali portatili, designati A, B e C. La disposizione di questi pannelli seguiva una sequenza in senso orario, iniziando dalla parete sinistra:
- Muro sinistro
- Unità di avvio
- Unità ciclistica
- Programmatore Master – Pannelli 1 e 2
- Tabella delle funzioni 1 – Pannelli 1 e 2
- Accumulatore 1
- Accumulatore 2
- Divisore e radice quadrata
- Accumulatore 3
- Accumulatore 4
- Accumulatore 5
- Accumulatore 6
- Accumulatore 7
- Accumulatore 8
- Accumulatore 9
- Muro posteriore
- Accumulatore 10
- Moltiplicatore ad alta velocità – Pannelli 1, 2 e 3
- Accumulatore 11
- Accumulatore 12
- Accumulatore 13
- Accumulatore 14
- Muro destro
- Accumulatore 15
- Accumulatore 16
- Accumulatore 17
- Accumulatore 18
- Tabella delle funzioni 2 – Pannelli 1 e 2
- Tabella delle funzioni 3 – Pannelli 1 e 2
- Accumulatore 19
- Accumulatore 20
- Trasmettitore costante – Pannelli 1, 2 e 3
- Stampante – Pannelli 1, 2 e 3
Un lettore di schede IBM è stato fissato al pannello del trasmettitore Constant 3, mentre un perforatore di schede IBM è stato collegato al pannello della stampante 2. Le tabelle delle funzioni portatili sono state progettate per l'interconnessione con le tabelle delle funzioni 1, 2 e 3.
Componenti sul display
Vari componenti di ENIAC sono conservati dalle seguenti istituzioni:
- La Scuola di Ingegneria e Scienze Applicate dell'Università della Pennsylvania possiede quattro dei quaranta pannelli originali (in particolare Accumulatore n. 18, Pannello Trasmettitore Costante 2, Pannello Programmatore Principale 2 e Unità Ciclistica), insieme a una delle tre tabelle di funzioni (Tabella delle funzioni B) di ENIAC. Questi articoli sono attualmente in prestito dallo Smithsonian Institution.
- Lo Smithsonian Institution contiene cinque pannelli (inclusi gli accumulatori 2, 19 e 20; i pannelli del trasmettitore costante 1 e 3; il divisore e la radice quadrata; la tabella delle funzioni 2 pannello 1; la tabella delle funzioni 3 pannello 2; i pannelli del moltiplicatore ad alta velocità 1 e 2; il pannello della stampante 1; e l'unità di avvio) all'interno del Museo Nazionale di Storia Americana a Washington, D.C. Tuttavia, secondo quanto riferito, questi manufatti non sono attualmente esposto.
- Il Museo della Scienza di Londra espone un'unità ricevente.
- Il Computer History Museum di Mountain View, California, espone tre pannelli (Accumulatore n. 12, Tabella funzioni 2, Pannello 2 e Pannello stampante 3) e la Tabella funzioni portatile C, che sono in prestito dallo Smithsonian Institution.
- L'Università del Michigan ad Ann Arbor conserva quattro pannelli (che comprendono due accumulatori, il pannello moltiplicatore ad alta velocità 3 e il pannello master programmatore 2), che sono stati recuperati da Arthur Burks.
- Il Portable Function Table A è ospitato presso l'Ordnance Museum dell'esercito degli Stati Uniti ad Aberdeen Proving Ground, nel Maryland, il sito in cui l'ENIAC era precedentemente operativo.
- A partire dall'ottobre 2014, il Museo dell'artiglieria da campo dell'esercito americano a Fort Sill ha acquisito sette pannelli ENIAC precedentemente gestiti da The Perot Group a Plano, Texas. Questi includono gli accumulatori n. 7, n. 8, n. 11 e n. 17; Pannelli n. 1 e n. 2, che erano collegati alla Tabella funzioni n. 1; e il retro di un pannello che illustra i suoi tubi a vuoto. Inoltre è esposto un modulo di tubi.
- L'Accademia militare degli Stati Uniti a West Point, New York, possiede uno dei terminali di immissione dati provenienti da ENIAC.
- Il Museo Heinz Nixdorf a Paderborn, in Germania, espone tre pannelli (nello specifico Printer Panel 2 e un High-speed Function Table), che sono in prestito dalla Smithsonian Institution. Nel 2014 il museo ha intrapreso la ricostruzione di uno dei pannelli degli accumulatori; questo componente ricostruito replica le qualità estetiche e tattili di una versione semplificata della macchina originale.
Riconoscimenti e riconoscimenti
ENIAC ha ricevuto la designazione come pietra miliare IEEE nel 1987.
Per commemorare il 50° anniversario di ENIAC nel 1996, l'Università della Pennsylvania ha sponsorizzato il progetto "ENIAC-on-a-Chip". Questa iniziativa prevedeva la creazione di un chip per computer in silicio in miniatura, che misurava 7,44 mm per 5,29 mm, che replicava la funzionalità originale dell'ENIAC. Nonostante funzionasse a 20 MHz ed fosse significativamente più veloce dell'ENIAC originale, questo chip raggiungeva solo una frazione della velocità di elaborazione dei microprocessori contemporanei disponibili alla fine degli anni '90.
Nel 1997, le sei principali programmatrici dell'ENIAC sono state inserite nella Women in Technology International Hall of Fame. I loro contributi vengono ulteriormente esplorati nel film documentario di LeAnn Erickson del 2010, Top Secret Rosies: The Female "Computers" of WWII. Inoltre, il cortometraggio documentario di Kate McMahon del 2014, The Computers, racconta le esperienze di questi sei programmatori, derivanti da due decenni di ricerca di Kathryn Kleiman e del suo team per l'ENIAC Programmers Project. Nel 2022, la Grand Central Publishing ha pubblicato la biografia con copertina rigida di Kathy Kleiman, Proving Ground, che descrive in dettaglio la vita dei sei programmatori ENIAC e il loro lavoro nel convertire i diagrammi a blocchi e gli schemi elettronici dell'ENIAC, mentre la macchina era ancora in costruzione, in programmi operativi.
Per commemorare il 65° anniversario dell'ENIAC nel 2011, la città di Filadelfia ha ufficialmente designato il 15 febbraio come ENIAC Day.
Il 15 febbraio 2016 è stato celebrato il 70° anniversario dell'ENIAC.
Storia dell'informatica
- Storia dell'informatica
- Storia dell'hardware informatico
- Donne nell'informatica
- Elenco dei computer a tubi a vuoto
- Elenco dell'elettronica militare degli Stati Uniti
- Computer militari
- Unisys
- Arthur Burks
- Betty Holberton
- Frances Bilas Spence
- Giovanni Mauchly
- J. Presper Eckert
- Jean Jennings Bartik
- Kathleen Antonelli (Kay McNulty)
- Marlyn Melzer
- Ruth Lichterman Teitelbaum
Note
Riferimenti
- Simulazione ENIAC
- Un'altra simulazione ENIAC
- Simulatore ENIAC a livello di impulso
- Modello stampabile in 3D dell'ENIAC
- Domande e risposte: un'intervista inedita con il co-inventore dell'ENIAC J. Presper Eckert
- Trascrizione di un'intervista video con J. Presper Eckert condotta da David Allison per il Museo Nazionale di Storia Americana, Smithsonian Institution, il 2 febbraio 1988. Questo documento fornisce una discussione tecnica approfondita sull'ENIAC, compresi approfondimenti sulla sua filosofia di progettazione.
- Intervista di storia orale con J. Presper Eckert, condotta da Nancy Stern il 28 ottobre 1977, presso il Charles Babbage Institute, Università del Minnesota. Eckert, co-inventore dell'ENIAC, ne parla dello sviluppo presso la Moore School of Electrical Engineering dell'Università della Pennsylvania, delle sfide nel garantire i diritti di brevetto e dell'impatto della "Prima bozza del rapporto sull'EDVAC" di John von Neumann del 1945, che di fatto rese di dominio pubblico le innovazioni dell'ENIAC.
- Intervista di storia orale con Carl Chambers, condotta da Nancy B. Stern il 30 novembre 1977, presso il Charles Babbage Institute, Università del Minnesota. Chambers descrive in dettaglio l'inizio e lo sviluppo del progetto ENIAC presso la Moore School of Electrical Engineering dell'Università della Pennsylvania dal 1941 al 1946.
- Intervista di storia orale con Irven A. Travis, condotta da Nancy B. Stern il 21 ottobre 1977, presso il Charles Babbage Institute, Università del Minnesota. Travis racconta il progetto ENIAC presso l'Università della Pennsylvania (1941-1946), evidenziando l'abilità tecnica e di leadership dell'ingegnere capo Eckert, il rapporto professionale tra John Mauchly ed Eckert, le controversie sui diritti di brevetto e il loro successivo abbandono dell'università.
- Intervista di storia orale con S. Reid Warren, Charles Babbage Institute, Università del Minnesota. Warren, che ha supervisionato il progetto EDVAC, concentra la sua discussione su J. Presper Eckert e John Mauchly, sui loro disaccordi con gli amministratori universitari riguardo ai diritti sui brevetti e sulla bozza di rapporto di John von Neumann del 1945 sull'EDVAC, sottolineando il suo insufficiente riconoscimento di tutti i contributori dell'EDVAC.
- Progetto Programmatori ENIAC
- Le donne dell'ENIAC
- Programmazione ENIAC
- Come ENIAC ha ricavato una radice quadrata
- Mike Muuss: raccolta di documenti ENIAC
- Capitolo ENIAC in Electronic Computers Within The Ordnance Corps di Karl Kempf, pubblicato nel novembre 1961.
- La storia dell'ENIAC, di Martin H. Weik, Ordnance Ballistic Research Laboratories, 1961.
- Museo ENIAC presso l'Università della Pennsylvania
- Specifiche ENIAC dal rapporto n. 971 dei Ballistic Research Laboratories, dicembre 1955, intitolato "A Survey of Domestic Electronic Digital Computing Systems".
- A Computer Is Born, una notizia sul 60° anniversario di Michael Kanellos, pubblicata su CNet il 13 febbraio 2006.
- Filmato del 1946 restaurato, Computer History Archives Project