Introduzione La “rivoluzione” informatica

Introduzione
Architetture dei Calcolatori
(lettere A-I)
La “rivoluzione” informatica
• Dopo la rivoluzione agricola e quella industriale
– Nascita della “Società della Informazione”
• Innovazione e progresso senza precedenti
– Se l’industria dei trasporti avesse avuto la stessa rapida
evoluzione della tecnologia informatica
• Oggi sarebbe possibile volare in 5 secondi da Roma a Stoccolma
con 50 centesimi!
– Oggi, con meno di 1000 € si acquista un PC che ha migliori
prestazioni, maggiore quantità di memoria e maggiori dimensioni
del disco di un computer acquistato nel 1980 per 1000000 €!
• Non è tutto “rose e fiori”
– Sviluppo disordinato per la veloce obsolescenza
– Necessario un processo di aggiornamento continuo
• Hardware, software ed anche livello di conoscenza delle persone
Architetture dei Calcolatori 2004/05
Valeria Cardellini
1
1
Classi di computer
• Tre principali classi di computer (e relativi settori di
mercato), caratterizzate da diverse applicazioni, requisiti
e tecnologie
• Desktop computer
– Più nota, tende ad ottimizzare il rapporto prezzo/prestazioni per
un singolo utente
• Server
– Fornitura di servizi a larga scala, efficienti, affidabili, disponibili e
scalabili (accelerazione dovuta alla rapida diffusione dei servizi
basati sul Web); caratterizzata dal più ampio range di capacità
computazionale e costo
• Embedded computer
– Più diffusa, maggiore tasso di crescita nel mercato; presenta il
più ampio range di applicazioni e prestazioni (ad es. sofisticati
router di rete, telefoni cellulari); spesso caratterizzata da requisiti
real-time (massimo tempo di esecuzione consentito) e di
consumo elettrico
Architetture dei Calcolatori 2004/05
Valeria Cardellini
2
Classi di computer (2)
• Diverso tasso di crescita delle tre classi negli ultimi anni
– Embedded computer: 40% per anno
– Desktop computer e server: 9% anno
Architetture dei Calcolatori 2004/05
Valeria Cardellini
3
2
Dietro un programma
• Esperienza da programmatori
– Concentrata
•
•
•
•
Sul linguaggio di programmazione (C, C++, Java, …)
Sul problema da risolvere
Su come risolvere il problema (algoritmo)
Su come progettare il proprio sistema software
• Il programmatore basa il proprio lavoro su vari strati
di sistemi software, organizzati in modo gerarchico
• Il sistema operativo
• Il compilatore
• …
• Per poter scrivere un programma efficiente occorre
conoscere l’architettura dei calcolatori
Architetture dei Calcolatori 2004/05
Valeria Cardellini
4
Un sistema elettronico: il computer
• Comunicare con un computer
– Tramite segnali elettrici
• Uso di un alfabeto binario
– Sistema in base 2: cifre 0 e 1 (bit = Binary digiT)
• Comandi al computer
– Istruzioni
– Rappresentate da numeri
• Esempio: la sequenza di bit 1000110010100000
– Rappresenta l’istruzione binaria “somma due numeri”
Architetture dei Calcolatori 2004/05
Valeria Cardellini
5
3
Dalle istruzioni in binario all’assembler
• Programmazione in linguaggio macchina binario
• Per semplificare e velocizzare: si usa un
programma assemblatore che
– Prende in ingresso un programma scritto in assembler
• Linguaggio composto da istruzioni simboliche che
corrispondono a istruzioni binarie
• Genera il corrispondente programma in linguaggio macchina
• Ad esempio
– L’assemblatore prende un’istruzione del tipo: add A, B
– La traduce in 1000110010100000
Architetture dei Calcolatori 2004/05
Valeria Cardellini
6
Un programma in assembler
swap:
• Un esempio di traduzione
• Da un programma in
assembler MIPS ad un
programma in linguaggio
macchina binario
muli $2, $5, 4
add $2, $4, $2
lw $15, 0($2)
lw $16, 4($2)
sw $16, 0($2)
sw $15, 4($2)
jr $31
assemblatore
00000000101000010000000000011000
00000000100011100001100000100001
10001100011000100000000000000000
10001100111100100000000000000100
10101100111100100000000000000000
10101100011000100000000000000100
Architetture dei Calcolatori 2004/05
Valeria Cardellini
00000011111000000000000000001000
7
4
Da un linguaggio di programmazione
ad alto livello all’assembler
• Una semplificazione ulteriore
– Un programma compilatore traduce da un linguaggio di
programmazione ad alto livello in linguaggio assembler
• Un linguaggio di programmazione ad alto livello
– Offre astrazioni notevoli
•
•
•
•
Variabili, tipizzazione dei dati
Procedure, funzioni
Programmazione ad oggetti
Gestione di eccezioni
– Aumenta la produttività del programmatore
– Permette al programma di essere indipendente dal computer
sul quale viene sviluppato
Architetture dei Calcolatori 2004/05
Valeria Cardellini
8
Il processo di traduzione completo
swap:
swap(int v[], int k)
{
int temp;
temp = v[k];
v[k] = v[k+1];
v[k+1] = temp;
}
compilatore
Programma in
linguaggio ad alto livello
Programma in
linguaggio
assembler (MIPS)
muli $2, $5, 4
add $2, $4, $2
lw $15, 0($2)
lw $16, 4($2)
sw $16, 0($2)
sw $15, 4($2)
jr $31
assemblatore
00000000101000010000000000011000
00000000100011100001100000100001
Programma in linguaggio
macchina binario (MIPS)
10001100011000100000000000000000
10001100111100100000000000000100
10101100111100100000000000000000
Architetture dei Calcolatori 2004/05
Valeria Cardellini
10101100011000100000000000000100
000000111110000000000000000010009
5
Il meccanismo di astrazione
• L’astrazione permette di progettare a livelli
– Ogni livello conosce solamente quello che lo strato
immediatamente sottostante mette a disposizione ed offre dei
servizi al livello immediatamente superiore
• E’ un principio di progettazione universale in informatica
– Progettazione software
• Livelli di rete TCP/IP, gerarchia ISO/OSI
– Progettazione hardware
• Progettazione per moduli e sottosistemi
• Nella programmazione, il linguaggio ad alto livello
astrae e semplifica le complicazioni del linguaggio
assembler; a sua volta, il linguaggio assembler svolge la
stessa funzione verso il linguaggio macchina
Architetture dei Calcolatori 2004/05
Valeria Cardellini
10
Architettura del set di istruzioni,
organizzazione e hardware
• L’architettura del set di istruzioni di un calcolatore
– Descrive le caratteristiche del sistema che hanno un’influenza
diretta sull’esecuzione di un programma
– Si tratta della parte visibile al programmatore (anche ai
compilatori)
• Organizzazione del calcolatore
– Si riferisce alle unità operazionali ed alla loro interconnessione
ad alto livello
– E’ la parte del sistema che realizza le specifiche dell’architettura
del set di istruzioni
• Hardware del calcolatore
– Si riferisce alle specifiche del calcolatore, inclusi i dettagli sul
livello logico-digitale e la tecnologia di packaging
Architetture dei Calcolatori 2004/05
Valeria Cardellini
11
6
L’architettura del set di istruzioni
• L’architettura del set di istruzioni di un calcolatore si
riferisce a
– Insieme delle istruzioni
– Numero di bit che rappresentano tipi di dati
– Tecniche di indirizzamento della memoria, …
... the attributes of a [computing] system as seen by the programmer, i.e.
the conceptual structure and functional behavior, as distinct from the
organization of the data flows and controls of the logic design, and the
physical implementation.
– Amdahl, Blaaw, and Brooks (1964)
L’insieme delle
istruzioni rappresenta
un’interfaccia critica tra
l’hardware ed il
software di basso livello
software
instruction set
hardware
Architetture dei Calcolatori 2004/05
Valeria Cardellini
12
Organizzazione di un calcolatore
• L’organizzazione di un calcolatore si riferisce a
– Capacità e caratteristiche prestazionali delle principali unità
funzionali che compongono il sistema (ad esempio registri, ALU, ...)
– Segnali di controllo scambiati tra le diverse unità funzionali che
compongono il sistema
– Modo in cui le unità funzionali sono interconnesse
– Organizzazione del sottosistema di memorizzazione
– …
• Il termine “architettura di un calcolatore” copre tutti e tre
gli aspetti (architettura del set di istruzioni, organizzazione
e hardware)
Architetture dei Calcolatori 2004/05
Valeria Cardellini
13
7
Architettura di riferimento dei calcolatori
• Architettura di Von Neumann (1946)
• Un calcolatore deve essere in grado di svolgere i
seguenti compiti
–
–
–
–
–
Memorizzare i dati sui quali operare
Memorizzare sequenze di istruzioni
Eseguire le istruzioni sui dati
Controllare il flusso di esecuzione
Comunicare con gli utenti e con altri dispositivi
Sottosistema di
elaborazione
Sottosistema di
memorizzazione
Sottosistema di
interfaccia
Sottosistema di interconnessione
Architetture dei Calcolatori 2004/05
Valeria Cardellini
14
Componenti principali di un calcolatore
Processore
Unità di
controllo
Unità di
elaborazione
dati
Dispositivi
di input
Memoria
Tastiera
Mouse
Disco
Monitor
Dispositivi
di output
Stampante
• Processore o unità centrale di elaborazione (Central Processing
Unit – CPU)
• Memoria principale (Main Memory – MM)
• Dispositivi di Input/Output (I/O) e loro interfacce
Architetture dei Calcolatori 2004/05
Valeria Cardellini
15
8
… e loro interconnessione
Processore
Unità di
controllo
Unità di
elaborazione
dati
Bus
Dispositivi
di I/O
Dispositivi
di I/O
Interfaccia
di I/O
Interfaccia
di I/O
Memoria
dati
indirizzi
controllo
• Bus di sistema: collega i componenti principali di un calcolatore
(linee dati, indirizzo, controllo)
Architetture dei Calcolatori 2004/05
Valeria Cardellini
16
All’esterno della scatola… il mouse
• Sistema di puntamento
• Inventato negli anni 1960 (da Doug Engelbart)
• Mouse elettromeccanico che usa una sfera
– La rotazione della sfera fa scorrere due rotelle lungo gli assi x e y
– La composizione degli spostamenti delle rotelle determina lo
spostamento effettivo
– 3 byte inviati ogni volta che il mouse fa un certo spostamento
minimo:
1 - Spostamento sull’asse x
2 - Spostamento sull’asse y
3 - Posizione dei bottoni
• Per i mouse più recenti usata la tecnologia ottica
– Il mouse è in realtà un processore ottico in miniatura
Architetture dei Calcolatori 2004/05
Valeria Cardellini
17
9
All’esterno della scatola… il monitor
• Monitor CRT
• Usa la stessa tecnologia del televisore ma con prestazioni
migliori
– Tubo a raggi catodici (Cathode Ray Tube – CRT)
• L’immagine viene scandita da un raggio su uno schermo
rivestito di fosfori
– Refresh rate: frequenza con cui i quadri sono riprodotti (es. 85 Hz)
• L’immagine è composta da una matrice di pixel
– Risoluzione dello
schermo: numero di pixel
(es. 1024x768)
– Colori: 24 bit per pixel per
le componenti rosso (R),
verde (G), blu (B)
Architetture dei Calcolatori 2004/05
Valeria Cardellini
18
All’esterno della scatola… il monitor (2)
• Monitor LCD
• Basato sulla conduzione di luce polarizzata da parte
dei cristalli liquidi (Liquid Crystal Display - LCD)
• Il pixel LCD non è la sorgente della luce, bensì
controlla la trasmissione della luce
• Conduzione influenzata da campi elettrici
• Campi generati da elettrodi trasparenti
• Display a matrice attiva
– Elementi luminosi (pixel) controllati da una matrice di
selezione
– Migliori ma costosi
Architetture dei Calcolatori 2004/05
Valeria Cardellini
19
10
Dentro la scatola… la scheda madre
• La base della struttura è costituita dalla scheda madre
(motherboard)
• Contiene circuiti integrati o chip
– Il processore, la memoria, la cache, i connettori per i dispositivi di
I/O
• Serve ad assicurare
– La connessione tra le varie componenti
• Il processore, la memoria, la cache, i dispositivi di I/O
– L’alimentazione a tutte le componenti
– Controllo dello stato della macchina
• Il bus è costituito da una serie di piste sul circuito
stampato
• In genere implementa anche alcune funzionalità
– Controller hard disk
– Scheda audio/video integrata
Architetture dei Calcolatori 2004/05
Valeria Cardellini
20
Dentro la scatola… la scheda madre (2)
Processore Pentium 4
Processore
Interfaccia
del
processore
Slot bus I/O
Architetture dei Calcolatori 2004/05
Valeria Cardellini
M
e
m
o
r
i
a
Disco e
interfaccia
USB
Grafica
21
11
Dentro la scatola… la memoria principale
• Contiene sia le istruzioni che i dati necessari ai programmi
in esecuzione
• Memorizzazione binaria (bit) di istruzioni e dati
• L’unità di misura della capacità di memoria è il bit
– In genere si adotta il byte (pari a 8 bit) ed i suoi multipli
• Kbyte (210 = 1024 byte), Mbyte (220 = 1048576 byte), Gbyte (230 =
1073741824 byte), Tbyte (240 byte)
• Caratterizzata anche dalla dimensione di ogni singolo
elemento (cella o parola) che può essere trasferito
– Da 32 bit a 128 bit nei calcolatori più recenti
• Ad ogni parola di memoria è associato un indirizzo
composto da k bit, tramite il quale il processore accede
all’informazione memorizzata nella parola
• I 2k indirizzi (corrispondenti a 2k parole) costituiscono lo
spazio di indirizzamento del calcolatore
– Indirizzo a 32 bit → spazio di indirizzamento di 232 o 4G parole
Architetture dei Calcolatori 2004/05
Valeria Cardellini
22
Caratteristiche della memoria principale
• Tempo di accesso in memoria: tempo necessario per
rispondere ad una richiesta di lettura o scrittura
• Memoria ad accesso casuale (Random Access
Memory - RAM)
– Il tempo di accesso è costante ed indipendente dall’indirizzo
della cella a cui si vuole accedere e dalla sequenza dei
precedenti accessi
• Memoria volatile: il contenuto delle celle viene perso
ad ogni interruzione della corrente di alimentazione
Architetture dei Calcolatori 2004/05
Valeria Cardellini
23
12
Dentro la scatola… il disco rigido
• Memoria secondaria (o di massa)
– Non volatile
• Non necessita di alimentazione per mantenere i dati
memorizzati
– Di grande capacità
– Economica
• Basata su tecnologia magnetica/ottica o un mix
• Esempi
– Hard disk (disco rigido o magnetico)
• Confezionati in un package che unisce diversi dischi
–
–
–
–
Dischi ottici: CD, DVD
Memorie FLASH removibili
Floppy e Zip drive
Nastri magnetici
Architetture dei Calcolatori 2004/05
Valeria Cardellini
24
Dentro la scatola… il disco rigido (2)
Testina
Motore per la rotazione dei dischi
• Costituito da un insieme di piatti rotanti (da 1 a 15)
• Piatti rivestiti di una superficie magnetica
• Esiste una testina (bobina) per ogni faccia
– Generalmente piatti a doppia faccia
• Le testine di facce diverse sono collegate tra di loro e si
muovono contemporaneamente
• Velocità di rotazione costante (ad es. 7200 RPM)
Architetture dei Calcolatori 2004/05
Valeria Cardellini
25
13
L’organizzazione dei dati sul disco
tracce
settori
traccia
• Suddivisione della superficie del disco in anelli concentrici, detti tracce
• Registrazione seriale su tracce concentriche
– 1000-5000 tracce
• Tracce adiacenti separate da spazi
• Ciascuna traccia è divisa in settori
– Il settore è la più piccola unità che può essere trasferita (scritta o letta)
– Centinaia di settori per traccia, generalmente di lunghezza fissa (ad es., 512
byte)
– Il settore contiene, tra l’altro, un ID del settore, i dati e un codice di correzione
di errore: la capacità formattata scende del 15%
• La stessa traccia su piatti diversi forma un cilindro
Architetture dei Calcolatori 2004/05
Valeria Cardellini
26
L’organizzazione dei dati sul disco rigido (2)
• Nei dischi più vecchi
– Ogni traccia conteneva lo stesso numero di settori
– Le tracce esterne (più lunghe) memorizzavano informazioni con
densità minore
• Nei dischi recenti
– Per aumentare le prestazioni del disco, si utilizzano maggiormente
le tracce esterne: zoned bit recording (o multiple zone recording)
– Tracce raggruppate in zone sulla base della loro distanza dal centro
• Una zona contiene lo stesso numero di settori per traccia
– Più settori per traccia nelle zone esterne
rispetto a quelle interne
– Densità di registrazione (quasi) costante
Architetture dei Calcolatori 2004/05
Valeria Cardellini
27
14
Lettura/scrittura di un disco
• Il processo di lettura/scrittura è composta da tre fasi:
- Posizionamento della testina sul cilindro desiderato (tempo di
posizionamento o seek)
• Dischi di diametro piccolo permettono di ridurre il tempo di
posizionamento
- Attesa che il settore desiderato ruoti sotto la testina di
lettura/scrittura (latenza di rotazione)
- Operazione di lettura o scrittura di un settore (tempo di
trasferimento)
Architetture dei Calcolatori 2004/05
Valeria Cardellini
28
Relazione tra tecnologia e informatica
• La tecnologia è alla base della rapidissima evoluzione
dell’informatica
• Evoluzione rapidissima
– Prestazioni relative per unità di costo delle tecnologie usate nei
computer
Anno
Tecnologia
Prestazioni
1951
Valvola
1
1965
Transistor
35
1975
Circuito integrato
900
1995
Circuito integrato a
larghissima scala
2.400.000
2005
Circuito integrato a
ultra scala
6.200.000.000
Architetture dei Calcolatori 2004/05
Valeria Cardellini
29
15
I circuiti integrati
• Un transistor è un interruttore (on/off) pilotato da segnali
elettrici
• Un circuito integrato combina un insieme di transistor su
un pezzo di silicio (chip)
• Rapido aumento della capacità di integrare
– Un maggior numero di componenti su aree via via più piccole
• Legge di Moore
– Il numero di transistor su di un chip raddoppia ogni 18 mesi
– Circa un aumento del 60% all’anno (quadruplica ogni 3 anni)
– Conseguenze della legge di Moore
• Aumento della capacità dei chip di memoria
• Aumento della capacità delle CPU
Architetture dei Calcolatori 2004/05
Valeria Cardellini
30
Legge di Moore per CPU
• Più transistor in una CPU
significano:
Densità logica dei microprocessori
Architetture dei Calcolatori 2004/05
Valeria Cardellini
– Eseguire direttamente
istruzioni più complesse
– Maggiore memoria sul chip
(cache)
– Maggiore parallelismo
interno
• N.B. Altro fattore tecnologico
decisivo è la frequenza di
funzionamento
31
16
Evoluzione della tecnologia
Capacità di un chip di
memoria (DRAM)
Anno Dimensione
1980
64 Kb
1983
256 Kb
1986
1 Mb
1989
4 Mb
1992
16 Mb
1996
64 Mb
1999
256 Mb
2002
512 Mb
Processore
• 2X in velocità ogni 1,5 anni (dal 1985)
• 100X in prestazioni nell’ultimo
decennio
Memoria
• Capacità DRAM: 2X ogni 2 anni (dal
1996)
• 64X in miglioramento della dimensione
nell’ultimo decennio
Disco
• Capacità: 2X ogni anno (dal 1997)
• 250X in dimensione nell’ultimo
decennio
Architetture dei Calcolatori 2004/05
Valeria Cardellini
32
Il processo di produzione
• Il silicio è un semiconduttore
– Non conduce bene l’elettricità
• E’ possibile modificare il silicio in modo che
– Si comporti da conduttore
– Si comporti come un isolante
– Si comporti come un conduttore o isolante a seconda delle
condizioni (come un interruttore o transistor)
• Il processo di produzione
– Parte da un lingotto di silicio
– Tagliato orizzontalmente in wafer (2mm di spessore)
– Tagliato in die (chip)
Architetture dei Calcolatori 2004/05
Valeria Cardellini
33
17
Il processo di produzione (2)
Architetture dei Calcolatori 2004/05
Valeria Cardellini
34
Evoluzione dei calcolatori
• Prima fase: macchine meccaniche
– Pascaline di Pascal (1632-1662), macchina differenziale e
macchina analitica di Babbage (1792-1871)
• Seconda fase: appare l’elettronica
– Relè, tubi a vuoto, transistor
• Terza fase: computer digitali
• Quarta fase: networking
• Quinta fase: quantum computing?
Architetture dei Calcolatori 2004/05
Valeria Cardellini
35
18
Le principali pietre miliari
Quasi tutta
l’evoluzione ha
avuto luogo negli
ultimi 55 anni
Architetture dei Calcolatori 2004/05
Valeria Cardellini
36
19