Serie per IT Manager

Chiedi Chi Era von Neumann

L'elaborazione dati ha meno di cento anni, eppure molti ignorano le intuizioni e le circostanze che portarono alla rivoluzione che stiamo vivendo, un po' come accadde con la musica dei Beatles.

Chi era von Neumann

Gli Stadio nei primi anni '80 cantavano  Chiedi Chi Erano i Beatles (*), un invito ai  più giovani a conoscere i padri della buona musica che, dopo circa 50 anni, ancora commuove chi la sa ascoltare.

Parafrasando gli Stadio, invito a considerare chi era Von Neumann.

Con tutto il rispetto per Steve Jobs, Bill Gates  o Mark Zuckerberg, con von Neumann siamo su un altro pianeta: Vissuto a cavallo delle due grandi guerre (1903-1957)  è stato il matematico e fisico che ha definito l’architettura di base del calcolatore elettronico che porta il nome di  “Macchina di von Neumann”, oltre ad aver affiancato giganti della fisica nella messa a punto di micidiali ordigni militari.

Di origine ungherese, fu costretto a rifugiarsi negli USA per sfuggire alle persecuzioni naziste. Naturalizzato americano, partecipò a grandi progetti militari come Los Alamos e Manhattan.

Fu un “ragazzo prodigio”. Fin da bambino possedeva una grande memoria. Sapeva ripetere a memoria intere pagine di elenco telefonico viste  per pochi istanti; eseguiva a mente divisioni  con numeri da otto cifre e a dieci anni già padroneggiava sei lingue diverse, compreso il greco antico.

Al Ginnasio maturò la convinzione che gli aspetti economici e sociali e le relazioni tra individui, potessero essere  trattati in termini matematici; convinzione che mantiene per tutta la vita.

Alla fine della prima guerra mondiale, la sua famiglia si trasferì in Austria  per sfuggire alle persecuzioni sovietiche in Ungheria. Nel 1922, pubblicò il suo primo lavoro scientifico, distinguendosi come miglior studente di matematica dell’Ungheria.

Il padre lo fece iscrivere a chimica  e a 22 anni si laureò in Ingegneria Chimica a Zurigo e contemporaneamente in Matematica a Budapest, dopo aver seguito a Berlino  i corsi di Fritz Haber e di Albert Einstein.

Dopo alcune esperienze in Europa, approdò all'Università di Princeton negli Stati Uniti, per insegnare matematica insieme a Einstein, Weyl, Morse, Alexander e Weblen, tutti personaggi che passeranno alla storia.

Con l’avvento del nazismo è costretto ad abbandonare definitivamente l’Europa e restarsene in America per il resto della sua vita. Durante la seconda guerra mondiale si occupava della soluzione delle equazioni differenziali  non lineari, creando e pubblicando  insieme a Morgenstern la teoria dei giochi (Theory of Games and Economic Behavior), che ispirerà l’articolo "Una macchina giocatrice di scacchi" di Shannon, il fondatore della teoria dell’informazione.

Influenzato da  Herman Goldsitne, si appassionò anche all’idea  di costruire una macchina capace di eseguire almeno trecento operazioni al secondo.

Il primo calcolatore che avvicinò fu il Mark I costruito da Howard Aiken in collaborazione con IBM.

in seguito incontrò Prosper Eckert e John Mauchly impegnati a costruire l’ENIAC un computer di trenta tonnellate  basato su valvole, condensatori e interruttori destinato ai calcoli balistici e meteorologici.  L’ENIAC sfrutta anche l’intuizione dell’inglese Alan Turing  che già nel 1936 teorizzava l'esecuzione di istruzioni codificate in un programma.

Nel 1945  viene concepito l'EDVAC (Electronic Discrete Variables Automatic Computer), la prima macchina programmabile basata sull’architettura attribuita a von Neumann. In realtà, questo successo è da condividere con  Alan Turing  e le capacità ingegneristiche di Eckert e Mauchly.

La macchina di Turing

