UNIVERSITETET I OSLO

Like dokumenter
UNIVERSITETET I OSLO

Å løse eksamensoppgaver

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

Løsningsforslag til eksamen i INF2270

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

Eksamen INF2270 våren 2018

UNIVERSITETET I OSLO

Løsningsforslag til eksamen i INF2270

UNIVERSITETET I OSLO

Intro Rask kode x86-op Optimalisering Inline-kode Konklusjon

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

Oppgave 2 Maskinkode (vekt 12%)

Intro Evaluering Rask kode x86-op Optimalisering Inline-kode

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

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

Dagens tema Programmering av x86 Flytting av data Endring av størrelse

UNIVERSITETET I OSLO

Løsningsforslag til eksamen i INF2270

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

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

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

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

Pensum Hovedtanker Selvmodifiserende Overflyt Veien videre Eksamen. Oppsummering

UNIVERSITETET I OSLO

Innhold. Oppgave 1 Oversettelse (vekt 15%)

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

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

Dagens tema. Minnestrukturen Grovt sett ser minnet for hver process slik ut: Flytting av data. Programmering av x86

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

UNIVERSITETET I OSLO

AB 0 CD + ABC 0 D 0 + ABC 0 D + ABCD 0 + ABCD + AB 0 CD 0

Oppsummering av digitalteknikkdelen

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

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

Repetisjon digital-teknikk. teknikk,, INF2270

Notater: INF2270 Assembler

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

INF1400. Karnaughdiagram

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

Det matematisk-naturvitenskapelige fakultet

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

UNIVERSITETET I OSLO

Dagens tema INF2270. Flyt-tall (B&O H-boken 2.4, 3.14) Hvordan lagres de? Hvordan regner man med dem? Bit-fikling (B&O H-boken 2.1.

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

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

Notater: INF2270. Veronika Heimsbakk 10. juni 2014

Dagens tema. Programmering av x86 INF2270. Minnestrukturen i en prosess. Flytting av data Endring av størrelse. Aritmeriske operasjoner Flagg

En oppsummering (og litt som står igjen)

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

Dagens tema INF2270. Flyt tall (B&O H boken 2.2.3) Hvordan lagres de? Hvordan regner man med dem? Overflyt (B&O H boken )

Programmering av x86. Minnestrukturen i en prosess Flytting av data. Skifting og rotasjoner Hopp. Stakken Rutinekall. Aritmeriske regneoperasjoner

Oppgave 1 Oversettelse (vekt 16%)

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

Emne: Datamaskinarkitektur Emnekode:lO 134A Faglig veileder: Lars Kristiansen

MAX MIN RESET. 7 Data Inn Data Ut. Load

, ~', -~ lalle trykte og skrevne hjelpemidler. I Kalkulator som ikke kan kommunisere med andre.

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

UNIVERSITETET I OSLO

Forhistorien Menneskene har alltid prøvd å lage maskiner for å løse sine problemer. Dagens tema

Datamaskinenes historie Når, hvor og hvorfor ble de første datamaskiner laget? Hvordan har utviklingen gått? Hva inneholder en datamaskin?

Dagens tema: Maskinkode. Litt datamaskinhistorie Hva er maskin- og assemblerkode? x86-prosessoren Programkode og variabler

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

4 kombinatorisk logikk, løsning

Løsningsforslag til eksamen i INF2270

UNIVERSITETET I OSLO

LØSNINGSFORSLAG 2006

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

Hvordan en prosessor arbeider, del 1

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet

UNIVERSITETET I OSLO

Løsningsforslag til eksamen i IN 147(A)

Løsningsforslag INF1400 H04

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Dagens tema. Makroer Ofte gjentar man kodelinjer når man skriver assemblerkode. Da kan det lønne seg å definere en makro:

Oversikt Kodegenerering Variable Setninger Uttrykk While-setningen

EKSAMEN (Del 1, høsten 2015)

Oversikt Kodegenerering Variable Setninger Uttrykk While-setningen Oppsummering

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

INF1400. Kombinatorisk Logikk

UNIVERSITETET I OSLO

INF1400 Kap4rest Kombinatorisk Logikk

Transkript:

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 13. juni 2013 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 9 sider. Vedlegg: Tillatte hjelpemidler: INF2270 Datamaskinarkitektur Ingen Kalkulator og alle trykte og skrevne hjelpemidler 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. Programmering skal være slik at koden fungerer med kommandoen gcc m32 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å plansjen). Innhold 1 Konvertering (vekt 5%) side 1 2 Kombinatorisk logikk (vekt 25%) side 2 3 Sekvensiell logikk (vekt 5%) side 2 4 Datamaskinarkitektur (vekt 15%) side 2 5 Programmering (vekt 26%) side 3 6 Hva skjer? (vekt 24%) side 4 Oppgave 1 Konvertering (vekt 5%) Konverter følgende tall til binært. Vis utregning. a. (43) des b. (FFF) hex (Fortsettes på side 2.)

