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

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

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

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

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

Oppsummering av digitalteknikkdelen

Intel Core i7. Omid Mirmotahari 4

IN1020. Datamaskinarkitektur

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

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

! 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

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

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

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

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

INF2270. Datamaskin Arkitektur

Maskinvaredelen av INF 103: oversikt og innhold (1)

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

Oppgave 2 Maskinkode (vekt 12%)

INF2270. Datamaskin Arkitektur

Innhold. Oppgave 1 Oversettelse (vekt 15%)

Oppsummering digital-teknikk, teknikk, INF2270

Datamaskinens oppbygning

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

UNIVERSITETET I OSLO

Forelesning Instruksjonstyper Kap 5.5

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

Forelesning Optimalisering av μark Kap 4.4

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

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk

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

UNIVERSITETET I OSLO

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

Forelesning 5. Diverse komponenter/større system

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

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

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

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

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

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

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

INF1400 Kap4rest Kombinatorisk Logikk

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

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.

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

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

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

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

Fortsetelse Microarchitecture level

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

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

Løsningsforslag eksamen TDT4160 høsten 2005

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

Forelesning ISA-nivået Kap 5.1

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk

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

Dagens tema. Flere teknikker for å øke hastigheten

INF3430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

UNIVERSITETET I OSLO

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

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. Sekvensiell logikk: Kretser med minne. D-flipflop: Forbedring av RS-latch

Kapittel 4: Microarchitecture level

TDT4160 OG IT2201 DATAMASKINER GRUNNKURS EKSAMEN

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

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

Dagens tema: Enda mer MIPS maskinkode

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

TDT4160 AUGUST, 2008, 09:00 13:00

Oppsummering Assemblerkode Hopp Multiplikasjon Kode og data Array Oppsummering

Forelesning Adresseringsmodi Kap 5.4

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP

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

INF3430/4430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

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

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

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

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

INF3430/4431. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

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

TDT4160 DATAMASKINER GRUNNKURS EKSAMEN

EKSAMENSOPPGAVE, INF-2200

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

UNIVERSITETET I OSLO

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

Minnehåndtering i operativsystemer

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

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

SIE 4005, 2/10 (2. Forelesn.)

Oppgave 1 - Linux kommandolinje (%)

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

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

Transkript:

agens temaer! agens! Mer tema er hentet fra kapittel 4.3 og 4.4 om pipelining! Ytelse! Hasarder! Mikrokode! Hard-wired! Mikroprogrammert! RISC! Introduksjon og CISC! ordeler og ulemper til neste ukes forelesning (hvis tid) 1

Mer om pipeling! Repetisjon:! 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.! Én instruksjon eksekveres ferdig per klokkesykel! orutsetinger:! Ideelt! En instruksjon kan deles opp i sekvensielle steg som løses etterhverandre! e ulike stegene utføres på egne hardware-enheter som ikke er avhengige av hverandre sett gir en k-trinns pipeline en faktor k i hastighetsøkning sammenlignet med en arkitektur uten pipelining! I praksis er dette ikke mulig grunnet latency og hasarder 2

Generell ytelse! Tiden en prosessor Ct bruker på å utføre n instruksjoner er gitt av Ct = CPI * I * t, der CPI er gjennsomsnittlig antall klokkesykler per instruksjon, I er antall instruksjoner og t er klokkeperioden (lengden på en klokkesykel), dvs 1/f! Ytelsen P er definert som den inverse til Ct P = 1 Ct = CPI 1 * I * t = f CPI * I 3

Latency! Hvis en prosessor utfører n instruksjoner fullstendig sekvensielt på en k-trinns pipeline (uten å starte en ny instruksjon hver klokkesykel), trengs T s = nkt! Benyttes derimot ekte pipelining, behøves T p = kt + ( n 1) t der kt er tiden det tar for pipelinen å fylles opp med den første instruksjonen, og (n-1)t tiden for å eksevere de n-1 resterende.! orbedringen blir da en faktor S gitt av S = T T s p = kt nkt nk = + ( n 1) t k + n 1 4

Eksempel på pipelinet arkitektur (5-trinns) 0 M u x 1 Registerbank for lagring av mellomverdier (data og kontroll) I/I I/EX EX/MEM MEM/WB 4 Add Add Add result Shift left 2 PC Address Instruction memory Instruction Read register 1 Read data 1 Read register 2 Registers Read data 2 Write register Write data 0 M u x 1 Zero ALU ALU result Address Write data ata memory Read data 1 M u x 0 16 Sign extend 32 5

