Abilità Informatiche A.A. 2010/2011
Lezione 2: Architettura del Calcolatore
Facoltà di Lingue e Letterature Straniere
Dal problema al risultato:
il ruolo del computer
PROBLEMA
ALGORITMO
SVILUPPO
DELLA
SOLUZIONE
{
CONOSCENZA
SUL DOMINIO
DEL PROBLEMA
ANALISTA
PROGRAMMATORE
PROGRAMMA
CONOSCENZA
LINGUAGGIO DI
PROGRAMMAZIONE
programma
ESECUZIONE
DEL
PROGRAMMA
2
{
UTENTE
dati
soluzione
COMPUTER
Architettura del calcolatore

3
La prima decomposizione di un calcolatore è relativa a due
macro-componenti:

Hardware

Software
Architettura del calcolatore
L’architettura dell’hardware di un calcolatore reale è molto
complessa
La macchina di von Neumann è un modello semplificato
dei calcolatori moderni, composta da




Unità di calcolo
Una memoria che contiene programmi e dati dei programmi
Le istruzioni da eseguire stanno in memoria,
vengono prelevate, decodificate ed eseguite.
John von Neumann, matematico ungherese, progettò, verso
il 1945, il primo calcolatore con programmi memorizzabili
anziché codificati mediante cavi e interruttori

4
Macchina di Von Neumann
E’ composta da 4 tipologie di componenti funzionali:
 unità centrale di elaborazione (CPU)



memoria centrale


memorizza e fornisce l’accesso a dati e programmi
interfacce di ingresso e uscita


esegue istruzioni per l’elaborazione dei dati
svolge anche funzioni di controllo
componenti di collegamento con le periferiche del calcolatore
bus

5
svolge la funzionalità di trasferimento di dati e di informazioni di
controllo tra le varie componenti funzionali
Modello di Von Neumann (1)
Controllo

istruzioni
La CPU (Central Processing Unit) spesso
integra due distinte unità:


L’Unità di controllo si occupa di
controllare tutte le operazioni del
calcolatore, interpretare le istruzioni
prelevate dalla memoria e inviare alle altre
unità i segnali per l'esecuzione delle
operazioni
L’Unità aritmetico-logica, detta ALU
(Arithmetic & Logic Unit), fornisce la
capacità di effettuare operazioni di tipo
aritmetico/logico di base. Si occupa di
eseguire le operazioni : somme, confronti…
A volte e’ affiancata da un co-processore
matematico
ALU
dati
CPU
MEMORIA
Ingresso
Uscita
BUS
PERIFERICHE
Le componenti fondamentali di un
moderno calcolatore elettronico
6
Modello di Von Neumann (2)
La Memoria centrale ha lo scopo di
conservare le istruzioni e i dati da
elaborare e i risultati ottenuti dalle
elaborazioni;
Le Interfacce collegano alle




Unità di ingresso (Input) che immette le
informazioni nel calcolatore per farle
elaborare;
Unità di uscita (Output) che riceve le
informazioni dalla memoria del calcolatore
per renderle pronte all’uso;
le unità di ingresso e uscita
sono anche dette periferiche
Il Bus, vero e proprio canale di
comunicazione che consente ai dati di
transitare fra diversi componenti del
calcolatore.

7
Controllo
istruzioni
ALU
dati
CPU
MEMORIA
Ingresso
Uscita
BUS
PERIFERICHE
Le componenti fondamentali di un
moderno calcolatore elettronico
Modello di Von Neumann (3)
Per ogni istruzione del programma:
 la CPU, tramite la sua parte Controllo,
ordina il prelevamento di una istruzione
dalla Memoria;
 la decodifica, cioè la interpreta capendo
quali azioni comporta;
 la esegue utilizzando le opportune unità
coinvolte
 durante l’esecuzione può:



8
usare la ALU
effettuare altri accessi in memoria per
leggere o scrivere dati
effettuare operazioni di ingresso (per
es. leggi un dato dalla tastiera) o di uscita
(per es. visualizza il risultato sul video).
Controllo
ALU
CPU
istruzioni
dati
MEMORIA
Ingresso
Segnali di controllo
Uscita
PERIFERICHE
Spostamento dati
e/o istruzioni
Macchina di Von Neumann,
uno schema
9
Macchina di Von Neumann (1)
Il funzionamento di un calcolatore è descrivibile in termini di
poche componenti (macro-unità) funzionali


ogni macro-unità è specializzata nello svolgimento di una tipologia
omogenea di funzionalità
Eccezione: l’unità centrale di elaborazione, che svolge sia funzionalità di
elaborazione che di controllo
10
Macchina di Von Neumann (2)
11
Memorizzazione

Un calcolatore memorizza




i dati, che rappresentano informazioni di interesse
i programmi per l’elaborazione dei dati
La memoria è l’unità responsabile della memorizzazione
dei dati
Una unità di memoria fornisce due sole operazioni


memorizzazione di un valore (scrittura)
accesso al valore memorizzato (lettura)
12
Elaborazione (1)

Le istruzioni di un programma corrispondono ad
operazioni elementari di elaborazione




13
operazioni aritmetiche
operazioni relazionali (confronto tra dati)
operazioni su caratteri e valori di verità
altre operazioni numeriche
Elaborazione (2)

Un calcolatore sa svolgere poche tipologie di operazioni
elementari ma in modo molto efficiente


un calcolatore può eseguire decine o centinaia di milioni di
istruzioni al secondo
L’elaborazione dei dati viene svolta dall’unità
aritmetico-logica (ALU), che è un componente
dell’unità centrale di elaborazione
14
Trasferimento

Obiettivo: permettere lo scambio di informazioni tra
le varie componenti funzionali del calcolatore


Due possibili soluzioni
collegare ciascun componente con ogni altro componente
 collegare tutti i componenti a un unico canale (bus)
L’utilizzo di un bus favorisce la modularità e l’espandibilità del
calcolatore


15
trasferimento dei dati e delle informazioni di controllo
Controllo

Il coordinamento tra le varie parti del calcolatore è
svolto dall’unità di controllo



è un componente dell’unità centrale di elaborazione
ogni componente dal calcolatore esegue solo le azioni che gli
vengono richieste dall’unità di controllo
il controllo consiste nel coordinamento dell’esecuzione
temporale delle operazioni

sia internamente all’unità di elaborazione sia negli altri
elementi funzionali
16
Il computer „moderno‟ segue il modello di
Von Neumann, con diversi tipi di memoria
Unità di elaborazione, processore, CPU (Central
Processing Unit)
Memoria centrale, RAM (Random Access Memory)
Memoria secondaria, memoria di massa
Bus di sistema (collega tutti gli altri componenti)
Periferiche di I/O (mouse, tastiera, terminali,
stampanti, ecc.)
17
Periferiche e memorie esterne
PC
scanner
stampante
Input
Output
mouse
tastiera
Disks – flash cards – DVD - …
18
Memorie di massa
video
All‟interno: struttura di un PC
La comunicazione fra le varie componenti avviene attraverso il bus di sistema.
Tramite il bus la CPU legge\scrive dati e istruzioni in memoria, trasferisce da\a
la memoria ai dispositivi di I/O, …
19
Componenti HW: Bus

Il bus






20
Linea a cui sono contemporaneamente connessi tutti i dispositivi
hardware del calcolatore.
Analogo alla colonna spinale.
Controllato dalla CPU
Consente il trasferimento di dati tra le unità hardware
Velocità misurata in megahertz (come la CPU), ma di solito più lento...
E’ il collo di bottiglia per molti PC.
Bus: le caratteristiche

Vantaggi
 Semplicità: unica linea di connessione implica costi ridotti
 Estendibilità: aggiunta di nuovi dispositivi molto semplice
 Standardizzabilità: regole precise di comunicazione tra
dispositivi diversi

Svantaggi
 Lentezza: il bus è utilizzabile solo in mutua esclusione
 Limitata capacità: al crescere del n. di dispositivi collegati
 Sovraccarico del processore: la CPU funge infatti da
master sul controllo del bus
21
Componenti HW:
motherboard (scheda madre)

Piastra ricavata da un sandwich di strati di vetronite e rame: generalmente ha da
quattro a sei strati di rame;

Ha integrato il bus di sistema, composto da 50 a 100 fili in rame incisi su di essa

Dotata di connettori separati ad intervalli regolari per l’innesto dei moduli di
memoria e di I/O. Si tratta di una serie di connessioni elettriche ognuna delle quali
può trasmettere cifre binarie (0 o 1) in successione,

Vi sono montate le componenti del computer (CPU, RAM, hard disk, etc.)
zoccoli o slot
per le schede
zoccolo per il processore
zoccolo per la memoria
22
Motherboard: componenti principali





Alloggiamento per la CPU: Socket, (es. zoccolo ZIF, Zero Insertion Force)
o SLOT1;
gli slot per l'installazione delle RAM;
la RAM CMOS, alimentata in permanenza da una pila o una piccola
batteria che memorizza i parametri di configurazione del BIOS;
Controller e Slot di espansione:
 PCI (schede video, audio, scheda rete, modem, sintonizzatore TV,
controller firewire, USB…)
 AGP, PCI Express (schede video);
 Controller e slot IDE/ATA, SATA e/o SCSI per la gestione delle unità
disco (Hard Disk, CD e DVD), floppy;
Porte: parallela, seriale, USB, PS2,…
 In molte Mainboard, specie se compatte, molte schede di espansione
possono trovarsi già integrate (es. la scheda video, la scheda audio,
interfacce di rete LAN o Ethernet e porte Firewire)
23
Componenti HW: la memoria



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:


24
Velocità per il supporto alla CPU
Non volatilità ed elevate dimensioni per l’archivio
Le memorie: diversi tipi
Cosa può fare la tecnologia ?

Memorie elettroniche relativamente piccole e veloci, volatili, a
costo medio alto


Memorie magnetiche e ottiche, grandi, molto capienti,
persistenti e lente


25
RAM : lettura e scrittura nell’ordine delle decine di nanosecondi per
parola
Dischi rigidi : lettura e scrittura nell’ordine di alcuni millisecondi per
blocco
CD ROM, DVD
Le memorie: diversi usi
I computer usano supporti di memorizzazione di più tipi :

una memoria centrale, RAM : contiene i programmi durante la
loro esecuzione ed i dati relativi


26
altrimenti il processore sarebbe per la maggior parte del tempo
fermo in attesa di dati da/per la memoria
una o più memorie di massa (dischi etc.) : che mantengono
tutti i dati ed i programmi in attesa di essere eseguiti in modo
persistente, anche dopo lo spegnimento del calcolatore
Memoria centrale: RAM
RAM: Random Access Memory
Memorizza:
 I programmi in esecuzione
 I dati dei programmi in esecuzione
Viene cancellata ogni volta che si spegne il
computer.
27
Notazione binaria
Tutte le informazioni vengono rappresentate mediante
sequenze di 0 e di 1
bit: BInary digiT
Per esigenze logico-costruttive, i bit tra RAM e CPU
fluiscono a gruppi di 8.
Altra unità di misura utilizzata: byte (sequenza di otto bit)
Un byte é la più piccola unità accessibilie singolarmente.
28
RAM: struttura






I bit nella memoria sono raggruppati in celle (o registri)
Tutte le celle sono formate dallo stesso numero di bit
Le celle sono numerate in sequenza: il numero di ogni
cella costituisce il suo indirizzo
L’indirizzo serve per accedere all’informazione contenuta
nella cella
Specificando l’indirizzo di una cella, la CPU e’ in grado di
leggere e/o modificare il valore dei bit memorizzato in
quella cella
La cella è l’unità indirizzabile più piccola
29
Perchè si chiama RAM
(Random Access Memory)?



Si può accedere direttamente alle varie celle, una volta noto il loro
indirizzo
Il tempo necessario per accedere ad una cella è lo stesso,
indipendentemente dalla posizione della cella nella sequenza
Il termine “random” (casuale) indica proprio il fatto che non vi sono
differenze nell’accesso alle varie celle della memoria
30
RAM: principali proprietà






Veloce: per leggere/scrivere una cella ci vuole un tempo di
accesso dell’ordine di poche decine di nanosecondi
(millesimi di milionesimi di secondo = 10-9 sec.)
Volatile: è fatta di componenti elettronici, togliendo
l’alimentazione si perde tutto
(Relativamente) costosa
Tutte le celle hanno uguale dimensione: 8, 16, 32, o 64 bit
Le operazioni che si eseguono sulla memoria sono
operazioni di lettura e scrittura
Una cella può contenere un dato o un’istruzione
31
Operazioni sulla memoria
Si possono eseguire solo due operazioni:
lettura e scrittura
Lettura: con questa operazione si accede al contenuto di una
cella di memoria che viene trasferito, senza essere
modificato, alla CPU.
Scrittura: con questa operazione il contenuto di una cella di
memoria viene modificato, e viene sostituito con dati
provenienti dalla CPU.
32
Componenti HW:
CPU - Central Processing Unit




Programmi e dati risiedono in file memorizzati in
memoria secondaria.
Per essere eseguiti (i programmi) e usati (i dati)
vengono copiati nella memoria primaria.
Il processore, CPU, è in grado di eseguire le istruzioni di
cui sono composti i programmi
I programmi che la CPU è in grado di eseguire sono
scritti in linguaggio macchina
33
CPU: funzionamento
copia il programma in RAM
programma
programma
CPU
RAM
HARD DISK
34
esegui le istruzioni del programma
Il set di istruzioni macchina

Ogni tipo di processore e’ in grado di eseguire un
numero limitato (40/100) di istruzioni

Combinando in modo diverso sequenze anche molto
lunghe di istruzioni (i programmi) si possono far fare
al computer tantissime cose completamente diverse
35
Legge di Moore
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.
# Transistor [CPU Intel]
100 000 000
10 000 000
1 000 000
100 000
1989
1991
1993
1995
1997
1999
Legge di Moore e progresso





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.
Componenti HW: altre memorie



Memoria di sola lettura (ROM)
Memoria cache
Buffer
39
Memoria di sola lettura (ROM)






ROM = Read Only Memory
Memoria permanente e di sola lettura
Non può essere modificata
A differenza della RAM non è volatile
Veloce quasi come la RAM
Contiene le informazioni di inizializzazione usate ogni
volta che si accende l’elaboratore (bootstrap)
40
Memoria cache



L’accesso alla RAM è comunque più lento rispetto alla velocità
della CPU.
Si utilizza quindi una memoria che consenta accessi
estremamente veloci su istruzioni e dati utilizzati di recente.
Questa memoria è la cache memory: veloce, ma molto più
costosa della RAM quindi piccola.
La cache rappresenta un livello di memoria intermedio tra i
registri del processore e la RAM


41
Memorizza i dati usati più spesso senza doverli recuperare tutte le
volte dalla RAM (che è più lenta)
Influisce moltissimo sulle prestazioni e sul costo della CPU (e quindi
del computer)
Buffer

Piccole parti di RAM con funzioni di memoria temporanea

Usati per il passaggio delle informazioni da un programma o dispositivo ad
un altro

In Windows si parla di Clipboard, memoria temporanea usata per esempio per
le operazioni di Copia e Incolla
1
2
3
4
5
Foglio elettronico
42
Clipboard
(buffer)
Programma di videoscrittura
Componenti HW:
memorie secondarie o di massa

Caratteristiche principali:



Le memorie secondarie o di massa sono basate
principalmente su tecnologie magnetiche e ottiche.


non volatilità: mantengono le informazioni anche a computer
spento
grande capacità
ES. Hard disk, floppy disk, CDROM, DVD, etc.
I dati sono organizzati in file e gestiti dal file system
43
Le memorie di massa
44
Hard disk

45
È costituito da una serie di
dischi magnetici rigidi
(piatti) sovrapposti e
ruotanti su un asse
verticale. La superficie è
divisa in aree di memoria,
sui cui scrive e legge una
testina. Le testine sono il
doppio dei piatti.
CD rom e DVD

46
Il disco ottico è fatto di tre
strati, di cui uno in vetro
temperato che produce un
sostrato rigido. Poi una
superficie di registrazione in
lega metallica e infine un
involucro di plastica
trasparente.
Memorie Flash

Funzioni:



Tecnologia elettronica non
volatile




bassi consumi
piccole dimensioni
capacità dai 256MB ai 32GB
File system come per i
dischi

47
trasferimento dati;
archiviazione dati “sensibili”.
Il sistema operativo gestisce
l’accesso come se fossero
dischi;
Nastri Magnetici e unità DAT

Capacità di diversi GigaByte
Spazio tra record
(inter record gap)
Record fisico
Traccia 1
Traccia 2
………
Traccia 8
Traccia 9
Accesso sequenziale
Molto lenti
Utili solo per operazioni di backup
Gerarchia delle memorie
Dimensioni
CPU
Registri
Velocità
Costo/bit
min
max
max
max
min
min
Cache
Memoria centrale
Dischi magnetici / ottici
Nastri magnetici
49
Componenti HW: porte di comunicazione




Porte seriali: trasportano 1 bit per volta, hanno velocità massima =
115 KB/sec e si usano per periferiche lente, come mouse e modem
esterni, non sopportano cablaggi superiori a 300 metri
Porte parallele: trasmettono 8 bit alla volta in parallelo, sono più
veloci delle seriali ma non sopportano cablaggi superiori a 30 metri,
adatte a collegare stampanti, o altri dispositivi di immagazzinamento
esterno delle informazioni. Hanno velocità massima = 150 KB/sec.
Porte SCSI (small computer system interface) permettono la
connessione di molti dispositivi in cascata, e sono usate per scanner
CD-ROM, ...
USB (Universal Serial BUS): seriali ad alta velocità




50
velocità = 12 Mbit/sec
collegano fino a 127 periferiche in cascata
alimentano direttamente periferiche a basso consumo
(tastiere, mouse) e sono completamente plug & play
la USB 2.0 del 1999 arrivano fino a 480 Mbps.
Quanto “potente” è il mio PC?

Parametri da considerare:
 Frequenza del processore
 Dimensione della RAM
 Dimensione della memoria di massa
 Velocità di accesso (bus)
 Grandezza della cache
 Numero e tipo di porte
51
Tassonomia dei calcolatori
/1
Quantità vs. qualità:

Cambiare di un ordine di grandezza la quantità significa
cambiare anche la qualità:




un’auto in grado di raggiungere una velocità di 1000 km/h nel deserto
del Nevada è una macchina fondamentalmente diversa da un’auto
che fa 100 km/h sull’autostrada;
un grattacielo di 100 piani non è solo un edificio di 10 piani un po’ più
grande.
Nei computer le differenze sono di diversi ordini di grandezza.
I miglioramenti procurati dalla legge di Moore possono essere
utilizzati in modi diversi:


costruire calcolatori sempre più potenti a prezzo costante;
costruire lo stesso calcolatore a prezzi ogni anno più convenienti.
Tassonomia dei calcolatori
Tipo
Prezzo (€)
Calcolatore monouso
1
Calcolatore dedicato
10
Calcolatore per videogiochi
100
Calcolatore per PC
1K
Server
10 K
Reti di workstation
100 K
dipartimentale
Mainframe
1M
Supercalcolatore
10 M
/2
Applicazione tipica
Biglietti di auguri
Orologi, automobili, …
Videogiochi personali
PC da tavolo o portatile
Server di rete
Centro di calc.
Database di una banca
Previsioni del tempo
I prezzi sono solo indicativi.
Tassonomia dei calcolatori

Calcolatori monouso:



chip singoli incollati all’interno dei biglietti di auguri;
si tratta in pratica di calcolatori usa e getta.
Sistemi embedded (calcolatori dedicati):



/3
calcolatori che si trovano in telefoni, televisori, forni, auto, …
questi calcolatori contengono un processore, meno di un
megabyte di memoria e qualche funzione di I/O.
Videogame


normali calcolatori con particolari capacità grafiche, ma
software limitato e poche possibilità di estensione; fanno parte
di questa categoria anche i PDA;
contengono un processore, alcuni megabyte di memoria, un
tipo di schermo (anche un televisore) e poco di più.
Tassonomia dei calcolatori

Personal computer (PC) o workstation:



/4
dotati di alcune decine di megabyte di memoria, di un disco
fisso contenente alcuni gigabyte di dati, drive CD–ROM,
modem, scheda audio e altre periferiche;
dotati di sistemi operativi elaborati, molte opzioni di
espansione e una vasta gamma di software disponibile.
Server di rete


si tratta di PC o workstation potenziati utilizzati come
server di rete sia per le reti locali che per Internet;
esistono sia in configurazione con processore unico che con
più processori, hanno alcuni gigabyte di memoria, molti
gigabyte di spazio sul disco fisso e interfacce di rete ad alta
velocità.
Tassonomia dei calcolatori

/5
NOW (Networks of Workstations) o
COW (Cluster of Workstations)



composti da PC o workstation normali collegate con reti ad elevate
prestazioni (qualche gigabit/sec) e funzionanti con software speciale, che
permette a tutte le macchine di lavorare insieme su un unico problema;
architetture sono facilmente scalabili (da alcune macchine ad alcune
migliaia) e sono paragonabili a minisupercomputer.
Mainframe



calcolatori grandi come una stanza, in uso fin dagli anni ’60;
non sono più veloci di server potenti, ma solitamente hanno più capacità
di I/O e sono dotate di grandi insiemi di dischi
sono macchine estremamente costose, che vengono spesso mantenute
per via dell’ingente investimento esistente in termini di software, dati,
procedure operative e personale.
Tassonomia dei calcolatori

/6
Supercomputer



hanno CPU velocissime, molti gigabyte di memoria centrale,
dischi e reti molto veloci.
Recentemente molti supercomputer sono diventati
macchine altamente parallele non molto diverse dai COW,
ma con componenti più veloci e più numerosi.
I supercomputer vengono utilizzati per risolvere problemi di
calcolo molto complicati in campi scientifici e ingegneristici:



simulazione di uno scontro fra galassie,
sintesi di nuovi farmaci,
modelli del comportamento dell’aria attorno alle ali di un aereo.
Il concetto di macchina astratta



Alla base di un moderno computer c’è l’idea di
rappresentare i programmi in forma digitale. L'elaboratore
diviene una macchina “universale” in grado di eseguire
qualsiasi compito “calcolabile”, semplicemente inserendo
un nuovo programma.
Il progettista hw definisce il set di istruzioni
dell’elaboratore, ovvero un linguaggio minimo (L1)
mediante il quale l’elaboratore può essere programmato
A sua volta, anche L1 può essere limitato e difficile da
usare, ma si può usare per realizzare un nuovo linguaggio,
L2, che consente di eseguire operazioni più sofisticate di
L1, e quindi semplifica la programmazione dell’elaboratore
58
… come una cipolla
59
Mettendo assieme le cose…

I programmi che non sono in esecuzione sono
memorizzati nella memoria secondaria
Cache
CPU
RAM
Disk
App
Bus
60
SO
Software: SO (Sistema Operativo)

Il sistema operativo è caricato dalla memoria secondaria in
memoria principale quando viene acceso il computer, e vi
rimane finché non viene spento.
Cache
CPU
RAM
SO
App
SO
Bus



Il SO agisce come “manager” del sistema, garantendo che ogni
dispositivo hw dialoghi correttamente con gli altri dispositivi.
Offre l’interfaccia perché l’utente interagisca con il computer.
Esempi: MacOS, WindowsXP, UNIX, Linux, Solaris, ...
61
Lanciare un programma

Quando si lancia un programma il sistema operativo
controlla la CPU e carica il programma dalla memoria
secondaria alla RAM.
SO
Bus
62
Disk
RAM
SO
App
Cache
CPU
App
SO
Esecuzione

Quando il programma è in esecuzione, carica ad ogni
passo una nuova istruzione (dalla memoria o dalla
cache), la esegue, e memorizza il risultato nella
memoria.
App
Bus
63
Disk
RAM
SO
App
Cache
CPU
App
SO