UNIVERSITETET I OSLO

Like dokumenter
UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Oppgave 2 Maskinkode (vekt 12%)

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.

Generell informasjon

UNIVERSITETET I OSLO

Oppsummering av digitalteknikkdelen

UNIVERSITETET I OSLO

Innhold. Oppgave 1 Oversettelse (vekt 15%)

Eksamen INF2270 våren 2018

Løsningsforslag til eksamen i INF2270

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

Løsningsforslag til eksamen i INF2270

Å løse eksamensoppgaver

Intro Rask kode x86-op Optimalisering Inline-kode Konklusjon

UNIVERSITETET I OSLO

Dagens tema. Raskere kode [REB&DRO H kap 5]

Intro Evaluering Rask kode x86-op Optimalisering Inline-kode

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Løsningsforslag til eksamen i INF103

UNIVERSITETET I OSLO

Oppbygningen av en datamaskin Det viktigste i en moderne datamaskin er hovedkortet («motherboard»):

UNIVERSITETET I OSLO

Pensum Hovedtanker Selvmodifiserende Overflyt Veien videre Eksamen. Oppsummering

Dagens tema. Raskere kode [REB&DRO H kap 5]

Løsningsforslag til eksamen i INF2270

Intro Digital eksamen Rask kode x86-op Optimalisering Inline-kode Konklusjon

Det viktigste i en moderne datamaskin er hovedkortet («motherboard»):

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Det viktigste i en moderne datamaskin er hovedkortet («motherboard»):

UNIVERSITETET I OSLO

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

Det viktigste i en moderne datamaskin er hovedkortet («motherboard»):

En oppsummering. Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Eksamen. Programmeringsoppgaver Flervalgsoppgaver

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

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

Repetisjon digital-teknikk. teknikk,, INF2270

MAX MIN RESET. 7 Data Inn Data Ut. Load

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

UNIVERSITETET I OSLO

Oppsummering digital-teknikk, teknikk, INF2270

Løsningsforslag i digitalteknikkoppgaver INF2270 uke 5 (29/1-4/2 2006)

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Dagens temaer. Architecture INF ! Dagens temaer hentes fra kapittel 3 i Computer Organisation and. ! Kort repetisjon fra forrige gang

UNIVERSITETET I OSLO

Oppgave 1 Oversettelse (vekt 16%)

UNIVERSITETET I OSLO

Dagens tema INF1070. Bit fikling. Makroer. Blanding av C og assemblerkode. Mer om Core War. Dag Langmyhr,Ifi,UiO: Forelesning 22. mai 2006 Ark 1 av 25

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Dagens tema. Er maskinen big endian? Denne funksjonen tester det: INF1070 INF1070 INF1070 INF1070

En oppsummering (og litt som står igjen)

Oversikt Kodegenerering Variable Setninger Uttrykk While-setningen Oppsummering

INF1400. Karnaughdiagram

Minneområder Det er vanlig å dele opp minnet til en prosess i disse ulike områdene: Fast minne Store og små indianere «align» ing struct er

Dagens temaer. Dagens temaer er hentet fra P&P kapittel 3. Motivet for å bruke binær representasjon. Boolsk algebra: Definisjoner og regler

UNIVERSITETET I OSLO

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

Debuggere En «debugger» er et meget nyttig feilsøkingsverktøy. Det kan analysere en program dump, Dagens tema INF1070 INF1070 INF1070 INF1070

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

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

UNIVERSITETET I OSLO

Det matematisk-naturvitenskapelige fakultet

Dagens tema. Flere teknikker for å øke hastigheten

Dagens temaer. Dagens temaer hentes fra kapittel 3 i Computer Organisation and Architecture. Kort repetisjon fra forrige gang. Kombinatorisk logikk

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Oversikt Kodegenerering Variable Setninger Uttrykk While-setningen

Eksamensoppgave i TDT4258 Energieffektive datamaskinsystemer

UNIVERSITETET I OSLO

Dagens tema. Mer om cache-hukommelse Kapittel 6.5 i Computer Organisation and Architecture ) RAM. Typer, bruksområder og oppbygging 2008 ROM

Datamaskiner og operativsystemer =>Datamaskinorganisering og arkitektur

UNIVERSITETET I OSLO

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

Høgskoleni østfold EKSAMEN. Dato: Eksamenstid: kl til kl. 1200

INF2270. Input / Output (I/O)

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

UNIVERSITETET I OSLO

Digitalstyring sammendrag

Løsningsforslag til eksamen i IN 147(A)

