Tentamen Datorteknik D del 2, TSEA49



Relevanta dokument
Föreläsningsanteckningar 2. Mikroprogrammering I

Föreläsningsanteckningar 3. Mikroprogrammering II

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28

Föreläsningsanteckningar 4. Pipelining

3. Mikroprogrammering II

Tentamen Datorteknik Y, TSEA28 Datum

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

Mikroprogrammering I

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

Tentamen. Datorteknik Y, TSEA28

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

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28

Minnet. Minne. Minns Man Minnet? Aktivera Kursens mål: LV3 Fo7. RAM-minnen: ROM PROM FLASH RWM. Primärminnen Sekundärminne Blockminne. Ext 15.

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

Digitala System: Datorteknik ERIK LARSSON

Tentamen. Datorteknik Y, TSEA28

Tentamen (Exempel) Datorteknik Y, TSEA28

DatorsystemteknikDAVA14 Föreläsning 9

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

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

LV6 LV7. Aktivera Kursens mål:

Tentamen (Exempel) Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28

Tentamen (Exempel) Datorteknik Y, TSEA28

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

4. Pipelining. 4. Pipelining

Övningsuppgifter i Mikrodatorteknik 4p/5p

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

Tenta i Digitalteknik

Det finns en hemsida. Adressen är

ALU:n ska anslutas hur då?

Datorsystemteknik DVGA03 Föreläsning 8

HF0010. Introduktionskurs i datateknik 1,5 hp

EDA215 Digital- och datorteknik för Z

TSEA28 Datorteknik Y (och U)

Föreläsningsanteckningar 5. Cacheminnen

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

Lösningsförslag till Tenta i Mikrodator

Närliggande allokering Datorteknik

Datorarkitekturer med operativsystem ERIK LARSSON

Grunderna i stegkodsprogrammering

TSEA28 Datorteknik Y (och U)

Tentamen (Exempel) Datorteknik Y, TSEA28

Läsminne Read Only Memory ROM

LABORATION. Datorteknik Y

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

F4: Assemblerprogrammering

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

Digitala System: Datorteknik ERIK LARSSON

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

Styrenheten 9/17/2011. Styrenheten - forts Arb s 120. LV4 Fo10. Aktivera Kursens mål: Kap 7 Blå

Lösningsförslag till Tenta i Mikrodator

TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1

A-del motsvarande KS1

Programexempel för FLEX

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

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

LABORATION. Datorkonstruktion D

TSEA28 Datorteknik Y (och U)

Datorsystemteknik DAV A14 Föreläsning 1

En något mer detaljerad bild av en processor. De tre delarna i processorn är: Nere 3ll vänster finns e' antal register som används för a' lagra data.

En något mer detaljerad bild av en processor. De tre delarna i processorn är: Nere 3ll vänster finns e' antal register som används för a' lagra data.

Laboration Kombinatoriska kretsar

Datorteknik. Den digitala automaten. En dator måste kunna räkna! Register och bussanslutning

Så här fungerar datorer Baserad på T-J Hallbergs minimalmaskin Högskolan i Jönköping/JTH Ragnar Nohre

Tentamen Datorteknik Y, TSEA28 Datum TER1 och TER2 Tid 14-18

Omtentamen i CDT204 - Datorarkitektur

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

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

Tentamen Datorteknik Y, TSEA28 Datum

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

TSEA28 Datorteknik Y (och U)

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

LABORATION. Datorteknik Y Datorkonstruktion D

Institutionen för datavetenskap 2014/15

Digital- och datorteknik

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

Tentamen den 18 mars svar Datorteknik, EIT070

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

Laboration Kombinatoriska kretsar

Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien

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

