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

Relevanta dokument
F8: Undantagshantering

Undantagstyper. Maskinorienterad Programmering 2010/2011. MC68HC12, Stencil Assemblerprogrammering.pdf CPU12 Reference Guide

Förutsättningar för skrivaranslutningen

Förutsättningar för skrivaranslutningen. Första programexemplet. Synkronisera arbetstakterna

Förutsättningar för skrivaranslutningen. Första programexemplet. strängslut. Maskinorienterad Programmering 2011/2012 Synkronisering och undantag

Programmering av inbyggda system

Digital- och datorteknik

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

Förutsättningar för skrivaranslutningen. Första programexemplet. Inför specialtecken för strängslut

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

Programexempel för FLEX

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

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

LV6 LV7. Aktivera Kursens mål:

Extrauppgifter för CPU12

Printerport. I DAG Fö 3. Adressavkodning för skrivarporten. Printerport - forts

3. Mikroprogrammering II

Maskinorienterad programmering

Maskinorienterad programmering

Föreläsningsanteckningar 3. Mikroprogrammering II

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:

VELKOMMEN!!!! SYFTE o MÅL. till EDA485/DIT151. Maskinorienterad Programmering. Kurslitteratur. önskar Jan o Rolf

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

Digital- och datorteknik

ALU:n ska anslutas hur då?

Datorsystemteknik Föreläsning 7DAVA14

Avbrott - En enhet. I DAG fo 6 Mera avbrott. Avbrott - Fler enheter. Olika typer av avbrott DMA. Avbrott - Fler enheter -Avbrottshanterare

Polling (cyklisk avfrågning) Avbrott

Avbrottshantering. Övningsuppgifter

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

Institutionen för elektro- och informationsteknologi, LTH

Grundläggande datavetenskap, 4p

VELKOMMEN!!!! SYFTE o MÅL. till DAT015 / DIT151 Maskinorienterad Programmering. Kurslitteratur. önskar Jan o Rolf. Lektioner LP2 Vanlig vecka

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

I DAG Fo 4. Programutveckling i assemblerspråk. Programutveckling i assembler. PROGRAMSTRUKTUR Modul Subrutiner USE-direktivet

Lösningar till tentamen i EIT070 Datorteknik

0.1. INTRODUKTION Instruktionens opcode decodas till en språknivå som är förstålig för ALUn.

F6: I/O hantering. Typer av I/O i ett datorsystem. Protokoll för synkronisering. Drivrutiner. Memory mapped Port mapped. Polling Timed Interrupt DMA

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

Svar till Övning3 Datorteknik, HH vt12 Avbrott och timers

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

Institutionen för elektro- och informationsteknologi, LTH

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

Lösningsförslag tenta

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

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

LEU240 Mikrodatorsystem

LABORATION. Datorteknik Y

Maskinorienterad programmering

Digital- och datorteknik

Lösningsförslag till Tenta i Mikrodator

Övningsuppgifter i Mikrodatorteknik 4p/5p

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

Digitala System: Datorteknik ERIK LARSSON

Fö 5+6 TSEA81. Real-time kernel + Real-time OS

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

EDA Digital och Datorteknik

Adressrum, programmerarens bild

Stack och subrutiner Programmeringskonventionen

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

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

LABORATION. Datorteknik Y

Assemblerprogrammering del 3

Datormodell. Datorns uppgifter -Utföra program (instruktioner) Göra beräkningar på data Flytta data Interagera med omvärlden

Maskinorienterad Programmering 2010/2011. Maskinorienterad Programmering 2010/2011. Skrivarporten, p Arbetsbok MC12, avsnitt 2

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

Digital- och datorteknik

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

Exempel 3 på Tentamen

CPU. Carry/Borrow IX. Programräknare

Tentamen. Datorteknik Y, TSEA28

Läsminne Read Only Memory ROM

Laboration nr 4 behandlar Assemblerprogrammering

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

In- och Utenheter. Fö 3: In/Ut matning och kopplingsstruktur. Några exempel. Egenskaper. In- och Utenheter. Styrning.

Lösningsförslag till Tenta i Mikrodator

Maskinorienterad programmering

Digital och Datorteknik EDA /2010. EDA Digital och Datorteknik

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

Assemblerprogrammeringsuppgifter för FLIS-processorn

