1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 6:...

15
1/ eindhoven university of technology / faculty of Computer Science 2IC20: Computersystemen Week 6: Invoer / uitvoer “devices” adresdecodering

Transcript of 1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 6:...

Page 1: 1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 6: Invoer / uitvoer “devices” adresdecodering.

1/eindhoven university of technology

/ faculty of Computer Science

2IC20: Computersystemen

Week 6:Invoer / uitvoer “devices”

adresdecodering

Page 2: 1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 6: Invoer / uitvoer “devices” adresdecodering.

2

1/eindhoven university of technology

/ faculty of Computer Science

Invoer / uitvoer “controllers”Bevinden zich tussen processor en buitenwereld

Vanuit processor gekoppeld aan bus (meestal)Bestuurbaar door lezen/schrijven woorden/cellenAdresseerbaar in geheugen: “memory mapped” In aparte I/O adresruimte met speciale instructiesVolledig bestuurd met speciale instructies (zelden)

Moeten “kortstondigheid” probleem oplossenLezen van processor geeft waarde op dat momentSchrijven geeft zeer kort stabiele waarde op de bus

Page 3: 1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 6: Invoer / uitvoer “devices” adresdecodering.

3

1/eindhoven university of technology

/ faculty of Computer Science

DatacommunicatieCommunicatie = overbrengen van gegevens

Tussen computers onderlingTussen computer en “randapparaat” (bijv. printer)

Hierbij hoort ook synchronisatie Indicatie “gegevens worden/zijn overgedragen”Op verschillende niveaus: van bit tot megabyte

Twee basismethodenMeer bits tegelijk: parallelle communicatieEén bit tegelijk: serieële communicatie

Page 4: 1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 6: Invoer / uitvoer “devices” adresdecodering.

4

1/eindhoven university of technology

/ faculty of Computer Science

Afwegingen parallel / serieëel

1 maal nodig(minimaal)

Per bit, kan viadata draad

>> 100 miljoenbits / sec. (glasvezel)

Naast bit ook woordsynchroniatie nodig

SerieëelType communicatieParallel

N keer nodig(minimaal)

Per woord,aparte draden

< 10 miljoenwoorden / sec.

Niet gelijktijdigarriveren van bits

< 1 meter > 100 kilometer

Bekabeling enzend/ontvangst electronica

Synchronisatie

Hoogste snelheid(in standaard gebruik)

en afstand hierbij

Grootste probleem> 1 zender en ontvanger ?Kan, extra draden Vrij standaard (LAN)

Page 5: 1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 6: Invoer / uitvoer “devices” adresdecodering.

5

1/eindhoven university of technology

/ faculty of Computer Science

“Asynchrone” serieële communicatieVaste tijd voor overbrengen van één bit afsprekenDatawoord omgeven met start en stop bitsStart bit kan op willekeurig moment beginnen

Stop bit wordt “uitgerekt” tot volgend start bit

Bit 0 Bit 1 Bit 2 Stop(Stop)

1 bit-tijd:

1,5

StartStart Bit 6 Bit 7

Misbruikt tot > 100 kilobit / sec.Misbruikt tot > 100 kilobit / sec.

Page 6: 1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 6: Invoer / uitvoer “devices” adresdecodering.

6

1/eindhoven university of technology

/ faculty of Computer Science

Andere serieële communicatie vormenSynchrone protocollen zijn efficienter

Gebruiken geen start en stop bitsSynchronisatie op iedere 0 1 en 1 0 overgang “Bit stuffing” om extra overgangen te verkrijgenVerzenden van data in blokken: “Packets”

begin en einde aangegeven met overtreding bit stuffing

“Local Area Networks” gaan verderMeer dan één “station” (zender én ontvanger in één)Stapels protocollen: Ethernet, CAN, HomeBus, ……..

Page 7: 1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 6: Invoer / uitvoer “devices” adresdecodering.

7

1/eindhoven university of technology

/ faculty of Computer Science

Parallelle invoer en uitvoerDe basis: invoer en uitvoer poorten !

Bus

IN

Tri-state buffers

“I”

D Q

UIT

LoadLatc

h

“O”

“O”

UIT

“I”

IN

Bus

