L’elaboratore
elettronico
PARTE A
input
output
(dati)
(risultati)
(elaborazione)
Evoluzione storica
Le generazioni informatiche
1942-’57,
1958-’63,
1964-’80,
1980-oggi,
(futuro)
1a gen.
2a gen.
3a gen.
4a gen.
5a gen.
= tubi a vuoto
= transistori
= circuiti integrati
= circuiti VLSI
=?
ENIAC (1943): Electronic Numerical
Integrator And Calculator
• Primo eleboratore general-purpose
• 18000 Valvole, 1500 relay
• Uso per calcoli balistici
•Lunghezza 25m, altezza 3m, superficie 180m2,
peso 30ton, potenza assorbita 140KW
• Programmazione con interruttori manuali
• Aritmetica decimale, 5000 operazioni/sec
• MTBF = 8 ore
La potenza della sabbia (silicio)
...ovvero: l’evoluzione dei microprocessori
n transistori
per chip
Pentium III
8086
1980
2000 anni
La potenza della sabbia (silicio)
...ovvero: l’evoluzione dei microprocessori
n transistori
per chip
• 1 milione di addizioni
al secondo
• 30.000 transistor
8086
1980
2000 anni
La potenza della sabbia (silicio)
...ovvero: l’evoluzione dei microprocessori
n transistori
per chip
PENTIUM III
• 2 miliardi di addizioni
al secondo
• 9.000.000 transistor.
• 1 milione di addizioni
al secondo
Pentium III
• 30.000 transistor
8086
1980
1998 anni
Microprocessori 1993
INTEL 80x86
Pentium
MIPS: 100+ (66 MHz)
Transistors: 3.000.000+
1989
80486
MIPS: 41 (50 MHz)
Transistors: 1.200.000
1985
1979
80386
MIPS: 11 (33 MHz)
Transistors: 275.000
1982
80286
MIPS: 3 (12 MHz)
Transistors: 134.000
8088/8086
MIPS: 0.33 (5 MHz)
Transistors: 29.000
Microprocessori INTEL 80x86
1999
Pentium III
64 bit – 1.13 GHz
Transistors: 9.000.000+
1998
Pentium II
64 bit - 450 MHz
Transistors: 7.000.000+
1995
Pentium PRO
64 bit - 200 MHz
Transistors: 7.000.000+
1993
Pentium
32 bit - (166 MHz)
Transistors: 3.000.000+
Nozioni fondamentali
Hardware
Definizione:
l’insieme delle apparecchiature
(elettroniche, meccaniche, ecc.) che
costituiscono fisicamente il sistema di
elaborazione.
Software
Definizione:
l’insieme dei programmi e dei dati che
permettono lo svolgimento delle
funzioni di elaborazione
Programmi e Istruzioni
Un programma è un insieme ordinato di
istruzioni
Un’istruzione è la specifica di una
operazione che può essere svolta da un
elaboratore.
I dati
1234567890
V
4
3 
 r3
