Datorsystemteknik D. Lösningar till tentamen i kursen EDA330 14/1 2000



Relevanta dokument
Tentamen i kursen EDA330. Datorsystemteknik D 14/ Lösningar: Anslås måndag 17/1 på institutionens anslagstavla utanför laboratoriet

Tentamen i kursen EDA330. Datorsystemteknik D 1/ Lösningar: Anslås tisdag 1/6 på institutionens anslagstavla utanför laboratoriet

Vad bör göras? Steg 1. RISC => pipelining. Parallellism. Pipelining. Nya LDA 13. RISC(reduced instruction set computer) Öka klockfrekvensen

Stack och subrutiner Programmeringskonventionen

Datorsystemteknik DVGA03 Föreläsning 8

Datorsystemteknik för D/E

A-del motsvarande KS1

DatorsystemteknikDAVA14 Föreläsning 9

Datorsystemteknik för D/E

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

0.1. INTRODUKTION Instruktionens opcode decodas till en språknivå som är förstålig för ALUn.

Datorsystemteknik DVG A03 Föreläsning 3

Minnet från processorns sida Datorteknik

Datorsystemteknik för E/D

Lösningar till tentamen i EIT070 Datorteknik

Digitalteknik och Datorarkitektur 5hp

Digitalteknik och Datorarkitektur

Datorteknik. Föreläsning 6. Processorns uppbyggnad, pipelining. Institutionen för elektro- och informationsteknologi, LTH. Mål

CE_O1. Nios II. Enkla assembler-instruktioner.

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

Övningsuppgifterna i kapitel F avser FLIS-processorn, vars instruktioner och motsvarande koder definieras i INSTRUKTIONSLISTA FÖR FLISP.

Datorarkitektur I. Tentamen Lördag 10 April Ekonomikum, B:154, klockan 09:00 14:00. Följande gäller: Skrivningstid: Fråga

Provmoment: Ladokkod: Tentamen ges för: Tentamen TE111B El3. Namn: Personnummer: Tentamensdatum: Tid: 14:00-18:00.

c a OP b Digitalteknik och Datorarkitektur 5hp ALU Design Principle 1 - Simplicity favors regularity add $15, $8, $11

Lösningar till tentamen i EIT070 Datorteknik

Tentamen. Datorteknik Y, TSEA28

CE_O6. Parallell in/utmatning (I/O). Förberedelser till laboration nios2io.

Digital- och datorteknik

Foto: Rona Proudfoot (some rights reserved) Datorarkitektur 1. Datapath & Control. December

Datorsystem Laboration 2: Minnesmappade bussar

Tentamen. Datorteknik Y, TSEA28

Datorsystemteknik för IT

Det finns en hemsida. Adressen är

CE_O5. Cacheminne. Hemlaboration 2.

Mål. Datorteknik. Innehåll. Innehåll (forts) Hur ser ett program ut? Hur skapas maskinkoden?

Datorsystemteknik DAV A14 Föreläsning 1

Tentamen. Datorteknik Y, TSEA28

Institutionen för elektro- och informationsteknologi, LTH

Datorteknik. Föreläsning 3. Assembler, stack och subrutiner, programmeringskonventionen. Institutionen för elektro- och informationsteknologi, LTH

NUV 647E. Digitalteknik och Datorarkitektur 5hp. 3x12 = 36 2x12 = 24 1x12 = 12 0x12 = 18

Lösningar till tentamen i EIT070 Datorteknik

Skapa test med fritextfrågor

Tentamen i EIT070 Datorteknik

Kursutvärdering. Samhällskunskap A

Besvara de elektroniska frågorna (se kurshemsidan). Läs kapitel i kursbok.

Tentamen Datorteknik Y, TSEA28 Datum

Lathund Webbanmälan. till vidareutbildningar

Lösningar till valda övningsuppgifter i. Computer Organization & Design The Hardware / Software Interface (2nd ed.)

Institutionen för datavetenskap 2014/15

Hanne Solem Görel Hydén Sätt in stöten! MATEMATIK

Att använda pekare i. C-kod

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Institutionen för elektro- och informationsteknologi, LTH

Datorteknik. Föreläsning 2. Programmering i C och assembler MIPS instruktionsarkitektur. Institutionen för elektro- och informationsteknologi, LTH

Maskinorienterad Programmering /2011. Maskinorienterad Programmering 2010/11. Maskinnära programmering C och assemblerspråk

Föreläsning 3.1: Datastrukturer, en översikt

