October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan NowOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk2 min

Memory-Mapped I/O: How Drivers Access Device Registers

Memory-mapped I/O lets a processor access device registers through addresses in memory space. Here’s how drivers map those addresses and how MMIO differs from x86 port I/O.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Memory-mapped I/O (MMIO) gives hardware registers or device memory addresses in the processor’s memory address space. When software accesses one of those addresses, the system routes the operation to the device rather than to ordinary RAM. Drivers typically map device addresses into kernel address space and use I/O-specific accessors to interact with them.

What memory-mapped I/O means

With MMIO, a device exposes registers or another region of device memory at a range of addresses. The processor uses an address in that range to read from or write to the device. The address belongs to the system’s memory address space, but the target is hardware—not a location in ordinary RAM.

As an Amazon Associate I earn from qualifying purchases.

MMIO is the most widely supported form of I/O in Linux. The specific address ranges and how they are discovered depend on the architecture and bus; for example, PCI devices can be discovered through the bus mechanism rather than relying on one universal address assignment.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How a driver accesses an MMIO device

  1. Find the device address range. The range may be specified by the platform or discovered through a bus such as PCI.
  2. Map the device address. A kernel driver generally uses an operating-system facility such as Linux ioremap() to map the physical device address into kernel virtual address space.
  3. Use I/O accessors. The driver reads or writes the mapped registers with the operating system’s I/O-specific accessors, following the device and architecture’s access rules.

This is not simply a matter of converting the device address into an ordinary C pointer and dereferencing it. The mapping and accessor APIs carry semantics that matter for hardware access.

#1 Best Overall
Sale
MSI MAG B850 Tomahawk MAX WiFi Motherboard, ATX - Supports AMD Ryzen 9000/8000 / 7000 Processors, AM5-80A SPS VRM, DDR5 Memory Boost 8400+ MT/s (OC), PCIe 5.0 x16, M.2 Gen5, Wi-Fi 7, 5G LAN
  • ULTRA POWER - SUPPORTS THE LATEST RYZEN 9000 PROCESSORS IN HIGH PERFORMANCE - The MAG B850 TOMAHAWK MAX WIFI employs a 14 Duet Rail Power System (80A, SPS) VRM for the AMD B850 chipset (AM5, Ryzen 9000 / 8000 / 7000) with Core Boost architecture
  • FROZR GUARD - Premium cooling features such as 7W/mK MOSFET thermal pads, extra choke thermal pads and an Extended Heatsink; Includes chipset heatsink, EZ M.2 Shield Frozr II, and a Combo-fan (for pump & system) header (3A)
  • DDR5 MEMORY, PCIe 5.0 x16 SLOT - 4 x DDR5 DIMM SMT slots enable extreme memory overclocking speeds (1DPC 1R, 8400+ MT/s); 1 x PCIe 5.0 x16 SMT slot (128GB/s) with Steel Armor II supports cutting-edge graphics cards
  • QUADRUPLE M.2 CONNECTORS - Storage options include 2 x M.2 Gen5 x4 128Gbps slots, 1 x M.2 Gen4 x4 64Gbps slot and 1 x M.2 Gen4 x2 32Gbps slot; Features EZ M.2 Shield Frozr II to prevent thermal throttling and EZ M.2 Clip II for EZ DIY experience
  • CONNECTIVITY - Network hardware includes a full-speed Wi-Fi 7 module with Bluetooth 5.4 & 5Gbps LAN; Rear ports include USB 20G Type-C and 7.1 USB High Performance Audio with Audio Boost 5 (supports S/PDIF output)

MMIO versus port-mapped I/O on x86

On x86, MMIO is one of two ways to address device I/O described in the cited 80386 reference. Port-mapped I/O uses a separate I/O address space and dedicated I/O instructions. MMIO instead places device addresses in the memory address space and uses memory-style addressing.

Aspect MMIO Port-mapped I/O (x86 example)
Address space Device addresses occupy a range in the memory address space. A separate I/O port address space; the 80386 reference describes 16-bit ports, or 216 possible port addresses.
How software selects an address Memory-style addressing selects a location in the device range. Dedicated port-I/O instructions select an I/O port.
Driver access Drivers map device addresses and use I/O accessors with appropriate semantics. Uses the architecture’s port-I/O mechanism rather than an MMIO mapping.

This comparison is specifically about the x86 model described by the 80386 reference; it should not be read as a claim that every processor architecture supports both approaches. Nor does the distinction establish that one approach is universally faster.

