Processore superscalare: architettura, pipeline, tipi e sue applicazioni

Prova Il Nostro Strumento Per Eliminare I Problemi





In questo mondo tutti vogliono che le loro cose/lavori siano fatti velocemente. Non è vero? Dalle automobili alle macchine industriali a quelle domestiche, tutti vogliono che funzionino più velocemente. Sai cosa c'è dentro queste macchine che le fanno funzionare? Sono processori . Possono essere micro o macro processori a seconda della funzionalità. Il processore di base in generale esegue un'istruzione per ciclo di clock. Per migliorare la loro velocità di elaborazione in modo che le macchine possano migliorare la loro velocità, è nato il processore superscalare che ha un algoritmo di pipeline per consentirgli di eseguire due istruzioni per ciclo di clock. Fu inventato per la prima volta dal CDC 6600 di Seymour Cray inventato nel 1964 e successivamente migliorato da Tjaden & Flynn nel 1970.


Il primo microprocessore superscalare commerciale a chip singolo MC88100 è stato sviluppato da Motorola nel 1988, successivamente Intel ha introdotto la sua versione I960CA nel 1989 e la serie AMD 29000 29050 nel 1990.  Al momento, il tipico processore superscalare utilizzato è il processore Intel Core i7 a seconda la microarchitettura di Nehalem.



Anche se le implementazioni del superscalare si stanno dirigendo verso un aumento della complessità. La progettazione di questi processori si riferisce normalmente a un insieme di metodi che consentono alla CPU di un computer di raggiungere un throughput superiore a un'istruzione per ogni ciclo durante l'esecuzione di un singolo programma sequenziale. Vediamo ulteriormente in questo articolo l'architettura SuperScalarprocessor che riduce i suoi tempi di esecuzione e le sue applicazioni.

Cos'è il processore superscalare?

Un tipo di microprocessore utilizzato per implementare un tipo di parallelismo noto come parallelismo a livello di istruzione in un singolo processore per eseguire più di un'istruzione durante un ciclo CLK inviando contemporaneamente varie istruzioni a speciali unità di esecuzione sul processore. UN processore scalare esegue una singola istruzione per ogni ciclo di clock; un processore superscalare può eseguire più di un'istruzione durante un ciclo di clock.



Le tecniche di progettazione del superscalare normalmente comprendono la ridenominazione parallela dei registri, la decodifica delle istruzioni parallele, le esecuzioni fuori ordine e l'esecuzione speculativa. Pertanto, questi metodi vengono normalmente utilizzati con metodi di progettazione complementari come pipelining, predizione dei rami, memorizzazione nella cache e multi-core all'interno degli attuali progetti di microprocessori.

  Processore superscalare
Processore superscalare

Caratteristiche

Le caratteristiche dei processori superscalari includono quanto segue.

  PCBWay
  • L'architettura superscalare è una tecnica di calcolo parallelo utilizzata in vari processori.
  • In un computer superscalare, la CPU gestisce diverse pipeline di istruzioni per eseguire numerose istruzioni contemporaneamente durante un ciclo di clock.
  • Le architetture superscalari includono tutto pipeline caratteristiche anche se ci sono diverse istruzioni in esecuzione contemporaneamente all'interno della stessa pipeline.
  • I metodi di progettazione superscalare normalmente comprendono la ridenominazione parallela dei registri, la decodifica delle istruzioni parallele, l'esecuzione speculativa e l'esecuzione fuori ordine. Pertanto, questi metodi vengono normalmente utilizzati con metodi di progettazione complementari come memorizzazione nella cache, pipelining, predizione dei rami e multi-core nei recenti progetti di microprocessori.

Architettura del processore superscalare

Sappiamo che un processore superscalare è una CPU che esegue più di un'istruzione per ogni ciclo CLK perché le velocità di elaborazione sono semplicemente misurate in cicli CLK per ogni secondo. Rispetto a un processore scalare, questo processore è molto più veloce.

