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

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

Digital- och datorteknik

Digital- och datorteknik. Lars-Eric Arebrink. vid flera tillfällen. 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

TENTAMEN(Nu anpassad till FLIS- processorn)

Digital- och datorteknik

Digital- och datorteknik. Lars-Eric Arebrink. vid flera tillfällen. 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

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

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

Maskinorienterad programmering

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

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

TENTAMEN (Något redigerad)

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

Maskinorienterad programmering

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

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

EDA215 Digital- och datorteknik för Z

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

Exempel 3 på Tentamen

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.

Lösningsförslag tenta

Assemblerprogrammeringsuppgifter för FLIS-processorn

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

Maskinorienterad programmering

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

exempel på Tentamen 2

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

Tentamen med lösningar

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

CHALMERS TEKNISKA HÖGSKOLA

Exempel 1 på Tentamen med lösningar

Digital- och datorteknik

ALU:n ska anslutas hur då?

Exempel 2 på Tentamen med lösningar

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

Digital- och datorteknik

EDA Digital och Datorteknik

Digital- och datorteknik

Grundläggande Datorteknik Digital- och datorteknik

TENTAMEN (med svar och vissa lösningar)

Digital- och datorteknik

Programexempel för FLEX

Digital- och datorteknik

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

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

Tentamen (Svar och lösningsförslag)

Digital- och datorteknik

Extrauppgifter för CPU12

Exempel på tentamen 1

Digital- och datorteknik

Reducerad INSTRUKTIONSLISTA för FLIS-processorn

Digital- och datorteknik

Digital- och datorteknik

LEU431. Digital- och datorteknik. Diverse kompletterande material

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

Programmering i maskinspråk (Maskinassemblering)

Digital- och datorteknik

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

Programmering i maskinspråk (Maskinassemblering)

Digital- och datorteknik

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

Digital- och datorteknik

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

Assemblerprogrammering del 1

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

Avbrottshantering. Övningsuppgifter

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

MANUALBLAD MODULER TILL DIGITALMASKINEN

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

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

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

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

EDA216. Digital- och datorteknik. Diverse kompletterande material

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

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

FLEXIBLE INSTRUCTION SET PROCESSOR FLISP

Digital- och datorteknik

Facit till övningsuppgifter Kapitel 13 Anslutning av minnes- och I/O-moduler till buss 13-1

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

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

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

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

Assemblerprogrammering

Laboration nr 3 behandlar

Lösningar till tentamen i EIT070 Datorteknik

Digital och Datorteknik EDA /2010. EDA Digital och Datorteknik

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

FLEXIBLE INSTRUCTION SET PROCESSOR FLISP

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

Tentamen. TSEA22 Digitalteknik 5 juni, 2015, kl

Centralenheten: ALU, dataväg och minne

Digital- och datorteknik

Grundläggande datorteknik - exempelsamling. Grundläggande datorteknik - exempelsamling

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

EDA Digital och Datorteknik

Transkript:

Institutionen för data- och informationsteknik Avdelningen för datorteknik TENTAMEN KURSNAMN Digital- och datorteknik PROGRAM: KURSBETECKNING Elektro Åk / lp 4 EDA26 EXAMINATOR Lars-Eric Arebrink TID FÖR TENTAMEN 203-06-03 kl 4.00 8.00 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. 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 7-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 = 00 0 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 penna och papper hur räkneoperationen S = X + Y utförs i en 7-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 7-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. 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) Översätt (packa) det decimala talet 56,375 till ett 32-bitars flyttal enligt flyttalsstandarden IEEE 754 (dvs 23 bitar av mantissan). Ge det packade flyttalet på binär och hexadecimal form. (2p) 2. a) Ge ett minimalt boolesk SP-uttryck för u i grindnätet till höger. a c a b & u (2p) b) 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. Rutor med - representerar dont care -termer som får användas vid behov. ab cd 00 0 0 00 0 0 0 0-0 - - 0 0 - - 0 (4p) 3. a) Konstruera en JK-vippa med hjälp av en SR-vippa och standardgrindar. (3p) b) Konstruera en 4-bitars autonom uppräknare. (Räknesekvens: 0,, 2,, 4, 5, 0,, 2, ) Numrera tillstånden q 3 q 2 q q 0. T-vippor, AND-grindar med valfritt antal ingångar, XOR-grindar och NOT-grindar får användas. Ledning: Det finns ett enkelt villkor som avgör om en bit i det binära talet (q 3 q 2 q q 0 ) 2 skall ändras från 0 till (eller tvärt om) vid uppräkningen! (6p)

