Klik & Lær. Modul 5a4. WWW.MKDATA.DK

Om I/O-enheder, indstikskort mv. (fortsat)


Dette modul er opdelt i et antal mindre sider.

Indholdet er:

Forrige side


DMA

IRQ'erne er faktisk kun den ene side af problemet med ISA-kortene. Den anden hedder DMA. Det står for Direct Memory Access, og er et system, der tillader en adapter at oveføre sine data til RAM, uden brug af CPU'ens datakraft.

Normalt er det jo CPU'en, der styrer hver eneste handling på bussen. Med DMA har man lagt denne "intelligens" ud i en DMA-controller på bundkortet. Denne specielle controllerchip (Intel 8237) har lov til at flytte data til og fra RAM, via I/O-bussen, uden at CPU'en belemres med dette arbejde.

Man implementerer et antal DMA-kanaler (en controller kan styre fire kanaler) med hvert sit nummer, som kan udnyttes af ISA-kortene. ISA-enhederne kan hver især beslaglægge én af disse kanaler, hvis de er bygget til det. Diskettedrev benytter DMA.

DMA-systemet kan medføre konflikter i mellem to enheder på bussen, der har booket den samme DMA-kanal. Derfor skal man fx ofte på ISA-lydkort indstille både IRQ- og DMA-nummer.


Bus mastering

På PCI-bussen findes der ikke direkte DMA-kanaler. I stedet benytter man bus mastering. Det er et ganske tilsvarende system, hvor specielle controllerfunktioner tillader adaptere at tage kontrol over bussen. De kan da aflevere deres data direkte til RAM, på en måde så CPU'en belastes minimalt. Den skal ikke overvåge transaktionen - det tager bus-masteren sig af.

Idealet er, at pc'en kan multitaske - altså lave flere ting på én gang. Harddisken kan aflevere data i stride strømme til RAM, samtidig med at CPU'en passer et andet arbejde. Bus mastering-systemet fungerer nogenlunde i forhold til EIDE-harddiskene, men på netop dette område er SCSI-controlleren langt mere udviklet. EIDE-bus mastering er ret nyt, og vi vil se nyudviklinger på området.

Læs om DMA-enabling i Windows.


I/O-adresser

Til sidst skal det kort omtales, hvordan CPU'en finder alle disse enheder, adaptere, porte mv. De har nemlig alle en adresse - et I/O-portnummer.

Hver enhed kan kontaktes via én eller flere I/O-porte. Den enkelte port er en byte-port. Det betyder, at der kan passere 8 bits ad gangen (parallelt) gennem den.

Hvis enheden sidder på ISA-bussen, så arbejder den jo med 16 bit ad gangen (words). Så kæder man to efterfølgende porte sammen, så der bliver en 16-bits kanal. Hvis der er tale om en 32-bits PCI-enhed, kæder man fire bytes-porte sammen, for at få 32-bits bredde (32 bit kaldes dwords).

pc'en har altså opbygget en tabel over alle I/O-enheder, som hver har sit "postnummer" - en portadresse. Da pc'en grundlæggende er en 16-bits computer, findes der i alt to i 16'ende (65.536) mulige portadresser, fra 0000h op til FFFFh. Hver af dem beskrives i 4-cifrede hex-tal (16-talssystemet). Lad os se nogle eksempler på I/O-adresser:

Enhed
I/O-porte
CMOS-RAM
0070h
Tastatur
0060h
...
0063h
Seriel port 1 (COM 1)
03F8h
...
03FFh
Parallel port 1 (LPT1)
0378h
...
037Fh

Det er heldigvis sjældent, at man som bruger har behov for at indstille port-adresser. Visse netkort mv. har mulighed for opsætning med brugervalgt I/O-adresse, men man skal være meget uheldig for at opleve en konflikt på dette område.


Plug and Play

Plug and play (PnP) er en industristandard for udvidelseskort. Hvis kortet overholder PnP-standarden, kan installationen være meget enkel, for kortet konfigureres automatisk. Der kræves så minimum følgende:
  • pc'ens bundkort skal være PnP-kompatibelt.
  • Styresystemet skal kunne udnytte PnP. Det kan p.t. kun Windows 95.
  • Adapteren skal kunne meddele I/O-bussen, hvilke I/O-adresser og IRQ'er, det kan fungere med.
  • Adapteren skal kunne indstille sig til at benytte den I/O-adresse og den IRQ, som I/O-bussen meddeler til adapteren.


Se adapterens kantconnector

De forskellige I/O-kort passer hver især til én bestemt I/O-bus. De forskellige busser har hver deres udformning af slot'en. Det er den sokkel på bundkortet, som udvidelseskortet mases ned i. Her ses tre forskellige kort. ISA-bussen har 98 ben i alt (31+18 på hver side).


PC-Card

På bærbare pc'er sættes adapteren gerne i en PCMCIA-slot (et såkaldt PC-Card). Den første generation PC-Card var teknisk set forbundet til ISA-bussen, hvorimod de ny (PC-Card til CardBus) er forbundet PCI-bussen. Her ses et netkort som PC-Card. Det er på størrelse med et dankort, bare lidt tykkere:

Kortet sættes i en helt speciel sokkel, hvor det kan tages ind og ud, mens pc'en er tændt. Hver sokkel udgør faktisk en I/O-enhed, uanset om der sidder PC-card i den eller ej. Når kortet sættes i, konfigureres det automatisk med I/O-adresse, IRQ mv. Langt den bedste understøttelse for PC-Card findes i Windows 95.

To-funktions-kort

Integrerede adaptere med flere funktioner kan spare plads. Især firmaet ASUS har introduceret flerfunktionskort til stationære pc'er, idet de udnytter både ISA og PCI-bussen til et fælles kort:
  • Grafik + lyd
  • SCSI + lyd
Til bærbare pc'er findes også tofunktions PC-cards:
  • Ethernet netkort + modem
  • Token Ring netkort + modem


Lær mere

Forrige side

Klik & Lær fortsættes i Modul 5b.

Læs om DMA-enabling i Windows Tip 20.

Læs også om SCSI, USB og FireWire i modul 5c


Til Oversigt. Copyright (c) 1996, 1997, 1998, 1999 by Michael B. Karbo. WWW.MKDATA.DK. Klik & Lær er besøgtgange på denne server.