title: Why do we need memory mapped IO?
body: <p>Why do we need memory-mapped IO? From what I learned in CS class, MMIO abstracts away the specific instructions to control a device. But, if the device's control registers (and thus what each memory cell in its part of the address space) depend on the make and model of the device, what's gained in terms of abstraction?</p>