Presentazione di PowerPoint - Home page istituzione trasparente

1.4a: Hardware (Processore)
Bibliografia
 Curtin, Foley, Sen, Morin “Informatica di base”,
Mc Graw Hill
 Ediz. Fino alla III : cap. 3.8, 3.9
 IV ediz.: cap. 2.6, 2.7
23 nov 2011
 Questi lucidi
2
L’unità centrale di elaborazione
(CPU)
 La CPU, o unità centrale di elaborazione o
Processore, è un circuito integrato (Chip), costituito
da una piccola piastra di silicio
 Sulla superficie della CPU sono presenti milioni di
piccoli interruttori elettronici miniaturizzati, di tipo
acceso/spento, i transistor, e altri componenti
elettronici
 Il primo processore a larga diffusione, l’Intel 4004 (1971),
conteneva circa 2.300 transistor
23 nov 2011



3
Il primo processore montato sul
primo PC di larga diffusione, i8088
conteneva circa 29.000 transistor
Il Core 2 (2006) ne contiene oltre
291.000.000
Un Quad-core circa 2.4 miliardi.
L’unità centrale di elaborazione
(CPU)

23 nov 2011

4
La CPU è il “cervello” del calcolatore e il suo
compito è quello di eseguire i programmi, residenti
nella memoria, leggendo ed eseguendo le loro
istruzioni.
L’elaborazione avviene in accordo a sequenze di
istruzioni (istruzioni macchina), scritte in un
linguaggio di programmazione speciale, chiamato
linguaggio macchina.
Esecuzione di Programmi
RAM
N
M
CPU
Esecuzione di Programmi
RAM
N
leggi
prossima
istruzione
CPU
10110110
…
11001001
M
“somma 2 al
valore della
cella M”
Esecuzione di Programmi
RAM
CPU
10110110
N
…
11001001
leggi dati
M
11001001
Esecuzione di Programmi
RAM
N
CPU
10110110
…
esegui
calcoli
11001001
M
11001001
11001011
+2=
Esecuzione di Programmi
RAM
CPU
10110110
N
…
11001001
M
scrivi
risultato
11001001
11001011
Esecuzione di Programmi
RAM
N
leggi
prossima
istruzione
CPU
11000111
…
10101101
M
Struttura e componenti della CPU
 Unità di controllo (Control Unit).
 ALU (Unità Aritmetico-Logica)
 Clock
 Registri
Unità di
controllo
Memoria
Centrale o
Periferiche
Clock
BUS
Registro
Registro
Registro
ALU
Struttura della CPU
Unità di controllo
 Sovrintende
alla
corretta
esecuzione
dei
programmi e coordina il lavoro degli altri
componenti hardware e le attività dell’intero
computer
 L’unità di controllo del processore esegue una
istruzione svolgendo le seguenti tre operazioni di
base
 Fetch (lettura)
 Decode (decodifica)
 Execute (esecuzione)
 Un programma è eseguito reiterando il ciclo fetchdecode-execute (ciclo macchina) per eseguire
ordinatamente le sue istruzioni
ALU
 L’unità logico-aritmetica (ALU – Arithmetic Logic
Unit)
 esegue le istruzioni in linguaggio macchina
corrispondenti alle operazioni matematiche, logiche e
di confronto
 Legge i dati contenuti all'interno dei registri generali,
esegue le operazioni e memorizza il risultato in uno dei
registri generali
 Vi sono circuiti in grado di
 eseguire la somma di due numeri binari contenuti in due registri
e di depositare il risultato in un registro
 eseguire il confronto tra due numeri
 ecc…
Registri di memoria della CPU
 I registri della CPU sono un tipo di memoria ad alta
velocità (2, 4, 8 byte) che viene utilizzata per
memorizzare temporaneamente istruzioni e dati più
frequentemente acceduti.
 Ospitano le informazioni necessarie per eseguire
l’istruzione corrente
 In numero molto limitato (10, 20, 64) si dividono in
registri speciali e generali
I Registri speciali
 Il Program Counter (PC) contiene l’indirizzo in
memoria centrale della prossima istruzione da
eseguire.
 All’inizio dell’esecuzione di un programma viene
caricato con l’indirizzo della prima istruzione di quel
programma.
 Ad ogni istruzione eseguita il PC viene modificato
per contenere l’indirizzo della istruzione successiva.
I Registri speciali
L’Instruction Register (IR) contiene l’istruzione
correntemente in esecuzione
 la CPU legge l’istruzione contenuta nell’instruction
register e la esegue
IL Registro di stato (PSW) descrive lo stato corrente
della esecuzione
 segnala eventuali errori (ad es.: overflow)
I Registri speciali
 Registro Indirizzi Memoria (MAR) contiene
l’indirizzo della cella da cui leggere o in cui
scrivere un dato
 Registro dati Memoria (MDR) contiene il dato
letto dalla memoria o da scrivere in memoria
Clock
 La CPU ha un orologio interno, detto clock, che emette con
regolarità un determinato numero di impulsi ogni secondo, come
una specie di metronomo che scandisce le operazioni all’interno
di tutti i circuiti elettronici del calcolatore e li sincronizza.
 La velocità del clock
 indica il numero di “impulsi” (cicli) che il clock emette in un
secondo.
 La velocità del clock è quel numero che viene normalmente
associato ad ogni processore (es.: processore da 2 Giga)
 La velocità del clock si misura in Hertz.
 1 hertz (Hz) = 1 ciclo al secondo
 1 megahertz (MHz) = 1 milione di cicli al secondo
 1 gigahertz (GHz) = 1 miliardo di cicli al secondo
Dimensione della parola
 E’ il numero di bit che un processore tratta
simultaneamente.
 Corrisponde a quanti bit possono essere trasferiti
