Reduced instruction set computer

Reduced instruction set computer (RISC) er en type mikroprosessor som i motsetning til CISC-prosessorer kan utføre relativt få instruksjoner. Til gjengjeld tar hver instruksjon kort tid å utføre.
Komplekse beregninger krever gjerne at flere instruksjoner kjøres etter hverandre på en RISC-prosessor, mens en CISC-prosessor kunne gjort en tilsvarende beregning i ett trinn.
Eksempler på RISC-prosessorfamilier er ARM, AVR, PowerPC og SPARC.

Egenskaper

Da de tre første RISC-prosessorene ble lansert fra 1980 til 1983, var de konstruert etter andre prinsipper enn datidens CISC-prosessorer.
Senere CISC-arkitekturer adopterte deler av RISC-filosofien, ikke minst bruken av pipelining. Innenfor x86-arkitekturen er NexGen Nx586, AMD K5, Pentium Pro, og også senere prosessorer, i realiteten RISC-prosessorer som emulerer CISC instruksjoner. Slike hybrider er noen ganger også blitt omtalt som «CRISC».
Av praktiske årsaker er det derfor enklest å forklare RISC-filosofien ved å sammenligne den med rene CISC-arkitekturer.

Intet mikroprogram

Et kjennetegn ved RISC-arkitekturen er fraværet av «mikroprogrammet». Et mikroprogram er en kommandotolk som oversetter mikroprosessorens programmer (mikrokode) til kjørbar kode under kjøring. Dette er nødvendigvis tregere enn å utføre et program direkte, som på forhånd er oversatt til kjørbar kode.
Det første «mikroprogrammet» så dagens lys den 7. april 1964, da IBM lanserte stormaskinen IBM System/360. Denne arkitekturen introduserte et komplekst sett med instruksjoner, som etterhvert fikk navnet «maskinkode». Tolken var lagret i datamaskinens ROM (leseminne) og kunne ikke modifiseres.
I løpet av noen få år formelig eksploderte mikrokoden i kompleksitet. Endog minidatamaskiner som benyttet mikroprosessoren VAX, hadde mer enn 200 instruksjoner og 10-15 forskjellige adresseringsmodi som ble oversatt under kjøring.
Utviklingen ble påskyndet av høynivåspråk, som gjorde det enklere å skrive programmer enn i tradisjonell assembler. Høynivåspråk innførte bl.a. en syntaks med ord som if, while og case. Slike ord manglet direkte paralleller i assembler, og ble oversatt av kompilatorer til komplekse sammensetninger av assembler-syntaks som JUMP, ADD og MOVE. For å forenkle skrivingen av kompilatorer, ble mikrokoden utvidet med stadig nye instruksjoner.
Stadig flere oppgaver ble påført kommandotolken: Nye adresseringsmodi for å håndtere tabeller, komplekse datastrukturer og håndteringen av prosedyre-kall, deriblant overføring av parametre, lagring av registrenes innhold og endringer av stakkens innhold, ble utført av tolken. Etterhvert var tolkens kompleksitet blitt en flaskehals for mikroprosessorenes ytelse.
Gjennombruddet som gjorde RISC-prosessorer mulige, var fremveksten av optimaliserte kompilatorer. Istedenfor å oversette mikrokode under kjøring ved hjelp av en kommandotolk, ble den oversatt direkte av kompilatorene. Ved å eliminere behovet for den mellomliggende tolken, kunne også ytelsen kraftig forbedres.

Én instruksjon per klokkepuls

I CISC-prosesser utføres ulike instruksjoner med ulike antall klokkepulser. En filosofi bak RISC er å utføre én instruksjon per klokkepuls, slik at f.eks. måle-enheten MIPS er identisk med prosessorens klokkehastighet i MHz.

Instruksjoner med fastsatt størrelse

For å gjennomføre pipelining er det nødvendig at hver instruksjon har samme størrelse i bytes. Intel 80386 utførte f.eks. også pipelining, men i et begrenset omfang, fordi instruksjoner kunne variere i størrelse fra mellom 1 og 17 bytes.

Generelle registre

I CISC-arkitekturer er mikroprosessorens interne registrene reserverte til spesielle formål. RISC innførte prinsippet om generelle interne registre, for å redusere trafikken mellom mikroprosessoren og hovedminnet til et minimum.

De første RISC-prosessorne

Den første moderne RISC-maskinen var minidatamaskinen IBM 801. Den ble bygd i 1975, men ingen offentlig informasjon om dens eksistens ble tilgjengelig før i 1982.
IBM 810 ble etterfulgt av RISC-prosessoren ROMP, som dannet basis for IBM 6150 RT frem til mai 1991. Da ble den erstattet av PowerPC.
Arbeidet med en annen RISC-prosessor startet i 1980 hos en gruppe ved Berkeley, University of California, under navnet RISC I, som etter kort tid ble etterfulgt av RISC II. RISC I og RISC II var inspirasjonskilden til SPARC.
I 1981 utviklet og fabrikkerte John Hennessy ved Stanford University en tredje RISC-arkitektur, som han kalte MIPS. Brikken førte senere til dannelsen av MIPS Computer Systems, og mikroprosessorfamilien MIPS.