Memory Mapped I/O and Isolated I/O (original) (raw)

Last Updated : 7 Nov, 2025

CPU needs to communicate with the various memory and input-output devices (I/O). Data between the processor and these devices flow with the help of the system bus. There are three ways in which system bus can be allotted to them:

In first case it is simple because both have different set of address space and instruction but it require more buses.

Isolated I/O

In Isolated I/O, the CPU uses the same buses (wires) to talk to both memory and I/O devices, but it has separate control signals to tell whether it’s dealing with memory or an I/O device.

I/O devices have special addresses called ports.

When the CPU wants to communicate with an I/O device:

As memory and I/O have separate address spaces, it’s called Isolated I/O. Also, the CPU uses different instructions for memory and I/O (like IN and OUT for I/O).

isolate-io

Isolated I/O

**Applications of Isolated I/O

**Advantages of Isolated I/O

**Disadvantages of Isolated I/O

**Memory Mapped I/O

In a memory-mapped I/O system, there are no special input or output instructions. Instead, the CPU uses the same instructions it uses for memory (like LOAD and STORE) to access I/O devices.

This design allows I/O and memory to be treated uniformly, simplifying programming and hardware design.

memory-io

memory-mapped I/O system

**Applications of Memory-Mapped I/O

**Advantages of Memory-Mapped I/O

**Disadvantages of Memory-Mapped I/O

**Differences between memory mapped I/O and isolated I/O

Let us see the difference between the memory mapped I/O and isolated I/O in the below table:

**Aspect **Isolated I/O **Memory-Mapped I/O
**Address Space Memory and I/O have separate address spaces Memory and I/O share the same address space
**Memory Usage All addresses can be used for memory Some address space is used for I/O, reducing memory space
**Instruction Set Separate instructions for I/O and memory read/write operations Same instructions are used for both I/O and memory
**I/O Addressing I/O addresses are called ports Regular memory addresses are used for both memory and I/O
**Efficiency More efficient due to separate control lines and buses Slightly less efficient due to shared resources
**Hardware Size Larger hardware due to additional buses and logic Smaller hardware as fewer buses are needed
**Design Complexity More complex requires separate logic for I/O and memory Simpler design I/O is handled like memory