processore superscalare
Processore in grado di eseguire più istruzioni nello stesso ciclo di clock, grazie alla presenza di diverse unità funzionali identiche nello stesso chip, gestite dalle unità di controllo che parallelizzano le istruzioni e le inviano a ognuna di tali unità. Un processore superscalare può pertanto supportare il calcolo parallelo su un singolo chip, ponendosi a metà strada tra i processori scalari (capaci di compiere un’istruzione sui propri operandi ogni ciclo di clock) e i processori vettoriali (capaci di compiere un’istruzione su un vettore di dati ogni ciclo di clock). La tecnica di progettazione superscalare, che ha portato alle cosiddette architetture post-RISC, nacque negli anni Novanta del secolo scorso nell’ambito della continua ricerca di architetture sempre più veloci. Mentre in una pipeline tradizionale le diverse istruzioni sono eseguite da una sola unità di elaborazione, indipendentemente dal numero di stadi in cui sono suddivise, in un processore superscalare più unità di elaborazione lavorano in parallelo, ciascuna alimentata da una propria pipeline. Per ottimizzare il livello di parallelismo è necessario gestire le dipendenze tra le varie istruzioni in modo da mantenere riempita la pipeline. A tale scopo vengono sviluppate diverse strategie: esecuzione fuori ordine, ridenominazione dei registri, svolgimento di cicli, previsione dinamica di salto con tabella della storia dei salti, esecuzione speculativa e schedulazione dinamica delle istruzioni. Tra i primi microprocessori superscalari commerciali, introdotti agli inizi degli anni Novanta, c’è il SuperSPARC I (seguito poi da SuperSPARC II) della Sun microsystems, microprocessore RISC a 32 bit altamente integrato e a elevate prestazioni, progettato con chip prodotti con avanzati processi BiCMOS e impiegato sia in macchine desktop uniprocessore sia in grandi server multiprocessore. Altre architetture di tipo RISC di successo sono state proposte da Intel, Motorola, AMD, Hewlett-Packard, Digital equipment, spingendo sempre più tutte le industrie di microelettronica ad adottare i principî RISC, tanto che oggi la quasi totalità dei processori di tipo general purpose è di tipo superscalare. Attualmente è possibile integrare più processori indipendenti (definiti core) in un singolo processore. In tal modo, a differenza delle unità centrali di elaborazione classiche, vi sono più pipeline tra loro separate (fisicamente o logicamente), in grado di eseguire programmi diversi. Tra gli esempi di questo tipo vi sono i microprocessori Core Duo della Intel. Il parallelismo che si viene a creare sui vari processi (tread) migliora le prestazioni rispetto alla semplice aggiunta di pipeline in quanto riduce i rischi di conflitto.