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



Relaterede dokumenter
DATALOGI 1E. Vejledende løsninger til Skriftlig eksamen mandag den 23. juni 2003

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

Oversættere. Vejledende løsninger til Skriftlig eksamen onsdag d. 20. april 2005

Oversættere / Datalogi 1E

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

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

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

CPUer og maskinkode DM534. Rolf Fagerberg

Repræsentation af tal

Repræsentation af tal

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Skriftlig Eksamen Beregnelighed (DM517)

Eksamensopgaver i DM17, Januar 2003

Repræsentation af tal

Eksamen dcomnet 2012Q4. Årskortsnummer Navn

DATALOGI 1E. Vejledende løsninger til Skriftlig eksamen fredag d. 16. januar 2004

Indhold. Maskinstruktur Kapitel 1. Assemblersprog Indledning Hop-instruktioner Input og output...

AVR MP Ingeniørhøjskolen i Århus Michael Kaalund

MIPS, registerallokering og MARS

Algorithms & Architectures II

HinkeHop DE HURTIGE 5-6 ÅR. Sådan gør du: Prøv at justere aktiviteten sådan her...! Uge 40

Computer Literacy. En stationær bordmodel. En Bærbar Notebook, Labtop, Slæbbar, Blærebar mm.

Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528)

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Maskinsprog. Martin Zachariasen, DIKU. Programmer og ordrer. Ordretyper. Operander og deres placering. Ordreformat. Procedurekald. Andre arkitekturer

Udsagnslogik. Anker Mørk Thomsen. 6. december 2013

Eksamen dcomnet Q2/2012. Studiekortsnummer Navn

DM13-1. Obligatoriske Opgave - Kredsløbs design

Dat1E K1-1 - En pipelinet mikroarkitektur. Espen Højsgaard Rune Højsgaard Christian Iversen

DM507 Algoritmer og datastrukturer

Baggrundsnote om logiske operatorer

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

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig eksamen i Datalogi

Skriftlig Eksamen Algoritmer og sandsynlighed (DM538)

Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528)

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Danmarks Tekniske Universitet

Grundlæggende køretidsanalyse af algoritmer

Skriftlig eksamen i Datalogi

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

Induktive og rekursive definitioner

Københavns Universitet, Det naturvidenskabelige Fakultet. Afleveringsopgave 1

Bits, bit operationer, integers og floating point

Skriftlig Eksamen Introduktion til lineær og heltalsprogrammering (DM515)

Computerarkitektur Eksamen 2014Q3. Niels Olof Bouvin. Studienummer Navn

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

Danmarks Tekniske Universitet

DM507 Algoritmer og datastrukturer

Computerarkitektur. - en introduktion til computerarkitektur med LINDA

Reeksamen i Diskret Matematik

DM507 Algoritmer og datastrukturer

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

Skriftlig eksamen Vejledende besvarelse MATEMATIK B (MM02)

Transkript:

Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen mandag den 23. juni 2003 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves besvarelse bedømmes som en helhed. Vægtningen af de enkelte spørgsmål i en opgave vil ikke være præcist proportional med tidsangivelserne, som altså kun er vejledende. Opgave Tid 1 60 min. 2 60 min. 3 60 min. 4 60 min. Alle de sædvanlige hjælpemidler må benyttes, herunder også lydløse elektroniske lommeregnere og PDA ere (f.eks. Palm Pilot), dog ikke hvis disse har trådløs netadgang eller telefoni. En almindelig bærbar PC vil ikke være tilstrækkelig lydløs p.g.a. blæser, harddisk og støjende tastatur. Det er tilladt at bruge blyant til besvarelsen, såfremt denne er tydelig.

Skriftlig eksamen mandag d. 23. juni 2003 i Datalogi 1E side 1 af 7 Opgave 1: Arkitektur (60 min.) Spørgsmål 1.1 (15 min.) En maskine, der har en ordlængde på 32 bit og benytter byte-addressering, anvender en 2-vejs sæt-associativ cache således, at hvert sæt-element er organiseret med en blokstørrelse på 16 ord (64 byte). Cachen kan ialt rumme 512 KB. a) Beskriv felterne i adresseformatet, og angiv felternes størrelse. b) Beregn hvor mange bit, det kræver at implementere cachen samt størrelsen af det absolutte overhead. Spørgsmål 1.2 (10 min.) En processor er forbundet med 4 ydre enheder, der hver kan afbryde processoren ved et interrupt (et højt signal - logisk 1) på en interruptlinie I i,i = 0..3. Da flere enheder samtidig kan signalere en afbrydelse, benyttes en interrupt-prioriteringsenhed, der som inddata tager signalerne I i, og producerer signalerne Int og (O 1 O 0 ). Signalet Int angiver, om mindst en enhed signalerer et interrupt. De to signaler O j koder (binært) indeks på den enhed med højeste prioritet, som ønsker betjening. Et signal på linien I i er højere prioriteret end et signal på linien I j hvis i < j. Hvis ingen enheder signalerer interrupt, er værdien af O 1 og O 0 ligegyldig (don t care). a) Angiv optimerede logiske udtryk for O 1 og O 0. Spørgsmål 1.3 (35 min.) Betragt decimaltallene A = 17, B = 11, og C = 1.75. a) Angiv bitmønstrene for angivelse af de tre tal A, B, og C ved brug af IEEE-754 standarden for flydende tal i 32 bit. b) Angiv bitmønstrene for tallene A og B, begge opfattet som heltal, ved 2-komplement repræsentation i 6 bit. c) Beskriv detaljeret hvorledes multiplikation af tallene A og B, begge opfattet som heltal og repræsenteret i 6 bits 2-komplement, foretages ved brug af Booths algoritme. Det anbefales at benytte et skema, hvor hver linie beskriver et trin i processen og bl.a. viser bitmønstrene for indholdet af de registre, der benyttes i metoden. Husk at kommentere hvert trin.

