Moderne datamaskinarkitektur

Størrelse: px
Begynne med side:

Download "Moderne datamaskinarkitektur"

Transkript

1 Geir Ove Rosvold 4. januar 2016 Opphavsrett: Forfatter og Stiftelsen TISIP Resymé: Denne leksjonen beskriver en del moderne mekanismer som brukes til å øke ytelsen til CPU. De mekanismene som beskrives er pipeline, superskalar arkitektur og dynamisk utføring. Innhold 1.1. INTRODUKSJON Utviklingstrekk for mikroprosessorer TEKNIKKER FOR FORBEDRET YTELSE Første generasjon: en arbeider Andre og tredje generasjon: Flere arbeidere Fjerde generasjon: Ferdig tilberedte retter Femte generasjon: Flere serveringsdisker Sjette generasjon: Slipp neste kunde forbi REALISERING AV MEKANISMENE PIPELINE En fem-trinns pipeline Utføring på en fem-trinns pipline PROBLEMER MED PARALLELLITET PÅ INSTRUKSJONSNIVÅ Hasarder Strukturell hasard Data-hasard Kontrollhasard Pipeline på Intel x Pipeline på Intel Pipeline på Intels nyere Pentium-prosessorer SUPERSKALAR ARKITEKTUR DYNAMISK UTFØRING Gjetting ved hopp (branch prediction) FLERKJERNE-PROSESSORER Så hva nå? Flere kjerner Operativsystemets rolle Systemarkitekturer FLERPROSESSOR-MASKINER SMP Symmetrisk MultiProsessormaskin Klynger (cluster) OPPSUMMERING... 17

2 1.1. Introduksjon Den tradisjonelle datamaskinløsningen for en stor organisasjon er den såkalte stormaskinen. Stormaskiner er sentraliserte datamaskinløsninger der en maskin betjener hundrevis eller tusenvis av brukere. En slik sentralisert modell har store fordeler, spesielt for anvendelser der mange brukere jobber mot samme informasjonsmengde. Eksempler på bransjer der stormaskiner tradisjonelt brukes er banker, forsikringsselskap og reisebyråer. Imidlertid er det slik at knapt noen annen teknologi har vært gjennom en så hurtig utvikling som prosessorteknologien. I flere ti-år har prosesseringskapasiteten til prosessorer fordoblet seg omtrent annethvert år. Resultatet er at dagens PCer opererer med en regnekraft som er på lik linje med det man så på stormaskiner for bare få år siden. Det betyr at en PC-bruker alene har tilgang til en regnekapasitet som tidligere ble delt på flere hundre brukere. For ikke å gjøre det mer imponerende enn det faktisk er, bør vi nok legge til at det er prosesseringskapasitet vi snakker om - og ikke I/O-kapasitet. Stormaskinenes I/O-egenskaper har alltid ligget i en klasse for seg. Men et viktig poeng er at når mikromaskiner kobles i nettverk kan den samlede I/Okapasiteten bli tilfredsstillende, samtidig som den samlede regnekapasiteten blir enorm. Mikromaskiner i nettverk er følgelig en løsning som blir mer og mer brukt. I løpet av 90-tallet gjorde mikromaskiner i nettverk gjort et dypt innhogg i stormaskinmarkedet. Vi er fortsatt inne i en utvikling der mikromaskiner i nettverk blir en stadig mer anvendelig løsning på stadig flere områder. Denne markedsutviklingen har sin bakgrunn i to forhold. For det første utviklingen av nettverksteknologi som gjør det mulig å oppnå tilstrekkelig overføringskapasitet. Dernest utviklingen innen mikroprosessorteknologien som muliggjør tilstrekkelig regnekapasitet Utviklingstrekk for mikroprosessorer Tradisjonelt har mikroprosessorens regnekapasitet vært rettet mot heltallsberegninger. Typiske anvendelser har vært kontorstøttefunksjoner (som tekstbehandling, regnearkprogram) og to-dimensjonal grafikk. De senere år har trendene gått mer mot tre-dimensjonal grafikk (som krever flyttallsberegninger isteden for heltallsberegninger), og dessuten kommunikasjon- og multimedia-anvendelser. Dette gjør at mikroprosessorutviklingen går langs tre akser: en fortsatt utvikling innen de tradisjonelle heltallsberegninger, og dessuten utvikling innen flyttallsberegninger og multimedia. Et eksempel på dette er utviklingen av SSE-teknologien til Pentium-prosessorene. På Pentium III introduserte Intel Streaming SIMD Extension (SSE). Dette er nye instruksjoner som er spesielt beregnet for å støtte flyttallsberegninger og multimedia-anvendelser. SIMD er et velkjent begrep innen dataarkitektur, og står for Single Instruction Multiple Data. SIMD betyr at èn instruksjon (single instruction) kan gjøre samme beregning på mange dataverdier (multiple data). Innenfor svært mange multimedia-anvendelser er det nødvendig å gjøre en og samme beregning på mange dataverdier for eksempel på alle bildepunkter i et skjermbilde. I slike tilfeller er SIMD-instruksjonene nyttige. Resten av navnet: streaming indikerer at disse SIMD-instruksjonene er spesielt rettet mot multimedia og 3D-grafikk. 3Dgrafikk krever flyttallsberegninger, og derfor er SIMD-instruksjonene flyttallsinstruksjoner. Også hos andre prosessorfabrikanter så vi de samme utviklingstrekkene som hos Intel, blant annet med AMD tilsvarende teknologi som kalles 3DNow. Forfatter og Stiftelsen TISIP side 2 av 17

3 På nye prosessorer bruker både Intel og AMD utvidelsen som kalles AVX (Advanced Vector Extensions) som er en videreutvikling av SIMD Teknikker for forbedret ytelse Den store ytelsesforbedringen vi har sett på mikroporosessorer skyldes forbedrede fremstillingsmetoder. Dette har muliggjort at: 1. Det kan integreres stadig flere komponenter (transistorer) i en prosessor. 2. Hver enkelt integrert komponent blir stadig mindre slik at klokkehastigheten kan øke uten at vi får varmgangsproblemer. Antallet integrerte transistorer i Intels prosessorer har blitt omtrent tredoblet for hver generasjon. Mens den første prosessoren i en PC - den såkalte 8088-prosessoren - hadde ca transistorer integrert, har antallet økt til over 800 millioner på de nyeste Pentiumprosessorene. Samtidig har hver transistor blitt mindre slik at klokkefrekvensen har økt dramatisk, fra 4,7 MHz til godt over 3 GHz for de nyeste. Ved å integrere stadig flere komponenter oppnår man å kunne utføre langt mer i løpet av hver klokkesyklus. Samtidig har altså antall klokkesykluser som prosessoren utfører hvert sekund økt voldsomt. Det store antall komponenter har gjort det mulig å realisere teknikker som pipeline, superskalare prosessorer og prosessorer som jobber med dynamisk utføring. I denne leksjonen skal vi se litt på hva disse begrepene innebærer. For å illustrere disse teknikkene vil jeg bruke en analogi til serveringssteder. Denne analogien har jeg hentet fra web-artikkelen "Clock Speed: Tell Me When it Hertz" som er skrevet av H. Gilbert og lå på Første generasjon: en arbeider Første generasjon mikroprosessorer på IBM-kompatible PCer inneholdt et relativt lite antall integrerte komponenter; omtrent integrerte transistorer. Utførelsen av hver enkelt instruksjon trengte derfor mange klokkesykluser. Prosessortypen i den opprinnelige IBM PC bar navnet Andre, og mindre brukte, Intel-prosessorer fra denne tiden er 8086 og Første generasjons prosessorer kan sammenlignes med et hamburgersted der det bare jobber en person. Kunden går frem til disken og bestiller en rett (hent instruksjon). Etter at den ansatte har tatt imot bestillingen, må samme ansatte gå inn i kjøkkenet og tilberede retten (utfør instruksjon). Deretter vil den ansatte bringe retten ut til den lykkelige kunden som tålmodig står ved disken og venter (skriv resultat) Andre og tredje generasjon: Flere arbeidere Etter hvert som det ble mulig å integrere flere komponenter kunne man ta i bruk mer avanserte mekanismer. Andre og tredje generasjons prosessorer er henholdsvis og prosessorene. Prosessoren hadde rundt integrerte transistorer og hadde ca Etter hvert ble disse prosessorene bare kalt 286 og 386. Forfatter og Stiftelsen TISIP side 3 av 17

4 Innehaveren av hamburgerstedet bør ansette flere. Da kan en person ta i mot bestillinger, en annen person kan tilberede maten, og en tredje person ta betalingen og levere ut maten. Dermed kan det jobbes med tre bestillinger samtidig. Når en kunde har bestilt en rett kan denne retten tilberedes samtidig som ekspeditøren ekspederer neste kunde. Til samme tid kan det også leveres ut en ferdig rett. På 286- og 386-prosessorene gikk hver instruksjon gjennom et "samlebånd". Etter at en instruksjon var hentet inn fra minnet ble den sendt videre til trinnet som tolket instruksjonen. Mens denne tolkningen foregikk, ble neste instruksjon hentet. Slik fortsatte instruksjonen gjennom flere stasjoner inntil den var ferdig utført. Totalt jobbet prosessoren på mange instruksjoner samtidig, men hver instruksjon var til enhver tid på bare ett trinn. Det er dette som kalles pipeline-teknikk. På hamburgerstedet vårt vil det alltid være tilberedningen som begrenser hvor fort en bestilling kan effektueres. Man kan ansette så mange man vil, men det tar likevel en bestemt tid å steke en hamburger. På samme måte vil det være deler av en instruksjonssyklus som begrenser det totale tidsforbruket. Det er minneaksessene. Minnet trenger omkring 50 ns for å frembringe data uansett Fjerde generasjon: Ferdig tilberedte retter Fjerde generasjon Intel-prosessorer er 486. Nå var det mulig med storskala serieproduksjon av prosessorer med rundt 1 mill. integrerte transistorer. Etter hvert vil de ansatte ved hamburgerstedet vårt få erfaring i hvilke retter som er mest populær. Det betyr at de kan tilberede noen slike retter på forhånd, og ha dem klar. Etter all sannsynlighet vil det snart komme kunder som bestiller disse rettene, og da slipper kunden å vente på den tidkrevende tilberedningen. 486-prosessorene ble utstyrt med cache. Dette betyr at de mest brukte minnelokasjonene ble kopiert til et lite men svært hurtig buffer. Prosessoren opererte altså med en arbeidskopi av de mest brukte lokasjonene. Dermed ble det svært lite ventetid for å hente denne informasjonen Femte generasjon: Flere serveringsdisker I forbindelse med femte generasjon prosessorer gikk Intel bort fra numeriske navn på prosessorene sine. Femte generasjon fikk isteden navnet Pentium (fra penta=5). De første Pentium-prosessorene inneholdt over 3 mill. integrerte transistorer. For å kunne ekspedere stadig flere kunder, kan hamburgerstedet vårt operere med flere serveringsdisker som jobber parallelt. Dette tilsvarer prosessorer med flere parallelle pipelines. Prosessorer med flere parallelle pipelines kalles superskalare prosessorer. Pentium var den første superskalare prosessoren fra Intel. Den har to pipelines, slik at det kan foregå parallell utføring av to instruksjoner samtidig. Forfatter og Stiftelsen TISIP side 4 av 17