Rank #2
Sale
GIGABYTE B550 Eagle WIFI6 AMD AM4 ATX Motherboard, Supports Ryzen 5000/4000/3000 Processors, DDR4, 10+3 Power Phase, 2X M.2, PCIe 4.0, USB-C, WIFI6, GbE LAN, PCIe EZ-Latch, EZ-Latch, RGB Fusion
  • AMD Socket AM4: Ready to support AMD Ryzen 5000 / Ryzen 4000 / Ryzen 3000 Series processors
  • Enhanced Power Solution: Digital twin 10 plus3 phases VRM solution with premium chokes and capacitors for steady power delivery.
  • Advanced Thermal Armor: Enlarged VRM heatsinks layered with 5 W/mk thermal pads for better heat dissipation. Pre-Installed I/O Armor for quicker PC DIY assembly.
  • Boost Your Memory Performance: Compatible with DDR4 memory and supports 4 x DIMMs with AMD EXPO Memory Module Support.
  • Comprehensive Connectivity: WIFI 6, PCIe 4.0, 2x M.2 Slots, 1GbE LAN, USB 3.2 Gen 2, USB 3.2 Gen 1 Type-C
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Why MMIO is not ordinary memory

A device register can trigger an action or expose changing hardware state when accessed. Reads and writes may also have ordering requirements. Linux therefore warns drivers not to use general-purpose memset() or memcpy() on I/O addresses: those routines do not replace the documented I/O accessors and their required semantics.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
Sale
MSI PRO B760-P WiFi DDR4 ProSeries Motherboard - Supports 12th/13th/14th Gen Intel Processors, LGA 1700, DDR4, PCIe 4.0, M.2, 2.5Gbps LAN, USB 3.2 Gen2, HDMI/DP, Wi-Fi 6E, Bluetooth 5.3, ATX
  • Supports 12th/13th Gen Intel Core, Pentium Gold and Celeron processors for LGA 1700 socket
  • Supports DDR4 Memory, Dual Channel DDR4 5333+MHz (OC)
  • Enhanced Power Design: 12+1 Duet Rail Power System with P-PAK, 8-pin + 4-pin CPU power connectors, Core Boost, Memory Boost
  • Premium Thermal Solution: Extended Heatsink, MOSFET thermal pads rated for 7W/mK, additional choke thermal pads and M.2 Shield Frozr are built for high performance system and non-stop gaming experience
  • High Quality PCB: 6-layer PCB made by 2oz thickened copper and server grade level material
Rank #4
Sale
GIGABYTE B850 AORUS Elite WIFI7 AMD AM5 ATX Motherboard, Support AMD Ryzen 9000/8000/7000 Series, DDR5, 14+2+2 Power Phase, 3X M.2, PCIe 5.0, USB-C, WIFI7, 2.5GbE LAN, EZ-Latch, 5-Year Warranty
  • AMD Socket AM5: Supports AMD Ryzen 9000 / Ryzen 8000 / Ryzen 7000 Series Processors
  • DDR5 Compatible: 4*DIMMs
  • Power Design: 14+2+2
  • Thermals: VRM and M.2 Thermal Guard
  • Connectivity: PCIe 5.0, 3x M.2 Slots, USB-C, Sensor Panel Link
Rank #3
Sale
GIGABYTE B550M K AMD AM4 Micro-ATX Motherboard, Supports Ryzen 5000/4000/3000 Series Processors, DDR4, 3+3 Power Phase, 2X M.2, PCIe 4.0, USB 3.2 Gen 1, GbE LAN, Q-Flash
  • AMD Socket AM4: Ready to support AMD Ryzen 5000/4000/3000 Series Processors
  • Enhanced Power Solution: Digital 3+3 VRM Design and premium chokes and capacitors for steady power delivery.
  • Advanced Thermal Armor: Chipset heatsinks for better heat dissipation.
  • Boost Your Memory: Compatible with DDR4 and supports 4 DIMMS with Extreme Memory Profile support.
  • Comprehensive Connectivity: 1x Ultra Durable PCIe 4.0 x16 slot, 1x PCIe 4.0 M.2 slot, 1x PCIe 3.0 M.2 slot, 4x USB 3.2 Gen 1 ports for hassle-free setup.
  • Do not assume a mapped device address behaves like a normal RAM pointer.
  • Use the platform’s mapping and I/O-accessor APIs.
  • Follow the device, operating system, and architecture documentation for ordering and access rules.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.