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

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

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

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

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

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

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

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

Oppsummering av digitalteknikkdelen

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

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

Intel Core i7. Omid Mirmotahari 4

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

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

Maskinvaredelen av INF 103: oversikt og innhold (1)

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

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

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

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

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

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

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

Forelesning Adresseringsmodi Kap 5.4

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

UNIVERSITETET I OSLO

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

Dagens tema. Flere teknikker for å øke hastigheten

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

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

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

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

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

Forelesning Instruksjonstyper Kap 5.5

Forelesning 5. Diverse komponenter/større system

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

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

UNIVERSITETET I OSLO

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

Forelesning ISA-nivået Kap 5.1

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

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

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

INF1400 Kap4rest Kombinatorisk Logikk

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

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP

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

TDT4160 AUGUST, 2008, 09:00 13:00

UNIVERSITETET I OSLO

Oppsummering digital-teknikk, teknikk, INF2270

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

Forelesning Datatyper Kap 5.2 Instruksjonsformat Kap 5.3 Flyttall App B

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

UNIVERSITETET I OSLO

Datamaskinens oppbygning

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

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

TDT4160 OG IT2201 DATAMASKINER GRUNNKURS EKSAMEN

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

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.

Oppsummering Assemblerkode Hopp Multiplikasjon Kode og data Array Oppsummering

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

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

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

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

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Oppgave 1 - Linux kommandolinje (%)

INF2270. Datamaskin Arkitektur

UNIVERSITETET I OSLO

Fortsetelse Microarchitecture level

Minnehåndtering i operativsystemer

IN1020. Minnehierarki

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

Minnehåndtering i operativsystemer

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Introduksjon til DARK assembly

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Dagens tema: Enda mer MIPS maskinkode

Oppgave 2 Maskinkode (vekt 12%)

Generelt om operativsystemer

Litt om Javas class-filer og byte-kode

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

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

En overikt. Dagens tema. Datamaskinenes historie. Rask-maskinen Litt datamaskinhistorie Registre og lagre Instruksjoner. Rasko-kode.

Oppgave 1 JK-flip-flop (Total vekt 20%)

TDT4160 DATAMASKINER GRUNNKURS EKSAMEN

Innhold. 2 Kompilatorer. 3 Datamaskiner og tallsystemer. 4 Oppsummering. 1 Skjerm (monitor) 2 Hovedkort (motherboard) 3 Prosessor (CPU)

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

INF2270. Datamaskin Arkitektur

INF2270. Input / Output (I/O)

Innhold. Oppgave 1 Oversettelse (vekt 15%)

NORGES TEKNISK- NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP

Dagens temaer. Praktisk anvendelse: Satellittkommunikasjon. eksempler på bruk av assembler/c/arkitektur teknikker for å øke hastigheten

Løsningsforslag til eksamen i INF2270

Dagens tema. Dagens tema hentes fra kapittel 3 i Computer Organisation and Architecture. Sekvensiell logikk. Flip-flop er. Tellere og registre

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Dagens tema. Datamaskinenes historie. De første moderne datamaskiner. Løsning. Menneskene har alltid prøvd å lage maskiner for å løse sine problemer.

TDT4160 DATAMASKINER GRUNNKURS EKSAMEN

INF2270. Input / Output (I/O)

Transkript:

agens temaer agens emner er hentet fra nglander kapittel 10 (side 279-318 ) Mer om adresseringsmodi RISC og CISC-prosessorer Pipelining Skalare og superskalare prosessorer 26.09.03 IN 103 1

Mer om adresseringsmodi LC-2 har fem adresseringmodi : Umiddelbar, Register, irekte, Indirekte og Base+Offset. Alle CPU er har flere typer adresseringsmodi, men type og antall varierer, bl.a. mellom RISC og CISCprosessorer. Register-indirekte adressering er en blanding av register og indirekte adressering. n utvidet variant av register-indirekte legger til offset og auto-inkrement/dekrement i samme operasjon. I register-indirekte adressering ligger adressen til adressen til operanden i et register i stedenfor i den eksterne hukommelsen. 26.09.03 IN 103 2

