Architettura dei Calcolatori
Introduzione
„
„
Che cos’è un calcolatore?
Come funziona un calcolatore?
„
„
è possibile rispondere a queste domande in molti modi,
ciascuno relativo a un diverso punto di vista
in questo corso, il punto di vista prevalente è quello del
calcolatore come macchina programmabile, ovvero in
grado di eseguire programmi
Ing. L.Testa - Fondamenti di Informatica
Che cos’è un calcolatore?
“il calcolatore è un esecutore di programmi”
„ punto di vista degli utenti finali
„ viene considerato l’uso del calcolatore
“il calcolatore è un sistema”
„ punto di vista funzionale
„ viene considerato il suo funzionamento e la sua
architettura
“il calcolatore è una macchina programmabile”
„ punto di vista della programmazione
Ing. L.Testa - Fondamenti di Informatica
Calcolatori e applicazioni
„
Che cos’è un calcolatore?
„
„
un calcolatore è una macchina programmabile, ovvero in grado di
eseguire programmi
Questa definizione descrive, in parte, il punto di vista degli
utenti dei calcolatori
„
„
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
„
ciascuna operazione di una applicazione costituisce uno strumento per
l’utente dell’applicazione, da utilizzare per perseguire un certo scopo
Ing. L.Testa - Fondamenti di Informatica
Tipologie di applicazioni informatiche
„
Esistono moltissime tipologie di applicazioni per i
calcolatori
„
„
„
„
dai giochi alla gestione della telefonia
dalla gestione di immagini e documenti alla possibilità di
comunicare con altre persone e calcolatori
dalla gestione alla simulazione di sistemi complessi
dal supporto delle attività individuali alla gestione dei
sistemi informativi di grandi organizzazioni
Ing. L.Testa - Fondamenti di Informatica
Applicazioni e risoluzione di problemi
„
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
„
„
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
„ le istruzioni che è possibile richiedere al calcolatore di eseguire
sono quelle corrispondenti alle richieste di esecuzione delle
operazioni fornite dall’applicazione
„ ciascuna applicazione può essere caratterizzata
„
„
dall’insieme delle operazioni che fornisce (e dalle regole per usarle)
dalla tipologia di informazioni che permette di gestire
Fondamenti di Informatica
6
Uso di applicazioni
„
Per usare una applicazione, l’utente deve conoscere
l’insieme delle operazioni che l’applicazione fornisce,
comprenderne il significato e saperne richiedere
l’esecuzione
„
„
la capacità di comprendere e usare una applicazione è abbastanza
indipendente dalla comprensione del funzionamento del calcolatore
è 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
7
Applicazioni e interfacce
„
Una applicazione viene utilizzata tramite la sua interfaccia
utente
„ l’interfaccia di una applicazione è il mezzo di
interazione tra l’utente (utente dell’applicazione)
e il calcolatore (esecutore dell’applicazione)
„ in generale, le applicazioni moderne dispongono di
interfacce utente grafiche (GUI)
„
„
l’interazione con una GUI avviene ad esempio selezionando
menu e bottoni con il mouse
alcune applicazioni sono basate su una interfaccia a
caratteri
„
in questo caso, l’interazione può avvenire mediante la
digitazione di una sequenza di comandi
Fondamenti di Informatica
8
Interazione con una applicazione
„
L’uso di una applicazione richiede la comprensione
„
„
„
delle operazioni che l’applicazione permette di eseguire
della corrispondenza tra gli elementi dell’interfaccia
dell’applicazione e i dati e le operazioni
della modalità di richiesta dell’esecuzione di ciascuna
operazione
Fondamenti di Informatica
9
Architettura dei calcolatori
„
Che cos’è un calcolatore? Come funziona un calcolatore?
„
„
„
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
„
„
„
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
10
Hardware e software
„
La prima decomposizione di un calcolatore è
relativa alle seguenti macro-componenti:
hardware
„
la struttura fisica del calcolatore, costituita da
componenti elettronici ed elettromeccanici
software
„
„
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
11
Organizzazione a livelli
„
„
„
„
Hardware e software sono organizzati a
livelli (o strati)
ciascun livello corrisponde a una
macchina (reale o virtuale) in grado di
eseguire un proprio insieme di operazioni
ciascun livello fornisce un insieme di
operazioni più semplici da utilizzare
rispetto a quelle del livello sottostante
ciascun livello è realizzato in termini
dell’insieme di operazioni fornite dal
livello immediatamente sottostante
Fondamenti di Informatica
Software applicativo
Software di base
Hardware
12
Software e macchine virtuali
„
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
„
„
„
per macchina virtuale si intende una macchina che fisicamente
non esiste nella realtà, ma di cui si può avere la sensazione
dell’esistenza
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
il software applicativo mostra all’utente il calcolatore come una
macchina virtuale che può essere utilizzata per la risoluzione di
problemi
„
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
13
Organizzazione a livelli
„
Nell’organizzazione a livelli, l’hardware è l’unica macchina reale,
mentre gli strati software corrispondono a macchine virtuali
„ il repertorio di operazioni (chiamate istruzioni) che l’hardware sa
eseguire direttamente è chiamato linguaggio macchina del
calcolatore
„
„
le diverse macchine e i relativi insiemi di operazioni sono via via più
astratti
„
„
„
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
„
alla fin fine, l’unico responsabile dell’esecuzione del software è
comunque l’hardware disponibile
Fondamenti di Informatica
14
Tipologie di calcolatori
„
Esistono diversi tipi di calcolatori:
„ Personal computer
„
„
„
Notebook (portatile)
„
„
„
„
Dotati di monitor e tastiera separati dall’unità centrale
Dotati di diversi dispositivi di memoria di massa interni o esterni
all’unità centrale
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
„
„
Di dimensioni limitate
Usualmente privi di memorie di massa tradizionali
Sensori intelligenti
Oggi la tendenza è di avere sistemi sempre più piccoli e integrati
„
„
Fondamenti di Informatica
15
Tipologie di calcolatori
„
„
„
Workstation
„ Versione “potente” del personal computer
„ Orientate alle applicazioni grafiche o CAD
„ Spesso condivise da più utenti
Mainframe e minicomputer
„ In passato denotavano calcolatori di elevata potenza di calcolo e
memorizzazione
„ Orientati all’elaborazione dati per l’intera azienda
„ Condivisibili da più utenti (anche contemporaneamente)
Cluster
„ Sistemi di calcolo basati sull’aggregazione di più macchine
„ Utilizzati per applicazioni computazionalmente pesanti
„
Calcolo numerico, simulazioni, etc
Fondamenti di Informatica
16
Architettura del calcolatore:
il modello di Von Neumann
„
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
„
Macchina di Von Neumann:
modello semplificato dei calcolatori moderni
„
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
17
La macchina di Von Neumann
„
„
„
„
La macchina di Von Neumann è composta da quattro tipologie di
componenti funzionali fondamentali:
unità centrale di elaborazione (CPU)
„ componente in grado di eseguire istruzioni per l’elaborazione dei
dati
„ svolge anche funzioni di controllo (ovvero, di coordinamento) delle
altre componenti funzionali
memoria centrale
„ memorizza e fornisce l’accesso a dati e programmi
interfacce di ingresso e uscita (I/O)
„ componenti di collegamento con le periferiche del calcolatore
„ le periferiche sono dispositivi (esterni al calcolatore) che
consentono lo scambio di dati tra calcolatore e utente
bus
„ svolge la funzionalità di trasferimento di dati e di informazioni di
controllo tra le varie componenti funzionali
Fondamenti di Informatica
18
La macchina di Von Neumann
Fondamenti di Informatica
19
Funzionalità nella macchina di Von Neumann
„
Il funzionamento di un calcolatore può essere quindi descritto in termini di
poche componenti (macro-unità) funzionali
„ ciascuna macro-unità è specializzata nello svolgimento di una tipologia
omogenea di funzionalità, ad eccezione dell’unità centrale di
elaborazione, che svolge sia funzionalità di elaborazione che di
controllo
Fondamenti di Informatica
20
Funzionamento (in sintesi) della
macchina di Von Neumann
„
Il processore estrae le istruzioni dalla memoria e le esegue
„
„
„
„
Oppure operazioni di trasferimento dei dati
I trasferimenti di dati attraverso elementi funzionali diversi
avvengono attraverso il bus di sistema
Le fasi di elaborazione si susseguono in modo sincrono
rispetto ad un orologio di sistema detto clock
„
„
Le istruzioni possono comportare operazioni di manipolazione dei
dati
Durante ogni intervallo di tempo l’unità di controllo (parte del
processore) stabilisce la funzione da svolgere
L’intera macchina opera in maniera sequenziale
Fondamenti di Informatica
21
Rappresentazione delle informazioni
„
„
Lo scopo fondamentale di un calcolatore è di permettere
l’elaborazione di informazioni
„ le informazioni sono rappresentate sotto forma di dati
„ un dato è una informazione elementare
I dati che un calcolatore sa rappresentare ed elaborare
direttamente sono molto semplici
„ i dati vengono rappresentati nel calcolatore mediante
delle codifiche binarie (che studieremo in seguito)
Fondamenti di Informatica
22
Elaborazione
„
Le istruzioni del linguaggio macchina di un calcolatore corrispondono ad
operazioni elementari di manipolazione dei dati
„
operazioni aritmetiche
somma, prodotto, ...
„
„
operazioni relazionali (confronto tra dati)
„
operazioni su caratteri e valori di verità
„
altre operazioni numeriche
calcolo di logaritmi, funzioni trigonometriche, ...
„
„
Un calcolatore sa dunque svolgere poche tipologie di operazioni elementari
„
„
„
ma le sa eseguire in modo molto efficiente
un calcolatore può eseguire decine o centinaia di milioni di istruzioni del
linguaggio macchina al secondo
L’elaborazione dei dati viene svolta dall’unità aritmetico-logica (ALU), che è
un componente dell’unità centrale di elaborazione
Fondamenti di Informatica
23
Memorizzazione
„
„
„
Un calcolatore ha la necessità di memorizzare, in modo temporaneo o
permanente, i dati per la rappresentazione delle informazioni di
interesse e i programmi per la loro elaborazione
La memoria è l’unità responsabile della memorizzazione dei dati
„
una unità di memoria è organizzata in celle
„
a ciascuna cella è associato un indirizzo, che la identifica
„
ciascuna cella è in grado di memorizzare un singolo dato
Una unità di memoria fornisce due sole operazioni
„
memorizzazione di un valore in una cella (scrittura)
„
„
dato un valore da memorizzare e l’indirizzo di una cella, memorizza il
valore nella cella, modificando pertanto lo stato della memoria
accesso al valore memorizzato in una cella (lettura)
„
dato l’indirizzo di una cella, restituisce il valore memorizzato nella cella
Fondamenti di Informatica
24
Trasferimento
„
„
Il bus è il componente del calcolatore dedicato al trasferimento dei
dati e delle informazioni di controllo tra le varie parti del calcolatore
„ il bus è l’insieme dei collegamenti su cui vengono trasferiti i dati e i
segnali di controllo in un calcolatore
L’idea alla base del bus è la seguente
„ nel calcolatore è necessario collegare tutti i componenti tra di loro
(per permettere lo scambio di dati tra componenti)
„ ci sono due modalità per collegare un insieme di componenti
„
„
„
collegare ciascun componente con ogni altro componente
collegare tutti i componenti a un unico insieme di linee
(il bus, appunto)
l’uso del bus favorisce la modularità e l’espandibilità del calcolatore
Fondamenti di Informatica
25
Controllo
„
Il coordinamento tra le varie parti del calcolatore è svolto
dall’unità di controllo
„
„
„
l’unità di controllo è un altro componente dell’unità centrale di
elaborazione
ogni componente dal calcolatore esegue solo le azioni che gli
vengono richieste dall’unità di controllo
Caratteristiche dell’attività di controllo svolta dall’unità di controllo
„
„
il controllo avviene in modo sincrono rispetto alla scansione
temporale imposta dall’orologio di sistema (clock)
il controllo consiste nel coordinamento dell’esecuzione temporale
delle funzioni che devono essere svolte sia internamente all’unità di
elaborazione che negli altri elementi funzionali
Fondamenti di Informatica
26
Unità centrale di elaborazione (CPU)
„
„
L’unità centrale di elaborazione (o processore) è
composta dall’unità di controllo e dall’unità aritmeticologica
l’unità centrale di elaborazione controlla l’esecuzione di un
programma (memorizzato in memoria centrale sotto forma
di una sequenza di istruzioni del linguaggio macchina)
eseguendo ordinatamente le istruzioni del programma
Fondamenti di Informatica
27
Periferiche e interfacce di ingresso-uscita
„
Un calcolatore può essere collegato a diversi dispositivi di ingresso e/o
uscita (chiamati periferiche)
„
„
„
ad esempio, la tastiera, il mouse, lo schermo, le stampanti, il
modem
anche le memorie di massa (ad esempio, le unità disco e il lettore
di CD-ROM) sono considerati periferiche
Nella macchina di Von Neumann, le periferiche non fanno parte del
calcolatore
„
„
ogni periferica viene controllata mediante un’opportuna interfaccia
una interfaccia ha il compito di tradurre i segnali interni del
calcolatore in un formato comprensibile alla periferica stessa, e
viceversa
Fondamenti di Informatica
28
Tecnologia dei calcolatori
„
„
La conoscenza dell’architettura della macchina di Von
Neumann ci consente di studiare alcuni aspetti tecnologici
relativi all’hardware dei calcolatori
Vengono ora introdotti alcuni principi di funzionamento
e alcune caratteristiche tecnologiche dei componenti
effettivamente utilizzati nei calcolatori
Fondamenti di Informatica
29
Codifica dei dati
„
„
„
In un calcolatore, i dati (e le istruzioni) sono codificati in forma binaria, ovvero
mediante delle sequenze finite di cifre 0 e 1
„ il bit la più piccola unità di informazione in un calcolatore
„
un bit può avere valore 0 oppure 1
„
la parola “bit” è una forma contratta per binary digit (cifra binaria)
ciascun bit è memorizzato da una cella elementare di memoria,
fisicamente realizzata da un dispositivo elettronico in cui sono
chiaramente distinguibili due stati
„ questi due stati vengono fatti corrispondere allo 0 e all’1
Un bit è una unità di informazione troppo piccola per essere usata
individualmente
„ i dati vengono codificati sotto forma di sequenze di bit
„ ciascuna sequenza di bit può essere interpretata come un dato solo se
viene opportunamente decodificata
Fondamenti di Informatica
30
Unità centrale di elaborazione (CPU):
il microprocessore
„
„
L’unità centrale di elaborazione è solitamente realizzata
fisicamente sotto forma di microprocessore
i microprocessori sono dispositivi elettronici
estremamente complessi
Fondamenti di Informatica
31
Unità centrale di elaborazione (CPU):
il microprocessore – qualche esempio…
Processore
Anno
Frequenza
(Hz)
N. Transistors
Tecnologia
(micron)
8086
1978
5-10 MHz
29.000
3
80486
1989
25-100 MHz
1.200.000
1.600.000
1
0.6
Pentium
1993
60-200 MHz
3.100.000
3.300.000
0.8
0.35
Pentium II
1997
233-533 MHz
7.500.000
19.000.000
0.35
0.25
Pentium III
1999
450 MHz
1,4 GHz
9.500.000
44.000.000
0.25
0.13
Pentium 4
2001
1,4 GHz
3,73 GHz
42.000.000
169.000.000
0.18
90 nm
Fondamenti di Informatica
32
Unità centrale di elaborazione (CPU):
Schema architetturale (semplificato)
Fondamenti di Informatica
33
Unità centrale di elaborazione (CPU):
Componenti
„
„
„
„
Unità di controllo (UC)
Unità aritmetico-logica (ALU)
Bus interno
Registri
„
PC program counter
„
„
IR instruction register
„
„
dato che è stato acceduto o che deve essere memorizzato
Registro di stato (o dei flag)
„
„
indirizzo della cella di memoria che deve essere acceduta o memorizzata
MDR registro dati di memoria
„
„
contiene l’istruzione che deve essere eseguita
MAR registro di indirizzamento memoria
„
„
Contiene l’indirizzo della prossima istruzione da eseguire
contiene informazioni sull’esito delle operazioni eseguite
Registri generici
„
per la memorizzazione degli operandi o del risultato di una operazione
Fondamenti di Informatica
34
Unità centrale di elaborazione (CPU):
Funzionamento
„
L’unità di centrale di elaborazione esegue una istruzione svolgendo le
seguenti tre operazioni di base
„
(lettura) fetch
„
„
(decodifica) decode
„
„
legge dalla memoria la prossima istruzione da eseguire
Determina (decodifica) il tipo di istruzione che deve essere eseguito
(esecuzione) execute
„
richiede lo svolgimento di tutte le azioni necessarie per l’esecuzione
dell’istruzione (compreso l’incremento automatico del registro contatore delle
istruzioni) — ciascuna azione viene richiesta al componente opportuno
L’esecuzione di un programma avviene eseguendo
ordinatamente le istruzioni del programma,
svolgendo ripetutamente il ciclo fetch-decode-execute
Fondamenti di Informatica
35
Unità centrale di elaborazione (CPU):
Funzionamento - 1
„
„
„
„
L’esecuzione di un programma ha inizio con il caricamento
della locazione della prima istruzione nel PC
La UC manda un segnale di controllo affinché il contenuto
del PC sia spostato nel MAR
Viene inviato un segnale di controllo (read) alla memoria
per effettuare la lettura del dato posto all’indirizzo
specificato nel MAR
In conseguenza del passo precedente il dato viene reso
disponibile nel MDR (la UC attende fino all’arrivo del
segnale MFC - memory function completed)
Fondamenti di Informatica
36
Unità centrale di elaborazione (CPU):
Funzionamento - 2
„
„
„
„
La UC manda un segnale di controllo affinché il contenuto
del MDR (registro dati) sia spostato nel IR (registro
istruzione corrente)
La UC decodifica l’istruzione corrente
La UC genera la sequenza di segnali di controllo necessari
ad eseguire l’istruzione (vedi esempio slide successiva)
Il PC viene incrementato al fine di puntare alla prossima
istruzione
Fondamenti di Informatica
37
Unità centrale di elaborazione (CPU):
Funzionamento – 3 (esempio)
La UC genera la sequenza di segnali di controllo necessari ad eseguire l’istruzione
„
„
„
„
„
Esempio: caricamento di un dato presente in memoria nel registro A
Il valore del PC incrementato di 1 viene spostato nel IR (registro
indirizzi)
Viene inviato un segnale di controllo (read) alla memoria per
effettuare la lettura del dato posto all’indirizzo specificato nel IR
In conseguenza del passo precedente il dato viene reso disponibile nel
registro dati MDR (la UC attende il segnale MFC)
La UC manda un segnale di controllo affinché il contenuto del registro
dati MDR sia spostato nel registro A
Fondamenti di Informatica
38
Unità centrale di elaborazione (CPU):
Tipologia di istruzioni eseguibili
„
Le istruzioni eseguite dal processore possono
essere classificate in tre categorie principali:
„ Istruzioni aritmetiche/logiche
„
„
„
Istruzioni di salto
„
„
Somme, sottrazioni, moltiplicazioni, divisioni, etc.
And, or, minore, maggiore
(... condizionale, chiamate a sottoprogramma)
Istruzioni di trasferimento dei dati
„
„
Da un registro all’altro
Da uno dei registri alla memoria o viceversa
Fondamenti di Informatica
39
Esempio: Fase di fetch
Passo 1
Memoria centrale (MM)
0 0100000000010000
Passo 2
PC 0000000001
0000000000
Passo 4
MAR 0000000000
1023
MDR 0100000000010000
Passo 3
IR 0100000000010000
Fondamenti di Informatica
40
Esempio: Fase di decode
IR 0100000000010000
Codice operativo 0100 = scrivi il registro B in memoria
Fondamenti di Informatica
41
Esempio: Fase di esecuzione
Memoria centrale (MM)
Indirizzo operando
00000010000 = cella 16
IR 0100000000010000
0
Passo 3
16 0001000000011111
Passo 1
MAR 0000010000
1023
MDR 0001000000011111
Passo 2
Valore del registro B (es. 4127)
Fondamenti di Informatica
B 0001000000011111
42
Unità centrale di elaborazione (CPU):
le interruzioni (interrupt)
„
„
„
„
Al fine di gestire richieste provenienti dalle periferiche può
essere necessario interrompere la normale esecuzione di
un programma
La periferica segnala sue particolari necessità attraverso
una interruzione (interrupt)
Ad ogni passo di esecuzione la UC verifica lo stato del
registro delle interruzioni
Se si è verificata una interruzione:
„
Lo stato del processore (registri) viene salvato in memoria
„
Viene attivata una speciale procedura di gestione delle interruzioni
„
Quando la procedura di gestione delle interruzioni termina lo stato
del processore viene ripristinato ed il programma viene ripreso
Fondamenti di Informatica
43
Unità centrale di elaborazione (CPU):
caratteristiche dei microprocessori
Caratteristiche principali di un microprocessore
„
repertorio di istruzioni
„
„
velocità (misurata come frequenza del clock)
„
„
„
numero di bit nel bus interno del processore
co-processore
„
„
la frequenza del clock misura la durata del ciclo macchina, che è l’unità di
tempo all’interno del processore
va osservato che l’esecuzione di ciascuna istruzione richiede solitamente
più cicli macchina
ampiezza del bus
„
„
le istruzioni del linguaggio macchina del processore
i moderni processori sono integrati a co-processori specializzati (ad
esempio, il co-processore matematico)
cache
„
una memoria veloce locale al processore, che consente una accelerazione
nell’esecuzione dei programmi
Fondamenti di Informatica
44
Il bus di sistema
„
„
„
Il bus di sistema collega tra loro i vari elementi del
calcolatore
In ogni istante il bus è dedicato a collegare due unità, una
trasmette ed una riceve
Il processore seleziona la connessione da attivare e indica
l’operazione da svolgere
„
Approccio master-slave
„
CPU = master
„
Periferiche = slave
Fondamenti di Informatica
45
Il bus di sistema
„
Il bus è suddiviso in tre insiemi di linee:
„ Bus dati
„
„
Bus indirizzi
„
„
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
„
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
46
Il bus di sistema:
„
„
„
„
„
„
vantaggi e svantaggi
Semplicità: 1 sola linea di connessione per qualunque # di dispositivi
Estendibilità: nuovi dispositivi possono essere aggiunti tramite
un’interfaccia al bus senza influenzare l’HW preesistente
Standardizzabilità: definizione di normative che consentono a
periferiche di costruttori diversi di interagire correttamente
Lentezza: l’uso in mutua esclusione del bus inibisce almeno
parzialmente la parallelizzazione delle operazioni di trasferimento di
dati tra dispositivi
Limitata capacità: al crescere del numero di dispositivi la presenza di
una sola linea comporta un limite alla capacità di trasferire dati
Sovraccarico della CPU: l’unità centrale viene coinvolta in tutte le
operazioni di trasferimento di dati
Fondamenti di Informatica
47
La memoria centrale
„
La memoria centrale (o principale) è la componente del calcolatore
in cui vengono immagazzinati e da cui vengono acceduti i dati e i
programmi
Una memoria:
„
si compone di una sequenza di celle (o locazioni)
„
ogni cella di memoria è in grado di memorizzare una parola di
memoria (ovvero, un sequenza di bit di lunghezza fissata)
„
„
la lunghezza di una parola dipende dalla macchina
ogni cella è caratterizzata da
„ un indirizzo, che è un numero che identifica la cella e ne consente
l’accesso
„ un valore, che è la sequenza di bit memorizzata dalla cella
„ fornisce le operazioni di lettura e scrittura
Fondamenti di Informatica
48
La memoria centrale:
schema semplificato
Fondamenti di Informatica
49
La memoria centrale: caratteristiche
Caratteristiche principali:
„
capacità
„
„
il numero di bit che possono essere memorizzati, misurati in byte
(e multipli del byte)
velocità di accesso
„
misura la velocità di esecuzione delle operazioni di lettura/scrittura
„
organizzazione/lunghezza parola
„
volatilità
„
Indica la capacità o meno di mantenere le informazioni
memorizzate in mancanza di alimentazione elettrica (RAM, ROM)
Fondamenti di Informatica
50
La memoria centrale: RAM e ROM
„
„
Spesso ci si riferisce alla memoria centrale come memoria RAM
„ RAM Random Access Memory (memoria ad accesso casuale)
„ Viene cosi detta una memoria il cui tempo di accesso sia indipendente
dall’indirizzo della parola alla quale si vuole accedere
„ Si tratta di una memoria volatile
„ I dati possono essere sia letti che scritti
Altri tipi di memoria presenti in un calcolatore sono le memorie ROM
„ ROM Read Only Memory
„ Hanno caratteristiche generali simili alle RAM
„ Un tempo di accesso notevolmente maggiore
„ Si tratta di memorie permanenti
„ I dati possono essere solamente letti
„ Sono tipicamente utilizzate per memorizzare quei dati e programmi che
servono al momento dell’accensione dell’elaboratore, prima del
caricamento del S.O.
Fondamenti di Informatica
51
Memoria vs CPU
„
Le CPU sono sempre state più veloci delle memorie
„
„
„
L’accesso alla memoria passa attraverso il bus
„
„
„
L’aumento di integrazione ha consentito di progettare CPU pipelined, superscalari,
molto veloci
Nelle memorie è aumentata più la capacità che la velocità
La frequenza di funzionamento del bus è molto più bassa di quella della CPU
Gran parte delle istruzioni eseguite sono di accesso alla memoria
Esempio:
Il tempo di accesso alla RAM è di ~30-70 ns
„ Un processore con clock ad 1Ghz esegue in media 1 istruzione ogni ns
Se un processore deve accedere alla memoria, si blocca per molto tempo in
attesa dei dati
„
„
„
„
La velocità effettiva del sistema computer è quella della memoria, non quella della
CPU
„
La memoria è un “collo di bottiglia” per le prestazioni del sistema computer
Migliorare la velocità di accesso alla memoria significa migliorare notevolmente
le prestazioni d’insieme
Fondamenti di Informatica
52
Gerarchie di memorie
„
Memorie di gran capacità, relativamente lente, economiche
ed accessibili tramite il bus
„
„
Memorie veloci integrate nello stesso chip della CPU ma
costose
„
„
MGL ovvero Memoria Grossa e Lenta
MPV ovvero Memoria Piccola e Veloce
Obiettivo: Realizzare una memoria grossa e veloce
„
„
Dimensioni: pari a circa quelle della memoria grossa
Prestazioni: pari a circa quelle della memoria veloce
E’ possibile realizzare questo obiettivo?
Fondamenti di Informatica
53
Gerarchie di memorie
„
Memoria formata da una MPV e da una MGL
„
„
La MPV contiene una copia di alcune celle della
MGL
Quando la CPU chiede una particolare cella di
memoria la richiesta va ad entrambe le
memorie
„
„
Se il dato si trova nella MPV viene passato
direttamente alla CPU
Se il dato si trova nella MGL viene anche caricato
nella MPV
Fondamenti di Informatica
54
Principio di località
„
„
Località spaziale
Quando si accede ad un indirizzo A è molto probabile che
gli accessi successivi richiedono celle vicine ad A
„
„
„
„
Le istruzioni del codice vengono in genere lette da locazioni
consecutive in 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
„
„
Cicli di istruzioni accedono ripetutamente alle stesse locazioni di
memoria
Istruzioni vicine tendono ad utilizzare le stesse variabili
Fondamenti di Informatica
55
Memoria cache
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
56
Memoria cache
Denominazione
Capacità
Tempo di accesso
Registri
Cache di livello 1
Cache di livello 2
Memoria centrale
Hard Disk
< 1 KB
2 KB – 64 KB
256 KB – 2 MB
256 MB – 2 GB
40 GB –300 GB
< 1 ns
1 ns
2 ns
10 ns
10 ms
Fondamenti di Informatica
57
Memoria cache
„
„
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
La presenza della cache complica notevolmente
l’architettura di un sistema di elaborazione
„
„
Problema del rimpiazzo
Problema della scrittura (coerenza dei dati)
Fondamenti di Informatica
58
L’interfaccia delle periferiche
„
„
Concettualmente si occupa della gestione dello scambio di
dati tra processore e periferiche
In generale contiene:
„
Un registro dati della periferica (RDP)
„
Un registro di comando della periferica (RCP)
„
Un registro di stato
„
„
Talvolta collegato al registro delle interruzioni del processore
A seconda del processore, i registri delle periferiche
possono:
„
„
Condividere lo spazio di indirizzi della memoria
(memory mapped I/O)
Adottare uno spazio di indirizzi distinti
Fondamenti di Informatica
59
L’interfaccia delle periferiche:
schema
Bus indirizzi
Bus dati
Bus di controllo
Decodificatore
degli indirizzi
Circuiti di
controllo
Registri dei dati
e di stato
Interfaccia di I/O
Periferica
Fondamenti di Informatica
60
L’interfaccia delle periferiche: standardizzazione
„
E’ possibile avere una interfaccia diversa per ogni periferica
„
„
ma è più logico avere delle interfacce standard per periferiche
simili
Esempi di interfacce standard:
„
Interfaccia seriale RS-232-C
„
Interfaccia PS2
„
Interfaccia USB (Universal Serial Bus)
„
Interfaccia parallela Centronix
„
Interfaccia ISA
„
Interfaccia SCSI
„
Interfaccia EIDE
Fondamenti di Informatica
61
Gestione delle periferiche
„
I moderni processori operano a velocità notevolmente maggiori di ogni
altra periferica
„
„
„
sorge la necessità di sincronizzare le operazioni di processore e periferiche
Due approcci possibili:
„
a controllo di programma (polling)
„
o mediante interrupt
La gestione a polling: un esempio di lettura da memoria di massa
„
„
„
Il processore invia sul bus il comando di lettura e si pone in attesa che il
dato sia disponibile sul registro dati della periferica
Durante l’attesa il processore esegue un ciclo verificando il valore del
registro di stato della periferica
Appena il dato è pronto il processore lo trasferisce dal registro dati della
periferica in uno dei suoi registri interni e da qui in memoria
Fondamenti di Informatica
62
Gestione delle periferiche
„
Difetti dell’approccio a polling
„
„
Il processore resta impegnato in un ciclo in attesa del dato
La gestione a interrupt: un esempio di lettura da memoria di massa
„
„
„
„
Il processore invia sul bus il comando di lettura e procede nelle sue
operazioni
Quando il dato è disponibile la periferica “solleva” un interruzione
Il processore interrompe le sue operazioni, salva il proprio stato ed esegue
una opportuna routine di gestione delle interruzioni (parte del S.O.)
La routine di gestione delle interruzioni verifica che un dato è disponibile
sulla periferica e lo trasferisce dal registro dati della periferica in uno dei
registri interni del processore e da qui in memoria
Fondamenti di Informatica
63
Tipologie di periferiche
„
Memorie secondarie (di massa)
„
„
Periferiche di input
„
„
Floppy disk, hard disk, CD, DVD, Nastri magnetici
Tastiera, mouse
Periferiche di output
„
Monitor, speaker, stampanti
„
Periferiche di comunicazione
„
Interfaccia di rete, modem
Varie
„ Scanner, webcam, microfoni, etc
„
Fondamenti di Informatica
64
Memorie secondarie (o di massa)
„
Con il termine memoria di massa ci si riferisce ad un dispositivo di
memorizzazione permanente capace di contenere grosse quantità di dati
Caratteristiche specifiche (che la differenziano dalla memoria centrale):
„
non volatilità
„ i dati memorizzati non vengono persi allo spegnimento del calcolatore
(perché memorizzati in forma magnetica o ottica anziché elettronica)
„
grande capacità
„ una unità di memoria secondaria ha capacità maggiore (anche di diversi
ordini di grandezza) rispetto alla memoria centrale
„
bassi costi
„ il costo per bit di una memoria secondaria è minore (di diversi ordini di
grandezza) rispetto alla memoria centrale
„
bassa velocità di accesso
„ i tempi di accesso a una memoria secondaria sono maggiori (di qualche
ordine di grandezza) rispetto alla memoria principale
Fondamenti di Informatica
65
Memorie secondarie (o di massa)
„
„
„
Esiste un numero grandissimo di dispositivi di tale tipo
Possibili categorizzazioni
„ Dispositivi ad accesso sequenziale o casuale
„ Dispositivi in sola lettura (RO), in lettura e scrittura (RW) o WORM
(Write Once Read Many)
„ Dispositivi magnetici, ottici o magneto-ottici
Dimensioni tipiche delle principali memorie di massa odierne
„
„
„
„
„
FDD: 1.44 MB
CD: 650 MB
DVD: 4 GB
Hard-Disk: 80+ GB
Nastri: QIC80: 350 MB, DAT 4¸20+ GB
Fondamenti di Informatica
66
Memorie secondarie
„
In pratica, i dati di una memoria secondaria per
essere acceduti dal processore devono comunque
transitare nella memoria centrale
„
„
la memoria secondaria memorizza tutti i programmi e i
dati del calcolatore
la memoria centrale memorizza i programmi in
esecuzione e i dati necessari per la loro esecuzione
Fondamenti di Informatica
67
Hard disk
„
„
Un disco magnetico (disco fisso)
è composto da uno o più piatti
di alluminio rotanti ricoperti di
materiale magnetico e da un
gruppo di testine
una testina permette la scrittura
e lettura di bit su un disco,
memorizzati sotto forma di stati
di polarizzazione (positiva e
negativa)
Fondamenti di Informatica
68
Hard disk
„
In un disco magnetico
„ ciascun piatto è composto da due
superfici (facce)
„ ciascuna faccia è suddivisa in tracce
(circolari) e settori (a spicchio)
„
„
i settori sono le unità logiche di
memorizzazione
„
„
un cilindro è l’insieme delle tracce in una
data posizione radiale
la capacità di un settore è tipicamente di
512 byte
l’indirizzo di un settore è dato dalle
seguenti informazioni:
cilindro, superficie, settore
Fondamenti di Informatica
69
Hard disk: caratteristiche prestazionali
Caratteristiche prestazionali di un HD
„
Tempo di posizionamento (seek time): il tempo
necessario a posizionare le testine sulla traccia richiesta
„
„
Tempo di latenza o di rotazione (latency time):
il tempo affinché il settore richiesto “passi” sotto la testina
(dipende dalla velocità di rotazione del disco)
„
„
Nell’ordine di 2-4 ms
Tempo di trasferimento:
il tempo per trasferire i dati dal disco alla memoria
„
„
Nell’ordine di 8-10 ms
In genere trascurabile
Tempo di accesso (la somma dei tre tempi precedenti)
Fondamenti di Informatica
70
Hard disk: esempi
„
„
„
Il disco WD Caviar SE16 (SATA)
Caratteristiche costruttive
„ Number of Heads (Physical) 6
„ Capacity
250 GB
„ Number of Platters 3
„ Bytes Per Sector
512
Caratteristiche prestazionali
„ Rotational Speed
7,200 RPM
„ Average Latency4.20 ms
„ Seek Times
„
„
„
„
Read Seek Time
8.9 ms
Write Seek Time
10.9 ms (average)
Track-To-Track Seek Time 2.0 ms (average)
Transfer Rates
„
„
Buffer To Host (Serial ATA) 300 MB/s (Max)
Buffer To Disk
748 Mbits/s (Max)
Fondamenti di Informatica
71