Movatterモバイル変換


[0]ホーム

URL:


Hopp til innhold
Wikipedia
Søk

Reduced instruction set computer

Fra Wikipedia, den frie encyklopedi

Reduced instruction set computer (RISC) er en typemikroprosessor som i motsetning tilCISC-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 erARM,AVR,PowerPC ogSPARC.

Egenskaper

[rediger |rediger kilde]

Da de tre første RISC-prosessorene ble lansert fra1980 til1983, var de konstruert etter andre prinsipper enn datidens CISC-prosessorer.

Senere CISC-arkitekturer adopterte deler av RISC-filosofien, ikke minst bruken avpipelining. Innenforx86-arkitekturen erNexGen 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.

Flytt kompleksiteten fra maskinvaren til kompilatorene

[rediger |rediger kilde]

ForkortelsenRISC betyr «en datamaskin med et redusert instruksjons-sett»(Reduced Instruction Set Computing). Ironisk nok ble denne datamaskin-arkitekturen oppkalt etter noe som slett ikke var dens primære kjennetegn. Færre instruksjoner var bare en konsekvens av RISC-filosofien.

Grensen mellommaskinvare ogprogramvare er flytende, og mange oppgaver som utføres av fysiske gjenstander kan også utføres av programvare. Etmodem kan f.eks. både være en fysisk gjenstand og et dataprogram.

Enklere programvareCISCKompleks maskinvare
Kompleks programvareRISC Enklere maskinvare

I de førstehøynivåspråkene var det mye arbeid forbundet med å lage enkompilator som sørget for å oversette disse tilassembler og igjen tilmaskinkode.IBM benyttet f.eks. 18 år på å utvikle høynivåspråketFortran. Istedenfor å tilpasse høynivåspråkene etter datamaskinene, valgte derfor industrien å tilpasse datamaskinene etter høynivåspråkene.

Datamaskiner ble stadig mer komplekse (deriblant ved å tilføye stadig flere instruksjoner) for å forenkle realiseringen av høynivåspråk. Det vardenne utvidelsen av antall instruksjoner som skapte benevnelsene CISC og RISC.

Færre instruksjoner

[rediger |rediger kilde]
ÅrArkitekturAntall instruksjonerMikroprogrammetInstruksjones lengde
1973IBM 370/168
208
54 byte
2–6 byte
1978VAX 11/780
303
61 byte
2–57 byte
1978Xerox Dorado
270
17 byte
1–3 byte
1980IBM 801
120
0 byte
4 byte
1981Berkeley RISC I
31
0 byte
4 byte
1983Stanford MIPS
55
0 byte
4 byte

De tre øverste datamaskinene i tabellen over er CISC-arkitekturer, mens de tre nederste er RISC-prosessorene. Tabellen viser hvordan RISC-prosessorene har færre instruksjoner.

Intet mikroprogram

[rediger |rediger kilde]

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 den7. april1964, daIBM lansertestormaskinenIBM System/360. Denne arkitekturen introduserte et komplekst sett med instruksjoner, som etterhvert fikk navnet «maskinkode». Tolken var lagret i datamaskinensROM (leseminne) og kunne ikke modifiseres.

I løpet av noen få år formelig eksploderte mikrokoden i kompleksitet. Endogminidatamaskiner som benyttet mikroprosessorenVAX, hadde mer enn 200 instruksjoner og 10-15 forskjellige adresseringsmodi som ble oversatt under kjøring.

Utviklingen ble påskyndet avhøynivåspråk, som gjorde det enklere å skrive programmer enn i tradisjonellassembler. Høynivåspråk innførte bl.a. en syntaks med ord somif,while ogcase. Slike ord manglet direkte paralleller i assembler, og ble oversatt avkompilatorer 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 avstakkens innhold, ble utført av tolken. Etterhvert var tolkens kompleksitet blitt en flaskehals for mikroprosessorenes ytelse.

Gjennombruddet som gjorde RISC-prosessorer mulige, var fremveksten avoptimaliserte 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.

Kun to adresseringsmodi: «Hent» og «lagre»

[rediger |rediger kilde]

RISC-arkitekturer kommuniserer svært enkelt med datamaskinenshovedminne. Det benyttes bare to metoder – «hent» og «lagre», for å flytte data mellom mikroprosessoren og hovedminnet.

Imikroprosessoren SPARC ble dette implementert med følgende assembler-instruksjoner:

