Upload
dangtuong
View
213
Download
0
Embed Size (px)
Citation preview
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