ulike stegene utføres på egne hardware-enheter som ikke er instruksjon kan deles opp i sekvensielle steg som løses etterhverandre

Like dokumenter
! Repetisjon: ! Forutsetinger: ! Ideelt sett gir en k-trinns pipeline en faktor k i hastighetsøkning. ! Benyttes derimot ekte pipelining, behøves

Dagens temaer. tema er hentet fra kapittel 4.3 og 4.4 om pipelining. til neste ukes forelesning (hvis tid) INF ! Mikrokode. !

tema er hentet fra kapittel 4.3 og 4.4 om pipelining Mikroprogrammert Dagens temaer Hard-wired Mikrokode Hasarder Ytelse

Dagens tema. Dagens tema er hentet fra kapittel 4.3 og 4.4. Mer om pipelining Ytelse Hasarder. Pipelining i Pentium-arkitekturen

Dagens temaer. Dagens emner er hentet fra Englander kapittel 10 (side ) Mer om adresseringsmodi. RISC og CISC-prosessorer.

Dagens temaer. Mer om adresseringsmodi. Indeksert adressering med offset og auto-inkrement eller dekrement. Register-indirekte adressering

4/2 enkel pipelining in 147, våren 1997 pipelining 1. Pipelining. når tema læreboka. 11/3 problemer

Dagens temaer. Virtuell hukommelse. Sidetabell. Virtuell hukommelse (forts.)

Dagens temaer. Dagens temaer er hentet fra Englander kapittel 12 side (2. utgave), side (3. utgave)

Dagens temaer. Virtuell hukommelse (kapittel 9.9 i læreboken) Pentium-arkitekturen i mer detalj INF 1070

Oppsummering av digitalteknikkdelen

hvor mye hurtigminne (RAM) CPU en kan nyttiggjøre seg av. mens bit ene betraktet under ett kalles vanligvis et ord.

Dagens temaer. Fra kapittel 4 i Computer Organisation and Architecture. Kort om hurtigminne (RAM) Organisering av CPU: von Neuman-modellen

Dagems temaer INF ! Fra kapittel 4 i Computer Organisation and Architecture. ! Kort om hurtigminne (RAM)

Dagems temaer. kapittel 4 i Computer Organisation and Architecture. av CPU: von Neuman-modellen. Transfer Language (RTL) om hurtigminne (RAM)

Intel Core i7. Omid Mirmotahari 4

IN1020. Datamaskinarkitektur

! Sentrale begreper er adresserbarhet og adresserom. ! Adresserbarhet: Antall bit som prosessoren kan tak samtidig i én operasjon

Løsningsforslag til øving 5 TFE4105 Digitalteknikk og Datamaskiner Høsten 2006

Intel Core i7. Omid Mirmotahari 4

Pentium-prosessoren. Dagens temaer. Historisk oversikt over Intels prosessorfamilier. Noen fremtidige prosessorer fra Intel

INF2270. Datamaskin Arkitektur

Kapittel 6. Høynivå møter lavnivå Fra C til assembly Fra assembly til maskinkode Linking og lasting

Tema for denne forelesningen: tilpassing til pipeline. forwarding. eliminere NOP. faktisk MIPS. in 147, våren 1999 pipelining 1 9

INF2270. Datamaskin Arkitektur

Maskinvaredelen av INF 103: oversikt og innhold (1)

Forelesning Forgreningspredikering Kap 4.5 Superskalaritet Kap 4.5 Spekulativ utføring Kap 4.5

Oppsummering digital-teknikk, teknikk, INF2270

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

SIE 4005, 9/10 (4. Forelesn.)

Forelesning Optimalisering av μark Kap 4.4

Oppgave 2 Maskinkode (vekt 12%)

Dagens temaer. Dagens emner er hentet fra Englander kapittel 11 (side ) Repetisjon av viktige emner i CPU-design.

Dagens temaer. Architecture INF ! Dagens temaer hentes fra kapittel 3 i Computer Organisation and

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk

Forelesning Instruksjonstyper Kap 5.5

