Giovedì 29 Giugno 2006

- Sezione 3 - Dal 1600 al 1945 - Temi principali

Le macchine (Schickard-Von Neumann)

La meccanica (e la elettromeccanica)

 
In questo periodo (segnato dalla rivoluzione industriale) la capacità di costruire macchine aumenta enormemente; per il calcolo si va dai bastoncini di Nepero (non un vero meccanismo in realtà: si evolveranno nei regoli) alla diffusione delle calcolatrici meccaniche nei primi anni ’40 del 1900. I passi principali sono i seguenti:

 

  • Nepero (agli inizi del ‘600) introduce i “bastoncini” con tacche logaritmiche per fare le moltiplicazioni (e divisioni).

  • Wilhelm Schickard (1623) realizza una macchina a ruote dentate per fare le somme, citata da Keplero.

  • Pascal (intorno al 1642) progetta una macchina a ruote dentate (sfruttando la tecnologia messa a punto per gli orologi) che fa somme e sottrazioni; l’dea di fondo è di realizzare il riporto: ogni ruota (che può ruotare assumendo 10 posizioni) rappresenta i valori di una cifra decimale e quando compie un giro completo fa fare uno scatto a quella che le sta a sinistra.

  • Leibniz (intorno al 1673) aggiunge anche le moltiplicazioni ottenute sommando il moltiplicando con se stesso il numero di volte espresso dal moltiplicatore (mediante un “tamburo” a gradini o ruota di Leibniz); è il primo esempio di macchina calcolatrice che ha bisogno di “forza motrice” per fare il calcolo (nelle precedenti il calcolo veniva eseguito durante l’impostazione degli operandi).

  • Nel ‘700 vengono costruiti parecchi meccanismi (sempre con le tecnologie dell’orologio): tra questi si può citare quello costruito da Giovanni Poleni per operare su numeri di tre cifre.

  • All’inizio dell’ottocento (1802) ad opera di Joseph Marie Jacquard (a Lione) viene introdotto il telaio meccanico che costituisce una fondamentale innovazione: si fornisce forza motrice e si ottengono vari tipi di lavoro (seguendo la descrizione contenuta in schede perforate).

  • Thomas de Colmar (1820) costruisce l’aritmometro (la prima calcolatrice commercializzata, venduta in più di 1500 esemplari in trent’anni) in grado di eseguire le quattro operazioni, con risultati fino a 12 cifre.

  • Babbage nel 1822 pubblica la descrizione di una prima macchina (Difference Engine) che fa le quattro operazioni e calcola funzioni polinomiali e nel 1834 descrive una seconda macchina (Analytical Engine) che viene discussa compiutamente da Luigi Federico Menabrea nel 1842; l’anno successivo Ada Lovelace traduce in inglese il testo di Menabrea con profondi commenti di carattere matematico.

  • Christopher Latham Sholes e Carlos Glidden nel 1867 costruiscono la prima macchina da scrivere (commerciale) lanciata con il marchio Remington (costruttore di fucili e macchine da cucire)

  • Hermann Hollerith idea una delle prime macchine elettromeccaniche (a schede perforate) che vince la gara per elaborare i risultati del censimento USA del 1890 (le varie componenti furono costruite da diverse industrie). I primi dati arrivarono in settembre e il primo conteggio fu pronto il 12 dicembre (circa tre mesi invece dei previsti due anni: la popolazione risultò essere 62,622,250). Dalle invenzioni di Hollerit nasce la IBM che negli anni ‘30 (del 1900) commercializza parecchi modelli di macchine per il calcolo elettromeccaniche a schede.

  • Zuse, nel 1941, costruisce lo Z3 il primo calcolatore digitale elettromeccanico programmabile funzionante (dopo aver brevettato alcune idee nel 1936): usa il sistema binario e può elaborare numeri in virgola mobile; utilizza circa 2600 relays, 600 per la CPU, 600 per il sistema operativo e i rimanenti per la memoria (ma non aveva il programma memorizzato).

La teoria

