36
Architettura dei calcolatori Architettura dei calcolatori Moreno Marzolla Dipartimento di Informatica—Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/

Architettura dei calcolatori - moreno.marzolla.name · Architettura dei calcolatori 5 Architettura di von Neumann Dati e programmi sono rappresentati allo stesso modo (da sequenze

  • Upload
    lehanh

  • View
    225

  • Download
    1

Embed Size (px)

Citation preview

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?