5 Sjette generasjon: Slipp neste kunde forbi De neste Intel-prosessorer er Pentium Pro og nyere. Eksempler på slike prosessorer er Pentium II, III, IV og Core i3, i5 og i7. Her er det mellom 5 og 2000 mill. integrerte transistorer. Som regel vil retten som kunden bestiller allerede være ferdig tilberedt. Men av og til kommer det en kunde som bestiller en rett som må tilberedes. Da må kunden vente. For å oppnå maksimal hastighet bør slike kunder stige ut av køen etter bestilling. Da kan de neste kundene ekspederes uten forsinkelse. For prosessoren er det slik at man som regel finner data i cache, slik at det går hurtig å hente informasjonen. Men av og til trenger man informasjon som ligger i primærminnet. Siden minnet er så langsomt i forhold til prosessorhastigheten vil dette normalt føre til en forsinkelse. Moderne Pentium-prosessorer har mekanismer som ligner på å la neste kunde slippe frem i køen. Dersom en instruksjon trenger data som må hentes fra primærminnet vil prosessorene legge til side denne instruksjonen inntil data ankommer fra minnet. Prosessoren vil bruke ventetiden til å utføre de neste instruksjone. Denne mekanismen kalles dynamisk utføring Realisering av mekanismene La oss se litt nærmere på mekanismene pipeline, superskalar prosessor og dynamisk utføring. Utgangspunktet er at instruksjonene som utgjør et program normalt ligger fortløpende i minnet. Vi sier at instruksjonene skal utføres sekvensielt. Alle som har programmert litt vet imidlertid at det av og til utføres hopp i programmet. Et eksempel på slike hopp er betingede hopp (if-setninger: utfør disse instruksjonene bare dersom en betingelse er sann, dersom betingelsen er usann skal man hoppe over instruksjonene og fortsette en ny plass i minnet). Av og til går man altså bort ifra den sekvensielle utføringen - men i de fleste tilfeller ligger neste instruksjon rett etter den forrige Pipeline Tidligere i kurset har vi antatt at en instruksjon gjør seg helt ferdig før neste instruksjon starter. Videre har vi sagt at utføringen skjer i en såkalt instruksjonssyklus. Vi har sagt at instruksjonssyklusen består av to delsykluser: Hentesyklusen og Utføringssyklusen. Vi antar nå at prosessoren bruker ulike deler av elektronikken sin til hver av de to delsyklusene. Da kan vi tenke oss at vi bruker en del av prosessorelektronikken til å hente inn en instruksjon fra minnet. Når instruksjonen er hentet, sendes den videre til den delen av prosessor-elektronikken som utfører den. Og nå kommer poenget: Da kan vi akkurat samtidig som instruksjonen utføres hente neste instruksjon. Dette blir analogt med det som skjer på et samlebånd. Der jobbes det med mange produkt samtidig; ett produkt på hvert trinn i samlebåndet. Det vi har beskrevet er et samlebånd med to trinn; et to-trinns samlebånd slik Figur 1 viser. Hvis dette skal fungere effektivt bør de to delsyklusene bruke like langt tid. Hvis ikke vil det ene trinnet kaste bort tid mens det venter på at det andre skal bli ferdig. Dette er faktisk et Forfatter og Stiftelsen TISIP side 5 av 17

6 problem. I praksis viser det seg nemlig at Utføringssyklusen oftest bruker lenger tid på å bli ferdig enn Hentesyklusen. Instruksjon 1 Instruksjon 2 Instruksjon 3 Hent Utfør Hent Utfør Hent Utfør tid Elektronikk for Hent CPU Elektronikk for Utfør Figur 1 Pipeline der prosessoren jobber på flere instruksjoner samtidig. Elektronikken for de to delsyklusene er uavhengige av hverandre. Hva skal vi gjøre med dette? Jo, det mest praktiske er å dele opp utføringssyklusen i flere deler. Hvor mange trinn utføringssyklusen blir delt opp i vil variere fra prosessortype til prosessortype. Enkelte prosessortyper bruker svært mange trinn, f.eks og helt opp til 20. Andre prosessortyper bruker bare 4-8 trinn. Et annet problem oppstår hvis flere trinn trenger samme ressurs samtidig. Den aller mest vanlige ressurskonflikten er at flere trinn ønsker å aksessere minnet samtidig. Hvis slike konflikter oppstår, kan ikke de involverte trinnene utføres samtidig likevel. Det ene trinnet må vente, og det oppstår en forsinkelse. Vi skal se nærmere på slike konfliktsituasjoner litt lenger ut i leksjonen. Til tross for slike problemer er alle moderne prosessorer bygget opp rundt pipelineprinsippet. Selv om det av og til oppstår forsinkelser får vi totalt en langt bedre ytelse. Ulempen er at prosessorer med pipeline blir svært kompliserte fordi de må inneholde mekanismer løser problemene som er skissert ovenfor En fem-trinns pipeline I denne leksjonen har jeg valgt å bruke en femtrinns pipeline. LA oss se hva som inngår i hvert av trinnene: Trinn 1, FI Trinn 1 er den gode gamle hentesyklusen. I figurene har jeg valgt å bruke det engelske navnet for dette trinnet: FI (Fetch Instruction) Trinn 2, DI Trinn 2 består i å tolke instruksjonen, Det vil si: planlegg hva som skal skje. På engelsk er det vanlig å bruke navnet DI (Decode Instruction) Trinn 3, FO I trinn 3 hentes data fra minne, cache eller IO dersom instruksjonen trenger slike data. Vi husker fra leksjonen om Grunnleggende virkemåte, at slike data kalles inn-operander Forfatter og Stiftelsen TISIP side 6 av 17

7 Det er verdt å legge merke til at det ikke er alle instruksjoner som trenger å hente data. Hvis vi bruker den hypotetiske maskinen som utgangspunkt, så er ADD-instruksjonen et eksempel på en instruksjon som må hente data. ADD-instruksjonen legger sammen to tall, og det ene av disse tallene ligger i minnet og må følgelig hentes derfra. Et eksempel på en instruksjon som ikke trenger å hente data er STORE-instruksjonen (den skal bare skrive data). Trinnet kalles FO (Fetch Operand). Trinn 4, EI Trinn 4 består i å utføre instruksjonen. Mange instruksjoner bruker ALU for å beregne et resultat. Dette trinnet kalles EI (Execute Instruction). Trinn 5, WO Enkelte gang skal resultatet fra Trinn 4 skrives til minnet. Til dette brukes i så fall trinn 5. Et eksempel på en instruksjon som skal skrive et resultat til minnet, er STORE-instruksjonen fra den hypotetiske maskinen. Denne instruksjonen skrev innholdet av AC-registeret til minnet, og dette krever en skriveaksess på slutten av instruksjonen. Legg merke til at dersom resultatet fra trinn 4 ikke skal skrives til minne, cache eller IO, så utføres det ingenting i trinn Utføring på en fem-trinns pipline I en fem-trinns pipeline skal hver instruksjon gjennom fem trinn, og prosessoren kan dermed jobbe med fem instruksjoner samtidig. Dersom vi antar at hvert trinn tar en klokkesyklus, vil den første instruksjonen ta fem klokkesykluser. Men deretter fullføres en instruksjon pr klokkesyklus. Uten pipeline ville hver instruksjon trenge fem klokkesykluser, så det er en klar forbedring. Figur 2 viser hvordan instruksjonene utføres i en pipeline med denne oppdelingen. Instruksjon 1 Instruksjon 2 Instruksjon 3 Instruksjon 4 Instruksjon 5 tid Figur 2 Femtrinns pipeline. Med pipeline utføres trinnene i instruksjonen som i et samlebånd. Forfatter og Stiftelsen TISIP side 7 av 17

8 Ikke alle instruksjoner bruker alle trinn Vi kan legge merke til en ting med det samme: Det er slettes ikke alle instruksjoner som må hente data fra minnet (FO) og heller ikke alle som lagrer resultatet i minnet (WO). Da kunne man kanskje tro at det var fornuftig å hoppe over disse trinnene for disse instruksjonene, slik at slike instruksjoner tar kortere tid. Dette vil imidlertid komplisere samlebåndsteknologien. Derfor implementeres alle trinn; også de unødvendige som ikke utfører noe arbeid Problemer med parallellitet på instruksjonsnivå Samlebåndteknikken (pipeline) gjør det mulig med parallell utføring av flere instruksjoner på en og samme prosessor. På engelsk kalles dette instruction-level parallelism, som er et begrep man ofte treffer på i bøker og datatidsskrifter. Det oppstår imidlertid en del problemer når flere instruksjoner skal utføres samtidig. Et slikt problem kan være ressurskonflikter som oppstår fordi to instruksjoner vil aksessere minnet samtidig. Hvis vi ser på Figur 2 er det lett å se noen potensielle problemer av denne type. Legg for eksempel merke til at FO-trinnet til instruksjon 1 må aksessere minnet for å hente instruksjonen, men akkurat samtidig kan det hende at FI-trinnet til instruksjon 3 også må vil en operand fra minnet. Et annet potensielt problem er WO-trinnet til instruksjon 1 som kanskje skal skrive til minnet. Det blir et problem hvis FO-trinnet til instruksjon 3 skal lese fra minnet samtidig. To ting er verdt å merke seg: Det er ikke alltid det blir et problem. Dette er fordi ikke alle instruksjoners FO- og WO-trinn skal utføres. Hvis det oppstår en konflikt vil den siste av instruksjonene vente litt før den får fortsette. Pipeline får på en måte "hikke", og stopper opp noen klokkesykluser før det fortsetter som før. Det oppstår altså en liten forsinkelse. En slik ressurskonflikt er et eksempel på noe vi kalles en hasard Hasarder Når det inntreffer en situasjon der prosessoren må ta spesielle hensyn for å få til rett utføring, kaller vi det en hasard 1. Det er vanlig å dele opp hasardene i tre ulike kategorier: 1. Flere instruksjoner trenger samme ressurs samtidig. Dette kalles strukturell hasard. 1 Dette har ikke noe med et sjansespill å gjøre. Det er en fornorsket skrivemåte på det engelske ordet hazard som kan ha flere betydninger, for eksempel som i hazard control (risikostyring). Betydningen i vårt tilfelle henspiller på en situasjon der det må tas spesielle grep for å få det hele til å fungere. Forfatter og Stiftelsen TISIP side 8 av 17

