Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Architettura dei calcolatori
Moreno Marzolla Dipartimento di Informatica—Scienza e Ingegneria (DISI) Università di Bologna
2
Architettura dei calcolatori
Copyright © 2016, 2017, Moreno Marzolla, Università di Bologna, Italy ( This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) License. To view a copy of this license, visit or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA. Architettura dei calcolatori
3
Architettura dei calcolatori
Cos'è un computer? Dal punto di vista tecnologico è quasi impossibile dare una definizione La tecnologia evolve rapidamente I computer di oggi sono molto diversi da quelli degli anni '60 I computer di domani saranno quasi sicuramente molto diversi da quelli di oggi Nonostante questo, dal punto di vista funzionale ci sono delle caratteristiche comuni Architettura dei calcolatori
4
Architettura dei calcolatori
Cos'è un computer? E' 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 Controllo I/O Ambiente Esterno Elaborazione Memoria 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) Memoria Sottosistema di 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...) Memorizzazione Elaborazione + Controllo Trasferimento dati da/verso l'esterno Architettura dei calcolatori
7
Architettura dei calcolatori
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 E' 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
Architettura dei calcolatori
Memoria Processore (CPU) Memoria Sottosistema di interfaccia Bus di sistema Architettura dei calcolatori
9
Architettura dei calcolatori
Memoria e CPU Bus Dati Indirizzi Controllo Memoria R1 R2 ALU Rn PC Controllo IR PSW Architettura dei calcolatori
10
Architettura dei calcolatori
RAM 8 bit Indirizzo Parola 1 2 3 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) 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Architettura dei calcolatori
11
Architettura dei calcolatori
Unità di misura 1 Kilo Byte (1KB) 210 = 1024 ≈1000 Byte 1 Mega Byte (1MB) 220 = ≈ Byte 1 Giga Byte (1GB) 230 = ≈109 Byte 1 Tera Byte (1TB) 240 = ≈1012 Byte Architettura dei calcolatori
12
Funzionamento della RAM
Linee di selezione 16 celle di memoria da 8 bit ciascuna linea linea 1 0 linea 2 0 linea 3 0 linea 4 0 linea 5 0 linea 6 1 linea 7 0 linea 8 0 linea 9 0 linea 10 0 linea 11 0 linea 12 0 linea 13 0 linea 14 0 linea 15 0 Byte selezionato 1 1 1 1 01102 Bus indirizzi Bus di controllo Leggi/Scrivi Decodificatore 1 1 1 1 Bus Dati Architettura dei calcolatori
13
Esempio: lettura byte all'indirizzo 01102
Bus Dati Indirizzi = 0110 Controllo = Read Memoria R1 Indirizzo Contenuto … ... R2 ALU Rn PC Controllo IR PSW Architettura dei calcolatori
14
Esempio: lettura byte all'indirizzo 01102
Bus Dati = Indirizzi = 0110 Controllo = Read Memoria R1 Indirizzo Contenuto … ... R2 ALU Rn PC Controllo IR PSW Architettura dei calcolatori
15
Esempio: scrittura di 000001012 all'indirizzo 01102
Bus Dati = Indirizzi = 0110 Controllo = Read Memoria R1 Indirizzo Contenuto … ... R2 ALU Rn PC Controllo IR PSW Architettura dei calcolatori
16
Architettura dei calcolatori
Vari tipi di memoria Accesso lento/molto lento Costo basso Vastissima capacità Accesso molto veloce Costo elevato Limitata capacità Accesso veloce Costo contenuto Ampia capacità Hard Disk CD/ DVD RAM CPU Cache I/O I/O La memoria cache contiene una copia del contenuto delle locazioni di memoria accedute recentemente I programmi tendono a dimostrare località spaziale e località temporale nell'accesso alla memoria Località spaziale: se in un certo momento accedo alla locazione di memoria x, è molto probabile che in seguito accederà a locazioni “vicine” (es., x + 1) Località temporale: se in un certo momento accedo alla locazione di memoria x, è molto probabile che a breve distanza di tempo accederò nuovamente a x Bus di sistema Architettura dei calcolatori
17
Architettura dei calcolatori
Hard Disk meccanici Asse di rotazione Movimento delle testine By Eric Gaba, Wikimedia Commons user Sting, CC BY-SA 3.0, 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 Architettura dei calcolatori
18
Architettura di Von Neumann
Processore (CPU) Memoria Sottosistema di interfaccia (I/O) Bus di sistema Architettura dei calcolatori
19
Architettura dei calcolatori
CPU Bus Dati Indirizzi Controllo Memoria R1 R2 ALU Rn PC Controllo IR PSW Architettura dei calcolatori
20
Architettura dei calcolatori
Componenti della CPU N registri di uso generale R1...RN 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 dell'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
21
Ciclo 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 Decode 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. Execute Architettura dei calcolatori
22
Architettura dei calcolatori
Tipi di istruzioni Istruzioni Aritmetico-Logiche Esempio: Somma due valori contenuti in due registri; salva il risultato in un terzo registro Istruzioni di controllo del flusso di esecuzione Esempio: Salta ad eseguire l'istruzione il cui codice è contenuto nella cella di memoria all'indirizzo X Istruzioni di letture/scrittura di memoria Esempio: Copia il valore contenuto nella cella di memoria all'indirizzo X all'interno del registro Ry Istruzioni di Input/Output Esempio: Invia il contenuto del registro Rx al dispositivo di I/O numero y Architettura dei calcolatori
23
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) usano codifiche con numero variabile 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
24
Architettura dei calcolatori
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 8 bit 8 bit 8 bit Codice istruzione i j k Architettura dei calcolatori
25
Architettura dei calcolatori
Esempio Esempio: 1 parola = 4 Byte 1 Byte 1 Byte 1 Byte 1 Byte Istruzione= ADD Primo Addendo: Registro 28 Secondo Addendo: Registro 2 Risultato va in Registro 128 Architettura dei calcolatori
26
Architettura dei calcolatori
Esempio Indirizzo Contenuto 32 bit = 1 parola Memoria R2 3710 100010 R28 2110 ALU 100110 100210 R128 100310 100410 PC 100010 100510 Controllo IR 100610 100710 PSW Architettura dei calcolatori
27
Architettura dei calcolatori
Fetch Indirizzo Contenuto 32 bit = 1 parola Memoria R2 3710 100010 R28 2110 ALU 100110 100210 R128 100310 100410 PC 100010 Supponiamo che i registri siano tutti a 32 bit, incluso l'IR Il PC contiene l'indirizzo dell'inizio della parola (= sequenza di 4 byte contigui) contenente il codice dell'istruzione da eseguire. In questo caso i 4 byte sono quelli che si trovano agli indirizzi 1000, 1001, 1002, e 1003 100510 Controllo IR 100610 100710 PSW Architettura dei calcolatori
28
Architettura dei calcolatori
Fetch Indirizzo Contenuto 32 bit = 1 parola Memoria R2 3710 100010 R28 2110 ALU 100110 100210 R128 100310 100410 PC 100010 Il contenuto della word puntata da PC viene ricopiato nell'IR 100510 Controllo IR 100610 100710 PSW Architettura dei calcolatori
29
Architettura dei calcolatori
Decode Indirizzo Contenuto 32 bit = 1 parola Memoria R2 3710 100010 R28 2110 ALU 100110 100210 R128 100310 100410 PC 100010 ADD Il contenuto della word puntata da PC viene ricopiato nell'IR 100510 Controllo IR 100610 100710 PSW Architettura dei calcolatori
30
Architettura dei calcolatori
Execute Indirizzo Contenuto 32 bit = 1 parola Memoria R2 3710 100010 R28 2110 ALU 100110 100210 R128 5810 100310 100410 PC 100010 ADD L'unità di controllo decodifica l'istruzione, e capisce che si tratta di una operazione di somma. Istruisce quindi la ALU di eseguire una somma tra i registri indicati nel codice dell'istruzione, e memorizzare il risultato nel registro destinazione. Nel caso si verifichino situazioni anomale (esempio, overflow) il registro PSW viene aggiornato di conseguenza. In questo caso non ci sono modifiche in quanto l'operazione viene eseguita correttamente. 100510 Controllo IR 100610 100710 PSW Architettura dei calcolatori
31
Architettura dei calcolatori
Fetch Indirizzo Contenuto 32 bit = 1 parola Memoria R2 3710 100010 R28 2110 ALU 100110 100210 R128 5810 100310 100410 PC 100410 L'unità di controllo incrementa il PC per puntare all'istruzione successiva. Dato che stiamo assumendo che tutte le istruzioni richiedano 32 bit (1 word), l'istruzione successiva si trova all'indirizzo di memoria Si noti che non è detto che l'istruzione successiva da eseguire si trovi nella word successiva. Ad esempio, l'istruzione eseguita potrebbe ordinare al processore di saltare (JUMP) ad eseguire l'istruzione contenuta in un indirizzo di memoria diverso, indicato nel codice dell'istruzione. In tal caso il PC verrà modificato per contenere l'indirizzo a cui saltare. 100510 Controllo IR 100610 100710 PSW Architettura dei calcolatori
32
Architettura dei calcolatori
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 8 bit 16 bit Codice istruzione i m Architettura dei calcolatori
33
Architettura dei calcolatori
Domanda 8 bit 16 bit Codice istruzione i m 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 è = Quindi la memoria massima indirizzabile con l'istruzione STORE è di bytes (numerati da 0 a 65535) Architettura dei calcolatori
34
Architettura dei calcolatori
Domanda La CPU di un computer ha il registro PC di 20 bit e una memoria RAM di un Mbyte (=220 Byte). E' possibile aumentare la sua memoria RAM destinata all'esecuzione dei programmi senza cambiare la CPU? Architettura dei calcolatori
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.