Prima della definitiva innovazione, con l’introduzione dell’elettronica, occorrono ancora due passi concettuali:

  • Shannon nel 1937 mostra che l’algebre di Boole può essere realizzata con circuiti relays elettromeccanici (poi elettronici) a due stati; da questo momento (tranne alcune eccezioni all’inizio) i calcolatori automatici adottano il sistema di numerazione binario, con due cifre tradizionalmente indicate con “0” e “1”.

  • Von Neumann (che aveva partecipato agli studi di Hilbert, di cui era allievo e interagito con Gödel e Turing) nel 1945 elabora la cosiddetta architettura di Von Neumann, che descrive un computer in termini di memoria centrale, che contiene i dati (iniziali, intermedi e finali) e programma, la CPU e le memorie esterne.

Lo schema della macchina di Von Neumann

Come mostrato in figura la macchina di Von Neumann è composta da tre parti concettuali: la memoria (centrale), la CPU (CentralProcessingUnit) e le memorie periferiche (nella versione originale la CPU era divisa in due parti e le memorie periferiche erano “l’operatore umano”).

La memoria centrale è costituita da “celle” che hanno un “contenuto” (per esempio numeri interi, numeri razionali o lettere dell’alfabeto) codificato come successioni di bit e un “indirizzo” (un numero intero, in genere a partire da zero). Dall’esterno sono possibili essenzialmente due tipi di “operazioni”:

- dato un indirizzo, conoscere il contenuto della cella con quell’indirizzo;

- dato un indirizzo e un contenuto, mettere quest’ultimo nella cella con l’indirizzo dato.

La CPU è capace di eseguire un “programma” che è registrato in memoria, a partire da un indirizzo fissato. Un programma è costituito da una successione di “istruzioni” (ognuna contenuta in una cella). La CPU esegue la prima istruzione e, in linea di principio, passa ad eseguire la successiva. Esistono tre tipi di istruzioni:

“operative”: tipicamente fanno operazioni sulla memoria: per esempio “sommare i numeri interi (contenuti in due celle con certi indirizzi) e mettere il risultato in una cella con un dato indirizzo.

“di controllo”: alterano l’esecuzione delle istruzioni: per esempio “se il contenuto di una certa cella è un numero intero positivo, allora non eseguire la istruzione contenuta nella cella successiva, ma quella contenuta in una cella con dato indirizzo”.

“di input/output” (o I/O): fanno scambiare dati tra la memoria (centrale) e le memorie periferiche.

L’elettronica

Comincia negli ultimi anni di questo periodo la progettazione e la costruzione dei primi computer elettronici: compaiono essenzialmente cinque macchine degne di nota.

  • ABC: Atanasoff e Berry mettono a punto il primo computer iniziato nel 1937 finito nel 1942; era elettronico (a valvole, naturalmente), ma non era programmabile, usava un certo grado di parallelismo ed era orientato a risolvere i problemi di algebra lineare.

  • Colossus: Turing partecipa alla ideazione; è operativo nel 1943 (non è generalpurpose: serve per decifrare i codici tedeschi) impiega 1500 valvole, ma anche una sostanziale componente elettromeccanica.

  • Eniac (Electronic Numerical Integrator And Computer) (progettato, costruito e funzionante nel 1945) calcoli per il progetto Manhattan, tabelle di puntamento dei cannoni e altri problemi numerici; il suo più grande pregio fu di dimostrare che 18000 valvole potevano funzionare (senza bruciare) per un tempo sufficiente a fare del lavoro utile; era programmabile con pannelli di controllo a fili simili ai centralini telefonici (di allora) e impiegava l’aritmetica decimale. Tra i progettisti H. Goldstine, J. Eckert, J. Mauchly

  • Edvac (Electronic Discrete VAriable Calculator), descritto in un rapporto di Von Neumann nel 1945. Impiegava (appunto) l’architettura di Von Neumann,fu terminato nel 1949 e fu operativo dal 1951 fino al 1961. Tra i “progettisti” J. Eckert e J. Von Neumann

  • Ace (Automatic Computing Engine), descritto da Turing nel 1945, fu costruito dal National Phisical Laboratori a Londra e divenne operativo nel 1950.

  • I computer (elettronici) di questo periodo furono essenzialmente usati per scopi scientifici o bellici, con un impatto quasi nullo sul mercato.

Home Tour virtuale Sezione 3 Temi principali