TENTAMEN. Digital- och datorteknik. Institutionen för data- och informationsteknik Avdelningen för datorteknik LEU431. Lars-Eric Arebrink

Relevanta dokument
Digital- och datorteknik

Digital- och datorteknik. Lars-Eric Arebrink. Betyg 4: 36 poäng Betyg 5: 48 poäng

Digital- och datorteknik. Lars-Eric Arebrink. vid flera tillfällen. Betyg 4: 36 poäng Betyg 5: 48 poäng

Digital- och datorteknik. Lars-Eric Arebrink. Av institutionen utgiven instruktionlista FLEXIBLE INSTRUKTION SET PROCESSOR FLISP

TENTAMEN(Nu anpassad till FLIS- processorn)

Digital- och datorteknik. Lars-Eric Arebrink. vid flera tillfällen. Betyg 4: 36 poäng Betyg 5: 48 poäng

Digital- och datorteknik. Lars-Eric Arebrink. Betyg 4: 36 poäng Betyg 5: 48 poäng

Digital- och datorteknik

Digital- och datorteknik. Mekatronik-, data- och elektroingenjör Åk 1/ lp 1o2. Lars-Eric Arebrink. Av institutionen utgiven. vid flera tillfällen

Digital- och datorteknik

TENTAMEN (Något redigerad)

Lars-Eric Arebrink. Av institutionen utgiven. vid flera tillfällen. Betyg 4: 36 poäng Betyg 5: 48 poäng

TENTAMEN. Digital- och datorteknik E. Institutionen för data- och informationsteknik Avdelningen för datorteknik. Elektro Åk 1/ lp 4 EDA216/DIT790

Maskinorienterad programmering. Mekatronikingenjör åk 2/ lp 3. Lars-Eric Arebrink. Av institutionen utgiven. Lars-Eric Arebrink

Maskinorienterad programmering

Maskinorienterad programmering

Tentamen. EDA432 Digital och datorteknik IT INN790 Digital och datorteknik GU. Måndag 23 oktober 2006, kl i V-salar

Maskinorienterad programmering. Mekatronikingenjör åk 2/ lp 3. Lars-Eric Arebrink. Av institutionen utgiven. vid flera tillfällen.

Exempel 3 på Tentamen

Tentamen. EDA432 Digital- och datorteknik, It DIT790 Digital- och datorteknik, GU. Onsdag 12 Januari 2011, kl

EDA215 Digital- och datorteknik för Z

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

Lösningsförslag tenta

LV6 LV7. Aktivera Kursens mål:

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

Tentamen 3. EDAxxx Grundläggande Datorteknik DIT791 Grundläggande Datorteknik, GU. Måndag xx Oktober 20xx, kl

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

CHALMERS TEKNISKA HÖGSKOLA

exempel på Tentamen 2

Tentamen. EDA432 Digital- och datorteknik, IT DIT790 Digital- och datorteknik, GU. Måndag 18 Oktober 2010, kl

Exempel 2 på Tentamen med lösningar

Tentamen. EDA452 Grundläggande Datorteknik, D DIT790 Digital- och datorteknik, GU. Måndag 17 December 2012, kl

Assemblerprogrammeringsuppgifter för FLIS-processorn

ALU:n ska anslutas hur då?

Tentamen med lösningar

Maskinorienterad programmering

Exempel 1 på Tentamen med lösningar

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

Digital- och datorteknik

Grundläggande Datorteknik Digital- och datorteknik

Tentamen. EDA485 Maskinorienterad programmering Z DAT015 Maskinorienterad programmering IT. Tisdag xx yyyy 2006, kl

Struktur: Elektroteknik A. Digitalteknik 3p, vt 01. F1: Introduktion. Motivation och målsättning för kurserna i digital elektronik

Tentamen (Svar och lösningsförslag)

Digital- och datorteknik

Digital- och datorteknik

Digital- och datorteknik

Digital- och datorteknik

TENTAMEN (med svar och vissa lösningar)

