architettura dei calcolatori - Dipartimento di Ingegneria Informatica e

ARCHITETTURA DEI
CALCOLATORI
Introduzione
2
z
z
Che cos’è un calcolatore?
Come funziona un calcolatore?
z
è possibile rispondere a queste domande in molti
modi, ciascuno relativo a un diverso punto di vista
z
in questo corso, il punto di vista prevalente è quello
del calcolatore come macchina programmabile, ovvero
in grado di eseguire programmi
Fondamenti di Informatica
1
Che cos’è un calcolatore?
3
“il calcolatore è un esecutore di programmi”
z punto di vista degli utenti finali
z viene considerato l’uso del calcolatore
“il calcolatore è un sistema”
z punto di vista funzionale
z viene considerato il suo funzionamento e la sua
architettura
“il calcolatore è una macchina programmabile”
z punto di vista della programmazione
Fondamenti di Informatica
Calcolatori e applicazioni
4
z
Che cos’è un calcolatore?
z
z
un calcolatore è una macchina programmabile, ovvero in grado
di eseguire programmi
Questa definizione descrive, in parte, il punto di vista
degli utenti dei calcolatori
z
z
l’utente di un calcolatore interagisce con il calcolatore attraverso
una o più applicazioni
una applicazione (o programma applicativo o programma)
consente di far svolgere al calcolatore una molteplicità di
operazioni
z
ciascuna operazione di una applicazione costituisce uno
strumento per l’utente dell’applicazione, da utilizzare per
perseguire un certo scopo
Fondamenti di Informatica
2
Tipologie di applicazioni informatiche
5
z
Esistono moltissime tipologie di applicazioni
per i calcolatori
z
dai giochi alla gestione della telefonia
z
dalla gestione di immagini e documenti alla possibilità
di comunicare con altre persone e calcolatori
z
dalla gestione alla simulazione di sistemi complessi
z
dal supporto delle attività individuali alla gestione dei
sistemi informativi di grandi organizzazioni
Fondamenti di Informatica
Applicazioni e risoluzione di problemi
6
z
La possibilità di poter eseguire su un medesimo calcolatore
applicazioni diverse rende il calcolatore una macchina che può
essere utilizzata da un utente per la risoluzione di problemi
z
z
un utente può risolvere un problema usando una applicazione e un
calcolatore se è in grado di fornire all’applicazione eseguita dal
calcolatore le istruzioni dettagliate di come il problema possa essere
risolto
Dal punto di vista dell’utente, con riferimento all’esecuzione di una
applicazione
z le istruzioni che è possibile richiedere al calcolatore di eseguire
sono quelle corrispondenti alle richieste di esecuzione delle
operazioni fornite dall’applicazione
z ciascuna applicazione può essere caratterizzata
z
z
dall’insieme delle operazioni che fornisce (e dalle regole per
usarle)
dalla tipologia di informazioni che permette di gestire
Fondamenti di Informatica
3
Uso di applicazioni
7
z
Per usare una applicazione, l’utente deve conoscere
l’insieme delle operazioni che l’applicazione fornisce,
comprenderne il significato e saperne richiedere
l’esecuzione
z
la capacità di comprendere e usare una applicazione è
abbastanza indipendente dalla comprensione del funzionamento
del calcolatore
z
è utile comprendere i principi e i meccanismi su cui è basata
l’interazione con il calcolatore, e in particolare l’organizzazione e
l’uso delle interfacce grafiche
Fondamenti di Informatica
Applicazioni e interfacce
8
z
Una applicazione viene utilizzata tramite la sua
interfaccia utente
z l’interfaccia di una applicazione è il mezzo di
interazione tra l’utente (utente dell’applicazione)
e il calcolatore (esecutore dell’applicazione)
z in generale, le applicazioni moderne dispongono di
interfacce utente grafiche (GUI)
z
z
l’interazione con una GUI avviene ad esempio selezionando
menu e bottoni con il mouse
alcune applicazioni sono basate su una interfaccia a
caratteri
z
in questo caso, l’interazione può avvenire mediante la
digitazione di una sequenza di comandi
Fondamenti di Informatica
4
Architettura dei calcolatori
9
z
Che cos’è un calcolatore? Come funziona un
calcolatore?
z
z
z
un calcolatore è un sistema
un sistema è un oggetto costituito da molte parti (componenti)
che interagiscono, cooperando, al fine di ottenere un certo
comportamento
Studiare l’architettura di un sistema vuol dire
z
z
z
individuare ciascun componente del sistema
comprendere i principi generali di funzionamento di ciascun
componente
comprendere come i vari componenti interagiscono tra di loro
Fondamenti di Informatica
Hardware e software
10
z
La prima decomposizione di un calcolatore è
relativa alle seguenti macro-componenti:
hardware
z
la struttura fisica del calcolatore, costituita da
componenti elettronici ed elettromeccanici
software
z
z
l’insieme dei programmi che consentono all’hardware
di svolgere dei compiti utili
il software comprende il software di base (tra cui il
sistema operativo) e il software applicativo
Fondamenti di Informatica
5
Organizzazione a livelli
11
z
Hardware e software sono
organizzati a livelli (o strati)
ciascun livello
z
z
z
corrisponde a una macchina (reale
o virtuale) in grado di eseguire un
proprio insieme di operazioni
fornisce un insieme di operazioni
più semplici da utilizzare rispetto a
quelle del livello sottostante
è realizzato in termini dell’insieme di
operazioni fornite dal livello
immediatamente sottostante
Software applicativo
Software di base
Hardware
Fondamenti di Informatica
Software e macchine virtuali
12
z
In generale, il software ha lo scopo di mostrare ai suoi utenti il
calcolatore come una macchina virtuale più semplice da usare
rispetto all’hardware che viene effettivamente utilizzato
z per macchina virtuale si intende una macchina che fisicamente
non esiste nella realtà, ma di cui si può avere la sensazione
dell’esistenza
z il software di base ha lo scopo di mostrare all’utente il
calcolatore come una macchina virtuale più semplice da gestire e
programmare rispetto all’hardware utilizzato
z il software applicativo mostra all’utente il calcolatore come una
macchina virtuale che può essere utilizzata per la risoluzione di
specifici problemi
z
il software applicativo viene realizzato in termini della macchina
virtuale mostrata dal software di base, e dipende solo
parzialmente dall’hardware utilizzato
Fondamenti di Informatica
6
Organizzazione a livelli
13
Nell’organizzazione a livelli, l’hardware è l’unica macchina reale,
mentre gli strati software corrispondono a macchine virtuali
z il repertorio di operazioni (chiamate istruzioni) che l’hardware sa
eseguire direttamente è chiamato linguaggio macchina del
calcolatore
z
z
z
le diverse macchine e i relativi insiemi di operazioni sono via via più
astratti
z
z
z
il linguaggio macchina è composto da istruzioni estremamente
elementari, ma che il calcolatore sa eseguire in modo molto
efficiente
nel senso che il significato di ciascuna operazione è sempre più
vicino alla logica dell’utente e più lontano dalla logica del calcolatore
come dispositivo elettronico
è per questo motivo che sono via via più semplici da usare
le diverse macchine sono comunque ugualmente espressive
z
alla fin fine, l’unico responsabile dell’esecuzione del software è
Fondamenti di Informatica
comunque l’hardware disponibile
Tipologie di calcolatori
14
z
Esistono diversi tipi di calcolatori:
z Personal computer
z
z
z
Notebook (portatile)
z
z
z
z
Versione portatile del personal computer
Usualmente dotata di caratteristiche (leggermente) inferiori in
termini di potenza di calcolo e memorizzazione
In alcuni casi la differenza è solo in espandibilità vs portabilità
Handheld computer / PDA / SmartPhone
z
z
z
Dotati di monitor e tastiera separati dall’unità centrale
Dotati di diversi dispositivi di memoria di massa interni o esterni
all’unità centrale
Di dimensioni limitate
Usualmente privi di memorie di massa tradizionali
z Sensori intelligenti
Oggi la tendenza è di avere sistemi sempre più piccoli e integrati
Fondamenti di Informatica
7
Tipologie di calcolatori
15
z
z
z
Workstation
z Versione “potente” del personal computer
z Orientate alle applicazioni grafiche o CAD
z Spesso condivise da più utenti
Mainframe e minicomputer
z calcolatori di elevata potenza di calcolo e memorizzazione
z Orientati all’elaborazione dati per l’intera azienda
z Condivisibili da più utenti (anche contemporaneamente)
Cluster
z Sistemi di calcolo basati sull’aggregazione di più macchine
z Utilizzati per applicazioni computazionalmente pesanti
z
Calcolo numerico, simulazioni, etc
Fondamenti di Informatica
Il calcolatore “fuori”
16
Monitor
Stampante
Unità
centrale
Lettore
floppy disk
Mouse
Tastiera
Fondamenti di Informatica
floppy disk
8
Caratteristiche dell’architettura
17
z
Flessibilità
z
z
adatta a svolgere diverse tipologie di compiti
Modularità
z
ogni componente ha una funzione specifica
z
Scalabilità
z
Standardizzazione
z
z
ogni componente può essere sostituito con uno equivalente
componenti facilmente sostituibili in caso di malfunzionamento
z
Riduzione dei costi
z
Semplicità
z
z
grazie alla produzione su larga scala
di installazione ed esercizio del sistema
Fondamenti di Informatica
18
Il calcolatore - modello
funzionale
Õ
Ö
Trasferimento
×Ø
Õ
Ö
Elaborazione
Õ
Ö
Controllo
Memorizzazione
Fondamenti di Informatica
9
19
Il calcolatore:
modello concettuale
2.
Memorizzazione
1.
Elaborazione
Interconnessione
3.
Comunicazione
(interfaccia)
Fondamenti di Informatica
Il calcolatore “dentro”
20
Scheda
video
Memoria RAM
CPU
Hard disk
Fondamenti di Informatica
10
Il calcolatore “dentro”
21
Fondamenti di Informatica
Architettura del calcolatore:
il modello di Von Neumann
22
z
Data la diversità di dispositivi e la complessità
dell’architettura hardware di un calcolatore reale,
serve un modello comune:
Tutte le diverse tipologie di calcolatori sono accomunate
dalla medesima architettura logica
z
Macchina di Von Neumann:
modello semplificato dei calcolatori moderni
z
Von Neumann è stato il progettista (intorno al 1945) del primo
calcolatore in cui i programmi potevano essere memorizzati
anziché codificati mediante cavi e interruttori
Fondamenti di Informatica
11
ARCHITETTURA DI UN ELABORATORE
23
Ispirata al modello della Macchina di Von Neumann
(Princeton, Institute for Advanced Study, anni ’40).
Fondamenti di Informatica
MACCHINA DI VON NEUMANN
24
UNITÀ FUNZIONALI fondamentali
• Processore (CPU)
• Memoria Centrale (RAM & ROM)
• Unità di I/O (ingresso / uscita)
• Bus di sistema
Fondamenti di Informatica
12
CPU & MEMORIA
25
• ALU (Arithmetic & Logic Unit)
• Unità di Controllo
• Registri
Fondamenti di Informatica
UNITÀ DI ELABORAZIONE (CPU)
26
ALU (Arithmetic / Logic Unit)
Esegue le operazioni aritmetiche e logiche elementari
Fondamenti di Informatica
13
UNITÀ DI ELABORAZIONE (CPU)
27
Unità di Controllo (Control Unit): controlla e coordina
l’attività della CPU. (In particolare, controlla il trasferimento dei dati tra memoria e registri e la decodifica e
l’esecuzione delle istruzioni)
Fondamenti di Informatica
UNITÀ DI ELABORAZIONE (CPU)
28
PC
A
B
ALU
IR
Flag
RINT
RI
RD
CTRL
clock
Il clock dà la base dei tempi necessaria per mantenere
il sincronismo fra le operazioni
Fondamenti di Informatica
14
UNITÀ DI ELABORAZIONE (CPU)
29
PC
A
B
ALU
IR
Flag
RINT
RI
RD
CTRL
clock
I registri (qui A, B, PC, Flag,…) sono locazioni usate
per memorizzare dati, istruzioni, o indirizzi all’interno
della CPU. L’accesso ai registri è molto veloce.
Fondamenti di Informatica
Arithmetic Logic Unit
30
PC
A
B
ALU
IR
Flag
RINT
RI
RD
CTRL
clock
Esegue operazioni aritmetiche, logiche e confronti sui
dati della memoria centrale o dei registri.
Può essere semplice oppure (più spesso) molto
complessa e sofisticata.
Fondamenti di Informatica
15
31
z
ESEMPIO SEMPLICE:
ALU in grado di eseguire somma, sottrazione,
prodotto, divisione con due operandi contenuti nei
registri A e B.
z
I due operandi vengono caricati nei registri A e B;
2. La ALU viene attivata da un comando inviato dalla CPU che
specifica il tipo di operazione;
3. Nel registro A viene caricato il risultato dell'operazione
eseguita dalla ALU;
4. Il registro FLAG riporta sui suoi bit indicazioni sul risultato
dell'operazione (riporto, segno, etc.).
1.
Alterazione di due bit nel registro Flag:
Fondamenti di Informatica
carry (riporto)
e sign (segno)
I REGISTRI
32
• I registri sono locazioni di memoria interne a
CPU, e come tali molto veloci.
PC
A
B
ALU
IR
Flag
RINT
RI
RD
CTRL
clock
Fondamenti di Informatica
16
I REGISTRI
33
PC
A
B
ALU
IR
Flag
RINT
RI
RD
CTRL
clock
Instruction Register (IR)
Contiene l’istruzione da eseguire.
Fondamenti di Informatica
I REGISTRI
34
PC
A
B
ALU
IR
Flag
RINT
RI
RD
CTRL
clock
Registro Indirizzi (RI)
Contiene l’indirizzo della cella di memoria da selezionare per il trasferimento di un dato con la CPU
Fondamenti di Informatica
17
I REGISTRI
35
PC
A
B
ALU
IR
Flag
RINT
RI
RD
CTRL
clock
Registro Dati (RD) o Accumulatore
Contiene il dato attualmente oggetto di elaborazione e
il risultato al termine dell’esecuzione
Fondamenti di Informatica
I REGISTRI
36
PC
A
B
ALU
IR
Flag
RINT
RI
RD
CTRL
clock
Registro Interruzioni (RINT)
Serve per scopi particolari (non discussi)
Fondamenti di Informatica
18
I REGISTRI
37
PC
A
B
ALU
IR
Flag
RINT
RI
RD
CTRL
clock
Registro dei Flag (Flag)
Ogni flag indica la presenza/assenza di una proprietà
nell’ultimo risultato generato dalla ALU. Altri bit riassumono lo stato del processore.
Fondamenti di Informatica
I REGISTRI
38
PC
A
B
ALU
IR
Flag
RINT
RI
RD
CTRL
clock
Registri di uso generale (A,B,C,...)
Sono usati per contenere sia dati (in particolare, operandi di operazioni aritmetico/logiche) sia indirizzi.
Fondamenti di Informatica
19
I REGISTRI
39
PC
A
B
ALU
IR
Flag
RINT
RI
RD
CTRL
clock
Program Counter (PC)
Indica l’indirizzo della cella di memoria che contiene la
prossima istruzione da eseguire
Fondamenti di Informatica
UNITÀ DI ELABORAZIONE (CPU)
40
La memoria centrale è una collezione di celle numerate, che possono contenere DATI e ISTRUZIONI.
Le istruzioni sono disposte in memoria in celle di indirizzo crescente.
Fondamenti di Informatica
20
UNITÀ DI ELABORAZIONE (CPU)
41
L'unità di controllo fa funzionare l’elaboratore.
Da quando viene acceso a quando è spento, essa
esegue in continuazione il ciclo di prelievo / decodifica / esecuzione (fetch / decode / execute ) .
Fondamenti di Informatica
Tre tipologie di istruzioni
42
z
Istruzioni aritmetico-logiche (Elaborazione dati)
z
z
z
z
Controllo del flusso delle istruzioni
z
z
z
z
Somma, Sottrazione, Divisione, …
And, Or, Xor, …
Maggiore, Minore, Uguale, Minore o uguale, …
Sequenza
Selezione semplice, a due vie, a n vie, …
Ciclo a condizione iniziale, ciclo a condizione finale,
…
Trasferimento di informazione
z
z
Trasferimento dati e istruzioni tra CPU e memoria
Trasferimento dati e istruzioni tra CPU e dispositivi di
ingresso/uscita (attraverso le relative interfacce)
Fondamenti di Informatica
21
Esecuzione delle istruzioni
43
z
Ciclo Fetch–Decode–Execute
(leggi–decodifica–esegui)
1.
2.
3.
4.
5.
6.
7.
Prendi l’istruzione corrente dalla memoria e mettila
nel registro istruzioni (IR).
Incrementa il program counter (PC) in modo che
contenga l’indirizzo dell’istruzione successiva.
Determina il tipo dell’istruzione corrente
(decodifica).
Se l’istruzione usa una parola in memoria,
determina dove si trova.
Carica la parola, se necessario, in un registro della
CPU.
Esegui l’istruzione.
Torna al punto 1 e Fondamenti
inizia adi eseguire
l’istruzione
Informatica
successiva.
Fase di Fetch
44
z
z
si accede alla prossima istruzione (cella il cui indirizzo
è contenuto nel registro PC) ...
… e la si porta dalla memoria centrale, memorizzandola nel Registro Istruzioni (IR)
Fondamenti di Informatica
22
Fase di Decode
45
• si decodifica il tipo dell’istruzione in base al
suo OpCode (codice operativo)
Opcode
OpCode Operazione
1
Somma
2
Sottrazione
…
…
Fondamenti di Informatica
Fase di execute
46
z
z
z
si individuano i dati usati dall’istruzione
si trasferiscono tali dati nei registri opportuni
si esegue l’istruzione.
Fondamenti di Informatica
23
47
Evoluzione delle CPU
CPU
Anno
Frequenza
(MHz)
Dimensione
registri / bus dati
Numero di
transistor
8086
1978
4.77 — 12
8 / 16
29 000
80286
1982
8 — 16
16 / 16
134 000
80386
1986
16 — 33
32 / 32
275 000
80386 SX
1988
16 — 33
32 / 16
275 000
80486
1989
33 — 50
32 / 32
1 200 000
Pentium
1993
60 — 200
32 / 64
3 100 000
Pentium II
1997
233 — 400
32 / 64
7 500 000
Pentium III
1999
450 — 1133
32 / 64
24 000 000
Pentium 4
2000
1600 — 2000
32 / 64
Fondamenti di Informatica
42 000 000
Legge di Moore
48
Osservazione fatta da Gordon Moore nel 1965:
il numero dei transistor per cm2
raddoppia ogni X mesi
In origine X era 12. Correzioni successive hanno
portato a fissare X=18. Questo vuol dire che c’è un
incremento di circa il 60% all’anno.
Fondamenti di Informatica
24
# Transistor [CPU Intel]
49
100 000 000
10 000 000
1 000 000
100 000
1989
1991
1993
1995
1997
1999
Fondamenti di Informatica
Legge di Moore e progresso
50
z
z
z
z
z
Il progresso della tecnologia provoca un aumento del
numero di transistor per cm2 e quindi per chip.
Un maggior numero di transistor per chip permette di
produrre prodotti migliori (sia in termini di prestazioni
che di funzionalità) a prezzi ridotti.
I prezzi bassi stimolano la nascita di nuove applicazioni
(e.g. non si fanno video game per computer da milioni di
$).
Nuove applicazioni aprono nuovi mercati e fanno
nascere nuove aziende.
L’esistenza di tante aziende fa crescere la
competitività che, a sua volta, stimola il progresso
della tecnologia e lo sviluppo di nuove tecnologie.
Fondamenti di Informatica
25
MULTITASKING
51
z
z
z
z
Poiché i registri compendiano tutto lo stato
dell’elaborazione di un certo processo,
salvando in memoria il contenuto di tutti i registri è
possibile accantonare un processo per passare a
svolgerne un altro
ripristinando dalla memoria il contenuto di tutti i
registri precedentemente salvati è possibile ripristinare lo
stato di un processo accantonato, riprendendone
l’esecuzione come se nulla fosse accaduto.
Questa possibilità è ciò che consente a un sistema
operativo di eseguire più compiti “allo stesso tempo”
Fondamenti di Informatica
La memoria
52
z
z
z
Supporto alla CPU: deve fornire alla CPU dati e
istruzioni il più rapidamente possibile
Archivio: deve consentire di archiviare dati e
programmi garantendone la conservazione e la
reperibilità anche dopo elevati periodi di tempo
Diverse esigenze:
z
z
z
velocità per il supporto alla CPU
non volatilità ed elevate dimensioni per l’archivio
Diverse tecnologie
z
z
elettronica: veloce, ma costosa e volatile
magnetica e ottica: non volatile ed economica, ma
molto lenta
Fondamenti di Informatica
26
Criteri di caratterizzazione di una memoria
53
z
Velocità
z
z
z
tempo di accesso (quanto passa tra una richiesta e la relativa risposta)
velocità di trasferimento (quanti byte al secondo si possono trasferire)
Volatilità
z
z
cosa succede quando la memoria non è alimentata?
per quanto tempo i dati vi rimangono immagazzinati?
z
Capacità
z
Costo (per bit)
Modalità di accesso
z
z
z
z
z
z
quanti byte può contenere? qual è la dimensione massima?
diretta (o casuale): il tempo di accesso è indipendente dalla posizione
sequenziale: il tempo di accesso dipende dalla posizione
mista: combinazione dei due casi precedenti
associativa: indicato il dato, la memoria risponde indicando l’eventuale
posizione che il dato occupa in memoria.
Fondamenti di Informatica
La memoria centrale (R.A.M.)
54
z
Mantiene al proprio interno i dati e
le istruzioni dei programmi in esecuzione
z
Memoria ad accesso “casuale”
z
Tecnologia elettronica
z
z
veloce ma volatile e costosa
Due “eccezioni”
z
z
R.O.M.: elettronica ma permanente e di sola lettura
Flash: elettronica ma permanente e riscrivibile
Fondamenti di Informatica
27
DISPOSITIVI DI MEMORIA
55
z
z
z
z
z
RAM: Random Access Memory (ad accesso casuale):
su di essa si possono svolgere operazioni sia di lettura
che di scrittura
ROM: Read Only Memory (a sola lettura): non volatili e
non scrivibili dall’utente (che la ordina con un certo
contenuto); in esse sono contenuti i dati e programmi per
inizializzare il sistema
PROM: Programmable ROM. Si possono scrivere
soltanto una volta, mediante particolari apparecchi (detti
programmatori di PROM).
EPROM: Erasable-Programmable ROM (si cancellano
sottoponendole a raggi ultravioletti).
EEPROM: Electrically-Erasable-PROM (si cancellano
elettricamente).
Fondamenti di Informatica
Indirizzi di memoria
56
z
I bit nelle memorie sono raggruppati in celle:
z
z
z
Ogni cella ha un indirizzo:
z
z
z
z
tutte le celle sono formate dallo stesso numero di
bit;
una cella composta da k bit, è in grado di contenere
una qualunque tra 2k combinazioni diverse di bit.
serve come accesso all’informazione;
in una memoria con N celle gli indirizzi vanno da 0 a
N–1.
La cella è l’unità indirizzabile più piccola.
In quasi tutti i calcolatori è di 8 bit (un byte).
I byte vengono raggruppati in parole (che oggi
sono di 32/64 bit),Fondamenti
su cui
la CPU esegue le
di Informatica
operazioni.
28
Organizzazione della memoria
57
z
Anche gli indirizzi della memoria
rappresentati come numeri binari:
z
z
z
z
sono
un indirizzo di M bit consente di indirizzare 2M celle;
per 6 o 8 celle bastano 3 bit, per 12 celle ne servono
4;
il numero di bit nell’indirizzo determina il numero
massimo di celle indirizzabili nella memoria ed è
indipendente dal numero di bit per cella (una memoria
con 212 celle richiede sempre 12 bit di indirizzo, quale
che sia la dimensione di una cella).
Oggi, RI è lungo tipicamente 32 bit → SPAZIO
INDIRIZZABILE di 4 Gb
Fondamenti di Informatica
Le operazioni da effettuare sulla memoria
58
• Lettura (Read): il contenuto della cella di memoria indirizzata dal Registro Indirizzi è
copiato nel Registro Dati.
0
1
r ea d
RI
RD
(N bit )
2N-1
Fondamenti di Informatica
29
Le operazioni da effettuare sulla memoria
59
• Scrittura (Write): il contenuto del Registro Dati è
copiato nella cella di memoria indirizzata dal
Registro Indirizzi.
0
1
writ e
RI
RD
(N bit )
2N-1
Fondamenti di Informatica
Memoria vs. CPU
60
z
Le CPU sono sempre state più veloci delle memorie
z
z
z
L’accesso alla memoria passa attraverso il bus
z
z
z
z
l’aumento di integrazione ha consentito di realizzare CPU
pipeline e super scalari, molto efficienti e veloci;
nelle memorie è aumentata la capacità più che la velocità.
la frequenza di funzionamento del bus è molto più bassa di
quella della CPU;
il bus può essere impegnato ad effettuare trasferimenti
controllati da dispositivi di I/O “autonomi” (e.g. DMA).
È difficile riordinare le istruzioni in modo da poter
sfruttare i tempi di attesa della memoria.
È possibile fare memorie molto veloci se stanno nel
chip della CPU, ma sono piccole e costose.
Fondamenti di Informatica
30
Il principio di località
61
z
Località spaziale:
quando si accede all’indirizzo A, è molto probabile
che gli accessi successivi richiedano celle vicine ad
A.
z
z
z
le istruzioni del codice vengono in genere lette da locazioni
consecutive della memoria;
gli accessi ad array o a strutture dati sono “vicini”.
Località temporale:
quando si accede all’indirizzo A, è molto probabile
negli accessi successivi si richieda di nuovo la cella
A.
z
z
cicli di istruzioni accedono ripetutamente alle stesse
locazioni di memoria;
istruzioni vicine tendono ad utilizzare le stesse variabili.
Fondamenti di Informatica
Memoria cache
62
velocità
CPU
registri
capacità
Costo (€/bit)
alta
bassa
alto
bassa
alta
basso
Memoria cache
di livello 1 (L1)
Memoria cache
di livello 2 (L2)
Memoria centrale
RAM
Memoria di massa
Hard disk
Fondamenti di Informatica
31
Memoria cache
63
Denominazione
accesso
Capacità
Tempo di
Registri
Cache di livello 1
ns
Cache di livello 2
Memoria centrale
Hard Disk
< 1 KB
2 KB – 64 KB
< 1 ns
256 KB – 2 MB
256 MB – 2 GB
40 GB –300 GB
2 ns
10 ns
10 ms
1
Fondamenti di Informatica
Memoria cache
64
z
La presenza di una memoria cache efficiente
(che, cioè, risponde “al posto della RAM” nel
95-98% dei casi) è fondamentale per le
prestazioni del sistema computer
z
La presenza della cache complica
notevolmente l’architettura di un sistema di
elaborazione
z
z
Problema del rimpiazzo
Problema della scrittura
(coerenza
Fondamenti
di Informaticadei dati)
32
65
La struttura della CPU
Leggi
Unità di controllo
Scrivi
PC
BUS CONTROLLO
o
Periferiche
PSW
IR
Memoria
ocentrale
M
A
R
Indirizzo
BUS INDIRIZZI
M
D
R
Dati
BUS DATI
Registro
Registro
...
Registro
Stato
ALU
Esegui
Operazione
CPU
Il Bus di Sistema interconnette la CPU, la memorie e
le interfacce verso dispositivi periferici (I/O, memoria di
Fondamenti di Informatica
massa, etc.)
Il bus di sistema
66
z
Il bus di sistema collega tra loro i vari elementi del
calcolatore
z
In ogni istante il bus è dedicato a collegare due unità,
una trasmette ed una riceve
z
Il processore seleziona la connessione da attivare e
indica l’operazione da svolgere
z
Approccio master-slave
z
CPU = master
z
Periferiche = slave
Fondamenti di Informatica
33
Il bus di sistema
67
z
Il bus è suddiviso in tre insiemi di linee:
z Bus dati
z
z
Bus indirizzi
z
z
utilizzato per trasferire dati (es. fra memoria e CPU, fra CPU e
interfacce di I/O)
identifica la posizione delle celle di memoria un cui la CPU va a
scrivere o leggere
Bus di controllo
z
in cui transitano i segnali di controllo che consentono di
selezionare le unità coinvolte in un trasferimento dati (sorgente
e destinazione), di definire la direzione dello scambio (scrittura
o lettura), informazioni di temporizzazione
Fondamenti di Informatica
Il bus di sistema: vantaggi e svantaggi
68
z
Semplicità: 1 sola linea di connessione per qualunque # di
dispositivi
z
Estendibilità: nuovi dispositivi possono essere aggiunti tramite
un’interfaccia al bus senza influenzare l’HW preesistente
z
Standardizzabilità: definizione di normative che consentono a
periferiche di costruttori diversi di interagire correttamente
z
Lentezza: l’uso in mutua esclusione del bus inibisce almeno
parzialmente la parallelizzazione delle operazioni di trasferimento di
dati tra dispositivi
z
Limitata capacità: al crescere del numero di dispositivi la presenza
di una sola linea comporta un limite alla capacità di trasferire dati
z
Sovraccarico della CPU: l’unità centrale viene coinvolta in tutte le
operazioni di trasferimento diFondamenti
dati di Informatica
34
Fondamenti di Informatica
69
DISPOSITIVI
PERIFERICI
I dispositivi periferici
70
z
Sono collegati al calcolatore tramite una
circuiteria dedicata
z
z
z
interfaccia dispositivo che consente
all’elaboratore di comunicare con una
periferica (tastiere, mouse, dischi, terminali,
stampanti, ...).
Se la CPU deve gestire anche i periferici si ha
un degrado delle prestazioni
Generalmente i periferici contengono CPU
dedicate, alloggiate fisicamente al loro interno
Fondamenti di Informatica
35
71
Le interfacce
z
z
z
I periferici di diversi costruttori devono essere
intercambiabili, senza modificare i programmi (blocchi
indipendenti)
Le interfacce sono molto diverse tra loro, e dipendono dal tipo di unità perife-rica da connettere.
Sono state definite alcune interfacce standard:
Fondamenti di Informatica
L’interfaccia delle periferiche: standardizzazione
72
z
E’ possibile avere una interfaccia diversa per ogni periferica
z ma è più logico avere delle interfacce standard per periferiche
simili
z
Esempi di interfacce standard:
z
Interfaccia seriale RS-232-C
z
Interfaccia PS2
z
Interfaccia USB (Universal Serial Bus)
z
Interfaccia parallela Centronix
z
Interfaccia ISA
z
Interfaccia SCSI
z
Interfaccia EIDE
Fondamenti di Informatica
36
L'interfaccia seriale
73
z
z
z
E' l'interfaccia più comune e più semplice
Il nome rispecchia la modalità di
comunicazione utilizzata (seriale)
RS232, RS432,… fissano gli standard
(livelli di tensione, piedinatura, temporizzazione,…)
z
z
L'intervallo tra due bit successivi è costante
(velocità di trasmissione)
Il parametro principale è la bit-rate
Fondamenti di Informatica
L'interfaccia parallela
74
z
z
z
I bit vengono inviati tutti insieme, con l'aggiunta
di segnali di controllo
La comunicazione è più veloce, ma occorrono
più fili rispetto alla seriale
Di conseguenza è usata in modo
monodirezionale (stampante, distanze brevi)
Fondamenti di Informatica
37
I periferici più comuni
75
z
Verranno analizzati:
z
z
z
z
z
z
memorie
video
tastiera
sistemi di puntamento (mouse, trackball, joystick,
tavoletta, touch screen)
stampante
plotter
Fondamenti di Informatica
Fondamenti di Informatica
76
LA MEMORIA DI
MASSA
(MAGNETICA)
38
Una gerarchia di memoria
77
Ottenuta per “generalizzazione” dell’applicazione del
principio di località e tipicamente costituita da
1.
2.
3.
4.
5.
registri contenuti nella CPU (qualche KB)
cache (da circa 32KB a circa 1024KB)
memoria principale (da circa 64MB a qualche GB)
dischi fissi (da qualche GB a qualche TB)
nastri magnetici e dischi ottici (da qualche GB a qualche TB
per ogni supporto)
Man mano che ci si sposta verso il basso nella gerarchia
aumenta il valore dei parametri fondamentali:
z
z
z
aumenta il tempo di accesso;
aumenta la capacità di memorizzazione;
ma diminuisce il costo per bit.
Fondamenti di Informatica
Caratteristiche dei diversi livelli
78
Capacità
Velocità
(TA)
€/MByte
registri
~1KB
~1ns
NA
cache
64 ÷ 1024 KB
~10ns
300
RAM
64 ÷ 2048 MB
~100ns
2
HD
8 ÷ 100 GB
~10ms
0.005
~100ms
0.005
nastri/CD ~GB per unità
Fondamenti di Informatica
39
Dischi magnetici
79
z
z
Sono piatti d’alluminio (o di altro materiale) ricoperti
di materiale ferromagnetico.
Fattore di forma (diametro)
z
z
z
sempre più piccolo (consente velocità di rotazione
maggiori);
3.5 pollici per i sistemi desktop e fino a 1 pollice per i
mobili.
Testina di un disco (strumento di lettura/scrittura)
z
z
z
è sospesa appena sopra la superficie magnetica
scrittura: il passaggio di corrente positiva o negativa
attraverso la testina magnetizza la superficie
lettura: il passaggio sopra un’area magnetizzata induce
una corrente positiva o negativa nella testina.
Fondamenti di Informatica
Tracce e settori
80
z
Traccia (track): sequenza circolare di bit scritta mentre il
disco compie una rotazione completa
z
z
z
Settore (sector): parte di una traccia corrispondente a un
settore circolare del disco
z
z
z
z
la larghezza di una traccia dipende dalla dimensione della testina
e dall’accuratezza con cui la si può posizionare; la densità radiale
va da 800 a 2000 tracce per centimetro (5-10 µm per traccia);
tra una traccia e l’altra c’è un piccolo spazio di separazione (gap).
un settore contiene 512 byte di dati, preceduti da un preambolo, e
seguiti da un codice di correzione degli errori;
la densità lineare è di circa 50-100kbit per cm (0.1-0.2 µm per bit);
tra settori consecutivi si trova un piccolo spazio (intersector gap).
Formattazione: operazione che predispone tracce e
settori per la lettura/scrittura
z
un 15% circa dello spazio disco si perde in gap, preamboli e codici
di correzione degli errori.
Fondamenti di Informatica
40
Spazi tra
tracce
Settore
81
Tracce e
settori
Tracce
Spazi tra
record
Fondamenti di Informatica
Schema di un Hard Disk
82
Superficie 7
Testina di
lettura/scrittura
(una per superficie)
Superficie 6
Superficie 5
Superficie 4
Superficie 3
Superficie 2
Superficie 1
Superficie 0
Direzione del
movimento
Le tracce in grigioFondamenti
formano
un “cilindro”
di Informatica
41
Prestazioni dei dischi
83
z
Tempo di acceso (ms o 10-3s)
z
Seek time
z
z
z
Latency
z
z
z
la testina deve arrivare alla traccia giusta;
dipende dalla meccanica (5-15 ms, 1 per tracce adiacenti).
il disco deve ruotare fino a portare il dato nella posizione
giusta;
dipende dalla velocità di rotazione (5400-10800 RPM Æ 2.75.4ms).
Transfer Rate (MBps)
z
Velocità di trasferimento del disco
z
z
z
dipende dalla densità di registrazione e dalla velocità di
rotazione;
un settore di 512 byte richiede fra 25 e 100 µsec (5-20
MB/sec).
Velocità di trasferimento
sistema di controllo
Fondamentidel
di Informatica
z
SCSI vs. EIDE
Floppy disk
84
z
Funzioni:
z
z
z
Struttura analoga a quella di un disco magnetico,
z
z
z
distribuzione software su grande scala (avvento PC);
archiviazione dati.
il disco si ferma quando non è operativo;
l’avvio della rotazione comporta un ritardo di ½ sec.
Caratteristiche tipiche di un floppy da 3.5”
z
z
z
z
Capacità di 1.44 MB
Tracce x settori: 80 x 18
RPM = 300
velocità di trasferimento di 500Kbps
Fondamenti di Informatica
42
Hard Disk IDE/EIDE
85
z
Situazione originaria:
z
z
z
disco contenuto nel PC XT IBM, Seagate da 10 MB con 4 testine,
360 cilindri e 17 settori/traccia, il controllore era in grado di gestire
due unità;
il SO inseriva parametri nei registri CPU e poi chiamava il BIOS
(Basic Input Output System).
IDE (Integrated Drive Electronics)
z
z
controllore integrato nell’unità;
procedure di chiamata del BIOS immutate
z
z
z
4 bit per la testina, 6 bit per il settore e 10 bit per il cilindro;
un’unità poteva avere al massimo 16 testine, 63 settori e 1024
cilindri per un totale di 1.032.192 settori (528 MB);
EIDE (Extended IDE)
z
supportano lo schema LBE (Logical Block Addressing),
Fondamenti di Informatica
Small Computer System Interface –
SCSI (1986)
86
z
z
Richiede un’interfaccia con il bus di sistema
(host adaptor)
Può controllare 8/16 dispositivi (compreso
l’host adaptor), HD, CD-ROM, scanner, ...
z
z
z
Ogni dispositivo è identificato da un ID
I connettori possono essere esterni o interni
Di solito l’ID num. 0 è riservato al disco di
bootstrap
Fondamenti di Informatica
43
Andamento densità HD
[by IBM]
87
Fondamenti di Informatica
Andamento capacità HD
[by IBM]
88
Fondamenti di Informatica
44
Fondamenti di Informatica
89
LA MEMORIA DI
MASSA
(OTTICA)
Dischi ottici
90
z
z
z
z
Lettura ottica basata sulla riflessione (o sulla
mancata riflessione) di un raggio laser.
Densità di registrazione più alte dei dischi
magnetici.
Creati in origine per registrare i programmi
televisivi, poi usati come dispositivi di memoria nei
calcolatori.
Diversi tipi/caratteristiche
z
z
z
z
z
z
CD-ROM
CD-R
CD-RW
DVD
DVD-RAM
…
Fondamenti di Informatica
45
Compact Disk - CD
91
Proposto nel 1980 [da Philips e Sony] per sostituire
i dischi in vinile per la musica.
z Standard internazionale IS-10149 [libro rosso].
z
z
z
diametro di 12 cm, spessore di 1.2 mm con un foro
di 15 mm in mezzo;
produzione:
1.
2.
3.
4.
5.
laser ad alta potenza che brucia fori di 0,8 µm in un disco
master (le depressioni si chiamano pit e le aree fra pit si
chiamano land);
dal master si ricava uno stampo;
nello stampo viene iniettata una resina liquida di
policarbonato che forma un CD con la stessa sequenza di
fori del master,
sul policarbonato viene depositato uno strato molto sottile di
alluminio riflettente,
copertura con uno
strato
protettivo e infine con
Fondamenti
di Informatica
un’etichetta.
Lettura di un CD
92
z
z
Un laser a bassa potenza manda una luce infrarossa (lunghezza d’onda
di 0,78 µm) sul disco.
I pit appaiono come cunette su una superficie piatta:
z
z
z
z
z
z
un pit è alto circa un quarto della lunghezza d’onda del laser,
la luce riflessa da un pit è sfasata di mezza lunghezza d’onda rispetto alla luce
riflessa dalla superficie circostante,
l’interferenza negativa riduce l’intensità della luce riflessa.
I passaggi pit/land o land/pit indicano un 1, la loro assenza indica uno 0.
Pit e land sono scritti in una spirale unica che compie 22.188 giri attorno al
disco (circa 600 per ogni mm).
Velocità lineare costante (120 cm/sec):
z
z
z
all’interno è di 530 rpm, all’esterno deve scendere a 200 rpm;
l’unità è diversa da quella a velocità angolare costante usata per gli HD;
530 rpm sono molti meni dei 3600/10440 rpm degli HD.
Fondamenti di Informatica
46
Pit e land su un CD
93
Fondamenti di Informatica
CD-ROM
94
z
z
z
1984: Philips e Sony pubblicano il libro giallo, in cui viene
definito lo standard dei CD-ROM (Compact Disc-Read Only
Memory).
z viene definita la struttura e il formato da utilizzare per
memorizzare dati digitali invece che “semplice” musica.
Rispetto ai CD audio i CD-ROM hanno
z stesse dimensioni;
z compatibilità dell’ottica e della meccanica;
z stesso processo produttivo;
z miglior capacità di correggere errori.
Il libro verde [1986] aggiunge grafica e possibilità di mischiare
audio, video e dati nello stesso settore.
Fondamenti di Informatica
47
Velocità/capacità dei CD-ROM
95
z
Velocità base (1x)
z
z
z
75 settori/sec,
153.6 KByte/sec (175.2 in modalità 2).
Velocità superiori crescono in proporzione
z
z
Capacità
z
z
z
32x corrisponde a 2400 settori/sec cioè quasi 5MB/sec
74 minuti di musica = 681.984.000 byte = circa 650
MB;
80 minuti di musica = circa 700 MB.
Tempo di accesso
z
Fondamenti di Informatica
alcune centinaia di millisecondi.
CD Recordable (CD-R)
96
z
CD che vengono scritti una sola volta (WORM):
z
z
z
utilizzati per backup, per produzioni in piccole serie, per la
generazione di master, …
standard definito nel libro arancione, dove si introduce
anche il CD-ROM XA (CD-R scritti in modo incrementale);
stesse dimensioni dei CD-ROM
z
z
z
dischi di policarbonato di 120 mm;
contengono un solco largo 0,6 mm (guida per il laser di
scrittura).
La riflettività di pit e land è simulata
z
z
c’è uno strato di colore fra il policarbonato e lo strato
riflettente: nello stato iniziale questo strato è trasparente;
per scrivere, un laser ad alta potenza colpisce un punto
nello strato della superficie
colorata,
rompe un legame
Fondamenti di
Informatica
chimico e crea una macchia scura.
48
CD ReWriteable (CD-RW)
97
z
Dischi ottici riscrivibili.
z Lo strato di registrazione utilizza una lega di
argento, indio, antimonio e tellurio che ha due
stati stabili:
z
z
z
lo stato cristallino con elevata capacità di riflessione (land);
lo stato amorfo con ridotta capacità di riflessione (pit).
Si usa un laser con tre potenze diverse:
z
z
z
ad alta potenza il laser scioglie la lega e un raffreddamento
rapido la porta dallo stato cristallino allo stato amorfo;
a potenza media la lega si scioglie e si raffredda tornando
nel suo stato cristallino;
a bassa potenza si rileva solo lo stato del materiale.
Fondamenti di Informatica
Digital Versatile Disk (DVD)
98
z
Evoluzione
tecnologica
maggior densità dei dati:
z
z
z
z
¨
pit più piccoli (0.4 vs. 0.8 µm);
spirale più serrata (0.74 vs. 1.6 µm);
laser rosso (0.65 vs. 0.78 µm).
Caratteristiche dei DVD
z
capacità di 4.7 GB
z
z
133 minuti di video fullscreen MPEG2 ad alta risoluzione (720 x 480) con
colonna sonora in 8 lingue e sottotitoli
in altre 32;
1x Fondamenti
indicadi Informatica
1.4 MB/sec (vs. 150
KB/sec).
49
Diversi formati di DVD
99
z
Esistono situazioni in cui servono più di 4.7 GB.
Pertanto sono stati definiti quattro formati:
1.
2.
3.
4.
z
Lato unico, strato unico (4,7 GB).
Lato unico, strato doppio (8,5 GB).
Due lati, strato unico (9,4 GB).
Due lati, strato doppio (17 GB).
Tecnologia dello strato doppio:
z
z
uno strato riflettente sul fondo coperto da uno stato
semiriflettente; a seconda di dove viene indirizzato il
laser, il raggio viene riflesso da uno strato o dall'altro;
lo strato inferiore ha pit e land leggermente più
grandi, per cui la sua capacità è leggermente
Fondamenti di Informatica
inferiore.
Il video
100
z
z
z
z
z
Monitor CRT vs LCD (Liquid Crystal Display)
RGB vs monocromatico
Alfanumerico vs grafico (risoluzione)
Raster vs vettoriale (circuiti per rinfresco)
La memoria associata determina:
z
z
la risoluzione
il numero di colori (paletta)
Fondamenti di Informatica
50
Il video
101
z
Grandezza: si misura in diagonale utilizzando il pollice come
unità di misura
Risoluzione: si misura in termini di numero di pixel
z
Esempi:
z
z
z
z
320 x 200, 256 colori, ognuno (8,8,8) bit
Memoria: 64.000 bytes, 768 per la paletta
640 x 480, 16 colori
Memoria: 307.200/2 = 153.600 bytes
1024 x 768, 16.777.216 colori (true color)
Memoria: 2.359.296 bytes
Fondamenti di Informatica
La tastiera
102
z
z
z
z
z
Insieme di tasti, connessi ad interruttori
La circuiteria individua il/i tasto premuto ed invia
il codice al sistema, che -attraverso una tabelladetermina il carattere ASCII
E' possibile modificare tale tabella
Risolve problemi di debounce e repeat
Buffer circolare
Fondamenti di Informatica
51
Sistemi di puntamento
103
z
z
Unità di input per sistemi grafici
Differiscono per:
z
z
z
la tecnologia utilizzata
la differente ergonomia dell'interazione con
l'operatore umano
Sono dispositivi che trasformano l'azione della
mano dell'operatore sullo strumento di
puntamento nello spostamento di un marker
Fondamenti di Informatica
Il mouse
104
z
z
z
z
E' lo strumento più economico e diffuso
Trasmette la variazione di posizione
(coordinate x e y)
Mediante la pressione di tasti invia
prefissate sequenze di caratteri
Tecnologie:
z
z
pallina di gomma
LED e fotorivelatore su tavoletta tramata
Fondamenti di Informatica
52
La trackball
105
z
z
z
Analogo al mouse
Tecnologia solo a pallina di gomma
Alloggiato in posizione fissa:
z
z
utilizzato in ambiente industriale
e su computer portatili
Fondamenti di Informatica
Il joystick
106
z
z
z
Cloche di puntamento usata soprattutto per i
videogiochi
Trasmette la posizione della cloche
Trasmette segnali opportuni a fronte della
pressione dei tasti (che possono avere funzioni
di repeat)
Fondamenti di Informatica
53
La tavoletta
107
z
z
z
z
Supporto piano su cui viene appoggiata una
penna con punta metallica
Trasmette le coordinate della posizione della
punta della penna
Risoluzione elevata (10 linee/mm)
Tecnologie:
z
z
a pressione
sonora
Fondamenti di Informatica
Il touch screen
108
z
z
z
z
z
Monitor sensibili al tocco del dito
Trasmettono le coordinate del punto
Risoluzione modesta
Il dito interrompe due fasci ortogonali di luce
infrarossa tra fotoemettitori e fotorivelatori
Usato in ambienti industriali
Fondamenti di Informatica
54
La stampante
109
z
Collegate tramite:
z
z
z
z
seriale
parallela
rete locale
Velocità di stampa:
z
z
z
caratteri al secondo
righe al minuto
pagine al minuto
Fondamenti di Informatica
La stampante
110
z
Tecnologia di stampa:
z
z
z
Ad impatto: martelletto su nastro inchiostrato:
qualità buona, ma lenta; pochi colori
Ad aghi: insieme di aghi; la qualità dipende dal
numero di aghi, dalla loro distanza e precisione;
lente ma grafiche; monocromatiche; costi bassi
A getto d'inchiostro: gli aghi sono sostituiti da
ugelli che spruzzano gocce di inchiostro; qualità
migliore; possibilità del colore
Fondamenti di Informatica
55
La stampante
111
z
z
Termiche: comprendono diversi tipi: aghi che
bruciano carta termo-sensibile, calore che fa
evaporare sostanze che si depositano sulla carta
Laser: un raggio laser forma l'immagine della
pagina su un cilindro fotosensibile che si carica
elettrostaticamente nei punti colpiti da maggior
intensità. Sul cilindro si deposita il toner, che viene
trasferito a caldo sulla carta
z
Dot per inch, Page per minute
Fondamenti di Informatica
Il plotter
112
z
A penna (piani o a rullo):
z
z
z
z
z
equipaggio mobile con 2 gradi di libertà
una o più penne
componente orizzontale: movimento penna
componente verticale: movimento penna o
trascinamento rullo
A matrice di punti:
z
ricordano le stampanti a getto d'inchiostro
Fondamenti di Informatica
56