InstruksjonForklaring
LDSBHent byte (8 bit) med fortegn
LDSHHent halvt ord (16 bit) med fortegn
LDUBHent byte (8 bit) uten fortegn
LDUHHent halvt ord (16 bit) uten fortegn
LDHent ord (32 bit)
LDDHent dobbelt ord (64 bit)
 
InstruksjonForklaring
STBLagre byte (8 bit)
STHLagre halvt ord (16 bit)
STLagre ord (32 bit)
STDLagre dobbelt ord (64 bit)

I motsetning til dette hadde CISC-prosessorer – eksempelvisIntel 80386,Motorola 68000 ogNational Semiconductor 32000, svært komplekse metoder til å flytte data fra og til minnet. CISC-prosessorenes adresseringsmodi innbefattet direkte adressering, register-adressering, direkteoperand-adressering, indeksert adressering og indirekte adressering. I tillegg til indirekte adressering, hadde f.eks. Intel 80386 også indirekte registeradressering med avvik, indirekte adressering med base- og indeksregister, og indirekte adressering med base-, indeksregister og konstant.

Alle disse adresseringsmodiene var også blitt skapt for å gjøre det enklere å lage kompilatorer.

Én instruksjon per klokkepuls

[rediger |rediger kilde]

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-enhetenMIPS er identisk med prosessorens klokkehastighet iMHz.

Pipelining

[rediger |rediger kilde]

For å oppnå målsetningen om én utført instruksjon per klokkepuls, må flere instruksjoner bearbeides samtidig. I en fire-trinnspipe blir én instruksjon hentet frahurtigminnet, mens en annen blir dekodet, en tredje utført, mens resultatet av en fjerde skrevet til minnet:

Syklus1234567
Instruksjon 1HENTDEKODUTFØRSKRIV
Instruksjon 2HENTDEKODUTFØRSKRIV
Instruksjon 3HENTDEKODUTFØRSKRIV
Instruksjon 4HENTDEKODUTFØRSKRIV

Denne idéen ble etterhvert også tatt i bruk av CISC-prosessorer, og er derfor ikke lenger noe kjennetegn på RISC. I tillegg er det idag vanlig medpipelines der mer enn fire instruksjoner bearbeides samtidig. I denne sammenheng omtales prinsippet i sammenheng med RISC-filosofien.

Instruksjoner med fastsatt størrelse

[rediger |rediger kilde]

For å gjennomførepipelining 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

[rediger |rediger kilde]

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

[rediger |rediger kilde]

Den første moderne RISC-maskinen var minidatamaskinenIBM 801. Den ble bygd i1975, men ingen offentlig informasjon om dens eksistens ble tilgjengelig før i1982.[1]

IBM 810 ble etterfulgt av RISC-prosessorenROMP, som dannet basis forIBM 6150 RT frem til mai1991. Da ble den erstattet avPowerPC.

Arbeidet med en annen RISC-prosessor startet i1980 hos en gruppe vedBerkeley,University of California, under navnet RISC I, som etter kort tid ble etterfulgt av RISC II.[2][3] RISC I og RISC II var inspirasjonskilden tilSPARC.

I1981 utviklet og fabrikkerte John Hennessy vedStanford University en tredje RISC-arkitektur, som han kalte MIPS. Brikken førte senere til dannelsen avMIPS Computer Systems, og mikroprosessorfamilienMIPS.[4]

Referanser

[rediger |rediger kilde]
  1. ^David A. Patterson og Carlo H. Sequin:A VLSI RISC, IEEE Computer Magazine, IEEE Computer Society Press, Los Alamitos, California, USA, side 8-21, september1982, ISSN:0018-9162
  2. ^David. A. Patterson, Carlo. H. Sequin:RISC I: A Reduced Instruction Set VLSI Computer, Proc. 8th International Symposium on Computer Architecture, Association for Computing Machinery, side 443-457,1981, 2. utgave, International Symposium on Computer Architecture archive, 25 years of the international symposia on Computer architecture, side 216–230,1998,ISBN 1-58113-058-9
  3. ^David A. Patterson:Reduced Instruction Set Computers, Communications of the ACM archive, volume 28, issue 1, side 8-21, januar1985, ISSN 0001-0782
  4. ^John L. Hennessy:VLSI Processor Architeture, IEEE Transactions on Computers archive, volume C-33, Issue 12, side 1221-1246, desember1984, ISSN 0018-9340
Oppslagsverk/autoritetsdata
Hentet fra «https://no.wikipedia.org/w/index.php?title=Reduced_instruction_set_computer&oldid=25286487»
Kategorier:
Skjulte kategorier:

[8]ページ先頭

©2009-2026 Movatter.jp