Hvad er en coprocessor?

click fraud protection

I hjertet af enhver computer finder du CPU. Det Centralenhed er kritisk hardware. Det kører operativsystemet og alle programmerne på din computer. CPU'er er designet som processorer til generelle formål. I sagens natur formodes de at kunne klare alt.

CPU'er er dog ikke særlig gode til nogle typer arbejdsbelastninger, fordi deres generelle hardware ikke kan optimeres til specifikke opgaver uden at miste sin generelle karakter. Eller bliver håbløst store, komplekse og dyre. Derudover vil enhver CPU kun være i stand til at håndtere så meget data og behandling på én gang. En coprocessor er en anden behandlingsenhed, der eksplicit er designet til at tage et eller begge af disse scenarier.

En coprocessor er simpelthen en anden behandlingsenhed i en computer. I nogle scenarier kan disse være en dobbelt fysisk CPU på det samme bundkort som på nogle servere. I High-Performance Computing og supercomputing scenarier kan disse generelle coprocessorer også findes på PCIe-tilføjelseskort. Coprocessoren er ofte fokuseret på en specifik opgave frem for en generel processor. Disse opgavespecifikke processorer kan tilsluttes direkte til bundkortet eller inkluderes på et separat datterkort som et PCIe-tilføjelseskort.

De første coprocessorer

De første coprocessorer var relativt simple. De er designet til at håndtere I/O eller Input og Output til mainframe-computere. Problemet var, at I/O-behandling var en meget tidskrævende opgave for CPU'en. Selve behandlingsopgaven var dog forholdsvis enkel. Så det var billigt nok at lave en processor til at klare det. Mens coprocessoren tog I/O'en effektivt, måtte CPU'en udstede simple I/O-parametre, frigivet processortid og øget systemets ydeevne.

Den originale IBM PC inkluderede en valgfri aritmetisk coprocessor med flydende komma. Datidens CPU'er udførte denne type matematik i software, som var langsom, men funktionel nok til de sjældne tilfælde, det var nødvendigt for de fleste brugere. Computer-Aided Design, eller CAD-systemer, brugte dog denne type matematik konstant. Ved at adskille flydende komma-aritmetikken på en coprocessor blev hastighederne ikke kun øget, når det var nødvendigt, tak til hardwareacceleration, men brugere, der ikke havde brug for det, kunne spare penge ved at købe et system uden coprocessor.

I sidste ende havde disse simple coprocessorer deres funktioner integreret i CPU-arkitekturen. Dette er til dels et naturligt resultat af kontinuerlig CPU-udvikling, men er også relateret til vanskeligheder med at fortsætte den simple synkronisering, efterhånden som CPU-clockhastigheder stiger. Mens disse CPU'er og coprocessorer kørte godt nok ved 75MHz, ville der være en massiv tidsforsinkelse, strømforbrug og radiofrekvensinterferensproblemer ved dagens GHz-frekvenser. Disse problemer nødvendiggjorde mere komplekse signalsystemer mellem CPU'er og moderne coprocessorer.

GPU

GPU'en eller Graphics Processing Unit er sandsynligvis den mest kendte form for coprocessor. De er designet til at være optimeret til den meget paralleliserbare arbejdsbyrde ved grafikgengivelse. CPU'er kan udføre denne opgave i software eller med en integreret grafikchip. For at tilbyde den høje ydeevne af moderne GPU'er skal de dog integrere hele GPU-matricen i CPU-matricen.

Dette ville massivt øge omkostningerne og kompleksiteten af ​​en CPU og betydeligt øge varmeproduktionen også. Integrerede grafikchips fylder allerede en del CPU-matriceplads. De kan reducere CPU'ens overordnede hastighed på grund af deres varmeeffekt.

Lyd kort

Historisk set kunne CPU'er behandle lydsignaler, men var ikke fantastiske til det. De resulterende lydartefakter og statisk førte til oprettelsen af ​​lydkort. Disse ville give lyd input og output porte og udføre den faktiske lydbehandling på selve lydkortet. Dette øgede signalisolationen og kvaliteten af ​​lydudgangen markant. Mens nogle lydkort stadig findes, er de helt unødvendige i moderne computere som integreret lydbehandling direkte på bundkort. CPU'er er meget bedre end i lydkortenes storhedstid.

NPU

En relativt ny type coprocessor er NPU eller Neural Processing Unit. Disse er designet til at udføre eller accelerere AI-arbejdsbelastninger. NPU'er på et højt niveau minder ret meget om GPU'er, blot med optimeringer, der er specifikke for AI-arbejdsbelastninger. Efterhånden som AI-arbejdsbelastningsydelsen bliver mere en ting, som normale brugere bruger på smartphones og computere, vil disse sandsynligvis blive mere almindelige.

Integrerede coprocessorer

Moderne CPU'er integrerer mange former for coprocessor direkte i den overordnede CPU-matrice eller arkitektur. Dette kan let ses med integrerede grafikchips ætset ind i det samme silicium som resten af ​​CPU'en. Den faktiske behandling udføres dog ikke af CPU-kernerne. I AMDs Ryzen CPU'er er der også en separat I/O-matrice, der håndterer kommunikationen mellem chiplets og resten af ​​computeren. Nogle moderne mobile enheder kommer også med NPU'er til AI-behandling.

Konklusion

En coprocessor er en sekundær, tertiær, kvaternær osv. processor i en computerenhed, hvor CPU'en er den primære processor. Der er ingen grænse for antallet af coprocessorer i et system. Software/hardware-support, varmeafledning, fysisk plads og omkostninger vil dog alle spille en rolle.

En coprocessor håndterer opgaver for CPU'en, der øger den samlede ydeevne i både den specifikke opgave ved at udføre den på en optimeret mode og i andre opgaver ved at afvise behovet for, at CPU'en spilder sin processorkraft på at udføre opgaven på en uoptimeret måde mode. Med tiden bliver mange coprocessorer integreret i CPU'er, efterhånden som teknologien udvikler sig. Imidlertid begrænser strøm- og termiske grænser dette i nogle scenarier.