Program kan beskrivas på olika abstrak3onsnivåer. Högnivåprogram: läsbart (för människor), hög abstrak3onsnivå, enkelt a> porta (fly>a 3ll en annan ar

Processor pipelining genom historien (Intel i9-intel i7)

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

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

Datorsystem Laboration 2: Minnesmappade bussar

Programmerbar logik. Kapitel 4

Moment 2 Digital elektronik. Föreläsning Inbyggda system, introduktion

Digital- och datorteknik

Exempeltentamen Datorteknik, EIT070,

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

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

Digital- och datorteknik

Tentamen i Digitalteknik TSEA22

Transkript:

Tentamen Datorteknik D del 2, TSEA49 Datum 2012-05-24 Lokal TER2 Tid 8-12 Kurskod TSEA49 Provkod TEN1 Kursnamn Datorteknik D del 2 Institution ISY Antal frågor 6 Antal sidor (inklusive denna 10 sida) Kursansvarig Olle Seger Lärare som besöker Olle Seger skrivsalen Telefon under skrivtiden 073-0549145 Besöker skrivsalen Cirka 9 och 11 Kursadministratör Ylva Jernling Tillåtna hjälpmedel Inga Poäng Betyg 41-50 5 Betygsgränser 31-40 4 21-30 3 0-20 U Viktig information För de uppgifter där du måste göra uträkningar är det viktigt att du redovisar alla relevanta mellansteg. Om du i en viss uppgift ska förklara något, tänk på att du gärna får rita figurer för att göra din förklaring tydligare. Uppgifterna i tentan är inte ordnade efter svårighetsgrad. Skriv inga svar i detta häfte! Lycka till!

Fråga 1: Fyra små frågor(13p) (a) (4p) Antag att vi har ett system baserat på processorn 68008. Vid ett tillfälle avläses följande register- och minnesinnehåll: D0 = 12345678 A0 = 00002002 $F0F0 = 56 D1 = 00000002 A1 = 0000F0F0 $F0F1 = BA D2 = 19283746 A2 = 0000F0F2 $F0F2 = 18 D3 = FAAFAA28 A3 = 89410604 $F0F3 = 32 D4 = 55AAAA55 A4 = 78406408 $F0F4 = EE D5 = 12457896 A5 = 11202202 $F0F5 = F1 D6 = BAFF080A A6 = FFFFFFFF $F0F6 = 2C D7 = 00180018 A7 = 00000000 $F0F7 = 20 Vad blir innehållet i destinationsregistret efter att instruktionerna 1) 4) exekverats? 1. MOVE.L #$F0F0,D6 2. MOVE.L $F0F0,D3 3. MOVE.B (A2),D2 4. MOVE.L $2(A1,D1.L),D5 (b) (3p) En Digital SignalProcessor används ofta för att implementera ett digitalt filter enligt formeln: y n = 7 h i x n i, (1) i=0 där x n och y n är in- respektive utsignaler. Talen x n kommer in till DSP:n med takten 44100 Hz och utsignalen y n matas ut med samma takt. Konstanterna h i är filterkoefficienter. Formeln (1) beräknas alltså 44100 gånger i sekunden. Beskriv kortfattat 3 hårdvarutillägg för att snabba upp denna beräkning. (c) (3p) Vad är skillnaden mellan DRAM och SRAM? Nämn minst en bra anledning till att använda DRAM istället för SRAM. Nämn minst en bra anledning till att använda SRAM istället för DRAM. (d) (3p) En dator har tre yttre enheter som begär avbrott på olika avbrottsnivåer. Enhet A begär avbrott på nivå 2, enhet B på nivå 4 och enhet C på nivå 6. Avbrottsrutinen för enhet A tar 2 ms att utföra, avbrottsrutinen för enhet B tar 3 ms och den för enhet C tar 4 ms. Under exekvering av bakgrundsprogrammet ( avbrottsnivå 0 ) kommer vid tidpunkten t = 0 en avbrottsbegäran från enhet A. En millisekund senare (t = 1 ms) begär enhet C avbrott, vid t = 3 ms begär enhet B avbrott och vid t = 6 ms begär enhet C avbrott. Redovisa händelseförloppet i ett tidsschema. Rita tidsschemat på eget papper. (3p)