9 2. En instruksjon trenger resultatet fra en annen instruksjon som ikke har resultatet klart enda. Dette kalles data-hasard. 3. Hopp i programmet gjør at vi ikke vet hvilke instruksjoner som skal utføres før hoppinstruksjonen er utført. Dette kalles kontroll-hasard. Vi skal se nærmere på hver av disse typene. Slike problemer gjør at en CPU med pipeline får en del merarbeid på hvert trinn. Da kan hver instruksjon - isolert sett - ta lengre tid på en CPU med pipeline enn en tilsvarende CPU uten pipeline. Dessuten trengs det elekronikk som oppdager og håndterer konflikter og sikrer riktig utføring. Denne elektronikken blir fort svært komplisert; mer komplisert enn trinnene som skal kontrolleres. Til tross for ulempene benytter likevel moderne CPUer pipeline Strukturell hasard En strukturell hasard oppstår når flere instruksjoner får bruk for samme ressurs samtidig. Med instruksjonsutføringen vi så på i Figur 2 kan en slik strukturell hasard lett oppstå mellom instruksjon 1 sitt WO-trinn og instruksjon 3 sitt FO-trinn. Hvis begge trinn vil aksessere minnet, settes det inn ventetrinn under utføringen av den siste instruksjonen for å sikre korrekt utføring. Ventetrinnet har ikke noen annen funksjon enn å gi en pause slik at ressurskonflikten blir avklart. Slike pauser forplanter seg videre til senere instruksjoner. Det oppstår en liten forsinkelse, og det blir ikke lenger ferdigstilt en instruksjon pr klokkeperiode. Da får vi utføringstakten som er vist i Figur 3. Slike kollisjoner skjer ikke så ofte som man kanskje skulle tro. Som vi allerede har sett, så er det slettes ikke alle instruksjoner som skal lese data eller skrive data i minnet. Instruksjon 1 Instruksjon 2 Instruksjon 3 Instruksjon 4 nop nop Instruksjon 5 Instruksjon 6 nop tid Figur 3 Strukturell hasard. Instruksjon 1 (WO) og 3 (FO) vil aksessere minnet samtidig, og vi har et tilfelle av strukturell aksess. Den siste instruksjonen må vente. Det legges inn et ventetrinn (nop, som betyr no operation) i instruksjon 3. Ventetrinnet forplanter seg videre til påfølgende instruksjoner Data-hasard Dersom en instruksjon lager et resultat som en annen instruksjon skal bruke, sier man at de to instruksjonene er dataavhengige. En forutsetning for at to instruksjoner kan utføres parallelt, er at den første instruksjonen faktisk er ferdig med å beregne resultatet før instruksjoner tar det i bruk. Forfatter og Stiftelsen TISIP side 9 av 17

10 Dersom dataavhengige instruksjoner er under utføring samtidig oppstår en data-hasard, og prosessoren må ta nødvendige grep for å sikre rett utføring. Det er to måter å løse dette på: 1. Unngå situasjonen ved å flytte en annen helt uavhengig instruksjon mellom de avhengige. Gode kompilatorer (og gode assemblyprogrammerere) vil forsøke å unngå kode der data-hasard oppstår. 2. I en pipeline vil det legges inn ventetrinn på samme måte som ved strukturell hasard. Ventetrinnene forplanter seg alltid videre. Igjen får vi en forsinkelse, og vi får ikke lenger ferdig en instruksjon pr klokkeperiode. Et viktig spørsmål er selvsagt: Når blir et resultat tilgjengelig for andre instruksjoner? Det er vanlig at et resultat som legges i et register er tilgjengelig etter at utføringstrinnet er ferdig (EI-trinnet i vår sekstrinns pipeline). Et resultat som skrives til minnet er ikke tilgjengelig fra minnet før trinnet som skriver til minnet er utført (det vil si WO-trinnet i vår sekstrinns pipeline) Kontrollhasard En pipeline er mest effektiv ved en konstant flyt av instruksjoner. Ved hopp stopper denne konstante flyten opp siden adressen til neste instruksjon ikke beregnes før hoppinstruksjonen er utført. En hopp-instruksjon vil nemlig gå igjennom samlebåndet på nøyaktig samme måte som enhver annen instruksjon. Når den er ferdig med tolke-trinnet (DI), så vet prosessoren at det er en hopp-instruksjon, men den vet fortsatt ikke hvorvidt det faktisk skal hoppes. Det vet man først etter at instruksjonen er utført (EI-trinnet). Men, som det fremgår av Figur 2, da har vi allerede begynt å jobbe med fire nye instruksjoner. Dersom det viser seg at hoppet virkelig skal utføres, så har prosessoren jobbet forgjeves med disse instruksjonene. Da har det oppstått det vi kaller en kontroll-hasard. Samlebåndet må tømmes. Vi må begynne på nytt fra en ny plass i minnet, og også ved denne type hasard oppstår det en pause i utføringen. Å tømme samlebåndet på denne måten kalles pipe flush på engelsk, og er fremstilt i Figur 4. Instruksjon 1 FI DI FO EI WO Betinget hopp til instruksjon 8 Instruksjon 2 FI DI FO Instruksjon 3 FI DI Pipeflush Instruksjon 4 FI Instruksjon 8 FI DI CO FO EI WO Instruksjon 9 FI DI CO FO EI WO Figur 4 Pipeflush. Instruksjon 1 er et betinget hopp til instruksjon 8. I dette tilfellet viser det seg at hoppet skal utføres, men innen prosessoren vet dette har flere instruksjoner som ikke skal utføres kommet inn i pipeline. Da tømmes pipeline, noe som kalles pipeflush. Det er først etter EI-trinnet til instruksjon 1 at CPU vet at det skal hoppes. Forfatter og Stiftelsen TISIP side 10 av 17

11 Pipeline på Intel x86 Som sagt fungerer en pipeline best ved en jevn strøm av instruksjoner. x86 baserer seg på en arkitektur som aldri var tenkt brukt hverken i forbindelse med cache eller pipeline. Derfor er noen av løsningene som er brukt på denne prosessoren mer komplisert enn på mer moderne arkitekturer. En av de tingene som kompliserer prosessoren er at instruksjonssettet inneholder instruksjoner av svært forskjellig lengde. Det brukes instruksjonsformater med lengde på alt fra 1 byte og opp til 16 bytes Å hente en instruksjon kan altså bestå i å hente en byte eller hente inntil et titalls byte. Dette får betydning for hvordan pipeline-mekanismen er implementert Pipeline på Intel prosessoren brukte en fem-trinns pipeline med følgende trinn: Hent (Fetch)- Instruksjoner hentes fra cache eller minne og plasseres i en av to prefetch buffere. Antall instruksjoner som får plass i dette bufferet varierer siden instruksjonslengden varierer. I gjennomsnitt får ca fem instruksjoner plass. Resten av pipeline fòres med instruksjoner fra dette bufferet, og når det begynner å bli tomt hentes nye instruksjoner inn. Dekod trinn 1 (D1) - Den første delen, det vil si inntil tre bytes, av instruksjonen dekodes. Denne delen av instruksjonen inneholder informasjon om opkoden og adresseringsmetoden til operandene. Dekod trinn 2 (D2) - Resten av instruksjonen dekodes og kontrollsignalene til ALUen settes opp. Dessuten beregnes effektiv adresse til operandene hvis disse bruker komplekse adresseringsmetoder. Utfør (EX) - Dette inkluderer ting som ALU-operasjoner og beregning av nye registerverdier. Skriv (WB) - Dette steget trengs ikke for alle instruksjoner, men her oppdateres registre og resultater skrives til cache Pipeline på Intels nyere Pentium-prosessorer På de nyere generasjoner av Pentium-prosessorer har man i størst mulig grad forsøkt å bruke hardlogikk for å få høyst mulig prosesseringshastighet. Dette er gjort ved at instruksjonene brytes ned til et stort antall enkle delinstruksjoner, hvor hver delinstruksjon er så enkel at den kan implementeres i hardlogikk. Disse delinstruksjonene utføres i en pipeline, og siden instruksjonene består av mange delinstruksjoner blir samlebåndet langt; 12 ulike trinn på Pentium III. På Pentium IV ble antall trinn økt ytterligere til ca 20 trinn. Da Intel skulle lage etterfølgeren til Pentium IV valgte de å ikke videreutvikle Pentium IV. Isteden innså de at Pentium III hadde større potensial og valgte å videreutvikle den isteden. Prosessorer som Intel Core2, Core i3, Core i5og Core i7 er derfor en videreutvikling av Pentium III, og har kortere pipelines enn Pentium IV. På lange pipelines blir det selvfølgelig svært viktig å gjette riktig når man skal forutsi et hopp. Forfatter og Stiftelsen TISIP side 11 av 17

