In a 64 - bit machine, the amount of addresses is n^64. Because effectively no computer has that much RAM, part of those addresses are given to I/O controllers. This is called I/O mapped memory. They are addresses beyond the end of the main memory, and have ranges assigned to each controller.

These are usually configured at boot time. These addresses enable the loading and storing of instructions to I/O mapped memory. This is most commonly used by Programmed input-output.