u01aStoriaDegliElabo..

annuncio pubblicitario
Il calcolatore
01.a
Un po’ di storia
1
Storia del calcolo automatico
1
Legata allo sviluppo della tecnologia:
● Generazione -1: La preistoria
● Generazione 0: Meccanica
● Generazione 1: Elettromeccanica
● Generazione 2: Valvole termoioniche
● Generazione 3: Transistors
● Generazione 4: Circuiti integrati
● Generazione 5: VLSI
Architettura degli Elaboratori 1
51
????-1642
1642-1935
1935-1945
1945-1955
1955-1965
1965-1980
1980-????
© 2005
2
Generazione -1: preistoria (…-1642)
Oggetti usati come strumenti di calcolo
(es: conchiglie per rappresentare pecore)
2
51
= stessa cardinalità
= rappresentano lo stesso numero
© 2005
Architettura degli Elaboratori 1
3
Generazione -1: preistoria (…-1642)
operazioni aritmetiche come
procedure “manuali”:
A
rappresentazione
del numero “2”
B
rappresentazione
del numero “1”
3
51
B
rappresentazione
del numero “3”
Procedura: sposta il contenuto del sacco A nel sacco B
Risultato: il sacco B contiene ora la rappresentazione di …
Nome della procedura manuale : “addizione di numeri interi”
Architettura degli Elaboratori 1
© 2005
4
Generazione -1: preistoria (…-1642)
Osservazioni:
• manipolando conchiglie, si possono
manipolare numeri…
• e fare calcoli (addizioni, sottrazioni…)
4
51
• procedure semplici, soggette ad errore, lente
Architettura degli Elaboratori 1
© 2005
5
Generazione -1: preistoria (…-1642)
Meccanismo più sofisticato: l’abaco
usa il concetto di notazione posizionale.
5
51
Valore delle cifre
Peso di ciascuna
cifra (potenze di 10)
Architettura degli Elaboratori 1
© 2005
6
Generazione -1: preistoria (…-1642)
6
Solo più tardi il far di conto diventa un processo
astratto che utilizza numeri rappresentati in
51
forma scritta da simboli (cifre).
Le procedure per eseguire le operazioni
aritmetiche sono eseguite su … papiro.
111 –
010 =
101
Si possono fare operazioni più complesse.
Procedure ancora manuali, ma più veloci.
Ancora soggette ad errore
meno che con le conchiglie!
© 2005
Architettura degli Elaboratori 1
7
Generazione -1: preistoria (…-1642)
7
Nel XII secolo:
Muhammad ibn Musa
51
Al'Khowarizmi sviluppa il
concetto di definizione
scritta di un procedimento
da seguire per ottenere
un risultato
Da cui il nome: algoritmo
Architettura degli Elaboratori 1
© 2005
8
Generazione -1: preistoria (…-1642)
8
Per secoli il problema principale era stato:
come riuscire ad eseguire
51
9Un dato algoritmo
9In modo non-manuale (automatico)
9Possibilmente più velocemente che a mano
9Possibilmente più affidabile (senza errori)
Architettura degli Elaboratori 1
© 2005
9
Generazione -1: preistoria (…-1642)
Codex Madrid - Leonardo Da Vinci (~1500)
− scoperto per caso a Madrid nel 1967
− progetto di un calcolatore meccanico...?
Architettura degli Elaboratori 1
9
51
© 2005
10
Generazione -1: preistoria (…-1642)
10
Codex Madrid - Leonardo Da Vinci (~1500)
● Guatelli (New York) lo costruì nel 1968
Architettura degli Elaboratori 1
51
© 2005
11
Generazione 0: Meccanica (1642-1935)
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
Architettura degli Elaboratori 1
11
51
© 2005
12
Generazione 0: Meccanica (1642-1935)
Joseph-Marie Jacquard inventò nel 1801 un telaio
automatico con trama e ordito controllati da schede
perforate
Architettura degli Elaboratori 1
12
51
© 2005
13
Generazione 0: Meccanica (1642-1935)
13
La macchina di Jacquard (1801) operava secondo
uno schema prefissato.
51
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)
Architettura degli Elaboratori 1
© 2005
14
Generazione 0: Meccanica (1642-1935)
14
Charles Babbage nel 1822
ottenne dal governo
51
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 ricerca
in Computer Science.
Architettura degli Elaboratori 1
© 2005
15
Generazione 0: Meccanica (1642-1935)
15
51
Architettura degli Elaboratori 1
© 2005
16
Generazione 0: Meccanica (1642-1935)
16
Il Difference Engine progettato da Babbage
doveva calcolare e stampare tavole di valori di 51
polinomi fino al sesto grado, con la precisione di
20 cifre decimali
Oggi si chiamerebbe:
application specific hard-coded machine
Nonostante 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)
Architettura degli Elaboratori 1
© 2005
17
Generazione 0: Meccanica (1642-1935)
Nel 1853 (più di 20 anni dopo) lo svedese Georg
Scheutz, costruì una versione limitata del
Difference Engine di Babbage
Architettura degli Elaboratori 1
17
51
© 2005
18
Generazione 0: Meccanica (1642-1935)
Nel 1989-91,
fu costruita
una versione
completa del
Difference
Engine, sulla
base del
progetto
originale di
Babbage
Architettura degli Elaboratori 1
18
51
© 2005
19
Generazione 0: Meccanica (1642-1935)
L’Analytical Engine (il nuovo progetto di Babbage) è il
primo vero “computer” della storia: Un dispositivo
programmabile con la struttura dei computer moderni:
9Organi di Input (schede perforate) per dati e
istruzioni
9Organi di Output (ruote predisposte per stampare)
9Organi di Memoria (the Store), posizione delle ruote
dentate (1000 colonne di 50 ruote: ~200Kbit)
9Una unità aritmetica (the Mill),
9Un modulo di controllo, per stabilire la sequenza
delle operazioni.
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.
Architettura degli Elaboratori 1
19
51
© 2005
20
Generazione 0: Meccanica (1642-1935)
Nel 1842, la contessa
Ada Lovelace, scrisse il
primo programma per la
Analytical Engine di
Babbage.
20
51
Può essere considerata
la prima programmatrice
della storia.
Architettura degli Elaboratori 1
© 2005
21
Generazione 0: Meccanica (1642-1935)
Nel 1890 Herman Hollerith vinse la gara per
la fornitura delle apparecchiature di calcolo
necessarie al governo americano per
elaborare i dati del censimento
21
51
Nel 1914, la società da lui fondata, Hollerith
Tabulating Company, insieme ad altre due,
costituì la Calculating-Tabulating-Recording
(C-T-R) che, nel 1924, prese il nome di IBM.
Architettura degli Elaboratori 1
© 2005
22
Generazione 1: Elettrom. (1935-1945)
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)
Architettura degli Elaboratori 1
22
51
© 2005
23
Generazione 1: Elettrom. (1935-1945)
Fine degli anni 30: Howard Aiken costruì lo Harvard
Mark 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).
Architettura degli Elaboratori 1
23
51
© 2005
24
Generazione 1:
Elettromeccanica
(1935-1945)
24
51
Nell’Harvard MARK I
Grace M. Hopper
trovò il primo bug
(scarafaggio) ucciso
tra le ganasce di un
relay.
L’insetto fu da lei
incollato nel logbook
del computer e da
allora, ad ogni guasto
della macchina, era
solita dire ad Howard
Aiken che dovevano
"debug the computer”
Architettura degli Elaboratori 1
© 2005
25
1936
25
1936: Alan M. Turing definisce un
modello di computabilità:
51
Macchina di Turing
Una macchina “universale” molto
semplice: in grado di calcolare qualsiasi
funzione computabile: la complessità
richiesta sta tutta nel software
Il problema ingegneristico di produrre
macchine diverse per svolgere compiti
diversi è sostituito dal lavoro di
programmare la macchina universale
per i vari compiti.
Architettura degli Elaboratori 1
© 2005
26
Generazione 2: Valvole (1945-1955)
John Atanasoff and
Clifford Berry
costruirono, 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.
26
ABC - Il primo elaboratore
elettronico
Architettura degli Elaboratori 1
51
© 2005
27
Generazione 2: Valvole (1945-1955)
27
"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.”
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.
Architettura degli Elaboratori 1
51
© 2005
28
Generazione 2: Valvole (1945-1955)
28
Nel 1943 iniziò il
51
progetto per
costruire ENIAC
(Electronic Numerical
Integrator and
Computer)
Mauchly (1907-1980)
e
Eckert (1919-1995)
Architettura degli Elaboratori 1
© 2005
29
Generazione 2: Valvole (1945-1955)
ENIAC
18’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%
Architettura degli Elaboratori 1
29
51
© 2005
30
Generazione 2: Valvole (1945-1955)
30
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 51
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.
Architettura degli Elaboratori 1
© 2005
31
Generazione 2: Valvole (1945-1955)
John von Neumann (1952) e il suo EDVAC
Electronic Discrete Variable Automatic Computer
Architettura degli Elaboratori 1
31
51
© 2005
32
Generazione 2: Valvole (1945-1955)
Altre macchine:
Manchester
Mark I, il primo
“stored
program”
computer ad
essere operativo
(nel 1948)
all’Università di
Manchester.
Architettura degli Elaboratori 1
32
51
© 2005
33
Generazione 2: Valvole (1945-1955)
Altre macchine:
nel 1951, il
Whirlwind
computer (MIT)
fu il primo ad
impiegare
memorie
magnetiche
(nuclei di ferrite)
Architettura degli Elaboratori 1
33
51
© 2005
34
Generazione 2: Valvole (1945-1955)
34
51
memoria (da 256 bit) a nuclei di ferrite
Architettura degli Elaboratori 1
© 2005
35
Generazione 2: Valvole (1945-1955)
35
Nel 1952 Grace Hopper in un articolo intitolato:
51
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.
Architettura degli Elaboratori 1
© 2005
36
Generazione 2: Valvole (1945-1955)
36
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 matematiche
Il primo compilatore
FORTRAN era costituito da
2’000 schede perforate
(2000 righe di codice non
documentato)
Molti programmi scientifici
sono tuttora scritti in
FORTRAN
Architettura degli Elaboratori 1
51
© 2005
37
Generazione 3: Transistor (1955-1965)
Nel 1947
W. Shockley,
J. Bardeen, e
W. Brattain
inventano il
dispositivo
transfer resistance
in seguito chiamato
transistor
Architettura degli Elaboratori 1
37
51
© 2005
38
Generazione 3: Transistor (1955-1965)
38
51
Nel 1955, l’IBM
produsse un
computer
mainframe
(IBM704),
usando transistor
discreti.
Il primo
computer con
aritmetica
floating point
(5 kFlops,
clock: 300 kHz)
Architettura degli Elaboratori 1
© 2005
39
Generazione 4: ICs (1965-1980)
39
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 di
semiconduttore (~1 cm2), per ottenere un oscillatore phase shift.
Architettura degli Elaboratori 1
51
© 2005
40
Generazione 4: ICs (1965-1980)
40
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.
51
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).
Architettura degli Elaboratori 1
© 2005
41
Generazione 4: ICs (1965-1980)
Nel 1964 l’IBM annunciò il System/360, la prima
famiglia di computer compatibili .
Architettura degli Elaboratori 1
41
51
© 2005
42
Generazione 4: ICs (1965-1980)
42
Nel 1965, la DEC
(Digital Equipment 51
Corporation)
produsse il PDP-8, il
primo minicomputer.
Si diffuse presto nei
sistemi di controllo
dei processi
© 2005
Architettura degli Elaboratori 1
43
Generazione 5: VLSI (1980-?)
43
Nel 1971, Ted Hoff
produsse l’Intel 4004, il
primo microprocessore,
cioè il primo processore
(a 4 bit) integrato su un
singolo chip
Architettura degli Elaboratori 1
51
© 2005
44
Generazione 5: VLSI (1980-?)
44
Nel 1975 MITS produsse l’Altair 8800, il primo personal
computer (memoria di 256 byte)
51
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
© 2005
Architettura degli Elaboratori 1
45
Generazione 5: VLSI (1980-?)
45
Nel 1984, lo Xerox
PARC (Palo Alto
51
Research Center)
presentò ALTO, il
primo computer con
un nuova interfaccia
utente (GUI):
finestre, icone, mouse
Architettura degli Elaboratori 1
© 2005
46
Generazione 5: VLSI (1980-?)
46
51
Nel 1986: il Cray-XMP
supercomputer con 4
processori (840 Mflops).
(raffreddato ad acqua)
Architettura degli Elaboratori 1
© 2005
47
Generazione 5: VLSI (1980-?)
47
51
Prestazioni simili a quelle del Pentium III (2000)
Architettura degli Elaboratori 1
© 2005
48
Sony Playstation 2000
48
51
© 2005
Architettura degli Elaboratori 1
49
CPU: Emotion Engine
49
128-bit RISC - MIPS IV-subset + 128-bit multimedia extension
64-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)
Clock
Cache
Scratch pad RAM
Memory
Direct Rambus
DMA
CoCo-processor
Vector unit VU0 (4KB/4KB)
Vector unit VU1 (16KB/16KB)
Decoder
Size
51
300MHz (294.912MHz)
16KB instruction (2(2-way) - 8KB data (2(2-way)
16KB (1K×
(1K×128, dual port)
port)
32MB (2 channels at 800MHz)
3.2GB/sec
10 channels
FPU MAC ×1, FPU DIV ×1
FPU MAC ×4, FPU DIV ×1
FPU MAC ×9, FPU DIV ×3
MPEG2
226mm2 (240mm2)
Performance: 6.2 Gflops
66 Mpoly/s (geometric and perspective transformations)
38 Mpoly/s (lighting) / 36 Mpoly/s (fog)
16 Mpoly/s (curved surface, Bezier)
Architettura degli Elaboratori 1
© 2005
50
Emotion Engine
50
Toshiba (51%) + Sony (49%)
[email protected]
17.0x14.1mm2 (ISSCC’99)
10.5M transistors (13M now)
15W
540-pin PBGA
51
© 2005
Architettura degli Elaboratori 1
51
Imaging: Graphic Synthesizer
▪
▪
▪
▪
▪
▪
Pixel engines
Clock
Video RAM
DRAM bandwidth
DRAM bus width
RGB:Alpha:Z Buffer
51
16 in parallel
150MHz (147.456MHz)
4MB (embedded)
48GB/sec
25602560-bit (1024+1024+512)
24:8:32
42.7Mtransistors 183mm2
(279mm2)
Performance: 75 Mpoly/sec
(small polygons)
51
50 Mpoly/sec (48 pix quad, 2424-bit, Alpha, Z)
30 Mpoly/sec (50 pix triangle, Alpha, Z)
25 Mpoly/sec (48 pix quad, Alpha, Z, texture)
Particle drawing 150 Mpixels/sec
Sprite drawing 18.75 M/s (8x8 pixels)
(8x speed for 640x480 at 60fps)
Architettura degli Elaboratori 1
© 2005
52
Fine
01.a
Un po’ di storia
53
Scarica