I/O-adres
Een I/O-adres is een numerieke identificatie die de CPU van een computer gebruikt om met een randapparaat te communiceren. Elke I/O-poort op een computer, zoals een USB-poort, Ethernet-aansluiting en HDMI-poort, heeft een uniek adres waarmee deze van elke andere poort wordt onderscheiden. Afzonderlijke I/O-adressen helpen de CPU te bepalen welk randapparaat welk is en er rechtstreeks mee te communiceren.
Wanneer een programma dat op de CPU van een computer wordt uitgevoerd rechtstreeks met een randapparaat moet communiceren, stuurt het opdrachten en gegevens naar het I/O-adres van dat randapparaat. Het randapparaat kan reageren door informatie terug te sturen naar de CPU van de computer via datzelfde adres. Wanneer u bijvoorbeeld een document afdrukt, stuurt de CPU het document en de afdrukinstellingen door naar het I/O-adres van de printer, waarna de printer dat verzoek kan verwerken en het document kan afdrukken.
Vroege computers wezen I/O-poorten vaak vaste adressen toe op basis van het type I/O-poort — het standaardadres voor de eerste seriële poort van een computer was bijvoorbeeld altijd 0x03F8. Deze adressen stonden los van het systeemgeheugen en vereisten unieke CPU-instructies om gegevens van en naar I/O-apparaten te sturen. Moderne computers gebruiken nu een efficiëntere methode met de naam memory-mapped I/O, waarbij adressen voor I/O-poorten worden toegewezen vanuit dezelfde adresruimte als het hoofdgeheugen van het systeem. Door die adresruimte te delen, kan elke CPU-instructie die toegang heeft tot het systeemgeheugen ook toegang krijgen tot I/O-apparaten. Omdat het besturingssysteem nu de I/O-adressen beheert, kunnen toepassingen systeem-API's gebruiken om met randapparaten te communiceren in plaats van gegevens naar specifieke, vooraf gedefinieerde adressen te sturen — waardoor de betrouwbaarheid aanzienlijk toeneemt en de frequentie van conflicten afneemt.
Test je kennis