V srdci každého počítače najdete procesor. The Centrální procesorová jednotka je kritický hardware. Spouští operační systém a všechny programy na vašem počítači. CPU jsou navrženy jako univerzální procesory. Ze své podstaty by měli být schopni zvládnout všechno.
CPU však nejsou v některých typech pracovních zátěží příliš dobré, protože jejich univerzální hardware nelze optimalizovat pro konkrétní úlohy, aniž by ztratily svou obecnou povahu. Nebo se stát beznadějně velkým, složitým a drahým. Kromě toho bude jakýkoli CPU schopen zpracovat pouze tolik dat a zpracování najednou. Koprocesor je druhá procesorová jednotka explicitně navržená pro jeden nebo oba tyto scénáře.
Koprocesor je jednoduše druhá procesorová jednotka v počítači. V některých scénářích se může jednat o duální fyzický CPU na stejné základní desce jako u některých serverů. Ve scénářích High-Performance Computing a superpočítačů lze tyto univerzální koprocesory nalézt také na přídavných kartách PCIe. Koprocesor je často zaměřen na konkrétní úlohu spíše než na univerzální procesor. Tyto procesory pro konkrétní úlohy lze připojit přímo k základní desce nebo začlenit do samostatné dceřiné desky, jako je přídavná karta PCIe.
První koprocesory
První koprocesory byly poměrně jednoduché. Byly navrženy tak, aby zvládly I/O nebo Input and Output pro sálové počítače. Problém byl v tom, že zpracování I/O bylo pro CPU velmi časově náročné. Vlastní zpracování však bylo poměrně jednoduché. Bylo tedy dost levné vyrobit procesor, který by to zvládl. Zatímco koprocesor přebíral I/O efektivně, CPU musel vydávat jednoduché I/O parametry, uvolňovat čas procesoru a zvyšovat výkon systému.
Původní IBM PC obsahovalo volitelný aritmetický koprocesor s pohyblivou řádovou čárkou. Tehdejší CPU prováděly tento typ matematiky v softwaru, který byl pomalý, ale dostatečně funkční pro ojedinělé případy, kdy to většina uživatelů potřebovala. Počítačově podporované navrhování neboli CAD systémy však tento typ matematiky neustále používaly. Oddělením aritmetiky s plovoucí desetinnou čárkou na koprocesor se nejen zvýšily rychlosti, když bylo potřeba, díky na hardwarovou akceleraci, ale uživatelé, kteří ji nepotřebovali, mohli ušetřit peníze zakoupením systému bez koprocesor.
Tyto jednoduché koprocesory měly nakonec své funkce integrované do architektury CPU. To je částečně přirozený výsledek nepřetržitého vývoje CPU, ale souvisí to také s obtížemi při pokračování jednoduché synchronizace, když se frekvence CPU zvyšuje. Zatímco tyto CPU a koprocesory běžely dostatečně dobře na 75 MHz, na dnešních GHz frekvencích by docházelo k masivnímu časovému zpoždění, spotřebě energie a problémům s vysokofrekvenčním rušením. Tyto problémy si vyžádaly složitější signalizační systémy mezi CPU a moderními koprocesory.
GPU
GPU neboli Graphics Processing Unit je pravděpodobně nejznámější formou koprocesoru. Jsou navrženy tak, aby byly optimalizovány pro vysoce paralelizovatelné vykreslování grafiky. Procesory mohou tento úkol provádět softwarově nebo pomocí integrovaného grafického čipu. Aby však nabídly vysoký výkon moderních GPU, musely by integrovat celou matrici GPU do matrice CPU.
To by výrazně zvýšilo náklady a složitost CPU a také výrazně zvýšilo produkci tepla. Integrované grafické čipy již zabírají značné množství místa v procesoru. Mohou snížit celkovou rychlost CPU kvůli jejich tepelnému výkonu.
Zvuková karta
Historicky mohly CPU zpracovávat zvukové signály, ale nebyly v tom fantastické. Výsledné zvukové artefakty a statika vedly k vytvoření zvukových karet. Ty by poskytovaly zvukové vstupní a výstupní porty a prováděly skutečné zpracování zvuku na samotné zvukové kartě. Tím se výrazně zvýšila izolace signálu a kvalita zvukového výstupu. Zatímco některé zvukové karty stále existují, v moderních počítačích jsou zcela zbytečné jako integrované zpracování zvuku přímo na základních deskách. CPU jsou mnohem lepší než v době rozkvětu zvukových karet.
NPU
Relativně nedávným typem koprocesoru je NPU nebo Neural Processing Unit. Ty jsou navrženy tak, aby vykonávaly nebo urychlovaly pracovní zátěže AI. NPU na vysoké úrovni jsou velmi podobné GPU, jen s optimalizacemi specifickými pro pracovní zátěže AI. S tím, jak se výkon pracovní zátěže AI stává více věcí, kterou normální uživatelé používají na chytrých telefonech a počítačích, budou pravděpodobně běžnější.
Integrované koprocesory
Moderní CPU integrují mnoho forem koprocesorů přímo do celkové CPU nebo architektury. To lze snadno vidět u integrovaných grafických čipů vyleptaných do stejného křemíku jako zbytek CPU. Skutečné zpracování však neprovádějí jádra CPU. V procesorech AMD Ryzen je také samostatná I/O matrice, která zajišťuje komunikaci mezi čiplety a zbytkem počítače. Některá moderní mobilní zařízení také přicházejí s NPU pro zpracování AI.
Závěr
Koprocesor je sekundární, terciární, kvartérní atd. procesor ve výpočetním zařízení, kde je CPU primárním procesorem. Počet koprocesorů v systému není nijak omezen. Svou roli však bude hrát softwarová/hardwarová podpora, odvod tepla, fyzický prostor a náklady.
Koprocesor zpracovává úlohy pro CPU, které zvyšují celkový výkon v konkrétní úloze tím, že ji provádí optimalizovaným způsobem způsobem a v jiných úkolech tím, že negujeme potřebu CPU plýtvat svým výpočetním výkonem při provádění úkolu v neoptimalizovaném móda. Postupem času se mnoho koprocesorů integruje do CPU, protože technologie postupuje. V některých scénářích to však limity výkonu a teploty omezují.