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

Relevanta dokument
Digital- och datorteknik

Digital- och datorteknik

Digital- och datorteknik

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

TENTAMEN(Nu anpassad till FLIS- processorn)

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. Betyg 4: 36 poäng Betyg 5: 48 poäng

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

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

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

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

Maskinorienterad programmering

Maskinorienterad programmering

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

EDA215 Digital- och datorteknik för Z

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

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

LV6 LV7. Aktivera Kursens mål:

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

exempel på Tentamen 2

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

Assemblerprogrammeringsuppgifter för FLIS-processorn

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

Exempel 3 på Tentamen

Maskinorienterad programmering

ALU:n ska anslutas hur då?

Digital- och datorteknik

EDA Digital och Datorteknik

Tentamen (Svar och lösningsförslag)

Lösningsförslag tenta

Grundläggande Datorteknik Digital- och datorteknik

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

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

Programexempel för FLEX

Exempel 2 på Tentamen med lösningar

CHALMERS TEKNISKA HÖGSKOLA

Tentamen med lösningar

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

Digital- och datorteknik

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

Exempel 1 på Tentamen med lösningar

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

Digital- och datorteknik

Digital- och datorteknik

Exempel på tentamen 1

Digital- och datorteknik

TENTAMEN (med svar och vissa lösningar)

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

Programmering i maskinspråk (Maskinassemblering)

Digital- och datorteknik

Extrauppgifter för CPU12

Digital och Datorteknik EDA /2010. EDA Digital och Datorteknik

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

Reducerad INSTRUKTIONSLISTA för FLIS-processorn

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:

Digital- och datorteknik

LEU431. Digital- och datorteknik. Diverse kompletterande material

Digital- och datorteknik

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

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

Digital- och datorteknik

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

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

Digital- och datorteknik

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

Programmering i maskinspråk (Maskinassemblering)

Bilda styrsignalerna till datavägen RESET FETCH EXECUTE NF NF NF. Digital och Datorteknik EDA /2011. Digital och Datorteknik EDA /2011

Assemblerprogrammering

Digital- och datorteknik

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

Assemblerprogrammering del 1

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

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

Digital- och datorteknik

Laboration nr 3 behandlar

Binär kodning. Binära koder. Tal och talsystem positionssystem för basen 10. Begrepp. Begrepp Tal och talsystem Talomvandling ASCII-kod NBCD Gray-kod

INSTRUKTIONSLISTA för FLEX-processorn

Digital- och datorteknik

Lösningar till tentamen i EIT070 Datorteknik

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

Tenta i Digitalteknik

EDA Digital och Datorteknik

EDA216. Digital- och datorteknik. Diverse kompletterande material

FLEXIBLE INSTRUCTION SET PROCESSOR FLISP

Digital- och datorteknik

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

Tenta i Digitalteknik

FLEX Instruktionslista

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

Digital- och datorteknik

FLEXIBLE INSTRUCTION SET PROCESSOR FLISP

Föreläsningsanteckningar 2. Mikroprogrammering I

Centralenheten: ALU, dataväg och minne

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

Tentamen. TSEA22 Digitalteknik 5 juni, 2015, kl

Transkript:

Institutionen för data- och informationsteknik Avdelningen för datorteknik TENTAMEN KURSNAMN Digital- och datorteknik PROGRAM: KURSBETECKNING Mekatronik-, data- och elektroingenjör Åk / lp o2 LEU43 EXAMINATOR Lars-Eric Arebrink TID FÖR TENTAMEN 202-2-2 kl. 8.30 2.30 HJÄLPMEDEL Av institutionen utgiven Instruktionslista för FLEX-processorn (INS) Tabellverk eller miniräknare får ej användas. ANSV LÄRARE: Lennart Hansson, tel. 772 68 Besöker tentamen ANSLAG AV RESULTAT 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. Lägg din anonyma kod på minnet! Den används när resultatet anslås. ÖVRIG INFORM. Tentamen omfattar totalt 60 poäng. Onödigt komplicerade lösningar kan ge poängavdrag. Svar på uppgifter skall motiveras. 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.

2(8). I uppgift a-h nedan används 8-bitars tal X, Y, S och D. X = 000 och Y = 0000. 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 penna och papper hur räkneoperationen S = X + Y utförs i en 8-bitars ALU. (p) d) Vilka värden får flaggbitarna N, Z, V och C vid räkneoperationen i c)? (p) e) Visa med penna och papper hur räkneoperationen D = X Y utförs i en 8-bitars ALU. (p) f) Vilka värden får flaggbitarna N, Z, V och C vid räkneoperationen i e)? (p) 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. 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. (p) (p) i) Genomför subtraktionen 96 0 320 0 med 0-komplementaritmetik. Hur många decimala sifferpositioner behövs? Hur skall man tolka resultatet? (2p) j) Översätt (packa upp) flyttalet 424B8000 6, som är givet enligt flyttalsstandarden IEEE 754-985 (dvs. 23 bitar av mantissan) till decimal form. (2p) a c k) Ge ett minimalt boolesk SP-uttryck för u i grindnätet till höger. = u a & b (3p) 2. En boolesk funktion f(a,b,c,d) har karnaughdiagrammet till höger. Realisera funktionen med så få grindar som möjligt. NAND-grindar med valfritt antal ingångar, XOR-grindar och NOT-grindar får användas. Endast insignalerna a, b, c och d finns tillgängliga. cd 00 0 0 00 0 0 0 0 0 0 0 0 3. a) Rita och fyll i T-vippans funktionstabell. (p) b) Tag fram en fullständig tillståndsgraf för räknaren nedan med tillstånden numrerade q 2 q q 0. Med fullständig menas att samtliga tillstånd finns med. ab (4p) J q 0 J q J q 2 C C C K K K (5p)