Sök uppgifter om släktingar

Grunderna i stegkodsprogrammering

Datorsystemteknik Föreläsning 7DAVA14

Digitalteknik och Datorarkitektur 5hp

Tentamen den 17 mars 2016 Datorteknik, EIT070

Problem: BOW Bowling. Regler för Bowling. swedish. BOI 2015, dag 1. Tillgängligt minne: 256 MB

SVAR TILL TENTAMEN I DATORSYSTEM, HT2013

TENTAMEN. Datorteknik. D1/E1/Mek1/Ö Hjälpmedel: Häfte" ARM-instruktioner", A4-format, 17 sidor. Maxpoäng: 60p

Omtentamen i CDT204 - Datorarkitektur

Lösningsförslag till tentamen i IS1500 Datorteknik

Tentamen Datorteknik D del 2, TSEA49

4. Pipelining. 4. Pipelining

CE_O3. Nios II. Inför lab nios2time

Mål. Datorteknik. Innehåll. Vad händer med en add-instruktion? Vad händer med en add-instruktion. Instruktioner som bitmönster i minnet

CE_O8. Cacheminne. Hemlaboration 2.

Matematik Åk 9 Provet omfattar stickprov av det centrala innehållet i Lgr b) c) d)

75059 Stort sorteringsset

Frågebanker, frågeuppsättningar och slumpvisa block

Föreläsningsanteckningar 5. Cacheminnen

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28

TENTAMEN. Datorteknik. D1/E1/Mek1/Ö Hjälpmedel: Häfte "ARM-instruktioner", A4-format, 17 sidor. Maxpoäng:

Att träna och köra eldriven rullstol

Tentamen i. för D1 m fl, även distanskursen. fredag 13 januari 2012

Programmerbar logik. Kapitel 4

Kursutvärderingsformulär

Föreläsning 6: Introduktion av listor

Flera processer. Minneshantering. Trashing kan uppstå ändå. Ersätta globalt

Tentamen i IS1500/IS1200/2G1518 Datorteknik fredagen den 19 augusti 2011 kl

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik

LINKÖPINGS TEKNISKA HÖGSKOLA Institutionen för Ekonomisk och Industriell Utveckling Ou Tang

CE_O2. Nios II. Subrutiner med mera.

MEDBORGARPANEL Nummer 1 - Juli 2013 Tillgänglighet i vården

Enkäten inleds med några frågor om demografiska data. Totalt omfattar enkäten 85 frågor år år år. > 60 år år.

Datorsystemteknik DVGA03 Föreläsning 5

Digital- och datorteknik

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Dom 5 steg som vi anser är nyckeln till stabila processer och målstyrt förbättringsarbete är:

OBS!! Detta är DEL 2 av tentan. För att få ut denna måste du ha lämnat in del 1. Om du inte fått ut del 1 bör du meddela skrivningsvakten. OBS!!

Fotbollsskolan. skott.indd

Uppgift (poäng) 1 (2) 2 (3) 3 (4) 4 (4) 5 (3) 6 (4) 7 (6) 8 (6) 9 (8) Summa

Modbus. Supportdokument. Lathund för att använda Modbus över RS XXX eller TCP/IP.

Bilaga 3 Enkät Göteborgs Universitet/Vårdalinstitutet

Så här skrivs faktablad om MSB-finansierade forskningsprojekt

Transkript:

