Sounds like hardware terms, yes you are right. Today I will share some words what I learned regarding this. When I tried to write a Linux Device Driver I met with this requirement, so it is important for any Driver Developer to know this.
Mapping IO devices
Micro processor usually offers two mechanisms (refer title for their names) for connecting an external IO device with its address bus. For any IO device both methods are identical, it normally need to decode its address from address bus and read or write data into data bus.
Memory Mapped IO
IO devices are mapped along with RAM and ROM in system memory map.
Advantage: Simple instructions which is used to access Memory regions can be applied for IO devices too. So, accessing a hardware IO device becomes as much simple as that we are accessing a normal memory region.
Disadvantage: Is that inorder to access a single device it becomes necessary to decode all the address lines. For a 16-bit address bus it requires as much logics(gates) to resolve all the 16 address lines, it increases the hardware cost.
IO Mapped IO
IO devices are mapped into separate address space. Hence the address lines gets segregated to port of IO devices and Memory. It results with small number of address lines in port address space and more number of lines in memory address space. For accessing IO ports special instructions are needed, hence more instructions are involved in this mechanisms (separate for IO devices and Memory).
Corrections are always invited..!