Memory-mapped I/O (MMIO) is a technique where I/O device registers are mapped to specific, dedicated addresses within the CPU's main memory address space. The CPU interacts with peripherals using standard load/store instructions (e.g., MOV) rather than specialized I/O instructions, simplifying programming but consuming address space.
Key Characteristics and Concepts
Unified Address Space: I/O devices and physical memory share the same address bus.
No Special Instructions: Because peripherals are treated as memory, standard C programming structures (pointers, structs) can be used to read/write hardware registers.
Address Decoding: The CPU does not distinguish between a memory read/write and a device read/write.
Common Applications: Widely used for high-speed peripherals like graphics cards (frame buffers), network interface cards, and within microcontrollers like ARM Cortex
I/O-mapped I/O (or isolated I/O) is a method where input/output devices are assigned a separate address space, distinct from main memory, using dedicated IN and OUT instructions and specific IOR/IOW control signals. It preserves full memory capacity, uses8-bit or 16-bit addressing (e.g., 256 ports in 8085), and simplifies hardware decoding at the cost of requiring special assembly instructions.
Key Characteristics of I/O-Mapped I/O
Isolated Address Space: I/O devices have their own address range, separate from RAM, meaning an address like could exist in both memory and I/O.
Specialized Instructions: Specific CPU instructions (e.g., IN and OUT in x86/8085) are used to access these devices, rather than standard memory-access instructions like MOV.
Control Signals: The processor uses dedicated signals—I/O Read (IOR) and I/O Write (IOW)—to distinguish between a memory access and an I/O operation on the shared bus.
Limited Addressing: Typically, this approach uses an 8-bit address, limiting the system to 256 (
) distinct I/O ports, whereas memory-mapped I/O allows much larger addressing.
Data Transfer: Data transfer typically occurs through the accumulator, reducing flexibility compared to mapping that allows any register to interact with I/O.
Implementation: It is commonly used in Intel architectures, while Motorola often favours memory-mapped I/O.
In this video we have explained
What is Memory Mapped I/O
What is I/O Mapped (Isolated) I/O
Key differences between Memory Mapped and I/O Mapped I/O
Chapters:-
00:00 Introduction
00:38 Memory mapped Input output
04:29 Input Output mapped Input output
• Embedded System Course for Beginners | Emb...
• Keil Software | Keil Software operation |...
• Pin Multiplexing | PINSEL | Pin function s...
• Timers in Embedded System
• Embedded Protocols | Embedded Protocol Tut...
• GPIO- General Purpose Input Output
• Bit Masking In Embedded System
• DAC Digital to Analog Converter | Embedded...
• ARM Cortex
• ARM Advanced RISC Machine
• Embedded System Basics | Fundamentals of E...
• C and Embedded C Programming
If you have any questions please write to us
email : [email protected]
👍 If you find this helpful, please Like, Share, and Subscribe for more embedded systems tutorials.
#memorymappedio #MemoryMappedInputOutput, #MMIO #iomappedio #microprocessors #embeddedsystems #embeddedc #learnembeddedsystems
#embeddedsolutions #IOMappedIO, #IOPortAddressing, #IsolatedIO, #PortMappedIO