Architettura dei calcolatori

Documenti analoghi
Architettura dei calcolatori. Architettura dei calcolatori. Cos'è un computer?

Introduzione all'architettura dei Calcolatori. Maurizio Palesi

Architettura del Calcolatore

Architettura del calcolatore (Seconda parte)

Architettura hardware

Elementi di informatica

Elementi di informatica

Architettura di un elaboratore. Il modello di von Neumann

G L O S S A R I O. Fondamenti di Informatica I - Università degli Studi di Trento Dott. Roberti Pierluigi

6: Macchina di Von Neumann

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Architettura dei calcolatori

Componenti di un processore

ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).!

Componenti e connessioni. Capitolo 3

Architettura dei computer

Architettura dei computer

L ARCHITETTURA DEI CALCOLATORI. Il processore La memoria centrale La memoria di massa Le periferiche di I/O

Il Processore: l unità di controllo

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Concetti Introduttivi

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

Architettura dei calcolatori

Architettura di un calcolatore e ciclo macchina. Appunti per la classe 3 Dinf

Struttura di un elaboratore

Esame di INFORMATICA ARCHITETTURA DI VON NEUMANN. Lezione 4 ARCHITETTURA DI VON NEUMANN

Esame di INFORMATICA Lezione 4

Il modello di Von Neumann

Sistemi di Elaborazione delle Informazioni

Architettura dei Calcolatori Elettronici

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni

Componenti principali

Lezione 1: L hardware

Architettura dei calcolatori I parte Introduzione, CPU

Algoritmo: procedimento non ambiguo che in un numero finito di passi risolve un problema (o una classe di problemi)

LA STRUTTURA DEL COMPUTER

Architettura generale del calcolatore Hardware (tutto ciò che e tangibile) Software (tutto ciò che non e tangibile)

Il Processore. Informatica di Base -- R.Gaeta 27

Transcript:

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

Architettura dei calcolatori 2

Cos'è un computer? Architettura dei calcolatori 3

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 Ambiente Esterno I/O Elaborazione Controllo Memoria 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 Sottosistema di interfaccia (I/O) Bus di sistema Esegue le istruzioni elementari richieste dai programmi Elaborazione + Controllo Mantiene Dati e Programmi Memorizzazione Permette di comunicare dati e programmi alla macchina e di ottenere i risultati (tastiera, scheda audio, stampante, schermo, mouse...) Trasferimento dati da/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 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 7

Architettura di Von Neumann Processore (CPU) Memoria Sottosistema di interfaccia (I/O) Bus di sistema Architettura dei calcolatori 8

CPU Bus Dati Indirizzi Controllo R1 R2 ALU Memoria Rn PC IR PSW Controllo Architettura dei calcolatori 9

Componenti della CPU Un certo numero N di registri di uso generale R 1...R N 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 eseguita ha causato overflow) Architettura dei calcolatori 10

Ciclo Fetch-Decode-Execute Fetch 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 Execute 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 11

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 12

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 In altri (es., Intel x86) si usano codifiche con un numero variabile di byte Se le istruzioni sono codificate con 32 bit, ovviamente 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 13

Esempio Una ipotetica istruzione di somma ADD Ri, Rj, Rk 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: 00000001 8 bit 8 bit 8 bit Codice istruzione i j k Architettura dei calcolatori 14

Esempio Esempio: 1 parola = 4 byte 1 byte 1 byte 1 byte 1 byte 00000001 00011100 00000010 10000000 Istruzione= ADD Primo Addendo: Registro numero 28 Secondo Addendo: Registro numero 2 Risultato va in Registro numero 128 Architettura dei calcolatori 15

Esempio 32 bit = 1 parola Indirizzo Contenuto R2 37 10 Memoria R28 21 10 ALU 1000 00000001 10 2 00011100 2 R128 1001 10 00000010 2 1002 10 10000000 2 PC 1000 10 1003 10 00000110 2 1004 10 00100110 2 IR Controllo 1005 10 01000110 2 1006 10 10110110 2 PSW 1007 10 Architettura dei calcolatori 16

Fetch 32 bit = 1 parola Indirizzo Contenuto R2 37 10 Memoria R28 21 10 ALU 1000 00000001 10 2 00011100 2 R128 1001 10 00000010 2 1002 10 10000000 2 PC 1000 10 1003 10 00000110 2 1004 10 00100110 2 IR Controllo 1005 10 01000110 2 1006 10 10110110 2 PSW 1007 10 Architettura dei calcolatori 17

32 bit = 1 parola Fetch Indirizzo Contenuto R2 37 10 Memoria R28 R128 PC IR PSW 21 10 1000 10 ALU 00000001000111000000001010000000 Controllo 1000 00000001 10 2 00011100 2 1001 10 00000010 2 1002 10 10000000 2 1003 10 00000110 2 1004 10 00100110 2 1005 10 01000110 2 1006 10 10110110 2 1007 10 Architettura dei calcolatori 18

