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 rediger

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 rediger

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 rediger