Tentamen. EDA432 Digital- och datorteknik, It DIT790 Digital- och datorteknik, GU. Måndag 19 oktober 2009, kl

Exempel på tentamen 1

Digital- och datorteknik

Digital- och datorteknik

Programexempel för FLEX

EDA Digital och Datorteknik

LEU431. Digital- och datorteknik. Diverse kompletterande material

Ext-14 (Ver ) Ext-14. FLEX-processorns styrenhet med fast logik

Digital- och datorteknik

Programmering i maskinspråk (Maskinassemblering)

Programmering i maskinspråk (Maskinassemblering)

Digital- och datorteknik

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

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

EDA216. Digital- och datorteknik. Diverse kompletterande material

EDA451 - Digital och Datorteknik 2010/2011. EDA Digital och Datorteknik 2010/2011

Digital- och datorteknik

Assemblerprogrammering del 1

Digital och Datorteknik EDA /2011. EDA 451 Digital och datorteknik 2010/2011. Uppbyggnad_och_funktion.pdf

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

Digital- och datorteknik

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

EDA451 - Digital och Datorteknik 2010/2011. EDA Digital och Datorteknik

Tentamen i Digital Design

Digital- och datorteknik

Högskolan i Halmstad Digital- och Mikrodatorteknik 7.5p. Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien

PARITETSKONTROLL. Om generatorn i vidstående exempel avkänner ett jämt antal ettor ger den en nolla ut. Detta innebär att överföringen

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

Digital- och datorteknik

Laboration nr 3 behandlar

MANUALBLAD MODULER TILL DIGITALMASKINEN

Tentamen. DAT015 Maskinorienterad programmering IT. Fredag 21 april 2006, kl i V-salar

Digital- och datorteknik

Adressavkodning - busskommunikation

Extrauppgifter för CPU12

Tentamen. TSEA22 Digitalteknik 5 juni, 2015, kl

Tentamen i Digitalteknik TSEA22

Digital- och datorteknik

Tentamen i Datakunskap NT

Tentamen i EDA320 Digitalteknik för D2

Tentamen. EDA485 Maskinorienterad programmering Z. Måndag 6 mars 2006, kl i V-salar

Centralenheten: ALU, dataväg och minne

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

Avbrottshantering. Övningsuppgifter

Lösningar till tentamen i EIT070 Datorteknik

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

Lösningsförslag till tentamen i Digitalteknik, TSEA22

9/22/2012. Assemblernivå Beskrivning av funktion Automatiskt styrd borrmaskin Positionera borr Starta borr Borra genom arbetsstycke...

Tentamensskrivning 11 januari 2016

Digital- och datorteknik

Reducerad INSTRUKTIONSLISTA för FLIS-processorn

Transkript:

Institutionen för data- och informationsteknik Avdelningen för datorteknik TENTAMEN KURSNAMN Digital- och datorteknik PROGRAM: Data-, elektro- och mekatronikingenjör åk / lp och 2 KURSBETECKNING LEU43 EXAMINATOR Lars-Eric Arebrink TID FÖR TENTAMEN 204-0-6 kl 8.30 2.30 HJÄLPMEDEL Av institutionen utgiven Instruktionslista för FLEX- eller FLIS-processorn (INS) Tabellverk eller miniräknare får ej användas. ANSV LÄRARE: Lars-Eric Arebrink, tel. 772 578 Besöker tentamen ANSLAG AV RESULTAT ÖVRIG INFORM. vid flera tillfällen När rättningen är färdig anslås resultatet med anonyma koder och tid för granskning på kursens hemsida. Tentamen omfattar totalt 60 poäng. Den som är inskriven före HT 202 kan använda FLEXprocessorn istället för FLIS-processorn vid lösning av assembleruppgifter! Onödigt komplicerade lösningar kan ge poängavdrag. Svar på uppgifter skall motiveras om ej annat anges. En svarsblankett bifogas till tentamenstesen. För de uppgifter där svaret skall ges på svarsblanketten behöver inga lösningar redovisas. BETYGSGRÄNSER. Betyg 3: 24 poäng Betyg 4: 36 poäng Betyg 5: 48 poäng SLUTBETYG För slutbetyg 3, 4 eller 5 på kursen fordras betyg 3, 4 eller 5 på tentamen och godkända laborationer.

. I uppgift a-h nedan används 6-bitars tal X, Y, S och D. Aritmetiska operationer utförs på samma sätt och flaggor sätts på samma sätt som i ALU n i bilaga. För tal med tecken används 2k-representation. X = 0 00 2 och Y = 0 2. a) Vilket talområde måste X, Y, S och D tillhöra om de tolkas som tal utan tecken? (p) b) Vilket talområde måste X, Y, S och D tillhöra om de tolkas som tal med tecken? (p) c) Visa med papper och penna hur räkneoperationen S = X + Y utförs i en 6-bitars ALU. (p) d) Vilka värden får flaggbitarna N, Z, V och C vid räkneoperationen i c)? (p) e) Visa med papper och penna hur räkneoperationen D = X Y utförs i en 6-bitars ALU. (p) f) Vilka värden får flaggbitarna N, Z, V och C vid räkneoperationen i e)? (p) 2(8) g) Tolka bitmönstren X, Y, S och D som tal utan tecken och ange deras decimala motsvarighet. Avgör och motivera med hjälp av flaggorna om resultaten S och D är korrekta eller felaktiga. (p) 2. 3. h) Tolka bitmönstren X, Y, S och D som tal med tecken och ange deras decimala motsvarighet. Avgör och motivera med hjälp av flaggorna om resultaten S och D är korrekta eller felaktiga. i) Hur representeras "0" och " " med 32-bitar enligt flyttalsstandarden IEEE 754 (dvs 23 bitar av mantissan). Använd binär och hexadecimal form. a) Markera det korrekta minimala SP-uttrycket för u i grindnätet till höger på den bifogade svarsblanketten! b) Ett karnaughdiagram för en boolesk funktion visas till höger. Markera ett minimalt uttryck på svarsblanketten som är lämpligt för realisering av den booleska funktionen f, då NOR-grindar med valfritt antal ingångar, XORgrindar och NOT-grindar får användas. Rutor med - representerar dont care -termer som får användas vid behov. Kretsrealiseringen behöver ej visas. a) Ett synkront sekvensnät skall ha en insignal x och en utsignal u. Utsignalen u skall ges värdet "" under ett bitintervall för varje insignalsekvens bestående av tre nollor följda av två ettor och en nolla. Exempel: σ x =...0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0... σ u =...? 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0... Utsignalen skall som i exemplet ges värdet "" när den sista biten i en korrekt insignalsekvens anländer på x-ingången och behålla värdet "" så länge x har kvar sitt värde under detta bitintervall. Rita en tillståndsgraf för sekvensnätet. (Sekvensnätet skall ej realiseras!) Hur många vippor skulle minst krävas vid en realisering? (4p) b) Konstruera en reversibel 2-bitars synkron räknare med räknevillkoret x. För x = 0 skall räknesekvensen (q q 0 ) 2 vara: 00,, 0, 0, 00, För x = skall räknesekvensen (q q 0 ) 2 vara: 00, 0, 0,, 00, a b JK-vippor, NAND-grindar med valfritt antal ingångar, XOR-grindar och NOT-grindar får användas. (6p) b c = u (p) (2p) (2p) cd 00 0 0 00 0 0 ab 0 0-0 - - 0 0 0-0 (4p)

4. I datavägen till höger innehåller register A(8) och B(8) från början värdena 70 0 resp. 65 0 på binär form. Därefter ges styrsignaler och klockpulser enligt tabellen på svarsblanketten. Komplettera tabellen på svarsblanketten med RTNbeskrivning samt hexadecimalt registerinnehåll för alla klockpulsintervall. Vid laddning av ett register skall det nya innehållet synas på raden efter laddningen i tabellen. LD A OE A Reg A LD B OE B Reg B D Funkt 0 0 M U C 2 X C in C 3 2 LD R g g 0 OE R LD T U ALU Reg R Reg T E 3(8) Flaggor ALU-funktioner: Se bilaga! (4p) 5. Figuren på sidan 45 i INS visar hur FLIS-datorn är uppbyggd. På sidorna 43 och 44 i INS visas hur ALU ns funktion väljs med styrsignalerna f 3 - f 0 och C in. I tabellerna på svarsblanketten visas styrsignalerna för två olika EXECUTE-sekvenser för samma maskininstruktion, en för FLIS- och en för FLEX-processorn. a) Komplettera den övre (FLISP) eller den undre (FLEX) tabellen med RTN-beskrivning! Förklara vilken assemblerinstruktion som beskrivs! Som alternativ kan du alltså använda FLEX-datorn som visas i bilaga 3 med ALU'n i bilaga och den undre tabellen istället för motsvarande för FLIS-datorn. (2p) b) Instruktionen nedan "Test register A and branch if not equal to zero" skall implementeras för FLIS(FLEX)-processorn med hjälp av styrenheten med fast logik. Operationskoden DF 6 skall användas. TBNE A,Adr RTN: U = A, ALU(NZVC) CC If Z = 0: PC + offset PC (U i RTN-beskrivningen ovan betecknar utdatavärdet från ALU'n.) OPKOD offset Komplettera tabellen på svarsblanketten med RTN-beskrivning och styrsignaler för den efterfrågade EXECUTE-sekvensen. (5p)

6. Besvara kortfattat följande frågor rörande FLIS- eller FLEX-processorn. a) Före det villkorliga hoppet "BMI Adr" i ett program utförs en subtraktion "7A 6 W", som påverkar flaggorna. För vilka värden på talet W utförs hoppet? (8-bitars tal används.) (4p) 4(8) b) Översätt subrutinen till höger till maskinkod på hexadecimal form och visa hur den placeras i minnet. Det skall framgå hur offset för branch-instruktionerna beräknas. c) Subrutinen i b) anropas i huvudprogrammet nedan. ORG $0 LDSP #$FA LDA #$FB BSR DELAY STOP BRA STOP CONST EQU -0 ; ORG $90 ; DELAY PSHA PSHA ; YLOOP LDA #CONST ILOOP INCA NOP BNE ILOOP ; ; INC BNE LEASP PULA RTS 0,SP YLOOP,SP (3p) Hur lång tid tar subrutinen att köra från och med BSR till och med RTS om FLIS(FLEX)-processorn klockas med frekvensen MHz? (För FLEX-processorn skall du använda motsvarande instruktioner enligt dess instruktionslista.) (3p) 7. I minnet i ett datorsystem med FLIS(FLEX)-processorn finns en sträng med sjubitars ASCII-tecken, där varje ASCII-tecken har kompletterats med en paritetsbit som åttonde bit (bit nr 7). Strängen avslutas med ett dataord med värdet noll. Skriv en subrutin HEXCH i assemblerpråk för FLIS-processorn som tar reda på hur många av ASCIItecknen i strängen som motsvarar stora eller små bokstäver A F eller a f. Antalet sådana bokstäver skall finnas i A-registret vid återhopp. Vid anrop av subrutinen antas startadressen till strängen finnas i X-registret. En tabell över ASCII-koden finns i bilaga 2. Endast register A och register CC får vara förändrade vid återhopp från subrutinen. För full poäng på uppgiften skall programmet vara korrekt radkommenterat. (7p)

