33
Architettura dei calcolatori Architettura dei calcolatori Moreno Marzolla Dipartimento di Informatica—Scienza e Ingegneria (DISI) Università di Bologna https://www.moreno.marzolla.name/ Cap. 2 dispensa

Architettura dei calcolatori - Moreno Marzolla Home Page · 2020. 4. 22. · Architettura dei calcolatori 6 Architettura a Bus Semplicità – Una sola linea di connessione cui è

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

  • Architettura dei calcolatoriArchitettura dei calcolatori

    Moreno MarzollaDipartimento di Informatica—Scienza e Ingegneria (DISI)

    Università di Bolognahttps://www.moreno.marzolla.name/

    Cap. 2 dispensa

  • Architettura dei calcolatori 2

  • Architettura dei calcolatori 3

    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 4

    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 5

    Struttura di un calcolatore:Architettura di von Neumann

    Processore(CPU) Memoria

    Sottosistemadi 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 6

    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 7

    Memoria e CPU

    ALU

    R0

    R1

    RN-1

    PC

    PSW

    IR

    Memoria(RAM)

    Memoria(RAM)

    BusControllo

    DatiIndirizzi

    Controllo

  • Architettura dei calcolatori 8

    Memoria

    Processore(CPU) Memoria

    Sottosistemadi interfaccia

    Bus di sistema

  • Architettura dei calcolatori 9

    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 10

    Unità di misuraPer 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 11

    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 12

    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 13

    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 14

    Architettura di von Neumann

    Processore(CPU) Memoria

    Sottosistemadi interfaccia

    (I/O)

    Bus di sistema

  • Architettura dei calcolatori 15

    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

    https://commons.wikimedia.org/w/index.php?curid=11278668

  • Architettura dei calcolatori 16

    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 17

    Architettura di von Neumann

    Processore(CPU) Memoria

    Sottosistemadi interfaccia

    (I/O)

    Bus di sistema

  • Architettura dei calcolatori 18

    CPU

    ALU

    R0

    R1

    RN-1

    PC

    PSW

    IR

    MemoriaMemoria

    BusControllo

    DatiIndirizzi

    Controllo

  • Architettura dei calcolatori 19

    Componenti della CPU● Un certo numero N di registri di uso generale R

    0...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 20

    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 21

    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 22

    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) rappresentano 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 23

    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 24

    Esempio

    00000001 00011100 00000010 100000001 Byte 1 Byte 1 Byte 1 Byte

    1 parola = 4 Byte

    Istruzione=ADDPrimo Addendo:Registro 28Secondo Addendo:Registro 2Risultato va nelRegistro 128

  • Architettura dei calcolatori 25

    ALU

    3710

    2110

    100010

    Controllo

    MemoriaMemoriaR2

    R28

    R128

    PC

    IR

    PSW

    000000012100010000111002100110000000102100210100000002100310000001102100410001001102100510010001102100610101101102100710

    Indirizzo Contenuto32 bit = 1 parolaEsempio

  • Architettura dei calcolatori 26

    ALU

    3710

    2110

    100010

    Controllo

    MemoriaMemoriaR2

    R28

    R128

    PC

    IR

    PSW

    000000012100010000111002100110000000102100210100000002100310000001102100410001001102100510010001102100610101101102100710

    Indirizzo Contenuto32 bit = 1 parolaFetch

  • Architettura dei calcolatori 27

    ALU

    3710

    2110

    100010

    00000001000111000000001010000000 Controllo

    MemoriaMemoriaR2

    R28

    R128

    PC

    IR

    PSW

    000000012100010000111002100110000000102100210100000002100310000001102100410001001102100510010001102100610101101102100710

    Indirizzo Contenuto32 bit = 1 parolaFetch

  • Architettura dei calcolatori 28

    ALU

    3710

    2110

    100010

    00000001000111000000001010000000 Controllo

    MemoriaMemoriaR2

    R28

    R128

    PC

    IR

    PSW

    000000012100010000111002100110000000102100210100000002100310000001102100410001001102100510010001102100610101101102100710

    Indirizzo Contenuto32 bit = 1 parolaDecode

    ADD

  • Architettura dei calcolatori 29

    ALU

    3710

    2110

    5810

    100010

    00000001000111000000001010000000 Controllo

    MemoriaMemoriaR2

    R28

    R128

    PC

    IR

    PSW

    000000012100010000111002100110000000102100210100000002100310000001102100410001001102100510010001102100610101101102100710

    Indirizzo Contenuto32 bit = 1 parolaExecute

    ADD

  • Architettura dei calcolatori 30

    ALU

    3710

    2110

    5810

    100410

    00000001000111000000001010000000 Controllo

    MemoriaMemoriaR2

    R28

    R128

    PC

    IR

    PSW

    000000012100010000111002100110000000102100210100000002100310000001102100410001001102100510010001102100610101101102100710

    Indirizzo Contenuto32 bit = 1 parolaFetch

  • Architettura dei calcolatori 31

    Esempio● Ipotetica istruzione di trasferimento registro →

    memoria

    “Copia il contenuto del registro Ri a partire dalla cella di memoria di indirizzo m”

    ● Una possibile codifica

    STORE Ri, m

    00000010 8 bit 16 bit

    Codice istruzione i m

  • Architettura dei calcolatori 32

    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 33

    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?