12 1.6. Superskalar arkitektur Superskalare prosessorer har flere parallelle pipelines. Antall slike parallelle pipelines kalles prosessorens grad av superskalar. En superskalar prosessor av grad 2 har derfor to parallelle pipelines. Det betyr at instruksjonene i et program kan utføres parvis slik det er vist i Figur 5. Dette krever selvsagt at de to instruksjonene er uavhengige. Det er ikke mulig med parallell utføring dersom den ene instruksjonene bruker resultatet av den andre. Prosessoren inneholder kretser som tolker instruksjonene for å sjekke om de de er uavhengige. Dette kompliserer prosessoren ytterligere. Vi begynner vel å forstå hvorfor det trengs millioner av komponenter integrert på en prosessor. Ordinær pipeline Superskalar prosessor Figur 5. Sammenligning av ordinær og superskalar pipeline, samt superskalar arkitektur. tid Særlig i instruksjons-sekvenser der det ikke er noen hopp-instruksjoner kan superskalare teknikker gi en betydelig hastighetsforbedring: Siden alle instruksjonene i sekvensen ubetinget skal utføres, er det ingen risiko for å gjette feil. I superskalare arkitekturer henter prosessoren to (eller flere) sekvensielle instruksjoner i hver klokkesyklus, og forer dem inn i hver sin pipeline. Dette kan føre til nye problemer: Hvis den andre instruksjonen skal bruke resultatet fra den første vil den måtte stå og vente til den første er ferdig utført; de kan ikke fullføres i parallell. Kompilatorer som optimaliserer for superskalare arkitekturer vil derfor sørge for å bytte om på rekkefølgen av instruksjonene slik at man i størst mulig grad unngår at en instruksjon er avhengig av resultater produsert av den foregående. Dette er til dels motsatt av hva som var god skole tidligere. Da var det riktig å samle instruksjoner som var avhengige av hverandre slik at mellomresultater kunne bli liggende i registre uten å måtte kopieres ut til minne. For å oppnå maksimal hastighet er det derfor essensielt at kompilatoren er klar over forskjellen, selv om instruksjonskodene er de samme. Forfatter og Stiftelsen TISIP side 12 av 17

13 1.7. Dynamisk utføring Dynamisk utføring betyr altså at prosessoren fortsetter med påfølgende instruksjoner dersom en instruksjon må vente på primærminnet. Dersom et program skal virke etter hensikten må imidlertid sluttresultatet av hver instruksjon komme i nøyaktig samme rekkefølge som instruksjonene er programmert (ellers virker jo ikke programmet etter hensikten). Dette er realisert ved at instruksjoner som "slippes frem i køen" legger sine resultater i et foreløpig buffer. Resultatene frigis fra dette bufferet i strengt samme rekkefølge som instruksjonene er programmert. Nå blir prosessoren virkelig komplisert fordi vi trenger enda flere mekanismer som skal sikre riktig utføring. De nyeste prosessorene fra Intel - Pentrium Pro og Pentium II og III - har dynamisk utføring. Viktige begrep i forbindelse med dynamisk utføring er: Dataflytanalyse er nødvendig for å bestemme i hvilken rekkefølge instruksjonene kan startes. Spekulativ utføring gjør det mulig å påbegynne arbeidet med senere instruksjoner Gode algoritmer for gjetting ved hopp er viktig fordi feil i gjettingen gir store forsinkelser Gjetting ved hopp (branch prediction) Både ved bruk av pipeline, og spesielt ved dynamisk utføring er det viktig å unngå at vi jobber med feil instruksjoner. Dette er en utfordring ved betingede hopp. Moderne prosessorer gjetter hvorvidt hoppet skal gjennomføres eller ikke. Den starter på utføringen fra den plassen den gjetter. Da opplever prosessoren jevn flyt av instruksjoner de gangene det gjettes riktig. Gjettingen kan gjøres på flere måter, og vi skiller mellom statisk forutsigelse og dynamisk forutsigelse. Ved statisk forutsigelse gjetter man likt hver gang man kommer til et betinget hopp. Da blir mulighetene: Gjett at hoppbetingelsen alltid slår til. Gjett at hoppbetingelsen aldri slår til. Gjett forskjellig for de forskjellige instruksjoner, men alltid likt for en og samme instruksjon. Det sier seg selv at den som programmerer et slikt system kan bidra til effektiviteten ved å programmere fornuftig. Blant annet ved å utforme koden slik at dersom man har en betingelse man vet bare sjelden slår til så koder man slik at gjetningen blir riktig de fleste gangene. Ved dynamisk forutsigelse lager man en automatisk mekanisme som tar vare på hopphistorien til programmet, og på bakgrunn av dette forsøker man å gjette seg frem til utfallet av neste betingede hoppinstruksjon. Det er utført et betydelig forskningsarbeid for å lage gode algoritmer for gjetting ved hopp Flerkjerne-prosessorer I kappløpet om høy ytelse har klokkefrekvensen vært en nøkkelstørrelse. Mange husker sikkert kappløpet mellom Intel og AMD om den første x86-kompatible GHz-prosessoren. Etter at den såkalte GHz-barrieren ble brutt har oppmerksomheten blitt flyttet litt bort i fra det ensidige fokuset på klokkefrekvens. Det er bra. Som vi har sett blir ytelsen bestemt av langt Forfatter og Stiftelsen TISIP side 13 av 17

14 mer enn bare klokkefrekvens. De siste årene har ikke klokkefrekvensen økt vesentlig, men antall transistorer i prosessoren har fortsatt å øke. Vi har nå over en millliard transistorer på en brikke. Spørsmålet er hva alle disse nye transistorene skal brukes til. Gjennom mange år har de blitt brukt til to ting: - Større cache for å motvirke den økende forskjellen mellom minnets ytelse og prosessorens krav. - Nye mekanismer for å utføre flere instruksjoner i parallell på instruksjonsnivå. Pipeline, superskalaritet og dynamisk utføring er eksempler på dette. La oss se kort på disse. Cache Siden cache skal motvirke forskjellen mellom prosessorens krav til tilgangstid og primærminnets aksesstid, er det ikke overraskende at når forskjellen mellom disse størrelsene har økt så har cache-mekanismen utviklet seg. De første cachene var enkle en-nivå cacher. Etter hvert ble det vanlig med to nivåer: en L1-cache som var innebygd og en større ekstern L2-cache. Etter hvert som det ble mulig å integrere flere transistorer ble det vanlig å plassere L2-cachen på samme krets som L1-cache og prosessor-kjernen. Vi ser nå en trend til at vi i tillegg får en enda større, L3-cache. Parallellitet på instruksjonsnivå Vi har sett på de viktigste teknikkene for å kjøre instruksjoner i parallell. Legg merke til at med pipeline, superskalaritet og dynamisk utføring styres fortsatt prosessoren av èn kontrollenhet. Kontrollenheten har blitt vesentlig mer avansert for hver ny mekanisme som har kommet. Det gjør at en stadig større andel av transistorene blir brukt til administrasjon og styring av de prosesserende (og dermed produktive) delene av prosessoren Så hva nå? Vi har nådd en grense for hvor langt vi kan drive parallellitet på instruksjonsnivå. Med dynamisk utførelse jobber prosessoren kanskje instruksjoner frem i tid. Å øke dette ytterligere vil sette alt for store krav til dataflytanalysen. Vi må derfor finne en annen måte å benytte flere transistorer på. Dette er grunnen til at det de siste årene har blitt introdusert prosessorer med flere såkalte kjerner. Hver kjerne jobber uavhengig av de andre kjernene (i hvert fall sett fra instruksjons-nivå) Flere kjerner På prosessorer med flere kjerner utgjør hver kjerne en egen prosessor med egen kontrollenhet, egne superskalare pipelines, egen L1- cache og alt som hører til. Kjernene kan enten dele på en felles L2 cache, eller hver kjerne kan ha sin egen L2-cache. Det viktige poenget er imidlertid at alle kjerner og cacher befinner seg på en eneste integrert krets. Kretsen har bare ett sett med forbindelseslinjer, så alle kjerner og cacher må dele på bruken av disse. To kjerner (dual-core) eller fire kjerner (quad-core) er mest vanlig. For mer spesielle anvendelser finnes det imidlertid eksempler på prosessorer med langt flere kjerner. Forfatter og Stiftelsen TISIP side 14 av 17

15 Det finnes maskiner med flere individuelle prosessor-kretser (flerprosessor-maskiner, se kap 1.9). En viktig fordel med flerkjerneprosessorer sammenlignet med en maskin med flere individuelle prosessorer, er at kontrollen av at alle cachene er konsistente blir enklere når de ligger i samme krets. Det er nemlig et problem at data fra primærminnet kan være kopiert inn i mange cacher, og alle kjerner og prosessorer kan i prinsippet endre disse data. Elektronikken som sikrer at cachene er entydig oppdatert kalles koherens-kontroll, og denne blir langt enklere i en flerkjernemaskin enn i en maskin med mange prosessor-kretser. CPU-kjerne CPU-kjerne CPU-kjerne CPU-kjerne L1-cache L1-cache L1-cache L1-cache L2- cache L3- cache L2- cache L2- cache a) b) Figur 6 Flerkjerne-prosessor. Moderne prosessorer har flere kjerner, i dette tilfellet to. Cachene kan organiseres på ulike måter. Hver kjerne har alltid sin egen L1 cache. L2 cachen kan være felles for alle kjernene (figur a), eller det kan være en L2-cache for hver kjerne (figur b). På nyere prosessorer finnes gjerne en L3-cache også. L3-cachen er alltid felles for alle kjerner Operativsystemets rolle For å utnytte en flerkjerne-prosessor effektivt går vi bort fra prinsippet om at prosessoren selv skal identifisere instruksjoner som kan kjøres i parallell. Eller rettere sagt: Hver enkelt kjerne virker fortsatt på denne måten, men vi overlater til operativsystemet å fordele oppgaver mellom kjernene. Dette er grunnen til at en maskin med en to-kjerne-prosessor, oppfattes som en to-prosessor-maskin av operativsystemet. Hver kjerne oppfattes altså som en egen prosessor. Vi har sett at ved parallellitet på instruksjonsnivå (f.eks. samlebånd, superskalaritet, dynamisk utføring) har prosessoren selv ansvaret for å identifisere og løse hasarder. Men med en gang vi skal bruke flere kjerner eller flere prosessesor-kretser vil operativsystemet bli ansvarlig for å fordele oppgaver mellom kjernene Systemarkitekturer I leksjonen om systemarkitektur (les den gjerne en gang til) så vi at en del prosessortyper har flyttet minnekontrolleren inn i prosessor-brikken. Det er også et eksempel på hvordan det stadig økende antallet transistorer i en krets kan utnyttes. Moderne prosessorer kan altså inneholde: En eller flere prosessorkjerner. Cache (hver kjerne kan ha en egen L1-krets, og enten hver sin L2 eller en delt L2- cache). I tillegg kan det finnes en felles L3-cache. Minnekontroller som kommuniserer med minnet via minnebussen. Denne bussen kommer i tillegg til en buss for IO (QuickPath Interconnect eller HyperTransport Bus). Forfatter og Stiftelsen TISIP side 15 av 17