Utfordringer med pipelining (1)! Pipelining! Løsning! Løsning! Løsning! Løsning krever at alle stegene hver tar maks en klokkesykel! Spesielt utfordrende for instruksjoner med minneaksess 1: Velger klokkesykel lik den lengste! Lange instruksjoner vil bruke mye lenger tid enn nødvendig 2: Klokkesykel med variable lengde! or komplisert! 3: Raskere minne! Cache bedrer ytelsen betraktelig 4: Bytte om rekkefølgen på instruksjoner! Gjøres automatisk av kompilatoren 6

Utfordringer med pipelining (2)! Tilfeller! Hovedårsaken hvor man ikke kan starte en ny instruksjon hver klokkesykel! Kalles også for stalling til stalling er hasarder av ulike typer:! Ressurshasarder! atahasarder! Kontrollhasarder 7

Ressurshasarder! En! Ressurshasard:! Vanligste! Bytte datamaskin består av mange delte ressurser:! RAM, ALU, Cache, registre Mer enn én instruksjon ønsker adgang til samme delte ressurs samtidig løsning på problemet er å bruke ekstra hardware:! Egen ALU til adresseberegninger! Separate cache for instruksjoner og data! lere instruksjonsregistre! Mange generelle registre om rekkefølgen på instruksjoner 8

! Problem: atahasarder Benytter en operand/resultat som beregnes av foregående instruksjon A AN L R1, R2, R6 R5, R6, R1 R5, R7 E WB E A R1, R2, R6 WB AN R5, R6, R1 E WB L R5, R7 Her blir R1 oppdatert med riktig verdi AN-instruksjonen trenger riktig verdi av R1 her 9

I/EX EX/MEM MEM/WB Registers ALU Løsning 1: orwarding:! Legge til ekstra hardware slik at resultatet blir tilgjengelig bakover i pipelinen, dvs for instruksjoner som kommer etter a. No forwarding I/EX M u x EX/MEM ata memory MEM/WB M u x! Vil ikke alltid fungere Registers orwarda ALU M u x ata memory M u x Rs Rt Rt Rd orwardb M u x orwarding unit EX/MEM.RegisterRd MEM/WB.RegisterRd b. With forwarding 10

! Løsning 2: Bytte om rekkefølgen på instruksjoner A R1, R2, R6 A R1, R2, R6 AN L R5, R6, R1 R5, R7 L SUB R5, R7 R8, R3, R4 SUB R8, R3, R4 AN R5, R6, R1! Gjøres av kompilatoren, men! Er komplisert og én flytting kan skape nye avhengigheter! Vil ikke alltid fungere 11

! Løsning 3: Sette inn tomme instruksjoner: NOP! Alternativt kan man stoppe prosessoren hvis problemet er Load A R1, R2, R6 E WB A R1, R2, R6 NOP NOP E WB E WB NOP NOP AN R5, R6, R1 E WB AN, R5, R6, R1 L R5, R7! Vil! Benyttes alltid fungere, men sløser bort prosessortid i kombinasjon med forwarding, og ombytte av instruksjoner 12

! Problem: Kontrollhasarder Må kjenne resultatet fra foregående instruksjon ved betingede hopp JNZ R4, Label E WB JNZ R4, Label Potensielt bortkastede instruksjoner AN R5, R6, R1 E WB AN R5, R6, R1 L R5, R7 E WB L R5, R7 SUB R2, R3, #5 E WB SUB R2, R3, #5... E WB Label L R4, R2 Klokkesykler Vet først her om programmet skal hoppe eller ikke! 13

! Betingede hopp kan redusere eksekveringshastigheten betydelig hvis man regner med at det aldri skal hoppes (dvs ikke gjør noe)! Gjennomsnittlig antall klokkesykler per instruksjon er gitt av CPI =1+ b* p * av b p t p b er sannsynligheten for at en instruksjon er et betinget hopp p t er sannsynligheten for at man hopper ved betingede hopp b er straffen for å starte unødvendig eksekvering av instruksjoner! Absolutte hopp er ikke problem! Men må detekteres ved compile-time og behandles deretter 14

! Løsning 1: Hopp-prediksjon! Prøver å forutsi om en betinget-hopp instruksjon faktisk vil hoppe! Benytter denne kunnskapen til å starte eksekvering av korrekt instruksjonssekvens slik at flushing unngås! Statisk! ynamisk prediksjon: Regner med at en bestemt type betingede hopp alltid/aldri fører til hopp, mao statisk oppførsel! Enkel! Vil algoritme, men tar hensyn ikke til at programmer er dynamiske kunne konsekvent forutsi feil ved f.eks while/for løkker prediskjon: Baserer seg på oppførelsen ved tidligere eksekvering av kodesekvensen! Krever! Bedre noe mer hardware (må bla lagre tilstandsinfo) treff-prosent enn statisk prediksjon 15

