首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内存映射io和io映射io之间有什么区别

内存映射io和io映射io之间有什么区别
EN

Stack Overflow用户
提问于 2010-10-08 20:33:41
回答 5查看 27.3K关注 0票数 13

请解释内存映射IO和IO映射IO之间的区别

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-10-09 23:00:21

在x86上有两个不同的地址空间,一个用于内存,另一个用于I/O端口。

端口地址空间限制为65536个端口,并使用IN/OUT指令进行访问。

例如,可以使用一些I/O端口访问视频卡的VGA功能,但帧缓冲区是内存映射的。

其他CPU架构只有一个地址空间。在这些架构中,所有设备都是内存映射的。

票数 8
EN

Stack Overflow用户

发布于 2010-10-08 20:41:31

嗯,..。除非我误解了,否则你说的是两件完全不同的事情。我将给你两个非常简短的解释,这样你就可以在谷歌上搜索到你现在需要的东西。

内存映射I/O意味着将I/O硬件设备的内存映射到主内存映射中。也就是说,计算机内存中的地址实际上并不对应于您的RAM,而是对应于外围设备的内部寄存器和内存。这就是Pointy所说的机器架构。

还有映射I/O,这意味着获取(比方说)一个文件,并让操作系统将其部分加载到内存中,以便稍后更快地访问。在Unix中,这可以通过mmap()来完成。

我希望这对你有所帮助。

票数 9
EN

Stack Overflow用户

发布于 2014-03-23 01:50:16

内存映射I/O映射到与程序内存和/或用户内存相同的地址空间,并以相同的方式进行访问。

端口映射I/O使用单独的专用地址空间,并通过一组专用的微处理器指令进行访问。

由于16位处理器将逐渐过时,并在一般使用中被32位和64位所取代,因此为I/O保留存储器地址空间的范围不是问题,因为处理器的存储器地址空间通常比系统中所有存储器和I/O设备所需的空间大得多。

因此,利用内存映射I/O的好处变得更加实用。

这种方法的缺点是必须对每个设备的整个地址总线进行完全解码。例如,具有32位地址总线的机器将需要逻辑门来解析所有32条地址线的状态,以便正确地解码任何设备的特定地址。这增加了向机器添加硬件的成本。

IO映射IO系统的优点是需要更少的逻辑来解码离散地址,因此向机器添加硬件设备的成本更低。然而,可能需要更多的指令。

参考:- Check This link

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3890484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档