Architettura di un calcolatore

Transcript

Architettura di un calcolatore
Corso di Fondamenti di Informatica
Corso di Laurea in Ingegneria Gestionale (L-Z)
2. Architettura di un calcolatore
Ing. Michele Ruta
1 di 31
Architettura di un calcolatore
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
Sommario
• Architettura di base: il modello della macchina di Von
Neumann:
–
–
–
–
Memoria
CPU
Bus
Interfacce
• Esempio:
– Dall’algoritmo al programma
– Fasi di esecuzione di un’istruzione
2 di 31
Architettura di un calcolatore
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
Macchina di Von Neumann
ƒ Unità di Elaborazione (CPU - Central Processing Unit):
insieme di microchip per acquisire interpretare ed
eseguire le istruzioni di un programma.
ƒ Memoria centrale (RAM- Random Access Memory):
contiene informazioni necessarie all’esecuzione di un
programma (istruzioni e dati).
ƒ Bus di sistema:
opera il collegamento tra gli elementi funzionali
ƒ Interfacce:
forniscono il collegamento verso le periferiche che
permettono lo scambio di informazioni tra elaboratore e
mondo esterno (I/O)
3 di 31
Architettura di un calcolatore
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
Macchina di Von Neumann
Collegamento
Bus di sistema
Unità di
Elaborazione
(CPU)
Esecuzione istruzioni
4 di 31
Memoria
Centrale
(MM)
Interfaccia
Periferica P1
Memoria di lavoro
Architettura di un calcolatore
Interfaccia
Periferica P2
Memoria di massa,
stampante, terminale…
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
Macchina di Von Neumann
Componenti e ruoli
ƒ La CPU estrae, decodifica ed esegue istruzioni (elaborazione o
trasferimento di informazione) della memoria.
ƒ Il bus di sistema effettua il collegamento logico/fisico tra gli
elementi funzionali in base al trasferimento da attuare.
ƒ Le fasi di elaborazione si susseguono in modo sincrono rispetto
alla scansione temporale imposta da un clock di sistema.
ƒ L’unità di controllo della CPU coordina durante ogni intervallo
di tempo l’esecuzione delle funzioni da svolgere all’interno della
CPU o presso gli altri elementi funzionali.
LIMITE: esecuzione in sequenza
5 di 31
Architettura di un calcolatore
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
Codifica di dati e istruzioni
ƒ Tutti i dati e le istruzioni di programma vengono codificati in forma
binaria ossia come sequenze finite di 0 e 1
ƒ Si parla di bit (binary digit, b):
ƒ più piccola unità di informazione memorizzabile o elaborabile
ƒ corrisponde allo stato di un dispositivo fisico
ƒ … e di byte (B): 8 bit
ƒ Codifica dati: cfr. “Codifica binaria dell’informazione”
ƒ Codifica istruzioni (elaborazione o trasferimento):
ƒ codice operativo: specifica la tipologia di operazione da compiere
ƒ operandi: specifica la locazione dei dati da elaborare o trasferire.
6 di 31
Architettura di un calcolatore
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
Memoria centrale – MM
ƒ Accoglie dati e programmi necessari al lavoro di un elaboratore
ƒ E’ un “passaggio obbligato” per l’informazione da e verso la periferia
(le operazioni comportano I/O)
ƒ E’ volatile e non permanente (come invece è la memoria di massa)
ƒ Concettualmente: sequenza di celle di memoria, ciascuna
contenente una parola: sequenza di byte di dimensione variabile a
seconda del calcolatore (>=4 byte)
ƒ Tecnologicamente:
ƒ dispositivi a semiconduttore;
ƒ “struttura matriciale” ove le righe rappresentano le word e le colonne,
in numero pari alla lunghezza della parola, ciascun bit di memoria
ƒ informazione memorizzata come stato di tensione (1 alto – 0 basso)
nelle posizioni di memoria agli incroci tra righe e colonne
7 di 31
Architettura di un calcolatore
M. Ruta
Fondamenti di Informatica
Memoria centrale – MM
A.A. 2009-10
Operazioni sulla memoria (controllate dalla CPU con l’uso del bus):
ƒ Indirizzamento della MM (selezione di una particolare cella):
ƒ Indirizzo: posizione relativa rispetto alla prima cella (posizione 0)
ƒ Uso di un apposito registro indirizzi (AR)
ƒ Lettura dalla MM:
ƒ Carica (load) il registro dati (DR) con la parola di memoria contenuta
nella cella indirizzata
ƒ Scrittura in MM:
ƒ Deposita (store) il contenuto del registro dati (DR) nella parola di
memoria indirizzata
REGISTRO = banco di memorizzazione interno al chip della CPU
Caratteristiche:
ƒ Altissima velocità di accesso
ƒ Bassissima capienza
8 di 31
Architettura di un calcolatore
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
Memoria centrale (MM)
h = 16 bit
Dati e
istruzioni
0
1
Address Register (AR)
store
k = 10 bit
load
9 di 31
Data Register (DR)
h = 16 bit
Dato da
leggere/scrivere
Indirizzo cella
Spazio di
indirizzamento
210=1024
Parola (word)
1023
Architettura di un calcolatore
M. Ruta
Fondamenti di Informatica
RAM e ROM
A.A. 2009-10
ƒ RAM (Random Access Memory):
ƒ memoria ad accesso casuale: indirizzabile alla
word per operazioni di lettura e scrittura
ƒ ROM (Read Only Memory):
ƒ aree di memoria a sola lettura, inizializzate dal costruttore con
dati e programmi che servono al funzionamento del sistema
(contenuto protetto)
ƒ contenuto persistente (usate nei microcontrollori presenti
all’interno di dispositivi come centraline, autoradio)
10 di 31
Architettura di un calcolatore
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
ROM
Classificazione in base alla modalità di scrittura in fabbrica:
ƒ EROM (Erasable ROM): cancellabile con fasci di raggi
ultravioletti e riutilizzabili
ƒ PROM (Programmable ROM): non scritte in fase di
costruzione, ma successivamente, con i cosiddetti
programmatori di ROM
ƒ EPROM (Erasable Programmable ROM)
Il software ospitato nelle ROM prende il nome di
FIRMWARE per la sua natura intermedia tra hardware
(non modificabilità durante l’esecuzione) e software
(programmabilità)
11 di 31
Architettura di un calcolatore
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
Unità di elaborazione (CPU)
ƒ Esegue i programmi in memoria centrale prelevando, decodificando
ed eseguendo una dopo l’altra le istruzioni
ƒ Contiene gli elementi circuitali che regolano il funzionamento
dell’elaboratore:
ƒ unità di controllo:
ƒ prelievo e decodifica di istruzioni
ƒ invio segnali di controllo che provocano i trasferimenti o le
elaborazioni necessari per l’esecuzione dell’istruzione decodificata
ƒ orologio di sistema (clock):
ƒ sincronizza le operazioni rispetto ad una data frequenza
ƒ unità aritmetico-logica (ALU, Arithmetic Logic Unit):
ƒ realizza le operazioni aritmetiche e logiche eventualmente richieste
per l’esecuzione dell’istruzione
12 di 31
Architettura di un calcolatore
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
Registri della CPU
Registro: supporto di memoria interno alla CPU, utilizzabile per memorizzare
risultati parziali o informazioni di controllo
ƒ Registro dati (DR): lungo quanto una parola (h bit)
ƒ Registro Indirizzi (AR) : lungo k bit
ƒ Registro Istruzione Corrente (IR, Instruction Register): lungo h bit,
contiene, istante per istante, l’istruzione in esecuzione
ƒ Contatore di programma (PC, Program Counter): lungo k bit, contiene
l’indirizzo della successiva istruzione da eseguire
ƒ Registro interruzioni (IntR, Interrupt Register): contiene informazioni per la
gestione di eventuali eventi anomali (interruzioni)
ƒ Registri per operandi e risultati delle elaborazioni aritmetico-logiche svolte
dall’ALU (in numero di due tipicamente indicati con A e B)
ƒ Registri di lavoro: in numero sufficientemente elevato, contengono dati e
istruzioni di uso frequente o risultati intermedi, leggibili e scrivibili
velocemente, senza operazioni di load e store
13 di 31
Architettura di un calcolatore
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
ALU
ƒ Capace anche di operazioni molto complesse (per
semplicità negli esempi si citeranno solo le 4 operazioni
fondamentali)
ƒ Attivata dall’unità di controllo mediante un apposito
codice operativo
ƒ Adopera i registri operandi (A e B) caricati con i dati
prima dell’esecuzione dell’operazione
ƒ Il registro A è caricato con il risultato dell’operazione
dopo un certo intervallo necessario all’esecuzione della
stessa, misurato dall’orologio di sistema
ƒ nel caso di divisione intera il resto viene messo in B; per altre
operazioni il contenuto di B resta indefinito
14 di 31
Architettura di un calcolatore
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
ALU - Registro di stato
SR (State Register): riporta indicazioni relative al risultato
delle operazioni svolte dalla ALU in alcuni suoi bit:
1. Bit di carry, indica la presenza di un riporto (carry over)
2. Bit zero, indica la presenza di un valore nullo in A
3. Bit di segno, riporta il segno del risultato dell’operazione
aritmetica
4. Bit di overflow, rileva la condizione di overflow (se il
risultato dell’ultima operazione supera il valore 2h,
massimo valore rappresentabile in A, se A è lungo h bit)
15 di 31
Architettura di un calcolatore
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
Clock di sistema
ƒ Tempificatore, sincronizza le operazioni della macchina:
– L’esecuzione di una singola istruzione di macchina può
prevedere più cicli di clock
– Il clock è tarato in modo che in un intervallo di sincronizzazione
si possa effettuare un’operazione ma non quella successiva:
ƒ Il trasferimento dell’informazione avviene mediante il transito
continuo di segnali elettrici verso i dispositivi
ƒ Ogni dispositivo è caratterizzato da una porta indirizzabile
(afferente ad un controller) normalmente chiusa (circuito aperto), in
modo tale da non consentire l’ingresso di dati e la sovrascrittura di
quelli già contenuti
ƒ Un segnale di controllo proveniente dall’unità di controllo apre la
porta del dispositivo (chiusura del circuito) su cui si deve effettuare
un’operazione; un altro segnale la richiude dopo che l’operazione
viene eseguita
16 di 31
Architettura di un calcolatore
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
Unità di elaborazione (CPU)
Stato CPU
Flag: C, Z, S, V
Indirizzo istruzione successiva
Registro contatore
di programma (PC)
Registro di stato (SR)
Operazioni aritmetiche
e logiche
Unità
aritmetico
logicaoperandi
Registri
(ALU)
A
Registro
interruzioni (IntR)
B
Registri generali
Registro istruzione
corrente (IR)
Unità di controllo
(CU)
Istruzione in elaborazione
Clock
Parola letta/da scrivere in MM
Sincronizzazione
Registro dati (DR)
17 di 31
Indirizzo cella MM
Registro indirizzi (AR)
Architettura di un calcolatore
Controllo:
-Prelievo
-Decodifica
-Esecuzione
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
Bus di sistema
ƒ Insieme di connessioni elementari lungo cui viene
trasferita l’informazione (trasferendo valori di tensione)
ƒ Collegamento aperto (non limitato ad un estremo) su cui
si interfacciano le varie unità funzionali
ƒ In ogni istante di tempo collega un’unità funzionale
trasmittente ed una ricevente dati (CPU con memoria o
CPU con interfaccia periferica mediante controller)
ƒ Sotto il controllo della CPU, che seleziona l’interfaccia da
attivare (porta) e indica l’operazione da compiere: la
CPU ha il ruolo di master, le altre unità funzionali di
slave
18 di 31
Architettura di un calcolatore
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
Bus di sistema
Classificazione delle linee in base al tipo di informazione trasportata:
ƒ Bus dati:
ƒ trasferisce dati dall’unità master alla slave e viceversa
ƒ trasferimento in parallelo grazie alla presenza di molte linee
ƒ trasferisce tutti i bit di una parola contemporaneamente,
dedicando una linea a ciascuno di essi (se il numero di linee del
bus dati non è inferiore a quello dei bit della parola)
ƒ Bus indirizzi: trasferisce indirizzi (per esempio l’indirizzo contenuto
nel registro indirizzi alla memoria centrale per l’indirizzamento)
ƒ Bus controlli: trasferisce dall’unità master alla slave un codice
corrispondente all’istruzione da eseguire e dall’unità slave alla
master informazioni sull’espletamento dell’operazione
19 di 31
Architettura di un calcolatore
M. Ruta
Fondamenti di Informatica
Bus di sistema
A.A. 2009-10
CPU
Registro di stato (SR)
Registro contatore
di programma (PC)
A
Registro
interruzioni (IntR)
B
Unità
aritmetico
logica
Registro istruzione
corrente (IR)
Unità di controllo
(CU)
Clock
Registro indirizzi
(AR)
Registro dati (DR)
Master/slave
Bus dati, Bus indirizzi, Bus controlli
Bus di sistema
20 di 31
Architettura di un calcolatore
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
Sequenza di lettura
0
SR
PC
IntR
A
ALU
B
123
IR
CU
Passo 3
42
Passo 1
Ck
Passo 24
Passo
DR
42
AR
123
1023
READ
OK
indirizzi
dati
controlli
21 di 31
Architettura di un calcolatore
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
Sequenza di scrittura
0
SR
PC
IntR
A
ALU
B
123
123
IR
CU
Passo 2
Passo 1
Ck
DR
70
70
42
Passo 5
3
AR
123
Passo 4
1023
WRITE
OK
indirizzi
dati
controlli
22 di 31
Architettura di un calcolatore
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
•
•
•
•
Interfacce delle periferiche
Costituiscono gli elementi circuitali per il collegamento dell’elaboratore alla
periferia
Molto diverse a seconda del tipo di periferica (alcune sono “intelligenti”,
ossia dotate di proprie unità di controllo per convertire ed elaborare dati al
posto della CPU), si parla di controller
Contengono registri e memorie tampone (buffer) per ospitare i comandi da
inviare alla periferica, scambiare dati con essa e controllarne il
funzionamento
Componenti delle interfacce:
– Registro dati della periferica (PDR, Peripheral Data Register): consente lo
scambio bidirezionale di dati con la periferica; collegato al bus dati
– Registro comandi della periferica (PCR, Peripheral Command Register): contiene
il comando che la periferica dovrà eseguire; collegato al bus controlli
– Registro di stato della periferica (PSR, Peripheral Status Register): contiene
informazioni sullo stato della periferica
• Esse sono trasferite alla CPU tramite il bus oppure se il registro è direttamente
collegato alla CPU con circuiti elettrici speciali, l’informazione concorre a riempire l’IntR
23 di 31
Architettura di un calcolatore
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
Interfacce delle periferiche
Interfaccia periferica 1
Peripheral Data
Register (PDR)
Interfaccia periferica 2
Peripheral Data
Dato da leggere/scrivere
Register (PDR)
Peripheral Command
Register (PCR)
Comando daPeripheral
eseguireCommand
Peripheral State
Register (PSR)
Stato della periferica
Register (PSR)
Register (PCR)
Peripheral State
Bus di sistema
24 di 31
Architettura di un calcolatore
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
Esempio
Supponiamo di voler calcolare il valore dell’espressione:
z = (a+b)·(c+d)
leggendo i valori delle variabili a, b, c, d dal dispositivo
di input e scrivendo il risultato sul dispositivo di output
1.
2.
3.
4.
5.
Leggi dal dispositivo di input il valore delle variabili a, b, c, d
Somma il valore di a al valore di b
Salva il risultato parziale ottenuto
Somma il valore di c al valore di d
Moltiplica il risultato parziale appena ottenuto con quello
precedentemente salvato
6. Scrivi sul dispositivo di output il risultato della valutazione
complessiva
7. Termina l’esecuzione del programma.
25 di 31
Architettura di un calcolatore
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
1.
2.
3.
4.
5.
6.
7.
Esempio
Scrivi nella cella di memoria centrale riservata al valore della variabile a il valore letto dal
dispositivo di input (disponibile nel registro dati della periferica). Ripeti per b, c, d
Somma il valore di a al valore di b
–
Copia il contenuto della cella di memoria riservata ad a nel registro A
–
Copia il contenuto della cella di memoria riservata a b nel registro B
–
Somma il contenuto dei registri A e B
Salva il risultato parziale, contenuto nel registro A, in una cella di memoria predisposta per il
risultato (z)
Somma il valore di c al valore di d
–
Copia il contenuto della cella di memoria riservata a c nel registro A
–
Copia il contenuto della cella di memoria riservata a d nel registro B
–
Somma il contenuto dei registri A e B
Moltiplica il risultato parziale appena ottenuto con quello precedentemente salvato
–
Copia il contenuto della cella riservata a z nel registro B (z e B contengono ora a+b,
mentre A contiene c+d)
–
Moltiplica il contenuto dei registri A e B
Scrivi sul dispositivo di output il risultato della valutazione complessiva
–
Memorizza il risultato appena calcolato (e disponibile nel registro A) nella cella di
memoria riservata a z
–
Copia il contenuto della cella di memoria riservata a z nel registro dati della periferica di
uscita
Termina l’esecuzione del programma.
26 di 31
Architettura di un calcolatore
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
0100000000010000
0100000000010001
0100000000010010
0100000000010011
0000000000010000
0001000000010001
0110000000000000
0010000000010100
0000000000010010
0001000000010011
0110000000000000
0001000000010011
1000000000000000
0010000000010100
0101000000010100
1101000000000000
27 di 31
Forma binaria
Leggi un valore dall’input e mettilo nella cella 16 (a)
Leggi un valore dall’input e mettilo nella cella 17 (b)
Leggi un valore dall’input e mettilo nella cella 18 (c)
Leggi un valore dall’input e mettilo nella cella 19 (d)
Carica il contenuto della cella 16 (a) nel registro A
Carica il contenuto della cella 17 (b) nel registro B
Somma i registri A e B
Scarica il contenuto di A nella cella 20 (z) (ris.parziale)
Carica il contenuto della cella 18 (c) nel registro A
Carica il contenuto della cella 19 (d) nel registro B
Somma i registri A e B
Carica il contenuto della cella 20 (z) (ris. parziale) in B
Moltiplica i registri A e B
Scarica il contenuto di A nella cella 20 (z) (ris. totale)
Scrivi il contenuto della cella 20 (z) (ris. totale) in output
Halt
Architettura di un calcolatore
M. Ruta
Fondamenti di Informatica
Stato della memoria
A.A. 2009-10
28 di 31
Cella 0
0100000000010000
1
0100000000010001
2
0100000000010010
3
0100000000010011
4
0000000000010000
5
0001000000010001
6
0110000000000000
7
0010000000010100
8
0000000000010010
9
0001000000010011
10
0110000000000000
11
0001000000010011
12
1000000000000000
13
0010000000010100
14
0101000000010100
15
1101000000000000
Spazio riservato per a
16
Spazio riservato per b
17
Spazio riservato per c
18
Spazio riservato per d
19
Spazio riservato per z
20
Architettura di un calcolatore
M. Ruta
Fondamenti di Informatica
Fetch 1a istruzione
A.A. 2009-10
Memoria centrale (MM)
Passo 1
0
PC
0100000000010000
Passo 2
0000000001
0000000000
Passo 4
AR
0000000000
1023
DR
0100000000010000
Passo 3
IR
29 di 31
Architettura di un calcolatore
0100000000010000
M. Ruta
Fondamenti di Informatica
A.A. 2009-10
IR
Interpretazione 1a istruzione
0100000000010000
Codice operativo 0100 = leggi da input
30 di 31
Architettura di un calcolatore
M. Ruta
Fondamenti di Informatica
Esecuzione 1a istruzione
A.A. 2009-10
Memoria centrale (MM)
0
Indirizzo operando
00000010000 = cella 16
IR
0100000000010000
16
Passo 3
0001000000011111
Passo 1
AR
0000010000
1023
DR
0001000000011111
Passo 2
Valore di a letto dall’input (es. 4127)
31 di 31
Architettura di un calcolatore
PDR
0001000000011111
M. Ruta