Eksamen Computerarkitektur 2013Q4. Niels Olof Bouvin. Studienummer Navn

Relaterede dokumenter
Computerarkitektur Eksamen 2014Q3. Niels Olof Bouvin. Studienummer Navn

Eksamen dcomnet Q2/2012. Studiekortsnummer Navn

Eksamen dcomnet 2012Q4. Årskortsnummer Navn

Eksamen dcomnet Q2/2010. Navn

Niveauer af abstrakte maskiner

dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet)

dcomnet-nr. 6 Talrepræsentation Computere og Netværk (dcomnet)

DATALOGI MASKINARKITEKTUR Blok 2 samt Reeksamination i DATALOGI MASKINARKITEKTUR Blok 1 og arkitekturdelen af DATALOGI 1E

Mikroarkitektur. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet

Boolsk algebra For IT studerende

Boolsk algebra For IT studerende

DM13-1. Obligatoriske Opgave - Kredsløbs design

Maskinarkitektur. Lars Kristensen Christian Storm dmasark 1

Computere og Netværk (dcomnet)

DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004

Med TI-89 / TI-92 Plus kan du også sammenligne eller manipulere binære tal bit for bit.

Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528)

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Opgaver i logik, torsdag den 20. april

Reeksamen i Diskret Matematik

Danmarks Tekniske Universitet

Eksamensopgaver i DM17, Januar 2003

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Bits, bit operationer, integers og floating point

Niveauer af abstrakte maskiner

Sproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter Abstract

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2

DM507 Algoritmer og datastrukturer

TESTS I MAKROØKONOMI. Formål og indhold

Eksamen i Diskret Matematik

DM507 Algoritmer og datastrukturer

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Opgave: BOW Bowling. Rules of Bowling. danish. BOI 2015, dag 1. Tilgængelig hukommelse: 256 MB

DM507 Algoritmer og datastrukturer

Danmarks Tekniske Universitet

Reeksamen i Diskret Matematik

DATALOGI 1E. Skriftlig eksamen mandag den 23. juni 2003

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Grundlæggende Programmering ITU, Efterår Skriftlig eksamen i Grundlæggende Programmering

MIPS, registerallokering og MARS

Eksamen i Lineær Algebra

Niveauer af abstrakte maskiner

CPUer og maskinkode DM534. Rolf Fagerberg

Danmarks Tekniske Universitet

Alt dette er også grundlaget for digitalteknikken, som er baseret på logiske

Logik. Af Peter Harremoës Niels Brock

Skriftlig eksamen i Datalogi

Skriftlig Eksamen Beregnelighed (DM517)

Skriftlig prøve i KDS

DANMARKS TEKNISKE UNIVERSITET

Skriftlig Eksamen Algoritmer og Sandsynlighed (DM538)

Eksempel på muligt eksamenssæt i Diskret Matematik

Danmarks Tekniske Universitet

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Algoritmer og datastrukturer Course No Cheat Sheet May 15, 2012

Eksamen i Lineær Algebra

Regnetest B: Praktisk regning. Træn og Test. Niveau: 9. klasse. Med brug af lommeregner

TERMINSPRØVE APRIL 2018 MATEMATIK. Kl

Programmering for begyndere Lektion 2. Opsamling mm

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007

for matematik på C-niveau i stx og hf

Funktioner generelt. for matematik pä B- og A-niveau i stx og hf Karsten Juul

BEREGNINGSTEKNIK INDENFOR ELEKTRONIKOMRÅDET 1

Danmarks Tekniske Universitet

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Transkript:

Eksamen Computerarkitektur 2013Q4 Niels Olof Bouvin Studienummer Navn

Vejledning Eksamen varer en time fra kl. 9 til kl. 10. Husk at skrive studienummer og navn tydeligt på forsiden, inden eksamen afsluttes. Der er tyve spørgsmål, og ét rigtigt svar per spørgsmål. Forkerte svar giver negative point. Det er tilladt at afkrydse flere svar per spørgsmål. Spørgsmål og figurer er adskilte i dette eksamenssæt, men refereres ved figurnummer og sidetal. Det er naturligvis ikke tilladt at skrive af eller samtale under eksamen. Telefoner og andre apparater skal være slukket og må ikke benyttes. Når eksamen er afsluttet, aflevér da opgaven, og forlad lokalet i ro og orden. Hjælpemidler er opgivet pensum og afleverede opgaver. Eksempel på et spørgsmål og besvarelse Indledende forklaring og henvisning til figurer Det faktiske spørgsmål? X.0.1 Nope X.0.2 Nope nope X.0.3 Nope nope nope X.0.4 Helt bestemt rigtigt Brug blyant, så et eventuelt forkert svar kan viskes ud, og erstattes med et andet svar. Såfremt man fortryder et svar (og har brugt en pen), udfyld da det forkerte svar helt, og sæt et kryds til venstre for det ønskede svar. Skriv tydeligt!

