隔离I/O和内存映射I/O有什么区别?
隔离I/O
在隔离I/O配置中,CPU具有明确的输入和输出指令,并且每条指令都与接口寄存器的地址相关联。当CPU获取并解码输入或输出指令的操作码时,它会将与指令相关的地址定位到公共地址线上。
同时,它使能I/O读(对于输入)或I/O写(对于输出)控制线。这指示连接到公共总线的外部元件,地址线上的地址用于接口寄存器,而不是内存字。
换句话说,当CPU从内存中获取指令或操作数时,它会在地址线上定位内存地址并使能内存读或内存写控制线。这指示外部元件该地址用于内存字,而不是I/O接口。
隔离I/O方法隔离了内存和I/O地址,因此内存地址值不受接口地址分配的影响,因为每个地址都有其自己的地址空间。另一种方法是为内存和I/O使用相似的地址空间。
这在仅使用一组读写信号且不区分内存和I/O地址的计算机中是这种情况。此配置定义为内存映射I/O。计算机将接口寄存器视为内存系统的一个组成部分。分配给接口寄存器的地址不能用于内存字,这降低了可用的内存地址范围。
内存映射I/O
在内存映射I/O组织中,没有明确的输入或输出指令。CPU可以使用类似于处理内存字的指令来处理接口寄存器中占据的I/O数据。每个接口都排列为一组寄存器,以响应常规地址空间中的读写请求。
通常,总地址空间的一部分受限于接口寄存器,但主要地,它们可以基于任何地址,考虑到没有内存字也返回到相等的地址。使用内存映射I/O的计算机可以使用内存类型指令来访问I/O数据。它使计算机能够对输入输出传输或内存传输使用类似的指令。
好处是,用于从内存读取和写入的加载和存储指令可用于从I/O寄存器输入和输出数据。在普通的计算机中,与I/O指令相比,内存引用指令更多。使用内存映射I/O,所有定义内存的指令也可用于I/O。
广告