Introduzione all'architettura dei Calcolatori Maurizio Palesi 1
Agenda Architettura generale di un Sistema di Elaborazione La memoria principale Il sottosistema di comunicazione La CPU Miglioramento delle prestazioni 2
Agenda Architettura generale di un Sistema di Elaborazione La memoria principale Il sottosistema di comunicazione La CPU Miglioramento delle prestazioni 3
4
Organizzazione Tipica Dispositivi di I/O PC Registri ALU Memoria di massa Video/tastiera (terminale) CPU Memoria Interfaccia di I/O Interfaccia di I/O BUS dati indirizzi controllo 5
Agenda Architettura generale di un Sistema di Elaborazione La memoria principale Il sottosistema di comunicazione La CPU Miglioramento delle prestazioni 6
La Memoria PC Registri ALU Memoria di massa Video/tastiera (terminale) CPU Memoria Interfaccia di I/O Interfaccia di I/O BUS dati indirizzi controllo 7
La Memoria Principale Contiene i dati e le istruzioni dei programmi in esecuzione comando indirizzo Memoria dato 8
La Memoria Principale Comando: lettura o scrittura Indirizzo: locazione di memoria a cui si vuole accedere (per operazioni di lettura o scrittura) Dato: dato da scrivere in memoria o dato letto dalla memoria 9
Esempio Memoria di 1 KB 1024 celle di memoria di 1 byte Comando: 1 bit Es., 0: leggi, 1: scrivi Dato: 8 bit 1 comando 10 indirizzo Memoria 1 byte = 8 bit Indirizzo: log 2 1024 = 10 bit 8 dato 2 10 = 1024 10
Agenda Architettura generale di un Sistema di Elaborazione La memoria principale Il sottosistema di comunicazione I bus Operazioni di lettura e scrittura La CPU Miglioramento delle prestazioni 11
Il Bus PC Registri ALU Memoria di massa Video/tastiera (terminale) CPU Memoria Interfaccia di I/O Interfaccia di I/O BUS dati indirizzi controllo 12
Bus Controllo Trasporta il codice dell'operazione da eseguire sulla memoria (es., lettura o scrittura) Indirizzi Trasporta l'indirizzo della locazione di memoria a cui si vuole accedere Dati Trasporta il dato da scrivere in memoria o il dato letto dalla memoria 13
Esempio (Lettura) Leggi il dato alla locazione 128 della memoria PC Registri ALU Memoria di massa Video/tastiera (terminale) CPU Memoria Interfaccia di I/O Interfaccia di I/O BUS dati indirizzi controllo 14
Esempio (Lettura) Leggi il dato alla locazione 128 della memoria PC Registri ALU Memoria di massa Video/tastiera (terminale) CPU Memoria Interfaccia di I/O Interfaccia di I/O BUS dati indirizzi controllo 128 leggi 15
Esempio (Lettura) Leggi il dato alla locazione 128 della memoria PC Registri ALU Accesso in lettura alla locazione 128 Memoria di massa Video/tastiera (terminale) CPU Memoria Interfaccia di I/O Interfaccia di I/O BUS dati indirizzi controllo 128 leggi 16
Esempio (Lettura) Leggi il dato alla locazione 128 della memoria PC Registri ALU Accesso in lettura alla locazione 128 Memoria di massa Video/tastiera (terminale) CPU Memoria Interfaccia di I/O Interfaccia di I/O BUS dati indirizzi controllo dato 17
Esempio (Lettura) Leggi il dato alla locazione 128 della memoria PC Registri ALU Memoria di massa Video/tastiera (terminale) CPU Memoria Interfaccia di I/O Interfaccia di I/O BUS dati indirizzi controllo dato 18
Esempio (Scrittura) Scrivi il dato 25 nella locazione 20 della memoria PC Registri ALU Memoria di massa Video/tastiera (terminale) CPU Memoria Interfaccia di I/O Interfaccia di I/O BUS dati indirizzi controllo 19
Esempio (Scrittura) Scrivi il dato 25 nella locazione 20 della memoria PC Registri ALU Memoria di massa Video/tastiera (terminale) CPU Memoria Interfaccia di I/O Interfaccia di I/O BUS dati indirizzi controllo 25 20 scrivi 20
Esempio (Scrittura) Scrivi il dato 25 nella locazione 20 della memoria PC Registri ALU Scrivi 5 nella locazione 20 Memoria di massa Video/tastiera (terminale) CPU Memoria Interfaccia di I/O Interfaccia di I/O BUS dati indirizzi controllo 25 20 scrivi 21
Il Bus - Vantaggi Semplicità Un unica linea di connessione costi ridotti di produzione Estendibilità Aggiunta di nuovi dispositivi molto semplice Standardizzabilità Regole per la comunicazione da parte di dispositivi diversi 22
Il Bus - Svantaggi Lentezza Utilizzo in mutua esclusione del bus Limitatà capacità Al crescere del numero di dispositivi collegati Sovraccarico del processore (CPU) Perchè funge da master sul controllo del bus 23
Agenda Architettura generale di un Sistema di Elaborazione La memoria principale Il sottosistema di comunicazione La CPU Organizzazione interna Unità di Controllo e Unità di Elaborazione Ciclo di esecuzione di una istruzione Miglioramento delle prestazioni 24
La CPU PC Registri ALU Memoria di massa Video/tastiera (terminale) CPU Memoria Interfaccia di I/O Interfaccia di I/O BUS dati indirizzi controllo 25
La CPU PC Unità di Controllo ALU Registri Memoria di massa Video/tastiera (terminale) Unità di Elaborazione CPU Memoria Interfaccia di I/O Interfaccia di I/O BUS dati indirizzi controllo 26
La CPU PC Registri Unità di Controllo ALU Unità di Elaborazione Memoria di massa Video/tastiera (terminale) Registri ALU CPU Memoria Interfaccia di I/O Interfaccia di I/O BUS dati indirizzi controllo 27
Componenti della CPU CPU Unità di Controllo Unità di Elaborazione Unità Aritmetico Logica (ALU) Registri 28
Unità di Elaborazione Si occupa dell effettiva elaborazione dei dati Comprende dispositivi diversi Una o più unità aritmetico-logiche Dette ALU (Arithmetic Logic Unit) Alcune unità di memorizzazione temporanea I registri: memoria ad alta velocità usata per risultati temporanei e informazioni di controllo 29
Istruzioni e Programmi Un programma è un insieme di istruzioni Una istruzione è solitamente una espressione del tipo Istruzione risultato, operando1, operando2 Istruzione: indica il tipo di istruzione da eseguire (es., somma, sottrazione, shift, ecc.) risultato: indica il registro in cui verrà depositato il risultato dell'operazione operando1, operando2: indicano i registri che contengono di dati su cui l'istruzione opera (es., per una istruzione di somma i due addendi) 30
Istruzioni e Programmi Le istruzioni sono codificate come sequenze di bit Codice macchina Somma r1, r2, r7 Moltiplica r5, r1, r4 ShiftDx r7, r4, 3... 110010100101010001001 100000101010000100111 001010000010011111001... 31
Istruzioni e Programmi Le istruzioni sono codificate come sequenze di bit Somma r1, r2, r7 Moltiplica r5, r1, r4 ShiftDx r7, r4, 3... Codice macchina 110010100101010001001 100000101010000100111 001010000010011111001... Le istruzioni si trovano in memoria in sequenza indirizzo 000 001 002 100 101 102... Memoria 32
Istruzioni e Programmi Le istruzioni sono codificate come sequenze di bit Somma r1, r2, r7 Moltiplica r5, r1, r4 ShiftDx r7, r4, 3... Codice macchina 110010100101010001001 100000101010000100111 001010000010011111001... Le istruzioni si trovano in memoria in sequenza indirizzo 000 001 002 100 101 102...... 110010100101010001001 100000101010000100111 001010000010011111001... 33
Unità di Controllo Coordina le operazioni della CPU Regola il flusso dei dati e indica quali registri debbano essere collegati agli ingressi e all uscita dell ALU Invia all ALU il codice dell operazione da eseguire Riceve indicazioni sull esito dell operazione appena eseguita dall ALU e gestisce opportunamente queste informazioni Comprende alcuni registri di uso specifico Program Counter (PC) qual è l istruzione successiva Instruction Register (IR) istruzione in corso d esecuzione 34
Ciclo Macchina Fetch Decode Execute 35
Ciclo Macchina CPU Unità di Controllo Bus controllo Bus indirizzi Bus dati Unità di Elaborazione PSW IR PC cmd ind dato Memoria 36
Ciclo Macchina CPU Unità di Controllo Leggi Bus controllo Bus indirizzi Bus dati Unità di Elaborazione PSW IR PC cmd ind dato Memoria 37
Ciclo Macchina CPU Unità di Controllo Leggi Bus controllo Bus indirizzi Bus dati Unità di Elaborazione PSW IR PC cmd ind dato Memoria 38
Ciclo Macchina CPU Unità di Controllo Leggi Bus controllo Bus indirizzi Bus dati Unità di Elaborazione PSW IR PC cmd ind dato Memoria 39
Ciclo Macchina CPU Unità di Controllo Leggi Bus controllo Bus indirizzi Bus dati Unità di Elaborazione PSW IR PC cmd ind dato Memoria 40
Ciclo Macchina CPU Unità di Controllo Leggi Bus controllo Bus indirizzi Bus dati Unità di Elaborazione PSW IR PC cmd ind dato Memoria 41
Ciclo Macchina CPU Unità di Controllo Leggi Bus controllo Bus indirizzi Bus dati Unità di Elaborazione PSW IR PC cmd ind dato Memoria 42
Ciclo Macchina CPU Unità di Controllo Leggi Bus controllo Bus indirizzi Bus dati Unità di Elaborazione PSW IR PC cmd ind dato Memoria 43
Ciclo Macchina CPU Unità di Controllo Leggi Bus controllo Bus indirizzi Bus dati Unità di Elaborazione PSW IR PC cmd ind dato Memoria 44
Ciclo Macchina Prendi l istruzione corrente dalla memoria Quella individuata dal contenuto del Program Counter (PC) Mettila nell'instruction Register (IR) Incrementa il PC Fetch In modo che contenga l indirizzo dell istruzione successiva Determina il tipo di istruzione da eseguire (Decode) Esegui l istruzione (Execute) 45
R1 R2 + R3 Unità di Controllo Registri R00 R01 R02 R03 X + Y X Y Unità di Elaborazione Registri ingresso ALU X Y add A L U esito Registro uscita ALU X + Y 46
R1 R2 + R3 Unità di Controllo Leggi R2 ed R3 Registri R00 R01 R02 R03 X + Y X Y Unità di Elaborazione Registri ingresso ALU X Y add A L U esito Registro uscita ALU X + Y 47
R1 R2 + R3 Unità di Controllo Registri R00 R01 R02 R03 X + Y X Y Unità di Elaborazione Registri ingresso ALU X Y add A L U esito Registro uscita ALU X + Y 48
R1 R2 + R3 Unità di Controllo Registri R00 R01 R02 R03 X + Y X Y Unità di Elaborazione Registri ingresso ALU X Y Somma add esito A L U Registro uscita ALU X + Y 49
R1 R2 + R3 Unità di Controllo Registri R00 R01 R02 R03 X + Y X Y Unità di Elaborazione Registri ingresso ALU X Y Somma add esito A L U Registro uscita ALU X + Y 50
R1 R2 + R3 Unità di Controllo Scrivi su R1 Registri R00 R01 R02 R03 X + Y X Y Unità di Elaborazione Registri ingresso ALU X Y add A L U esito Registro uscita ALU X + Y 51
R1 R2 + R3 Unità di Controllo Scrivi su R1 Registri R00 R01 R02 R03 X + Y X Y Unità di Elaborazione Registri ingresso ALU X Y add A L U esito Registro uscita ALU X + Y 52
Architetture RISC e CISC RISC (Reduced Instruction Set Computing) Load/Store: le istruzioni operano sui registri Istruzioni semplici Elevate frequenze di clock CISC (Complex Instruction Set Computing) Le istruzioni possono operare sia su dati contenuti nei registri sia su dati contenuti in memoria Istruzioni complesse 53
Classi di Istruzioni Istruzioni aritmetico-logiche Somma, Sottrazione, Divisione, And, Or, Xor, Maggiore, Minore, Uguale, Minore o uguale, Controllo del flusso delle istruzioni Sequenza Selezione semplice, a due vie, a n vie, Ciclo a condizione iniziale, ciclo a condizione finale, Trasferimento di informazione Trasferimento dati e istruzioni tra CPU e memoria Trasferimento dati e istruzioni tra CPU e dispositivi di ingresso/uscita (attraverso le relative interfacce) 54
Esempi di Istruzioni 55
Istruzioni Aritmetico Logiche Es., ADD Rz, Rx, Ry, vengono eseguite in 4 passi L istruzione viene prelevata dalla memoria e scritta nell IR mentre il PC viene incrementato Viene letto il contenuto dei due registri Rx e Rx La ALU esegue la somma Il risultato viene scritto nel registro Rz 56
Istruzioni di Trasferimento Es., LW Ry, Rx, base viene eseguita in cinque passi L istruzione viene prelevata dalla memoria e scritta nell IR mentre il PC viene incrementato Viene letto il contenuto del registro Rx La ALU opera sui dati letti dal banco dei registri e sulla base scritta nell IR Il risultato calcolato dall ALU viene utilizzato come indirizzo per la memoria dati Il dato proveniente dalla memoria viene scritto nel registro Ry 57
Istruzioni di Controllo Es., BEQ Rx, Ry, target viene eseguita in quattro passi L istruzione viene prelevata dalla memoria e scritta nell IR mentre il PC viene incrementato Viene letto il contenuto dei due registri Rx e Ry La ALU confronta Rx con Ry e contemporaneamente il contenuto del PC viene sommato al valore target per calcolare l eventuale destinazione del salto L esito dell operazione viene utilizzato per decidere quale valore debba essere memorizzato nel PC 58
Unità Funzionali e Istruzioni Unità Funzionali Coinvolte 59
Latenza delle Istruzioni 60
Esempio Esecuzione di una successione di quattro istruzioni per il caricamento di due dati dalla memoria nei registri R01 e R02, la loro somma e la registrazione in memoria del risultato 61
Esempio Esecuzione di una successione di quattro istruzioni per il caricamento di due dati dalla memoria nei registri R01 e R02, la loro somma e la registrazione in memoria del risultato 145 ns 62
Migliorare le Prestazioni Frequenza di clock Parallelismo 63
Migliorare le Prestazioni Frequenza di clock Influenza direttamente il tempo di ciclo del data path e quindi le prestazioni di un calcolatore E' limitata dalla tecnologia disponibile Parallelismo 64
Migliorare le Prestazioni Frequenza di clock Parallelismo Consente di migliorare le prestazioni senza modificare la frequenza di clock Due forme di parallelismo Parallelismo a livello delle istruzioni Architetture pipeline o architetture superscalari Parallelismo a livello di processori Array computer, multiprocessori o multicomputer 65