Il calcolatore - home page | DEIfilira/fi/etc/u01aStoriaDegliElaboratori.pdf · della storia....

27
1 01.a Il calcolatore Il calcolatore Un po’ di storia 2 1 Architettura degli Elaboratori 1 © 2005 51 Storia del calcolo automatico Storia del calcolo automatico Legata allo sviluppo della tecnologia: Generazione -1: La preistoria ????-1642 Generazione 0: Meccanica 1642-1935 Generazione 1: Elettromeccanica 1935-1945 Generazione 2: Valvole termoioniche 1945-1955 Generazione 3: Transistors 1955-1965 Generazione 4: Circuiti integrati 1965-1980 Generazione 5: VLSI 1980-????

Transcript of Il calcolatore - home page | DEIfilira/fi/etc/u01aStoriaDegliElaboratori.pdf · della storia....

1

01.a

Il calcolatoreIl calcolatore

Un po’ di storia

2

1

Architettura degli Elaboratori 1 © 2005

51

Storia del calcolo automaticoStoria del calcolo automatico

Legata allo sviluppo della tecnologia:● Generazione -1: La preistoria ????-1642● Generazione 0: Meccanica 1642-1935● Generazione 1: Elettromeccanica 1935-1945● Generazione 2: Valvole termoioniche 1945-1955● Generazione 3: Transistors 1955-1965● Generazione 4: Circuiti integrati 1965-1980● Generazione 5: VLSI 1980-????

3

2

Architettura degli Elaboratori 1 © 2005

51

Oggetti usati come strumenti di calcolo(es: conchiglie per rappresentare pecore)

= stessa cardinalità= rappresentano lo stesso numero

Generazione Generazione --1: preistoria (1: preistoria (……--1642)1642)

4

3

Architettura degli Elaboratori 1 © 2005

51

operazioni aritmetiche come procedure “manuali”:

Nome della procedura manuale : “addizione di numeri interi”

rappresentazionedel numero “2”

A

rappresentazionedel numero “1”

B

Procedura: sposta il contenuto del sacco A nel sacco BRisultato: il sacco B contiene ora la rappresentazione di …

rappresentazionedel numero “3”

B

Generazione Generazione --1: preistoria (1: preistoria (……--1642)1642)

5

4

Architettura degli Elaboratori 1 © 2005

51

Osservazioni: • manipolando conchiglie, si possonomanipolare numeri…

• e fare calcoli (addizioni, sottrazioni…)

• procedure semplici, soggette ad errore, lente

Generazione Generazione --1: preistoria (1: preistoria (……--1642)1642)

6

5

Architettura degli Elaboratori 1 © 2005

51

Meccanismo più sofisticato: l’abacousa il concetto di notazione posizionale.

Valore delle cifre

Peso di ciascuna cifra (potenze di 10)

Generazione Generazione --1: preistoria (1: preistoria (……--1642)1642)

7

6

Architettura degli Elaboratori 1 © 2005

51

Solo più tardi il far di conto diventa un processo astratto che utilizza numeri rappresentati in forma scritta da simboli (cifre). Le procedure per eseguire le operazioni aritmetiche sono eseguite su … papiro.

Si possono fare operazioni più complesse.Procedure ancora manuali, ma più veloci.Ancora soggette ad errore

meno che con le conchiglie!

111 –010 =

101

Generazione Generazione --1: preistoria (1: preistoria (……--1642)1642)

8

7

Architettura degli Elaboratori 1 © 2005

51

Nel XII secolo: Muhammad ibn MusaAl'Khowarizmi sviluppa ilconcetto di definizionescritta di un procedimentoda seguire per ottenereun risultato

Da cui il nome: algoritmo

Generazione Generazione --1: preistoria (1: preistoria (……--1642)1642)

9

8

Architettura degli Elaboratori 1 © 2005

51

Per secoli il problema principale era stato:come riuscire ad eseguire