Datorteknik. Föreläsning 6. Processorns uppbyggnad, pipelining. Institutionen för elektro- och informationsteknologi, LTH. Mål

Datorteknik ERIK LARSSON

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

Mål. Datorteknik. Repetition av avbrott. Innehåll. Mätning och styrning. Datorer för mätning och styrning. timer. Datorsystem A/D. Analog insignal D/A

Dataöverföring på Parallell- och serieform MOP 11/12 1

Övningsuppgifter STYRNING - i Mikrodatorteknik för U2 2010

Lösningar till tentamen i EIT070 Datorteknik

CHALMERS TEKNISKA HÖGSKOLA

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

F6: I/O hantering. Typer av I/O i ett datorsystem. Memory mapped

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär:

Assemblerprogrammering

TSEA28 Datorteknik Y (och U)

Tentamen i EIT070 Datorteknik

Datorsystem Laboration 2: Minnesmappade bussar

System S. Datorarkitektur - en inledning. Organisation av datorsystem: olika abstraktionsnivåer. den mest abstrakta synen på systemet

Transkript:

Rep Konstruktion av en Printer-Port ynkroniseringsproblem Villkorlig / ovillkorlig överföring Busy Wait och Polling Handskakningssignaler AVBROTT!!! svektor I-flagga svippa sdriven Printerport I DAG fo Bit 7 Printerport v med o tatusregister = : REDO skrivare = : UPPTAGEN skrivare krivarbuss Bit 7 tyrregister krivare s8 = Giltigt tecken = Ogiltigt värde. MOP OH LVB MOP OH LVB Hur bra blev det egentligen s s * HUVUDPROGRAM... Olika initieringar... Loop... Annat arbete som... processorn utför... jsr Print kriv ut en fil... bra Loop s Verkligt "arbete" n väntar på skall gå hög kriv en fil ms s MOP OH LVB Datorsystem MC- system som skriver ut ett tecken krivarbuss krivare Adr: TextP A H Pekare till A L nästa tecken Text H e j ssignal D u ACIIkoder K för texta sträng l l e! EOT lutmarkeing MOP OH LVB

- forts HITILL: Programmeraren (DU) bestämmer när: JR Printchar kriv ett tecken s forts. VAD KRÄV. spara undan sin PC. starta en rutin som skriver ut ett tecken till skrivaren för att. sedan återstarta huvudprogrammet VID AVBROTT: krivaren bestämmer när: Printchar kriv ett tecken VAD KRÄV spara undan sin PC starta en rutin som skriver ut ett tecken till skrivaren för att sedan återstarta huvudprogrammet MOP OH LVB ) para undan sitt PC (jfr JR ubrut) PC (high) PC (low) i subrutinen före subrutinanropet PC (high) PC (low) i en före ssignalen MOP OH LVB forts. VAD KRÄV. spara undan sin PC. starta en rutin som skriver ut ett tecken till skrivaren för att. sedan återstarta huvudprogrammet forts. VAD KRÄV. spara undan sin PC. starta en rutin som skriver ut ett tecken till skrivaren för att. sedan återstarta huvudprogrammet ) starta en rutin som skriver ut ett tecken till skrivaren ) sedan återstarta huvudprogrammet $FFF $FFF Minnet RT PC (high) PC (low) i subrutinen före subrutinanropet PC (high) PC (low) i en före avbrott MOP OH LVB 7 MOP OH LVB 8

- forts s forts. Hur jobbar processorn Adr: TextP A H Pekare till A L nästa tecken Text H * e j ldx ldaa TextP,x+ Läs pekare till nästa kriv nästa tecken D u ACIIkoder K för texta sträng l l e! EOT lutmarkeing sta Printer stx TextP para nya pekare rti Resetsignal Aktiv REET Hämta FETCH ssignal EXECUTE MOP OH LVB 9 MOP OH LVB forts. Vissa problem. --- ldaa umma adda Belopp staa umma --- --- CMPB BHI --- Variabel Larger MOP OH LVB ssignal forts. Vissa problem. ssignal ) ave tatus ) Restore tatus Max CC B A X (high) X (low) Y (high) Y (low) PC (high) PC (low) i en före avbrott MOP OH LVB

