Informatica Generale Marzia Buscemi buscemidi unipi it Ricevimento
Informatica Generale Marzia Buscemi buscemi@di. unipi. it Ricevimento: Giovedì ore 16. 00 -18. 00, Dipartimento di Informatica, stanza 306 -PS o per posta elettronica Pagina web del corso: http: / /www. di. unipi. it/~buscemi/IG 07. htm (sommario delle lezioni in fondo alla pagina) 1
Struttura di un calcolatore RAM (memoria centrale) 5 Processore bus Linee dati, indirizzi e controllo Interfaccia di I/O schermo dischi mouse modem 2
Il processore: struttura base M e m o r i a c e n t r a l e Bus controllo Bus indirizzo Bus dati Operazione PC M A R M D R IR Esegui Unità di controllo Registro/i coinvolti R 0 R 1 R 2. . . R 16 ALU Registri generali clock Esito Processore 3
Interazione con la CPU: esempi n Supponiamo di avere una CPU con parallelismo a 16 bit, cioè tutte le operazioni di lettura/scrittura in memoria riguardano parole (word) composte da 2 byte. n Vedremo tre esempi: n n n instruction fetch: il codice operativo dell’istruzione viene copiato dalla memoria principale in IR immediate operand fetch: il dato che segue in memoria il codice operativo viene copiato (es. istruzione “MOVE 1, R 0”) memory store: un dato contenuto in un registro viene scritto in memoria all’indirizzo contenuto in un altro registro 4
Instruction fetch Indirizzo della istruzione memoria Bus controllo 40 111. . 01 41 001. . 01 Bus indirizzo Bus dati 40 M A R M D R IR PC Esegui Parte controllo Registro/i coinvolti R 0 R 1 R 2. . . R 16 codifica Operazione ALU Registri generali Esito Processore 5
Instruction fetch 2 Indirizzo della istruzione memoria Leggi! 42 40 111. . 01 IR 41 001. . 01 40 Bus indirizzo Bus dati MAR M D R PC Esegui Parte controllo Registro/i coinvolti R 0 R 1 R 2. . . R 16 codifica Operazione ALU Registri generali Esito Processore 6
Instruction fetch 3 memoria 42 40 111. . 01 PC 111. . 01 001. . 01 41 001. . 01 Bus indirizzo MAR Bus dati MDR Operazione Esegui IR Parte controllo Registro/i coinvolti R 0 R 1 R 2. . . R 16 ALU Registri generali Esito Processore 7
Immediate operand fetch: MOVE 1, R 0 Indirizzo della istruzione memoria Leggi! 44 40 111. . 01 41 001. . 01 42 000. . 00 Bus 43 000. . 01 indirizzo Bus dati IR 42 MAR M D R PC Esegui Parte controllo Registro/i coinvolti R 0 R 1 R 2. . . R 16 codifica Operazione ALU Registri generali Esito Processore 8
Immediate operand fetch: MOVE 1, R 0 2 memoria 44 40 111. . 01 PC 111. . 01 001. . 01 41 001. . 01 Operazione Esegui IR Parte controllo 42 000. . 00 Bus 43 000. . 01 indirizzo MAR Registro/i coinvolti 000. . 00 000. . 01 Bus dati MDR R 1 R 2. . . R 16 Registri generali ALU Esito Processore 9
Memory store: STORE R 1, R 0 1 memoria 44 40 111. . 01 PC 111. . 01 001. . 01 41 001. . 01 Operazione Esegui IR Parte controllo 42 000. . 00 Bus 43 000. . 01 indirizzo Registro/i coinvolti MAR 44 R 0 45 Bus dati 44 R 1 000. . 00 000. . 01 R 2 MDR. . . Registri R 16 generali ALU Esito Processore 10
Memory store: STORE R 1, R 0 memoria 44 40 111. . 01 Operazione PC 111. . 01 001. . 01 41 001. . 01 2 Esegui IR Parte controllo 42 000. . 00 Bus 43 000. . 01 indirizzo 44 000. . 00 Registro/i coinvolti MAR R 0 45 000. . 01 Bus dati 44 000. . 00 000. . 01 R 2 R 1 MDR. . . Registri R 16 generali ALU Esito Processore 11
Pipelining n Ogni istruzione può essere decomposta in varie fasi; es. ADD 1, R 0: 1. 2. 3. 4. 5. n n instruction fetch instruction decode operand fetch execute operand store Eseguire queste fasi sequenzialmente è inefficiente ll processore esegue fasi diverse di più istruzioni contemporaneamente organizzando ALU e CU come in una catena di montaggio (pipeline) Es. decodifica di un’istruzione I 1, lettura dalla memoria dell’istruzione I 2, lettura dati che saranno necessari per I 1. 12
Pipelining 2 n Problema: per le istruzioni di salto condizionato la CPU non può sapere a priori se dovrà eseguire il salto prima di aver eseguito le istruzioni precedenti ( ritardi ). n Possibile soluzione usata dai compilatori: riempire le fasi immediatamente successive al salto con istruzioni che non dipendono dal test (delayed load) Es. a : = b + c if b < c a : = b + c then S 1 13
Architetture di CPU n Ci sono due tipi di architetture n CISC (complex instruction set computer) n n n CU e istruzioni più complesse pochi registri RISC (reduced instruction set computer) n n set di istruzioni elementari molti registri 14
Architettura CISC n un processore CISC ha un numero scarso di registri generali (una decina) e una unità di controllo microprogrammata. registro istruzioni clock circuiti logici sequenziali CU tradizionale unità di decodifica clock circuiti di generazione indirizzi memoria decoder CU microprogrammata NB. Linguaggio macchina più vicino a linguaggi di alto livello (salti condizionali) 15
Architettura RISC n caratteristiche: istruzioni più semplici e uso n n di molti registri obiettivo: avere solo istruzioni semplici (logico-aritmetiche) che possano essere eseguite in un solo ciclo di clock le istruzioni hanno tutte un formato fisso e l’operazione di decodifica è realizzata da una semplice tabella l’unità di controllo è organizzata come una pipeline (catena di montaggio) i registri generici vanno da centinaia a migliaia e sono organizzati in file 16
CISC vs RISC CISC RISC istruzioni complesse (più cicli) istruzioni semplici (un ciclo) qualsiasi istruzione può referenziare la memoria sono le istr. LOAD e STORE referenziano la memoria no pipeline spinte istruzioni interpretate dal microprogramma istruzioni eseguite dall’HW istruzioni a formato variabile istruzioni a formato fisso pochi registri molti registri (organizzati 17 in file)
Prestazioni dei processori Dipendono da diversi fattori 1. insieme delle istruzioni: istruzioni più semplici richiedono basso numero di cicli di clock 2. dimensione dei registri: determinano il parallelismo della CPU, cioè la dimensione delle word (da 16 a 64 bit) 3. numero di registri: maggior numero implica meno accessi alla memoria 4. scalarità: numero di fasi sovrapponibili (più istruzioni per cicli di clock) 5. frequenza di clock: velocità con cui si susseguono i cicli di macchina (quindi velocità di esecuzione delle istruzioni). Dipende dalla velocità di propagazione dei segnali elettrici (GHz). 18
Processore Intel Pentium n Intel Pentium: n architettura CISC n superscalare n possiede 2 pipeline, una per tutte le istruzioni, una per quelle più semplici n può eseguire due istruzioni per ciclo di clock n parole da 64 bit (doppia quantità di informazione che può essere caricata) n branch prediction 19
- Slides: 19