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

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

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

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

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

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

IN1020. Datamaskinarkitektur

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

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

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

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

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

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

Intel Core i7. Omid Mirmotahari 4

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

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk

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

INF2270. Datamaskin Arkitektur

INF2270. Datamaskin Arkitektur

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

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

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

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

Maskinvaredelen av INF 103: oversikt og innhold (1)

Forelesning 5. Diverse komponenter/større system

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

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

UNIVERSITETET I OSLO

Oppsummering digital-teknikk, teknikk, INF2270

INF1400 Kap4rest Kombinatorisk Logikk

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

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

UNIVERSITETET I OSLO

Forelesning Instruksjonstyper Kap 5.5

Oppgave 2 Maskinkode (vekt 12%)

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

Innhold. Oppgave 1 Oversettelse (vekt 15%)

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

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

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

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

Oppsummering Assemblerkode Hopp Multiplikasjon Kode og data Array Oppsummering

Forelesning Optimalisering av μark Kap 4.4

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 tema: Enda mer MIPS maskinkode

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

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.

Datamaskinens oppbygning

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

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

Løsningsforslag eksamen TDT4160 høsten 2005

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

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

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.

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

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

Dataveier og optimalisering. Kapittel 9

UNIVERSITETET I OSLO

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

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

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

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

Fortsetelse Microarchitecture level

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

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

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

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

Dagens tema. Flere teknikker for å øke hastigheten

Forelesning Adresseringsmodi Kap 5.4

Forelesning ISA-nivået Kap 5.1

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

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

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

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

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

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

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.

Kap. 8 del 1 kodegenerering INF5110 Vår2007

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

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

UNIVERSITETET I OSLO

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

Kapittel 4: Microarchitecture level

Oppgaver til kodegenerering etc. INF-5110, 12. mai, 2015

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

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

Datamaskinens virkemåte

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

Løsningsforslag til eksamen i IN 147(A)

Minnehåndtering i operativsystemer

INF3340/4431. Tilstandsmaskiner

Den siste dagen. Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Veien videre... Eksamen

Transkript:

agens temaer er om pipeling! agens! er tema er hentet fra kapittel 4.3 og 4.4 om pipelining! Ytelse! Hasarder! ikrokode! RISC! Introdksjon! Hard-wired! ikroprogrammert og CISC! ordeler og lemper til neste kes forelesning (hvis tid)! 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.! Én instrksjon eksekveres ferdig per klokkesykel! ortsetinger:! n instrksjon kan deles opp i sekvensielle steg som løses etterhverandre! e like stegene tføres på egne hardware-enheter som ikke er avhengige av hverandre! Ideelt sett gir en k-trinns pipeline en faktor k i hastighetsøkning sammenlignet med en arkitektr ten pipelining! I praksis er dette ikke mlig grnnet latency og hasarder 2 Generell ytelse Latency! Tiden! Ytelsen 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 P er definert som den inverse til Ct! 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. P Ct CPI * I * t f CPI * I! orbedringen blir da en faktor S gitt av T S T s p nkt nk kt + ( n ) t k + n 3 4

ksempel på pipelinet arkitektr (5-trinns) Utfordringer med pipelining () PC 4 Address 0 Add Instrction I/I I/X X/ / Instrction Registerbank for lagring av mellomverdier (data og kontroll) register register 2 Registers Write register Write data 6 data data 2 Sign etend 32 Shift left 2 0 Add Add reslt Zero reslt Address Write data ata data 0! Pipelining krever at alle stegene hver tar maks en klokkesykel! Spesielt tfordrende for instrksjoner med minneaksess : Velger klokkesykel lik den lengste! Lange instrksjoner vil brke 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å instrksjoner! Gjøres atomatisk av kompilatoren 5 6 Utfordringer med pipelining (2) Ressrshasarder! Tilfeller! Hovedårsaken hvor man ikke kan starte en ny instrksjon hver klokkesykel! Kalles også for stalling til stalling er hasarder av like typer:! Ressrshasarder! atahasarder! Kontrollhasarder! n! Ressrshasard:! Vanligste! Bytte datamaskin består av mange delte ressrser:! RA,, Cache, registre er enn én instrksjon ønsker adgang til samme delte ressrs samtidig løsning på problemet er å brke ekstra hardware:! gen til adresseberegninger! Separate cache for instrksjoner og data! lere instrksjonsregistre! ange generelle registre om rekkefølgen på instrksjoner 7 8

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

