Omtentamen i CDT204 - Datorarkitektur



Relevanta dokument
Tentamen. Datorteknik Y, TSEA28

Föreläsningsanteckningar 2. Mikroprogrammering I

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28

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

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

Tentamen Datorteknik Y, TSEA28 Datum

Reducerad INSTRUKTIONSLISTA för FLIS-processorn

Tentamen. Datorteknik Y, TSEA28

F4: Assemblerprogrammering

Digitala System: Datorteknik ERIK LARSSON

Digital- och datorteknik

Tentamen Datorteknik Y, TSEA28 Datum TER2, TER4, TERE Tid 14-18

Digital- och datorteknik

Tentamen den 14 januari 2015 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

Tentamen (Exempel) Datorteknik Y, TSEA28

Tentamen (Exempel) Datorteknik Y, TSEA28

Tentamen (Exempel) Datorteknik Y, TSEA28

Föreläsningsanteckningar 3. Mikroprogrammering II

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Tentamen (Exempel) Datorteknik Y, TSEA28

Datorsystemteknik DVGA03 Föreläsning 8

7) Beskriv tre sätt att överföra parametrar mellan huvudprogram och subrutin.

Stack och subrutiner Programmeringskonventionen

DatorsystemteknikDAVA14 Föreläsning 9

Lösningar till tentamen i EIT070 Datorteknik

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

Datorarkitekturer med operativsystem ERIK LARSSON

Tentamen Datorteknik D del 2, TSEA49

Exempeltentamen Datorteknik, EIT070,

Grundläggande datavetenskap, 4p

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

Digital- och datorteknik

Föreläsningsanteckningar 5. Cacheminnen

General Purpose registers ALU I T H S V N Z C SREG. Antag att vi behöver skriva in talet 25 till register R18

Datorteknik. Tomas Nordström. Föreläsning 2. För utveckling av verksamhet, produkter och livskvalitet.

Närliggande allokering Datorteknik

Det finns en hemsida. Adressen är

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

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

Tentamen den 17 mars 2016 Datorteknik, EIT070

Lösningar till tentamen i EIT070 Datorteknik

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen

Datormodell. Datorns uppgifter -Utföra program (instruktioner) Göra beräkningar på data Flytta data Interagera med omvärlden

Digitala System: Datorteknik ERIK LARSSON

Tentamen i Digitala system - EDI610 15hp varav denna tentamen 4,5hp

Programexempel för FLEX

HF0010. Introduktionskurs i datateknik 1,5 hp

CE_O1. Nios II. Enkla assembler-instruktioner.

Lösningar till tentamen i EIT070 Datorteknik

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

LABORATION. Datorteknik Y

Mikroprogrammering I

LABORATION. Datorteknik Y Datorkonstruktion D

Datorsystemteknik för E/D

Ext-13 (Ver ) Exempel på RTN-beskrivning av FLEX-instruktioner

LABORATION. Datorkonstruktion D

Tenta i Digitalteknik

Konstruera en dator mha grindar och programmera denna Använda en modern microcontroller

Villkorliga hopp: 9/26/2011. Dagens mål: Du ska kunna.. Villrorliga (Relativa) hopp - forts Arb s 140. LV5 Fo12. LV5 Fo12. Aktivera Kursens mål:

Digitalteknik och Datorarkitektur

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

EDA215 Digital- och datorteknik för Z

Datorsystem Laboration 2: Minnesmappade bussar

3. Mikroprogrammering II

Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär:

LABORATION DATORTEKNIK D. Pipelining. Namn och personnummer. Version: (OS,OVA,AN)

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

Ext-13 (Ver ) Exempel på RTN-beskrivning av FLEX-instruktioner

Institutionen för elektro- och informationsteknologi, LTH

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

Datorsystemteknik DAV A14 Föreläsning 1

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

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

Grunderna i stegkodsprogrammering

TSEA28 Datorteknik Y (och U)

rd, rs, rt Digitalteknik och Datorarkitektur 5hp ALU register) 32 bit register b 5 bit 32 Registers 32 bit MIPS is a Register-toregister

Lösningsförslag till Tenta i Mikrodator

TSEA28 Datorteknik Y (och U)

Lösningsförslag till Tenta i Mikrodator

Digital och Datorteknik EDA /2010. EDA Digital och Datorteknik

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