Skriftlig eksamen mandag d. 23. juni 2003 i Datalogi 1E side 2 af 7 Opgave 2: Grammatikker og automater (60 min.) Spørgsmål 2.1 (10 min.) a) Lav en DFA for følgende sprog: ikke-tomme bitfølger, hvor der maksimalt er tre ens bit efter hinanden. Spørgsmål 2.2 (50 min.) Vi betragter en simpel variant af XML hvor end-tags er stavet omvendt end de tilsvarende tags. F.eks. vil <cat> blive afsluttet med </tac>. Endvidere begrænser vi de bogstaver, man kan bruge i tags til sættet {a, c, g, t}. Et eksempel på en tekst i denne variant af XML er angivet herunder. Linieskift og blanktegn er indsat for læselighedens skyld og er ikke en del af teksten. <gattaca> <act><cc></cc><cc></cc></tca> <act><gag><cat></tac></gag></tca> </acattag> Følgende grammatik beskriver denne XML variant: X X X X X <T > T >X </ T at a T ct c T gt g T tt t Læg mærke til, at < / er to separate tegn. a) Vis at grammatikken er tvetydig, ved at angive to forskellige syntakstræer for den tomme tegnfølge. b) Omskriv grammatikken, så den er entydig. c) Er den nye grammatik LL(1)? Med andre ord, kan man vælge produktion entydigt ved at se på næste inddatategn?. Begrund svaret. Vink: På hvilke symboler vælges den tomme produktion for X?

Skriftlig eksamen mandag d. 23. juni 2003 i Datalogi 1E side 3 af 7 d) Hvis grammatikken ikke er LL(1), så omskriv den, så den bliver det. Vink: Del første produktion for T op i to ved at tage den del af højresiden, der starter med X over i en ny produktion. Omskriv derefter denne nye produktion. e) Vis LL(1) tabellen for den i delspørsgmål d omskrevne grammatik. Hvis ikke du har løst delspørgsmål d, så brug den entydige grammatik fra delspørgsmål b og påpeg eventuelle konflikter i tabellen.

Skriftlig eksamen mandag d. 23. juni 2003 i Datalogi 1E side 4 af 7 Opgave 3: Oversætterteknik (60 min.) Spørgsmål 3.1 (8 min.) Figur 5.2 i Basics of Compiler Design viser typecheck af simple udtryk. Vi ændrer nu sproget, så + operatoren også er defineret for argumenter af type bool. I givet fald skal begge argumenter være boolske værdier, og resulatet bliver da den logiske disjunktion (eller) mellem disse værdier. a) Vis hvordan Check Exp funktionen fra figur 5.2 skal ændres, så + virker både på heltal (som tidligere) og på boolske værdier (som beskrevet herover). Spørgsmål 3.2 (26 min.) I nogle processorer bruger aritmetiske instruktioner kun to registre, idet resulatet lægges i samme register, som indeholder det første argument til operationen. Eksempelvis kan kopi- og additionsinstruktionerne se ud som følger: MOV r d,r t r d := r t ADD r d,r t r d := r d + r t ADDI r d,k r d := r d + k Notationen er ækvivalent til den, der er brugt i figur 7.1 i Basics of Compiler Design. Ligesom på MIPS er register 0 (R0) konstant lig med 0. a) Tilføj mønstre til kodegenerering (i stil med figur 7.1) for hver af følgende mellemkodeinstruktioner: r d := k r d := r s + r t r d := r s + k hvor r d er forskellig fra r s og r t. Brug kun de ovenover viste kopi- og additionsinstruktioner. b) Foreslå metoder til at mindske antallet af ekstra kopiinstruktioner, som denne kodegenerering indfører. Vink: Dette kan ske i forskellige faser i oversættelsen.

