Skip to main content

Memory mapped versus isolated I/O

Short answer

In memory-mapped I/O, peripheral registers share memory addresses and use ordinary load/store instructions, reducing available memory. In isolated I/O, a separate I/O space uses special IN/OUT instructions, preserving full memory but needing extra instructions and simpler decoding for a limited port range.

What are the differences between memory-mapped I/O and isolated (standard) I/O?

In both schemes the processor talks to peripherals through registers; they differ in how those registers are addressed.

PointMemory-mapped I/OStandard (isolated) I/O
Address spacePeripheral registers share the same address space as memorySeparate I/O address space from memory
InstructionsOrdinary memory instructions (MOV, LOAD, STORE)Special instructions (IN, OUT)
Control signalsSame MEMR/MEMWSeparate IOR/IOW (or an M/IO' signal)
Memory availableReduced, since some addresses are used for I/OFull memory space available
Address decodingUses the full memory address width, so peripherals need wider decodersSimpler; the small I/O space needs fewer address bits to decode
Instruction setSimple; no extra instructionsNeeds extra I/O instructions
FlexibilityArithmetic and logic can be applied directly to I/OData must pass through the accumulator/register
Number of I/O addressesManyLimited (e.g. 256 ports in the 8085 with an 8-bit port address)
ExampleARM, 68000, MIPS8085, 8086 (IN/OUT)

✓ Answer checked by Claude Opus 5.5 (high effort)

All Embedded System chapter 5 questions →