3(8) 4. Ge RTN-beskrivning och styrsignaler för de tillstånd som krävs för att utföra operationen enligt nedanstående RTN-beskrivning: RTN-beskrivning: 7 A - 5 B A (Aritmetisk multiplikation avses) Använd den enkla datavägen till höger och ge ditt svar i tabellform. Förutsätt att register A och B från början innehåller de data som skall behandlas enligt uttrycket ovan och att innehållen i register R och T är okända. Register B får inte ändras. Bortse från risken för overflow. Använd så få tillstånd som möjligt. Samtliga funktioner ALU:n kan utföra framgår av bilaga. LD A OE A Reg A LD B OE B Reg B 0 0 M U C 2 X C 3 2 g g 0 Funkt C in D LD R OE R LD T U ALU Reg R Reg T E Flaggor (4p) 5. Figur i bilaga 3 visar hur datorn FLEX är uppbyggd. Bilaga visar hur ALU ns funktion väljs med styrsignalerna f 3 - f 0 och C in. I tabellen nedan visas styrsignalerna i EXECUTE-sekvensen för en av FLEX-processorns instruktioner. State nr S-term 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 A, f 3, f, LD R, LD CC Q 8 Q 8 I xx OE R, LD A, NF Styrsignalen NF i tabellens sista rad medför att nästa tillstånd blir det första i FETCH-sekvensen. a) Ge RTN-beskrivningen för alla tillstånden i tabellen och förklara vilken assemblerinstruktion som beskrivs. (3p) b) Instruktionen Add to Memory nedan skall implementeras för FLEX-processorn med hjälp av styrenheten med fast logik. Instruktionen består av tre ord. Den läser dataordet på adressen efter operationskoden i minnet och adderar det till minnesordet på adressen Adr som finns som data i instruktionens tredje ord. Flaggregistret får nya värden av additionen. Register A, B, X eller SP får ej påverkas. Operationskoden FE 6 skall användas. ADDM #Data,Adr RTN: Data + M(Adr) M(Adr), Flags CC OPKOD Data Adr Gör en tabell liknande tabellen ovan för den efterfrågade EXECUTE-sekvensen. (4p)

4(8) 6. Besvara kortfattat följande frågor rörande FLEX-processorn. Tips: Använd figur i bilaga 3 som stöd när du löser uppgifterna nedan! a) Vilken uppgift har RESET-sekvensen? (2p) b) Vilken uppgift har programräknaren (PC) i FLEX-datorn? (2p) c) För vilka värden på talet W (0 W 255) utförs hoppet nedan? LDAA #W CMPA #$80 BHI Hopp d) För vilka värden på talet W (0 W 255) utförs hoppet nedan? LDAA #W CMPA #$40 BLE Hopp (2p) (3p) e) Ö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. (3p) f) Subrutinen i e) anropas i huvudprogrammet nedan. LDS #$FC LDAA #5 JSR TIME STOP BRA STOP Hur lång tid tar subrutinen att köra från och med JSR till och med RTS om FLEX-processorn klockas med frekvensen MHz? (3p) XVAL EQU -0 ORG $80 TIME PSHA PSHX LOOP LDX #XVAL LOOPX TEXIT INX NOP BNE DECA BEQ BRA PULX PULA RTS LOOPX TEXIT LOOP g) Skriv ett program i assemblerspråk som adderar två 6-bitars tal P och Q i minnet och bildar summan R enligt: R HB :R LB = P HB :P LB + Q HB :Q LB. Programmet skall placeras med start på adress 20 6, Summan R, som antas rymmas i 6 bitar, skall placeras i minnet enligt figuren till höger. Översätt programmet till maskinkod på hexadecimal form och visa hur det placeras i minnet. Adr(hex) Data 40 P HB 4 P LB 42 Q HB 43 Q LB 44 R HB 45 R LB (3)

7. I simulatorn för FLEX-datorn kan man ansluta strömbrytarmodulen DIPSWITCH till en inport och ljusdiodsindikatorn LED till en utport. På DIPSWITCH kan man ställa in ett 8-bitars datavärde och på LED kan man visa ett 8-bitars dataord som ett binärt tal. Skapa ett program som kan visa rinnande ljus på ljusdiodsindikatorn LED. Flödesriktningen skall vara valbar (<- -> vänster/höger). Använd en bitmönstertabell för att lösa uppgiften. Skriv ett program med startadress 30 6 i assemblerspråk för FLEX-datorn som fungerar enligt beskrivningen nedan:. Sätt stackpekaren till värdet F0 6. 2. Läs av DIPSWITCH från inporten på adress FD 6. 3. Om värdet på DIPSWITCH är 0------ 2, dvs. b 7 =0 och b 0 =, skall ljuset rinna åt höger. Om värdet på DIPSWITCH är ------0 2, dvs. b 7 = och b 0 =0, skall ljuset rinna åt vänster. För alla andra värden på DIPSWITCH skall ljuset stå stilla. 4. Visa bitmönstret på LED-indikatorn via utporten på adress FE 6. 5. Anropa en färdig subrutin DELAY. 6. Hoppa tillbaka till 2. Följande bitmönstertabell skall börja på adressen 90 6 : $0,$02,$04,$08,$0,$20,$40,$80 Bitmönstertabellen skall laddas i minnet tillsammans med programmet. Korrekta radkommentarer skall finnas för full poäng! 5(8) (6p)

6(8) Bilaga ALU:ns funktion 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-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 8(8) 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.