Spørgsmål A.1 Betragt IJVM programmet Prog1 i Figur 1a på side 5. Hvad er resultatet af en kørsel af programmet Prog1 i Figur 1a med argumenterne 0 0? $ ijvm Prog1.bc 0 0 A.1.1 0 A.1.2 1 A.1.3 2 A.1.4 4 Spørgsmål A.2 Betragt IJVM programmet Prog1 i Figur 1a på side 5. Hvad er resultatet af en kørsel af programmet Prog1 i Figur 1a med argumenterne 1 0? $ ijvm Prog1.bc 1 0 A.2.1 Programmet terminerer ikke A.2.2-1 A.2.3 0 A.2.4 1 Spørgsmål A.3 Betragt IJVM programmet Prog1 i Figur 1a på side 5. Hvad er resultatet af en kørsel af programmet Prog1 i Figur 1a med argumenterne -1 2? $ ijvm Prog1.bc -1 2 A.3.1 Programmet terminerer ikke A.3.2-2 A.3.3 2 A.3.4 3 Spørgsmål A.4 Betragt IJVM programmet Prog1 i Figur 1a på side 5. Hvad er den maksimale stakhøjde under en kørsel af programmet Prog1 i Figur 1a med argumenterne 4 5? $ ijvm Prog1.bc 4 5 Initiel stak er stack = 0, 1, 5, 4, 21 A.4.1 10 A.4.2 13 A.4.3 14 A.4.4 15 Spørgsmål A.5 Betragt IJVM programmet Prog1 i Figur 1a på side 5. Hvilken beregning udfører programmet Prog1 i Figur 1a med argumenterne a b? $ ijvm Prog1.bc a b A.5.1 0 A.5.2 ab A.5.3 a b a A.5.4 ab a Spørgsmål A.6 Betragt MAL definitionen af instruktionen foo i Figur 2a på side 6, samt tilhørerende specifikation Hvad er resultatet af en kørsel af programmet Prog2 i Figur 1b på side 5 med argumentet 5, idet det antages, at den oversatte instruktion er i ijvm.mic1? $ mic1 -f ijvm.spec ijvm.mic1 Prog2.bc 5 A.6.1 1 A.6.2 2 A.6.3 3 A.6.4 5

Spørgsmål A.7 Betragt MAL definitionen af instruktionen foo i Figur 2a på side 6, samt tilhørerende specifikation Såfrem stakken inden foo udføres er a b c d (hvor a er det øverste element), hvorledes ser stakken da ud efter foo er udført? A.7.1 a b c d A.7.2 a c d A.7.3 b c d A.7.4 a b b c d Spørgsmål A.8 Betragt MAL definitionen af instruktionen bar i Figur 2b på side 6, samt tilhørerende specifikation Hvad er resultatet af en kørsel af programmet Prog3 i Figur 1c på side 5 med argumentet 0, idet det antages, at den oversatte instruktion er i ijvm.mic1? $ mic1 -f ijvm.spec ijvm.mic1 Prog3.bc 0 A.8.1 0 A.8.2 1 A.8.3 2 A.8.4 32 Spørgsmål A.9 Betragt MAL definitionen af instruktionen bar i Figur 2b på side 6, samt tilhørerende specifikation Hvad er resultatet af en kørsel af programmet Prog3 i Figur 1c på side 5 med argumentet 5, idet det antages, at den oversatte instruktion er i ijvm.mic1? $ mic1 -f ijvm.spec ijvm.mic1 Prog3.bc 5 A.9.1 0 A.9.2 1 A.9.3 2 A.9.4 160 Spørgsmål A.10 Betragt MAL definitionen af instruktionen bar i Figur 2b på side 6, samt tilhørerende specifikation Hvad er resultatet af en kørsel af programmet Prog3 i Figur 1c på side 5 med argumentet -7, idet det antages, at den oversatte instruktion er i ijvm.mic1? $ mic1 -f ijvm.spec ijvm.mic1 Prog3.bc -7 A.10.1 0 A.10.2 1 A.10.3 30 A.10.4-224 Spørgsmål A.11 Betragt MAL definitionen af instruktionen bar i Figur 2b på side 6, samt tilhørerende specifikation Under antagelse af, at det øverste element på stakken er n, hvad erstatter instruktionen bar da n med? A.11.1 32n n 1 i=0 i A.11.2 A.11.3 Antallet af ettaller i n skrevet som binært 2-komplement tal A.11.4 0, hvis der er flere nuller end ettaller i n skrevet som binært 2-komplement tal, ellers 1 Spørgsmål A.12 Betragt x86-64 programmet Prog4 i Figur 3 på side 7. Hvad udskriver programmet Prog4 i Figur 3 med argumenterne 0 1 2? $./Prog4 0 1 2 A.12.1 fun(0,1,2) = 0 A.12.2 fun(0,1,2) = 1 A.12.3 fun(0,1,2) = 2 A.12.4 fun(0,1,2) = 3 2