EKSAMENSOPPGAVE. INF-1100 Innføring i programmering og datamaskiners virkemåte. Ingen. Elektronisk (WiseFlow) Robert Pettersen

UNIVERSITETET I OSLO

EKSAMEN Emnekode: ITD13012

UNIVERSITETET I OSLO

- - I Aile trykte og skrevne. samt kalkulator

Transkript:

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 15. juni 2006 Tid for eksamen: 14.30 17.30 Oppgavesettet er på 7 sider. Vedlegg: INF1070 Datamaskinarkitektur Ingen Tillatte hjelpemidler: Alle Kontroller at oppgavesettet er komplett før du begynner å besvare spørsmålene. Dette oppgavesettet består av 4 oppgaver som kan løses uavhengig av hverandre. Alle oppgavene har vekt 25% så de bør ta 45 minutter å løse. Dersom du synes noe i oppgaveteksten er uklart, må du gjøre dine egne forutsetninger; sørg bare for at disse er tydelig angitt. Programmering skal være slik at koden fungerer på Ifis Linux-maskiner. Du kan referere til funksjoner og programkode vist på forelesningene uten å gjenta koden; sørg for at referansene er tydelige (nevn for eksempel dato og nummer på lysarket). Lykke til! Innhold 1 Boolsk algebra (vekt 25%) side 1 2 Flervalgsoppgave (vekt 25%) side 2 3 Programmering (vekt 25%) side 4 4 Hva skjer? (vekt 25%) side 4 Oppgave 1 Boolsk algebra (vekt 25%) 1a (vekt 10%) a) Du skal lage en ks som tar som input et 4-bits tall a = a 3 a 2 a 1 a 0 og som genererer et outputsignal IsEven. Outputsignalet skal være 1 når a er et partall (dvs 0, 2, 4, 6,...) og 0 når a er et oddetall. Sett (Fortsettes på side 2.)

Eksamen i INF1070, 15. juni 2006 Side 2 opp sannhetsverditabell for kresten og implementer den med logiske porter. Forenkle mest mulig. b) Ved hjelp av ksen du laget i a) skal du lage en ny ks som skal brukes til å finne ut om summen av to 4-bits tall a og b er et partall eller ikke. Output fra den nye ksen skal hete SumIsEven og skal være lik 1 hvis summen av a og b er et partall og 0 ellers. Bruk så få ekstra porter som mulig. 1b (vekt 15%) a) Bruk Karnaugh-diagram til å forenkle følgende Boolske funksjon: G = abc + bd + bc + a b cd + abcd + c d + a b c b) Implementer G med så få porter som mulig. c) Vis hvordan du kan lage en NOR-port ved help kun av ANDport(er) og XOR-port(er). Oppgave 2 Flervalgsoppgave (vekt 25%) I hver av oppgavene under er det gitt fem utsagn, hvorav bare ett er korrekt. Besvarelsen skal kun bestå av bokstaven som du mener er det korrekte svaralternativet. Les nøye igjennom alle svaralternativene før du plukker ut det du mener er det korrekte! 2a Boolsk algebra 2b 1. AND- og NOT-porter kan ikke brukes til å lage OR-porter 2. NAND-porter kan ikke brukes til å lage NOR-porter 3. NOR-porter kan ikke brukes til å lage XOR-porter 4. AND-porter kan ikke brukes til å lage XOR-porter 5. NOR-porter kan ikke brukes til å lage invertere Virtuell hukommelse 1. Virtuell hukommelse øker størrelsen på cache 2. Med virtuell hukommelse er det gunstigere å bruke direkteavbildet cache 3. Hvis man har separat instruksjons- og data-cache, trengs ikke virtuell hukommelse 4. Uten virtuell hukommelse er det ikke mulig å implementere tidsdeling i operativsystemer 5. TLB implementert med SDRAM er raskere enn TLB implementert med NVRAM (Fortsettes på side 3.)

