Concetti Chiave
- Le architetture non Von Neumann migliorano la velocità di elaborazione con funzioni parallele, superando i limiti delle tecniche tradizionali come l'aumento della frequenza di clock.
- Le architetture possono essere classificate in base al parallelismo: SISD, SIMD, MISD, MIMD, ognuna con vantaggi specifici per l'elaborazione dei dati.
- L'esecuzione fuori ordine permette alla CPU di riorganizzare le istruzioni per eseguirle in parallelo, aumentando l'efficienza senza seguire l'ordine originale del codice.
- Il precaricamento prevede e carica dati e istruzioni nella cache prima del loro utilizzo, richiedendo coerenza dei dati per evitare modifiche indesiderate.
- Le tecniche avanzate come pipeline, superscalari, speculative execution e branch prediction supportano l'efficienza delle CPU moderne.
Indice
Architetture non Von Neumann, tecniche di elaborazione, l’esecuzione fuori ordine, il precaricamento
Le caratteristiche delle CPU e dei sistemi di elaborazione dati possono essere migliorate a tal fine esistono diverse tecniche. Gli interventi possibili attuati in passato sono stati: l’aumento progressivo della frequenza di clock, l’aumento dell’ampiezza di parola e l’aumento dello spazio di indirizzamento. L’aumento progressivo della frequenza di clock a parità di comportamento rende più veloci le elaborazioni. L’aumento dell’ampiezza di parola si ottiene incrementando il numero di bit elaborati contemporaneamente. L’aumento dello spazio di indirizzamento si ottiene incrementando il numero di celle indirizzabili. Gli interventi mirati all’aumento dell’ampiezza di parola e all’aumento dello spazio di indirizzamento, nell’evoluzione delle architetture sono giunti purtroppo ad un punto in cui non era più possibile ottenere prestazioni migliori. La ricerca informatica si è orientata allora in un’altra direzione di sviluppo, chiamata in generale con il termine di architetture non Von Neumann, nella quale sono state introdotte funzioni di elaborazione parallele che consentono di aumentare la velocità di elaborazione a parità di frequenza di clock.Ricordiamo brevemente una classificazione delle architetture in base al grado di parallelismo che rendono possibile:
Esecuzione fuori ordine
Questa tecnica indica la capacità delle CPU di eseguire istruzioni senza rispettarne necessariamente l’ordine imposto dal codice che le contiene. In pratica la CPU analizza le istruzioni che dovrà eseguire, andando ad individuare quelle che non hanno vincolo sequenziale le quali vengono fatte eseguire in parallelo. Il metodo di esecuzione fuori ordine prevede prima di tutto che il programma venga caricato con istruzioni seriali, poi le istruzioni vengono analizzate e riordinate tenendo conto delle dipendenze, successivamente vengono eseguite in parallelo e poi riordinate prima di provvedere al salvataggio dei dati in memoria.
Il 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 del loro reale impiego. Alcune architetture prevedono istruzioni specifiche per indicare quali blocchi precaricare ma la maggior parte delle architetture, non essendo dotate di queste istruzioni, devono basarsi solamente sull’ispezione del codice in tempo reale. Questa tecnica deve garantire coerenza e validità dei dati stessi; perciò, se un dato viene precaricato è importante che nessuna istruzione lo modifichi prima del suo effettivo utilizzo. Eventuali criticità dovute ad una forzatura rendono il precaricamento dei dati e delle istruzioni molto complesso da implementare in hardware senza un supporto diretto del set di istruzioni.Domande da interrogazione
- Quali sono le tecniche principali per migliorare le prestazioni delle CPU?
- Cosa si intende per architetture non Von Neumann?
- Quali sono i tipi di architetture basate sul parallelismo?
- Come funziona l'esecuzione fuori ordine?
- Qual è il ruolo del precaricamento nei processori?
Le tecniche principali includono l'aumento della frequenza di clock, l'aumento dell'ampiezza di parola, l'aumento dello spazio di indirizzamento e l'adozione di architetture non Von Neumann con elaborazione parallela.
Le architetture non Von Neumann si riferiscono a sistemi che introducono funzioni di elaborazione parallele per aumentare la velocità di elaborazione senza aumentare la frequenza di clock.
I tipi di architetture basate sul parallelismo includono SISD, SIMD, MISD e MIMD, ognuna con un diverso approccio all'esecuzione di istruzioni e dati.
L'esecuzione fuori ordine permette alla CPU di eseguire istruzioni in parallelo, analizzando e riordinando le istruzioni in base alle dipendenze, per poi eseguirle e riordinarle prima del salvataggio in memoria.
Il precaricamento prevede l'analisi del codice per prevedere e caricare in anticipo dati o istruzioni in cache, garantendo coerenza e validità dei dati per migliorare l'efficienza del processore.