Memory mapped I/O and standard I/O are the two methods for communicating microprocessor with peripherals.
Processor talks to both memory and peripheral using the same bus.
Two ways to talk to a peripheral.
-
Memory mapped I/O
-
Standard I/O
Memory mapped I/O:
-
Peripheral registers occupy addresses in same address space as memory.
-
e.g. Bus has 16-bit address.
-
Lower 32k addresses may correspond to memory.
-
Upper 32k addresses may correspond to peripherals.
-
Requires no special instructions.
-
Assembly instructions involving memory like MOV and ADD work with peripherals as well.
-
Standard I/O requires special instructions (e.g. IN, OUT) to move data between peripheral registers and memory.
-
The advantage of memory mapped I/O is that microprocessor need not include special instructions for communicating with peripherals.
Standard I/O (I/O mapped I/O):
-
Additional pin (M/IO) on bus indicates whether a memory or peripheral access.
-
Standard I/O is also known as I/O mapped I/O.
-
e.g. Bus has 16-bit address
-
All 64k addresses correspond to memory when M/IO set to 0.
-
All 64 addresses correspond to peripherals when M/IO set to 1.
-
No loss of memory addresses to peripherals.
-
Simpler address decoding logic in peripherals possible.
-
When the number of peripherals much smaller than address space then high order address bits can be ignored.
-
Smaller and/or faster comparators.
-
The advantage of standard I/O is no loss of memory addresses to the use as I/O addresses.