Please enable JavaScript.
Coggle requires JavaScript to display documents.
Architetture non Von Neumann (Le evoluzioni che riguardano l’elaborazione,…
Architetture non Von Neumann
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
Il metodo prevede prima di tutto che il programma venga caricato con istruzioni seriali e successivamente eseguite in parallelo e riordinate prima di provvedere al salvataggio dei dati in memoria
Il prefetch (precaricamento)
i processori implementano delle unità che analizzano il codice cercando di prevedere in anticipo quali dati o istruzioni serviranno al processore, provvedendo inoltre al loro caricamento in cache prima della loro reale impiego
Il precaricamento dei dati garantire la coerenza e la validità dei dati stessi, quindi se un dato viene precaricato nessuna istruzione deve modificarlo prima del suo effettivo utilizzo da parte delle istruzioni che hanno forzato il precaricamento
La pipeline
significa catena di montaggio e sta proprio a indicare che nella CPU esistono dei blocchi che elaborano parte delle fasi passandole al blocco successivo
elaborazione di un’istruzione da parte di un processore si compone di cinque passaggi fondamentali:
L’attività di una CPU con pipeline è formata da cinque stadi specializzati, capaci di eseguire ciascuno un ciclo macchina. La CPU lavora come in una catena di montaggio eseguendo a ogni stadio un compito specifico
principali problematiche sull’impiego della pipeline sono
conflitti tra i dati: quando un’istruzione utilizza un dato che è ancora in fase di elaborazione
livello software: compilatore può individuare le istruzioni che generano il confl itto sui dati interponendo tra esse una serie di istruzioni assembly inutili chiamate NOP (No Operation)
compito di ritardare l’esecuzione della seconda istruzione per consentire l’adeguamento delle pipeline
conflitti strutturali: quando due fasi utilizzano contemporaneamente la stessa risorsa
soluzione hardware: aggiungendo all’ALU l’unità FPU (Floating Point Unit), consentiamo al sistema l’uso di questa unità in alternativa all’ALU, in modo tale che due stadi della pipeline utilizzino contemporaneamente le due unità (ALU e FPU), la prima per calcoli su numeri interi e la seconda per calcoli con numeri espressi in virgola mobile
conflitti di controllo: quando le istruzioni che devono essere eseguite da un salto si trovano in una zona di memoria non prevista
problema maggiore, in quanto i salti condizionati necessari alla selezione e all’iterazione non danno la possibilità di riconoscere a priori se il salto sarà effettuato,
Solo dopo la fase di Execute si può conoscere se il salto sarà effettuato e conseguentemente la locazione dalla quale far proseguire il programma
Tecnologie superscalari
realizzare CPU con prestazioni sempre migliori si è affermata la tecnologia superscalare grazie alla quale vengono integrati in un unico microprocessore più pipeline che funzionano in parallelo
Questa scelta di progettazione consente effettivamente di aumentare la frequenza di funzionamento delle CPU ma rende critico il problema dei salti condizionati
EX: esecuzione dell’istruzione
ID: decodifi ca dell’istruzione e lettura degli operandi da registri
MEM: attivazione della memoria
IF: lettura dell’istruzione da memoria
WB: scrittura del risultato nel registro opportuno
Le evoluzioni che riguardano la memoria centrale
Cache memory
memoria di tipo statico (SRAM) molto veloce e di dimensioni contenute, inserita tra la memoria centrale di tipo SDRAM e la CPU
L’uso della cache è legato strettamente al comportamento delle applicazioni durante la loro esecuzione secondo due principi, denominati principi di località
i livelli di cache disponibili
cache esterna collegata sulla motherboard, denominata cache di terzo livello
cache esterna collegata direttamente al processore, chiamata cache di secondo livello, collegata a CPU tramite il Back Side Bus
La cache viene usata per operazioni di lettura e scrittura ed è suddivisa in due sezioni, una per le istruzioni e una per i dati. organizzata in blocchi di celle chiamate linee
Per le operazioni di scrittura in memoria la cache può essere usata con due modalità diverse
cache viene gestita attraverso tre possibili metodi
metodo completamente associativo: ogni blocco di memoria può essere allocato in qualsiasi linea della cache
metodo associativo a N vie la cache è suddivisa in gruppi di N linee ciascuno. Ogni blocco di memoria viene allocato in un preciso gruppo ma al suo interno può occupare qualsiasi linea
metodo diretto: a ciascuna linea o blocco di celle della memoria centrale, viene associato un blocco analogo nella cache che contiene gli stessi dati
Memoria virtuale
1 more item...
cache Write Through: le operazioni di scrittura vengono effettuate sia nella cache che nella memoria centrale
cache Write Back: le operazioni di scrittura avvengono solo nella cache, mentre la linea di cache viene scritta in memoria solo quando viene sostituita
cache integrata direttamente nel processore, chiamata cache di primo livello
Località temporale: il programma eseguirà molto probabilmente le istruzioni accedendo alle istruzioni immediatamente successive a quella appena eseguita
Località spaziale: i programmi in esecuzione possono accedere a celle di memoria presenti all’interno di una zona defi nita, oppure possono accedere alle stesse locazioni di memoria già utilizzate
Le evoluzioni che riguardano gli I/O
DMA (direct memory access)
i dispositivi periferici segnalino la disponibilità a emettere o accettare dati attraverso l’interrupt
tecnica dell’interruzione è particolarmente ineffi ciente se il trasferimento riguarda grosse moli di dati (hard disk, scheda video, scheda di rete)
è opportuno che dopo la segnalazione la CPU deleghi le attività di trasferimento a un dispositivo accessorio che accede ai bus di sistema quando non sono usati dalla CPU. In questo modo la CPU è coinvolta solo nell’avvio delle operazioni e nella terminazione.
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
Coprocessori
CPU secondarie dedicate a scopi specifici che scaricano la CPU principale da alcune elaborazioni consentendo un maggior parallelismo
coprocessore numerico: realizza una grande quantità di elaborazioni numeriche soprattutto in virgola mobile non realizzate dalla CPU principale
coprocessore grafi co: mantiene una memoria immagine della presentazione video e realizza elaborazioni grafi che per la costruzione della presentazione