Eksamen i INF2270, 13. juni 2013 Side 2 Oppgave 2 Kombinatorisk logikk (vekt 25%) Gitt følgende funksjonsuttrykk: F(a, b, c, d) = a b c d + a b c d + a bc d + a bc d + a bcd+ ab cd + ab cd + abc d + abcd + abcd a. Skriv opp sannhetsverditabellen til uttrykket. b. Forenkle uttrykket ved regneregler; vis utregning. c. Forenkle uttrykket ved bruk av Karnaughdiagram. d. Tegn det forenklede uttrykket ved å bruke AND-, OR- og NOTporter. e. Implementer det forenklede uttrykket med kun 2-inputs NAND. Oppgave 3 Sekvensiell logikk (vekt 5%) En S-R-latch kan bli implementert med å krysskoble hvilke av følgende gater: a. AND eller OR b. XOR eller XNOR c. NOR eller NAND d. AND eller NOR Oppgave 4 Datamaskinarkitektur (vekt 15%) a. Hvilken av følgende er ikke en reell bus: 1. Data bus 2. Timer bus 3. Control bus 4. Address bus b. Hvilken operasjon utføres ikke av en ALU: 1. AND 2. OR 3. XOR 4. Addisjon 5. Multiplikasjon (Fortsettes på side 3.)

Eksamen i INF2270, 13. juni 2013 Side 3 c. Hvilket utsagn er korrekt: 1. DRAM er bygd opp av kun JK-flip-floper. 2. SRAM har lavere hastighet enn DRAM. 3. DRAM har behov for «refresh» av det lagrede signalet. 4. SRAM har behov for «refresh» av det lagrede signalet. 5. SRAM er bygd opp av kun kapasitanser. d. Hvilken av følgende er ikke sann: 1. I pipelining tar hver instruksjon like lang tid å utføre. 2. I pipelining utfører prosessoren flere instruksjoner samtidig. 3. Hver subinstruksjon i pipelining kan utføres uavhengig av de andre subinstruksjonene. 4. Ved å bruke pipelining oppnår vi alltid speedup = 1. 5. Hazarder skaper komplikasjoner for pipelining. e. Hvilken av følgende er sann: 1. Cache er større enn RAM. 2. Cache er raskere enn RAM. 3. Full-assosiative cache-strategi gjør at vi har økt cache miss. 4. Set-assosiative cache-strategi gjør at den har kortere søketid enn direktemappet. 5. Direktemappet cache-strategi har høy cache-hit. Oppgave 5 Programmering (vekt 26%) Funksjonen strcpy kopierer én tekst til et angitt sted. Du skal skrive funksjonen char *multistrcpy (char *res,...) som kan kopiere vilkårlig mange tekster til res; etter siste tekst kommer parameteren 0. Funksjonen skal skrives i x86-assemblerspråk. Eksempel Programmet #include <stdio.h> extern char *multistrcpy (char *res,...); char s[2048]; multistrcpy(s, "A", " ", "small t", "", "est.", 0); printf("the answer is: \"%s\"\n", s); urn 0; skriver ut sva The answer is: "A small test." (Fortsettes på side 4.)