simultaneamente tra processore e memoria.
 Corrisponde alla dimensione della singola cella di
memoria RAM
23 nov 2011
 Corrisponde alla dimensione dei registri della CPU.
20
 Inizialmente la dimensione della parola era di 8 bit,
cioè di 1 byte. Da allora si è cominciato a misurare
la dimensione della memoria in byte.
 Attualmente la dimensione di parola varia da 32 a
64 bits, in base al tipo di processore e di architettura
hardware.
Istruzioni del Processore
 La CPU esegue istruzioni che fanno parte di un
programma, codificato utilizzando un linguaggio di
programmazione
 Ogni CPU è in grado di eseguire solo poche istruzioni
elementari quali:
23 nov 2011
 Somma di due numeri (già la somma di tre numeri viene
effettuata tramite due somme elementari)
21
 Confronto tra due numeri con individuazione del fatto che
ci sia o meno differenza (non tutti i processori sanno
distinguere in modo immediato, invece, quale dei due
precede l’altro)
 Spostamento dei bit all’interno di una parola di qualche
posizione a destra o a sinistra.
 poche altre ancora …
Istruzioni del Processore
 Inoltre, un’istruzione del processore è generalmente
composta da più operazioni elementari che accedono
in momenti successivi alle risorse del computer
 Quasi mai la singola istruzione del processore è eseguita in
un solo ciclo di clock. Ad esempio, per effettuare la
somma di due numeri
 Bisogna leggere il primo addendo
 Bisogna leggere il secondo addendo
 Bisogna eseguire la somma
23 nov 2011
 Bisogna memorizzare la somma
22
 E potrebbe darsi che alcune di queste mini-operazioni
richieda più cicli di clock per essere completata.
 Ogni “parte” di un’istruzione viene eseguita in
corrispondenza ad un impulso di clock
Istruzioni del processore
 Le istruzioni del processore sono il suo
VOCABOLARIO: quanto più esso è povero
 tante più parole saranno necessarie per descrivere
un concetto,
23 nov 2011
 ma tanto più esse saranno “corte” e quindi veloci da
eseguire, in quanto richiedono pochi impulsi di clock
per essere completate.
23
 La potenza di elaborazione di un processore è
data dal numero di istruzioni eseguite in un
secondo (MIPS – milioni di istruzioni al secondo,
MFLOPS – milioni di istruzioni in virgola mobile al
secondo)
Coprocessori
 Nei moderni computer la CPU è “coadiuvata”
da altri processori “specializzati” nel
trattamento di particolari tipologie di dati (ad
esempio immagini sul monitor o suoni).
23 nov 2011
Un
Coprocessore
è
un
 . “dedicato” che,
processore
sotto il controllo della CPU e del
Sistema
Operativo
svolge
elaborazioni specialistiche che
richiederebbero alla CPU un
notevole dispendio di tempo
• Processore sulla scheda
video
• Processore sulla scheda
audio
24
Multiprocessori
 E’ possibile, inoltre, dotare un computer di più processori
che “collaborano” all’esecuzione di un programma.
 Ad esempio possono essere disposti più processori come in
una catena di montaggio
23 nov 2011
 Oppure più processori possono lavorare
contemporaneamente su parti diverse di uno stesso dato
(nelle previsioni del tempo, ad esempio, ogni processore
può dedicarsi ad una specifica zona geografica)
25
Microprocessori incorporati
 I microprocessori si trovano anche in
 Automobili
 Telefoni
 Termostati
 Schede telefoniche
23 nov 2011
 Carte di credito
26
Compatibilità
 Cosa accade ai programmi quando si cambia il
processore del computer (perché, magari, si sostituisce il
computer)?
 La compatibilità è garantita, di norma, verso l’alto
 Un programma che gira su un processore di un produttore
funziona sui modelli più recenti prodotti dalla stessa azienda
23 nov 2011
 Il viceversa non è sempre vero
 Non è garantita la compatibilità tra processori di aziende
diverse, a meno che essa non sia esplicitamente
dichiarata. Ad esempio
 c’è un ottimo livello di compatibilità tra processori AMD e Intel
27
CISC e RISC
 CISC = Complex Instruction Set Chip (300-400)
 RISC = Reduced Instruction Set Chip (100-200)
 Un processore CISC rispetto ad un processore RISC presenta molte
più istruzioni che vengono eseguite tramite più operazioni
elementari
 che richiedono più cicli di clock per essere completate
23 nov 2011
 E che quindi sono più lente delle corrispondenti operazioni
RISC
28
 D’altro canto, le istruzioni di un processore CISC che non sono
presenti in un processore RISC vengono da questo simulate
tramite più istruzioni
 ciò comporta tempi maggiori nei processori RISC, in media,
ma solo per tali istruzioni da simulare, rispetto alle
corrispondenti operazioni CISC
CISC e RISC
 I processori RISC sono mediamente più veloci
dei CISC su quasi tutte le applicazioni.
23 nov 2011
 I processori RISC non sono adatti per
elaborazioni “complesse”, ad esempio quelle
sui dati multimediali
29
 Attualmente la differenza tra CISC e RISC si sta
riducendo
Benchmark
 Batterie di test usate per confrontare le velocità dei
computer.
 Non sono mai valori assoluti. Ma sono rapportati ad
un insieme di programmi (che compongono tali
batterie).
 Un computer può risultare più veloce di un altro
relativamente ad un programma ma meno veloce
relativamente ad un altro.
23 nov 2011
 Due grandi tipologie di programmi:
 CPU-consuming (usano molto la CPU). E tra queste:
 Integer-computing (calcoli su numeri interi o su pochi numeri)
 Floating-point computing (lavorano su numeri reali e molto grossi)
 I/O-consuming (usano molto le periferiche di I/O).
30