Solution: (a) 1.D6.L = 0000F0F0 2.D3.L = M(F0F0).L = 56BA1832 3.D2.B = M(F0F2).B = 18 => D2.L = 19283718 4.D5.L = M(F0F4).L = EEF12C20, (b) Man kan säga att formeln är en skalärprodukt, där den ena vektorn är konstant men den andra vektorn får nya värden. Här är några typiska DSP-tillägg: 1. En enhet som multiplicerar och ackumulerar. (MAC) 2. Flera dataminnen, så att två tal kan hämtas i samma klockcykel. Det behövs ju i en skalärprodukt. 3. En speciell loopinstruktion. Vi behöver inte testa i slutet av loopen. 4. Adresseringsmoden postinkrement modulo N, för att hantera en ringbuffert. (c) Förenklat kan man säga att minneselementet i ett SRAM är en transistorlatch, oftast uppbyggd av 6 transistorer. I ett DRAM, däremot, är minneselementet en kapacitans. Endast 1 transistor behövs per minnescell. Det säger sig självt att DRAM kan byggas större än SRAM. DRAM är det helt dominerande primärminnet i datorer i dag. SRAM är snabbare och enklare än DRAM. En bra tillämpning för SRAM är cacheminnen. DRAM kräver en ganska komplicerad controller och kommer till sin rätt bara vid burstacesser (konsekutiva läsningar/skrivningar). (d) t [ms] Nivå 0 2 1 6 5 4 6 6 10 4 12 2 13 0 Fråga 2: Aritmetik(5p) (a) (3p) Konstruera en ALU med hjälp av heladderare, valfria grindar och register. ALU:n ska kunna addera, A + B, och subtrahera, A B, två tvåkomplements fyrabitarstal, A =< a 3 a 2 a 1 a 0 > och B =< b 3 b 2 b 1b 0 >, och ge ifrån sig statussignalerna C, N, Z och V. Noggrant schema krävs för full poäng! (b) (2p) Antag att subtraktionen A B har satt flaggorna. Vilket Booleskt uttryck av en eller flera flaggor avgör om A < B?

Solution: (a) FA = full adder, heladderare. A = a 3 a 2 a 1 a 0 och B = b 3 b 2 b 1 b 0. Genom att sätta ADD/SUB = 0 fås addition A+B. ADD/SUB = 1 ger subtraktion A+( B). Statussignaler N = s 3 Z = s 3 + s 2 + s 1 + s 0 C = c 4 V = c 4 c 3 (b) Enligt uppgiften rör det sig om 2-komplementstal. Det finns då två fall: det blir overflow eller inte: A < B = NV + NV. Observera att bara N inte är korrekt. Fråga 3: Assembler(10p) Nedanstående subrutin utförs av en 68008-processor. START: A: B: C: move.l #0,a0 clr.l d0 clr.l d3 move.w $900,a0 move.b $902,d3 move.l #$1f,d2 move.l (a0)+,d1 btst.l d2,d1 ; bit test. Bit number in d2. beq C addq.l #1,d0 subq.b #1,d2 bpl B ; Branch on PLus subq.b #1,d3 bne A

