As we mentioned earlier in the The solution – mapping via I/O memory or I/O port section, besides MMIO, there is another way to perform I/O on peripheral device memory called PMIO, or often simply PIO. It works quite differently from MMIO. Here, the CPU has distinct assembly (and corresponding machine) instructions to enable it to directly read and write I/O memory locations. Not only that, but this I/O memory range is a separate address space altogether, distinct from RAM. These memory locations are called ports. Don't confuse the term port that's being used here with the same term that's used in networking technology; think of this port as an hardware register in that it closely approximates the meaning. (While it's usually 8-bit, peripheral chip registers can actually be of three bit widths: 8, 16, or 32 bits.)
The reality is that most modern processors, even if they do support PMIO...