Oppgave 2 Maskinkode (vekt 12%)

Like dokumenter
Innhold. Oppgave 1 Oversettelse (vekt 15%)

Løsningsforslag til eksamen i IN 147(A)

UNIVERSITETET I OSLO

Oppgave 1 Oversettelse (total vekt 20%)

UNIVERSITETET I OSLO

Oppsummering av digitalteknikkdelen

Generell informasjon

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

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

Eksamen INF2270 våren 2018

Løsningsforslag til eksamen i IN147(A)

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Oppgave 1 Oversettelse (vekt 16%)

Intel Core i7. Omid Mirmotahari 4

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

Intel Core i7. Omid Mirmotahari 4

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

Løsningsforslag til eksamen i INF2270

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

INF1400 Kap4rest Kombinatorisk Logikk

IN1020. Datamaskinarkitektur

Forelesning 5. Diverse komponenter/større system

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

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

UNIVERSITETET I OSLO

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

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

Dagens tema. Flere teknikker for å øke hastigheten

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

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

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

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

IN1020. Minnehierarki

Dagens temaer. Dagens temaer hentes fra kapittel 3 i læreboken. Oppbygging av flip-flop er og latcher. Kort om 2-komplements form

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

INF2270. Minnehierarki

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

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

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

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

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP

Notater: INF2270. Veronika Heimsbakk 10. juni 2014

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

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

TDT4160 OG IT2201 DATAMASKINER GRUNNKURS EKSAMEN

Oppsummering digital-teknikk, teknikk, INF2270

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

Pensum Hovedtanker Selvmodifiserende Overflyt Veien videre Eksamen. Oppsummering

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

EKSAMEN I FAG TFE4101 KRETS- OG DIGITALTEKNIKK, LF DIGITALTEKNIKKDELEN AV EKSAMEN (VERSJON 1)

INF2270. Datamaskin Arkitektur

MAX MIN RESET. 7 Data Inn Data Ut. Load

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

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

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

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

UNIVERSITETET I OSLO

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

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

TDT DESEMBER, 2009, 09:00 13:00

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

Det matematisk-naturvitenskapelige fakultet

EKSAMENSOPPGAVE, INF-2200

ITPE2400/DATS2400: Datamaskinarkitektur

Løsningsforslag til eksamen i IN 147(A)

INF1400. Digital teknologi. Joakim Myrvoll 2014

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

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

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

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

Innhold. Virtuelt minne. Paging i mer detalj. Felles rammeverk for hukommelseshierarki Hukommelseshierarki-2 1

Løsningsforslag til eksamen i INF103

INF3430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

Datamaskinens oppbygning

Repetisjon digital-teknikk. teknikk,, INF2270

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

TDT DESEMBER, 2008, 09:00 13:00

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

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

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

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

Emnenavn: Datateknikk. Eksamenstid: 3 timer. Faglærer: Robert Roppestad. består av 5 sider inklusiv denne forsiden, samt 1 vedleggside.

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

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

Datamaskinarkitektur våren 2009

Transkript:

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 47 Program- og maskinvare Eksamensdag: 29. mai 2 Tid for eksamen: 9. 5. Oppgavesettet er på 8 sider. Vedlegg: Ingen Tillatte hjelpemidler: Alle Kontroller at oppgavesettet er komplett før du begynner å besvare spørsmålene. Dette oppgavesettet består av 6 oppgaver som kan løses uavhengig av hverandre. Dersom du synes noe i oppgaveteksten er uklart, må du gjøre dine egne forutsetninger; sørg bare for at disse er tydelig angitt. Når det er snakk om programmering, skal koden skrives slik at den fungerer med kommandoen cc på Ifis SGI-maskiner. Lykke til! Innhold Oversettelse (vekt 8%) side 2 Maskinkode (vekt 2%) side 3 Digitalteknikk (vekt 5%) side 2 4 Instruksjonssett (vekt 2%) side 3 5 Flervalgsoppgave (vekt 5%) side 4 6 Parallellstyring (vekt 2%) side 7 Oppgave Oversettelse (vekt 8%) I figur på neste side er vist C-funksjonen split som splitter en vektor i én del med «små» elementer og én del med «store». Oversett denne funksjonen til MIPS assemblerspråk. Oppgave 2 Maskinkode (vekt 2%) I figur 2 på neste side er vist MIPS-maskinkoden for en liten funksjon. Oversett maskinkoden til assemblerkode. Hva gjør denne funksjonen? Dette er en del av Quicksort-sorteringen, men det trenger du ikke bry deg om. Du kan oversette funksjonen uten å forstå hvorledes den fungerer. (Fortsettes på side 2.)