Register-indirekte adressering Instruksjon OpKode... RegisterNummer 1 Register 1) I instruksjonen ligger et registernummer. 2.) I registeret referert til i instruksjonen ligger Adresse_1 3) Innholdet på Adresse_1 er en ny adresse (Adresse_2) Adresse_1 2 Hukommelse Adresse Innhold Adresse_1 Adresse_2 3 4) Innholdet av Adresse_2 er Operanden instruksjonen leter etter Adresse_2 Operand 4 26.09.03 IN 103 3

Indeksert adressering med offset og auto-inkrement eller dekrement Instruksjon OpKode... Adresse_1 Baseregister Base-offset + 1 2 3 Indeksregister Indeks 6 Adresse_2 4 Adresse Innhold Adresse_2-1 Adresse_2 Adresse_2 + 1 Operand 5 1) I instruksjonen ligger Adresse_1 2) I baseregisteret ligger et Base-offset 3) I indeksregisteret ligger en Indeks 4) Ved å summere sammen Adresse_1, Base-offset og Indeks får man Adresse_2 5) På Adresse_2 i minnet ligger Operand til instruksjonen 6) Ved auto-inkrement/dekrement settes Indeks=Indeks+/-1 hver gang innholdet leses slik at man kan adressere enten Adresse_2 + 1, eller Adresse_2-1 26.09.03 IN 103 4

RISC og CISC (1) RISC og CISC er to forskjellige strategier for design og organisering av en CPU. CISC-arkitektur har en lang rekke maskinspråkinstruksjoner som kompilatorer kan bruke når de skal oversette et program skrevet i høynivå-språk til masinkspråk. Assemblerprogramering blir også gjort enklere i en CISC-arkitektur fordi det finnes mange spesialiserte instruksjoner. n CISC-instruksjon kan bestå av et variabelt antall midre steg eller sub-instruksjoner, og hvert steg trenger en klokkesykel på å fullføres. I en moderne CISC-arkitektur (f.eks Pentium) varierer antall steg i instruksjonene fra et ti-talls til flere hundre for de mest avanserte maskinspråkinstruksjonene. 26.09.03 IN 103 5

RISC og CISC (2) RISC-arkitektur har mye færre maskinspråkinstruksjoner tilgjengelige for assemblerprogram og kompilatorer. Hver instruksjon i en RISC-maskin er optimalisert slik at den kun krever én klokkesykel på å eksekvere ferdig. ilosofien bak RISC er å optimalisere og tilby de mest brukte instruksjonene som høynivå-programmer bruker (mange ulike tester har vist at Load/Store og hopp-instruksjoner står for mellom 70-80% av alle instruksjonene i et program). Instruksjoner som brukes sjelden implementeres som en sekvens av instruksjoner og blir ikke nødvendigvis implementert mest mulig effektivt. Kompilatorer og assemblerprogrammer blir gjerne større og mer kompliserte fordi hver høynivåinstruksjon må brytes ned til mange flere maskinspråk-instruksjoner sammenlignet med CISC. 26.09.03 IN 103 6

RISC og CISC (3) Instruksjon 1 Instruksjon 2 CISC Steg 1 Steg 2 Steg 3 Steg 1 Steg 2 Steg 3 Steg 4 RISC Instruksjon 1 Instruksjon 2 Instruksjon 3 Instruksjon 4 Instruksjon 5 Instruksjon 6 Instruksjon 7 I en RISC-arkitektur tar alle instruksjoner like lang tid. I en CISC-arkitektur ikke er noe slikt krav, slik at to instruksjoner kan bruke forskjellig tid på å bli ferdige. MN: et er vanlig også i RISC arkitektur å dele opp instruksjoner i mindre steg. Ikke alle instruksjoner trenger alle stegene, men de blir allikevel tvunget til å bruke alle dem (eventuelt ikke gjøre noe) for at hver instruksjon skal ta like lang tid. ette kravet gjør det lettere å forenkle og optimalisere instruksjons-eksekveringen i en RISCmaskin. 26.09.03 IN 103 7