Un dato algoritmoIn modo non-manuale (automatico)Possibilmente più velocemente che a manoPossibilmente più affidabile (senza errori)

Generazione Generazione --1: preistoria (1: preistoria (……--1642)1642)

10

9

Architettura degli Elaboratori 1 © 2005

51

Codex Madrid - Leonardo Da Vinci (~1500)− scoperto per caso a Madrid nel 1967− progetto di un calcolatore meccanico...?

Generazione Generazione --1: preistoria (1: preistoria (……--1642)1642)

11

10

Architettura degli Elaboratori 1 © 2005

51

Codex Madrid - Leonardo Da Vinci (~1500)●Guatelli (New York) lo costruì nel 1968

Generazione Generazione --1: preistoria (1: preistoria (……--1642)1642)

12

11

Architettura degli Elaboratori 1 © 2005

51

Blaise Pascal, figlio di un esattore delle tasse, costruìnel 1642 una macchina addizionatrice con riporto automatico. Le cifre degli operandi venivano inserite nelle ruote inferiori, la somma eseguita dagli ingranaggi interni, le cifre del risultato apparivano nelle finestre superiori

Generazione 0: Meccanica (1642Generazione 0: Meccanica (1642--1935)1935)

13

12

Architettura degli Elaboratori 1 © 2005

51

Generazione 0: Meccanica (1642Generazione 0: Meccanica (1642--1935)1935)Joseph-Marie Jacquard inventò nel 1801 un telaio automatico con trama e ordito controllati da schede perforate

14

13

Architettura degli Elaboratori 1 © 2005

51

La macchina di Jacquard (1801) operava secondo uno schema prefissato.L’output era funzione del “programma” scritto nelle schede perforate●Primo esempio di un software

(istruzioni su schede perforate)●Nessuno raccolse questa invenzione geniale

di Jacquard (considerata una minaccia alla occupazione nell’industria tessile)

Generazione 0: Meccanica (1642Generazione 0: Meccanica (1642--1935)1935)

15

14

Architettura degli Elaboratori 1 © 2005

51

Charles Babbage nel 1822 ottenne dal governo britannico un finanziamento per costruire una macchina (difference engine) intesa a calcolare rapidamente e senza errori le tavole numeriche usate per la navigazione.Primo esempio di finanziamento della ricercain Computer Science.

Generazione 0: Meccanica (1642Generazione 0: Meccanica (1642--1935)1935)

16

15

Architettura degli Elaboratori 1 © 2005

51

Generazione 0: Meccanica (1642Generazione 0: Meccanica (1642--1935)1935)

17

16

Architettura degli Elaboratori 1 © 2005

51

Il Difference Engine progettato da Babbagedoveva calcolare e stampare tavole di valori di polinomi fino al sesto grado, con la precisione di 20 cifre decimaliOggi si chiamerebbe:application specific hard-coded machineNonostante il finanzimento Babbage non riuscì a costruire il Difference Engine: dopo 10 anni, nel 1832, abbandonò il progetto e ne intraprese un altro (Analitical Engine)

Generazione 0: Meccanica (1642Generazione 0: Meccanica (1642--1935)1935)

18

17

Architettura degli Elaboratori 1 © 2005

51

Nel 1853 (più di 20 anni dopo) lo svedese GeorgScheutz, costruì una versione limitata delDifference Engine di Babbage

Generazione 0: Meccanica (1642Generazione 0: Meccanica (1642--1935)1935)

19

18

Architettura degli Elaboratori 1 © 2005

51

Nel 1989-91, fu costruita una versione completa del DifferenceEngine, sulla base del progetto originale di Babbage

Generazione 0: Meccanica (1642Generazione 0: Meccanica (1642--1935)1935)

20

19

Architettura degli Elaboratori 1 © 2005

51

Nonostante le energie (e il denaro) speso, Babbage non riuscì a costruire nemmeno la Analitical Engine:come per Leonardo, la