Eksamen i IN 47, 29. mai 2 Side 2 int split(int a[], int n) { int i, t, big = ; i = (n-)/2; t = a[]; a[] = a[i]; a[i] = t; for (i = ; i < n; ++i) { if (a[i] < a[]) { ++big; t = a[i]; a[i] = a[big]; a[big] = t; } } } t = a[big]; a[big] = a[]; a[] = t; return big; Figur : Funksjonen split 42 hex 8542a hex 52 hex hex 52 hex 3e8 hex hex Figur 2: En liten funksjon i MIPS-maskinkode Oppgave 3 Digitalteknikk (vekt 5%) 3a Flipflop (vekt 7½%) En T-flipflop har følgende karakteristiske likning: Q(t) T Q(t+) Vis hvordan man kan lage en T-flipflop ved hjelp av en D-flipflop og logiske porter. Bruk så få porter som mulig. Hint Se på hvilke input-kombinasjoner som gir Q(t + ) = for T- flipflop-en. (Fortsettes på side 3.)

Eksamen i IN 47, 29. mai 2 Side 3 Figur 3: En datapath shift left 2 M ux M ux 4 add instruction [3 26] InvZero control RegDst Jump Branch MemRead MemtoReg ALUOp MemWrite ALUSrc RegWrite shift left 2 add PC Read address instruction memory instruction [3 ] instruction [25 2] instruction [2 6] instruction [5 ] read read register data read register 2 registers M write read ux register M data 2 u x write data A ALU zero ALU result B address write data read data data memory M ux instruction [5 ] sign extend ALU control Ainvert Binvert CarryIn instruction [5 ] Operation 3b Forenkling av funksjoner (vekt 7½%) Sjekk om de foreslåtte forenklingene gitt nedenfor er korrekte, dvs om F = F 2 og om G = G 2. F = abc + a b c + ab c + a bc kan forenkles til F 2 = ab + ac. G = ac + bc + ab c kan forenkles til G 2 = a + bc. Oppgave 4 Instruksjonssett (vekt 2%) 4a Hvilken funksjon? (vekt 4%) Hvilken funksjon utfører ALU-en i figur 4 på neste side hvis Ainvert=, Binvert=, CarryIn= og Operation=? Hva er CarryOut hvis a= og b=? 4b Hvilken funksjon 2? (vekt 6%) Hvilken funksjon utfører ALU-en gitt kontrollordet i figur 5 på neste side? 4c Forståelse (vekt 4%) Forklar hva instruksjonen gjør, og hva den kan brukes til. Er den ideell til dette formålet? (Fortsettes på side 4.)

Eksamen i IN 47, 29. mai 2 Side 4 Figur 4: En ALU Ainvert Binvert Operation CarryIn a Result b + 2 Less 3 CarryOut Figur 5: Kontrollord for en ukjent instruksjon RegDst ALUSrc MemtoReg RegWrite MemRead MemWrite Branch Operation Ainvert Binvert CarryIn Jump InvZero 2 OP Figur 6: Formatet på instruksjonen RS RT address/immediate 4d Utvidelse av fortegns-bit (vekt 6%) «Sign extend»-blokken i figur 3 på forrige side bevarer fortegnet ved ekspansjon fra 6-bits til 32-bits representasjon. Skriv en funksjon i C som utfører sign-extension. Du kan anta at input-parameteren er på 32-bit, men at kun de 6 nederste bitene benyttes. Funksjonen skal bruke tilgjengelige bit-operatorer i C. Oppgave 5 Flervalgsoppgave (vekt 5%) Denne oppgaven er en såkalt flervalgsoppgave («multiple choice» på engelsk). I hver deloppgave er det gitt fire utsagn, og du skal finne ut hvilket utsagn som er korrekt. Svaret skal kun inneholde nummeret på det riktige utsagnet, ingen forklaringer eller utdypninger på hvorfor etc. For at man ikke skal belønne ren gjetting vil det bli trekk for feil svar, men ikke alle de gale alternativene gir like stort trekk. (Fortsettes på side 5.)

Eksamen i IN 47, 29. mai 2 Side 5 Hint Les alle alternativene for hver deloppgave nøye før du svarer på hver oppgave! 5a Boolsk algebra. Enhver kombinatorisk boolsk funksjon kan implementeres med bare AND- og NOT-porter. 2. For å implementere enhver kombinatorisk boolsk funksjon trenger man både AND-, OR- og NOT-porter og D-flipfloper. 3. For å implementere enhver kombinatorisk boolsk funksjon trenger man både AND-, NOR- og NOT-porter. 4. For å implementere enhver kombinatorisk boolsk funksjon trenger man både NAND-, OR- og NOT-porter. 5b Pipelining. Antall trinn i en pipeline må økes hvis man reduserer klokkehastigheten. 2. Ved å øke antall trinn i en pipeline er det mulig å øke klokkehastigheten. 3. Ved å øke klokkehastigheten kan man redusere antall trinn i en pipeline. 4. Antall ulike maskinspråk-instruksjoner i instruksjonssettet for en pipelinet arkitektur er proporsjonal med antall trinn i pipelinen. 5c Pipelining 2. Ved å bruke pipelining vil man redusere tiden det tar å utføre hver enkelt instruksjon. 2. Det vil alltid startes en ny instruksjon for hver klokkesykel i en pipelinet prosessor. 3. Ved «stalling» vil det bli en opphoping av instruksjoner i pipelinen fordi den ikke er rask nok. 4. Med pipelining vil ikke hver enkelt instruksjon bli raskere, men antall ferdig-eksekverte instruksjoner per tidsenhet økes. (Fortsettes på side 6.)

