Memory mapped I/O and Isolated I/O
As a CPU needs to communicate with the various memory and input-output devices (I/O) as we know 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 :
- Separate set of address, control and data bus to I/O and memory.
- Have common bus (data and address) for I/O and memory but separate control lines.
- Have common bus (data, address, and control) for I/O and memory.
In first case it is simple because both have different set of address space and instruction but require more buses.
Isolated I/O –
Then we have Isolated I/O in which we Have common bus(data and address) for I/O and memory but separate read and write control lines for I/O. So when CPU decode instruction then if data is for I/O then it places the address on the address line and set I/O read or write control line on due to which data transfer occurs between CPU and I/O. As the address space of memory and I/O is isolated and the name is so. The address for I/O here is called ports. Here we have different read-write instruction for both I/O and memory.
Memory Mapped I/O –
In this case every bus in common due to which the same set of instructions work for memory and I/O. Hence we manipulate I/O same as memory and both have same address space, due to which addressing capability of memory become less because some part is occupied by the I/O.
Differences between memory mapped I/O and isolated I/O –
Isolated I/O | Memory Mapped I/O |
---|---|
Memory and I/O have separate address space | Both have same address space |
All address can be used by the memory | Due to addition of I/O addressable memory become less for memory |
Separate instruction control read and write operation in I/O and Memory | Same instructions can control both I/O and Memory |
In this I/O address are called ports. | Normal memory address are for both |
More efficient due to separate buses | Lesser efficient |
Larger in size due to more buses | Smaller in size |
It is complex due to separate separate logic is used to control both. | Simpler logic is used as I/O is also treated as memory only. |
Recommended Posts:
- Difference between Random Access Memory (RAM) and Content Addressable Memory (CAM)
- Difference between Virtual memory and Cache memory
- Random Access Memory (RAM) and Read Only Memory (ROM)
- Introduction to memory and memory units
- Difference between Byte Addressable Memory and Word Addressable Memory
- Difference between Uniform Memory Access (UMA) and Non-uniform Memory Access (NUMA)
- 2D and 2.5D Memory organization
- Memory Interleaving
- Cache Memory Design
- Overlays in Memory Management
- Introduction of Secondary Memory
- Memory Banking in Microprocessor
- Cache Memory in Computer Organization
- How the negative numbers are stored in memory?
- Memory Hierarchy Design and its Characteristics
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.
Improved By : shubham_singh