Eksamen i INF1070, 15. juni 2006 Side 3 2c Cache 1. Cache har like kort responstid som interne registre 2. Cache kan ikke implementeres med dynamisk RAM 3. Look-aside-arkitektur gir dårligere responstid enn look-througharkitektur 4. Look-through-arkitektur er langsommere ved read-miss enn lookaside-arkitektur 5. Full-assosiativ cache har like lang søketid som set-assosiativ cache 2d Pipeling 1. Pipelining brukes ikke i prosessorer som sitter i mobiltelefoner 2. Kontrollhasarder kan fjerne ved å bruke multiple pipelines 3. NOP-instruksjoner kan alltid brukes til å fjerne ressurshasarder 4. Ressurshasard er et annet navn på kontrollhasard 5. Stalling kan fjernes ved å øke klokkehastigheten 2e Primærhukommelse 1. Dynamisk RAM trenger refresh bare når det lagres 0-bit, og ikke når det lagres 1-bit 2. Uten refresh vil ikke innholdet i dynamisk RAM være lesbart 3. RAM bygget med RS-flipflop-er er mer upålitelig enn RAM bygget med D-flipflop-er fordi RS-flipflop-en har udefinerte tilstander 4. Dynamisk RAM er tregere enn RAM konstruert med RS-flipfloper 5. Ingen av påstandene over er korrekte 2f Hukommelsesbusser 1. Synkrone busser har alltid mer komplisert protokoll-overhead enn asynkrone busser 2. Asynkrone busser er alltid langsommere enn synkrone busser grunnet protokoll-overhead 3. Asynkrone busser kan brukes til å knytte sammen enheter med forskjellig hastighet 4. TCP/IP fungerer bare over en synkron bussprotokoll 5. Synkrone busser kan ikke brukes til å koble sammen enheter med samme hastighet (Fortsettes på side 4.)

Eksamen i INF1070, 15. juni 2006 Side 4 Figur 1:struct node, listehodethead og funksjoneninsert_last struct node { int val; struct node *next; }; struct node *head = NULL; void insert_last (struct node *p) { if (head == NULL) { head = p; p >next = NULL; urn; } } struct node *px = head; while (px >next) px = px >next; px >next = p; p >next = NULL; 2g Diverse 1. På en RISC-arkitektur tar kompilerte programmer mindre plass sammenlignet med en CISC-arkitektur 2. Virtuell hukommelse gjør det lettere for operativsystemet å holde minneområder til ulike prosesser adskilt 3. Mikrokode kan ikke eksekveres på en pipelinet arkitektur 4. Maskinspråk er raskere å eksekvere enn assemblerspråk 5. Assemblerspråk kan ikke oversettes til mikrokode før det eksekveres Oppgave 3 Programmering (vekt 25%) I figur 1 er vist en struct egnet for å lage en liste, en variabel (listehodet head) og en funksjon som setter inn et nytt element sist i listen. Oversett funksjonen til x86-kode. Oppgave 4 Hva skjer? (vekt 25%) Denne oppgaven innholder noen korte spørsmål om hva som skjer når en programkode utføres. I hvert punkt er nøyaktig ett alternativ riktig. Sva ditt skal kun være tallet til det du tror er det riktige alternativet. (Fortsettes på side 5.)

Eksamen i INF1070, 15. juni 2006 Side 5 4a Denne C-koden kaller en assemblerfunksjon. Hva skriver den ut? int v1 = f1(1, 2, 3, 4); printf("%d\n", v1); f1: pushl movl 4(),%eax 4b 2. 2 3. 3 4. 4 5. 5 6. 0 7. Noe annet enn svarene over int v2 = f2( 1, 1); printf("%d\n", v2); f2: pushl subl %eax,%eax movl 8(),%ebx cmpl 12(),%ebx ja f2a incl %eax f2a: cmpl 12(),%ebx jg f2b addl $2,%eax f2b: 2. 2 (Fortsettes på side 6.)

Eksamen i INF1070, 15. juni 2006 Side 6 4c 3. 3 4. 1 5. 0 7. Umulig å si, siden sva vil variere fra gang til gang float v3a = 0.75, v3b = 3.0; f3(&v3a); f3(&v3b); printf("%f %f\n", v3a, v3b); f3: pushl movl andl 8(),%eax $0x7fffffff,0(%eax) 4d 1. 0.750000 3.000000 2. 0.750000 3.000000 3. 0.750000 3.000000 4. 0.750000 3.000000 5. 0.000000 0.000000 7. Umulig å si, siden sva vil variere fra gang til gang int v4 = f4(200, 100); printf("%d\n", v4); f4: pushl movb addb rclb 8(),%al 12(),%al $1,%al (Fortsettes på side 7.)

Eksamen i INF1070, 15. juni 2006 Side 7 andl $1,%eax 4e 2. 0 3. 100 4. 200 5. 300 7. Umulig å si, siden sva vil variere fra gang til gang char s[200]; strcpy(s, "/ifi/eisa/k00/inf1070"); int v5 = f5(s, strlen(s)); printf("%d\n", v5); f5: pushl pushl %edi movl 8(),%edi movl 12(),%ecx addl %ecx,%edi std movb $ /,%al repnz scasb movl %ecx,%eax %edi 2. 0 3. 1 4. 12 5. 21 7. Umulig å si, siden sva vil variere fra gang til gang