Esistono diversi tipi di unità di elaborazione centrale (CPU) disponibili per i computer. Questi tipi di CPU non differiscono molto in termini di hardware di elaborazione e architettura. La maggior parte di essi esegue le attività di base di una CPU come la lettura e la scrittura di dati, l’aritmetica di base e il salto di indirizzi. Tuttavia, possono differire in termini di dimensioni del bus e architettura del processore. Sono disponibili diversi tipi di hardware per processori per computer, due dei quali sono i processori scalari e superscalari.
Un processore che esegue dati scalari è chiamato processore scalare. Utilizzando operandi a virgola fissa, le istruzioni intere vengono eseguite da processori scalari anche nel loro stato più semplice. I processori scalari più potenti di solito eseguono sia operazioni in virgola mobile che intere. I processori scalari prodotti di recente contengono sia un’unità in virgola mobile che un’unità intera, tutte sullo stesso chip CPU. La maggior parte di questi moderni processori scalari utilizza istruzioni del tipo a 32 bit.
Il processore superscalare, d’altra parte, esegue più istruzioni alla volta a causa del suo numero multiplo di pipeline. Questa struttura della CPU implementa il parallelismo a livello di istruzione, che è una forma di parallelismo nell’hardware del computer, all’interno di un singolo processore del computer. Ciò significa che può consentire un throughput rapido della CPU che non è nemmeno possibile in remoto in altri processori che non implementano il parallelismo a livello di istruzione. Invece di eseguire un’istruzione alla volta, un processore superscalare utilizza le sue unità funzionali ridondanti nell’esecuzione di più istruzioni. Queste unità funzionali non sono core CPU separati, ma risorse di estensione di una singola CPU come moltiplicatori, bit shifter e unità logiche aritmetiche (ALU).
Le differenze tra processori scalari e superscalari generalmente si riducono alla quantità e alla velocità. Un processore scalare, considerato il più semplice di tutti i processori, lavora su uno o due elementi di dati del computer in un dato momento. Il processore superscalare lavora su più istruzioni e diversi gruppi di più elementi di dati alla volta. I processori scalari e superscalari funzionano entrambi allo stesso modo in termini di come manipolano i dati, ma la loro differenza sta nel numero di manipolazioni e di elementi di dati su cui possono lavorare in un dato momento. I processori superscalari possono gestire più istruzioni ed elementi di dati, mentre il processore scalare semplicemente non può, rendendo quindi il primo un processore più potente del secondo.
I processori scalari e superscalari hanno entrambi alcune somiglianze con i processori vettoriali. Come un processore scalare, anche un processore vettoriale esegue una singola istruzione alla volta, ma invece di manipolare solo un elemento di dati, la sua singola istruzione può accedere a più elementi di dati. Simile al processore superscalare, un processore vettoriale ha diverse unità funzionali ridondanti che gli consentono di manipolare più elementi di dati, ma può funzionare solo su una singola istruzione alla volta. In sostanza, un processore superscalare è una combinazione di un processore scalare e un processore vettoriale.