LV6 Fo4 Aktivra Kursns må: Konstrura n dator mha grindar och programmra dnna Aktivra Förra vckans må: Konstrura styrnhtn kriva (strukturrad) assmbrprogram för FLIP Vikoriga hopp Kontrostrukturr if thn s tc. ubrutinr Vckans må: Ansuta In- och Utportar ti Fisp In-och utmatning Avbrott ssavkodning Ansuta minnn och I/O-modur Indata In och Utportar på FLIP Hårdvara Inport Dator md procssor och minn Utport Arb s 64 Utdata Grundäggand datortknik OHLV6 Grundäggand datortknik OHLV6 2 In och Utportar på FLEX In och Utportar på FLIP Arb s 64 ssavkodning LDA INPORT Procssor (CPU) Inport Innhtr Utnhtr C OE LDA TA Annan LDA TA INPORT UTPORT TA UTPORT CP C C LD Rgistr Grundäggand datortknik OHLV6 3 Grundäggand datortknik OHLV6 4
In och Utportar på FLEX In och Utportar på FLIP ssbuss CP C UT2 Utport 2 C LD Rgistr (8) C IN (8) Inport OE MR MW CP MR ut ss in C IO C IO2 > MR P MW P MR M W LDA TA $FB $FC LDA TA INPORT UTPORT2 Grundäggand datortknik OHLV6 5 Grundäggand datortknik OHLV6 6 LV6 Fo4 Dagns må. Du ska : Kunna ansuta In- och Utportar ti Fisp Förstå probm i samband md in-och utmatning Bskriva Vikorig/Ovikorig övrföring Förstå nka IO-program som utnyttjar Busy Wait / Poing - principr Förstå avbrott kriva myckt nka avbrottsrutinr Ett huvudprogram Main jsr Rut jsr Rut 2 jsr Print jsr Rut i bra Main H j D u K a! EOT ACIIkodr för txtsträng J Print Init Läs nästa tckn Tckn= EOT? N Övrför ti krivarn RT Grundäggand datortknik OHLV6 7 Grundäggand datortknik OHLV6 8 2
Ovikorig övrföring Vikorig övrföring Läs tatus Fispdator krivar UT-PORT änd ti mottagarn Fispdator READY krivar UT-PORT Är skrivarn upptagn? Nj Övrför data Ja Grundäggand datortknik OHLV6 9 Grundäggand datortknik OHLV6 0 Vikorig övrföring Vikorig övrföring Mottagarn Rdo? änd ti mottagarn Busy Wait J N Main jsr Rut jsr Rut 2 jsr Print jsr Rut i bra Main Mottagarn Rdo? J änd ti mottagarn Busy Wait N Mottagarn Rdo? J änd ti mottagarn Poing N Grundäggand datortknik OHLV6 Grundäggand datortknik OHLV6 2 3
Pågår utskrift? Är skrivarn Rdo? Nj Nj * HUVUDPROGRAM... Loop...... tst PFag Pågår utskriftsrutin? bq NoPrint.. hoppa om NEJ da Pstatus cmpa #Rady Rdo för nästa tckn?? bn NoPrint LV6 Fo4 Dagns må. Du ska : Kunna ansuta In- och Utportar ti Fisp Förstå probm i samband md in-och utmatning Bskriva Vikorig/Ovikorig övrföring Förstå nka IO-program som utnyttjar Busy Wait / Poing - principr Förstå avbrott kriva myckt nka avbrottsrutinr kriv nästa tckn jsr Printchar kriv ut tt tckn NoPrint... BRA Loop Pfag rmb Fagga:Pågår utskrift? Grundäggand datortknik OHLV6 3 Grundäggand datortknik OHLV6 4 Inför Avbrott Inför Avbrott Fispdator READY ubrutin som skrivr ut tt tckn RT krivar UT-PORT : TxtP A H Pkar/adrss ti nästa tckn Txt H j D u ACIIkodr K för txta sträng! EOT utmarking Avbrottssigna Po tyrnhtn Fispdator IRQ Avbrotts- Rutin som skrivr ut tt tckn READY krivar : TxtP A H Pkar/adrss ti nästa tckn Txt H j D u ACIIkodr K för txta sträng! EOT utmarking Grundäggand datortknik OHLV6 5 Grundäggand datortknik OHLV6 6 4
Avbrott forts. Hur jobbar procssorn? Avbrott - forts s Rstsigna REET FETCH EXECUTE HITILL: Programmrarn (DU) bstämmr när: JR Printchar kriv tt tckn IRQ Aktiv? Ja Avbrottssigna VID AVBROTT: krivarn bstämmr när: Printchar kriv tt tckn Nj Hämta Instruktion Utför Instruktion Utför VAD KRÄV? spara undan sin PC starta n rutin som skrivr ut tt tckn ti skrivarn för att sdan åtrstarta huvudprogrammt Grundäggand datortknik OHLV6 7 Grundäggand datortknik OHLV6 8 Avbrott forts. VAD KRÄV?. spara undan sin PC 2. starta n rutin som skrivr ut tt tckn ti skrivarn för att 3. sdan åtrstarta huvudprogrammt Avbrott forts. VAD KRÄV?. spara undan sin PC 2. starta n rutin som skrivr ut tt tckn ti skrivarn för att 3. sdan åtrstarta huvudprogrammt ) para undan sitt PC (jfr JR ubrut) 2) starta upp n rutin som skrivr ut tt tckn ti skrivarn (tartadrss??) PC P i subrutinn P för subrutinanropt PC P i avbrottsrutinn P för avbrottssignan OP JR $FD $FE $FF Vktorr IRQ REET Grundäggand datortknik OHLV6 9 Grundäggand datortknik OHLV6 20 5
: TxtP A H Pkar ti nästa tckn Txt H j D u ACIIkodr K för txta sträng! EOT utmarking Avbrott - forts IRQ dx TxtP Läs pkar ti nästa da,x+ kriv nästa tckn sta Printr stx TxtP para nya pkar rti s Avbrott forts. VAD KRÄV?. spara undan sin PC 2. starta n rutin som skrivr ut tt tckn ti skrivarn för att 3. sdan åtrstarta huvudprogrammt PC RT P i subrutinn P för subrutinanropt 3) sdan åtrstarta huvudprogrammt PC P i avbrottsrutinn P för avbrottssignan Grundäggand datortknik OHLV6 2 Grundäggand datortknik OHLV6 22 Avbrott - forts s Avbrott forts. Vissa probm. IRQ n utförs och tt tckn skickas ti skrivarn IRQ Avbrottssigna CLRA daa Bankado adda Löninsättning staa Bankado m s Procssorn utför annat viktigt arbt 250 ms m s CMPB BHI Variab Largr Grundäggand datortknik OHLV6 23 Grundäggand datortknik OHLV6 24 6
Avbrottssigna Avbrott forts. Vissa probm. ss 0 ss Max tackn CC A X Y PC P i avbrottsrutinn P för avbrott Vi summrar händsföroppt vid tt avbrott. ) mt kör 2) Hopp ti avbrottsrutin av status Hämta avbrottsvktor 3) tarta o kör avbrottsrutin 4) Åtrhopp ti huvudprogram 5) Rstor status 6) mt fortsättr Avbrott forts. Avbrott 6 5 2 3 Btjäna avbrottt 4 Grundäggand datortknik OHLV6 25 Grundäggand datortknik OHLV6 26 IRQ Aktiv? Nj Hämta Instruktion Utför Instruktion Ja Utför Avbrott forts. Fra probm. Avbrott 2 3 Avbrott forts.. Lösning: Ny fagga i CC-rgistrt 32 Avbrott 5 2 3 Btjäna avbrottt Procssor Datorsystm Avbrott (Rdo) Här är data Yttr nht 6 5 Btjäna avbrottt 4 6 4 Grundäggand datortknik OHLV6 27 Grundäggand datortknik OHLV6 28 7
Avbrott forts.. Avbrott forts.. Bid av stackn för, undr o ftr avbrott Nj I-fagga = 0? Ja 0 För avbrottt TO Undr avbrottt IRQ=Enab (CC) Eftr avbrottt Avbrott 2 3 FETCH EXECUTE IRQ Aktiv? Nj Hämta Instruktion Ja Utför TO max Bfintigt stackinnhå tatus och åtrhoppsadrss för avbrottsrutin Bfintigt stackinnhå TO Bfintigt stackinnhå 6 5 4 Utför Instruktion Procssorns tatus rgistr Mask IRQ=Enab Mask IRQ=Off Mask IRQ=Enab Grundäggand datortknik OHLV6 29 Grundäggand datortknik OHLV6 30 LV6 Fo4 Dagns må. Du ska : Kunna ansuta In- och Utportar ti Fisp Förstå probm i samband md in-och utmatning Bskriva Vikorig/Ovikorig övrföring Förstå nka IO-program som utnyttjar Busy Wait / Poing - principr Förstå avbrott kriva myckt nka avbrottsrutinr Huvud Prog Initira för avbrott Öka Var Avbrott Upg Öka Var2 Visa Var Visa Var2 Grundäggand datortknik OHLV6 3 Grundäggand datortknik OHLV6 32 8
Avbrott - ammanfattning Bgrpp: Avbrottsingång på procssorn IRQ (Intrrupt) I-fagga i CC-rgistrt (Maskra avbrott, brandvägg) Avbrottsvktor (tartadrss för avbrottsrutin) av tatus (Pacra aa rgs på stackn) ( subrutin avsutad md ) Åtrhopp från avbrottsrutin () Rstor tatus (Åtrhämta aa rgs från stack) Grundäggand datortknik OHLV6 33 Avbrott - ammanfattning. OM I-faggan=0: Procssorn kännr att IRQ är aktivrad och sutför utförandt av pågånd instruktion. 2. Procssorn sparar huvudprogrammts åtrhoppsadrss och övriga rgistrinnhå på stackn, sav status. Därftr äsr procssorn startadrssn för avbrottsrutinn från IRQ-vktorn (från adrss $FD). Dnna startadrss pacras i PC. I-faggan ETT-stäs 3. n startas (md I-faggan=). 4. n avsutas md instruktionn som får 6 procssorn att utföra rstor status, dvs rgistrinnhån åtrstäs från stackn (md gama I=0). 5. Åtrhopp ti huvudprogram. 6. Därmd åtrstartas huvudprogrammt där dt bv avbrutt Grundäggand datortknik OHLV6 34 2 5 3 4 Vckans må: LV6 Fo5 Ansuta In- och Utportar ti Fisp In-och utmatning Avbrott ssavkodning Ansuta minnn och I/O-modur Dagns må: Du ska kunna. kija på oika minnstypr Förkara principr för oika bussprotoko Förstå bgrppn Timing och VM (Vaid Mmory ss) Konstrura adrssavkodningsogik. ) Fuständig Avk 2) Ofuständig Avk Procssorns adrssrum Lit om n RAM Random Accss Mmory RWM Rad Writ Mmory RAM tatiskt RAM DRAM Dynamiskt ROM Rad Ony Mmory PROM Programmab ROM EPROM Erasab PROM EEPROM Ectricay EPROM FLAH Grundäggand datortknik OHLV6 35 Grundäggand datortknik OHLV6 36 9
Mikroktronikns utvcking Bit ordning bit ndianss Antat transistorr som ryms på n kisbricka... big-ndian ( LB 0 ) b 7 b 6 b 5 b 4 b 3 b 2 b b 0 8-bitars ord där b 7 är dn MET signifikanta bitn och b 0 dn MINT signifikanta bitn itt-ndian ( MB 0 ) b 0 b b 2 b 3 b 4 b 5 b 6 b 7 Grundäggand datortknik OHLV6 37 Grundäggand datortknik OHLV6 38 α α+ minn 22 HC2 (big ndian) HC2/Int 8086 byt ordning rgistr D A B 22 α α+ minn 22 8086 AH AL rgistr AX (itt ndian) 22 LV6 Fo5 Dagns må: Du ska kunna. kija på oika minnstypr Förkara principr för oika bussprotoko Förstå bgrppn Timing och VM (Vaid Mmory ss) Konstrura adrssavkodningsogik. ) Fuständig Avk 2) Ofuständig Avk Procssorns adrssrum Procssor - Bussar krivar Mus tc Grundäggand datortknik OHLV6 39 Grundäggand datortknik OHLV6 40 0
Kontrobuss ssbuss Kocka Procssor Innht Utnht Grundäggand datortknik OHLV6 4 Grundäggand datortknik OHLV6 42 Ick Mutipxad Buss Mutipxad Buss Procssor ssbuss Procssor A/D ss och databuss Kocka. buss buss Kocka A/D Buss Busscyk Busscyk Busscyk Busscyk Busscyk Busscyk Grundäggand datortknik OHLV6 43 Grundäggand datortknik OHLV6 44
Kocka ynkront Bussprotoko trob Här är adrssn Asynkront Bussprotoko ssbuss Procssor Procssor ssbuss ACK Här är data Kocka Kocka. buss buss En busscyk Grundäggand datortknik OHLV6 45. buss trob buss ACK Grundäggand datortknik OHLV6 46 Eck ss bussn buss Maskincyk Timing Procssorn äggr ut gitig adrss 0 250 500 VALID MEMORY ADRE; VMA VALID ADRE; VA t äggr ut data på bussn Grundäggand datortknik OHLV6 47 Här addas (atchas) data in ti procssorn t (ns) LV6 Fo5 Dagns må: Du ska kunna. kija på oika minnstypr Förkara principr för oika bussprotoko Förstå bgrppn Timing och VM (Vaid Mmory ss) Konstrura adrssavkodningsogik. ) Fuständig Avk 2) Ofuständig Avk Procssorns adrssrum Procssor - Bussar krivar Mus tc Grundäggand datortknik OHLV6 48 2
ssavkodningsogik för n utport (Chip ct ogik; C-ogik) Procssor (CPU) ssavkodning Innht Utnht TAA $C5A0 TAA UTPORTADRE C LD CP C (8) Utport $C5A0 Rgistr (8) Ti omgivningn (8) Ut0 Ut Ut2 Ut3 In0 In In2 In3 på adrss $C5A0 på adrss $C5A på adrss $C5A2 på adrss $C5A3 på adrss $C5A4 på adrss $C5A5 på adrss $C5A6 på adrss $C5A7 CIO A 2 A A 0 DATA I/O-modu Intrn adrssavkodning ssavkodning Om vi bhövr fra I/O-portar??? 8 I/O-portar 8 8 8 8 Out0 Out In2 In3 Grundäggand datortknik OHLV6 49 Grundäggand datortknik OHLV6 50 A 5 CIO ssavkodning CIO Att ansuta n 2-kbyt RWM- modu md startadrss $4000 A 4 A 3 A 2 A A 0 A 9 A 8 A 7 A 6 A 5 A 4 A 3 E CIO A 2 A A 0 CIO A 2 A A 0 C_Out0 C_In0 A 2 A A 0 CIO A 2 A A 0 C_Out C_In3 2kByt RWMmodu C ssbuss A 0 -A 0 D 7 -D 0 Arbtsgång: Toka bskrivningn av minnsmodun Rita tab Ang moduns första adrss Ang moduns sista adrss Märk ut konstanta rsp varirand adrssdningar Rita adrssavkodningsogikn Grundäggand datortknik OHLV6 5 Grundäggand datortknik OHLV6 52 3
Att ansuta n 2-kbyt RWM-modu Att ansuta n 8-kbyt ROM-modu A 5 ssbuss A 2 -A 0 A 4 A 3 A 2 A E CRWM C 8kByt ROMmodu ka pacras på d högsta adrssrna ($FFFF) D 7 -D 0 Grundäggand datortknik OHLV6 53 Grundäggand datortknik OHLV6 54 E/ECk MC2 Att ansuta n 8-kbyt ROM- modu ti tt bfintigt systm C-ogik för RWM Och ROM ssbuss A 5 -A 0 A 5 -A A 0 -A 0 CRWM CROM 2kByt RWMmodu C C 8kByt ROMmodu A 2 -A 0 Procssorns adrssrum Bskrivand figur övr hur minnsmodur och IO-portar är pacrad i minnt 0000 4000 4800 C5A0 E000 Tomt RWM Tomt Tomt IO-port D 7 -D 0 Grundäggand datortknik OHLV6 55 D 7 -D 0 ROM Grundäggand datortknik FFFF OHLV6 56 4
Uppgift Konstrura adrssavkodningn för föjand: 4 kbyt RWM från adrss 0 8 kbyt ROM på d högsta adrssrna En I/O-ara på 256 Byt md start på adrss $6000 Du har tigång ti 8 kbyt ROM-modu 4 kbyt RWM-modu Använd fuständig adrssavkodning LV6 Fo5 Dagns må: Du ska kunna. kija på oika minnstypr Förkara principr för oika bussprotoko Bskriva MC2 s bussar (ansutningar) Förstå bgrppn Timing och VM (Vaid Mmory ss) Konstrura adrssavkodningsogik. ) Fuständig Avk 2) Ofuständig Avk Procssorns adrssrum Procssor - Bussar krivar Mus tc Grundäggand datortknik OHLV6 57 Grundäggand datortknik OHLV6 58 Uppgift Uppgift om förra... mn använd ofuständig adrssavkodning! Konstrura adrssavkodningn för föjand: 4 kbyt RWM från adrss 0 8 kbyt ROM på d högsta adrssrna En I/O-ara på 256 Byt md start på adrss $6000 Du har tigång ti 8 kbyt ROM-modu 4 kbyt RWM-modu Konstrura adrssavkodningn för föjand: En I/O-ara på 52 Byt md start på adrss $0000 RWM från I/O-arans sut ti adrss $FFF ROM från adrss $2000-$FFFF Du har tigång ti 64 kbyt ROM-modu 8 kbyt RWM-modu Grundäggand datortknik OHLV6 59 Grundäggand datortknik OHLV6 60 5