4. I datavägen till höger innehåller register A och B från början värdena 24 0 resp. 44 0 på binär form. Därefter ges styrsignaler och klockpulser enligt tabellen nedan. Rita av tabellen! Fyll sedan i RTN-beskrivning 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 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 3(8) Reg T E Flaggor ALU-funktioner: Se bilaga! OE A OE B OE R Styrsignaler (=) RTN Reg A Reg B Reg T Reg R OE A, LD T 8 2C?? 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, f, f 0, LD R 7 OE R, f 3, g 0, LD R 8 OE R, LD B 9? (+3p) 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 nedan visas styrsignalerna för två olika EXECUTE-sekvenser för två olika maskininstruktioner, en för FLIS- och en för FLEX-processorn. State S-term RTN-beskrivning Styrsignaler (=) Q 4 Q 4 I xx MR, LD T, INC PC Q 5 Q 5 I xx MR, g 3, LD T Q 6 Q 6 I xx OE A, f 2, f, f 0, g 3, g 2, LD CC,NF a) Rita en tabell med State - och RTN-kolumner enligt ovan (FLISP) eller nedan (FLEX) för en av instruktionerna och fyll i RTN-beskrivningen! Förklara vilken assemblerinstruktion som beskrivs! Som alternativ kan du använda FLEX-datorn som visas i bilaga 3 med ALU'n i bilaga och tabellen nedan istället för FLIS-datorn. State S-term RTN-beskrivning Styrsignaler (=) Q 5 Q 5 I xx OE X, LD T Q 6 Q 6 I xx OE B, f 3, f, LD R Q 7 Q 7 I xx OE R, LD MA Q 8 Q 8 I xx MR, LD A, NF (2p)

5(forts.) b) Instruktionen Add memory bytes nedan skall implementeras för FLIS- eller FLEXprocessorn med hjälp av styrenheten med fast logik. Instruktionen består av fyra ord. Den utför addition av dataorden M(Adr) och M(Adr2). Summan placeras som M(Adr3). Flaggorna skall påverkas som vid en vanlig addition. Register som är synliga för programmeraren får ej påverkas, förutom CC. Operationskoden DF 6 skall användas. ADMB Adr,Adr2,Adr3, RTN: M(Adr) + M(Adr2) M(Adr3) Flags CC Gör en tabell liknande tabellen i uppgift a) för den efterfrågade EXECUTE-sekvensen. 4(8) OPKOD Adr Adr2 Adr3 (4p) 6. Besvara kortfattat följande frågor rörande FLIS- eller FLEX-processorn. a) Förklara varför det kan vara en fördel att använda instruktionen BRA Adr istället för JMP Adr. (p) b) Före de villkorliga hoppen BMI och BGT i ett program utförs en subtraktion som påverkar flaggorna. Förklara vad som händer för vardera hoppet om subtraktionen före är 65 6 97 6. (2p) c) Ö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) d) Subrutinen i c) anropas i huvudprogrammet nedan. ORG $0 LDSP #$FA LDA # 0 BSR DELAY STOP BRA STOP 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? INLP EQU 5 ; ORG $A0 DELAY PSHX PSHA ; LOOP LDX #INLP XLOOP LEAX,X CMPX #0 ; ; DELX EXG EXG BPL INCA BNE PULA PULX RTS X,SP X,SP XLOOP LOOP (3p) 7. I minnet i ett datorsystem med FLIS- eller FLEX-processorn finns ett datablock, BLOCK, med ett antal 8-bitars dataord. BLOCK avslutas med ett dataord med värdet 0, som bara förekommer som slutmarkering. Skriv en subrutin MODIFY i assemblerspråk som läser varje dataord från BLOCK, nollställer bit 7 och 2, ettställer bit 5, inverterar bit 4 och sedan skriver det nya dataordet i ett nytt datablock, BLOCK2, som också skall avslutas med ett dataord med värdet 0. BLOCK skall inte påverkas av subrutinen. Subrutinen MODIFY skall dessutom räkna alla dataord i BLOCK med bit 7 = och placera detta antal i A-registret före återhopp. För FLISP gäller att startadresserna till BLOCK och 2 skall finnas i X-registret resp. Y-registret vid anrop av subrutinen. För FLEX skall startadresserna till BLOCK och 2 finnas i X-registret resp. B-registret vid anropet. Endast A-registret och flaggregistret får vara förändrade vid återhopp. För full poäng skall programmet vara korrekt radkommenterat. (8p)

8. Ett mikrodatorsystem skall konstrueras med U2, st 32 kbyte ROM-kapsel, st 8 kbyte RWMkapsel, 3 st 8-bitars "three-state"-buffertar som inportar och ett 8-bitars register som utport. Se figuren nedan! (Adresser som anges som xxxxh är hexadecimala värden.) 5(8) 0000H 0 3FF H 0 400H 040 H In port Ut port Upptaget för styrreg mm. OE Indata Utdata C Register 32 kbyte ROM Databuss Databuss Adressbuss Adressbuss 800 0H CS RWM CS ROM 8 kbyte R WM R/W FFF E H FFFFH In port 2 In port 3 Databuss Databuss Signaler från processorn: D 7 -D 0, A 5 - A 0, E, R/W RWM-modulen skall placeras så att den upptar de sista 8k adressena i adressrummet, förutom de sista två adresserna, där inportarna nr 2 och 3 är placerade. Till höger visas principen för de olika modulerna. Samtliga moduler utom utporten aktiveras med hög nivå () på respektive CS- eller OE-ingång. Utportens klockingång har negativ flanktriggning. Till vänster i figuren framgår att adressområdet 0-400 6 är upptaget. Det innebär att ROM-kapseln inte får aktiveras i detta område. För att undvika busskollisioner måste Inport2 och Inport3 prioriteras före RWM-kapseln. Uppgift: Använd lämpliga signaler från processorn för att konstruera CS-logiken för ROM-modulen, RWMmodulen, inportarna och utporten. 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 i hexadecimal form. Ledning: Adressområdet som omfattar de första 400 6 adresserna kan betraktas som en modul med 400 6 olika adresser. (8p)

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) 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.