• I dati numerici sono quelli più usati
• Tutti gli altri tipi di dato sono
trasformati in dati numerici
Il sistema decimale
252 = 2  100 + 5  10 + 2  1
= 2  102 + 5  101 + 2  100
Sistema di numerazione del mondo
occidentale (sistema arabo):
• decimale (base 10, cifre { 0, 9 })
• posizionale
Il sistema binario
• base: 2
• cifre: { 0, 1 }
Esempio:
1012 = 1  22 + 0  21 + 1  20
=14+11
= 510
Alcuni numeri binari
0
1
10
11
100
101
110
111
...
...
...
...
...
...
...
...
0
1
2
3
4
5
6
7
1000
1001
1010
1011
1100
1101
1110
1111
...
...
...
...
...
...
...
...
8
9
10
11
12
13
14
15
Terminologia
BIT (BInary digIT)
0
1
BYTE = otto bit
00110110
WORD = n byte
00001111
10101010
Terminologia
10110110
MSB
LSB
Most
Significant
Bit
Least
Significant
Bit
Multipli binari
Si usano le potenze di due invece di
quelle di dieci:
chilo
mega
giga
tera
K
M
G
T
210
220
230
240
~ un migliaio
~ un milione
~ un miliardo
~ mille miliardi
La logica degli
elaboratori elettronici
Logica Booleana:
• 1847 George Boole
• logica formale
• enunciati di cui fosse possibile verificare in
modo inequivocabile la verità o la falsità
• le variabili sono in grado di assumere solo
due valori: VERO, FALSO
.
Logica Booleana: un esempio
Se domani ci sarà il sole, allora andrò a
fare una gita.
?
Architettura degli
elaboratori
Il transistore
È l’elemento base degli attuali elaboratori
elettronici digitali:
• piccole dimensioni ( mm )
• basso consumo di energia ( mW )
• alta velocità di funzionamento (milioni
di operazioni al secondo)
Chip
Da migliaia a milioni
di TRANSISTOR
Chip:
circuito integrato, microcircuito,
componente elettronico contenente
al suo interno moltissimi transistor
Calcolatore
Il chip sta al calcolatore
come il mattone sta alla casa
Blocchi funzionali
(architettura di Von Neumann 1951)
MEM
OUT
UO
UC
INP
Problematiche
• codifica dei dati (in un formato
comprensibile all’elaboratore)
• codifica degli ordini (sequenza di
operazioni che compongono
l’elaborazione)
• decodifica dei risultati (in un formato
comprensibile agli umani)
Flusso dei dati
MEM
OUT
UO
UC
INP
Informazioni di stato
MEM
OUT
UO
UC
INP
Ordini
MEM
OUT
UO
UC
INP
Struttura a blocchi
MEM
OUT
UO
UC
INP
Unità di input:
schema funzionale
dato
ready
get
B
ADC
control logic
T
Unità di output:
schema funzionale
dato
ready
put
B
DAC
control logic
T
Unità operativa: schema funzionale
dati
operandi
registri
operazione
destinazione
flag
ALU
F
risultato
Unità di controllo:
schema funzionale
PC
M
IR
logica di
controllo
stato
comandi
Il ciclo base di un elaboratore
Reset
Preleva una istruzione dalla memoria RAM Fetch
Interpreta l’istruzione
Decode
Esegue l’istruzione
Execute
Esecuzione di un’istruzione
Tre fasi distinte:
• fetch
IR  M [ PC ]
PC  PC + 1
• decode
ordini  decode(IR)
• execute
ready? go!
CPU
Central Processing Unit
L’imperatore
SONO IO !
CPU
La CPU controlla tutte le operazioni di
un elaboratore
Le operazioni possono essere:
• interne alla CPU (ad es. somma)
• esterne: trasferimenti da/per memoria o
I/O
Il clock
Ogni elaboratore contiene un elemento
di temporizzazione (detto clock ) che
genera un riferimento temporale
comune per tutti gli elementi costituenti
il sistema di elaborazione.
Il clock
t
T
• T = periodo di clock
• f = frequenza di clock ( = 1 / T )
Velocità di elaborazione
MIPS ( Million Instructions Per Second )
f = frequenza di clock [ Hz = cicli/s ]
T = periodo di clock = 1 / f [ s ]
C = cicli macchina / istruzione
IPS = f / C = 1 / ( T  C )
MIPS = IPS / 106
Memoria centrale
Memoria: schema funzionale
indirizzo
MEM
read/write
dato
ready
Memoria
Memorizza i dati e le istruzioni
necessarie all’elaboratore per operare.
Caratteristiche:
• indirizzamento
• parallelismo
• accesso (sequenziale o casuale)
• tipo (volatile-non volatile, letturalettura/scrittura, etc.)
Indirizzamento
Ad ogni cella di memoria è associato un
indirizzo (numerico) per identificarla
univocamente.
1
7
2
5
8
3
6
9
Parallelismo
Ogni cella di memoria contiene una
quantità fissa di bit:
• identica per tutte le celle
• accessibile con un’unica istruzione
• è un multiplo del byte
• minimo un byte
Memoria ad accesso casuale
• il tempo di accesso è costante
(indipendente dalla cella scelta)
Ta = costante
• anche detta RAM
(Random Access Memory)
Memoria ad accesso sequenziale
• il tempo di accesso dipende dalla
cella a cui si accede
• spesso la dipendenza è lineare
Ta = K  indirizzo
Memoria interna
•
•
•
•
•
•
•
all’interno dell’elaboratore
è allo stato solido (chip)
solitamente è volatile
veloce (nanosecondi, 10-9s)
quantità limitata (decina MB)
non rimovibile
costosa (5000 Lit / MB)
Memoria esterna
•
•
•
•
•
•
•
all’esterno dell’elaboratore
talvolta rimovibile
non elettronica (es. magnetica)
permanente
lenta (millisecondi, 10-3 s)
grande quantità (qualche GB)
economica (500 Lit / MB)
La memoria centrale
Sistema Operativo
RAM
Programmi
RAM
Memoria Video
Programma
d’avvio
(boot program)
RAM Video
ROM
Memoria
Tecnologia:
• RAM: memorie a lettura e scrittura
(Random Access Memory)
• ROM: memorie a sola lettura
(Read Only Memory)
Memorie RAM
Le memorie RAM possono essere di due tipi:
• SRAM: RAM statiche
• veloci (10 ns)
• minor impaccamento
• elevato costo per bit
• DRAM: RAM dinamiche
• meno veloci (60 ns)
• maggior impaccamento (16 Mbit/chip)
• minor costo per bit
Tipologie di memorie ROM
PROM (Programmable ROM)
• programmabili una sola volta, dall’utente
EPROM (Erasable PROM)
• cancellabili e riprogrammabili più volte,
dall’utente
FLASH
• cancellabili e riprogrammabili
elettricamente più volte dalla cpu
Memoria CACHE
….. ovvero la lentezza delle RAM
microprocessore
DRAM
Memoria CACHE
Memoria intermedia VELOCE
CPU
CACHE
Trasferisco nella cache
dati/istruzioni usati
più frequentemente
MEMORIA
(DRAM)
Prestazioni della cache
Tempo medio di accesso in memoria:
TM = H · Tcache + ( 1 - H ) · TRAM
Ove
H = hit ratio (percentuale di celle trovate
nella cache rispetto al totale degli accessi in
memoria)
H  90%  TM @ Tcache
Prestazioni della cache
Tcache = 20 ns
TRAM = 80 ns
H = 60%
TM = 0.6 · 20 + 0.4 · 80 = 44 ns
H = 95%
TM = 0.95 · 20 + 0.05 · 80 = 23 ns
Connessioni (Bus)
I Bus
(ovvero il sistema circolatorio del PC)
connettori
Struttura a bus
Problema: collegamento completo tra N
unità richiede N(N-1)/2 collegamenti
Esempi: 4U:6C, 10U:45C, 20U:190C
A
B
C
D
Struttura a bus
Soluzione:
segnali omologhi raggruppati in un
bus, usato a turno dalle varie unità
A
B
C
D
Tipi fondamentali di bus
• bus dati ( DBus )
• bus degli indirizzi ( ABus )
• bus di controllo ( CBus )
M1
M2
I
O
DBus
ABus
CBus
Architettura di un Calcolatore
ROM
RAM
I
I
I
O
DBus
ABus
CBus
CPU
Software
Il linguaggio del calcolatore
ABCDE
FGHILM
NOPQR
STUVZ
lettere
dell’alfabeto
Nel mezzo del cammin
di nostra vita...
0
bit
1
01101011
01001101
10010110
10100101
10100101
Che cos’è un programma?
Sequenza di istruzioni
1. metti l’acqua
2. accendi il fuoco
3. aspetta
4. se l’acqua non
bolle torna a 3
5. butta la pasta
6. aspetta un po’
7. assaggia
8. se è cruda
torna a 6
9. scola la pasta
Esecuzione dei programmi
Programmi
pronti per
essere
eseguiti
Memoria di
massa
(i dischi)
Esecuzione dei programmi
Programma
ora in
esecuzione
Memoria di
massa
(i dischi)
CPU
RAM
Classificazione del software
software applicativo
middleware
software di base
hardware
Linguaggi di programmazione
Servono a tradurre gli algoritmi in
istruzioni per l’elaboratore.
Ne esistono varie categorie:
• linguaggi macchina
• linguaggi assembler
• linguaggi ad alto livello
Linguaggio macchina
• codifica binaria delle istruzioni
• dipende dalla CPU (registri,
operazioni, ...)
• dipende dall’architettura del
calcolatore (quantità di memoria,
modalità di I/O, ...)
Linguaggio assembler
• codifica simbolica delle istruzioni
ADD R1, R2, M[R4] ; R1= R2+ M [ R4 ]
• meta-istruzioni
TOT: DB 0 ; crea ed azzera TOT
• linguaggio unico per architettura di
CPU (es. Dec AXP, Intel 80x86)
Linguaggi ad alto livello
(HLL - High Level Language)
• elaboratore virtuale
• istruzioni orientate alla soluzione di
problemi
A = SINH (5.57*C)
• linguaggio indipendente dalla
piattaforma HW (richiedono
programmi di traduzione)
Traduzione dei linguaggi
algoritmo
editor
file
sorgente
compilatore
file
oggetto
libreria
linker
file
eseguibile
10 for I=1 to 5
20 print I, I*I
30 next I
RUN
file
sorgente
interprete
RAM
Interprete o compilatore?
Compilatore (+ linker):
• controlla e traduce le istruzioni una sola
volta
+ caricamento ed esecuzione veloce
+ codice non leggibile
– correzione degli errori e debug lenti
Interprete o compilatore?
Interprete:
• controlla e traduce le istruzioni ad
ogni esecuzione del programma
+ correzione degli errori e debug
veloce
– caricamento ed esecuzione lenta
– codice sorgente leggibile
Alcuni interpreti
• interprete di un linguaggio di
programmazione
• interprete dei comandi di un sistema
operativo (command.com in MSDOS, le shell UNIX, ...)
• i fogli elettronici (Lotus 1-2-3, Excel,
QuattroPro, ...)
Scarica

Dispositivi di visualizzazione