Architetture dei processori/Processore superscalare: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Ramac (discussione | contributi)
m + categoria
Riga 1:
{{avanzamento|100%}}
{{Architettura dei processori}}
[[Image:Pentium-60-front.jpg|thumb|right|250px|Il Pentium, il primo processore superscalare per architettura x86 prodotto da Intel]]
Per '''processore superscalare '''si intende generalmente un processore in grado di eseguire più di un'istruzione per ciclo di clock. Per raggiungere questo obiettivo nel processore sono presenti diverse unità funzionali dello stesso tipo, con dispositivi addizionali per distribuire le istruzioni alle varie unità. Per esempio, sono generalmente presenti numerose unità per il calcolo intero (ALU). Le unità di controllo stabiliscono quali istruzioni possono essere eseguite in parallelo e le inviano alle rispettive unità. Questo compito non è semplice, dato che un'istruzione può richiedere il risultato della precedente come proprio operando, oppure può dover impiegare il dato conservato in un registro usato anche dall'altra istruzione; il risultato può quindi cambiare secondo l'ordine d'esecuzione delle istruzioni. La maggior parte delle CPU moderne dedica un elevato numero di transistor allo svolgimento di questo compito, per permettere al processore di funzionare a pieno regime in modo costante; compito che si è reso sempre più importante con l'aumento del numero delle unità. Mentre le prime CPU superscalari possedevano due ALU ed una FPU, un processore attuale come ad esempio il [[w:PowerPC G5|PowerPC 970]] possiede quattro ALU, due FPU e due unità SIMD. Se l'unità di decodifica delle istruzioni non mantiene occupate tutte le unità funzionali del processore, le prestazioni ne soffrono grandemente.
 
Le architetture superscalari ebbero origine nell'ambiente RISC, dato che questo tipo di design richiede unità funzionali semplici, che possono essere incluse in più esemplari in una unica CPU. Questa è la ragione per cui questi processori erano più veloci dei CISC tra gli anni '80 e gli anni '90. Tuttavia, col progresso della tecnologia, anche design ingombranti come l'[[w:IA-32|IA-32]] poterono essere progettati in modo superscalare.
Line 12 ⟶ 11:
 
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, dato 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 sfruttare al meglio i processori moderni e la realizzazione di programmi paralleli non è semplice e per alcuni algoritmi non esistono nemmeno metodi per renderli paralleli in modo efficiente.
 
[[Categoria:Architetture dei processori|Processore superscalare]]
{{Avanzamento|100%|29 dicembre 2008}}