Vi summerar händelseförloppet vid ett avbrott. ) met kör ) Hopp till ave status Hämta avbrottsvektor ) tarta o kör ) Återhopp till huvudprogram ) Restore status ) met fortsätter forts. MOP OH LVB avbrottet Aktiv Hämta avbrottet forts. Flera problem. Datorsystem (Redo) Här är data Yttre enhet MOP OH LVB forts.. forts.. avbrottet Lösning: Ny flagga i CC-registret FETCH EXECUTE I-flagga = Aktiv Hämta MOP OH LVB MOP OH LVB

forts.. Före avbrottet Under avbrottet Efter avbrottet Huvud Prog Upg Adr TO =Enable (CC) Initiera för avbrott TO Befintligt stackinnehåll tatus och återhoppsadress för Befintligt stackinnehåll TO Befintligt stackinnehåll Öka Var Visa Var Öka Var Adr max Visa Var ns tatus register Mask =Enable Mask =Off Mask =Enable MOP OH LVB 7 MOP OH LVB 8 Huvud Progr Initiera för avbrott Öka Var Visa Var Visa Var Upg GÖR UPG och studera: Händelseförloppet när ni Kör Run low och tep tacken generellt Återhoppsadress I-flaggan i CC-reg och på stack tatusindikatorer i simulatorn Tryckknapp Puls vid nedtryckning av tryckknapp lite mera problem (MC) E avbrottet Öka Var Öka Var D 7 -D MOP OH LVB 9 MOP OH LVB

lite mera problem Kvittera avbrottet Tryckknapp Puls vid nedtryckning av tryckknapp avbrottet (MC) E D 7 -D I-flagga = Aktiv Hämta MOP OH LVB sruti n tyrenhet tyrenhet = Kvittera avbrott: ätt = Yttre enhet Yttre enhet MOP OH LVB inför svippa Huvud Prog Upg Tryckknapp Puls vid nedtryckning av tryckknapp Initiera för avbrott "" D Q Öka Var R C Q Visa Var Visa Var A A A A A A & Write address Puls då processorn skriver Kvittera avbrott vid TAA IrqVippa MOP OH LVB Öka Var LDAA $DC Läs status TAA $DC Nolla vippa TAA $DC Nolla vippa MOP OH LVB

Upg - ammanfattning Gör Upg och undersök ssignal svippa Nollställning av vippa Gör Upg o och testa med avbrottssignaler avbrottsvippor Nollställning av vipporna Begrepp: singång på processorn (Interrupt) I-flagga i CC-registret (Maskera avbrott, brandvägg) svektor ( ) ave tatus (Placera alla regs på stacken) ( subrutin avslutad med ) Återhopp från () Restore tatus (Återhämta alla regs från stack) svippa Kvittera avbrott (Nollställa avbrottsvippa) MOP OH LVB MOP OH LVB - ammanfattning. OM I-flaggan=: n känner att är aktiverad och slutför utförandet av pågående instruktion.. n sparar huvudprogrammets återhoppsadress och övriga registerinnehåll på stacken, save status. Därefter läser processorn startadressen för en från -vektorn (från adress $FFF och $FFF). Denna startadress placeras i PC. I-flaggan ETT-ställs. en startas (med I-flaggan=). Kvittera avbrott.. en avslutas med instruktionen som får processorn att utföra restore status, dvs registerinnehållen återställs från stacken (med gamla I=).. Återhopp till huvudprogram.. Därmed återstartas huvudprogrammet där det blev avbrutet MOP OH LVB 7 Bit 7 Printerport v med o Datorsystem tatusregister = : REDO skrivare = : UPPTAGEN skrivare krivarbuss Bit 7 tyrregister krivare = Giltigt tecken = Ogiltigt värde. MOP OH LVB 8 7

- PrinterPort sdriven Printerport v. ssignal som skriver ut ett tecken Adr: TextP A H Pekare till A L nästa tecken Text H e j C_Printer avkodning "" D R C Q Q MC- system krivarbuss krivare D u ACIIkoder K för texta sträng l l e! EOT lutmarkeing A A ns databuss Anslutning processorn C_Ctrl CP b Regiser () C C_tat C_Pri CP b Regiser (8) C krivarbuss Anslutning skrivaren MOP OH LVB 9 MOP OH LVB Printer Interface sdriven Printerport v. s I-flagga = Aktiv Hämta sruti n Tryckknapp Puls vid nedtryckning av tryckknapp (MC) E D 7 -D C_Printer A A ns databuss Anslutning processorn avkodning C_Ctrl CP b b Regiser () C "" D R C C_tat C_Pri CP Q Q > b Regiser (8) C krivarbuss Anslutning skrivaren MOP OH LVB MOP OH LVB 8

