Upload
lehanh
View
223
Download
1
Embed Size (px)
Architettura dei calcolatoriArchitettura dei calcolatori
Moreno MarzollaDipartimento di Informatica—Scienza e Ingegneria (DISI)
Università di Bolognahttp://www.moreno.marzolla.name/
Architettura dei calcolatori 2
Architettura dei calcolatori 3
Cos'è un computer?
Architettura dei calcolatori 4
Cos'è un computer?
● È un dispositivo in grado di– Elaborare dati– Memorizzare dati– Trasferire dati da e verso l'esterno– Eseguire operazioni di controllo e coordinamento tra le parti
di cui è composto
I/O
Controllo
Elaborazione Memoria
AmbienteEsterno
Architettura dei calcolatori 5
Architettura di von Neumann
● Dati e programmi sono rappresentati allo stesso modo (da sequenze di bit) e contenuti nella stessa memoria
János Lajos Margittai Neumann, 1903—1957, nato in Ungheria e naturalizzato americano col nome di John von Neumann
Architettura dei calcolatori 6
Struttura di un calcolatore:Architettura di von Neumann
Processore(CPU)
MemoriaSottosistemadi interfaccia
(I/O)
Bus di sistema
Esegue le istruzioni elementari richieste dai programmi
Mantiene Dati e Programmi
Permette di comunicare dati e programmi alla macchina e di ottenere i risultati (tastiera, scheda audio, stampante, schermo, mouse...)Elaborazione + Controllo
Memorizzazione
Trasferimento datida/verso l'esterno
Architettura dei calcolatori 7
Architettura a Bus
● Semplicità – Una sola linea di connessione cui è possibile collegare più
dispositivi, anziché un nuovo collegamento per ogni coppia di dispositivi che devono interagire tra loro
● Estensibilità– Nuovi dispositivi possono essere aggiunti in modo semplice
● Standardizzazione– È possibile definire normative che consentono a dispositivi di
produttori diversi di interagire correttamente● Limitata capacità
– Al crescere del numero dei dispositivi, il bus diventa un fattore limitante (collo di bottiglia) delle prestazioni del sistema
Architettura dei calcolatori 8
Memoria
Processore(CPU)
Memoria Sottosistemadi interfaccia
Bus di sistema
Architettura dei calcolatori 9
Memoria e CPU
ALU
R0
R1
RN-1
PC
PSW
IR
Memoria(RAM)
Memoria(RAM)
BusControllo
DatiIndirizzi
Controllo
Architettura dei calcolatori 10
RAM (Random Access Memory)
● La RAM è una sequenza di byte
● Ogni byte è identificato dalla sua posizione (indirizzo di memoria)– byte 0, byte 1, byte 2, ...
● Alcune CPU sono in grado di accedere ai singoli byte; altre accedono a parole (es., gruppi di 4 Byte)
Indirizzo0123
4567
891011
12131415
16171819
Parola
8 bit = 1 byte
Architettura dei calcolatori 11
Unità di misura
Per spazio disco e banda di rete si è soliti usare la base 10
● 1 kilobyte (1 kB)– 1000 B
● 1 megabyte (1 MB)– 10002 = 1.000.000 B
● 1 gigabyte (1 GB)– 10003 B
● 1 terabyte (1 TB)– 10004 B
Per quantità di RAM si è soliti usare la base 2
● 1 kibibyte (1 KiB)– 1024 B
● 1 mebibyte (1 MiB)– 10242 = 1.048.576 B
● 1 gibibyte (1 GiB)– 10243 = 1.073.741.824 B
● 1 tebibyte (1 TiB)– 10244 =
1.099.511.627.776 B
Architettura dei calcolatori 12
Funzionamento della RAM
0 1 1 0 1 1 0 0
16 celle di memoriada 8 bit ciascuna
Dec
odifi
cato
re
linea 0 0linea 1 0linea 2 0linea 3 0linea 4 0linea 5 0linea 6 1linea 7 0linea 8 0linea 9 0linea 10 0linea 11 0linea 12 0linea 13 0linea 14 0linea 15 0
01102
Bus indirizzi
Linee diselezione
Byte selezionato
0 1 1 0 1 1 0 0
Leggi/Scrivi
Bus dicontrollo
Bus Dati
Architettura dei calcolatori 13
Esempio: lettura byte all'indirizzo 01102
MemoriaMemoria
BusControllo = Read
DatiIndirizzi = 0110
Indirizzo Contenuto0 000010101 101010002 000000003 000000004 010100105 111100006 01011010… ...
ALU
R0
R1
RN-1
PC
PSW
IR Controllo
Architettura dei calcolatori 14
Esempio: lettura byte all'indirizzo 01102
MemoriaMemoria
BusControllo = Read
Dati = 01011010Indirizzi = 0110
Indirizzo Contenuto0 000010101 101010002 000000003 000000004 010100105 111100006 01011010… ...
ALU
R0
R1
RN-1
PC
PSW
IR Controllo
Architettura dei calcolatori 15
Esempio: scrittura di 000001012 all'indirizzo 0110
2
MemoriaMemoria
BusControllo = Write
Dati = 00000101Indirizzi = 0110
Indirizzo Contenuto0 000010101 101010002 000000003 000000004 010100105 111100006 00000101… ...
ALU
R0
R1
RN-1
PC
PSW
IR Controllo
Architettura dei calcolatori 16
Vari tipi di memoria
RAM
I/O
Bus di sistema
Cache
CPU
HardDisk
I/O
CD/DVD
Accesso molto veloceCosto elevatoLimitata capacità
Accesso veloceCosto contenutoAmpia capacità
Accesso lento/molto lentoCosto bassoVastissima capacità
Architettura dei calcolatori 17
Architettura di von Neumann
Processore(CPU)
MemoriaSottosistemadi interfaccia
(I/O)
Bus di sistema
Architettura dei calcolatori 18
Hard Disk meccanici
● Negli hard disk meccanici i dati vengono memorizzati in tracce concentriche sulle superfici di dischi magnetici rotanti
● Un blocco composto da testine di lettura/scrittura "sorvola" tutte le superfici per accedere ai dati richiesti
By Eric Gaba, Wikimedia Commons user Sting, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=11278668
Asse di rotazione
Movimento delle testine
Architettura dei calcolatori 19
Hard disk meccanico vs hard disk a stato solido (SSD)
● Gli hard disk a stato solido sono generalmente più veloci di quelli meccanici – non hanno parti in movimento
● ...ma sono anche più costosi, quindi meno capienti a parità di prezzo
L'utente che ha caricato in origine il file è stato Rochellesinger di Wikipedia in inglese - Trasferito da en.wikipedia su Commons da ivob., CC BY-SA 2.5, https://commons.wikimedia.org/w/index.php?curid=5832378
Architettura dei calcolatori 20
Architettura di von Neumann
Processore(CPU)
MemoriaSottosistemadi interfaccia
(I/O)
Bus di sistema
Architettura dei calcolatori 21
CPU
ALU
R0
R1
RN-1
PC
PSW
IR
MemoriaMemoria
BusControllo
DatiIndirizzi
Controllo
Architettura dei calcolatori 22
Componenti della CPU
● Un certo numero N di registri di uso generale R0...R
N-1
– Di solito, ma non necessariamente, un registro contiene 32 bit = 1 parola
● PC (Program Counter)– Indica l'indirizzo di memoria che contiene la prossima
istruzione da eseguire● IR (Instruction Register)
– Contiene il codice numerico che rappresenta l'istruzione che deve essere eseguita
● PSW (Program Status Word)– Informazioni sullo stato del programma (es: se l'ultima
operazione aritmetica ha causato overflow, se l'ultima operazione aritmetica ha dato zero come risultato, ...)
Architettura dei calcolatori 23
Ciclo Fetch-Decode-Execute
Fetch
Decode
Execute
Preleva dalla memoria l'istruzione da eseguire; l'istruzione viene letta dall'indirizzo di memoria che si trova in PC; il contenuto viene posto in IR
Esamina l'istruzione memorizzata in IR per decidere quali operazioni richiede
Esegue l'istruzione memorizzata in IR, incluso il recupero dalla memoria degli eventuali parametri necessari ad eseguirla, e deposito del risultato. Aggiorna il PC per la prossima istruzione.
Architettura dei calcolatori 24
Tipi di istruzioni
● Istruzioni Aritmetico-Logiche– Esempio: Somma il contenuto di Ri al contenuto di Rj;
memorizza il risultato nel registro Rk● Istruzioni di controllo del flusso di esecuzione
– Esempio: Salta ad eseguire l'istruzione il cui codice è contenuto nella cella di memoria all'indirizzo M
● Istruzioni di letture/scrittura di memoria– Esempio: Copia il valore del byte/della parola in memoria
all'indirizzo M nel registro Ri● Istruzioni di Input/Output
– Esempio: Invia il contenuto del registro Ri al dispositivo di I/O numero z
Architettura dei calcolatori 25
Formato di una istruzione
● Le istruzioni sono rappresentate da sequenze di bit– In alcuni processori ogni istruzione è codificata con 4 Byte =
32 bit = 1 parola– Altri (es., Intel x86) codifcano istruzioni diverse con un
diverso numero di byte● Se le istruzioni sono codificate con 32 bit, l'IR deve
essere ampio esattamente 32 bit● All'interno dei 32 bit, occorre indicare:
– Il tipo di istruzione da eseguire (somma, prodotto, salto, confronto, copia da memoria...)
– Gli eventuali parametri dell'istruzione (quali registri sono coinvolti, quali locazioni di memoria sono coinvolte, ecc.)
Architettura dei calcolatori 26
Esempio
● Una ipotetica istruzione di somma
“Somma i valori contenuti nei registri Ri e Rj; poni il risultato nel registro Rk”
● Supponiamo di avere 256 possibili registri● Una possibile codifica dell'istruzione è la seguente:
ADD Ri, Rj, Rk
00000001 8 bit 8 bit 8 bit
Codice istruzione i j k
Architettura dei calcolatori 27
Esempio
● Esempio:
00000001 00011100 00000010 10000000
1 Byte 1 Byte 1 Byte 1 Byte
1 parola = 4 Byte
Istruzione=ADD
Primo Addendo:Registro 28
Secondo Addendo:Registro 2
Risultato va nelRegistro 128
Architettura dei calcolatori 28
ALU
3710
2110
100010
Controllo
MemoriaMemoriaR2
R28
R128
PC
IR
PSW
0000000121000
10
0001110021001
10
0000001021002
10
1000000021003
10
0000011021004
10
0010011021005
10
0100011021006
10
1011011021007
10
Indirizzo Contenuto32 bit = 1 parolaEsempio
Architettura dei calcolatori 29
ALU
3710
2110
100010
Controllo
MemoriaMemoriaR2
R28
R128
PC
IR
PSW
0000000121000
10
0001110021001
10
0000001021002
10
1000000021003
10
0000011021004
10
0010011021005
10
0100011021006
10
1011011021007
10
Indirizzo Contenuto32 bit = 1 parolaFetch
Architettura dei calcolatori 30
ALU
3710
2110
100010
00000001000111000000001010000000 Controllo
MemoriaMemoriaR2
R28
R128
PC
IR
PSW
0000000121000
10
0001110021001
10
0000001021002
10
1000000021003
10
0000011021004
10
0010011021005
10
0100011021006
10
1011011021007
10
Indirizzo Contenuto32 bit = 1 parolaFetch
Architettura dei calcolatori 31
ALU
3710
2110
100010
00000001000111000000001010000000 Controllo
MemoriaMemoriaR2
R28
R128
PC
IR
PSW
0000000121000
10
0001110021001
10
0000001021002
10
1000000021003
10
0000011021004
10
0010011021005
10
0100011021006
10
1011011021007
10
Indirizzo Contenuto32 bit = 1 parolaDecode
ADD
Architettura dei calcolatori 32
ALU
3710
2110
5810
100010
00000001000111000000001010000000 Controllo
MemoriaMemoriaR2
R28
R128
PC
IR
PSW
0000000121000
10
0001110021001
10
0000001021002
10
1000000021003
10
0000011021004
10
0010011021005
10
0100011021006
10
1011011021007
10
Indirizzo Contenuto32 bit = 1 parolaExecute
ADD
Architettura dei calcolatori 33
ALU
3710
2110
5810
100410
00000001000111000000001010000000 Controllo
MemoriaMemoriaR2
R28
R128
PC
IR
PSW
0000000121000
10
0001110021001
10
0000001021002
10
1000000021003
10
0000011021004
10
0010011021005
10
0100011021006
10
1011011021007
10
Indirizzo Contenuto32 bit = 1 parolaFetch
Architettura dei calcolatori 34
Esempio
● Ipotetica istruzione di trasferimento registro → memoria
“Copia il contenuto del registro Ri nella cella di memoria di indirizzo m”
● Una possibile codifica
STORE Ri, m
00000010 8 bit 16 bit
Codice istruzione i m
Architettura dei calcolatori 35
Domanda
● Considerando l'istruzione STORE Ri,m rappresentata come sopra, quanto grande può essere la memoria accessibile all'istruzione?
● Risposta– L'indirizzo m della destinazione è espresso con 16 bit– L'intero più grande rappresentabile con 16 bit è 216-1 =
65535– Quindi la memoria massima indirizzabile con l'istruzione STORE è di 65536 Byte (numerati da 0 a 65535)
00000010 8 bit 16 bit
Codice istruzione i m
Architettura dei calcolatori 36
Domanda
● La CPU di un computer ha il registro PC di 20 bit e una memoria RAM di 220 B (1 MiB). È possibile aumentare la memoria RAM destinata all'esecuzione dei programmi senza cambiare la CPU?