16 De nyeste prosessorene, f.eks prosessorer som er basert på arkitekturen med kodenavnet Ivy Bridge fra Intel, har integrerte grafikk-prosessor. Enda en komponent er altså flyttet inn i prosessoren Flerprosessor-maskiner Ved å benytte flere indivuelle prosessor-kretser (der hver prosessor gjerne har flere kjerner) kan man øke ytelsen til en maskin ytterligere. Vi skal se på to ulike metoder for å organisere flerprosessorløsninger, nemlig bruk av flere like prosessor i en og samme maskin (SMP), og bruk av flere datamaskiner som jobber sammen (klynger) SMP Symmetrisk MultiProsessormaskin. Symmetriske MultiProsessor-maskiner (SMP) er maskiner som har flere prosessorer, men der alle prosessorene er likeverdige. Prosessorene kan gjerne være flerkjerne-prosessorer. Figur 7 viser er eksempel på en slik oppbygging. Kjerne L1- cache Kjerne L1- cache Kjerne L1- cache L2- cache L2- cache L2- cache Buss Kontroller IU-utstyr Minne Figur 7 Symmetrisk MultiProsessor (SMP) maskin. Slike maskiner består av to eller flere prosessorer av samme type. Disse jobber mot et felles primærminne og felles IU-utstyr. Symmetriske multiprosessor-systemer er multiprosessor-løsninger med følgende egenskaper: 1. Det er to eller flere prosessorer av samme, eller likeverdige, type. 2. Alle prosessorer kan utføre de samme funksjoner. Det er denne egenskapen som gjør at løsningen har fått navnet symmetrisk. Vi har ikke dedikerte prosessorer for ulike oppgaver. 3. Alle prosessorer deler det samme primærminnet og det samme IU-utstyret. Disse aksesseres via felles busser. 4. Systemet kontrolleres av ett operativsystem. Dette fordeler jobber mellom prosessorene, og sørger for nødvendig synkronisering og kommunikasjon mellom prosessorene. Som det fremgår av siste punkt så må en slik maskin både ha nødvendig maskinvare og et operativsystem som er laget for multiprosessorløsninger. SMP-maskiner er mye brukt. Det Forfatter og Stiftelsen TISIP side 16 av 17

17 kan være alt fra private maskiner og tjenermaskiner med et moderat antall prosessorer, og helt opp til tungregnemaskiner med ti-tusenvis av prosessorkjerner Klynger (cluster) Klynger er en samling standard arbeidsstasjoner som samarbeider om å utføre beregninger. Maskinene kommuniserer over et eget hurtig nettverk, og skal i prinsippet løse hvert sitt delproblem. Sett utenfra, altså fra brukerens ståsted, oppfattes hele klyngen som en eneste maskin. I klynge har som regel en av maskinene oppgaven med å være «front-end». Det er denne maskinen som kommuniserer med omverden. Den mottar oppgaver og returnerer sluttresultater. En klynge kan bestå av alt fra to maskiner til flere hundre, og operativsystemet er spesiallaget for denne type løsning Oppsummering I denne leksjonen har vi sett på de viktigste metodene for å øke ytelsene på moderne prosessorer. Viktige tema har vært pipeline, superskalare teknikker og dynamisk utføring. Vi skal se nærmere på disse teknikkene i øvingen. Forfatter og Stiftelsen TISIP side 17 av 17

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

Institiutt for informatikk og e-læring, NTNU Kontrollenheten Geir Ove Rosvold 4. januar 2016 Opphavsrett: Forfatter og Stiftelsen TISIP Geir Ove Rosvold 4. januar 2016 Opphavsrett: Forfatter og Stiftelsen TISIP Resymé: I denne leksjonen ser vi på kontrollenheten. s funksjon diskuteres, og vi ser på de to måtene en kontrollenhet kan bygges

Detaljer

IN1020. Datamaskinarkitektur

IN1020. Datamaskinarkitektur IN1020 Datamaskinarkitektur Hovedpunkter Von Neumann Arkitektur BUS Pipeline Hazarder Intel Core i7 Omid Mirmotahari 4 Von Neumann Arkitektur John von Neumann publiserte i 1945 en model for datamaskin

Detaljer

Institiutt for informatikk og e-læring, NTNU CPUens deler og virkemåte Geir Ove Rosvold 4. januar 2016 Opphavsrett: Forfatter og Stiftelsen TISIP

Institiutt for informatikk og e-læring, NTNU CPUens deler og virkemåte Geir Ove Rosvold 4. januar 2016 Opphavsrett: Forfatter og Stiftelsen TISIP 4. januar 26 Opphavsrett: Forfatter og Stiftelsen TISIP Resymé: Denne leksjonen beskriver. Vi ser at en instruksjon utføres ved at den brytes ned til mindre og enkle handlinger; såkalte mikrooperasjoner.

Detaljer

Intel Core i7. Omid Mirmotahari 4

Intel Core i7. Omid Mirmotahari 4 INF2270 Pipeline Hovedpunkter Oppsummering av én-sykel implementasjon Forbedring av én-sykel designet Introduksjon til pipelining Oppbygning av datapath med pipelining Intel Core i7 Omid Mirmotahari 4

Detaljer

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

Fakultet for informasjonsteknologi, Oppgave 1 Flervalgsspørsmål ( multiple choice ) 15 % Side 1 av 10 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap Løsningsforslag til

Detaljer

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

Forelesning Forgreningspredikering Kap 4.5 Superskalaritet Kap 4.5 Spekulativ utføring Kap 4.5 TDT4160 Datamaskiner Grunnkurs Forelesning 8.11 Forgreningspredikering Kap 4.5 Superskalaritet Kap 4.5 Spekulativ utføring Kap 4.5 Dagens tema Forgreningspredikering (4.5) Hoppinstruksjoner og samlebånd

Detaljer

Datamaskinens virkemåte

Datamaskinens virkemåte Geir Ove Rosvold 6. januar 26 Opphavsrett: Forfatter og Stiftelsen TISIP Resymé: I denne leksjonen ser vi på den grunnleggende virkemåten til en datamaskin. Vi ser på de forskjellige delene - blant annet

Detaljer

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

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

Detaljer

Intel Core i7. Omid Mirmotahari 4

Intel Core i7. Omid Mirmotahari 4 INF2270 Pipeline Hovedpunkter Oppsummering av én-sykel implementasjon Forbedring av én-sykel designet Introduksjon til pipelining Oppbygning av datapath med pipelining Intel Core i7 Omid Mirmotahari 4

Detaljer

Oppsummering av digitalteknikkdelen

Oppsummering av digitalteknikkdelen Oppsummering av digitalteknikkdelen! Følgende hovedtemaer er gjennomgått! Boolsk Algebra! von Neuman-arkitektur! Oppbygging av CPU! Pipelining! Cache! Virtuelt minne! Interne busser 09.05. INF 1070 1 Boolsk

Detaljer

TDT4160 Datamaskiner Grunnkurs 2008. Gunnar Tufte

TDT4160 Datamaskiner Grunnkurs 2008. Gunnar Tufte 1 TDT4160 Datamaskiner Grunnkurs 2008 Gunnar Tufte 2 Auka yting 3 Auka yting CPU 4 Parallellitet Essensielt for å øke ytelse To typer: 1) Instruksjonsnivåparallellitet Fleire instruksjonar utføres samtidig

Detaljer

Datamaskinens oppbygning

Datamaskinens oppbygning Datamaskinens oppbygning Håkon Tolsby 18.09.2014 Håkon Tolsby 1 Innhold Hovedenheten Hovedkort Prosessor CISC og RISC 18.09.2014 Håkon Tolsby 2 Datamaskinens bestanddeler Hovedenhet Skjerm Tastatur Mus

Detaljer

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

Fakultet for informasjonsteknologi, Oppgave 1 Flervalgsspørsmål ( multiple choice ) 15 % Side 1 av 9 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap Løsningsforslag til eksamen

Detaljer

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

Oppgave 1 Flervalgsspørsmål ( multiple choice ) 15 % Side 2 av 9 Oppgave 1 Flervalgsspørsmål ( multiple choice ) 15 % Denne oppgaven skal besvares på eget svarark sist i oppgavesettet. Dersom du finner flere alternativer som synes å passe, setter du kryss

Detaljer

Fortsetelse Microarchitecture level

Fortsetelse Microarchitecture level 1 Fortsetelse Microarchitecture level IJVM 2 Implementasjon Detaljar for å utføre instruksjonssettet Ein gitt implementasjon har ein gitt yting Endre ytinga Teknologi (prosess) Transistor implementasjon

Detaljer

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

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

Detaljer

TDT4160 OG IT2201 DATAMASKINER GRUNNKURS EKSAMEN

TDT4160 OG IT2201 DATAMASKINER GRUNNKURS EKSAMEN Norwegian University of Science and Technology Faculty of Information Technology, Mathematics and Electrical Engineering The Department of Computer and Information Science TDT4160 OG IT2201 DATAMASKINER

Detaljer

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte 1 TDT4160 Datamaskiner Grunnkurs 2011 Gunnar Tufte 2 Kapittel 4: Microarchitecture level 3 Ny Arkitektur: IJVM 4 Instruksjonsett Stack basert 5 Mikroprogramm 0001010010000000000000111 001111000000010000001000

Detaljer

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

4/5 store parallelle maskiner /4 felles hukommelse in 147, våren 1999 parallelle datamaskiner 1. når tema pensum. Parallellitet når tema pensum 27/4 felles hukommelse 9.2 9.3 4/5 store parallelle maskiner 9.4 9.6 in 147, våren 1999 parallelle datamaskiner 1 Tema for denne forelesningen: kraftigere enn én prosessor

Detaljer

TDT4160 Datamaskiner Grunnkurs 2011. Gunnar Tufte

TDT4160 Datamaskiner Grunnkurs 2011. Gunnar Tufte 1 TDT4160 Datamaskiner Grunnkurs 2011 Gunnar Tufte 2 Bussar og busshierarki Tape Optical Bus 3 CPU og buss komunikasjon Tape Optical Bus 4 Buss linjer Bus Adr/data Bit 0 Adr/data Bit 1 Adr/data Bit 2 Adr/data

Detaljer

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