I DAG fo Mera avbrott - En enhet Olika typer av avbrott Flera avbrottsingångar Vektoravbrott Mjukvaruavbrott DMA adressbuss I/O-interface $Q $Q+ Minnet databuss MOP fo MOP fo - Fler enheter - Fler enheter -shanterare $Q Minnet ssignal $Q+ Källa $Q Källa Källa Minnet & avbrottsingång, aktiv låg CPU Gränssnitt A seriell anslutning ns Gränssnitt B parallell anslutning bussar Gränssnitt C A/D anslutning Minne s hanterare från A från B enhet C s rutin C s rutin A enhet A s rutin B enhet B $Q+ MOP fo RTE MOP fo 9

INTA In Out YE Vektor nr In Databuss Vektor- Out YE Vektor nr In Out YE Vektor nr Vektor nr ( i) Vektor nr ( i+p) Vektor nr max ( i+max) max MOP fo 7 Vektor INTA 7 PC Yttre enhet Minne INTA Vektor Reg p Vektor q (Vektor q) q Databuss r buss MOP fo 8 Flera singångar Olika prioriteter CPU ssignaler ns X Y Z bussar eriell Parallell Analog anslutning anslutning anslutning A B C Minne MOP fo 9 CPU ssignaler för för för RT E ns RT E bussar eriell Parallell Analog anslutning anslutning anslutning A B C Minne Adr tatus och återhoppsadress för tatus och återhoppsadress för tatus och återhoppsadress för huvudprogrammet RT E Adr max MOP fo

Interna signaler för detekterig av olika feltillstånd Externa avbrottsignaler med HC s TYRENHET s Register tatus Register slogik tyrbuss REET avbrottshantering för REET i i+ Minnet Datadel D..D7 ALU DATAVÄG del A..A7 och PC buss X I avbrottshantering för X avbrottshantering för i+ i+ i+ i+ Databuss MOP ns fo externa bussar etc MOP fo (hex) FFFE FFFC FFFA FFF8 FFF FFF FFF FF-FFF med HC Funktion REET, tartvektor Clock Monitor Fail, (ej impl i simulator) COP Watchdog Timeout, (ej impl i simulator) Illegal Op Code (ej impl i simulator) WI X Enhetsspecifika vektorer, skiljer sig något beroende på de olika varianterna e Appendix D MOP fo Övriga avbrott med HC REET X (Reset) (Interrupt Request) (Non Maskable Interrupt Request) PLU - Ett antal avbrottsingångar från Räknare Fel OP-kod För låg klockfrekvens Wake-Up I/O-moduler eriekretsar Datanät etc MOP fo

MC8 Vektor nr $ High Word tackpekare $ $8 High Word High Word Resetvektor Bus Error MC8 Externa avbrottsingångar i systemet yttre enheter $ High Word Division med noll NORMAL EXCEPT ION REET HALTED $ High Word High Word $ High Word High Word Autovektor snivå Autovektor snivå Vektoravbrott vektor Vektoravbrott vektor IPL IPL IPL s nivå 7 Ingen avbrottsbegäran $fc High Word Vektoravbrott vektor 9 MOP fo MOP fo MC8 Exceptions Interna Buss Error REET TRAP VID AVBROTT: krivaren bestämmer när: Printchar WI - oftware Interrupt Datorsystem kriv ett tecken (Redo) Här är data Yttre enhet Feltillstånd Vektor Autovektor avbrott avbrott Programmerade / externa händelser VID oftware Interrupt: Programmeraren (DU) bestämmer med instruktionen WI när rutinen Printchar skall anropas MOP fo 7 MOP fo 8

DMA Direct Memory Access n är BU MATER DMA Direct Memory Access DMA:n är BU MATER Adr Bus Adr Bus CPU ExVis DIK Minne CPU DMAenhet DMAenhet ExVis DIK Minne Data Bus MOP fo 9 Data Bus MOP fo