L’elaboratore - STiDuE

28
01.a L’ elaboratore elaboratore Un po’ di storia 1 Architettura degli Elaboratori © 2009 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 L’elaboratore - STiDuE

Page 1: L’elaboratore - STiDuE

01.a

LL’’elaboratoreelaboratore

Un po’ di storia

1

Architettura degli Elaboratori © 2009

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-????

Page 2: L’elaboratore - STiDuE

2

Architettura degli Elaboratori © 2009

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)

3

Architettura degli Elaboratori © 2009

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)

Page 3: L’elaboratore - STiDuE

4

Architettura degli Elaboratori © 2009

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)

5

Architettura degli Elaboratori © 2009

51

Meccanismo più sofisticato: l’abaco (2700 aC)usa il concetto di notazione posizionale.

Valore delle cifre

Peso di ciascuna cifra (potenze di 10)

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

Page 4: L’elaboratore - STiDuE

6

Architettura degli Elaboratori © 2009

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)

7

Architettura degli Elaboratori © 2009

51

Nel IX secolo: Muhammad ibn MusaAl-Khwārizmī sviluppa ilconcetto di definizionescritta di un procedimentoda seguire per ottenereun risultato

XIII secolo, traduzionelatina: algoritmo

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

Page 5: L’elaboratore - STiDuE

8

Architettura degli Elaboratori © 2009

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)

9

Architettura degli Elaboratori © 2009

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)

Page 6: L’elaboratore - STiDuE

10

Architettura degli Elaboratori © 2009

51

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

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

11

Architettura degli Elaboratori © 2009

51

Blaise Pascal, figlio di un esattore delle tasse, costruì a 19 anni 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)

Page 7: L’elaboratore - STiDuE

12

Architettura degli Elaboratori © 2009

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

13

Architettura degli Elaboratori © 2009

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)

Page 8: L’elaboratore - STiDuE

14

Architettura degli Elaboratori © 2009

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)

15

Architettura degli Elaboratori © 2009

51

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

Page 9: L’elaboratore - STiDuE

16

Architettura degli Elaboratori © 2009

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)

17

Architettura degli Elaboratori © 2009

51

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

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

Page 10: L’elaboratore - STiDuE

18

Architettura degli Elaboratori © 2009

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)

19

Architettura degli Elaboratori © 2009

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)

Page 11: L’elaboratore - STiDuE

20

Architettura degli Elaboratori © 2009

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)

21

Architettura degli Elaboratori © 2009

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)

Page 12: L’elaboratore - STiDuE

22

Architettura degli Elaboratori © 2009

51

nel 1935 Konrad Zuse (Berlino) costruì nel salotto dei genitori lo Z-1. Era basato su relè e utilizzava l’aritmetica binaria.Tempo di esecuzione delle istruzioni: 6 s ~ 0.17 Hz).

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

23

Architettura degli Elaboratori © 2009

51

1936: Alan M. Turing getta le basi della teoria della computabilità.La teoria è basata sulla

macchina di Turing,una macchina molto semplice ma “universale”, cioè in grado di calcolare qualsiasi funzione computabile.

Il problema ingegneristico di produrre macchine diverse per svolgere compiti diversi è sostituito dal lavoro di programmare la macchina universale per i vari compiti.

Teoria della computabilitTeoria della computabilitàà

Page 13: L’elaboratore - STiDuE

24

Architettura degli Elaboratori © 2009

51

Fine degli anni 30: Howard Aiken costruì lo Harvard Mark I (IBM Automatic Sequence Control Calculatoro ASCC) il primo calcolatore elettromeccanico “general purpose” messo in commercio.Le istruzioni venivano lette da banda perforata,come previsto nell’Analytical Engine di Babbage.

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

25

Architettura degli Elaboratori © 2009

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 Howard Aiken che dovevano "debug the computer”

Page 14: L’elaboratore - STiDuE

26

Architettura degli Elaboratori © 2009

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.

27

Architettura degli Elaboratori © 2009

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.

Page 15: L’elaboratore - STiDuE

28

