Úvod
Specifické úlohy zpracování
Například matematický koprocesor může řídit digitální zpracování; grafický koprocesor zvládne vykreslování videa. Například mikroprocesor intel pentium obsahuje vestavěný matematický koprocesor.
Jádro je připojeno
Koprocesor lze připojit k procesoru ARM. Koprocesor rozšiřuje schopnosti zpracování jádra rozšířením sady instrukcí nebo poskytnutím konfiguračních registrů. K jádru ARM lze přes rozhraní koprocesoru připojit jeden nebo více koprocesorů.
Ke koprocesoru lze přistupovat prostřednictvím sady vyhrazených instrukcí ARM, které poskytují rozhraní typu load-store. Například koprocesor 15 (CP15), procesor ARM používá registry koprocesoru 15 pro řízení cache, TCM a správy paměti.
Rozšířená sada instrukcí
Koprocesor může také rozšířit instrukční sadu poskytnutím speciální sady nových instrukcí. Existuje například speciální sada instrukcí, kterou lze přidat do standardní sady instrukcí ARM pro zpracování operací vektoru s pohyblivou řádovou čárkou (VFP).
Tyto nové instrukce jsou zpracovávány ve fázi dekódování potrubí ARM. Pokud je ve fázi dekódování nalezena instrukce koprocesoru, bude odeslána do odpovídajícího koprocesoru. Pokud koprocesor neexistuje nebo tuto instrukci nerozpozná, ARM se domnívá, že došlo k nedefinované výjimce instrukce. To také umožňuje programátorům používat software k simulaci chování koprocesoru (pomocí nedefinovaných podprogramů pro výjimku instrukcí).
Vnitřní struktura
Vnitřní struktura koprocesoru 80x87 je znázorněna na obrázku 1. Lze jej rozdělit na dvě hlavní části: řídicí jednotku (CU) a numerickou prováděcí jednotku (NEU).
Řídicí jednotka (CU) připojuje koprocesor k systémové sběrnici CPU a jak koprocesor, tak CPU monitorují tok prováděných instrukcí. Pokud je aktuální instrukce, která má být provedena, instrukce koprocesoru (tj. instrukce ESCape), pak ji koprocesor automaticky provede, jinak bude instrukce předána CPU k provedení.
Numerical Execution Unit (NEU) replikuje a provádí všechny instrukce koprocesoru. Má zásobník složený z 8 80bitových registrů, který se používá k ukládání datového formátu s plovoucí desetinnou čárkou s rozšířenou přesností operandů a provozních výsledků matematických instrukcí. Během provádění instrukce koprocesoru buď specifikujte data v registru zásobníku, nebo použijte mechanismus push/pop k ukládání nebo čtení dat z horní části zásobníku.
V komponentě NEU jsou některé registry, které zaznamenávají pracovní stav koprocesoru, jako například: stavový registr, řídicí registr, registr příznaků a registr ukazatelů výjimek. Funkce těchto registrů budou představeny samostatně později.
Moderní PC koprocesor
V roce 2006 společnost AGEIA oznámila kartu akcelerátoru fyziky PhysX, PhysX je navržena tak, aby zvládla tyto časově náročné a složité fyzikální výpočty. V roce 2008 Nvidia získala AGEIA a NVIDIA použila fyzikální engine PhysX k použití technologie CUDA k urychlení výpočtů pomocí jádra displeje.
V roce 2008 Khronos Group vydala OpenCL, což je společný jazyk, který podporuje GPU ATI/AMD a Nvidia.
V roce 2012 Intel oznámil koprocesor Intel Xeon Phi.
V roce 2013 Apple poprvé uvedl pohybový koprocesor M7 na iPhone 5s.
Super CPU
Zánik koprocesoru
Procesor 80486CPU měl již dříve koprocesor, aby zlepšil výpočetní schopnosti s plovoucí desetinnou čárkou. Procesor je stokrát rychlejší než originál a počítače obecně nemají koprocesory.
mikroprocesor ARM
Mikroprocesor ARM může podporovat až 16 koprocesorů pro různé operace společného zpracování. Během provádění programu každý koprocesor Procesor pouze provádí své vlastní instrukce pro společné zpracování, přičemž ignoruje instrukce procesoru ARM a dalších koprocesorů. Instrukce koprocesoru ARM jsou používány hlavně procesorem ARM k inicializaci operací zpracování dat koprocesoru ARM a k přenosu dat mezi registry procesoru ARM a registry koprocesoru a v registrech a paměti koprocesoru ARM Přenos data mezi. Instrukce koprocesoru ARM zahrnují následujících pět: — Instrukce pro manipulaci s číslem koprocesoru CDP — Instrukce pro načtení dat koprocesoru LDC — Instrukce pro ukládání dat koprocesoru STC — Instrukce pro přenos dat z registrů procesoru MCR ARM do registrů koprocesoru — Instrukce pro přenos dat z registru koprocesoru MRC do registru procesoru ARM.
ARM: Koprocesor obsahuje následujících pět:
CDP: Pokyny pro manipulaci s daty koprocesoru.
LDC: Instrukce načtení dat koprocesoru.
STC: Pokyny pro ukládání dat koprocesoru.
MCR: Instrukce přenosu dat z registru procesoru ARM do registru koprocesoru.
MRC: Instrukce přenosu dat z registru koprocesoru do registru procesoru ARM.