Il sistema di elaborazione - Dipartimento di Ingegneria dell

Il sistema di elaborazione
Stefano Brocchi
[email protected]
Stefano Brocchi
Il sistema di elaborazione
1 / 44
Informatica
Il termine informatica deriva dalle parole informazione e automatica
Stefano Brocchi
Il sistema di elaborazione
2 / 44
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 / 44
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 / 44
Storia del calcolatore
Un altro traguardo fu rappresentato dall’ENIAC nel 47, una grande
macchina programmabile molto più potente di qualsiasi cosa esistesse
all’epoca
Stefano Brocchi
Il sistema di elaborazione
5 / 44
Sviluppo del calcolatore
Massicci sviluppi tecnologici hanno permesso l’aumento di potenza e
la miniaturizzazione dei computer
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 / 44
Caratteristiche
Flessibilità di uso: il macchina rimane programmabile per compiti
generici
Modularità della struttura: i diversi componenti si occupano di diverse
funzionalità del computer
Scalabilità dei componenti: i componenti sono standardizzati e
sostituibili
Semplicità ed economicità
Stefano Brocchi
Il sistema di elaborazione
7 / 44
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 mantenere informazioni in modo
persistente
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 / 44
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 di ingresso ed in uscita (tastiere, mouse, schermi...)
Stefano Brocchi
Il sistema di elaborazione
9 / 44
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 / 44
Il bus: visione hardware
Stefano Brocchi
Il sistema di elaborazione
11 / 44
Una scheda madre vista da vicino
Stefano Brocchi
Il sistema di elaborazione
12 / 44
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
13 / 44
Bus
La gestione del bus crea tuttavia anche diverse problematiche
La velocità del bus è condivisa tra le varie risorse
La CPU deve coordinare l’accesso al bus
Una soluzione adottata: utilizzare dei bus ’dedicati’ per dispositivi che
necessitano di particolare efficienza
Stefano Brocchi
Il sistema di elaborazione
14 / 44
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
15 / 44
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
16 / 44
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
17 / 44
Conversione fra basi
Si possono facilmente convertire numeri dalle due basi, considerando
che secondo la notazione posizionale, una cifra assume valore diverso
a seconda della posizione:
7542 =
7 migliaia +5 centinaia +4 decine +2 =
7 ∗ 1000 + 5 ∗ 100 + 4 ∗ 10 + 2 =
7 ∗ 103 + 5 ∗ 102 + 4 ∗ 101 + 2
Stefano Brocchi
Il sistema di elaborazione
18 / 44
Conversione fra basi, da base 2
Da base 2 a base 10:
1011010012 =
1 ∗ 28 + 0 ∗ 2 7 + 1 ∗ 2 6 + 1 ∗ 2 5 + 0 ∗ 2 4 + 1 ∗ 2 3 + 0 ∗ 2 2 + 0 ∗ 2 1 + 1 =
256 + 64 + 32 + 8 + 1 =
361
Stefano Brocchi
Il sistema di elaborazione
19 / 44
Conversione fra basi, da base 10
Da base 10 a base 2:
Stefano Brocchi
361
Resto
1
/2= 180
180
/2= 90
0
90
/2= 45
0
45
/2= 22
1
22
/2= 11
0
11
/2=
5
1
5
/2=
2
1
2
/2=
1
0
1
/2=
0
1
361 = 1011010012
Il sistema di elaborazione
20 / 44
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
21 / 44
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
22 / 44
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
23 / 44
Esecuzione e program counter
Tornando alla fase di elaborazione svolta dalla CPU, il processore
esegue istruzioni contenute nella memoria centrale rappresentate da
sequenze di bit
Il punto dove è arrivata l’esecuzione è un indirizzo di memoria 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
24 / 44
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
25 / 44
Tipi di istruzione
Allo scopo di eseguire calcoli, all’interno del processore sono presenti
una o più componenti dedicate dette Arithmetical Logical Unit (ALU)
A controllare le operazioni svolte dalla ALU e per gestire il
trasferimento dati da e ai registri, è l’unità di controllo
Stefano Brocchi
Il sistema di elaborazione
26 / 44
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 registri
Velocità del bus
Architettura
Stefano Brocchi
Il sistema di elaborazione
27 / 44
Multicore e prestazioni
La frequenza ed il numero di registri all’attuale stato tecnologico
sembrano difficilmente migliorabili.
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).
Inolte, occorre considerare che la velocità complessiva di una
macchina dipende in primo luogo dal suo componente più lento,
occorre tipicamente pensare innanzitutto al cosidetto collo di
bottiglia.
Stefano Brocchi
Il sistema di elaborazione
28 / 44
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
29 / 44
La memoria
Dopo aver analizzato la realizzazioen 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
30 / 44
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
Per mantenere dati su un supporto slegato dal calcolatore, si
utilizzano dischi basati su tecnologia ottica come CD e DVD
Stefano Brocchi
Il sistema di elaborazione
31 / 44
Memorie esterne
Altre alternative per la memoria esterna: le memorie USB
rappresentano una memoria elettronica permanente e riscrivibile
Per copiare grandi quantità di dati a livello industriale si utilizzano a
volte nastri magnetici
Molto lenti ma con grande capacità
Consentito solo l’accesso sequenziale
Stefano Brocchi
Il sistema di elaborazione
32 / 44
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
In contrapposizione, la memoria ad accesso sequenziale che richiede
una lettura dei suoi dati ordinatamente
Stefano Brocchi
Il sistema di elaborazione
33 / 44
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
...
34 / 44
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
35 / 44
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
36 / 44
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)
Stefano Brocchi
Il sistema di elaborazione
37 / 44
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
38 / 44
Utilizzo della cache
Come decidere che dati mantenere nella cache in modo da ottimizare
le prestazioni di sistema ?
Due criteri danno solitamente una buona stima di 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
39 / 44
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
40 / 44
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
41 / 44
Prestazioni
Molti indici per misurare le prestazioni di una memoria, tra cui:
La volatilità
La velocità, suddivisibile in tempo di accesso, il tempo di ciclo e la
velocità di trasferimento
La capacità, anche in proporzione al costo
La modalità di accesso, che può essere casuale, sequenziale, mista, ...
Stefano Brocchi
Il sistema di elaborazione
42 / 44
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
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
43 / 44
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 ? Che
vantaggi e svantaggi ha questa soluzione ?
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
44 / 44