5(8) 8. Ett mikrodatorsystem skall konstrueras med U2, st 64 kbyte RWM-kapsel, st 8 kbyte ROMkapsel, 2 st 8-bitars "three-state"-buffertar som inportar och 2 st 8-bitars register som utportar. Figuren nedan visar principen för anslutning av olika moduler till U2. Adressbuss E A 5 -A 0 R/W CS-logik RWM CS-logik ROM CS-logik In/Utportar Processor U2 D 7 -D 0 CS R/W RWM D 7 -D 0 CS ROM D 7 -D 0 Indata (8) OE D 7 -D 0 Utdata(8) C Register (8) D 7 -D 0 Databuss Adressområdet som består av de första 2k adresserna skall reserveras för framtida bruk. Ingen modul får därför aktiveras inom detta adressområde. ROM-modulen skall placeras i adressrummet så att dess slutadress blir FFFF 6. På de två adresserna närmast före ROM-modulen skall två inportar och två utportar placeras. Det skall alltså finnas både inport och utport på var och en av dessa adresser. Alla övriga adresser skall användas för RWM-modulen. Uppgift: Använd lämpliga signaler från processorn för att konstruera CS-logiken för ROM-modulen, RWMmodulen, inportarna och utportarna. Använd fullständig adressavkodning. Endast grundläggande logikgrindar med valfritt antal ingångar får användas. De användbara adressintervallen för de två minnesmodulerna skall anges på hexadecimal form. (6p)