! Tilstandsdiagram for dynamisk hopp-prediksjon! or å få bedre prediskjon benyttes 2-bits tilstand, dvs oppførselen må være lik for de 2 foregående gjennomløpene Hva skjedde? 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 ic t t a k e n 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 ic t n o t t a k e n P re d ic t n o t ta k e n T a k e n N o t t a k e n 16

! Løsning 2: Parallelleksekvering av hoppinstruksjoner! Istedenfor å forutsi, starter prosessoren eksekvering av begge kodesekvenser i parallell til riktig hopp kan bestemmes E WB JNZ R4, Label JNZ R4, Label AN R5, R6, R1 L R5, R7 SUB R2, R3, #5... Label L R4, R2 A R3, R6 ST (R3), #4 ST (R1), #6 E WB E WB E WB E WB E WB AN R5, R6, R1 L R4, R2 L R5, R7 A R3, R6 SUB R2, R3, #5 E WB ST (R3), #4 E WB 17

Superskalare prosessorer! En vanlig pipelined prosessor er begrenset til å eksekvere ferdig en instruksjon per klokkesykel.! Hastigheten kan økes ved å eksekvere flere instruksjoner i parallell:! lere instruksjoner kan kjøres samtidig,! Enkelte steg kjøres samtidig, men har f.eks sekvensielle ETCH-steg.! Superskalare prosessorer har flere HW-enheter som gjør heltalls og flyttallsaritmetikk, load/store osv i parallell! Operasjoner som tar mye lenger tid enn andre sperrer ikke for andre instruksjoner.! Superskalare prosessorer er mer kompliserte og krever ekstra kontrolllogikk, flere registre etc.! Pentium og G4 er superskalare 18

E WB Instruksjon 1 E WB Instruksjon 2 Ikke-skalar pipelining E WB Instruksjon 3 E WB Instruksjon 4 E WB Instruksjon 1 E WB Instruksjon 2 Superskalar pipelining E WB Instruksjon 3 E WB Instruksjon 4 19

Buss-interface enhet Instruksjons enhet Adresseenhet Eksekveringsenhet Eksekveringsenhet Eksekveringsenhet Registre! Parallelliteten gjør superskalare prosessorer mye vanskeligere å designe 20

esign av kontrollenhet! Under! Variant instruksjonseksekvering må riktige kontrollsignaler settes avhengig av instruksjonen 1: Hardwired kontroll ALU lagg IR Sekvensteller for kontrollenhet Kontroll Styresignaler 21

! Egenskaper ved hardwired kontroll! Siden enheten er kombinatorisk (bortsett fra sekvenstelleren), er den meget rask.! Tar liten plass! Ikke mulig å endre etter implementasjon! Kan bli for stor og komplisert ved sammensatte og komplekse instruksjoner 22

! Mikroprogrammert kontroll! Inneholder en liten CPU som tolker et styreprogram som styrer selve CPU en ALU lagg IR +1 Sekvensteller for kontrollenhet Hukommelse Mikroprogram 23

! Egenskaper ved mikroprogrammert kontroll! Mer fleksible fordi mikroprogrammet kan byttes undervies! Lettere å rette opp feil ved designet! Krever flere klokkesykler for å eksekvere en instruksjon! Krever stort CPU-areal 24

RISC og CISC (1)! To forskjellige filosofier for design og organisering av en CPU! CISC-arkitektur har mange maskinspråk-instruksjoner som kompilatorer kan bruke ved oversettelse fra høynivå-språk til masinkspråk! Assemblerprogramering blir enklere i en CISC-arkitektur fordi det finnes mange spesialiserte instruksjoner.! En CISC-instruksjon kan bestå av et variabelt antall midre steg eller subinstruksjoner, 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 25

RISC og CISC (2)! RISC-arkitektur har mye færre maskinspråk-instruksjoner 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 (tester har vist at Load/Store og hoppinstruksjoner 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 større og mer kompliserte fordi hver høynivå-instruksjon splittes opp i mange flere maskinspråk-instruksjoner sammenlignet med CISC. 26

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 kan to instruksjoner bruke ulik tid på å bli ferdige.! 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 dem (ikke gjøre noe) for at hver instruksjon skal ta like lang tid. 27

Hva er best?! Noen typer optimalsering lar seg lettere designe sammen med RISC-arkitektur, som f.eks pipelining.! Visse anvendelser som f.eks mobiltelefoner ser o ut til å egne seg bedre for RISC enn CISC pga statisk kode med lite behov for spesial-instruksjoner RISC CISC Enkelt og begrenset instruksjonssett Komplisert og rikholdig instruksjonssett Register-orienterte instruksjoner med få instruksjoner for minneaksess Alle instruksjoner er fleksible i adresseringsmekanismer for operander ast lengde og format på instruksjoner å adresseringsmodi Stort antall interne registre Variabelt format og lengde på instruksjoner Mange adresseringsmodi Lite antall interne registre 28