2
Controllo
Unità Aritmetico
logica
Registri
Memoria Principale
UnitàDisco Display
Unità centrale CPU
Dispositivi di ingresso\uscita
bus
Un calcolatore digitale è composto da CPU,
memorie e dispositivi di input/output.
3
Central Processing UnitOrganizzazioneDescrizione
Funzionamento
4
La CPU e’ il “cervello” del calcolatore e il suo compito è quello di eseguire i programmi, residenti nella memoria, leggendo ed eseguendo le loro istruzioni.I componenti sono collegati tra loro attraverso dei bus.
5
Un bus, che è un gruppo di fili tra loro paralleli, ha il compito di trasportare segnali di controllo, dati e indirizzi. Il Bus puo’ essere esterno alla CPU e ha lo scopo di permettere la comunicazione tra la memoria e i dispositivi di I\O.
6
A+B
A
B
A B
ALU
A+B
Registri
Registro ALU dell’ingresso
Bus di ingresso dell’ALU
Registro di uscita dell’ALU
L’organizzazione interna di una CPU è caratterizzata dal data path, che è costituito da una serie di componenti, tra i quali l’ALU, i registri, e molti bus di comunicazione.
l
7
Arithmetic Logic UnitL’ALU esegue dei calcoli matematici sui dati e poi memorizza il risultato in un registro in uscita.I dati hanno due possibilità di percorsi: registro-memoria i dati vengono trasportati dal registro di uscita alle memoria e/o viceversa;
8
La memoria della CPU, che è ad alta velocità, viene utilizzata per memorizzare temporaneamente istruzioni e dati più frequentemente acceduti.
9
Il funzionamento della CPU si basa su una sequenza di operazioni, che insieme prendono il nome di fetch-decode-execute:
1 prelievo delle istruzioni dalla memoria, e immissione di queste nel registro delle istruzioni; Caricamento del nuovo program counter
2 dterminazione del tipo di istrizzone3 ricerca operandi ed esegui l’istruzione.
10
L’hardware e’ l’insieme degli elementi costitutivi di un elaboratoreIl software serve per utilizzare il calcolatore.Il software suddivide le istruzioni in piccole porzioni che esegue in modo più semplice attraverso un interprete, mentre l’hardware le esegue direttamente.
11
Durante gli anni 70’ dello scorso secolo il mercato dei calcolatori era in pieno sviluppo e aumentava sempre di più la richiesta di calcolatori a basso costo. Lo sviluppo di software eliminava i limiti di costo inerenti alla esecuzione di istruzioni complesse.
12
Ci sono dei principi di progettazione chiamati principi di progettazione RISC, che gli architetti delle CPU possono seguire. Tra i più importanti troviamo:
13
Tutte le istruzioni comuni vengono eseguite direttamente dall’hardware e non vengono interpretate da microcodice, per cui il sistema e’ più veloce. Mentre per i calcolatori che implementano istruction set CISC le istruzioni vengono scomposte in miscroistruzioni anche se questo passaggio rallenta la macchina.
14
I calcolatori moderni cercano di iniziare piu’ istruzioni possibili al secondo. Il parallelismo svolge quindi un ruolo fondamentale nel miglioramento delle prestazioni perché inviare una grossa quantità di istruzioni lente a intervalli brevi e’ possibile solo se istruzioni multiple si possono eseguire contemporaneamente.
15
Una limitazione della velocita’ con la quale vengono mandate in esecuzione le istruzioni e’ dovuta alla decodifica delle istruzioni. Per eliminare questo problema bisogna usare istruzioni con struttura regolare, di lunghezza fissa, con un numero limitato di campi e con formati molto simili.
16
La maggior parte delle operazioni di load e store trasferiscono dati tra la memoria e i registri. Queste operazioni di trasferimento sono piu’ lente e quindi talvolta si sovrappongono con le altre istruzioni;
17
Poiche’ l’accesso alla memoria e’ molto lento e’ necessario disporre di molti registri, almeno 32, in modo che un’istruzione, una volta letta, possa essere conservata in un registro fin quando non e’ piu’ necessaria.
18
Un modo per accelerare il funzionamento dei chip e’ aumentare la velocità del clock e i ricercatori utilizzano il parallelismo, nel tentativo di eseguire due o piu’ operazioni contemporaneamente per ottenere maggiori prestazioni con la frequenza di clock a disposizione.
19
Per eseguire piu’ istruzioni parallelamente si usava un prefetch buffer, che le prelevava invece di aspettare la lettura completa della memoria. Quindi il processo si divideva in due parti: lettura della memoria e esecuzione.
Stadio di lettura delle istruzioni
Stadio di decodifica delle istruzioni
Stadio di lettura degli operandi
Stadio di esecuzione delle istruzioni
Stadio di scrittura
20
Registri
Cache
Memoria principale
Dischi magnetici
Nastri Dischi ottici
+lente+capacita`di memorizzazione
Da 32KB a alcuni MB
Da 16MB a decine di GB
Da alcuni GB a decine di TB
Memorizzazione di archivi
Memorizzazione permanente
21
Storicamente la capacita’ di accesso ai dati da parte delle CPU e’ sempre stata limitata dalla velocita’ di I/O della memoria.In realta`non si tratta di un problema tecnologico, ma economico; gli ingegneri sono in grado di costruire memorie veloci come le CPU, ma il costo complessivo del sistema sarebbe molto elevato..
22
La validita’ di questo metodo dipende dalla quantità` di parole che si trovano nella cache. Statisticamente i programmi non accedono alla memoria a caso:se La CPU richiede un dato della memoria di indirizzo A, e` assai probabile che
l`accesso seguente si troverà` nelle vicinanze di A.
CPU
cache
Memoria principale
bus
Configurazione comune di CPU, cache e memoria
23
La memoria e`quella parte del calcolatore dove vengono immagazzinati i programmi e i dati. Alcuni ricercatori del settore usano il termine store (magazzino) o storage (immagazzinamento) invece di memoria, anche se il termine storage solitamente si riferisce alla memorizzazione su disco.