2004_week6_1

advertisement
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
Download