32 bit = 1 parola Decode Indirizzo Contenuto R2 37 10 Memoria R28 R128 PC IR PSW 21 10 ALU 1000 10 ADD 00000001000111000000001010000000 Controllo 1000 00000001 10 2 00011100 2 1001 10 00000010 2 1002 10 10000000 2 1003 10 00000110 2 1004 10 00100110 2 1005 10 01000110 2 1006 10 10110110 2 1007 10 Architettura dei calcolatori 19

32 bit = 1 parola Execute Indirizzo Contenuto R2 37 10 Memoria R28 R128 PC IR PSW 21 10 58 10 ALU 1000 10 ADD 00000001000111000000001010000000 Controllo 1000 00000001 10 2 00011100 2 1001 10 00000010 2 1002 10 10000000 2 1003 10 00000110 2 1004 10 00100110 2 1005 10 01000110 2 1006 10 10110110 2 1007 10 Architettura dei calcolatori 20

32 bit = 1 parola Fetch Indirizzo Contenuto R2 37 10 Memoria R28 R128 PC IR PSW 21 10 1004 10 ALU 00000001000111000000001010000000 Controllo 1000 00000001 10 2 00011100 2 1001 10 00000010 2 1002 10 10000000 2 1003 10 00000110 2 1004 10 00100110 2 1005 10 01000110 2 1006 10 10110110 2 1007 10 Architettura dei calcolatori 21

Esempio Ipotetica istruzione di trasferimento registro memoria STORE Ri, m Copia il contenuto del registro Ri nella cella di memoria di indirizzo m Una possibile codifica 00000010 8 bit 16 bit Codice istruzione i m Architettura dei calcolatori 22

Domanda 00000010 8 bit 16 bit Codice istruzione i m Considerando l'istruzione STORE Ri,m rappresentata come sopra, quanto grande può essere la memoria accedibile dall'istruzione? Risposta L'indirizzo m della destinazione è espresso con 16 bit L'intero più grande rappresentabile con 16 bit è 2 16-1 = 65535 Quindi la memoria massima indirizzabile con l'istruzione STORE è di 65536 bytes (numerati da 0 a 65535) Architettura dei calcolatori 23

Memoria Processore (CPU) Memoria Sottosistema di interfaccia Bus di sistema Architettura dei calcolatori 24

RAM La RAM è una sequenza di byte Ogni byte è identificato dalla sua posizione nella sequenza (indirizzo di memoria) byte 0, byte 1, byte 2,... Alcune CPU sono in grado di accedere ai singoli byte; altre accedono a parole (= gruppi di 4 byte) Indirizzo 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 8 bit Parola 16 17 18 19 Architettura dei calcolatori 25

Unità di misura 1 Kilo Byte (1KB) 2 10 = 1024 1000 byte 1 Mega Byte (1MB) 2 20 = 1.048.576 1000000 byte 1 Giga Byte (1GB) 2 30 = 1.073.741.824 10 9 byte 1 Tera Byte (1TB) 2 40 = 1.099.511.627.776 10 12 byte Architettura dei calcolatori 26

Funzionamento della RAM Linee di selezione 16 celle di memoria da 8 bit ciascuna 0110 2 Bus indirizzi Decodificatore linea 0 0 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 0 1 1 0 1 1 0 0 Byte selezionato Bus di controllo Leggi/Scrivi 0 1 1 0 1 1 0 0 Bus Dati Architettura dei calcolatori 27

Vari tipi di memoria Accesso molto veloce Costo elevato Limitata capacità Accesso veloce Costo contenuto Ampia capacità Accesso lento/molto lento Costo basso Vastissima capacità Hard Disk CD/ DVD CPU Cache RAM I/O I/O Bus di sistema Architettura dei calcolatori 28

Domanda La CPU di un computer ha il registro PC di 20 bit e una memoria RAM di un Mbyte (=2 20 Byte). E' possibile aumentare la sua memoria RAM destinata all'esecuzione dei programmi senza cambiare la CPU? Architettura dei calcolatori 29

Nei calcolatori moderni... CPU L1 cache L2 cache Memoria Sottosistema di interfaccia (I/O) Bus di sistema Vengono utilizzati diversi livelli di memoria cache (molto veloce) per mantenere i dati più frequentemente usati vicini alla CPU Riduce gli accessi alla memoria tramite il bus di sistema Architettura dei calcolatori 30

Nei calcolatori moderni... L1 cache L2 cache Memoria Sottosistema di interfaccia (I/O) Bus di sistema CPU multi-core: all'interno del processore sono presenti più unità di calcolo indipendenti (di fatto, più CPU) che possono operare contemporaneamente, in modo indipendente l'una dall'altra Architettura dei calcolatori 31

CPU reali Intel core i7 AMD Istanbul Architettura dei calcolatori 32

I tempi in gioco 1 CPU cycle 0.3 ns 1 s Level 1 cache access 0.9 ns 3 s Main memory access 120 ns 6 min Solid-state disk I/O 50-150 μs 2-6 days Rotational disk I/O 1-10 ms 1-12 months Internet: SF to NYC 40 ms 4 years Internet: SF to UK 81 ms 8 years Internet: SF to Australia 183 ms 19 years Physical system reboot 5 m 32 millenia Source: https://blog.codinghorror.com/the-infinite-space-between-words/ Architettura dei calcolatori 33