Electronic – exactly does it mean when someone says “memory-mapping”,“IO Mapping”,“Memory Mapped IO” & “Port Mapped IO”


All these words become a little bit confusing to me as I am a newbie. I understand that bascially a microcontroller is processor + memory to store data(RAM) + data memory OR from where the instructions get executed(ROM/Flash) + Peripherals.

  1. How I am supposed to visualize the mapping?
  2. Is the mapping done on the RAM?
  3. If yes, Isn't it memory itself? How does the processor know about it?
  4. Is this mapping done when I switch on the Controller or is done by the person/Company that manufatured the controller?

if it is really a stupid question or a broad one, let me know. I would try to narrow in.

Best Answer

I think these terms are primarily used with microprocessors, rather than microcontrollers.

"Memory-mapped" I/O devices just appear as normal memory locations, and can be read or written by any instructions that can read or write normal data memory. Memory-mapped I/O can be used by any microprocessor.

Some microprocessors (Intel 8085 and relatives) have a separate address space for I/O device use, not part of the normal memory space, and a limited number of instructions to read from, or write to that address space. I/O devices using this space would be "IO Mapped".