存储器映射I/O和I/O映射I/O的比较
内存映射输入输出 -
我们将内存地址分配给输入输出设备。
任何与内存相关的指令都可以被此输入输出设备访问。
输入输出设备数据也提供给算术逻辑单元。
I/O映射输入输出 -
我们将输入输出地址分配给输入输出设备。
此类设备只能访问IN和OUT指令。
ALU运算不直接适用于此类输入输出数据。
因此,作为总结,我们可以提到 -
I/O是处理器/控制器用于处理连接到它的外围设备的任何通用端口。
I/O映射I/O具有与内存不同的地址空间。因此,总寻址容量是连接的I/O数量和连接的内存。使用单独的I/O相关指令来访问I/O。使用单独的信号来寻址I/O设备。
存储器映射I/O与外部内存共享内存空间。因此,总寻址容量只有连接的内存。如果您的处理器支持I/O映射I/O,这将导致资源利用不足。在这种情况下,用于访问I/O的指令与用于内存的指令相同。
让我们以8085处理器为例。它有16条地址线,即64KB内存的寻址能力。它支持I/O映射I/O。它最多可以寻址256个I/O。
如果我们将I/O连接到I/O映射I/O,则它可以寻址256个I/O + 64KB内存。并使用特殊的IN和OUT指令来访问外围设备。在这里,我们充分利用了处理器的寻址能力。
如果外围设备以存储器映射方式连接,则它最多只能寻址64K个设备。这是资源利用不足。并且只使用内存访问指令(如MVI、MOV、LOAD、SAVE)来访问I/O设备。
广告