Digital- och datorteknik

Relevanta dokument
Assemblerprogrammering del 3

Digital- och datorteknik

Digital- och datorteknik

Digital- och datorteknik

Digital- och datorteknik

F8: Undantagshantering

Digital- och datorteknik

Digital- och datorteknik

Digital- och datorteknik

Digital- och datorteknik

Programexempel för FLEX

Datorsystemteknik Föreläsning 7DAVA14

Avbrottshantering. Övningsuppgifter

AVR 3 - datorteknik. Avbrott. Digitala system 15 hp. Förberedelser

Föreläsningsanteckningar 3. Mikroprogrammering II

I DAG fo 4. Printerport v3 med READY o DAV. Avbrott. Hur bra blev det egentligen????

Digital- och datorteknik

Exempel 3 på Tentamen

Övningsuppgifter STYRNING - i Mikrodatorteknik för U2 2010

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

Avbrottshantering. Övningsuppgifter Lösningsförslag Uppgift (Reservation för diverse fel!)

Polling (cyklisk avfrågning) Avbrott

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

Institutionen för elektro- och informationsteknologi, LTH

Datorteknik. Föreläsning 5. Realtidssystem och realtidsprogrammering. Institutionen för elektro- och informationsteknologi, LTH.

Uppgift 1: a) u= a c + a bc+ ab d +b cd

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

Maskinorienterad programmering

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

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

LV6 LV7. Aktivera Kursens mål:

Digital- och datorteknik

TSEA28 Datorteknik Y (och U)

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

Laboration 4: Knappstuds Drivrutiner för att eliminera störningar.

3. Mikroprogrammering II

Reducerad INSTRUKTIONSLISTA för FLIS-processorn

Mål. Datorteknik. Introduktion. Innehåll. Verklig situation - pappaledighet. Introduktion (forts)

Institutionen för elektro- och informationsteknologi, LTH

Laboration nr 3 behandlar

Maskinorienterad programmering

Digital- och datorteknik

TSEA28 Datorteknik Y (och U)

Programallokering. Programtyper. Att placera program i flashrespektive. Program i FLASH-minne. Program i RAM-minne

LABORATION. Datorteknik Y

Ansvarig lärare: Olof Andersson, Telefon (besöker skrivsalen)

Datorteknik. Föreläsning 4. Polling och avbrott. Institutionen för elektro- och informationsteknologi, LTH. Mål

A-del motsvarande KS1

CHALMERS TEKNISKA HÖGSKOLA

TSEA28 Datorteknik Y (och U)

Maskinorienterad programmering

Maskinorienterad programmering

Lösningar till tentamen i EIT070 Datorteknik

Exempel 1 på Tentamen med lösningar

ALU:n ska anslutas hur då?

EDA480/EDA485 - Maskinorienterad programmering, tentamen 2006-xx-xx 1(7)

Digital- och datorteknik

Programmering av inbyggda system

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

Digital- och datorteknik

Lösningsförslag tenta

Tentamen i EIT070 Datorteknik

LABORATION. Datorteknik Y

Assemblerprogrammeringsuppgifter för FLIS-processorn

Centralenheten: ALU, dataväg och minne

TENTAMEN(Nu anpassad till FLIS- processorn)

Svar till Övning3 Datorteknik, HH vt12 Avbrott och timers

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

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

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

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

Övningsuppgifter i Mikrodatorteknik 4p/5p

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

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

Tentamen. Datorteknik Y, TSEA28

Kort beskrivning av Sveriges första dator BESK

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

MIKRODATORTEKNIK 2012 INNEHÅLLSFÖRTECKNING

Tentamen med lösningar

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

CE_O3. Nios II. Inför lab nios2time

Grundläggande datorteknik

Digital- och datorteknik

Tentamen (Svar och lösningsförslag)

Lösningar till tentamen i EIT070 Datorteknik

Digital- och datorteknik

Extrauppgifter för CPU12

Maskinorienterad programmering

Digital- och datorteknik

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

CPU. Carry/Borrow IX. Programräknare

Laboration 2 i Datorteknik- Assemblerprogrammering II

