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.|
- 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)
- Memory Interleaving
- 2D and 2.5D Memory organization
- Cache Memory Design
- Introduction of Secondary Memory
- Overlays in Memory Management
- Memory Banking in Microprocessor
- Difference between Memory and Storage
- How the negative numbers are stored in memory?
- Read and Write operations in Memory
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.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