1/ 2IC20: eindhoven university of technology Computersystemen Week 6: Invoer / uitvoer “devices” adresdecodering / faculty of Computer Science 1/ eindhoven university of technology Invoer / uitvoer “controllers” Bevinden zich tussen processor en buitenwereld Vanuit processor gekoppeld aan bus (meestal) Bestuurbaar door lezen/schrijven woorden/cellen Adresseerbaar in geheugen: “memory mapped” In aparte I/O adresruimte met speciale instructies Volledig bestuurd met speciale instructies (zelden) Moeten “kortstondigheid” probleem oplossen / Lezen van processor geeft waarde op dat moment Schrijven geeft zeer kort stabiele waarde op de bus faculty of Computer Science 2 1/ eindhoven university of technology Datacommunicatie Communicatie = overbrengen van gegevens Tussen computers onderling Tussen computer en “randapparaat” (bijv. printer) Hierbij hoort ook synchronisatie Indicatie “gegevens worden/zijn overgedragen” Op verschillende niveaus: van bit tot megabyte Twee basismethoden / Meer bits tegelijk: Eén bit tegelijk: parallelle communicatie serieële communicatie faculty of Computer Science 3 1/ eindhoven university of technology Afwegingen parallel / serieëel Parallel Type communicatie N keer nodig (minimaal) Bekabeling en zend/ontvangst electronica Per woord, aparte draden Synchronisatie < 10 miljoen woorden / sec. < 1 meter Kan, extra draden Niet gelijktijdig arriveren van bits / Hoogste snelheid (in standaard gebruik) en afstand hierbij > 1 zender en ontvanger ? Grootste probleem Serieëel 1 maal nodig (minimaal) Per bit, kan via data draad >> 100 miljoen bits / sec. (glasvezel) > 100 kilometer Vrij standaard (LAN) Naast bit ook woord synchroniatie nodig faculty of Computer Science 4 1/ eindhoven university of technology “Asynchrone” serieële communicatie Vaste tijd voor overbrengen van één bit afspreken Datawoord omgeven met start en stop bits Start bit kan op willekeurig moment beginnen Stop bit wordt “uitgerekt” tot volgend start bit 1 bit-tijd: (Stop) / Start 1,5 Bit 0 Bit 1 faculty of Computer Science Bit 2 Bit 6 Bit 7 Stop Misbruikt tot > 100 kilobit / sec. 5 1/ eindhoven university of technology Andere serieële communicatie vormen Synchrone protocollen zijn efficienter Gebruiken geen start en stop bits Synchronisatie op iedere 0 1 en 1 0 overgang “Bit stuffing” om extra overgangen te verkrijgen Verzenden van data in blokken: “Packets” begin en einde aangegeven met overtreding bit stuffing “Local Area Networks” gaan verder Meer dan één “station” (zender én ontvanger in één) Stapels protocollen: Ethernet, CAN, HomeBus, …….. / faculty of Computer Science 6 1/ eindhoven university of technology Parallelle invoer en uitvoer De basis: invoer en uitvoer poorten ! Bus Tri-state buffers Bus “I” “O” IN D Q Latch Load / “O” UIT “I” UIT IN faculty of Computer Science 7 1/ eindhoven university of technology Invoer met software “handshake” 1 Bus 2 3 4 “data” DIN “acknowledge” 1 bit ! HSIN D Q Latch Load / “request” HSUIT faculty of Computer Science Ik wil data ! Hier is data ! Heb ‘t overgenomen OK, ik stop 8 1/ eindhoven university of technology Handshake opmerkingen Twee fundamenteel verschillende methoden “Request” / “acknowledge” (“REQ/ACK”): ontvanger vraagt om gegevens “Data available” / “acknowledge” (“DAV/ACK”): zender biedt gegevens aan ter overname Beide bruikbaar voor invoer én uitvoer Beide twee handshake bits, één in en één uit Zelfde hardware verschillend gebruikt ! / faculty of Computer Science 9 1/ eindhoven university of technology DAV_ACK_Zender: DAV/ACK zender Zet data op poort MOV Maak DAV aktief SETB DAV ACK aktief ? NEE JA Maak DAV inaktief / ACK aktief ? NEE Klaar ! JA faculty of Computer Science ; data in A Port,A ; output ; actief = 1 WachtACK: ; wacht-lus JNB ACK,WachtACK CLR DAV ; INactief = 0 WachtNotACK: ; wacht-lus JB ACK,WachtNotACK RET ; subroutine ! “Flowchart” 10 1/ eindhoven university of technology Nog meer handshake opmerkingen Niet vergeten: initialisatie na opstarten systeem In het voorbeeld: DAV inactief maken na reset Volledige 4-fasen handshake: 2 maal wachten ! Tenzij je wacht op inactief-actief overgang Veel processoren hebben geen bit-operaties Bit op 1 zetten met OR, op 0 zetten met AND Bij test masker gebruiken (AND) voor bit-selectie I / O controllers voeren handshake zelf uit / Vertalen handshake in interrupts en/of DMA faculty of Computer Science 11 1/ eindhoven university of technology Adresdecodering Meerdere geheugen en I/O chips in adresruimte Dan moeten “Chip Select” (CS) stuurlijnen van adres afgeleid worden: “adresdecodering” Aantal woorden per chip is vast, adressen van die woorden worden hier gekozen ! 2 kilobyte / faculty of Computer Science 2 kilobyte 4 bytes “PIO” = Parallel Input / Output 12 1/ eindhoven university of technology Volledige adresdecodering Ieder geheugen of poort precies EEN maal in adresruimte ! Op exact de gewenste adressen... Duur in hardware ! / faculty of Computer Science 0000h.. 07FFh 8000h.. 87FFh FFFCh.. FFFFh 13 1/ eindhoven university of technology Gedeeltelijke adresdecodering Ieder geheugen of poort meerdere malen in adresruimte ! Met kopieën van dezelfde waarden... Goedkope hardware ! / faculty of Computer Science 16 x 0000h.. 7FFFh = 32 kilobyte 8x 8000h.. BFFFh = 16 kilobyte 4096 x C000h.. FFFFh = 16 kilobyte 14 1/ eindhoven university of technology Opmerkingen over adresdecodering Bij uitbreidbare, modulaire systemen: gebruik volledige adresdecodering ! Goedkope gedeeltelijke decodering laat geen “gaten” in adresruimte over: geen plaats voor uitbreiding… Adressering niet altijd vrij te kiezen: startadres programma in (EP)ROM ! Decodeerlogica in PLA of met standaard decoder / A14 A15 faculty of Computer Science ½ 74139 Sel 0 Sel 1 0 1 2 3 CS EPROM ??? CS RAM CS PIO 15