Cache (repetisjon) Cache (repetisjon) Cache (repetisjon) Dagens temaer. CPU Cache RAM. om cache-hukommelse (kapittel 6.5 i Computer Organisation

Dagens temaer. Cache (repetisjon) Cache (repetisjon) Cache (repetisjon)

bruksområder og oppbygging om cache-hukommelse (kapittel 6.5 i Computer Organisation Dagens temaer and Architecture ) ROM RAM

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Forelesning 5. Diverse komponenter/større system

Dagens temaer. Mer om cache-hukommelse (kapittel 6.5 i Computer Organisation and Architecture ) RAM ROM. Hukommelsesbusser

INF1400 Kap4rest Kombinatorisk Logikk

Overordnet maskinarkitektur. Maskinarkitektur zoomet inn. I CPU: Kontrollenheten (CU) IT1101 Informatikk basisfag, dobbeltime 11/9

Innhold. Oppgave 1 Oversettelse (vekt 15%)

Pensumoversikt - kodegenerering. Kap. 8 del 1 kodegenerering INF5110 v2006. Hvordan er instruksjonene i en virkelig CPU? Arne Maus, Ifi UiO

SIE 4005, 8/10 (3. Forelesn.)

Fortsetelse Microarchitecture level

Dagens temaer. Kort repetisjon. Mer om cache (1) Mer om cache (2) Read hit. Read miss. Write hit. Hurtig minne. Cache

UNIVERSITETET I OSLO

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

UNIVERSITETET I OSLO

Dagens temaer. Sekvensiell logikk: Kretser med minne. D-flipflop: Forbedring av RS-latch

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk

Institiutt for informatikk og e-læring, NTNU Kontrollenheten Geir Ove Rosvold 4. januar 2016 Opphavsrett: Forfatter og Stiftelsen TISIP

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

Kapittel 4: Microarchitecture level

UNIVERSITETET I OSLO

Kodegenerering, del 2: Resten av Kap. 8 pluss tilleggsnotat (fra kap. 9 i ASU ) INF5110 V2007

EKSAMENSOPPGAVE I FAG TDT4160 DATAMASKINER GRUNNKURS. D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.

Innhold. Introduksjon til parallelle datamaskiner. Ulike typer parallelle arkitekturer. Prinsipper for synkronisering av felles hukommelse

Seksjon 1. INF2270-V16 Forside. Eksamen INF2270. Dato 1. juni 2016 Tid Alle trykte og skrevne hjelpemidler, og en kalkulator, er tillatt.

Kap. 8 del 1 kodegenerering INF5110 Vår2007

En mengde andre typer som DVD, CD, FPGA, Flash, (E)PROM etc. (Kommer. Hukommelse finnes i mange varianter avhengig av hva de skal brukes til:

Dagens temaer. temaer hentes fra kapittel 3 i Computer Organisation. av sekvensielle kretser. and Architecture. Tilstandsdiagram.

Dagens tema: Enda mer MIPS maskinkode

Prosessoren. Bakgrunnen Innhold LMC. Assemblerkode Oppsummering instruksjonene [Englander kap 6] Hva inneholder den? Hvordan utføres instruksjonene?

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

4/5 store parallelle maskiner /4 felles hukommelse in 147, våren 1999 parallelle datamaskiner 1. når tema pensum.

Fakultet for informasjonsteknologi, Oppgave 1 Flervalgsspørsmål ( multiple choice ) 15 %

Dagens tema. Flere teknikker for å øke hastigheten

Dagens temaer. Dagens temaer hentes fra kapittel 3 i Computer Organisation and Architecture. Sekvensiell logikk. Flip-flop er

Dagens tema. LC-2 LC-2 er en «ekstrem-risc»; den har 16 instruksjoner og 3 adresseringsmåter.

Løsningsforslag eksamen TDT4160 høsten 2005

Fakultet for informasjonsteknologi, Oppgave 1 Flervalgsspørsmål ( multiple choice ) 15 %

TDT DESEMBER, 2008, 09:00 13:00

Forelesning Datatyper Kap 5.2 Instruksjonsformat Kap 5.3 Flyttall App B

Datamaskinens oppbygning

UNIVERSITETET I OSLO

Oppsummering Assemblerkode Hopp Multiplikasjon Kode og data Array Oppsummering

AVSLUTTENDE EKSAMEN I. TDT4160 Datamaskiner Grunnkurs. Torsdag 29. November 2007 Kl

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

! Ytelsen til I/O- systemer avhenger av flere faktorer: ! De to viktigste parametrene for ytelse til I/O er:

befinner seg. Deretter leses instruksjonen fra i registerfilen ved ny stigende klokkepuls.

Kap. 8 del 1 kodegenerering INF april, 2008

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP

NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse

Forelesning ISA-nivået Kap 5.1

Litt om Javas class-filer og byte-kode

TDT DESEMBER, 2014, 09:00 13:00. Norwegian University of Science and Technology Engineering The Department of Computer and Information Science

Dataveier og optimalisering. Kapittel 9

Forelesning Adresseringsmodi Kap 5.4

Oppgaver til kodegenerering etc. INF-5110, 16. mai, 2014

AVSLUTTENDE EKSAMEN I. TDT4160 Datamaskiner Grunnkurs Løsningsforslag. Torsdag 29. November 2007 Kl

TDT ITGK - Hardware. Kapittel 9: Følge Instruksjoner - Prinsipper for Datamaskinens Virkemåte. Terje Rydland - IDI/NTNU

Oppgave 1 Flervalgsspørsmål ( multiple choice ) 15 %

Dagens temaer. Intern hukommelse (1) Maskinvaredelen av INF 103: oversikt og innhold (2) Maskinvaredelen av INF 103: oversikt og innhold (1)

Dagens tema. Rask-maskinen. Rasko-kode Raskas-kode. Litt datamaskinhistorie Registre og lagre Instruksjoner

Dagens tema. Dagens temaer hentes fra kapittel 3 i læreboken. Repetisjon, design av digitale kretser. Kort om 2-komplements form

Transkript:

Dagens temaer Dagens er tema er hentet fra kapittel 4.3 og 4.4 om pipelining Ytelse Pipelining Hasarder i Pentim-arkitektren ikrokode Hard-wired ikroprogrammert RISC og CISC og lemper ordeler er om pipeling Repetisjon: Isteden for å vente til forrige instrksjon er ferdig eksekvert, setter man i gang neste instrksjon så fort som første steg av forrige instrksjon er ferdig. 2 Én instrksjon eksekveres ferdig per klokkesykel Ideelt ortsetinger: instrksjon kan deles opp i sekvensielle steg som løses etterhverandre like stegene tføres på egne hardware-er som ikke er avhengige av hverandre sett gir en k-trinns pipeline en faktor k i hastighetsøkning sammenlignet med en arkitektr ten pipelining praksis er dette ikke mlig grnnet latency og hasarder En De I Generell ytelse Tiden en prosessor Ct brker på å tføre n instrksjoner er gitt av Ct CPI * I * t, der CPI er gjennsomsnittlig antall klokkesykler per instrksjon, I er antall instrksjoner og t er klokkeperioden (lengden på en klokkesykel), dvs /f 3 Ytelsen P er definert som den inverse til Ct P Ct CPI * I * t f CPI 4 * I Latency Hvis en prosessor tfører n instrksjoner fllstendig sekvensielt på en k-trinns pipeline (ten å starte en ny instrksjon hver klokkesykel), trengs T s nkt Benyttes derimot ekte pipelining, behøves T p kt + ( n ) t der kt er tiden det tar for pipelinen å fylles opp med den første instrksjonen, og (n-)t tiden for å eksevere de n- resterende. orbedringen blir da en faktor S gitt av S T T s p kt + nkt nk ( n ) t k + n

Eksempel på pipelinet arkitektr (5-trinns): IPS 4000 0 5 Registerbank for lagring av mellomverdier (data og kontroll) I/ID ID/EX EX/E E/WB Add 4 Add Add reslt Shift left 2 Instrction PC Address Instrction memory register register 2 Registers Write register Write data data data 2 0 ALU Zero ALU reslt Address Write data Data memory data 0 6 32 Sign etend Utfordringer med pipelining () 6 Pipelining krever at alle stegene hver tar maks en klokkesykel tfordrende for instrksjoner med minneaksess : Velger klokkesykel lik den lengste instrksjoner vil brke mye lenger tid enn nødvendig 2: Klokkesykel med variable lengde komplisert! 3: Raskere minne bedrer ytelsen betraktelig 4: Bytte om rekkefølgen på instrksjoner atomatisk av kompilatoren Spesielt Lange or Cache Gjøres Utfordringer med pipelining (2) Tilfeller Hovedårsaken hvor man ikke kan starte en ny instrksjon hver klokkesykel 7 også for stalling til stalling er hasarder av like typer: Ressrshasarder Datahasarder Kontrollhasarder Kalles Ressrshasarder En Ressrshasard: 8 Vanligste Bytte datamaskin består av mange delte ressrser: ALU, Cache, registre er enn én instrksjon ønsker adgang til samme delte ressrs samtidig løsning på problemet er å brke ekstra hardware: ALU til adresseberegninger cache for instrksjoner og data instrksjonsregistre generelle registre om rekkefølgen på instrksjoner RA, Egen Separate lere ange

Problem: 9 Datahasarder Benytter en operand/resltat som beregnes av foregående instrksjon ADD R, R2, R6 AND R5, R6, R D E WB ADD R, R2, R6 D E WB AND R5, R6, R D E WB Her blir R oppdatert med riktig verdi AND-instrksjonen trenger riktig verdi av R her ID/EX EX/E E/WB Registers 0 ALU Løsning : orwarding: Data memory Legge til ekstra hardware slik at resltatet blir tilgjengelig bakover i pipelinen, dvs for instrksjoner som kommer etter a. No forwarding Vil ikke alltid fngere Registers ID/EX EX/E E/WB orwarda ALU Data memory Rs Rt Rt Rd orwardb orwarding nit EX/E.RegisterRd E/WB.RegisterRd b. With forwarding 2: Bytte om rekkefølgen på instrksjoner ADD R, R2, R6 AND R5, R6, R SUB R8, R3, R4 ADD R, R2, R6 SUB R8, R3, R4 AND R5, R6, R Gjøres av kompilatoren, men komplisert og én flytting kan skape nye avhengigheter ikke alltid fngere Er Vil 2 3: Sette inn tomme instrksjoner: NOP kan man stoppe prosessoren hvis problemet er Load ADD R, R2, R6 D E WB ADD R, R2, R6 NOP D E WB NOP NOP D E WB NOP D E WB AND R5, R6, R AND, R5, R6, R Vil Benyttes alltid fngere, men sløser bort prosessortid i kombinasjon med forwarding, og ombytte av instrksjoner Alternativt

Problem: Kontrollhasarder 3 å kjenne resltatet fra foregående instrksjon ved betingede hopp Potensielt bortkastede instrksjoner JNZ R4, Label D E WB JNZ R4, Label AND R5, R6, R D E WB AND R5, R6, R SUB R2, R3, #5... D E WB D E WB SUB R2, R3, #5 D E WB Label LD R4, R2 Klokkesykler Vet først her om programmet skal hoppe eller ikke! Betingede hopp kan redsere eksekveringshastigheten betydelig hvis man regner med at det aldri skal hoppes (dvs ikke gjør noe) antall klokkesykler per instrksjon er gitt av CPI * av + b * p b p p b er sannsynligheten for at en instrksjon er et betinget hopp p t er sannsynligheten for at man hopper ved betingede hopp b er straffen for å starte nødvendig eksekvering av instrksjoner Absoltte 4 hopp er ikke problem må detekteres ved compile-time og behandles deretter Gjennomsnittlig en t : Hopp-prediksjon å fortsi om en betinget-hopp instrksjon faktisk vil hoppe denne knnskapen til å starte eksekvering av korrekt instrksjonssekvens slik at flshing nngås prediksjon: Regner med at en bestemt type betingede hopp alltid/aldri fører til hopp, mao statisk oppførsel algoritme, men tar hensyn ikke til at programmer er dynamiske knne konsekvent fortsi feil ved f.eks while/for løkker prediskjon: Baserer seg på oppførelsen ved tidligere eksekvering av kodesekvensen noe mer hardware (må bla lagre tilstandsinfo) treff-prosent enn statisk prediksjon Prøver Benytter Statisk Dynamisk Enkel Vil Krever Bedre Tilstandsdiagram for dynamisk hopp-prediksjon å få bedre prediskjon benyttes 2-bits tilstand, dvs oppførselen må være lik for de 2 foregående gjennomløpene Hva skjedde? 6 T a k e n N o t t a k e n P r e d i c t t a k e n P r e d i c t t a k e n 5 Hva tror man vil skje? T a k e n T a k e n N o t t a k e n N o t t a k e n P r e d i c t n o t t a k e n P r e d i c t n o t t a k e n T a k e n N o t t a k e n or

7 2: Parallelleksekvering av hoppinstrksjoner å fortsi, starter prosessoren eksekvering av begge kodesekvenser i parallell til riktig hopp kan bestemmes D E WB JNZ R4, Label JNZ R4, Label AND R5, R6, R SUB R2, R3, #5... Label LD R4, R2 ADD R3, R6 ST (R3), #4 ST (R), #6 D E WB AND R5, R6, R D E WB LD R4, R2 D E D WB E D WB E D E WB ADD R3, R6 WB SUB R2, R3, #5 D E WB ST (R3), #4 Istedenfor 8 Sperskalare prosessorer 20 En vanlig pipelined prosessor er begrenset til å eksekvere ferdig en instrksjon per klokkesykel. Hastigheten kan økes ved å eksekvere flere instrksjoner i parallell: lere instrksjoner kan kjøres samtidig, Enkelte steg kjøres samtidig, men har f.eks sekvensielle ETCH-steg. Sperskalare prosessorer har flere HW-er som gjør heltalls og flyttallsaritmetikk, load/store osv i parallell Operasjoner som tar mye lenger tid enn andre sperrer ikke for andre instrksjoner. Sperskalare prosessorer er mer kompliserte og krever ekstra kontrolllogikk, flere registre etc. Pentim og G4 er sperskalare D E WB Instrksjon D E WB Instrksjon 2 Ikke-skalar pipelining 9 D E WB Instrksjon 3 D E WB Instrksjon 4 D E WB Instrksjon D E WB Instrksjon 2 Sperskalar pipelining D E WB Instrksjon 3 D E WB Instrksjon 4 Bss-interface Instrksjons Adresse Eksekverings Eksekverings Eksekverings Registre Parallelliteten gjør sperskalare prosessorer mye vanskeligere å designe

22 Blokkdiagram for Pentim III/4 Bss-interface 2 Nivå- data-cache 8 KB TLB U adresse oversettelse Nivå- instrksjons-cache 8 KB U adresse oversettelse TLB BTB Kontroll Pre-fetch bffere BPL ikrokode RO vpipe dekoding pipe dekoding lyttalls pipeline CPU-registre etch/decode, Decode/Eecte og Retire tgjør tilsammen en 3 trinns høynivå pipeline. Til nivå-2 cache Bss-interface Til lokalbss Nivå I-cache Nivå D-cache ROB inneholder informasjon om delvis eksekverte instrksjoner som av en eller annen grnnen venter på å blir ferdige. etch/decode Dispatch/Eecte ikro-operation pool (ROB) Retire Pipeline-retning etch/decode henter instrksjoner og splitter dem opp i mikro-instrksjoner som lagres i ROB (klare til å legges i Eecte). Dispatch/Eecte eksekverer mikro-instrksjoner som er lagret i ROB. Retire-en fllfører eksekveringen av hver mikro-instrksjon og oppdaterer registre i henhold til hvilken instrksjon det er snakk om. Instrksjoner plasseres i ROB i riktig rekkefølge, men kan stokkes om før eksekvering, og sendes til Retire-en i riktig rekkefølge. 23 etch/decode-en er internt organsiert som en 7-trinns pipeline skalar pipeline Dispatch/Eecte og Retire-en inneholder en 5 trinns pipeline tilsammen Dispatch/Eecte-en består av to er (kalt U og V, eller X og Heltall) som kan eksekvere instrksjoner i parallell. En tredje pipelinet eksekverings brkes til flyttall Totalt gir dette Pentim III en 2-trinns pipeline (P4 har 20-trinns pipeline) Nivå cache etch/decode en IU0 IU 24 IU2 Cache-line fetcher Instrksjonslengdekoder Instrksjonsalignment Neste IP Dynamisk hoppprediktor ID0 0 2 ikro-instrksjons sekvenser ID ikro-instrksjons kø-sorterer Statisk hoppprediktor RAT Register-allokator ROB

26 IU0: Instrksjoner hentes fra instrksjons-cachen IU: Analyserer byte-strømmen for å finne starten på neste instrksjon. IU2: Sorterer instrksjonen (av variabel lengde) slik at den lett kan 25 dekodes. ID0: Start på dekoding: Ovesettelse til mikro-instrksjoner (3 i parallel) Hver mikroinstrksjon inneholder opcode, to sorce-registre og ett destinasjonsregister ID: ikro-instrksjonene legges i en kø Betingede hopp detekteres. Dynamisk prediksjon brker 4 bit RAT: Tilording til registre (nødvendig fordi gammel 86 kode kan kreve spesielle registre) X-eksekvering Dispatch/Eecte Port 0 en Reservasjons stasjon lyttalls-eksekvering Heltalls-eksekvering X-eksekvering lyttalls-eksekvering Port Heltalls-eksekvering Til/fra ROB Port 2 Load - Port 3 Store - Port 4 Store - Reservasjonsstasjonen kan innholde opptil 20 mikroinstrksjoner som venter på å bli tført. Opptil 5 mikroinstrksjoner kan eksekveres samtidig ikroinstrksjonene kan eksekveres i en annen rekkefølge enn den som er gitt av hovedinstrksjonen. En kompleks algoritme holder styr på hvilke mikroinstrksjoner som skal eksekveres til hvilken tid og på hvilken port. Hasarder og registeravhengigheter løses i reservasjonsstasjonen. 27 Når en mikroinstrksjon er ferdig eksekvert, sendes den tilbake til reservasjonsstasjonen og så tilbake til ROB for tilsltt å sendes til Retireen Retire-en sender reltatet av mikroinstrksjonen til rikig register, eller til andre eksekveringser i Dispatch/Eecte blokken. Retire-en holder styr på instrksjoner som er satt i gang ved speklativ -eksekvering. 28 Instrksjoner kommer ferdig tført fra Retire-en i samme rekkefølge som de ble sendt inn i etch/decode-en

Design av kontroll 30 29 Under Variant instrksjonseksekvering må riktige kontrollsignaler settes avhengig av instrksjonen : Hardwired kontroll ALU lagg IR Sekvensteller Kontroll for kontroll Styresignaler Egenskaper ved hardwired kontroll en er kombinatorisk (bortsett fra sekvenstelleren), er den meget rask. liten plass mlig å endre etter implementasjon bli for stor og komplisert ved sammensatte og komplekse instrksjoner Siden Tar Ikke Kan 3 ikroprogrammert kontroll en liten CPU som tolker et styreprogram som styrer selve CPU en ALU lagg IR + Sekvensteller for kontroll Hkommelse ikroprogram Inneholder Egenskaper ved mikroprogrammert kontroll fleksible fordi mikroprogrammet kan byttes ndervies å rette opp feil ved designet flere klokkesykler for å eksekvere en instrksjon stort CPU-areal 32 er Lettere Krever Krever

34 RISC og CISC () To forskjellige filosofier for design og organisering av en CPU 33 CISC-arkitektr har mange maskinspråk-instrksjoner som kompilatorer kan brke ved oversettelse fra høynivå-språk til masinkspråk Assemblerprogramering blir enklere i en CISC-arkitektr fordi det finnes mange spesialiserte instrksjoner. En CISC-instrksjon kan bestå av et variabelt antall midre steg eller sbinstrksjoner, og hvert steg trenger en klokkesykel på å fllføres. I en moderne CISC-arkitektr (f.eks Pentim) varierer antall steg i instrksjonene fra et ti-talls til flere hndre RISC og CISC (2) RISC-arkitektr har mye færre maskinspråk-instrksjoner tilgjengelige for assemblerprogram og kompilatorer. Hver instrksjon i en RISC-maskin er optimalisert slik at den kn krever én klokkesykel på å eksekvere ferdig. ilosofien bak RISC er å optimalisere og tilby de mest brkte instrksjonene som høynivå-programmer brker (tester har vist at Load/Store og hoppinstrksjoner står for mellom 70-80% av alle instrksjonene i et program) Instrksjoner som brkes sjelden implementeres som en sekvens av instrksjoner og blir ikke nødvendigvis implementert mest mlig effektivt. Kompilatorer og assemblerprogrammer blir større og mer kompliserte fordi hver høynivå-instrksjon splittes opp i mange flere maskinspråk-instrksjoner sammenlignet med CISC. RISC og CISC (3) Instrksjon Instrksjon 2 CISC Steg Steg 2 Steg 3 Steg Steg 2 Steg 3 Steg 4 35 RISC Instrksjon Instrksjon 2 Instrksjon 3 Instrksjon 4 Instrksjon 5 Instrksjon 6 Instrksjon 7 I en RISC-arkitektr tar alle instrksjoner like lang tid. I en CISC-arkitektr kan to instrksjoner brke lik tid på å bli ferdige. Det er vanlig også i RISC arkitektr å dele opp instrksjoner i mindre steg. Ikke alle instrksjoner trenger alle stegene, men de blir allikevel tvnget til å brke dem (ikke gjøre noe) for at hver instrksjon skal ta like lang tid. Hva er best? Noen typer optimalsering lar seg lettere designe sammen med RISC-arkitektr, som f.eks pipelining. Visse anvendelser som f.eks mobiltelefoner ser o t til å egne seg bedre for RISC enn CISC pga statisk kode med lite behov for spesial-instrksjoner RISC CISC 36 Enkelt og begrenset instrksjonssett Komplisert og rikholdig instrksjonssett Register-orienterte instrksjoner med få instrksjoner for minneaksess Alle instrksjoner er fleksible i adresseringsmekanismer for operander ast lengde og format på instrksjoner Variabelt format og lengde på instrksjoner å adresseringsmodi ange adresseringsmodi Stort antall interne registre Lite antall interne registre