IT-lexicon › Hardware › Memory-mapped I/O

Memory-mapped I/O

Hardware Svenska → Bijgewerkt: 2026-11-02

Registers van randapparatuur delen de adresruimte met het geheugen, zodat een gewone schrijfactie naar een adres een led kan aanzetten.

In plaats van aparte I/O-instructies — IN en OUT bij x86, bekend als port-mapped I/O — leest en schrijft de cpu bepaalde adressen die niet naar RAM lopen maar naar een UART, een timer of een GPIO-poort. Elke ARM-microcontroller werkt zo, net als PCIe-kaarten in een pc, waarvan de registers in fysieke adresvensters verschijnen.

De valkuil in C is dat de compiler denkt met gewoon geheugen te maken te hebben. Twee opeenvolgende schrijfacties naar hetzelfde adres worden samengevoegd; een leesactie in een lus wordt eruit getild. Registerpointers worden daarom als volatile gedeclareerd, en bij cpu's met schrijfbuffers is soms een geheugenbarrière nodig om de volgorde te bewaren. Homecomputers als de Commodore 64 deden hetzelfde, vandaar dat PEEK en POKE geluid en beeld konden aansturen.

← Terug naar het lexicon