tecnologia non era ancora matura.

L’Analytical Engine (il nuovo progetto di Babbage) è il primo vero “computer” della storia: Un dispositivo programmabile con la struttura dei computer moderni:

Organi di Input (schede perforate) per dati e istruzioniOrgani di Output (ruote predisposte per stampare)Organi di Memoria (the Store), posizione delle ruotedentate (1000 colonne di 50 ruote: ~200Kbit)Una unità aritmetica (the Mill), Un modulo di controllo, per stabilire la sequenzadelle operazioni.

Generazione 0: Meccanica (1642Generazione 0: Meccanica (1642--1935)1935)

21

20

Architettura degli Elaboratori 1 © 2005

51

Nel 1842, la contessa Ada Lovelace, scrisse il primo programma per la Analytical Engine di Babbage.

Può essere considerata la prima programmatricedella storia.

Generazione 0: Meccanica (1642Generazione 0: Meccanica (1642--1935)1935)

22

21

Architettura degli Elaboratori 1 © 2005

51

Nel 1890 Herman Hollerith vinse la gara per la fornitura delle apparecchiature di calcolo necessarie al governo americano per elaborare i dati del censimento

Nel 1914, la società da lui fondata, HollerithTabulating Company, insieme ad altre due, costituì la Calculating-Tabulating-Recording(C-T-R) che, nel 1924, prese il nome di IBM.

Generazione 0: Meccanica (1642Generazione 0: Meccanica (1642--1935)1935)

23

22

Architettura degli Elaboratori 1 © 2005

51

nel 1935 Konrad Zuse (Berlino), costruì, nel salotto dei genitori, lo Z-1 un calcolatore a relay, utilizzante aritmetica binaria (tempo di esecuzione delle istruzioni: 6 s ~ 0.17 Hz)

Generazione 1: Elettrom. (1935Generazione 1: Elettrom. (1935--1945)1945)

24

23

Architettura degli Elaboratori 1 © 2005

51

Fine degli anni 30: Howard Aiken costruì lo HarvardMark I (IBM Automatic Sequence Control Calculator -ASCC) il primo calcolatore elettromeccanico “general purpose” messo in commercio.Le istruzioni venivano lette da banda perforata (come previsto dalla Analitical Engine di Babbage).

Generazione 1: Elettrom. (1935Generazione 1: Elettrom. (1935--1945)1945)

25

24

Architettura degli Elaboratori 1 © 2005

51

Generazione 1: Generazione 1: Elettromeccanica Elettromeccanica (1935(1935--1945)1945)

Nell’Harvard MARK I Grace M. Hoppertrovò il primo bug(scarafaggio) ucciso tra le ganasce di un relay. L’insetto fu da lei incollato nel logbookdel computer e da allora, ad ogni guasto della macchina, era solita dire ad HowardAiken che dovevano "debug the computer”

26

25

Architettura degli Elaboratori 1 © 2005

51

1936: Alan M. Turing definisce un modello di computabilità:

Macchina di TuringUna macchina “universale” molto semplice: in grado di calcolare qualsiasi funzione computabile: la complessitàrichiesta sta tutta nel softwareIl problema ingegneristico di produrre macchine diverse per svolgere compiti diversi è sostituito dal lavoro di programmare la macchina universale per i vari compiti.

19361936

27

26

Architettura degli Elaboratori 1 © 2005

51ABC - Il primo elaboratore elettronico

Generazione 2: Valvole (1945Generazione 2: Valvole (1945--1955)1955)

John Atanasoff and Clifford Berrycostruirono, tra il 1939 e il 1942, il primo elaboratore digitale elettronico alla università dello Iowa. The ABC conteneva molte innovazioni tra cui l’aritmetica binaria, l’elaborazione parallela, le memorie dinamiche e la separazione tra la memoria e le funzioni di calcolo.

28

27

Architettura degli Elaboratori 1 © 2005

51

