La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

LE ARCHITETTURE NON VON NEUMANN

Presentazioni simili


Presentazione sul tema: "LE ARCHITETTURE NON VON NEUMANN"— Transcript della presentazione:

1 LE ARCHITETTURE NON VON NEUMANN
By Giuseppe Lanzetta & Mattia Rizzo 3I -13/04/2016

2 Le evoluzioni che riguardano l’elaborazione Esecuzione fuori ordine
Indica la capacità delle CPU di eseguire istruzioni senza rispettarne necessariamente l’ordine imposto dal codice che le contiene. Per fare ciò la CPU analizza le istruzioni che dovrà eseguire individuando le istruzioni non limitate dalle altre. Quelle che non hanno vincolo sequenziale vengono fatte eseguire in parallelo. Questo metodo prevede che inizialmente il programma venga caricato con istruzioni seriali successivamente eseguite in parallelo e riordinate tenendo conto delle dipendenze,successivamente eseguite in parallelo e riordinate prima di procedere con il salvataggio dei dati in memoria.

3 Il prefetch (precaricamento)
In base a questa tecnica i processori realizzano delle unità che analizzano il codice cercando di prevedere quali dati o quali istruzioni serviranno al processore, provvedendo al loro caricamento in cache. Il precaricamento dei dati e delle istruzioni però presenta alcuni problemi: ad esempio se il microprocessore carica delle istruzioni dipendenti da un salto e quel salto non viene eseguito il processore provvederà all’eliminazione delle istruzioni caricate erroneamente prima di caricare le istruzioni da eseguire. Il precaricamento deve garantire la validità dei dati, quindi se un dato viene precaricato Nessuna istruzione deve modificarlo prima del suo utilizzo da parte delle istruzioni che hanno avviato il precaricamento. Questo metodo senza un supporto del set di istruzioni diventa molto complesso da implementare in hardware.

4 La pipeline Il termine pipeline significa catena di montaggio e sta a indicare che nella CPU esistono dei blocchi che elaborano parte delle fasi trasferendole al blocco successivo. L elaborazione di un’istruzione da parte di un processore avviene in cinque passaggi fondamentali: IF: lettura dell’istruzione da memoria ID: decodifica dell’istruzione e lettura degli operandi da registri EX: esecuzione dell’istruzione MEM: attivazione della memoria WB: scrittura del risultato nel registro opportuno L’attività di una CPU con pipeline è formata da cinque stadi specializzati, in grado di eseguire ciascuno un ciclo macchina. La CPU infatti lavora come in una catena di montaggio eseguendo a ogni stadio un solo compito specifico. La pipeline consente di migliorare le prestazioni in termini di velocità di esecuzione, ma Comporta una maggiore complessità circuitale della CPU che deve essere composta almeno da cinque unità specializzate in grado di collaborare tra loro.

5 Le principali problematiche che si possono incontrare riguardo all’impiego della pipeline sono le seguenti: 1. Conflitti strutturali: quando due fasi utilizzano contemporaneamente la stessa risorsa 2. Conflitti tra i dati: quando un’istruzione utilizza un dato che è ancora in fase di elaborazione. 3. Conflitti di controllo: quando le istruzioni che devono essere eseguite da un salto si trovano in una zona di memoria non prevista.

6 Tecnologie superscalari
Per realizzare CPU con prestazioni sempre migliori si è affermata la tecnologia superscalare, (che identifica la tecnologia costruttiva di microprocessori che sono in grado di eseguire piu di un operazione per ciclo di clock), grazie alla quale vengono integrati in unico microprocessore piu pipeline che funzionano in parallelo.

7 Branch prediction L uso della pipeline è influenzato negativamente dai salti condizionati, dato che questi possono costringere il processore a ripetere gli stessi cicli macchina. Un processore basato su x86 incontra un salto condizionato ogni 6-7 istruzioni. Pertanto è molto importante cercare di prevedere il salto condizionato, così da caricare in anticipo il blocco di istruzioni corretto nella pipeline.

8 Le evoluzioni che riguardano la memoria centrale Cache memory
La cache è una memoria di tipo statico molto veloce e di dimensioni contenute e consente un accesso piu rapido alla memoria. Tuttavia, essendo di dimensoni ridotte rispetto alla RAM, la memoria cache è in grado di memorizzare soltanto una minima parte dei dati contenuti nella RAM. L’uso della cache è legato al comportamento delle applicazioni durante la loro esecuzione secondo due principi, detti principi di località. Località spaziale: i programmi in esecuzione possono accedere a celle di memoria presenti all’interno di una zona definita. Località temporale: il programma eseguirà le istruzioni accedendo alle istruzioni immediatamente successive a quella appena eseguita.

9 I livelli di cache disponibile sono:
Cache integrata direttamente nel processore, chiamata di primo livello (L1) Cache esterna collegata direttamente al processore, chiamata di secondo livello (L2) Cache esterna collegata sulla scheda madre, ed è di terzo livello (L3)

10 Le evoluzioni che riguardano gli I/O DMA (direct memory access)
Il DMA controller consente l impostazione dei trasferimenti tramite un insieme di porte di configurazione visibili dalla CPU. Il programma imposta l indirizzo iniziale del blocco di memoria da trasferire e le dimensioni. Una volta iniziato il trasferimento il controller provvederà autonomamente al trasferimento dei dati da o per la memoria. Il controller DMA condivide i bus con la CPU, quindi il DMA trasferisce quando la CPU non usa i bus


Scaricare ppt "LE ARCHITETTURE NON VON NEUMANN"

Presentazioni simili


Annunci Google