Op computers moet elk apparaat (bijvoorbeeld een controller die op een uitbreidingskaart is geïnstalleerd of een moederbord) behalve dat RAM wordt behandeld als een periferie door CPU. Gegevensuitwisseling tussen de centrale processor en randapparatuur vindt plaats via invoer-uitvoerpoorten. IO-poort is een bufferapparaat of register van een controller, digitale signaalprocessor, enz. Die rechtstreeks zijn aangesloten op de computer-IO-bus. Via invoer-uitvoerpoorten kunt u een verscheidenheid aan interne en externe apparaten op uw computer aansluiten om de mogelijkheden uit te breiden.
Met IO-poorten kunt u een verbinding tot stand brengen tussen de apparaten en software op de computer. Ze lijken op bidirectionele radiokanalen omdat de uitwisseling van informatie in beide richtingen op hetzelfde kanaal plaatsvindt.
Om de uitwisseling van gegevens tussen computerapparatuur te regelen, wordt aan elke IO-poort een eigen uniek nummer - poortadres toegekend. Op pc 16-bits code wordt gebruikt om IO-poorten aan te pakken. Daarom zijn er 216 = 65 536 poorten, genummerd van OOOOh tot FFFFh. Het standaard IO-bereik voor IBM-compatibele computers is 0-3FFh. Deze omvatten poorten voor toetsenbordcontrollers, harde schijven en floppydisks, EGA / VGA-videoadapters, geluidskaarten, seriële en parallelle interfaces, spelpoorten en alle andere randapparatuur. Een randapparaat kan meerdere IO-poorten gebruiken. Merk op dat u adressen tot FFFFh kunt gebruiken. De poorten van de WT-syntheseprocessor van de geluidskaart hebben bijvoorbeeld IO-bereik 620h-E23h.
Poorten worden geadresseerd door de centrale processor bij het uitvoeren van een programma. Om te voorkomen dat tijdens het programmeren het specifieke adres van elke IO-poort wordt aangegeven en om het adres onmiddellijk te wijzigen afhankelijk van de specifieke computerconfiguratie, wordt het IO-basisadres gebruikt. Het basisadres wordt toegewezen aan elk randapparaat en komt overeen met het laagste adres in de poortgroep. De adressering van de resterende poorten van een randapparaat wordt uitgevoerd door de verschuiving ten opzichte van het basisadres op te geven.
Het IO-basisadres van het randapparaat kan elk adres uit het IO-bereik zijn. BIOS reserveert een deel van het IO-bereik voor standaardhardwareapparaten die niet door andere randapparatuur kunnen worden gebruikt. Voor LPT1-interface is bijvoorbeeld het IO-bereik 378h - 37Eh gereserveerd waarin het IO-basisadres kan worden geselecteerd. Dan wordt de mogelijkheid van conflicten geëlimineerd bij het aanspreken van poorten op hardware-softwareniveau. Omdat er drie registers worden gebruikt voor controle en bewaking van LPT1, zijn er binnen dit IO-bereik 5 mogelijke waarden van het basisadres - 378h-s-37Ch.
Geprogrammeerde IO
Voor gegevensuitwisseling met poorten wordt geprogrammeerde invoer/uitvoer (PIO) gebruikt. Het verzendt woorden met een bitdiepte van 8, 16 of 32 bits met behulp van tekenreeksopdrachten. Het woord kan worden verzonden voor één of meer buscycli met een indicatie van het corresponderende adres in elke geheugentoegangscyclus. Buswisselcycli worden gestart tijdens de uitvoering van een IO-opdracht. Het aantal cycli is afhankelijk van de uitlijning van het adres langs de woordgrens en databitdiepte van de gebruikte bus. De PIO-gegevensuitwisselingssnelheid overschrijdt de uitwisselingssnelheid van het standaard Direct Memory Access (DMA) -kanaal.
Post a comment