|
|
|
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.
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.
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 kaldesdwords).
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 |
|
|
|
|
|
|
... 0063h |
|
|
... 03FFh |
|
|
... 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.
Karbosguide.dk 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
Copyright (c) 1996-2011 by Michael B. Karbo.