Coprocessore

introduzione

Attività di trattamento specifiche

Ad esempio, un coprocessore matematico può controllare l'elaborazione digitale; un coprocessore grafico può gestire il rendering video. Ad esempio, il microprocessore Intel Pentium include un coprocessore matematico integrato.

Il nucleo è connesso

Il coprocessore può essere collegato al processore ARM. Un coprocessore estende le capacità di elaborazione principali estendendo il set di istruzioni o fornendo registri di configurazione. Uno o più coprocessori possono essere collegati al core ARM tramite l'interfaccia del coprocessore.

È possibile accedere al coprocessore tramite una serie di istruzioni ARM dedicate che forniscono un'interfaccia di tipo load-store. Ad esempio, il coprocessore 15 (CP15), il processore ARM utilizza i registri del coprocessore 15 per controllare cache, TCM e gestione della memoria.

Set di istruzioni esteso

Il coprocessore può anche estendere il set di istruzioni fornendo un set speciale di nuove istruzioni. Ad esempio, esiste un set speciale di istruzioni che può essere aggiunto al set di istruzioni ARM standard per gestire le operazioni in virgola mobile vettoriale (VFP).

Queste nuove istruzioni vengono elaborate nella fase di decodifica della pipeline ARM. Se nella fase di decodifica viene trovata un'istruzione del coprocessore, verrà inviata al coprocessore corrispondente. Se il coprocessore non esiste o non riconosce questa istruzione, ARM ritiene che si sia verificata un'eccezione di istruzione non definita. Ciò consente inoltre ai programmatori di utilizzare il software per simulare il comportamento del coprocessore (utilizzando subroutine del servizio di eccezione delle istruzioni non definite).

Struttura interna

La struttura interna del coprocessore 80x87 è mostrata in Figura 1. Può essere suddivisa in due parti principali: unità di controllo (CU) e unità di esecuzione numerica (NEU).

L'unità di controllo (CU) collega il coprocessore al bus di sistema della CPU, e sia il coprocessore che la CPU monitorano il flusso di istruzioni in esecuzione. Se l'istruzione corrente da eseguire è un'istruzione del coprocessore (cioè un'istruzione ESCape), allora il coprocessore la eseguirà automaticamente, altrimenti l'istruzione verrà consegnata alla CPU per l'esecuzione.

La Numerical Execution Unit (NEU) replica ed esegue tutte le istruzioni del coprocessore. Ha uno stack composto da 8 registri a 80 bit, che viene utilizzato per memorizzare il formato dati a virgola mobile con operandi di precisione estesa e risultati di operazioni di istruzioni matematiche. Durante l'esecuzione dell'istruzione del coprocessore, specificare i dati nel registro dello stack oppure utilizzare il meccanismo push/pop per archiviare o leggere i dati dall'alto dello stack.

Nel componente NEU sono presenti alcuni registri che registrano lo stato di funzionamento del coprocessore, quali: registro di stato, registro di controllo, registro flag e registro puntatore eccezione. Le funzioni di questi registri verranno presentate separatamente in seguito.

Coprocessore per PC moderno

Nel 2006, AGEIA ha annunciato la scheda di accelerazione fisica PhysX, PhysX è progettata per gestire quei calcoli fisici complessi e che richiedono tempo. Nel 2008, Nvidia ha acquisito AGEIA e NVIDIA ha utilizzato il motore fisico PhysX per utilizzare la tecnologia CUDA per accelerare i calcoli da parte del core del display.

Nel 2008, Khronos Group ha rilasciato OpenCL, un linguaggio comune che supporta le GPU ATI/AMD e Nvidia.

Nel 2012, Intel ha annunciato il coprocessore Intel Xeon Phi.

Nel 2013, Apple ha lanciato per la prima volta il coprocessore di movimento M7 su iPhone 5s.

Super processore

La fine del coprocessore

La CPU 80486 aveva un coprocessore in precedenza per migliorare le capacità di calcolo in virgola mobile. Il processore è centinaia di volte più veloce dell'originale e generalmente i PC non dispongono di coprocessori.

Microprocessore ARM

Il microprocessore ARM può supportare fino a 16 coprocessori per varie operazioni di co-elaborazione. Durante l'esecuzione del programma, ciascun coprocessore Il processore esegue solo le proprie istruzioni di co-elaborazione, ignorando le istruzioni del processore ARM e degli altri coprocessori. Le istruzioni del coprocessore ARM sono utilizzate principalmente dal processore ARM per inizializzare le operazioni di elaborazione dei dati del coprocessore ARM e per trasferire i dati tra i registri del processore ARM e i registri del coprocessore e nei registri e nella memoria del coprocessore ARM Trasferimento dati tra. Le istruzioni del coprocessore ARM includono le cinque seguenti: — istruzioni di manipolazione del numero del coprocessore CDP — istruzioni di caricamento dei dati del coprocessore LDC — istruzioni di memorizzazione dei dati del coprocessore STC — istruzioni di trasferimento dei dati dai registri del processore ARM MCR ai registri del coprocessore — istruzioni di trasferimento dei dati dal registro del coprocessore MRC al registro del processore ARM.

ARM: il coprocessore include i seguenti cinque:

CDP: istruzioni per la manipolazione dei dati del coprocessore.

LDC: istruzione di caricamento dati del coprocessore.

STC: istruzioni per la memorizzazione dei dati del coprocessore.

MCR: istruzione di trasferimento dati dal registro del processore ARM al registro del coprocessore.

MRC: istruzione di trasferimento dati dal registro del coprocessore al registro del processore ARM.

Related Articles
TOP