6(8) Bilaga ALU:ns funktion (FLEX-ALU'n) D(8) E(8) Funktion C in ALU Flaggor U(8) ALU:ns logik- och aritmetikoperationer på indata D och E definieras av ingångarna Funktion (F) och C in enligt tabellen nedan. F = (f 3, f 2, f, f 0 ). I kolumnen Operation förklaras hur operationen utförs. f 3 f 2 f f 0 U = f(d,e,c in ) Operation 0 0 0 0 bitvis nollställning Resultat 0 0 0 D 0 0 0 E 0 0 bitvis invertering D k 0 0 0 bitvis invertering E k 0 0 bitvis OR D OR E 0 0 bitvis AND D AND E 0 bitvis XOR D XOR E 0 0 0 D + 0 + C in D + C in 0 0 D + FFH + C in D + C in 0 0 D + E + C in 0 D + D + C in 2D + C in 0 Carryflaggan (C) innehåller minnessiffran ut (carry-out) från den mest signifikanta bitpositionen (längst till vänster) om en aritmetisk operation utförs av ALU:n. Vid subtraktion gäller för denna ALU att C = om lånesiffra (borrow) uppstår och C = 0 om lånesiffra inte uppstår. Carryflaggans värde är 0 vid andra operationer än aritmetiska. Overflowflaggan (V) visar om en aritmetisk operation ger "overflow" enligt reglerna för 2-komplementaritmetik. V-flaggans värde är 0 vid andra operationer än aritmetiska. Zeroflaggan (Z) visar om en ALU-operation ger värdet noll som resultat på U-utgången. Signflaggan (N) är identisk med den mest signifikanta biten (teckenbiten) av utsignalen U från ALU:n. Half-carryflaggan (H) är minnessiffran (carry) mellan de fyra minst signifikanta och de fyra mest signifikanta bitarna i ALU:n. H-flaggans värde är 0 vid andra operationer än aritmetiska. 0 0 D +E k + C in D E + C in 0 bitvis nollställning 0 bitvis nollställning 0 0 bitvis ettställning FFH I tabellen ovan avser "+" och " " aritmetiska operationer. Med t ex D k menas att samtliga bitar i D inverteras.

0 0 0 0 0 0 0 0 0 0 0 0 b 6 b 5 b 4 b 3 b 2 b b 0 7(8) Bilaga 2 Assemblerspråket för FLEX- och FLIS-processorn. Assemblerspråket använder sig av mnemoniska beteckningar liknande dem som processorkonstruktören MOTOROLA (FREESCALE) specificerat för maskininstruktioner för mikroprocessorerna 68XX och instruktioner till assemblatorn, s k pseudoinstruktioner eller assemblatordirektiv. Pseudoinstruktionerna listas i tabell. Tabell Direktiv Förklaring ORG N Placerar den efterföljande koden med början på adress N. (ORG för ORiGin = ursprung) L RMB N Avsätter N bytes i följd i minnet (utan att ge dem värden), så att programmet kan använda dem. Följden placeras med början på adressen L. (RMB för Reseve Memory Bytes) L EQU N Ger symbolen L konstantvärdet N. (EQU för EQUates = beräknas till) L FCB N,N2 Avsätter en byte för varje argument i följd i minnet. Respektive byte ges konstantvärdet N, N2 etc. Följden placeras med början på adressen L. (FCB för Form Constant Byte) L FCS ABC Avsätter en byte för varje tecken i teckensträngen ABC i följd i minnet. Respektive byte ges ASCII-värdet för A B C, etc. Följden placeras med början på adressen L. (FCS för Form Character String) Tabell 2 7-bitars ASCII NUL DLE SP 0 @ P ` p 0 0 0 0 SOH DC! A Q a q 0 0 0 STX DC2 2 B R b r 0 0 0 ETX DC3 # 3 C S c s 0 0 EOT DC4 $ 4 D T d t 0 0 0 ENQ NAK % 5 E U e u 0 0 ACK SYN & 6 F V f v 0 0 BEL ETB 7 G W g w 0 BS CAN ( 8 H X h x 0 0 0 HT EM ) 9 I Y i y 0 0 LF SUB * : J Z j z 0 0 VT ESC + ; K [Ä k {ä 0 FF FS, < L \Ö l ö 0 0 CR GS - = M ]Å m }å 0 S0 RS. > N ^ n ~ 0 S US /? O _ o RUBOUT (DEL)

Bilaga 3 (Observera att bilden visar FLEX-datorn) Processor MA Adressbuss LD A Reg A LD B Reg B 0 0 M U C 2 X C 3 2 g g 0 Funkt C in D LD R LD T U ALU Reg R Reg T E Flaggor g 2 LD CC 0 MUX Reg CC LD X Reg X IncSP DecSP LD SP SP IncPC LD PC PC LD MA MR MW Adress Minne Data ut Data in OE A OE B OE R OE CC OE X OE S OE PC MR Styrsignaler LD I Reg I Reset Styrenhet Figur. Datorn FLEX.

Svarsblankett (204-0-6) Anonym kod: Uppgift 2: a). u = abc' + a'b' + a'b'c' 2. u = (b + c)(a b)' 3. u = a'b'c + ab + abc 4. u = (b' + c')(a + b')(a' + b) 5. u = ab + (a b)'c 6. u = a'b'c + ab 7. u = abc' + a'b' 8. u = (b + c)(a' + b)(a + b') b). f = [a(b c d)] + a'd 2. f = a(b c d)' + a'd' 3. f = [a' + (b c d)'](a + d') 4. f = [a' + (b c d)](a + d) 5. f = a'(b c d) + ad 6. f = [a'(b c d)'] + ad' 7. f = [a + (b c d)'](a' + d') 8. f = [a + (b c d)](a' + d) Uppgift 4: (Här används FLEX-ALU'n!) Styrsignaler (=) RTN A(8) B(8) T(8) R(8) OE A, LD T 46 A5?? 2 OE B, f 3, f, LD R 3 OE R, f 3, f, f 0, LD R 4 OE R, f 3, f, f 0, LD R 5 OE R, f 3, f 2, LD R 6 OE R, LD A 7? Uppgift 5: a) (FLISP) State Summaterm RTN-beskrivning Styrsignaler Q 4 Q 4 I xx MR, LD T, INC PC Q 5 Q 5 I xx OE CC, f 2, f, LD R Q 6 Q 6 I xx OE R, g 0, g 8, g 6, g 4, g 2, LD CC, NF (FLEX) State Summaterm RTN-beskrivning Styrsignaler Q 5 Q 5 I xx OE PC, LD MA, IncPC Q 6 Q 6 I xx MR, LD T Q 7 Q 7 I xx OE CC, f 2, f 0, LD R Q 8 Q 8 I xx OE R, LD CC, NF Instruktionen är: Vänd!

Uppgift 5 (forts): b) (Du kan skriva samma statenummer på flera rader vid behov!) State Summaterm RTN-beskrivning Styrsignaler