Københavns Universitet Natrvidenskabelig Embedseksamen DATALOGI ASKINARKITEKTUR Skriftlig eksamen fredag den 29. oktober 24 kl. -2 Frederiksholms kanal 4B Der er fem opgaver i alt og disse giver følgende antal point: Spørgsmål Vægt 25 point 2 2 point 3 2 point 4 5 point 5 2 point ma point For at bestå eksamen skal man opnå mindst 5 point. Alle de sædvanlige hjælpemidler må benyttes, hernder 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 tastatr. Det er tilladt at brge blyant til besvarelsen, såfremt denne er tydelig. I opgaveteksten gives vink gennem henvisinger til lærebogen COD98: David A. Patterson og John L. Hennessy, Compter Organization & Design: The Hardware/Software Interface, 2. oplag, organ Kafmann Pblishers, Inc. (998).
Skriftlig eksamen fredag d. 29. oktober 24 i DAT-ASKINARKITEKTUR side af 6 Opgave : Logiske dtryk og kredsløb (25 point) Spørgsmål. (5 point) Omskriv det logiske dtryk (A + B) (A + ( B + C)) som en sm af prodkter og optimer dtrykket. Spørgsmål.2 (5 point) Er følgende to logiske dtryk A + Ā B og Ā B ækvivalente? Spørgsmål.3 (5 point) Lad A = (a a ) og B = (b b ) være to 2-bit størrelser, der repræsenterer ikkenegative heltal og lad 2-bit størrelsen C = (c c ) repræsentere den nmeriske differens A B. a) Angiv sandhedstabellen for C = (c c ). b) Angiv det optimerede logiske dtryk for c ved en sm af prodkter. Vink: Benyt Karnaghkort. Opgave 2: Talrepræsentation og aritmetik (2 point) Spørgsmål 2. (5 point) Angiv de 8 bit som repræsenterer heltallet ( 7) i 2-komplement med 8 bit. Spørgsmål 2.2 (5 point) Angiv de 8 bit som repræsenterer heltallet (7) i 8 bit i biased notation med en forskydning på 27. Spørgsmål 2.3 ( point) Angiv de 32 bit som repræsenterer decimaltallet (7.) i IEEE 754-standarden for 32-bit flydende tal.
Skriftlig eksamen fredag d. 29. oktober 24 i DAT-ASKINARKITEKTUR side 2 af 6 Opgave 3: Datavej og kontrol (2 point) I den grndlæggende fler-cykls processorimplementering afslttes hopinstrktioner i tredie trin. Se vedlagte to figrer sidst i opgavesættet samt evt. lærebogen [COD98, 5.4]. Spørgsmål 3. ( point) Beskriv kort hvordan man knne ændre designet af datavej og kontrol, hvis man vil gøre hopinstrktionen (j) færdig allerede i andet trin. Hvis d mener det ikke kan lade sig gøre, bør d argmentere for, hvorfor en sådan modifikation ikke er mlig. Spørgsmål 3.2 ( point) Hvis færdiggørelsen af alle betingede og betingede hop blev flyttet fra trin tre til trin to, hvor meget bedre CPI ville man knne opnå? Antag at instrktionsstrømmen har følgende sammensætning: læseinstrktioner (loads) 25 % skriveinstrktioner (stores) % betingede hop % betingede hop 2 % ALU instrktioner 52 % Opgave 4: Lagerhierarki, I/O og bsser (5 point) Et lagerhierarki er forsynet med en cache med en kapacitet på 6KB for data. Antag at adressefeltet er på 32 bit, og at cachen benytter direkte afbilding (direct mapping) med en blokstørrelse på 64 ord (words) på hver 32 bit. Spørgsmål 4. (5 point) Hvor mange bit skal der benyttes til at implementere cachen? I programmeringssproget C adresserer man element i i en på forhånd allokeret tabel A ved syntaksen A[i]. Antag at C organiserer tabeller sekventielt i lageret, altså at element A[] og A[] er naboer i adressermmet. Vi vil n implementere en 2-dimensionel tabel vha. en -dimensionel tabel som følger:
Skriftlig eksamen fredag d. 29. oktober 24 i DAT-ASKINARKITEKTUR side 3 af 6 int main() { const int ROWS = 3; const int COLS = 4; doble A[ROWS*COLS]; int i, j; } // Gennemløb I for(i = ; i < ROWS; i++) for(j = ; j < COLS; j++) A[i*COLS+j] =.; Spørgsmål 4.2 (5 point) Tegn den 2-dimensionelle tabel, og angiv elementernes naboskab i lageret for tabellen. Den 2-dimensionelle tabel kan alternativt gennemløbes på følgende måde: int main() { const int ROWS = 3; const int COLS = 4; doble A[ROWS*COLS]; int i, j; } // Gennemløb II for(j = ; j < COLS; j++) for(i = ; i < ROWS; i++) A[i*COLS+j] =.; Spørgsmål 4.3 (5 point) Hvilken af de to gennemløb (I eller II) vil være hrtigst, hvis cachen er som beskrevet ovenfor? Begrnd svaret.
Skriftlig eksamen fredag d. 29. oktober 24 i DAT-ASKINARKITEKTUR side 4 af 6 Opgave 5: Pipelining (2 point) Betragt nedestående maskinkode: lw $, ($8) lw $, 4($8) beq $, $, 2 add $3, $, $ sw $3, 8($8)... Antag at koden bliver eksekveret i en processor med fem-trins pipeline (se evt. lærebogen [COD98, 6]). Spørgsmål 5. ( point) Hvilke hasarder kan forekomme, hvis processoren ikke har indbygget hasardafhjælpning? Spørgsmål 5.2 ( point) Hvilke hasarder kan ndgås ved hjælp af forwarding, og for hvilke er blokering nødvendigt? Begrnd svaret.
Skriftlig eksamen fredag d. 29. oktober 24 i DAT-ASKINARKITEKTUR side 5 af 6 Bilag til opgave 3 2 emory address comptation ALUSrcA = ALUSrcB = ALUOp = Start fetch em ALUSrcA = IorD = IRWrite ALUSrcB = ALUOp = PCWrite PCSorce = 6 (Op = 'LW') or (Op = 'SW') Eection ALUSrcA = ALUSrcB = ALUOp= 8 (Op = R-type) Branch completion ALUSrcA = ALUSrcB = ALUOp = PCWriteCond PCSorce = decode/ register fetch (Op = 'BEQ') 9 ALUSrcA = ALUSrcB = ALUOp = (Op = 'J') Jmp completion PCWrite PCSorce = 3 (Op = 'LW') emory access (Op = 'SW') 5 emory access 7 R-type completion em IorD = emwrite IorD = RegDst = RegWrite emtoreg = 4 Write-back step RegDst= RegWrite emtoreg=
Skriftlig eksamen fredag d. 29. oktober 24 i DAT-ASKINARKITEKTUR side 6 af 6 Bilag 2 til opgave 3. PC Address Write data emory emdata [3-26] [25 2] [2 6] [5 ] register [5 ] emory data register PCWriteCond PCWrite IorD Otpts ALUOp ALUSrcB em emwrite emtoreg Control ALUSrcA RegWrite IRWrite [25 ] [5 ] Op [5 ] PCSorce RegDst 6 register register 2 Registers Write register Write data data data 2 32 Sign etend Shift left 2 A B 4 2 3 26 28 Shift left 2 ALU control PC [3-28] Zero ALU ALU reslt Jmp address [3-] ALUOt 2 [5 ] (Slt på eksamensspørgsmålene)