Koprosessor

I denne artikkelen skal vi ta opp temaet Koprosessor på en fullstendig og detaljert måte, med sikte på å gi leseren en dyp og oppdatert visjon om dette emnet. Fra dens opprinnelse til dens utvikling i dag, gjennom dens hovedegenskaper, bruksområder og mulige påvirkninger på forskjellige områder. Koprosessor er et tema med stor relevans i dag, som ikke bare vekker interesse hos eksperter og spesialister, men også hos en allmenn kunnskapsivrig offentlighet. Derfor vil vi i de følgende linjene fordype oss i de forskjellige aspektene for å tilby et berikende og kontekstualisert perspektiv på Koprosessor.

En koprosessor er en hjelpe-prosessor i en datamaskin. Den brukes for å supplere funksjonene til den primære prosessoren (CPUen).[1] Operasjoner gjort av koprosessoren kan være flyttallsberegninger, aritmetikk, grafikk, signalprosessering, strengprosessering eller kryptering. Ved å avlaste CPUen for krevende oppgaver, kan koprosessoren øke systemets ytelse. Koprosessorer gjør det mulig å tilpasse datamaskiner slik at kunder som ikke behøver den ekstra ytelsen, slipper å betale for den.

Koprosessorer ble først sett i stormaskiner hvor de ga ytterligere valgfri funksjonalitet som støtte for flyttallsberegninger. Et mer vanlig bruksområde var å styre I/O-kanaler, skjønt i denne rollen ble de oftest omtalt som kanalkontrollere.

Nyere koprosessorer brukes dersom man har mye data som kan regnes ut i parallell, slik at 100 tråder kan prosesseres samtidig.[2] Noen telefoner har egne koprosessorer for sensor-data, og noen grafikkort har både grafikkprosessor og fysikkprosessor (f.eks. PhysX) som gjør at både grafikk og fysikk kan regnes ut i hardware og ikke i software.

Overblikk

En koprosessor trenger ikke å være en flerbruksprosessor i seg selv. Noen koprosessorer kan ikke hente instruksjoner fra minne, kjøre instruksjoner for programflytkontroll, utføre I/O-operasjoner, håndtere minne, osv. Disse koprosessorene trenger hovedprosessoren til å hente instruksjoner til seg og til å håndtere alle andre operasjoner utover koprosessorens funksjoner. I noen arkitekturer er koprosessoren en mer allmenn prosessor, men utfører bare et begrenset utvalg av funksjoner under tett oppfølging fra en styringsprosessor. Merk forskjellen fra begrepet multiprosessor, som refererer til en datamaskin med mer enn én flerbruks-CPU.

Historie

Koprosessorer for flyttallsaritmetikk ble vanlig i PCer i hele 1980- og de tidlige 1990-årene.[3] Tidlige 8-bit og 16-bit-prosessorer brukte programvare for å utføre flyttallsaritmetikk. Når en «matteprosessor» i maskinvare var støttet av datamaskinens program- og maskinvare, kunne flyttallsberegninger utføres mange ganger fortere. Matematiske koprosessorer var populære blant brukere av dataassistert konstruksjon (DAK/CAD)-programmer og vitenskapelige og konstruksjonsrelaterte beregninger.

Intel 80386 CPU og en tilhørende 80387-matematikkprosessor

An annen type koprosessor som ble vanlig i denne tiden, var enkle grafiske prosessorer som de som ble brukt i Ataris 8-bit-familie, Texas Instruments' TI-99/4A og MSX hjemmedatamaskiner. Disse ble kalt «Video Display Controller». Grafikkprosessoren i Amiga-serien var kjent som «Copper».

Etter hvert som mikroprosessorene ble utviklet, sank kostnadene ved å integrere flyttallsaritmetikkfunksjoner i prosessoren. Høye prosessorhastigheter vanskeliggjorde også en tett integrasjon mot en koprosessor. Matteprosessore er nå ikke vanlig i PC-er, mest fordi 32- og 64-bits CPUer kan gjøre flyttalssoperasjoner i hardware. Etterspørselen for en dedikert grafikk-koprosessor har på den annen side økt, spesielt på grunn av en økende etterspørsel etter realistisk 3D-grafikk i videospill.

Referanser