Spørgsmål A.13 Betragt x86-64 programmet Prog4 i Figur 3 på side 7. Hvad udskriver programmet Prog4 i Figur 3 med argumenterne -1 6 8? $./Prog4-1 6 8 A.13.1 fun(-1,6,8) = 0 A.13.2 fun(-1,6,8) = 6 A.13.3 fun(-1,6,8) = 8 A.13.4 fun(-1,6,8) = 14 Spørgsmål A.14 Betragt x86-64 programmet Prog4 i Figur 3 på side 7. Hvad udskriver programmet Prog4 i Figur 3 med argumenterne a b c (der antages at være heltal)? $./Prog4 a b c A.14.1 fun(a,b,c) = a + b + c A.14.2 fun(a,b,c) = (a and b) xor (b and c) A.14.3 fun(a,b,c) = (a and b) and (a xor c) A.14.4 fun(a,b,c) = (a and b) xor (a and c) Spørgsmål A.15 Betragt det logiske kredsløb i Figur 4 på side 8 med input A, B og C og output F. Hvilken af sandhedstabellerne på side 8 beskriver kredsløbet i Figur 4? A.15.1 Tabel 1a A.15.2 Tabel 1b A.15.3 Tabel 1c A.15.4 Table 1d Spørgsmål A.16 Betragt det logiske kredsløb i Figur 4 på side 8 med input A, B og C og output F. Hvilken af følgende boolske udtryk, hvor - angiver negation, beskriver kredsløbet i Figur 4? A.16.1 A and (B or C) A.16.2 (A or B) and C A.16.3 ((A or -C) and B) or (A and C) A.16.4 (A and B) or (-B and -C) Spørgsmål A.17 Betragt det logiske kredsløb i Figur 5 på side 9 med input A og B og output F. Hvilken af sandhedstabellerne på side 9 beskriver kredsløbet i Figur 5? A.17.1 Tabel 2a A.17.2 Tabel 2b A.17.3 Tabel 2c A.17.4 Table 2d Spørgsmål A.18 Betragt det logiske kredsløb i Figur 5 på side 9 med input A og B og output F. Hvilken af følgende boolske udtryk, hvor - angiver negation, beskriver kredsløbet i Figur 5? A.18.1 -(A xor B) A.18.2 A xor -B A.18.3 (A and -B) or -B A.18.4 -(A or B) or B Spørgsmål A.19 Følgende tal er repræsenteret binært i 2-komplement, 8 bits: 10010010. Hvad er decimal værdien af tallet? A.19.1-100 A.19.2-110 A.19.3-120 A.19.4-128 Spørgsmål A.20 Følgende tal er repræsenteret i octal: 76. Hvordan repræsenteres tallet i heksadecimal? A.20.1 32 A.20.2 42 A.20.3 3E A.20.4 2F 3

4

