De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Week 6: Invoer / uitvoer “devices” adresdecodering

Verwante presentaties


Presentatie over: "Week 6: Invoer / uitvoer “devices” adresdecodering"— Transcript van de presentatie:

1 Week 6: Invoer / uitvoer “devices” adresdecodering
2IC20: Computersystemen Week 6: Invoer / uitvoer “devices” adresdecodering

2 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

3 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: parallelle communicatie Eén bit tegelijk: serieële communicatie

4 Afwegingen parallel / serieëel
Type communicatie Parallel N keer nodig (minimaal) Bekabeling en zend/ontvangst electronica 1 maal nodig (minimaal) Per woord, aparte draden Synchronisatie Per bit, kan via data draad < 10 miljoen woorden / sec. Hoogste snelheid (in standaard gebruik) en afstand hierbij >> 100 miljoen bits / sec. (glasvezel) < 1 meter > 100 kilometer Kan, extra draden > 1 zender en ontvanger ? Vrij standaard (LAN) Niet gelijktijdig arriveren van bits Grootste probleem Naast bit ook woord synchroniatie nodig

5 “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:  Bit 6 Bit 7 1,5  (Stop) Start Bit 0 Bit 1 Bit 2 Stop Misbruikt tot > 100 kilobit / sec.

6 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, ……..

7 Parallelle invoer en uitvoer
De basis: invoer en uitvoer poorten ! Bus IN Tri-state buffers “I” Bus “O” UIT “I” IN D Q UIT Load Latch “O”

8 Invoer met software “handshake”
1 2 3 4 Bus HSIN “acknowledge” D Q HSUIT Load Latch “request” DIN “data” Ik wil data ! Hier is data ! Heb ‘t overge- nomen OK, ik stop 1 bit !

9 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 !

10 “Flowchart” DAV/ACK zender DAV_ACK_Zender: ; data in A
Zet data op poort MOV Port,A ; output Maak DAV aktief SETB DAV ; actief = 1 ACK aktief ? NEE WachtACK: ; wacht-lus JNB ACK,WachtACK Maak DAV inaktief JA CLR DAV ; INactief = 0 ACK aktief ? JA WachtNotACK: ; wacht-lus JB ACK,WachtNotACK Klaar ! NEE “Flowchart” RET ; subroutine !

11 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

12 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 2 kilobyte 4 bytes “PIO” = Parallel Input / Output

13 Volledige adresdecodering
10000xxxxxxxxxxxB xxB 00000xxxxxxxxxxxB Ieder geheugen of poort precies EEN maal in adresruimte ! Op exact de gewenste adressen... 0000h.. 07FFh 8000h.. 87FFh Duur in hardware ! FFFCh.. FFFFh

14 Gedeeltelijke adresdecodering
10xxxxxxxxxxxxxxB 0xxxxxxxxxxxxxxxB 11xxxxxxxxxxxxxxB Ieder geheugen of poort meerdere malen in adresruimte ! 16 x 8 x 4096 x Met kopieën van dezelfde waarden... Goedkope hardware ! 0000h.. 7FFFh = 32 kilobyte 8000h.. BFFFh = 16 kilobyte C000h.. FFFFh = 16 kilobyte

15 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 1 2 3 Sel 0 Sel 1 CS EPROM CS RAM CS PIO ??? ½ 74139


Download ppt "Week 6: Invoer / uitvoer “devices” adresdecodering"

Verwante presentaties


Ads door Google