L'architettura del processore superscalare include principalmente unità di esecuzione parallela in cui queste unità possono implementare le istruzioni simultaneamente. Quindi, in primo luogo, questa architettura parallela è stata implementata all'interno di un processore RISC che utilizza istruzioni semplici e brevi per eseguire i calcoli. Quindi, a causa delle loro abilità superscalari, normalmente RISCHIO i processori hanno funzionato meglio rispetto ai processori CISC che funzionano allo stesso megahertz. Ma la maggior parte CISC i processori ora come Intel Pentium comprendono anche un'architettura RISC, che consente loro di eseguire istruzioni in parallelo.

  Architettura del processore superscalare
Architettura del processore superscalare

Il processore superscalare è dotato di diverse unità di elaborazione per la gestione di varie istruzioni in parallelo in ogni fase di elaborazione. Utilizzando l'architettura di cui sopra, un certo numero di istruzioni avvia l'esecuzione all'interno di un ciclo di clock simile. Questi processori sono in grado di ottenere un'uscita di esecuzione dell'istruzione della suddetta istruzione per ciascun ciclo.

Nel diagramma dell'architettura sopra, viene utilizzato un processore con due unità di esecuzione in cui una viene utilizzata per i numeri interi e l'altra viene utilizzata per le operazioni in virgola mobile. L'unità di recupero delle istruzioni (IFU) è in grado di leggere le istruzioni alla volta e le memorizza all'interno della coda delle istruzioni. In ogni ciclo, l'unità di spedizione recupera e decodifica fino a 2 istruzioni dal fronte della coda. Se è presente un singolo numero intero, una singola istruzione in virgola mobile e nessun pericolo, entrambe le istruzioni vengono inviate entro un ciclo di clock simile.

Pipeline

Il pipelining è la procedura per suddividere le attività in passaggi secondari ed eseguirle all'interno di diverse parti del processore. Nella seguente pipeline superscalare, è possibile recuperare e inviare due istruzioni alla volta per completare un massimo di 2 istruzioni per ciclo. Di seguito viene mostrata l'architettura di pipelining nel processore scalare e nel processore superscalare.

Le istruzioni in un processore superscalare vengono emesse da un flusso di istruzioni sequenziali. Deve consentire più istruzioni per ogni ciclo di clock e la CPU deve verificare dinamicamente le dipendenze dei dati tra le istruzioni.

Nell'architettura della pipeline sottostante, F viene recuperato, D viene decodificato, E viene eseguito e W è il write-back del registro. In questa architettura di pipeline, I1, I2, I3 e I4 sono istruzioni.

L'architettura della pipeline del processore scalare include una singola pipeline e quattro fasi di recupero, decodifica, esecuzione e riscrittura dei risultati. Nel processore scalare a singola pipeline, la pipeline nell'istruzione1 (I1) funziona come; nel primo periodo di clock I1 recupererà, nel secondo periodo di clock decodificherà e nella seconda istruzione I2 recupererà. La terza istruzione I3 nel terzo periodo di clock verrà recuperata, I2 decodificherà e I1 verrà eseguita. Nel quarto periodo di clock, I4 recupererà, I3 decodificherà, I2 eseguirà e I1 scriverà in memoria. Quindi, in sette periodi di clock, eseguirà 4 istruzioni in una singola pipeline.

  Pipeline scalare
Pipeline scalare

L'architettura della pipeline del processore superscalare include due pipeline e quattro fasi di recupero, decodifica, esecuzione e riscrittura dei risultati. È un processore superscalare a 2 problemi, il che significa che due istruzioni alla volta recupereranno, decodificheranno, eseguiranno e riporteranno la riscrittura. Le due istruzioni I1 e I2 recupereranno, decodificheranno, eseguiranno e riscriveranno contemporaneamente in ogni periodo di clock. Simultaneamente nel successivo periodo di clock, le restanti due istruzioni I3 e I4 verranno prelevate, decodificate, eseguite e riscritte contemporaneamente. Quindi, in cinque periodi di clock, eseguirà 4 istruzioni in una singola pipeline.

  Pipelining superscalare
