V središču vsakega računalnika boste našli procesor. The Centralna procesna enota je kritična strojna oprema. Poganja operacijski sistem in vse programe v vašem računalniku. CPE so zasnovani kot procesorji za splošne namene. Po svoji naravi naj bi bili sposobni obvladati vse.
Vendar procesorji niso zelo dobri pri nekaterih vrstah delovnih obremenitev, ker njihove splošne namenske strojne opreme ni mogoče optimizirati za določene naloge, ne da bi pri tem izgubili splošno uporabnost. Ali pa postanejo brezupno velike, zapletene in drage. Poleg tega bo kateri koli CPE sposoben obdelati le toliko podatkov in obdelavo naenkrat. Koprocesor je druga procesna enota, ki je izrecno zasnovana za enega ali oba od teh scenarijev.
Koprocesor je preprosto druga procesna enota v računalniku. V nekaterih scenarijih je to lahko dvojni fizični procesor na isti matični plošči kot v nekaterih strežnikih. V scenarijih visokozmogljivega računalništva in superračunalništva je te koprocesorje za splošne namene mogoče najti tudi na karticah dodatkov PCIe. Koprocesor je pogosto osredotočen na specifično nalogo in ne na procesor splošnega namena. Te procesorje, specifične za naloge, je mogoče priključiti neposredno na matično ploščo ali vključiti na ločeno hčerinsko ploščo, kot je kartica dodatka PCIe.
Prvi koprocesorji
Prvi koprocesorji so bili razmeroma enostavni. Zasnovani so bili za upravljanje V/I ali Vhoda in Izhoda za velike računalnike. Težava je bila v tem, da je bila obdelava V/I za CPE zelo zamudna naloga. Dejanska naloga obdelave pa je bila relativno preprosta. Tako je bilo dovolj poceni, da bi izdelali procesor, ki bi ga obvladal. Medtem ko je koprocesor učinkovito prevzel V/I, je moral CPE izdati preproste V/I parametre, sprostiti procesorski čas in povečati zmogljivost sistema.
Prvotni IBM PC je vključeval izbirni aritmetični koprocesor s plavajočo vejico. Tedanji procesorji so to vrsto matematike izvajali v programski opremi, ki je bila počasna, a dovolj funkcionalna za redke primere, ki jih je potrebovala večina uporabnikov. Vendar so računalniško podprto načrtovanje ali sistemi CAD stalno uporabljali to vrsto matematike. Z ločevanjem aritmetike s plavajočo vejico na koprocesor se hitrost ne poveča le, ko je bilo potrebno, hvala strojnemu pospeševanju, vendar so lahko uporabniki, ki tega niso potrebovali, prihranili z nakupom sistema brez koprocesor.
Končno so imeli ti preprosti koprocesorji svoje funkcije integrirane v arhitekturo CPE. To je deloma naraven rezultat nenehnega razvoja procesorja, vendar je povezano tudi s težavami pri nadaljevanju preproste sinhronizacije, ko se takt procesorja poveča. Medtem ko so ti procesorji in koprocesorji delovali dovolj dobro pri 75MHz, bi pri današnjih frekvencah GHz prišlo do ogromnih časovnih zakasnitev, porabe energije in radiofrekvenčnih motenj. Ta vprašanja so zahtevala bolj zapletene signalne sisteme med CPE in sodobnimi koprocesorji.
GPU
GPU ali grafična procesna enota je verjetno najbolj znana oblika koprocesorja. Zasnovani so tako, da so optimizirani za visoko vzporedno delovno obremenitev upodabljanja grafike. CPE lahko to nalogo izvajajo v programski opremi ali z integriranim grafičnim čipom. Da bi ponudili visoko zmogljivost sodobnih grafičnih procesorjev, bi morali integrirati celotno matrico GPE v matrico CPE.
To bi močno povečalo stroške in zapletenost CPE ter znatno povečalo tudi proizvodnjo toplote. Integrirani grafični čipi že zavzemajo precej prostora na procesorju. Zaradi svoje toplotne moči lahko zmanjšajo skupno hitrost procesorja.
zvočna kartica
V zgodovini so procesorji lahko obdelovali zvočne signale, vendar pri tem niso bili fantastični. Nastali zvočni artefakti in statika so pripeljali do izdelave zvočnih kartic. Ti bi zagotovili zvočna vhodna in izhodna vrata ter izvedli dejansko obdelavo zvoka na sami zvočni kartici. To je znatno povečalo izolacijo signala in kakovost izhodnega zvoka. Čeprav so nekatere zvočne kartice še vedno prisotne, so v sodobnih računalnikih popolnoma nepotrebne kot integrirana obdelava zvoka neposredno na matičnih ploščah. CPU-ji so veliko boljši kot v času razcveta zvočnih kartic.
NPU
Relativno nov tip koprocesorja je NPU ali nevronska procesna enota. Ti so zasnovani za izvajanje ali pospeševanje delovnih obremenitev AI. NPU-ji na visoki ravni so precej podobni GPE-jem, le z optimizacijami, značilnimi za delovne obremenitve AI. Ko bo zmogljivost delovne obremenitve umetne inteligence postala stvar, ki jo običajni uporabniki uporabljajo na pametnih telefonih in računalnikih, bodo te verjetno postale pogostejše.
Integrirani koprocesorji
Sodobni procesorji integrirajo številne oblike koprocesorja neposredno v celotno matrico ali arhitekturo procesorja. To je mogoče zlahka opaziti z integriranimi grafičnimi čipi, ki so vgravirani v isti silicij kot ostali CPE. Vendar dejanske obdelave ne izvajajo jedra CPU. V AMD-jevih procesorjih Ryzen obstaja tudi ločena V/I matrica, ki skrbi za komunikacijo med čipleti in ostalim računalnikom. Nekatere sodobne mobilne naprave imajo tudi NPU za obdelavo z umetno inteligenco.
Zaključek
Koprocesor je sekundarni, terciarni, kvartarni itd. procesor v računalniški napravi, kjer je CPE primarni procesor. Število koprocesorjev v sistemu ni omejeno. Vendar bodo podpora programske/strojne opreme, odvajanje toplote, fizični prostor in stroški igrali pomembno vlogo.
Koprocesor obravnava naloge za CPE, ki povečajo splošno zmogljivost tako pri specifični nalogi, tako da jo izvajajo v optimiziranem mode in pri drugih nalogah, tako da zanikajo potrebo, da CPE zapravlja svojo procesorsko moč pri izvajanju naloge v neoptimiziranem moda. Sčasoma se številni koprocesorji integrirajo v CPE z napredkom tehnologije. Vendar pa omejitve moči in toplote v nekaterih scenarijih to omejujejo.