Difference Between Memory-mapped I/O and I/O-mapped I/O

This article describes the difference between Memory-mapped I/O and I/O-mapped I/O. The microprocessor is connected with external devices such as the I/O devices, memory, and other peripherals via a link called the Interface. An interface is the communication link between the CPU and the external peripheral devices.

I/O interfacing is defined as the interfacing existing between the processing unit or CPU and I/0 devices such as – keyboard, mouse, printer, etc. Based on the kind of interfacing link between CPU and I/O devices, it can be subdivided into the following two categories –

  1. Memory-Mapped I/O Interfacing
  2. Standard I/O Mapped I/O Interfacing

In this article, we will be highlighting the significant differences between Memory-Mapped I/O Interfacing and Standard I/O Mapped I/O Interfacing. But before that let’s look into their basic introductions.

What is Memory-Mapped I/O Interfacing?

Memory-Mapped I/O devices are treated as memory locations and not any separate I/O peripherals. In the case of memory-mapped I/O peripherals no separate memory is allocated for I/O devices, i.e., they share the same memory. A 16-bit address is assigned for the I/O devices in the memory.

Moreover, I/O devices and memory share the same bus to transfer data to and from the processor. As a result, this minimizes the addressing and memory capacity. The memory-mapped I/O interfacing is used in applications having small memory requirements.

In this scenario, the I/O ports are considered memory locations used for performing the writing and reading operations. The same set of instructions is used for the transfer of data to and from the I/O or the memory. A control signal is activated whenever an address is sent over the address line. In a memory-mapped I/O peripheral, the data from the I/O device is sent to the ALU (arithmetic and logical unit).

The assemble language instructions namely LOAD and STORE are utilized to execute the read and write operations from both the I/O peripherals and the memory.

What is I/O Mapped I/O Interfacing?

I/O Mapped I/O devices are also called isolated I/O mapping as the I/O devices are allotted separate addressing space from the memory. These distinct spaces specially allotted for the I/O peripherals are called as ‘Ports’. Therefore, separate instructions for reading and writing are present for both I/O and memory.

The I/O devices in this case have been assigned distinct read and write control lines. The data transfer in the case of I/O mapped I/O devices occurs such that when a piece of data or information has to be transmitted from the I/O to the processes it is firstly placed on the common address bus, followed by the activation of the I/O read and I/O write control lines in order to enable this data transfer.

This kind of system is applicable in scenarios where the memory requirements are large. In contrast to the memory-mapped I/O system, the I/O mapped I/O system operates vis the I/O read and I/O write cycles. However, it interfaces comparatively lesser ports i.e. approximately 256. Moreover, the arithmetic and logic unit (ALU) operations cannot be performed using the information accessed from the I/O devices of the I/O mapped I/O system approach.

Difference Between Memory-mapped I/O and I/O-mapped I/O

Difference Between Memory-mapped I/O and I/O-mapped I/O

The key differences between Memory-mapped I/O and I/O-mapped I/O approaches are listed in the table given below.

ParameterMemory-mapped I/OI/O-mapped I/O
FunctionalityI/O peripherals share the same instructions and address space.I/O peripherals are allotted separate or isolated, special address spaces called ports.
Width of Assigned address spaceThe size of the address space is about 16 bits.The size of the address space is about 8 bits.
Instruction typesThe type of instructions involved in memory writing and memory reading.The type of instructions involved in I/O writing and I/O reading.
Instructions for data transferBoth memory and I/O devices share the same type of instructions for the transfer of data.Memory and I/O devices have separate and distinct types of instructions for the transfer of data.
Ports for I/O interfacingThe interfacing size for memory-mapped I/O devices is quite large i.e., 64K bytes.The interfacing size for I/O-mapped I/O devices is comparatively less i.e., 256 bytes.
Control signalsNo distinct control signals are involved in the transfer of data.Special and distinct control signals are involved in the transfer of data, namely – I/O read, and I/O write control signals.
EfficacyThe efficiency of memory-mapped I/O systems is relatively low.The efficiency of I/O-mapped I/O systems is relatively high.
Hardware for decoderComparatively more hardware is needed to design a decoder.Comparatively lesser hardware is needed to design a decoder.
Status of pin IO/MThe value of the IO/M pin of the system is set to 0 (i.e., low) when the memory read and memory write cycles are executed.The value of the IO/M pin of the system is set to 1 (i.e., high) when the I/O read and I/O write cycles are executed.
Movement of dataData is transmitted between ports and registers in the case of a memory-mapped I/O approach.Data is transmitted between ports and accumulators in the case of the I/O-mapped I/O approach.
System complexityThe system is relatively simple due to the absence of separate control signals and requires a lesser number of pins.The system is relatively complex due to the presence of separate control signals and requires a greater number of pins.
SpeedThe speed of operation is relatively low.The speed of operation is relatively high.
ApplicationThe memory-mapped I/O approach is used in the case of smaller systems requiring less memory space.The I/O mapped I/O approach is used in the case of larger systems requiring greater memory space.

Conclusion

In conclusion, this article highlights the important differences between a memory-mapped I/O and I/O mapped I/O system. The major difference between them is that memory-mapped I/O devices share a common address space and instructions for both I/O devices and memory. While I/O mapped I/O systems have isolated and special address spaces designated for I/O devices.

Leave a Comment