Pipelining superscalare

Pertanto, un processore scalare emette una singola istruzione per ciclo di clock ed esegue una singola fase della pipeline per ciclo di clock, mentre un processore superscalare emette due istruzioni per ciclo di clock ed esegue due istanze di ciascuna fase in parallelo. Quindi l'esecuzione delle istruzioni in un processore scalare richiede più tempo mentre in un superscalare ci vuole meno tempo per eseguire le istruzioni .

Tipi di Processori Superscalari

Questi sono diversi tipi di processori superscalari disponibili sul mercato che sono discussi di seguito.

Processore Intel Core i7

Intel core i7 è un processore superscalare basato sulla microarchitettura Nehalem. In un design Core i7, ci sono vari core del processore in cui ogni core del processore è un processore superscalare. Questa è la versione più veloce del processore Intel utilizzata nei computer e dispositivi di fascia consumer. Simile all'Intel Corei5, questo processore è integrato nella tecnologia Intel Turbo Boost. Questo processore è accessibile in 2-6 varietà che supportano fino a 12 thread diversi contemporaneamente.

  Processore Intel Core i7
Processore Intel Core i7

Processore Intel Pentium

L'architettura pipeline superscalare del processore Intel Pentium significa che la CPU esegue un minimo di due o più istruzioni per ogni ciclo. Questo processore è ampiamente utilizzato nei personal computer. I dispositivi con processore Intel Pentium sono normalmente progettati per l'uso online, il cloud computing e la collaborazione. Quindi questo processore funziona perfettamente per tablet e Chromebook per fornire ottime prestazioni locali e interazioni online efficienti.

  Processore Intel Pentium
Processore Intel Pentium

IBM Potenza PC601

Il processore superscalare come IBM power PC601 appartiene alla famiglia dei microprocessori PowerPC RISC. Questo processore è in grado di emettere e ritirare tre istruzioni per ciascun clock e una per ciascuna delle 3 unità di esecuzione. Le istruzioni sono totalmente fuori servizio per migliorare le prestazioni; ma il PC601 farà emergere l'esecuzione in ordine.

  IBM Potenza PC601
IBM Potenza PC601

Il potente processore PC601 fornisce indirizzi logici a 32 bit, tipi di dati interi a 8, 16 e 32 bit e tipi di dati a virgola mobile a 32 e 64 bit. Per l'implementazione di PowerPC a 64 bit, l'architettura di questo processore fornisce tipi di dati interi basati su 64 bit, indirizzamento e altre funzionalità necessarie per completare l'architettura basata su 64 bit.

MC88110

L'MC 88110 è un microprocessore RISC di seconda generazione a chip singolo che utilizza metodi avanzati per sfruttare il parallelismo a livello di istruzione. Questo processore utilizza più cache su chip, problemi di istruzioni superscalari, registrazione di istruzioni dinamiche limitate ed esecuzione speculativa, per ottenere le massime prestazioni, quindi è idealmente utilizzato come processore centrale all'interno di PC e workstation a basso costo.

  MC88000
MC88000

Intel i960

Intel i960 è un processore superscalare in grado di eseguire e inviare varie istruzioni indipendenti durante ogni ciclo di clock del processore. Questo è un microprocessore basato su RISC che è diventato molto famoso come microcontrollore incorporato nei primi anni '90. Questo processore viene utilizzato continuamente in alcune applicazioni militari.

  Intel i960
Intel i960

MIPS R

MIPS R è un microprocessore dinamico e superscalare utilizzato per eseguire l'architettura del set di istruzioni MIPS a 64 bit. Questo processore recupera e decodifica 4 istruzioni per ogni ciclo e le invia a cinque unità di esecuzione completamente pipeline ea bassa latenza. Questo processore è particolarmente progettato per applicazioni ad alte prestazioni, di grandi dimensioni e del mondo reale con scarsa localizzazione della memoria. Con l'esecuzione approssimativa, calcola semplicemente gli indirizzi di memoria. I processori MIPS sono utilizzati principalmente in vari dispositivi come Nintendo Gamecube, la linea di prodotti SGI, Sony Playstation 2, PSP e router Cisco.

  MIPS R