"It was at an evening of scotch and 100 mph car rides, when the concept came, for an electronically operated machine, that would use base-two (binary) numbers instead of the traditional base-10 numbers, condensers for memory, and a regenerative process to preclude loss of memory from electrical failure.”

Generazione 2: Valvole (1945Generazione 2: Valvole (1945--1955)1955)

John Atanasoff scrisse la maggior parte dei concetti del primo elaboratore moderno sul retro di un tovagliolino da cocktail. Il prototipo funzionante non fu mai brevettato per l’inizio della II Guerra mondiale. Eckert and Mauchly furono i primi a brevettare un elaboratore digitale, l’ENIAC.

29

28

Architettura degli Elaboratori 1 © 2005

51

Nel 1943 iniziò il progetto per costruire ENIAC(Electronic Numerical Integrator and Computer)

Mauchly (1907-1980) e Eckert (1919-1995)

Generazione 2: Valvole (1945Generazione 2: Valvole (1945--1955)1955)

30

29

Architettura degli Elaboratori 1 © 2005

51

ENIAC18’000 valvole, 1’500 relay, 30 tonnellate,140 kW, 20 registri da 10 cifre decimali.Programmi cablati (6’000 interruttori, tonnellate di fili).Soggetto a guasti: negli ultimi 6 anni, in media 100 ore/sett. di operatività:availability = 60%

Generazione 2: Valvole (1945Generazione 2: Valvole (1945--1955)1955)

31

30

Architettura degli Elaboratori 1 © 2005

51

Generazione 2: Valvole (1945Generazione 2: Valvole (1945--1955)1955)Nel 1946, John von Neumann progettò un “stored program computer”: il programma non è più definito da interruttori e cavi o da schede perforate, ma si trova in memoria (la stessa che contiene i dati). L’architettura di von Neumann prevede:

- un modulo di controllo, - un modulo ALU con accumulatore,- una memoria per contenere programmi e dati,- viene usata l’aritmetica binaria, anziché quella decimale

I computer odierni sono ancora basati su questa architettura di von Neumann (in realtà deriva da Babbage)Questa architettura presenta il

“von Neumann bottleneck”, tra la memoria e il resto del computer; tutte le nuove architetture cercano di rimuovere questo collo di bottiglia.

32

31

Architettura degli Elaboratori 1 © 2005

51

John von Neumann (1952) e il suo EDVACElectronic Discrete Variable Automatic Computer

Generazione 2: Valvole (1945Generazione 2: Valvole (1945--1955)1955)

33

32

Architettura degli Elaboratori 1 © 2005

51

Altre macchine:Manchester Mark I, il primo “stored program”computer ad essere operativo (nel 1948) all’Università di Manchester.

Generazione 2: Valvole (1945Generazione 2: Valvole (1945--1955)1955)

34

33

Architettura degli Elaboratori 1 © 2005

51

Altre macchine: nel 1951, ilWhirlwindcomputer (MIT) fu il primo ad impiegarememoriemagnetiche(nuclei di ferrite)

Generazione 2: Valvole (1945Generazione 2: Valvole (1945--1955)1955)

35

34

Architettura degli Elaboratori 1 © 2005

51

memoria (da 256 bit) a nuclei di ferrite

Generazione 2: Valvole (1945Generazione 2: Valvole (1945--1955)1955)

36

35

Architettura degli Elaboratori 1 © 2005

51

Nel 1952 Grace Hopper in un articolo intitolato:The Education of a Computer",

(Proc. ACM Conference, Annals of the History of Computing Vol. 9, No.3-4, pp. 271-281) descrive il concetto di compilatore.

Generazione 2: Valvole (1945Generazione 2: Valvole (1945--1955)1955)

37

36

Architettura degli Elaboratori 1 © 2005

51