Eksamen i IN 47, 29. mai 2 Side 6 5d Datapath og ALU 5e. Subtraksjon av tall på 2-komplements form utføres på samme måte som addisjon. 2. Ved addisjon av tall på 2-komplements form tar generering av mente lenger tid enn ved addisjon av kun positive tall. 3. Ved addisjon av tall på 2-komplements form må mente-bit-et inn til det mest signifikante bit-et settes til for å unngå overflyt («overflow»). 4. Ved subtraksjon av tall på 2-komplements form må mente-bit-et inn til det mest signifikante bit-et settes til for å unngå overflyt («overflow»). Cache 5f. Ved å bruke assosiativitet økes lagringskapasiteten til cache. 2. Ved å bruke assosiativ cache reduserer man antall cache-miss sammenlignet med ikke-assosiativ cache. 3. I en ikke-assosiativ cache øker aksesstiden ved read-miss sammenlignet med en assosiativ cache. 4. Antall write-miss blir større i en assosiativ cache enn i en ikkeassosiativ. Input/Output. På grunn av korte avstander må alltid internbussen i en prosessor være synkron. 2. Asynkrone busser brukes til å øke hastigheten på bussen mellom synkrone prosessorer med ulik klokkehastighet. 3. Synkrone busser er generelt langsommere enn asynkrone fordi man må bruke et felles klokkesignal. 4. Asynkrone busser kan brukes til å koble sammen synkrone prosessorer. (Fortsettes på side 7.)

Eksamen i IN 47, 29. mai 2 Side 7 5g Cache-koherens ved MISD-arkitektur (En MISD-maskin har flere prosessorer med lokal cache og én felles RAM.) 5h. Ved read-miss må cache-koherens protokollen oppdatere alle lokale kopier. 2. Ved read-miss kastes alle lokale kopier ved å merke dem ugyldige. 3. Ved write-miss trenger man ikke oppdatere RAM hvis man oppdaterer alle lokale kopier. 4. Ved read-miss vil man søke i andre lokale cacher før man leter i RAM. Virtuelt minne. Virtuelt minne benyttes for å redusere tiden det tar å aksessere RAM. 2. Virtuelt minne brukes for å redusere tiden det tar å aksessere harddisken. 3. Virtuelt minne gjør det enklere å implementere separate minneområder for ulike prosesser. 4. Uten TLB ved adresseoversettelse i virtuelt minne vil hver minneaksess mot RAM gi oppslag både i RAM og på harddisken. Oppgave 6 Parallellstyring (vekt 2%) I et forsøk på å få vårt fraktalprogram enda raskere, vil vi la produsentprosessene P i hente «oppdrag» (dvs opplysning om hvilken kolonne de skal lage fargedata for) fra en global teller, slik det er vist i figur 7 på neste side. Dessuten brukes en buffer med plass til elementer til å mellomlagre data (dvs kolonner med fargeangivelse) på vei til konsumenten K som tegner på skjermen. Hint I denne oppgaven er det parallellstyringen som er viktig. Det er derfor greit å bruke «kvasikode» med notasjon som generér fargene i kolonne x eller hent neste ledige filosof fra køen eller down(&s). 6a Styring med semaforer (vekt 2%) Skriv «kvasikode» for produsent- og konsumentprosessene når det skal brukes semaforer til å kontrollere parallellstyringen. (Fortsettes på side 8.)

Eksamen i IN 47, 29. mai 2 Side 8 Figur 7: Parallellisering av fraktalberegning P n P 2. P n K 6b Filosofer som sender meldinger (vekt 8%) Vi skal løse en variant av problemet med de n spisende filosofer. Her ligger ikke gaflene på bordet men g gafler administreres av en kelner. Når en filosof blir sulten, sender han eller hun en melding til kelneren og får svarmelding når gaflene er ledige; om gaflene er opptatt, kan det ta tid før svarmeldingen kommer. Når filosofen har spist seg mett, sender han eller hun en ny melding til kelneren. Skriv «kvasikode» for kelnerprosessen K og filosofprosessene F i. Hint gafler. Kelneren bør ha en kø over sultne filosofer som venter på ledige