Coprocessore: architettura, funzionamento, tipi e sue applicazioni

Prova Il Nostro Strumento Per Eliminare I Problemi





In un microprocessore chip, vengono aggiunti nuovi circuiti per svolgere compiti speciali e anche operazioni sui numeri per scaricare il lavoro di base della CPU in modo che la CPU possa funzionare molto velocemente. Un processore supplementare come un coprocessore viene utilizzato principalmente nei computer per eseguire compiti speciali come l'elaborazione della visualizzazione grafica e ampi calcoli aritmetici. Questo processore è progettato per eseguire tali attività in modo molto efficiente rispetto alla CPU, quindi è possibile aumentare la velocità complessiva del computer. Questo articolo discute una panoramica di a coprocessore –architettura, lavoro e sue applicazioni.


Cos'è il coprocessore?

Un processore che funziona fianco a fianco con il processore principale di un computer come la CPU è noto come coprocessore. Questo processore è anche noto come processore per computer supplementare. Utilizzando questo processore, è possibile eseguire alcuni calcoli matematici difficili come la grafica visualizzata sullo schermo, l'elaborazione del segnale, l'elaborazione delle stringhe, l'aritmetica in virgola mobile, l'interfacciamento input-output, ecc.



  Coprocessore
Coprocessore

Architettura del coprocessore

Il coprocessore come l'architettura 8087 è mostrato di seguito. Generalmente, questo coprocessore lavora parallelamente con il microprocessore. Questo coprocessore è stato sviluppato da Intel e utilizzato con i microprocessori della famiglia 8086 a 16 bit. Quando il processore funziona in combinazione con il microprocessore, la parte di calcolo viene semplicemente gestita dal processore e ciò consente alla CPU di utilizzare le risorse per eseguire varie altre attività.

La figura seguente rappresenta l'architettura del coprocessore 8087. Questa architettura include due unità principali come l'unità di controllo e un'unità di esecuzione numerica chiamata anche NEU.



  Architettura del coprocessore 8087
Architettura del coprocessore 8087

Nell'unità di controllo sono presenti varie unità come il buffer dei dati, il registro delle parole di controllo e di stato, la coda degli operandi condivisi, il puntatore delle eccezioni e l'unità di indirizzamento e tracciamento del bus. L'Unità di esecuzione numerica o NEU include principalmente un'unità di controllo del microcodice, una pila di registri, un traslatore programmabile, un registri , modulo aritmetico, modulo esponente e coda operando condivisa.

L'unità di controllo nel coprocessore deve controllare l'esecuzione delle istruzioni (IE) di cui è responsabile l'unità di esecuzione numerica. Principalmente, l'unità di controllo del microcodice (CU) dell'unità di esecuzione numerica ottiene le istruzioni numeriche dall'unità di controllo del coprocessore. Questo coprocessore ha 8 registri completi di 80 bit e ognuno di questi è utilizzato nello stack LIFO. Gli operandi su cui si verificheranno le istruzioni del coprocessore esistono nello stack di registro.

  PCBWay

Lo stack esistente viene puntato attraverso l'SP a 3 bit (puntatore dello stack) che contiene i valori binari che vanno da 000 a 111 per mostrare gli 8 registri dello stack. Funziona all'interno di uno stack circolare in modalità LIFO. Tuttavia, una volta che si verifica l'azione di ripristino, il puntatore può essere inizializzato dal valore binario '000'.

I dati numerici tre classificazioni su cui le funzioni del coprocessore sono numeri decimali impacchettati, numeri reali e numeri interi binari. Gli interi binari sono di tre tipi: numero intero a 16 bit, numero intero a 32 bit e numero intero a 64 bit. Il formato BCD a 80 bit indica i numeri decimali impacchettati mentre i numeri reali sono di 3 tipi; Reale breve a 32 bit, reale lungo a 64 bit e reale temporaneo a 80 bit.

Per trasferire i dati numerici nel coprocessore a Viene utilizzato un bus esponente a 16 bit o un bus mantissa a 64 bit . Il coprocessore include una parola di controllo a 16 bit e una parola di stato a 16 bit.

La parola di controllo viene scritta nel registro di controllo e ciò avviene in modo tale che il coprocessore scriva inizialmente la parola di controllo all'interno della locazione di memoria. Successivamente, il coprocessore legge semplicemente la parola di controllo utilizzando la posizione di memoria e la memorizza nel registro di controllo.

