What is the difference between Isolated and memory-mapped I/O?

Isolated I/O

In the isolated I/O configurations, the CPU has definite input and output instructions, and each of these instructions is related to the address of an interface register. When the CPU fetches and decodes the operation code of an input or output instruction, it locates the address related to the instruction into the common address lines.

Simultaneously, it enables the I/O read (for input) or I/O write (for output) control line. This instructs the external elements that are connected to the common bus that the address in the address lines is for an interface register and not for a memory word.

In other term, when the CPU is fetching an instruction or an operand from memory, it locates the memory address on the address lines and enables the memory read or memory write control line. This instructs the external elements that the address is for a memory word and not for an I/O interface.

The isolated I/O method isolates memory and I/O addresses so that memory address values are not concerned by interface address assignment because each has its own address space. The other method is to use a similar address space for both memory and I/O.

This is the case in computers that use only one set of read and write signals and do not differentiate between memory and I/O addresses. This configuration is defined as memory-mapped I/O. The computer considers an interface register as being a component of the memory system. The assigned addresses for interface registers cannot be used for memory words, which lower the memory address range available.

Memory-Mapped I/O

In a memory-mapped I/O organization there are no definite input or output instructions. The CPU can handle I/O data occupying in interface registers with similar instructions that are used to handle memory words. Each interface is arranged as a set of registers that counter to read and write requests in the regular address space.

Usually, a segment of the total address space is constrained for interface registers, but mainly, they can be based at any address considering there is not also a memory word that returns to the equal address. Computers with memory-mapped l/O can employ memory-type instructions to approach I/O data. It enables the computer to use similar instructions for either input-output transfers or memory transfers.

The benefit is that the load and store instructions used for reading and writing from memory can be used to input and output data from I/O registers. In a usual computer, there are extra memory-reference instructions than I/O instructions. With memory-mapped I/O all instructions that define memory are also accessible for I/O.