Styrenheten styrsignalsekvenser programflödeskontroll

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

Datorarkitekturer med operativsystem ERIK LARSSON

Digitalteknik och Datorarkitektur 5hp

Uppgift 1: a) u= a c + a bc+ ab d +b cd

CE_O5. Cacheminne. Hemlaboration 2.

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

Hantering av hazards i pipelines

Datorarkitekturer med operativsystem ERIK LARSSON

Transkript:

Omtentamen i CDT204 - Datorarkitektur 2012-11-05 Skrivtid: 08.10-12.30 Hjälpmedel: Miniräknare och valfritt skriftligt (ej digitalt) material. Lärare: Stefan Bygde, kan nås på 070-619 52 83. Tentamen är uppdelad i fyra delar som motsvarar de fyra inlämningsuppgifterna i kursen. Du behöver bara göra de delar som du ännu inte blivit godkänd på. Varje del betygsätts individuellt enligt följande: 3: 50% 4: 70% 5: 90% Betyget för tentamentsmomentet bestäms av medelvärdet av betygen på de individuella delarna avrundat till det närmaste hela betygssteget (om det är lika långt till två olika betygssteg så avrundas detta uppåt). Viktigt att tänka på: Ge så fullständiga svar som möjligt för att erhålla full poäng. Alla beräkningar, approximationer, antaganden och motiveringar ska redovisas för full poäng då inget annat anges. Använd gärna gurer och exempel för att förtydliga. Om du inte förstår en uppgift så kan du ringa läraren och fråga. Oläsliga lösningar ger inga poäng. Skriv tydligt både DEL och UPPGIFT på varje blad 1

Del I: Talsystem, prestanda och instruktionsuppsättningar (10p) Uppgift 1: Talbaser (2p) Det decimala talet 101 är givet. (a) Hur ser den binära representationen av talet ut? (b) Hur ser den hexadecimala (basen 16) representationen av talet ut? Uppgift 2: Prestanda (4p) Ett visst program kompileras för en processor som har klockfrekvensen 2,5 GHz. Den resulterande maskinkoden består av 2, 3 10 6 instruktioner, och på den aktuella processorn får den en IPC (instruction per clock-cycle) på 0,8. Hur lång tid tar programmet att exekvera? Uppgift 3: MIPS (4p) Givet är följande MIPS-assembly-kod: 1. sw $t0, 64($s1) 2. addi $t0, $t0, 7 3. addi $t1, $t1, -34 4. add $s0, $zero, $t0 5. beq $t1, $zero, L0 6. lw $s0, 64($s1) 7. L0: Om registret t0 innan koden körs har värdet 23 och registret t1 har värdet 34, vad kommer registret s0 ha för värde vid programpunkten L0? Del II - Pipelining (12p) Uppgift 1 (6p) Följande CPU-pipeline är given. Steg Tid (psek) A 425 B 500 C 400 D 450 Antag att inga bubblor någonsin uppstår i pipelinen. (a) Vad ger pipelinen för svarstid för en enstaka instruktion? 2

(b) Vad är genomströmningen i MIPS (miljoner instruktioner per sekund) för ett program bestående av x instruktioner (utan hoppinstruktioner), där x > 0? (c) Antag att man ska konstruera en processor som inte använder pipelining och som exekverar en instruktion per klockcykel. Vilken klockcykeltid måste denna processor ha för att ge samma exekveringstid som processorn ovan för ett program bestående av 10 instruktioner (utan hoppinstruktioner)? Uppgift 2 (6p) Antag att en processor använder 2-bitars dynamisk branch prediction. Från början står alla prediktorer i tillståndet strongly taken. Följande kod körs sedan på processorn: add $s0, $zero, $zero ; Initialize sum to 0 la $s1, arr ; Get pointer to the beginning of arr addi $s2, $s1, 40 ; Compute end of arr loop_start: beq $s1, $s2, loop_end ; Test for loop termination lw $t0, $s1 ; Load element from arr addi $s1, $s1, 4 ; Increment array pointer for next iteration slti $t1, $t0, 0 ; Check if loaded element is negative beq $t1, $zero, loop_start ; If not, continue the loop add $s0, $s0, $t0 ; Add element to sum of negative elements j loop_start ; Jump to beginning of loop loop_end: Koden löper igenom arrayen arr och summerar alla negativa element i den. arr innehåller följande 10 värden (uppräknade i den ordning de ligger i arrayen): { 3, 8, -5, 10, 7, -6, -5, 18, 20, 1 } Hur många korrekt respektive felaktigt förutsagda hopp kommer att inträa under körningen av programmet, om man antar att alla villkorliga hoppinstruktioner associeras till olika prediktorer? 1 Del III - Minneshierarkier (10p) Uppgift 1 (6p) En cache är given som rymmer 4 kb (4096 bytes) data (metadata så som tags, valid-bitar osv. ej inräknade) och har en blockstorlek på 64 bytes. En serie minnesaccesser görs till följande 16-bitars adresser (se nästa blad): 3

1. 1001110100101110 2. 0110010100000110 3. 0110010100101110 4. 1101100100001101 5. 0001110100101000 6. 1001010100000110 Adresserna anges binärt och adresserar på byte-nivå. Säg att cachen är helt tom innan minnesaccesserna ovan görs. Hur kommer cachen att se ut efter den sista minnesaccessen om cachen är (a) direktmappad? (3 poäng) (b) 4-vägs set-associativ och använder LRU som utbytesstrategi? (3 poäng) Ange index, valid-bit och tag för de platser i cachen som har uppdaterats (övriga platser behöver inte redovisas). Redogör även för vilka accesser som missar i cachen och hur cachen uppdateras vid dessa missar. Uppgift 2 (4p) Nedan ges parametrar för några olika cache-organisationer. Total storlek Blockstorlek Antal vägar(ways) Antal set Benämning a 32 KB 64? 128? b? 32 1 256? c? 32 64? fullt associativ d 16 KB 32? 256? Din uppgift är att fylla i de parametrar som saknas (markerade med frågetecken). Med benämning menas det begrepp man brukar använda för organisationen i fråga. Observera att den totala cache-storleken inte räknar in storleken på metadata, dvs. valid-bitar, LRU-bitar etc. Observera dessutom att 1 KB = 2 10 = 1024 bytes. Motivera dina svar. Del IV - Mikroprogrammering (10p) Uppgift 1: Absolutbelopp (7p) Skriv exekveringsfasen av instruktionen ABS, ABSolute value. Instruktionen ska stödja alla de adresseringsmoder som stöds av t.ex. instruktionen ADDC, och ska räkna ut absolutbeloppet av operanden och lagra det i ackumulatorregistret. Ge ditt svar som (a) Register-Transfer Notation. (b) mikrokod. Du kan placera mikrokoden var du vill i mikrominnet. Som stöd kan du använda sid. 38 från mikro-programmeringskompendiet som bifogas denna tentamen. 4

Uppgift 2: Ellens adresseringsmoder(3p) Antag att man initialt har följande minneslayout. Adress Innehåll 10 12 11 33 12 56 13 7C 14 AA Dessutom har index-registret värdet 11. Alla värden anges hexadecimalt. Vad laddar följande Ellen-instruktioner in för värden i ackumulatorregistret? a) LOAD #$14 b) LOAD $11 c) LOAD $2(X) 5

ASSEMBLER-INSTRUKTIONER OCH MASKINKOD (HEX-FORMAT) I ELLEN. Mnemonics Implied Immediate Absolute Indexed Relative Flags Comment # (X) (PC) NZCV LOAD - 00 02 04 06 ** - - m(ea)->ar STORE - - 0A 0C 0E ** - - ar->m(ea) ADDC - 10 12 14 16 ** * * ar+m(ea)+c->ar SUBC - 18 1A 1C 1E ** * * ar-m(ea)-not(c)->ar CLC 27 - - - - - - 0-0->C SEC 2F - - - - - - 1-1->C JUMP - - 32 34 36 - - - - ea->pc (adr->pc) INX 4F - - - - ** * * x+1->x DEX 57 - - - - ** - - x-1->x LDX - 58 5A 5C 5E - - - - m(ea)->x BNE - - 62 64 66 - - - - ea->pc om Z=0, Branch if Not zero BEQ - - 6A 6C 6E - - - - ea->pc om Z=1, Branch if Equal to zero BCC - - 72 74 76 - - - - ea->pc om C=0, Branch if Carry Clear BCS - - 7A 7C 7E - - - - ea->pc om C=1, Branch if Carry Set LSP - 80 82 84 86 - - - - m(ea)->sp PUSH 8F - - - - - - - - ar->m(sp), sp-1->sp PULL 97 - - - - - - - - sp+1->sp, m(sp)-> AR JSR - - 9A 9C 9E - - - - pc->m(sp), sp-1->sp, ea->pc RTS A7 - - - - - - - - sp+1->sp, m(sp)->pc CMP - A8 AA AC AE ** * * ar-m(ea) CPX - B0 B2 B4 B6 ** * * x-m(ea) Figur 25 Assemblerinstruktioner och maskinkod i ELLEN Figur 25: Stora bokstäver: AR, PC, SP, X Små bokstäver: ar, pc, sp, m(ea) ea = effektiva adressen. = registret (M=huvudminnet). = innehållet i registret eller huvudminnesordet med adress ea Flags (Statusregister): N= bit 7 i resultatet Z=1 om resultatet = 0, annars är Z=0 V=1 vid spill, annars är V=0 C=1 om carry vid addition, annars blir C=0 eller C=0 om borrow vid subtraktion, annars blir C=1 * Flaggan ställs enligt resultatet av assemblerinstruktionen. - Flaggan påverkas inte av assemblerinstruktionen. Beteckningar i Datorarkitektur: Kompendium Mikroprogrammering, hösten 2009 Sida 34 (41) PDF processed with CutePDF evaluation edition www.cutepdf.com

1.21 Mikroinstruktionsformat µm1 µm2 µm3 TB FB BK ALU µpc pc+1 µhoppadress Antal bitar 3 3 2 4 3 1 8 1.22 Mikroinstruktionskoder för olika fält - sammanfattning TB = Sändarregister vid Bussöverföring FB = Mottagarregister vid Bussöverföring BK-Fältet Buss Kontroll ALU-fältet OBS!! Dessa funktioner fungerar bara om FB fältet innehåller koden 001 000 ADR = AdressRegistret 001 = ALU Registret 010 PC = Programräknaren (ProgramCounter) 011 M = HuvudMinnet, OBS måste anropas 3 gånger i följd för att ge svar från minnet. 100 IR = InstruktionsRegistret. Kan användas både som TB och FB 101 SP = StackPekare 110 X = indexregistret 111 AR= AckumulatorRegistret 00 Bussen avstängd, data på bussen odefinierat. Ingen överföring till registret enligt FB-fältet. 01 tb -> FB. Innehållet i register enligt TB kopieras till register enligt FB. 10 tb + 1 -> FB. Som 01 men data ökas med 1 vid kopieringen. Innehållet i register enligt TB ändras ej 11 tb - 1 -> FB. Som 10 men kopians värde minskas med 1. 0000 ALU transparent. Talet på databussen läses ner i. 0001 0 ->. nollställs 0010 ADC ADd with Carry. alur + tb + c -> 0011 SUBC SUB with Carry. alur - tb - NOT(c) -> 0100 CC Clear Carry. 0 -> C. 0101 SC Set Carry. 1 -> C. 0110 AND logical AND. alur AND tb -> 0111 OR logical OR. alur OR tb -> 1000 XOR logical XOR. alur XOR tb -> 1001 ASL Algorithmic Shift Left C 0 1010 LSR Logic Shift Right 1011 RLC Rotate Left through Carry 0 C C 1100 RRCRotate Right through Carry 1101 INV Bilda 1-komplementet av alur, lagra i (invertera). 1110 1111 µpc-fältet 000 001 010 011 100 101 110 111 Spara statusregistret internt i CPU (ej på stacken!). Återställ statusregistret från den interna lagringsplatsen. µpc + 1 -> µpc OP-fältet via K1 -> µpc AM-fältet via K2 -> µpc Villkorligt hopp (µm3 -> µpc) om C = 1, annars µpc + 1 -> µpc Villkorligt hopp (µm3 -> µpc) om V = 1, annars µpc + 1 -> µpc Villkorligt hopp (µm3 -> µpc) om N = 1, annars µpc + 1 -> µpc Villkorligt hopp (µm3 -> µpc) om Z = 1, annars µpc + 1 -> µpc Ovillkorligt hopp, dvs. µm3 -> µpc, alltid C Datorarkitektur: Kompendium Mikroprogrammering, hösten 2009 Sida 38 (41)