Architettura degli Elaboratori © 2009

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)

29

Architettura degli Elaboratori © 2009

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)

Page 16: L’elaboratore - STiDuE

30

Architettura degli Elaboratori © 2009

51

Generazione 2: Valvole (1945Generazione 2: Valvole (1945--1955)1955)Nel 1945, 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,- l’uso dell’aritmetica binaria al posto di quella decimale.

I computer odierni sono ancora basati sull’architettura di von Neumann (in realtà deriva da Babbage).

Questa architettura presenta il cosiddetto (Backus, 1977)“von Neumann bottleneck”

tra la memoria e le unità di controllo e calcolo; tutte le nuove architetture cercano di rimuovere questo collo di bottiglia.

31

Architettura degli Elaboratori © 2009

51

John von Neumann nel 1952 con il suo EDVAC(“Electronic Discrete Variable Automatic Computer”)

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

Page 17: L’elaboratore - STiDuE

32

Architettura degli Elaboratori © 2009

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)

33

Architettura degli Elaboratori © 2009

51

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

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

Page 18: L’elaboratore - STiDuE

34

Architettura degli Elaboratori © 2009

51

memoria (da 256 bit) a nuclei di ferrite

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

35

Architettura degli Elaboratori © 2009

51

Nel 1952 Grace Hopper, nell’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)

Page 19: L’elaboratore - STiDuE

36

Architettura degli Elaboratori © 2009

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)

37

Architettura degli Elaboratori © 2009

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

Page 20: L’elaboratore - STiDuE

38

Architettura degli Elaboratori © 2009

51

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

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

39

Architettura degli Elaboratori © 2009

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.

Page 21: L’elaboratore - STiDuE

40

Architettura degli Elaboratori © 2009

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)

41

Architettura degli Elaboratori © 2009

51

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

Page 22: L’elaboratore - STiDuE

42

Architettura degli Elaboratori © 2009

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)

43

Architettura degli Elaboratori © 2009

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

Page 23: L’elaboratore - STiDuE

44

Architettura degli Elaboratori © 2009

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’Altair.Nel 1976: Apple I (ne furono prodotti 200).Nel 1981: il primo PC IBM.

45

Architettura degli Elaboratori © 2009

51

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

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

Page 24: L’elaboratore - STiDuE

46

Architettura degli Elaboratori © 2009

51

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

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

47

Architettura degli Elaboratori © 2009

51

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

Prestazioni simili a quelle del Pentium III (2000)

Page 25: L’elaboratore - STiDuE

48

Architettura degli Elaboratori © 2009

51

Sony Sony PlaystationPlaystation 20002000

49

Architettura degli Elaboratori © 2009

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)

Page 26: L’elaboratore - STiDuE

50

Architettura degli Elaboratori © 2009

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

51

Architettura degli Elaboratori © 2009

51

Cosa sta accadendo oggi: un esempioCosa sta accadendo oggi: un esempio

2005: Sony, Toshiba e IBM annunciano ilmicroprocessore CELL

• Più unità di calcolo indipendenti sul chip (multi-core)• Parallelismo

Page 27: L’elaboratore - STiDuE

52

Architettura degli Elaboratori © 2009

51

Applicazioni del CELL (1 di 2)Applicazioni del CELL (1 di 2)

11 novembre 2006:Sony mette sul mercato Playstation 3,basata sul microprocessore CELL

53

Architettura degli Elaboratori © 2009

51

Applicazioni del CELL (2 di 2)Applicazioni del CELL (2 di 2)

25 maggio 2008: IBM RoadRunner, unprogetto ibrido con CPU CELL e AMD Opteron,supera la barriera del PetaFLOPS

(1'000'000'000'000'000 operazioni/secondo)

Page 28: L’elaboratore - STiDuE

54

Architettura degli Elaboratori © 2009

51

Direzioni di sviluppoDirezioni di sviluppo

• Parallelismo ad ogni livello

• Continua l'integrazione(“system-on-a-chip”)

• Un computer in ogni dispositivo(“ubiquitous computing”)

?

01.a

FineFine

Un po’ di storia