rts (a) (3p) Vad gör subrutinen? Ange speciellt var in- och utdata finns. (b) (2p) Vad innehåller hela a0 då programmet körts om hexadecimala minnesinnehållet vid subrutinens start är: $900: 09 $901: 10 $902: 03 $903: 06 $904: 99 (c) (2p) Vad innehåller hela d2 och d3 då rutinen körts med indata enligt ovan? (d) (2p) Ange det största värde som kan erhållas i register d0? (e) (1p) En instruktion är onödig och kan tas bort. Vilken? Solution: (a) Programmet räknar antalet ettor i minnessecellerna M(0x910).l, M(0x914).l och M(0x918).l och returnerar summan i d0. (b) a0.l = 0x0000091c. Postinkrement på långord blir uppräkning med 4. (c) d2.b=-1 men d2.l = 0x000000ff och d3.l = 0x00000000. (d) 3 32 = 96 (e) clr.l d3 Fråga 4: Mikroprogrammering(11p) Figuren, på nästa sida, visar uppbyggnaden av en mikroprogrammerbar dator, den välbekanta Olle Roos-datorn. Inom ett klockpulsintervall kan en överföring göras på bussen, t. ex. DR T R En läsning eller skrivning till primärminnet kan genomföras inom ett klockpulsintervall liksom även en operation i ALU:n. En instruktion består av maximalt två minnesord: OP M A där OP-fältet anger typ av operation, M-fältet adresseringsmod och A är ett adressfält eller en konstant. Vissa instruktioner använder enbart det första ordet. M-fältet innehåller tre bitar som markerar adresseringsmod enligt

M Adresseringsmod 000 Absolut 001 Indirekt 010 Indexering med indexregistret XR 011 PC-relativ 100 Omedelbar 101 Underförstådd Adressbuss 2 ADR 1 8 IR OP M 0 1 2 3 4 5 6 7 Databuss +1 1 N Z 15 16 17 PC +1 3 Read 4 Write XR 22 SP 23 DR 5 6 TR ALU K3 14 27 13 19 21 25 28 29 30 31 32 AR+1 AR 1 ADD SUB LOAD 18 20 24 7 26 0 1 2 3 4 5 6 27 28 30 31 32 33 K1 K2 MPC 9 10 12 0 +1 11 Mikrominne AR 39 HR 33 38 SR 34 35 N Z 36 37 36 37 38 39 1 39 I samband med adressmodsfasen beräknas som vi vet effektiv adress, EA. EA placeras i ADR. Hoppinstruktioner placerar dock EA i TR. (a) (5p) Skriv all mikrokod, som behövs för instruktionen JMP d ; PC+2+d -> PC Använd symboler enligt DR TR och siffror. (b) (2p) Figuren visar de tillägg, som måste göras i hårdvaran för att få avbrott att fungera. Beskriv innehållet i nätet K5 mha en sanningstabell.

(c) (3p) Skriv mikroprogram för avbrottsuthoppet, alltså innehållet på adress 60 och framåt i mikrominnet. SP pekar på ledigt utrymme. (d) (1p) Antag att: PC=10,TR=20,AR=30 och HR=40. Vad blir inehållet i dessa register om följande rad i mikroprogrammet exekveras? 17,18,25,27,30,33,38 Solution: (a) Hämtfas. PC pekar på instruktionen. PC->ADR,PC++,MPC++ ; 18,1,17,11 MEM->DR,MPC++ ; 2,3,5,11 DR->IR,MPC++ ; 7,8,11 K2->MPC ; 10 Adresseringsmodfas. PC pekar på byten (=d), som ska adderas till PC. PC->ADR,PC++,MPC++ ; 17,18,1,11 PC->TR,MEM->DR,MPC++ ; 18,25,2,3,5,11 DR->TR,TR->AR,AR->HR,MPC++ ; 7,25,27,32,33,38,11 AR+TR->AR,MPC++ ; 27,30,33,11 HR->AR,AR->TR,K1->MPC ; 39,37,25,9 Exekveringsfas. Hoppadressen finns i TR TR->PC,0->MPC ; 26,13,12 (b) Hopp till mikrokod för uthoppet fås om signalerna avbrott och 12 båda är 1. Alltså avbrott accepteras bara mellan två instruktioner. Signalerna 9,10,11,12 styrs av mikroprogrammeraren. Endast en av dem är 1 åt gången. Nätet K5 har 5 ingångar: Övriga fall kan ha ut=don t care. 9 10 11 12 Avbrott ut 1 0 0 0-2 0 1 0 0-3 0 0 1 0-0 0 0 0 1 0 1 0 0 0 1 1 4 (c) Stacken är av typen postdekrement och för säkerhets skull stackar vi rubbet.