! Problem: Kontrollhasarder å kjenne resltatet fra foregående instrksjon ved betingede hopp! Betingede hopp kan redsere eksekveringshastigheten betydelig hvis man regner med at det aldri skal hoppes (dvs ikke gjør noe)! Gjennomsnittlig antall klokkesykler per instrksjon er gitt av AN R5, R6, R L R5, R7 SUB R2, R3, #5... Label L R4, R2 AN R5, R6, R L R5, R7 SUB R2, R3, #5 Potensielt bortkastede instrksjoner Klokkesykler! Absoltte CPI + b* p * p av 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 hopp er ikke problem! en må detekteres ved compile-time og behandles deretter b t Vet først her om programmet skal hoppe eller ikke! 3 4 : Hopp-prediksjon! Prøver å fortsi om en betinget-hopp instrksjon faktisk vil hoppe! Benytter denne knnskapen til å starte eksekvering av korrekt instrksjonssekvens slik at flshing nngås! Tilstandsdiagram Hva skjedde? 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! Statisk prediksjon: Regner med at en bestemt type betingede hopp alltid/aldri fører til hopp, mao statisk oppførsel! nkel algoritme, men tar hensyn ikke til at programmer er dynamiske! Vil knne konsekvent fortsi feil ved f.eks while/for løkker! ynamisk prediskjon: Baserer seg på oppførelsen ved tidligere eksekvering av kodesekvensen! Krever noe mer hardware (må bla lagre tilstandsinfo)! Bedre treff-prosent enn statisk prediksjon Hva tror man vil skje? P r e d i c t t a k e n P r e d ic 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 5 6

2: Parallelleksekvering av hoppinstrksjoner! Istedenfor å fortsi, starter prosessoren eksekvering av begge kodesekvenser i parallell til riktig hopp kan bestemmes AN R5, R6, R L R5, R7 SUB R2, R3, #5... Label L R4, R2 A R3, R6 ST (R3), #4 ST (R), #6 AN R5, R6, R L R4, R2 L R5, R7 A R3, R6 SUB R2, R3, #5 ST (R3), #4 Sperskalare prosessorer! n 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,! nkelte steg kjøres samtidig, men har f.eks sekvensielle TCH-steg.! Sperskalare 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 instrksjoner.! Sperskalare prosessorer er mer kompliserte og krever ekstra kontrolllogikk, flere registre etc.! Pentim og G4 er sperskalare 7 8 Bss-interface enhet Instrksjon Instrksjon 2 Ikke-skalar pipelining Adresseenhet Instrksjon 3 Instrksjon 4 Instrksjons enhet Instrksjon Instrksjon 2 Sperskalar pipelining ksekveringsenhet ksekveringsenhet ksekveringsenhet Instrksjon 3 Instrksjon 4 Registre! Parallelliteten gjør sperskalare prosessorer mye vanskeligere å designe 9 20

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

RISC og CISC () RISC og CISC (2)! To forskjellige filosofier for design og organisering av en CPU! 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.! n 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-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. 25 26 RISC og CISC (3) Hva er best? Instrksjon Instrksjon 2! Noen typer optimalsering lar seg lettere designe sammen med RISC-arkitektr, som f.eks pipelining. CISC Steg Steg 2 Steg 3 Steg Steg 2 Steg 3 Steg 4! 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 Instrksjon Instrksjon 2 Instrksjon 3 Instrksjon 4 Instrksjon 5 Instrksjon 6 Instrksjon 7 RISC CISC nkelt og begrenset instrksjonssett Komplisert og rikholdig instrksjonssett! I en RISC-arkitektr tar alle instrksjoner like lang tid.! I en CISC-arkitektr kan to instrksjoner brke lik tid på å bli ferdige.! et 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. Register-orienterte instrksjoner med få instrksjoner for minneaksess ast lengde og format på instrksjoner å adresseringsmodi Stort antall interne registre Alle instrksjoner er fleksible i adresseringsmekanismer for operander Variabelt format og lengde på instrksjoner ange adresseringsmodi Lite antall interne registre 27 28