Laboratorio di Informatica
per chimica industriale e
chimica applicata e ambientale
LEZIONE 4
La CPU e l’esecuzione dei programmi
AA 2002/2003
© Morpurgo, Zanaboni
1
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
Nelle lezioni precedenti
abbiamo detto che
Un computer è costituito da 3 principali componenti:
• Il processore
• La memoria
• Le periferiche
Interconnesse attraverso il bus
AA 2002/2003
© Morpurgo, Zanaboni
2
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
1
Struttura logica
•
•
•
•
processore (CPU: Central Processing Unit)
memoria centrale ad accesso diretto (RAM: Random Access Memory)
Canale di comunicazione (bus)
Periferiche
AA 2002/2003
© Morpurgo, Zanaboni
3
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
bus
RAM
Struttura fisica
CPU
Interfccia alle periferiche
AA 2002/2003
© Morpurgo, Zanaboni
4
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
2
PROGRAMMI
e
LINGUAGGIO MACCHINA
AA 2002/2003
© Morpurgo, Zanaboni
5
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
Programmi
• I programmi sono sequenze di istruzioni.
• I programmi eseguibili da un computer devono
essere scritti usando un linguaggio (di
programmazione) che il computer è in grado di
“comprendere”.
AA 2002/2003
© Morpurgo, Zanaboni
6
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
3
Computer = macchina che svolge rapidamente
operazioni elementari
Programma = insieme di istruzioni che indicano
come svolgere operazioni complesse su dei
dati attraverso successioni di operazioni
elementari specificate in un linguaggio
“comprensibile” dal computer.
Dato = informazione da elaborare rappresentata in
un formato che consenta al programma di
operare su di essa
AA 2002/2003
© Morpurgo, Zanaboni
7
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
LA CPU
AA 2002/2003
© Morpurgo, Zanaboni
8
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
4
Il processore - chip
• Il processore è l’unità di elaborazione centrale
(CPU: central processing unit) del computer.
• Oggi le CPU sono costituite da circuiti che
contengono milioni di microscopici
interruttori acceso/spento (i transistor)
collegati tra loro da sottilissimi fili.
• I circuiti vengono “stampati” su una sottile
lamina di silicio. Il chip che corrisponde a una
CPU ha una superficie dell’ordine dei mm2.
AA 2002/2003
© Morpurgo, Zanaboni
9
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
Il processore - chip
•
Pertanto oggi si parla di
microprocessore costituito da circuiti
integrati: milioni di elementi tra loro
collegati contenuti in una superficie quasi
microscopica.
AA 2002/2003
© Morpurgo, Zanaboni
10
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
5
Il processore
AA 2002/2003
© Morpurgo, Zanaboni
11
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
Il linguaggio macchina
• Il processore è in grado di riconoscere (e
quindi di eseguire) solo programmi scritti in
un proprio linguaggio (linguaggio macchina)
• Ogni modello di processore (es: Intel,
Pentium, Motorola, PowerPC) ha un proprio
linguaggio macchina diverso da quello degli
altri processori
AA 2002/2003
© Morpurgo, Zanaboni
12
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
6
Il processore - clock
• In corrispondenza di ogni istruzione
espressa nel linguaggio macchina il
processore svolge una serie di operazioni
elementari (il ciclo della macchina).
• Il numero operazioni elementari svolte per
ogni istruzione dipende dal tipo di
processore (tra le 7 e le 10).
AA 2002/2003
© Morpurgo, Zanaboni
13
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
Il processore - clock
• Il tempo impiegato dal processore per eseguire una
operazione elementare è detto durata del ciclo di
clock
• Il numero di operazioni elementari svolte dal
processore in una unità di tempo (cioè il numero di
cicli di clock al secondo) è la frequenza di clock
AA 2002/2003
© Morpurgo, Zanaboni
14
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
7
Il processore - clock
Quindi:
1
Frequenza di clock =
Durata di un ciclo di clock
E’ un indicatore della “velocità” del processore
nell’eseguire i programmi.
Oggi si misura in Mhz (MegaHertz).
1 Mhz = 1 milione di cicli al secondo.
AA 2002/2003
© Morpurgo, Zanaboni
15
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
Il processore - clock
• Dati due processori con lo stesso linguaggio
macchina sarà più veloce quello con
frequenza di clock maggiore
• Non è possibile fare un confronto tra
processori con linguaggi macchina diversi
AA 2002/2003
© Morpurgo, Zanaboni
16
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
8
Il processore - clock
Esempio
Computer A
Clock :
500MHz
Linguaggio macchina
richiede 10 operazioni
elementari per istruzione
Computer B
Clock :
400MHz
Linguaggio macchina
richiede 6 operazioni
elementari per istruzione
Devono eseguire un programma di 100M istruzioni macchina
A impiegherà 2 sec.
AA 2002/2003
© Morpurgo, Zanaboni
B impiegherà 1,5 sec.
17
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
Il processore - registri
• Per eseguire le operazioni elementari il processore ha
bisogno di utilizzare delle memorie (di piccole dimensioni)
alle quale accedere in modo veloce (es: una zona che
contiene l’indirizzo dell’istruzione da eseguire, una per i
dati su cui l’istruzione opera)
• Queste memorie, che fisicamente sono contenute nel chip,
sono chiamate registri del processore
AA 2002/2003
© Morpurgo, Zanaboni
18
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
9
Memoria
processore
registro
registro
…
registro
Interfccia alle periferiche
AA 2002/2003
© Morpurgo, Zanaboni
19
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
Sistemi con più processori
I co-processori
• A seconda del tipo di uso che l’utente fa del
computer, per velocizzarne le prestazioni si
possono aggiungere dei co-processori.
• Questi sono processori specializzati
nell’esecuzione di compiti specifici (es:
gestione dello schermo) che operano sotto il
controllo della CPU.
AA 2002/2003
© Morpurgo, Zanaboni
20
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
10
Memoria
processore
registro
registro
…
registro
co-processore
Interfccia alle periferiche
AA 2002/2003
© Morpurgo, Zanaboni
21
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
Sistemi con più processori
Sistemi paralleli
• I sistemi paralleli sono sistemi con più CPU che
operano in modo indipendente e condividono le
altre risorse del computer.
• Il coordinamento dei diversi processori è
demandato al sistema operativo.
• La velocità del computer risulta aumentata ma non
moltiplicata, perché non è trascurabile il tempo
che il sistema operativo deve dedicare al
coordinamento dei processori
AA 2002/2003
© Morpurgo, Zanaboni
22
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
11
processore
registro
registro
Memoria
…
registro
registro
registro
processore
…
registro
Interfccia alle periferiche
AA 2002/2003
© Morpurgo, Zanaboni
23
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
LA MEMORIA
AA 2002/2003
© Morpurgo, Zanaboni
24
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
12
La memoria
• La memoria è la componente che svolge la
funzione di magazzino delle informazioni
sulle quali opera il processore
• L’unità di informazione minima è il bit
(binary unit). Consideriamola come una
casella nella quale possiamo scrivere il
simbolo 0 oppure il simbolo 1.
AA 2002/2003
© Morpurgo, Zanaboni
25
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
La memoria-il bit
•
•
Avendo a disposizione un solo bit si possono
rappresentare due elementi diversi:
Si assegna al primo elemento la codifica 0 e al
secondo la codifica 1
Avendo a disposizione due bit si possono
rappresentare quattro elementi diversi, assegnando
a ciascuno una codifica diversa:
00, 01, 10, 11
AA 2002/2003
© Morpurgo, Zanaboni
26
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
13
La memoria-il bit
• Avendo a disposizione tre bit si possono
rappresentare otto elementi diversi.
• .…
• Avendo a disposizione n bit si possono
rappresentare 2n elementi diversi.
AA 2002/2003
© Morpurgo, Zanaboni
27
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
La memoria-il byte
• Agli albori dell’informatica c’era l’esigenza di
rappresentare i caratteri stampabili (le lettere dell’alfabeto,
le cifre da 0 a 9, lo spazio, la virgola etc…) per un numero
totale di caratteri compreso tra 90 e 120.
• Per poter rappresentare 128 elementi diversi servono
almeno 7 bit (27=128).
• E’ bene avere a disposizione un bit supplementare poter
effettuare controlli sulla sequenza
AA 2002/2003
© Morpurgo, Zanaboni
28
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
14
La memoria-il byte
• Quindi per rappresentare i caratteri
stampabili è necessaria una sequenza di
7+1=8 bit.
• Una sequenza di 8 bit è detta byte, ed è
diventata una unità di misura della
occupazione di memoria.
AA 2002/2003
© Morpurgo, Zanaboni
29
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
La memoria-il byte
BYTE
1
0
0
1
0
1
1
1
=
b
BIT
AA 2002/2003
© Morpurgo, Zanaboni
30
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
15
Le celle di memoria
AA 2002/2003
© Morpurgo, Zanaboni
31
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
Le celle di memoria
• Ogni cella di memoria contiene un byte, ed
è contraddistinta da un indirizzo
• Volendo scrivere o leggere un dato dalla
memoria il processore deve sempre
specificare l’indirizzo della cella alla quale
vuole accedere
AA 2002/2003
© Morpurgo, Zanaboni
32
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
16
La memoria-unità di misura
Le dimensioni di una memoria si misurano in:
• Kbyte (kilo byte)= 210 byte = 1024 byte ¡ 103 byte
• Mbyte (Mega byte)= 210 Kbyte = 1024 Kbyte= 220 byte ¡ 106 byte
• Gbyte (Giga byte)= 210 Mbyte =1024 Mbyte = 230 byte ¡ 109 byte
• Tbyte (Tera byte)= 210 Gbyte =1024 Gbyte = 240 byte ¡ 1012 byte
AA 2002/2003
© Morpurgo, Zanaboni
33
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
L’ESECUZIONE DEI
PROGRAMMI
AA 2002/2003
© Morpurgo, Zanaboni
34
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
17
Quando chiediamo al computer di eseguire
un programma accade che:
• Il programma (già scritto in linguaggio
macchina) viene trasferito nella memoria
di lavoro (la memoria centrale), alla quale
il processore può accedere velocemente
• Per ogni istruzione del programma la CPU
esegue tre tipi di operazioni, che
costituiscono il ciclo della macchina:
AA 2002/2003
© Morpurgo, Zanaboni
35
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
Ciclo della macchina
• Lettura (fetch)– il processore reperisce dalla
memoria l’istruzione da eseguire
• Decodifica (decode) – il processore
identifica l’istruzione da eseguire
• Esecuzione (exec) – il processore esegue le
operazioni corrispondenti all’istruzione
AA 2002/2003
© Morpurgo, Zanaboni
36
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
18
L’esecuzione dei programmi
La memoria centrale è l’area di lavoro:
• contiene i programmi in esecuzione in
quel momento ed i relativi dati
• in particolare, contiene sempre la parte
del sistema operativo che governa
l’utilizzo delle risorse di calcolo
L’unità fisica che esegue i programmi in
memoria centrale è la CPU
AA 2002/2003
© Morpurgo, Zanaboni
37
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
L’esecuzione dei programmi
•Si dice che un programma ha il controllo della CPU
se la CPU sta eseguendo quel programma;
•impropriamente, diremo che:
• un programma P svolge un compito
• per dire che
• la CPU svolge quel compito sotto il controllo di
P
AA 2002/2003
© Morpurgo, Zanaboni
38
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
19
L’esecuzione dei programmi
del Sistema Operativo (SO)
•Quando il calcolatore è in attesa di comandi,
il controllo della CPU è detenuto dal SO, che:
• gestisce l’interfaccia utente
• accetta i comandi dell’utente
• avvia (lancia) l’esecuzione dei programmi
applicativi
AA 2002/2003
© Morpurgo, Zanaboni
39
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
L’esecuzione di un programma applicativo
• La CPU è sotto il controllo del SO, che gestisce
l’interfaccia utente
• L’utente chiede, tramite l’interfaccia, di eseguire, ad
esempio, WORD
• La CPU, sotto il controllo del SO, riconosce la richiesta e
• carica (trasferisce) WORD in memoria centrale
• inizia ad eseguire WORD
• L’esecuzione di WORD termina e la CPU riprende ad
eseguire il SO;
• nuovamente sotto il controllo del SO, la CPU è pronta ad
accettare nuovi comandi
AA 2002/2003
© Morpurgo, Zanaboni
40
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
20
Ma la situazione è più complessa
•In realtà il SO gestisce l’esecuzione di più
programmi e più utenti, per cui
• si hanno più processi e il SO concede la CPU a
ciascuno di essi, per piccoli intervalli di tempo, a
rotazione o secondo altre politiche
• tutto ciò è trasparente all’utente e non ce ne
occuperemo in questo corso
AA 2002/2003
© Morpurgo, Zanaboni
41
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
Funzionamento della CPU
Memoria centrale
RI (Registro Istruzione)
PC (Program counter)
…
…
processore
registri
registro dati 1
…
…
registro dati k
CPU
AA 2002/2003
© Morpurgo, Zanaboni
42
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
21
La nostra CPU finta
• Una CPU può leggere/scrivere il contenuto di una sola
cella di memoria alla volta, specificandone l’indirizzo;
• contiene inoltre dei registri, come area di lavoro veloce
• la nostra CPU finta contiene i seguenti registri
• il registro PC (Program counter) che contiene
l’indirizzo dell’istruzione da reperire
• il registro RI, (Registro istruzioni) che contiene
l’istruzione da decodificare ed eseguire
• 4 registri dati
• il ciclo di esecuzione, nelle sue fasi, avviene come segue
AA 2002/2003
© Morpurgo, Zanaboni
43
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
Ciclo della macchina
•La CPU esegue le istruzioni in memoria centrale
ripetendo i seguenti passi (ciclo della macchina):
•1) Lettura (fetch)
•reperisce dalla memoria centrale l’istruzione da
eseguire e la carica nel registro istruzioni RI
•2) Decodifica (decode)
•
riconosce l’istruzione presente nel RI;
•3) Esecuzione (exec)
•
esegue le operazioni dettate da tale istruzione
•4) Torna al passo 1)
•
per la lettura della prossima istruzione
AA 2002/2003
© Morpurgo, Zanaboni
44
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
22
Esempio con una CPU finta,
che usa la numerazione decimale
La nostra CPU finta usa una memoria centrale indirizzata da 2 cifre decimali,
cioè di 100 elementi
Indirizzi
da 00
a 99
00
01
02
03
04
05
06
Celle di
memoria
di lunghezza
6 cifre decimali
013005
012006
112310
021006
999999
000120
000080
…. ……..
AA 2002/2003
© Morpurgo, Zanaboni
45
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
Quando inizio il reperimento il PC contiene l’indirizzo
dell’istruzione da eseguire in quel momento
In questo esempio è l’istruzione di indirizzo 01
013005
012006
112310
021006
999999
000120
000080
00
01
02
03
04
05
06
PC
RI
01
013005
processore
registri
0 000000
1 000120
2 000000
3 000000
CPU
…. ……..
Nel reperimento:
la CPU trasferisce l’istruzione da eseguire
(di indirizzo 01) nel RI e si ottiene:
AA 2002/2003
© Morpurgo, Zanaboni
46
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
23
che RI contiene l’istruzione da eseguire
00
01
02
03
04
05
06
013005
012006
112310
021006
999999
000120
000080
PC
RI
02
012006
processore
Registri dati
0 000000
1 000120
2 000000
3 000000
CPU
…. ……..
il PC punta già alla prossima, di indirizzo 02
ha inizio la decodifica ed esecuzione
dell’istruzione in RI
AA 2002/2003
© Morpurgo, Zanaboni
Decodifica
47
01 2 0 06
trasferisci nel registro 2
00
01
02
03
04
05
06
011005
012006
112310
021006
999999
000120
000080
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
il dato contenuto
nella cella di memoria 06
PC
RI
02
012006
processore
Registri dati
0 000000
1 000120
2 000000
3 000000
CPU
…. ……..
L’esecuzione trasferisce 000080 nel registro 2
AA 2002/2003
© Morpurgo, Zanaboni
48
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
24
00
01
02
03
04
05
06
011005
012006
112310
021006
999999
000120
000080
PC
RI
02
012006
processore
Registri dati
0 000000
1 000120
2 000080
3 000000
CPU
…. ……..
Inizia un nuovo ciclo di esecuzione, che reperisce
l’istruzione puntata dal PC, ora quella di indirizzo 02,
e così via
AA 2002/2003
© Morpurgo, Zanaboni
49
Laboratorio di Informatica
Lezione 4. CPU, RAM, esecuzione dei programmi
25