Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI MASKINARKITEKTUR Blok 2 samt Reeksamination i DATALOGI MASKINARKITEKTUR Blok 1 og arkitekturdelen af DATALOGI 1E Vejledende løsninger til Skriftlig eksamen fredag den 21. januar 2005 2 timer Der er fem opgaver i alt og disse giver følgende antal point: Spørgsmål Vægt 1 20 point 2 20 point 3 20 point 4 20 point 5 20 point max 100 point Alle de sædvanlige hjælpemidler må benyttes, herunder lærebog, kopier af transperenter, egne noter etc. Lydløse elektroniske lommeregnere mv. må benyttes, hvis disse ikke har trådløs netadgang eller telefoni. En almindelig bærbar PC vil ikke være tilstrækkelig lydløs pga. blæser, harddisk og støjende tastatur. Det er tilladt at bruge blyant til besvarelsen, såfremt denne er tydelig. I opgaveteksten refereres til lærebogen COD: David A. Patterson og John L. Hennessy, Computer Organization & Design: The Hardware/Software Interface, 2./3. oplag, Morgan Kaufmann Publishers, Inc. (1998/2005).
Vejledende løsning til skriftlig eksamenjanuar 2005 i DAT-MASKINARKITEKTUR side 1 af 6 Opgave 1: Assemblerprogrammering (20 point) Betragt nedenstående funktion skrevet i MIPS-assemblersproget:.data # 1. _infinity:.word 0x80000000 # 2..text # 3..globl ilogb # 4. ilogb: bne $a0, $zero, start # 5. lw $v0, _infinity # 6. jr $ra # 7. start: add $t0, $a0, $zero # 8. add $v0, $zero, $zero # 9. loop: srl $t0, $t0, 1 #10. beq $t0, $zero, return #11. addi $v0, $v0, 1 #12. j loop #13. return: jr $ra #14. Spørgsmål 1.1 (5 point) Beskriv detaljeret, hvilken funktion de benyttede registre har i funktionen ilogb. Spørgsmål 1.2 (5 point) Giv en overordnet beskrivelse af, hvordan assemblerfunktionen ilogb fungerer, og hvad den gør. Spørgsmål 1.3 (5 point) Skriv en funktion i et højniveausprog (f.eks. Java eller C) eller i pseudokode, der udfører den samme operation som assemblerfunktionen ilogb. Funktionen skal så vidt muligt fungere på samme måde som assemblerfunktionen. Spørgsmål 1.4 (5 point) Assemblerfunktionen ilogb er ydelsesmæssigt ikke optimal. Angiv, hvordan man kan forbedre udførelsestiden for funktionen. Argumenter også for, hvorfor din løsning er bedre. Afventer
Vejledende løsning til skriftlig eksamenjanuar 2005 i DAT-MASKINARKITEKTUR side 2 af 6 Opgave 2: Talrepræsentation (20 point) Lad A og B være heltallene: A = (200) 10 og B = ( 208) 10. Spørgsmål 2.1 (6 point) Angiv de 9 bit, som repræsenterer heltallene A og B i 2-komplementform med 9 bit. Svar: A 2c = 0.1100.1000 og B 2c = 1.0011.0000 Spørgsmål 2.2 (6 point) Angiv de 9 bit, som repræsenterer heltallene A og B i 9 bit i biased notation med en forskydning på 255. Svar: A bias = 1.1100.0111 og B bias = 0.0010.1111 Spørgsmål 2.3 (8 point) Angiv de 32 bit, som repræsenterer B i IEEE 754-standarden for 32-bit flydende tal. Tallet er negativt så bit 31 er 0. Da 128 < 208 < 256, da 128 = 2 7, og da bias er 127 er eksponentværdien lig 127 + 7 = 134. Bit 30-23 er derfor 10000110. Da (208/128 1) = 80/128 = 5/8 = (4 + 1)/8 fås bit 22-20 lig 101. Bit 19-0 er alle lig 0. Samlet fås: 1.10000110.1010000 000000000000000000 Opgave 3: Logiske udtryk og kredsløb (20 point) Spørgsmål 3.1 (6 point) Den logiske funktion xnor er givet ved udtrykket A xnor B = (A and B) or (Ā and B),
Vejledende løsning til skriftlig eksamenjanuar 2005 i DAT-MASKINARKITEKTUR side 3 af 6 hvor A og B er logiske (boolske) variabler, and og or er and- og or-operationer og Ā og B er not-operationen på henholdsvis A og B. Opskriv sandhedstabellen for udtrykket A xnor B. Spørgsmål 3.2 (7 point) Som en del af et processordesign er der opstået et behov for at beregne tre logiske funktioner F, G og H ud fra inputtene A, B og C. Sandhedstabellen for F, G og H er givet ved: A B C F G H 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 0 1 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 Opskriv funktionerne F, G og H som logiske udtryk på form af sum af produkter udelukkende ved brug af operationerne and, or, og not. Spørgsmål 3.3 (7 point) Tegn de fundne udtryk fra spørgsmål 3.2 som kredsløb udelukkende ved brug af and-, or-, og not-gates.
Vejledende løsning til skriftlig eksamenjanuar 2005 i DAT-MASKINARKITEKTUR side 4 af 6 3.1) 3.2) A B A xnor B 0 0 1 0 1 0 1 0 0 1 1 1 F = ABC (1) G = A xor B xor C (2) = Ā BC + ĀB C + A B C + ABC (3) H = AB +C (4) = (A +C)(B +C) (5) = Ā BC + ĀBC + A BC + AB C + ABC (6) 3.3) afventer Opgave 4: Lagerhierarki (20 point) Antag at der er givet en maskine med en cache, som er forsynet med 512 indgange hver med en blokstørrelse på 8 ord. Antag også, at adressefeltet er på 32 bit, og at cachen benytter direct mapping. Spørgsmål 4.1 (4 point) Tegn en skitse for, hvordan cachen er opdelt. Spørgsmål 4.2 (6 point) Tegn opdelingen af en adresse i byte offset, block offset, index og tag, og angiv hvor mange bits, der benyttes til hver del. Spørgsmål 4.3 (5 point) Hvor mange byte data kan cachen indeholde?
Vejledende løsning til skriftlig eksamenjanuar 2005 i DAT-MASKINARKITEKTUR side 5 af 6 Spørgsmål 4.4 (5 point) Hvor mange byte bruger cachen ialt? 4.1) [valid, tag, data 1, data 2,..., data8] 4.2) Der skal bruges 2 bit til at udpege en byte i et ord, 3 bit til at udpege et ord i en blok på 8, og 9 bit til at udpege ind indgang ud af 512. Da adressefeltet er på 32 bit medfører den en opdeling af adressefeltet som følger: [tag: 32-9 - 3-2 bit= 18 bit, index: 9 bit, ord-offset: 3 bit, byteoffset : 2 bit] 4.3) Der er 512 indgange og hver har 8 ord, hvilket vil sige at cachen kan indeholde data svarende til: 512 blok * 8 ord/blok * 4 Byte/ord = 16384 Byte = 16 KByte 4.4) Hver indgang bruger 1 valid bit, 18 tag bit og 8 ord, hvilket ialt er: 1 bit + 18 bit + 8 ord * 32 bit/ord = 275 bit. Derfor bruger cachen i alt: 512 indgang * 275 bit/indgang = 140800 bit = 17.1875 KByte. Opgave 5: Processorimplementering (20 point) Denne opgave omhandler den pipelinede processorimplementering, som er beskrevet i lærebogen [COD, afsnit 6.1 6.6]. I bogen går man ud fra at de eneste instruktioner, som genvejsenheden er nødt til at håndtere, er de fire R-type instruktioner: add, sub, and og or. I denne opgave ser vi på, hvordan kontrollogikken i/for/af genvejsenheden bør udvides for også at understøtte andre instruktioner. Spørgsmål 5.1 (10 point) Vis, hvordan kontrollogikken i/for/af genvejsenheden kan udvides, sådan at alle datahazarder undgås i forbindelse med skriveinstruktioner (sw). Overvej i særdeleshed de to tilfælde, hvor a) en R-type instruktion bliver efterfulgt af en skriveinstruktion og b) en læseinstruktion (lw) bliver efterfulgt af en skriveinstruktion.
Vejledende løsning til skriftlig eksamenjanuar 2005 i DAT-MASKINARKITEKTUR side 6 af 6 Spørgsmål 5.2 (10 point) Vis, hvordan kontrollogikken i/for/af genvejsenheden kan udvides, sådan at alle datahazarder undgås i forbindelse med betingede hop (beq) og sådan at disse bliver færdiggjort i ID-trinnet. Overvej i særdeleshed de to tilfælde hvor a) en R-type instruktion bliver efterfulgt af et betingede hop, og b) en læseinstruktion bliver efterfulgt af et betingede hop. Afventer (Slut på eksamensspørgsmålene)