Architetture dei processori/Processore superscalare: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
mNessun oggetto della modifica |
mNessun oggetto della modifica |
||
Riga 9:
[[Image:Dual Core Generic.png|thumb|250px|right|Schema generico di una CPU dual core]]
Un'altra evoluzione dei processori superscalari è l'integrazione di più processori indipendenti (core) in un singolo processore. Questi processori non sono solo dotati di più pipeline ma le varie pipeline sono totalmente separate e quindi sono in grado di eseguire programmi diversi, cosa non possibile nelle cpu classiche. I processori [[w:Core Duo|Core Duo]] dell'[[w:intel|Intel]] per esempio sono di questo tipo. Un'approccio intermedio prevede una separazione logica e non fisica delle pipeline con le pipeline separate ma i circuiti di controllo e gestione ancora in comune. Questo permette di eseguire più [[w:Processo (informatica)|tread]] in parallelo senza dover duplicare tutte le unità funzionali di un processore e quindi risparmiando molti transistor rispetto a una soluzione pura.
La realizzazione di processori con più core è una soluzione migliore rispetto alla semplice aggiunta di nuove unità pipeline dato che ogni nuova pipeline aumenta la possibilità di eseguire istruzioni che siano in conflitto con altre e quindi spingersi oltre quattro pipeline risulta spesso sconveniente. Eseguendo più tread in parallelo si eliminano i problemi dati che i tread sono separati e quindi le varie pipeline non possono entrare in conflitto tra di loro. Questi processori però costringono i programmatori a realizzare programmi paralleli per fruttare al meglio i processori moderni e la realizzazione di programmi paralleli non è semplice ed per alcuni algoritmi non esistono nemmeno metodi per renderli paralleli in modo efficiente.
|