AVSLUTTENDE EKSAMEN I. TDT4160 Datamaskiner Grunnkurs. Torsdag 29. November 2007 Kl. 09.00 13.00 Side 1 av 11 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap AVSLUTTENDE EKSAMEN

Detaljer

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

Dagens temaer. Mer om adresseringsmodi. Indeksert adressering med offset og auto-inkrement eller dekrement. Register-indirekte adressering agens temaer Mer om adresseringsmodi LC-2 har fem adresseringmodi : Umiddelbar, Register, irekte, Indirekte og Base+Offset. agens emner er hentet fra nglander kapittel 10 (side 279-318 ) Mer om adresseringsmodi

Detaljer

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

Dagens temaer. Dagens emner er hentet fra Englander kapittel 11 (side ) Repetisjon av viktige emner i CPU-design. Dagens temaer Dagens emner er hentet fra Englander kapittel 11 (side 327-344 ) Repetisjon av viktige emner i CPU-design. Flere teknikker for å øke hastigheten Cache 03.10.03 INF 103 1 Hvordan øke hastigheten

Detaljer

Dagens tema. Flere teknikker for å øke hastigheten

Dagens tema. Flere teknikker for å øke hastigheten Dagens tema Flere teknikker for å øke hastigheten Cache-hukommelse del 1 (fra kapittel 6.5 i Computer Organisation and Architecture ) Hvorfor cache Grunnleggende virkemåte Direkte-avbildet cache Cache-arkitekturer

Detaljer

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

EKSAMENSOPPGAVE I FAG TDT4160 DATAMASKINER GRUNNKURS. D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt. Side 1 av 8 Norges teknisk-naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap EKSAMENSOPPGAVE I FAG TDT4160 DATAMASKINER GRUNNKURS Faglig kontakt under eksamen: Jon Olav

Detaljer

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

hvor mye hurtigminne (RAM) CPU en kan nyttiggjøre seg av. mens bit ene betraktet under ett kalles vanligvis et ord. Oppbygging av RAM Sentrale begreper er adresserbarhet og adresserom Adresserbarhet: Antall bit som prosessoren kan tak samtidig i én operasjon (lese- eller skrive-operasjon). 9.. INF Antall bit som kan

Detaljer

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

Dagens temaer. tema er hentet fra kapittel 4.3 og 4.4 om pipelining. til neste ukes forelesning (hvis tid) INF ! Mikrokode. ! 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

Detaljer

TDT4160 AUGUST, 2008, 09:00 13:00

TDT4160 AUGUST, 2008, 09:00 13:00 Norwegian University of Science and Technology Faculty of Information Technology, Mathematics and Electrical Engineering The Department of Computer and Information Science TDT4160 DATAMASKINER GRUNNKURS

Detaljer

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Side 1 av 12 Faglig kontakt under eksamen: Magnus Jahre (952 22 309) EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

Detaljer

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

Dagens temaer. Dagens emner er hentet fra Englander kapittel 10 (side ) Mer om adresseringsmodi. RISC og CISC-prosessorer. 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

Detaljer

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

Dagems temaer INF ! Fra kapittel 4 i Computer Organisation and Architecture. ! Kort om hurtigminne (RAM) Dagems temaer! ra kapittel 4 i Computer Organisation and Architecture! Kort om hurtigminne (RAM)! Organisering av CPU: von Neuman-modellen! Register Transfer Language (RTL)! Instruksjonseksekvering! Pipelining

Detaljer

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

Kapittel 6. Høynivå møter lavnivå Fra C til assembly Fra assembly til maskinkode Linking og lasting Kapittel 6 Høynivå møter lavnivå Fra C til assembly Fra assembly til maskinkode Linking og lasting CISC eller RISC Komplekst eller enkelt. Hva er raskest? Pipelining Smart bruk av registre Kode for lavt

Detaljer

Generelt om operativsystemer

Generelt om operativsystemer Generelt om operativsystemer Operativsystemet: Hva og hvorfor Styring av prosessorer (CPU), elektronikk, nettverk og andre ressurser i en datamaskin er komplisert, detaljert og vanskelig. Maskinvare og

Detaljer

Løsningsforslag eksamen TDT4160 høsten 2005

Løsningsforslag eksamen TDT4160 høsten 2005 Løsningsforslag eksamen TDT4160 høsten 005 NB! Ved en feil er summen av prosentvektene for alle oppgavene 90 % og ikke 100 %. For å korrigere dette, ble alle resultater delt på 0,9. Oppgave 1 Alternativ

Detaljer

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

Dagens tema. Dagens tema er hentet fra kapittel 4.3 og 4.4. Mer om pipelining Ytelse Hasarder. Pipelining i Pentium-arkitekturen Dagens tema Dagens tema er hentet fra kapittel 4.3 og 4.4 Mer om pipelining Ytelse Hasarder Pipelining i Pentium-arkitekturen Mikrokode Hard-wired Mikroprogrammert RISC og CISC Fordeler og ulemper 1/41

Detaljer

Forelesning 1.11. Optimalisering av μark Kap 4.4

Forelesning 1.11. Optimalisering av μark Kap 4.4 TDT4160 Datamaskiner Grunnkurs Forelesning 1.11 Optimalisering av μark Kap 4.4 Dagens tema Optimalisering av μark (4.4) Instruction Fetch Unit Mic-2 Samlebånd Mic-3 Instruksjonskø Mic-4 Optimalisering

Detaljer

EKSAMENSOPPGAVE, INF-2200

EKSAMENSOPPGAVE, INF-2200 EKSAMENSOPPGAVE, INF-2200 Eksamen i : INF-2200 Datamaskinarkitektur og organisering Eksamensdato : Mandag 20. februar 2012 Tid : 09:00 13:00 Sted Tillatte hjelpemidler : Aud. max. : Ingen Oppgavesettet

Detaljer

Singletasking OS. Device minne Skjerm minne. Brukerprogram. Brukerdata/heap. Stack. Basis for flerprosess-systemer.

Singletasking OS. Device minne Skjerm minne. Brukerprogram. Brukerdata/heap. Stack. Basis for flerprosess-systemer. -OS i i L1 og L2 og og Basis for flerprosess-systemer. Adresser.. 2 1 0 OS Device minne Skjerm minne Brukerprogram Brukerdata/heap Stack Stack: brukes bl. a. til å lagre adressen som skal returneres til

Detaljer

Forelesning ISA-nivået Kap 5.1

Forelesning ISA-nivået Kap 5.1 TDT4160 Datamaskiner Grunnkurs Forelesning 10.11 ISA-nivået Kap 5.1 Dagens tema Instruksjonssettarkitektur (5.1) Hva er ISA? Bakoverkompatibilitet Hva omfatter ISA? Minnemodeller Registre Instruksjoner

Detaljer

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

Overordnet maskinarkitektur. Maskinarkitektur zoomet inn. I CPU: Kontrollenheten (CU) IT1101 Informatikk basisfag, dobbeltime 11/9 IT1101 Informatikk basisfag, dobbeltime 11/9 Hittil: sett på representasjon av informasjon og manipulering av bits i kretser Idag: hever oss til nivået over og ser på hvordan program kjører i maskinen

Detaljer

TDT4160 Datamaskiner Grunnkurs 2008. Gunnar Tufte

TDT4160 Datamaskiner Grunnkurs 2008. Gunnar Tufte 1 TDT4160 Datamaskiner Grunnkurs 2008 Gunnar Tufte 2 Dagens forelesing Kapittel 1 Datamaskinsystem Kapittel 2 start 3 Gunnar Fakta Datamaskingruppa Biologisk inspirerte system: Unconvential Computing Machines

Detaljer

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

Innhold. Introduksjon til parallelle datamaskiner. Ulike typer parallelle arkitekturer. Prinsipper for synkronisering av felles hukommelse Innhold Introduksjon til parallelle datamaskiner. Ulike typer parallelle arkitekturer Prinsipper for synkronisering av felles hukommelse Multiprosessorer koblet sammen av én buss 02.05 2001 Parallelle

Detaljer

P1 P2 P3 P1 P2 P3 P1 P2. OS gjør Contex Switch fra P1 til P2

P1 P2 P3 P1 P2 P3 P1 P2. OS gjør Contex Switch fra P1 til P2 i, intensive i og Når OS switcher fra prosess P1 til prosess P2 utføres en såkalt Contex (kontekst svitsj). 10 30 50 70 P1 P2 P3 P1 P2 P3 P1 P2 OS gjør Contex fra P1 til P2 tid/ms bruk Figure: Prosessene

Detaljer

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

AVSLUTTENDE EKSAMEN I. TDT4160 Datamaskiner Grunnkurs Løsningsforslag. Torsdag 29. November 2007 Kl. 09.00 13.00 Side 1 av 13 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap AVSLUTTENDE EKSAMEN

Detaljer

Oppgave 1 - Linux kommandolinje (%)

Oppgave 1 - Linux kommandolinje (%) Løsningsforslag Eksamen høst 2017 Operativsystemer Oppgave 1 - Linux kommandolinje (%) a) pwd b) ps Oppgave 2 - Bash-scripting (%) a) ping -i 5 www.hin.no b) ping -c 1 www.hin.no ping -c 1 -t 1 www.hin.no

Detaljer

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

tema er hentet fra kapittel 4.3 og 4.4 om pipelining Mikroprogrammert Dagens temaer Hard-wired Mikrokode Hasarder Ytelse Dagens temaer 1 Dagens Mer tema er hentet fra kapittel 4.3 og 4.4 om pipelining Ytelse Pipelining Hasarder i Pentium-arkitekturen Mikrokode Hard-wired RISC Mikroprogrammert og CISC Fordeler og ulemper

Detaljer

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

! Sentrale begreper er adresserbarhet og adresserom. ! Adresserbarhet: Antall bit som prosessoren kan tak samtidig i én operasjon agems temaer Oppbygging av RAM! ra kapittel i Computer Organisation and Architecture! Kort om hurtigminne (RAM)! Organisering av CPU: von Neuman-modellen! Register Transfer Language (RTL)! Instruksjonseksekvering!

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring Eksamensdato: 22. mai 2002 Varighet: Fagnummer: Fagnavn: 4 timer LO245D Datateknikk Klasse(r): 1D FU Vekttall: 3 Faglærer(e): Geir Maribu

Detaljer

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

Dagens temaer. Kort repetisjon. Mer om cache (1) Mer om cache (2) Read hit. Read miss. Write hit. Hurtig minne. Cache Dagens temaer Dagens emner er hentet fra Englander kapittel side 338-35 (gammel utgave). Mer om design av cache. Kort repetisjon er en spesiell type rask hukommelse som inneholder et subsett av det som

