La macchina di Von Neumann rchite(ura di un calcolatore us di sistema Collegamento Unità di Elaborazione (CPU) Memoria Centrale (MM) Esecuzione istruzioni Memoria di lavoro Interfaccia Periferica P 1 Interfaccia Periferica P 2 Memoria di massa, stampante, terminale La macchina di von Neumann L unità di elaborazione (CPU) Indirizzo prox istruzione Registro contatore di programma (PC) Registro interruzioni (INTR) Registro istruzione corrente (CIR) Istruzione in elaborazione Registro di stato (SR) Clock Stato CPU Operazioni Flag: C, Z, S, V aritmetiche e logiche Unità aritmetico logica Registri operandi (LU) Registri generali Unità di controllo (CU) Registro dati (DR) Sincronizzazione Parola letta/da scrivere in MM Registro indirizzi (R) Indirizzo cella MM Controllo: -Prelievo -Decodifica -Esecuzione Registro contatore di programma (PC) Registro interruzioni (INTR) Registro istruzione corrente (CIR) Il bus di sistema Registro di stato (SR) Clock Unità aritmetico logica (LU) Unità di controllo (CU) CPU Passo 3 PC INTR CIR DR 42 Sequenza di le(ura SR Ck R 123 LU CU RED OK 0 Passo 1 Passo 24 123 42 1023 Registro dati (DR) Registro indirizzi (R) Master/slave us dati, us indirizzi, us controlli us di sistema 1
Passo 2 PC INTR CIR DR 70 Sequenza di scri(ura SR Ck R 123 LU CU WRITE OK 0 Passo 1 Passo 35 123 42 Passo 4 1023 70 Estensioni all architettura di von Neumann Problemi con l architettura di von Neumann Legge di Moore L esecuzione dei programmi avviene in sequenza, senza sfruttare le potenzialità di esecuzione in parallelo dei programmi stessi L unità di elaborazione attende una risposta da parte di componenti più lenti La velocità di accesso alla memoria centrale (RM) è bassa rispetto alla velocità elaborazione della CPU (legge di Moore) la legge di Moore mostra il crescente divario tra la velocità dei processori e quella delle memorie Possibili estensioni Eseguire in parallelo le fasi di una istruzione rchitetture Pipeline rchitetture con parallelismo a livello istruzione Usare gerarchie di memorie con costi e prestazioni diversi memoria di massa memoria centrale memoria cache Usare più processori in un unico elaboratore co-processori processori grafici architetture multi-processore dotate di CPU indipendenti rchitetture pipeline e superscalari 2
rchitetture pipeline e con ILP Pipeline: ciascuna fase nell esecuzione di un istruzione è affidata a un dispositivo specifico mentre il processore sta eseguendo un istruzione, può contemporaneamente acquisire e interpretare le istruzioni successive superpipeline: pipeline più lunga rchitetture con ILP: replicano i componenti interni del calcolatore in modo che sia possibile lanciare l esecuzione di più istruzioni in ogni stadio della pipeline Tipologia di ILP: Dinamico: rchitetture superscalari Statico: rchitetture VLIW rchitettura Harvard Memorie per i dati e per le istruzioni sono diverse Stadi della pipeline Stadi della pipeline Fasi necessarie per interpretare ed eseguire un istruzione 1 ISTR. 1 ISTR. 2 ISTR. 3 Esempio 1. Caricamento istruzione 2. Decodifica e preparazione operandi 3. Eventuale lettura di valori dalla memoria o Esecuzione operazione ritmetico Logica 4. Scrittura risultato 2 3 4 1 2 3 4 1 2 3 4 rchitetture CISC CISC (Complex Instruction Set Computers) il linguaggio macchina contiene un grande numero di istruzioni ogni istruzione è complessa l esecuzione di ogni istruzione richiede più tempo per la CPU rchitetture RISC RISC (Reduced Instruction Set Computers). poche istruzioni semplici è possibile creare pipeline più lunghe e più efficienti i programmi richiedono l esecuzione di molte istruzioni 3
La memoria cache Limitazioni della memoria tradizionale Legge di Moore il tempo di accesso alla memoria è più lento rispetto alla velocità del processore Quando il processore accede alla memoria deve aspettare che i dati di cui ha bisogno vengano caricati dalla memoria il processore spreca cicli di clock in attesa dei dati senza poter fare del lavoro utile si dice che il processore va in stallo Memoria ad alta velocità e di capacità ridotta situata tra la memoria principale e il processore Contiene i dati utilizzati con maggior frequenza dal processore questi dati non devono essere richiamati ogni volta dalla memoria più lenta Possono esistere più livelli di cache Memoria cache Classificazione di Flynn rchitetture di calcolo parallele Un solo flusso di istruzioni Più flussi di istruzioni Un solo flusso di dati SISD MISD Più flussi di dati SIMD MIMD 4
Classificazione di Flynn Memoria distribuita vs. condivisa rchitettura di un sistema SMP SMP e CMP rchitetture CMP dual core Multi-core vs. hyper threading Multi-core: due o più processori (chiamati core) sono presenti sullo stesso chip Hyper-threading: il processore in certi casi è in grado, di eseguire due serie (thread) di istruzioni allo stesso tempo funziona duplicando alcune parti del processore ma non quelle responsabili dell esecuzione delle istruzioni. 5
Superscalar Fine-grained Multithreading Simultaneous Multithreading Comparison of pipeline issue slots in three different architectures 6