Föreläsningsanteckningar 2. Mikroprogrammering I

Styrenheten styrsignalsekvenser programflödeskontroll

General Purpose registers ALU I T H S V N Z C SREG. Antag att vi behöver skriva in talet 25 till register R18

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

Laboration Datorteknik TSIU02 2. I/O-programmering

Transkript:

Digital- och datorteknik Föreläsning #19 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola

Normaltillstånd vs undantagstillstånd I normaltillstånd arbetar processorn i enlighet med vad vi hittills antagit, d v s den hämtar och utför instruktioner i en, potentiellt oändlig, repetitiv process. För att kunna reagera på externa händelser, samt oväntade interna händelser, är processorn dessutom utrustad för att hantera undantag ( exceptions ) från det normala beteendet. Processorns mottaglighet för externa händelser gör det möjligt för användaren eller andra aktörer i datorsystemets omgivning att påverka processorns programflöde via speciella insignaler. Processorns mottaglighet för interna händelser innebär att den kan reagera på onormala situationer i programexekveringen.

Normaltillstånd vs undantagstillstånd I normaltillstånd arbetar processorn i enlighet med vad vi hittills antagit, d v s den hämtar och utför instruktioner i en, potentiellt oändlig, repetitiv process. För att kunna reagera på externa händelser, samt oväntade interna händelser, är processorn dessutom utrustad för att hantera undantag ( exceptions ) från det normala beteendet. För att processorn inte skall påverkas av händelser som inte är kritiska finns det möjlighet att maskera vissa typer av undantag. Huruvida maskering skall ske eller ej kontrolleras genom speciella flaggbitar i processorn.

Typer av undantag generellt för processorer Återstart ( reset ) Händelse som alltid föranleder återstart av processorn. Denna typ av händelse kan inte maskeras. Avbrott ( interrupt ) Externa händelser som inte innebär att processorn skall återstartas. Denna typ av händelser kan vanligtvis maskeras. Internt fel ( trap ) Händelser som uppträder vid utförandet av en instruktion och som gör att instruktionen inte kan fullföljas, t ex otillåten operationskod eller division med noll. Denna typ av händelser kan oftast inte maskeras.

Typer av undantag FLIS-processorn Återstart ( reset ) Aktiv signal på ingången RESET ger återstart av processorn. Denna händelse kan inte maskeras. Avbrott ( interrupt ) Aktiv signal på ingången IRQ ( interrupt request ) begär ett avbrott hos processorn. Denna händelse kan maskeras med processorns I-flagga. Internt fel ( trap ) Utförandet av en instruktion med otillåten operationskod ger upphov till internt fel i processorn. Denna händelse kan inte maskeras.

Hanteringsrutiner FLIS-processorn Återstart ( reset ) Adressen till huvudprogrammets början hämtas från datorsystemets resetvektor (= innehållet i adress $FF). Avbrott ( interrupt ) Adressen till en hanteringsrutin ( interrupt handler ) hämtas från datorsystemets avbrottsvektor för extern styrning (= innehållet i adress $FD). Internt fel ( trap ) Adressen till en hanteringsrutin ( trap handler ) hämtas från datorsystemets avbrottsvektor för internt fel (= innehållet i adress $FE).

Primärminnets användning Den rekommenderade användningen av primärminnet i FLIS-processorn är: Adress 20 16 FA 16 : Programkod Adress 00 16 0F 16 : Globala variabler (data med relativt lång livslängd) Adress 10 16 1F 16 : Programstack (data med relativt kort livslängd) Adress FB 16 FC 16 : In- och ut-portar A (reserverat för kommunikation med sensor och/eller ställdon) Adress FD 16 FF 16 : Vektorer (reserverat för lagring av speciella hoppadresser)

Undantagshantering FLIS-processorn

Återstart FLIS-processorn När signalen på RESET-ingången blir aktiv upphör processorns arbete. Processorn inväntar att ingången blir inaktiv. I-flaggan ettställs för att maskera (d v s, stänga av) avbrottssystemet. Processorn läser innehållet i datorsystemets RESET-vektor på minnesadress FF 16, och placerar det i register PC. Processorn hämtar första instruktionen i huvudprogrammet.