SP->ADR,SP--,MPC++ PC->DR,MPC++ DR->MEM,MPC++ SP->ADR,SP--,MPC++ SR->DR,MPC++ DR->MEM,MPC++ SP->ADR,SP--,MPC++ AR->DR,MPC++ DR->MEM,MPC++ SP->ADR,SP--,MPC++ XR->DR,MPC++ DR->MEM,MPC++ ; push PC ; push SR ; push AR ; push XR ;spärra för fler avbrott,påbörja nästa hämtfas SEI, avbrottsrutinadr.->pc,0->mpc Mikrokoden går att trycka ihop för att spara tid. Vad som ska stackas kan diskuteras. PC och SR måste stackas, självklart. Eftersom OR är en ackumulatormaskin, måste också AR stackas. Det går ju inte att göra någonting utan att använda AR. Programmeraren kan förstås göra det, men får inte glömma bort det. När det gäller XR är det kanske bättre att abrottsrutinen stackar XR, såvida XR används. (d) Alla register klockas samtidigt. PC=11. TR=10. AR=50. HR=30 Fråga 5: Pipelining(6p) Vi är väl förtrogna med processorer med 5-stegs pipeline. Pipelinestegen brukar se ut så här: 1. Hämta instruktion. 2. Läs ut register. 3. Exekvera 4. Accessa minnet/ingenting 5. Skriv tillbaka register Enklare processorer, typ microcontroller, brukar ha en kortare pipeline: 1. Hämta instruktion. 2. Avkoda instruktion. 3. Läs ut register, Exekvera/Accessa minnet, Skriv tillbaka register Eventuellt får du göra egna antaganden om denna pipeline. Kan du snabbt och övertygande reda ut följande frågeställningar:

(a) (2p) Vad medför förkortningen av pipelinen för de villkorliga hoppen? (b) (2p) Vad medför förkortningen av pipelinen för data forwarding? (c) (2p) Det är lockande att också plocka bort avkodningssteget. Vad medför detta? Solution: De två fallen visas i figuren: PC Next PC PC Next PC PM PM IR1 IR1 DECODE DECODE IR2 styr styr REGS REGS ALU ALU IR3 3 steg IR2 2 steg (a) Vi testar med ett pipeline-diagram: PC IR1 IR2 IR3 0 4 ADD 8 JMPN ADD 12 XXX JMPN ADD 20 NOP XXX JMPN 24 SUB NOP XXX Jämfört med lab-datorn funkar den här datorn likadant när det gäller hopp. Instruktionen efter hoppet exekveras och tas hoppet bestraffas vi med en NOP. (b) Eftersom det nya värdet skrivs tillbaka till ett register i samma klockcykel, bortfaller hela problematiken med data forwarding! (c) Se högra halvan av figuren. Detta är arkitekturen för en enkel controller, t ex Atmel AVR. Kritiska vägen för det andra pipelinesteget blir ganska lång, instruktionsavkodning i serie med ALU+register. Den funkar så här (exempelvis): PC IR1 IR2 0 4 ADD 8 JMPN ADD 20 NOP JMPN 24 SUB NOP

Alltså, tagna hopp medför en extra NOP. Fråga 6: Branch Prediction(5p) Föregående uppgift aktualiserar Branch Prediction. Skriv en kortfattad redogörelse för denna teknik. Du bör få med Vad lagras i en Branch Prediction Table? Med vilken teknik implementeras en BPT? Var kopplas BPT:n in? Nämn en situation som är lätt att förutsäga. Solution: 1. I en BPT lagras hoppinstruktionens adress, hoppadressen och hoppstatistik. 2. Lämpligtvis som ett associativt minne. 3. Vid muxen framför PC. Med PC som insignal ger BPT:n ifrån sig nästa PC. 4. Bakåthopp är oftast loopar och vi förutspår att hoppen tas. o-o-o