Analogamente, la parola di stato si legge in modo tale che il processore invii i dati nel registro di stato verso una locazione di memoria. Inoltre, questo coprocessore legge il registro di stato da quella specifica locazione di memoria. Quindi questo significa che il processore e il microprocessore comunicano tra loro tramite la memoria principale.

Come funziona il coprocessore?

Il coprocessore è progettato principalmente per funzionare con entrambi i processori 8086 e 8088. Il coprocessore viene utilizzato per aiutare il sistema a funzionare in modo più potente scaricando attività specifiche della CPU. Una volta che questo processore funziona in combinazione con il microprocessore, le istruzioni sia del microprocessore che del coprocessore vengono integrate all'interno durante la scrittura del programma. L'inizio delle istruzioni nel programma in linguaggio assembly ha una 'F' che rappresenta le istruzioni del coprocessore mentre le istruzioni senza un prefisso 'F' mostrano le istruzioni del microprocessore.

All'inizio, le istruzioni vengono recuperate dal microprocessore dalla posizione della memoria e le caricano in sequenza all'interno della coda, allo stesso tempo, anche il coprocessore 8087 legge e memorizza le istruzioni all'interno di una coda interna. Ciò significa che ogni singola istruzione può essere letta sia attraverso il coprocessore che il processore, tuttavia al momento dell'esecuzione, sia il coprocessore che il microprocessore possono eseguire l'esecuzione delle loro particolari istruzioni. Ciò significa che l'istruzione viene letta e decodificata. Se il microprocessore controlla che ci sia un instr del coprocessore, allora quell'istruzione viene trattata come Nessuna operazione. Allo stesso modo, se questo coprocessore si avvicina a qualsiasi istruzione del microprocessore, verrà trattato come nessuna operazione.

Tipi di coprocessore

Sono disponibili diversi coprocessori basati su produttori come i seguenti.

Coprocessore Intel 8087

Intel 8087 è un coprocessore appositamente progettato che viene utilizzato per eseguire calcoli matematici che includono valori in virgola mobile e interi. A volte, è anche noto come elaboratore di dati numerici e elaboratore matematico. Questo è un coprocessore numerico per processori Intel 80188, 8086, 80186 e 8088. Il coprocessore 8087 include otto registri generali a 80 bit che vengono eseguiti come stack. Quindi, tutte le operazioni in virgola mobile vengono semplicemente eseguite con i dati dallo stack e dalla memoria esterna.

  Coprocessore Intel 8087
Coprocessore Intel 8087

Il coprocessore Intel 8087 supporta semplicemente i numeri in virgola mobile BCD, interi, a precisione singola e doppia e anche i numeri in virgola mobile a precisione estesa. Una volta che il processore 8087 carica i dati dalla memoria, li converte internamente per estendere il numero di precisione e inoltre tutti i calcoli vengono eseguiti attraverso questo numero.

Quindi passare da un numero a precisione doppia a un numero a precisione singola altrimenti da un numero intero a 64 bit - i numeri interi a 32 bit/16 bit non danno alcun aumento significativo delle prestazioni. I coprocessori 8087 non sono stati prodotti solo da Intel, ma anche AMD, Cyrix e IBM producono questi coprocessori.

Motorola 68881

Motorola 68881 è un coprocessore utilizzato principalmente con la seconda generazione di Motorola 68K microprocessori come Motorola 68030 e 68020. In teoria, questo coprocessore viene utilizzato con le precedenti CPU 68000 o 68010 come dispositivo periferico.

  Motorola 68881
Motorola 68881

Il coprocessore Motorola 68881 funziona semplicemente come un dispositivo mappato in memoria. Una volta che la CPU principale carica l'istruzione del coprocessore, scrive il codice dell'istruzione nei CIR (registri di interfaccia del coprocessore), che sono mappati all'interno dello spazio degli indirizzi della CPU, dopodiché legge la risposta del co-responsabile da uno dei registri CIR.

I coprocessori Motorola 68881/68882 sono stati utilizzati nelle workstation PC IBM RT, Sun Microsystems Sun-3, NeXT Computer, famiglia Apple Computer Macintosh II, Amiga 3000, Sharp X68000, Convergent Technologies MightyFrame, TT, Atari Mega STE e Falcon. Questi processori sono utilizzati anche in alcuni prodotti Atari e Amiga di terze parti come un dispositivo mappato in memoria sul 68000.

