Il sistema di elaborazione
Stefano Brocchi
[email protected]
Stefano Brocchi
Il sistema di elaborazione
1 / 37
Informatica
Il termine informatica deriva dalle parole informazione e automatica
Stefano Brocchi
Il sistema di elaborazione
2 / 37
Hardware e software
Combinazione dell’hardware, l’insieme dei componenti fisici del
calcolatore...
... e del software, insieme dei programmi contenuti nelle memorie che
consentono l’esecuzione del programma
Stefano Brocchi
Il sistema di elaborazione
3 / 37
Storia del calcolatore
Primo ’calcolatore’ nel 1600: Blaise Pascal inventa un dispositivi in
grado di eseguire automaticamente somme e sottrazioni
Primo calcolatore programmabile realizzato da Konrad Zuse negli
anni 30-40
Stefano Brocchi
Il sistema di elaborazione
4 / 37
Storia del calcolatore
Un altro traguardo fu rappresentato dall’ENIAC nel 47, una grande
macchina programmabile molto più potente di qualsiasi altra esistente
all’epoca
Stefano Brocchi
Il sistema di elaborazione
5 / 37
Sviluppo del calcolatore
Massicci sviluppi tecnologici hanno permesso l’aumento di potenza e
la miniaturizzazione dei computer
Passo fondamentale: l’invenzione del microchip
Nel microchip, circuiti elettronici sono miniaturizzati in una piccola
piastra (chip) solitamente di silicio
Applicazione della tecnologia ai computer da fine anni 60, grande
sviluppo portato avanti negli anni 70 nella silicon valley (california)
Nascita dei personal computer negli anni 70
Ulteriori sviluppi hanno permesso la creazione di portatili, palmari e
telefoni programmabili
Stefano Brocchi
Il sistema di elaborazione
6 / 37
Caratteristiche
Flessibilità di uso: un moderno computer è programmabile, può
eseguire cioè compiti generici
Modularità della struttura: i diversi componenti si occupano di diverse
funzionalità del computer
Scalabilità dei componenti: i componenti sono standardizzati e
sostituibili
Crescente semplicità di utilizzo ed economicità
Stefano Brocchi
Il sistema di elaborazione
7 / 37
Architettura
Architettura di Von Neumann: un paradigma che descrive un modello
concettuale rappresentante un computer programmabile formato da
Elaborazione: capacità di eseguire calcoli ed istruzioni
Memorizzazione: possibilità di ricordare informazioni
Interfaccia: l’esistenza di canali per comunicare con l’utente
Interconnessione: la connessione fra le componenti di elaborazione,
memorizzazione e interfaccia
Elaborazione
Memorizzazione
Interconnessione
Interfaccia
Stefano Brocchi
Il sistema di elaborazione
8 / 37
Realizzazione
Nei moderni calcolatori, l’elaborazione viene svolta dalla CPU
(Central Processing Unit), che si occupa di eseguire le istruzioni ed i
calcoli e di coordinare le altre risorse
Le memorie sono adibite a immagazzinare i dati
I dispositivi di Input ed Output (I/O) consentono la comunicazione
con l’utente in ingresso ed in uscita (tastiere, mouse, schermi...)
Stefano Brocchi
Il sistema di elaborazione
9 / 37
Realizzazione: interconnessione
Queste componenti comunicano tramite un canale che li collega detto
bus, che ha un flusso di dati, uno per gli indirizzi ed uno di controllo
CPU
Memorie
Tastiera
Schermo
...
Interfaccia I/O
Bus
Controllo
Dati
Indirizzi
Stefano Brocchi
Interfaccia I/O
...
Il sistema di elaborazione
10 / 37
Bus
Il collegamento a bus comprende diversi vantaggi, tra cui:
La semplicità: un’unica linea di connessione collega i vari componenti
L’estendibilità: l’aggiunta di nuovi dispositivi diventa molto semplice
Standardizzazione: si possono definire regole per la comunicazione da
parte di dispositivi diversi
Stefano Brocchi
Il sistema di elaborazione
11 / 37
Rappresentazione dell’informazione
Prima di scendere nel dettaglio di come sono realizzate i quattro
componenti concettuali, occorre aprire una parentesi su come venga
rappresentata l’informazione sul calcolatore
L’informazione di base è il bit, una variabile che può assumere due
diversi valori 1 e 0
Stefano Brocchi
Il sistema di elaborazione
12 / 37
Realizzazione di un bit
A livello elettronico, un bit in una memoria viene considerato uguale
ad uno per valori di voltaggio sopra una certa soglia, ed uguale a zero
al di sotto di un’altra quantità
Fra le due soglie, c’è un intervallo di tensione non ammessa per
minimizzare il margine di errore
Valore bit: 1
Tensione
Non permesso
Valore bit: 0
Stefano Brocchi
Il sistema di elaborazione
13 / 37
Rappresentazione dati tramite bit
E’ facile vedere che avendo a disposizione un numero sufficiente di
bit, si può rappresentare qualsiasi numero utilizzando la base 2
In contrapposizione, il sistema decimale usato normalmente è la base
10 (10 simboli utilizzabili)
Base 10
0
1
2
3
4
5
6
7
Stefano Brocchi
Base 2
0
1
10
11
100
101
110
111
Base 10
8
9
10
11
12
13
14
15
Il sistema di elaborazione
Base 2
1000
1001
1010
1011
1100
1101
1110
1111
14 / 37
Rappresentazione altre informazioni
A seconda del contesto, dati in binario possono rappresentare
qualunque informazione, come caratteri o istruzioni.
Per esempio, la sequenza 01000001 può rappresentare
Il numero 65
Il carattere ’A’
Un’istruzione da eseguire
...
I bit verranno interpretati nel modo opportuno a seconda del contesto
in cui si trovano
Esempio: le sequenze di bit contenute in un file di testo verranno
interpretate sempre come caratteri
Stefano Brocchi
Il sistema di elaborazione
15 / 37
Bit ed unità di misura
8 bit formano un byte, unità di misura di base delle memorie
Per motivi architetturali, le capienze delle memorie sono tipicamente
multipli di 2; per questo, le potenze del byte salgono con le potenze di
210 = 1024
Quindi, 1 KiloByte = 1024 byte, 1 MegaByte = 1024 KyloByte, 1
GigaByte = 1024 MegaByte ...
Esempio: un CD da 650MB contiene più di 680 000 000 di byte
Teoricamente, questo si dovrebbe esplicitare parlando, per esempio, di
’Kilo binario’, ed utilizzando il simbolo Kibi invece di KB. In pratica,
raramente questo viene fatto
Stefano Brocchi
Il sistema di elaborazione
16 / 37
Bit ed unità di misura
A volte si possono avere delle ambiguità: quando si parla di
Input/Output, solitamente si utilizza la base 10
Es. un collegamento a 20 Megabit (quindi 20/8 = 2.5 Megabyte) può
trasferire esattamente 2.5 milioni di byte al secondo
A volte viene utilizzata la base 10 anche per i dischi fissi
Questo può portare a sovrastimare la dimensione del disco
Stefano Brocchi
Il sistema di elaborazione
17 / 37
Esecuzione e program counter
Tornando alla fase di elaborazione svolta dalla CPU, il processore
esegue istruzioni contenute in memoria rappresentate da sequenze di
bit
Il punto dove è arrivata l’esecuzione è un indirizzo della memoria
centrale detto program counter (PC)
Un indirizzo di memoria è un numero ordinale relativo all’inizio della
memoria. Esempio (semplificato): PC = 100 vuol dire che deve essere
eseguita l’istruzione definita al centesimo byte della memoria
Dopo ogni istruzione, il program counter viene incrementato di un
indirizzo in modo che il processore esegua l’istruzione successiva
Eccezione: in caso di istruzioni di salto
Stefano Brocchi
Il sistema di elaborazione
18 / 37
Tipi di istruzione
Alcuni tipi di istruzioni possibili:
Aritmetiche: per eseguire somme, sottrazioni, moltiplicazioni, ecc...
Possono essere eseguite operazioni solo tra un numero limitato di
variabili all’interno del processore dette registri
Caricamento, salvataggio: per la manipolazione della memoria di
variabili
Salto condizionato: se si verifica una certa condizione, allora imposta
il program counter ad un determinato indirizzo
Il salto condizionato permette di programmare la logica di un
programma
Stefano Brocchi
Il sistema di elaborazione
19 / 37
Parametri della CPU
Molti parametri influenzano la velocità di esecuzione di una CPU:
Frequenza di clock (uguale circa al numero di istruzioni al secondo)
Numero di bit delle istruzioni supportate
Semplificando, più bit permettono l’esecuzione di istruzioni più
complesse, e prestazioni migliori
Attualmente, i processori stanno passando da 32 a 64 bit
Velocità del bus
Stefano Brocchi
Il sistema di elaborazione
20 / 37
Multicore e prestazioni
La frequenza all’attuale stato tecnologico sembra difficilmente
migliorabile.
Per migliorare le prestazioni, si sta attualmente puntando sulla
tecnologia multi-core: un chip contiene più CPU che lavorano
contemporaneamente (es. un dual-core ha due CPU, un quad-core ne
ha 4).
Il numero di core è quindi un fattore determinante per la velocità di un
processore
Comunque, occorre considerare che la velocità complessiva di un
computer dipende in primo luogo dal suo componente più lento
Principio detto del collo di bottiglia.
Stefano Brocchi
Il sistema di elaborazione
21 / 37
Legge di Moore
La legge di Moore sulle prestazioni delle CPU, è una predizione che
sostiene che la velocità delle CPU raddoppia ogni due anni
Dal 1971 ad oggi, la previsione si è rivelata in buona approssimazione
veritiera
Anche se con tempi diversi, tutte le componenti dei computer tendono
a migliorare in modo esponenziale con l’avanzare della tecnologia
A causa di questa crescita esponenziale, i computer tendono a
diventare macchine obsolete molto rapidamente
Stefano Brocchi
Il sistema di elaborazione
22 / 37
La memoria
Dopo aver analizzato la realizzazione della componente di esecuzione,
vediamo come viene realizzata la memorizzazione
In un calcolatore esiste una memoria di supporto alla CPU
nell’esecuzione, dove sono contenuti sia dati che istruzioni
In questo caso si utilizza una memoria elettronica, con le seguenti
caratteristiche
Velocità di accesso elevata
Economicamente costosa
Volatile: i dati contenuti vanno persi con lo spegnimento del computer
Stefano Brocchi
Il sistema di elaborazione
23 / 37
La memoria
In un calcolatore è necessaria inoltre una memoria di archivio, capace
di mantenere grandi quantità di dati anche a computer spento
Solitamente, si utilizza all’interno del computer una memoria a dischi
magnetici, più economica ma notevolmente più lenta della memoria
elettronica
Stefano Brocchi
Il sistema di elaborazione
24 / 37
Memorie esterne
Per mantenere dati su un supporto slegato dal calcolatore, si possono
utilizzare memorie USB, memorie elettroniche permanenti e riscrivibili
Altre alternative per la memoria esterna: dischi basati su tecnologia
ottica come CD e DVD
Stefano Brocchi
Il sistema di elaborazione
25 / 37
La memoria centrale
La memoria centrale è quella che contiene i programmi attualmente in
esecuzione ed i loro dati
I dati nella memoria centrale sono associati ad un loro indirizzo,
rappresentante la loro posizione
E’ ad accesso casuale: i tempi di esecuzione al suo contenuto sono
indipendenti dalla posizione del dato cercato o dall’ordine di accesso
I tempi di accesso sono inoltre indipendenti dal carico della memoria
Chiamata per questo RAM (Random Access Memory, memoria ad
accesso casuale)
In contrapposizione, la memoria ad accesso sequenziale che richiede
una lettura dei suoi dati ordinatamente
Stefano Brocchi
Il sistema di elaborazione
26 / 37
La memoria centrale
Per modificare o leggere i dati dalla memoria, occorre utilizzare il bus
per inviare l’indirizzo desiderato (bus indirizzi) e per il dato (bus dati)
da scrivere o leggere (specificare nel bus di controllo)
0
1
Bus dati
11001010
2
3
4
Bus indirizzi
7
Bus controllo
scrivi
Stefano Brocchi
5
6
11001010
Il sistema di elaborazione
7
...
27 / 37
Memoria e CPU
All’attuale stato tecnologico, le CPU sono molto più veloci della
memoria
Le memorie sembrano crescere più in capacità che in velocità
Se il processore dovesse attendere per troppo tempo la memoria,
questo collo di bottiglia vanificherebbe la velocità del processore
Analogamente, anche il bus per la comunicazione tra i due è a
velocità limitata
Stefano Brocchi
Il sistema di elaborazione
28 / 37
Memoria interna alla CPU
E’ possibile realizzare una memoria interna alla CPU per evitare i
tempi di attesa per il trasferimento
Tale memoria risulta però avere grandi limiti di capacità e risulta
molto costosa
Difficile mediare i requisiti di basso costo, alta velocità e capacità in
un’unica memoria
Stefano Brocchi
Il sistema di elaborazione
29 / 37
Memoria interna alla CPU
Soluzione: utilizzare più tipi di memoria in combinazione
Utilizzare una memoria piccola e veloce per i dati che (crediamo)
vengano utilizzati più frequentemente
Questa piccola memoria prende il nome di cache
Nei moderni processori, questa idea viene iterata per creare due
diversi tipi di cache, una di primo livello (più veloce) ed una di
secondo (più lenta ma più grande)
Spesso, esistono anche altri livelli, ognuno più grande e lento del
precedente
Stefano Brocchi
Il sistema di elaborazione
30 / 37
Memorie: gerarchia
Le memorie formano cosı̀ una gerarchia:
Velocita’
Registri:
< 1KB
Registri
CPU
Cache liv. 1:
128-256 KB
Cache livello 1
Cache liv. 2:
1-2 MB
Cache livello 2
Chip
RAM:
2-8 GB
Memoria centrale (RAM)
Memorie esterne
Scheda madre
Disco fisso:
400-1000 GB
Capacita’
Stefano Brocchi
Disco fisso
Computer
Il sistema di elaborazione
31 / 37
Utilizzo della cache
Come decidere che dati mantenere nella cache in modo da ottimizare
le prestazioni di sistema ?
Usati due criteri che danno solitamente una buona stima dei che dati
saranno riutilizzati prossimamente
Il primo è il principio di località spaziale ed il secondo è il principio di
località temporale
Stefano Brocchi
Il sistema di elaborazione
32 / 37
Località spaziale
Il principio di località spaziale dice che se si legge una cella di
memoria, è probabile che le celle vicine saranno presto necessarie
Durante l’esecuzione di un programma, a meno di istruzioni di salto
dopo aver caricato un’istruzione sarà necessario caricare anche quella
successiva
Altro esempio: spesso alcuni file vengono caricati in memoria per
intero; in questi casi, una volta letto il primo byte dovremo leggere
anche tutti i byte successivi
Come sfruttare questo principio: quando si carica una cella di
memoria, viene caricato anche tutto il blocco di celle adiacenti
In molti casi, per esempio nei dischi fissi, vedremo che questo non ha
un costo molto superiore, in proporzione, al trasferimento di una
singola cella
Stefano Brocchi
Il sistema di elaborazione
33 / 37
Località temporale
Il principio di località temporale dice che una cella di memoria è stata
letta o modificate recentemente, è probabile che sia utilizzata di
nuovo in un futuro prossimo
Quando si eseguono dei calcoli per esempio, è facile che la stessa
variabile venga riutilizzata più volte
Come sfruttare questo principio: quando la cache si riempie ed
occorre rimuovere dei dati, viene eliminato il blocco di memoria
utilizzato meno recentemente
Politica chiamata LRU (Least Recently Used)
Stefano Brocchi
Il sistema di elaborazione
34 / 37
Prestazioni
Molti indici per misurare le prestazioni di una memoria, tra cui:
Volatilità o persistenza: la memoria si svuota se il computer viene
spento ?
La capacità, anche in proporzione al costo
La velocità, suddivisibile in tempo di accesso, la velocità di
trasferimento ed il tempo di ciclo
La modalità di accesso, che può essere casuale, sequenziale, mista, ...
Stefano Brocchi
Il sistema di elaborazione
35 / 37
Memoria ROM
All’interno di un calcolatore esiste un’ulteriore memoria molto
importante: la memoria ROM (Read Only Memory, memoria a sola
lettura) per il bootstrap, il processo di avvio del calcolatore
Sigla ROM utilizzata anche per altre memorie in sola scrittura, come i
CD-ROM
Questa memoria ROM contiene le istruzioni di base che vengono
eseguite quando viene acceso un computer, consentendo dei controlli
di integrità e l’avvio del sistema operativo
In sola lettura perché cosı̀ anche se tutto il resto della memoria viene
persa, è possibile avere un piccolo programma di base che consente il
ripristino del sistema
Stefano Brocchi
Il sistema di elaborazione
36 / 37
Domande da esame
Da che parti è costituito un calcolatore nell’architettura di Von
Neumann ? A che hardware corrispondono le varie componenti ?
Come avviene la comunicazione tra i dispositivi hardware ?
Come è rappresentata l’informazione su di un calcolatore ? Come
viene misurata ?
Cosa dice la legge di Moore ?
Che tipi di memoria esistono nel calcolatore e per cosa differiscono ?
A cosa serve e come funziona la cache ? Che criteri vengono
impiegati nel suo utilizzo ?
Stefano Brocchi
Il sistema di elaborazione
37 / 37