Eksamen i INF2270, 13. juni 2013 Side 4 Oppgave 6 Hva skjer? (vekt 24%) I denne oppgaven har hvert delspørsmål syv alternativer der bare ett er korrekt. Du skal bare svare ved å angi det alternativet du tror er riktig; ingen forklaring er nødvendig. Du får 4 poeng for et korrekt valg og 1 poeng for et galt, så du kan, om du vil, angi mer enn ett alternativ som svar. Du vil aldri få et negativt antall poeng. 6a extern unsigned int f1 (unsigned int a, unsigned int b, unsigned int c); unsigned int v = f1(0x12345678, 0x000000ff, 0x0000ff00); printf("test 1: 0x%08x\n", v);.globl f1 f1: pushl %esp, andl orl 8(),%eax 12(),%eax 16(),%eax 1. Test 1: 0x00000000 2. Test 1: 0x0000ff00 3. Test 1: 0x0000ff78 4. Test 1: 0x0000ffff 5. Test 1: 0x1234ff78 (Fortsettes på side 5.)

Eksamen i INF2270, 13. juni 2013 Side 5 6b extern int f2 (int a[], int n); int data[6] = 33, -2, 49, -88, 0, 13 ; int v = f2(data, 6); printf("test 2: %d\n", v);.globl f2 f2: pushl %esp, 8(),%edx 12(),%ecx (%edx),%eax f2_l: decl %ecx jz f2_x addl $4,%edx cmpl (%edx),%eax jge f2_l (%edx),%eax jmp f2_l f2_x: 1. Test 2: 88 2. Test 2: 0 3. Test 2: 13 4. Test 2: 33 5. Test 2: 49 (Fortsettes på side 6.)

Eksamen i INF2270, 13. juni 2013 Side 6 6c extern int f3 (char *a); char *txt = "En bitte liten test!"; int v = f3(txt+9); printf("test 3: %d\n", v);.globl f3 f3: pushl %esp, pushl %edi cld movb 8(),%edi $0xffffffff,%ecx $,%al repnz scasb subl $-2,%eax %ecx,%eax %edi 1. Test 3: 1 2. Test 3: 0 3. Test 3: 2 4. Test 3: 5 5. Test 3: 20 (Fortsettes på side 7.)

Eksamen i INF2270, 13. juni 2013 Side 7 6d extern int f4 (int a, int b); int v = f4(4,1); printf("test 4: %d\n", v);.globl f4 f4: pushl %esp, pushl pushl call 8(),%edx %edx 12(),%edx %edx sub %edx %edx sub: pushl %esp, subl 8(),%eax 12(),%eax 1. Test 4: 3 2. Test 4: 0 3. Test 4: 3 4. Test 4: 4 5. Test 4: 5 (Fortsettes på side 8.)

Eksamen i INF2270, 13. juni 2013 Side 8 6e extern float f5 (float a, float b, float c); float v = f5(1.0, 2.0, -1.0); printf("test 5: %f\n", v);.globl f5 f5: pushl %esp, flds flds flds faddp fsqrt faddp 8() 12() 16() 1. Test 5: 0.000000 2. Test 5: 0.732051 3. Test 5: 1.000000 4. Test 5: 1.414214 5. Test 5: 2.000000 (Fortsettes på side 9.)

Eksamen i INF2270, 13. juni 2013 Side 9 6f extern int f6 (int a[], int n); int data[6] = 2, 3, 5, 7, 11, 13 ; int v = f6(data,6); printf("test 6: %d\n", v);.globl f6 f6: pushl %esp, 8(),%edx 12(),%ecx $0,%eax f6_l: subl $1,%ecx js f6_x addl (%edx),%eax incl %edx jmp f6_l f6_x: 1. Test 6: 0 2. Test 6: 6 3. Test 6: 13 4. Test 6: 28 5. Test 6: 41