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.|
Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.
- 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 Random Access Memory (RAM) and Content Addressable Memory (CAM)
- Difference between Virtual memory and Cache memory
- Difference between Uniform Memory Access (UMA) and Non-uniform Memory Access (NUMA)
- Classification and Programming of Read-Only Memory (ROM)
- MCQ on Memory allocation and compilation process
- Allocating kernel memory (buddy system and slab system)
- 2D and 2.5D Memory organization
- Read and Write operations in Memory
- Difference between Memory based and Register based Addressing Modes
- Locality of Reference and Cache Operation in Cache Memory
- Subroutine, Subroutine nesting and Stack memory
- Memory Hierarchy Design and its Characteristics
- Difference between Simultaneous and Hierarchical Access Memory Organisations
- Difference between Random Access Memory (RAM) and Hard Disk Drive (HDD)
- Difference between Memory and Storage
- Difference between Primary and Secondary Memory
- Difference between Contiguous and Noncontiguous Memory Allocation
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. 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