1. method main 2. args 3 3. d e f i n e a = 1 4. d e f i n e b = 2 5 bipush 88 6 i l o a d a 7 i l o a d b 8 i n v o k e v i r t u a l fun 9 i r e t u r n 10 11. method fun 12. args 3 13. d e f i n e a = 1 14. d e f i n e b = 2 15. l o c a l s 2 16. d e f i n e c = 3 17. d e f i n e d = 4 18. d e f i n e e = 0 19 ldc w e 20 i s t o r e c 21 i l o a d a 22 dup 23 i f l t l a b e l 1 24 goto l a b e l 2 25 l a b e l 1 : bipush e 26 swap 27 isub 28 l a b e l 2 : i s t o r e d 29 l a b e l 3 : i l o a d d 30 i f e q l a b e l 4 31 i l o a d b 32 i l o a d c 33 iadd 34 i s t o r e c 35 i i n c d, 1 36 goto l a b e l 3 37 l a b e l 4 : i l o a d c 38 i l o a d a 39 isub 40 i r e t u r n 1. method main 2. args 2 3. d e f i n e a = 1 4 bipush 3 5 bipush 2 6 bipush 1 7 foo 8 i r e t u r n (a) Prog1 (b) Prog2 1. method main 2. args 2 3. d e f i n e a = 1 4 i l o a d a 5 bar 6 i r e t u r n (c) Prog3 Figur 1: IJVM programmer 5

1 foo = 0x48 : 2 MAR = SP = SP 1 3 MDR = TOS; wr ; goto main (a) foo 1 bar = 0x20 : 2 OPC = MBRU 3 MDR = 0 4 H = 1 5 bar1 : Z = TOS AND H; i f ( Z) goto bar3 ; e l s e goto bar2 6 bar2 : MDR = MDR + 1 7 bar3 : Z = OPC = OPC 1 ; i f (Z) goto bar5 ; e l s e goto bar4 8 bar4 : TOS = TOS >> 1 ; goto bar1 9 bar5 : MAR = SP ; wr 10 TOS = MDR; goto main 1 0x20 bar 2 0x48 foo (b) bar (c) ijvm.spec Figur 2: MAL programmer 6

1. s e c t i o n. data # s t a r t of data s e c t i o n 2 argc :. quad 0 3 argv :. quad 0 4 a :. quad 0 5 b :. quad 0 6 c :. quad 0 7 mesg :. a s c i z fun(%qd,%qd,%qd ) = %qd\n 8 9. s e c t i o n. text 10. g l o b a l main 11 12 main : pushq %rbp 13 movq %rsp,%rbp 14 movq %rdi, argc 15 movq %r s i, argv 16 movq 8(% r s i ), %r d i 17 c a l l a t o l 18 movq %rax, a 19 movq argv, %rax 20 movq 16(% rax ),% r d i 21 c a l l a t o l 22 movq %rax, b 23 movq argv, %rax 24 movq 24(% rax ),% r d i 25 c a l l a t o l 26 movq %rax, c 27 movq a,% r d i 28 movq b,% r s i 29 movq %rax,%rdx 30 31 c a l l fun 32 movq $mesg,% r d i 33 movq a,% r s i 34 movq b,% rdx 35 movq c,% rcx 36 movq %rax,% r8 37 xor %al,% a l 38 c a l l p r i n t f 39 xorq %rax, %rax 40 l e a v e 41 r e t 42 43 fun : push %rbp 44 movq %rsp,%rbp 45 andq %r s i,% r d i 46 andq %r s i,%rdx 47 xorq %rdi,%rdx 48 movq %rdx,% rax 49 e n d i f : l e a v e 50 r e t Figur 3: Prog4 7

Figur 4: En logisk funktion med tre input A B C F 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 A B C F 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 A B C F 0 0 0 1 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 1 A B C F 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 (a) Sandhedstabel (b) Sandhedstabel (c) Sandhedstabel (d) Sandhedstabel Tabel 1: Sandhedstabeller 8

Figur 5: En logisk funktion med to input A B F 0 0 1 0 1 1 1 0 0 1 1 1 A B F 0 0 1 0 1 0 1 0 0 1 1 1 A B F 0 0 1 0 1 0 1 0 1 1 1 0 A B F 0 0 0 0 1 1 1 0 1 1 1 0 (a) Sandhedstabel (b) Sandhedstabel (c) Sandhedstabel (d) Sandhedstabel Tabel 2: Sandhedstabeller 9