Skriftlig eksamen mandag d. 23. juni 2003 i Datalogi 1E side 5 af 7 Spørgsmål 3.3 (26 min.) Det er kendt at logisk konjunktion er associativ, dvs. at: p (q r) = (p q) r. Afsnit 6.6.1 i Basic of Compiler Design omhandler såkaldte sekventielle logiske operatorer, hvor andet argument til operatoren ikke udregnes, hvis værdien af det første argument er tilstrækkeligt til at finde resultatet. F.eks. udregnes andet argument til && (sekventiel logisk konjunktion) ikke, hvis det første argument har værdien false, a) Argumenter uformelt for, at den sekventielle logiske konjunktionsoperator også er associativ, dvs. at p&&(q&&r) og (p&&q)&&r har samme betydning, inklusive hvorvidt deludtrykkene p, q og r bliver beregnet. b) Vis koden for p&&(q&&r) jvf. figur 6.8 i Basics of Compiler Design. I det yderste kald til Trans Cond har attributterne label t og label f værdierne l 1 og l 2. Kald til newlabel() giver l 3, l 4, l 5,... i nævnte rækkefølge. Udfold ikke kaldene til Trans Cond for p, q og r. c) Vis koden for (p&&q)&&r under samme forudsætninger som i delspørgsmål b. d) Sammenlign koden fra delspørgsmål b og c. Fremgår associativiteten klart?

Skriftlig eksamen mandag d. 23. juni 2003 i Datalogi 1E side 6 af 7 Opgave 4: Maskinsprog og ydelse (60 min.) Vi ønsker at forbedre ydelsen af et grafikprogram på en pipelinet maskine som den, der er beskrevet i Patterson & Hennessy, kap. 6.1 6.6 (maskinen er udvidet til også at kunne udføre addi ordrer). Vi er i den specielle situation, at kildekoden til grafikprogrammet er forsvundet, og vi har kun adgang til programmets maskinkode. Derfor kan vi kun foretage simple ændringer i selve maskinprogrammet, og overvejer derfor fortrinsvis at ændre selve maskinen for at opnå en bedre ydelse. Spørgsmål 4.1 (15 min.) Vores nuværende maskine kører med en klokfrekvens på 500 MHz. Maskinprogrammet udfører ialt 10 7 maskinordrer, heraf 3 10 6 hent/gem ordrer og 2 10 6 hopordrer. Hent/gem ordrerne har et CPI (Cycles Per Instruction) på 1.7, mens hopordrer tager 1 CPI plus et overhead til dårligt forudsagte (mispredicted) hop på ialt 500000 cykler. Alle andre ordrer har et CPI på 1.0. a) Hvor mange klokcykler udfører maskinprogrammet ialt? b) Hvad er udførelsestiden? c) Hvor stor forbedring i udførelsestid (i procent) kan en forbedret hopforudsigelse maksimalt give? Det antages at hardwaren til hopforudsigelse kan ændres ubegrænset, men klokfrekvensen og maskinprogrammet kan ikke ændres. Spørgsmål 4.2 (15 min.) En nærmere analyse af traces af maskinprogrammets kørsel afslører, at der ofte udføres ordresekvenser som og sw $t1, 0($t2) addi $t2, $t2, 4 lw $t1, 0($t2) addi $t2, $t2, 4 a) Hvad indikerer disse ofte forekommende sw/addi og lw/addi sekvenser at programmet laver? b) Vi overvejer at implementere to nye maskinordrer, der kan udføre hver af disse to typer ordresekvenser som en ordre. Beskriv kort hvad der taler for og imod en sådan ændring af arkitekturen.

Skriftlig eksamen mandag d. 23. juni 2003 i Datalogi 1E side 7 af 7 Spørgsmål 4.3 (30 min.) Det viser sig, at 70% af alle udførte hent/gem ordrer i maskinprogrammet bliver efterfulgt af en addi ordre, der udelukkende opererer på base-adresse registeret (som vist i spørgsmål 4.2). Vi beslutter os derfor først for at implementere følgende nye ordre: swaddi register1, value(register2) Denne ordre har samme layout som en almindelig sw ordre, men har følgende effekt: Værdien af register1 gemmes på adressen angivet ved register2. Herefter sættes register2 til at være lige med register2 + value, dvs. at konstanten value adderes til værdien af register2 og resultatet skrives tilbage til register2. a) Beskriv overordnet hvordan du ville implementere swaddi på datavejen. Benyt figur 6.30 i Patterson & Hennessy som udgangspunkt for din beskrivelse; ignorer eventuelle nye datahazards. b) Beskriv hvad en lignende ordre lwaddi ville udføre, og giv en overordnet beskrivelse af, hvordan du ville implementere denne ordre på datavejen. Angiv væsentlige forskelle i forhold til implementationen af swaddi. c) Efter at have implementeret disse to nye ordrer viser det sig, at klokfrekvensen falder til 450 MHz. Hvad bliver udførelsestiden for maskinprogrammet der benytter de nye ordrer? instruktionstal og CPI værdierne fra spørgsmål 4.1 antages at være uændret. Specielt kan det antages, at den nye ordre også har et CPI på 1.7. Antallet af maskinordrer fra spørgsmål 4.1 skal justeres svarende til brug af de nye ordrer.