La macchina di Turing è una macchina teorica che elabora dati contenuti su un nastro potenzialmente infinito, secondo un insieme di regole prestabilite. Si tratta dell'astrazione di una macchina capace di eseguire algoritmi leggendo e scrivendo su un nastro infinito. E' un potente aiuto per comprendere i limiti del calcolo meccanico.

Tutte le macchine, compresi i sofisticati computer di oggi, possono essere ricondotte al modello ideato da Turing già nel 1936 nel campo dei numeri naturali. 

La macchina di Turing consentendo di risolvere  tutti i problemi risolvibili, è il modello di macchina più potente che si conosca, ma può essere usato anche per verificare la potenza di nuovi modelli teorici. Siamo in presenza della dimostrazione matematica dell'equivalenza del modello di macchina attraverso  modelli più semplici  già riconosciuti equivalenti. In sostanza, macchine diverse possono risolvere lo stesso problema in tempi diversi con programmi di diversa complessità computazionale. 

Durante la seconda guerra mondiale von Neumann lavora al progetto Manhattan per la costruzione della bomba atomica, rafforzando il suo odio per nazisti, giapponesi e sovietici.  Pensò anche a come arrecare il maggior danno con il lancio delle bombe. Dopo Hiroshima, continuò i test sulla bomba H, partecipando nel 1952 al lancio nelle isole Marshal, dove, forse, si procurò il cancro alle ossa che lo costrinse su una sedia a rotelle fino alla morte, sopraggiunta nel 1957.

Per la sua intraprendenza nel concepire ordigni di distruzione di massa, può essere considerato un genio del male,  mentre, ancora oggi, resta indiscusso il suo apporto positivo allo sviluppo degli elaboratori elettronici attraverso quella che viene chiamata la  “Macchina di von Neumann”.

La Macchina di von Neumann

L’architettura concepita da von Neumann prevede che il computer ospiti dati e istruzioni del programma nella stessa memoria.

Fu una geniale intuizione, ancora oggi, dopo oltre 70 anni,  applicata in tutti i computer. Il “First draft of a report on the EDVAC”, del 1945, descrive l’architettura del primo EDVAC.

Goldstine diffuse questo documento facendolo diventare il testo di riferimento della nuova generazione di computer.

Ovviamente, non mancarono le difficoltà iniziali. L’EDVAC, consegnato nel 1949 al Laboratori di Ricerche Balistiche diventa operativo solo nel 1951 a causa di alcuni malfunzionamenti scoperti  dopo la consegna.

L’architettura di von Neumann

Si basa su 5  componenti essenziali:

  1. CPU (Control Processor Unit) composta da:

    • ALU - Unità Aritmetica Logica

    • CTL    - Unità di Controllo

  2. Memoria

  3. Unità di Input

  4. Unità di Output

  5. Bus- Canale che collega tutti i componenti

(questa è una semplificazione del modello, ben più sofisticato in presenza di più periferie da considerare Unità di Input e di Output.)

Tutti gli elaboratori elettronici si basano su questo schema, molto ingegnoso per gli anni ’40 e molto robusto visto che ancora oggi resiste alle numerose scoperte nel campo dell’hardware.

Tutti gli elaboratori seguono questa logica, dettata dal pensiero di von Neumann:

L’ambizione di Von Neumann era produrre calcoli alla massima velocità coronando il sogni di quanti lo avevano preceduto nella storia.

Storia del calcolo automatico

L'uomo ha sempre sognato di disporre di uno strumento per fare i calcoli in modo più o meno automatico ricorrendo originariamente ai sassolini per contare o a rotori meccanici per rappresentare più grandezze.

I più interessati agli strumenti di calcolo sono stati gli astronomi che hanno cercato di inventare macchine capaci di fornire informazioni attraverso movimenti di ingranaggi sincronizzati.

Nel secondo secolo d.c. fu inventato l'abaco, basato su un telaio con file di palline mobili che rappresentano unità, decine e centinaia a seconda della posizione, anche se qualcuno parla di abaco già nel 5000 a.c.

