U srcu svakog računala pronaći ćete CPU. The Središnja procesorska jedinica kritičan je hardver. Pokreće operativni sustav i sve programe na vašem računalu. CPU su dizajnirani kao procesori opće namjene. Po svojoj prirodi, oni bi trebali biti u stanju podnijeti sve.
Međutim, CPU-i nisu baš dobri u nekim vrstama radnih opterećenja jer se njihov hardver opće namjene ne može optimizirati za određene zadatke bez gubitka svoje opće namjene. Ili postati beznadno velik, složen i skup. Dodatno, bilo koji CPU će biti sposoban rukovati samo tolikom količinom podataka i obrade odjednom. Koprocesor je druga procesorska jedinica eksplicitno dizajnirana da preuzme jedan ili oba ova scenarija.
Koprocesor je jednostavno druga procesorska jedinica unutar računala. U nekim scenarijima to može biti dvostruki fizički CPU na istoj matičnoj ploči kao na nekim poslužiteljima. U scenarijima računalstva visokih performansi i superračunala, ovi koprocesori opće namjene također se mogu pronaći na PCIe dodatnim karticama. Koprocesor je često usmjeren na specifičan zadatak, a ne na procesor opće namjene. Ovi procesori specifični za zadatak mogu se spojiti izravno na matičnu ploču ili uključiti na zasebnu kćerinsku ploču poput PCIe dodatne kartice.
Prvi koprocesori
Prvi koprocesori bili su relativno jednostavni. Dizajnirani su za rukovanje I/O ili Input i Output za mainframe računala. Problem je bio u tome što je I/O obrada bila vrlo dugotrajan zadatak za CPU. Međutim, stvarni zadatak obrade bio je relativno jednostavan. Dakle, bilo je dovoljno jeftino napraviti procesor koji bi to mogao podnijeti. Dok je koprocesor učinkovito preuzeo I/O, CPU je morao izdati jednostavne I/O parametre, osloboditi procesorsko vrijeme i povećati performanse sustava.
Izvorni IBM PC uključivao je dodatni aritmetički koprocesor s pomičnim zarezom. Tadašnji procesori izvodili su ovu vrstu matematike u softveru koji je bio spor, ali dovoljno funkcionalan za rijetke slučajeve koji su bili potrebni većini korisnika. Međutim, računalno potpomognuti dizajn ili CAD sustavi stalno su koristili ovu vrstu matematike. Odvajanjem aritmetike pomičnog zareza na koprocesor, ne samo da su brzine povećane kada je to bilo potrebno, hvala hardverskom ubrzanju, ali korisnici koji ga nisu trebali mogli su uštedjeti kupnjom sustava bez koprocesor.
U konačnici, ti jednostavni koprocesori imali su svoje funkcije integrirane u CPU arhitekturu. To je dijelom prirodan rezultat kontinuiranog razvoja CPU-a, ali je također povezano s poteškoćama u nastavku jednostavne sinkronizacije kako se takt CPU-a povećava. Dok su ovi CPU-i i koprocesori dovoljno dobro radili na 75MHz, došlo bi do ogromnog vremenskog kašnjenja, potrošnje energije i problema s radio-frekvencijskim smetnjama na današnjim GHz frekvencijama. Ovi problemi su zahtijevali složenije signalne sustave između CPU-a i modernih koprocesora.
GPU
GPU ili grafička procesorska jedinica vjerojatno je najpoznatiji oblik koprocesora. Dizajnirani su da budu optimizirani za visoko paralelizirajuće radno opterećenje prikazivanja grafike. CPU-i mogu izvršiti ovaj zadatak u softveru ili s integriranim grafičkim čipom. Kako bi ponudili visoke performanse modernih GPU-a, morali bi integrirati cijeli GPU u CPU.
To bi znatno povećalo cijenu i složenost CPU-a i značajno povećalo proizvodnju topline. Integrirani grafički čipovi već zauzimaju priličnu količinu CPU prostora. Oni mogu smanjiti ukupnu brzinu CPU-a zbog svoje topline.
Zvučna kartica
Povijesno gledano, procesori su mogli obraditi audio signale, ali nisu bili fantastični u tome. Rezultirajući audio artefakti i statika doveli su do stvaranja zvučnih kartica. Oni bi osigurali audio ulazne i izlazne priključke i izvršili stvarnu audio obradu na samoj zvučnoj kartici. To je značajno povećalo izolaciju signala i kvalitetu zvuka. Iako su neke zvučne kartice još uvijek prisutne, one su potpuno nepotrebne u modernim računalima kao integrirana obrada zvuka izravno na matičnim pločama. CPU-i su puno bolji nego u doba vrhunca zvučnih kartica.
NPU
Relativno novija vrsta koprocesora je NPU ili jedinica za neuronsku obradu. Oni su dizajnirani za izvođenje ili ubrzavanje AI radnih opterećenja. NPU-ovi na visokoj razini prilično su slični GPU-ovima, samo s optimizacijama specifičnim za AI radna opterećenja. Kako performanse AI radnog opterećenja postaju sve više stvar koju normalni korisnici koriste na pametnim telefonima i računalima, to će vjerojatno postati sve češće.
Integrirani koprocesori
Moderni CPU integriraju mnoge oblike koprocesora izravno u cjelokupnu CPU matricu ili arhitekturu. To se lako može vidjeti s integriranim grafičkim čipovima urezanim u isti silicij kao i ostatak CPU-a. Međutim, stvarnu obradu ne izvode CPU jezgre. U AMD-ovim Ryzen CPU-ima postoji i zasebna I/O matrica koja upravlja komunikacijom između čipleta i ostatka računala. Neki moderni mobilni uređaji također dolaze s NPU-ovima za AI obradu.
Zaključak
Koprocesor je sekundarni, tercijarni, kvaternarni, itd. procesor u računalnim uređajima gdje je CPU primarni procesor. Broj koprocesora u sustavu nije ograničen. Međutim, softverska/hardverska podrška, rasipanje topline, fizički prostor i cijena igrat će važnu ulogu.
Koprocesor upravlja zadacima za CPU koji povećavaju ukupnu izvedbu u oba specifičnog zadatka izvodeći ga u optimiziranom mode, i u drugim zadacima, negirajući potrebu da CPU troši svoju procesorsku snagu obavljajući zadatak u neoptimiziranom moda. S vremenom se mnogi koprocesori integriraju u CPU kako tehnologija napreduje. Međutim, ograničenja snage i topline to ograničavaju u nekim scenarijima.