Avbrott FLIS-processorn När signalen på IRQ-ingången blir aktiv exekverar processorn färdigt den instruktion den håller på med. Om avbrottssystemet är aktiverat, d v s I-flaggan är nollställd, accepterar processorn avbrottet. I annat fall fortsätter programexekveringen som vanligt. Om avbrottsbegäran accepteras sparas innehållen i de interna registren i ordningen PC, Y, X, A och CC på stacken. Därefter ettställs I-flaggan för att utestänga nya avbrott. Processorn läser innehållet i datorsystemets IRQ-vektor på minnesadress FD 16, och placerar det i register PC. Processorn hämtar första instruktionen i hanteringsrutinen.

Internt fel FLIS-processorn Om processorn identifierar en otillåten operationskod sparas innehållen i de interna registren i ordningen PC, Y, X, A och CC på stacken. Därefter ettställs I-flaggan för att utestänga ytterligare avbrott. Processorn läser innehållet i datorsystemets TRAP-vektor på minnesadress FE 16, och placerar det i register PC. Processorn hämtar första instruktionen i hanteringsrutinen.

Detektering av extern avbrottssignal Med hjälp av en D-vippa kan såväl kortvariga som långvariga händelsesignaler registreras av processorn. A 7 -A 0 Händelsedetektor 1 1D C1 Q IRQ FLISP MR A 7 A 6 A 5 A 4 A 3 A 2 A 1 A 0 CP MR & & CS IRQ_READ R D 7 -D 0

Kodning av hanteringsrutiner När hanteringsrutinen börjar exekveras vet man att händelsen som orsakar avbrott har inträffat. Hanteringsrutinen skall därför utföra den kod som är förknippat med händelsen och sedan återvända till det avbrutna programmet med återställda register. Hanteringsrutinen skall byggas på samma sätt som en vanlig subrutin, med följande viktiga skillnad: hanteringsrutinen ska avslutas med instruktionen RTI ( return från interrupt ), som återställer innehållen i samtliga processorregister. Vid avbrott p g a extern händelse måste den aktiva signal som orsakade det pågående avbrottet ha försvunnit innan återhoppet. Annars kommer ju ett nytt avbrott att genereras för samma externa händelse efter återhoppet.

Kodning av hanteringsrutiner Återhopp från avbrott görs med instruktionen RTI. Notera att avbrottssystemet automatiskt aktiveras då de gamla registerinnehållen i processorn återställs vid återhopp från hanteringsrutinen eftersom det gamla CC-innehållet, som hämtas från stacken, innehåller en nolla i I-biten. Instruktion Adressering Operationsbeskrivning Flaggor Operation Beteckning Inherent 4 3 2 1 0 OP # ~ I N Z V C Return from interrupt RTI 44 1 6 M(SP) CC; SP+1 SP M(SP) A; SP+1 SP M(SP) X; SP+1 SP M(SP) Y; SP+1 SP M(SP) PC; SP+1 SP

Kodning av hanteringsrutiner Nollställning av den signal som genererat avbrott p g a extern händelse kan ske genom att läsa på adressen för IRQ-vektor. A 7 -A 0 Händelsedetektor 1 1D C1 Q IRQ FLISP MR A 7 A 6 A 5 A 4 A 3 A 2 A 1 A 0 CP MR & & CS IRQ_READ R D 7 -D 0 FD 16 = 1111 1101 2 Puls när processorn läser på adress FD 16

Demonstrationsexempel tongenerator Du skall skriva ett assemblerprogram som genererar en ton (fyrkantvåg) med frekvensen 250 Hz på bit b 0 på utport FB 16. Tonen skall genereras under ett tidsintervall av 180 ms. a) Skriv programmet så att alla nödvändiga fördröjningar erhålls genom att maskinkod exekveras. Antag att FLISprocessorn har klockfrekvensen 1 MHz. b) Modifiera programmet så att det istället utnyttjar att en extern pulsgenerator är ansluten till IRQ-ingången. Antag att pulsgeneratorn levererar positiva klockflanker en gång per millisekund.