Un esempio eclatante di "computer dell'età della pietra", nel vero senso delle parole,  sono i resti di Stonehenge in Inghilterra, dove enormi blocchi di pietra sistemati a circolo nel terreno permettevano di studiare la posizione degli astri.

Il primo esempio di calcolatore astronomico meccanico, rinvenuto nel mar Egeo, è la "macchina di anticitera",  una cassa rettangolare contenente un ingranaggio con una ventina di ruote dentate che dovevano azionare delle lancette per indicare il moto del sole, delle stelle e la posizione dei pianeti conosciuti.

Un classico computer astronomico è l'astrolabio, un arnese manuale che fa coincidere delle tacche disposte su dischi rotanti. Questo strumento consentiva di determinare l'ora in base all'altezza dei corpi celesti, diventando poi il prototipo degli strumenti per la navigazione.

Lo stesso principio venne applicato nel 1632 dall'inglese   William Oughtred nell'invenzione del regolo calcolatore basandosi sulla teoria di   Nepero per ridurre moltiplicazioni e divisioni a somme e sottrazioni.

Una delle prime vere macchine per fare dei calcoli  fu la “pascalina”  ideata e costruita da Blaise Pascal  per aiutare il padre a riscuotere le tasse, nella prima metà del 1600.  Questa calcolatrice effettuava solo addizioni e sottrazioni attraverso una serie di ruote dentate divise in 10 settori per contemplare il sistema decimale.

Pascal produsse una cinquantina di pascaline di varie dimensioni, comprese versioni non decimali per il calcolo di pesi e valute.

La macchina di Pascal ha avuto un enorme successo, se pensiamo che è stata costruita, anche se in versioni più sofisticate, fino agli anni '60 del secolo scorso, cioè per oltre 200 anni.

 

Seguirono diversi altri tentativi, tra cui quello di Leibniz che nel 1673 riuscì ad adattarla anche a moltiplicazioni e divisioni. 

In ogni caso, si trattava di calcolatrici delicate e costose, quindi difficili da commercializzare.

Solo nel 1820 apparve qualcosa di tipo industriale con l’aritmometro di Thomas de Colmar.  Questa calcolatrice portatile era in grado di eseguire le quattro operazioni con risultati fino a 12 cifre. Però non poteva essere programmata.

Seguì un periodo felice con diversi modelli di calcolatrici, tra cui la più fortunata fu la millionaire del tedesco Otto Steiger che riuscì a produrre e vendere oltre 4.500 esemplari anche in versione elettrica.

Questi prototipi di calcolatrici aprirono la strada alla meccanografia,  passando per il carillon e le schede perforate.

L’idea di un rullo rotante che con aghi producesse suoni (il carillon), poi tradotti in 0 e 1 portò al concepimento della scheda perforata (telaio di Jacquard). L’informazione era controllabile con un semplice sistema binario: dove la scheda era perforata provocando un contatto con il rullo, produceva valore  “1”, in assenza di contatto indicava valore “0”.

Le prime schede perforate di IBM avevano la dimensione di un dollaro e contenevano 12 righe e 80 colonne.

La prima tabulatrice di Hollerith fu impiegata per contabilizzare il censimento americano del 1890 in soli due anni e mezzo, contro i sette anni del precedente. Hollerith divenne famoso e ricco e nel 1896 fondo la Tabulating Machine Company che  nel 1924 divenne  International Business Machines (IBM).

 

L'Elaboratore Elettronico

Come accennato sopra, il primo elaboratore elettronico o computer (ASCC - Mark I) fu costruito durante la seconda guerra mondiale, presso l’Università di Harvard insieme a IBM,  su progetto di Howard Aiken (17 metri di lunghezza, 1,80 metri di altezza, 800.000 componenti e 80 Km di fili).