1(6) Lösningar till tentamen i kursen EDA330 Datorsystemteknik D 14/1 2000 Följande är skisser till lösningar av uppgifterna. Full poäng på en uppgift kräver i de flesta fall en något fylligare motivering. I en del fall är alternativa lösningar möjliga. 1. 02801200 16 = 00000010100000000001001000000000 2 a. op = 000000 = 0 => kolla funct = 000000 = 0 = sll => kolla shamt = 01000 = 8 rs = 10100 = 20 = $s4 rt = 00000 = 0 = $zero rd = 00010 = 2 = $v0 Instruktionen är sll $v0, $s4, 8, vilken skiftar värdet i register $s4 logiskt åtta steg åt vänster och lägger resultatet i register $v0. b. sign = 0 (positivt) exponent field = 00000101 2 = 5 10 = exponent +127 => exponent = -122 significand field = 00000000001001000000000 2 => significand = 1.00000000001001 2 Flyttalet är 1.00000000001001 2 *2-122 = 100000000001001 2 *2-136 = (1+8+2 14 )*2-136 = 16393 * 2-136 c. Tvåkomplementsform, och talet är positivt. Talet är 2 9 +2 12 +2 23 +2 25 =(2 0 + 2 3 + 2 14 + 2 16 ) * 2 9 = (1 + 8 + 16384 + 65536) * 2 9 = 81929 * 2 9 2. a. En virtuell adress kräver 28 bitar. Sidstorleken 16 KB innebär att 14 bitar krävs för sidoffset, varför virtuella sidnummer består av 28-14 = 14 bitar. Härav fås att varje process har upp till 16 Ksidor. De fysiska adresserna kräver också 28 bitar (2 28 B = 256 MB), varför fysiska sidnummer också består av 14 bitar. För varje virtuell sida behöver sidtabellen också lagra en valid bit (finns sidan i primärminnet?), en dirty bit (för write back), 4 protection bits (enligt uppgiften), och 8 replacement bits (tidsstämplar). För varje virtuell sida krävs alltså 14+1+1+4+8 = 28 bitar i sidtabellen. Eftersom varje sidöversättning ska ta upp ett jämnt antal byte krävs alltså 4 byte per virtuell sida. Med 64 processer och 16 Ksidor/process och 4 B/sida krävs totalt 64 16K 4 = 4 MB för sidtabellerna. b. Se kursboken.

Lösningar till tentamen i kursen EDA330 Datorsystemteknik D 14/1 2000 2(6) 3. a. Exekveringstid förutom I/O-väntetid = CPU-tid = I * CPI * T c. Här påverkas ej I men CPI och T c. Ny CPI blir 0,999*1,4 + 0,001*2 = 1,4006, dvs CPI ökar med 0,0006/1,4 = 0,04% (alltså försumbart). Ny Tc blir 1/(1,12*f) = 1/1,11 * gammal Tc. Exekveringstiden förändras alltså med en faktor 1,0004 * 0,9 = 0,9, dvs exekveringstiden minskar med 10%. b. Se kursboken. T.ex. metod 3: 1. Initiera Produktregister (64 bitar) med multiplikator i minst signifikanta del 2. Om minst signifikanta bit i Produkt är 0, hoppa till steg 4. 3. Addera multiplikand till mest signifikanta del av Produkt. 4. Skifta Produkt logiskt ett steg åt höger. 5. Om inte alla bitar i multiplikator testats, hoppa till steg 2. c. # Initiera produktreg mtlo $r1 mthi $zero addi $t8, $zero, 32 # Initiera biträknare lui $t9, 0x8000 # Konstant för skiftning # Testa LSB i produktreg L1: mflo $at andi $at, $at, 1 beq $at, $zero, L2 mfhi $at addu $at, $at, $r2 mthi $at L2: mflo $at srl $at, $at, 1 mtlo $at mfhi $at andi $at, $at, 1 beq $at, $zero, L3 mflo $at addu $at, $at, $t9 mtlo $at L3: mfhi $at srl $at, $at, 1 mthi $at # Om inte 1, # addera multiplikand # Skifta LSB av produkt # Kolla om bit ska skiftas # över från MSB # I så fall, addera bit # till LSB av produkt # Skifta MSB av produkt addi $t8, $t8, -1 # Räkna ner biträknare bne $t8, $zero, L1 # Repetera om bitar kvar I denna lösning utnyttjas att operandvärdena aldrig är större än 80000000 16, annars så måste en eventuell carry vid additionen av multiplikanden tas hänsyn till. (OBS! Andra godkända lösningar är möjliga.) d. I detta fall påverkas I och T c, men ej CPI. Ändring av T c beräknades i delupp-

Lösningar till tentamen i kursen EDA330 Datorsystemteknik D 14/1 2000 3(6) gift a. I genomsnitt tar multiplikationsrutinen i föregående deluppgift 4+17*32 = 548 instruktioner (vi antar att hoppen till L2 och L3 tas i genomsnitt varannan gång eftersom talen som multipliceras kan vara godtyckliga). Nytt I blir då 0,999*I + 0,001*548*I = 1,547*I. Totalt ändras alltså exekveringstiden med en faktor 1,547 * 0,9 = 1,39. Exekveringstiden ökar med 39%, medan kostnaden minskar med 8% (OBS! Detta svar beror på svaret på föregående deluppgift). e. Lösningen ska innehålla följande delsteg: 1. Spara undan register (i detta fall åtminstone $at, $t8, $t9, $a0, $a1). 2. Spara undan återhoppsadress från EPC, t.ex. i $k0. 3. Kontrollera bitarna 2-6 i Cause. Om ej 10, hoppa till rutin för andra avbrottstyper. 4. Kontrollera om instruktionen som orsakade exception var en multu (slå upp instruktionen med hjälp av återhoppsadressen). Om inte multu, hoppa till annan hanterare. 5. Flytta Oper1 till $ao och Oper2 till $a1, och anropa subrutinen MUL- TU. 6. Återställ undansparade register. 7. Hoppa tillbaka från avbrottshanterare.