MIPS R

Differenza B/N Superscalare Vs Pipelining

La differenza tra superscalare e pipelining è discussa di seguito.

Superscalare

Pipeline

Un superscalare è una CPU, utilizzata per implementare una forma di parallelismo chiamato parallelismo a livello di istruzione in un singolo processore. Viene utilizzata una tecnica di implementazione come il pipelining in cui diverse istruzioni sono sovrapposte all'interno dell'esecuzione.
Un'architettura superscalare avvia diverse istruzioni contemporaneamente e le esegue separatamente. L'architettura di pipelining esegue una singola fase della pipeline solo per ogni ciclo di clock.

Questi processori dipendono dal parallelismo spaziale. Dipende dal parallelismo temporale.
Diverse operazioni vengono eseguite contemporaneamente su hardware separato. Sovrapposizione di più operazioni su hardware comune.
Si ottiene duplicando le risorse hardware come le porte dei file di registro e le unità di esecuzione. È ottenuto da unità di esecuzione pipeline più approfondite con cicli CLK molto veloci.

Caratteristiche

Il caratteristiche del processore superscalare include il seguente.

  • Un processore superscalare è un modello super-pipeline in cui semplicemente le istruzioni indipendenti vengono eseguite in serie senza alcuna situazione di attesa.
  • Un processore superscalare recupera e decodifica alla volta diverse istruzioni del flusso di istruzioni in entrata.
  • L'architettura dei processori superscalari sfrutta il potenziale del parallelismo a livello di istruzione.
  • I processori superscalari emettono principalmente la suddetta singola istruzione per ogni ciclo.
  • Il no. delle istruzioni impartite dipende principalmente dalle istruzioni all'interno del flusso di istruzioni.
  • Le istruzioni vengono spesso riordinate per adattarsi meglio all'architettura del processore.
  • Il metodo superscalare è solitamente associato ad alcune caratteristiche identificative. Le istruzioni vengono normalmente emesse da un flusso di istruzioni sequenziali.
  • La CPU controlla dinamicamente le dipendenze dei dati tra le istruzioni in fase di esecuzione.
  • La CPU esegue più istruzioni per ogni ciclo di clock.

Vantaggi e svantaggi

Il vantaggi del processore superscalare include il seguente.

  • Un processore superscalare implementa il parallelismo a livello di istruzione in un singolo processore.
  • Questi processori sono semplicemente fatti per eseguire qualsiasi set di istruzioni.
  • Il processore superscalare che include la previsione del ramo di esecuzione fuori ordine e l'esecuzione speculativa può semplicemente trovare il parallelismo sopra diversi blocchi di base e iterazioni di loop.

Il svantaggi del processore superscalare include il seguente.

  • I processori superscalari non sono molto utilizzati nei piccoli sistemi embedded a causa del consumo energetico.
  • Il problema con la pianificazione può verificarsi in questa architettura.
  • Il processore superscalare migliora il livello di complessità nella progettazione dell'hardware.
  • Le istruzioni in questo processore vengono semplicemente recuperate in base al loro ordine di programma sequenziale, ma questo non è il miglior ordine di esecuzione.

Applicazioni per processori superscalari

Le applicazioni di un processore superscalare includono quanto segue.

  • L'esecuzione superscalare viene spesso utilizzata da un laptop o desktop. Questo processore scansiona semplicemente il programma in esecuzione per scoprire serie di istruzioni che possono essere eseguite come una sola.
  • Un processore superscalare include varie copie hardware del percorso dati che eseguono varie istruzioni contemporaneamente.
  • Questo processore è progettato principalmente per generare una velocità di implementazione superiore a un'istruzione per ogni ciclo di clock per un singolo programma sequenziale.

Quindi, questo è tutto una panoramica del processore superscalare – architettura, tipi e applicazioni. Ecco una domanda per te, cos'è il processore scalare?