In het hart van elke computer vindt u de processor. De Centrale verwerkingseenheid is kritieke hardware. Het voert het besturingssysteem en alle programma's op uw computer uit. CPU's zijn ontworpen als processors voor algemene doeleinden. Door hun aard worden ze verondersteld alles aan te kunnen.
CPU's zijn echter niet erg goed in sommige soorten workloads omdat hun algemene hardware niet kan worden geoptimaliseerd voor specifieke taken zonder het algemene karakter te verliezen. Of hopeloos groot, complex en duur worden. Bovendien kan elke CPU slechts zoveel gegevens en verwerking tegelijk verwerken. Een coprocessor is een tweede verwerkingseenheid die expliciet is ontworpen om een of beide scenario's te verwerken.
Een coprocessor is gewoon een tweede verwerkingseenheid in een computer. In sommige scenario's kunnen dit een dubbele fysieke CPU zijn op hetzelfde moederbord als bij sommige servers. In High-Performance Computing- en supercomputingscenario's zijn deze coprocessors voor algemeen gebruik ook te vinden op PCIe-invoegkaarten. De coprocessor is vaak gericht op een specifieke taak in plaats van op een processor voor algemene doeleinden. Deze taakspecifieke processors kunnen rechtstreeks op het moederbord worden aangesloten of op een apart dochterbord worden geplaatst, zoals een PCIe-uitbreidingskaart.
De eerste coprocessors
De eerste coprocessors waren relatief eenvoudig. Ze zijn ontworpen om de I/O of Input en Output voor mainframecomputers te verwerken. Het probleem was dat I/O-verwerking een zeer tijdrovende taak was voor de CPU. De eigenlijke verwerkingstaak was echter relatief eenvoudig. Dus het was goedkoop genoeg om een processor te maken om het aan te kunnen. Terwijl de coprocessor de I/O efficiënt verwerkte, moest de CPU eenvoudige I/O-parameters afgeven, processortijd vrijmaken en de systeemprestaties verbeteren.
De originele IBM PC bevatte een optionele rekenkundige coprocessor met drijvende komma. CPU's van die tijd voerden dit soort wiskunde uit in software, die traag maar functioneel genoeg was voor de zeldzame gevallen die de meeste gebruikers nodig hadden. Computer-Aided Design of CAD-systemen gebruikten dit soort wiskunde echter constant. Door de drijvende-kommaberekening op een coprocessor te scheiden, werden niet alleen de snelheden verhoogd wanneer dat nodig was, bedankt hardwareversnelling, maar gebruikers die het niet nodig hadden, konden geld besparen door een systeem te kopen zonder de coprocessor.
Uiteindelijk hadden deze eenvoudige coprocessors hun functies geïntegreerd in de CPU-architectuur. Dit is deels een natuurlijk gevolg van continue CPU-ontwikkeling, maar houdt ook verband met problemen bij het voortzetten van de eenvoudige synchronisatie naarmate de CPU-kloksnelheden toenemen. Hoewel deze CPU's en coprocessors goed genoeg werkten op 75 MHz, zou er een enorme tijdsvertraging, stroomverbruik en radiofrequentie-interferentieproblemen zijn op de GHz-frequenties van vandaag. Deze problemen vereisten complexere signaleringssystemen tussen CPU's en moderne coprocessors.
GPU
De GPU of Graphics Processing Unit is waarschijnlijk de bekendste vorm van de coprocessor. Ze zijn ontworpen om te worden geoptimaliseerd voor de zeer parallelliseerbare werklast van grafische weergave. CPU's kunnen deze taak in software of met een geïntegreerde grafische chip uitvoeren. Om de hoge prestaties van moderne GPU's te bieden, moeten ze echter de hele GPU-chip in de CPU-chip integreren.
Dit zou de kosten en complexiteit van een CPU enorm verhogen en ook de warmteproductie aanzienlijk verhogen. Geïntegreerde grafische chips nemen al behoorlijk wat CPU-matrijsruimte in beslag. Ze kunnen de algehele snelheid van de CPU verlagen vanwege hun warmteafgifte.
Geluidskaart
Historisch gezien konden CPU's audiosignalen verwerken, maar waren er niet fantastisch in. De resulterende audio-artefacten en statische elektriciteit leidden tot de creatie van geluidskaarten. Deze zouden audio-invoer- en uitvoerpoorten bieden en de daadwerkelijke audioverwerking op de geluidskaart zelf uitvoeren. Dit verhoogde de signaalisolatie en de kwaliteit van de geluidsuitvoer aanzienlijk. Hoewel sommige geluidskaarten nog steeds in de buurt zijn, zijn ze volledig overbodig in moderne computers als geïntegreerde geluidsverwerking direct op moederborden. CPU's zijn veel beter dan in de hoogtijdagen van geluidskaarten.
NPU
Een relatief recent type coprocessor is de NPU of Neural Processing Unit. Deze zijn ontworpen om AI-workloads uit te voeren of te versnellen. NPU's op een hoog niveau lijken veel op GPU's, alleen met optimalisaties die specifiek zijn voor AI-workloads. Naarmate AI-workloadprestaties meer een ding worden dat normale gebruikers op smartphones en computers gebruiken, zullen deze waarschijnlijk vaker voorkomen.
Geïntegreerde coprocessors
Moderne CPU's integreren vele vormen van coprocessor rechtstreeks in de algehele CPU-chip of -architectuur. Dit is gemakkelijk te zien met geïntegreerde grafische chips die in hetzelfde silicium zijn geëtst als de rest van de CPU. De daadwerkelijke verwerking wordt echter niet uitgevoerd door de CPU-kernen. In AMD's Ryzen-CPU's is er ook een aparte I/O-chip die de communicatie tussen chiplets en de rest van de computer afhandelt. Sommige moderne mobiele apparaten worden ook geleverd met NPU's voor AI-verwerking.
Conclusie
Een coprocessor is een secundaire, tertiaire, quaternaire, enz. Processor in een computerapparaat waarbij de CPU de primaire processor is. Er is geen limiet aan het aantal coprocessors in een systeem. Software/hardware-ondersteuning, warmteafvoer, fysieke ruimte en kosten zullen echter allemaal een rol spelen.
Een coprocessor verwerkt taken voor de CPU die de algehele prestaties in zowel de specifieke taak verbeteren door deze in een geoptimaliseerde mode, en bij andere taken, door te ontkennen dat de CPU zijn verwerkingskracht moet verspillen door de taak op een niet-geoptimaliseerde manier uit te voeren. mode. Na verloop van tijd worden veel coprocessors geïntegreerd in CPU's naarmate de technologie vordert. Stroom- en thermische limieten beperken dit echter in sommige scenario's.