问答题 Memory—Mapped I/O方式相对于I/O端口方式存在哪些优点?
【正确答案】
【答案解析】(1)不需要特殊的指令支持。Memory-Mapped I/O通过一般的访存指令访问设备控制寄存器,而I/O端口方式则需要类似于IN/OUT形式的访问指令,这些指令一般在C和C++等高级语言中无法实现。
(2)无须特殊的保护机制隔离用户进程和I/O。
(3)所有访问存储器的指令均可以访问控制寄存器,便于系统性能优化。
注: (1)I/O端口方式中,计算机系统使用了一个专门的170空间,对设备控制寄存器进行编址,而对I/O空间的访问需要使用特殊的机器指令。例如:IN RO,4指令是指将I/O空间的控制寄存器4的内容读入CPU寄存器R0。
(2)在Memory-Mapped I/O方式中,计算机系统专门使用一段特殊的地址来编址设备控制寄存器,对这些特殊地址的访问就是对设备控制寄存器的访问。
(3)Memory-Mapped I/O方式的缺点:现代计算机CPU都会对存储进行缓存,丢失缓存设备控制寄存器内容是灾难性的。