Lösningar till tentamen i kursen EDA330 Datorsystemteknik D 14/1 2000 4(6) 4. a. 200, 0, 204, 100, 208, 212, 216, 100, 220, 224, 200, 4, 204, 104, 208, 212, 216, 104, 220, 224, 200, 8, 204, 108, 208, 212, 216, 108, 220, 224, 200, 12, 204, 112, 208, 212, 216, 112, 220, 224, 200, 16, 204, 116, 208, 212, 216, 116, 220, 224, 228. b. Block-offset = byte-adress mod 8 (2 ord/block = 8 byte/block) Block = byte-adress/8 Index = block mod 4 ((16 ord/(2 ord/block))/(2 block/set) = 4 set) Tag = block/4. c. Set/block 0 1 2 3 Byte Block Index Tag Hit 0 1 0 1 0 1 0 1 200 25 1 6 n 6 0 0 0 0 n 0 6 204 25 1 6 y 0 6 100 12 0 3 n 0 3 6 208 26 2 6 n 0 3 6 6 212 26 2 6 y 0 3 6 6 216 27 3 6 n 0 3 6 6 6 100 12 0 3 y 0 3 6 6 6 220 27 3 6 y 0 3 6 6 6 224 28 0 7 n 7 3 6 6 6 Hit rate = 4/10 = 40%.

Lösningar till tentamen i kursen EDA330 Datorsystemteknik D 14/1 2000 5(6) d. Set/block 0 1 2 3 Byte Block Index Tag Hit 0 1 0 1 0 1 0 1 200 25 1 6 y 7 3 6 6 6 4 0 0 0 n 7 0 6 204 25 1 6 y 7 0 6 6 6 104 13 1 3 n 7 0 6 3 6 6 208 26 2 6 y 7 0 6 3 6 6 212 26 2 6 y 7 0 6 3 6 6 216 27 3 6 y 7 0 6 3 6 6 104 13 1 3 y 7 0 6 3 6 6 220 27 3 6 y 7 0 6 3 6 6 224 28 0 7 y 7 0 6 3 6 6 200 25 1 6 y 7 0 6 3 6 6 8 1 1 0 n 7 0 6 0 6 6 204 25 1 6 y 7 0 6 0 6 6 108 13 1 3 n 7 0 6 3 6 6 208 26 2 6 y 7 0 6 3 6 6 212 26 2 6 y 7 0 6 3 6 6 216 27 3 6 y 7 0 6 3 6 6 108 13 1 3 y 7 0 6 3 6 6 220 27 3 6 y 7 0 6 3 6 6 224 28 0 7 y 7 0 6 3 6 6 Hit rate = 20/30 = 67%. e. Ordningen på minnereferenserna skulle troligen ändras, vilket i sin tur i princip kan påverka hit rate eftersom det är möjligt att block kastas ut i en annan ordning än tidigare. f. Vi sätter upp en tabell över vilka instruktioner som befinner sig i respektive pipelinesteg varje cykel genom att referera till deras minnesadresser. Adresser som håller på att slås upp markeras med fetstil.

Lösningar till tentamen i kursen EDA330 Datorsystemteknik D 14/1 2000 6(6) 5. Cyk IF ID E MEM WB Kommentar 1 200 - - - - Miss 7 204 200 - - - Träff 8 208 204 200 - - Miss 9 208-204 200/0-14 208-204 200/0 - Data först 20-208 - 204/100 200 Data först 21-208 - 204/100-26 212-208 - 204 27 216 212-208 - 28 216-212 - 208 29 216 - - 212-30 216 - - - 212 31 216 - - - - 33 220 216 - - - 34 224 220 216 - - 35 224-220 216/100-40 224-220 216/100-41 228 224-220 216 42 200 228 224-220 : Sekvensen av byte-adresser blir 200, 204, 208, 0, 100, 212, 216, 220, 224, 100. Deluppgift 1 2 a 1 b c d 2 e f g 1 h 2 i 1 j 1 k l 1