Introduzione La “rivoluzione” informatica Classi di computer Classi

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
Introduzione
• 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 €!
Architetture dei Calcolatori
(lettere A-I)
• 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
Classi di computer
1
Classi di computer (2)
• Tre principali classi di computer (e relativi settori di
mercato), caratterizzate da diverse applicazioni, requisiti
e tecnologie
• Desktop computer
• Diverso tasso di crescita delle tre classi negli ultimi anni
– Embedded computer: 40% per anno
– Desktop computer e server: 9% anno
– 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
Architetture dei Calcolatori 2004/05
Valeria Cardellini
3
1
Dietro un programma
Un sistema elettronico: il computer
• Esperienza da programmatori
• Comunicare con un computer
– Concentrata
•
•
•
•
– Tramite segnali elettrici
Sul linguaggio di programmazione (C, C++, Java, …)
Sul problema da risolvere
Su come risolvere il problema (algoritmo)
Su come progettare il proprio sistema software
• Uso di un alfabeto binario
– Sistema in base 2: cifre 0 e 1 (bit = Binary digiT)
• Comandi al computer
• Il programmatore basa il proprio lavoro su vari strati
di sistemi software, organizzati in modo gerarchico
– Istruzioni
– Rappresentate da numeri
• Il sistema operativo
• Il compilatore
• …
• Esempio: la sequenza di bit 1000110010100000
– Rappresenta l’istruzione binaria “somma due numeri”
• Per poter scrivere un programma efficiente occorre
conoscere l’architettura dei calcolatori
Architetture dei Calcolatori 2004/05
Valeria Cardellini
4
Architetture dei Calcolatori 2004/05
Valeria Cardellini
5
Un programma in assembler
Dalle istruzioni in binario all’assembler
swap:
• Un esempio di traduzione
• Programmazione in linguaggio macchina binario
• Per semplificare e velocizzare: si usa un
programma assemblatore che
• Da un programma in
assembler MIPS ad un
programma in linguaggio
macchina binario
– 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
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
• Ad esempio
00000000101000010000000000011000
– L’assemblatore prende un’istruzione del tipo: add A, B
– La traduce in 1000110010100000
00000000100011100001100000100001
10001100011000100000000000000000
10001100111100100000000000000100
10101100111100100000000000000000
10101100011000100000000000000100
Architetture dei Calcolatori 2004/05
Valeria Cardellini
6
Architetture dei Calcolatori 2004/05
Valeria Cardellini
00000011111000000000000000001000
7
2
Da un linguaggio di programmazione
ad alto livello all’assembler
Il processo di traduzione completo
• 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
compilatore
Programma in
linguaggio ad alto livello
– Offre astrazioni notevoli
•
•
•
•
swap:
swap(int v[], int k)
{
int temp;
temp = v[k];
v[k] = v[k+1];
v[k+1] = temp;
}
Variabili, tipizzazione dei dati
Procedure, funzioni
Programmazione ad oggetti
Gestione di eccezioni
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
– Aumenta la produttività del programmatore
– Permette al programma di essere indipendente dal computer
sul quale viene sviluppato
00000000100011100001100000100001
Programma in linguaggio 10001100011000100000000000000000
macchina binario (MIPS) 10001100111100100000000000000100
10101100111100100000000000000000
Architetture dei Calcolatori 2004/05
Valeria Cardellini
8
Architetture dei Calcolatori 2004/05
Valeria Cardellini
10101100011000100000000000000100
00000011111000000000000000001000 9
Architettura del set di istruzioni,
organizzazione e hardware
Il meccanismo di astrazione
• L’astrazione permette di progettare a livelli
• L’architettura del set di istruzioni di un calcolatore
– Ogni livello conosce solamente quello che lo strato
immediatamente sottostante mette a disposizione ed offre dei
servizi al livello immediatamente superiore
– 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)
• E’ un principio di progettazione universale in informatica
– Progettazione software
• Livelli di rete TCP/IP, gerarchia ISO/OSI
• Organizzazione del calcolatore
– Progettazione hardware
– 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
• 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
• 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
10
Architetture dei Calcolatori 2004/05
Valeria Cardellini
11
3
L’architettura del set di istruzioni
Organizzazione di un calcolatore
• L’architettura del set di istruzioni di un calcolatore si
riferisce a
• 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
– …
– 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
• Il termine “architettura di un calcolatore” copre tutti e tre
gli aspetti (architettura del set di istruzioni, organizzazione
e hardware)
software
instruction set
hardware
Architetture dei Calcolatori 2004/05
Valeria Cardellini
12
Architettura di riferimento dei calcolatori
Processore
Unità di
controllo
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
Unità di
elaborazione
dati
Sottosistema di
interfaccia
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
Sottosistema di interconnessione
Architetture dei Calcolatori 2004/05
Valeria Cardellini
13
Componenti principali di un calcolatore
• Architettura di Von Neumann (1946)
• Un calcolatore deve essere in grado di svolgere i
seguenti compiti
–
–
–
–
–
Architetture dei Calcolatori 2004/05
Valeria Cardellini
14
Architetture dei Calcolatori 2004/05
Valeria Cardellini
15
4
… e loro interconnessione
All’esterno della scatola… il mouse
Processore
Unità di
controllo
Dispositivi
di I/O
Memoria
Unità di
elaborazione
dati
Bus
• Sistema di puntamento
• Inventato negli anni 1960 (da Doug Engelbart)
• Mouse elettromeccanico che usa una sfera
Dispositivi
di I/O
Interfaccia
di I/O
– 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
Interfaccia
di I/O
dati
indirizzi
controllo
• Per i mouse più recenti usata la tecnologia ottica
– Il mouse è in realtà un processore ottico in miniatura
• 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 monitor
17
All’esterno della scatola… il monitor (2)
• Monitor CRT
• Usa la stessa tecnologia del televisore ma con prestazioni
migliori
• 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
– 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)
– Elementi luminosi (pixel) controllati da una matrice di
selezione
– Migliori ma costosi
– Colori: 24 bit per pixel per
le componenti rosso (R),
verde (G), blu (B)
Architetture dei Calcolatori 2004/05
Valeria Cardellini
Architetture dei Calcolatori 2004/05
Valeria Cardellini
18
Architetture dei Calcolatori 2004/05
Valeria Cardellini
19
5
Dentro la scatola… la scheda madre (2)
Dentro la scatola… la scheda madre
Processore Pentium 4
• 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
Processore
• Serve ad assicurare
– La connessione tra le varie componenti
• Il processore, la memoria, la cache, i dispositivi di I/O
Interfaccia
del
processore
– 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à
Slot bus I/O
M
e
m
o
r
i
a
Disco e
interfaccia
USB
Grafica
– Controller hard disk
– Scheda audio/video integrata
Architetture dei Calcolatori 2004/05
Valeria Cardellini
20
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
21
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)
– 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)
– Il tempo di accesso è costante ed indipendente dall’indirizzo
della cella a cui si vuole accedere e dalla sequenza dei
precedenti accessi
• 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
• Memoria volatile: il contenuto delle celle viene perso
ad ogni interruzione della corrente di alimentazione
• 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
Architetture dei Calcolatori 2004/05
Valeria Cardellini
22
Architetture dei Calcolatori 2004/05
Valeria Cardellini
23
6
Dentro la scatola… il disco rigido (2)
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
Testina
Motore per la rotazione dei dischi
• Basata su tecnologia magnetica/ottica o un mix
• Esempi
• Costituito da un insieme di piatti rotanti (da 1 a 15)
• Piatti rivestiti di una superficie magnetica
• Esiste una testina (bobina) per ogni faccia
– 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
– 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)
24
L’organizzazione dei dati sul disco
Architetture dei Calcolatori 2004/05
Valeria Cardellini
25
L’organizzazione dei dati sul disco rigido (2)
tracce
• Nei dischi più vecchi
– Ogni traccia conteneva lo stesso numero di settori
settori
– Le tracce esterne (più lunghe) memorizzavano informazioni con
densità minore
traccia
• Nei dischi recenti
• Suddivisione della superficie del disco in anelli concentrici, detti tracce
• Registrazione seriale su tracce concentriche
– 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
– 1000-5000 tracce
• Tracce adiacenti separate da spazi
• Una zona contiene lo stesso numero di settori per traccia
• 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
– Più settori per traccia nelle zone esterne
rispetto a quelle interne
– Densità di registrazione (quasi) costante
Architetture dei Calcolatori 2004/05
Valeria Cardellini
27
7
Lettura/scrittura di un disco
Relazione tra tecnologia e informatica
• La tecnologia è alla base della rapidissima evoluzione
dell’informatica
• Evoluzione rapidissima
• 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
– Prestazioni relative per unità di costo delle tecnologie usate nei
computer
28
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
Legge di Moore per CPU
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
• Più transistor in una CPU
significano:
• 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
Densità logica dei microprocessori
30
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
8
Evoluzione della tecnologia
Capacità di un chip di
memoria (DRAM)
Anno Dimensione
1980
64 Kb
1983
256 Kb
1986
1989
1992
1 Mb
4 Mb
16 Mb
1996
1999
64 Mb
256 Mb
2002
512 Mb
Il processo di produzione
• Il silicio è un semiconduttore
Processore
• 2X in velocità ogni 1,5 anni (dal 1985)
– Non conduce bene l’elettricità
• E’ possibile modificare il silicio in modo che
• 100X in prestazioni nell’ultimo
decennio
– 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)
Memoria
• Capacità DRAM: 2X ogni 2 anni (dal
1996)
• 64X in miglioramento della dimensione
nell’ultimo decennio
Disco
• Capacità: 2X ogni anno (dal 1997)
• Il processo di produzione
– Parte da un lingotto di silicio
– Tagliato orizzontalmente in wafer (2mm di spessore)
– Tagliato in die (chip)
• 250X in dimensione nell’ultimo
decennio
Architetture dei Calcolatori 2004/05
Valeria Cardellini
32
Il processo di produzione (2)
Architetture dei Calcolatori 2004/05
Valeria Cardellini
33
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
34
Architetture dei Calcolatori 2004/05
Valeria Cardellini
35
9
Le principali pietre miliari
Quasi tutta
l’evoluzione ha
avuto luogo negli
ultimi 55 anni
Architetture dei Calcolatori 2004/05
Valeria Cardellini
36
10