V srdci každého počítača nájdete CPU. The Centrálna procesorová jednotka je kritický hardvér. Spúšťa operačný systém a všetky programy vo vašom počítači. CPU sú navrhnuté ako univerzálne procesory. Zo svojej podstaty by mali byť schopní zvládnuť všetko.
Procesory však nie sú veľmi dobré pri niektorých typoch pracovných zaťažení, pretože ich univerzálny hardvér nemožno optimalizovať pre konkrétne úlohy bez toho, aby stratili svoj všeobecný charakter. Alebo sa stanú beznádejne veľkými, zložitými a drahými. Navyše, každý CPU bude schopný spracovať len toľko údajov a spracovať naraz. Koprocesor je druhá jednotka spracovania explicitne navrhnutá tak, aby prijala jeden alebo oba tieto scenáre.
Koprocesor je jednoducho druhá procesorová jednotka v počítači. V niektorých scenároch to môže byť duálny fyzický CPU na rovnakej základnej doske ako na niektorých serveroch. V scenároch High-Performance Computing a superpočítačov možno tieto univerzálne koprocesory nájsť aj na prídavných kartách PCIe. Koprocesor sa často zameriava skôr na konkrétnu úlohu ako na univerzálny procesor. Tieto procesory špecifické pre danú úlohu môžu byť pripojené priamo k základnej doske alebo zahrnuté na samostatnej dcérskej doske, ako je prídavná karta PCIe.
Prvé koprocesory
Prvé koprocesory boli pomerne jednoduché. Boli navrhnuté tak, aby zvládli I/O alebo vstup a výstup pre sálové počítače. Problém bol v tom, že spracovanie I/O bolo pre CPU časovo veľmi náročnou úlohou. Skutočná úloha spracovania však bola pomerne jednoduchá. Takže bolo dosť lacné vyrobiť procesor, ktorý by to zvládol. Zatiaľ čo koprocesor preberal I/O efektívne, CPU musel vydávať jednoduché I/O parametre, uvoľnil čas procesora a zvýšil výkon systému.
Pôvodné IBM PC obsahovalo voliteľný aritmetický koprocesor s pohyblivou rádovou čiarkou. Vtedajšie procesory vykonávali tento typ matematiky v softvéri, ktorý bol pomalý, ale dostatočne funkčný pre zriedkavé prípady, ktoré väčšina používateľov potrebovala. Počítačovo podporovaný dizajn alebo systémy CAD však tento typ matematiky neustále používali. Oddelením aritmetiky s pohyblivou rádovou čiarkou na koprocesor sa nielenže zvýšili rýchlosti, keď to bolo potrebné, vďaka na hardvérovú akceleráciu, ale používatelia, ktorí to nepotrebovali, mohli ušetriť peniaze kúpou systému bez koprocesor.
V konečnom dôsledku mali tieto jednoduché koprocesory svoje funkcie integrované do architektúry CPU. Je to čiastočne prirodzený výsledok neustáleho vývoja CPU, ale súvisí to aj s ťažkosťami pri pokračovaní jednoduchej synchronizácie, keď sa rýchlosť hodín CPU zvyšuje. Zatiaľ čo tieto CPU a koprocesory bežali dostatočne dobre na frekvencii 75 MHz, na dnešných GHz frekvenciách by došlo k obrovskému časovému oneskoreniu, spotrebe energie a problémom s vysokofrekvenčným rušením. Tieto problémy si vyžiadali zložitejšie signalizačné systémy medzi CPU a modernými koprocesormi.
GPU
GPU alebo Graphics Processing Unit je pravdepodobne najznámejšou formou koprocesora. Sú navrhnuté tak, aby boli optimalizované pre vysoko paralelizovateľné pracovné zaťaženie grafického vykresľovania. Procesory môžu túto úlohu vykonávať softvérovo alebo pomocou integrovaného grafického čipu. Aby však ponúkli vysoký výkon moderných GPU, museli by integrovať celú matricu GPU do matrice CPU.
To by výrazne zvýšilo náklady a zložitosť CPU a výrazne zvýšilo aj produkciu tepla. Integrované grafické čipy už zaberajú značné množstvo miesta v procesore. Môžu znížiť celkovú rýchlosť CPU kvôli ich tepelnému výkonu.
Zvuková karta
Historicky procesory dokázali spracovať zvukové signály, ale neboli v tom fantastické. Výsledné zvukové artefakty a statika viedli k vytvoreniu zvukových kariet. Tie by poskytovali zvukové vstupné a výstupné porty a vykonávali skutočné spracovanie zvuku na samotnej zvukovej karte. Tým sa výrazne zvýšila izolácia signálu a kvalita zvukového výstupu. Zatiaľ čo niektoré zvukové karty sú stále k dispozícii, v moderných počítačoch sú úplne zbytočné ako integrované spracovanie zvuku priamo na základných doskách. CPU sú oveľa lepšie ako v časoch rozkvetu zvukových kariet.
NPU
Relatívne novším typom koprocesora je NPU alebo Neural Processing Unit. Sú navrhnuté tak, aby vykonávali alebo zrýchľovali pracovné zaťaženie AI. NPU na vysokej úrovni sú dosť podobné GPU, len s optimalizáciami špecifickými pre pracovné zaťaženie AI. Keďže výkon pracovného zaťaženia AI sa stáva viac vecou, ktorú bežní používatelia používajú na smartfónoch a počítačoch, pravdepodobne sa to stane bežnejším.
Integrované koprocesory
Moderné CPU integrujú mnoho foriem koprocesora priamo do celkovej procesorovej matrice alebo architektúry. To možno ľahko vidieť na integrovaných grafických čipoch vyleptaných do rovnakého kremíka ako zvyšok CPU. Skutočné spracovanie však nevykonávajú jadrá CPU. V procesoroch AMD Ryzen je tiež samostatná vstupno-výstupná matrica, ktorá zabezpečuje komunikáciu medzi čipletmi a zvyškom počítača. Niektoré moderné mobilné zariadenia sa dodávajú aj s NPU na spracovanie AI.
Záver
Koprocesor je sekundárny, terciárny, kvartérny atď. procesor vo výpočtovom zariadení, kde je CPU primárnym procesorom. Počet koprocesorov v systéme nie je obmedzený. Svoju úlohu však bude hrať softvérová/hardvérová podpora, odvod tepla, fyzický priestor a náklady.
Koprocesor spracováva úlohy pre CPU, ktoré zvyšujú celkový výkon v špecifickej úlohe tým, že ju vykonávajú optimalizovane spôsobom a pri iných úlohách tým, že sa vylúči potreba, aby CPU plytval svojím výpočtovým výkonom vykonávaním úlohy v neoptimalizovanom móda. Postupom času sa mnoho koprocesorov integruje do CPU s pokrokom v technológii. V niektorých scenároch to však limity výkonu a teploty obmedzujú.