Hva er best RISC eller CISC? Begge arkitekturer har fordeler og ulemper, men tabellen under oppsummerer de viktigste forskjellene. Noen typer optimalsering lar seg lettere designe sammen med RISC-arkitektur, som f.eks pipelining. Visse typer anvendelser som f.eks mobiltelefoner ser også ut til å egne seg bedre for RISC enn CISC pga statisk kode med lite behov for spesialinstruksjoner for avansert grafikk, matematikk o.l. RISC nkelt og begrenset instruksjonssett Register-orienterte instruksjoner med få instruksjoner for minneaksess ast lengde og format på instruksjoner å adresseringsmodi Stort antall interne registre CISC Komplisert og rikholdig instruksjonssett Alle instruksjoner er fleksible i adresseringsmekanismer for operander Variabelt format og lengde på instruksjoner Mange adresseringsmodi Lite antall interne registre 26.09.03 IN 103 8

RISC og pipelining et utvikles stadig nye teknikker for å øke prosesseringshastigheten til datamaskiner. n teknikk som egner seg spesielt godt sammen med en RISCtype arkitektur er pipelining. Pipeling kan sammenlignes med enkel samlebåndsproduksjon: Isteden for å vente til forrige instruksjon er ferdig eksekvert, setter man i gang neste instruksjon så fort som første steg av forrige instruksjon er ferdig. Med pipelining øker man antallet instruksjoner som blir ferdig eksekvert per tidsenhet, men: hver instruksjon tar fortsatt like lang tid! or at pipelining skal fungere, må hver enhet som behandler/utfører et steg av en del-instruksjon arbeide uavhengig av de andre delene som utgjør pipelinen ( samlebåndet ). 26.09.03 IN 103 9

Antar en enkel RISCmaskin hvor instruksjone kan deles opp i 4 mindre deler som kan løses uavhengig av hverandre i en bestemt rekkefølge: TCH (Hent instruksjon) CO (ekod instruksjonen) XCUT (Utfør instruksjonen) WRIT BACK (Skriv resultatet til minne) Antar videre at det finnes 4 separate hardwareenheter som utfører hver av disse stegene uavhengig av de andre..eks kan TCH ikke bruke XCUT-enheten for å hente en instruksjon eller laste inn en variabel (men derimot er XCUT avhengig av input fra CO-steget, og CO-steget er avhengig av input fra TCH-steget osv) Til sist må alle enhetene kunne jobbe i parallell, med hver sine steg fra ulike instruksjoner, uten å gå i bena på hverandre. 26.09.03 IN 103 10

Uten pipelining Instruksjon 1 Instruksjon 2 Instruksjon 3 Med pipelining Instruksjon 1 Instruksjon 2 Instruksjon 3 Instruksjon 4 Instruksjon 5 Tid i klokke sykler Uten pipelining ser vi at TCH-steget til instruksjon 2 først kan starte etter at WRIT-BACK steget til instruksjon 1 er avsluttet. Med pipelining starter TCH-steget til instruksjon 2 rett etter at TCH-steget til instruksjon 1 er ferdig 26.09.03 IN 103 11

Uten pipelining Instruksjon 1 Instruksjon 2 Instruksjon 3 Med pipelining Instruksjon 1 Instruksjon 2 Instruksjon 3 Instruksjon 4 Instruksjon 5 0 1 2 3 4 5 6 7 Tid i klokke sykler Uten pipelining er det kun ett steg fra én instruksjon som prosesseres ad gangen i prosessoren. I klokkesykel 4 prosesseres TCH-steget fra instruksjon 2 Med pipelining er det opptil 4 steg fra forskjellige instruksjoner som prosesseres i parallell..eks er prosessoren i klokkesykel 4 opptatt med å prosessere WRIT-BACK fra instruksjon 2, XCUT fra instruksjon 3, CO fra instruksjon 4 og TCH fra instruksjon nummer 5 26.09.03 IN 103 12