Nel 1954, John Backus(IBM) sviluppò il primo linguaggio di programmazione di alto livello (FORTRAN) con cui gli utenti potevano definire i problemi in termini di formule matematicheIl primo compilatore FORTRAN era costituito da 2’000 schede perforate (2000 righe di codice non documentato)Molti programmi scientifici sono tuttora scritti in FORTRAN

Generazione 2: Valvole (1945Generazione 2: Valvole (1945--1955)1955)

38

37

Architettura degli Elaboratori 1 © 2005

51

Generazione 3: Transistor (1955Generazione 3: Transistor (1955--1965)1965)

Nel 1947 W. Shockley, J. Bardeen, e W. Brattaininventano il dispositivo transfer resistancein seguito chiamato transistor

39

38

Architettura degli Elaboratori 1 © 2005

51

Generazione 3: Transistor (1955Generazione 3: Transistor (1955--1965)1965)

Nel 1955, l’IBM produsse un computer mainframe(IBM704), usando transistor discreti.Il primo computer con aritmetica floating point (5 kFlops, clock: 300 kHz)

40

39

Architettura degli Elaboratori 1 © 2005

51

Generazione 4: ICs (1965Generazione 4: ICs (1965--1980)1980)Nel 1958, J. Kilby della Texas Instruments (premio Nobel per la fisica nel 2000) dimostrò la possibilità di integrare un transistor insieme con resistenze e capacità su un singolo chip disemiconduttore (~1 cm2), per ottenere un oscillatore phase shift.

41

40

Architettura degli Elaboratori 1 © 2005

51

Nel 1961, Fernando Corbató (MIT) produsse CTSS (Compatible Time Sharing System) per il computer IBM 7090/94:il primo sistema operativo (time-sharing) della storia.

Nel 1962 all’Università di Manchester fu operativo il computer Atlas: il primo ad usare le tecniche di memoria virtuale, di paging e di pipelining; possedeva moduli separati per l’aritmetica intera e floating-point, (prestazioni di ~200 kFLOPS).

Generazione 4: ICs (1965Generazione 4: ICs (1965--1980)1980)

42

41

Architettura degli Elaboratori 1 © 2005

51

Generazione 4: ICs (1965Generazione 4: ICs (1965--1980)1980)Nel 1964 l’IBM annunciò il System/360, la prima famiglia di computer compatibili .

43

42

Architettura degli Elaboratori 1 © 2005

51

Nel 1965, la DEC (Digital EquipmentCorporation) produsse il PDP-8, il primo minicomputer.Si diffuse presto nei sistemi di controllo dei processi

Generazione 4: ICs (1965Generazione 4: ICs (1965--1980)1980)

44

43

Architettura degli Elaboratori 1 © 2005

51

Generazione 5: VLSI (1980Generazione 5: VLSI (1980--?)?)

Nel 1971, Ted Hoffprodusse l’Intel 4004, il primo microprocessore, cioè il primo processore (a 4 bit) integrato su un singolo chip

45

44

Architettura degli Elaboratori 1 © 2005

51

Generazione 5: VLSI (1980Generazione 5: VLSI (1980--?)?)Nel 1975 MITS produsse l’Altair 8800, il primo personal computer (memoria di 256 byte)Più tardi, Bill Gates and Paul Allen scrissero il primo compilatore BASIC per l’AltairNel 1976: Apple I (ne furono prodotti 200).Nel 1981: il primo PC IBM

46

45

Architettura degli Elaboratori 1 © 2005

51

Generazione 5: VLSI (1980Generazione 5: VLSI (1980--?)?)

Nel 1984, lo XeroxPARC (Palo Alto Research Center) presentò ALTO, il primo computer con un nuova interfaccia utente (GUI): finestre, icone, mouse

47

46

Architettura degli Elaboratori 1 © 2005

51

Generazione 5: VLSI (1980Generazione 5: VLSI (1980--?)?)

Nel 1986: il Cray-XMPsupercomputer con 4 processori (840 Mflops).(raffreddato ad acqua)

48

47

