KarbosGuide.dk. Modul 5a4.

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


  • DMA'er
  • Bus mastering
  • I/O-adresser
  • Plug and Play (PnP)

  • Næste side
  • 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 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
    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).


  • Næste side
  • Forrige side


    Lær mere

    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.