Coprocessori di movimento Apple

I coprocessori della serie M di Apple sono noti come coprocessori di movimento utilizzati nei dispositivi mobili Apple. Il primo coprocessore è stato progettato nel 2013, utilizzato per raccogliere i dati dei sensori da giroscopi, accelerometri e bussole incorporati e scaricare i dati dei sensori raccolti utilizzando la CPU principale.

  Coprocessori di movimento Apple
Coprocessori di movimento Apple

I coprocessori Apple della serie M raccolgono semplicemente il processo e archiviano i dati del sensore anche se il dispositivo è inattivo e le applicazioni possono recuperare i dati una volta che il dispositivo viene nuovamente acceso. Quindi questo riduce la potenza assorbita dal dispositivo e salva la durata della batteria.

Differenza tra processore e coprocessore

La differenza tra processore e coprocessore include quanto segue.

Processore

Coprocessore

Il processore è l'unità di elaborazione principale del computer che esegue diverse operazioni aritmetiche, logiche e di controllo in base alle istruzioni. Il coprocessore è un processore speciale che fornisce supporto al processore principale.

Il processore si occupa di tutti i lavori principali

Il coprocessore si occupa solo di altre cose come grafica e calcoli aritmetici.
Gestisce operazioni logiche e calcoli matematici e genera segnali di controllo ad altri componenti per sincronizzare le attività. Esegue elaborazione del segnale, operazioni matematiche, networking e crittografia in base al tipo.
Il processore mantiene il corretto funzionamento dell'intero computer. Questo processore aiuta ad aumentare le prestazioni del sistema e scarica compiti gravi dalla CPU.

Vantaggi

I vantaggi di un coprocessore includono quanto segue.

  • Il coprocessore gestisce semplicemente attività più specializzate più velocemente rispetto alla CPU principale
  • Questi processori sono facili da usare e i più popolari.
  • Diminuisce lo sforzo del microprocessore prendendo compiti di elaborazione speciali dalla CPU in modo che funzioni a una velocità maggiore.
  • Questo processore è utile per estendere le funzionalità di elaborazione della CPU espandendo il set di istruzioni o offrendo registri di configurazione.

Svantaggi

Gli svantaggi dei coprocessori includono quanto segue.

  • Il coprocessore non è in grado di recuperare istruzioni dalla memoria, eseguire direttamente istruzioni, gestire la memoria, eseguire operazioni di I/O
  • Dipende dal processore principale recuperare le istruzioni del coprocessore e occuparsi di tutte le altre operazioni non correlate al coprocessore.
  • Questo non è il principale processore del sistema.
  • Il coprocessore non può funzionare senza il microprocessore principale.

Applicazioni

Le applicazioni dei coprocessori includono quanto segue.

  • Il co-processore viene utilizzato per eseguire alcune delle attività più specializzate come l'elaborazione grafica del display o complessi calcoli matematici.
  • Un coprocessore viene semplicemente utilizzato per ridurre il carico sulla CPU di un computer.
  • Questo processore funziona fianco a fianco con la CPU del computer.
  • Questo processore esegue operazioni matematiche di alto livello molto più velocemente rispetto al processore principale come radici, logaritmi, funzioni trigonometriche, ecc.
  • Un coprocessore aumenta le funzioni del processore principale.
  • Il coprocessore esegue diverse operazioni come l'elaborazione del segnale, l'aritmetica in virgola mobile, l'elaborazione di stringhe, la grafica, l'interfacciamento I/O attraverso dispositivi periferici, la crittografia, ecc.
  • Questi processori sono chip autonomi nei computer desktop precedenti che erano collegati alla scheda madre.
  • Un coprocessore gestisce le attività della CPU per migliorare le prestazioni complessive.

Così, questo è una panoramica di un coprocessore – il lavoro e le sue applicazioni. Questo processore è anche noto come processore matematico. Un coprocessore esegue diverse attività molto più velocemente rispetto alla CPU principale. Pertanto, la velocità complessiva del sistema informatico aumenta. Questo processore può essere collegato a un processore ARM. Una volta aggiunto, dobbiamo aumentare il set di istruzioni della CPU Core o includere registri configurabili per aumentare la potenza di elaborazione. Ecco una domanda per te, cos'è un microprocessore?