Uten pipelining Instruksjon 1 Instruksjon 2 Instruksjon 3 Med pipelining Instruksjon 1 Instruksjon 2 Instruksjon 3 Instruksjon 4 Instruksjon 5 0 1 2 3 4 5 6 7 Tid i klokke sykler Uten pipelining avsluttes en instruksjon hver fjerde klokkesykel. Instruksjon 1 ferdig etter 3. klokkesykel, instruksjon 2 ferdig etter klokkesykel 7 Med pipelining er instruksjon 1 ferdig etter 3. klokkesykel, instruksjon 2 ferdig etter 4. klokkesykel, instruksjon 3 ferdig etter 5 klokkesykel osv. Mao: Én instruksjon er ferdig hver klokkesykel. 26.09.03 IN 103 13

Problemer med pipelining ksemplene viser hvor effektiv pipelining er. MN: et er skjær i sjøen! 1. ordi en ny instruksjon starter hver klokkesykel, må alle stegene ta like lang tid (én klokkesykel). erfor må en klokkesykel minst må være like lang som tiden det tar for det langsomste steget å gjøre seg ferdig. Mao gjøres alle steg like trege. 2. Hvis programmet inneholder hopp-instruksjoner, ser man ikke dette før tidligst i CO-steget (eller etter XCUT ved betingede hopp), og da har man allerede satt igang og eksekvere etterfølgende instruksjoner som IKK skal utføres (fordi man skal hoppe forbi dem). 3. Hvis neste instruksjon er avhengig av resultatet fra forrige instruksjon, vil den ikke kunne lese riktig verdi før forrige instruksjon har skrevet resultatet tilbake til register eller hukommelse. Men da er neste instruksjon allerede ferdig og har brukt feil verdi. 26.09.03 IN 103 14

Mulige løsninger på problem 1 lere alternativer for å forhindre at det tregeste steget bestemmer hva korteste klokkesykel kan være: 1. Variabel klokkesykel: Langsommere steg har lengre klokkesykel Vurdering: Meget vanskelig å løse i praksis og fungerer best på papiret. 2. Raskere hukommelse; e langsomste (minneaksess) stegene reduseres med en faktor 10 2 10 4. Løses i praksis ved en spesiell type raskt minne som kalles cache, som sitter mellom CPU og RAM og brukes til mellomlagring av både instruksjoner og data. Vurdering: Meget vanlig og mest brukt 3. Stoppe prosessoren: Mens den venter på svar fra hukommmelsen stanser all programeksekvering Vurdering: Kun brukt i spesielle tilfeller der hvor 2) ikke vil fungere 3. Bytte om rekkefølgen: Utføre andre instruksjoner mens man venter Vurdering: Utbredt, men komplisert 26.09.03 IN 103 15

Mer om problem 2 Gitt en sekvens av instruksjoner: JNZ R4, Label ;Hopp til Label hvis R4=0 AN R5, R6, R1 L R5, Offset SUB R2, R3, #5 Label LR R4, R2, #0 JNZ R4, Label AN R5, R6, R1 L R5, Offset SUB R2, R3, #5 Klokkesykler Vet først på dette tidspunktet om vi skal hoppe eller ikke! Hvis hoppsinstruksjonen slår til, er det satt i gang instruksjoner som IKK skal eksekveres (AN, L og SUB-instruksjonene). 26.09.03 IN 103 16