Architettura degli Elaboratori 1 © 2005

51

Generazione 5: VLSI (1980Generazione 5: VLSI (1980--?)?)

Prestazioni simili a quelle del Pentium III (2000)

49

48

Architettura degli Elaboratori 1 © 2005

51

Sony Sony PlaystationPlaystation 20002000

50

49

Architettura degli Elaboratori 1 © 2005

51

CPU: Emotion EngineCPU: Emotion Engine128-bit RISC - MIPS IV-subset + 128-bit multimedia extension64-bit integer unit (2-way superscalar),107 multimedia 128-bit instructions 32 128-bit registers, 48 double entries memory management unit (TLB) 64 entries branch target address cache (BTAC)

ClockClock 300MHz (294.912MHz)300MHz (294.912MHz)Cache Cache 16KB instruction (216KB instruction (2--way) way) -- 8KB data (28KB data (2--way)way)Scratch pad RAMScratch pad RAM 16KB (1K16KB (1K××128, dual port128, dual port))Memory Memory 32MB (2 channels at 800MHz)32MB (2 channels at 800MHz)Direct Direct RambusRambus 3.2GB/sec3.2GB/secDMADMA 10 channels10 channelsCoCo--processorprocessor FPU MAC FPU MAC ××1, FPU DIV 1, FPU DIV ××11Vector unit VU0 (4KB/4KB)Vector unit VU0 (4KB/4KB) FPU MAC FPU MAC ××4, FPU DIV 4, FPU DIV ××11Vector unit VU1 (16KB/16KB)Vector unit VU1 (16KB/16KB) FPU MAC FPU MAC ××9, FPU DIV 9, FPU DIV ××33DecoderDecoder MPEG2MPEG2SizeSize 226mm226mm2 2 (240mm(240mm22))

Performance: 6.2 Gflops66 Mpoly/s (geometric and perspective transformations)38 Mpoly/s (lighting) / 36 Mpoly/s (fog) 16 Mpoly/s (curved surface, Bezier)

51

50

Architettura degli Elaboratori 1 © 2005

51

Toshiba (51%) + Sony (49%)

[email protected] (ISSCC’99)10.5M transistors (13M now)15W540-pin PBGA

Emotion EngineEmotion Engine

52

51

Architettura degli Elaboratori 1 © 2005

51

▪▪ Pixel enginesPixel engines 16 in parallel16 in parallel▪▪ ClockClock 150MHz (147.456MHz)150MHz (147.456MHz)▪▪ Video RAMVideo RAM 4MB (embedded)4MB (embedded)▪▪ DRAM bandwidthDRAM bandwidth 48GB/sec48GB/sec▪▪ DRAM bus widthDRAM bus width 25602560--bit (1024+1024+512)bit (1024+1024+512)▪▪ RGB:Alpha:Z BufferRGB:Alpha:Z Buffer 24:8:3224:8:32

42.7Mtransistors42.7Mtransistors 183mm183mm22 (279mm(279mm22))

Performance: 75 Mpoly/secPerformance: 75 Mpoly/sec (small polygons)(small polygons)50 Mpoly/sec50 Mpoly/sec (48 pix quad, 24(48 pix quad, 24--bit, Alpha, Z)bit, Alpha, Z)30 Mpoly/sec30 Mpoly/sec (50 pix triangle, Alpha, Z)(50 pix triangle, Alpha, Z)25 Mpoly/sec25 Mpoly/sec (48 pix quad, Alpha, Z, texture)(48 pix quad, Alpha, Z, texture)Particle drawingParticle drawing150 Mpixels/sec150 Mpixels/sec

Sprite drawingSprite drawing 18.75 M/s (8x8 pixels)18.75 M/s (8x8 pixels)(8x speed for 640x480 at 60fps)(8x speed for 640x480 at 60fps)

Imaging: Graphic SynthesizerImaging: Graphic Synthesizer

53

01.a

FineFine

Un po’ di storia