Detaljer

Forelesning Instruksjonstyper Kap 5.5

Forelesning Instruksjonstyper Kap 5.5 TDT4160 Datamaskiner Grunnkurs Forelesning 22.11 Instruksjonstyper Kap 5.5 Dagens tema Instruksjonstyper (5.5) Datatransport Datamanipulering Betingede hoppinstruksjoner Prosedyrekall Løkker I/O Eksempler

Detaljer

Eksamen INF2270 våren 2018

Eksamen INF2270 våren 2018 Generell informasjon Eksamen INF2270 våren 2018 Dette oppgavesettet består av 14 oppgaver som kan løses uavhengig av hverandre. Dersom du synes noe i oppgaveteksten er uklart, må du gjøre dine egne forutsetninger;

Detaljer

Del 1 Setup - BIOS Oppgaver: 1. Hva slags CPU har maskinen? Beskriv de tekniske egenskapene ved CPU en.

Del 1 Setup - BIOS Oppgaver: 1. Hva slags CPU har maskinen? Beskriv de tekniske egenskapene ved CPU en. Laboppgaver, GrIT - gruppe 9. Del 1 Setup - BIOS Oppgaver: 1. Hva slags CPU har maskinen? Beskriv de tekniske egenskapene ved CPU en. Intel(R) Pentium(R) D CPU 3.00GHz Den har en dual core ( som betyr

Detaljer

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

SIE 4005, 9/10 (4. Forelesn.) SIE 4005, 9/10 (4. Forelesn.) Tredje forelesning: 8.1 The control unit 8.2 Algorithmic state machines 8.3 Design example: Binary multiplier 8.4 Hardwired Control Fjerde forelesning: litt repetisjon 8.4

Detaljer

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

Prosessoren. Bakgrunnen Innhold LMC. Assemblerkode Oppsummering instruksjonene [Englander kap 6] Hva inneholder den? Hvordan utføres instruksjonene? Prosessoren Bakgrunnen Innhold LMC Hva inneholder den? Hvordan utføres instruksjonene? Assemblerkode Oppsummering instruksjonene [Englander kap 6] Lagdelingen av en datamaskin Internett Lokalnett (LAN)

Detaljer

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

Innhold. 2 Kompilatorer. 3 Datamaskiner og tallsystemer. 4 Oppsummering. 1 Skjerm (monitor) 2 Hovedkort (motherboard) 3 Prosessor (CPU) 2 Innhold 1 Datamaskiner Prosessoren Primærminnet (RAM) Sekundærminne, cache og lagerhierarki Datamaskiner Matlab Parallell Jørn Amundsen Institutt for Datateknikk og Informasjonsvitenskap 2010-08-31 2

Detaljer

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

Dagens temaer. Architecture INF ! Dagens temaer hentes fra kapittel 3 i Computer Organisation and Dagens temaer! Dagens temaer hentes fra kapittel 3 i Computer Organisation and Architecture! Enkoder/demultiplekser (avslutte fra forrige gang)! Kort repetisjon 2-komplements form! Binær addisjon/subtraksjon!

Detaljer

2. Hvor mye Internminne har den? Svar: 2GB

2. Hvor mye Internminne har den? Svar: 2GB Del 1 Setup - BIOS I setup skal dere finne ut: 1. Hva slags CPU har maskinen? Beskriv de tekniske egenskapene ved CPU en. Intel Pentium D Processor clock speed: 3GHz Processor bus speed: 800 MHz Processor

Detaljer

Maskinvaredelen av INF 103: oversikt og innhold (1)

Maskinvaredelen av INF 103: oversikt og innhold (1) Maskinvaredelen av INF 3: oversikt og innhold () Boolsk algebra: Regning med og, og AND, OR og NOT Analyse og design av logiske kretser: AND, OR og NOT som byggeblokker Hukommelse og sekvensiell logikk:

Detaljer

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

! Ytelsen til I/O- systemer avhenger av flere faktorer: ! De to viktigste parametrene for ytelse til I/O er: Dagens temaer! Ulike kategorier input/output! Programmert! Avbruddstyrt! med polling.! Direct Memory Access (DMA)! Asynkrone vs synkrone busser! Med! Fordi! -enheter menes de enheter og mekanismer som

Detaljer

Hvorfor lære om maskinvare*?

Hvorfor lære om maskinvare*? Litt om maskinvare Hvorfor lære om maskinvare*? Hovedoppgaven til et OS er å styre maskinvare Må ha grunnleggende kjennskap til maskinvare for å forstå hvordan OS fungerer Skal bare se på grunnleggende

Detaljer

TDT4160 Datamaskiner Grunnkurs 2008. Gunnar Tufte

TDT4160 Datamaskiner Grunnkurs 2008. Gunnar Tufte 1 TDT4160 Datamaskiner Grunnkurs 2008 Gunnar Tufte 2 I dag Kva er inni 8051, P4 og UltraSparc Digital logic level (start kapitel 3) VIKTIG MELDING Alle som har brukt NTNU-passord for AoC pålogging må skifte

Detaljer

TDT4160 DATAMASKINER GRUNNKURS EKSAMEN

TDT4160 DATAMASKINER GRUNNKURS EKSAMEN Norwegian University of Science and Technology Faculty of Information Technology, Mathematics and Electrical Engineering The Department of Computer and Information Science TDT4160 DATAMASKINER GRUNNKURS

Detaljer

Kompleksitetsanalyse Helge Hafting 25.1.2005 Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget LO117D Algoritmiske metoder

Kompleksitetsanalyse Helge Hafting 25.1.2005 Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget LO117D Algoritmiske metoder Helge Hafting 25.1.2005 Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget LO117D Algoritmiske metoder Innhold 1 1 1.1 Hva er en algoritme?............................... 1 1.2

Detaljer

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte 1 TDT4160 Datamaskiner Grunnkurs 2011 Gunnar Tufte 2 Kapittel 4: Microarchitecture level 3 Auka yting IJVM 4 IJVM: MicrArch vs Instruction Set Architecture Instruksjonsset: Minnemodell: MIC 1 MIC 2 ISA

Detaljer

Minnehåndtering i operativsystemer

Minnehåndtering i operativsystemer Minnehåndtering i operativsystemer Minnehåndtering? Minne er en begrenset ressurs i datamaskinen Tilgjengelig minne må fordeles til prosessene som OS-et håndterer, på en korrekt og rettferdig måte Minnet

Detaljer

Vi anbefaler at du setter deg litt inn i maskinen på forhånd. Det er en DELL Optiplex 620.

Vi anbefaler at du setter deg litt inn i maskinen på forhånd. Det er en DELL Optiplex 620. Oppgave lab Vi anbefaler at du setter deg litt inn i maskinen på forhånd. Det er en DELL Optiplex 620. Søk etter denne maskinen på nettet. Alle oppgavene skal dokumenteres på din studieweb med tekst og

Detaljer

Kapittel 4: Microarchitecture level

Kapittel 4: Microarchitecture level 1 Kapittel 4: Microarchitecture level 2 Kapittel 4: Microarchitecture level 3 Kva er og Kva gjer Realisera Instruction Level Architecture (ISA) 4 Nivå 2: Instruksjonssetarkitektur (ISA) Instruksjonssettark.

Detaljer

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

Dagens temaer. Cache (repetisjon) Cache (repetisjon) Cache (repetisjon) Dagens temaer Cache (repetisjon) Mer om cache-hukommelse (kapittel 6.5 i Computer Organisation and Architecture ) Typer, bruksområder og oppbygging ROM Typer, bruksområder og oppbygging Hukommelsesbusser

Detaljer

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Side 1 av 9 NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Faglig kontakt under eksamen: Jon Olav Hauglid, Tlf 93440 Institutt for datateknikk og informasjonsvitenskap,

Detaljer

Del1: Setup: BIOS. 2. Hvor mye Internminne har den? 3GB DDR2

Del1: Setup: BIOS. 2. Hvor mye Internminne har den? 3GB DDR2 Del1: Setup: BIOS 1. Hva slags CPU har maskinen? Beskriv de tekniske egenskapene ved CPU en. CPUen er en Intel Pentium D, og har følgende tekniske egenskaper: Clock-speed = 3GHz Bus-speed = 800MHz ID =

Detaljer

TDT4258 Eksamen vår 2013

TDT4258 Eksamen vår 2013 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Side 1 av 8 TDT4258 Eksamen vår 2013 Løsningsforslag Oppgave 1 Flervalgsoppgave (16 poeng) Du får 2 poeng

Detaljer

Forelesning 15.11. Datatyper Kap 5.2 Instruksjonsformat Kap 5.3 Flyttall App B

Forelesning 15.11. Datatyper Kap 5.2 Instruksjonsformat Kap 5.3 Flyttall App B TDT4160 Datamaskiner Grunnkurs Forelesning 15.11 Datatyper Kap 5.2 Instruksjonsformat Kap 5.3 Flyttall App B Dagens tema Datatyper (5.2) Heltall Ikke-numeriske datatyper Instruksjonsformat (5.3) Antall

Detaljer

TDT DESEMBER, 2009, 09:00 13:00

TDT DESEMBER, 2009, 09:00 13:00 Norwegian University of Science and Technology Faculty of Information Technology, Mathematics and Electrical Engineering The Department of Computer and Information Science TDT4160 DATAMASKINER GRUNNKURS

Detaljer

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

Dagens temaer. Mer om cache-hukommelse (kapittel 6.5 i Computer Organisation and Architecture ) RAM ROM. Hukommelsesbusser Dagens temaer Mer om cache-hukommelse (kapittel 6.5 i Computer Organisation and Architecture ) RAM Typer, bruksområder og oppbygging ROM Typer, bruksområder og oppbygging Hukommelsesbusser 1 Cache (repetisjon)

Detaljer

Kapittel 9: Følge Instruksjoner Prinsipper for Datamaskinens Virkemåte

Kapittel 9: Følge Instruksjoner Prinsipper for Datamaskinens Virkemåte Kapittel 9: Følge Instruksjoner Prinsipper for Datamaskinens Virkemåte «Fluency with Information Technology» Sixth Edition by Lawrence Snyder Oversatt av Rune Sætre, 2013 bearbeidet av Terje Rydland, 2015

Detaljer

TDT4160 Datamaskiner Grunnkurs 2011. Gunnar Tufte

TDT4160 Datamaskiner Grunnkurs 2011. Gunnar Tufte 1 TDT4160 Datamaskiner Grunnkurs 2011 Gunnar Tufte 2 Dagens forelesing Kven er Eg? Kva gjer eg Kva kan eg TDT4160 2011 Fagstab Førelesningar Øvingar Pensum Kvifor Datamaskiner Grunnkurs Kva kan datamaskiner

Detaljer

Tungregning (HPC) Eirik Thorsnes

Tungregning (HPC) Eirik Thorsnes Tungregning (HPC) Eirik Thorsnes System Engineer Parallab, BCCS Oversikt Hvorfor trenger vi tungregning / HPC? Historie Hvordan løses HPC arkitektur Utfordringer for HPC Ny maskin Cray XT4 HPC innkjøp

Detaljer

Minnehåndtering i operativsystemer

Minnehåndtering i operativsystemer Minnehåndtering i operativsystemer Minnehåndtering? Minne er en begrenset ressurs i datamaskinen Tilgjengelig minne må fordeles til prosessene som OS-et håndterer, på en korrekt og rettferdig måte Minnet

Detaljer

Obligatorisk oppgave 1: Regneklynge

Obligatorisk oppgave 1: Regneklynge Obligatorisk oppgave 1: Regneklynge INF1010 Frist: mandag 6. februar 2017 kl. 12:00 Versjon 1.0 (62f8e31 ) Innhold 1 Innledning 1 2 Regneklyngens bestanddeler 2 3 Datastrukturtegning 3 4 Maksimal teoretisk

Detaljer

INF2270. Input / Output (I/O)

INF2270. Input / Output (I/O) INF2270 Input / Output (I/O) Hovedpunkter Innledning til Input / Output Ulike typer I/O I/O internt i datamaskinen I/O eksternt Omid Mirmotahari 3 Input / Output En datamaskin kommuniserer med omverdenen

Detaljer

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

Dagens temaer. Dagens temaer er hentet fra Englander kapittel 12 side (2. utgave), side (3. utgave) Dagens temaer Dagens temaer er hentet fra Englander kapittel 12 side 354-378 (2. utgave), side 340-362 (3. utgave) Pentium familien med vekt på Pentium II/III/4 Neste generasjon Intel: Itanium IA64 PowerPC

Detaljer

Dataveier og optimalisering. Kapittel 9

Dataveier og optimalisering. Kapittel 9 Dataveier og optimalisering Kapittel 9 Innhold Designkrav Arealbehov kontra hastighet Pipelining For å økte ytelsen til en krets Ressursdeling For å minke arealbehovet Overordnede designkrav: Designet

Detaljer

Internminnet. Håkon Tolsby Håkon Tolsby

Internminnet. Håkon Tolsby Håkon Tolsby Internminnet Håkon Tolsby 26.09.2017 Håkon Tolsby 1 Innhold: Internminnet RAM DRAM - SDRAM - DDR (2, 3, 4, 5) ROM Cache-minne 26.09.2017 Håkon Tolsby 2 Internminnet Minnebrikkene som finnes på hovedkortet.

Detaljer

Scheduling og prosesshåndtering

Scheduling og prosesshåndtering Scheduling og prosesshåndtering Håndtering av prosesser i et OS OS må kontrollere og holde oversikt over alle prosessene som kjører på systemet samtidig Prosesshåndteringen må være: Korrekt Robust Feiltolerant

Detaljer

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

TDT ITGK - Hardware. Kapittel 9: Følge Instruksjoner - Prinsipper for Datamaskinens Virkemåte. Terje Rydland - IDI/NTNU 1 TDT4110 - ITGK - Hardware Kapittel 9: Følge Instruksjoner - Prinsipper for Datamaskinens Virkemåte Terje Rydland - IDI/NTNU 2 Læringsmål Vite om å forstå hvordan prosessoren er oppbygd (5 deler, PC)

Detaljer

Oppsummering Assemblerkode Hopp Multiplikasjon Kode og data Array Oppsummering

Oppsummering Assemblerkode Hopp Multiplikasjon Kode og data Array Oppsummering Uke 34 Uke 35 Uke 36 Uke 37 Uke 38 Uke 39 Uke 40 Uke 41 Uke 42 Uke 43 Uke 44 Uke 45 Uke 46 Uke 47 sikkerhet datanett programvare digitale kretser Prosessoren II Kort oppsummering Løkker og tester Mer om

Detaljer

Eksamensoppgave i TDT4258 Energieffektive Datamaskinsystemer

Eksamensoppgave i TDT4258 Energieffektive Datamaskinsystemer Institutt for Datateknikk og Informasjonsvitenskap Eksamensoppgave i TDT4258 Energieffektive Datamaskinsystemer Faglig kontakt under eksamen: Magnus Jahre Tlf.: 952 22 309 Eksamensdato: 19. Mai 2014 Eksamenstid

Detaljer

Kapittel 9: Følge Instruksjoner Prinsipper for Datamaskinens Virkemåte. Oversatt av Rune Sætre,

Kapittel 9: Følge Instruksjoner Prinsipper for Datamaskinens Virkemåte. Oversatt av Rune Sætre, Kapittel 9: Følge Instruksjoner Prinsipper for Datamaskinens Virkemåte Oversatt av Rune Sætre, 2013-2016 Først: Info om kollokviegrupper Tiltenkt de som henger etter i faget og som mangler forståelse for

Detaljer

Internminnet. Håkon Tolsby. 22.09.2014 Håkon Tolsby

Internminnet. Håkon Tolsby. 22.09.2014 Håkon Tolsby Internminnet Håkon Tolsby 22.09.2014 Håkon Tolsby 1 Innhold: Internminnet RAM DRAM - SDRAM - DDR (2og3) ROM Cache-minne 22.09.2014 Håkon Tolsby 2 Internminnet Minnebrikkene som finnes på hovedkortet. Vi

Detaljer

Pensum Hovedtanker Selvmodifiserende Overflyt Veien videre Eksamen. Oppsummering

Pensum Hovedtanker Selvmodifiserende Overflyt Veien videre Eksamen. Oppsummering Oppsummering Pensum Grovt sett er alt fra forelesningene og øvingsoppgavene pensum. Detaljert oversikt finnes på kurssidene. Hovedtanker fra kurset Litt om eksamen Hvorfor har dere lært dette? Ikke mange

Detaljer

Generelt om operativsystemer

Generelt om operativsystemer Generelt om operativsystemer Hva er problemet? Styring av maskinvare og ressurser tilknyttet en datamaskin er komplisert, detaljert og vanskelig Maskinvare, komponenter og programvare endres og forbedres

Detaljer

TDT4160 Datamaskiner Grunnkurs 2011. Gunnar Tufte

TDT4160 Datamaskiner Grunnkurs 2011. Gunnar Tufte 1 TDT4160 Datamaskiner Grunnkurs 2011 Gunnar Tufte 2 Lager 2.1 2.2 Hard disc Tape storage RAM Module Optical disc Register bank Core memory 3 Ein-prosessor maskin 4 Lager og prosessor overordna Tape Optical

Detaljer

Eksamensoppgave i TDT4258 Energieffektive Datamaskinsystemer

Eksamensoppgave i TDT4258 Energieffektive Datamaskinsystemer Institutt for Datateknikk og Informasjonsvitenskap Eksamensoppgave i TDT4258 Energieffektive Datamaskinsystemer Faglig kontakt under eksamen: Magnus Jahre Tlf.: 952 22 309 Eksamensdato: 19. Mai 2014 Eksamenstid

Detaljer

IN1020. Minnehierarki

IN1020. Minnehierarki IN1020 Minnehierarki Hovedpunkter Bakgrunn Kort repetisjon Motivasjon Teknikker for hastighetsøkning Multiprosessor Økt klokkehastighet Raskere disker Økt hurtigminne Bruksområder Lagringskapasitet Aksesstider

Detaljer

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

Dagens temaer. Praktisk anvendelse: Satellittkommunikasjon. eksempler på bruk av assembler/c/arkitektur teknikker for å øke hastigheten Dagens temaer Praktisk anvendelse: Satellittkommunikasjon! Praktiske! Flere! Cachehukommelse eksempler på bruk av assembler/c/arkitektur teknikker for å øke hastigheten del (fra kapittel 6.5 i Computer

Detaljer

Kapittel 3. The fun starts

Kapittel 3. The fun starts Kapittel 3 The fun starts Introduksjon I dette kapittelet vil jeg prøve å gjøre ting på en annen måte. Siden vi nå skal begynne å faktisk lage noe, tenkte jeg at jeg vil gjøre det slik at kapittelet blir

Detaljer

Setup programmet brukes til å endre konfigurasjonen av BIOS og til å vise resultatene fra

Setup programmet brukes til å endre konfigurasjonen av BIOS og til å vise resultatene fra Laboppgave Del 1 Setup - BIOS Setup programmet brukes til å endre konfigurasjonen av BIOS og til å vise resultatene fra oppstartsprogrammet i BIOS. Vi kan bruke Setup programmet til å kontrollere at maskinen

Detaljer

Lab oppgave gruppe 2 IT-ledelse (Jonas F, Robin PN, Aksel S, Magnus M, Erik I)

Lab oppgave gruppe 2 IT-ledelse (Jonas F, Robin PN, Aksel S, Magnus M, Erik I) Lab oppgave gruppe 2 IT-ledelse (Jonas F, Robin PN, Aksel S, Magnus M, Erik I) DEL 1: I denne oppgavene skulle vi se nærmere på hvordan BIOS fungerte. 1. Hva slags CPU har maskinen? Beskriv de tekniske

Detaljer

INF2270. Input / Output (I/O)

INF2270. Input / Output (I/O) INF2270 Input / Output (I/O) Hovedpunkter Innledning til Input / Output Ulike typer I/O I/O internt i datamaskinen I/O eksternt Omid Mirmotahari 3 Input / Output En datamaskin kommuniserer med omverdenen

Detaljer

INF1400 Kap 0 Digitalteknikk

INF1400 Kap 0 Digitalteknikk INF1400 Kap 0 Digitalteknikk Binære tall (ord): Digitale signaler: Hva betyr digital? Tall som kun er representert ved symbolene 0 og 1 (bit s). Nøyaktighet gitt av antall bit. (avrundingsfeil) Sekvenser

Detaljer