Mulige løsninger på problem 2 1. Selv om JNZ R4, Label først er ferdig eksekvert etter -steget, er resultatet av instruksjonen klart etter XCUT-steget. På dette tidspunktet kan man la vær å starte den siste instruksjonen (SUBinstruksjonen). ette kalles forwarding, fordi man sender et resultat bakover i pipelinen før tiden. 2. Man se på hva prgrammet gjorde forrige gang det eksekverte den samme kodesekvensen. Hoppet programmet da, er det stor sjanse for at det vil hoppe igjen, og man kan laste inn de riktige instruksjonene med en gang. ette kalles prediksjon, fordi man prøver å forutsi oppførselen til programmet og handler ut fra det. 3. I verste fall må man tømme pipelinen (også kalt flushing) for de instruksjonene som feilaktig ble påbegynt, og fylle opp med de riktige instruksjonene. Man har da kastet bort 2 sykler (eller mer, avhengig av pipelinens lengde). 26.09.03 IN 103 17

Mer om problem 3 Gitt en sekvens av instruksjoner i et tenkt språk: A AN L R1, R2, R6 R5, R6, R1 R5, Offset A R1, R2, R6 AN R5, R6, R1 L R5, Offset Her blir R1 oppdatert med riktig verdi AN-instruksjonen trenger riktig verdi av R1 her AN-instruksjonen trenger output fra Ainstruksjonen for å beregne riktig. Svaret er først klart 2 sykler senere, mens AN-instruksjonen trenger riktig verdi ved CO-steget og beregingen blir derfor feil. 26.09.03 IN 103 18

Mulige løsninger på problem 3 1. Kan benytte seg av forwarding dvs. å gjøre en verdi tilgjengelig før tiden bakover i pipelinen (dvs for instruksjoner som kommer etter) 2. Stokke om på rekkefølgen av instruksjonene, slik at A-instruksjonen (i dette tilfellet) rakk å gjøre seg helt ferdig før AN-instruksjonen starter opp. Kan gjøres av kompilatoren, men er komplisert og vil ikke alltid fungere. 3. Løsingen 3 er å sette inn en eller flere NOPinstruksjoner, som fyller opp pipelinen med en tom instruksjon slik at de neste instruksjonene starter en klokke-sykel senere, og slik at avhengigheter fjernes. A R1, R2, R6 NOP NOP AN, R5, R6, R1 26.09.03 IN 103 19

Superskalare prosessorer Selv om pipelining er effektivt, er prosessoren forsatt begrenset til å eksekvere ferdig en instruksjon per klokkesykel. esignet kan forbedres ved å eksekvere flere instruksjoner i parallel. ette kan enten gjøre ved å kjøre flere instruksjoner samtidig, eller man kan kjøre enkelte steg samtidig, men ha f.eks sekvensielle TCH-steg. ordelen er at man kan ha flere HW-enheter som gjør heltalls og flyttalls-aritmetikk, load/store osv i parallell; operasjoner som typisk tar mye lenger tid enn vanlige operasjoner sperrer ikke for andre instruksjoner. Superskalare prosessorer er raskere enn vanlig skalare, men også mye mer kompliserte og krever mer logikk, flere registre etc. Moderne CPUer som Pentium og G4 er superskalare 26.09.03 IN 103 20

Vanlig pipelining Instruksjon 1 Instruksjon 2 Instruksjon 3 Instruksjon 4 Instruksjon 1 Instruksjon 2 Superskalar pipelining Instruksjon 3 Instruksjon 4 Tid i klokke sykler Viktigste forskjell: Mens det i en vanlig pipeline eksekveres ferdig en instruksjon per tidsenhet, blir flere instruksjoner ferdige samtidig i en superskalar prosessor. 26.09.03 IN 103 21

ksempel på superskalar arkitektur Buss-interface enhet Instruksjons enhet Adresseenhet ksekveringsenhet ksekveringsenhet ksekveringsenhet Registre Superskalare prosessorer har de samme problemene som skalare, men det er mye mer komplisert å gjøre prediksjon, forwarding, sette inn NOP er, og avgjøre hvilke instruksjoner som kan kjøres i parallell, og å koordinere dem. 26.09.03 IN 103 22