I/O space vs memory-mapped

QNX SDP8.0Programmer's GuideDeveloper

The x86_64 architecture has two distinct address spaces:

  • 16-address-line I/O space
  • 48-address-line instruction and data space

The processor asserts a hardware line to the external bus to indicate which address space is being referenced. The x86 has special instructions to deal with I/O space (e.g., IN AL, DX vs MOV AL,address). Common hardware design on an x86 indicates that the control ports for peripherals live in the I/O address space. On non-x86 platforms, this requirement doesn't exist—all peripheral devices are mapped into various locations within the same address space as the instruction and code memory.

Page updated: