Západočeská univerzita v Plzni Písemná zkouška z předmětu: Zkoušející: Katedra informatiky a výpočetní techniky Počítačová technika KIV/POT Dr. Ing. Karel Dudáček Akademický rok: 2004/05 Datum: Příjmení: Křestní jméno: Osobní číslo: Obor: Celkový počet dosažených bodů (max. 100): Poznámka: Pokud není uvedeno jinak, uvažujte v následujících příkladech procesor H8S a 8bitový přístup do paměti. Organizace pamětí použitých v testu je po bytech, není-li uvedeno jinak. Časy, potřebné pro dekódování instrukcí, v příkladech neuvažujte. Hodnocení testu: 100 89 bodů = 1, 88 67 bodů = 2, 66 46 bodů = 3, < 46 bodů = 4. V případě zaškrtnutí nesprávné odpovědi (je-li více správných odpovědí) se v rámci dané otázky odečítá 1 bod. 1. (6 b.) Jaký výsledek bude v registru R1 a v příznakových bitech C (Carry) a V (Overflow) po sečtení obsahu registrů R0 a R1 instrukcí ADD.W R0,R1. Převeďte výsledek sečítání (tj. obsah R1) do desítkové soustavy, je-li obsah R1 interpretován jako číslo se znaménkem (signed int). Před sečtením Po sečtení R0 R1 R1 C V 2C11 E110 Obsah R1 v desítkové soustavě: 2. (4 b.) Doplňte v následujícím obrázku obsah příslušných registrů nebo bytů v paměti po provedení instrukce MOV.W @VAR02,R0. VAR01 VAR02 3Ah 420 200h 420 201h ER0 RH x R x RL x VAR03 C8h 420 202h... ER1 ER2 00h F0h 0042h 02h 01h 3. (8 b.) Kolik přístupů do paměti (tj. čtení a zápisů) vykoná procesor celkem při čtení a provedení instrukce MOV.L ER1,@0x05000001 (Délka operačního kódu instrukce MOV.L ERx,@xxxxxxxx je 8 bytů). Počet přístupů do paměti:
4. (2 b.) Registr PC v procesoru obsahuje: adresu následující instrukce adresu pro návrat z podprogramu adresu vrcholu zásobníku bázovou adresu pro blokový přenos dat. 5. (2 b.) Je-li v programu (omylem) instrukce skoku do oblasti paměti kde jsou uložena data, reaguje procesor (typu H8S) následujícím způsobem: procesor přejde do stavu STOP, procesor skokovou instrukci normálně provede, procesor provede skokovou instrukci a nastaví příznak nesprávná adresa v příznakovém registru, nesprávná adresa způsobí přerušení IRQ0, procesor vynuluje adresní pole instrukce, tj.provede skok na adresu 0x000 000. 6. (4 b.) Doplňte v následujícím obrázku obsah registrů R0 a R1 po provedení instrukcí: MOV.W #0x10,R1 PUSH.W R1 MOV.W R1,R0 L01: DEC.W R0 BNE @L01 POP.W R0 R0 R1 7. (10 b.) Dokreslete do následujícího obrázku průběh signálů /RD a /HWR a doplňte na adresní a datovou sběrnici k jednotlivým strojovým cyklům příslušné hodnoty adres a dat tak, aby odpovídal cyklům, které procesor provede při čtení a vykonání instrukce MOV.W @ER1,R0 Operační kód instrukce MOV.W @ER1,R0je 0x6910, instrukce leží na adrese 0x0020 31AB. Obsah ER1 je 0x0025 4412. Obsah paměti na adrese 0x0025 4412 je 0xC0D1. Ètecí/zápisový cykl A23 - A0 D15-D8 RD HWR
8. (6 b.) Jak dlouho (v µs) bude bude trvat provedení instrukce (tj. Fetch + Decode + Execute + Write Back) z předchozího příkladu, je-li frekvence hodinového signálu 25 MHz a zápisové/čtecí cykly se provádí bez vkládání čekacích taktů? Instrukce se vykoná za µs. 9. (6 b.) Na následujícím obrázku je zapojení periferního řadiče 82C55A. Jaké jsou adresy jeho jednotlivých registrů? Pro každý registr uveďte (v šestnáctkové soustavě) dvě různé adresy, kterými lze s daným registrem pracovat. Registr Adresa (1. možnost) Adresa (2. možnost) Datový reg. Port A Datový reg. Port B Datový reg. Port C Řídicí registr 10. (2 b.) Každá buňka dynamické paměti RAM se musí zotavovat přibližně po 10 ns 10 μs 10 ms 10 s 11. (4 b.) Jakými základními typy periferních obvodů jsou obvykle vybaveny mikrokontroléry? (Uveďte aspoň 3 typy obvodů.) a) b) c)
12. (6 b.) Na následujícím obrázku je mapa adresního prostoru jistého procesoru (nejedná se o H8S). a) Jaká je celková velikost tohoto adresního prostoru v kb resp. v MB? b) Zakreslete do mapy adresního prostoru paměť o kapacitě 512 MB, která začíná na adrese 0x4000 0000. FFFF FFFF 0000 0000 Velikost adresního prostoru je kb MB. (nevyhovující jednotky škrtněte). 13. (2 b.) Kolik paměťových obvodů o kapacitě 16M 8bitů je zapotřebí k sestavení paměti 64M 16bitů (uveďte správný počet a/nebo označte jinou správnou odpověď): je zapotřebí ks pamětí požadovanou kapacitu nelze z těchto obvodů sestavit paměť lze sestavit, ale část paměťové kapacity jednotlivých obvodů bude nevyužita 14. (2 b.) Jak dlouhá adresa (počet bitů) je zapotřebí k adresování paměti o kapacitě 32 kb (paměť je organizovaná po bytech)? Odpověď: bitů. 15. (4 b.) Na následujícím obrázku je průběh některých signálů na vývodech statické paměti. Dokreslete signály na datové sběrnici. V případě zápisu do paměti vyznačte okamžik, kdy musí být vstupní data stabilní. Adresa Data CS OE WR
16. (2 b.) Maskovatelné přerušení lze povolit nebo zakázat: programově nastavením příslušného registru procesoru aktivitou signálu /LWR na příslušném vývodu procesoru provedením instrukce RTE aktivitou signálu /BREQ na příslušném vývodu procesoru uvolněním sběrnice nelze je zakázat žádným způsobem. 17. (2 b.) Při současné aktivitě několika žádostí o přerušení je nejprve obsloužen obvod (zdroj přerušení): jehož přerušení bylo při předchozí žádosti obslouženo jako poslední žádný přerušovací systém se zablokuje a obvody musí žádost opakovat obsloužený obvod je vybrán náhodně jehož aktivní signál IRQ má nejvyšší úroveň napětí jehož přerušení má nejvyšší prioritu jenž se jako první odpojí od sběrnice. 18. (2 b.) Ve kterém okamžiku je testován stav vstupu (vstupů) přerušení (/IRQn resp. /INT) a při jeho aktivitě je vyvolán obslužný program: po každém taktu hodin po každém dokončeném strojovém cyklu po dokončení instrukce po dokončení cyklu Fetch, tj. přečtení kódu instrukce 19. (2 b.) Připojení vnější paměti programu k mikrokontroléru základní řady I8051 není vůbec možné je možné s využitím paralelních portů pro přenos adresy a dat je možné jen u speciálních verzí, vybavených rozšířenou datovou a adresní sběrnicí je možné jen v rozsahu adres 0x0400 0x7FFF 20. (2 b.) Dynamické paměti RAM mají kromě jiných vlastností i některé z následujících (vyberte všechny správné odpovědi): velmi vysokou rychlost nejvyšší z dostupných typů pamětí velmi malou spotřebu v klidovém stavu možnost trvalého uložení dat i bez připojeného napájení možnost automatického zotavení dat cyklem CAS before RAS s využitím vnitřního čítače adres zotavení možnost rychlého stránkového čtení dat 21. (2 b.) Při probíhajícím DMA přenosu musí být procesor (např. typu H8S): zastaven instrukcí HALT odpojen od sběrnice zastaven signálem /WAIT odpojen od napájecího napětí procesor může normálně vykonávat program
22. (2 b.) Při probíhajícím DMA cyklu přenosu z periferie do paměti je signál pro zápis do paměti (/HWR apod.) generován: samotným periferním obvodem procesorem, který je ve stavu HOLD pomocným řídicím registrem paměť používá pro zápis jen signály DRQ a DACK DMA řadičem 23. (4 b.) Jaké registry (obecně) obvykle obsahují programovatelné periferní obvody? U každého registru uveďte, je-li typicky používán pro čtení ( R) nebo pro zápis(w), resp. čtení i zápis (R/W) Registr Typický přístup 24. (4 b.) Na následujícím obrázku je blokové schéma zapojení DMA řadiče. Doplňte do obrázku propojení příslušných signálů, a to pouze těch, které souvisí s řízením DMA přenosu. CPU Øadiè DMA IO øadiè INT INT IRQ0 IRQ INTA INTA IRQ1 BREQ BREQ IRQ2 BUSACK BUSACK DRQ DRQ DACK DACK Adr Data Adr Data Adr Data Datová sbìrnice Adresní sbìrnice 25. (10 b.) Napište v assembleru H8S proceduru, která obrátí pořadí bitů v registru R0L, tj. zamění bit0 a bit7, bit1 a bit6 atd. Je-li např. v registru R0L hodnota 0111 0011 b, bude výsledek 1100 1110 b. Vyvoláním procedury se nesmí změnit obsah ostatních registrů.