Il successivo modello vedrà sostituiti i relè con le valvole e per la prima volta sarà anche programmabile in base all’intuizione di von Neumann.  Si trattava dell'’ENIAC (electronic integrator and computer) veloce circa il doppio del Mark I, ma ancora mastodontico (30 tonnellate in 150 mq per 18.000 valvole). Il primo esemplare venne utilizzato dal centro balistico di Aberdeen per le previsioni meteorologiche,  lo studio della galleria del vento, l'analisi dei raggi cosmici e la creazione delle tavole balistiche.

Con la memorizzazione dei programmi nasce il computer moderno.  Per la prima volta, il programma caricato in memoria può essere modificato o sostituito, senza operazioni meccaniche, grazie all'idea di von Neumann.

In realtà, sembra che l’idea l'abbia avuta anche il tedesco Konrad Zuse che nel 1939 aveva costruito dei prototipi elettromeccanici a relè, perciò  qualcuno attribuisce l'invenzione del computer a Zus e non a von Neumann.

Anche Vincent Atanasoff, un fisico di origine bulgara, concepì una macchina capace di memorizzare programmi modificabili, basilari per la macchina di von Neumann.

In ogni caso, il primo elaboratore elettronico su scala industriale  è stato l’UNIVAC I prodotto dalla Remington, utilizzato ancora  per il censimento  del 1950. Poiché funzionava a valvole, oltre ad essere ingombrante presentava seri problemi di surriscaldamento.

L’UNIVAC I rappresentò la “prima generazione” di computer fino al 1958.

Negli anni sessanta  i costruttori iniziarono ad impiegare i transistor, scoperti  nei laboratori Bell nel 1947. Il transistor, oltre ad aumentare la velocità di calcolo, consentì di ridurre le dimensioni dell’intero computer, dando luogo alle macchine di “seconda generazione” con le quali si sfidarono IBM, Siemens e Olivetti.

Nel 1964 l’IBM annunciò la serie 360, il primo computer a circuiti integrati, dando luogo alla “terza generazione”. Con la serie 360, si raggiungevano i due milioni di operazioni al secondo con costi inferiori di oltre cento volte rispetto alla prima generazione.

Negli anni 70 e 80 assistiamo ad una continua miniaturizzazione dei circuiti integrati passando dalle schede integrate ai TCM (Thermal Conduction Module), dall’introduzione della memoria virtuale, ai microprocessori sempre più potenti.

Si entra così nella a “quarta generazione”, più o meno, quando nascevano gli attuali quarantenni.

Questo veloce escursus, qualcuno lo ha appreso all'Università, se ha frequentato quella giusta, ma molti lo ignorano.

L'articolo si intitola “Chiedi chi era von Neumann” proprio per invitare i giovani a considerare con più attenzione il recente passato di ciò che oggi volgarmente viene definita informatica. Ma dietro all'informatica, ci sono uomini e storia di uomini come quella di von Neumann.

 

*)  - se non  ricordi il testo, clicca su Chiedi Chi Erano i Beatles,  e ascolta attentamente le parole.

 

(se vuoi dare un contributo con dettagli o precisazioni documentate,

puoi farlo  registrandoti al gruppo di discussione TenStep Italia News.)

 

Vito Madaio - esperto di project management - Già Service Manager alla Camera dei deputati per Cap Gemini;  Direttore Sistemi Informativi del Gruppo Skandia e Architetto di Sistemi IBM. Da circa 15 anni è Responsabile di TenStep Italia  e PMTSI, REP del PMI e  si occupa principalmente di Certificazioni  per Project Manager  e Business Analyst.

 

TenStep Italia è il Global Partner  in esclusiva per l'Italia e per la lingua italiana del Gruppo TenStep Corporate di Atlanta (USA) - presente in in oltre 60 nazioni sui cinque continenti. TenStep Italia offre servizi di formazione e consulenza in tutta Italia ed è indipendente da qualsiasi associazione privata.

 

Promo:

Preparazione Esame di Certificazione PMP o CAPM

dal 19 al 23 Ottobre 2015 a Roma

€ 1.350,00 più IVA

(sconto 15% per conferme entro il 30 Settembre)

    Clicca qui e comunicaci la tua esigenza