Page 8: 1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 6: Invoer / uitvoer “devices” adresdecodering.

8

1/eindhoven university of technology

/ faculty of Computer Science

Invoer met software “handshake”Bus

HSIN

“acknowledge”

D Q

HSUIT

LoadLatc

h

“request”

DIN

“data”

1 bit !

1 bit !

Ik wildata !

Ik wildata !

Hier isdata !

Hier isdata !

Heb ‘toverge-nomen

Heb ‘toverge-nomen

OK, ikstop

OK, ikstop

11 22 33 44

Page 9: 1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 6: Invoer / uitvoer “devices” adresdecodering.

9

1/eindhoven university of technology

/ faculty of Computer Science

Handshake opmerkingenTwee 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 uitvoerBeide twee handshake bits, één in en één uitZelfde hardware verschillend gebruikt !

Page 10: 1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 6: Invoer / uitvoer “devices” adresdecodering.

10

1/eindhoven university of technology

/ faculty of Computer Science“Flowchart”

DAV/ACK zender

Maak DAV inaktief

JA

Zet data op poort

Maak DAV aktief

ACK aktief? NE

E

Klaar !

NEE

ACK aktief? JA

DAV_ACK_Zender: ; data in A

MOV Port,A ; output

SETB DAV ; actief = 1

WachtACK: ; wacht-lus JNB ACK,WachtACK

CLR DAV ; INactief = 0

WachtNotACK: ; wacht-lus JB ACK,WachtNotACK

RET ; subroutine !

Page 11: 1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 6: Invoer / uitvoer “devices” adresdecodering.

11

1/eindhoven university of technology

/ faculty of Computer Science

Nog meer handshake opmerkingenNiet 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-operatiesBit op 1 zetten met OR, op 0 zetten met ANDBij test masker gebruiken (AND) voor bit-selectie

I / O controllers voeren handshake zelf uitVertalen handshake in interrupts en/of DMA

Page 12: 1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 6: Invoer / uitvoer “devices” adresdecodering.

12

1/eindhoven university of technology

/ faculty of Computer Science

AdresdecoderingMeerdere geheugen en I/O chips in adresruimte

Dan moeten “Chip Select” (CS) stuurlijnenvan adres afgeleid worden: “adresdecodering”

Aantal woorden per chip is vast,adressen van die woorden worden hier gekozen !

2 kilobyte

2 kilobyte

2 kilobyte

2 kilobyte

4 bytes

4 bytes

“PIO” = Parallel Input / Output

“PIO” = Parallel Input / Output

Page 13: 1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 6: Invoer / uitvoer “devices” adresdecodering.

13

1/eindhoven university of technology

/ faculty of Computer Science

Volledige adresdecodering

00000xxxxxxxxxxxB

10000xxxxxxxxxxxB

11111111111111xxB

0000h..07FFh

0000h..07FFh

8000h..87FFh

8000h..87FFh

FFFCh..FFFFh

FFFCh..FFFFh

Ieder geheugen ofpoort precies EENmaal in adresruimte !Op exact de gewenste adressen...Duur in hardware !Duur in hardware !

Page 14: 1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 6: Invoer / uitvoer “devices” adresdecodering.

14

1/eindhoven university of technology

/ faculty of Computer Science

Gedeeltelijke adresdecodering

0xxxxxxxxxxxxxxxB

10xxxxxxxxxxxxxxB

11xxxxxxxxxxxxxxB

0000h..7FFFh =32 kilobyte

0000h..7FFFh =32 kilobyte

8000h..BFFFh =16 kilobyte

8000h..BFFFh =16 kilobyte

C000h..FFFFh =16 kilobyte

C000h..FFFFh =16 kilobyte

Ieder geheugen ofpoort meerderemalen in adresruimte !Met kopieën vandezelfde waarden...

Goedkope hardware !Goedkope hardware !

16 x 8 x 4096 x

Page 15: 1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 6: Invoer / uitvoer “devices” adresdecodering.

15

1/eindhoven university of technology

/ faculty of Computer Science

Opmerkingen over adresdecoderingBij 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

0123

Sel 0Sel 1

A14A15

CS EPROMCS RAMCS PIO

???

½ 74139

½ 74139