1 / 119

IS1200 Datorteknik och komponenter

IS1200 Datorteknik och komponenter. Föreläsning 6 Bushantering In- och utmatning, I/O Programstyrd pollning DMA – Direct Memory Access. IS1200 Datorteknik http://www.ict.kth.se/courses/IS1200. CE F1. CE F2. CE Ö1. CE F3. CE Ö2. Assemblerprogram. CE F4. CE Ö3. lab nios2time. C.

clyde
Download Presentation

IS1200 Datorteknik och komponenter

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. IS1200 Datorteknik och komponenter Föreläsning 6 Bushantering In- och utmatning, I/O Programstyrd pollning DMA – Direct Memory Access IS1200 Datorteknik o k, föreläsning CE - F6

  2. IS1200 Datorteknikhttp://www.ict.kth.se/courses/IS1200 CE F1 CE F2 CE Ö1 CE F3 CE Ö2 Assemblerprogram CE F4 CE Ö3 lab nios2time C CE F5 CE Ö4 hemlab C In- och utmatning CE F6 CE Ö5 CE Ö6 lab nios2io Avbrott och "trap" CE F7 CE Ö7 lab nios2int Cacheminnen CE F8 CE Ö8 hemlab cache Trådar, synkronisering CE F9 CE Ö9 hemlab trådar CE F10 CE Ö10 tentamen IS1200 Datorteknik o k, föreläsning CE - F6

  3. Föreläsning 6Innehåll, rubriker • Bus Data Transfer, read/write • I/O-enheter, adressering • Parallellport, funktion, pollning • Serieport, funktion, pollning • Timer, funktion, pollning • Eko-program, Kommunikations-program • Paritetskontroll • DMA – Direct Memory Access IS1200 Datorteknik o k, föreläsning CE - F6

  4. Litteraturhänvisningar • Kursbokens avsnitt • 1.4 Maskinvara • 2.6 Bussar och enkel I/O-hantering • 5.2 Koppling till omvärlden, sid 151-156 • 9.4 Kommunikation mellan processor ... IS1200 Datorteknik o k, föreläsning CE - F6

  5. FETCH EXECUTE Programexekveringi två steg (decode) (update PC) IS1200 Datorteknik o k, föreläsning CE - F6

  6. Viktiga delar i en dator CPU BUS program I/O MEM data IS1200 Datorteknik o k, föreläsning CE - F6

  7. Bus Data Transfer viktiga aspekter CPU MASTER BUS MEMORY SLAVE IS1200 Datorteknik o k, föreläsning CE - F6

  8. Bus Data TransferMemory Read • Master - till exempel CPU • Slave - till exempel Memory • Master levererar Adress (t.ex. PC-value) • Master ger läsbegäran (Read Request) • Slave levererar Data (Instruction) • Slave levererar kvittens (Acknowledge) (exempel Fetch Instruction och LOAD) IS1200 Datorteknik o k, föreläsning CE - F6

  9. Bus Data TransferMemory Read 1 Address Read 2 3 Data (Rd) Ack 4 Vad händer om (Rd) Ack uteblir ? IS1200 Datorteknik o k, föreläsning CE - F6

  10. Bus Data TransferMemory Write • Master - till exempel CPU • Slave - till exempel Memory • Master levererar Adress • Master levererar Data • Master ger skrivbegäran (Write Request) • Slave levererar kvittens (Acknowledge) (exempel STORE) IS1200 Datorteknik o k, föreläsning CE - F6

  11. Bus Data TransferMemory Write 1 Address Write 4 2 6 1 Data (Wr) Ack 3 5 Vad händer om (Wr) Ack uteblir ? IS1200 Datorteknik o k, föreläsning CE - F6

  12. Bus Data TransferAsynchronous Memory Read Address Read Data (Rd) Ack Asynkront ”any time” ”ingen klocka” IS1200 Datorteknik o k, föreläsning CE - F6

  13. Bus Data TransferSynchronous Memory Read address memory data transfer read transfer Address Read Data (Rd) Ack clock Synkront ”exactly on time” ”klocka” IS1200 Datorteknik o k, föreläsning CE - F6

  14. Asynkron / synkron buss • Asynkron • klarar enheter med olika hastigheter • bra för långsamma och olika enheter (I/O) • Synkron • kan ge högre hastighet • kan överföra adress och data separat, och utnyttja tiden mellan dem till annat (split-transaction bus) • bra för snabba, likadana enheter (minne) IS1200 Datorteknik o k, föreläsning CE - F6

  15. Flera SLAVE fungerar brapå olika adresser ! MASTER BUS ? ? SLAVE SLAVE Adress-avkodare IS1200 Datorteknik o k, föreläsning CE - F6

  16. Flera minnen på olika adresser ! CPU BUS ? ? MEM MEM Adress ditten Adress datten Adress-avkodare IS1200 Datorteknik o k, föreläsning CE - F6

  17. Flera Slavepå olika adresser ! CPU BUS ? ? I/O MEM Adress ditten Adress datten Adress-avkodare IS1200 Datorteknik o k, föreläsning CE - F6

  18. Arbiter Flera Master fungerar, en Arbiter behövs för att välja mellan dem Master Master BUS ? ? I/O MEM Adress ditten Adress datten Adress-avkodare IS1200 Datorteknik o k, föreläsning CE - F6

  19. DUAL-CORE MULTI-CORE / MANY-CORE CPU CPU ... BUS ? ? I/O MEM Adress ditten Adress datten Adress-avkodare 23 August 2014 IS1200 Datorteknik, föreläsning 6 IS1200 Datorteknik o k, föreläsning CE - F6 19

  20. Bussledningar • Adressledningar 8-64 stycken, för att kunna peka ut varje byte • Dataledningar minst 8 bitar, upp till 128 bitar eller mer • Kontrolledningar Read + Write, eller RD/WR och DS Ack, kan vara gemensam Bus Request, Bus Grant – vid flera Masters IRQi - Interrupt ReQuest, en eller många • Övrigt Gnd, Vcc, Clock, Reset, ev. flera IS1200 Datorteknik o k, föreläsning CE - F6

  21. Bussledningar (forts.) • Långsam Slave kan bromsa läsning/skrivning • fördröj Acknowledge, eller • inför speciell Hold-signal • Tidövervakning, Time-Out • om Acknowledge aldrig kommer • Bus Error – ingen Acknowledge kom IS1200 Datorteknik o k, föreläsning CE - F6

  22. Bussledningar (forts.) • Om det finns fler än en Master krävsBus Arbiter (bus-fördelare) • Varje Slave måste ha adressavkodareså att högst en enhet svarar på request • Referens av oanvänd adress medför... • ... Time-Out eftersom ingen enhet ger Acknowledge IS1200 Datorteknik o k, föreläsning CE - F6

  23. Time-Out Time-Out Bus Data TransferBus Error MASTER BusErrror BUS SLAVE IS1200 Datorteknik o k, föreläsning CE - F6

  24. I/O Mapped Memory och I/O kanha samma adresser Olika kontroll-signaler för minne och I/O Speciella instruktioner används för I/O IN R1,117 OUT R2,118 Två typer av adressering • Memory Mapped • Memory och I/O harolika adresser • Samma kontroll-signaler för minne och I/O • Vanliga Load och Store används för I/O IS1200 Datorteknik o k, föreläsning CE - F6

  25. Parallell-port • Parallellport brukar ha en multipel av 8 signaler/anslutningar • Signalriktning kan vara programmerbar separat för varje signal/pinne • Inport består normalt av grindar • Utport består normalt av register • Handskakningssignaler kan finnas IS1200 Datorteknik o k, föreläsning CE - F6

  26. IN-PORT IN-port utan handskakning IN-DATA Bus drivkrets grindar Dn INn EN/RD . . . . . . . . . IN1 D1 Data IN0 D0 CPU-BUSS Control Adress EN IS1200 Datorteknik o k, föreläsning CE - F6

  27. IBF WR set Q clear RD Q’ IN-PORT IN-port med handskakning IN-DATA IBF WR grindar Bus drivkrets EN/RD Dn INn . . . . . . . . . vippa IBF Data IN1 D1 CPU-BUSS Control IN0 D0 Adress EN IS1200 Datorteknik o k, föreläsning CE - F6

  28. D D D Q Q Q UT-PORT cl cl cl Q’ Q’ Q’ UT-portutan handskakning UT-DATA Dn UTn register (vippor) . . . . . . . . . WR D1 UT1 Data CPU-BUSS Control D0 UT0 Adress WR IS1200 Datorteknik o k, föreläsning CE - F6

  29. OBE RD set Q clear WR Q’ D D D Q Q Q UT-PORT cl cl cl Q’ Q’ Q’ UT-port med handskakning UT-DATA OBE RD Dn UTn register (vippor) . . . . . . . . . WR vippa D1 UT1 OBE Data CPU-BUSS Control D0 UT0 Adress WR IS1200 Datorteknik o k, föreläsning CE - F6

  30. DE2-board: komponenter serieport USB Blaster Port ”CPU” parallellportar MEM 23 August 2014 IS1200 Datorteknik, föreläsning 4 IS1200 Datorteknik o k, föreläsning CE - F6 30

  31. de2_pio_redled18 Memory Mapped Addresses UtPort: 18 röda lysdioder LEDR17 LEDR4 LEDR5 LEDR6 LEDR7 LEDR8 LEDR3 LEDR2 LEDR1 LEDR0 Delar av Lab-kortet 0x810 0x814 0x818 0x81C 31 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 IS1200 Datorteknik o k, föreläsning CE - F6

  32. de2_pio_keys4 Memory Mapped Addresses InPort: 4 återfjädrande tryckomkopplare KEY3 KEY2 KEY1 KEY0 Delar av Lab-kortet 0x840 0x844 0x848 0x84C 31 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 IS1200 Datorteknik o k, föreläsning CE - F6

  33. de2_pio_toggles18 Memory Mapped Addresses InPort: 18 skjutomkopplare SW14 SW15 SW16 SW17 SW3 SW2 SW1 SW0 Delar av Lab-kortet 0x850 0x854 0x858 0x85C 31 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 IS1200 Datorteknik o k, föreläsning CE - F6

  34. de2_pio_greenled9 Memory Mapped Addresses UtPort: 9 gröna lysdioder LEDG4 LEDG5 LEDG6 LEDG7 LEDG8 LEDG3 LEDG2 LEDG1 LEDG0 Delar av Lab-kortet 0xA10 0xA14 0xA18 0xA1C 31 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 IS1200 Datorteknik o k, föreläsning CE - F6

  35. IS1200 Datorteknik o k, föreläsning CE - F6

  36. Parallell-portHandskakningssignaler • IBF - Input Buffer Full • OBE - Outport Buffer Empty • IBF och OBE är tillgängliga för program • IBF och OBE är tillgängliga för hårdvara IS1200 Datorteknik o k, föreläsning CE - F6

  37. Parallell-port (forts.)Handskakningssignaler • IBF - Input Buffer Full • OBE - Outport Buffer Empty • Aktiv signal IBF (full inport) • begäran om åtgärd, från omvärlden till CPU/program • betyder: “hallå där, nu finns nya indata” • Aktiv signal OBE (tom utport) • begäran om åtgärd, från omvärlden till CPU/program • betyder: “hallå där, leverera nya utdata” • (Klarsignal = Readysignal) IS1200 Datorteknik o k, föreläsning CE - F6

  38. Parallell-port (forts.)Handskakningssignaler • IBF - Input Buffer Full • IBF ettställs normalt då omgivningen levererar nya data till inporten • IBF nollställs/kvitteras av program, t.ex. vid läsning av inport (implicit bieffekt)eller med egen instruktion (explicit) IS1200 Datorteknik o k, föreläsning CE - F6

  39. Parallell-port (forts.)Handskakningssignaler • OBE, Output Buffer Empty • OBE ettställs normalt då omgivningen har tagit hand om utdata • OBE nollställs/kvitteras av program, t.ex. vid skrivning av utport (implicit bieffekt)eller med egen instruktion (explicit) IS1200 Datorteknik o k, föreläsning CE - F6

  40. Minnesliknande beteendevid läsning och skrivning • Ett värde som skrivs till en viss adress kan sedan läsas från samma adress • Skrivning till en adress påverkar ej innehåll på andra adresser • Läsning från en adress påverkar ej innehåll på någon adress • Annat beteende vid minnesreferenser kallas för icke minnesliknade och bör undvikas IS1200 Datorteknik o k, föreläsning CE - F6

  41. OBE=1? IBF=1? SKRIV UTDATA LÄS INDATA NEJ NEJ Nollställ OBE Nollställ IBF LÄS OBE LÄS IBF JA JA AVHOPP UTHOPP PÅHOPP INHOPP Handskakning med IBF/OBEFlödes-schema, invänta ready(blockerande I/O) Wait for READY Action & Acknowledge ! IS1200 Datorteknik o k, föreläsning CE - F6

  42. OBE=1? IBF=1? SKRIV DATAUT PAR:= DATAIN NEJ NEJ Nollställ OBE och PAR Nollställ IBF LÄS OBE PAR:= -1 PAR:= -1 LÄS IBF JA JA AVHOPP AVHOPP PÅHOPP PÅHOPP Handskakning med IBF/OBEFlödes-schema, direkt retur(icke blockerande I/O) IS1200 Datorteknik o k, föreläsning CE - F6

  43. getdata från Inportrutin med pollning av statusbit(blockerande I/O) # int get_data(void) define datain 0x... define status 0x... define ibfmask 0x... get_data: load reg1 <-- status andi reg1 <-- ibfmask beq get_data load reg <-- datain return IS1200 Datorteknik o k, föreläsning CE - F6

  44. putdata till Utportrutin med pollning av statusbit(blockerande I/O) # put_data(data in inreg) define dataut 0x... define status 0x... define obemask 0x... put_data: load reg1 <-- status andi reg1 <-- obemask beq put_data store dataut <-- data return IS1200 Datorteknik o k, föreläsning CE - F6

  45. Serie-port • Används för seriell kommunikation • Vanligt är asynkron kommunikation,ett tecken kan komma när som helst • Synkron kommunikation finns även,det kommer alltid en ström av bitar IS1200 Datorteknik o k, föreläsning CE - F6

  46. Serieport Sändare Mottagare error(s) Parallella data ut skiftregister Seriell kabel Internet skiftregister Parallella data in IS1200 Datorteknik o k, föreläsning CE - F6

  47. Serie-portAsynkron kommunikation • Varje tecken (bokstav) sänds för sig • Ett tecken kodas ofta med 7 bitars ASCII • Dessutom tillkommer 1 startbit 1 paritetsbit (opt) udda eller jämn paritet 1, 1,5 eller 2 stoppbitar IS1200 Datorteknik o k, föreläsning CE - F6

  48. Serie-portAsynkron kommunikation Avkänningstidpunkter i mottagaren x 0 x x x x x x P 1 1 1 1 7-bitars ASCII 1 startbit (0) 1 Paritetsbit (P) Stoppbit(ar) (1) Synkroniseringsflank IS1200 Datorteknik o k, föreläsning CE - F6

  49. Synkronisering • Bit-synkroniseringmottagare måste polla mitt i prick • Byte-synkroniseringNär börjar nytt tecken (SYN) • Block-synkroniseringNär börjar ett nytt block/paket (SOH ...) IS1200 Datorteknik o k, föreläsning CE - F6

  50. Serie-portAsynkron kommunikation • Bithastighet (kallas felaktigt för baudrate) • Teckenlängd (5, 6, 7, 8, …) • Paritet On/Off, Even/Odd • Antal Stoppbitar (1, 1½, 2) (antal perioder mellan sända tecken) (baudrate = signaleringshastighet) IS1200 Datorteknik o k, föreläsning CE - F6

More Related